{
  "fileName": "DummyImplementation.sol",
  "contractName": "DummyImplementation",
  "source": "pragma solidity ^0.5.0;\n\ncontract Impl {\n  function version() public pure returns (string memory); \n}\n\ncontract DummyImplementation {\n  uint256 public value;\n  string public text;\n  uint256[] public values;\n\n  function initializeNonPayable() public {\n    value = 10;\n  }\n\n  function initializePayable() payable public {\n    value = 100;\n  }\n\n  function initializeNonPayable(uint256 _value) public {\n    value = _value;\n  }\n\n  function initializePayable(uint256 _value) payable public {\n    value = _value;\n  }\n\n  function initialize(uint256 _value, string memory _text, uint256[] memory _values) public {\n    value = _value;\n    text = _text;\n    values = _values;\n  }\n\n  function get() public pure returns (bool) {\n    return true;\n  }\n\n  function version() public pure returns (string memory) {\n    return \"V1\";\n  }\n\n  function reverts() public pure {\n    require(false);\n  }\n}\n\ncontract DummyImplementationV2 is DummyImplementation {\n  function migrate(uint256 newVal) payable public {\n    value = newVal;\n  }\n\n  function version() public pure returns (string memory) {\n    return \"V2\";\n  }\n}\n",
  "sourcePath": "contracts/mocks/DummyImplementation.sol",
  "sourceMap": "103:776:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;103:776:9;;;;;;;",
  "deployedSourceMap": "103:776:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;426:83;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;426:83:9;;;;;;;;;;;;;;;;;:::i;:::-;;160:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;160:18:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;160:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;210:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;210:60:9;;;:::i;:::-;;821:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;821:56:9;;;:::i;:::-;;136:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;136:20:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;740:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;740:77:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;740:77:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:78:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;344:78:9;;;;;;;;;;;;;;;;;:::i;:::-;;182:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;182:23:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;182:23:9;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;672:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;672:64:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;274:66;;;:::i;:::-;;513:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;513:155:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;513:155:9;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;513:155:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;513:155:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;513:155:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;513:155:9;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;513:155:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;513:155:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;513:155:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;513:155:9;;;;;;;;;;;;;;;:::i;:::-;;426:83;498:6;490:5;:14;;;;426:83;:::o;160:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;210:60::-;263:2;255:5;:10;;;;210:60::o;821:56::-;866:5;858:14;;;;;;;;821:56::o;136:20::-;;;;:::o;740:77::-;780:13;801:11;;;;;;;;;;;;;;;;;;;;740:77;:::o;344:78::-;411:6;403:5;:14;;;;344:78;:::o;182:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;672:64::-;708:4;727;720:11;;672:64;:::o;274:66::-;332:3;324:5;:11;;;;274:66::o;513:155::-;617:6;609:5;:14;;;;636:5;629:4;:12;;;;;;;;;;;;:::i;:::-;;656:7;647:6;:16;;;;;;;;;;;;:::i;:::-;;513:155;;;:::o;103:776::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "abi": [
    {
      "constant": false,
      "inputs": [
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "initializePayable",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "text",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "initializeNonPayable",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "reverts",
      "outputs": [],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "value",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "initializeNonPayable",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "values",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "get",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "initializePayable",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_value",
          "type": "uint256"
        },
        {
          "name": "_text",
          "type": "string"
        },
        {
          "name": "_values",
          "type": "uint256[]"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "ast": {
    "absolutePath": "contracts/mocks/DummyImplementation.sol",
    "exportedSymbols": {
      "DummyImplementation": [
        1524
      ],
      "DummyImplementationV2": [
        1545
      ],
      "Impl": [
        1433
      ]
    },
    "id": 1546,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1427,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:9"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 1433,
        "linearizedBaseContracts": [
          1433
        ],
        "name": "Impl",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "id": 1432,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1428,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "59:2:9"
            },
            "returnParameters": {
              "id": 1431,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1430,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1432,
                  "src": "83:13:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1429,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "83:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "82:15:9"
            },
            "scope": 1433,
            "src": "43:55:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1546,
        "src": "25:76:9"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1524,
        "linearizedBaseContracts": [
          1524
        ],
        "name": "DummyImplementation",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1435,
            "name": "value",
            "nodeType": "VariableDeclaration",
            "scope": 1524,
            "src": "136:20:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1434,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "136:7:9",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1437,
            "name": "text",
            "nodeType": "VariableDeclaration",
            "scope": 1524,
            "src": "160:18:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 1436,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "160:6:9",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1440,
            "name": "values",
            "nodeType": "VariableDeclaration",
            "scope": 1524,
            "src": "182:23:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 1438,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "182:7:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 1439,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "182:9:9",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1447,
              "nodeType": "Block",
              "src": "249:21:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1443,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1435,
                      "src": "255:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "3130",
                      "id": 1444,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "263:2:9",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_10_by_1",
                        "typeString": "int_const 10"
                      },
                      "value": "10"
                    },
                    "src": "255:10:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1446,
                  "nodeType": "ExpressionStatement",
                  "src": "255:10:9"
                }
              ]
            },
            "documentation": null,
            "id": 1448,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeNonPayable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1441,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "239:2:9"
            },
            "returnParameters": {
              "id": 1442,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "249:0:9"
            },
            "scope": 1524,
            "src": "210:60:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1455,
              "nodeType": "Block",
              "src": "318:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1453,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1451,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1435,
                      "src": "324:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "313030",
                      "id": 1452,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "332:3:9",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_100_by_1",
                        "typeString": "int_const 100"
                      },
                      "value": "100"
                    },
                    "src": "324:11:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1454,
                  "nodeType": "ExpressionStatement",
                  "src": "324:11:9"
                }
              ]
            },
            "documentation": null,
            "id": 1456,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializePayable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1449,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "300:2:9"
            },
            "returnParameters": {
              "id": 1450,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "318:0:9"
            },
            "scope": 1524,
            "src": "274:66:9",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1465,
              "nodeType": "Block",
              "src": "397:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1461,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1435,
                      "src": "403:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1462,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1458,
                      "src": "411:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "403:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1464,
                  "nodeType": "ExpressionStatement",
                  "src": "403:14:9"
                }
              ]
            },
            "documentation": null,
            "id": 1466,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeNonPayable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1458,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1466,
                  "src": "374:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1457,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "374:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "373:16:9"
            },
            "returnParameters": {
              "id": 1460,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "397:0:9"
            },
            "scope": 1524,
            "src": "344:78:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1475,
              "nodeType": "Block",
              "src": "484:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1473,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1471,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1435,
                      "src": "490:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1472,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1468,
                      "src": "498:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "490:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1474,
                  "nodeType": "ExpressionStatement",
                  "src": "490:14:9"
                }
              ]
            },
            "documentation": null,
            "id": 1476,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializePayable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1469,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1468,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1476,
                  "src": "453:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1467,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "453:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "452:16:9"
            },
            "returnParameters": {
              "id": 1470,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "484:0:9"
            },
            "scope": 1524,
            "src": "426:83:9",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1498,
              "nodeType": "Block",
              "src": "603:65:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1488,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1486,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1435,
                      "src": "609:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1487,
                      "name": "_value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1478,
                      "src": "617:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "609:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1489,
                  "nodeType": "ExpressionStatement",
                  "src": "609:14:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1490,
                      "name": "text",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1437,
                      "src": "629:4:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1491,
                      "name": "_text",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1480,
                      "src": "636:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "629:12:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 1493,
                  "nodeType": "ExpressionStatement",
                  "src": "629:12:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1496,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1494,
                      "name": "values",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1440,
                      "src": "647:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1495,
                      "name": "_values",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1483,
                      "src": "656:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "647:16:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 1497,
                  "nodeType": "ExpressionStatement",
                  "src": "647:16:9"
                }
              ]
            },
            "documentation": null,
            "id": 1499,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1484,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1478,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1499,
                  "src": "533:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1477,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "533:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1480,
                  "name": "_text",
                  "nodeType": "VariableDeclaration",
                  "scope": 1499,
                  "src": "549:19:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1479,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "549:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1483,
                  "name": "_values",
                  "nodeType": "VariableDeclaration",
                  "scope": 1499,
                  "src": "570:24:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1481,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "570:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1482,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "570:9:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "532:63:9"
            },
            "returnParameters": {
              "id": 1485,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "603:0:9"
            },
            "scope": 1524,
            "src": "513:155:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1506,
              "nodeType": "Block",
              "src": "714:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 1504,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "727:4:9",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 1503,
                  "id": 1505,
                  "nodeType": "Return",
                  "src": "720:11:9"
                }
              ]
            },
            "documentation": null,
            "id": 1507,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1500,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "684:2:9"
            },
            "returnParameters": {
              "id": 1503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1502,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1507,
                  "src": "708:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1501,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "708:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "707:6:9"
            },
            "scope": 1524,
            "src": "672:64:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1514,
              "nodeType": "Block",
              "src": "795:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "5631",
                    "id": 1512,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "808:4:9",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_4c23426613a5dc69e08fbd2787e6210aa679d4522e95a89d4dd88c4fd13a2283",
                      "typeString": "literal_string \"V1\""
                    },
                    "value": "V1"
                  },
                  "functionReturnParameters": 1511,
                  "id": 1513,
                  "nodeType": "Return",
                  "src": "801:11:9"
                }
              ]
            },
            "documentation": null,
            "id": 1515,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1508,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "756:2:9"
            },
            "returnParameters": {
              "id": 1511,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1510,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1515,
                  "src": "780:13:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1509,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "780:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "779:15:9"
            },
            "scope": 1524,
            "src": "740:77:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1522,
              "nodeType": "Block",
              "src": "852:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "66616c7365",
                        "id": 1519,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "866:5:9",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1518,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6466,
                        6467
                      ],
                      "referencedDeclaration": 6466,
                      "src": "858:7:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1520,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "858:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1521,
                  "nodeType": "ExpressionStatement",
                  "src": "858:14:9"
                }
              ]
            },
            "documentation": null,
            "id": 1523,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reverts",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1516,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "837:2:9"
            },
            "returnParameters": {
              "id": 1517,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "852:0:9"
            },
            "scope": 1524,
            "src": "821:56:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1546,
        "src": "103:776:9"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1525,
              "name": "DummyImplementation",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1524,
              "src": "915:19:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DummyImplementation_$1524",
                "typeString": "contract DummyImplementation"
              }
            },
            "id": 1526,
            "nodeType": "InheritanceSpecifier",
            "src": "915:19:9"
          }
        ],
        "contractDependencies": [
          1524
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1545,
        "linearizedBaseContracts": [
          1545,
          1524
        ],
        "name": "DummyImplementationV2",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 1535,
              "nodeType": "Block",
              "src": "987:25:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1533,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1531,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1435,
                      "src": "993:5:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1532,
                      "name": "newVal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1528,
                      "src": "1001:6:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "993:14:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1534,
                  "nodeType": "ExpressionStatement",
                  "src": "993:14:9"
                }
              ]
            },
            "documentation": null,
            "id": 1536,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "migrate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1529,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1528,
                  "name": "newVal",
                  "nodeType": "VariableDeclaration",
                  "scope": 1536,
                  "src": "956:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1527,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "956:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "955:16:9"
            },
            "returnParameters": {
              "id": 1530,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "987:0:9"
            },
            "scope": 1545,
            "src": "939:73:9",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1543,
              "nodeType": "Block",
              "src": "1071:22:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "5632",
                    "id": 1541,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1084:4:9",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_23d235efaf569b2b407d10f447247743508d1762a8e3a3aed85ccc0570dde35f",
                      "typeString": "literal_string \"V2\""
                    },
                    "value": "V2"
                  },
                  "functionReturnParameters": 1540,
                  "id": 1542,
                  "nodeType": "Return",
                  "src": "1077:11:9"
                }
              ]
            },
            "documentation": null,
            "id": 1544,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "version",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1537,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1032:2:9"
            },
            "returnParameters": {
              "id": 1540,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1539,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1544,
                  "src": "1056:13:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1538,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1056:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1055:15:9"
            },
            "scope": 1545,
            "src": "1016:77:9",
            "stateMutability": "pure",
            "superFunction": 1515,
            "visibility": "public"
          }
        ],
        "scope": 1546,
        "src": "881:214:9"
      }
    ],
    "src": "0:1096:9"
  },
  "bytecode": "0x608060405234801561001057600080fd5b5061070d806100206000396000f3fe60806040526004361061009c5760003560e01c806354fd4d501161006457806354fd4d50146101b85780635ba8d2ad146102485780635e383d21146102835780636d4ce63c146102d25780639fba1f9a14610301578063d31f8b6b1461030b5761009c565b806316eaa247146100a15780631f1bd692146100cf578063227367d51461015f5780633bccbbc9146101765780633fa4f2451461018d575b600080fd5b6100cd600480360360208110156100b757600080fd5b8101908080359060200190929190505050610471565b005b3480156100db57600080fd5b506100e461047b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610124578082015181840152602081019050610109565b50505050905090810190601f1680156101515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016b57600080fd5b50610174610519565b005b34801561018257600080fd5b5061018b610523565b005b34801561019957600080fd5b506101a2610532565b6040518082815260200191505060405180910390f35b3480156101c457600080fd5b506101cd610538565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020d5780820151818401526020810190506101f2565b50505050905090810190601f16801561023a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025457600080fd5b506102816004803603602081101561026b57600080fd5b8101908080359060200190929190505050610575565b005b34801561028f57600080fd5b506102bc600480360360208110156102a657600080fd5b810190808035906020019092919050505061057f565b6040518082815260200191505060405180910390f35b3480156102de57600080fd5b506102e76105a2565b604051808215151515815260200191505060405180910390f35b6103096105ab565b005b34801561031757600080fd5b5061046f6004803603606081101561032e57600080fd5b81019080803590602001909291908035906020019064010000000081111561035557600080fd5b82018360208201111561036757600080fd5b8035906020019184600183028401116401000000008311171561038957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103ec57600080fd5b8201836020820111156103fe57600080fd5b8035906020019184602083028401116401000000008311171561042057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506105b5565b005b8060008190555050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105115780601f106104e657610100808354040283529160200191610511565b820191906000526020600020905b8154815290600101906020018083116104f457829003601f168201915b505050505081565b600a600081905550565b6000151561053057600080fd5b565b60005481565b60606040805190810160405280600281526020017f5631000000000000000000000000000000000000000000000000000000000000815250905090565b8060008190555050565b60028181548110151561058e57fe5b906000526020600020016000915090505481565b60006001905090565b6064600081905550565b8260008190555081600190805190602001906105d29291906105ef565b5080600290805190602001906105e992919061066f565b50505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061063057805160ff191683800117855561065e565b8280016001018555821561065e579182015b8281111561065d578251825591602001919060010190610642565b5b50905061066b91906106bc565b5090565b8280548282559060005260206000209081019282156106ab579160200282015b828111156106aa57825182559160200191906001019061068f565b5b5090506106b891906106bc565b5090565b6106de91905b808211156106da5760008160009055506001016106c2565b5090565b9056fea165627a7a72305820441774647e84a637e83608c16f1de3877387cd4d3634d111f551984c1def604d0029",
  "deployedBytecode": "0x60806040526004361061009c5760003560e01c806354fd4d501161006457806354fd4d50146101b85780635ba8d2ad146102485780635e383d21146102835780636d4ce63c146102d25780639fba1f9a14610301578063d31f8b6b1461030b5761009c565b806316eaa247146100a15780631f1bd692146100cf578063227367d51461015f5780633bccbbc9146101765780633fa4f2451461018d575b600080fd5b6100cd600480360360208110156100b757600080fd5b8101908080359060200190929190505050610471565b005b3480156100db57600080fd5b506100e461047b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610124578082015181840152602081019050610109565b50505050905090810190601f1680156101515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016b57600080fd5b50610174610519565b005b34801561018257600080fd5b5061018b610523565b005b34801561019957600080fd5b506101a2610532565b6040518082815260200191505060405180910390f35b3480156101c457600080fd5b506101cd610538565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020d5780820151818401526020810190506101f2565b50505050905090810190601f16801561023a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025457600080fd5b506102816004803603602081101561026b57600080fd5b8101908080359060200190929190505050610575565b005b34801561028f57600080fd5b506102bc600480360360208110156102a657600080fd5b810190808035906020019092919050505061057f565b6040518082815260200191505060405180910390f35b3480156102de57600080fd5b506102e76105a2565b604051808215151515815260200191505060405180910390f35b6103096105ab565b005b34801561031757600080fd5b5061046f6004803603606081101561032e57600080fd5b81019080803590602001909291908035906020019064010000000081111561035557600080fd5b82018360208201111561036757600080fd5b8035906020019184600183028401116401000000008311171561038957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103ec57600080fd5b8201836020820111156103fe57600080fd5b8035906020019184602083028401116401000000008311171561042057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506105b5565b005b8060008190555050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105115780601f106104e657610100808354040283529160200191610511565b820191906000526020600020905b8154815290600101906020018083116104f457829003601f168201915b505050505081565b600a600081905550565b6000151561053057600080fd5b565b60005481565b60606040805190810160405280600281526020017f5631000000000000000000000000000000000000000000000000000000000000815250905090565b8060008190555050565b60028181548110151561058e57fe5b906000526020600020016000915090505481565b60006001905090565b6064600081905550565b8260008190555081600190805190602001906105d29291906105ef565b5080600290805190602001906105e992919061066f565b50505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061063057805160ff191683800117855561065e565b8280016001018555821561065e579182015b8281111561065d578251825591602001919060010190610642565b5b50905061066b91906106bc565b5090565b8280548282559060005260206000209081019282156106ab579160200282015b828111156106aa57825182559160200191906001019061068f565b5b5090506106b891906106bc565b5090565b6106de91905b808211156106da5760008160009055506001016106c2565b5090565b9056fea165627a7a72305820441774647e84a637e83608c16f1de3877387cd4d3634d111f551984c1def604d0029",
  "compiler": {
    "name": "solc",
    "version": "0.5.3+commit.10d17f24.Emscripten.clang",
    "optimizer": {},
    "evmVersion": "constantinople"
  }
}
