2531614a-49ba-44c6-8560-d0e9425ac17c
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 |
|---|---|---|---|---|
| 31677 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 95485 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 95486 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 95487 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 95488 | capability.graph | complete | 1 / 3 | 1 week ago |
| 95489 | detector.run | complete | 1 / 3 | 1 week ago |
| 95490 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1468286] OpenAI Codex v0.77.0 (research preview)
[codex:1468286] --------
[codex:1468286] workdir: /tmp/codex-multi-cxab0aau
[codex:1468286] model: gpt-5.2-codex
[codex:1468286] provider: openai
[codex:1468286] approval: never
[codex:1468286] sandbox: read-only
[codex:1468286] reasoning effort: xhigh
[codex:1468286] reasoning summaries: auto
[codex:1468286] session id: 019b8c3e-ed7d-7a20-90c4-b26a13375f8f
[codex:1468286] --------
[codex:1468286] user
[codex:1468286] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1468286]
[codex:1468286] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1468286]
[codex:1468286] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1468286] - Gas inefficiency, code quality, naming, or best practices
[codex:1468286] - Theoretical vulnerabilities without a clear extraction path
[codex:1468286] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1468286] - Front-running unless it enables theft beyond MEV
[codex:1468286] - DoS, griefing, or issues that don't result in attacker profit
[codex:1468286] - Missing events, view function issues, or informational findings
[codex:1468286]
[codex:1468286] HIGH-VALUE PATTERNS TO HUNT:
[codex:1468286] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1468286] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1468286] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1468286] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1468286] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1468286] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1468286] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1468286] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1468286] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1468286]
[codex:1468286] For each finding, you MUST provide:
[codex:1468286] 1. Exact file and line numbers of vulnerable code
[codex:1468286] 2. Step-by-step exploit transaction sequence
[codex:1468286] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1468286]
[codex:1468286] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1468286]
[codex:1468286] Output MUST be valid JSON matching the provided schema.
[codex:1468286] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1468286] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1468286] mcp startup: no servers
[codex:1468286]
[codex:1468286] thinking
[codex:1468286] **Reading AUDIT_BUNDLE.txt file**
[codex:1468286] exec
[codex:1468286] /bin/bash -lc ls in /tmp/codex-multi-cxab0aau succeeded in 5ms:
[codex:1468286] AUDIT_BUNDLE.txt
[codex:1468286] codex-output-schema.json
[codex:1468286] contracts
[codex:1468286] exec
[codex:1468286] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-cxab0aau succeeded in 5ms:
[codex:1468286] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1468286]
[codex:1468286] ================================================================================
[codex:1468286] FILE: contracts/contracts/interfaces/IGateway.sol
[codex:1468286] ================================================================================
[codex:1468286] // SPDX-License-Identifier: BSL 1.1
[codex:1468286] pragma solidity 0.8.26;
[codex:1468286]
[codex:1468286] /**
[codex:1468286] * @title IGateway
[codex:1468286] * @dev Interface for the Gateway contract in the standard bridge.
[codex:1468286] */
[codex:1468286] interface IGateway {
[codex:1468286] /**
[codex:1468286] * @dev Emitted when a cross-chain transfer is initiated.
[codex:1468286] * @param sender Address initiating the transfer.
[codex:1468286] * @param recipient Address receiving the tokens.
[codex:1468286] * @param amount Ether being transferred in wei.
[codex:1468286] * @param transferIdx Current index of this gateway.
[codex:1468286] * @param counterpartyFinalizationFee The finalization fee (wei) paid to the relayer by the counterparty contract.
[codex:1468286]
[codex:1468286] thinking
[codex:1468286] **Completing exploit evaluation**
[codex:1468286] codex
[codex:1468286] {"no_findings":true,"summary":"No concrete exploitable profit paths found in the provided contracts under the stated assumptions.","findings":[]}
[codex:1468286] tokens used
[codex:1468286] 8,049
[codex:1468286] {"no_findings":true,"summary":"No concrete exploitable profit paths found in the provided contracts under the stated assumptions.","findings":[]}
{
"codex": {
"ran_at": "2026-01-05T03:42:37.779186+00:00",
"returncode": 0
},
"summary": "No concrete exploitable profit paths found in the provided contracts under the stated assumptions.",
"raw_final": {
"summary": "No concrete exploitable profit paths found in the provided contracts under the stated assumptions.",
"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 0x0025 0000000d: JUMPI 0000000e: JUMPDEST 0000000f: CALLDATASIZE 00000010: ISZERO 00000011: PUSH2 0x0023 00000014: JUMPI 00000015: PUSH4 0x5a93724d 0000001a: PUSH1 0xe0 0000001c: SHL 0000001d: PUSH0 0000001e: MSTORE 0000001f: PUSH1 0x04 00000021: PUSH0 00000022: REVERT 00000023: JUMPDEST 00000024: STOP 00000025: JUMPDEST 00000026: PUSH0 00000027: CALLDATALOAD 00000028: PUSH1 0xe0 0000002a: SHR 0000002b: DUP1 0000002c: PUSH4 0x169235ed 00000031: EQ 00000032: PUSH2 0x0bdf 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0x1794bb3c 0000003c: EQ 0000003d: PUSH2 0x09df 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x22396f1d 00000047: EQ 00000048: PUSH2 0x09a8 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x3f4ba83a 00000052: EQ 00000053: PUSH2 0x092a 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x4f1ef286 0000005d: EQ 0000005e: PUSH2 0x0720 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x51cff8d9 00000068: EQ 00000069: PUSH2 0x0650 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x52d1902d 00000073: EQ 00000074: PUSH2 0x05ea 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x55f4bdfc 0000007e: EQ 0000007f: PUSH2 0x0585 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0x5c975abb 00000089: EQ 0000008a: PUSH2 0x0557 0000008d: JUMPI 0000008e: DUP1 0000008f: PUSH4 0x6548e9bc 00000094: EQ 00000095: PUSH2 0x04e0 00000098: JUMPI 00000099: DUP1 0000009a: PUSH4 0x715018a6 0000009f: EQ 000000a0: PUSH2 0x0463 000000a3: JUMPI 000000a4: DUP1 000000a5: PUSH4 0x79ba5097 000000aa: EQ 000000ab: PUSH2 0x0417 000000ae: JUMPI 000000af: DUP1 000000b0: PUSH4 0x8406c079 000000b5: EQ 000000b6: PUSH2 0x03ef 000000b9: JUMPI 000000ba: DUP1 000000bb: PUSH4 0x8456cb59 000000c0: EQ 000000c1: PUSH2 0x037e 000000c4: JUMPI 000000c5: DUP1 000000c6: PUSH4 0x8da5cb5b 000000cb: EQ 000000cc: PUSH2 0x034a 000000cf: JUMPI 000000d0: DUP1 000000d1: PUSH4 0xa2ff158d 000000d6: EQ 000000d7: PUSH2 0x032d 000000da: JUMPI 000000db: DUP1 000000dc: PUSH4 0xad3cb1cc 000000e1: EQ 000000e2: PUSH2 0x02cf 000000e5: JUMPI 000000e6: DUP1 000000e7: PUSH4 0xb504cd1e 000000ec: EQ 000000ed: PUSH2 0x0211 000000f0: JUMPI 000000f1: DUP1 000000f2: PUSH4 0xce4ab0ad 000000f7: EQ 000000f8: PUSH2 0x01f4 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0xe30c3978 00000102: EQ 00000103: PUSH2 0x01c0 00000106: JUMPI 00000107: DUP1 00000108: PUSH4 0xe557b142 0000010d: EQ 0000010e: PUSH2 0x01a3 00000111: JUMPI 00000112: PUSH4 0xf2fde38b 00000117: SUB 00000118: PUSH2 0x000e 0000011b: JUMPI 0000011c: CALLVALUE 0000011d: PUSH2 0x019f 00000120: JUMPI 00000121: PUSH1 0x20 00000123: CALLDATASIZE 00000124: PUSH1 0x03 00000126: NOT 00000127: ADD 00000128: SLT 00000129: PUSH2 0x019f 0000012c: JUMPI 0000012d: PUSH2 0x0134 00000130: PUSH2 0x0d02 00000133: JUMP 00000134: JUMPDEST 00000135: PUSH2 0x013c 00000138: PUSH2 0x0ee5 0000013b: JUMP 0000013c: JUMPDEST 0000013d: PUSH0 0000013e: DUP1 0000013f: MLOAD 00000140: PUSH1 0x20 00000142: PUSH2 0x109a 00000145: DUP4 00000146: CODECOPY 00000147: DUP2 00000148: MLOAD 00000149: SWAP2 0000014a: MSTORE 0000014b: DUP1 0000014c: SLOAD 0000014d: PUSH1 0x01 0000014f: PUSH1 0x01 00000151: PUSH1 0xa0 00000153: SHL 00000154: SUB 00000155: NOT 00000156: AND 00000157: PUSH1 0x01 00000159: PUSH1 0x01 0000015b: PUSH1 0xa0 0000015d: SHL 0000015e: SUB 0000015f: SWAP3 00000160: DUP4 00000161: AND 00000162: SWAP1 00000163: DUP2 00000164: OR 00000165: SWAP1 00000166: SWAP2 00000167: SSTORE 00000168: PUSH0 00000169: DUP1 0000016a: MLOAD 0000016b: PUSH1 0x20 0000016d: PUSH2 0x0ffa 00000170: DUP4 00000171: CODECOPY 00000172: DUP2 00000173: MLOAD 00000174: SWAP2 00000175: MSTORE 00000176: SLOAD 00000177: SWAP1 00000178: SWAP2 00000179: AND 0000017a: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 0000019b: PUSH0 0000019c: DUP1 0000019d: LOG3 0000019e: STOP 0000019f: JUMPDEST 000001a0: PUSH0 000001a1: DUP1 000001a2: REVERT 000001a3: JUMPDEST 000001a4: CALLVALUE 000001a5: PUSH2 0x019f 000001a8: JUMPI 000001a9: PUSH0 000001aa: CALLDATASIZE 000001ab: PUSH1 0x03 000001ad: NOT 000001ae: ADD 000001af: SLT 000001b0: PUSH2 0x019f 000001b3: JUMPI 000001b4: PUSH1 0x20 000001b6: PUSH1 0x31 000001b8: SLOAD 000001b9: PUSH1 0x40 000001bb: MLOAD 000001bc: SWAP1 000001bd: DUP2 000001be: MSTORE 000001bf: RETURN 000001c0: JUMPDEST 000001c1: CALLVALUE 000001c2: PUSH2 0x019f 000001c5: JUMPI 000001c6: PUSH0 000001c7: CALLDATASIZE 000001c8: PUSH1 0x03 000001ca: NOT 000001cb: ADD 000001cc: SLT 000001cd: PUSH2 0x019f 000001d0: JUMPI 000001d1: PUSH0 000001d2: DUP1 000001d3: MLOAD 000001d4: PUSH1 0x20 000001d6: PUSH2 0x109a 000001d9: DUP4 000001da: CODECOPY 000001db: DUP2 000001dc: MLOAD 000001dd: SWAP2 000001de: MSTORE 000001df: SLOAD 000001e0: PUSH1 0x40 000001e2: MLOAD 000001e3: PUSH1 0x01 000001e5: PUSH1 0x01 000001e7: PUSH1 0xa0 000001e9: SHL 000001ea: SUB 000001eb: SWAP1 000001ec: SWAP2 000001ed: AND 000001ee: DUP2 000001ef: MSTORE 000001f0: PUSH1 0x20 000001f2: SWAP1 000001f3: RETURN 000001f4: JUMPDEST 000001f5: CALLVALUE 000001f6: PUSH2 0x019f 000001f9: JUMPI 000001fa: PUSH0 000001fb: CALLDATASIZE 000001fc: PUSH1 0x03 000001fe: NOT 000001ff: ADD 00000200: SLT 00000201: PUSH2 0x019f 00000204: JUMPI 00000205: PUSH1 0x20 00000207: PUSH1 0x34 00000209: SLOAD 0000020a: PUSH1 0x40 0000020c: MLOAD 0000020d: SWAP1 0000020e: DUP2 0000020f: MSTORE 00000210: RETURN 00000211: JUMPDEST 00000212: PUSH1 0x40 00000214: CALLDATASIZE 00000215: PUSH1 0x03 00000217: NOT 00000218: ADD 00000219: SLT 0000021a: PUSH2 0x019f 0000021d: JUMPI 0000021e: PUSH2 0x0225 00000221: PUSH2 0x0d02 00000224: JUMP 00000225: JUMPDEST 00000226: PUSH1 0x24 00000228: CALLDATALOAD 00000229: SWAP1 0000022a: PUSH2 0x0231 0000022d: PUSH2 0x0dc4 00000230: JUMP 00000231: JUMPDEST 00000232: PUSH2 0x0239 00000235: PUSH2 0x0deb 00000238: JUMP 00000239: JUMPDEST 0000023a: PUSH1 0x34 0000023c: SLOAD 0000023d: PUSH2 0x024a 00000240: DUP2 00000241: DUP5 00000242: DUP2 00000243: DUP2 00000244: LT 00000245: ISZERO 00000246: PUSH2 0x0d6a 00000249: JUMP 0000024a: JUMPDEST 0000024b: DUP3 0000024c: CALLVALUE 0000024d: SUB 0000024e: PUSH2 0x02b8 00000251: JUMPI 00000252: PUSH1 0x20 00000254: SWAP3 00000255: PUSH2 0x025f 00000258: PUSH1 0x31 0000025a: SLOAD 0000025b: PUSH2 0x0d87 0000025e: JUMP 0000025f: JUMPDEST 00000260: SWAP3 00000261: DUP4 00000262: SWAP3 00000263: DUP4 00000264: PUSH1 0x31 00000266: SSTORE 00000267: PUSH1 0x40 00000269: MLOAD 0000026a: SWAP3 0000026b: DUP4 0000026c: MSTORE 0000026d: DUP6 0000026e: DUP4 0000026f: ADD 00000270: MSTORE 00000271: PUSH1 0x01 00000273: DUP1 00000274: PUSH1 0xa0 00000276: SHL 00000277: SUB 00000278: AND 00000279: SWAP1 0000027a: PUSH32 0xb6167f4688b09f3299421570723fc91f0bd78d6f55e8d51fbfca3bfbda7a2664 0000029b: PUSH1 0x40 0000029d: CALLER 0000029e: SWAP3 0000029f: LOG4 000002a0: PUSH1 0x01 000002a2: PUSH0 000002a3: DUP1 000002a4: MLOAD 000002a5: PUSH1 0x20 000002a7: PUSH2 0x105a 000002aa: DUP4 000002ab: CODECOPY 000002ac: DUP2 000002ad: MLOAD 000002ae: SWAP2 000002af: MSTORE 000002b0: SSTORE 000002b1: PUSH1 0x40 000002b3: MLOAD 000002b4: SWAP1 000002b5: DUP2 000002b6: MSTORE 000002b7: RETURN 000002b8: JUMPDEST 000002b9: DUP3 000002ba: PUSH4 0x1adb52ef 000002bf: PUSH1 0xe2 000002c1: SHL 000002c2: PUSH0 000002c3: MSTORE 000002c4: CALLVALUE 000002c5: PUSH1 0x04 000002c7: MSTORE 000002c8: PUSH1 0x24 000002ca: MSTORE 000002cb: PUSH1 0x44 000002cd: PUSH0 000002ce: REVERT 000002cf: JUMPDEST 000002d0: CALLVALUE 000002d1: PUSH2 0x019f 000002d4: JUMPI 000002d5: PUSH0 000002d6: CALLDATASIZE 000002d7: PUSH1 0x03 000002d9: NOT 000002da: ADD 000002db: SLT 000002dc: PUSH2 0x019f 000002df: JUMPI 000002e0: PUSH1 0x40 000002e2: DUP1 000002e3: MLOAD 000002e4: SWAP1 000002e5: PUSH2 0x02ee 000002e8: DUP2 000002e9: DUP4 000002ea: PUSH2 0x0d18 000002ed: JUMP 000002ee: JUMPDEST 000002ef: PUSH1 0x05 000002f1: DUP3 000002f2: MSTORE 000002f3: PUSH1 0x20 000002f5: DUP3 000002f6: ADD 000002f7: SWAP2 000002f8: PUSH5 0x0352e302e3 000002fe: PUSH1 0xdc 00000300: SHL 00000301: DUP4 00000302: MSTORE 00000303: DUP2 00000304: MLOAD 00000305: SWAP3 00000306: DUP4 00000307: SWAP2 00000308: PUSH1 0x20 0000030a: DUP4 0000030b: MSTORE 0000030c: MLOAD 0000030d: DUP1 0000030e: SWAP2 0000030f: DUP2 00000310: PUSH1 0x20 00000312: DUP6 00000313: ADD 00000314: MSTORE 00000315: DUP5 00000316: DUP5 00000317: ADD 00000318: MCOPY 00000319: PUSH0 0000031a: DUP3 0000031b: DUP3 0000031c: ADD 0000031d: DUP5 0000031e: ADD 0000031f: MSTORE 00000320: PUSH1 0x1f 00000322: ADD 00000323: PUSH1 0x1f 00000325: NOT 00000326: AND 00000327: DUP2 00000328: ADD 00000329: SUB 0000032a: ADD 0000032b: SWAP1 0000032c: RETURN 0000032d: JUMPDEST 0000032e: CALLVALUE 0000032f: PUSH2 0x019f 00000332: JUMPI 00000333: PUSH0 00000334: CALLDATASIZE 00000335: PUSH1 0x03 00000337: NOT 00000338: ADD 00000339: SLT 0000033a: PUSH2 0x019f 0000033d: JUMPI 0000033e: PUSH1 0x20 00000340: PUSH1 0x32 00000342: SLOAD 00000343: PUSH1 0x40 00000345: MLOAD 00000346: SWAP1 00000347: DUP2 00000348: MSTORE 00000349: RETURN 0000034a: JUMPDEST 0000034b: CALLVALUE 0000034c: PUSH2 0x019f 0000034f: JUMPI 00000350: PUSH0 00000351: CALLDATASIZE 00000352: PUSH1 0x03 00000354: NOT 00000355: ADD 00000356: SLT 00000357: PUSH2 0x019f 0000035a: JUMPI 0000035b: PUSH0 0000035c: DUP1 0000035d: MLOAD 0000035e: PUSH1 0x20 00000360: PUSH2 0x0ffa 00000363: DUP4 00000364: CODECOPY 00000365: DUP2 00000366: MLOAD 00000367: SWAP2 00000368: MSTORE 00000369: SLOAD 0000036a: PUSH1 0x40 0000036c: MLOAD 0000036d: PUSH1 0x01 0000036f: PUSH1 0x01 00000371: PUSH1 0xa0 00000373: SHL 00000374: SUB 00000375: SWAP1 00000376: SWAP2 00000377: AND 00000378: DUP2 00000379: MSTORE 0000037a: PUSH1 0x20 0000037c: SWAP1 0000037d: RETURN 0000037e: JUMPDEST 0000037f: CALLVALUE 00000380: PUSH2 0x019f 00000383: JUMPI 00000384: PUSH0 00000385: CALLDATASIZE 00000386: PUSH1 0x03 00000388: NOT 00000389: ADD 0000038a: SLT 0000038b: PUSH2 0x019f 0000038e: JUMPI 0000038f: PUSH2 0x0396 00000392: PUSH2 0x0ee5 00000395: JUMP 00000396: JUMPDEST 00000397: PUSH2 0x039e 0000039a: PUSH2 0x0dc4 0000039d: JUMP 0000039e: JUMPDEST 0000039f: PUSH1 0x01 000003a1: PUSH1 0xff 000003a3: NOT 000003a4: PUSH0 000003a5: DUP1 000003a6: MLOAD 000003a7: PUSH1 0x20 000003a9: PUSH2 0x103a 000003ac: DUP4 000003ad: CODECOPY 000003ae: DUP2 000003af: MLOAD 000003b0: SWAP2 000003b1: MSTORE 000003b2: SLOAD 000003b3: AND 000003b4: OR 000003b5: PUSH0 000003b6: DUP1 000003b7: MLOAD 000003b8: PUSH1 0x20 000003ba: PUSH2 0x103a 000003bd: DUP4 000003be: CODECOPY 000003bf: DUP2 000003c0: MLOAD 000003c1: SWAP2 000003c2: MSTORE 000003c3: SSTORE 000003c4: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 000003e5: PUSH1 0x20 000003e7: PUSH1 0x40 000003e9: MLOAD 000003ea: CALLER 000003eb: DUP2 000003ec: MSTORE 000003ed: LOG1 000003ee: STOP 000003ef: JUMPDEST 000003f0: CALLVALUE 000003f1: PUSH2 0x019f 000003f4: JUMPI 000003f5: PUSH0 000003f6: CALLDATASIZE 000003f7: PUSH1 0x03 000003f9: NOT 000003fa: ADD 000003fb: SLT 000003fc: PUSH2 0x019f 000003ff: JUMPI 00000400: PUSH1 0x33 00000402: SLOAD 00000403: PUSH1 0x40 00000405: MLOAD 00000406: PUSH1 0x01 00000408: PUSH1 0x01 0000040a: PUSH1 0xa0 0000040c: SHL 0000040d: SUB 0000040e: SWAP1 0000040f: SWAP2 00000410: AND 00000411: DUP2 00000412: MSTORE 00000413: PUSH1 0x20 00000415: SWAP1 00000416: RETURN 00000417: JUMPDEST 00000418: CALLVALUE 00000419: PUSH2 0x019f 0000041c: JUMPI 0000041d: PUSH0 0000041e: CALLDATASIZE 0000041f: PUSH1 0x03 00000421: NOT 00000422: ADD 00000423: SLT 00000424: PUSH2 0x019f 00000427: JUMPI 00000428: PUSH0 00000429: DUP1 0000042a: MLOAD 0000042b: PUSH1 0x20 0000042d: PUSH2 0x109a 00000430: DUP4 00000431: CODECOPY 00000432: DUP2 00000433: MLOAD 00000434: SWAP2 00000435: MSTORE 00000436: SLOAD 00000437: CALLER 00000438: PUSH1 0x01 0000043a: PUSH1 0x01 0000043c: PUSH1 0xa0 0000043e: SHL 0000043f: SUB 00000440: SWAP1 00000441: SWAP2 00000442: AND 00000443: SUB 00000444: PUSH2 0x0450 00000447: JUMPI 00000448: PUSH2 0x0023 0000044b: CALLER 0000044c: PUSH2 0x0f05 0000044f: JUMP 00000450: JUMPDEST 00000451: PUSH4 0x118cdaa7 00000456: PUSH1 0xe0 00000458: SHL 00000459: PUSH0 0000045a: MSTORE 0000045b: CALLER 0000045c: PUSH1 0x04 0000045e: MSTORE 0000045f: PUSH1 0x24 00000461: PUSH0 00000462: REVERT 00000463: JUMPDEST 00000464: CALLVALUE 00000465: PUSH2 0x019f 00000468: JUMPI 00000469: PUSH0 0000046a: CALLDATASIZE 0000046b: PUSH1 0x03 0000046d: NOT 0000046e: ADD 0000046f: SLT 00000470: PUSH2 0x019f 00000473: JUMPI 00000474: PUSH2 0x047b 00000477: PUSH2 0x0ee5 0000047a: JUMP 0000047b: JUMPDEST 0000047c: PUSH0 0000047d: DUP1 0000047e: MLOAD 0000047f: PUSH1 0x20 00000481: PUSH2 0x109a 00000484: DUP4 00000485: CODECOPY 00000486: DUP2 00000487: MLOAD 00000488: SWAP2 00000489: MSTORE 0000048a: DUP1 0000048b: SLOAD 0000048c: PUSH1 0x01 0000048e: PUSH1 0x01 00000490: PUSH1 0xa0 00000492: SHL 00000493: SUB 00000494: NOT 00000495: SWAP1 00000496: DUP2 00000497: AND 00000498: SWAP1 00000499: SWAP2 0000049a: SSTORE 0000049b: PUSH0 0000049c: DUP1 0000049d: MLOAD 0000049e: PUSH1 0x20 000004a0: PUSH2 0x0ffa 000004a3: DUP4 000004a4: CODECOPY 000004a5: DUP2 000004a6: MLOAD 000004a7: SWAP2 000004a8: MSTORE 000004a9: DUP1 000004aa: SLOAD 000004ab: SWAP2 000004ac: DUP3 000004ad: AND 000004ae: SWAP1 000004af: SSTORE 000004b0: PUSH0 000004b1: SWAP1 000004b2: PUSH1 0x01 000004b4: PUSH1 0x01 000004b6: PUSH1 0xa0 000004b8: SHL 000004b9: SUB 000004ba: AND 000004bb: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000004dc: DUP3 000004dd: DUP1 000004de: LOG3 000004df: STOP 000004e0: JUMPDEST 000004e1: CALLVALUE 000004e2: PUSH2 0x019f 000004e5: JUMPI 000004e6: PUSH1 0x20 000004e8: CALLDATASIZE 000004e9: PUSH1 0x03 000004eb: NOT 000004ec: ADD 000004ed: SLT 000004ee: PUSH2 0x019f 000004f1: JUMPI 000004f2: PUSH2 0x04f9 000004f5: PUSH2 0x0d02 000004f8: JUMP 000004f9: JUMPDEST 000004fa: PUSH2 0x0501 000004fd: PUSH2 0x0ee5 00000500: JUMP 00000501: JUMPDEST 00000502: PUSH1 0x01 00000504: PUSH1 0x01 00000506: PUSH1 0xa0 00000508: SHL 00000509: SUB 0000050a: AND 0000050b: DUP1 0000050c: ISZERO 0000050d: PUSH2 0x0548 00000510: JUMPI 00000511: PUSH1 0x33 00000513: DUP1 00000514: SLOAD 00000515: PUSH1 0x01 00000517: PUSH1 0x01 00000519: PUSH1 0xa0 0000051b: SHL 0000051c: SUB 0000051d: NOT 0000051e: AND 0000051f: DUP3 00000520: OR 00000521: SWAP1 00000522: SSTORE 00000523: PUSH32 0xb7041340e0c2a075059bf0488a71c767724be15dae8e737f8460007325e8d857 00000544: PUSH0 00000545: DUP1 00000546: LOG2 00000547: STOP 00000548: JUMPDEST 00000549: PUSH4 0x956358c1 0000054e: PUSH1 0xe0 00000550: SHL 00000551: PUSH0 00000552: MSTORE 00000553: PUSH1 0x04 00000555: PUSH0 00000556: REVERT 00000557: JUMPDEST 00000558: CALLVALUE 00000559: PUSH2 0x019f 0000055c: JUMPI 0000055d: PUSH0 0000055e: CALLDATASIZE 0000055f: PUSH1 0x03 00000561: NOT 00000562: ADD 00000563: SLT 00000564: PUSH2 0x019f 00000567: JUMPI 00000568: PUSH1 0x20 0000056a: PUSH1 0xff 0000056c: PUSH0 0000056d: DUP1 0000056e: MLOAD 0000056f: PUSH1 0x20 00000571: PUSH2 0x103a 00000574: DUP4 00000575: CODECOPY 00000576: DUP2 00000577: MLOAD 00000578: SWAP2 00000579: MSTORE 0000057a: SLOAD 0000057b: AND 0000057c: PUSH1 0x40 0000057e: MLOAD 0000057f: SWAP1 00000580: ISZERO 00000581: ISZERO 00000582: DUP2 00000583: MSTORE 00000584: RETURN 00000585: JUMPDEST 00000586: CALLVALUE 00000587: PUSH2 0x019f 0000058a: JUMPI 0000058b: PUSH1 0x20 0000058d: CALLDATASIZE 0000058e: PUSH1 0x03 00000590: NOT 00000591: ADD 00000592: SLT 00000593: PUSH2 0x019f 00000596: JUMPI 00000597: PUSH1 0x04 00000599: CALLDATALOAD 0000059a: PUSH2 0x05a1 0000059d: PUSH2 0x0ee5 000005a0: JUMP 000005a1: JUMPDEST 000005a2: DUP1 000005a3: ISZERO 000005a4: PUSH2 0x05d8 000005a7: JUMPI 000005a8: PUSH1 0x20 000005aa: DUP2 000005ab: PUSH32 0xfd0467d48910fb6e6de1f4e0b9eedc9e04a7c227bad40d827a84a2b650ec0b7f 000005cc: SWAP3 000005cd: PUSH1 0x34 000005cf: SSTORE 000005d0: PUSH1 0x40 000005d2: MLOAD 000005d3: SWAP1 000005d4: DUP2 000005d5: MSTORE 000005d6: LOG1 000005d7: STOP 000005d8: JUMPDEST 000005d9: PUSH4 0x7856cc13 000005de: PUSH1 0xe0 000005e0: SHL 000005e1: PUSH0 000005e2: MSTORE 000005e3: PUSH1 0x04 000005e5: MSTORE 000005e6: PUSH1 0x24 000005e8: PUSH0 000005e9: REVERT 000005ea: JUMPDEST 000005eb: CALLVALUE 000005ec: PUSH2 0x019f 000005ef: JUMPI 000005f0: PUSH0 000005f1: CALLDATASIZE 000005f2: PUSH1 0x03 000005f4: NOT 000005f5: ADD 000005f6: SLT 000005f7: PUSH2 0x019f 000005fa: JUMPI 000005fb: PUSH32 0x0000000000000000000000001f1181a53e1ec365bc8723df8109cf1fb96e49db 0000061c: PUSH1 0x01 0000061e: PUSH1 0x01 00000620: PUSH1 0xa0 00000622: SHL 00000623: SUB 00000624: AND 00000625: ADDRESS 00000626: SUB 00000627: PUSH2 0x0641 0000062a: JUMPI 0000062b: PUSH1 0x20 0000062d: PUSH1 0x40 0000062f: MLOAD 00000630: PUSH0 00000631: DUP1 00000632: MLOAD 00000633: PUSH1 0x20 00000635: PUSH2 0x101a 00000638: DUP4 00000639: CODECOPY 0000063a: DUP2 0000063b: MLOAD 0000063c: SWAP2 0000063d: MSTORE 0000063e: DUP2 0000063f: MSTORE 00000640: RETURN 00000641: JUMPDEST 00000642: PUSH4 0x703e46dd 00000647: PUSH1 0xe1 00000649: SHL 0000064a: PUSH0 0000064b: MSTORE 0000064c: PUSH1 0x04 0000064e: PUSH0 0000064f: REVERT 00000650: JUMPDEST 00000651: CALLVALUE 00000652: PUSH2 0x019f 00000655: JUMPI 00000656: PUSH1 0x20 00000658: CALLDATASIZE 00000659: PUSH1 0x03 0000065b: NOT 0000065c: ADD 0000065d: SLT 0000065e: PUSH2 0x019f 00000661: JUMPI 00000662: PUSH2 0x0669 00000665: PUSH2 0x0d02 00000668: JUMP 00000669: JUMPDEST 0000066a: PUSH2 0x0671 0000066d: PUSH2 0x0dc4 00000670: JUMP 00000671: JUMPDEST 00000672: PUSH2 0x0679 00000675: PUSH2 0x0deb 00000678: JUMP 00000679: JUMPDEST 0000067a: PUSH1 0x01 0000067c: PUSH1 0x01 0000067e: PUSH1 0xa0 00000680: SHL 00000681: SUB 00000682: DUP2 00000683: AND 00000684: PUSH0 00000685: DUP2 00000686: DUP2 00000687: MSTORE 00000688: PUSH1 0x20 0000068a: DUP2 0000068b: SWAP1 0000068c: MSTORE 0000068d: PUSH1 0x40 0000068f: SWAP1 00000690: KECCAK256 00000691: SLOAD 00000692: SWAP1 00000693: SWAP2 00000694: DUP2 00000695: ISZERO 00000696: PUSH2 0x070d 00000699: JUMPI 0000069a: PUSH0 0000069b: DUP1 0000069c: DUP1 0000069d: DUP5 0000069e: DUP2 0000069f: SWAP5 000006a0: DUP8 000006a1: DUP4 000006a2: MSTORE 000006a3: DUP3 000006a4: PUSH1 0x20 000006a6: MSTORE 000006a7: DUP3 000006a8: PUSH1 0x40 000006aa: DUP2 000006ab: KECCAK256 000006ac: SSTORE 000006ad: GAS 000006ae: CALL 000006af: PUSH2 0x06b6 000006b2: PUSH2 0x0d95 000006b5: JUMP 000006b6: JUMPDEST 000006b7: POP 000006b8: ISZERO 000006b9: PUSH2 0x06fa 000006bc: JUMPI 000006bd: PUSH1 0x20 000006bf: PUSH32 0x2e1ece5fb4a04cb9407bb825ceb4c6d6d402c18ba1cbe2054241fb1a86fd58da 000006e0: SWAP2 000006e1: PUSH1 0x40 000006e3: MLOAD 000006e4: SWAP1 000006e5: DUP2 000006e6: MSTORE 000006e7: LOG2 000006e8: PUSH1 0x01 000006ea: PUSH0 000006eb: DUP1 000006ec: MLOAD 000006ed: PUSH1 0x20 000006ef: PUSH2 0x105a 000006f2: DUP4 000006f3: CODECOPY 000006f4: DUP2 000006f5: MLOAD 000006f6: SWAP2 000006f7: MSTORE 000006f8: SSTORE 000006f9: STOP 000006fa: JUMPDEST 000006fb: POP 000006fc: PUSH4 0x39f1c8d9 00000701: PUSH1 0xe0 00000703: SHL 00000704: PUSH0 00000705: MSTORE 00000706: PUSH1 0x04 00000708: MSTORE 00000709: PUSH1 0x24 0000070b: PUSH0 0000070c: REVERT 0000070d: JUMPDEST 0000070e: DUP3 0000070f: PUSH4 0x25215d4f 00000714: PUSH1 0xe1 00000716: SHL 00000717: PUSH0 00000718: MSTORE 00000719: PUSH1 0x04 0000071b: MSTORE 0000071c: PUSH1 0x24 0000071e: PUSH0 0000071f: REVERT 00000720: JUMPDEST 00000721: PUSH1 0x40 00000723: CALLDATASIZE 00000724: PUSH1 0x03 00000726: NOT 00000727: ADD 00000728: SLT 00000729: PUSH2 0x019f 0000072c: JUMPI 0000072d: PUSH2 0x0734 00000730: PUSH2 0x0d02 00000733: JUMP 00000734: JUMPDEST 00000735: PUSH1 0x24 00000737: CALLDATALOAD 00000738: SWAP1 00000739: PUSH8 0xffffffffffffffff 00000742: DUP3 00000743: GT 00000744: PUSH2 0x019f 00000747: JUMPI 00000748: CALLDATASIZE 00000749: PUSH1 0x23 0000074b: DUP4 0000074c: ADD 0000074d: SLT 0000074e: ISZERO 0000074f: PUSH2 0x019f 00000752: JUMPI 00000753: DUP2 00000754: PUSH1 0x04 00000756: ADD 00000757: CALLDATALOAD 00000758: SWAP1 00000759: PUSH2 0x0761 0000075c: DUP3 0000075d: PUSH2 0x0d4e 00000760: JUMP 00000761: JUMPDEST 00000762: SWAP2 00000763: PUSH2 0x076f 00000766: PUSH1 0x40 00000768: MLOAD 00000769: SWAP4 0000076a: DUP5 0000076b: PUSH2 0x0d18 0000076e: JUMP 0000076f: JUMPDEST 00000770: DUP1 00000771: DUP4 00000772: MSTORE 00000773: PUSH1 0x20 00000775: DUP4 00000776: ADD 00000777: SWAP4 00000778: CALLDATASIZE 00000779: PUSH1 0x24 0000077b: DUP4 0000077c: DUP4 0000077d: ADD 0000077e: ADD 0000077f: GT 00000780: PUSH2 0x019f 00000783: JUMPI 00000784: DUP2 00000785: PUSH0 00000786: SWAP3 00000787: PUSH1 0x24 00000789: PUSH1 0x20 0000078b: SWAP4 0000078c: ADD 0000078d: DUP8 0000078e: CALLDATACOPY 0000078f: DUP5 00000790: ADD 00000791: ADD 00000792: MSTORE 00000793: PUSH1 0x01 00000795: PUSH1 0x01 00000797: PUSH1 0xa0 00000799: SHL 0000079a: SUB 0000079b: PUSH32 0x0000000000000000000000001f1181a53e1ec365bc8723df8109cf1fb96e49db 000007bc: AND 000007bd: ADDRESS 000007be: DUP2 000007bf: EQ 000007c0: SWAP1 000007c1: DUP2 000007c2: ISZERO 000007c3: PUSH2 0x0908 000007c6: JUMPI 000007c7: JUMPDEST 000007c8: POP 000007c9: PUSH2 0x0641 000007cc: JUMPI 000007cd: PUSH2 0x07d4 000007d0: PUSH2 0x0ee5 000007d3: JUMP 000007d4: JUMPDEST 000007d5: PUSH1 0x40 000007d7: MLOAD 000007d8: PUSH4 0x52d1902d 000007dd: PUSH1 0xe0 000007df: SHL 000007e0: DUP2 000007e1: MSTORE 000007e2: PUSH1 0x01 000007e4: PUSH1 0x01 000007e6: PUSH1 0xa0 000007e8: SHL 000007e9: SUB 000007ea: DUP3 000007eb: AND 000007ec: SWAP4 000007ed: SWAP1 000007ee: PUSH1 0x20 000007f0: DUP2 000007f1: PUSH1 0x04 000007f3: DUP2 000007f4: DUP9 000007f5: GAS 000007f6: STATICCALL 000007f7: PUSH0 000007f8: SWAP2 000007f9: DUP2 000007fa: PUSH2 0x08d4 000007fd: JUMPI 000007fe: JUMPDEST 000007ff: POP 00000800: PUSH2 0x0816 00000803: JUMPI 00000804: DUP5 00000805: PUSH4 0x4c9c8ce3 0000080a: PUSH1 0xe0 0000080c: SHL 0000080d: PUSH0 0000080e: MSTORE 0000080f: PUSH1 0x04 00000811: MSTORE 00000812: PUSH1 0x24 00000814: PUSH0 00000815: REVERT 00000816: JUMPDEST 00000817: DUP1 00000818: PUSH0 00000819: DUP1 0000081a: MLOAD 0000081b: PUSH1 0x20 0000081d: PUSH2 0x101a 00000820: DUP4 00000821: CODECOPY 00000822: DUP2 00000823: MLOAD 00000824: SWAP2 00000825: MSTORE 00000826: DUP7 00000827: SWAP3 00000828: SUB 00000829: PUSH2 0x08c2 0000082c: JUMPI 0000082d: POP 0000082e: DUP3 0000082f: EXTCODESIZE 00000830: ISZERO 00000831: PUSH2 0x08b0 00000834: JUMPI 00000835: PUSH0 00000836: DUP1 00000837: MLOAD 00000838: PUSH1 0x20 0000083a: PUSH2 0x101a 0000083d: DUP4 0000083e: CODECOPY 0000083f: DUP2 00000840: MLOAD 00000841: SWAP2 00000842: MSTORE 00000843: DUP1 00000844: SLOAD 00000845: PUSH1 0x01 00000847: PUSH1 0x01 00000849: PUSH1 0xa0 0000084b: SHL 0000084c: SUB 0000084d: NOT 0000084e: AND 0000084f: DUP3 00000850: OR 00000851: SWAP1 00000852: SSTORE 00000853: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 00000874: PUSH0 00000875: DUP1 00000876: LOG2 00000877: DUP3 00000878: MLOAD 00000879: ISZERO 0000087a: PUSH2 0x0897 0000087d: JUMPI 0000087e: PUSH0 0000087f: DUP1 00000880: SWAP2 00000881: PUSH2 0x0023 00000884: SWAP5 00000885: MLOAD 00000886: SWAP1 00000887: DUP5 00000888: GAS 00000889: DELEGATECALL 0000088a: PUSH2 0x0891 0000088d: PUSH2 0x0d95 00000890: JUMP 00000891: JUMPDEST 00000892: SWAP2 00000893: PUSH2 0x0f9b 00000896: JUMP 00000897: JUMPDEST 00000898: POP 00000899: POP 0000089a: POP 0000089b: CALLVALUE 0000089c: PUSH2 0x08a1 0000089f: JUMPI 000008a0: STOP 000008a1: JUMPDEST 000008a2: PUSH4 0xb398979f 000008a7: PUSH1 0xe0 000008a9: SHL 000008aa: PUSH0 000008ab: MSTORE 000008ac: PUSH1 0x04 000008ae: PUSH0 000008af: REVERT 000008b0: JUMPDEST 000008b1: PUSH4 0x4c9c8ce3 000008b6: PUSH1 0xe0 000008b8: SHL 000008b9: PUSH0 000008ba: MSTORE 000008bb: PUSH1 0x04 000008bd: MSTORE 000008be: PUSH1 0x24 000008c0: PUSH0 000008c1: REVERT 000008c2: JUMPDEST 000008c3: PUSH4 0x2a875269 000008c8: PUSH1 0xe2 000008ca: SHL 000008cb: PUSH0 000008cc: MSTORE 000008cd: PUSH1 0x04 000008cf: MSTORE 000008d0: PUSH1 0x24 000008d2: PUSH0 000008d3: REVERT 000008d4: JUMPDEST 000008d5: SWAP1 000008d6: SWAP2 000008d7: POP 000008d8: PUSH1 0x20 000008da: DUP2 000008db: RETURNDATASIZE 000008dc: PUSH1 0x20 000008de: GT 000008df: PUSH2 0x0900 000008e2: JUMPI 000008e3: JUMPDEST 000008e4: DUP2 000008e5: PUSH2 0x08f0 000008e8: PUSH1 0x20 000008ea: SWAP4 000008eb: DUP4 000008ec: PUSH2 0x0d18 000008ef: JUMP 000008f0: JUMPDEST 000008f1: DUP2 000008f2: ADD 000008f3: SUB 000008f4: SLT 000008f5: PUSH2 0x019f 000008f8: JUMPI 000008f9: MLOAD 000008fa: SWAP1 000008fb: DUP7 000008fc: PUSH2 0x07fe 000008ff: JUMP 00000900: JUMPDEST 00000901: RETURNDATASIZE 00000902: SWAP2 00000903: POP 00000904: PUSH2 0x08e3 00000907: JUMP 00000908: JUMPDEST 00000909: PUSH0 0000090a: DUP1 0000090b: MLOAD 0000090c: PUSH1 0x20 0000090e: PUSH2 0x101a 00000911: DUP4 00000912: CODECOPY 00000913: DUP2 00000914: MLOAD 00000915: SWAP2 00000916: MSTORE 00000917: SLOAD 00000918: PUSH1 0x01 0000091a: PUSH1 0x01 0000091c: PUSH1 0xa0 0000091e: SHL 0000091f: SUB 00000920: AND 00000921: EQ 00000922: ISZERO 00000923: SWAP1 00000924: POP 00000925: DUP5 00000926: PUSH2 0x07c7 00000929: JUMP 0000092a: JUMPDEST 0000092b: CALLVALUE 0000092c: PUSH2 0x019f 0000092f: JUMPI 00000930: PUSH0 00000931: CALLDATASIZE 00000932: PUSH1 0x03 00000934: NOT 00000935: ADD 00000936: SLT 00000937: PUSH2 0x019f 0000093a: JUMPI 0000093b: PUSH2 0x0942 0000093e: PUSH2 0x0ee5 00000941: JUMP 00000942: JUMPDEST 00000943: PUSH0 00000944: DUP1 00000945: MLOAD 00000946: PUSH1 0x20 00000948: PUSH2 0x103a 0000094b: DUP4 0000094c: CODECOPY 0000094d: DUP2 0000094e: MLOAD 0000094f: SWAP2 00000950: MSTORE 00000951: SLOAD 00000952: PUSH1 0xff 00000954: DUP2 00000955: AND 00000956: ISZERO 00000957: PUSH2 0x0999 0000095a: JUMPI 0000095b: PUSH1 0xff 0000095d: NOT 0000095e: AND 0000095f: PUSH0 00000960: DUP1 00000961: MLOAD 00000962: PUSH1 0x20 00000964: PUSH2 0x103a 00000967: DUP4 00000968: CODECOPY 00000969: DUP2 0000096a: MLOAD 0000096b: SWAP2 0000096c: MSTORE 0000096d: SSTORE 0000096e: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 0000098f: PUSH1 0x20 00000991: PUSH1 0x40 00000993: MLOAD 00000994: CALLER 00000995: DUP2 00000996: MSTORE 00000997: LOG1 00000998: STOP 00000999: JUMPDEST 0000099a: PUSH4 0x8dfc202b 0000099f: PUSH1 0xe0 000009a1: SHL 000009a2: PUSH0 000009a3: MSTORE 000009a4: PUSH1 0x04 000009a6: PUSH0 000009a7: REVERT 000009a8: JUMPDEST 000009a9: CALLVALUE 000009aa: PUSH2 0x019f 000009ad: JUMPI 000009ae: PUSH1 0x20 000009b0: CALLDATASIZE 000009b1: PUSH1 0x03 000009b3: NOT 000009b4: ADD 000009b5: SLT 000009b6: PUSH2 0x019f 000009b9: JUMPI 000009ba: PUSH1 0x01 000009bc: PUSH1 0x01 000009be: PUSH1 0xa0 000009c0: SHL 000009c1: SUB 000009c2: PUSH2 0x09c9 000009c5: PUSH2 0x0d02 000009c8: JUMP 000009c9: JUMPDEST 000009ca: AND 000009cb: PUSH0 000009cc: MSTORE 000009cd: PUSH0 000009ce: PUSH1 0x20 000009d0: MSTORE 000009d1: PUSH1 0x20 000009d3: PUSH1 0x40 000009d5: PUSH0 000009d6: KECCAK256 000009d7: SLOAD 000009d8: PUSH1 0x40 000009da: MLOAD 000009db: SWAP1 000009dc: DUP2 000009dd: MSTORE 000009de: RETURN 000009df: JUMPDEST 000009e0: CALLVALUE 000009e1: PUSH2 0x019f 000009e4: JUMPI 000009e5: PUSH1 0x60 000009e7: CALLDATASIZE 000009e8: PUSH1 0x03 000009ea: NOT 000009eb: ADD 000009ec: SLT 000009ed: PUSH2 0x019f 000009f0: JUMPI 000009f1: PUSH2 0x09f8 000009f4: PUSH2 0x0d02 000009f7: JUMP 000009f8: JUMPDEST 000009f9: PUSH1 0x24 000009fb: CALLDATALOAD 000009fc: PUSH1 0x01 000009fe: PUSH1 0x01 00000a00: PUSH1 0xa0 00000a02: SHL 00000a03: SUB 00000a04: DUP2 00000a05: AND 00000a06: SWAP2 00000a07: SWAP1 00000a08: DUP3 00000a09: SWAP1 00000a0a: SUB 00000a0b: PUSH2 0x019f 00000a0e: JUMPI 00000a0f: PUSH0 00000a10: DUP1 00000a11: MLOAD 00000a12: PUSH1 0x20 00000a14: PUSH2 0x107a 00000a17: DUP4 00000a18: CODECOPY 00000a19: DUP2 00000a1a: MLOAD 00000a1b: SWAP2 00000a1c: MSTORE 00000a1d: SLOAD 00000a1e: SWAP2 00000a1f: PUSH1 0xff 00000a21: DUP4 00000a22: PUSH1 0x40 00000a24: SHR 00000a25: AND 00000a26: ISZERO 00000a27: SWAP3 00000a28: PUSH8 0xffffffffffffffff 00000a31: DUP2 00000a32: AND 00000a33: DUP1 00000a34: ISZERO 00000a35: SWAP1 00000a36: DUP2 00000a37: PUSH2 0x0bd7 00000a3a: JUMPI 00000a3b: JUMPDEST 00000a3c: PUSH1 0x01 00000a3e: EQ 00000a3f: SWAP1 00000a40: DUP2 00000a41: PUSH2 0x0bcd 00000a44: JUMPI 00000a45: JUMPDEST 00000a46: ISZERO 00000a47: SWAP1 00000a48: DUP2 00000a49: PUSH2 0x0bc4 00000a4c: JUMPI 00000a4d: JUMPDEST 00000a4e: POP 00000a4f: PUSH2 0x0bb5 00000a52: JUMPI 00000a53: PUSH8 0xffffffffffffffff 00000a5c: NOT 00000a5d: DUP2 00000a5e: AND 00000a5f: PUSH1 0x01 00000a61: OR 00000a62: PUSH0 00000a63: DUP1 00000a64: MLOAD 00000a65: PUSH1 0x20 00000a67: PUSH2 0x107a 00000a6a: DUP4 00000a6b: CODECOPY 00000a6c: DUP2 00000a6d: MLOAD 00000a6e: SWAP2 00000a6f: MSTORE 00000a70: SSTORE 00000a71: DUP4 00000a72: PUSH2 0x0b89 00000a75: JUMPI 00000a76: JUMPDEST 00000a77: POP 00000a78: PUSH12 0xffffffffffffffffffffffff 00000a85: PUSH1 0xa0 00000a87: SHL 00000a88: PUSH1 0x33 00000a8a: SLOAD 00000a8b: AND 00000a8c: OR 00000a8d: PUSH1 0x33 00000a8f: SSTORE 00000a90: PUSH1 0x44 00000a92: CALLDATALOAD 00000a93: PUSH1 0x34 00000a95: SSTORE 00000a96: PUSH0 00000a97: PUSH1 0x31 00000a99: SSTORE 00000a9a: PUSH1 0x01 00000a9c: PUSH1 0x32 00000a9e: SSTORE 00000a9f: PUSH2 0x0aa6 00000aa2: PUSH2 0x0f70 00000aa5: JUMP 00000aa6: JUMPDEST 00000aa7: PUSH2 0x0aae 00000aaa: PUSH2 0x0f70 00000aad: JUMP 00000aae: JUMPDEST 00000aaf: PUSH1 0x01 00000ab1: PUSH1 0x01 00000ab3: PUSH1 0xa0 00000ab5: SHL 00000ab6: SUB 00000ab7: DUP2 00000ab8: AND 00000ab9: ISZERO 00000aba: PUSH2 0x0b76 00000abd: JUMPI 00000abe: PUSH2 0x0ac6 00000ac1: SWAP1 00000ac2: PUSH2 0x0f05 00000ac5: JUMP 00000ac6: JUMPDEST 00000ac7: PUSH2 0x0ace 00000aca: PUSH2 0x0f70 00000acd: JUMP 00000ace: JUMPDEST 00000acf: PUSH2 0x0ad6 00000ad2: PUSH2 0x0f70 00000ad5: JUMP 00000ad6: JUMPDEST 00000ad7: PUSH1 0xff 00000ad9: NOT 00000ada: PUSH0 00000adb: DUP1 00000adc: MLOAD 00000add: PUSH1 0x20 00000adf: PUSH2 0x103a 00000ae2: DUP4 00000ae3: CODECOPY 00000ae4: DUP2 00000ae5: MLOAD 00000ae6: SWAP2 00000ae7: MSTORE 00000ae8: SLOAD 00000ae9: AND 00000aea: PUSH0 00000aeb: DUP1 00000aec: MLOAD 00000aed: PUSH1 0x20 00000aef: PUSH2 0x103a 00000af2: DUP4 00000af3: CODECOPY 00000af4: DUP2 00000af5: MLOAD 00000af6: SWAP2 00000af7: MSTORE 00000af8: SSTORE 00000af9: PUSH2 0x0b00 00000afc: PUSH2 0x0f70 00000aff: JUMP 00000b00: JUMPDEST 00000b01: PUSH2 0x0b08 00000b04: PUSH2 0x0f70 00000b07: JUMP 00000b08: JUMPDEST 00000b09: PUSH1 0x01 00000b0b: PUSH0 00000b0c: DUP1 00000b0d: MLOAD 00000b0e: PUSH1 0x20 00000b10: PUSH2 0x105a 00000b13: DUP4 00000b14: CODECOPY 00000b15: DUP2 00000b16: MLOAD 00000b17: SWAP2 00000b18: MSTORE 00000b19: SSTORE 00000b1a: PUSH2 0x0b1f 00000b1d: JUMPI 00000b1e: STOP 00000b1f: JUMPDEST 00000b20: PUSH9 0xff0000000000000000 00000b2a: NOT 00000b2b: PUSH0 00000b2c: DUP1 00000b2d: MLOAD 00000b2e: PUSH1 0x20 00000b30: PUSH2 0x107a 00000b33: DUP4 00000b34: CODECOPY 00000b35: DUP2 00000b36: MLOAD 00000b37: SWAP2 00000b38: MSTORE 00000b39: SLOAD 00000b3a: AND 00000b3b: PUSH0 00000b3c: DUP1 00000b3d: MLOAD 00000b3e: PUSH1 0x20 00000b40: PUSH2 0x107a 00000b43: DUP4 00000b44: CODECOPY 00000b45: DUP2 00000b46: MLOAD 00000b47: SWAP2 00000b48: MSTORE 00000b49: SSTORE 00000b4a: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 00000b6b: PUSH1 0x20 00000b6d: PUSH1 0x40 00000b6f: MLOAD 00000b70: PUSH1 0x01 00000b72: DUP2 00000b73: MSTORE 00000b74: LOG1 00000b75: STOP 00000b76: JUMPDEST 00000b77: PUSH4 0x1e4fbdf7 00000b7c: PUSH1 0xe0 00000b7e: SHL 00000b7f: PUSH0 00000b80: MSTORE 00000b81: PUSH0 00000b82: PUSH1 0x04 00000b84: MSTORE 00000b85: PUSH1 0x24 00000b87: PUSH0 00000b88: REVERT 00000b89: JUMPDEST 00000b8a: PUSH9 0xffffffffffffffffff 00000b94: NOT 00000b95: AND 00000b96: PUSH9 0x010000000000000001 00000ba0: OR 00000ba1: PUSH0 00000ba2: DUP1 00000ba3: MLOAD 00000ba4: PUSH1 0x20 00000ba6: PUSH2 0x107a 00000ba9: DUP4 00000baa: CODECOPY 00000bab: DUP2 00000bac: MLOAD 00000bad: SWAP2 00000bae: MSTORE 00000baf: SSTORE 00000bb0: DUP4 00000bb1: PUSH2 0x0a76 00000bb4: JUMP 00000bb5: JUMPDEST 00000bb6: PUSH4 0xf92ee8a9 00000bbb: PUSH1 0xe0 00000bbd: SHL 00000bbe: PUSH0 00000bbf: MSTORE 00000bc0: PUSH1 0x04 00000bc2: PUSH0 00000bc3: REVERT 00000bc4: JUMPDEST 00000bc5: SWAP1 00000bc6: POP 00000bc7: ISZERO 00000bc8: DUP6 00000bc9: PUSH2 0x0a4d 00000bcc: JUMP 00000bcd: JUMPDEST 00000bce: ADDRESS 00000bcf: EXTCODESIZE 00000bd0: ISZERO 00000bd1: SWAP2 00000bd2: POP 00000bd3: PUSH2 0x0a45 00000bd6: JUMP 00000bd7: JUMPDEST 00000bd8: DUP6 00000bd9: SWAP2 00000bda: POP 00000bdb: PUSH2 0x0a3b 00000bde: JUMP 00000bdf: JUMPDEST 00000be0: CALLVALUE 00000be1: PUSH2 0x019f 00000be4: JUMPI 00000be5: PUSH1 0x80 00000be7: CALLDATASIZE 00000be8: PUSH1 0x03 00000bea: NOT 00000beb: ADD 00000bec: SLT 00000bed: PUSH2 0x019f 00000bf0: JUMPI 00000bf1: PUSH2 0x0bf8 00000bf4: PUSH2 0x0d02 00000bf7: JUMP 00000bf8: JUMPDEST 00000bf9: PUSH1 0x33 00000bfb: SLOAD 00000bfc: PUSH1 0x44 00000bfe: CALLDATALOAD 00000bff: SWAP2 00000c00: PUSH1 0x24 00000c02: CALLDATALOAD 00000c03: SWAP2 00000c04: PUSH1 0x64 00000c06: CALLDATALOAD 00000c07: SWAP1 00000c08: PUSH1 0x01 00000c0a: PUSH1 0x01 00000c0c: PUSH1 0xa0 00000c0e: SHL 00000c0f: SUB 00000c10: AND 00000c11: CALLER 00000c12: DUP2 00000c13: SWAP1 00000c14: SUB 00000c15: PUSH2 0x0cec 00000c18: JUMPI 00000c19: POP 00000c1a: PUSH2 0x0c21 00000c1d: PUSH2 0x0dc4 00000c20: JUMP 00000c21: JUMPDEST 00000c22: PUSH2 0x0c29 00000c25: PUSH2 0x0deb 00000c28: JUMP 00000c29: JUMPDEST 00000c2a: PUSH2 0x0c37 00000c2d: DUP2 00000c2e: DUP5 00000c2f: DUP2 00000c30: DUP2 00000c31: LT 00000c32: ISZERO 00000c33: PUSH2 0x0d6a 00000c36: JUMP 00000c37: JUMPDEST 00000c38: PUSH1 0x32 00000c3a: SLOAD 00000c3b: DUP1 00000c3c: DUP6 00000c3d: SUB 00000c3e: PUSH2 0x0cd6 00000c41: JUMPI 00000c42: POP 00000c43: DUP1 00000c44: DUP4 00000c45: SUB 00000c46: SWAP2 00000c47: DUP4 00000c48: DUP4 00000c49: GT 00000c4a: PUSH2 0x0cc2 00000c4d: JUMPI 00000c4e: PUSH2 0x0c90 00000c51: PUSH1 0x20 00000c53: SWAP3 00000c54: PUSH2 0x0c7e 00000c57: DUP4 00000c58: PUSH32 0x8c1419715bf9fd4efa8c0fd1833ba527cbdd86f6018aa79102af32103bbfdefd 00000c79: SWAP7 00000c7a: PUSH2 0x0e23 00000c7d: JUMP 00000c7e: JUMPDEST 00000c7f: PUSH1 0x33 00000c81: SLOAD 00000c82: PUSH1 0x01 00000c84: PUSH1 0x01 00000c86: PUSH1 0xa0 00000c88: SHL 00000c89: SUB 00000c8a: AND 00000c8b: SWAP1 00000c8c: PUSH2 0x0e23 00000c8f: JUMP 00000c90: JUMPDEST 00000c91: PUSH2 0x0c9b 00000c94: PUSH1 0x32 00000c96: SLOAD 00000c97: PUSH2 0x0d87 00000c9a: JUMP 00000c9b: JUMPDEST 00000c9c: PUSH1 0x32 00000c9e: SSTORE 00000c9f: PUSH1 0x40 00000ca1: MLOAD 00000ca2: SWAP4 00000ca3: DUP5 00000ca4: MSTORE 00000ca5: PUSH1 0x01 00000ca7: PUSH1 0x01 00000ca9: PUSH1 0xa0 00000cab: SHL 00000cac: SUB 00000cad: AND 00000cae: SWAP3 00000caf: LOG3 00000cb0: PUSH1 0x01 00000cb2: PUSH0 00000cb3: DUP1 00000cb4: MLOAD 00000cb5: PUSH1 0x20 00000cb7: PUSH2 0x105a 00000cba: DUP4 00000cbb: CODECOPY 00000cbc: DUP2 00000cbd: MLOAD 00000cbe: SWAP2 00000cbf: MSTORE 00000cc0: SSTORE 00000cc1: STOP 00000cc2: JUMPDEST 00000cc3: PUSH4 0x4e487b71 00000cc8: PUSH1 0xe0 00000cca: SHL 00000ccb: PUSH0 00000ccc: MSTORE 00000ccd: PUSH1 0x11 00000ccf: PUSH1 0x04 00000cd1: MSTORE 00000cd2: PUSH1 0x24 00000cd4: PUSH0 00000cd5: REVERT 00000cd6: JUMPDEST 00000cd7: DUP5 00000cd8: PUSH4 0x341a8705 00000cdd: PUSH1 0xe1 00000cdf: SHL 00000ce0: PUSH0 00000ce1: MSTORE 00000ce2: PUSH1 0x04 00000ce4: MSTORE 00000ce5: PUSH1 0x24 00000ce7: MSTORE 00000ce8: PUSH1 0x44 00000cea: PUSH0 00000ceb: REVERT 00000cec: JUMPDEST 00000ced: PUSH4 0x0658916b 00000cf2: PUSH1 0xe1 00000cf4: SHL 00000cf5: PUSH0 00000cf6: MSTORE 00000cf7: CALLER 00000cf8: PUSH1 0x04 00000cfa: MSTORE 00000cfb: PUSH1 0x24 00000cfd: MSTORE 00000cfe: PUSH1 0x44 00000d00: PUSH0 00000d01: REVERT 00000d02: JUMPDEST 00000d03: PUSH1 0x04 00000d05: CALLDATALOAD 00000d06: SWAP1 00000d07: PUSH1 0x01 00000d09: PUSH1 0x01 00000d0b: PUSH1 0xa0 00000d0d: SHL 00000d0e: SUB 00000d0f: DUP3 00000d10: AND 00000d11: DUP3 00000d12: SUB 00000d13: PUSH2 0x019f 00000d16: JUMPI 00000d17: JUMP 00000d18: JUMPDEST 00000d19: SWAP1 00000d1a: PUSH1 0x1f 00000d1c: DUP1 00000d1d: NOT 00000d1e: SWAP2 00000d1f: ADD 00000d20: AND 00000d21: DUP2 00000d22: ADD 00000d23: SWAP1 00000d24: DUP2 00000d25: LT 00000d26: PUSH8 0xffffffffffffffff 00000d2f: DUP3 00000d30: GT 00000d31: OR 00000d32: PUSH2 0x0d3a 00000d35: JUMPI 00000d36: PUSH1 0x40 00000d38: MSTORE 00000d39: JUMP 00000d3a: JUMPDEST 00000d3b: PUSH4 0x4e487b71 00000d40: PUSH1 0xe0 00000d42: SHL 00000d43: PUSH0 00000d44: MSTORE 00000d45: PUSH1 0x41 00000d47: PUSH1 0x04 00000d49: MSTORE 00000d4a: PUSH1 0x24 00000d4c: PUSH0 00000d4d: REVERT 00000d4e: JUMPDEST 00000d4f: PUSH8 0xffffffffffffffff 00000d58: DUP2 00000d59: GT 00000d5a: PUSH2 0x0d3a 00000d5d: JUMPI 00000d5e: PUSH1 0x1f 00000d60: ADD 00000d61: PUSH1 0x1f 00000d63: NOT 00000d64: AND 00000d65: PUSH1 0x20 00000d67: ADD 00000d68: SWAP1 00000d69: JUMP 00000d6a: JUMPDEST 00000d6b: ISZERO 00000d6c: PUSH2 0x0d73 00000d6f: JUMPI 00000d70: POP 00000d71: POP 00000d72: JUMP 00000d73: JUMPDEST 00000d74: PUSH3 0x5a5b27 00000d78: PUSH1 0xe3 00000d7a: SHL 00000d7b: PUSH0 00000d7c: MSTORE 00000d7d: PUSH1 0x04 00000d7f: MSTORE 00000d80: PUSH1 0x24 00000d82: MSTORE 00000d83: PUSH1 0x44 00000d85: PUSH0 00000d86: REVERT 00000d87: JUMPDEST 00000d88: PUSH0 00000d89: NOT 00000d8a: DUP2 00000d8b: EQ 00000d8c: PUSH2 0x0cc2 00000d8f: JUMPI 00000d90: PUSH1 0x01 00000d92: ADD 00000d93: SWAP1 00000d94: JUMP 00000d95: JUMPDEST 00000d96: RETURNDATASIZE 00000d97: ISZERO 00000d98: PUSH2 0x0dbf 00000d9b: JUMPI 00000d9c: RETURNDATASIZE 00000d9d: SWAP1 00000d9e: PUSH2 0x0da6 00000da1: DUP3 00000da2: PUSH2 0x0d4e 00000da5: JUMP 00000da6: JUMPDEST 00000da7: SWAP2 00000da8: PUSH2 0x0db4 00000dab: PUSH1 0x40 00000dad: MLOAD 00000dae: SWAP4 00000daf: DUP5 00000db0: PUSH2 0x0d18 00000db3: JUMP 00000db4: JUMPDEST 00000db5: DUP3 00000db6: MSTORE 00000db7: RETURNDATASIZE 00000db8: PUSH0 00000db9: PUSH1 0x20 00000dbb: DUP5 00000dbc: ADD 00000dbd: RETURNDATACOPY 00000dbe: JUMP 00000dbf: JUMPDEST 00000dc0: PUSH1 0x60 00000dc2: SWAP1 00000dc3: JUMP 00000dc4: JUMPDEST 00000dc5: PUSH1 0xff 00000dc7: PUSH0 00000dc8: DUP1 00000dc9: MLOAD 00000dca: PUSH1 0x20 00000dcc: PUSH2 0x103a 00000dcf: DUP4 00000dd0: CODECOPY 00000dd1: DUP2 00000dd2: MLOAD 00000dd3: SWAP2 00000dd4: MSTORE 00000dd5: SLOAD 00000dd6: AND 00000dd7: PUSH2 0x0ddc 00000dda: JUMPI 00000ddb: JUMP 00000ddc: JUMPDEST 00000ddd: PUSH4 0xd93c0665 00000de2: PUSH1 0xe0 00000de4: SHL 00000de5: PUSH0 00000de6: MSTORE 00000de7: PUSH1 0x04 00000de9: PUSH0 00000dea: REVERT 00000deb: JUMPDEST 00000dec: PUSH1 0x02 00000dee: PUSH0 00000def: DUP1 00000df0: MLOAD 00000df1: PUSH1 0x20 00000df3: PUSH2 0x105a 00000df6: DUP4 00000df7: CODECOPY 00000df8: DUP2 00000df9: MLOAD 00000dfa: SWAP2 00000dfb: MSTORE 00000dfc: SLOAD 00000dfd: EQ 00000dfe: PUSH2 0x0e14 00000e01: JUMPI 00000e02: PUSH1 0x02 00000e04: PUSH0 00000e05: DUP1 00000e06: MLOAD 00000e07: PUSH1 0x20 00000e09: PUSH2 0x105a 00000e0c: DUP4 00000e0d: CODECOPY 00000e0e: DUP2 00000e0f: MLOAD 00000e10: SWAP2 00000e11: MSTORE 00000e12: SSTORE 00000e13: JUMP 00000e14: JUMPDEST 00000e15: PUSH4 0x3ee5aeb5 00000e1a: PUSH1 0xe0 00000e1c: SHL 00000e1d: PUSH0 00000e1e: MSTORE 00000e1f: PUSH1 0x04 00000e21: PUSH0 00000e22: REVERT 00000e23: JUMPDEST 00000e24: SWAP1 00000e25: DUP2 00000e26: SELFBALANCE 00000e27: LT 00000e28: SELFBALANCE 00000e29: SWAP1 00000e2a: PUSH2 0x0ece 00000e2d: JUMPI 00000e2e: POP 00000e2f: PUSH1 0x01 00000e31: PUSH1 0x01 00000e33: PUSH1 0xa0 00000e35: SHL 00000e36: SUB 00000e37: AND 00000e38: SWAP1 00000e39: PUSH0 00000e3a: DUP2 00000e3b: DUP4 00000e3c: DUP2 00000e3d: ISZERO 00000e3e: PUSH2 0x0ec4 00000e41: JUMPI 00000e42: JUMPDEST 00000e43: PUSH0 00000e44: SWAP3 00000e45: DUP4 00000e46: SWAP3 00000e47: DUP4 00000e48: SWAP3 00000e49: DUP4 00000e4a: SWAP3 00000e4b: CALL 00000e4c: ISZERO 00000e4d: PUSH2 0x0e7d 00000e50: JUMPI 00000e51: PUSH1 0x20 00000e53: PUSH32 0x2e1ece5fb4a04cb9407bb825ceb4c6d6d402c18ba1cbe2054241fb1a86fd58da 00000e74: SWAP2 00000e75: PUSH1 0x40 00000e77: MLOAD 00000e78: SWAP1 00000e79: DUP2 00000e7a: MSTORE 00000e7b: LOG2 00000e7c: JUMP 00000e7d: JUMPDEST 00000e7e: DUP2 00000e7f: PUSH0 00000e80: MSTORE 00000e81: PUSH0 00000e82: PUSH1 0x20 00000e84: MSTORE 00000e85: PUSH1 0x40 00000e87: PUSH0 00000e88: KECCAK256 00000e89: DUP1 00000e8a: SLOAD 00000e8b: SWAP2 00000e8c: DUP1 00000e8d: DUP4 00000e8e: ADD 00000e8f: DUP1 00000e90: SWAP4 00000e91: GT 00000e92: PUSH2 0x0cc2 00000e95: JUMPI 00000e96: PUSH32 0xdb8894f6f59b9443ce412bc397f0e4a129eae066a787972c7c5e077deccf1db0 00000eb7: SWAP3 00000eb8: PUSH1 0x20 00000eba: SWAP3 00000ebb: SSTORE 00000ebc: PUSH1 0x40 00000ebe: MLOAD 00000ebf: SWAP1 00000ec0: DUP2 00000ec1: MSTORE 00000ec2: LOG2 00000ec3: JUMP 00000ec4: JUMPDEST 00000ec5: PUSH2 0x08fc 00000ec8: SWAP3 00000ec9: POP 00000eca: PUSH2 0x0e42 00000ecd: JUMP 00000ece: JUMPDEST 00000ecf: SWAP1 00000ed0: POP 00000ed1: PUSH4 0xb7ddd88b 00000ed6: PUSH1 0xe0 00000ed8: SHL 00000ed9: PUSH0 00000eda: MSTORE 00000edb: PUSH1 0x04 00000edd: MSTORE 00000ede: PUSH1 0x24 00000ee0: MSTORE 00000ee1: PUSH1 0x44 00000ee3: PUSH0 00000ee4: REVERT 00000ee5: JUMPDEST 00000ee6: PUSH0 00000ee7: DUP1 00000ee8: MLOAD 00000ee9: PUSH1 0x20 00000eeb: PUSH2 0x0ffa 00000eee: DUP4 00000eef: CODECOPY 00000ef0: DUP2 00000ef1: MLOAD 00000ef2: SWAP2 00000ef3: MSTORE 00000ef4: SLOAD 00000ef5: PUSH1 0x01 00000ef7: PUSH1 0x01 00000ef9: PUSH1 0xa0 00000efb: SHL 00000efc: SUB 00000efd: AND 00000efe: CALLER 00000eff: SUB 00000f00: PUSH2 0x0450 00000f03: JUMPI 00000f04: JUMP 00000f05: JUMPDEST 00000f06: PUSH0 00000f07: DUP1 00000f08: MLOAD 00000f09: PUSH1 0x20 00000f0b: PUSH2 0x109a 00000f0e: DUP4 00000f0f: CODECOPY 00000f10: DUP2 00000f11: MLOAD 00000f12: SWAP2 00000f13: MSTORE 00000f14: DUP1 00000f15: SLOAD 00000f16: PUSH1 0x01 00000f18: PUSH1 0x01 00000f1a: PUSH1 0xa0 00000f1c: SHL 00000f1d: SUB 00000f1e: NOT 00000f1f: SWAP1 00000f20: DUP2 00000f21: AND 00000f22: SWAP1 00000f23: SWAP2 00000f24: SSTORE 00000f25: PUSH0 00000f26: DUP1 00000f27: MLOAD 00000f28: PUSH1 0x20 00000f2a: PUSH2 0x0ffa 00000f2d: DUP4 00000f2e: CODECOPY 00000f2f: DUP2 00000f30: MLOAD 00000f31: SWAP2 00000f32: MSTORE 00000f33: DUP1 00000f34: SLOAD 00000f35: SWAP2 00000f36: DUP3 00000f37: AND 00000f38: PUSH1 0x01 00000f3a: PUSH1 0x01 00000f3c: PUSH1 0xa0 00000f3e: SHL 00000f3f: SUB 00000f40: SWAP4 00000f41: DUP5 00000f42: AND 00000f43: SWAP1 00000f44: DUP2 00000f45: OR 00000f46: SWAP1 00000f47: SWAP2 00000f48: SSTORE 00000f49: SWAP2 00000f4a: AND 00000f4b: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000f6c: PUSH0 00000f6d: DUP1 00000f6e: LOG3 00000f6f: JUMP 00000f70: JUMPDEST 00000f71: PUSH1 0xff 00000f73: PUSH0 00000f74: DUP1 00000f75: MLOAD 00000f76: PUSH1 0x20 00000f78: PUSH2 0x107a 00000f7b: DUP4 00000f7c: CODECOPY 00000f7d: DUP2 00000f7e: MLOAD 00000f7f: SWAP2 00000f80: MSTORE 00000f81: SLOAD 00000f82: PUSH1 0x40 00000f84: SHR 00000f85: AND 00000f86: ISZERO 00000f87: PUSH2 0x0f8c 00000f8a: JUMPI 00000f8b: JUMP 00000f8c: JUMPDEST 00000f8d: PUSH4 0x1afcd79f 00000f92: PUSH1 0xe3 00000f94: SHL 00000f95: PUSH0 00000f96: MSTORE 00000f97: PUSH1 0x04 00000f99: PUSH0 00000f9a: REVERT 00000f9b: JUMPDEST 00000f9c: SWAP1 00000f9d: PUSH2 0x0fbf 00000fa0: JUMPI 00000fa1: POP 00000fa2: DUP1 00000fa3: MLOAD 00000fa4: ISZERO 00000fa5: PUSH2 0x0fb0 00000fa8: JUMPI 00000fa9: DUP1 00000faa: MLOAD 00000fab: SWAP1 00000fac: PUSH1 0x20 00000fae: ADD 00000faf: REVERT 00000fb0: JUMPDEST 00000fb1: PUSH4 0x0a12f521 00000fb6: PUSH1 0xe1 00000fb8: SHL 00000fb9: PUSH0 00000fba: MSTORE 00000fbb: PUSH1 0x04 00000fbd: PUSH0 00000fbe: REVERT 00000fbf: JUMPDEST 00000fc0: DUP2 00000fc1: MLOAD 00000fc2: ISZERO 00000fc3: DUP1 00000fc4: PUSH2 0x0ff0 00000fc7: JUMPI 00000fc8: JUMPDEST 00000fc9: PUSH2 0x0fd0 00000fcc: JUMPI 00000fcd: POP 00000fce: SWAP1 00000fcf: JUMP 00000fd0: JUMPDEST 00000fd1: PUSH4 0x9996b315 00000fd6: PUSH1 0xe0 00000fd8: SHL 00000fd9: PUSH0 00000fda: SWAP1 00000fdb: DUP2 00000fdc: MSTORE 00000fdd: PUSH1 0x01 00000fdf: PUSH1 0x01 00000fe1: PUSH1 0xa0 00000fe3: SHL 00000fe4: SUB 00000fe5: SWAP2 00000fe6: SWAP1 00000fe7: SWAP2 00000fe8: AND 00000fe9: PUSH1 0x04 00000feb: MSTORE 00000fec: PUSH1 0x24 00000fee: SWAP1 00000fef: REVERT 00000ff0: JUMPDEST 00000ff1: POP 00000ff2: DUP1 00000ff3: EXTCODESIZE 00000ff4: ISZERO 00000ff5: PUSH2 0x0fc8 00000ff8: JUMP 00000ff9: INVALID 00000ffa: SWAP1 00000ffb: AND 00000ffc: UNKNOWN(0xD0) 00000ffd: SWAP14 00000ffe: PUSH19 0xd40fdae2fd8ceac6b6234c7706214fd39c1cd1 00001012: UNKNOWN(0xE6) 00001013: MULMOD 00001014: LOG0 00001015: MSTORE 00001016: DUP13 00001017: NOT 00001018: SWAP4 00001019: STOP 0000101a: CALLDATASIZE 0000101b: ADDMOD 0000101c: SWAP5 0000101d: LOG1 0000101e: EXTCODESIZE 0000101f: LOG1 00001020: LOG3 00001021: UNKNOWN(0x21) 00001022: MOD 00001023: PUSH8 0xc828492db98dca3e 0000102c: KECCAK256 0000102d: PUSH23 0xcc3735a920a3ca505d382bbccd5ed15c6e187e77e9aee8 00001045: DUP2 00001046: DUP5 00001047: UNKNOWN(0xC2) 00001048: UNKNOWN(0x1F) 00001049: UNKNOWN(0x4F) 0000104a: UNKNOWN(0x21) 0000104b: DUP3 0000104c: UNKNOWN(0xAB) 0000104d: PC 0000104e: UNKNOWN(0x27) 0000104f: UNKNOWN(0xCB) 00001050: EXTCODESIZE 00001051: PUSH31 0x07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817 00001071: UNKNOWN(0xE2) 00001072: BASEFEE 00001073: PUSH14 0x003becc55f00f0c57e16840df040 00001082: CALL 00001083: POP 00001084: DUP9 00001085: UNKNOWN(0xDC) 00001086: UNKNOWN(0x2F) 00001087: DUP2 00001088: INVALID 00001089: CODECOPY 0000108a: SHR 0000108b: CODECOPY 0000108c: UNKNOWN(0x23) 0000108d: UNKNOWN(0xBE) 0000108e: UNKNOWN(0xC7) 0000108f: RETURNDATACOPY 00001090: UNKNOWN(0x23) 00001091: UNKNOWN(0xA9) 00001092: PUSH7 0x2efc9c229c6a00 0000109a: UNKNOWN(0x23) 0000109b: PUSH31 0x158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00a2 000010bb: PUSH5 0x6970667358 000010c1: UNKNOWN(0x22) 000010c2: SLT 000010c3: KECCAK256 000010c4: SWAP11 000010c5: PUSH30 0x80965701c33c97d793097da2bc44b6b37a9fa5420069a07690dcde55db10 000010e4: PUSH5 0x736f6c6343 000010ea: STOP 000010eb: ADDMOD 000010ec: BYTE 000010ed: STOP 000010ee: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x11dfd692e826946abd81c3b129701328f01e93361188122f20aa270e4a46ce6d
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x11dfd692e826946abd81c3b129701328f01e93361188122f20aa270e4a46ce6d",
"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": "0x169235ed",
"selector": "0x169235ed",
"calldata_variants": [
"0x169235ed",
"0x169235ed0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1794bb3c",
"selector": "0x1794bb3c",
"calldata_variants": [
"0x1794bb3c",
"0x1794bb3c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22396f1d",
"selector": "0x22396f1d",
"calldata_variants": [
"0x22396f1d",
"0x22396f1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3f4ba83a",
"selector": "0x3f4ba83a",
"calldata_variants": [
"0x3f4ba83a",
"0x3f4ba83a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x51cff8d9",
"selector": "0x51cff8d9",
"calldata_variants": [
"0x51cff8d9",
"0x51cff8d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x52d1902d",
"selector": "0x52d1902d",
"calldata_variants": [
"0x52d1902d",
"0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x55f4bdfc",
"selector": "0x55f4bdfc",
"calldata_variants": [
"0x55f4bdfc",
"0x55f4bdfc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2185,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x3f51caefdacb5a5a0514fd7ff31e8a9ef8fe778c26493e193f6fdd95a74fef22
call_targets:
0x1f1181a53e1ec365bc8723df8109cf1fb96e49db
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3f51caefdacb5a5a0514fd7ff31e8a9ef8fe778c26493e193f6fdd95a74fef22",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1f1181a53e1ec365bc8723df8109cf1fb96e49db"
],
"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": "0x169235ed",
"selector": "0x169235ed",
"calldata_variants": [
"0x169235ed",
"0x169235ed0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1794bb3c",
"selector": "0x1794bb3c",
"calldata_variants": [
"0x1794bb3c",
"0x1794bb3c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22396f1d",
"selector": "0x22396f1d",
"calldata_variants": [
"0x22396f1d",
"0x22396f1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3f4ba83a",
"selector": "0x3f4ba83a",
"calldata_variants": [
"0x3f4ba83a",
"0x3f4ba83a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x51cff8d9",
"selector": "0x51cff8d9",
"calldata_variants": [
"0x51cff8d9",
"0x51cff8d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x52d1902d",
"selector": "0x52d1902d",
"calldata_variants": [
"0x52d1902d",
"0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x55f4bdfc",
"selector": "0x55f4bdfc",
"calldata_variants": [
"0x55f4bdfc",
"0x55f4bdfc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1710,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3659,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4226,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x3f51caefdacb5a5a0514fd7ff31e8a9ef8fe778c26493e193f6fdd95a74fef22
call_targets:
0x1f1181a53e1ec365bc8723df8109cf1fb96e49db
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3f51caefdacb5a5a0514fd7ff31e8a9ef8fe778c26493e193f6fdd95a74fef22",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1f1181a53e1ec365bc8723df8109cf1fb96e49db"
],
"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": "0x169235ed",
"selector": "0x169235ed",
"calldata_variants": [
"0x169235ed",
"0x169235ed0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1794bb3c",
"selector": "0x1794bb3c",
"calldata_variants": [
"0x1794bb3c",
"0x1794bb3c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22396f1d",
"selector": "0x22396f1d",
"calldata_variants": [
"0x22396f1d",
"0x22396f1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3f4ba83a",
"selector": "0x3f4ba83a",
"calldata_variants": [
"0x3f4ba83a",
"0x3f4ba83a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4f1ef286",
"selector": "0x4f1ef286",
"calldata_variants": [
"0x4f1ef286",
"0x4f1ef2860000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x51cff8d9",
"selector": "0x51cff8d9",
"calldata_variants": [
"0x51cff8d9",
"0x51cff8d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x52d1902d",
"selector": "0x52d1902d",
"calldata_variants": [
"0x52d1902d",
"0x52d1902d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x55f4bdfc",
"selector": "0x55f4bdfc",
"calldata_variants": [
"0x55f4bdfc",
"0x55f4bdfc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1710,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3659,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4226,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| 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": 5
}
|