{
  "id":"1c8aae80333cb8325119550f4fb6e12a",
  "_format":"hh-sol-build-info-1",
  "solcVersion":"0.5.0",
  "solcLongVersion":"0.5.0+commit.1d4f565a",
  "input":{
    "language":"Solidity",
    "sources":{
      "contracts/OpCodes.sol":{
        "content":"pragma solidity >=0.4.21 <0.6.0;\n\ncontract Test1 {\n  function isSameAddress(address a, address b) public returns(bool){  //Simply add the two arguments and return\n      if (a == b) return true;\n      return false;\n  }\n}\n\ncontract OpCodes {\n\n    Test1 test1;\n\n    constructor() public {  //Constructor function\n      test1 = new Test1();  //Create new \"Test1\" function\n    }\n\n   modifier onlyOwner(address _owner) {\n      require(msg.sender == _owner);\n      _;\n   }\n   // Add a todo to the list\n   function test() public {\n\n     //simple_instructions\n     /*assembly { pop(sub(dup1, mul(dup1, dup1))) }*/\n\n     //keywords\n     assembly { pop(address) return(2, byte(2,1)) }\n\n     //label_complex\n     /*assembly { 7 abc: 8 eq jump(abc) jumpi(eq(7, 8), abc) pop }\n     assembly { pop(jumpi(eq(7, 8), abc)) jump(abc) }*/\n\n     //functional\n     /*assembly { let x := 2 add(7, mul(6, x)) mul(7, 8) add =: x }*/\n\n     //for_statement\n     assembly { for { let i := 1 } lt(i, 5) { i := add(i, 1) } {} }\n     assembly { for { let i := 6 } gt(i, 5) { i := add(i, 1) } {} }\n     assembly { for { let i := 1 } slt(i, 5) { i := add(i, 1) } {} }\n     assembly { for { let i := 6 } sgt(i, 5) { i := add(i, 1) } {} }\n\n     //no_opcodes_in_strict\n     assembly { pop(callvalue()) }\n\n     //no_dup_swap_in_strict\n     /*assembly { swap1() }*/\n\n     //print_functional\n     assembly { let x := mul(sload(0x12), 7) }\n\n     //print_if\n     assembly { if 2 { pop(mload(0)) }}\n\n     //function_definitions_multiple_args\n     assembly { function f(a, d){ mstore(a, d) } function g(a, d) -> x, y {}}\n\n     //sstore\n     assembly { function f(a, d){ sstore(a, d) } function g(a, d) -> x, y {}}\n\n     //mstore8\n     assembly { function f(a, d){ mstore8(a, d) } function g(a, d) -> x, y {}}\n\n     //calldatacopy\n     assembly {\n       let a := mload(0x40)\n       let b := add(a, 32)\n       calldatacopy(a, 4, 32)\n       /*calldatacopy(b, add(4, 32), 32)*/\n       /*result := add(mload(a), mload(b))*/\n     }\n\n     //codecopy\n     assembly {\n       let a := mload(0x40)\n       let b := add(a, 32)\n       codecopy(a, 4, 32)\n     }\n\n     //codecopy\n     assembly {\n       let a := mload(0x40)\n       let b := add(a, 32)\n       extcodecopy(0, a, 4, 32)\n     }\n\n     //for_statement\n     assembly { let x := calldatasize() for { let i := 0} lt(i, x) { i := add(i, 1) } { mstore(i, 2) } }\n\n     //keccak256\n     assembly { pop(keccak256(0,0)) }\n\n     //returndatasize\n     assembly { let r := returndatasize }\n\n     //returndatacopy\n     assembly { returndatacopy(64, 32, 0) }\n     //byzantium vs const Constantinople\n     //staticcall\n     assembly { pop(staticcall(10000, 0x123, 64, 0x10, 128, 0x10)) }\n\n     /*//create2 Constantinople\n     assembly { pop(create2(10, 0x123, 32, 64)) }*/\n\n     //create Constantinople\n     assembly { pop(create(10, 0x123, 32)) }\n\n     //shift Constantinople\n     /*assembly { pop(shl(10, 32)) }\n     assembly { pop(shr(10, 32)) }\n     assembly { pop(sar(10, 32)) }*/\n\n\n     //not\n     assembly { pop( not(0x1f)) }\n\n     //exp\n     assembly { pop( exp(2, 226)) }\n\n     //mod\n     assembly { pop( mod(3, 9)) }\n\n     //smod\n     assembly { pop( smod(3, 9)) }\n\n     //div\n     assembly { pop( div(4, 2)) }\n\n     //sdiv\n     assembly { pop( sdiv(4, 2)) }\n\n     //iszero\n     assembly { pop(iszero(1)) }\n\n     //and\n     assembly { pop(and(2,3)) }\n\n     //or\n     assembly { pop(or(3,3)) }\n\n     //xor\n     assembly { pop(xor(3,3)) }\n\n     //addmod\n     assembly { pop(addmod(3,3,6)) }\n\n     //mulmod\n     assembly { pop(mulmod(3,3,3)) }\n\n     //signextend\n     assembly { pop(signextend(1, 10)) }\n\n     //sha3\n     assembly { pop(calldataload(0)) }\n\n     //blockhash\n     assembly { pop(blockhash(sub(number(), 1))) }\n\n     //balance\n     assembly { pop(balance(0x0)) }\n\n     //caller\n     assembly { pop(caller()) }\n\n     //codesize\n     assembly { pop(codesize()) }\n\n     //extcodesize\n     assembly { pop(extcodesize(0x1)) }\n\n     //origin\n     assembly { pop(origin()) }\n\n     //gas\n     assembly {  pop(gas())}\n\n     //msize\n     assembly {  pop(msize())}\n\n     //pc\n     assembly {  pop(pc())}\n\n     //gasprice\n     assembly {  pop(gasprice())}\n\n     //coinbase\n     assembly {  pop(coinbase())}\n\n     //timestamp\n     assembly {  pop(timestamp())}\n\n     //number\n     assembly {  pop(number())}\n\n     //difficulty\n     assembly {  pop(difficulty())}\n\n     //gaslimit\n     assembly {  pop(gaslimit())}\n\n     //call\n     address contractAddr = address(test1);\n     bytes4 sig = bytes4(keccak256(\"isSameAddress(address,address)\")); //Function signature\n     address a = msg.sender;\n\n     assembly {\n         let x := mload(0x40)   //Find empty storage location using \"free memory pointer\"\n         mstore(x,sig) //Place signature at beginning of empty storage\n         mstore(add(x,0x04),a) // first address parameter. just after signature\n         mstore(add(x,0x24),a) // 2nd address parameter - first padded. add 32 bytes (not 20 bytes)\n         mstore(0x40,add(x,0x64)) // this is missing in other examples. Set free pointer before function call. so it is used by called function.\n          // new free pointer position after the output values of the called function.\n\n         let success := call(\n                         5000, //5k gas\n                         contractAddr, //To addr\n                         0,    //No wei passed\n                         x,    // Inputs are at location x\n                         0x44, //Inputs size two padded, so 68 bytes\n                         x,    //Store output over input\n                         0x20) //Output is 32 bytes long\n     }\n\n     //callcode\n     assembly {\n         let x := mload(0x40)   //Find empty storage location using \"free memory pointer\"\n         mstore(x,sig) //Place signature at beginning of empty storage\n         mstore(add(x,0x04),a) // first address parameter. just after signature\n         mstore(add(x,0x24),a) // 2nd address parameter - first padded. add 32 bytes (not 20 bytes)\n         mstore(0x40,add(x,0x64)) // this is missing in other examples. Set free pointer before function call. so it is used by called function.\n          // new free pointer position after the output values of the called function.\n\n         let success := callcode(\n                         5000, //5k gas\n                         contractAddr, //To addr\n                         0,    //No wei passed\n                         x,    // Inputs are at location x\n                         0x44, //Inputs size two padded, so 68 bytes\n                         x,    //Store output over input\n                         0x20) //Output is 32 bytes long\n     }\n\n     //delegatecall\n     assembly {\n         let x := mload(0x40)   //Find empty storage location using \"free memory pointer\"\n         mstore(x,sig) //Place signature at beginning of empty storage\n         mstore(add(x,0x04),a) // first address parameter. just after signature\n         mstore(add(x,0x24),a) // 2nd address parameter - first padded. add 32 bytes (not 20 bytes)\n         mstore(0x40,add(x,0x64)) // this is missing in other examples. Set free pointer before function call. so it is used by called function.\n          // new free pointer position after the output values of the called function.\n\n         let success := delegatecall(\n                         5000, //5k gas\n                         contractAddr, //To addr\n                         x,    // Inputs are at location x\n                         0x44, //Inputs size two padded, so 68 bytes\n                         x,    //Store output over input\n                         0x20) //Output is 32 bytes long\n     }\n\n     uint256 _id = 0x420042;\n\n     //log0\n     log0(\n         bytes32(0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20)\n     );\n\n     //log1\n     log1(\n         bytes32(0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20),\n         bytes32(0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20)\n     );\n\n     //log2\n     log2(\n         bytes32(0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20),\n         bytes32(0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20),\n         bytes32(uint256(msg.sender))\n     );\n\n     //log3\n     log3(\n         bytes32(0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20),\n         bytes32(0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20),\n         bytes32(uint256(msg.sender)),\n         bytes32(_id)\n     );\n\n     //log4\n     log4(\n         bytes32(0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20),\n         bytes32(0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20),\n         bytes32(uint256(msg.sender)),\n         bytes32(_id),\n         bytes32(_id)\n\n     );\n\n     //selfdestruct\n     assembly { selfdestruct(0x02) }\n   }\n\n  function test_revert() public {\n\n    //revert\n    assembly{ revert(0, 0) }\n  }\n\n  function test_invalid() public {\n\n    //revert\n    assembly{ invalid() }\n  }\n\n  function test_stop() public {\n\n    //revert\n    assembly{ stop() }\n  }\n\n}\n"
      }
    },
    "settings":{
      "optimizer":{
        "enabled":true,
        "runs":1000000
      },
      "metadata":{
        "bytecodeHash":"none"
      },
      "outputSelection":{
        "*":{
          "*":[
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers",
            "metadata",
            "storageLayout"
          ],
          "":[
            "ast"
          ]
        }
      }
    }
  },
  "output":{
    "errors":[
      {
        "component":"general",
        "formattedMessage":"contracts/OpCodes.sol:4:3: Warning: Function state mutability can be restricted to pure\n  function isSameAddress(address a, address b) public returns(bool){  //Simply add the two arguments and return\n  ^ (Relevant source part starts here and spans across multiple lines).\n",
        "message":"Function state mutability can be restricted to pure",
        "severity":"warning",
        "sourceLocation":{
          "end":217,
          "file":"contracts/OpCodes.sol",
          "start":53
        },
        "type":"Warning"
      },
      {
        "component":"general",
        "formattedMessage":"contracts/OpCodes.sol:304:3: Warning: Function state mutability can be restricted to pure\n  function test_revert() public {\n  ^ (Relevant source part starts here and spans across multiple lines).\n",
        "message":"Function state mutability can be restricted to pure",
        "severity":"warning",
        "sourceLocation":{
          "end":8895,
          "file":"contracts/OpCodes.sol",
          "start":8817
        },
        "type":"Warning"
      },
      {
        "component":"general",
        "formattedMessage":"contracts/OpCodes.sol:310:3: Warning: Function state mutability can be restricted to pure\n  function test_invalid() public {\n  ^ (Relevant source part starts here and spans across multiple lines).\n",
        "message":"Function state mutability can be restricted to pure",
        "severity":"warning",
        "sourceLocation":{
          "end":8975,
          "file":"contracts/OpCodes.sol",
          "start":8899
        },
        "type":"Warning"
      },
      {
        "component":"general",
        "formattedMessage":"contracts/OpCodes.sol:316:3: Warning: Function state mutability can be restricted to pure\n  function test_stop() public {\n  ^ (Relevant source part starts here and spans across multiple lines).\n",
        "message":"Function state mutability can be restricted to pure",
        "severity":"warning",
        "sourceLocation":{
          "end":9049,
          "file":"contracts/OpCodes.sol",
          "start":8979
        },
        "type":"Warning"
      }
    ],
    "sources":{
      "contracts/OpCodes.sol":{
        "ast":{
          "absolutePath":"contracts/OpCodes.sol",
          "exportedSymbols":{
            "OpCodes":[
              210
            ],
            "Test1":[
              20
            ]
          },
          "id":211,
          "nodeType":"SourceUnit",
          "nodes":[
            {
              "id":1,
              "literals":[
                "solidity",
                ">=",
                "0.4",
                ".21",
                "<",
                "0.6",
                ".0"
              ],
              "nodeType":"PragmaDirective",
              "src":"0:32:0"
            },
            {
              "baseContracts":[
                
              ],
              "contractDependencies":[
                
              ],
              "contractKind":"contract",
              "documentation":null,
              "fullyImplemented":true,
              "id":20,
              "linearizedBaseContracts":[
                20
              ],
              "name":"Test1",
              "nodeType":"ContractDefinition",
              "nodes":[
                {
                  "body":{
                    "id":18,
                    "nodeType":"Block",
                    "src":"118:99:0",
                    "statements":[
                      {
                        "condition":{
                          "argumentTypes":null,
                          "commonType":{
                            "typeIdentifier":"t_address",
                            "typeString":"address"
                          },
                          "id":12,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "lValueRequested":false,
                          "leftExpression":{
                            "argumentTypes":null,
                            "id":10,
                            "name":"a",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              
                            ],
                            "referencedDeclaration":3,
                            "src":"173:1:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_address",
                              "typeString":"address"
                            }
                          },
                          "nodeType":"BinaryOperation",
                          "operator":"==",
                          "rightExpression":{
                            "argumentTypes":null,
                            "id":11,
                            "name":"b",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              
                            ],
                            "referencedDeclaration":5,
                            "src":"178:1:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_address",
                              "typeString":"address"
                            }
                          },
                          "src":"173:6:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_bool",
                            "typeString":"bool"
                          }
                        },
                        "falseBody":null,
                        "id":15,
                        "nodeType":"IfStatement",
                        "src":"169:23:0",
                        "trueBody":{
                          "expression":{
                            "argumentTypes":null,
                            "hexValue":"74727565",
                            "id":13,
                            "isConstant":false,
                            "isLValue":false,
                            "isPure":true,
                            "kind":"bool",
                            "lValueRequested":false,
                            "nodeType":"Literal",
                            "src":"188:4:0",
                            "subdenomination":null,
                            "typeDescriptions":{
                              "typeIdentifier":"t_bool",
                              "typeString":"bool"
                            },
                            "value":"true"
                          },
                          "functionReturnParameters":9,
                          "id":14,
                          "nodeType":"Return",
                          "src":"181:11:0"
                        }
                      },
                      {
                        "expression":{
                          "argumentTypes":null,
                          "hexValue":"66616c7365",
                          "id":16,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":true,
                          "kind":"bool",
                          "lValueRequested":false,
                          "nodeType":"Literal",
                          "src":"207:5:0",
                          "subdenomination":null,
                          "typeDescriptions":{
                            "typeIdentifier":"t_bool",
                            "typeString":"bool"
                          },
                          "value":"false"
                        },
                        "functionReturnParameters":9,
                        "id":17,
                        "nodeType":"Return",
                        "src":"200:12:0"
                      }
                    ]
                  },
                  "documentation":null,
                  "id":19,
                  "implemented":true,
                  "kind":"function",
                  "modifiers":[
                    
                  ],
                  "name":"isSameAddress",
                  "nodeType":"FunctionDefinition",
                  "parameters":{
                    "id":6,
                    "nodeType":"ParameterList",
                    "parameters":[
                      {
                        "constant":false,
                        "id":3,
                        "name":"a",
                        "nodeType":"VariableDeclaration",
                        "scope":19,
                        "src":"76:9:0",
                        "stateVariable":false,
                        "storageLocation":"default",
                        "typeDescriptions":{
                          "typeIdentifier":"t_address",
                          "typeString":"address"
                        },
                        "typeName":{
                          "id":2,
                          "name":"address",
                          "nodeType":"ElementaryTypeName",
                          "src":"76:7:0",
                          "stateMutability":"nonpayable",
                          "typeDescriptions":{
                            "typeIdentifier":"t_address",
                            "typeString":"address"
                          }
                        },
                        "value":null,
                        "visibility":"internal"
                      },
                      {
                        "constant":false,
                        "id":5,
                        "name":"b",
                        "nodeType":"VariableDeclaration",
                        "scope":19,
                        "src":"87:9:0",
                        "stateVariable":false,
                        "storageLocation":"default",
                        "typeDescriptions":{
                          "typeIdentifier":"t_address",
                          "typeString":"address"
                        },
                        "typeName":{
                          "id":4,
                          "name":"address",
                          "nodeType":"ElementaryTypeName",
                          "src":"87:7:0",
                          "stateMutability":"nonpayable",
                          "typeDescriptions":{
                            "typeIdentifier":"t_address",
                            "typeString":"address"
                          }
                        },
                        "value":null,
                        "visibility":"internal"
                      }
                    ],
                    "src":"75:22:0"
                  },
                  "returnParameters":{
                    "id":9,
                    "nodeType":"ParameterList",
                    "parameters":[
                      {
                        "constant":false,
                        "id":8,
                        "name":"",
                        "nodeType":"VariableDeclaration",
                        "scope":19,
                        "src":"113:4:0",
                        "stateVariable":false,
                        "storageLocation":"default",
                        "typeDescriptions":{
                          "typeIdentifier":"t_bool",
                          "typeString":"bool"
                        },
                        "typeName":{
                          "id":7,
                          "name":"bool",
                          "nodeType":"ElementaryTypeName",
                          "src":"113:4:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_bool",
                            "typeString":"bool"
                          }
                        },
                        "value":null,
                        "visibility":"internal"
                      }
                    ],
                    "src":"112:6:0"
                  },
                  "scope":20,
                  "src":"53:164:0",
                  "stateMutability":"nonpayable",
                  "superFunction":null,
                  "visibility":"public"
                }
              ],
              "scope":211,
              "src":"34:185:0"
            },
            {
              "baseContracts":[
                
              ],
              "contractDependencies":[
                20
              ],
              "contractKind":"contract",
              "documentation":null,
              "fullyImplemented":true,
              "id":210,
              "linearizedBaseContracts":[
                210
              ],
              "name":"OpCodes",
              "nodeType":"ContractDefinition",
              "nodes":[
                {
                  "constant":false,
                  "id":22,
                  "name":"test1",
                  "nodeType":"VariableDeclaration",
                  "scope":210,
                  "src":"245:11:0",
                  "stateVariable":true,
                  "storageLocation":"default",
                  "typeDescriptions":{
                    "typeIdentifier":"t_contract$_Test1_$20",
                    "typeString":"contract Test1"
                  },
                  "typeName":{
                    "contractScope":null,
                    "id":21,
                    "name":"Test1",
                    "nodeType":"UserDefinedTypeName",
                    "referencedDeclaration":20,
                    "src":"245:5:0",
                    "typeDescriptions":{
                      "typeIdentifier":"t_contract$_Test1_$20",
                      "typeString":"contract Test1"
                    }
                  },
                  "value":null,
                  "visibility":"internal"
                },
                {
                  "body":{
                    "id":31,
                    "nodeType":"Block",
                    "src":"284:89:0",
                    "statements":[
                      {
                        "expression":{
                          "argumentTypes":null,
                          "id":29,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "lValueRequested":false,
                          "leftHandSide":{
                            "argumentTypes":null,
                            "id":25,
                            "name":"test1",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              
                            ],
                            "referencedDeclaration":22,
                            "src":"316:5:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_contract$_Test1_$20",
                              "typeString":"contract Test1"
                            }
                          },
                          "nodeType":"Assignment",
                          "operator":"=",
                          "rightHandSide":{
                            "argumentTypes":null,
                            "arguments":[
                              
                            ],
                            "expression":{
                              "argumentTypes":[
                                
                              ],
                              "id":27,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":false,
                              "lValueRequested":false,
                              "nodeType":"NewExpression",
                              "src":"324:9:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Test1_$20_$",
                                "typeString":"function () returns (contract Test1)"
                              },
                              "typeName":{
                                "contractScope":null,
                                "id":26,
                                "name":"Test1",
                                "nodeType":"UserDefinedTypeName",
                                "referencedDeclaration":20,
                                "src":"328:5:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_contract$_Test1_$20",
                                  "typeString":"contract Test1"
                                }
                              }
                            },
                            "id":28,
                            "isConstant":false,
                            "isLValue":false,
                            "isPure":false,
                            "kind":"functionCall",
                            "lValueRequested":false,
                            "names":[
                              
                            ],
                            "nodeType":"FunctionCall",
                            "src":"324:11:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_contract$_Test1_$20",
                              "typeString":"contract Test1"
                            }
                          },
                          "src":"316:19:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_contract$_Test1_$20",
                            "typeString":"contract Test1"
                          }
                        },
                        "id":30,
                        "nodeType":"ExpressionStatement",
                        "src":"316:19:0"
                      }
                    ]
                  },
                  "documentation":null,
                  "id":32,
                  "implemented":true,
                  "kind":"constructor",
                  "modifiers":[
                    
                  ],
                  "name":"",
                  "nodeType":"FunctionDefinition",
                  "parameters":{
                    "id":23,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"274:2:0"
                  },
                  "returnParameters":{
                    "id":24,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"284:0:0"
                  },
                  "scope":210,
                  "src":"263:110:0",
                  "stateMutability":"nonpayable",
                  "superFunction":null,
                  "visibility":"public"
                },
                {
                  "body":{
                    "id":44,
                    "nodeType":"Block",
                    "src":"413:52:0",
                    "statements":[
                      {
                        "expression":{
                          "argumentTypes":null,
                          "arguments":[
                            {
                              "argumentTypes":null,
                              "commonType":{
                                "typeIdentifier":"t_address",
                                "typeString":"address"
                              },
                              "id":40,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":false,
                              "lValueRequested":false,
                              "leftExpression":{
                                "argumentTypes":null,
                                "expression":{
                                  "argumentTypes":null,
                                  "id":37,
                                  "name":"msg",
                                  "nodeType":"Identifier",
                                  "overloadedDeclarations":[
                                    
                                  ],
                                  "referencedDeclaration":225,
                                  "src":"429:3:0",
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_magic_message",
                                    "typeString":"msg"
                                  }
                                },
                                "id":38,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":false,
                                "lValueRequested":false,
                                "memberName":"sender",
                                "nodeType":"MemberAccess",
                                "referencedDeclaration":null,
                                "src":"429:10:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_address_payable",
                                  "typeString":"address payable"
                                }
                              },
                              "nodeType":"BinaryOperation",
                              "operator":"==",
                              "rightExpression":{
                                "argumentTypes":null,
                                "id":39,
                                "name":"_owner",
                                "nodeType":"Identifier",
                                "overloadedDeclarations":[
                                  
                                ],
                                "referencedDeclaration":34,
                                "src":"443:6:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_address",
                                  "typeString":"address"
                                }
                              },
                              "src":"429:20:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bool",
                                "typeString":"bool"
                              }
                            }
                          ],
                          "expression":{
                            "argumentTypes":[
                              {
                                "typeIdentifier":"t_bool",
                                "typeString":"bool"
                              }
                            ],
                            "id":36,
                            "name":"require",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              228,
                              229
                            ],
                            "referencedDeclaration":228,
                            "src":"421:7:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$",
                              "typeString":"function (bool) pure"
                            }
                          },
                          "id":41,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "kind":"functionCall",
                          "lValueRequested":false,
                          "names":[
                            
                          ],
                          "nodeType":"FunctionCall",
                          "src":"421:29:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_tuple$__$",
                            "typeString":"tuple()"
                          }
                        },
                        "id":42,
                        "nodeType":"ExpressionStatement",
                        "src":"421:29:0"
                      },
                      {
                        "id":43,
                        "nodeType":"PlaceholderStatement",
                        "src":"458:1:0"
                      }
                    ]
                  },
                  "documentation":null,
                  "id":45,
                  "name":"onlyOwner",
                  "nodeType":"ModifierDefinition",
                  "parameters":{
                    "id":35,
                    "nodeType":"ParameterList",
                    "parameters":[
                      {
                        "constant":false,
                        "id":34,
                        "name":"_owner",
                        "nodeType":"VariableDeclaration",
                        "scope":45,
                        "src":"397:14:0",
                        "stateVariable":false,
                        "storageLocation":"default",
                        "typeDescriptions":{
                          "typeIdentifier":"t_address",
                          "typeString":"address"
                        },
                        "typeName":{
                          "id":33,
                          "name":"address",
                          "nodeType":"ElementaryTypeName",
                          "src":"397:7:0",
                          "stateMutability":"nonpayable",
                          "typeDescriptions":{
                            "typeIdentifier":"t_address",
                            "typeString":"address"
                          }
                        },
                        "value":null,
                        "visibility":"internal"
                      }
                    ],
                    "src":"396:16:0"
                  },
                  "src":"378:87:0",
                  "visibility":"internal"
                },
                {
                  "body":{
                    "id":193,
                    "nodeType":"Block",
                    "src":"521:8292:0",
                    "statements":[
                      {
                        "externalReferences":[
                          
                        ],
                        "id":48,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(address())\n    return(2, byte(2, 1))\n}",
                        "src":"627:316:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":49,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    for {\n        let i := 1\n    }\n    lt(i, 5)\n    {\n        i := add(i, 1)\n    }\n    {\n    }\n}",
                        "src":"935:76:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":50,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    for {\n        let i := 6\n    }\n    gt(i, 5)\n    {\n        i := add(i, 1)\n    }\n    {\n    }\n}",
                        "src":"1003:76:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":51,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    for {\n        let i := 1\n    }\n    slt(i, 5)\n    {\n        i := add(i, 1)\n    }\n    {\n    }\n}",
                        "src":"1071:77:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":52,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    for {\n        let i := 6\n    }\n    sgt(i, 5)\n    {\n        i := add(i, 1)\n    }\n    {\n    }\n}",
                        "src":"1140:106:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":53,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(callvalue())\n}",
                        "src":"1238:128:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":54,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    let x := mul(sload(0x12), 7)\n}",
                        "src":"1358:72:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":55,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    if 2\n    {\n        pop(mload(0))\n    }\n}",
                        "src":"1422:91:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":56,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    function f(a, d)\n    {\n        mstore(a, d)\n    }\n    function g(a, d) -> x, y\n    {\n    }\n}",
                        "src":"1505:101:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":57,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    function f(a, d)\n    {\n        sstore(a, d)\n    }\n    function g(a, d) -> x, y\n    {\n    }\n}",
                        "src":"1598:102:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":58,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    function f(a, d)\n    {\n        mstore8(a, d)\n    }\n    function g(a, d) -> x, y\n    {\n    }\n}",
                        "src":"1692:108:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":59,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    let a := mload(0x40)\n    let b := add(a, 32)\n    calldatacopy(a, 4, 32)\n}",
                        "src":"1792:221:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":60,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    let a := mload(0x40)\n    let b := add(a, 32)\n    codecopy(a, 4, 32)\n}",
                        "src":"2005:129:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":61,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    let a := mload(0x40)\n    let b := add(a, 32)\n    extcodecopy(0, a, 4, 32)\n}",
                        "src":"2126:140:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":62,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    let x := calldatasize()\n    for {\n        let i := 0\n    }\n    lt(i, x)\n    {\n        i := add(i, 1)\n    }\n    {\n        mstore(i, 2)\n    }\n}",
                        "src":"2258:131:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":63,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(keccak256(0, 0))\n}",
                        "src":"2381:69:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":64,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    let r := returndatasize()\n}",
                        "src":"2442:73:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":65,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    returndatacopy(64, 32, 0)\n}",
                        "src":"2507:111:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":66,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(staticcall(10000, 0x123, 64, 0x10, 128, 0x10))\n}",
                        "src":"2610:192:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":67,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(create(10, 0x123, 32))\n}",
                        "src":"2794:204:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":68,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(not(0x1f))\n}",
                        "src":"2990:54:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":69,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(exp(2, 226))\n}",
                        "src":"3036:56:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":70,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(mod(3, 9))\n}",
                        "src":"3084:55:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":71,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(smod(3, 9))\n}",
                        "src":"3131:55:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":72,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(div(4, 2))\n}",
                        "src":"3178:55:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":73,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(sdiv(4, 2))\n}",
                        "src":"3225:58:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":74,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(iszero(1))\n}",
                        "src":"3275:53:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":75,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(and(2, 3))\n}",
                        "src":"3320:51:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":76,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(or(3, 3))\n}",
                        "src":"3363:51:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":77,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(xor(3, 3))\n}",
                        "src":"3406:55:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":78,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(addmod(3, 3, 6))\n}",
                        "src":"3453:60:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":79,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(mulmod(3, 3, 3))\n}",
                        "src":"3505:64:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":80,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(signextend(1, 10))\n}",
                        "src":"3561:62:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":81,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(calldataload(0))\n}",
                        "src":"3615:65:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":82,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(blockhash(sub(number(), 1)))\n}",
                        "src":"3672:75:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":83,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(balance(0x0))\n}",
                        "src":"3739:59:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":84,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(caller())\n}",
                        "src":"3790:57:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":85,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(codesize())\n}",
                        "src":"3839:62:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":86,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(extcodesize(0x1))\n}",
                        "src":"3893:63:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":87,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(origin())\n}",
                        "src":"3948:52:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":88,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(gas())\n}",
                        "src":"3992:51:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":89,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(msize())\n}",
                        "src":"4035:50:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":90,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(pc())\n}",
                        "src":"4077:53:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":91,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(gasprice())\n}",
                        "src":"4122:59:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":92,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(coinbase())\n}",
                        "src":"4173:60:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":93,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(timestamp())\n}",
                        "src":"4225:58:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":94,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(number())\n}",
                        "src":"4275:59:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":95,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(difficulty())\n}",
                        "src":"4326:61:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":96,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    pop(gaslimit())\n}",
                        "src":"4379:54:0"
                      },
                      {
                        "assignments":[
                          98
                        ],
                        "declarations":[
                          {
                            "constant":false,
                            "id":98,
                            "name":"contractAddr",
                            "nodeType":"VariableDeclaration",
                            "scope":193,
                            "src":"4426:20:0",
                            "stateVariable":false,
                            "storageLocation":"default",
                            "typeDescriptions":{
                              "typeIdentifier":"t_address",
                              "typeString":"address"
                            },
                            "typeName":{
                              "id":97,
                              "name":"address",
                              "nodeType":"ElementaryTypeName",
                              "src":"4426:7:0",
                              "stateMutability":"nonpayable",
                              "typeDescriptions":{
                                "typeIdentifier":"t_address",
                                "typeString":"address"
                              }
                            },
                            "value":null,
                            "visibility":"internal"
                          }
                        ],
                        "id":102,
                        "initialValue":{
                          "argumentTypes":null,
                          "arguments":[
                            {
                              "argumentTypes":null,
                              "id":100,
                              "name":"test1",
                              "nodeType":"Identifier",
                              "overloadedDeclarations":[
                                
                              ],
                              "referencedDeclaration":22,
                              "src":"4457:5:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_contract$_Test1_$20",
                                "typeString":"contract Test1"
                              }
                            }
                          ],
                          "expression":{
                            "argumentTypes":[
                              {
                                "typeIdentifier":"t_contract$_Test1_$20",
                                "typeString":"contract Test1"
                              }
                            ],
                            "id":99,
                            "isConstant":false,
                            "isLValue":false,
                            "isPure":true,
                            "lValueRequested":false,
                            "nodeType":"ElementaryTypeNameExpression",
                            "src":"4449:7:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_type$_t_address_$",
                              "typeString":"type(address)"
                            },
                            "typeName":"address"
                          },
                          "id":101,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "kind":"typeConversion",
                          "lValueRequested":false,
                          "names":[
                            
                          ],
                          "nodeType":"FunctionCall",
                          "src":"4449:14:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_address",
                            "typeString":"address"
                          }
                        },
                        "nodeType":"VariableDeclarationStatement",
                        "src":"4426:37:0"
                      },
                      {
                        "assignments":[
                          104
                        ],
                        "declarations":[
                          {
                            "constant":false,
                            "id":104,
                            "name":"sig",
                            "nodeType":"VariableDeclaration",
                            "scope":193,
                            "src":"4470:10:0",
                            "stateVariable":false,
                            "storageLocation":"default",
                            "typeDescriptions":{
                              "typeIdentifier":"t_bytes4",
                              "typeString":"bytes4"
                            },
                            "typeName":{
                              "id":103,
                              "name":"bytes4",
                              "nodeType":"ElementaryTypeName",
                              "src":"4470:6:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes4",
                                "typeString":"bytes4"
                              }
                            },
                            "value":null,
                            "visibility":"internal"
                          }
                        ],
                        "id":110,
                        "initialValue":{
                          "argumentTypes":null,
                          "arguments":[
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"697353616d654164647265737328616464726573732c6164647265737329",
                                  "id":107,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"string",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"4500:32:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_stringliteral_161e71502cfa7ac78ebef094d81dd09ef9cf93cf206fa05a6d6410c0861e3d96",
                                    "typeString":"literal_string \"isSameAddress(address,address)\""
                                  },
                                  "value":"isSameAddress(address,address)"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_stringliteral_161e71502cfa7ac78ebef094d81dd09ef9cf93cf206fa05a6d6410c0861e3d96",
                                    "typeString":"literal_string \"isSameAddress(address,address)\""
                                  }
                                ],
                                "id":106,
                                "name":"keccak256",
                                "nodeType":"Identifier",
                                "overloadedDeclarations":[
                                  
                                ],
                                "referencedDeclaration":219,
                                "src":"4490:9:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                  "typeString":"function (bytes memory) pure returns (bytes32)"
                                }
                              },
                              "id":108,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"functionCall",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"4490:43:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            }
                          ],
                          "expression":{
                            "argumentTypes":[
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            ],
                            "id":105,
                            "isConstant":false,
                            "isLValue":false,
                            "isPure":true,
                            "lValueRequested":false,
                            "nodeType":"ElementaryTypeNameExpression",
                            "src":"4483:6:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_type$_t_bytes4_$",
                              "typeString":"type(bytes4)"
                            },
                            "typeName":"bytes4"
                          },
                          "id":109,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":true,
                          "kind":"typeConversion",
                          "lValueRequested":false,
                          "names":[
                            
                          ],
                          "nodeType":"FunctionCall",
                          "src":"4483:51:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_bytes4",
                            "typeString":"bytes4"
                          }
                        },
                        "nodeType":"VariableDeclarationStatement",
                        "src":"4470:64:0"
                      },
                      {
                        "assignments":[
                          112
                        ],
                        "declarations":[
                          {
                            "constant":false,
                            "id":112,
                            "name":"a",
                            "nodeType":"VariableDeclaration",
                            "scope":193,
                            "src":"4562:9:0",
                            "stateVariable":false,
                            "storageLocation":"default",
                            "typeDescriptions":{
                              "typeIdentifier":"t_address",
                              "typeString":"address"
                            },
                            "typeName":{
                              "id":111,
                              "name":"address",
                              "nodeType":"ElementaryTypeName",
                              "src":"4562:7:0",
                              "stateMutability":"nonpayable",
                              "typeDescriptions":{
                                "typeIdentifier":"t_address",
                                "typeString":"address"
                              }
                            },
                            "value":null,
                            "visibility":"internal"
                          }
                        ],
                        "id":115,
                        "initialValue":{
                          "argumentTypes":null,
                          "expression":{
                            "argumentTypes":null,
                            "id":113,
                            "name":"msg",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              
                            ],
                            "referencedDeclaration":225,
                            "src":"4574:3:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_magic_message",
                              "typeString":"msg"
                            }
                          },
                          "id":114,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "lValueRequested":false,
                          "memberName":"sender",
                          "nodeType":"MemberAccess",
                          "referencedDeclaration":null,
                          "src":"4574:10:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_address_payable",
                            "typeString":"address payable"
                          }
                        },
                        "nodeType":"VariableDeclarationStatement",
                        "src":"4562:22:0"
                      },
                      {
                        "externalReferences":[
                          {
                            "sig":{
                              "declaration":104,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"4711:3:0",
                              "valueSize":1
                            }
                          },
                          {
                            "a":{
                              "declaration":112,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"4792:1:0",
                              "valueSize":1
                            }
                          },
                          {
                            "a":{
                              "declaration":112,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"4872:1:0",
                              "valueSize":1
                            }
                          },
                          {
                            "contractAddr":{
                              "declaration":98,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"5272:12:0",
                              "valueSize":1
                            }
                          }
                        ],
                        "id":116,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    let x := mload(0x40)\n    mstore(x, sig)\n    mstore(add(x, 0x04), a)\n    mstore(add(x, 0x24), a)\n    mstore(0x40, add(x, 0x64))\n    let success := call(5000, contractAddr, 0, x, 0x44, x, 0x20)\n}",
                        "src":"4592:1030:0"
                      },
                      {
                        "externalReferences":[
                          {
                            "sig":{
                              "declaration":104,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"5733:3:0",
                              "valueSize":1
                            }
                          },
                          {
                            "a":{
                              "declaration":112,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"5814:1:0",
                              "valueSize":1
                            }
                          },
                          {
                            "a":{
                              "declaration":112,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"5894:1:0",
                              "valueSize":1
                            }
                          },
                          {
                            "contractAddr":{
                              "declaration":98,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"6298:12:0",
                              "valueSize":1
                            }
                          }
                        ],
                        "id":117,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    let x := mload(0x40)\n    mstore(x, sig)\n    mstore(add(x, 0x04), a)\n    mstore(add(x, 0x24), a)\n    mstore(0x40, add(x, 0x64))\n    let success := callcode(5000, contractAddr, 0, x, 0x44, x, 0x20)\n}",
                        "src":"5614:1038:0"
                      },
                      {
                        "externalReferences":[
                          {
                            "sig":{
                              "declaration":104,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"6763:3:0",
                              "valueSize":1
                            }
                          },
                          {
                            "a":{
                              "declaration":112,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"6844:1:0",
                              "valueSize":1
                            }
                          },
                          {
                            "a":{
                              "declaration":112,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"6924:1:0",
                              "valueSize":1
                            }
                          },
                          {
                            "contractAddr":{
                              "declaration":98,
                              "isOffset":false,
                              "isSlot":false,
                              "src":"7332:12:0",
                              "valueSize":1
                            }
                          }
                        ],
                        "id":118,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    let x := mload(0x40)\n    mstore(x, sig)\n    mstore(add(x, 0x04), a)\n    mstore(add(x, 0x24), a)\n    mstore(0x40, add(x, 0x64))\n    let success := delegatecall(5000, contractAddr, x, 0x44, x, 0x20)\n}",
                        "src":"6644:974:0"
                      },
                      {
                        "assignments":[
                          120
                        ],
                        "declarations":[
                          {
                            "constant":false,
                            "id":120,
                            "name":"_id",
                            "nodeType":"VariableDeclaration",
                            "scope":193,
                            "src":"7611:11:0",
                            "stateVariable":false,
                            "storageLocation":"default",
                            "typeDescriptions":{
                              "typeIdentifier":"t_uint256",
                              "typeString":"uint256"
                            },
                            "typeName":{
                              "id":119,
                              "name":"uint256",
                              "nodeType":"ElementaryTypeName",
                              "src":"7611:7:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_uint256",
                                "typeString":"uint256"
                              }
                            },
                            "value":null,
                            "visibility":"internal"
                          }
                        ],
                        "id":122,
                        "initialValue":{
                          "argumentTypes":null,
                          "hexValue":"3078343230303432",
                          "id":121,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":true,
                          "kind":"number",
                          "lValueRequested":false,
                          "nodeType":"Literal",
                          "src":"7625:8:0",
                          "subdenomination":null,
                          "typeDescriptions":{
                            "typeIdentifier":"t_rational_4325442_by_1",
                            "typeString":"int_const 4325442"
                          },
                          "value":"0x420042"
                        },
                        "nodeType":"VariableDeclarationStatement",
                        "src":"7611:22:0"
                      },
                      {
                        "expression":{
                          "argumentTypes":null,
                          "arguments":[
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"307835306362396665353364616139373337623738366162333634366630346430313530646335306566346537356635393530396438333636376164356164623230",
                                  "id":125,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"number",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"7676:66:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  },
                                  "value":"0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  }
                                ],
                                "id":124,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"7668:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":126,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"7668:75:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            }
                          ],
                          "expression":{
                            "argumentTypes":[
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            ],
                            "id":123,
                            "name":"log0",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              
                            ],
                            "referencedDeclaration":220,
                            "src":"7653:4:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_function_log0_nonpayable$_t_bytes32_$returns$__$",
                              "typeString":"function (bytes32)"
                            }
                          },
                          "id":127,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "kind":"functionCall",
                          "lValueRequested":false,
                          "names":[
                            
                          ],
                          "nodeType":"FunctionCall",
                          "src":"7653:97:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_tuple$__$",
                            "typeString":"tuple()"
                          }
                        },
                        "id":128,
                        "nodeType":"ExpressionStatement",
                        "src":"7653:97:0"
                      },
                      {
                        "expression":{
                          "argumentTypes":null,
                          "arguments":[
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"307835306362396665353364616139373337623738366162333634366630346430313530646335306566346537356635393530396438333636376164356164623230",
                                  "id":131,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"number",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"7793:66:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  },
                                  "value":"0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  }
                                ],
                                "id":130,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"7785:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":132,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"7785:75:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"307835306362396665353364616139373337623738366162333634366630346430313530646335306566346537356635393530396438333636376164356164623230",
                                  "id":134,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"number",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"7879:66:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  },
                                  "value":"0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  }
                                ],
                                "id":133,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"7871:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":135,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"7871:75:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            }
                          ],
                          "expression":{
                            "argumentTypes":[
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            ],
                            "id":129,
                            "name":"log1",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              
                            ],
                            "referencedDeclaration":221,
                            "src":"7770:4:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_function_log1_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                              "typeString":"function (bytes32,bytes32)"
                            }
                          },
                          "id":136,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "kind":"functionCall",
                          "lValueRequested":false,
                          "names":[
                            
                          ],
                          "nodeType":"FunctionCall",
                          "src":"7770:183:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_tuple$__$",
                            "typeString":"tuple()"
                          }
                        },
                        "id":137,
                        "nodeType":"ExpressionStatement",
                        "src":"7770:183:0"
                      },
                      {
                        "expression":{
                          "argumentTypes":null,
                          "arguments":[
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"307835306362396665353364616139373337623738366162333634366630346430313530646335306566346537356635393530396438333636376164356164623230",
                                  "id":140,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"number",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"7996:66:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  },
                                  "value":"0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  }
                                ],
                                "id":139,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"7988:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":141,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"7988:75:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"307835306362396665353364616139373337623738366162333634366630346430313530646335306566346537356635393530396438333636376164356164623230",
                                  "id":143,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"number",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"8082:66:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  },
                                  "value":"0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  }
                                ],
                                "id":142,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8074:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":144,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8074:75:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "arguments":[
                                    {
                                      "argumentTypes":null,
                                      "expression":{
                                        "argumentTypes":null,
                                        "id":147,
                                        "name":"msg",
                                        "nodeType":"Identifier",
                                        "overloadedDeclarations":[
                                          
                                        ],
                                        "referencedDeclaration":225,
                                        "src":"8176:3:0",
                                        "typeDescriptions":{
                                          "typeIdentifier":"t_magic_message",
                                          "typeString":"msg"
                                        }
                                      },
                                      "id":148,
                                      "isConstant":false,
                                      "isLValue":false,
                                      "isPure":false,
                                      "lValueRequested":false,
                                      "memberName":"sender",
                                      "nodeType":"MemberAccess",
                                      "referencedDeclaration":null,
                                      "src":"8176:10:0",
                                      "typeDescriptions":{
                                        "typeIdentifier":"t_address_payable",
                                        "typeString":"address payable"
                                      }
                                    }
                                  ],
                                  "expression":{
                                    "argumentTypes":[
                                      {
                                        "typeIdentifier":"t_address_payable",
                                        "typeString":"address payable"
                                      }
                                    ],
                                    "id":146,
                                    "isConstant":false,
                                    "isLValue":false,
                                    "isPure":true,
                                    "lValueRequested":false,
                                    "nodeType":"ElementaryTypeNameExpression",
                                    "src":"8168:7:0",
                                    "typeDescriptions":{
                                      "typeIdentifier":"t_type$_t_uint256_$",
                                      "typeString":"type(uint256)"
                                    },
                                    "typeName":"uint256"
                                  },
                                  "id":149,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":false,
                                  "kind":"typeConversion",
                                  "lValueRequested":false,
                                  "names":[
                                    
                                  ],
                                  "nodeType":"FunctionCall",
                                  "src":"8168:19:0",
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                ],
                                "id":145,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8160:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":150,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":false,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8160:28:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            }
                          ],
                          "expression":{
                            "argumentTypes":[
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            ],
                            "id":138,
                            "name":"log2",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              
                            ],
                            "referencedDeclaration":222,
                            "src":"7973:4:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_function_log2_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$",
                              "typeString":"function (bytes32,bytes32,bytes32)"
                            }
                          },
                          "id":151,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "kind":"functionCall",
                          "lValueRequested":false,
                          "names":[
                            
                          ],
                          "nodeType":"FunctionCall",
                          "src":"7973:222:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_tuple$__$",
                            "typeString":"tuple()"
                          }
                        },
                        "id":152,
                        "nodeType":"ExpressionStatement",
                        "src":"7973:222:0"
                      },
                      {
                        "expression":{
                          "argumentTypes":null,
                          "arguments":[
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"307835306362396665353364616139373337623738366162333634366630346430313530646335306566346537356635393530396438333636376164356164623230",
                                  "id":155,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"number",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"8238:66:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  },
                                  "value":"0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  }
                                ],
                                "id":154,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8230:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":156,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8230:75:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"307835306362396665353364616139373337623738366162333634366630346430313530646335306566346537356635393530396438333636376164356164623230",
                                  "id":158,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"number",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"8324:66:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  },
                                  "value":"0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  }
                                ],
                                "id":157,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8316:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":159,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8316:75:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "arguments":[
                                    {
                                      "argumentTypes":null,
                                      "expression":{
                                        "argumentTypes":null,
                                        "id":162,
                                        "name":"msg",
                                        "nodeType":"Identifier",
                                        "overloadedDeclarations":[
                                          
                                        ],
                                        "referencedDeclaration":225,
                                        "src":"8418:3:0",
                                        "typeDescriptions":{
                                          "typeIdentifier":"t_magic_message",
                                          "typeString":"msg"
                                        }
                                      },
                                      "id":163,
                                      "isConstant":false,
                                      "isLValue":false,
                                      "isPure":false,
                                      "lValueRequested":false,
                                      "memberName":"sender",
                                      "nodeType":"MemberAccess",
                                      "referencedDeclaration":null,
                                      "src":"8418:10:0",
                                      "typeDescriptions":{
                                        "typeIdentifier":"t_address_payable",
                                        "typeString":"address payable"
                                      }
                                    }
                                  ],
                                  "expression":{
                                    "argumentTypes":[
                                      {
                                        "typeIdentifier":"t_address_payable",
                                        "typeString":"address payable"
                                      }
                                    ],
                                    "id":161,
                                    "isConstant":false,
                                    "isLValue":false,
                                    "isPure":true,
                                    "lValueRequested":false,
                                    "nodeType":"ElementaryTypeNameExpression",
                                    "src":"8410:7:0",
                                    "typeDescriptions":{
                                      "typeIdentifier":"t_type$_t_uint256_$",
                                      "typeString":"type(uint256)"
                                    },
                                    "typeName":"uint256"
                                  },
                                  "id":164,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":false,
                                  "kind":"typeConversion",
                                  "lValueRequested":false,
                                  "names":[
                                    
                                  ],
                                  "nodeType":"FunctionCall",
                                  "src":"8410:19:0",
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                ],
                                "id":160,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8402:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":165,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":false,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8402:28:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "id":167,
                                  "name":"_id",
                                  "nodeType":"Identifier",
                                  "overloadedDeclarations":[
                                    
                                  ],
                                  "referencedDeclaration":120,
                                  "src":"8449:3:0",
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                ],
                                "id":166,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8441:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":168,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":false,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8441:12:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            }
                          ],
                          "expression":{
                            "argumentTypes":[
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            ],
                            "id":153,
                            "name":"log3",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              
                            ],
                            "referencedDeclaration":223,
                            "src":"8215:4:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_function_log3_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$",
                              "typeString":"function (bytes32,bytes32,bytes32,bytes32)"
                            }
                          },
                          "id":169,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "kind":"functionCall",
                          "lValueRequested":false,
                          "names":[
                            
                          ],
                          "nodeType":"FunctionCall",
                          "src":"8215:245:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_tuple$__$",
                            "typeString":"tuple()"
                          }
                        },
                        "id":170,
                        "nodeType":"ExpressionStatement",
                        "src":"8215:245:0"
                      },
                      {
                        "expression":{
                          "argumentTypes":null,
                          "arguments":[
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"307835306362396665353364616139373337623738366162333634366630346430313530646335306566346537356635393530396438333636376164356164623230",
                                  "id":173,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"number",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"8503:66:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  },
                                  "value":"0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  }
                                ],
                                "id":172,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8495:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":174,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8495:75:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "hexValue":"307835306362396665353364616139373337623738366162333634366630346430313530646335306566346537356635393530396438333636376164356164623230",
                                  "id":176,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":true,
                                  "kind":"number",
                                  "lValueRequested":false,
                                  "nodeType":"Literal",
                                  "src":"8589:66:0",
                                  "subdenomination":null,
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  },
                                  "value":"0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20"
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_rational_36544801398802476298763521163789802214445152522789254076924655058611456367392_by_1",
                                    "typeString":"int_const 3654...(69 digits omitted)...7392"
                                  }
                                ],
                                "id":175,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8581:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":177,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":true,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8581:75:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "arguments":[
                                    {
                                      "argumentTypes":null,
                                      "expression":{
                                        "argumentTypes":null,
                                        "id":180,
                                        "name":"msg",
                                        "nodeType":"Identifier",
                                        "overloadedDeclarations":[
                                          
                                        ],
                                        "referencedDeclaration":225,
                                        "src":"8683:3:0",
                                        "typeDescriptions":{
                                          "typeIdentifier":"t_magic_message",
                                          "typeString":"msg"
                                        }
                                      },
                                      "id":181,
                                      "isConstant":false,
                                      "isLValue":false,
                                      "isPure":false,
                                      "lValueRequested":false,
                                      "memberName":"sender",
                                      "nodeType":"MemberAccess",
                                      "referencedDeclaration":null,
                                      "src":"8683:10:0",
                                      "typeDescriptions":{
                                        "typeIdentifier":"t_address_payable",
                                        "typeString":"address payable"
                                      }
                                    }
                                  ],
                                  "expression":{
                                    "argumentTypes":[
                                      {
                                        "typeIdentifier":"t_address_payable",
                                        "typeString":"address payable"
                                      }
                                    ],
                                    "id":179,
                                    "isConstant":false,
                                    "isLValue":false,
                                    "isPure":true,
                                    "lValueRequested":false,
                                    "nodeType":"ElementaryTypeNameExpression",
                                    "src":"8675:7:0",
                                    "typeDescriptions":{
                                      "typeIdentifier":"t_type$_t_uint256_$",
                                      "typeString":"type(uint256)"
                                    },
                                    "typeName":"uint256"
                                  },
                                  "id":182,
                                  "isConstant":false,
                                  "isLValue":false,
                                  "isPure":false,
                                  "kind":"typeConversion",
                                  "lValueRequested":false,
                                  "names":[
                                    
                                  ],
                                  "nodeType":"FunctionCall",
                                  "src":"8675:19:0",
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                ],
                                "id":178,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8667:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":183,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":false,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8667:28:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "id":185,
                                  "name":"_id",
                                  "nodeType":"Identifier",
                                  "overloadedDeclarations":[
                                    
                                  ],
                                  "referencedDeclaration":120,
                                  "src":"8714:3:0",
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                ],
                                "id":184,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8706:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":186,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":false,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8706:12:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            },
                            {
                              "argumentTypes":null,
                              "arguments":[
                                {
                                  "argumentTypes":null,
                                  "id":188,
                                  "name":"_id",
                                  "nodeType":"Identifier",
                                  "overloadedDeclarations":[
                                    
                                  ],
                                  "referencedDeclaration":120,
                                  "src":"8737:3:0",
                                  "typeDescriptions":{
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                }
                              ],
                              "expression":{
                                "argumentTypes":[
                                  {
                                    "typeIdentifier":"t_uint256",
                                    "typeString":"uint256"
                                  }
                                ],
                                "id":187,
                                "isConstant":false,
                                "isLValue":false,
                                "isPure":true,
                                "lValueRequested":false,
                                "nodeType":"ElementaryTypeNameExpression",
                                "src":"8729:7:0",
                                "typeDescriptions":{
                                  "typeIdentifier":"t_type$_t_bytes32_$",
                                  "typeString":"type(bytes32)"
                                },
                                "typeName":"bytes32"
                              },
                              "id":189,
                              "isConstant":false,
                              "isLValue":false,
                              "isPure":false,
                              "kind":"typeConversion",
                              "lValueRequested":false,
                              "names":[
                                
                              ],
                              "nodeType":"FunctionCall",
                              "src":"8729:12:0",
                              "typeDescriptions":{
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            }
                          ],
                          "expression":{
                            "argumentTypes":[
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              },
                              {
                                "typeIdentifier":"t_bytes32",
                                "typeString":"bytes32"
                              }
                            ],
                            "id":171,
                            "name":"log4",
                            "nodeType":"Identifier",
                            "overloadedDeclarations":[
                              
                            ],
                            "referencedDeclaration":224,
                            "src":"8480:4:0",
                            "typeDescriptions":{
                              "typeIdentifier":"t_function_log4_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$",
                              "typeString":"function (bytes32,bytes32,bytes32,bytes32,bytes32)"
                            }
                          },
                          "id":190,
                          "isConstant":false,
                          "isLValue":false,
                          "isPure":false,
                          "kind":"functionCall",
                          "lValueRequested":false,
                          "names":[
                            
                          ],
                          "nodeType":"FunctionCall",
                          "src":"8480:269:0",
                          "typeDescriptions":{
                            "typeIdentifier":"t_tuple$__$",
                            "typeString":"tuple()"
                          }
                        },
                        "id":191,
                        "nodeType":"ExpressionStatement",
                        "src":"8480:269:0"
                      },
                      {
                        "externalReferences":[
                          
                        ],
                        "id":192,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    selfdestruct(0x02)\n}",
                        "src":"8777:36:0"
                      }
                    ]
                  },
                  "documentation":null,
                  "id":194,
                  "implemented":true,
                  "kind":"function",
                  "modifiers":[
                    
                  ],
                  "name":"test",
                  "nodeType":"FunctionDefinition",
                  "parameters":{
                    "id":46,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"511:2:0"
                  },
                  "returnParameters":{
                    "id":47,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"521:0:0"
                  },
                  "scope":210,
                  "src":"498:8315:0",
                  "stateMutability":"nonpayable",
                  "superFunction":null,
                  "visibility":"public"
                },
                {
                  "body":{
                    "id":198,
                    "nodeType":"Block",
                    "src":"8847:48:0",
                    "statements":[
                      {
                        "externalReferences":[
                          
                        ],
                        "id":197,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    revert(0, 0)\n}",
                        "src":"8867:28:0"
                      }
                    ]
                  },
                  "documentation":null,
                  "id":199,
                  "implemented":true,
                  "kind":"function",
                  "modifiers":[
                    
                  ],
                  "name":"test_revert",
                  "nodeType":"FunctionDefinition",
                  "parameters":{
                    "id":195,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"8837:2:0"
                  },
                  "returnParameters":{
                    "id":196,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"8847:0:0"
                  },
                  "scope":210,
                  "src":"8817:78:0",
                  "stateMutability":"nonpayable",
                  "superFunction":null,
                  "visibility":"public"
                },
                {
                  "body":{
                    "id":203,
                    "nodeType":"Block",
                    "src":"8930:45:0",
                    "statements":[
                      {
                        "externalReferences":[
                          
                        ],
                        "id":202,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    invalid()\n}",
                        "src":"8950:25:0"
                      }
                    ]
                  },
                  "documentation":null,
                  "id":204,
                  "implemented":true,
                  "kind":"function",
                  "modifiers":[
                    
                  ],
                  "name":"test_invalid",
                  "nodeType":"FunctionDefinition",
                  "parameters":{
                    "id":200,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"8920:2:0"
                  },
                  "returnParameters":{
                    "id":201,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"8930:0:0"
                  },
                  "scope":210,
                  "src":"8899:76:0",
                  "stateMutability":"nonpayable",
                  "superFunction":null,
                  "visibility":"public"
                },
                {
                  "body":{
                    "id":208,
                    "nodeType":"Block",
                    "src":"9007:42:0",
                    "statements":[
                      {
                        "externalReferences":[
                          
                        ],
                        "id":207,
                        "nodeType":"InlineAssembly",
                        "operations":"{\n    stop()\n}",
                        "src":"9027:22:0"
                      }
                    ]
                  },
                  "documentation":null,
                  "id":209,
                  "implemented":true,
                  "kind":"function",
                  "modifiers":[
                    
                  ],
                  "name":"test_stop",
                  "nodeType":"FunctionDefinition",
                  "parameters":{
                    "id":205,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"8997:2:0"
                  },
                  "returnParameters":{
                    "id":206,
                    "nodeType":"ParameterList",
                    "parameters":[
                      
                    ],
                    "src":"9007:0:0"
                  },
                  "scope":210,
                  "src":"8979:70:0",
                  "stateMutability":"nonpayable",
                  "superFunction":null,
                  "visibility":"public"
                }
              ],
              "scope":211,
              "src":"221:8831:0"
            }
          ],
          "src":"0:9053:0"
        },
        "id":0
      }
    },
    "contracts":{
      "contracts/OpCodes.sol":{
        "OpCodes":{
          "abi":[
            {
              "constant":false,
              "inputs":[
                
              ],
              "name":"test_stop",
              "outputs":[
                
              ],
              "payable":false,
              "stateMutability":"nonpayable",
              "type":"function"
            },
            {
              "constant":false,
              "inputs":[
                
              ],
              "name":"test_revert",
              "outputs":[
                
              ],
              "payable":false,
              "stateMutability":"nonpayable",
              "type":"function"
            },
            {
              "constant":false,
              "inputs":[
                
              ],
              "name":"test_invalid",
              "outputs":[
                
              ],
              "payable":false,
              "stateMutability":"nonpayable",
              "type":"function"
            },
            {
              "constant":false,
              "inputs":[
                
              ],
              "name":"test",
              "outputs":[
                
              ],
              "payable":false,
              "stateMutability":"nonpayable",
              "type":"function"
            },
            {
              "inputs":[
                
              ],
              "payable":false,
              "stateMutability":"nonpayable",
              "type":"constructor"
            }
          ],
          "evm":{
            "bytecode":{
              "linkReferences":{
                
              },
              "object":"608060405234801561001057600080fd5b5061001961005b565b604051809103906000f080158015610035573d6000803e3d6000fd5b5060008054600160a060020a031916600160a060020a039290921691909117905561006b565b60405161012d806103f683390190565b61037c8061007a6000396000f3fe6080604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166355313dea81146100665780636d3d141614610079578063b9d1e5aa1461008e578063f8a8fd6d146100a3575b600080fd5b34801561007257600080fd5b506100775b005b34801561008557600080fd5b50610077610061565b34801561009a57600080fd5b506100776100b8565b3480156100af57600080fd5b50610077610077565bfe5b60058110156100cb576001016100ba565b5060065b60058111156100e0576001016100cf565b5060015b60058112156100f5576001016100e4565b5060065b600581131561010a576001016100f9565b5060405160208101602060048337505060405160208101602060048339505060405160208101602060048360003c50503660005b81811015610152576002815260010161013e565b5060009050602060403e6010608060106040610123612710fa506020610123600af05060008054604080517f697353616d654164647265737328616464726573732c616464726573732900008152815190819003601e0181208082523360048301819052602483018190526064830190935273ffffffffffffffffffffffffffffffffffffffff909316936020908290604490829088611388f1505060405182815281600482015281602482015260648101604052602081604483600088611388f250506040518281528160048201528160248201526064810160405260208160448387611388f45050604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb2081529051624200429181900360200190a0604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb2080825291519081900360200190a1604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20808252915133929181900360200190a2604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb2080825291518392339290919081900360200190a3604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb2080825291518392839233929081900360200190a46002fffea165627a7a72305820462adb21b258afc53702d65a7c6394cbebc6f4f21d8e8ae4c4205a1b615c22100029608060405234801561001057600080fd5b5061010d806100206000396000f3fe608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663161e715081146043575b600080fd5b348015604e57600080fd5b50608760048036036040811015606357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516609b565b604080519115158252519081900360200190f35b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141560d75750600160db565b5060005b9291505056fea165627a7a7230582046ba008f8fda2e023e9d291aaa34483a5d3ce1e1ad535b44b8e459b0be283b610029",
              "opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x35 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x6B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12D DUP1 PUSH2 0x3F6 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH2 0x37C DUP1 PUSH2 0x7A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x55313DEA DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x6D3D1416 EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xB9D1E5AA EQ PUSH2 0x8E JUMPI DUP1 PUSH4 0xF8A8FD6D EQ PUSH2 0xA3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x77 JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x77 PUSH2 0x61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x77 PUSH2 0xB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x77 PUSH2 0x77 JUMP JUMPDEST INVALID JUMPDEST PUSH1 0x5 DUP2 LT ISZERO PUSH2 0xCB JUMPI PUSH1 0x1 ADD PUSH2 0xBA JUMP JUMPDEST POP PUSH1 0x6 JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xE0 JUMPI PUSH1 0x1 ADD PUSH2 0xCF JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x5 DUP2 SLT ISZERO PUSH2 0xF5 JUMPI PUSH1 0x1 ADD PUSH2 0xE4 JUMP JUMPDEST POP PUSH1 0x6 JUMPDEST PUSH1 0x5 DUP2 SGT ISZERO PUSH2 0x10A JUMPI PUSH1 0x1 ADD PUSH2 0xF9 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x20 PUSH1 0x4 DUP4 CALLDATACOPY POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x20 PUSH1 0x4 DUP4 CODECOPY POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x20 PUSH1 0x4 DUP4 PUSH1 0x0 EXTCODECOPY POP POP CALLDATASIZE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x152 JUMPI PUSH1 0x2 DUP2 MSTORE PUSH1 0x1 ADD PUSH2 0x13E JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x20 PUSH1 0x40 RETURNDATACOPY PUSH1 0x10 PUSH1 0x80 PUSH1 0x10 PUSH1 0x40 PUSH2 0x123 PUSH2 0x2710 STATICCALL POP PUSH1 0x20 PUSH2 0x123 PUSH1 0xA CREATE POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x697353616D654164647265737328616464726573732C61646472657373290000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x1E ADD DUP2 KECCAK256 DUP1 DUP3 MSTORE CALLER PUSH1 0x4 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x64 DUP4 ADD SWAP1 SWAP4 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP4 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP9 PUSH2 0x1388 CALL POP POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE DUP2 PUSH1 0x4 DUP3 ADD MSTORE DUP2 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 PUSH1 0x44 DUP4 PUSH1 0x0 DUP9 PUSH2 0x1388 CALLCODE POP POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE DUP2 PUSH1 0x4 DUP3 ADD MSTORE DUP2 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 PUSH1 0x44 DUP4 DUP8 PUSH2 0x1388 DELEGATECALL POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP2 MSTORE SWAP1 MLOAD PUSH3 0x420042 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG0 PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP1 DUP3 MSTORE SWAP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP1 DUP3 MSTORE SWAP2 MLOAD CALLER SWAP3 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP1 DUP3 MSTORE SWAP2 MLOAD DUP4 SWAP3 CALLER SWAP3 SWAP1 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP1 DUP3 MSTORE SWAP2 MLOAD DUP4 SWAP3 DUP4 SWAP3 CALLER SWAP3 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG4 PUSH1 0x2 SELFDESTRUCT INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 0x46 0x2a 0xdb 0x21 0xb2 PC 0xaf 0xc5 CALLDATACOPY MUL 0xd6 GAS PUSH29 0x6394CBEBC6F4F21D8E8AE4C4205A1B615C221000296080604052348015 PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x161E7150 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH1 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH1 0x9B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH1 0xD7 JUMPI POP PUSH1 0x1 PUSH1 0xDB JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 0x46 0xba STOP DUP16 DUP16 0xda 0x2e MUL RETURNDATACOPY SWAP14 0x29 BYTE 0xaa CALLVALUE 0x48 GASPRICE 0x5d EXTCODECOPY 0xe1 0xe1 0xad MSTORE8 JUMPDEST DIFFICULTY 0xb8 0xe4 MSIZE 0xb0 0xbe 0x28 EXTCODESIZE PUSH2 0x29 ",
              "sourceMap":"221:8831:0:-;;;263:110;8:9:-1;5:2;;;30:1;27;20:12;5:2;263:110:0;324:11;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;316:5:0;:19;;-1:-1:-1;;;;;;316:19:0;-1:-1:-1;;;;;316:19:0;;;;;;;;;;221:8831;;;;;;;;;;;;:::o;:::-;;;;;;;"
            },
            "deployedBytecode":{
              "linkReferences":{
                
              },
              "object":"6080604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166355313dea81146100665780636d3d141614610079578063b9d1e5aa1461008e578063f8a8fd6d146100a3575b600080fd5b34801561007257600080fd5b506100775b005b34801561008557600080fd5b50610077610061565b34801561009a57600080fd5b506100776100b8565b3480156100af57600080fd5b50610077610077565bfe5b60058110156100cb576001016100ba565b5060065b60058111156100e0576001016100cf565b5060015b60058112156100f5576001016100e4565b5060065b600581131561010a576001016100f9565b5060405160208101602060048337505060405160208101602060048339505060405160208101602060048360003c50503660005b81811015610152576002815260010161013e565b5060009050602060403e6010608060106040610123612710fa506020610123600af05060008054604080517f697353616d654164647265737328616464726573732c616464726573732900008152815190819003601e0181208082523360048301819052602483018190526064830190935273ffffffffffffffffffffffffffffffffffffffff909316936020908290604490829088611388f1505060405182815281600482015281602482015260648101604052602081604483600088611388f250506040518281528160048201528160248201526064810160405260208160448387611388f45050604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb2081529051624200429181900360200190a0604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb2080825291519081900360200190a1604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20808252915133929181900360200190a2604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb2080825291518392339290919081900360200190a3604080517f50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb2080825291518392839233929081900360200190a46002fffea165627a7a72305820462adb21b258afc53702d65a7c6394cbebc6f4f21d8e8ae4c4205a1b615c22100029",
              "opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x61 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x55313DEA DUP2 EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x6D3D1416 EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xB9D1E5AA EQ PUSH2 0x8E JUMPI DUP1 PUSH4 0xF8A8FD6D EQ PUSH2 0xA3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x77 JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x77 PUSH2 0x61 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x77 PUSH2 0xB8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x77 PUSH2 0x77 JUMP JUMPDEST INVALID JUMPDEST PUSH1 0x5 DUP2 LT ISZERO PUSH2 0xCB JUMPI PUSH1 0x1 ADD PUSH2 0xBA JUMP JUMPDEST POP PUSH1 0x6 JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xE0 JUMPI PUSH1 0x1 ADD PUSH2 0xCF JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST PUSH1 0x5 DUP2 SLT ISZERO PUSH2 0xF5 JUMPI PUSH1 0x1 ADD PUSH2 0xE4 JUMP JUMPDEST POP PUSH1 0x6 JUMPDEST PUSH1 0x5 DUP2 SGT ISZERO PUSH2 0x10A JUMPI PUSH1 0x1 ADD PUSH2 0xF9 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x20 PUSH1 0x4 DUP4 CALLDATACOPY POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x20 PUSH1 0x4 DUP4 CODECOPY POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x20 PUSH1 0x4 DUP4 PUSH1 0x0 EXTCODECOPY POP POP CALLDATASIZE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x152 JUMPI PUSH1 0x2 DUP2 MSTORE PUSH1 0x1 ADD PUSH2 0x13E JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x20 PUSH1 0x40 RETURNDATACOPY PUSH1 0x10 PUSH1 0x80 PUSH1 0x10 PUSH1 0x40 PUSH2 0x123 PUSH2 0x2710 STATICCALL POP PUSH1 0x20 PUSH2 0x123 PUSH1 0xA CREATE POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x697353616D654164647265737328616464726573732C61646472657373290000 DUP2 MSTORE DUP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x1E ADD DUP2 KECCAK256 DUP1 DUP3 MSTORE CALLER PUSH1 0x4 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP4 ADD DUP2 SWAP1 MSTORE PUSH1 0x64 DUP4 ADD SWAP1 SWAP4 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP4 PUSH1 0x20 SWAP1 DUP3 SWAP1 PUSH1 0x44 SWAP1 DUP3 SWAP1 DUP9 PUSH2 0x1388 CALL POP POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE DUP2 PUSH1 0x4 DUP3 ADD MSTORE DUP2 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 PUSH1 0x44 DUP4 PUSH1 0x0 DUP9 PUSH2 0x1388 CALLCODE POP POP PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE DUP2 PUSH1 0x4 DUP3 ADD MSTORE DUP2 PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x64 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 PUSH1 0x44 DUP4 DUP8 PUSH2 0x1388 DELEGATECALL POP POP PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP2 MSTORE SWAP1 MLOAD PUSH3 0x420042 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG0 PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP1 DUP3 MSTORE SWAP2 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP1 DUP3 MSTORE SWAP2 MLOAD CALLER SWAP3 SWAP2 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG2 PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP1 DUP3 MSTORE SWAP2 MLOAD DUP4 SWAP3 CALLER SWAP3 SWAP1 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 PUSH1 0x40 DUP1 MLOAD PUSH32 0x50CB9FE53DAA9737B786AB3646F04D0150DC50EF4E75F59509D83667AD5ADB20 DUP1 DUP3 MSTORE SWAP2 MLOAD DUP4 SWAP3 DUP4 SWAP3 CALLER SWAP3 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG4 PUSH1 0x2 SELFDESTRUCT INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 0x46 0x2a 0xdb 0x21 0xb2 PC 0xaf 0xc5 CALLDATACOPY MUL 0xd6 GAS PUSH29 0x6394CBEBC6F4F21D8E8AE4C4205A1B615C221000290000000000000000 ",
              "sourceMap":"221:8831:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8979:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8979:70:0;;;;8817:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8817:78:0;;;;8899:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8899:76:0;;;;498:8315;;8:9:-1;5:2;;;30:1;27;20:12;5:2;498:8315:0;;;;8899:76;8960:9;946:49;971:1;968;965:8;946:49;;;988:1;981:9;946:49;;;950:14;1029:1;1014:49;1039:1;1036;1033:8;1014:49;;;1056:1;1049:9;1014:49;;;1018:14;1097:1;1082:50;1108:1;1105;1101:9;1082:50;;;1125:1;1118:9;1082:50;;;1086:14;1166:1;1151:50;1177:1;1174;1170:9;1151:50;;;1194:1;1187:9;1151:50;;;-1:-1:-1;1825:4:0;1819:11;1854:2;1851:1;1847:10;1884:2;1881:1;1878;1865:22;1801:181;;2038:4;2032:11;2067:2;2064:1;2060:10;2093:2;2090:1;2087;2078:18;2014:89;;2159:4;2153:11;2188:2;2185:1;2181:10;2220:2;2217:1;2214;2211;2199:24;2135:95;;2278:14;2308:1;2293:62;2317:1;2314;2311:8;2293:62;;;2351:1;2341:12;;2334:1;2327:9;2293:62;;;-1:-1:-1;2408:1:0;;-1:-1:-1;2537:2:0;2533;2518:25;2665:4;2660:3;2654:4;2650:2;2643:5;2636;2625:45;2621:50;2827:2;2820:5;2816:2;2809:21;-1:-1:-1;4426:20:0;4457:5;;4490:43;;;;;;;;;;;;;;;;4702:13;;;4574:10;4786:4;4780:11;;4773:21;;;4866:4;4860:11;;4853:21;;;4971:4;4965:11;;4953:24;;;4457:5;;;;;5553:4;;4490:43;;5427:4;;4490:43;;4457:5;5232:4;5201:357;4601:990;;5649:4;5643:11;5733:3;5731:1;5724:13;5814:1;5808:4;5806:1;5802:11;5795:21;5894:1;5888:4;5886:1;5882:11;5875:21;5993:4;5991:1;5987:11;5982:4;5975:24;6579:4;6522:1;6453:4;6394:1;6347;6298:12;6258:4;6223:361;5623:994;;6679:4;6673:11;6763:3;6761:1;6754:13;6844:1;6838:4;6836:1;6832:11;6825:21;6924:1;6918:4;6916:1;6912:11;6905:21;7023:4;7021:1;7017:11;7012:4;7005:24;7566:4;7509:1;7440:4;7381:1;7332:12;7292:4;7253:318;-1:-1:-1;;7653:97:0;;;7676:66;7653:97;;;;7625:8;;7653:97;;;;;;;7770:183;;;7879:66;7770:183;;;;;;;;;;;;;7973:222;;;8082:66;7973:222;;;;;8176:10;;8082:66;7973:222;;;;;;;8215:245;;;8324:66;8215:245;;;;;8449:3;;8418:10;;8324:66;;8215:245;;;;;;;;8480:269;;;8589:66;8480:269;;;;;8737:3;;;;8683:10;;8480:269;;;;;;;;8801:4;8788:18"
            },
            "methodIdentifiers":{
              "test()":"f8a8fd6d",
              "test_invalid()":"b9d1e5aa",
              "test_revert()":"6d3d1416",
              "test_stop()":"55313dea"
            }
          },
          "metadata":"{\"compiler\":{\"version\":\"0.5.0+commit.1d4f565a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"test_stop\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"test_revert\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"test_invalid\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"test\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/OpCodes.sol\":\"OpCodes\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"contracts/OpCodes.sol\":{\"keccak256\":\"0xb3e1be872df04de78d839bedf57193490bdf8ba6b827768aff6dc540ab002b18\",\"urls\":[\"bzzr://68f33d314fb09f335825c8037e002540ee76e58312ee5d4e13229ee5deeff27e\"]}},\"version\":1}"
        },
        "Test1":{
          "abi":[
            {
              "constant":false,
              "inputs":[
                {
                  "name":"a",
                  "type":"address"
                },
                {
                  "name":"b",
                  "type":"address"
                }
              ],
              "name":"isSameAddress",
              "outputs":[
                {
                  "name":"",
                  "type":"bool"
                }
              ],
              "payable":false,
              "stateMutability":"nonpayable",
              "type":"function"
            }
          ],
          "evm":{
            "bytecode":{
              "linkReferences":{
                
              },
              "object":"608060405234801561001057600080fd5b5061010d806100206000396000f3fe608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663161e715081146043575b600080fd5b348015604e57600080fd5b50608760048036036040811015606357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516609b565b604080519115158252519081900360200190f35b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141560d75750600160db565b5060005b9291505056fea165627a7a7230582046ba008f8fda2e023e9d291aaa34483a5d3ce1e1ad535b44b8e459b0be283b610029",
              "opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x161E7150 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH1 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH1 0x9B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH1 0xD7 JUMPI POP PUSH1 0x1 PUSH1 0xDB JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 0x46 0xba STOP DUP16 DUP16 0xda 0x2e MUL RETURNDATACOPY SWAP14 0x29 BYTE 0xaa CALLVALUE 0x48 GASPRICE 0x5d EXTCODECOPY 0xe1 0xe1 0xad MSTORE8 JUMPDEST DIFFICULTY 0xb8 0xe4 MSIZE 0xb0 0xbe 0x28 EXTCODESIZE PUSH2 0x29 ",
              "sourceMap":"34:185:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34:185:0;;;;;;;"
            },
            "deployedBytecode":{
              "linkReferences":{
                
              },
              "object":"608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663161e715081146043575b600080fd5b348015604e57600080fd5b50608760048036036040811015606357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516609b565b604080519115158252519081900360200190f35b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141560d75750600160db565b5060005b9291505056fea165627a7a7230582046ba008f8fda2e023e9d291aaa34483a5d3ce1e1ad535b44b8e459b0be283b610029",
              "opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3E JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0x161E7150 DUP2 EQ PUSH1 0x43 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH1 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH1 0x9B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH1 0xD7 JUMPI POP PUSH1 0x1 PUSH1 0xDB JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 0x46 0xba STOP DUP16 DUP16 0xda 0x2e MUL RETURNDATACOPY SWAP14 0x29 BYTE 0xaa CALLVALUE 0x48 GASPRICE 0x5d EXTCODECOPY 0xe1 0xe1 0xad MSTORE8 JUMPDEST DIFFICULTY 0xb8 0xe4 MSIZE 0xb0 0xbe 0x28 EXTCODESIZE PUSH2 0x29 ",
              "sourceMap":"34:185:0:-;;;;;;;;;;;;;;;;;;;;;;;53:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:164:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;53:164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:4;178:1;173:6;;:1;:6;;;169:23;;;-1:-1:-1;188:4:0;181:11;;169:23;-1:-1:-1;207:5:0;53:164;;;;;:::o"
            },
            "methodIdentifiers":{
              "isSameAddress(address,address)":"161e7150"
            }
          },
          "metadata":"{\"compiler\":{\"version\":\"0.5.0+commit.1d4f565a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"a\",\"type\":\"address\"},{\"name\":\"b\",\"type\":\"address\"}],\"name\":\"isSameAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/OpCodes.sol\":\"Test1\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"contracts/OpCodes.sol\":{\"keccak256\":\"0xb3e1be872df04de78d839bedf57193490bdf8ba6b827768aff6dc540ab002b18\",\"urls\":[\"bzzr://68f33d314fb09f335825c8037e002540ee76e58312ee5d4e13229ee5deeff27e\"]}},\"version\":1}"
        }
      }
    }
  }
}