019ba9e0-be62-7229-9471-8381484dc66b
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 |
|---|---|---|---|---|
| 38145 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38146 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38147 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38148 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38149 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38150 | detector.run | complete | 1 / 3 | 3 months ago |
| 38151 | validation.fork | complete | 1 / 3 | 3 months ago |
| 38197 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode indicates 7 low-level CALL sites with computed target/value and multiple msg.sender==0xffff… guards; no delegatecall or proxy patterns observed, but external-call safety and hardcoded access control deserve review.","findings":[{"severity":"low","category":"reentrancy","title":"Potential untrusted external CALL surface (computed target/value) with uncertain return-data handling","exploit_scenario":"If any CALL target can be influenced by users or points to an untrusted contract, a malicious callee could reenter or otherwise manipulate state around the call. The bytecode shows low-level CALLs with computed target/value, and return-data handling is not clearly evidenced; this can enable reentrancy or silent failure patterns depending on the surrounding state updates.","recommendation":"Restrict/whitelist call targets and add explicit reentrancy protection (checks-effects-interactions or a guard) around state-changing logic. If these are token calls, decode and validate return data instead of relying only on CALL success.","evidence":"Calls listed at pc 2117/2741/3335/3778/3999/4811/5439 with target/value marked computed; detector notes 7 CALLs and returndata_checked=null. Validation suggests constant target, so untrusted reachability is uncertain.","locations":["pc:0x845","pc:0xab5","pc:0xd07","pc:0xec2","pc:0xf9f","pc:0x12cb","pc:0x153f"]},{"severity":"low","category":"access_control","title":"Hardcoded msg.sender==0xffff… guards may lock privileged actions or rely on an unreachable admin","exploit_scenario":"Guards compare msg.sender to the constant 0xffff… address. If these gates protect admin-only functions (e.g., ownership/withdrawal), access could be permanently locked, preventing emergency actions. Conversely, if that address is ever controlled, it would gain privileged access. The intent is unclear from bytecode alone.","recommendation":"Ensure privileged checks reference a configurable storage owner/admin rather than a hardcoded constant, or explicitly document that admin is permanently renounced. If renounced, verify no critical functionality depends on these paths.","evidence":"Auth guards detected as msg_sender_eq_const with value 0xffffffffffffffffffffffffffffffffffffffff at multiple PCs.","locations":["pc:0x727","pc:0x8bd","pc:0x9aa","pc:0xb25","pc:0x1028","pc:0x113c","pc:0x133d","pc:0x1419"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-hy7zeyfd
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019baa7b-d0f9-7b02-95b0-aa6800d7ade5
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
thinking
**Preparing to read BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-hy7zeyfd succeeded in 7ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-hy7zeyfd succeeded in 7ms:
{
"analysis_artifact": {
"address": "0xd0eabb5164c9dba0a2ee508f7e8d91d4d485637c",
"artifact_hash": "0x411f9ce1748beb8cc08a2c2a12130fc3373385f12ec5cb5566ae5d96e4675997",
"artifact_json": {
"auth": {
"guards": [
{
"pc": 1831,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2237,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2474,
"type": "msg_sender_eq_const",
thinking
**Examining call behavior and sender guards**
I'm analyzing the bytecode to understand call targets and sender checks. It looks like there are self-calls that might affect msg.sender and guard conditions checking against an unusual constant address 0xffff... that could act as a sentinel or placeholder. I want to dig into storage slots next to clarify ownership or freezing mechanisms.
exec
/bin/bash -lc 'rg -n "storage|slot|eip|proxy|delegate" BYTECODE_BUNDLE.json' in /tmp/codex-hy7zeyfd succeeded in 8ms:
5615: "delegatecall": 0,
5619: "storage": {
5621: "slots": [
5625: "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
5630: "slot": "0x0000000000000000000000000000000000000000000000000000000000000100"
5635: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5640: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5645: "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
5650: "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
5655: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5660: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5665: "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
5670: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5675: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5680: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5685: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5690: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5695: "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
5700: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
5705: "slot": "0x0000000000000000000000000000000000000000000000000000000000000000"
thinking
**Inspecting callsites in analysis artifact**
exec
/bin/bash -lc 'rg -n "callsites|callsite" BYTECODE_BUNDLE.json' in /tmp/codex-hy7zeyfd succeeded in 6ms:
4439: "callsites": [
13721: "type": "callsite"
13727: "type": "callsite"
13733: "type": "callsite"
13739: "type": "callsite"
13745: "type": "callsite"
13751: "type": "callsite"
13757: "type": "callsite"
exec
/bin/bash -lc "sed -n '4400,4505p' BYTECODE_BUNDLE.json" in /tmp/codex-hy7zeyfd succeeded in 6ms:
"hash": "0x0e90b851130210d1b76e08720bbeddf32ef4a304fb801268755a911a13f80e15",
"opcodes": [
"STOP"
],
"start_pc": 5639
},
{
"end_pc": 5670,
"hash": "0xb3090db133538977eafa188f115e679ed3aceae1c4e86ddfddf20dfb0d91f15b",
"opcodes": [
"OP_A1",
"PUSH6",
"SHA3",
"SIGNEXTEND",
"OP_84",
"OP_28",
"OP_DF",
"OP_B7",
"CALLDATACOPY",
"ISZERO",
thinking
**Investigating callsites and evidence references**
exec
/bin/bash -lc 'rg -n "evidence|bundle|trace|returndata|return" BYTECODE_BUNDLE.json' in /tmp/codex-hy7zeyfd succeeded in 22ms:
4443: "returndata_checked": null,
4450: "returndata_checked": null,
4457: "returndata_checked": null,
4464: "returndata_checked": null,
4471: "returndata_checked": null,
4478: "returndata_checked": null,
4485: "returndata_checked": null,
10970: "proxy_evidence": {
13899: "evidence_json": {
13905: "returndata_checked": null,
13912: "returndata_checked": null,
13919: "returndata_checked": null,
13986: "trace_id": "0xbee36ade5f62e6428c55bfff05d2e42a73a070cc5e1b1e9bd66c8644934eb192",
13987: "trace_mode": "callTracer"
13992: "evidence_json": {
13998: "returndata_checked": null,
14005: "returndata_checked": null,
14012: "returndata_checked": null,
14079: "trace_id": "0xbee36ade5f62e6428c55bfff05d2e42a73a070cc5e1b1e9bd66c8644934eb192",
14080: "trace_mode": "callTracer"
thinking
**Analyzing contract security artifacts**
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
p=Path('BYTECODE_BUNDLE.json')
obj=json.loads(p.read_text())
blocks=obj['analysis_artifact']['artifact_json']['basic_blocks']
call_blocks=[b for b in blocks if 'CALL' in b.get('opcodes',[])]
print('call_blocks',len(call_blocks))
for b in call_blocks:
print(b['start_pc'],b['end_pc'],b['opcodes'])
PY" in /tmp/codex-hy7zeyfd succeeded in 39ms:
call_blocks 7
2114 2124 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
2738 2748 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
3332 3342 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
3775 3785 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
3996 4006 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
4808 4818 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
5436 5446 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
thinking
**Analyzing external CALL patterns and risks**
exec
/bin/bash -lc "python - <<'PY'
pcs=[2117,2741,3335,3778,3999,4811,5439]
print([hex(p) for p in pcs])
PY" in /tmp/codex-hy7zeyfd succeeded in 24ms:
['0x845', '0xab5', '0xd07', '0xec2', '0xf9f', '0x12cb', '0x153f']
thinking
**Converting guard program counters**
exec
/bin/bash -lc "python - <<'PY'
pcs=[1831,2237,2474,2853,4136,4412,4925,5145]
print([hex(p) for p in pcs])
PY" in /tmp/codex-hy7zeyfd succeeded in 18ms:
['0x727', '0x8bd', '0x9aa', '0xb25', '0x1028', '0x113c', '0x133d', '0x1419']
thinking
**Composing detailed findings and summary**
I'm putting together detailed findings with severity and categories like access_control and reentrancy, including evidence referencing specific call locations and detectors. I’m also crafting a concise summary of bytecode behavior with CALLs and msg.sender guards, ensuring the final JSON output matches the required schema and uses precise double-quoted strings without trailing commas.
codex
{"no_findings":false,"summary":"Bytecode indicates 7 low-level CALL sites with computed target/value and multiple msg.sender==0xffff… guards; no delegatecall or proxy patterns observed, but external-call safety and hardcoded access control deserve review.","findings":[{"severity":"low","category":"reentrancy","title":"Potential untrusted external CALL surface (computed target/value) with uncertain return-data handling","exploit_scenario":"If any CALL target can be influenced by users or points to an untrusted contract, a malicious callee could reenter or otherwise manipulate state around the call. The bytecode shows low-level CALLs with computed target/value, and return-data handling is not clearly evidenced; this can enable reentrancy or silent failure patterns depending on the surrounding state updates.","recommendation":"Restrict/whitelist call targets and add explicit reentrancy protection (checks-effects-interactions or a guard) around state-changing logic. If these are token calls, decode and validate return data instead of relying only on CALL success.","evidence":"Calls listed at pc 2117/2741/3335/3778/3999/4811/5439 with target/value marked computed; detector notes 7 CALLs and returndata_checked=null. Validation suggests constant target, so untrusted reachability is uncertain.","locations":["pc:0x845","pc:0xab5","pc:0xd07","pc:0xec2","pc:0xf9f","pc:0x12cb","pc:0x153f"]},{"severity":"low","category":"access_control","title":"Hardcoded msg.sender==0xffff… guards may lock privileged actions or rely on an unreachable admin","exploit_scenario":"Guards compare msg.sender to the constant 0xffff… address. If these gates protect admin-only functions (e.g., ownership/withdrawal), access could be permanently locked, preventing emergency actions. Conversely, if that address is ever controlled, it would gain privileged access. The intent is unclear from bytecode alone.","recommendation":"Ensure privileged checks reference a configurable storage owner/admin rather than a hardcoded constant, or explicitly document that admin is permanently renounced. If renounced, verify no critical functionality depends on these paths.","evidence":"Auth guards detected as msg_sender_eq_const with value 0xffffffffffffffffffffffffffffffffffffffff at multiple PCs.","locations":["pc:0x727","pc:0x8bd","pc:0x9aa","pc:0xb25","pc:0x1028","pc:0x113c","pc:0x133d","pc:0x1419"]}]}
tokens used
90,270
{
"codex": {
"ran_at": "2026-01-11T00:38:41.408010+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 11368,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode indicates 7 low-level CALL sites with computed target/value and multiple msg.sender==0xffff\u2026 guards; no delegatecall or proxy patterns observed, but external-call safety and hardcoded access control deserve review.",
"raw_final": {
"summary": "Bytecode indicates 7 low-level CALL sites with computed target/value and multiple msg.sender==0xffff\u2026 guards; no delegatecall or proxy patterns observed, but external-call safety and hardcoded access control deserve review.",
"findings": [
{
"title": "Potential untrusted external CALL surface (computed target/value) with uncertain return-data handling",
"category": "reentrancy",
"evidence": "Calls listed at pc 2117/2741/3335/3778/3999/4811/5439 with target/value marked computed; detector notes 7 CALLs and returndata_checked=null. Validation suggests constant target, so untrusted reachability is uncertain.",
"severity": "low",
"locations": [
"pc:0x845",
"pc:0xab5",
"pc:0xd07",
"pc:0xec2",
"pc:0xf9f",
"pc:0x12cb",
"pc:0x153f"
],
"recommendation": "Restrict/whitelist call targets and add explicit reentrancy protection (checks-effects-interactions or a guard) around state-changing logic. If these are token calls, decode and validate return data instead of relying only on CALL success.",
"exploit_scenario": "If any CALL target can be influenced by users or points to an untrusted contract, a malicious callee could reenter or otherwise manipulate state around the call. The bytecode shows low-level CALLs with computed target/value, and return-data handling is not clearly evidenced; this can enable reentrancy or silent failure patterns depending on the surrounding state updates."
},
{
"title": "Hardcoded msg.sender==0xffff\u2026 guards may lock privileged actions or rely on an unreachable admin",
"category": "access_control",
"evidence": "Auth guards detected as msg_sender_eq_const with value 0xffffffffffffffffffffffffffffffffffffffff at multiple PCs.",
"severity": "low",
"locations": [
"pc:0x727",
"pc:0x8bd",
"pc:0x9aa",
"pc:0xb25",
"pc:0x1028",
"pc:0x113c",
"pc:0x133d",
"pc:0x1419"
],
"recommendation": "Ensure privileged checks reference a configurable storage owner/admin rather than a hardcoded constant, or explicitly document that admin is permanently renounced. If renounced, verify no critical functionality depends on these paths.",
"exploit_scenario": "Guards compare msg.sender to the constant 0xffff\u2026 address. If these gates protect admin-only functions (e.g., ownership/withdrawal), access could be permanently locked, preventing emergency actions. Conversely, if that address is ever controlled, it would gain privileged access. The intent is unclear from bytecode alone."
}
],
"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 0x0112 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: SWAP1 0000002f: DIV 00000030: PUSH4 0xffffffff 00000035: AND 00000036: DUP1 00000037: PUSH4 0x06fdde03 0000003c: EQ 0000003d: PUSH2 0x0117 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x1659bbeb 00000047: EQ 00000048: PUSH2 0x01a7 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x3e118dbe 00000052: EQ 00000053: PUSH2 0x01ec 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x3f4ba83a 0000005d: EQ 0000005e: PUSH2 0x0217 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x41e61ad1 00000068: EQ 00000069: PUSH2 0x022e 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x543fcf03 00000073: EQ 00000074: PUSH2 0x0259 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x560b65f7 0000007e: EQ 0000007f: PUSH2 0x02b0 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0x5c975abb 00000089: EQ 0000008a: PUSH2 0x02f5 0000008d: JUMPI 0000008e: DUP1 0000008f: PUSH4 0x6c672842 00000094: EQ 00000095: PUSH2 0x0324 00000098: JUMPI 00000099: DUP1 0000009a: PUSH4 0x8456cb59 0000009f: EQ 000000a0: PUSH2 0x034f 000000a3: JUMPI 000000a4: DUP1 000000a5: PUSH4 0x899de21a 000000aa: EQ 000000ab: PUSH2 0x0366 000000ae: JUMPI 000000af: DUP1 000000b0: PUSH4 0x8da5cb5b 000000b5: EQ 000000b6: PUSH2 0x03ab 000000b9: JUMPI 000000ba: DUP1 000000bb: PUSH4 0x946ca295 000000c0: EQ 000000c1: PUSH2 0x0402 000000c4: JUMPI 000000c5: DUP1 000000c6: PUSH4 0xcf947f9f 000000cb: EQ 000000cc: PUSH2 0x0467 000000cf: JUMPI 000000d0: DUP1 000000d1: PUSH4 0xd7d0a094 000000d6: EQ 000000d7: PUSH2 0x0492 000000da: JUMPI 000000db: DUP1 000000dc: PUSH4 0xdead610a 000000e1: EQ 000000e2: PUSH2 0x04e1 000000e5: JUMPI 000000e6: DUP1 000000e7: PUSH4 0xe571c1ac 000000ec: EQ 000000ed: PUSH2 0x053c 000000f0: JUMPI 000000f1: DUP1 000000f2: PUSH4 0xef50d4a2 000000f7: EQ 000000f8: PUSH2 0x0581 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0xf2fde38b 00000102: EQ 00000103: PUSH2 0x05c6 00000106: JUMPI 00000107: DUP1 00000108: PUSH4 0xfbfb122c 0000010d: EQ 0000010e: PUSH2 0x0609 00000111: JUMPI 00000112: JUMPDEST 00000113: PUSH1 0x00 00000115: DUP1 00000116: REVERT 00000117: JUMPDEST 00000118: CALLVALUE 00000119: DUP1 0000011a: ISZERO 0000011b: PUSH2 0x0123 0000011e: JUMPI 0000011f: PUSH1 0x00 00000121: DUP1 00000122: REVERT 00000123: JUMPDEST 00000124: POP 00000125: PUSH2 0x012c 00000128: PUSH2 0x064e 0000012b: JUMP 0000012c: JUMPDEST 0000012d: PUSH1 0x40 0000012f: MLOAD 00000130: DUP1 00000131: DUP1 00000132: PUSH1 0x20 00000134: ADD 00000135: DUP3 00000136: DUP2 00000137: SUB 00000138: DUP3 00000139: MSTORE 0000013a: DUP4 0000013b: DUP2 0000013c: DUP2 0000013d: MLOAD 0000013e: DUP2 0000013f: MSTORE 00000140: PUSH1 0x20 00000142: ADD 00000143: SWAP2 00000144: POP 00000145: DUP1 00000146: MLOAD 00000147: SWAP1 00000148: PUSH1 0x20 0000014a: ADD 0000014b: SWAP1 0000014c: DUP1 0000014d: DUP4 0000014e: DUP4 0000014f: PUSH1 0x00 00000151: JUMPDEST 00000152: DUP4 00000153: DUP2 00000154: LT 00000155: ISZERO 00000156: PUSH2 0x016c 00000159: JUMPI 0000015a: DUP1 0000015b: DUP3 0000015c: ADD 0000015d: MLOAD 0000015e: DUP2 0000015f: DUP5 00000160: ADD 00000161: MSTORE 00000162: PUSH1 0x20 00000164: DUP2 00000165: ADD 00000166: SWAP1 00000167: POP 00000168: PUSH2 0x0151 0000016b: JUMP 0000016c: JUMPDEST 0000016d: POP 0000016e: POP 0000016f: POP 00000170: POP 00000171: SWAP1 00000172: POP 00000173: SWAP1 00000174: DUP2 00000175: ADD 00000176: SWAP1 00000177: PUSH1 0x1f 00000179: AND 0000017a: DUP1 0000017b: ISZERO 0000017c: PUSH2 0x0199 0000017f: JUMPI 00000180: DUP1 00000181: DUP3 00000182: SUB 00000183: DUP1 00000184: MLOAD 00000185: PUSH1 0x01 00000187: DUP4 00000188: PUSH1 0x20 0000018a: SUB 0000018b: PUSH2 0x0100 0000018e: EXP 0000018f: SUB 00000190: NOT 00000191: AND 00000192: DUP2 00000193: MSTORE 00000194: PUSH1 0x20 00000196: ADD 00000197: SWAP2 00000198: POP 00000199: JUMPDEST 0000019a: POP 0000019b: SWAP3 0000019c: POP 0000019d: POP 0000019e: POP 0000019f: PUSH1 0x40 000001a1: MLOAD 000001a2: DUP1 000001a3: SWAP2 000001a4: SUB 000001a5: SWAP1 000001a6: RETURN 000001a7: JUMPDEST 000001a8: CALLVALUE 000001a9: DUP1 000001aa: ISZERO 000001ab: PUSH2 0x01b3 000001ae: JUMPI 000001af: PUSH1 0x00 000001b1: DUP1 000001b2: REVERT 000001b3: JUMPDEST 000001b4: POP 000001b5: PUSH2 0x01d2 000001b8: PUSH1 0x04 000001ba: DUP1 000001bb: CALLDATASIZE 000001bc: SUB 000001bd: DUP2 000001be: ADD 000001bf: SWAP1 000001c0: DUP1 000001c1: DUP1 000001c2: CALLDATALOAD 000001c3: SWAP1 000001c4: PUSH1 0x20 000001c6: ADD 000001c7: SWAP1 000001c8: SWAP3 000001c9: SWAP2 000001ca: SWAP1 000001cb: POP 000001cc: POP 000001cd: POP 000001ce: PUSH2 0x06ec 000001d1: JUMP 000001d2: JUMPDEST 000001d3: PUSH1 0x40 000001d5: MLOAD 000001d6: DUP1 000001d7: DUP3 000001d8: ISZERO 000001d9: ISZERO 000001da: ISZERO 000001db: ISZERO 000001dc: DUP2 000001dd: MSTORE 000001de: PUSH1 0x20 000001e0: ADD 000001e1: SWAP2 000001e2: POP 000001e3: POP 000001e4: PUSH1 0x40 000001e6: MLOAD 000001e7: DUP1 000001e8: SWAP2 000001e9: SUB 000001ea: SWAP1 000001eb: RETURN 000001ec: JUMPDEST 000001ed: CALLVALUE 000001ee: DUP1 000001ef: ISZERO 000001f0: PUSH2 0x01f8 000001f3: JUMPI 000001f4: PUSH1 0x00 000001f6: DUP1 000001f7: REVERT 000001f8: JUMPDEST 000001f9: POP 000001fa: PUSH2 0x0201 000001fd: PUSH2 0x087e 00000200: JUMP 00000201: JUMPDEST 00000202: PUSH1 0x40 00000204: MLOAD 00000205: DUP1 00000206: DUP3 00000207: DUP2 00000208: MSTORE 00000209: PUSH1 0x20 0000020b: ADD 0000020c: SWAP2 0000020d: POP 0000020e: POP 0000020f: PUSH1 0x40 00000211: MLOAD 00000212: DUP1 00000213: SWAP2 00000214: SUB 00000215: SWAP1 00000216: RETURN 00000217: JUMPDEST 00000218: CALLVALUE 00000219: DUP1 0000021a: ISZERO 0000021b: PUSH2 0x0223 0000021e: JUMPI 0000021f: PUSH1 0x00 00000221: DUP1 00000222: REVERT 00000223: JUMPDEST 00000224: POP 00000225: PUSH2 0x022c 00000228: PUSH2 0x0884 0000022b: JUMP 0000022c: JUMPDEST 0000022d: STOP 0000022e: JUMPDEST 0000022f: CALLVALUE 00000230: DUP1 00000231: ISZERO 00000232: PUSH2 0x023a 00000235: JUMPI 00000236: PUSH1 0x00 00000238: DUP1 00000239: REVERT 0000023a: JUMPDEST 0000023b: POP 0000023c: PUSH2 0x0243 0000023f: PUSH2 0x0943 00000242: JUMP 00000243: JUMPDEST 00000244: PUSH1 0x40 00000246: MLOAD 00000247: DUP1 00000248: DUP3 00000249: DUP2 0000024a: MSTORE 0000024b: PUSH1 0x20 0000024d: ADD 0000024e: SWAP2 0000024f: POP 00000250: POP 00000251: PUSH1 0x40 00000253: MLOAD 00000254: DUP1 00000255: SWAP2 00000256: SUB 00000257: SWAP1 00000258: RETURN 00000259: JUMPDEST 0000025a: CALLVALUE 0000025b: DUP1 0000025c: ISZERO 0000025d: PUSH2 0x0265 00000260: JUMPI 00000261: PUSH1 0x00 00000263: DUP1 00000264: REVERT 00000265: JUMPDEST 00000266: POP 00000267: PUSH2 0x026e 0000026a: PUSH2 0x0949 0000026d: JUMP 0000026e: JUMPDEST 0000026f: PUSH1 0x40 00000271: MLOAD 00000272: DUP1 00000273: DUP3 00000274: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000289: AND 0000028a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000029f: AND 000002a0: DUP2 000002a1: MSTORE 000002a2: PUSH1 0x20 000002a4: ADD 000002a5: SWAP2 000002a6: POP 000002a7: POP 000002a8: PUSH1 0x40 000002aa: MLOAD 000002ab: DUP1 000002ac: SWAP2 000002ad: SUB 000002ae: SWAP1 000002af: RETURN 000002b0: JUMPDEST 000002b1: CALLVALUE 000002b2: DUP1 000002b3: ISZERO 000002b4: PUSH2 0x02bc 000002b7: JUMPI 000002b8: PUSH1 0x00 000002ba: DUP1 000002bb: REVERT 000002bc: JUMPDEST 000002bd: POP 000002be: PUSH2 0x02db 000002c1: PUSH1 0x04 000002c3: DUP1 000002c4: CALLDATASIZE 000002c5: SUB 000002c6: DUP2 000002c7: ADD 000002c8: SWAP1 000002c9: DUP1 000002ca: DUP1 000002cb: CALLDATALOAD 000002cc: SWAP1 000002cd: PUSH1 0x20 000002cf: ADD 000002d0: SWAP1 000002d1: SWAP3 000002d2: SWAP2 000002d3: SWAP1 000002d4: POP 000002d5: POP 000002d6: POP 000002d7: PUSH2 0x096f 000002da: JUMP 000002db: JUMPDEST 000002dc: PUSH1 0x40 000002de: MLOAD 000002df: DUP1 000002e0: DUP3 000002e1: ISZERO 000002e2: ISZERO 000002e3: ISZERO 000002e4: ISZERO 000002e5: DUP2 000002e6: MSTORE 000002e7: PUSH1 0x20 000002e9: ADD 000002ea: SWAP2 000002eb: POP 000002ec: POP 000002ed: PUSH1 0x40 000002ef: MLOAD 000002f0: DUP1 000002f1: SWAP2 000002f2: SUB 000002f3: SWAP1 000002f4: RETURN 000002f5: JUMPDEST 000002f6: CALLVALUE 000002f7: DUP1 000002f8: ISZERO 000002f9: PUSH2 0x0301 000002fc: JUMPI 000002fd: PUSH1 0x00 000002ff: DUP1 00000300: REVERT 00000301: JUMPDEST 00000302: POP 00000303: PUSH2 0x030a 00000306: PUSH2 0x0ad3 00000309: JUMP 0000030a: JUMPDEST 0000030b: PUSH1 0x40 0000030d: MLOAD 0000030e: DUP1 0000030f: DUP3 00000310: ISZERO 00000311: ISZERO 00000312: ISZERO 00000313: ISZERO 00000314: DUP2 00000315: MSTORE 00000316: PUSH1 0x20 00000318: ADD 00000319: SWAP2 0000031a: POP 0000031b: POP 0000031c: PUSH1 0x40 0000031e: MLOAD 0000031f: DUP1 00000320: SWAP2 00000321: SUB 00000322: SWAP1 00000323: RETURN 00000324: JUMPDEST 00000325: CALLVALUE 00000326: DUP1 00000327: ISZERO 00000328: PUSH2 0x0330 0000032b: JUMPI 0000032c: PUSH1 0x00 0000032e: DUP1 0000032f: REVERT 00000330: JUMPDEST 00000331: POP 00000332: PUSH2 0x0339 00000335: PUSH2 0x0ae6 00000338: JUMP 00000339: JUMPDEST 0000033a: PUSH1 0x40 0000033c: MLOAD 0000033d: DUP1 0000033e: DUP3 0000033f: DUP2 00000340: MSTORE 00000341: PUSH1 0x20 00000343: ADD 00000344: SWAP2 00000345: POP 00000346: POP 00000347: PUSH1 0x40 00000349: MLOAD 0000034a: DUP1 0000034b: SWAP2 0000034c: SUB 0000034d: SWAP1 0000034e: RETURN 0000034f: JUMPDEST 00000350: CALLVALUE 00000351: DUP1 00000352: ISZERO 00000353: PUSH2 0x035b 00000356: JUMPI 00000357: PUSH1 0x00 00000359: DUP1 0000035a: REVERT 0000035b: JUMPDEST 0000035c: POP 0000035d: PUSH2 0x0364 00000360: PUSH2 0x0aec 00000363: JUMP 00000364: JUMPDEST 00000365: STOP 00000366: JUMPDEST 00000367: CALLVALUE 00000368: DUP1 00000369: ISZERO 0000036a: PUSH2 0x0372 0000036d: JUMPI 0000036e: PUSH1 0x00 00000370: DUP1 00000371: REVERT 00000372: JUMPDEST 00000373: POP 00000374: PUSH2 0x0391 00000377: PUSH1 0x04 00000379: DUP1 0000037a: CALLDATASIZE 0000037b: SUB 0000037c: DUP2 0000037d: ADD 0000037e: SWAP1 0000037f: DUP1 00000380: DUP1 00000381: CALLDATALOAD 00000382: SWAP1 00000383: PUSH1 0x20 00000385: ADD 00000386: SWAP1 00000387: SWAP3 00000388: SWAP2 00000389: SWAP1 0000038a: POP 0000038b: POP 0000038c: POP 0000038d: PUSH2 0x0bac 00000390: JUMP 00000391: JUMPDEST 00000392: PUSH1 0x40 00000394: MLOAD 00000395: DUP1 00000396: DUP3 00000397: ISZERO 00000398: ISZERO 00000399: ISZERO 0000039a: ISZERO 0000039b: DUP2 0000039c: MSTORE 0000039d: PUSH1 0x20 0000039f: ADD 000003a0: SWAP2 000003a1: POP 000003a2: POP 000003a3: PUSH1 0x40 000003a5: MLOAD 000003a6: DUP1 000003a7: SWAP2 000003a8: SUB 000003a9: SWAP1 000003aa: RETURN 000003ab: JUMPDEST 000003ac: CALLVALUE 000003ad: DUP1 000003ae: ISZERO 000003af: PUSH2 0x03b7 000003b2: JUMPI 000003b3: PUSH1 0x00 000003b5: DUP1 000003b6: REVERT 000003b7: JUMPDEST 000003b8: POP 000003b9: PUSH2 0x03c0 000003bc: PUSH2 0x0d40 000003bf: JUMP 000003c0: JUMPDEST 000003c1: PUSH1 0x40 000003c3: MLOAD 000003c4: DUP1 000003c5: DUP3 000003c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003db: AND 000003dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003f1: AND 000003f2: DUP2 000003f3: MSTORE 000003f4: PUSH1 0x20 000003f6: ADD 000003f7: SWAP2 000003f8: POP 000003f9: POP 000003fa: PUSH1 0x40 000003fc: MLOAD 000003fd: DUP1 000003fe: SWAP2 000003ff: SUB 00000400: SWAP1 00000401: RETURN 00000402: JUMPDEST 00000403: CALLVALUE 00000404: DUP1 00000405: ISZERO 00000406: PUSH2 0x040e 00000409: JUMPI 0000040a: PUSH1 0x00 0000040c: DUP1 0000040d: REVERT 0000040e: JUMPDEST 0000040f: POP 00000410: PUSH2 0x044d 00000413: PUSH1 0x04 00000415: DUP1 00000416: CALLDATASIZE 00000417: SUB 00000418: DUP2 00000419: ADD 0000041a: SWAP1 0000041b: DUP1 0000041c: DUP1 0000041d: CALLDATALOAD 0000041e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000433: AND 00000434: SWAP1 00000435: PUSH1 0x20 00000437: ADD 00000438: SWAP1 00000439: SWAP3 0000043a: SWAP2 0000043b: SWAP1 0000043c: DUP1 0000043d: CALLDATALOAD 0000043e: SWAP1 0000043f: PUSH1 0x20 00000441: ADD 00000442: SWAP1 00000443: SWAP3 00000444: SWAP2 00000445: SWAP1 00000446: POP 00000447: POP 00000448: POP 00000449: PUSH2 0x0d65 0000044c: JUMP 0000044d: JUMPDEST 0000044e: PUSH1 0x40 00000450: MLOAD 00000451: DUP1 00000452: DUP3 00000453: ISZERO 00000454: ISZERO 00000455: ISZERO 00000456: ISZERO 00000457: DUP2 00000458: MSTORE 00000459: PUSH1 0x20 0000045b: ADD 0000045c: SWAP2 0000045d: POP 0000045e: POP 0000045f: PUSH1 0x40 00000461: MLOAD 00000462: DUP1 00000463: SWAP2 00000464: SUB 00000465: SWAP1 00000466: RETURN 00000467: JUMPDEST 00000468: CALLVALUE 00000469: DUP1 0000046a: ISZERO 0000046b: PUSH2 0x0473 0000046e: JUMPI 0000046f: PUSH1 0x00 00000471: DUP1 00000472: REVERT 00000473: JUMPDEST 00000474: POP 00000475: PUSH2 0x047c 00000478: PUSH2 0x0fbe 0000047b: JUMP 0000047c: JUMPDEST 0000047d: PUSH1 0x40 0000047f: MLOAD 00000480: DUP1 00000481: DUP3 00000482: DUP2 00000483: MSTORE 00000484: PUSH1 0x20 00000486: ADD 00000487: SWAP2 00000488: POP 00000489: POP 0000048a: PUSH1 0x40 0000048c: MLOAD 0000048d: DUP1 0000048e: SWAP2 0000048f: SUB 00000490: SWAP1 00000491: RETURN 00000492: JUMPDEST 00000493: CALLVALUE 00000494: DUP1 00000495: ISZERO 00000496: PUSH2 0x049e 00000499: JUMPI 0000049a: PUSH1 0x00 0000049c: DUP1 0000049d: REVERT 0000049e: JUMPDEST 0000049f: POP 000004a0: PUSH2 0x04df 000004a3: PUSH1 0x04 000004a5: DUP1 000004a6: CALLDATASIZE 000004a7: SUB 000004a8: DUP2 000004a9: ADD 000004aa: SWAP1 000004ab: DUP1 000004ac: DUP1 000004ad: CALLDATALOAD 000004ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004c3: AND 000004c4: SWAP1 000004c5: PUSH1 0x20 000004c7: ADD 000004c8: SWAP1 000004c9: SWAP3 000004ca: SWAP2 000004cb: SWAP1 000004cc: DUP1 000004cd: CALLDATALOAD 000004ce: ISZERO 000004cf: ISZERO 000004d0: SWAP1 000004d1: PUSH1 0x20 000004d3: ADD 000004d4: SWAP1 000004d5: SWAP3 000004d6: SWAP2 000004d7: SWAP1 000004d8: POP 000004d9: POP 000004da: POP 000004db: PUSH2 0x0fef 000004de: JUMP 000004df: JUMPDEST 000004e0: STOP 000004e1: JUMPDEST 000004e2: CALLVALUE 000004e3: DUP1 000004e4: ISZERO 000004e5: PUSH2 0x04ed 000004e8: JUMPI 000004e9: PUSH1 0x00 000004eb: DUP1 000004ec: REVERT 000004ed: JUMPDEST 000004ee: POP 000004ef: PUSH2 0x0522 000004f2: PUSH1 0x04 000004f4: DUP1 000004f5: CALLDATASIZE 000004f6: SUB 000004f7: DUP2 000004f8: ADD 000004f9: SWAP1 000004fa: DUP1 000004fb: DUP1 000004fc: CALLDATALOAD 000004fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000512: AND 00000513: SWAP1 00000514: PUSH1 0x20 00000516: ADD 00000517: SWAP1 00000518: SWAP3 00000519: SWAP2 0000051a: SWAP1 0000051b: POP 0000051c: POP 0000051d: POP 0000051e: PUSH2 0x10e1 00000521: JUMP 00000522: JUMPDEST 00000523: PUSH1 0x40 00000525: MLOAD 00000526: DUP1 00000527: DUP3 00000528: ISZERO 00000529: ISZERO 0000052a: ISZERO 0000052b: ISZERO 0000052c: DUP2 0000052d: MSTORE 0000052e: PUSH1 0x20 00000530: ADD 00000531: SWAP2 00000532: POP 00000533: POP 00000534: PUSH1 0x40 00000536: MLOAD 00000537: DUP1 00000538: SWAP2 00000539: SUB 0000053a: SWAP1 0000053b: RETURN 0000053c: JUMPDEST 0000053d: CALLVALUE 0000053e: DUP1 0000053f: ISZERO 00000540: PUSH2 0x0548 00000543: JUMPI 00000544: PUSH1 0x00 00000546: DUP1 00000547: REVERT 00000548: JUMPDEST 00000549: POP 0000054a: PUSH2 0x0567 0000054d: PUSH1 0x04 0000054f: DUP1 00000550: CALLDATASIZE 00000551: SUB 00000552: DUP2 00000553: ADD 00000554: SWAP1 00000555: DUP1 00000556: DUP1 00000557: CALLDATALOAD 00000558: SWAP1 00000559: PUSH1 0x20 0000055b: ADD 0000055c: SWAP1 0000055d: SWAP3 0000055e: SWAP2 0000055f: SWAP1 00000560: POP 00000561: POP 00000562: POP 00000563: PUSH2 0x1101 00000566: JUMP 00000567: JUMPDEST 00000568: PUSH1 0x40 0000056a: MLOAD 0000056b: DUP1 0000056c: DUP3 0000056d: ISZERO 0000056e: ISZERO 0000056f: ISZERO 00000570: ISZERO 00000571: DUP2 00000572: MSTORE 00000573: PUSH1 0x20 00000575: ADD 00000576: SWAP2 00000577: POP 00000578: POP 00000579: PUSH1 0x40 0000057b: MLOAD 0000057c: DUP1 0000057d: SWAP2 0000057e: SUB 0000057f: SWAP1 00000580: RETURN 00000581: JUMPDEST 00000582: CALLVALUE 00000583: DUP1 00000584: ISZERO 00000585: PUSH2 0x058d 00000588: JUMPI 00000589: PUSH1 0x00 0000058b: DUP1 0000058c: REVERT 0000058d: JUMPDEST 0000058e: POP 0000058f: PUSH2 0x05ac 00000592: PUSH1 0x04 00000594: DUP1 00000595: CALLDATASIZE 00000596: SUB 00000597: DUP2 00000598: ADD 00000599: SWAP1 0000059a: DUP1 0000059b: DUP1 0000059c: CALLDATALOAD 0000059d: SWAP1 0000059e: PUSH1 0x20 000005a0: ADD 000005a1: SWAP1 000005a2: SWAP3 000005a3: SWAP2 000005a4: SWAP1 000005a5: POP 000005a6: POP 000005a7: POP 000005a8: PUSH2 0x116e 000005ab: JUMP 000005ac: JUMPDEST 000005ad: PUSH1 0x40 000005af: MLOAD 000005b0: DUP1 000005b1: DUP3 000005b2: ISZERO 000005b3: ISZERO 000005b4: ISZERO 000005b5: ISZERO 000005b6: DUP2 000005b7: MSTORE 000005b8: PUSH1 0x20 000005ba: ADD 000005bb: SWAP2 000005bc: POP 000005bd: POP 000005be: PUSH1 0x40 000005c0: MLOAD 000005c1: DUP1 000005c2: SWAP2 000005c3: SUB 000005c4: SWAP1 000005c5: RETURN 000005c6: JUMPDEST 000005c7: CALLVALUE 000005c8: DUP1 000005c9: ISZERO 000005ca: PUSH2 0x05d2 000005cd: JUMPI 000005ce: PUSH1 0x00 000005d0: DUP1 000005d1: REVERT 000005d2: JUMPDEST 000005d3: POP 000005d4: PUSH2 0x0607 000005d7: PUSH1 0x04 000005d9: DUP1 000005da: CALLDATASIZE 000005db: SUB 000005dc: DUP2 000005dd: ADD 000005de: SWAP1 000005df: DUP1 000005e0: DUP1 000005e1: CALLDATALOAD 000005e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005f7: AND 000005f8: SWAP1 000005f9: PUSH1 0x20 000005fb: ADD 000005fc: SWAP1 000005fd: SWAP3 000005fe: SWAP2 000005ff: SWAP1 00000600: POP 00000601: POP 00000602: POP 00000603: PUSH2 0x1304 00000606: JUMP 00000607: JUMPDEST 00000608: STOP 00000609: JUMPDEST 0000060a: CALLVALUE 0000060b: DUP1 0000060c: ISZERO 0000060d: PUSH2 0x0615 00000610: JUMPI 00000611: PUSH1 0x00 00000613: DUP1 00000614: REVERT 00000615: JUMPDEST 00000616: POP 00000617: PUSH2 0x0634 0000061a: PUSH1 0x04 0000061c: DUP1 0000061d: CALLDATASIZE 0000061e: SUB 0000061f: DUP2 00000620: ADD 00000621: SWAP1 00000622: DUP1 00000623: DUP1 00000624: CALLDATALOAD 00000625: SWAP1 00000626: PUSH1 0x20 00000628: ADD 00000629: SWAP1 0000062a: SWAP3 0000062b: SWAP2 0000062c: SWAP1 0000062d: POP 0000062e: POP 0000062f: POP 00000630: PUSH2 0x13de 00000633: JUMP 00000634: JUMPDEST 00000635: PUSH1 0x40 00000637: MLOAD 00000638: DUP1 00000639: DUP3 0000063a: ISZERO 0000063b: ISZERO 0000063c: ISZERO 0000063d: ISZERO 0000063e: DUP2 0000063f: MSTORE 00000640: PUSH1 0x20 00000642: ADD 00000643: SWAP2 00000644: POP 00000645: POP 00000646: PUSH1 0x40 00000648: MLOAD 00000649: DUP1 0000064a: SWAP2 0000064b: SUB 0000064c: SWAP1 0000064d: RETURN 0000064e: JUMPDEST 0000064f: PUSH1 0x03 00000651: DUP1 00000652: SLOAD 00000653: PUSH1 0x01 00000655: DUP2 00000656: PUSH1 0x01 00000658: AND 00000659: ISZERO 0000065a: PUSH2 0x0100 0000065d: MUL 0000065e: SUB 0000065f: AND 00000660: PUSH1 0x02 00000662: SWAP1 00000663: DIV 00000664: DUP1 00000665: PUSH1 0x1f 00000667: ADD 00000668: PUSH1 0x20 0000066a: DUP1 0000066b: SWAP2 0000066c: DIV 0000066d: MUL 0000066e: PUSH1 0x20 00000670: ADD 00000671: PUSH1 0x40 00000673: MLOAD 00000674: SWAP1 00000675: DUP2 00000676: ADD 00000677: PUSH1 0x40 00000679: MSTORE 0000067a: DUP1 0000067b: SWAP3 0000067c: SWAP2 0000067d: SWAP1 0000067e: DUP2 0000067f: DUP2 00000680: MSTORE 00000681: PUSH1 0x20 00000683: ADD 00000684: DUP3 00000685: DUP1 00000686: SLOAD 00000687: PUSH1 0x01 00000689: DUP2 0000068a: PUSH1 0x01 0000068c: AND 0000068d: ISZERO 0000068e: PUSH2 0x0100 00000691: MUL 00000692: SUB 00000693: AND 00000694: PUSH1 0x02 00000696: SWAP1 00000697: DIV 00000698: DUP1 00000699: ISZERO 0000069a: PUSH2 0x06e4 0000069d: JUMPI 0000069e: DUP1 0000069f: PUSH1 0x1f 000006a1: LT 000006a2: PUSH2 0x06b9 000006a5: JUMPI 000006a6: PUSH2 0x0100 000006a9: DUP1 000006aa: DUP4 000006ab: SLOAD 000006ac: DIV 000006ad: MUL 000006ae: DUP4 000006af: MSTORE 000006b0: SWAP2 000006b1: PUSH1 0x20 000006b3: ADD 000006b4: SWAP2 000006b5: PUSH2 0x06e4 000006b8: JUMP 000006b9: JUMPDEST 000006ba: DUP3 000006bb: ADD 000006bc: SWAP2 000006bd: SWAP1 000006be: PUSH1 0x00 000006c0: MSTORE 000006c1: PUSH1 0x20 000006c3: PUSH1 0x00 000006c5: KECCAK256 000006c6: SWAP1 000006c7: JUMPDEST 000006c8: DUP2 000006c9: SLOAD 000006ca: DUP2 000006cb: MSTORE 000006cc: SWAP1 000006cd: PUSH1 0x01 000006cf: ADD 000006d0: SWAP1 000006d1: PUSH1 0x20 000006d3: ADD 000006d4: DUP1 000006d5: DUP4 000006d6: GT 000006d7: PUSH2 0x06c7 000006da: JUMPI 000006db: DUP3 000006dc: SWAP1 000006dd: SUB 000006de: PUSH1 0x1f 000006e0: AND 000006e1: DUP3 000006e2: ADD 000006e3: SWAP2 000006e4: JUMPDEST 000006e5: POP 000006e6: POP 000006e7: POP 000006e8: POP 000006e9: POP 000006ea: DUP2 000006eb: JUMP 000006ec: JUMPDEST 000006ed: PUSH1 0x00 000006ef: DUP1 000006f0: PUSH1 0x00 000006f2: SWAP1 000006f3: SLOAD 000006f4: SWAP1 000006f5: PUSH2 0x0100 000006f8: EXP 000006f9: SWAP1 000006fa: DIV 000006fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000710: AND 00000711: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000726: AND 00000727: CALLER 00000728: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000073d: AND 0000073e: EQ 0000073f: ISZERO 00000740: ISZERO 00000741: PUSH2 0x0749 00000744: JUMPI 00000745: PUSH1 0x00 00000747: DUP1 00000748: REVERT 00000749: JUMPDEST 0000074a: PUSH1 0x08 0000074c: PUSH1 0x00 0000074e: SWAP1 0000074f: SLOAD 00000750: SWAP1 00000751: PUSH2 0x0100 00000754: EXP 00000755: SWAP1 00000756: DIV 00000757: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000076c: AND 0000076d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000782: AND 00000783: PUSH4 0x23b872dd 00000788: CALLER 00000789: ADDRESS 0000078a: DUP6 0000078b: PUSH1 0x40 0000078d: MLOAD 0000078e: DUP5 0000078f: PUSH4 0xffffffff 00000794: AND 00000795: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000007b3: MUL 000007b4: DUP2 000007b5: MSTORE 000007b6: PUSH1 0x04 000007b8: ADD 000007b9: DUP1 000007ba: DUP5 000007bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007d0: AND 000007d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007e6: AND 000007e7: DUP2 000007e8: MSTORE 000007e9: PUSH1 0x20 000007eb: ADD 000007ec: DUP4 000007ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000802: AND 00000803: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000818: AND 00000819: DUP2 0000081a: MSTORE 0000081b: PUSH1 0x20 0000081d: ADD 0000081e: DUP3 0000081f: DUP2 00000820: MSTORE 00000821: PUSH1 0x20 00000823: ADD 00000824: SWAP4 00000825: POP 00000826: POP 00000827: POP 00000828: POP 00000829: PUSH1 0x00 0000082b: PUSH1 0x40 0000082d: MLOAD 0000082e: DUP1 0000082f: DUP4 00000830: SUB 00000831: DUP2 00000832: PUSH1 0x00 00000834: DUP8 00000835: DUP1 00000836: EXTCODESIZE 00000837: ISZERO 00000838: DUP1 00000839: ISZERO 0000083a: PUSH2 0x0842 0000083d: JUMPI 0000083e: PUSH1 0x00 00000840: DUP1 00000841: REVERT 00000842: JUMPDEST 00000843: POP 00000844: GAS 00000845: CALL 00000846: ISZERO 00000847: DUP1 00000848: ISZERO 00000849: PUSH2 0x0856 0000084c: JUMPI 0000084d: RETURNDATASIZE 0000084e: PUSH1 0x00 00000850: DUP1 00000851: RETURNDATACOPY 00000852: RETURNDATASIZE 00000853: PUSH1 0x00 00000855: REVERT 00000856: JUMPDEST 00000857: POP 00000858: POP 00000859: POP 0000085a: POP 0000085b: PUSH2 0x086f 0000085e: DUP3 0000085f: PUSH1 0x04 00000861: SLOAD 00000862: PUSH2 0x155d 00000865: SWAP1 00000866: SWAP2 00000867: SWAP1 00000868: PUSH4 0xffffffff 0000086d: AND 0000086e: JUMP 0000086f: JUMPDEST 00000870: PUSH1 0x04 00000872: DUP2 00000873: SWAP1 00000874: SSTORE 00000875: POP 00000876: PUSH1 0x01 00000878: SWAP1 00000879: POP 0000087a: SWAP2 0000087b: SWAP1 0000087c: POP 0000087d: JUMP 0000087e: JUMPDEST 0000087f: PUSH1 0x06 00000881: SLOAD 00000882: DUP2 00000883: JUMP 00000884: JUMPDEST 00000885: PUSH1 0x00 00000887: DUP1 00000888: SWAP1 00000889: SLOAD 0000088a: SWAP1 0000088b: PUSH2 0x0100 0000088e: EXP 0000088f: SWAP1 00000890: DIV 00000891: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008a6: AND 000008a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008bc: AND 000008bd: CALLER 000008be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008d3: AND 000008d4: EQ 000008d5: ISZERO 000008d6: ISZERO 000008d7: PUSH2 0x08df 000008da: JUMPI 000008db: PUSH1 0x00 000008dd: DUP1 000008de: REVERT 000008df: JUMPDEST 000008e0: PUSH1 0x02 000008e2: PUSH1 0x00 000008e4: SWAP1 000008e5: SLOAD 000008e6: SWAP1 000008e7: PUSH2 0x0100 000008ea: EXP 000008eb: SWAP1 000008ec: DIV 000008ed: PUSH1 0xff 000008ef: AND 000008f0: ISZERO 000008f1: ISZERO 000008f2: PUSH2 0x08fa 000008f5: JUMPI 000008f6: PUSH1 0x00 000008f8: DUP1 000008f9: REVERT 000008fa: JUMPDEST 000008fb: PUSH1 0x00 000008fd: PUSH1 0x02 000008ff: PUSH1 0x00 00000901: PUSH2 0x0100 00000904: EXP 00000905: DUP2 00000906: SLOAD 00000907: DUP2 00000908: PUSH1 0xff 0000090a: MUL 0000090b: NOT 0000090c: AND 0000090d: SWAP1 0000090e: DUP4 0000090f: ISZERO 00000910: ISZERO 00000911: MUL 00000912: OR 00000913: SWAP1 00000914: SSTORE 00000915: POP 00000916: PUSH32 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33 00000937: PUSH1 0x40 00000939: MLOAD 0000093a: PUSH1 0x40 0000093c: MLOAD 0000093d: DUP1 0000093e: SWAP2 0000093f: SUB 00000940: SWAP1 00000941: LOG1 00000942: JUMP 00000943: JUMPDEST 00000944: PUSH1 0x04 00000946: SLOAD 00000947: DUP2 00000948: JUMP 00000949: JUMPDEST 0000094a: PUSH1 0x07 0000094c: PUSH1 0x00 0000094e: SWAP1 0000094f: SLOAD 00000950: SWAP1 00000951: PUSH2 0x0100 00000954: EXP 00000955: SWAP1 00000956: DIV 00000957: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000096c: AND 0000096d: DUP2 0000096e: JUMP 0000096f: JUMPDEST 00000970: PUSH1 0x00 00000972: DUP1 00000973: PUSH1 0x00 00000975: SWAP1 00000976: SLOAD 00000977: SWAP1 00000978: PUSH2 0x0100 0000097b: EXP 0000097c: SWAP1 0000097d: DIV 0000097e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000993: AND 00000994: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009a9: AND 000009aa: CALLER 000009ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009c0: AND 000009c1: EQ 000009c2: ISZERO 000009c3: ISZERO 000009c4: PUSH2 0x09cc 000009c7: JUMPI 000009c8: PUSH1 0x00 000009ca: DUP1 000009cb: REVERT 000009cc: JUMPDEST 000009cd: PUSH1 0x08 000009cf: PUSH1 0x00 000009d1: SWAP1 000009d2: SLOAD 000009d3: SWAP1 000009d4: PUSH2 0x0100 000009d7: EXP 000009d8: SWAP1 000009d9: DIV 000009da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009ef: AND 000009f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a05: AND 00000a06: PUSH4 0xa9059cbb 00000a0b: PUSH1 0x00 00000a0d: DUP1 00000a0e: SWAP1 00000a0f: SLOAD 00000a10: SWAP1 00000a11: PUSH2 0x0100 00000a14: EXP 00000a15: SWAP1 00000a16: DIV 00000a17: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a2c: AND 00000a2d: DUP5 00000a2e: PUSH1 0x40 00000a30: MLOAD 00000a31: DUP4 00000a32: PUSH4 0xffffffff 00000a37: AND 00000a38: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000a56: MUL 00000a57: DUP2 00000a58: MSTORE 00000a59: PUSH1 0x04 00000a5b: ADD 00000a5c: DUP1 00000a5d: DUP4 00000a5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a73: AND 00000a74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a89: AND 00000a8a: DUP2 00000a8b: MSTORE 00000a8c: PUSH1 0x20 00000a8e: ADD 00000a8f: DUP3 00000a90: DUP2 00000a91: MSTORE 00000a92: PUSH1 0x20 00000a94: ADD 00000a95: SWAP3 00000a96: POP 00000a97: POP 00000a98: POP 00000a99: PUSH1 0x00 00000a9b: PUSH1 0x40 00000a9d: MLOAD 00000a9e: DUP1 00000a9f: DUP4 00000aa0: SUB 00000aa1: DUP2 00000aa2: PUSH1 0x00 00000aa4: DUP8 00000aa5: DUP1 00000aa6: EXTCODESIZE 00000aa7: ISZERO 00000aa8: DUP1 00000aa9: ISZERO 00000aaa: PUSH2 0x0ab2 00000aad: JUMPI 00000aae: PUSH1 0x00 00000ab0: DUP1 00000ab1: REVERT 00000ab2: JUMPDEST 00000ab3: POP 00000ab4: GAS 00000ab5: CALL 00000ab6: ISZERO 00000ab7: DUP1 00000ab8: ISZERO 00000ab9: PUSH2 0x0ac6 00000abc: JUMPI 00000abd: RETURNDATASIZE 00000abe: PUSH1 0x00 00000ac0: DUP1 00000ac1: RETURNDATACOPY 00000ac2: RETURNDATASIZE 00000ac3: PUSH1 0x00 00000ac5: REVERT 00000ac6: JUMPDEST 00000ac7: POP 00000ac8: POP 00000ac9: POP 00000aca: POP 00000acb: PUSH1 0x01 00000acd: SWAP1 00000ace: POP 00000acf: SWAP2 00000ad0: SWAP1 00000ad1: POP 00000ad2: JUMP 00000ad3: JUMPDEST 00000ad4: PUSH1 0x02 00000ad6: PUSH1 0x00 00000ad8: SWAP1 00000ad9: SLOAD 00000ada: SWAP1 00000adb: PUSH2 0x0100 00000ade: EXP 00000adf: SWAP1 00000ae0: DIV 00000ae1: PUSH1 0xff 00000ae3: AND 00000ae4: DUP2 00000ae5: JUMP 00000ae6: JUMPDEST 00000ae7: PUSH1 0x05 00000ae9: SLOAD 00000aea: DUP2 00000aeb: JUMP 00000aec: JUMPDEST 00000aed: PUSH1 0x00 00000aef: DUP1 00000af0: SWAP1 00000af1: SLOAD 00000af2: SWAP1 00000af3: PUSH2 0x0100 00000af6: EXP 00000af7: SWAP1 00000af8: DIV 00000af9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b0e: AND 00000b0f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b24: AND 00000b25: CALLER 00000b26: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b3b: AND 00000b3c: EQ 00000b3d: ISZERO 00000b3e: ISZERO 00000b3f: PUSH2 0x0b47 00000b42: JUMPI 00000b43: PUSH1 0x00 00000b45: DUP1 00000b46: REVERT 00000b47: JUMPDEST 00000b48: PUSH1 0x02 00000b4a: PUSH1 0x00 00000b4c: SWAP1 00000b4d: SLOAD 00000b4e: SWAP1 00000b4f: PUSH2 0x0100 00000b52: EXP 00000b53: SWAP1 00000b54: DIV 00000b55: PUSH1 0xff 00000b57: AND 00000b58: ISZERO 00000b59: ISZERO 00000b5a: ISZERO 00000b5b: PUSH2 0x0b63 00000b5e: JUMPI 00000b5f: PUSH1 0x00 00000b61: DUP1 00000b62: REVERT 00000b63: JUMPDEST 00000b64: PUSH1 0x01 00000b66: PUSH1 0x02 00000b68: PUSH1 0x00 00000b6a: PUSH2 0x0100 00000b6d: EXP 00000b6e: DUP2 00000b6f: SLOAD 00000b70: DUP2 00000b71: PUSH1 0xff 00000b73: MUL 00000b74: NOT 00000b75: AND 00000b76: SWAP1 00000b77: DUP4 00000b78: ISZERO 00000b79: ISZERO 00000b7a: MUL 00000b7b: OR 00000b7c: SWAP1 00000b7d: SSTORE 00000b7e: POP 00000b7f: PUSH32 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625 00000ba0: PUSH1 0x40 00000ba2: MLOAD 00000ba3: PUSH1 0x40 00000ba5: MLOAD 00000ba6: DUP1 00000ba7: SWAP2 00000ba8: SUB 00000ba9: SWAP1 00000baa: LOG1 00000bab: JUMP 00000bac: JUMPDEST 00000bad: PUSH1 0x00 00000baf: PUSH1 0x01 00000bb1: ISZERO 00000bb2: ISZERO 00000bb3: PUSH1 0x01 00000bb5: PUSH1 0x00 00000bb7: CALLER 00000bb8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bcd: AND 00000bce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000be3: AND 00000be4: DUP2 00000be5: MSTORE 00000be6: PUSH1 0x20 00000be8: ADD 00000be9: SWAP1 00000bea: DUP2 00000beb: MSTORE 00000bec: PUSH1 0x20 00000bee: ADD 00000bef: PUSH1 0x00 00000bf1: KECCAK256 00000bf2: PUSH1 0x00 00000bf4: SWAP1 00000bf5: SLOAD 00000bf6: SWAP1 00000bf7: PUSH2 0x0100 00000bfa: EXP 00000bfb: SWAP1 00000bfc: DIV 00000bfd: PUSH1 0xff 00000bff: AND 00000c00: ISZERO 00000c01: ISZERO 00000c02: EQ 00000c03: ISZERO 00000c04: ISZERO 00000c05: PUSH2 0x0c0d 00000c08: JUMPI 00000c09: PUSH1 0x00 00000c0b: DUP1 00000c0c: REVERT 00000c0d: JUMPDEST 00000c0e: PUSH1 0x02 00000c10: PUSH1 0x00 00000c12: SWAP1 00000c13: SLOAD 00000c14: SWAP1 00000c15: PUSH2 0x0100 00000c18: EXP 00000c19: SWAP1 00000c1a: DIV 00000c1b: PUSH1 0xff 00000c1d: AND 00000c1e: ISZERO 00000c1f: ISZERO 00000c20: ISZERO 00000c21: PUSH2 0x0c29 00000c24: JUMPI 00000c25: PUSH1 0x00 00000c27: DUP1 00000c28: REVERT 00000c29: JUMPDEST 00000c2a: PUSH2 0x0c31 00000c2d: PUSH2 0x0fbe 00000c30: JUMP 00000c31: JUMPDEST 00000c32: DUP3 00000c33: GT 00000c34: ISZERO 00000c35: ISZERO 00000c36: ISZERO 00000c37: PUSH2 0x0c3f 00000c3a: JUMPI 00000c3b: PUSH1 0x00 00000c3d: DUP1 00000c3e: REVERT 00000c3f: JUMPDEST 00000c40: PUSH1 0x08 00000c42: PUSH1 0x00 00000c44: SWAP1 00000c45: SLOAD 00000c46: SWAP1 00000c47: PUSH2 0x0100 00000c4a: EXP 00000c4b: SWAP1 00000c4c: DIV 00000c4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c62: AND 00000c63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c78: AND 00000c79: PUSH4 0xa9059cbb 00000c7e: CALLER 00000c7f: DUP5 00000c80: PUSH1 0x40 00000c82: MLOAD 00000c83: DUP4 00000c84: PUSH4 0xffffffff 00000c89: AND 00000c8a: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000ca8: MUL 00000ca9: DUP2 00000caa: MSTORE 00000cab: PUSH1 0x04 00000cad: ADD 00000cae: DUP1 00000caf: DUP4 00000cb0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cc5: AND 00000cc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cdb: AND 00000cdc: DUP2 00000cdd: MSTORE 00000cde: PUSH1 0x20 00000ce0: ADD 00000ce1: DUP3 00000ce2: DUP2 00000ce3: MSTORE 00000ce4: PUSH1 0x20 00000ce6: ADD 00000ce7: SWAP3 00000ce8: POP 00000ce9: POP 00000cea: POP 00000ceb: PUSH1 0x00 00000ced: PUSH1 0x40 00000cef: MLOAD 00000cf0: DUP1 00000cf1: DUP4 00000cf2: SUB 00000cf3: DUP2 00000cf4: PUSH1 0x00 00000cf6: DUP8 00000cf7: DUP1 00000cf8: EXTCODESIZE 00000cf9: ISZERO 00000cfa: DUP1 00000cfb: ISZERO 00000cfc: PUSH2 0x0d04 00000cff: JUMPI 00000d00: PUSH1 0x00 00000d02: DUP1 00000d03: REVERT 00000d04: JUMPDEST 00000d05: POP 00000d06: GAS 00000d07: CALL 00000d08: ISZERO 00000d09: DUP1 00000d0a: ISZERO 00000d0b: PUSH2 0x0d18 00000d0e: JUMPI 00000d0f: RETURNDATASIZE 00000d10: PUSH1 0x00 00000d12: DUP1 00000d13: RETURNDATACOPY 00000d14: RETURNDATASIZE 00000d15: PUSH1 0x00 00000d17: REVERT 00000d18: JUMPDEST 00000d19: POP 00000d1a: POP 00000d1b: POP 00000d1c: POP 00000d1d: PUSH2 0x0d31 00000d20: DUP3 00000d21: PUSH1 0x04 00000d23: SLOAD 00000d24: PUSH2 0x157e 00000d27: SWAP1 00000d28: SWAP2 00000d29: SWAP1 00000d2a: PUSH4 0xffffffff 00000d2f: AND 00000d30: JUMP 00000d31: JUMPDEST 00000d32: PUSH1 0x04 00000d34: DUP2 00000d35: SWAP1 00000d36: SSTORE 00000d37: POP 00000d38: PUSH1 0x01 00000d3a: SWAP1 00000d3b: POP 00000d3c: SWAP2 00000d3d: SWAP1 00000d3e: POP 00000d3f: JUMP 00000d40: JUMPDEST 00000d41: PUSH1 0x00 00000d43: DUP1 00000d44: SWAP1 00000d45: SLOAD 00000d46: SWAP1 00000d47: PUSH2 0x0100 00000d4a: EXP 00000d4b: SWAP1 00000d4c: DIV 00000d4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d62: AND 00000d63: DUP2 00000d64: JUMP 00000d65: JUMPDEST 00000d66: PUSH1 0x00 00000d68: PUSH1 0x01 00000d6a: ISZERO 00000d6b: ISZERO 00000d6c: PUSH1 0x01 00000d6e: PUSH1 0x00 00000d70: CALLER 00000d71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d86: AND 00000d87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d9c: AND 00000d9d: DUP2 00000d9e: MSTORE 00000d9f: PUSH1 0x20 00000da1: ADD 00000da2: SWAP1 00000da3: DUP2 00000da4: MSTORE 00000da5: PUSH1 0x20 00000da7: ADD 00000da8: PUSH1 0x00 00000daa: KECCAK256 00000dab: PUSH1 0x00 00000dad: SWAP1 00000dae: SLOAD 00000daf: SWAP1 00000db0: PUSH2 0x0100 00000db3: EXP 00000db4: SWAP1 00000db5: DIV 00000db6: PUSH1 0xff 00000db8: AND 00000db9: ISZERO 00000dba: ISZERO 00000dbb: EQ 00000dbc: ISZERO 00000dbd: ISZERO 00000dbe: PUSH2 0x0dc6 00000dc1: JUMPI 00000dc2: PUSH1 0x00 00000dc4: DUP1 00000dc5: REVERT 00000dc6: JUMPDEST 00000dc7: PUSH1 0x08 00000dc9: PUSH1 0x00 00000dcb: SWAP1 00000dcc: SLOAD 00000dcd: SWAP1 00000dce: PUSH2 0x0100 00000dd1: EXP 00000dd2: SWAP1 00000dd3: DIV 00000dd4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000de9: AND 00000dea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dff: AND 00000e00: PUSH4 0x23b872dd 00000e05: DUP5 00000e06: ADDRESS 00000e07: DUP6 00000e08: PUSH1 0x40 00000e0a: MLOAD 00000e0b: DUP5 00000e0c: PUSH4 0xffffffff 00000e11: AND 00000e12: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000e30: MUL 00000e31: DUP2 00000e32: MSTORE 00000e33: PUSH1 0x04 00000e35: ADD 00000e36: DUP1 00000e37: DUP5 00000e38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e4d: AND 00000e4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e63: AND 00000e64: DUP2 00000e65: MSTORE 00000e66: PUSH1 0x20 00000e68: ADD 00000e69: DUP4 00000e6a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e7f: AND 00000e80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e95: AND 00000e96: DUP2 00000e97: MSTORE 00000e98: PUSH1 0x20 00000e9a: ADD 00000e9b: DUP3 00000e9c: DUP2 00000e9d: MSTORE 00000e9e: PUSH1 0x20 00000ea0: ADD 00000ea1: SWAP4 00000ea2: POP 00000ea3: POP 00000ea4: POP 00000ea5: POP 00000ea6: PUSH1 0x00 00000ea8: PUSH1 0x40 00000eaa: MLOAD 00000eab: DUP1 00000eac: DUP4 00000ead: SUB 00000eae: DUP2 00000eaf: PUSH1 0x00 00000eb1: DUP8 00000eb2: DUP1 00000eb3: EXTCODESIZE 00000eb4: ISZERO 00000eb5: DUP1 00000eb6: ISZERO 00000eb7: PUSH2 0x0ebf 00000eba: JUMPI 00000ebb: PUSH1 0x00 00000ebd: DUP1 00000ebe: REVERT 00000ebf: JUMPDEST 00000ec0: POP 00000ec1: GAS 00000ec2: CALL 00000ec3: ISZERO 00000ec4: DUP1 00000ec5: ISZERO 00000ec6: PUSH2 0x0ed3 00000ec9: JUMPI 00000eca: RETURNDATASIZE 00000ecb: PUSH1 0x00 00000ecd: DUP1 00000ece: RETURNDATACOPY 00000ecf: RETURNDATASIZE 00000ed0: PUSH1 0x00 00000ed2: REVERT 00000ed3: JUMPDEST 00000ed4: POP 00000ed5: POP 00000ed6: POP 00000ed7: POP 00000ed8: PUSH1 0x08 00000eda: PUSH1 0x00 00000edc: SWAP1 00000edd: SLOAD 00000ede: SWAP1 00000edf: PUSH2 0x0100 00000ee2: EXP 00000ee3: SWAP1 00000ee4: DIV 00000ee5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000efa: AND 00000efb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f10: AND 00000f11: PUSH4 0xa9059cbb 00000f16: CALLER 00000f17: DUP5 00000f18: PUSH1 0x40 00000f1a: MLOAD 00000f1b: DUP4 00000f1c: PUSH4 0xffffffff 00000f21: AND 00000f22: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000f40: MUL 00000f41: DUP2 00000f42: MSTORE 00000f43: PUSH1 0x04 00000f45: ADD 00000f46: DUP1 00000f47: DUP4 00000f48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f5d: AND 00000f5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f73: AND 00000f74: DUP2 00000f75: MSTORE 00000f76: PUSH1 0x20 00000f78: ADD 00000f79: DUP3 00000f7a: DUP2 00000f7b: MSTORE 00000f7c: PUSH1 0x20 00000f7e: ADD 00000f7f: SWAP3 00000f80: POP 00000f81: POP 00000f82: POP 00000f83: PUSH1 0x00 00000f85: PUSH1 0x40 00000f87: MLOAD 00000f88: DUP1 00000f89: DUP4 00000f8a: SUB 00000f8b: DUP2 00000f8c: PUSH1 0x00 00000f8e: DUP8 00000f8f: DUP1 00000f90: EXTCODESIZE 00000f91: ISZERO 00000f92: DUP1 00000f93: ISZERO 00000f94: PUSH2 0x0f9c 00000f97: JUMPI 00000f98: PUSH1 0x00 00000f9a: DUP1 00000f9b: REVERT 00000f9c: JUMPDEST 00000f9d: POP 00000f9e: GAS 00000f9f: CALL 00000fa0: ISZERO 00000fa1: DUP1 00000fa2: ISZERO 00000fa3: PUSH2 0x0fb0 00000fa6: JUMPI 00000fa7: RETURNDATASIZE 00000fa8: PUSH1 0x00 00000faa: DUP1 00000fab: RETURNDATACOPY 00000fac: RETURNDATASIZE 00000fad: PUSH1 0x00 00000faf: REVERT 00000fb0: JUMPDEST 00000fb1: POP 00000fb2: POP 00000fb3: POP 00000fb4: POP 00000fb5: PUSH1 0x01 00000fb7: SWAP1 00000fb8: POP 00000fb9: SWAP3 00000fba: SWAP2 00000fbb: POP 00000fbc: POP 00000fbd: JUMP 00000fbe: JUMPDEST 00000fbf: PUSH1 0x00 00000fc1: PUSH2 0x0fea 00000fc4: PUSH1 0x64 00000fc6: PUSH2 0x0fdc 00000fc9: PUSH1 0x05 00000fcb: SLOAD 00000fcc: PUSH1 0x04 00000fce: SLOAD 00000fcf: PUSH2 0x159f 00000fd2: SWAP1 00000fd3: SWAP2 00000fd4: SWAP1 00000fd5: PUSH4 0xffffffff 00000fda: AND 00000fdb: JUMP 00000fdc: JUMPDEST 00000fdd: PUSH2 0x15dd 00000fe0: SWAP1 00000fe1: SWAP2 00000fe2: SWAP1 00000fe3: PUSH4 0xffffffff 00000fe8: AND 00000fe9: JUMP 00000fea: JUMPDEST 00000feb: SWAP1 00000fec: POP 00000fed: SWAP1 00000fee: JUMP 00000fef: JUMPDEST 00000ff0: PUSH1 0x00 00000ff2: DUP1 00000ff3: SWAP1 00000ff4: SLOAD 00000ff5: SWAP1 00000ff6: PUSH2 0x0100 00000ff9: EXP 00000ffa: SWAP1 00000ffb: DIV 00000ffc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001011: AND 00001012: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001027: AND 00001028: CALLER 00001029: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000103e: AND 0000103f: EQ 00001040: ISZERO 00001041: ISZERO 00001042: PUSH2 0x104a 00001045: JUMPI 00001046: PUSH1 0x00 00001048: DUP1 00001049: REVERT 0000104a: JUMPDEST 0000104b: PUSH1 0x00 0000104d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001062: AND 00001063: DUP3 00001064: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001079: AND 0000107a: EQ 0000107b: ISZERO 0000107c: ISZERO 0000107d: ISZERO 0000107e: PUSH2 0x1086 00001081: JUMPI 00001082: PUSH1 0x00 00001084: DUP1 00001085: REVERT 00001086: JUMPDEST 00001087: DUP1 00001088: PUSH1 0x01 0000108a: PUSH1 0x00 0000108c: DUP5 0000108d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010a2: AND 000010a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010b8: AND 000010b9: DUP2 000010ba: MSTORE 000010bb: PUSH1 0x20 000010bd: ADD 000010be: SWAP1 000010bf: DUP2 000010c0: MSTORE 000010c1: PUSH1 0x20 000010c3: ADD 000010c4: PUSH1 0x00 000010c6: KECCAK256 000010c7: PUSH1 0x00 000010c9: PUSH2 0x0100 000010cc: EXP 000010cd: DUP2 000010ce: SLOAD 000010cf: DUP2 000010d0: PUSH1 0xff 000010d2: MUL 000010d3: NOT 000010d4: AND 000010d5: SWAP1 000010d6: DUP4 000010d7: ISZERO 000010d8: ISZERO 000010d9: MUL 000010da: OR 000010db: SWAP1 000010dc: SSTORE 000010dd: POP 000010de: POP 000010df: POP 000010e0: JUMP 000010e1: JUMPDEST 000010e2: PUSH1 0x01 000010e4: PUSH1 0x20 000010e6: MSTORE 000010e7: DUP1 000010e8: PUSH1 0x00 000010ea: MSTORE 000010eb: PUSH1 0x40 000010ed: PUSH1 0x00 000010ef: KECCAK256 000010f0: PUSH1 0x00 000010f2: SWAP2 000010f3: POP 000010f4: SLOAD 000010f5: SWAP1 000010f6: PUSH2 0x0100 000010f9: EXP 000010fa: SWAP1 000010fb: DIV 000010fc: PUSH1 0xff 000010fe: AND 000010ff: DUP2 00001100: JUMP 00001101: JUMPDEST 00001102: PUSH1 0x00 00001104: DUP1 00001105: PUSH1 0x00 00001107: SWAP1 00001108: SLOAD 00001109: SWAP1 0000110a: PUSH2 0x0100 0000110d: EXP 0000110e: SWAP1 0000110f: DIV 00001110: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001125: AND 00001126: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000113b: AND 0000113c: CALLER 0000113d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001152: AND 00001153: EQ 00001154: ISZERO 00001155: ISZERO 00001156: PUSH2 0x115e 00001159: JUMPI 0000115a: PUSH1 0x00 0000115c: DUP1 0000115d: REVERT 0000115e: JUMPDEST 0000115f: DUP2 00001160: PUSH1 0x05 00001162: DUP2 00001163: SWAP1 00001164: SSTORE 00001165: POP 00001166: PUSH1 0x01 00001168: SWAP1 00001169: POP 0000116a: SWAP2 0000116b: SWAP1 0000116c: POP 0000116d: JUMP 0000116e: JUMPDEST 0000116f: PUSH1 0x00 00001171: PUSH1 0x01 00001173: ISZERO 00001174: ISZERO 00001175: PUSH1 0x01 00001177: PUSH1 0x00 00001179: CALLER 0000117a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000118f: AND 00001190: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011a5: AND 000011a6: DUP2 000011a7: MSTORE 000011a8: PUSH1 0x20 000011aa: ADD 000011ab: SWAP1 000011ac: DUP2 000011ad: MSTORE 000011ae: PUSH1 0x20 000011b0: ADD 000011b1: PUSH1 0x00 000011b3: KECCAK256 000011b4: PUSH1 0x00 000011b6: SWAP1 000011b7: SLOAD 000011b8: SWAP1 000011b9: PUSH2 0x0100 000011bc: EXP 000011bd: SWAP1 000011be: DIV 000011bf: PUSH1 0xff 000011c1: AND 000011c2: ISZERO 000011c3: ISZERO 000011c4: EQ 000011c5: ISZERO 000011c6: ISZERO 000011c7: PUSH2 0x11cf 000011ca: JUMPI 000011cb: PUSH1 0x00 000011cd: DUP1 000011ce: REVERT 000011cf: JUMPDEST 000011d0: PUSH1 0x08 000011d2: PUSH1 0x00 000011d4: SWAP1 000011d5: SLOAD 000011d6: SWAP1 000011d7: PUSH2 0x0100 000011da: EXP 000011db: SWAP1 000011dc: DIV 000011dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011f2: AND 000011f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001208: AND 00001209: PUSH4 0x23b872dd 0000120e: CALLER 0000120f: ADDRESS 00001210: DUP6 00001211: PUSH1 0x40 00001213: MLOAD 00001214: DUP5 00001215: PUSH4 0xffffffff 0000121a: AND 0000121b: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00001239: MUL 0000123a: DUP2 0000123b: MSTORE 0000123c: PUSH1 0x04 0000123e: ADD 0000123f: DUP1 00001240: DUP5 00001241: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001256: AND 00001257: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000126c: AND 0000126d: DUP2 0000126e: MSTORE 0000126f: PUSH1 0x20 00001271: ADD 00001272: DUP4 00001273: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001288: AND 00001289: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000129e: AND 0000129f: DUP2 000012a0: MSTORE 000012a1: PUSH1 0x20 000012a3: ADD 000012a4: DUP3 000012a5: DUP2 000012a6: MSTORE 000012a7: PUSH1 0x20 000012a9: ADD 000012aa: SWAP4 000012ab: POP 000012ac: POP 000012ad: POP 000012ae: POP 000012af: PUSH1 0x00 000012b1: PUSH1 0x40 000012b3: MLOAD 000012b4: DUP1 000012b5: DUP4 000012b6: SUB 000012b7: DUP2 000012b8: PUSH1 0x00 000012ba: DUP8 000012bb: DUP1 000012bc: EXTCODESIZE 000012bd: ISZERO 000012be: DUP1 000012bf: ISZERO 000012c0: PUSH2 0x12c8 000012c3: JUMPI 000012c4: PUSH1 0x00 000012c6: DUP1 000012c7: REVERT 000012c8: JUMPDEST 000012c9: POP 000012ca: GAS 000012cb: CALL 000012cc: ISZERO 000012cd: DUP1 000012ce: ISZERO 000012cf: PUSH2 0x12dc 000012d2: JUMPI 000012d3: RETURNDATASIZE 000012d4: PUSH1 0x00 000012d6: DUP1 000012d7: RETURNDATACOPY 000012d8: RETURNDATASIZE 000012d9: PUSH1 0x00 000012db: REVERT 000012dc: JUMPDEST 000012dd: POP 000012de: POP 000012df: POP 000012e0: POP 000012e1: PUSH2 0x12f5 000012e4: DUP3 000012e5: PUSH1 0x04 000012e7: SLOAD 000012e8: PUSH2 0x155d 000012eb: SWAP1 000012ec: SWAP2 000012ed: SWAP1 000012ee: PUSH4 0xffffffff 000012f3: AND 000012f4: JUMP 000012f5: JUMPDEST 000012f6: PUSH1 0x04 000012f8: DUP2 000012f9: SWAP1 000012fa: SSTORE 000012fb: POP 000012fc: PUSH1 0x01 000012fe: SWAP1 000012ff: POP 00001300: SWAP2 00001301: SWAP1 00001302: POP 00001303: JUMP 00001304: JUMPDEST 00001305: PUSH1 0x00 00001307: DUP1 00001308: SWAP1 00001309: SLOAD 0000130a: SWAP1 0000130b: PUSH2 0x0100 0000130e: EXP 0000130f: SWAP1 00001310: DIV 00001311: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001326: AND 00001327: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000133c: AND 0000133d: CALLER 0000133e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001353: AND 00001354: EQ 00001355: ISZERO 00001356: ISZERO 00001357: PUSH2 0x135f 0000135a: JUMPI 0000135b: PUSH1 0x00 0000135d: DUP1 0000135e: REVERT 0000135f: JUMPDEST 00001360: PUSH1 0x00 00001362: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001377: AND 00001378: DUP2 00001379: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000138e: AND 0000138f: EQ 00001390: ISZERO 00001391: ISZERO 00001392: ISZERO 00001393: PUSH2 0x139b 00001396: JUMPI 00001397: PUSH1 0x00 00001399: DUP1 0000139a: REVERT 0000139b: JUMPDEST 0000139c: DUP1 0000139d: PUSH1 0x00 0000139f: DUP1 000013a0: PUSH2 0x0100 000013a3: EXP 000013a4: DUP2 000013a5: SLOAD 000013a6: DUP2 000013a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013bc: MUL 000013bd: NOT 000013be: AND 000013bf: SWAP1 000013c0: DUP4 000013c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013d6: AND 000013d7: MUL 000013d8: OR 000013d9: SWAP1 000013da: SSTORE 000013db: POP 000013dc: POP 000013dd: JUMP 000013de: JUMPDEST 000013df: PUSH1 0x00 000013e1: DUP1 000013e2: PUSH1 0x00 000013e4: SWAP1 000013e5: SLOAD 000013e6: SWAP1 000013e7: PUSH2 0x0100 000013ea: EXP 000013eb: SWAP1 000013ec: DIV 000013ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001402: AND 00001403: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001418: AND 00001419: CALLER 0000141a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000142f: AND 00001430: EQ 00001431: ISZERO 00001432: ISZERO 00001433: PUSH2 0x143b 00001436: JUMPI 00001437: PUSH1 0x00 00001439: DUP1 0000143a: REVERT 0000143b: JUMPDEST 0000143c: PUSH2 0x1450 0000143f: DUP3 00001440: PUSH1 0x04 00001442: SLOAD 00001443: PUSH2 0x157e 00001446: SWAP1 00001447: SWAP2 00001448: SWAP1 00001449: PUSH4 0xffffffff 0000144e: AND 0000144f: JUMP 00001450: JUMPDEST 00001451: PUSH1 0x04 00001453: DUP2 00001454: SWAP1 00001455: SSTORE 00001456: POP 00001457: PUSH1 0x08 00001459: PUSH1 0x00 0000145b: SWAP1 0000145c: SLOAD 0000145d: SWAP1 0000145e: PUSH2 0x0100 00001461: EXP 00001462: SWAP1 00001463: DIV 00001464: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001479: AND 0000147a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000148f: AND 00001490: PUSH4 0xa9059cbb 00001495: PUSH1 0x00 00001497: DUP1 00001498: SWAP1 00001499: SLOAD 0000149a: SWAP1 0000149b: PUSH2 0x0100 0000149e: EXP 0000149f: SWAP1 000014a0: DIV 000014a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014b6: AND 000014b7: DUP5 000014b8: PUSH1 0x40 000014ba: MLOAD 000014bb: DUP4 000014bc: PUSH4 0xffffffff 000014c1: AND 000014c2: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000014e0: MUL 000014e1: DUP2 000014e2: MSTORE 000014e3: PUSH1 0x04 000014e5: ADD 000014e6: DUP1 000014e7: DUP4 000014e8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014fd: AND 000014fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001513: AND 00001514: DUP2 00001515: MSTORE 00001516: PUSH1 0x20 00001518: ADD 00001519: DUP3 0000151a: DUP2 0000151b: MSTORE 0000151c: PUSH1 0x20 0000151e: ADD 0000151f: SWAP3 00001520: POP 00001521: POP 00001522: POP 00001523: PUSH1 0x00 00001525: PUSH1 0x40 00001527: MLOAD 00001528: DUP1 00001529: DUP4 0000152a: SUB 0000152b: DUP2 0000152c: PUSH1 0x00 0000152e: DUP8 0000152f: DUP1 00001530: EXTCODESIZE 00001531: ISZERO 00001532: DUP1 00001533: ISZERO 00001534: PUSH2 0x153c 00001537: JUMPI 00001538: PUSH1 0x00 0000153a: DUP1 0000153b: REVERT 0000153c: JUMPDEST 0000153d: POP 0000153e: GAS 0000153f: CALL 00001540: ISZERO 00001541: DUP1 00001542: ISZERO 00001543: PUSH2 0x1550 00001546: JUMPI 00001547: RETURNDATASIZE 00001548: PUSH1 0x00 0000154a: DUP1 0000154b: RETURNDATACOPY 0000154c: RETURNDATASIZE 0000154d: PUSH1 0x00 0000154f: REVERT 00001550: JUMPDEST 00001551: POP 00001552: POP 00001553: POP 00001554: POP 00001555: PUSH1 0x01 00001557: SWAP1 00001558: POP 00001559: SWAP2 0000155a: SWAP1 0000155b: POP 0000155c: JUMP 0000155d: JUMPDEST 0000155e: PUSH1 0x00 00001560: DUP1 00001561: DUP3 00001562: DUP5 00001563: ADD 00001564: SWAP1 00001565: POP 00001566: DUP4 00001567: DUP2 00001568: LT 00001569: ISZERO 0000156a: ISZERO 0000156b: ISZERO 0000156c: PUSH2 0x1574 0000156f: JUMPI 00001570: PUSH1 0x00 00001572: DUP1 00001573: REVERT 00001574: JUMPDEST 00001575: DUP1 00001576: SWAP2 00001577: POP 00001578: POP 00001579: SWAP3 0000157a: SWAP2 0000157b: POP 0000157c: POP 0000157d: JUMP 0000157e: JUMPDEST 0000157f: PUSH1 0x00 00001581: DUP1 00001582: DUP4 00001583: DUP4 00001584: GT 00001585: ISZERO 00001586: ISZERO 00001587: ISZERO 00001588: PUSH2 0x1590 0000158b: JUMPI 0000158c: PUSH1 0x00 0000158e: DUP1 0000158f: REVERT 00001590: JUMPDEST 00001591: DUP3 00001592: DUP5 00001593: SUB 00001594: SWAP1 00001595: POP 00001596: DUP1 00001597: SWAP2 00001598: POP 00001599: POP 0000159a: SWAP3 0000159b: SWAP2 0000159c: POP 0000159d: POP 0000159e: JUMP 0000159f: JUMPDEST 000015a0: PUSH1 0x00 000015a2: DUP1 000015a3: PUSH1 0x00 000015a5: DUP5 000015a6: EQ 000015a7: ISZERO 000015a8: PUSH2 0x15b4 000015ab: JUMPI 000015ac: PUSH1 0x00 000015ae: SWAP2 000015af: POP 000015b0: PUSH2 0x15d6 000015b3: JUMP 000015b4: JUMPDEST 000015b5: DUP3 000015b6: DUP5 000015b7: MUL 000015b8: SWAP1 000015b9: POP 000015ba: DUP3 000015bb: DUP5 000015bc: DUP3 000015bd: DUP2 000015be: ISZERO 000015bf: ISZERO 000015c0: PUSH2 0x15c5 000015c3: JUMPI 000015c4: INVALID 000015c5: JUMPDEST 000015c6: DIV 000015c7: EQ 000015c8: ISZERO 000015c9: ISZERO 000015ca: PUSH2 0x15d2 000015cd: JUMPI 000015ce: PUSH1 0x00 000015d0: DUP1 000015d1: REVERT 000015d2: JUMPDEST 000015d3: DUP1 000015d4: SWAP2 000015d5: POP 000015d6: JUMPDEST 000015d7: POP 000015d8: SWAP3 000015d9: SWAP2 000015da: POP 000015db: POP 000015dc: JUMP 000015dd: JUMPDEST 000015de: PUSH1 0x00 000015e0: DUP1 000015e1: PUSH1 0x00 000015e3: DUP4 000015e4: GT 000015e5: ISZERO 000015e6: ISZERO 000015e7: PUSH2 0x15ef 000015ea: JUMPI 000015eb: PUSH1 0x00 000015ed: DUP1 000015ee: REVERT 000015ef: JUMPDEST 000015f0: DUP3 000015f1: DUP5 000015f2: DUP2 000015f3: ISZERO 000015f4: ISZERO 000015f5: PUSH2 0x15fa 000015f8: JUMPI 000015f9: INVALID 000015fa: JUMPDEST 000015fb: DIV 000015fc: SWAP1 000015fd: POP 000015fe: DUP1 000015ff: SWAP2 00001600: POP 00001601: POP 00001602: SWAP3 00001603: SWAP2 00001604: POP 00001605: POP 00001606: JUMP 00001607: STOP 00001608: LOG1 00001609: PUSH6 0x627a7a723058 00001610: KECCAK256 00001611: SIGNEXTEND 00001612: DUP5 00001613: UNKNOWN(0x28) 00001614: UNKNOWN(0xDF) 00001615: UNKNOWN(0xB7) 00001616: CALLDATACOPY 00001617: ISZERO 00001618: CALLDATALOAD 00001619: UNKNOWN(0xDF) 0000161a: BYTE 0000161b: UNKNOWN(0xBF) 0000161c: UNKNOWN(0xC4) 0000161d: UNKNOWN(0xE5) 0000161e: DUP14 0000161f: DUP8 00001620: UNKNOWN(0xB2) 00001621: COINBASE 00001622: UNKNOWN(0xE9) 00001623: MSTORE8 00001624: LOG1 00001625: SWAP11 00001626: PUSH31
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xbee36ade5f62e6428c55bfff05d2e42a73a070cc5e1b1e9bd66c8644934eb192
call_targets:
0xd0eabb5164c9dba0a2ee508f7e8d91d4d485637c
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbee36ade5f62e6428c55bfff05d2e42a73a070cc5e1b1e9bd66c8644934eb192",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xd0eabb5164c9dba0a2ee508f7e8d91d4d485637c"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1659bbeb",
"selector": "0x1659bbeb",
"calldata_variants": [
"0x1659bbeb",
"0x1659bbeb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3e118dbe",
"selector": "0x3e118dbe",
"calldata_variants": [
"0x3e118dbe",
"0x3e118dbe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3f4ba83a",
"selector": "0x3f4ba83a",
"calldata_variants": [
"0x3f4ba83a",
"0x3f4ba83a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41e61ad1",
"selector": "0x41e61ad1",
"calldata_variants": [
"0x41e61ad1",
"0x41e61ad10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x543fcf03",
"selector": "0x543fcf03",
"calldata_variants": [
"0x543fcf03",
"0x543fcf030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x560b65f7",
"selector": "0x560b65f7",
"calldata_variants": [
"0x560b65f7",
"0x560b65f70000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2117,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2741,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3335,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 7,
"guards_detected": [
{
"pc": 1831,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2237,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2474,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2853,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4136,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4412,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4925,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5145,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 7
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xbee36ade5f62e6428c55bfff05d2e42a73a070cc5e1b1e9bd66c8644934eb192
call_targets:
0xd0eabb5164c9dba0a2ee508f7e8d91d4d485637c
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbee36ade5f62e6428c55bfff05d2e42a73a070cc5e1b1e9bd66c8644934eb192",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xd0eabb5164c9dba0a2ee508f7e8d91d4d485637c"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1659bbeb",
"selector": "0x1659bbeb",
"calldata_variants": [
"0x1659bbeb",
"0x1659bbeb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3e118dbe",
"selector": "0x3e118dbe",
"calldata_variants": [
"0x3e118dbe",
"0x3e118dbe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3f4ba83a",
"selector": "0x3f4ba83a",
"calldata_variants": [
"0x3f4ba83a",
"0x3f4ba83a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x41e61ad1",
"selector": "0x41e61ad1",
"calldata_variants": [
"0x41e61ad1",
"0x41e61ad10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x543fcf03",
"selector": "0x543fcf03",
"calldata_variants": [
"0x543fcf03",
"0x543fcf030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x560b65f7",
"selector": "0x560b65f7",
"calldata_variants": [
"0x560b65f7",
"0x560b65f70000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2117,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2741,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3335,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 7,
"guards_detected": [
{
"pc": 1831,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2237,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2474,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2853,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4136,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4412,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4925,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5145,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| low | reentrancy | codex | Potential untrusted external CALL surface (computed target/value) with uncertain return-data handling | 65 | no | — |
viewevidence_json{
"evidence": "Calls listed at pc 2117/2741/3335/3778/3999/4811/5439 with target/value marked computed; detector notes 7 CALLs and returndata_checked=null. Validation suggests constant target, so untrusted reachability is uncertain.",
"locations": [
"pc:0x845",
"pc:0xab5",
"pc:0xd07",
"pc:0xec2",
"pc:0xf9f",
"pc:0x12cb",
"pc:0x153f"
],
"recommendation": "Restrict/whitelist call targets and add explicit reentrancy protection (checks-effects-interactions or a guard) around state-changing logic. If these are token calls, decode and validate return data instead of relying only on CALL success.",
"exploit_scenario": "If any CALL target can be influenced by users or points to an untrusted contract, a malicious callee could reenter or otherwise manipulate state around the call. The bytecode shows low-level CALLs with computed target/value, and return-data handling is not clearly evidenced; this can enable reentrancy or silent failure patterns depending on the surrounding state updates."
}
|
| low | access_control | codex | Hardcoded msg.sender==0xffff… guards may lock privileged actions or rely on an unreachable admin | 65 | no | — |
viewevidence_json{
"evidence": "Auth guards detected as msg_sender_eq_const with value 0xffffffffffffffffffffffffffffffffffffffff at multiple PCs.",
"locations": [
"pc:0x727",
"pc:0x8bd",
"pc:0x9aa",
"pc:0xb25",
"pc:0x1028",
"pc:0x113c",
"pc:0x133d",
"pc:0x1419"
],
"recommendation": "Ensure privileged checks reference a configurable storage owner/admin rather than a hardcoded constant, or explicitly document that admin is permanently renounced. If renounced, verify no critical functionality depends on these paths.",
"exploit_scenario": "Guards compare msg.sender to the constant 0xffff\u2026 address. If these gates protect admin-only functions (e.g., ownership/withdrawal), access could be permanently locked, preventing emergency actions. Conversely, if that address is ever controlled, it would gain privileged access. The intent is unclear from bytecode alone."
}
|
| 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": 7
}
|