1{
2  "absolutePath": "a",
3  "exportedSymbols":
4  {
5    "C":
6    [
7      39
8    ]
9  },
10  "id": 40,
11  "nodeType": "SourceUnit",
12  "nodes":
13  [
14    {
15      "abstract": false,
16      "baseContracts": [],
17      "canonicalName": "C",
18      "contractDependencies": [],
19      "contractKind": "contract",
20      "fullyImplemented": true,
21      "id": 39,
22      "linearizedBaseContracts":
23      [
24        39
25      ],
26      "name": "C",
27      "nameLocation": "9:1:1",
28      "nodeType": "ContractDefinition",
29      "nodes":
30      [
31        {
32          "constant": false,
33          "functionSelector": "97682884",
34          "id": 4,
35          "mutability": "mutable",
36          "name": "m",
37          "nameLocation": "60:1:1",
38          "nodeType": "VariableDeclaration",
39          "scope": 39,
40          "src": "17:44:1",
41          "stateVariable": true,
42          "storageLocation": "default",
43          "typeDescriptions":
44          {
45            "typeIdentifier": "t_mapping$_t_address_$_t_address_payable_$",
46            "typeString": "mapping(address => address payable)"
47          },
48          "typeName":
49          {
50            "id": 3,
51            "keyType":
52            {
53              "id": 1,
54              "name": "address",
55              "nodeType": "ElementaryTypeName",
56              "src": "25:7:1",
57              "typeDescriptions":
58              {
59                "typeIdentifier": "t_address",
60                "typeString": "address"
61              }
62            },
63            "nodeType": "Mapping",
64            "src": "17:35:1",
65            "typeDescriptions":
66            {
67              "typeIdentifier": "t_mapping$_t_address_$_t_address_payable_$",
68              "typeString": "mapping(address => address payable)"
69            },
70            "valueType":
71            {
72              "id": 2,
73              "name": "address",
74              "nodeType": "ElementaryTypeName",
75              "src": "36:15:1",
76              "stateMutability": "payable",
77              "typeDescriptions":
78              {
79                "typeIdentifier": "t_address_payable",
80                "typeString": "address payable"
81              }
82            }
83          },
84          "visibility": "public"
85        },
86        {
87          "body":
88          {
89            "id": 37,
90            "nodeType": "Block",
91            "src": "134:122:1",
92            "statements":
93            [
94              {
95                "assignments":
96                [
97                  12
98                ],
99                "declarations":
100                [
101                  {
102                    "constant": false,
103                    "id": 12,
104                    "mutability": "mutable",
105                    "name": "a",
106                    "nameLocation": "160:1:1",
107                    "nodeType": "VariableDeclaration",
108                    "scope": 37,
109                    "src": "144:17:1",
110                    "stateVariable": false,
111                    "storageLocation": "default",
112                    "typeDescriptions":
113                    {
114                      "typeIdentifier": "t_address_payable",
115                      "typeString": "address payable"
116                    },
117                    "typeName":
118                    {
119                      "id": 11,
120                      "name": "address",
121                      "nodeType": "ElementaryTypeName",
122                      "src": "144:15:1",
123                      "stateMutability": "payable",
124                      "typeDescriptions":
125                      {
126                        "typeIdentifier": "t_address_payable",
127                        "typeString": "address payable"
128                      }
129                    },
130                    "visibility": "internal"
131                  }
132                ],
133                "id": 16,
134                "initialValue":
135                {
136                  "baseExpression":
137                  {
138                    "id": 13,
139                    "name": "m",
140                    "nodeType": "Identifier",
141                    "overloadedDeclarations": [],
142                    "referencedDeclaration": 4,
143                    "src": "164:1:1",
144                    "typeDescriptions":
145                    {
146                      "typeIdentifier": "t_mapping$_t_address_$_t_address_payable_$",
147                      "typeString": "mapping(address => address payable)"
148                    }
149                  },
150                  "id": 15,
151                  "indexExpression":
152                  {
153                    "id": 14,
154                    "name": "arg",
155                    "nodeType": "Identifier",
156                    "overloadedDeclarations": [],
157                    "referencedDeclaration": 6,
158                    "src": "166:3:1",
159                    "typeDescriptions":
160                    {
161                      "typeIdentifier": "t_address_payable",
162                      "typeString": "address payable"
163                    }
164                  },
165                  "isConstant": false,
166                  "isLValue": true,
167                  "isPure": false,
168                  "lValueRequested": false,
169                  "nodeType": "IndexAccess",
170                  "src": "164:6:1",
171                  "typeDescriptions":
172                  {
173                    "typeIdentifier": "t_address_payable",
174                    "typeString": "address payable"
175                  }
176                },
177                "nodeType": "VariableDeclarationStatement",
178                "src": "144:26:1"
179              },
180              {
181                "expression":
182                {
183                  "id": 19,
184                  "isConstant": false,
185                  "isLValue": false,
186                  "isPure": false,
187                  "lValueRequested": false,
188                  "leftHandSide":
189                  {
190                    "id": 17,
191                    "name": "r",
192                    "nodeType": "Identifier",
193                    "overloadedDeclarations": [],
194                    "referencedDeclaration": 9,
195                    "src": "180:1:1",
196                    "typeDescriptions":
197                    {
198                      "typeIdentifier": "t_address_payable",
199                      "typeString": "address payable"
200                    }
201                  },
202                  "nodeType": "Assignment",
203                  "operator": "=",
204                  "rightHandSide":
205                  {
206                    "id": 18,
207                    "name": "arg",
208                    "nodeType": "Identifier",
209                    "overloadedDeclarations": [],
210                    "referencedDeclaration": 6,
211                    "src": "184:3:1",
212                    "typeDescriptions":
213                    {
214                      "typeIdentifier": "t_address_payable",
215                      "typeString": "address payable"
216                    }
217                  },
218                  "src": "180:7:1",
219                  "typeDescriptions":
220                  {
221                    "typeIdentifier": "t_address_payable",
222                    "typeString": "address payable"
223                  }
224                },
225                "id": 20,
226                "nodeType": "ExpressionStatement",
227                "src": "180:7:1"
228              },
229              {
230                "assignments":
231                [
232                  22
233                ],
234                "declarations":
235                [
236                  {
237                    "constant": false,
238                    "id": 22,
239                    "mutability": "mutable",
240                    "name": "c",
241                    "nameLocation": "205:1:1",
242                    "nodeType": "VariableDeclaration",
243                    "scope": 37,
244                    "src": "197:9:1",
245                    "stateVariable": false,
246                    "storageLocation": "default",
247                    "typeDescriptions":
248                    {
249                      "typeIdentifier": "t_address",
250                      "typeString": "address"
251                    },
252                    "typeName":
253                    {
254                      "id": 21,
255                      "name": "address",
256                      "nodeType": "ElementaryTypeName",
257                      "src": "197:7:1",
258                      "stateMutability": "nonpayable",
259                      "typeDescriptions":
260                      {
261                        "typeIdentifier": "t_address",
262                        "typeString": "address"
263                      }
264                    },
265                    "visibility": "internal"
266                  }
267                ],
268                "id": 27,
269                "initialValue":
270                {
271                  "arguments":
272                  [
273                    {
274                      "id": 25,
275                      "name": "this",
276                      "nodeType": "Identifier",
277                      "overloadedDeclarations": [],
278                      "referencedDeclaration": -28,
279                      "src": "217:4:1",
280                      "typeDescriptions":
281                      {
282                        "typeIdentifier": "t_contract$_C_$39",
283                        "typeString": "contract C"
284                      }
285                    }
286                  ],
287                  "expression":
288                  {
289                    "argumentTypes":
290                    [
291                      {
292                        "typeIdentifier": "t_contract$_C_$39",
293                        "typeString": "contract C"
294                      }
295                    ],
296                    "id": 24,
297                    "isConstant": false,
298                    "isLValue": false,
299                    "isPure": true,
300                    "lValueRequested": false,
301                    "nodeType": "ElementaryTypeNameExpression",
302                    "src": "209:7:1",
303                    "typeDescriptions":
304                    {
305                      "typeIdentifier": "t_type$_t_address_$",
306                      "typeString": "type(address)"
307                    },
308                    "typeName":
309                    {
310                      "id": 23,
311                      "name": "address",
312                      "nodeType": "ElementaryTypeName",
313                      "src": "209:7:1",
314                      "typeDescriptions": {}
315                    }
316                  },
317                  "id": 26,
318                  "isConstant": false,
319                  "isLValue": false,
320                  "isPure": false,
321                  "kind": "typeConversion",
322                  "lValueRequested": false,
323                  "names": [],
324                  "nodeType": "FunctionCall",
325                  "src": "209:13:1",
326                  "tryCall": false,
327                  "typeDescriptions":
328                  {
329                    "typeIdentifier": "t_address",
330                    "typeString": "address"
331                  }
332                },
333                "nodeType": "VariableDeclarationStatement",
334                "src": "197:25:1"
335              },
336              {
337                "expression":
338                {
339                  "id": 35,
340                  "isConstant": false,
341                  "isLValue": false,
342                  "isPure": false,
343                  "lValueRequested": false,
344                  "leftHandSide":
345                  {
346                    "baseExpression":
347                    {
348                      "id": 28,
349                      "name": "m",
350                      "nodeType": "Identifier",
351                      "overloadedDeclarations": [],
352                      "referencedDeclaration": 4,
353                      "src": "232:1:1",
354                      "typeDescriptions":
355                      {
356                        "typeIdentifier": "t_mapping$_t_address_$_t_address_payable_$",
357                        "typeString": "mapping(address => address payable)"
358                      }
359                    },
360                    "id": 30,
361                    "indexExpression":
362                    {
363                      "id": 29,
364                      "name": "c",
365                      "nodeType": "Identifier",
366                      "overloadedDeclarations": [],
367                      "referencedDeclaration": 22,
368                      "src": "234:1:1",
369                      "typeDescriptions":
370                      {
371                        "typeIdentifier": "t_address",
372                        "typeString": "address"
373                      }
374                    },
375                    "isConstant": false,
376                    "isLValue": true,
377                    "isPure": false,
378                    "lValueRequested": true,
379                    "nodeType": "IndexAccess",
380                    "src": "232:4:1",
381                    "typeDescriptions":
382                    {
383                      "typeIdentifier": "t_address_payable",
384                      "typeString": "address payable"
385                    }
386                  },
387                  "nodeType": "Assignment",
388                  "operator": "=",
389                  "rightHandSide":
390                  {
391                    "arguments":
392                    [
393                      {
394                        "hexValue": "30",
395                        "id": 33,
396                        "isConstant": false,
397                        "isLValue": false,
398                        "isPure": true,
399                        "kind": "number",
400                        "lValueRequested": false,
401                        "nodeType": "Literal",
402                        "src": "247:1:1",
403                        "typeDescriptions":
404                        {
405                          "typeIdentifier": "t_rational_0_by_1",
406                          "typeString": "int_const 0"
407                        },
408                        "value": "0"
409                      }
410                    ],
411                    "expression":
412                    {
413                      "argumentTypes":
414                      [
415                        {
416                          "typeIdentifier": "t_rational_0_by_1",
417                          "typeString": "int_const 0"
418                        }
419                      ],
420                      "id": 32,
421                      "isConstant": false,
422                      "isLValue": false,
423                      "isPure": true,
424                      "lValueRequested": false,
425                      "nodeType": "ElementaryTypeNameExpression",
426                      "src": "239:7:1",
427                      "typeDescriptions":
428                      {
429                        "typeIdentifier": "t_type$_t_address_$",
430                        "typeString": "type(address)"
431                      },
432                      "typeName":
433                      {
434                        "id": 31,
435                        "name": "address",
436                        "nodeType": "ElementaryTypeName",
437                        "src": "239:7:1",
438                        "typeDescriptions": {}
439                      }
440                    },
441                    "id": 34,
442                    "isConstant": false,
443                    "isLValue": false,
444                    "isPure": true,
445                    "kind": "typeConversion",
446                    "lValueRequested": false,
447                    "names": [],
448                    "nodeType": "FunctionCall",
449                    "src": "239:10:1",
450                    "tryCall": false,
451                    "typeDescriptions":
452                    {
453                      "typeIdentifier": "t_address",
454                      "typeString": "address"
455                    }
456                  },
457                  "src": "232:17:1",
458                  "typeDescriptions":
459                  {
460                    "typeIdentifier": "t_address_payable",
461                    "typeString": "address payable"
462                  }
463                },
464                "id": 36,
465                "nodeType": "ExpressionStatement",
466                "src": "232:17:1"
467              }
468            ]
469          },
470          "functionSelector": "fc68521a",
471          "id": 38,
472          "implemented": true,
473          "kind": "function",
474          "modifiers": [],
475          "name": "f",
476          "nameLocation": "76:1:1",
477          "nodeType": "FunctionDefinition",
478          "parameters":
479          {
480            "id": 7,
481            "nodeType": "ParameterList",
482            "parameters":
483            [
484              {
485                "constant": false,
486                "id": 6,
487                "mutability": "mutable",
488                "name": "arg",
489                "nameLocation": "94:3:1",
490                "nodeType": "VariableDeclaration",
491                "scope": 38,
492                "src": "78:19:1",
493                "stateVariable": false,
494                "storageLocation": "default",
495                "typeDescriptions":
496                {
497                  "typeIdentifier": "t_address_payable",
498                  "typeString": "address payable"
499                },
500                "typeName":
501                {
502                  "id": 5,
503                  "name": "address",
504                  "nodeType": "ElementaryTypeName",
505                  "src": "78:15:1",
506                  "stateMutability": "payable",
507                  "typeDescriptions":
508                  {
509                    "typeIdentifier": "t_address_payable",
510                    "typeString": "address payable"
511                  }
512                },
513                "visibility": "internal"
514              }
515            ],
516            "src": "77:21:1"
517          },
518          "returnParameters":
519          {
520            "id": 10,
521            "nodeType": "ParameterList",
522            "parameters":
523            [
524              {
525                "constant": false,
526                "id": 9,
527                "mutability": "mutable",
528                "name": "r",
529                "nameLocation": "131:1:1",
530                "nodeType": "VariableDeclaration",
531                "scope": 38,
532                "src": "115:17:1",
533                "stateVariable": false,
534                "storageLocation": "default",
535                "typeDescriptions":
536                {
537                  "typeIdentifier": "t_address_payable",
538                  "typeString": "address payable"
539                },
540                "typeName":
541                {
542                  "id": 8,
543                  "name": "address",
544                  "nodeType": "ElementaryTypeName",
545                  "src": "115:15:1",
546                  "stateMutability": "payable",
547                  "typeDescriptions":
548                  {
549                    "typeIdentifier": "t_address_payable",
550                    "typeString": "address payable"
551                  }
552                },
553                "visibility": "internal"
554              }
555            ],
556            "src": "114:19:1"
557          },
558          "scope": 39,
559          "src": "67:189:1",
560          "stateMutability": "nonpayable",
561          "virtual": false,
562          "visibility": "public"
563        }
564      ],
565      "scope": 40,
566      "src": "0:258:1",
567      "usedErrors": []
568    }
569  ],
570  "src": "0:259:1"
571}
572