2265ad84-b13f-4a4d-8194-e5ed07374046
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 |
|---|---|---|---|---|
| 31447 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 77308 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 77309 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 77310 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 77311 | capability.graph | complete | 1 / 3 | 1 week ago |
| 77312 | detector.run | complete | 1 / 3 | 1 week ago |
| 77313 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:442513] OpenAI Codex v0.77.0 (research preview)
[codex:442513] --------
[codex:442513] workdir: /tmp/codex-multi-srcst2zh
[codex:442513] model: gpt-5.2-codex
[codex:442513] provider: openai
[codex:442513] approval: never
[codex:442513] sandbox: read-only
[codex:442513] reasoning effort: xhigh
[codex:442513] reasoning summaries: auto
[codex:442513] session id: 019b81e4-cb63-7c20-ac51-964dfdb3d9be
[codex:442513] --------
[codex:442513] user
[codex:442513] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:442513]
[codex:442513] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:442513]
[codex:442513] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:442513] - Gas inefficiency, code quality, naming, or best practices
[codex:442513] - Theoretical vulnerabilities without a clear extraction path
[codex:442513] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:442513] - Front-running unless it enables theft beyond MEV
[codex:442513] - DoS, griefing, or issues that don't result in attacker profit
[codex:442513] - Missing events, view function issues, or informational findings
[codex:442513]
[codex:442513] HIGH-VALUE PATTERNS TO HUNT:
[codex:442513] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:442513] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:442513] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:442513] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:442513] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:442513] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:442513] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:442513] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:442513] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:442513]
[codex:442513] For each finding, you MUST provide:
[codex:442513] 1. Exact file and line numbers of vulnerable code
[codex:442513] 2. Step-by-step exploit transaction sequence
[codex:442513] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:442513]
[codex:442513] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:442513]
[codex:442513] Output MUST be valid JSON matching the provided schema.
[codex:442513] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:442513] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:442513] mcp startup: no servers
[codex:442513]
[codex:442513] thinking
[codex:442513] **Preparing to audit file contents**
[codex:442513] exec
[codex:442513] /bin/bash -lc ls in /tmp/codex-multi-srcst2zh succeeded in 6ms:
[codex:442513] AUDIT_BUNDLE.txt
[codex:442513] codex-output-schema.json
[codex:442513] contracts
[codex:442513] exec
[codex:442513] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-srcst2zh succeeded in 5ms:
[codex:442513] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:442513]
[codex:442513] ================================================================================
[codex:442513] FILE: contracts/Contract.sol
[codex:442513] ================================================================================
[codex:442513] pragma solidity ^0.4.26;
[codex:442513]
[codex:442513] library SafeMath {
[codex:442513]
[codex:442513] function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
[codex:442513] if (a == 0) {
[codex:442513] return 0;
[codex:442513] }
[codex:442513] c = a * b;
[codex:442513] assert(c / a == b);
[codex:442513] return c;
[codex:442513] }
[codex:442513]
[codex:442513] function div(uint256 a, uint256 b) internal pure returns (uint256) {
[codex:442513] return a / b;
[codex:442513]
[codex:442513]
[codex:442513]
[codex:442513]
[codex:442513]
[codex:442513] thinking
[codex:442513] **Analyzing contract for profit exploits**
[codex:442513]
[codex:442513] I'm carefully auditing the contract to uncover potential profit exploits, focusing on reentrancy risks, access control flaws, arithmetic errors, and dividend calculations. I’m exploring how transfers, sells, and dividends interact, checking if fee handling or rounding could be gamed, and scrutinizing whether state updates and external calls allow manipulative behaviors or unauthorized withdrawals. The possibility of division by zero, contract solvency, and use of tx.origin also get close attention to confirm no loopholes enable unfair gains.
[codex:442513] thinking
[codex:442513] **Examining payout and dividend arithmetic vulnerabilities**
[codex:442513]
[codex:442513] I’m exploring if attackers can exploit dividend calculations by manipulating payoutsTo_ to become larger than profitPerShare_ times balance, which would let them claim huge dividends due to integer casting quirks. The focus is on how buy, sell, transfer, withdraw, and roll functions adjust payouts and balances, looking for rounding or ordering issues that might create negative dividends or allow draining ETH unfairly. One interesting angle is using self-transfers to convert tokens into withdrawable dividends at a lower fee rate than selling, potentially bypassing exit fees by repeatedly burning tokens and collecting dividends, which might let a holder extract nearly full token value over time.
[codex:442513] thinking
[codex:442513] **Analyzing fee bypass and leftover dividend scenarios**
[codex:442513]
[codex:442513] I’m assessing if repeated self-transfers genuinely let holders avoid the 10% exit fee, effectively redeeming tokens with just a 1% transfer fee and exiting with more ETH than normal selling would allow. Then I’m exploring a subtle edge case when tokenSupply_ drops to zero post-launch, leaving leftover undistributed dividends stuck in the contract. A new buyer entering at this point might exploit payout calculations that don’t reset fees properly, potentially withdrawing their own purchase fee portion early and maybe accessing leftover ETH reserved from previous rounds. The math suggests this could reduce effective entry fees and create unexpected dividend behaviors.
[codex:442513] thinking
[codex:442513] **Evaluating leftover funds and launch fund timing exploit**
[codex:442513]
[codex:442513] I’m unpacking how leftover dividends remain locked after all tokens are sold and how they aren’t accounted for in profitPerShare_, making them effectively stuck in the contract. While a new buyer gets immediate own dividends, they likely can’t directly claim these leftovers. I’m also considering a nuanced exploit where an attacker buys tokens just before the delayed launch fund distribution, potentially claiming a disproportionate share of accumulated fees collected earlier, which might let them profit by capturing value others contributed without equivalent cost.
[codex:442513] thinking
[codex:442513] **Analyzing launch fund distribution front-running**
[codex:442513]
[codex:442513] I’m working through how an attacker can buy tokens just before calling distributeLaunchFund to capture a large share of accumulated launch fees, especially when token supply is low and launch fund is high. This “sniping” lets an attacker profit by withdrawing dividends exceeding their purchase cost, which is a concrete path to profit rooted in the timing and lack of snapshot in distribution. I’m also planning to find exact line references in the contract for detailed reporting.
[codex:442513] exec
[codex:442513] /bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-multi-srcst2zh succeeded in 8ms:
[codex:442513] 1 pragma solidity ^0.4.26;
[codex:442513] 2
[codex:442513] 3 library SafeMath {
[codex:442513] 4
[codex:442513] 5 function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
[codex:442513] 6 if (a == 0) {
[codex:442513] 7 return 0;
[codex:442513] 8 }
[codex:442513] 9 c = a * b;
[codex:442513] 10 assert(c / a == b);
[codex:442513] 11 return c;
[codex:442513] 12 }
[codex:442513] 13
[codex:442513] 14 function div(uint256 a, uint256 b) internal pure returns (uint256) {
[codex:442513] 15 return a / b;
[codex:442513] 16 }
[codex:442513] 17
[codex:442513] 18 function sub(uint256 a, uint256 b) internal pure returns (uint256) {
[codex:442513] 19 assert(b <= a);
[codex:442513] 20 return a - b;
[codex:442513]
[codex:442513]
[codex:442513] thinking
[codex:442513] **Summarizing profitable launch fund exploit**
[codex:442513] thinking
[codex:442513] **Finalizing launch fund exploit report**
[codex:442513]
[codex:442513] I'll prepare valid JSON output describing the launch fund sniping vulnerability with clear step-by-step exploit details, profit estimates, recommended mitigations, and exact line references as separate file:line items, keeping locations array plain and evidence text succinct without line ranges.
[codex:442513] codex
[codex:442513] {"no_findings":false,"summary":"Launch-fund distribution can be sniped by a late buyer to capture accumulated prelaunch fees when postLaunch is still false.","findings":[{"severity":"high","category":"math","title":"Late-buy launch-fund sniping allows capture of accumulated prelaunch dividends","exploit_scenario":"1) Monitor state while postLaunch is false; if totalLaunchFundCollected is large relative to tokenSupply_ (often after prelaunch sells add to the launch fund), prepare a helper contract. 2) Call buy() with a small amount of ETH and immediately call distributeLaunchFund() in the same transaction to lock in the distribution at the new (slightly higher) tokenSupply_. 3) Call withdraw() to collect your share of the entire launch fund, then optionally exit your tokens. Example: if totalLaunchFundCollected=14.4 ETH and tokenSupply_=10 tokens, buying 1 ETH (0.9 tokens) then calling distributeLaunchFund yields about 1.19 ETH in dividends, netting ~0.19 ETH profit before even exiting tokens. Profit magnitude: up to roughly the launch fund balance (O(totalLaunchFundCollected)) when tokenSupply_ is tiny.","recommendation":"Snapshot eligible balances at a prelaunch cutoff or finalize postLaunch with a fixed tokenSupply_ so late buyers cannot join the launch-fund distribution; alternatively, distribute launch funds continuously rather than in a single callable lump sum.","evidence":"The launch fund accumulates while postLaunch is false and is distributed to whoever holds tokens at the moment distributeLaunchFund is called, with no snapshot or cutoff.","locations":["contracts/Contract.sol:160","contracts/Contract.sol:161","contracts/Contract.sol:162","contracts/Contract.sol:371","contracts/Contract.sol:373","contracts/Contract.sol:224","contracts/Contract.sol:225"]}]}
[codex:442513] tokens used
[codex:442513] 37,472
[codex:442513] {"no_findings":false,"summary":"Launch-fund distribution can be sniped by a late buyer to capture accumulated prelaunch fees when postLaunch is still false.","findings":[{"severity":"high","category":"math","title":"Late-buy launch-fund sniping allows capture of accumulated prelaunch dividends","exploit_scenario":"1) Monitor state while postLaunch is false; if totalLaunchFundCollected is large relative to tokenSupply_ (often after prelaunch sells add to the launch fund), prepare a helper contract. 2) Call buy() with a small amount of ETH and immediately call distributeLaunchFund() in the same transaction to lock in the distribution at the new (slightly higher) tokenSupply_. 3) Call withdraw() to collect your share of the entire launch fund, then optionally exit your tokens. Example: if totalLaunchFundCollected=14.4 ETH and tokenSupply_=10 tokens, buying 1 ETH (0.9 tokens) then calling distributeLaunchFund yields about 1.19 ETH in dividends, netting ~0.19 ETH profit before even exiting tokens. Profit magnitude: up to roughly the launch fund balance (O(totalLaunchFundCollected)) when tokenSupply_ is tiny.","recommendation":"Snapshot eligible balances at a prelaunch cutoff or finalize postLaunch with a fixed tokenSupply_ so late buyers cannot join the launch-fund distribution; alternatively, distribute launch funds continuously rather than in a single callable lump sum.","evidence":"The launch fund accumulates while postLaunch is false and is distributed to whoever holds tokens at the moment distributeLaunchFund is called, with no snapshot or cutoff.","locations":["contracts/Contract.sol:160","contracts/Contract.sol:161","contracts/Contract.sol:162","contracts/Contract.sol:371","contracts/Contract.sol:373","contracts/Contract.sol:224","contracts/Contract.sol:225"]}]}
{
"codex": {
"ran_at": "2026-01-03T03:34:02.582988+00:00",
"returncode": 0
},
"summary": "Launch-fund distribution can be sniped by a late buyer to capture accumulated prelaunch fees when postLaunch is still false.",
"raw_final": {
"summary": "Launch-fund distribution can be sniped by a late buyer to capture accumulated prelaunch fees when postLaunch is still false.",
"findings": [
{
"title": "Late-buy launch-fund sniping allows capture of accumulated prelaunch dividends",
"category": "math",
"evidence": "The launch fund accumulates while postLaunch is false and is distributed to whoever holds tokens at the moment distributeLaunchFund is called, with no snapshot or cutoff.",
"severity": "high",
"locations": [
"contracts/Contract.sol:160",
"contracts/Contract.sol:161",
"contracts/Contract.sol:162",
"contracts/Contract.sol:371",
"contracts/Contract.sol:373",
"contracts/Contract.sol:224",
"contracts/Contract.sol:225"
],
"recommendation": "Snapshot eligible balances at a prelaunch cutoff or finalize postLaunch with a fixed tokenSupply_ so late buyers cannot join the launch-fund distribution; alternatively, distribute launch funds continuously rather than in a single callable lump sum.",
"exploit_scenario": "1) Monitor state while postLaunch is false; if totalLaunchFundCollected is large relative to tokenSupply_ (often after prelaunch sells add to the launch fund), prepare a helper contract. 2) Call buy() with a small amount of ETH and immediately call distributeLaunchFund() in the same transaction to lock in the distribution at the new (slightly higher) tokenSupply_. 3) Call withdraw() to collect your share of the entire launch fund, then optionally exit your tokens. Example: if totalLaunchFundCollected=14.4 ETH and tokenSupply_=10 tokens, buying 1 ETH (0.9 tokens) then calling distributeLaunchFund yields about 1.19 ETH in dividends, netting ~0.19 ETH profit before even exiting tokens. Profit magnitude: up to roughly the launch fund balance (O(totalLaunchFundCollected)) when tokenSupply_ is tiny."
}
],
"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 0x01e1 0000000c: JUMPI 0000000d: PUSH4 0xffffffff 00000012: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000030: PUSH1 0x00 00000032: CALLDATALOAD 00000033: DIV 00000034: AND 00000035: PUSH3 0x65318b 00000039: DUP2 0000003a: EQ 0000003b: PUSH2 0x01ee 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0x06fdde03 00000045: EQ 00000046: PUSH2 0x0221 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0x10d0ffdd 00000050: EQ 00000051: PUSH2 0x02ab 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0x1296bffd 0000005b: EQ 0000005c: PUSH2 0x02c3 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0x18160ddd 00000066: EQ 00000067: PUSH2 0x02da 0000006a: JUMPI 0000006b: DUP1 0000006c: PUSH4 0x22609373 00000071: EQ 00000072: PUSH2 0x02ef 00000075: JUMPI 00000076: DUP1 00000077: PUSH4 0x313ce567 0000007c: EQ 0000007d: PUSH2 0x0307 00000080: JUMPI 00000081: DUP1 00000082: PUSH4 0x3151ecfc 00000087: EQ 00000088: PUSH2 0x0332 0000008b: JUMPI 0000008c: DUP1 0000008d: PUSH4 0x34ecfbb8 00000092: EQ 00000093: PUSH2 0x0347 00000096: JUMPI 00000097: DUP1 00000098: PUSH4 0x37fb7e21 0000009d: EQ 0000009e: PUSH2 0x035c 000000a1: JUMPI 000000a2: DUP1 000000a3: PUSH4 0x3ccfd60b 000000a8: EQ 000000a9: PUSH2 0x038d 000000ac: JUMPI 000000ad: DUP1 000000ae: PUSH4 0x4978e111 000000b3: EQ 000000b4: PUSH2 0x03a2 000000b7: JUMPI 000000b8: DUP1 000000b9: PUSH4 0x4b750334 000000be: EQ 000000bf: PUSH2 0x03b7 000000c2: JUMPI 000000c3: DUP1 000000c4: PUSH4 0x5af78833 000000c9: EQ 000000ca: PUSH2 0x03cc 000000cd: JUMPI 000000ce: DUP1 000000cf: PUSH4 0x6b2f4632 000000d4: EQ 000000d5: PUSH2 0x03e1 000000d8: JUMPI 000000d9: DUP1 000000da: PUSH4 0x6f0b5180 000000df: EQ 000000e0: PUSH2 0x03f6 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0x70a08231 000000ea: EQ 000000eb: PUSH2 0x040a 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0x7a9262a2 000000f5: EQ 000000f6: PUSH2 0x042b 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0x7c180a68 00000100: EQ 00000101: PUSH2 0x044c 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0x8620410b 0000010b: EQ 0000010c: PUSH2 0x046d 0000010f: JUMPI 00000110: DUP1 00000111: PUSH4 0x8da5cb5b 00000116: EQ 00000117: PUSH2 0x0482 0000011a: JUMPI 0000011b: DUP1 0000011c: PUSH4 0x949e8acd 00000121: EQ 00000122: PUSH2 0x0497 00000125: JUMPI 00000126: DUP1 00000127: PUSH4 0x95d89b41 0000012c: EQ 0000012d: PUSH2 0x04ac 00000130: JUMPI 00000131: DUP1 00000132: PUSH4 0x9b7aff9f 00000137: EQ 00000138: PUSH2 0x04c1 0000013b: JUMPI 0000013c: DUP1 0000013d: PUSH4 0x9e2131c6 00000142: EQ 00000143: PUSH2 0x04d6 00000146: JUMPI 00000147: DUP1 00000148: PUSH4 0xa3996f7b 0000014d: EQ 0000014e: PUSH2 0x04f7 00000151: JUMPI 00000152: DUP1 00000153: PUSH4 0xa6f2ae3a 00000158: EQ 00000159: PUSH2 0x0520 0000015c: JUMPI 0000015d: DUP1 0000015e: PUSH4 0xa9059cbb 00000163: EQ 00000164: PUSH2 0x0528 00000167: JUMPI 00000168: DUP1 00000169: PUSH4 0xb84c8246 0000016e: EQ 0000016f: PUSH2 0x054c 00000172: JUMPI 00000173: DUP1 00000174: PUSH4 0xb8f82c85 00000179: EQ 0000017a: PUSH2 0x05a5 0000017d: JUMPI 0000017e: DUP1 0000017f: PUSH4 0xc47f0027 00000184: EQ 00000185: PUSH2 0x05ba 00000188: JUMPI 00000189: DUP1 0000018a: PUSH4 0xc494a080 0000018f: EQ 00000190: PUSH2 0x0613 00000193: JUMPI 00000194: DUP1 00000195: PUSH4 0xcd5e3c5d 0000019a: EQ 0000019b: PUSH2 0x0628 0000019e: JUMPI 0000019f: DUP1 000001a0: PUSH4 0xe4849b32 000001a5: EQ 000001a6: PUSH2 0x063d 000001a9: JUMPI 000001aa: DUP1 000001ab: PUSH4 0xe4fc6b6d 000001b0: EQ 000001b1: PUSH2 0x0655 000001b4: JUMPI 000001b5: DUP1 000001b6: PUSH4 0xe9fad8ee 000001bb: EQ 000001bc: PUSH2 0x065d 000001bf: JUMPI 000001c0: DUP1 000001c1: PUSH4 0xee2ac05f 000001c6: EQ 000001c7: PUSH2 0x0672 000001ca: JUMPI 000001cb: DUP1 000001cc: PUSH4 0xf2fde38b 000001d1: EQ 000001d2: PUSH2 0x0687 000001d5: JUMPI 000001d6: DUP1 000001d7: PUSH4 0xfc7e286d 000001dc: EQ 000001dd: PUSH2 0x06a8 000001e0: JUMPI 000001e1: JUMPDEST 000001e2: PUSH2 0x01eb 000001e5: CALLER 000001e6: CALLVALUE 000001e7: PUSH2 0x06c9 000001ea: JUMP 000001eb: JUMPDEST 000001ec: POP 000001ed: STOP 000001ee: JUMPDEST 000001ef: CALLVALUE 000001f0: DUP1 000001f1: ISZERO 000001f2: PUSH2 0x01fa 000001f5: JUMPI 000001f6: PUSH1 0x00 000001f8: DUP1 000001f9: REVERT 000001fa: JUMPDEST 000001fb: POP 000001fc: PUSH2 0x020f 000001ff: PUSH1 0x01 00000201: PUSH1 0xa0 00000203: PUSH1 0x02 00000205: EXP 00000206: SUB 00000207: PUSH1 0x04 00000209: CALLDATALOAD 0000020a: AND 0000020b: PUSH2 0x09c2 0000020e: JUMP 0000020f: JUMPDEST 00000210: PUSH1 0x40 00000212: DUP1 00000213: MLOAD 00000214: SWAP2 00000215: DUP3 00000216: MSTORE 00000217: MLOAD 00000218: SWAP1 00000219: DUP2 0000021a: SWAP1 0000021b: SUB 0000021c: PUSH1 0x20 0000021e: ADD 0000021f: SWAP1 00000220: RETURN 00000221: JUMPDEST 00000222: CALLVALUE 00000223: DUP1 00000224: ISZERO 00000225: PUSH2 0x022d 00000228: JUMPI 00000229: PUSH1 0x00 0000022b: DUP1 0000022c: REVERT 0000022d: JUMPDEST 0000022e: POP 0000022f: PUSH2 0x0236 00000232: PUSH2 0x09fd 00000235: JUMP 00000236: JUMPDEST 00000237: PUSH1 0x40 00000239: DUP1 0000023a: MLOAD 0000023b: PUSH1 0x20 0000023d: DUP1 0000023e: DUP3 0000023f: MSTORE 00000240: DUP4 00000241: MLOAD 00000242: DUP2 00000243: DUP4 00000244: ADD 00000245: MSTORE 00000246: DUP4 00000247: MLOAD 00000248: SWAP2 00000249: SWAP3 0000024a: DUP4 0000024b: SWAP3 0000024c: SWAP1 0000024d: DUP4 0000024e: ADD 0000024f: SWAP2 00000250: DUP6 00000251: ADD 00000252: SWAP1 00000253: DUP1 00000254: DUP4 00000255: DUP4 00000256: PUSH1 0x00 00000258: JUMPDEST 00000259: DUP4 0000025a: DUP2 0000025b: LT 0000025c: ISZERO 0000025d: PUSH2 0x0270 00000260: JUMPI 00000261: DUP2 00000262: DUP2 00000263: ADD 00000264: MLOAD 00000265: DUP4 00000266: DUP3 00000267: ADD 00000268: MSTORE 00000269: PUSH1 0x20 0000026b: ADD 0000026c: PUSH2 0x0258 0000026f: JUMP 00000270: JUMPDEST 00000271: POP 00000272: POP 00000273: POP 00000274: POP 00000275: SWAP1 00000276: POP 00000277: SWAP1 00000278: DUP2 00000279: ADD 0000027a: SWAP1 0000027b: PUSH1 0x1f 0000027d: AND 0000027e: DUP1 0000027f: ISZERO 00000280: PUSH2 0x029d 00000283: JUMPI 00000284: DUP1 00000285: DUP3 00000286: SUB 00000287: DUP1 00000288: MLOAD 00000289: PUSH1 0x01 0000028b: DUP4 0000028c: PUSH1 0x20 0000028e: SUB 0000028f: PUSH2 0x0100 00000292: EXP 00000293: SUB 00000294: NOT 00000295: AND 00000296: DUP2 00000297: MSTORE 00000298: PUSH1 0x20 0000029a: ADD 0000029b: SWAP2 0000029c: POP 0000029d: JUMPDEST 0000029e: POP 0000029f: SWAP3 000002a0: POP 000002a1: POP 000002a2: POP 000002a3: PUSH1 0x40 000002a5: MLOAD 000002a6: DUP1 000002a7: SWAP2 000002a8: SUB 000002a9: SWAP1 000002aa: RETURN 000002ab: JUMPDEST 000002ac: CALLVALUE 000002ad: DUP1 000002ae: ISZERO 000002af: PUSH2 0x02b7 000002b2: JUMPI 000002b3: PUSH1 0x00 000002b5: DUP1 000002b6: REVERT 000002b7: JUMPDEST 000002b8: POP 000002b9: PUSH2 0x020f 000002bc: PUSH1 0x04 000002be: CALLDATALOAD 000002bf: PUSH2 0x0a88 000002c2: JUMP 000002c3: JUMPDEST 000002c4: CALLVALUE 000002c5: DUP1 000002c6: ISZERO 000002c7: PUSH2 0x02cf 000002ca: JUMPI 000002cb: PUSH1 0x00 000002cd: DUP1 000002ce: REVERT 000002cf: JUMPDEST 000002d0: POP 000002d1: PUSH2 0x02d8 000002d4: PUSH2 0x0ab0 000002d7: JUMP 000002d8: JUMPDEST 000002d9: STOP 000002da: JUMPDEST 000002db: CALLVALUE 000002dc: DUP1 000002dd: ISZERO 000002de: PUSH2 0x02e6 000002e1: JUMPI 000002e2: PUSH1 0x00 000002e4: DUP1 000002e5: REVERT 000002e6: JUMPDEST 000002e7: POP 000002e8: PUSH2 0x020f 000002eb: PUSH2 0x0b1b 000002ee: JUMP 000002ef: JUMPDEST 000002f0: CALLVALUE 000002f1: DUP1 000002f2: ISZERO 000002f3: PUSH2 0x02fb 000002f6: JUMPI 000002f7: PUSH1 0x00 000002f9: DUP1 000002fa: REVERT 000002fb: JUMPDEST 000002fc: POP 000002fd: PUSH2 0x020f 00000300: PUSH1 0x04 00000302: CALLDATALOAD 00000303: PUSH2 0x0b22 00000306: JUMP 00000307: JUMPDEST 00000308: CALLVALUE 00000309: DUP1 0000030a: ISZERO 0000030b: PUSH2 0x0313 0000030e: JUMPI 0000030f: PUSH1 0x00 00000311: DUP1 00000312: REVERT 00000313: JUMPDEST 00000314: POP 00000315: PUSH2 0x031c 00000318: PUSH2 0x0b47 0000031b: JUMP 0000031c: JUMPDEST 0000031d: PUSH1 0x40 0000031f: DUP1 00000320: MLOAD 00000321: PUSH1 0xff 00000323: SWAP1 00000324: SWAP3 00000325: AND 00000326: DUP3 00000327: MSTORE 00000328: MLOAD 00000329: SWAP1 0000032a: DUP2 0000032b: SWAP1 0000032c: SUB 0000032d: PUSH1 0x20 0000032f: ADD 00000330: SWAP1 00000331: RETURN 00000332: JUMPDEST 00000333: CALLVALUE 00000334: DUP1 00000335: ISZERO 00000336: PUSH2 0x033e 00000339: JUMPI 0000033a: PUSH1 0x00 0000033c: DUP1 0000033d: REVERT 0000033e: JUMPDEST 0000033f: POP 00000340: PUSH2 0x020f 00000343: PUSH2 0x0b4c 00000346: JUMP 00000347: JUMPDEST 00000348: CALLVALUE 00000349: DUP1 0000034a: ISZERO 0000034b: PUSH2 0x0353 0000034e: JUMPI 0000034f: PUSH1 0x00 00000351: DUP1 00000352: REVERT 00000353: JUMPDEST 00000354: POP 00000355: PUSH2 0x020f 00000358: PUSH2 0x0b5f 0000035b: JUMP 0000035c: JUMPDEST 0000035d: CALLVALUE 0000035e: DUP1 0000035f: ISZERO 00000360: PUSH2 0x0368 00000363: JUMPI 00000364: PUSH1 0x00 00000366: DUP1 00000367: REVERT 00000368: JUMPDEST 00000369: POP 0000036a: PUSH2 0x0371 0000036d: PUSH2 0x0b65 00000370: JUMP 00000371: JUMPDEST 00000372: PUSH1 0x40 00000374: DUP1 00000375: MLOAD 00000376: PUSH1 0x01 00000378: PUSH1 0xa0 0000037a: PUSH1 0x02 0000037c: EXP 0000037d: SUB 0000037e: SWAP1 0000037f: SWAP3 00000380: AND 00000381: DUP3 00000382: MSTORE 00000383: MLOAD 00000384: SWAP1 00000385: DUP2 00000386: SWAP1 00000387: SUB 00000388: PUSH1 0x20 0000038a: ADD 0000038b: SWAP1 0000038c: RETURN 0000038d: JUMPDEST 0000038e: CALLVALUE 0000038f: DUP1 00000390: ISZERO 00000391: PUSH2 0x0399 00000394: JUMPI 00000395: PUSH1 0x00 00000397: DUP1 00000398: REVERT 00000399: JUMPDEST 0000039a: POP 0000039b: PUSH2 0x02d8 0000039e: PUSH2 0x0b74 000003a1: JUMP 000003a2: JUMPDEST 000003a3: CALLVALUE 000003a4: DUP1 000003a5: ISZERO 000003a6: PUSH2 0x03ae 000003a9: JUMPI 000003aa: PUSH1 0x00 000003ac: DUP1 000003ad: REVERT 000003ae: JUMPDEST 000003af: POP 000003b0: PUSH2 0x02d8 000003b3: PUSH2 0x0c45 000003b6: JUMP 000003b7: JUMPDEST 000003b8: CALLVALUE 000003b9: DUP1 000003ba: ISZERO 000003bb: PUSH2 0x03c3 000003be: JUMPI 000003bf: PUSH1 0x00 000003c1: DUP1 000003c2: REVERT 000003c3: JUMPDEST 000003c4: POP 000003c5: PUSH2 0x020f 000003c8: PUSH2 0x0caa 000003cb: JUMP 000003cc: JUMPDEST 000003cd: CALLVALUE 000003ce: DUP1 000003cf: ISZERO 000003d0: PUSH2 0x03d8 000003d3: JUMPI 000003d4: PUSH1 0x00 000003d6: DUP1 000003d7: REVERT 000003d8: JUMPDEST 000003d9: POP 000003da: PUSH2 0x0371 000003dd: PUSH2 0x0cd6 000003e0: JUMP 000003e1: JUMPDEST 000003e2: CALLVALUE 000003e3: DUP1 000003e4: ISZERO 000003e5: PUSH2 0x03ed 000003e8: JUMPI 000003e9: PUSH1 0x00 000003eb: DUP1 000003ec: REVERT 000003ed: JUMPDEST 000003ee: POP 000003ef: PUSH2 0x020f 000003f2: PUSH2 0x0ce5 000003f5: JUMP 000003f6: JUMPDEST 000003f7: PUSH2 0x020f 000003fa: PUSH1 0x01 000003fc: PUSH1 0xa0 000003fe: PUSH1 0x02 00000400: EXP 00000401: SUB 00000402: PUSH1 0x04 00000404: CALLDATALOAD 00000405: AND 00000406: PUSH2 0x0cea 00000409: JUMP 0000040a: JUMPDEST 0000040b: CALLVALUE 0000040c: DUP1 0000040d: ISZERO 0000040e: PUSH2 0x0416 00000411: JUMPI 00000412: PUSH1 0x00 00000414: DUP1 00000415: REVERT 00000416: JUMPDEST 00000417: POP 00000418: PUSH2 0x020f 0000041b: PUSH1 0x01 0000041d: PUSH1 0xa0 0000041f: PUSH1 0x02 00000421: EXP 00000422: SUB 00000423: PUSH1 0x04 00000425: CALLDATALOAD 00000426: AND 00000427: PUSH2 0x0cfc 0000042a: JUMP 0000042b: JUMPDEST 0000042c: CALLVALUE 0000042d: DUP1 0000042e: ISZERO 0000042f: PUSH2 0x0437 00000432: JUMPI 00000433: PUSH1 0x00 00000435: DUP1 00000436: REVERT 00000437: JUMPDEST 00000438: POP 00000439: PUSH2 0x020f 0000043c: PUSH1 0x01 0000043e: PUSH1 0xa0 00000440: PUSH1 0x02 00000442: EXP 00000443: SUB 00000444: PUSH1 0x04 00000446: CALLDATALOAD 00000447: AND 00000448: PUSH2 0x0d17 0000044b: JUMP 0000044c: JUMPDEST 0000044d: CALLVALUE 0000044e: DUP1 0000044f: ISZERO 00000450: PUSH2 0x0458 00000453: JUMPI 00000454: PUSH1 0x00 00000456: DUP1 00000457: REVERT 00000458: JUMPDEST 00000459: POP 0000045a: PUSH2 0x02d8 0000045d: PUSH1 0x01 0000045f: PUSH1 0xa0 00000461: PUSH1 0x02 00000463: EXP 00000464: SUB 00000465: PUSH1 0x04 00000467: CALLDATALOAD 00000468: AND 00000469: PUSH2 0x0d29 0000046c: JUMP 0000046d: JUMPDEST 0000046e: CALLVALUE 0000046f: DUP1 00000470: ISZERO 00000471: PUSH2 0x0479 00000474: JUMPI 00000475: PUSH1 0x00 00000477: DUP1 00000478: REVERT 00000479: JUMPDEST 0000047a: POP 0000047b: PUSH2 0x020f 0000047e: PUSH2 0x0d6f 00000481: JUMP 00000482: JUMPDEST 00000483: CALLVALUE 00000484: DUP1 00000485: ISZERO 00000486: PUSH2 0x048e 00000489: JUMPI 0000048a: PUSH1 0x00 0000048c: DUP1 0000048d: REVERT 0000048e: JUMPDEST 0000048f: POP 00000490: PUSH2 0x0371 00000493: PUSH2 0x0d9b 00000496: JUMP 00000497: JUMPDEST 00000498: CALLVALUE 00000499: DUP1 0000049a: ISZERO 0000049b: PUSH2 0x04a3 0000049e: JUMPI 0000049f: PUSH1 0x00 000004a1: DUP1 000004a2: REVERT 000004a3: JUMPDEST 000004a4: POP 000004a5: PUSH2 0x020f 000004a8: PUSH2 0x0daa 000004ab: JUMP 000004ac: JUMPDEST 000004ad: CALLVALUE 000004ae: DUP1 000004af: ISZERO 000004b0: PUSH2 0x04b8 000004b3: JUMPI 000004b4: PUSH1 0x00 000004b6: DUP1 000004b7: REVERT 000004b8: JUMPDEST 000004b9: POP 000004ba: PUSH2 0x0236 000004bd: PUSH2 0x0db6 000004c0: JUMP 000004c1: JUMPDEST 000004c2: CALLVALUE 000004c3: DUP1 000004c4: ISZERO 000004c5: PUSH2 0x04cd 000004c8: JUMPI 000004c9: PUSH1 0x00 000004cb: DUP1 000004cc: REVERT 000004cd: JUMPDEST 000004ce: POP 000004cf: PUSH2 0x020f 000004d2: PUSH2 0x0e11 000004d5: JUMP 000004d6: JUMPDEST 000004d7: CALLVALUE 000004d8: DUP1 000004d9: ISZERO 000004da: PUSH2 0x04e2 000004dd: JUMPI 000004de: PUSH1 0x00 000004e0: DUP1 000004e1: REVERT 000004e2: JUMPDEST 000004e3: POP 000004e4: PUSH2 0x02d8 000004e7: PUSH1 0x01 000004e9: PUSH1 0xa0 000004eb: PUSH1 0x02 000004ed: EXP 000004ee: SUB 000004ef: PUSH1 0x04 000004f1: CALLDATALOAD 000004f2: AND 000004f3: PUSH2 0x0e17 000004f6: JUMP 000004f7: JUMPDEST 000004f8: CALLVALUE 000004f9: DUP1 000004fa: ISZERO 000004fb: PUSH2 0x0503 000004fe: JUMPI 000004ff: PUSH1 0x00 00000501: DUP1 00000502: REVERT 00000503: JUMPDEST 00000504: POP 00000505: PUSH2 0x050c 00000508: PUSH2 0x0e5d 0000050b: JUMP 0000050c: JUMPDEST 0000050d: PUSH1 0x40 0000050f: DUP1 00000510: MLOAD 00000511: SWAP2 00000512: ISZERO 00000513: ISZERO 00000514: DUP3 00000515: MSTORE 00000516: MLOAD 00000517: SWAP1 00000518: DUP2 00000519: SWAP1 0000051a: SUB 0000051b: PUSH1 0x20 0000051d: ADD 0000051e: SWAP1 0000051f: RETURN 00000520: JUMPDEST 00000521: PUSH2 0x020f 00000524: PUSH2 0x0e66 00000527: JUMP 00000528: JUMPDEST 00000529: CALLVALUE 0000052a: DUP1 0000052b: ISZERO 0000052c: PUSH2 0x0534 0000052f: JUMPI 00000530: PUSH1 0x00 00000532: DUP1 00000533: REVERT 00000534: JUMPDEST 00000535: POP 00000536: PUSH2 0x050c 00000539: PUSH1 0x01 0000053b: PUSH1 0xa0 0000053d: PUSH1 0x02 0000053f: EXP 00000540: SUB 00000541: PUSH1 0x04 00000543: CALLDATALOAD 00000544: AND 00000545: PUSH1 0x24 00000547: CALLDATALOAD 00000548: PUSH2 0x0e77 0000054b: JUMP 0000054c: JUMPDEST 0000054d: CALLVALUE 0000054e: DUP1 0000054f: ISZERO 00000550: PUSH2 0x0558 00000553: JUMPI 00000554: PUSH1 0x00 00000556: DUP1 00000557: REVERT 00000558: JUMPDEST 00000559: POP 0000055a: PUSH1 0x40 0000055c: DUP1 0000055d: MLOAD 0000055e: PUSH1 0x20 00000560: PUSH1 0x04 00000562: DUP1 00000563: CALLDATALOAD 00000564: DUP1 00000565: DUP3 00000566: ADD 00000567: CALLDATALOAD 00000568: PUSH1 0x1f 0000056a: DUP2 0000056b: ADD 0000056c: DUP5 0000056d: SWAP1 0000056e: DIV 0000056f: DUP5 00000570: MUL 00000571: DUP6 00000572: ADD 00000573: DUP5 00000574: ADD 00000575: SWAP1 00000576: SWAP6 00000577: MSTORE 00000578: DUP5 00000579: DUP5 0000057a: MSTORE 0000057b: PUSH2 0x02d8 0000057e: SWAP5 0000057f: CALLDATASIZE 00000580: SWAP5 00000581: SWAP3 00000582: SWAP4 00000583: PUSH1 0x24 00000585: SWAP4 00000586: SWAP3 00000587: DUP5 00000588: ADD 00000589: SWAP2 0000058a: SWAP1 0000058b: DUP2 0000058c: SWAP1 0000058d: DUP5 0000058e: ADD 0000058f: DUP4 00000590: DUP3 00000591: DUP1 00000592: DUP3 00000593: DUP5 00000594: CALLDATACOPY 00000595: POP 00000596: SWAP5 00000597: SWAP8 00000598: POP 00000599: PUSH2 0x1032 0000059c: SWAP7 0000059d: POP 0000059e: POP 0000059f: POP 000005a0: POP 000005a1: POP 000005a2: POP 000005a3: POP 000005a4: JUMP 000005a5: JUMPDEST 000005a6: CALLVALUE 000005a7: DUP1 000005a8: ISZERO 000005a9: PUSH2 0x05b1 000005ac: JUMPI 000005ad: PUSH1 0x00 000005af: DUP1 000005b0: REVERT 000005b1: JUMPDEST 000005b2: POP 000005b3: PUSH2 0x0371 000005b6: PUSH2 0x1060 000005b9: JUMP 000005ba: JUMPDEST 000005bb: CALLVALUE 000005bc: DUP1 000005bd: ISZERO 000005be: PUSH2 0x05c6 000005c1: JUMPI 000005c2: PUSH1 0x00 000005c4: DUP1 000005c5: REVERT 000005c6: JUMPDEST 000005c7: POP 000005c8: PUSH1 0x40 000005ca: DUP1 000005cb: MLOAD 000005cc: PUSH1 0x20 000005ce: PUSH1 0x04 000005d0: DUP1 000005d1: CALLDATALOAD 000005d2: DUP1 000005d3: DUP3 000005d4: ADD 000005d5: CALLDATALOAD 000005d6: PUSH1 0x1f 000005d8: DUP2 000005d9: ADD 000005da: DUP5 000005db: SWAP1 000005dc: DIV 000005dd: DUP5 000005de: MUL 000005df: DUP6 000005e0: ADD 000005e1: DUP5 000005e2: ADD 000005e3: SWAP1 000005e4: SWAP6 000005e5: MSTORE 000005e6: DUP5 000005e7: DUP5 000005e8: MSTORE 000005e9: PUSH2 0x02d8 000005ec: SWAP5 000005ed: CALLDATASIZE 000005ee: SWAP5 000005ef: SWAP3 000005f0: SWAP4 000005f1: PUSH1 0x24 000005f3: SWAP4 000005f4: SWAP3 000005f5: DUP5 000005f6: ADD 000005f7: SWAP2 000005f8: SWAP1 000005f9: DUP2 000005fa: SWAP1 000005fb: DUP5 000005fc: ADD 000005fd: DUP4 000005fe: DUP3 000005ff: DUP1 00000600: DUP3 00000601: DUP5 00000602: CALLDATACOPY 00000603: POP 00000604: SWAP5 00000605: SWAP8 00000606: POP 00000607: PUSH2 0x106f 0000060a: SWAP7 0000060b: POP 0000060c: POP 0000060d: POP 0000060e: POP 0000060f: POP 00000610: POP 00000611: POP 00000612: JUMP 00000613: JUMPDEST 00000614: CALLVALUE 00000615: DUP1 00000616: ISZERO 00000617: PUSH2 0x061f 0000061a: JUMPI 0000061b: PUSH1 0x00 0000061d: DUP1 0000061e: REVERT 0000061f: JUMPDEST 00000620: POP 00000621: PUSH2 0x020f 00000624: PUSH2 0x1099 00000627: JUMP 00000628: JUMPDEST 00000629: CALLVALUE 0000062a: DUP1 0000062b: ISZERO 0000062c: PUSH2 0x0634 0000062f: JUMPI 00000630: PUSH1 0x00 00000632: DUP1 00000633: REVERT 00000634: JUMPDEST 00000635: POP 00000636: PUSH2 0x02d8 00000639: PUSH2 0x109f 0000063c: JUMP 0000063d: JUMPDEST 0000063e: CALLVALUE 0000063f: DUP1 00000640: ISZERO 00000641: PUSH2 0x0649 00000644: JUMPI 00000645: PUSH1 0x00 00000647: DUP1 00000648: REVERT 00000649: JUMPDEST 0000064a: POP 0000064b: PUSH2 0x02d8 0000064e: PUSH1 0x04 00000650: CALLDATALOAD 00000651: PUSH2 0x1147 00000654: JUMP 00000655: JUMPDEST 00000656: PUSH2 0x020f 00000659: PUSH2 0x13a9 0000065c: JUMP 0000065d: JUMPDEST 0000065e: CALLVALUE 0000065f: DUP1 00000660: ISZERO 00000661: PUSH2 0x0669 00000664: JUMPI 00000665: PUSH1 0x00 00000667: DUP1 00000668: REVERT 00000669: JUMPDEST 0000066a: POP 0000066b: PUSH2 0x02d8 0000066e: PUSH2 0x1431 00000671: JUMP 00000672: JUMPDEST 00000673: CALLVALUE 00000674: DUP1 00000675: ISZERO 00000676: PUSH2 0x067e 00000679: JUMPI 0000067a: PUSH1 0x00 0000067c: DUP1 0000067d: REVERT 0000067e: JUMPDEST 0000067f: POP 00000680: PUSH2 0x020f 00000683: PUSH2 0x145a 00000686: JUMP 00000687: JUMPDEST 00000688: CALLVALUE 00000689: DUP1 0000068a: ISZERO 0000068b: PUSH2 0x0693 0000068e: JUMPI 0000068f: PUSH1 0x00 00000691: DUP1 00000692: REVERT 00000693: JUMPDEST 00000694: POP 00000695: PUSH2 0x02d8 00000698: PUSH1 0x01 0000069a: PUSH1 0xa0 0000069c: PUSH1 0x02 0000069e: EXP 0000069f: SUB 000006a0: PUSH1 0x04 000006a2: CALLDATALOAD 000006a3: AND 000006a4: PUSH2 0x1460 000006a7: JUMP 000006a8: JUMPDEST 000006a9: CALLVALUE 000006aa: DUP1 000006ab: ISZERO 000006ac: PUSH2 0x06b4 000006af: JUMPI 000006b0: PUSH1 0x00 000006b2: DUP1 000006b3: REVERT 000006b4: JUMPDEST 000006b5: POP 000006b6: PUSH2 0x020f 000006b9: PUSH1 0x01 000006bb: PUSH1 0xa0 000006bd: PUSH1 0x02 000006bf: EXP 000006c0: SUB 000006c1: PUSH1 0x04 000006c3: CALLDATALOAD 000006c4: AND 000006c5: PUSH2 0x14f4 000006c8: JUMP 000006c9: JUMPDEST 000006ca: PUSH1 0x00 000006cc: DUP1 000006cd: PUSH1 0x00 000006cf: DUP1 000006d0: PUSH1 0x00 000006d2: DUP1 000006d3: PUSH1 0x00 000006d5: DUP1 000006d6: PUSH1 0x01 000006d8: SLOAD 000006d9: TIMESTAMP 000006da: LT 000006db: ISZERO 000006dc: ISZERO 000006dd: ISZERO 000006de: PUSH2 0x06e6 000006e1: JUMPI 000006e2: PUSH1 0x00 000006e4: DUP1 000006e5: REVERT 000006e6: JUMPDEST 000006e7: PUSH1 0x01 000006e9: PUSH1 0xa0 000006eb: PUSH1 0x02 000006ed: EXP 000006ee: SUB 000006ef: DUP11 000006f0: AND 000006f1: PUSH1 0x00 000006f3: SWAP1 000006f4: DUP2 000006f5: MSTORE 000006f6: PUSH1 0x12 000006f8: PUSH1 0x20 000006fa: MSTORE 000006fb: PUSH1 0x40 000006fd: SWAP1 000006fe: KECCAK256 000006ff: SLOAD 00000700: ISZERO 00000701: ISZERO 00000702: PUSH2 0x070f 00000705: JUMPI 00000706: PUSH1 0x16 00000708: DUP1 00000709: SLOAD 0000070a: PUSH1 0x01 0000070c: ADD 0000070d: SWAP1 0000070e: SSTORE 0000070f: JUMPDEST 00000710: PUSH1 0x01 00000712: PUSH1 0xa0 00000714: PUSH1 0x02 00000716: EXP 00000717: SUB 00000718: DUP11 00000719: AND 0000071a: PUSH1 0x00 0000071c: SWAP1 0000071d: DUP2 0000071e: MSTORE 0000071f: PUSH1 0x12 00000721: PUSH1 0x20 00000723: MSTORE 00000724: PUSH1 0x40 00000726: SWAP1 00000727: KECCAK256 00000728: DUP1 00000729: SLOAD 0000072a: DUP11 0000072b: ADD 0000072c: SWAP1 0000072d: SSTORE 0000072e: PUSH1 0x04 00000730: SLOAD 00000731: PUSH2 0x0746 00000734: SWAP1 00000735: PUSH2 0x073f 00000738: SWAP1 00000739: DUP12 0000073a: SWAP1 0000073b: PUSH2 0x1506 0000073e: JUMP 0000073f: JUMPDEST 00000740: PUSH1 0x64 00000742: PUSH2 0x152f 00000745: JUMP 00000746: JUMPDEST 00000747: SWAP7 00000748: POP 00000749: PUSH2 0x0757 0000074c: PUSH2 0x073f 0000074f: DUP9 00000750: PUSH1 0x08 00000752: SLOAD 00000753: PUSH2 0x1506 00000756: JUMP 00000757: JUMPDEST 00000758: PUSH1 0x09 0000075a: SLOAD 0000075b: PUSH1 0x40 0000075d: MLOAD 0000075e: SWAP2 0000075f: SWAP8 00000760: POP 00000761: PUSH1 0x01 00000763: PUSH1 0xa0 00000765: PUSH1 0x02 00000767: EXP 00000768: SUB 00000769: AND 0000076a: SWAP1 0000076b: DUP8 0000076c: ISZERO 0000076d: PUSH2 0x08fc 00000770: MUL 00000771: SWAP1 00000772: DUP9 00000773: SWAP1 00000774: PUSH1 0x00 00000776: DUP2 00000777: DUP2 00000778: DUP2 00000779: DUP6 0000077a: DUP9 0000077b: DUP9 0000077c: CALL 0000077d: SWAP4 0000077e: POP 0000077f: POP 00000780: POP 00000781: POP 00000782: ISZERO 00000783: DUP1 00000784: ISZERO 00000785: PUSH2 0x0792 00000788: JUMPI 00000789: RETURNDATASIZE 0000078a: PUSH1 0x00 0000078c: DUP1 0000078d: RETURNDATACOPY 0000078e: RETURNDATASIZE 0000078f: PUSH1 0x00 00000791: REVERT 00000792: JUMPDEST 00000793: POP 00000794: PUSH2 0x07a2 00000797: PUSH2 0x073f 0000079a: DUP9 0000079b: PUSH1 0x07 0000079d: SLOAD 0000079e: PUSH2 0x1506 000007a1: JUMP 000007a2: JUMPDEST 000007a3: PUSH1 0x0e 000007a5: DUP1 000007a6: SLOAD 000007a7: DUP3 000007a8: ADD 000007a9: SWAP1 000007aa: SSTORE 000007ab: PUSH1 0x0d 000007ad: SLOAD 000007ae: PUSH1 0x40 000007b0: MLOAD 000007b1: SWAP2 000007b2: SWAP7 000007b3: POP 000007b4: PUSH1 0x01 000007b6: PUSH1 0xa0 000007b8: PUSH1 0x02 000007ba: EXP 000007bb: SUB 000007bc: AND 000007bd: SWAP1 000007be: DUP7 000007bf: ISZERO 000007c0: PUSH2 0x08fc 000007c3: MUL 000007c4: SWAP1 000007c5: DUP8 000007c6: SWAP1 000007c7: PUSH1 0x00 000007c9: DUP2 000007ca: DUP2 000007cb: DUP2 000007cc: DUP6 000007cd: DUP9 000007ce: DUP9 000007cf: CALL 000007d0: SWAP4 000007d1: POP 000007d2: POP 000007d3: POP 000007d4: POP 000007d5: ISZERO 000007d6: DUP1 000007d7: ISZERO 000007d8: PUSH2 0x07e5 000007db: JUMPI 000007dc: RETURNDATASIZE 000007dd: PUSH1 0x00 000007df: DUP1 000007e0: RETURNDATACOPY 000007e1: RETURNDATASIZE 000007e2: PUSH1 0x00 000007e4: REVERT 000007e5: JUMPDEST 000007e6: POP 000007e7: PUSH2 0x07f9 000007ea: DUP8 000007eb: PUSH2 0x07f4 000007ee: DUP8 000007ef: DUP10 000007f0: PUSH2 0x1544 000007f3: JUMP 000007f4: JUMPDEST 000007f5: PUSH2 0x1551 000007f8: JUMP 000007f9: JUMPDEST 000007fa: SWAP4 000007fb: POP 000007fc: PUSH2 0x0805 000007ff: DUP10 00000800: DUP9 00000801: PUSH2 0x1551 00000804: JUMP 00000805: JUMPDEST 00000806: SWAP3 00000807: POP 00000808: PUSH9 0x010000000000000000 00000812: DUP5 00000813: MUL 00000814: SWAP2 00000815: POP 00000816: PUSH1 0x00 00000818: DUP4 00000819: GT 0000081a: DUP1 0000081b: ISZERO 0000081c: PUSH2 0x082f 0000081f: JUMPI 00000820: POP 00000821: PUSH1 0x14 00000823: SLOAD 00000824: PUSH2 0x082d 00000827: DUP5 00000828: DUP3 00000829: PUSH2 0x1544 0000082c: JUMP 0000082d: JUMPDEST 0000082e: GT 0000082f: JUMPDEST 00000830: ISZERO 00000831: ISZERO 00000832: PUSH2 0x083a 00000835: JUMPI 00000836: PUSH1 0x00 00000838: DUP1 00000839: REVERT 0000083a: JUMPDEST 0000083b: PUSH1 0x18 0000083d: SLOAD 0000083e: PUSH1 0xff 00000840: AND 00000841: ISZERO 00000842: ISZERO 00000843: PUSH2 0x086e 00000846: JUMPI 00000847: PUSH2 0x0852 0000084a: PUSH1 0x14 0000084c: SLOAD 0000084d: DUP5 0000084e: PUSH2 0x1544 00000851: JUMP 00000852: JUMPDEST 00000853: PUSH1 0x14 00000855: SSTORE 00000856: PUSH1 0x0f 00000858: SLOAD 00000859: PUSH2 0x0862 0000085c: SWAP1 0000085d: DUP6 0000085e: PUSH2 0x1544 00000861: JUMP 00000862: JUMPDEST 00000863: PUSH1 0x0f 00000865: SSTORE 00000866: PUSH1 0x00 00000868: SWAP2 00000869: POP 0000086a: PUSH2 0x08d8 0000086d: JUMP 0000086e: JUMPDEST 0000086f: PUSH1 0x00 00000871: PUSH1 0x14 00000873: SLOAD 00000874: GT 00000875: ISZERO 00000876: PUSH2 0x08d2 00000879: JUMPI 0000087a: PUSH2 0x0885 0000087d: PUSH1 0x14 0000087f: SLOAD 00000880: DUP5 00000881: PUSH2 0x1544 00000884: JUMP 00000885: JUMPDEST 00000886: PUSH1 0x14 00000888: DUP2 00000889: SWAP1 0000088a: SSTORE 0000088b: PUSH9 0x010000000000000000 00000895: DUP6 00000896: MUL 00000897: DUP2 00000898: ISZERO 00000899: ISZERO 0000089a: PUSH2 0x089f 0000089d: JUMPI 0000089e: INVALID 0000089f: JUMPDEST 000008a0: PUSH1 0x15 000008a2: DUP1 000008a3: SLOAD 000008a4: SWAP3 000008a5: SWAP1 000008a6: SWAP2 000008a7: DIV 000008a8: SWAP1 000008a9: SWAP2 000008aa: ADD 000008ab: SWAP1 000008ac: SSTORE 000008ad: PUSH1 0x14 000008af: SLOAD 000008b0: PUSH9 0x010000000000000000 000008ba: DUP6 000008bb: MUL 000008bc: DUP2 000008bd: ISZERO 000008be: ISZERO 000008bf: PUSH2 0x08c4 000008c2: JUMPI 000008c3: INVALID 000008c4: JUMPDEST 000008c5: DIV 000008c6: DUP4 000008c7: MUL 000008c8: DUP3 000008c9: SUB 000008ca: DUP3 000008cb: SUB 000008cc: SWAP2 000008cd: POP 000008ce: PUSH2 0x08d8 000008d1: JUMP 000008d2: JUMPDEST 000008d3: PUSH1 0x14 000008d5: DUP4 000008d6: SWAP1 000008d7: SSTORE 000008d8: JUMPDEST 000008d9: PUSH1 0x01 000008db: PUSH1 0xa0 000008dd: PUSH1 0x02 000008df: EXP 000008e0: SUB 000008e1: DUP11 000008e2: AND 000008e3: PUSH1 0x00 000008e5: SWAP1 000008e6: DUP2 000008e7: MSTORE 000008e8: PUSH1 0x10 000008ea: PUSH1 0x20 000008ec: MSTORE 000008ed: PUSH1 0x40 000008ef: SWAP1 000008f0: KECCAK256 000008f1: SLOAD 000008f2: PUSH2 0x08fb 000008f5: SWAP1 000008f6: DUP5 000008f7: PUSH2 0x1544 000008fa: JUMP 000008fb: JUMPDEST 000008fc: PUSH1 0x01 000008fe: PUSH1 0xa0 00000900: PUSH1 0x02 00000902: EXP 00000903: SUB 00000904: DUP12 00000905: AND 00000906: PUSH1 0x00 00000908: DUP2 00000909: DUP2 0000090a: MSTORE 0000090b: PUSH1 0x10 0000090d: PUSH1 0x20 0000090f: SWAP1 00000910: DUP2 00000911: MSTORE 00000912: PUSH1 0x40 00000914: DUP1 00000915: DUP4 00000916: KECCAK256 00000917: SWAP5 00000918: SWAP1 00000919: SWAP5 0000091a: SSTORE 0000091b: PUSH1 0x15 0000091d: SLOAD 0000091e: PUSH1 0x11 00000920: DUP3 00000921: MSTORE 00000922: DUP5 00000923: DUP4 00000924: KECCAK256 00000925: DUP1 00000926: SLOAD 00000927: SWAP2 00000928: DUP10 00000929: MUL 0000092a: DUP9 0000092b: SWAP1 0000092c: SUB 0000092d: SWAP2 0000092e: DUP3 0000092f: ADD 00000930: SWAP1 00000931: SSTORE 00000932: DUP5 00000933: MLOAD 00000934: DUP9 00000935: DUP2 00000936: MSTORE 00000937: SWAP5 00000938: MLOAD 00000939: SWAP1 0000093a: SWAP6 0000093b: POP 0000093c: SWAP3 0000093d: SWAP4 0000093e: SWAP2 0000093f: SWAP3 00000940: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00000961: SWAP3 00000962: DUP2 00000963: SWAP1 00000964: SUB 00000965: SWAP1 00000966: SWAP2 00000967: ADD 00000968: SWAP1 00000969: LOG3 0000096a: PUSH1 0x40 0000096c: DUP1 0000096d: MLOAD 0000096e: DUP11 0000096f: DUP2 00000970: MSTORE 00000971: PUSH1 0x20 00000973: DUP2 00000974: ADD 00000975: DUP6 00000976: SWAP1 00000977: MSTORE 00000978: TIMESTAMP 00000979: DUP2 0000097a: DUP4 0000097b: ADD 0000097c: MSTORE 0000097d: SWAP1 0000097e: MLOAD 0000097f: PUSH1 0x01 00000981: PUSH1 0xa0 00000983: PUSH1 0x02 00000985: EXP 00000986: SUB 00000987: DUP13 00000988: AND 00000989: SWAP2 0000098a: PUSH32 0x810900bb33e423094372279f779b623ab22b73472a8a91fce3c018129c205019 000009ab: SWAP2 000009ac: SWAP1 000009ad: DUP2 000009ae: SWAP1 000009af: SUB 000009b0: PUSH1 0x60 000009b2: ADD 000009b3: SWAP1 000009b4: LOG2 000009b5: POP 000009b6: SWAP1 000009b7: SWAP9 000009b8: SWAP8 000009b9: POP 000009ba: POP 000009bb: POP 000009bc: POP 000009bd: POP 000009be: POP 000009bf: POP 000009c0: POP 000009c1: JUMP 000009c2: JUMPDEST 000009c3: PUSH1 0x01 000009c5: PUSH1 0xa0 000009c7: PUSH1 0x02 000009c9: EXP 000009ca: SUB 000009cb: AND 000009cc: PUSH1 0x00 000009ce: SWAP1 000009cf: DUP2 000009d0: MSTORE 000009d1: PUSH1 0x11 000009d3: PUSH1 0x20 000009d5: SWAP1 000009d6: DUP2 000009d7: MSTORE 000009d8: PUSH1 0x40 000009da: DUP1 000009db: DUP4 000009dc: KECCAK256 000009dd: SLOAD 000009de: PUSH1 0x10 000009e0: SWAP1 000009e1: SWAP3 000009e2: MSTORE 000009e3: SWAP1 000009e4: SWAP2 000009e5: KECCAK256 000009e6: SLOAD 000009e7: PUSH1 0x15 000009e9: SLOAD 000009ea: PUSH9 0x010000000000000000 000009f4: SWAP2 000009f5: MUL 000009f6: SWAP2 000009f7: SWAP1 000009f8: SWAP2 000009f9: SUB 000009fa: DIV 000009fb: SWAP1 000009fc: JUMP 000009fd: JUMPDEST 000009fe: PUSH1 0x02 00000a00: DUP1 00000a01: SLOAD 00000a02: PUSH1 0x40 00000a04: DUP1 00000a05: MLOAD 00000a06: PUSH1 0x20 00000a08: PUSH1 0x01 00000a0a: DUP5 00000a0b: AND 00000a0c: ISZERO 00000a0d: PUSH2 0x0100 00000a10: MUL 00000a11: PUSH1 0x00 00000a13: NOT 00000a14: ADD 00000a15: SWAP1 00000a16: SWAP4 00000a17: AND 00000a18: DUP5 00000a19: SWAP1 00000a1a: DIV 00000a1b: PUSH1 0x1f 00000a1d: DUP2 00000a1e: ADD 00000a1f: DUP5 00000a20: SWAP1 00000a21: DIV 00000a22: DUP5 00000a23: MUL 00000a24: DUP3 00000a25: ADD 00000a26: DUP5 00000a27: ADD 00000a28: SWAP1 00000a29: SWAP3 00000a2a: MSTORE 00000a2b: DUP2 00000a2c: DUP2 00000a2d: MSTORE 00000a2e: SWAP3 00000a2f: SWAP2 00000a30: DUP4 00000a31: ADD 00000a32: DUP3 00000a33: DUP3 00000a34: DUP1 00000a35: ISZERO 00000a36: PUSH2 0x0a80 00000a39: JUMPI 00000a3a: DUP1 00000a3b: PUSH1 0x1f 00000a3d: LT 00000a3e: PUSH2 0x0a55 00000a41: JUMPI 00000a42: PUSH2 0x0100 00000a45: DUP1 00000a46: DUP4 00000a47: SLOAD 00000a48: DIV 00000a49: MUL 00000a4a: DUP4 00000a4b: MSTORE 00000a4c: SWAP2 00000a4d: PUSH1 0x20 00000a4f: ADD 00000a50: SWAP2 00000a51: PUSH2 0x0a80 00000a54: JUMP 00000a55: JUMPDEST 00000a56: DUP3 00000a57: ADD 00000a58: SWAP2 00000a59: SWAP1 00000a5a: PUSH1 0x00 00000a5c: MSTORE 00000a5d: PUSH1 0x20 00000a5f: PUSH1 0x00 00000a61: KECCAK256 00000a62: SWAP1 00000a63: JUMPDEST 00000a64: DUP2 00000a65: SLOAD 00000a66: DUP2 00000a67: MSTORE 00000a68: SWAP1 00000a69: PUSH1 0x01 00000a6b: ADD 00000a6c: SWAP1 00000a6d: PUSH1 0x20 00000a6f: ADD 00000a70: DUP1 00000a71: DUP4 00000a72: GT 00000a73: PUSH2 0x0a63 00000a76: JUMPI 00000a77: DUP3 00000a78: SWAP1 00000a79: SUB 00000a7a: PUSH1 0x1f 00000a7c: AND 00000a7d: DUP3 00000a7e: ADD 00000a7f: SWAP2 00000a80: JUMPDEST 00000a81: POP 00000a82: POP 00000a83: POP 00000a84: POP 00000a85: POP 00000a86: DUP2 00000a87: JUMP 00000a88: JUMPDEST 00000a89: PUSH1 0x00 00000a8b: DUP1 00000a8c: PUSH1 0x00 00000a8e: PUSH2 0x0a9c 00000a91: PUSH2 0x073f 00000a94: DUP6 00000a95: PUSH1 0x04 00000a97: SLOAD 00000a98: PUSH2 0x1506 00000a9b: JUMP 00000a9c: JUMPDEST 00000a9d: SWAP2 00000a9e: POP 00000a9f: PUSH2 0x0aa8 00000aa2: DUP5 00000aa3: DUP4 00000aa4: PUSH2 0x1551 00000aa7: JUMP 00000aa8: JUMPDEST 00000aa9: SWAP5 00000aaa: SWAP4 00000aab: POP 00000aac: POP 00000aad: POP 00000aae: POP 00000aaf: JUMP 00000ab0: JUMPDEST 00000ab1: PUSH1 0x00 00000ab3: PUSH1 0x0f 00000ab5: SLOAD 00000ab6: GT 00000ab7: DUP1 00000ab8: ISZERO 00000ab9: PUSH2 0x0ac5 00000abc: JUMPI 00000abd: POP 00000abe: PUSH1 0x18 00000ac0: SLOAD 00000ac1: PUSH1 0xff 00000ac3: AND 00000ac4: ISZERO 00000ac5: JUMPDEST 00000ac6: DUP1 00000ac7: ISZERO 00000ac8: PUSH2 0x0ad8 00000acb: JUMPI 00000acc: POP 00000acd: PUSH1 0x01 00000acf: SLOAD 00000ad0: PUSH3 0x015180 00000ad4: ADD 00000ad5: TIMESTAMP 00000ad6: LT 00000ad7: ISZERO 00000ad8: JUMPDEST 00000ad9: ISZERO 00000ada: ISZERO 00000adb: PUSH2 0x0ae3 00000ade: JUMPI 00000adf: PUSH1 0x00 00000ae1: DUP1 00000ae2: REVERT 00000ae3: JUMPDEST 00000ae4: PUSH2 0x0b09 00000ae7: PUSH1 0x15 00000ae9: SLOAD 00000aea: PUSH1 0x14 00000aec: SLOAD 00000aed: PUSH9 0x010000000000000000 00000af7: PUSH1 0x0f 00000af9: SLOAD 00000afa: MUL 00000afb: DUP2 00000afc: ISZERO 00000afd: ISZERO 00000afe: PUSH2 0x0b03 00000b01: JUMPI 00000b02: INVALID 00000b03: JUMPDEST 00000b04: DIV 00000b05: PUSH2 0x1544 00000b08: JUMP 00000b09: JUMPDEST 00000b0a: PUSH1 0x15 00000b0c: SSTORE 00000b0d: PUSH1 0x18 00000b0f: DUP1 00000b10: SLOAD 00000b11: PUSH1 0xff 00000b13: NOT 00000b14: AND 00000b15: PUSH1 0x01 00000b17: OR 00000b18: SWAP1 00000b19: SSTORE 00000b1a: JUMP 00000b1b: JUMPDEST 00000b1c: PUSH1 0x14 00000b1e: SLOAD 00000b1f: JUMPDEST 00000b20: SWAP1 00000b21: JUMP 00000b22: JUMPDEST 00000b23: PUSH1 0x00 00000b25: DUP1 00000b26: PUSH1 0x00 00000b28: PUSH1 0x14 00000b2a: SLOAD 00000b2b: DUP5 00000b2c: GT 00000b2d: ISZERO 00000b2e: ISZERO 00000b2f: ISZERO 00000b30: PUSH2 0x0b38 00000b33: JUMPI 00000b34: PUSH1 0x00 00000b36: DUP1 00000b37: REVERT 00000b38: JUMPDEST 00000b39: PUSH2 0x0a9c 00000b3c: PUSH2 0x073f 00000b3f: DUP6 00000b40: PUSH1 0x06 00000b42: SLOAD 00000b43: PUSH2 0x1506 00000b46: JUMP 00000b47: JUMPDEST 00000b48: PUSH1 0x12 00000b4a: DUP2 00000b4b: JUMP 00000b4c: JUMPDEST 00000b4d: PUSH1 0x00 00000b4f: CALLER 00000b50: PUSH2 0x0b58 00000b53: DUP2 00000b54: PUSH2 0x09c2 00000b57: JUMP 00000b58: JUMPDEST 00000b59: SWAP2 00000b5a: POP 00000b5b: JUMPDEST 00000b5c: POP 00000b5d: SWAP1 00000b5e: JUMP 00000b5f: JUMPDEST 00000b60: PUSH1 0x0e 00000b62: SLOAD 00000b63: DUP2 00000b64: JUMP 00000b65: JUMPDEST 00000b66: PUSH1 0x0d 00000b68: SLOAD 00000b69: PUSH1 0x01 00000b6b: PUSH1 0xa0 00000b6d: PUSH1 0x02 00000b6f: EXP 00000b70: SUB 00000b71: AND 00000b72: DUP2 00000b73: JUMP 00000b74: JUMPDEST 00000b75: PUSH1 0x00 00000b77: DUP1 00000b78: PUSH1 0x00 00000b7a: PUSH2 0x0b81 00000b7d: PUSH2 0x0b4c 00000b80: JUMP 00000b81: JUMPDEST 00000b82: GT 00000b83: PUSH2 0x0b8b 00000b86: JUMPI 00000b87: PUSH1 0x00 00000b89: DUP1 00000b8a: REVERT 00000b8b: JUMPDEST 00000b8c: CALLER 00000b8d: SWAP2 00000b8e: POP 00000b8f: PUSH2 0x0b96 00000b92: PUSH2 0x0b4c 00000b95: JUMP 00000b96: JUMPDEST 00000b97: PUSH1 0x01 00000b99: PUSH1 0xa0 00000b9b: PUSH1 0x02 00000b9d: EXP 00000b9e: SUB 00000b9f: DUP4 00000ba0: AND 00000ba1: PUSH1 0x00 00000ba3: DUP2 00000ba4: DUP2 00000ba5: MSTORE 00000ba6: PUSH1 0x11 00000ba8: PUSH1 0x20 00000baa: MSTORE 00000bab: PUSH1 0x40 00000bad: DUP1 00000bae: DUP3 00000baf: KECCAK256 00000bb0: DUP1 00000bb1: SLOAD 00000bb2: PUSH9 0x010000000000000000 00000bbc: DUP7 00000bbd: MUL 00000bbe: ADD 00000bbf: SWAP1 00000bc0: SSTORE 00000bc1: MLOAD 00000bc2: SWAP3 00000bc3: SWAP4 00000bc4: POP 00000bc5: SWAP1 00000bc6: SWAP2 00000bc7: DUP4 00000bc8: ISZERO 00000bc9: PUSH2 0x08fc 00000bcc: MUL 00000bcd: SWAP2 00000bce: DUP5 00000bcf: SWAP2 00000bd0: SWAP1 00000bd1: DUP2 00000bd2: DUP2 00000bd3: DUP2 00000bd4: DUP6 00000bd5: DUP9 00000bd6: DUP9 00000bd7: CALL 00000bd8: SWAP4 00000bd9: POP 00000bda: POP 00000bdb: POP 00000bdc: POP 00000bdd: ISZERO 00000bde: DUP1 00000bdf: ISZERO 00000be0: PUSH2 0x0bed 00000be3: JUMPI 00000be4: RETURNDATASIZE 00000be5: PUSH1 0x00 00000be7: DUP1 00000be8: RETURNDATACOPY 00000be9: RETURNDATASIZE 00000bea: PUSH1 0x00 00000bec: REVERT 00000bed: JUMPDEST 00000bee: POP 00000bef: PUSH1 0x01 00000bf1: PUSH1 0xa0 00000bf3: PUSH1 0x02 00000bf5: EXP 00000bf6: SUB 00000bf7: DUP3 00000bf8: AND 00000bf9: PUSH1 0x00 00000bfb: DUP2 00000bfc: DUP2 00000bfd: MSTORE 00000bfe: PUSH1 0x13 00000c00: PUSH1 0x20 00000c02: SWAP1 00000c03: DUP2 00000c04: MSTORE 00000c05: PUSH1 0x40 00000c07: SWAP2 00000c08: DUP3 00000c09: SWAP1 00000c0a: KECCAK256 00000c0b: DUP1 00000c0c: SLOAD 00000c0d: DUP6 00000c0e: ADD 00000c0f: SWAP1 00000c10: SSTORE 00000c11: DUP2 00000c12: MLOAD 00000c13: DUP5 00000c14: DUP2 00000c15: MSTORE 00000c16: SWAP2 00000c17: MLOAD 00000c18: PUSH32 0xccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc 00000c39: SWAP3 00000c3a: DUP2 00000c3b: SWAP1 00000c3c: SUB 00000c3d: SWAP1 00000c3e: SWAP2 00000c3f: ADD 00000c40: SWAP1 00000c41: LOG2 00000c42: POP 00000c43: POP 00000c44: JUMP 00000c45: JUMPDEST 00000c46: PUSH1 0x0c 00000c48: SLOAD 00000c49: PUSH1 0x0b 00000c4b: SLOAD 00000c4c: PUSH1 0x01 00000c4e: PUSH1 0xa0 00000c50: PUSH1 0x02 00000c52: EXP 00000c53: SUB 00000c54: SWAP1 00000c55: DUP2 00000c56: AND 00000c57: SWAP2 00000c58: AND 00000c59: EQ 00000c5a: PUSH2 0x0c62 00000c5d: JUMPI 00000c5e: PUSH1 0x00 00000c60: DUP1 00000c61: REVERT 00000c62: JUMPDEST 00000c63: PUSH1 0x0b 00000c65: SLOAD 00000c66: PUSH1 0x01 00000c68: PUSH1 0xa0 00000c6a: PUSH1 0x02 00000c6c: EXP 00000c6d: SUB 00000c6e: AND 00000c6f: ORIGIN 00000c70: EQ 00000c71: PUSH2 0x0c79 00000c74: JUMPI 00000c75: PUSH1 0x00 00000c77: DUP1 00000c78: REVERT 00000c79: JUMPDEST 00000c7a: PUSH1 0x0b 00000c7c: SLOAD 00000c7d: PUSH1 0x0d 00000c7f: DUP1 00000c80: SLOAD 00000c81: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c96: NOT 00000c97: AND 00000c98: PUSH1 0x01 00000c9a: PUSH1 0xa0 00000c9c: PUSH1 0x02 00000c9e: EXP 00000c9f: SUB 00000ca0: SWAP1 00000ca1: SWAP3 00000ca2: AND 00000ca3: SWAP2 00000ca4: SWAP1 00000ca5: SWAP2 00000ca6: OR 00000ca7: SWAP1 00000ca8: SSTORE 00000ca9: JUMP 00000caa: JUMPDEST 00000cab: PUSH1 0x00 00000cad: DUP1 00000cae: PUSH1 0x00 00000cb0: DUP1 00000cb1: PUSH8 0x0de0b6b3a7640000 00000cba: SWAP3 00000cbb: POP 00000cbc: PUSH2 0x0cca 00000cbf: PUSH2 0x073f 00000cc2: DUP5 00000cc3: PUSH1 0x06 00000cc5: SLOAD 00000cc6: PUSH2 0x1506 00000cc9: JUMP 00000cca: JUMPDEST 00000ccb: SWAP2 00000ccc: POP 00000ccd: PUSH2 0x0aa8 00000cd0: DUP4 00000cd1: DUP4 00000cd2: PUSH2 0x1551 00000cd5: JUMP 00000cd6: JUMPDEST 00000cd7: PUSH1 0x0c 00000cd9: SLOAD 00000cda: PUSH1 0x01 00000cdc: PUSH1 0xa0 00000cde: PUSH1 0x02 00000ce0: EXP 00000ce1: SUB 00000ce2: AND 00000ce3: DUP2 00000ce4: JUMP 00000ce5: JUMPDEST 00000ce6: ADDRESS 00000ce7: BALANCE 00000ce8: SWAP1 00000ce9: JUMP 00000cea: JUMPDEST 00000ceb: PUSH1 0x00 00000ced: PUSH2 0x0cf6 00000cf0: DUP3 00000cf1: CALLVALUE 00000cf2: PUSH2 0x06c9 00000cf5: JUMP 00000cf6: JUMPDEST 00000cf7: SWAP3 00000cf8: SWAP2 00000cf9: POP 00000cfa: POP 00000cfb: JUMP 00000cfc: JUMPDEST 00000cfd: PUSH1 0x01 00000cff: PUSH1 0xa0 00000d01: PUSH1 0x02 00000d03: EXP 00000d04: SUB 00000d05: AND 00000d06: PUSH1 0x00 00000d08: SWAP1 00000d09: DUP2 00000d0a: MSTORE 00000d0b: PUSH1 0x10 00000d0d: PUSH1 0x20 00000d0f: MSTORE 00000d10: PUSH1 0x40 00000d12: SWAP1 00000d13: KECCAK256 00000d14: SLOAD 00000d15: SWAP1 00000d16: JUMP 00000d17: JUMPDEST 00000d18: PUSH1 0x13 00000d1a: PUSH1 0x20 00000d1c: MSTORE 00000d1d: PUSH1 0x00 00000d1f: SWAP1 00000d20: DUP2 00000d21: MSTORE 00000d22: PUSH1 0x40 00000d24: SWAP1 00000d25: KECCAK256 00000d26: SLOAD 00000d27: DUP2 00000d28: JUMP 00000d29: JUMPDEST 00000d2a: PUSH1 0x00 00000d2c: SLOAD 00000d2d: PUSH1 0x01 00000d2f: PUSH1 0xa0 00000d31: PUSH1 0x02 00000d33: EXP 00000d34: SUB 00000d35: AND 00000d36: CALLER 00000d37: EQ 00000d38: PUSH2 0x0d40 00000d3b: JUMPI 00000d3c: PUSH1 0x00 00000d3e: DUP1 00000d3f: REVERT 00000d40: JUMPDEST 00000d41: PUSH1 0x0b 00000d43: DUP1 00000d44: SLOAD 00000d45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d5a: NOT 00000d5b: AND 00000d5c: PUSH1 0x01 00000d5e: PUSH1 0xa0 00000d60: PUSH1 0x02 00000d62: EXP 00000d63: SUB 00000d64: SWAP3 00000d65: SWAP1 00000d66: SWAP3 00000d67: AND 00000d68: SWAP2 00000d69: SWAP1 00000d6a: SWAP2 00000d6b: OR 00000d6c: SWAP1 00000d6d: SSTORE 00000d6e: JUMP 00000d6f: JUMPDEST 00000d70: PUSH1 0x00 00000d72: DUP1 00000d73: PUSH1 0x00 00000d75: DUP1 00000d76: PUSH8 0x0de0b6b3a7640000 00000d7f: SWAP3 00000d80: POP 00000d81: PUSH2 0x0d8f 00000d84: PUSH2 0x073f 00000d87: DUP5 00000d88: PUSH1 0x04 00000d8a: SLOAD 00000d8b: PUSH2 0x1506 00000d8e: JUMP 00000d8f: JUMPDEST 00000d90: SWAP2 00000d91: POP 00000d92: PUSH2 0x0aa8 00000d95: DUP4 00000d96: DUP4 00000d97: PUSH2 0x1544 00000d9a: JUMP 00000d9b: JUMPDEST 00000d9c: PUSH1 0x00 00000d9e: SLOAD 00000d9f: PUSH1 0x01 00000da1: PUSH1 0xa0 00000da3: PUSH1 0x02 00000da5: EXP 00000da6: SUB 00000da7: AND 00000da8: DUP2 00000da9: JUMP 00000daa: JUMPDEST 00000dab: PUSH1 0x00 00000dad: CALLER 00000dae: PUSH2 0x0b58 00000db1: DUP2 00000db2: PUSH2 0x0cfc 00000db5: JUMP 00000db6: JUMPDEST 00000db7: PUSH1 0x03 00000db9: DUP1 00000dba: SLOAD 00000dbb: PUSH1 0x40 00000dbd: DUP1 00000dbe: MLOAD 00000dbf: PUSH1 0x20 00000dc1: PUSH1 0x02 00000dc3: PUSH1 0x01 00000dc5: DUP6 00000dc6: AND 00000dc7: ISZERO 00000dc8: PUSH2 0x0100 00000dcb: MUL 00000dcc: PUSH1 0x00 00000dce: NOT 00000dcf: ADD 00000dd0: SWAP1 00000dd1: SWAP5 00000dd2: AND 00000dd3: SWAP4 00000dd4: SWAP1 00000dd5: SWAP4 00000dd6: DIV 00000dd7: PUSH1 0x1f 00000dd9: DUP2 00000dda: ADD 00000ddb: DUP5 00000ddc: SWAP1 00000ddd: DIV 00000dde: DUP5 00000ddf: MUL 00000de0: DUP3 00000de1: ADD 00000de2: DUP5 00000de3: ADD 00000de4: SWAP1 00000de5: SWAP3 00000de6: MSTORE 00000de7: DUP2 00000de8: DUP2 00000de9: MSTORE 00000dea: SWAP3 00000deb: SWAP2 00000dec: DUP4 00000ded: ADD 00000dee: DUP3 00000def: DUP3 00000df0: DUP1 00000df1: ISZERO 00000df2: PUSH2 0x0a80 00000df5: JUMPI 00000df6: DUP1 00000df7: PUSH1 0x1f 00000df9: LT 00000dfa: PUSH2 0x0a55 00000dfd: JUMPI 00000dfe: PUSH2 0x0100 00000e01: DUP1 00000e02: DUP4 00000e03: SLOAD 00000e04: DIV 00000e05: MUL 00000e06: DUP4 00000e07: MSTORE 00000e08: SWAP2 00000e09: PUSH1 0x20 00000e0b: ADD 00000e0c: SWAP2 00000e0d: PUSH2 0x0a80 00000e10: JUMP 00000e11: JUMPDEST 00000e12: PUSH1 0x0f 00000e14: SLOAD 00000e15: DUP2 00000e16: JUMP 00000e17: JUMPDEST 00000e18: PUSH1 0x0a 00000e1a: SLOAD 00000e1b: PUSH1 0x01 00000e1d: PUSH1 0xa0 00000e1f: PUSH1 0x02 00000e21: EXP 00000e22: SUB 00000e23: AND 00000e24: CALLER 00000e25: EQ 00000e26: PUSH2 0x0e2e 00000e29: JUMPI 00000e2a: PUSH1 0x00 00000e2c: DUP1 00000e2d: REVERT 00000e2e: JUMPDEST 00000e2f: PUSH1 0x0c 00000e31: DUP1 00000e32: SLOAD 00000e33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e48: NOT 00000e49: AND 00000e4a: PUSH1 0x01 00000e4c: PUSH1 0xa0 00000e4e: PUSH1 0x02 00000e50: EXP 00000e51: SUB 00000e52: SWAP3 00000e53: SWAP1 00000e54: SWAP3 00000e55: AND 00000e56: SWAP2 00000e57: SWAP1 00000e58: SWAP2 00000e59: OR 00000e5a: SWAP1 00000e5b: SSTORE 00000e5c: JUMP 00000e5d: JUMPDEST 00000e5e: PUSH1 0x18 00000e60: SLOAD 00000e61: PUSH1 0xff 00000e63: AND 00000e64: DUP2 00000e65: JUMP 00000e66: JUMPDEST 00000e67: PUSH1 0x00 00000e69: PUSH2 0x0e72 00000e6c: CALLER 00000e6d: CALLVALUE 00000e6e: PUSH2 0x06c9 00000e71: JUMP 00000e72: JUMPDEST 00000e73: SWAP1 00000e74: POP 00000e75: SWAP1 00000e76: JUMP 00000e77: JUMPDEST 00000e78: PUSH1 0x00 00000e7a: DUP1 00000e7b: PUSH1 0x00 00000e7d: DUP1 00000e7e: PUSH1 0x00 00000e80: DUP1 00000e81: PUSH2 0x0e88 00000e84: PUSH2 0x0daa 00000e87: JUMP 00000e88: JUMPDEST 00000e89: GT 00000e8a: PUSH2 0x0e92 00000e8d: JUMPI 00000e8e: PUSH1 0x00 00000e90: DUP1 00000e91: REVERT 00000e92: JUMPDEST 00000e93: CALLER 00000e94: PUSH1 0x00 00000e96: DUP2 00000e97: DUP2 00000e98: MSTORE 00000e99: PUSH1 0x10 00000e9b: PUSH1 0x20 00000e9d: MSTORE 00000e9e: PUSH1 0x40 00000ea0: SWAP1 00000ea1: KECCAK256 00000ea2: SLOAD 00000ea3: SWAP1 00000ea4: SWAP5 00000ea5: POP 00000ea6: DUP7 00000ea7: GT 00000ea8: ISZERO 00000ea9: PUSH2 0x0eb1 00000eac: JUMPI 00000ead: PUSH1 0x00 00000eaf: DUP1 00000eb0: REVERT 00000eb1: JUMPDEST 00000eb2: PUSH1 0x00 00000eb4: PUSH2 0x0ebb 00000eb7: PUSH2 0x0b4c 00000eba: JUMP 00000ebb: JUMPDEST 00000ebc: GT 00000ebd: ISZERO 00000ebe: PUSH2 0x0ec9 00000ec1: JUMPI 00000ec2: PUSH2 0x0ec9 00000ec5: PUSH2 0x0b74 00000ec8: JUMP 00000ec9: JUMPDEST 00000eca: PUSH2 0x0ed8 00000ecd: PUSH2 0x073f 00000ed0: DUP8 00000ed1: PUSH1 0x05 00000ed3: SLOAD 00000ed4: PUSH2 0x1506 00000ed7: JUMP 00000ed8: JUMPDEST 00000ed9: SWAP3 00000eda: POP 00000edb: PUSH2 0x0ee4 00000ede: DUP7 00000edf: DUP5 00000ee0: PUSH2 0x1551 00000ee3: JUMP 00000ee4: JUMPDEST 00000ee5: SWAP2 00000ee6: POP 00000ee7: DUP3 00000ee8: SWAP1 00000ee9: POP 00000eea: PUSH2 0x0ef5 00000eed: PUSH1 0x14 00000eef: SLOAD 00000ef0: DUP5 00000ef1: PUSH2 0x1551 00000ef4: JUMP 00000ef5: JUMPDEST 00000ef6: PUSH1 0x14 00000ef8: SSTORE 00000ef9: PUSH1 0x01 00000efb: PUSH1 0xa0 00000efd: PUSH1 0x02 00000eff: EXP 00000f00: SUB 00000f01: DUP5 00000f02: AND 00000f03: PUSH1 0x00 00000f05: SWAP1 00000f06: DUP2 00000f07: MSTORE 00000f08: PUSH1 0x10 00000f0a: PUSH1 0x20 00000f0c: MSTORE 00000f0d: PUSH1 0x40 00000f0f: SWAP1 00000f10: KECCAK256 00000f11: SLOAD 00000f12: PUSH2 0x0f1b 00000f15: SWAP1 00000f16: DUP8 00000f17: PUSH2 0x1551 00000f1a: JUMP 00000f1b: JUMPDEST 00000f1c: PUSH1 0x01 00000f1e: PUSH1 0xa0 00000f20: PUSH1 0x02 00000f22: EXP 00000f23: SUB 00000f24: DUP1 00000f25: DUP7 00000f26: AND 00000f27: PUSH1 0x00 00000f29: SWAP1 00000f2a: DUP2 00000f2b: MSTORE 00000f2c: PUSH1 0x10 00000f2e: PUSH1 0x20 00000f30: MSTORE 00000f31: PUSH1 0x40 00000f33: DUP1 00000f34: DUP3 00000f35: KECCAK256 00000f36: SWAP4 00000f37: SWAP1 00000f38: SWAP4 00000f39: SSTORE 00000f3a: SWAP1 00000f3b: DUP10 00000f3c: AND 00000f3d: DUP2 00000f3e: MSTORE 00000f3f: KECCAK256 00000f40: SLOAD 00000f41: PUSH2 0x0f4a 00000f44: SWAP1 00000f45: DUP4 00000f46: PUSH2 0x1544 00000f49: JUMP 00000f4a: JUMPDEST 00000f4b: PUSH1 0x01 00000f4d: PUSH1 0xa0 00000f4f: PUSH1 0x02 00000f51: EXP 00000f52: SUB 00000f53: DUP9 00000f54: DUP2 00000f55: AND 00000f56: PUSH1 0x00 00000f58: DUP2 00000f59: DUP2 00000f5a: MSTORE 00000f5b: PUSH1 0x10 00000f5d: PUSH1 0x20 00000f5f: SWAP1 00000f60: DUP2 00000f61: MSTORE 00000f62: PUSH1 0x40 00000f64: DUP1 00000f65: DUP4 00000f66: KECCAK256 00000f67: SWAP6 00000f68: SWAP1 00000f69: SWAP6 00000f6a: SSTORE 00000f6b: PUSH1 0x15 00000f6d: DUP1 00000f6e: SLOAD 00000f6f: SWAP5 00000f70: DUP11 00000f71: AND 00000f72: DUP4 00000f73: MSTORE 00000f74: PUSH1 0x11 00000f76: SWAP1 00000f77: SWAP2 00000f78: MSTORE 00000f79: DUP5 00000f7a: DUP3 00000f7b: KECCAK256 00000f7c: DUP1 00000f7d: SLOAD 00000f7e: SWAP5 00000f7f: DUP13 00000f80: MUL 00000f81: SWAP1 00000f82: SWAP5 00000f83: SUB 00000f84: SWAP1 00000f85: SWAP4 00000f86: SSTORE 00000f87: SWAP2 00000f88: SLOAD 00000f89: SWAP1 00000f8a: DUP3 00000f8b: MSTORE 00000f8c: SWAP2 00000f8d: SWAP1 00000f8e: KECCAK256 00000f8f: DUP1 00000f90: SLOAD 00000f91: SWAP2 00000f92: DUP5 00000f93: MUL 00000f94: SWAP1 00000f95: SWAP2 00000f96: ADD 00000f97: SWAP1 00000f98: SSTORE 00000f99: PUSH1 0x18 00000f9b: SLOAD 00000f9c: PUSH1 0xff 00000f9e: AND 00000f9f: ISZERO 00000fa0: ISZERO 00000fa1: PUSH2 0x0fb8 00000fa4: JUMPI 00000fa5: PUSH2 0x0fb0 00000fa8: PUSH1 0x0f 00000faa: SLOAD 00000fab: DUP3 00000fac: PUSH2 0x1544 00000faf: JUMP 00000fb0: JUMPDEST 00000fb1: PUSH1 0x0f 00000fb3: SSTORE 00000fb4: PUSH2 0x0fda 00000fb7: JUMP 00000fb8: JUMPDEST 00000fb9: PUSH2 0x0fd6 00000fbc: PUSH1 0x15 00000fbe: SLOAD 00000fbf: PUSH1 0x14 00000fc1: SLOAD 00000fc2: PUSH9 0x010000000000000000 00000fcc: DUP5 00000fcd: MUL 00000fce: DUP2 00000fcf: ISZERO 00000fd0: ISZERO 00000fd1: PUSH2 0x0b03 00000fd4: JUMPI 00000fd5: INVALID 00000fd6: JUMPDEST 00000fd7: PUSH1 0x15 00000fd9: SSTORE 00000fda: JUMPDEST 00000fdb: DUP7 00000fdc: PUSH1 0x01 00000fde: PUSH1 0xa0 00000fe0: PUSH1 0x02 00000fe2: EXP 00000fe3: SUB 00000fe4: AND 00000fe5: DUP5 00000fe6: PUSH1 0x01 00000fe8: PUSH1 0xa0 00000fea: PUSH1 0x02 00000fec: EXP 00000fed: SUB 00000fee: AND 00000fef: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001010: DUP5 00001011: PUSH1 0x40 00001013: MLOAD 00001014: DUP1 00001015: DUP3 00001016: DUP2 00001017: MSTORE 00001018: PUSH1 0x20 0000101a: ADD 0000101b: SWAP2 0000101c: POP 0000101d: POP 0000101e: PUSH1 0x40 00001020: MLOAD 00001021: DUP1 00001022: SWAP2 00001023: SUB 00001024: SWAP1 00001025: LOG3 00001026: POP 00001027: PUSH1 0x01 00001029: SWAP7 0000102a: SWAP6 0000102b: POP 0000102c: POP 0000102d: POP 0000102e: POP 0000102f: POP 00001030: POP 00001031: JUMP 00001032: JUMPDEST 00001033: PUSH1 0x00 00001035: SLOAD 00001036: PUSH1 0x01 00001038: PUSH1 0xa0 0000103a: PUSH1 0x02 0000103c: EXP 0000103d: SUB 0000103e: AND 0000103f: CALLER 00001040: EQ 00001041: PUSH2 0x1049 00001044: JUMPI 00001045: PUSH1 0x00 00001047: DUP1 00001048: REVERT 00001049: JUMPDEST 0000104a: DUP1 0000104b: MLOAD 0000104c: PUSH2 0x105c 0000104f: SWAP1 00001050: PUSH1 0x03 00001052: SWAP1 00001053: PUSH1 0x20 00001055: DUP5 00001056: ADD 00001057: SWAP1 00001058: PUSH2 0x1563 0000105b: JUMP 0000105c: JUMPDEST 0000105d: POP 0000105e: POP 0000105f: JUMP 00001060: JUMPDEST 00001061: PUSH1 0x0b 00001063: SLOAD 00001064: PUSH1 0x01 00001066: PUSH1 0xa0 00001068: PUSH1 0x02 0000106a: EXP 0000106b: SUB 0000106c: AND 0000106d: DUP2 0000106e: JUMP 0000106f: JUMPDEST 00001070: PUSH1 0x00 00001072: SLOAD 00001073: PUSH1 0x01 00001075: PUSH1 0xa0 00001077: PUSH1 0x02 00001079: EXP 0000107a: SUB 0000107b: AND 0000107c: CALLER 0000107d: EQ 0000107e: PUSH2 0x1086 00001081: JUMPI 00001082: PUSH1 0x00 00001084: DUP1 00001085: REVERT 00001086: JUMPDEST 00001087: DUP1 00001088: MLOAD 00001089: PUSH2 0x105c 0000108c: SWAP1 0000108d: PUSH1 0x02 0000108f: SWAP1 00001090: PUSH1 0x20 00001092: DUP5 00001093: ADD 00001094: SWAP1 00001095: PUSH2 0x1563 00001098: JUMP 00001099: JUMPDEST 0000109a: PUSH1 0x16 0000109c: SLOAD 0000109d: DUP2 0000109e: JUMP 0000109f: JUMPDEST 000010a0: PUSH1 0x00 000010a2: DUP1 000010a3: PUSH1 0x00 000010a5: DUP1 000010a6: PUSH2 0x10ad 000010a9: PUSH2 0x0b4c 000010ac: JUMP 000010ad: JUMPDEST 000010ae: GT 000010af: PUSH2 0x10b7 000010b2: JUMPI 000010b3: PUSH1 0x00 000010b5: DUP1 000010b6: REVERT 000010b7: JUMPDEST 000010b8: CALLER 000010b9: SWAP3 000010ba: POP 000010bb: PUSH2 0x10c2 000010be: PUSH2 0x0b4c 000010c1: JUMP 000010c2: JUMPDEST 000010c3: PUSH1 0x01 000010c5: PUSH1 0xa0 000010c7: PUSH1 0x02 000010c9: EXP 000010ca: SUB 000010cb: DUP5 000010cc: AND 000010cd: PUSH1 0x00 000010cf: SWAP1 000010d0: DUP2 000010d1: MSTORE 000010d2: PUSH1 0x11 000010d4: PUSH1 0x20 000010d6: MSTORE 000010d7: PUSH1 0x40 000010d9: SWAP1 000010da: KECCAK256 000010db: DUP1 000010dc: SLOAD 000010dd: PUSH9 0x010000000000000000 000010e7: DUP4 000010e8: MUL 000010e9: ADD 000010ea: SWAP1 000010eb: SSTORE 000010ec: SWAP2 000010ed: POP 000010ee: PUSH2 0x10f7 000010f1: DUP4 000010f2: DUP4 000010f3: PUSH2 0x06c9 000010f6: JUMP 000010f7: JUMPDEST 000010f8: SWAP1 000010f9: POP 000010fa: DUP3 000010fb: PUSH1 0x01 000010fd: PUSH1 0xa0 000010ff: PUSH1 0x02 00001101: EXP 00001102: SUB 00001103: AND 00001104: PUSH32 0xe4f0eeaa8dd27ac941d5cb906c00cec31d5590659951566d91f7ec9eaacc8e0c 00001125: DUP4 00001126: DUP4 00001127: PUSH1 0x40 00001129: MLOAD 0000112a: DUP1 0000112b: DUP4 0000112c: DUP2 0000112d: MSTORE 0000112e: PUSH1 0x20 00001130: ADD 00001131: DUP3 00001132: DUP2 00001133: MSTORE 00001134: PUSH1 0x20 00001136: ADD 00001137: SWAP3 00001138: POP 00001139: POP 0000113a: POP 0000113b: PUSH1 0x40 0000113d: MLOAD 0000113e: DUP1 0000113f: SWAP2 00001140: SUB 00001141: SWAP1 00001142: LOG2 00001143: POP 00001144: POP 00001145: POP 00001146: JUMP 00001147: JUMPDEST 00001148: PUSH1 0x00 0000114a: DUP1 0000114b: PUSH1 0x00 0000114d: DUP1 0000114e: PUSH1 0x00 00001150: DUP1 00001151: PUSH1 0x00 00001153: DUP1 00001154: PUSH2 0x115b 00001157: PUSH2 0x0daa 0000115a: JUMP 0000115b: JUMPDEST 0000115c: GT 0000115d: PUSH2 0x1165 00001160: JUMPI 00001161: PUSH1 0x00 00001163: DUP1 00001164: REVERT 00001165: JUMPDEST 00001166: CALLER 00001167: PUSH1 0x00 00001169: DUP2 0000116a: DUP2 0000116b: MSTORE 0000116c: PUSH1 0x10 0000116e: PUSH1 0x20 00001170: MSTORE 00001171: PUSH1 0x40 00001173: SWAP1 00001174: KECCAK256 00001175: SLOAD 00001176: SWAP1 00001177: SWAP8 00001178: POP 00001179: DUP9 0000117a: GT 0000117b: ISZERO 0000117c: PUSH2 0x1184 0000117f: JUMPI 00001180: PUSH1 0x00 00001182: DUP1 00001183: REVERT 00001184: JUMPDEST 00001185: PUSH2 0x1193 00001188: PUSH2 0x073f 0000118b: DUP10 0000118c: PUSH1 0x06 0000118e: SLOAD 0000118f: PUSH2 0x1506 00001192: JUMP 00001193: JUMPDEST 00001194: SWAP6 00001195: POP 00001196: PUSH2 0x11a4 00001199: PUSH2 0x073f 0000119c: DUP8 0000119d: PUSH1 0x08 0000119f: SLOAD 000011a0: PUSH2 0x1506 000011a3: JUMP 000011a4: JUMPDEST 000011a5: PUSH1 0x09 000011a7: SLOAD 000011a8: PUSH1 0x40 000011aa: MLOAD 000011ab: SWAP2 000011ac: SWAP7 000011ad: POP 000011ae: PUSH1 0x01 000011b0: PUSH1 0xa0 000011b2: PUSH1 0x02 000011b4: EXP 000011b5: SUB 000011b6: AND 000011b7: SWAP1 000011b8: DUP7 000011b9: ISZERO 000011ba: PUSH2 0x08fc 000011bd: MUL 000011be: SWAP1 000011bf: DUP8 000011c0: SWAP1 000011c1: PUSH1 0x00 000011c3: DUP2 000011c4: DUP2 000011c5: DUP2 000011c6: DUP6 000011c7: DUP9 000011c8: DUP9 000011c9: CALL 000011ca: SWAP4 000011cb: POP 000011cc: POP 000011cd: POP 000011ce: POP 000011cf: ISZERO 000011d0: DUP1 000011d1: ISZERO 000011d2: PUSH2 0x11df 000011d5: JUMPI 000011d6: RETURNDATASIZE 000011d7: PUSH1 0x00 000011d9: DUP1 000011da: RETURNDATACOPY 000011db: RETURNDATASIZE 000011dc: PUSH1 0x00 000011de: REVERT 000011df: JUMPDEST 000011e0: POP 000011e1: PUSH2 0x11ef 000011e4: PUSH2 0x073f 000011e7: DUP8 000011e8: PUSH1 0x07 000011ea: SLOAD 000011eb: PUSH2 0x1506 000011ee: JUMP 000011ef: JUMPDEST 000011f0: PUSH1 0x0e 000011f2: DUP1 000011f3: SLOAD 000011f4: DUP3 000011f5: ADD 000011f6: SWAP1 000011f7: SSTORE 000011f8: PUSH1 0x0d 000011fa: SLOAD 000011fb: PUSH1 0x40 000011fd: MLOAD 000011fe: SWAP2 000011ff: SWAP6 00001200: POP 00001201: PUSH1 0x01 00001203: PUSH1 0xa0 00001205: PUSH1 0x02 00001207: EXP 00001208: SUB 00001209: AND 0000120a: SWAP1 0000120b: DUP6 0000120c: ISZERO 0000120d: PUSH2 0x08fc 00001210: MUL 00001211: SWAP1 00001212: DUP7 00001213: SWAP1 00001214: PUSH1 0x00 00001216: DUP2 00001217: DUP2 00001218: DUP2 00001219: DUP6 0000121a: DUP9 0000121b: DUP9 0000121c: CALL 0000121d: SWAP4 0000121e: POP 0000121f: POP 00001220: POP 00001221: POP 00001222: ISZERO 00001223: DUP1 00001224: ISZERO 00001225: PUSH2 0x1232 00001228: JUMPI 00001229: RETURNDATASIZE 0000122a: PUSH1 0x00 0000122c: DUP1 0000122d: RETURNDATACOPY 0000122e: RETURNDATASIZE 0000122f: PUSH1 0x00 00001231: REVERT 00001232: JUMPDEST 00001233: POP 00001234: PUSH2 0x1241 00001237: DUP7 00001238: PUSH2 0x07f4 0000123b: DUP8 0000123c: DUP8 0000123d: PUSH2 0x1544 00001240: JUMP 00001241: JUMPDEST 00001242: SWAP3 00001243: POP 00001244: PUSH2 0x124d 00001247: DUP9 00001248: DUP8 00001249: PUSH2 0x1551 0000124c: JUMP 0000124d: JUMPDEST 0000124e: SWAP2 0000124f: POP 00001250: PUSH2 0x125b 00001253: PUSH1 0x14 00001255: SLOAD 00001256: DUP10 00001257: PUSH2 0x1551 0000125a: JUMP 0000125b: JUMPDEST 0000125c: PUSH1 0x14 0000125e: SSTORE 0000125f: PUSH1 0x01 00001261: PUSH1 0xa0 00001263: PUSH1 0x02 00001265: EXP 00001266: SUB 00001267: DUP8 00001268: AND 00001269: PUSH1 0x00 0000126b: SWAP1 0000126c: DUP2 0000126d: MSTORE 0000126e: PUSH1 0x10 00001270: PUSH1 0x20 00001272: MSTORE 00001273: PUSH1 0x40 00001275: SWAP1 00001276: KECCAK256 00001277: SLOAD 00001278: PUSH2 0x1281 0000127b: SWAP1 0000127c: DUP10 0000127d: PUSH2 0x1551 00001280: JUMP 00001281: JUMPDEST 00001282: PUSH1 0x01 00001284: PUSH1 0xa0 00001286: PUSH1 0x02 00001288: EXP 00001289: SUB 0000128a: DUP9 0000128b: AND 0000128c: PUSH1 0x00 0000128e: SWAP1 0000128f: DUP2 00001290: MSTORE 00001291: PUSH1 0x10 00001293: PUSH1 0x20 00001295: SWAP1 00001296: DUP2 00001297: MSTORE 00001298: PUSH1 0x40 0000129a: DUP1 0000129b: DUP4 0000129c: KECCAK256 0000129d: SWAP4 0000129e: SWAP1 0000129f: SWAP4 000012a0: SSTORE 000012a1: PUSH1 0x15 000012a3: SLOAD 000012a4: PUSH1 0x11 000012a6: SWAP1 000012a7: SWAP2 000012a8: MSTORE 000012a9: SWAP2 000012aa: SWAP1 000012ab: KECCAK256 000012ac: DUP1 000012ad: SLOAD 000012ae: SWAP2 000012af: DUP11 000012b0: MUL 000012b1: PUSH9 0x010000000000000000 000012bb: DUP6 000012bc: MUL 000012bd: ADD 000012be: SWAP2 000012bf: DUP3 000012c0: SWAP1 000012c1: SUB 000012c2: SWAP1 000012c3: SSTORE 000012c4: PUSH1 0x18 000012c6: SLOAD 000012c7: SWAP1 000012c8: SWAP2 000012c9: POP 000012ca: PUSH1 0xff 000012cc: AND 000012cd: ISZERO 000012ce: ISZERO 000012cf: PUSH2 0x12e6 000012d2: JUMPI 000012d3: PUSH2 0x12de 000012d6: PUSH1 0x0f 000012d8: SLOAD 000012d9: DUP5 000012da: PUSH2 0x1544 000012dd: JUMP 000012de: JUMPDEST 000012df: PUSH1 0x0f 000012e1: SSTORE 000012e2: PUSH2 0x1313 000012e5: JUMP 000012e6: JUMPDEST 000012e7: PUSH1 0x00 000012e9: PUSH1 0x14 000012eb: SLOAD 000012ec: GT 000012ed: ISZERO 000012ee: PUSH2 0x1313 000012f1: JUMPI 000012f2: PUSH2 0x130f 000012f5: PUSH1 0x15 000012f7: SLOAD 000012f8: PUSH1 0x14 000012fa: SLOAD 000012fb: PUSH9 0x010000000000000000 00001305: DUP7 00001306: MUL 00001307: DUP2 00001308: ISZERO 00001309: ISZERO 0000130a: PUSH2 0x0b03 0000130d: JUMPI 0000130e: INVALID 0000130f: JUMPDEST 00001310: PUSH1 0x15 00001312: SSTORE 00001313: JUMPDEST 00001314: PUSH1 0x40 00001316: DUP1 00001317: MLOAD 00001318: DUP10 00001319: DUP2 0000131a: MSTORE 0000131b: SWAP1 0000131c: MLOAD 0000131d: PUSH1 0x00 0000131f: SWAP2 00001320: PUSH1 0x01 00001322: PUSH1 0xa0 00001324: PUSH1 0x02 00001326: EXP 00001327: SUB 00001328: DUP11 00001329: AND 0000132a: SWAP2 0000132b: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000134c: SWAP2 0000134d: DUP2 0000134e: SWAP1 0000134f: SUB 00001350: PUSH1 0x20 00001352: ADD 00001353: SWAP1 00001354: LOG3 00001355: PUSH1 0x40 00001357: DUP1 00001358: MLOAD 00001359: DUP10 0000135a: DUP2 0000135b: MSTORE 0000135c: PUSH1 0x20 0000135e: DUP2 0000135f: ADD 00001360: DUP5 00001361: SWAP1 00001362: MSTORE 00001363: TIMESTAMP 00001364: DUP2 00001365: DUP4 00001366: ADD 00001367: MSTORE 00001368: SWAP1 00001369: MLOAD 0000136a: PUSH1 0x01 0000136c: PUSH1 0xa0 0000136e: PUSH1 0x02 00001370: EXP 00001371: SUB 00001372: DUP10 00001373: AND 00001374: SWAP2 00001375: PUSH32 0x723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5 00001396: SWAP2 00001397: SWAP1 00001398: DUP2 00001399: SWAP1 0000139a: SUB 0000139b: PUSH1 0x60 0000139d: ADD 0000139e: SWAP1 0000139f: LOG2 000013a0: POP 000013a1: POP 000013a2: POP 000013a3: POP 000013a4: POP 000013a5: POP 000013a6: POP 000013a7: POP 000013a8: JUMP 000013a9: JUMPDEST 000013aa: PUSH1 0x00 000013ac: DUP1 000013ad: CALLVALUE 000013ae: GT 000013af: DUP1 000013b0: ISZERO 000013b1: PUSH2 0x13c1 000013b4: JUMPI 000013b5: POP 000013b6: PUSH1 0x18 000013b8: SLOAD 000013b9: PUSH1 0xff 000013bb: AND 000013bc: ISZERO 000013bd: ISZERO 000013be: PUSH1 0x01 000013c0: EQ 000013c1: JUMPDEST 000013c2: ISZERO 000013c3: ISZERO 000013c4: PUSH2 0x13cc 000013c7: JUMPI 000013c8: PUSH1 0x00 000013ca: DUP1 000013cb: REVERT 000013cc: JUMPDEST 000013cd: PUSH1 0x17 000013cf: DUP1 000013d0: SLOAD 000013d1: CALLVALUE 000013d2: SWAP1 000013d3: DUP2 000013d4: ADD 000013d5: SWAP1 000013d6: SWAP2 000013d7: SSTORE 000013d8: PUSH1 0x15 000013da: SLOAD 000013db: PUSH1 0x14 000013dd: SLOAD 000013de: PUSH2 0x13f5 000013e1: SWAP3 000013e2: PUSH9 0x010000000000000000 000013ec: MUL 000013ed: DUP2 000013ee: ISZERO 000013ef: ISZERO 000013f0: PUSH2 0x0b03 000013f3: JUMPI 000013f4: INVALID 000013f5: JUMPDEST 000013f6: PUSH1 0x15 000013f8: SSTORE 000013f9: PUSH1 0x40 000013fb: DUP1 000013fc: MLOAD 000013fd: CALLVALUE 000013fe: DUP2 000013ff: MSTORE 00001400: SWAP1 00001401: MLOAD 00001402: CALLER 00001403: SWAP2 00001404: PUSH32 0xd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064 00001425: SWAP2 00001426: SWAP1 00001427: DUP2 00001428: SWAP1 00001429: SUB 0000142a: PUSH1 0x20 0000142c: ADD 0000142d: SWAP1 0000142e: LOG2 0000142f: SWAP1 00001430: JUMP 00001431: JUMPDEST 00001432: CALLER 00001433: PUSH1 0x00 00001435: DUP2 00001436: DUP2 00001437: MSTORE 00001438: PUSH1 0x10 0000143a: PUSH1 0x20 0000143c: MSTORE 0000143d: PUSH1 0x40 0000143f: DUP2 00001440: KECCAK256 00001441: SLOAD 00001442: SWAP1 00001443: DUP2 00001444: GT 00001445: ISZERO 00001446: PUSH2 0x1452 00001449: JUMPI 0000144a: PUSH2 0x1452 0000144d: DUP2 0000144e: PUSH2 0x1147 00001451: JUMP 00001452: JUMPDEST 00001453: PUSH2 0x105c 00001456: PUSH2 0x0b74 00001459: JUMP 0000145a: JUMPDEST 0000145b: PUSH1 0x17 0000145d: SLOAD 0000145e: DUP2 0000145f: JUMP 00001460: JUMPDEST 00001461: PUSH1 0x00 00001463: SLOAD 00001464: PUSH1 0x01 00001466: PUSH1 0xa0 00001468: PUSH1 0x02 0000146a: EXP 0000146b: SUB 0000146c: AND 0000146d: CALLER 0000146e: EQ 0000146f: PUSH2 0x1477 00001472: JUMPI 00001473: PUSH1 0x00 00001475: DUP1 00001476: REVERT 00001477: JUMPDEST 00001478: PUSH1 0x01 0000147a: PUSH1 0xa0 0000147c: PUSH1 0x02 0000147e: EXP 0000147f: SUB 00001480: DUP2 00001481: AND 00001482: ISZERO 00001483: ISZERO 00001484: PUSH2 0x148c 00001487: JUMPI 00001488: PUSH1 0x00 0000148a: DUP1 0000148b: REVERT 0000148c: JUMPDEST 0000148d: PUSH1 0x00 0000148f: DUP1 00001490: SLOAD 00001491: PUSH1 0x40 00001493: MLOAD 00001494: PUSH1 0x01 00001496: PUSH1 0xa0 00001498: PUSH1 0x02 0000149a: EXP 0000149b: SUB 0000149c: DUP1 0000149d: DUP6 0000149e: AND 0000149f: SWAP4 000014a0: SWAP3 000014a1: AND 000014a2: SWAP2 000014a3: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000014c4: SWAP2 000014c5: LOG3 000014c6: PUSH1 0x00 000014c8: DUP1 000014c9: SLOAD 000014ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014df: NOT 000014e0: AND 000014e1: PUSH1 0x01 000014e3: PUSH1 0xa0 000014e5: PUSH1 0x02 000014e7: EXP 000014e8: SUB 000014e9: SWAP3 000014ea: SWAP1 000014eb: SWAP3 000014ec: AND 000014ed: SWAP2 000014ee: SWAP1 000014ef: SWAP2 000014f0: OR 000014f1: SWAP1 000014f2: SSTORE 000014f3: JUMP 000014f4: JUMPDEST 000014f5: PUSH1 0x12 000014f7: PUSH1 0x20 000014f9: MSTORE 000014fa: PUSH1 0x00 000014fc: SWAP1 000014fd: DUP2 000014fe: MSTORE 000014ff: PUSH1 0x40 00001501: SWAP1 00001502: KECCAK256 00001503: SLOAD 00001504: DUP2 00001505: JUMP 00001506: JUMPDEST 00001507: PUSH1 0x00 00001509: DUP3 0000150a: ISZERO 0000150b: ISZERO 0000150c: PUSH2 0x1517 0000150f: JUMPI 00001510: POP 00001511: PUSH1 0x00 00001513: PUSH2 0x0cf6 00001516: JUMP 00001517: JUMPDEST 00001518: POP 00001519: DUP2 0000151a: DUP2 0000151b: MUL 0000151c: DUP2 0000151d: DUP4 0000151e: DUP3 0000151f: DUP2 00001520: ISZERO 00001521: ISZERO 00001522: PUSH2 0x1527 00001525: JUMPI 00001526: INVALID 00001527: JUMPDEST 00001528: DIV 00001529: EQ 0000152a: PUSH2 0x0cf6 0000152d: JUMPI 0000152e: INVALID 0000152f: JUMPDEST 00001530: PUSH1 0x00 00001532: DUP2 00001533: DUP4 00001534: DUP2 00001535: ISZERO 00001536: ISZERO 00001537: PUSH2 0x153c 0000153a: JUMPI 0000153b: INVALID 0000153c: JUMPDEST 0000153d: DIV 0000153e: SWAP4 0000153f: SWAP3 00001540: POP 00001541: POP 00001542: POP 00001543: JUMP 00001544: JUMPDEST 00001545: DUP2 00001546: DUP2 00001547: ADD 00001548: DUP3 00001549: DUP2 0000154a: LT 0000154b: ISZERO 0000154c: PUSH2 0x0cf6 0000154f: JUMPI 00001550: INVALID 00001551: JUMPDEST 00001552: PUSH1 0x00 00001554: DUP3 00001555: DUP3 00001556: GT 00001557: ISZERO 00001558: PUSH2 0x155d 0000155b: JUMPI 0000155c: INVALID 0000155d: JUMPDEST 0000155e: POP 0000155f: SWAP1 00001560: SUB 00001561: SWAP1 00001562: JUMP 00001563: JUMPDEST 00001564: DUP3 00001565: DUP1 00001566: SLOAD 00001567: PUSH1 0x01 00001569: DUP2 0000156a: PUSH1 0x01 0000156c: AND 0000156d: ISZERO 0000156e: PUSH2 0x0100 00001571: MUL 00001572: SUB 00001573: AND 00001574: PUSH1 0x02 00001576: SWAP1 00001577: DIV 00001578: SWAP1 00001579: PUSH1 0x00 0000157b: MSTORE 0000157c: PUSH1 0x20 0000157e: PUSH1 0x00 00001580: KECCAK256 00001581: SWAP1 00001582: PUSH1 0x1f 00001584: ADD 00001585: PUSH1 0x20 00001587: SWAP1 00001588: DIV 00001589: DUP2 0000158a: ADD 0000158b: SWAP3 0000158c: DUP3 0000158d: PUSH1 0x1f 0000158f: LT 00001590: PUSH2 0x15a4 00001593: JUMPI 00001594: DUP1 00001595: MLOAD 00001596: PUSH1 0xff 00001598: NOT 00001599: AND 0000159a: DUP4 0000159b: DUP1 0000159c: ADD 0000159d: OR 0000159e: DUP6 0000159f: SSTORE 000015a0: PUSH2 0x15d1 000015a3: JUMP 000015a4: JUMPDEST 000015a5: DUP3 000015a6: DUP1 000015a7: ADD 000015a8: PUSH1 0x01 000015aa: ADD 000015ab: DUP6 000015ac: SSTORE 000015ad: DUP3 000015ae: ISZERO 000015af: PUSH2 0x15d1 000015b2: JUMPI 000015b3: SWAP2 000015b4: DUP3 000015b5: ADD 000015b6: JUMPDEST 000015b7: DUP3 000015b8: DUP2 000015b9: GT 000015ba: ISZERO 000015bb: PUSH2 0x15d1 000015be: JUMPI 000015bf: DUP3 000015c0: MLOAD 000015c1: DUP3 000015c2: SSTORE 000015c3: SWAP2 000015c4: PUSH1 0x20 000015c6: ADD 000015c7: SWAP2 000015c8: SWAP1 000015c9: PUSH1 0x01 000015cb: ADD 000015cc: SWAP1 000015cd: PUSH2 0x15b6 000015d0: JUMP 000015d1: JUMPDEST 000015d2: POP 000015d3: PUSH2 0x0b5b 000015d6: SWAP3 000015d7: PUSH2 0x0b1f 000015da: SWAP3 000015db: POP 000015dc: SWAP1 000015dd: JUMPDEST 000015de: DUP1 000015df: DUP3 000015e0: GT 000015e1: ISZERO 000015e2: PUSH2 0x0b5b 000015e5: JUMPI 000015e6: PUSH1 0x00 000015e8: DUP2 000015e9: SSTORE 000015ea: PUSH1 0x01 000015ec: ADD 000015ed: PUSH2 0x15dd 000015f0: JUMP 000015f1: STOP 000015f2: LOG1 000015f3: PUSH6 0x627a7a723058 000015fa: KECCAK256 000015fb: STATICCALL 000015fc: CLZ 000015fd: UNKNOWN(0x26) 000015fe: UNKNOWN(0xE1) 000015ff: SWAP13 00001600: UNKNOWN(0xD0) 00001601: PUSH13 0x38b17649d4ebf4bd27deeffb18 0000160f: UNKNOWN(0xDD) 00001610: UNKNOWN(0xE3) 00001611: PUSH8 0x77c937fdbc76af45 0000161a: OR 0000161b: STOP 0000161c: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | math | codex | Late-buy launch-fund sniping allows capture of accumulated prelaunch dividends | 85 | no | — |
viewevidence_json{
"evidence": "The launch fund accumulates while postLaunch is false and is distributed to whoever holds tokens at the moment distributeLaunchFund is called, with no snapshot or cutoff.",
"locations": [
"contracts/Contract.sol:160",
"contracts/Contract.sol:161",
"contracts/Contract.sol:162",
"contracts/Contract.sol:371",
"contracts/Contract.sol:373",
"contracts/Contract.sol:224",
"contracts/Contract.sol:225"
],
"recommendation": "Snapshot eligible balances at a prelaunch cutoff or finalize postLaunch with a fixed tokenSupply_ so late buyers cannot join the launch-fund distribution; alternatively, distribute launch funds continuously rather than in a single callable lump sum.",
"exploit_scenario": "1) Monitor state while postLaunch is false; if totalLaunchFundCollected is large relative to tokenSupply_ (often after prelaunch sells add to the launch fund), prepare a helper contract. 2) Call buy() with a small amount of ETH and immediately call distributeLaunchFund() in the same transaction to lock in the distribution at the new (slightly higher) tokenSupply_. 3) Call withdraw() to collect your share of the entire launch fund, then optionally exit your tokens. Example: if totalLaunchFundCollected=14.4 ETH and tokenSupply_=10 tokens, buying 1 ETH (0.9 tokens) then calling distributeLaunchFund yields about 1.19 ETH in dividends, netting ~0.19 ETH profit before even exiting tokens. Profit magnitude: up to roughly the launch fund balance (O(totalLaunchFundCollected)) when tokenSupply_ is tiny."
}
|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10d0ffdd",
"selector": "0x10d0ffdd",
"calldata_variants": [
"0x10d0ffdd",
"0x10d0ffdd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1296bffd",
"selector": "0x1296bffd",
"calldata_variants": [
"0x1296bffd",
"0x1296bffd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22609373",
"selector": "0x22609373",
"calldata_variants": [
"0x22609373",
"0x226093730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3151ecfc",
"selector": "0x3151ecfc",
"calldata_variants": [
"0x3151ecfc",
"0x3151ecfc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x34ecfbb8",
"selector": "0x34ecfbb8",
"calldata_variants": [
"0x34ecfbb8",
"0x34ecfbb80000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 3184,
"type": "tx_origin_used"
},
{
"pc": 3183,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x6dc4e2ecdfd6e4c4c57e7d3767f480e961175fc9bde53f927402b9643284d96a
call_targets:
0xe01e2a3ceafa8233021fc759e5a69863558326b6
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x6dc4e2ecdfd6e4c4c57e7d3767f480e961175fc9bde53f927402b9643284d96a",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xe01e2a3ceafa8233021fc759e5a69863558326b6"
],
"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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10d0ffdd",
"selector": "0x10d0ffdd",
"calldata_variants": [
"0x10d0ffdd",
"0x10d0ffdd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1296bffd",
"selector": "0x1296bffd",
"calldata_variants": [
"0x1296bffd",
"0x1296bffd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22609373",
"selector": "0x22609373",
"calldata_variants": [
"0x22609373",
"0x226093730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3151ecfc",
"selector": "0x3151ecfc",
"calldata_variants": [
"0x3151ecfc",
"0x3151ecfc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x34ecfbb8",
"selector": "0x34ecfbb8",
"calldata_variants": [
"0x34ecfbb8",
"0x34ecfbb80000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1916,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1999,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3031,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 5,
"guards_detected": [
{
"pc": 3184,
"type": "tx_origin_used"
},
{
"pc": 3183,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 5
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x6dc4e2ecdfd6e4c4c57e7d3767f480e961175fc9bde53f927402b9643284d96a
call_targets:
0xe01e2a3ceafa8233021fc759e5a69863558326b6
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x6dc4e2ecdfd6e4c4c57e7d3767f480e961175fc9bde53f927402b9643284d96a",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xe01e2a3ceafa8233021fc759e5a69863558326b6"
],
"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": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10d0ffdd",
"selector": "0x10d0ffdd",
"calldata_variants": [
"0x10d0ffdd",
"0x10d0ffdd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1296bffd",
"selector": "0x1296bffd",
"calldata_variants": [
"0x1296bffd",
"0x1296bffd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22609373",
"selector": "0x22609373",
"calldata_variants": [
"0x22609373",
"0x226093730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3151ecfc",
"selector": "0x3151ecfc",
"calldata_variants": [
"0x3151ecfc",
"0x3151ecfc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x34ecfbb8",
"selector": "0x34ecfbb8",
"calldata_variants": [
"0x34ecfbb8",
"0x34ecfbb80000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1916,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1999,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3031,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 5,
"guards_detected": [
{
"pc": 3184,
"type": "tx_origin_used"
},
{
"pc": 3183,
"type": "tx_origin_used"
}
]
}
|