d7530101-36b1-4fae-8f33-0dec08c21c66
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 |
|---|---|---|---|---|
| 31149 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 76708 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 76709 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 76710 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 76711 | capability.graph | complete | 1 / 3 | 1 week ago |
| 76712 | detector.run | complete | 1 / 3 | 1 week ago |
| 76713 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:578879] OpenAI Codex v0.77.0 (research preview)
[codex:578879] --------
[codex:578879] workdir: /tmp/codex-multi-9m1t9jzn
[codex:578879] model: gpt-5.2-codex
[codex:578879] provider: openai
[codex:578879] approval: never
[codex:578879] sandbox: read-only
[codex:578879] reasoning effort: xhigh
[codex:578879] reasoning summaries: auto
[codex:578879] session id: 019b7b8d-c348-7981-baef-5dd4b37bc13f
[codex:578879] --------
[codex:578879] user
[codex:578879] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:578879]
[codex:578879] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:578879]
[codex:578879] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:578879] - Gas inefficiency, code quality, naming, or best practices
[codex:578879] - Theoretical vulnerabilities without a clear extraction path
[codex:578879] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:578879] - Front-running unless it enables theft beyond MEV
[codex:578879] - DoS, griefing, or issues that don't result in attacker profit
[codex:578879] - Missing events, view function issues, or informational findings
[codex:578879]
[codex:578879] HIGH-VALUE PATTERNS TO HUNT:
[codex:578879] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:578879] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:578879] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:578879] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:578879] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:578879] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:578879] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:578879] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:578879] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:578879]
[codex:578879] For each finding, you MUST provide:
[codex:578879] 1. Exact file and line numbers of vulnerable code
[codex:578879] 2. Step-by-step exploit transaction sequence
[codex:578879] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:578879]
[codex:578879] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:578879]
[codex:578879] Output MUST be valid JSON matching the provided schema.
[codex:578879] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:578879] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:578879] mcp startup: no servers
[codex:578879]
[codex:578879] thinking
[codex:578879] **Planning to read AUDIT_BUNDLE.txt**
[codex:578879] exec
[codex:578879] /bin/bash -lc ls in /tmp/codex-multi-9m1t9jzn succeeded in 5ms:
[codex:578879] AUDIT_BUNDLE.txt
[codex:578879] codex-output-schema.json
[codex:578879] contracts
[codex:578879] exec
[codex:578879] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-9m1t9jzn succeeded in 5ms:
[codex:578879] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:578879]
[codex:578879] ================================================================================
[codex:578879] FILE: contracts/BlockDirectCall.sol
[codex:578879] ================================================================================
[codex:578879] /*
[codex:578879] Copyright 2019-2022 StarkWare Industries Ltd.
[codex:578879]
[codex:578879] Licensed under the Apache License, Version 2.0 (the "License").
[codex:578879] You may not use this file except in compliance with the License.
[codex:578879] You may obtain a copy of the License at
[codex:578879]
[codex:578879] https://www.starkware.co/open-source-license/
[codex:578879]
[codex:578879] Unless required by applicable law or agreed to in writing,
[codex:578879] software distributed under the License is distributed on an "AS IS" BASIS,
[codex:578879] WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:578879] See the License for the specific language governing permissions
[codex:578879] and limitations under the License.
[codex:578879] */
[codex:578879]
[codex:578879] thinking
[codex:578879] **Analyzing proxy initialization vulnerability**
[codex:578879] exec
[codex:578879] /bin/bash -lc 'rg --files contracts' in /tmp/codex-multi-9m1t9jzn succeeded in 9ms:
[codex:578879] contracts/MainStorage.sol
[codex:578879] contracts/MainDispatcher.sol
[codex:578879] contracts/ProxyStorage.sol
[codex:578879] contracts/IDispatcherBase.sol
[codex:578879] contracts/GovernanceStorage.sol
[codex:578879] contracts/MainDispatcherBase.sol
[codex:578879] contracts/MGovernance.sol
[codex:578879] contracts/SubContractor.sol
[codex:578879] contracts/Common.sol
[codex:578879] contracts/BlockDirectCall.sol
[codex:578879] contracts/StarkExchange.sol
[codex:578879] contracts/Identity.sol
[codex:578879]
[codex:578879]
[codex:578879] thinking
[codex:578879] **Analyzing proxy and initialize vulnerability**
[codex:578879] thinking
[codex:578879] **Validating proxy usage and initialize access**
[codex:578879]
[codex:578879] I'm sorting through whether the dispatcher is used behind an outer proxy and how that affects calling initialize. It seems initialize must be called via delegatecall through a proxy, since direct calls get blocked. The absence of proxy code means I can't confirm gating, but given typical patterns, external users may be able to call initialize via the proxy fallback, potentially reinitializing sub-contracts maliciously. The implications hinge on proxy access controls not being present or unknown here.
[codex:578879] exec
[codex:578879] /bin/bash -lc 'nl -ba contracts/MainDispatcherBase.sol' in /tmp/codex-multi-9m1t9jzn succeeded in 6ms:
[codex:578879] 1 /*
[codex:578879] 2 Copyright 2019-2022 StarkWare Industries Ltd.
[codex:578879] 3
[codex:578879] 4 Licensed under the Apache License, Version 2.0 (the "License").
[codex:578879] 5 You may not use this file except in compliance with the License.
[codex:578879] 6 You may obtain a copy of the License at
[codex:578879] 7
[codex:578879] 8 https://www.starkware.co/open-source-license/
[codex:578879] 9
[codex:578879] 10 Unless required by applicable law or agreed to in writing,
[codex:578879] 11 software distributed under the License is distributed on an "AS IS" BASIS,
[codex:578879] 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:578879] 13 See the License for the specific language governing permissions
[codex:578879] 14 and limitations under the License.
[codex:578879] 15 */
[codex:578879] 16 // SPDX-License-Identifier: Apache-2.0.
[codex:578879] 17 pragma solidity ^0.6.12;
[codex:578879] 18
[codex:578879] 19 import "SubContractor.sol";
[codex:578879] 20 import "IDispatcherBase.sol";
[codex:578879]
[codex:578879] thinking
[codex:578879] **Preparing detailed vulnerability report**
[codex:578879] exec
[codex:578879] /bin/bash -lc 'nl -ba contracts/MainDispatcher.sol' in /tmp/codex-multi-9m1t9jzn succeeded in 5ms:
[codex:578879] 1 /*
[codex:578879] 2 Copyright 2019-2022 StarkWare Industries Ltd.
[codex:578879] 3
[codex:578879] 4 Licensed under the Apache License, Version 2.0 (the "License").
[codex:578879] 5 You may not use this file except in compliance with the License.
[codex:578879] 6 You may obtain a copy of the License at
[codex:578879] 7
[codex:578879] 8 https://www.starkware.co/open-source-license/
[codex:578879] 9
[codex:578879] 10 Unless required by applicable law or agreed to in writing,
[codex:578879] 11 software distributed under the License is distributed on an "AS IS" BASIS,
[codex:578879] 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:578879] 13 See the License for the specific language governing permissions
[codex:578879] 14 and limitations under the License.
[codex:578879] 15 */
[codex:578879] 16 // SPDX-License-Identifier: Apache-2.0.
[codex:578879] 17 pragma solidity ^0.6.12;
[codex:578879] 18
[codex:578879] 19 import "MainStorage.sol";
[codex:578879] 20 import "MainDispatcherBase.sol";
[codex:578879]
[codex:578879] thinking
[codex:578879] **Constructing detailed vulnerability report**
[codex:578879] codex
[codex:578879] {"no_findings":false,"summary":"Critical re-initialization path lets any caller replace sub-contracts and drain all assets held by the dispatcher/proxy.","findings":[{"severity":"critical","category":"access_control","title":"Unprotected initialize lets attacker overwrite subContracts and execute arbitrary delegatecall logic","exploit_scenario":"1) Deploy six malicious SubContractor contracts (one per index 1..6) with identify() returning the expected ID string and validatedSelectors() returning at least one selector that maps to their index; each contract’s selector handler/fallback transfers ETH/ERC20s from address(this) to the attacker.\n2) Call the proxy/dispatcher entrypoint with initialize(data) where data encodes the six attacker addresses + EIC=0 and no extra init data. Because initialize is external, lacks auth, and returns early when additionalDataSize==0, it overwrites subContracts without any initialization guard.\n3) Call the dispatcher with one of the precomputed selectors so fallback delegates into the attacker contract and drains funds.\nProfit potential: essentially the full on-chain balances held by the dispatcher/proxy (ETH + all custodial ERC20/NFT balances).","recommendation":"Restrict initialize to governance/upgrade flow only, and enforce a one-time initialization flag or call initializationSentinel before writing subContracts even when additionalDataSize==0.","evidence":"initialize is external and writes subContracts before any guard, then returns early when additionalDataSize==0, skipping initializationSentinel; no access control is present on initialize.","locations":["contracts/MainDispatcherBase.sol:124","contracts/MainDispatcherBase.sol:144","contracts/MainDispatcherBase.sol:171"]}]}
[codex:578879] tokens used
[codex:578879] 29,406
[codex:578879] {"no_findings":false,"summary":"Critical re-initialization path lets any caller replace sub-contracts and drain all assets held by the dispatcher/proxy.","findings":[{"severity":"critical","category":"access_control","title":"Unprotected initialize lets attacker overwrite subContracts and execute arbitrary delegatecall logic","exploit_scenario":"1) Deploy six malicious SubContractor contracts (one per index 1..6) with identify() returning the expected ID string and validatedSelectors() returning at least one selector that maps to their index; each contract’s selector handler/fallback transfers ETH/ERC20s from address(this) to the attacker.\n2) Call the proxy/dispatcher entrypoint with initialize(data) where data encodes the six attacker addresses + EIC=0 and no extra init data. Because initialize is external, lacks auth, and returns early when additionalDataSize==0, it overwrites subContracts without any initialization guard.\n3) Call the dispatcher with one of the precomputed selectors so fallback delegates into the attacker contract and drains funds.\nProfit potential: essentially the full on-chain balances held by the dispatcher/proxy (ETH + all custodial ERC20/NFT balances).","recommendation":"Restrict initialize to governance/upgrade flow only, and enforce a one-time initialization flag or call initializationSentinel before writing subContracts even when additionalDataSize==0.","evidence":"initialize is external and writes subContracts before any guard, then returns early when additionalDataSize==0, skipping initializationSentinel; no access control is present on initialize.","locations":["contracts/MainDispatcherBase.sol:124","contracts/MainDispatcherBase.sol:144","contracts/MainDispatcherBase.sol:171"]}]}
{
"codex": {
"ran_at": "2026-01-01T21:57:41.321342+00:00",
"returncode": 0
},
"summary": "Critical re-initialization path lets any caller replace sub-contracts and drain all assets held by the dispatcher/proxy.",
"raw_final": {
"summary": "Critical re-initialization path lets any caller replace sub-contracts and drain all assets held by the dispatcher/proxy.",
"findings": [
{
"title": "Unprotected initialize lets attacker overwrite subContracts and execute arbitrary delegatecall logic",
"category": "access_control",
"evidence": "initialize is external and writes subContracts before any guard, then returns early when additionalDataSize==0, skipping initializationSentinel; no access control is present on initialize.",
"severity": "critical",
"locations": [
"contracts/MainDispatcherBase.sol:124",
"contracts/MainDispatcherBase.sol:144",
"contracts/MainDispatcherBase.sol:171"
],
"recommendation": "Restrict initialize to governance/upgrade flow only, and enforce a one-time initialization flag or call initializationSentinel before writing subContracts even when additionalDataSize==0.",
"exploit_scenario": "1) Deploy six malicious SubContractor contracts (one per index 1..6) with identify() returning the expected ID string and validatedSelectors() returning at least one selector that maps to their index; each contract\u2019s selector handler/fallback transfers ETH/ERC20s from address(this) to the attacker.\n2) Call the proxy/dispatcher entrypoint with initialize(data) where data encodes the six attacker addresses + EIC=0 and no extra init data. Because initialize is external, lacks auth, and returns early when additionalDataSize==0, it overwrites subContracts without any initialization guard.\n3) Call the dispatcher with one of the precomputed selectors so fallback delegates into the attacker contract and drains funds.\nProfit potential: essentially the full on-chain balances held by the dispatcher/proxy (ETH + all custodial ERC20/NFT balances)."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0043 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x2f9014b4 00000019: EQ 0000001a: PUSH2 0x0128 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x439fab91 00000024: EQ 00000025: PUSH2 0x0178 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xd4e878e8 0000002f: EQ 00000030: PUSH2 0x01f5 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xffa1ad74 0000003a: EQ 0000003b: PUSH2 0x029e 0000003e: JUMPI 0000003f: PUSH2 0x0095 00000042: JUMP 00000043: JUMPDEST 00000044: CALLDATASIZE 00000045: PUSH2 0x0095 00000048: JUMPI 00000049: PUSH1 0x40 0000004b: DUP1 0000004c: MLOAD 0000004d: PUSH3 0x461bcd 00000051: PUSH1 0xe5 00000053: SHL 00000054: DUP2 00000055: MSTORE 00000056: PUSH1 0x20 00000058: PUSH1 0x04 0000005a: DUP3 0000005b: ADD 0000005c: DUP2 0000005d: SWAP1 0000005e: MSTORE 0000005f: PUSH1 0x24 00000061: DUP3 00000062: ADD 00000063: MSTORE 00000064: PUSH32 0x434f4e54524143545f4e4f545f45585045435445445f544f5f52454345495645 00000085: PUSH1 0x44 00000087: DUP3 00000088: ADD 00000089: MSTORE 0000008a: SWAP1 0000008b: MLOAD 0000008c: SWAP1 0000008d: DUP2 0000008e: SWAP1 0000008f: SUB 00000090: PUSH1 0x64 00000092: ADD 00000093: SWAP1 00000094: REVERT 00000095: JUMPDEST 00000096: PUSH1 0x00 00000098: PUSH2 0x00ac 0000009b: PUSH1 0x00 0000009d: CALLDATALOAD 0000009e: PUSH1 0x01 000000a0: PUSH1 0x01 000000a2: PUSH1 0xe0 000000a4: SHL 000000a5: SUB 000000a6: NOT 000000a7: AND 000000a8: PUSH2 0x02b3 000000ab: JUMP 000000ac: JUMPDEST 000000ad: SWAP1 000000ae: POP 000000af: PUSH1 0x01 000000b1: PUSH1 0x01 000000b3: PUSH1 0xa0 000000b5: SHL 000000b6: SUB 000000b7: DUP2 000000b8: AND 000000b9: PUSH2 0x0104 000000bc: JUMPI 000000bd: PUSH1 0x40 000000bf: DUP1 000000c0: MLOAD 000000c1: PUSH3 0x461bcd 000000c5: PUSH1 0xe5 000000c7: SHL 000000c8: DUP2 000000c9: MSTORE 000000ca: PUSH1 0x20 000000cc: PUSH1 0x04 000000ce: DUP3 000000cf: ADD 000000d0: MSTORE 000000d1: PUSH1 0x18 000000d3: PUSH1 0x24 000000d5: DUP3 000000d6: ADD 000000d7: MSTORE 000000d8: PUSH24 0x2727afa1a7a72a2920a1aa2fa327a92fa32aa721aa24a7a7 000000f1: PUSH1 0x41 000000f3: SHL 000000f4: PUSH1 0x44 000000f6: DUP3 000000f7: ADD 000000f8: MSTORE 000000f9: SWAP1 000000fa: MLOAD 000000fb: SWAP1 000000fc: DUP2 000000fd: SWAP1 000000fe: SUB 000000ff: PUSH1 0x64 00000101: ADD 00000102: SWAP1 00000103: REVERT 00000104: JUMPDEST 00000105: CALLDATASIZE 00000106: PUSH1 0x00 00000108: DUP1 00000109: CALLDATACOPY 0000010a: PUSH1 0x00 0000010c: DUP1 0000010d: CALLDATASIZE 0000010e: PUSH1 0x00 00000110: DUP5 00000111: GAS 00000112: DELEGATECALL 00000113: RETURNDATASIZE 00000114: PUSH1 0x00 00000116: DUP1 00000117: RETURNDATACOPY 00000118: DUP1 00000119: DUP1 0000011a: ISZERO 0000011b: PUSH2 0x0123 0000011e: JUMPI 0000011f: RETURNDATASIZE 00000120: PUSH1 0x00 00000122: RETURN 00000123: JUMPDEST 00000124: RETURNDATASIZE 00000125: PUSH1 0x00 00000127: REVERT 00000128: JUMPDEST 00000129: CALLVALUE 0000012a: DUP1 0000012b: ISZERO 0000012c: PUSH2 0x0134 0000012f: JUMPI 00000130: PUSH1 0x00 00000132: DUP1 00000133: REVERT 00000134: JUMPDEST 00000135: POP 00000136: PUSH2 0x015c 00000139: PUSH1 0x04 0000013b: DUP1 0000013c: CALLDATASIZE 0000013d: SUB 0000013e: PUSH1 0x20 00000140: DUP2 00000141: LT 00000142: ISZERO 00000143: PUSH2 0x014b 00000146: JUMPI 00000147: PUSH1 0x00 00000149: DUP1 0000014a: REVERT 0000014b: JUMPDEST 0000014c: POP 0000014d: CALLDATALOAD 0000014e: PUSH1 0x01 00000150: PUSH1 0x01 00000152: PUSH1 0xe0 00000154: SHL 00000155: SUB 00000156: NOT 00000157: AND 00000158: PUSH2 0x02b3 0000015b: JUMP 0000015c: JUMPDEST 0000015d: PUSH1 0x40 0000015f: DUP1 00000160: MLOAD 00000161: PUSH1 0x01 00000163: PUSH1 0x01 00000165: PUSH1 0xa0 00000167: SHL 00000168: SUB 00000169: SWAP1 0000016a: SWAP3 0000016b: AND 0000016c: DUP3 0000016d: MSTORE 0000016e: MLOAD 0000016f: SWAP1 00000170: DUP2 00000171: SWAP1 00000172: SUB 00000173: PUSH1 0x20 00000175: ADD 00000176: SWAP1 00000177: RETURN 00000178: JUMPDEST 00000179: CALLVALUE 0000017a: DUP1 0000017b: ISZERO 0000017c: PUSH2 0x0184 0000017f: JUMPI 00000180: PUSH1 0x00 00000182: DUP1 00000183: REVERT 00000184: JUMPDEST 00000185: POP 00000186: PUSH2 0x01f3 00000189: PUSH1 0x04 0000018b: DUP1 0000018c: CALLDATASIZE 0000018d: SUB 0000018e: PUSH1 0x20 00000190: DUP2 00000191: LT 00000192: ISZERO 00000193: PUSH2 0x019b 00000196: JUMPI 00000197: PUSH1 0x00 00000199: DUP1 0000019a: REVERT 0000019b: JUMPDEST 0000019c: DUP2 0000019d: ADD 0000019e: SWAP1 0000019f: PUSH1 0x20 000001a1: DUP2 000001a2: ADD 000001a3: DUP2 000001a4: CALLDATALOAD 000001a5: PUSH1 0x01 000001a7: PUSH1 0x20 000001a9: SHL 000001aa: DUP2 000001ab: GT 000001ac: ISZERO 000001ad: PUSH2 0x01b5 000001b0: JUMPI 000001b1: PUSH1 0x00 000001b3: DUP1 000001b4: REVERT 000001b5: JUMPDEST 000001b6: DUP3 000001b7: ADD 000001b8: DUP4 000001b9: PUSH1 0x20 000001bb: DUP3 000001bc: ADD 000001bd: GT 000001be: ISZERO 000001bf: PUSH2 0x01c7 000001c2: JUMPI 000001c3: PUSH1 0x00 000001c5: DUP1 000001c6: REVERT 000001c7: JUMPDEST 000001c8: DUP1 000001c9: CALLDATALOAD 000001ca: SWAP1 000001cb: PUSH1 0x20 000001cd: ADD 000001ce: SWAP2 000001cf: DUP5 000001d0: PUSH1 0x01 000001d2: DUP4 000001d3: MUL 000001d4: DUP5 000001d5: ADD 000001d6: GT 000001d7: PUSH1 0x01 000001d9: PUSH1 0x20 000001db: SHL 000001dc: DUP4 000001dd: GT 000001de: OR 000001df: ISZERO 000001e0: PUSH2 0x01e8 000001e3: JUMPI 000001e4: PUSH1 0x00 000001e6: DUP1 000001e7: REVERT 000001e8: JUMPDEST 000001e9: POP 000001ea: SWAP1 000001eb: SWAP3 000001ec: POP 000001ed: SWAP1 000001ee: POP 000001ef: PUSH2 0x02e4 000001f2: JUMP 000001f3: JUMPDEST 000001f4: STOP 000001f5: JUMPDEST 000001f6: CALLVALUE 000001f7: DUP1 000001f8: ISZERO 000001f9: PUSH2 0x0201 000001fc: JUMPI 000001fd: PUSH1 0x00 000001ff: DUP1 00000200: REVERT 00000201: JUMPDEST 00000202: POP 00000203: PUSH2 0x0229 00000206: PUSH1 0x04 00000208: DUP1 00000209: CALLDATASIZE 0000020a: SUB 0000020b: PUSH1 0x20 0000020d: DUP2 0000020e: LT 0000020f: ISZERO 00000210: PUSH2 0x0218 00000213: JUMPI 00000214: PUSH1 0x00 00000216: DUP1 00000217: REVERT 00000218: JUMPDEST 00000219: POP 0000021a: CALLDATALOAD 0000021b: PUSH1 0x01 0000021d: PUSH1 0x01 0000021f: PUSH1 0xe0 00000221: SHL 00000222: SUB 00000223: NOT 00000224: AND 00000225: PUSH2 0x0935 00000228: JUMP 00000229: JUMPDEST 0000022a: PUSH1 0x40 0000022c: DUP1 0000022d: MLOAD 0000022e: PUSH1 0x20 00000230: DUP1 00000231: DUP3 00000232: MSTORE 00000233: DUP4 00000234: MLOAD 00000235: DUP2 00000236: DUP4 00000237: ADD 00000238: MSTORE 00000239: DUP4 0000023a: MLOAD 0000023b: SWAP2 0000023c: SWAP3 0000023d: DUP4 0000023e: SWAP3 0000023f: SWAP1 00000240: DUP4 00000241: ADD 00000242: SWAP2 00000243: DUP6 00000244: ADD 00000245: SWAP1 00000246: DUP1 00000247: DUP4 00000248: DUP4 00000249: PUSH1 0x00 0000024b: JUMPDEST 0000024c: DUP4 0000024d: DUP2 0000024e: LT 0000024f: ISZERO 00000250: PUSH2 0x0263 00000253: JUMPI 00000254: DUP2 00000255: DUP2 00000256: ADD 00000257: MLOAD 00000258: DUP4 00000259: DUP3 0000025a: ADD 0000025b: MSTORE 0000025c: PUSH1 0x20 0000025e: ADD 0000025f: PUSH2 0x024b 00000262: JUMP 00000263: JUMPDEST 00000264: POP 00000265: POP 00000266: POP 00000267: POP 00000268: SWAP1 00000269: POP 0000026a: SWAP1 0000026b: DUP2 0000026c: ADD 0000026d: SWAP1 0000026e: PUSH1 0x1f 00000270: AND 00000271: DUP1 00000272: ISZERO 00000273: PUSH2 0x0290 00000276: JUMPI 00000277: DUP1 00000278: DUP3 00000279: SUB 0000027a: DUP1 0000027b: MLOAD 0000027c: PUSH1 0x01 0000027e: DUP4 0000027f: PUSH1 0x20 00000281: SUB 00000282: PUSH2 0x0100 00000285: EXP 00000286: SUB 00000287: NOT 00000288: AND 00000289: DUP2 0000028a: MSTORE 0000028b: PUSH1 0x20 0000028d: ADD 0000028e: SWAP2 0000028f: POP 00000290: JUMPDEST 00000291: POP 00000292: SWAP3 00000293: POP 00000294: POP 00000295: POP 00000296: PUSH1 0x40 00000298: MLOAD 00000299: DUP1 0000029a: SWAP2 0000029b: SUB 0000029c: SWAP1 0000029d: RETURN 0000029e: JUMPDEST 0000029f: CALLVALUE 000002a0: DUP1 000002a1: ISZERO 000002a2: PUSH2 0x02aa 000002a5: JUMPI 000002a6: PUSH1 0x00 000002a8: DUP1 000002a9: REVERT 000002aa: JUMPDEST 000002ab: POP 000002ac: PUSH2 0x0229 000002af: PUSH2 0x0954 000002b2: JUMP 000002b3: JUMPDEST 000002b4: PUSH1 0x00 000002b6: PUSH1 0x1e 000002b8: PUSH1 0x00 000002ba: PUSH2 0x02c2 000002bd: DUP5 000002be: PUSH2 0x0975 000002c1: JUMP 000002c2: JUMPDEST 000002c3: DUP2 000002c4: MSTORE 000002c5: PUSH1 0x20 000002c7: DUP2 000002c8: ADD 000002c9: SWAP2 000002ca: SWAP1 000002cb: SWAP2 000002cc: MSTORE 000002cd: PUSH1 0x40 000002cf: ADD 000002d0: PUSH1 0x00 000002d2: KECCAK256 000002d3: SLOAD 000002d4: PUSH1 0x01 000002d6: PUSH1 0x01 000002d8: PUSH1 0xa0 000002da: SHL 000002db: SUB 000002dc: AND 000002dd: SWAP1 000002de: POP 000002df: JUMPDEST 000002e0: SWAP2 000002e1: SWAP1 000002e2: POP 000002e3: JUMP 000002e4: JUMPDEST 000002e5: PUSH32 0x000000000000000000000000df2f24751f7e84ccdcd39e7b49904fab0fb0f583 00000306: PUSH1 0x01 00000308: PUSH1 0x01 0000030a: PUSH1 0xa0 0000030c: SHL 0000030d: SUB 0000030e: AND 0000030f: ADDRESS 00000310: EQ 00000311: ISZERO 00000312: PUSH2 0x035b 00000315: JUMPI 00000316: PUSH1 0x40 00000318: DUP1 00000319: MLOAD 0000031a: PUSH3 0x461bcd 0000031e: PUSH1 0xe5 00000320: SHL 00000321: DUP2 00000322: MSTORE 00000323: PUSH1 0x20 00000325: PUSH1 0x04 00000327: DUP3 00000328: ADD 00000329: MSTORE 0000032a: PUSH1 0x16 0000032c: PUSH1 0x24 0000032e: DUP3 0000032f: ADD 00000330: MSTORE 00000331: PUSH22 0x1112549150d517d0d0531317d11254d0531313d5d151 00000348: PUSH1 0x52 0000034a: SHL 0000034b: PUSH1 0x44 0000034d: DUP3 0000034e: ADD 0000034f: MSTORE 00000350: SWAP1 00000351: MLOAD 00000352: SWAP1 00000353: DUP2 00000354: SWAP1 00000355: SUB 00000356: PUSH1 0x64 00000358: ADD 00000359: SWAP1 0000035a: REVERT 0000035b: JUMPDEST 0000035c: PUSH1 0x00 0000035e: PUSH2 0x0365 00000361: PUSH2 0x09ee 00000364: JUMP 00000365: JUMPDEST 00000366: SWAP1 00000367: POP 00000368: PUSH1 0x0f 0000036a: DUP2 0000036b: GT 0000036c: ISZERO 0000036d: PUSH2 0x03b6 00000370: JUMPI 00000371: PUSH1 0x40 00000373: DUP1 00000374: MLOAD 00000375: PUSH3 0x461bcd 00000379: PUSH1 0xe5 0000037b: SHL 0000037c: DUP2 0000037d: MSTORE 0000037e: PUSH1 0x20 00000380: PUSH1 0x04 00000382: DUP3 00000383: ADD 00000384: MSTORE 00000385: PUSH1 0x16 00000387: PUSH1 0x24 00000389: DUP3 0000038a: ADD 0000038b: MSTORE 0000038c: PUSH22 0x544f4f5f4d414e595f5355425f434f4e545241435453 000003a3: PUSH1 0x50 000003a5: SHL 000003a6: PUSH1 0x44 000003a8: DUP3 000003a9: ADD 000003aa: MSTORE 000003ab: SWAP1 000003ac: MLOAD 000003ad: SWAP1 000003ae: DUP2 000003af: SWAP1 000003b0: SUB 000003b1: PUSH1 0x64 000003b3: ADD 000003b4: SWAP1 000003b5: REVERT 000003b6: JUMPDEST 000003b7: PUSH1 0x00 000003b9: PUSH1 0x20 000003bb: PUSH1 0x01 000003bd: DUP4 000003be: ADD 000003bf: MUL 000003c0: DUP1 000003c1: DUP5 000003c2: LT 000003c3: ISZERO 000003c4: PUSH2 0x0414 000003c7: JUMPI 000003c8: PUSH1 0x40 000003ca: DUP1 000003cb: MLOAD 000003cc: PUSH3 0x461bcd 000003d0: PUSH1 0xe5 000003d2: SHL 000003d3: DUP2 000003d4: MSTORE 000003d5: PUSH1 0x20 000003d7: PUSH1 0x04 000003d9: DUP3 000003da: ADD 000003db: MSTORE 000003dc: PUSH1 0x1a 000003de: PUSH1 0x24 000003e0: DUP3 000003e1: ADD 000003e2: MSTORE 000003e3: PUSH32 0x5355425f434f4e5452414354535f4e4f545f50524f5649444544000000000000 00000404: PUSH1 0x44 00000406: DUP3 00000407: ADD 00000408: MSTORE 00000409: SWAP1 0000040a: MLOAD 0000040b: SWAP1 0000040c: DUP2 0000040d: SWAP1 0000040e: SUB 0000040f: PUSH1 0x64 00000411: ADD 00000412: SWAP1 00000413: REVERT 00000414: JUMPDEST 00000415: DUP1 00000416: DUP5 00000417: SUB 00000418: PUSH1 0x01 0000041a: JUMPDEST 0000041b: DUP5 0000041c: DUP2 0000041d: GT 0000041e: PUSH2 0x0471 00000421: JUMPI 00000422: PUSH1 0x00 00000424: PUSH2 0x0439 00000427: PUSH1 0x20 00000429: DUP1 0000042a: DUP5 0000042b: MUL 0000042c: SWAP1 0000042d: PUSH1 0x00 0000042f: NOT 00000430: DUP6 00000431: ADD 00000432: MUL 00000433: DUP10 00000434: DUP12 00000435: PUSH2 0x14eb 00000438: JUMP 00000439: JUMPDEST 0000043a: PUSH1 0x20 0000043c: DUP2 0000043d: LT 0000043e: ISZERO 0000043f: PUSH2 0x0447 00000442: JUMPI 00000443: PUSH1 0x00 00000445: DUP1 00000446: REVERT 00000447: JUMPDEST 00000448: POP 00000449: CALLDATALOAD 0000044a: PUSH1 0x01 0000044c: PUSH1 0x01 0000044e: PUSH1 0xa0 00000450: SHL 00000451: SUB 00000452: AND 00000453: SWAP1 00000454: POP 00000455: PUSH2 0x045e 00000458: DUP3 00000459: DUP3 0000045a: PUSH2 0x09f3 0000045d: JUMP 0000045e: JUMPDEST 0000045f: PUSH2 0x0468 00000462: DUP3 00000463: DUP3 00000464: PUSH2 0x0dcf 00000467: JUMP 00000468: JUMPDEST 00000469: POP 0000046a: PUSH1 0x01 0000046c: ADD 0000046d: PUSH2 0x041a 00000470: JUMP 00000471: JUMPDEST 00000472: POP 00000473: PUSH1 0x00 00000475: PUSH2 0x0484 00000478: DUP4 00000479: PUSH1 0x1f 0000047b: NOT 0000047c: DUP2 0000047d: ADD 0000047e: DUP9 0000047f: DUP11 00000480: PUSH2 0x14eb 00000483: JUMP 00000484: JUMPDEST 00000485: PUSH1 0x20 00000487: DUP2 00000488: LT 00000489: ISZERO 0000048a: PUSH2 0x0492 0000048d: JUMPI 0000048e: PUSH1 0x00 00000490: DUP1 00000491: REVERT 00000492: JUMPDEST 00000493: POP 00000494: CALLDATALOAD 00000495: PUSH1 0x01 00000497: PUSH1 0x01 00000499: PUSH1 0xa0 0000049b: SHL 0000049c: SUB 0000049d: AND 0000049e: SWAP1 0000049f: POP 000004a0: DUP1 000004a1: ISZERO 000004a2: PUSH2 0x04c4 000004a5: JUMPI 000004a6: PUSH2 0x04ba 000004a9: DUP2 000004aa: PUSH2 0x04b5 000004ad: DUP9 000004ae: DUP7 000004af: DUP2 000004b0: DUP13 000004b1: PUSH2 0x14eb 000004b4: JUMP 000004b5: JUMPDEST 000004b6: PUSH2 0x0dfd 000004b9: JUMP 000004ba: JUMPDEST 000004bb: POP 000004bc: POP 000004bd: POP 000004be: POP 000004bf: POP 000004c0: PUSH2 0x0931 000004c3: JUMP 000004c4: JUMPDEST 000004c5: DUP2 000004c6: PUSH2 0x04d3 000004c9: JUMPI 000004ca: POP 000004cb: POP 000004cc: POP 000004cd: POP 000004ce: POP 000004cf: PUSH2 0x0931 000004d2: JUMP 000004d3: JUMPDEST 000004d4: PUSH1 0x01 000004d6: PUSH1 0x01 000004d8: PUSH1 0xa0 000004da: SHL 000004db: SUB 000004dc: DUP2 000004dd: AND 000004de: ISZERO 000004df: PUSH2 0x04e4 000004e2: JUMPI 000004e3: INVALID 000004e4: JUMPDEST 000004e5: PUSH2 0x04ec 000004e8: PUSH2 0x100b 000004eb: JUMP 000004ec: JUMPDEST 000004ed: PUSH1 0x01 000004ef: JUMPDEST 000004f0: DUP6 000004f1: DUP2 000004f2: GT 000004f3: PUSH2 0x08d6 000004f6: JUMPI 000004f7: PUSH1 0x00 000004f9: PUSH2 0x050e 000004fc: PUSH1 0x20 000004fe: DUP1 000004ff: DUP5 00000500: MUL 00000501: SWAP1 00000502: PUSH1 0x00 00000504: NOT 00000505: DUP6 00000506: ADD 00000507: MUL 00000508: DUP11 00000509: DUP13 0000050a: PUSH2 0x14eb 0000050d: JUMP 0000050e: JUMPDEST 0000050f: PUSH1 0x20 00000511: DUP2 00000512: LT 00000513: ISZERO 00000514: PUSH2 0x051c 00000517: JUMPI 00000518: PUSH1 0x00 0000051a: DUP1 0000051b: REVERT 0000051c: JUMPDEST 0000051d: POP 0000051e: PUSH1 0x40 00000520: DUP1 00000521: MLOAD 00000522: PUSH1 0x04 00000524: DUP2 00000525: MSTORE 00000526: PUSH1 0x24 00000528: DUP2 00000529: ADD 0000052a: DUP3 0000052b: MSTORE 0000052c: PUSH1 0x20 0000052e: DUP2 0000052f: ADD 00000530: DUP1 00000531: MLOAD 00000532: PUSH4 0x3cc660ad 00000537: PUSH1 0xe0 00000539: SHL 0000053a: PUSH1 0x01 0000053c: PUSH1 0x01 0000053e: PUSH1 0xe0 00000540: SHL 00000541: SUB 00000542: SWAP1 00000543: SWAP2 00000544: AND 00000545: OR 00000546: DUP2 00000547: MSTORE 00000548: SWAP2 00000549: MLOAD 0000054a: DUP2 0000054b: MLOAD 0000054c: SWAP4 0000054d: CALLDATALOAD 0000054e: PUSH1 0x01 00000550: PUSH1 0x01 00000552: PUSH1 0xa0 00000554: SHL 00000555: SUB 00000556: AND 00000557: SWAP5 00000558: POP 00000559: PUSH1 0x00 0000055b: SWAP4 0000055c: PUSH1 0x60 0000055e: SWAP4 0000055f: DUP7 00000560: SWAP4 00000561: SWAP3 00000562: SWAP2 00000563: DUP3 00000564: SWAP2 00000565: SWAP1 00000566: DUP1 00000567: DUP4 00000568: DUP4 00000569: JUMPDEST 0000056a: PUSH1 0x20 0000056c: DUP4 0000056d: LT 0000056e: PUSH2 0x0588 00000571: JUMPI 00000572: DUP1 00000573: MLOAD 00000574: DUP3 00000575: MSTORE 00000576: PUSH1 0x1f 00000578: NOT 00000579: SWAP1 0000057a: SWAP3 0000057b: ADD 0000057c: SWAP2 0000057d: PUSH1 0x20 0000057f: SWAP2 00000580: DUP3 00000581: ADD 00000582: SWAP2 00000583: ADD 00000584: PUSH2 0x0569 00000587: JUMP 00000588: JUMPDEST 00000589: PUSH1 0x01 0000058b: DUP4 0000058c: PUSH1 0x20 0000058e: SUB 0000058f: PUSH2 0x0100 00000592: EXP 00000593: SUB 00000594: DUP1 00000595: NOT 00000596: DUP3 00000597: MLOAD 00000598: AND 00000599: DUP2 0000059a: DUP5 0000059b: MLOAD 0000059c: AND 0000059d: DUP1 0000059e: DUP3 0000059f: OR 000005a0: DUP6 000005a1: MSTORE 000005a2: POP 000005a3: POP 000005a4: POP 000005a5: POP 000005a6: POP 000005a7: POP 000005a8: SWAP1 000005a9: POP 000005aa: ADD 000005ab: SWAP2 000005ac: POP 000005ad: POP 000005ae: PUSH1 0x00 000005b0: PUSH1 0x40 000005b2: MLOAD 000005b3: DUP1 000005b4: DUP4 000005b5: SUB 000005b6: DUP2 000005b7: DUP6 000005b8: GAS 000005b9: DELEGATECALL 000005ba: SWAP2 000005bb: POP 000005bc: POP 000005bd: RETURNDATASIZE 000005be: DUP1 000005bf: PUSH1 0x00 000005c1: DUP2 000005c2: EQ 000005c3: PUSH2 0x05e8 000005c6: JUMPI 000005c7: PUSH1 0x40 000005c9: MLOAD 000005ca: SWAP2 000005cb: POP 000005cc: PUSH1 0x1f 000005ce: NOT 000005cf: PUSH1 0x3f 000005d1: RETURNDATASIZE 000005d2: ADD 000005d3: AND 000005d4: DUP3 000005d5: ADD 000005d6: PUSH1 0x40 000005d8: MSTORE 000005d9: RETURNDATASIZE 000005da: DUP3 000005db: MSTORE 000005dc: RETURNDATASIZE 000005dd: PUSH1 0x00 000005df: PUSH1 0x20 000005e1: DUP5 000005e2: ADD 000005e3: RETURNDATACOPY 000005e4: PUSH2 0x05ed 000005e7: JUMP 000005e8: JUMPDEST 000005e9: PUSH1 0x60 000005eb: SWAP2 000005ec: POP 000005ed: JUMPDEST 000005ee: POP 000005ef: SWAP2 000005f0: POP 000005f1: SWAP2 000005f2: POP 000005f3: DUP2 000005f4: DUP2 000005f5: SWAP1 000005f6: PUSH2 0x067d 000005f9: JUMPI 000005fa: PUSH1 0x40 000005fc: MLOAD 000005fd: PUSH3 0x461bcd 00000601: PUSH1 0xe5 00000603: SHL 00000604: DUP2 00000605: MSTORE 00000606: PUSH1 0x04 00000608: ADD 00000609: DUP1 0000060a: DUP1 0000060b: PUSH1 0x20 0000060d: ADD 0000060e: DUP3 0000060f: DUP2 00000610: SUB 00000611: DUP3 00000612: MSTORE 00000613: DUP4 00000614: DUP2 00000615: DUP2 00000616: MLOAD 00000617: DUP2 00000618: MSTORE 00000619: PUSH1 0x20 0000061b: ADD 0000061c: SWAP2 0000061d: POP 0000061e: DUP1 0000061f: MLOAD 00000620: SWAP1 00000621: PUSH1 0x20 00000623: ADD 00000624: SWAP1 00000625: DUP1 00000626: DUP4 00000627: DUP4 00000628: PUSH1 0x00 0000062a: JUMPDEST 0000062b: DUP4 0000062c: DUP2 0000062d: LT 0000062e: ISZERO 0000062f: PUSH2 0x0642 00000632: JUMPI 00000633: DUP2 00000634: DUP2 00000635: ADD 00000636: MLOAD 00000637: DUP4 00000638: DUP3 00000639: ADD 0000063a: MSTORE 0000063b: PUSH1 0x20 0000063d: ADD 0000063e: PUSH2 0x062a 00000641: JUMP 00000642: JUMPDEST 00000643: POP 00000644: POP 00000645: POP 00000646: POP 00000647: SWAP1 00000648: POP 00000649: SWAP1 0000064a: DUP2 0000064b: ADD 0000064c: SWAP1 0000064d: PUSH1 0x1f 0000064f: AND 00000650: DUP1 00000651: ISZERO 00000652: PUSH2 0x066f 00000655: JUMPI 00000656: DUP1 00000657: DUP3 00000658: SUB 00000659: DUP1 0000065a: MLOAD 0000065b: PUSH1 0x01 0000065d: DUP4 0000065e: PUSH1 0x20 00000660: SUB 00000661: PUSH2 0x0100 00000664: EXP 00000665: SUB 00000666: NOT 00000667: AND 00000668: DUP2 00000669: MSTORE 0000066a: PUSH1 0x20 0000066c: ADD 0000066d: SWAP2 0000066e: POP 0000066f: JUMPDEST 00000670: POP 00000671: SWAP3 00000672: POP 00000673: POP 00000674: POP 00000675: PUSH1 0x40 00000677: MLOAD 00000678: DUP1 00000679: SWAP2 0000067a: SUB 0000067b: SWAP1 0000067c: REVERT 0000067d: JUMPDEST 0000067e: POP 0000067f: PUSH1 0x00 00000681: DUP2 00000682: DUP1 00000683: PUSH1 0x20 00000685: ADD 00000686: SWAP1 00000687: MLOAD 00000688: PUSH1 0x20 0000068a: DUP2 0000068b: LT 0000068c: ISZERO 0000068d: PUSH2 0x0695 00000690: JUMPI 00000691: PUSH1 0x00 00000693: DUP1 00000694: REVERT 00000695: JUMPDEST 00000696: POP 00000697: MLOAD 00000698: SWAP1 00000699: POP 0000069a: DUP7 0000069b: DUP2 0000069c: GT 0000069d: ISZERO 0000069e: PUSH2 0x06e9 000006a1: JUMPI 000006a2: PUSH1 0x40 000006a4: DUP1 000006a5: MLOAD 000006a6: PUSH3 0x461bcd 000006aa: PUSH1 0xe5 000006ac: SHL 000006ad: DUP2 000006ae: MSTORE 000006af: PUSH1 0x20 000006b1: PUSH1 0x04 000006b3: DUP3 000006b4: ADD 000006b5: MSTORE 000006b6: PUSH1 0x18 000006b8: PUSH1 0x24 000006ba: DUP3 000006bb: ADD 000006bc: MSTORE 000006bd: PUSH24 0x494e56414c49445f494e495449414c495a45525f53495a45 000006d6: PUSH1 0x40 000006d8: SHL 000006d9: PUSH1 0x44 000006db: DUP3 000006dc: ADD 000006dd: MSTORE 000006de: SWAP1 000006df: MLOAD 000006e0: SWAP1 000006e1: DUP2 000006e2: SWAP1 000006e3: SUB 000006e4: PUSH1 0x64 000006e6: ADD 000006e7: SWAP1 000006e8: REVERT 000006e9: JUMPDEST 000006ea: DUP7 000006eb: DUP2 000006ec: DUP11 000006ed: ADD 000006ee: GT 000006ef: ISZERO 000006f0: PUSH2 0x073b 000006f3: JUMPI 000006f4: PUSH1 0x40 000006f6: DUP1 000006f7: MLOAD 000006f8: PUSH3 0x461bcd 000006fc: PUSH1 0xe5 000006fe: SHL 000006ff: DUP2 00000700: MSTORE 00000701: PUSH1 0x20 00000703: PUSH1 0x04 00000705: DUP3 00000706: ADD 00000707: MSTORE 00000708: PUSH1 0x18 0000070a: PUSH1 0x24 0000070c: DUP3 0000070d: ADD 0000070e: MSTORE 0000070f: PUSH24 0x494e56414c49445f494e495449414c495a45525f53495a45 00000728: PUSH1 0x40 0000072a: SHL 0000072b: PUSH1 0x44 0000072d: DUP3 0000072e: ADD 0000072f: MSTORE 00000730: SWAP1 00000731: MLOAD 00000732: SWAP1 00000733: DUP2 00000734: SWAP1 00000735: SUB 00000736: PUSH1 0x64 00000738: ADD 00000739: SWAP1 0000073a: REVERT 0000073b: JUMPDEST 0000073c: DUP1 0000073d: PUSH2 0x0749 00000740: JUMPI 00000741: POP 00000742: POP 00000743: POP 00000744: POP 00000745: PUSH2 0x08ce 00000748: JUMP 00000749: JUMPDEST 0000074a: DUP4 0000074b: PUSH1 0x01 0000074d: PUSH1 0x01 0000074f: PUSH1 0xa0 00000751: SHL 00000752: SUB 00000753: AND 00000754: PUSH4 0x439fab91 00000759: PUSH1 0xe0 0000075b: SHL 0000075c: DUP14 0000075d: DUP14 0000075e: DUP12 0000075f: SWAP1 00000760: DUP6 00000761: DUP14 00000762: ADD 00000763: SWAP3 00000764: PUSH2 0x076f 00000767: SWAP4 00000768: SWAP3 00000769: SWAP2 0000076a: SWAP1 0000076b: PUSH2 0x14eb 0000076e: JUMP 0000076f: JUMPDEST 00000770: PUSH1 0x40 00000772: MLOAD 00000773: PUSH1 0x20 00000775: PUSH1 0x24 00000777: DUP3 00000778: ADD 00000779: SWAP1 0000077a: DUP2 0000077b: MSTORE 0000077c: PUSH1 0x44 0000077e: DUP3 0000077f: ADD 00000780: DUP4 00000781: SWAP1 00000782: MSTORE 00000783: SWAP1 00000784: DUP2 00000785: SWAP1 00000786: PUSH1 0x64 00000788: ADD 00000789: DUP5 0000078a: DUP5 0000078b: DUP1 0000078c: DUP3 0000078d: DUP5 0000078e: CALLDATACOPY 0000078f: PUSH1 0x00 00000791: DUP4 00000792: DUP3 00000793: ADD 00000794: MSTORE 00000795: PUSH1 0x40 00000797: DUP1 00000798: MLOAD 00000799: PUSH1 0x1f 0000079b: SWAP1 0000079c: SWAP3 0000079d: ADD 0000079e: PUSH1 0x1f 000007a0: NOT 000007a1: SWAP1 000007a2: DUP2 000007a3: AND 000007a4: SWAP1 000007a5: SWAP5 000007a6: ADD 000007a7: DUP3 000007a8: DUP2 000007a9: SUB 000007aa: SWAP1 000007ab: SWAP5 000007ac: ADD 000007ad: DUP3 000007ae: MSTORE 000007af: SWAP3 000007b0: DUP4 000007b1: MSTORE 000007b2: PUSH1 0x20 000007b4: DUP2 000007b5: ADD 000007b6: DUP1 000007b7: MLOAD 000007b8: PUSH1 0x01 000007ba: PUSH1 0x01 000007bc: PUSH1 0xe0 000007be: SHL 000007bf: SUB 000007c0: AND 000007c1: PUSH1 0x01 000007c3: PUSH1 0x01 000007c5: PUSH1 0xe0 000007c7: SHL 000007c8: SUB 000007c9: NOT 000007ca: SWAP1 000007cb: SWAP10 000007cc: AND 000007cd: SWAP9 000007ce: SWAP1 000007cf: SWAP9 000007d0: OR 000007d1: DUP9 000007d2: MSTORE 000007d3: SWAP2 000007d4: MLOAD 000007d5: DUP3 000007d6: MLOAD 000007d7: SWAP3 000007d8: SWAP8 000007d9: SWAP1 000007da: SWAP7 000007db: POP 000007dc: DUP7 000007dd: SWAP6 000007de: POP 000007df: SWAP4 000007e0: POP 000007e1: SWAP1 000007e2: SWAP2 000007e3: POP 000007e4: DUP2 000007e5: SWAP1 000007e6: POP 000007e7: DUP4 000007e8: DUP4 000007e9: JUMPDEST 000007ea: PUSH1 0x20 000007ec: DUP4 000007ed: LT 000007ee: PUSH2 0x0808 000007f1: JUMPI 000007f2: DUP1 000007f3: MLOAD 000007f4: DUP3 000007f5: MSTORE 000007f6: PUSH1 0x1f 000007f8: NOT 000007f9: SWAP1 000007fa: SWAP3 000007fb: ADD 000007fc: SWAP2 000007fd: PUSH1 0x20 000007ff: SWAP2 00000800: DUP3 00000801: ADD 00000802: SWAP2 00000803: ADD 00000804: PUSH2 0x07e9 00000807: JUMP 00000808: JUMPDEST 00000809: PUSH1 0x01 0000080b: DUP4 0000080c: PUSH1 0x20 0000080e: SUB 0000080f: PUSH2 0x0100 00000812: EXP 00000813: SUB 00000814: DUP1 00000815: NOT 00000816: DUP3 00000817: MLOAD 00000818: AND 00000819: DUP2 0000081a: DUP5 0000081b: MLOAD 0000081c: AND 0000081d: DUP1 0000081e: DUP3 0000081f: OR 00000820: DUP6 00000821: MSTORE 00000822: POP 00000823: POP 00000824: POP 00000825: POP 00000826: POP 00000827: POP 00000828: SWAP1 00000829: POP 0000082a: ADD 0000082b: SWAP2 0000082c: POP 0000082d: POP 0000082e: PUSH1 0x00 00000830: PUSH1 0x40 00000832: MLOAD 00000833: DUP1 00000834: DUP4 00000835: SUB 00000836: DUP2 00000837: DUP6 00000838: GAS 00000839: DELEGATECALL 0000083a: SWAP2 0000083b: POP 0000083c: POP 0000083d: RETURNDATASIZE 0000083e: DUP1 0000083f: PUSH1 0x00 00000841: DUP2 00000842: EQ 00000843: PUSH2 0x0868 00000846: JUMPI 00000847: PUSH1 0x40 00000849: MLOAD 0000084a: SWAP2 0000084b: POP 0000084c: PUSH1 0x1f 0000084e: NOT 0000084f: PUSH1 0x3f 00000851: RETURNDATASIZE 00000852: ADD 00000853: AND 00000854: DUP3 00000855: ADD 00000856: PUSH1 0x40 00000858: MSTORE 00000859: RETURNDATASIZE 0000085a: DUP3 0000085b: MSTORE 0000085c: RETURNDATASIZE 0000085d: PUSH1 0x00 0000085f: PUSH1 0x20 00000861: DUP5 00000862: ADD 00000863: RETURNDATACOPY 00000864: PUSH2 0x086d 00000867: JUMP 00000868: JUMPDEST 00000869: PUSH1 0x60 0000086b: SWAP2 0000086c: POP 0000086d: JUMPDEST 0000086e: POP 0000086f: SWAP1 00000870: SWAP4 00000871: POP 00000872: SWAP2 00000873: POP 00000874: DUP2 00000875: DUP4 00000876: PUSH2 0x08c0 00000879: JUMPI 0000087a: PUSH1 0x40 0000087c: MLOAD 0000087d: PUSH3 0x461bcd 00000881: PUSH1 0xe5 00000883: SHL 00000884: DUP2 00000885: MSTORE 00000886: PUSH1 0x20 00000888: PUSH1 0x04 0000088a: DUP3 0000088b: ADD 0000088c: DUP2 0000088d: DUP2 0000088e: MSTORE 0000088f: DUP4 00000890: MLOAD 00000891: PUSH1 0x24 00000893: DUP5 00000894: ADD 00000895: MSTORE 00000896: DUP4 00000897: MLOAD 00000898: SWAP1 00000899: SWAP3 0000089a: DUP4 0000089b: SWAP3 0000089c: PUSH1 0x44 0000089e: SWAP1 0000089f: SWAP2 000008a0: ADD 000008a1: SWAP2 000008a2: SWAP1 000008a3: DUP6 000008a4: ADD 000008a5: SWAP1 000008a6: DUP1 000008a7: DUP4 000008a8: DUP4 000008a9: PUSH1 0x00 000008ab: DUP4 000008ac: ISZERO 000008ad: PUSH2 0x0642 000008b0: JUMPI 000008b1: DUP2 000008b2: DUP2 000008b3: ADD 000008b4: MLOAD 000008b5: DUP4 000008b6: DUP3 000008b7: ADD 000008b8: MSTORE 000008b9: PUSH1 0x20 000008bb: ADD 000008bc: PUSH2 0x062a 000008bf: JUMP 000008c0: JUMPDEST 000008c1: POP 000008c2: SWAP8 000008c3: DUP9 000008c4: ADD 000008c5: SWAP8 000008c6: SWAP7 000008c7: SWAP1 000008c8: SWAP7 000008c9: ADD 000008ca: SWAP6 000008cb: POP 000008cc: POP 000008cd: POP 000008ce: JUMPDEST 000008cf: PUSH1 0x01 000008d1: ADD 000008d2: PUSH2 0x04ef 000008d5: JUMP 000008d6: JUMPDEST 000008d7: POP 000008d8: DUP4 000008d9: DUP3 000008da: EQ 000008db: PUSH2 0x092b 000008de: JUMPI 000008df: PUSH1 0x40 000008e1: DUP1 000008e2: MLOAD 000008e3: PUSH3 0x461bcd 000008e7: PUSH1 0xe5 000008e9: SHL 000008ea: DUP2 000008eb: MSTORE 000008ec: PUSH1 0x20 000008ee: PUSH1 0x04 000008f0: DUP3 000008f1: ADD 000008f2: MSTORE 000008f3: PUSH1 0x1a 000008f5: PUSH1 0x24 000008f7: DUP3 000008f8: ADD 000008f9: MSTORE 000008fa: PUSH32 0x4d49534d41544348494e475f494e49545f444154415f53495a45000000000000 0000091b: PUSH1 0x44 0000091d: DUP3 0000091e: ADD 0000091f: MSTORE 00000920: SWAP1 00000921: MLOAD 00000922: SWAP1 00000923: DUP2 00000924: SWAP1 00000925: SUB 00000926: PUSH1 0x64 00000928: ADD 00000929: SWAP1 0000092a: REVERT 0000092b: JUMPDEST 0000092c: POP 0000092d: POP 0000092e: POP 0000092f: POP 00000930: POP 00000931: JUMPDEST 00000932: POP 00000933: POP 00000934: JUMP 00000935: JUMPDEST 00000936: PUSH1 0x60 00000938: PUSH1 0x00 0000093a: PUSH2 0x0942 0000093d: DUP4 0000093e: PUSH2 0x0975 00000941: JUMP 00000942: JUMPDEST 00000943: SWAP1 00000944: POP 00000945: PUSH2 0x094d 00000948: DUP2 00000949: PUSH2 0x1223 0000094c: JUMP 0000094d: JUMPDEST 0000094e: SWAP4 0000094f: SWAP3 00000950: POP 00000951: POP 00000952: POP 00000953: JUMP 00000954: JUMPDEST 00000955: PUSH1 0x40 00000957: MLOAD 00000958: DUP1 00000959: PUSH1 0x40 0000095b: ADD 0000095c: PUSH1 0x40 0000095e: MSTORE 0000095f: DUP1 00000960: PUSH1 0x05 00000962: DUP2 00000963: MSTORE 00000964: PUSH1 0x20 00000966: ADD 00000967: PUSH5 0x342e352e31 0000096d: PUSH1 0xd8 0000096f: SHL 00000970: DUP2 00000971: MSTORE 00000972: POP 00000973: DUP2 00000974: JUMP 00000975: JUMPDEST 00000976: PUSH1 0x00 00000978: DUP1 00000979: DUP3 0000097a: PUSH2 0x0981 0000097d: PUSH2 0x13dd 00000980: JUMP 00000981: JUMPDEST 00000982: PUSH1 0x40 00000984: MLOAD 00000985: PUSH1 0x20 00000987: ADD 00000988: DUP1 00000989: DUP4 0000098a: PUSH1 0x01 0000098c: PUSH1 0x01 0000098e: PUSH1 0xe0 00000990: SHL 00000991: SUB 00000992: NOT 00000993: AND 00000994: DUP2 00000995: MSTORE 00000996: PUSH1 0x04 00000998: ADD 00000999: DUP3 0000099a: DUP2 0000099b: MSTORE 0000099c: PUSH1 0x20 0000099e: ADD 0000099f: SWAP3 000009a0: POP 000009a1: POP 000009a2: POP 000009a3: PUSH1 0x40 000009a5: MLOAD 000009a6: PUSH1 0x20 000009a8: DUP2 000009a9: DUP4 000009aa: SUB 000009ab: SUB 000009ac: DUP2 000009ad: MSTORE 000009ae: SWAP1 000009af: PUSH1 0x40 000009b1: MSTORE 000009b2: DUP1 000009b3: MLOAD 000009b4: SWAP1 000009b5: PUSH1 0x20 000009b7: ADD 000009b8: KECCAK256 000009b9: PUSH1 0x00 000009bb: SHR 000009bc: PUSH1 0xff 000009be: AND 000009bf: SWAP1 000009c0: POP 000009c1: PUSH1 0x00 000009c3: PUSH2 0x0100 000009c6: DUP3 000009c7: PUSH1 0x04 000009c9: MUL 000009ca: DUP2 000009cb: PUSH2 0x09d0 000009ce: JUMPI 000009cf: INVALID 000009d0: JUMPDEST 000009d1: MOD 000009d2: SWAP1 000009d3: POP 000009d4: DUP1 000009d5: PUSH2 0x09e1 000009d8: PUSH1 0x06 000009da: DUP5 000009db: SWAP1 000009dc: SHR 000009dd: PUSH2 0x13e4 000009e0: JUMP 000009e1: JUMPDEST 000009e2: PUSH1 0x0f 000009e4: SWAP2 000009e5: SHR 000009e6: AND 000009e7: SWAP5 000009e8: SWAP4 000009e9: POP 000009ea: POP 000009eb: POP 000009ec: POP 000009ed: JUMP 000009ee: JUMPDEST 000009ef: PUSH1 0x06 000009f1: SWAP1 000009f2: JUMP 000009f3: JUMPDEST 000009f4: PUSH1 0x60 000009f6: DUP2 000009f7: PUSH1 0x01 000009f9: PUSH1 0x01 000009fb: PUSH1 0xa0 000009fd: SHL 000009fe: SUB 000009ff: AND 00000a00: PUSH4 0xeeb72866 00000a05: PUSH1 0x40 00000a07: MLOAD 00000a08: DUP2 00000a09: PUSH4 0xffffffff 00000a0e: AND 00000a0f: PUSH1 0xe0 00000a11: SHL 00000a12: DUP2 00000a13: MSTORE 00000a14: PUSH1 0x04 00000a16: ADD 00000a17: PUSH1 0x00 00000a19: PUSH1 0x40 00000a1b: MLOAD 00000a1c: DUP1 00000a1d: DUP4 00000a1e: SUB 00000a1f: DUP2 00000a20: DUP7 00000a21: DUP1 00000a22: EXTCODESIZE 00000a23: ISZERO 00000a24: DUP1 00000a25: ISZERO 00000a26: PUSH2 0x0a2e 00000a29: JUMPI 00000a2a: PUSH1 0x00 00000a2c: DUP1 00000a2d: REVERT 00000a2e: JUMPDEST 00000a2f: POP 00000a30: GAS 00000a31: STATICCALL 00000a32: ISZERO 00000a33: DUP1 00000a34: ISZERO 00000a35: PUSH2 0x0a42 00000a38: JUMPI 00000a39: RETURNDATASIZE 00000a3a: PUSH1 0x00 00000a3c: DUP1 00000a3d: RETURNDATACOPY 00000a3e: RETURNDATASIZE 00000a3f: PUSH1 0x00 00000a41: REVERT 00000a42: JUMPDEST 00000a43: POP 00000a44: POP 00000a45: POP 00000a46: POP 00000a47: PUSH1 0x40 00000a49: MLOAD 00000a4a: RETURNDATASIZE 00000a4b: PUSH1 0x00 00000a4d: DUP3 00000a4e: RETURNDATACOPY 00000a4f: PUSH1 0x1f 00000a51: RETURNDATASIZE 00000a52: SWAP1 00000a53: DUP2 00000a54: ADD 00000a55: PUSH1 0x1f 00000a57: NOT 00000a58: AND 00000a59: DUP3 00000a5a: ADD 00000a5b: PUSH1 0x40 00000a5d: MSTORE 00000a5e: PUSH1 0x20 00000a60: DUP2 00000a61: LT 00000a62: ISZERO 00000a63: PUSH2 0x0a6b 00000a66: JUMPI 00000a67: PUSH1 0x00 00000a69: DUP1 00000a6a: REVERT 00000a6b: JUMPDEST 00000a6c: DUP2 00000a6d: ADD 00000a6e: SWAP1 00000a6f: DUP1 00000a70: DUP1 00000a71: MLOAD 00000a72: PUSH1 0x40 00000a74: MLOAD 00000a75: SWAP4 00000a76: SWAP3 00000a77: SWAP2 00000a78: SWAP1 00000a79: DUP5 00000a7a: PUSH1 0x01 00000a7c: PUSH1 0x20 00000a7e: SHL 00000a7f: DUP3 00000a80: GT 00000a81: ISZERO 00000a82: PUSH2 0x0a8a 00000a85: JUMPI 00000a86: PUSH1 0x00 00000a88: DUP1 00000a89: REVERT 00000a8a: JUMPDEST 00000a8b: SWAP1 00000a8c: DUP4 00000a8d: ADD 00000a8e: SWAP1 00000a8f: PUSH1 0x20 00000a91: DUP3 00000a92: ADD 00000a93: DUP6 00000a94: DUP2 00000a95: GT 00000a96: ISZERO 00000a97: PUSH2 0x0a9f 00000a9a: JUMPI 00000a9b: PUSH1 0x00 00000a9d: DUP1 00000a9e: REVERT 00000a9f: JUMPDEST 00000aa0: DUP3 00000aa1: MLOAD 00000aa2: PUSH1 0x01 00000aa4: PUSH1 0x20 00000aa6: SHL 00000aa7: DUP2 00000aa8: GT 00000aa9: DUP3 00000aaa: DUP3 00000aab: ADD 00000aac: DUP9 00000aad: LT 00000aae: OR 00000aaf: ISZERO 00000ab0: PUSH2 0x0ab8 00000ab3: JUMPI 00000ab4: PUSH1 0x00 00000ab6: DUP1 00000ab7: REVERT 00000ab8: JUMPDEST 00000ab9: DUP3 00000aba: MSTORE 00000abb: POP 00000abc: DUP2 00000abd: MLOAD 00000abe: PUSH1 0x20 00000ac0: SWAP2 00000ac1: DUP3 00000ac2: ADD 00000ac3: SWAP3 00000ac4: SWAP1 00000ac5: SWAP2 00000ac6: ADD 00000ac7: SWAP1 00000ac8: DUP1 00000ac9: DUP4 00000aca: DUP4 00000acb: PUSH1 0x00 00000acd: JUMPDEST 00000ace: DUP4 00000acf: DUP2 00000ad0: LT 00000ad1: ISZERO 00000ad2: PUSH2 0x0ae5 00000ad5: JUMPI 00000ad6: DUP2 00000ad7: DUP2 00000ad8: ADD 00000ad9: MLOAD 00000ada: DUP4 00000adb: DUP3 00000adc: ADD 00000add: MSTORE 00000ade: PUSH1 0x20 00000ae0: ADD 00000ae1: PUSH2 0x0acd 00000ae4: JUMP 00000ae5: JUMPDEST 00000ae6: POP 00000ae7: POP 00000ae8: POP 00000ae9: POP 00000aea: SWAP1 00000aeb: POP 00000aec: SWAP1 00000aed: DUP2 00000aee: ADD 00000aef: SWAP1 00000af0: PUSH1 0x1f 00000af2: AND 00000af3: DUP1 00000af4: ISZERO 00000af5: PUSH2 0x0b12 00000af8: JUMPI 00000af9: DUP1 00000afa: DUP3 00000afb: SUB 00000afc: DUP1 00000afd: MLOAD 00000afe: PUSH1 0x01 00000b00: DUP4 00000b01: PUSH1 0x20 00000b03: SUB 00000b04: PUSH2 0x0100 00000b07: EXP 00000b08: SUB 00000b09: NOT 00000b0a: AND 00000b0b: DUP2 00000b0c: MSTORE 00000b0d: PUSH1 0x20 00000b0f: ADD 00000b10: SWAP2 00000b11: POP 00000b12: JUMPDEST 00000b13: POP 00000b14: PUSH1 0x40 00000b16: MSTORE 00000b17: POP 00000b18: POP 00000b19: POP 00000b1a: SWAP1 00000b1b: POP 00000b1c: PUSH1 0x00 00000b1e: PUSH2 0x0b26 00000b21: DUP5 00000b22: PUSH2 0x1223 00000b25: JUMP 00000b26: JUMPDEST 00000b27: PUSH1 0x40 00000b29: MLOAD 00000b2a: PUSH1 0x20 00000b2c: ADD 00000b2d: DUP1 00000b2e: DUP3 00000b2f: DUP1 00000b30: MLOAD 00000b31: SWAP1 00000b32: PUSH1 0x20 00000b34: ADD 00000b35: SWAP1 00000b36: DUP1 00000b37: DUP4 00000b38: DUP4 00000b39: JUMPDEST 00000b3a: PUSH1 0x20 00000b3c: DUP4 00000b3d: LT 00000b3e: PUSH2 0x0b58 00000b41: JUMPI 00000b42: DUP1 00000b43: MLOAD 00000b44: DUP3 00000b45: MSTORE 00000b46: PUSH1 0x1f 00000b48: NOT 00000b49: SWAP1 00000b4a: SWAP3 00000b4b: ADD 00000b4c: SWAP2 00000b4d: PUSH1 0x20 00000b4f: SWAP2 00000b50: DUP3 00000b51: ADD 00000b52: SWAP2 00000b53: ADD 00000b54: PUSH2 0x0b39 00000b57: JUMP 00000b58: JUMPDEST 00000b59: PUSH1 0x01 00000b5b: DUP4 00000b5c: PUSH1 0x20 00000b5e: SUB 00000b5f: PUSH2 0x0100 00000b62: EXP 00000b63: SUB 00000b64: DUP1 00000b65: NOT 00000b66: DUP3 00000b67: MLOAD 00000b68: AND 00000b69: DUP2 00000b6a: DUP5 00000b6b: MLOAD 00000b6c: AND 00000b6d: DUP1 00000b6e: DUP3 00000b6f: OR 00000b70: DUP6 00000b71: MSTORE 00000b72: POP 00000b73: POP 00000b74: POP 00000b75: POP 00000b76: POP 00000b77: POP 00000b78: SWAP1 00000b79: POP 00000b7a: ADD 00000b7b: SWAP2 00000b7c: POP 00000b7d: POP 00000b7e: PUSH1 0x40 00000b80: MLOAD 00000b81: PUSH1 0x20 00000b83: DUP2 00000b84: DUP4 00000b85: SUB 00000b86: SUB 00000b87: DUP2 00000b88: MSTORE 00000b89: SWAP1 00000b8a: PUSH1 0x40 00000b8c: MSTORE 00000b8d: DUP1 00000b8e: MLOAD 00000b8f: SWAP1 00000b90: PUSH1 0x20 00000b92: ADD 00000b93: KECCAK256 00000b94: SWAP1 00000b95: POP 00000b96: DUP2 00000b97: PUSH1 0x40 00000b99: MLOAD 00000b9a: PUSH1 0x20 00000b9c: ADD 00000b9d: DUP1 00000b9e: DUP3 00000b9f: DUP1 00000ba0: MLOAD 00000ba1: SWAP1 00000ba2: PUSH1 0x20 00000ba4: ADD 00000ba5: SWAP1 00000ba6: DUP1 00000ba7: DUP4 00000ba8: DUP4 00000ba9: JUMPDEST 00000baa: PUSH1 0x20 00000bac: DUP4 00000bad: LT 00000bae: PUSH2 0x0bc8 00000bb1: JUMPI 00000bb2: DUP1 00000bb3: MLOAD 00000bb4: DUP3 00000bb5: MSTORE 00000bb6: PUSH1 0x1f 00000bb8: NOT 00000bb9: SWAP1 00000bba: SWAP3 00000bbb: ADD 00000bbc: SWAP2 00000bbd: PUSH1 0x20 00000bbf: SWAP2 00000bc0: DUP3 00000bc1: ADD 00000bc2: SWAP2 00000bc3: ADD 00000bc4: PUSH2 0x0ba9 00000bc7: JUMP 00000bc8: JUMPDEST 00000bc9: PUSH1 0x01 00000bcb: DUP4 00000bcc: PUSH1 0x20 00000bce: SUB 00000bcf: PUSH2 0x0100 00000bd2: EXP 00000bd3: SUB 00000bd4: DUP1 00000bd5: NOT 00000bd6: DUP3 00000bd7: MLOAD 00000bd8: AND 00000bd9: DUP2 00000bda: DUP5 00000bdb: MLOAD 00000bdc: AND 00000bdd: DUP1 00000bde: DUP3 00000bdf: OR 00000be0: DUP6 00000be1: MSTORE 00000be2: POP 00000be3: POP 00000be4: POP 00000be5: POP 00000be6: POP 00000be7: POP 00000be8: SWAP1 00000be9: POP 00000bea: ADD 00000beb: SWAP2 00000bec: POP 00000bed: POP 00000bee: PUSH1 0x40 00000bf0: MLOAD 00000bf1: PUSH1 0x20 00000bf3: DUP2 00000bf4: DUP4 00000bf5: SUB 00000bf6: SUB 00000bf7: DUP2 00000bf8: MSTORE 00000bf9: SWAP1 00000bfa: PUSH1 0x40 00000bfc: MSTORE 00000bfd: DUP1 00000bfe: MLOAD 00000bff: SWAP1 00000c00: PUSH1 0x20 00000c02: ADD 00000c03: KECCAK256 00000c04: DUP2 00000c05: EQ 00000c06: PUSH2 0x0c40 00000c09: JUMPI 00000c0a: PUSH1 0x40 00000c0c: MLOAD 00000c0d: PUSH3 0x461bcd 00000c11: PUSH1 0xe5 00000c13: SHL 00000c14: DUP2 00000c15: MSTORE 00000c16: PUSH1 0x04 00000c18: ADD 00000c19: DUP1 00000c1a: DUP1 00000c1b: PUSH1 0x20 00000c1d: ADD 00000c1e: DUP3 00000c1f: DUP2 00000c20: SUB 00000c21: DUP3 00000c22: MSTORE 00000c23: PUSH1 0x22 00000c25: DUP2 00000c26: MSTORE 00000c27: PUSH1 0x20 00000c29: ADD 00000c2a: DUP1 00000c2b: PUSH2 0x1514 00000c2e: PUSH1 0x22 00000c30: SWAP2 00000c31: CODECOPY 00000c32: PUSH1 0x40 00000c34: ADD 00000c35: SWAP2 00000c36: POP 00000c37: POP 00000c38: PUSH1 0x40 00000c3a: MLOAD 00000c3b: DUP1 00000c3c: SWAP2 00000c3d: SUB 00000c3e: SWAP1 00000c3f: REVERT 00000c40: JUMPDEST 00000c41: PUSH1 0x60 00000c43: DUP4 00000c44: PUSH1 0x01 00000c46: PUSH1 0x01 00000c48: PUSH1 0xa0 00000c4a: SHL 00000c4b: SUB 00000c4c: AND 00000c4d: PUSH4 0x0ebdac03 00000c52: PUSH1 0x40 00000c54: MLOAD 00000c55: DUP2 00000c56: PUSH4 0xffffffff 00000c5b: AND 00000c5c: PUSH1 0xe0 00000c5e: SHL 00000c5f: DUP2 00000c60: MSTORE 00000c61: PUSH1 0x04 00000c63: ADD 00000c64: PUSH1 0x00 00000c66: PUSH1 0x40 00000c68: MLOAD 00000c69: DUP1 00000c6a: DUP4 00000c6b: SUB 00000c6c: DUP2 00000c6d: DUP7 00000c6e: DUP1 00000c6f: EXTCODESIZE 00000c70: ISZERO 00000c71: DUP1 00000c72: ISZERO 00000c73: PUSH2 0x0c7b 00000c76: JUMPI 00000c77: PUSH1 0x00 00000c79: DUP1 00000c7a: REVERT 00000c7b: JUMPDEST 00000c7c: POP 00000c7d: GAS 00000c7e: STATICCALL 00000c7f: ISZERO 00000c80: DUP1 00000c81: ISZERO 00000c82: PUSH2 0x0c8f 00000c85: JUMPI 00000c86: RETURNDATASIZE 00000c87: PUSH1 0x00 00000c89: DUP1 00000c8a: RETURNDATACOPY 00000c8b: RETURNDATASIZE 00000c8c: PUSH1 0x00 00000c8e: REVERT 00000c8f: JUMPDEST 00000c90: POP 00000c91: POP 00000c92: POP 00000c93: POP 00000c94: PUSH1 0x40 00000c96: MLOAD 00000c97: RETURNDATASIZE 00000c98: PUSH1 0x00 00000c9a: DUP3 00000c9b: RETURNDATACOPY 00000c9c: PUSH1 0x1f 00000c9e: RETURNDATASIZE 00000c9f: SWAP1 00000ca0: DUP2 00000ca1: ADD 00000ca2: PUSH1 0x1f 00000ca4: NOT 00000ca5: AND 00000ca6: DUP3 00000ca7: ADD 00000ca8: PUSH1 0x40 00000caa: MSTORE 00000cab: PUSH1 0x20 00000cad: DUP2 00000cae: LT 00000caf: ISZERO 00000cb0: PUSH2 0x0cb8 00000cb3: JUMPI 00000cb4: PUSH1 0x00 00000cb6: DUP1 00000cb7: REVERT 00000cb8: JUMPDEST 00000cb9: DUP2 00000cba: ADD 00000cbb: SWAP1 00000cbc: DUP1 00000cbd: DUP1 00000cbe: MLOAD 00000cbf: PUSH1 0x40 00000cc1: MLOAD 00000cc2: SWAP4 00000cc3: SWAP3 00000cc4: SWAP2 00000cc5: SWAP1 00000cc6: DUP5 00000cc7: PUSH1 0x01 00000cc9: PUSH1 0x20 00000ccb: SHL 00000ccc: DUP3 00000ccd: GT 00000cce: ISZERO 00000ccf: PUSH2 0x0cd7 00000cd2: JUMPI 00000cd3: PUSH1 0x00 00000cd5: DUP1 00000cd6: REVERT 00000cd7: JUMPDEST 00000cd8: SWAP1 00000cd9: DUP4 00000cda: ADD 00000cdb: SWAP1 00000cdc: PUSH1 0x20 00000cde: DUP3 00000cdf: ADD 00000ce0: DUP6 00000ce1: DUP2 00000ce2: GT 00000ce3: ISZERO 00000ce4: PUSH2 0x0cec 00000ce7: JUMPI 00000ce8: PUSH1 0x00 00000cea: DUP1 00000ceb: REVERT 00000cec: JUMPDEST 00000ced: DUP3 00000cee: MLOAD 00000cef: DUP7 00000cf0: PUSH1 0x20 00000cf2: DUP3 00000cf3: MUL 00000cf4: DUP4 00000cf5: ADD 00000cf6: GT 00000cf7: PUSH1 0x01 00000cf9: PUSH1 0x20 00000cfb: SHL 00000cfc: DUP3 00000cfd: GT 00000cfe: OR 00000cff: ISZERO 00000d00: PUSH2 0x0d08 00000d03: JUMPI 00000d04: PUSH1 0x00 00000d06: DUP1 00000d07: REVERT 00000d08: JUMPDEST 00000d09: DUP3 00000d0a: MSTORE 00000d0b: POP 00000d0c: DUP2 00000d0d: MLOAD 00000d0e: PUSH1 0x20 00000d10: SWAP2 00000d11: DUP3 00000d12: ADD 00000d13: SWAP3 00000d14: DUP3 00000d15: ADD 00000d16: SWAP2 00000d17: MUL 00000d18: DUP1 00000d19: DUP4 00000d1a: DUP4 00000d1b: PUSH1 0x00 00000d1d: JUMPDEST 00000d1e: DUP4 00000d1f: DUP2 00000d20: LT 00000d21: ISZERO 00000d22: PUSH2 0x0d35 00000d25: JUMPI 00000d26: DUP2 00000d27: DUP2 00000d28: ADD 00000d29: MLOAD 00000d2a: DUP4 00000d2b: DUP3 00000d2c: ADD 00000d2d: MSTORE 00000d2e: PUSH1 0x20 00000d30: ADD 00000d31: PUSH2 0x0d1d 00000d34: JUMP 00000d35: JUMPDEST 00000d36: POP 00000d37: POP 00000d38: POP 00000d39: POP 00000d3a: SWAP1 00000d3b: POP 00000d3c: ADD 00000d3d: PUSH1 0x40 00000d3f: MSTORE 00000d40: POP 00000d41: POP 00000d42: POP 00000d43: SWAP1 00000d44: POP 00000d45: PUSH1 0x00 00000d47: JUMPDEST 00000d48: DUP2 00000d49: MLOAD 00000d4a: DUP2 00000d4b: LT 00000d4c: ISZERO 00000d4d: PUSH2 0x0dc7 00000d50: JUMPI 00000d51: DUP6 00000d52: PUSH2 0x0d6d 00000d55: DUP4 00000d56: DUP4 00000d57: DUP2 00000d58: MLOAD 00000d59: DUP2 00000d5a: LT 00000d5b: PUSH2 0x0d60 00000d5e: JUMPI 00000d5f: INVALID 00000d60: JUMPDEST 00000d61: PUSH1 0x20 00000d63: MUL 00000d64: PUSH1 0x20 00000d66: ADD 00000d67: ADD 00000d68: MLOAD 00000d69: PUSH2 0x0975 00000d6c: JUMP 00000d6d: JUMPDEST 00000d6e: EQ 00000d6f: PUSH2 0x0dbf 00000d72: JUMPI 00000d73: PUSH1 0x40 00000d75: DUP1 00000d76: MLOAD 00000d77: PUSH3 0x461bcd 00000d7b: PUSH1 0xe5 00000d7d: SHL 00000d7e: DUP2 00000d7f: MSTORE 00000d80: PUSH1 0x20 00000d82: PUSH1 0x04 00000d84: DUP3 00000d85: ADD 00000d86: MSTORE 00000d87: PUSH1 0x1b 00000d89: PUSH1 0x24 00000d8b: DUP3 00000d8c: ADD 00000d8d: MSTORE 00000d8e: PUSH32 0x494e434f4e53495354454e545f444953504154434845525f4d41500000000000 00000daf: PUSH1 0x44 00000db1: DUP3 00000db2: ADD 00000db3: MSTORE 00000db4: SWAP1 00000db5: MLOAD 00000db6: SWAP1 00000db7: DUP2 00000db8: SWAP1 00000db9: SUB 00000dba: PUSH1 0x64 00000dbc: ADD 00000dbd: SWAP1 00000dbe: REVERT 00000dbf: JUMPDEST 00000dc0: PUSH1 0x01 00000dc2: ADD 00000dc3: PUSH2 0x0d47 00000dc6: JUMP 00000dc7: JUMPDEST 00000dc8: POP 00000dc9: POP 00000dca: POP 00000dcb: POP 00000dcc: POP 00000dcd: POP 00000dce: JUMP 00000dcf: JUMPDEST 00000dd0: PUSH1 0x00 00000dd2: SWAP2 00000dd3: DUP3 00000dd4: MSTORE 00000dd5: PUSH1 0x1e 00000dd7: PUSH1 0x20 00000dd9: MSTORE 00000dda: PUSH1 0x40 00000ddc: SWAP1 00000ddd: SWAP2 00000dde: KECCAK256 00000ddf: DUP1 00000de0: SLOAD 00000de1: PUSH1 0x01 00000de3: PUSH1 0x01 00000de5: PUSH1 0xa0 00000de7: SHL 00000de8: SUB 00000de9: NOT 00000dea: AND 00000deb: PUSH1 0x01 00000ded: PUSH1 0x01 00000def: PUSH1 0xa0 00000df1: SHL 00000df2: SUB 00000df3: SWAP1 00000df4: SWAP3 00000df5: AND 00000df6: SWAP2 00000df7: SWAP1 00000df8: SWAP2 00000df9: OR 00000dfa: SWAP1 00000dfb: SSTORE 00000dfc: JUMP 00000dfd: JUMPDEST 00000dfe: PUSH2 0x0e0f 00000e01: DUP4 00000e02: PUSH1 0x01 00000e04: PUSH1 0x01 00000e06: PUSH1 0xa0 00000e08: SHL 00000e09: SUB 00000e0a: AND 00000e0b: PUSH2 0x14e5 00000e0e: JUMP 00000e0f: JUMPDEST 00000e10: PUSH2 0x0e51 00000e13: JUMPI 00000e14: PUSH1 0x40 00000e16: DUP1 00000e17: MLOAD 00000e18: PUSH3 0x461bcd 00000e1c: PUSH1 0xe5 00000e1e: SHL 00000e1f: DUP2 00000e20: MSTORE 00000e21: PUSH1 0x20 00000e23: PUSH1 0x04 00000e25: DUP3 00000e26: ADD 00000e27: MSTORE 00000e28: PUSH1 0x0e 00000e2a: PUSH1 0x24 00000e2c: DUP3 00000e2d: ADD 00000e2e: MSTORE 00000e2f: PUSH14 0x1393d517d057d0d3d395149050d5 00000e3e: PUSH1 0x92 00000e40: SHL 00000e41: PUSH1 0x44 00000e43: DUP3 00000e44: ADD 00000e45: MSTORE 00000e46: SWAP1 00000e47: MLOAD 00000e48: SWAP1 00000e49: DUP2 00000e4a: SWAP1 00000e4b: SUB 00000e4c: PUSH1 0x64 00000e4e: ADD 00000e4f: SWAP1 00000e50: REVERT 00000e51: JUMPDEST 00000e52: PUSH1 0x00 00000e54: PUSH1 0x60 00000e56: DUP5 00000e57: PUSH1 0x01 00000e59: PUSH1 0x01 00000e5b: PUSH1 0xa0 00000e5d: SHL 00000e5e: SUB 00000e5f: AND 00000e60: PUSH4 0x439fab91 00000e65: PUSH1 0xe0 00000e67: SHL 00000e68: DUP6 00000e69: DUP6 00000e6a: PUSH1 0x40 00000e6c: MLOAD 00000e6d: PUSH1 0x24 00000e6f: ADD 00000e70: DUP1 00000e71: DUP1 00000e72: PUSH1 0x20 00000e74: ADD 00000e75: DUP3 00000e76: DUP2 00000e77: SUB 00000e78: DUP3 00000e79: MSTORE 00000e7a: DUP5 00000e7b: DUP5 00000e7c: DUP3 00000e7d: DUP2 00000e7e: DUP2 00000e7f: MSTORE 00000e80: PUSH1 0x20 00000e82: ADD 00000e83: SWAP3 00000e84: POP 00000e85: DUP1 00000e86: DUP3 00000e87: DUP5 00000e88: CALLDATACOPY 00000e89: PUSH1 0x00 00000e8b: DUP4 00000e8c: DUP3 00000e8d: ADD 00000e8e: MSTORE 00000e8f: PUSH1 0x40 00000e91: DUP1 00000e92: MLOAD 00000e93: PUSH1 0x1f 00000e95: SWAP1 00000e96: SWAP3 00000e97: ADD 00000e98: PUSH1 0x1f 00000e9a: NOT 00000e9b: SWAP1 00000e9c: DUP2 00000e9d: AND 00000e9e: SWAP1 00000e9f: SWAP5 00000ea0: ADD 00000ea1: DUP3 00000ea2: DUP2 00000ea3: SUB 00000ea4: SWAP1 00000ea5: SWAP5 00000ea6: ADD 00000ea7: DUP3 00000ea8: MSTORE 00000ea9: SWAP3 00000eaa: DUP4 00000eab: MSTORE 00000eac: PUSH1 0x20 00000eae: DUP2 00000eaf: ADD 00000eb0: DUP1 00000eb1: MLOAD 00000eb2: PUSH1 0x01 00000eb4: PUSH1 0x01 00000eb6: PUSH1 0xe0 00000eb8: SHL 00000eb9: SUB 00000eba: AND 00000ebb: PUSH1 0x01 00000ebd: PUSH1 0x01 00000ebf: PUSH1 0xe0 00000ec1: SHL 00000ec2: SUB 00000ec3: NOT 00000ec4: SWAP1 00000ec5: SWAP10 00000ec6: AND 00000ec7: SWAP9 00000ec8: SWAP1 00000ec9: SWAP9 00000eca: OR 00000ecb: DUP9 00000ecc: MSTORE 00000ecd: SWAP2 00000ece: MLOAD 00000ecf: DUP3 00000ed0: MLOAD 00000ed1: SWAP3 00000ed2: SWAP8 00000ed3: SWAP1 00000ed4: SWAP7 00000ed5: POP 00000ed6: DUP7 00000ed7: SWAP6 00000ed8: POP 00000ed9: SWAP4 00000eda: POP 00000edb: SWAP1 00000edc: SWAP2 00000edd: POP 00000ede: DUP2 00000edf: SWAP1 00000ee0: POP 00000ee1: DUP4 00000ee2: DUP4 00000ee3: JUMPDEST 00000ee4: PUSH1 0x20 00000ee6: DUP4 00000ee7: LT 00000ee8: PUSH2 0x0f02 00000eeb: JUMPI 00000eec: DUP1 00000eed: MLOAD 00000eee: DUP3 00000eef: MSTORE 00000ef0: PUSH1 0x1f 00000ef2: NOT 00000ef3: SWAP1 00000ef4: SWAP3 00000ef5: ADD 00000ef6: SWAP2 00000ef7: PUSH1 0x20 00000ef9: SWAP2 00000efa: DUP3 00000efb: ADD 00000efc: SWAP2 00000efd: ADD 00000efe: PUSH2 0x0ee3 00000f01: JUMP 00000f02: JUMPDEST 00000f03: PUSH1 0x01 00000f05: DUP4 00000f06: PUSH1 0x20 00000f08: SUB 00000f09: PUSH2 0x0100 00000f0c: EXP 00000f0d: SUB 00000f0e: DUP1 00000f0f: NOT 00000f10: DUP3 00000f11: MLOAD 00000f12: AND 00000f13: DUP2 00000f14: DUP5 00000f15: MLOAD 00000f16: AND 00000f17: DUP1 00000f18: DUP3 00000f19: OR 00000f1a: DUP6 00000f1b: MSTORE 00000f1c: POP 00000f1d: POP 00000f1e: POP 00000f1f: POP 00000f20: POP 00000f21: POP 00000f22: SWAP1 00000f23: POP 00000f24: ADD 00000f25: SWAP2 00000f26: POP 00000f27: POP 00000f28: PUSH1 0x00 00000f2a: PUSH1 0x40 00000f2c: MLOAD 00000f2d: DUP1 00000f2e: DUP4 00000f2f: SUB 00000f30: DUP2 00000f31: DUP6 00000f32: GAS 00000f33: DELEGATECALL 00000f34: SWAP2 00000f35: POP 00000f36: POP 00000f37: RETURNDATASIZE 00000f38: DUP1 00000f39: PUSH1 0x00 00000f3b: DUP2 00000f3c: EQ 00000f3d: PUSH2 0x0f62 00000f40: JUMPI 00000f41: PUSH1 0x40 00000f43: MLOAD 00000f44: SWAP2 00000f45: POP 00000f46: PUSH1 0x1f 00000f48: NOT 00000f49: PUSH1 0x3f 00000f4b: RETURNDATASIZE 00000f4c: ADD 00000f4d: AND 00000f4e: DUP3 00000f4f: ADD 00000f50: PUSH1 0x40 00000f52: MSTORE 00000f53: RETURNDATASIZE 00000f54: DUP3 00000f55: MSTORE 00000f56: RETURNDATASIZE 00000f57: PUSH1 0x00 00000f59: PUSH1 0x20 00000f5b: DUP5 00000f5c: ADD 00000f5d: RETURNDATACOPY 00000f5e: PUSH2 0x0f67 00000f61: JUMP 00000f62: JUMPDEST 00000f63: PUSH1 0x60 00000f65: SWAP2 00000f66: POP 00000f67: JUMPDEST 00000f68: POP 00000f69: SWAP2 00000f6a: POP 00000f6b: SWAP2 00000f6c: POP 00000f6d: DUP2 00000f6e: DUP2 00000f6f: SWAP1 00000f70: PUSH2 0x0fba 00000f73: JUMPI 00000f74: PUSH1 0x40 00000f76: MLOAD 00000f77: PUSH3 0x461bcd 00000f7b: PUSH1 0xe5 00000f7d: SHL 00000f7e: DUP2 00000f7f: MSTORE 00000f80: PUSH1 0x20 00000f82: PUSH1 0x04 00000f84: DUP3 00000f85: ADD 00000f86: DUP2 00000f87: DUP2 00000f88: MSTORE 00000f89: DUP4 00000f8a: MLOAD 00000f8b: PUSH1 0x24 00000f8d: DUP5 00000f8e: ADD 00000f8f: MSTORE 00000f90: DUP4 00000f91: MLOAD 00000f92: SWAP1 00000f93: SWAP3 00000f94: DUP4 00000f95: SWAP3 00000f96: PUSH1 0x44 00000f98: SWAP1 00000f99: SWAP2 00000f9a: ADD 00000f9b: SWAP2 00000f9c: SWAP1 00000f9d: DUP6 00000f9e: ADD 00000f9f: SWAP1 00000fa0: DUP1 00000fa1: DUP4 00000fa2: DUP4 00000fa3: PUSH1 0x00 00000fa5: DUP4 00000fa6: ISZERO 00000fa7: PUSH2 0x0642 00000faa: JUMPI 00000fab: DUP2 00000fac: DUP2 00000fad: ADD 00000fae: MLOAD 00000faf: DUP4 00000fb0: DUP3 00000fb1: ADD 00000fb2: MSTORE 00000fb3: PUSH1 0x20 00000fb5: ADD 00000fb6: PUSH2 0x062a 00000fb9: JUMP 00000fba: JUMPDEST 00000fbb: POP 00000fbc: DUP1 00000fbd: MLOAD 00000fbe: DUP2 00000fbf: SWAP1 00000fc0: ISZERO 00000fc1: PUSH2 0x0dc7 00000fc4: JUMPI 00000fc5: PUSH1 0x40 00000fc7: MLOAD 00000fc8: PUSH3 0x461bcd 00000fcc: PUSH1 0xe5 00000fce: SHL 00000fcf: DUP2 00000fd0: MSTORE 00000fd1: PUSH1 0x20 00000fd3: PUSH1 0x04 00000fd5: DUP3 00000fd6: ADD 00000fd7: DUP2 00000fd8: DUP2 00000fd9: MSTORE 00000fda: DUP4 00000fdb: MLOAD 00000fdc: PUSH1 0x24 00000fde: DUP5 00000fdf: ADD 00000fe0: MSTORE 00000fe1: DUP4 00000fe2: MLOAD 00000fe3: SWAP1 00000fe4: SWAP3 00000fe5: DUP4 00000fe6: SWAP3 00000fe7: PUSH1 0x44 00000fe9: SWAP1 00000fea: SWAP2 00000feb: ADD 00000fec: SWAP2 00000fed: SWAP1 00000fee: DUP6 00000fef: ADD 00000ff0: SWAP1 00000ff1: DUP1 00000ff2: DUP4 00000ff3: DUP4 00000ff4: PUSH1 0x00 00000ff6: DUP4 00000ff7: ISZERO 00000ff8: PUSH2 0x0642 00000ffb: JUMPI 00000ffc: DUP2 00000ffd: DUP2 00000ffe: ADD 00000fff: MLOAD 00001000: DUP4 00001001: DUP3 00001002: ADD 00001003: MSTORE 00001004: PUSH1 0x20 00001006: ADD 00001007: PUSH2 0x062a 0000100a: JUMP 0000100b: JUMPDEST 0000100c: PUSH1 0x40 0000100e: DUP1 0000100f: MLOAD 00001010: DUP1 00001011: DUP3 00001012: ADD 00001013: SWAP1 00001014: SWAP2 00001015: MSTORE 00001016: PUSH1 0x16 00001018: DUP2 00001019: MSTORE 0000101a: PUSH22 0x12539255125053125690551253d397d09313d0d2d151 00001031: PUSH1 0x52 00001033: SHL 00001034: PUSH1 0x20 00001036: DUP3 00001037: ADD 00001038: MSTORE 00001039: PUSH1 0x0d 0000103b: SLOAD 0000103c: DUP2 0000103d: SWAP1 0000103e: ISZERO 0000103f: PUSH2 0x1089 00001042: JUMPI 00001043: PUSH1 0x40 00001045: MLOAD 00001046: PUSH3 0x461bcd 0000104a: PUSH1 0xe5 0000104c: SHL 0000104d: DUP2 0000104e: MSTORE 0000104f: PUSH1 0x20 00001051: PUSH1 0x04 00001053: DUP3 00001054: ADD 00001055: DUP2 00001056: DUP2 00001057: MSTORE 00001058: DUP4 00001059: MLOAD 0000105a: PUSH1 0x24 0000105c: DUP5 0000105d: ADD 0000105e: MSTORE 0000105f: DUP4 00001060: MLOAD 00001061: SWAP1 00001062: SWAP3 00001063: DUP4 00001064: SWAP3 00001065: PUSH1 0x44 00001067: SWAP1 00001068: SWAP2 00001069: ADD 0000106a: SWAP2 0000106b: SWAP1 0000106c: DUP6 0000106d: ADD 0000106e: SWAP1 0000106f: DUP1 00001070: DUP4 00001071: DUP4 00001072: PUSH1 0x00 00001074: DUP4 00001075: ISZERO 00001076: PUSH2 0x0642 00001079: JUMPI 0000107a: DUP2 0000107b: DUP2 0000107c: ADD 0000107d: MLOAD 0000107e: DUP4 0000107f: DUP3 00001080: ADD 00001081: MSTORE 00001082: PUSH1 0x20 00001084: ADD 00001085: PUSH2 0x062a 00001088: JUMP 00001089: JUMPDEST 0000108a: POP 0000108b: PUSH1 0x0e 0000108d: SLOAD 0000108e: DUP2 0000108f: SWAP1 00001090: ISZERO 00001091: PUSH2 0x10db 00001094: JUMPI 00001095: PUSH1 0x40 00001097: MLOAD 00001098: PUSH3 0x461bcd 0000109c: PUSH1 0xe5 0000109e: SHL 0000109f: DUP2 000010a0: MSTORE 000010a1: PUSH1 0x20 000010a3: PUSH1 0x04 000010a5: DUP3 000010a6: ADD 000010a7: DUP2 000010a8: DUP2 000010a9: MSTORE 000010aa: DUP4 000010ab: MLOAD 000010ac: PUSH1 0x24 000010ae: DUP5 000010af: ADD 000010b0: MSTORE 000010b1: DUP4 000010b2: MLOAD 000010b3: SWAP1 000010b4: SWAP3 000010b5: DUP4 000010b6: SWAP3 000010b7: PUSH1 0x44 000010b9: SWAP1 000010ba: SWAP2 000010bb: ADD 000010bc: SWAP2 000010bd: SWAP1 000010be: DUP6 000010bf: ADD 000010c0: SWAP1 000010c1: DUP1 000010c2: DUP4 000010c3: DUP4 000010c4: PUSH1 0x00 000010c6: DUP4 000010c7: ISZERO 000010c8: PUSH2 0x0642 000010cb: JUMPI 000010cc: DUP2 000010cd: DUP2 000010ce: ADD 000010cf: MLOAD 000010d0: DUP4 000010d1: DUP3 000010d2: ADD 000010d3: MSTORE 000010d4: PUSH1 0x20 000010d6: ADD 000010d7: PUSH2 0x062a 000010da: JUMP 000010db: JUMPDEST 000010dc: POP 000010dd: PUSH1 0x25 000010df: SLOAD 000010e0: DUP2 000010e1: SWAP1 000010e2: ISZERO 000010e3: PUSH2 0x112d 000010e6: JUMPI 000010e7: PUSH1 0x40 000010e9: MLOAD 000010ea: PUSH3 0x461bcd 000010ee: PUSH1 0xe5 000010f0: SHL 000010f1: DUP2 000010f2: MSTORE 000010f3: PUSH1 0x20 000010f5: PUSH1 0x04 000010f7: DUP3 000010f8: ADD 000010f9: DUP2 000010fa: DUP2 000010fb: MSTORE 000010fc: DUP4 000010fd: MLOAD 000010fe: PUSH1 0x24 00001100: DUP5 00001101: ADD 00001102: MSTORE 00001103: DUP4 00001104: MLOAD 00001105: SWAP1 00001106: SWAP3 00001107: DUP4 00001108: SWAP3 00001109: PUSH1 0x44 0000110b: SWAP1 0000110c: SWAP2 0000110d: ADD 0000110e: SWAP2 0000110f: SWAP1 00001110: DUP6 00001111: ADD 00001112: SWAP1 00001113: DUP1 00001114: DUP4 00001115: DUP4 00001116: PUSH1 0x00 00001118: DUP4 00001119: ISZERO 0000111a: PUSH2 0x0642 0000111d: JUMPI 0000111e: DUP2 0000111f: DUP2 00001120: ADD 00001121: MLOAD 00001122: DUP4 00001123: DUP3 00001124: ADD 00001125: MSTORE 00001126: PUSH1 0x20 00001128: ADD 00001129: PUSH2 0x062a 0000112c: JUMP 0000112d: JUMPDEST 0000112e: POP 0000112f: PUSH1 0x26 00001131: SLOAD 00001132: DUP2 00001133: SWAP1 00001134: ISZERO 00001135: PUSH2 0x117f 00001138: JUMPI 00001139: PUSH1 0x40 0000113b: MLOAD 0000113c: PUSH3 0x461bcd 00001140: PUSH1 0xe5 00001142: SHL 00001143: DUP2 00001144: MSTORE 00001145: PUSH1 0x20 00001147: PUSH1 0x04 00001149: DUP3 0000114a: ADD 0000114b: DUP2 0000114c: DUP2 0000114d: MSTORE 0000114e: DUP4 0000114f: MLOAD 00001150: PUSH1 0x24 00001152: DUP5 00001153: ADD 00001154: MSTORE 00001155: DUP4 00001156: MLOAD 00001157: SWAP1 00001158: SWAP3 00001159: DUP4 0000115a: SWAP3 0000115b: PUSH1 0x44 0000115d: SWAP1 0000115e: SWAP2 0000115f: ADD 00001160: SWAP2 00001161: SWAP1 00001162: DUP6 00001163: ADD 00001164: SWAP1 00001165: DUP1 00001166: DUP4 00001167: DUP4 00001168: PUSH1 0x00 0000116a: DUP4 0000116b: ISZERO 0000116c: PUSH2 0x0642 0000116f: JUMPI 00001170: DUP2 00001171: DUP2 00001172: ADD 00001173: MLOAD 00001174: DUP4 00001175: DUP3 00001176: ADD 00001177: MSTORE 00001178: PUSH1 0x20 0000117a: ADD 0000117b: PUSH2 0x062a 0000117e: JUMP 0000117f: JUMPDEST 00001180: POP 00001181: PUSH1 0x0f 00001183: SLOAD 00001184: DUP2 00001185: SWAP1 00001186: ISZERO 00001187: PUSH2 0x11d1 0000118a: JUMPI 0000118b: PUSH1 0x40 0000118d: MLOAD 0000118e: PUSH3 0x461bcd 00001192: PUSH1 0xe5 00001194: SHL 00001195: DUP2 00001196: MSTORE 00001197: PUSH1 0x20 00001199: PUSH1 0x04 0000119b: DUP3 0000119c: ADD 0000119d: DUP2 0000119e: DUP2 0000119f: MSTORE 000011a0: DUP4 000011a1: MLOAD 000011a2: PUSH1 0x24 000011a4: DUP5 000011a5: ADD 000011a6: MSTORE 000011a7: DUP4 000011a8: MLOAD 000011a9: SWAP1 000011aa: SWAP3 000011ab: DUP4 000011ac: SWAP3 000011ad: PUSH1 0x44 000011af: SWAP1 000011b0: SWAP2 000011b1: ADD 000011b2: SWAP2 000011b3: SWAP1 000011b4: DUP6 000011b5: ADD 000011b6: SWAP1 000011b7: DUP1 000011b8: DUP4 000011b9: DUP4 000011ba: PUSH1 0x00 000011bc: DUP4 000011bd: ISZERO 000011be: PUSH2 0x0642 000011c1: JUMPI 000011c2: DUP2 000011c3: DUP2 000011c4: ADD 000011c5: MLOAD 000011c6: DUP4 000011c7: DUP3 000011c8: ADD 000011c9: MSTORE 000011ca: PUSH1 0x20 000011cc: ADD 000011cd: PUSH2 0x062a 000011d0: JUMP 000011d1: JUMPDEST 000011d2: POP 000011d3: PUSH1 0x10 000011d5: SLOAD 000011d6: DUP2 000011d7: SWAP1 000011d8: ISZERO 000011d9: PUSH2 0x0931 000011dc: JUMPI 000011dd: PUSH1 0x40 000011df: MLOAD 000011e0: PUSH3 0x461bcd 000011e4: PUSH1 0xe5 000011e6: SHL 000011e7: DUP2 000011e8: MSTORE 000011e9: PUSH1 0x20 000011eb: PUSH1 0x04 000011ed: DUP3 000011ee: ADD 000011ef: DUP2 000011f0: DUP2 000011f1: MSTORE 000011f2: DUP4 000011f3: MLOAD 000011f4: PUSH1 0x24 000011f6: DUP5 000011f7: ADD 000011f8: MSTORE 000011f9: DUP4 000011fa: MLOAD 000011fb: SWAP1 000011fc: SWAP3 000011fd: DUP4 000011fe: SWAP3 000011ff: PUSH1 0x44 00001201: SWAP1 00001202: SWAP2 00001203: ADD 00001204: SWAP2 00001205: SWAP1 00001206: DUP6 00001207: ADD 00001208: SWAP1 00001209: DUP1 0000120a: DUP4 0000120b: DUP4 0000120c: PUSH1 0x00 0000120e: DUP4 0000120f: ISZERO 00001210: PUSH2 0x0642 00001213: JUMPI 00001214: DUP2 00001215: DUP2 00001216: ADD 00001217: MLOAD 00001218: DUP4 00001219: DUP3 0000121a: ADD 0000121b: MSTORE 0000121c: PUSH1 0x20 0000121e: ADD 0000121f: PUSH2 0x062a 00001222: JUMP 00001223: JUMPDEST 00001224: PUSH1 0x60 00001226: DUP2 00001227: PUSH1 0x01 00001229: EQ 0000122a: ISZERO 0000122b: PUSH2 0x1268 0000122e: JUMPI 0000122f: POP 00001230: PUSH1 0x40 00001232: DUP1 00001233: MLOAD 00001234: DUP1 00001235: DUP3 00001236: ADD 00001237: SWAP1 00001238: SWAP2 00001239: MSTORE 0000123a: PUSH1 0x1d 0000123c: DUP2 0000123d: MSTORE 0000123e: PUSH32 0x537461726b576172655f416c6c5665726966696572735f323032325f32000000 0000125f: PUSH1 0x20 00001261: DUP3 00001262: ADD 00001263: MSTORE 00001264: PUSH2 0x02df 00001267: JUMP 00001268: JUMPDEST 00001269: DUP2 0000126a: PUSH1 0x02 0000126c: EQ 0000126d: ISZERO 0000126e: PUSH2 0x1291 00001271: JUMPI 00001272: PUSH1 0x40 00001274: MLOAD 00001275: DUP1 00001276: PUSH1 0x60 00001278: ADD 00001279: PUSH1 0x40 0000127b: MSTORE 0000127c: DUP1 0000127d: PUSH1 0x21 0000127f: DUP2 00001280: MSTORE 00001281: PUSH1 0x20 00001283: ADD 00001284: PUSH2 0x1536 00001287: PUSH1 0x21 00001289: SWAP2 0000128a: CODECOPY 0000128b: SWAP1 0000128c: POP 0000128d: PUSH2 0x02df 00001290: JUMP 00001291: JUMPDEST 00001292: DUP2 00001293: PUSH1 0x03 00001295: EQ 00001296: ISZERO 00001297: PUSH2 0x12d4 0000129a: JUMPI 0000129b: POP 0000129c: PUSH1 0x40 0000129e: DUP1 0000129f: MLOAD 000012a0: DUP1 000012a1: DUP3 000012a2: ADD 000012a3: SWAP1 000012a4: SWAP2 000012a5: MSTORE 000012a6: PUSH1 0x1d 000012a8: DUP2 000012a9: MSTORE 000012aa: PUSH32 0x537461726b576172655f537461726b457853746174655f323032325f35000000 000012cb: PUSH1 0x20 000012cd: DUP3 000012ce: ADD 000012cf: MSTORE 000012d0: PUSH2 0x02df 000012d3: JUMP 000012d4: JUMPDEST 000012d5: DUP2 000012d6: PUSH1 0x04 000012d8: EQ 000012d9: ISZERO 000012da: PUSH2 0x1317 000012dd: JUMPI 000012de: POP 000012df: PUSH1 0x40 000012e1: DUP1 000012e2: MLOAD 000012e3: DUP1 000012e4: DUP3 000012e5: ADD 000012e6: SWAP1 000012e7: SWAP2 000012e8: MSTORE 000012e9: PUSH1 0x1e 000012eb: DUP2 000012ec: MSTORE 000012ed: PUSH32 0x537461726b576172655f466f72636564416374696f6e735f323032325f330000 0000130e: PUSH1 0x20 00001310: DUP3 00001311: ADD 00001312: MSTORE 00001313: PUSH2 0x02df 00001316: JUMP 00001317: JUMPDEST 00001318: DUP2 00001319: PUSH1 0x05 0000131b: EQ 0000131c: ISZERO 0000131d: PUSH2 0x135a 00001320: JUMPI 00001321: POP 00001322: PUSH1 0x40 00001324: DUP1 00001325: MLOAD 00001326: DUP1 00001327: DUP3 00001328: ADD 00001329: SWAP1 0000132a: SWAP2 0000132b: MSTORE 0000132c: PUSH1 0x1e 0000132e: DUP2 0000132f: MSTORE 00001330: PUSH32 0x537461726b576172655f4f6e636861696e5661756c74735f323032325f320000 00001351: PUSH1 0x20 00001353: DUP3 00001354: ADD 00001355: MSTORE 00001356: PUSH2 0x02df 00001359: JUMP 0000135a: JUMPDEST 0000135b: DUP2 0000135c: PUSH1 0x06 0000135e: EQ 0000135f: ISZERO 00001360: PUSH2 0x139d 00001363: JUMPI 00001364: POP 00001365: PUSH1 0x40 00001367: DUP1 00001368: MLOAD 00001369: DUP1 0000136a: DUP3 0000136b: ADD 0000136c: SWAP1 0000136d: SWAP2 0000136e: MSTORE 0000136f: PUSH1 0x1b 00001371: DUP2 00001372: MSTORE 00001373: PUSH32 0x537461726b576172655f50726f78795574696c735f323032325f320000000000 00001394: PUSH1 0x20 00001396: DUP3 00001397: ADD 00001398: MSTORE 00001399: PUSH2 0x02df 0000139c: JUMP 0000139d: JUMPDEST 0000139e: PUSH1 0x40 000013a0: DUP1 000013a1: MLOAD 000013a2: PUSH3 0x461bcd 000013a6: PUSH1 0xe5 000013a8: SHL 000013a9: DUP2 000013aa: MSTORE 000013ab: PUSH1 0x20 000013ad: PUSH1 0x04 000013af: DUP3 000013b0: ADD 000013b1: MSTORE 000013b2: PUSH1 0x10 000013b4: PUSH1 0x24 000013b6: DUP3 000013b7: ADD 000013b8: MSTORE 000013b9: PUSH16 0x0aa9c8ab0a08a86a88a88be929c888ab 000013ca: PUSH1 0x83 000013cc: SHL 000013cd: PUSH1 0x44 000013cf: DUP3 000013d0: ADD 000013d1: MSTORE 000013d2: SWAP1 000013d3: MLOAD 000013d4: SWAP1 000013d5: DUP2 000013d6: SWAP1 000013d7: SUB 000013d8: PUSH1 0x64 000013da: ADD 000013db: SWAP1 000013dc: REVERT 000013dd: JUMPDEST 000013de: PUSH3 0x174e76 000013e2: SWAP1 000013e3: JUMP 000013e4: JUMPDEST 000013e5: PUSH1 0x00 000013e7: DUP2 000013e8: PUSH2 0x1412 000013eb: JUMPI 000013ec: POP 000013ed: PUSH32 0x2010501100000010050000002511000000220005410030200200200000552010 0000140e: PUSH2 0x02df 00001411: JUMP 00001412: JUMPDEST 00001413: DUP2 00001414: PUSH1 0x01 00001416: EQ 00001417: ISZERO 00001418: PUSH2 0x1442 0000141b: JUMPI 0000141c: POP 0000141d: PUSH32 0x3000030005000050020012003000010604300000002420501003000010000300 0000143e: PUSH2 0x02df 00001441: JUMP 00001442: JUMPDEST 00001443: DUP2 00001444: PUSH1 0x02 00001446: EQ 00001447: ISZERO 00001448: PUSH2 0x1472 0000144b: JUMPI 0000144c: POP 0000144d: PUSH32 0x1003112030002130000200100020000320202001020001001000040200200020 0000146e: PUSH2 0x02df 00001471: JUMP 00001472: JUMPDEST 00001473: DUP2 00001474: PUSH1 0x03 00001476: EQ 00001477: ISZERO 00001478: PUSH2 0x14a2 0000147b: JUMPI 0000147c: POP 0000147d: PUSH32 0x2000000050000012000013100002002002032050020002020002050000201003 0000149e: PUSH2 0x02df 000014a1: JUMP 000014a2: JUMPDEST 000014a3: PUSH1 0x40 000014a5: DUP1 000014a6: MLOAD 000014a7: PUSH3 0x461bcd 000014ab: PUSH1 0xe5 000014ad: SHL 000014ae: DUP2 000014af: MSTORE 000014b0: PUSH1 0x20 000014b2: PUSH1 0x04 000014b4: DUP3 000014b5: ADD 000014b6: MSTORE 000014b7: PUSH1 0x13 000014b9: PUSH1 0x24 000014bb: DUP3 000014bc: ADD 000014bd: MSTORE 000014be: PUSH19 0x2120a22fa4a22c2fa6a0a82fa9a2a1aa24a7a7 000014d2: PUSH1 0x69 000014d4: SHL 000014d5: PUSH1 0x44 000014d7: DUP3 000014d8: ADD 000014d9: MSTORE 000014da: SWAP1 000014db: MLOAD 000014dc: SWAP1 000014dd: DUP2 000014de: SWAP1 000014df: SUB 000014e0: PUSH1 0x64 000014e2: ADD 000014e3: SWAP1 000014e4: REVERT 000014e5: JUMPDEST 000014e6: EXTCODESIZE 000014e7: ISZERO 000014e8: ISZERO 000014e9: SWAP1 000014ea: JUMP 000014eb: JUMPDEST 000014ec: PUSH1 0x00 000014ee: DUP1 000014ef: DUP6 000014f0: DUP6 000014f1: GT 000014f2: ISZERO 000014f3: PUSH2 0x14fa 000014f6: JUMPI 000014f7: DUP2 000014f8: DUP3 000014f9: REVERT 000014fa: JUMPDEST 000014fb: DUP4 000014fc: DUP7 000014fd: GT 000014fe: ISZERO 000014ff: PUSH2 0x1506 00001502: JUMPI 00001503: DUP2 00001504: DUP3 00001505: REVERT 00001506: JUMPDEST 00001507: POP 00001508: POP 00001509: DUP3 0000150a: ADD 0000150b: SWAP4 0000150c: SWAP2 0000150d: SWAP1 0000150e: SWAP3 0000150f: SUB 00001510: SWAP2 00001511: POP 00001512: JUMP 00001513: INVALID 00001514: UNKNOWN(0x4D) 00001515: BLOBHASH 00001516: MSTORE8 00001517: POP 00001518: UNKNOWN(0x4C) 00001519: COINBASE 0000151a: NUMBER 0000151b: GASLIMIT 0000151c: DIFFICULTY 0000151d: PUSH0 0000151e: BLOBHASH 0000151f: UNKNOWN(0x4E) 00001520: DIFFICULTY 00001521: GASLIMIT 00001522: PC 00001523: PUSH0 00001524: UNKNOWN(0x4F) 00001525: MSTORE 00001526: PUSH0 00001527: TIMESTAMP 00001528: COINBASE 00001529: DIFFICULTY 0000152a: PUSH0 0000152b: NUMBER 0000152c: UNKNOWN(0x4F) 0000152d: UNKNOWN(0x4E) 0000152e: SLOAD 0000152f: MSTORE 00001530: COINBASE 00001531: NUMBER 00001532: SLOAD 00001533: PUSH0 00001534: BLOBHASH 00001535: DIFFICULTY 00001536: MSTORE8 00001537: PUSH21 0x61726b576172655f546f6b656e73416e6452616d70 0000154d: PUSH10 0x6e675f323032325f32a2 00001558: PUSH5 0x6970667358 0000155e: UNKNOWN(0x22) 0000155f: SLT 00001560: KECCAK256 00001561: UNKNOWN(0xC8) 00001562: UNKNOWN(0xEA) 00001563: SWAP15 00001564: SWAP3 00001565: ORIGIN 00001566: XOR 00001567: PUSH8 0xcc5cf888b0a310d1 00001570: MCOPY 00001571: AND 00001572: BLOBBASEFEE 00001573: AND 00001574: DUP1 00001575: PUSH17 0xabbcfebc9ec31e046cc58364736f6c6343 00001587: STOP 00001588: MOD 00001589: UNKNOWN(0x0C) 0000158a: STOP 0000158b: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | access_control | codex | Unprotected initialize lets attacker overwrite subContracts and execute arbitrary delegatecall logic | 90 | no | — |
viewevidence_json{
"evidence": "initialize is external and writes subContracts before any guard, then returns early when additionalDataSize==0, skipping initializationSentinel; no access control is present on initialize.",
"locations": [
"contracts/MainDispatcherBase.sol:124",
"contracts/MainDispatcherBase.sol:144",
"contracts/MainDispatcherBase.sol:171"
],
"recommendation": "Restrict initialize to governance/upgrade flow only, and enforce a one-time initialization flag or call initializationSentinel before writing subContracts even when additionalDataSize==0.",
"exploit_scenario": "1) Deploy six malicious SubContractor contracts (one per index 1..6) with identify() returning the expected ID string and validatedSelectors() returning at least one selector that maps to their index; each contract\u2019s selector handler/fallback transfers ETH/ERC20s from address(this) to the attacker.\n2) Call the proxy/dispatcher entrypoint with initialize(data) where data encodes the six attacker addresses + EIC=0 and no extra init data. Because initialize is external, lacks auth, and returns early when additionalDataSize==0, it overwrites subContracts without any initialization guard.\n3) Call the dispatcher with one of the precomputed selectors so fallback delegates into the attacker contract and drains funds.\nProfit potential: essentially the full on-chain balances held by the dispatcher/proxy (ETH + all custodial ERC20/NFT balances)."
}
|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x1eaedc439b540a24efa07fbac4fc2f8a72096f0e75b95490df3d5d36b4144926
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 48,
"trace_id": "0x1eaedc439b540a24efa07fbac4fc2f8a72096f0e75b95490df3d5d36b4144926",
"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": "0x2f9014b4",
"selector": "0x2f9014b4",
"calldata_variants": [
"0x2f9014b4",
"0x2f9014b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x439fab91",
"selector": "0x439fab91",
"calldata_variants": [
"0x439fab91",
"0x439fab910000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4e878e8",
"selector": "0xd4e878e8",
"calldata_variants": [
"0xd4e878e8",
"0xd4e878e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffa1ad74",
"selector": "0xffa1ad74",
"calldata_variants": [
"0xffa1ad74",
"0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 274,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 1465,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 2105,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 5477,
"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": "0x2f9014b4",
"selector": "0x2f9014b4",
"calldata_variants": [
"0x2f9014b4",
"0x2f9014b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x439fab91",
"selector": "0x439fab91",
"calldata_variants": [
"0x439fab91",
"0x439fab910000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4e878e8",
"selector": "0xd4e878e8",
"calldata_variants": [
"0xd4e878e8",
"0xd4e878e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffa1ad74",
"selector": "0xffa1ad74",
"calldata_variants": [
"0xffa1ad74",
"0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 5477,
"type": "tx_origin_used"
}
]
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 4
}
|