Skip to content

Instantly share code, notes, and snippets.

@akshay-shah
Created February 4, 2022 14:02
Show Gist options
  • Save akshay-shah/a208f6ec6d47cd36b3ecb245284997ff to your computer and use it in GitHub Desktop.
Save akshay-shah/a208f6ec6d47cd36b3ecb245284997ff to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.11+commit.d7f03943.js&optimize=false&runs=200&gist=
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Scripts have full access to the web3.js and ethers.js libraries.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052600a600055601460015534801561001a57600080fd5b506101b98061002a6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630c55699c1461005c57806328d69c6d1461007a5780633c9d377d146100985780639942ec6f146100b6578063c3f90202146100d4575b600080fd5b6100646100f2565b6040516100719190610168565b60405180910390f35b6100826100f8565b60405161008f9190610168565b60405180910390f35b6100a0610102565b6040516100ad9190610168565b60405180910390f35b6100be610120565b6040516100cb9190610168565b60405180910390f35b6100dc610134565b6040516100e99190610168565b60405180910390f35b60005481565b6000600154905090565b60008061010d61013d565b9050610117610146565b90508091505090565b60008061012b610146565b90508091505090565b60008054905090565b60008054905090565b60008054905090565b6000819050919050565b6101628161014f565b82525050565b600060208201905061017d6000830184610159565b9291505056fea2646970667358221220ffd0c3dbf4d0a74fce8d5f6fa2e9aec26f0bee2d4ef66418e6332aa17048de6764736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0x0 SSTORE PUSH1 0x14 PUSH1 0x1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 DUP1 PUSH2 0x2A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x28D69C6D EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x3C9D377D EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x9942EC6F EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC3F90202 EQ PUSH2 0xD4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBE PUSH2 0x120 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDC PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10D PUSH2 0x13D JUMP JUMPDEST SWAP1 POP PUSH2 0x117 PUSH2 0x146 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12B PUSH2 0x146 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x162 DUP2 PUSH2 0x14F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x159 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT 0xD0 0xC3 0xDB DELEGATECALL 0xD0 0xA7 0x4F 0xCE DUP14 0x5F PUSH16 0xA2E9AEC26F0BEE2D4EF66418E6332AA1 PUSH17 0x48DE6764736F6C634300080B0033000000 ",
"sourceMap": "71:1006:0:-:0;;;102:2;87:17;;118:2;110:10;;71:1006;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@f1_23": {
"entryPoint": 326,
"id": 23,
"parameterSlots": 0,
"returnSlots": 1
},
"@f2_39": {
"entryPoint": 288,
"id": 39,
"parameterSlots": 0,
"returnSlots": 1
},
"@f3_47": {
"entryPoint": 317,
"id": 47,
"parameterSlots": 0,
"returnSlots": 1
},
"@f4_55": {
"entryPoint": 308,
"id": 55,
"parameterSlots": 0,
"returnSlots": 1
},
"@f5_76": {
"entryPoint": 258,
"id": 76,
"parameterSlots": 0,
"returnSlots": 1
},
"@get_y_15": {
"entryPoint": 248,
"id": 15,
"parameterSlots": 0,
"returnSlots": 1
},
"@x_4": {
"entryPoint": 242,
"id": 4,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_int256_to_t_int256_fromStack": {
"entryPoint": 345,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed": {
"entryPoint": 360,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_int256": {
"entryPoint": 335,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:431:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "51:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "61:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "72:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "61:7:1"
}
]
}
]
},
"name": "cleanup_t_int256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "33:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "43:7:1",
"type": ""
}
],
"src": "7:76:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "152:52:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "169:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "191:5:1"
}
],
"functionName": {
"name": "cleanup_t_int256",
"nodeType": "YulIdentifier",
"src": "174:16:1"
},
"nodeType": "YulFunctionCall",
"src": "174:23:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "162:6:1"
},
"nodeType": "YulFunctionCall",
"src": "162:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "162:36:1"
}
]
},
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "140:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "147:3:1",
"type": ""
}
],
"src": "89:115:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "306:122:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "316:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "328:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "339:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "324:3:1"
},
"nodeType": "YulFunctionCall",
"src": "324:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "316:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "394:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "407:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "418:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "403:3:1"
},
"nodeType": "YulFunctionCall",
"src": "403:17:1"
}
],
"functionName": {
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulIdentifier",
"src": "352:41:1"
},
"nodeType": "YulFunctionCall",
"src": "352:69:1"
},
"nodeType": "YulExpressionStatement",
"src": "352:69:1"
}
]
},
"name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "278:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "290:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "301:4:1",
"type": ""
}
],
"src": "210:218:1"
}
]
},
"contents": "{\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n mstore(pos, cleanup_t_int256(value))\n }\n\n function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_int256_to_t_int256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100575760003560e01c80630c55699c1461005c57806328d69c6d1461007a5780633c9d377d146100985780639942ec6f146100b6578063c3f90202146100d4575b600080fd5b6100646100f2565b6040516100719190610168565b60405180910390f35b6100826100f8565b60405161008f9190610168565b60405180910390f35b6100a0610102565b6040516100ad9190610168565b60405180910390f35b6100be610120565b6040516100cb9190610168565b60405180910390f35b6100dc610134565b6040516100e99190610168565b60405180910390f35b60005481565b6000600154905090565b60008061010d61013d565b9050610117610146565b90508091505090565b60008061012b610146565b90508091505090565b60008054905090565b60008054905090565b60008054905090565b6000819050919050565b6101628161014f565b82525050565b600060208201905061017d6000830184610159565b9291505056fea2646970667358221220ffd0c3dbf4d0a74fce8d5f6fa2e9aec26f0bee2d4ef66418e6332aa17048de6764736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x28D69C6D EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x3C9D377D EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x9942EC6F EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC3F90202 EQ PUSH2 0xD4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBE PUSH2 0x120 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDC PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10D PUSH2 0x13D JUMP JUMPDEST SWAP1 POP PUSH2 0x117 PUSH2 0x146 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12B PUSH2 0x146 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x162 DUP2 PUSH2 0x14F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x159 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT 0xD0 0xC3 0xDB DELEGATECALL 0xD0 0xA7 0x4F 0xCE DUP14 0x5F PUSH16 0xA2E9AEC26F0BEE2D4EF66418E6332AA1 PUSH17 0x48DE6764736F6C634300080B0033000000 ",
"sourceMap": "71:1006:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;87:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;174:66;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;860:215;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;425:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;780:65;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;87:17;;;;:::o;174:66::-;211:3;232:1;;225:8;;174:66;:::o;860:215::-;894:3;908:5;977:4;:2;:4::i;:::-;973:8;;1021:4;:2;:4::i;:::-;1017:8;;1067:1;1060:8;;;860:215;:::o;425:111::-;459:3;473:5;492:4;:2;:4::i;:::-;488:8;;528:1;521:8;;;425:111;:::o;780:65::-;816:3;837:1;;830:8;;780:65;:::o;610:::-;646:3;667:1;;660:8;;610:65;:::o;351:64::-;386:3;407:1;;400:8;;351:64;:::o;7:76:1:-;43:7;72:5;61:16;;7:76;;;:::o;89:115::-;174:23;191:5;174:23;:::i;:::-;169:3;162:36;89:115;;:::o;210:218::-;301:4;339:2;328:9;324:18;316:26;;352:69;418:1;407:9;403:17;394:6;352:69;:::i;:::-;210:218;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "88200",
"executionCost": "44347",
"totalCost": "132547"
},
"external": {
"f2()": "2529",
"f4()": "2503",
"f5()": "4650",
"get_y()": "2437",
"x()": "2407"
},
"internal": {
"f1()": "2123",
"f3()": "2123"
}
},
"methodIdentifiers": {
"f2()": "9942ec6f",
"f4()": "c3f90202",
"f5()": "3c9d377d",
"get_y()": "28d69c6d",
"x()": "0c55699c"
}
},
"abi": [
{
"inputs": [],
"name": "f2",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f4",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f5",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "get_y",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "x",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "f2",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f4",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f5",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "get_y",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "x",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Visibility.sol": "A"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Visibility.sol": {
"keccak256": "0x8e84a4611bddccf89a99bc733a5f657fdc3abb5877ad6836ae99edc6f1c83321",
"license": "GPL-3.0",
"urls": [
"bzz-raw://e7694508f409c78eb0b857363b89ab87d4cdec0ab6f60643c8125bce70dc8249",
"dweb:/ipfs/QmfGLfLdFCmjjFdyRZ8R4sF3EcKQ4ayhDhjzDKpgD7Tk48"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_47": {
"entryPoint": null,
"id": 47,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 783,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 858,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 493,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory": {
"entryPoint": 909,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"allocate_memory": {
"entryPoint": 644,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 437,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 675,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 457,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 729,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1058,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 590,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 390,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1011,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 543,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 516,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 521,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 452,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 447,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 526,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_uint256": {
"entryPoint": 467,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4466:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x21",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "233:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "243:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "259:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "253:5:1"
},
"nodeType": "YulFunctionCall",
"src": "253:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "243:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "226:6:1",
"type": ""
}
],
"src": "193:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "363:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "380:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "383:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "373:6:1"
},
"nodeType": "YulFunctionCall",
"src": "373:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "373:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "274:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "486:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "503:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "506:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "496:6:1"
},
"nodeType": "YulFunctionCall",
"src": "496:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "496:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "397:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "565:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "575:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "586:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "575:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "547:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "557:7:1",
"type": ""
}
],
"src": "520:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "646:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "703:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "712:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "715:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "705:6:1"
},
"nodeType": "YulFunctionCall",
"src": "705:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "705:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "669:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "694:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "676:17:1"
},
"nodeType": "YulFunctionCall",
"src": "676:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "666:2:1"
},
"nodeType": "YulFunctionCall",
"src": "666:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "659:6:1"
},
"nodeType": "YulFunctionCall",
"src": "659:43:1"
},
"nodeType": "YulIf",
"src": "656:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "639:5:1",
"type": ""
}
],
"src": "603:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "794:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "804:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "819:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "813:5:1"
},
"nodeType": "YulFunctionCall",
"src": "813:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "804:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "862:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "835:26:1"
},
"nodeType": "YulFunctionCall",
"src": "835:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "835:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "772:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "780:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "788:5:1",
"type": ""
}
],
"src": "731:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "969:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "986:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "989:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "979:6:1"
},
"nodeType": "YulFunctionCall",
"src": "979:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "979:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "880:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1092:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1109:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1112:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1102:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1102:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1102:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "1003:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1174:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1184:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1202:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1209:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1198:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1198:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1218:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1214:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1194:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1194:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1184:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1157:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1167:6:1",
"type": ""
}
],
"src": "1126:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1262:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1279:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1282:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1272:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1272:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "1272:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1376:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1379:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1369:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1369:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1369:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1400:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1403:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1393:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1393:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1393:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "1234:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1463:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1473:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1495:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1525:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1503:21:1"
},
"nodeType": "YulFunctionCall",
"src": "1503:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1491:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1491:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "1477:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1642:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1644:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1644:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1644:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1585:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1597:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1582:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1582:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1621:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1633:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1618:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1618:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1579:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1579:62:1"
},
"nodeType": "YulIf",
"src": "1576:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1680:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1684:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1673:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1673:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1673:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1449:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1457:4:1",
"type": ""
}
],
"src": "1420:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1748:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1758:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1768:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1768:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1758:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1817:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1825:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1797:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1797:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1797:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1732:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1741:6:1",
"type": ""
}
],
"src": "1707:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1909:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2014:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "2016:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2016:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2016:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1986:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1994:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1983:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1983:30:1"
},
"nodeType": "YulIf",
"src": "1980:56:1"
},
{
"nodeType": "YulAssignment",
"src": "2046:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2076:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2054:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2054:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2046:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2120:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2132:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2138:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2128:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2128:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2120:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1893:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1904:4:1",
"type": ""
}
],
"src": "1842:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2205:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2215:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2224:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2219:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2284:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2309:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2314:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2305:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2305:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2328:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2333:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2324:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2324:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2318:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2318:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2298:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2298:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2298:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2245:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2248:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2242:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2242:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2256:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2258:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2267:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2270:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2263:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2263:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2258:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2238:3:1",
"statements": []
},
"src": "2234:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2381:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2431:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2436:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2427:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2427:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2445:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2420:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2420:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "2420:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2362:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2365:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2359:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2359:13:1"
},
"nodeType": "YulIf",
"src": "2356:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2187:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2192:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2197:6:1",
"type": ""
}
],
"src": "2156:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2564:326:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2574:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2641:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2599:41:1"
},
"nodeType": "YulFunctionCall",
"src": "2599:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2583:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2583:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2574:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2665:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2672:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2658:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2658:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2658:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2688:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2703:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2710:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2699:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2699:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2692:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2753:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2755:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2755:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2755:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2734:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2739:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2730:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2730:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2748:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2727:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2727:25:1"
},
"nodeType": "YulIf",
"src": "2724:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2867:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2872:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2877:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2845:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2845:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2845:39:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2537:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2542:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2550:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2558:5:1",
"type": ""
}
],
"src": "2469:421:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2983:282:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3032:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "3034:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3034:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3034:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3011:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3019:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3007:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3007:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3026:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3003:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3003:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2996:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2996:35:1"
},
"nodeType": "YulIf",
"src": "2993:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3124:27:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3144:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3138:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3138:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3128:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3160:99:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3232:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3240:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3228:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3228:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3247:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3255:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3169:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3169:90:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3160:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2961:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2969:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2977:5:1",
"type": ""
}
],
"src": "2910:355:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3375:576:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3421:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3423:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3423:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3423:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3396:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3405:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3392:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3392:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3417:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3388:32:1"
},
"nodeType": "YulIf",
"src": "3385:119:1"
},
{
"nodeType": "YulBlock",
"src": "3514:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3529:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3543:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3533:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3558:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3604:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3615:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3600:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3600:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3624:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "3568:31:1"
},
"nodeType": "YulFunctionCall",
"src": "3568:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3558:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3652:292:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3667:39:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3691:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3702:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3687:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3687:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3681:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3681:25:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3671:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3753:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3755:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3755:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3755:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3725:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3733:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3722:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3722:30:1"
},
"nodeType": "YulIf",
"src": "3719:117:1"
},
{
"nodeType": "YulAssignment",
"src": "3850:84:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3906:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3917:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3902:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3902:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3926:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3860:41:1"
},
"nodeType": "YulFunctionCall",
"src": "3860:74:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3850:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3337:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3348:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3360:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3368:6:1",
"type": ""
}
],
"src": "3271:680:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3985:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4002:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4005:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3995:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3995:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3995:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4099:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4102:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4092:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4092:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4092:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4123:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4126:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4116:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4116:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4116:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "3957:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4194:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4204:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4218:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4224:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "4214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4214:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4204:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4235:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4265:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4271:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4261:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4261:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "4239:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4312:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4326:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4340:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4348:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4336:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4336:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4326:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4292:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4285:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4285:26:1"
},
"nodeType": "YulIf",
"src": "4282:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4415:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "4429:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4429:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4429:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4379:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4402:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4410:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4399:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4399:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4376:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4376:38:1"
},
"nodeType": "YulIf",
"src": "4373:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "4178:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4187:6:1",
"type": ""
}
],
"src": "4143:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526000600360006101000a81548160ff021916908360028111156200002d576200002c62000186565b5b02179055503480156200003f57600080fd5b5060405162000bd338038062000bd383398181016040528101906200006591906200038d565b816000800181905550806000600101908051906020019062000089929190620000d6565b5033600060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000458565b828054620000e49062000422565b90600052602060002090601f01602090048101928262000108576000855562000154565b82601f106200012357805160ff191683800117855562000154565b8280016001018555821562000154579182015b828111156200015357825182559160200191906001019062000136565b5b50905062000163919062000167565b5090565b5b808211156200018257600081600090555060010162000168565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620001de81620001c9565b8114620001ea57600080fd5b50565b600081519050620001fe81620001d3565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000259826200020e565b810181811067ffffffffffffffff821117156200027b576200027a6200021f565b5b80604052505050565b600062000290620001b5565b90506200029e82826200024e565b919050565b600067ffffffffffffffff821115620002c157620002c06200021f565b5b620002cc826200020e565b9050602081019050919050565b60005b83811015620002f9578082015181840152602081019050620002dc565b8381111562000309576000848401525b50505050565b6000620003266200032084620002a3565b62000284565b90508281526020810184848401111562000345576200034462000209565b5b62000352848285620002d9565b509392505050565b600082601f83011262000372576200037162000204565b5b8151620003848482602086016200030f565b91505092915050565b60008060408385031215620003a757620003a6620001bf565b5b6000620003b785828601620001ed565b925050602083015167ffffffffffffffff811115620003db57620003da620001c4565b5b620003e9858286016200035a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200043b57607f821691505b60208210811415620004525762000451620003f3565b5b50919050565b61076b80620004686000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806323b8ca9f146100465780635424884114610064578063a46878fb14610084575b600080fd5b61004e6100a0565b60405161005b9190610378565b60405180910390f35b61006c6100b3565b60405161007b93929190610486565b60405180910390f35b61009e60048036038101906100999190610665565b610173565b005b600360009054906101000a900460ff1681565b60008060000154908060010180546100ca90610703565b80601f01602080910402602001604051908101604052809291908181526020018280546100f690610703565b80156101435780601f1061011857610100808354040283529160200191610143565b820191906000526020600020905b81548152906001019060200180831161012657829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600281111561018757610186610301565b5b600360009054906101000a900460ff1660028111156101a9576101a8610301565b5b141561025957600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050806000808201518160000155602082015181600101908051906020019061020c92919061025e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b505050565b82805461026a90610703565b90600052602060002090601f01602090048101928261028c57600085556102d3565b82601f106102a557805160ff19168380011785556102d3565b828001600101855582156102d3579182015b828111156102d25782518255916020019190600101906102b7565b5b5090506102e091906102e4565b5090565b5b808211156102fd5760008160009055506001016102e5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061034157610340610301565b5b50565b600081905061035282610330565b919050565b600061036282610344565b9050919050565b61037281610357565b82525050565b600060208201905061038d6000830184610369565b92915050565b6000819050919050565b6103a681610393565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103e65780820151818401526020810190506103cb565b838111156103f5576000848401525b50505050565b6000601f19601f8301169050919050565b6000610417826103ac565b61042181856103b7565b93506104318185602086016103c8565b61043a816103fb565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061047082610445565b9050919050565b61048081610465565b82525050565b600060608201905061049b600083018661039d565b81810360208301526104ad818561040c565b90506104bc6040830184610477565b949350505050565b6000604051905090565b600080fd5b600080fd5b6104e181610393565b81146104ec57600080fd5b50565b6000813590506104fe816104d8565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610546826103fb565b810181811067ffffffffffffffff821117156105655761056461050e565b5b80604052505050565b60006105786104c4565b9050610584828261053d565b919050565b600067ffffffffffffffff8211156105a4576105a361050e565b5b6105ad826103fb565b9050602081019050919050565b82818337600083830152505050565b60006105dc6105d784610589565b61056e565b9050828152602081018484840111156105f8576105f7610509565b5b6106038482856105ba565b509392505050565b600082601f8301126106205761061f610504565b5b81356106308482602086016105c9565b91505092915050565b61064281610465565b811461064d57600080fd5b50565b60008135905061065f81610639565b92915050565b60008060006060848603121561067e5761067d6104ce565b5b600061068c868287016104ef565b935050602084013567ffffffffffffffff8111156106ad576106ac6104d3565b5b6106b98682870161060b565b92505060406106ca86828701610650565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061071b57607f821691505b6020821081141561072f5761072e6106d4565b5b5091905056fea2646970667358221220c5f3721667de0700f3347663a210919a5c64be379a5639b384dcf83bb0d67cae64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x2D JUMPI PUSH3 0x2C PUSH3 0x186 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH3 0x3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xBD3 CODESIZE SUB DUP1 PUSH3 0xBD3 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x65 SWAP2 SWAP1 PUSH3 0x38D JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x89 SWAP3 SWAP2 SWAP1 PUSH3 0xD6 JUMP JUMPDEST POP CALLER PUSH1 0x0 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP PUSH3 0x458 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0xE4 SWAP1 PUSH3 0x422 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x108 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x154 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x123 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x154 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x154 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x153 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x136 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x163 SWAP2 SWAP1 PUSH3 0x167 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x182 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x168 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1DE DUP2 PUSH3 0x1C9 JUMP JUMPDEST DUP2 EQ PUSH3 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x1FE DUP2 PUSH3 0x1D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x259 DUP3 PUSH3 0x20E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x27B JUMPI PUSH3 0x27A PUSH3 0x21F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x290 PUSH3 0x1B5 JUMP JUMPDEST SWAP1 POP PUSH3 0x29E DUP3 DUP3 PUSH3 0x24E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x2C1 JUMPI PUSH3 0x2C0 PUSH3 0x21F JUMP JUMPDEST JUMPDEST PUSH3 0x2CC DUP3 PUSH3 0x20E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x2F9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x2DC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x309 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x326 PUSH3 0x320 DUP5 PUSH3 0x2A3 JUMP JUMPDEST PUSH3 0x284 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x345 JUMPI PUSH3 0x344 PUSH3 0x209 JUMP JUMPDEST JUMPDEST PUSH3 0x352 DUP5 DUP3 DUP6 PUSH3 0x2D9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x372 JUMPI PUSH3 0x371 PUSH3 0x204 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x384 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x30F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x3A7 JUMPI PUSH3 0x3A6 PUSH3 0x1BF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x3B7 DUP6 DUP3 DUP7 ADD PUSH3 0x1ED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x3DB JUMPI PUSH3 0x3DA PUSH3 0x1C4 JUMP JUMPDEST JUMPDEST PUSH3 0x3E9 DUP6 DUP3 DUP7 ADD PUSH3 0x35A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x43B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x452 JUMPI PUSH3 0x451 PUSH3 0x3F3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x76B DUP1 PUSH3 0x468 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x23B8CA9F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x54248841 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xA46878FB EQ PUSH2 0x84 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x665 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xCA SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF6 SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x118 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x143 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x126 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187 JUMPI PUSH2 0x186 PUSH2 0x301 JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x1A8 PUSH2 0x301 JUMP JUMPDEST JUMPDEST EQ ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x20C SWAP3 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x26A SWAP1 PUSH2 0x703 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x28C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2A5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2D3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2D2 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2B7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x341 JUMPI PUSH2 0x340 PUSH2 0x301 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x352 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP3 PUSH2 0x344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x357 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x369 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A6 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3CB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417 DUP3 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x421 DUP2 DUP6 PUSH2 0x3B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x431 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3FB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x470 DUP3 PUSH2 0x445 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x49B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x39D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4AD DUP2 DUP6 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP PUSH2 0x4BC PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x477 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E1 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP2 EQ PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4FE DUP2 PUSH2 0x4D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x546 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x50E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x578 PUSH2 0x4C4 JUMP JUMPDEST SWAP1 POP PUSH2 0x584 DUP3 DUP3 PUSH2 0x53D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x50E JUMP JUMPDEST JUMPDEST PUSH2 0x5AD DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH2 0x5D7 DUP5 PUSH2 0x589 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5F8 JUMPI PUSH2 0x5F7 PUSH2 0x509 JUMP JUMPDEST JUMPDEST PUSH2 0x603 DUP5 DUP3 DUP6 PUSH2 0x5BA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x620 JUMPI PUSH2 0x61F PUSH2 0x504 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x630 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x642 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP2 EQ PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65F DUP2 PUSH2 0x639 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67D PUSH2 0x4CE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x68C DUP7 DUP3 DUP8 ADD PUSH2 0x4EF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AD JUMPI PUSH2 0x6AC PUSH2 0x4D3 JUMP JUMPDEST JUMPDEST PUSH2 0x6B9 DUP7 DUP3 DUP8 ADD PUSH2 0x60B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6CA DUP7 DUP3 DUP8 ADD PUSH2 0x650 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x71B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 RETURN PUSH19 0x1667DE0700F3347663A210919A5C64BE379A56 CODECOPY 0xB3 DUP5 0xDC 0xF8 EXTCODESIZE 0xB0 0xD6 PUSH29 0xAE64736F6C634300080B00330000000000000000000000000000000000 ",
"sourceMap": "168:640:0:-:0;;;265:10;237:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;282:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;360:4;336:17;:21;;:28;;;;399:5;374:17;:22;;:30;;;;;;;;;;;;:::i;:::-;;439:10;414:17;:22;;;:35;;;;;;;;;;;;;;;;;;282:174;;168:640;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:75;226:6;259:2;253:9;243:19;;193:75;:::o;274:117::-;383:1;380;373:12;397:117;506:1;503;496:12;520:77;557:7;586:5;575:16;;520:77;;;:::o;603:122::-;676:24;694:5;676:24;:::i;:::-;669:5;666:35;656:63;;715:1;712;705:12;656:63;603:122;:::o;731:143::-;788:5;819:6;813:13;804:22;;835:33;862:5;835:33;:::i;:::-;731:143;;;;:::o;880:117::-;989:1;986;979:12;1003:117;1112:1;1109;1102:12;1126:102;1167:6;1218:2;1214:7;1209:2;1202:5;1198:14;1194:28;1184:38;;1126:102;;;:::o;1234:180::-;1282:77;1279:1;1272:88;1379:4;1376:1;1369:15;1403:4;1400:1;1393:15;1420:281;1503:27;1525:4;1503:27;:::i;:::-;1495:6;1491:40;1633:6;1621:10;1618:22;1597:18;1585:10;1582:34;1579:62;1576:88;;;1644:18;;:::i;:::-;1576:88;1684:10;1680:2;1673:22;1463:238;1420:281;;:::o;1707:129::-;1741:6;1768:20;;:::i;:::-;1758:30;;1797:33;1825:4;1817:6;1797:33;:::i;:::-;1707:129;;;:::o;1842:308::-;1904:4;1994:18;1986:6;1983:30;1980:56;;;2016:18;;:::i;:::-;1980:56;2054:29;2076:6;2054:29;:::i;:::-;2046:37;;2138:4;2132;2128:15;2120:23;;1842:308;;;:::o;2156:307::-;2224:1;2234:113;2248:6;2245:1;2242:13;2234:113;;;2333:1;2328:3;2324:11;2318:18;2314:1;2309:3;2305:11;2298:39;2270:2;2267:1;2263:10;2258:15;;2234:113;;;2365:6;2362:1;2359:13;2356:101;;;2445:1;2436:6;2431:3;2427:16;2420:27;2356:101;2205:258;2156:307;;;:::o;2469:421::-;2558:5;2583:66;2599:49;2641:6;2599:49;:::i;:::-;2583:66;:::i;:::-;2574:75;;2672:6;2665:5;2658:21;2710:4;2703:5;2699:16;2748:3;2739:6;2734:3;2730:16;2727:25;2724:112;;;2755:79;;:::i;:::-;2724:112;2845:39;2877:6;2872:3;2867;2845:39;:::i;:::-;2564:326;2469:421;;;;;:::o;2910:355::-;2977:5;3026:3;3019:4;3011:6;3007:17;3003:27;2993:122;;3034:79;;:::i;:::-;2993:122;3144:6;3138:13;3169:90;3255:3;3247:6;3240:4;3232:6;3228:17;3169:90;:::i;:::-;3160:99;;2983:282;2910:355;;;;:::o;3271:680::-;3360:6;3368;3417:2;3405:9;3396:7;3392:23;3388:32;3385:119;;;3423:79;;:::i;:::-;3385:119;3543:1;3568:64;3624:7;3615:6;3604:9;3600:22;3568:64;:::i;:::-;3558:74;;3514:128;3702:2;3691:9;3687:18;3681:25;3733:18;3725:6;3722:30;3719:117;;;3755:79;;:::i;:::-;3719:117;3860:74;3926:7;3917:6;3906:9;3902:22;3860:74;:::i;:::-;3850:84;;3652:292;3271:680;;;;;:::o;3957:180::-;4005:77;4002:1;3995:88;4102:4;4099:1;4092:15;4126:4;4123:1;4116:15;4143:320;4187:6;4224:1;4218:4;4214:12;4204:22;;4271:1;4265:4;4261:12;4292:18;4282:81;;4348:4;4340:6;4336:17;4326:27;;4282:81;4410:2;4402:6;4399:14;4379:18;4376:38;4373:84;;;4429:18;;:::i;:::-;4373:84;4194:269;4143:320;;;:::o;168:640:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@academyInstructor_15": {
"entryPoint": 179,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
},
"@academyState_20": {
"entryPoint": 160,
"id": 20,
"parameterSlots": 0,
"returnSlots": 0
},
"@changeInstructor_76": {
"entryPoint": 371,
"id": 76,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 1481,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 1616,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 1547,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1263,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptrt_address": {
"entryPoint": 1637,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1143,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_enum$_State_$12_to_t_uint8_fromStack": {
"entryPoint": 873,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1036,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 925,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_enum$_State_$12__to_t_uint8__fromStack_reversed": {
"entryPoint": 888,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 1158,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1390,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1220,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1417,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 940,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 951,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1125,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_enum$_State_$12": {
"entryPoint": 836,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1093,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 915,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_enum$_State_$12_to_t_uint8": {
"entryPoint": 855,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 1466,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 968,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1795,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1341,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 769,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1748,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1294,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1284,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1289,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1235,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1230,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1019,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_assert_t_enum$_State_$12": {
"entryPoint": 816,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 1593,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1240,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:7435:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x21",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "244:62:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "278:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x21",
"nodeType": "YulIdentifier",
"src": "280:16:1"
},
"nodeType": "YulFunctionCall",
"src": "280:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "280:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "267:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "274:1:1",
"type": "",
"value": "3"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "264:2:1"
},
"nodeType": "YulFunctionCall",
"src": "264:12:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "257:6:1"
},
"nodeType": "YulFunctionCall",
"src": "257:20:1"
},
"nodeType": "YulIf",
"src": "254:46:1"
}
]
},
"name": "validator_assert_t_enum$_State_$12",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "237:5:1",
"type": ""
}
],
"src": "193:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "365:74:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "375:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "386:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "375:7:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "427:5:1"
}
],
"functionName": {
"name": "validator_assert_t_enum$_State_$12",
"nodeType": "YulIdentifier",
"src": "392:34:1"
},
"nodeType": "YulFunctionCall",
"src": "392:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "392:41:1"
}
]
},
"name": "cleanup_t_enum$_State_$12",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "347:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "357:7:1",
"type": ""
}
],
"src": "312:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:61:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:45:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "560:5:1"
}
],
"functionName": {
"name": "cleanup_t_enum$_State_$12",
"nodeType": "YulIdentifier",
"src": "534:25:1"
},
"nodeType": "YulFunctionCall",
"src": "534:32:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "521:9:1"
}
]
}
]
},
"name": "convert_t_enum$_State_$12_to_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "491:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "501:9:1",
"type": ""
}
],
"src": "445:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "649:72:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "666:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "708:5:1"
}
],
"functionName": {
"name": "convert_t_enum$_State_$12_to_t_uint8",
"nodeType": "YulIdentifier",
"src": "671:36:1"
},
"nodeType": "YulFunctionCall",
"src": "671:43:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "659:6:1"
},
"nodeType": "YulFunctionCall",
"src": "659:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "659:56:1"
}
]
},
"name": "abi_encode_t_enum$_State_$12_to_t_uint8_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "637:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "644:3:1",
"type": ""
}
],
"src": "578:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "831:130:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "841:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "853:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "864:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "849:3:1"
},
"nodeType": "YulFunctionCall",
"src": "849:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "841:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "927:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "940:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "951:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "936:3:1"
},
"nodeType": "YulFunctionCall",
"src": "936:17:1"
}
],
"functionName": {
"name": "abi_encode_t_enum$_State_$12_to_t_uint8_fromStack",
"nodeType": "YulIdentifier",
"src": "877:49:1"
},
"nodeType": "YulFunctionCall",
"src": "877:77:1"
},
"nodeType": "YulExpressionStatement",
"src": "877:77:1"
}
]
},
"name": "abi_encode_tuple_t_enum$_State_$12__to_t_uint8__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "803:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "815:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "826:4:1",
"type": ""
}
],
"src": "727:234:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1012:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1022:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1033:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1022:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "994:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1004:7:1",
"type": ""
}
],
"src": "967:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1115:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1132:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1155:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1137:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1137:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1125:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1125:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1125:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1103:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1110:3:1",
"type": ""
}
],
"src": "1050:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1233:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1244:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1260:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1254:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1254:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1244:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1216:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1226:6:1",
"type": ""
}
],
"src": "1174:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1375:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1392:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1397:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1385:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1385:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1385:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1413:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1432:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1437:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1428:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1428:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1413:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1347:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1352:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1363:11:1",
"type": ""
}
],
"src": "1279:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1503:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1513:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1522:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1517:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1582:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1607:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1612:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1603:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1603:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1626:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1631:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1622:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1622:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1616:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1616:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1596:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1596:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "1596:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1543:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1546:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1540:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1540:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1554:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1556:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1565:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1568:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1561:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1561:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1556:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1536:3:1",
"statements": []
},
"src": "1532:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1679:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1729:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1734:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1725:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1725:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1743:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1718:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1718:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1718:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1660:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1663:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1657:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1657:13:1"
},
"nodeType": "YulIf",
"src": "1654:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1485:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1490:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1495:6:1",
"type": ""
}
],
"src": "1454:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1815:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1825:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1843:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1850:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1839:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1839:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1859:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1855:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1855:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1835:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1835:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1825:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1798:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1808:6:1",
"type": ""
}
],
"src": "1767:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1967:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1977:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2024:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1991:32:1"
},
"nodeType": "YulFunctionCall",
"src": "1991:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1981:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2039:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2105:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2110:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2046:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2046:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2039:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2152:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2159:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2148:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2148:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2166:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2171:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2126:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2126:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "2126:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2187:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2198:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2225:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2203:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2203:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2194:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2194:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2187:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1948:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1955:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1963:3:1",
"type": ""
}
],
"src": "1875:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2290:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2300:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2315:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2322:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2311:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2311:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2300:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2272:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2282:7:1",
"type": ""
}
],
"src": "2245:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2422:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2432:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2461:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2443:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2443:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2432:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2404:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2414:7:1",
"type": ""
}
],
"src": "2377:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2544:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2561:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2584:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2566:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2566:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2554:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2554:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2554:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2532:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2539:3:1",
"type": ""
}
],
"src": "2479:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2777:359:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2787:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2799:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2810:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2795:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2795:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2787:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2867:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2880:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2891:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2876:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2876:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2823:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2823:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2823:71:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2915:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2926:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2911:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2911:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2935:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2941:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2931:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2931:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2904:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2904:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "2904:48:1"
},
{
"nodeType": "YulAssignment",
"src": "2961:86:1",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3033:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3042:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2969:63:1"
},
"nodeType": "YulFunctionCall",
"src": "2969:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2961:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3101:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3114:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3125:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3110:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3110:18:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3057:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3057:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "3057:72:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2733:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2745:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2753:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2761:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2772:4:1",
"type": ""
}
],
"src": "2603:533:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3182:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3192:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3208:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3202:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3202:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3192:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3175:6:1",
"type": ""
}
],
"src": "3142:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3312:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3329:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3332:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3322:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3322:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3322:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "3223:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3435:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3452:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3455:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3445:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3445:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3445:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "3346:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3512:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3569:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3578:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3581:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3571:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3571:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3571:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3535:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3560:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3542:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3542:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3532:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3532:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3525:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3525:43:1"
},
"nodeType": "YulIf",
"src": "3522:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3505:5:1",
"type": ""
}
],
"src": "3469:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3649:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3659:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3681:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3668:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3668:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3659:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3724:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3697:26:1"
},
"nodeType": "YulFunctionCall",
"src": "3697:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3697:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3627:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3635:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3643:5:1",
"type": ""
}
],
"src": "3597:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3831:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3848:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3851:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3841:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3841:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3841:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "3742:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3954:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3971:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3974:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3964:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3964:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3964:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "3865:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4016:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4033:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4036:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4026:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4026:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "4026:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4130:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4133:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4123:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4123:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4123:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4154:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4157:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4147:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4147:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4147:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3988:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4217:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4227:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4249:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4279:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4257:21:1"
},
"nodeType": "YulFunctionCall",
"src": "4257:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4245:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4245:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "4231:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4396:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4398:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4398:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4398:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4339:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4351:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4336:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4336:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4375:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4387:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4372:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4372:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "4333:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4333:62:1"
},
"nodeType": "YulIf",
"src": "4330:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4434:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4438:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4427:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4427:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "4427:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4203:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4211:4:1",
"type": ""
}
],
"src": "4174:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4502:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4512:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "4522:18:1"
},
"nodeType": "YulFunctionCall",
"src": "4522:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4512:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4571:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4579:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "4551:19:1"
},
"nodeType": "YulFunctionCall",
"src": "4551:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "4551:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4486:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4495:6:1",
"type": ""
}
],
"src": "4461:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4663:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4768:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4770:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4770:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4770:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4740:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4748:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4737:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4737:30:1"
},
"nodeType": "YulIf",
"src": "4734:56:1"
},
{
"nodeType": "YulAssignment",
"src": "4800:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4830:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4808:21:1"
},
"nodeType": "YulFunctionCall",
"src": "4808:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4800:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4874:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4886:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4892:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4882:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4882:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4874:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4647:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4658:4:1",
"type": ""
}
],
"src": "4596:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4961:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4984:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4989:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4994:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "4971:12:1"
},
"nodeType": "YulFunctionCall",
"src": "4971:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4971:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5042:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5047:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5038:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5038:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5056:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5031:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5031:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "5031:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4943:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4948:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4953:6:1",
"type": ""
}
],
"src": "4910:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5154:328:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5164:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5231:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5189:41:1"
},
"nodeType": "YulFunctionCall",
"src": "5189:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "5173:15:1"
},
"nodeType": "YulFunctionCall",
"src": "5173:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5164:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5255:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5262:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5248:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5248:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "5248:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5278:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5293:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5300:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5289:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5289:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "5282:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5343:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "5345:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5345:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5345:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5324:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5329:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5320:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5320:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5338:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5317:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5317:25:1"
},
"nodeType": "YulIf",
"src": "5314:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5459:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5464:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5469:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "5435:23:1"
},
"nodeType": "YulFunctionCall",
"src": "5435:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "5435:41:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "5127:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5132:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5140:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5148:5:1",
"type": ""
}
],
"src": "5070:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5564:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5613:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "5615:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5615:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5615:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5592:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5600:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5588:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5588:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5607:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5584:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5584:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5577:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5577:35:1"
},
"nodeType": "YulIf",
"src": "5574:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5705:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5732:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5719:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5719:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5709:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5748:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5809:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5817:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5805:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5805:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5824:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5832:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5757:47:1"
},
"nodeType": "YulFunctionCall",
"src": "5757:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5748:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5542:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5550:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5558:5:1",
"type": ""
}
],
"src": "5502:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5891:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5948:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5957:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5960:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5950:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5950:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "5950:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5914:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5939:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "5921:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5921:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "5911:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5911:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5904:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5904:43:1"
},
"nodeType": "YulIf",
"src": "5901:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5884:5:1",
"type": ""
}
],
"src": "5848:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6028:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6038:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6060:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6047:12:1"
},
"nodeType": "YulFunctionCall",
"src": "6047:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6038:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6103:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "6076:26:1"
},
"nodeType": "YulFunctionCall",
"src": "6076:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "6076:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6006:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6014:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6022:5:1",
"type": ""
}
],
"src": "5976:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6231:689:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6277:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "6279:77:1"
},
"nodeType": "YulFunctionCall",
"src": "6279:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "6279:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6252:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6261:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6248:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6248:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6273:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "6244:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6244:32:1"
},
"nodeType": "YulIf",
"src": "6241:119:1"
},
{
"nodeType": "YulBlock",
"src": "6370:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6385:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6399:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6389:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6414:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6449:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6460:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6445:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6445:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6469:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6424:20:1"
},
"nodeType": "YulFunctionCall",
"src": "6424:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6414:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6497:288:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6512:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6543:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6554:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6539:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6539:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6526:12:1"
},
"nodeType": "YulFunctionCall",
"src": "6526:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6516:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6605:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "6607:77:1"
},
"nodeType": "YulFunctionCall",
"src": "6607:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "6607:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6577:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6585:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6574:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6574:30:1"
},
"nodeType": "YulIf",
"src": "6571:117:1"
},
{
"nodeType": "YulAssignment",
"src": "6702:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6747:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6758:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6743:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6743:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6767:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6712:30:1"
},
"nodeType": "YulFunctionCall",
"src": "6712:63:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6702:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6795:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6810:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6824:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6814:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6840:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6875:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6886:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6871:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6871:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6895:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "6850:20:1"
},
"nodeType": "YulFunctionCall",
"src": "6850:53:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6840:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptrt_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6185:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "6196:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6208:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6216:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6224:6:1",
"type": ""
}
],
"src": "6121:799:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6954:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6971:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6974:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6964:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6964:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6964:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7068:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7071:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7061:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7061:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7061:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7092:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7095:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7085:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7085:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7085:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "6926:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7163:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7173:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7187:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7193:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "7183:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7183:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7173:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7204:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7234:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7240:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7230:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7230:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "7208:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7281:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7295:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7309:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7317:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7305:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7305:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7295:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7261:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "7254:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7254:26:1"
},
"nodeType": "YulIf",
"src": "7251:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7384:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "7398:16:1"
},
"nodeType": "YulFunctionCall",
"src": "7398:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "7398:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7348:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7371:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7379:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7368:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7368:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "7345:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7345:38:1"
},
"nodeType": "YulIf",
"src": "7342:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "7147:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7156:6:1",
"type": ""
}
],
"src": "7112:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_State_$12(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_State_$12(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_State_$12(value)\n }\n\n function convert_t_enum$_State_$12_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_State_$12(value)\n }\n\n function abi_encode_t_enum$_State_$12_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_State_$12_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_State_$12__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_State_$12_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806323b8ca9f146100465780635424884114610064578063a46878fb14610084575b600080fd5b61004e6100a0565b60405161005b9190610378565b60405180910390f35b61006c6100b3565b60405161007b93929190610486565b60405180910390f35b61009e60048036038101906100999190610665565b610173565b005b600360009054906101000a900460ff1681565b60008060000154908060010180546100ca90610703565b80601f01602080910402602001604051908101604052809291908181526020018280546100f690610703565b80156101435780601f1061011857610100808354040283529160200191610143565b820191906000526020600020905b81548152906001019060200180831161012657829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600281111561018757610186610301565b5b600360009054906101000a900460ff1660028111156101a9576101a8610301565b5b141561025957600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050806000808201518160000155602082015181600101908051906020019061020c92919061025e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b505050565b82805461026a90610703565b90600052602060002090601f01602090048101928261028c57600085556102d3565b82601f106102a557805160ff19168380011785556102d3565b828001600101855582156102d3579182015b828111156102d25782518255916020019190600101906102b7565b5b5090506102e091906102e4565b5090565b5b808211156102fd5760008160009055506001016102e5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061034157610340610301565b5b50565b600081905061035282610330565b919050565b600061036282610344565b9050919050565b61037281610357565b82525050565b600060208201905061038d6000830184610369565b92915050565b6000819050919050565b6103a681610393565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103e65780820151818401526020810190506103cb565b838111156103f5576000848401525b50505050565b6000601f19601f8301169050919050565b6000610417826103ac565b61042181856103b7565b93506104318185602086016103c8565b61043a816103fb565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061047082610445565b9050919050565b61048081610465565b82525050565b600060608201905061049b600083018661039d565b81810360208301526104ad818561040c565b90506104bc6040830184610477565b949350505050565b6000604051905090565b600080fd5b600080fd5b6104e181610393565b81146104ec57600080fd5b50565b6000813590506104fe816104d8565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610546826103fb565b810181811067ffffffffffffffff821117156105655761056461050e565b5b80604052505050565b60006105786104c4565b9050610584828261053d565b919050565b600067ffffffffffffffff8211156105a4576105a361050e565b5b6105ad826103fb565b9050602081019050919050565b82818337600083830152505050565b60006105dc6105d784610589565b61056e565b9050828152602081018484840111156105f8576105f7610509565b5b6106038482856105ba565b509392505050565b600082601f8301126106205761061f610504565b5b81356106308482602086016105c9565b91505092915050565b61064281610465565b811461064d57600080fd5b50565b60008135905061065f81610639565b92915050565b60008060006060848603121561067e5761067d6104ce565b5b600061068c868287016104ef565b935050602084013567ffffffffffffffff8111156106ad576106ac6104d3565b5b6106b98682870161060b565b92505060406106ca86828701610650565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061071b57607f821691505b6020821081141561072f5761072e6106d4565b5b5091905056fea2646970667358221220c5f3721667de0700f3347663a210919a5c64be379a5639b384dcf83bb0d67cae64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x23B8CA9F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x54248841 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xA46878FB EQ PUSH2 0x84 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x665 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xCA SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF6 SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x118 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x143 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x126 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187 JUMPI PUSH2 0x186 PUSH2 0x301 JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x1A8 PUSH2 0x301 JUMP JUMPDEST JUMPDEST EQ ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x20C SWAP3 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x26A SWAP1 PUSH2 0x703 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x28C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2A5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2D3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2D2 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2B7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x341 JUMPI PUSH2 0x340 PUSH2 0x301 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x352 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP3 PUSH2 0x344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x357 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x369 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A6 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3CB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417 DUP3 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x421 DUP2 DUP6 PUSH2 0x3B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x431 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3FB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x470 DUP3 PUSH2 0x445 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x49B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x39D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4AD DUP2 DUP6 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP PUSH2 0x4BC PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x477 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E1 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP2 EQ PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4FE DUP2 PUSH2 0x4D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x546 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x50E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x578 PUSH2 0x4C4 JUMP JUMPDEST SWAP1 POP PUSH2 0x584 DUP3 DUP3 PUSH2 0x53D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x50E JUMP JUMPDEST JUMPDEST PUSH2 0x5AD DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH2 0x5D7 DUP5 PUSH2 0x589 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5F8 JUMPI PUSH2 0x5F7 PUSH2 0x509 JUMP JUMPDEST JUMPDEST PUSH2 0x603 DUP5 DUP3 DUP6 PUSH2 0x5BA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x620 JUMPI PUSH2 0x61F PUSH2 0x504 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x630 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x642 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP2 EQ PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65F DUP2 PUSH2 0x639 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67D PUSH2 0x4CE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x68C DUP7 DUP3 DUP8 ADD PUSH2 0x4EF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AD JUMPI PUSH2 0x6AC PUSH2 0x4D3 JUMP JUMPDEST JUMPDEST PUSH2 0x6B9 DUP7 DUP3 DUP8 ADD PUSH2 0x60B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6CA DUP7 DUP3 DUP8 ADD PUSH2 0x650 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x71B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 RETURN PUSH19 0x1667DE0700F3347663A210919A5C64BE379A56 CODECOPY 0xB3 DUP5 0xDC 0xF8 EXTCODESIZE 0xB0 0xD6 PUSH29 0xAE64736F6C634300080B00330000000000000000000000000000000000 ",
"sourceMap": "168:640:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;191:35;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;462:344;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;237:38;;;;;;;;;;;;;:::o;191:35::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;462:344::-;572:10;556:26;;;;;;;;:::i;:::-;;:12;;;;;;;;;;;:26;;;;;;;;:::i;:::-;;;553:247;;;597:31;631:111;;;;;;;;665:4;631:111;;;;693:5;631:111;;;;722:5;631:111;;;;;597:145;;776:13;756:17;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:217;553:247;462:344;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:113;274:1;267:5;264:12;254:46;;280:18;;:::i;:::-;254:46;193:113;:::o;312:127::-;357:7;386:5;375:16;;392:41;427:5;392:41;:::i;:::-;312:127;;;:::o;445:::-;501:9;534:32;560:5;534:32;:::i;:::-;521:45;;445:127;;;:::o;578:143::-;671:43;708:5;671:43;:::i;:::-;666:3;659:56;578:143;;:::o;727:234::-;826:4;864:2;853:9;849:18;841:26;;877:77;951:1;940:9;936:17;927:6;877:77;:::i;:::-;727:234;;;;:::o;967:77::-;1004:7;1033:5;1022:16;;967:77;;;:::o;1050:118::-;1137:24;1155:5;1137:24;:::i;:::-;1132:3;1125:37;1050:118;;:::o;1174:99::-;1226:6;1260:5;1254:12;1244:22;;1174:99;;;:::o;1279:169::-;1363:11;1397:6;1392:3;1385:19;1437:4;1432:3;1428:14;1413:29;;1279:169;;;;:::o;1454:307::-;1522:1;1532:113;1546:6;1543:1;1540:13;1532:113;;;1631:1;1626:3;1622:11;1616:18;1612:1;1607:3;1603:11;1596:39;1568:2;1565:1;1561:10;1556:15;;1532:113;;;1663:6;1660:1;1657:13;1654:101;;;1743:1;1734:6;1729:3;1725:16;1718:27;1654:101;1503:258;1454:307;;;:::o;1767:102::-;1808:6;1859:2;1855:7;1850:2;1843:5;1839:14;1835:28;1825:38;;1767:102;;;:::o;1875:364::-;1963:3;1991:39;2024:5;1991:39;:::i;:::-;2046:71;2110:6;2105:3;2046:71;:::i;:::-;2039:78;;2126:52;2171:6;2166:3;2159:4;2152:5;2148:16;2126:52;:::i;:::-;2203:29;2225:6;2203:29;:::i;:::-;2198:3;2194:39;2187:46;;1967:272;1875:364;;;;:::o;2245:126::-;2282:7;2322:42;2315:5;2311:54;2300:65;;2245:126;;;:::o;2377:96::-;2414:7;2443:24;2461:5;2443:24;:::i;:::-;2432:35;;2377:96;;;:::o;2479:118::-;2566:24;2584:5;2566:24;:::i;:::-;2561:3;2554:37;2479:118;;:::o;2603:533::-;2772:4;2810:2;2799:9;2795:18;2787:26;;2823:71;2891:1;2880:9;2876:17;2867:6;2823:71;:::i;:::-;2941:9;2935:4;2931:20;2926:2;2915:9;2911:18;2904:48;2969:78;3042:4;3033:6;2969:78;:::i;:::-;2961:86;;3057:72;3125:2;3114:9;3110:18;3101:6;3057:72;:::i;:::-;2603:533;;;;;;:::o;3142:75::-;3175:6;3208:2;3202:9;3192:19;;3142:75;:::o;3223:117::-;3332:1;3329;3322:12;3346:117;3455:1;3452;3445:12;3469:122;3542:24;3560:5;3542:24;:::i;:::-;3535:5;3532:35;3522:63;;3581:1;3578;3571:12;3522:63;3469:122;:::o;3597:139::-;3643:5;3681:6;3668:20;3659:29;;3697:33;3724:5;3697:33;:::i;:::-;3597:139;;;;:::o;3742:117::-;3851:1;3848;3841:12;3865:117;3974:1;3971;3964:12;3988:180;4036:77;4033:1;4026:88;4133:4;4130:1;4123:15;4157:4;4154:1;4147:15;4174:281;4257:27;4279:4;4257:27;:::i;:::-;4249:6;4245:40;4387:6;4375:10;4372:22;4351:18;4339:10;4336:34;4333:62;4330:88;;;4398:18;;:::i;:::-;4330:88;4438:10;4434:2;4427:22;4217:238;4174:281;;:::o;4461:129::-;4495:6;4522:20;;:::i;:::-;4512:30;;4551:33;4579:4;4571:6;4551:33;:::i;:::-;4461:129;;;:::o;4596:308::-;4658:4;4748:18;4740:6;4737:30;4734:56;;;4770:18;;:::i;:::-;4734:56;4808:29;4830:6;4808:29;:::i;:::-;4800:37;;4892:4;4886;4882:15;4874:23;;4596:308;;;:::o;4910:154::-;4994:6;4989:3;4984;4971:30;5056:1;5047:6;5042:3;5038:16;5031:27;4910:154;;;:::o;5070:412::-;5148:5;5173:66;5189:49;5231:6;5189:49;:::i;:::-;5173:66;:::i;:::-;5164:75;;5262:6;5255:5;5248:21;5300:4;5293:5;5289:16;5338:3;5329:6;5324:3;5320:16;5317:25;5314:112;;;5345:79;;:::i;:::-;5314:112;5435:41;5469:6;5464:3;5459;5435:41;:::i;:::-;5154:328;5070:412;;;;;:::o;5502:340::-;5558:5;5607:3;5600:4;5592:6;5588:17;5584:27;5574:122;;5615:79;;:::i;:::-;5574:122;5732:6;5719:20;5757:79;5832:3;5824:6;5817:4;5809:6;5805:17;5757:79;:::i;:::-;5748:88;;5564:278;5502:340;;;;:::o;5848:122::-;5921:24;5939:5;5921:24;:::i;:::-;5914:5;5911:35;5901:63;;5960:1;5957;5950:12;5901:63;5848:122;:::o;5976:139::-;6022:5;6060:6;6047:20;6038:29;;6076:33;6103:5;6076:33;:::i;:::-;5976:139;;;;:::o;6121:799::-;6208:6;6216;6224;6273:2;6261:9;6252:7;6248:23;6244:32;6241:119;;;6279:79;;:::i;:::-;6241:119;6399:1;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6370:117;6554:2;6543:9;6539:18;6526:32;6585:18;6577:6;6574:30;6571:117;;;6607:79;;:::i;:::-;6571:117;6712:63;6767:7;6758:6;6747:9;6743:22;6712:63;:::i;:::-;6702:73;;6497:288;6824:2;6850:53;6895:7;6886:6;6875:9;6871:22;6850:53;:::i;:::-;6840:63;;6795:118;6121:799;;;;;:::o;6926:180::-;6974:77;6971:1;6964:88;7071:4;7068:1;7061:15;7095:4;7092:1;7085:15;7112:320;7156:6;7193:1;7187:4;7183:12;7173:22;;7240:1;7234:4;7230:12;7261:18;7251:81;;7317:4;7309:6;7305:17;7295:27;;7251:81;7379:2;7371:6;7368:14;7348:18;7345:38;7342:84;;;7398:18;;:::i;:::-;7342:84;7163:269;7112:320;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "379800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"academyInstructor()": "infinite",
"academyState()": "2538",
"changeInstructor(uint256,string,address)": "infinite"
}
},
"methodIdentifiers": {
"academyInstructor()": "54248841",
"academyState()": "23b8ca9f",
"changeInstructor(uint256,string,address)": "a46878fb"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "academyInstructor",
"outputs": [
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "academyState",
"outputs": [
{
"internalType": "enum State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "address",
"name": "_addr",
"type": "address"
}
],
"name": "changeInstructor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "academyInstructor",
"outputs": [
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "academyState",
"outputs": [
{
"internalType": "enum State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "address",
"name": "_addr",
"type": "address"
}
],
"name": "changeInstructor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Insructor.sol": "Academy"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Insructor.sol": {
"keccak256": "0xed1d92a8da7d46a4d6d6d82b2282a4e3750c0e30632b18eaf4f0f8aaa71c207a",
"license": "GPL-3.0",
"urls": [
"bzz-raw://48e339e9c36aa5d1cb006d0a6df80871978d061f93f6d9a71cc3b9c721606f4c",
"dweb:/ipfs/QmNnFMPvYCAenJyhGC6j2awiTnD8zooyF124KLr1Zo2xYZ"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_47": {
"entryPoint": null,
"id": 47,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 783,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 858,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 493,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory": {
"entryPoint": 909,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"allocate_memory": {
"entryPoint": 644,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 437,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 675,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 457,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 729,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1058,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 590,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 390,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1011,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 543,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 516,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 521,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 452,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 447,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 526,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_uint256": {
"entryPoint": 467,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4466:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x21",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "233:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "243:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "259:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "253:5:1"
},
"nodeType": "YulFunctionCall",
"src": "253:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "243:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "226:6:1",
"type": ""
}
],
"src": "193:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "363:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "380:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "383:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "373:6:1"
},
"nodeType": "YulFunctionCall",
"src": "373:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "373:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "274:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "486:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "503:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "506:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "496:6:1"
},
"nodeType": "YulFunctionCall",
"src": "496:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "496:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "397:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "565:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "575:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "586:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "575:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "547:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "557:7:1",
"type": ""
}
],
"src": "520:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "646:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "703:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "712:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "715:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "705:6:1"
},
"nodeType": "YulFunctionCall",
"src": "705:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "705:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "669:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "694:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "676:17:1"
},
"nodeType": "YulFunctionCall",
"src": "676:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "666:2:1"
},
"nodeType": "YulFunctionCall",
"src": "666:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "659:6:1"
},
"nodeType": "YulFunctionCall",
"src": "659:43:1"
},
"nodeType": "YulIf",
"src": "656:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "639:5:1",
"type": ""
}
],
"src": "603:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "794:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "804:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "819:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "813:5:1"
},
"nodeType": "YulFunctionCall",
"src": "813:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "804:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "862:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "835:26:1"
},
"nodeType": "YulFunctionCall",
"src": "835:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "835:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "772:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "780:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "788:5:1",
"type": ""
}
],
"src": "731:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "969:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "986:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "989:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "979:6:1"
},
"nodeType": "YulFunctionCall",
"src": "979:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "979:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "880:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1092:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1109:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1112:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1102:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1102:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1102:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "1003:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1174:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1184:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1202:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1209:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1198:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1198:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1218:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1214:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1194:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1194:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1184:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1157:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1167:6:1",
"type": ""
}
],
"src": "1126:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1262:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1279:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1282:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1272:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1272:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "1272:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1376:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1379:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1369:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1369:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1369:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1400:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1403:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1393:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1393:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1393:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "1234:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1463:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1473:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1495:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1525:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1503:21:1"
},
"nodeType": "YulFunctionCall",
"src": "1503:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1491:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1491:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "1477:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1642:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1644:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1644:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1644:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1585:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1597:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1582:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1582:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1621:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1633:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1618:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1618:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1579:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1579:62:1"
},
"nodeType": "YulIf",
"src": "1576:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1680:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1684:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1673:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1673:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1673:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1449:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1457:4:1",
"type": ""
}
],
"src": "1420:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1748:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1758:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1768:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1768:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1758:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1817:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1825:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1797:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1797:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1797:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1732:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1741:6:1",
"type": ""
}
],
"src": "1707:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1909:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2014:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "2016:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2016:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2016:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1986:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1994:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1983:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1983:30:1"
},
"nodeType": "YulIf",
"src": "1980:56:1"
},
{
"nodeType": "YulAssignment",
"src": "2046:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2076:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2054:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2054:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2046:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2120:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2132:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2138:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2128:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2128:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2120:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1893:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1904:4:1",
"type": ""
}
],
"src": "1842:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2205:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2215:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2224:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2219:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2284:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2309:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2314:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2305:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2305:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2328:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2333:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2324:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2324:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2318:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2318:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2298:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2298:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2298:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2245:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2248:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2242:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2242:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2256:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2258:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2267:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2270:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2263:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2263:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2258:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2238:3:1",
"statements": []
},
"src": "2234:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2381:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2431:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2436:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2427:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2427:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2445:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2420:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2420:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "2420:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2362:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2365:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2359:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2359:13:1"
},
"nodeType": "YulIf",
"src": "2356:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2187:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2192:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2197:6:1",
"type": ""
}
],
"src": "2156:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2564:326:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2574:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2641:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2599:41:1"
},
"nodeType": "YulFunctionCall",
"src": "2599:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2583:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2583:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2574:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2665:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2672:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2658:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2658:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2658:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2688:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2703:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2710:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2699:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2699:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2692:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2753:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2755:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2755:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2755:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2734:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2739:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2730:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2730:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2748:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2727:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2727:25:1"
},
"nodeType": "YulIf",
"src": "2724:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2867:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2872:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2877:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2845:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2845:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2845:39:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2537:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2542:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2550:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2558:5:1",
"type": ""
}
],
"src": "2469:421:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2983:282:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3032:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "3034:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3034:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3034:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3011:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3019:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3007:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3007:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3026:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3003:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3003:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2996:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2996:35:1"
},
"nodeType": "YulIf",
"src": "2993:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3124:27:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3144:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3138:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3138:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3128:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3160:99:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3232:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3240:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3228:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3228:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3247:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3255:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3169:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3169:90:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3160:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2961:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2969:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2977:5:1",
"type": ""
}
],
"src": "2910:355:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3375:576:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3421:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3423:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3423:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3423:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3396:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3405:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3392:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3392:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3417:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3388:32:1"
},
"nodeType": "YulIf",
"src": "3385:119:1"
},
{
"nodeType": "YulBlock",
"src": "3514:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3529:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3543:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3533:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3558:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3604:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3615:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3600:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3600:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3624:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "3568:31:1"
},
"nodeType": "YulFunctionCall",
"src": "3568:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3558:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3652:292:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3667:39:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3691:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3702:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3687:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3687:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3681:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3681:25:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3671:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3753:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3755:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3755:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3755:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3725:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3733:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3722:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3722:30:1"
},
"nodeType": "YulIf",
"src": "3719:117:1"
},
{
"nodeType": "YulAssignment",
"src": "3850:84:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3906:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3917:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3902:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3902:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3926:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3860:41:1"
},
"nodeType": "YulFunctionCall",
"src": "3860:74:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3850:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3337:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3348:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3360:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3368:6:1",
"type": ""
}
],
"src": "3271:680:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3985:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4002:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4005:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3995:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3995:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3995:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4099:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4102:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4092:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4092:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4092:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4123:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4126:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4116:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4116:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4116:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "3957:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4194:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4204:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4218:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4224:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "4214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4214:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4204:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4235:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4265:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4271:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4261:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4261:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "4239:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4312:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4326:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4340:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4348:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4336:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4336:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4326:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4292:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4285:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4285:26:1"
},
"nodeType": "YulIf",
"src": "4282:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4415:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "4429:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4429:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4429:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4379:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4402:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4410:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4399:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4399:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4376:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4376:38:1"
},
"nodeType": "YulIf",
"src": "4373:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "4178:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4187:6:1",
"type": ""
}
],
"src": "4143:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526000600360006101000a81548160ff021916908360028111156200002d576200002c62000186565b5b02179055503480156200003f57600080fd5b5060405162000bd338038062000bd383398181016040528101906200006591906200038d565b816000800181905550806000600101908051906020019062000089929190620000d6565b5033600060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000458565b828054620000e49062000422565b90600052602060002090601f01602090048101928262000108576000855562000154565b82601f106200012357805160ff191683800117855562000154565b8280016001018555821562000154579182015b828111156200015357825182559160200191906001019062000136565b5b50905062000163919062000167565b5090565b5b808211156200018257600081600090555060010162000168565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620001de81620001c9565b8114620001ea57600080fd5b50565b600081519050620001fe81620001d3565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000259826200020e565b810181811067ffffffffffffffff821117156200027b576200027a6200021f565b5b80604052505050565b600062000290620001b5565b90506200029e82826200024e565b919050565b600067ffffffffffffffff821115620002c157620002c06200021f565b5b620002cc826200020e565b9050602081019050919050565b60005b83811015620002f9578082015181840152602081019050620002dc565b8381111562000309576000848401525b50505050565b6000620003266200032084620002a3565b62000284565b90508281526020810184848401111562000345576200034462000209565b5b62000352848285620002d9565b509392505050565b600082601f83011262000372576200037162000204565b5b8151620003848482602086016200030f565b91505092915050565b60008060408385031215620003a757620003a6620001bf565b5b6000620003b785828601620001ed565b925050602083015167ffffffffffffffff811115620003db57620003da620001c4565b5b620003e9858286016200035a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200043b57607f821691505b60208210811415620004525762000451620003f3565b5b50919050565b61076b80620004686000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806323b8ca9f146100465780635424884114610064578063a46878fb14610084575b600080fd5b61004e6100a0565b60405161005b9190610378565b60405180910390f35b61006c6100b3565b60405161007b93929190610486565b60405180910390f35b61009e60048036038101906100999190610665565b610173565b005b600360009054906101000a900460ff1681565b60008060000154908060010180546100ca90610703565b80601f01602080910402602001604051908101604052809291908181526020018280546100f690610703565b80156101435780601f1061011857610100808354040283529160200191610143565b820191906000526020600020905b81548152906001019060200180831161012657829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600281111561018757610186610301565b5b600360009054906101000a900460ff1660028111156101a9576101a8610301565b5b141561025957600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050806000808201518160000155602082015181600101908051906020019061020c92919061025e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b505050565b82805461026a90610703565b90600052602060002090601f01602090048101928261028c57600085556102d3565b82601f106102a557805160ff19168380011785556102d3565b828001600101855582156102d3579182015b828111156102d25782518255916020019190600101906102b7565b5b5090506102e091906102e4565b5090565b5b808211156102fd5760008160009055506001016102e5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061034157610340610301565b5b50565b600081905061035282610330565b919050565b600061036282610344565b9050919050565b61037281610357565b82525050565b600060208201905061038d6000830184610369565b92915050565b6000819050919050565b6103a681610393565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103e65780820151818401526020810190506103cb565b838111156103f5576000848401525b50505050565b6000601f19601f8301169050919050565b6000610417826103ac565b61042181856103b7565b93506104318185602086016103c8565b61043a816103fb565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061047082610445565b9050919050565b61048081610465565b82525050565b600060608201905061049b600083018661039d565b81810360208301526104ad818561040c565b90506104bc6040830184610477565b949350505050565b6000604051905090565b600080fd5b600080fd5b6104e181610393565b81146104ec57600080fd5b50565b6000813590506104fe816104d8565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610546826103fb565b810181811067ffffffffffffffff821117156105655761056461050e565b5b80604052505050565b60006105786104c4565b9050610584828261053d565b919050565b600067ffffffffffffffff8211156105a4576105a361050e565b5b6105ad826103fb565b9050602081019050919050565b82818337600083830152505050565b60006105dc6105d784610589565b61056e565b9050828152602081018484840111156105f8576105f7610509565b5b6106038482856105ba565b509392505050565b600082601f8301126106205761061f610504565b5b81356106308482602086016105c9565b91505092915050565b61064281610465565b811461064d57600080fd5b50565b60008135905061065f81610639565b92915050565b60008060006060848603121561067e5761067d6104ce565b5b600061068c868287016104ef565b935050602084013567ffffffffffffffff8111156106ad576106ac6104d3565b5b6106b98682870161060b565b92505060406106ca86828701610650565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061071b57607f821691505b6020821081141561072f5761072e6106d4565b5b5091905056fea264697066735822122098363789547f1a138bc5b33cca203e70a8c0ec3203b4f18a6e6fd4d5c639637c64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x2D JUMPI PUSH3 0x2C PUSH3 0x186 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH3 0x3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xBD3 CODESIZE SUB DUP1 PUSH3 0xBD3 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x65 SWAP2 SWAP1 PUSH3 0x38D JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x89 SWAP3 SWAP2 SWAP1 PUSH3 0xD6 JUMP JUMPDEST POP CALLER PUSH1 0x0 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP PUSH3 0x458 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0xE4 SWAP1 PUSH3 0x422 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x108 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x154 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x123 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x154 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x154 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x153 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x136 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x163 SWAP2 SWAP1 PUSH3 0x167 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x182 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x168 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1DE DUP2 PUSH3 0x1C9 JUMP JUMPDEST DUP2 EQ PUSH3 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x1FE DUP2 PUSH3 0x1D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x259 DUP3 PUSH3 0x20E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x27B JUMPI PUSH3 0x27A PUSH3 0x21F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x290 PUSH3 0x1B5 JUMP JUMPDEST SWAP1 POP PUSH3 0x29E DUP3 DUP3 PUSH3 0x24E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x2C1 JUMPI PUSH3 0x2C0 PUSH3 0x21F JUMP JUMPDEST JUMPDEST PUSH3 0x2CC DUP3 PUSH3 0x20E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x2F9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x2DC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x309 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x326 PUSH3 0x320 DUP5 PUSH3 0x2A3 JUMP JUMPDEST PUSH3 0x284 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x345 JUMPI PUSH3 0x344 PUSH3 0x209 JUMP JUMPDEST JUMPDEST PUSH3 0x352 DUP5 DUP3 DUP6 PUSH3 0x2D9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x372 JUMPI PUSH3 0x371 PUSH3 0x204 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x384 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x30F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x3A7 JUMPI PUSH3 0x3A6 PUSH3 0x1BF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x3B7 DUP6 DUP3 DUP7 ADD PUSH3 0x1ED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x3DB JUMPI PUSH3 0x3DA PUSH3 0x1C4 JUMP JUMPDEST JUMPDEST PUSH3 0x3E9 DUP6 DUP3 DUP7 ADD PUSH3 0x35A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x43B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x452 JUMPI PUSH3 0x451 PUSH3 0x3F3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x76B DUP1 PUSH3 0x468 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x23B8CA9F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x54248841 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xA46878FB EQ PUSH2 0x84 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x665 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xCA SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF6 SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x118 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x143 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x126 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187 JUMPI PUSH2 0x186 PUSH2 0x301 JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x1A8 PUSH2 0x301 JUMP JUMPDEST JUMPDEST EQ ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x20C SWAP3 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x26A SWAP1 PUSH2 0x703 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x28C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2A5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2D3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2D2 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2B7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x341 JUMPI PUSH2 0x340 PUSH2 0x301 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x352 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP3 PUSH2 0x344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x357 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x369 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A6 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3CB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417 DUP3 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x421 DUP2 DUP6 PUSH2 0x3B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x431 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3FB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x470 DUP3 PUSH2 0x445 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x49B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x39D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4AD DUP2 DUP6 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP PUSH2 0x4BC PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x477 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E1 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP2 EQ PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4FE DUP2 PUSH2 0x4D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x546 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x50E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x578 PUSH2 0x4C4 JUMP JUMPDEST SWAP1 POP PUSH2 0x584 DUP3 DUP3 PUSH2 0x53D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x50E JUMP JUMPDEST JUMPDEST PUSH2 0x5AD DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH2 0x5D7 DUP5 PUSH2 0x589 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5F8 JUMPI PUSH2 0x5F7 PUSH2 0x509 JUMP JUMPDEST JUMPDEST PUSH2 0x603 DUP5 DUP3 DUP6 PUSH2 0x5BA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x620 JUMPI PUSH2 0x61F PUSH2 0x504 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x630 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x642 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP2 EQ PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65F DUP2 PUSH2 0x639 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67D PUSH2 0x4CE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x68C DUP7 DUP3 DUP8 ADD PUSH2 0x4EF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AD JUMPI PUSH2 0x6AC PUSH2 0x4D3 JUMP JUMPDEST JUMPDEST PUSH2 0x6B9 DUP7 DUP3 DUP8 ADD PUSH2 0x60B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6CA DUP7 DUP3 DUP8 ADD PUSH2 0x650 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x71B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 CALLDATASIZE CALLDATACOPY DUP10 SLOAD PUSH32 0x1A138BC5B33CCA203E70A8C0EC3203B4F18A6E6FD4D5C639637C64736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "166:642:0:-:0;;;267:10;239:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;284:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;362:4;338:17;:21;;:28;;;;401:5;376:17;:22;;:30;;;;;;;;;;;;:::i;:::-;;441:10;416:17;:22;;;:35;;;;;;;;;;;;;;;;;;284:174;;166:642;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:75;226:6;259:2;253:9;243:19;;193:75;:::o;274:117::-;383:1;380;373:12;397:117;506:1;503;496:12;520:77;557:7;586:5;575:16;;520:77;;;:::o;603:122::-;676:24;694:5;676:24;:::i;:::-;669:5;666:35;656:63;;715:1;712;705:12;656:63;603:122;:::o;731:143::-;788:5;819:6;813:13;804:22;;835:33;862:5;835:33;:::i;:::-;731:143;;;;:::o;880:117::-;989:1;986;979:12;1003:117;1112:1;1109;1102:12;1126:102;1167:6;1218:2;1214:7;1209:2;1202:5;1198:14;1194:28;1184:38;;1126:102;;;:::o;1234:180::-;1282:77;1279:1;1272:88;1379:4;1376:1;1369:15;1403:4;1400:1;1393:15;1420:281;1503:27;1525:4;1503:27;:::i;:::-;1495:6;1491:40;1633:6;1621:10;1618:22;1597:18;1585:10;1582:34;1579:62;1576:88;;;1644:18;;:::i;:::-;1576:88;1684:10;1680:2;1673:22;1463:238;1420:281;;:::o;1707:129::-;1741:6;1768:20;;:::i;:::-;1758:30;;1797:33;1825:4;1817:6;1797:33;:::i;:::-;1707:129;;;:::o;1842:308::-;1904:4;1994:18;1986:6;1983:30;1980:56;;;2016:18;;:::i;:::-;1980:56;2054:29;2076:6;2054:29;:::i;:::-;2046:37;;2138:4;2132;2128:15;2120:23;;1842:308;;;:::o;2156:307::-;2224:1;2234:113;2248:6;2245:1;2242:13;2234:113;;;2333:1;2328:3;2324:11;2318:18;2314:1;2309:3;2305:11;2298:39;2270:2;2267:1;2263:10;2258:15;;2234:113;;;2365:6;2362:1;2359:13;2356:101;;;2445:1;2436:6;2431:3;2427:16;2420:27;2356:101;2205:258;2156:307;;;:::o;2469:421::-;2558:5;2583:66;2599:49;2641:6;2599:49;:::i;:::-;2583:66;:::i;:::-;2574:75;;2672:6;2665:5;2658:21;2710:4;2703:5;2699:16;2748:3;2739:6;2734:3;2730:16;2727:25;2724:112;;;2755:79;;:::i;:::-;2724:112;2845:39;2877:6;2872:3;2867;2845:39;:::i;:::-;2564:326;2469:421;;;;;:::o;2910:355::-;2977:5;3026:3;3019:4;3011:6;3007:17;3003:27;2993:122;;3034:79;;:::i;:::-;2993:122;3144:6;3138:13;3169:90;3255:3;3247:6;3240:4;3232:6;3228:17;3169:90;:::i;:::-;3160:99;;2983:282;2910:355;;;;:::o;3271:680::-;3360:6;3368;3417:2;3405:9;3396:7;3392:23;3388:32;3385:119;;;3423:79;;:::i;:::-;3385:119;3543:1;3568:64;3624:7;3615:6;3604:9;3600:22;3568:64;:::i;:::-;3558:74;;3514:128;3702:2;3691:9;3687:18;3681:25;3733:18;3725:6;3722:30;3719:117;;;3755:79;;:::i;:::-;3719:117;3860:74;3926:7;3917:6;3906:9;3902:22;3860:74;:::i;:::-;3850:84;;3652:292;3271:680;;;;;:::o;3957:180::-;4005:77;4002:1;3995:88;4102:4;4099:1;4092:15;4126:4;4123:1;4116:15;4143:320;4187:6;4224:1;4218:4;4214:12;4204:22;;4271:1;4265:4;4261:12;4292:18;4282:81;;4348:4;4340:6;4336:17;4326:27;;4282:81;4410:2;4402:6;4399:14;4379:18;4376:38;4373:84;;;4429:18;;:::i;:::-;4373:84;4194:269;4143:320;;;:::o;166:642:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@academyInstructor_15": {
"entryPoint": 179,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
},
"@academyState_20": {
"entryPoint": 160,
"id": 20,
"parameterSlots": 0,
"returnSlots": 0
},
"@changeInstructor_76": {
"entryPoint": 371,
"id": 76,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 1481,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 1616,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 1547,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1263,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptrt_address": {
"entryPoint": 1637,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1143,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_enum$_State_$5_to_t_uint8_fromStack": {
"entryPoint": 873,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1036,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 925,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_enum$_State_$5__to_t_uint8__fromStack_reversed": {
"entryPoint": 888,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 1158,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1390,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1220,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1417,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 940,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 951,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1125,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_enum$_State_$5": {
"entryPoint": 836,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1093,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 915,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_enum$_State_$5_to_t_uint8": {
"entryPoint": 855,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 1466,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 968,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1795,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1341,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 769,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1748,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1294,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1284,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1289,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1235,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1230,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1019,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_assert_t_enum$_State_$5": {
"entryPoint": 816,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 1593,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1240,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:7426:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x21",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "243:62:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "277:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x21",
"nodeType": "YulIdentifier",
"src": "279:16:1"
},
"nodeType": "YulFunctionCall",
"src": "279:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "279:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "266:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "273:1:1",
"type": "",
"value": "3"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "263:2:1"
},
"nodeType": "YulFunctionCall",
"src": "263:12:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "256:6:1"
},
"nodeType": "YulFunctionCall",
"src": "256:20:1"
},
"nodeType": "YulIf",
"src": "253:46:1"
}
]
},
"name": "validator_assert_t_enum$_State_$5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "236:5:1",
"type": ""
}
],
"src": "193:112:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "363:73:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "373:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "384:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "373:7:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "424:5:1"
}
],
"functionName": {
"name": "validator_assert_t_enum$_State_$5",
"nodeType": "YulIdentifier",
"src": "390:33:1"
},
"nodeType": "YulFunctionCall",
"src": "390:40:1"
},
"nodeType": "YulExpressionStatement",
"src": "390:40:1"
}
]
},
"name": "cleanup_t_enum$_State_$5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "345:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "355:7:1",
"type": ""
}
],
"src": "311:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "507:60:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "517:44:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "555:5:1"
}
],
"functionName": {
"name": "cleanup_t_enum$_State_$5",
"nodeType": "YulIdentifier",
"src": "530:24:1"
},
"nodeType": "YulFunctionCall",
"src": "530:31:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "517:9:1"
}
]
}
]
},
"name": "convert_t_enum$_State_$5_to_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "487:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "497:9:1",
"type": ""
}
],
"src": "442:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "643:71:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "660:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "701:5:1"
}
],
"functionName": {
"name": "convert_t_enum$_State_$5_to_t_uint8",
"nodeType": "YulIdentifier",
"src": "665:35:1"
},
"nodeType": "YulFunctionCall",
"src": "665:42:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "653:6:1"
},
"nodeType": "YulFunctionCall",
"src": "653:55:1"
},
"nodeType": "YulExpressionStatement",
"src": "653:55:1"
}
]
},
"name": "abi_encode_t_enum$_State_$5_to_t_uint8_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "631:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "638:3:1",
"type": ""
}
],
"src": "573:141:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "823:129:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "833:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "845:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "856:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "841:3:1"
},
"nodeType": "YulFunctionCall",
"src": "841:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "833:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "918:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "931:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "942:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "927:3:1"
},
"nodeType": "YulFunctionCall",
"src": "927:17:1"
}
],
"functionName": {
"name": "abi_encode_t_enum$_State_$5_to_t_uint8_fromStack",
"nodeType": "YulIdentifier",
"src": "869:48:1"
},
"nodeType": "YulFunctionCall",
"src": "869:76:1"
},
"nodeType": "YulExpressionStatement",
"src": "869:76:1"
}
]
},
"name": "abi_encode_tuple_t_enum$_State_$5__to_t_uint8__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "795:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "807:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "818:4:1",
"type": ""
}
],
"src": "720:232:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1003:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1013:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1024:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1013:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "985:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "995:7:1",
"type": ""
}
],
"src": "958:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1106:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1123:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1146:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1128:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1128:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1116:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1116:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1116:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1094:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1101:3:1",
"type": ""
}
],
"src": "1041:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1224:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1235:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1251:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1245:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1245:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1235:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1207:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1217:6:1",
"type": ""
}
],
"src": "1165:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1366:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1383:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1388:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1376:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1376:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1376:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1404:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1423:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1428:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1419:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1419:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1404:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1338:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1343:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1354:11:1",
"type": ""
}
],
"src": "1270:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1494:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1504:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1513:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1508:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1573:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1598:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1603:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1594:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1594:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1617:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1622:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1613:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1613:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1607:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1607:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1587:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1587:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "1587:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1534:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1537:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1531:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1531:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1545:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1547:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1556:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1559:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1552:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1552:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1547:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1527:3:1",
"statements": []
},
"src": "1523:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1670:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1720:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1725:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1716:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1716:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1734:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1709:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1709:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1709:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1651:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1654:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1648:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1648:13:1"
},
"nodeType": "YulIf",
"src": "1645:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1476:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1481:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1486:6:1",
"type": ""
}
],
"src": "1445:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1806:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1816:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1834:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1841:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1830:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1830:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1850:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1846:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1846:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1826:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1826:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1816:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1789:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1799:6:1",
"type": ""
}
],
"src": "1758:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1958:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1968:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2015:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1982:32:1"
},
"nodeType": "YulFunctionCall",
"src": "1982:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1972:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2030:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2096:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2101:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2037:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2037:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2030:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2143:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2150:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2139:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2139:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2157:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2162:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2117:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2117:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "2117:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2178:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2189:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2216:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2194:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2194:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2185:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2185:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2178:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1939:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1946:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1954:3:1",
"type": ""
}
],
"src": "1866:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2281:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2291:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2306:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2313:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2302:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2302:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2291:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2263:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2273:7:1",
"type": ""
}
],
"src": "2236:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2413:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2423:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2452:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2434:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2434:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2423:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2395:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2405:7:1",
"type": ""
}
],
"src": "2368:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2535:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2552:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2575:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2557:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2557:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2545:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2545:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2545:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2523:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2530:3:1",
"type": ""
}
],
"src": "2470:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2768:359:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2778:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2790:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2801:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2786:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2786:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2778:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2858:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2871:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2882:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2867:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2867:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2814:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2814:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2814:71:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2906:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2917:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2902:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2902:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2926:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2932:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2922:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2922:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2895:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2895:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "2895:48:1"
},
{
"nodeType": "YulAssignment",
"src": "2952:86:1",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3024:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3033:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2960:63:1"
},
"nodeType": "YulFunctionCall",
"src": "2960:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2952:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3092:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3105:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3116:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3101:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3101:18:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3048:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3048:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "3048:72:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2724:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2736:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2744:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2752:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2763:4:1",
"type": ""
}
],
"src": "2594:533:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3173:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3183:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3199:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3193:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3193:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3183:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3166:6:1",
"type": ""
}
],
"src": "3133:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3303:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3320:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3323:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3313:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3313:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3313:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "3214:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3426:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3443:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3446:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3436:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3436:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3436:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "3337:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3503:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3560:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3569:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3572:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3562:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3562:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3562:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3526:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3551:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3533:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3533:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3523:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3523:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3516:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3516:43:1"
},
"nodeType": "YulIf",
"src": "3513:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3496:5:1",
"type": ""
}
],
"src": "3460:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3640:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3650:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3672:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3659:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3659:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3650:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3715:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3688:26:1"
},
"nodeType": "YulFunctionCall",
"src": "3688:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3688:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3618:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3626:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3634:5:1",
"type": ""
}
],
"src": "3588:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3822:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3839:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3842:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3832:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3832:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3832:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "3733:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3945:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3962:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3965:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3955:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3955:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3955:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "3856:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4007:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4024:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4027:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4017:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4017:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "4017:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4121:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4124:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4114:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4114:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4114:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4145:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4148:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4138:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4138:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4138:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3979:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4208:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4218:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4240:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4270:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4248:21:1"
},
"nodeType": "YulFunctionCall",
"src": "4248:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4236:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4236:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "4222:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4387:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4389:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4389:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4389:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4330:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4342:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4327:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4327:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4366:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4378:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4363:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4363:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "4324:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4324:62:1"
},
"nodeType": "YulIf",
"src": "4321:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4425:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4429:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4418:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4418:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "4418:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4194:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4202:4:1",
"type": ""
}
],
"src": "4165:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4493:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4503:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "4513:18:1"
},
"nodeType": "YulFunctionCall",
"src": "4513:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4503:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4562:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4570:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "4542:19:1"
},
"nodeType": "YulFunctionCall",
"src": "4542:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "4542:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4477:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4486:6:1",
"type": ""
}
],
"src": "4452:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4654:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4759:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4761:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4761:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4761:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4731:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4739:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4728:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4728:30:1"
},
"nodeType": "YulIf",
"src": "4725:56:1"
},
{
"nodeType": "YulAssignment",
"src": "4791:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4821:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4799:21:1"
},
"nodeType": "YulFunctionCall",
"src": "4799:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4791:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4865:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4877:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4883:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4873:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4873:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4865:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4638:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4649:4:1",
"type": ""
}
],
"src": "4587:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4952:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4975:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4980:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4985:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "4962:12:1"
},
"nodeType": "YulFunctionCall",
"src": "4962:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4962:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5033:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5038:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5029:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5029:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5047:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5022:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5022:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "5022:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4934:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4939:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4944:6:1",
"type": ""
}
],
"src": "4901:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5145:328:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5155:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5222:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5180:41:1"
},
"nodeType": "YulFunctionCall",
"src": "5180:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "5164:15:1"
},
"nodeType": "YulFunctionCall",
"src": "5164:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5155:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5246:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5253:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5239:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5239:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "5239:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5269:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5284:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5291:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5280:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5280:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "5273:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5334:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "5336:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5336:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5336:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5315:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5320:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5311:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5311:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5329:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5308:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5308:25:1"
},
"nodeType": "YulIf",
"src": "5305:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5450:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5455:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5460:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "5426:23:1"
},
"nodeType": "YulFunctionCall",
"src": "5426:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "5426:41:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "5118:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5123:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5131:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5139:5:1",
"type": ""
}
],
"src": "5061:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5555:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5604:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "5606:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5606:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5606:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5583:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5591:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5579:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5579:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5598:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5575:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5575:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5568:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5568:35:1"
},
"nodeType": "YulIf",
"src": "5565:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5696:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5723:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5710:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5710:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5700:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5739:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5800:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5808:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5796:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5815:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5823:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5748:47:1"
},
"nodeType": "YulFunctionCall",
"src": "5748:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5739:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5533:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5541:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5549:5:1",
"type": ""
}
],
"src": "5493:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5882:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5939:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5948:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5951:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5941:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5941:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "5941:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5905:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5930:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "5912:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5912:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "5902:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5902:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5895:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5895:43:1"
},
"nodeType": "YulIf",
"src": "5892:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5875:5:1",
"type": ""
}
],
"src": "5839:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6019:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6029:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6051:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6038:12:1"
},
"nodeType": "YulFunctionCall",
"src": "6038:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6029:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6094:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "6067:26:1"
},
"nodeType": "YulFunctionCall",
"src": "6067:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "6067:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5997:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6005:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6013:5:1",
"type": ""
}
],
"src": "5967:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6222:689:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6268:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "6270:77:1"
},
"nodeType": "YulFunctionCall",
"src": "6270:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "6270:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6243:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6252:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6239:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6239:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6264:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "6235:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6235:32:1"
},
"nodeType": "YulIf",
"src": "6232:119:1"
},
{
"nodeType": "YulBlock",
"src": "6361:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6376:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6390:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6380:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6405:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6440:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6451:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6436:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6436:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6460:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6415:20:1"
},
"nodeType": "YulFunctionCall",
"src": "6415:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6405:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6488:288:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6503:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6534:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6545:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6530:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6530:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6517:12:1"
},
"nodeType": "YulFunctionCall",
"src": "6517:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6507:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6596:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "6598:77:1"
},
"nodeType": "YulFunctionCall",
"src": "6598:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "6598:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6568:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6576:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6565:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6565:30:1"
},
"nodeType": "YulIf",
"src": "6562:117:1"
},
{
"nodeType": "YulAssignment",
"src": "6693:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6738:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6749:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6734:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6734:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6758:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6703:30:1"
},
"nodeType": "YulFunctionCall",
"src": "6703:63:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6693:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6786:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6801:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6815:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6805:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6831:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6866:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6877:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6862:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6862:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6886:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "6841:20:1"
},
"nodeType": "YulFunctionCall",
"src": "6841:53:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6831:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptrt_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6176:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "6187:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6199:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6207:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6215:6:1",
"type": ""
}
],
"src": "6112:799:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6945:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6962:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6965:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6955:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6955:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6955:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7059:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7062:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7052:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7052:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7052:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7083:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7086:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7076:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7076:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7076:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "6917:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7154:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7164:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7178:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7184:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "7174:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7174:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7164:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7195:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7225:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7231:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7221:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7221:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "7199:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7272:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7286:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7300:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7308:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7296:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7296:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7286:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7252:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "7245:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7245:26:1"
},
"nodeType": "YulIf",
"src": "7242:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7375:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "7389:16:1"
},
"nodeType": "YulFunctionCall",
"src": "7389:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "7389:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7339:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7362:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7370:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7359:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7359:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "7336:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7336:38:1"
},
"nodeType": "YulIf",
"src": "7333:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "7138:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7147:6:1",
"type": ""
}
],
"src": "7103:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_State_$5(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_State_$5(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_State_$5(value)\n }\n\n function convert_t_enum$_State_$5_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_State_$5(value)\n }\n\n function abi_encode_t_enum$_State_$5_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_State_$5_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_State_$5__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_State_$5_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806323b8ca9f146100465780635424884114610064578063a46878fb14610084575b600080fd5b61004e6100a0565b60405161005b9190610378565b60405180910390f35b61006c6100b3565b60405161007b93929190610486565b60405180910390f35b61009e60048036038101906100999190610665565b610173565b005b600360009054906101000a900460ff1681565b60008060000154908060010180546100ca90610703565b80601f01602080910402602001604051908101604052809291908181526020018280546100f690610703565b80156101435780601f1061011857610100808354040283529160200191610143565b820191906000526020600020905b81548152906001019060200180831161012657829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600281111561018757610186610301565b5b600360009054906101000a900460ff1660028111156101a9576101a8610301565b5b141561025957600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050806000808201518160000155602082015181600101908051906020019061020c92919061025e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b505050565b82805461026a90610703565b90600052602060002090601f01602090048101928261028c57600085556102d3565b82601f106102a557805160ff19168380011785556102d3565b828001600101855582156102d3579182015b828111156102d25782518255916020019190600101906102b7565b5b5090506102e091906102e4565b5090565b5b808211156102fd5760008160009055506001016102e5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061034157610340610301565b5b50565b600081905061035282610330565b919050565b600061036282610344565b9050919050565b61037281610357565b82525050565b600060208201905061038d6000830184610369565b92915050565b6000819050919050565b6103a681610393565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103e65780820151818401526020810190506103cb565b838111156103f5576000848401525b50505050565b6000601f19601f8301169050919050565b6000610417826103ac565b61042181856103b7565b93506104318185602086016103c8565b61043a816103fb565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061047082610445565b9050919050565b61048081610465565b82525050565b600060608201905061049b600083018661039d565b81810360208301526104ad818561040c565b90506104bc6040830184610477565b949350505050565b6000604051905090565b600080fd5b600080fd5b6104e181610393565b81146104ec57600080fd5b50565b6000813590506104fe816104d8565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610546826103fb565b810181811067ffffffffffffffff821117156105655761056461050e565b5b80604052505050565b60006105786104c4565b9050610584828261053d565b919050565b600067ffffffffffffffff8211156105a4576105a361050e565b5b6105ad826103fb565b9050602081019050919050565b82818337600083830152505050565b60006105dc6105d784610589565b61056e565b9050828152602081018484840111156105f8576105f7610509565b5b6106038482856105ba565b509392505050565b600082601f8301126106205761061f610504565b5b81356106308482602086016105c9565b91505092915050565b61064281610465565b811461064d57600080fd5b50565b60008135905061065f81610639565b92915050565b60008060006060848603121561067e5761067d6104ce565b5b600061068c868287016104ef565b935050602084013567ffffffffffffffff8111156106ad576106ac6104d3565b5b6106b98682870161060b565b92505060406106ca86828701610650565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061071b57607f821691505b6020821081141561072f5761072e6106d4565b5b5091905056fea264697066735822122098363789547f1a138bc5b33cca203e70a8c0ec3203b4f18a6e6fd4d5c639637c64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x23B8CA9F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x54248841 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xA46878FB EQ PUSH2 0x84 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x665 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xCA SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF6 SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x118 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x143 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x126 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187 JUMPI PUSH2 0x186 PUSH2 0x301 JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x1A8 PUSH2 0x301 JUMP JUMPDEST JUMPDEST EQ ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x20C SWAP3 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x26A SWAP1 PUSH2 0x703 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x28C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2A5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2D3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2D2 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2B7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x341 JUMPI PUSH2 0x340 PUSH2 0x301 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x352 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP3 PUSH2 0x344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x357 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x369 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A6 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3CB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417 DUP3 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x421 DUP2 DUP6 PUSH2 0x3B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x431 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3FB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x470 DUP3 PUSH2 0x445 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x49B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x39D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4AD DUP2 DUP6 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP PUSH2 0x4BC PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x477 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E1 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP2 EQ PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4FE DUP2 PUSH2 0x4D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x546 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x50E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x578 PUSH2 0x4C4 JUMP JUMPDEST SWAP1 POP PUSH2 0x584 DUP3 DUP3 PUSH2 0x53D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x50E JUMP JUMPDEST JUMPDEST PUSH2 0x5AD DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH2 0x5D7 DUP5 PUSH2 0x589 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5F8 JUMPI PUSH2 0x5F7 PUSH2 0x509 JUMP JUMPDEST JUMPDEST PUSH2 0x603 DUP5 DUP3 DUP6 PUSH2 0x5BA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x620 JUMPI PUSH2 0x61F PUSH2 0x504 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x630 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x642 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP2 EQ PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65F DUP2 PUSH2 0x639 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67D PUSH2 0x4CE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x68C DUP7 DUP3 DUP8 ADD PUSH2 0x4EF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AD JUMPI PUSH2 0x6AC PUSH2 0x4D3 JUMP JUMPDEST JUMPDEST PUSH2 0x6B9 DUP7 DUP3 DUP8 ADD PUSH2 0x60B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6CA DUP7 DUP3 DUP8 ADD PUSH2 0x650 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x71B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 CALLDATASIZE CALLDATACOPY DUP10 SLOAD PUSH32 0x1A138BC5B33CCA203E70A8C0EC3203B4F18A6E6FD4D5C639637C64736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "166:642:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;239:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;199:34;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;464:342;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;239:38;;;;;;;;;;;;;:::o;199:34::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;464:342::-;574:10;558:26;;;;;;;;:::i;:::-;;:12;;;;;;;;;;;:26;;;;;;;;:::i;:::-;;;555:245;;;599:30;632:110;;;;;;;;665:4;632:110;;;;693:5;632:110;;;;722:5;632:110;;;;;599:143;;776:13;756:17;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;585:215;555:245;464:342;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:112;273:1;266:5;263:12;253:46;;279:18;;:::i;:::-;253:46;193:112;:::o;311:125::-;355:7;384:5;373:16;;390:40;424:5;390:40;:::i;:::-;311:125;;;:::o;442:::-;497:9;530:31;555:5;530:31;:::i;:::-;517:44;;442:125;;;:::o;573:141::-;665:42;701:5;665:42;:::i;:::-;660:3;653:55;573:141;;:::o;720:232::-;818:4;856:2;845:9;841:18;833:26;;869:76;942:1;931:9;927:17;918:6;869:76;:::i;:::-;720:232;;;;:::o;958:77::-;995:7;1024:5;1013:16;;958:77;;;:::o;1041:118::-;1128:24;1146:5;1128:24;:::i;:::-;1123:3;1116:37;1041:118;;:::o;1165:99::-;1217:6;1251:5;1245:12;1235:22;;1165:99;;;:::o;1270:169::-;1354:11;1388:6;1383:3;1376:19;1428:4;1423:3;1419:14;1404:29;;1270:169;;;;:::o;1445:307::-;1513:1;1523:113;1537:6;1534:1;1531:13;1523:113;;;1622:1;1617:3;1613:11;1607:18;1603:1;1598:3;1594:11;1587:39;1559:2;1556:1;1552:10;1547:15;;1523:113;;;1654:6;1651:1;1648:13;1645:101;;;1734:1;1725:6;1720:3;1716:16;1709:27;1645:101;1494:258;1445:307;;;:::o;1758:102::-;1799:6;1850:2;1846:7;1841:2;1834:5;1830:14;1826:28;1816:38;;1758:102;;;:::o;1866:364::-;1954:3;1982:39;2015:5;1982:39;:::i;:::-;2037:71;2101:6;2096:3;2037:71;:::i;:::-;2030:78;;2117:52;2162:6;2157:3;2150:4;2143:5;2139:16;2117:52;:::i;:::-;2194:29;2216:6;2194:29;:::i;:::-;2189:3;2185:39;2178:46;;1958:272;1866:364;;;;:::o;2236:126::-;2273:7;2313:42;2306:5;2302:54;2291:65;;2236:126;;;:::o;2368:96::-;2405:7;2434:24;2452:5;2434:24;:::i;:::-;2423:35;;2368:96;;;:::o;2470:118::-;2557:24;2575:5;2557:24;:::i;:::-;2552:3;2545:37;2470:118;;:::o;2594:533::-;2763:4;2801:2;2790:9;2786:18;2778:26;;2814:71;2882:1;2871:9;2867:17;2858:6;2814:71;:::i;:::-;2932:9;2926:4;2922:20;2917:2;2906:9;2902:18;2895:48;2960:78;3033:4;3024:6;2960:78;:::i;:::-;2952:86;;3048:72;3116:2;3105:9;3101:18;3092:6;3048:72;:::i;:::-;2594:533;;;;;;:::o;3133:75::-;3166:6;3199:2;3193:9;3183:19;;3133:75;:::o;3214:117::-;3323:1;3320;3313:12;3337:117;3446:1;3443;3436:12;3460:122;3533:24;3551:5;3533:24;:::i;:::-;3526:5;3523:35;3513:63;;3572:1;3569;3562:12;3513:63;3460:122;:::o;3588:139::-;3634:5;3672:6;3659:20;3650:29;;3688:33;3715:5;3688:33;:::i;:::-;3588:139;;;;:::o;3733:117::-;3842:1;3839;3832:12;3856:117;3965:1;3962;3955:12;3979:180;4027:77;4024:1;4017:88;4124:4;4121:1;4114:15;4148:4;4145:1;4138:15;4165:281;4248:27;4270:4;4248:27;:::i;:::-;4240:6;4236:40;4378:6;4366:10;4363:22;4342:18;4330:10;4327:34;4324:62;4321:88;;;4389:18;;:::i;:::-;4321:88;4429:10;4425:2;4418:22;4208:238;4165:281;;:::o;4452:129::-;4486:6;4513:20;;:::i;:::-;4503:30;;4542:33;4570:4;4562:6;4542:33;:::i;:::-;4452:129;;;:::o;4587:308::-;4649:4;4739:18;4731:6;4728:30;4725:56;;;4761:18;;:::i;:::-;4725:56;4799:29;4821:6;4799:29;:::i;:::-;4791:37;;4883:4;4877;4873:15;4865:23;;4587:308;;;:::o;4901:154::-;4985:6;4980:3;4975;4962:30;5047:1;5038:6;5033:3;5029:16;5022:27;4901:154;;;:::o;5061:412::-;5139:5;5164:66;5180:49;5222:6;5180:49;:::i;:::-;5164:66;:::i;:::-;5155:75;;5253:6;5246:5;5239:21;5291:4;5284:5;5280:16;5329:3;5320:6;5315:3;5311:16;5308:25;5305:112;;;5336:79;;:::i;:::-;5305:112;5426:41;5460:6;5455:3;5450;5426:41;:::i;:::-;5145:328;5061:412;;;;;:::o;5493:340::-;5549:5;5598:3;5591:4;5583:6;5579:17;5575:27;5565:122;;5606:79;;:::i;:::-;5565:122;5723:6;5710:20;5748:79;5823:3;5815:6;5808:4;5800:6;5796:17;5748:79;:::i;:::-;5739:88;;5555:278;5493:340;;;;:::o;5839:122::-;5912:24;5930:5;5912:24;:::i;:::-;5905:5;5902:35;5892:63;;5951:1;5948;5941:12;5892:63;5839:122;:::o;5967:139::-;6013:5;6051:6;6038:20;6029:29;;6067:33;6094:5;6067:33;:::i;:::-;5967:139;;;;:::o;6112:799::-;6199:6;6207;6215;6264:2;6252:9;6243:7;6239:23;6235:32;6232:119;;;6270:79;;:::i;:::-;6232:119;6390:1;6415:53;6460:7;6451:6;6440:9;6436:22;6415:53;:::i;:::-;6405:63;;6361:117;6545:2;6534:9;6530:18;6517:32;6576:18;6568:6;6565:30;6562:117;;;6598:79;;:::i;:::-;6562:117;6703:63;6758:7;6749:6;6738:9;6734:22;6703:63;:::i;:::-;6693:73;;6488:288;6815:2;6841:53;6886:7;6877:6;6866:9;6862:22;6841:53;:::i;:::-;6831:63;;6786:118;6112:799;;;;;:::o;6917:180::-;6965:77;6962:1;6955:88;7062:4;7059:1;7052:15;7086:4;7083:1;7076:15;7103:320;7147:6;7184:1;7178:4;7174:12;7164:22;;7231:1;7225:4;7221:12;7252:18;7242:81;;7308:4;7300:6;7296:17;7286:27;;7242:81;7370:2;7362:6;7359:14;7339:18;7336:38;7333:84;;;7389:18;;:::i;:::-;7333:84;7154:269;7103:320;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "379800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"academyInstructor()": "infinite",
"academyState()": "2538",
"changeInstructor(uint256,string,address)": "infinite"
}
},
"methodIdentifiers": {
"academyInstructor()": "54248841",
"academyState()": "23b8ca9f",
"changeInstructor(uint256,string,address)": "a46878fb"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "academyInstructor",
"outputs": [
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "academyState",
"outputs": [
{
"internalType": "enum State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "address",
"name": "_addr",
"type": "address"
}
],
"name": "changeInstructor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "academyInstructor",
"outputs": [
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "academyState",
"outputs": [
{
"internalType": "enum State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "address",
"name": "_addr",
"type": "address"
}
],
"name": "changeInstructor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Structs.sol": "AcademyInstructor"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Structs.sol": {
"keccak256": "0xf64e4d978adcbd80452e93d4d7b42cdeb3f60ea3166ed2eb70929ecf4b136d63",
"license": "GPL-3.0",
"urls": [
"bzz-raw://1dda87e215422ecc308e4e25d9b87d443482176128459c78e61d964e0b9a1e3b",
"dweb:/ipfs/QmUb1KgrkoBtNazv4YkaZpG8XEUA471RGxH2VyKJEMqZtK"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506101cc806100206000396000f3fe6080604052600436106100295760003560e01c80631998aeef1461002e57806362ea82db14610038575b600080fd5b610036610075565b005b34801561004457600080fd5b5061005f600480360381019061005a9190610135565b6100ba565b60405161006c919061017b565b60405180910390f35b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b60006020528060005260406000206000915090505481565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610102826100d7565b9050919050565b610112816100f7565b811461011d57600080fd5b50565b60008135905061012f81610109565b92915050565b60006020828403121561014b5761014a6100d2565b5b600061015984828501610120565b91505092915050565b6000819050919050565b61017581610162565b82525050565b6000602082019050610190600083018461016c565b9291505056fea2646970667358221220aa0b83ddefe326fffefcad5d066ccaea620252f7784bf61e8e420cfb598de85264736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CC DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1998AEEF EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0x62EA82DB EQ PUSH2 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x36 PUSH2 0x75 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5A SWAP2 SWAP1 PUSH2 0x135 JUMP JUMPDEST PUSH2 0xBA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6C SWAP2 SWAP1 PUSH2 0x17B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x102 DUP3 PUSH2 0xD7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x112 DUP2 PUSH2 0xF7 JUMP JUMPDEST DUP2 EQ PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12F DUP2 PUSH2 0x109 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B JUMPI PUSH2 0x14A PUSH2 0xD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x159 DUP5 DUP3 DUP6 ADD PUSH2 0x120 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x175 DUP2 PUSH2 0x162 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x190 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x16C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA SIGNEXTEND DUP4 0xDD 0xEF 0xE3 0x26 SELFDESTRUCT INVALID 0xFC 0xAD 0x5D MOD PUSH13 0xCAEA620252F7784BF61E8E420C 0xFB MSIZE DUP14 0xE8 MSTORE PUSH5 0x736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "62:251:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@bid_17": {
"entryPoint": 117,
"id": 17,
"parameterSlots": 0,
"returnSlots": 0
},
"@bids_5": {
"entryPoint": 186,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 288,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 309,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 364,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 379,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 247,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 215,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 354,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 210,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 265,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1608:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "400:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:1"
},
"nodeType": "YulFunctionCall",
"src": "532:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:1",
"type": ""
}
],
"src": "466:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:1"
},
"nodeType": "YulFunctionCall",
"src": "670:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:1"
},
"nodeType": "YulFunctionCall",
"src": "641:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:1"
},
"nodeType": "YulFunctionCall",
"src": "631:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:1"
},
"nodeType": "YulFunctionCall",
"src": "624:43:1"
},
"nodeType": "YulIf",
"src": "621:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:1",
"type": ""
}
],
"src": "568:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "748:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "758:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "780:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "767:12:1"
},
"nodeType": "YulFunctionCall",
"src": "767:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "758:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "823:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "796:26:1"
},
"nodeType": "YulFunctionCall",
"src": "796:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "796:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "726:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "734:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "742:5:1",
"type": ""
}
],
"src": "696:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "907:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "953:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "955:77:1"
},
"nodeType": "YulFunctionCall",
"src": "955:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "955:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "928:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "937:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "924:3:1"
},
"nodeType": "YulFunctionCall",
"src": "924:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "949:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "920:3:1"
},
"nodeType": "YulFunctionCall",
"src": "920:32:1"
},
"nodeType": "YulIf",
"src": "917:119:1"
},
{
"nodeType": "YulBlock",
"src": "1046:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1061:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1075:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1065:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1090:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1125:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1136:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1121:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1121:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1145:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1100:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1100:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1090:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "877:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "888:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "900:6:1",
"type": ""
}
],
"src": "841:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1221:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1231:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1242:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1231:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1203:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1213:7:1",
"type": ""
}
],
"src": "1176:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1324:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1341:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1364:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1346:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1346:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1334:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1334:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1334:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1312:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1319:3:1",
"type": ""
}
],
"src": "1259:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1481:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1491:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1503:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1514:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1499:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1499:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1491:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1571:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1584:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1595:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1580:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1580:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1527:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1527:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1527:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1453:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1465:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1476:4:1",
"type": ""
}
],
"src": "1383:222:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100295760003560e01c80631998aeef1461002e57806362ea82db14610038575b600080fd5b610036610075565b005b34801561004457600080fd5b5061005f600480360381019061005a9190610135565b6100ba565b60405161006c919061017b565b60405180910390f35b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b60006020528060005260406000206000915090505481565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610102826100d7565b9050919050565b610112816100f7565b811461011d57600080fd5b50565b60008135905061012f81610109565b92915050565b60006020828403121561014b5761014a6100d2565b5b600061015984828501610120565b91505092915050565b6000819050919050565b61017581610162565b82525050565b6000602082019050610190600083018461016c565b9291505056fea2646970667358221220aa0b83ddefe326fffefcad5d066ccaea620252f7784bf61e8e420cfb598de85264736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1998AEEF EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0x62EA82DB EQ PUSH2 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x36 PUSH2 0x75 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5A SWAP2 SWAP1 PUSH2 0x135 JUMP JUMPDEST PUSH2 0xBA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6C SWAP2 SWAP1 PUSH2 0x17B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x102 DUP3 PUSH2 0xD7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x112 DUP2 PUSH2 0xF7 JUMP JUMPDEST DUP2 EQ PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12F DUP2 PUSH2 0x109 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B JUMPI PUSH2 0x14A PUSH2 0xD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x159 DUP5 DUP3 DUP6 ADD PUSH2 0x120 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x175 DUP2 PUSH2 0x162 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x190 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x16C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA SIGNEXTEND DUP4 0xDD 0xEF 0xE3 0x26 SELFDESTRUCT INVALID 0xFC 0xAD 0x5D MOD PUSH13 0xCAEA620252F7784BF61E8E420C 0xFB MSIZE DUP14 0xE8 MSTORE PUSH5 0x736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "62:251:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;128:75;;;:::i;:::-;;85:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;128:75;187:9;168:4;:16;173:10;168:16;;;;;;;;;;;;;;;:28;;;;128:75::o;85:36::-;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "92000",
"executionCost": "141",
"totalCost": "92141"
},
"external": {
"bid()": "22300",
"bids(address)": "2814"
},
"internal": {
"getBids()": "infinite"
}
},
"methodIdentifiers": {
"bid()": "1998aeef",
"bids(address)": "62ea82db"
}
},
"abi": [
{
"inputs": [],
"name": "bid",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "bids",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "bid",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "bids",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Auction.sol": "Auction"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Auction.sol": {
"keccak256": "0xd4d925ee65e44725233b1e4d0dc644ba61db5e4f0a3422f9c0e3022d3e2059ce",
"license": "GPL-3.0",
"urls": [
"bzz-raw://a6cd9ea0734189abe66d27e93345e09e14ddbc2969f04f52bf1d42f9414810f2",
"dweb:/ipfs/QmShpB6KLcpHa15rnu29CtL535Jdv3mxUxYKB9DzACUydJ"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@f3_47": {
"entryPoint": 49,
"id": 47,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052600a600055601460015561001c61003160201b60201c565b60025534801561002b57600080fd5b5061003a565b60008054905090565b6101e8806100496000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630c55699c1461006757806328d69c6d146100855780633c9d377d146100a35780639942ec6f146100c1578063c3f90202146100df578063ece57b04146100fd575b600080fd5b61006f61011b565b60405161007c9190610197565b60405180910390f35b61008d610121565b60405161009a9190610197565b60405180910390f35b6100ab61012b565b6040516100b89190610197565b60405180910390f35b6100c9610149565b6040516100d69190610197565b60405180910390f35b6100e761015d565b6040516100f49190610197565b60405180910390f35b610105610166565b6040516101129190610197565b60405180910390f35b60005481565b6000600154905090565b60008061013661016c565b9050610140610175565b90508091505090565b600080610154610175565b90508091505090565b60008054905090565b60025481565b60008054905090565b60008054905090565b6000819050919050565b6101918161017e565b82525050565b60006020820190506101ac6000830184610188565b9291505056fea2646970667358221220a80b1da448fd7f5a9dd3fb48916a3b7642fc4233874f2b25315622479ff86d0564736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0x0 SSTORE PUSH1 0x14 PUSH1 0x1 SSTORE PUSH2 0x1C PUSH2 0x31 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x2 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1E8 DUP1 PUSH2 0x49 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x28D69C6D EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x3C9D377D EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x9942EC6F EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0xC3F90202 EQ PUSH2 0xDF JUMPI DUP1 PUSH4 0xECE57B04 EQ PUSH2 0xFD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8D PUSH2 0x121 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH2 0x12B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC9 PUSH2 0x149 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE7 PUSH2 0x15D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x112 SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x136 PUSH2 0x16C JUMP JUMPDEST SWAP1 POP PUSH2 0x140 PUSH2 0x175 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x154 PUSH2 0x175 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x191 DUP2 PUSH2 0x17E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x188 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 SIGNEXTEND SAR LOG4 BASEFEE REVERT PUSH32 0x5A9DD3FB48916A3B7642FC4233874F2B25315622479FF86D0564736F6C634300 ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "1102:178:0:-:0;;;102:2;87:17;;118:2;110:10;;1139:4;:2;;;:4;;:::i;:::-;1123:20;;1102:178;;;;;;;;;;;;610:65;646:3;667:1;;660:8;;610:65;:::o;1102:178::-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@f1_23": {
"entryPoint": 373,
"id": 23,
"parameterSlots": 0,
"returnSlots": 1
},
"@f2_39": {
"entryPoint": 329,
"id": 39,
"parameterSlots": 0,
"returnSlots": 1
},
"@f3_47": {
"entryPoint": 364,
"id": 47,
"parameterSlots": 0,
"returnSlots": 1
},
"@f4_55": {
"entryPoint": 349,
"id": 55,
"parameterSlots": 0,
"returnSlots": 1
},
"@f5_76": {
"entryPoint": 299,
"id": 76,
"parameterSlots": 0,
"returnSlots": 1
},
"@get_y_15": {
"entryPoint": 289,
"id": 15,
"parameterSlots": 0,
"returnSlots": 1
},
"@x_4": {
"entryPoint": 283,
"id": 4,
"parameterSlots": 0,
"returnSlots": 0
},
"@xx_83": {
"entryPoint": 358,
"id": 83,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_int256_to_t_int256_fromStack": {
"entryPoint": 392,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed": {
"entryPoint": 407,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_int256": {
"entryPoint": 382,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:431:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "51:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "61:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "72:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "61:7:1"
}
]
}
]
},
"name": "cleanup_t_int256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "33:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "43:7:1",
"type": ""
}
],
"src": "7:76:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "152:52:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "169:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "191:5:1"
}
],
"functionName": {
"name": "cleanup_t_int256",
"nodeType": "YulIdentifier",
"src": "174:16:1"
},
"nodeType": "YulFunctionCall",
"src": "174:23:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "162:6:1"
},
"nodeType": "YulFunctionCall",
"src": "162:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "162:36:1"
}
]
},
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "140:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "147:3:1",
"type": ""
}
],
"src": "89:115:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "306:122:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "316:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "328:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "339:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "324:3:1"
},
"nodeType": "YulFunctionCall",
"src": "324:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "316:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "394:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "407:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "418:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "403:3:1"
},
"nodeType": "YulFunctionCall",
"src": "403:17:1"
}
],
"functionName": {
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulIdentifier",
"src": "352:41:1"
},
"nodeType": "YulFunctionCall",
"src": "352:69:1"
},
"nodeType": "YulExpressionStatement",
"src": "352:69:1"
}
]
},
"name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "278:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "290:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "301:4:1",
"type": ""
}
],
"src": "210:218:1"
}
]
},
"contents": "{\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n mstore(pos, cleanup_t_int256(value))\n }\n\n function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_int256_to_t_int256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100625760003560e01c80630c55699c1461006757806328d69c6d146100855780633c9d377d146100a35780639942ec6f146100c1578063c3f90202146100df578063ece57b04146100fd575b600080fd5b61006f61011b565b60405161007c9190610197565b60405180910390f35b61008d610121565b60405161009a9190610197565b60405180910390f35b6100ab61012b565b6040516100b89190610197565b60405180910390f35b6100c9610149565b6040516100d69190610197565b60405180910390f35b6100e761015d565b6040516100f49190610197565b60405180910390f35b610105610166565b6040516101129190610197565b60405180910390f35b60005481565b6000600154905090565b60008061013661016c565b9050610140610175565b90508091505090565b600080610154610175565b90508091505090565b60008054905090565b60025481565b60008054905090565b60008054905090565b6000819050919050565b6101918161017e565b82525050565b60006020820190506101ac6000830184610188565b9291505056fea2646970667358221220a80b1da448fd7f5a9dd3fb48916a3b7642fc4233874f2b25315622479ff86d0564736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x28D69C6D EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x3C9D377D EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x9942EC6F EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0xC3F90202 EQ PUSH2 0xDF JUMPI DUP1 PUSH4 0xECE57B04 EQ PUSH2 0xFD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x11B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8D PUSH2 0x121 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH2 0x12B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC9 PUSH2 0x149 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE7 PUSH2 0x15D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF4 SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x166 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x112 SWAP2 SWAP1 PUSH2 0x197 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x136 PUSH2 0x16C JUMP JUMPDEST SWAP1 POP PUSH2 0x140 PUSH2 0x175 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x154 PUSH2 0x175 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x191 DUP2 PUSH2 0x17E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x188 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 SIGNEXTEND SAR LOG4 BASEFEE REVERT PUSH32 0x5A9DD3FB48916A3B7642FC4233874F2B25315622479FF86D0564736F6C634300 ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "1102:178:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;87:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;174:66;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;860:215;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;425:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;780:65;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1123:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;87:17;;;;:::o;174:66::-;211:3;232:1;;225:8;;174:66;:::o;860:215::-;894:3;908:5;977:4;:2;:4::i;:::-;973:8;;1021:4;:2;:4::i;:::-;1017:8;;1067:1;1060:8;;;860:215;:::o;425:111::-;459:3;473:5;492:4;:2;:4::i;:::-;488:8;;528:1;521:8;;;425:111;:::o;780:65::-;816:3;837:1;;830:8;;780:65;:::o;1123:20::-;;;;:::o;610:65::-;646:3;667:1;;660:8;;610:65;:::o;351:64::-;386:3;407:1;;400:8;;351:64;:::o;7:76:1:-;43:7;72:5;61:16;;7:76;;;:::o;89:115::-;174:23;191:5;174:23;:::i;:::-;169:3;162:36;89:115;;:::o;210:218::-;301:4;339:2;328:9;324:18;316:26;;352:69;418:1;407:9;403:17;394:6;352:69;:::i;:::-;210:218;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "97600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"f2()": "2529",
"f4()": "2503",
"f5()": "4650",
"get_y()": "2437",
"x()": "2407",
"xx()": "2517"
}
},
"methodIdentifiers": {
"f2()": "9942ec6f",
"f4()": "c3f90202",
"f5()": "3c9d377d",
"get_y()": "28d69c6d",
"x()": "0c55699c",
"xx()": "ece57b04"
}
},
"abi": [
{
"inputs": [],
"name": "f2",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f4",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f5",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "get_y",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "x",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "xx",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "f2",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f4",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f5",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "get_y",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "x",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "xx",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Visibility.sol": "B"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Visibility.sol": {
"keccak256": "0x8e84a4611bddccf89a99bc733a5f657fdc3abb5877ad6836ae99edc6f1c83321",
"license": "GPL-3.0",
"urls": [
"bzz-raw://e7694508f409c78eb0b857363b89ab87d4cdec0ab6f60643c8125bce70dc8249",
"dweb:/ipfs/QmfGLfLdFCmjjFdyRZ8R4sF3EcKQ4ayhDhjzDKpgD7Tk48"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_71": {
"entryPoint": null,
"id": 71,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory": {
"entryPoint": 667,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory": {
"entryPoint": 783,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32_fromMemory": {
"entryPoint": 644,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory": {
"entryPoint": 834,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 525,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 382,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr": {
"entryPoint": 556,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 608,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1009,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 471,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 1019,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 962,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 915,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 424,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 402,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 603,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 397,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 392,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 407,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_bytes32": {
"entryPoint": 618,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4387:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:1"
},
"nodeType": "YulFunctionCall",
"src": "433:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "505:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "515:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "533:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "540:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "529:3:1"
},
"nodeType": "YulFunctionCall",
"src": "529:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "549:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "545:3:1"
},
"nodeType": "YulFunctionCall",
"src": "545:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "525:3:1"
},
"nodeType": "YulFunctionCall",
"src": "525:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "515:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "498:6:1",
"type": ""
}
],
"src": "457:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "593:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "610:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "613:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "603:6:1"
},
"nodeType": "YulFunctionCall",
"src": "603:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "603:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "707:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "710:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "700:6:1"
},
"nodeType": "YulFunctionCall",
"src": "700:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "700:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "731:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "734:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "724:6:1"
},
"nodeType": "YulFunctionCall",
"src": "724:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "724:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "565:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "794:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "804:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "826:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "856:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "834:21:1"
},
"nodeType": "YulFunctionCall",
"src": "834:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "822:3:1"
},
"nodeType": "YulFunctionCall",
"src": "822:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "808:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "973:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "975:16:1"
},
"nodeType": "YulFunctionCall",
"src": "975:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "975:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "916:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "928:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "913:2:1"
},
"nodeType": "YulFunctionCall",
"src": "913:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "952:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "964:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "949:2:1"
},
"nodeType": "YulFunctionCall",
"src": "949:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "910:2:1"
},
"nodeType": "YulFunctionCall",
"src": "910:62:1"
},
"nodeType": "YulIf",
"src": "907:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1011:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1015:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1004:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1004:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1004:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "780:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "788:4:1",
"type": ""
}
],
"src": "751:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1079:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1089:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1099:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1099:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1089:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1148:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1156:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1128:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1128:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1128:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1063:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1072:6:1",
"type": ""
}
],
"src": "1038:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1255:229:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1360:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1362:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1362:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1362:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1332:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1340:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1329:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1329:30:1"
},
"nodeType": "YulIf",
"src": "1326:56:1"
},
{
"nodeType": "YulAssignment",
"src": "1392:25:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1404:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1412:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1400:17:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1392:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1454:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1466:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1472:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1462:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1462:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1454:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1239:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1250:4:1",
"type": ""
}
],
"src": "1173:311:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1579:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1599:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1589:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1589:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1589:12:1"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "1490:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1658:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1668:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1679:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1668:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1640:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1650:7:1",
"type": ""
}
],
"src": "1613:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1739:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1796:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1805:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1808:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1798:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1798:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1798:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1762:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1787:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1769:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1769:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1759:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1759:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1752:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1752:43:1"
},
"nodeType": "YulIf",
"src": "1749:63:1"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1732:5:1",
"type": ""
}
],
"src": "1696:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1887:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1897:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1912:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1906:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1906:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1897:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1955:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1928:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1928:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1928:33:1"
}
]
},
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1865:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1873:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1881:5:1",
"type": ""
}
],
"src": "1824:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2103:619:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2113:90:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2195:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2138:56:1"
},
"nodeType": "YulFunctionCall",
"src": "2138:64:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2122:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2122:81:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2113:5:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2212:16:1",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "2223:5:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2216:3:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2245:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2252:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2238:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2238:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2238:21:1"
},
{
"nodeType": "YulAssignment",
"src": "2268:23:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2279:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2286:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2275:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2275:16:1"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2268:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2301:44:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2319:6:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2331:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2339:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "2327:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2327:17:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2315:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2315:30:1"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "2305:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2373:103:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "2387:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2387:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2387:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "2360:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2368:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2357:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2357:15:1"
},
"nodeType": "YulIf",
"src": "2354:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2561:155:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2576:21:1",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "2594:3:1"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "2580:10:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2618:3:1"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "2655:10:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2667:3:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulIdentifier",
"src": "2623:31:1"
},
"nodeType": "YulFunctionCall",
"src": "2623:48:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2611:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2611:61:1"
},
"nodeType": "YulExpressionStatement",
"src": "2611:61:1"
},
{
"nodeType": "YulAssignment",
"src": "2685:21:1",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2696:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2701:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2692:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2692:14:1"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2685:3:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2514:3:1"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "2519:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2511:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2511:15:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2527:25:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2529:21:1",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2540:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2545:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2536:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2536:14:1"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2529:3:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2489:21:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2491:17:1",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2502:6:1"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2495:3:1",
"type": ""
}
]
}
]
},
"src": "2485:231:1"
}
]
},
"name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2073:6:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2081:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2089:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2097:5:1",
"type": ""
}
],
"src": "1990:732:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2833:297:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2882:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2884:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2884:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2884:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2861:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2869:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2857:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2857:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2876:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2853:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2853:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2846:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2846:35:1"
},
"nodeType": "YulIf",
"src": "2843:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2974:27:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2994:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2988:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2988:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2978:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3010:114:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3097:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3105:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3093:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3093:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3112:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3120:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3019:73:1"
},
"nodeType": "YulFunctionCall",
"src": "3019:105:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3010:5:1"
}
]
}
]
},
"name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2811:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2819:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2827:5:1",
"type": ""
}
],
"src": "2745:385:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3238:452:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3284:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3286:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3286:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3286:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3259:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3268:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3255:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3255:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3280:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3251:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3251:32:1"
},
"nodeType": "YulIf",
"src": "3248:119:1"
},
{
"nodeType": "YulBlock",
"src": "3377:306:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3392:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3416:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3427:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3412:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3412:17:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3406:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3406:24:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3396:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3477:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3479:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3479:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3479:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3449:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3457:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3446:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3446:30:1"
},
"nodeType": "YulIf",
"src": "3443:117:1"
},
{
"nodeType": "YulAssignment",
"src": "3574:99:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3645:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3656:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3641:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3641:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3665:7:1"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3584:56:1"
},
"nodeType": "YulFunctionCall",
"src": "3584:89:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3574:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3208:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3219:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3231:6:1",
"type": ""
}
],
"src": "3136:554:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3724:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3741:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3744:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3734:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3734:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3734:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3838:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3841:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3831:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3831:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3831:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3862:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3865:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3855:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3855:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3855:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "3696:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3910:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3927:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3930:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3920:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3920:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3920:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4024:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4027:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4017:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4017:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4017:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4048:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4051:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4041:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4041:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4041:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "3882:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4113:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4123:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "4134:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4123:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4095:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4105:7:1",
"type": ""
}
],
"src": "4068:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4194:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4204:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4231:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4213:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4213:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4204:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4327:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "4329:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4329:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4329:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4252:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4259:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4249:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4249:77:1"
},
"nodeType": "YulIf",
"src": "4246:103:1"
},
{
"nodeType": "YulAssignment",
"src": "4358:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4369:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4376:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4365:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "4358:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4180:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "4190:3:1",
"type": ""
}
],
"src": "4151:233:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes32(value)\n }\n\n // bytes32[]\n function abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_bytes32_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // bytes32[]\n function abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b506040516200146538038062001465833981810160405281019062000037919062000342565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060005b81518110156200017657600260405180604001604052808484815181106200010f576200010e62000393565b5b60200260200101518152602001600081525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505080806200016d90620003fb565b915050620000e2565b505062000449565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001e28262000197565b810181811067ffffffffffffffff82111715620002045762000203620001a8565b5b80604052505050565b6000620002196200017e565b9050620002278282620001d7565b919050565b600067ffffffffffffffff8211156200024a5762000249620001a8565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b620002758162000260565b81146200028157600080fd5b50565b60008151905062000295816200026a565b92915050565b6000620002b2620002ac846200022c565b6200020d565b90508083825260208201905060208402830185811115620002d857620002d76200025b565b5b835b81811015620003055780620002f0888262000284565b845260208401935050602081019050620002da565b5050509392505050565b600082601f83011262000327576200032662000192565b5b8151620003398482602086016200029b565b91505092915050565b6000602082840312156200035b576200035a62000188565b5b600082015167ffffffffffffffff8111156200037c576200037b6200018d565b5b6200038a848285016200030f565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b60006200040882620003f1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200043e576200043d620003c2565b5b600182019050919050565b61100c80620004596000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063609ff1bd1161005b578063609ff1bd146101145780639e7b8d6114610132578063a3ec138d1461014e578063e2ba53f01461018157610088565b80630121b93f1461008d578063013cf08b146100a95780632e4176cf146100da5780635c19a95c146100f8575b600080fd5b6100a760048036038101906100a291906109e5565b61019f565b005b6100c360048036038101906100be91906109e5565b6102e6565b6040516100d1929190610a3a565b60405180910390f35b6100e261031a565b6040516100ef9190610aa4565b60405180910390f35b610112600480360381019061010d9190610aeb565b61033e565b005b61011c6106da565b6040516101299190610b18565b60405180910390f35b61014c60048036038101906101479190610aeb565b610762565b005b61016860048036038101906101639190610aeb565b610919565b6040516101789493929190610b4e565b60405180910390f35b610189610976565b6040516101969190610b93565b60405180910390f35b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154141561022a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022190610c0b565b60405180910390fd5b8060010160009054906101000a900460ff161561027c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027390610c77565b60405180910390fd5b60018160010160006101000a81548160ff0219169083151502179055508181600201819055508060000154600283815481106102bb576102ba610c97565b5b906000526020600020906002020160010160008282546102db9190610cf5565b925050819055505050565b600281815481106102f657600080fd5b90600052602060002090600202016000915090508060000154908060010154905082565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff16156103d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ca90610d97565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043990610e03565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b257600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a490610e6f565b60405180910390fd5b610443565b60018160010160006101000a81548160ff021916908315150217905550818160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff16156106b5578160000154600282600201548154811061068957610688610c97565b5b906000526020600020906002020160010160008282546106a99190610cf5565b925050819055506106d5565b81600001548160000160008282546106cd9190610cf5565b925050819055505b505050565b6000806000905060005b60028054905081101561075d57816002828154811061070657610705610c97565b5b906000526020600020906002020160010154111561074a576002818154811061073257610731610c97565b5b90600052602060002090600202016001015491508092505b808061075590610e8f565b9150506106e4565b505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790610f4a565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790610fb6565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154146108cf57600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905084565b600060026109826106da565b8154811061099357610992610c97565b5b906000526020600020906002020160000154905090565b600080fd5b6000819050919050565b6109c2816109af565b81146109cd57600080fd5b50565b6000813590506109df816109b9565b92915050565b6000602082840312156109fb576109fa6109aa565b5b6000610a09848285016109d0565b91505092915050565b6000819050919050565b610a2581610a12565b82525050565b610a34816109af565b82525050565b6000604082019050610a4f6000830185610a1c565b610a5c6020830184610a2b565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a8e82610a63565b9050919050565b610a9e81610a83565b82525050565b6000602082019050610ab96000830184610a95565b92915050565b610ac881610a83565b8114610ad357600080fd5b50565b600081359050610ae581610abf565b92915050565b600060208284031215610b0157610b006109aa565b5b6000610b0f84828501610ad6565b91505092915050565b6000602082019050610b2d6000830184610a2b565b92915050565b60008115159050919050565b610b4881610b33565b82525050565b6000608082019050610b636000830187610a2b565b610b706020830186610b3f565b610b7d6040830185610a95565b610b8a6060830184610a2b565b95945050505050565b6000602082019050610ba86000830184610a1c565b92915050565b600082825260208201905092915050565b7f486173206e6f20726967687420746f20766f7465000000000000000000000000600082015250565b6000610bf5601483610bae565b9150610c0082610bbf565b602082019050919050565b60006020820190508181036000830152610c2481610be8565b9050919050565b7f416c726561647920766f7465642e000000000000000000000000000000000000600082015250565b6000610c61600e83610bae565b9150610c6c82610c2b565b602082019050919050565b60006020820190508181036000830152610c9081610c54565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d00826109af565b9150610d0b836109af565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d4057610d3f610cc6565b5b828201905092915050565b7f596f7520616c726561647920766f7465642e0000000000000000000000000000600082015250565b6000610d81601283610bae565b9150610d8c82610d4b565b602082019050919050565b60006020820190508181036000830152610db081610d74565b9050919050565b7f53656c662d64656c65676174696f6e20697320646973616c6c6f7765642e0000600082015250565b6000610ded601e83610bae565b9150610df882610db7565b602082019050919050565b60006020820190508181036000830152610e1c81610de0565b9050919050565b7f466f756e64206c6f6f7020696e2064656c65676174696f6e2e00000000000000600082015250565b6000610e59601983610bae565b9150610e6482610e23565b602082019050919050565b60006020820190508181036000830152610e8881610e4c565b9050919050565b6000610e9a826109af565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ecd57610ecc610cc6565b5b600182019050919050565b7f4f6e6c79206368616972706572736f6e2063616e20676976652072696768742060008201527f746f20766f74652e000000000000000000000000000000000000000000000000602082015250565b6000610f34602883610bae565b9150610f3f82610ed8565b604082019050919050565b60006020820190508181036000830152610f6381610f27565b9050919050565b7f54686520766f74657220616c726561647920766f7465642e0000000000000000600082015250565b6000610fa0601883610bae565b9150610fab82610f6a565b602082019050919050565b60006020820190508181036000830152610fcf81610f93565b905091905056fea264697066735822122044698488ce49cdb2cd90c2afdc3effee31e6c46c8d327f748de26387d3d57c2464736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1465 CODESIZE SUB DUP1 PUSH3 0x1465 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x342 JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x176 JUMPI PUSH1 0x2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH3 0x10F JUMPI PUSH3 0x10E PUSH3 0x393 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE POP POP DUP1 DUP1 PUSH3 0x16D SWAP1 PUSH3 0x3FB JUMP JUMPDEST SWAP2 POP POP PUSH3 0xE2 JUMP JUMPDEST POP POP PUSH3 0x449 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x1E2 DUP3 PUSH3 0x197 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x204 JUMPI PUSH3 0x203 PUSH3 0x1A8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x219 PUSH3 0x17E JUMP JUMPDEST SWAP1 POP PUSH3 0x227 DUP3 DUP3 PUSH3 0x1D7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x24A JUMPI PUSH3 0x249 PUSH3 0x1A8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x275 DUP2 PUSH3 0x260 JUMP JUMPDEST DUP2 EQ PUSH3 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x295 DUP2 PUSH3 0x26A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2B2 PUSH3 0x2AC DUP5 PUSH3 0x22C JUMP JUMPDEST PUSH3 0x20D JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH3 0x2D8 JUMPI PUSH3 0x2D7 PUSH3 0x25B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x305 JUMPI DUP1 PUSH3 0x2F0 DUP9 DUP3 PUSH3 0x284 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x2DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x327 JUMPI PUSH3 0x326 PUSH3 0x192 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x339 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x29B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x35B JUMPI PUSH3 0x35A PUSH3 0x188 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37C JUMPI PUSH3 0x37B PUSH3 0x18D JUMP JUMPDEST JUMPDEST PUSH3 0x38A DUP5 DUP3 DUP6 ADD PUSH3 0x30F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x408 DUP3 PUSH3 0x3F1 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH3 0x43E JUMPI PUSH3 0x43D PUSH3 0x3C2 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x100C DUP1 PUSH3 0x459 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x609FF1BD GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x609FF1BD EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0x9E7B8D61 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0xA3EC138D EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0xE2BA53F0 EQ PUSH2 0x181 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x121B93F EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x13CF08B EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x2E4176CF EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x9E5 JUMP JUMPDEST PUSH2 0x19F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x9E5 JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD1 SWAP3 SWAP2 SWAP1 PUSH2 0xA3A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH2 0x31A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0xAA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10D SWAP2 SWAP1 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x33E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11C PUSH2 0x6DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x147 SWAP2 SWAP1 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x762 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x168 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x163 SWAP2 SWAP1 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x919 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x178 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x189 PUSH2 0x976 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x196 SWAP2 SWAP1 PUSH2 0xB93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0x22A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x221 SWAP1 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x27C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x273 SWAP1 PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2BB JUMPI PUSH2 0x2BA PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2DB SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CA SWAP1 PUSH2 0xD97 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x442 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xE03 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5B2 JUMPI PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x5AD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A4 SWAP1 PUSH2 0xE6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x443 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6B5 JUMPI DUP2 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP3 PUSH1 0x2 ADD SLOAD DUP2 SLOAD DUP2 LT PUSH2 0x689 JUMPI PUSH2 0x688 PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6A9 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP2 PUSH1 0x0 ADD SLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6CD SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP2 PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x706 JUMPI PUSH2 0x705 PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD GT ISZERO PUSH2 0x74A JUMPI PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x732 JUMPI PUSH2 0x731 PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD SWAP2 POP DUP1 SWAP3 POP JUMPDEST DUP1 DUP1 PUSH2 0x755 SWAP1 PUSH2 0xE8F JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6E4 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E7 SWAP1 PUSH2 0xF4A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x880 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x877 SWAP1 PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x982 PUSH2 0x6DA JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x993 JUMPI PUSH2 0x992 PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C2 DUP2 PUSH2 0x9AF JUMP JUMPDEST DUP2 EQ PUSH2 0x9CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9DF DUP2 PUSH2 0x9B9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9FB JUMPI PUSH2 0x9FA PUSH2 0x9AA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA09 DUP5 DUP3 DUP6 ADD PUSH2 0x9D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA25 DUP2 PUSH2 0xA12 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xA34 DUP2 PUSH2 0x9AF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xA4F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xA1C JUMP JUMPDEST PUSH2 0xA5C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xA2B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8E DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA9E DUP2 PUSH2 0xA83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA95 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAC8 DUP2 PUSH2 0xA83 JUMP JUMPDEST DUP2 EQ PUSH2 0xAD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAE5 DUP2 PUSH2 0xABF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB01 JUMPI PUSH2 0xB00 PUSH2 0x9AA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB0F DUP5 DUP3 DUP6 ADD PUSH2 0xAD6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB2D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB48 DUP2 PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xB63 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0xA2B JUMP JUMPDEST PUSH2 0xB70 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xB3F JUMP JUMPDEST PUSH2 0xB7D PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xA95 JUMP JUMPDEST PUSH2 0xB8A PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA2B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBA8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x486173206E6F20726967687420746F20766F7465000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF5 PUSH1 0x14 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xC00 DUP3 PUSH2 0xBBF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC24 DUP2 PUSH2 0xBE8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416C726561647920766F7465642E000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC61 PUSH1 0xE DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xC6C DUP3 PUSH2 0xC2B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC90 DUP2 PUSH2 0xC54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD00 DUP3 PUSH2 0x9AF JUMP JUMPDEST SWAP2 POP PUSH2 0xD0B DUP4 PUSH2 0x9AF JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xD40 JUMPI PUSH2 0xD3F PUSH2 0xCC6 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F7520616C726561647920766F7465642E0000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD81 PUSH1 0x12 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xD8C DUP3 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDB0 DUP2 PUSH2 0xD74 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x53656C662D64656C65676174696F6E20697320646973616C6C6F7765642E0000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDED PUSH1 0x1E DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xDF8 DUP3 PUSH2 0xDB7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE1C DUP2 PUSH2 0xDE0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x466F756E64206C6F6F7020696E2064656C65676174696F6E2E00000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE59 PUSH1 0x19 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xE64 DUP3 PUSH2 0xE23 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE88 DUP2 PUSH2 0xE4C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9A DUP3 PUSH2 0x9AF JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0xECD JUMPI PUSH2 0xECC PUSH2 0xCC6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206368616972706572736F6E2063616E206769766520726967687420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x746F20766F74652E000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF34 PUSH1 0x28 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xF3F DUP3 PUSH2 0xED8 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF63 DUP2 PUSH2 0xF27 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x54686520766F74657220616C726561647920766F7465642E0000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFA0 PUSH1 0x18 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xFAB DUP3 PUSH2 0xF6A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xFCF DUP2 PUSH2 0xF93 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DIFFICULTY PUSH10 0x8488CE49CDB2CD90C2AF 0xDC RETURNDATACOPY SELFDESTRUCT 0xEE BALANCE 0xE6 0xC4 PUSH13 0x8D327F748DE26387D3D57C2464 PUSH20 0x6F6C634300080B00330000000000000000000000 ",
"sourceMap": "157:4362:0:-:0;;;958:481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1026:10;1012:11;;:24;;;;;;;;;;;;;;;;;;1075:1;1046:6;:19;1053:11;;;;;;;;;;;1046:19;;;;;;;;;;;;;;;:26;;:30;;;;1092:6;1087:346;1108:13;:20;1104:1;:24;1087:346;;;1312:9;1327:94;;;;;;;;1360:13;1374:1;1360:16;;;;;;;;:::i;:::-;;;;;;;;1327:94;;;;1405:1;1327:94;;;1312:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1130:3;;;;;:::i;:::-;;;;1087:346;;;;958:481;157:4362;;7:75:1;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:77;1650:7;1679:5;1668:16;;1613:77;;;:::o;1696:122::-;1769:24;1787:5;1769:24;:::i;:::-;1762:5;1759:35;1749:63;;1808:1;1805;1798:12;1749:63;1696:122;:::o;1824:143::-;1881:5;1912:6;1906:13;1897:22;;1928:33;1955:5;1928:33;:::i;:::-;1824:143;;;;:::o;1990:732::-;2097:5;2122:81;2138:64;2195:6;2138:64;:::i;:::-;2122:81;:::i;:::-;2113:90;;2223:5;2252:6;2245:5;2238:21;2286:4;2279:5;2275:16;2268:23;;2339:4;2331:6;2327:17;2319:6;2315:30;2368:3;2360:6;2357:15;2354:122;;;2387:79;;:::i;:::-;2354:122;2502:6;2485:231;2519:6;2514:3;2511:15;2485:231;;;2594:3;2623:48;2667:3;2655:10;2623:48;:::i;:::-;2618:3;2611:61;2701:4;2696:3;2692:14;2685:21;;2561:155;2545:4;2540:3;2536:14;2529:21;;2485:231;;;2489:21;2103:619;;1990:732;;;;;:::o;2745:385::-;2827:5;2876:3;2869:4;2861:6;2857:17;2853:27;2843:122;;2884:79;;:::i;:::-;2843:122;2994:6;2988:13;3019:105;3120:3;3112:6;3105:4;3097:6;3093:17;3019:105;:::i;:::-;3010:114;;2833:297;2745:385;;;;:::o;3136:554::-;3231:6;3280:2;3268:9;3259:7;3255:23;3251:32;3248:119;;;3286:79;;:::i;:::-;3248:119;3427:1;3416:9;3412:17;3406:24;3457:18;3449:6;3446:30;3443:117;;;3479:79;;:::i;:::-;3443:117;3584:89;3665:7;3656:6;3645:9;3641:22;3584:89;:::i;:::-;3574:99;;3377:306;3136:554;;;;:::o;3696:180::-;3744:77;3741:1;3734:88;3841:4;3838:1;3831:15;3865:4;3862:1;3855:15;3882:180;3930:77;3927:1;3920:88;4027:4;4024:1;4017:15;4051:4;4048:1;4041:15;4068:77;4105:7;4134:5;4123:16;;4068:77;;;:::o;4151:233::-;4190:3;4213:24;4231:5;4213:24;:::i;:::-;4204:33;;4259:66;4252:5;4249:77;4246:103;;;4329:18;;:::i;:::-;4246:103;4376:1;4369:5;4365:13;4358:20;;4151:233;;;:::o;157:4362:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@chairperson_18": {
"entryPoint": 794,
"id": 18,
"parameterSlots": 0,
"returnSlots": 0
},
"@delegate_207": {
"entryPoint": 830,
"id": 207,
"parameterSlots": 1,
"returnSlots": 0
},
"@giveRightToVote_111": {
"entryPoint": 1890,
"id": 111,
"parameterSlots": 1,
"returnSlots": 0
},
"@proposals_27": {
"entryPoint": 742,
"id": 27,
"parameterSlots": 0,
"returnSlots": 0
},
"@vote_257": {
"entryPoint": 415,
"id": 257,
"parameterSlots": 1,
"returnSlots": 0
},
"@voters_23": {
"entryPoint": 2329,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@winnerName_315": {
"entryPoint": 2422,
"id": 315,
"parameterSlots": 0,
"returnSlots": 1
},
"@winningProposal_300": {
"entryPoint": 1754,
"id": 300,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 2774,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 2512,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 2795,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 2533,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 2709,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 2879,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 2588,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3048,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3156,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3444,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3879,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3660,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3987,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3552,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2603,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 2724,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 2963,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed": {
"entryPoint": 2618,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3083,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3191,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3479,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3914,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3695,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 4022,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3587,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 2840,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_bool_t_address_t_uint256__to_t_uint256_t_bool_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 2894,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 2990,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 3317,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 2691,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 2867,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 2578,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 2659,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2479,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"increment_t_uint256": {
"entryPoint": 3727,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 3270,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 3223,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 2474,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e": {
"entryPoint": 3007,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84": {
"entryPoint": 3115,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f": {
"entryPoint": 3403,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95": {
"entryPoint": 3800,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c": {
"entryPoint": 3619,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d": {
"entryPoint": 3946,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947": {
"entryPoint": 3511,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 2751,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 2489,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:12075:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "597:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "607:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "629:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "616:12:1"
},
"nodeType": "YulFunctionCall",
"src": "616:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "607:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "672:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "645:26:1"
},
"nodeType": "YulFunctionCall",
"src": "645:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "645:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "575:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "583:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "591:5:1",
"type": ""
}
],
"src": "545:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "756:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "802:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "804:77:1"
},
"nodeType": "YulFunctionCall",
"src": "804:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "804:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "777:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "786:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "773:3:1"
},
"nodeType": "YulFunctionCall",
"src": "773:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "798:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "769:3:1"
},
"nodeType": "YulFunctionCall",
"src": "769:32:1"
},
"nodeType": "YulIf",
"src": "766:119:1"
},
{
"nodeType": "YulBlock",
"src": "895:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "910:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "924:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "914:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "939:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "985:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "994:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "949:20:1"
},
"nodeType": "YulFunctionCall",
"src": "949:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "939:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "726:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "737:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "749:6:1",
"type": ""
}
],
"src": "690:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1070:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1080:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1091:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1080:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1052:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1062:7:1",
"type": ""
}
],
"src": "1025:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1173:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1190:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1213:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1195:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1195:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1183:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1183:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1183:37:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1161:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1168:3:1",
"type": ""
}
],
"src": "1108:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1297:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1314:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1337:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1319:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1319:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1307:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1307:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1307:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1285:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1292:3:1",
"type": ""
}
],
"src": "1232:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1482:206:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1492:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1504:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1515:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1500:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1500:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1492:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1572:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1585:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1581:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1581:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "1528:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1528:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1528:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1653:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1666:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1677:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1662:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1662:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1609:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1609:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "1609:72:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1446:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1458:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1466:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1477:4:1",
"type": ""
}
],
"src": "1356:332:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1739:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1749:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1764:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1771:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1760:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1760:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1749:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1721:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1731:7:1",
"type": ""
}
],
"src": "1694:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1871:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1881:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1910:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1892:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1892:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1881:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1853:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1863:7:1",
"type": ""
}
],
"src": "1826:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1993:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2010:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2033:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2015:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2015:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2003:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2003:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2003:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1981:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1988:3:1",
"type": ""
}
],
"src": "1928:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2150:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2160:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2172:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2183:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2168:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2168:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2160:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2240:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2253:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2264:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2249:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2249:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "2196:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2196:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2196:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2122:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2134:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2145:4:1",
"type": ""
}
],
"src": "2052:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2323:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2380:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2389:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2392:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2382:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2382:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2382:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2346:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2371:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2353:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2353:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2343:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2343:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2336:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2336:43:1"
},
"nodeType": "YulIf",
"src": "2333:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2316:5:1",
"type": ""
}
],
"src": "2280:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2460:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2470:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2492:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2479:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2479:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2470:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2535:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "2508:26:1"
},
"nodeType": "YulFunctionCall",
"src": "2508:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "2508:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2438:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2446:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2454:5:1",
"type": ""
}
],
"src": "2408:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2619:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2665:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2667:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2667:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2667:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2640:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2649:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2636:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2636:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2661:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2632:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2632:32:1"
},
"nodeType": "YulIf",
"src": "2629:119:1"
},
{
"nodeType": "YulBlock",
"src": "2758:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2773:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2787:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2777:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2802:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2837:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2848:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2833:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2833:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2857:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "2812:20:1"
},
"nodeType": "YulFunctionCall",
"src": "2812:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2802:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2589:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2600:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2612:6:1",
"type": ""
}
],
"src": "2553:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2986:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2996:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3008:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3019:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3004:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3004:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2996:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3076:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3089:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3100:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3085:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3085:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3032:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3032:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3032:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2958:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2970:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2981:4:1",
"type": ""
}
],
"src": "2888:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3158:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3168:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3193:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3186:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3186:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3179:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3179:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3168:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3140:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3150:7:1",
"type": ""
}
],
"src": "3116:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3271:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3288:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3308:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "3293:14:1"
},
"nodeType": "YulFunctionCall",
"src": "3293:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3281:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3281:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "3281:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3259:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3266:3:1",
"type": ""
}
],
"src": "3212:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3503:365:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3513:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3525:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3536:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3521:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3521:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3513:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3594:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3607:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3618:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3603:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3603:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3550:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3550:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3550:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3669:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3682:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3693:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3678:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3678:18:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "3631:37:1"
},
"nodeType": "YulFunctionCall",
"src": "3631:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "3631:66:1"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3751:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3764:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3775:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3760:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3760:18:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3707:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3707:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "3707:72:1"
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3833:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3846:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3857:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3842:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3842:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3789:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3789:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "3789:72:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_bool_t_address_t_uint256__to_t_uint256_t_bool_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3451:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "3463:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3471:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3479:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3487:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3498:4:1",
"type": ""
}
],
"src": "3327:541:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3972:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3982:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3994:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4005:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3990:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3990:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3982:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4062:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4075:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4086:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4071:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4071:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "4018:43:1"
},
"nodeType": "YulFunctionCall",
"src": "4018:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "4018:71:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3944:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3956:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3967:4:1",
"type": ""
}
],
"src": "3874:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4198:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4215:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4220:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4208:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4208:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "4208:19:1"
},
{
"nodeType": "YulAssignment",
"src": "4236:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4255:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4260:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4251:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4251:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4236:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4170:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4175:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4186:11:1",
"type": ""
}
],
"src": "4102:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4383:64:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4405:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4413:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4401:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4401:14:1"
},
{
"hexValue": "486173206e6f20726967687420746f20766f7465",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4417:22:1",
"type": "",
"value": "Has no right to vote"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4394:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4394:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "4394:46:1"
}
]
},
"name": "store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4375:6:1",
"type": ""
}
],
"src": "4277:170:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4599:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4609:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4675:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4680:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4616:58:1"
},
"nodeType": "YulFunctionCall",
"src": "4616:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4609:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4781:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e",
"nodeType": "YulIdentifier",
"src": "4692:88:1"
},
"nodeType": "YulFunctionCall",
"src": "4692:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "4692:93:1"
},
{
"nodeType": "YulAssignment",
"src": "4794:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4805:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4810:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4801:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4801:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4794:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4587:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4595:3:1",
"type": ""
}
],
"src": "4453:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4996:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5006:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5018:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5029:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5014:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5014:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5006:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5053:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5064:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5049:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5049:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5072:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5078:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5068:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5068:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5042:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5042:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "5042:47:1"
},
{
"nodeType": "YulAssignment",
"src": "5098:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5232:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5106:124:1"
},
"nodeType": "YulFunctionCall",
"src": "5106:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5098:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4976:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4991:4:1",
"type": ""
}
],
"src": "4825:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5356:58:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5378:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5386:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5374:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5374:14:1"
},
{
"hexValue": "416c726561647920766f7465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "5390:16:1",
"type": "",
"value": "Already voted."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5367:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5367:40:1"
},
"nodeType": "YulExpressionStatement",
"src": "5367:40:1"
}
]
},
"name": "store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5348:6:1",
"type": ""
}
],
"src": "5250:164:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5566:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5576:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5642:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5647:2:1",
"type": "",
"value": "14"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5583:58:1"
},
"nodeType": "YulFunctionCall",
"src": "5583:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5576:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5748:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84",
"nodeType": "YulIdentifier",
"src": "5659:88:1"
},
"nodeType": "YulFunctionCall",
"src": "5659:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "5659:93:1"
},
{
"nodeType": "YulAssignment",
"src": "5761:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5772:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5768:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5768:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5761:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5554:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5562:3:1",
"type": ""
}
],
"src": "5420:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5963:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5973:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5985:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5996:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5981:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5981:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5973:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6020:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6031:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6016:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6016:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6039:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6045:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6035:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6035:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6009:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6009:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "6009:47:1"
},
{
"nodeType": "YulAssignment",
"src": "6065:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6199:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6073:124:1"
},
"nodeType": "YulFunctionCall",
"src": "6073:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6065:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5943:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5958:4:1",
"type": ""
}
],
"src": "5792:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6245:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6262:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6265:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6255:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6255:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6255:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6359:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6362:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6352:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6352:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6352:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6383:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6386:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6376:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6376:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6376:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "6217:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6431:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6448:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6451:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6441:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6441:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6441:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6545:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6548:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6538:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6538:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6538:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6569:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6572:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6562:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6562:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6562:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "6403:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6633:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6643:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6666:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6648:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6648:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6643:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "6677:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6700:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6682:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6682:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6677:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6840:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "6842:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6842:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6842:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6761:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6768:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6836:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6764:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6764:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6758:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6758:81:1"
},
"nodeType": "YulIf",
"src": "6755:107:1"
},
{
"nodeType": "YulAssignment",
"src": "6872:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6883:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6886:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6879:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6879:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "6872:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "6620:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "6623:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "6629:3:1",
"type": ""
}
],
"src": "6589:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7006:62:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7028:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7036:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7024:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7024:14:1"
},
{
"hexValue": "596f7520616c726561647920766f7465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7040:20:1",
"type": "",
"value": "You already voted."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7017:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7017:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "7017:44:1"
}
]
},
"name": "store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6998:6:1",
"type": ""
}
],
"src": "6900:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7220:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7230:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7296:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7301:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7237:58:1"
},
"nodeType": "YulFunctionCall",
"src": "7237:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7230:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7402:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f",
"nodeType": "YulIdentifier",
"src": "7313:88:1"
},
"nodeType": "YulFunctionCall",
"src": "7313:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "7313:93:1"
},
{
"nodeType": "YulAssignment",
"src": "7415:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7426:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7431:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7422:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7422:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7415:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7208:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7216:3:1",
"type": ""
}
],
"src": "7074:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7617:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7627:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7639:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7650:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7635:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7635:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7627:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7674:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7685:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7670:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7670:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7693:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7699:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7689:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7689:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7663:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7663:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "7663:47:1"
},
{
"nodeType": "YulAssignment",
"src": "7719:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7853:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7727:124:1"
},
"nodeType": "YulFunctionCall",
"src": "7727:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7719:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7597:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7612:4:1",
"type": ""
}
],
"src": "7446:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7977:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7999:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8007:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7995:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7995:14:1"
},
{
"hexValue": "53656c662d64656c65676174696f6e20697320646973616c6c6f7765642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8011:32:1",
"type": "",
"value": "Self-delegation is disallowed."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7988:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7988:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "7988:56:1"
}
]
},
"name": "store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7969:6:1",
"type": ""
}
],
"src": "7871:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8203:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8213:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8279:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8284:2:1",
"type": "",
"value": "30"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8220:58:1"
},
"nodeType": "YulFunctionCall",
"src": "8220:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8213:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8385:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947",
"nodeType": "YulIdentifier",
"src": "8296:88:1"
},
"nodeType": "YulFunctionCall",
"src": "8296:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "8296:93:1"
},
{
"nodeType": "YulAssignment",
"src": "8398:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8409:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8414:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8405:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8405:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8398:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "8191:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8199:3:1",
"type": ""
}
],
"src": "8057:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8600:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8610:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8622:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8633:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8618:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8618:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8610:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8657:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8668:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8653:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8653:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8676:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8682:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8672:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8672:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8646:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8646:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "8646:47:1"
},
{
"nodeType": "YulAssignment",
"src": "8702:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8836:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8710:124:1"
},
"nodeType": "YulFunctionCall",
"src": "8710:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8702:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8580:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8595:4:1",
"type": ""
}
],
"src": "8429:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8960:69:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "8982:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8990:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8978:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8978:14:1"
},
{
"hexValue": "466f756e64206c6f6f7020696e2064656c65676174696f6e2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8994:27:1",
"type": "",
"value": "Found loop in delegation."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8971:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8971:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "8971:51:1"
}
]
},
"name": "store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "8952:6:1",
"type": ""
}
],
"src": "8854:175:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9181:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9191:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9257:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9262:2:1",
"type": "",
"value": "25"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "9198:58:1"
},
"nodeType": "YulFunctionCall",
"src": "9198:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9191:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9363:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c",
"nodeType": "YulIdentifier",
"src": "9274:88:1"
},
"nodeType": "YulFunctionCall",
"src": "9274:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "9274:93:1"
},
{
"nodeType": "YulAssignment",
"src": "9376:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9387:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9392:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9383:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9383:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9376:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9169:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9177:3:1",
"type": ""
}
],
"src": "9035:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9578:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9588:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9600:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9611:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9596:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9596:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9588:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9635:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9646:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9631:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9631:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9654:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9660:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9650:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9650:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9624:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9624:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "9624:47:1"
},
{
"nodeType": "YulAssignment",
"src": "9680:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9814:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "9688:124:1"
},
"nodeType": "YulFunctionCall",
"src": "9688:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9680:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9558:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9573:4:1",
"type": ""
}
],
"src": "9407:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9875:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9885:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9912:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "9894:17:1"
},
"nodeType": "YulFunctionCall",
"src": "9894:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9885:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10008:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "10010:16:1"
},
"nodeType": "YulFunctionCall",
"src": "10010:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "10010:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9933:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9940:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "9930:2:1"
},
"nodeType": "YulFunctionCall",
"src": "9930:77:1"
},
"nodeType": "YulIf",
"src": "9927:103:1"
},
{
"nodeType": "YulAssignment",
"src": "10039:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10050:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10057:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10046:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10046:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "10039:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9861:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "9871:3:1",
"type": ""
}
],
"src": "9832:233:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10177:121:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10199:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10207:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10195:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10195:14:1"
},
{
"hexValue": "4f6e6c79206368616972706572736f6e2063616e206769766520726967687420",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10211:34:1",
"type": "",
"value": "Only chairperson can give right "
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10188:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10188:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "10188:58:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10267:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10275:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10263:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10263:15:1"
},
{
"hexValue": "746f20766f74652e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10280:10:1",
"type": "",
"value": "to vote."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10256:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10256:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "10256:35:1"
}
]
},
"name": "store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "10169:6:1",
"type": ""
}
],
"src": "10071:227:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10450:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10460:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10526:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10531:2:1",
"type": "",
"value": "40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "10467:58:1"
},
"nodeType": "YulFunctionCall",
"src": "10467:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10460:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10632:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95",
"nodeType": "YulIdentifier",
"src": "10543:88:1"
},
"nodeType": "YulFunctionCall",
"src": "10543:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "10543:93:1"
},
{
"nodeType": "YulAssignment",
"src": "10645:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10656:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10661:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10652:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10652:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10645:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "10438:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "10446:3:1",
"type": ""
}
],
"src": "10304:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10847:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10857:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10869:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10880:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10865:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10865:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10857:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10904:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10915:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10900:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10900:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10923:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10929:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10919:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10919:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10893:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10893:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "10893:47:1"
},
{
"nodeType": "YulAssignment",
"src": "10949:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11083:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "10957:124:1"
},
"nodeType": "YulFunctionCall",
"src": "10957:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10949:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10827:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10842:4:1",
"type": ""
}
],
"src": "10676:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11207:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "11229:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11237:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11225:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11225:14:1"
},
{
"hexValue": "54686520766f74657220616c726561647920766f7465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "11241:26:1",
"type": "",
"value": "The voter already voted."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11218:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11218:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "11218:50:1"
}
]
},
"name": "store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "11199:6:1",
"type": ""
}
],
"src": "11101:174:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11427:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11437:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11503:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11508:2:1",
"type": "",
"value": "24"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "11444:58:1"
},
"nodeType": "YulFunctionCall",
"src": "11444:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11437:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11609:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d",
"nodeType": "YulIdentifier",
"src": "11520:88:1"
},
"nodeType": "YulFunctionCall",
"src": "11520:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "11520:93:1"
},
{
"nodeType": "YulAssignment",
"src": "11622:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11633:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11638:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11629:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11629:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11622:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "11415:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11423:3:1",
"type": ""
}
],
"src": "11281:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11824:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11834:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11846:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11857:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11842:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11842:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11834:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11881:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11892:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11877:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11877:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11900:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11906:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11896:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11896:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11870:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11870:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "11870:47:1"
},
{
"nodeType": "YulAssignment",
"src": "11926:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "12060:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "11934:124:1"
},
"nodeType": "YulFunctionCall",
"src": "11934:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11926:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11804:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11819:4:1",
"type": ""
}
],
"src": "11653:419:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_uint256_t_bool_t_address_t_uint256__to_t_uint256_t_bool_t_address_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e(memPtr) {\n\n mstore(add(memPtr, 0), \"Has no right to vote\")\n\n }\n\n function abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84(memPtr) {\n\n mstore(add(memPtr, 0), \"Already voted.\")\n\n }\n\n function abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f(memPtr) {\n\n mstore(add(memPtr, 0), \"You already voted.\")\n\n }\n\n function abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947(memPtr) {\n\n mstore(add(memPtr, 0), \"Self-delegation is disallowed.\")\n\n }\n\n function abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c(memPtr) {\n\n mstore(add(memPtr, 0), \"Found loop in delegation.\")\n\n }\n\n function abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95(memPtr) {\n\n mstore(add(memPtr, 0), \"Only chairperson can give right \")\n\n mstore(add(memPtr, 32), \"to vote.\")\n\n }\n\n function abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d(memPtr) {\n\n mstore(add(memPtr, 0), \"The voter already voted.\")\n\n }\n\n function abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063609ff1bd1161005b578063609ff1bd146101145780639e7b8d6114610132578063a3ec138d1461014e578063e2ba53f01461018157610088565b80630121b93f1461008d578063013cf08b146100a95780632e4176cf146100da5780635c19a95c146100f8575b600080fd5b6100a760048036038101906100a291906109e5565b61019f565b005b6100c360048036038101906100be91906109e5565b6102e6565b6040516100d1929190610a3a565b60405180910390f35b6100e261031a565b6040516100ef9190610aa4565b60405180910390f35b610112600480360381019061010d9190610aeb565b61033e565b005b61011c6106da565b6040516101299190610b18565b60405180910390f35b61014c60048036038101906101479190610aeb565b610762565b005b61016860048036038101906101639190610aeb565b610919565b6040516101789493929190610b4e565b60405180910390f35b610189610976565b6040516101969190610b93565b60405180910390f35b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154141561022a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022190610c0b565b60405180910390fd5b8060010160009054906101000a900460ff161561027c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027390610c77565b60405180910390fd5b60018160010160006101000a81548160ff0219169083151502179055508181600201819055508060000154600283815481106102bb576102ba610c97565b5b906000526020600020906002020160010160008282546102db9190610cf5565b925050819055505050565b600281815481106102f657600080fd5b90600052602060002090600202016000915090508060000154908060010154905082565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff16156103d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ca90610d97565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043990610e03565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105b257600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a490610e6f565b60405180910390fd5b610443565b60018160010160006101000a81548160ff021916908315150217905550818160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff16156106b5578160000154600282600201548154811061068957610688610c97565b5b906000526020600020906002020160010160008282546106a99190610cf5565b925050819055506106d5565b81600001548160000160008282546106cd9190610cf5565b925050819055505b505050565b6000806000905060005b60028054905081101561075d57816002828154811061070657610705610c97565b5b906000526020600020906002020160010154111561074a576002818154811061073257610731610c97565b5b90600052602060002090600202016001015491508092505b808061075590610e8f565b9150506106e4565b505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e790610f4a565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087790610fb6565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154146108cf57600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905084565b600060026109826106da565b8154811061099357610992610c97565b5b906000526020600020906002020160000154905090565b600080fd5b6000819050919050565b6109c2816109af565b81146109cd57600080fd5b50565b6000813590506109df816109b9565b92915050565b6000602082840312156109fb576109fa6109aa565b5b6000610a09848285016109d0565b91505092915050565b6000819050919050565b610a2581610a12565b82525050565b610a34816109af565b82525050565b6000604082019050610a4f6000830185610a1c565b610a5c6020830184610a2b565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a8e82610a63565b9050919050565b610a9e81610a83565b82525050565b6000602082019050610ab96000830184610a95565b92915050565b610ac881610a83565b8114610ad357600080fd5b50565b600081359050610ae581610abf565b92915050565b600060208284031215610b0157610b006109aa565b5b6000610b0f84828501610ad6565b91505092915050565b6000602082019050610b2d6000830184610a2b565b92915050565b60008115159050919050565b610b4881610b33565b82525050565b6000608082019050610b636000830187610a2b565b610b706020830186610b3f565b610b7d6040830185610a95565b610b8a6060830184610a2b565b95945050505050565b6000602082019050610ba86000830184610a1c565b92915050565b600082825260208201905092915050565b7f486173206e6f20726967687420746f20766f7465000000000000000000000000600082015250565b6000610bf5601483610bae565b9150610c0082610bbf565b602082019050919050565b60006020820190508181036000830152610c2481610be8565b9050919050565b7f416c726561647920766f7465642e000000000000000000000000000000000000600082015250565b6000610c61600e83610bae565b9150610c6c82610c2b565b602082019050919050565b60006020820190508181036000830152610c9081610c54565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610d00826109af565b9150610d0b836109af565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d4057610d3f610cc6565b5b828201905092915050565b7f596f7520616c726561647920766f7465642e0000000000000000000000000000600082015250565b6000610d81601283610bae565b9150610d8c82610d4b565b602082019050919050565b60006020820190508181036000830152610db081610d74565b9050919050565b7f53656c662d64656c65676174696f6e20697320646973616c6c6f7765642e0000600082015250565b6000610ded601e83610bae565b9150610df882610db7565b602082019050919050565b60006020820190508181036000830152610e1c81610de0565b9050919050565b7f466f756e64206c6f6f7020696e2064656c65676174696f6e2e00000000000000600082015250565b6000610e59601983610bae565b9150610e6482610e23565b602082019050919050565b60006020820190508181036000830152610e8881610e4c565b9050919050565b6000610e9a826109af565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610ecd57610ecc610cc6565b5b600182019050919050565b7f4f6e6c79206368616972706572736f6e2063616e20676976652072696768742060008201527f746f20766f74652e000000000000000000000000000000000000000000000000602082015250565b6000610f34602883610bae565b9150610f3f82610ed8565b604082019050919050565b60006020820190508181036000830152610f6381610f27565b9050919050565b7f54686520766f74657220616c726561647920766f7465642e0000000000000000600082015250565b6000610fa0601883610bae565b9150610fab82610f6a565b602082019050919050565b60006020820190508181036000830152610fcf81610f93565b905091905056fea264697066735822122044698488ce49cdb2cd90c2afdc3effee31e6c46c8d327f748de26387d3d57c2464736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x609FF1BD GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x609FF1BD EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0x9E7B8D61 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0xA3EC138D EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0xE2BA53F0 EQ PUSH2 0x181 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x121B93F EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x13CF08B EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x2E4176CF EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x9E5 JUMP JUMPDEST PUSH2 0x19F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x9E5 JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD1 SWAP3 SWAP2 SWAP1 PUSH2 0xA3A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH2 0x31A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0xAA4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10D SWAP2 SWAP1 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x33E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11C PUSH2 0x6DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB18 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x147 SWAP2 SWAP1 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x762 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x168 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x163 SWAP2 SWAP1 PUSH2 0xAEB JUMP JUMPDEST PUSH2 0x919 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x178 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x189 PUSH2 0x976 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x196 SWAP2 SWAP1 PUSH2 0xB93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0x22A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x221 SWAP1 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x27C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x273 SWAP1 PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2BB JUMPI PUSH2 0x2BA PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2DB SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3D3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CA SWAP1 PUSH2 0xD97 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x442 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x439 SWAP1 PUSH2 0xE03 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5B2 JUMPI PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x5AD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A4 SWAP1 PUSH2 0xE6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x443 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6B5 JUMPI DUP2 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP3 PUSH1 0x2 ADD SLOAD DUP2 SLOAD DUP2 LT PUSH2 0x689 JUMPI PUSH2 0x688 PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6A9 SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP2 PUSH1 0x0 ADD SLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6CD SWAP2 SWAP1 PUSH2 0xCF5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP2 PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x706 JUMPI PUSH2 0x705 PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD GT ISZERO PUSH2 0x74A JUMPI PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x732 JUMPI PUSH2 0x731 PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD SWAP2 POP DUP1 SWAP3 POP JUMPDEST DUP1 DUP1 PUSH2 0x755 SWAP1 PUSH2 0xE8F JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6E4 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E7 SWAP1 PUSH2 0xF4A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x880 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x877 SWAP1 PUSH2 0xFB6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ PUSH2 0x8CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x982 PUSH2 0x6DA JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x993 JUMPI PUSH2 0x992 PUSH2 0xC97 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C2 DUP2 PUSH2 0x9AF JUMP JUMPDEST DUP2 EQ PUSH2 0x9CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9DF DUP2 PUSH2 0x9B9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9FB JUMPI PUSH2 0x9FA PUSH2 0x9AA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA09 DUP5 DUP3 DUP6 ADD PUSH2 0x9D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA25 DUP2 PUSH2 0xA12 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xA34 DUP2 PUSH2 0x9AF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xA4F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xA1C JUMP JUMPDEST PUSH2 0xA5C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xA2B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8E DUP3 PUSH2 0xA63 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA9E DUP2 PUSH2 0xA83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA95 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAC8 DUP2 PUSH2 0xA83 JUMP JUMPDEST DUP2 EQ PUSH2 0xAD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAE5 DUP2 PUSH2 0xABF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB01 JUMPI PUSH2 0xB00 PUSH2 0x9AA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB0F DUP5 DUP3 DUP6 ADD PUSH2 0xAD6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB2D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB48 DUP2 PUSH2 0xB33 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xB63 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0xA2B JUMP JUMPDEST PUSH2 0xB70 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xB3F JUMP JUMPDEST PUSH2 0xB7D PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xA95 JUMP JUMPDEST PUSH2 0xB8A PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA2B JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBA8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA1C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x486173206E6F20726967687420746F20766F7465000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF5 PUSH1 0x14 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xC00 DUP3 PUSH2 0xBBF JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC24 DUP2 PUSH2 0xBE8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416C726561647920766F7465642E000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC61 PUSH1 0xE DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xC6C DUP3 PUSH2 0xC2B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC90 DUP2 PUSH2 0xC54 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD00 DUP3 PUSH2 0x9AF JUMP JUMPDEST SWAP2 POP PUSH2 0xD0B DUP4 PUSH2 0x9AF JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xD40 JUMPI PUSH2 0xD3F PUSH2 0xCC6 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F7520616C726561647920766F7465642E0000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD81 PUSH1 0x12 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xD8C DUP3 PUSH2 0xD4B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDB0 DUP2 PUSH2 0xD74 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x53656C662D64656C65676174696F6E20697320646973616C6C6F7765642E0000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDED PUSH1 0x1E DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xDF8 DUP3 PUSH2 0xDB7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE1C DUP2 PUSH2 0xDE0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x466F756E64206C6F6F7020696E2064656C65676174696F6E2E00000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE59 PUSH1 0x19 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xE64 DUP3 PUSH2 0xE23 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE88 DUP2 PUSH2 0xE4C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9A DUP3 PUSH2 0x9AF JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0xECD JUMPI PUSH2 0xECC PUSH2 0xCC6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206368616972706572736F6E2063616E206769766520726967687420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x746F20766F74652E000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF34 PUSH1 0x28 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xF3F DUP3 PUSH2 0xED8 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF63 DUP2 PUSH2 0xF27 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x54686520766F74657220616C726561647920766F7465642E0000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFA0 PUSH1 0x18 DUP4 PUSH2 0xBAE JUMP JUMPDEST SWAP2 POP PUSH2 0xFAB DUP3 PUSH2 0xF6A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xFCF DUP2 PUSH2 0xF93 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DIFFICULTY PUSH10 0x8488CE49CDB2CD90C2AF 0xDC RETURNDATACOPY SELFDESTRUCT 0xEE BALANCE 0xE6 0xC4 PUSH13 0x8D327F748DE26387D3D57C2464 PUSH20 0x6F6C634300080B00330000000000000000000000 ",
"sourceMap": "157:4362:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3173:458;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;794:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;715:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2078:907;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3817:365;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1599:355;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;748:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4373:144;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3173:458;3219:20;3242:6;:18;3249:10;3242:18;;;;;;;;;;;;;;;3219:41;;3295:1;3278:6;:13;;;:18;;3270:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;3340:6;:12;;;;;;;;;;;;3339:13;3331:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;3396:4;3381:6;:12;;;:19;;;;;;;;;;;;;;;;;;3424:8;3410:6;:11;;:22;;;;3611:6;:13;;;3578:9;3588:8;3578:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:29;;;:46;;;;;;;:::i;:::-;;;;;;;;3209:422;3173:458;:::o;794:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;715:26::-;;;;;;;;;;;;:::o;2078:907::-;2125:20;2148:6;:18;2155:10;2148:18;;;;;;;;;;;;;;;2125:41;;2185:6;:12;;;;;;;;;;;;2184:13;2176:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2244:10;2238:16;;:2;:16;;;;2230:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;2300:223;2338:1;2307:33;;:6;:10;2314:2;2307:10;;;;;;;;;;;;;;;:19;;;;;;;;;;;;:33;;;2300:223;;2361:6;:10;2368:2;2361:10;;;;;;;;;;;;;;;:19;;;;;;;;;;;;2356:24;;2472:10;2466:16;;:2;:16;;;;2458:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2300:223;;;2547:4;2532:6;:12;;;:19;;;;;;;;;;;;;;;;;;2579:2;2561:6;:15;;;:20;;;;;;;;;;;;;;;;;;2591:23;2617:6;:10;2624:2;2617:10;;;;;;;;;;;;;;;2591:36;;2641:9;:15;;;;;;;;;;;;2637:342;;;2808:6;:13;;;2769:9;2779;:14;;;2769:25;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;:52;;;;;;;:::i;:::-;;;;;;;;2637:342;;;2955:6;:13;;;2935:9;:16;;;:33;;;;;;;:::i;:::-;;;;;;;;2637:342;2115:870;;2078:907;:::o;3817:365::-;3877:21;3914;3938:1;3914:25;;3954:6;3949:227;3970:9;:16;;;;3966:1;:20;3949:227;;;4036:16;4011:9;4021:1;4011:12;;;;;;;;:::i;:::-;;;;;;;;;;;;:22;;;:41;4007:159;;;4091:9;4101:1;4091:12;;;;;;;;:::i;:::-;;;;;;;;;;;;:22;;;4072:41;;4150:1;4131:20;;4007:159;3988:3;;;;;:::i;:::-;;;;3949:227;;;;3904:278;3817:365;:::o;1599:355::-;1691:11;;;;;;;;;;1677:25;;:10;:25;;;1656:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;1800:6;:13;1807:5;1800:13;;;;;;;;;;;;;;;:19;;;;;;;;;;;;1799:20;1778:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;1911:1;1887:6;:13;1894:5;1887:13;;;;;;;;;;;;;;;:20;;;:25;1879:34;;;;;;1946:1;1923:6;:13;1930:5;1923:13;;;;;;;;;;;;;;;:20;;:24;;;;1599:355;:::o;748:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4373:144::-;4428:19;4477:9;4487:17;:15;:17::i;:::-;4477:28;;;;;;;;:::i;:::-;;;;;;;;;;;;:33;;;4463:47;;4373:144;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:77::-;1062:7;1091:5;1080:16;;1025:77;;;:::o;1108:118::-;1195:24;1213:5;1195:24;:::i;:::-;1190:3;1183:37;1108:118;;:::o;1232:::-;1319:24;1337:5;1319:24;:::i;:::-;1314:3;1307:37;1232:118;;:::o;1356:332::-;1477:4;1515:2;1504:9;1500:18;1492:26;;1528:71;1596:1;1585:9;1581:17;1572:6;1528:71;:::i;:::-;1609:72;1677:2;1666:9;1662:18;1653:6;1609:72;:::i;:::-;1356:332;;;;;:::o;1694:126::-;1731:7;1771:42;1764:5;1760:54;1749:65;;1694:126;;;:::o;1826:96::-;1863:7;1892:24;1910:5;1892:24;:::i;:::-;1881:35;;1826:96;;;:::o;1928:118::-;2015:24;2033:5;2015:24;:::i;:::-;2010:3;2003:37;1928:118;;:::o;2052:222::-;2145:4;2183:2;2172:9;2168:18;2160:26;;2196:71;2264:1;2253:9;2249:17;2240:6;2196:71;:::i;:::-;2052:222;;;;:::o;2280:122::-;2353:24;2371:5;2353:24;:::i;:::-;2346:5;2343:35;2333:63;;2392:1;2389;2382:12;2333:63;2280:122;:::o;2408:139::-;2454:5;2492:6;2479:20;2470:29;;2508:33;2535:5;2508:33;:::i;:::-;2408:139;;;;:::o;2553:329::-;2612:6;2661:2;2649:9;2640:7;2636:23;2632:32;2629:119;;;2667:79;;:::i;:::-;2629:119;2787:1;2812:53;2857:7;2848:6;2837:9;2833:22;2812:53;:::i;:::-;2802:63;;2758:117;2553:329;;;;:::o;2888:222::-;2981:4;3019:2;3008:9;3004:18;2996:26;;3032:71;3100:1;3089:9;3085:17;3076:6;3032:71;:::i;:::-;2888:222;;;;:::o;3116:90::-;3150:7;3193:5;3186:13;3179:21;3168:32;;3116:90;;;:::o;3212:109::-;3293:21;3308:5;3293:21;:::i;:::-;3288:3;3281:34;3212:109;;:::o;3327:541::-;3498:4;3536:3;3525:9;3521:19;3513:27;;3550:71;3618:1;3607:9;3603:17;3594:6;3550:71;:::i;:::-;3631:66;3693:2;3682:9;3678:18;3669:6;3631:66;:::i;:::-;3707:72;3775:2;3764:9;3760:18;3751:6;3707:72;:::i;:::-;3789;3857:2;3846:9;3842:18;3833:6;3789:72;:::i;:::-;3327:541;;;;;;;:::o;3874:222::-;3967:4;4005:2;3994:9;3990:18;3982:26;;4018:71;4086:1;4075:9;4071:17;4062:6;4018:71;:::i;:::-;3874:222;;;;:::o;4102:169::-;4186:11;4220:6;4215:3;4208:19;4260:4;4255:3;4251:14;4236:29;;4102:169;;;;:::o;4277:170::-;4417:22;4413:1;4405:6;4401:14;4394:46;4277:170;:::o;4453:366::-;4595:3;4616:67;4680:2;4675:3;4616:67;:::i;:::-;4609:74;;4692:93;4781:3;4692:93;:::i;:::-;4810:2;4805:3;4801:12;4794:19;;4453:366;;;:::o;4825:419::-;4991:4;5029:2;5018:9;5014:18;5006:26;;5078:9;5072:4;5068:20;5064:1;5053:9;5049:17;5042:47;5106:131;5232:4;5106:131;:::i;:::-;5098:139;;4825:419;;;:::o;5250:164::-;5390:16;5386:1;5378:6;5374:14;5367:40;5250:164;:::o;5420:366::-;5562:3;5583:67;5647:2;5642:3;5583:67;:::i;:::-;5576:74;;5659:93;5748:3;5659:93;:::i;:::-;5777:2;5772:3;5768:12;5761:19;;5420:366;;;:::o;5792:419::-;5958:4;5996:2;5985:9;5981:18;5973:26;;6045:9;6039:4;6035:20;6031:1;6020:9;6016:17;6009:47;6073:131;6199:4;6073:131;:::i;:::-;6065:139;;5792:419;;;:::o;6217:180::-;6265:77;6262:1;6255:88;6362:4;6359:1;6352:15;6386:4;6383:1;6376:15;6403:180;6451:77;6448:1;6441:88;6548:4;6545:1;6538:15;6572:4;6569:1;6562:15;6589:305;6629:3;6648:20;6666:1;6648:20;:::i;:::-;6643:25;;6682:20;6700:1;6682:20;:::i;:::-;6677:25;;6836:1;6768:66;6764:74;6761:1;6758:81;6755:107;;;6842:18;;:::i;:::-;6755:107;6886:1;6883;6879:9;6872:16;;6589:305;;;;:::o;6900:168::-;7040:20;7036:1;7028:6;7024:14;7017:44;6900:168;:::o;7074:366::-;7216:3;7237:67;7301:2;7296:3;7237:67;:::i;:::-;7230:74;;7313:93;7402:3;7313:93;:::i;:::-;7431:2;7426:3;7422:12;7415:19;;7074:366;;;:::o;7446:419::-;7612:4;7650:2;7639:9;7635:18;7627:26;;7699:9;7693:4;7689:20;7685:1;7674:9;7670:17;7663:47;7727:131;7853:4;7727:131;:::i;:::-;7719:139;;7446:419;;;:::o;7871:180::-;8011:32;8007:1;7999:6;7995:14;7988:56;7871:180;:::o;8057:366::-;8199:3;8220:67;8284:2;8279:3;8220:67;:::i;:::-;8213:74;;8296:93;8385:3;8296:93;:::i;:::-;8414:2;8409:3;8405:12;8398:19;;8057:366;;;:::o;8429:419::-;8595:4;8633:2;8622:9;8618:18;8610:26;;8682:9;8676:4;8672:20;8668:1;8657:9;8653:17;8646:47;8710:131;8836:4;8710:131;:::i;:::-;8702:139;;8429:419;;;:::o;8854:175::-;8994:27;8990:1;8982:6;8978:14;8971:51;8854:175;:::o;9035:366::-;9177:3;9198:67;9262:2;9257:3;9198:67;:::i;:::-;9191:74;;9274:93;9363:3;9274:93;:::i;:::-;9392:2;9387:3;9383:12;9376:19;;9035:366;;;:::o;9407:419::-;9573:4;9611:2;9600:9;9596:18;9588:26;;9660:9;9654:4;9650:20;9646:1;9635:9;9631:17;9624:47;9688:131;9814:4;9688:131;:::i;:::-;9680:139;;9407:419;;;:::o;9832:233::-;9871:3;9894:24;9912:5;9894:24;:::i;:::-;9885:33;;9940:66;9933:5;9930:77;9927:103;;;10010:18;;:::i;:::-;9927:103;10057:1;10050:5;10046:13;10039:20;;9832:233;;;:::o;10071:227::-;10211:34;10207:1;10199:6;10195:14;10188:58;10280:10;10275:2;10267:6;10263:15;10256:35;10071:227;:::o;10304:366::-;10446:3;10467:67;10531:2;10526:3;10467:67;:::i;:::-;10460:74;;10543:93;10632:3;10543:93;:::i;:::-;10661:2;10656:3;10652:12;10645:19;;10304:366;;;:::o;10676:419::-;10842:4;10880:2;10869:9;10865:18;10857:26;;10929:9;10923:4;10919:20;10915:1;10904:9;10900:17;10893:47;10957:131;11083:4;10957:131;:::i;:::-;10949:139;;10676:419;;;:::o;11101:174::-;11241:26;11237:1;11229:6;11225:14;11218:50;11101:174;:::o;11281:366::-;11423:3;11444:67;11508:2;11503:3;11444:67;:::i;:::-;11437:74;;11520:93;11609:3;11520:93;:::i;:::-;11638:2;11633:3;11629:12;11622:19;;11281:366;;;:::o;11653:419::-;11819:4;11857:2;11846:9;11842:18;11834:26;;11906:9;11900:4;11896:20;11892:1;11881:9;11877:17;11870:47;11934:131;12060:4;11934:131;:::i;:::-;11926:139;;11653:419;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "821600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"chairperson()": "2556",
"delegate(address)": "infinite",
"giveRightToVote(address)": "29325",
"proposals(uint256)": "infinite",
"vote(uint256)": "infinite",
"voters(address)": "infinite",
"winnerName()": "infinite",
"winningProposal()": "infinite"
}
},
"methodIdentifiers": {
"chairperson()": "2e4176cf",
"delegate(address)": "5c19a95c",
"giveRightToVote(address)": "9e7b8d61",
"proposals(uint256)": "013cf08b",
"vote(uint256)": "0121b93f",
"voters(address)": "a3ec138d",
"winnerName()": "e2ba53f0",
"winningProposal()": "609ff1bd"
}
},
"abi": [
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "proposalNames",
"type": "bytes32[]"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "chairperson",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "delegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "giveRightToVote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "proposals",
"outputs": [
{
"internalType": "bytes32",
"name": "name",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "voteCount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposal",
"type": "uint256"
}
],
"name": "vote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "voters",
"outputs": [
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
},
{
"internalType": "bool",
"name": "voted",
"type": "bool"
},
{
"internalType": "address",
"name": "delegate",
"type": "address"
},
{
"internalType": "uint256",
"name": "vote",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winnerName",
"outputs": [
{
"internalType": "bytes32",
"name": "winnerName_",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winningProposal",
"outputs": [
{
"internalType": "uint256",
"name": "winningProposal_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "proposalNames",
"type": "bytes32[]"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "chairperson",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "delegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "giveRightToVote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "proposals",
"outputs": [
{
"internalType": "bytes32",
"name": "name",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "voteCount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposal",
"type": "uint256"
}
],
"name": "vote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "voters",
"outputs": [
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
},
{
"internalType": "bool",
"name": "voted",
"type": "bool"
},
{
"internalType": "address",
"name": "delegate",
"type": "address"
},
{
"internalType": "uint256",
"name": "vote",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winnerName",
"outputs": [
{
"internalType": "bytes32",
"name": "winnerName_",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winningProposal",
"outputs": [
{
"internalType": "uint256",
"name": "winningProposal_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "Implements voting process along with vote delegation",
"kind": "dev",
"methods": {
"constructor": {
"details": "Create a new ballot to choose one of 'proposalNames'.",
"params": {
"proposalNames": "names of proposals"
}
},
"delegate(address)": {
"details": "Delegate your vote to the voter 'to'.",
"params": {
"to": "address to which vote is delegated"
}
},
"giveRightToVote(address)": {
"details": "Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.",
"params": {
"voter": "address of voter"
}
},
"vote(uint256)": {
"details": "Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.",
"params": {
"proposal": "index of proposal in the proposals array"
}
},
"winnerName()": {
"details": "Calls winningProposal() function to get the index of the winner contained in the proposals array and then",
"returns": {
"winnerName_": "the name of the winner"
}
},
"winningProposal()": {
"details": "Computes the winning proposal taking all previous votes into account.",
"returns": {
"winningProposal_": "index of winning proposal in the proposals array"
}
}
},
"title": "Ballot",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/3_Ballot.sol": "Ballot"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/3_Ballot.sol": {
"keccak256": "0xdd897b48a563d1d32369fdb327187dfcd2660159cfcd3787196bb6be6a312c8d",
"license": "GPL-3.0",
"urls": [
"bzz-raw://551d7a6d3e2abc66a7b37fbd8b0e4c07b43c72c3b55958e66ac421348311fed4",
"dweb:/ipfs/Qmd4XV9j79GPfv5cgVsg62vKzaLuf6igx7VSW2BKaUyF3w"
]
}
},
"version": 1
}
//SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.9;
contract Auction {
mapping(address => uint) public bids;
function bid() public payable {
bids[msg.sender] = msg.value;
}
function getBids() internal view returns(mapping(address => uint) storage){
return bids;
}
}
//SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.9;
contract BytesAndStrings {
bytes public b1 = 'abc';
string public s1 = 'abc';
function getElement(uint index) public view returns(bytes1){
// return s1[index]; -> not possible
return b1[index];
}
function addElement() public {
// return s1.push('x'); -> not possible
b1.push('x');
}
function getLength() public view returns(uint) {
// return s1.length; -> not possible
return b1.length;
}
}
//SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.9;
contract Deposit{
// either receive() or fallback() is mandatory for the contract to receive ETH by
// sending ETH to the contract's address
// declaring the receive() function that is executed when sending ETH to the contract address
// it was introduced in Solidity 0.6 and a contract can have only one receive function,
// declared with this syntax (without the function keyword and without arguments).
receive() external payable{
}
// declaring a fallback payable function that is called when msg.data is not empty or
// when no other function matches
fallback() external payable {
}
// ether can be send and received by the contract in the trasaction that calls this function as well
function sendEther() public payable{
}
// returning the balance of the contract.
function getBalance() public view returns (uint) {
// this is the current contract, explicitly convertible to address,
// and balance is a member of any variable of type address.
return address(this).balance;
}
}
//SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.9;
contract Deposit{
address public owner;
constructor(){
owner = msg.sender;
}
receive() external payable{
}
function getBalance() public view returns(uint){
return address(this).balance;
}
// transfering ether from the contract to another address (recipient)
function transferEther(address payable recipient, uint amount) public returns(bool){
// checking that only contract owner can send ether from the contract to another address
require(owner == msg.sender, "Transfer failed, you are not the owner!!");
if (amount <= getBalance()){
// transfering the amount of wei from the contract to the recipient address
// anyone who can call this function have access to the contract's funds
recipient.transfer(amount);
return true;
}else{
return false;
}
}
}
//SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.9;
contract DynamicArrays {
uint[] private numbers;
function addElement(uint item) public {
numbers.push(item);
}
function getElement(uint index) public view returns(uint) {
return numbers[index];
}
function getLength() public view returns(uint) {
return numbers.length;
}
function getNumbers() public view returns(uint[] memory){
return numbers;
}
function popElement() public {
numbers.pop();
}
function createNew() public {
uint[] memory y = new uint[](3);
y[0] = 10;
y[2] = 30;
numbers = y;
}
}
//SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.5.0 <0.9.0;
contract FixedSizeArrays{
// declaring a fixed-size array of type uint with 3 elements
uint[3] public numbers = [2, 3, 4];
// declaring fixed-size arrays of type bytes
bytes1 public b1;
bytes2 public b2;
bytes3 public b3;
//.. up to bytes32
// changing an element of the array at a specific index
function setElement(uint index, uint value) public{
numbers[index] = value;
}
// returning the number of elements in the array
function getLength() public view returns(uint){
return numbers.length;
}
// setting bytes arrays
function setBytesArray() public{
b1 = 'a'; // => 0x61 (ASCII code of `a` in hex)
b2 = 'ab'; // => 0x6162
b3 = 'z'; // => 0x7A
// b3[0] = 'a'; // ERROR => can not change individual bytes
// byte is an alias for bytes1 on older code
}
}
//SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.9;
contract GlobalVars{
// the current time as a timestamp (seconds from 01 Jan 1970)
uint public this_moment = block.timestamp; // `now` is deprecated and is an alias to block.timestamp)
// the current block number
uint public block_number = block.number;
// the block difficulty
uint public difficulty = block.difficulty;
// the block gas limit
uint public gaslimit = block.gaslimit;
address public owner;
uint public sentValue;
constructor(){
// msg.sender is the address that interacts with the contract (deploys it in this case)
owner = msg.sender;
}
function changeOwner() public{
// msg.sender is the address that interacts with the contract (calls the function in this case)
owner = msg.sender;
}
function sendEther() public payable{ // must be payable to receive ETH with the transaction
// msg.value is the value of wei sent in this transaction (when calling the function)
sentValue = msg.value;
}
// returning the balance of the contract
function getBalance() public view returns(uint){
return address(this).balance;
}
}
//SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.9;
struct Instructor {
uint age;
string name;
address addr;
}
enum State{Open,Closed,Unknown}
contract Academy{
Instructor public academyInstructor;
State public academyState = State.Open;
constructor(uint _age, string memory _name) {
academyInstructor.age = _age;
academyInstructor.name = _name;
academyInstructor.addr = msg.sender;
}
function changeInstructor(uint _age, string memory _name, address _addr) public {
if(academyState == State.Open){
Instructor memory newInstructor = Instructor({
age: _age,
name: _name,
addr: _addr
});
academyInstructor = newInstructor;
}
}
}
// the struct can be used in any contract declared in this file
contract School{
Instructor public schoolInstructor;
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.9;
contract Property {
uint public price;
string public location;
//immutable can only be initialised inline or in constructor
address immutable public owner;
//constant are initialised inline when deployinng contract
uint constant area = 100;
//contructor is called only once when new instance of contract is deployed
constructor(uint _price, string memory _location){
price = _price;
location = _location;
owner = msg.sender;
}
//memory keyword is used for non reference types
function setLocation(string memory _location) public {
location = _location;
}
//memory keyword is not used for reference types
function setValue(uint _price) public {
price = _price;
}
//pure/view is used when contract state is not changed
function getArea() public pure returns(uint) {
return area;
}
}
//SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.5.0 <0.9.0;
contract A{
int public x = 10;
int y = 20; // internal by default
// public function
function get_y() public view returns(int){
return y;
}
// private function, can be called only within this contract (not within derived contracts)
function f1() private view returns(int){
return x;
}
function f2() public view returns(int){
int a;
a = f1(); // can call f1
return a;
}
// can be called only within this contract and derived ones
function f3() internal view returns(int){
return x;
}
// can be called only from external contracts and application (more efficient than public)
function f4() external view returns(int){
return x;
}
function f5() public view returns(int){
int b;
// b = f4(); // ERROR => f4() is external
b = f3(); // OK => f3() is internal
b = f1(); // OK => f1() is private
return b;
}
}
// B dirives from A
contract B is A{
int public xx = f3(); // can call an internal function
// int public yy = f1(); // ERROR => f1() is private and cannot be called from derived contracts
}
contract C{
A public contract_a = new A(); // C deploys A
int public xx = contract_a.f4(); // OK => f4() is external
// int public y = contract_a.f1(); // ERROR => f1() is private
// int public yy = contract_a.f3(); // ERROR => f3() is internal
}
This file has been truncated, but you can view the full file.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"extract_byte_array_length": {
"entryPoint": 518,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 471,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:516:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "244:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "254:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "268:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "274:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "264:3:1"
},
"nodeType": "YulFunctionCall",
"src": "264:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "254:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "285:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "315:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "321:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "311:3:1"
},
"nodeType": "YulFunctionCall",
"src": "311:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "289:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "362:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "376:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "390:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "398:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "386:3:1"
},
"nodeType": "YulFunctionCall",
"src": "386:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "376:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "342:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "335:6:1"
},
"nodeType": "YulFunctionCall",
"src": "335:26:1"
},
"nodeType": "YulIf",
"src": "332:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "465:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "479:16:1"
},
"nodeType": "YulFunctionCall",
"src": "479:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "479:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "429:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "452:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "460:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "449:2:1"
},
"nodeType": "YulFunctionCall",
"src": "449:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "426:2:1"
},
"nodeType": "YulFunctionCall",
"src": "426:38:1"
},
"nodeType": "YulIf",
"src": "423:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "228:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "237:6:1",
"type": ""
}
],
"src": "193:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526040518060400160405280600381526020017f61626300000000000000000000000000000000000000000000000000000000008152506000908051906020019061004f9291906100ae565b506040518060400160405280600381526020017f61626300000000000000000000000000000000000000000000000000000000008152506001908051906020019061009b929190610134565b503480156100a857600080fd5b50610238565b8280546100ba90610206565b90600052602060002090601f0160209004810192826100dc5760008555610123565b82601f106100f557805160ff1916838001178555610123565b82800160010185558215610123579182015b82811115610122578251825591602001919060010190610107565b5b50905061013091906101ba565b5090565b82805461014090610206565b90600052602060002090601f01602090048101928261016257600085556101a9565b82601f1061017b57805160ff19168380011785556101a9565b828001600101855582156101a9579182015b828111156101a857825182559160200191906001019061018d565b5b5090506101b691906101ba565b5090565b5b808211156101d35760008160009055506001016101bb565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061021e57607f821691505b60208210811415610232576102316101d7565b5b50919050565b61062f806102476000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633a7d22bc1461005c5780633f2273b31461008c5780636cc014de14610096578063be1c766b146100b4578063ee495002146100d2575b600080fd5b6100766004803603810190610071919061038a565b6100f0565b60405161008391906103f2565b60405180910390f35b61009461015a565b005b61009e61021e565b6040516100ab91906104a6565b60405180910390f35b6100bc6102ac565b6040516100c991906104d7565b60405180910390f35b6100da6102c1565b6040516100e79190610547565b60405180910390f35b6000808281546100ff90610598565b811061010e5761010d6105ca565b5b81546001161561012d5790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000029050919050565b60008080548061016990610598565b80601f81146101775761018d565b83600052602060002060ff1984168155603f9350505b506002820183556001810192505050600190038154600116156101bf5790600052602060002090602091828204019190065b7f780000000000000000000000000000000000000000000000000000000000000090919091601f036101000a81548160ff021916907f010000000000000000000000000000000000000000000000000000000000000084040217905550565b6001805461022b90610598565b80601f016020809104026020016040519081016040528092919081815260200182805461025790610598565b80156102a45780601f10610279576101008083540402835291602001916102a4565b820191906000526020600020905b81548152906001019060200180831161028757829003601f168201915b505050505081565b60008080546102ba90610598565b9050905090565b600080546102ce90610598565b80601f01602080910402602001604051908101604052809291908181526020018280546102fa90610598565b80156103475780601f1061031c57610100808354040283529160200191610347565b820191906000526020600020905b81548152906001019060200180831161032a57829003601f168201915b505050505081565b600080fd5b6000819050919050565b61036781610354565b811461037257600080fd5b50565b6000813590506103848161035e565b92915050565b6000602082840312156103a05761039f61034f565b5b60006103ae84828501610375565b91505092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6103ec816103b7565b82525050565b600060208201905061040760008301846103e3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561044757808201518184015260208101905061042c565b83811115610456576000848401525b50505050565b6000601f19601f8301169050919050565b60006104788261040d565b6104828185610418565b9350610492818560208601610429565b61049b8161045c565b840191505092915050565b600060208201905081810360008301526104c0818461046d565b905092915050565b6104d181610354565b82525050565b60006020820190506104ec60008301846104c8565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610519826104f2565b61052381856104fd565b9350610533818560208601610429565b61053c8161045c565b840191505092915050565b60006020820190508181036000830152610561818461050e565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806105b057607f821691505b602082108114156105c4576105c3610569565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220fd866f496a0b6df593e8cbe36c26c3d29644999b96524058727ab92daeca48bd64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6162630000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4F SWAP3 SWAP2 SWAP1 PUSH2 0xAE JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6162630000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x9B SWAP3 SWAP2 SWAP1 PUSH2 0x134 JUMP JUMPDEST POP CALLVALUE DUP1 ISZERO PUSH2 0xA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x238 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0xBA SWAP1 PUSH2 0x206 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0xDC JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x123 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0xF5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x123 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x123 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x122 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x107 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x130 SWAP2 SWAP1 PUSH2 0x1BA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x140 SWAP1 PUSH2 0x206 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x162 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1A9 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x17B JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x1A9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1A9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1A8 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x18D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1BA JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1BB JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x21E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x232 JUMPI PUSH2 0x231 PUSH2 0x1D7 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x62F DUP1 PUSH2 0x247 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3A7D22BC EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x3F2273B3 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x6CC014DE EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0xBE1C766B EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xEE495002 EQ PUSH2 0xD2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH2 0xF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x94 PUSH2 0x15A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9E PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x4A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBC PUSH2 0x2AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC9 SWAP2 SWAP1 PUSH2 0x4D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDA PUSH2 0x2C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE7 SWAP2 SWAP1 PUSH2 0x547 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 SLOAD PUSH2 0xFF SWAP1 PUSH2 0x598 JUMP JUMPDEST DUP2 LT PUSH2 0x10E JUMPI PUSH2 0x10D PUSH2 0x5CA JUMP JUMPDEST JUMPDEST DUP2 SLOAD PUSH1 0x1 AND ISZERO PUSH2 0x12D JUMPI SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x20 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD JUMPDEST SWAP1 SLOAD SWAP1 BYTE PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 MUL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD DUP1 PUSH2 0x169 SWAP1 PUSH2 0x598 JUMP JUMPDEST DUP1 PUSH1 0x1F DUP2 EQ PUSH2 0x177 JUMPI PUSH2 0x18D JUMP JUMPDEST DUP4 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0xFF NOT DUP5 AND DUP2 SSTORE PUSH1 0x3F SWAP4 POP POP JUMPDEST POP PUSH1 0x2 DUP3 ADD DUP4 SSTORE PUSH1 0x1 DUP2 ADD SWAP3 POP POP POP PUSH1 0x1 SWAP1 SUB DUP2 SLOAD PUSH1 0x1 AND ISZERO PUSH2 0x1BF JUMPI SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x20 SWAP2 DUP3 DUP3 DIV ADD SWAP2 SWAP1 MOD JUMPDEST PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 SWAP1 SWAP2 PUSH1 0x1F SUB PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 PUSH32 0x100000000000000000000000000000000000000000000000000000000000000 DUP5 DIV MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH2 0x22B SWAP1 PUSH2 0x598 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x257 SWAP1 PUSH2 0x598 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x279 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2A4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x287 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD PUSH2 0x2BA SWAP1 PUSH2 0x598 JUMP JUMPDEST SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x2CE SWAP1 PUSH2 0x598 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2FA SWAP1 PUSH2 0x598 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x347 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x31C JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x347 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x32A JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x367 DUP2 PUSH2 0x354 JUMP JUMPDEST DUP2 EQ PUSH2 0x372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x384 DUP2 PUSH2 0x35E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A0 JUMPI PUSH2 0x39F PUSH2 0x34F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3AE DUP5 DUP3 DUP6 ADD PUSH2 0x375 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3EC DUP2 PUSH2 0x3B7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x407 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x447 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x42C JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x456 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x478 DUP3 PUSH2 0x40D JUMP JUMPDEST PUSH2 0x482 DUP2 DUP6 PUSH2 0x418 JUMP JUMPDEST SWAP4 POP PUSH2 0x492 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x429 JUMP JUMPDEST PUSH2 0x49B DUP2 PUSH2 0x45C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4C0 DUP2 DUP5 PUSH2 0x46D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4D1 DUP2 PUSH2 0x354 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4EC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x519 DUP3 PUSH2 0x4F2 JUMP JUMPDEST PUSH2 0x523 DUP2 DUP6 PUSH2 0x4FD JUMP JUMPDEST SWAP4 POP PUSH2 0x533 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x429 JUMP JUMPDEST PUSH2 0x53C DUP2 PUSH2 0x45C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x561 DUP2 DUP5 PUSH2 0x50E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x5B0 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x5C4 JUMPI PUSH2 0x5C3 PUSH2 0x569 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT DUP7 PUSH16 0x496A0B6DF593E8CBE36C26C3D2964499 SWAP12 SWAP7 MSTORE BLOCKHASH PC PUSH19 0x7AB92DAECA48BD64736F6C634300080B003300 ",
"sourceMap": "62:475:0:-:0;;;93:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;122:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;62:475;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:320;237:6;274:1;268:4;264:12;254:22;;321:1;315:4;311:12;342:18;332:81;;398:4;390:6;386:17;376:27;;332:81;460:2;452:6;449:14;429:18;426:38;423:84;;;479:18;;:::i;:::-;423:84;244:269;193:320;;;:::o;62:475:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@addElement_29": {
"entryPoint": 346,
"id": 29,
"parameterSlots": 0,
"returnSlots": 0
},
"@b1_4": {
"entryPoint": 705,
"id": 4,
"parameterSlots": 0,
"returnSlots": 0
},
"@getElement_19": {
"entryPoint": 240,
"id": 19,
"parameterSlots": 1,
"returnSlots": 1
},
"@getLength_38": {
"entryPoint": 684,
"id": 38,
"parameterSlots": 0,
"returnSlots": 1
},
"@s1_7": {
"entryPoint": 542,
"id": 7,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_t_uint256": {
"entryPoint": 885,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 906,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes1_to_t_bytes1_fromStack": {
"entryPoint": 995,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 1294,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1133,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1224,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_bytes1__to_t_bytes1__fromStack_reversed": {
"entryPoint": 1010,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 1351,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1190,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1239,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 1266,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 1037,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 1277,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 1048,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_bytes1": {
"entryPoint": 951,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 852,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 1065,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1432,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 1385,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 1482,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 847,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1116,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_uint256": {
"entryPoint": 862,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4921:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "597:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "607:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "629:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "616:12:1"
},
"nodeType": "YulFunctionCall",
"src": "616:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "607:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "672:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "645:26:1"
},
"nodeType": "YulFunctionCall",
"src": "645:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "645:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "575:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "583:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "591:5:1",
"type": ""
}
],
"src": "545:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "756:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "802:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "804:77:1"
},
"nodeType": "YulFunctionCall",
"src": "804:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "804:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "777:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "786:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "773:3:1"
},
"nodeType": "YulFunctionCall",
"src": "773:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "798:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "769:3:1"
},
"nodeType": "YulFunctionCall",
"src": "769:32:1"
},
"nodeType": "YulIf",
"src": "766:119:1"
},
{
"nodeType": "YulBlock",
"src": "895:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "910:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "924:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "914:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "939:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "985:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "994:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "949:20:1"
},
"nodeType": "YulFunctionCall",
"src": "949:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "939:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "726:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "737:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "749:6:1",
"type": ""
}
],
"src": "690:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1069:105:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1079:89:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1094:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1101:66:1",
"type": "",
"value": "0xff00000000000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1090:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1090:78:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1079:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1051:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1061:7:1",
"type": ""
}
],
"src": "1025:149:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1243:52:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1260:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1282:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes1",
"nodeType": "YulIdentifier",
"src": "1265:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1265:23:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1253:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1253:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "1253:36:1"
}
]
},
"name": "abi_encode_t_bytes1_to_t_bytes1_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1231:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1238:3:1",
"type": ""
}
],
"src": "1180:115:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1397:122:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1407:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1419:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1430:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1415:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1415:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1407:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1485:6
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment