{
  "fileName": "MultipleInheritanceInitializableMocks.sol",
  "contractName": "SampleFather",
  "source": "pragma solidity ^0.5.0;\n\nimport '../Initializable.sol';\n\n// Sample contracts showing upgradeability with multiple inheritance.\n// Child contract inherits from Father and Mother contracts, and Father extends from Gramps.\n// \n//         Human\n//       /       \\\n//      |       Gramps\n//      |         |\n//    Mother    Father\n//      |         |\n//      -- Child --\n\n/**\n * Sample base intializable contract that is a human\n */\ncontract SampleHuman is Initializable {\n  bool public isHuman;\n\n  function initialize() initializer public {\n    isHuman = true;\n  }\n}\n\n/**\n * Sample base intializable contract that defines a field mother\n */\ncontract SampleMother is Initializable, SampleHuman {\n  uint256 public mother;\n\n  function initialize(uint256 value) initializer public {\n    SampleHuman.initialize();\n    mother = value;\n  }\n}\n\n/**\n * Sample base intializable contract that defines a field gramps\n */\ncontract SampleGramps is Initializable, SampleHuman {\n  uint256 public gramps;\n\n  function initialize(uint256 value) initializer public {\n    SampleHuman.initialize();\n    gramps = value;\n  }\n}\n\n/**\n * Sample base intializable contract that defines a field father and extends from gramps\n */\ncontract SampleFather is Initializable, SampleGramps {\n  uint256 public father;\n\n  function initialize(uint256 _gramps, uint256 _father) initializer public {\n    SampleGramps.initialize(_gramps);\n    father = _father;\n  }\n}\n\n/**\n * Child extends from mother, father (gramps)\n */\ncontract SampleChild is Initializable, SampleMother, SampleFather {\n  uint256 public child;\n\n  function initialize(uint256 _mother, uint256 _gramps, uint256 _father, uint256 _child) initializer public {\n    SampleMother.initialize(_mother);\n    SampleFather.initialize(_gramps, _father);\n    child = _child;\n  }\n}\n",
  "sourcePath": "contracts/mocks/MultipleInheritanceInitializableMocks.sol",
  "sourceMap": "1197:223:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1197:223:14;;;;;;;",
  "deployedSourceMap": "1197:223:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1197:223:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1254:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;470:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;494:66;;;:::i;:::-;;1280:138;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1280:138:14;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;961:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;987:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;987:109:14;;;;;;;;;;;;;;;;;:::i;:::-;;1254:21;;;;:::o;470:19::-;;;;;;;;;;;;;:::o;494:66::-;1024:12:0;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;;;;;;1151:13;1129:35;;1174:14;1170:80;;;1213:4;1198:12;;:19;;;;;;;;;;;;;;;;;;1239:4;1225:11;;:18;;;;;;;;;;;;;;;;;;1170:80;551:4:14;541:7;;:14;;;;;;;;;;;;;;;;;;1268::0;1264:55;;;1307:5;1292:12;;:20;;;;;;;;;;;;;;;;;;1264:55;494:66:14;:::o;1280:138::-;1024:12:0;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;;;;;;1151:13;1129:35;;1174:14;1170:80;;;1213:4;1198:12;;:19;;;;;;;;;;;;;;;;;;1239:4;1225:11;;:18;;;;;;;;;;;;;;;;;;1170:80;1359:32:14;1383:7;1359:23;:32::i;:::-;1406:7;1397:6;:16;;;;1268:14:0;1264:55;;;1307:5;1292:12;;:20;;;;;;;;;;;;;;;;;;1264:55;1280:138:14;;;:::o;961:21::-;;;;:::o;987:109::-;1024:12:0;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;;;;;;1151:13;1129:35;;1174:14;1170:80;;;1213:4;1198:12;;:19;;;;;;;;;;;;;;;;;;1239:4;1225:11;;:18;;;;;;;;;;;;;;;;;;1170:80;1047:24:14;:22;:24::i;:::-;1086:5;1077:6;:14;;;;1268::0;1264:55;;;1307:5;1292:12;;:20;;;;;;;;;;;;;;;;;;1264:55;987:109:14;;:::o;1409:498:0:-;1456:4;1797:12;1820:4;1797:28;;1831:10;1876:4;1864:17;1858:23;;1901:1;1895:2;:7;1888:14;;;;1409:498;:::o",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "father",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isHuman",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_gramps",
          "type": "uint256"
        },
        {
          "name": "_father",
          "type": "uint256"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "gramps",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "ast": {
    "absolutePath": "contracts/mocks/MultipleInheritanceInitializableMocks.sol",
    "exportedSymbols": {
      "SampleChild": [
        4112
      ],
      "SampleFather": [
        4072
      ],
      "SampleGramps": [
        4045
      ],
      "SampleHuman": [
        3997
      ],
      "SampleMother": [
        4021
      ]
    },
    "id": 4113,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3981,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:14"
      },
      {
        "absolutePath": "contracts/Initializable.sol",
        "file": "../Initializable.sol",
        "id": 3982,
        "nodeType": "ImportDirective",
        "scope": 4113,
        "sourceUnit": 69,
        "src": "25:30:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3983,
              "name": "Initializable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 68,
              "src": "452:13:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Initializable_$68",
                "typeString": "contract Initializable"
              }
            },
            "id": 3984,
            "nodeType": "InheritanceSpecifier",
            "src": "452:13:14"
          }
        ],
        "contractDependencies": [
          68
        ],
        "contractKind": "contract",
        "documentation": "Sample base intializable contract that is a human",
        "fullyImplemented": true,
        "id": 3997,
        "linearizedBaseContracts": [
          3997,
          68
        ],
        "name": "SampleHuman",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 3986,
            "name": "isHuman",
            "nodeType": "VariableDeclaration",
            "scope": 3997,
            "src": "470:19:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 3985,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "470:4:14",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3995,
              "nodeType": "Block",
              "src": "535:25:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3993,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3991,
                      "name": "isHuman",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3986,
                      "src": "541:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 3992,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "551:4:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "541:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3994,
                  "nodeType": "ExpressionStatement",
                  "src": "541:14:14"
                }
              ]
            },
            "documentation": null,
            "id": 3996,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3989,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3988,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 43,
                  "src": "516:11:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "516:11:14"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3987,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "513:2:14"
            },
            "returnParameters": {
              "id": 3990,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "535:0:14"
            },
            "scope": 3997,
            "src": "494:66:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 4113,
        "src": "428:134:14"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3998,
              "name": "Initializable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 68,
              "src": "662:13:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Initializable_$68",
                "typeString": "contract Initializable"
              }
            },
            "id": 3999,
            "nodeType": "InheritanceSpecifier",
            "src": "662:13:14"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4000,
              "name": "SampleHuman",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3997,
              "src": "677:11:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SampleHuman_$3997",
                "typeString": "contract SampleHuman"
              }
            },
            "id": 4001,
            "nodeType": "InheritanceSpecifier",
            "src": "677:11:14"
          }
        ],
        "contractDependencies": [
          68,
          3997
        ],
        "contractKind": "contract",
        "documentation": "Sample base intializable contract that defines a field mother",
        "fullyImplemented": true,
        "id": 4021,
        "linearizedBaseContracts": [
          4021,
          3997,
          68
        ],
        "name": "SampleMother",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 4003,
            "name": "mother",
            "nodeType": "VariableDeclaration",
            "scope": 4021,
            "src": "693:21:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4002,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "693:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4019,
              "nodeType": "Block",
              "src": "773:55:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 4010,
                        "name": "SampleHuman",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3997,
                        "src": "779:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_SampleHuman_$3997_$",
                          "typeString": "type(contract SampleHuman)"
                        }
                      },
                      "id": 4012,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3996,
                      "src": "779:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 4013,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "779:24:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4014,
                  "nodeType": "ExpressionStatement",
                  "src": "779:24:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4015,
                      "name": "mother",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4003,
                      "src": "809:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4016,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4005,
                      "src": "818:5:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "809:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4018,
                  "nodeType": "ExpressionStatement",
                  "src": "809:14:14"
                }
              ]
            },
            "documentation": null,
            "id": 4020,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 4008,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4007,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 43,
                  "src": "754:11:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "754:11:14"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4006,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4005,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 4020,
                  "src": "739:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4004,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "739:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "738:15:14"
            },
            "returnParameters": {
              "id": 4009,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "773:0:14"
            },
            "scope": 4021,
            "src": "719:109:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 4113,
        "src": "637:193:14"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4022,
              "name": "Initializable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 68,
              "src": "930:13:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Initializable_$68",
                "typeString": "contract Initializable"
              }
            },
            "id": 4023,
            "nodeType": "InheritanceSpecifier",
            "src": "930:13:14"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4024,
              "name": "SampleHuman",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3997,
              "src": "945:11:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SampleHuman_$3997",
                "typeString": "contract SampleHuman"
              }
            },
            "id": 4025,
            "nodeType": "InheritanceSpecifier",
            "src": "945:11:14"
          }
        ],
        "contractDependencies": [
          68,
          3997
        ],
        "contractKind": "contract",
        "documentation": "Sample base intializable contract that defines a field gramps",
        "fullyImplemented": true,
        "id": 4045,
        "linearizedBaseContracts": [
          4045,
          3997,
          68
        ],
        "name": "SampleGramps",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 4027,
            "name": "gramps",
            "nodeType": "VariableDeclaration",
            "scope": 4045,
            "src": "961:21:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4026,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "961:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4043,
              "nodeType": "Block",
              "src": "1041:55:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 4034,
                        "name": "SampleHuman",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3997,
                        "src": "1047:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_SampleHuman_$3997_$",
                          "typeString": "type(contract SampleHuman)"
                        }
                      },
                      "id": 4036,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3996,
                      "src": "1047:22:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 4037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1047:24:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4038,
                  "nodeType": "ExpressionStatement",
                  "src": "1047:24:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4041,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4039,
                      "name": "gramps",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4027,
                      "src": "1077:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4040,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4029,
                      "src": "1086:5:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1077:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4042,
                  "nodeType": "ExpressionStatement",
                  "src": "1077:14:14"
                }
              ]
            },
            "documentation": null,
            "id": 4044,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 4032,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4031,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 43,
                  "src": "1022:11:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1022:11:14"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4029,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 4044,
                  "src": "1007:13:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4028,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1007:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1006:15:14"
            },
            "returnParameters": {
              "id": 4033,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1041:0:14"
            },
            "scope": 4045,
            "src": "987:109:14",
            "stateMutability": "nonpayable",
            "superFunction": 4020,
            "visibility": "public"
          }
        ],
        "scope": 4113,
        "src": "905:193:14"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4046,
              "name": "Initializable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 68,
              "src": "1222:13:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Initializable_$68",
                "typeString": "contract Initializable"
              }
            },
            "id": 4047,
            "nodeType": "InheritanceSpecifier",
            "src": "1222:13:14"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4048,
              "name": "SampleGramps",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4045,
              "src": "1237:12:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SampleGramps_$4045",
                "typeString": "contract SampleGramps"
              }
            },
            "id": 4049,
            "nodeType": "InheritanceSpecifier",
            "src": "1237:12:14"
          }
        ],
        "contractDependencies": [
          68,
          3997,
          4045
        ],
        "contractKind": "contract",
        "documentation": "Sample base intializable contract that defines a field father and extends from gramps",
        "fullyImplemented": true,
        "id": 4072,
        "linearizedBaseContracts": [
          4072,
          4045,
          3997,
          68
        ],
        "name": "SampleFather",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 4051,
            "name": "father",
            "nodeType": "VariableDeclaration",
            "scope": 4072,
            "src": "1254:21:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4050,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1254:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4070,
              "nodeType": "Block",
              "src": "1353:65:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4063,
                        "name": "_gramps",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4053,
                        "src": "1383:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 4060,
                        "name": "SampleGramps",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4045,
                        "src": "1359:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_SampleGramps_$4045_$",
                          "typeString": "type(contract SampleGramps)"
                        }
                      },
                      "id": 4062,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4044,
                      "src": "1359:23:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 4064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1359:32:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4065,
                  "nodeType": "ExpressionStatement",
                  "src": "1359:32:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4066,
                      "name": "father",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4051,
                      "src": "1397:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4067,
                      "name": "_father",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4055,
                      "src": "1406:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1397:16:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4069,
                  "nodeType": "ExpressionStatement",
                  "src": "1397:16:14"
                }
              ]
            },
            "documentation": null,
            "id": 4071,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 4058,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4057,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 43,
                  "src": "1334:11:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1334:11:14"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4056,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4053,
                  "name": "_gramps",
                  "nodeType": "VariableDeclaration",
                  "scope": 4071,
                  "src": "1300:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4052,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1300:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4055,
                  "name": "_father",
                  "nodeType": "VariableDeclaration",
                  "scope": 4071,
                  "src": "1317:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4054,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1317:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1299:34:14"
            },
            "returnParameters": {
              "id": 4059,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1353:0:14"
            },
            "scope": 4072,
            "src": "1280:138:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 4113,
        "src": "1197:223:14"
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4073,
              "name": "Initializable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 68,
              "src": "1500:13:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Initializable_$68",
                "typeString": "contract Initializable"
              }
            },
            "id": 4074,
            "nodeType": "InheritanceSpecifier",
            "src": "1500:13:14"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4075,
              "name": "SampleMother",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4021,
              "src": "1515:12:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SampleMother_$4021",
                "typeString": "contract SampleMother"
              }
            },
            "id": 4076,
            "nodeType": "InheritanceSpecifier",
            "src": "1515:12:14"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4077,
              "name": "SampleFather",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4072,
              "src": "1529:12:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SampleFather_$4072",
                "typeString": "contract SampleFather"
              }
            },
            "id": 4078,
            "nodeType": "InheritanceSpecifier",
            "src": "1529:12:14"
          }
        ],
        "contractDependencies": [
          68,
          3997,
          4021,
          4045,
          4072
        ],
        "contractKind": "contract",
        "documentation": "Child extends from mother, father (gramps)",
        "fullyImplemented": true,
        "id": 4112,
        "linearizedBaseContracts": [
          4112,
          4072,
          4045,
          4021,
          3997,
          68
        ],
        "name": "SampleChild",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 4080,
            "name": "child",
            "nodeType": "VariableDeclaration",
            "scope": 4112,
            "src": "1546:20:14",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4079,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1546:7:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4110,
              "nodeType": "Block",
              "src": "1677:110:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4096,
                        "name": "_mother",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4082,
                        "src": "1707:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 4093,
                        "name": "SampleMother",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4021,
                        "src": "1683:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_SampleMother_$4021_$",
                          "typeString": "type(contract SampleMother)"
                        }
                      },
                      "id": 4095,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4020,
                      "src": "1683:23:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 4097,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1683:32:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4098,
                  "nodeType": "ExpressionStatement",
                  "src": "1683:32:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4102,
                        "name": "_gramps",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4084,
                        "src": "1745:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4103,
                        "name": "_father",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4086,
                        "src": "1754:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 4099,
                        "name": "SampleFather",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4072,
                        "src": "1721:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_SampleFather_$4072_$",
                          "typeString": "type(contract SampleFather)"
                        }
                      },
                      "id": 4101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "initialize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4071,
                      "src": "1721:23:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 4104,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1721:41:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4105,
                  "nodeType": "ExpressionStatement",
                  "src": "1721:41:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4108,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4106,
                      "name": "child",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4080,
                      "src": "1768:5:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4107,
                      "name": "_child",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4088,
                      "src": "1776:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1768:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4109,
                  "nodeType": "ExpressionStatement",
                  "src": "1768:14:14"
                }
              ]
            },
            "documentation": null,
            "id": 4111,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 4091,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 4090,
                  "name": "initializer",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 43,
                  "src": "1658:11:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1658:11:14"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4089,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4082,
                  "name": "_mother",
                  "nodeType": "VariableDeclaration",
                  "scope": 4111,
                  "src": "1591:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4081,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1591:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4084,
                  "name": "_gramps",
                  "nodeType": "VariableDeclaration",
                  "scope": 4111,
                  "src": "1608:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4083,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1608:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4086,
                  "name": "_father",
                  "nodeType": "VariableDeclaration",
                  "scope": 4111,
                  "src": "1625:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4085,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1625:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4088,
                  "name": "_child",
                  "nodeType": "VariableDeclaration",
                  "scope": 4111,
                  "src": "1642:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4087,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1642:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1590:67:14"
            },
            "returnParameters": {
              "id": 4092,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1677:0:14"
            },
            "scope": 4112,
            "src": "1571:216:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 4113,
        "src": "1476:313:14"
      }
    ],
    "src": "0:1790:14"
  },
  "bytecode": "0x608060405234801561001057600080fd5b50610505806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631c8aca3b146100675780634a6c9db6146100855780638129fc1c146100a7578063e4a30116146100b1578063fa39851f146100e9578063fe4b84df14610107575b600080fd5b61006f610135565b6040518082815260200191505060405180910390f35b61008d61013b565b604051808215151515815260200191505060405180910390f35b6100af61014e565b005b6100e7600480360360408110156100c757600080fd5b81019080803590602001909291908035906020019092919050505061026a565b005b6100f161037d565b6040518082815260200191505060405180910390f35b6101336004803603602081101561011d57600080fd5b8101908080359060200190929190505050610383565b005b60355481565b603360009054906101000a900460ff1681565b600060019054906101000a900460ff168061016d575061016c610494565b5b8061018457506000809054906101000a900460ff16155b15156101db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806104ac602e913960400191505060405180910390fd5b60008060019054906101000a900460ff16159050801561022b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6001603360006101000a81548160ff02191690831515021790555080156102675760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806102895750610288610494565b5b806102a057506000809054906101000a900460ff16155b15156102f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806104ac602e913960400191505060405180910390fd5b60008060019054906101000a900460ff161590508015610347576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61035083610383565b8160358190555080156103785760008060016101000a81548160ff0219169083151502179055505b505050565b60345481565b600060019054906101000a900460ff16806103a257506103a1610494565b5b806103b957506000809054906101000a900460ff16155b1515610410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806104ac602e913960400191505060405180910390fd5b60008060019054906101000a900460ff161590508015610460576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61046861014e565b8160348190555080156104905760008060016101000a81548160ff0219169083151502179055505b5050565b6000803090506000813b905060008114925050509056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a723058201080a7a4ce3accb59130710b1f25b4a9f2340c3e8fb6490df0c0e81322dae05b0029",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80631c8aca3b146100675780634a6c9db6146100855780638129fc1c146100a7578063e4a30116146100b1578063fa39851f146100e9578063fe4b84df14610107575b600080fd5b61006f610135565b6040518082815260200191505060405180910390f35b61008d61013b565b604051808215151515815260200191505060405180910390f35b6100af61014e565b005b6100e7600480360360408110156100c757600080fd5b81019080803590602001909291908035906020019092919050505061026a565b005b6100f161037d565b6040518082815260200191505060405180910390f35b6101336004803603602081101561011d57600080fd5b8101908080359060200190929190505050610383565b005b60355481565b603360009054906101000a900460ff1681565b600060019054906101000a900460ff168061016d575061016c610494565b5b8061018457506000809054906101000a900460ff16155b15156101db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806104ac602e913960400191505060405180910390fd5b60008060019054906101000a900460ff16159050801561022b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6001603360006101000a81548160ff02191690831515021790555080156102675760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806102895750610288610494565b5b806102a057506000809054906101000a900460ff16155b15156102f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806104ac602e913960400191505060405180910390fd5b60008060019054906101000a900460ff161590508015610347576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61035083610383565b8160358190555080156103785760008060016101000a81548160ff0219169083151502179055505b505050565b60345481565b600060019054906101000a900460ff16806103a257506103a1610494565b5b806103b957506000809054906101000a900460ff16155b1515610410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806104ac602e913960400191505060405180910390fd5b60008060019054906101000a900460ff161590508015610460576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61046861014e565b8160348190555080156104905760008060016101000a81548160ff0219169083151502179055505b5050565b6000803090506000813b905060008114925050509056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a723058201080a7a4ce3accb59130710b1f25b4a9f2340c3e8fb6490df0c0e81322dae05b0029",
  "compiler": {
    "name": "solc",
    "version": "0.5.3+commit.10d17f24.Emscripten.clang",
    "optimizer": {},
    "evmVersion": "constantinople"
  }
}
