6a86e7ae-30fc-4bd1-b436-7b9d4baa7340
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 |
|---|---|---|---|---|
| 30362 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 74356 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 74357 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 74358 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 74359 | capability.graph | complete | 1 / 3 | 1 week ago |
| 74360 | detector.run | complete | 1 / 3 | 1 week ago |
| 74361 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1482200] OpenAI Codex v0.77.0 (research preview)
[codex:1482200] --------
[codex:1482200] workdir: /tmp/codex-multi-tai2b4zi
[codex:1482200] model: gpt-5.2-codex
[codex:1482200] provider: openai
[codex:1482200] approval: never
[codex:1482200] sandbox: read-only
[codex:1482200] reasoning effort: xhigh
[codex:1482200] reasoning summaries: auto
[codex:1482200] session id: 019b6667-c580-7b51-942a-ae7912c27f7a
[codex:1482200] --------
[codex:1482200] user
[codex:1482200] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1482200] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1482200] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1482200]
[codex:1482200] Scope rules:
[codex:1482200] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1482200] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1482200]
[codex:1482200] Output MUST be valid JSON matching the provided schema.
[codex:1482200] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1482200] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1482200]
[codex:1482200] Output constraints (IMPORTANT):
[codex:1482200] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1482200] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1482200] mcp startup: no servers
[codex:1482200]
[codex:1482200] thinking
[codex:1482200] **Planning command usage for reading audit bundle**
[codex:1482200] exec
[codex:1482200] /bin/bash -lc ls in /tmp/codex-multi-tai2b4zi succeeded in 6ms:
[codex:1482200] AUDIT_BUNDLE.txt
[codex:1482200] codex-output-schema.json
[codex:1482200] contracts
[codex:1482200]
[codex:1482200] thinking
[codex:1482200] **Reading AUDIT_BUNDLE.txt**
[codex:1482200] exec
[codex:1482200] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-tai2b4zi succeeded in 5ms:
[codex:1482200] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1482200]
[codex:1482200] ================================================================================
[codex:1482200] FILE: contracts/IERC20.sol
[codex:1482200] ================================================================================
[codex:1482200] /**
[codex:1482200] * SPDX-License-Identifier: MIT
[codex:1482200] *
[codex:1482200] * Copyright (c) 2016-2019 zOS Global Limited
[codex:1482200] *
[codex:1482200] */
[codex:1482200] pragma solidity ^0.8.0;
[codex:1482200]
[codex:1482200] /**
[codex:1482200] * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
[codex:1482200] * the optional functions; to access them see `ERC20Detailed`.
[codex:1482200] */
[codex:1482200]
[codex:1482200] interface IERC20 {
[codex:1482200] function name() external view returns (string memory);
[codex:1482200]
[codex:1482200]
[codex:1482200]
[codex:1482200] thinking
[codex:1482200] **Analyzing Position contract vulnerabilities**
[codex:1482200]
[codex:1482200] I'm carefully reviewing Position.sol for security issues like access control gaps, uninitialized ownership allowing anyone to act before initialization, unchecked token transfer return values that could cause accounting errors, and possible reentrancy risks from external calls—especially considering clone behavior and the hub’s role in managing ownership. There’s a nuanced risk if a clone remains uninitialized allowing arbitrary takeovers, plus potential problems if non-standard tokens don’t revert on failed transfers, which could lead to undercollateralized minting.
[codex:1482200] thinking
[codex:1482200] **Evaluating ownership and initialization complexities**
[codex:1482200]
[codex:1482200] I'm digging into ownership workflows and initialization logic in the cloneable Position contract, noting how ownership starts as zero allowing onlyOwner functions to be open pre-initialization but overridden by initialize’s owner reset to hub. I see nuanced risks around uninitialized clones, token transfer assumptions especially with fee-on-transfer tokens causing potential undercollateralization, and the importance of trusted hub roles to prevent misuse, alongside some detailed checks on allowances, expiration, and reentrancy considerations.
[codex:1482200] thinking
[codex:1482200] **Identifying key issues with token transfers and uninitialized clones**
[codex:1482200]
[codex:1482200] I'm analyzing how unchecked ERC20 transfer return values combined with fee-on-transfer tokens could lead to undercollateralized minting in the adjust function, and how uninitialized clones with owner address zero expose privileged functions that might allow collateral withdrawal before initialization—highlighting potential medium and low-severity risks respectively.
[codex:1482200] exec
[codex:1482200] /bin/bash -lc "nl -ba contracts/Position.sol | sed -n '120,260p'" in /tmp/codex-multi-tai2b4zi succeeded in 6ms:
[codex:1482200] 120 error NotOriginal();
[codex:1482200] 121 error InvalidExpiration();
[codex:1482200] 122 error AlreadyInitialized();
[codex:1482200] 123
[codex:1482200] 124 modifier alive() {
[codex:1482200] 125 if (block.timestamp >= expiration) revert Expired(uint40(block.timestamp), expiration);
[codex:1482200] 126 _;
[codex:1482200] 127 }
[codex:1482200] 128
[codex:1482200] 129 // requires that the position has always been backed by a minimal amount of collateral
[codex:1482200] 130 modifier backed() {
[codex:1482200] 131 if (isClosed()) revert Closed();
[codex:1482200] 132 _;
[codex:1482200] 133 }
[codex:1482200] 134
[codex:1482200] 135 modifier expired() {
[codex:1482200] 136 if (block.timestamp < expiration) revert Alive();
[codex:1482200] 137 _;
[codex:1482200] 138 }
[codex:1482200] 139
[codex:1482200]
[codex:1482200] thinking
[codex:1482200] **Adjusting code lines**
[codex:1482200] exec
[codex:1482200] /bin/bash -lc "nl -ba contracts/Position.sol | sed -n '300,520p'" in /tmp/codex-multi-tai2b4zi succeeded in 6ms:
[codex:1482200] 300 collateral.transferFrom(msg.sender, address(this), newCollateral - colbal);
[codex:1482200] 301 }
[codex:1482200] 302 // Must be called after collateral deposit, but before withdrawal
[codex:1482200] 303 if (newMinted < minted) {
[codex:1482200] 304 zchf.burnFromWithReserve(msg.sender, minted - newMinted, reserveContribution);
[codex:1482200] 305 _notifyRepaid(minted - newMinted);
[codex:1482200] 306 }
[codex:1482200] 307 if (newCollateral < colbal) {
[codex:1482200] 308 _withdrawCollateral(msg.sender, colbal - newCollateral);
[codex:1482200] 309 }
[codex:1482200] 310 // Must be called after collateral withdrawal
[codex:1482200] 311 if (newMinted > minted) {
[codex:1482200] 312 _mint(msg.sender, newMinted - minted, newCollateral);
[codex:1482200] 313 }
[codex:1482200] 314 if (newPrice != price) {
[codex:1482200] 315 _adjustPrice(newPrice);
[codex:1482200] 316 }
[codex:1482200] 317 emit MintingUpdate(newCollateral, newPrice, newMinted);
[codex:1482200] 318 }
[codex:1482200] 319
[codex:1482200] exec
[codex:1482200] /bin/bash -lc "nl -ba contracts/Position.sol | sed -n '520,700p'" in /tmp/codex-multi-tai2b4zi succeeded in 6ms:
[codex:1482200] 520 if (relevantCollateral * atPrice < minted * ONE_DEC18)
[codex:1482200] 521 revert InsufficientCollateral(relevantCollateral * atPrice, minted * ONE_DEC18);
[codex:1482200] 522 }
[codex:1482200] 523
[codex:1482200] 524 /**
[codex:1482200] 525 * @notice Returns the liquidation price and the durations for phase1 and phase2 of the challenge.
[codex:1482200] 526 * Both phases are usually of equal duration, but near expiration, phase one is adjusted such that
[codex:1482200] 527 * it cannot last beyond the expiration date of the position.
[codex:1482200] 528 */
[codex:1482200] 529 function challengeData() external view returns (uint256 liqPrice, uint40 phase) {
[codex:1482200] 530 return (price, challengePeriod);
[codex:1482200] 531 }
[codex:1482200] 532
[codex:1482200] 533 function notifyChallengeStarted(uint256 size) external onlyHub alive {
[codex:1482200] 534 // Require minimum size. Collateral balance can be below minimum if it was partially challenged before.
[codex:1482200] 535 if (size < minimumCollateral && size < _collateralBalance()) revert ChallengeTooSmall();
[codex:1482200] 536 if (size == 0) revert ChallengeTooSmall();
[codex:1482200] 537 challengedAmount += size;
[codex:1482200] 538 }
[codex:1482200] 539
[codex:1482200]
[codex:1482200] thinking
[codex:1482200] **Preparing Ownable lines**
[codex:1482200] exec
[codex:1482200] /bin/bash -lc 'nl -ba contracts/Ownable.sol' in /tmp/codex-multi-tai2b4zi succeeded in 6ms:
[codex:1482200] 1 // SPDX-License-Identifier: MIT
[codex:1482200] 2 //
[codex:1482200] 3 // From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol
[codex:1482200] 4 //
[codex:1482200] 5 // Modifications:
[codex:1482200] 6 // - Replaced Context._msgSender() with msg.sender
[codex:1482200] 7 // - Made leaner
[codex:1482200] 8
[codex:1482200] 9 pragma solidity ^0.8.0;
[codex:1482200] 10
[codex:1482200] 11 /**
[codex:1482200] 12 * @dev Contract module which provides a basic access control mechanism, where
[codex:1482200] 13 * there is an account (an owner) that can be granted exclusive access to
[codex:1482200] 14 * specific functions.
[codex:1482200] 15 *
[codex:1482200] 16 * By default, the owner account will be the one that deploys the contract. This
[codex:1482200] 17 * can later be changed with {transferOwnership}.
[codex:1482200] 18 */
[codex:1482200] 19 contract Ownable {
[codex:1482200] 20
[codex:1482200]
[codex:1482200] thinking
[codex:1482200] **Compiling detailed vulnerability assessment**
[codex:1482200]
[codex:1482200] I'll outline two primary findings in JSON: a medium-severity undercollateralized mint risk from unchecked ERC20 return values and fee-on-transfer tokens, plus a low-severity onlyOwner bypass on uninitialized clones allowing temporary unauthorized access. I'll weigh severity, categories, and locations carefully before outputting per the schema.
[codex:1482200] exec
[codex:1482200] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-tai2b4zi succeeded in 5ms:
[codex:1482200] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1482200]
[codex:1482200] thinking
[codex:1482200] **Preparing JSON report of findings**
[codex:1482200] codex
[codex:1482200] {"no_findings":false,"summary":"Found 2 issues: a medium-severity collateral accounting flaw in adjust with fee-on-transfer/non-standard tokens, and a low-severity access control gap where onlyOwner allows calls when owner is unset on clones.","findings":[{"severity":"medium","category":"math","title":"adjust trusts user-supplied collateral amount, enabling undercollateralized minting with fee-on-transfer/non-standard collateral","exploit_scenario":"A position owner uses a fee-on-transfer or malicious collateral token that transfers less than the requested amount (or returns false without reverting). In adjust, they supply a higher newCollateral value and the contract never re-reads the actual balance. _mint then uses the inflated newCollateral to pass _checkCollateral and mint ZCHF beyond the real collateral backing, leaving the system undercollateralized.","recommendation":"Use SafeERC20 and verify transfer success, then recompute the actual collateral balance after any transferFrom/transfer. Pass the post-transfer balance into _mint/_checkCollateral (or assert the balance delta equals the requested amount) to reject fee-on-transfer or non-standard tokens.","evidence":"adjust calls collateral.transferFrom(...) and later _mint(..., newCollateral); _mint uses _checkCollateral(collateral_, price) based on the caller-provided newCollateral rather than the post-transfer balance.","locations":["contracts/Position.sol:300","contracts/Position.sol:311","contracts/Position.sol:385","contracts/Position.sol:390"]},{"severity":"low","category":"access_control","title":"onlyOwner allows calls when owner is zero, leaving uninitialized clones open pre-initialize","exploit_scenario":"If a clone is deployed and not initialized in the same transaction, owner is still address(0). Because _requireOwner does not revert when owner is zero, any account can call onlyOwner functions (e.g., withdraw/transferOwnership) and potentially sweep tokens sent to the clone before initialize runs.","recommendation":"Make onlyOwner revert when owner == address(0) (or add an explicit initialized flag), or ensure clones are initialized atomically at deployment. Setting a non-zero owner during cloning also prevents this window.","evidence":"_requireOwner allows any sender when owner == address(0); initialize sets owner only when called later by the hub.","locations":["contracts/Ownable.sol:46","contracts/Position.sol:198","contracts/Position.sol:203"]}]}
[codex:1482200] tokens used
[codex:1482200] 35,958
[codex:1482200] {"no_findings":false,"summary":"Found 2 issues: a medium-severity collateral accounting flaw in adjust with fee-on-transfer/non-standard tokens, and a low-severity access control gap where onlyOwner allows calls when owner is unset on clones.","findings":[{"severity":"medium","category":"math","title":"adjust trusts user-supplied collateral amount, enabling undercollateralized minting with fee-on-transfer/non-standard collateral","exploit_scenario":"A position owner uses a fee-on-transfer or malicious collateral token that transfers less than the requested amount (or returns false without reverting). In adjust, they supply a higher newCollateral value and the contract never re-reads the actual balance. _mint then uses the inflated newCollateral to pass _checkCollateral and mint ZCHF beyond the real collateral backing, leaving the system undercollateralized.","recommendation":"Use SafeERC20 and verify transfer success, then recompute the actual collateral balance after any transferFrom/transfer. Pass the post-transfer balance into _mint/_checkCollateral (or assert the balance delta equals the requested amount) to reject fee-on-transfer or non-standard tokens.","evidence":"adjust calls collateral.transferFrom(...) and later _mint(..., newCollateral); _mint uses _checkCollateral(collateral_, price) based on the caller-provided newCollateral rather than the post-transfer balance.","locations":["contracts/Position.sol:300","contracts/Position.sol:311","contracts/Position.sol:385","contracts/Position.sol:390"]},{"severity":"low","category":"access_control","title":"onlyOwner allows calls when owner is zero, leaving uninitialized clones open pre-initialize","exploit_scenario":"If a clone is deployed and not initialized in the same transaction, owner is still address(0). Because _requireOwner does not revert when owner is zero, any account can call onlyOwner functions (e.g., withdraw/transferOwnership) and potentially sweep tokens sent to the clone before initialize runs.","recommendation":"Make onlyOwner revert when owner == address(0) (or add an explicit initialized flag), or ensure clones are initialized atomically at deployment. Setting a non-zero owner during cloning also prevents this window.","evidence":"_requireOwner allows any sender when owner == address(0); initialize sets owner only when called later by the hub.","locations":["contracts/Ownable.sol:46","contracts/Position.sol:198","contracts/Position.sol:203"]}]}
{
"codex": {
"ran_at": "2025-12-28T19:25:52.335524+00:00",
"returncode": 0
},
"summary": "Found 2 issues: a medium-severity collateral accounting flaw in adjust with fee-on-transfer/non-standard tokens, and a low-severity access control gap where onlyOwner allows calls when owner is unset on clones.",
"raw_final": {
"summary": "Found 2 issues: a medium-severity collateral accounting flaw in adjust with fee-on-transfer/non-standard tokens, and a low-severity access control gap where onlyOwner allows calls when owner is unset on clones.",
"findings": [
{
"title": "adjust trusts user-supplied collateral amount, enabling undercollateralized minting with fee-on-transfer/non-standard collateral",
"category": "math",
"evidence": "adjust calls collateral.transferFrom(...) and later _mint(..., newCollateral); _mint uses _checkCollateral(collateral_, price) based on the caller-provided newCollateral rather than the post-transfer balance.",
"severity": "medium",
"locations": [
"contracts/Position.sol:300",
"contracts/Position.sol:311",
"contracts/Position.sol:385",
"contracts/Position.sol:390"
],
"recommendation": "Use SafeERC20 and verify transfer success, then recompute the actual collateral balance after any transferFrom/transfer. Pass the post-transfer balance into _mint/_checkCollateral (or assert the balance delta equals the requested amount) to reject fee-on-transfer or non-standard tokens.",
"exploit_scenario": "A position owner uses a fee-on-transfer or malicious collateral token that transfers less than the requested amount (or returns false without reverting). In adjust, they supply a higher newCollateral value and the contract never re-reads the actual balance. _mint then uses the inflated newCollateral to pass _checkCollateral and mint ZCHF beyond the real collateral backing, leaving the system undercollateralized."
},
{
"title": "onlyOwner allows calls when owner is zero, leaving uninitialized clones open pre-initialize",
"category": "access_control",
"evidence": "_requireOwner allows any sender when owner == address(0); initialize sets owner only when called later by the hub.",
"severity": "low",
"locations": [
"contracts/Ownable.sol:46",
"contracts/Position.sol:198",
"contracts/Position.sol:203"
],
"recommendation": "Make onlyOwner revert when owner == address(0) (or add an explicit initialized flag), or ensure clones are initialized atomically at deployment. Setting a non-zero owner during cloning also prevents this window.",
"exploit_scenario": "If a clone is deployed and not initialized in the same transaction, owner is still address(0). Because _requireOwner does not revert when owner is zero, any account can call onlyOwner functions (e.g., withdraw/transferOwnership) and potentially sweep tokens sent to the clone before initialize runs."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x0253 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x6d4749fa 00000026: GT 00000027: PUSH2 0x0146 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xa4d66daf 00000031: GT 00000032: PUSH2 0x00c3 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xc4d4803a 0000003c: GT 0000003d: PUSH2 0x0087 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xc4d4803a 00000047: EQ 00000048: PUSH2 0x05e6 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xcfb636f0 00000052: EQ 00000053: PUSH2 0x060d 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xd8dfeb45 0000005d: EQ 0000005e: PUSH2 0x0620 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xd9caed12 00000068: EQ 00000069: PUSH2 0x0647 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0xf2fde38b 00000073: EQ 00000074: PUSH2 0x065a 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0xf3f480d9 0000007e: EQ 0000007f: PUSH2 0x066d 00000082: JUMPI 00000083: PUSH1 0x00 00000085: DUP1 00000086: REVERT 00000087: JUMPDEST 00000088: DUP1 00000089: PUSH4 0xa4d66daf 0000008e: EQ 0000008f: PUSH2 0x054c 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xa8a3e31d 00000099: EQ 0000009a: PUSH2 0x0573 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0xbabe7c74 000000a4: EQ 000000a5: PUSH2 0x057b 000000a8: JUMPI 000000a9: DUP1 000000aa: PUSH4 0xbe9a6555 000000af: EQ 000000b0: PUSH2 0x05a2 000000b3: JUMPI 000000b4: DUP1 000000b5: PUSH4 0xc2b6b58c 000000ba: EQ 000000bb: PUSH2 0x05c9 000000be: JUMPI 000000bf: PUSH1 0x00 000000c1: DUP1 000000c2: REVERT 000000c3: JUMPDEST 000000c4: DUP1 000000c5: PUSH4 0x7bd6fb9b 000000ca: GT 000000cb: PUSH2 0x010a 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0x7bd6fb9b 000000d5: EQ 000000d6: PUSH2 0x0502 000000d9: JUMPI 000000da: DUP1 000000db: PUSH4 0x8da5cb5b 000000e0: EQ 000000e1: PUSH2 0x050a 000000e4: JUMPI 000000e5: DUP1 000000e6: PUSH4 0x99a5d747 000000eb: EQ 000000ec: PUSH2 0x051d 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0x9de2f796 000000f6: EQ 000000f7: PUSH2 0x0530 000000fa: JUMPI 000000fb: DUP1 000000fc: PUSH4 0xa035b1fe 00000101: EQ 00000102: PUSH2 0x0543 00000105: JUMPI 00000106: PUSH1 0x00 00000108: DUP1 00000109: REVERT 0000010a: JUMPDEST 0000010b: DUP1 0000010c: PUSH4 0x6d4749fa 00000111: EQ 00000112: PUSH2 0x0491 00000115: JUMPI 00000116: DUP1 00000117: PUSH4 0x6f871cec 0000011c: EQ 0000011d: PUSH2 0x04a4 00000120: JUMPI 00000121: DUP1 00000122: PUSH4 0x72bf079e 00000127: EQ 00000128: PUSH2 0x04b7 0000012b: JUMPI 0000012c: DUP1 0000012d: PUSH4 0x730d48b7 00000132: EQ 00000133: PUSH2 0x04ca 00000136: JUMPI 00000137: DUP1 00000138: PUSH4 0x787a08a6 0000013d: EQ 0000013e: PUSH2 0x04f1 00000141: JUMPI 00000142: PUSH1 0x00 00000144: DUP1 00000145: REVERT 00000146: JUMPDEST 00000147: DUP1 00000148: PUSH4 0x371fd8e6 0000014d: GT 0000014e: PUSH2 0x01d4 00000151: JUMPI 00000152: DUP1 00000153: PUSH4 0x4665096d 00000158: GT 00000159: PUSH2 0x0198 0000015c: JUMPI 0000015d: DUP1 0000015e: PUSH4 0x4665096d 00000163: EQ 00000164: PUSH2 0x040d 00000167: JUMPI 00000168: DUP1 00000169: PUSH4 0x46c715fa 0000016e: EQ 0000016f: PUSH2 0x043b 00000172: JUMPI 00000173: DUP1 00000174: PUSH4 0x49746f10 00000179: EQ 0000017a: PUSH2 0x0462 0000017d: JUMPI 0000017e: DUP1 0000017f: PUSH4 0x4f02c420 00000184: EQ 00000185: PUSH2 0x0475 00000188: JUMPI 00000189: DUP1 0000018a: PUSH4 0x5be980f5 0000018f: EQ 00000190: PUSH2 0x047e 00000193: JUMPI 00000194: PUSH1 0x00 00000196: DUP1 00000197: REVERT 00000198: JUMPDEST 00000199: DUP1 0000019a: PUSH4 0x371fd8e6 0000019f: EQ 000001a0: PUSH2 0x0391 000001a3: JUMPI 000001a4: DUP1 000001a5: PUSH4 0x383ef46e 000001aa: EQ 000001ab: PUSH2 0x03a4 000001ae: JUMPI 000001af: DUP1 000001b0: PUSH4 0x3a7c29fb 000001b5: EQ 000001b6: PUSH2 0x03c0 000001b9: JUMPI 000001ba: DUP1 000001bb: PUSH4 0x40c10f19 000001c0: EQ 000001c1: PUSH2 0x03e7 000001c4: JUMPI 000001c5: DUP1 000001c6: PUSH4 0x42d02041 000001cb: EQ 000001cc: PUSH2 0x03fa 000001cf: JUMPI 000001d0: PUSH1 0x00 000001d2: DUP1 000001d3: REVERT 000001d4: JUMPDEST 000001d5: DUP1 000001d6: PUSH4 0x24e657fe 000001db: GT 000001dc: PUSH2 0x021b 000001df: JUMPI 000001e0: DUP1 000001e1: PUSH4 0x24e657fe 000001e6: EQ 000001e7: PUSH2 0x02f1 000001ea: JUMPI 000001eb: DUP1 000001ec: PUSH4 0x2a37eeae 000001f1: EQ 000001f2: PUSH2 0x02fa 000001f5: JUMPI 000001f6: DUP1 000001f7: PUSH4 0x329864aa 000001fc: EQ 000001fd: PUSH2 0x0302 00000200: JUMPI 00000201: DUP1 00000202: PUSH4 0x350c35e9 00000207: EQ 00000208: PUSH2 0x033f 0000020b: JUMPI 0000020c: DUP1 0000020d: PUSH4 0x365a86fc 00000212: EQ 00000213: PUSH2 0x0352 00000216: JUMPI 00000217: PUSH1 0x00 00000219: DUP1 0000021a: REVERT 0000021b: JUMPDEST 0000021c: DUP1 0000021d: PUSH4 0x08262940 00000222: EQ 00000223: PUSH2 0x0258 00000226: JUMPI 00000227: DUP1 00000228: PUSH4 0x0e49d77e 0000022d: EQ 0000022e: PUSH2 0x027e 00000231: JUMPI 00000232: DUP1 00000233: PUSH4 0x1bbea34c 00000238: EQ 00000239: PUSH2 0x0288 0000023c: JUMPI 0000023d: DUP1 0000023e: PUSH4 0x20aa9e72 00000243: EQ 00000244: PUSH2 0x029b 00000247: JUMPI 00000248: DUP1 00000249: PUSH4 0x211d7983 0000024e: EQ 0000024f: PUSH2 0x02de 00000252: JUMPI 00000253: JUMPDEST 00000254: PUSH1 0x00 00000256: DUP1 00000257: REVERT 00000258: JUMPDEST 00000259: PUSH2 0x026b 0000025c: PUSH2 0x0266 0000025f: CALLDATASIZE 00000260: PUSH1 0x04 00000262: PUSH2 0x2981 00000265: JUMP 00000266: JUMPDEST 00000267: PUSH2 0x0694 0000026a: JUMP 0000026b: JUMPDEST 0000026c: PUSH1 0x40 0000026e: MLOAD 0000026f: SWAP1 00000270: DUP2 00000271: MSTORE 00000272: PUSH1 0x20 00000274: ADD 00000275: JUMPDEST 00000276: PUSH1 0x40 00000278: MLOAD 00000279: DUP1 0000027a: SWAP2 0000027b: SUB 0000027c: SWAP1 0000027d: RETURN 0000027e: JUMPDEST 0000027f: PUSH2 0x0286 00000282: PUSH2 0x0733 00000285: JUMP 00000286: JUMPDEST 00000287: STOP 00000288: JUMPDEST 00000289: PUSH2 0x0286 0000028c: PUSH2 0x0296 0000028f: CALLDATASIZE 00000290: PUSH1 0x04 00000292: PUSH2 0x29b1 00000295: JUMP 00000296: JUMPDEST 00000297: PUSH2 0x07fc 0000029a: JUMP 0000029b: JUMPDEST 0000029c: PUSH2 0x02ae 0000029f: PUSH2 0x02a9 000002a2: CALLDATASIZE 000002a3: PUSH1 0x04 000002a5: PUSH2 0x2a8b 000002a8: JUMP 000002a9: JUMPDEST 000002aa: PUSH2 0x0985 000002ad: JUMP 000002ae: JUMPDEST 000002af: PUSH1 0x40 000002b1: DUP1 000002b2: MLOAD 000002b3: PUSH1 0x01 000002b5: PUSH1 0x01 000002b7: PUSH1 0xa0 000002b9: SHL 000002ba: SUB 000002bb: SWAP1 000002bc: SWAP6 000002bd: AND 000002be: DUP6 000002bf: MSTORE 000002c0: PUSH1 0x20 000002c2: DUP6 000002c3: ADD 000002c4: SWAP4 000002c5: SWAP1 000002c6: SWAP4 000002c7: MSTORE 000002c8: SWAP2 000002c9: DUP4 000002ca: ADD 000002cb: MSTORE 000002cc: PUSH4 0xffffffff 000002d1: AND 000002d2: PUSH1 0x60 000002d4: DUP3 000002d5: ADD 000002d6: MSTORE 000002d7: PUSH1 0x80 000002d9: ADD 000002da: PUSH2 0x0275 000002dd: JUMP 000002de: JUMPDEST 000002df: PUSH2 0x0286 000002e2: PUSH2 0x02ec 000002e5: CALLDATASIZE 000002e6: PUSH1 0x04 000002e8: PUSH2 0x2ab7 000002eb: JUMP 000002ec: JUMPDEST 000002ed: PUSH2 0x0ac6 000002f0: JUMP 000002f1: JUMPDEST 000002f2: PUSH2 0x026b 000002f5: PUSH1 0x04 000002f7: SLOAD 000002f8: DUP2 000002f9: JUMP 000002fa: JUMPDEST 000002fb: PUSH2 0x026b 000002fe: PUSH2 0x117c 00000301: JUMP 00000302: JUMPDEST 00000303: PUSH1 0x01 00000305: SLOAD 00000306: PUSH1 0x40 00000308: DUP1 00000309: MLOAD 0000030a: SWAP2 0000030b: DUP3 0000030c: MSTORE 0000030d: PUSH5 0xffffffffff 00000313: PUSH32 0x0000000000000000000000000000000000000000000000000000000000015180 00000334: AND 00000335: PUSH1 0x20 00000337: DUP4 00000338: ADD 00000339: MSTORE 0000033a: ADD 0000033b: PUSH2 0x0275 0000033e: JUMP 0000033f: JUMPDEST 00000340: PUSH2 0x0286 00000343: PUSH2 0x034d 00000346: CALLDATASIZE 00000347: PUSH1 0x04 00000349: PUSH2 0x2a8b 0000034c: JUMP 0000034d: JUMPDEST 0000034e: PUSH2 0x1262 00000351: JUMP 00000352: JUMPDEST 00000353: PUSH2 0x0379 00000356: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 00000377: DUP2 00000378: JUMP 00000379: JUMPDEST 0000037a: PUSH1 0x40 0000037c: MLOAD 0000037d: PUSH1 0x01 0000037f: PUSH1 0x01 00000381: PUSH1 0xa0 00000383: SHL 00000384: SUB 00000385: SWAP1 00000386: SWAP2 00000387: AND 00000388: DUP2 00000389: MSTORE 0000038a: PUSH1 0x20 0000038c: ADD 0000038d: PUSH2 0x0275 00000390: JUMP 00000391: JUMPDEST 00000392: PUSH2 0x026b 00000395: PUSH2 0x039f 00000398: CALLDATASIZE 00000399: PUSH1 0x04 0000039b: PUSH2 0x2aec 0000039e: JUMP 0000039f: JUMPDEST 000003a0: PUSH2 0x134d 000003a3: JUMP 000003a4: JUMPDEST 000003a5: PUSH2 0x03ac 000003a8: PUSH2 0x14e9 000003ab: JUMP 000003ac: JUMPDEST 000003ad: PUSH1 0x40 000003af: MLOAD 000003b0: PUSH3 0xffffff 000003b4: SWAP1 000003b5: SWAP2 000003b6: AND 000003b7: DUP2 000003b8: MSTORE 000003b9: PUSH1 0x20 000003bb: ADD 000003bc: PUSH2 0x0275 000003bf: JUMP 000003c0: JUMPDEST 000003c1: PUSH2 0x03ac 000003c4: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 000003e5: DUP2 000003e6: JUMP 000003e7: JUMPDEST 000003e8: PUSH2 0x0286 000003eb: PUSH2 0x03f5 000003ee: CALLDATASIZE 000003ef: PUSH1 0x04 000003f1: PUSH2 0x2a8b 000003f4: JUMP 000003f5: JUMPDEST 000003f6: PUSH2 0x1506 000003f9: JUMP 000003fa: JUMPDEST 000003fb: PUSH2 0x0286 000003fe: PUSH2 0x0408 00000401: CALLDATASIZE 00000402: PUSH1 0x04 00000404: PUSH2 0x2aec 00000407: JUMP 00000408: JUMPDEST 00000409: PUSH2 0x15f0 0000040c: JUMP 0000040d: JUMPDEST 0000040e: PUSH1 0x05 00000410: SLOAD 00000411: PUSH2 0x0425 00000414: SWAP1 00000415: PUSH1 0x01 00000417: PUSH1 0x28 00000419: SHL 0000041a: SWAP1 0000041b: DIV 0000041c: PUSH5 0xffffffffff 00000422: AND 00000423: DUP2 00000424: JUMP 00000425: JUMPDEST 00000426: PUSH1 0x40 00000428: MLOAD 00000429: PUSH5 0xffffffffff 0000042f: SWAP1 00000430: SWAP2 00000431: AND 00000432: DUP2 00000433: MSTORE 00000434: PUSH1 0x20 00000436: ADD 00000437: PUSH2 0x0275 0000043a: JUMP 0000043b: JUMPDEST 0000043c: PUSH2 0x0379 0000043f: PUSH32 0x00000000000000000000000049c431454c40ecbf848096f2753b2abc3a699a10 00000460: DUP2 00000461: JUMP 00000462: JUMPDEST 00000463: PUSH2 0x0286 00000466: PUSH2 0x0470 00000469: CALLDATASIZE 0000046a: PUSH1 0x04 0000046c: PUSH2 0x2aec 0000046f: JUMP 00000470: JUMPDEST 00000471: PUSH2 0x1714 00000474: JUMP 00000475: JUMPDEST 00000476: PUSH2 0x026b 00000479: PUSH1 0x02 0000047b: SLOAD 0000047c: DUP2 0000047d: JUMP 0000047e: JUMPDEST 0000047f: PUSH2 0x0286 00000482: PUSH2 0x048c 00000485: CALLDATASIZE 00000486: PUSH1 0x04 00000488: PUSH2 0x2aec 0000048b: JUMP 0000048c: JUMPDEST 0000048d: PUSH2 0x1784 00000490: JUMP 00000491: JUMPDEST 00000492: PUSH2 0x0286 00000495: PUSH2 0x049f 00000498: CALLDATASIZE 00000499: PUSH1 0x04 0000049b: PUSH2 0x2b18 0000049e: JUMP 0000049f: JUMPDEST 000004a0: PUSH2 0x186b 000004a3: JUMP 000004a4: JUMPDEST 000004a5: PUSH2 0x0286 000004a8: PUSH2 0x04b2 000004ab: CALLDATASIZE 000004ac: PUSH1 0x04 000004ae: PUSH2 0x2b46 000004b1: JUMP 000004b2: JUMPDEST 000004b3: PUSH2 0x1a57 000004b6: JUMP 000004b7: JUMPDEST 000004b8: PUSH2 0x0286 000004bb: PUSH2 0x04c5 000004be: CALLDATASIZE 000004bf: PUSH1 0x04 000004c1: PUSH2 0x2aec 000004c4: JUMP 000004c5: JUMPDEST 000004c6: PUSH2 0x1c88 000004c9: JUMP 000004ca: JUMPDEST 000004cb: PUSH2 0x03ac 000004ce: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000000 000004ef: DUP2 000004f0: JUMP 000004f1: JUMPDEST 000004f2: PUSH1 0x05 000004f4: SLOAD 000004f5: PUSH2 0x0425 000004f8: SWAP1 000004f9: PUSH5 0xffffffffff 000004ff: AND 00000500: DUP2 00000501: JUMP 00000502: JUMPDEST 00000503: PUSH2 0x03ac 00000506: PUSH2 0x1cd8 00000509: JUMP 0000050a: JUMPDEST 0000050b: PUSH1 0x00 0000050d: SLOAD 0000050e: PUSH2 0x0379 00000511: SWAP1 00000512: PUSH1 0x01 00000514: PUSH1 0x01 00000516: PUSH1 0xa0 00000518: SHL 00000519: SUB 0000051a: AND 0000051b: DUP2 0000051c: JUMP 0000051d: JUMPDEST 0000051e: PUSH2 0x03ac 00000521: PUSH2 0x052b 00000524: CALLDATASIZE 00000525: PUSH1 0x04 00000527: PUSH2 0x2aec 0000052a: JUMP 0000052b: JUMPDEST 0000052c: PUSH2 0x1de8 0000052f: JUMP 00000530: JUMPDEST 00000531: PUSH2 0x026b 00000534: PUSH2 0x053e 00000537: CALLDATASIZE 00000538: PUSH1 0x04 0000053a: PUSH2 0x2aec 0000053d: JUMP 0000053e: JUMPDEST 0000053f: PUSH2 0x1ea0 00000542: JUMP 00000543: JUMPDEST 00000544: PUSH2 0x026b 00000547: PUSH1 0x01 00000549: SLOAD 0000054a: DUP2 0000054b: JUMP 0000054c: JUMPDEST 0000054d: PUSH2 0x026b 00000550: PUSH32 0x000000000000000000000000000000000000000000084595161401484a000000 00000571: DUP2 00000572: JUMP 00000573: JUMPDEST 00000574: PUSH2 0x026b 00000577: PUSH2 0x1f27 0000057a: JUMP 0000057b: JUMPDEST 0000057c: PUSH2 0x026b 0000057f: PUSH32 0x0000000000000000000000000000000000000000000000001bc16d674ec80000 000005a0: DUP2 000005a1: JUMP 000005a2: JUMPDEST 000005a3: PUSH2 0x0425 000005a6: PUSH32 0x0000000000000000000000000000000000000000000000000000000067608407 000005c7: DUP2 000005c8: JUMP 000005c9: JUMPDEST 000005ca: PUSH1 0x05 000005cc: SLOAD 000005cd: PUSH1 0x01 000005cf: PUSH1 0x50 000005d1: SHL 000005d2: SWAP1 000005d3: DIV 000005d4: PUSH1 0xff 000005d6: AND 000005d7: PUSH1 0x40 000005d9: MLOAD 000005da: SWAP1 000005db: ISZERO 000005dc: ISZERO 000005dd: DUP2 000005de: MSTORE 000005df: PUSH1 0x20 000005e1: ADD 000005e2: PUSH2 0x0275 000005e5: JUMP 000005e6: JUMPDEST 000005e7: PUSH2 0x0379 000005ea: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 0000060b: DUP2 0000060c: JUMP 0000060d: JUMPDEST 0000060e: PUSH2 0x0286 00000611: PUSH2 0x061b 00000614: CALLDATASIZE 00000615: PUSH1 0x04 00000617: PUSH2 0x2aec 0000061a: JUMP 0000061b: JUMPDEST 0000061c: PUSH2 0x1ff3 0000061f: JUMP 00000620: JUMPDEST 00000621: PUSH2 0x0379 00000624: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000645: DUP2 00000646: JUMP 00000647: JUMPDEST 00000648: PUSH2 0x0286 0000064b: PUSH2 0x0655 0000064e: CALLDATASIZE 0000064f: PUSH1 0x04 00000651: PUSH2 0x2b72 00000654: JUMP 00000655: JUMPDEST 00000656: PUSH2 0x20da 00000659: JUMP 0000065a: JUMPDEST 0000065b: PUSH2 0x0286 0000065e: PUSH2 0x0668 00000661: CALLDATASIZE 00000662: PUSH1 0x04 00000664: PUSH2 0x2bb3 00000667: JUMP 00000668: JUMPDEST 00000669: PUSH2 0x21c6 0000066c: JUMP 0000066d: JUMPDEST 0000066e: PUSH2 0x0425 00000671: PUSH32 0x0000000000000000000000000000000000000000000000000000000000015180 00000692: DUP2 00000693: JUMP 00000694: JUMPDEST 00000695: PUSH1 0x00 00000697: DUP2 00000698: ISZERO 00000699: PUSH2 0x06ff 0000069c: JUMPI 0000069d: PUSH3 0x0f4240 000006a1: PUSH2 0x06a8 000006a4: PUSH2 0x14e9 000006a7: JUMP 000006a8: JUMPDEST 000006a9: PUSH2 0x06d5 000006ac: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 000006cd: PUSH3 0x0f4240 000006d1: PUSH2 0x2be6 000006d4: JUMP 000006d5: JUMPDEST 000006d6: PUSH2 0x06df 000006d9: SWAP2 000006da: SWAP1 000006db: PUSH2 0x2be6 000006de: JUMP 000006df: JUMPDEST 000006e0: PUSH2 0x06ee 000006e3: SWAP1 000006e4: PUSH3 0xffffff 000006e8: AND 000006e9: DUP6 000006ea: PUSH2 0x2c09 000006ed: JUMP 000006ee: JUMPDEST 000006ef: PUSH2 0x06f8 000006f2: SWAP2 000006f3: SWAP1 000006f4: PUSH2 0x2c20 000006f7: JUMP 000006f8: JUMPDEST 000006f9: SWAP1 000006fa: POP 000006fb: PUSH2 0x072d 000006fe: JUMP 000006ff: JUMPDEST 00000700: PUSH3 0x0f4240 00000704: PUSH2 0x06df 00000707: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 00000728: DUP3 00000729: PUSH2 0x2be6 0000072c: JUMP 0000072d: JUMPDEST 0000072e: SWAP3 0000072f: SWAP2 00000730: POP 00000731: POP 00000732: JUMP 00000733: JUMPDEST 00000734: PUSH1 0x04 00000736: SLOAD 00000737: ISZERO 00000738: PUSH2 0x0754 0000073b: JUMPI 0000073c: PUSH1 0x40 0000073e: MLOAD 0000073f: PUSH4 0xd26e2de9 00000744: PUSH1 0xe0 00000746: SHL 00000747: DUP2 00000748: MSTORE 00000749: PUSH1 0x04 0000074b: ADD 0000074c: PUSH1 0x40 0000074e: MLOAD 0000074f: DUP1 00000750: SWAP2 00000751: SUB 00000752: SWAP1 00000753: REVERT 00000754: JUMPDEST 00000755: PUSH1 0x05 00000757: SLOAD 00000758: PUSH5 0xffffffffff 0000075e: AND 0000075f: TIMESTAMP 00000760: GT 00000761: PUSH2 0x077d 00000764: JUMPI 00000765: PUSH1 0x40 00000767: MLOAD 00000768: PUSH4 0x1c02820f 0000076d: PUSH1 0xe2 0000076f: SHL 00000770: DUP2 00000771: MSTORE 00000772: PUSH1 0x04 00000774: ADD 00000775: PUSH1 0x40 00000777: MLOAD 00000778: DUP1 00000779: SWAP2 0000077a: SUB 0000077b: SWAP1 0000077c: REVERT 0000077d: JUMPDEST 0000077e: PUSH1 0x05 00000780: SLOAD 00000781: PUSH1 0x01 00000783: PUSH1 0x28 00000785: SHL 00000786: SWAP1 00000787: DIV 00000788: PUSH5 0xffffffffff 0000078e: AND 0000078f: TIMESTAMP 00000790: LT 00000791: PUSH2 0x07cf 00000794: JUMPI 00000795: PUSH1 0x05 00000797: SLOAD 00000798: PUSH1 0x40 0000079a: MLOAD 0000079b: PUSH3 0x38ddd7 0000079f: PUSH1 0xe4 000007a1: SHL 000007a2: DUP2 000007a3: MSTORE 000007a4: PUSH5 0xffffffffff 000007aa: TIMESTAMP 000007ab: DUP2 000007ac: AND 000007ad: PUSH1 0x04 000007af: DUP4 000007b0: ADD 000007b1: MSTORE 000007b2: PUSH1 0x01 000007b4: PUSH1 0x28 000007b6: SHL 000007b7: SWAP1 000007b8: SWAP3 000007b9: DIV 000007ba: SWAP2 000007bb: SWAP1 000007bc: SWAP2 000007bd: AND 000007be: PUSH1 0x24 000007c0: DUP3 000007c1: ADD 000007c2: MSTORE 000007c3: PUSH1 0x44 000007c5: ADD 000007c6: JUMPDEST 000007c7: PUSH1 0x40 000007c9: MLOAD 000007ca: DUP1 000007cb: SWAP2 000007cc: SUB 000007cd: SWAP1 000007ce: REVERT 000007cf: JUMPDEST 000007d0: PUSH1 0x05 000007d2: SLOAD 000007d3: PUSH1 0x01 000007d5: PUSH1 0x50 000007d7: SHL 000007d8: SWAP1 000007d9: DIV 000007da: PUSH1 0xff 000007dc: AND 000007dd: ISZERO 000007de: PUSH2 0x07fa 000007e1: JUMPI 000007e2: PUSH1 0x40 000007e4: MLOAD 000007e5: PUSH4 0x1cdde67b 000007ea: PUSH1 0xe0 000007ec: SHL 000007ed: DUP2 000007ee: MSTORE 000007ef: PUSH1 0x04 000007f1: ADD 000007f2: PUSH1 0x40 000007f4: MLOAD 000007f5: DUP1 000007f6: SWAP2 000007f7: SUB 000007f8: SWAP1 000007f9: REVERT 000007fa: JUMPDEST 000007fb: JUMP 000007fc: JUMPDEST 000007fd: PUSH32 0x0000000000000000000000000000000000000000000000000000000067608407 0000081e: PUSH5 0xffffffffff 00000824: AND 00000825: TIMESTAMP 00000826: LT 00000827: PUSH2 0x0843 0000082a: JUMPI 0000082b: PUSH1 0x40 0000082d: MLOAD 0000082e: PUSH4 0xecdd1c29 00000833: PUSH1 0xe0 00000835: SHL 00000836: DUP2 00000837: MSTORE 00000838: PUSH1 0x04 0000083a: ADD 0000083b: PUSH1 0x40 0000083d: MLOAD 0000083e: DUP1 0000083f: SWAP2 00000840: SUB 00000841: SWAP1 00000842: REVERT 00000843: JUMPDEST 00000844: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00000865: PUSH1 0x01 00000867: PUSH1 0x01 00000869: PUSH1 0xa0 0000086b: SHL 0000086c: SUB 0000086d: AND 0000086e: PUSH4 0xcd3293de 00000873: PUSH1 0x40 00000875: MLOAD 00000876: DUP2 00000877: PUSH4 0xffffffff 0000087c: AND 0000087d: PUSH1 0xe0 0000087f: SHL 00000880: DUP2 00000881: MSTORE 00000882: PUSH1 0x04 00000884: ADD 00000885: PUSH1 0x20 00000887: PUSH1 0x40 00000889: MLOAD 0000088a: DUP1 0000088b: DUP4 0000088c: SUB 0000088d: DUP2 0000088e: DUP7 0000088f: GAS 00000890: STATICCALL 00000891: ISZERO 00000892: DUP1 00000893: ISZERO 00000894: PUSH2 0x08a1 00000897: JUMPI 00000898: RETURNDATASIZE 00000899: PUSH1 0x00 0000089b: DUP1 0000089c: RETURNDATACOPY 0000089d: RETURNDATASIZE 0000089e: PUSH1 0x00 000008a0: REVERT 000008a1: JUMPDEST 000008a2: POP 000008a3: POP 000008a4: POP 000008a5: POP 000008a6: PUSH1 0x40 000008a8: MLOAD 000008a9: RETURNDATASIZE 000008aa: PUSH1 0x1f 000008ac: NOT 000008ad: PUSH1 0x1f 000008af: DUP3 000008b0: ADD 000008b1: AND 000008b2: DUP3 000008b3: ADD 000008b4: DUP1 000008b5: PUSH1 0x40 000008b7: MSTORE 000008b8: POP 000008b9: DUP2 000008ba: ADD 000008bb: SWAP1 000008bc: PUSH2 0x08c5 000008bf: SWAP2 000008c0: SWAP1 000008c1: PUSH2 0x2c42 000008c4: JUMP 000008c5: JUMPDEST 000008c6: PUSH1 0x01 000008c8: PUSH1 0x01 000008ca: PUSH1 0xa0 000008cc: SHL 000008cd: SUB 000008ce: AND 000008cf: PUSH4 0x352e3a83 000008d4: CALLER 000008d5: DUP7 000008d6: DUP7 000008d7: PUSH1 0x40 000008d9: MLOAD 000008da: DUP5 000008db: PUSH4 0xffffffff 000008e0: AND 000008e1: PUSH1 0xe0 000008e3: SHL 000008e4: DUP2 000008e5: MSTORE 000008e6: PUSH1 0x04 000008e8: ADD 000008e9: PUSH2 0x08f4 000008ec: SWAP4 000008ed: SWAP3 000008ee: SWAP2 000008ef: SWAP1 000008f0: PUSH2 0x2c5f 000008f3: JUMP 000008f4: JUMPDEST 000008f5: PUSH1 0x00 000008f7: PUSH1 0x40 000008f9: MLOAD 000008fa: DUP1 000008fb: DUP4 000008fc: SUB 000008fd: DUP2 000008fe: DUP7 000008ff: DUP1 00000900: EXTCODESIZE 00000901: ISZERO 00000902: DUP1 00000903: ISZERO 00000904: PUSH2 0x090c 00000907: JUMPI 00000908: PUSH1 0x00 0000090a: DUP1 0000090b: REVERT 0000090c: JUMPDEST 0000090d: POP 0000090e: GAS 0000090f: STATICCALL 00000910: ISZERO 00000911: DUP1 00000912: ISZERO 00000913: PUSH2 0x0920 00000916: JUMPI 00000917: RETURNDATASIZE 00000918: PUSH1 0x00 0000091a: DUP1 0000091b: RETURNDATACOPY 0000091c: RETURNDATASIZE 0000091d: PUSH1 0x00 0000091f: REVERT 00000920: JUMPDEST 00000921: POP 00000922: POP 00000923: POP 00000924: POP 00000925: PUSH2 0x093c 00000928: PUSH1 0x05 0000092a: DUP1 0000092b: SLOAD 0000092c: PUSH1 0xff 0000092e: PUSH1 0x50 00000930: SHL 00000931: NOT 00000932: AND 00000933: PUSH1 0x01 00000935: PUSH1 0x50 00000937: SHL 00000938: OR 00000939: SWAP1 0000093a: SSTORE 0000093b: JUMP 0000093c: JUMPDEST 0000093d: CALLER 0000093e: PUSH1 0x01 00000940: PUSH1 0x01 00000942: PUSH1 0xa0 00000944: SHL 00000945: SUB 00000946: AND 00000947: PUSH32 0xaca80c800ec0d2aa9d9d31b7f886a1dd3067d4676abc637626a18ffb9381653d 00000968: DUP4 00000969: DUP4 0000096a: PUSH1 0x40 0000096c: MLOAD 0000096d: PUSH2 0x0977 00000970: SWAP3 00000971: SWAP2 00000972: SWAP1 00000973: PUSH2 0x2cbb 00000976: JUMP 00000977: JUMPDEST 00000978: PUSH1 0x40 0000097a: MLOAD 0000097b: DUP1 0000097c: SWAP2 0000097d: SUB 0000097e: SWAP1 0000097f: LOG2 00000980: POP 00000981: POP 00000982: POP 00000983: POP 00000984: JUMP 00000985: JUMPDEST 00000986: PUSH1 0x00 00000988: DUP1 00000989: DUP1 0000098a: DUP1 0000098b: CALLER 0000098c: PUSH1 0x01 0000098e: PUSH1 0x01 00000990: PUSH1 0xa0 00000992: SHL 00000993: SUB 00000994: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 000009b5: AND 000009b6: EQ 000009b7: PUSH2 0x09d3 000009ba: JUMPI 000009bb: PUSH1 0x40 000009bd: MLOAD 000009be: PUSH4 0x13bd2e83 000009c3: PUSH1 0xe3 000009c5: SHL 000009c6: DUP2 000009c7: MSTORE 000009c8: PUSH1 0x04 000009ca: ADD 000009cb: PUSH1 0x40 000009cd: MLOAD 000009ce: DUP1 000009cf: SWAP2 000009d0: SUB 000009d1: SWAP1 000009d2: REVERT 000009d3: JUMPDEST 000009d4: DUP5 000009d5: PUSH1 0x04 000009d7: PUSH1 0x00 000009d9: DUP3 000009da: DUP3 000009db: SLOAD 000009dc: PUSH2 0x09e5 000009df: SWAP2 000009e0: SWAP1 000009e1: PUSH2 0x2cea 000009e4: JUMP 000009e5: JUMPDEST 000009e6: SWAP1 000009e7: SWAP2 000009e8: SSTORE 000009e9: POP 000009ea: PUSH1 0x00 000009ec: SWAP1 000009ed: POP 000009ee: PUSH2 0x09f5 000009f1: PUSH2 0x21d8 000009f4: JUMP 000009f5: JUMPDEST 000009f6: SWAP1 000009f7: POP 000009f8: DUP6 000009f9: DUP2 000009fa: LT 000009fb: ISZERO 000009fc: PUSH2 0x0a03 000009ff: JUMPI 00000a00: DUP1 00000a01: SWAP6 00000a02: POP 00000a03: JUMPDEST 00000a04: PUSH1 0x00 00000a06: DUP2 00000a07: ISZERO 00000a08: PUSH2 0x0a29 00000a0b: JUMPI 00000a0c: DUP2 00000a0d: DUP8 00000a0e: PUSH1 0x02 00000a10: SLOAD 00000a11: PUSH2 0x0a1a 00000a14: SWAP2 00000a15: SWAP1 00000a16: PUSH2 0x2c09 00000a19: JUMP 00000a1a: JUMPDEST 00000a1b: PUSH2 0x0a24 00000a1e: SWAP2 00000a1f: SWAP1 00000a20: PUSH2 0x2c20 00000a23: JUMP 00000a24: JUMPDEST 00000a25: PUSH2 0x0a2c 00000a28: JUMP 00000a29: JUMPDEST 00000a2a: PUSH1 0x00 00000a2c: JUMPDEST 00000a2d: SWAP1 00000a2e: POP 00000a2f: PUSH2 0x0a37 00000a32: DUP2 00000a33: PUSH2 0x223f 00000a36: JUMP 00000a37: JUMPDEST 00000a38: PUSH2 0x0a43 00000a3b: PUSH3 0x03f480 00000a3f: PUSH2 0x22fe 00000a42: JUMP 00000a43: JUMPDEST 00000a44: PUSH1 0x00 00000a46: PUSH2 0x0a4f 00000a49: DUP10 00000a4a: DUP10 00000a4b: PUSH2 0x233f 00000a4e: JUMP 00000a4f: JUMPDEST 00000a50: PUSH1 0x01 00000a52: SLOAD 00000a53: PUSH1 0x02 00000a55: SLOAD 00000a56: PUSH1 0x40 00000a58: DUP1 00000a59: MLOAD 00000a5a: DUP5 00000a5b: DUP2 00000a5c: MSTORE 00000a5d: PUSH1 0x20 00000a5f: DUP2 00000a60: ADD 00000a61: SWAP4 00000a62: SWAP1 00000a63: SWAP4 00000a64: MSTORE 00000a65: DUP3 00000a66: ADD 00000a67: MSTORE 00000a68: SWAP1 00000a69: SWAP2 00000a6a: POP 00000a6b: PUSH1 0x00 00000a6d: DUP1 00000a6e: MLOAD 00000a6f: PUSH1 0x20 00000a71: PUSH2 0x2dfd 00000a74: DUP4 00000a75: CODECOPY 00000a76: DUP2 00000a77: MLOAD 00000a78: SWAP2 00000a79: MSTORE 00000a7a: SWAP1 00000a7b: PUSH1 0x60 00000a7d: ADD 00000a7e: PUSH1 0x40 00000a80: MLOAD 00000a81: DUP1 00000a82: SWAP2 00000a83: SUB 00000a84: SWAP1 00000a85: LOG1 00000a86: POP 00000a87: PUSH1 0x00 00000a89: SLOAD 00000a8a: PUSH1 0x01 00000a8c: PUSH1 0x01 00000a8e: PUSH1 0xa0 00000a90: SHL 00000a91: SUB 00000a92: AND 00000a93: SWAP9 00000a94: SWAP7 00000a95: SWAP8 00000a96: POP 00000a97: SWAP6 00000a98: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 00000ab9: PUSH3 0xffffff 00000abd: AND 00000abe: SWAP6 00000abf: POP 00000ac0: SWAP4 00000ac1: POP 00000ac2: POP 00000ac3: POP 00000ac4: POP 00000ac5: JUMP 00000ac6: JUMPDEST 00000ac7: CALLER 00000ac8: PUSH1 0x01 00000aca: PUSH1 0x01 00000acc: PUSH1 0xa0 00000ace: SHL 00000acf: SUB 00000ad0: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 00000af1: AND 00000af2: EQ 00000af3: PUSH2 0x0b0f 00000af6: JUMPI 00000af7: PUSH1 0x40 00000af9: MLOAD 00000afa: PUSH4 0x13bd2e83 00000aff: PUSH1 0xe3 00000b01: SHL 00000b02: DUP2 00000b03: MSTORE 00000b04: PUSH1 0x04 00000b06: ADD 00000b07: PUSH1 0x40 00000b09: MLOAD 00000b0a: DUP1 00000b0b: SWAP2 00000b0c: SUB 00000b0d: SWAP1 00000b0e: REVERT 00000b0f: JUMPDEST 00000b10: PUSH1 0x05 00000b12: SLOAD 00000b13: PUSH1 0x01 00000b15: PUSH1 0x28 00000b17: SHL 00000b18: SWAP1 00000b19: DIV 00000b1a: PUSH5 0xffffffffff 00000b20: AND 00000b21: TIMESTAMP 00000b22: LT 00000b23: ISZERO 00000b24: PUSH2 0x0b40 00000b27: JUMPI 00000b28: PUSH1 0x40 00000b2a: MLOAD 00000b2b: PUSH4 0x02de694d 00000b30: PUSH1 0xe4 00000b32: SHL 00000b33: DUP2 00000b34: MSTORE 00000b35: PUSH1 0x04 00000b37: ADD 00000b38: PUSH1 0x40 00000b3a: MLOAD 00000b3b: DUP1 00000b3c: SWAP2 00000b3d: SUB 00000b3e: SWAP1 00000b3f: REVERT 00000b40: JUMPDEST 00000b41: PUSH1 0x04 00000b43: SLOAD 00000b44: ISZERO 00000b45: PUSH2 0x0b61 00000b48: JUMPI 00000b49: PUSH1 0x40 00000b4b: MLOAD 00000b4c: PUSH4 0xd26e2de9 00000b51: PUSH1 0xe0 00000b53: SHL 00000b54: DUP2 00000b55: MSTORE 00000b56: PUSH1 0x04 00000b58: ADD 00000b59: PUSH1 0x40 00000b5b: MLOAD 00000b5c: DUP1 00000b5d: SWAP2 00000b5e: SUB 00000b5f: SWAP1 00000b60: REVERT 00000b61: JUMPDEST 00000b62: PUSH1 0x00 00000b64: PUSH2 0x0b6d 00000b67: DUP5 00000b68: DUP5 00000b69: PUSH2 0x233f 00000b6c: JUMP 00000b6d: JUMPDEST 00000b6e: PUSH1 0x02 00000b70: SLOAD 00000b71: SWAP1 00000b72: SWAP2 00000b73: POP 00000b74: ISZERO 00000b75: PUSH2 0x10a1 00000b78: JUMPI 00000b79: PUSH1 0x02 00000b7b: SLOAD 00000b7c: PUSH1 0x40 00000b7e: MLOAD 00000b7f: PUSH4 0x02dc1ca7 00000b84: PUSH1 0xe3 00000b86: SHL 00000b87: DUP2 00000b88: MSTORE 00000b89: PUSH1 0x04 00000b8b: DUP2 00000b8c: ADD 00000b8d: SWAP2 00000b8e: SWAP1 00000b8f: SWAP2 00000b90: MSTORE 00000b91: PUSH3 0xffffff 00000b95: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 00000bb6: AND 00000bb7: PUSH1 0x24 00000bb9: DUP3 00000bba: ADD 00000bbb: MSTORE 00000bbc: PUSH1 0x00 00000bbe: SWAP1 00000bbf: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00000be0: PUSH1 0x01 00000be2: PUSH1 0x01 00000be4: PUSH1 0xa0 00000be6: SHL 00000be7: SUB 00000be8: AND 00000be9: SWAP1 00000bea: PUSH4 0x16e0e538 00000bef: SWAP1 00000bf0: PUSH1 0x44 00000bf2: ADD 00000bf3: PUSH1 0x20 00000bf5: PUSH1 0x40 00000bf7: MLOAD 00000bf8: DUP1 00000bf9: DUP4 00000bfa: SUB 00000bfb: DUP2 00000bfc: DUP7 00000bfd: GAS 00000bfe: STATICCALL 00000bff: ISZERO 00000c00: DUP1 00000c01: ISZERO 00000c02: PUSH2 0x0c0f 00000c05: JUMPI 00000c06: RETURNDATASIZE 00000c07: PUSH1 0x00 00000c09: DUP1 00000c0a: RETURNDATACOPY 00000c0b: RETURNDATASIZE 00000c0c: PUSH1 0x00 00000c0e: REVERT 00000c0f: JUMPDEST 00000c10: POP 00000c11: POP 00000c12: POP 00000c13: POP 00000c14: PUSH1 0x40 00000c16: MLOAD 00000c17: RETURNDATASIZE 00000c18: PUSH1 0x1f 00000c1a: NOT 00000c1b: PUSH1 0x1f 00000c1d: DUP3 00000c1e: ADD 00000c1f: AND 00000c20: DUP3 00000c21: ADD 00000c22: DUP1 00000c23: PUSH1 0x40 00000c25: MSTORE 00000c26: POP 00000c27: DUP2 00000c28: ADD 00000c29: SWAP1 00000c2a: PUSH2 0x0c33 00000c2d: SWAP2 00000c2e: SWAP1 00000c2f: PUSH2 0x2cfd 00000c32: JUMP 00000c33: JUMPDEST 00000c34: PUSH1 0x02 00000c36: SLOAD 00000c37: SWAP1 00000c38: SWAP2 00000c39: POP 00000c3a: PUSH2 0x0c43 00000c3d: DUP3 00000c3e: DUP6 00000c3f: PUSH2 0x2d16 00000c42: JUMP 00000c43: JUMPDEST 00000c44: LT 00000c45: PUSH2 0x0de4 00000c48: JUMPI 00000c49: PUSH1 0x02 00000c4b: SLOAD 00000c4c: PUSH1 0x40 00000c4e: MLOAD 00000c4f: PUSH4 0x18af9f39 00000c54: PUSH1 0xe1 00000c56: SHL 00000c57: DUP2 00000c58: MSTORE 00000c59: PUSH1 0x01 00000c5b: PUSH1 0x01 00000c5d: PUSH1 0xa0 00000c5f: SHL 00000c60: SUB 00000c61: DUP8 00000c62: DUP2 00000c63: AND 00000c64: PUSH1 0x04 00000c66: DUP4 00000c67: ADD 00000c68: MSTORE 00000c69: PUSH1 0x24 00000c6b: DUP3 00000c6c: ADD 00000c6d: SWAP3 00000c6e: SWAP1 00000c6f: SWAP3 00000c70: MSTORE 00000c71: PUSH3 0xffffff 00000c75: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 00000c96: AND 00000c97: PUSH1 0x44 00000c99: DUP3 00000c9a: ADD 00000c9b: MSTORE 00000c9c: PUSH1 0x00 00000c9e: SWAP2 00000c9f: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00000cc0: AND 00000cc1: SWAP1 00000cc2: PUSH4 0x315f3e72 00000cc7: SWAP1 00000cc8: PUSH1 0x64 00000cca: ADD 00000ccb: PUSH1 0x20 00000ccd: PUSH1 0x40 00000ccf: MLOAD 00000cd0: DUP1 00000cd1: DUP4 00000cd2: SUB 00000cd3: DUP2 00000cd4: PUSH1 0x00 00000cd6: DUP8 00000cd7: GAS 00000cd8: CALL 00000cd9: ISZERO 00000cda: DUP1 00000cdb: ISZERO 00000cdc: PUSH2 0x0ce9 00000cdf: JUMPI 00000ce0: RETURNDATASIZE 00000ce1: PUSH1 0x00 00000ce3: DUP1 00000ce4: RETURNDATACOPY 00000ce5: RETURNDATASIZE 00000ce6: PUSH1 0x00 00000ce8: REVERT 00000ce9: JUMPDEST 00000cea: POP 00000ceb: POP 00000cec: POP 00000ced: POP 00000cee: PUSH1 0x40 00000cf0: MLOAD 00000cf1: RETURNDATASIZE 00000cf2: PUSH1 0x1f 00000cf4: NOT 00000cf5: PUSH1 0x1f 00000cf7: DUP3 00000cf8: ADD 00000cf9: AND 00000cfa: DUP3 00000cfb: ADD 00000cfc: DUP1 00000cfd: PUSH1 0x40 00000cff: MSTORE 00000d00: POP 00000d01: DUP2 00000d02: ADD 00000d03: SWAP1 00000d04: PUSH2 0x0d0d 00000d07: SWAP2 00000d08: SWAP1 00000d09: PUSH2 0x2cfd 00000d0c: JUMP 00000d0d: JUMPDEST 00000d0e: SWAP1 00000d0f: POP 00000d10: DUP2 00000d11: DUP2 00000d12: EQ 00000d13: PUSH2 0x0d1e 00000d16: JUMPI 00000d17: PUSH2 0x0d1e 00000d1a: PUSH2 0x2d29 00000d1d: JUMP 00000d1e: JUMPDEST 00000d1f: PUSH1 0x00 00000d21: SLOAD 00000d22: PUSH1 0x02 00000d24: SLOAD 00000d25: PUSH1 0x01 00000d27: PUSH1 0x01 00000d29: PUSH1 0xa0 00000d2b: SHL 00000d2c: SUB 00000d2d: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00000d4e: DUP2 00000d4f: AND 00000d50: SWAP3 00000d51: PUSH4 0x23b872dd 00000d56: SWAP3 00000d57: DUP11 00000d58: SWAP3 00000d59: SWAP2 00000d5a: SWAP1 00000d5b: SWAP2 00000d5c: AND 00000d5d: SWAP1 00000d5e: PUSH2 0x0d67 00000d61: DUP7 00000d62: DUP11 00000d63: PUSH2 0x2d16 00000d66: JUMP 00000d67: JUMPDEST 00000d68: PUSH2 0x0d71 00000d6b: SWAP2 00000d6c: SWAP1 00000d6d: PUSH2 0x2cea 00000d70: JUMP 00000d71: JUMPDEST 00000d72: PUSH1 0x40 00000d74: MLOAD 00000d75: DUP5 00000d76: PUSH4 0xffffffff 00000d7b: AND 00000d7c: PUSH1 0xe0 00000d7e: SHL 00000d7f: DUP2 00000d80: MSTORE 00000d81: PUSH1 0x04 00000d83: ADD 00000d84: PUSH2 0x0d8f 00000d87: SWAP4 00000d88: SWAP3 00000d89: SWAP2 00000d8a: SWAP1 00000d8b: PUSH2 0x2d3f 00000d8e: JUMP 00000d8f: JUMPDEST 00000d90: PUSH1 0x20 00000d92: PUSH1 0x40 00000d94: MLOAD 00000d95: DUP1 00000d96: DUP4 00000d97: SUB 00000d98: DUP2 00000d99: PUSH1 0x00 00000d9b: DUP8 00000d9c: GAS 00000d9d: CALL 00000d9e: ISZERO 00000d9f: DUP1 00000da0: ISZERO 00000da1: PUSH2 0x0dae 00000da4: JUMPI 00000da5: RETURNDATASIZE 00000da6: PUSH1 0x00 00000da8: DUP1 00000da9: RETURNDATACOPY 00000daa: RETURNDATASIZE 00000dab: PUSH1 0x00 00000dad: REVERT 00000dae: JUMPDEST 00000daf: POP 00000db0: POP 00000db1: POP 00000db2: POP 00000db3: PUSH1 0x40 00000db5: MLOAD 00000db6: RETURNDATASIZE 00000db7: PUSH1 0x1f 00000db9: NOT 00000dba: PUSH1 0x1f 00000dbc: DUP3 00000dbd: ADD 00000dbe: AND 00000dbf: DUP3 00000dc0: ADD 00000dc1: DUP1 00000dc2: PUSH1 0x40 00000dc4: MSTORE 00000dc5: POP 00000dc6: DUP2 00000dc7: ADD 00000dc8: SWAP1 00000dc9: PUSH2 0x0dd2 00000dcc: SWAP2 00000dcd: SWAP1 00000dce: PUSH2 0x2d63 00000dd1: JUMP 00000dd2: JUMPDEST 00000dd3: POP 00000dd4: PUSH2 0x0dde 00000dd7: PUSH1 0x02 00000dd9: SLOAD 00000dda: PUSH2 0x223f 00000ddd: JUMP 00000dde: JUMPDEST 00000ddf: POP 00000de0: PUSH2 0x109b 00000de3: JUMP 00000de4: JUMPDEST 00000de5: PUSH1 0x40 00000de7: MLOAD 00000de8: PUSH4 0x23b872dd 00000ded: PUSH1 0xe0 00000def: SHL 00000df0: DUP2 00000df1: MSTORE 00000df2: PUSH1 0x01 00000df4: PUSH1 0x01 00000df6: PUSH1 0xa0 00000df8: SHL 00000df9: SUB 00000dfa: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00000e1b: AND 00000e1c: SWAP1 00000e1d: PUSH4 0x23b872dd 00000e22: SWAP1 00000e23: PUSH2 0x0e34 00000e26: SWAP1 00000e27: DUP9 00000e28: SWAP1 00000e29: ADDRESS 00000e2a: SWAP1 00000e2b: DUP9 00000e2c: SWAP1 00000e2d: PUSH1 0x04 00000e2f: ADD 00000e30: PUSH2 0x2d3f 00000e33: JUMP 00000e34: JUMPDEST 00000e35: PUSH1 0x20 00000e37: PUSH1 0x40 00000e39: MLOAD 00000e3a: DUP1 00000e3b: DUP4 00000e3c: SUB 00000e3d: DUP2 00000e3e: PUSH1 0x00 00000e40: DUP8 00000e41: GAS 00000e42: CALL 00000e43: ISZERO 00000e44: DUP1 00000e45: ISZERO 00000e46: PUSH2 0x0e53 00000e49: JUMPI 00000e4a: RETURNDATASIZE 00000e4b: PUSH1 0x00 00000e4d: DUP1 00000e4e: RETURNDATACOPY 00000e4f: RETURNDATASIZE 00000e50: PUSH1 0x00 00000e52: REVERT 00000e53: JUMPDEST 00000e54: POP 00000e55: POP 00000e56: POP 00000e57: POP 00000e58: PUSH1 0x40 00000e5a: MLOAD 00000e5b: RETURNDATASIZE 00000e5c: PUSH1 0x1f 00000e5e: NOT 00000e5f: PUSH1 0x1f 00000e61: DUP3 00000e62: ADD 00000e63: AND 00000e64: DUP3 00000e65: ADD 00000e66: DUP1 00000e67: PUSH1 0x40 00000e69: MSTORE 00000e6a: POP 00000e6b: DUP2 00000e6c: ADD 00000e6d: SWAP1 00000e6e: PUSH2 0x0e77 00000e71: SWAP2 00000e72: SWAP1 00000e73: PUSH2 0x2d63 00000e76: JUMP 00000e77: JUMPDEST 00000e78: POP 00000e79: DUP2 00000e7a: PUSH1 0x00 00000e7c: SUB 00000e7d: PUSH2 0x0fd5 00000e80: JUMPI 00000e81: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00000ea2: PUSH1 0x01 00000ea4: PUSH1 0x01 00000ea6: PUSH1 0xa0 00000ea8: SHL 00000ea9: SUB 00000eaa: AND 00000eab: PUSH4 0xd1fa5e98 00000eb0: ADDRESS 00000eb1: DUP6 00000eb2: PUSH1 0x02 00000eb4: SLOAD 00000eb5: PUSH2 0x0ebe 00000eb8: SWAP2 00000eb9: SWAP1 00000eba: PUSH2 0x2cea 00000ebd: JUMP 00000ebe: JUMPDEST 00000ebf: PUSH1 0x40 00000ec1: MLOAD 00000ec2: PUSH1 0x01 00000ec4: PUSH1 0x01 00000ec6: PUSH1 0xe0 00000ec8: SHL 00000ec9: SUB 00000eca: NOT 00000ecb: PUSH1 0xe0 00000ecd: DUP6 00000ece: SWAP1 00000ecf: SHL 00000ed0: AND 00000ed1: DUP2 00000ed2: MSTORE 00000ed3: PUSH1 0x01 00000ed5: PUSH1 0x01 00000ed7: PUSH1 0xa0 00000ed9: SHL 00000eda: SUB 00000edb: SWAP1 00000edc: SWAP3 00000edd: AND 00000ede: PUSH1 0x04 00000ee0: DUP4 00000ee1: ADD 00000ee2: MSTORE 00000ee3: PUSH1 0x24 00000ee5: DUP3 00000ee6: ADD 00000ee7: MSTORE 00000ee8: PUSH1 0x44 00000eea: ADD 00000eeb: PUSH1 0x00 00000eed: PUSH1 0x40 00000eef: MLOAD 00000ef0: DUP1 00000ef1: DUP4 00000ef2: SUB 00000ef3: DUP2 00000ef4: PUSH1 0x00 00000ef6: DUP8 00000ef7: DUP1 00000ef8: EXTCODESIZE 00000ef9: ISZERO 00000efa: DUP1 00000efb: ISZERO 00000efc: PUSH2 0x0f04 00000eff: JUMPI 00000f00: PUSH1 0x00 00000f02: DUP1 00000f03: REVERT 00000f04: JUMPDEST 00000f05: POP 00000f06: GAS 00000f07: CALL 00000f08: ISZERO 00000f09: DUP1 00000f0a: ISZERO 00000f0b: PUSH2 0x0f18 00000f0e: JUMPI 00000f0f: RETURNDATASIZE 00000f10: PUSH1 0x00 00000f12: DUP1 00000f13: RETURNDATACOPY 00000f14: RETURNDATASIZE 00000f15: PUSH1 0x00 00000f17: REVERT 00000f18: JUMPDEST 00000f19: POP 00000f1a: POP 00000f1b: PUSH1 0x02 00000f1d: SLOAD 00000f1e: PUSH1 0x40 00000f20: MLOAD 00000f21: PUSH4 0x63b20c33 00000f26: PUSH1 0xe1 00000f28: SHL 00000f29: DUP2 00000f2a: MSTORE 00000f2b: PUSH1 0x04 00000f2d: DUP2 00000f2e: ADD 00000f2f: SWAP2 00000f30: SWAP1 00000f31: SWAP2 00000f32: MSTORE 00000f33: PUSH3 0xffffff 00000f37: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 00000f58: AND 00000f59: PUSH1 0x24 00000f5b: DUP3 00000f5c: ADD 00000f5d: MSTORE 00000f5e: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00000f7f: PUSH1 0x01 00000f81: PUSH1 0x01 00000f83: PUSH1 0xa0 00000f85: SHL 00000f86: SUB 00000f87: AND 00000f88: SWAP3 00000f89: POP 00000f8a: PUSH4 0xc7641866 00000f8f: SWAP2 00000f90: POP 00000f91: PUSH1 0x44 00000f93: ADD 00000f94: PUSH1 0x00 00000f96: PUSH1 0x40 00000f98: MLOAD 00000f99: DUP1 00000f9a: DUP4 00000f9b: SUB 00000f9c: DUP2 00000f9d: PUSH1 0x00 00000f9f: DUP8 00000fa0: DUP1 00000fa1: EXTCODESIZE 00000fa2: ISZERO 00000fa3: DUP1 00000fa4: ISZERO 00000fa5: PUSH2 0x0fad 00000fa8: JUMPI 00000fa9: PUSH1 0x00 00000fab: DUP1 00000fac: REVERT 00000fad: JUMPDEST 00000fae: POP 00000faf: GAS 00000fb0: CALL 00000fb1: ISZERO 00000fb2: DUP1 00000fb3: ISZERO 00000fb4: PUSH2 0x0fc1 00000fb7: JUMPI 00000fb8: RETURNDATASIZE 00000fb9: PUSH1 0x00 00000fbb: DUP1 00000fbc: RETURNDATACOPY 00000fbd: RETURNDATASIZE 00000fbe: PUSH1 0x00 00000fc0: REVERT 00000fc1: JUMPDEST 00000fc2: POP 00000fc3: POP 00000fc4: POP 00000fc5: POP 00000fc6: PUSH2 0x0fd0 00000fc9: PUSH1 0x02 00000fcb: SLOAD 00000fcc: PUSH2 0x223f 00000fcf: JUMP 00000fd0: JUMPDEST 00000fd1: PUSH2 0x109b 00000fd4: JUMP 00000fd5: JUMPDEST 00000fd6: PUSH1 0x40 00000fd8: MLOAD 00000fd9: PUSH4 0xa47d75ad 00000fde: PUSH1 0xe0 00000fe0: SHL 00000fe1: DUP2 00000fe2: MSTORE 00000fe3: PUSH1 0x04 00000fe5: DUP2 00000fe6: ADD 00000fe7: DUP5 00000fe8: SWAP1 00000fe9: MSTORE 00000fea: PUSH3 0xffffff 00000fee: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 0000100f: AND 00001010: PUSH1 0x24 00001012: DUP3 00001013: ADD 00001014: MSTORE 00001015: PUSH1 0x00 00001017: SWAP1 00001018: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00001039: PUSH1 0x01 0000103b: PUSH1 0x01 0000103d: PUSH1 0xa0 0000103f: SHL 00001040: SUB 00001041: AND 00001042: SWAP1 00001043: PUSH4 0xa47d75ad 00001048: SWAP1 00001049: PUSH1 0x44 0000104b: ADD 0000104c: PUSH1 0x20 0000104e: PUSH1 0x40 00001050: MLOAD 00001051: DUP1 00001052: DUP4 00001053: SUB 00001054: DUP2 00001055: PUSH1 0x00 00001057: DUP8 00001058: GAS 00001059: CALL 0000105a: ISZERO 0000105b: DUP1 0000105c: ISZERO 0000105d: PUSH2 0x106a 00001060: JUMPI 00001061: RETURNDATASIZE 00001062: PUSH1 0x00 00001064: DUP1 00001065: RETURNDATACOPY 00001066: RETURNDATASIZE 00001067: PUSH1 0x00 00001069: REVERT 0000106a: JUMPDEST 0000106b: POP 0000106c: POP 0000106d: POP 0000106e: POP 0000106f: PUSH1 0x40 00001071: MLOAD 00001072: RETURNDATASIZE 00001073: PUSH1 0x1f 00001075: NOT 00001076: PUSH1 0x1f 00001078: DUP3 00001079: ADD 0000107a: AND 0000107b: DUP3 0000107c: ADD 0000107d: DUP1 0000107e: PUSH1 0x40 00001080: MSTORE 00001081: POP 00001082: DUP2 00001083: ADD 00001084: SWAP1 00001085: PUSH2 0x108e 00001088: SWAP2 00001089: SWAP1 0000108a: PUSH2 0x2cfd 0000108d: JUMP 0000108e: JUMPDEST 0000108f: SWAP1 00001090: POP 00001091: PUSH2 0x1099 00001094: DUP2 00001095: PUSH2 0x223f 00001098: JUMP 00001099: JUMPDEST 0000109a: POP 0000109b: JUMPDEST 0000109c: POP 0000109d: PUSH2 0x113a 000010a0: JUMP 000010a1: JUMPDEST 000010a2: PUSH1 0x00 000010a4: SLOAD 000010a5: PUSH1 0x40 000010a7: MLOAD 000010a8: PUSH4 0x23b872dd 000010ad: PUSH1 0xe0 000010af: SHL 000010b0: DUP2 000010b1: MSTORE 000010b2: PUSH1 0x01 000010b4: PUSH1 0x01 000010b6: PUSH1 0xa0 000010b8: SHL 000010b9: SUB 000010ba: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 000010db: DUP2 000010dc: AND 000010dd: SWAP3 000010de: PUSH4 0x23b872dd 000010e3: SWAP3 000010e4: PUSH2 0x10f5 000010e7: SWAP3 000010e8: DUP10 000010e9: SWAP3 000010ea: AND 000010eb: SWAP1 000010ec: DUP8 000010ed: SWAP1 000010ee: PUSH1 0x04 000010f0: ADD 000010f1: PUSH2 0x2d3f 000010f4: JUMP 000010f5: JUMPDEST 000010f6: PUSH1 0x20 000010f8: PUSH1 0x40 000010fa: MLOAD 000010fb: DUP1 000010fc: DUP4 000010fd: SUB 000010fe: DUP2 000010ff: PUSH1 0x00 00001101: DUP8 00001102: GAS 00001103: CALL 00001104: ISZERO 00001105: DUP1 00001106: ISZERO 00001107: PUSH2 0x1114 0000110a: JUMPI 0000110b: RETURNDATASIZE 0000110c: PUSH1 0x00 0000110e: DUP1 0000110f: RETURNDATACOPY 00001110: RETURNDATASIZE 00001111: PUSH1 0x00 00001113: REVERT 00001114: JUMPDEST 00001115: POP 00001116: POP 00001117: POP 00001118: POP 00001119: PUSH1 0x40 0000111b: MLOAD 0000111c: RETURNDATASIZE 0000111d: PUSH1 0x1f 0000111f: NOT 00001120: PUSH1 0x1f 00001122: DUP3 00001123: ADD 00001124: AND 00001125: DUP3 00001126: ADD 00001127: DUP1 00001128: PUSH1 0x40 0000112a: MSTORE 0000112b: POP 0000112c: DUP2 0000112d: ADD 0000112e: SWAP1 0000112f: PUSH2 0x1138 00001132: SWAP2 00001133: SWAP1 00001134: PUSH2 0x2d63 00001137: JUMP 00001138: JUMPDEST 00001139: POP 0000113a: JUMPDEST 0000113b: PUSH1 0x00 0000113d: DUP1 0000113e: MLOAD 0000113f: PUSH1 0x20 00001141: PUSH2 0x2dfd 00001144: DUP4 00001145: CODECOPY 00001146: DUP2 00001147: MLOAD 00001148: SWAP2 00001149: MSTORE 0000114a: PUSH2 0x1151 0000114d: PUSH2 0x21d8 00001150: JUMP 00001151: JUMPDEST 00001152: PUSH1 0x01 00001154: SLOAD 00001155: PUSH1 0x02 00001157: SLOAD 00001158: PUSH1 0x40 0000115a: DUP1 0000115b: MLOAD 0000115c: SWAP4 0000115d: DUP5 0000115e: MSTORE 0000115f: PUSH1 0x20 00001161: DUP5 00001162: ADD 00001163: SWAP3 00001164: SWAP1 00001165: SWAP3 00001166: MSTORE 00001167: SWAP1 00001168: DUP3 00001169: ADD 0000116a: MSTORE 0000116b: PUSH1 0x60 0000116d: ADD 0000116e: JUMPDEST 0000116f: PUSH1 0x40 00001171: MLOAD 00001172: DUP1 00001173: SWAP2 00001174: SUB 00001175: SWAP1 00001176: LOG1 00001177: POP 00001178: POP 00001179: POP 0000117a: POP 0000117b: JUMP 0000117c: JUMPDEST 0000117d: PUSH1 0x00 0000117f: PUSH1 0x01 00001181: PUSH1 0x01 00001183: PUSH1 0xa0 00001185: SHL 00001186: SUB 00001187: PUSH32 0x00000000000000000000000049c431454c40ecbf848096f2753b2abc3a699a10 000011a8: AND 000011a9: ADDRESS 000011aa: SUB 000011ab: PUSH2 0x11e0 000011ae: JUMPI 000011af: PUSH1 0x03 000011b1: SLOAD 000011b2: PUSH2 0x11db 000011b5: SWAP1 000011b6: PUSH32 0x000000000000000000000000000000000000000000084595161401484a000000 000011d7: PUSH2 0x2cea 000011da: JUMP 000011db: JUMPDEST 000011dc: SWAP1 000011dd: POP 000011de: SWAP1 000011df: JUMP 000011e0: JUMPDEST 000011e1: PUSH32 0x00000000000000000000000049c431454c40ecbf848096f2753b2abc3a699a10 00001202: PUSH1 0x01 00001204: PUSH1 0x01 00001206: PUSH1 0xa0 00001208: SHL 00001209: SUB 0000120a: AND 0000120b: PUSH4 0xa8a3e31d 00001210: PUSH1 0x40 00001212: MLOAD 00001213: DUP2 00001214: PUSH4 0xffffffff 00001219: AND 0000121a: PUSH1 0xe0 0000121c: SHL 0000121d: DUP2 0000121e: MSTORE 0000121f: PUSH1 0x04 00001221: ADD 00001222: PUSH1 0x20 00001224: PUSH1 0x40 00001226: MLOAD 00001227: DUP1 00001228: DUP4 00001229: SUB 0000122a: DUP2 0000122b: DUP7 0000122c: GAS 0000122d: STATICCALL 0000122e: ISZERO 0000122f: DUP1 00001230: ISZERO 00001231: PUSH2 0x123e 00001234: JUMPI 00001235: RETURNDATASIZE 00001236: PUSH1 0x00 00001238: DUP1 00001239: RETURNDATACOPY 0000123a: RETURNDATASIZE 0000123b: PUSH1 0x00 0000123d: REVERT 0000123e: JUMPDEST 0000123f: POP 00001240: POP 00001241: POP 00001242: POP 00001243: PUSH1 0x40 00001245: MLOAD 00001246: RETURNDATASIZE 00001247: PUSH1 0x1f 00001249: NOT 0000124a: PUSH1 0x1f 0000124c: DUP3 0000124d: ADD 0000124e: AND 0000124f: DUP3 00001250: ADD 00001251: DUP1 00001252: PUSH1 0x40 00001254: MSTORE 00001255: POP 00001256: DUP2 00001257: ADD 00001258: SWAP1 00001259: PUSH2 0x11db 0000125c: SWAP2 0000125d: SWAP1 0000125e: PUSH2 0x2cfd 00001261: JUMP 00001262: JUMPDEST 00001263: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 00001284: PUSH1 0x01 00001286: PUSH1 0x01 00001288: PUSH1 0xa0 0000128a: SHL 0000128b: SUB 0000128c: AND 0000128d: PUSH4 0x2f09177d 00001292: PUSH1 0x40 00001294: MLOAD 00001295: DUP2 00001296: PUSH4 0xffffffff 0000129b: AND 0000129c: PUSH1 0xe0 0000129e: SHL 0000129f: DUP2 000012a0: MSTORE 000012a1: PUSH1 0x04 000012a3: ADD 000012a4: PUSH1 0x20 000012a6: PUSH1 0x40 000012a8: MLOAD 000012a9: DUP1 000012aa: DUP4 000012ab: SUB 000012ac: DUP2 000012ad: DUP7 000012ae: GAS 000012af: STATICCALL 000012b0: ISZERO 000012b1: DUP1 000012b2: ISZERO 000012b3: PUSH2 0x12c0 000012b6: JUMPI 000012b7: RETURNDATASIZE 000012b8: PUSH1 0x00 000012ba: DUP1 000012bb: RETURNDATACOPY 000012bc: RETURNDATASIZE 000012bd: PUSH1 0x00 000012bf: REVERT 000012c0: JUMPDEST 000012c1: POP 000012c2: POP 000012c3: POP 000012c4: POP 000012c5: PUSH1 0x40 000012c7: MLOAD 000012c8: RETURNDATASIZE 000012c9: PUSH1 0x1f 000012cb: NOT 000012cc: PUSH1 0x1f 000012ce: DUP3 000012cf: ADD 000012d0: AND 000012d1: DUP3 000012d2: ADD 000012d3: DUP1 000012d4: PUSH1 0x40 000012d6: MSTORE 000012d7: POP 000012d8: DUP2 000012d9: ADD 000012da: SWAP1 000012db: PUSH2 0x12e4 000012de: SWAP2 000012df: SWAP1 000012e0: PUSH2 0x2c42 000012e3: JUMP 000012e4: JUMPDEST 000012e5: PUSH1 0x01 000012e7: PUSH1 0x01 000012e9: PUSH1 0xa0 000012eb: SHL 000012ec: SUB 000012ed: AND 000012ee: CALLER 000012ef: PUSH1 0x01 000012f1: PUSH1 0x01 000012f3: PUSH1 0xa0 000012f5: SHL 000012f6: SUB 000012f7: AND 000012f8: EQ 000012f9: PUSH2 0x1305 000012fc: JUMPI 000012fd: PUSH2 0x1305 00001300: CALLER 00001301: PUSH2 0x242f 00001304: JUMP 00001305: JUMPDEST 00001306: PUSH1 0x00 00001308: PUSH2 0x1311 0000130b: DUP4 0000130c: DUP4 0000130d: PUSH2 0x2475 00001310: JUMP 00001311: JUMPDEST 00001312: PUSH1 0x01 00001314: SLOAD 00001315: PUSH1 0x02 00001317: SLOAD 00001318: PUSH1 0x40 0000131a: DUP1 0000131b: MLOAD 0000131c: DUP5 0000131d: DUP2 0000131e: MSTORE 0000131f: PUSH1 0x20 00001321: DUP2 00001322: ADD 00001323: SWAP4 00001324: SWAP1 00001325: SWAP4 00001326: MSTORE 00001327: DUP3 00001328: ADD 00001329: MSTORE 0000132a: SWAP1 0000132b: SWAP2 0000132c: POP 0000132d: PUSH1 0x00 0000132f: DUP1 00001330: MLOAD 00001331: PUSH1 0x20 00001333: PUSH2 0x2dfd 00001336: DUP4 00001337: CODECOPY 00001338: DUP2 00001339: MLOAD 0000133a: SWAP2 0000133b: MSTORE 0000133c: SWAP1 0000133d: PUSH1 0x60 0000133f: ADD 00001340: JUMPDEST 00001341: PUSH1 0x40 00001343: MLOAD 00001344: DUP1 00001345: SWAP2 00001346: SUB 00001347: SWAP1 00001348: LOG1 00001349: POP 0000134a: POP 0000134b: POP 0000134c: JUMP 0000134d: JUMPDEST 0000134e: PUSH1 0x40 00001350: MLOAD 00001351: PUSH4 0x23b872dd 00001356: PUSH1 0xe0 00001358: SHL 00001359: DUP2 0000135a: MSTORE 0000135b: PUSH1 0x00 0000135d: SWAP1 0000135e: PUSH1 0x01 00001360: PUSH1 0x01 00001362: PUSH1 0xa0 00001364: SHL 00001365: SUB 00001366: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00001387: AND 00001388: SWAP1 00001389: PUSH4 0x23b872dd 0000138e: SWAP1 0000138f: PUSH2 0x13a0 00001392: SWAP1 00001393: CALLER 00001394: SWAP1 00001395: ADDRESS 00001396: SWAP1 00001397: DUP8 00001398: SWAP1 00001399: PUSH1 0x04 0000139b: ADD 0000139c: PUSH2 0x2d3f 0000139f: JUMP 000013a0: JUMPDEST 000013a1: PUSH1 0x20 000013a3: PUSH1 0x40 000013a5: MLOAD 000013a6: DUP1 000013a7: DUP4 000013a8: SUB 000013a9: DUP2 000013aa: PUSH1 0x00 000013ac: DUP8 000013ad: GAS 000013ae: CALL 000013af: ISZERO 000013b0: DUP1 000013b1: ISZERO 000013b2: PUSH2 0x13bf 000013b5: JUMPI 000013b6: RETURNDATASIZE 000013b7: PUSH1 0x00 000013b9: DUP1 000013ba: RETURNDATACOPY 000013bb: RETURNDATASIZE 000013bc: PUSH1 0x00 000013be: REVERT 000013bf: JUMPDEST 000013c0: POP 000013c1: POP 000013c2: POP 000013c3: POP 000013c4: PUSH1 0x40 000013c6: MLOAD 000013c7: RETURNDATASIZE 000013c8: PUSH1 0x1f 000013ca: NOT 000013cb: PUSH1 0x1f 000013cd: DUP3 000013ce: ADD 000013cf: AND 000013d0: DUP3 000013d1: ADD 000013d2: DUP1 000013d3: PUSH1 0x40 000013d5: MSTORE 000013d6: POP 000013d7: DUP2 000013d8: ADD 000013d9: SWAP1 000013da: PUSH2 0x13e3 000013dd: SWAP2 000013de: SWAP1 000013df: PUSH2 0x2d63 000013e2: JUMP 000013e3: JUMPDEST 000013e4: POP 000013e5: PUSH1 0x40 000013e7: MLOAD 000013e8: PUSH4 0xa47d75ad 000013ed: PUSH1 0xe0 000013ef: SHL 000013f0: DUP2 000013f1: MSTORE 000013f2: PUSH1 0x04 000013f4: DUP2 000013f5: ADD 000013f6: DUP4 000013f7: SWAP1 000013f8: MSTORE 000013f9: PUSH3 0xffffff 000013fd: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 0000141e: AND 0000141f: PUSH1 0x24 00001421: DUP3 00001422: ADD 00001423: MSTORE 00001424: PUSH1 0x00 00001426: SWAP1 00001427: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00001448: PUSH1 0x01 0000144a: PUSH1 0x01 0000144c: PUSH1 0xa0 0000144e: SHL 0000144f: SUB 00001450: AND 00001451: SWAP1 00001452: PUSH4 0xa47d75ad 00001457: SWAP1 00001458: PUSH1 0x44 0000145a: ADD 0000145b: PUSH1 0x20 0000145d: PUSH1 0x40 0000145f: MLOAD 00001460: DUP1 00001461: DUP4 00001462: SUB 00001463: DUP2 00001464: PUSH1 0x00 00001466: DUP8 00001467: GAS 00001468: CALL 00001469: ISZERO 0000146a: DUP1 0000146b: ISZERO 0000146c: PUSH2 0x1479 0000146f: JUMPI 00001470: RETURNDATASIZE 00001471: PUSH1 0x00 00001473: DUP1 00001474: RETURNDATACOPY 00001475: RETURNDATASIZE 00001476: PUSH1 0x00 00001478: REVERT 00001479: JUMPDEST 0000147a: POP 0000147b: POP 0000147c: POP 0000147d: POP 0000147e: PUSH1 0x40 00001480: MLOAD 00001481: RETURNDATASIZE 00001482: PUSH1 0x1f 00001484: NOT 00001485: PUSH1 0x1f 00001487: DUP3 00001488: ADD 00001489: AND 0000148a: DUP3 0000148b: ADD 0000148c: DUP1 0000148d: PUSH1 0x40 0000148f: MSTORE 00001490: POP 00001491: DUP2 00001492: ADD 00001493: SWAP1 00001494: PUSH2 0x149d 00001497: SWAP2 00001498: SWAP1 00001499: PUSH2 0x2cfd 0000149c: JUMP 0000149d: JUMPDEST 0000149e: SWAP1 0000149f: POP 000014a0: PUSH2 0x14a8 000014a3: DUP2 000014a4: PUSH2 0x223f 000014a7: JUMP 000014a8: JUMPDEST 000014a9: PUSH1 0x00 000014ab: DUP1 000014ac: MLOAD 000014ad: PUSH1 0x20 000014af: PUSH2 0x2dfd 000014b2: DUP4 000014b3: CODECOPY 000014b4: DUP2 000014b5: MLOAD 000014b6: SWAP2 000014b7: MSTORE 000014b8: PUSH2 0x14bf 000014bb: PUSH2 0x21d8 000014be: JUMP 000014bf: JUMPDEST 000014c0: PUSH1 0x01 000014c2: SLOAD 000014c3: PUSH1 0x02 000014c5: SLOAD 000014c6: PUSH1 0x40 000014c8: DUP1 000014c9: MLOAD 000014ca: SWAP4 000014cb: DUP5 000014cc: MSTORE 000014cd: PUSH1 0x20 000014cf: DUP5 000014d0: ADD 000014d1: SWAP3 000014d2: SWAP1 000014d3: SWAP3 000014d4: MSTORE 000014d5: SWAP1 000014d6: DUP3 000014d7: ADD 000014d8: MSTORE 000014d9: PUSH1 0x60 000014db: ADD 000014dc: PUSH1 0x40 000014de: MLOAD 000014df: DUP1 000014e0: SWAP2 000014e1: SUB 000014e2: SWAP1 000014e3: LOG1 000014e4: SWAP3 000014e5: SWAP2 000014e6: POP 000014e7: POP 000014e8: JUMP 000014e9: JUMPDEST 000014ea: PUSH1 0x05 000014ec: SLOAD 000014ed: PUSH1 0x00 000014ef: SWAP1 000014f0: PUSH2 0x11db 000014f3: SWAP1 000014f4: PUSH1 0x01 000014f6: PUSH1 0x28 000014f8: SHL 000014f9: SWAP1 000014fa: DIV 000014fb: PUSH5 0xffffffffff 00001501: AND 00001502: PUSH2 0x1de8 00001505: JUMP 00001506: JUMPDEST 00001507: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 00001528: PUSH1 0x01 0000152a: PUSH1 0x01 0000152c: PUSH1 0xa0 0000152e: SHL 0000152f: SUB 00001530: AND 00001531: PUSH4 0x2f09177d 00001536: PUSH1 0x40 00001538: MLOAD 00001539: DUP2 0000153a: PUSH4 0xffffffff 0000153f: AND 00001540: PUSH1 0xe0 00001542: SHL 00001543: DUP2 00001544: MSTORE 00001545: PUSH1 0x04 00001547: ADD 00001548: PUSH1 0x20 0000154a: PUSH1 0x40 0000154c: MLOAD 0000154d: DUP1 0000154e: DUP4 0000154f: SUB 00001550: DUP2 00001551: DUP7 00001552: GAS 00001553: STATICCALL 00001554: ISZERO 00001555: DUP1 00001556: ISZERO 00001557: PUSH2 0x1564 0000155a: JUMPI 0000155b: RETURNDATASIZE 0000155c: PUSH1 0x00 0000155e: DUP1 0000155f: RETURNDATACOPY 00001560: RETURNDATASIZE 00001561: PUSH1 0x00 00001563: REVERT 00001564: JUMPDEST 00001565: POP 00001566: POP 00001567: POP 00001568: POP 00001569: PUSH1 0x40 0000156b: MLOAD 0000156c: RETURNDATASIZE 0000156d: PUSH1 0x1f 0000156f: NOT 00001570: PUSH1 0x1f 00001572: DUP3 00001573: ADD 00001574: AND 00001575: DUP3 00001576: ADD 00001577: DUP1 00001578: PUSH1 0x40 0000157a: MSTORE 0000157b: POP 0000157c: DUP2 0000157d: ADD 0000157e: SWAP1 0000157f: PUSH2 0x1588 00001582: SWAP2 00001583: SWAP1 00001584: PUSH2 0x2c42 00001587: JUMP 00001588: JUMPDEST 00001589: PUSH1 0x01 0000158b: PUSH1 0x01 0000158d: PUSH1 0xa0 0000158f: SHL 00001590: SUB 00001591: AND 00001592: CALLER 00001593: PUSH1 0x01 00001595: PUSH1 0x01 00001597: PUSH1 0xa0 00001599: SHL 0000159a: SUB 0000159b: AND 0000159c: EQ 0000159d: PUSH2 0x15a9 000015a0: JUMPI 000015a1: PUSH2 0x15a9 000015a4: CALLER 000015a5: PUSH2 0x242f 000015a8: JUMP 000015a9: JUMPDEST 000015aa: PUSH1 0x00 000015ac: PUSH2 0x15b3 000015af: PUSH2 0x21d8 000015b2: JUMP 000015b3: JUMPDEST 000015b4: SWAP1 000015b5: POP 000015b6: PUSH2 0x15c0 000015b9: DUP4 000015ba: DUP4 000015bb: DUP4 000015bc: PUSH2 0x24dc 000015bf: JUMP 000015c0: JUMPDEST 000015c1: PUSH1 0x01 000015c3: SLOAD 000015c4: PUSH1 0x02 000015c6: SLOAD 000015c7: PUSH1 0x40 000015c9: DUP1 000015ca: MLOAD 000015cb: DUP5 000015cc: DUP2 000015cd: MSTORE 000015ce: PUSH1 0x20 000015d0: DUP2 000015d1: ADD 000015d2: SWAP4 000015d3: SWAP1 000015d4: SWAP4 000015d5: MSTORE 000015d6: DUP3 000015d7: ADD 000015d8: MSTORE 000015d9: PUSH1 0x00 000015db: DUP1 000015dc: MLOAD 000015dd: PUSH1 0x20 000015df: PUSH2 0x2dfd 000015e2: DUP4 000015e3: CODECOPY 000015e4: DUP2 000015e5: MLOAD 000015e6: SWAP2 000015e7: MSTORE 000015e8: SWAP1 000015e9: PUSH1 0x60 000015eb: ADD 000015ec: PUSH2 0x1340 000015ef: JUMP 000015f0: JUMPDEST 000015f1: CALLER 000015f2: PUSH1 0x01 000015f4: PUSH1 0x01 000015f6: PUSH1 0xa0 000015f8: SHL 000015f9: SUB 000015fa: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 0000161b: AND 0000161c: EQ 0000161d: PUSH2 0x1639 00001620: JUMPI 00001621: PUSH1 0x40 00001623: MLOAD 00001624: PUSH4 0x13bd2e83 00001629: PUSH1 0xe3 0000162b: SHL 0000162c: DUP2 0000162d: MSTORE 0000162e: PUSH1 0x04 00001630: ADD 00001631: PUSH1 0x40 00001633: MLOAD 00001634: DUP1 00001635: SWAP2 00001636: SUB 00001637: SWAP1 00001638: REVERT 00001639: JUMPDEST 0000163a: PUSH1 0x05 0000163c: SLOAD 0000163d: PUSH1 0x01 0000163f: PUSH1 0x28 00001641: SHL 00001642: SWAP1 00001643: DIV 00001644: PUSH5 0xffffffffff 0000164a: AND 0000164b: TIMESTAMP 0000164c: LT 0000164d: PUSH2 0x1686 00001650: JUMPI 00001651: PUSH1 0x05 00001653: SLOAD 00001654: PUSH1 0x40 00001656: MLOAD 00001657: PUSH3 0x38ddd7 0000165b: PUSH1 0xe4 0000165d: SHL 0000165e: DUP2 0000165f: MSTORE 00001660: PUSH5 0xffffffffff 00001666: TIMESTAMP 00001667: DUP2 00001668: AND 00001669: PUSH1 0x04 0000166b: DUP4 0000166c: ADD 0000166d: MSTORE 0000166e: PUSH1 0x01 00001670: PUSH1 0x28 00001672: SHL 00001673: SWAP1 00001674: SWAP3 00001675: DIV 00001676: SWAP2 00001677: SWAP1 00001678: SWAP2 00001679: AND 0000167a: PUSH1 0x24 0000167c: DUP3 0000167d: ADD 0000167e: MSTORE 0000167f: PUSH1 0x44 00001681: ADD 00001682: PUSH2 0x07c6 00001685: JUMP 00001686: JUMPDEST 00001687: PUSH32 0x0000000000000000000000000000000000000000000000001bc16d674ec80000 000016a8: DUP2 000016a9: LT 000016aa: DUP1 000016ab: ISZERO 000016ac: PUSH2 0x16bb 000016af: JUMPI 000016b0: POP 000016b1: PUSH2 0x16b8 000016b4: PUSH2 0x21d8 000016b7: JUMP 000016b8: JUMPDEST 000016b9: DUP2 000016ba: LT 000016bb: JUMPDEST 000016bc: ISZERO 000016bd: PUSH2 0x16d9 000016c0: JUMPI 000016c1: PUSH1 0x40 000016c3: MLOAD 000016c4: PUSH4 0x3c80636b 000016c9: PUSH1 0xe2 000016cb: SHL 000016cc: DUP2 000016cd: MSTORE 000016ce: PUSH1 0x04 000016d0: ADD 000016d1: PUSH1 0x40 000016d3: MLOAD 000016d4: DUP1 000016d5: SWAP2 000016d6: SUB 000016d7: SWAP1 000016d8: REVERT 000016d9: JUMPDEST 000016da: DUP1 000016db: PUSH1 0x00 000016dd: SUB 000016de: PUSH2 0x16fa 000016e1: JUMPI 000016e2: PUSH1 0x40 000016e4: MLOAD 000016e5: PUSH4 0x3c80636b 000016ea: PUSH1 0xe2 000016ec: SHL 000016ed: DUP2 000016ee: MSTORE 000016ef: PUSH1 0x04 000016f1: ADD 000016f2: PUSH1 0x40 000016f4: MLOAD 000016f5: DUP1 000016f6: SWAP2 000016f7: SUB 000016f8: SWAP1 000016f9: REVERT 000016fa: JUMPDEST 000016fb: DUP1 000016fc: PUSH1 0x04 000016fe: PUSH1 0x00 00001700: DUP3 00001701: DUP3 00001702: SLOAD 00001703: PUSH2 0x170c 00001706: SWAP2 00001707: SWAP1 00001708: PUSH2 0x2d16 0000170b: JUMP 0000170c: JUMPDEST 0000170d: SWAP1 0000170e: SWAP2 0000170f: SSTORE 00001710: POP 00001711: POP 00001712: POP 00001713: JUMP 00001714: JUMPDEST 00001715: CALLER 00001716: PUSH1 0x01 00001718: PUSH1 0x01 0000171a: PUSH1 0xa0 0000171c: SHL 0000171d: SUB 0000171e: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 0000173f: AND 00001740: EQ 00001741: PUSH2 0x175d 00001744: JUMPI 00001745: PUSH1 0x40 00001747: MLOAD 00001748: PUSH4 0x13bd2e83 0000174d: PUSH1 0xe3 0000174f: SHL 00001750: DUP2 00001751: MSTORE 00001752: PUSH1 0x04 00001754: ADD 00001755: PUSH1 0x40 00001757: MLOAD 00001758: DUP1 00001759: SWAP2 0000175a: SUB 0000175b: SWAP1 0000175c: REVERT 0000175d: JUMPDEST 0000175e: DUP1 0000175f: PUSH1 0x04 00001761: PUSH1 0x00 00001763: DUP3 00001764: DUP3 00001765: SLOAD 00001766: PUSH2 0x176f 00001769: SWAP2 0000176a: SWAP1 0000176b: PUSH2 0x2cea 0000176e: JUMP 0000176f: JUMPDEST 00001770: SWAP1 00001771: SWAP2 00001772: SSTORE 00001773: POP 00001774: PUSH2 0x1781 00001777: SWAP1 00001778: POP 00001779: PUSH3 0x015180 0000177d: PUSH2 0x22fe 00001780: JUMP 00001781: JUMPDEST 00001782: POP 00001783: JUMP 00001784: JUMPDEST 00001785: PUSH1 0x40 00001787: MLOAD 00001788: PUSH4 0xaa5dd7f1 0000178d: PUSH1 0xe0 0000178f: SHL 00001790: DUP2 00001791: MSTORE 00001792: CALLER 00001793: PUSH1 0x04 00001795: DUP3 00001796: ADD 00001797: MSTORE 00001798: PUSH1 0x01 0000179a: PUSH1 0x01 0000179c: PUSH1 0xa0 0000179e: SHL 0000179f: SUB 000017a0: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 000017c1: DUP2 000017c2: AND 000017c3: SWAP2 000017c4: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 000017e5: SWAP1 000017e6: SWAP2 000017e7: AND 000017e8: SWAP1 000017e9: PUSH4 0xaa5dd7f1 000017ee: SWAP1 000017ef: PUSH1 0x24 000017f1: ADD 000017f2: PUSH1 0x20 000017f4: PUSH1 0x40 000017f6: MLOAD 000017f7: DUP1 000017f8: DUP4 000017f9: SUB 000017fa: DUP2 000017fb: DUP7 000017fc: GAS 000017fd: STATICCALL 000017fe: ISZERO 000017ff: DUP1 00001800: ISZERO 00001801: PUSH2 0x180e 00001804: JUMPI 00001805: RETURNDATASIZE 00001806: PUSH1 0x00 00001808: DUP1 00001809: RETURNDATACOPY 0000180a: RETURNDATASIZE 0000180b: PUSH1 0x00 0000180d: REVERT 0000180e: JUMPDEST 0000180f: POP 00001810: POP 00001811: POP 00001812: POP 00001813: PUSH1 0x40 00001815: MLOAD 00001816: RETURNDATASIZE 00001817: PUSH1 0x1f 00001819: NOT 0000181a: PUSH1 0x1f 0000181c: DUP3 0000181d: ADD 0000181e: AND 0000181f: DUP3 00001820: ADD 00001821: DUP1 00001822: PUSH1 0x40 00001824: MSTORE 00001825: POP 00001826: DUP2 00001827: ADD 00001828: SWAP1 00001829: PUSH2 0x1832 0000182c: SWAP2 0000182d: SWAP1 0000182e: PUSH2 0x2c42 00001831: JUMP 00001832: JUMPDEST 00001833: PUSH1 0x01 00001835: PUSH1 0x01 00001837: PUSH1 0xa0 00001839: SHL 0000183a: SUB 0000183b: AND 0000183c: EQ 0000183d: PUSH2 0x1859 00001840: JUMPI 00001841: PUSH1 0x40 00001843: MLOAD 00001844: PUSH4 0x13bd2e83 00001849: PUSH1 0xe3 0000184b: SHL 0000184c: DUP2 0000184d: MSTORE 0000184e: PUSH1 0x04 00001850: ADD 00001851: PUSH1 0x40 00001853: MLOAD 00001854: DUP1 00001855: SWAP2 00001856: SUB 00001857: SWAP1 00001858: REVERT 00001859: JUMPDEST 0000185a: DUP1 0000185b: PUSH1 0x03 0000185d: PUSH1 0x00 0000185f: DUP3 00001860: DUP3 00001861: SLOAD 00001862: PUSH2 0x170c 00001865: SWAP2 00001866: SWAP1 00001867: PUSH2 0x2cea 0000186a: JUMP 0000186b: JUMPDEST 0000186c: CALLER 0000186d: PUSH1 0x01 0000186f: PUSH1 0x01 00001871: PUSH1 0xa0 00001873: SHL 00001874: SUB 00001875: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 00001896: AND 00001897: EQ 00001898: PUSH2 0x18b4 0000189b: JUMPI 0000189c: PUSH1 0x40 0000189e: MLOAD 0000189f: PUSH4 0x13bd2e83 000018a4: PUSH1 0xe3 000018a6: SHL 000018a7: DUP2 000018a8: MSTORE 000018a9: PUSH1 0x04 000018ab: ADD 000018ac: PUSH1 0x40 000018ae: MLOAD 000018af: DUP1 000018b0: SWAP2 000018b1: SUB 000018b2: SWAP1 000018b3: REVERT 000018b4: JUMPDEST 000018b5: PUSH1 0x05 000018b7: SLOAD 000018b8: PUSH1 0x01 000018ba: PUSH1 0x28 000018bc: SHL 000018bd: SWAP1 000018be: DIV 000018bf: PUSH5 0xffffffffff 000018c5: AND 000018c6: ISZERO 000018c7: PUSH2 0x18e2 000018ca: JUMPI 000018cb: PUSH1 0x40 000018cd: MLOAD 000018ce: PUSH3 0xdc149f 000018d2: PUSH1 0xe4 000018d4: SHL 000018d5: DUP2 000018d6: MSTORE 000018d7: PUSH1 0x04 000018d9: ADD 000018da: PUSH1 0x40 000018dc: MLOAD 000018dd: DUP1 000018de: SWAP2 000018df: SUB 000018e0: SWAP1 000018e1: REVERT 000018e2: JUMPDEST 000018e3: TIMESTAMP 000018e4: DUP2 000018e5: PUSH5 0xffffffffff 000018eb: AND 000018ec: LT 000018ed: DUP1 000018ee: PUSH2 0x1985 000018f1: JUMPI 000018f2: POP 000018f3: PUSH32 0x00000000000000000000000049c431454c40ecbf848096f2753b2abc3a699a10 00001914: PUSH1 0x01 00001916: PUSH1 0x01 00001918: PUSH1 0xa0 0000191a: SHL 0000191b: SUB 0000191c: AND 0000191d: PUSH4 0x4665096d 00001922: PUSH1 0x40 00001924: MLOAD 00001925: DUP2 00001926: PUSH4 0xffffffff 0000192b: AND 0000192c: PUSH1 0xe0 0000192e: SHL 0000192f: DUP2 00001930: MSTORE 00001931: PUSH1 0x04 00001933: ADD 00001934: PUSH1 0x20 00001936: PUSH1 0x40 00001938: MLOAD 00001939: DUP1 0000193a: DUP4 0000193b: SUB 0000193c: DUP2 0000193d: DUP7 0000193e: GAS 0000193f: STATICCALL 00001940: ISZERO 00001941: DUP1 00001942: ISZERO 00001943: PUSH2 0x1950 00001946: JUMPI 00001947: RETURNDATASIZE 00001948: PUSH1 0x00 0000194a: DUP1 0000194b: RETURNDATACOPY 0000194c: RETURNDATASIZE 0000194d: PUSH1 0x00 0000194f: REVERT 00001950: JUMPDEST 00001951: POP 00001952: POP 00001953: POP 00001954: POP 00001955: PUSH1 0x40 00001957: MLOAD 00001958: RETURNDATASIZE 00001959: PUSH1 0x1f 0000195b: NOT 0000195c: PUSH1 0x1f 0000195e: DUP3 0000195f: ADD 00001960: AND 00001961: DUP3 00001962: ADD 00001963: DUP1 00001964: PUSH1 0x40 00001966: MSTORE 00001967: POP 00001968: DUP2 00001969: ADD 0000196a: SWAP1 0000196b: PUSH2 0x1974 0000196e: SWAP2 0000196f: SWAP1 00001970: PUSH2 0x2d80 00001973: JUMP 00001974: JUMPDEST 00001975: PUSH5 0xffffffffff 0000197b: AND 0000197c: DUP2 0000197d: PUSH5 0xffffffffff 00001983: AND 00001984: GT 00001985: JUMPDEST 00001986: ISZERO 00001987: PUSH2 0x19a3 0000198a: JUMPI 0000198b: PUSH1 0x40 0000198d: MLOAD 0000198e: PUSH4 0x7d9533a9 00001993: PUSH1 0xe1 00001995: SHL 00001996: DUP2 00001997: MSTORE 00001998: PUSH1 0x04 0000199a: ADD 0000199b: PUSH1 0x40 0000199d: MLOAD 0000199e: DUP1 0000199f: SWAP2 000019a0: SUB 000019a1: SWAP1 000019a2: REVERT 000019a3: JUMPDEST 000019a4: DUP1 000019a5: PUSH1 0x05 000019a7: DUP1 000019a8: PUSH2 0x0100 000019ab: EXP 000019ac: DUP2 000019ad: SLOAD 000019ae: DUP2 000019af: PUSH5 0xffffffffff 000019b5: MUL 000019b6: NOT 000019b7: AND 000019b8: SWAP1 000019b9: DUP4 000019ba: PUSH5 0xffffffffff 000019c0: AND 000019c1: MUL 000019c2: OR 000019c3: SWAP1 000019c4: SSTORE 000019c5: POP 000019c6: DUP2 000019c7: PUSH1 0x01 000019c9: PUSH1 0x01 000019cb: PUSH1 0xa0 000019cd: SHL 000019ce: SUB 000019cf: AND 000019d0: PUSH4 0xa035b1fe 000019d5: PUSH1 0x40 000019d7: MLOAD 000019d8: DUP2 000019d9: PUSH4 0xffffffff 000019de: AND 000019df: PUSH1 0xe0 000019e1: SHL 000019e2: DUP2 000019e3: MSTORE 000019e4: PUSH1 0x04 000019e6: ADD 000019e7: PUSH1 0x20 000019e9: PUSH1 0x40 000019eb: MLOAD 000019ec: DUP1 000019ed: DUP4 000019ee: SUB 000019ef: DUP2 000019f0: DUP7 000019f1: GAS 000019f2: STATICCALL 000019f3: ISZERO 000019f4: DUP1 000019f5: ISZERO 000019f6: PUSH2 0x1a03 000019f9: JUMPI 000019fa: RETURNDATASIZE 000019fb: PUSH1 0x00 000019fd: DUP1 000019fe: RETURNDATACOPY 000019ff: RETURNDATASIZE 00001a00: PUSH1 0x00 00001a02: REVERT 00001a03: JUMPDEST 00001a04: POP 00001a05: POP 00001a06: POP 00001a07: POP 00001a08: PUSH1 0x40 00001a0a: MLOAD 00001a0b: RETURNDATASIZE 00001a0c: PUSH1 0x1f 00001a0e: NOT 00001a0f: PUSH1 0x1f 00001a11: DUP3 00001a12: ADD 00001a13: AND 00001a14: DUP3 00001a15: ADD 00001a16: DUP1 00001a17: PUSH1 0x40 00001a19: MSTORE 00001a1a: POP 00001a1b: DUP2 00001a1c: ADD 00001a1d: SWAP1 00001a1e: PUSH2 0x1a27 00001a21: SWAP2 00001a22: SWAP1 00001a23: PUSH2 0x2cfd 00001a26: JUMP 00001a27: JUMPDEST 00001a28: PUSH1 0x01 00001a2a: SSTORE 00001a2b: PUSH2 0x1a53 00001a2e: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 00001a4f: PUSH2 0x2744 00001a52: JUMP 00001a53: JUMPDEST 00001a54: POP 00001a55: POP 00001a56: JUMP 00001a57: JUMPDEST 00001a58: PUSH2 0x1a60 00001a5b: CALLER 00001a5c: PUSH2 0x242f 00001a5f: JUMP 00001a60: JUMPDEST 00001a61: PUSH1 0x00 00001a63: PUSH2 0x1a6a 00001a66: PUSH2 0x21d8 00001a69: JUMP 00001a6a: JUMPDEST 00001a6b: SWAP1 00001a6c: POP 00001a6d: DUP1 00001a6e: DUP4 00001a6f: GT 00001a70: ISZERO 00001a71: PUSH2 0x1b12 00001a74: JUMPI 00001a75: PUSH1 0x01 00001a77: PUSH1 0x01 00001a79: PUSH1 0xa0 00001a7b: SHL 00001a7c: SUB 00001a7d: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001a9e: AND 00001a9f: PUSH4 0x23b872dd 00001aa4: CALLER 00001aa5: ADDRESS 00001aa6: PUSH2 0x1aaf 00001aa9: DUP6 00001aaa: DUP9 00001aab: PUSH2 0x2cea 00001aae: JUMP 00001aaf: JUMPDEST 00001ab0: PUSH1 0x40 00001ab2: MLOAD 00001ab3: DUP5 00001ab4: PUSH4 0xffffffff 00001ab9: AND 00001aba: PUSH1 0xe0 00001abc: SHL 00001abd: DUP2 00001abe: MSTORE 00001abf: PUSH1 0x04 00001ac1: ADD 00001ac2: PUSH2 0x1acd 00001ac5: SWAP4 00001ac6: SWAP3 00001ac7: SWAP2 00001ac8: SWAP1 00001ac9: PUSH2 0x2d3f 00001acc: JUMP 00001acd: JUMPDEST 00001ace: PUSH1 0x20 00001ad0: PUSH1 0x40 00001ad2: MLOAD 00001ad3: DUP1 00001ad4: DUP4 00001ad5: SUB 00001ad6: DUP2 00001ad7: PUSH1 0x00 00001ad9: DUP8 00001ada: GAS 00001adb: CALL 00001adc: ISZERO 00001add: DUP1 00001ade: ISZERO 00001adf: PUSH2 0x1aec 00001ae2: JUMPI 00001ae3: RETURNDATASIZE 00001ae4: PUSH1 0x00 00001ae6: DUP1 00001ae7: RETURNDATACOPY 00001ae8: RETURNDATASIZE 00001ae9: PUSH1 0x00 00001aeb: REVERT 00001aec: JUMPDEST 00001aed: POP 00001aee: POP 00001aef: POP 00001af0: POP 00001af1: PUSH1 0x40 00001af3: MLOAD 00001af4: RETURNDATASIZE 00001af5: PUSH1 0x1f 00001af7: NOT 00001af8: PUSH1 0x1f 00001afa: DUP3 00001afb: ADD 00001afc: AND 00001afd: DUP3 00001afe: ADD 00001aff: DUP1 00001b00: PUSH1 0x40 00001b02: MSTORE 00001b03: POP 00001b04: DUP2 00001b05: ADD 00001b06: SWAP1 00001b07: PUSH2 0x1b10 00001b0a: SWAP2 00001b0b: SWAP1 00001b0c: PUSH2 0x2d63 00001b0f: JUMP 00001b10: JUMPDEST 00001b11: POP 00001b12: JUMPDEST 00001b13: PUSH1 0x02 00001b15: SLOAD 00001b16: DUP5 00001b17: LT 00001b18: ISZERO 00001b19: PUSH2 0x1c0b 00001b1c: JUMPI 00001b1d: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00001b3e: PUSH1 0x01 00001b40: PUSH1 0x01 00001b42: PUSH1 0xa0 00001b44: SHL 00001b45: SUB 00001b46: AND 00001b47: PUSH4 0x315f3e72 00001b4c: CALLER 00001b4d: DUP7 00001b4e: PUSH1 0x02 00001b50: SLOAD 00001b51: PUSH2 0x1b5a 00001b54: SWAP2 00001b55: SWAP1 00001b56: PUSH2 0x2cea 00001b59: JUMP 00001b5a: JUMPDEST 00001b5b: PUSH1 0x40 00001b5d: MLOAD 00001b5e: PUSH1 0x01 00001b60: PUSH1 0x01 00001b62: PUSH1 0xe0 00001b64: SHL 00001b65: SUB 00001b66: NOT 00001b67: PUSH1 0xe0 00001b69: DUP6 00001b6a: SWAP1 00001b6b: SHL 00001b6c: AND 00001b6d: DUP2 00001b6e: MSTORE 00001b6f: PUSH1 0x01 00001b71: PUSH1 0x01 00001b73: PUSH1 0xa0 00001b75: SHL 00001b76: SUB 00001b77: SWAP1 00001b78: SWAP3 00001b79: AND 00001b7a: PUSH1 0x04 00001b7c: DUP4 00001b7d: ADD 00001b7e: MSTORE 00001b7f: PUSH1 0x24 00001b81: DUP3 00001b82: ADD 00001b83: MSTORE 00001b84: PUSH3 0xffffff 00001b88: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 00001ba9: AND 00001baa: PUSH1 0x44 00001bac: DUP3 00001bad: ADD 00001bae: MSTORE 00001baf: PUSH1 0x64 00001bb1: ADD 00001bb2: PUSH1 0x20 00001bb4: PUSH1 0x40 00001bb6: MLOAD 00001bb7: DUP1 00001bb8: DUP4 00001bb9: SUB 00001bba: DUP2 00001bbb: PUSH1 0x00 00001bbd: DUP8 00001bbe: GAS 00001bbf: CALL 00001bc0: ISZERO 00001bc1: DUP1 00001bc2: ISZERO 00001bc3: PUSH2 0x1bd0 00001bc6: JUMPI 00001bc7: RETURNDATASIZE 00001bc8: PUSH1 0x00 00001bca: DUP1 00001bcb: RETURNDATACOPY 00001bcc: RETURNDATASIZE 00001bcd: PUSH1 0x00 00001bcf: REVERT 00001bd0: JUMPDEST 00001bd1: POP 00001bd2: POP 00001bd3: POP 00001bd4: POP 00001bd5: PUSH1 0x40 00001bd7: MLOAD 00001bd8: RETURNDATASIZE 00001bd9: PUSH1 0x1f 00001bdb: NOT 00001bdc: PUSH1 0x1f 00001bde: DUP3 00001bdf: ADD 00001be0: AND 00001be1: DUP3 00001be2: ADD 00001be3: DUP1 00001be4: PUSH1 0x40 00001be6: MSTORE 00001be7: POP 00001be8: DUP2 00001be9: ADD 00001bea: SWAP1 00001beb: PUSH2 0x1bf4 00001bee: SWAP2 00001bef: SWAP1 00001bf0: PUSH2 0x2cfd 00001bf3: JUMP 00001bf4: JUMPDEST 00001bf5: POP 00001bf6: PUSH2 0x1c0b 00001bf9: DUP5 00001bfa: PUSH1 0x02 00001bfc: SLOAD 00001bfd: PUSH2 0x1c06 00001c00: SWAP2 00001c01: SWAP1 00001c02: PUSH2 0x2cea 00001c05: JUMP 00001c06: JUMPDEST 00001c07: PUSH2 0x223f 00001c0a: JUMP 00001c0b: JUMPDEST 00001c0c: DUP1 00001c0d: DUP4 00001c0e: LT 00001c0f: ISZERO 00001c10: PUSH2 0x1c28 00001c13: JUMPI 00001c14: PUSH2 0x1c26 00001c17: CALLER 00001c18: PUSH2 0x1c21 00001c1b: DUP6 00001c1c: DUP5 00001c1d: PUSH2 0x2cea 00001c20: JUMP 00001c21: JUMPDEST 00001c22: PUSH2 0x2475 00001c25: JUMP 00001c26: JUMPDEST 00001c27: POP 00001c28: JUMPDEST 00001c29: PUSH1 0x02 00001c2b: SLOAD 00001c2c: DUP5 00001c2d: GT 00001c2e: ISZERO 00001c2f: PUSH2 0x1c4a 00001c32: JUMPI 00001c33: PUSH2 0x1c4a 00001c36: CALLER 00001c37: PUSH1 0x02 00001c39: SLOAD 00001c3a: DUP7 00001c3b: PUSH2 0x1c44 00001c3e: SWAP2 00001c3f: SWAP1 00001c40: PUSH2 0x2cea 00001c43: JUMP 00001c44: JUMPDEST 00001c45: DUP6 00001c46: PUSH2 0x24dc 00001c49: JUMP 00001c4a: JUMPDEST 00001c4b: PUSH1 0x01 00001c4d: SLOAD 00001c4e: DUP3 00001c4f: EQ 00001c50: PUSH2 0x1c5c 00001c53: JUMPI 00001c54: PUSH2 0x1c5c 00001c57: DUP3 00001c58: PUSH2 0x27a7 00001c5b: JUMP 00001c5c: JUMPDEST 00001c5d: PUSH1 0x40 00001c5f: DUP1 00001c60: MLOAD 00001c61: DUP5 00001c62: DUP2 00001c63: MSTORE 00001c64: PUSH1 0x20 00001c66: DUP2 00001c67: ADD 00001c68: DUP5 00001c69: SWAP1 00001c6a: MSTORE 00001c6b: SWAP1 00001c6c: DUP2 00001c6d: ADD 00001c6e: DUP6 00001c6f: SWAP1 00001c70: MSTORE 00001c71: PUSH1 0x00 00001c73: DUP1 00001c74: MLOAD 00001c75: PUSH1 0x20 00001c77: PUSH2 0x2dfd 00001c7a: DUP4 00001c7b: CODECOPY 00001c7c: DUP2 00001c7d: MLOAD 00001c7e: SWAP2 00001c7f: MSTORE 00001c80: SWAP1 00001c81: PUSH1 0x60 00001c83: ADD 00001c84: PUSH2 0x116e 00001c87: JUMP 00001c88: JUMPDEST 00001c89: PUSH2 0x1c91 00001c8c: CALLER 00001c8d: PUSH2 0x242f 00001c90: JUMP 00001c91: JUMPDEST 00001c92: PUSH2 0x1c9a 00001c95: DUP2 00001c96: PUSH2 0x27a7 00001c99: JUMP 00001c9a: JUMPDEST 00001c9b: PUSH1 0x00 00001c9d: DUP1 00001c9e: MLOAD 00001c9f: PUSH1 0x20 00001ca1: PUSH2 0x2dfd 00001ca4: DUP4 00001ca5: CODECOPY 00001ca6: DUP2 00001ca7: MLOAD 00001ca8: SWAP2 00001ca9: MSTORE 00001caa: PUSH2 0x1cb1 00001cad: PUSH2 0x21d8 00001cb0: JUMP 00001cb1: JUMPDEST 00001cb2: PUSH1 0x01 00001cb4: SLOAD 00001cb5: PUSH1 0x02 00001cb7: SLOAD 00001cb8: PUSH1 0x40 00001cba: DUP1 00001cbb: MLOAD 00001cbc: SWAP4 00001cbd: DUP5 00001cbe: MSTORE 00001cbf: PUSH1 0x20 00001cc1: DUP5 00001cc2: ADD 00001cc3: SWAP3 00001cc4: SWAP1 00001cc5: SWAP3 00001cc6: MSTORE 00001cc7: SWAP1 00001cc8: DUP3 00001cc9: ADD 00001cca: MSTORE 00001ccb: PUSH1 0x60 00001ccd: ADD 00001cce: PUSH1 0x40 00001cd0: MLOAD 00001cd1: DUP1 00001cd2: SWAP2 00001cd3: SUB 00001cd4: SWAP1 00001cd5: LOG1 00001cd6: POP 00001cd7: JUMP 00001cd8: JUMPDEST 00001cd9: PUSH1 0x00 00001cdb: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000000 00001cfc: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 00001d1d: PUSH1 0x01 00001d1f: PUSH1 0x01 00001d21: PUSH1 0xa0 00001d23: SHL 00001d24: SUB 00001d25: AND 00001d26: PUSH4 0x2c4e722e 00001d2b: PUSH1 0x40 00001d2d: MLOAD 00001d2e: DUP2 00001d2f: PUSH4 0xffffffff 00001d34: AND 00001d35: PUSH1 0xe0 00001d37: SHL 00001d38: DUP2 00001d39: MSTORE 00001d3a: PUSH1 0x04 00001d3c: ADD 00001d3d: PUSH1 0x20 00001d3f: PUSH1 0x40 00001d41: MLOAD 00001d42: DUP1 00001d43: DUP4 00001d44: SUB 00001d45: DUP2 00001d46: DUP7 00001d47: GAS 00001d48: STATICCALL 00001d49: ISZERO 00001d4a: DUP1 00001d4b: ISZERO 00001d4c: PUSH2 0x1d59 00001d4f: JUMPI 00001d50: RETURNDATASIZE 00001d51: PUSH1 0x00 00001d53: DUP1 00001d54: RETURNDATACOPY 00001d55: RETURNDATASIZE 00001d56: PUSH1 0x00 00001d58: REVERT 00001d59: JUMPDEST 00001d5a: POP 00001d5b: POP 00001d5c: POP 00001d5d: POP 00001d5e: PUSH1 0x40 00001d60: MLOAD 00001d61: RETURNDATASIZE 00001d62: PUSH1 0x1f 00001d64: NOT 00001d65: PUSH1 0x1f 00001d67: DUP3 00001d68: ADD 00001d69: AND 00001d6a: DUP3 00001d6b: ADD 00001d6c: DUP1 00001d6d: PUSH1 0x40 00001d6f: MSTORE 00001d70: POP 00001d71: DUP2 00001d72: ADD 00001d73: SWAP1 00001d74: PUSH2 0x1d7d 00001d77: SWAP2 00001d78: SWAP1 00001d79: PUSH2 0x2c42 00001d7c: JUMP 00001d7d: JUMPDEST 00001d7e: PUSH1 0x01 00001d80: PUSH1 0x01 00001d82: PUSH1 0xa0 00001d84: SHL 00001d85: SUB 00001d86: AND 00001d87: PUSH4 0x06a7b376 00001d8c: PUSH1 0x40 00001d8e: MLOAD 00001d8f: DUP2 00001d90: PUSH4 0xffffffff 00001d95: AND 00001d96: PUSH1 0xe0 00001d98: SHL 00001d99: DUP2 00001d9a: MSTORE 00001d9b: PUSH1 0x04 00001d9d: ADD 00001d9e: PUSH1 0x20 00001da0: PUSH1 0x40 00001da2: MLOAD 00001da3: DUP1 00001da4: DUP4 00001da5: SUB 00001da6: DUP2 00001da7: DUP7 00001da8: GAS 00001da9: STATICCALL 00001daa: ISZERO 00001dab: DUP1 00001dac: ISZERO 00001dad: PUSH2 0x1dba 00001db0: JUMPI 00001db1: RETURNDATASIZE 00001db2: PUSH1 0x00 00001db4: DUP1 00001db5: RETURNDATACOPY 00001db6: RETURNDATASIZE 00001db7: PUSH1 0x00 00001db9: REVERT 00001dba: JUMPDEST 00001dbb: POP 00001dbc: POP 00001dbd: POP 00001dbe: POP 00001dbf: PUSH1 0x40 00001dc1: MLOAD 00001dc2: RETURNDATASIZE 00001dc3: PUSH1 0x1f 00001dc5: NOT 00001dc6: PUSH1 0x1f 00001dc8: DUP3 00001dc9: ADD 00001dca: AND 00001dcb: DUP3 00001dcc: ADD 00001dcd: DUP1 00001dce: PUSH1 0x40 00001dd0: MSTORE 00001dd1: POP 00001dd2: DUP2 00001dd3: ADD 00001dd4: SWAP1 00001dd5: PUSH2 0x1dde 00001dd8: SWAP2 00001dd9: SWAP1 00001dda: PUSH2 0x2d9d 00001ddd: JUMP 00001dde: JUMPDEST 00001ddf: PUSH2 0x11db 00001de2: SWAP2 00001de3: SWAP1 00001de4: PUSH2 0x2dc2 00001de7: JUMP 00001de8: JUMPDEST 00001de9: PUSH1 0x00 00001deb: DUP1 00001dec: PUSH32 0x0000000000000000000000000000000000000000000000000000000067608407 00001e0d: PUSH5 0xffffffffff 00001e13: AND 00001e14: TIMESTAMP 00001e15: LT 00001e16: PUSH2 0x1e1f 00001e19: JUMPI 00001e1a: TIMESTAMP 00001e1b: PUSH2 0x1e48 00001e1e: JUMP 00001e1f: JUMPDEST 00001e20: PUSH32 0x0000000000000000000000000000000000000000000000000000000067608407 00001e41: PUSH5 0xffffffffff 00001e47: AND 00001e48: JUMPDEST 00001e49: SWAP1 00001e4a: POP 00001e4b: PUSH1 0x00 00001e4d: PUSH2 0x1e56 00001e50: DUP3 00001e51: DUP6 00001e52: PUSH2 0x2cea 00001e55: JUMP 00001e56: JUMPDEST 00001e57: SWAP1 00001e58: POP 00001e59: PUSH1 0x00 00001e5b: PUSH4 0x01e13380 00001e60: PUSH2 0x1e67 00001e63: PUSH2 0x1cd8 00001e66: JUMP 00001e67: JUMPDEST 00001e68: PUSH2 0x1e76 00001e6b: SWAP1 00001e6c: PUSH3 0xffffff 00001e70: AND 00001e71: DUP5 00001e72: PUSH2 0x2c09 00001e75: JUMP 00001e76: JUMPDEST 00001e77: PUSH2 0x1e80 00001e7a: SWAP2 00001e7b: SWAP1 00001e7c: PUSH2 0x2c20 00001e7f: JUMP 00001e80: JUMPDEST 00001e81: SWAP1 00001e82: POP 00001e83: PUSH3 0x0f4240 00001e87: DUP2 00001e88: GT 00001e89: PUSH2 0x1e92 00001e8c: JUMPI 00001e8d: DUP1 00001e8e: PUSH2 0x1e97 00001e91: JUMP 00001e92: JUMPDEST 00001e93: PUSH3 0x0f4240 00001e97: JUMPDEST 00001e98: SWAP6 00001e99: SWAP5 00001e9a: POP 00001e9b: POP 00001e9c: POP 00001e9d: POP 00001e9e: POP 00001e9f: JUMP 00001ea0: JUMPDEST 00001ea1: PUSH1 0x00 00001ea3: DUP2 00001ea4: ISZERO 00001ea5: PUSH2 0x1f1f 00001ea8: JUMPI 00001ea9: PUSH2 0x1eb0 00001eac: PUSH2 0x14e9 00001eaf: JUMP 00001eb0: JUMPDEST 00001eb1: PUSH2 0x1edd 00001eb4: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 00001ed5: PUSH3 0x0f4240 00001ed9: PUSH2 0x2be6 00001edc: JUMP 00001edd: JUMPDEST 00001ede: PUSH2 0x1ee7 00001ee1: SWAP2 00001ee2: SWAP1 00001ee3: PUSH2 0x2be6 00001ee6: JUMP 00001ee7: JUMPDEST 00001ee8: PUSH3 0xffffff 00001eec: AND 00001eed: PUSH1 0x01 00001eef: PUSH2 0x1efb 00001ef2: DUP5 00001ef3: PUSH3 0x0f4240 00001ef7: PUSH2 0x2c09 00001efa: JUMP 00001efb: JUMPDEST 00001efc: PUSH2 0x1f05 00001eff: SWAP2 00001f00: SWAP1 00001f01: PUSH2 0x2cea 00001f04: JUMP 00001f05: JUMPDEST 00001f06: PUSH2 0x1f0f 00001f09: SWAP2 00001f0a: SWAP1 00001f0b: PUSH2 0x2c20 00001f0e: JUMP 00001f0f: JUMPDEST 00001f10: PUSH2 0x1f1a 00001f13: SWAP1 00001f14: PUSH1 0x01 00001f16: PUSH2 0x2d16 00001f19: JUMP 00001f1a: JUMPDEST 00001f1b: PUSH2 0x072d 00001f1e: JUMP 00001f1f: JUMPDEST 00001f20: PUSH1 0x00 00001f22: SWAP3 00001f23: SWAP2 00001f24: POP 00001f25: POP 00001f26: JUMP 00001f27: JUMPDEST 00001f28: PUSH1 0x00 00001f2a: DUP1 00001f2b: PUSH8 0x0de0b6b3a7640000 00001f34: PUSH1 0x01 00001f36: SLOAD 00001f37: PUSH2 0x1f3e 00001f3a: PUSH2 0x21d8 00001f3d: JUMP 00001f3e: JUMPDEST 00001f3f: PUSH2 0x1f48 00001f42: SWAP2 00001f43: SWAP1 00001f44: PUSH2 0x2c09 00001f47: JUMP 00001f48: JUMPDEST 00001f49: PUSH2 0x1f52 00001f4c: SWAP2 00001f4d: SWAP1 00001f4e: PUSH2 0x2c20 00001f51: JUMP 00001f52: JUMPDEST 00001f53: SWAP1 00001f54: POP 00001f55: PUSH1 0x00 00001f57: DUP2 00001f58: PUSH1 0x02 00001f5a: SLOAD 00001f5b: GT 00001f5c: PUSH2 0x1f71 00001f5f: JUMPI 00001f60: PUSH1 0x02 00001f62: SLOAD 00001f63: PUSH2 0x1f6c 00001f66: SWAP1 00001f67: DUP4 00001f68: PUSH2 0x2cea 00001f6b: JUMP 00001f6c: JUMPDEST 00001f6d: PUSH2 0x1f74 00001f70: JUMP 00001f71: JUMPDEST 00001f72: PUSH1 0x00 00001f74: JUMPDEST 00001f75: SWAP1 00001f76: POP 00001f77: PUSH32 0x000000000000000000000000000000000000000000084595161401484a000000 00001f98: DUP2 00001f99: PUSH1 0x03 00001f9b: SLOAD 00001f9c: PUSH2 0x1fa5 00001f9f: SWAP2 00001fa0: SWAP1 00001fa1: PUSH2 0x2d16 00001fa4: JUMP 00001fa5: JUMPDEST 00001fa6: LT 00001fa7: PUSH2 0x1fb3 00001faa: JUMPI 00001fab: PUSH1 0x00 00001fad: SWAP3 00001fae: POP 00001faf: POP 00001fb0: POP 00001fb1: SWAP1 00001fb2: JUMP 00001fb3: JUMPDEST 00001fb4: DUP1 00001fb5: PUSH1 0x03 00001fb7: SLOAD 00001fb8: PUSH32 0x000000000000000000000000000000000000000000084595161401484a000000 00001fd9: PUSH2 0x1fe2 00001fdc: SWAP2 00001fdd: SWAP1 00001fde: PUSH2 0x2cea 00001fe1: JUMP 00001fe2: JUMPDEST 00001fe3: PUSH2 0x1fec 00001fe6: SWAP2 00001fe7: SWAP1 00001fe8: PUSH2 0x2cea 00001feb: JUMP 00001fec: JUMPDEST 00001fed: SWAP3 00001fee: POP 00001fef: POP 00001ff0: POP 00001ff1: SWAP1 00001ff2: JUMP 00001ff3: JUMPDEST 00001ff4: PUSH1 0x40 00001ff6: MLOAD 00001ff7: PUSH4 0xaa5dd7f1 00001ffc: PUSH1 0xe0 00001ffe: SHL 00001fff: DUP2 00002000: MSTORE 00002001: CALLER 00002002: PUSH1 0x04 00002004: DUP3 00002005: ADD 00002006: MSTORE 00002007: PUSH1 0x01 00002009: PUSH1 0x01 0000200b: PUSH1 0xa0 0000200d: SHL 0000200e: SUB 0000200f: PUSH32 0x000000000000000000000000de12b620a8a714476a97efd14e6f7180ca653557 00002030: DUP2 00002031: AND 00002032: SWAP2 00002033: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00002054: SWAP1 00002055: SWAP2 00002056: AND 00002057: SWAP1 00002058: PUSH4 0xaa5dd7f1 0000205d: SWAP1 0000205e: PUSH1 0x24 00002060: ADD 00002061: PUSH1 0x20 00002063: PUSH1 0x40 00002065: MLOAD 00002066: DUP1 00002067: DUP4 00002068: SUB 00002069: DUP2 0000206a: DUP7 0000206b: GAS 0000206c: STATICCALL 0000206d: ISZERO 0000206e: DUP1 0000206f: ISZERO 00002070: PUSH2 0x207d 00002073: JUMPI 00002074: RETURNDATASIZE 00002075: PUSH1 0x00 00002077: DUP1 00002078: RETURNDATACOPY 00002079: RETURNDATASIZE 0000207a: PUSH1 0x00 0000207c: REVERT 0000207d: JUMPDEST 0000207e: POP 0000207f: POP 00002080: POP 00002081: POP 00002082: PUSH1 0x40 00002084: MLOAD 00002085: RETURNDATASIZE 00002086: PUSH1 0x1f 00002088: NOT 00002089: PUSH1 0x1f 0000208b: DUP3 0000208c: ADD 0000208d: AND 0000208e: DUP3 0000208f: ADD 00002090: DUP1 00002091: PUSH1 0x40 00002093: MSTORE 00002094: POP 00002095: DUP2 00002096: ADD 00002097: SWAP1 00002098: PUSH2 0x20a1 0000209b: SWAP2 0000209c: SWAP1 0000209d: PUSH2 0x2c42 000020a0: JUMP 000020a1: JUMPDEST 000020a2: PUSH1 0x01 000020a4: PUSH1 0x01 000020a6: PUSH1 0xa0 000020a8: SHL 000020a9: SUB 000020aa: AND 000020ab: EQ 000020ac: PUSH2 0x20c8 000020af: JUMPI 000020b0: PUSH1 0x40 000020b2: MLOAD 000020b3: PUSH4 0x13bd2e83 000020b8: PUSH1 0xe3 000020ba: SHL 000020bb: DUP2 000020bc: MSTORE 000020bd: PUSH1 0x04 000020bf: ADD 000020c0: PUSH1 0x40 000020c2: MLOAD 000020c3: DUP1 000020c4: SWAP2 000020c5: SUB 000020c6: SWAP1 000020c7: REVERT 000020c8: JUMPDEST 000020c9: DUP1 000020ca: PUSH1 0x03 000020cc: PUSH1 0x00 000020ce: DUP3 000020cf: DUP3 000020d0: SLOAD 000020d1: PUSH2 0x170c 000020d4: SWAP2 000020d5: SWAP1 000020d6: PUSH2 0x2d16 000020d9: JUMP 000020da: JUMPDEST 000020db: PUSH2 0x20e3 000020de: CALLER 000020df: PUSH2 0x242f 000020e2: JUMP 000020e3: JUMPDEST 000020e4: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00002105: PUSH1 0x01 00002107: PUSH1 0x01 00002109: PUSH1 0xa0 0000210b: SHL 0000210c: SUB 0000210d: AND 0000210e: DUP4 0000210f: PUSH1 0x01 00002111: PUSH1 0x01 00002113: PUSH1 0xa0 00002115: SHL 00002116: SUB 00002117: AND 00002118: SUB 00002119: PUSH2 0x212b 0000211c: JUMPI 0000211d: PUSH2 0x2126 00002120: DUP3 00002121: DUP3 00002122: PUSH2 0x1262 00002125: JUMP 00002126: JUMPDEST 00002127: POP 00002128: POP 00002129: POP 0000212a: JUMP 0000212b: JUMPDEST 0000212c: PUSH1 0x00 0000212e: PUSH2 0x2135 00002131: PUSH2 0x21d8 00002134: JUMP 00002135: JUMPDEST 00002136: PUSH1 0x40 00002138: MLOAD 00002139: PUSH4 0xa9059cbb 0000213e: PUSH1 0xe0 00002140: SHL 00002141: DUP2 00002142: MSTORE 00002143: PUSH1 0x01 00002145: PUSH1 0x01 00002147: PUSH1 0xa0 00002149: SHL 0000214a: SUB 0000214b: DUP6 0000214c: DUP2 0000214d: AND 0000214e: PUSH1 0x04 00002150: DUP4 00002151: ADD 00002152: MSTORE 00002153: PUSH1 0x24 00002155: DUP3 00002156: ADD 00002157: DUP6 00002158: SWAP1 00002159: MSTORE 0000215a: SWAP2 0000215b: SWAP3 0000215c: POP 0000215d: SWAP1 0000215e: DUP6 0000215f: AND 00002160: SWAP1 00002161: PUSH4 0xa9059cbb 00002166: SWAP1 00002167: PUSH1 0x44 00002169: ADD 0000216a: PUSH1 0x20 0000216c: PUSH1 0x40 0000216e: MLOAD 0000216f: DUP1 00002170: DUP4 00002171: SUB 00002172: DUP2 00002173: PUSH1 0x00 00002175: DUP8 00002176: GAS 00002177: CALL 00002178: ISZERO 00002179: DUP1 0000217a: ISZERO 0000217b: PUSH2 0x2188 0000217e: JUMPI 0000217f: RETURNDATASIZE 00002180: PUSH1 0x00 00002182: DUP1 00002183: RETURNDATACOPY 00002184: RETURNDATASIZE 00002185: PUSH1 0x00 00002187: REVERT 00002188: JUMPDEST 00002189: POP 0000218a: POP 0000218b: POP 0000218c: POP 0000218d: PUSH1 0x40 0000218f: MLOAD 00002190: RETURNDATASIZE 00002191: PUSH1 0x1f 00002193: NOT 00002194: PUSH1 0x1f 00002196: DUP3 00002197: ADD 00002198: AND 00002199: DUP3 0000219a: ADD 0000219b: DUP1 0000219c: PUSH1 0x40 0000219e: MSTORE 0000219f: POP 000021a0: DUP2 000021a1: ADD 000021a2: SWAP1 000021a3: PUSH2 0x21ac 000021a6: SWAP2 000021a7: SWAP1 000021a8: PUSH2 0x2d63 000021ab: JUMP 000021ac: JUMPDEST 000021ad: POP 000021ae: PUSH2 0x21b5 000021b1: PUSH2 0x21d8 000021b4: JUMP 000021b5: JUMPDEST 000021b6: DUP2 000021b7: EQ 000021b8: PUSH2 0x21c0 000021bb: JUMPI 000021bc: PUSH1 0x00 000021be: DUP1 000021bf: REVERT 000021c0: JUMPDEST 000021c1: POP 000021c2: POP 000021c3: POP 000021c4: POP 000021c5: JUMP 000021c6: JUMPDEST 000021c7: PUSH2 0x21cf 000021ca: CALLER 000021cb: PUSH2 0x242f 000021ce: JUMP 000021cf: JUMPDEST 000021d0: PUSH2 0x1781 000021d3: DUP2 000021d4: PUSH2 0x2744 000021d7: JUMP 000021d8: JUMPDEST 000021d9: PUSH1 0x40 000021db: MLOAD 000021dc: PUSH4 0x70a08231 000021e1: PUSH1 0xe0 000021e3: SHL 000021e4: DUP2 000021e5: MSTORE 000021e6: ADDRESS 000021e7: PUSH1 0x04 000021e9: DUP3 000021ea: ADD 000021eb: MSTORE 000021ec: PUSH1 0x00 000021ee: SWAP1 000021ef: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00002210: PUSH1 0x01 00002212: PUSH1 0x01 00002214: PUSH1 0xa0 00002216: SHL 00002217: SUB 00002218: AND 00002219: SWAP1 0000221a: PUSH4 0x70a08231 0000221f: SWAP1 00002220: PUSH1 0x24 00002222: ADD 00002223: PUSH1 0x20 00002225: PUSH1 0x40 00002227: MLOAD 00002228: DUP1 00002229: DUP4 0000222a: SUB 0000222b: DUP2 0000222c: DUP7 0000222d: GAS 0000222e: STATICCALL 0000222f: ISZERO 00002230: DUP1 00002231: ISZERO 00002232: PUSH2 0x123e 00002235: JUMPI 00002236: RETURNDATASIZE 00002237: PUSH1 0x00 00002239: DUP1 0000223a: RETURNDATACOPY 0000223b: RETURNDATASIZE 0000223c: PUSH1 0x00 0000223e: REVERT 0000223f: JUMPDEST 00002240: PUSH1 0x02 00002242: SLOAD 00002243: DUP2 00002244: GT 00002245: ISZERO 00002246: PUSH2 0x2272 00002249: JUMPI 0000224a: PUSH1 0x02 0000224c: SLOAD 0000224d: PUSH2 0x2256 00002250: SWAP1 00002251: DUP3 00002252: PUSH2 0x2cea 00002255: JUMP 00002256: JUMPDEST 00002257: PUSH1 0x40 00002259: MLOAD 0000225a: PUSH4 0x5795d469 0000225f: PUSH1 0xe1 00002261: SHL 00002262: DUP2 00002263: MSTORE 00002264: PUSH1 0x04 00002266: ADD 00002267: PUSH2 0x07c6 0000226a: SWAP2 0000226b: DUP2 0000226c: MSTORE 0000226d: PUSH1 0x20 0000226f: ADD 00002270: SWAP1 00002271: JUMP 00002272: JUMPDEST 00002273: PUSH1 0x40 00002275: MLOAD 00002276: PUSH4 0x5be980f5 0000227b: PUSH1 0xe0 0000227d: SHL 0000227e: DUP2 0000227f: MSTORE 00002280: PUSH1 0x04 00002282: DUP2 00002283: ADD 00002284: DUP3 00002285: SWAP1 00002286: MSTORE 00002287: PUSH32 0x00000000000000000000000049c431454c40ecbf848096f2753b2abc3a699a10 000022a8: PUSH1 0x01 000022aa: PUSH1 0x01 000022ac: PUSH1 0xa0 000022ae: SHL 000022af: SUB 000022b0: AND 000022b1: SWAP1 000022b2: PUSH4 0x5be980f5 000022b7: SWAP1 000022b8: PUSH1 0x24 000022ba: ADD 000022bb: PUSH1 0x00 000022bd: PUSH1 0x40 000022bf: MLOAD 000022c0: DUP1 000022c1: DUP4 000022c2: SUB 000022c3: DUP2 000022c4: PUSH1 0x00 000022c6: DUP8 000022c7: DUP1 000022c8: EXTCODESIZE 000022c9: ISZERO 000022ca: DUP1 000022cb: ISZERO 000022cc: PUSH2 0x22d4 000022cf: JUMPI 000022d0: PUSH1 0x00 000022d2: DUP1 000022d3: REVERT 000022d4: JUMPDEST 000022d5: POP 000022d6: GAS 000022d7: CALL 000022d8: ISZERO 000022d9: DUP1 000022da: ISZERO 000022db: PUSH2 0x22e8 000022de: JUMPI 000022df: RETURNDATASIZE 000022e0: PUSH1 0x00 000022e2: DUP1 000022e3: RETURNDATACOPY 000022e4: RETURNDATASIZE 000022e5: PUSH1 0x00 000022e7: REVERT 000022e8: JUMPDEST 000022e9: POP 000022ea: POP 000022eb: POP 000022ec: POP 000022ed: DUP1 000022ee: PUSH1 0x02 000022f0: PUSH1 0x00 000022f2: DUP3 000022f3: DUP3 000022f4: SLOAD 000022f5: PUSH2 0x170c 000022f8: SWAP2 000022f9: SWAP1 000022fa: PUSH2 0x2cea 000022fd: JUMP 000022fe: JUMPDEST 000022ff: PUSH1 0x00 00002301: PUSH2 0x230a 00002304: DUP3 00002305: TIMESTAMP 00002306: PUSH2 0x2dde 00002309: JUMP 0000230a: JUMPDEST 0000230b: PUSH1 0x05 0000230d: SLOAD 0000230e: SWAP1 0000230f: SWAP2 00002310: POP 00002311: PUSH5 0xffffffffff 00002317: SWAP1 00002318: DUP2 00002319: AND 0000231a: SWAP1 0000231b: DUP3 0000231c: AND 0000231d: GT 0000231e: ISZERO 0000231f: PUSH2 0x1a53 00002322: JUMPI 00002323: PUSH1 0x05 00002325: DUP1 00002326: SLOAD 00002327: PUSH5 0xffffffffff 0000232d: DUP4 0000232e: AND 0000232f: PUSH5 0xffffffffff 00002335: NOT 00002336: SWAP1 00002337: SWAP2 00002338: AND 00002339: OR 0000233a: SWAP1 0000233b: SSTORE 0000233c: POP 0000233d: POP 0000233e: JUMP 0000233f: JUMPDEST 00002340: PUSH1 0x00 00002342: DUP2 00002343: ISZERO 00002344: PUSH2 0x23dc 00002347: JUMPI 00002348: PUSH1 0x40 0000234a: MLOAD 0000234b: PUSH4 0xa9059cbb 00002350: PUSH1 0xe0 00002352: SHL 00002353: DUP2 00002354: MSTORE 00002355: PUSH1 0x01 00002357: PUSH1 0x01 00002359: PUSH1 0xa0 0000235b: SHL 0000235c: SUB 0000235d: DUP5 0000235e: DUP2 0000235f: AND 00002360: PUSH1 0x04 00002362: DUP4 00002363: ADD 00002364: MSTORE 00002365: PUSH1 0x24 00002367: DUP3 00002368: ADD 00002369: DUP5 0000236a: SWAP1 0000236b: MSTORE 0000236c: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000238d: AND 0000238e: SWAP1 0000238f: PUSH4 0xa9059cbb 00002394: SWAP1 00002395: PUSH1 0x44 00002397: ADD 00002398: PUSH1 0x20 0000239a: PUSH1 0x40 0000239c: MLOAD 0000239d: DUP1 0000239e: DUP4 0000239f: SUB 000023a0: DUP2 000023a1: PUSH1 0x00 000023a3: DUP8 000023a4: GAS 000023a5: CALL 000023a6: ISZERO 000023a7: DUP1 000023a8: ISZERO 000023a9: PUSH2 0x23b6 000023ac: JUMPI 000023ad: RETURNDATASIZE 000023ae: PUSH1 0x00 000023b0: DUP1 000023b1: RETURNDATACOPY 000023b2: RETURNDATASIZE 000023b3: PUSH1 0x00 000023b5: REVERT 000023b6: JUMPDEST 000023b7: POP 000023b8: POP 000023b9: POP 000023ba: POP 000023bb: PUSH1 0x40 000023bd: MLOAD 000023be: RETURNDATASIZE 000023bf: PUSH1 0x1f 000023c1: NOT 000023c2: PUSH1 0x1f 000023c4: DUP3 000023c5: ADD 000023c6: AND 000023c7: DUP3 000023c8: ADD 000023c9: DUP1 000023ca: PUSH1 0x40 000023cc: MSTORE 000023cd: POP 000023ce: DUP2 000023cf: ADD 000023d0: SWAP1 000023d1: PUSH2 0x23da 000023d4: SWAP2 000023d5: SWAP1 000023d6: PUSH2 0x2d63 000023d9: JUMP 000023da: JUMPDEST 000023db: POP 000023dc: JUMPDEST 000023dd: PUSH1 0x00 000023df: PUSH2 0x23e6 000023e2: PUSH2 0x21d8 000023e5: JUMP 000023e6: JUMPDEST 000023e7: SWAP1 000023e8: POP 000023e9: PUSH32 0x0000000000000000000000000000000000000000000000001bc16d674ec80000 0000240a: DUP2 0000240b: LT 0000240c: ISZERO 0000240d: PUSH2 0x2428 00002410: JUMPI 00002411: PUSH2 0x2428 00002414: PUSH1 0x05 00002416: DUP1 00002417: SLOAD 00002418: PUSH1 0xff 0000241a: PUSH1 0x50 0000241c: SHL 0000241d: NOT 0000241e: AND 0000241f: PUSH1 0x01 00002421: PUSH1 0x50 00002423: SHL 00002424: OR 00002425: SWAP1 00002426: SSTORE 00002427: JUMP 00002428: JUMPDEST 00002429: SWAP4 0000242a: SWAP3 0000242b: POP 0000242c: POP 0000242d: POP 0000242e: JUMP 0000242f: JUMPDEST 00002430: PUSH1 0x00 00002432: SLOAD 00002433: PUSH1 0x01 00002435: PUSH1 0x01 00002437: PUSH1 0xa0 00002439: SHL 0000243a: SUB 0000243b: DUP3 0000243c: DUP2 0000243d: AND 0000243e: SWAP2 0000243f: AND 00002440: EQ 00002441: DUP1 00002442: ISZERO 00002443: SWAP1 00002444: PUSH2 0x2457 00002447: JUMPI 00002448: POP 00002449: PUSH1 0x00 0000244b: SLOAD 0000244c: PUSH1 0x01 0000244e: PUSH1 0x01 00002450: PUSH1 0xa0 00002452: SHL 00002453: SUB 00002454: AND 00002455: ISZERO 00002456: ISZERO 00002457: JUMPDEST 00002458: ISZERO 00002459: PUSH2 0x1781 0000245c: JUMPI 0000245d: PUSH1 0x40 0000245f: MLOAD 00002460: PUSH4 0x30cd7471 00002465: PUSH1 0xe0 00002467: SHL 00002468: DUP2 00002469: MSTORE 0000246a: PUSH1 0x04 0000246c: ADD 0000246d: PUSH1 0x40 0000246f: MLOAD 00002470: DUP1 00002471: SWAP2 00002472: SUB 00002473: SWAP1 00002474: REVERT 00002475: JUMPDEST 00002476: PUSH1 0x04 00002478: SLOAD 00002479: PUSH1 0x00 0000247b: SWAP1 0000247c: ISZERO 0000247d: PUSH2 0x2499 00002480: JUMPI 00002481: PUSH1 0x40 00002483: MLOAD 00002484: PUSH4 0xd26e2de9 00002489: PUSH1 0xe0 0000248b: SHL 0000248c: DUP2 0000248d: MSTORE 0000248e: PUSH1 0x04 00002490: ADD 00002491: PUSH1 0x40 00002493: MLOAD 00002494: DUP1 00002495: SWAP2 00002496: SUB 00002497: SWAP1 00002498: REVERT 00002499: JUMPDEST 0000249a: PUSH1 0x05 0000249c: SLOAD 0000249d: PUSH5 0xffffffffff 000024a3: AND 000024a4: TIMESTAMP 000024a5: GT 000024a6: PUSH2 0x24c2 000024a9: JUMPI 000024aa: PUSH1 0x40 000024ac: MLOAD 000024ad: PUSH4 0x1c02820f 000024b2: PUSH1 0xe2 000024b4: SHL 000024b5: DUP2 000024b6: MSTORE 000024b7: PUSH1 0x04 000024b9: ADD 000024ba: PUSH1 0x40 000024bc: MLOAD 000024bd: DUP1 000024be: SWAP2 000024bf: SUB 000024c0: SWAP1 000024c1: REVERT 000024c2: JUMPDEST 000024c3: PUSH1 0x00 000024c5: PUSH2 0x24ce 000024c8: DUP5 000024c9: DUP5 000024ca: PUSH2 0x233f 000024cd: JUMP 000024ce: JUMPDEST 000024cf: SWAP1 000024d0: POP 000024d1: PUSH2 0x2428 000024d4: DUP2 000024d5: PUSH1 0x01 000024d7: SLOAD 000024d8: PUSH2 0x288a 000024db: JUMP 000024dc: JUMPDEST 000024dd: PUSH1 0x04 000024df: SLOAD 000024e0: ISZERO 000024e1: PUSH2 0x24fd 000024e4: JUMPI 000024e5: PUSH1 0x40 000024e7: MLOAD 000024e8: PUSH4 0xd26e2de9 000024ed: PUSH1 0xe0 000024ef: SHL 000024f0: DUP2 000024f1: MSTORE 000024f2: PUSH1 0x04 000024f4: ADD 000024f5: PUSH1 0x40 000024f7: MLOAD 000024f8: DUP1 000024f9: SWAP2 000024fa: SUB 000024fb: SWAP1 000024fc: REVERT 000024fd: JUMPDEST 000024fe: PUSH1 0x05 00002500: SLOAD 00002501: PUSH5 0xffffffffff 00002507: AND 00002508: TIMESTAMP 00002509: GT 0000250a: PUSH2 0x2526 0000250d: JUMPI 0000250e: PUSH1 0x40 00002510: MLOAD 00002511: PUSH4 0x1c02820f 00002516: PUSH1 0xe2 00002518: SHL 00002519: DUP2 0000251a: MSTORE 0000251b: PUSH1 0x04 0000251d: ADD 0000251e: PUSH1 0x40 00002520: MLOAD 00002521: DUP1 00002522: SWAP2 00002523: SUB 00002524: SWAP1 00002525: REVERT 00002526: JUMPDEST 00002527: PUSH1 0x05 00002529: SLOAD 0000252a: PUSH1 0x01 0000252c: PUSH1 0x28 0000252e: SHL 0000252f: SWAP1 00002530: DIV 00002531: PUSH5 0xffffffffff 00002537: AND 00002538: TIMESTAMP 00002539: LT 0000253a: PUSH2 0x2573 0000253d: JUMPI 0000253e: PUSH1 0x05 00002540: SLOAD 00002541: PUSH1 0x40 00002543: MLOAD 00002544: PUSH3 0x38ddd7 00002548: PUSH1 0xe4 0000254a: SHL 0000254b: DUP2 0000254c: MSTORE 0000254d: PUSH5 0xffffffffff 00002553: TIMESTAMP 00002554: DUP2 00002555: AND 00002556: PUSH1 0x04 00002558: DUP4 00002559: ADD 0000255a: MSTORE 0000255b: PUSH1 0x01 0000255d: PUSH1 0x28 0000255f: SHL 00002560: SWAP1 00002561: SWAP3 00002562: DIV 00002563: SWAP2 00002564: SWAP1 00002565: SWAP2 00002566: AND 00002567: PUSH1 0x24 00002569: DUP3 0000256a: ADD 0000256b: MSTORE 0000256c: PUSH1 0x44 0000256e: ADD 0000256f: PUSH2 0x07c6 00002572: JUMP 00002573: JUMPDEST 00002574: PUSH1 0x05 00002576: SLOAD 00002577: PUSH1 0x01 00002579: PUSH1 0x50 0000257b: SHL 0000257c: SWAP1 0000257d: DIV 0000257e: PUSH1 0xff 00002580: AND 00002581: ISZERO 00002582: PUSH2 0x259e 00002585: JUMPI 00002586: PUSH1 0x40 00002588: MLOAD 00002589: PUSH4 0x1cdde67b 0000258e: PUSH1 0xe0 00002590: SHL 00002591: DUP2 00002592: MSTORE 00002593: PUSH1 0x04 00002595: ADD 00002596: PUSH1 0x40 00002598: MLOAD 00002599: DUP1 0000259a: SWAP2 0000259b: SUB 0000259c: SWAP1 0000259d: REVERT 0000259e: JUMPDEST 0000259f: PUSH2 0x25a6 000025a2: PUSH2 0x117c 000025a5: JUMP 000025a6: JUMPDEST 000025a7: DUP3 000025a8: GT 000025a9: ISZERO 000025aa: PUSH2 0x25d8 000025ad: JUMPI 000025ae: DUP2 000025af: PUSH2 0x25b6 000025b2: PUSH2 0x117c 000025b5: JUMP 000025b6: JUMPDEST 000025b7: PUSH1 0x40 000025b9: MLOAD 000025ba: PUSH4 0x47790779 000025bf: PUSH1 0xe1 000025c1: SHL 000025c2: DUP2 000025c3: MSTORE 000025c4: PUSH1 0x04 000025c6: DUP2 000025c7: ADD 000025c8: SWAP3 000025c9: SWAP1 000025ca: SWAP3 000025cb: MSTORE 000025cc: PUSH1 0x24 000025ce: DUP3 000025cf: ADD 000025d0: MSTORE 000025d1: PUSH1 0x44 000025d3: ADD 000025d4: PUSH2 0x07c6 000025d7: JUMP 000025d8: JUMPDEST 000025d9: PUSH1 0x40 000025db: MLOAD 000025dc: PUSH4 0x0cfb636f 000025e1: PUSH1 0xe4 000025e3: SHL 000025e4: DUP2 000025e5: MSTORE 000025e6: PUSH1 0x04 000025e8: DUP2 000025e9: ADD 000025ea: DUP4 000025eb: SWAP1 000025ec: MSTORE 000025ed: PUSH32 0x00000000000000000000000049c431454c40ecbf848096f2753b2abc3a699a10 0000260e: PUSH1 0x01 00002610: PUSH1 0x01 00002612: PUSH1 0xa0 00002614: SHL 00002615: SUB 00002616: AND 00002617: SWAP1 00002618: PUSH4 0xcfb636f0 0000261d: SWAP1 0000261e: PUSH1 0x24 00002620: ADD 00002621: PUSH1 0x00 00002623: PUSH1 0x40 00002625: MLOAD 00002626: DUP1 00002627: DUP4 00002628: SUB 00002629: DUP2 0000262a: PUSH1 0x00 0000262c: DUP8 0000262d: DUP1 0000262e: EXTCODESIZE 0000262f: ISZERO 00002630: DUP1 00002631: ISZERO 00002632: PUSH2 0x263a 00002635: JUMPI 00002636: PUSH1 0x00 00002638: DUP1 00002639: REVERT 0000263a: JUMPDEST 0000263b: POP 0000263c: GAS 0000263d: CALL 0000263e: ISZERO 0000263f: DUP1 00002640: ISZERO 00002641: PUSH2 0x264e 00002644: JUMPI 00002645: RETURNDATASIZE 00002646: PUSH1 0x00 00002648: DUP1 00002649: RETURNDATACOPY 0000264a: RETURNDATASIZE 0000264b: PUSH1 0x00 0000264d: REVERT 0000264e: JUMPDEST 0000264f: POP 00002650: POP 00002651: POP 00002652: POP 00002653: PUSH32 0x000000000000000000000000b58e61c3098d85632df34eecfb899a1ed80921cb 00002674: PUSH1 0x01 00002676: PUSH1 0x01 00002678: PUSH1 0xa0 0000267a: SHL 0000267b: SUB 0000267c: AND 0000267d: PUSH4 0x8112eb2b 00002682: DUP5 00002683: DUP5 00002684: PUSH32 0x000000000000000000000000000000000000000000000000000000000003d090 000026a5: PUSH2 0x26ac 000026a8: PUSH2 0x14e9 000026ab: JUMP 000026ac: JUMPDEST 000026ad: PUSH1 0x40 000026af: MLOAD 000026b0: PUSH1 0x01 000026b2: PUSH1 0x01 000026b4: PUSH1 0xe0 000026b6: SHL 000026b7: SUB 000026b8: NOT 000026b9: PUSH1 0xe0 000026bb: DUP8 000026bc: SWAP1 000026bd: SHL 000026be: AND 000026bf: DUP2 000026c0: MSTORE 000026c1: PUSH1 0x01 000026c3: PUSH1 0x01 000026c5: PUSH1 0xa0 000026c7: SHL 000026c8: SUB 000026c9: SWAP1 000026ca: SWAP5 000026cb: AND 000026cc: PUSH1 0x04 000026ce: DUP6 000026cf: ADD 000026d0: MSTORE 000026d1: PUSH1 0x24 000026d3: DUP5 000026d4: ADD 000026d5: SWAP3 000026d6: SWAP1 000026d7: SWAP3 000026d8: MSTORE 000026d9: PUSH3 0xffffff 000026dd: SWAP1 000026de: DUP2 000026df: AND 000026e0: PUSH1 0x44 000026e2: DUP5 000026e3: ADD 000026e4: MSTORE 000026e5: AND 000026e6: PUSH1 0x64 000026e8: DUP3 000026e9: ADD 000026ea: MSTORE 000026eb: PUSH1 0x84 000026ed: ADD 000026ee: PUSH1 0x00 000026f0: PUSH1 0x40 000026f2: MLOAD 000026f3: DUP1 000026f4: DUP4 000026f5: SUB 000026f6: DUP2 000026f7: PUSH1 0x00 000026f9: DUP8 000026fa: DUP1 000026fb: EXTCODESIZE 000026fc: ISZERO 000026fd: DUP1 000026fe: ISZERO 000026ff: PUSH2 0x2707 00002702: JUMPI 00002703: PUSH1 0x00 00002705: DUP1 00002706: REVERT 00002707: JUMPDEST 00002708: POP 00002709: GAS 0000270a: CALL 0000270b: ISZERO 0000270c: DUP1 0000270d: ISZERO 0000270e: PUSH2 0x271b 00002711: JUMPI 00002712: RETURNDATASIZE 00002713: PUSH1 0x00 00002715: DUP1 00002716: RETURNDATACOPY 00002717: RETURNDATASIZE 00002718: PUSH1 0x00 0000271a: REVERT 0000271b: JUMPDEST 0000271c: POP 0000271d: POP 0000271e: POP 0000271f: POP 00002720: DUP2 00002721: PUSH1 0x02 00002723: PUSH1 0x00 00002725: DUP3 00002726: DUP3 00002727: SLOAD 00002728: PUSH2 0x2731 0000272b: SWAP2 0000272c: SWAP1 0000272d: PUSH2 0x2d16 00002730: JUMP 00002731: JUMPDEST 00002732: SWAP3 00002733: POP 00002734: POP 00002735: DUP2 00002736: SWAP1 00002737: SSTORE 00002738: POP 00002739: PUSH2 0x2126 0000273c: DUP2 0000273d: PUSH1 0x01 0000273f: SLOAD 00002740: PUSH2 0x288a 00002743: JUMP 00002744: JUMPDEST 00002745: PUSH1 0x01 00002747: PUSH1 0x01 00002749: PUSH1 0xa0 0000274b: SHL 0000274c: SUB 0000274d: DUP2 0000274e: AND 0000274f: PUSH2 0x2757 00002752: JUMPI 00002753: PUSH1 0x00 00002755: DUP1 00002756: REVERT 00002757: JUMPDEST 00002758: PUSH1 0x00 0000275a: DUP1 0000275b: SLOAD 0000275c: PUSH1 0x01 0000275e: PUSH1 0x01 00002760: PUSH1 0xa0 00002762: SHL 00002763: SUB 00002764: DUP4 00002765: DUP2 00002766: AND 00002767: PUSH1 0x01 00002769: PUSH1 0x01 0000276b: PUSH1 0xa0 0000276d: SHL 0000276e: SUB 0000276f: NOT 00002770: DUP4 00002771: AND 00002772: DUP2 00002773: OR 00002774: DUP5 00002775: SSTORE 00002776: PUSH1 0x40 00002778: MLOAD 00002779: SWAP2 0000277a: SWAP1 0000277b: SWAP3 0000277c: AND 0000277d: SWAP3 0000277e: DUP4 0000277f: SWAP2 00002780: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000027a1: SWAP2 000027a2: SWAP1 000027a3: LOG3 000027a4: POP 000027a5: POP 000027a6: JUMP 000027a7: JUMPDEST 000027a8: PUSH1 0x04 000027aa: SLOAD 000027ab: ISZERO 000027ac: PUSH2 0x27c8 000027af: JUMPI 000027b0: PUSH1 0x40 000027b2: MLOAD 000027b3: PUSH4 0xd26e2de9 000027b8: PUSH1 0xe0 000027ba: SHL 000027bb: DUP2 000027bc: MSTORE 000027bd: PUSH1 0x04 000027bf: ADD 000027c0: PUSH1 0x40 000027c2: MLOAD 000027c3: DUP1 000027c4: SWAP2 000027c5: SUB 000027c6: SWAP1 000027c7: REVERT 000027c8: JUMPDEST 000027c9: PUSH1 0x05 000027cb: SLOAD 000027cc: PUSH1 0x01 000027ce: PUSH1 0x28 000027d0: SHL 000027d1: SWAP1 000027d2: DIV 000027d3: PUSH5 0xffffffffff 000027d9: AND 000027da: TIMESTAMP 000027db: LT 000027dc: PUSH2 0x2815 000027df: JUMPI 000027e0: PUSH1 0x05 000027e2: SLOAD 000027e3: PUSH1 0x40 000027e5: MLOAD 000027e6: PUSH3 0x38ddd7 000027ea: PUSH1 0xe4 000027ec: SHL 000027ed: DUP2 000027ee: MSTORE 000027ef: PUSH5 0xffffffffff 000027f5: TIMESTAMP 000027f6: DUP2 000027f7: AND 000027f8: PUSH1 0x04 000027fa: DUP4 000027fb: ADD 000027fc: MSTORE 000027fd: PUSH1 0x01 000027ff: PUSH1 0x28 00002801: SHL 00002802: SWAP1 00002803: SWAP3 00002804: DIV 00002805: SWAP2 00002806: SWAP1 00002807: SWAP2 00002808: AND 00002809: PUSH1 0x24 0000280b: DUP3 0000280c: ADD 0000280d: MSTORE 0000280e: PUSH1 0x44 00002810: ADD 00002811: PUSH2 0x07c6 00002814: JUMP 00002815: JUMPDEST 00002816: PUSH1 0x05 00002818: SLOAD 00002819: PUSH1 0x01 0000281b: PUSH1 0x50 0000281d: SHL 0000281e: SWAP1 0000281f: DIV 00002820: PUSH1 0xff 00002822: AND 00002823: ISZERO 00002824: PUSH2 0x2840 00002827: JUMPI 00002828: PUSH1 0x40 0000282a: MLOAD 0000282b: PUSH4 0x1cdde67b 00002830: PUSH1 0xe0 00002832: SHL 00002833: DUP2 00002834: MSTORE 00002835: PUSH1 0x04 00002837: ADD 00002838: PUSH1 0x40 0000283a: MLOAD 0000283b: DUP1 0000283c: SWAP2 0000283d: SUB 0000283e: SWAP1 0000283f: REVERT 00002840: JUMPDEST 00002841: PUSH1 0x01 00002843: SLOAD 00002844: DUP2 00002845: GT 00002846: ISZERO 00002847: PUSH2 0x285b 0000284a: JUMPI 0000284b: PUSH2 0x2856 0000284e: PUSH3 0x03f480 00002852: PUSH2 0x22fe 00002855: JUMP 00002856: JUMPDEST 00002857: PUSH2 0x286c 0000285a: JUMP 0000285b: JUMPDEST 0000285c: PUSH2 0x286c 0000285f: PUSH2 0x2866 00002862: PUSH2 0x21d8 00002865: JUMP 00002866: JUMPDEST 00002867: DUP3 00002868: PUSH2 0x288a 0000286b: JUMP 0000286c: JUMPDEST 0000286d: PUSH2 0x1781 00002870: DUP2 00002871: PUSH2 0x2878 00002874: PUSH2 0x117c 00002877: JUMP 00002878: JUMPDEST 00002879: PUSH1 0x02 0000287b: SLOAD 0000287c: PUSH2 0x2885 0000287f: SWAP2 00002880: SWAP1 00002881: PUSH2 0x2d16 00002884: JUMP 00002885: JUMPDEST 00002886: PUSH2 0x2926 00002889: JUMP 0000288a: JUMPDEST 0000288b: PUSH1 0x00 0000288d: PUSH32 0x0000000000000000000000000000000000000000000000001bc16d674ec80000 000028ae: DUP4 000028af: LT 000028b0: PUSH2 0x28b9 000028b3: JUMPI 000028b4: DUP3 000028b5: PUSH2 0x28bc 000028b8: JUMP 000028b9: JUMPDEST 000028ba: PUSH1 0x00 000028bc: JUMPDEST 000028bd: SWAP1 000028be: POP 000028bf: PUSH8 0x0de0b6b3a7640000 000028c8: PUSH1 0x02 000028ca: SLOAD 000028cb: PUSH2 0x28d4 000028ce: SWAP2 000028cf: SWAP1 000028d0: PUSH2 0x2c09 000028d3: JUMP 000028d4: JUMPDEST 000028d5: PUSH2 0x28de 000028d8: DUP4 000028d9: DUP4 000028da: PUSH2 0x2c09 000028dd: JUMP 000028de: JUMPDEST 000028df: LT 000028e0: ISZERO 000028e1: PUSH2 0x2126 000028e4: JUMPI 000028e5: PUSH2 0x28ee 000028e8: DUP3 000028e9: DUP3 000028ea: PUSH2 0x2c09 000028ed: JUMP 000028ee: JUMPDEST 000028ef: PUSH8 0x0de0b6b3a7640000 000028f8: PUSH1 0x02 000028fa: SLOAD 000028fb: PUSH2 0x2904 000028fe: SWAP2 000028ff: SWAP1 00002900: PUSH2 0x2c09 00002903: JUMP 00002904: JUMPDEST 00002905: PUSH1 0x40 00002907: MLOAD 00002908: PUSH4 0x2c1f8ef1 0000290d: PUSH1 0xe2 0000290f: SHL 00002910: DUP2 00002911: MSTORE 00002912: PUSH1 0x04 00002914: DUP2 00002915: ADD 00002916: SWAP3 00002917: SWAP1 00002918: SWAP3 00002919: MSTORE 0000291a: PUSH1 0x24 0000291c: DUP3 0000291d: ADD 0000291e: MSTORE 0000291f: PUSH1 0x44 00002921: ADD 00002922: PUSH2 0x07c6 00002925: JUMP 00002926: JUMPDEST 00002927: PUSH2 0x2938 0000292a: PUSH8 0x0de0b6b3a7640000 00002933: DUP3 00002934: PUSH2 0x2c09 00002937: JUMP 00002938: JUMPDEST 00002939: PUSH2 0x2962 0000293c: PUSH32 0x0000000000000000000000000000000000000000000000001bc16d674ec80000 0000295d: DUP5 0000295e: PUSH2 0x2c09 00002961: JUMP 00002962: JUMPDEST 00002963: GT 00002964: ISZERO 00002965: PUSH2 0x296d 00002968: JUMPI 00002969: PUSH1 0x00 0000296b: DUP1 0000296c: REVERT 0000296d: JUMPDEST 0000296e: POP 0000296f: PUSH1 0x01 00002971: SSTORE 00002972: JUMP 00002973: JUMPDEST 00002974: DUP1 00002975: ISZERO 00002976: ISZERO 00002977: DUP2 00002978: EQ 00002979: PUSH2 0x1781 0000297c: JUMPI 0000297d: PUSH1 0x00 0000297f: DUP1 00002980: REVERT 00002981: JUMPDEST 00002982: PUSH1 0x00 00002984: DUP1 00002985: PUSH1 0x40 00002987: DUP4 00002988: DUP6 00002989: SUB 0000298a: SLT 0000298b: ISZERO 0000298c: PUSH2 0x2994 0000298f: JUMPI 00002990: PUSH1 0x00 00002992: DUP1 00002993: REVERT 00002994: JUMPDEST 00002995: DUP3 00002996: CALLDATALOAD 00002997: SWAP2 00002998: POP 00002999: PUSH1 0x20 0000299b: DUP4 0000299c: ADD 0000299d: CALLDATALOAD 0000299e: PUSH2 0x29a6 000029a1: DUP2 000029a2: PUSH2 0x2973 000029a5: JUMP 000029a6: JUMPDEST 000029a7: DUP1 000029a8: SWAP2 000029a9: POP 000029aa: POP 000029ab: SWAP3 000029ac: POP 000029ad: SWAP3 000029ae: SWAP1 000029af: POP 000029b0: JUMP 000029b1: JUMPDEST 000029b2: PUSH1 0x00 000029b4: DUP1 000029b5: PUSH1 0x00 000029b7: DUP1 000029b8: PUSH1 0x40 000029ba: DUP6 000029bb: DUP8 000029bc: SUB 000029bd: SLT 000029be: ISZERO 000029bf: PUSH2 0x29c7 000029c2: JUMPI 000029c3: PUSH1 0x00 000029c5: DUP1 000029c6: REVERT 000029c7: JUMPDEST 000029c8: DUP5 000029c9: CALLDATALOAD 000029ca: PUSH8 0xffffffffffffffff 000029d3: DUP1 000029d4: DUP3 000029d5: GT 000029d6: ISZERO 000029d7: PUSH2 0x29df 000029da: JUMPI 000029db: PUSH1 0x00 000029dd: DUP1 000029de: REVERT 000029df: JUMPDEST 000029e0: DUP2 000029e1: DUP8 000029e2: ADD 000029e3: SWAP2 000029e4: POP 000029e5: DUP8 000029e6: PUSH1 0x1f 000029e8: DUP4 000029e9: ADD 000029ea: SLT 000029eb: PUSH2 0x29f3 000029ee: JUMPI 000029ef: PUSH1 0x00 000029f1: DUP1 000029f2: REVERT 000029f3: JUMPDEST 000029f4: DUP2 000029f5: CALLDATALOAD 000029f6: DUP2 000029f7: DUP2 000029f8: GT 000029f9: ISZERO 000029fa: PUSH2 0x2a02 000029fd: JUMPI 000029fe: PUSH1 0x00 00002a00: DUP1 00002a01: REVERT 00002a02: JUMPDEST 00002a03: DUP9 00002a04: PUSH1 0x20 00002a06: DUP3 00002a07: PUSH1 0x05 00002a09: SHL 00002a0a: DUP6 00002a0b: ADD 00002a0c: ADD 00002a0d: GT 00002a0e: ISZERO 00002a0f: PUSH2 0x2a17 00002a12: JUMPI 00002a13: PUSH1 0x00 00002a15: DUP1 00002a16: REVERT 00002a17: JUMPDEST 00002a18: PUSH1 0x20 00002a1a: SWAP3 00002a1b: DUP4 00002a1c: ADD 00002a1d: SWAP7 00002a1e: POP 00002a1f: SWAP5 00002a20: POP 00002a21: SWAP1 00002a22: DUP7 00002a23: ADD 00002a24: CALLDATALOAD 00002a25: SWAP1 00002a26: DUP1 00002a27: DUP3 00002a28: GT 00002a29: ISZERO 00002a2a: PUSH2 0x2a32 00002a2d: JUMPI 00002a2e: PUSH1 0x00 00002a30: DUP1 00002a31: REVERT 00002a32: JUMPDEST 00002a33: DUP2 00002a34: DUP8 00002a35: ADD 00002a36: SWAP2 00002a37: POP 00002a38: DUP8 00002a39: PUSH1 0x1f 00002a3b: DUP4 00002a3c: ADD 00002a3d: SLT 00002a3e: PUSH2 0x2a46 00002a41: JUMPI 00002a42: PUSH1 0x00 00002a44: DUP1 00002a45: REVERT 00002a46: JUMPDEST 00002a47: DUP2 00002a48: CALLDATALOAD 00002a49: DUP2 00002a4a: DUP2 00002a4b: GT 00002a4c: ISZERO 00002a4d: PUSH2 0x2a55 00002a50: JUMPI 00002a51: PUSH1 0x00 00002a53: DUP1 00002a54: REVERT 00002a55: JUMPDEST 00002a56: DUP9 00002a57: PUSH1 0x20 00002a59: DUP3 00002a5a: DUP6 00002a5b: ADD 00002a5c: ADD 00002a5d: GT 00002a5e: ISZERO 00002a5f: PUSH2 0x2a67 00002a62: JUMPI 00002a63: PUSH1 0x00 00002a65: DUP1 00002a66: REVERT 00002a67: JUMPDEST 00002a68: SWAP6 00002a69: SWAP9 00002a6a: SWAP5 00002a6b: SWAP8 00002a6c: POP 00002a6d: POP 00002a6e: PUSH1 0x20 00002a70: ADD 00002a71: SWAP5 00002a72: POP 00002a73: POP 00002a74: POP 00002a75: JUMP 00002a76: JUMPDEST 00002a77: PUSH1 0x01 00002a79: PUSH1 0x01 00002a7b: PUSH1 0xa0 00002a7d: SHL 00002a7e: SUB 00002a7f: DUP2 00002a80: AND 00002a81: DUP2 00002a82: EQ 00002a83: PUSH2 0x1781 00002a86: JUMPI 00002a87: PUSH1 0x00 00002a89: DUP1 00002a8a: REVERT 00002a8b: JUMPDEST 00002a8c: PUSH1 0x00 00002a8e: DUP1 00002a8f: PUSH1 0x40 00002a91: DUP4 00002a92: DUP6 00002a93: SUB 00002a94: SLT 00002a95: ISZERO 00002a96: PUSH2 0x2a9e 00002a99: JUMPI 00002a9a: PUSH1 0x00 00002a9c: DUP1 00002a9d: REVERT 00002a9e: JUMPDEST 00002a9f: DUP3 00002aa0: CALLDATALOAD 00002aa1: PUSH2 0x2aa9 00002aa4: DUP2 00002aa5: PUSH2 0x2a76 00002aa8: JUMP 00002aa9: JUMPDEST 00002aaa: SWAP5 00002aab: PUSH1 0x20 00002aad: SWAP4 00002aae: SWAP1 00002aaf: SWAP4 00002ab0: ADD 00002ab1: CALLDATALOAD 00002ab2: SWAP4 00002ab3: POP 00002ab4: POP 00002ab5: POP 00002ab6: JUMP 00002ab7: JUMPDEST 00002ab8: PUSH1 0x00 00002aba: DUP1 00002abb: PUSH1 0x00 00002abd: PUSH1 0x60 00002abf: DUP5 00002ac0: DUP7 00002ac1: SUB 00002ac2: SLT 00002ac3: ISZERO 00002ac4: PUSH2 0x2acc 00002ac7: JUMPI 00002ac8: PUSH1 0x00 00002aca: DUP1 00002acb: REVERT 00002acc: JUMPDEST 00002acd: DUP4 00002ace: CALLDATALOAD 00002acf: PUSH2 0x2ad7 00002ad2: DUP2 00002ad3: PUSH2 0x2a76 00002ad6: JUMP 00002ad7: JUMPDEST 00002ad8: SWAP6 00002ad9: PUSH1 0x20 00002adb: DUP6 00002adc: ADD 00002add: CALLDATALOAD 00002ade: SWAP6 00002adf: POP 00002ae0: PUSH1 0x40 00002ae2: SWAP1 00002ae3: SWAP5 00002ae4: ADD 00002ae5: CALLDATALOAD 00002ae6: SWAP4 00002ae7: SWAP3 00002ae8: POP 00002ae9: POP 00002aea: POP 00002aeb: JUMP 00002aec: JUMPDEST 00002aed: PUSH1 0x00 00002aef: PUSH1 0x20 00002af1: DUP3 00002af2: DUP5 00002af3: SUB 00002af4: SLT 00002af5: ISZERO 00002af6: PUSH2 0x2afe 00002af9: JUMPI 00002afa: PUSH1 0x00 00002afc: DUP1 00002afd: REVERT 00002afe: JUMPDEST 00002aff: POP 00002b00: CALLDATALOAD 00002b01: SWAP2 00002b02: SWAP1 00002b03: POP 00002b04: JUMP 00002b05: JUMPDEST 00002b06: PUSH5 0xffffffffff 00002b0c: DUP2 00002b0d: AND 00002b0e: DUP2 00002b0f: EQ 00002b10: PUSH2 0x1781 00002b13: JUMPI 00002b14: PUSH1 0x00 00002b16: DUP1 00002b17: REVERT 00002b18: JUMPDEST 00002b19: PUSH1 0x00 00002b1b: DUP1 00002b1c: PUSH1 0x40 00002b1e: DUP4 00002b1f: DUP6 00002b20: SUB 00002b21: SLT 00002b22: ISZERO 00002b23: PUSH2 0x2b2b 00002b26: JUMPI 00002b27: PUSH1 0x00 00002b29: DUP1 00002b2a: REVERT 00002b2b: JUMPDEST 00002b2c: DUP3 00002b2d: CALLDATALOAD 00002b2e: PUSH2 0x2b36 00002b31: DUP2 00002b32: PUSH2 0x2a76 00002b35: JUMP 00002b36: JUMPDEST 00002b37: SWAP2 00002b38: POP 00002b39: PUSH1 0x20 00002b3b: DUP4 00002b3c: ADD 00002b3d: CALLDATALOAD 00002b3e: PUSH2 0x29a6 00002b41: DUP2 00002b42: PUSH2 0x2b05 00002b45: JUMP 00002b46: JUMPDEST 00002b47: PUSH1 0x00 00002b49: DUP1 00002b4a: PUSH1 0x00 00002b4c: PUSH1 0x60 00002b4e: DUP5 00002b4f: DUP7 00002b50: SUB 00002b51: SLT 00002b52: ISZERO 00002b53: PUSH2 0x2b5b 00002b56: JUMPI 00002b57: PUSH1 0x00 00002b59: DUP1 00002b5a: REVERT 00002b5b: JUMPDEST 00002b5c: POP 00002b5d: POP 00002b5e: DUP2 00002b5f: CALLDATALOAD 00002b60: SWAP4 00002b61: PUSH1 0x20 00002b63: DUP4 00002b64: ADD 00002b65: CALLDATALOAD 00002b66: SWAP4 00002b67: POP 00002b68: PUSH1 0x40 00002b6a: SWAP1 00002b6b: SWAP3 00002b6c: ADD 00002b6d: CALLDATALOAD 00002b6e: SWAP2 00002b6f: SWAP1 00002b70: POP 00002b71: JUMP 00002b72: JUMPDEST 00002b73: PUSH1 0x00 00002b75: DUP1 00002b76: PUSH1 0x00 00002b78: PUSH1 0x60 00002b7a: DUP5 00002b7b: DUP7 00002b7c: SUB 00002b7d: SLT 00002b7e: ISZERO 00002b7f: PUSH2 0x2b87 00002b82: JUMPI 00002b83: PUSH1 0x00 00002b85: DUP1 00002b86: REVERT 00002b87: JUMPDEST 00002b88: DUP4 00002b89: CALLDATALOAD 00002b8a: PUSH2 0x2b92 00002b8d: DUP2 00002b8e: PUSH2 0x2a76 00002b91: JUMP 00002b92: JUMPDEST 00002b93: SWAP3 00002b94: POP 00002b95: PUSH1 0x20 00002b97: DUP5 00002b98: ADD 00002b99: CALLDATALOAD 00002b9a: PUSH2 0x2ba2 00002b9d: DUP2 00002b9e: PUSH2 0x2a76 00002ba1: JUMP 00002ba2: JUMPDEST 00002ba3: SWAP3 00002ba4: SWAP6 00002ba5: SWAP3 00002ba6: SWAP5 00002ba7: POP 00002ba8: POP 00002ba9: POP 00002baa: PUSH1 0x40 00002bac: SWAP2 00002bad: SWAP1 00002bae: SWAP2 00002baf: ADD 00002bb0: CALLDATALOAD 00002bb1: SWAP1 00002bb2: JUMP 00002bb3: JUMPDEST 00002bb4: PUSH1 0x00 00002bb6: PUSH1 0x20 00002bb8: DUP3 00002bb9: DUP5 00002bba: SUB 00002bbb: SLT 00002bbc: ISZERO 00002bbd: PUSH2 0x2bc5 00002bc0: JUMPI 00002bc1: PUSH1 0x00 00002bc3: DUP1 00002bc4: REVERT 00002bc5: JUMPDEST 00002bc6: DUP2 00002bc7: CALLDATALOAD 00002bc8: PUSH2 0x2428 00002bcb: DUP2 00002bcc: PUSH2 0x2a76 00002bcf: JUMP 00002bd0: JUMPDEST 00002bd1: PUSH4 0x4e487b71 00002bd6: PUSH1 0xe0 00002bd8: SHL 00002bd9: PUSH1 0x00 00002bdb: MSTORE 00002bdc: PUSH1 0x11 00002bde: PUSH1 0x04 00002be0: MSTORE 00002be1: PUSH1 0x24 00002be3: PUSH1 0x00 00002be5: REVERT 00002be6: JUMPDEST 00002be7: PUSH3 0xffffff 00002beb: DUP3 00002bec: DUP2 00002bed: AND 00002bee: DUP3 00002bef: DUP3 00002bf0: AND 00002bf1: SUB 00002bf2: SWAP1 00002bf3: DUP1 00002bf4: DUP3 00002bf5: GT 00002bf6: ISZERO 00002bf7: PUSH2 0x2c02 00002bfa: JUMPI 00002bfb: PUSH2 0x2c02 00002bfe: PUSH2 0x2bd0 00002c01: JUMP 00002c02: JUMPDEST 00002c03: POP 00002c04: SWAP3 00002c05: SWAP2 00002c06: POP 00002c07: POP 00002c08: JUMP 00002c09: JUMPDEST 00002c0a: DUP1 00002c0b: DUP3 00002c0c: MUL 00002c0d: DUP2 00002c0e: ISZERO 00002c0f: DUP3 00002c10: DUP3 00002c11: DIV 00002c12: DUP5 00002c13: EQ 00002c14: OR 00002c15: PUSH2 0x072d 00002c18: JUMPI 00002c19: PUSH2 0x072d 00002c1c: PUSH2 0x2bd0 00002c1f: JUMP 00002c20: JUMPDEST 00002c21: PUSH1 0x00 00002c23: DUP3 00002c24: PUSH2 0x2c3d 00002c27: JUMPI 00002c28: PUSH4 0x4e487b71 00002c2d: PUSH1 0xe0 00002c2f: SHL 00002c30: PUSH1 0x00 00002c32: MSTORE 00002c33: PUSH1 0x12 00002c35: PUSH1 0x04 00002c37: MSTORE 00002c38: PUSH1 0x24 00002c3a: PUSH1 0x00 00002c3c: REVERT 00002c3d: JUMPDEST 00002c3e: POP 00002c3f: DIV 00002c40: SWAP1 00002c41: JUMP 00002c42: JUMPDEST 00002c43: PUSH1 0x00 00002c45: PUSH1 0x20 00002c47: DUP3 00002c48: DUP5 00002c49: SUB 00002c4a: SLT 00002c4b: ISZERO 00002c4c: PUSH2 0x2c54 00002c4f: JUMPI 00002c50: PUSH1 0x00 00002c52: DUP1 00002c53: REVERT 00002c54: JUMPDEST 00002c55: DUP2 00002c56: MLOAD 00002c57: PUSH2 0x2428 00002c5a: DUP2 00002c5b: PUSH2 0x2a76 00002c5e: JUMP 00002c5f: JUMPDEST 00002c60: PUSH1 0x01 00002c62: PUSH1 0x01 00002c64: PUSH1 0xa0 00002c66: SHL 00002c67: SUB 00002c68: DUP5 00002c69: DUP2 00002c6a: AND 00002c6b: DUP3 00002c6c: MSTORE 00002c6d: PUSH1 0x40 00002c6f: PUSH1 0x20 00002c71: DUP1 00002c72: DUP5 00002c73: ADD 00002c74: DUP3 00002c75: SWAP1 00002c76: MSTORE 00002c77: SWAP1 00002c78: DUP4 00002c79: ADD 00002c7a: DUP5 00002c7b: SWAP1 00002c7c: MSTORE 00002c7d: PUSH1 0x00 00002c7f: SWAP2 00002c80: DUP6 00002c81: SWAP2 00002c82: PUSH1 0x60 00002c84: DUP6 00002c85: ADD 00002c86: DUP5 00002c87: JUMPDEST 00002c88: DUP8 00002c89: DUP2 00002c8a: LT 00002c8b: ISZERO 00002c8c: PUSH2 0x2cae 00002c8f: JUMPI 00002c90: DUP5 00002c91: CALLDATALOAD 00002c92: PUSH2 0x2c9a 00002c95: DUP2 00002c96: PUSH2 0x2a76 00002c99: JUMP 00002c9a: JUMPDEST 00002c9b: DUP5 00002c9c: AND 00002c9d: DUP3 00002c9e: MSTORE 00002c9f: SWAP4 00002ca0: DUP3 00002ca1: ADD 00002ca2: SWAP4 00002ca3: SWAP1 00002ca4: DUP3 00002ca5: ADD 00002ca6: SWAP1 00002ca7: PUSH1 0x01 00002ca9: ADD 00002caa: PUSH2 0x2c87 00002cad: JUMP 00002cae: JUMPDEST 00002caf: POP 00002cb0: SWAP9 00002cb1: SWAP8 00002cb2: POP 00002cb3: POP 00002cb4: POP 00002cb5: POP 00002cb6: POP 00002cb7: POP 00002cb8: POP 00002cb9: POP 00002cba: JUMP 00002cbb: JUMPDEST 00002cbc: PUSH1 0x20 00002cbe: DUP2 00002cbf: MSTORE 00002cc0: DUP2 00002cc1: PUSH1 0x20 00002cc3: DUP3 00002cc4: ADD 00002cc5: MSTORE 00002cc6: DUP2 00002cc7: DUP4 00002cc8: PUSH1 0x40 00002cca: DUP4 00002ccb: ADD 00002ccc: CALLDATACOPY 00002ccd: PUSH1 0x00 00002ccf: DUP2 00002cd0: DUP4 00002cd1: ADD 00002cd2: PUSH1 0x40 00002cd4: SWAP1 00002cd5: DUP2 00002cd6: ADD 00002cd7: SWAP2 00002cd8: SWAP1 00002cd9: SWAP2 00002cda: MSTORE 00002cdb: PUSH1 0x1f 00002cdd: SWAP1 00002cde: SWAP3 00002cdf: ADD 00002ce0: PUSH1 0x1f 00002ce2: NOT 00002ce3: AND 00002ce4: ADD 00002ce5: ADD 00002ce6: SWAP2 00002ce7: SWAP1 00002ce8: POP 00002ce9: JUMP 00002cea: JUMPDEST 00002ceb: DUP2 00002cec: DUP2 00002ced: SUB 00002cee: DUP2 00002cef: DUP2 00002cf0: GT 00002cf1: ISZERO 00002cf2: PUSH2 0x072d 00002cf5: JUMPI 00002cf6: PUSH2 0x072d 00002cf9: PUSH2 0x2bd0 00002cfc: JUMP 00002cfd: JUMPDEST 00002cfe: PUSH1 0x00 00002d00: PUSH1 0x20 00002d02: DUP3 00002d03: DUP5 00002d04: SUB 00002d05: SLT 00002d06: ISZERO 00002d07: PUSH2 0x2d0f 00002d0a: JUMPI 00002d0b: PUSH1 0x00 00002d0d: DUP1 00002d0e: REVERT 00002d0f: JUMPDEST 00002d10: POP 00002d11: MLOAD 00002d12: SWAP2 00002d13: SWAP1 00002d14: POP 00002d15: JUMP 00002d16: JUMPDEST 00002d17: DUP1 00002d18: DUP3 00002d19: ADD 00002d1a: DUP1 00002d1b: DUP3 00002d1c: GT 00002d1d: ISZERO 00002d1e: PUSH2 0x072d 00002d21: JUMPI 00002d22: PUSH2 0x072d 00002d25: PUSH2 0x2bd0 00002d28: JUMP 00002d29: JUMPDEST 00002d2a: PUSH4 0x4e487b71 00002d2f: PUSH1 0xe0 00002d31: SHL 00002d32: PUSH1 0x00 00002d34: MSTORE 00002d35: PUSH1 0x01 00002d37: PUSH1 0x04 00002d39: MSTORE 00002d3a: PUSH1 0x24 00002d3c: PUSH1 0x00 00002d3e: REVERT 00002d3f: JUMPDEST 00002d40: PUSH1 0x01 00002d42: PUSH1 0x01 00002d44: PUSH1 0xa0 00002d46: SHL 00002d47: SUB 00002d48: SWAP4 00002d49: DUP5 00002d4a: AND 00002d4b: DUP2 00002d4c: MSTORE 00002d4d: SWAP2 00002d4e: SWAP1 00002d4f: SWAP3 00002d50: AND 00002d51: PUSH1 0x20 00002d53: DUP3 00002d54: ADD 00002d55: MSTORE 00002d56: PUSH1 0x40 00002d58: DUP2 00002d59: ADD 00002d5a: SWAP2 00002d5b: SWAP1 00002d5c: SWAP2 00002d5d: MSTORE 00002d5e: PUSH1 0x60 00002d60: ADD 00002d61: SWAP1 00002d62: JUMP 00002d63: JUMPDEST 00002d64: PUSH1 0x00 00002d66: PUSH1 0x20 00002d68: DUP3 00002d69: DUP5 00002d6a: SUB 00002d6b: SLT 00002d6c: ISZERO 00002d6d: PUSH2 0x2d75 00002d70: JUMPI 00002d71: PUSH1 0x00 00002d73: DUP1 00002d74: REVERT 00002d75: JUMPDEST 00002d76: DUP2 00002d77: MLOAD 00002d78: PUSH2 0x2428 00002d7b: DUP2 00002d7c: PUSH2 0x2973 00002d7f: JUMP 00002d80: JUMPDEST 00002d81: PUSH1 0x00 00002d83: PUSH1 0x20 00002d85: DUP3 00002d86: DUP5 00002d87: SUB 00002d88: SLT 00002d89: ISZERO 00002d8a: PUSH2 0x2d92 00002d8d: JUMPI 00002d8e: PUSH1 0x00 00002d90: DUP1 00002d91: REVERT 00002d92: JUMPDEST 00002d93: DUP2 00002d94: MLOAD 00002d95: PUSH2 0x2428 00002d98: DUP2 00002d99: PUSH2 0x2b05 00002d9c: JUMP 00002d9d: JUMPDEST 00002d9e: PUSH1 0x00 00002da0: PUSH1 0x20 00002da2: DUP3 00002da3: DUP5 00002da4: SUB 00002da5: SLT 00002da6: ISZERO 00002da7: PUSH2 0x2daf 00002daa: JUMPI 00002dab: PUSH1 0x00 00002dad: DUP1 00002dae: REVERT 00002daf: JUMPDEST 00002db0: DUP2 00002db1: MLOAD 00002db2: PUSH3 0xffffff 00002db6: DUP2 00002db7: AND 00002db8: DUP2 00002db9: EQ 00002dba: PUSH2 0x2428 00002dbd: JUMPI 00002dbe: PUSH1 0x00 00002dc0: DUP1 00002dc1: REVERT 00002dc2: JUMPDEST 00002dc3: PUSH3 0xffffff 00002dc7: DUP2 00002dc8: DUP2 00002dc9: AND 00002dca: DUP4 00002dcb: DUP3 00002dcc: AND 00002dcd: ADD 00002dce: SWAP1 00002dcf: DUP1 00002dd0: DUP3 00002dd1: GT 00002dd2: ISZERO 00002dd3: PUSH2 0x2c02 00002dd6: JUMPI 00002dd7: PUSH2 0x2c02 00002dda: PUSH2 0x2bd0 00002ddd: JUMP 00002dde: JUMPDEST 00002ddf: PUSH5 0xffffffffff 00002de5: DUP2 00002de6: DUP2 00002de7: AND 00002de8: DUP4 00002de9: DUP3 00002dea: AND 00002deb: ADD 00002dec: SWAP1 00002ded: DUP1 00002dee: DUP3 00002def: GT 00002df0: ISZERO 00002df1: PUSH2 0x2c02 00002df4: JUMPI 00002df5: PUSH2 0x2c02 00002df8: PUSH2 0x2bd0 00002dfb: JUMP 00002dfc: INVALID 00002dfd: SWAP5 00002dfe: DUP4 00002dff: LOG2 00002e00: PUSH11 0xd376f30b5199a79e75df3b 00002e0c: UNKNOWN(0xB0) 00002e0d: MLOAD 00002e0e: PC 00002e0f: UNKNOWN(0xC4) 00002e10: UNKNOWN(0xEE) 00002e11: ORIGIN 00002e12: LOG3 00002e13: BASEFEE 00002e14: CREATE2 00002e15: RETURNDATACOPY 00002e16: DUP4 00002e17: UNKNOWN(0x24) 00002e18: GAS 00002e19: MCOPY 00002e1a: POP 00002e1b: UNKNOWN(0xC8) 00002e1c: PUSH15 0xa26469706673582212203d0e7cc7b3 00002e2c: UNKNOWN(0x1F) 00002e2d: DIV 00002e2e: UNKNOWN(0x28) 00002e2f: SUB 00002e30: UNKNOWN(0xC8) 00002e31: SUB 00002e32: UNKNOWN(0xA5) 00002e33: UNKNOWN(0xDE) 00002e34: RETURN 00002e35: CALLDATALOAD 00002e36: UNKNOWN(0x27) 00002e37: EXTCODESIZE 00002e38: EXTCODESIZE 00002e39: BALANCE 00002e3a: UNKNOWN(0xF8) 00002e3b: UNKNOWN(0xD5) 00002e3c: UNKNOWN(0x0D) 00002e3d: UNKNOWN(0xB1) 00002e3e: SELFBALANCE 00002e3f: RETURNDATACOPY 00002e40: UNKNOWN(0x0C) 00002e41: UNKNOWN(0xC8) 00002e42: DUP14 00002e43: UNKNOWN(0xE5) 00002e44: CLZ 00002e45: UNKNOWN(0xEB) 00002e46: UNKNOWN(0xC7) 00002e47: PUSH5 0x736f6c6343 00002e4d: STOP 00002e4e: ADDMOD 00002e4f: EQ 00002e50: STOP 00002e51: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| 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": "0xc4d4803a",
"selector": "0xc4d4803a",
"calldata_variants": [
"0xc4d4803a",
"0xc4d4803a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcfb636f0",
"selector": "0xcfb636f0",
"calldata_variants": [
"0xcfb636f0",
"0xcfb636f00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd8dfeb45",
"selector": "0xd8dfeb45",
"calldata_variants": [
"0xd8dfeb45",
"0xd8dfeb450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd9caed12",
"selector": "0xd9caed12",
"calldata_variants": [
"0xd9caed12",
"0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3f480d9",
"selector": "0xf3f480d9",
"calldata_variants": [
"0xf3f480d9",
"0xf3f480d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa4d66daf",
"selector": "0xa4d66daf",
"calldata_variants": [
"0xa4d66daf",
"0xa4d66daf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8a3e31d",
"selector": "0xa8a3e31d",
"calldata_variants": [
"0xa8a3e31d",
"0xa8a3e31d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 11793,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x1e49fc9c6fdc2b4448c10ecb0158bda22165e727a99c1c52d169c0dcf9bb181c
call_targets:
0x49c431454c40ecbf848096f2753b2abc3a699a10
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x1e49fc9c6fdc2b4448c10ecb0158bda22165e727a99c1c52d169c0dcf9bb181c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x49c431454c40ecbf848096f2753b2abc3a699a10"
],
"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": "0xc4d4803a",
"selector": "0xc4d4803a",
"calldata_variants": [
"0xc4d4803a",
"0xc4d4803a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcfb636f0",
"selector": "0xcfb636f0",
"calldata_variants": [
"0xcfb636f0",
"0xcfb636f00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd8dfeb45",
"selector": "0xd8dfeb45",
"calldata_variants": [
"0xd8dfeb45",
"0xd8dfeb450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd9caed12",
"selector": "0xd9caed12",
"calldata_variants": [
"0xd9caed12",
"0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3f480d9",
"selector": "0xf3f480d9",
"calldata_variants": [
"0xf3f480d9",
"0xf3f480d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa4d66daf",
"selector": "0xa4d66daf",
"calldata_variants": [
"0xa4d66daf",
"0xa4d66daf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8a3e31d",
"selector": "0xa8a3e31d",
"calldata_variants": [
"0xa8a3e31d",
"0xa8a3e31d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3288,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3485,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3650,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 14,
"guards_detected": [
{
"pc": 11793,
"type": "tx_origin_used"
}
]
}
|
| medium | math | codex | adjust trusts user-supplied collateral amount, enabling undercollateralized minting with fee-on-transfer/non-standard collateral | 75 | no | — |
viewevidence_json{
"evidence": "adjust calls collateral.transferFrom(...) and later _mint(..., newCollateral); _mint uses _checkCollateral(collateral_, price) based on the caller-provided newCollateral rather than the post-transfer balance.",
"locations": [
"contracts/Position.sol:300",
"contracts/Position.sol:311",
"contracts/Position.sol:385",
"contracts/Position.sol:390"
],
"recommendation": "Use SafeERC20 and verify transfer success, then recompute the actual collateral balance after any transferFrom/transfer. Pass the post-transfer balance into _mint/_checkCollateral (or assert the balance delta equals the requested amount) to reject fee-on-transfer or non-standard tokens.",
"exploit_scenario": "A position owner uses a fee-on-transfer or malicious collateral token that transfers less than the requested amount (or returns false without reverting). In adjust, they supply a higher newCollateral value and the contract never re-reads the actual balance. _mint then uses the inflated newCollateral to pass _checkCollateral and mint ZCHF beyond the real collateral backing, leaving the system undercollateralized."
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xbdfced86b1b86289864e33f91670e105f9bc3df437fbd748cba73c53baca5207
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xbdfced86b1b86289864e33f91670e105f9bc3df437fbd748cba73c53baca5207",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xc4d4803a",
"selector": "0xc4d4803a",
"calldata_variants": [
"0xc4d4803a",
"0xc4d4803a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcfb636f0",
"selector": "0xcfb636f0",
"calldata_variants": [
"0xcfb636f0",
"0xcfb636f00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd8dfeb45",
"selector": "0xd8dfeb45",
"calldata_variants": [
"0xd8dfeb45",
"0xd8dfeb450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd9caed12",
"selector": "0xd9caed12",
"calldata_variants": [
"0xd9caed12",
"0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3f480d9",
"selector": "0xf3f480d9",
"calldata_variants": [
"0xf3f480d9",
"0xf3f480d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa4d66daf",
"selector": "0xa4d66daf",
"calldata_variants": [
"0xa4d66daf",
"0xa4d66daf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8a3e31d",
"selector": "0xa8a3e31d",
"calldata_variants": [
"0xa8a3e31d",
"0xa8a3e31d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 1
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x1e49fc9c6fdc2b4448c10ecb0158bda22165e727a99c1c52d169c0dcf9bb181c
call_targets:
0x49c431454c40ecbf848096f2753b2abc3a699a10
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x1e49fc9c6fdc2b4448c10ecb0158bda22165e727a99c1c52d169c0dcf9bb181c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x49c431454c40ecbf848096f2753b2abc3a699a10"
],
"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": "0xc4d4803a",
"selector": "0xc4d4803a",
"calldata_variants": [
"0xc4d4803a",
"0xc4d4803a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcfb636f0",
"selector": "0xcfb636f0",
"calldata_variants": [
"0xcfb636f0",
"0xcfb636f00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd8dfeb45",
"selector": "0xd8dfeb45",
"calldata_variants": [
"0xd8dfeb45",
"0xd8dfeb450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd9caed12",
"selector": "0xd9caed12",
"calldata_variants": [
"0xd9caed12",
"0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3f480d9",
"selector": "0xf3f480d9",
"calldata_variants": [
"0xf3f480d9",
"0xf3f480d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa4d66daf",
"selector": "0xa4d66daf",
"calldata_variants": [
"0xa4d66daf",
"0xa4d66daf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa8a3e31d",
"selector": "0xa8a3e31d",
"calldata_variants": [
"0xa8a3e31d",
"0xa8a3e31d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3288,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3485,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3650,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 16,
"guards_detected": [
{
"pc": 11793,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 16
}
|
| low | access_control | codex | onlyOwner allows calls when owner is zero, leaving uninitialized clones open pre-initialize | 65 | no | — |
viewevidence_json{
"evidence": "_requireOwner allows any sender when owner == address(0); initialize sets owner only when called later by the hub.",
"locations": [
"contracts/Ownable.sol:46",
"contracts/Position.sol:198",
"contracts/Position.sol:203"
],
"recommendation": "Make onlyOwner revert when owner == address(0) (or add an explicit initialized flag), or ensure clones are initialized atomically at deployment. Setting a non-zero owner during cloning also prevents this window.",
"exploit_scenario": "If a clone is deployed and not initialized in the same transaction, owner is still address(0). Because _requireOwner does not revert when owner is zero, any account can call onlyOwner functions (e.g., withdraw/transferOwnership) and potentially sweep tokens sent to the clone before initialize runs."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 1
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 9
}
|
| 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": 29
}
|