2416e8cc-9d13-457e-86d4-d4508072ea06
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30472 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 103691 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 103692 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 103693 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 103694 | capability.graph | complete | 1 / 3 | 1 week ago |
| 103695 | detector.run | complete | 1 / 3 | 1 week ago |
| 103696 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1257358] OpenAI Codex v0.77.0 (research preview)
[codex:1257358] --------
[codex:1257358] workdir: /tmp/codex-multi-yg56dzmp
[codex:1257358] model: gpt-5.2-codex
[codex:1257358] provider: openai
[codex:1257358] approval: never
[codex:1257358] sandbox: read-only
[codex:1257358] reasoning effort: xhigh
[codex:1257358] reasoning summaries: auto
[codex:1257358] session id: 019b6930-27a1-7061-a898-0b8bfa16cada
[codex:1257358] --------
[codex:1257358] user
[codex:1257358] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:1257358] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:1257358]
[codex:1257358] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:1257358]
[codex:1257358] Output MUST be valid JSON matching the provided schema.
[codex:1257358] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:1257358] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:1257358]
[codex:1257358] Output constraints (IMPORTANT):
[codex:1257358] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1257358] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1257358] mcp startup: no servers
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Reading BYTECODE_BUNDLE file**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc ls in /tmp/codex-multi-yg56dzmp succeeded in 5ms:
[codex:1257358] BYTECODE_BUNDLE.txt
[codex:1257358] codex-output-schema.json
[codex:1257358] exec
[codex:1257358] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-yg56dzmp succeeded in 5ms:
[codex:1257358] Runtime bytecode bundle for best-effort auditing.
[codex:1257358] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1257358]
[codex:1257358] FILE: runtime_bytecode.hex
[codex:1257358] 0x60806040526004361015610011575f80fd5b5f3560e01c80630130c4d21461356457806301ffc9a71461350e57806306fdde0314613451578063095ea7b31461342b5780630f45684a14612725578063106e846b1461340057806310a470ab14612f43578063113ac8f614612f2857806315770f9214612eff57806318160ddd14612ed65780631820cabb14612e9c5780631e8e51da14612e7357806323b872dd14612d34578063248a9ca314612cfd57806327f9237614612ccf57806328f079c214612c9e5780632b3afdb01461279b5780632f2ff15d14612751578063313ce5671461272557806336448777146126fc5780633644e515146126e257806336568abe1461269e57806338898ca21461264a5780633dc69f2c146123d75780633e0dc34e1461239b5780633f668d6f1461234d5780633fc03c261461222857806340c10f1914611f6257806343469f3214611f115780634f1ef28614611d2657806351fe0e1814611cf157806352d1902d14611c8b5780635879445614611c62578063601c186114611b7f57806360b71d4e14611b5657806361b01b5d14611b1a578063641ffaa1146119c75780636780a3111461199657806370a082311461195257806372e30f6a1461186d578063754f56e21461183f578063785ffb37146118055780637ecebe00146117ae5780637fb652651461178557806384b0196e1461163357806388cb0df7146115175780638c66d04f146114c05780638cdc1f24146113b95780638d55de631461132f57806390c83e94146112c557806391d148541461126f57806392c883fb146110e957806395d89b4114610ff357806396c82e5714610fca57806399a22d6814610f995780639bb8111914610f705780639c3701a014610f505780639d3c38c514610ed0578063a217fddf14610eb6578063a9059cbb14610e85578063ad3cb1cc14610e3e578063af8214ef14610e04578063b00eb9fe14610dd2578063b4d1d79514610d98578063b6192d0b14610c09578063b81d85f014610b60578063c0dca06e146109d3578063c646b16614610931578063ca981909146108f7578063cdfed0ab146108bb578063d505accf14610765578063d547741f14610714578063dd62ed3e1461069b578063e065608b146104e7578063e1a45218146104cb578063e465eb9e146104a2578063e46e705814610473578063e5b15b52146103e8578063fc0c546a146103b65763feb56b1514610389575f80fd5b346103b2575f3660031901126103b25760205f516020615cdd5f395f51905f5254604051908152f35b5f80fd5b346103b2575f3660031901126103b25760206001600160a01b035f516020615d1d5f395f51905f525416604051908152f35b346103b25761046f61041361040e6103ff36614112565b906104086143b1565b506149bd565b614435565b6040519182918291909160e080610100830194805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015201511515910152565b0390f35b346103b2575f3660031901126103b257602060ff5f516020615afd5f395f51905f525460081c16604051908152f35b346103b2575f3660031901126103b25760205f516020615b3d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760206040516127108152f35b346103b25760a03660031901126103b257610500613fea565b602435604435916064358015158091036103b257608435918215158093036103b25761052a614921565b612710841161065857612710851161061757907fdef0a5f359f70f4feaf27bbd47c7e476348ea79108e46990d5b73efbc885f0379460a094939215159360ff195f516020615c9d5f395f51905f52541660ff8616175f516020615c9d5f395f51905f5255807f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0955815f516020615c1d5f395f51905f52555f516020615c9d5f395f51905f525462ff00008560101b169061ff008560081b169062ffff00191617175f516020615c9d5f395f51905f52556040519485526020850152604084015260608301526080820152a1005b6040516338d06e1d60e01b815260606004820152600960648201526806c7044656c746142560bc1b608482015260248101869052612710604482015260a490fd5b6040516338d06e1d60e01b815260606004820152600b60648201526a07377617044656c746142560ac1b608482015260248101859052612710604482015260a490fd5b346103b25760403660031901126103b2576106b4613fa8565b6001600160a01b036106fe6106c7613fbe565b926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f52602052602060405f2054604051908152f35b346103b25760403660031901126103b257610763600435610733613fbe565b9061075e610759825f525f516020615c5d5f395f51905f52602052600160405f20015490565b614970565b61507a565b005b346103b25760e03660031901126103b25761077e613fa8565b610786613fbe565b604435906064359260843560ff811681036103b2578442116108a85761087e6108756001600160a01b039283851697885f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528b6040840152878a1660608401528a608084015260a083015260c082015260c0815261084360e08261408d565b51902061084e6157f6565b906040519161190160f01b83526002830152602282015260c43591604260a435922061585d565b909291926158df565b16848103610891575061076393506156b8565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0954604051908152f35b346103b2575f3660031901126103b25760206040517f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e21028152f35b346103b2577f5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac246109ce610963366140f8565b61096e939193614921565b8061097985856149bd565b6109a18261099c60025f516020615b9d5f395f51905f52549401938454906145d3565b6145c6565b5f516020615b9d5f395f51905f525555604051938493846040919493926060820195825260208201520152565b0390a1005b346103b25760206109e336613ff9565b6109f29592919594939461487d565b6109fa6148b2565b5f90610afa575b610a195f516020615cdd5f395f51905f5254836145e0565b600190468503610ae9575b81610ac0575b5015610aad57507fcf0b8bea497be617351b2c1a4243bd9e92167fdf778a43ebb66fb37160594a0f9394610a8f9160019660405195869586916080936001600160a01b0391979695929760a08501988552602085015216604083015260608201520152565b0390a15b5f5f516020615cfd5f395f51905f525d6040519015158152f35b945050505050610abb61545c565b610a93565b610ae39150866001600160a01b035f516020615d1d5f395f51905f5254166153d7565b88610a2a565b9050610af48161523c565b90610a24565b85151580610b4e575b610b27575b6005610b1485856149bd565b01610b208382546145d3565b9055610a01565b610b48610b425f516020615cdd5f395f51905f5254886145e0565b86615531565b50610b08565b506001600160a01b0385161515610b03565b346103b25760a03660031901126103b257610b79613fd4565b60843590610b8561487d565b610b8d6148b2565b81151580610bf7575b610bcd575b6005610bab6024356004356149bd565b01610bb960643582546145d3565b90555f5f516020615cfd5f395f51905f525d005b610be9610bef925f516020615cdd5f395f51905f5254906145e0565b90615531565b508080610b9b565b506001600160a01b0381161515610b96565b346103b257610c4360c0610c2d610c1f3661417a565b959261040894929194614494565b935f516020615cdd5f395f51905f5254906145f3565b927f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b549060ff5f516020615afd5f395f51905f525416610c81614a5f565b5f516020615a7d5f395f51905f5254905f516020615cbd5f395f51905f52549260405195610cae87614038565b308752602087015260408601526060850152608084015260a08301526001600160a01b035f516020615bbd5f395f51905f52541691610d036040519687958694859463143273dd60e21b865260048601614514565b03915afa8015610d8d5761046f915f91610d5e575b506040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b610d80915060c03d60c011610d86575b610d78818361408d565b8101906144c4565b82610d18565b503d610d6e565b6040513d5f823e3d90fd5b346103b2575f3660031901126103b25760206040517f0000000000000000000000000000000000000000000000000000000000001c208152f35b346103b2575f3660031901126103b25760206001600160a01b035f516020615bbd5f395f51905f525416604051908152f35b346103b2575f3660031901126103b25760206040517f000000000000000000000000000000000000000000000000000000174876e8008152f35b346103b2575f3660031901126103b25761046f604051610e5f60408261408d565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613f84565b346103b25760403660031901126103b257610eab610ea1613fa8565b6024359033614de4565b602060405160018152f35b346103b2575f3660031901126103b25760206040515f8152f35b346103b25760203660031901126103b2577fc0aea4cb7421bc8d3cf83582abe451bd1705682eb83b02b88889940492aef5ca6020610f0c613fea565b610f14614921565b5f516020615d1d5f395f51905f52805460ff60a01b191691151560a090811b60ff60a01b169290921790819055604051911c60ff1615158152a1005b346103b2575f3660031901126103b257610f68614921565b6107636154c4565b346103b2575f3660031901126103b25760205f516020615cbd5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f525460081c166040519015158152f35b346103b2575f3660031901126103b25760205f516020615b9d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b2576040515f5f516020615b1d5f395f51905f525461101f816141fd565b80845290600181169081156110c5575060011461105b575b61046f836110478185038261408d565b604051918291602083526020830190613f84565b5f516020615b1d5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b8082106110ab57509091508101602001611047611037565b919260018160209254838588010152019101909291611093565b60ff191660208086019190915291151560051b840190910191506110479050611037565b346103b2576101403660031901126103b257600435611106613fd4565b90611110366140af565b91610124359081151582036103b25760409361112a61487d565b6111326148b2565b5f92611240575b80519261116461114f60808401958651906145c6565b5f516020615cdd5f395f51905f5254906145e0565b946001904603611231575b80611209575b156111f857507f82f23eb0ffa46ea98b1a7134447f74561cec3e194d0f1d06ffc35ce71ae80336916080916111b060019582519051906145c6565b9060606020820151910151916001600160a01b038951941684526020840152878301526060820152a15b5f5f516020615cfd5f395f51905f525d825191825215156020820152f35b9250505061120461545c565b6111da565b5061122c85846001600160a01b035f516020615d1d5f395f51905f5254166153d7565b611175565b5061123b8561523c565b61116f565b61124981615117565b60a0810151611268600561125f602435886149bd565b019182546145d3565b9055611139565b346103b25760403660031901126103b257611288613fbe565b6004355f525f516020615c5d5f395f51905f526020526001600160a01b0360405f2091165f52602052602060ff60405f2054166040519015158152f35b346103b25760203660031901126103b2576004356112e1614921565b7f0320c21101a3b92f1a57a1daef0827408be5f6cb7bb44fb426cc4152663e611d6020604051838152a17f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d55005b346103b25760203660031901126103b2575f516020615b5d5f395f51905f525480156113855761137d61114f6020926113785f516020615a7d5f395f51905f52546004356145e0565b6145f3565b604051908152f35b604051634612b38f60e01b815260206004820152600b60248201526a746f74616c537570706c7960a81b6044820152606490fd5b346103b25760203660031901126103b2576113d2613fa8565b6113da614921565b6001600160a01b03811615611495575f516020615d5d5f395f51905f52549081156114865761141b610763925f516020615cdd5f395f51905f5254906145e0565b5f5f516020615d5d5f395f51905f5255604080516001600160a01b0384168152602081018390529192917f0a7a10dab02ee70c589a87e2b0d57484d85d029e381c3ca52387e25486a4c5389190a16001600160a01b035f516020615d1d5f395f51905f525416615202565b636e63c7c360e01b5f5260045ffd5b604051636bc37c5f60e11b8152602060048201526002602482015261746f60f01b6044820152606490fd5b346103b25760203660031901126103b2576001600160a01b036114e1613fa8565b6114e9614921565b166001600160a01b03195f516020615bbd5f395f51905f525416175f516020615bbd5f395f51905f52555f80f35b346103b25761152536614112565b906040519061153382614071565b5f825260208201905f825261154661487d565b61154e6148b2565b61155884826149bd565b90600160ff60078401541615150361161c57506040935f7f0aeafd14584f8a6bfe6b3846da893395e218188cb3ba5586a705848f7fbcb1ad926115c66115b15f516020615a7d5f395f51905f52546002840154906145e0565b5f516020615b9d5f395f51905f5254906145f3565b855260068101906115e16005835492838a52019182546145c6565b90555583518351865192835260208301919091526040820152606090a15f5f516020615cfd5f395f51905f525d825191518252516020820152f35b8490631c6768ad60e21b5f5260045260245260445ffd5b346103b2575f3660031901126103b2577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10054158061175c575b15611717576116bb61167c614235565b611684614304565b60206116c960405192611697838561408d565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190613f84565b908582036040870152613f84565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061170057505050500390f35b8351855286955093810193928101926001016116f1565b60405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101541561166c565b346103b25760203660031901126103b2576107636117a1613fea565b6117a96148b2565b614b06565b346103b25760203660031901126103b2576001600160a01b036117cf613fa8565b165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b346103b2575f3660031901126103b25760206040517f0000000000000000000000000000000000000000000000000000000ba43b74008152f35b346103b2575f3660031901126103b257602060ff5f516020615bfd5f395f51905f5254166040519015158152f35b346103b25760803660031901126103b25760043560243560403660431901126103b2577fdbbc76676cb73b8d1c33378e0cdc88f364e4203cfa5b1e4c7d15b66b5cb97f0c916119356040516118c181614071565b6044358152602081019060643582526118d861487d565b6118e06148b2565b60046118ec86866149bd565b600381016118fd81548551906145c6565b9055019182549051928380920361194a575b505051604051948594859094939260609260808301968352602083015260408201520152565b0390a15f5f516020615cfd5f395f51905f525d005b55818761190f565b346103b25760203660031901126103b2576001600160a01b03611973613fa8565b165f525f516020615abd5f395f51905f52602052602060405f2054604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615d1d5f395f51905f525460a01c166040519015158152f35b346103b2576119d53661417a565b6119e093919361487d565b6119e86148b2565b6001600160a01b03841615611aeb578381611a60611a2a611935947f5f8ecf683e1923224ca1e9b396be6a7a13e480a011e7645d641e7a7d3a2d0f0398614eb5565b5f516020615c9d5f395f51905f525460ff8116158015611aaa575b611a95575b505f516020615cdd5f395f51905f5254906145e0565b9160405195869586916080936001600160a01b0391979695929760a08501988552602085015216604083015260608201520152565b60ff611aa49160101c16614b06565b88611a4a565b505f516020615c7d5f395f51905f5254612710611ae45f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b0410611a45565b604051636bc37c5f60e11b8152602060048083019190915260248201526366726f6d60e01b6044820152606490fd5b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d54604051908152f35b346103b2575f3660031901126103b25760205f516020615d5d5f395f51905f5254604051908152f35b346103b2576040611b8f366140f8565b611b9761487d565b611b9f6148b2565b6003611bab83856149bd565b01918254938483115f14611c2a578394505f611beb7f9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a9019894955480966145d3565b9495555b855190815260208101919091526040810184905260608101839052608090a15f5f516020615cfd5f395f51905f525d82519182526020820152f35b92611c58837f9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a901989493966145d3565b9055925f92611bef565b346103b2575f3660031901126103b25760205f516020615d3d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b2576001600160a01b037f00000000000000000000000009019548ef289cf2694530b7a22420ad9f891582163003611ce25760206040515f516020615bdd5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b346103b25760203660031901126103b257602061137d611d215f516020615cdd5f395f51905f52546004356145f3565b61519a565b60403660031901126103b257611d3a613fa8565b60243567ffffffffffffffff81116103b257366023820112156103b257611d6b903690602481600401359101614144565b6001600160a01b037f00000000000000000000000009019548ef289cf2694530b7a22420ad9f89158216803014908115611eef575b50611ce257611dad614921565b6040516352d1902d60e01b81526001600160a01b0383169290602081600481875afa5f9181611ebb575b50611def5783634c9c8ce360e01b5f5260045260245ffd5b805f516020615bdd5f395f51905f52859203611ea95750813b15611e9757806001600160a01b03195f516020615bdd5f395f51905f525416175f516020615bdd5f395f51905f52557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115611e7f575f8083602061076395519101845af4611e796153a8565b91615a02565b505034611e8857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611ee7575b81611ed76020938361408d565b810103126103b257519085611dd7565b3d9150611eca565b90506001600160a01b035f516020615bdd5f395f51905f525416141583611da0565b346103b257611f1f36614112565b90611f28614921565b6007611f3483836149bd565b019182549160ff8316611f4d5760ff1983166001178455005b634e06b75f60e11b5f5260045260245260445ffd5b346103b25760403660031901126103b257611f7b613fa8565b602435611f8661487d565b611f8e6148b2565b611fb98161099c5f516020615a7d5f395f51905f52545f516020615cdd5f395f51905f5254906145e0565b7f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d548082116121e35750505f516020615b9d5f395f51905f5254156121af575f516020615cdd5f395f51905f5254612010916145f3565b612028815f516020615c7d5f395f51905f52546145c6565b5f516020615c7d5f395f51905f525580915f516020615b5d5f395f51905f525480612183575b50612067825f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f52556001600160a01b038116156121705782816120b46020957f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9461574c565b6120de84604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a15f516020615c9d5f395f51905f525460ff811615801561212f575b61211a575b505f5f516020615cfd5f395f51905f525d604051908152f35b60ff6121299160101c16614b06565b82612101565b505f516020615c7d5f395f51905f52546127106121695f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b04106120fc565b63ec442f0560e01b5f525f60045260245ffd5b6121a891935061219390836145e0565b5f516020615a7d5f395f51905f5254906145f3565b918361204e565b604051634612b38f60e01b815260206004820152600b60248201526a1d1bdd185b15d95a59da1d60aa1b6044820152606490fd5b60a49250604051916338d06e1d60e01b835260606004840152601060648401526f6d6178546f74616c4465706f7369747360801b608484015260248301526044820152fd5b346103b25760603660031901126103b257612241613fa8565b60243561224c613fd4565b61225461487d565b61225c6148b2565b816001600160a01b0384168015611aeb576001600160a01b037f285a08d85aaeb56c8b9d22b6877dffaed0cb5d07c1c14494aff61d9524746a12936080936020975f516020615c7d5f395f51905f5254976122b68961519a565b809111612343575b506122cc826122d392614eb5565b80986145d3565b5f516020615c7d5f395f51905f52556123146122fd5f516020615cdd5f395f51905f5254896145e0565b83855f516020615d1d5f395f51905f525416615202565b60405193845287840152856040840152166060820152a15f5f516020615cfd5f395f51905f525d604051908152f35b91506122cc6122be565b346103b25761235b36614112565b905f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20905f52602052602060405f2054604051908152f35b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b54604051908152f35b346103b2576123e5366140f8565b916123ee614921565b5f516020615c3d5f395f51905f525480606411156125ed575f5b81811061259c5750612428845f516020615b9d5f395f51905f52546145c6565b5f516020615b9d5f395f51905f5255815f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20835f5260205260405f20556040519261247a84614054565b8184526020840190838252604085019481865260608101905f825260808101915f835260a082015f815260c08301905f825260e08401945f86525f516020615c3d5f395f51905f525468010000000000000000811015612588578060016124f092015f516020615c3d5f395f51905f52556143ed565b949094612575577f5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac249b6109ce99600797518755516001870155516002860155516003850155516004840155516005830155516006820155019051151560ff80198354169116179055604051938493846040919493926060820195825260208201520152565b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b6125ae6125a8826143ed565b50614435565b848482511491826125df575b50506125c857600101612408565b505063b020eb6360e01b5f5260045260245260445ffd5b6020015114905084876125ba565b600181018091116126365760a490604051906338d06e1d60e01b82526060600483015260086064830152671419595c941bdbdb60c21b6084830152602482015260646044820152fd5b634e487b7160e01b5f52601160045260245ffd5b346103b2576101203660031901126103b257612664613fd4565b5060a0612670366140af565b61267861487d565b6126806148b2565b61268981615117565b0151610bb9600561125f6024356004356149bd565b346103b25760403660031901126103b2576126b7613fbe565b336001600160a01b038216036126d3576107639060043561507a565b63334bd91960e11b5f5260045ffd5b346103b2575f3660031901126103b257602061137d6157f6565b346103b2575f3660031901126103b25760205f516020615c1d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615afd5f395f51905f525416604051908152f35b346103b25760403660031901126103b257610763600435612770613fbe565b90612796610759825f525f516020615c5d5f395f51905f52602052600160405f20015490565b6147d6565b346103b25760a03660031901126103b2576024356004356127ba613fd4565b916064359160843567ffffffffffffffff81116103b257366023820112156103b25780600401359067ffffffffffffffff82116103b25736602483830101116103b25761280561487d565b61280d6148b2565b6001600160a01b038616958615611aeb57600160ff600761282e88886149bd565b015416151503612c86578561284291614eb5565b9460ff5f516020615c9d5f395f51905f525416158015612c45575b6128ea575b918060247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c96959360e09560209a60405198899788528c8801526040870152606086015288608086015260c060a08601528260c086015201848401375f828201840152601f01601f19168101030190a15f5f516020615cfd5f395f51905f525d604051908152f35b5f516020615c7d5f395f51905f5254965f88151580612c2e575b612911575b509650612862565b5f516020615c3d5f395f51905f52549061292a82614629565b5f5f5f516020615a7d5f395f51905f52545f516020615b9d5f395f51905f5254915b868110612bbd575050505f9b81155f14612a5a575050508080612a43575b6129d5575b50509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c5b5f516020615c7d5f395f51905f52546145d3565b5f516020615c7d5f395f51905f5255935093955093959650612909565b8181101561296f576129e6816143ed565b50995f516020615c7d5f395f51905f525460028c0154612a05916145e0565b5f516020615b9d5f395f51905f5254612a1d916145f3565b9081612a28916145c6565b9a60060190815490612a39916145c6565b90556001016129d5565b505f516020615c7d5f395f51905f5254151561296a565b9080929391105f14612b2d575b838110612aa957505050509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c6129a4565b80612ab660019285614af2565b51612ac2575b01612a67565b6006612b15612ad0836143ed565b509e612af986611378612ae3878b614af2565b515f516020615c7d5f395f51905f5254906145e0565b612b038589614af2565b52612b0e8488614af2565b51906145c6565b9d01612b268154612b0e8488614af2565b9055612abc565b50505f5b828110612b72575050509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c6129a4565b80612b7f60019284614af2565b51612b8b575b01612b31565b6006612ba5612b99836143ed565b509d612b0e8487614af2565b9c01612bb68154612b0e8487614af2565b9055612b85565b612bc6816143ed565b50612bed612bdc856113786002850154876145e0565b9160066005820154910154906145c6565b90818111612c00575b505060010161294c565b94612c11612c2692600194976145d3565b612c1b8789614af2565b52612b0e8688614af2565b93905f612bf6565b505f516020615b9d5f395f51905f52541515612904565b505f516020615c7d5f395f51905f5254612710612c7f5f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b041061285d565b505050631c6768ad60e21b5f5260045260245260445ffd5b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f525460101c166040519015158152f35b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f5254166040519015158152f35b346103b25760203660031901126103b257602061137d6004355f525f516020615c5d5f395f51905f52602052600160405f20015490565b346103b25760603660031901126103b257612d4d613fa8565b612d55613fbe565b60443590612d93836001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0333165f5260205260405f2054925f198410612dbb575b610eab9350614de4565b828410612e58576001600160a01b03811615612e45573315612e3257610eab93612e15826001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0333165f526020528360405f2091039055612db1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8284637dc7a0d960e11b5f523360045260245260445260645ffd5b346103b2575f3660031901126103b25760205f516020615c7d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760206040517f00000000000000000000000000000000000000000000000000000000000054608152f35b346103b2575f3660031901126103b25760205f516020615b5d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760205f516020615a7d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060405160648152f35b346103b257612f5136613ff9565b93929091612f5d614494565b50612f6661487d565b612f6e6148b2565b60ff5f516020615d1d5f395f51905f525460a01c166133f1576001600160a01b038216918215611aeb57612fa285886149bd565b93600160ff6007870154161515036133da575f516020615cdd5f395f51905f525496612fd9612fd189866145f3565b9889936145f3565b9360c07f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b549460ff5f516020615afd5f395f51905f5254169561301a614a5f565b5f516020615a7d5f395f51905f5254905f516020615cbd5f395f51905f5254986040519361304785614038565b30855260208501526040840152606083015260808201528660a0820152896001600160a01b035f516020615bbd5f395f51905f5254169161309e6040519e8f958694859463143273dd60e21b865260048601614514565b03915afa988915610d8d575f996133b9575b5088511561334f575060808801926130c98451846145c6565b94806130db60608c01978851906145d3565b1061331d57508351806132fe575b505060408801956131066130fe8851856145d3565b8551906145c6565b600360a08b019282845201918254918083106132e857509261010098959261315961046f9d9996937f9c7519dcf6aef530f7209189ddd559038a69f8bb53f818b7fa76c67379aa6b2c9c999651906145d3565b9055156132ac5761317b613183915f516020615c7d5f395f51905f52546145c6565b8251906145c6565b5f516020615c7d5f395f51905f52555b5f516020615c9d5f395f51905f525460ff8116158015613257575b613242575b508851905191519260208a0151945195604051978852602088015260408701526060860152608085015260a084015260c083015260e0820152a15f5f516020615cfd5f395f51905f525d6040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b60ff6132519160081c16614b06565b8a6131b3565b505f516020615c7d5f395f51905f52546127106132a45f516020615a7d5f395f51905f52547f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0954906145e0565b0411156131ae565b508051806132bb575b50613193565b6132d3905f516020615c7d5f395f51905f52546145c6565b5f516020615c7d5f395f51905f52558a6132b5565b8263c8a198d960e01b5f5260045260245260445ffd5b613307916145d3565b5f516020615cbd5f395f51905f525589806130e9565b8451865160405163463fc77f60e11b815260048101879052602481019290925260448201526064810191909152608490fd5b61337189604061336860608301516020840151906145c6565b910151906145c6565b90600182018092116126365760a49160405191631606f63960e21b8352606060048401526008606484015267185b5bdd5b9d131160c21b608484015260248301526044820152fd5b6133d391995060c03d60c011610d8657610d78818361408d565b978a6130b0565b8588631c6768ad60e21b5f5260045260245260445ffd5b6331ad2c0f60e11b5f5260045ffd5b346103b25760203660031901126103b2576134196143b1565b5061046f6104136125a86004356143ed565b346103b25760403660031901126103b257610eab613447613fa8565b60243590336156b8565b346103b2575f3660031901126103b2576040515f5f516020615a9d5f395f51905f525461347d816141fd565b80845290600181169081156110c557506001146134a45761046f836110478185038261408d565b5f516020615a9d5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106134f457509091508101602001611047611037565b9192600181602092548385880101520191019092916134dc565b346103b25760203660031901126103b25760043563ffffffff60e01b81168091036103b257602090637965db0b60e01b8114908115613553575b506040519015158152f35b6301ffc9a760e01b14905082613548565b346103b25760203660031901126103b25760043567ffffffffffffffff81116103b257806004019061014060031982360301126103b2575f516020615d7d5f395f51905f52549160ff8360401c16159267ffffffffffffffff811680159081613f7c575b6001149081613f72575b159081613f69575b50613f5a5767ffffffffffffffff1981166001175f516020615d7d5f395f51905f525583613f2e575b5061363661361182806141a8565b61362e61362460248795949501866141a8565b9490923691614144565b923691614144565b9061363f61568d565b61364761568d565b80519067ffffffffffffffff82116125885781906136725f516020615a9d5f395f51905f52546141fd565b601f8111613eb4575b50602090601f8311600114613e36575f92613e2b575b50508160011b915f199060031b1c1916175f516020615a9d5f395f51905f52555b80519067ffffffffffffffff8211612588576136db5f516020615b1d5f395f51905f52546141fd565b601f8111613dbc575b50602090601f8311600114613d38579180613733949261372c945f92613d2d575b50508160011b915f199060031b1c1916175f516020615b1d5f395f51905f52555b806141a8565b3691614144565b9161373c61568d565b60409182519361374c848661408d565b60018552603160f81b602086015261376261568d565b80519067ffffffffffffffff821161258857819061378d5f516020615add5f395f51905f52546141fd565b601f8111613cb3575b50602090601f8311600114613c35575f92613c2a575b50508160011b915f199060031b1c1916175f516020615add5f395f51905f52555b835167ffffffffffffffff8111612588576137f55f516020615b7d5f395f51905f52546141fd565b601f8111613bbb575b50602094601f8211600114613b40579481929394955f92613b35575b50508160011b915f199060031b1c1916175f516020615b7d5f395f51905f52555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100555f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015561388961568d565b61389161568d565b6138fb6138a0608483016141db565b60ff806138af60a486016141db565b926138b861568d565b6138c061568d565b16918261ff005f516020615afd5f395f51905f52549260081b169161ffff19161717805f516020615afd5f395f51905f525560081c166145d3565b604d811161263657600a0a5f516020615cdd5f395f51905f525561391d61568d565b61392561568d565b61394f7f0000000000000000000000000000000000000000000000000000000000001c20436145c6565b5f516020615d3d5f395f51905f525561397261396d60e483016141e9565b61465b565b5061398861398361010483016141e9565b61470a565b5060448101357f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b55606481016001600160a01b036139c5826141e9565b1615613b085760c48201906001600160a01b036139e1836141e9565b1615613ad357613a2961012493926001600160a01b03613a0181946141e9565b1683195f516020615d1d5f395f51905f525416175f516020615d1d5f395f51905f52556141e9565b166001600160a01b03195f516020615bbd5f395f51905f525416175f516020615bbd5f395f51905f525501357f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d55613a7d57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29168ff0000000000000000195f516020615d7d5f395f51905f5254165f516020615d7d5f395f51905f52555160018152a1005b8451636bc37c5f60e11b815260206004820152600d60248201526c3332b2a1b0b631bab630ba37b960991b6044820152606490fd5b8351636bc37c5f60e11b81526020600482015260056024820152643a37b5b2b760d91b6044820152606490fd5b01519050858061381a565b601f198216955f516020615b7d5f395f51905f525f52805f20915f5b888110613ba357508360019596979810613b8b575b505050811b015f516020615b7d5f395f51905f525561383b565b01515f1960f88460031b161c19169055858080613b71565b91926020600181928685015181550194019201613b5c565b5f516020615b7d5f395f51905f525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c81019160208410613c20575b601f0160051c01905b818110613c1557506137fe565b5f8155600101613c08565b9091508190613bff565b0151905086806137ac565b5f516020615add5f395f51905f525f9081528281209350601f198516905b818110613c9b5750908460019594939210613c83575b505050811b015f516020615add5f395f51905f52556137cd565b01515f1960f88460031b161c19169055868080613c69565b92936020600181928786015181550195019301613c53565b5f516020615add5f395f51905f525f529091507f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f840160051c81019160208510613d23575b90601f859493920160051c01905b818110613d155750613796565b5f8155849350600101613d08565b9091508190613cfa565b015190508780613705565b90601f198316915f516020615b1d5f395f51905f525f52815f20925f5b818110613da4575092600192859261372c96613733989610613d8c575b505050811b015f516020615b1d5f395f51905f5255613726565b01515f1960f88460031b161c19169055878080613d72565b92936020600181928786015181550195019301613d55565b5f516020615b1d5f395f51905f525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f840160051c81019160208510613e21575b601f0160051c01905b818110613e1657506136e4565b5f8155600101613e09565b9091508190613e00565b015190508680613691565b5f516020615a9d5f395f51905f525f9081528281209350601f198516905b818110613e9c5750908460019594939210613e84575b505050811b015f516020615a9d5f395f51905f52556136b2565b01515f1960f88460031b161c19169055868080613e6a565b92936020600181928786015181550195019301613e54565b5f516020615a9d5f395f51905f525f529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c81019160208510613f24575b90601f859493920160051c01905b818110613f16575061367b565b5f8155849350600101613f09565b9091508190613efb565b68ffffffffffffffffff191668010000000000000001175f516020615d7d5f395f51905f525583613603565b63f92ee8a960e01b5f5260045ffd5b905015856135da565b303b1591506135d2565b8591506135c8565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036103b257565b602435906001600160a01b03821682036103b257565b604435906001600160a01b03821682036103b257565b6004359081151582036103b257565b60c09060031901126103b25760043590602435906044356001600160a01b03811681036103b25790606435906084359060a43580151581036103b25790565b60c0810190811067ffffffffffffffff82111761258857604052565b610100810190811067ffffffffffffffff82111761258857604052565b6040810190811067ffffffffffffffff82111761258857604052565b90601f8019910116810190811067ffffffffffffffff82111761258857604052565b60c09060631901126103b257604051906140c882614038565b6064358252608435602083015260a435604083015260c435606083015260e43560808301526101043560a0830152565b60609060031901126103b257600435906024359060443590565b60409060031901126103b2576004359060243590565b67ffffffffffffffff811161258857601f01601f191660200190565b92919261415082614128565b9161415e604051938461408d565b8294818452818301116103b2578281602093845f960137010152565b60809060031901126103b25760043590602435906044356001600160a01b03811681036103b2579060643590565b903590601e19813603018212156103b2570180359067ffffffffffffffff82116103b2576020019181360383136103b257565b3560ff811681036103b25790565b356001600160a01b03811681036103b25790565b90600182811c9216801561422b575b602083101461421757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161420c565b604051905f825f516020615add5f395f51905f525491614254836141fd565b80835292600181169081156142e5575060011461427a575b6142789250038361408d565b565b505f516020615add5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142c95750509060206142789282010161426c565b60209193508060019154838589010152019101909184926142b1565b6020925061427894915060ff191682840152151560051b82010161426c565b604051905f825f516020615b7d5f395f51905f525491614323836141fd565b80835292600181169081156142e55750600114614346576142789250038361408d565b505f516020615b7d5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143955750509060206142789282010161426c565b602091935080600191548385890101520191019091849261437d565b604051906143be82614054565b5f60e0838281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b5f516020615c3d5f395f51905f5254811015614421575f516020615c3d5f395f51905f525f5260205f209060031b01905f90565b634e487b7160e01b5f52603260045260245ffd5b9060405161444281614054565b60e060ff600783958054855260018101546020860152600281015460408601526003810154606086015260048101546080860152600581015460a0860152600681015460c08601520154161515910152565b604051906144a182614038565b5f60a0838281528260208201528260408201528260608201528260808201520152565b908160c09103126103b25760a0604051916144de83614038565b8051835260208101516020840152604081015160408401526060810151606084015260808101516080840152015160a082015290565b909493926001600160a01b039060ff60076101e09560a061020087019a868151168852602081015160208901528460408201511660408901526060810151606089015260808101516080890152015160a0870152805460c0870152600181015460e08701526002810154610100870152600381015461012087015260048101546101408701526005810154610160870152600681015461018087015201541615156101a0840152166101c08201520152565b9190820180921161263657565b9190820391821161263657565b8181029291811591840414171561263657565b81156145fd570490565b634e487b7160e01b5f52601260045260245ffd5b67ffffffffffffffff81116125885760051b60200190565b9061463382614611565b614640604051918261408d565b8281528092614651601f1991614611565b0190602036910137565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16614705576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f90565b6001600160a01b0381165f9081527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538602052604090205460ff16614705576001600160a01b03165f8181527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c49890853860205260408120805460ff191660011790553391907f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f205416155f1461487757805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f20600160ff198254161790556001600160a01b03339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b5f516020615cfd5f395f51905f525c6148a35760015f516020615cfd5f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b335f9081527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538602052604090205460ff16156148ea57565b63e2517d3f60e01b5f52336004527f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e210260245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561495957565b63e2517d3f60e01b5f52336004525f60245260445ffd5b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0333165f5260205260ff60405f205416156149a75750565b63e2517d3f60e01b5f523360045260245260445ffd5b91905f516020615c3d5f395f51905f525415614a5057825f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20815f52602052614a1160405f20546143ed565b509283828282541491821592614a41575b5050614a2c575050565b6310de8c5160e31b5f5260045260245260445ffd5b6001015414159050825f614a22565b634d6af2e760e11b5f5260045ffd5b602460206001600160a01b035f516020615d1d5f395f51905f525416604051928380926370a0823160e01b82523060048301525afa8015610d8d575f90614abe575b614abb91505f516020615cdd5f395f51905f5254906145f3565b90565b506020813d602011614aea575b81614ad86020938361408d565b810103126103b257614abb9051614aa1565b3d9150614acb565b80518210156144215760209160051b010190565b5f516020615c7d5f395f51905f52549081151580614dcd575b614b27575050565b5f516020615c3d5f395f51905f525490614b4082614629565b5f5f5f516020615a7d5f395f51905f52545f516020615b9d5f395f51905f5254915b868110614d82575050505f9481155f14614c235750505080614c0c575b614bae575b50614b9d905f516020615c7d5f395f51905f52546145d3565b5f516020615c7d5f395f51905f5255565b5f5b818110614bbd5750614b84565b80614bc96001926143ed565b5093614c046006614bfa614bf36115b15f516020615c7d5f395f51905f525460028b0154906145e0565b80946145c6565b96019182546145c6565b905501614bb0565b505f516020615c7d5f395f51905f52541515614b7f565b9080929391105f14614c9857505f5b838110614c465750505050614b9d906129a4565b80614c5360019285614af2565b51614c5f575b01614c32565b6006614c80614c6d836143ed565b5097612af986611378612ae3878b614af2565b9601614c918154612b0e8488614af2565b9055614c59565b9294939215614d1d57614cb9905f516020615c7d5f395f51905f52546145d3565b5f5b858110614cd057505050614b9d9192506129a4565b80614cdc6001926143ed565b5094614d156006614d0b614bf3614cf3868a614af2565b51614d056115b160028d01548b6145e0565b906145c6565b97019182546145c6565b905501614cbb565b505f939192935b828110614d3757505050614b9d906129a4565b80614d4460019284614af2565b51614d50575b01614d24565b6006614d6a614d5e836143ed565b5096612b0e8487614af2565b9501614d7b8154612b0e8487614af2565b9055614d4a565b614d8b816143ed565b50614da1612bdc856113786002850154876145e0565b90818111614db4575b5050600101614b62565b94612c11614dc592600194976145d3565b93905f614daa565b505f516020615b9d5f395f51905f52541515614b1f565b6001600160a01b0316908115614ea2576001600160a01b031691821561217057815f525f516020615abd5f395f51905f5260205260405f2054818110614e8957817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f516020615abd5f395f51905f5284520360405f2055845f525f516020615abd5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b905f516020615b5d5f395f51905f5254918215611385576001600160a01b038116805f525f516020615abd5f395f51905f5260205260405f20548381106150285750614f1e614f175f516020615a7d5f395f51905f52549561137887876145e0565b80956145d3565b5f516020615a7d5f395f51905f52558015614ea257805f525f516020615abd5f395f51905f5260205260405f205483811061500e5781845f927f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a96959484525f516020615abd5f395f51905f52602052036040832055835f516020615b5d5f395f51905f5254035f516020615b5d5f395f51905f52557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051868152a361500884604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a190565b915063391434e360e21b5f5260045260245260445260645ffd5b8360a491604051916338d06e1d60e01b835260606004840152601560648401527f506f6f6c2e5f6275726e4c502e616d6f756e744c500000000000000000000000608484015260248301526044820152fd5b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f2054165f1461487757805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f2060ff1981541690556001600160a01b03339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b60206151899161513960408201515f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f525561516460608201515f516020615cbd5f395f51905f52546145c6565b5f516020615cbd5f395f51905f525501515f516020615d5d5f395f51905f52546145c6565b5f516020615d5d5f395f51905f5255565b5f516020615a7d5f395f51905f525480156151cb57611378614abb925f516020615b5d5f395f51905f5254906145e0565b604051634612b38f60e01b815260206004820152600e60248201526d746f74616c4c697175696469747960901b6044820152606490fd5b61520d8383836153d7565b1561521757505050565b906001600160a01b0380926387abb3dd60e01b5f52166004521660245260445260645ffd5b5f516020615d3d5f395f51905f5254431161539b575b61526a815f516020615b3d5f395f51905f52546145c6565b7f000000000000000000000000000000000000000000000000000000174876e8001061530b57807f0000000000000000000000000000000000000000000000000000000ba43b7400105f146152f557806152e1915f516020615a5d5f395f51905f52555f516020615b3d5f395f51905f52546145c6565b5f516020615b3d5f395f51905f5255600190565b505f5f516020615a5d5f395f51905f5255600190565b505f5f516020615a5d5f395f51905f52555f516020615bfd5f395f51905f525460ff81161561533957505f90565b60019060ff1916175f516020615bfd5f395f51905f52556153887f00000000000000000000000000000000000000000000000000000000000054605f516020615d3d5f395f51905f52546145c6565b5f516020615d3d5f395f51905f52555f90565b6153a36154c4565b615252565b3d156153d2573d906153b982614128565b916153c7604051938461408d565b82523d5f602084013e565b606090565b60405163a9059cbb60e01b602082019081526001600160a01b039390931660248201526044808201949094529283525f92839290839061541860648261408d565b51925af16154246153a8565b8180615452575b615433575090565b90506020818051810103126103b2576020015180151581036103b25790565b508051151561542b565b5f516020615b3d5f395f51905f52545f516020615a5d5f395f51905f5254808210156154a75750505f5f516020615b3d5f395f51905f52555b5f5f516020615a5d5f395f51905f5255565b6154b0916145d3565b5f516020615b3d5f395f51905f5255615495565b6154ee7f0000000000000000000000000000000000000000000000000000000000001c20436145c6565b5f516020615d3d5f395f51905f52555f5f516020615b3d5f395f51905f525560ff195f516020615bfd5f395f51905f5254165f516020615bfd5f395f51905f5255565b91905f516020615b9d5f395f51905f5254156121af575f516020615cdd5f395f51905f525461555f916145f3565b91825f516020615b5d5f395f51905f525480615678575b5061558f845f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f52556001600160a01b0382161561217057816155d9827f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9461574c565b61560385604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a15f516020615c9d5f395f51905f525460ff8116158015615637575b6156285750565b60ff6142789160101c16614b06565b505f516020615c7d5f395f51905f52546127106156715f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b0410615621565b615687915061219390856145e0565b5f615576565b60ff5f516020615d7d5f395f51905f525460401c16156156a957565b631afcd79f60e31b5f5260045ffd5b916001600160a01b038316918215612e45576001600160a01b0316928315612e32577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916157386020926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b855f5282528060405f2055604051908152a3565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206001600160a01b035f93615791865f516020615b5d5f395f51905f52546145c6565b5f516020615b5d5f395f51905f52551693841584146157d457805f516020615b5d5f395f51905f5254035f516020615b5d5f395f51905f52555b604051908152a3565b8484525f516020615abd5f395f51905f528252604084208181540190556157cb565b6157fe615953565b6158066159bd565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261585760c08261408d565b51902090565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116158d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8d575f516001600160a01b038116156158ca57905f905f90565b505f906001905f90565b5050505f9160039190565b600481101561593f57806158f1575050565b600181036159085763f645eedf60e01b5f5260045ffd5b60028103615923575063fce698f760e01b5f5260045260245ffd5b60031461592d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b61595b614235565b805190811561596b576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156159985790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159c5614304565b80519081156159d5576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156159985790565b90615a265750805115615a1757805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580615a53575b615a37575090565b6001600160a01b0390639996b31560e01b5f521660045260245ffd5b50803b15615a2f56fe0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00398b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102363bd9d3ac01b05edede66fbb9c4f73d99f1481666c51eee8df34d23a61f480052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace040ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00152c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10398b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0498b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00298b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0a98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0102dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0598b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0698b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea08363bd9d3ac01b05edede66fbb9c4f73d99f1481666c51eee8df34d23a61f48019b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0c0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea07f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220076251e6cf88c5cf45d9d64dae3d08156d28e9178a57819fd6991e336c62e38164736f6c634300081c0033
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing bytecode for vulnerabilities and patterns**
[codex:1257358]
[codex:1257358] I'm preparing to review this large bytecode blob that looks like an ERC20 token with roles and extra features. There is a lot to unpack—selectors for standard functions, possible minting, access control, and revert strings hinting at DeFi logic. I'll try to spot concrete security issues like missing access control or unchecked external calls by parsing function selectors and reverts. Since source is missing, I'll rely on disassembly and pattern recognition, considering tools and scripts to help map line numbers in the bytecode bundle for better referencing.
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "nl -ba BYTECODE_BUNDLE.txt | sed -n '1,120p'" in /tmp/codex-multi-yg56dzmp succeeded in 6ms:
[codex:1257358] 1 Runtime bytecode bundle for best-effort auditing.
[codex:1257358] 2 Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1257358] 3
[codex:1257358] 4 FILE: runtime_bytecode.hex
[codex:1257358] 5 0x60806040526004361015610011575f80fd5b5f3560e01c80630130c4d21461356457806301ffc9a71461350e57806306fdde0314613451578063095ea7b31461342b5780630f45684a14612725578063106e846b1461340057806310a470ab14612f43578063113ac8f614612f2857806315770f9214612eff57806318160ddd14612ed65780631820cabb14612e9c5780631e8e51da14612e7357806323b872dd14612d34578063248a9ca314612cfd57806327f9237614612ccf57806328f079c214612c9e5780632b3afdb01461279b5780632f2ff15d14612751578063313ce5671461272557806336448777146126fc5780633644e515146126e257806336568abe1461269e57806338898ca21461264a5780633dc69f2c146123d75780633e0dc34e1461239b5780633f668d6f1461234d5780633fc03c261461222857806340c10f1914611f6257806343469f3214611f115780634f1ef28614611d2657806351fe0e1814611cf157806352d1902d14611c8b5780635879445614611c62578063601c186114611b7f57806360b71d4e14611b5657806361b01b5d14611b1a578063641ffaa1146119c75780636780a3111461199657806370a082311461195257806372e30f6a1461186d578063754f56e21461183f578063785ffb37146118055780637ecebe00146117ae5780637fb652651461178557806384b0196e1461163357806388cb0df7146115175780638c66d04f146114c05780638cdc1f24146113b95780638d55de631461132f57806390c83e94146112c557806391d148541461126f57806392c883fb146110e957806395d89b4114610ff357806396c82e5714610fca57806399a22d6814610f995780639bb8111914610f705780639c3701a014610f505780639d3c38c514610ed0578063a217fddf14610eb6578063a9059cbb14610e85578063ad3cb1cc14610e3e578063af8214ef14610e04578063b00eb9fe14610dd2578063b4d1d79514610d98578063b6192d0b14610c09578063b81d85f014610b60578063c0dca06e146109d3578063c646b16614610931578063ca981909146108f7578063cdfed0ab146108bb578063d505accf14610765578063d547741f14610714578063dd62ed3e1461069b578063e065608b146104e7578063e1a45218146104cb578063e465eb9e146104a2578063e46e705814610473578063e5b15b52146103e8578063fc0c546a146103b65763feb56b1514610389575f80fd5b346103b2575f3660031901126103b25760205f516020615cdd5f395f51905f5254604051908152f35b5f80fd5b346103b2575f3660031901126103b25760206001600160a01b035f516020615d1d5f395f51905f525416604051908152f35b346103b25761046f61041361040e6103ff36614112565b906104086143b1565b506149bd565b614435565b6040519182918291909160e080610100830194805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015201511515910152565b0390f35b346103b2575f3660031901126103b257602060ff5f516020615afd5f395f51905f525460081c16604051908152f35b346103b2575f3660031901126103b25760205f516020615b3d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760206040516127108152f35b346103b25760a03660031901126103b257610500613fea565b602435604435916064358015158091036103b257608435918215158093036103b25761052a614921565b612710841161065857612710851161061757907fdef0a5f359f70f4feaf27bbd47c7e476348ea79108e46990d5b73efbc885f0379460a094939215159360ff195f516020615c9d5f395f51905f52541660ff8616175f516020615c9d5f395f51905f5255807f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0955815f516020615c1d5f395f51905f52555f516020615c9d5f395f51905f525462ff00008560101b169061ff008560081b169062ffff00191617175f516020615c9d5f395f51905f52556040519485526020850152604084015260608301526080820152a1005b6040516338d06e1d60e01b815260606004820152600960648201526806c7044656c746142560bc1b608482015260248101869052612710604482015260a490fd5b6040516338d06e1d60e01b815260606004820152600b60648201526a07377617044656c746142560ac1b608482015260248101859052612710604482015260a490fd5b346103b25760403660031901126103b2576106b4613fa8565b6001600160a01b036106fe6106c7613fbe565b926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b91165f52602052602060405f2054604051908152f35b346103b25760403660031901126103b257610763600435610733613fbe565b9061075e610759825f525f516020615c5d5f395f51905f52602052600160405f20015490565b614970565b61507a565b005b346103b25760e03660031901126103b25761077e613fa8565b610786613fbe565b604435906064359260843560ff811681036103b2578442116108a85761087e6108756001600160a01b039283851697885f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528b6040840152878a1660608401528a608084015260a083015260c082015260c0815261084360e08261408d565b51902061084e6157f6565b906040519161190160f01b83526002830152602282015260c43591604260a435922061585d565b909291926158df565b16848103610891575061076393506156b8565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0954604051908152f35b346103b2575f3660031901126103b25760206040517f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e21028152f35b346103b2577f5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac246109ce610963366140f8565b61096e939193614921565b8061097985856149bd565b6109a18261099c60025f516020615b9d5f395f51905f52549401938454906145d3565b6145c6565b5f516020615b9d5f395f51905f525555604051938493846040919493926060820195825260208201520152565b0390a1005b346103b25760206109e336613ff9565b6109f29592919594939461487d565b6109fa6148b2565b5f90610afa575b610a195f516020615cdd5f395f51905f5254836145e0565b600190468503610ae9575b81610ac0575b5015610aad57507fcf0b8bea497be617351b2c1a4243bd9e92167fdf778a43ebb66fb37160594a0f9394610a8f9160019660405195869586916080936001600160a01b0391979695929760a08501988552602085015216604083015260608201520152565b0390a15b5f5f516020615cfd5f395f51905f525d6040519015158152f35b945050505050610abb61545c565b610a93565b610ae39150866001600160a01b035f516020615d1d5f395f51905f5254166153d7565b88610a2a565b9050610af48161523c565b90610a24565b85151580610b4e575b610b27575b6005610b1485856149bd565b01610b208382546145d3565b9055610a01565b610b48610b425f516020615cdd5f395f51905f5254886145e0565b86615531565b50610b08565b506001600160a01b0385161515610b03565b346103b25760a03660031901126103b257610b79613fd4565b60843590610b8561487d565b610b8d6148b2565b81151580610bf7575b610bcd575b6005610bab6024356004356149bd565b01610bb960643582546145d3565b90555f5f516020615cfd5f395f51905f525d005b610be9610bef925f516020615cdd5f395f51905f5254906145e0565b90615531565b508080610b9b565b506001600160a01b0381161515610b96565b346103b257610c4360c0610c2d610c1f3661417a565b959261040894929194614494565b935f516020615cdd5f395f51905f5254906145f3565b927f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b549060ff5f516020615afd5f395f51905f525416610c81614a5f565b5f516020615a7d5f395f51905f5254905f516020615cbd5f395f51905f52549260405195610cae87614038565b308752602087015260408601526060850152608084015260a08301526001600160a01b035f516020615bbd5f395f51905f52541691610d036040519687958694859463143273dd60e21b865260048601614514565b03915afa8015610d8d5761046f915f91610d5e575b506040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b610d80915060c03d60c011610d86575b610d78818361408d565b8101906144c4565b82610d18565b503d610d6e565b6040513d5f823e3d90fd5b346103b2575f3660031901126103b25760206040517f0000000000000000000000000000000000000000000000000000000000001c208152f35b346103b2575f3660031901126103b25760206001600160a01b035f516020615bbd5f395f51905f525416604051908152f35b346103b2575f3660031901126103b25760206040517f000000000000000000000000000000000000000000000000000000174876e8008152f35b346103b2575f3660031901126103b25761046f604051610e5f60408261408d565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613f84565b346103b25760403660031901126103b257610eab610ea1613fa8565b6024359033614de4565b602060405160018152f35b346103b2575f3660031901126103b25760206040515f8152f35b346103b25760203660031901126103b2577fc0aea4cb7421bc8d3cf83582abe451bd1705682eb83b02b88889940492aef5ca6020610f0c613fea565b610f14614921565b5f516020615d1d5f395f51905f52805460ff60a01b191691151560a090811b60ff60a01b169290921790819055604051911c60ff1615158152a1005b346103b2575f3660031901126103b257610f68614921565b6107636154c4565b346103b2575f3660031901126103b25760205f516020615cbd5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f525460081c166040519015158152f35b346103b2575f3660031901126103b25760205f516020615b9d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b2576040515f5f516020615b1d5f395f51905f525461101f816141fd565b80845290600181169081156110c5575060011461105b575b61046f836110478185038261408d565b604051918291602083526020830190613f84565b5f516020615b1d5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b8082106110ab57509091508101602001611047611037565b919260018160209254838588010152019101909291611093565b60ff191660208086019190915291151560051b840190910191506110479050611037565b346103b2576101403660031901126103b257600435611106613fd4565b90611110366140af565b91610124359081151582036103b25760409361112a61487d565b6111326148b2565b5f92611240575b80519261116461114f60808401958651906145c6565b5f516020615cdd5f395f51905f5254906145e0565b946001904603611231575b80611209575b156111f857507f82f23eb0ffa46ea98b1a7134447f74561cec3e194d0f1d06ffc35ce71ae80336916080916111b060019582519051906145c6565b9060606020820151910151916001600160a01b038951941684526020840152878301526060820152a15b5f5f516020615cfd5f395f51905f525d825191825215156020820152f35b9250505061120461545c565b6111da565b5061122c85846001600160a01b035f516020615d1d5f395f51905f5254166153d7565b611175565b5061123b8561523c565b61116f565b61124981615117565b60a0810151611268600561125f602435886149bd565b019182546145d3565b9055611139565b346103b25760403660031901126103b257611288613fbe565b6004355f525f516020615c5d5f395f51905f526020526001600160a01b0360405f2091165f52602052602060ff60405f2054166040519015158152f35b346103b25760203660031901126103b2576004356112e1614921565b7f0320c21101a3b92f1a57a1daef0827408be5f6cb7bb44fb426cc4152663e611d6020604051838152a17f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d55005b346103b25760203660031901126103b2575f516020615b5d5f395f51905f525480156113855761137d61114f6020926113785f516020615a7d5f395f51905f52546004356145e0565b6145f3565b604051908152f35b604051634612b38f60e01b815260206004820152600b60248201526a746f74616c537570706c7960a81b6044820152606490fd5b346103b25760203660031901126103b2576113d2613fa8565b6113da614921565b6001600160a01b03811615611495575f516020615d5d5f395f51905f52549081156114865761141b610763925f516020615cdd5f395f51905f5254906145e0565b5f5f516020615d5d5f395f51905f5255604080516001600160a01b0384168152602081018390529192917f0a7a10dab02ee70c589a87e2b0d57484d85d029e381c3ca52387e25486a4c5389190a16001600160a01b035f516020615d1d5f395f51905f525416615202565b636e63c7c360e01b5f5260045ffd5b604051636bc37c5f60e11b8152602060048201526002602482015261746f60f01b6044820152606490fd5b346103b25760203660031901126103b2576001600160a01b036114e1613fa8565b6114e9614921565b166001600160a01b03195f516020615bbd5f395f51905f525416175f516020615bbd5f395f51905f52555f80f35b346103b25761152536614112565b906040519061153382614071565b5f825260208201905f825261154661487d565b61154e6148b2565b61155884826149bd565b90600160ff60078401541615150361161c57506040935f7f0aeafd14584f8a6bfe6b3846da893395e218188cb3ba5586a705848f7fbcb1ad926115c66115b15f516020615a7d5f395f51905f52546002840154906145e0565b5f516020615b9d5f395f51905f5254906145f3565b855260068101906115e16005835492838a52019182546145c6565b90555583518351865192835260208301919091526040820152606090a15f5f516020615cfd5f395f51905f525d825191518252516020820152f35b8490631c6768ad60e21b5f5260045260245260445ffd5b346103b2575f3660031901126103b2577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10054158061175c575b15611717576116bb61167c614235565b611684614304565b60206116c960405192611697838561408d565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190613f84565b908582036040870152613f84565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061170057505050500390f35b8351855286955093810193928101926001016116f1565b60405162461bcd60e51b815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101541561166c565b346103b25760203660031901126103b2576107636117a1613fea565b6117a96148b2565b614b06565b346103b25760203660031901126103b2576001600160a01b036117cf613fa8565b165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b346103b2575f3660031901126103b25760206040517f0000000000000000000000000000000000000000000000000000000ba43b74008152f35b346103b2575f3660031901126103b257602060ff5f516020615bfd5f395f51905f5254166040519015158152f35b346103b25760803660031901126103b25760043560243560403660431901126103b2577fdbbc76676cb73b8d1c33378e0cdc88f364e4203cfa5b1e4c7d15b66b5cb97f0c916119356040516118c181614071565b6044358152602081019060643582526118d861487d565b6118e06148b2565b60046118ec86866149bd565b600381016118fd81548551906145c6565b9055019182549051928380920361194a575b505051604051948594859094939260609260808301968352602083015260408201520152565b0390a15f5f516020615cfd5f395f51905f525d005b55818761190f565b346103b25760203660031901126103b2576001600160a01b03611973613fa8565b165f525f516020615abd5f395f51905f52602052602060405f2054604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615d1d5f395f51905f525460a01c166040519015158152f35b346103b2576119d53661417a565b6119e093919361487d565b6119e86148b2565b6001600160a01b03841615611aeb578381611a60611a2a611935947f5f8ecf683e1923224ca1e9b396be6a7a13e480a011e7645d641e7a7d3a2d0f0398614eb5565b5f516020615c9d5f395f51905f525460ff8116158015611aaa575b611a95575b505f516020615cdd5f395f51905f5254906145e0565b9160405195869586916080936001600160a01b0391979695929760a08501988552602085015216604083015260608201520152565b60ff611aa49160101c16614b06565b88611a4a565b505f516020615c7d5f395f51905f5254612710611ae45f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b0410611a45565b604051636bc37c5f60e11b8152602060048083019190915260248201526366726f6d60e01b6044820152606490fd5b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d54604051908152f35b346103b2575f3660031901126103b25760205f516020615d5d5f395f51905f5254604051908152f35b346103b2576040611b8f366140f8565b611b9761487d565b611b9f6148b2565b6003611bab83856149bd565b01918254938483115f14611c2a578394505f611beb7f9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a9019894955480966145d3565b9495555b855190815260208101919091526040810184905260608101839052608090a15f5f516020615cfd5f395f51905f525d82519182526020820152f35b92611c58837f9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a901989493966145d3565b9055925f92611bef565b346103b2575f3660031901126103b25760205f516020615d3d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b2576001600160a01b037f00000000000000000000000009019548ef289cf2694530b7a22420ad9f891582163003611ce25760206040515f516020615bdd5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b346103b25760203660031901126103b257602061137d611d215f516020615cdd5f395f51905f52546004356145f3565b61519a565b60403660031901126103b257611d3a613fa8565b60243567ffffffffffffffff81116103b257366023820112156103b257611d6b903690602481600401359101614144565b6001600160a01b037f00000000000000000000000009019548ef289cf2694530b7a22420ad9f89158216803014908115611eef575b50611ce257611dad614921565b6040516352d1902d60e01b81526001600160a01b0383169290602081600481875afa5f9181611ebb575b50611def5783634c9c8ce360e01b5f5260045260245ffd5b805f516020615bdd5f395f51905f52859203611ea95750813b15611e9757806001600160a01b03195f516020615bdd5f395f51905f525416175f516020615bdd5f395f51905f52557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115611e7f575f8083602061076395519101845af4611e796153a8565b91615a02565b505034611e8857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611ee7575b81611ed76020938361408d565b810103126103b257519085611dd7565b3d9150611eca565b90506001600160a01b035f516020615bdd5f395f51905f525416141583611da0565b346103b257611f1f36614112565b90611f28614921565b6007611f3483836149bd565b019182549160ff8316611f4d5760ff1983166001178455005b634e06b75f60e11b5f5260045260245260445ffd5b346103b25760403660031901126103b257611f7b613fa8565b602435611f8661487d565b611f8e6148b2565b611fb98161099c5f516020615a7d5f395f51905f52545f516020615cdd5f395f51905f5254906145e0565b7f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d548082116121e35750505f516020615b9d5f395f51905f5254156121af575f516020615cdd5f395f51905f5254612010916145f3565b612028815f516020615c7d5f395f51905f52546145c6565b5f516020615c7d5f395f51905f525580915f516020615b5d5f395f51905f525480612183575b50612067825f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f52556001600160a01b038116156121705782816120b46020957f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9461574c565b6120de84604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a15f516020615c9d5f395f51905f525460ff811615801561212f575b61211a575b505f5f516020615cfd5f395f51905f525d604051908152f35b60ff6121299160101c16614b06565b82612101565b505f516020615c7d5f395f51905f52546127106121695f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b04106120fc565b63ec442f0560e01b5f525f60045260245ffd5b6121a891935061219390836145e0565b5f516020615a7d5f395f51905f5254906145f3565b918361204e565b604051634612b38f60e01b815260206004820152600b60248201526a1d1bdd185b15d95a59da1d60aa1b6044820152606490fd5b60a49250604051916338d06e1d60e01b835260606004840152601060648401526f6d6178546f74616c4465706f7369747360801b608484015260248301526044820152fd5b346103b25760603660031901126103b257612241613fa8565b60243561224c613fd4565b61225461487d565b61225c6148b2565b816001600160a01b0384168015611aeb576001600160a01b037f285a08d85aaeb56c8b9d22b6877dffaed0cb5d07c1c14494aff61d9524746a12936080936020975f516020615c7d5f395f51905f5254976122b68961519a565b809111612343575b506122cc826122d392614eb5565b80986145d3565b5f516020615c7d5f395f51905f52556123146122fd5f516020615cdd5f395f51905f5254896145e0565b83855f516020615d1d5f395f51905f525416615202565b60405193845287840152856040840152166060820152a15f5f516020615cfd5f395f51905f525d604051908152f35b91506122cc6122be565b346103b25761235b36614112565b905f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20905f52602052602060405f2054604051908152f35b346103b2575f3660031901126103b25760207f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b54604051908152f35b346103b2576123e5366140f8565b916123ee614921565b5f516020615c3d5f395f51905f525480606411156125ed575f5b81811061259c5750612428845f516020615b9d5f395f51905f52546145c6565b5f516020615b9d5f395f51905f5255815f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20835f5260205260405f20556040519261247a84614054565b8184526020840190838252604085019481865260608101905f825260808101915f835260a082015f815260c08301905f825260e08401945f86525f516020615c3d5f395f51905f525468010000000000000000811015612588578060016124f092015f516020615c3d5f395f51905f52556143ed565b949094612575577f5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac249b6109ce99600797518755516001870155516002860155516003850155516004840155516005830155516006820155019051151560ff80198354169116179055604051938493846040919493926060820195825260208201520152565b634e487b7160e01b5f525f60045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b6125ae6125a8826143ed565b50614435565b848482511491826125df575b50506125c857600101612408565b505063b020eb6360e01b5f5260045260245260445ffd5b6020015114905084876125ba565b600181018091116126365760a490604051906338d06e1d60e01b82526060600483015260086064830152671419595c941bdbdb60c21b6084830152602482015260646044820152fd5b634e487b7160e01b5f52601160045260245ffd5b346103b2576101203660031901126103b257612664613fd4565b5060a0612670366140af565b61267861487d565b6126806148b2565b61268981615117565b0151610bb9600561125f6024356004356149bd565b346103b25760403660031901126103b2576126b7613fbe565b336001600160a01b038216036126d3576107639060043561507a565b63334bd91960e11b5f5260045ffd5b346103b2575f3660031901126103b257602061137d6157f6565b346103b2575f3660031901126103b25760205f516020615c1d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060ff5f516020615afd5f395f51905f525416604051908152f35b346103b25760403660031901126103b257610763600435612770613fbe565b90612796610759825f525f516020615c5d5f395f51905f52602052600160405f20015490565b6147d6565b346103b25760a03660031901126103b2576024356004356127ba613fd4565b916064359160843567ffffffffffffffff81116103b257366023820112156103b25780600401359067ffffffffffffffff82116103b25736602483830101116103b25761280561487d565b61280d6148b2565b6001600160a01b038616958615611aeb57600160ff600761282e88886149bd565b015416151503612c86578561284291614eb5565b9460ff5f516020615c9d5f395f51905f525416158015612c45575b6128ea575b918060247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c96959360e09560209a60405198899788528c8801526040870152606086015288608086015260c060a08601528260c086015201848401375f828201840152601f01601f19168101030190a15f5f516020615cfd5f395f51905f525d604051908152f35b5f516020615c7d5f395f51905f5254965f88151580612c2e575b612911575b509650612862565b5f516020615c3d5f395f51905f52549061292a82614629565b5f5f5f516020615a7d5f395f51905f52545f516020615b9d5f395f51905f5254915b868110612bbd575050505f9b81155f14612a5a575050508080612a43575b6129d5575b50509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c5b5f516020615c7d5f395f51905f52546145d3565b5f516020615c7d5f395f51905f5255935093955093959650612909565b8181101561296f576129e6816143ed565b50995f516020615c7d5f395f51905f525460028c0154612a05916145e0565b5f516020615b9d5f395f51905f5254612a1d916145f3565b9081612a28916145c6565b9a60060190815490612a39916145c6565b90556001016129d5565b505f516020615c7d5f395f51905f5254151561296a565b9080929391105f14612b2d575b838110612aa957505050509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c6129a4565b80612ab660019285614af2565b51612ac2575b01612a67565b6006612b15612ad0836143ed565b509e612af986611378612ae3878b614af2565b515f516020615c7d5f395f51905f5254906145e0565b612b038589614af2565b52612b0e8488614af2565b51906145c6565b9d01612b268154612b0e8488614af2565b9055612abc565b50505f5b828110612b72575050509260247fc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c969593829360e0966129b860209c6129a4565b80612b7f60019284614af2565b51612b8b575b01612b31565b6006612ba5612b99836143ed565b509d612b0e8487614af2565b9c01612bb68154612b0e8487614af2565b9055612b85565b612bc6816143ed565b50612bed612bdc856113786002850154876145e0565b9160066005820154910154906145c6565b90818111612c00575b505060010161294c565b94612c11612c2692600194976145d3565b612c1b8789614af2565b52612b0e8688614af2565b93905f612bf6565b505f516020615b9d5f395f51905f52541515612904565b505f516020615c7d5f395f51905f5254612710612c7f5f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b041061285d565b505050631c6768ad60e21b5f5260045260245260445ffd5b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f525460101c166040519015158152f35b346103b2575f3660031901126103b257602060ff5f516020615c9d5f395f51905f5254166040519015158152f35b346103b25760203660031901126103b257602061137d6004355f525f516020615c5d5f395f51905f52602052600160405f20015490565b346103b25760603660031901126103b257612d4d613fa8565b612d55613fbe565b60443590612d93836001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0333165f5260205260405f2054925f198410612dbb575b610eab9350614de4565b828410612e58576001600160a01b03811615612e45573315612e3257610eab93612e15826001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b6001600160a01b0333165f526020528360405f2091039055612db1565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8284637dc7a0d960e11b5f523360045260245260445260645ffd5b346103b2575f3660031901126103b25760205f516020615c7d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760206040517f00000000000000000000000000000000000000000000000000000000000054608152f35b346103b2575f3660031901126103b25760205f516020615b5d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b25760205f516020615a7d5f395f51905f5254604051908152f35b346103b2575f3660031901126103b257602060405160648152f35b346103b257612f5136613ff9565b93929091612f5d614494565b50612f6661487d565b612f6e6148b2565b60ff5f516020615d1d5f395f51905f525460a01c166133f1576001600160a01b038216918215611aeb57612fa285886149bd565b93600160ff6007870154161515036133da575f516020615cdd5f395f51905f525496612fd9612fd189866145f3565b9889936145f3565b9360c07f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b549460ff5f516020615afd5f395f51905f5254169561301a614a5f565b5f516020615a7d5f395f51905f5254905f516020615cbd5f395f51905f5254986040519361304785614038565b30855260208501526040840152606083015260808201528660a0820152896001600160a01b035f516020615bbd5f395f51905f5254169161309e6040519e8f958694859463143273dd60e21b865260048601614514565b03915afa988915610d8d575f996133b9575b5088511561334f575060808801926130c98451846145c6565b94806130db60608c01978851906145d3565b1061331d57508351806132fe575b505060408801956131066130fe8851856145d3565b8551906145c6565b600360a08b019282845201918254918083106132e857509261010098959261315961046f9d9996937f9c7519dcf6aef530f7209189ddd559038a69f8bb53f818b7fa76c67379aa6b2c9c999651906145d3565b9055156132ac5761317b613183915f516020615c7d5f395f51905f52546145c6565b8251906145c6565b5f516020615c7d5f395f51905f52555b5f516020615c9d5f395f51905f525460ff8116158015613257575b613242575b508851905191519260208a0151945195604051978852602088015260408701526060860152608085015260a084015260c083015260e0820152a15f5f516020615cfd5f395f51905f525d6040519182918291909160a08060c083019480518452602081015160208501526040810151604085015260608101516060850152608081015160808501520151910152565b60ff6132519160081c16614b06565b8a6131b3565b505f516020615c7d5f395f51905f52546127106132a45f516020615a7d5f395f51905f52547f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0954906145e0565b0411156131ae565b508051806132bb575b50613193565b6132d3905f516020615c7d5f395f51905f52546145c6565b5f516020615c7d5f395f51905f52558a6132b5565b8263c8a198d960e01b5f5260045260245260445ffd5b613307916145d3565b5f516020615cbd5f395f51905f525589806130e9565b8451865160405163463fc77f60e11b815260048101879052602481019290925260448201526064810191909152608490fd5b61337189604061336860608301516020840151906145c6565b910151906145c6565b90600182018092116126365760a49160405191631606f63960e21b8352606060048401526008606484015267185b5bdd5b9d131160c21b608484015260248301526044820152fd5b6133d391995060c03d60c011610d8657610d78818361408d565b978a6130b0565b8588631c6768ad60e21b5f5260045260245260445ffd5b6331ad2c0f60e11b5f5260045ffd5b346103b25760203660031901126103b2576134196143b1565b5061046f6104136125a86004356143ed565b346103b25760403660031901126103b257610eab613447613fa8565b60243590336156b8565b346103b2575f3660031901126103b2576040515f5f516020615a9d5f395f51905f525461347d816141fd565b80845290600181169081156110c557506001146134a45761046f836110478185038261408d565b5f516020615a9d5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106134f457509091508101602001611047611037565b9192600181602092548385880101520191019092916134dc565b346103b25760203660031901126103b25760043563ffffffff60e01b81168091036103b257602090637965db0b60e01b8114908115613553575b506040519015158152f35b6301ffc9a760e01b14905082613548565b346103b25760203660031901126103b25760043567ffffffffffffffff81116103b257806004019061014060031982360301126103b2575f516020615d7d5f395f51905f52549160ff8360401c16159267ffffffffffffffff811680159081613f7c575b6001149081613f72575b159081613f69575b50613f5a5767ffffffffffffffff1981166001175f516020615d7d5f395f51905f525583613f2e575b5061363661361182806141a8565b61362e61362460248795949501866141a8565b9490923691614144565b923691614144565b9061363f61568d565b61364761568d565b80519067ffffffffffffffff82116125885781906136725f516020615a9d5f395f51905f52546141fd565b601f8111613eb4575b50602090601f8311600114613e36575f92613e2b575b50508160011b915f199060031b1c1916175f516020615a9d5f395f51905f52555b80519067ffffffffffffffff8211612588576136db5f516020615b1d5f395f51905f52546141fd565b601f8111613dbc575b50602090601f8311600114613d38579180613733949261372c945f92613d2d575b50508160011b915f199060031b1c1916175f516020615b1d5f395f51905f52555b806141a8565b3691614144565b9161373c61568d565b60409182519361374c848661408d565b60018552603160f81b602086015261376261568d565b80519067ffffffffffffffff821161258857819061378d5f516020615add5f395f51905f52546141fd565b601f8111613cb3575b50602090601f8311600114613c35575f92613c2a575b50508160011b915f199060031b1c1916175f516020615add5f395f51905f52555b835167ffffffffffffffff8111612588576137f55f516020615b7d5f395f51905f52546141fd565b601f8111613bbb575b50602094601f8211600114613b40579481929394955f92613b35575b50508160011b915f199060031b1c1916175f516020615b7d5f395f51905f52555b5f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100555f7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015561388961568d565b61389161568d565b6138fb6138a0608483016141db565b60ff806138af60a486016141db565b926138b861568d565b6138c061568d565b16918261ff005f516020615afd5f395f51905f52549260081b169161ffff19161717805f516020615afd5f395f51905f525560081c166145d3565b604d811161263657600a0a5f516020615cdd5f395f51905f525561391d61568d565b61392561568d565b61394f7f0000000000000000000000000000000000000000000000000000000000001c20436145c6565b5f516020615d3d5f395f51905f525561397261396d60e483016141e9565b61465b565b5061398861398361010483016141e9565b61470a565b5060448101357f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b55606481016001600160a01b036139c5826141e9565b1615613b085760c48201906001600160a01b036139e1836141e9565b1615613ad357613a2961012493926001600160a01b03613a0181946141e9565b1683195f516020615d1d5f395f51905f525416175f516020615d1d5f395f51905f52556141e9565b166001600160a01b03195f516020615bbd5f395f51905f525416175f516020615bbd5f395f51905f525501357f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d55613a7d57005b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29168ff0000000000000000195f516020615d7d5f395f51905f5254165f516020615d7d5f395f51905f52555160018152a1005b8451636bc37c5f60e11b815260206004820152600d60248201526c3332b2a1b0b631bab630ba37b960991b6044820152606490fd5b8351636bc37c5f60e11b81526020600482015260056024820152643a37b5b2b760d91b6044820152606490fd5b01519050858061381a565b601f198216955f516020615b7d5f395f51905f525f52805f20915f5b888110613ba357508360019596979810613b8b575b505050811b015f516020615b7d5f395f51905f525561383b565b01515f1960f88460031b161c19169055858080613b71565b91926020600181928685015181550194019201613b5c565b5f516020615b7d5f395f51905f525f527f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75601f830160051c81019160208410613c20575b601f0160051c01905b818110613c1557506137fe565b5f8155600101613c08565b9091508190613bff565b0151905086806137ac565b5f516020615add5f395f51905f525f9081528281209350601f198516905b818110613c9b5750908460019594939210613c83575b505050811b015f516020615add5f395f51905f52556137cd565b01515f1960f88460031b161c19169055868080613c69565b92936020600181928786015181550195019301613c53565b5f516020615add5f395f51905f525f529091507f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f840160051c81019160208510613d23575b90601f859493920160051c01905b818110613d155750613796565b5f8155849350600101613d08565b9091508190613cfa565b015190508780613705565b90601f198316915f516020615b1d5f395f51905f525f52815f20925f5b818110613da4575092600192859261372c96613733989610613d8c575b505050811b015f516020615b1d5f395f51905f5255613726565b01515f1960f88460031b161c19169055878080613d72565b92936020600181928786015181550195019301613d55565b5f516020615b1d5f395f51905f525f527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f840160051c81019160208510613e21575b601f0160051c01905b818110613e1657506136e4565b5f8155600101613e09565b9091508190613e00565b015190508680613691565b5f516020615a9d5f395f51905f525f9081528281209350601f198516905b818110613e9c5750908460019594939210613e84575b505050811b015f516020615a9d5f395f51905f52556136b2565b01515f1960f88460031b161c19169055868080613e6a565b92936020600181928786015181550195019301613e54565b5f516020615a9d5f395f51905f525f529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c81019160208510613f24575b90601f859493920160051c01905b818110613f16575061367b565b5f8155849350600101613f09565b9091508190613efb565b68ffffffffffffffffff191668010000000000000001175f516020615d7d5f395f51905f525583613603565b63f92ee8a960e01b5f5260045ffd5b905015856135da565b303b1591506135d2565b8591506135c8565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036103b257565b602435906001600160a01b03821682036103b257565b604435906001600160a01b03821682036103b257565b6004359081151582036103b257565b60c09060031901126103b25760043590602435906044356001600160a01b03811681036103b25790606435906084359060a43580151581036103b25790565b60c0810190811067ffffffffffffffff82111761258857604052565b610100810190811067ffffffffffffffff82111761258857604052565b6040810190811067ffffffffffffffff82111761258857604052565b90601f8019910116810190811067ffffffffffffffff82111761258857604052565b60c09060631901126103b257604051906140c882614038565b6064358252608435602083015260a435604083015260c435606083015260e43560808301526101043560a0830152565b60609060031901126103b257600435906024359060443590565b60409060031901126103b2576004359060243590565b67ffffffffffffffff811161258857601f01601f191660200190565b92919261415082614128565b9161415e604051938461408d565b8294818452818301116103b2578281602093845f960137010152565b60809060031901126103b25760043590602435906044356001600160a01b03811681036103b2579060643590565b903590601e19813603018212156103b2570180359067ffffffffffffffff82116103b2576020019181360383136103b257565b3560ff811681036103b25790565b356001600160a01b03811681036103b25790565b90600182811c9216801561422b575b602083101461421757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161420c565b604051905f825f516020615add5f395f51905f525491614254836141fd565b80835292600181169081156142e5575060011461427a575b6142789250038361408d565b565b505f516020615add5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b8183106142c95750509060206142789282010161426c565b60209193508060019154838589010152019101909184926142b1565b6020925061427894915060ff191682840152151560051b82010161426c565b604051905f825f516020615b7d5f395f51905f525491614323836141fd565b80835292600181169081156142e55750600114614346576142789250038361408d565b505f516020615b7d5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b8183106143955750509060206142789282010161426c565b602091935080600191548385890101520191019091849261437d565b604051906143be82614054565b5f60e0838281528260208201528260408201528260608201528260808201528260a08201528260c08201520152565b5f516020615c3d5f395f51905f5254811015614421575f516020615c3d5f395f51905f525f5260205f209060031b01905f90565b634e487b7160e01b5f52603260045260245ffd5b9060405161444281614054565b60e060ff600783958054855260018101546020860152600281015460408601526003810154606086015260048101546080860152600581015460a0860152600681015460c08601520154161515910152565b604051906144a182614038565b5f60a0838281528260208201528260408201528260608201528260808201520152565b908160c09103126103b25760a0604051916144de83614038565b8051835260208101516020840152604081015160408401526060810151606084015260808101516080840152015160a082015290565b909493926001600160a01b039060ff60076101e09560a061020087019a868151168852602081015160208901528460408201511660408901526060810151606089015260808101516080890152015160a0870152805460c0870152600181015460e08701526002810154610100870152600381015461012087015260048101546101408701526005810154610160870152600681015461018087015201541615156101a0840152166101c08201520152565b9190820180921161263657565b9190820391821161263657565b8181029291811591840414171561263657565b81156145fd570490565b634e487b7160e01b5f52601260045260245ffd5b67ffffffffffffffff81116125885760051b60200190565b9061463382614611565b614640604051918261408d565b8281528092614651601f1991614611565b0190602036910137565b6001600160a01b0381165f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff16614705576001600160a01b03165f8181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f90565b6001600160a01b0381165f9081527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538602052604090205460ff16614705576001600160a01b03165f8181527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c49890853860205260408120805460ff191660011790553391907f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f205416155f1461487757805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f20600160ff198254161790556001600160a01b03339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4600190565b50505f90565b5f516020615cfd5f395f51905f525c6148a35760015f516020615cfd5f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b335f9081527fb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538602052604090205460ff16156148ea57565b63e2517d3f60e01b5f52336004527f66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e210260245260445ffd5b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d602052604090205460ff161561495957565b63e2517d3f60e01b5f52336004525f60245260445ffd5b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0333165f5260205260ff60405f205416156149a75750565b63e2517d3f60e01b5f523360045260245260445ffd5b91905f516020615c3d5f395f51905f525415614a5057825f527f98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0260205260405f20815f52602052614a1160405f20546143ed565b509283828282541491821592614a41575b5050614a2c575050565b6310de8c5160e31b5f5260045260245260445ffd5b6001015414159050825f614a22565b634d6af2e760e11b5f5260045ffd5b602460206001600160a01b035f516020615d1d5f395f51905f525416604051928380926370a0823160e01b82523060048301525afa8015610d8d575f90614abe575b614abb91505f516020615cdd5f395f51905f5254906145f3565b90565b506020813d602011614aea575b81614ad86020938361408d565b810103126103b257614abb9051614aa1565b3d9150614acb565b80518210156144215760209160051b010190565b5f516020615c7d5f395f51905f52549081151580614dcd575b614b27575050565b5f516020615c3d5f395f51905f525490614b4082614629565b5f5f5f516020615a7d5f395f51905f52545f516020615b9d5f395f51905f5254915b868110614d82575050505f9481155f14614c235750505080614c0c575b614bae575b50614b9d905f516020615c7d5f395f51905f52546145d3565b5f516020615c7d5f395f51905f5255565b5f5b818110614bbd5750614b84565b80614bc96001926143ed565b5093614c046006614bfa614bf36115b15f516020615c7d5f395f51905f525460028b0154906145e0565b80946145c6565b96019182546145c6565b905501614bb0565b505f516020615c7d5f395f51905f52541515614b7f565b9080929391105f14614c9857505f5b838110614c465750505050614b9d906129a4565b80614c5360019285614af2565b51614c5f575b01614c32565b6006614c80614c6d836143ed565b5097612af986611378612ae3878b614af2565b9601614c918154612b0e8488614af2565b9055614c59565b9294939215614d1d57614cb9905f516020615c7d5f395f51905f52546145d3565b5f5b858110614cd057505050614b9d9192506129a4565b80614cdc6001926143ed565b5094614d156006614d0b614bf3614cf3868a614af2565b51614d056115b160028d01548b6145e0565b906145c6565b97019182546145c6565b905501614cbb565b505f939192935b828110614d3757505050614b9d906129a4565b80614d4460019284614af2565b51614d50575b01614d24565b6006614d6a614d5e836143ed565b5096612b0e8487614af2565b9501614d7b8154612b0e8487614af2565b9055614d4a565b614d8b816143ed565b50614da1612bdc856113786002850154876145e0565b90818111614db4575b5050600101614b62565b94612c11614dc592600194976145d3565b93905f614daa565b505f516020615b9d5f395f51905f52541515614b1f565b6001600160a01b0316908115614ea2576001600160a01b031691821561217057815f525f516020615abd5f395f51905f5260205260405f2054818110614e8957817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f516020615abd5f395f51905f5284520360405f2055845f525f516020615abd5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b905f516020615b5d5f395f51905f5254918215611385576001600160a01b038116805f525f516020615abd5f395f51905f5260205260405f20548381106150285750614f1e614f175f516020615a7d5f395f51905f52549561137887876145e0565b80956145d3565b5f516020615a7d5f395f51905f52558015614ea257805f525f516020615abd5f395f51905f5260205260405f205483811061500e5781845f927f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a96959484525f516020615abd5f395f51905f52602052036040832055835f516020615b5d5f395f51905f5254035f516020615b5d5f395f51905f52557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051868152a361500884604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a190565b915063391434e360e21b5f5260045260245260445260645ffd5b8360a491604051916338d06e1d60e01b835260606004840152601560648401527f506f6f6c2e5f6275726e4c502e616d6f756e744c500000000000000000000000608484015260248301526044820152fd5b805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260ff60405f2054165f1461487757805f525f516020615c5d5f395f51905f5260205260405f206001600160a01b0383165f5260205260405f2060ff1981541690556001600160a01b03339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4600190565b60206151899161513960408201515f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f525561516460608201515f516020615cbd5f395f51905f52546145c6565b5f516020615cbd5f395f51905f525501515f516020615d5d5f395f51905f52546145c6565b5f516020615d5d5f395f51905f5255565b5f516020615a7d5f395f51905f525480156151cb57611378614abb925f516020615b5d5f395f51905f5254906145e0565b604051634612b38f60e01b815260206004820152600e60248201526d746f74616c4c697175696469747960901b6044820152606490fd5b61520d8383836153d7565b1561521757505050565b906001600160a01b0380926387abb3dd60e01b5f52166004521660245260445260645ffd5b5f516020615d3d5f395f51905f5254431161539b575b61526a815f516020615b3d5f395f51905f52546145c6565b7f000000000000000000000000000000000000000000000000000000174876e8001061530b57807f0000000000000000000000000000000000000000000000000000000ba43b7400105f146152f557806152e1915f516020615a5d5f395f51905f52555f516020615b3d5f395f51905f52546145c6565b5f516020615b3d5f395f51905f5255600190565b505f5f516020615a5d5f395f51905f5255600190565b505f5f516020615a5d5f395f51905f52555f516020615bfd5f395f51905f525460ff81161561533957505f90565b60019060ff1916175f516020615bfd5f395f51905f52556153887f00000000000000000000000000000000000000000000000000000000000054605f516020615d3d5f395f51905f52546145c6565b5f516020615d3d5f395f51905f52555f90565b6153a36154c4565b615252565b3d156153d2573d906153b982614128565b916153c7604051938461408d565b82523d5f602084013e565b606090565b60405163a9059cbb60e01b602082019081526001600160a01b039390931660248201526044808201949094529283525f92839290839061541860648261408d565b51925af16154246153a8565b8180615452575b615433575090565b90506020818051810103126103b2576020015180151581036103b25790565b508051151561542b565b5f516020615b3d5f395f51905f52545f516020615a5d5f395f51905f5254808210156154a75750505f5f516020615b3d5f395f51905f52555b5f5f516020615a5d5f395f51905f5255565b6154b0916145d3565b5f516020615b3d5f395f51905f5255615495565b6154ee7f0000000000000000000000000000000000000000000000000000000000001c20436145c6565b5f516020615d3d5f395f51905f52555f5f516020615b3d5f395f51905f525560ff195f516020615bfd5f395f51905f5254165f516020615bfd5f395f51905f5255565b91905f516020615b9d5f395f51905f5254156121af575f516020615cdd5f395f51905f525461555f916145f3565b91825f516020615b5d5f395f51905f525480615678575b5061558f845f516020615a7d5f395f51905f52546145c6565b5f516020615a7d5f395f51905f52556001600160a01b0382161561217057816155d9827f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f9461574c565b61560385604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a15f516020615c9d5f395f51905f525460ff8116158015615637575b6156285750565b60ff6142789160101c16614b06565b505f516020615c7d5f395f51905f52546127106156715f516020615a7d5f395f51905f52545f516020615c1d5f395f51905f5254906145e0565b0410615621565b615687915061219390856145e0565b5f615576565b60ff5f516020615d7d5f395f51905f525460401c16156156a957565b631afcd79f60e31b5f5260045ffd5b916001600160a01b038316918215612e45576001600160a01b0316928315612e32577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916157386020926001600160a01b03165f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260405f2090565b855f5282528060405f2055604051908152a3565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206001600160a01b035f93615791865f516020615b5d5f395f51905f52546145c6565b5f516020615b5d5f395f51905f52551693841584146157d457805f516020615b5d5f395f51905f5254035f516020615b5d5f395f51905f52555b604051908152a3565b8484525f516020615abd5f395f51905f528252604084208181540190556157cb565b6157fe615953565b6158066159bd565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261585760c08261408d565b51902090565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116158d4579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610d8d575f516001600160a01b038116156158ca57905f905f90565b505f906001905f90565b5050505f9160039190565b600481101561593f57806158f1575050565b600181036159085763f645eedf60e01b5f5260045ffd5b60028103615923575063fce698f760e01b5f5260045260245ffd5b60031461592d5750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b61595b614235565b805190811561596b576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005480156159985790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159c5614304565b80519081156159d5576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015480156159985790565b90615a265750805115615a1757805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580615a53575b615a37575090565b6001600160a01b0390639996b31560e01b5f521660045260245ffd5b50803b15615a2f56fe0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00398b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102363bd9d3ac01b05edede66fbb9c4f73d99f1481666c51eee8df34d23a61f480052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace040ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00152c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10398b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0498b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00298b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0a98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0102dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0598b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0698b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea08363bd9d3ac01b05edede66fbb9c4f73d99f1481666c51eee8df34d23a61f48019b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0c0ee2d9de8392a8f17ff2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00098b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea07f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220076251e6cf88c5cf45d9d64dae3d08156d28e9178a57819fd6991e336c62e38164736f6c634300081c0033
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing large single-line bytecode patterns**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc 'rg -n "AccessControl|Ownable|Unauthorized|only" BYTECODE_BUNDLE.txt' in /tmp/codex-multi-yg56dzmp exited 1 in 7ms:
[codex:1257358]
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Devising disassembler for upgrade function analysis**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] import re
[codex:1257358] from pathlib import Path
[codex:1257358] code = Path('BYTECODE_BUNDLE.txt').read_text().splitlines()
[codex:1257358] hexline = None
[codex:1257358] for line in code:
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline = line.strip()
[codex:1257358] break
[codex:1257358] if not hexline:
[codex:1257358] raise SystemExit('no hex line')
[codex:1257358] hexstr = hexline[2:]
[codex:1257358] # sanity
[codex:1257358] # opcode map
[codex:1257358] opcodes = {
[codex:1257358] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1257358] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1257358] 0x20:'SHA3',
[codex:1257358] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT' ,0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:1257358] }
[codex:1257358]
[codex:1257358] # disassemble
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] bs=bytes.fromhex(hexstr)
[codex:1257358] while idx < len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] name=opcodes.get(op,f'OP_{op:02x}')
[codex:1257358] idx+=1
[codex:1257358] if 0x60 <= op <= 0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-n-1, name, data))
[codex:1257358] else:
[codex:1257358] ops.append((idx-1, name, b''))
[codex:1257358]
[codex:1257358] # build map from offset to index
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358]
[codex:1257358] # find dispatcher patterns: PUSH4 sel EQ PUSH2 dest JUMPI
[codex:1257358] selectors=[]
[codex:1257358] for i in range(len(ops)-3):
[codex:1257358] off, name, data = ops[i]
[codex:1257358] if name=='PUSH4':
[codex:1257358] sel=data.hex()
[codex:1257358] # next op maybe EQ
[codex:1257358] if ops[i+1][1]=='EQ' and ops[i+2][1] in ('PUSH2','PUSH1') and ops[i+3][1]=='JUMPI':
[codex:1257358] dest=int.from_bytes(ops[i+2][2],'big')
[codex:1257358] selectors.append((sel,dest,off))
[codex:1257358]
[codex:1257358] # print some selectors of interest
[codex:1257358] interest = {'4f1ef286','52d1902d','3659cfe6','36568abe','ad3cb1cc','b00eb9fe','b4d1d795','c0dca06e'}
[codex:1257358] print('found selectors:', len(selectors))
[codex:1257358] for sel,dest,off in selectors:
[codex:1257358] if sel in interest:
[codex:1257358] print(sel, hex(dest), 'at', hex(off))
[codex:1257358]
[codex:1257358] # function to print short disasm window
[codex:1257358]
[codex:1257358] def dump_at(dest, count=80):
[codex:1257358] idx=offset_to_idx.get(dest)
[codex:1257358] if idx is None:
[codex:1257358] print('no dest', dest)
[codex:1257358] return
[codex:1257358] for j in range(idx, min(len(ops), idx+count)):
[codex:1257358] off,name,data=ops[j]
[codex:1257358] if data:
[codex:1257358] print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358] else:
[codex:1257358] print(f'{off:06x}: {name}')
[codex:1257358]
[codex:1257358] # dump around upgradeToAndCall if found
[codex:1257358] for sel,dest,off in selectors:
[codex:1257358] if sel=='4f1ef286':
[codex:1257358] print('\\nupgradeToAndCall dest', hex(dest))
[codex:1257358] dump_at(dest, 120)
[codex:1257358] break
[codex:1257358]
[codex:1257358] # also dump for proxiableUUID
[codex:1257358] for sel,dest,off in selectors:
[codex:1257358] if sel=='52d1902d':
[codex:1257358] print('\\nproxiableUUID dest', hex(dest))
[codex:1257358] dump_at(dest, 60)
[codex:1257358] break
[codex:1257358]
[codex:1257358] # check for DELEGATECALL occurrences
[codex:1257358] print('\\nDELEGATECALL offsets:')
[codex:1257358] for off,name,data in ops:
[codex:1257358] if name=='DELEGATECALL':
[codex:1257358] print(hex(off))
[codex:1257358]
[codex:1257358] # check for SELFDESTRUCT occurrences
[codex:1257358] print('\\nSELFDESTRUCT offsets:')
[codex:1257358] for off,name,data in ops:
[codex:1257358] if name=='SELFDESTRUCT':
[codex:1257358] print(hex(off))
[codex:1257358]
[codex:1257358] # check ORIGIN usage
[codex:1257358] print('\\nORIGIN offsets:')
[codex:1257358] for off,name,data in ops:
[codex:1257358] if name=='ORIGIN':
[codex:1257358] print(hex(off))
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 65ms:
[codex:1257358] found selectors: 80
[codex:1257358] 36568abe 0x269e at 0xff
[codex:1257358] 4f1ef286 0x1d26 at 0x157
[codex:1257358] 52d1902d 0x1c8b at 0x16d
[codex:1257358] ad3cb1cc 0xe3e at 0x2ac
[codex:1257358] b00eb9fe 0xdd2 at 0x2c2
[codex:1257358] b4d1d795 0xd98 at 0x2cd
[codex:1257358] c0dca06e 0x9d3 at 0x2ee
[codex:1257358]
[codex:1257358] upgradeToAndCall dest 0x1d26
[codex:1257358] 001d26: JUMPDEST
[codex:1257358] 001d27: PUSH1 0x40
[codex:1257358] 001d29: CALLDATASIZE
[codex:1257358] 001d2a: PUSH1 0x03
[codex:1257358] 001d2c: NOT
[codex:1257358] 001d2d: ADD
[codex:1257358] 001d2e: SLT
[codex:1257358] 001d2f: PUSH2 0x03b2
[codex:1257358] 001d32: JUMPI
[codex:1257358] 001d33: PUSH2 0x1d3a
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing UUPS onlyProxy check**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] # disasm util
[codex:1257358] opnames={
[codex:1257358] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1257358] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358]
[codex:1257358] # disassemble into ops with offsets
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358] idx+=1
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-n-1,name,data))
[codex:1257358] else:
[codex:1257358] ops.append((idx-1,name,b''))
[codex:1257358]
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358]
[codex:1257358] def dump(start, count=120):
[codex:1257358] i=offset_to_idx.get(start)
[codex:1257358] if i is None:
[codex:1257358] print('no start',hex(start));return
[codex:1257358] for j in range(i, min(len(ops), i+count)):
[codex:1257358] off,name,data=ops[j]
[codex:1257358] if data:
[codex:1257358] print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358] else:
[codex:1257358] print(f'{off:06x}: {name}')
[codex:1257358]
[codex:1257358] print('dump from 0x1eef')
[codex:1257358] dump(0x1eef, 140)
[codex:1257358]
[codex:1257358] print('\\nDump around delegatecall 0x1e71')
[codex:1257358] dump(0x1e60, 80)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 44ms:
[codex:1257358] dump from 0x1eef
[codex:1257358] 001eef: JUMPDEST
[codex:1257358] 001ef0: SWAP1
[codex:1257358] 001ef1: POP
[codex:1257358] 001ef2: PUSH1 0x01
[codex:1257358] 001ef4: PUSH1 0x01
[codex:1257358] 001ef6: PUSH1 0xa0
[codex:1257358] 001ef8: SHL
[codex:1257358] 001ef9: SUB
[codex:1257358] 001efa: OP_5f
[codex:1257358] 001efb: MLOAD
[codex:1257358] 001efc: PUSH1 0x20
[codex:1257358] 001efe: PUSH2 0x5bdd
[codex:1257358] 001f01: OP_5f
[codex:1257358] 001f02: CODECOPY
[codex:1257358] 001f03: OP_5f
[codex:1257358] 001f04: MLOAD
[codex:1257358] 001f05: SWAP1
[codex:1257358] 001f06: OP_5f
[codex:1257358] 001f07: MSTORE
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing UUPS upgrade access checks**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358]
[codex:1257358] opnames={}
[codex:1257358] # just parse
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] idx+=1
[codex:1257358] name=op
[codex:1257358] data=b''
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-1,op,data))
[codex:1257358]
[codex:1257358] # find CALLER (0x33) between 0x1d26 and 0x2200
[codex:1257358] for off,op,data in ops:
[codex:1257358] if off<0x1d26 or off>0x2200: continue
[codex:1257358] if op==0x33:
[codex:1257358] print(hex(off))
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 42ms:
[codex:1257358]
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing internal permission check jumps**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] # disasm
[codex:1257358] opnames={
[codex:1257358] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1257358] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358]
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358] idx+=1
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-n-1,name,data))
[codex:1257358] else:
[codex:1257358] ops.append((idx-1,name,b''))
[codex:1257358]
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358]
[codex:1257358] def dump(start,count=120):
[codex:1257358] i=offset_to_idx.get(start)
[codex:1257358] if i is None:
[codex:1257358] print('no start',hex(start));return
[codex:1257358] for j in range(i, min(len(ops), i+count)):
[codex:1257358] off,name,data=ops[j]
[codex:1257358] if data:
[codex:1257358] print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358] else:
[codex:1257358] print(f'{off:06x}: {name}')
[codex:1257358]
[codex:1257358] print('dump at 0x4921')
[codex:1257358] dump(0x4921, 120)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 54ms:
[codex:1257358] dump at 0x4921
[codex:1257358] 004921: JUMPDEST
[codex:1257358] 004922: CALLER
[codex:1257358] 004923: OP_5f
[codex:1257358] 004924: SWAP1
[codex:1257358] 004925: DUP2
[codex:1257358] 004926: MSTORE
[codex:1257358] 004927: PUSH32 0xb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d
[codex:1257358] 004948: PUSH1 0x20
[codex:1257358] 00494a: MSTORE
[codex:1257358] 00494b: PUSH1 0x40
[codex:1257358] 00494d: SWAP1
[codex:1257358] 00494e: SHA3
[codex:1257358] 00494f: SLOAD
[codex:1257358] 004950: PUSH1 0xff
[codex:1257358] 004952: AND
[codex:1257358] 004953: ISZERO
[codex:1257358] 004954: PUSH2 0x4959
[codex:1257358] 004957: JUMPI
[codex:1257358] 004958: JUMP
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing role-based access check and ORIGIN usage**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358]
[codex:1257358] opnames={
[codex:1257358] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1257358] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358]
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358] idx+=1
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-n-1,name,data))
[codex:1257358] else:
[codex:1257358] ops.append((idx-1,name,b''))
[codex:1257358]
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358]
[codex:1257358] def dump(start,count=80):
[codex:1257358] i=offset_to_idx.get(start)
[codex:1257358] if i is None:
[codex:1257358] print('no start',hex(start));return
[codex:1257358] for j in range(i, min(len(ops), i+count)):
[codex:1257358] off,name,data=ops[j]
[codex:1257358] if data:
[codex:1257358] print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358] else:
[codex:1257358] print(f'{off:06x}: {name}')
[codex:1257358]
[codex:1257358] for off in [0x5b1f,0x5bb9,0x5bd9,0x5c99,0x5cb9,0x5cd9,0x5d39]:
[codex:1257358] print('\\n-- around',hex(off))
[codex:1257358] dump(off-10, 40)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 57ms:
[codex:1257358]
[codex:1257358] -- around 0x5b1f
[codex:1257358] no start 0x5b15
[codex:1257358]
[codex:1257358] -- around 0x5bb9
[codex:1257358] no start 0x5baf
[codex:1257358]
[codex:1257358] -- around 0x5bd9
[codex:1257358] no start 0x5bcf
[codex:1257358]
[codex:1257358] -- around 0x5c99
[codex:1257358] no start 0x5c8f
[codex:1257358]
[codex:1257358] -- around 0x5cb9
[codex:1257358] no start 0x5caf
[codex:1257358]
[codex:1257358] -- around 0x5cd9
[codex:1257358] no start 0x5ccf
[codex:1257358]
[codex:1257358] -- around 0x5d39
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing instruction offsets for accurate dumping**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358]
[codex:1257358] opnames={
[codex:1257358] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1257358] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358]
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358] idx+=1
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-n-1,name,data))
[codex:1257358] else:
[codex:1257358] ops.append((idx-1,name,b''))
[codex:1257358]
[codex:1257358] offs=[off for off,_,__ in ops]
[codex:1257358]
[codex:1257358] def dump_near(target, count=40):
[codex:1257358] # find index of last offset <= target
[codex:1257358] i=0
[codex:1257358] for idx,off in enumerate(offs):
[codex:1257358] if off<=target:
[codex:1257358] i=idx
[codex:1257358] else:
[codex:1257358] break
[codex:1257358] start=max(0, i-10)
[codex:1257358] for j in range(start, min(len(ops), start+count)):
[codex:1257358] off,name,data=ops[j]
[codex:1257358] marker='>>' if off==target else ' '
[codex:1257358] if data:
[codex:1257358] print(f'{marker}{off:06x}: {name} 0x{data.hex()}')
[codex:1257358] else:
[codex:1257358] print(f'{marker}{off:06x}: {name}')
[codex:1257358]
[codex:1257358] for off in [0x5b1f,0x5bb9,0x5bd9,0x5c99,0x5cb9,0x5cd9,0x5d39]:
[codex:1257358] print('\\n-- near',hex(off))
[codex:1257358] dump_near(off, 30)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 50ms:
[codex:1257358]
[codex:1257358] -- near 0x5b1f
[codex:1257358] 005b07: PUSH7 0xfbb9c4f73d99f1
[codex:1257358] 005b0f: BASEFEE
[codex:1257358] 005b10: AND
[codex:1257358] 005b11: PUSH7 0xc51eee8df34d23
[codex:1257358] 005b19: OP_a6
[codex:1257358] 005b1a: OP_1f
[codex:1257358] 005b1b: BASEFEE
[codex:1257358] 005b1c: STOP
[codex:1257358] 005b1d: MSTORE
[codex:1257358] 005b1e: OP_c6
[codex:1257358] >>005b1f: ORIGIN
[codex:1257358] 005b20: SELFBALANCE
[codex:1257358] 005b21: OP_e1
[codex:1257358] 005b22: DELEGATECALL
[codex:1257358] 005b23: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace040ee2d9de83
[codex:1257358] 005b42: SWAP3
[codex:1257358] 005b43: OP_a8
[codex:1257358] 005b44: CALL
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing code versus data boundaries**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358]
[codex:1257358] opnames={
[codex:1257358] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1257358] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358]
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358] idx+=1
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-n-1,name,data))
[codex:1257358] else:
[codex:1257358] ops.append((idx-1,name,b''))
[codex:1257358]
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358]
[codex:1257358] def dump(start,count=80):
[codex:1257358] i=offset_to_idx.get(start)
[codex:1257358] if i is None:
[codex:1257358] # find nearest previous
[codex:1257358] offs=sorted(offset_to_idx)
[codex:1257358] prev=max(o for o in offs if o<=start)
[codex:1257358] i=offset_to_idx[prev]
[codex:1257358] for j in range(i, min(len(ops), i+count)):
[codex:1257358] off,name,data=ops[j]
[codex:1257358] if data:
[codex:1257358] print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358] else:
[codex:1257358] print(f'{off:06x}: {name}')
[codex:1257358]
[codex:1257358] print('dump around 0x1e60')
[codex:1257358] dump(0x1e60, 80)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 45ms:
[codex:1257358] dump around 0x1e60
[codex:1257358] 001e5f: PUSH2 0x1e7f
[codex:1257358] 001e62: JUMPI
[codex:1257358] 001e63: OP_5f
[codex:1257358] 001e64: DUP1
[codex:1257358] 001e65: DUP4
[codex:1257358] 001e66: PUSH1 0x20
[codex:1257358] 001e68: PUSH2 0x0763
[codex:1257358] 001e6b: SWAP6
[codex:1257358] 001e6c: MLOAD
[codex:1257358] 001e6d: SWAP2
[codex:1257358] 001e6e: ADD
[codex:1257358] 001e6f: DUP5
[codex:1257358] 001e70: GAS
[codex:1257358] 001e71: DELEGATECALL
[codex:1257358] 001e72: PUSH2 0x1e79
[codex:1257358] 001e75: PUSH2 0x53a8
[codex:1257358] 001e78: JUMP
[codex:1257358] 001e79: JUMPDEST
[codex:1257358] 001e7a: SWAP2
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing upgrade and mint access control**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] # disasm
[codex:1257358] opnames={
[codex:1257358] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1257358] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358]
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358] idx+=1
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-n-1,name,data))
[codex:1257358] else:
[codex:1257358] ops.append((idx-1,name,b''))
[codex:1257358]
[codex:1257358] # find dispatcher mapping selectors
[codex:1257358] selectors=[]
[codex:1257358] for i in range(len(ops)-3):
[codex:1257358] off,name,data=ops[i]
[codex:1257358] if name=='PUSH4' and ops[i+1][1]=='EQ' and ops[i+2][1] in ('PUSH2','PUSH1') and ops[i+3][1]=='JUMPI':
[codex:1257358] sel=data.hex()
[codex:1257358] dest=int.from_bytes(ops[i+2][2],'big')
[codex:1257358] selectors.append((sel,dest))
[codex:1257358]
[codex:1257358] sel_map={sel:dest for sel,dest in selectors}
[codex:1257358] sel='40c10f19'
[codex:1257358] print('selector dest',hex(sel_map.get(sel,0)))
[codex:1257358]
[codex:1257358] # dump around dest
[codex:1257358] if sel in sel_map:
[codex:1257358] dest=sel_map[sel]
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358] i=offset_to_idx[dest]
[codex:1257358] for j in range(i, i+120):
[codex:1257358] off,name,data=ops[j]
[codex:1257358] if data:
[codex:1257358] print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358] else:
[codex:1257358] print(f'{off:06x}: {name}')
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 49ms:
[codex:1257358] selector dest 0x1f62
[codex:1257358] 001f62: JUMPDEST
[codex:1257358] 001f63: CALLVALUE
[codex:1257358] 001f64: PUSH2 0x03b2
[codex:1257358] 001f67: JUMPI
[codex:1257358] 001f68: PUSH1 0x40
[codex:1257358] 001f6a: CALLDATASIZE
[codex:1257358] 001f6b: PUSH1 0x03
[codex:1257358] 001f6d: NOT
[codex:1257358] 001f6e: ADD
[codex:1257358] 001f6f: SLT
[codex:1257358] 001f70: PUSH2 0x03b2
[codex:1257358] 001f73: JUMPI
[codex:1257358] 001f74: PUSH2 0x1f7b
[codex:1257358] 001f77: PUSH2 0x3fa8
[codex:1257358] 001f7a: JUMP
[codex:1257358] 001f7b: JUMPDEST
[codex:1257358] 001f7c: PUSH1 0x24
[codex:1257358] 001f7e: CALLDATALOAD
[codex:1257358] 001f7f: PUSH2 0x1f86
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing access control in mint function**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358]
[codex:1257358] # parse ops to detect PUSH2 0x4921 followed by JUMP
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]; idx+=1
[codex:1257358] data=b''
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]; idx+=n
[codex:1257358] ops.append((idx-1,op,data))
[codex:1257358]
[codex:1257358] for i,(off,op,data) in enumerate(ops[:-1]):
[codex:1257358] if op==0x61 and data==b'\\x49\\x21':
[codex:1257358] if ops[i+1][1]==0x56: # JUMP
[codex:1257358] print('PUSH2 0x4921 JUMP at', hex(off))
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 57ms:
[codex:1257358] PUSH2 0x4921 JUMP at 0x528
[codex:1257358] PUSH2 0x4921 JUMP at 0x96c
[codex:1257358] PUSH2 0x4921 JUMP at 0xf12
[codex:1257358] PUSH2 0x4921 JUMP at 0xf66
[codex:1257358] PUSH2 0x4921 JUMP at 0x12df
[codex:1257358] PUSH2 0x4921 JUMP at 0x13d8
[codex:1257358] PUSH2 0x4921 JUMP at 0x14e7
[codex:1257358] PUSH2 0x4921 JUMP at 0x1dab
[codex:1257358] PUSH2 0x4921 JUMP at 0x1f26
[codex:1257358] PUSH2 0x4921 JUMP at 0x23ec
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing mint function and role checks**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358]
[codex:1257358] opnames={
[codex:1257358] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1257358] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358]
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358] idx+=1
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-n-1,name,data))
[codex:1257358] else:
[codex:1257358] ops.append((idx-1,name,b''))
[codex:1257358]
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358]
[codex:1257358] def dump(start,count=120):
[codex:1257358] i=offset_to_idx.get(start)
[codex:1257358] if i is None:
[codex:1257358] # find nearest previous
[codex:1257358] offs=sorted(offset_to_idx)
[codex:1257358] prev=max(o for o in offs if o<=start)
[codex:1257358] i=offset_to_idx[prev]
[codex:1257358] for j in range(i, min(len(ops), i+count)):
[codex:1257358] off,name,data=ops[j]
[codex:1257358] if data:
[codex:1257358] print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358] else:
[codex:1257358] print(f'{off:06x}: {name}')
[codex:1257358]
[codex:1257358] print('dump at 0x45e0')
[codex:1257358] dump(0x45e0, 120)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 45ms:
[codex:1257358] dump at 0x45e0
[codex:1257358] 0045e0: JUMPDEST
[codex:1257358] 0045e1: DUP2
[codex:1257358] 0045e2: DUP2
[codex:1257358] 0045e3: MUL
[codex:1257358] 0045e4: SWAP3
[codex:1257358] 0045e5: SWAP2
[codex:1257358] 0045e6: DUP2
[codex:1257358] 0045e7: ISZERO
[codex:1257358] 0045e8: SWAP2
[codex:1257358] 0045e9: DUP5
[codex:1257358] 0045ea: DIV
[codex:1257358] 0045eb: EQ
[codex:1257358] 0045ec: OR
[codex:1257358] 0045ed: ISZERO
[codex:1257358] 0045ee: PUSH2 0x2636
[codex:1257358] 0045f1: JUMPI
[codex:1257358] 0045f2: JUMP
[codex:1257358] 0045f3: JUMPDEST
[codex:1257358] 0045f4: DUP2
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing mint function for role checks**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358] # disasm
[codex:1257358] opnames={
[codex:1257358] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:1257358] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:1257358] 0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:1257358] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1257358] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:1257358] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',
[codex:1257358] 0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:1257358] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:1257358] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:1257358] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:1257358] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xf6:'INVALID',0xf7:'SELFDESTRUCT',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:1257358]
[codex:1257358] ops=[]
[codex:1257358] idx=0
[codex:1257358] while idx<len(bs):
[codex:1257358] op=bs[idx]
[codex:1257358] name=opnames.get(op,f'OP_{op:02x}')
[codex:1257358] idx+=1
[codex:1257358] if 0x60<=op<=0x7f:
[codex:1257358] n=op-0x5f
[codex:1257358] data=bs[idx:idx+n]
[codex:1257358] idx+=n
[codex:1257358] ops.append((idx-n-1,name,data))
[codex:1257358] else:
[codex:1257358] ops.append((idx-1,name,b''))
[codex:1257358]
[codex:1257358] offset_to_idx={off:i for i,(off,_,__) in enumerate(ops)}
[codex:1257358]
[codex:1257358] def dump(start,count=80):
[codex:1257358] i=offset_to_idx.get(start)
[codex:1257358] if i is None:
[codex:1257358] # find nearest previous
[codex:1257358] offs=sorted(offset_to_idx)
[codex:1257358] prev=max(o for o in offs if o<=start)
[codex:1257358] i=offset_to_idx[prev]
[codex:1257358] for j in range(i, min(len(ops), i+count)):
[codex:1257358] off,name,data=ops[j]
[codex:1257358] if data:
[codex:1257358] print(f'{off:06x}: {name} 0x{data.hex()}')
[codex:1257358] else:
[codex:1257358] print(f'{off:06x}: {name}')
[codex:1257358]
[codex:1257358] print('dump at 0x487d')
[codex:1257358] dump(0x487d, 80)
[codex:1257358] print('\\nDump at 0x48b2')
[codex:1257358] dump(0x48b2, 80)
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 52ms:
[codex:1257358] dump at 0x487d
[codex:1257358] 00487d: JUMPDEST
[codex:1257358] 00487e: OP_5f
[codex:1257358] 00487f: MLOAD
[codex:1257358] 004880: PUSH1 0x20
[codex:1257358] 004882: PUSH2 0x5cfd
[codex:1257358] 004885: OP_5f
[codex:1257358] 004886: CODECOPY
[codex:1257358] 004887: OP_5f
[codex:1257358] 004888: MLOAD
[codex:1257358] 004889: SWAP1
[codex:1257358] 00488a: OP_5f
[codex:1257358] 00488b: MSTORE
[codex:1257358] 00488c: OP_5c
[codex:1257358] 00488d: PUSH2 0x48a3
[codex:1257358] 004890: JUMPI
[codex:1257358] 004891: PUSH1 0x01
[codex:1257358] 004893: OP_5f
[codex:1257358] 004894: MLOAD
[codex:1257358] 004895: PUSH1 0x20
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Analyzing contract bytecode for access control and opcodes**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc "python - <<'PY'
[codex:1257358] from pathlib import Path
[codex:1257358] hexline=None
[codex:1257358] for line in Path('BYTECODE_BUNDLE.txt').read_text().splitlines():
[codex:1257358] if line.startswith('0x'):
[codex:1257358] hexline=line.strip();break
[codex:1257358] bs=bytes.fromhex(hexline[2:])
[codex:1257358]
[codex:1257358] off=0
[codex:1257358] callcode=[]
[codex:1257358] selfdestruct=[]
[codex:1257358] for i,b in enumerate(bs):
[codex:1257358] if b==0xf2:
[codex:1257358] callcode.append(i)
[codex:1257358] if b==0xff:
[codex:1257358] selfdestruct.append(i)
[codex:1257358]
[codex:1257358] print('CALLCODE count',len(callcode))
[codex:1257358] print('SELFDESTRUCT count',len(selfdestruct))
[codex:1257358] PY" in /tmp/codex-multi-yg56dzmp succeeded in 33ms:
[codex:1257358] CALLCODE count 36
[codex:1257358] SELFDESTRUCT count 273
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Evaluating upgradeable contract risks**
[codex:1257358] exec
[codex:1257358] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-yg56dzmp succeeded in 5ms:
[codex:1257358] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1257358]
[codex:1257358] thinking
[codex:1257358] **Preparing JSON security summary**
[codex:1257358]
[codex:1257358] I'm ensuring the JSON output follows the schema with a no_findings boolean, a concise summary string, and an empty findings array since no concrete security issues were discerned from the bytecode and disassembly analysis. The summary will plainly state that no issues were found, reflecting a thorough check including UUPS proxy behavior and access controls.
[codex:1257358] codex
[codex:1257358] {"no_findings":true,"summary":"No concrete security issues could be determined from the bytecode/disassembly patterns alone.","findings":[]}
[codex:1257358] tokens used
[codex:1257358] 126,897
[codex:1257358] {"no_findings":true,"summary":"No concrete security issues could be determined from the bytecode/disassembly patterns alone.","findings":[]}
{
"codex": {
"ran_at": "2025-12-29T08:28:37.728155+00:00",
"returncode": 0
},
"summary": "No concrete security issues could be determined from the bytecode/disassembly patterns alone.",
"raw_final": {
"summary": "No concrete security issues could be determined from the bytecode/disassembly patterns alone.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: ISZERO 0000000a: PUSH2 0x0011 0000000d: JUMPI 0000000e: PUSH0 0000000f: DUP1 00000010: REVERT 00000011: JUMPDEST 00000012: PUSH0 00000013: CALLDATALOAD 00000014: PUSH1 0xe0 00000016: SHR 00000017: DUP1 00000018: PUSH4 0x0130c4d2 0000001d: EQ 0000001e: PUSH2 0x3564 00000021: JUMPI 00000022: DUP1 00000023: PUSH4 0x01ffc9a7 00000028: EQ 00000029: PUSH2 0x350e 0000002c: JUMPI 0000002d: DUP1 0000002e: PUSH4 0x06fdde03 00000033: EQ 00000034: PUSH2 0x3451 00000037: JUMPI 00000038: DUP1 00000039: PUSH4 0x095ea7b3 0000003e: EQ 0000003f: PUSH2 0x342b 00000042: JUMPI 00000043: DUP1 00000044: PUSH4 0x0f45684a 00000049: EQ 0000004a: PUSH2 0x2725 0000004d: JUMPI 0000004e: DUP1 0000004f: PUSH4 0x106e846b 00000054: EQ 00000055: PUSH2 0x3400 00000058: JUMPI 00000059: DUP1 0000005a: PUSH4 0x10a470ab 0000005f: EQ 00000060: PUSH2 0x2f43 00000063: JUMPI 00000064: DUP1 00000065: PUSH4 0x113ac8f6 0000006a: EQ 0000006b: PUSH2 0x2f28 0000006e: JUMPI 0000006f: DUP1 00000070: PUSH4 0x15770f92 00000075: EQ 00000076: PUSH2 0x2eff 00000079: JUMPI 0000007a: DUP1 0000007b: PUSH4 0x18160ddd 00000080: EQ 00000081: PUSH2 0x2ed6 00000084: JUMPI 00000085: DUP1 00000086: PUSH4 0x1820cabb 0000008b: EQ 0000008c: PUSH2 0x2e9c 0000008f: JUMPI 00000090: DUP1 00000091: PUSH4 0x1e8e51da 00000096: EQ 00000097: PUSH2 0x2e73 0000009a: JUMPI 0000009b: DUP1 0000009c: PUSH4 0x23b872dd 000000a1: EQ 000000a2: PUSH2 0x2d34 000000a5: JUMPI 000000a6: DUP1 000000a7: PUSH4 0x248a9ca3 000000ac: EQ 000000ad: PUSH2 0x2cfd 000000b0: JUMPI 000000b1: DUP1 000000b2: PUSH4 0x27f92376 000000b7: EQ 000000b8: PUSH2 0x2ccf 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0x28f079c2 000000c2: EQ 000000c3: PUSH2 0x2c9e 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x2b3afdb0 000000cd: EQ 000000ce: PUSH2 0x279b 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x2f2ff15d 000000d8: EQ 000000d9: PUSH2 0x2751 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x313ce567 000000e3: EQ 000000e4: PUSH2 0x2725 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x36448777 000000ee: EQ 000000ef: PUSH2 0x26fc 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0x3644e515 000000f9: EQ 000000fa: PUSH2 0x26e2 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x36568abe 00000104: EQ 00000105: PUSH2 0x269e 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x38898ca2 0000010f: EQ 00000110: PUSH2 0x264a 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x3dc69f2c 0000011a: EQ 0000011b: PUSH2 0x23d7 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x3e0dc34e 00000125: EQ 00000126: PUSH2 0x239b 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x3f668d6f 00000130: EQ 00000131: PUSH2 0x234d 00000134: JUMPI 00000135: DUP1 00000136: PUSH4 0x3fc03c26 0000013b: EQ 0000013c: PUSH2 0x2228 0000013f: JUMPI 00000140: DUP1 00000141: PUSH4 0x40c10f19 00000146: EQ 00000147: PUSH2 0x1f62 0000014a: JUMPI 0000014b: DUP1 0000014c: PUSH4 0x43469f32 00000151: EQ 00000152: PUSH2 0x1f11 00000155: JUMPI 00000156: DUP1 00000157: PUSH4 0x4f1ef286 0000015c: EQ 0000015d: PUSH2 0x1d26 00000160: JUMPI 00000161: DUP1 00000162: PUSH4 0x51fe0e18 00000167: EQ 00000168: PUSH2 0x1cf1 0000016b: JUMPI 0000016c: DUP1 0000016d: PUSH4 0x52d1902d 00000172: EQ 00000173: PUSH2 0x1c8b 00000176: JUMPI 00000177: DUP1 00000178: PUSH4 0x58794456 0000017d: EQ 0000017e: PUSH2 0x1c62 00000181: JUMPI 00000182: DUP1 00000183: PUSH4 0x601c1861 00000188: EQ 00000189: PUSH2 0x1b7f 0000018c: JUMPI 0000018d: DUP1 0000018e: PUSH4 0x60b71d4e 00000193: EQ 00000194: PUSH2 0x1b56 00000197: JUMPI 00000198: DUP1 00000199: PUSH4 0x61b01b5d 0000019e: EQ 0000019f: PUSH2 0x1b1a 000001a2: JUMPI 000001a3: DUP1 000001a4: PUSH4 0x641ffaa1 000001a9: EQ 000001aa: PUSH2 0x19c7 000001ad: JUMPI 000001ae: DUP1 000001af: PUSH4 0x6780a311 000001b4: EQ 000001b5: PUSH2 0x1996 000001b8: JUMPI 000001b9: DUP1 000001ba: PUSH4 0x70a08231 000001bf: EQ 000001c0: PUSH2 0x1952 000001c3: JUMPI 000001c4: DUP1 000001c5: PUSH4 0x72e30f6a 000001ca: EQ 000001cb: PUSH2 0x186d 000001ce: JUMPI 000001cf: DUP1 000001d0: PUSH4 0x754f56e2 000001d5: EQ 000001d6: PUSH2 0x183f 000001d9: JUMPI 000001da: DUP1 000001db: PUSH4 0x785ffb37 000001e0: EQ 000001e1: PUSH2 0x1805 000001e4: JUMPI 000001e5: DUP1 000001e6: PUSH4 0x7ecebe00 000001eb: EQ 000001ec: PUSH2 0x17ae 000001ef: JUMPI 000001f0: DUP1 000001f1: PUSH4 0x7fb65265 000001f6: EQ 000001f7: PUSH2 0x1785 000001fa: JUMPI 000001fb: DUP1 000001fc: PUSH4 0x84b0196e 00000201: EQ 00000202: PUSH2 0x1633 00000205: JUMPI 00000206: DUP1 00000207: PUSH4 0x88cb0df7 0000020c: EQ 0000020d: PUSH2 0x1517 00000210: JUMPI 00000211: DUP1 00000212: PUSH4 0x8c66d04f 00000217: EQ 00000218: PUSH2 0x14c0 0000021b: JUMPI 0000021c: DUP1 0000021d: PUSH4 0x8cdc1f24 00000222: EQ 00000223: PUSH2 0x13b9 00000226: JUMPI 00000227: DUP1 00000228: PUSH4 0x8d55de63 0000022d: EQ 0000022e: PUSH2 0x132f 00000231: JUMPI 00000232: DUP1 00000233: PUSH4 0x90c83e94 00000238: EQ 00000239: PUSH2 0x12c5 0000023c: JUMPI 0000023d: DUP1 0000023e: PUSH4 0x91d14854 00000243: EQ 00000244: PUSH2 0x126f 00000247: JUMPI 00000248: DUP1 00000249: PUSH4 0x92c883fb 0000024e: EQ 0000024f: PUSH2 0x10e9 00000252: JUMPI 00000253: DUP1 00000254: PUSH4 0x95d89b41 00000259: EQ 0000025a: PUSH2 0x0ff3 0000025d: JUMPI 0000025e: DUP1 0000025f: PUSH4 0x96c82e57 00000264: EQ 00000265: PUSH2 0x0fca 00000268: JUMPI 00000269: DUP1 0000026a: PUSH4 0x99a22d68 0000026f: EQ 00000270: PUSH2 0x0f99 00000273: JUMPI 00000274: DUP1 00000275: PUSH4 0x9bb81119 0000027a: EQ 0000027b: PUSH2 0x0f70 0000027e: JUMPI 0000027f: DUP1 00000280: PUSH4 0x9c3701a0 00000285: EQ 00000286: PUSH2 0x0f50 00000289: JUMPI 0000028a: DUP1 0000028b: PUSH4 0x9d3c38c5 00000290: EQ 00000291: PUSH2 0x0ed0 00000294: JUMPI 00000295: DUP1 00000296: PUSH4 0xa217fddf 0000029b: EQ 0000029c: PUSH2 0x0eb6 0000029f: JUMPI 000002a0: DUP1 000002a1: PUSH4 0xa9059cbb 000002a6: EQ 000002a7: PUSH2 0x0e85 000002aa: JUMPI 000002ab: DUP1 000002ac: PUSH4 0xad3cb1cc 000002b1: EQ 000002b2: PUSH2 0x0e3e 000002b5: JUMPI 000002b6: DUP1 000002b7: PUSH4 0xaf8214ef 000002bc: EQ 000002bd: PUSH2 0x0e04 000002c0: JUMPI 000002c1: DUP1 000002c2: PUSH4 0xb00eb9fe 000002c7: EQ 000002c8: PUSH2 0x0dd2 000002cb: JUMPI 000002cc: DUP1 000002cd: PUSH4 0xb4d1d795 000002d2: EQ 000002d3: PUSH2 0x0d98 000002d6: JUMPI 000002d7: DUP1 000002d8: PUSH4 0xb6192d0b 000002dd: EQ 000002de: PUSH2 0x0c09 000002e1: JUMPI 000002e2: DUP1 000002e3: PUSH4 0xb81d85f0 000002e8: EQ 000002e9: PUSH2 0x0b60 000002ec: JUMPI 000002ed: DUP1 000002ee: PUSH4 0xc0dca06e 000002f3: EQ 000002f4: PUSH2 0x09d3 000002f7: JUMPI 000002f8: DUP1 000002f9: PUSH4 0xc646b166 000002fe: EQ 000002ff: PUSH2 0x0931 00000302: JUMPI 00000303: DUP1 00000304: PUSH4 0xca981909 00000309: EQ 0000030a: PUSH2 0x08f7 0000030d: JUMPI 0000030e: DUP1 0000030f: PUSH4 0xcdfed0ab 00000314: EQ 00000315: PUSH2 0x08bb 00000318: JUMPI 00000319: DUP1 0000031a: PUSH4 0xd505accf 0000031f: EQ 00000320: PUSH2 0x0765 00000323: JUMPI 00000324: DUP1 00000325: PUSH4 0xd547741f 0000032a: EQ 0000032b: PUSH2 0x0714 0000032e: JUMPI 0000032f: DUP1 00000330: PUSH4 0xdd62ed3e 00000335: EQ 00000336: PUSH2 0x069b 00000339: JUMPI 0000033a: DUP1 0000033b: PUSH4 0xe065608b 00000340: EQ 00000341: PUSH2 0x04e7 00000344: JUMPI 00000345: DUP1 00000346: PUSH4 0xe1a45218 0000034b: EQ 0000034c: PUSH2 0x04cb 0000034f: JUMPI 00000350: DUP1 00000351: PUSH4 0xe465eb9e 00000356: EQ 00000357: PUSH2 0x04a2 0000035a: JUMPI 0000035b: DUP1 0000035c: PUSH4 0xe46e7058 00000361: EQ 00000362: PUSH2 0x0473 00000365: JUMPI 00000366: DUP1 00000367: PUSH4 0xe5b15b52 0000036c: EQ 0000036d: PUSH2 0x03e8 00000370: JUMPI 00000371: DUP1 00000372: PUSH4 0xfc0c546a 00000377: EQ 00000378: PUSH2 0x03b6 0000037b: JUMPI 0000037c: PUSH4 0xfeb56b15 00000381: EQ 00000382: PUSH2 0x0389 00000385: JUMPI 00000386: PUSH0 00000387: DUP1 00000388: REVERT 00000389: JUMPDEST 0000038a: CALLVALUE 0000038b: PUSH2 0x03b2 0000038e: JUMPI 0000038f: PUSH0 00000390: CALLDATASIZE 00000391: PUSH1 0x03 00000393: NOT 00000394: ADD 00000395: SLT 00000396: PUSH2 0x03b2 00000399: JUMPI 0000039a: PUSH1 0x20 0000039c: PUSH0 0000039d: MLOAD 0000039e: PUSH1 0x20 000003a0: PUSH2 0x5cdd 000003a3: PUSH0 000003a4: CODECOPY 000003a5: PUSH0 000003a6: MLOAD 000003a7: SWAP1 000003a8: PUSH0 000003a9: MSTORE 000003aa: SLOAD 000003ab: PUSH1 0x40 000003ad: MLOAD 000003ae: SWAP1 000003af: DUP2 000003b0: MSTORE 000003b1: RETURN 000003b2: JUMPDEST 000003b3: PUSH0 000003b4: DUP1 000003b5: REVERT 000003b6: JUMPDEST 000003b7: CALLVALUE 000003b8: PUSH2 0x03b2 000003bb: JUMPI 000003bc: PUSH0 000003bd: CALLDATASIZE 000003be: PUSH1 0x03 000003c0: NOT 000003c1: ADD 000003c2: SLT 000003c3: PUSH2 0x03b2 000003c6: JUMPI 000003c7: PUSH1 0x20 000003c9: PUSH1 0x01 000003cb: PUSH1 0x01 000003cd: PUSH1 0xa0 000003cf: SHL 000003d0: SUB 000003d1: PUSH0 000003d2: MLOAD 000003d3: PUSH1 0x20 000003d5: PUSH2 0x5d1d 000003d8: PUSH0 000003d9: CODECOPY 000003da: PUSH0 000003db: MLOAD 000003dc: SWAP1 000003dd: PUSH0 000003de: MSTORE 000003df: SLOAD 000003e0: AND 000003e1: PUSH1 0x40 000003e3: MLOAD 000003e4: SWAP1 000003e5: DUP2 000003e6: MSTORE 000003e7: RETURN 000003e8: JUMPDEST 000003e9: CALLVALUE 000003ea: PUSH2 0x03b2 000003ed: JUMPI 000003ee: PUSH2 0x046f 000003f1: PUSH2 0x0413 000003f4: PUSH2 0x040e 000003f7: PUSH2 0x03ff 000003fa: CALLDATASIZE 000003fb: PUSH2 0x4112 000003fe: JUMP 000003ff: JUMPDEST 00000400: SWAP1 00000401: PUSH2 0x0408 00000404: PUSH2 0x43b1 00000407: JUMP 00000408: JUMPDEST 00000409: POP 0000040a: PUSH2 0x49bd 0000040d: JUMP 0000040e: JUMPDEST 0000040f: PUSH2 0x4435 00000412: JUMP 00000413: JUMPDEST 00000414: PUSH1 0x40 00000416: MLOAD 00000417: SWAP2 00000418: DUP3 00000419: SWAP2 0000041a: DUP3 0000041b: SWAP2 0000041c: SWAP1 0000041d: SWAP2 0000041e: PUSH1 0xe0 00000420: DUP1 00000421: PUSH2 0x0100 00000424: DUP4 00000425: ADD 00000426: SWAP5 00000427: DUP1 00000428: MLOAD 00000429: DUP5 0000042a: MSTORE 0000042b: PUSH1 0x20 0000042d: DUP2 0000042e: ADD 0000042f: MLOAD 00000430: PUSH1 0x20 00000432: DUP6 00000433: ADD 00000434: MSTORE 00000435: PUSH1 0x40 00000437: DUP2 00000438: ADD 00000439: MLOAD 0000043a: PUSH1 0x40 0000043c: DUP6 0000043d: ADD 0000043e: MSTORE 0000043f: PUSH1 0x60 00000441: DUP2 00000442: ADD 00000443: MLOAD 00000444: PUSH1 0x60 00000446: DUP6 00000447: ADD 00000448: MSTORE 00000449: PUSH1 0x80 0000044b: DUP2 0000044c: ADD 0000044d: MLOAD 0000044e: PUSH1 0x80 00000450: DUP6 00000451: ADD 00000452: MSTORE 00000453: PUSH1 0xa0 00000455: DUP2 00000456: ADD 00000457: MLOAD 00000458: PUSH1 0xa0 0000045a: DUP6 0000045b: ADD 0000045c: MSTORE 0000045d: PUSH1 0xc0 0000045f: DUP2 00000460: ADD 00000461: MLOAD 00000462: PUSH1 0xc0 00000464: DUP6 00000465: ADD 00000466: MSTORE 00000467: ADD 00000468: MLOAD 00000469: ISZERO 0000046a: ISZERO 0000046b: SWAP2 0000046c: ADD 0000046d: MSTORE 0000046e: JUMP 0000046f: JUMPDEST 00000470: SUB 00000471: SWAP1 00000472: RETURN 00000473: JUMPDEST 00000474: CALLVALUE 00000475: PUSH2 0x03b2 00000478: JUMPI 00000479: PUSH0 0000047a: CALLDATASIZE 0000047b: PUSH1 0x03 0000047d: NOT 0000047e: ADD 0000047f: SLT 00000480: PUSH2 0x03b2 00000483: JUMPI 00000484: PUSH1 0x20 00000486: PUSH1 0xff 00000488: PUSH0 00000489: MLOAD 0000048a: PUSH1 0x20 0000048c: PUSH2 0x5afd 0000048f: PUSH0 00000490: CODECOPY 00000491: PUSH0 00000492: MLOAD 00000493: SWAP1 00000494: PUSH0 00000495: MSTORE 00000496: SLOAD 00000497: PUSH1 0x08 00000499: SHR 0000049a: AND 0000049b: PUSH1 0x40 0000049d: MLOAD 0000049e: SWAP1 0000049f: DUP2 000004a0: MSTORE 000004a1: RETURN 000004a2: JUMPDEST 000004a3: CALLVALUE 000004a4: PUSH2 0x03b2 000004a7: JUMPI 000004a8: PUSH0 000004a9: CALLDATASIZE 000004aa: PUSH1 0x03 000004ac: NOT 000004ad: ADD 000004ae: SLT 000004af: PUSH2 0x03b2 000004b2: JUMPI 000004b3: PUSH1 0x20 000004b5: PUSH0 000004b6: MLOAD 000004b7: PUSH1 0x20 000004b9: PUSH2 0x5b3d 000004bc: PUSH0 000004bd: CODECOPY 000004be: PUSH0 000004bf: MLOAD 000004c0: SWAP1 000004c1: PUSH0 000004c2: MSTORE 000004c3: SLOAD 000004c4: PUSH1 0x40 000004c6: MLOAD 000004c7: SWAP1 000004c8: DUP2 000004c9: MSTORE 000004ca: RETURN 000004cb: JUMPDEST 000004cc: CALLVALUE 000004cd: PUSH2 0x03b2 000004d0: JUMPI 000004d1: PUSH0 000004d2: CALLDATASIZE 000004d3: PUSH1 0x03 000004d5: NOT 000004d6: ADD 000004d7: SLT 000004d8: PUSH2 0x03b2 000004db: JUMPI 000004dc: PUSH1 0x20 000004de: PUSH1 0x40 000004e0: MLOAD 000004e1: PUSH2 0x2710 000004e4: DUP2 000004e5: MSTORE 000004e6: RETURN 000004e7: JUMPDEST 000004e8: CALLVALUE 000004e9: PUSH2 0x03b2 000004ec: JUMPI 000004ed: PUSH1 0xa0 000004ef: CALLDATASIZE 000004f0: PUSH1 0x03 000004f2: NOT 000004f3: ADD 000004f4: SLT 000004f5: PUSH2 0x03b2 000004f8: JUMPI 000004f9: PUSH2 0x0500 000004fc: PUSH2 0x3fea 000004ff: JUMP 00000500: JUMPDEST 00000501: PUSH1 0x24 00000503: CALLDATALOAD 00000504: PUSH1 0x44 00000506: CALLDATALOAD 00000507: SWAP2 00000508: PUSH1 0x64 0000050a: CALLDATALOAD 0000050b: DUP1 0000050c: ISZERO 0000050d: ISZERO 0000050e: DUP1 0000050f: SWAP2 00000510: SUB 00000511: PUSH2 0x03b2 00000514: JUMPI 00000515: PUSH1 0x84 00000517: CALLDATALOAD 00000518: SWAP2 00000519: DUP3 0000051a: ISZERO 0000051b: ISZERO 0000051c: DUP1 0000051d: SWAP4 0000051e: SUB 0000051f: PUSH2 0x03b2 00000522: JUMPI 00000523: PUSH2 0x052a 00000526: PUSH2 0x4921 00000529: JUMP 0000052a: JUMPDEST 0000052b: PUSH2 0x2710 0000052e: DUP5 0000052f: GT 00000530: PUSH2 0x0658 00000533: JUMPI 00000534: PUSH2 0x2710 00000537: DUP6 00000538: GT 00000539: PUSH2 0x0617 0000053c: JUMPI 0000053d: SWAP1 0000053e: PUSH32 0xdef0a5f359f70f4feaf27bbd47c7e476348ea79108e46990d5b73efbc885f037 0000055f: SWAP5 00000560: PUSH1 0xa0 00000562: SWAP5 00000563: SWAP4 00000564: SWAP3 00000565: ISZERO 00000566: ISZERO 00000567: SWAP4 00000568: PUSH1 0xff 0000056a: NOT 0000056b: PUSH0 0000056c: MLOAD 0000056d: PUSH1 0x20 0000056f: PUSH2 0x5c9d 00000572: PUSH0 00000573: CODECOPY 00000574: PUSH0 00000575: MLOAD 00000576: SWAP1 00000577: PUSH0 00000578: MSTORE 00000579: SLOAD 0000057a: AND 0000057b: PUSH1 0xff 0000057d: DUP7 0000057e: AND 0000057f: OR 00000580: PUSH0 00000581: MLOAD 00000582: PUSH1 0x20 00000584: PUSH2 0x5c9d 00000587: PUSH0 00000588: CODECOPY 00000589: PUSH0 0000058a: MLOAD 0000058b: SWAP1 0000058c: PUSH0 0000058d: MSTORE 0000058e: SSTORE 0000058f: DUP1 00000590: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea09 000005b1: SSTORE 000005b2: DUP2 000005b3: PUSH0 000005b4: MLOAD 000005b5: PUSH1 0x20 000005b7: PUSH2 0x5c1d 000005ba: PUSH0 000005bb: CODECOPY 000005bc: PUSH0 000005bd: MLOAD 000005be: SWAP1 000005bf: PUSH0 000005c0: MSTORE 000005c1: SSTORE 000005c2: PUSH0 000005c3: MLOAD 000005c4: PUSH1 0x20 000005c6: PUSH2 0x5c9d 000005c9: PUSH0 000005ca: CODECOPY 000005cb: PUSH0 000005cc: MLOAD 000005cd: SWAP1 000005ce: PUSH0 000005cf: MSTORE 000005d0: SLOAD 000005d1: PUSH3 0xff0000 000005d5: DUP6 000005d6: PUSH1 0x10 000005d8: SHL 000005d9: AND 000005da: SWAP1 000005db: PUSH2 0xff00 000005de: DUP6 000005df: PUSH1 0x08 000005e1: SHL 000005e2: AND 000005e3: SWAP1 000005e4: PUSH3 0xffff00 000005e8: NOT 000005e9: AND 000005ea: OR 000005eb: OR 000005ec: PUSH0 000005ed: MLOAD 000005ee: PUSH1 0x20 000005f0: PUSH2 0x5c9d 000005f3: PUSH0 000005f4: CODECOPY 000005f5: PUSH0 000005f6: MLOAD 000005f7: SWAP1 000005f8: PUSH0 000005f9: MSTORE 000005fa: SSTORE 000005fb: PUSH1 0x40 000005fd: MLOAD 000005fe: SWAP5 000005ff: DUP6 00000600: MSTORE 00000601: PUSH1 0x20 00000603: DUP6 00000604: ADD 00000605: MSTORE 00000606: PUSH1 0x40 00000608: DUP5 00000609: ADD 0000060a: MSTORE 0000060b: PUSH1 0x60 0000060d: DUP4 0000060e: ADD 0000060f: MSTORE 00000610: PUSH1 0x80 00000612: DUP3 00000613: ADD 00000614: MSTORE 00000615: LOG1 00000616: STOP 00000617: JUMPDEST 00000618: PUSH1 0x40 0000061a: MLOAD 0000061b: PUSH4 0x38d06e1d 00000620: PUSH1 0xe0 00000622: SHL 00000623: DUP2 00000624: MSTORE 00000625: PUSH1 0x60 00000627: PUSH1 0x04 00000629: DUP3 0000062a: ADD 0000062b: MSTORE 0000062c: PUSH1 0x09 0000062e: PUSH1 0x64 00000630: DUP3 00000631: ADD 00000632: MSTORE 00000633: PUSH9 0x06c7044656c7461425 0000063d: PUSH1 0xbc 0000063f: SHL 00000640: PUSH1 0x84 00000642: DUP3 00000643: ADD 00000644: MSTORE 00000645: PUSH1 0x24 00000647: DUP2 00000648: ADD 00000649: DUP7 0000064a: SWAP1 0000064b: MSTORE 0000064c: PUSH2 0x2710 0000064f: PUSH1 0x44 00000651: DUP3 00000652: ADD 00000653: MSTORE 00000654: PUSH1 0xa4 00000656: SWAP1 00000657: REVERT 00000658: JUMPDEST 00000659: PUSH1 0x40 0000065b: MLOAD 0000065c: PUSH4 0x38d06e1d 00000661: PUSH1 0xe0 00000663: SHL 00000664: DUP2 00000665: MSTORE 00000666: PUSH1 0x60 00000668: PUSH1 0x04 0000066a: DUP3 0000066b: ADD 0000066c: MSTORE 0000066d: PUSH1 0x0b 0000066f: PUSH1 0x64 00000671: DUP3 00000672: ADD 00000673: MSTORE 00000674: PUSH11 0x07377617044656c7461425 00000680: PUSH1 0xac 00000682: SHL 00000683: PUSH1 0x84 00000685: DUP3 00000686: ADD 00000687: MSTORE 00000688: PUSH1 0x24 0000068a: DUP2 0000068b: ADD 0000068c: DUP6 0000068d: SWAP1 0000068e: MSTORE 0000068f: PUSH2 0x2710 00000692: PUSH1 0x44 00000694: DUP3 00000695: ADD 00000696: MSTORE 00000697: PUSH1 0xa4 00000699: SWAP1 0000069a: REVERT 0000069b: JUMPDEST 0000069c: CALLVALUE 0000069d: PUSH2 0x03b2 000006a0: JUMPI 000006a1: PUSH1 0x40 000006a3: CALLDATASIZE 000006a4: PUSH1 0x03 000006a6: NOT 000006a7: ADD 000006a8: SLT 000006a9: PUSH2 0x03b2 000006ac: JUMPI 000006ad: PUSH2 0x06b4 000006b0: PUSH2 0x3fa8 000006b3: JUMP 000006b4: JUMPDEST 000006b5: PUSH1 0x01 000006b7: PUSH1 0x01 000006b9: PUSH1 0xa0 000006bb: SHL 000006bc: SUB 000006bd: PUSH2 0x06fe 000006c0: PUSH2 0x06c7 000006c3: PUSH2 0x3fbe 000006c6: JUMP 000006c7: JUMPDEST 000006c8: SWAP3 000006c9: PUSH1 0x01 000006cb: PUSH1 0x01 000006cd: PUSH1 0xa0 000006cf: SHL 000006d0: SUB 000006d1: AND 000006d2: PUSH0 000006d3: MSTORE 000006d4: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01 000006f5: PUSH1 0x20 000006f7: MSTORE 000006f8: PUSH1 0x40 000006fa: PUSH0 000006fb: KECCAK256 000006fc: SWAP1 000006fd: JUMP 000006fe: JUMPDEST 000006ff: SWAP2 00000700: AND 00000701: PUSH0 00000702: MSTORE 00000703: PUSH1 0x20 00000705: MSTORE 00000706: PUSH1 0x20 00000708: PUSH1 0x40 0000070a: PUSH0 0000070b: KECCAK256 0000070c: SLOAD 0000070d: PUSH1 0x40 0000070f: MLOAD 00000710: SWAP1 00000711: DUP2 00000712: MSTORE 00000713: RETURN 00000714: JUMPDEST 00000715: CALLVALUE 00000716: PUSH2 0x03b2 00000719: JUMPI 0000071a: PUSH1 0x40 0000071c: CALLDATASIZE 0000071d: PUSH1 0x03 0000071f: NOT 00000720: ADD 00000721: SLT 00000722: PUSH2 0x03b2 00000725: JUMPI 00000726: PUSH2 0x0763 00000729: PUSH1 0x04 0000072b: CALLDATALOAD 0000072c: PUSH2 0x0733 0000072f: PUSH2 0x3fbe 00000732: JUMP 00000733: JUMPDEST 00000734: SWAP1 00000735: PUSH2 0x075e 00000738: PUSH2 0x0759 0000073b: DUP3 0000073c: PUSH0 0000073d: MSTORE 0000073e: PUSH0 0000073f: MLOAD 00000740: PUSH1 0x20 00000742: PUSH2 0x5c5d 00000745: PUSH0 00000746: CODECOPY 00000747: PUSH0 00000748: MLOAD 00000749: SWAP1 0000074a: PUSH0 0000074b: MSTORE 0000074c: PUSH1 0x20 0000074e: MSTORE 0000074f: PUSH1 0x01 00000751: PUSH1 0x40 00000753: PUSH0 00000754: KECCAK256 00000755: ADD 00000756: SLOAD 00000757: SWAP1 00000758: JUMP 00000759: JUMPDEST 0000075a: PUSH2 0x4970 0000075d: JUMP 0000075e: JUMPDEST 0000075f: PUSH2 0x507a 00000762: JUMP 00000763: JUMPDEST 00000764: STOP 00000765: JUMPDEST 00000766: CALLVALUE 00000767: PUSH2 0x03b2 0000076a: JUMPI 0000076b: PUSH1 0xe0 0000076d: CALLDATASIZE 0000076e: PUSH1 0x03 00000770: NOT 00000771: ADD 00000772: SLT 00000773: PUSH2 0x03b2 00000776: JUMPI 00000777: PUSH2 0x077e 0000077a: PUSH2 0x3fa8 0000077d: JUMP 0000077e: JUMPDEST 0000077f: PUSH2 0x0786 00000782: PUSH2 0x3fbe 00000785: JUMP 00000786: JUMPDEST 00000787: PUSH1 0x44 00000789: CALLDATALOAD 0000078a: SWAP1 0000078b: PUSH1 0x64 0000078d: CALLDATALOAD 0000078e: SWAP3 0000078f: PUSH1 0x84 00000791: CALLDATALOAD 00000792: PUSH1 0xff 00000794: DUP2 00000795: AND 00000796: DUP2 00000797: SUB 00000798: PUSH2 0x03b2 0000079b: JUMPI 0000079c: DUP5 0000079d: TIMESTAMP 0000079e: GT 0000079f: PUSH2 0x08a8 000007a2: JUMPI 000007a3: PUSH2 0x087e 000007a6: PUSH2 0x0875 000007a9: PUSH1 0x01 000007ab: PUSH1 0x01 000007ad: PUSH1 0xa0 000007af: SHL 000007b0: SUB 000007b1: SWAP3 000007b2: DUP4 000007b3: DUP6 000007b4: AND 000007b5: SWAP8 000007b6: DUP9 000007b7: PUSH0 000007b8: MSTORE 000007b9: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00 000007da: PUSH1 0x20 000007dc: MSTORE 000007dd: PUSH1 0x40 000007df: PUSH0 000007e0: KECCAK256 000007e1: SWAP1 000007e2: DUP2 000007e3: SLOAD 000007e4: SWAP2 000007e5: PUSH1 0x01 000007e7: DUP4 000007e8: ADD 000007e9: SWAP1 000007ea: SSTORE 000007eb: PUSH1 0x40 000007ed: MLOAD 000007ee: SWAP1 000007ef: PUSH1 0x20 000007f1: DUP3 000007f2: ADD 000007f3: SWAP3 000007f4: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 00000815: DUP5 00000816: MSTORE 00000817: DUP12 00000818: PUSH1 0x40 0000081a: DUP5 0000081b: ADD 0000081c: MSTORE 0000081d: DUP8 0000081e: DUP11 0000081f: AND 00000820: PUSH1 0x60 00000822: DUP5 00000823: ADD 00000824: MSTORE 00000825: DUP11 00000826: PUSH1 0x80 00000828: DUP5 00000829: ADD 0000082a: MSTORE 0000082b: PUSH1 0xa0 0000082d: DUP4 0000082e: ADD 0000082f: MSTORE 00000830: PUSH1 0xc0 00000832: DUP3 00000833: ADD 00000834: MSTORE 00000835: PUSH1 0xc0 00000837: DUP2 00000838: MSTORE 00000839: PUSH2 0x0843 0000083c: PUSH1 0xe0 0000083e: DUP3 0000083f: PUSH2 0x408d 00000842: JUMP 00000843: JUMPDEST 00000844: MLOAD 00000845: SWAP1 00000846: KECCAK256 00000847: PUSH2 0x084e 0000084a: PUSH2 0x57f6 0000084d: JUMP 0000084e: JUMPDEST 0000084f: SWAP1 00000850: PUSH1 0x40 00000852: MLOAD 00000853: SWAP2 00000854: PUSH2 0x1901 00000857: PUSH1 0xf0 00000859: SHL 0000085a: DUP4 0000085b: MSTORE 0000085c: PUSH1 0x02 0000085e: DUP4 0000085f: ADD 00000860: MSTORE 00000861: PUSH1 0x22 00000863: DUP3 00000864: ADD 00000865: MSTORE 00000866: PUSH1 0xc4 00000868: CALLDATALOAD 00000869: SWAP2 0000086a: PUSH1 0x42 0000086c: PUSH1 0xa4 0000086e: CALLDATALOAD 0000086f: SWAP3 00000870: KECCAK256 00000871: PUSH2 0x585d 00000874: JUMP 00000875: JUMPDEST 00000876: SWAP1 00000877: SWAP3 00000878: SWAP2 00000879: SWAP3 0000087a: PUSH2 0x58df 0000087d: JUMP 0000087e: JUMPDEST 0000087f: AND 00000880: DUP5 00000881: DUP2 00000882: SUB 00000883: PUSH2 0x0891 00000886: JUMPI 00000887: POP 00000888: PUSH2 0x0763 0000088b: SWAP4 0000088c: POP 0000088d: PUSH2 0x56b8 00000890: JUMP 00000891: JUMPDEST 00000892: DUP5 00000893: SWAP1 00000894: PUSH4 0x25c00723 00000899: PUSH1 0xe1 0000089b: SHL 0000089c: PUSH0 0000089d: MSTORE 0000089e: PUSH1 0x04 000008a0: MSTORE 000008a1: PUSH1 0x24 000008a3: MSTORE 000008a4: PUSH1 0x44 000008a6: PUSH0 000008a7: REVERT 000008a8: JUMPDEST 000008a9: DUP5 000008aa: PUSH4 0x313c8981 000008af: PUSH1 0xe1 000008b1: SHL 000008b2: PUSH0 000008b3: MSTORE 000008b4: PUSH1 0x04 000008b6: MSTORE 000008b7: PUSH1 0x24 000008b9: PUSH0 000008ba: REVERT 000008bb: JUMPDEST 000008bc: CALLVALUE 000008bd: PUSH2 0x03b2 000008c0: JUMPI 000008c1: PUSH0 000008c2: CALLDATASIZE 000008c3: PUSH1 0x03 000008c5: NOT 000008c6: ADD 000008c7: SLT 000008c8: PUSH2 0x03b2 000008cb: JUMPI 000008cc: PUSH1 0x20 000008ce: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea09 000008ef: SLOAD 000008f0: PUSH1 0x40 000008f2: MLOAD 000008f3: SWAP1 000008f4: DUP2 000008f5: MSTORE 000008f6: RETURN 000008f7: JUMPDEST 000008f8: CALLVALUE 000008f9: PUSH2 0x03b2 000008fc: JUMPI 000008fd: PUSH0 000008fe: CALLDATASIZE 000008ff: PUSH1 0x03 00000901: NOT 00000902: ADD 00000903: SLT 00000904: PUSH2 0x03b2 00000907: JUMPI 00000908: PUSH1 0x20 0000090a: PUSH1 0x40 0000090c: MLOAD 0000090d: PUSH32 0x66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102 0000092e: DUP2 0000092f: MSTORE 00000930: RETURN 00000931: JUMPDEST 00000932: CALLVALUE 00000933: PUSH2 0x03b2 00000936: JUMPI 00000937: PUSH32 0x5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac24 00000958: PUSH2 0x09ce 0000095b: PUSH2 0x0963 0000095e: CALLDATASIZE 0000095f: PUSH2 0x40f8 00000962: JUMP 00000963: JUMPDEST 00000964: PUSH2 0x096e 00000967: SWAP4 00000968: SWAP2 00000969: SWAP4 0000096a: PUSH2 0x4921 0000096d: JUMP 0000096e: JUMPDEST 0000096f: DUP1 00000970: PUSH2 0x0979 00000973: DUP6 00000974: DUP6 00000975: PUSH2 0x49bd 00000978: JUMP 00000979: JUMPDEST 0000097a: PUSH2 0x09a1 0000097d: DUP3 0000097e: PUSH2 0x099c 00000981: PUSH1 0x02 00000983: PUSH0 00000984: MLOAD 00000985: PUSH1 0x20 00000987: PUSH2 0x5b9d 0000098a: PUSH0 0000098b: CODECOPY 0000098c: PUSH0 0000098d: MLOAD 0000098e: SWAP1 0000098f: PUSH0 00000990: MSTORE 00000991: SLOAD 00000992: SWAP5 00000993: ADD 00000994: SWAP4 00000995: DUP5 00000996: SLOAD 00000997: SWAP1 00000998: PUSH2 0x45d3 0000099b: JUMP 0000099c: JUMPDEST 0000099d: PUSH2 0x45c6 000009a0: JUMP 000009a1: JUMPDEST 000009a2: PUSH0 000009a3: MLOAD 000009a4: PUSH1 0x20 000009a6: PUSH2 0x5b9d 000009a9: PUSH0 000009aa: CODECOPY 000009ab: PUSH0 000009ac: MLOAD 000009ad: SWAP1 000009ae: PUSH0 000009af: MSTORE 000009b0: SSTORE 000009b1: SSTORE 000009b2: PUSH1 0x40 000009b4: MLOAD 000009b5: SWAP4 000009b6: DUP5 000009b7: SWAP4 000009b8: DUP5 000009b9: PUSH1 0x40 000009bb: SWAP2 000009bc: SWAP5 000009bd: SWAP4 000009be: SWAP3 000009bf: PUSH1 0x60 000009c1: DUP3 000009c2: ADD 000009c3: SWAP6 000009c4: DUP3 000009c5: MSTORE 000009c6: PUSH1 0x20 000009c8: DUP3 000009c9: ADD 000009ca: MSTORE 000009cb: ADD 000009cc: MSTORE 000009cd: JUMP 000009ce: JUMPDEST 000009cf: SUB 000009d0: SWAP1 000009d1: LOG1 000009d2: STOP 000009d3: JUMPDEST 000009d4: CALLVALUE 000009d5: PUSH2 0x03b2 000009d8: JUMPI 000009d9: PUSH1 0x20 000009db: PUSH2 0x09e3 000009de: CALLDATASIZE 000009df: PUSH2 0x3ff9 000009e2: JUMP 000009e3: JUMPDEST 000009e4: PUSH2 0x09f2 000009e7: SWAP6 000009e8: SWAP3 000009e9: SWAP2 000009ea: SWAP6 000009eb: SWAP5 000009ec: SWAP4 000009ed: SWAP5 000009ee: PUSH2 0x487d 000009f1: JUMP 000009f2: JUMPDEST 000009f3: PUSH2 0x09fa 000009f6: PUSH2 0x48b2 000009f9: JUMP 000009fa: JUMPDEST 000009fb: PUSH0 000009fc: SWAP1 000009fd: PUSH2 0x0afa 00000a00: JUMPI 00000a01: JUMPDEST 00000a02: PUSH2 0x0a19 00000a05: PUSH0 00000a06: MLOAD 00000a07: PUSH1 0x20 00000a09: PUSH2 0x5cdd 00000a0c: PUSH0 00000a0d: CODECOPY 00000a0e: PUSH0 00000a0f: MLOAD 00000a10: SWAP1 00000a11: PUSH0 00000a12: MSTORE 00000a13: SLOAD 00000a14: DUP4 00000a15: PUSH2 0x45e0 00000a18: JUMP 00000a19: JUMPDEST 00000a1a: PUSH1 0x01 00000a1c: SWAP1 00000a1d: CHAINID 00000a1e: DUP6 00000a1f: SUB 00000a20: PUSH2 0x0ae9 00000a23: JUMPI 00000a24: JUMPDEST 00000a25: DUP2 00000a26: PUSH2 0x0ac0 00000a29: JUMPI 00000a2a: JUMPDEST 00000a2b: POP 00000a2c: ISZERO 00000a2d: PUSH2 0x0aad 00000a30: JUMPI 00000a31: POP 00000a32: PUSH32 0xcf0b8bea497be617351b2c1a4243bd9e92167fdf778a43ebb66fb37160594a0f 00000a53: SWAP4 00000a54: SWAP5 00000a55: PUSH2 0x0a8f 00000a58: SWAP2 00000a59: PUSH1 0x01 00000a5b: SWAP7 00000a5c: PUSH1 0x40 00000a5e: MLOAD 00000a5f: SWAP6 00000a60: DUP7 00000a61: SWAP6 00000a62: DUP7 00000a63: SWAP2 00000a64: PUSH1 0x80 00000a66: SWAP4 00000a67: PUSH1 0x01 00000a69: PUSH1 0x01 00000a6b: PUSH1 0xa0 00000a6d: SHL 00000a6e: SUB 00000a6f: SWAP2 00000a70: SWAP8 00000a71: SWAP7 00000a72: SWAP6 00000a73: SWAP3 00000a74: SWAP8 00000a75: PUSH1 0xa0 00000a77: DUP6 00000a78: ADD 00000a79: SWAP9 00000a7a: DUP6 00000a7b: MSTORE 00000a7c: PUSH1 0x20 00000a7e: DUP6 00000a7f: ADD 00000a80: MSTORE 00000a81: AND 00000a82: PUSH1 0x40 00000a84: DUP4 00000a85: ADD 00000a86: MSTORE 00000a87: PUSH1 0x60 00000a89: DUP3 00000a8a: ADD 00000a8b: MSTORE 00000a8c: ADD 00000a8d: MSTORE 00000a8e: JUMP 00000a8f: JUMPDEST 00000a90: SUB 00000a91: SWAP1 00000a92: LOG1 00000a93: JUMPDEST 00000a94: PUSH0 00000a95: PUSH0 00000a96: MLOAD 00000a97: PUSH1 0x20 00000a99: PUSH2 0x5cfd 00000a9c: PUSH0 00000a9d: CODECOPY 00000a9e: PUSH0 00000a9f: MLOAD 00000aa0: SWAP1 00000aa1: PUSH0 00000aa2: MSTORE 00000aa3: TSTORE 00000aa4: PUSH1 0x40 00000aa6: MLOAD 00000aa7: SWAP1 00000aa8: ISZERO 00000aa9: ISZERO 00000aaa: DUP2 00000aab: MSTORE 00000aac: RETURN 00000aad: JUMPDEST 00000aae: SWAP5 00000aaf: POP 00000ab0: POP 00000ab1: POP 00000ab2: POP 00000ab3: POP 00000ab4: PUSH2 0x0abb 00000ab7: PUSH2 0x545c 00000aba: JUMP 00000abb: JUMPDEST 00000abc: PUSH2 0x0a93 00000abf: JUMP 00000ac0: JUMPDEST 00000ac1: PUSH2 0x0ae3 00000ac4: SWAP2 00000ac5: POP 00000ac6: DUP7 00000ac7: PUSH1 0x01 00000ac9: PUSH1 0x01 00000acb: PUSH1 0xa0 00000acd: SHL 00000ace: SUB 00000acf: PUSH0 00000ad0: MLOAD 00000ad1: PUSH1 0x20 00000ad3: PUSH2 0x5d1d 00000ad6: PUSH0 00000ad7: CODECOPY 00000ad8: PUSH0 00000ad9: MLOAD 00000ada: SWAP1 00000adb: PUSH0 00000adc: MSTORE 00000add: SLOAD 00000ade: AND 00000adf: PUSH2 0x53d7 00000ae2: JUMP 00000ae3: JUMPDEST 00000ae4: DUP9 00000ae5: PUSH2 0x0a2a 00000ae8: JUMP 00000ae9: JUMPDEST 00000aea: SWAP1 00000aeb: POP 00000aec: PUSH2 0x0af4 00000aef: DUP2 00000af0: PUSH2 0x523c 00000af3: JUMP 00000af4: JUMPDEST 00000af5: SWAP1 00000af6: PUSH2 0x0a24 00000af9: JUMP 00000afa: JUMPDEST 00000afb: DUP6 00000afc: ISZERO 00000afd: ISZERO 00000afe: DUP1 00000aff: PUSH2 0x0b4e 00000b02: JUMPI 00000b03: JUMPDEST 00000b04: PUSH2 0x0b27 00000b07: JUMPI 00000b08: JUMPDEST 00000b09: PUSH1 0x05 00000b0b: PUSH2 0x0b14 00000b0e: DUP6 00000b0f: DUP6 00000b10: PUSH2 0x49bd 00000b13: JUMP 00000b14: JUMPDEST 00000b15: ADD 00000b16: PUSH2 0x0b20 00000b19: DUP4 00000b1a: DUP3 00000b1b: SLOAD 00000b1c: PUSH2 0x45d3 00000b1f: JUMP 00000b20: JUMPDEST 00000b21: SWAP1 00000b22: SSTORE 00000b23: PUSH2 0x0a01 00000b26: JUMP 00000b27: JUMPDEST 00000b28: PUSH2 0x0b48 00000b2b: PUSH2 0x0b42 00000b2e: PUSH0 00000b2f: MLOAD 00000b30: PUSH1 0x20 00000b32: PUSH2 0x5cdd 00000b35: PUSH0 00000b36: CODECOPY 00000b37: PUSH0 00000b38: MLOAD 00000b39: SWAP1 00000b3a: PUSH0 00000b3b: MSTORE 00000b3c: SLOAD 00000b3d: DUP9 00000b3e: PUSH2 0x45e0 00000b41: JUMP 00000b42: JUMPDEST 00000b43: DUP7 00000b44: PUSH2 0x5531 00000b47: JUMP 00000b48: JUMPDEST 00000b49: POP 00000b4a: PUSH2 0x0b08 00000b4d: JUMP 00000b4e: JUMPDEST 00000b4f: POP 00000b50: PUSH1 0x01 00000b52: PUSH1 0x01 00000b54: PUSH1 0xa0 00000b56: SHL 00000b57: SUB 00000b58: DUP6 00000b59: AND 00000b5a: ISZERO 00000b5b: ISZERO 00000b5c: PUSH2 0x0b03 00000b5f: JUMP 00000b60: JUMPDEST 00000b61: CALLVALUE 00000b62: PUSH2 0x03b2 00000b65: JUMPI 00000b66: PUSH1 0xa0 00000b68: CALLDATASIZE 00000b69: PUSH1 0x03 00000b6b: NOT 00000b6c: ADD 00000b6d: SLT 00000b6e: PUSH2 0x03b2 00000b71: JUMPI 00000b72: PUSH2 0x0b79 00000b75: PUSH2 0x3fd4 00000b78: JUMP 00000b79: JUMPDEST 00000b7a: PUSH1 0x84 00000b7c: CALLDATALOAD 00000b7d: SWAP1 00000b7e: PUSH2 0x0b85 00000b81: PUSH2 0x487d 00000b84: JUMP 00000b85: JUMPDEST 00000b86: PUSH2 0x0b8d 00000b89: PUSH2 0x48b2 00000b8c: JUMP 00000b8d: JUMPDEST 00000b8e: DUP2 00000b8f: ISZERO 00000b90: ISZERO 00000b91: DUP1 00000b92: PUSH2 0x0bf7 00000b95: JUMPI 00000b96: JUMPDEST 00000b97: PUSH2 0x0bcd 00000b9a: JUMPI 00000b9b: JUMPDEST 00000b9c: PUSH1 0x05 00000b9e: PUSH2 0x0bab 00000ba1: PUSH1 0x24 00000ba3: CALLDATALOAD 00000ba4: PUSH1 0x04 00000ba6: CALLDATALOAD 00000ba7: PUSH2 0x49bd 00000baa: JUMP 00000bab: JUMPDEST 00000bac: ADD 00000bad: PUSH2 0x0bb9 00000bb0: PUSH1 0x64 00000bb2: CALLDATALOAD 00000bb3: DUP3 00000bb4: SLOAD 00000bb5: PUSH2 0x45d3 00000bb8: JUMP 00000bb9: JUMPDEST 00000bba: SWAP1 00000bbb: SSTORE 00000bbc: PUSH0 00000bbd: PUSH0 00000bbe: MLOAD 00000bbf: PUSH1 0x20 00000bc1: PUSH2 0x5cfd 00000bc4: PUSH0 00000bc5: CODECOPY 00000bc6: PUSH0 00000bc7: MLOAD 00000bc8: SWAP1 00000bc9: PUSH0 00000bca: MSTORE 00000bcb: TSTORE 00000bcc: STOP 00000bcd: JUMPDEST 00000bce: PUSH2 0x0be9 00000bd1: PUSH2 0x0bef 00000bd4: SWAP3 00000bd5: PUSH0 00000bd6: MLOAD 00000bd7: PUSH1 0x20 00000bd9: PUSH2 0x5cdd 00000bdc: PUSH0 00000bdd: CODECOPY 00000bde: PUSH0 00000bdf: MLOAD 00000be0: SWAP1 00000be1: PUSH0 00000be2: MSTORE 00000be3: SLOAD 00000be4: SWAP1 00000be5: PUSH2 0x45e0 00000be8: JUMP 00000be9: JUMPDEST 00000bea: SWAP1 00000beb: PUSH2 0x5531 00000bee: JUMP 00000bef: JUMPDEST 00000bf0: POP 00000bf1: DUP1 00000bf2: DUP1 00000bf3: PUSH2 0x0b9b 00000bf6: JUMP 00000bf7: JUMPDEST 00000bf8: POP 00000bf9: PUSH1 0x01 00000bfb: PUSH1 0x01 00000bfd: PUSH1 0xa0 00000bff: SHL 00000c00: SUB 00000c01: DUP2 00000c02: AND 00000c03: ISZERO 00000c04: ISZERO 00000c05: PUSH2 0x0b96 00000c08: JUMP 00000c09: JUMPDEST 00000c0a: CALLVALUE 00000c0b: PUSH2 0x03b2 00000c0e: JUMPI 00000c0f: PUSH2 0x0c43 00000c12: PUSH1 0xc0 00000c14: PUSH2 0x0c2d 00000c17: PUSH2 0x0c1f 00000c1a: CALLDATASIZE 00000c1b: PUSH2 0x417a 00000c1e: JUMP 00000c1f: JUMPDEST 00000c20: SWAP6 00000c21: SWAP3 00000c22: PUSH2 0x0408 00000c25: SWAP5 00000c26: SWAP3 00000c27: SWAP2 00000c28: SWAP5 00000c29: PUSH2 0x4494 00000c2c: JUMP 00000c2d: JUMPDEST 00000c2e: SWAP4 00000c2f: PUSH0 00000c30: MLOAD 00000c31: PUSH1 0x20 00000c33: PUSH2 0x5cdd 00000c36: PUSH0 00000c37: CODECOPY 00000c38: PUSH0 00000c39: MLOAD 00000c3a: SWAP1 00000c3b: PUSH0 00000c3c: MSTORE 00000c3d: SLOAD 00000c3e: SWAP1 00000c3f: PUSH2 0x45f3 00000c42: JUMP 00000c43: JUMPDEST 00000c44: SWAP3 00000c45: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b 00000c66: SLOAD 00000c67: SWAP1 00000c68: PUSH1 0xff 00000c6a: PUSH0 00000c6b: MLOAD 00000c6c: PUSH1 0x20 00000c6e: PUSH2 0x5afd 00000c71: PUSH0 00000c72: CODECOPY 00000c73: PUSH0 00000c74: MLOAD 00000c75: SWAP1 00000c76: PUSH0 00000c77: MSTORE 00000c78: SLOAD 00000c79: AND 00000c7a: PUSH2 0x0c81 00000c7d: PUSH2 0x4a5f 00000c80: JUMP 00000c81: JUMPDEST 00000c82: PUSH0 00000c83: MLOAD 00000c84: PUSH1 0x20 00000c86: PUSH2 0x5a7d 00000c89: PUSH0 00000c8a: CODECOPY 00000c8b: PUSH0 00000c8c: MLOAD 00000c8d: SWAP1 00000c8e: PUSH0 00000c8f: MSTORE 00000c90: SLOAD 00000c91: SWAP1 00000c92: PUSH0 00000c93: MLOAD 00000c94: PUSH1 0x20 00000c96: PUSH2 0x5cbd 00000c99: PUSH0 00000c9a: CODECOPY 00000c9b: PUSH0 00000c9c: MLOAD 00000c9d: SWAP1 00000c9e: PUSH0 00000c9f: MSTORE 00000ca0: SLOAD 00000ca1: SWAP3 00000ca2: PUSH1 0x40 00000ca4: MLOAD 00000ca5: SWAP6 00000ca6: PUSH2 0x0cae 00000ca9: DUP8 00000caa: PUSH2 0x4038 00000cad: JUMP 00000cae: JUMPDEST 00000caf: ADDRESS 00000cb0: DUP8 00000cb1: MSTORE 00000cb2: PUSH1 0x20 00000cb4: DUP8 00000cb5: ADD 00000cb6: MSTORE 00000cb7: PUSH1 0x40 00000cb9: DUP7 00000cba: ADD 00000cbb: MSTORE 00000cbc: PUSH1 0x60 00000cbe: DUP6 00000cbf: ADD 00000cc0: MSTORE 00000cc1: PUSH1 0x80 00000cc3: DUP5 00000cc4: ADD 00000cc5: MSTORE 00000cc6: PUSH1 0xa0 00000cc8: DUP4 00000cc9: ADD 00000cca: MSTORE 00000ccb: PUSH1 0x01 00000ccd: PUSH1 0x01 00000ccf: PUSH1 0xa0 00000cd1: SHL 00000cd2: SUB 00000cd3: PUSH0 00000cd4: MLOAD 00000cd5: PUSH1 0x20 00000cd7: PUSH2 0x5bbd 00000cda: PUSH0 00000cdb: CODECOPY 00000cdc: PUSH0 00000cdd: MLOAD 00000cde: SWAP1 00000cdf: PUSH0 00000ce0: MSTORE 00000ce1: SLOAD 00000ce2: AND 00000ce3: SWAP2 00000ce4: PUSH2 0x0d03 00000ce7: PUSH1 0x40 00000ce9: MLOAD 00000cea: SWAP7 00000ceb: DUP8 00000cec: SWAP6 00000ced: DUP7 00000cee: SWAP5 00000cef: DUP6 00000cf0: SWAP5 00000cf1: PUSH4 0x143273dd 00000cf6: PUSH1 0xe2 00000cf8: SHL 00000cf9: DUP7 00000cfa: MSTORE 00000cfb: PUSH1 0x04 00000cfd: DUP7 00000cfe: ADD 00000cff: PUSH2 0x4514 00000d02: JUMP 00000d03: JUMPDEST 00000d04: SUB 00000d05: SWAP2 00000d06: GAS 00000d07: STATICCALL 00000d08: DUP1 00000d09: ISZERO 00000d0a: PUSH2 0x0d8d 00000d0d: JUMPI 00000d0e: PUSH2 0x046f 00000d11: SWAP2 00000d12: PUSH0 00000d13: SWAP2 00000d14: PUSH2 0x0d5e 00000d17: JUMPI 00000d18: JUMPDEST 00000d19: POP 00000d1a: PUSH1 0x40 00000d1c: MLOAD 00000d1d: SWAP2 00000d1e: DUP3 00000d1f: SWAP2 00000d20: DUP3 00000d21: SWAP2 00000d22: SWAP1 00000d23: SWAP2 00000d24: PUSH1 0xa0 00000d26: DUP1 00000d27: PUSH1 0xc0 00000d29: DUP4 00000d2a: ADD 00000d2b: SWAP5 00000d2c: DUP1 00000d2d: MLOAD 00000d2e: DUP5 00000d2f: MSTORE 00000d30: PUSH1 0x20 00000d32: DUP2 00000d33: ADD 00000d34: MLOAD 00000d35: PUSH1 0x20 00000d37: DUP6 00000d38: ADD 00000d39: MSTORE 00000d3a: PUSH1 0x40 00000d3c: DUP2 00000d3d: ADD 00000d3e: MLOAD 00000d3f: PUSH1 0x40 00000d41: DUP6 00000d42: ADD 00000d43: MSTORE 00000d44: PUSH1 0x60 00000d46: DUP2 00000d47: ADD 00000d48: MLOAD 00000d49: PUSH1 0x60 00000d4b: DUP6 00000d4c: ADD 00000d4d: MSTORE 00000d4e: PUSH1 0x80 00000d50: DUP2 00000d51: ADD 00000d52: MLOAD 00000d53: PUSH1 0x80 00000d55: DUP6 00000d56: ADD 00000d57: MSTORE 00000d58: ADD 00000d59: MLOAD 00000d5a: SWAP2 00000d5b: ADD 00000d5c: MSTORE 00000d5d: JUMP 00000d5e: JUMPDEST 00000d5f: PUSH2 0x0d80 00000d62: SWAP2 00000d63: POP 00000d64: PUSH1 0xc0 00000d66: RETURNDATASIZE 00000d67: PUSH1 0xc0 00000d69: GT 00000d6a: PUSH2 0x0d86 00000d6d: JUMPI 00000d6e: JUMPDEST 00000d6f: PUSH2 0x0d78 00000d72: DUP2 00000d73: DUP4 00000d74: PUSH2 0x408d 00000d77: JUMP 00000d78: JUMPDEST 00000d79: DUP2 00000d7a: ADD 00000d7b: SWAP1 00000d7c: PUSH2 0x44c4 00000d7f: JUMP 00000d80: JUMPDEST 00000d81: DUP3 00000d82: PUSH2 0x0d18 00000d85: JUMP 00000d86: JUMPDEST 00000d87: POP 00000d88: RETURNDATASIZE 00000d89: PUSH2 0x0d6e 00000d8c: JUMP 00000d8d: JUMPDEST 00000d8e: PUSH1 0x40 00000d90: MLOAD 00000d91: RETURNDATASIZE 00000d92: PUSH0 00000d93: DUP3 00000d94: RETURNDATACOPY 00000d95: RETURNDATASIZE 00000d96: SWAP1 00000d97: REVERT 00000d98: JUMPDEST 00000d99: CALLVALUE 00000d9a: PUSH2 0x03b2 00000d9d: JUMPI 00000d9e: PUSH0 00000d9f: CALLDATASIZE 00000da0: PUSH1 0x03 00000da2: NOT 00000da3: ADD 00000da4: SLT 00000da5: PUSH2 0x03b2 00000da8: JUMPI 00000da9: PUSH1 0x20 00000dab: PUSH1 0x40 00000dad: MLOAD 00000dae: PUSH32 0x0000000000000000000000000000000000000000000000000000000000001c20 00000dcf: DUP2 00000dd0: MSTORE 00000dd1: RETURN 00000dd2: JUMPDEST 00000dd3: CALLVALUE 00000dd4: PUSH2 0x03b2 00000dd7: JUMPI 00000dd8: PUSH0 00000dd9: CALLDATASIZE 00000dda: PUSH1 0x03 00000ddc: NOT 00000ddd: ADD 00000dde: SLT 00000ddf: PUSH2 0x03b2 00000de2: JUMPI 00000de3: PUSH1 0x20 00000de5: PUSH1 0x01 00000de7: PUSH1 0x01 00000de9: PUSH1 0xa0 00000deb: SHL 00000dec: SUB 00000ded: PUSH0 00000dee: MLOAD 00000def: PUSH1 0x20 00000df1: PUSH2 0x5bbd 00000df4: PUSH0 00000df5: CODECOPY 00000df6: PUSH0 00000df7: MLOAD 00000df8: SWAP1 00000df9: PUSH0 00000dfa: MSTORE 00000dfb: SLOAD 00000dfc: AND 00000dfd: PUSH1 0x40 00000dff: MLOAD 00000e00: SWAP1 00000e01: DUP2 00000e02: MSTORE 00000e03: RETURN 00000e04: JUMPDEST 00000e05: CALLVALUE 00000e06: PUSH2 0x03b2 00000e09: JUMPI 00000e0a: PUSH0 00000e0b: CALLDATASIZE 00000e0c: PUSH1 0x03 00000e0e: NOT 00000e0f: ADD 00000e10: SLT 00000e11: PUSH2 0x03b2 00000e14: JUMPI 00000e15: PUSH1 0x20 00000e17: PUSH1 0x40 00000e19: MLOAD 00000e1a: PUSH32 0x000000000000000000000000000000000000000000000000000000174876e800 00000e3b: DUP2 00000e3c: MSTORE 00000e3d: RETURN 00000e3e: JUMPDEST 00000e3f: CALLVALUE 00000e40: PUSH2 0x03b2 00000e43: JUMPI 00000e44: PUSH0 00000e45: CALLDATASIZE 00000e46: PUSH1 0x03 00000e48: NOT 00000e49: ADD 00000e4a: SLT 00000e4b: PUSH2 0x03b2 00000e4e: JUMPI 00000e4f: PUSH2 0x046f 00000e52: PUSH1 0x40 00000e54: MLOAD 00000e55: PUSH2 0x0e5f 00000e58: PUSH1 0x40 00000e5a: DUP3 00000e5b: PUSH2 0x408d 00000e5e: JUMP 00000e5f: JUMPDEST 00000e60: PUSH1 0x05 00000e62: DUP2 00000e63: MSTORE 00000e64: PUSH5 0x0352e302e3 00000e6a: PUSH1 0xdc 00000e6c: SHL 00000e6d: PUSH1 0x20 00000e6f: DUP3 00000e70: ADD 00000e71: MSTORE 00000e72: PUSH1 0x40 00000e74: MLOAD 00000e75: SWAP2 00000e76: DUP3 00000e77: SWAP2 00000e78: PUSH1 0x20 00000e7a: DUP4 00000e7b: MSTORE 00000e7c: PUSH1 0x20 00000e7e: DUP4 00000e7f: ADD 00000e80: SWAP1 00000e81: PUSH2 0x3f84 00000e84: JUMP 00000e85: JUMPDEST 00000e86: CALLVALUE 00000e87: PUSH2 0x03b2 00000e8a: JUMPI 00000e8b: PUSH1 0x40 00000e8d: CALLDATASIZE 00000e8e: PUSH1 0x03 00000e90: NOT 00000e91: ADD 00000e92: SLT 00000e93: PUSH2 0x03b2 00000e96: JUMPI 00000e97: PUSH2 0x0eab 00000e9a: PUSH2 0x0ea1 00000e9d: PUSH2 0x3fa8 00000ea0: JUMP 00000ea1: JUMPDEST 00000ea2: PUSH1 0x24 00000ea4: CALLDATALOAD 00000ea5: SWAP1 00000ea6: CALLER 00000ea7: PUSH2 0x4de4 00000eaa: JUMP 00000eab: JUMPDEST 00000eac: PUSH1 0x20 00000eae: PUSH1 0x40 00000eb0: MLOAD 00000eb1: PUSH1 0x01 00000eb3: DUP2 00000eb4: MSTORE 00000eb5: RETURN 00000eb6: JUMPDEST 00000eb7: CALLVALUE 00000eb8: PUSH2 0x03b2 00000ebb: JUMPI 00000ebc: PUSH0 00000ebd: CALLDATASIZE 00000ebe: PUSH1 0x03 00000ec0: NOT 00000ec1: ADD 00000ec2: SLT 00000ec3: PUSH2 0x03b2 00000ec6: JUMPI 00000ec7: PUSH1 0x20 00000ec9: PUSH1 0x40 00000ecb: MLOAD 00000ecc: PUSH0 00000ecd: DUP2 00000ece: MSTORE 00000ecf: RETURN 00000ed0: JUMPDEST 00000ed1: CALLVALUE 00000ed2: PUSH2 0x03b2 00000ed5: JUMPI 00000ed6: PUSH1 0x20 00000ed8: CALLDATASIZE 00000ed9: PUSH1 0x03 00000edb: NOT 00000edc: ADD 00000edd: SLT 00000ede: PUSH2 0x03b2 00000ee1: JUMPI 00000ee2: PUSH32 0xc0aea4cb7421bc8d3cf83582abe451bd1705682eb83b02b88889940492aef5ca 00000f03: PUSH1 0x20 00000f05: PUSH2 0x0f0c 00000f08: PUSH2 0x3fea 00000f0b: JUMP 00000f0c: JUMPDEST 00000f0d: PUSH2 0x0f14 00000f10: PUSH2 0x4921 00000f13: JUMP 00000f14: JUMPDEST 00000f15: PUSH0 00000f16: MLOAD 00000f17: PUSH1 0x20 00000f19: PUSH2 0x5d1d 00000f1c: PUSH0 00000f1d: CODECOPY 00000f1e: PUSH0 00000f1f: MLOAD 00000f20: SWAP1 00000f21: PUSH0 00000f22: MSTORE 00000f23: DUP1 00000f24: SLOAD 00000f25: PUSH1 0xff 00000f27: PUSH1 0xa0 00000f29: SHL 00000f2a: NOT 00000f2b: AND 00000f2c: SWAP2 00000f2d: ISZERO 00000f2e: ISZERO 00000f2f: PUSH1 0xa0 00000f31: SWAP1 00000f32: DUP2 00000f33: SHL 00000f34: PUSH1 0xff 00000f36: PUSH1 0xa0 00000f38: SHL 00000f39: AND 00000f3a: SWAP3 00000f3b: SWAP1 00000f3c: SWAP3 00000f3d: OR 00000f3e: SWAP1 00000f3f: DUP2 00000f40: SWAP1 00000f41: SSTORE 00000f42: PUSH1 0x40 00000f44: MLOAD 00000f45: SWAP2 00000f46: SHR 00000f47: PUSH1 0xff 00000f49: AND 00000f4a: ISZERO 00000f4b: ISZERO 00000f4c: DUP2 00000f4d: MSTORE 00000f4e: LOG1 00000f4f: STOP 00000f50: JUMPDEST 00000f51: CALLVALUE 00000f52: PUSH2 0x03b2 00000f55: JUMPI 00000f56: PUSH0 00000f57: CALLDATASIZE 00000f58: PUSH1 0x03 00000f5a: NOT 00000f5b: ADD 00000f5c: SLT 00000f5d: PUSH2 0x03b2 00000f60: JUMPI 00000f61: PUSH2 0x0f68 00000f64: PUSH2 0x4921 00000f67: JUMP 00000f68: JUMPDEST 00000f69: PUSH2 0x0763 00000f6c: PUSH2 0x54c4 00000f6f: JUMP 00000f70: JUMPDEST 00000f71: CALLVALUE 00000f72: PUSH2 0x03b2 00000f75: JUMPI 00000f76: PUSH0 00000f77: CALLDATASIZE 00000f78: PUSH1 0x03 00000f7a: NOT 00000f7b: ADD 00000f7c: SLT 00000f7d: PUSH2 0x03b2 00000f80: JUMPI 00000f81: PUSH1 0x20 00000f83: PUSH0 00000f84: MLOAD 00000f85: PUSH1 0x20 00000f87: PUSH2 0x5cbd 00000f8a: PUSH0 00000f8b: CODECOPY 00000f8c: PUSH0 00000f8d: MLOAD 00000f8e: SWAP1 00000f8f: PUSH0 00000f90: MSTORE 00000f91: SLOAD 00000f92: PUSH1 0x40 00000f94: MLOAD 00000f95: SWAP1 00000f96: DUP2 00000f97: MSTORE 00000f98: RETURN 00000f99: JUMPDEST 00000f9a: CALLVALUE 00000f9b: PUSH2 0x03b2 00000f9e: JUMPI 00000f9f: PUSH0 00000fa0: CALLDATASIZE 00000fa1: PUSH1 0x03 00000fa3: NOT 00000fa4: ADD 00000fa5: SLT 00000fa6: PUSH2 0x03b2 00000fa9: JUMPI 00000faa: PUSH1 0x20 00000fac: PUSH1 0xff 00000fae: PUSH0 00000faf: MLOAD 00000fb0: PUSH1 0x20 00000fb2: PUSH2 0x5c9d 00000fb5: PUSH0 00000fb6: CODECOPY 00000fb7: PUSH0 00000fb8: MLOAD 00000fb9: SWAP1 00000fba: PUSH0 00000fbb: MSTORE 00000fbc: SLOAD 00000fbd: PUSH1 0x08 00000fbf: SHR 00000fc0: AND 00000fc1: PUSH1 0x40 00000fc3: MLOAD 00000fc4: SWAP1 00000fc5: ISZERO 00000fc6: ISZERO 00000fc7: DUP2 00000fc8: MSTORE 00000fc9: RETURN 00000fca: JUMPDEST 00000fcb: CALLVALUE 00000fcc: PUSH2 0x03b2 00000fcf: JUMPI 00000fd0: PUSH0 00000fd1: CALLDATASIZE 00000fd2: PUSH1 0x03 00000fd4: NOT 00000fd5: ADD 00000fd6: SLT 00000fd7: PUSH2 0x03b2 00000fda: JUMPI 00000fdb: PUSH1 0x20 00000fdd: PUSH0 00000fde: MLOAD 00000fdf: PUSH1 0x20 00000fe1: PUSH2 0x5b9d 00000fe4: PUSH0 00000fe5: CODECOPY 00000fe6: PUSH0 00000fe7: MLOAD 00000fe8: SWAP1 00000fe9: PUSH0 00000fea: MSTORE 00000feb: SLOAD 00000fec: PUSH1 0x40 00000fee: MLOAD 00000fef: SWAP1 00000ff0: DUP2 00000ff1: MSTORE 00000ff2: RETURN 00000ff3: JUMPDEST 00000ff4: CALLVALUE 00000ff5: PUSH2 0x03b2 00000ff8: JUMPI 00000ff9: PUSH0 00000ffa: CALLDATASIZE 00000ffb: PUSH1 0x03 00000ffd: NOT 00000ffe: ADD 00000fff: SLT 00001000: PUSH2 0x03b2 00001003: JUMPI 00001004: PUSH1 0x40 00001006: MLOAD 00001007: PUSH0 00001008: PUSH0 00001009: MLOAD 0000100a: PUSH1 0x20 0000100c: PUSH2 0x5b1d 0000100f: PUSH0 00001010: CODECOPY 00001011: PUSH0 00001012: MLOAD 00001013: SWAP1 00001014: PUSH0 00001015: MSTORE 00001016: SLOAD 00001017: PUSH2 0x101f 0000101a: DUP2 0000101b: PUSH2 0x41fd 0000101e: JUMP 0000101f: JUMPDEST 00001020: DUP1 00001021: DUP5 00001022: MSTORE 00001023: SWAP1 00001024: PUSH1 0x01 00001026: DUP2 00001027: AND 00001028: SWAP1 00001029: DUP2 0000102a: ISZERO 0000102b: PUSH2 0x10c5 0000102e: JUMPI 0000102f: POP 00001030: PUSH1 0x01 00001032: EQ 00001033: PUSH2 0x105b 00001036: JUMPI 00001037: JUMPDEST 00001038: PUSH2 0x046f 0000103b: DUP4 0000103c: PUSH2 0x1047 0000103f: DUP2 00001040: DUP6 00001041: SUB 00001042: DUP3 00001043: PUSH2 0x408d 00001046: JUMP 00001047: JUMPDEST 00001048: PUSH1 0x40 0000104a: MLOAD 0000104b: SWAP2 0000104c: DUP3 0000104d: SWAP2 0000104e: PUSH1 0x20 00001050: DUP4 00001051: MSTORE 00001052: PUSH1 0x20 00001054: DUP4 00001055: ADD 00001056: SWAP1 00001057: PUSH2 0x3f84 0000105a: JUMP 0000105b: JUMPDEST 0000105c: PUSH0 0000105d: MLOAD 0000105e: PUSH1 0x20 00001060: PUSH2 0x5b1d 00001063: PUSH0 00001064: CODECOPY 00001065: PUSH0 00001066: MLOAD 00001067: SWAP1 00001068: PUSH0 00001069: MSTORE 0000106a: PUSH0 0000106b: SWAP1 0000106c: DUP2 0000106d: MSTORE 0000106e: PUSH32 0x46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa 0000108f: SWAP4 00001090: SWAP3 00001091: POP 00001092: SWAP1 00001093: JUMPDEST 00001094: DUP1 00001095: DUP3 00001096: LT 00001097: PUSH2 0x10ab 0000109a: JUMPI 0000109b: POP 0000109c: SWAP1 0000109d: SWAP2 0000109e: POP 0000109f: DUP2 000010a0: ADD 000010a1: PUSH1 0x20 000010a3: ADD 000010a4: PUSH2 0x1047 000010a7: PUSH2 0x1037 000010aa: JUMP 000010ab: JUMPDEST 000010ac: SWAP2 000010ad: SWAP3 000010ae: PUSH1 0x01 000010b0: DUP2 000010b1: PUSH1 0x20 000010b3: SWAP3 000010b4: SLOAD 000010b5: DUP4 000010b6: DUP6 000010b7: DUP9 000010b8: ADD 000010b9: ADD 000010ba: MSTORE 000010bb: ADD 000010bc: SWAP2 000010bd: ADD 000010be: SWAP1 000010bf: SWAP3 000010c0: SWAP2 000010c1: PUSH2 0x1093 000010c4: JUMP 000010c5: JUMPDEST 000010c6: PUSH1 0xff 000010c8: NOT 000010c9: AND 000010ca: PUSH1 0x20 000010cc: DUP1 000010cd: DUP7 000010ce: ADD 000010cf: SWAP2 000010d0: SWAP1 000010d1: SWAP2 000010d2: MSTORE 000010d3: SWAP2 000010d4: ISZERO 000010d5: ISZERO 000010d6: PUSH1 0x05 000010d8: SHL 000010d9: DUP5 000010da: ADD 000010db: SWAP1 000010dc: SWAP2 000010dd: ADD 000010de: SWAP2 000010df: POP 000010e0: PUSH2 0x1047 000010e3: SWAP1 000010e4: POP 000010e5: PUSH2 0x1037 000010e8: JUMP 000010e9: JUMPDEST 000010ea: CALLVALUE 000010eb: PUSH2 0x03b2 000010ee: JUMPI 000010ef: PUSH2 0x0140 000010f2: CALLDATASIZE 000010f3: PUSH1 0x03 000010f5: NOT 000010f6: ADD 000010f7: SLT 000010f8: PUSH2 0x03b2 000010fb: JUMPI 000010fc: PUSH1 0x04 000010fe: CALLDATALOAD 000010ff: PUSH2 0x1106 00001102: PUSH2 0x3fd4 00001105: JUMP 00001106: JUMPDEST 00001107: SWAP1 00001108: PUSH2 0x1110 0000110b: CALLDATASIZE 0000110c: PUSH2 0x40af 0000110f: JUMP 00001110: JUMPDEST 00001111: SWAP2 00001112: PUSH2 0x0124 00001115: CALLDATALOAD 00001116: SWAP1 00001117: DUP2 00001118: ISZERO 00001119: ISZERO 0000111a: DUP3 0000111b: SUB 0000111c: PUSH2 0x03b2 0000111f: JUMPI 00001120: PUSH1 0x40 00001122: SWAP4 00001123: PUSH2 0x112a 00001126: PUSH2 0x487d 00001129: JUMP 0000112a: JUMPDEST 0000112b: PUSH2 0x1132 0000112e: PUSH2 0x48b2 00001131: JUMP 00001132: JUMPDEST 00001133: PUSH0 00001134: SWAP3 00001135: PUSH2 0x1240 00001138: JUMPI 00001139: JUMPDEST 0000113a: DUP1 0000113b: MLOAD 0000113c: SWAP3 0000113d: PUSH2 0x1164 00001140: PUSH2 0x114f 00001143: PUSH1 0x80 00001145: DUP5 00001146: ADD 00001147: SWAP6 00001148: DUP7 00001149: MLOAD 0000114a: SWAP1 0000114b: PUSH2 0x45c6 0000114e: JUMP 0000114f: JUMPDEST 00001150: PUSH0 00001151: MLOAD 00001152: PUSH1 0x20 00001154: PUSH2 0x5cdd 00001157: PUSH0 00001158: CODECOPY 00001159: PUSH0 0000115a: MLOAD 0000115b: SWAP1 0000115c: PUSH0 0000115d: MSTORE 0000115e: SLOAD 0000115f: SWAP1 00001160: PUSH2 0x45e0 00001163: JUMP 00001164: JUMPDEST 00001165: SWAP5 00001166: PUSH1 0x01 00001168: SWAP1 00001169: CHAINID 0000116a: SUB 0000116b: PUSH2 0x1231 0000116e: JUMPI 0000116f: JUMPDEST 00001170: DUP1 00001171: PUSH2 0x1209 00001174: JUMPI 00001175: JUMPDEST 00001176: ISZERO 00001177: PUSH2 0x11f8 0000117a: JUMPI 0000117b: POP 0000117c: PUSH32 0x82f23eb0ffa46ea98b1a7134447f74561cec3e194d0f1d06ffc35ce71ae80336 0000119d: SWAP2 0000119e: PUSH1 0x80 000011a0: SWAP2 000011a1: PUSH2 0x11b0 000011a4: PUSH1 0x01 000011a6: SWAP6 000011a7: DUP3 000011a8: MLOAD 000011a9: SWAP1 000011aa: MLOAD 000011ab: SWAP1 000011ac: PUSH2 0x45c6 000011af: JUMP 000011b0: JUMPDEST 000011b1: SWAP1 000011b2: PUSH1 0x60 000011b4: PUSH1 0x20 000011b6: DUP3 000011b7: ADD 000011b8: MLOAD 000011b9: SWAP2 000011ba: ADD 000011bb: MLOAD 000011bc: SWAP2 000011bd: PUSH1 0x01 000011bf: PUSH1 0x01 000011c1: PUSH1 0xa0 000011c3: SHL 000011c4: SUB 000011c5: DUP10 000011c6: MLOAD 000011c7: SWAP5 000011c8: AND 000011c9: DUP5 000011ca: MSTORE 000011cb: PUSH1 0x20 000011cd: DUP5 000011ce: ADD 000011cf: MSTORE 000011d0: DUP8 000011d1: DUP4 000011d2: ADD 000011d3: MSTORE 000011d4: PUSH1 0x60 000011d6: DUP3 000011d7: ADD 000011d8: MSTORE 000011d9: LOG1 000011da: JUMPDEST 000011db: PUSH0 000011dc: PUSH0 000011dd: MLOAD 000011de: PUSH1 0x20 000011e0: PUSH2 0x5cfd 000011e3: PUSH0 000011e4: CODECOPY 000011e5: PUSH0 000011e6: MLOAD 000011e7: SWAP1 000011e8: PUSH0 000011e9: MSTORE 000011ea: TSTORE 000011eb: DUP3 000011ec: MLOAD 000011ed: SWAP2 000011ee: DUP3 000011ef: MSTORE 000011f0: ISZERO 000011f1: ISZERO 000011f2: PUSH1 0x20 000011f4: DUP3 000011f5: ADD 000011f6: MSTORE 000011f7: RETURN 000011f8: JUMPDEST 000011f9: SWAP3 000011fa: POP 000011fb: POP 000011fc: POP 000011fd: PUSH2 0x1204 00001200: PUSH2 0x545c 00001203: JUMP 00001204: JUMPDEST 00001205: PUSH2 0x11da 00001208: JUMP 00001209: JUMPDEST 0000120a: POP 0000120b: PUSH2 0x122c 0000120e: DUP6 0000120f: DUP5 00001210: PUSH1 0x01 00001212: PUSH1 0x01 00001214: PUSH1 0xa0 00001216: SHL 00001217: SUB 00001218: PUSH0 00001219: MLOAD 0000121a: PUSH1 0x20 0000121c: PUSH2 0x5d1d 0000121f: PUSH0 00001220: CODECOPY 00001221: PUSH0 00001222: MLOAD 00001223: SWAP1 00001224: PUSH0 00001225: MSTORE 00001226: SLOAD 00001227: AND 00001228: PUSH2 0x53d7 0000122b: JUMP 0000122c: JUMPDEST 0000122d: PUSH2 0x1175 00001230: JUMP 00001231: JUMPDEST 00001232: POP 00001233: PUSH2 0x123b 00001236: DUP6 00001237: PUSH2 0x523c 0000123a: JUMP 0000123b: JUMPDEST 0000123c: PUSH2 0x116f 0000123f: JUMP 00001240: JUMPDEST 00001241: PUSH2 0x1249 00001244: DUP2 00001245: PUSH2 0x5117 00001248: JUMP 00001249: JUMPDEST 0000124a: PUSH1 0xa0 0000124c: DUP2 0000124d: ADD 0000124e: MLOAD 0000124f: PUSH2 0x1268 00001252: PUSH1 0x05 00001254: PUSH2 0x125f 00001257: PUSH1 0x24 00001259: CALLDATALOAD 0000125a: DUP9 0000125b: PUSH2 0x49bd 0000125e: JUMP 0000125f: JUMPDEST 00001260: ADD 00001261: SWAP2 00001262: DUP3 00001263: SLOAD 00001264: PUSH2 0x45d3 00001267: JUMP 00001268: JUMPDEST 00001269: SWAP1 0000126a: SSTORE 0000126b: PUSH2 0x1139 0000126e: JUMP 0000126f: JUMPDEST 00001270: CALLVALUE 00001271: PUSH2 0x03b2 00001274: JUMPI 00001275: PUSH1 0x40 00001277: CALLDATASIZE 00001278: PUSH1 0x03 0000127a: NOT 0000127b: ADD 0000127c: SLT 0000127d: PUSH2 0x03b2 00001280: JUMPI 00001281: PUSH2 0x1288 00001284: PUSH2 0x3fbe 00001287: JUMP 00001288: JUMPDEST 00001289: PUSH1 0x04 0000128b: CALLDATALOAD 0000128c: PUSH0 0000128d: MSTORE 0000128e: PUSH0 0000128f: MLOAD 00001290: PUSH1 0x20 00001292: PUSH2 0x5c5d 00001295: PUSH0 00001296: CODECOPY 00001297: PUSH0 00001298: MLOAD 00001299: SWAP1 0000129a: PUSH0 0000129b: MSTORE 0000129c: PUSH1 0x20 0000129e: MSTORE 0000129f: PUSH1 0x01 000012a1: PUSH1 0x01 000012a3: PUSH1 0xa0 000012a5: SHL 000012a6: SUB 000012a7: PUSH1 0x40 000012a9: PUSH0 000012aa: KECCAK256 000012ab: SWAP2 000012ac: AND 000012ad: PUSH0 000012ae: MSTORE 000012af: PUSH1 0x20 000012b1: MSTORE 000012b2: PUSH1 0x20 000012b4: PUSH1 0xff 000012b6: PUSH1 0x40 000012b8: PUSH0 000012b9: KECCAK256 000012ba: SLOAD 000012bb: AND 000012bc: PUSH1 0x40 000012be: MLOAD 000012bf: SWAP1 000012c0: ISZERO 000012c1: ISZERO 000012c2: DUP2 000012c3: MSTORE 000012c4: RETURN 000012c5: JUMPDEST 000012c6: CALLVALUE 000012c7: PUSH2 0x03b2 000012ca: JUMPI 000012cb: PUSH1 0x20 000012cd: CALLDATASIZE 000012ce: PUSH1 0x03 000012d0: NOT 000012d1: ADD 000012d2: SLT 000012d3: PUSH2 0x03b2 000012d6: JUMPI 000012d7: PUSH1 0x04 000012d9: CALLDATALOAD 000012da: PUSH2 0x12e1 000012dd: PUSH2 0x4921 000012e0: JUMP 000012e1: JUMPDEST 000012e2: PUSH32 0x0320c21101a3b92f1a57a1daef0827408be5f6cb7bb44fb426cc4152663e611d 00001303: PUSH1 0x20 00001305: PUSH1 0x40 00001307: MLOAD 00001308: DUP4 00001309: DUP2 0000130a: MSTORE 0000130b: LOG1 0000130c: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d 0000132d: SSTORE 0000132e: STOP 0000132f: JUMPDEST 00001330: CALLVALUE 00001331: PUSH2 0x03b2 00001334: JUMPI 00001335: PUSH1 0x20 00001337: CALLDATASIZE 00001338: PUSH1 0x03 0000133a: NOT 0000133b: ADD 0000133c: SLT 0000133d: PUSH2 0x03b2 00001340: JUMPI 00001341: PUSH0 00001342: MLOAD 00001343: PUSH1 0x20 00001345: PUSH2 0x5b5d 00001348: PUSH0 00001349: CODECOPY 0000134a: PUSH0 0000134b: MLOAD 0000134c: SWAP1 0000134d: PUSH0 0000134e: MSTORE 0000134f: SLOAD 00001350: DUP1 00001351: ISZERO 00001352: PUSH2 0x1385 00001355: JUMPI 00001356: PUSH2 0x137d 00001359: PUSH2 0x114f 0000135c: PUSH1 0x20 0000135e: SWAP3 0000135f: PUSH2 0x1378 00001362: PUSH0 00001363: MLOAD 00001364: PUSH1 0x20 00001366: PUSH2 0x5a7d 00001369: PUSH0 0000136a: CODECOPY 0000136b: PUSH0 0000136c: MLOAD 0000136d: SWAP1 0000136e: PUSH0 0000136f: MSTORE 00001370: SLOAD 00001371: PUSH1 0x04 00001373: CALLDATALOAD 00001374: PUSH2 0x45e0 00001377: JUMP 00001378: JUMPDEST 00001379: PUSH2 0x45f3 0000137c: JUMP 0000137d: JUMPDEST 0000137e: PUSH1 0x40 00001380: MLOAD 00001381: SWAP1 00001382: DUP2 00001383: MSTORE 00001384: RETURN 00001385: JUMPDEST 00001386: PUSH1 0x40 00001388: MLOAD 00001389: PUSH4 0x4612b38f 0000138e: PUSH1 0xe0 00001390: SHL 00001391: DUP2 00001392: MSTORE 00001393: PUSH1 0x20 00001395: PUSH1 0x04 00001397: DUP3 00001398: ADD 00001399: MSTORE 0000139a: PUSH1 0x0b 0000139c: PUSH1 0x24 0000139e: DUP3 0000139f: ADD 000013a0: MSTORE 000013a1: PUSH11 0x746f74616c537570706c79 000013ad: PUSH1 0xa8 000013af: SHL 000013b0: PUSH1 0x44 000013b2: DUP3 000013b3: ADD 000013b4: MSTORE 000013b5: PUSH1 0x64 000013b7: SWAP1 000013b8: REVERT 000013b9: JUMPDEST 000013ba: CALLVALUE 000013bb: PUSH2 0x03b2 000013be: JUMPI 000013bf: PUSH1 0x20 000013c1: CALLDATASIZE 000013c2: PUSH1 0x03 000013c4: NOT 000013c5: ADD 000013c6: SLT 000013c7: PUSH2 0x03b2 000013ca: JUMPI 000013cb: PUSH2 0x13d2 000013ce: PUSH2 0x3fa8 000013d1: JUMP 000013d2: JUMPDEST 000013d3: PUSH2 0x13da 000013d6: PUSH2 0x4921 000013d9: JUMP 000013da: JUMPDEST 000013db: PUSH1 0x01 000013dd: PUSH1 0x01 000013df: PUSH1 0xa0 000013e1: SHL 000013e2: SUB 000013e3: DUP2 000013e4: AND 000013e5: ISZERO 000013e6: PUSH2 0x1495 000013e9: JUMPI 000013ea: PUSH0 000013eb: MLOAD 000013ec: PUSH1 0x20 000013ee: PUSH2 0x5d5d 000013f1: PUSH0 000013f2: CODECOPY 000013f3: PUSH0 000013f4: MLOAD 000013f5: SWAP1 000013f6: PUSH0 000013f7: MSTORE 000013f8: SLOAD 000013f9: SWAP1 000013fa: DUP2 000013fb: ISZERO 000013fc: PUSH2 0x1486 000013ff: JUMPI 00001400: PUSH2 0x141b 00001403: PUSH2 0x0763 00001406: SWAP3 00001407: PUSH0 00001408: MLOAD 00001409: PUSH1 0x20 0000140b: PUSH2 0x5cdd 0000140e: PUSH0 0000140f: CODECOPY 00001410: PUSH0 00001411: MLOAD 00001412: SWAP1 00001413: PUSH0 00001414: MSTORE 00001415: SLOAD 00001416: SWAP1 00001417: PUSH2 0x45e0 0000141a: JUMP 0000141b: JUMPDEST 0000141c: PUSH0 0000141d: PUSH0 0000141e: MLOAD 0000141f: PUSH1 0x20 00001421: PUSH2 0x5d5d 00001424: PUSH0 00001425: CODECOPY 00001426: PUSH0 00001427: MLOAD 00001428: SWAP1 00001429: PUSH0 0000142a: MSTORE 0000142b: SSTORE 0000142c: PUSH1 0x40 0000142e: DUP1 0000142f: MLOAD 00001430: PUSH1 0x01 00001432: PUSH1 0x01 00001434: PUSH1 0xa0 00001436: SHL 00001437: SUB 00001438: DUP5 00001439: AND 0000143a: DUP2 0000143b: MSTORE 0000143c: PUSH1 0x20 0000143e: DUP2 0000143f: ADD 00001440: DUP4 00001441: SWAP1 00001442: MSTORE 00001443: SWAP2 00001444: SWAP3 00001445: SWAP2 00001446: PUSH32 0x0a7a10dab02ee70c589a87e2b0d57484d85d029e381c3ca52387e25486a4c538 00001467: SWAP2 00001468: SWAP1 00001469: LOG1 0000146a: PUSH1 0x01 0000146c: PUSH1 0x01 0000146e: PUSH1 0xa0 00001470: SHL 00001471: SUB 00001472: PUSH0 00001473: MLOAD 00001474: PUSH1 0x20 00001476: PUSH2 0x5d1d 00001479: PUSH0 0000147a: CODECOPY 0000147b: PUSH0 0000147c: MLOAD 0000147d: SWAP1 0000147e: PUSH0 0000147f: MSTORE 00001480: SLOAD 00001481: AND 00001482: PUSH2 0x5202 00001485: JUMP 00001486: JUMPDEST 00001487: PUSH4 0x6e63c7c3 0000148c: PUSH1 0xe0 0000148e: SHL 0000148f: PUSH0 00001490: MSTORE 00001491: PUSH1 0x04 00001493: PUSH0 00001494: REVERT 00001495: JUMPDEST 00001496: PUSH1 0x40 00001498: MLOAD 00001499: PUSH4 0x6bc37c5f 0000149e: PUSH1 0xe1 000014a0: SHL 000014a1: DUP2 000014a2: MSTORE 000014a3: PUSH1 0x20 000014a5: PUSH1 0x04 000014a7: DUP3 000014a8: ADD 000014a9: MSTORE 000014aa: PUSH1 0x02 000014ac: PUSH1 0x24 000014ae: DUP3 000014af: ADD 000014b0: MSTORE 000014b1: PUSH2 0x746f 000014b4: PUSH1 0xf0 000014b6: SHL 000014b7: PUSH1 0x44 000014b9: DUP3 000014ba: ADD 000014bb: MSTORE 000014bc: PUSH1 0x64 000014be: SWAP1 000014bf: REVERT 000014c0: JUMPDEST 000014c1: CALLVALUE 000014c2: PUSH2 0x03b2 000014c5: JUMPI 000014c6: PUSH1 0x20 000014c8: CALLDATASIZE 000014c9: PUSH1 0x03 000014cb: NOT 000014cc: ADD 000014cd: SLT 000014ce: PUSH2 0x03b2 000014d1: JUMPI 000014d2: PUSH1 0x01 000014d4: PUSH1 0x01 000014d6: PUSH1 0xa0 000014d8: SHL 000014d9: SUB 000014da: PUSH2 0x14e1 000014dd: PUSH2 0x3fa8 000014e0: JUMP 000014e1: JUMPDEST 000014e2: PUSH2 0x14e9 000014e5: PUSH2 0x4921 000014e8: JUMP 000014e9: JUMPDEST 000014ea: AND 000014eb: PUSH1 0x01 000014ed: PUSH1 0x01 000014ef: PUSH1 0xa0 000014f1: SHL 000014f2: SUB 000014f3: NOT 000014f4: PUSH0 000014f5: MLOAD 000014f6: PUSH1 0x20 000014f8: PUSH2 0x5bbd 000014fb: PUSH0 000014fc: CODECOPY 000014fd: PUSH0 000014fe: MLOAD 000014ff: SWAP1 00001500: PUSH0 00001501: MSTORE 00001502: SLOAD 00001503: AND 00001504: OR 00001505: PUSH0 00001506: MLOAD 00001507: PUSH1 0x20 00001509: PUSH2 0x5bbd 0000150c: PUSH0 0000150d: CODECOPY 0000150e: PUSH0 0000150f: MLOAD 00001510: SWAP1 00001511: PUSH0 00001512: MSTORE 00001513: SSTORE 00001514: PUSH0 00001515: DUP1 00001516: RETURN 00001517: JUMPDEST 00001518: CALLVALUE 00001519: PUSH2 0x03b2 0000151c: JUMPI 0000151d: PUSH2 0x1525 00001520: CALLDATASIZE 00001521: PUSH2 0x4112 00001524: JUMP 00001525: JUMPDEST 00001526: SWAP1 00001527: PUSH1 0x40 00001529: MLOAD 0000152a: SWAP1 0000152b: PUSH2 0x1533 0000152e: DUP3 0000152f: PUSH2 0x4071 00001532: JUMP 00001533: JUMPDEST 00001534: PUSH0 00001535: DUP3 00001536: MSTORE 00001537: PUSH1 0x20 00001539: DUP3 0000153a: ADD 0000153b: SWAP1 0000153c: PUSH0 0000153d: DUP3 0000153e: MSTORE 0000153f: PUSH2 0x1546 00001542: PUSH2 0x487d 00001545: JUMP 00001546: JUMPDEST 00001547: PUSH2 0x154e 0000154a: PUSH2 0x48b2 0000154d: JUMP 0000154e: JUMPDEST 0000154f: PUSH2 0x1558 00001552: DUP5 00001553: DUP3 00001554: PUSH2 0x49bd 00001557: JUMP 00001558: JUMPDEST 00001559: SWAP1 0000155a: PUSH1 0x01 0000155c: PUSH1 0xff 0000155e: PUSH1 0x07 00001560: DUP5 00001561: ADD 00001562: SLOAD 00001563: AND 00001564: ISZERO 00001565: ISZERO 00001566: SUB 00001567: PUSH2 0x161c 0000156a: JUMPI 0000156b: POP 0000156c: PUSH1 0x40 0000156e: SWAP4 0000156f: PUSH0 00001570: PUSH32 0x0aeafd14584f8a6bfe6b3846da893395e218188cb3ba5586a705848f7fbcb1ad 00001591: SWAP3 00001592: PUSH2 0x15c6 00001595: PUSH2 0x15b1 00001598: PUSH0 00001599: MLOAD 0000159a: PUSH1 0x20 0000159c: PUSH2 0x5a7d 0000159f: PUSH0 000015a0: CODECOPY 000015a1: PUSH0 000015a2: MLOAD 000015a3: SWAP1 000015a4: PUSH0 000015a5: MSTORE 000015a6: SLOAD 000015a7: PUSH1 0x02 000015a9: DUP5 000015aa: ADD 000015ab: SLOAD 000015ac: SWAP1 000015ad: PUSH2 0x45e0 000015b0: JUMP 000015b1: JUMPDEST 000015b2: PUSH0 000015b3: MLOAD 000015b4: PUSH1 0x20 000015b6: PUSH2 0x5b9d 000015b9: PUSH0 000015ba: CODECOPY 000015bb: PUSH0 000015bc: MLOAD 000015bd: SWAP1 000015be: PUSH0 000015bf: MSTORE 000015c0: SLOAD 000015c1: SWAP1 000015c2: PUSH2 0x45f3 000015c5: JUMP 000015c6: JUMPDEST 000015c7: DUP6 000015c8: MSTORE 000015c9: PUSH1 0x06 000015cb: DUP2 000015cc: ADD 000015cd: SWAP1 000015ce: PUSH2 0x15e1 000015d1: PUSH1 0x05 000015d3: DUP4 000015d4: SLOAD 000015d5: SWAP3 000015d6: DUP4 000015d7: DUP11 000015d8: MSTORE 000015d9: ADD 000015da: SWAP2 000015db: DUP3 000015dc: SLOAD 000015dd: PUSH2 0x45c6 000015e0: JUMP 000015e1: JUMPDEST 000015e2: SWAP1 000015e3: SSTORE 000015e4: SSTORE 000015e5: DUP4 000015e6: MLOAD 000015e7: DUP4 000015e8: MLOAD 000015e9: DUP7 000015ea: MLOAD 000015eb: SWAP3 000015ec: DUP4 000015ed: MSTORE 000015ee: PUSH1 0x20 000015f0: DUP4 000015f1: ADD 000015f2: SWAP2 000015f3: SWAP1 000015f4: SWAP2 000015f5: MSTORE 000015f6: PUSH1 0x40 000015f8: DUP3 000015f9: ADD 000015fa: MSTORE 000015fb: PUSH1 0x60 000015fd: SWAP1 000015fe: LOG1 000015ff: PUSH0 00001600: PUSH0 00001601: MLOAD 00001602: PUSH1 0x20 00001604: PUSH2 0x5cfd 00001607: PUSH0 00001608: CODECOPY 00001609: PUSH0 0000160a: MLOAD 0000160b: SWAP1 0000160c: PUSH0 0000160d: MSTORE 0000160e: TSTORE 0000160f: DUP3 00001610: MLOAD 00001611: SWAP2 00001612: MLOAD 00001613: DUP3 00001614: MSTORE 00001615: MLOAD 00001616: PUSH1 0x20 00001618: DUP3 00001619: ADD 0000161a: MSTORE 0000161b: RETURN 0000161c: JUMPDEST 0000161d: DUP5 0000161e: SWAP1 0000161f: PUSH4 0x1c6768ad 00001624: PUSH1 0xe2 00001626: SHL 00001627: PUSH0 00001628: MSTORE 00001629: PUSH1 0x04 0000162b: MSTORE 0000162c: PUSH1 0x24 0000162e: MSTORE 0000162f: PUSH1 0x44 00001631: PUSH0 00001632: REVERT 00001633: JUMPDEST 00001634: CALLVALUE 00001635: PUSH2 0x03b2 00001638: JUMPI 00001639: PUSH0 0000163a: CALLDATASIZE 0000163b: PUSH1 0x03 0000163d: NOT 0000163e: ADD 0000163f: SLT 00001640: PUSH2 0x03b2 00001643: JUMPI 00001644: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100 00001665: SLOAD 00001666: ISZERO 00001667: DUP1 00001668: PUSH2 0x175c 0000166b: JUMPI 0000166c: JUMPDEST 0000166d: ISZERO 0000166e: PUSH2 0x1717 00001671: JUMPI 00001672: PUSH2 0x16bb 00001675: PUSH2 0x167c 00001678: PUSH2 0x4235 0000167b: JUMP 0000167c: JUMPDEST 0000167d: PUSH2 0x1684 00001680: PUSH2 0x4304 00001683: JUMP 00001684: JUMPDEST 00001685: PUSH1 0x20 00001687: PUSH2 0x16c9 0000168a: PUSH1 0x40 0000168c: MLOAD 0000168d: SWAP3 0000168e: PUSH2 0x1697 00001691: DUP4 00001692: DUP6 00001693: PUSH2 0x408d 00001696: JUMP 00001697: JUMPDEST 00001698: PUSH0 00001699: DUP5 0000169a: MSTORE 0000169b: PUSH0 0000169c: CALLDATASIZE 0000169d: DUP2 0000169e: CALLDATACOPY 0000169f: PUSH1 0x40 000016a1: MLOAD 000016a2: SWAP6 000016a3: DUP7 000016a4: SWAP6 000016a5: PUSH1 0x0f 000016a7: PUSH1 0xf8 000016a9: SHL 000016aa: DUP8 000016ab: MSTORE 000016ac: PUSH1 0xe0 000016ae: DUP6 000016af: DUP9 000016b0: ADD 000016b1: MSTORE 000016b2: PUSH1 0xe0 000016b4: DUP8 000016b5: ADD 000016b6: SWAP1 000016b7: PUSH2 0x3f84 000016ba: JUMP 000016bb: JUMPDEST 000016bc: SWAP1 000016bd: DUP6 000016be: DUP3 000016bf: SUB 000016c0: PUSH1 0x40 000016c2: DUP8 000016c3: ADD 000016c4: MSTORE 000016c5: PUSH2 0x3f84 000016c8: JUMP 000016c9: JUMPDEST 000016ca: CHAINID 000016cb: PUSH1 0x60 000016cd: DUP6 000016ce: ADD 000016cf: MSTORE 000016d0: ADDRESS 000016d1: PUSH1 0x80 000016d3: DUP6 000016d4: ADD 000016d5: MSTORE 000016d6: PUSH0 000016d7: PUSH1 0xa0 000016d9: DUP6 000016da: ADD 000016db: MSTORE 000016dc: DUP4 000016dd: DUP2 000016de: SUB 000016df: PUSH1 0xc0 000016e1: DUP6 000016e2: ADD 000016e3: MSTORE 000016e4: DUP2 000016e5: DUP1 000016e6: DUP5 000016e7: MLOAD 000016e8: SWAP3 000016e9: DUP4 000016ea: DUP2 000016eb: MSTORE 000016ec: ADD 000016ed: SWAP4 000016ee: ADD 000016ef: SWAP2 000016f0: PUSH0 000016f1: JUMPDEST 000016f2: DUP3 000016f3: DUP2 000016f4: LT 000016f5: PUSH2 0x1700 000016f8: JUMPI 000016f9: POP 000016fa: POP 000016fb: POP 000016fc: POP 000016fd: SUB 000016fe: SWAP1 000016ff: RETURN 00001700: JUMPDEST 00001701: DUP4 00001702: MLOAD 00001703: DUP6 00001704: MSTORE 00001705: DUP7 00001706: SWAP6 00001707: POP 00001708: SWAP4 00001709: DUP2 0000170a: ADD 0000170b: SWAP4 0000170c: SWAP3 0000170d: DUP2 0000170e: ADD 0000170f: SWAP3 00001710: PUSH1 0x01 00001712: ADD 00001713: PUSH2 0x16f1 00001716: JUMP 00001717: JUMPDEST 00001718: PUSH1 0x40 0000171a: MLOAD 0000171b: PUSH3 0x461bcd 0000171f: PUSH1 0xe5 00001721: SHL 00001722: DUP2 00001723: MSTORE 00001724: PUSH1 0x20 00001726: PUSH1 0x04 00001728: DUP3 00001729: ADD 0000172a: MSTORE 0000172b: PUSH1 0x15 0000172d: PUSH1 0x24 0000172f: DUP3 00001730: ADD 00001731: MSTORE 00001732: PUSH32 0x4549503731323a20556e696e697469616c697a65640000000000000000000000 00001753: PUSH1 0x44 00001755: DUP3 00001756: ADD 00001757: MSTORE 00001758: PUSH1 0x64 0000175a: SWAP1 0000175b: REVERT 0000175c: JUMPDEST 0000175d: POP 0000175e: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101 0000177f: SLOAD 00001780: ISZERO 00001781: PUSH2 0x166c 00001784: JUMP 00001785: JUMPDEST 00001786: CALLVALUE 00001787: PUSH2 0x03b2 0000178a: JUMPI 0000178b: PUSH1 0x20 0000178d: CALLDATASIZE 0000178e: PUSH1 0x03 00001790: NOT 00001791: ADD 00001792: SLT 00001793: PUSH2 0x03b2 00001796: JUMPI 00001797: PUSH2 0x0763 0000179a: PUSH2 0x17a1 0000179d: PUSH2 0x3fea 000017a0: JUMP 000017a1: JUMPDEST 000017a2: PUSH2 0x17a9 000017a5: PUSH2 0x48b2 000017a8: JUMP 000017a9: JUMPDEST 000017aa: PUSH2 0x4b06 000017ad: JUMP 000017ae: JUMPDEST 000017af: CALLVALUE 000017b0: PUSH2 0x03b2 000017b3: JUMPI 000017b4: PUSH1 0x20 000017b6: CALLDATASIZE 000017b7: PUSH1 0x03 000017b9: NOT 000017ba: ADD 000017bb: SLT 000017bc: PUSH2 0x03b2 000017bf: JUMPI 000017c0: PUSH1 0x01 000017c2: PUSH1 0x01 000017c4: PUSH1 0xa0 000017c6: SHL 000017c7: SUB 000017c8: PUSH2 0x17cf 000017cb: PUSH2 0x3fa8 000017ce: JUMP 000017cf: JUMPDEST 000017d0: AND 000017d1: PUSH0 000017d2: MSTORE 000017d3: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00 000017f4: PUSH1 0x20 000017f6: MSTORE 000017f7: PUSH1 0x20 000017f9: PUSH1 0x40 000017fb: PUSH0 000017fc: KECCAK256 000017fd: SLOAD 000017fe: PUSH1 0x40 00001800: MLOAD 00001801: SWAP1 00001802: DUP2 00001803: MSTORE 00001804: RETURN 00001805: JUMPDEST 00001806: CALLVALUE 00001807: PUSH2 0x03b2 0000180a: JUMPI 0000180b: PUSH0 0000180c: CALLDATASIZE 0000180d: PUSH1 0x03 0000180f: NOT 00001810: ADD 00001811: SLT 00001812: PUSH2 0x03b2 00001815: JUMPI 00001816: PUSH1 0x20 00001818: PUSH1 0x40 0000181a: MLOAD 0000181b: PUSH32 0x0000000000000000000000000000000000000000000000000000000ba43b7400 0000183c: DUP2 0000183d: MSTORE 0000183e: RETURN 0000183f: JUMPDEST 00001840: CALLVALUE 00001841: PUSH2 0x03b2 00001844: JUMPI 00001845: PUSH0 00001846: CALLDATASIZE 00001847: PUSH1 0x03 00001849: NOT 0000184a: ADD 0000184b: SLT 0000184c: PUSH2 0x03b2 0000184f: JUMPI 00001850: PUSH1 0x20 00001852: PUSH1 0xff 00001854: PUSH0 00001855: MLOAD 00001856: PUSH1 0x20 00001858: PUSH2 0x5bfd 0000185b: PUSH0 0000185c: CODECOPY 0000185d: PUSH0 0000185e: MLOAD 0000185f: SWAP1 00001860: PUSH0 00001861: MSTORE 00001862: SLOAD 00001863: AND 00001864: PUSH1 0x40 00001866: MLOAD 00001867: SWAP1 00001868: ISZERO 00001869: ISZERO 0000186a: DUP2 0000186b: MSTORE 0000186c: RETURN 0000186d: JUMPDEST 0000186e: CALLVALUE 0000186f: PUSH2 0x03b2 00001872: JUMPI 00001873: PUSH1 0x80 00001875: CALLDATASIZE 00001876: PUSH1 0x03 00001878: NOT 00001879: ADD 0000187a: SLT 0000187b: PUSH2 0x03b2 0000187e: JUMPI 0000187f: PUSH1 0x04 00001881: CALLDATALOAD 00001882: PUSH1 0x24 00001884: CALLDATALOAD 00001885: PUSH1 0x40 00001887: CALLDATASIZE 00001888: PUSH1 0x43 0000188a: NOT 0000188b: ADD 0000188c: SLT 0000188d: PUSH2 0x03b2 00001890: JUMPI 00001891: PUSH32 0xdbbc76676cb73b8d1c33378e0cdc88f364e4203cfa5b1e4c7d15b66b5cb97f0c 000018b2: SWAP2 000018b3: PUSH2 0x1935 000018b6: PUSH1 0x40 000018b8: MLOAD 000018b9: PUSH2 0x18c1 000018bc: DUP2 000018bd: PUSH2 0x4071 000018c0: JUMP 000018c1: JUMPDEST 000018c2: PUSH1 0x44 000018c4: CALLDATALOAD 000018c5: DUP2 000018c6: MSTORE 000018c7: PUSH1 0x20 000018c9: DUP2 000018ca: ADD 000018cb: SWAP1 000018cc: PUSH1 0x64 000018ce: CALLDATALOAD 000018cf: DUP3 000018d0: MSTORE 000018d1: PUSH2 0x18d8 000018d4: PUSH2 0x487d 000018d7: JUMP 000018d8: JUMPDEST 000018d9: PUSH2 0x18e0 000018dc: PUSH2 0x48b2 000018df: JUMP 000018e0: JUMPDEST 000018e1: PUSH1 0x04 000018e3: PUSH2 0x18ec 000018e6: DUP7 000018e7: DUP7 000018e8: PUSH2 0x49bd 000018eb: JUMP 000018ec: JUMPDEST 000018ed: PUSH1 0x03 000018ef: DUP2 000018f0: ADD 000018f1: PUSH2 0x18fd 000018f4: DUP2 000018f5: SLOAD 000018f6: DUP6 000018f7: MLOAD 000018f8: SWAP1 000018f9: PUSH2 0x45c6 000018fc: JUMP 000018fd: JUMPDEST 000018fe: SWAP1 000018ff: SSTORE 00001900: ADD 00001901: SWAP2 00001902: DUP3 00001903: SLOAD 00001904: SWAP1 00001905: MLOAD 00001906: SWAP3 00001907: DUP4 00001908: DUP1 00001909: SWAP3 0000190a: SUB 0000190b: PUSH2 0x194a 0000190e: JUMPI 0000190f: JUMPDEST 00001910: POP 00001911: POP 00001912: MLOAD 00001913: PUSH1 0x40 00001915: MLOAD 00001916: SWAP5 00001917: DUP6 00001918: SWAP5 00001919: DUP6 0000191a: SWAP1 0000191b: SWAP5 0000191c: SWAP4 0000191d: SWAP3 0000191e: PUSH1 0x60 00001920: SWAP3 00001921: PUSH1 0x80 00001923: DUP4 00001924: ADD 00001925: SWAP7 00001926: DUP4 00001927: MSTORE 00001928: PUSH1 0x20 0000192a: DUP4 0000192b: ADD 0000192c: MSTORE 0000192d: PUSH1 0x40 0000192f: DUP3 00001930: ADD 00001931: MSTORE 00001932: ADD 00001933: MSTORE 00001934: JUMP 00001935: JUMPDEST 00001936: SUB 00001937: SWAP1 00001938: LOG1 00001939: PUSH0 0000193a: PUSH0 0000193b: MLOAD 0000193c: PUSH1 0x20 0000193e: PUSH2 0x5cfd 00001941: PUSH0 00001942: CODECOPY 00001943: PUSH0 00001944: MLOAD 00001945: SWAP1 00001946: PUSH0 00001947: MSTORE 00001948: TSTORE 00001949: STOP 0000194a: JUMPDEST 0000194b: SSTORE 0000194c: DUP2 0000194d: DUP8 0000194e: PUSH2 0x190f 00001951: JUMP 00001952: JUMPDEST 00001953: CALLVALUE 00001954: PUSH2 0x03b2 00001957: JUMPI 00001958: PUSH1 0x20 0000195a: CALLDATASIZE 0000195b: PUSH1 0x03 0000195d: NOT 0000195e: ADD 0000195f: SLT 00001960: PUSH2 0x03b2 00001963: JUMPI 00001964: PUSH1 0x01 00001966: PUSH1 0x01 00001968: PUSH1 0xa0 0000196a: SHL 0000196b: SUB 0000196c: PUSH2 0x1973 0000196f: PUSH2 0x3fa8 00001972: JUMP 00001973: JUMPDEST 00001974: AND 00001975: PUSH0 00001976: MSTORE 00001977: PUSH0 00001978: MLOAD 00001979: PUSH1 0x20 0000197b: PUSH2 0x5abd 0000197e: PUSH0 0000197f: CODECOPY 00001980: PUSH0 00001981: MLOAD 00001982: SWAP1 00001983: PUSH0 00001984: MSTORE 00001985: PUSH1 0x20 00001987: MSTORE 00001988: PUSH1 0x20 0000198a: PUSH1 0x40 0000198c: PUSH0 0000198d: KECCAK256 0000198e: SLOAD 0000198f: PUSH1 0x40 00001991: MLOAD 00001992: SWAP1 00001993: DUP2 00001994: MSTORE 00001995: RETURN 00001996: JUMPDEST 00001997: CALLVALUE 00001998: PUSH2 0x03b2 0000199b: JUMPI 0000199c: PUSH0 0000199d: CALLDATASIZE 0000199e: PUSH1 0x03 000019a0: NOT 000019a1: ADD 000019a2: SLT 000019a3: PUSH2 0x03b2 000019a6: JUMPI 000019a7: PUSH1 0x20 000019a9: PUSH1 0xff 000019ab: PUSH0 000019ac: MLOAD 000019ad: PUSH1 0x20 000019af: PUSH2 0x5d1d 000019b2: PUSH0 000019b3: CODECOPY 000019b4: PUSH0 000019b5: MLOAD 000019b6: SWAP1 000019b7: PUSH0 000019b8: MSTORE 000019b9: SLOAD 000019ba: PUSH1 0xa0 000019bc: SHR 000019bd: AND 000019be: PUSH1 0x40 000019c0: MLOAD 000019c1: SWAP1 000019c2: ISZERO 000019c3: ISZERO 000019c4: DUP2 000019c5: MSTORE 000019c6: RETURN 000019c7: JUMPDEST 000019c8: CALLVALUE 000019c9: PUSH2 0x03b2 000019cc: JUMPI 000019cd: PUSH2 0x19d5 000019d0: CALLDATASIZE 000019d1: PUSH2 0x417a 000019d4: JUMP 000019d5: JUMPDEST 000019d6: PUSH2 0x19e0 000019d9: SWAP4 000019da: SWAP2 000019db: SWAP4 000019dc: PUSH2 0x487d 000019df: JUMP 000019e0: JUMPDEST 000019e1: PUSH2 0x19e8 000019e4: PUSH2 0x48b2 000019e7: JUMP 000019e8: JUMPDEST 000019e9: PUSH1 0x01 000019eb: PUSH1 0x01 000019ed: PUSH1 0xa0 000019ef: SHL 000019f0: SUB 000019f1: DUP5 000019f2: AND 000019f3: ISZERO 000019f4: PUSH2 0x1aeb 000019f7: JUMPI 000019f8: DUP4 000019f9: DUP2 000019fa: PUSH2 0x1a60 000019fd: PUSH2 0x1a2a 00001a00: PUSH2 0x1935 00001a03: SWAP5 00001a04: PUSH32 0x5f8ecf683e1923224ca1e9b396be6a7a13e480a011e7645d641e7a7d3a2d0f03 00001a25: SWAP9 00001a26: PUSH2 0x4eb5 00001a29: JUMP 00001a2a: JUMPDEST 00001a2b: PUSH0 00001a2c: MLOAD 00001a2d: PUSH1 0x20 00001a2f: PUSH2 0x5c9d 00001a32: PUSH0 00001a33: CODECOPY 00001a34: PUSH0 00001a35: MLOAD 00001a36: SWAP1 00001a37: PUSH0 00001a38: MSTORE 00001a39: SLOAD 00001a3a: PUSH1 0xff 00001a3c: DUP2 00001a3d: AND 00001a3e: ISZERO 00001a3f: DUP1 00001a40: ISZERO 00001a41: PUSH2 0x1aaa 00001a44: JUMPI 00001a45: JUMPDEST 00001a46: PUSH2 0x1a95 00001a49: JUMPI 00001a4a: JUMPDEST 00001a4b: POP 00001a4c: PUSH0 00001a4d: MLOAD 00001a4e: PUSH1 0x20 00001a50: PUSH2 0x5cdd 00001a53: PUSH0 00001a54: CODECOPY 00001a55: PUSH0 00001a56: MLOAD 00001a57: SWAP1 00001a58: PUSH0 00001a59: MSTORE 00001a5a: SLOAD 00001a5b: SWAP1 00001a5c: PUSH2 0x45e0 00001a5f: JUMP 00001a60: JUMPDEST 00001a61: SWAP2 00001a62: PUSH1 0x40 00001a64: MLOAD 00001a65: SWAP6 00001a66: DUP7 00001a67: SWAP6 00001a68: DUP7 00001a69: SWAP2 00001a6a: PUSH1 0x80 00001a6c: SWAP4 00001a6d: PUSH1 0x01 00001a6f: PUSH1 0x01 00001a71: PUSH1 0xa0 00001a73: SHL 00001a74: SUB 00001a75: SWAP2 00001a76: SWAP8 00001a77: SWAP7 00001a78: SWAP6 00001a79: SWAP3 00001a7a: SWAP8 00001a7b: PUSH1 0xa0 00001a7d: DUP6 00001a7e: ADD 00001a7f: SWAP9 00001a80: DUP6 00001a81: MSTORE 00001a82: PUSH1 0x20 00001a84: DUP6 00001a85: ADD 00001a86: MSTORE 00001a87: AND 00001a88: PUSH1 0x40 00001a8a: DUP4 00001a8b: ADD 00001a8c: MSTORE 00001a8d: PUSH1 0x60 00001a8f: DUP3 00001a90: ADD 00001a91: MSTORE 00001a92: ADD 00001a93: MSTORE 00001a94: JUMP 00001a95: JUMPDEST 00001a96: PUSH1 0xff 00001a98: PUSH2 0x1aa4 00001a9b: SWAP2 00001a9c: PUSH1 0x10 00001a9e: SHR 00001a9f: AND 00001aa0: PUSH2 0x4b06 00001aa3: JUMP 00001aa4: JUMPDEST 00001aa5: DUP9 00001aa6: PUSH2 0x1a4a 00001aa9: JUMP 00001aaa: JUMPDEST 00001aab: POP 00001aac: PUSH0 00001aad: MLOAD 00001aae: PUSH1 0x20 00001ab0: PUSH2 0x5c7d 00001ab3: PUSH0 00001ab4: CODECOPY 00001ab5: PUSH0 00001ab6: MLOAD 00001ab7: SWAP1 00001ab8: PUSH0 00001ab9: MSTORE 00001aba: SLOAD 00001abb: PUSH2 0x2710 00001abe: PUSH2 0x1ae4 00001ac1: PUSH0 00001ac2: MLOAD 00001ac3: PUSH1 0x20 00001ac5: PUSH2 0x5a7d 00001ac8: PUSH0 00001ac9: CODECOPY 00001aca: PUSH0 00001acb: MLOAD 00001acc: SWAP1 00001acd: PUSH0 00001ace: MSTORE 00001acf: SLOAD 00001ad0: PUSH0 00001ad1: MLOAD 00001ad2: PUSH1 0x20 00001ad4: PUSH2 0x5c1d 00001ad7: PUSH0 00001ad8: CODECOPY 00001ad9: PUSH0 00001ada: MLOAD 00001adb: SWAP1 00001adc: PUSH0 00001add: MSTORE 00001ade: SLOAD 00001adf: SWAP1 00001ae0: PUSH2 0x45e0 00001ae3: JUMP 00001ae4: JUMPDEST 00001ae5: DIV 00001ae6: LT 00001ae7: PUSH2 0x1a45 00001aea: JUMP 00001aeb: JUMPDEST 00001aec: PUSH1 0x40 00001aee: MLOAD 00001aef: PUSH4 0x6bc37c5f 00001af4: PUSH1 0xe1 00001af6: SHL 00001af7: DUP2 00001af8: MSTORE 00001af9: PUSH1 0x20 00001afb: PUSH1 0x04 00001afd: DUP1 00001afe: DUP4 00001aff: ADD 00001b00: SWAP2 00001b01: SWAP1 00001b02: SWAP2 00001b03: MSTORE 00001b04: PUSH1 0x24 00001b06: DUP3 00001b07: ADD 00001b08: MSTORE 00001b09: PUSH4 0x66726f6d 00001b0e: PUSH1 0xe0 00001b10: SHL 00001b11: PUSH1 0x44 00001b13: DUP3 00001b14: ADD 00001b15: MSTORE 00001b16: PUSH1 0x64 00001b18: SWAP1 00001b19: REVERT 00001b1a: JUMPDEST 00001b1b: CALLVALUE 00001b1c: PUSH2 0x03b2 00001b1f: JUMPI 00001b20: PUSH0 00001b21: CALLDATASIZE 00001b22: PUSH1 0x03 00001b24: NOT 00001b25: ADD 00001b26: SLT 00001b27: PUSH2 0x03b2 00001b2a: JUMPI 00001b2b: PUSH1 0x20 00001b2d: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d 00001b4e: SLOAD 00001b4f: PUSH1 0x40 00001b51: MLOAD 00001b52: SWAP1 00001b53: DUP2 00001b54: MSTORE 00001b55: RETURN 00001b56: JUMPDEST 00001b57: CALLVALUE 00001b58: PUSH2 0x03b2 00001b5b: JUMPI 00001b5c: PUSH0 00001b5d: CALLDATASIZE 00001b5e: PUSH1 0x03 00001b60: NOT 00001b61: ADD 00001b62: SLT 00001b63: PUSH2 0x03b2 00001b66: JUMPI 00001b67: PUSH1 0x20 00001b69: PUSH0 00001b6a: MLOAD 00001b6b: PUSH1 0x20 00001b6d: PUSH2 0x5d5d 00001b70: PUSH0 00001b71: CODECOPY 00001b72: PUSH0 00001b73: MLOAD 00001b74: SWAP1 00001b75: PUSH0 00001b76: MSTORE 00001b77: SLOAD 00001b78: PUSH1 0x40 00001b7a: MLOAD 00001b7b: SWAP1 00001b7c: DUP2 00001b7d: MSTORE 00001b7e: RETURN 00001b7f: JUMPDEST 00001b80: CALLVALUE 00001b81: PUSH2 0x03b2 00001b84: JUMPI 00001b85: PUSH1 0x40 00001b87: PUSH2 0x1b8f 00001b8a: CALLDATASIZE 00001b8b: PUSH2 0x40f8 00001b8e: JUMP 00001b8f: JUMPDEST 00001b90: PUSH2 0x1b97 00001b93: PUSH2 0x487d 00001b96: JUMP 00001b97: JUMPDEST 00001b98: PUSH2 0x1b9f 00001b9b: PUSH2 0x48b2 00001b9e: JUMP 00001b9f: JUMPDEST 00001ba0: PUSH1 0x03 00001ba2: PUSH2 0x1bab 00001ba5: DUP4 00001ba6: DUP6 00001ba7: PUSH2 0x49bd 00001baa: JUMP 00001bab: JUMPDEST 00001bac: ADD 00001bad: SWAP2 00001bae: DUP3 00001baf: SLOAD 00001bb0: SWAP4 00001bb1: DUP5 00001bb2: DUP4 00001bb3: GT 00001bb4: PUSH0 00001bb5: EQ 00001bb6: PUSH2 0x1c2a 00001bb9: JUMPI 00001bba: DUP4 00001bbb: SWAP5 00001bbc: POP 00001bbd: PUSH0 00001bbe: PUSH2 0x1beb 00001bc1: PUSH32 0x9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a90198 00001be2: SWAP5 00001be3: SWAP6 00001be4: SLOAD 00001be5: DUP1 00001be6: SWAP7 00001be7: PUSH2 0x45d3 00001bea: JUMP 00001beb: JUMPDEST 00001bec: SWAP5 00001bed: SWAP6 00001bee: SSTORE 00001bef: JUMPDEST 00001bf0: DUP6 00001bf1: MLOAD 00001bf2: SWAP1 00001bf3: DUP2 00001bf4: MSTORE 00001bf5: PUSH1 0x20 00001bf7: DUP2 00001bf8: ADD 00001bf9: SWAP2 00001bfa: SWAP1 00001bfb: SWAP2 00001bfc: MSTORE 00001bfd: PUSH1 0x40 00001bff: DUP2 00001c00: ADD 00001c01: DUP5 00001c02: SWAP1 00001c03: MSTORE 00001c04: PUSH1 0x60 00001c06: DUP2 00001c07: ADD 00001c08: DUP4 00001c09: SWAP1 00001c0a: MSTORE 00001c0b: PUSH1 0x80 00001c0d: SWAP1 00001c0e: LOG1 00001c0f: PUSH0 00001c10: PUSH0 00001c11: MLOAD 00001c12: PUSH1 0x20 00001c14: PUSH2 0x5cfd 00001c17: PUSH0 00001c18: CODECOPY 00001c19: PUSH0 00001c1a: MLOAD 00001c1b: SWAP1 00001c1c: PUSH0 00001c1d: MSTORE 00001c1e: TSTORE 00001c1f: DUP3 00001c20: MLOAD 00001c21: SWAP2 00001c22: DUP3 00001c23: MSTORE 00001c24: PUSH1 0x20 00001c26: DUP3 00001c27: ADD 00001c28: MSTORE 00001c29: RETURN 00001c2a: JUMPDEST 00001c2b: SWAP3 00001c2c: PUSH2 0x1c58 00001c2f: DUP4 00001c30: PUSH32 0x9d8bfb8a1a799d9f6f5e207b8c00c13b549b7f20c8421d1f94bc9bfe23a90198 00001c51: SWAP5 00001c52: SWAP4 00001c53: SWAP7 00001c54: PUSH2 0x45d3 00001c57: JUMP 00001c58: JUMPDEST 00001c59: SWAP1 00001c5a: SSTORE 00001c5b: SWAP3 00001c5c: PUSH0 00001c5d: SWAP3 00001c5e: PUSH2 0x1bef 00001c61: JUMP 00001c62: JUMPDEST 00001c63: CALLVALUE 00001c64: PUSH2 0x03b2 00001c67: JUMPI 00001c68: PUSH0 00001c69: CALLDATASIZE 00001c6a: PUSH1 0x03 00001c6c: NOT 00001c6d: ADD 00001c6e: SLT 00001c6f: PUSH2 0x03b2 00001c72: JUMPI 00001c73: PUSH1 0x20 00001c75: PUSH0 00001c76: MLOAD 00001c77: PUSH1 0x20 00001c79: PUSH2 0x5d3d 00001c7c: PUSH0 00001c7d: CODECOPY 00001c7e: PUSH0 00001c7f: MLOAD 00001c80: SWAP1 00001c81: PUSH0 00001c82: MSTORE 00001c83: SLOAD 00001c84: PUSH1 0x40 00001c86: MLOAD 00001c87: SWAP1 00001c88: DUP2 00001c89: MSTORE 00001c8a: RETURN 00001c8b: JUMPDEST 00001c8c: CALLVALUE 00001c8d: PUSH2 0x03b2 00001c90: JUMPI 00001c91: PUSH0 00001c92: CALLDATASIZE 00001c93: PUSH1 0x03 00001c95: NOT 00001c96: ADD 00001c97: SLT 00001c98: PUSH2 0x03b2 00001c9b: JUMPI 00001c9c: PUSH1 0x01 00001c9e: PUSH1 0x01 00001ca0: PUSH1 0xa0 00001ca2: SHL 00001ca3: SUB 00001ca4: PUSH32 0x00000000000000000000000009019548ef289cf2694530b7a22420ad9f891582 00001cc5: AND 00001cc6: ADDRESS 00001cc7: SUB 00001cc8: PUSH2 0x1ce2 00001ccb: JUMPI 00001ccc: PUSH1 0x20 00001cce: PUSH1 0x40 00001cd0: MLOAD 00001cd1: PUSH0 00001cd2: MLOAD 00001cd3: PUSH1 0x20 00001cd5: PUSH2 0x5bdd 00001cd8: PUSH0 00001cd9: CODECOPY 00001cda: PUSH0 00001cdb: MLOAD 00001cdc: SWAP1 00001cdd: PUSH0 00001cde: MSTORE 00001cdf: DUP2 00001ce0: MSTORE 00001ce1: RETURN 00001ce2: JUMPDEST 00001ce3: PUSH4 0x703e46dd 00001ce8: PUSH1 0xe1 00001cea: SHL 00001ceb: PUSH0 00001cec: MSTORE 00001ced: PUSH1 0x04 00001cef: PUSH0 00001cf0: REVERT 00001cf1: JUMPDEST 00001cf2: CALLVALUE 00001cf3: PUSH2 0x03b2 00001cf6: JUMPI 00001cf7: PUSH1 0x20 00001cf9: CALLDATASIZE 00001cfa: PUSH1 0x03 00001cfc: NOT 00001cfd: ADD 00001cfe: SLT 00001cff: PUSH2 0x03b2 00001d02: JUMPI 00001d03: PUSH1 0x20 00001d05: PUSH2 0x137d 00001d08: PUSH2 0x1d21 00001d0b: PUSH0 00001d0c: MLOAD 00001d0d: PUSH1 0x20 00001d0f: PUSH2 0x5cdd 00001d12: PUSH0 00001d13: CODECOPY 00001d14: PUSH0 00001d15: MLOAD 00001d16: SWAP1 00001d17: PUSH0 00001d18: MSTORE 00001d19: SLOAD 00001d1a: PUSH1 0x04 00001d1c: CALLDATALOAD 00001d1d: PUSH2 0x45f3 00001d20: JUMP 00001d21: JUMPDEST 00001d22: PUSH2 0x519a 00001d25: JUMP 00001d26: JUMPDEST 00001d27: PUSH1 0x40 00001d29: CALLDATASIZE 00001d2a: PUSH1 0x03 00001d2c: NOT 00001d2d: ADD 00001d2e: SLT 00001d2f: PUSH2 0x03b2 00001d32: JUMPI 00001d33: PUSH2 0x1d3a 00001d36: PUSH2 0x3fa8 00001d39: JUMP 00001d3a: JUMPDEST 00001d3b: PUSH1 0x24 00001d3d: CALLDATALOAD 00001d3e: PUSH8 0xffffffffffffffff 00001d47: DUP2 00001d48: GT 00001d49: PUSH2 0x03b2 00001d4c: JUMPI 00001d4d: CALLDATASIZE 00001d4e: PUSH1 0x23 00001d50: DUP3 00001d51: ADD 00001d52: SLT 00001d53: ISZERO 00001d54: PUSH2 0x03b2 00001d57: JUMPI 00001d58: PUSH2 0x1d6b 00001d5b: SWAP1 00001d5c: CALLDATASIZE 00001d5d: SWAP1 00001d5e: PUSH1 0x24 00001d60: DUP2 00001d61: PUSH1 0x04 00001d63: ADD 00001d64: CALLDATALOAD 00001d65: SWAP2 00001d66: ADD 00001d67: PUSH2 0x4144 00001d6a: JUMP 00001d6b: JUMPDEST 00001d6c: PUSH1 0x01 00001d6e: PUSH1 0x01 00001d70: PUSH1 0xa0 00001d72: SHL 00001d73: SUB 00001d74: PUSH32 0x00000000000000000000000009019548ef289cf2694530b7a22420ad9f891582 00001d95: AND 00001d96: DUP1 00001d97: ADDRESS 00001d98: EQ 00001d99: SWAP1 00001d9a: DUP2 00001d9b: ISZERO 00001d9c: PUSH2 0x1eef 00001d9f: JUMPI 00001da0: JUMPDEST 00001da1: POP 00001da2: PUSH2 0x1ce2 00001da5: JUMPI 00001da6: PUSH2 0x1dad 00001da9: PUSH2 0x4921 00001dac: JUMP 00001dad: JUMPDEST 00001dae: PUSH1 0x40 00001db0: MLOAD 00001db1: PUSH4 0x52d1902d 00001db6: PUSH1 0xe0 00001db8: SHL 00001db9: DUP2 00001dba: MSTORE 00001dbb: PUSH1 0x01 00001dbd: PUSH1 0x01 00001dbf: PUSH1 0xa0 00001dc1: SHL 00001dc2: SUB 00001dc3: DUP4 00001dc4: AND 00001dc5: SWAP3 00001dc6: SWAP1 00001dc7: PUSH1 0x20 00001dc9: DUP2 00001dca: PUSH1 0x04 00001dcc: DUP2 00001dcd: DUP8 00001dce: GAS 00001dcf: STATICCALL 00001dd0: PUSH0 00001dd1: SWAP2 00001dd2: DUP2 00001dd3: PUSH2 0x1ebb 00001dd6: JUMPI 00001dd7: JUMPDEST 00001dd8: POP 00001dd9: PUSH2 0x1def 00001ddc: JUMPI 00001ddd: DUP4 00001dde: PUSH4 0x4c9c8ce3 00001de3: PUSH1 0xe0 00001de5: SHL 00001de6: PUSH0 00001de7: MSTORE 00001de8: PUSH1 0x04 00001dea: MSTORE 00001deb: PUSH1 0x24 00001ded: PUSH0 00001dee: REVERT 00001def: JUMPDEST 00001df0: DUP1 00001df1: PUSH0 00001df2: MLOAD 00001df3: PUSH1 0x20 00001df5: PUSH2 0x5bdd 00001df8: PUSH0 00001df9: CODECOPY 00001dfa: PUSH0 00001dfb: MLOAD 00001dfc: SWAP1 00001dfd: PUSH0 00001dfe: MSTORE 00001dff: DUP6 00001e00: SWAP3 00001e01: SUB 00001e02: PUSH2 0x1ea9 00001e05: JUMPI 00001e06: POP 00001e07: DUP2 00001e08: EXTCODESIZE 00001e09: ISZERO 00001e0a: PUSH2 0x1e97 00001e0d: JUMPI 00001e0e: DUP1 00001e0f: PUSH1 0x01 00001e11: PUSH1 0x01 00001e13: PUSH1 0xa0 00001e15: SHL 00001e16: SUB 00001e17: NOT 00001e18: PUSH0 00001e19: MLOAD 00001e1a: PUSH1 0x20 00001e1c: PUSH2 0x5bdd 00001e1f: PUSH0 00001e20: CODECOPY 00001e21: PUSH0 00001e22: MLOAD 00001e23: SWAP1 00001e24: PUSH0 00001e25: MSTORE 00001e26: SLOAD 00001e27: AND 00001e28: OR 00001e29: PUSH0 00001e2a: MLOAD 00001e2b: PUSH1 0x20 00001e2d: PUSH2 0x5bdd 00001e30: PUSH0 00001e31: CODECOPY 00001e32: PUSH0 00001e33: MLOAD 00001e34: SWAP1 00001e35: PUSH0 00001e36: MSTORE 00001e37: SSTORE 00001e38: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 00001e59: PUSH0 00001e5a: DUP1 00001e5b: LOG2 00001e5c: DUP2 00001e5d: MLOAD 00001e5e: ISZERO 00001e5f: PUSH2 0x1e7f 00001e62: JUMPI 00001e63: PUSH0 00001e64: DUP1 00001e65: DUP4 00001e66: PUSH1 0x20 00001e68: PUSH2 0x0763 00001e6b: SWAP6 00001e6c: MLOAD 00001e6d: SWAP2 00001e6e: ADD 00001e6f: DUP5 00001e70: GAS 00001e71: DELEGATECALL 00001e72: PUSH2 0x1e79 00001e75: PUSH2 0x53a8 00001e78: JUMP 00001e79: JUMPDEST 00001e7a: SWAP2 00001e7b: PUSH2 0x5a02 00001e7e: JUMP 00001e7f: JUMPDEST 00001e80: POP 00001e81: POP 00001e82: CALLVALUE 00001e83: PUSH2 0x1e88 00001e86: JUMPI 00001e87: STOP 00001e88: JUMPDEST 00001e89: PUSH4 0xb398979f 00001e8e: PUSH1 0xe0 00001e90: SHL 00001e91: PUSH0 00001e92: MSTORE 00001e93: PUSH1 0x04 00001e95: PUSH0 00001e96: REVERT 00001e97: JUMPDEST 00001e98: PUSH4 0x4c9c8ce3 00001e9d: PUSH1 0xe0 00001e9f: SHL 00001ea0: PUSH0 00001ea1: MSTORE 00001ea2: PUSH1 0x04 00001ea4: MSTORE 00001ea5: PUSH1 0x24 00001ea7: PUSH0 00001ea8: REVERT 00001ea9: JUMPDEST 00001eaa: PUSH4 0x2a875269 00001eaf: PUSH1 0xe2 00001eb1: SHL 00001eb2: PUSH0 00001eb3: MSTORE 00001eb4: PUSH1 0x04 00001eb6: MSTORE 00001eb7: PUSH1 0x24 00001eb9: PUSH0 00001eba: REVERT 00001ebb: JUMPDEST 00001ebc: SWAP1 00001ebd: SWAP2 00001ebe: POP 00001ebf: PUSH1 0x20 00001ec1: DUP2 00001ec2: RETURNDATASIZE 00001ec3: PUSH1 0x20 00001ec5: GT 00001ec6: PUSH2 0x1ee7 00001ec9: JUMPI 00001eca: JUMPDEST 00001ecb: DUP2 00001ecc: PUSH2 0x1ed7 00001ecf: PUSH1 0x20 00001ed1: SWAP4 00001ed2: DUP4 00001ed3: PUSH2 0x408d 00001ed6: JUMP 00001ed7: JUMPDEST 00001ed8: DUP2 00001ed9: ADD 00001eda: SUB 00001edb: SLT 00001edc: PUSH2 0x03b2 00001edf: JUMPI 00001ee0: MLOAD 00001ee1: SWAP1 00001ee2: DUP6 00001ee3: PUSH2 0x1dd7 00001ee6: JUMP 00001ee7: JUMPDEST 00001ee8: RETURNDATASIZE 00001ee9: SWAP2 00001eea: POP 00001eeb: PUSH2 0x1eca 00001eee: JUMP 00001eef: JUMPDEST 00001ef0: SWAP1 00001ef1: POP 00001ef2: PUSH1 0x01 00001ef4: PUSH1 0x01 00001ef6: PUSH1 0xa0 00001ef8: SHL 00001ef9: SUB 00001efa: PUSH0 00001efb: MLOAD 00001efc: PUSH1 0x20 00001efe: PUSH2 0x5bdd 00001f01: PUSH0 00001f02: CODECOPY 00001f03: PUSH0 00001f04: MLOAD 00001f05: SWAP1 00001f06: PUSH0 00001f07: MSTORE 00001f08: SLOAD 00001f09: AND 00001f0a: EQ 00001f0b: ISZERO 00001f0c: DUP4 00001f0d: PUSH2 0x1da0 00001f10: JUMP 00001f11: JUMPDEST 00001f12: CALLVALUE 00001f13: PUSH2 0x03b2 00001f16: JUMPI 00001f17: PUSH2 0x1f1f 00001f1a: CALLDATASIZE 00001f1b: PUSH2 0x4112 00001f1e: JUMP 00001f1f: JUMPDEST 00001f20: SWAP1 00001f21: PUSH2 0x1f28 00001f24: PUSH2 0x4921 00001f27: JUMP 00001f28: JUMPDEST 00001f29: PUSH1 0x07 00001f2b: PUSH2 0x1f34 00001f2e: DUP4 00001f2f: DUP4 00001f30: PUSH2 0x49bd 00001f33: JUMP 00001f34: JUMPDEST 00001f35: ADD 00001f36: SWAP2 00001f37: DUP3 00001f38: SLOAD 00001f39: SWAP2 00001f3a: PUSH1 0xff 00001f3c: DUP4 00001f3d: AND 00001f3e: PUSH2 0x1f4d 00001f41: JUMPI 00001f42: PUSH1 0xff 00001f44: NOT 00001f45: DUP4 00001f46: AND 00001f47: PUSH1 0x01 00001f49: OR 00001f4a: DUP5 00001f4b: SSTORE 00001f4c: STOP 00001f4d: JUMPDEST 00001f4e: PUSH4 0x4e06b75f 00001f53: PUSH1 0xe1 00001f55: SHL 00001f56: PUSH0 00001f57: MSTORE 00001f58: PUSH1 0x04 00001f5a: MSTORE 00001f5b: PUSH1 0x24 00001f5d: MSTORE 00001f5e: PUSH1 0x44 00001f60: PUSH0 00001f61: REVERT 00001f62: JUMPDEST 00001f63: CALLVALUE 00001f64: PUSH2 0x03b2 00001f67: JUMPI 00001f68: PUSH1 0x40 00001f6a: CALLDATASIZE 00001f6b: PUSH1 0x03 00001f6d: NOT 00001f6e: ADD 00001f6f: SLT 00001f70: PUSH2 0x03b2 00001f73: JUMPI 00001f74: PUSH2 0x1f7b 00001f77: PUSH2 0x3fa8 00001f7a: JUMP 00001f7b: JUMPDEST 00001f7c: PUSH1 0x24 00001f7e: CALLDATALOAD 00001f7f: PUSH2 0x1f86 00001f82: PUSH2 0x487d 00001f85: JUMP 00001f86: JUMPDEST 00001f87: PUSH2 0x1f8e 00001f8a: PUSH2 0x48b2 00001f8d: JUMP 00001f8e: JUMPDEST 00001f8f: PUSH2 0x1fb9 00001f92: DUP2 00001f93: PUSH2 0x099c 00001f96: PUSH0 00001f97: MLOAD 00001f98: PUSH1 0x20 00001f9a: PUSH2 0x5a7d 00001f9d: PUSH0 00001f9e: CODECOPY 00001f9f: PUSH0 00001fa0: MLOAD 00001fa1: SWAP1 00001fa2: PUSH0 00001fa3: MSTORE 00001fa4: SLOAD 00001fa5: PUSH0 00001fa6: MLOAD 00001fa7: PUSH1 0x20 00001fa9: PUSH2 0x5cdd 00001fac: PUSH0 00001fad: CODECOPY 00001fae: PUSH0 00001faf: MLOAD 00001fb0: SWAP1 00001fb1: PUSH0 00001fb2: MSTORE 00001fb3: SLOAD 00001fb4: SWAP1 00001fb5: PUSH2 0x45e0 00001fb8: JUMP 00001fb9: JUMPDEST 00001fba: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d 00001fdb: SLOAD 00001fdc: DUP1 00001fdd: DUP3 00001fde: GT 00001fdf: PUSH2 0x21e3 00001fe2: JUMPI 00001fe3: POP 00001fe4: POP 00001fe5: PUSH0 00001fe6: MLOAD 00001fe7: PUSH1 0x20 00001fe9: PUSH2 0x5b9d 00001fec: PUSH0 00001fed: CODECOPY 00001fee: PUSH0 00001fef: MLOAD 00001ff0: SWAP1 00001ff1: PUSH0 00001ff2: MSTORE 00001ff3: SLOAD 00001ff4: ISZERO 00001ff5: PUSH2 0x21af 00001ff8: JUMPI 00001ff9: PUSH0 00001ffa: MLOAD 00001ffb: PUSH1 0x20 00001ffd: PUSH2 0x5cdd 00002000: PUSH0 00002001: CODECOPY 00002002: PUSH0 00002003: MLOAD 00002004: SWAP1 00002005: PUSH0 00002006: MSTORE 00002007: SLOAD 00002008: PUSH2 0x2010 0000200b: SWAP2 0000200c: PUSH2 0x45f3 0000200f: JUMP 00002010: JUMPDEST 00002011: PUSH2 0x2028 00002014: DUP2 00002015: PUSH0 00002016: MLOAD 00002017: PUSH1 0x20 00002019: PUSH2 0x5c7d 0000201c: PUSH0 0000201d: CODECOPY 0000201e: PUSH0 0000201f: MLOAD 00002020: SWAP1 00002021: PUSH0 00002022: MSTORE 00002023: SLOAD 00002024: PUSH2 0x45c6 00002027: JUMP 00002028: JUMPDEST 00002029: PUSH0 0000202a: MLOAD 0000202b: PUSH1 0x20 0000202d: PUSH2 0x5c7d 00002030: PUSH0 00002031: CODECOPY 00002032: PUSH0 00002033: MLOAD 00002034: SWAP1 00002035: PUSH0 00002036: MSTORE 00002037: SSTORE 00002038: DUP1 00002039: SWAP2 0000203a: PUSH0 0000203b: MLOAD 0000203c: PUSH1 0x20 0000203e: PUSH2 0x5b5d 00002041: PUSH0 00002042: CODECOPY 00002043: PUSH0 00002044: MLOAD 00002045: SWAP1 00002046: PUSH0 00002047: MSTORE 00002048: SLOAD 00002049: DUP1 0000204a: PUSH2 0x2183 0000204d: JUMPI 0000204e: JUMPDEST 0000204f: POP 00002050: PUSH2 0x2067 00002053: DUP3 00002054: PUSH0 00002055: MLOAD 00002056: PUSH1 0x20 00002058: PUSH2 0x5a7d 0000205b: PUSH0 0000205c: CODECOPY 0000205d: PUSH0 0000205e: MLOAD 0000205f: SWAP1 00002060: PUSH0 00002061: MSTORE 00002062: SLOAD 00002063: PUSH2 0x45c6 00002066: JUMP 00002067: JUMPDEST 00002068: PUSH0 00002069: MLOAD 0000206a: PUSH1 0x20 0000206c: PUSH2 0x5a7d 0000206f: PUSH0 00002070: CODECOPY 00002071: PUSH0 00002072: MLOAD 00002073: SWAP1 00002074: PUSH0 00002075: MSTORE 00002076: SSTORE 00002077: PUSH1 0x01 00002079: PUSH1 0x01 0000207b: PUSH1 0xa0 0000207d: SHL 0000207e: SUB 0000207f: DUP2 00002080: AND 00002081: ISZERO 00002082: PUSH2 0x2170 00002085: JUMPI 00002086: DUP3 00002087: DUP2 00002088: PUSH2 0x20b4 0000208b: PUSH1 0x20 0000208d: SWAP6 0000208e: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f 000020af: SWAP5 000020b0: PUSH2 0x574c 000020b3: JUMP 000020b4: JUMPDEST 000020b5: PUSH2 0x20de 000020b8: DUP5 000020b9: PUSH1 0x40 000020bb: MLOAD 000020bc: SWAP4 000020bd: DUP5 000020be: SWAP4 000020bf: DUP5 000020c0: PUSH1 0x40 000020c2: SWAP2 000020c3: SWAP5 000020c4: SWAP4 000020c5: SWAP3 000020c6: PUSH1 0x01 000020c8: PUSH1 0x01 000020ca: PUSH1 0xa0 000020cc: SHL 000020cd: SUB 000020ce: PUSH1 0x60 000020d0: DUP4 000020d1: ADD 000020d2: SWAP7 000020d3: AND 000020d4: DUP3 000020d5: MSTORE 000020d6: PUSH1 0x20 000020d8: DUP3 000020d9: ADD 000020da: MSTORE 000020db: ADD 000020dc: MSTORE 000020dd: JUMP 000020de: JUMPDEST 000020df: SUB 000020e0: SWAP1 000020e1: LOG1 000020e2: PUSH0 000020e3: MLOAD 000020e4: PUSH1 0x20 000020e6: PUSH2 0x5c9d 000020e9: PUSH0 000020ea: CODECOPY 000020eb: PUSH0 000020ec: MLOAD 000020ed: SWAP1 000020ee: PUSH0 000020ef: MSTORE 000020f0: SLOAD 000020f1: PUSH1 0xff 000020f3: DUP2 000020f4: AND 000020f5: ISZERO 000020f6: DUP1 000020f7: ISZERO 000020f8: PUSH2 0x212f 000020fb: JUMPI 000020fc: JUMPDEST 000020fd: PUSH2 0x211a 00002100: JUMPI 00002101: JUMPDEST 00002102: POP 00002103: PUSH0 00002104: PUSH0 00002105: MLOAD 00002106: PUSH1 0x20 00002108: PUSH2 0x5cfd 0000210b: PUSH0 0000210c: CODECOPY 0000210d: PUSH0 0000210e: MLOAD 0000210f: SWAP1 00002110: PUSH0 00002111: MSTORE 00002112: TSTORE 00002113: PUSH1 0x40 00002115: MLOAD 00002116: SWAP1 00002117: DUP2 00002118: MSTORE 00002119: RETURN 0000211a: JUMPDEST 0000211b: PUSH1 0xff 0000211d: PUSH2 0x2129 00002120: SWAP2 00002121: PUSH1 0x10 00002123: SHR 00002124: AND 00002125: PUSH2 0x4b06 00002128: JUMP 00002129: JUMPDEST 0000212a: DUP3 0000212b: PUSH2 0x2101 0000212e: JUMP 0000212f: JUMPDEST 00002130: POP 00002131: PUSH0 00002132: MLOAD 00002133: PUSH1 0x20 00002135: PUSH2 0x5c7d 00002138: PUSH0 00002139: CODECOPY 0000213a: PUSH0 0000213b: MLOAD 0000213c: SWAP1 0000213d: PUSH0 0000213e: MSTORE 0000213f: SLOAD 00002140: PUSH2 0x2710 00002143: PUSH2 0x2169 00002146: PUSH0 00002147: MLOAD 00002148: PUSH1 0x20 0000214a: PUSH2 0x5a7d 0000214d: PUSH0 0000214e: CODECOPY 0000214f: PUSH0 00002150: MLOAD 00002151: SWAP1 00002152: PUSH0 00002153: MSTORE 00002154: SLOAD 00002155: PUSH0 00002156: MLOAD 00002157: PUSH1 0x20 00002159: PUSH2 0x5c1d 0000215c: PUSH0 0000215d: CODECOPY 0000215e: PUSH0 0000215f: MLOAD 00002160: SWAP1 00002161: PUSH0 00002162: MSTORE 00002163: SLOAD 00002164: SWAP1 00002165: PUSH2 0x45e0 00002168: JUMP 00002169: JUMPDEST 0000216a: DIV 0000216b: LT 0000216c: PUSH2 0x20fc 0000216f: JUMP 00002170: JUMPDEST 00002171: PUSH4 0xec442f05 00002176: PUSH1 0xe0 00002178: SHL 00002179: PUSH0 0000217a: MSTORE 0000217b: PUSH0 0000217c: PUSH1 0x04 0000217e: MSTORE 0000217f: PUSH1 0x24 00002181: PUSH0 00002182: REVERT 00002183: JUMPDEST 00002184: PUSH2 0x21a8 00002187: SWAP2 00002188: SWAP4 00002189: POP 0000218a: PUSH2 0x2193 0000218d: SWAP1 0000218e: DUP4 0000218f: PUSH2 0x45e0 00002192: JUMP 00002193: JUMPDEST 00002194: PUSH0 00002195: MLOAD 00002196: PUSH1 0x20 00002198: PUSH2 0x5a7d 0000219b: PUSH0 0000219c: CODECOPY 0000219d: PUSH0 0000219e: MLOAD 0000219f: SWAP1 000021a0: PUSH0 000021a1: MSTORE 000021a2: SLOAD 000021a3: SWAP1 000021a4: PUSH2 0x45f3 000021a7: JUMP 000021a8: JUMPDEST 000021a9: SWAP2 000021aa: DUP4 000021ab: PUSH2 0x204e 000021ae: JUMP 000021af: JUMPDEST 000021b0: PUSH1 0x40 000021b2: MLOAD 000021b3: PUSH4 0x4612b38f 000021b8: PUSH1 0xe0 000021ba: SHL 000021bb: DUP2 000021bc: MSTORE 000021bd: PUSH1 0x20 000021bf: PUSH1 0x04 000021c1: DUP3 000021c2: ADD 000021c3: MSTORE 000021c4: PUSH1 0x0b 000021c6: PUSH1 0x24 000021c8: DUP3 000021c9: ADD 000021ca: MSTORE 000021cb: PUSH11 0x1d1bdd185b15d95a59da1d 000021d7: PUSH1 0xaa 000021d9: SHL 000021da: PUSH1 0x44 000021dc: DUP3 000021dd: ADD 000021de: MSTORE 000021df: PUSH1 0x64 000021e1: SWAP1 000021e2: REVERT 000021e3: JUMPDEST 000021e4: PUSH1 0xa4 000021e6: SWAP3 000021e7: POP 000021e8: PUSH1 0x40 000021ea: MLOAD 000021eb: SWAP2 000021ec: PUSH4 0x38d06e1d 000021f1: PUSH1 0xe0 000021f3: SHL 000021f4: DUP4 000021f5: MSTORE 000021f6: PUSH1 0x60 000021f8: PUSH1 0x04 000021fa: DUP5 000021fb: ADD 000021fc: MSTORE 000021fd: PUSH1 0x10 000021ff: PUSH1 0x64 00002201: DUP5 00002202: ADD 00002203: MSTORE 00002204: PUSH16 0x6d6178546f74616c4465706f73697473 00002215: PUSH1 0x80 00002217: SHL 00002218: PUSH1 0x84 0000221a: DUP5 0000221b: ADD 0000221c: MSTORE 0000221d: PUSH1 0x24 0000221f: DUP4 00002220: ADD 00002221: MSTORE 00002222: PUSH1 0x44 00002224: DUP3 00002225: ADD 00002226: MSTORE 00002227: REVERT 00002228: JUMPDEST 00002229: CALLVALUE 0000222a: PUSH2 0x03b2 0000222d: JUMPI 0000222e: PUSH1 0x60 00002230: CALLDATASIZE 00002231: PUSH1 0x03 00002233: NOT 00002234: ADD 00002235: SLT 00002236: PUSH2 0x03b2 00002239: JUMPI 0000223a: PUSH2 0x2241 0000223d: PUSH2 0x3fa8 00002240: JUMP 00002241: JUMPDEST 00002242: PUSH1 0x24 00002244: CALLDATALOAD 00002245: PUSH2 0x224c 00002248: PUSH2 0x3fd4 0000224b: JUMP 0000224c: JUMPDEST 0000224d: PUSH2 0x2254 00002250: PUSH2 0x487d 00002253: JUMP 00002254: JUMPDEST 00002255: PUSH2 0x225c 00002258: PUSH2 0x48b2 0000225b: JUMP 0000225c: JUMPDEST 0000225d: DUP2 0000225e: PUSH1 0x01 00002260: PUSH1 0x01 00002262: PUSH1 0xa0 00002264: SHL 00002265: SUB 00002266: DUP5 00002267: AND 00002268: DUP1 00002269: ISZERO 0000226a: PUSH2 0x1aeb 0000226d: JUMPI 0000226e: PUSH1 0x01 00002270: PUSH1 0x01 00002272: PUSH1 0xa0 00002274: SHL 00002275: SUB 00002276: PUSH32 0x285a08d85aaeb56c8b9d22b6877dffaed0cb5d07c1c14494aff61d9524746a12 00002297: SWAP4 00002298: PUSH1 0x80 0000229a: SWAP4 0000229b: PUSH1 0x20 0000229d: SWAP8 0000229e: PUSH0 0000229f: MLOAD 000022a0: PUSH1 0x20 000022a2: PUSH2 0x5c7d 000022a5: PUSH0 000022a6: CODECOPY 000022a7: PUSH0 000022a8: MLOAD 000022a9: SWAP1 000022aa: PUSH0 000022ab: MSTORE 000022ac: SLOAD 000022ad: SWAP8 000022ae: PUSH2 0x22b6 000022b1: DUP10 000022b2: PUSH2 0x519a 000022b5: JUMP 000022b6: JUMPDEST 000022b7: DUP1 000022b8: SWAP2 000022b9: GT 000022ba: PUSH2 0x2343 000022bd: JUMPI 000022be: JUMPDEST 000022bf: POP 000022c0: PUSH2 0x22cc 000022c3: DUP3 000022c4: PUSH2 0x22d3 000022c7: SWAP3 000022c8: PUSH2 0x4eb5 000022cb: JUMP 000022cc: JUMPDEST 000022cd: DUP1 000022ce: SWAP9 000022cf: PUSH2 0x45d3 000022d2: JUMP 000022d3: JUMPDEST 000022d4: PUSH0 000022d5: MLOAD 000022d6: PUSH1 0x20 000022d8: PUSH2 0x5c7d 000022db: PUSH0 000022dc: CODECOPY 000022dd: PUSH0 000022de: MLOAD 000022df: SWAP1 000022e0: PUSH0 000022e1: MSTORE 000022e2: SSTORE 000022e3: PUSH2 0x2314 000022e6: PUSH2 0x22fd 000022e9: PUSH0 000022ea: MLOAD 000022eb: PUSH1 0x20 000022ed: PUSH2 0x5cdd 000022f0: PUSH0 000022f1: CODECOPY 000022f2: PUSH0 000022f3: MLOAD 000022f4: SWAP1 000022f5: PUSH0 000022f6: MSTORE 000022f7: SLOAD 000022f8: DUP10 000022f9: PUSH2 0x45e0 000022fc: JUMP 000022fd: JUMPDEST 000022fe: DUP4 000022ff: DUP6 00002300: PUSH0 00002301: MLOAD 00002302: PUSH1 0x20 00002304: PUSH2 0x5d1d 00002307: PUSH0 00002308: CODECOPY 00002309: PUSH0 0000230a: MLOAD 0000230b: SWAP1 0000230c: PUSH0 0000230d: MSTORE 0000230e: SLOAD 0000230f: AND 00002310: PUSH2 0x5202 00002313: JUMP 00002314: JUMPDEST 00002315: PUSH1 0x40 00002317: MLOAD 00002318: SWAP4 00002319: DUP5 0000231a: MSTORE 0000231b: DUP8 0000231c: DUP5 0000231d: ADD 0000231e: MSTORE 0000231f: DUP6 00002320: PUSH1 0x40 00002322: DUP5 00002323: ADD 00002324: MSTORE 00002325: AND 00002326: PUSH1 0x60 00002328: DUP3 00002329: ADD 0000232a: MSTORE 0000232b: LOG1 0000232c: PUSH0 0000232d: PUSH0 0000232e: MLOAD 0000232f: PUSH1 0x20 00002331: PUSH2 0x5cfd 00002334: PUSH0 00002335: CODECOPY 00002336: PUSH0 00002337: MLOAD 00002338: SWAP1 00002339: PUSH0 0000233a: MSTORE 0000233b: TSTORE 0000233c: PUSH1 0x40 0000233e: MLOAD 0000233f: SWAP1 00002340: DUP2 00002341: MSTORE 00002342: RETURN 00002343: JUMPDEST 00002344: SWAP2 00002345: POP 00002346: PUSH2 0x22cc 00002349: PUSH2 0x22be 0000234c: JUMP 0000234d: JUMPDEST 0000234e: CALLVALUE 0000234f: PUSH2 0x03b2 00002352: JUMPI 00002353: PUSH2 0x235b 00002356: CALLDATASIZE 00002357: PUSH2 0x4112 0000235a: JUMP 0000235b: JUMPDEST 0000235c: SWAP1 0000235d: PUSH0 0000235e: MSTORE 0000235f: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea02 00002380: PUSH1 0x20 00002382: MSTORE 00002383: PUSH1 0x40 00002385: PUSH0 00002386: KECCAK256 00002387: SWAP1 00002388: PUSH0 00002389: MSTORE 0000238a: PUSH1 0x20 0000238c: MSTORE 0000238d: PUSH1 0x20 0000238f: PUSH1 0x40 00002391: PUSH0 00002392: KECCAK256 00002393: SLOAD 00002394: PUSH1 0x40 00002396: MLOAD 00002397: SWAP1 00002398: DUP2 00002399: MSTORE 0000239a: RETURN 0000239b: JUMPDEST 0000239c: CALLVALUE 0000239d: PUSH2 0x03b2 000023a0: JUMPI 000023a1: PUSH0 000023a2: CALLDATASIZE 000023a3: PUSH1 0x03 000023a5: NOT 000023a6: ADD 000023a7: SLT 000023a8: PUSH2 0x03b2 000023ab: JUMPI 000023ac: PUSH1 0x20 000023ae: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b 000023cf: SLOAD 000023d0: PUSH1 0x40 000023d2: MLOAD 000023d3: SWAP1 000023d4: DUP2 000023d5: MSTORE 000023d6: RETURN 000023d7: JUMPDEST 000023d8: CALLVALUE 000023d9: PUSH2 0x03b2 000023dc: JUMPI 000023dd: PUSH2 0x23e5 000023e0: CALLDATASIZE 000023e1: PUSH2 0x40f8 000023e4: JUMP 000023e5: JUMPDEST 000023e6: SWAP2 000023e7: PUSH2 0x23ee 000023ea: PUSH2 0x4921 000023ed: JUMP 000023ee: JUMPDEST 000023ef: PUSH0 000023f0: MLOAD 000023f1: PUSH1 0x20 000023f3: PUSH2 0x5c3d 000023f6: PUSH0 000023f7: CODECOPY 000023f8: PUSH0 000023f9: MLOAD 000023fa: SWAP1 000023fb: PUSH0 000023fc: MSTORE 000023fd: SLOAD 000023fe: DUP1 000023ff: PUSH1 0x64 00002401: GT 00002402: ISZERO 00002403: PUSH2 0x25ed 00002406: JUMPI 00002407: PUSH0 00002408: JUMPDEST 00002409: DUP2 0000240a: DUP2 0000240b: LT 0000240c: PUSH2 0x259c 0000240f: JUMPI 00002410: POP 00002411: PUSH2 0x2428 00002414: DUP5 00002415: PUSH0 00002416: MLOAD 00002417: PUSH1 0x20 00002419: PUSH2 0x5b9d 0000241c: PUSH0 0000241d: CODECOPY 0000241e: PUSH0 0000241f: MLOAD 00002420: SWAP1 00002421: PUSH0 00002422: MSTORE 00002423: SLOAD 00002424: PUSH2 0x45c6 00002427: JUMP 00002428: JUMPDEST 00002429: PUSH0 0000242a: MLOAD 0000242b: PUSH1 0x20 0000242d: PUSH2 0x5b9d 00002430: PUSH0 00002431: CODECOPY 00002432: PUSH0 00002433: MLOAD 00002434: SWAP1 00002435: PUSH0 00002436: MSTORE 00002437: SSTORE 00002438: DUP2 00002439: PUSH0 0000243a: MSTORE 0000243b: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea02 0000245c: PUSH1 0x20 0000245e: MSTORE 0000245f: PUSH1 0x40 00002461: PUSH0 00002462: KECCAK256 00002463: DUP4 00002464: PUSH0 00002465: MSTORE 00002466: PUSH1 0x20 00002468: MSTORE 00002469: PUSH1 0x40 0000246b: PUSH0 0000246c: KECCAK256 0000246d: SSTORE 0000246e: PUSH1 0x40 00002470: MLOAD 00002471: SWAP3 00002472: PUSH2 0x247a 00002475: DUP5 00002476: PUSH2 0x4054 00002479: JUMP 0000247a: JUMPDEST 0000247b: DUP2 0000247c: DUP5 0000247d: MSTORE 0000247e: PUSH1 0x20 00002480: DUP5 00002481: ADD 00002482: SWAP1 00002483: DUP4 00002484: DUP3 00002485: MSTORE 00002486: PUSH1 0x40 00002488: DUP6 00002489: ADD 0000248a: SWAP5 0000248b: DUP2 0000248c: DUP7 0000248d: MSTORE 0000248e: PUSH1 0x60 00002490: DUP2 00002491: ADD 00002492: SWAP1 00002493: PUSH0 00002494: DUP3 00002495: MSTORE 00002496: PUSH1 0x80 00002498: DUP2 00002499: ADD 0000249a: SWAP2 0000249b: PUSH0 0000249c: DUP4 0000249d: MSTORE 0000249e: PUSH1 0xa0 000024a0: DUP3 000024a1: ADD 000024a2: PUSH0 000024a3: DUP2 000024a4: MSTORE 000024a5: PUSH1 0xc0 000024a7: DUP4 000024a8: ADD 000024a9: SWAP1 000024aa: PUSH0 000024ab: DUP3 000024ac: MSTORE 000024ad: PUSH1 0xe0 000024af: DUP5 000024b0: ADD 000024b1: SWAP5 000024b2: PUSH0 000024b3: DUP7 000024b4: MSTORE 000024b5: PUSH0 000024b6: MLOAD 000024b7: PUSH1 0x20 000024b9: PUSH2 0x5c3d 000024bc: PUSH0 000024bd: CODECOPY 000024be: PUSH0 000024bf: MLOAD 000024c0: SWAP1 000024c1: PUSH0 000024c2: MSTORE 000024c3: SLOAD 000024c4: PUSH9 0x010000000000000000 000024ce: DUP2 000024cf: LT 000024d0: ISZERO 000024d1: PUSH2 0x2588 000024d4: JUMPI 000024d5: DUP1 000024d6: PUSH1 0x01 000024d8: PUSH2 0x24f0 000024db: SWAP3 000024dc: ADD 000024dd: PUSH0 000024de: MLOAD 000024df: PUSH1 0x20 000024e1: PUSH2 0x5c3d 000024e4: PUSH0 000024e5: CODECOPY 000024e6: PUSH0 000024e7: MLOAD 000024e8: SWAP1 000024e9: PUSH0 000024ea: MSTORE 000024eb: SSTORE 000024ec: PUSH2 0x43ed 000024ef: JUMP 000024f0: JUMPDEST 000024f1: SWAP5 000024f2: SWAP1 000024f3: SWAP5 000024f4: PUSH2 0x2575 000024f7: JUMPI 000024f8: PUSH32 0x5b1ee307451dd65aa45d1657a66752bab8925be9aad7c827865655c8c2fdac24 00002519: SWAP12 0000251a: PUSH2 0x09ce 0000251d: SWAP10 0000251e: PUSH1 0x07 00002520: SWAP8 00002521: MLOAD 00002522: DUP8 00002523: SSTORE 00002524: MLOAD 00002525: PUSH1 0x01 00002527: DUP8 00002528: ADD 00002529: SSTORE 0000252a: MLOAD 0000252b: PUSH1 0x02 0000252d: DUP7 0000252e: ADD 0000252f: SSTORE 00002530: MLOAD 00002531: PUSH1 0x03 00002533: DUP6 00002534: ADD 00002535: SSTORE 00002536: MLOAD 00002537: PUSH1 0x04 00002539: DUP5 0000253a: ADD 0000253b: SSTORE 0000253c: MLOAD 0000253d: PUSH1 0x05 0000253f: DUP4 00002540: ADD 00002541: SSTORE 00002542: MLOAD 00002543: PUSH1 0x06 00002545: DUP3 00002546: ADD 00002547: SSTORE 00002548: ADD 00002549: SWAP1 0000254a: MLOAD 0000254b: ISZERO 0000254c: ISZERO 0000254d: PUSH1 0xff 0000254f: DUP1 00002550: NOT 00002551: DUP4 00002552: SLOAD 00002553: AND 00002554: SWAP2 00002555: AND 00002556: OR 00002557: SWAP1 00002558: SSTORE 00002559: PUSH1 0x40 0000255b: MLOAD 0000255c: SWAP4 0000255d: DUP5 0000255e: SWAP4 0000255f: DUP5 00002560: PUSH1 0x40 00002562: SWAP2 00002563: SWAP5 00002564: SWAP4 00002565: SWAP3 00002566: PUSH1 0x60 00002568: DUP3 00002569: ADD 0000256a: SWAP6 0000256b: DUP3 0000256c: MSTORE 0000256d: PUSH1 0x20 0000256f: DUP3 00002570: ADD 00002571: MSTORE 00002572: ADD 00002573: MSTORE 00002574: JUMP 00002575: JUMPDEST 00002576: PUSH4 0x4e487b71 0000257b: PUSH1 0xe0 0000257d: SHL 0000257e: PUSH0 0000257f: MSTORE 00002580: PUSH0 00002581: PUSH1 0x04 00002583: MSTORE 00002584: PUSH1 0x24 00002586: PUSH0 00002587: REVERT 00002588: JUMPDEST 00002589: PUSH4 0x4e487b71 0000258e: PUSH1 0xe0 00002590: SHL 00002591: PUSH0 00002592: MSTORE 00002593: PUSH1 0x41 00002595: PUSH1 0x04 00002597: MSTORE 00002598: PUSH1 0x24 0000259a: PUSH0 0000259b: REVERT 0000259c: JUMPDEST 0000259d: PUSH2 0x25ae 000025a0: PUSH2 0x25a8 000025a3: DUP3 000025a4: PUSH2 0x43ed 000025a7: JUMP 000025a8: JUMPDEST 000025a9: POP 000025aa: PUSH2 0x4435 000025ad: JUMP 000025ae: JUMPDEST 000025af: DUP5 000025b0: DUP5 000025b1: DUP3 000025b2: MLOAD 000025b3: EQ 000025b4: SWAP2 000025b5: DUP3 000025b6: PUSH2 0x25df 000025b9: JUMPI 000025ba: JUMPDEST 000025bb: POP 000025bc: POP 000025bd: PUSH2 0x25c8 000025c0: JUMPI 000025c1: PUSH1 0x01 000025c3: ADD 000025c4: PUSH2 0x2408 000025c7: JUMP 000025c8: JUMPDEST 000025c9: POP 000025ca: POP 000025cb: PUSH4 0xb020eb63 000025d0: PUSH1 0xe0 000025d2: SHL 000025d3: PUSH0 000025d4: MSTORE 000025d5: PUSH1 0x04 000025d7: MSTORE 000025d8: PUSH1 0x24 000025da: MSTORE 000025db: PUSH1 0x44 000025dd: PUSH0 000025de: REVERT 000025df: JUMPDEST 000025e0: PUSH1 0x20 000025e2: ADD 000025e3: MLOAD 000025e4: EQ 000025e5: SWAP1 000025e6: POP 000025e7: DUP5 000025e8: DUP8 000025e9: PUSH2 0x25ba 000025ec: JUMP 000025ed: JUMPDEST 000025ee: PUSH1 0x01 000025f0: DUP2 000025f1: ADD 000025f2: DUP1 000025f3: SWAP2 000025f4: GT 000025f5: PUSH2 0x2636 000025f8: JUMPI 000025f9: PUSH1 0xa4 000025fb: SWAP1 000025fc: PUSH1 0x40 000025fe: MLOAD 000025ff: SWAP1 00002600: PUSH4 0x38d06e1d 00002605: PUSH1 0xe0 00002607: SHL 00002608: DUP3 00002609: MSTORE 0000260a: PUSH1 0x60 0000260c: PUSH1 0x04 0000260e: DUP4 0000260f: ADD 00002610: MSTORE 00002611: PUSH1 0x08 00002613: PUSH1 0x64 00002615: DUP4 00002616: ADD 00002617: MSTORE 00002618: PUSH8 0x1419595c941bdbdb 00002621: PUSH1 0xc2 00002623: SHL 00002624: PUSH1 0x84 00002626: DUP4 00002627: ADD 00002628: MSTORE 00002629: PUSH1 0x24 0000262b: DUP3 0000262c: ADD 0000262d: MSTORE 0000262e: PUSH1 0x64 00002630: PUSH1 0x44 00002632: DUP3 00002633: ADD 00002634: MSTORE 00002635: REVERT 00002636: JUMPDEST 00002637: PUSH4 0x4e487b71 0000263c: PUSH1 0xe0 0000263e: SHL 0000263f: PUSH0 00002640: MSTORE 00002641: PUSH1 0x11 00002643: PUSH1 0x04 00002645: MSTORE 00002646: PUSH1 0x24 00002648: PUSH0 00002649: REVERT 0000264a: JUMPDEST 0000264b: CALLVALUE 0000264c: PUSH2 0x03b2 0000264f: JUMPI 00002650: PUSH2 0x0120 00002653: CALLDATASIZE 00002654: PUSH1 0x03 00002656: NOT 00002657: ADD 00002658: SLT 00002659: PUSH2 0x03b2 0000265c: JUMPI 0000265d: PUSH2 0x2664 00002660: PUSH2 0x3fd4 00002663: JUMP 00002664: JUMPDEST 00002665: POP 00002666: PUSH1 0xa0 00002668: PUSH2 0x2670 0000266b: CALLDATASIZE 0000266c: PUSH2 0x40af 0000266f: JUMP 00002670: JUMPDEST 00002671: PUSH2 0x2678 00002674: PUSH2 0x487d 00002677: JUMP 00002678: JUMPDEST 00002679: PUSH2 0x2680 0000267c: PUSH2 0x48b2 0000267f: JUMP 00002680: JUMPDEST 00002681: PUSH2 0x2689 00002684: DUP2 00002685: PUSH2 0x5117 00002688: JUMP 00002689: JUMPDEST 0000268a: ADD 0000268b: MLOAD 0000268c: PUSH2 0x0bb9 0000268f: PUSH1 0x05 00002691: PUSH2 0x125f 00002694: PUSH1 0x24 00002696: CALLDATALOAD 00002697: PUSH1 0x04 00002699: CALLDATALOAD 0000269a: PUSH2 0x49bd 0000269d: JUMP 0000269e: JUMPDEST 0000269f: CALLVALUE 000026a0: PUSH2 0x03b2 000026a3: JUMPI 000026a4: PUSH1 0x40 000026a6: CALLDATASIZE 000026a7: PUSH1 0x03 000026a9: NOT 000026aa: ADD 000026ab: SLT 000026ac: PUSH2 0x03b2 000026af: JUMPI 000026b0: PUSH2 0x26b7 000026b3: PUSH2 0x3fbe 000026b6: JUMP 000026b7: JUMPDEST 000026b8: CALLER 000026b9: PUSH1 0x01 000026bb: PUSH1 0x01 000026bd: PUSH1 0xa0 000026bf: SHL 000026c0: SUB 000026c1: DUP3 000026c2: AND 000026c3: SUB 000026c4: PUSH2 0x26d3 000026c7: JUMPI 000026c8: PUSH2 0x0763 000026cb: SWAP1 000026cc: PUSH1 0x04 000026ce: CALLDATALOAD 000026cf: PUSH2 0x507a 000026d2: JUMP 000026d3: JUMPDEST 000026d4: PUSH4 0x334bd919 000026d9: PUSH1 0xe1 000026db: SHL 000026dc: PUSH0 000026dd: MSTORE 000026de: PUSH1 0x04 000026e0: PUSH0 000026e1: REVERT 000026e2: JUMPDEST 000026e3: CALLVALUE 000026e4: PUSH2 0x03b2 000026e7: JUMPI 000026e8: PUSH0 000026e9: CALLDATASIZE 000026ea: PUSH1 0x03 000026ec: NOT 000026ed: ADD 000026ee: SLT 000026ef: PUSH2 0x03b2 000026f2: JUMPI 000026f3: PUSH1 0x20 000026f5: PUSH2 0x137d 000026f8: PUSH2 0x57f6 000026fb: JUMP 000026fc: JUMPDEST 000026fd: CALLVALUE 000026fe: PUSH2 0x03b2 00002701: JUMPI 00002702: PUSH0 00002703: CALLDATASIZE 00002704: PUSH1 0x03 00002706: NOT 00002707: ADD 00002708: SLT 00002709: PUSH2 0x03b2 0000270c: JUMPI 0000270d: PUSH1 0x20 0000270f: PUSH0 00002710: MLOAD 00002711: PUSH1 0x20 00002713: PUSH2 0x5c1d 00002716: PUSH0 00002717: CODECOPY 00002718: PUSH0 00002719: MLOAD 0000271a: SWAP1 0000271b: PUSH0 0000271c: MSTORE 0000271d: SLOAD 0000271e: PUSH1 0x40 00002720: MLOAD 00002721: SWAP1 00002722: DUP2 00002723: MSTORE 00002724: RETURN 00002725: JUMPDEST 00002726: CALLVALUE 00002727: PUSH2 0x03b2 0000272a: JUMPI 0000272b: PUSH0 0000272c: CALLDATASIZE 0000272d: PUSH1 0x03 0000272f: NOT 00002730: ADD 00002731: SLT 00002732: PUSH2 0x03b2 00002735: JUMPI 00002736: PUSH1 0x20 00002738: PUSH1 0xff 0000273a: PUSH0 0000273b: MLOAD 0000273c: PUSH1 0x20 0000273e: PUSH2 0x5afd 00002741: PUSH0 00002742: CODECOPY 00002743: PUSH0 00002744: MLOAD 00002745: SWAP1 00002746: PUSH0 00002747: MSTORE 00002748: SLOAD 00002749: AND 0000274a: PUSH1 0x40 0000274c: MLOAD 0000274d: SWAP1 0000274e: DUP2 0000274f: MSTORE 00002750: RETURN 00002751: JUMPDEST 00002752: CALLVALUE 00002753: PUSH2 0x03b2 00002756: JUMPI 00002757: PUSH1 0x40 00002759: CALLDATASIZE 0000275a: PUSH1 0x03 0000275c: NOT 0000275d: ADD 0000275e: SLT 0000275f: PUSH2 0x03b2 00002762: JUMPI 00002763: PUSH2 0x0763 00002766: PUSH1 0x04 00002768: CALLDATALOAD 00002769: PUSH2 0x2770 0000276c: PUSH2 0x3fbe 0000276f: JUMP 00002770: JUMPDEST 00002771: SWAP1 00002772: PUSH2 0x2796 00002775: PUSH2 0x0759 00002778: DUP3 00002779: PUSH0 0000277a: MSTORE 0000277b: PUSH0 0000277c: MLOAD 0000277d: PUSH1 0x20 0000277f: PUSH2 0x5c5d 00002782: PUSH0 00002783: CODECOPY 00002784: PUSH0 00002785: MLOAD 00002786: SWAP1 00002787: PUSH0 00002788: MSTORE 00002789: PUSH1 0x20 0000278b: MSTORE 0000278c: PUSH1 0x01 0000278e: PUSH1 0x40 00002790: PUSH0 00002791: KECCAK256 00002792: ADD 00002793: SLOAD 00002794: SWAP1 00002795: JUMP 00002796: JUMPDEST 00002797: PUSH2 0x47d6 0000279a: JUMP 0000279b: JUMPDEST 0000279c: CALLVALUE 0000279d: PUSH2 0x03b2 000027a0: JUMPI 000027a1: PUSH1 0xa0 000027a3: CALLDATASIZE 000027a4: PUSH1 0x03 000027a6: NOT 000027a7: ADD 000027a8: SLT 000027a9: PUSH2 0x03b2 000027ac: JUMPI 000027ad: PUSH1 0x24 000027af: CALLDATALOAD 000027b0: PUSH1 0x04 000027b2: CALLDATALOAD 000027b3: PUSH2 0x27ba 000027b6: PUSH2 0x3fd4 000027b9: JUMP 000027ba: JUMPDEST 000027bb: SWAP2 000027bc: PUSH1 0x64 000027be: CALLDATALOAD 000027bf: SWAP2 000027c0: PUSH1 0x84 000027c2: CALLDATALOAD 000027c3: PUSH8 0xffffffffffffffff 000027cc: DUP2 000027cd: GT 000027ce: PUSH2 0x03b2 000027d1: JUMPI 000027d2: CALLDATASIZE 000027d3: PUSH1 0x23 000027d5: DUP3 000027d6: ADD 000027d7: SLT 000027d8: ISZERO 000027d9: PUSH2 0x03b2 000027dc: JUMPI 000027dd: DUP1 000027de: PUSH1 0x04 000027e0: ADD 000027e1: CALLDATALOAD 000027e2: SWAP1 000027e3: PUSH8 0xffffffffffffffff 000027ec: DUP3 000027ed: GT 000027ee: PUSH2 0x03b2 000027f1: JUMPI 000027f2: CALLDATASIZE 000027f3: PUSH1 0x24 000027f5: DUP4 000027f6: DUP4 000027f7: ADD 000027f8: ADD 000027f9: GT 000027fa: PUSH2 0x03b2 000027fd: JUMPI 000027fe: PUSH2 0x2805 00002801: PUSH2 0x487d 00002804: JUMP 00002805: JUMPDEST 00002806: PUSH2 0x280d 00002809: PUSH2 0x48b2 0000280c: JUMP 0000280d: JUMPDEST 0000280e: PUSH1 0x01 00002810: PUSH1 0x01 00002812: PUSH1 0xa0 00002814: SHL 00002815: SUB 00002816: DUP7 00002817: AND 00002818: SWAP6 00002819: DUP7 0000281a: ISZERO 0000281b: PUSH2 0x1aeb 0000281e: JUMPI 0000281f: PUSH1 0x01 00002821: PUSH1 0xff 00002823: PUSH1 0x07 00002825: PUSH2 0x282e 00002828: DUP9 00002829: DUP9 0000282a: PUSH2 0x49bd 0000282d: JUMP 0000282e: JUMPDEST 0000282f: ADD 00002830: SLOAD 00002831: AND 00002832: ISZERO 00002833: ISZERO 00002834: SUB 00002835: PUSH2 0x2c86 00002838: JUMPI 00002839: DUP6 0000283a: PUSH2 0x2842 0000283d: SWAP2 0000283e: PUSH2 0x4eb5 00002841: JUMP 00002842: JUMPDEST 00002843: SWAP5 00002844: PUSH1 0xff 00002846: PUSH0 00002847: MLOAD 00002848: PUSH1 0x20 0000284a: PUSH2 0x5c9d 0000284d: PUSH0 0000284e: CODECOPY 0000284f: PUSH0 00002850: MLOAD 00002851: SWAP1 00002852: PUSH0 00002853: MSTORE 00002854: SLOAD 00002855: AND 00002856: ISZERO 00002857: DUP1 00002858: ISZERO 00002859: PUSH2 0x2c45 0000285c: JUMPI 0000285d: JUMPDEST 0000285e: PUSH2 0x28ea 00002861: JUMPI 00002862: JUMPDEST 00002863: SWAP2 00002864: DUP1 00002865: PUSH1 0x24 00002867: PUSH32 0xc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c 00002888: SWAP7 00002889: SWAP6 0000288a: SWAP4 0000288b: PUSH1 0xe0 0000288d: SWAP6 0000288e: PUSH1 0x20 00002890: SWAP11 00002891: PUSH1 0x40 00002893: MLOAD 00002894: SWAP9 00002895: DUP10 00002896: SWAP8 00002897: DUP9 00002898: MSTORE 00002899: DUP13 0000289a: DUP9 0000289b: ADD 0000289c: MSTORE 0000289d: PUSH1 0x40 0000289f: DUP8 000028a0: ADD 000028a1: MSTORE 000028a2: PUSH1 0x60 000028a4: DUP7 000028a5: ADD 000028a6: MSTORE 000028a7: DUP9 000028a8: PUSH1 0x80 000028aa: DUP7 000028ab: ADD 000028ac: MSTORE 000028ad: PUSH1 0xc0 000028af: PUSH1 0xa0 000028b1: DUP7 000028b2: ADD 000028b3: MSTORE 000028b4: DUP3 000028b5: PUSH1 0xc0 000028b7: DUP7 000028b8: ADD 000028b9: MSTORE 000028ba: ADD 000028bb: DUP5 000028bc: DUP5 000028bd: ADD 000028be: CALLDATACOPY 000028bf: PUSH0 000028c0: DUP3 000028c1: DUP3 000028c2: ADD 000028c3: DUP5 000028c4: ADD 000028c5: MSTORE 000028c6: PUSH1 0x1f 000028c8: ADD 000028c9: PUSH1 0x1f 000028cb: NOT 000028cc: AND 000028cd: DUP2 000028ce: ADD 000028cf: SUB 000028d0: ADD 000028d1: SWAP1 000028d2: LOG1 000028d3: PUSH0 000028d4: PUSH0 000028d5: MLOAD 000028d6: PUSH1 0x20 000028d8: PUSH2 0x5cfd 000028db: PUSH0 000028dc: CODECOPY 000028dd: PUSH0 000028de: MLOAD 000028df: SWAP1 000028e0: PUSH0 000028e1: MSTORE 000028e2: TSTORE 000028e3: PUSH1 0x40 000028e5: MLOAD 000028e6: SWAP1 000028e7: DUP2 000028e8: MSTORE 000028e9: RETURN 000028ea: JUMPDEST 000028eb: PUSH0 000028ec: MLOAD 000028ed: PUSH1 0x20 000028ef: PUSH2 0x5c7d 000028f2: PUSH0 000028f3: CODECOPY 000028f4: PUSH0 000028f5: MLOAD 000028f6: SWAP1 000028f7: PUSH0 000028f8: MSTORE 000028f9: SLOAD 000028fa: SWAP7 000028fb: PUSH0 000028fc: DUP9 000028fd: ISZERO 000028fe: ISZERO 000028ff: DUP1 00002900: PUSH2 0x2c2e 00002903: JUMPI 00002904: JUMPDEST 00002905: PUSH2 0x2911 00002908: JUMPI 00002909: JUMPDEST 0000290a: POP 0000290b: SWAP7 0000290c: POP 0000290d: PUSH2 0x2862 00002910: JUMP 00002911: JUMPDEST 00002912: PUSH0 00002913: MLOAD 00002914: PUSH1 0x20 00002916: PUSH2 0x5c3d 00002919: PUSH0 0000291a: CODECOPY 0000291b: PUSH0 0000291c: MLOAD 0000291d: SWAP1 0000291e: PUSH0 0000291f: MSTORE 00002920: SLOAD 00002921: SWAP1 00002922: PUSH2 0x292a 00002925: DUP3 00002926: PUSH2 0x4629 00002929: JUMP 0000292a: JUMPDEST 0000292b: PUSH0 0000292c: PUSH0 0000292d: PUSH0 0000292e: MLOAD 0000292f: PUSH1 0x20 00002931: PUSH2 0x5a7d 00002934: PUSH0 00002935: CODECOPY 00002936: PUSH0 00002937: MLOAD 00002938: SWAP1 00002939: PUSH0 0000293a: MSTORE 0000293b: SLOAD 0000293c: PUSH0 0000293d: MLOAD 0000293e: PUSH1 0x20 00002940: PUSH2 0x5b9d 00002943: PUSH0 00002944: CODECOPY 00002945: PUSH0 00002946: MLOAD 00002947: SWAP1 00002948: PUSH0 00002949: MSTORE 0000294a: SLOAD 0000294b: SWAP2 0000294c: JUMPDEST 0000294d: DUP7 0000294e: DUP2 0000294f: LT 00002950: PUSH2 0x2bbd 00002953: JUMPI 00002954: POP 00002955: POP 00002956: POP 00002957: PUSH0 00002958: SWAP12 00002959: DUP2 0000295a: ISZERO 0000295b: PUSH0 0000295c: EQ 0000295d: PUSH2 0x2a5a 00002960: JUMPI 00002961: POP 00002962: POP 00002963: POP 00002964: DUP1 00002965: DUP1 00002966: PUSH2 0x2a43 00002969: JUMPI 0000296a: JUMPDEST 0000296b: PUSH2 0x29d5 0000296e: JUMPI 0000296f: JUMPDEST 00002970: POP 00002971: POP 00002972: SWAP3 00002973: PUSH1 0x24 00002975: PUSH32 0xc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c 00002996: SWAP7 00002997: SWAP6 00002998: SWAP4 00002999: DUP3 0000299a: SWAP4 0000299b: PUSH1 0xe0 0000299d: SWAP7 0000299e: PUSH2 0x29b8 000029a1: PUSH1 0x20 000029a3: SWAP13 000029a4: JUMPDEST 000029a5: PUSH0 000029a6: MLOAD 000029a7: PUSH1 0x20 000029a9: PUSH2 0x5c7d 000029ac: PUSH0 000029ad: CODECOPY 000029ae: PUSH0 000029af: MLOAD 000029b0: SWAP1 000029b1: PUSH0 000029b2: MSTORE 000029b3: SLOAD 000029b4: PUSH2 0x45d3 000029b7: JUMP 000029b8: JUMPDEST 000029b9: PUSH0 000029ba: MLOAD 000029bb: PUSH1 0x20 000029bd: PUSH2 0x5c7d 000029c0: PUSH0 000029c1: CODECOPY 000029c2: PUSH0 000029c3: MLOAD 000029c4: SWAP1 000029c5: PUSH0 000029c6: MSTORE 000029c7: SSTORE 000029c8: SWAP4 000029c9: POP 000029ca: SWAP4 000029cb: SWAP6 000029cc: POP 000029cd: SWAP4 000029ce: SWAP6 000029cf: SWAP7 000029d0: POP 000029d1: PUSH2 0x2909 000029d4: JUMP 000029d5: JUMPDEST 000029d6: DUP2 000029d7: DUP2 000029d8: LT 000029d9: ISZERO 000029da: PUSH2 0x296f 000029dd: JUMPI 000029de: PUSH2 0x29e6 000029e1: DUP2 000029e2: PUSH2 0x43ed 000029e5: JUMP 000029e6: JUMPDEST 000029e7: POP 000029e8: SWAP10 000029e9: PUSH0 000029ea: MLOAD 000029eb: PUSH1 0x20 000029ed: PUSH2 0x5c7d 000029f0: PUSH0 000029f1: CODECOPY 000029f2: PUSH0 000029f3: MLOAD 000029f4: SWAP1 000029f5: PUSH0 000029f6: MSTORE 000029f7: SLOAD 000029f8: PUSH1 0x02 000029fa: DUP13 000029fb: ADD 000029fc: SLOAD 000029fd: PUSH2 0x2a05 00002a00: SWAP2 00002a01: PUSH2 0x45e0 00002a04: JUMP 00002a05: JUMPDEST 00002a06: PUSH0 00002a07: MLOAD 00002a08: PUSH1 0x20 00002a0a: PUSH2 0x5b9d 00002a0d: PUSH0 00002a0e: CODECOPY 00002a0f: PUSH0 00002a10: MLOAD 00002a11: SWAP1 00002a12: PUSH0 00002a13: MSTORE 00002a14: SLOAD 00002a15: PUSH2 0x2a1d 00002a18: SWAP2 00002a19: PUSH2 0x45f3 00002a1c: JUMP 00002a1d: JUMPDEST 00002a1e: SWAP1 00002a1f: DUP2 00002a20: PUSH2 0x2a28 00002a23: SWAP2 00002a24: PUSH2 0x45c6 00002a27: JUMP 00002a28: JUMPDEST 00002a29: SWAP11 00002a2a: PUSH1 0x06 00002a2c: ADD 00002a2d: SWAP1 00002a2e: DUP2 00002a2f: SLOAD 00002a30: SWAP1 00002a31: PUSH2 0x2a39 00002a34: SWAP2 00002a35: PUSH2 0x45c6 00002a38: JUMP 00002a39: JUMPDEST 00002a3a: SWAP1 00002a3b: SSTORE 00002a3c: PUSH1 0x01 00002a3e: ADD 00002a3f: PUSH2 0x29d5 00002a42: JUMP 00002a43: JUMPDEST 00002a44: POP 00002a45: PUSH0 00002a46: MLOAD 00002a47: PUSH1 0x20 00002a49: PUSH2 0x5c7d 00002a4c: PUSH0 00002a4d: CODECOPY 00002a4e: PUSH0 00002a4f: MLOAD 00002a50: SWAP1 00002a51: PUSH0 00002a52: MSTORE 00002a53: SLOAD 00002a54: ISZERO 00002a55: ISZERO 00002a56: PUSH2 0x296a 00002a59: JUMP 00002a5a: JUMPDEST 00002a5b: SWAP1 00002a5c: DUP1 00002a5d: SWAP3 00002a5e: SWAP4 00002a5f: SWAP2 00002a60: LT 00002a61: PUSH0 00002a62: EQ 00002a63: PUSH2 0x2b2d 00002a66: JUMPI 00002a67: JUMPDEST 00002a68: DUP4 00002a69: DUP2 00002a6a: LT 00002a6b: PUSH2 0x2aa9 00002a6e: JUMPI 00002a6f: POP 00002a70: POP 00002a71: POP 00002a72: POP 00002a73: SWAP3 00002a74: PUSH1 0x24 00002a76: PUSH32 0xc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c 00002a97: SWAP7 00002a98: SWAP6 00002a99: SWAP4 00002a9a: DUP3 00002a9b: SWAP4 00002a9c: PUSH1 0xe0 00002a9e: SWAP7 00002a9f: PUSH2 0x29b8 00002aa2: PUSH1 0x20 00002aa4: SWAP13 00002aa5: PUSH2 0x29a4 00002aa8: JUMP 00002aa9: JUMPDEST 00002aaa: DUP1 00002aab: PUSH2 0x2ab6 00002aae: PUSH1 0x01 00002ab0: SWAP3 00002ab1: DUP6 00002ab2: PUSH2 0x4af2 00002ab5: JUMP 00002ab6: JUMPDEST 00002ab7: MLOAD 00002ab8: PUSH2 0x2ac2 00002abb: JUMPI 00002abc: JUMPDEST 00002abd: ADD 00002abe: PUSH2 0x2a67 00002ac1: JUMP 00002ac2: JUMPDEST 00002ac3: PUSH1 0x06 00002ac5: PUSH2 0x2b15 00002ac8: PUSH2 0x2ad0 00002acb: DUP4 00002acc: PUSH2 0x43ed 00002acf: JUMP 00002ad0: JUMPDEST 00002ad1: POP 00002ad2: SWAP15 00002ad3: PUSH2 0x2af9 00002ad6: DUP7 00002ad7: PUSH2 0x1378 00002ada: PUSH2 0x2ae3 00002add: DUP8 00002ade: DUP12 00002adf: PUSH2 0x4af2 00002ae2: JUMP 00002ae3: JUMPDEST 00002ae4: MLOAD 00002ae5: PUSH0 00002ae6: MLOAD 00002ae7: PUSH1 0x20 00002ae9: PUSH2 0x5c7d 00002aec: PUSH0 00002aed: CODECOPY 00002aee: PUSH0 00002aef: MLOAD 00002af0: SWAP1 00002af1: PUSH0 00002af2: MSTORE 00002af3: SLOAD 00002af4: SWAP1 00002af5: PUSH2 0x45e0 00002af8: JUMP 00002af9: JUMPDEST 00002afa: PUSH2 0x2b03 00002afd: DUP6 00002afe: DUP10 00002aff: PUSH2 0x4af2 00002b02: JUMP 00002b03: JUMPDEST 00002b04: MSTORE 00002b05: PUSH2 0x2b0e 00002b08: DUP5 00002b09: DUP9 00002b0a: PUSH2 0x4af2 00002b0d: JUMP 00002b0e: JUMPDEST 00002b0f: MLOAD 00002b10: SWAP1 00002b11: PUSH2 0x45c6 00002b14: JUMP 00002b15: JUMPDEST 00002b16: SWAP14 00002b17: ADD 00002b18: PUSH2 0x2b26 00002b1b: DUP2 00002b1c: SLOAD 00002b1d: PUSH2 0x2b0e 00002b20: DUP5 00002b21: DUP9 00002b22: PUSH2 0x4af2 00002b25: JUMP 00002b26: JUMPDEST 00002b27: SWAP1 00002b28: SSTORE 00002b29: PUSH2 0x2abc 00002b2c: JUMP 00002b2d: JUMPDEST 00002b2e: POP 00002b2f: POP 00002b30: PUSH0 00002b31: JUMPDEST 00002b32: DUP3 00002b33: DUP2 00002b34: LT 00002b35: PUSH2 0x2b72 00002b38: JUMPI 00002b39: POP 00002b3a: POP 00002b3b: POP 00002b3c: SWAP3 00002b3d: PUSH1 0x24 00002b3f: PUSH32 0xc184e55db14c3f814948da0d3295ebf968287d110e7ebb55ea0f30a773fc1d3c 00002b60: SWAP7 00002b61: SWAP6 00002b62: SWAP4 00002b63: DUP3 00002b64: SWAP4 00002b65: PUSH1 0xe0 00002b67: SWAP7 00002b68: PUSH2 0x29b8 00002b6b: PUSH1 0x20 00002b6d: SWAP13 00002b6e: PUSH2 0x29a4 00002b71: JUMP 00002b72: JUMPDEST 00002b73: DUP1 00002b74: PUSH2 0x2b7f 00002b77: PUSH1 0x01 00002b79: SWAP3 00002b7a: DUP5 00002b7b: PUSH2 0x4af2 00002b7e: JUMP 00002b7f: JUMPDEST 00002b80: MLOAD 00002b81: PUSH2 0x2b8b 00002b84: JUMPI 00002b85: JUMPDEST 00002b86: ADD 00002b87: PUSH2 0x2b31 00002b8a: JUMP 00002b8b: JUMPDEST 00002b8c: PUSH1 0x06 00002b8e: PUSH2 0x2ba5 00002b91: PUSH2 0x2b99 00002b94: DUP4 00002b95: PUSH2 0x43ed 00002b98: JUMP 00002b99: JUMPDEST 00002b9a: POP 00002b9b: SWAP14 00002b9c: PUSH2 0x2b0e 00002b9f: DUP5 00002ba0: DUP8 00002ba1: PUSH2 0x4af2 00002ba4: JUMP 00002ba5: JUMPDEST 00002ba6: SWAP13 00002ba7: ADD 00002ba8: PUSH2 0x2bb6 00002bab: DUP2 00002bac: SLOAD 00002bad: PUSH2 0x2b0e 00002bb0: DUP5 00002bb1: DUP8 00002bb2: PUSH2 0x4af2 00002bb5: JUMP 00002bb6: JUMPDEST 00002bb7: SWAP1 00002bb8: SSTORE 00002bb9: PUSH2 0x2b85 00002bbc: JUMP 00002bbd: JUMPDEST 00002bbe: PUSH2 0x2bc6 00002bc1: DUP2 00002bc2: PUSH2 0x43ed 00002bc5: JUMP 00002bc6: JUMPDEST 00002bc7: POP 00002bc8: PUSH2 0x2bed 00002bcb: PUSH2 0x2bdc 00002bce: DUP6 00002bcf: PUSH2 0x1378 00002bd2: PUSH1 0x02 00002bd4: DUP6 00002bd5: ADD 00002bd6: SLOAD 00002bd7: DUP8 00002bd8: PUSH2 0x45e0 00002bdb: JUMP 00002bdc: JUMPDEST 00002bdd: SWAP2 00002bde: PUSH1 0x06 00002be0: PUSH1 0x05 00002be2: DUP3 00002be3: ADD 00002be4: SLOAD 00002be5: SWAP2 00002be6: ADD 00002be7: SLOAD 00002be8: SWAP1 00002be9: PUSH2 0x45c6 00002bec: JUMP 00002bed: JUMPDEST 00002bee: SWAP1 00002bef: DUP2 00002bf0: DUP2 00002bf1: GT 00002bf2: PUSH2 0x2c00 00002bf5: JUMPI 00002bf6: JUMPDEST 00002bf7: POP 00002bf8: POP 00002bf9: PUSH1 0x01 00002bfb: ADD 00002bfc: PUSH2 0x294c 00002bff: JUMP 00002c00: JUMPDEST 00002c01: SWAP5 00002c02: PUSH2 0x2c11 00002c05: PUSH2 0x2c26 00002c08: SWAP3 00002c09: PUSH1 0x01 00002c0b: SWAP5 00002c0c: SWAP8 00002c0d: PUSH2 0x45d3 00002c10: JUMP 00002c11: JUMPDEST 00002c12: PUSH2 0x2c1b 00002c15: DUP8 00002c16: DUP10 00002c17: PUSH2 0x4af2 00002c1a: JUMP 00002c1b: JUMPDEST 00002c1c: MSTORE 00002c1d: PUSH2 0x2b0e 00002c20: DUP7 00002c21: DUP9 00002c22: PUSH2 0x4af2 00002c25: JUMP 00002c26: JUMPDEST 00002c27: SWAP4 00002c28: SWAP1 00002c29: PUSH0 00002c2a: PUSH2 0x2bf6 00002c2d: JUMP 00002c2e: JUMPDEST 00002c2f: POP 00002c30: PUSH0 00002c31: MLOAD 00002c32: PUSH1 0x20 00002c34: PUSH2 0x5b9d 00002c37: PUSH0 00002c38: CODECOPY 00002c39: PUSH0 00002c3a: MLOAD 00002c3b: SWAP1 00002c3c: PUSH0 00002c3d: MSTORE 00002c3e: SLOAD 00002c3f: ISZERO 00002c40: ISZERO 00002c41: PUSH2 0x2904 00002c44: JUMP 00002c45: JUMPDEST 00002c46: POP 00002c47: PUSH0 00002c48: MLOAD 00002c49: PUSH1 0x20 00002c4b: PUSH2 0x5c7d 00002c4e: PUSH0 00002c4f: CODECOPY 00002c50: PUSH0 00002c51: MLOAD 00002c52: SWAP1 00002c53: PUSH0 00002c54: MSTORE 00002c55: SLOAD 00002c56: PUSH2 0x2710 00002c59: PUSH2 0x2c7f 00002c5c: PUSH0 00002c5d: MLOAD 00002c5e: PUSH1 0x20 00002c60: PUSH2 0x5a7d 00002c63: PUSH0 00002c64: CODECOPY 00002c65: PUSH0 00002c66: MLOAD 00002c67: SWAP1 00002c68: PUSH0 00002c69: MSTORE 00002c6a: SLOAD 00002c6b: PUSH0 00002c6c: MLOAD 00002c6d: PUSH1 0x20 00002c6f: PUSH2 0x5c1d 00002c72: PUSH0 00002c73: CODECOPY 00002c74: PUSH0 00002c75: MLOAD 00002c76: SWAP1 00002c77: PUSH0 00002c78: MSTORE 00002c79: SLOAD 00002c7a: SWAP1 00002c7b: PUSH2 0x45e0 00002c7e: JUMP 00002c7f: JUMPDEST 00002c80: DIV 00002c81: LT 00002c82: PUSH2 0x285d 00002c85: JUMP 00002c86: JUMPDEST 00002c87: POP 00002c88: POP 00002c89: POP 00002c8a: PUSH4 0x1c6768ad 00002c8f: PUSH1 0xe2 00002c91: SHL 00002c92: PUSH0 00002c93: MSTORE 00002c94: PUSH1 0x04 00002c96: MSTORE 00002c97: PUSH1 0x24 00002c99: MSTORE 00002c9a: PUSH1 0x44 00002c9c: PUSH0 00002c9d: REVERT 00002c9e: JUMPDEST 00002c9f: CALLVALUE 00002ca0: PUSH2 0x03b2 00002ca3: JUMPI 00002ca4: PUSH0 00002ca5: CALLDATASIZE 00002ca6: PUSH1 0x03 00002ca8: NOT 00002ca9: ADD 00002caa: SLT 00002cab: PUSH2 0x03b2 00002cae: JUMPI 00002caf: PUSH1 0x20 00002cb1: PUSH1 0xff 00002cb3: PUSH0 00002cb4: MLOAD 00002cb5: PUSH1 0x20 00002cb7: PUSH2 0x5c9d 00002cba: PUSH0 00002cbb: CODECOPY 00002cbc: PUSH0 00002cbd: MLOAD 00002cbe: SWAP1 00002cbf: PUSH0 00002cc0: MSTORE 00002cc1: SLOAD 00002cc2: PUSH1 0x10 00002cc4: SHR 00002cc5: AND 00002cc6: PUSH1 0x40 00002cc8: MLOAD 00002cc9: SWAP1 00002cca: ISZERO 00002ccb: ISZERO 00002ccc: DUP2 00002ccd: MSTORE 00002cce: RETURN 00002ccf: JUMPDEST 00002cd0: CALLVALUE 00002cd1: PUSH2 0x03b2 00002cd4: JUMPI 00002cd5: PUSH0 00002cd6: CALLDATASIZE 00002cd7: PUSH1 0x03 00002cd9: NOT 00002cda: ADD 00002cdb: SLT 00002cdc: PUSH2 0x03b2 00002cdf: JUMPI 00002ce0: PUSH1 0x20 00002ce2: PUSH1 0xff 00002ce4: PUSH0 00002ce5: MLOAD 00002ce6: PUSH1 0x20 00002ce8: PUSH2 0x5c9d 00002ceb: PUSH0 00002cec: CODECOPY 00002ced: PUSH0 00002cee: MLOAD 00002cef: SWAP1 00002cf0: PUSH0 00002cf1: MSTORE 00002cf2: SLOAD 00002cf3: AND 00002cf4: PUSH1 0x40 00002cf6: MLOAD 00002cf7: SWAP1 00002cf8: ISZERO 00002cf9: ISZERO 00002cfa: DUP2 00002cfb: MSTORE 00002cfc: RETURN 00002cfd: JUMPDEST 00002cfe: CALLVALUE 00002cff: PUSH2 0x03b2 00002d02: JUMPI 00002d03: PUSH1 0x20 00002d05: CALLDATASIZE 00002d06: PUSH1 0x03 00002d08: NOT 00002d09: ADD 00002d0a: SLT 00002d0b: PUSH2 0x03b2 00002d0e: JUMPI 00002d0f: PUSH1 0x20 00002d11: PUSH2 0x137d 00002d14: PUSH1 0x04 00002d16: CALLDATALOAD 00002d17: PUSH0 00002d18: MSTORE 00002d19: PUSH0 00002d1a: MLOAD 00002d1b: PUSH1 0x20 00002d1d: PUSH2 0x5c5d 00002d20: PUSH0 00002d21: CODECOPY 00002d22: PUSH0 00002d23: MLOAD 00002d24: SWAP1 00002d25: PUSH0 00002d26: MSTORE 00002d27: PUSH1 0x20 00002d29: MSTORE 00002d2a: PUSH1 0x01 00002d2c: PUSH1 0x40 00002d2e: PUSH0 00002d2f: KECCAK256 00002d30: ADD 00002d31: SLOAD 00002d32: SWAP1 00002d33: JUMP 00002d34: JUMPDEST 00002d35: CALLVALUE 00002d36: PUSH2 0x03b2 00002d39: JUMPI 00002d3a: PUSH1 0x60 00002d3c: CALLDATASIZE 00002d3d: PUSH1 0x03 00002d3f: NOT 00002d40: ADD 00002d41: SLT 00002d42: PUSH2 0x03b2 00002d45: JUMPI 00002d46: PUSH2 0x2d4d 00002d49: PUSH2 0x3fa8 00002d4c: JUMP 00002d4d: JUMPDEST 00002d4e: PUSH2 0x2d55 00002d51: PUSH2 0x3fbe 00002d54: JUMP 00002d55: JUMPDEST 00002d56: PUSH1 0x44 00002d58: CALLDATALOAD 00002d59: SWAP1 00002d5a: PUSH2 0x2d93 00002d5d: DUP4 00002d5e: PUSH1 0x01 00002d60: PUSH1 0x01 00002d62: PUSH1 0xa0 00002d64: SHL 00002d65: SUB 00002d66: AND 00002d67: PUSH0 00002d68: MSTORE 00002d69: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01 00002d8a: PUSH1 0x20 00002d8c: MSTORE 00002d8d: PUSH1 0x40 00002d8f: PUSH0 00002d90: KECCAK256 00002d91: SWAP1 00002d92: JUMP 00002d93: JUMPDEST 00002d94: PUSH1 0x01 00002d96: PUSH1 0x01 00002d98: PUSH1 0xa0 00002d9a: SHL 00002d9b: SUB 00002d9c: CALLER 00002d9d: AND 00002d9e: PUSH0 00002d9f: MSTORE 00002da0: PUSH1 0x20 00002da2: MSTORE 00002da3: PUSH1 0x40 00002da5: PUSH0 00002da6: KECCAK256 00002da7: SLOAD 00002da8: SWAP3 00002da9: PUSH0 00002daa: NOT 00002dab: DUP5 00002dac: LT 00002dad: PUSH2 0x2dbb 00002db0: JUMPI 00002db1: JUMPDEST 00002db2: PUSH2 0x0eab 00002db5: SWAP4 00002db6: POP 00002db7: PUSH2 0x4de4 00002dba: JUMP 00002dbb: JUMPDEST 00002dbc: DUP3 00002dbd: DUP5 00002dbe: LT 00002dbf: PUSH2 0x2e58 00002dc2: JUMPI 00002dc3: PUSH1 0x01 00002dc5: PUSH1 0x01 00002dc7: PUSH1 0xa0 00002dc9: SHL 00002dca: SUB 00002dcb: DUP2 00002dcc: AND 00002dcd: ISZERO 00002dce: PUSH2 0x2e45 00002dd1: JUMPI 00002dd2: CALLER 00002dd3: ISZERO 00002dd4: PUSH2 0x2e32 00002dd7: JUMPI 00002dd8: PUSH2 0x0eab 00002ddb: SWAP4 00002ddc: PUSH2 0x2e15 00002ddf: DUP3 00002de0: PUSH1 0x01 00002de2: PUSH1 0x01 00002de4: PUSH1 0xa0 00002de6: SHL 00002de7: SUB 00002de8: AND 00002de9: PUSH0 00002dea: MSTORE 00002deb: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01 00002e0c: PUSH1 0x20 00002e0e: MSTORE 00002e0f: PUSH1 0x40 00002e11: PUSH0 00002e12: KECCAK256 00002e13: SWAP1 00002e14: JUMP 00002e15: JUMPDEST 00002e16: PUSH1 0x01 00002e18: PUSH1 0x01 00002e1a: PUSH1 0xa0 00002e1c: SHL 00002e1d: SUB 00002e1e: CALLER 00002e1f: AND 00002e20: PUSH0 00002e21: MSTORE 00002e22: PUSH1 0x20 00002e24: MSTORE 00002e25: DUP4 00002e26: PUSH1 0x40 00002e28: PUSH0 00002e29: KECCAK256 00002e2a: SWAP2 00002e2b: SUB 00002e2c: SWAP1 00002e2d: SSTORE 00002e2e: PUSH2 0x2db1 00002e31: JUMP 00002e32: JUMPDEST 00002e33: PUSH4 0x4a1406b1 00002e38: PUSH1 0xe1 00002e3a: SHL 00002e3b: PUSH0 00002e3c: MSTORE 00002e3d: PUSH0 00002e3e: PUSH1 0x04 00002e40: MSTORE 00002e41: PUSH1 0x24 00002e43: PUSH0 00002e44: REVERT 00002e45: JUMPDEST 00002e46: PUSH4 0xe602df05 00002e4b: PUSH1 0xe0 00002e4d: SHL 00002e4e: PUSH0 00002e4f: MSTORE 00002e50: PUSH0 00002e51: PUSH1 0x04 00002e53: MSTORE 00002e54: PUSH1 0x24 00002e56: PUSH0 00002e57: REVERT 00002e58: JUMPDEST 00002e59: DUP3 00002e5a: DUP5 00002e5b: PUSH4 0x7dc7a0d9 00002e60: PUSH1 0xe1 00002e62: SHL 00002e63: PUSH0 00002e64: MSTORE 00002e65: CALLER 00002e66: PUSH1 0x04 00002e68: MSTORE 00002e69: PUSH1 0x24 00002e6b: MSTORE 00002e6c: PUSH1 0x44 00002e6e: MSTORE 00002e6f: PUSH1 0x64 00002e71: PUSH0 00002e72: REVERT 00002e73: JUMPDEST 00002e74: CALLVALUE 00002e75: PUSH2 0x03b2 00002e78: JUMPI 00002e79: PUSH0 00002e7a: CALLDATASIZE 00002e7b: PUSH1 0x03 00002e7d: NOT 00002e7e: ADD 00002e7f: SLT 00002e80: PUSH2 0x03b2 00002e83: JUMPI 00002e84: PUSH1 0x20 00002e86: PUSH0 00002e87: MLOAD 00002e88: PUSH1 0x20 00002e8a: PUSH2 0x5c7d 00002e8d: PUSH0 00002e8e: CODECOPY 00002e8f: PUSH0 00002e90: MLOAD 00002e91: SWAP1 00002e92: PUSH0 00002e93: MSTORE 00002e94: SLOAD 00002e95: PUSH1 0x40 00002e97: MLOAD 00002e98: SWAP1 00002e99: DUP2 00002e9a: MSTORE 00002e9b: RETURN 00002e9c: JUMPDEST 00002e9d: CALLVALUE 00002e9e: PUSH2 0x03b2 00002ea1: JUMPI 00002ea2: PUSH0 00002ea3: CALLDATASIZE 00002ea4: PUSH1 0x03 00002ea6: NOT 00002ea7: ADD 00002ea8: SLT 00002ea9: PUSH2 0x03b2 00002eac: JUMPI 00002ead: PUSH1 0x20 00002eaf: PUSH1 0x40 00002eb1: MLOAD 00002eb2: PUSH32 0x0000000000000000000000000000000000000000000000000000000000005460 00002ed3: DUP2 00002ed4: MSTORE 00002ed5: RETURN 00002ed6: JUMPDEST 00002ed7: CALLVALUE 00002ed8: PUSH2 0x03b2 00002edb: JUMPI 00002edc: PUSH0 00002edd: CALLDATASIZE 00002ede: PUSH1 0x03 00002ee0: NOT 00002ee1: ADD 00002ee2: SLT 00002ee3: PUSH2 0x03b2 00002ee6: JUMPI 00002ee7: PUSH1 0x20 00002ee9: PUSH0 00002eea: MLOAD 00002eeb: PUSH1 0x20 00002eed: PUSH2 0x5b5d 00002ef0: PUSH0 00002ef1: CODECOPY 00002ef2: PUSH0 00002ef3: MLOAD 00002ef4: SWAP1 00002ef5: PUSH0 00002ef6: MSTORE 00002ef7: SLOAD 00002ef8: PUSH1 0x40 00002efa: MLOAD 00002efb: SWAP1 00002efc: DUP2 00002efd: MSTORE 00002efe: RETURN 00002eff: JUMPDEST 00002f00: CALLVALUE 00002f01: PUSH2 0x03b2 00002f04: JUMPI 00002f05: PUSH0 00002f06: CALLDATASIZE 00002f07: PUSH1 0x03 00002f09: NOT 00002f0a: ADD 00002f0b: SLT 00002f0c: PUSH2 0x03b2 00002f0f: JUMPI 00002f10: PUSH1 0x20 00002f12: PUSH0 00002f13: MLOAD 00002f14: PUSH1 0x20 00002f16: PUSH2 0x5a7d 00002f19: PUSH0 00002f1a: CODECOPY 00002f1b: PUSH0 00002f1c: MLOAD 00002f1d: SWAP1 00002f1e: PUSH0 00002f1f: MSTORE 00002f20: SLOAD 00002f21: PUSH1 0x40 00002f23: MLOAD 00002f24: SWAP1 00002f25: DUP2 00002f26: MSTORE 00002f27: RETURN 00002f28: JUMPDEST 00002f29: CALLVALUE 00002f2a: PUSH2 0x03b2 00002f2d: JUMPI 00002f2e: PUSH0 00002f2f: CALLDATASIZE 00002f30: PUSH1 0x03 00002f32: NOT 00002f33: ADD 00002f34: SLT 00002f35: PUSH2 0x03b2 00002f38: JUMPI 00002f39: PUSH1 0x20 00002f3b: PUSH1 0x40 00002f3d: MLOAD 00002f3e: PUSH1 0x64 00002f40: DUP2 00002f41: MSTORE 00002f42: RETURN 00002f43: JUMPDEST 00002f44: CALLVALUE 00002f45: PUSH2 0x03b2 00002f48: JUMPI 00002f49: PUSH2 0x2f51 00002f4c: CALLDATASIZE 00002f4d: PUSH2 0x3ff9 00002f50: JUMP 00002f51: JUMPDEST 00002f52: SWAP4 00002f53: SWAP3 00002f54: SWAP1 00002f55: SWAP2 00002f56: PUSH2 0x2f5d 00002f59: PUSH2 0x4494 00002f5c: JUMP 00002f5d: JUMPDEST 00002f5e: POP 00002f5f: PUSH2 0x2f66 00002f62: PUSH2 0x487d 00002f65: JUMP 00002f66: JUMPDEST 00002f67: PUSH2 0x2f6e 00002f6a: PUSH2 0x48b2 00002f6d: JUMP 00002f6e: JUMPDEST 00002f6f: PUSH1 0xff 00002f71: PUSH0 00002f72: MLOAD 00002f73: PUSH1 0x20 00002f75: PUSH2 0x5d1d 00002f78: PUSH0 00002f79: CODECOPY 00002f7a: PUSH0 00002f7b: MLOAD 00002f7c: SWAP1 00002f7d: PUSH0 00002f7e: MSTORE 00002f7f: SLOAD 00002f80: PUSH1 0xa0 00002f82: SHR 00002f83: AND 00002f84: PUSH2 0x33f1 00002f87: JUMPI 00002f88: PUSH1 0x01 00002f8a: PUSH1 0x01 00002f8c: PUSH1 0xa0 00002f8e: SHL 00002f8f: SUB 00002f90: DUP3 00002f91: AND 00002f92: SWAP2 00002f93: DUP3 00002f94: ISZERO 00002f95: PUSH2 0x1aeb 00002f98: JUMPI 00002f99: PUSH2 0x2fa2 00002f9c: DUP6 00002f9d: DUP9 00002f9e: PUSH2 0x49bd 00002fa1: JUMP 00002fa2: JUMPDEST 00002fa3: SWAP4 00002fa4: PUSH1 0x01 00002fa6: PUSH1 0xff 00002fa8: PUSH1 0x07 00002faa: DUP8 00002fab: ADD 00002fac: SLOAD 00002fad: AND 00002fae: ISZERO 00002faf: ISZERO 00002fb0: SUB 00002fb1: PUSH2 0x33da 00002fb4: JUMPI 00002fb5: PUSH0 00002fb6: MLOAD 00002fb7: PUSH1 0x20 00002fb9: PUSH2 0x5cdd 00002fbc: PUSH0 00002fbd: CODECOPY 00002fbe: PUSH0 00002fbf: MLOAD 00002fc0: SWAP1 00002fc1: PUSH0 00002fc2: MSTORE 00002fc3: SLOAD 00002fc4: SWAP7 00002fc5: PUSH2 0x2fd9 00002fc8: PUSH2 0x2fd1 00002fcb: DUP10 00002fcc: DUP7 00002fcd: PUSH2 0x45f3 00002fd0: JUMP 00002fd1: JUMPDEST 00002fd2: SWAP9 00002fd3: DUP10 00002fd4: SWAP4 00002fd5: PUSH2 0x45f3 00002fd8: JUMP 00002fd9: JUMPDEST 00002fda: SWAP4 00002fdb: PUSH1 0xc0 00002fdd: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b 00002ffe: SLOAD 00002fff: SWAP5 00003000: PUSH1 0xff 00003002: PUSH0 00003003: MLOAD 00003004: PUSH1 0x20 00003006: PUSH2 0x5afd 00003009: PUSH0 0000300a: CODECOPY 0000300b: PUSH0 0000300c: MLOAD 0000300d: SWAP1 0000300e: PUSH0 0000300f: MSTORE 00003010: SLOAD 00003011: AND 00003012: SWAP6 00003013: PUSH2 0x301a 00003016: PUSH2 0x4a5f 00003019: JUMP 0000301a: JUMPDEST 0000301b: PUSH0 0000301c: MLOAD 0000301d: PUSH1 0x20 0000301f: PUSH2 0x5a7d 00003022: PUSH0 00003023: CODECOPY 00003024: PUSH0 00003025: MLOAD 00003026: SWAP1 00003027: PUSH0 00003028: MSTORE 00003029: SLOAD 0000302a: SWAP1 0000302b: PUSH0 0000302c: MLOAD 0000302d: PUSH1 0x20 0000302f: PUSH2 0x5cbd 00003032: PUSH0 00003033: CODECOPY 00003034: PUSH0 00003035: MLOAD 00003036: SWAP1 00003037: PUSH0 00003038: MSTORE 00003039: SLOAD 0000303a: SWAP9 0000303b: PUSH1 0x40 0000303d: MLOAD 0000303e: SWAP4 0000303f: PUSH2 0x3047 00003042: DUP6 00003043: PUSH2 0x4038 00003046: JUMP 00003047: JUMPDEST 00003048: ADDRESS 00003049: DUP6 0000304a: MSTORE 0000304b: PUSH1 0x20 0000304d: DUP6 0000304e: ADD 0000304f: MSTORE 00003050: PUSH1 0x40 00003052: DUP5 00003053: ADD 00003054: MSTORE 00003055: PUSH1 0x60 00003057: DUP4 00003058: ADD 00003059: MSTORE 0000305a: PUSH1 0x80 0000305c: DUP3 0000305d: ADD 0000305e: MSTORE 0000305f: DUP7 00003060: PUSH1 0xa0 00003062: DUP3 00003063: ADD 00003064: MSTORE 00003065: DUP10 00003066: PUSH1 0x01 00003068: PUSH1 0x01 0000306a: PUSH1 0xa0 0000306c: SHL 0000306d: SUB 0000306e: PUSH0 0000306f: MLOAD 00003070: PUSH1 0x20 00003072: PUSH2 0x5bbd 00003075: PUSH0 00003076: CODECOPY 00003077: PUSH0 00003078: MLOAD 00003079: SWAP1 0000307a: PUSH0 0000307b: MSTORE 0000307c: SLOAD 0000307d: AND 0000307e: SWAP2 0000307f: PUSH2 0x309e 00003082: PUSH1 0x40 00003084: MLOAD 00003085: SWAP15 00003086: DUP16 00003087: SWAP6 00003088: DUP7 00003089: SWAP5 0000308a: DUP6 0000308b: SWAP5 0000308c: PUSH4 0x143273dd 00003091: PUSH1 0xe2 00003093: SHL 00003094: DUP7 00003095: MSTORE 00003096: PUSH1 0x04 00003098: DUP7 00003099: ADD 0000309a: PUSH2 0x4514 0000309d: JUMP 0000309e: JUMPDEST 0000309f: SUB 000030a0: SWAP2 000030a1: GAS 000030a2: STATICCALL 000030a3: SWAP9 000030a4: DUP10 000030a5: ISZERO 000030a6: PUSH2 0x0d8d 000030a9: JUMPI 000030aa: PUSH0 000030ab: SWAP10 000030ac: PUSH2 0x33b9 000030af: JUMPI 000030b0: JUMPDEST 000030b1: POP 000030b2: DUP9 000030b3: MLOAD 000030b4: ISZERO 000030b5: PUSH2 0x334f 000030b8: JUMPI 000030b9: POP 000030ba: PUSH1 0x80 000030bc: DUP9 000030bd: ADD 000030be: SWAP3 000030bf: PUSH2 0x30c9 000030c2: DUP5 000030c3: MLOAD 000030c4: DUP5 000030c5: PUSH2 0x45c6 000030c8: JUMP 000030c9: JUMPDEST 000030ca: SWAP5 000030cb: DUP1 000030cc: PUSH2 0x30db 000030cf: PUSH1 0x60 000030d1: DUP13 000030d2: ADD 000030d3: SWAP8 000030d4: DUP9 000030d5: MLOAD 000030d6: SWAP1 000030d7: PUSH2 0x45d3 000030da: JUMP 000030db: JUMPDEST 000030dc: LT 000030dd: PUSH2 0x331d 000030e0: JUMPI 000030e1: POP 000030e2: DUP4 000030e3: MLOAD 000030e4: DUP1 000030e5: PUSH2 0x32fe 000030e8: JUMPI 000030e9: JUMPDEST 000030ea: POP 000030eb: POP 000030ec: PUSH1 0x40 000030ee: DUP9 000030ef: ADD 000030f0: SWAP6 000030f1: PUSH2 0x3106 000030f4: PUSH2 0x30fe 000030f7: DUP9 000030f8: MLOAD 000030f9: DUP6 000030fa: PUSH2 0x45d3 000030fd: JUMP 000030fe: JUMPDEST 000030ff: DUP6 00003100: MLOAD 00003101: SWAP1 00003102: PUSH2 0x45c6 00003105: JUMP 00003106: JUMPDEST 00003107: PUSH1 0x03 00003109: PUSH1 0xa0 0000310b: DUP12 0000310c: ADD 0000310d: SWAP3 0000310e: DUP3 0000310f: DUP5 00003110: MSTORE 00003111: ADD 00003112: SWAP2 00003113: DUP3 00003114: SLOAD 00003115: SWAP2 00003116: DUP1 00003117: DUP4 00003118: LT 00003119: PUSH2 0x32e8 0000311c: JUMPI 0000311d: POP 0000311e: SWAP3 0000311f: PUSH2 0x0100 00003122: SWAP9 00003123: SWAP6 00003124: SWAP3 00003125: PUSH2 0x3159 00003128: PUSH2 0x046f 0000312b: SWAP14 0000312c: SWAP10 0000312d: SWAP7 0000312e: SWAP4 0000312f: PUSH32 0x9c7519dcf6aef530f7209189ddd559038a69f8bb53f818b7fa76c67379aa6b2c 00003150: SWAP13 00003151: SWAP10 00003152: SWAP7 00003153: MLOAD 00003154: SWAP1 00003155: PUSH2 0x45d3 00003158: JUMP 00003159: JUMPDEST 0000315a: SWAP1 0000315b: SSTORE 0000315c: ISZERO 0000315d: PUSH2 0x32ac 00003160: JUMPI 00003161: PUSH2 0x317b 00003164: PUSH2 0x3183 00003167: SWAP2 00003168: PUSH0 00003169: MLOAD 0000316a: PUSH1 0x20 0000316c: PUSH2 0x5c7d 0000316f: PUSH0 00003170: CODECOPY 00003171: PUSH0 00003172: MLOAD 00003173: SWAP1 00003174: PUSH0 00003175: MSTORE 00003176: SLOAD 00003177: PUSH2 0x45c6 0000317a: JUMP 0000317b: JUMPDEST 0000317c: DUP3 0000317d: MLOAD 0000317e: SWAP1 0000317f: PUSH2 0x45c6 00003182: JUMP 00003183: JUMPDEST 00003184: PUSH0 00003185: MLOAD 00003186: PUSH1 0x20 00003188: PUSH2 0x5c7d 0000318b: PUSH0 0000318c: CODECOPY 0000318d: PUSH0 0000318e: MLOAD 0000318f: SWAP1 00003190: PUSH0 00003191: MSTORE 00003192: SSTORE 00003193: JUMPDEST 00003194: PUSH0 00003195: MLOAD 00003196: PUSH1 0x20 00003198: PUSH2 0x5c9d 0000319b: PUSH0 0000319c: CODECOPY 0000319d: PUSH0 0000319e: MLOAD 0000319f: SWAP1 000031a0: PUSH0 000031a1: MSTORE 000031a2: SLOAD 000031a3: PUSH1 0xff 000031a5: DUP2 000031a6: AND 000031a7: ISZERO 000031a8: DUP1 000031a9: ISZERO 000031aa: PUSH2 0x3257 000031ad: JUMPI 000031ae: JUMPDEST 000031af: PUSH2 0x3242 000031b2: JUMPI 000031b3: JUMPDEST 000031b4: POP 000031b5: DUP9 000031b6: MLOAD 000031b7: SWAP1 000031b8: MLOAD 000031b9: SWAP2 000031ba: MLOAD 000031bb: SWAP3 000031bc: PUSH1 0x20 000031be: DUP11 000031bf: ADD 000031c0: MLOAD 000031c1: SWAP5 000031c2: MLOAD 000031c3: SWAP6 000031c4: PUSH1 0x40 000031c6: MLOAD 000031c7: SWAP8 000031c8: DUP9 000031c9: MSTORE 000031ca: PUSH1 0x20 000031cc: DUP9 000031cd: ADD 000031ce: MSTORE 000031cf: PUSH1 0x40 000031d1: DUP8 000031d2: ADD 000031d3: MSTORE 000031d4: PUSH1 0x60 000031d6: DUP7 000031d7: ADD 000031d8: MSTORE 000031d9: PUSH1 0x80 000031db: DUP6 000031dc: ADD 000031dd: MSTORE 000031de: PUSH1 0xa0 000031e0: DUP5 000031e1: ADD 000031e2: MSTORE 000031e3: PUSH1 0xc0 000031e5: DUP4 000031e6: ADD 000031e7: MSTORE 000031e8: PUSH1 0xe0 000031ea: DUP3 000031eb: ADD 000031ec: MSTORE 000031ed: LOG1 000031ee: PUSH0 000031ef: PUSH0 000031f0: MLOAD 000031f1: PUSH1 0x20 000031f3: PUSH2 0x5cfd 000031f6: PUSH0 000031f7: CODECOPY 000031f8: PUSH0 000031f9: MLOAD 000031fa: SWAP1 000031fb: PUSH0 000031fc: MSTORE 000031fd: TSTORE 000031fe: PUSH1 0x40 00003200: MLOAD 00003201: SWAP2 00003202: DUP3 00003203: SWAP2 00003204: DUP3 00003205: SWAP2 00003206: SWAP1 00003207: SWAP2 00003208: PUSH1 0xa0 0000320a: DUP1 0000320b: PUSH1 0xc0 0000320d: DUP4 0000320e: ADD 0000320f: SWAP5 00003210: DUP1 00003211: MLOAD 00003212: DUP5 00003213: MSTORE 00003214: PUSH1 0x20 00003216: DUP2 00003217: ADD 00003218: MLOAD 00003219: PUSH1 0x20 0000321b: DUP6 0000321c: ADD 0000321d: MSTORE 0000321e: PUSH1 0x40 00003220: DUP2 00003221: ADD 00003222: MLOAD 00003223: PUSH1 0x40 00003225: DUP6 00003226: ADD 00003227: MSTORE 00003228: PUSH1 0x60 0000322a: DUP2 0000322b: ADD 0000322c: MLOAD 0000322d: PUSH1 0x60 0000322f: DUP6 00003230: ADD 00003231: MSTORE 00003232: PUSH1 0x80 00003234: DUP2 00003235: ADD 00003236: MLOAD 00003237: PUSH1 0x80 00003239: DUP6 0000323a: ADD 0000323b: MSTORE 0000323c: ADD 0000323d: MLOAD 0000323e: SWAP2 0000323f: ADD 00003240: MSTORE 00003241: JUMP 00003242: JUMPDEST 00003243: PUSH1 0xff 00003245: PUSH2 0x3251 00003248: SWAP2 00003249: PUSH1 0x08 0000324b: SHR 0000324c: AND 0000324d: PUSH2 0x4b06 00003250: JUMP 00003251: JUMPDEST 00003252: DUP11 00003253: PUSH2 0x31b3 00003256: JUMP 00003257: JUMPDEST 00003258: POP 00003259: PUSH0 0000325a: MLOAD 0000325b: PUSH1 0x20 0000325d: PUSH2 0x5c7d 00003260: PUSH0 00003261: CODECOPY 00003262: PUSH0 00003263: MLOAD 00003264: SWAP1 00003265: PUSH0 00003266: MSTORE 00003267: SLOAD 00003268: PUSH2 0x2710 0000326b: PUSH2 0x32a4 0000326e: PUSH0 0000326f: MLOAD 00003270: PUSH1 0x20 00003272: PUSH2 0x5a7d 00003275: PUSH0 00003276: CODECOPY 00003277: PUSH0 00003278: MLOAD 00003279: SWAP1 0000327a: PUSH0 0000327b: MSTORE 0000327c: SLOAD 0000327d: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea09 0000329e: SLOAD 0000329f: SWAP1 000032a0: PUSH2 0x45e0 000032a3: JUMP 000032a4: JUMPDEST 000032a5: DIV 000032a6: GT 000032a7: ISZERO 000032a8: PUSH2 0x31ae 000032ab: JUMP 000032ac: JUMPDEST 000032ad: POP 000032ae: DUP1 000032af: MLOAD 000032b0: DUP1 000032b1: PUSH2 0x32bb 000032b4: JUMPI 000032b5: JUMPDEST 000032b6: POP 000032b7: PUSH2 0x3193 000032ba: JUMP 000032bb: JUMPDEST 000032bc: PUSH2 0x32d3 000032bf: SWAP1 000032c0: PUSH0 000032c1: MLOAD 000032c2: PUSH1 0x20 000032c4: PUSH2 0x5c7d 000032c7: PUSH0 000032c8: CODECOPY 000032c9: PUSH0 000032ca: MLOAD 000032cb: SWAP1 000032cc: PUSH0 000032cd: MSTORE 000032ce: SLOAD 000032cf: PUSH2 0x45c6 000032d2: JUMP 000032d3: JUMPDEST 000032d4: PUSH0 000032d5: MLOAD 000032d6: PUSH1 0x20 000032d8: PUSH2 0x5c7d 000032db: PUSH0 000032dc: CODECOPY 000032dd: PUSH0 000032de: MLOAD 000032df: SWAP1 000032e0: PUSH0 000032e1: MSTORE 000032e2: SSTORE 000032e3: DUP11 000032e4: PUSH2 0x32b5 000032e7: JUMP 000032e8: JUMPDEST 000032e9: DUP3 000032ea: PUSH4 0xc8a198d9 000032ef: PUSH1 0xe0 000032f1: SHL 000032f2: PUSH0 000032f3: MSTORE 000032f4: PUSH1 0x04 000032f6: MSTORE 000032f7: PUSH1 0x24 000032f9: MSTORE 000032fa: PUSH1 0x44 000032fc: PUSH0 000032fd: REVERT 000032fe: JUMPDEST 000032ff: PUSH2 0x3307 00003302: SWAP2 00003303: PUSH2 0x45d3 00003306: JUMP 00003307: JUMPDEST 00003308: PUSH0 00003309: MLOAD 0000330a: PUSH1 0x20 0000330c: PUSH2 0x5cbd 0000330f: PUSH0 00003310: CODECOPY 00003311: PUSH0 00003312: MLOAD 00003313: SWAP1 00003314: PUSH0 00003315: MSTORE 00003316: SSTORE 00003317: DUP10 00003318: DUP1 00003319: PUSH2 0x30e9 0000331c: JUMP 0000331d: JUMPDEST 0000331e: DUP5 0000331f: MLOAD 00003320: DUP7 00003321: MLOAD 00003322: PUSH1 0x40 00003324: MLOAD 00003325: PUSH4 0x463fc77f 0000332a: PUSH1 0xe1 0000332c: SHL 0000332d: DUP2 0000332e: MSTORE 0000332f: PUSH1 0x04 00003331: DUP2 00003332: ADD 00003333: DUP8 00003334: SWAP1 00003335: MSTORE 00003336: PUSH1 0x24 00003338: DUP2 00003339: ADD 0000333a: SWAP3 0000333b: SWAP1 0000333c: SWAP3 0000333d: MSTORE 0000333e: PUSH1 0x44 00003340: DUP3 00003341: ADD 00003342: MSTORE 00003343: PUSH1 0x64 00003345: DUP2 00003346: ADD 00003347: SWAP2 00003348: SWAP1 00003349: SWAP2 0000334a: MSTORE 0000334b: PUSH1 0x84 0000334d: SWAP1 0000334e: REVERT 0000334f: JUMPDEST 00003350: PUSH2 0x3371 00003353: DUP10 00003354: PUSH1 0x40 00003356: PUSH2 0x3368 00003359: PUSH1 0x60 0000335b: DUP4 0000335c: ADD 0000335d: MLOAD 0000335e: PUSH1 0x20 00003360: DUP5 00003361: ADD 00003362: MLOAD 00003363: SWAP1 00003364: PUSH2 0x45c6 00003367: JUMP 00003368: JUMPDEST 00003369: SWAP2 0000336a: ADD 0000336b: MLOAD 0000336c: SWAP1 0000336d: PUSH2 0x45c6 00003370: JUMP 00003371: JUMPDEST 00003372: SWAP1 00003373: PUSH1 0x01 00003375: DUP3 00003376: ADD 00003377: DUP1 00003378: SWAP3 00003379: GT 0000337a: PUSH2 0x2636 0000337d: JUMPI 0000337e: PUSH1 0xa4 00003380: SWAP2 00003381: PUSH1 0x40 00003383: MLOAD 00003384: SWAP2 00003385: PUSH4 0x1606f639 0000338a: PUSH1 0xe2 0000338c: SHL 0000338d: DUP4 0000338e: MSTORE 0000338f: PUSH1 0x60 00003391: PUSH1 0x04 00003393: DUP5 00003394: ADD 00003395: MSTORE 00003396: PUSH1 0x08 00003398: PUSH1 0x64 0000339a: DUP5 0000339b: ADD 0000339c: MSTORE 0000339d: PUSH8 0x185b5bdd5b9d1311 000033a6: PUSH1 0xc2 000033a8: SHL 000033a9: PUSH1 0x84 000033ab: DUP5 000033ac: ADD 000033ad: MSTORE 000033ae: PUSH1 0x24 000033b0: DUP4 000033b1: ADD 000033b2: MSTORE 000033b3: PUSH1 0x44 000033b5: DUP3 000033b6: ADD 000033b7: MSTORE 000033b8: REVERT 000033b9: JUMPDEST 000033ba: PUSH2 0x33d3 000033bd: SWAP2 000033be: SWAP10 000033bf: POP 000033c0: PUSH1 0xc0 000033c2: RETURNDATASIZE 000033c3: PUSH1 0xc0 000033c5: GT 000033c6: PUSH2 0x0d86 000033c9: JUMPI 000033ca: PUSH2 0x0d78 000033cd: DUP2 000033ce: DUP4 000033cf: PUSH2 0x408d 000033d2: JUMP 000033d3: JUMPDEST 000033d4: SWAP8 000033d5: DUP11 000033d6: PUSH2 0x30b0 000033d9: JUMP 000033da: JUMPDEST 000033db: DUP6 000033dc: DUP9 000033dd: PUSH4 0x1c6768ad 000033e2: PUSH1 0xe2 000033e4: SHL 000033e5: PUSH0 000033e6: MSTORE 000033e7: PUSH1 0x04 000033e9: MSTORE 000033ea: PUSH1 0x24 000033ec: MSTORE 000033ed: PUSH1 0x44 000033ef: PUSH0 000033f0: REVERT 000033f1: JUMPDEST 000033f2: PUSH4 0x31ad2c0f 000033f7: PUSH1 0xe1 000033f9: SHL 000033fa: PUSH0 000033fb: MSTORE 000033fc: PUSH1 0x04 000033fe: PUSH0 000033ff: REVERT 00003400: JUMPDEST 00003401: CALLVALUE 00003402: PUSH2 0x03b2 00003405: JUMPI 00003406: PUSH1 0x20 00003408: CALLDATASIZE 00003409: PUSH1 0x03 0000340b: NOT 0000340c: ADD 0000340d: SLT 0000340e: PUSH2 0x03b2 00003411: JUMPI 00003412: PUSH2 0x3419 00003415: PUSH2 0x43b1 00003418: JUMP 00003419: JUMPDEST 0000341a: POP 0000341b: PUSH2 0x046f 0000341e: PUSH2 0x0413 00003421: PUSH2 0x25a8 00003424: PUSH1 0x04 00003426: CALLDATALOAD 00003427: PUSH2 0x43ed 0000342a: JUMP 0000342b: JUMPDEST 0000342c: CALLVALUE 0000342d: PUSH2 0x03b2 00003430: JUMPI 00003431: PUSH1 0x40 00003433: CALLDATASIZE 00003434: PUSH1 0x03 00003436: NOT 00003437: ADD 00003438: SLT 00003439: PUSH2 0x03b2 0000343c: JUMPI 0000343d: PUSH2 0x0eab 00003440: PUSH2 0x3447 00003443: PUSH2 0x3fa8 00003446: JUMP 00003447: JUMPDEST 00003448: PUSH1 0x24 0000344a: CALLDATALOAD 0000344b: SWAP1 0000344c: CALLER 0000344d: PUSH2 0x56b8 00003450: JUMP 00003451: JUMPDEST 00003452: CALLVALUE 00003453: PUSH2 0x03b2 00003456: JUMPI 00003457: PUSH0 00003458: CALLDATASIZE 00003459: PUSH1 0x03 0000345b: NOT 0000345c: ADD 0000345d: SLT 0000345e: PUSH2 0x03b2 00003461: JUMPI 00003462: PUSH1 0x40 00003464: MLOAD 00003465: PUSH0 00003466: PUSH0 00003467: MLOAD 00003468: PUSH1 0x20 0000346a: PUSH2 0x5a9d 0000346d: PUSH0 0000346e: CODECOPY 0000346f: PUSH0 00003470: MLOAD 00003471: SWAP1 00003472: PUSH0 00003473: MSTORE 00003474: SLOAD 00003475: PUSH2 0x347d 00003478: DUP2 00003479: PUSH2 0x41fd 0000347c: JUMP 0000347d: JUMPDEST 0000347e: DUP1 0000347f: DUP5 00003480: MSTORE 00003481: SWAP1 00003482: PUSH1 0x01 00003484: DUP2 00003485: AND 00003486: SWAP1 00003487: DUP2 00003488: ISZERO 00003489: PUSH2 0x10c5 0000348c: JUMPI 0000348d: POP 0000348e: PUSH1 0x01 00003490: EQ 00003491: PUSH2 0x34a4 00003494: JUMPI 00003495: PUSH2 0x046f 00003498: DUP4 00003499: PUSH2 0x1047 0000349c: DUP2 0000349d: DUP6 0000349e: SUB 0000349f: DUP3 000034a0: PUSH2 0x408d 000034a3: JUMP 000034a4: JUMPDEST 000034a5: PUSH0 000034a6: MLOAD 000034a7: PUSH1 0x20 000034a9: PUSH2 0x5a9d 000034ac: PUSH0 000034ad: CODECOPY 000034ae: PUSH0 000034af: MLOAD 000034b0: SWAP1 000034b1: PUSH0 000034b2: MSTORE 000034b3: PUSH0 000034b4: SWAP1 000034b5: DUP2 000034b6: MSTORE 000034b7: PUSH32 0x2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0 000034d8: SWAP4 000034d9: SWAP3 000034da: POP 000034db: SWAP1 000034dc: JUMPDEST 000034dd: DUP1 000034de: DUP3 000034df: LT 000034e0: PUSH2 0x34f4 000034e3: JUMPI 000034e4: POP 000034e5: SWAP1 000034e6: SWAP2 000034e7: POP 000034e8: DUP2 000034e9: ADD 000034ea: PUSH1 0x20 000034ec: ADD 000034ed: PUSH2 0x1047 000034f0: PUSH2 0x1037 000034f3: JUMP 000034f4: JUMPDEST 000034f5: SWAP2 000034f6: SWAP3 000034f7: PUSH1 0x01 000034f9: DUP2 000034fa: PUSH1 0x20 000034fc: SWAP3 000034fd: SLOAD 000034fe: DUP4 000034ff: DUP6 00003500: DUP9 00003501: ADD 00003502: ADD 00003503: MSTORE 00003504: ADD 00003505: SWAP2 00003506: ADD 00003507: SWAP1 00003508: SWAP3 00003509: SWAP2 0000350a: PUSH2 0x34dc 0000350d: JUMP 0000350e: JUMPDEST 0000350f: CALLVALUE 00003510: PUSH2 0x03b2 00003513: JUMPI 00003514: PUSH1 0x20 00003516: CALLDATASIZE 00003517: PUSH1 0x03 00003519: NOT 0000351a: ADD 0000351b: SLT 0000351c: PUSH2 0x03b2 0000351f: JUMPI 00003520: PUSH1 0x04 00003522: CALLDATALOAD 00003523: PUSH4 0xffffffff 00003528: PUSH1 0xe0 0000352a: SHL 0000352b: DUP2 0000352c: AND 0000352d: DUP1 0000352e: SWAP2 0000352f: SUB 00003530: PUSH2 0x03b2 00003533: JUMPI 00003534: PUSH1 0x20 00003536: SWAP1 00003537: PUSH4 0x7965db0b 0000353c: PUSH1 0xe0 0000353e: SHL 0000353f: DUP2 00003540: EQ 00003541: SWAP1 00003542: DUP2 00003543: ISZERO 00003544: PUSH2 0x3553 00003547: JUMPI 00003548: JUMPDEST 00003549: POP 0000354a: PUSH1 0x40 0000354c: MLOAD 0000354d: SWAP1 0000354e: ISZERO 0000354f: ISZERO 00003550: DUP2 00003551: MSTORE 00003552: RETURN 00003553: JUMPDEST 00003554: PUSH4 0x01ffc9a7 00003559: PUSH1 0xe0 0000355b: SHL 0000355c: EQ 0000355d: SWAP1 0000355e: POP 0000355f: DUP3 00003560: PUSH2 0x3548 00003563: JUMP 00003564: JUMPDEST 00003565: CALLVALUE 00003566: PUSH2 0x03b2 00003569: JUMPI 0000356a: PUSH1 0x20 0000356c: CALLDATASIZE 0000356d: PUSH1 0x03 0000356f: NOT 00003570: ADD 00003571: SLT 00003572: PUSH2 0x03b2 00003575: JUMPI 00003576: PUSH1 0x04 00003578: CALLDATALOAD 00003579: PUSH8 0xffffffffffffffff 00003582: DUP2 00003583: GT 00003584: PUSH2 0x03b2 00003587: JUMPI 00003588: DUP1 00003589: PUSH1 0x04 0000358b: ADD 0000358c: SWAP1 0000358d: PUSH2 0x0140 00003590: PUSH1 0x03 00003592: NOT 00003593: DUP3 00003594: CALLDATASIZE 00003595: SUB 00003596: ADD 00003597: SLT 00003598: PUSH2 0x03b2 0000359b: JUMPI 0000359c: PUSH0 0000359d: MLOAD 0000359e: PUSH1 0x20 000035a0: PUSH2 0x5d7d 000035a3: PUSH0 000035a4: CODECOPY 000035a5: PUSH0 000035a6: MLOAD 000035a7: SWAP1 000035a8: PUSH0 000035a9: MSTORE 000035aa: SLOAD 000035ab: SWAP2 000035ac: PUSH1 0xff 000035ae: DUP4 000035af: PUSH1 0x40 000035b1: SHR 000035b2: AND 000035b3: ISZERO 000035b4: SWAP3 000035b5: PUSH8 0xffffffffffffffff 000035be: DUP2 000035bf: AND 000035c0: DUP1 000035c1: ISZERO 000035c2: SWAP1 000035c3: DUP2 000035c4: PUSH2 0x3f7c 000035c7: JUMPI 000035c8: JUMPDEST 000035c9: PUSH1 0x01 000035cb: EQ 000035cc: SWAP1 000035cd: DUP2 000035ce: PUSH2 0x3f72 000035d1: JUMPI 000035d2: JUMPDEST 000035d3: ISZERO 000035d4: SWAP1 000035d5: DUP2 000035d6: PUSH2 0x3f69 000035d9: JUMPI 000035da: JUMPDEST 000035db: POP 000035dc: PUSH2 0x3f5a 000035df: JUMPI 000035e0: PUSH8 0xffffffffffffffff 000035e9: NOT 000035ea: DUP2 000035eb: AND 000035ec: PUSH1 0x01 000035ee: OR 000035ef: PUSH0 000035f0: MLOAD 000035f1: PUSH1 0x20 000035f3: PUSH2 0x5d7d 000035f6: PUSH0 000035f7: CODECOPY 000035f8: PUSH0 000035f9: MLOAD 000035fa: SWAP1 000035fb: PUSH0 000035fc: MSTORE 000035fd: SSTORE 000035fe: DUP4 000035ff: PUSH2 0x3f2e 00003602: JUMPI 00003603: JUMPDEST 00003604: POP 00003605: PUSH2 0x3636 00003608: PUSH2 0x3611 0000360b: DUP3 0000360c: DUP1 0000360d: PUSH2 0x41a8 00003610: JUMP 00003611: JUMPDEST 00003612: PUSH2 0x362e 00003615: PUSH2 0x3624 00003618: PUSH1 0x24 0000361a: DUP8 0000361b: SWAP6 0000361c: SWAP5 0000361d: SWAP6 0000361e: ADD 0000361f: DUP7 00003620: PUSH2 0x41a8 00003623: JUMP 00003624: JUMPDEST 00003625: SWAP5 00003626: SWAP1 00003627: SWAP3 00003628: CALLDATASIZE 00003629: SWAP2 0000362a: PUSH2 0x4144 0000362d: JUMP 0000362e: JUMPDEST 0000362f: SWAP3 00003630: CALLDATASIZE 00003631: SWAP2 00003632: PUSH2 0x4144 00003635: JUMP 00003636: JUMPDEST 00003637: SWAP1 00003638: PUSH2 0x363f 0000363b: PUSH2 0x568d 0000363e: JUMP 0000363f: JUMPDEST 00003640: PUSH2 0x3647 00003643: PUSH2 0x568d 00003646: JUMP 00003647: JUMPDEST 00003648: DUP1 00003649: MLOAD 0000364a: SWAP1 0000364b: PUSH8 0xffffffffffffffff 00003654: DUP3 00003655: GT 00003656: PUSH2 0x2588 00003659: JUMPI 0000365a: DUP2 0000365b: SWAP1 0000365c: PUSH2 0x3672 0000365f: PUSH0 00003660: MLOAD 00003661: PUSH1 0x20 00003663: PUSH2 0x5a9d 00003666: PUSH0 00003667: CODECOPY 00003668: PUSH0 00003669: MLOAD 0000366a: SWAP1 0000366b: PUSH0 0000366c: MSTORE 0000366d: SLOAD 0000366e: PUSH2 0x41fd 00003671: JUMP 00003672: JUMPDEST 00003673: PUSH1 0x1f 00003675: DUP2 00003676: GT 00003677: PUSH2 0x3eb4 0000367a: JUMPI 0000367b: JUMPDEST 0000367c: POP 0000367d: PUSH1 0x20 0000367f: SWAP1 00003680: PUSH1 0x1f 00003682: DUP4 00003683: GT 00003684: PUSH1 0x01 00003686: EQ 00003687: PUSH2 0x3e36 0000368a: JUMPI 0000368b: PUSH0 0000368c: SWAP3 0000368d: PUSH2 0x3e2b 00003690: JUMPI 00003691: JUMPDEST 00003692: POP 00003693: POP 00003694: DUP2 00003695: PUSH1 0x01 00003697: SHL 00003698: SWAP2 00003699: PUSH0 0000369a: NOT 0000369b: SWAP1 0000369c: PUSH1 0x03 0000369e: SHL 0000369f: SHR 000036a0: NOT 000036a1: AND 000036a2: OR 000036a3: PUSH0 000036a4: MLOAD 000036a5: PUSH1 0x20 000036a7: PUSH2 0x5a9d 000036aa: PUSH0 000036ab: CODECOPY 000036ac: PUSH0 000036ad: MLOAD 000036ae: SWAP1 000036af: PUSH0 000036b0: MSTORE 000036b1: SSTORE 000036b2: JUMPDEST 000036b3: DUP1 000036b4: MLOAD 000036b5: SWAP1 000036b6: PUSH8 0xffffffffffffffff 000036bf: DUP3 000036c0: GT 000036c1: PUSH2 0x2588 000036c4: JUMPI 000036c5: PUSH2 0x36db 000036c8: PUSH0 000036c9: MLOAD 000036ca: PUSH1 0x20 000036cc: PUSH2 0x5b1d 000036cf: PUSH0 000036d0: CODECOPY 000036d1: PUSH0 000036d2: MLOAD 000036d3: SWAP1 000036d4: PUSH0 000036d5: MSTORE 000036d6: SLOAD 000036d7: PUSH2 0x41fd 000036da: JUMP 000036db: JUMPDEST 000036dc: PUSH1 0x1f 000036de: DUP2 000036df: GT 000036e0: PUSH2 0x3dbc 000036e3: JUMPI 000036e4: JUMPDEST 000036e5: POP 000036e6: PUSH1 0x20 000036e8: SWAP1 000036e9: PUSH1 0x1f 000036eb: DUP4 000036ec: GT 000036ed: PUSH1 0x01 000036ef: EQ 000036f0: PUSH2 0x3d38 000036f3: JUMPI 000036f4: SWAP2 000036f5: DUP1 000036f6: PUSH2 0x3733 000036f9: SWAP5 000036fa: SWAP3 000036fb: PUSH2 0x372c 000036fe: SWAP5 000036ff: PUSH0 00003700: SWAP3 00003701: PUSH2 0x3d2d 00003704: JUMPI 00003705: JUMPDEST 00003706: POP 00003707: POP 00003708: DUP2 00003709: PUSH1 0x01 0000370b: SHL 0000370c: SWAP2 0000370d: PUSH0 0000370e: NOT 0000370f: SWAP1 00003710: PUSH1 0x03 00003712: SHL 00003713: SHR 00003714: NOT 00003715: AND 00003716: OR 00003717: PUSH0 00003718: MLOAD 00003719: PUSH1 0x20 0000371b: PUSH2 0x5b1d 0000371e: PUSH0 0000371f: CODECOPY 00003720: PUSH0 00003721: MLOAD 00003722: SWAP1 00003723: PUSH0 00003724: MSTORE 00003725: SSTORE 00003726: JUMPDEST 00003727: DUP1 00003728: PUSH2 0x41a8 0000372b: JUMP 0000372c: JUMPDEST 0000372d: CALLDATASIZE 0000372e: SWAP2 0000372f: PUSH2 0x4144 00003732: JUMP 00003733: JUMPDEST 00003734: SWAP2 00003735: PUSH2 0x373c 00003738: PUSH2 0x568d 0000373b: JUMP 0000373c: JUMPDEST 0000373d: PUSH1 0x40 0000373f: SWAP2 00003740: DUP3 00003741: MLOAD 00003742: SWAP4 00003743: PUSH2 0x374c 00003746: DUP5 00003747: DUP7 00003748: PUSH2 0x408d 0000374b: JUMP 0000374c: JUMPDEST 0000374d: PUSH1 0x01 0000374f: DUP6 00003750: MSTORE 00003751: PUSH1 0x31 00003753: PUSH1 0xf8 00003755: SHL 00003756: PUSH1 0x20 00003758: DUP7 00003759: ADD 0000375a: MSTORE 0000375b: PUSH2 0x3762 0000375e: PUSH2 0x568d 00003761: JUMP 00003762: JUMPDEST 00003763: DUP1 00003764: MLOAD 00003765: SWAP1 00003766: PUSH8 0xffffffffffffffff 0000376f: DUP3 00003770: GT 00003771: PUSH2 0x2588 00003774: JUMPI 00003775: DUP2 00003776: SWAP1 00003777: PUSH2 0x378d 0000377a: PUSH0 0000377b: MLOAD 0000377c: PUSH1 0x20 0000377e: PUSH2 0x5add 00003781: PUSH0 00003782: CODECOPY 00003783: PUSH0 00003784: MLOAD 00003785: SWAP1 00003786: PUSH0 00003787: MSTORE 00003788: SLOAD 00003789: PUSH2 0x41fd 0000378c: JUMP 0000378d: JUMPDEST 0000378e: PUSH1 0x1f 00003790: DUP2 00003791: GT 00003792: PUSH2 0x3cb3 00003795: JUMPI 00003796: JUMPDEST 00003797: POP 00003798: PUSH1 0x20 0000379a: SWAP1 0000379b: PUSH1 0x1f 0000379d: DUP4 0000379e: GT 0000379f: PUSH1 0x01 000037a1: EQ 000037a2: PUSH2 0x3c35 000037a5: JUMPI 000037a6: PUSH0 000037a7: SWAP3 000037a8: PUSH2 0x3c2a 000037ab: JUMPI 000037ac: JUMPDEST 000037ad: POP 000037ae: POP 000037af: DUP2 000037b0: PUSH1 0x01 000037b2: SHL 000037b3: SWAP2 000037b4: PUSH0 000037b5: NOT 000037b6: SWAP1 000037b7: PUSH1 0x03 000037b9: SHL 000037ba: SHR 000037bb: NOT 000037bc: AND 000037bd: OR 000037be: PUSH0 000037bf: MLOAD 000037c0: PUSH1 0x20 000037c2: PUSH2 0x5add 000037c5: PUSH0 000037c6: CODECOPY 000037c7: PUSH0 000037c8: MLOAD 000037c9: SWAP1 000037ca: PUSH0 000037cb: MSTORE 000037cc: SSTORE 000037cd: JUMPDEST 000037ce: DUP4 000037cf: MLOAD 000037d0: PUSH8 0xffffffffffffffff 000037d9: DUP2 000037da: GT 000037db: PUSH2 0x2588 000037de: JUMPI 000037df: PUSH2 0x37f5 000037e2: PUSH0 000037e3: MLOAD 000037e4: PUSH1 0x20 000037e6: PUSH2 0x5b7d 000037e9: PUSH0 000037ea: CODECOPY 000037eb: PUSH0 000037ec: MLOAD 000037ed: SWAP1 000037ee: PUSH0 000037ef: MSTORE 000037f0: SLOAD 000037f1: PUSH2 0x41fd 000037f4: JUMP 000037f5: JUMPDEST 000037f6: PUSH1 0x1f 000037f8: DUP2 000037f9: GT 000037fa: PUSH2 0x3bbb 000037fd: JUMPI 000037fe: JUMPDEST 000037ff: POP 00003800: PUSH1 0x20 00003802: SWAP5 00003803: PUSH1 0x1f 00003805: DUP3 00003806: GT 00003807: PUSH1 0x01 00003809: EQ 0000380a: PUSH2 0x3b40 0000380d: JUMPI 0000380e: SWAP5 0000380f: DUP2 00003810: SWAP3 00003811: SWAP4 00003812: SWAP5 00003813: SWAP6 00003814: PUSH0 00003815: SWAP3 00003816: PUSH2 0x3b35 00003819: JUMPI 0000381a: JUMPDEST 0000381b: POP 0000381c: POP 0000381d: DUP2 0000381e: PUSH1 0x01 00003820: SHL 00003821: SWAP2 00003822: PUSH0 00003823: NOT 00003824: SWAP1 00003825: PUSH1 0x03 00003827: SHL 00003828: SHR 00003829: NOT 0000382a: AND 0000382b: OR 0000382c: PUSH0 0000382d: MLOAD 0000382e: PUSH1 0x20 00003830: PUSH2 0x5b7d 00003833: PUSH0 00003834: CODECOPY 00003835: PUSH0 00003836: MLOAD 00003837: SWAP1 00003838: PUSH0 00003839: MSTORE 0000383a: SSTORE 0000383b: JUMPDEST 0000383c: PUSH0 0000383d: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100 0000385e: SSTORE 0000385f: PUSH0 00003860: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101 00003881: SSTORE 00003882: PUSH2 0x3889 00003885: PUSH2 0x568d 00003888: JUMP 00003889: JUMPDEST 0000388a: PUSH2 0x3891 0000388d: PUSH2 0x568d 00003890: JUMP 00003891: JUMPDEST 00003892: PUSH2 0x38fb 00003895: PUSH2 0x38a0 00003898: PUSH1 0x84 0000389a: DUP4 0000389b: ADD 0000389c: PUSH2 0x41db 0000389f: JUMP 000038a0: JUMPDEST 000038a1: PUSH1 0xff 000038a3: DUP1 000038a4: PUSH2 0x38af 000038a7: PUSH1 0xa4 000038a9: DUP7 000038aa: ADD 000038ab: PUSH2 0x41db 000038ae: JUMP 000038af: JUMPDEST 000038b0: SWAP3 000038b1: PUSH2 0x38b8 000038b4: PUSH2 0x568d 000038b7: JUMP 000038b8: JUMPDEST 000038b9: PUSH2 0x38c0 000038bc: PUSH2 0x568d 000038bf: JUMP 000038c0: JUMPDEST 000038c1: AND 000038c2: SWAP2 000038c3: DUP3 000038c4: PUSH2 0xff00 000038c7: PUSH0 000038c8: MLOAD 000038c9: PUSH1 0x20 000038cb: PUSH2 0x5afd 000038ce: PUSH0 000038cf: CODECOPY 000038d0: PUSH0 000038d1: MLOAD 000038d2: SWAP1 000038d3: PUSH0 000038d4: MSTORE 000038d5: SLOAD 000038d6: SWAP3 000038d7: PUSH1 0x08 000038d9: SHL 000038da: AND 000038db: SWAP2 000038dc: PUSH2 0xffff 000038df: NOT 000038e0: AND 000038e1: OR 000038e2: OR 000038e3: DUP1 000038e4: PUSH0 000038e5: MLOAD 000038e6: PUSH1 0x20 000038e8: PUSH2 0x5afd 000038eb: PUSH0 000038ec: CODECOPY 000038ed: PUSH0 000038ee: MLOAD 000038ef: SWAP1 000038f0: PUSH0 000038f1: MSTORE 000038f2: SSTORE 000038f3: PUSH1 0x08 000038f5: SHR 000038f6: AND 000038f7: PUSH2 0x45d3 000038fa: JUMP 000038fb: JUMPDEST 000038fc: PUSH1 0x4d 000038fe: DUP2 000038ff: GT 00003900: PUSH2 0x2636 00003903: JUMPI 00003904: PUSH1 0x0a 00003906: EXP 00003907: PUSH0 00003908: MLOAD 00003909: PUSH1 0x20 0000390b: PUSH2 0x5cdd 0000390e: PUSH0 0000390f: CODECOPY 00003910: PUSH0 00003911: MLOAD 00003912: SWAP1 00003913: PUSH0 00003914: MSTORE 00003915: SSTORE 00003916: PUSH2 0x391d 00003919: PUSH2 0x568d 0000391c: JUMP 0000391d: JUMPDEST 0000391e: PUSH2 0x3925 00003921: PUSH2 0x568d 00003924: JUMP 00003925: JUMPDEST 00003926: PUSH2 0x394f 00003929: PUSH32 0x0000000000000000000000000000000000000000000000000000000000001c20 0000394a: NUMBER 0000394b: PUSH2 0x45c6 0000394e: JUMP 0000394f: JUMPDEST 00003950: PUSH0 00003951: MLOAD 00003952: PUSH1 0x20 00003954: PUSH2 0x5d3d 00003957: PUSH0 00003958: CODECOPY 00003959: PUSH0 0000395a: MLOAD 0000395b: SWAP1 0000395c: PUSH0 0000395d: MSTORE 0000395e: SSTORE 0000395f: PUSH2 0x3972 00003962: PUSH2 0x396d 00003965: PUSH1 0xe4 00003967: DUP4 00003968: ADD 00003969: PUSH2 0x41e9 0000396c: JUMP 0000396d: JUMPDEST 0000396e: PUSH2 0x465b 00003971: JUMP 00003972: JUMPDEST 00003973: POP 00003974: PUSH2 0x3988 00003977: PUSH2 0x3983 0000397a: PUSH2 0x0104 0000397d: DUP4 0000397e: ADD 0000397f: PUSH2 0x41e9 00003982: JUMP 00003983: JUMPDEST 00003984: PUSH2 0x470a 00003987: JUMP 00003988: JUMPDEST 00003989: POP 0000398a: PUSH1 0x44 0000398c: DUP2 0000398d: ADD 0000398e: CALLDATALOAD 0000398f: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0b 000039b0: SSTORE 000039b1: PUSH1 0x64 000039b3: DUP2 000039b4: ADD 000039b5: PUSH1 0x01 000039b7: PUSH1 0x01 000039b9: PUSH1 0xa0 000039bb: SHL 000039bc: SUB 000039bd: PUSH2 0x39c5 000039c0: DUP3 000039c1: PUSH2 0x41e9 000039c4: JUMP 000039c5: JUMPDEST 000039c6: AND 000039c7: ISZERO 000039c8: PUSH2 0x3b08 000039cb: JUMPI 000039cc: PUSH1 0xc4 000039ce: DUP3 000039cf: ADD 000039d0: SWAP1 000039d1: PUSH1 0x01 000039d3: PUSH1 0x01 000039d5: PUSH1 0xa0 000039d7: SHL 000039d8: SUB 000039d9: PUSH2 0x39e1 000039dc: DUP4 000039dd: PUSH2 0x41e9 000039e0: JUMP 000039e1: JUMPDEST 000039e2: AND 000039e3: ISZERO 000039e4: PUSH2 0x3ad3 000039e7: JUMPI 000039e8: PUSH2 0x3a29 000039eb: PUSH2 0x0124 000039ee: SWAP4 000039ef: SWAP3 000039f0: PUSH1 0x01 000039f2: PUSH1 0x01 000039f4: PUSH1 0xa0 000039f6: SHL 000039f7: SUB 000039f8: PUSH2 0x3a01 000039fb: DUP2 000039fc: SWAP5 000039fd: PUSH2 0x41e9 00003a00: JUMP 00003a01: JUMPDEST 00003a02: AND 00003a03: DUP4 00003a04: NOT 00003a05: PUSH0 00003a06: MLOAD 00003a07: PUSH1 0x20 00003a09: PUSH2 0x5d1d 00003a0c: PUSH0 00003a0d: CODECOPY 00003a0e: PUSH0 00003a0f: MLOAD 00003a10: SWAP1 00003a11: PUSH0 00003a12: MSTORE 00003a13: SLOAD 00003a14: AND 00003a15: OR 00003a16: PUSH0 00003a17: MLOAD 00003a18: PUSH1 0x20 00003a1a: PUSH2 0x5d1d 00003a1d: PUSH0 00003a1e: CODECOPY 00003a1f: PUSH0 00003a20: MLOAD 00003a21: SWAP1 00003a22: PUSH0 00003a23: MSTORE 00003a24: SSTORE 00003a25: PUSH2 0x41e9 00003a28: JUMP 00003a29: JUMPDEST 00003a2a: AND 00003a2b: PUSH1 0x01 00003a2d: PUSH1 0x01 00003a2f: PUSH1 0xa0 00003a31: SHL 00003a32: SUB 00003a33: NOT 00003a34: PUSH0 00003a35: MLOAD 00003a36: PUSH1 0x20 00003a38: PUSH2 0x5bbd 00003a3b: PUSH0 00003a3c: CODECOPY 00003a3d: PUSH0 00003a3e: MLOAD 00003a3f: SWAP1 00003a40: PUSH0 00003a41: MSTORE 00003a42: SLOAD 00003a43: AND 00003a44: OR 00003a45: PUSH0 00003a46: MLOAD 00003a47: PUSH1 0x20 00003a49: PUSH2 0x5bbd 00003a4c: PUSH0 00003a4d: CODECOPY 00003a4e: PUSH0 00003a4f: MLOAD 00003a50: SWAP1 00003a51: PUSH0 00003a52: MSTORE 00003a53: SSTORE 00003a54: ADD 00003a55: CALLDATALOAD 00003a56: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea0d 00003a77: SSTORE 00003a78: PUSH2 0x3a7d 00003a7b: JUMPI 00003a7c: STOP 00003a7d: JUMPDEST 00003a7e: PUSH1 0x20 00003a80: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 00003aa1: SWAP2 00003aa2: PUSH9 0xff0000000000000000 00003aac: NOT 00003aad: PUSH0 00003aae: MLOAD 00003aaf: PUSH1 0x20 00003ab1: PUSH2 0x5d7d 00003ab4: PUSH0 00003ab5: CODECOPY 00003ab6: PUSH0 00003ab7: MLOAD 00003ab8: SWAP1 00003ab9: PUSH0 00003aba: MSTORE 00003abb: SLOAD 00003abc: AND 00003abd: PUSH0 00003abe: MLOAD 00003abf: PUSH1 0x20 00003ac1: PUSH2 0x5d7d 00003ac4: PUSH0 00003ac5: CODECOPY 00003ac6: PUSH0 00003ac7: MLOAD 00003ac8: SWAP1 00003ac9: PUSH0 00003aca: MSTORE 00003acb: SSTORE 00003acc: MLOAD 00003acd: PUSH1 0x01 00003acf: DUP2 00003ad0: MSTORE 00003ad1: LOG1 00003ad2: STOP 00003ad3: JUMPDEST 00003ad4: DUP5 00003ad5: MLOAD 00003ad6: PUSH4 0x6bc37c5f 00003adb: PUSH1 0xe1 00003add: SHL 00003ade: DUP2 00003adf: MSTORE 00003ae0: PUSH1 0x20 00003ae2: PUSH1 0x04 00003ae4: DUP3 00003ae5: ADD 00003ae6: MSTORE 00003ae7: PUSH1 0x0d 00003ae9: PUSH1 0x24 00003aeb: DUP3 00003aec: ADD 00003aed: MSTORE 00003aee: PUSH13 0x3332b2a1b0b631bab630ba37b9 00003afc: PUSH1 0x99 00003afe: SHL 00003aff: PUSH1 0x44 00003b01: DUP3 00003b02: ADD 00003b03: MSTORE 00003b04: PUSH1 0x64 00003b06: SWAP1 00003b07: REVERT 00003b08: JUMPDEST 00003b09: DUP4 00003b0a: MLOAD 00003b0b: PUSH4 0x6bc37c5f 00003b10: PUSH1 0xe1 00003b12: SHL 00003b13: DUP2 00003b14: MSTORE 00003b15: PUSH1 0x20 00003b17: PUSH1 0x04 00003b19: DUP3 00003b1a: ADD 00003b1b: MSTORE 00003b1c: PUSH1 0x05 00003b1e: PUSH1 0x24 00003b20: DUP3 00003b21: ADD 00003b22: MSTORE 00003b23: PUSH5 0x3a37b5b2b7 00003b29: PUSH1 0xd9 00003b2b: SHL 00003b2c: PUSH1 0x44 00003b2e: DUP3 00003b2f: ADD 00003b30: MSTORE 00003b31: PUSH1 0x64 00003b33: SWAP1 00003b34: REVERT 00003b35: JUMPDEST 00003b36: ADD 00003b37: MLOAD 00003b38: SWAP1 00003b39: POP 00003b3a: DUP6 00003b3b: DUP1 00003b3c: PUSH2 0x381a 00003b3f: JUMP 00003b40: JUMPDEST 00003b41: PUSH1 0x1f 00003b43: NOT 00003b44: DUP3 00003b45: AND 00003b46: SWAP6 00003b47: PUSH0 00003b48: MLOAD 00003b49: PUSH1 0x20 00003b4b: PUSH2 0x5b7d 00003b4e: PUSH0 00003b4f: CODECOPY 00003b50: PUSH0 00003b51: MLOAD 00003b52: SWAP1 00003b53: PUSH0 00003b54: MSTORE 00003b55: PUSH0 00003b56: MSTORE 00003b57: DUP1 00003b58: PUSH0 00003b59: KECCAK256 00003b5a: SWAP2 00003b5b: PUSH0 00003b5c: JUMPDEST 00003b5d: DUP9 00003b5e: DUP2 00003b5f: LT 00003b60: PUSH2 0x3ba3 00003b63: JUMPI 00003b64: POP 00003b65: DUP4 00003b66: PUSH1 0x01 00003b68: SWAP6 00003b69: SWAP7 00003b6a: SWAP8 00003b6b: SWAP9 00003b6c: LT 00003b6d: PUSH2 0x3b8b 00003b70: JUMPI 00003b71: JUMPDEST 00003b72: POP 00003b73: POP 00003b74: POP 00003b75: DUP2 00003b76: SHL 00003b77: ADD 00003b78: PUSH0 00003b79: MLOAD 00003b7a: PUSH1 0x20 00003b7c: PUSH2 0x5b7d 00003b7f: PUSH0 00003b80: CODECOPY 00003b81: PUSH0 00003b82: MLOAD 00003b83: SWAP1 00003b84: PUSH0 00003b85: MSTORE 00003b86: SSTORE 00003b87: PUSH2 0x383b 00003b8a: JUMP 00003b8b: JUMPDEST 00003b8c: ADD 00003b8d: MLOAD 00003b8e: PUSH0 00003b8f: NOT 00003b90: PUSH1 0xf8 00003b92: DUP5 00003b93: PUSH1 0x03 00003b95: SHL 00003b96: AND 00003b97: SHR 00003b98: NOT 00003b99: AND 00003b9a: SWAP1 00003b9b: SSTORE 00003b9c: DUP6 00003b9d: DUP1 00003b9e: DUP1 00003b9f: PUSH2 0x3b71 00003ba2: JUMP 00003ba3: JUMPDEST 00003ba4: SWAP2 00003ba5: SWAP3 00003ba6: PUSH1 0x20 00003ba8: PUSH1 0x01 00003baa: DUP2 00003bab: SWAP3 00003bac: DUP7 00003bad: DUP6 00003bae: ADD 00003baf: MLOAD 00003bb0: DUP2 00003bb1: SSTORE 00003bb2: ADD 00003bb3: SWAP5 00003bb4: ADD 00003bb5: SWAP3 00003bb6: ADD 00003bb7: PUSH2 0x3b5c 00003bba: JUMP 00003bbb: JUMPDEST 00003bbc: PUSH0 00003bbd: MLOAD 00003bbe: PUSH1 0x20 00003bc0: PUSH2 0x5b7d 00003bc3: PUSH0 00003bc4: CODECOPY 00003bc5: PUSH0 00003bc6: MLOAD 00003bc7: SWAP1 00003bc8: PUSH0 00003bc9: MSTORE 00003bca: PUSH0 00003bcb: MSTORE 00003bcc: PUSH32 0x5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75 00003bed: PUSH1 0x1f 00003bef: DUP4 00003bf0: ADD 00003bf1: PUSH1 0x05 00003bf3: SHR 00003bf4: DUP2 00003bf5: ADD 00003bf6: SWAP2 00003bf7: PUSH1 0x20 00003bf9: DUP5 00003bfa: LT 00003bfb: PUSH2 0x3c20 00003bfe: JUMPI 00003bff: JUMPDEST 00003c00: PUSH1 0x1f 00003c02: ADD 00003c03: PUSH1 0x05 00003c05: SHR 00003c06: ADD 00003c07: SWAP1 00003c08: JUMPDEST 00003c09: DUP2 00003c0a: DUP2 00003c0b: LT 00003c0c: PUSH2 0x3c15 00003c0f: JUMPI 00003c10: POP 00003c11: PUSH2 0x37fe 00003c14: JUMP 00003c15: JUMPDEST 00003c16: PUSH0 00003c17: DUP2 00003c18: SSTORE 00003c19: PUSH1 0x01 00003c1b: ADD 00003c1c: PUSH2 0x3c08 00003c1f: JUMP 00003c20: JUMPDEST 00003c21: SWAP1 00003c22: SWAP2 00003c23: POP 00003c24: DUP2 00003c25: SWAP1 00003c26: PUSH2 0x3bff 00003c29: JUMP 00003c2a: JUMPDEST 00003c2b: ADD 00003c2c: MLOAD 00003c2d: SWAP1 00003c2e: POP 00003c2f: DUP7 00003c30: DUP1 00003c31: PUSH2 0x37ac 00003c34: JUMP 00003c35: JUMPDEST 00003c36: PUSH0 00003c37: MLOAD 00003c38: PUSH1 0x20 00003c3a: PUSH2 0x5add 00003c3d: PUSH0 00003c3e: CODECOPY 00003c3f: PUSH0 00003c40: MLOAD 00003c41: SWAP1 00003c42: PUSH0 00003c43: MSTORE 00003c44: PUSH0 00003c45: SWAP1 00003c46: DUP2 00003c47: MSTORE 00003c48: DUP3 00003c49: DUP2 00003c4a: KECCAK256 00003c4b: SWAP4 00003c4c: POP 00003c4d: PUSH1 0x1f 00003c4f: NOT 00003c50: DUP6 00003c51: AND 00003c52: SWAP1 00003c53: JUMPDEST 00003c54: DUP2 00003c55: DUP2 00003c56: LT 00003c57: PUSH2 0x3c9b 00003c5a: JUMPI 00003c5b: POP 00003c5c: SWAP1 00003c5d: DUP5 00003c5e: PUSH1 0x01 00003c60: SWAP6 00003c61: SWAP5 00003c62: SWAP4 00003c63: SWAP3 00003c64: LT 00003c65: PUSH2 0x3c83 00003c68: JUMPI 00003c69: JUMPDEST 00003c6a: POP 00003c6b: POP 00003c6c: POP 00003c6d: DUP2 00003c6e: SHL 00003c6f: ADD 00003c70: PUSH0 00003c71: MLOAD 00003c72: PUSH1 0x20 00003c74: PUSH2 0x5add 00003c77: PUSH0 00003c78: CODECOPY 00003c79: PUSH0 00003c7a: MLOAD 00003c7b: SWAP1 00003c7c: PUSH0 00003c7d: MSTORE 00003c7e: SSTORE 00003c7f: PUSH2 0x37cd 00003c82: JUMP 00003c83: JUMPDEST 00003c84: ADD 00003c85: MLOAD 00003c86: PUSH0 00003c87: NOT 00003c88: PUSH1 0xf8 00003c8a: DUP5 00003c8b: PUSH1 0x03 00003c8d: SHL 00003c8e: AND 00003c8f: SHR 00003c90: NOT 00003c91: AND 00003c92: SWAP1 00003c93: SSTORE 00003c94: DUP7 00003c95: DUP1 00003c96: DUP1 00003c97: PUSH2 0x3c69 00003c9a: JUMP 00003c9b: JUMPDEST 00003c9c: SWAP3 00003c9d: SWAP4 00003c9e: PUSH1 0x20 00003ca0: PUSH1 0x01 00003ca2: DUP2 00003ca3: SWAP3 00003ca4: DUP8 00003ca5: DUP7 00003ca6: ADD 00003ca7: MLOAD 00003ca8: DUP2 00003ca9: SSTORE 00003caa: ADD 00003cab: SWAP6 00003cac: ADD 00003cad: SWAP4 00003cae: ADD 00003caf: PUSH2 0x3c53 00003cb2: JUMP 00003cb3: JUMPDEST 00003cb4: PUSH0 00003cb5: MLOAD 00003cb6: PUSH1 0x20 00003cb8: PUSH2 0x5add 00003cbb: PUSH0 00003cbc: CODECOPY 00003cbd: PUSH0 00003cbe: MLOAD 00003cbf: SWAP1 00003cc0: PUSH0 00003cc1: MSTORE 00003cc2: PUSH0 00003cc3: MSTORE 00003cc4: SWAP1 00003cc5: SWAP2 00003cc6: POP 00003cc7: PUSH32 0x42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d 00003ce8: PUSH1 0x1f 00003cea: DUP5 00003ceb: ADD 00003cec: PUSH1 0x05 00003cee: SHR 00003cef: DUP2 00003cf0: ADD 00003cf1: SWAP2 00003cf2: PUSH1 0x20 00003cf4: DUP6 00003cf5: LT 00003cf6: PUSH2 0x3d23 00003cf9: JUMPI 00003cfa: JUMPDEST 00003cfb: SWAP1 00003cfc: PUSH1 0x1f 00003cfe: DUP6 00003cff: SWAP5 00003d00: SWAP4 00003d01: SWAP3 00003d02: ADD 00003d03: PUSH1 0x05 00003d05: SHR 00003d06: ADD 00003d07: SWAP1 00003d08: JUMPDEST 00003d09: DUP2 00003d0a: DUP2 00003d0b: LT 00003d0c: PUSH2 0x3d15 00003d0f: JUMPI 00003d10: POP 00003d11: PUSH2 0x3796 00003d14: JUMP 00003d15: JUMPDEST 00003d16: PUSH0 00003d17: DUP2 00003d18: SSTORE 00003d19: DUP5 00003d1a: SWAP4 00003d1b: POP 00003d1c: PUSH1 0x01 00003d1e: ADD 00003d1f: PUSH2 0x3d08 00003d22: JUMP 00003d23: JUMPDEST 00003d24: SWAP1 00003d25: SWAP2 00003d26: POP 00003d27: DUP2 00003d28: SWAP1 00003d29: PUSH2 0x3cfa 00003d2c: JUMP 00003d2d: JUMPDEST 00003d2e: ADD 00003d2f: MLOAD 00003d30: SWAP1 00003d31: POP 00003d32: DUP8 00003d33: DUP1 00003d34: PUSH2 0x3705 00003d37: JUMP 00003d38: JUMPDEST 00003d39: SWAP1 00003d3a: PUSH1 0x1f 00003d3c: NOT 00003d3d: DUP4 00003d3e: AND 00003d3f: SWAP2 00003d40: PUSH0 00003d41: MLOAD 00003d42: PUSH1 0x20 00003d44: PUSH2 0x5b1d 00003d47: PUSH0 00003d48: CODECOPY 00003d49: PUSH0 00003d4a: MLOAD 00003d4b: SWAP1 00003d4c: PUSH0 00003d4d: MSTORE 00003d4e: PUSH0 00003d4f: MSTORE 00003d50: DUP2 00003d51: PUSH0 00003d52: KECCAK256 00003d53: SWAP3 00003d54: PUSH0 00003d55: JUMPDEST 00003d56: DUP2 00003d57: DUP2 00003d58: LT 00003d59: PUSH2 0x3da4 00003d5c: JUMPI 00003d5d: POP 00003d5e: SWAP3 00003d5f: PUSH1 0x01 00003d61: SWAP3 00003d62: DUP6 00003d63: SWAP3 00003d64: PUSH2 0x372c 00003d67: SWAP7 00003d68: PUSH2 0x3733 00003d6b: SWAP9 00003d6c: SWAP7 00003d6d: LT 00003d6e: PUSH2 0x3d8c 00003d71: JUMPI 00003d72: JUMPDEST 00003d73: POP 00003d74: POP 00003d75: POP 00003d76: DUP2 00003d77: SHL 00003d78: ADD 00003d79: PUSH0 00003d7a: MLOAD 00003d7b: PUSH1 0x20 00003d7d: PUSH2 0x5b1d 00003d80: PUSH0 00003d81: CODECOPY 00003d82: PUSH0 00003d83: MLOAD 00003d84: SWAP1 00003d85: PUSH0 00003d86: MSTORE 00003d87: SSTORE 00003d88: PUSH2 0x3726 00003d8b: JUMP 00003d8c: JUMPDEST 00003d8d: ADD 00003d8e: MLOAD 00003d8f: PUSH0 00003d90: NOT 00003d91: PUSH1 0xf8 00003d93: DUP5 00003d94: PUSH1 0x03 00003d96: SHL 00003d97: AND 00003d98: SHR 00003d99: NOT 00003d9a: AND 00003d9b: SWAP1 00003d9c: SSTORE 00003d9d: DUP8 00003d9e: DUP1 00003d9f: DUP1 00003da0: PUSH2 0x3d72 00003da3: JUMP 00003da4: JUMPDEST 00003da5: SWAP3 00003da6: SWAP4 00003da7: PUSH1 0x20 00003da9: PUSH1 0x01 00003dab: DUP2 00003dac: SWAP3 00003dad: DUP8 00003dae: DUP7 00003daf: ADD 00003db0: MLOAD 00003db1: DUP2 00003db2: SSTORE 00003db3: ADD 00003db4: SWAP6 00003db5: ADD 00003db6: SWAP4 00003db7: ADD 00003db8: PUSH2 0x3d55 00003dbb: JUMP 00003dbc: JUMPDEST 00003dbd: PUSH0 00003dbe: MLOAD 00003dbf: PUSH1 0x20 00003dc1: PUSH2 0x5b1d 00003dc4: PUSH0 00003dc5: CODECOPY 00003dc6: PUSH0 00003dc7: MLOAD 00003dc8: SWAP1 00003dc9: PUSH0 00003dca: MSTORE 00003dcb: PUSH0 00003dcc: MSTORE 00003dcd: PUSH32 0x46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa 00003dee: PUSH1 0x1f 00003df0: DUP5 00003df1: ADD 00003df2: PUSH1 0x05 00003df4: SHR 00003df5: DUP2 00003df6: ADD 00003df7: SWAP2 00003df8: PUSH1 0x20 00003dfa: DUP6 00003dfb: LT 00003dfc: PUSH2 0x3e21 00003dff: JUMPI 00003e00: JUMPDEST 00003e01: PUSH1 0x1f 00003e03: ADD 00003e04: PUSH1 0x05 00003e06: SHR 00003e07: ADD 00003e08: SWAP1 00003e09: JUMPDEST 00003e0a: DUP2 00003e0b: DUP2 00003e0c: LT 00003e0d: PUSH2 0x3e16 00003e10: JUMPI 00003e11: POP 00003e12: PUSH2 0x36e4 00003e15: JUMP 00003e16: JUMPDEST 00003e17: PUSH0 00003e18: DUP2 00003e19: SSTORE 00003e1a: PUSH1 0x01 00003e1c: ADD 00003e1d: PUSH2 0x3e09 00003e20: JUMP 00003e21: JUMPDEST 00003e22: SWAP1 00003e23: SWAP2 00003e24: POP 00003e25: DUP2 00003e26: SWAP1 00003e27: PUSH2 0x3e00 00003e2a: JUMP 00003e2b: JUMPDEST 00003e2c: ADD 00003e2d: MLOAD 00003e2e: SWAP1 00003e2f: POP 00003e30: DUP7 00003e31: DUP1 00003e32: PUSH2 0x3691 00003e35: JUMP 00003e36: JUMPDEST 00003e37: PUSH0 00003e38: MLOAD 00003e39: PUSH1 0x20 00003e3b: PUSH2 0x5a9d 00003e3e: PUSH0 00003e3f: CODECOPY 00003e40: PUSH0 00003e41: MLOAD 00003e42: SWAP1 00003e43: PUSH0 00003e44: MSTORE 00003e45: PUSH0 00003e46: SWAP1 00003e47: DUP2 00003e48: MSTORE 00003e49: DUP3 00003e4a: DUP2 00003e4b: KECCAK256 00003e4c: SWAP4 00003e4d: POP 00003e4e: PUSH1 0x1f 00003e50: NOT 00003e51: DUP6 00003e52: AND 00003e53: SWAP1 00003e54: JUMPDEST 00003e55: DUP2 00003e56: DUP2 00003e57: LT 00003e58: PUSH2 0x3e9c 00003e5b: JUMPI 00003e5c: POP 00003e5d: SWAP1 00003e5e: DUP5 00003e5f: PUSH1 0x01 00003e61: SWAP6 00003e62: SWAP5 00003e63: SWAP4 00003e64: SWAP3 00003e65: LT 00003e66: PUSH2 0x3e84 00003e69: JUMPI 00003e6a: JUMPDEST 00003e6b: POP 00003e6c: POP 00003e6d: POP 00003e6e: DUP2 00003e6f: SHL 00003e70: ADD 00003e71: PUSH0 00003e72: MLOAD 00003e73: PUSH1 0x20 00003e75: PUSH2 0x5a9d 00003e78: PUSH0 00003e79: CODECOPY 00003e7a: PUSH0 00003e7b: MLOAD 00003e7c: SWAP1 00003e7d: PUSH0 00003e7e: MSTORE 00003e7f: SSTORE 00003e80: PUSH2 0x36b2 00003e83: JUMP 00003e84: JUMPDEST 00003e85: ADD 00003e86: MLOAD 00003e87: PUSH0 00003e88: NOT 00003e89: PUSH1 0xf8 00003e8b: DUP5 00003e8c: PUSH1 0x03 00003e8e: SHL 00003e8f: AND 00003e90: SHR 00003e91: NOT 00003e92: AND 00003e93: SWAP1 00003e94: SSTORE 00003e95: DUP7 00003e96: DUP1 00003e97: DUP1 00003e98: PUSH2 0x3e6a 00003e9b: JUMP 00003e9c: JUMPDEST 00003e9d: SWAP3 00003e9e: SWAP4 00003e9f: PUSH1 0x20 00003ea1: PUSH1 0x01 00003ea3: DUP2 00003ea4: SWAP3 00003ea5: DUP8 00003ea6: DUP7 00003ea7: ADD 00003ea8: MLOAD 00003ea9: DUP2 00003eaa: SSTORE 00003eab: ADD 00003eac: SWAP6 00003ead: ADD 00003eae: SWAP4 00003eaf: ADD 00003eb0: PUSH2 0x3e54 00003eb3: JUMP 00003eb4: JUMPDEST 00003eb5: PUSH0 00003eb6: MLOAD 00003eb7: PUSH1 0x20 00003eb9: PUSH2 0x5a9d 00003ebc: PUSH0 00003ebd: CODECOPY 00003ebe: PUSH0 00003ebf: MLOAD 00003ec0: SWAP1 00003ec1: PUSH0 00003ec2: MSTORE 00003ec3: PUSH0 00003ec4: MSTORE 00003ec5: SWAP1 00003ec6: SWAP2 00003ec7: POP 00003ec8: PUSH32 0x2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0 00003ee9: PUSH1 0x1f 00003eeb: DUP5 00003eec: ADD 00003eed: PUSH1 0x05 00003eef: SHR 00003ef0: DUP2 00003ef1: ADD 00003ef2: SWAP2 00003ef3: PUSH1 0x20 00003ef5: DUP6 00003ef6: LT 00003ef7: PUSH2 0x3f24 00003efa: JUMPI 00003efb: JUMPDEST 00003efc: SWAP1 00003efd: PUSH1 0x1f 00003eff: DUP6 00003f00: SWAP5 00003f01: SWAP4 00003f02: SWAP3 00003f03: ADD 00003f04: PUSH1 0x05 00003f06: SHR 00003f07: ADD 00003f08: SWAP1 00003f09: JUMPDEST 00003f0a: DUP2 00003f0b: DUP2 00003f0c: LT 00003f0d: PUSH2 0x3f16 00003f10: JUMPI 00003f11: POP 00003f12: PUSH2 0x367b 00003f15: JUMP 00003f16: JUMPDEST 00003f17: PUSH0 00003f18: DUP2 00003f19: SSTORE 00003f1a: DUP5 00003f1b: SWAP4 00003f1c: POP 00003f1d: PUSH1 0x01 00003f1f: ADD 00003f20: PUSH2 0x3f09 00003f23: JUMP 00003f24: JUMPDEST 00003f25: SWAP1 00003f26: SWAP2 00003f27: POP 00003f28: DUP2 00003f29: SWAP1 00003f2a: PUSH2 0x3efb 00003f2d: JUMP 00003f2e: JUMPDEST 00003f2f: PUSH9 0xffffffffffffffffff 00003f39: NOT 00003f3a: AND 00003f3b: PUSH9 0x010000000000000001 00003f45: OR 00003f46: PUSH0 00003f47: MLOAD 00003f48: PUSH1 0x20 00003f4a: PUSH2 0x5d7d 00003f4d: PUSH0 00003f4e: CODECOPY 00003f4f: PUSH0 00003f50: MLOAD 00003f51: SWAP1 00003f52: PUSH0 00003f53: MSTORE 00003f54: SSTORE 00003f55: DUP4 00003f56: PUSH2 0x3603 00003f59: JUMP 00003f5a: JUMPDEST 00003f5b: PUSH4 0xf92ee8a9 00003f60: PUSH1 0xe0 00003f62: SHL 00003f63: PUSH0 00003f64: MSTORE 00003f65: PUSH1 0x04 00003f67: PUSH0 00003f68: REVERT 00003f69: JUMPDEST 00003f6a: SWAP1 00003f6b: POP 00003f6c: ISZERO 00003f6d: DUP6 00003f6e: PUSH2 0x35da 00003f71: JUMP 00003f72: JUMPDEST 00003f73: ADDRESS 00003f74: EXTCODESIZE 00003f75: ISZERO 00003f76: SWAP2 00003f77: POP 00003f78: PUSH2 0x35d2 00003f7b: JUMP 00003f7c: JUMPDEST 00003f7d: DUP6 00003f7e: SWAP2 00003f7f: POP 00003f80: PUSH2 0x35c8 00003f83: JUMP 00003f84: JUMPDEST 00003f85: DUP1 00003f86: MLOAD 00003f87: DUP1 00003f88: DUP4 00003f89: MSTORE 00003f8a: PUSH1 0x20 00003f8c: SWAP3 00003f8d: SWAP2 00003f8e: DUP2 00003f8f: SWAP1 00003f90: DUP5 00003f91: ADD 00003f92: DUP5 00003f93: DUP5 00003f94: ADD 00003f95: MCOPY 00003f96: PUSH0 00003f97: DUP3 00003f98: DUP3 00003f99: ADD 00003f9a: DUP5 00003f9b: ADD 00003f9c: MSTORE 00003f9d: PUSH1 0x1f 00003f9f: ADD 00003fa0: PUSH1 0x1f 00003fa2: NOT 00003fa3: AND 00003fa4: ADD 00003fa5: ADD 00003fa6: SWAP1 00003fa7: JUMP 00003fa8: JUMPDEST 00003fa9: PUSH1 0x04 00003fab: CALLDATALOAD 00003fac: SWAP1 00003fad: PUSH1 0x01 00003faf: PUSH1 0x01 00003fb1: PUSH1 0xa0 00003fb3: SHL 00003fb4: SUB 00003fb5: DUP3 00003fb6: AND 00003fb7: DUP3 00003fb8: SUB 00003fb9: PUSH2 0x03b2 00003fbc: JUMPI 00003fbd: JUMP 00003fbe: JUMPDEST 00003fbf: PUSH1 0x24 00003fc1: CALLDATALOAD 00003fc2: SWAP1 00003fc3: PUSH1 0x01 00003fc5: PUSH1 0x01 00003fc7: PUSH1 0xa0 00003fc9: SHL 00003fca: SUB 00003fcb: DUP3 00003fcc: AND 00003fcd: DUP3 00003fce: SUB 00003fcf: PUSH2 0x03b2 00003fd2: JUMPI 00003fd3: JUMP 00003fd4: JUMPDEST 00003fd5: PUSH1 0x44 00003fd7: CALLDATALOAD 00003fd8: SWAP1 00003fd9: PUSH1 0x01 00003fdb: PUSH1 0x01 00003fdd: PUSH1 0xa0 00003fdf: SHL 00003fe0: SUB 00003fe1: DUP3 00003fe2: AND 00003fe3: DUP3 00003fe4: SUB 00003fe5: PUSH2 0x03b2 00003fe8: JUMPI 00003fe9: JUMP 00003fea: JUMPDEST 00003feb: PUSH1 0x04 00003fed: CALLDATALOAD 00003fee: SWAP1 00003fef: DUP2 00003ff0: ISZERO 00003ff1: ISZERO 00003ff2: DUP3 00003ff3: SUB 00003ff4: PUSH2 0x03b2 00003ff7: JUMPI 00003ff8: JUMP 00003ff9: JUMPDEST 00003ffa: PUSH1 0xc0 00003ffc: SWAP1 00003ffd: PUSH1 0x03 00003fff: NOT 00004000: ADD 00004001: SLT 00004002: PUSH2 0x03b2 00004005: JUMPI 00004006: PUSH1 0x04 00004008: CALLDATALOAD 00004009: SWAP1 0000400a: PUSH1 0x24 0000400c: CALLDATALOAD 0000400d: SWAP1 0000400e: PUSH1 0x44 00004010: CALLDATALOAD 00004011: PUSH1 0x01 00004013: PUSH1 0x01 00004015: PUSH1 0xa0 00004017: SHL 00004018: SUB 00004019: DUP2 0000401a: AND 0000401b: DUP2 0000401c: SUB 0000401d: PUSH2 0x03b2 00004020: JUMPI 00004021: SWAP1 00004022: PUSH1 0x64 00004024: CALLDATALOAD 00004025: SWAP1 00004026: PUSH1 0x84 00004028: CALLDATALOAD 00004029: SWAP1 0000402a: PUSH1 0xa4 0000402c: CALLDATALOAD 0000402d: DUP1 0000402e: ISZERO 0000402f: ISZERO 00004030: DUP2 00004031: SUB 00004032: PUSH2 0x03b2 00004035: JUMPI 00004036: SWAP1 00004037: JUMP 00004038: JUMPDEST 00004039: PUSH1 0xc0 0000403b: DUP2 0000403c: ADD 0000403d: SWAP1 0000403e: DUP2 0000403f: LT 00004040: PUSH8 0xffffffffffffffff 00004049: DUP3 0000404a: GT 0000404b: OR 0000404c: PUSH2 0x2588 0000404f: JUMPI 00004050: PUSH1 0x40 00004052: MSTORE 00004053: JUMP 00004054: JUMPDEST 00004055: PUSH2 0x0100 00004058: DUP2 00004059: ADD 0000405a: SWAP1 0000405b: DUP2 0000405c: LT 0000405d: PUSH8 0xffffffffffffffff 00004066: DUP3 00004067: GT 00004068: OR 00004069: PUSH2 0x2588 0000406c: JUMPI 0000406d: PUSH1 0x40 0000406f: MSTORE 00004070: JUMP 00004071: JUMPDEST 00004072: PUSH1 0x40 00004074: DUP2 00004075: ADD 00004076: SWAP1 00004077: DUP2 00004078: LT 00004079: PUSH8 0xffffffffffffffff 00004082: DUP3 00004083: GT 00004084: OR 00004085: PUSH2 0x2588 00004088: JUMPI 00004089: PUSH1 0x40 0000408b: MSTORE 0000408c: JUMP 0000408d: JUMPDEST 0000408e: SWAP1 0000408f: PUSH1 0x1f 00004091: DUP1 00004092: NOT 00004093: SWAP2 00004094: ADD 00004095: AND 00004096: DUP2 00004097: ADD 00004098: SWAP1 00004099: DUP2 0000409a: LT 0000409b: PUSH8 0xffffffffffffffff 000040a4: DUP3 000040a5: GT 000040a6: OR 000040a7: PUSH2 0x2588 000040aa: JUMPI 000040ab: PUSH1 0x40 000040ad: MSTORE 000040ae: JUMP 000040af: JUMPDEST 000040b0: PUSH1 0xc0 000040b2: SWAP1 000040b3: PUSH1 0x63 000040b5: NOT 000040b6: ADD 000040b7: SLT 000040b8: PUSH2 0x03b2 000040bb: JUMPI 000040bc: PUSH1 0x40 000040be: MLOAD 000040bf: SWAP1 000040c0: PUSH2 0x40c8 000040c3: DUP3 000040c4: PUSH2 0x4038 000040c7: JUMP 000040c8: JUMPDEST 000040c9: PUSH1 0x64 000040cb: CALLDATALOAD 000040cc: DUP3 000040cd: MSTORE 000040ce: PUSH1 0x84 000040d0: CALLDATALOAD 000040d1: PUSH1 0x20 000040d3: DUP4 000040d4: ADD 000040d5: MSTORE 000040d6: PUSH1 0xa4 000040d8: CALLDATALOAD 000040d9: PUSH1 0x40 000040db: DUP4 000040dc: ADD 000040dd: MSTORE 000040de: PUSH1 0xc4 000040e0: CALLDATALOAD 000040e1: PUSH1 0x60 000040e3: DUP4 000040e4: ADD 000040e5: MSTORE 000040e6: PUSH1 0xe4 000040e8: CALLDATALOAD 000040e9: PUSH1 0x80 000040eb: DUP4 000040ec: ADD 000040ed: MSTORE 000040ee: PUSH2 0x0104 000040f1: CALLDATALOAD 000040f2: PUSH1 0xa0 000040f4: DUP4 000040f5: ADD 000040f6: MSTORE 000040f7: JUMP 000040f8: JUMPDEST 000040f9: PUSH1 0x60 000040fb: SWAP1 000040fc: PUSH1 0x03 000040fe: NOT 000040ff: ADD 00004100: SLT 00004101: PUSH2 0x03b2 00004104: JUMPI 00004105: PUSH1 0x04 00004107: CALLDATALOAD 00004108: SWAP1 00004109: PUSH1 0x24 0000410b: CALLDATALOAD 0000410c: SWAP1 0000410d: PUSH1 0x44 0000410f: CALLDATALOAD 00004110: SWAP1 00004111: JUMP 00004112: JUMPDEST 00004113: PUSH1 0x40 00004115: SWAP1 00004116: PUSH1 0x03 00004118: NOT 00004119: ADD 0000411a: SLT 0000411b: PUSH2 0x03b2 0000411e: JUMPI 0000411f: PUSH1 0x04 00004121: CALLDATALOAD 00004122: SWAP1 00004123: PUSH1 0x24 00004125: CALLDATALOAD 00004126: SWAP1 00004127: JUMP 00004128: JUMPDEST 00004129: PUSH8 0xffffffffffffffff 00004132: DUP2 00004133: GT 00004134: PUSH2 0x2588 00004137: JUMPI 00004138: PUSH1 0x1f 0000413a: ADD 0000413b: PUSH1 0x1f 0000413d: NOT 0000413e: AND 0000413f: PUSH1 0x20 00004141: ADD 00004142: SWAP1 00004143: JUMP 00004144: JUMPDEST 00004145: SWAP3 00004146: SWAP2 00004147: SWAP3 00004148: PUSH2 0x4150 0000414b: DUP3 0000414c: PUSH2 0x4128 0000414f: JUMP 00004150: JUMPDEST 00004151: SWAP2 00004152: PUSH2 0x415e 00004155: PUSH1 0x40 00004157: MLOAD 00004158: SWAP4 00004159: DUP5 0000415a: PUSH2 0x408d 0000415d: JUMP 0000415e: JUMPDEST 0000415f: DUP3 00004160: SWAP5 00004161: DUP2 00004162: DUP5 00004163: MSTORE 00004164: DUP2 00004165: DUP4 00004166: ADD 00004167: GT 00004168: PUSH2 0x03b2 0000416b: JUMPI 0000416c: DUP3 0000416d: DUP2 0000416e: PUSH1 0x20 00004170: SWAP4 00004171: DUP5 00004172: PUSH0 00004173: SWAP7 00004174: ADD 00004175: CALLDATACOPY 00004176: ADD 00004177: ADD 00004178: MSTORE 00004179: JUMP 0000417a: JUMPDEST 0000417b: PUSH1 0x80 0000417d: SWAP1 0000417e: PUSH1 0x03 00004180: NOT 00004181: ADD 00004182: SLT 00004183: PUSH2 0x03b2 00004186: JUMPI 00004187: PUSH1 0x04 00004189: CALLDATALOAD 0000418a: SWAP1 0000418b: PUSH1 0x24 0000418d: CALLDATALOAD 0000418e: SWAP1 0000418f: PUSH1 0x44 00004191: CALLDATALOAD 00004192: PUSH1 0x01 00004194: PUSH1 0x01 00004196: PUSH1 0xa0 00004198: SHL 00004199: SUB 0000419a: DUP2 0000419b: AND 0000419c: DUP2 0000419d: SUB 0000419e: PUSH2 0x03b2 000041a1: JUMPI 000041a2: SWAP1 000041a3: PUSH1 0x64 000041a5: CALLDATALOAD 000041a6: SWAP1 000041a7: JUMP 000041a8: JUMPDEST 000041a9: SWAP1 000041aa: CALLDATALOAD 000041ab: SWAP1 000041ac: PUSH1 0x1e 000041ae: NOT 000041af: DUP2 000041b0: CALLDATASIZE 000041b1: SUB 000041b2: ADD 000041b3: DUP3 000041b4: SLT 000041b5: ISZERO 000041b6: PUSH2 0x03b2 000041b9: JUMPI 000041ba: ADD 000041bb: DUP1 000041bc: CALLDATALOAD 000041bd: SWAP1 000041be: PUSH8 0xffffffffffffffff 000041c7: DUP3 000041c8: GT 000041c9: PUSH2 0x03b2 000041cc: JUMPI 000041cd: PUSH1 0x20 000041cf: ADD 000041d0: SWAP2 000041d1: DUP2 000041d2: CALLDATASIZE 000041d3: SUB 000041d4: DUP4 000041d5: SGT 000041d6: PUSH2 0x03b2 000041d9: JUMPI 000041da: JUMP 000041db: JUMPDEST 000041dc: CALLDATALOAD 000041dd: PUSH1 0xff 000041df: DUP2 000041e0: AND 000041e1: DUP2 000041e2: SUB 000041e3: PUSH2 0x03b2 000041e6: JUMPI 000041e7: SWAP1 000041e8: JUMP 000041e9: JUMPDEST 000041ea: CALLDATALOAD 000041eb: PUSH1 0x01 000041ed: PUSH1 0x01 000041ef: PUSH1 0xa0 000041f1: SHL 000041f2: SUB 000041f3: DUP2 000041f4: AND 000041f5: DUP2 000041f6: SUB 000041f7: PUSH2 0x03b2 000041fa: JUMPI 000041fb: SWAP1 000041fc: JUMP 000041fd: JUMPDEST 000041fe: SWAP1 000041ff: PUSH1 0x01 00004201: DUP3 00004202: DUP2 00004203: SHR 00004204: SWAP3 00004205: AND 00004206: DUP1 00004207: ISZERO 00004208: PUSH2 0x422b 0000420b: JUMPI 0000420c: JUMPDEST 0000420d: PUSH1 0x20 0000420f: DUP4 00004210: LT 00004211: EQ 00004212: PUSH2 0x4217 00004215: JUMPI 00004216: JUMP 00004217: JUMPDEST 00004218: PUSH4 0x4e487b71 0000421d: PUSH1 0xe0 0000421f: SHL 00004220: PUSH0 00004221: MSTORE 00004222: PUSH1 0x22 00004224: PUSH1 0x04 00004226: MSTORE 00004227: PUSH1 0x24 00004229: PUSH0 0000422a: REVERT 0000422b: JUMPDEST 0000422c: SWAP2 0000422d: PUSH1 0x7f 0000422f: AND 00004230: SWAP2 00004231: PUSH2 0x420c 00004234: JUMP 00004235: JUMPDEST 00004236: PUSH1 0x40 00004238: MLOAD 00004239: SWAP1 0000423a: PUSH0 0000423b: DUP3 0000423c: PUSH0 0000423d: MLOAD 0000423e: PUSH1 0x20 00004240: PUSH2 0x5add 00004243: PUSH0 00004244: CODECOPY 00004245: PUSH0 00004246: MLOAD 00004247: SWAP1 00004248: PUSH0 00004249: MSTORE 0000424a: SLOAD 0000424b: SWAP2 0000424c: PUSH2 0x4254 0000424f: DUP4 00004250: PUSH2 0x41fd 00004253: JUMP 00004254: JUMPDEST 00004255: DUP1 00004256: DUP4 00004257: MSTORE 00004258: SWAP3 00004259: PUSH1 0x01 0000425b: DUP2 0000425c: AND 0000425d: SWAP1 0000425e: DUP2 0000425f: ISZERO 00004260: PUSH2 0x42e5 00004263: JUMPI 00004264: POP 00004265: PUSH1 0x01 00004267: EQ 00004268: PUSH2 0x427a 0000426b: JUMPI 0000426c: JUMPDEST 0000426d: PUSH2 0x4278 00004270: SWAP3 00004271: POP 00004272: SUB 00004273: DUP4 00004274: PUSH2 0x408d 00004277: JUMP 00004278: JUMPDEST 00004279: JUMP 0000427a: JUMPDEST 0000427b: POP 0000427c: PUSH0 0000427d: MLOAD 0000427e: PUSH1 0x20 00004280: PUSH2 0x5add 00004283: PUSH0 00004284: CODECOPY 00004285: PUSH0 00004286: MLOAD 00004287: SWAP1 00004288: PUSH0 00004289: MSTORE 0000428a: PUSH0 0000428b: SWAP1 0000428c: DUP2 0000428d: MSTORE 0000428e: SWAP1 0000428f: SWAP2 00004290: PUSH32 0x42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d 000042b1: JUMPDEST 000042b2: DUP2 000042b3: DUP4 000042b4: LT 000042b5: PUSH2 0x42c9 000042b8: JUMPI 000042b9: POP 000042ba: POP 000042bb: SWAP1 000042bc: PUSH1 0x20 000042be: PUSH2 0x4278 000042c1: SWAP3 000042c2: DUP3 000042c3: ADD 000042c4: ADD 000042c5: PUSH2 0x426c 000042c8: JUMP 000042c9: JUMPDEST 000042ca: PUSH1 0x20 000042cc: SWAP2 000042cd: SWAP4 000042ce: POP 000042cf: DUP1 000042d0: PUSH1 0x01 000042d2: SWAP2 000042d3: SLOAD 000042d4: DUP4 000042d5: DUP6 000042d6: DUP10 000042d7: ADD 000042d8: ADD 000042d9: MSTORE 000042da: ADD 000042db: SWAP2 000042dc: ADD 000042dd: SWAP1 000042de: SWAP2 000042df: DUP5 000042e0: SWAP3 000042e1: PUSH2 0x42b1 000042e4: JUMP 000042e5: JUMPDEST 000042e6: PUSH1 0x20 000042e8: SWAP3 000042e9: POP 000042ea: PUSH2 0x4278 000042ed: SWAP5 000042ee: SWAP2 000042ef: POP 000042f0: PUSH1 0xff 000042f2: NOT 000042f3: AND 000042f4: DUP3 000042f5: DUP5 000042f6: ADD 000042f7: MSTORE 000042f8: ISZERO 000042f9: ISZERO 000042fa: PUSH1 0x05 000042fc: SHL 000042fd: DUP3 000042fe: ADD 000042ff: ADD 00004300: PUSH2 0x426c 00004303: JUMP 00004304: JUMPDEST 00004305: PUSH1 0x40 00004307: MLOAD 00004308: SWAP1 00004309: PUSH0 0000430a: DUP3 0000430b: PUSH0 0000430c: MLOAD 0000430d: PUSH1 0x20 0000430f: PUSH2 0x5b7d 00004312: PUSH0 00004313: CODECOPY 00004314: PUSH0 00004315: MLOAD 00004316: SWAP1 00004317: PUSH0 00004318: MSTORE 00004319: SLOAD 0000431a: SWAP2 0000431b: PUSH2 0x4323 0000431e: DUP4 0000431f: PUSH2 0x41fd 00004322: JUMP 00004323: JUMPDEST 00004324: DUP1 00004325: DUP4 00004326: MSTORE 00004327: SWAP3 00004328: PUSH1 0x01 0000432a: DUP2 0000432b: AND 0000432c: SWAP1 0000432d: DUP2 0000432e: ISZERO 0000432f: PUSH2 0x42e5 00004332: JUMPI 00004333: POP 00004334: PUSH1 0x01 00004336: EQ 00004337: PUSH2 0x4346 0000433a: JUMPI 0000433b: PUSH2 0x4278 0000433e: SWAP3 0000433f: POP 00004340: SUB 00004341: DUP4 00004342: PUSH2 0x408d 00004345: JUMP 00004346: JUMPDEST 00004347: POP 00004348: PUSH0 00004349: MLOAD 0000434a: PUSH1 0x20 0000434c: PUSH2 0x5b7d 0000434f: PUSH0 00004350: CODECOPY 00004351: PUSH0 00004352: MLOAD 00004353: SWAP1 00004354: PUSH0 00004355: MSTORE 00004356: PUSH0 00004357: SWAP1 00004358: DUP2 00004359: MSTORE 0000435a: SWAP1 0000435b: SWAP2 0000435c: PUSH32 0x5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75 0000437d: JUMPDEST 0000437e: DUP2 0000437f: DUP4 00004380: LT 00004381: PUSH2 0x4395 00004384: JUMPI 00004385: POP 00004386: POP 00004387: SWAP1 00004388: PUSH1 0x20 0000438a: PUSH2 0x4278 0000438d: SWAP3 0000438e: DUP3 0000438f: ADD 00004390: ADD 00004391: PUSH2 0x426c 00004394: JUMP 00004395: JUMPDEST 00004396: PUSH1 0x20 00004398: SWAP2 00004399: SWAP4 0000439a: POP 0000439b: DUP1 0000439c: PUSH1 0x01 0000439e: SWAP2 0000439f: SLOAD 000043a0: DUP4 000043a1: DUP6 000043a2: DUP10 000043a3: ADD 000043a4: ADD 000043a5: MSTORE 000043a6: ADD 000043a7: SWAP2 000043a8: ADD 000043a9: SWAP1 000043aa: SWAP2 000043ab: DUP5 000043ac: SWAP3 000043ad: PUSH2 0x437d 000043b0: JUMP 000043b1: JUMPDEST 000043b2: PUSH1 0x40 000043b4: MLOAD 000043b5: SWAP1 000043b6: PUSH2 0x43be 000043b9: DUP3 000043ba: PUSH2 0x4054 000043bd: JUMP 000043be: JUMPDEST 000043bf: PUSH0 000043c0: PUSH1 0xe0 000043c2: DUP4 000043c3: DUP3 000043c4: DUP2 000043c5: MSTORE 000043c6: DUP3 000043c7: PUSH1 0x20 000043c9: DUP3 000043ca: ADD 000043cb: MSTORE 000043cc: DUP3 000043cd: PUSH1 0x40 000043cf: DUP3 000043d0: ADD 000043d1: MSTORE 000043d2: DUP3 000043d3: PUSH1 0x60 000043d5: DUP3 000043d6: ADD 000043d7: MSTORE 000043d8: DUP3 000043d9: PUSH1 0x80 000043db: DUP3 000043dc: ADD 000043dd: MSTORE 000043de: DUP3 000043df: PUSH1 0xa0 000043e1: DUP3 000043e2: ADD 000043e3: MSTORE 000043e4: DUP3 000043e5: PUSH1 0xc0 000043e7: DUP3 000043e8: ADD 000043e9: MSTORE 000043ea: ADD 000043eb: MSTORE 000043ec: JUMP 000043ed: JUMPDEST 000043ee: PUSH0 000043ef: MLOAD 000043f0: PUSH1 0x20 000043f2: PUSH2 0x5c3d 000043f5: PUSH0 000043f6: CODECOPY 000043f7: PUSH0 000043f8: MLOAD 000043f9: SWAP1 000043fa: PUSH0 000043fb: MSTORE 000043fc: SLOAD 000043fd: DUP2 000043fe: LT 000043ff: ISZERO 00004400: PUSH2 0x4421 00004403: JUMPI 00004404: PUSH0 00004405: MLOAD 00004406: PUSH1 0x20 00004408: PUSH2 0x5c3d 0000440b: PUSH0 0000440c: CODECOPY 0000440d: PUSH0 0000440e: MLOAD 0000440f: SWAP1 00004410: PUSH0 00004411: MSTORE 00004412: PUSH0 00004413: MSTORE 00004414: PUSH1 0x20 00004416: PUSH0 00004417: KECCAK256 00004418: SWAP1 00004419: PUSH1 0x03 0000441b: SHL 0000441c: ADD 0000441d: SWAP1 0000441e: PUSH0 0000441f: SWAP1 00004420: JUMP 00004421: JUMPDEST 00004422: PUSH4 0x4e487b71 00004427: PUSH1 0xe0 00004429: SHL 0000442a: PUSH0 0000442b: MSTORE 0000442c: PUSH1 0x32 0000442e: PUSH1 0x04 00004430: MSTORE 00004431: PUSH1 0x24 00004433: PUSH0 00004434: REVERT 00004435: JUMPDEST 00004436: SWAP1 00004437: PUSH1 0x40 00004439: MLOAD 0000443a: PUSH2 0x4442 0000443d: DUP2 0000443e: PUSH2 0x4054 00004441: JUMP 00004442: JUMPDEST 00004443: PUSH1 0xe0 00004445: PUSH1 0xff 00004447: PUSH1 0x07 00004449: DUP4 0000444a: SWAP6 0000444b: DUP1 0000444c: SLOAD 0000444d: DUP6 0000444e: MSTORE 0000444f: PUSH1 0x01 00004451: DUP2 00004452: ADD 00004453: SLOAD 00004454: PUSH1 0x20 00004456: DUP7 00004457: ADD 00004458: MSTORE 00004459: PUSH1 0x02 0000445b: DUP2 0000445c: ADD 0000445d: SLOAD 0000445e: PUSH1 0x40 00004460: DUP7 00004461: ADD 00004462: MSTORE 00004463: PUSH1 0x03 00004465: DUP2 00004466: ADD 00004467: SLOAD 00004468: PUSH1 0x60 0000446a: DUP7 0000446b: ADD 0000446c: MSTORE 0000446d: PUSH1 0x04 0000446f: DUP2 00004470: ADD 00004471: SLOAD 00004472: PUSH1 0x80 00004474: DUP7 00004475: ADD 00004476: MSTORE 00004477: PUSH1 0x05 00004479: DUP2 0000447a: ADD 0000447b: SLOAD 0000447c: PUSH1 0xa0 0000447e: DUP7 0000447f: ADD 00004480: MSTORE 00004481: PUSH1 0x06 00004483: DUP2 00004484: ADD 00004485: SLOAD 00004486: PUSH1 0xc0 00004488: DUP7 00004489: ADD 0000448a: MSTORE 0000448b: ADD 0000448c: SLOAD 0000448d: AND 0000448e: ISZERO 0000448f: ISZERO 00004490: SWAP2 00004491: ADD 00004492: MSTORE 00004493: JUMP 00004494: JUMPDEST 00004495: PUSH1 0x40 00004497: MLOAD 00004498: SWAP1 00004499: PUSH2 0x44a1 0000449c: DUP3 0000449d: PUSH2 0x4038 000044a0: JUMP 000044a1: JUMPDEST 000044a2: PUSH0 000044a3: PUSH1 0xa0 000044a5: DUP4 000044a6: DUP3 000044a7: DUP2 000044a8: MSTORE 000044a9: DUP3 000044aa: PUSH1 0x20 000044ac: DUP3 000044ad: ADD 000044ae: MSTORE 000044af: DUP3 000044b0: PUSH1 0x40 000044b2: DUP3 000044b3: ADD 000044b4: MSTORE 000044b5: DUP3 000044b6: PUSH1 0x60 000044b8: DUP3 000044b9: ADD 000044ba: MSTORE 000044bb: DUP3 000044bc: PUSH1 0x80 000044be: DUP3 000044bf: ADD 000044c0: MSTORE 000044c1: ADD 000044c2: MSTORE 000044c3: JUMP 000044c4: JUMPDEST 000044c5: SWAP1 000044c6: DUP2 000044c7: PUSH1 0xc0 000044c9: SWAP2 000044ca: SUB 000044cb: SLT 000044cc: PUSH2 0x03b2 000044cf: JUMPI 000044d0: PUSH1 0xa0 000044d2: PUSH1 0x40 000044d4: MLOAD 000044d5: SWAP2 000044d6: PUSH2 0x44de 000044d9: DUP4 000044da: PUSH2 0x4038 000044dd: JUMP 000044de: JUMPDEST 000044df: DUP1 000044e0: MLOAD 000044e1: DUP4 000044e2: MSTORE 000044e3: PUSH1 0x20 000044e5: DUP2 000044e6: ADD 000044e7: MLOAD 000044e8: PUSH1 0x20 000044ea: DUP5 000044eb: ADD 000044ec: MSTORE 000044ed: PUSH1 0x40 000044ef: DUP2 000044f0: ADD 000044f1: MLOAD 000044f2: PUSH1 0x40 000044f4: DUP5 000044f5: ADD 000044f6: MSTORE 000044f7: PUSH1 0x60 000044f9: DUP2 000044fa: ADD 000044fb: MLOAD 000044fc: PUSH1 0x60 000044fe: DUP5 000044ff: ADD 00004500: MSTORE 00004501: PUSH1 0x80 00004503: DUP2 00004504: ADD 00004505: MLOAD 00004506: PUSH1 0x80 00004508: DUP5 00004509: ADD 0000450a: MSTORE 0000450b: ADD 0000450c: MLOAD 0000450d: PUSH1 0xa0 0000450f: DUP3 00004510: ADD 00004511: MSTORE 00004512: SWAP1 00004513: JUMP 00004514: JUMPDEST 00004515: SWAP1 00004516: SWAP5 00004517: SWAP4 00004518: SWAP3 00004519: PUSH1 0x01 0000451b: PUSH1 0x01 0000451d: PUSH1 0xa0 0000451f: SHL 00004520: SUB 00004521: SWAP1 00004522: PUSH1 0xff 00004524: PUSH1 0x07 00004526: PUSH2 0x01e0 00004529: SWAP6 0000452a: PUSH1 0xa0 0000452c: PUSH2 0x0200 0000452f: DUP8 00004530: ADD 00004531: SWAP11 00004532: DUP7 00004533: DUP2 00004534: MLOAD 00004535: AND 00004536: DUP9 00004537: MSTORE 00004538: PUSH1 0x20 0000453a: DUP2 0000453b: ADD 0000453c: MLOAD 0000453d: PUSH1 0x20 0000453f: DUP10 00004540: ADD 00004541: MSTORE 00004542: DUP5 00004543: PUSH1 0x40 00004545: DUP3 00004546: ADD 00004547: MLOAD 00004548: AND 00004549: PUSH1 0x40 0000454b: DUP10 0000454c: ADD 0000454d: MSTORE 0000454e: PUSH1 0x60 00004550: DUP2 00004551: ADD 00004552: MLOAD 00004553: PUSH1 0x60 00004555: DUP10 00004556: ADD 00004557: MSTORE 00004558: PUSH1 0x80 0000455a: DUP2 0000455b: ADD 0000455c: MLOAD 0000455d: PUSH1 0x80 0000455f: DUP10 00004560: ADD 00004561: MSTORE 00004562: ADD 00004563: MLOAD 00004564: PUSH1 0xa0 00004566: DUP8 00004567: ADD 00004568: MSTORE 00004569: DUP1 0000456a: SLOAD 0000456b: PUSH1 0xc0 0000456d: DUP8 0000456e: ADD 0000456f: MSTORE 00004570: PUSH1 0x01 00004572: DUP2 00004573: ADD 00004574: SLOAD 00004575: PUSH1 0xe0 00004577: DUP8 00004578: ADD 00004579: MSTORE 0000457a: PUSH1 0x02 0000457c: DUP2 0000457d: ADD 0000457e: SLOAD 0000457f: PUSH2 0x0100 00004582: DUP8 00004583: ADD 00004584: MSTORE 00004585: PUSH1 0x03 00004587: DUP2 00004588: ADD 00004589: SLOAD 0000458a: PUSH2 0x0120 0000458d: DUP8 0000458e: ADD 0000458f: MSTORE 00004590: PUSH1 0x04 00004592: DUP2 00004593: ADD 00004594: SLOAD 00004595: PUSH2 0x0140 00004598: DUP8 00004599: ADD 0000459a: MSTORE 0000459b: PUSH1 0x05 0000459d: DUP2 0000459e: ADD 0000459f: SLOAD 000045a0: PUSH2 0x0160 000045a3: DUP8 000045a4: ADD 000045a5: MSTORE 000045a6: PUSH1 0x06 000045a8: DUP2 000045a9: ADD 000045aa: SLOAD 000045ab: PUSH2 0x0180 000045ae: DUP8 000045af: ADD 000045b0: MSTORE 000045b1: ADD 000045b2: SLOAD 000045b3: AND 000045b4: ISZERO 000045b5: ISZERO 000045b6: PUSH2 0x01a0 000045b9: DUP5 000045ba: ADD 000045bb: MSTORE 000045bc: AND 000045bd: PUSH2 0x01c0 000045c0: DUP3 000045c1: ADD 000045c2: MSTORE 000045c3: ADD 000045c4: MSTORE 000045c5: JUMP 000045c6: JUMPDEST 000045c7: SWAP2 000045c8: SWAP1 000045c9: DUP3 000045ca: ADD 000045cb: DUP1 000045cc: SWAP3 000045cd: GT 000045ce: PUSH2 0x2636 000045d1: JUMPI 000045d2: JUMP 000045d3: JUMPDEST 000045d4: SWAP2 000045d5: SWAP1 000045d6: DUP3 000045d7: SUB 000045d8: SWAP2 000045d9: DUP3 000045da: GT 000045db: PUSH2 0x2636 000045de: JUMPI 000045df: JUMP 000045e0: JUMPDEST 000045e1: DUP2 000045e2: DUP2 000045e3: MUL 000045e4: SWAP3 000045e5: SWAP2 000045e6: DUP2 000045e7: ISZERO 000045e8: SWAP2 000045e9: DUP5 000045ea: DIV 000045eb: EQ 000045ec: OR 000045ed: ISZERO 000045ee: PUSH2 0x2636 000045f1: JUMPI 000045f2: JUMP 000045f3: JUMPDEST 000045f4: DUP2 000045f5: ISZERO 000045f6: PUSH2 0x45fd 000045f9: JUMPI 000045fa: DIV 000045fb: SWAP1 000045fc: JUMP 000045fd: JUMPDEST 000045fe: PUSH4 0x4e487b71 00004603: PUSH1 0xe0 00004605: SHL 00004606: PUSH0 00004607: MSTORE 00004608: PUSH1 0x12 0000460a: PUSH1 0x04 0000460c: MSTORE 0000460d: PUSH1 0x24 0000460f: PUSH0 00004610: REVERT 00004611: JUMPDEST 00004612: PUSH8 0xffffffffffffffff 0000461b: DUP2 0000461c: GT 0000461d: PUSH2 0x2588 00004620: JUMPI 00004621: PUSH1 0x05 00004623: SHL 00004624: PUSH1 0x20 00004626: ADD 00004627: SWAP1 00004628: JUMP 00004629: JUMPDEST 0000462a: SWAP1 0000462b: PUSH2 0x4633 0000462e: DUP3 0000462f: PUSH2 0x4611 00004632: JUMP 00004633: JUMPDEST 00004634: PUSH2 0x4640 00004637: PUSH1 0x40 00004639: MLOAD 0000463a: SWAP2 0000463b: DUP3 0000463c: PUSH2 0x408d 0000463f: JUMP 00004640: JUMPDEST 00004641: DUP3 00004642: DUP2 00004643: MSTORE 00004644: DUP1 00004645: SWAP3 00004646: PUSH2 0x4651 00004649: PUSH1 0x1f 0000464b: NOT 0000464c: SWAP2 0000464d: PUSH2 0x4611 00004650: JUMP 00004651: JUMPDEST 00004652: ADD 00004653: SWAP1 00004654: PUSH1 0x20 00004656: CALLDATASIZE 00004657: SWAP2 00004658: ADD 00004659: CALLDATACOPY 0000465a: JUMP 0000465b: JUMPDEST 0000465c: PUSH1 0x01 0000465e: PUSH1 0x01 00004660: PUSH1 0xa0 00004662: SHL 00004663: SUB 00004664: DUP2 00004665: AND 00004666: PUSH0 00004667: SWAP1 00004668: DUP2 00004669: MSTORE 0000466a: PUSH32 0xb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d 0000468b: PUSH1 0x20 0000468d: MSTORE 0000468e: PUSH1 0x40 00004690: SWAP1 00004691: KECCAK256 00004692: SLOAD 00004693: PUSH1 0xff 00004695: AND 00004696: PUSH2 0x4705 00004699: JUMPI 0000469a: PUSH1 0x01 0000469c: PUSH1 0x01 0000469e: PUSH1 0xa0 000046a0: SHL 000046a1: SUB 000046a2: AND 000046a3: PUSH0 000046a4: DUP2 000046a5: DUP2 000046a6: MSTORE 000046a7: PUSH32 0xb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d 000046c8: PUSH1 0x20 000046ca: MSTORE 000046cb: PUSH1 0x40 000046cd: DUP2 000046ce: KECCAK256 000046cf: DUP1 000046d0: SLOAD 000046d1: PUSH1 0xff 000046d3: NOT 000046d4: AND 000046d5: PUSH1 0x01 000046d7: OR 000046d8: SWAP1 000046d9: SSTORE 000046da: CALLER 000046db: SWAP2 000046dc: SWAP1 000046dd: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 000046fe: DUP2 000046ff: DUP1 00004700: LOG4 00004701: PUSH1 0x01 00004703: SWAP1 00004704: JUMP 00004705: JUMPDEST 00004706: POP 00004707: PUSH0 00004708: SWAP1 00004709: JUMP 0000470a: JUMPDEST 0000470b: PUSH1 0x01 0000470d: PUSH1 0x01 0000470f: PUSH1 0xa0 00004711: SHL 00004712: SUB 00004713: DUP2 00004714: AND 00004715: PUSH0 00004716: SWAP1 00004717: DUP2 00004718: MSTORE 00004719: PUSH32 0xb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538 0000473a: PUSH1 0x20 0000473c: MSTORE 0000473d: PUSH1 0x40 0000473f: SWAP1 00004740: KECCAK256 00004741: SLOAD 00004742: PUSH1 0xff 00004744: AND 00004745: PUSH2 0x4705 00004748: JUMPI 00004749: PUSH1 0x01 0000474b: PUSH1 0x01 0000474d: PUSH1 0xa0 0000474f: SHL 00004750: SUB 00004751: AND 00004752: PUSH0 00004753: DUP2 00004754: DUP2 00004755: MSTORE 00004756: PUSH32 0xb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538 00004777: PUSH1 0x20 00004779: MSTORE 0000477a: PUSH1 0x40 0000477c: DUP2 0000477d: KECCAK256 0000477e: DUP1 0000477f: SLOAD 00004780: PUSH1 0xff 00004782: NOT 00004783: AND 00004784: PUSH1 0x01 00004786: OR 00004787: SWAP1 00004788: SSTORE 00004789: CALLER 0000478a: SWAP2 0000478b: SWAP1 0000478c: PUSH32 0x66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102 000047ad: SWAP1 000047ae: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 000047cf: SWAP1 000047d0: DUP1 000047d1: LOG4 000047d2: PUSH1 0x01 000047d4: SWAP1 000047d5: JUMP 000047d6: JUMPDEST 000047d7: DUP1 000047d8: PUSH0 000047d9: MSTORE 000047da: PUSH0 000047db: MLOAD 000047dc: PUSH1 0x20 000047de: PUSH2 0x5c5d 000047e1: PUSH0 000047e2: CODECOPY 000047e3: PUSH0 000047e4: MLOAD 000047e5: SWAP1 000047e6: PUSH0 000047e7: MSTORE 000047e8: PUSH1 0x20 000047ea: MSTORE 000047eb: PUSH1 0x40 000047ed: PUSH0 000047ee: KECCAK256 000047ef: PUSH1 0x01 000047f1: PUSH1 0x01 000047f3: PUSH1 0xa0 000047f5: SHL 000047f6: SUB 000047f7: DUP4 000047f8: AND 000047f9: PUSH0 000047fa: MSTORE 000047fb: PUSH1 0x20 000047fd: MSTORE 000047fe: PUSH1 0xff 00004800: PUSH1 0x40 00004802: PUSH0 00004803: KECCAK256 00004804: SLOAD 00004805: AND 00004806: ISZERO 00004807: PUSH0 00004808: EQ 00004809: PUSH2 0x4877 0000480c: JUMPI 0000480d: DUP1 0000480e: PUSH0 0000480f: MSTORE 00004810: PUSH0 00004811: MLOAD 00004812: PUSH1 0x20 00004814: PUSH2 0x5c5d 00004817: PUSH0 00004818: CODECOPY 00004819: PUSH0 0000481a: MLOAD 0000481b: SWAP1 0000481c: PUSH0 0000481d: MSTORE 0000481e: PUSH1 0x20 00004820: MSTORE 00004821: PUSH1 0x40 00004823: PUSH0 00004824: KECCAK256 00004825: PUSH1 0x01 00004827: PUSH1 0x01 00004829: PUSH1 0xa0 0000482b: SHL 0000482c: SUB 0000482d: DUP4 0000482e: AND 0000482f: PUSH0 00004830: MSTORE 00004831: PUSH1 0x20 00004833: MSTORE 00004834: PUSH1 0x40 00004836: PUSH0 00004837: KECCAK256 00004838: PUSH1 0x01 0000483a: PUSH1 0xff 0000483c: NOT 0000483d: DUP3 0000483e: SLOAD 0000483f: AND 00004840: OR 00004841: SWAP1 00004842: SSTORE 00004843: PUSH1 0x01 00004845: PUSH1 0x01 00004847: PUSH1 0xa0 00004849: SHL 0000484a: SUB 0000484b: CALLER 0000484c: SWAP3 0000484d: AND 0000484e: SWAP1 0000484f: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 00004870: PUSH0 00004871: DUP1 00004872: LOG4 00004873: PUSH1 0x01 00004875: SWAP1 00004876: JUMP 00004877: JUMPDEST 00004878: POP 00004879: POP 0000487a: PUSH0 0000487b: SWAP1 0000487c: JUMP 0000487d: JUMPDEST 0000487e: PUSH0 0000487f: MLOAD 00004880: PUSH1 0x20 00004882: PUSH2 0x5cfd 00004885: PUSH0 00004886: CODECOPY 00004887: PUSH0 00004888: MLOAD 00004889: SWAP1 0000488a: PUSH0 0000488b: MSTORE 0000488c: TLOAD 0000488d: PUSH2 0x48a3 00004890: JUMPI 00004891: PUSH1 0x01 00004893: PUSH0 00004894: MLOAD 00004895: PUSH1 0x20 00004897: PUSH2 0x5cfd 0000489a: PUSH0 0000489b: CODECOPY 0000489c: PUSH0 0000489d: MLOAD 0000489e: SWAP1 0000489f: PUSH0 000048a0: MSTORE 000048a1: TSTORE 000048a2: JUMP 000048a3: JUMPDEST 000048a4: PUSH4 0x3ee5aeb5 000048a9: PUSH1 0xe0 000048ab: SHL 000048ac: PUSH0 000048ad: MSTORE 000048ae: PUSH1 0x04 000048b0: PUSH0 000048b1: REVERT 000048b2: JUMPDEST 000048b3: CALLER 000048b4: PUSH0 000048b5: SWAP1 000048b6: DUP2 000048b7: MSTORE 000048b8: PUSH32 0xb99f74ed0a18e51a0abeabf20177563f97170d9a304aaf2f87e619c498908538 000048d9: PUSH1 0x20 000048db: MSTORE 000048dc: PUSH1 0x40 000048de: SWAP1 000048df: KECCAK256 000048e0: SLOAD 000048e1: PUSH1 0xff 000048e3: AND 000048e4: ISZERO 000048e5: PUSH2 0x48ea 000048e8: JUMPI 000048e9: JUMP 000048ea: JUMPDEST 000048eb: PUSH4 0xe2517d3f 000048f0: PUSH1 0xe0 000048f2: SHL 000048f3: PUSH0 000048f4: MSTORE 000048f5: CALLER 000048f6: PUSH1 0x04 000048f8: MSTORE 000048f9: PUSH32 0x66d05ae646b1ee24e48a8708b8c0f6eade385a89cd689a1ed9121cb3ec9e2102 0000491a: PUSH1 0x24 0000491c: MSTORE 0000491d: PUSH1 0x44 0000491f: PUSH0 00004920: REVERT 00004921: JUMPDEST 00004922: CALLER 00004923: PUSH0 00004924: SWAP1 00004925: DUP2 00004926: MSTORE 00004927: PUSH32 0xb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d 00004948: PUSH1 0x20 0000494a: MSTORE 0000494b: PUSH1 0x40 0000494d: SWAP1 0000494e: KECCAK256 0000494f: SLOAD 00004950: PUSH1 0xff 00004952: AND 00004953: ISZERO 00004954: PUSH2 0x4959 00004957: JUMPI 00004958: JUMP 00004959: JUMPDEST 0000495a: PUSH4 0xe2517d3f 0000495f: PUSH1 0xe0 00004961: SHL 00004962: PUSH0 00004963: MSTORE 00004964: CALLER 00004965: PUSH1 0x04 00004967: MSTORE 00004968: PUSH0 00004969: PUSH1 0x24 0000496b: MSTORE 0000496c: PUSH1 0x44 0000496e: PUSH0 0000496f: REVERT 00004970: JUMPDEST 00004971: DUP1 00004972: PUSH0 00004973: MSTORE 00004974: PUSH0 00004975: MLOAD 00004976: PUSH1 0x20 00004978: PUSH2 0x5c5d 0000497b: PUSH0 0000497c: CODECOPY 0000497d: PUSH0 0000497e: MLOAD 0000497f: SWAP1 00004980: PUSH0 00004981: MSTORE 00004982: PUSH1 0x20 00004984: MSTORE 00004985: PUSH1 0x40 00004987: PUSH0 00004988: KECCAK256 00004989: PUSH1 0x01 0000498b: PUSH1 0x01 0000498d: PUSH1 0xa0 0000498f: SHL 00004990: SUB 00004991: CALLER 00004992: AND 00004993: PUSH0 00004994: MSTORE 00004995: PUSH1 0x20 00004997: MSTORE 00004998: PUSH1 0xff 0000499a: PUSH1 0x40 0000499c: PUSH0 0000499d: KECCAK256 0000499e: SLOAD 0000499f: AND 000049a0: ISZERO 000049a1: PUSH2 0x49a7 000049a4: JUMPI 000049a5: POP 000049a6: JUMP 000049a7: JUMPDEST 000049a8: PUSH4 0xe2517d3f 000049ad: PUSH1 0xe0 000049af: SHL 000049b0: PUSH0 000049b1: MSTORE 000049b2: CALLER 000049b3: PUSH1 0x04 000049b5: MSTORE 000049b6: PUSH1 0x24 000049b8: MSTORE 000049b9: PUSH1 0x44 000049bb: PUSH0 000049bc: REVERT 000049bd: JUMPDEST 000049be: SWAP2 000049bf: SWAP1 000049c0: PUSH0 000049c1: MLOAD 000049c2: PUSH1 0x20 000049c4: PUSH2 0x5c3d 000049c7: PUSH0 000049c8: CODECOPY 000049c9: PUSH0 000049ca: MLOAD 000049cb: SWAP1 000049cc: PUSH0 000049cd: MSTORE 000049ce: SLOAD 000049cf: ISZERO 000049d0: PUSH2 0x4a50 000049d3: JUMPI 000049d4: DUP3 000049d5: PUSH0 000049d6: MSTORE 000049d7: PUSH32 0x98b6721f87b10fba9510649effb5cccfd7d04ba1bf6c44593ef8229732a7ea02 000049f8: PUSH1 0x20 000049fa: MSTORE 000049fb: PUSH1 0x40 000049fd: PUSH0 000049fe: KECCAK256 000049ff: DUP2 00004a00: PUSH0 00004a01: MSTORE 00004a02: PUSH1 0x20 00004a04: MSTORE 00004a05: PUSH2 0x4a11 00004a08: PUSH1 0x40 00004a0a: PUSH0 00004a0b: KECCAK256 00004a0c: SLOAD 00004a0d: PUSH2 0x43ed 00004a10: JUMP 00004a11: JUMPDEST 00004a12: POP 00004a13: SWAP3 00004a14: DUP4 00004a15: DUP3 00004a16: DUP3 00004a17: DUP3 00004a18: SLOAD 00004a19: EQ 00004a1a: SWAP2 00004a1b: DUP3 00004a1c: ISZERO 00004a1d: SWAP3 00004a1e: PUSH2 0x4a41 00004a21: JUMPI 00004a22: JUMPDEST 00004a23: POP 00004a24: POP 00004a25: PUSH2 0x4a2c 00004a28: JUMPI 00004a29: POP 00004a2a: POP 00004a2b: JUMP 00004a2c: JUMPDEST 00004a2d: PUSH4 0x10de8c51 00004a32: PUSH1 0xe3 00004a34: SHL 00004a35: PUSH0 00004a36: MSTORE 00004a37: PUSH1 0x04 00004a39: MSTORE 00004a3a: PUSH1 0x24 00004a3c: MSTORE 00004a3d: PUSH1 0x44 00004a3f: PUSH0 00004a40: REVERT 00004a41: JUMPDEST 00004a42: PUSH1 0x01 00004a44: ADD 00004a45: SLOAD 00004a46: EQ 00004a47: ISZERO 00004a48: SWAP1 00004a49: POP 00004a4a: DUP3 00004a4b: PUSH0 00004a4c: PUSH2 0x4a22 00004a4f: JUMP 00004a50: JUMPDEST 00004a51: PUSH4 0x4d6af2e7 00004a56: PUSH1 0xe1 00004a58: SHL 00004a59: PUSH0 00004a5a: MSTORE 00004a5b: PUSH1 0x04 00004a5d: PUSH0 00004a5e: REVERT 00004a5f: JUMPDEST 00004a60: PUSH1 0x24 00004a62: PUSH1 0x20 00004a64: PUSH1 0x01 00004a66: PUSH1 0x01 00004a68: PUSH1 0xa0 00004a6a: SHL 00004a6b: SUB 00004a6c: PUSH0 00004a6d: MLOAD 00004a6e: PUSH1 0x20 00004a70: PUSH2 0x5d1d 00004a73: PUSH0 00004a74: CODECOPY 00004a75: PUSH0 00004a76: MLOAD 00004a77: SWAP1 00004a78: PUSH0 00004a79: MSTORE 00004a7a: SLOAD 00004a7b: AND 00004a7c: PUSH1 0x40 00004a7e: MLOAD 00004a7f: SWAP3 00004a80: DUP4 00004a81: DUP1 00004a82: SWAP3 00004a83: PUSH4 0x70a08231 00004a88: PUSH1 0xe0 00004a8a: SHL 00004a8b: DUP3 00004a8c: MSTORE 00004a8d: ADDRESS 00004a8e: PUSH1 0x04 00004a90: DUP4 00004a91: ADD 00004a92: MSTORE 00004a93: GAS 00004a94: STATICCALL 00004a95: DUP1 00004a96: ISZERO 00004a97: PUSH2 0x0d8d 00004a9a: JUMPI 00004a9b: PUSH0 00004a9c: SWAP1 00004a9d: PUSH2 0x4abe 00004aa0: JUMPI 00004aa1: JUMPDEST 00004aa2: PUSH2 0x4abb 00004aa5: SWAP2 00004aa6: POP 00004aa7: PUSH0 00004aa8: MLOAD 00004aa9: PUSH1 0x20 00004aab: PUSH2 0x5cdd 00004aae: PUSH0 00004aaf: CODECOPY 00004ab0: PUSH0 00004ab1: MLOAD 00004ab2: SWAP1 00004ab3: PUSH0 00004ab4: MSTORE 00004ab5: SLOAD 00004ab6: SWAP1 00004ab7: PUSH2 0x45f3 00004aba: JUMP 00004abb: JUMPDEST 00004abc: SWAP1 00004abd: JUMP 00004abe: JUMPDEST 00004abf: POP 00004ac0: PUSH1 0x20 00004ac2: DUP2 00004ac3: RETURNDATASIZE 00004ac4: PUSH1 0x20 00004ac6: GT 00004ac7: PUSH2 0x4aea 00004aca: JUMPI 00004acb: JUMPDEST 00004acc: DUP2 00004acd: PUSH2 0x4ad8 00004ad0: PUSH1 0x20 00004ad2: SWAP4 00004ad3: DUP4 00004ad4: PUSH2 0x408d 00004ad7: JUMP 00004ad8: JUMPDEST 00004ad9: DUP2 00004ada: ADD 00004adb: SUB 00004adc: SLT 00004add: PUSH2 0x03b2 00004ae0: JUMPI 00004ae1: PUSH2 0x4abb 00004ae4: SWAP1 00004ae5: MLOAD 00004ae6: PUSH2 0x4aa1 00004ae9: JUMP 00004aea: JUMPDEST 00004aeb: RETURNDATASIZE 00004aec: SWAP2 00004aed: POP 00004aee: PUSH2 0x4acb 00004af1: JUMP 00004af2: JUMPDEST 00004af3: DUP1 00004af4: MLOAD 00004af5: DUP3 00004af6: LT 00004af7: ISZERO 00004af8: PUSH2 0x4421 00004afb: JUMPI 00004afc: PUSH1 0x20 00004afe: SWAP2 00004aff: PUSH1 0x05 00004b01: SHL 00004b02: ADD 00004b03: ADD 00004b04: SWAP1 00004b05: JUMP 00004b06: JUMPDEST 00004b07: PUSH0 00004b08: MLOAD 00004b09: PUSH1 0x20 00004b0b: PUSH2 0x5c7d 00004b0e: PUSH0 00004b0f: CODECOPY 00004b10: PUSH0 00004b11: MLOAD 00004b12: SWAP1 00004b13: PUSH0 00004b14: MSTORE 00004b15: SLOAD 00004b16: SWAP1 00004b17: DUP2 00004b18: ISZERO 00004b19: ISZERO 00004b1a: DUP1 00004b1b: PUSH2 0x4dcd 00004b1e: JUMPI 00004b1f: JUMPDEST 00004b20: PUSH2 0x4b27 00004b23: JUMPI 00004b24: POP 00004b25: POP 00004b26: JUMP 00004b27: JUMPDEST 00004b28: PUSH0 00004b29: MLOAD 00004b2a: PUSH1 0x20 00004b2c: PUSH2 0x5c3d 00004b2f: PUSH0 00004b30: CODECOPY 00004b31: PUSH0 00004b32: MLOAD 00004b33: SWAP1 00004b34: PUSH0 00004b35: MSTORE 00004b36: SLOAD 00004b37: SWAP1 00004b38: PUSH2 0x4b40 00004b3b: DUP3 00004b3c: PUSH2 0x4629 00004b3f: JUMP 00004b40: JUMPDEST 00004b41: PUSH0 00004b42: PUSH0 00004b43: PUSH0 00004b44: MLOAD 00004b45: PUSH1 0x20 00004b47: PUSH2 0x5a7d 00004b4a: PUSH0 00004b4b: CODECOPY 00004b4c: PUSH0 00004b4d: MLOAD 00004b4e: SWAP1 00004b4f: PUSH0 00004b50: MSTORE 00004b51: SLOAD 00004b52: PUSH0 00004b53: MLOAD 00004b54: PUSH1 0x20 00004b56: PUSH2 0x5b9d 00004b59: PUSH0 00004b5a: CODECOPY 00004b5b: PUSH0 00004b5c: MLOAD 00004b5d: SWAP1 00004b5e: PUSH0 00004b5f: MSTORE 00004b60: SLOAD 00004b61: SWAP2 00004b62: JUMPDEST 00004b63: DUP7 00004b64: DUP2 00004b65: LT 00004b66: PUSH2 0x4d82 00004b69: JUMPI 00004b6a: POP 00004b6b: POP 00004b6c: POP 00004b6d: PUSH0 00004b6e: SWAP5 00004b6f: DUP2 00004b70: ISZERO 00004b71: PUSH0 00004b72: EQ 00004b73: PUSH2 0x4c23 00004b76: JUMPI 00004b77: POP 00004b78: POP 00004b79: POP 00004b7a: DUP1 00004b7b: PUSH2 0x4c0c 00004b7e: JUMPI 00004b7f: JUMPDEST 00004b80: PUSH2 0x4bae 00004b83: JUMPI 00004b84: JUMPDEST 00004b85: POP 00004b86: PUSH2 0x4b9d 00004b89: SWAP1 00004b8a: PUSH0 00004b8b: MLOAD 00004b8c: PUSH1 0x20 00004b8e: PUSH2 0x5c7d 00004b91: PUSH0 00004b92: CODECOPY 00004b93: PUSH0 00004b94: MLOAD 00004b95: SWAP1 00004b96: PUSH0 00004b97: MSTORE 00004b98: SLOAD 00004b99: PUSH2 0x45d3 00004b9c: JUMP 00004b9d: JUMPDEST 00004b9e: PUSH0 00004b9f: MLOAD 00004ba0: PUSH1 0x20 00004ba2: PUSH2 0x5c7d 00004ba5: PUSH0 00004ba6: CODECOPY 00004ba7: PUSH0 00004ba8: MLOAD 00004ba9: SWAP1 00004baa: PUSH0 00004bab: MSTORE 00004bac: SSTORE 00004bad: JUMP 00004bae: JUMPDEST 00004baf: PUSH0 00004bb0: JUMPDEST 00004bb1: DUP2 00004bb2: DUP2 00004bb3: LT 00004bb4: PUSH2 0x4bbd 00004bb7: JUMPI 00004bb8: POP 00004bb9: PUSH2 0x4b84 00004bbc: JUMP 00004bbd: JUMPDEST 00004bbe: DUP1 00004bbf: PUSH2 0x4bc9 00004bc2: PUSH1 0x01 00004bc4: SWAP3 00004bc5: PUSH2 0x43ed 00004bc8: JUMP 00004bc9: JUMPDEST 00004bca: POP 00004bcb: SWAP4 00004bcc: PUSH2 0x4c04 00004bcf: PUSH1 0x06 00004bd1: PUSH2 0x4bfa 00004bd4: PUSH2 0x4bf3 00004bd7: PUSH2 0x15b1 00004bda: PUSH0 00004bdb: MLOAD 00004bdc: PUSH1 0x20 00004bde: PUSH2 0x5c7d 00004be1: PUSH0 00004be2: CODECOPY 00004be3: PUSH0 00004be4: MLOAD 00004be5: SWAP1 00004be6: PUSH0 00004be7: MSTORE 00004be8: SLOAD 00004be9: PUSH1 0x02 00004beb: DUP12 00004bec: ADD 00004bed: SLOAD 00004bee: SWAP1 00004bef: PUSH2 0x45e0 00004bf2: JUMP 00004bf3: JUMPDEST 00004bf4: DUP1 00004bf5: SWAP5 00004bf6: PUSH2 0x45c6 00004bf9: JUMP 00004bfa: JUMPDEST 00004bfb: SWAP7 00004bfc: ADD 00004bfd: SWAP2 00004bfe: DUP3 00004bff: SLOAD 00004c00: PUSH2 0x45c6 00004c03: JUMP 00004c04: JUMPDEST 00004c05: SWAP1 00004c06: SSTORE 00004c07: ADD 00004c08: PUSH2 0x4bb0 00004c0b: JUMP 00004c0c: JUMPDEST 00004c0d: POP 00004c0e: PUSH0 00004c0f: MLOAD 00004c10: PUSH1 0x20 00004c12: PUSH2 0x5c7d 00004c15: PUSH0 00004c16: CODECOPY 00004c17: PUSH0 00004c18: MLOAD 00004c19: SWAP1 00004c1a: PUSH0 00004c1b: MSTORE 00004c1c: SLOAD 00004c1d: ISZERO 00004c1e: ISZERO 00004c1f: PUSH2 0x4b7f 00004c22: JUMP 00004c23: JUMPDEST 00004c24: SWAP1 00004c25: DUP1 00004c26: SWAP3 00004c27: SWAP4 00004c28: SWAP2 00004c29: LT 00004c2a: PUSH0 00004c2b: EQ 00004c2c: PUSH2 0x4c98 00004c2f: JUMPI 00004c30: POP 00004c31: PUSH0 00004c32: JUMPDEST 00004c33: DUP4 00004c34: DUP2 00004c35: LT 00004c36: PUSH2 0x4c46 00004c39: JUMPI 00004c3a: POP 00004c3b: POP 00004c3c: POP 00004c3d: POP 00004c3e: PUSH2 0x4b9d 00004c41: SWAP1 00004c42: PUSH2 0x29a4 00004c45: JUMP 00004c46: JUMPDEST 00004c47: DUP1 00004c48: PUSH2 0x4c53 00004c4b: PUSH1 0x01 00004c4d: SWAP3 00004c4e: DUP6 00004c4f: PUSH2 0x4af2 00004c52: JUMP 00004c53: JUMPDEST 00004c54: MLOAD 00004c55: PUSH2 0x4c5f 00004c58: JUMPI 00004c59: JUMPDEST 00004c5a: ADD 00004c5b: PUSH2 0x4c32 00004c5e: JUMP 00004c5f: JUMPDEST 00004c60: PUSH1 0x06 00004c62: PUSH2 0x4c80 00004c65: PUSH2 0x4c6d 00004c68: DUP4 00004c69: PUSH2 0x43ed 00004c6c: JUMP 00004c6d: JUMPDEST 00004c6e: POP 00004c6f: SWAP8 00004c70: PUSH2 0x2af9 00004c73: DUP7 00004c74: PUSH2 0x1378 00004c77: PUSH2 0x2ae3 00004c7a: DUP8 00004c7b: DUP12 00004c7c: PUSH2 0x4af2 00004c7f: JUMP 00004c80: JUMPDEST 00004c81: SWAP7 00004c82: ADD 00004c83: PUSH2 0x4c91 00004c86: DUP2 00004c87: SLOAD 00004c88: PUSH2 0x2b0e 00004c8b: DUP5 00004c8c: DUP9 00004c8d: PUSH2 0x4af2 00004c90: JUMP 00004c91: JUMPDEST 00004c92: SWAP1 00004c93: SSTORE 00004c94: PUSH2 0x4c59 00004c97: JUMP 00004c98: JUMPDEST 00004c99: SWAP3 00004c9a: SWAP5 00004c9b: SWAP4 00004c9c: SWAP3 00004c9d: ISZERO 00004c9e: PUSH2 0x4d1d 00004ca1: JUMPI 00004ca2: PUSH2 0x4cb9 00004ca5: SWAP1 00004ca6: PUSH0 00004ca7: MLOAD 00004ca8: PUSH1 0x20 00004caa: PUSH2 0x5c7d 00004cad: PUSH0 00004cae: CODECOPY 00004caf: PUSH0 00004cb0: MLOAD 00004cb1: SWAP1 00004cb2: PUSH0 00004cb3: MSTORE 00004cb4: SLOAD 00004cb5: PUSH2 0x45d3 00004cb8: JUMP 00004cb9: JUMPDEST 00004cba: PUSH0 00004cbb: JUMPDEST 00004cbc: DUP6 00004cbd: DUP2 00004cbe: LT 00004cbf: PUSH2 0x4cd0 00004cc2: JUMPI 00004cc3: POP 00004cc4: POP 00004cc5: POP 00004cc6: PUSH2 0x4b9d 00004cc9: SWAP2 00004cca: SWAP3 00004ccb: POP 00004ccc: PUSH2 0x29a4 00004ccf: JUMP 00004cd0: JUMPDEST 00004cd1: DUP1 00004cd2: PUSH2 0x4cdc 00004cd5: PUSH1 0x01 00004cd7: SWAP3 00004cd8: PUSH2 0x43ed 00004cdb: JUMP 00004cdc: JUMPDEST 00004cdd: POP 00004cde: SWAP5 00004cdf: PUSH2 0x4d15 00004ce2: PUSH1 0x06 00004ce4: PUSH2 0x4d0b 00004ce7: PUSH2 0x4bf3 00004cea: PUSH2 0x4cf3 00004ced: DUP7 00004cee: DUP11 00004cef: PUSH2 0x4af2 00004cf2: JUMP 00004cf3: JUMPDEST 00004cf4: MLOAD 00004cf5: PUSH2 0x4d05 00004cf8: PUSH2 0x15b1 00004cfb: PUSH1 0x02 00004cfd: DUP14 00004cfe: ADD 00004cff: SLOAD 00004d00: DUP12 00004d01: PUSH2 0x45e0 00004d04: JUMP 00004d05: JUMPDEST 00004d06: SWAP1 00004d07: PUSH2 0x45c6 00004d0a: JUMP 00004d0b: JUMPDEST 00004d0c: SWAP8 00004d0d: ADD 00004d0e: SWAP2 00004d0f: DUP3 00004d10: SLOAD 00004d11: PUSH2 0x45c6 00004d14: JUMP 00004d15: JUMPDEST 00004d16: SWAP1 00004d17: SSTORE 00004d18: ADD 00004d19: PUSH2 0x4cbb 00004d1c: JUMP 00004d1d: JUMPDEST 00004d1e: POP 00004d1f: PUSH0 00004d20: SWAP4 00004d21: SWAP2 00004d22: SWAP3 00004d23: SWAP4 00004d24: JUMPDEST 00004d25: DUP3 00004d26: DUP2 00004d27: LT 00004d28: PUSH2 0x4d37 00004d2b: JUMPI 00004d2c: POP 00004d2d: POP 00004d2e: POP 00004d2f: PUSH2 0x4b9d 00004d32: SWAP1 00004d33: PUSH2 0x29a4 00004d36: JUMP 00004d37: JUMPDEST 00004d38: DUP1 00004d39: PUSH2 0x4d44 00004d3c: PUSH1 0x01 00004d3e: SWAP3 00004d3f: DUP5 00004d40: PUSH2 0x4af2 00004d43: JUMP 00004d44: JUMPDEST 00004d45: MLOAD 00004d46: PUSH2 0x4d50 00004d49: JUMPI 00004d4a: JUMPDEST 00004d4b: ADD 00004d4c: PUSH2 0x4d24 00004d4f: JUMP 00004d50: JUMPDEST 00004d51: PUSH1 0x06 00004d53: PUSH2 0x4d6a 00004d56: PUSH2 0x4d5e 00004d59: DUP4 00004d5a: PUSH2 0x43ed 00004d5d: JUMP 00004d5e: JUMPDEST 00004d5f: POP 00004d60: SWAP7 00004d61: PUSH2 0x2b0e 00004d64: DUP5 00004d65: DUP8 00004d66: PUSH2 0x4af2 00004d69: JUMP 00004d6a: JUMPDEST 00004d6b: SWAP6 00004d6c: ADD 00004d6d: PUSH2 0x4d7b 00004d70: DUP2 00004d71: SLOAD 00004d72: PUSH2 0x2b0e 00004d75: DUP5 00004d76: DUP8 00004d77: PUSH2 0x4af2 00004d7a: JUMP 00004d7b: JUMPDEST 00004d7c: SWAP1 00004d7d: SSTORE 00004d7e: PUSH2 0x4d4a 00004d81: JUMP 00004d82: JUMPDEST 00004d83: PUSH2 0x4d8b 00004d86: DUP2 00004d87: PUSH2 0x43ed 00004d8a: JUMP 00004d8b: JUMPDEST 00004d8c: POP 00004d8d: PUSH2 0x4da1 00004d90: PUSH2 0x2bdc 00004d93: DUP6 00004d94: PUSH2 0x1378 00004d97: PUSH1 0x02 00004d99: DUP6 00004d9a: ADD 00004d9b: SLOAD 00004d9c: DUP8 00004d9d: PUSH2 0x45e0 00004da0: JUMP 00004da1: JUMPDEST 00004da2: SWAP1 00004da3: DUP2 00004da4: DUP2 00004da5: GT 00004da6: PUSH2 0x4db4 00004da9: JUMPI 00004daa: JUMPDEST 00004dab: POP 00004dac: POP 00004dad: PUSH1 0x01 00004daf: ADD 00004db0: PUSH2 0x4b62 00004db3: JUMP 00004db4: JUMPDEST 00004db5: SWAP5 00004db6: PUSH2 0x2c11 00004db9: PUSH2 0x4dc5 00004dbc: SWAP3 00004dbd: PUSH1 0x01 00004dbf: SWAP5 00004dc0: SWAP8 00004dc1: PUSH2 0x45d3 00004dc4: JUMP 00004dc5: JUMPDEST 00004dc6: SWAP4 00004dc7: SWAP1 00004dc8: PUSH0 00004dc9: PUSH2 0x4daa 00004dcc: JUMP 00004dcd: JUMPDEST 00004dce: POP 00004dcf: PUSH0 00004dd0: MLOAD 00004dd1: PUSH1 0x20 00004dd3: PUSH2 0x5b9d 00004dd6: PUSH0 00004dd7: CODECOPY 00004dd8: PUSH0 00004dd9: MLOAD 00004dda: SWAP1 00004ddb: PUSH0 00004ddc: MSTORE 00004ddd: SLOAD 00004dde: ISZERO 00004ddf: ISZERO 00004de0: PUSH2 0x4b1f 00004de3: JUMP 00004de4: JUMPDEST 00004de5: PUSH1 0x01 00004de7: PUSH1 0x01 00004de9: PUSH1 0xa0 00004deb: SHL 00004dec: SUB 00004ded: AND 00004dee: SWAP1 00004def: DUP2 00004df0: ISZERO 00004df1: PUSH2 0x4ea2 00004df4: JUMPI 00004df5: PUSH1 0x01 00004df7: PUSH1 0x01 00004df9: PUSH1 0xa0 00004dfb: SHL 00004dfc: SUB 00004dfd: AND 00004dfe: SWAP2 00004dff: DUP3 00004e00: ISZERO 00004e01: PUSH2 0x2170 00004e04: JUMPI 00004e05: DUP2 00004e06: PUSH0 00004e07: MSTORE 00004e08: PUSH0 00004e09: MLOAD 00004e0a: PUSH1 0x20 00004e0c: PUSH2 0x5abd 00004e0f: PUSH0 00004e10: CODECOPY 00004e11: PUSH0 00004e12: MLOAD 00004e13: SWAP1 00004e14: PUSH0 00004e15: MSTORE 00004e16: PUSH1 0x20 00004e18: MSTORE 00004e19: PUSH1 0x40 00004e1b: PUSH0 00004e1c: KECCAK256 00004e1d: SLOAD 00004e1e: DUP2 00004e1f: DUP2 00004e20: LT 00004e21: PUSH2 0x4e89 00004e24: JUMPI 00004e25: DUP2 00004e26: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004e47: SWAP3 00004e48: PUSH1 0x20 00004e4a: SWAP3 00004e4b: DUP6 00004e4c: PUSH0 00004e4d: MSTORE 00004e4e: PUSH0 00004e4f: MLOAD 00004e50: PUSH1 0x20 00004e52: PUSH2 0x5abd 00004e55: PUSH0 00004e56: CODECOPY 00004e57: PUSH0 00004e58: MLOAD 00004e59: SWAP1 00004e5a: PUSH0 00004e5b: MSTORE 00004e5c: DUP5 00004e5d: MSTORE 00004e5e: SUB 00004e5f: PUSH1 0x40 00004e61: PUSH0 00004e62: KECCAK256 00004e63: SSTORE 00004e64: DUP5 00004e65: PUSH0 00004e66: MSTORE 00004e67: PUSH0 00004e68: MLOAD 00004e69: PUSH1 0x20 00004e6b: PUSH2 0x5abd 00004e6e: PUSH0 00004e6f: CODECOPY 00004e70: PUSH0 00004e71: MLOAD 00004e72: SWAP1 00004e73: PUSH0 00004e74: MSTORE 00004e75: DUP3 00004e76: MSTORE 00004e77: PUSH1 0x40 00004e79: PUSH0 00004e7a: KECCAK256 00004e7b: DUP2 00004e7c: DUP2 00004e7d: SLOAD 00004e7e: ADD 00004e7f: SWAP1 00004e80: SSTORE 00004e81: PUSH1 0x40 00004e83: MLOAD 00004e84: SWAP1 00004e85: DUP2 00004e86: MSTORE 00004e87: LOG3 00004e88: JUMP 00004e89: JUMPDEST 00004e8a: DUP3 00004e8b: PUSH4 0x391434e3 00004e90: PUSH1 0xe2 00004e92: SHL 00004e93: PUSH0 00004e94: MSTORE 00004e95: PUSH1 0x04 00004e97: MSTORE 00004e98: PUSH1 0x24 00004e9a: MSTORE 00004e9b: PUSH1 0x44 00004e9d: MSTORE 00004e9e: PUSH1 0x64 00004ea0: PUSH0 00004ea1: REVERT 00004ea2: JUMPDEST 00004ea3: PUSH4 0x4b637e8f 00004ea8: PUSH1 0xe1 00004eaa: SHL 00004eab: PUSH0 00004eac: MSTORE 00004ead: PUSH0 00004eae: PUSH1 0x04 00004eb0: MSTORE 00004eb1: PUSH1 0x24 00004eb3: PUSH0 00004eb4: REVERT 00004eb5: JUMPDEST 00004eb6: SWAP1 00004eb7: PUSH0 00004eb8: MLOAD 00004eb9: PUSH1 0x20 00004ebb: PUSH2 0x5b5d 00004ebe: PUSH0 00004ebf: CODECOPY 00004ec0: PUSH0 00004ec1: MLOAD 00004ec2: SWAP1 00004ec3: PUSH0 00004ec4: MSTORE 00004ec5: SLOAD 00004ec6: SWAP2 00004ec7: DUP3 00004ec8: ISZERO 00004ec9: PUSH2 0x1385 00004ecc: JUMPI 00004ecd: PUSH1 0x01 00004ecf: PUSH1 0x01 00004ed1: PUSH1 0xa0 00004ed3: SHL 00004ed4: SUB 00004ed5: DUP2 00004ed6: AND 00004ed7: DUP1 00004ed8: PUSH0 00004ed9: MSTORE 00004eda: PUSH0 00004edb: MLOAD 00004edc: PUSH1 0x20 00004ede: PUSH2 0x5abd 00004ee1: PUSH0 00004ee2: CODECOPY 00004ee3: PUSH0 00004ee4: MLOAD 00004ee5: SWAP1 00004ee6: PUSH0 00004ee7: MSTORE 00004ee8: PUSH1 0x20 00004eea: MSTORE 00004eeb: PUSH1 0x40 00004eed: PUSH0 00004eee: KECCAK256 00004eef: SLOAD 00004ef0: DUP4 00004ef1: DUP2 00004ef2: LT 00004ef3: PUSH2 0x5028 00004ef6: JUMPI 00004ef7: POP 00004ef8: PUSH2 0x4f1e 00004efb: PUSH2 0x4f17 00004efe: PUSH0 00004eff: MLOAD 00004f00: PUSH1 0x20 00004f02: PUSH2 0x5a7d 00004f05: PUSH0 00004f06: CODECOPY 00004f07: PUSH0 00004f08: MLOAD 00004f09: SWAP1 00004f0a: PUSH0 00004f0b: MSTORE 00004f0c: SLOAD 00004f0d: SWAP6 00004f0e: PUSH2 0x1378 00004f11: DUP8 00004f12: DUP8 00004f13: PUSH2 0x45e0 00004f16: JUMP 00004f17: JUMPDEST 00004f18: DUP1 00004f19: SWAP6 00004f1a: PUSH2 0x45d3 00004f1d: JUMP 00004f1e: JUMPDEST 00004f1f: PUSH0 00004f20: MLOAD 00004f21: PUSH1 0x20 00004f23: PUSH2 0x5a7d 00004f26: PUSH0 00004f27: CODECOPY 00004f28: PUSH0 00004f29: MLOAD 00004f2a: SWAP1 00004f2b: PUSH0 00004f2c: MSTORE 00004f2d: SSTORE 00004f2e: DUP1 00004f2f: ISZERO 00004f30: PUSH2 0x4ea2 00004f33: JUMPI 00004f34: DUP1 00004f35: PUSH0 00004f36: MSTORE 00004f37: PUSH0 00004f38: MLOAD 00004f39: PUSH1 0x20 00004f3b: PUSH2 0x5abd 00004f3e: PUSH0 00004f3f: CODECOPY 00004f40: PUSH0 00004f41: MLOAD 00004f42: SWAP1 00004f43: PUSH0 00004f44: MSTORE 00004f45: PUSH1 0x20 00004f47: MSTORE 00004f48: PUSH1 0x40 00004f4a: PUSH0 00004f4b: KECCAK256 00004f4c: SLOAD 00004f4d: DUP4 00004f4e: DUP2 00004f4f: LT 00004f50: PUSH2 0x500e 00004f53: JUMPI 00004f54: DUP2 00004f55: DUP5 00004f56: PUSH0 00004f57: SWAP3 00004f58: PUSH32 0x49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a 00004f79: SWAP7 00004f7a: SWAP6 00004f7b: SWAP5 00004f7c: DUP5 00004f7d: MSTORE 00004f7e: PUSH0 00004f7f: MLOAD 00004f80: PUSH1 0x20 00004f82: PUSH2 0x5abd 00004f85: PUSH0 00004f86: CODECOPY 00004f87: PUSH0 00004f88: MLOAD 00004f89: SWAP1 00004f8a: PUSH0 00004f8b: MSTORE 00004f8c: PUSH1 0x20 00004f8e: MSTORE 00004f8f: SUB 00004f90: PUSH1 0x40 00004f92: DUP4 00004f93: KECCAK256 00004f94: SSTORE 00004f95: DUP4 00004f96: PUSH0 00004f97: MLOAD 00004f98: PUSH1 0x20 00004f9a: PUSH2 0x5b5d 00004f9d: PUSH0 00004f9e: CODECOPY 00004f9f: PUSH0 00004fa0: MLOAD 00004fa1: SWAP1 00004fa2: PUSH0 00004fa3: MSTORE 00004fa4: SLOAD 00004fa5: SUB 00004fa6: PUSH0 00004fa7: MLOAD 00004fa8: PUSH1 0x20 00004faa: PUSH2 0x5b5d 00004fad: PUSH0 00004fae: CODECOPY 00004faf: PUSH0 00004fb0: MLOAD 00004fb1: SWAP1 00004fb2: PUSH0 00004fb3: MSTORE 00004fb4: SSTORE 00004fb5: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004fd6: PUSH1 0x20 00004fd8: PUSH1 0x40 00004fda: MLOAD 00004fdb: DUP7 00004fdc: DUP2 00004fdd: MSTORE 00004fde: LOG3 00004fdf: PUSH2 0x5008 00004fe2: DUP5 00004fe3: PUSH1 0x40 00004fe5: MLOAD 00004fe6: SWAP4 00004fe7: DUP5 00004fe8: SWAP4 00004fe9: DUP5 00004fea: PUSH1 0x40 00004fec: SWAP2 00004fed: SWAP5 00004fee: SWAP4 00004fef: SWAP3 00004ff0: PUSH1 0x01 00004ff2: PUSH1 0x01 00004ff4: PUSH1 0xa0 00004ff6: SHL 00004ff7: SUB 00004ff8: PUSH1 0x60 00004ffa: DUP4 00004ffb: ADD 00004ffc: SWAP7 00004ffd: AND 00004ffe: DUP3 00004fff: MSTORE 00005000: PUSH1 0x20 00005002: DUP3 00005003: ADD 00005004: MSTORE 00005005: ADD 00005006: MSTORE 00005007: JUMP 00005008: JUMPDEST 00005009: SUB 0000500a: SWAP1 0000500b: LOG1 0000500c: SWAP1 0000500d: JUMP 0000500e: JUMPDEST 0000500f: SWAP2 00005010: POP 00005011: PUSH4 0x391434e3 00005016: PUSH1 0xe2 00005018: SHL 00005019: PUSH0 0000501a: MSTORE 0000501b: PUSH1 0x04 0000501d: MSTORE 0000501e: PUSH1 0x24 00005020: MSTORE 00005021: PUSH1 0x44 00005023: MSTORE 00005024: PUSH1 0x64 00005026: PUSH0 00005027: REVERT 00005028: JUMPDEST 00005029: DUP4 0000502a: PUSH1 0xa4 0000502c: SWAP2 0000502d: PUSH1 0x40 0000502f: MLOAD 00005030: SWAP2 00005031: PUSH4 0x38d06e1d 00005036: PUSH1 0xe0 00005038: SHL 00005039: DUP4 0000503a: MSTORE 0000503b: PUSH1 0x60 0000503d: PUSH1 0x04 0000503f: DUP5 00005040: ADD 00005041: MSTORE 00005042: PUSH1 0x15 00005044: PUSH1 0x64 00005046: DUP5 00005047: ADD 00005048: MSTORE 00005049: PUSH32 0x506f6f6c2e5f6275726e4c502e616d6f756e744c500000000000000000000000 0000506a: PUSH1 0x84 0000506c: DUP5 0000506d: ADD 0000506e: MSTORE 0000506f: PUSH1 0x24 00005071: DUP4 00005072: ADD 00005073: MSTORE 00005074: PUSH1 0x44 00005076: DUP3 00005077: ADD 00005078: MSTORE 00005079: REVERT 0000507a: JUMPDEST 0000507b: DUP1 0000507c: PUSH0 0000507d: MSTORE 0000507e: PUSH0 0000507f: MLOAD 00005080: PUSH1 0x20 00005082: PUSH2 0x5c5d 00005085: PUSH0 00005086: CODECOPY 00005087: PUSH0 00005088: MLOAD 00005089: SWAP1 0000508a: PUSH0 0000508b: MSTORE 0000508c: PUSH1 0x20 0000508e: MSTORE 0000508f: PUSH1 0x40 00005091: PUSH0 00005092: KECCAK256 00005093: PUSH1 0x01 00005095: PUSH1 0x01 00005097: PUSH1 0xa0 00005099: SHL 0000509a: SUB 0000509b: DUP4 0000509c: AND 0000509d: PUSH0 0000509e: MSTORE 0000509f: PUSH1 0x20 000050a1: MSTORE 000050a2: PUSH1 0xff 000050a4: PUSH1 0x40 000050a6: PUSH0 000050a7: KECCAK256 000050a8: SLOAD 000050a9: AND 000050aa: PUSH0 000050ab: EQ 000050ac: PUSH2 0x4877 000050af: JUMPI 000050b0: DUP1 000050b1: PUSH0 000050b2: MSTORE 000050b3: PUSH0 000050b4: MLOAD 000050b5: PUSH1 0x20 000050b7: PUSH2 0x5c5d 000050ba: PUSH0 000050bb: CODECOPY 000050bc: PUSH0 000050bd: MLOAD 000050be: SWAP1 000050bf: PUSH0 000050c0: MSTORE 000050c1: PUSH1 0x20 000050c3: MSTORE 000050c4: PUSH1 0x40 000050c6: PUSH0 000050c7: KECCAK256 000050c8: PUSH1 0x01 000050ca: PUSH1 0x01 000050cc: PUSH1 0xa0 000050ce: SHL 000050cf: SUB 000050d0: DUP4 000050d1: AND 000050d2: PUSH0 000050d3: MSTORE 000050d4: PUSH1 0x20 000050d6: MSTORE 000050d7: PUSH1 0x40 000050d9: PUSH0 000050da: KECCAK256 000050db: PUSH1 0xff 000050dd: NOT 000050de: DUP2 000050df: SLOAD 000050e0: AND 000050e1: SWAP1 000050e2: SSTORE 000050e3: PUSH1 0x01 000050e5: PUSH1 0x01 000050e7: PUSH1 0xa0 000050e9: SHL 000050ea: SUB 000050eb: CALLER 000050ec: SWAP3 000050ed: AND 000050ee: SWAP1 000050ef: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 00005110: PUSH0 00005111: DUP1 00005112: LOG4 00005113: PUSH1 0x01 00005115: SWAP1 00005116: JUMP 00005117: JUMPDEST 00005118: PUSH1 0x20 0000511a: PUSH2 0x5189 0000511d: SWAP2 0000511e: PUSH2 0x5139 00005121: PUSH1 0x40 00005123: DUP3 00005124: ADD 00005125: MLOAD 00005126: PUSH0 00005127: MLOAD 00005128: PUSH1 0x20 0000512a: PUSH2 0x5a7d 0000512d: PUSH0 0000512e: CODECOPY 0000512f: PUSH0 00005130: MLOAD 00005131: SWAP1 00005132: PUSH0 00005133: MSTORE 00005134: SLOAD 00005135: PUSH2 0x45c6 00005138: JUMP 00005139: JUMPDEST 0000513a: PUSH0 0000513b: MLOAD 0000513c: PUSH1 0x20 0000513e: PUSH2 0x5a7d 00005141: PUSH0 00005142: CODECOPY 00005143: PUSH0 00005144: MLOAD 00005145: SWAP1 00005146: PUSH0 00005147: MSTORE 00005148: SSTORE 00005149: PUSH2 0x5164 0000514c: PUSH1 0x60 0000514e: DUP3 0000514f: ADD 00005150: MLOAD 00005151: PUSH0 00005152: MLOAD 00005153: PUSH1 0x20 00005155: PUSH2 0x5cbd 00005158: PUSH0 00005159: CODECOPY 0000515a: PUSH0 0000515b: MLOAD 0000515c: SWAP1 0000515d: PUSH0 0000515e: MSTORE 0000515f: SLOAD 00005160: PUSH2 0x45c6 00005163: JUMP 00005164: JUMPDEST 00005165: PUSH0 00005166: MLOAD 00005167: PUSH1 0x20 00005169: PUSH2 0x5cbd 0000516c: PUSH0 0000516d: CODECOPY 0000516e: PUSH0 0000516f: MLOAD 00005170: SWAP1 00005171: PUSH0 00005172: MSTORE 00005173: SSTORE 00005174: ADD 00005175: MLOAD 00005176: PUSH0 00005177: MLOAD 00005178: PUSH1 0x20 0000517a: PUSH2 0x5d5d 0000517d: PUSH0 0000517e: CODECOPY 0000517f: PUSH0 00005180: MLOAD 00005181: SWAP1 00005182: PUSH0 00005183: MSTORE 00005184: SLOAD 00005185: PUSH2 0x45c6 00005188: JUMP 00005189: JUMPDEST 0000518a: PUSH0 0000518b: MLOAD 0000518c: PUSH1 0x20 0000518e: PUSH2 0x5d5d 00005191: PUSH0 00005192: CODECOPY 00005193: PUSH0 00005194: MLOAD 00005195: SWAP1 00005196: PUSH0 00005197: MSTORE 00005198: SSTORE 00005199: JUMP 0000519a: JUMPDEST 0000519b: PUSH0 0000519c: MLOAD 0000519d: PUSH1 0x20 0000519f: PUSH2 0x5a7d 000051a2: PUSH0 000051a3: CODECOPY 000051a4: PUSH0 000051a5: MLOAD 000051a6: SWAP1 000051a7: PUSH0 000051a8: MSTORE 000051a9: SLOAD 000051aa: DUP1 000051ab: ISZERO 000051ac: PUSH2 0x51cb 000051af: JUMPI 000051b0: PUSH2 0x1378 000051b3: PUSH2 0x4abb 000051b6: SWAP3 000051b7: PUSH0 000051b8: MLOAD 000051b9: PUSH1 0x20 000051bb: PUSH2 0x5b5d 000051be: PUSH0 000051bf: CODECOPY 000051c0: PUSH0 000051c1: MLOAD 000051c2: SWAP1 000051c3: PUSH0 000051c4: MSTORE 000051c5: SLOAD 000051c6: SWAP1 000051c7: PUSH2 0x45e0 000051ca: JUMP 000051cb: JUMPDEST 000051cc: PUSH1 0x40 000051ce: MLOAD 000051cf: PUSH4 0x4612b38f 000051d4: PUSH1 0xe0 000051d6: SHL 000051d7: DUP2 000051d8: MSTORE 000051d9: PUSH1 0x20 000051db: PUSH1 0x04 000051dd: DUP3 000051de: ADD 000051df: MSTORE 000051e0: PUSH1 0x0e 000051e2: PUSH1 0x24 000051e4: DUP3 000051e5: ADD 000051e6: MSTORE 000051e7: PUSH14 0x746f74616c4c6971756964697479 000051f6: PUSH1 0x90 000051f8: SHL 000051f9: PUSH1 0x44 000051fb: DUP3 000051fc: ADD 000051fd: MSTORE 000051fe: PUSH1 0x64 00005200: SWAP1 00005201: REVERT 00005202: JUMPDEST 00005203: PUSH2 0x520d 00005206: DUP4 00005207: DUP4 00005208: DUP4 00005209: PUSH2 0x53d7 0000520c: JUMP 0000520d: JUMPDEST 0000520e: ISZERO 0000520f: PUSH2 0x5217 00005212: JUMPI 00005213: POP 00005214: POP 00005215: POP 00005216: JUMP 00005217: JUMPDEST 00005218: SWAP1 00005219: PUSH1 0x01 0000521b: PUSH1 0x01 0000521d: PUSH1 0xa0 0000521f: SHL 00005220: SUB 00005221: DUP1 00005222: SWAP3 00005223: PUSH4 0x87abb3dd 00005228: PUSH1 0xe0 0000522a: SHL 0000522b: PUSH0 0000522c: MSTORE 0000522d: AND 0000522e: PUSH1 0x04 00005230: MSTORE 00005231: AND 00005232: PUSH1 0x24 00005234: MSTORE 00005235: PUSH1 0x44 00005237: MSTORE 00005238: PUSH1 0x64 0000523a: PUSH0 0000523b: REVERT 0000523c: JUMPDEST 0000523d: PUSH0 0000523e: MLOAD 0000523f: PUSH1 0x20 00005241: PUSH2 0x5d3d 00005244: PUSH0 00005245: CODECOPY 00005246: PUSH0 00005247: MLOAD 00005248: SWAP1 00005249: PUSH0 0000524a: MSTORE 0000524b: SLOAD 0000524c: NUMBER 0000524d: GT 0000524e: PUSH2 0x539b 00005251: JUMPI 00005252: JUMPDEST 00005253: PUSH2 0x526a 00005256: DUP2 00005257: PUSH0 00005258: MLOAD 00005259: PUSH1 0x20 0000525b: PUSH2 0x5b3d 0000525e: PUSH0 0000525f: CODECOPY 00005260: PUSH0 00005261: MLOAD 00005262: SWAP1 00005263: PUSH0 00005264: MSTORE 00005265: SLOAD 00005266: PUSH2 0x45c6 00005269: JUMP 0000526a: JUMPDEST 0000526b: PUSH32 0x000000000000000000000000000000000000000000000000000000174876e800 0000528c: LT 0000528d: PUSH2 0x530b 00005290: JUMPI 00005291: DUP1 00005292: PUSH32 0x0000000000000000000000000000000000000000000000000000000ba43b7400 000052b3: LT 000052b4: PUSH0 000052b5: EQ 000052b6: PUSH2 0x52f5 000052b9: JUMPI 000052ba: DUP1 000052bb: PUSH2 0x52e1 000052be: SWAP2 000052bf: PUSH0 000052c0: MLOAD 000052c1: PUSH1 0x20 000052c3: PUSH2 0x5a5d 000052c6: PUSH0 000052c7: CODECOPY 000052c8: PUSH0 000052c9: MLOAD 000052ca: SWAP1 000052cb: PUSH0 000052cc: MSTORE 000052cd: SSTORE 000052ce: PUSH0 000052cf: MLOAD 000052d0: PUSH1 0x20 000052d2: PUSH2 0x5b3d 000052d5: PUSH0 000052d6: CODECOPY 000052d7: PUSH0 000052d8: MLOAD 000052d9: SWAP1 000052da: PUSH0 000052db: MSTORE 000052dc: SLOAD 000052dd: PUSH2 0x45c6 000052e0: JUMP 000052e1: JUMPDEST 000052e2: PUSH0 000052e3: MLOAD 000052e4: PUSH1 0x20 000052e6: PUSH2 0x5b3d 000052e9: PUSH0 000052ea: CODECOPY 000052eb: PUSH0 000052ec: MLOAD 000052ed: SWAP1 000052ee: PUSH0 000052ef: MSTORE 000052f0: SSTORE 000052f1: PUSH1 0x01 000052f3: SWAP1 000052f4: JUMP 000052f5: JUMPDEST 000052f6: POP 000052f7: PUSH0 000052f8: PUSH0 000052f9: MLOAD 000052fa: PUSH1 0x20 000052fc: PUSH2 0x5a5d 000052ff: PUSH0 00005300: CODECOPY 00005301: PUSH0 00005302: MLOAD 00005303: SWAP1 00005304: PUSH0 00005305: MSTORE 00005306: SSTORE 00005307: PUSH1 0x01 00005309: SWAP1 0000530a: JUMP 0000530b: JUMPDEST 0000530c: POP 0000530d: PUSH0 0000530e: PUSH0 0000530f: MLOAD 00005310: PUSH1 0x20 00005312: PUSH2 0x5a5d 00005315: PUSH0 00005316: CODECOPY 00005317: PUSH0 00005318: MLOAD 00005319: SWAP1 0000531a: PUSH0 0000531b: MSTORE 0000531c: SSTORE 0000531d: PUSH0 0000531e: MLOAD 0000531f: PUSH1 0x20 00005321: PUSH2 0x5bfd 00005324: PUSH0 00005325: CODECOPY 00005326: PUSH0 00005327: MLOAD 00005328: SWAP1 00005329: PUSH0 0000532a: MSTORE 0000532b: SLOAD 0000532c: PUSH1 0xff 0000532e: DUP2 0000532f: AND 00005330: ISZERO 00005331: PUSH2 0x5339 00005334: JUMPI 00005335: POP 00005336: PUSH0 00005337: SWAP1 00005338: JUMP 00005339: JUMPDEST 0000533a: PUSH1 0x01 0000533c: SWAP1 0000533d: PUSH1 0xff 0000533f: NOT 00005340: AND 00005341: OR 00005342: PUSH0 00005343: MLOAD 00005344: PUSH1 0x20 00005346: PUSH2 0x5bfd 00005349: PUSH0 0000534a: CODECOPY 0000534b: PUSH0 0000534c: MLOAD 0000534d: SWAP1 0000534e: PUSH0 0000534f: MSTORE 00005350: SSTORE 00005351: PUSH2 0x5388 00005354: PUSH32 0x0000000000000000000000000000000000000000000000000000000000005460 00005375: PUSH0 00005376: MLOAD 00005377: PUSH1 0x20 00005379: PUSH2 0x5d3d 0000537c: PUSH0 0000537d: CODECOPY 0000537e: PUSH0 0000537f: MLOAD 00005380: SWAP1 00005381: PUSH0 00005382: MSTORE 00005383: SLOAD 00005384: PUSH2 0x45c6 00005387: JUMP 00005388: JUMPDEST 00005389: PUSH0 0000538a: MLOAD 0000538b: PUSH1 0x20 0000538d: PUSH2 0x5d3d 00005390: PUSH0 00005391: CODECOPY 00005392: PUSH0 00005393: MLOAD 00005394: SWAP1 00005395: PUSH0 00005396: MSTORE 00005397: SSTORE 00005398: PUSH0 00005399: SWAP1 0000539a: JUMP 0000539b: JUMPDEST 0000539c: PUSH2 0x53a3 0000539f: PUSH2 0x54c4 000053a2: JUMP 000053a3: JUMPDEST 000053a4: PUSH2 0x5252 000053a7: JUMP 000053a8: JUMPDEST 000053a9: RETURNDATASIZE 000053aa: ISZERO 000053ab: PUSH2 0x53d2 000053ae: JUMPI 000053af: RETURNDATASIZE 000053b0: SWAP1 000053b1: PUSH2 0x53b9 000053b4: DUP3 000053b5: PUSH2 0x4128 000053b8: JUMP 000053b9: JUMPDEST 000053ba: SWAP2 000053bb: PUSH2 0x53c7 000053be: PUSH1 0x40 000053c0: MLOAD 000053c1: SWAP4 000053c2: DUP5 000053c3: PUSH2 0x408d 000053c6: JUMP 000053c7: JUMPDEST 000053c8: DUP3 000053c9: MSTORE 000053ca: RETURNDATASIZE 000053cb: PUSH0 000053cc: PUSH1 0x20 000053ce: DUP5 000053cf: ADD 000053d0: RETURNDATACOPY 000053d1: JUMP 000053d2: JUMPDEST 000053d3: PUSH1 0x60 000053d5: SWAP1 000053d6: JUMP 000053d7: JUMPDEST 000053d8: PUSH1 0x40 000053da: MLOAD 000053db: PUSH4 0xa9059cbb 000053e0: PUSH1 0xe0 000053e2: SHL 000053e3: PUSH1 0x20 000053e5: DUP3 000053e6: ADD 000053e7: SWAP1 000053e8: DUP2 000053e9: MSTORE 000053ea: PUSH1 0x01 000053ec: PUSH1 0x01 000053ee: PUSH1 0xa0 000053f0: SHL 000053f1: SUB 000053f2: SWAP4 000053f3: SWAP1 000053f4: SWAP4 000053f5: AND 000053f6: PUSH1 0x24 000053f8: DUP3 000053f9: ADD 000053fa: MSTORE 000053fb: PUSH1 0x44 000053fd: DUP1 000053fe: DUP3 000053ff: ADD 00005400: SWAP5 00005401: SWAP1 00005402: SWAP5 00005403: MSTORE 00005404: SWAP3 00005405: DUP4 00005406: MSTORE 00005407: PUSH0 00005408: SWAP3 00005409: DUP4 0000540a: SWAP3 0000540b: SWAP1 0000540c: DUP4 0000540d: SWAP1 0000540e: PUSH2 0x5418 00005411: PUSH1 0x64 00005413: DUP3 00005414: PUSH2 0x408d 00005417: JUMP 00005418: JUMPDEST 00005419: MLOAD 0000541a: SWAP3 0000541b: GAS 0000541c: CALL 0000541d: PUSH2 0x5424 00005420: PUSH2 0x53a8 00005423: JUMP 00005424: JUMPDEST 00005425: DUP2 00005426: DUP1 00005427: PUSH2 0x5452 0000542a: JUMPI 0000542b: JUMPDEST 0000542c: PUSH2 0x5433 0000542f: JUMPI 00005430: POP 00005431: SWAP1 00005432: JUMP 00005433: JUMPDEST 00005434: SWAP1 00005435: POP 00005436: PUSH1 0x20 00005438: DUP2 00005439: DUP1 0000543a: MLOAD 0000543b: DUP2 0000543c: ADD 0000543d: SUB 0000543e: SLT 0000543f: PUSH2 0x03b2 00005442: JUMPI 00005443: PUSH1 0x20 00005445: ADD 00005446: MLOAD 00005447: DUP1 00005448: ISZERO 00005449: ISZERO 0000544a: DUP2 0000544b: SUB 0000544c: PUSH2 0x03b2 0000544f: JUMPI 00005450: SWAP1 00005451: JUMP 00005452: JUMPDEST 00005453: POP 00005454: DUP1 00005455: MLOAD 00005456: ISZERO 00005457: ISZERO 00005458: PUSH2 0x542b 0000545b: JUMP 0000545c: JUMPDEST 0000545d: PUSH0 0000545e: MLOAD 0000545f: PUSH1 0x20 00005461: PUSH2 0x5b3d 00005464: PUSH0 00005465: CODECOPY 00005466: PUSH0 00005467: MLOAD 00005468: SWAP1 00005469: PUSH0 0000546a: MSTORE 0000546b: SLOAD 0000546c: PUSH0 0000546d: MLOAD 0000546e: PUSH1 0x20 00005470: PUSH2 0x5a5d 00005473: PUSH0 00005474: CODECOPY 00005475: PUSH0 00005476: MLOAD 00005477: SWAP1 00005478: PUSH0 00005479: MSTORE 0000547a: SLOAD 0000547b: DUP1 0000547c: DUP3 0000547d: LT 0000547e: ISZERO 0000547f: PUSH2 0x54a7 00005482: JUMPI 00005483: POP 00005484: POP 00005485: PUSH0 00005486: PUSH0 00005487: MLOAD 00005488: PUSH1 0x20 0000548a: PUSH2 0x5b3d 0000548d: PUSH0 0000548e: CODECOPY 0000548f: PUSH0 00005490: MLOAD 00005491: SWAP1 00005492: PUSH0 00005493: MSTORE 00005494: SSTORE 00005495: JUMPDEST 00005496: PUSH0 00005497: PUSH0 00005498: MLOAD 00005499: PUSH1 0x20 0000549b: PUSH2 0x5a5d 0000549e: PUSH0 0000549f: CODECOPY 000054a0: PUSH0 000054a1: MLOAD 000054a2: SWAP1 000054a3: PUSH0 000054a4: MSTORE 000054a5: SSTORE 000054a6: JUMP 000054a7: JUMPDEST 000054a8: PUSH2 0x54b0 000054ab: SWAP2 000054ac: PUSH2 0x45d3 000054af: JUMP 000054b0: JUMPDEST 000054b1: PUSH0 000054b2: MLOAD 000054b3: PUSH1 0x20 000054b5: PUSH2 0x5b3d 000054b8: PUSH0 000054b9: CODECOPY 000054ba: PUSH0 000054bb: MLOAD 000054bc: SWAP1 000054bd: PUSH0 000054be: MSTORE 000054bf: SSTORE 000054c0: PUSH2 0x5495 000054c3: JUMP 000054c4: JUMPDEST 000054c5: PUSH2 0x54ee 000054c8: PUSH32 0x0000000000000000000000000000000000000000000000000000000000001c20 000054e9: NUMBER 000054ea: PUSH2 0x45c6 000054ed: JUMP 000054ee: JUMPDEST 000054ef: PUSH0 000054f0: MLOAD 000054f1: PUSH1 0x20 000054f3: PUSH2 0x5d3d 000054f6: PUSH0 000054f7: CODECOPY 000054f8: PUSH0 000054f9: MLOAD 000054fa: SWAP1 000054fb: PUSH0 000054fc: MSTORE 000054fd: SSTORE 000054fe: PUSH0 000054ff: PUSH0 00005500: MLOAD 00005501: PUSH1 0x20 00005503: PUSH2 0x5b3d 00005506: PUSH0 00005507: CODECOPY 00005508: PUSH0 00005509: MLOAD 0000550a: SWAP1 0000550b: PUSH0 0000550c: MSTORE 0000550d: SSTORE 0000550e: PUSH1 0xff 00005510: NOT 00005511: PUSH0 00005512: MLOAD 00005513: PUSH1 0x20 00005515: PUSH2 0x5bfd 00005518: PUSH0 00005519: CODECOPY 0000551a: PUSH0 0000551b: MLOAD 0000551c: SWAP1 0000551d: PUSH0 0000551e: MSTORE 0000551f: SLOAD 00005520: AND 00005521: PUSH0 00005522: MLOAD 00005523: PUSH1 0x20 00005525: PUSH2 0x5bfd 00005528: PUSH0 00005529: CODECOPY 0000552a: PUSH0 0000552b: MLOAD 0000552c: SWAP1 0000552d: PUSH0 0000552e: MSTORE 0000552f: SSTORE 00005530: JUMP 00005531: JUMPDEST 00005532: SWAP2 00005533: SWAP1 00005534: PUSH0 00005535: MLOAD 00005536: PUSH1 0x20 00005538: PUSH2 0x5b9d 0000553b: PUSH0 0000553c: CODECOPY 0000553d: PUSH0 0000553e: MLOAD 0000553f: SWAP1 00005540: PUSH0 00005541: MSTORE 00005542: SLOAD 00005543: ISZERO 00005544: PUSH2 0x21af 00005547: JUMPI 00005548: PUSH0 00005549: MLOAD 0000554a: PUSH1 0x20 0000554c: PUSH2 0x5cdd 0000554f: PUSH0 00005550: CODECOPY 00005551: PUSH0 00005552: MLOAD 00005553: SWAP1 00005554: PUSH0 00005555: MSTORE 00005556: SLOAD 00005557: PUSH2 0x555f 0000555a: SWAP2 0000555b: PUSH2 0x45f3 0000555e: JUMP 0000555f: JUMPDEST 00005560: SWAP2 00005561: DUP3 00005562: PUSH0 00005563: MLOAD 00005564: PUSH1 0x20 00005566: PUSH2 0x5b5d 00005569: PUSH0 0000556a: CODECOPY 0000556b: PUSH0 0000556c: MLOAD 0000556d: SWAP1 0000556e: PUSH0 0000556f: MSTORE 00005570: SLOAD 00005571: DUP1 00005572: PUSH2 0x5678 00005575: JUMPI 00005576: JUMPDEST 00005577: POP 00005578: PUSH2 0x558f 0000557b: DUP5 0000557c: PUSH0 0000557d: MLOAD 0000557e: PUSH1 0x20 00005580: PUSH2 0x5a7d 00005583: PUSH0 00005584: CODECOPY 00005585: PUSH0 00005586: MLOAD 00005587: SWAP1 00005588: PUSH0 00005589: MSTORE 0000558a: SLOAD 0000558b: PUSH2 0x45c6 0000558e: JUMP 0000558f: JUMPDEST 00005590: PUSH0 00005591: MLOAD 00005592: PUSH1 0x20 00005594: PUSH2 0x5a7d 00005597: PUSH0 00005598: CODECOPY 00005599: PUSH0 0000559a: MLOAD 0000559b: SWAP1 0000559c: PUSH0 0000559d: MSTORE 0000559e: SSTORE 0000559f: PUSH1 0x01 000055a1: PUSH1 0x01 000055a3: PUSH1 0xa0 000055a5: SHL 000055a6: SUB 000055a7: DUP3 000055a8: AND 000055a9: ISZERO 000055aa: PUSH2 0x2170 000055ad: JUMPI 000055ae: DUP2 000055af: PUSH2 0x55d9 000055b2: DUP3 000055b3: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f 000055d4: SWAP5 000055d5: PUSH2 0x574c 000055d8: JUMP 000055d9: JUMPDEST 000055da: PUSH2 0x5603 000055dd: DUP6 000055de: PUSH1 0x40 000055e0: MLOAD 000055e1: SWAP4 000055e2: DUP5 000055e3: SWAP4 000055e4: DUP5 000055e5: PUSH1 0x40 000055e7: SWAP2 000055e8: SWAP5 000055e9: SWAP4 000055ea: SWAP3 000055eb: PUSH1 0x01 000055ed: PUSH1 0x01 000055ef: PUSH1 0xa0 000055f1: SHL 000055f2: SUB 000055f3: PUSH1 0x60 000055f5: DUP4 000055f6: ADD 000055f7: SWAP7 000055f8: AND 000055f9: DUP3 000055fa: MSTORE 000055fb: PUSH1 0x20 000055fd: DUP3 000055fe: ADD 000055ff: MSTORE 00005600: ADD 00005601: MSTORE 00005602: JUMP 00005603: JUMPDEST 00005604: SUB 00005605: SWAP1 00005606: LOG1 00005607: PUSH0 00005608: MLOAD 00005609: PUSH1 0x20 0000560b: PUSH2 0x5c9d 0000560e: PUSH0 0000560f: CODECOPY 00005610: PUSH0 00005611: MLOAD 00005612: SWAP1 00005613: PUSH0 00005614: MSTORE 00005615: SLOAD 00005616: PUSH1 0xff 00005618: DUP2 00005619: AND 0000561a: ISZERO 0000561b: DUP1 0000561c: ISZERO 0000561d: PUSH2 0x5637 00005620: JUMPI 00005621: JUMPDEST 00005622: PUSH2 0x5628 00005625: JUMPI 00005626: POP 00005627: JUMP 00005628: JUMPDEST 00005629: PUSH1 0xff 0000562b: PUSH2 0x4278 0000562e: SWAP2 0000562f: PUSH1 0x10 00005631: SHR 00005632: AND 00005633: PUSH2 0x4b06 00005636: JUMP 00005637: JUMPDEST 00005638: POP 00005639: PUSH0 0000563a: MLOAD 0000563b: PUSH1 0x20 0000563d: PUSH2 0x5c7d 00005640: PUSH0 00005641: CODECOPY 00005642: PUSH0 00005643: MLOAD 00005644: SWAP1 00005645: PUSH0 00005646: MSTORE 00005647: SLOAD 00005648: PUSH2 0x2710 0000564b: PUSH2 0x5671 0000564e: PUSH0 0000564f: MLOAD 00005650: PUSH1 0x20 00005652: PUSH2 0x5a7d 00005655: PUSH0 00005656: CODECOPY 00005657: PUSH0 00005658: MLOAD 00005659: SWAP1 0000565a: PUSH0 0000565b: MSTORE 0000565c: SLOAD 0000565d: PUSH0 0000565e: MLOAD 0000565f: PUSH1 0x20 00005661: PUSH2 0x5c1d 00005664: PUSH0 00005665: CODECOPY 00005666: PUSH0 00005667: MLOAD 00005668: SWAP1 00005669: PUSH0 0000566a: MSTORE 0000566b: SLOAD 0000566c: SWAP1 0000566d: PUSH2 0x45e0 00005670: JUMP 00005671: JUMPDEST 00005672: DIV 00005673: LT 00005674: PUSH2 0x5621 00005677: JUMP 00005678: JUMPDEST 00005679: PUSH2 0x5687 0000567c: SWAP2 0000567d: POP 0000567e: PUSH2 0x2193 00005681: SWAP1 00005682: DUP6 00005683: PUSH2 0x45e0 00005686: JUMP 00005687: JUMPDEST 00005688: PUSH0 00005689: PUSH2 0x5576 0000568c: JUMP 0000568d: JUMPDEST 0000568e: PUSH1 0xff 00005690: PUSH0 00005691: MLOAD 00005692: PUSH1 0x20 00005694: PUSH2 0x5d7d 00005697: PUSH0 00005698: CODECOPY 00005699: PUSH0 0000569a: MLOAD 0000569b: SWAP1 0000569c: PUSH0 0000569d: MSTORE 0000569e: SLOAD 0000569f: PUSH1 0x40 000056a1: SHR 000056a2: AND 000056a3: ISZERO 000056a4: PUSH2 0x56a9 000056a7: JUMPI 000056a8: JUMP 000056a9: JUMPDEST 000056aa: PUSH4 0x1afcd79f 000056af: PUSH1 0xe3 000056b1: SHL 000056b2: PUSH0 000056b3: MSTORE 000056b4: PUSH1 0x04 000056b6: PUSH0 000056b7: REVERT 000056b8: JUMPDEST 000056b9: SWAP2 000056ba: PUSH1 0x01 000056bc: PUSH1 0x01 000056be: PUSH1 0xa0 000056c0: SHL 000056c1: SUB 000056c2: DUP4 000056c3: AND 000056c4: SWAP2 000056c5: DUP3 000056c6: ISZERO 000056c7: PUSH2 0x2e45 000056ca: JUMPI 000056cb: PUSH1 0x01 000056cd: PUSH1 0x01 000056cf: PUSH1 0xa0 000056d1: SHL 000056d2: SUB 000056d3: AND 000056d4: SWAP3 000056d5: DUP4 000056d6: ISZERO 000056d7: PUSH2 0x2e32 000056da: JUMPI 000056db: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000056fc: SWAP2 000056fd: PUSH2 0x5738 00005700: PUSH1 0x20 00005702: SWAP3 00005703: PUSH1 0x01 00005705: PUSH1 0x01 00005707: PUSH1 0xa0 00005709: SHL 0000570a: SUB 0000570b: AND 0000570c: PUSH0 0000570d: MSTORE 0000570e: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01 0000572f: PUSH1 0x20 00005731: MSTORE 00005732: PUSH1 0x40 00005734: PUSH0 00005735: KECCAK256 00005736: SWAP1 00005737: JUMP 00005738: JUMPDEST 00005739: DUP6 0000573a: PUSH0 0000573b: MSTORE 0000573c: DUP3 0000573d: MSTORE 0000573e: DUP1 0000573f: PUSH1 0x40 00005741: PUSH0 00005742: KECCAK256 00005743: SSTORE 00005744: PUSH1 0x40 00005746: MLOAD 00005747: SWAP1 00005748: DUP2 00005749: MSTORE 0000574a: LOG3 0000574b: JUMP 0000574c: JUMPDEST 0000574d: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000576e: PUSH1 0x20 00005770: PUSH1 0x01 00005772: PUSH1 0x01 00005774: PUSH1 0xa0 00005776: SHL 00005777: SUB 00005778: PUSH0 00005779: SWAP4 0000577a: PUSH2 0x5791 0000577d: DUP7 0000577e: PUSH0 0000577f: MLOAD 00005780: PUSH1 0x20 00005782: PUSH2 0x5b5d 00005785: PUSH0 00005786: CODECOPY 00005787: PUSH0 00005788: MLOAD 00005789: SWAP1 0000578a: PUSH0 0000578b: MSTORE 0000578c: SLOAD 0000578d: PUSH2 0x45c6 00005790: JUMP 00005791: JUMPDEST 00005792: PUSH0 00005793: MLOAD 00005794: PUSH1 0x20 00005796: PUSH2 0x5b5d 00005799: PUSH0 0000579a: CODECOPY 0000579b: PUSH0 0000579c: MLOAD 0000579d: SWAP1 0000579e: PUSH0 0000579f: MSTORE 000057a0: SSTORE 000057a1: AND 000057a2: SWAP4 000057a3: DUP5 000057a4: ISZERO 000057a5: DUP5 000057a6: EQ 000057a7: PUSH2 0x57d4 000057aa: JUMPI 000057ab: DUP1 000057ac: PUSH0 000057ad: MLOAD 000057ae: PUSH1 0x20 000057b0: PUSH2 0x5b5d 000057b3: PUSH0 000057b4: CODECOPY 000057b5: PUSH0 000057b6: MLOAD 000057b7: SWAP1 000057b8: PUSH0 000057b9: MSTORE 000057ba: SLOAD 000057bb: SUB 000057bc: PUSH0 000057bd: MLOAD 000057be: PUSH1 0x20 000057c0: PUSH2 0x5b5d 000057c3: PUSH0 000057c4: CODECOPY 000057c5: PUSH0 000057c6: MLOAD 000057c7: SWAP1 000057c8: PUSH0 000057c9: MSTORE 000057ca: SSTORE 000057cb: JUMPDEST 000057cc: PUSH1 0x40 000057ce: MLOAD 000057cf: SWAP1 000057d0: DUP2 000057d1: MSTORE 000057d2: LOG3 000057d3: JUMP 000057d4: JUMPDEST 000057d5: DUP5 000057d6: DUP5 000057d7: MSTORE 000057d8: PUSH0 000057d9: MLOAD 000057da: PUSH1 0x20 000057dc: PUSH2 0x5abd 000057df: PUSH0 000057e0: CODECOPY 000057e1: PUSH0 000057e2: MLOAD 000057e3: SWAP1 000057e4: PUSH0 000057e5: MSTORE 000057e6: DUP3 000057e7: MSTORE 000057e8: PUSH1 0x40 000057ea: DUP5 000057eb: KECCAK256 000057ec: DUP2 000057ed: DUP2 000057ee: SLOAD 000057ef: ADD 000057f0: SWAP1 000057f1: SSTORE 000057f2: PUSH2 0x57cb 000057f5: JUMP 000057f6: JUMPDEST 000057f7: PUSH2 0x57fe 000057fa: PUSH2 0x5953 000057fd: JUMP 000057fe: JUMPDEST 000057ff: PUSH2 0x5806 00005802: PUSH2 0x59bd 00005805: JUMP 00005806: JUMPDEST 00005807: PUSH1 0x40 00005809: MLOAD 0000580a: SWAP1 0000580b: PUSH1 0x20 0000580d: DUP3 0000580e: ADD 0000580f: SWAP3 00005810: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 00005831: DUP5 00005832: MSTORE 00005833: PUSH1 0x40 00005835: DUP4 00005836: ADD 00005837: MSTORE 00005838: PUSH1 0x60 0000583a: DUP3 0000583b: ADD 0000583c: MSTORE 0000583d: CHAINID 0000583e: PUSH1 0x80 00005840: DUP3 00005841: ADD 00005842: MSTORE 00005843: ADDRESS 00005844: PUSH1 0xa0 00005846: DUP3 00005847: ADD 00005848: MSTORE 00005849: PUSH1 0xa0 0000584b: DUP2 0000584c: MSTORE 0000584d: PUSH2 0x5857 00005850: PUSH1 0xc0 00005852: DUP3 00005853: PUSH2 0x408d 00005856: JUMP 00005857: JUMPDEST 00005858: MLOAD 00005859: SWAP1 0000585a: KECCAK256 0000585b: SWAP1 0000585c: JUMP 0000585d: JUMPDEST 0000585e: SWAP2 0000585f: SWAP1 00005860: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 00005881: DUP5 00005882: GT 00005883: PUSH2 0x58d4 00005886: JUMPI 00005887: SWAP2 00005888: PUSH1 0x20 0000588a: SWAP4 0000588b: PUSH1 0x80 0000588d: SWAP3 0000588e: PUSH1 0xff 00005890: PUSH0 00005891: SWAP6 00005892: PUSH1 0x40 00005894: MLOAD 00005895: SWAP5 00005896: DUP6 00005897: MSTORE 00005898: AND 00005899: DUP7 0000589a: DUP5 0000589b: ADD 0000589c: MSTORE 0000589d: PUSH1 0x40 0000589f: DUP4 000058a0: ADD 000058a1: MSTORE 000058a2: PUSH1 0x60 000058a4: DUP3 000058a5: ADD 000058a6: MSTORE 000058a7: DUP3 000058a8: DUP1 000058a9: MSTORE 000058aa: PUSH1 0x01 000058ac: GAS 000058ad: STATICCALL 000058ae: ISZERO 000058af: PUSH2 0x0d8d 000058b2: JUMPI 000058b3: PUSH0 000058b4: MLOAD 000058b5: PUSH1 0x01 000058b7: PUSH1 0x01 000058b9: PUSH1 0xa0 000058bb: SHL 000058bc: SUB 000058bd: DUP2 000058be: AND 000058bf: ISZERO 000058c0: PUSH2 0x58ca 000058c3: JUMPI 000058c4: SWAP1 000058c5: PUSH0 000058c6: SWAP1 000058c7: PUSH0 000058c8: SWAP1 000058c9: JUMP 000058ca: JUMPDEST 000058cb: POP 000058cc: PUSH0 000058cd: SWAP1 000058ce: PUSH1 0x01 000058d0: SWAP1 000058d1: PUSH0 000058d2: SWAP1 000058d3: JUMP 000058d4: JUMPDEST 000058d5: POP 000058d6: POP 000058d7: POP 000058d8: PUSH0 000058d9: SWAP2 000058da: PUSH1 0x03 000058dc: SWAP2 000058dd: SWAP1 000058de: JUMP 000058df: JUMPDEST 000058e0: PUSH1 0x04 000058e2: DUP2 000058e3: LT 000058e4: ISZERO 000058e5: PUSH2 0x593f 000058e8: JUMPI 000058e9: DUP1 000058ea: PUSH2 0x58f1 000058ed: JUMPI 000058ee: POP 000058ef: POP 000058f0: JUMP 000058f1: JUMPDEST 000058f2: PUSH1 0x01 000058f4: DUP2 000058f5: SUB 000058f6: PUSH2 0x5908 000058f9: JUMPI 000058fa: PUSH4 0xf645eedf 000058ff: PUSH1 0xe0 00005901: SHL 00005902: PUSH0 00005903: MSTORE 00005904: PUSH1 0x04 00005906: PUSH0 00005907: REVERT 00005908: JUMPDEST 00005909: PUSH1 0x02 0000590b: DUP2 0000590c: SUB 0000590d: PUSH2 0x5923 00005910: JUMPI 00005911: POP 00005912: PUSH4 0xfce698f7 00005917: PUSH1 0xe0 00005919: SHL 0000591a: PUSH0 0000591b: MSTORE 0000591c: PUSH1 0x04 0000591e: MSTORE 0000591f: PUSH1 0x24 00005921: PUSH0 00005922: REVERT 00005923: JUMPDEST 00005924: PUSH1 0x03 00005926: EQ 00005927: PUSH2 0x592d 0000592a: JUMPI 0000592b: POP 0000592c: JUMP 0000592d: JUMPDEST 0000592e: PUSH4 0x35e2f383 00005933: PUSH1 0xe2 00005935: SHL 00005936: PUSH0 00005937: MSTORE 00005938: PUSH1 0x04 0000593a: MSTORE 0000593b: PUSH1 0x24 0000593d: PUSH0 0000593e: REVERT 0000593f: JUMPDEST 00005940: PUSH4 0x4e487b71 00005945: PUSH1 0xe0 00005947: SHL 00005948: PUSH0 00005949: MSTORE 0000594a: PUSH1 0x21 0000594c: PUSH1 0x04 0000594e: MSTORE 0000594f: PUSH1 0x24 00005951: PUSH0 00005952: REVERT 00005953: JUMPDEST 00005954: PUSH2 0x595b 00005957: PUSH2 0x4235 0000595a: JUMP 0000595b: JUMPDEST 0000595c: DUP1 0000595d: MLOAD 0000595e: SWAP1 0000595f: DUP2 00005960: ISZERO 00005961: PUSH2 0x596b 00005964: JUMPI 00005965: PUSH1 0x20 00005967: ADD 00005968: KECCAK256 00005969: SWAP1 0000596a: JUMP 0000596b: JUMPDEST 0000596c: POP 0000596d: POP 0000596e: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100 0000598f: SLOAD 00005990: DUP1 00005991: ISZERO 00005992: PUSH2 0x5998 00005995: JUMPI 00005996: SWAP1 00005997: JUMP 00005998: JUMPDEST 00005999: POP 0000599a: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 000059bb: SWAP1 000059bc: JUMP 000059bd: JUMPDEST 000059be: PUSH2 0x59c5 000059c1: PUSH2 0x4304 000059c4: JUMP 000059c5: JUMPDEST 000059c6: DUP1 000059c7: MLOAD 000059c8: SWAP1 000059c9: DUP2 000059ca: ISZERO 000059cb: PUSH2 0x59d5 000059ce: JUMPI 000059cf: PUSH1 0x20 000059d1: ADD 000059d2: KECCAK256 000059d3: SWAP1 000059d4: JUMP 000059d5: JUMPDEST 000059d6: POP 000059d7: POP 000059d8: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101 000059f9: SLOAD 000059fa: DUP1 000059fb: ISZERO 000059fc: PUSH2 0x5998 000059ff: JUMPI 00005a00: SWAP1 00005a01: JUMP 00005a02: JUMPDEST 00005a03: SWAP1 00005a04: PUSH2 0x5a26 00005a07: JUMPI 00005a08: POP 00005a09: DUP1 00005a0a: MLOAD 00005a0b: ISZERO 00005a0c: PUSH2 0x5a17 00005a0f: JUMPI 00005a10: DUP1 00005a11: MLOAD 00005a12: SWAP1 00005a13: PUSH1 0x20 00005a15: ADD 00005a16: REVERT 00005a17: JUMPDEST 00005a18: PUSH4 0xd6bda275 00005a1d: PUSH1 0xe0 00005a1f: SHL 00005a20: PUSH0 00005a21: MSTORE 00005a22: PUSH1 0x04 00005a24: PUSH0 00005a25: REVERT 00005a26: JUMPDEST 00005a27: DUP2 00005a28: MLOAD 00005a29: ISZERO 00005a2a: DUP1 00005a2b: PUSH2 0x5a53 00005a2e: JUMPI 00005a2f: JUMPDEST 00005a30: PUSH2 0x5a37 00005a33: JUMPI 00005a34: POP 00005a35: SWAP1 00005a36: JUMP 00005a37: JUMPDEST 00005a38: PUSH1 0x01 00005a3a: PUSH1 0x01 00005a3c: PUSH1 0xa0 00005a3e: SHL 00005a3f: SUB 00005a40: SWAP1 00005a41: PUSH4 0x9996b315 00005a46: PUSH1 0xe0 00005a48: SHL 00005a49: PUSH0 00005a4a: MSTORE 00005a4b: AND 00005a4c: PUSH1 0x04 00005a4e: MSTORE 00005a4f: PUSH1 0x24 00005a51: PUSH0 00005a52: REVERT 00005a53: JUMPDEST 00005a54: POP 00005a55: DUP1 00005a56: EXTCODESIZE 00005a57: ISZERO 00005a58: PUSH2 0x5a2f 00005a5b: JUMP 00005a5c: INVALID 00005a5d: UNKNOWN(0x0E) 00005a5e: UNKNOWN(0xE2) 00005a5f: UNKNOWN(0xD9) 00005a60: UNKNOWN(0xDE) 00005a61: DUP4 00005a62: SWAP3 00005a63: UNKNOWN(0xA8) 00005a64: CALL 00005a65: PUSH32 0xf2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00398b6721f87b10fba95 00005a86: LT 00005a87: PUSH5 0x9effb5cccf 00005a8d: UNKNOWN(0xD7) 00005a8e: UNKNOWN(0xD0) 00005a8f: UNKNOWN(0x4B) 00005a90: LOG1 00005a91: UNKNOWN(0xBF) 00005a92: PUSH13 0x44593ef8229732a7ea0352c632 00005aa0: SELFBALANCE 00005aa1: UNKNOWN(0xE1) 00005aa2: DELEGATECALL 00005aa3: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1 00005ac2: DELEGATECALL 00005ac3: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d942 00005ae2: PUSH2 0xc751 00005ae5: PUSH29 0xc8ff89f61c0ce93598e3c849801011dee649a6a557d102363bd9d3ac01 00005b03: UNKNOWN(0xB0) 00005b04: MCOPY 00005b05: UNKNOWN(0xDE) 00005b06: UNKNOWN(0xDE) 00005b07: PUSH7 0xfbb9c4f73d99f1 00005b0f: BASEFEE 00005b10: AND 00005b11: PUSH7 0xc51eee8df34d23 00005b19: UNKNOWN(0xA6) 00005b1a: UNKNOWN(0x1F) 00005b1b: BASEFEE 00005b1c: STOP 00005b1d: MSTORE 00005b1e: UNKNOWN(0xC6) 00005b1f: ORIGIN 00005b20: SELFBALANCE 00005b21: UNKNOWN(0xE1) 00005b22: DELEGATECALL 00005b23: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace040ee2d9de83 00005b42: SWAP3 00005b43: UNKNOWN(0xA8) 00005b44: CALL 00005b45: PUSH32 0xf2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00152c63247e1f47db19d 00005b66: TLOAD 00005b67: UNKNOWN(0xE0) 00005b68: CHAINID 00005b69: STOP 00005b6a: ADDRESS 00005b6b: UNKNOWN(0xC4) 00005b6c: SWAP8 00005b6d: CREATE 00005b6e: PUSH8 0xca4cebf71ba98eea 00005b77: UNKNOWN(0xDA) 00005b78: UNKNOWN(0xBE) 00005b79: KECCAK256 00005b7a: UNKNOWN(0xBA) 00005b7b: UNKNOWN(0xCE) 00005b7c: MUL 00005b7d: LOG1 00005b7e: PUSH11 0x46d94261c7517cc8ff89f6 00005b8a: SHR 00005b8b: UNKNOWN(0x0C) 00005b8c: UNKNOWN(0xE9) 00005b8d: CALLDATALOAD 00005b8e: SWAP9 00005b8f: UNKNOWN(0xE3) 00005b90: UNKNOWN(0xC8) 00005b91: BLOBHASH 00005b92: DUP1 00005b93: LT 00005b94: GT 00005b95: UNKNOWN(0xDE) 00005b96: UNKNOWN(0xE6) 00005b97: BLOBHASH 00005b98: UNKNOWN(0xA6) 00005b99: UNKNOWN(0xA5) 00005b9a: JUMPI 00005b9b: UNKNOWN(0xD1) 00005b9c: SUB 00005b9d: SWAP9 00005b9e: UNKNOWN(0xB6) 00005b9f: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c 00005bb3: DIFFICULTY 00005bb4: MSIZE 00005bb5: RETURNDATACOPY 00005bb6: UNKNOWN(0xF8) 00005bb7: UNKNOWN(0x22) 00005bb8: SWAP8 00005bb9: ORIGIN 00005bba: UNKNOWN(0xA7) 00005bbb: UNKNOWN(0xEA) 00005bbc: DIV 00005bbd: SWAP9 00005bbe: UNKNOWN(0xB6) 00005bbf: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c 00005bd3: DIFFICULTY 00005bd4: MSIZE 00005bd5: RETURNDATACOPY 00005bd6: UNKNOWN(0xF8) 00005bd7: UNKNOWN(0x22) 00005bd8: SWAP8 00005bd9: ORIGIN 00005bda: UNKNOWN(0xA7) 00005bdb: UNKNOWN(0xEA) 00005bdc: STOP 00005bdd: CALLDATASIZE 00005bde: ADDMOD 00005bdf: SWAP5 00005be0: LOG1 00005be1: EXTCODESIZE 00005be2: LOG1 00005be3: LOG3 00005be4: UNKNOWN(0x21) 00005be5: MOD 00005be6: PUSH8 0xc828492db98dca3e 00005bef: KECCAK256 00005bf0: PUSH23 0xcc3735a920a3ca505d382bbc0ee2d9de8392a8f17ff2bb 00005c08: PUSH27 0x24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00298b6721f87b10f 00005c24: UNKNOWN(0xBA) 00005c25: SWAP6 00005c26: LT 00005c27: PUSH5 0x9effb5cccf 00005c2d: UNKNOWN(0xD7) 00005c2e: UNKNOWN(0xD0) 00005c2f: UNKNOWN(0x4B) 00005c30: LOG1 00005c31: UNKNOWN(0xBF) 00005c32: PUSH13 0x44593ef8229732a7ea0a98b672 00005c40: UNKNOWN(0x1F) 00005c41: DUP8 00005c42: UNKNOWN(0xB1) 00005c43: UNKNOWN(0x0F) 00005c44: UNKNOWN(0xBA) 00005c45: SWAP6 00005c46: LT 00005c47: PUSH5 0x9effb5cccf 00005c4d: UNKNOWN(0xD7) 00005c4e: UNKNOWN(0xD0) 00005c4f: UNKNOWN(0x4B) 00005c50: LOG1 00005c51: UNKNOWN(0xBF) 00005c52: PUSH13 0x44593ef8229732a7ea0102dd7b 00005c60: UNKNOWN(0xC7) 00005c61: UNKNOWN(0xDE) 00005c62: UNKNOWN(0xC4) 00005c63: UNKNOWN(0xDC) 00005c64: UNKNOWN(0xEE) 00005c65: UNKNOWN(0xDD) 00005c66: UNKNOWN(0xA7) 00005c67: PUSH22 0xe58dd541e08a116c6c53815c0bd028192f7b62680098 00005c7e: UNKNOWN(0xB6) 00005c7f: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c 00005c93: DIFFICULTY 00005c94: MSIZE 00005c95: RETURNDATACOPY 00005c96: UNKNOWN(0xF8) 00005c97: UNKNOWN(0x22) 00005c98: SWAP8 00005c99: ORIGIN 00005c9a: UNKNOWN(0xA7) 00005c9b: UNKNOWN(0xEA) 00005c9c: SDIV 00005c9d: SWAP9 00005c9e: UNKNOWN(0xB6) 00005c9f: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c 00005cb3: DIFFICULTY 00005cb4: MSIZE 00005cb5: RETURNDATACOPY 00005cb6: UNKNOWN(0xF8) 00005cb7: UNKNOWN(0x22) 00005cb8: SWAP8 00005cb9: ORIGIN 00005cba: UNKNOWN(0xA7) 00005cbb: UNKNOWN(0xEA) 00005cbc: MOD 00005cbd: SWAP9 00005cbe: UNKNOWN(0xB6) 00005cbf: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c 00005cd3: DIFFICULTY 00005cd4: MSIZE 00005cd5: RETURNDATACOPY 00005cd6: UNKNOWN(0xF8) 00005cd7: UNKNOWN(0x22) 00005cd8: SWAP8 00005cd9: ORIGIN 00005cda: UNKNOWN(0xA7) 00005cdb: UNKNOWN(0xEA) 00005cdc: ADDMOD 00005cdd: CALLDATASIZE 00005cde: EXTCODESIZE 00005cdf: UNKNOWN(0xD9) 00005ce0: UNKNOWN(0xD3) 00005ce1: UNKNOWN(0xAC) 00005ce2: ADD 00005ce3: UNKNOWN(0xB0) 00005ce4: MCOPY 00005ce5: UNKNOWN(0xDE) 00005ce6: UNKNOWN(0xDE) 00005ce7: PUSH7 0xfbb9c4f73d99f1 00005cef: BASEFEE 00005cf0: AND 00005cf1: PUSH7 0xc51eee8df34d23 00005cf9: UNKNOWN(0xA6) 00005cfa: UNKNOWN(0x1F) 00005cfb: BASEFEE 00005cfc: ADD 00005cfd: SWAP12 00005cfe: PUSH24 0x9b17422d0df92223018b32b4d1fa46e071723d6817e2486d 00005d17: STOP 00005d18: EXTCODESIZE 00005d19: UNKNOWN(0xEC) 00005d1a: UNKNOWN(0xC5) 00005d1b: PUSH0 00005d1c: STOP 00005d1d: SWAP9 00005d1e: UNKNOWN(0xB6) 00005d1f: PUSH19 0x1f87b10fba9510649effb5cccfd7d04ba1bf6c 00005d33: DIFFICULTY 00005d34: MSIZE 00005d35: RETURNDATACOPY 00005d36: UNKNOWN(0xF8) 00005d37: UNKNOWN(0x22) 00005d38: SWAP8 00005d39: ORIGIN 00005d3a: UNKNOWN(0xA7) 00005d3b: UNKNOWN(0xEA) 00005d3c: UNKNOWN(0x0C) 00005d3d: UNKNOWN(0x0E) 00005d3e: UNKNOWN(0xE2) 00005d3f: UNKNOWN(0xD9) 00005d40: UNKNOWN(0xDE) 00005d41: DUP4 00005d42: SWAP3 00005d43: UNKNOWN(0xA8) 00005d44: CALL 00005d45: PUSH32 0xf2bb7a24b72fd27e2cf4ac5cd7fd56e5bf7bdb439eb00098b6721f87b10fba95 00005d66: LT 00005d67: PUSH5 0x9effb5cccf 00005d6d: UNKNOWN(0xD7) 00005d6e: UNKNOWN(0xD0) 00005d6f: UNKNOWN(0x4B) 00005d70: LOG1 00005d71: UNKNOWN(0xBF) 00005d72: PUSH13 0x44593ef8229732a7ea07f0c57e 00005d80: AND 00005d81: DUP5 00005d82: UNKNOWN(0x0D) 00005d83: CREATE 00005d84: BLOCKHASH 00005d85: CALL 00005d86: POP 00005d87: DUP9 00005d88: UNKNOWN(0xDC) 00005d89: UNKNOWN(0x2F) 00005d8a: DUP2 00005d8b: INVALID 00005d8c: CODECOPY 00005d8d: SHR 00005d8e: CODECOPY 00005d8f: UNKNOWN(0x23) 00005d90: UNKNOWN(0xBE) 00005d91: UNKNOWN(0xC7) 00005d92: RETURNDATACOPY 00005d93: UNKNOWN(0x23) 00005d94: UNKNOWN(0xA9) 00005d95: PUSH7 0x2efc9c229c6a00 00005d9d: LOG2 00005d9e: PUSH5 0x6970667358 00005da4: UNKNOWN(0x22) 00005da5: SLT 00005da6: KECCAK256 00005da7: SMOD 00005da8: PUSH3 0x51e6cf 00005dac: DUP9 00005dad: UNKNOWN(0xC5) 00005dae: UNKNOWN(0xCF) 00005daf: GASLIMIT 00005db0: UNKNOWN(0xD9) 00005db1: UNKNOWN(0xD6) 00005db2: UNKNOWN(0x4D) 00005db3: UNKNOWN(0xAE) 00005db4: RETURNDATASIZE 00005db5: ADDMOD 00005db6: ISZERO 00005db7: PUSH14 0x28e9178a57819fd6991e336c62e3 00005dc6: DUP2 00005dc7: PUSH5 0x736f6c6343 00005dcd: STOP 00005dce: ADDMOD 00005dcf: SHR 00005dd0: STOP 00005dd1: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x313988aeccf65ff50c7cd44e2d7f510ba70dc2c7d77474dc9a7986ab0e78a2a1
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x313988aeccf65ff50c7cd44e2d7f510ba70dc2c7d77474dc9a7986ab0e78a2a1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0130c4d2",
"selector": "0x0130c4d2",
"calldata_variants": [
"0x0130c4d2",
"0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f45684a",
"selector": "0x0f45684a",
"calldata_variants": [
"0x0f45684a",
"0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x106e846b",
"selector": "0x106e846b",
"calldata_variants": [
"0x106e846b",
"0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10a470ab",
"selector": "0x10a470ab",
"calldata_variants": [
"0x10a470ab",
"0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x113ac8f6",
"selector": "0x113ac8f6",
"calldata_variants": [
"0x113ac8f6",
"0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7793,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 23202,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 23234,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 23327,
"type": "tx_origin_used"
},
{
"pc": 23481,
"type": "tx_origin_used"
},
{
"pc": 23513,
"type": "tx_origin_used"
},
{
"pc": 23705,
"type": "tx_origin_used"
},
{
"pc": 23737,
"type": "tx_origin_used"
},
{
"pc": 23769,
"type": "tx_origin_used"
},
{
"pc": 23865,
"type": "tx_origin_used"
}
],
"delegatecall_count": 4,
"untrusted_delegatecall_count": 4
}
|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0130c4d2",
"selector": "0x0130c4d2",
"calldata_variants": [
"0x0130c4d2",
"0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f45684a",
"selector": "0x0f45684a",
"calldata_variants": [
"0x0f45684a",
"0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x106e846b",
"selector": "0x106e846b",
"calldata_variants": [
"0x106e846b",
"0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10a470ab",
"selector": "0x10a470ab",
"calldata_variants": [
"0x10a470ab",
"0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x113ac8f6",
"selector": "0x113ac8f6",
"calldata_variants": [
"0x113ac8f6",
"0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 23327,
"type": "tx_origin_used"
},
{
"pc": 23481,
"type": "tx_origin_used"
},
{
"pc": 23513,
"type": "tx_origin_used"
},
{
"pc": 23705,
"type": "tx_origin_used"
},
{
"pc": 23737,
"type": "tx_origin_used"
},
{
"pc": 23769,
"type": "tx_origin_used"
},
{
"pc": 23865,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xd425df983498242230df6de4887266d9d9568c71f65825ee9b9ace5c3007bddd
call_targets:
0x09019548ef289cf2694530b7a22420ad9f891582
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd425df983498242230df6de4887266d9d9568c71f65825ee9b9ace5c3007bddd",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x09019548ef289cf2694530b7a22420ad9f891582"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0130c4d2",
"selector": "0x0130c4d2",
"calldata_variants": [
"0x0130c4d2",
"0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f45684a",
"selector": "0x0f45684a",
"calldata_variants": [
"0x0f45684a",
"0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x106e846b",
"selector": "0x106e846b",
"calldata_variants": [
"0x106e846b",
"0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10a470ab",
"selector": "0x10a470ab",
"calldata_variants": [
"0x10a470ab",
"0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x113ac8f6",
"selector": "0x113ac8f6",
"calldata_variants": [
"0x113ac8f6",
"0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 21532,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 23140,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 23364,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 5,
"guards_detected": [
{
"pc": 23327,
"type": "tx_origin_used"
},
{
"pc": 23481,
"type": "tx_origin_used"
},
{
"pc": 23513,
"type": "tx_origin_used"
},
{
"pc": 23705,
"type": "tx_origin_used"
},
{
"pc": 23737,
"type": "tx_origin_used"
},
{
"pc": 23769,
"type": "tx_origin_used"
},
{
"pc": 23865,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x5fdccbf7262965414086f0a19f64ac774ee364532900d399aaa3ac1a94b98aac
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x5fdccbf7262965414086f0a19f64ac774ee364532900d399aaa3ac1a94b98aac",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0130c4d2",
"selector": "0x0130c4d2",
"calldata_variants": [
"0x0130c4d2",
"0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f45684a",
"selector": "0x0f45684a",
"calldata_variants": [
"0x0f45684a",
"0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x106e846b",
"selector": "0x106e846b",
"calldata_variants": [
"0x106e846b",
"0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10a470ab",
"selector": "0x10a470ab",
"calldata_variants": [
"0x10a470ab",
"0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x113ac8f6",
"selector": "0x113ac8f6",
"calldata_variants": [
"0x113ac8f6",
"0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 2,
"create2_count": 0
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xd425df983498242230df6de4887266d9d9568c71f65825ee9b9ace5c3007bddd
call_targets:
0x09019548ef289cf2694530b7a22420ad9f891582
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd425df983498242230df6de4887266d9d9568c71f65825ee9b9ace5c3007bddd",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x09019548ef289cf2694530b7a22420ad9f891582"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0130c4d2",
"selector": "0x0130c4d2",
"calldata_variants": [
"0x0130c4d2",
"0x0130c4d20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f45684a",
"selector": "0x0f45684a",
"calldata_variants": [
"0x0f45684a",
"0x0f45684a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x106e846b",
"selector": "0x106e846b",
"calldata_variants": [
"0x106e846b",
"0x106e846b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10a470ab",
"selector": "0x10a470ab",
"calldata_variants": [
"0x10a470ab",
"0x10a470ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x113ac8f6",
"selector": "0x113ac8f6",
"calldata_variants": [
"0x113ac8f6",
"0x113ac8f60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 21532,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 23140,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 23364,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 5,
"guards_detected": [
{
"pc": 23327,
"type": "tx_origin_used"
},
{
"pc": 23481,
"type": "tx_origin_used"
},
{
"pc": 23513,
"type": "tx_origin_used"
},
{
"pc": 23705,
"type": "tx_origin_used"
},
{
"pc": 23737,
"type": "tx_origin_used"
},
{
"pc": 23769,
"type": "tx_origin_used"
},
{
"pc": 23865,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 5
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 4
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 2,
"create2_count": 0
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 6
}
|