019bb490-f318-736f-80a5-c2d60794689b
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 |
|---|---|---|---|---|
| 40018 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 40019 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 40020 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 40021 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 40022 | capability.graph | complete | 1 / 3 | 3 months ago |
| 40023 | detector.run | complete | 1 / 3 | 3 months ago |
| 40024 | validation.fork | complete | 1 / 3 | 3 months ago |
| 40185 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Refunds return ETH without burning or reclaiming minted tokens, enabling contributors to keep tokens after getting their full refund if refunds are enabled.","findings":[{"severity":"high","category":"other","title":"Refunds do not burn/reclaim tokens, enabling free tokens on refund","exploit_scenario":"An investor buys during the sale and receives minted tokens. If the softcap is missed and refunds are enabled, the investor calls refund() to get their full ETH contribution back while still retaining the tokens (or transferring them away first). This breaks the sale’s accounting and allows free tokens while draining the refund pool.","recommendation":"Require token return/burn on refund (e.g., transfer tokens back to a burn address or escrow and burn on refund), or delay minting until refunds are closed/softcap reached. Alternatively, track purchased tokens per contributor and burn them during refunds before sending ETH.","evidence":"refund() only zeroes the ETH balance and transfers ETH back, while createTokens() mints tokens immediately with no linkage to refunds or burns.","locations":["contracts/Contract.sol:603","contracts/Contract.sol:629"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-crq8u2gy
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb493-f5c9-7582-af43-34792182b463
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
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 and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Running file audit command**
exec
/bin/bash -lc ls in /tmp/codex-crq8u2gy succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-crq8u2gy succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
pragma solidity ^0.4.23;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
thinking
**Analyzing Solidity token sale vulnerabilities**
exec
/bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '200,420p'" in /tmp/codex-crq8u2gy succeeded in 8ms:
200 balances[_to] = balances[_to].add(_value);
201 emit Transfer(msg.sender, _to, _value);
202 return true;
203 }
204
205 /**
206 * @dev Gets the balance of the specified address.
207 * @param _owner The address to query the the balance of.
208 * @return An uint256 representing the amount owned by the passed address.
209 */
210 function balanceOf(address _owner) public view returns (uint256) {
211 return balances[_owner];
212 }
213
214 }
215
216
217 /**
218 * @title Standard ERC20 token
219 *
thinking
**Preparing to add line numbers**
exec
/bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '560,820p'" in /tmp/codex-crq8u2gy succeeded in 19ms:
560 token = _token;
561
562 rate = 83333333333000000000;
563
564 softcap = 1600000000000000000000;
565 start = 1527811200;
566 end = 1533081600;
567 }
568
569
570
571
572 modifier saleIsOn() {
573 require(now > start && now < end);
574 _;
575 }
576
577
578 function spreadTokens() external onlyOwner {
579 require(!tokenSpread);
thinking
**Preparing to read source file**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '330,520p'" in /tmp/codex-crq8u2gy succeeded in 8ms:
330
331 }
332
333 /**
334 * @title Pausable token
335 * @dev StandardToken modified with pausable transfers.
336 **/
337 contract PausableToken is StandardToken, Pausable {
338
339 function transfer(
340 address _to,
341 uint256 _value
342 )
343 public
344 whenNotPaused
345 returns (bool)
346 {
347 return super.transfer(_to, _value);
348 }
349
thinking
**Continuing refund section review**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '560,760p'" in /tmp/codex-crq8u2gy succeeded in 10ms:
560 end = 1533081600;
561 }
562
563
564
565
566 modifier saleIsOn() {
567 require(now > start && now < end);
568 _;
569 }
570
571
572 function spreadTokens() external onlyOwner {
573 require(!tokenSpread);
574
575 token.mint(holderReserveTokens, SUPPLY_FOR_RESERVE);
576 token.mint(holderMarketingTokens, SUPPLY_FOR_MARKETING);
577 token.mint(holderTeamTokens, SUPPLY_FOR_TEAM);
578 token.mint(holderReferalTokens, SUPPLY_FOR_REFERAL);
579 token.mint(holderAdvisorsTokens, SUPPLY_FOR_ADVISORSL);
thinking
**Preparing detailed audit findings**
codex
{"no_findings":false,"summary":"Refunds return ETH without burning or reclaiming minted tokens, enabling contributors to keep tokens after getting their full refund if refunds are enabled.","findings":[{"severity":"high","category":"other","title":"Refunds do not burn/reclaim tokens, enabling free tokens on refund","exploit_scenario":"An investor buys during the sale and receives minted tokens. If the softcap is missed and refunds are enabled, the investor calls refund() to get their full ETH contribution back while still retaining the tokens (or transferring them away first). This breaks the sale’s accounting and allows free tokens while draining the refund pool.","recommendation":"Require token return/burn on refund (e.g., transfer tokens back to a burn address or escrow and burn on refund), or delay minting until refunds are closed/softcap reached. Alternatively, track purchased tokens per contributor and burn them during refunds before sending ETH.","evidence":"refund() only zeroes the ETH balance and transfers ETH back, while createTokens() mints tokens immediately with no linkage to refunds or burns.","locations":["contracts/Contract.sol:603","contracts/Contract.sol:629"]}]}
tokens used
24,438
{
"codex": {
"ran_at": "2026-01-12T23:40:47.128080+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Refunds return ETH without burning or reclaiming minted tokens, enabling contributors to keep tokens after getting their full refund if refunds are enabled.",
"raw_final": {
"summary": "Refunds return ETH without burning or reclaiming minted tokens, enabling contributors to keep tokens after getting their full refund if refunds are enabled.",
"findings": [
{
"title": "Refunds do not burn/reclaim tokens, enabling free tokens on refund",
"category": "other",
"evidence": "refund() only zeroes the ETH balance and transfers ETH back, while createTokens() mints tokens immediately with no linkage to refunds or burns.",
"severity": "high",
"locations": [
"contracts/Contract.sol:603",
"contracts/Contract.sol:629"
],
"recommendation": "Require token return/burn on refund (e.g., transfer tokens back to a burn address or escrow and burn on refund), or delay minting until refunds are closed/softcap reached. Alternatively, track purchased tokens per contributor and burn them during refunds before sending ETH.",
"exploit_scenario": "An investor buys during the sale and receives minted tokens. If the softcap is missed and refunds are enabled, the investor calls refund() to get their full ETH contribution back while still retaining the tokens (or transferring them away first). This breaks the sale\u2019s accounting and allows free tokens while draining the refund pool."
}
],
"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 0x0196 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: SWAP1 0000002f: DIV 00000030: PUSH4 0xffffffff 00000035: AND 00000036: DUP1 00000037: PUSH4 0x1edc5ce0 0000003c: EQ 0000003d: PUSH2 0x01a0 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x27e235e3 00000047: EQ 00000048: PUSH2 0x01cb 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x2bdd530b 00000052: EQ 00000053: PUSH2 0x0222 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x2c4e722e 0000005d: EQ 0000005e: PUSH2 0x0279 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x313ce567 00000068: EQ 00000069: PUSH2 0x02a4 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x4559b2e8 00000073: EQ 00000074: PUSH2 0x02d5 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x4783c35b 0000007e: EQ 0000007f: PUSH2 0x032c 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0x48224f67 00000089: EQ 0000008a: PUSH2 0x0383 0000008d: JUMPI 0000008e: DUP1 0000008f: PUSH4 0x51c221ec 00000094: EQ 00000095: PUSH2 0x03ae 00000098: JUMPI 00000099: DUP1 0000009a: PUSH4 0x55909da3 0000009f: EQ 000000a0: PUSH2 0x0405 000000a3: JUMPI 000000a4: DUP1 000000a5: PUSH4 0x590e1ae3 000000aa: EQ 000000ab: PUSH2 0x041c 000000ae: JUMPI 000000af: DUP1 000000b0: PUSH4 0x69f66950 000000b5: EQ 000000b6: PUSH2 0x0433 000000b9: JUMPI 000000ba: DUP1 000000bb: PUSH4 0x79318d81 000000c0: EQ 000000c1: PUSH2 0x048a 000000c4: JUMPI 000000c5: DUP1 000000c6: PUSH4 0x8c52dc41 000000cb: EQ 000000cc: PUSH2 0x04a1 000000cf: JUMPI 000000d0: DUP1 000000d1: PUSH4 0x8da5cb5b 000000d6: EQ 000000d7: PUSH2 0x04b8 000000da: JUMPI 000000db: DUP1 000000dc: PUSH4 0x932c90f3 000000e1: EQ 000000e2: PUSH2 0x050f 000000e5: JUMPI 000000e6: DUP1 000000e7: PUSH4 0x9a721302 000000ec: EQ 000000ed: PUSH2 0x053a 000000f0: JUMPI 000000f1: DUP1 000000f2: PUSH4 0xaf713dda 000000f7: EQ 000000f8: PUSH2 0x0565 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0xb4427263 00000102: EQ 00000103: PUSH2 0x0590 00000106: JUMPI 00000107: DUP1 00000108: PUSH4 0xbe9a6555 0000010d: EQ 0000010e: PUSH2 0x059a 00000111: JUMPI 00000112: DUP1 00000113: PUSH4 0xc19d93fb 00000118: EQ 00000119: PUSH2 0x05c5 0000011c: JUMPI 0000011d: DUP1 0000011e: PUSH4 0xc2845184 00000123: EQ 00000124: PUSH2 0x05fe 00000127: JUMPI 00000128: DUP1 00000129: PUSH4 0xd14cd233 0000012e: EQ 0000012f: PUSH2 0x0629 00000132: JUMPI 00000133: DUP1 00000134: PUSH4 0xd7a5afcf 00000139: EQ 0000013a: PUSH2 0x0658 0000013d: JUMPI 0000013e: DUP1 0000013f: PUSH4 0xe0475e27 00000144: EQ 00000145: PUSH2 0x06af 00000148: JUMPI 00000149: DUP1 0000014a: PUSH4 0xef7dd831 0000014f: EQ 00000150: PUSH2 0x0706 00000153: JUMPI 00000154: DUP1 00000155: PUSH4 0xefbe1c1c 0000015a: EQ 0000015b: PUSH2 0x0731 0000015e: JUMPI 0000015f: DUP1 00000160: PUSH4 0xf17382ae 00000165: EQ 00000166: PUSH2 0x075c 00000169: JUMPI 0000016a: DUP1 0000016b: PUSH4 0xf2fde38b 00000170: EQ 00000171: PUSH2 0x0787 00000174: JUMPI 00000175: DUP1 00000176: PUSH4 0xf6f6fc74 0000017b: EQ 0000017c: PUSH2 0x07ca 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0xf89be593 00000186: EQ 00000187: PUSH2 0x0821 0000018a: JUMPI 0000018b: DUP1 0000018c: PUSH4 0xfc0c546a 00000191: EQ 00000192: PUSH2 0x084c 00000195: JUMPI 00000196: JUMPDEST 00000197: PUSH2 0x019e 0000019a: PUSH2 0x08a3 0000019d: JUMP 0000019e: JUMPDEST 0000019f: STOP 000001a0: JUMPDEST 000001a1: CALLVALUE 000001a2: DUP1 000001a3: ISZERO 000001a4: PUSH2 0x01ac 000001a7: JUMPI 000001a8: PUSH1 0x00 000001aa: DUP1 000001ab: REVERT 000001ac: JUMPDEST 000001ad: POP 000001ae: PUSH2 0x01b5 000001b1: PUSH2 0x0c59 000001b4: JUMP 000001b5: JUMPDEST 000001b6: PUSH1 0x40 000001b8: MLOAD 000001b9: DUP1 000001ba: DUP3 000001bb: DUP2 000001bc: MSTORE 000001bd: PUSH1 0x20 000001bf: ADD 000001c0: SWAP2 000001c1: POP 000001c2: POP 000001c3: PUSH1 0x40 000001c5: MLOAD 000001c6: DUP1 000001c7: SWAP2 000001c8: SUB 000001c9: SWAP1 000001ca: RETURN 000001cb: JUMPDEST 000001cc: CALLVALUE 000001cd: DUP1 000001ce: ISZERO 000001cf: PUSH2 0x01d7 000001d2: JUMPI 000001d3: PUSH1 0x00 000001d5: DUP1 000001d6: REVERT 000001d7: JUMPDEST 000001d8: POP 000001d9: PUSH2 0x020c 000001dc: PUSH1 0x04 000001de: DUP1 000001df: CALLDATASIZE 000001e0: SUB 000001e1: DUP2 000001e2: ADD 000001e3: SWAP1 000001e4: DUP1 000001e5: DUP1 000001e6: CALLDATALOAD 000001e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001fc: AND 000001fd: SWAP1 000001fe: PUSH1 0x20 00000200: ADD 00000201: SWAP1 00000202: SWAP3 00000203: SWAP2 00000204: SWAP1 00000205: POP 00000206: POP 00000207: POP 00000208: PUSH2 0x0c77 0000020b: JUMP 0000020c: JUMPDEST 0000020d: PUSH1 0x40 0000020f: MLOAD 00000210: DUP1 00000211: DUP3 00000212: DUP2 00000213: MSTORE 00000214: PUSH1 0x20 00000216: ADD 00000217: SWAP2 00000218: POP 00000219: POP 0000021a: PUSH1 0x40 0000021c: MLOAD 0000021d: DUP1 0000021e: SWAP2 0000021f: SUB 00000220: SWAP1 00000221: RETURN 00000222: JUMPDEST 00000223: CALLVALUE 00000224: DUP1 00000225: ISZERO 00000226: PUSH2 0x022e 00000229: JUMPI 0000022a: PUSH1 0x00 0000022c: DUP1 0000022d: REVERT 0000022e: JUMPDEST 0000022f: POP 00000230: PUSH2 0x0237 00000233: PUSH2 0x0c8f 00000236: JUMP 00000237: JUMPDEST 00000238: PUSH1 0x40 0000023a: MLOAD 0000023b: DUP1 0000023c: DUP3 0000023d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000252: AND 00000253: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000268: AND 00000269: DUP2 0000026a: MSTORE 0000026b: PUSH1 0x20 0000026d: ADD 0000026e: SWAP2 0000026f: POP 00000270: POP 00000271: PUSH1 0x40 00000273: MLOAD 00000274: DUP1 00000275: SWAP2 00000276: SUB 00000277: SWAP1 00000278: RETURN 00000279: JUMPDEST 0000027a: CALLVALUE 0000027b: DUP1 0000027c: ISZERO 0000027d: PUSH2 0x0285 00000280: JUMPI 00000281: PUSH1 0x00 00000283: DUP1 00000284: REVERT 00000285: JUMPDEST 00000286: POP 00000287: PUSH2 0x028e 0000028a: PUSH2 0x0cb5 0000028d: JUMP 0000028e: JUMPDEST 0000028f: PUSH1 0x40 00000291: MLOAD 00000292: DUP1 00000293: DUP3 00000294: DUP2 00000295: MSTORE 00000296: PUSH1 0x20 00000298: ADD 00000299: SWAP2 0000029a: POP 0000029b: POP 0000029c: PUSH1 0x40 0000029e: MLOAD 0000029f: DUP1 000002a0: SWAP2 000002a1: SUB 000002a2: SWAP1 000002a3: RETURN 000002a4: JUMPDEST 000002a5: CALLVALUE 000002a6: DUP1 000002a7: ISZERO 000002a8: PUSH2 0x02b0 000002ab: JUMPI 000002ac: PUSH1 0x00 000002ae: DUP1 000002af: REVERT 000002b0: JUMPDEST 000002b1: POP 000002b2: PUSH2 0x02b9 000002b5: PUSH2 0x0cbb 000002b8: JUMP 000002b9: JUMPDEST 000002ba: PUSH1 0x40 000002bc: MLOAD 000002bd: DUP1 000002be: DUP3 000002bf: PUSH1 0xff 000002c1: AND 000002c2: PUSH1 0xff 000002c4: AND 000002c5: DUP2 000002c6: MSTORE 000002c7: PUSH1 0x20 000002c9: ADD 000002ca: SWAP2 000002cb: POP 000002cc: POP 000002cd: PUSH1 0x40 000002cf: MLOAD 000002d0: DUP1 000002d1: SWAP2 000002d2: SUB 000002d3: SWAP1 000002d4: RETURN 000002d5: JUMPDEST 000002d6: CALLVALUE 000002d7: DUP1 000002d8: ISZERO 000002d9: PUSH2 0x02e1 000002dc: JUMPI 000002dd: PUSH1 0x00 000002df: DUP1 000002e0: REVERT 000002e1: JUMPDEST 000002e2: POP 000002e3: PUSH2 0x02ea 000002e6: PUSH2 0x0cce 000002e9: JUMP 000002ea: JUMPDEST 000002eb: PUSH1 0x40 000002ed: MLOAD 000002ee: DUP1 000002ef: DUP3 000002f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000305: AND 00000306: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000031b: AND 0000031c: DUP2 0000031d: MSTORE 0000031e: PUSH1 0x20 00000320: ADD 00000321: SWAP2 00000322: POP 00000323: POP 00000324: PUSH1 0x40 00000326: MLOAD 00000327: DUP1 00000328: SWAP2 00000329: SUB 0000032a: SWAP1 0000032b: RETURN 0000032c: JUMPDEST 0000032d: CALLVALUE 0000032e: DUP1 0000032f: ISZERO 00000330: PUSH2 0x0338 00000333: JUMPI 00000334: PUSH1 0x00 00000336: DUP1 00000337: REVERT 00000338: JUMPDEST 00000339: POP 0000033a: PUSH2 0x0341 0000033d: PUSH2 0x0cf4 00000340: JUMP 00000341: JUMPDEST 00000342: PUSH1 0x40 00000344: MLOAD 00000345: DUP1 00000346: DUP3 00000347: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000035c: AND 0000035d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000372: AND 00000373: DUP2 00000374: MSTORE 00000375: PUSH1 0x20 00000377: ADD 00000378: SWAP2 00000379: POP 0000037a: POP 0000037b: PUSH1 0x40 0000037d: MLOAD 0000037e: DUP1 0000037f: SWAP2 00000380: SUB 00000381: SWAP1 00000382: RETURN 00000383: JUMPDEST 00000384: CALLVALUE 00000385: DUP1 00000386: ISZERO 00000387: PUSH2 0x038f 0000038a: JUMPI 0000038b: PUSH1 0x00 0000038d: DUP1 0000038e: REVERT 0000038f: JUMPDEST 00000390: POP 00000391: PUSH2 0x0398 00000394: PUSH2 0x0d1a 00000397: JUMP 00000398: JUMPDEST 00000399: PUSH1 0x40 0000039b: MLOAD 0000039c: DUP1 0000039d: DUP3 0000039e: DUP2 0000039f: MSTORE 000003a0: PUSH1 0x20 000003a2: ADD 000003a3: SWAP2 000003a4: POP 000003a5: POP 000003a6: PUSH1 0x40 000003a8: MLOAD 000003a9: DUP1 000003aa: SWAP2 000003ab: SUB 000003ac: SWAP1 000003ad: RETURN 000003ae: JUMPDEST 000003af: CALLVALUE 000003b0: DUP1 000003b1: ISZERO 000003b2: PUSH2 0x03ba 000003b5: JUMPI 000003b6: PUSH1 0x00 000003b8: DUP1 000003b9: REVERT 000003ba: JUMPDEST 000003bb: POP 000003bc: PUSH2 0x03c3 000003bf: PUSH2 0x0d38 000003c2: JUMP 000003c3: JUMPDEST 000003c4: PUSH1 0x40 000003c6: MLOAD 000003c7: DUP1 000003c8: DUP3 000003c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003de: AND 000003df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003f4: AND 000003f5: DUP2 000003f6: MSTORE 000003f7: PUSH1 0x20 000003f9: ADD 000003fa: SWAP2 000003fb: POP 000003fc: POP 000003fd: PUSH1 0x40 000003ff: MLOAD 00000400: DUP1 00000401: SWAP2 00000402: SUB 00000403: SWAP1 00000404: RETURN 00000405: JUMPDEST 00000406: CALLVALUE 00000407: DUP1 00000408: ISZERO 00000409: PUSH2 0x0411 0000040c: JUMPI 0000040d: PUSH1 0x00 0000040f: DUP1 00000410: REVERT 00000411: JUMPDEST 00000412: POP 00000413: PUSH2 0x041a 00000416: PUSH2 0x0d5e 00000419: JUMP 0000041a: JUMPDEST 0000041b: STOP 0000041c: JUMPDEST 0000041d: CALLVALUE 0000041e: DUP1 0000041f: ISZERO 00000420: PUSH2 0x0428 00000423: JUMPI 00000424: PUSH1 0x00 00000426: DUP1 00000427: REVERT 00000428: JUMPDEST 00000429: POP 0000042a: PUSH2 0x0431 0000042d: PUSH2 0x169d 00000430: JUMP 00000431: JUMPDEST 00000432: STOP 00000433: JUMPDEST 00000434: CALLVALUE 00000435: DUP1 00000436: ISZERO 00000437: PUSH2 0x043f 0000043a: JUMPI 0000043b: PUSH1 0x00 0000043d: DUP1 0000043e: REVERT 0000043f: JUMPDEST 00000440: POP 00000441: PUSH2 0x0448 00000444: PUSH2 0x17a4 00000447: JUMP 00000448: JUMPDEST 00000449: PUSH1 0x40 0000044b: MLOAD 0000044c: DUP1 0000044d: DUP3 0000044e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000463: AND 00000464: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000479: AND 0000047a: DUP2 0000047b: MSTORE 0000047c: PUSH1 0x20 0000047e: ADD 0000047f: SWAP2 00000480: POP 00000481: POP 00000482: PUSH1 0x40 00000484: MLOAD 00000485: DUP1 00000486: SWAP2 00000487: SUB 00000488: SWAP1 00000489: RETURN 0000048a: JUMPDEST 0000048b: CALLVALUE 0000048c: DUP1 0000048d: ISZERO 0000048e: PUSH2 0x0496 00000491: JUMPI 00000492: PUSH1 0x00 00000494: DUP1 00000495: REVERT 00000496: JUMPDEST 00000497: POP 00000498: PUSH2 0x049f 0000049b: PUSH2 0x17ca 0000049e: JUMP 0000049f: JUMPDEST 000004a0: STOP 000004a1: JUMPDEST 000004a2: CALLVALUE 000004a3: DUP1 000004a4: ISZERO 000004a5: PUSH2 0x04ad 000004a8: JUMPI 000004a9: PUSH1 0x00 000004ab: DUP1 000004ac: REVERT 000004ad: JUMPDEST 000004ae: POP 000004af: PUSH2 0x04b6 000004b2: PUSH2 0x1950 000004b5: JUMP 000004b6: JUMPDEST 000004b7: STOP 000004b8: JUMPDEST 000004b9: CALLVALUE 000004ba: DUP1 000004bb: ISZERO 000004bc: PUSH2 0x04c4 000004bf: JUMPI 000004c0: PUSH1 0x00 000004c2: DUP1 000004c3: REVERT 000004c4: JUMPDEST 000004c5: POP 000004c6: PUSH2 0x04cd 000004c9: PUSH2 0x1a62 000004cc: JUMP 000004cd: JUMPDEST 000004ce: PUSH1 0x40 000004d0: MLOAD 000004d1: DUP1 000004d2: DUP3 000004d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004e8: AND 000004e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004fe: AND 000004ff: DUP2 00000500: MSTORE 00000501: PUSH1 0x20 00000503: ADD 00000504: SWAP2 00000505: POP 00000506: POP 00000507: PUSH1 0x40 00000509: MLOAD 0000050a: DUP1 0000050b: SWAP2 0000050c: SUB 0000050d: SWAP1 0000050e: RETURN 0000050f: JUMPDEST 00000510: CALLVALUE 00000511: DUP1 00000512: ISZERO 00000513: PUSH2 0x051b 00000516: JUMPI 00000517: PUSH1 0x00 00000519: DUP1 0000051a: REVERT 0000051b: JUMPDEST 0000051c: POP 0000051d: PUSH2 0x0524 00000520: PUSH2 0x1a87 00000523: JUMP 00000524: JUMPDEST 00000525: PUSH1 0x40 00000527: MLOAD 00000528: DUP1 00000529: DUP3 0000052a: DUP2 0000052b: MSTORE 0000052c: PUSH1 0x20 0000052e: ADD 0000052f: SWAP2 00000530: POP 00000531: POP 00000532: PUSH1 0x40 00000534: MLOAD 00000535: DUP1 00000536: SWAP2 00000537: SUB 00000538: SWAP1 00000539: RETURN 0000053a: JUMPDEST 0000053b: CALLVALUE 0000053c: DUP1 0000053d: ISZERO 0000053e: PUSH2 0x0546 00000541: JUMPI 00000542: PUSH1 0x00 00000544: DUP1 00000545: REVERT 00000546: JUMPDEST 00000547: POP 00000548: PUSH2 0x054f 0000054b: PUSH2 0x1aa5 0000054e: JUMP 0000054f: JUMPDEST 00000550: PUSH1 0x40 00000552: MLOAD 00000553: DUP1 00000554: DUP3 00000555: DUP2 00000556: MSTORE 00000557: PUSH1 0x20 00000559: ADD 0000055a: SWAP2 0000055b: POP 0000055c: POP 0000055d: PUSH1 0x40 0000055f: MLOAD 00000560: DUP1 00000561: SWAP2 00000562: SUB 00000563: SWAP1 00000564: RETURN 00000565: JUMPDEST 00000566: CALLVALUE 00000567: DUP1 00000568: ISZERO 00000569: PUSH2 0x0571 0000056c: JUMPI 0000056d: PUSH1 0x00 0000056f: DUP1 00000570: REVERT 00000571: JUMPDEST 00000572: POP 00000573: PUSH2 0x057a 00000576: PUSH2 0x1ac3 00000579: JUMP 0000057a: JUMPDEST 0000057b: PUSH1 0x40 0000057d: MLOAD 0000057e: DUP1 0000057f: DUP3 00000580: DUP2 00000581: MSTORE 00000582: PUSH1 0x20 00000584: ADD 00000585: SWAP2 00000586: POP 00000587: POP 00000588: PUSH1 0x40 0000058a: MLOAD 0000058b: DUP1 0000058c: SWAP2 0000058d: SUB 0000058e: SWAP1 0000058f: RETURN 00000590: JUMPDEST 00000591: PUSH2 0x0598 00000594: PUSH2 0x08a3 00000597: JUMP 00000598: JUMPDEST 00000599: STOP 0000059a: JUMPDEST 0000059b: CALLVALUE 0000059c: DUP1 0000059d: ISZERO 0000059e: PUSH2 0x05a6 000005a1: JUMPI 000005a2: PUSH1 0x00 000005a4: DUP1 000005a5: REVERT 000005a6: JUMPDEST 000005a7: POP 000005a8: PUSH2 0x05af 000005ab: PUSH2 0x1ae1 000005ae: JUMP 000005af: JUMPDEST 000005b0: PUSH1 0x40 000005b2: MLOAD 000005b3: DUP1 000005b4: DUP3 000005b5: DUP2 000005b6: MSTORE 000005b7: PUSH1 0x20 000005b9: ADD 000005ba: SWAP2 000005bb: POP 000005bc: POP 000005bd: PUSH1 0x40 000005bf: MLOAD 000005c0: DUP1 000005c1: SWAP2 000005c2: SUB 000005c3: SWAP1 000005c4: RETURN 000005c5: JUMPDEST 000005c6: CALLVALUE 000005c7: DUP1 000005c8: ISZERO 000005c9: PUSH2 0x05d1 000005cc: JUMPI 000005cd: PUSH1 0x00 000005cf: DUP1 000005d0: REVERT 000005d1: JUMPDEST 000005d2: POP 000005d3: PUSH2 0x05da 000005d6: PUSH2 0x1ae7 000005d9: JUMP 000005da: JUMPDEST 000005db: PUSH1 0x40 000005dd: MLOAD 000005de: DUP1 000005df: DUP3 000005e0: PUSH1 0x02 000005e2: DUP2 000005e3: GT 000005e4: ISZERO 000005e5: PUSH2 0x05ea 000005e8: JUMPI 000005e9: INVALID 000005ea: JUMPDEST 000005eb: PUSH1 0xff 000005ed: AND 000005ee: DUP2 000005ef: MSTORE 000005f0: PUSH1 0x20 000005f2: ADD 000005f3: SWAP2 000005f4: POP 000005f5: POP 000005f6: PUSH1 0x40 000005f8: MLOAD 000005f9: DUP1 000005fa: SWAP2 000005fb: SUB 000005fc: SWAP1 000005fd: RETURN 000005fe: JUMPDEST 000005ff: CALLVALUE 00000600: DUP1 00000601: ISZERO 00000602: PUSH2 0x060a 00000605: JUMPI 00000606: PUSH1 0x00 00000608: DUP1 00000609: REVERT 0000060a: JUMPDEST 0000060b: POP 0000060c: PUSH2 0x0613 0000060f: PUSH2 0x1afa 00000612: JUMP 00000613: JUMPDEST 00000614: PUSH1 0x40 00000616: MLOAD 00000617: DUP1 00000618: DUP3 00000619: DUP2 0000061a: MSTORE 0000061b: PUSH1 0x20 0000061d: ADD 0000061e: SWAP2 0000061f: POP 00000620: POP 00000621: PUSH1 0x40 00000623: MLOAD 00000624: DUP1 00000625: SWAP2 00000626: SUB 00000627: SWAP1 00000628: RETURN 00000629: JUMPDEST 0000062a: CALLVALUE 0000062b: DUP1 0000062c: ISZERO 0000062d: PUSH2 0x0635 00000630: JUMPI 00000631: PUSH1 0x00 00000633: DUP1 00000634: REVERT 00000635: JUMPDEST 00000636: POP 00000637: PUSH2 0x063e 0000063a: PUSH2 0x1b18 0000063d: JUMP 0000063e: JUMPDEST 0000063f: PUSH1 0x40 00000641: MLOAD 00000642: DUP1 00000643: DUP3 00000644: ISZERO 00000645: ISZERO 00000646: ISZERO 00000647: ISZERO 00000648: DUP2 00000649: MSTORE 0000064a: PUSH1 0x20 0000064c: ADD 0000064d: SWAP2 0000064e: POP 0000064f: POP 00000650: PUSH1 0x40 00000652: MLOAD 00000653: DUP1 00000654: SWAP2 00000655: SUB 00000656: SWAP1 00000657: RETURN 00000658: JUMPDEST 00000659: CALLVALUE 0000065a: DUP1 0000065b: ISZERO 0000065c: PUSH2 0x0664 0000065f: JUMPI 00000660: PUSH1 0x00 00000662: DUP1 00000663: REVERT 00000664: JUMPDEST 00000665: POP 00000666: PUSH2 0x066d 00000669: PUSH2 0x1b2b 0000066c: JUMP 0000066d: JUMPDEST 0000066e: PUSH1 0x40 00000670: MLOAD 00000671: DUP1 00000672: DUP3 00000673: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000688: AND 00000689: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000069e: AND 0000069f: DUP2 000006a0: MSTORE 000006a1: PUSH1 0x20 000006a3: ADD 000006a4: SWAP2 000006a5: POP 000006a6: POP 000006a7: PUSH1 0x40 000006a9: MLOAD 000006aa: DUP1 000006ab: SWAP2 000006ac: SUB 000006ad: SWAP1 000006ae: RETURN 000006af: JUMPDEST 000006b0: CALLVALUE 000006b1: DUP1 000006b2: ISZERO 000006b3: PUSH2 0x06bb 000006b6: JUMPI 000006b7: PUSH1 0x00 000006b9: DUP1 000006ba: REVERT 000006bb: JUMPDEST 000006bc: POP 000006bd: PUSH2 0x06c4 000006c0: PUSH2 0x1b51 000006c3: JUMP 000006c4: JUMPDEST 000006c5: PUSH1 0x40 000006c7: MLOAD 000006c8: DUP1 000006c9: DUP3 000006ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006df: AND 000006e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006f5: AND 000006f6: DUP2 000006f7: MSTORE 000006f8: PUSH1 0x20 000006fa: ADD 000006fb: SWAP2 000006fc: POP 000006fd: POP 000006fe: PUSH1 0x40 00000700: MLOAD 00000701: DUP1 00000702: SWAP2 00000703: SUB 00000704: SWAP1 00000705: RETURN 00000706: JUMPDEST 00000707: CALLVALUE 00000708: DUP1 00000709: ISZERO 0000070a: PUSH2 0x0712 0000070d: JUMPI 0000070e: PUSH1 0x00 00000710: DUP1 00000711: REVERT 00000712: JUMPDEST 00000713: POP 00000714: PUSH2 0x071b 00000717: PUSH2 0x1b77 0000071a: JUMP 0000071b: JUMPDEST 0000071c: PUSH1 0x40 0000071e: MLOAD 0000071f: DUP1 00000720: DUP3 00000721: DUP2 00000722: MSTORE 00000723: PUSH1 0x20 00000725: ADD 00000726: SWAP2 00000727: POP 00000728: POP 00000729: PUSH1 0x40 0000072b: MLOAD 0000072c: DUP1 0000072d: SWAP2 0000072e: SUB 0000072f: SWAP1 00000730: RETURN 00000731: JUMPDEST 00000732: CALLVALUE 00000733: DUP1 00000734: ISZERO 00000735: PUSH2 0x073d 00000738: JUMPI 00000739: PUSH1 0x00 0000073b: DUP1 0000073c: REVERT 0000073d: JUMPDEST 0000073e: POP 0000073f: PUSH2 0x0746 00000742: PUSH2 0x1b95 00000745: JUMP 00000746: JUMPDEST 00000747: PUSH1 0x40 00000749: MLOAD 0000074a: DUP1 0000074b: DUP3 0000074c: DUP2 0000074d: MSTORE 0000074e: PUSH1 0x20 00000750: ADD 00000751: SWAP2 00000752: POP 00000753: POP 00000754: PUSH1 0x40 00000756: MLOAD 00000757: DUP1 00000758: SWAP2 00000759: SUB 0000075a: SWAP1 0000075b: RETURN 0000075c: JUMPDEST 0000075d: CALLVALUE 0000075e: DUP1 0000075f: ISZERO 00000760: PUSH2 0x0768 00000763: JUMPI 00000764: PUSH1 0x00 00000766: DUP1 00000767: REVERT 00000768: JUMPDEST 00000769: POP 0000076a: PUSH2 0x0771 0000076d: PUSH2 0x1b9b 00000770: JUMP 00000771: JUMPDEST 00000772: PUSH1 0x40 00000774: MLOAD 00000775: DUP1 00000776: DUP3 00000777: DUP2 00000778: MSTORE 00000779: PUSH1 0x20 0000077b: ADD 0000077c: SWAP2 0000077d: POP 0000077e: POP 0000077f: PUSH1 0x40 00000781: MLOAD 00000782: DUP1 00000783: SWAP2 00000784: SUB 00000785: SWAP1 00000786: RETURN 00000787: JUMPDEST 00000788: CALLVALUE 00000789: DUP1 0000078a: ISZERO 0000078b: PUSH2 0x0793 0000078e: JUMPI 0000078f: PUSH1 0x00 00000791: DUP1 00000792: REVERT 00000793: JUMPDEST 00000794: POP 00000795: PUSH2 0x07c8 00000798: PUSH1 0x04 0000079a: DUP1 0000079b: CALLDATASIZE 0000079c: SUB 0000079d: DUP2 0000079e: ADD 0000079f: SWAP1 000007a0: DUP1 000007a1: DUP1 000007a2: CALLDATALOAD 000007a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007b8: AND 000007b9: SWAP1 000007ba: PUSH1 0x20 000007bc: ADD 000007bd: SWAP1 000007be: SWAP3 000007bf: SWAP2 000007c0: SWAP1 000007c1: POP 000007c2: POP 000007c3: POP 000007c4: PUSH2 0x1bb9 000007c7: JUMP 000007c8: JUMPDEST 000007c9: STOP 000007ca: JUMPDEST 000007cb: CALLVALUE 000007cc: DUP1 000007cd: ISZERO 000007ce: PUSH2 0x07d6 000007d1: JUMPI 000007d2: PUSH1 0x00 000007d4: DUP1 000007d5: REVERT 000007d6: JUMPDEST 000007d7: POP 000007d8: PUSH2 0x07df 000007db: PUSH2 0x1d0e 000007de: JUMP 000007df: JUMPDEST 000007e0: PUSH1 0x40 000007e2: MLOAD 000007e3: DUP1 000007e4: DUP3 000007e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007fa: AND 000007fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000810: AND 00000811: DUP2 00000812: MSTORE 00000813: PUSH1 0x20 00000815: ADD 00000816: SWAP2 00000817: POP 00000818: POP 00000819: PUSH1 0x40 0000081b: MLOAD 0000081c: DUP1 0000081d: SWAP2 0000081e: SUB 0000081f: SWAP1 00000820: RETURN 00000821: JUMPDEST 00000822: CALLVALUE 00000823: DUP1 00000824: ISZERO 00000825: PUSH2 0x082d 00000828: JUMPI 00000829: PUSH1 0x00 0000082b: DUP1 0000082c: REVERT 0000082d: JUMPDEST 0000082e: POP 0000082f: PUSH2 0x0836 00000832: PUSH2 0x1d34 00000835: JUMP 00000836: JUMPDEST 00000837: PUSH1 0x40 00000839: MLOAD 0000083a: DUP1 0000083b: DUP3 0000083c: DUP2 0000083d: MSTORE 0000083e: PUSH1 0x20 00000840: ADD 00000841: SWAP2 00000842: POP 00000843: POP 00000844: PUSH1 0x40 00000846: MLOAD 00000847: DUP1 00000848: SWAP2 00000849: SUB 0000084a: SWAP1 0000084b: RETURN 0000084c: JUMPDEST 0000084d: CALLVALUE 0000084e: DUP1 0000084f: ISZERO 00000850: PUSH2 0x0858 00000853: JUMPI 00000854: PUSH1 0x00 00000856: DUP1 00000857: REVERT 00000858: JUMPDEST 00000859: POP 0000085a: PUSH2 0x0861 0000085d: PUSH2 0x1d3a 00000860: JUMP 00000861: JUMPDEST 00000862: PUSH1 0x40 00000864: MLOAD 00000865: DUP1 00000866: DUP3 00000867: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000087c: AND 0000087d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000892: AND 00000893: DUP2 00000894: MSTORE 00000895: PUSH1 0x20 00000897: ADD 00000898: SWAP2 00000899: POP 0000089a: POP 0000089b: PUSH1 0x40 0000089d: MLOAD 0000089e: DUP1 0000089f: SWAP2 000008a0: SUB 000008a1: SWAP1 000008a2: RETURN 000008a3: JUMPDEST 000008a4: PUSH1 0x00 000008a6: DUP1 000008a7: PUSH1 0x04 000008a9: SLOAD 000008aa: TIMESTAMP 000008ab: GT 000008ac: DUP1 000008ad: ISZERO 000008ae: PUSH2 0x08b8 000008b1: JUMPI 000008b2: POP 000008b3: PUSH1 0x05 000008b5: SLOAD 000008b6: TIMESTAMP 000008b7: LT 000008b8: JUMPDEST 000008b9: ISZERO 000008ba: ISZERO 000008bb: PUSH2 0x08c3 000008be: JUMPI 000008bf: PUSH1 0x00 000008c1: DUP1 000008c2: REVERT 000008c3: JUMPDEST 000008c4: PUSH2 0x08f2 000008c7: PUSH8 0x0de0b6b3a7640000 000008d0: PUSH2 0x08e4 000008d3: CALLVALUE 000008d4: PUSH1 0x03 000008d6: SLOAD 000008d7: PUSH2 0x1d60 000008da: SWAP1 000008db: SWAP2 000008dc: SWAP1 000008dd: PUSH4 0xffffffff 000008e2: AND 000008e3: JUMP 000008e4: JUMPDEST 000008e5: PUSH2 0x1d9b 000008e8: SWAP1 000008e9: SWAP2 000008ea: SWAP1 000008eb: PUSH4 0xffffffff 000008f0: AND 000008f1: JUMP 000008f2: JUMPDEST 000008f3: SWAP2 000008f4: POP 000008f5: PUSH1 0x02 000008f7: DUP1 000008f8: DUP2 000008f9: GT 000008fa: ISZERO 000008fb: PUSH2 0x0900 000008fe: JUMPI 000008ff: INVALID 00000900: JUMPDEST 00000901: PUSH1 0x08 00000903: PUSH1 0x00 00000905: SWAP1 00000906: SLOAD 00000907: SWAP1 00000908: PUSH2 0x0100 0000090b: EXP 0000090c: SWAP1 0000090d: DIV 0000090e: PUSH1 0xff 00000910: AND 00000911: PUSH1 0x02 00000913: DUP2 00000914: GT 00000915: ISZERO 00000916: PUSH2 0x091b 00000919: JUMPI 0000091a: INVALID 0000091b: JUMPDEST 0000091c: EQ 0000091d: ISZERO 0000091e: PUSH2 0x098b 00000921: JUMPI 00000922: PUSH1 0x02 00000924: PUSH1 0x00 00000926: SWAP1 00000927: SLOAD 00000928: SWAP1 00000929: PUSH2 0x0100 0000092c: EXP 0000092d: SWAP1 0000092e: DIV 0000092f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000944: AND 00000945: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000095a: AND 0000095b: PUSH2 0x08fc 0000095e: CALLVALUE 0000095f: SWAP1 00000960: DUP2 00000961: ISZERO 00000962: MUL 00000963: SWAP1 00000964: PUSH1 0x40 00000966: MLOAD 00000967: PUSH1 0x00 00000969: PUSH1 0x40 0000096b: MLOAD 0000096c: DUP1 0000096d: DUP4 0000096e: SUB 0000096f: DUP2 00000970: DUP6 00000971: DUP9 00000972: DUP9 00000973: CALL 00000974: SWAP4 00000975: POP 00000976: POP 00000977: POP 00000978: POP 00000979: ISZERO 0000097a: DUP1 0000097b: ISZERO 0000097c: PUSH2 0x0989 0000097f: JUMPI 00000980: RETURNDATASIZE 00000981: PUSH1 0x00 00000983: DUP1 00000984: RETURNDATACOPY 00000985: RETURNDATASIZE 00000986: PUSH1 0x00 00000988: REVERT 00000989: JUMPDEST 0000098a: POP 0000098b: JUMPDEST 0000098c: PUSH1 0x00 0000098e: SWAP1 0000098f: POP 00000990: PUSH2 0x09a7 00000993: PUSH3 0x0d2f00 00000997: PUSH1 0x04 00000999: SLOAD 0000099a: PUSH2 0x1db1 0000099d: SWAP1 0000099e: SWAP2 0000099f: SWAP1 000009a0: PUSH4 0xffffffff 000009a5: AND 000009a6: JUMP 000009a7: JUMPDEST 000009a8: TIMESTAMP 000009a9: GT 000009aa: ISZERO 000009ab: ISZERO 000009ac: PUSH2 0x09dd 000009af: JUMPI 000009b0: PUSH2 0x09d6 000009b3: PUSH1 0x64 000009b5: PUSH2 0x09c8 000009b8: PUSH1 0x14 000009ba: DUP6 000009bb: PUSH2 0x1d60 000009be: SWAP1 000009bf: SWAP2 000009c0: SWAP1 000009c1: PUSH4 0xffffffff 000009c6: AND 000009c7: JUMP 000009c8: JUMPDEST 000009c9: PUSH2 0x1d9b 000009cc: SWAP1 000009cd: SWAP2 000009ce: SWAP1 000009cf: PUSH4 0xffffffff 000009d4: AND 000009d5: JUMP 000009d6: JUMPDEST 000009d7: SWAP1 000009d8: POP 000009d9: PUSH2 0x0aba 000009dc: JUMP 000009dd: JUMPDEST 000009de: PUSH2 0x09f5 000009e1: PUSH3 0x0d2f00 000009e5: PUSH1 0x04 000009e7: SLOAD 000009e8: PUSH2 0x1db1 000009eb: SWAP1 000009ec: SWAP2 000009ed: SWAP1 000009ee: PUSH4 0xffffffff 000009f3: AND 000009f4: JUMP 000009f5: JUMPDEST 000009f6: TIMESTAMP 000009f7: GT 000009f8: DUP1 000009f9: ISZERO 000009fa: PUSH2 0x0a1a 000009fd: JUMPI 000009fe: POP 000009ff: PUSH2 0x0a16 00000a02: PUSH3 0x20f580 00000a06: PUSH1 0x04 00000a08: SLOAD 00000a09: PUSH2 0x1db1 00000a0c: SWAP1 00000a0d: SWAP2 00000a0e: SWAP1 00000a0f: PUSH4 0xffffffff 00000a14: AND 00000a15: JUMP 00000a16: JUMPDEST 00000a17: TIMESTAMP 00000a18: GT 00000a19: ISZERO 00000a1a: JUMPDEST 00000a1b: ISZERO 00000a1c: PUSH2 0x0a4d 00000a1f: JUMPI 00000a20: PUSH2 0x0a46 00000a23: PUSH1 0x64 00000a25: PUSH2 0x0a38 00000a28: PUSH1 0x0a 00000a2a: DUP6 00000a2b: PUSH2 0x1d60 00000a2e: SWAP1 00000a2f: SWAP2 00000a30: SWAP1 00000a31: PUSH4 0xffffffff 00000a36: AND 00000a37: JUMP 00000a38: JUMPDEST 00000a39: PUSH2 0x1d9b 00000a3c: SWAP1 00000a3d: SWAP2 00000a3e: SWAP1 00000a3f: PUSH4 0xffffffff 00000a44: AND 00000a45: JUMP 00000a46: JUMPDEST 00000a47: SWAP1 00000a48: POP 00000a49: PUSH2 0x0ab9 00000a4c: JUMP 00000a4d: JUMPDEST 00000a4e: PUSH2 0x0a65 00000a51: PUSH3 0x20f580 00000a55: PUSH1 0x04 00000a57: SLOAD 00000a58: PUSH2 0x1db1 00000a5b: SWAP1 00000a5c: SWAP2 00000a5d: SWAP1 00000a5e: PUSH4 0xffffffff 00000a63: AND 00000a64: JUMP 00000a65: JUMPDEST 00000a66: TIMESTAMP 00000a67: GT 00000a68: DUP1 00000a69: ISZERO 00000a6a: PUSH2 0x0a89 00000a6d: JUMPI 00000a6e: POP 00000a6f: PUSH2 0x0a86 00000a72: PUSH3 0x34bc00 00000a76: PUSH1 0x04 00000a78: SLOAD 00000a79: PUSH2 0x1db1 00000a7c: SWAP1 00000a7d: SWAP2 00000a7e: SWAP1 00000a7f: PUSH4 0xffffffff 00000a84: AND 00000a85: JUMP 00000a86: JUMPDEST 00000a87: TIMESTAMP 00000a88: LT 00000a89: JUMPDEST 00000a8a: ISZERO 00000a8b: PUSH2 0x0ab8 00000a8e: JUMPI 00000a8f: PUSH2 0x0ab5 00000a92: PUSH1 0x64 00000a94: PUSH2 0x0aa7 00000a97: PUSH1 0x05 00000a99: DUP6 00000a9a: PUSH2 0x1d60 00000a9d: SWAP1 00000a9e: SWAP2 00000a9f: SWAP1 00000aa0: PUSH4 0xffffffff 00000aa5: AND 00000aa6: JUMP 00000aa7: JUMPDEST 00000aa8: PUSH2 0x1d9b 00000aab: SWAP1 00000aac: SWAP2 00000aad: SWAP1 00000aae: PUSH4 0xffffffff 00000ab3: AND 00000ab4: JUMP 00000ab5: JUMPDEST 00000ab6: SWAP1 00000ab7: POP 00000ab8: JUMPDEST 00000ab9: JUMPDEST 00000aba: JUMPDEST 00000abb: DUP1 00000abc: DUP3 00000abd: ADD 00000abe: SWAP2 00000abf: POP 00000ac0: PUSH2 0x0b11 00000ac3: CALLVALUE 00000ac4: PUSH1 0x09 00000ac6: PUSH1 0x00 00000ac8: CALLER 00000ac9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ade: AND 00000adf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000af4: AND 00000af5: DUP2 00000af6: MSTORE 00000af7: PUSH1 0x20 00000af9: ADD 00000afa: SWAP1 00000afb: DUP2 00000afc: MSTORE 00000afd: PUSH1 0x20 00000aff: ADD 00000b00: PUSH1 0x00 00000b02: KECCAK256 00000b03: SLOAD 00000b04: PUSH2 0x1db1 00000b07: SWAP1 00000b08: SWAP2 00000b09: SWAP1 00000b0a: PUSH4 0xffffffff 00000b0f: AND 00000b10: JUMP 00000b11: JUMPDEST 00000b12: PUSH1 0x09 00000b14: PUSH1 0x00 00000b16: CALLER 00000b17: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b2c: AND 00000b2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b42: AND 00000b43: DUP2 00000b44: MSTORE 00000b45: PUSH1 0x20 00000b47: ADD 00000b48: SWAP1 00000b49: DUP2 00000b4a: MSTORE 00000b4b: PUSH1 0x20 00000b4d: ADD 00000b4e: PUSH1 0x00 00000b50: KECCAK256 00000b51: DUP2 00000b52: SWAP1 00000b53: SSTORE 00000b54: POP 00000b55: PUSH1 0x01 00000b57: PUSH1 0x00 00000b59: SWAP1 00000b5a: SLOAD 00000b5b: SWAP1 00000b5c: PUSH2 0x0100 00000b5f: EXP 00000b60: SWAP1 00000b61: DIV 00000b62: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b77: AND 00000b78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b8d: AND 00000b8e: PUSH4 0x40c10f19 00000b93: CALLER 00000b94: DUP5 00000b95: PUSH1 0x40 00000b97: MLOAD 00000b98: DUP4 00000b99: PUSH4 0xffffffff 00000b9e: AND 00000b9f: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000bbd: MUL 00000bbe: DUP2 00000bbf: MSTORE 00000bc0: PUSH1 0x04 00000bc2: ADD 00000bc3: DUP1 00000bc4: DUP4 00000bc5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bda: AND 00000bdb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bf0: AND 00000bf1: DUP2 00000bf2: MSTORE 00000bf3: PUSH1 0x20 00000bf5: ADD 00000bf6: DUP3 00000bf7: DUP2 00000bf8: MSTORE 00000bf9: PUSH1 0x20 00000bfb: ADD 00000bfc: SWAP3 00000bfd: POP 00000bfe: POP 00000bff: POP 00000c00: PUSH1 0x20 00000c02: PUSH1 0x40 00000c04: MLOAD 00000c05: DUP1 00000c06: DUP4 00000c07: SUB 00000c08: DUP2 00000c09: PUSH1 0x00 00000c0b: DUP8 00000c0c: DUP1 00000c0d: EXTCODESIZE 00000c0e: ISZERO 00000c0f: DUP1 00000c10: ISZERO 00000c11: PUSH2 0x0c19 00000c14: JUMPI 00000c15: PUSH1 0x00 00000c17: DUP1 00000c18: REVERT 00000c19: JUMPDEST 00000c1a: POP 00000c1b: GAS 00000c1c: CALL 00000c1d: ISZERO 00000c1e: DUP1 00000c1f: ISZERO 00000c20: PUSH2 0x0c2d 00000c23: JUMPI 00000c24: RETURNDATASIZE 00000c25: PUSH1 0x00 00000c27: DUP1 00000c28: RETURNDATACOPY 00000c29: RETURNDATASIZE 00000c2a: PUSH1 0x00 00000c2c: REVERT 00000c2d: JUMPDEST 00000c2e: POP 00000c2f: POP 00000c30: POP 00000c31: POP 00000c32: PUSH1 0x40 00000c34: MLOAD 00000c35: RETURNDATASIZE 00000c36: PUSH1 0x20 00000c38: DUP2 00000c39: LT 00000c3a: ISZERO 00000c3b: PUSH2 0x0c43 00000c3e: JUMPI 00000c3f: PUSH1 0x00 00000c41: DUP1 00000c42: REVERT 00000c43: JUMPDEST 00000c44: DUP2 00000c45: ADD 00000c46: SWAP1 00000c47: DUP1 00000c48: DUP1 00000c49: MLOAD 00000c4a: SWAP1 00000c4b: PUSH1 0x20 00000c4d: ADD 00000c4e: SWAP1 00000c4f: SWAP3 00000c50: SWAP2 00000c51: SWAP1 00000c52: POP 00000c53: POP 00000c54: POP 00000c55: POP 00000c56: POP 00000c57: POP 00000c58: JUMP 00000c59: JUMPDEST 00000c5a: PUSH1 0x00 00000c5c: PUSH1 0x14 00000c5e: SWAP1 00000c5f: SLOAD 00000c60: SWAP1 00000c61: PUSH2 0x0100 00000c64: EXP 00000c65: SWAP1 00000c66: DIV 00000c67: PUSH1 0xff 00000c69: AND 00000c6a: PUSH1 0xff 00000c6c: AND 00000c6d: PUSH1 0x0a 00000c6f: EXP 00000c70: PUSH3 0x055730 00000c74: MUL 00000c75: DUP2 00000c76: JUMP 00000c77: JUMPDEST 00000c78: PUSH1 0x09 00000c7a: PUSH1 0x20 00000c7c: MSTORE 00000c7d: DUP1 00000c7e: PUSH1 0x00 00000c80: MSTORE 00000c81: PUSH1 0x40 00000c83: PUSH1 0x00 00000c85: KECCAK256 00000c86: PUSH1 0x00 00000c88: SWAP2 00000c89: POP 00000c8a: SWAP1 00000c8b: POP 00000c8c: SLOAD 00000c8d: DUP2 00000c8e: JUMP 00000c8f: JUMPDEST 00000c90: PUSH1 0x0d 00000c92: PUSH1 0x00 00000c94: SWAP1 00000c95: SLOAD 00000c96: SWAP1 00000c97: PUSH2 0x0100 00000c9a: EXP 00000c9b: SWAP1 00000c9c: DIV 00000c9d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cb2: AND 00000cb3: DUP2 00000cb4: JUMP 00000cb5: JUMPDEST 00000cb6: PUSH1 0x03 00000cb8: SLOAD 00000cb9: DUP2 00000cba: JUMP 00000cbb: JUMPDEST 00000cbc: PUSH1 0x00 00000cbe: PUSH1 0x14 00000cc0: SWAP1 00000cc1: SLOAD 00000cc2: SWAP1 00000cc3: PUSH2 0x0100 00000cc6: EXP 00000cc7: SWAP1 00000cc8: DIV 00000cc9: PUSH1 0xff 00000ccb: AND 00000ccc: DUP2 00000ccd: JUMP 00000cce: JUMPDEST 00000ccf: PUSH1 0x0e 00000cd1: PUSH1 0x00 00000cd3: SWAP1 00000cd4: SLOAD 00000cd5: SWAP1 00000cd6: PUSH2 0x0100 00000cd9: EXP 00000cda: SWAP1 00000cdb: DIV 00000cdc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cf1: AND 00000cf2: DUP2 00000cf3: JUMP 00000cf4: JUMPDEST 00000cf5: PUSH1 0x02 00000cf7: PUSH1 0x00 00000cf9: SWAP1 00000cfa: SLOAD 00000cfb: SWAP1 00000cfc: PUSH2 0x0100 00000cff: EXP 00000d00: SWAP1 00000d01: DIV 00000d02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d17: AND 00000d18: DUP2 00000d19: JUMP 00000d1a: JUMPDEST 00000d1b: PUSH1 0x00 00000d1d: PUSH1 0x14 00000d1f: SWAP1 00000d20: SLOAD 00000d21: SWAP1 00000d22: PUSH2 0x0100 00000d25: EXP 00000d26: SWAP1 00000d27: DIV 00000d28: PUSH1 0xff 00000d2a: AND 00000d2b: PUSH1 0xff 00000d2d: AND 00000d2e: PUSH1 0x0a 00000d30: EXP 00000d31: PUSH3 0x319750 00000d35: MUL 00000d36: DUP2 00000d37: JUMP 00000d38: JUMPDEST 00000d39: PUSH1 0x0a 00000d3b: PUSH1 0x00 00000d3d: SWAP1 00000d3e: SLOAD 00000d3f: SWAP1 00000d40: PUSH2 0x0100 00000d43: EXP 00000d44: SWAP1 00000d45: DIV 00000d46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d5b: AND 00000d5c: DUP2 00000d5d: JUMP 00000d5e: JUMPDEST 00000d5f: PUSH1 0x00 00000d61: DUP1 00000d62: SWAP1 00000d63: SLOAD 00000d64: SWAP1 00000d65: PUSH2 0x0100 00000d68: EXP 00000d69: SWAP1 00000d6a: DIV 00000d6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d80: AND 00000d81: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d96: AND 00000d97: CALLER 00000d98: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dad: AND 00000dae: EQ 00000daf: ISZERO 00000db0: ISZERO 00000db1: PUSH2 0x0db9 00000db4: JUMPI 00000db5: PUSH1 0x00 00000db7: DUP1 00000db8: REVERT 00000db9: JUMPDEST 00000dba: PUSH1 0x06 00000dbc: PUSH1 0x00 00000dbe: SWAP1 00000dbf: SLOAD 00000dc0: SWAP1 00000dc1: PUSH2 0x0100 00000dc4: EXP 00000dc5: SWAP1 00000dc6: DIV 00000dc7: PUSH1 0xff 00000dc9: AND 00000dca: ISZERO 00000dcb: ISZERO 00000dcc: ISZERO 00000dcd: PUSH2 0x0dd5 00000dd0: JUMPI 00000dd1: PUSH1 0x00 00000dd3: DUP1 00000dd4: REVERT 00000dd5: JUMPDEST 00000dd6: PUSH1 0x01 00000dd8: PUSH1 0x00 00000dda: SWAP1 00000ddb: SLOAD 00000ddc: SWAP1 00000ddd: PUSH2 0x0100 00000de0: EXP 00000de1: SWAP1 00000de2: DIV 00000de3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000df8: AND 00000df9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e0e: AND 00000e0f: PUSH4 0x40c10f19 00000e14: PUSH1 0x0a 00000e16: PUSH1 0x00 00000e18: SWAP1 00000e19: SLOAD 00000e1a: SWAP1 00000e1b: PUSH2 0x0100 00000e1e: EXP 00000e1f: SWAP1 00000e20: DIV 00000e21: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e36: AND 00000e37: PUSH1 0x00 00000e39: PUSH1 0x14 00000e3b: SWAP1 00000e3c: SLOAD 00000e3d: SWAP1 00000e3e: PUSH2 0x0100 00000e41: EXP 00000e42: SWAP1 00000e43: DIV 00000e44: PUSH1 0xff 00000e46: AND 00000e47: PUSH1 0xff 00000e49: AND 00000e4a: PUSH1 0x0a 00000e4c: EXP 00000e4d: PUSH3 0x07a120 00000e51: MUL 00000e52: PUSH1 0x40 00000e54: MLOAD 00000e55: DUP4 00000e56: PUSH4 0xffffffff 00000e5b: AND 00000e5c: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000e7a: MUL 00000e7b: DUP2 00000e7c: MSTORE 00000e7d: PUSH1 0x04 00000e7f: ADD 00000e80: DUP1 00000e81: DUP4 00000e82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e97: AND 00000e98: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ead: AND 00000eae: DUP2 00000eaf: MSTORE 00000eb0: PUSH1 0x20 00000eb2: ADD 00000eb3: DUP3 00000eb4: DUP2 00000eb5: MSTORE 00000eb6: PUSH1 0x20 00000eb8: ADD 00000eb9: SWAP3 00000eba: POP 00000ebb: POP 00000ebc: POP 00000ebd: PUSH1 0x20 00000ebf: PUSH1 0x40 00000ec1: MLOAD 00000ec2: DUP1 00000ec3: DUP4 00000ec4: SUB 00000ec5: DUP2 00000ec6: PUSH1 0x00 00000ec8: DUP8 00000ec9: DUP1 00000eca: EXTCODESIZE 00000ecb: ISZERO 00000ecc: DUP1 00000ecd: ISZERO 00000ece: PUSH2 0x0ed6 00000ed1: JUMPI 00000ed2: PUSH1 0x00 00000ed4: DUP1 00000ed5: REVERT 00000ed6: JUMPDEST 00000ed7: POP 00000ed8: GAS 00000ed9: CALL 00000eda: ISZERO 00000edb: DUP1 00000edc: ISZERO 00000edd: PUSH2 0x0eea 00000ee0: JUMPI 00000ee1: RETURNDATASIZE 00000ee2: PUSH1 0x00 00000ee4: DUP1 00000ee5: RETURNDATACOPY 00000ee6: RETURNDATASIZE 00000ee7: PUSH1 0x00 00000ee9: REVERT 00000eea: JUMPDEST 00000eeb: POP 00000eec: POP 00000eed: POP 00000eee: POP 00000eef: PUSH1 0x40 00000ef1: MLOAD 00000ef2: RETURNDATASIZE 00000ef3: PUSH1 0x20 00000ef5: DUP2 00000ef6: LT 00000ef7: ISZERO 00000ef8: PUSH2 0x0f00 00000efb: JUMPI 00000efc: PUSH1 0x00 00000efe: DUP1 00000eff: REVERT 00000f00: JUMPDEST 00000f01: DUP2 00000f02: ADD 00000f03: SWAP1 00000f04: DUP1 00000f05: DUP1 00000f06: MLOAD 00000f07: SWAP1 00000f08: PUSH1 0x20 00000f0a: ADD 00000f0b: SWAP1 00000f0c: SWAP3 00000f0d: SWAP2 00000f0e: SWAP1 00000f0f: POP 00000f10: POP 00000f11: POP 00000f12: POP 00000f13: PUSH1 0x01 00000f15: PUSH1 0x00 00000f17: SWAP1 00000f18: SLOAD 00000f19: SWAP1 00000f1a: PUSH2 0x0100 00000f1d: EXP 00000f1e: SWAP1 00000f1f: DIV 00000f20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f35: AND 00000f36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f4b: AND 00000f4c: PUSH4 0x40c10f19 00000f51: PUSH1 0x0b 00000f53: PUSH1 0x00 00000f55: SWAP1 00000f56: SLOAD 00000f57: SWAP1 00000f58: PUSH2 0x0100 00000f5b: EXP 00000f5c: SWAP1 00000f5d: DIV 00000f5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f73: AND 00000f74: PUSH1 0x00 00000f76: PUSH1 0x14 00000f78: SWAP1 00000f79: SLOAD 00000f7a: SWAP1 00000f7b: PUSH2 0x0100 00000f7e: EXP 00000f7f: SWAP1 00000f80: DIV 00000f81: PUSH1 0xff 00000f83: AND 00000f84: PUSH1 0xff 00000f86: AND 00000f87: PUSH1 0x0a 00000f89: EXP 00000f8a: PUSH3 0x055730 00000f8e: MUL 00000f8f: PUSH1 0x40 00000f91: MLOAD 00000f92: DUP4 00000f93: PUSH4 0xffffffff 00000f98: AND 00000f99: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000fb7: MUL 00000fb8: DUP2 00000fb9: MSTORE 00000fba: PUSH1 0x04 00000fbc: ADD 00000fbd: DUP1 00000fbe: DUP4 00000fbf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fd4: AND 00000fd5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fea: AND 00000feb: DUP2 00000fec: MSTORE 00000fed: PUSH1 0x20 00000fef: ADD 00000ff0: DUP3 00000ff1: DUP2 00000ff2: MSTORE 00000ff3: PUSH1 0x20 00000ff5: ADD 00000ff6: SWAP3 00000ff7: POP 00000ff8: POP 00000ff9: POP 00000ffa: PUSH1 0x20 00000ffc: PUSH1 0x40 00000ffe: MLOAD 00000fff: DUP1 00001000: DUP4 00001001: SUB 00001002: DUP2 00001003: PUSH1 0x00 00001005: DUP8 00001006: DUP1 00001007: EXTCODESIZE 00001008: ISZERO 00001009: DUP1 0000100a: ISZERO 0000100b: PUSH2 0x1013 0000100e: JUMPI 0000100f: PUSH1 0x00 00001011: DUP1 00001012: REVERT 00001013: JUMPDEST 00001014: POP 00001015: GAS 00001016: CALL 00001017: ISZERO 00001018: DUP1 00001019: ISZERO 0000101a: PUSH2 0x1027 0000101d: JUMPI 0000101e: RETURNDATASIZE 0000101f: PUSH1 0x00 00001021: DUP1 00001022: RETURNDATACOPY 00001023: RETURNDATASIZE 00001024: PUSH1 0x00 00001026: REVERT 00001027: JUMPDEST 00001028: POP 00001029: POP 0000102a: POP 0000102b: POP 0000102c: PUSH1 0x40 0000102e: MLOAD 0000102f: RETURNDATASIZE 00001030: PUSH1 0x20 00001032: DUP2 00001033: LT 00001034: ISZERO 00001035: PUSH2 0x103d 00001038: JUMPI 00001039: PUSH1 0x00 0000103b: DUP1 0000103c: REVERT 0000103d: JUMPDEST 0000103e: DUP2 0000103f: ADD 00001040: SWAP1 00001041: DUP1 00001042: DUP1 00001043: MLOAD 00001044: SWAP1 00001045: PUSH1 0x20 00001047: ADD 00001048: SWAP1 00001049: SWAP3 0000104a: SWAP2 0000104b: SWAP1 0000104c: POP 0000104d: POP 0000104e: POP 0000104f: POP 00001050: PUSH1 0x01 00001052: PUSH1 0x00 00001054: SWAP1 00001055: SLOAD 00001056: SWAP1 00001057: PUSH2 0x0100 0000105a: EXP 0000105b: SWAP1 0000105c: DIV 0000105d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001072: AND 00001073: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001088: AND 00001089: PUSH4 0x40c10f19 0000108e: PUSH1 0x0c 00001090: PUSH1 0x00 00001092: SWAP1 00001093: SLOAD 00001094: SWAP1 00001095: PUSH2 0x0100 00001098: EXP 00001099: SWAP1 0000109a: DIV 0000109b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010b0: AND 000010b1: PUSH1 0x00 000010b3: PUSH1 0x14 000010b5: SWAP1 000010b6: SLOAD 000010b7: SWAP1 000010b8: PUSH2 0x0100 000010bb: EXP 000010bc: SWAP1 000010bd: DIV 000010be: PUSH1 0xff 000010c0: AND 000010c1: PUSH1 0xff 000010c3: AND 000010c4: PUSH1 0x0a 000010c6: EXP 000010c7: PUSH3 0x0493e0 000010cb: MUL 000010cc: PUSH1 0x40 000010ce: MLOAD 000010cf: DUP4 000010d0: PUSH4 0xffffffff 000010d5: AND 000010d6: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000010f4: MUL 000010f5: DUP2 000010f6: MSTORE 000010f7: PUSH1 0x04 000010f9: ADD 000010fa: DUP1 000010fb: DUP4 000010fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001111: AND 00001112: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001127: AND 00001128: DUP2 00001129: MSTORE 0000112a: PUSH1 0x20 0000112c: ADD 0000112d: DUP3 0000112e: DUP2 0000112f: MSTORE 00001130: PUSH1 0x20 00001132: ADD 00001133: SWAP3 00001134: POP 00001135: POP 00001136: POP 00001137: PUSH1 0x20 00001139: PUSH1 0x40 0000113b: MLOAD 0000113c: DUP1 0000113d: DUP4 0000113e: SUB 0000113f: DUP2 00001140: PUSH1 0x00 00001142: DUP8 00001143: DUP1 00001144: EXTCODESIZE 00001145: ISZERO 00001146: DUP1 00001147: ISZERO 00001148: PUSH2 0x1150 0000114b: JUMPI 0000114c: PUSH1 0x00 0000114e: DUP1 0000114f: REVERT 00001150: JUMPDEST 00001151: POP 00001152: GAS 00001153: CALL 00001154: ISZERO 00001155: DUP1 00001156: ISZERO 00001157: PUSH2 0x1164 0000115a: JUMPI 0000115b: RETURNDATASIZE 0000115c: PUSH1 0x00 0000115e: DUP1 0000115f: RETURNDATACOPY 00001160: RETURNDATASIZE 00001161: PUSH1 0x00 00001163: REVERT 00001164: JUMPDEST 00001165: POP 00001166: POP 00001167: POP 00001168: POP 00001169: PUSH1 0x40 0000116b: MLOAD 0000116c: RETURNDATASIZE 0000116d: PUSH1 0x20 0000116f: DUP2 00001170: LT 00001171: ISZERO 00001172: PUSH2 0x117a 00001175: JUMPI 00001176: PUSH1 0x00 00001178: DUP1 00001179: REVERT 0000117a: JUMPDEST 0000117b: DUP2 0000117c: ADD 0000117d: SWAP1 0000117e: DUP1 0000117f: DUP1 00001180: MLOAD 00001181: SWAP1 00001182: PUSH1 0x20 00001184: ADD 00001185: SWAP1 00001186: SWAP3 00001187: SWAP2 00001188: SWAP1 00001189: POP 0000118a: POP 0000118b: POP 0000118c: POP 0000118d: PUSH1 0x01 0000118f: PUSH1 0x00 00001191: SWAP1 00001192: SLOAD 00001193: SWAP1 00001194: PUSH2 0x0100 00001197: EXP 00001198: SWAP1 00001199: DIV 0000119a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011af: AND 000011b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011c5: AND 000011c6: PUSH4 0x40c10f19 000011cb: PUSH1 0x0d 000011cd: PUSH1 0x00 000011cf: SWAP1 000011d0: SLOAD 000011d1: SWAP1 000011d2: PUSH2 0x0100 000011d5: EXP 000011d6: SWAP1 000011d7: DIV 000011d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011ed: AND 000011ee: PUSH1 0x00 000011f0: PUSH1 0x14 000011f2: SWAP1 000011f3: SLOAD 000011f4: SWAP1 000011f5: PUSH2 0x0100 000011f8: EXP 000011f9: SWAP1 000011fa: DIV 000011fb: PUSH1 0xff 000011fd: AND 000011fe: PUSH1 0xff 00001200: AND 00001201: PUSH1 0x0a 00001203: EXP 00001204: PUSH3 0x03d090 00001208: MUL 00001209: PUSH1 0x40 0000120b: MLOAD 0000120c: DUP4 0000120d: PUSH4 0xffffffff 00001212: AND 00001213: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00001231: MUL 00001232: DUP2 00001233: MSTORE 00001234: PUSH1 0x04 00001236: ADD 00001237: DUP1 00001238: DUP4 00001239: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000124e: AND 0000124f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001264: AND 00001265: DUP2 00001266: MSTORE 00001267: PUSH1 0x20 00001269: ADD 0000126a: DUP3 0000126b: DUP2 0000126c: MSTORE 0000126d: PUSH1 0x20 0000126f: ADD 00001270: SWAP3 00001271: POP 00001272: POP 00001273: POP 00001274: PUSH1 0x20 00001276: PUSH1 0x40 00001278: MLOAD 00001279: DUP1 0000127a: DUP4 0000127b: SUB 0000127c: DUP2 0000127d: PUSH1 0x00 0000127f: DUP8 00001280: DUP1 00001281: EXTCODESIZE 00001282: ISZERO 00001283: DUP1 00001284: ISZERO 00001285: PUSH2 0x128d 00001288: JUMPI 00001289: PUSH1 0x00 0000128b: DUP1 0000128c: REVERT 0000128d: JUMPDEST 0000128e: POP 0000128f: GAS 00001290: CALL 00001291: ISZERO 00001292: DUP1 00001293: ISZERO 00001294: PUSH2 0x12a1 00001297: JUMPI 00001298: RETURNDATASIZE 00001299: PUSH1 0x00 0000129b: DUP1 0000129c: RETURNDATACOPY 0000129d: RETURNDATASIZE 0000129e: PUSH1 0x00 000012a0: REVERT 000012a1: JUMPDEST 000012a2: POP 000012a3: POP 000012a4: POP 000012a5: POP 000012a6: PUSH1 0x40 000012a8: MLOAD 000012a9: RETURNDATASIZE 000012aa: PUSH1 0x20 000012ac: DUP2 000012ad: LT 000012ae: ISZERO 000012af: PUSH2 0x12b7 000012b2: JUMPI 000012b3: PUSH1 0x00 000012b5: DUP1 000012b6: REVERT 000012b7: JUMPDEST 000012b8: DUP2 000012b9: ADD 000012ba: SWAP1 000012bb: DUP1 000012bc: DUP1 000012bd: MLOAD 000012be: SWAP1 000012bf: PUSH1 0x20 000012c1: ADD 000012c2: SWAP1 000012c3: SWAP3 000012c4: SWAP2 000012c5: SWAP1 000012c6: POP 000012c7: POP 000012c8: POP 000012c9: POP 000012ca: PUSH1 0x01 000012cc: PUSH1 0x00 000012ce: SWAP1 000012cf: SLOAD 000012d0: SWAP1 000012d1: PUSH2 0x0100 000012d4: EXP 000012d5: SWAP1 000012d6: DIV 000012d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012ec: AND 000012ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001302: AND 00001303: PUSH4 0x40c10f19 00001308: PUSH1 0x0e 0000130a: PUSH1 0x00 0000130c: SWAP1 0000130d: SLOAD 0000130e: SWAP1 0000130f: PUSH2 0x0100 00001312: EXP 00001313: SWAP1 00001314: DIV 00001315: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000132a: AND 0000132b: PUSH1 0x00 0000132d: PUSH1 0x14 0000132f: SWAP1 00001330: SLOAD 00001331: SWAP1 00001332: PUSH2 0x0100 00001335: EXP 00001336: SWAP1 00001337: DIV 00001338: PUSH1 0xff 0000133a: AND 0000133b: PUSH1 0xff 0000133d: AND 0000133e: PUSH1 0x0a 00001340: EXP 00001341: PUSH3 0x0249f0 00001345: MUL 00001346: PUSH1 0x40 00001348: MLOAD 00001349: DUP4 0000134a: PUSH4 0xffffffff 0000134f: AND 00001350: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000136e: MUL 0000136f: DUP2 00001370: MSTORE 00001371: PUSH1 0x04 00001373: ADD 00001374: DUP1 00001375: DUP4 00001376: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000138b: AND 0000138c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013a1: AND 000013a2: DUP2 000013a3: MSTORE 000013a4: PUSH1 0x20 000013a6: ADD 000013a7: DUP3 000013a8: DUP2 000013a9: MSTORE 000013aa: PUSH1 0x20 000013ac: ADD 000013ad: SWAP3 000013ae: POP 000013af: POP 000013b0: POP 000013b1: PUSH1 0x20 000013b3: PUSH1 0x40 000013b5: MLOAD 000013b6: DUP1 000013b7: DUP4 000013b8: SUB 000013b9: DUP2 000013ba: PUSH1 0x00 000013bc: DUP8 000013bd: DUP1 000013be: EXTCODESIZE 000013bf: ISZERO 000013c0: DUP1 000013c1: ISZERO 000013c2: PUSH2 0x13ca 000013c5: JUMPI 000013c6: PUSH1 0x00 000013c8: DUP1 000013c9: REVERT 000013ca: JUMPDEST 000013cb: POP 000013cc: GAS 000013cd: CALL 000013ce: ISZERO 000013cf: DUP1 000013d0: ISZERO 000013d1: PUSH2 0x13de 000013d4: JUMPI 000013d5: RETURNDATASIZE 000013d6: PUSH1 0x00 000013d8: DUP1 000013d9: RETURNDATACOPY 000013da: RETURNDATASIZE 000013db: PUSH1 0x00 000013dd: REVERT 000013de: JUMPDEST 000013df: POP 000013e0: POP 000013e1: POP 000013e2: POP 000013e3: PUSH1 0x40 000013e5: MLOAD 000013e6: RETURNDATASIZE 000013e7: PUSH1 0x20 000013e9: DUP2 000013ea: LT 000013eb: ISZERO 000013ec: PUSH2 0x13f4 000013ef: JUMPI 000013f0: PUSH1 0x00 000013f2: DUP1 000013f3: REVERT 000013f4: JUMPDEST 000013f5: DUP2 000013f6: ADD 000013f7: SWAP1 000013f8: DUP1 000013f9: DUP1 000013fa: MLOAD 000013fb: SWAP1 000013fc: PUSH1 0x20 000013fe: ADD 000013ff: SWAP1 00001400: SWAP3 00001401: SWAP2 00001402: SWAP1 00001403: POP 00001404: POP 00001405: POP 00001406: POP 00001407: PUSH1 0x01 00001409: PUSH1 0x00 0000140b: SWAP1 0000140c: SLOAD 0000140d: SWAP1 0000140e: PUSH2 0x0100 00001411: EXP 00001412: SWAP1 00001413: DIV 00001414: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001429: AND 0000142a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000143f: AND 00001440: PUSH4 0x40c10f19 00001445: PUSH1 0x0f 00001447: PUSH1 0x00 00001449: SWAP1 0000144a: SLOAD 0000144b: SWAP1 0000144c: PUSH2 0x0100 0000144f: EXP 00001450: SWAP1 00001451: DIV 00001452: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001467: AND 00001468: PUSH1 0x00 0000146a: PUSH1 0x14 0000146c: SWAP1 0000146d: SLOAD 0000146e: SWAP1 0000146f: PUSH2 0x0100 00001472: EXP 00001473: SWAP1 00001474: DIV 00001475: PUSH1 0xff 00001477: AND 00001478: PUSH1 0xff 0000147a: AND 0000147b: PUSH1 0x0a 0000147d: EXP 0000147e: PUSH3 0x0186a0 00001482: MUL 00001483: PUSH1 0x40 00001485: MLOAD 00001486: DUP4 00001487: PUSH4 0xffffffff 0000148c: AND 0000148d: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000014ab: MUL 000014ac: DUP2 000014ad: MSTORE 000014ae: PUSH1 0x04 000014b0: ADD 000014b1: DUP1 000014b2: DUP4 000014b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014c8: AND 000014c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014de: AND 000014df: DUP2 000014e0: MSTORE 000014e1: PUSH1 0x20 000014e3: ADD 000014e4: DUP3 000014e5: DUP2 000014e6: MSTORE 000014e7: PUSH1 0x20 000014e9: ADD 000014ea: SWAP3 000014eb: POP 000014ec: POP 000014ed: POP 000014ee: PUSH1 0x20 000014f0: PUSH1 0x40 000014f2: MLOAD 000014f3: DUP1 000014f4: DUP4 000014f5: SUB 000014f6: DUP2 000014f7: PUSH1 0x00 000014f9: DUP8 000014fa: DUP1 000014fb: EXTCODESIZE 000014fc: ISZERO 000014fd: DUP1 000014fe: ISZERO 000014ff: PUSH2 0x1507 00001502: JUMPI 00001503: PUSH1 0x00 00001505: DUP1 00001506: REVERT 00001507: JUMPDEST 00001508: POP 00001509: GAS 0000150a: CALL 0000150b: ISZERO 0000150c: DUP1 0000150d: ISZERO 0000150e: PUSH2 0x151b 00001511: JUMPI 00001512: RETURNDATASIZE 00001513: PUSH1 0x00 00001515: DUP1 00001516: RETURNDATACOPY 00001517: RETURNDATASIZE 00001518: PUSH1 0x00 0000151a: REVERT 0000151b: JUMPDEST 0000151c: POP 0000151d: POP 0000151e: POP 0000151f: POP 00001520: PUSH1 0x40 00001522: MLOAD 00001523: RETURNDATASIZE 00001524: PUSH1 0x20 00001526: DUP2 00001527: LT 00001528: ISZERO 00001529: PUSH2 0x1531 0000152c: JUMPI 0000152d: PUSH1 0x00 0000152f: DUP1 00001530: REVERT 00001531: JUMPDEST 00001532: DUP2 00001533: ADD 00001534: SWAP1 00001535: DUP1 00001536: DUP1 00001537: MLOAD 00001538: SWAP1 00001539: PUSH1 0x20 0000153b: ADD 0000153c: SWAP1 0000153d: SWAP3 0000153e: SWAP2 0000153f: SWAP1 00001540: POP 00001541: POP 00001542: POP 00001543: POP 00001544: PUSH1 0x01 00001546: PUSH1 0x00 00001548: SWAP1 00001549: SLOAD 0000154a: SWAP1 0000154b: PUSH2 0x0100 0000154e: EXP 0000154f: SWAP1 00001550: DIV 00001551: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001566: AND 00001567: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000157c: AND 0000157d: PUSH4 0x40c10f19 00001582: PUSH1 0x10 00001584: PUSH1 0x00 00001586: SWAP1 00001587: SLOAD 00001588: SWAP1 00001589: PUSH2 0x0100 0000158c: EXP 0000158d: SWAP1 0000158e: DIV 0000158f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015a4: AND 000015a5: PUSH1 0x00 000015a7: PUSH1 0x14 000015a9: SWAP1 000015aa: SLOAD 000015ab: SWAP1 000015ac: PUSH2 0x0100 000015af: EXP 000015b0: SWAP1 000015b1: DIV 000015b2: PUSH1 0xff 000015b4: AND 000015b5: PUSH1 0xff 000015b7: AND 000015b8: PUSH1 0x0a 000015ba: EXP 000015bb: PUSH3 0x0186a0 000015bf: MUL 000015c0: PUSH1 0x40 000015c2: MLOAD 000015c3: DUP4 000015c4: PUSH4 0xffffffff 000015c9: AND 000015ca: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000015e8: MUL 000015e9: DUP2 000015ea: MSTORE 000015eb: PUSH1 0x04 000015ed: ADD 000015ee: DUP1 000015ef: DUP4 000015f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001605: AND 00001606: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000161b: AND 0000161c: DUP2 0000161d: MSTORE 0000161e: PUSH1 0x20 00001620: ADD 00001621: DUP3 00001622: DUP2 00001623: MSTORE 00001624: PUSH1 0x20 00001626: ADD 00001627: SWAP3 00001628: POP 00001629: POP 0000162a: POP 0000162b: PUSH1 0x20 0000162d: PUSH1 0x40 0000162f: MLOAD 00001630: DUP1 00001631: DUP4 00001632: SUB 00001633: DUP2 00001634: PUSH1 0x00 00001636: DUP8 00001637: DUP1 00001638: EXTCODESIZE 00001639: ISZERO 0000163a: DUP1 0000163b: ISZERO 0000163c: PUSH2 0x1644 0000163f: JUMPI 00001640: PUSH1 0x00 00001642: DUP1 00001643: REVERT 00001644: JUMPDEST 00001645: POP 00001646: GAS 00001647: CALL 00001648: ISZERO 00001649: DUP1 0000164a: ISZERO 0000164b: PUSH2 0x1658 0000164e: JUMPI 0000164f: RETURNDATASIZE 00001650: PUSH1 0x00 00001652: DUP1 00001653: RETURNDATACOPY 00001654: RETURNDATASIZE 00001655: PUSH1 0x00 00001657: REVERT 00001658: JUMPDEST 00001659: POP 0000165a: POP 0000165b: POP 0000165c: POP 0000165d: PUSH1 0x40 0000165f: MLOAD 00001660: RETURNDATASIZE 00001661: PUSH1 0x20 00001663: DUP2 00001664: LT 00001665: ISZERO 00001666: PUSH2 0x166e 00001669: JUMPI 0000166a: PUSH1 0x00 0000166c: DUP1 0000166d: REVERT 0000166e: JUMPDEST 0000166f: DUP2 00001670: ADD 00001671: SWAP1 00001672: DUP1 00001673: DUP1 00001674: MLOAD 00001675: SWAP1 00001676: PUSH1 0x20 00001678: ADD 00001679: SWAP1 0000167a: SWAP3 0000167b: SWAP2 0000167c: SWAP1 0000167d: POP 0000167e: POP 0000167f: POP 00001680: POP 00001681: PUSH1 0x01 00001683: PUSH1 0x06 00001685: PUSH1 0x00 00001687: PUSH2 0x0100 0000168a: EXP 0000168b: DUP2 0000168c: SLOAD 0000168d: DUP2 0000168e: PUSH1 0xff 00001690: MUL 00001691: NOT 00001692: AND 00001693: SWAP1 00001694: DUP4 00001695: ISZERO 00001696: ISZERO 00001697: MUL 00001698: OR 00001699: SWAP1 0000169a: SSTORE 0000169b: POP 0000169c: JUMP 0000169d: JUMPDEST 0000169e: PUSH1 0x00 000016a0: PUSH1 0x01 000016a2: PUSH1 0x02 000016a4: DUP2 000016a5: GT 000016a6: ISZERO 000016a7: PUSH2 0x16ac 000016aa: JUMPI 000016ab: INVALID 000016ac: JUMPDEST 000016ad: PUSH1 0x08 000016af: PUSH1 0x00 000016b1: SWAP1 000016b2: SLOAD 000016b3: SWAP1 000016b4: PUSH2 0x0100 000016b7: EXP 000016b8: SWAP1 000016b9: DIV 000016ba: PUSH1 0xff 000016bc: AND 000016bd: PUSH1 0x02 000016bf: DUP2 000016c0: GT 000016c1: ISZERO 000016c2: PUSH2 0x16c7 000016c5: JUMPI 000016c6: INVALID 000016c7: JUMPDEST 000016c8: EQ 000016c9: ISZERO 000016ca: ISZERO 000016cb: PUSH2 0x16d3 000016ce: JUMPI 000016cf: PUSH1 0x00 000016d1: DUP1 000016d2: REVERT 000016d3: JUMPDEST 000016d4: PUSH1 0x09 000016d6: PUSH1 0x00 000016d8: CALLER 000016d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016ee: AND 000016ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001704: AND 00001705: DUP2 00001706: MSTORE 00001707: PUSH1 0x20 00001709: ADD 0000170a: SWAP1 0000170b: DUP2 0000170c: MSTORE 0000170d: PUSH1 0x20 0000170f: ADD 00001710: PUSH1 0x00 00001712: KECCAK256 00001713: SLOAD 00001714: SWAP1 00001715: POP 00001716: PUSH1 0x00 00001718: PUSH1 0x09 0000171a: PUSH1 0x00 0000171c: CALLER 0000171d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001732: AND 00001733: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001748: AND 00001749: DUP2 0000174a: MSTORE 0000174b: PUSH1 0x20 0000174d: ADD 0000174e: SWAP1 0000174f: DUP2 00001750: MSTORE 00001751: PUSH1 0x20 00001753: ADD 00001754: PUSH1 0x00 00001756: KECCAK256 00001757: DUP2 00001758: SWAP1 00001759: SSTORE 0000175a: POP 0000175b: CALLER 0000175c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001771: AND 00001772: PUSH2 0x08fc 00001775: DUP3 00001776: SWAP1 00001777: DUP2 00001778: ISZERO 00001779: MUL 0000177a: SWAP1 0000177b: PUSH1 0x40 0000177d: MLOAD 0000177e: PUSH1 0x00 00001780: PUSH1 0x40 00001782: MLOAD 00001783: DUP1 00001784: DUP4 00001785: SUB 00001786: DUP2 00001787: DUP6 00001788: DUP9 00001789: DUP9 0000178a: CALL 0000178b: SWAP4 0000178c: POP 0000178d: POP 0000178e: POP 0000178f: POP 00001790: ISZERO 00001791: DUP1 00001792: ISZERO 00001793: PUSH2 0x17a0 00001796: JUMPI 00001797: RETURNDATASIZE 00001798: PUSH1 0x00 0000179a: DUP1 0000179b: RETURNDATACOPY 0000179c: RETURNDATASIZE 0000179d: PUSH1 0x00 0000179f: REVERT 000017a0: JUMPDEST 000017a1: POP 000017a2: POP 000017a3: JUMP 000017a4: JUMPDEST 000017a5: PUSH1 0x10 000017a7: PUSH1 0x00 000017a9: SWAP1 000017aa: SLOAD 000017ab: SWAP1 000017ac: PUSH2 0x0100 000017af: EXP 000017b0: SWAP1 000017b1: DIV 000017b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017c7: AND 000017c8: DUP2 000017c9: JUMP 000017ca: JUMPDEST 000017cb: PUSH1 0x00 000017cd: DUP1 000017ce: SWAP1 000017cf: SLOAD 000017d0: SWAP1 000017d1: PUSH2 0x0100 000017d4: EXP 000017d5: SWAP1 000017d6: DIV 000017d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017ec: AND 000017ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001802: AND 00001803: CALLER 00001804: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001819: AND 0000181a: EQ 0000181b: ISZERO 0000181c: ISZERO 0000181d: PUSH2 0x1825 00001820: JUMPI 00001821: PUSH1 0x00 00001823: DUP1 00001824: REVERT 00001825: JUMPDEST 00001826: PUSH1 0x00 00001828: PUSH1 0x02 0000182a: DUP2 0000182b: GT 0000182c: ISZERO 0000182d: PUSH2 0x1832 00001830: JUMPI 00001831: INVALID 00001832: JUMPDEST 00001833: PUSH1 0x08 00001835: PUSH1 0x00 00001837: SWAP1 00001838: SLOAD 00001839: SWAP1 0000183a: PUSH2 0x0100 0000183d: EXP 0000183e: SWAP1 0000183f: DIV 00001840: PUSH1 0xff 00001842: AND 00001843: PUSH1 0x02 00001845: DUP2 00001846: GT 00001847: ISZERO 00001848: PUSH2 0x184d 0000184b: JUMPI 0000184c: INVALID 0000184d: JUMPDEST 0000184e: EQ 0000184f: DUP1 00001850: ISZERO 00001851: PUSH2 0x1873 00001854: JUMPI 00001855: POP 00001856: PUSH1 0x07 00001858: SLOAD 00001859: ADDRESS 0000185a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000186f: AND 00001870: BALANCE 00001871: LT 00001872: ISZERO 00001873: JUMPDEST 00001874: ISZERO 00001875: ISZERO 00001876: PUSH2 0x187e 00001879: JUMPI 0000187a: PUSH1 0x00 0000187c: DUP1 0000187d: REVERT 0000187e: JUMPDEST 0000187f: PUSH1 0x02 00001881: PUSH1 0x08 00001883: PUSH1 0x00 00001885: PUSH2 0x0100 00001888: EXP 00001889: DUP2 0000188a: SLOAD 0000188b: DUP2 0000188c: PUSH1 0xff 0000188e: MUL 0000188f: NOT 00001890: AND 00001891: SWAP1 00001892: DUP4 00001893: PUSH1 0x02 00001895: DUP2 00001896: GT 00001897: ISZERO 00001898: PUSH2 0x189d 0000189b: JUMPI 0000189c: INVALID 0000189d: JUMPDEST 0000189e: MUL 0000189f: OR 000018a0: SWAP1 000018a1: SSTORE 000018a2: POP 000018a3: PUSH32 0x088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f 000018c4: PUSH1 0x40 000018c6: MLOAD 000018c7: PUSH1 0x40 000018c9: MLOAD 000018ca: DUP1 000018cb: SWAP2 000018cc: SUB 000018cd: SWAP1 000018ce: LOG1 000018cf: PUSH1 0x02 000018d1: PUSH1 0x00 000018d3: SWAP1 000018d4: SLOAD 000018d5: SWAP1 000018d6: PUSH2 0x0100 000018d9: EXP 000018da: SWAP1 000018db: DIV 000018dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018f1: AND 000018f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001907: AND 00001908: PUSH2 0x08fc 0000190b: ADDRESS 0000190c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001921: AND 00001922: BALANCE 00001923: SWAP1 00001924: DUP2 00001925: ISZERO 00001926: MUL 00001927: SWAP1 00001928: PUSH1 0x40 0000192a: MLOAD 0000192b: PUSH1 0x00 0000192d: PUSH1 0x40 0000192f: MLOAD 00001930: DUP1 00001931: DUP4 00001932: SUB 00001933: DUP2 00001934: DUP6 00001935: DUP9 00001936: DUP9 00001937: CALL 00001938: SWAP4 00001939: POP 0000193a: POP 0000193b: POP 0000193c: POP 0000193d: ISZERO 0000193e: DUP1 0000193f: ISZERO 00001940: PUSH2 0x194d 00001943: JUMPI 00001944: RETURNDATASIZE 00001945: PUSH1 0x00 00001947: DUP1 00001948: RETURNDATACOPY 00001949: RETURNDATASIZE 0000194a: PUSH1 0x00 0000194c: REVERT 0000194d: JUMPDEST 0000194e: POP 0000194f: JUMP 00001950: JUMPDEST 00001951: PUSH1 0x00 00001953: DUP1 00001954: SWAP1 00001955: SLOAD 00001956: SWAP1 00001957: PUSH2 0x0100 0000195a: EXP 0000195b: SWAP1 0000195c: DIV 0000195d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001972: AND 00001973: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001988: AND 00001989: CALLER 0000198a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000199f: AND 000019a0: EQ 000019a1: ISZERO 000019a2: ISZERO 000019a3: PUSH2 0x19ab 000019a6: JUMPI 000019a7: PUSH1 0x00 000019a9: DUP1 000019aa: REVERT 000019ab: JUMPDEST 000019ac: PUSH1 0x07 000019ae: SLOAD 000019af: ADDRESS 000019b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019c5: AND 000019c6: BALANCE 000019c7: LT 000019c8: DUP1 000019c9: ISZERO 000019ca: PUSH2 0x19f8 000019cd: JUMPI 000019ce: POP 000019cf: PUSH1 0x00 000019d1: PUSH1 0x02 000019d3: DUP2 000019d4: GT 000019d5: ISZERO 000019d6: PUSH2 0x19db 000019d9: JUMPI 000019da: INVALID 000019db: JUMPDEST 000019dc: PUSH1 0x08 000019de: PUSH1 0x00 000019e0: SWAP1 000019e1: SLOAD 000019e2: SWAP1 000019e3: PUSH2 0x0100 000019e6: EXP 000019e7: SWAP1 000019e8: DIV 000019e9: PUSH1 0xff 000019eb: AND 000019ec: PUSH1 0x02 000019ee: DUP2 000019ef: GT 000019f0: ISZERO 000019f1: PUSH2 0x19f6 000019f4: JUMPI 000019f5: INVALID 000019f6: JUMPDEST 000019f7: EQ 000019f8: JUMPDEST 000019f9: DUP1 000019fa: ISZERO 000019fb: PUSH2 0x1a05 000019fe: JUMPI 000019ff: POP 00001a00: PUSH1 0x05 00001a02: SLOAD 00001a03: TIMESTAMP 00001a04: GT 00001a05: JUMPDEST 00001a06: ISZERO 00001a07: ISZERO 00001a08: PUSH2 0x1a10 00001a0b: JUMPI 00001a0c: PUSH1 0x00 00001a0e: DUP1 00001a0f: REVERT 00001a10: JUMPDEST 00001a11: PUSH1 0x01 00001a13: PUSH1 0x08 00001a15: PUSH1 0x00 00001a17: PUSH2 0x0100 00001a1a: EXP 00001a1b: DUP2 00001a1c: SLOAD 00001a1d: DUP2 00001a1e: PUSH1 0xff 00001a20: MUL 00001a21: NOT 00001a22: AND 00001a23: SWAP1 00001a24: DUP4 00001a25: PUSH1 0x02 00001a27: DUP2 00001a28: GT 00001a29: ISZERO 00001a2a: PUSH2 0x1a2f 00001a2d: JUMPI 00001a2e: INVALID 00001a2f: JUMPDEST 00001a30: MUL 00001a31: OR 00001a32: SWAP1 00001a33: SSTORE 00001a34: POP 00001a35: PUSH32 0x599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89 00001a56: PUSH1 0x40 00001a58: MLOAD 00001a59: PUSH1 0x40 00001a5b: MLOAD 00001a5c: DUP1 00001a5d: SWAP2 00001a5e: SUB 00001a5f: SWAP1 00001a60: LOG1 00001a61: JUMP 00001a62: JUMPDEST 00001a63: PUSH1 0x00 00001a65: DUP1 00001a66: SWAP1 00001a67: SLOAD 00001a68: SWAP1 00001a69: PUSH2 0x0100 00001a6c: EXP 00001a6d: SWAP1 00001a6e: DIV 00001a6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a84: AND 00001a85: DUP2 00001a86: JUMP 00001a87: JUMPDEST 00001a88: PUSH1 0x00 00001a8a: PUSH1 0x14 00001a8c: SWAP1 00001a8d: SLOAD 00001a8e: SWAP1 00001a8f: PUSH2 0x0100 00001a92: EXP 00001a93: SWAP1 00001a94: DIV 00001a95: PUSH1 0xff 00001a97: AND 00001a98: PUSH1 0xff 00001a9a: AND 00001a9b: PUSH1 0x0a 00001a9d: EXP 00001a9e: PUSH3 0x0493e0 00001aa2: MUL 00001aa3: DUP2 00001aa4: JUMP 00001aa5: JUMPDEST 00001aa6: PUSH1 0x00 00001aa8: PUSH1 0x14 00001aaa: SWAP1 00001aab: SLOAD 00001aac: SWAP1 00001aad: PUSH2 0x0100 00001ab0: EXP 00001ab1: SWAP1 00001ab2: DIV 00001ab3: PUSH1 0xff 00001ab5: AND 00001ab6: PUSH1 0xff 00001ab8: AND 00001ab9: PUSH1 0x0a 00001abb: EXP 00001abc: PUSH3 0x0186a0 00001ac0: MUL 00001ac1: DUP2 00001ac2: JUMP 00001ac3: JUMPDEST 00001ac4: PUSH1 0x00 00001ac6: PUSH1 0x14 00001ac8: SWAP1 00001ac9: SLOAD 00001aca: SWAP1 00001acb: PUSH2 0x0100 00001ace: EXP 00001acf: SWAP1 00001ad0: DIV 00001ad1: PUSH1 0xff 00001ad3: AND 00001ad4: PUSH1 0xff 00001ad6: AND 00001ad7: PUSH1 0x0a 00001ad9: EXP 00001ada: PUSH3 0x0186a0 00001ade: MUL 00001adf: DUP2 00001ae0: JUMP 00001ae1: JUMPDEST 00001ae2: PUSH1 0x04 00001ae4: SLOAD 00001ae5: DUP2 00001ae6: JUMP 00001ae7: JUMPDEST 00001ae8: PUSH1 0x08 00001aea: PUSH1 0x00 00001aec: SWAP1 00001aed: SLOAD 00001aee: SWAP1 00001aef: PUSH2 0x0100 00001af2: EXP 00001af3: SWAP1 00001af4: DIV 00001af5: PUSH1 0xff 00001af7: AND 00001af8: DUP2 00001af9: JUMP 00001afa: JUMPDEST 00001afb: PUSH1 0x00 00001afd: PUSH1 0x14 00001aff: SWAP1 00001b00: SLOAD 00001b01: SWAP1 00001b02: PUSH2 0x0100 00001b05: EXP 00001b06: SWAP1 00001b07: DIV 00001b08: PUSH1 0xff 00001b0a: AND 00001b0b: PUSH1 0xff 00001b0d: AND 00001b0e: PUSH1 0x0a 00001b10: EXP 00001b11: PUSH3 0x03d090 00001b15: MUL 00001b16: DUP2 00001b17: JUMP 00001b18: JUMPDEST 00001b19: PUSH1 0x06 00001b1b: PUSH1 0x00 00001b1d: SWAP1 00001b1e: SLOAD 00001b1f: SWAP1 00001b20: PUSH2 0x0100 00001b23: EXP 00001b24: SWAP1 00001b25: DIV 00001b26: PUSH1 0xff 00001b28: AND 00001b29: DUP2 00001b2a: JUMP 00001b2b: JUMPDEST 00001b2c: PUSH1 0x0f 00001b2e: PUSH1 0x00 00001b30: SWAP1 00001b31: SLOAD 00001b32: SWAP1 00001b33: PUSH2 0x0100 00001b36: EXP 00001b37: SWAP1 00001b38: DIV 00001b39: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b4e: AND 00001b4f: DUP2 00001b50: JUMP 00001b51: JUMPDEST 00001b52: PUSH1 0x0b 00001b54: PUSH1 0x00 00001b56: SWAP1 00001b57: SLOAD 00001b58: SWAP1 00001b59: PUSH2 0x0100 00001b5c: EXP 00001b5d: SWAP1 00001b5e: DIV 00001b5f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b74: AND 00001b75: DUP2 00001b76: JUMP 00001b77: JUMPDEST 00001b78: PUSH1 0x00 00001b7a: PUSH1 0x14 00001b7c: SWAP1 00001b7d: SLOAD 00001b7e: SWAP1 00001b7f: PUSH2 0x0100 00001b82: EXP 00001b83: SWAP1 00001b84: DIV 00001b85: PUSH1 0xff 00001b87: AND 00001b88: PUSH1 0xff 00001b8a: AND 00001b8b: PUSH1 0x0a 00001b8d: EXP 00001b8e: PUSH3 0x0249f0 00001b92: MUL 00001b93: DUP2 00001b94: JUMP 00001b95: JUMPDEST 00001b96: PUSH1 0x05 00001b98: SLOAD 00001b99: DUP2 00001b9a: JUMP 00001b9b: JUMPDEST 00001b9c: PUSH1 0x00 00001b9e: PUSH1 0x14 00001ba0: SWAP1 00001ba1: SLOAD 00001ba2: SWAP1 00001ba3: PUSH2 0x0100 00001ba6: EXP 00001ba7: SWAP1 00001ba8: DIV 00001ba9: PUSH1 0xff 00001bab: AND 00001bac: PUSH1 0xff 00001bae: AND 00001baf: PUSH1 0x0a 00001bb1: EXP 00001bb2: PUSH3 0x07a120 00001bb6: MUL 00001bb7: DUP2 00001bb8: JUMP 00001bb9: JUMPDEST 00001bba: PUSH1 0x00 00001bbc: DUP1 00001bbd: SWAP1 00001bbe: SLOAD 00001bbf: SWAP1 00001bc0: PUSH2 0x0100 00001bc3: EXP 00001bc4: SWAP1 00001bc5: DIV 00001bc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bdb: AND 00001bdc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bf1: AND 00001bf2: CALLER 00001bf3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c08: AND 00001c09: EQ 00001c0a: ISZERO 00001c0b: ISZERO 00001c0c: PUSH2 0x1c14 00001c0f: JUMPI 00001c10: PUSH1 0x00 00001c12: DUP1 00001c13: REVERT 00001c14: JUMPDEST 00001c15: PUSH1 0x00 00001c17: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c2c: AND 00001c2d: DUP2 00001c2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c43: AND 00001c44: EQ 00001c45: ISZERO 00001c46: ISZERO 00001c47: ISZERO 00001c48: PUSH2 0x1c50 00001c4b: JUMPI 00001c4c: PUSH1 0x00 00001c4e: DUP1 00001c4f: REVERT 00001c50: JUMPDEST 00001c51: DUP1 00001c52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c67: AND 00001c68: PUSH1 0x00 00001c6a: DUP1 00001c6b: SWAP1 00001c6c: SLOAD 00001c6d: SWAP1 00001c6e: PUSH2 0x0100 00001c71: EXP 00001c72: SWAP1 00001c73: DIV 00001c74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c89: AND 00001c8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c9f: AND 00001ca0: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001cc1: PUSH1 0x40 00001cc3: MLOAD 00001cc4: PUSH1 0x40 00001cc6: MLOAD 00001cc7: DUP1 00001cc8: SWAP2 00001cc9: SUB 00001cca: SWAP1 00001ccb: LOG3 00001ccc: DUP1 00001ccd: PUSH1 0x00 00001ccf: DUP1 00001cd0: PUSH2 0x0100 00001cd3: EXP 00001cd4: DUP2 00001cd5: SLOAD 00001cd6: DUP2 00001cd7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cec: MUL 00001ced: NOT 00001cee: AND 00001cef: SWAP1 00001cf0: DUP4 00001cf1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d06: AND 00001d07: MUL 00001d08: OR 00001d09: SWAP1 00001d0a: SSTORE 00001d0b: POP 00001d0c: POP 00001d0d: JUMP 00001d0e: JUMPDEST 00001d0f: PUSH1 0x0c 00001d11: PUSH1 0x00 00001d13: SWAP1 00001d14: SLOAD 00001d15: SWAP1 00001d16: PUSH2 0x0100 00001d19: EXP 00001d1a: SWAP1 00001d1b: DIV 00001d1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d31: AND 00001d32: DUP2 00001d33: JUMP 00001d34: JUMPDEST 00001d35: PUSH1 0x07 00001d37: SLOAD 00001d38: DUP2 00001d39: JUMP 00001d3a: JUMPDEST 00001d3b: PUSH1 0x01 00001d3d: PUSH1 0x00 00001d3f: SWAP1 00001d40: SLOAD 00001d41: SWAP1 00001d42: PUSH2 0x0100 00001d45: EXP 00001d46: SWAP1 00001d47: DIV 00001d48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d5d: AND 00001d5e: DUP2 00001d5f: JUMP 00001d60: JUMPDEST 00001d61: PUSH1 0x00 00001d63: DUP1 00001d64: PUSH1 0x00 00001d66: DUP5 00001d67: EQ 00001d68: ISZERO 00001d69: PUSH2 0x1d75 00001d6c: JUMPI 00001d6d: PUSH1 0x00 00001d6f: SWAP2 00001d70: POP 00001d71: PUSH2 0x1d94 00001d74: JUMP 00001d75: JUMPDEST 00001d76: DUP3 00001d77: DUP5 00001d78: MUL 00001d79: SWAP1 00001d7a: POP 00001d7b: DUP3 00001d7c: DUP5 00001d7d: DUP3 00001d7e: DUP2 00001d7f: ISZERO 00001d80: ISZERO 00001d81: PUSH2 0x1d86 00001d84: JUMPI 00001d85: INVALID 00001d86: JUMPDEST 00001d87: DIV 00001d88: EQ 00001d89: ISZERO 00001d8a: ISZERO 00001d8b: PUSH2 0x1d90 00001d8e: JUMPI 00001d8f: INVALID 00001d90: JUMPDEST 00001d91: DUP1 00001d92: SWAP2 00001d93: POP 00001d94: JUMPDEST 00001d95: POP 00001d96: SWAP3 00001d97: SWAP2 00001d98: POP 00001d99: POP 00001d9a: JUMP 00001d9b: JUMPDEST 00001d9c: PUSH1 0x00 00001d9e: DUP2 00001d9f: DUP4 00001da0: DUP2 00001da1: ISZERO 00001da2: ISZERO 00001da3: PUSH2 0x1da8 00001da6: JUMPI 00001da7: INVALID 00001da8: JUMPDEST 00001da9: DIV 00001daa: SWAP1 00001dab: POP 00001dac: SWAP3 00001dad: SWAP2 00001dae: POP 00001daf: POP 00001db0: JUMP 00001db1: JUMPDEST 00001db2: PUSH1 0x00 00001db4: DUP1 00001db5: DUP3 00001db6: DUP5 00001db7: ADD 00001db8: SWAP1 00001db9: POP 00001dba: DUP4 00001dbb: DUP2 00001dbc: LT 00001dbd: ISZERO 00001dbe: ISZERO 00001dbf: ISZERO 00001dc0: PUSH2 0x1dc5 00001dc3: JUMPI 00001dc4: INVALID 00001dc5: JUMPDEST 00001dc6: DUP1 00001dc7: SWAP2 00001dc8: POP 00001dc9: POP 00001dca: SWAP3 00001dcb: SWAP2 00001dcc: POP 00001dcd: POP 00001dce: JUMP 00001dcf: STOP 00001dd0: LOG1 00001dd1: PUSH6 0x627a7a723058 00001dd8: KECCAK256 00001dd9: SWAP7 00001dda: STATICCALL 00001ddb: MCOPY 00001ddc: SIGNEXTEND 00001ddd: EXTCODEHASH 00001dde: UNKNOWN(0xED) 00001ddf: PUSH29
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | codex | Refunds do not burn/reclaim tokens, enabling free tokens on refund | 85 | no | — |
viewevidence_json{
"evidence": "refund() only zeroes the ETH balance and transfers ETH back, while createTokens() mints tokens immediately with no linkage to refunds or burns.",
"locations": [
"contracts/Contract.sol:603",
"contracts/Contract.sol:629"
],
"recommendation": "Require token return/burn on refund (e.g., transfer tokens back to a burn address or escrow and burn on refund), or delay minting until refunds are closed/softcap reached. Alternatively, track purchased tokens per contributor and burn them during refunds before sending ETH.",
"exploit_scenario": "An investor buys during the sale and receives minted tokens. If the softcap is missed and refunds are enabled, the investor calls refund() to get their full ETH contribution back while still retaining the tokens (or transferring them away first). This breaks the sale\u2019s accounting and allows free tokens while draining the refund pool."
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x85c0368066f918b00e8f4882ee9fb96ad845ace9597d2822f5ead717057dcbf1
call_targets:
0x3fd30f3e1fbf4f3ea6bdf3e3bb11826266708869
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x85c0368066f918b00e8f4882ee9fb96ad845ace9597d2822f5ead717057dcbf1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3fd30f3e1fbf4f3ea6bdf3e3bb11826266708869"
],
"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": "0x1edc5ce0",
"selector": "0x1edc5ce0",
"calldata_variants": [
"0x1edc5ce0",
"0x1edc5ce00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x27e235e3",
"selector": "0x27e235e3",
"calldata_variants": [
"0x27e235e3",
"0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2bdd530b",
"selector": "0x2bdd530b",
"calldata_variants": [
"0x2bdd530b",
"0x2bdd530b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2c4e722e",
"selector": "0x2c4e722e",
"calldata_variants": [
"0x2c4e722e",
"0x2c4e722e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4559b2e8",
"selector": "0x4559b2e8",
"calldata_variants": [
"0x4559b2e8",
"0x4559b2e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4783c35b",
"selector": "0x4783c35b",
"calldata_variants": [
"0x4783c35b",
"0x4783c35b0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2419,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3100,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3801,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 11,
"guards_detected": [
{
"pc": 3479,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6147,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6537,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7154,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x85c0368066f918b00e8f4882ee9fb96ad845ace9597d2822f5ead717057dcbf1
call_targets:
0x3fd30f3e1fbf4f3ea6bdf3e3bb11826266708869
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x85c0368066f918b00e8f4882ee9fb96ad845ace9597d2822f5ead717057dcbf1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3fd30f3e1fbf4f3ea6bdf3e3bb11826266708869"
],
"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": "0x1edc5ce0",
"selector": "0x1edc5ce0",
"calldata_variants": [
"0x1edc5ce0",
"0x1edc5ce00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x27e235e3",
"selector": "0x27e235e3",
"calldata_variants": [
"0x27e235e3",
"0x27e235e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2bdd530b",
"selector": "0x2bdd530b",
"calldata_variants": [
"0x2bdd530b",
"0x2bdd530b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2c4e722e",
"selector": "0x2c4e722e",
"calldata_variants": [
"0x2c4e722e",
"0x2c4e722e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4559b2e8",
"selector": "0x4559b2e8",
"calldata_variants": [
"0x4559b2e8",
"0x4559b2e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4783c35b",
"selector": "0x4783c35b",
"calldata_variants": [
"0x4783c35b",
"0x4783c35b0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2419,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3100,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3801,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 11,
"guards_detected": [
{
"pc": 3479,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6147,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6537,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 7154,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 11
}
|
| 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": 12
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 12
}
|