14d2a919-005d-46a6-a7b3-489433ee41c1
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 |
|---|---|---|---|---|
| 30410 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 93859 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 93860 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 93861 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 93862 | capability.graph | complete | 1 / 3 | 1 week ago |
| 93863 | detector.run | complete | 1 / 3 | 1 week ago |
| 93864 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1120526] OpenAI Codex v0.77.0 (research preview)
[codex:1120526] --------
[codex:1120526] workdir: /tmp/codex-multi-ft4i9zca
[codex:1120526] model: gpt-5.2-codex
[codex:1120526] provider: openai
[codex:1120526] approval: never
[codex:1120526] sandbox: read-only
[codex:1120526] reasoning effort: xhigh
[codex:1120526] reasoning summaries: auto
[codex:1120526] session id: 019b6856-6af7-7162-b4c3-990bd670495f
[codex:1120526] --------
[codex:1120526] user
[codex:1120526] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1120526] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1120526] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1120526]
[codex:1120526] Scope rules:
[codex:1120526] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1120526] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1120526]
[codex:1120526] Output MUST be valid JSON matching the provided schema.
[codex:1120526] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1120526] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1120526]
[codex:1120526] Output constraints (IMPORTANT):
[codex:1120526] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1120526] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1120526] mcp startup: no servers
[codex:1120526]
[codex:1120526] thinking
[codex:1120526] **Preparing to review audit instructions**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc ls in /tmp/codex-multi-ft4i9zca succeeded in 6ms:
[codex:1120526] AUDIT_BUNDLE.txt
[codex:1120526] codex-output-schema.json
[codex:1120526] contracts
[codex:1120526]
[codex:1120526] thinking
[codex:1120526] **Reading AUDIT_BUNDLE file**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1120526]
[codex:1120526] ================================================================================
[codex:1120526] FILE: contracts/@openzeppelin/contracts/access/IAccessControl.sol
[codex:1120526] ================================================================================
[codex:1120526] // SPDX-License-Identifier: MIT
[codex:1120526] // OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)
[codex:1120526]
[codex:1120526] pragma solidity ^0.8.20;
[codex:1120526]
[codex:1120526] /**
[codex:1120526] * @dev External interface of AccessControl declared to support ERC165 detection.
[codex:1120526] */
[codex:1120526] interface IAccessControl {
[codex:1120526] /**
[codex:1120526] * @dev The `account` is missing a role.
[codex:1120526] */
[codex:1120526] error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
[codex:1120526]
[codex:1120526] /**
[codex:1120526]
[codex:1120526] thinking
[codex:1120526] **Identifying first-party contracts**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'rg -n "FILE: contracts/contracts" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ft4i9zca succeeded in 6ms:
[codex:1120526] 767:FILE: contracts/contracts/ExtendedAccessControlUpgradeable.sol
[codex:1120526] 880:FILE: contracts/contracts/Limiter.sol
[codex:1120526] 954:FILE: contracts/contracts/LinkedList.sol
[codex:1120526] 1031:FILE: contracts/contracts/Wallet.sol
[codex:1120526]
[codex:1120526] thinking
[codex:1120526] **Extracting contract code for review**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc "sed -n '740,930p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526] /**
[codex:1120526] * @dev Implementation of the {IERC165} interface.
[codex:1120526] *
[codex:1120526] * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
[codex:1120526] * for the additional interface id that will be supported. For example:
[codex:1120526] *
[codex:1120526] * ```solidity
[codex:1120526] * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
[codex:1120526] * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
[codex:1120526] * }
[codex:1120526] * ```
[codex:1120526] */
[codex:1120526] abstract contract ERC165Upgradeable is Initializable, IERC165 {
[codex:1120526] function __ERC165_init() internal onlyInitializing {
[codex:1120526] }
[codex:1120526]
[codex:1120526] function __ERC165_init_unchained() internal onlyInitializing {
[codex:1120526] }
[codex:1120526] /**
[codex:1120526] * @dev See {IERC165-supportsInterface}.
[codex:1120526] exec
[codex:1120526] /bin/bash -lc "sed -n '930,1125p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526] if (self.operations[key].timestamp > block.timestamp - 24 hours) {
[codex:1120526] break;
[codex:1120526] }
[codex:1120526] delete self.operations[key];
[codex:1120526] key = self.keys.remove(key);
[codex:1120526] }
[codex:1120526] self.operations[self.keys.generate()] = Operation({amount: amount, timestamp: block.timestamp});
[codex:1120526] }
[codex:1120526]
[codex:1120526] function addOperation(Limiter storage self, uint256 amount) internal returns (bool) {
[codex:1120526] _addOperation(self, int256(amount));
[codex:1120526] return self.remainingLimit() >= 0;
[codex:1120526] }
[codex:1120526]
[codex:1120526] function removeOperations(Limiter storage self) internal {
[codex:1120526] uint128 key = self.keys.first;
[codex:1120526] while (key != 0) {
[codex:1120526] delete self.operations[key];
[codex:1120526] key = self.keys.remove(key);
[codex:1120526] }
[codex:1120526]
[codex:1120526]
[codex:1120526] thinking
[codex:1120526] **Analyzing upgradeable initializer misuse and transfer risks**
[codex:1120526]
[codex:1120526] I'm carefully inspecting how the contract misuses OpenZeppelin’s initializer pattern—specifically nested initializers marked `initializer` instead of `onlyInitializing`—which would cause initialization to revert and potentially lock the contract unusable. This isn’t a direct exploit but a serious upgradeability flaw causing DoS by making the contract permanently uninitialized. I’m also evaluating token transfer calls without return value checks, which could let role-holders consume allowances without actual transfers if tokens return false instead of reverting. There are subtle reentrancy considerations around token transfers and limit tracking, but the contract mostly applies checks-effects-interactions. Overall, I’m focusing on how these design choices impact security and operability.
[codex:1120526] thinking
[codex:1120526] **Inspecting linked list and initializer behavior**
[codex:1120526]
[codex:1120526] I'm examining the linked list logic for operation removal to confirm it correctly prunes old entries ordered by timestamp within a 24-hour window, considering minor timestamp manipulation is negligible. I’m also revisiting the initializer pattern, reinforcing that multiple initializers marked with `initializer` instead of `onlyInitializing` create bugs and revert during initialization. To be sure, I’m planning to verify the exact initializer modifier logic in the bundled Initializable.sol code.
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'rg -n "modifier initializer" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-ft4i9zca succeeded in 6ms:
[codex:1120526] 565: modifier initializer() {
[codex:1120526] exec
[codex:1120526] /bin/bash -lc "sed -n '540,640p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526] /**
[codex:1120526] * @dev The contract is already initialized.
[codex:1120526] */
[codex:1120526] error InvalidInitialization();
[codex:1120526]
[codex:1120526] /**
[codex:1120526] * @dev The contract is not initializing.
[codex:1120526] */
[codex:1120526] error NotInitializing();
[codex:1120526]
[codex:1120526] /**
[codex:1120526] * @dev Triggered when the contract has been initialized or reinitialized.
[codex:1120526] */
[codex:1120526] event Initialized(uint64 version);
[codex:1120526]
[codex:1120526] /**
[codex:1120526] * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,
[codex:1120526] * `onlyInitializing` functions can be used to initialize parent contracts.
[codex:1120526] *
[codex:1120526] * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any
[codex:1120526]
[codex:1120526]
[codex:1120526] thinking
[codex:1120526] **Analyzing upgradeability and token transfer issues**
[codex:1120526]
[codex:1120526] I'm reviewing the ExtendedAccessControl initialization bug that prevents proper proxy setup, causing permanent uninitialized contracts—it's a serious deployment flaw but not directly exploitable. I'm also checking token transfer limits, noting a subtle vulnerability where very large amounts can bypass limits due to int256 conversion and a potential denial-of-service issue from unchecked IERC20 transfer return values allowing malicious tokens to exhaust limits without actual transfers. Additionally, I see some minor concerns about non-upgradeable ReentrancyGuard usage, potential overflows in timestamp arithmetic on fresh chains, and role management nuances; overall, these paint a complex picture of upgradeability and access control problems worth reporting.
[codex:1120526] thinking
[codex:1120526] **Inspecting limiter interactions and initializer misuse**
[codex:1120526]
[codex:1120526] I'm looking closely at how global and per-beneficiary limiters interact, noting that limits default to zero and revert transfers unless properly set. The admin's ability to call temporary limit adjustments without caps seems intentional but worth mentioning. The nested initializer misuse in ExtendedAccessControlUpgradeable remains a critical issue because it causes initialization to revert, effectively bricking deployment. I'm also verifying nuances around role granting, reentrancy considerations during transfers, unchecked token transfer return values that could cause accounting issues, and whether the limiter logic safely handles edge cases like timestamp subtraction and integer conversions. Overall, these confirm the major initializer bug plus several secondary concerns about state and limit management worth documenting with file references.
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'nl -ba contracts/contracts/ExtendedAccessControlUpgradeable.sol' in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526] 1 // SPDX-License-Identifier: MIT
[codex:1120526] 2 pragma solidity ^0.8.20;
[codex:1120526] 3
[codex:1120526] 4 import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
[codex:1120526] 5
[codex:1120526] 6 contract ExtendedAccessControlUpgradeable is AccessControlUpgradeable {
[codex:1120526] 7 /// @custom:storage-location erc7201:fortesecurities.ExtendedAccessControlUpgradeable
[codex:1120526] 8 struct ExtendedAccessControlUpgradeableStorage {
[codex:1120526] 9 bytes32[] roles;
[codex:1120526] 10 }
[codex:1120526] 11
[codex:1120526] 12 // keccak256(abi.encode(uint256(keccak256("fortesecurities.ExtendedAccessControlUpgradeable")) - 1)) & ~bytes32(uint256(0xff))
[codex:1120526] 13 bytes32 private constant ExtendedAccessControlUpgradeableStorageLocation =
[codex:1120526] 14 0x19b29a04048f51eb9591acef31c8d25631a0f178287c237da958990d82c90400;
[codex:1120526] 15
[codex:1120526] 16 function _getExtendedAccessControlUpgradeableStorage()
[codex:1120526] 17 private
[codex:1120526] 18 pure
[codex:1120526] 19 returns (ExtendedAccessControlUpgradeableStorage storage $)
[codex:1120526] 20 {
[codex:1120526]
[codex:1120526] thinking
[codex:1120526] **Tracking line numbers for contracts**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'nl -ba contracts/contracts/Wallet.sol' in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526] 1 // SPDX-License-Identifier: MIT
[codex:1120526] 2 pragma solidity ^0.8.20;
[codex:1120526] 3
[codex:1120526] 4 import {Limiter, LimiterLibrary, Operation} from "./Limiter.sol";
[codex:1120526] 5 import {ExtendedAccessControlUpgradeable} from "./ExtendedAccessControlUpgradeable.sol";
[codex:1120526] 6 import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:1120526] 7
[codex:1120526] 8 using LimiterLibrary for Limiter;
[codex:1120526] 9
[codex:1120526] 10 struct BeneficiaryLimiter {
[codex:1120526] 11 Limiter limiter;
[codex:1120526] 12 mapping(address => Limiter) beneficiaryLimiters;
[codex:1120526] 13 }
[codex:1120526] 14
[codex:1120526] 15 interface IERC20 {
[codex:1120526] 16 function transfer(address beneficiary, uint256 amount) external;
[codex:1120526] 17 }
[codex:1120526] 18
[codex:1120526] 19 contract Wallet is ExtendedAccessControlUpgradeable, ReentrancyGuard {
[codex:1120526] 20 error BeneficiaryLimitExceeded();
[codex:1120526]
[codex:1120526] thinking
[codex:1120526] **Preparing audit findings JSON**
[codex:1120526]
[codex:1120526] I’m carefully organizing two main findings—a critical nested initializer bug causing proxy lockout and a low-severity unchecked ERC20 transfer return value—into a validated JSON output, including severity, categories, detailed exploit scenarios, recommendations, evidence, and exact code locations. I’m making sure to produce a clear summary string, keep all string values correctly escaped, and verify no other exploitable issues should be included.
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-ft4i9zca succeeded in 6ms:
[codex:1120526] {"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:1120526]
[codex:1120526] thinking
[codex:1120526] **Preparing final JSON report with findings**
[codex:1120526]
[codex:1120526] I’m putting together a JSON summary that strictly includes required fields and disallows extra keys. I’m making sure each finding’s locations are strings, evidence is a single line, and the summary is concise and clear. I’ll carefully escape as needed and keep the JSON clean and simple for final delivery.
[codex:1120526] codex
[codex:1120526] {"no_findings":false,"summary":"Found 2 issues: a broken initializer chain that makes proxy initialization revert, and unchecked ERC20 transfer return values that can desync limits/events from actual token transfers.","findings":[{"severity":"high","category":"upgradeability","title":"Nested initializer modifiers brick initialization","exploit_scenario":"Calling `Wallet.initialize` invokes `__ExtendedAccessControl_init`, which is marked `initializer` and internally calls `__ExtendedAccessControl_init_unchained`, also marked `initializer`. OpenZeppelin's `initializer` modifier forbids nested initializer calls, so the second call reverts, leaving the proxy permanently uninitialized and unusable (no roles can be granted, transfers and admin actions are locked).","recommendation":"Change base initializers to `onlyInitializing` (and keep a single `initializer` entry point), mirroring OpenZeppelin's pattern; alternatively remove the nested initializer and call `_addRole` directly from the top-level initializer.","evidence":"`__ExtendedAccessControl_init` and `__ExtendedAccessControl_init_unchained` both use the `initializer` modifier, and `Wallet.initialize` calls `__ExtendedAccessControl_init`.","locations":["contracts/contracts/ExtendedAccessControlUpgradeable.sol:26","contracts/contracts/ExtendedAccessControlUpgradeable.sol:30","contracts/contracts/Wallet.sol:124"]},{"severity":"low","category":"other","title":"ERC20 transfer return value ignored","exploit_scenario":"For non-compliant or malicious ERC20s that return `false` instead of reverting, `Wallet.transfer` (token version) still emits a transfer event and consumes limit capacity even though no tokens moved, enabling limit exhaustion/false accounting.","recommendation":"Use an ERC20 interface that returns `bool` and wrap transfers with `SafeERC20.safeTransfer` (or explicitly require the return value to be true).","evidence":"The IERC20 interface omits the `bool` return value and the transfer call result is not checked.","locations":["contracts/contracts/Wallet.sol:15","contracts/contracts/Wallet.sol:401"]}]}
[codex:1120526] tokens used
[codex:1120526] 48,665
[codex:1120526] {"no_findings":false,"summary":"Found 2 issues: a broken initializer chain that makes proxy initialization revert, and unchecked ERC20 transfer return values that can desync limits/events from actual token transfers.","findings":[{"severity":"high","category":"upgradeability","title":"Nested initializer modifiers brick initialization","exploit_scenario":"Calling `Wallet.initialize` invokes `__ExtendedAccessControl_init`, which is marked `initializer` and internally calls `__ExtendedAccessControl_init_unchained`, also marked `initializer`. OpenZeppelin's `initializer` modifier forbids nested initializer calls, so the second call reverts, leaving the proxy permanently uninitialized and unusable (no roles can be granted, transfers and admin actions are locked).","recommendation":"Change base initializers to `onlyInitializing` (and keep a single `initializer` entry point), mirroring OpenZeppelin's pattern; alternatively remove the nested initializer and call `_addRole` directly from the top-level initializer.","evidence":"`__ExtendedAccessControl_init` and `__ExtendedAccessControl_init_unchained` both use the `initializer` modifier, and `Wallet.initialize` calls `__ExtendedAccessControl_init`.","locations":["contracts/contracts/ExtendedAccessControlUpgradeable.sol:26","contracts/contracts/ExtendedAccessControlUpgradeable.sol:30","contracts/contracts/Wallet.sol:124"]},{"severity":"low","category":"other","title":"ERC20 transfer return value ignored","exploit_scenario":"For non-compliant or malicious ERC20s that return `false` instead of reverting, `Wallet.transfer` (token version) still emits a transfer event and consumes limit capacity even though no tokens moved, enabling limit exhaustion/false accounting.","recommendation":"Use an ERC20 interface that returns `bool` and wrap transfers with `SafeERC20.safeTransfer` (or explicitly require the return value to be true).","evidence":"The IERC20 interface omits the `bool` return value and the transfer call result is not checked.","locations":["contracts/contracts/Wallet.sol:15","contracts/contracts/Wallet.sol:401"]}]}
{
"codex": {
"ran_at": "2025-12-29T04:25:58.110171+00:00",
"returncode": 0
},
"summary": "Found 2 issues: a broken initializer chain that makes proxy initialization revert, and unchecked ERC20 transfer return values that can desync limits/events from actual token transfers.",
"raw_final": {
"summary": "Found 2 issues: a broken initializer chain that makes proxy initialization revert, and unchecked ERC20 transfer return values that can desync limits/events from actual token transfers.",
"findings": [
{
"title": "Nested initializer modifiers brick initialization",
"category": "upgradeability",
"evidence": "`__ExtendedAccessControl_init` and `__ExtendedAccessControl_init_unchained` both use the `initializer` modifier, and `Wallet.initialize` calls `__ExtendedAccessControl_init`.",
"severity": "high",
"locations": [
"contracts/contracts/ExtendedAccessControlUpgradeable.sol:26",
"contracts/contracts/ExtendedAccessControlUpgradeable.sol:30",
"contracts/contracts/Wallet.sol:124"
],
"recommendation": "Change base initializers to `onlyInitializing` (and keep a single `initializer` entry point), mirroring OpenZeppelin's pattern; alternatively remove the nested initializer and call `_addRole` directly from the top-level initializer.",
"exploit_scenario": "Calling `Wallet.initialize` invokes `__ExtendedAccessControl_init`, which is marked `initializer` and internally calls `__ExtendedAccessControl_init_unchained`, also marked `initializer`. OpenZeppelin's `initializer` modifier forbids nested initializer calls, so the second call reverts, leaving the proxy permanently uninitialized and unusable (no roles can be granted, transfers and admin actions are locked)."
},
{
"title": "ERC20 transfer return value ignored",
"category": "other",
"evidence": "The IERC20 interface omits the `bool` return value and the transfer call result is not checked.",
"severity": "low",
"locations": [
"contracts/contracts/Wallet.sol:15",
"contracts/contracts/Wallet.sol:401"
],
"recommendation": "Use an ERC20 interface that returns `bool` and wrap transfers with `SafeERC20.safeTransfer` (or explicitly require the return value to be true).",
"exploit_scenario": "For non-compliant or malicious ERC20s that return `false` instead of reverting, `Wallet.transfer` (token version) still emits a transfer event and consumes limit capacity even though no tokens moved, enabling limit exhaustion/false accounting."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x027a 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x7f73e314 00000018: GT 00000019: PUSH2 0x014b 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xb295a00e 00000023: GT 00000024: PUSH2 0x00c6 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xd547741f 0000002e: GT 0000002f: PUSH2 0x007c 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xe082e718 00000039: GT 0000003a: PUSH2 0x0062 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xe082e718 00000044: EQ 00000045: PUSH2 0x07ac 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xe33d547e 0000004f: EQ 00000050: PUSH2 0x07cb 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xf3816388 0000005a: EQ 0000005b: PUSH2 0x0814 0000005e: JUMPI 0000005f: PUSH0 00000060: PUSH0 00000061: REVERT 00000062: JUMPDEST 00000063: DUP1 00000064: PUSH4 0xd547741f 00000069: EQ 0000006a: PUSH2 0x076e 0000006d: JUMPI 0000006e: DUP1 0000006f: PUSH4 0xdbba0f01 00000074: EQ 00000075: PUSH2 0x078d 00000078: JUMPI 00000079: PUSH0 0000007a: PUSH0 0000007b: REVERT 0000007c: JUMPDEST 0000007d: DUP1 0000007e: PUSH4 0xc117c3af 00000083: GT 00000084: PUSH2 0x00ac 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0xc117c3af 0000008e: EQ 0000008f: PUSH2 0x0711 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xc4d66de8 00000099: EQ 0000009a: PUSH2 0x0730 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0xc724bfe6 000000a4: EQ 000000a5: PUSH2 0x074f 000000a8: JUMPI 000000a9: PUSH0 000000aa: PUSH0 000000ab: REVERT 000000ac: JUMPDEST 000000ad: DUP1 000000ae: PUSH4 0xb295a00e 000000b3: EQ 000000b4: PUSH2 0x06de 000000b7: JUMPI 000000b8: DUP1 000000b9: PUSH4 0xba611923 000000be: EQ 000000bf: PUSH2 0x06f2 000000c2: JUMPI 000000c3: PUSH0 000000c4: PUSH0 000000c5: REVERT 000000c6: JUMPDEST 000000c7: DUP1 000000c8: PUSH4 0x9c697750 000000cd: GT 000000ce: PUSH2 0x011b 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0xa340d7cc 000000d8: GT 000000d9: PUSH2 0x0101 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0xa340d7cc 000000e3: EQ 000000e4: PUSH2 0x0681 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0xa9059cbb 000000ee: EQ 000000ef: PUSH2 0x06a0 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0xabc3c4e9 000000f9: EQ 000000fa: PUSH2 0x06bf 000000fd: JUMPI 000000fe: PUSH0 000000ff: PUSH0 00000100: REVERT 00000101: JUMPDEST 00000102: DUP1 00000103: PUSH4 0x9c697750 00000108: EQ 00000109: PUSH2 0x064f 0000010c: JUMPI 0000010d: DUP1 0000010e: PUSH4 0xa217fddf 00000113: EQ 00000114: PUSH2 0x066e 00000117: JUMPI 00000118: PUSH0 00000119: PUSH0 0000011a: REVERT 0000011b: JUMPDEST 0000011c: DUP1 0000011d: PUSH4 0x7f73e314 00000122: EQ 00000123: PUSH2 0x059a 00000126: JUMPI 00000127: DUP1 00000128: PUSH4 0x8fbfc312 0000012d: EQ 0000012e: PUSH2 0x05ae 00000131: JUMPI 00000132: DUP1 00000133: PUSH4 0x919dee39 00000138: EQ 00000139: PUSH2 0x05cd 0000013c: JUMPI 0000013d: DUP1 0000013e: PUSH4 0x91d14854 00000143: EQ 00000144: PUSH2 0x05ec 00000147: JUMPI 00000148: PUSH0 00000149: PUSH0 0000014a: REVERT 0000014b: JUMPDEST 0000014c: DUP1 0000014d: PUSH4 0x3133bc69 00000152: GT 00000153: PUSH2 0x01f5 00000156: JUMPI 00000157: DUP1 00000158: PUSH4 0x6ea3ab64 0000015d: GT 0000015e: PUSH2 0x01ab 00000161: JUMPI 00000162: DUP1 00000163: PUSH4 0x74201c7a 00000168: GT 00000169: PUSH2 0x0191 0000016c: JUMPI 0000016d: DUP1 0000016e: PUSH4 0x74201c7a 00000173: EQ 00000174: PUSH2 0x053d 00000177: JUMPI 00000178: DUP1 00000179: PUSH4 0x74538d52 0000017e: EQ 0000017f: PUSH2 0x055c 00000182: JUMPI 00000183: DUP1 00000184: PUSH4 0x7ec1d16a 00000189: EQ 0000018a: PUSH2 0x057b 0000018d: JUMPI 0000018e: PUSH0 0000018f: PUSH0 00000190: REVERT 00000191: JUMPDEST 00000192: DUP1 00000193: PUSH4 0x6ea3ab64 00000198: EQ 00000199: PUSH2 0x04ff 0000019c: JUMPI 0000019d: DUP1 0000019e: PUSH4 0x7288b312 000001a3: EQ 000001a4: PUSH2 0x051e 000001a7: JUMPI 000001a8: PUSH0 000001a9: PUSH0 000001aa: REVERT 000001ab: JUMPDEST 000001ac: DUP1 000001ad: PUSH4 0x392f5f64 000001b2: GT 000001b3: PUSH2 0x01db 000001b6: JUMPI 000001b7: DUP1 000001b8: PUSH4 0x392f5f64 000001bd: EQ 000001be: PUSH2 0x04a0 000001c1: JUMPI 000001c2: DUP1 000001c3: PUSH4 0x4111c1f7 000001c8: EQ 000001c9: PUSH2 0x04c1 000001cc: JUMPI 000001cd: DUP1 000001ce: PUSH4 0x59633a1c 000001d3: EQ 000001d4: PUSH2 0x04e0 000001d7: JUMPI 000001d8: PUSH0 000001d9: PUSH0 000001da: REVERT 000001db: JUMPDEST 000001dc: DUP1 000001dd: PUSH4 0x3133bc69 000001e2: EQ 000001e3: PUSH2 0x0462 000001e6: JUMPI 000001e7: DUP1 000001e8: PUSH4 0x36568abe 000001ed: EQ 000001ee: PUSH2 0x0481 000001f1: JUMPI 000001f2: PUSH0 000001f3: PUSH0 000001f4: REVERT 000001f5: JUMPDEST 000001f6: DUP1 000001f7: PUSH4 0x206b60f9 000001fc: GT 000001fd: PUSH2 0x024a 00000200: JUMPI 00000201: DUP1 00000202: PUSH4 0x25ce544c 00000207: GT 00000208: PUSH2 0x0230 0000020b: JUMPI 0000020c: DUP1 0000020d: PUSH4 0x25ce544c 00000212: EQ 00000213: PUSH2 0x0405 00000216: JUMPI 00000217: DUP1 00000218: PUSH4 0x27ea6f2b 0000021d: EQ 0000021e: PUSH2 0x0424 00000221: JUMPI 00000222: DUP1 00000223: PUSH4 0x2f2ff15d 00000228: EQ 00000229: PUSH2 0x0443 0000022c: JUMPI 0000022d: PUSH0 0000022e: PUSH0 0000022f: REVERT 00000230: JUMPDEST 00000231: DUP1 00000232: PUSH4 0x206b60f9 00000237: EQ 00000238: PUSH2 0x0385 0000023b: JUMPI 0000023c: DUP1 0000023d: PUSH4 0x248a9ca3 00000242: EQ 00000243: PUSH2 0x03b8 00000246: JUMPI 00000247: PUSH0 00000248: PUSH0 00000249: REVERT 0000024a: JUMPDEST 0000024b: DUP1 0000024c: PUSH4 0x0146dfef 00000251: EQ 00000252: PUSH2 0x02ba 00000255: JUMPI 00000256: DUP1 00000257: PUSH4 0x01ffc9a7 0000025c: EQ 0000025d: PUSH2 0x0301 00000260: JUMPI 00000261: DUP1 00000262: PUSH4 0x1a767d16 00000267: EQ 00000268: PUSH2 0x0330 0000026b: JUMPI 0000026c: DUP1 0000026d: PUSH4 0x1ce28e72 00000272: EQ 00000273: PUSH2 0x0351 00000276: JUMPI 00000277: PUSH0 00000278: PUSH0 00000279: REVERT 0000027a: JUMPDEST 0000027b: CALLDATASIZE 0000027c: PUSH2 0x02b6 0000027f: JUMPI 00000280: PUSH1 0x40 00000282: MLOAD 00000283: CALLVALUE 00000284: DUP2 00000285: MSTORE 00000286: CALLER 00000287: SWAP1 00000288: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c 000002a9: SWAP1 000002aa: PUSH1 0x20 000002ac: ADD 000002ad: PUSH1 0x40 000002af: MLOAD 000002b0: DUP1 000002b1: SWAP2 000002b2: SUB 000002b3: SWAP1 000002b4: LOG2 000002b5: STOP 000002b6: JUMPDEST 000002b7: PUSH0 000002b8: PUSH0 000002b9: REVERT 000002ba: JUMPDEST 000002bb: CALLVALUE 000002bc: DUP1 000002bd: ISZERO 000002be: PUSH2 0x02c5 000002c1: JUMPI 000002c2: PUSH0 000002c3: PUSH0 000002c4: REVERT 000002c5: JUMPDEST 000002c6: POP 000002c7: PUSH2 0x02ee 000002ca: PUSH2 0x02d4 000002cd: CALLDATASIZE 000002ce: PUSH1 0x04 000002d0: PUSH2 0x1fdc 000002d3: JUMP 000002d4: JUMPDEST 000002d5: PUSH1 0x01 000002d7: PUSH1 0x01 000002d9: PUSH1 0xa0 000002db: SHL 000002dc: SUB 000002dd: AND 000002de: PUSH0 000002df: SWAP1 000002e0: DUP2 000002e1: MSTORE 000002e2: PUSH1 0x06 000002e4: PUSH1 0x20 000002e6: MSTORE 000002e7: PUSH1 0x40 000002e9: SWAP1 000002ea: KECCAK256 000002eb: SLOAD 000002ec: SWAP1 000002ed: JUMP 000002ee: JUMPDEST 000002ef: PUSH1 0x40 000002f1: MLOAD 000002f2: SWAP1 000002f3: DUP2 000002f4: MSTORE 000002f5: PUSH1 0x20 000002f7: ADD 000002f8: JUMPDEST 000002f9: PUSH1 0x40 000002fb: MLOAD 000002fc: DUP1 000002fd: SWAP2 000002fe: SUB 000002ff: SWAP1 00000300: RETURN 00000301: JUMPDEST 00000302: CALLVALUE 00000303: DUP1 00000304: ISZERO 00000305: PUSH2 0x030c 00000308: JUMPI 00000309: PUSH0 0000030a: PUSH0 0000030b: REVERT 0000030c: JUMPDEST 0000030d: POP 0000030e: PUSH2 0x0320 00000311: PUSH2 0x031b 00000314: CALLDATASIZE 00000315: PUSH1 0x04 00000317: PUSH2 0x1ff7 0000031a: JUMP 0000031b: JUMPDEST 0000031c: PUSH2 0x0833 0000031f: JUMP 00000320: JUMPDEST 00000321: PUSH1 0x40 00000323: MLOAD 00000324: SWAP1 00000325: ISZERO 00000326: ISZERO 00000327: DUP2 00000328: MSTORE 00000329: PUSH1 0x20 0000032b: ADD 0000032c: PUSH2 0x02f8 0000032f: JUMP 00000330: JUMPDEST 00000331: CALLVALUE 00000332: DUP1 00000333: ISZERO 00000334: PUSH2 0x033b 00000337: JUMPI 00000338: PUSH0 00000339: PUSH0 0000033a: REVERT 0000033b: JUMPDEST 0000033c: POP 0000033d: PUSH2 0x034f 00000340: PUSH2 0x034a 00000343: CALLDATASIZE 00000344: PUSH1 0x04 00000346: PUSH2 0x2036 00000349: JUMP 0000034a: JUMPDEST 0000034b: PUSH2 0x08cb 0000034e: JUMP 0000034f: JUMPDEST 00000350: STOP 00000351: JUMPDEST 00000352: CALLVALUE 00000353: DUP1 00000354: ISZERO 00000355: PUSH2 0x035c 00000358: JUMPI 00000359: PUSH0 0000035a: PUSH0 0000035b: REVERT 0000035c: JUMPDEST 0000035d: POP 0000035e: PUSH2 0x02ee 00000361: PUSH2 0x036b 00000364: CALLDATASIZE 00000365: PUSH1 0x04 00000367: PUSH2 0x1fdc 0000036a: JUMP 0000036b: JUMPDEST 0000036c: PUSH1 0x01 0000036e: PUSH1 0x01 00000370: PUSH1 0xa0 00000372: SHL 00000373: SUB 00000374: AND 00000375: PUSH0 00000376: SWAP1 00000377: DUP2 00000378: MSTORE 00000379: PUSH1 0x07 0000037b: PUSH1 0x20 0000037d: MSTORE 0000037e: PUSH1 0x40 00000380: SWAP1 00000381: KECCAK256 00000382: SLOAD 00000383: SWAP1 00000384: JUMP 00000385: JUMPDEST 00000386: CALLVALUE 00000387: DUP1 00000388: ISZERO 00000389: PUSH2 0x0390 0000038c: JUMPI 0000038d: PUSH0 0000038e: PUSH0 0000038f: REVERT 00000390: JUMPDEST 00000391: POP 00000392: PUSH2 0x02ee 00000395: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c 000003b6: DUP2 000003b7: JUMP 000003b8: JUMPDEST 000003b9: CALLVALUE 000003ba: DUP1 000003bb: ISZERO 000003bc: PUSH2 0x03c3 000003bf: JUMPI 000003c0: PUSH0 000003c1: PUSH0 000003c2: REVERT 000003c3: JUMPDEST 000003c4: POP 000003c5: PUSH2 0x02ee 000003c8: PUSH2 0x03d2 000003cb: CALLDATASIZE 000003cc: PUSH1 0x04 000003ce: PUSH2 0x206d 000003d1: JUMP 000003d2: JUMPDEST 000003d3: PUSH0 000003d4: SWAP1 000003d5: DUP2 000003d6: MSTORE 000003d7: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800 000003f8: PUSH1 0x20 000003fa: MSTORE 000003fb: PUSH1 0x40 000003fd: SWAP1 000003fe: KECCAK256 000003ff: PUSH1 0x01 00000401: ADD 00000402: SLOAD 00000403: SWAP1 00000404: JUMP 00000405: JUMPDEST 00000406: CALLVALUE 00000407: DUP1 00000408: ISZERO 00000409: PUSH2 0x0410 0000040c: JUMPI 0000040d: PUSH0 0000040e: PUSH0 0000040f: REVERT 00000410: JUMPDEST 00000411: POP 00000412: PUSH2 0x034f 00000415: PUSH2 0x041f 00000418: CALLDATASIZE 00000419: PUSH1 0x04 0000041b: PUSH2 0x2084 0000041e: JUMP 0000041f: JUMPDEST 00000420: PUSH2 0x0982 00000423: JUMP 00000424: JUMPDEST 00000425: CALLVALUE 00000426: DUP1 00000427: ISZERO 00000428: PUSH2 0x042f 0000042b: JUMPI 0000042c: PUSH0 0000042d: PUSH0 0000042e: REVERT 0000042f: JUMPDEST 00000430: POP 00000431: PUSH2 0x034f 00000434: PUSH2 0x043e 00000437: CALLDATASIZE 00000438: PUSH1 0x04 0000043a: PUSH2 0x206d 0000043d: JUMP 0000043e: JUMPDEST 0000043f: PUSH2 0x0a11 00000442: JUMP 00000443: JUMPDEST 00000444: CALLVALUE 00000445: DUP1 00000446: ISZERO 00000447: PUSH2 0x044e 0000044a: JUMPI 0000044b: PUSH0 0000044c: PUSH0 0000044d: REVERT 0000044e: JUMPDEST 0000044f: POP 00000450: PUSH2 0x034f 00000453: PUSH2 0x045d 00000456: CALLDATASIZE 00000457: PUSH1 0x04 00000459: PUSH2 0x20c2 0000045c: JUMP 0000045d: JUMPDEST 0000045e: PUSH2 0x0a58 00000461: JUMP 00000462: JUMPDEST 00000463: CALLVALUE 00000464: DUP1 00000465: ISZERO 00000466: PUSH2 0x046d 00000469: JUMPI 0000046a: PUSH0 0000046b: PUSH0 0000046c: REVERT 0000046d: JUMPDEST 0000046e: POP 0000046f: PUSH2 0x034f 00000472: PUSH2 0x047c 00000475: CALLDATASIZE 00000476: PUSH1 0x04 00000478: PUSH2 0x20c2 0000047b: JUMP 0000047c: JUMPDEST 0000047d: PUSH2 0x0aa1 00000480: JUMP 00000481: JUMPDEST 00000482: CALLVALUE 00000483: DUP1 00000484: ISZERO 00000485: PUSH2 0x048c 00000488: JUMPI 00000489: PUSH0 0000048a: PUSH0 0000048b: REVERT 0000048c: JUMPDEST 0000048d: POP 0000048e: PUSH2 0x034f 00000491: PUSH2 0x049b 00000494: CALLDATASIZE 00000495: PUSH1 0x04 00000497: PUSH2 0x20c2 0000049a: JUMP 0000049b: JUMPDEST 0000049c: PUSH2 0x0b04 0000049f: JUMP 000004a0: JUMPDEST 000004a1: CALLVALUE 000004a2: DUP1 000004a3: ISZERO 000004a4: PUSH2 0x04ab 000004a7: JUMPI 000004a8: PUSH0 000004a9: PUSH0 000004aa: REVERT 000004ab: JUMPDEST 000004ac: POP 000004ad: PUSH2 0x04b4 000004b0: PUSH2 0x0b55 000004b3: JUMP 000004b4: JUMPDEST 000004b5: PUSH1 0x40 000004b7: MLOAD 000004b8: PUSH2 0x02f8 000004bb: SWAP2 000004bc: SWAP1 000004bd: PUSH2 0x20e5 000004c0: JUMP 000004c1: JUMPDEST 000004c2: CALLVALUE 000004c3: DUP1 000004c4: ISZERO 000004c5: PUSH2 0x04cc 000004c8: JUMPI 000004c9: PUSH0 000004ca: PUSH0 000004cb: REVERT 000004cc: JUMPDEST 000004cd: POP 000004ce: PUSH2 0x034f 000004d1: PUSH2 0x04db 000004d4: CALLDATASIZE 000004d5: PUSH1 0x04 000004d7: PUSH2 0x1fdc 000004da: JUMP 000004db: JUMPDEST 000004dc: PUSH2 0x0bcc 000004df: JUMP 000004e0: JUMPDEST 000004e1: CALLVALUE 000004e2: DUP1 000004e3: ISZERO 000004e4: PUSH2 0x04eb 000004e7: JUMPI 000004e8: PUSH0 000004e9: PUSH0 000004ea: REVERT 000004eb: JUMPDEST 000004ec: POP 000004ed: PUSH2 0x034f 000004f0: PUSH2 0x04fa 000004f3: CALLDATASIZE 000004f4: PUSH1 0x04 000004f6: PUSH2 0x1fdc 000004f9: JUMP 000004fa: JUMPDEST 000004fb: PUSH2 0x0be4 000004fe: JUMP 000004ff: JUMPDEST 00000500: CALLVALUE 00000501: DUP1 00000502: ISZERO 00000503: PUSH2 0x050a 00000506: JUMPI 00000507: PUSH0 00000508: PUSH0 00000509: REVERT 0000050a: JUMPDEST 0000050b: POP 0000050c: PUSH2 0x034f 0000050f: PUSH2 0x0519 00000512: CALLDATASIZE 00000513: PUSH1 0x04 00000515: PUSH2 0x20c2 00000518: JUMP 00000519: JUMPDEST 0000051a: PUSH2 0x0c5f 0000051d: JUMP 0000051e: JUMPDEST 0000051f: CALLVALUE 00000520: DUP1 00000521: ISZERO 00000522: PUSH2 0x0529 00000525: JUMPI 00000526: PUSH0 00000527: PUSH0 00000528: REVERT 00000529: JUMPDEST 0000052a: POP 0000052b: PUSH2 0x02ee 0000052e: PUSH2 0x0538 00000531: CALLDATASIZE 00000532: PUSH1 0x04 00000534: PUSH2 0x1fdc 00000537: JUMP 00000538: JUMPDEST 00000539: PUSH2 0x0cc5 0000053c: JUMP 0000053d: JUMPDEST 0000053e: CALLVALUE 0000053f: DUP1 00000540: ISZERO 00000541: PUSH2 0x0548 00000544: JUMPI 00000545: PUSH0 00000546: PUSH0 00000547: REVERT 00000548: JUMPDEST 00000549: POP 0000054a: PUSH2 0x034f 0000054d: PUSH2 0x0557 00000550: CALLDATASIZE 00000551: PUSH1 0x04 00000553: PUSH2 0x2127 00000556: JUMP 00000557: JUMPDEST 00000558: PUSH2 0x0ce5 0000055b: JUMP 0000055c: JUMPDEST 0000055d: CALLVALUE 0000055e: DUP1 0000055f: ISZERO 00000560: PUSH2 0x0567 00000563: JUMPI 00000564: PUSH0 00000565: PUSH0 00000566: REVERT 00000567: JUMPDEST 00000568: POP 00000569: PUSH2 0x034f 0000056c: PUSH2 0x0576 0000056f: CALLDATASIZE 00000570: PUSH1 0x04 00000572: PUSH2 0x2127 00000575: JUMP 00000576: JUMPDEST 00000577: PUSH2 0x0d4b 0000057a: JUMP 0000057b: JUMPDEST 0000057c: CALLVALUE 0000057d: DUP1 0000057e: ISZERO 0000057f: PUSH2 0x0586 00000582: JUMPI 00000583: PUSH0 00000584: PUSH0 00000585: REVERT 00000586: JUMPDEST 00000587: POP 00000588: PUSH2 0x034f 0000058b: PUSH2 0x0595 0000058e: CALLDATASIZE 0000058f: PUSH1 0x04 00000591: PUSH2 0x1fdc 00000594: JUMP 00000595: JUMPDEST 00000596: PUSH2 0x0db1 00000599: JUMP 0000059a: JUMPDEST 0000059b: CALLVALUE 0000059c: DUP1 0000059d: ISZERO 0000059e: PUSH2 0x05a5 000005a1: JUMPI 000005a2: PUSH0 000005a3: PUSH0 000005a4: REVERT 000005a5: JUMPDEST 000005a6: POP 000005a7: PUSH2 0x02ee 000005aa: PUSH2 0x0dc4 000005ad: JUMP 000005ae: JUMPDEST 000005af: CALLVALUE 000005b0: DUP1 000005b1: ISZERO 000005b2: PUSH2 0x05b9 000005b5: JUMPI 000005b6: PUSH0 000005b7: PUSH0 000005b8: REVERT 000005b9: JUMPDEST 000005ba: POP 000005bb: PUSH2 0x034f 000005be: PUSH2 0x05c8 000005c1: CALLDATASIZE 000005c2: PUSH1 0x04 000005c4: PUSH2 0x2151 000005c7: JUMP 000005c8: JUMPDEST 000005c9: PUSH2 0x0dd4 000005cc: JUMP 000005cd: JUMPDEST 000005ce: CALLVALUE 000005cf: DUP1 000005d0: ISZERO 000005d1: PUSH2 0x05d8 000005d4: JUMPI 000005d5: PUSH0 000005d6: PUSH0 000005d7: REVERT 000005d8: JUMPDEST 000005d9: POP 000005da: PUSH2 0x034f 000005dd: PUSH2 0x05e7 000005e0: CALLDATASIZE 000005e1: PUSH1 0x04 000005e3: PUSH2 0x2084 000005e6: JUMP 000005e7: JUMPDEST 000005e8: PUSH2 0x0e3d 000005eb: JUMP 000005ec: JUMPDEST 000005ed: CALLVALUE 000005ee: DUP1 000005ef: ISZERO 000005f0: PUSH2 0x05f7 000005f3: JUMPI 000005f4: PUSH0 000005f5: PUSH0 000005f6: REVERT 000005f7: JUMPDEST 000005f8: POP 000005f9: PUSH2 0x0320 000005fc: PUSH2 0x0606 000005ff: CALLDATASIZE 00000600: PUSH1 0x04 00000602: PUSH2 0x20c2 00000605: JUMP 00000606: JUMPDEST 00000607: PUSH0 00000608: SWAP2 00000609: DUP3 0000060a: MSTORE 0000060b: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800 0000062c: PUSH1 0x20 0000062e: SWAP1 0000062f: DUP2 00000630: MSTORE 00000631: PUSH1 0x40 00000633: DUP1 00000634: DUP5 00000635: KECCAK256 00000636: PUSH1 0x01 00000638: PUSH1 0x01 0000063a: PUSH1 0xa0 0000063c: SHL 0000063d: SUB 0000063e: SWAP4 0000063f: SWAP1 00000640: SWAP4 00000641: AND 00000642: DUP5 00000643: MSTORE 00000644: SWAP2 00000645: SWAP1 00000646: MSTORE 00000647: SWAP1 00000648: KECCAK256 00000649: SLOAD 0000064a: PUSH1 0xff 0000064c: AND 0000064d: SWAP1 0000064e: JUMP 0000064f: JUMPDEST 00000650: CALLVALUE 00000651: DUP1 00000652: ISZERO 00000653: PUSH2 0x065a 00000656: JUMPI 00000657: PUSH0 00000658: PUSH0 00000659: REVERT 0000065a: JUMPDEST 0000065b: POP 0000065c: PUSH2 0x02ee 0000065f: PUSH2 0x0669 00000662: CALLDATASIZE 00000663: PUSH1 0x04 00000665: PUSH2 0x1fdc 00000668: JUMP 00000669: JUMPDEST 0000066a: PUSH2 0x0ebe 0000066d: JUMP 0000066e: JUMPDEST 0000066f: CALLVALUE 00000670: DUP1 00000671: ISZERO 00000672: PUSH2 0x0679 00000675: JUMPI 00000676: PUSH0 00000677: PUSH0 00000678: REVERT 00000679: JUMPDEST 0000067a: POP 0000067b: PUSH2 0x02ee 0000067e: PUSH0 0000067f: DUP2 00000680: JUMP 00000681: JUMPDEST 00000682: CALLVALUE 00000683: DUP1 00000684: ISZERO 00000685: PUSH2 0x068c 00000688: JUMPI 00000689: PUSH0 0000068a: PUSH0 0000068b: REVERT 0000068c: JUMPDEST 0000068d: POP 0000068e: PUSH2 0x034f 00000691: PUSH2 0x069b 00000694: CALLDATASIZE 00000695: PUSH1 0x04 00000697: PUSH2 0x206d 0000069a: JUMP 0000069b: JUMPDEST 0000069c: PUSH2 0x0ede 0000069f: JUMP 000006a0: JUMPDEST 000006a1: CALLVALUE 000006a2: DUP1 000006a3: ISZERO 000006a4: PUSH2 0x06ab 000006a7: JUMPI 000006a8: PUSH0 000006a9: PUSH0 000006aa: REVERT 000006ab: JUMPDEST 000006ac: POP 000006ad: PUSH2 0x034f 000006b0: PUSH2 0x06ba 000006b3: CALLDATASIZE 000006b4: PUSH1 0x04 000006b6: PUSH2 0x2127 000006b9: JUMP 000006ba: JUMPDEST 000006bb: PUSH2 0x0f23 000006be: JUMP 000006bf: JUMPDEST 000006c0: CALLVALUE 000006c1: DUP1 000006c2: ISZERO 000006c3: PUSH2 0x06ca 000006c6: JUMPI 000006c7: PUSH0 000006c8: PUSH0 000006c9: REVERT 000006ca: JUMPDEST 000006cb: POP 000006cc: PUSH2 0x034f 000006cf: PUSH2 0x06d9 000006d2: CALLDATASIZE 000006d3: PUSH1 0x04 000006d5: PUSH2 0x206d 000006d8: JUMP 000006d9: JUMPDEST 000006da: PUSH2 0x1091 000006dd: JUMP 000006de: JUMPDEST 000006df: CALLVALUE 000006e0: DUP1 000006e1: ISZERO 000006e2: PUSH2 0x06e9 000006e5: JUMPI 000006e6: PUSH0 000006e7: PUSH0 000006e8: REVERT 000006e9: JUMPDEST 000006ea: POP 000006eb: PUSH1 0x01 000006ed: SLOAD 000006ee: PUSH2 0x02ee 000006f1: JUMP 000006f2: JUMPDEST 000006f3: CALLVALUE 000006f4: DUP1 000006f5: ISZERO 000006f6: PUSH2 0x06fd 000006f9: JUMPI 000006fa: PUSH0 000006fb: PUSH0 000006fc: REVERT 000006fd: JUMPDEST 000006fe: POP 000006ff: PUSH2 0x02ee 00000702: PUSH2 0x070c 00000705: CALLDATASIZE 00000706: PUSH1 0x04 00000708: PUSH2 0x2036 0000070b: JUMP 0000070c: JUMPDEST 0000070d: PUSH2 0x10d6 00000710: JUMP 00000711: JUMPDEST 00000712: CALLVALUE 00000713: DUP1 00000714: ISZERO 00000715: PUSH2 0x071c 00000718: JUMPI 00000719: PUSH0 0000071a: PUSH0 0000071b: REVERT 0000071c: JUMPDEST 0000071d: POP 0000071e: PUSH2 0x034f 00000721: PUSH2 0x072b 00000724: CALLDATASIZE 00000725: PUSH1 0x04 00000727: PUSH2 0x2127 0000072a: JUMP 0000072b: JUMPDEST 0000072c: PUSH2 0x1110 0000072f: JUMP 00000730: JUMPDEST 00000731: CALLVALUE 00000732: DUP1 00000733: ISZERO 00000734: PUSH2 0x073b 00000737: JUMPI 00000738: PUSH0 00000739: PUSH0 0000073a: REVERT 0000073b: JUMPDEST 0000073c: POP 0000073d: PUSH2 0x034f 00000740: PUSH2 0x074a 00000743: CALLDATASIZE 00000744: PUSH1 0x04 00000746: PUSH2 0x1fdc 00000749: JUMP 0000074a: JUMPDEST 0000074b: PUSH2 0x1166 0000074e: JUMP 0000074f: JUMPDEST 00000750: CALLVALUE 00000751: DUP1 00000752: ISZERO 00000753: PUSH2 0x075a 00000756: JUMPI 00000757: PUSH0 00000758: PUSH0 00000759: REVERT 0000075a: JUMPDEST 0000075b: POP 0000075c: PUSH2 0x034f 0000075f: PUSH2 0x0769 00000762: CALLDATASIZE 00000763: PUSH1 0x04 00000765: PUSH2 0x1fdc 00000768: JUMP 00000769: JUMPDEST 0000076a: PUSH2 0x1307 0000076d: JUMP 0000076e: JUMPDEST 0000076f: CALLVALUE 00000770: DUP1 00000771: ISZERO 00000772: PUSH2 0x0779 00000775: JUMPI 00000776: PUSH0 00000777: PUSH0 00000778: REVERT 00000779: JUMPDEST 0000077a: POP 0000077b: PUSH2 0x034f 0000077e: PUSH2 0x0788 00000781: CALLDATASIZE 00000782: PUSH1 0x04 00000784: PUSH2 0x20c2 00000787: JUMP 00000788: JUMPDEST 00000789: PUSH2 0x1353 0000078c: JUMP 0000078d: JUMPDEST 0000078e: CALLVALUE 0000078f: DUP1 00000790: ISZERO 00000791: PUSH2 0x0798 00000794: JUMPI 00000795: PUSH0 00000796: PUSH0 00000797: REVERT 00000798: JUMPDEST 00000799: POP 0000079a: PUSH2 0x034f 0000079d: PUSH2 0x07a7 000007a0: CALLDATASIZE 000007a1: PUSH1 0x04 000007a3: PUSH2 0x2151 000007a6: JUMP 000007a7: JUMPDEST 000007a8: PUSH2 0x1396 000007ab: JUMP 000007ac: JUMPDEST 000007ad: CALLVALUE 000007ae: DUP1 000007af: ISZERO 000007b0: PUSH2 0x07b7 000007b3: JUMPI 000007b4: PUSH0 000007b5: PUSH0 000007b6: REVERT 000007b7: JUMPDEST 000007b8: POP 000007b9: PUSH2 0x034f 000007bc: PUSH2 0x07c6 000007bf: CALLDATASIZE 000007c0: PUSH1 0x04 000007c2: PUSH2 0x2036 000007c5: JUMP 000007c6: JUMPDEST 000007c7: PUSH2 0x1508 000007ca: JUMP 000007cb: JUMPDEST 000007cc: CALLVALUE 000007cd: DUP1 000007ce: ISZERO 000007cf: PUSH2 0x07d6 000007d2: JUMPI 000007d3: PUSH0 000007d4: PUSH0 000007d5: REVERT 000007d6: JUMPDEST 000007d7: POP 000007d8: PUSH2 0x02ee 000007db: PUSH2 0x07e5 000007de: CALLDATASIZE 000007df: PUSH1 0x04 000007e1: PUSH2 0x2036 000007e4: JUMP 000007e5: JUMPDEST 000007e6: PUSH1 0x01 000007e8: PUSH1 0x01 000007ea: PUSH1 0xa0 000007ec: SHL 000007ed: SUB 000007ee: DUP1 000007ef: DUP3 000007f0: AND 000007f1: PUSH0 000007f2: SWAP1 000007f3: DUP2 000007f4: MSTORE 000007f5: PUSH1 0x07 000007f7: PUSH1 0x20 000007f9: SWAP1 000007fa: DUP2 000007fb: MSTORE 000007fc: PUSH1 0x40 000007fe: DUP1 000007ff: DUP4 00000800: KECCAK256 00000801: SWAP4 00000802: DUP7 00000803: AND 00000804: DUP4 00000805: MSTORE 00000806: PUSH1 0x05 00000808: SWAP1 00000809: SWAP4 0000080a: ADD 0000080b: SWAP1 0000080c: MSTORE 0000080d: KECCAK256 0000080e: SLOAD 0000080f: SWAP3 00000810: SWAP2 00000811: POP 00000812: POP 00000813: JUMP 00000814: JUMPDEST 00000815: CALLVALUE 00000816: DUP1 00000817: ISZERO 00000818: PUSH2 0x081f 0000081b: JUMPI 0000081c: PUSH0 0000081d: PUSH0 0000081e: REVERT 0000081f: JUMPDEST 00000820: POP 00000821: PUSH2 0x034f 00000824: PUSH2 0x082e 00000827: CALLDATASIZE 00000828: PUSH1 0x04 0000082a: PUSH2 0x20c2 0000082d: JUMP 0000082e: JUMPDEST 0000082f: PUSH2 0x15ac 00000832: JUMP 00000833: JUMPDEST 00000834: PUSH0 00000835: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000856: DUP3 00000857: AND 00000858: PUSH32 0x7965db0b00000000000000000000000000000000000000000000000000000000 00000879: EQ 0000087a: DUP1 0000087b: PUSH2 0x08c5 0000087e: JUMPI 0000087f: POP 00000880: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000 000008a1: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000008c2: DUP4 000008c3: AND 000008c4: EQ 000008c5: JUMPDEST 000008c6: SWAP3 000008c7: SWAP2 000008c8: POP 000008c9: POP 000008ca: JUMP 000008cb: JUMPDEST 000008cc: PUSH0 000008cd: PUSH2 0x08d5 000008d0: DUP2 000008d1: PUSH2 0x1612 000008d4: JUMP 000008d5: JUMPDEST 000008d6: PUSH0 000008d7: PUSH2 0x08de 000008da: PUSH2 0x0b55 000008dd: JUMP 000008de: JUMPDEST 000008df: SWAP1 000008e0: POP 000008e1: PUSH0 000008e2: JUMPDEST 000008e3: DUP2 000008e4: MLOAD 000008e5: DUP2 000008e6: LT 000008e7: ISZERO 000008e8: PUSH2 0x097b 000008eb: JUMPI 000008ec: PUSH0 000008ed: DUP3 000008ee: DUP3 000008ef: DUP2 000008f0: MLOAD 000008f1: DUP2 000008f2: LT 000008f3: PUSH2 0x08fe 000008f6: JUMPI 000008f7: PUSH2 0x08fe 000008fa: PUSH2 0x2190 000008fd: JUMP 000008fe: JUMPDEST 000008ff: PUSH1 0x20 00000901: MUL 00000902: PUSH1 0x20 00000904: ADD 00000905: ADD 00000906: MLOAD 00000907: SWAP1 00000908: POP 00000909: PUSH2 0x0956 0000090c: DUP2 0000090d: DUP8 0000090e: PUSH0 0000090f: SWAP2 00000910: DUP3 00000911: MSTORE 00000912: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800 00000933: PUSH1 0x20 00000935: SWAP1 00000936: DUP2 00000937: MSTORE 00000938: PUSH1 0x40 0000093a: DUP1 0000093b: DUP5 0000093c: KECCAK256 0000093d: PUSH1 0x01 0000093f: PUSH1 0x01 00000941: PUSH1 0xa0 00000943: SHL 00000944: SUB 00000945: SWAP4 00000946: SWAP1 00000947: SWAP4 00000948: AND 00000949: DUP5 0000094a: MSTORE 0000094b: SWAP2 0000094c: SWAP1 0000094d: MSTORE 0000094e: SWAP1 0000094f: KECCAK256 00000950: SLOAD 00000951: PUSH1 0xff 00000953: AND 00000954: SWAP1 00000955: JUMP 00000956: JUMPDEST 00000957: ISZERO 00000958: PUSH2 0x0972 0000095b: JUMPI 0000095c: PUSH2 0x0965 0000095f: DUP2 00000960: DUP7 00000961: PUSH2 0x161f 00000964: JUMP 00000965: JUMPDEST 00000966: POP 00000967: PUSH2 0x0970 0000096a: DUP2 0000096b: DUP8 0000096c: PUSH2 0x16f2 0000096f: JUMP 00000970: JUMPDEST 00000971: POP 00000972: JUMPDEST 00000973: POP 00000974: PUSH1 0x01 00000976: ADD 00000977: PUSH2 0x08e2 0000097a: JUMP 0000097b: JUMPDEST 0000097c: POP 0000097d: POP 0000097e: POP 0000097f: POP 00000980: POP 00000981: JUMP 00000982: JUMPDEST 00000983: PUSH0 00000984: PUSH2 0x098c 00000987: DUP2 00000988: PUSH2 0x1612 0000098b: JUMP 0000098c: JUMPDEST 0000098d: PUSH1 0x01 0000098f: PUSH1 0x01 00000991: PUSH1 0xa0 00000993: SHL 00000994: SUB 00000995: DUP1 00000996: DUP6 00000997: AND 00000998: PUSH0 00000999: SWAP1 0000099a: DUP2 0000099b: MSTORE 0000099c: PUSH1 0x07 0000099e: PUSH1 0x20 000009a0: SWAP1 000009a1: DUP2 000009a2: MSTORE 000009a3: PUSH1 0x40 000009a5: DUP1 000009a6: DUP4 000009a7: KECCAK256 000009a8: SWAP4 000009a9: DUP8 000009aa: AND 000009ab: DUP4 000009ac: MSTORE 000009ad: PUSH1 0x05 000009af: SWAP1 000009b0: SWAP4 000009b1: ADD 000009b2: SWAP1 000009b3: MSTORE 000009b4: KECCAK256 000009b5: PUSH2 0x09be 000009b8: SWAP1 000009b9: DUP4 000009ba: PUSH2 0x1796 000009bd: JUMP 000009be: JUMPDEST 000009bf: DUP4 000009c0: PUSH1 0x01 000009c2: PUSH1 0x01 000009c4: PUSH1 0xa0 000009c6: SHL 000009c7: SUB 000009c8: AND 000009c9: DUP4 000009ca: PUSH1 0x01 000009cc: PUSH1 0x01 000009ce: PUSH1 0xa0 000009d0: SHL 000009d1: SUB 000009d2: AND 000009d3: PUSH32 0x348dce15fd3de540ba6f3060c6ac52ca14be006886d73e2ed0716bf939657ff3 000009f4: DUP5 000009f5: PUSH1 0x40 000009f7: MLOAD 000009f8: PUSH2 0x0a03 000009fb: SWAP2 000009fc: DUP2 000009fd: MSTORE 000009fe: PUSH1 0x20 00000a00: ADD 00000a01: SWAP1 00000a02: JUMP 00000a03: JUMPDEST 00000a04: PUSH1 0x40 00000a06: MLOAD 00000a07: DUP1 00000a08: SWAP2 00000a09: SUB 00000a0a: SWAP1 00000a0b: LOG3 00000a0c: POP 00000a0d: POP 00000a0e: POP 00000a0f: POP 00000a10: JUMP 00000a11: JUMPDEST 00000a12: PUSH0 00000a13: PUSH2 0x0a1b 00000a16: DUP2 00000a17: PUSH2 0x1612 00000a1a: JUMP 00000a1b: JUMPDEST 00000a1c: PUSH1 0x01 00000a1e: DUP3 00000a1f: SWAP1 00000a20: SSTORE 00000a21: PUSH1 0x40 00000a23: MLOAD 00000a24: DUP3 00000a25: DUP2 00000a26: MSTORE 00000a27: PUSH32 0xb3fdd48f612996be1ea8a86a15175097c3712342340370074dfecc58d047fdfa 00000a48: SWAP1 00000a49: PUSH1 0x20 00000a4b: ADD 00000a4c: JUMPDEST 00000a4d: PUSH1 0x40 00000a4f: MLOAD 00000a50: DUP1 00000a51: SWAP2 00000a52: SUB 00000a53: SWAP1 00000a54: LOG1 00000a55: POP 00000a56: POP 00000a57: JUMP 00000a58: JUMPDEST 00000a59: PUSH0 00000a5a: DUP3 00000a5b: DUP2 00000a5c: MSTORE 00000a5d: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800 00000a7e: PUSH1 0x20 00000a80: MSTORE 00000a81: PUSH1 0x40 00000a83: SWAP1 00000a84: KECCAK256 00000a85: PUSH1 0x01 00000a87: ADD 00000a88: SLOAD 00000a89: PUSH2 0x0a91 00000a8c: DUP2 00000a8d: PUSH2 0x1612 00000a90: JUMP 00000a91: JUMPDEST 00000a92: PUSH2 0x0a9b 00000a95: DUP4 00000a96: DUP4 00000a97: PUSH2 0x161f 00000a9a: JUMP 00000a9b: JUMPDEST 00000a9c: POP 00000a9d: POP 00000a9e: POP 00000a9f: POP 00000aa0: JUMP 00000aa1: JUMPDEST 00000aa2: PUSH0 00000aa3: PUSH2 0x0aab 00000aa6: DUP2 00000aa7: PUSH2 0x1612 00000aaa: JUMP 00000aab: JUMPDEST 00000aac: PUSH1 0x01 00000aae: PUSH1 0x01 00000ab0: PUSH1 0xa0 00000ab2: SHL 00000ab3: SUB 00000ab4: DUP3 00000ab5: AND 00000ab6: PUSH0 00000ab7: DUP2 00000ab8: DUP2 00000ab9: MSTORE 00000aba: PUSH1 0x07 00000abc: PUSH1 0x20 00000abe: MSTORE 00000abf: PUSH1 0x40 00000ac1: SWAP1 00000ac2: DUP2 00000ac3: SWAP1 00000ac4: KECCAK256 00000ac5: DUP6 00000ac6: SWAP1 00000ac7: SSTORE 00000ac8: MLOAD 00000ac9: PUSH32 0xe7cb39a2d9c680f8f2806bdd291fe54a154f7f30d7d7bda0dbc7d9a55ec29659 00000aea: SWAP1 00000aeb: PUSH2 0x0af7 00000aee: SWAP1 00000aef: DUP7 00000af0: DUP2 00000af1: MSTORE 00000af2: PUSH1 0x20 00000af4: ADD 00000af5: SWAP1 00000af6: JUMP 00000af7: JUMPDEST 00000af8: PUSH1 0x40 00000afa: MLOAD 00000afb: DUP1 00000afc: SWAP2 00000afd: SUB 00000afe: SWAP1 00000aff: LOG2 00000b00: POP 00000b01: POP 00000b02: POP 00000b03: JUMP 00000b04: JUMPDEST 00000b05: PUSH1 0x01 00000b07: PUSH1 0x01 00000b09: PUSH1 0xa0 00000b0b: SHL 00000b0c: SUB 00000b0d: DUP2 00000b0e: AND 00000b0f: CALLER 00000b10: EQ 00000b11: PUSH2 0x0b46 00000b14: JUMPI 00000b15: PUSH1 0x40 00000b17: MLOAD 00000b18: PUSH32 0x6697b23200000000000000000000000000000000000000000000000000000000 00000b39: DUP2 00000b3a: MSTORE 00000b3b: PUSH1 0x04 00000b3d: ADD 00000b3e: PUSH1 0x40 00000b40: MLOAD 00000b41: DUP1 00000b42: SWAP2 00000b43: SUB 00000b44: SWAP1 00000b45: REVERT 00000b46: JUMPDEST 00000b47: PUSH2 0x0b50 00000b4a: DUP3 00000b4b: DUP3 00000b4c: PUSH2 0x16f2 00000b4f: JUMP 00000b50: JUMPDEST 00000b51: POP 00000b52: POP 00000b53: POP 00000b54: JUMP 00000b55: JUMPDEST 00000b56: PUSH1 0x60 00000b58: PUSH0 00000b59: PUSH32 0x19b29a04048f51eb9591acef31c8d25631a0f178287c237da958990d82c90400 00000b7a: DUP1 00000b7b: SLOAD 00000b7c: PUSH1 0x40 00000b7e: DUP1 00000b7f: MLOAD 00000b80: PUSH1 0x20 00000b82: DUP1 00000b83: DUP5 00000b84: MUL 00000b85: DUP3 00000b86: ADD 00000b87: DUP2 00000b88: ADD 00000b89: SWAP1 00000b8a: SWAP3 00000b8b: MSTORE 00000b8c: DUP3 00000b8d: DUP2 00000b8e: MSTORE 00000b8f: SWAP3 00000b90: SWAP4 00000b91: POP 00000b92: DUP4 00000b93: SWAP2 00000b94: SWAP1 00000b95: DUP4 00000b96: ADD 00000b97: DUP3 00000b98: DUP3 00000b99: DUP1 00000b9a: ISZERO 00000b9b: PUSH2 0x0bc1 00000b9e: JUMPI 00000b9f: PUSH1 0x20 00000ba1: MUL 00000ba2: DUP3 00000ba3: ADD 00000ba4: SWAP2 00000ba5: SWAP1 00000ba6: PUSH0 00000ba7: MSTORE 00000ba8: PUSH1 0x20 00000baa: PUSH0 00000bab: KECCAK256 00000bac: SWAP1 00000bad: JUMPDEST 00000bae: DUP2 00000baf: SLOAD 00000bb0: DUP2 00000bb1: MSTORE 00000bb2: PUSH1 0x20 00000bb4: ADD 00000bb5: SWAP1 00000bb6: PUSH1 0x01 00000bb8: ADD 00000bb9: SWAP1 00000bba: DUP1 00000bbb: DUP4 00000bbc: GT 00000bbd: PUSH2 0x0bad 00000bc0: JUMPI 00000bc1: JUMPDEST 00000bc2: POP 00000bc3: POP 00000bc4: POP 00000bc5: POP 00000bc6: POP 00000bc7: SWAP2 00000bc8: POP 00000bc9: POP 00000bca: SWAP1 00000bcb: JUMP 00000bcc: JUMPDEST 00000bcd: PUSH0 00000bce: PUSH2 0x0bd6 00000bd1: DUP2 00000bd2: PUSH2 0x1612 00000bd5: JUMP 00000bd6: JUMPDEST 00000bd7: PUSH2 0x0be0 00000bda: CALLER 00000bdb: DUP4 00000bdc: PUSH2 0x08cb 00000bdf: JUMP 00000be0: JUMPDEST 00000be1: POP 00000be2: POP 00000be3: JUMP 00000be4: JUMPDEST 00000be5: PUSH0 00000be6: PUSH2 0x0bee 00000be9: DUP2 00000bea: PUSH2 0x1612 00000bed: JUMP 00000bee: JUMPDEST 00000bef: PUSH1 0x01 00000bf1: PUSH1 0x01 00000bf3: PUSH1 0xa0 00000bf5: SHL 00000bf6: SUB 00000bf7: DUP3 00000bf8: AND 00000bf9: PUSH0 00000bfa: SWAP1 00000bfb: DUP2 00000bfc: MSTORE 00000bfd: PUSH1 0x06 00000bff: PUSH1 0x20 00000c01: MSTORE 00000c02: PUSH1 0x40 00000c04: SWAP1 00000c05: KECCAK256 00000c06: PUSH2 0x0c0e 00000c09: SWAP1 00000c0a: PUSH2 0x17a0 00000c0d: JUMP 00000c0e: JUMPDEST 00000c0f: PUSH1 0x01 00000c11: PUSH1 0x01 00000c13: PUSH1 0xa0 00000c15: SHL 00000c16: SUB 00000c17: DUP3 00000c18: AND 00000c19: PUSH0 00000c1a: DUP2 00000c1b: DUP2 00000c1c: MSTORE 00000c1d: PUSH1 0x06 00000c1f: PUSH1 0x20 00000c21: MSTORE 00000c22: PUSH1 0x40 00000c24: DUP1 00000c25: DUP3 00000c26: KECCAK256 00000c27: DUP3 00000c28: DUP2 00000c29: SSTORE 00000c2a: PUSH1 0x01 00000c2c: DUP2 00000c2d: ADD 00000c2e: DUP4 00000c2f: SWAP1 00000c30: SSTORE 00000c31: PUSH1 0x02 00000c33: ADD 00000c34: DUP3 00000c35: SWAP1 00000c36: SSTORE 00000c37: MLOAD 00000c38: PUSH32 0x49ed5a425b7b67ea44959f73b24f6619d66c387d763a7217b9dc7980801b44b0 00000c59: SWAP2 00000c5a: SWAP1 00000c5b: LOG2 00000c5c: POP 00000c5d: POP 00000c5e: JUMP 00000c5f: JUMPDEST 00000c60: PUSH0 00000c61: PUSH2 0x0c69 00000c64: DUP2 00000c65: PUSH2 0x1612 00000c68: JUMP 00000c69: JUMPDEST 00000c6a: PUSH1 0x01 00000c6c: PUSH1 0x01 00000c6e: PUSH1 0xa0 00000c70: SHL 00000c71: SUB 00000c72: DUP3 00000c73: AND 00000c74: PUSH0 00000c75: SWAP1 00000c76: DUP2 00000c77: MSTORE 00000c78: PUSH1 0x07 00000c7a: PUSH1 0x20 00000c7c: MSTORE 00000c7d: PUSH1 0x40 00000c7f: SWAP1 00000c80: KECCAK256 00000c81: PUSH2 0x0c8a 00000c84: SWAP1 00000c85: DUP5 00000c86: PUSH2 0x1796 00000c89: JUMP 00000c8a: JUMPDEST 00000c8b: DUP2 00000c8c: PUSH1 0x01 00000c8e: PUSH1 0x01 00000c90: PUSH1 0xa0 00000c92: SHL 00000c93: SUB 00000c94: AND 00000c95: PUSH32 0x25fd70cafd02a8fb68b7d75044ea128508bea53919659a16db29691c0829aee8 00000cb6: DUP5 00000cb7: PUSH1 0x40 00000cb9: MLOAD 00000cba: PUSH2 0x0af7 00000cbd: SWAP2 00000cbe: DUP2 00000cbf: MSTORE 00000cc0: PUSH1 0x20 00000cc2: ADD 00000cc3: SWAP1 00000cc4: JUMP 00000cc5: JUMPDEST 00000cc6: PUSH1 0x01 00000cc8: PUSH1 0x01 00000cca: PUSH1 0xa0 00000ccc: SHL 00000ccd: SUB 00000cce: DUP2 00000ccf: AND 00000cd0: PUSH0 00000cd1: SWAP1 00000cd2: DUP2 00000cd3: MSTORE 00000cd4: PUSH1 0x06 00000cd6: PUSH1 0x20 00000cd8: MSTORE 00000cd9: PUSH1 0x40 00000cdb: DUP2 00000cdc: KECCAK256 00000cdd: PUSH2 0x08c5 00000ce0: SWAP1 00000ce1: PUSH2 0x17f6 00000ce4: JUMP 00000ce5: JUMPDEST 00000ce6: PUSH0 00000ce7: PUSH2 0x0cef 00000cea: DUP2 00000ceb: PUSH2 0x1612 00000cee: JUMP 00000cef: JUMPDEST 00000cf0: PUSH1 0x01 00000cf2: PUSH1 0x01 00000cf4: PUSH1 0xa0 00000cf6: SHL 00000cf7: SUB 00000cf8: DUP4 00000cf9: AND 00000cfa: PUSH0 00000cfb: SWAP1 00000cfc: DUP2 00000cfd: MSTORE 00000cfe: PUSH1 0x06 00000d00: PUSH1 0x20 00000d02: MSTORE 00000d03: PUSH1 0x40 00000d05: SWAP1 00000d06: KECCAK256 00000d07: PUSH2 0x0d10 00000d0a: SWAP1 00000d0b: DUP4 00000d0c: PUSH2 0x180c 00000d0f: JUMP 00000d10: JUMPDEST 00000d11: DUP3 00000d12: PUSH1 0x01 00000d14: PUSH1 0x01 00000d16: PUSH1 0xa0 00000d18: SHL 00000d19: SUB 00000d1a: AND 00000d1b: PUSH32 0xdf6e13830d1288305cf1a35d90049184ac452bc8581642bc8c5bb1976689aaae 00000d3c: DUP4 00000d3d: PUSH1 0x40 00000d3f: MLOAD 00000d40: PUSH2 0x0af7 00000d43: SWAP2 00000d44: DUP2 00000d45: MSTORE 00000d46: PUSH1 0x20 00000d48: ADD 00000d49: SWAP1 00000d4a: JUMP 00000d4b: JUMPDEST 00000d4c: PUSH0 00000d4d: PUSH2 0x0d55 00000d50: DUP2 00000d51: PUSH2 0x1612 00000d54: JUMP 00000d55: JUMPDEST 00000d56: PUSH1 0x01 00000d58: PUSH1 0x01 00000d5a: PUSH1 0xa0 00000d5c: SHL 00000d5d: SUB 00000d5e: DUP4 00000d5f: AND 00000d60: PUSH0 00000d61: SWAP1 00000d62: DUP2 00000d63: MSTORE 00000d64: PUSH1 0x06 00000d66: PUSH1 0x20 00000d68: MSTORE 00000d69: PUSH1 0x40 00000d6b: SWAP1 00000d6c: KECCAK256 00000d6d: PUSH2 0x0d76 00000d70: SWAP1 00000d71: DUP4 00000d72: PUSH2 0x1796 00000d75: JUMP 00000d76: JUMPDEST 00000d77: DUP3 00000d78: PUSH1 0x01 00000d7a: PUSH1 0x01 00000d7c: PUSH1 0xa0 00000d7e: SHL 00000d7f: SUB 00000d80: AND 00000d81: PUSH32 0x509436508ea84ce68bfc12a8a153280793f2ff613eaaa058e00f0a7a5acd974b 00000da2: DUP4 00000da3: PUSH1 0x40 00000da5: MLOAD 00000da6: PUSH2 0x0af7 00000da9: SWAP2 00000daa: DUP2 00000dab: MSTORE 00000dac: PUSH1 0x20 00000dae: ADD 00000daf: SWAP1 00000db0: JUMP 00000db1: JUMPDEST 00000db2: PUSH0 00000db3: PUSH2 0x0dbb 00000db6: DUP2 00000db7: PUSH2 0x1612 00000dba: JUMP 00000dbb: JUMPDEST 00000dbc: PUSH2 0x0be0 00000dbf: DUP3 00000dc0: PUSH2 0x181e 00000dc3: JUMP 00000dc4: JUMPDEST 00000dc5: PUSH0 00000dc6: PUSH2 0x0dcf 00000dc9: PUSH1 0x01 00000dcb: PUSH2 0x17f6 00000dce: JUMP 00000dcf: JUMPDEST 00000dd0: SWAP1 00000dd1: POP 00000dd2: SWAP1 00000dd3: JUMP 00000dd4: JUMPDEST 00000dd5: PUSH0 00000dd6: PUSH2 0x0dde 00000dd9: DUP2 00000dda: PUSH2 0x1612 00000ddd: JUMP 00000dde: JUMPDEST 00000ddf: PUSH1 0x01 00000de1: PUSH1 0x01 00000de3: PUSH1 0xa0 00000de5: SHL 00000de6: SUB 00000de7: DUP3 00000de8: DUP2 00000de9: AND 00000dea: PUSH0 00000deb: DUP2 00000dec: DUP2 00000ded: MSTORE 00000dee: PUSH1 0x07 00000df0: PUSH1 0x20 00000df2: SWAP1 00000df3: DUP2 00000df4: MSTORE 00000df5: PUSH1 0x40 00000df7: DUP1 00000df8: DUP4 00000df9: KECCAK256 00000dfa: SWAP5 00000dfb: DUP10 00000dfc: AND 00000dfd: DUP1 00000dfe: DUP5 00000dff: MSTORE 00000e00: PUSH1 0x05 00000e02: SWAP1 00000e03: SWAP6 00000e04: ADD 00000e05: DUP3 00000e06: MSTORE 00000e07: SWAP2 00000e08: DUP3 00000e09: SWAP1 00000e0a: KECCAK256 00000e0b: DUP8 00000e0c: SWAP1 00000e0d: SSTORE 00000e0e: SWAP1 00000e0f: MLOAD 00000e10: DUP7 00000e11: DUP2 00000e12: MSTORE 00000e13: SWAP2 00000e14: SWAP3 00000e15: SWAP2 00000e16: PUSH32 0xbfae88222d7885952627643deabf78bc1ff1ff0c2b37ccb824a35412d4b3a5e2 00000e37: SWAP2 00000e38: ADD 00000e39: PUSH2 0x0a03 00000e3c: JUMP 00000e3d: JUMPDEST 00000e3e: PUSH0 00000e3f: PUSH2 0x0e47 00000e42: DUP2 00000e43: PUSH2 0x1612 00000e46: JUMP 00000e47: JUMPDEST 00000e48: PUSH1 0x01 00000e4a: PUSH1 0x01 00000e4c: PUSH1 0xa0 00000e4e: SHL 00000e4f: SUB 00000e50: DUP1 00000e51: DUP6 00000e52: AND 00000e53: PUSH0 00000e54: SWAP1 00000e55: DUP2 00000e56: MSTORE 00000e57: PUSH1 0x07 00000e59: PUSH1 0x20 00000e5b: SWAP1 00000e5c: DUP2 00000e5d: MSTORE 00000e5e: PUSH1 0x40 00000e60: DUP1 00000e61: DUP4 00000e62: KECCAK256 00000e63: SWAP4 00000e64: DUP8 00000e65: AND 00000e66: DUP4 00000e67: MSTORE 00000e68: PUSH1 0x05 00000e6a: SWAP1 00000e6b: SWAP4 00000e6c: ADD 00000e6d: SWAP1 00000e6e: MSTORE 00000e6f: KECCAK256 00000e70: PUSH2 0x0e79 00000e73: SWAP1 00000e74: DUP4 00000e75: PUSH2 0x180c 00000e78: JUMP 00000e79: JUMPDEST 00000e7a: DUP4 00000e7b: PUSH1 0x01 00000e7d: PUSH1 0x01 00000e7f: PUSH1 0xa0 00000e81: SHL 00000e82: SUB 00000e83: AND 00000e84: DUP4 00000e85: PUSH1 0x01 00000e87: PUSH1 0x01 00000e89: PUSH1 0xa0 00000e8b: SHL 00000e8c: SUB 00000e8d: AND 00000e8e: PUSH32 0x2666a8e8d912db2513b24cb988c7969d3a7f65121bf3f353aa471984b2a2a6b7 00000eaf: DUP5 00000eb0: PUSH1 0x40 00000eb2: MLOAD 00000eb3: PUSH2 0x0a03 00000eb6: SWAP2 00000eb7: DUP2 00000eb8: MSTORE 00000eb9: PUSH1 0x20 00000ebb: ADD 00000ebc: SWAP1 00000ebd: JUMP 00000ebe: JUMPDEST 00000ebf: PUSH1 0x01 00000ec1: PUSH1 0x01 00000ec3: PUSH1 0xa0 00000ec5: SHL 00000ec6: SUB 00000ec7: DUP2 00000ec8: AND 00000ec9: PUSH0 00000eca: SWAP1 00000ecb: DUP2 00000ecc: MSTORE 00000ecd: PUSH1 0x07 00000ecf: PUSH1 0x20 00000ed1: MSTORE 00000ed2: PUSH1 0x40 00000ed4: DUP2 00000ed5: KECCAK256 00000ed6: PUSH2 0x08c5 00000ed9: SWAP1 00000eda: PUSH2 0x17f6 00000edd: JUMP 00000ede: JUMPDEST 00000edf: PUSH0 00000ee0: PUSH2 0x0ee8 00000ee3: DUP2 00000ee4: PUSH2 0x1612 00000ee7: JUMP 00000ee8: JUMPDEST 00000ee9: PUSH2 0x0ef3 00000eec: PUSH1 0x01 00000eee: DUP4 00000eef: PUSH2 0x1796 00000ef2: JUMP 00000ef3: JUMPDEST 00000ef4: PUSH1 0x40 00000ef6: MLOAD 00000ef7: DUP3 00000ef8: DUP2 00000ef9: MSTORE 00000efa: PUSH32 0x80ab31e93caeb03c74e133970df2d5966135fecf612eae54818a3a988a98477f 00000f1b: SWAP1 00000f1c: PUSH1 0x20 00000f1e: ADD 00000f1f: PUSH2 0x0a4c 00000f22: JUMP 00000f23: JUMPDEST 00000f24: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c 00000f45: PUSH2 0x0f4d 00000f48: DUP2 00000f49: PUSH2 0x1612 00000f4c: JUMP 00000f4d: JUMPDEST 00000f4e: PUSH2 0x0f55 00000f51: PUSH2 0x1860 00000f54: JUMP 00000f55: JUMPDEST 00000f56: PUSH2 0x0f60 00000f59: PUSH1 0x01 00000f5b: DUP4 00000f5c: PUSH2 0x18a1 00000f5f: JUMP 00000f60: JUMPDEST 00000f61: PUSH2 0x0f7d 00000f64: JUMPI 00000f65: PUSH1 0x40 00000f67: MLOAD 00000f68: PUSH4 0x1930e3c9 00000f6d: PUSH1 0xe1 00000f6f: SHL 00000f70: DUP2 00000f71: MSTORE 00000f72: PUSH1 0x04 00000f74: ADD 00000f75: PUSH1 0x40 00000f77: MLOAD 00000f78: DUP1 00000f79: SWAP2 00000f7a: SUB 00000f7b: SWAP1 00000f7c: REVERT 00000f7d: JUMPDEST 00000f7e: PUSH1 0x01 00000f80: PUSH1 0x01 00000f82: PUSH1 0xa0 00000f84: SHL 00000f85: SUB 00000f86: DUP4 00000f87: AND 00000f88: PUSH0 00000f89: SWAP1 00000f8a: DUP2 00000f8b: MSTORE 00000f8c: PUSH1 0x06 00000f8e: PUSH1 0x20 00000f90: MSTORE 00000f91: PUSH1 0x40 00000f93: SWAP1 00000f94: KECCAK256 00000f95: PUSH2 0x0f9e 00000f98: SWAP1 00000f99: DUP4 00000f9a: PUSH2 0x18a1 00000f9d: JUMP 00000f9e: JUMPDEST 00000f9f: PUSH2 0x0fbb 00000fa2: JUMPI 00000fa3: PUSH1 0x40 00000fa5: MLOAD 00000fa6: PUSH4 0x6212d28b 00000fab: PUSH1 0xe0 00000fad: SHL 00000fae: DUP2 00000faf: MSTORE 00000fb0: PUSH1 0x04 00000fb2: ADD 00000fb3: PUSH1 0x40 00000fb5: MLOAD 00000fb6: DUP1 00000fb7: SWAP2 00000fb8: SUB 00000fb9: SWAP1 00000fba: REVERT 00000fbb: JUMPDEST 00000fbc: PUSH0 00000fbd: DUP4 00000fbe: PUSH1 0x01 00000fc0: PUSH1 0x01 00000fc2: PUSH1 0xa0 00000fc4: SHL 00000fc5: SUB 00000fc6: AND 00000fc7: DUP4 00000fc8: PUSH1 0x40 00000fca: MLOAD 00000fcb: PUSH0 00000fcc: PUSH1 0x40 00000fce: MLOAD 00000fcf: DUP1 00000fd0: DUP4 00000fd1: SUB 00000fd2: DUP2 00000fd3: DUP6 00000fd4: DUP8 00000fd5: GAS 00000fd6: CALL 00000fd7: SWAP3 00000fd8: POP 00000fd9: POP 00000fda: POP 00000fdb: RETURNDATASIZE 00000fdc: DUP1 00000fdd: PUSH0 00000fde: DUP2 00000fdf: EQ 00000fe0: PUSH2 0x1004 00000fe3: JUMPI 00000fe4: PUSH1 0x40 00000fe6: MLOAD 00000fe7: SWAP2 00000fe8: POP 00000fe9: PUSH1 0x1f 00000feb: NOT 00000fec: PUSH1 0x3f 00000fee: RETURNDATASIZE 00000fef: ADD 00000ff0: AND 00000ff1: DUP3 00000ff2: ADD 00000ff3: PUSH1 0x40 00000ff5: MSTORE 00000ff6: RETURNDATASIZE 00000ff7: DUP3 00000ff8: MSTORE 00000ff9: RETURNDATASIZE 00000ffa: PUSH0 00000ffb: PUSH1 0x20 00000ffd: DUP5 00000ffe: ADD 00000fff: RETURNDATACOPY 00001000: PUSH2 0x1009 00001003: JUMP 00001004: JUMPDEST 00001005: PUSH1 0x60 00001007: SWAP2 00001008: POP 00001009: JUMPDEST 0000100a: POP 0000100b: POP 0000100c: SWAP1 0000100d: POP 0000100e: DUP1 0000100f: PUSH2 0x1044 00001012: JUMPI 00001013: PUSH1 0x40 00001015: MLOAD 00001016: PUSH32 0x81063e5100000000000000000000000000000000000000000000000000000000 00001037: DUP2 00001038: MSTORE 00001039: PUSH1 0x04 0000103b: ADD 0000103c: PUSH1 0x40 0000103e: MLOAD 0000103f: DUP1 00001040: SWAP2 00001041: SUB 00001042: SWAP1 00001043: REVERT 00001044: JUMPDEST 00001045: DUP4 00001046: PUSH1 0x01 00001048: PUSH1 0x01 0000104a: PUSH1 0xa0 0000104c: SHL 0000104d: SUB 0000104e: AND 0000104f: PUSH32 0x69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2 00001070: DUP5 00001071: PUSH1 0x40 00001073: MLOAD 00001074: PUSH2 0x107f 00001077: SWAP2 00001078: DUP2 00001079: MSTORE 0000107a: PUSH1 0x20 0000107c: ADD 0000107d: SWAP1 0000107e: JUMP 0000107f: JUMPDEST 00001080: PUSH1 0x40 00001082: MLOAD 00001083: DUP1 00001084: SWAP2 00001085: SUB 00001086: SWAP1 00001087: LOG2 00001088: POP 00001089: PUSH2 0x0b50 0000108c: PUSH1 0x01 0000108e: PUSH0 0000108f: SSTORE 00001090: JUMP 00001091: JUMPDEST 00001092: PUSH0 00001093: PUSH2 0x109b 00001096: DUP2 00001097: PUSH2 0x1612 0000109a: JUMP 0000109b: JUMPDEST 0000109c: PUSH2 0x10a6 0000109f: PUSH1 0x01 000010a1: DUP4 000010a2: PUSH2 0x180c 000010a5: JUMP 000010a6: JUMPDEST 000010a7: PUSH1 0x40 000010a9: MLOAD 000010aa: DUP3 000010ab: DUP2 000010ac: MSTORE 000010ad: PUSH32 0x7bf95ac3ba0f9edf010d6bd1b19da79d9d9b07d1d3c3ad9ac639f3e9519729bc 000010ce: SWAP1 000010cf: PUSH1 0x20 000010d1: ADD 000010d2: PUSH2 0x0a4c 000010d5: JUMP 000010d6: JUMPDEST 000010d7: PUSH1 0x01 000010d9: PUSH1 0x01 000010db: PUSH1 0xa0 000010dd: SHL 000010de: SUB 000010df: DUP1 000010e0: DUP3 000010e1: AND 000010e2: PUSH0 000010e3: SWAP1 000010e4: DUP2 000010e5: MSTORE 000010e6: PUSH1 0x07 000010e8: PUSH1 0x20 000010ea: SWAP1 000010eb: DUP2 000010ec: MSTORE 000010ed: PUSH1 0x40 000010ef: DUP1 000010f0: DUP4 000010f1: KECCAK256 000010f2: SWAP4 000010f3: DUP7 000010f4: AND 000010f5: DUP4 000010f6: MSTORE 000010f7: PUSH1 0x05 000010f9: SWAP1 000010fa: SWAP4 000010fb: ADD 000010fc: SWAP1 000010fd: MSTORE 000010fe: SWAP1 000010ff: DUP2 00001100: KECCAK256 00001101: PUSH2 0x1109 00001104: SWAP1 00001105: PUSH2 0x17f6 00001108: JUMP 00001109: JUMPDEST 0000110a: SWAP4 0000110b: SWAP3 0000110c: POP 0000110d: POP 0000110e: POP 0000110f: JUMP 00001110: JUMPDEST 00001111: PUSH0 00001112: PUSH2 0x111a 00001115: DUP2 00001116: PUSH2 0x1612 00001119: JUMP 0000111a: JUMPDEST 0000111b: PUSH1 0x01 0000111d: PUSH1 0x01 0000111f: PUSH1 0xa0 00001121: SHL 00001122: SUB 00001123: DUP4 00001124: AND 00001125: PUSH0 00001126: DUP2 00001127: DUP2 00001128: MSTORE 00001129: PUSH1 0x06 0000112b: PUSH1 0x20 0000112d: MSTORE 0000112e: PUSH1 0x40 00001130: SWAP1 00001131: DUP2 00001132: SWAP1 00001133: KECCAK256 00001134: DUP5 00001135: SWAP1 00001136: SSTORE 00001137: MLOAD 00001138: PUSH32 0x955e88a42936c33c90f7a228bfeccd15d4f8ff1163eb8337af6879df5c83b7df 00001159: SWAP1 0000115a: PUSH2 0x0af7 0000115d: SWAP1 0000115e: DUP6 0000115f: DUP2 00001160: MSTORE 00001161: PUSH1 0x20 00001163: ADD 00001164: SWAP1 00001165: JUMP 00001166: JUMPDEST 00001167: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00001188: DUP1 00001189: SLOAD 0000118a: PUSH9 0x010000000000000000 00001194: DUP2 00001195: DIV 00001196: PUSH1 0xff 00001198: AND 00001199: ISZERO 0000119a: SWAP1 0000119b: PUSH8 0xffffffffffffffff 000011a4: AND 000011a5: PUSH0 000011a6: DUP2 000011a7: ISZERO 000011a8: DUP1 000011a9: ISZERO 000011aa: PUSH2 0x11b0 000011ad: JUMPI 000011ae: POP 000011af: DUP3 000011b0: JUMPDEST 000011b1: SWAP1 000011b2: POP 000011b3: PUSH0 000011b4: DUP3 000011b5: PUSH8 0xffffffffffffffff 000011be: AND 000011bf: PUSH1 0x01 000011c1: EQ 000011c2: DUP1 000011c3: ISZERO 000011c4: PUSH2 0x11cc 000011c7: JUMPI 000011c8: POP 000011c9: ADDRESS 000011ca: EXTCODESIZE 000011cb: ISZERO 000011cc: JUMPDEST 000011cd: SWAP1 000011ce: POP 000011cf: DUP2 000011d0: ISZERO 000011d1: DUP1 000011d2: ISZERO 000011d3: PUSH2 0x11da 000011d6: JUMPI 000011d7: POP 000011d8: DUP1 000011d9: ISZERO 000011da: JUMPDEST 000011db: ISZERO 000011dc: PUSH2 0x11f8 000011df: JUMPI 000011e0: PUSH1 0x40 000011e2: MLOAD 000011e3: PUSH4 0xf92ee8a9 000011e8: PUSH1 0xe0 000011ea: SHL 000011eb: DUP2 000011ec: MSTORE 000011ed: PUSH1 0x04 000011ef: ADD 000011f0: PUSH1 0x40 000011f2: MLOAD 000011f3: DUP1 000011f4: SWAP2 000011f5: SUB 000011f6: SWAP1 000011f7: REVERT 000011f8: JUMPDEST 000011f9: DUP5 000011fa: SLOAD 000011fb: PUSH8 0xffffffffffffffff 00001204: NOT 00001205: AND 00001206: PUSH1 0x01 00001208: OR 00001209: DUP6 0000120a: SSTORE 0000120b: DUP4 0000120c: ISZERO 0000120d: PUSH2 0x122c 00001210: JUMPI 00001211: DUP5 00001212: SLOAD 00001213: PUSH9 0xff0000000000000000 0000121d: NOT 0000121e: AND 0000121f: PUSH9 0x010000000000000000 00001229: OR 0000122a: DUP6 0000122b: SSTORE 0000122c: JUMPDEST 0000122d: PUSH2 0x1234 00001230: PUSH2 0x18bf 00001233: JUMP 00001234: JUMPDEST 00001235: PUSH2 0x12ab 00001238: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c 00001259: PUSH32 0x19b29a04048f51eb9591acef31c8d25631a0f178287c237da958990d82c90400 0000127a: DUP1 0000127b: SLOAD 0000127c: PUSH1 0x01 0000127e: DUP2 0000127f: ADD 00001280: DUP3 00001281: SSTORE 00001282: PUSH0 00001283: SWAP2 00001284: SWAP1 00001285: SWAP2 00001286: MSTORE 00001287: PUSH32 0x2cae4504136210a96a15ce9f74b88bf785298cc8f14adcee9c25329511a4764b 000012a8: ADD 000012a9: SSTORE 000012aa: JUMP 000012ab: JUMPDEST 000012ac: PUSH2 0x12b4 000012af: DUP7 000012b0: PUSH2 0x181e 000012b3: JUMP 000012b4: JUMPDEST 000012b5: DUP4 000012b6: ISZERO 000012b7: PUSH2 0x12ff 000012ba: JUMPI 000012bb: DUP5 000012bc: SLOAD 000012bd: PUSH9 0xff0000000000000000 000012c7: NOT 000012c8: AND 000012c9: DUP6 000012ca: SSTORE 000012cb: PUSH1 0x40 000012cd: MLOAD 000012ce: PUSH1 0x01 000012d0: DUP2 000012d1: MSTORE 000012d2: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 000012f3: SWAP1 000012f4: PUSH1 0x20 000012f6: ADD 000012f7: PUSH1 0x40 000012f9: MLOAD 000012fa: DUP1 000012fb: SWAP2 000012fc: SUB 000012fd: SWAP1 000012fe: LOG1 000012ff: JUMPDEST 00001300: POP 00001301: POP 00001302: POP 00001303: POP 00001304: POP 00001305: POP 00001306: JUMP 00001307: JUMPDEST 00001308: PUSH0 00001309: PUSH2 0x1311 0000130c: DUP2 0000130d: PUSH2 0x1612 00001310: JUMP 00001311: JUMPDEST 00001312: PUSH0 00001313: PUSH2 0x131a 00001316: PUSH2 0x0b55 00001319: JUMP 0000131a: JUMPDEST 0000131b: SWAP1 0000131c: POP 0000131d: PUSH0 0000131e: JUMPDEST 0000131f: DUP2 00001320: MLOAD 00001321: DUP2 00001322: LT 00001323: ISZERO 00001324: PUSH2 0x0a9b 00001327: JUMPI 00001328: PUSH2 0x134a 0000132b: DUP3 0000132c: DUP3 0000132d: DUP2 0000132e: MLOAD 0000132f: DUP2 00001330: LT 00001331: PUSH2 0x133c 00001334: JUMPI 00001335: PUSH2 0x133c 00001338: PUSH2 0x2190 0000133b: JUMP 0000133c: JUMPDEST 0000133d: PUSH1 0x20 0000133f: MUL 00001340: PUSH1 0x20 00001342: ADD 00001343: ADD 00001344: MLOAD 00001345: DUP6 00001346: PUSH2 0x16f2 00001349: JUMP 0000134a: JUMPDEST 0000134b: POP 0000134c: PUSH1 0x01 0000134e: ADD 0000134f: PUSH2 0x131e 00001352: JUMP 00001353: JUMPDEST 00001354: PUSH0 00001355: DUP3 00001356: DUP2 00001357: MSTORE 00001358: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800 00001379: PUSH1 0x20 0000137b: MSTORE 0000137c: PUSH1 0x40 0000137e: SWAP1 0000137f: KECCAK256 00001380: PUSH1 0x01 00001382: ADD 00001383: SLOAD 00001384: PUSH2 0x138c 00001387: DUP2 00001388: PUSH2 0x1612 0000138b: JUMP 0000138c: JUMPDEST 0000138d: PUSH2 0x0a9b 00001390: DUP4 00001391: DUP4 00001392: PUSH2 0x16f2 00001395: JUMP 00001396: JUMPDEST 00001397: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c 000013b8: PUSH2 0x13c0 000013bb: DUP2 000013bc: PUSH2 0x1612 000013bf: JUMP 000013c0: JUMPDEST 000013c1: PUSH1 0x01 000013c3: PUSH1 0x01 000013c5: PUSH1 0xa0 000013c7: SHL 000013c8: SUB 000013c9: DUP3 000013ca: AND 000013cb: PUSH0 000013cc: SWAP1 000013cd: DUP2 000013ce: MSTORE 000013cf: PUSH1 0x07 000013d1: PUSH1 0x20 000013d3: MSTORE 000013d4: PUSH1 0x40 000013d6: SWAP1 000013d7: KECCAK256 000013d8: PUSH2 0x13e1 000013db: SWAP1 000013dc: DUP5 000013dd: PUSH2 0x18a1 000013e0: JUMP 000013e1: JUMPDEST 000013e2: PUSH2 0x13fe 000013e5: JUMPI 000013e6: PUSH1 0x40 000013e8: MLOAD 000013e9: PUSH4 0x1930e3c9 000013ee: PUSH1 0xe1 000013f0: SHL 000013f1: DUP2 000013f2: MSTORE 000013f3: PUSH1 0x04 000013f5: ADD 000013f6: PUSH1 0x40 000013f8: MLOAD 000013f9: DUP1 000013fa: SWAP2 000013fb: SUB 000013fc: SWAP1 000013fd: REVERT 000013fe: JUMPDEST 000013ff: PUSH1 0x01 00001401: PUSH1 0x01 00001403: PUSH1 0xa0 00001405: SHL 00001406: SUB 00001407: DUP1 00001408: DUP4 00001409: AND 0000140a: PUSH0 0000140b: SWAP1 0000140c: DUP2 0000140d: MSTORE 0000140e: PUSH1 0x07 00001410: PUSH1 0x20 00001412: SWAP1 00001413: DUP2 00001414: MSTORE 00001415: PUSH1 0x40 00001417: DUP1 00001418: DUP4 00001419: KECCAK256 0000141a: SWAP4 0000141b: DUP9 0000141c: AND 0000141d: DUP4 0000141e: MSTORE 0000141f: PUSH1 0x05 00001421: SWAP1 00001422: SWAP4 00001423: ADD 00001424: SWAP1 00001425: MSTORE 00001426: KECCAK256 00001427: PUSH2 0x1430 0000142a: SWAP1 0000142b: DUP5 0000142c: PUSH2 0x18a1 0000142f: JUMP 00001430: JUMPDEST 00001431: PUSH2 0x144d 00001434: JUMPI 00001435: PUSH1 0x40 00001437: MLOAD 00001438: PUSH4 0x6212d28b 0000143d: PUSH1 0xe0 0000143f: SHL 00001440: DUP2 00001441: MSTORE 00001442: PUSH1 0x04 00001444: ADD 00001445: PUSH1 0x40 00001447: MLOAD 00001448: DUP1 00001449: SWAP2 0000144a: SUB 0000144b: SWAP1 0000144c: REVERT 0000144d: JUMPDEST 0000144e: PUSH1 0x40 00001450: MLOAD 00001451: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 00001472: DUP2 00001473: MSTORE 00001474: PUSH1 0x01 00001476: PUSH1 0x01 00001478: PUSH1 0xa0 0000147a: SHL 0000147b: SUB 0000147c: DUP6 0000147d: DUP2 0000147e: AND 0000147f: PUSH1 0x04 00001481: DUP4 00001482: ADD 00001483: MSTORE 00001484: PUSH1 0x24 00001486: DUP3 00001487: ADD 00001488: DUP6 00001489: SWAP1 0000148a: MSTORE 0000148b: DUP4 0000148c: AND 0000148d: SWAP1 0000148e: PUSH4 0xa9059cbb 00001493: SWAP1 00001494: PUSH1 0x44 00001496: ADD 00001497: PUSH0 00001498: PUSH1 0x40 0000149a: MLOAD 0000149b: DUP1 0000149c: DUP4 0000149d: SUB 0000149e: DUP2 0000149f: PUSH0 000014a0: DUP8 000014a1: DUP1 000014a2: EXTCODESIZE 000014a3: ISZERO 000014a4: DUP1 000014a5: ISZERO 000014a6: PUSH2 0x14ad 000014a9: JUMPI 000014aa: PUSH0 000014ab: PUSH0 000014ac: REVERT 000014ad: JUMPDEST 000014ae: POP 000014af: GAS 000014b0: CALL 000014b1: ISZERO 000014b2: DUP1 000014b3: ISZERO 000014b4: PUSH2 0x14bf 000014b7: JUMPI 000014b8: RETURNDATASIZE 000014b9: PUSH0 000014ba: PUSH0 000014bb: RETURNDATACOPY 000014bc: RETURNDATASIZE 000014bd: PUSH0 000014be: REVERT 000014bf: JUMPDEST 000014c0: POP 000014c1: POP 000014c2: POP 000014c3: POP 000014c4: DUP2 000014c5: PUSH1 0x01 000014c7: PUSH1 0x01 000014c9: PUSH1 0xa0 000014cb: SHL 000014cc: SUB 000014cd: AND 000014ce: DUP5 000014cf: PUSH1 0x01 000014d1: PUSH1 0x01 000014d3: PUSH1 0xa0 000014d5: SHL 000014d6: SUB 000014d7: AND 000014d8: PUSH32 0x138dbc8474f748db86063dcef24cef1495bc73385a946f8d691128085e5ebec2 000014f9: DUP6 000014fa: PUSH1 0x40 000014fc: MLOAD 000014fd: PUSH2 0x0a03 00001500: SWAP2 00001501: DUP2 00001502: MSTORE 00001503: PUSH1 0x20 00001505: ADD 00001506: SWAP1 00001507: JUMP 00001508: JUMPDEST 00001509: PUSH0 0000150a: PUSH2 0x1512 0000150d: DUP2 0000150e: PUSH2 0x1612 00001511: JUMP 00001512: JUMPDEST 00001513: PUSH1 0x01 00001515: PUSH1 0x01 00001517: PUSH1 0xa0 00001519: SHL 0000151a: SUB 0000151b: DUP1 0000151c: DUP4 0000151d: AND 0000151e: PUSH0 0000151f: SWAP1 00001520: DUP2 00001521: MSTORE 00001522: PUSH1 0x07 00001524: PUSH1 0x20 00001526: SWAP1 00001527: DUP2 00001528: MSTORE 00001529: PUSH1 0x40 0000152b: DUP1 0000152c: DUP4 0000152d: KECCAK256 0000152e: SWAP4 0000152f: DUP8 00001530: AND 00001531: DUP4 00001532: MSTORE 00001533: PUSH1 0x05 00001535: SWAP1 00001536: SWAP4 00001537: ADD 00001538: SWAP1 00001539: MSTORE 0000153a: KECCAK256 0000153b: PUSH2 0x1543 0000153e: SWAP1 0000153f: PUSH2 0x17a0 00001542: JUMP 00001543: JUMPDEST 00001544: PUSH1 0x01 00001546: PUSH1 0x01 00001548: PUSH1 0xa0 0000154a: SHL 0000154b: SUB 0000154c: DUP1 0000154d: DUP4 0000154e: AND 0000154f: PUSH0 00001550: DUP2 00001551: DUP2 00001552: MSTORE 00001553: PUSH1 0x07 00001555: PUSH1 0x20 00001557: SWAP1 00001558: DUP2 00001559: MSTORE 0000155a: PUSH1 0x40 0000155c: DUP1 0000155d: DUP4 0000155e: KECCAK256 0000155f: SWAP5 00001560: DUP9 00001561: AND 00001562: DUP1 00001563: DUP5 00001564: MSTORE 00001565: PUSH1 0x05 00001567: SWAP1 00001568: SWAP6 00001569: ADD 0000156a: SWAP1 0000156b: SWAP2 0000156c: MSTORE 0000156d: DUP1 0000156e: DUP3 0000156f: KECCAK256 00001570: DUP3 00001571: DUP2 00001572: SSTORE 00001573: PUSH1 0x01 00001575: DUP2 00001576: ADD 00001577: DUP4 00001578: SWAP1 00001579: SSTORE 0000157a: PUSH1 0x02 0000157c: ADD 0000157d: DUP3 0000157e: SWAP1 0000157f: SSTORE 00001580: MLOAD 00001581: SWAP2 00001582: SWAP3 00001583: SWAP2 00001584: PUSH32 0xa53dcaabd1891533ffedc538c80436602c3db727cadf5eddb03066fbdc2092ac 000015a5: SWAP2 000015a6: SWAP1 000015a7: LOG3 000015a8: POP 000015a9: POP 000015aa: POP 000015ab: JUMP 000015ac: JUMPDEST 000015ad: PUSH0 000015ae: PUSH2 0x15b6 000015b1: DUP2 000015b2: PUSH2 0x1612 000015b5: JUMP 000015b6: JUMPDEST 000015b7: PUSH1 0x01 000015b9: PUSH1 0x01 000015bb: PUSH1 0xa0 000015bd: SHL 000015be: SUB 000015bf: DUP3 000015c0: AND 000015c1: PUSH0 000015c2: SWAP1 000015c3: DUP2 000015c4: MSTORE 000015c5: PUSH1 0x07 000015c7: PUSH1 0x20 000015c9: MSTORE 000015ca: PUSH1 0x40 000015cc: SWAP1 000015cd: KECCAK256 000015ce: PUSH2 0x15d7 000015d1: SWAP1 000015d2: DUP5 000015d3: PUSH2 0x180c 000015d6: JUMP 000015d7: JUMPDEST 000015d8: DUP2 000015d9: PUSH1 0x01 000015db: PUSH1 0x01 000015dd: PUSH1 0xa0 000015df: SHL 000015e0: SUB 000015e1: AND 000015e2: PUSH32 0x7ddcb49ae795340963d93aec904bc140610c9cf8fa9a3000205b9cf7f1b8f25f 00001603: DUP5 00001604: PUSH1 0x40 00001606: MLOAD 00001607: PUSH2 0x0af7 0000160a: SWAP2 0000160b: DUP2 0000160c: MSTORE 0000160d: PUSH1 0x20 0000160f: ADD 00001610: SWAP1 00001611: JUMP 00001612: JUMPDEST 00001613: PUSH2 0x161c 00001616: DUP2 00001617: CALLER 00001618: PUSH2 0x19de 0000161b: JUMP 0000161c: JUMPDEST 0000161d: POP 0000161e: JUMP 0000161f: JUMPDEST 00001620: PUSH0 00001621: DUP3 00001622: DUP2 00001623: MSTORE 00001624: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800 00001645: PUSH1 0x20 00001647: DUP2 00001648: DUP2 00001649: MSTORE 0000164a: PUSH1 0x40 0000164c: DUP1 0000164d: DUP5 0000164e: KECCAK256 0000164f: PUSH1 0x01 00001651: PUSH1 0x01 00001653: PUSH1 0xa0 00001655: SHL 00001656: SUB 00001657: DUP7 00001658: AND 00001659: DUP6 0000165a: MSTORE 0000165b: SWAP1 0000165c: SWAP2 0000165d: MSTORE 0000165e: DUP3 0000165f: KECCAK256 00001660: SLOAD 00001661: PUSH1 0xff 00001663: AND 00001664: PUSH2 0x16e2 00001667: JUMPI 00001668: PUSH0 00001669: DUP5 0000166a: DUP2 0000166b: MSTORE 0000166c: PUSH1 0x20 0000166e: DUP3 0000166f: DUP2 00001670: MSTORE 00001671: PUSH1 0x40 00001673: DUP1 00001674: DUP4 00001675: KECCAK256 00001676: PUSH1 0x01 00001678: PUSH1 0x01 0000167a: PUSH1 0xa0 0000167c: SHL 0000167d: SUB 0000167e: DUP8 0000167f: AND 00001680: DUP5 00001681: MSTORE 00001682: SWAP1 00001683: SWAP2 00001684: MSTORE 00001685: SWAP1 00001686: KECCAK256 00001687: DUP1 00001688: SLOAD 00001689: PUSH1 0xff 0000168b: NOT 0000168c: AND 0000168d: PUSH1 0x01 0000168f: OR 00001690: SWAP1 00001691: SSTORE 00001692: PUSH2 0x1698 00001695: CALLER 00001696: SWAP1 00001697: JUMP 00001698: JUMPDEST 00001699: PUSH1 0x01 0000169b: PUSH1 0x01 0000169d: PUSH1 0xa0 0000169f: SHL 000016a0: SUB 000016a1: AND 000016a2: DUP4 000016a3: PUSH1 0x01 000016a5: PUSH1 0x01 000016a7: PUSH1 0xa0 000016a9: SHL 000016aa: SUB 000016ab: AND 000016ac: DUP6 000016ad: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 000016ce: PUSH1 0x40 000016d0: MLOAD 000016d1: PUSH1 0x40 000016d3: MLOAD 000016d4: DUP1 000016d5: SWAP2 000016d6: SUB 000016d7: SWAP1 000016d8: LOG4 000016d9: PUSH1 0x01 000016db: SWAP2 000016dc: POP 000016dd: POP 000016de: PUSH2 0x08c5 000016e1: JUMP 000016e2: JUMPDEST 000016e3: PUSH0 000016e4: SWAP2 000016e5: POP 000016e6: POP 000016e7: PUSH2 0x08c5 000016ea: JUMP 000016eb: JUMPDEST 000016ec: POP 000016ed: SWAP3 000016ee: SWAP2 000016ef: POP 000016f0: POP 000016f1: JUMP 000016f2: JUMPDEST 000016f3: PUSH0 000016f4: DUP3 000016f5: DUP2 000016f6: MSTORE 000016f7: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800 00001718: PUSH1 0x20 0000171a: DUP2 0000171b: DUP2 0000171c: MSTORE 0000171d: PUSH1 0x40 0000171f: DUP1 00001720: DUP5 00001721: KECCAK256 00001722: PUSH1 0x01 00001724: PUSH1 0x01 00001726: PUSH1 0xa0 00001728: SHL 00001729: SUB 0000172a: DUP7 0000172b: AND 0000172c: DUP6 0000172d: MSTORE 0000172e: SWAP1 0000172f: SWAP2 00001730: MSTORE 00001731: DUP3 00001732: KECCAK256 00001733: SLOAD 00001734: PUSH1 0xff 00001736: AND 00001737: ISZERO 00001738: PUSH2 0x16e2 0000173b: JUMPI 0000173c: PUSH0 0000173d: DUP5 0000173e: DUP2 0000173f: MSTORE 00001740: PUSH1 0x20 00001742: DUP3 00001743: DUP2 00001744: MSTORE 00001745: PUSH1 0x40 00001747: DUP1 00001748: DUP4 00001749: KECCAK256 0000174a: PUSH1 0x01 0000174c: PUSH1 0x01 0000174e: PUSH1 0xa0 00001750: SHL 00001751: SUB 00001752: DUP8 00001753: AND 00001754: DUP1 00001755: DUP6 00001756: MSTORE 00001757: SWAP3 00001758: MSTORE 00001759: DUP1 0000175a: DUP4 0000175b: KECCAK256 0000175c: DUP1 0000175d: SLOAD 0000175e: PUSH1 0xff 00001760: NOT 00001761: AND 00001762: SWAP1 00001763: SSTORE 00001764: MLOAD 00001765: CALLER 00001766: SWAP3 00001767: DUP8 00001768: SWAP2 00001769: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 0000178a: SWAP2 0000178b: SWAP1 0000178c: LOG4 0000178d: PUSH1 0x01 0000178f: SWAP2 00001790: POP 00001791: POP 00001792: PUSH2 0x08c5 00001795: JUMP 00001796: JUMPDEST 00001797: PUSH2 0x0be0 0000179a: DUP3 0000179b: DUP3 0000179c: PUSH2 0x1a6e 0000179f: JUMP 000017a0: JUMPDEST 000017a1: PUSH1 0x01 000017a3: DUP2 000017a4: ADD 000017a5: SLOAD 000017a6: PUSH1 0x01 000017a8: PUSH1 0x01 000017aa: PUSH1 0x80 000017ac: SHL 000017ad: SUB 000017ae: AND 000017af: JUMPDEST 000017b0: PUSH1 0x01 000017b2: PUSH1 0x01 000017b4: PUSH1 0x80 000017b6: SHL 000017b7: SUB 000017b8: DUP2 000017b9: AND 000017ba: ISZERO 000017bb: PUSH2 0x0be0 000017be: JUMPI 000017bf: PUSH1 0x01 000017c1: PUSH1 0x01 000017c3: PUSH1 0x80 000017c5: SHL 000017c6: SUB 000017c7: DUP2 000017c8: AND 000017c9: PUSH0 000017ca: SWAP1 000017cb: DUP2 000017cc: MSTORE 000017cd: PUSH1 0x04 000017cf: DUP4 000017d0: ADD 000017d1: PUSH1 0x20 000017d3: MSTORE 000017d4: PUSH1 0x40 000017d6: DUP2 000017d7: KECCAK256 000017d8: DUP2 000017d9: DUP2 000017da: SSTORE 000017db: PUSH1 0x01 000017dd: SWAP1 000017de: DUP2 000017df: ADD 000017e0: SWAP2 000017e1: SWAP1 000017e2: SWAP2 000017e3: SSTORE 000017e4: PUSH2 0x17ef 000017e7: SWAP1 000017e8: DUP4 000017e9: ADD 000017ea: DUP3 000017eb: PUSH2 0x1b44 000017ee: JUMP 000017ef: JUMPDEST 000017f0: SWAP1 000017f1: POP 000017f2: PUSH2 0x17af 000017f5: JUMP 000017f6: JUMPDEST 000017f7: PUSH0 000017f8: PUSH2 0x1800 000017fb: DUP3 000017fc: PUSH2 0x1cb8 000017ff: JUMP 00001800: JUMPDEST 00001801: DUP3 00001802: SLOAD 00001803: PUSH2 0x08c5 00001806: SWAP2 00001807: SWAP1 00001808: PUSH2 0x21b8 0000180b: JUMP 0000180c: JUMPDEST 0000180d: PUSH2 0x0be0 00001810: DUP3 00001811: PUSH2 0x1819 00001814: DUP4 00001815: PUSH2 0x21d7 00001818: JUMP 00001819: JUMPDEST 0000181a: PUSH2 0x1a6e 0000181d: JUMP 0000181e: JUMPDEST 0000181f: PUSH0 00001820: PUSH2 0x1827 00001823: PUSH2 0x0b55 00001826: JUMP 00001827: JUMPDEST 00001828: SWAP1 00001829: POP 0000182a: PUSH0 0000182b: JUMPDEST 0000182c: DUP2 0000182d: MLOAD 0000182e: DUP2 0000182f: LT 00001830: ISZERO 00001831: PUSH2 0x0b50 00001834: JUMPI 00001835: PUSH2 0x1857 00001838: DUP3 00001839: DUP3 0000183a: DUP2 0000183b: MLOAD 0000183c: DUP2 0000183d: LT 0000183e: PUSH2 0x1849 00001841: JUMPI 00001842: PUSH2 0x1849 00001845: PUSH2 0x2190 00001848: JUMP 00001849: JUMPDEST 0000184a: PUSH1 0x20 0000184c: MUL 0000184d: PUSH1 0x20 0000184f: ADD 00001850: ADD 00001851: MLOAD 00001852: DUP5 00001853: PUSH2 0x161f 00001856: JUMP 00001857: JUMPDEST 00001858: POP 00001859: PUSH1 0x01 0000185b: ADD 0000185c: PUSH2 0x182b 0000185f: JUMP 00001860: JUMPDEST 00001861: PUSH1 0x02 00001863: PUSH0 00001864: SLOAD 00001865: SUB 00001866: PUSH2 0x189b 00001869: JUMPI 0000186a: PUSH1 0x40 0000186c: MLOAD 0000186d: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000 0000188e: DUP2 0000188f: MSTORE 00001890: PUSH1 0x04 00001892: ADD 00001893: PUSH1 0x40 00001895: MLOAD 00001896: DUP1 00001897: SWAP2 00001898: SUB 00001899: SWAP1 0000189a: REVERT 0000189b: JUMPDEST 0000189c: PUSH1 0x02 0000189e: PUSH0 0000189f: SSTORE 000018a0: JUMP 000018a1: JUMPDEST 000018a2: PUSH0 000018a3: PUSH2 0x18ac 000018a6: DUP4 000018a7: DUP4 000018a8: PUSH2 0x1a6e 000018ab: JUMP 000018ac: JUMPDEST 000018ad: PUSH0 000018ae: PUSH2 0x18b6 000018b1: DUP5 000018b2: PUSH2 0x17f6 000018b5: JUMP 000018b6: JUMPDEST 000018b7: SLT 000018b8: ISZERO 000018b9: SWAP4 000018ba: SWAP3 000018bb: POP 000018bc: POP 000018bd: POP 000018be: JUMP 000018bf: JUMPDEST 000018c0: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 000018e1: DUP1 000018e2: SLOAD 000018e3: PUSH9 0x010000000000000000 000018ed: DUP2 000018ee: DIV 000018ef: PUSH1 0xff 000018f1: AND 000018f2: ISZERO 000018f3: SWAP1 000018f4: PUSH8 0xffffffffffffffff 000018fd: AND 000018fe: PUSH0 000018ff: DUP2 00001900: ISZERO 00001901: DUP1 00001902: ISZERO 00001903: PUSH2 0x1909 00001906: JUMPI 00001907: POP 00001908: DUP3 00001909: JUMPDEST 0000190a: SWAP1 0000190b: POP 0000190c: PUSH0 0000190d: DUP3 0000190e: PUSH8 0xffffffffffffffff 00001917: AND 00001918: PUSH1 0x01 0000191a: EQ 0000191b: DUP1 0000191c: ISZERO 0000191d: PUSH2 0x1925 00001920: JUMPI 00001921: POP 00001922: ADDRESS 00001923: EXTCODESIZE 00001924: ISZERO 00001925: JUMPDEST 00001926: SWAP1 00001927: POP 00001928: DUP2 00001929: ISZERO 0000192a: DUP1 0000192b: ISZERO 0000192c: PUSH2 0x1933 0000192f: JUMPI 00001930: POP 00001931: DUP1 00001932: ISZERO 00001933: JUMPDEST 00001934: ISZERO 00001935: PUSH2 0x1951 00001938: JUMPI 00001939: PUSH1 0x40 0000193b: MLOAD 0000193c: PUSH4 0xf92ee8a9 00001941: PUSH1 0xe0 00001943: SHL 00001944: DUP2 00001945: MSTORE 00001946: PUSH1 0x04 00001948: ADD 00001949: PUSH1 0x40 0000194b: MLOAD 0000194c: DUP1 0000194d: SWAP2 0000194e: SUB 0000194f: SWAP1 00001950: REVERT 00001951: JUMPDEST 00001952: DUP5 00001953: SLOAD 00001954: PUSH8 0xffffffffffffffff 0000195d: NOT 0000195e: AND 0000195f: PUSH1 0x01 00001961: OR 00001962: DUP6 00001963: SSTORE 00001964: DUP4 00001965: ISZERO 00001966: PUSH2 0x1985 00001969: JUMPI 0000196a: DUP5 0000196b: SLOAD 0000196c: PUSH9 0xff0000000000000000 00001976: NOT 00001977: AND 00001978: PUSH9 0x010000000000000000 00001982: OR 00001983: DUP6 00001984: SSTORE 00001985: JUMPDEST 00001986: PUSH2 0x198d 00001989: PUSH2 0x1d59 0000198c: JUMP 0000198d: JUMPDEST 0000198e: DUP4 0000198f: ISZERO 00001990: PUSH2 0x097b 00001993: JUMPI 00001994: DUP5 00001995: SLOAD 00001996: PUSH9 0xff0000000000000000 000019a0: NOT 000019a1: AND 000019a2: DUP6 000019a3: SSTORE 000019a4: PUSH1 0x40 000019a6: MLOAD 000019a7: PUSH1 0x01 000019a9: DUP2 000019aa: MSTORE 000019ab: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 000019cc: SWAP1 000019cd: PUSH1 0x20 000019cf: ADD 000019d0: PUSH1 0x40 000019d2: MLOAD 000019d3: DUP1 000019d4: SWAP2 000019d5: SUB 000019d6: SWAP1 000019d7: LOG1 000019d8: POP 000019d9: POP 000019da: POP 000019db: POP 000019dc: POP 000019dd: JUMP 000019de: JUMPDEST 000019df: PUSH0 000019e0: DUP3 000019e1: DUP2 000019e2: MSTORE 000019e3: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800 00001a04: PUSH1 0x20 00001a06: SWAP1 00001a07: DUP2 00001a08: MSTORE 00001a09: PUSH1 0x40 00001a0b: DUP1 00001a0c: DUP4 00001a0d: KECCAK256 00001a0e: PUSH1 0x01 00001a10: PUSH1 0x01 00001a12: PUSH1 0xa0 00001a14: SHL 00001a15: SUB 00001a16: DUP6 00001a17: AND 00001a18: DUP5 00001a19: MSTORE 00001a1a: SWAP1 00001a1b: SWAP2 00001a1c: MSTORE 00001a1d: SWAP1 00001a1e: KECCAK256 00001a1f: SLOAD 00001a20: PUSH1 0xff 00001a22: AND 00001a23: PUSH2 0x0be0 00001a26: JUMPI 00001a27: PUSH1 0x40 00001a29: MLOAD 00001a2a: PUSH32 0xe2517d3f00000000000000000000000000000000000000000000000000000000 00001a4b: DUP2 00001a4c: MSTORE 00001a4d: PUSH1 0x01 00001a4f: PUSH1 0x01 00001a51: PUSH1 0xa0 00001a53: SHL 00001a54: SUB 00001a55: DUP3 00001a56: AND 00001a57: PUSH1 0x04 00001a59: DUP3 00001a5a: ADD 00001a5b: MSTORE 00001a5c: PUSH1 0x24 00001a5e: DUP2 00001a5f: ADD 00001a60: DUP4 00001a61: SWAP1 00001a62: MSTORE 00001a63: PUSH1 0x44 00001a65: ADD 00001a66: PUSH1 0x40 00001a68: MLOAD 00001a69: DUP1 00001a6a: SWAP2 00001a6b: SUB 00001a6c: SWAP1 00001a6d: REVERT 00001a6e: JUMPDEST 00001a6f: PUSH1 0x01 00001a71: DUP3 00001a72: ADD 00001a73: SLOAD 00001a74: PUSH1 0x01 00001a76: PUSH1 0x01 00001a78: PUSH1 0x80 00001a7a: SHL 00001a7b: SUB 00001a7c: AND 00001a7d: JUMPDEST 00001a7e: PUSH1 0x01 00001a80: PUSH1 0x01 00001a82: PUSH1 0x80 00001a84: SHL 00001a85: SUB 00001a86: DUP2 00001a87: AND 00001a88: ISZERO 00001a89: PUSH2 0x1af3 00001a8c: JUMPI 00001a8d: PUSH2 0x1a99 00001a90: PUSH3 0x015180 00001a94: TIMESTAMP 00001a95: PUSH2 0x220d 00001a98: JUMP 00001a99: JUMPDEST 00001a9a: PUSH1 0x01 00001a9c: PUSH1 0x01 00001a9e: PUSH1 0x80 00001aa0: SHL 00001aa1: SUB 00001aa2: DUP3 00001aa3: AND 00001aa4: PUSH0 00001aa5: SWAP1 00001aa6: DUP2 00001aa7: MSTORE 00001aa8: PUSH1 0x04 00001aaa: DUP6 00001aab: ADD 00001aac: PUSH1 0x20 00001aae: MSTORE 00001aaf: PUSH1 0x40 00001ab1: SWAP1 00001ab2: KECCAK256 00001ab3: PUSH1 0x01 00001ab5: ADD 00001ab6: SLOAD 00001ab7: GT 00001ab8: PUSH2 0x1af3 00001abb: JUMPI 00001abc: PUSH1 0x01 00001abe: PUSH1 0x01 00001ac0: PUSH1 0x80 00001ac2: SHL 00001ac3: SUB 00001ac4: DUP2 00001ac5: AND 00001ac6: PUSH0 00001ac7: SWAP1 00001ac8: DUP2 00001ac9: MSTORE 00001aca: PUSH1 0x04 00001acc: DUP5 00001acd: ADD 00001ace: PUSH1 0x20 00001ad0: MSTORE 00001ad1: PUSH1 0x40 00001ad3: DUP2 00001ad4: KECCAK256 00001ad5: DUP2 00001ad6: DUP2 00001ad7: SSTORE 00001ad8: PUSH1 0x01 00001ada: SWAP1 00001adb: DUP2 00001adc: ADD 00001add: SWAP2 00001ade: SWAP1 00001adf: SWAP2 00001ae0: SSTORE 00001ae1: PUSH2 0x1aec 00001ae4: SWAP1 00001ae5: DUP5 00001ae6: ADD 00001ae7: DUP3 00001ae8: PUSH2 0x1b44 00001aeb: JUMP 00001aec: JUMPDEST 00001aed: SWAP1 00001aee: POP 00001aef: PUSH2 0x1a7d 00001af2: JUMP 00001af3: JUMPDEST 00001af4: PUSH1 0x40 00001af6: MLOAD 00001af7: DUP1 00001af8: PUSH1 0x40 00001afa: ADD 00001afb: PUSH1 0x40 00001afd: MSTORE 00001afe: DUP1 00001aff: DUP4 00001b00: DUP2 00001b01: MSTORE 00001b02: PUSH1 0x20 00001b04: ADD 00001b05: TIMESTAMP 00001b06: DUP2 00001b07: MSTORE 00001b08: POP 00001b09: DUP4 00001b0a: PUSH1 0x04 00001b0c: ADD 00001b0d: PUSH0 00001b0e: PUSH2 0x1b19 00001b11: DUP7 00001b12: PUSH1 0x01 00001b14: ADD 00001b15: PUSH2 0x1e74 00001b18: JUMP 00001b19: JUMPDEST 00001b1a: PUSH1 0x01 00001b1c: PUSH1 0x01 00001b1e: PUSH1 0x80 00001b20: SHL 00001b21: SUB 00001b22: AND 00001b23: DUP2 00001b24: MSTORE 00001b25: PUSH1 0x20 00001b27: DUP1 00001b28: DUP3 00001b29: ADD 00001b2a: SWAP3 00001b2b: SWAP1 00001b2c: SWAP3 00001b2d: MSTORE 00001b2e: PUSH1 0x40 00001b30: ADD 00001b31: PUSH0 00001b32: KECCAK256 00001b33: DUP3 00001b34: MLOAD 00001b35: DUP2 00001b36: SSTORE 00001b37: SWAP2 00001b38: ADD 00001b39: MLOAD 00001b3a: PUSH1 0x01 00001b3c: SWAP1 00001b3d: SWAP2 00001b3e: ADD 00001b3f: SSTORE 00001b40: POP 00001b41: POP 00001b42: POP 00001b43: JUMP 00001b44: JUMPDEST 00001b45: PUSH1 0x01 00001b47: PUSH1 0x01 00001b49: PUSH1 0x80 00001b4b: SHL 00001b4c: SUB 00001b4d: DUP1 00001b4e: DUP3 00001b4f: AND 00001b50: PUSH0 00001b51: SWAP1 00001b52: DUP2 00001b53: MSTORE 00001b54: PUSH1 0x02 00001b56: DUP5 00001b57: ADD 00001b58: PUSH1 0x20 00001b5a: MSTORE 00001b5b: PUSH1 0x40 00001b5d: DUP2 00001b5e: KECCAK256 00001b5f: DUP1 00001b60: SLOAD 00001b61: SWAP2 00001b62: SWAP3 00001b63: SWAP1 00001b64: SWAP2 00001b65: AND 00001b66: ISZERO 00001b67: PUSH2 0x1ba1 00001b6a: JUMPI 00001b6b: DUP1 00001b6c: SLOAD 00001b6d: PUSH1 0x01 00001b6f: PUSH1 0x01 00001b71: PUSH1 0x80 00001b73: SHL 00001b74: SUB 00001b75: DUP1 00001b76: DUP3 00001b77: AND 00001b78: PUSH0 00001b79: SWAP1 00001b7a: DUP2 00001b7b: MSTORE 00001b7c: PUSH1 0x02 00001b7e: DUP8 00001b7f: ADD 00001b80: PUSH1 0x20 00001b82: MSTORE 00001b83: PUSH1 0x40 00001b85: SWAP1 00001b86: KECCAK256 00001b87: DUP1 00001b88: SLOAD 00001b89: DUP3 00001b8a: AND 00001b8b: PUSH1 0x01 00001b8d: PUSH1 0x80 00001b8f: SHL 00001b90: SWAP4 00001b91: DUP5 00001b92: SWAP1 00001b93: DIV 00001b94: SWAP1 00001b95: SWAP3 00001b96: AND 00001b97: SWAP1 00001b98: SWAP3 00001b99: MUL 00001b9a: OR 00001b9b: SWAP1 00001b9c: SSTORE 00001b9d: PUSH2 0x1bcf 00001ba0: JUMP 00001ba1: JUMPDEST 00001ba2: DUP1 00001ba3: SLOAD 00001ba4: DUP5 00001ba5: SLOAD 00001ba6: PUSH1 0x01 00001ba8: PUSH1 0x80 00001baa: SHL 00001bab: SWAP1 00001bac: SWAP2 00001bad: DIV 00001bae: PUSH1 0x01 00001bb0: PUSH1 0x01 00001bb2: PUSH1 0x80 00001bb4: SHL 00001bb5: SUB 00001bb6: AND 00001bb7: PUSH16 0xffffffffffffffffffffffffffffffff 00001bc8: NOT 00001bc9: SWAP1 00001bca: SWAP2 00001bcb: AND 00001bcc: OR 00001bcd: DUP5 00001bce: SSTORE 00001bcf: JUMPDEST 00001bd0: DUP1 00001bd1: SLOAD 00001bd2: PUSH1 0x01 00001bd4: PUSH1 0x80 00001bd6: SHL 00001bd7: SWAP1 00001bd8: DIV 00001bd9: PUSH1 0x01 00001bdb: PUSH1 0x01 00001bdd: PUSH1 0x80 00001bdf: SHL 00001be0: SUB 00001be1: AND 00001be2: ISZERO 00001be3: PUSH2 0x1c2a 00001be6: JUMPI 00001be7: DUP1 00001be8: SLOAD 00001be9: PUSH1 0x01 00001beb: PUSH1 0x80 00001bed: SHL 00001bee: DUP2 00001bef: DIV 00001bf0: PUSH1 0x01 00001bf2: PUSH1 0x01 00001bf4: PUSH1 0x80 00001bf6: SHL 00001bf7: SUB 00001bf8: SWAP1 00001bf9: DUP2 00001bfa: AND 00001bfb: PUSH0 00001bfc: SWAP1 00001bfd: DUP2 00001bfe: MSTORE 00001bff: PUSH1 0x02 00001c01: DUP8 00001c02: ADD 00001c03: PUSH1 0x20 00001c05: MSTORE 00001c06: PUSH1 0x40 00001c08: SWAP1 00001c09: KECCAK256 00001c0a: DUP1 00001c0b: SLOAD 00001c0c: PUSH16 0xffffffffffffffffffffffffffffffff 00001c1d: NOT 00001c1e: AND 00001c1f: SWAP2 00001c20: SWAP1 00001c21: SWAP3 00001c22: AND 00001c23: OR 00001c24: SWAP1 00001c25: SSTORE 00001c26: PUSH2 0x1c45 00001c29: JUMP 00001c2a: JUMPDEST 00001c2b: DUP1 00001c2c: SLOAD 00001c2d: DUP5 00001c2e: SLOAD 00001c2f: PUSH1 0x01 00001c31: PUSH1 0x80 00001c33: SHL 00001c34: PUSH1 0x01 00001c36: PUSH1 0x01 00001c38: PUSH1 0x80 00001c3a: SHL 00001c3b: SUB 00001c3c: SWAP3 00001c3d: DUP4 00001c3e: AND 00001c3f: MUL 00001c40: SWAP2 00001c41: AND 00001c42: OR 00001c43: DUP5 00001c44: SSTORE 00001c45: JUMPDEST 00001c46: PUSH1 0x01 00001c48: PUSH1 0x01 00001c4a: PUSH1 0x80 00001c4c: SHL 00001c4d: SUB 00001c4e: DUP1 00001c4f: DUP5 00001c50: AND 00001c51: PUSH0 00001c52: SWAP1 00001c53: DUP2 00001c54: MSTORE 00001c55: PUSH1 0x02 00001c57: DUP7 00001c58: ADD 00001c59: PUSH1 0x20 00001c5b: MSTORE 00001c5c: PUSH1 0x40 00001c5e: DUP2 00001c5f: KECCAK256 00001c60: DUP1 00001c61: SLOAD 00001c62: SWAP2 00001c63: SWAP1 00001c64: SSTORE 00001c65: PUSH1 0x01 00001c67: DUP7 00001c68: ADD 00001c69: DUP1 00001c6a: SLOAD 00001c6b: PUSH1 0x01 00001c6d: PUSH1 0x80 00001c6f: SHL 00001c70: SWAP3 00001c71: DUP4 00001c72: SWAP1 00001c73: DIV 00001c74: DUP5 00001c75: AND 00001c76: SWAP4 00001c77: SWAP3 00001c78: SWAP1 00001c79: DIV 00001c7a: SWAP1 00001c7b: SWAP2 00001c7c: AND 00001c7d: SWAP1 00001c7e: PUSH1 0x10 00001c80: PUSH2 0x1c88 00001c83: DUP4 00001c84: PUSH2 0x2220 00001c87: JUMP 00001c88: JUMPDEST 00001c89: SWAP2 00001c8a: SWAP1 00001c8b: PUSH2 0x0100 00001c8e: EXP 00001c8f: DUP2 00001c90: SLOAD 00001c91: DUP2 00001c92: PUSH1 0x01 00001c94: PUSH1 0x01 00001c96: PUSH1 0x80 00001c98: SHL 00001c99: SUB 00001c9a: MUL 00001c9b: NOT 00001c9c: AND 00001c9d: SWAP1 00001c9e: DUP4 00001c9f: PUSH1 0x01 00001ca1: PUSH1 0x01 00001ca3: PUSH1 0x80 00001ca5: SHL 00001ca6: SUB 00001ca7: AND 00001ca8: MUL 00001ca9: OR 00001caa: SWAP1 00001cab: SSTORE 00001cac: POP 00001cad: POP 00001cae: DUP1 00001caf: SWAP3 00001cb0: POP 00001cb1: POP 00001cb2: POP 00001cb3: SWAP3 00001cb4: SWAP2 00001cb5: POP 00001cb6: POP 00001cb7: JUMP 00001cb8: JUMPDEST 00001cb9: PUSH1 0x01 00001cbb: DUP2 00001cbc: ADD 00001cbd: SLOAD 00001cbe: PUSH0 00001cbf: SWAP1 00001cc0: DUP2 00001cc1: SWAP1 00001cc2: PUSH1 0x01 00001cc4: PUSH1 0x01 00001cc6: PUSH1 0x80 00001cc8: SHL 00001cc9: SUB 00001cca: AND 00001ccb: JUMPDEST 00001ccc: PUSH1 0x01 00001cce: PUSH1 0x01 00001cd0: PUSH1 0x80 00001cd2: SHL 00001cd3: SUB 00001cd4: DUP2 00001cd5: AND 00001cd6: ISZERO 00001cd7: PUSH2 0x16eb 00001cda: JUMPI 00001cdb: PUSH2 0x1ce7 00001cde: PUSH3 0x015180 00001ce2: TIMESTAMP 00001ce3: PUSH2 0x220d 00001ce6: JUMP 00001ce7: JUMPDEST 00001ce8: PUSH1 0x01 00001cea: PUSH1 0x01 00001cec: PUSH1 0x80 00001cee: SHL 00001cef: SUB 00001cf0: DUP3 00001cf1: AND 00001cf2: PUSH0 00001cf3: SWAP1 00001cf4: DUP2 00001cf5: MSTORE 00001cf6: PUSH1 0x04 00001cf8: DUP7 00001cf9: ADD 00001cfa: PUSH1 0x20 00001cfc: MSTORE 00001cfd: PUSH1 0x40 00001cff: SWAP1 00001d00: KECCAK256 00001d01: PUSH1 0x01 00001d03: ADD 00001d04: SLOAD 00001d05: GT 00001d06: ISZERO 00001d07: PUSH2 0x1d31 00001d0a: JUMPI 00001d0b: PUSH1 0x01 00001d0d: PUSH1 0x01 00001d0f: PUSH1 0x80 00001d11: SHL 00001d12: SUB 00001d13: DUP2 00001d14: AND 00001d15: PUSH0 00001d16: SWAP1 00001d17: DUP2 00001d18: MSTORE 00001d19: PUSH1 0x04 00001d1b: DUP6 00001d1c: ADD 00001d1d: PUSH1 0x20 00001d1f: MSTORE 00001d20: PUSH1 0x40 00001d22: SWAP1 00001d23: KECCAK256 00001d24: SLOAD 00001d25: PUSH2 0x1d2e 00001d28: SWAP1 00001d29: DUP4 00001d2a: PUSH2 0x2241 00001d2d: JUMP 00001d2e: JUMPDEST 00001d2f: SWAP2 00001d30: POP 00001d31: JUMPDEST 00001d32: PUSH1 0x01 00001d34: PUSH1 0x01 00001d36: PUSH1 0x80 00001d38: SHL 00001d39: SUB 00001d3a: SWAP1 00001d3b: DUP2 00001d3c: AND 00001d3d: PUSH0 00001d3e: SWAP1 00001d3f: DUP2 00001d40: MSTORE 00001d41: PUSH1 0x03 00001d43: DUP6 00001d44: ADD 00001d45: PUSH1 0x20 00001d47: MSTORE 00001d48: PUSH1 0x40 00001d4a: SWAP1 00001d4b: KECCAK256 00001d4c: SLOAD 00001d4d: PUSH1 0x01 00001d4f: PUSH1 0x80 00001d51: SHL 00001d52: SWAP1 00001d53: DIV 00001d54: AND 00001d55: PUSH2 0x1ccb 00001d58: JUMP 00001d59: JUMPDEST 00001d5a: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00001d7b: DUP1 00001d7c: SLOAD 00001d7d: PUSH9 0x010000000000000000 00001d87: DUP2 00001d88: DIV 00001d89: PUSH1 0xff 00001d8b: AND 00001d8c: ISZERO 00001d8d: SWAP1 00001d8e: PUSH8 0xffffffffffffffff 00001d97: AND 00001d98: PUSH0 00001d99: DUP2 00001d9a: ISZERO 00001d9b: DUP1 00001d9c: ISZERO 00001d9d: PUSH2 0x1da3 00001da0: JUMPI 00001da1: POP 00001da2: DUP3 00001da3: JUMPDEST 00001da4: SWAP1 00001da5: POP 00001da6: PUSH0 00001da7: DUP3 00001da8: PUSH8 0xffffffffffffffff 00001db1: AND 00001db2: PUSH1 0x01 00001db4: EQ 00001db5: DUP1 00001db6: ISZERO 00001db7: PUSH2 0x1dbf 00001dba: JUMPI 00001dbb: POP 00001dbc: ADDRESS 00001dbd: EXTCODESIZE 00001dbe: ISZERO 00001dbf: JUMPDEST 00001dc0: SWAP1 00001dc1: POP 00001dc2: DUP2 00001dc3: ISZERO 00001dc4: DUP1 00001dc5: ISZERO 00001dc6: PUSH2 0x1dcd 00001dc9: JUMPI 00001dca: POP 00001dcb: DUP1 00001dcc: ISZERO 00001dcd: JUMPDEST 00001dce: ISZERO 00001dcf: PUSH2 0x1deb 00001dd2: JUMPI 00001dd3: PUSH1 0x40 00001dd5: MLOAD 00001dd6: PUSH4 0xf92ee8a9 00001ddb: PUSH1 0xe0 00001ddd: SHL 00001dde: DUP2 00001ddf: MSTORE 00001de0: PUSH1 0x04 00001de2: ADD 00001de3: PUSH1 0x40 00001de5: MLOAD 00001de6: DUP1 00001de7: SWAP2 00001de8: SUB 00001de9: SWAP1 00001dea: REVERT 00001deb: JUMPDEST 00001dec: DUP5 00001ded: SLOAD 00001dee: PUSH8 0xffffffffffffffff 00001df7: NOT 00001df8: AND 00001df9: PUSH1 0x01 00001dfb: OR 00001dfc: DUP6 00001dfd: SSTORE 00001dfe: DUP4 00001dff: ISZERO 00001e00: PUSH2 0x1e1f 00001e03: JUMPI 00001e04: DUP5 00001e05: SLOAD 00001e06: PUSH9 0xff0000000000000000 00001e10: NOT 00001e11: AND 00001e12: PUSH9 0x010000000000000000 00001e1c: OR 00001e1d: DUP6 00001e1e: SSTORE 00001e1f: JUMPDEST 00001e20: PUSH32 0x19b29a04048f51eb9591acef31c8d25631a0f178287c237da958990d82c90400 00001e41: DUP1 00001e42: SLOAD 00001e43: PUSH1 0x01 00001e45: DUP2 00001e46: ADD 00001e47: DUP3 00001e48: SSTORE 00001e49: PUSH0 00001e4a: SWAP2 00001e4b: DUP3 00001e4c: MSTORE 00001e4d: PUSH32 0x2cae4504136210a96a15ce9f74b88bf785298cc8f14adcee9c25329511a4764b 00001e6e: ADD 00001e6f: SSTORE 00001e70: PUSH2 0x198d 00001e73: JUMP 00001e74: JUMPDEST 00001e75: PUSH1 0x01 00001e77: DUP2 00001e78: ADD 00001e79: DUP1 00001e7a: SLOAD 00001e7b: PUSH0 00001e7c: SWAP2 00001e7d: PUSH1 0x01 00001e7f: PUSH1 0x01 00001e81: PUSH1 0x80 00001e83: SHL 00001e84: SUB 00001e85: SWAP1 00001e86: SWAP2 00001e87: AND 00001e88: SWAP1 00001e89: DUP3 00001e8a: PUSH2 0x1e92 00001e8d: DUP4 00001e8e: PUSH2 0x2268 00001e91: JUMP 00001e92: JUMPDEST 00001e93: DUP3 00001e94: SLOAD 00001e95: PUSH2 0x0100 00001e98: SWAP3 00001e99: SWAP1 00001e9a: SWAP3 00001e9b: EXP 00001e9c: PUSH1 0x01 00001e9e: PUSH1 0x01 00001ea0: PUSH1 0x80 00001ea2: SHL 00001ea3: SUB 00001ea4: DUP2 00001ea5: DUP2 00001ea6: MUL 00001ea7: NOT 00001ea8: SWAP1 00001ea9: SWAP4 00001eaa: AND 00001eab: SWAP2 00001eac: DUP4 00001ead: AND 00001eae: MUL 00001eaf: OR 00001eb0: SWAP1 00001eb1: SWAP2 00001eb2: SSTORE 00001eb3: DUP4 00001eb4: SLOAD 00001eb5: PUSH1 0x01 00001eb7: PUSH1 0x80 00001eb9: SHL 00001eba: SWAP1 00001ebb: DIV 00001ebc: AND 00001ebd: ISZERO 00001ebe: SWAP1 00001ebf: POP 00001ec0: PUSH2 0x1f29 00001ec3: JUMPI 00001ec4: DUP2 00001ec5: SLOAD 00001ec6: PUSH1 0x01 00001ec8: DUP4 00001ec9: ADD 00001eca: DUP1 00001ecb: SLOAD 00001ecc: PUSH1 0x01 00001ece: PUSH1 0x01 00001ed0: PUSH1 0x80 00001ed2: SHL 00001ed3: SUB 00001ed4: SWAP1 00001ed5: DUP2 00001ed6: AND 00001ed7: PUSH0 00001ed8: SWAP1 00001ed9: DUP2 00001eda: MSTORE 00001edb: PUSH1 0x02 00001edd: DUP7 00001ede: ADD 00001edf: PUSH1 0x20 00001ee1: MSTORE 00001ee2: PUSH1 0x40 00001ee4: DUP1 00001ee5: DUP3 00001ee6: KECCAK256 00001ee7: DUP1 00001ee8: SLOAD 00001ee9: PUSH16 0xffffffffffffffffffffffffffffffff 00001efa: NOT 00001efb: AND 00001efc: PUSH1 0x01 00001efe: PUSH1 0x80 00001f00: SHL 00001f01: SWAP7 00001f02: DUP8 00001f03: SWAP1 00001f04: DIV 00001f05: DUP6 00001f06: AND 00001f07: OR 00001f08: SWAP1 00001f09: SSTORE 00001f0a: SWAP3 00001f0b: SLOAD 00001f0c: DUP7 00001f0d: SLOAD 00001f0e: DUP6 00001f0f: SWAP1 00001f10: DIV 00001f11: DUP4 00001f12: AND 00001f13: DUP3 00001f14: MSTORE 00001f15: SWAP3 00001f16: SWAP1 00001f17: KECCAK256 00001f18: DUP1 00001f19: SLOAD 00001f1a: SWAP3 00001f1b: DUP3 00001f1c: AND 00001f1d: SWAP1 00001f1e: SWAP4 00001f1f: MUL 00001f20: SWAP2 00001f21: AND 00001f22: OR 00001f23: SWAP1 00001f24: SSTORE 00001f25: PUSH2 0x1f52 00001f28: JUMP 00001f29: JUMPDEST 00001f2a: PUSH1 0x01 00001f2c: DUP3 00001f2d: ADD 00001f2e: SLOAD 00001f2f: DUP3 00001f30: SLOAD 00001f31: PUSH16 0xffffffffffffffffffffffffffffffff 00001f42: NOT 00001f43: AND 00001f44: PUSH1 0x01 00001f46: PUSH1 0x01 00001f48: PUSH1 0x80 00001f4a: SHL 00001f4b: SUB 00001f4c: SWAP1 00001f4d: SWAP2 00001f4e: AND 00001f4f: OR 00001f50: DUP3 00001f51: SSTORE 00001f52: JUMPDEST 00001f53: PUSH1 0x01 00001f55: DUP3 00001f56: ADD 00001f57: DUP1 00001f58: SLOAD 00001f59: DUP4 00001f5a: SLOAD 00001f5b: PUSH1 0x01 00001f5d: PUSH1 0x80 00001f5f: SHL 00001f60: PUSH1 0x01 00001f62: PUSH1 0x01 00001f64: PUSH1 0x80 00001f66: SHL 00001f67: SUB 00001f68: DUP1 00001f69: DUP5 00001f6a: AND 00001f6b: DUP3 00001f6c: MUL 00001f6d: SWAP3 00001f6e: DUP2 00001f6f: AND 00001f70: SWAP3 00001f71: SWAP1 00001f72: SWAP3 00001f73: OR 00001f74: DUP7 00001f75: SSTORE 00001f76: SWAP1 00001f77: SWAP2 00001f78: DIV 00001f79: AND 00001f7a: SWAP1 00001f7b: PUSH1 0x10 00001f7d: PUSH2 0x1f85 00001f80: DUP4 00001f81: PUSH2 0x2268 00001f84: JUMP 00001f85: JUMPDEST 00001f86: SWAP2 00001f87: SWAP1 00001f88: PUSH2 0x0100 00001f8b: EXP 00001f8c: DUP2 00001f8d: SLOAD 00001f8e: DUP2 00001f8f: PUSH1 0x01 00001f91: PUSH1 0x01 00001f93: PUSH1 0x80 00001f95: SHL 00001f96: SUB 00001f97: MUL 00001f98: NOT 00001f99: AND 00001f9a: SWAP1 00001f9b: DUP4 00001f9c: PUSH1 0x01 00001f9e: PUSH1 0x01 00001fa0: PUSH1 0x80 00001fa2: SHL 00001fa3: SUB 00001fa4: AND 00001fa5: MUL 00001fa6: OR 00001fa7: SWAP1 00001fa8: SSTORE 00001fa9: POP 00001faa: POP 00001fab: DUP2 00001fac: PUSH1 0x01 00001fae: ADD 00001faf: PUSH0 00001fb0: SWAP1 00001fb1: SLOAD 00001fb2: SWAP1 00001fb3: PUSH2 0x0100 00001fb6: EXP 00001fb7: SWAP1 00001fb8: DIV 00001fb9: PUSH1 0x01 00001fbb: PUSH1 0x01 00001fbd: PUSH1 0x80 00001fbf: SHL 00001fc0: SUB 00001fc1: AND 00001fc2: SWAP1 00001fc3: POP 00001fc4: SWAP2 00001fc5: SWAP1 00001fc6: POP 00001fc7: JUMP 00001fc8: JUMPDEST 00001fc9: PUSH1 0x01 00001fcb: PUSH1 0x01 00001fcd: PUSH1 0xa0 00001fcf: SHL 00001fd0: SUB 00001fd1: DUP2 00001fd2: AND 00001fd3: DUP2 00001fd4: EQ 00001fd5: PUSH2 0x161c 00001fd8: JUMPI 00001fd9: PUSH0 00001fda: PUSH0 00001fdb: REVERT 00001fdc: JUMPDEST 00001fdd: PUSH0 00001fde: PUSH1 0x20 00001fe0: DUP3 00001fe1: DUP5 00001fe2: SUB 00001fe3: SLT 00001fe4: ISZERO 00001fe5: PUSH2 0x1fec 00001fe8: JUMPI 00001fe9: PUSH0 00001fea: PUSH0 00001feb: REVERT 00001fec: JUMPDEST 00001fed: DUP2 00001fee: CALLDATALOAD 00001fef: PUSH2 0x1109 00001ff2: DUP2 00001ff3: PUSH2 0x1fc8 00001ff6: JUMP 00001ff7: JUMPDEST 00001ff8: PUSH0 00001ff9: PUSH1 0x20 00001ffb: DUP3 00001ffc: DUP5 00001ffd: SUB 00001ffe: SLT 00001fff: ISZERO 00002000: PUSH2 0x2007 00002003: JUMPI 00002004: PUSH0 00002005: PUSH0 00002006: REVERT 00002007: JUMPDEST 00002008: DUP2 00002009: CALLDATALOAD 0000200a: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000202b: DUP2 0000202c: AND 0000202d: DUP2 0000202e: EQ 0000202f: PUSH2 0x1109 00002032: JUMPI 00002033: PUSH0 00002034: PUSH0 00002035: REVERT 00002036: JUMPDEST 00002037: PUSH0 00002038: PUSH0 00002039: PUSH1 0x40 0000203b: DUP4 0000203c: DUP6 0000203d: SUB 0000203e: SLT 0000203f: ISZERO 00002040: PUSH2 0x2047 00002043: JUMPI 00002044: PUSH0 00002045: PUSH0 00002046: REVERT 00002047: JUMPDEST 00002048: DUP3 00002049: CALLDATALOAD 0000204a: PUSH2 0x2052 0000204d: DUP2 0000204e: PUSH2 0x1fc8 00002051: JUMP 00002052: JUMPDEST 00002053: SWAP2 00002054: POP 00002055: PUSH1 0x20 00002057: DUP4 00002058: ADD 00002059: CALLDATALOAD 0000205a: PUSH2 0x2062 0000205d: DUP2 0000205e: PUSH2 0x1fc8 00002061: JUMP 00002062: JUMPDEST 00002063: DUP1 00002064: SWAP2 00002065: POP 00002066: POP 00002067: SWAP3 00002068: POP 00002069: SWAP3 0000206a: SWAP1 0000206b: POP 0000206c: JUMP 0000206d: JUMPDEST 0000206e: PUSH0 0000206f: PUSH1 0x20 00002071: DUP3 00002072: DUP5 00002073: SUB 00002074: SLT 00002075: ISZERO 00002076: PUSH2 0x207d 00002079: JUMPI 0000207a: PUSH0 0000207b: PUSH0 0000207c: REVERT 0000207d: JUMPDEST 0000207e: POP 0000207f: CALLDATALOAD 00002080: SWAP2 00002081: SWAP1 00002082: POP 00002083: JUMP 00002084: JUMPDEST 00002085: PUSH0 00002086: PUSH0 00002087: PUSH0 00002088: PUSH1 0x60 0000208a: DUP5 0000208b: DUP7 0000208c: SUB 0000208d: SLT 0000208e: ISZERO 0000208f: PUSH2 0x2096 00002092: JUMPI 00002093: PUSH0 00002094: PUSH0 00002095: REVERT 00002096: JUMPDEST 00002097: DUP4 00002098: CALLDATALOAD 00002099: PUSH2 0x20a1 0000209c: DUP2 0000209d: PUSH2 0x1fc8 000020a0: JUMP 000020a1: JUMPDEST 000020a2: SWAP3 000020a3: POP 000020a4: PUSH1 0x20 000020a6: DUP5 000020a7: ADD 000020a8: CALLDATALOAD 000020a9: PUSH2 0x20b1 000020ac: DUP2 000020ad: PUSH2 0x1fc8 000020b0: JUMP 000020b1: JUMPDEST 000020b2: SWAP3 000020b3: SWAP6 000020b4: SWAP3 000020b5: SWAP5 000020b6: POP 000020b7: POP 000020b8: POP 000020b9: PUSH1 0x40 000020bb: SWAP2 000020bc: SWAP1 000020bd: SWAP2 000020be: ADD 000020bf: CALLDATALOAD 000020c0: SWAP1 000020c1: JUMP 000020c2: JUMPDEST 000020c3: PUSH0 000020c4: PUSH0 000020c5: PUSH1 0x40 000020c7: DUP4 000020c8: DUP6 000020c9: SUB 000020ca: SLT 000020cb: ISZERO 000020cc: PUSH2 0x20d3 000020cf: JUMPI 000020d0: PUSH0 000020d1: PUSH0 000020d2: REVERT 000020d3: JUMPDEST 000020d4: DUP3 000020d5: CALLDATALOAD 000020d6: SWAP2 000020d7: POP 000020d8: PUSH1 0x20 000020da: DUP4 000020db: ADD 000020dc: CALLDATALOAD 000020dd: PUSH2 0x2062 000020e0: DUP2 000020e1: PUSH2 0x1fc8 000020e4: JUMP 000020e5: JUMPDEST 000020e6: PUSH1 0x20 000020e8: DUP1 000020e9: DUP3 000020ea: MSTORE 000020eb: DUP3 000020ec: MLOAD 000020ed: DUP3 000020ee: DUP3 000020ef: ADD 000020f0: DUP2 000020f1: SWAP1 000020f2: MSTORE 000020f3: PUSH0 000020f4: SWAP2 000020f5: DUP5 000020f6: ADD 000020f7: SWAP1 000020f8: PUSH1 0x40 000020fa: DUP5 000020fb: ADD 000020fc: SWAP1 000020fd: DUP4 000020fe: JUMPDEST 000020ff: DUP2 00002100: DUP2 00002101: LT 00002102: ISZERO 00002103: PUSH2 0x211c 00002106: JUMPI 00002107: DUP4 00002108: MLOAD 00002109: DUP4 0000210a: MSTORE 0000210b: PUSH1 0x20 0000210d: SWAP4 0000210e: DUP5 0000210f: ADD 00002110: SWAP4 00002111: SWAP1 00002112: SWAP3 00002113: ADD 00002114: SWAP2 00002115: PUSH1 0x01 00002117: ADD 00002118: PUSH2 0x20fe 0000211b: JUMP 0000211c: JUMPDEST 0000211d: POP 0000211e: SWAP1 0000211f: SWAP6 00002120: SWAP5 00002121: POP 00002122: POP 00002123: POP 00002124: POP 00002125: POP 00002126: JUMP 00002127: JUMPDEST 00002128: PUSH0 00002129: PUSH0 0000212a: PUSH1 0x40 0000212c: DUP4 0000212d: DUP6 0000212e: SUB 0000212f: SLT 00002130: ISZERO 00002131: PUSH2 0x2138 00002134: JUMPI 00002135: PUSH0 00002136: PUSH0 00002137: REVERT 00002138: JUMPDEST 00002139: DUP3 0000213a: CALLDATALOAD 0000213b: PUSH2 0x2143 0000213e: DUP2 0000213f: PUSH2 0x1fc8 00002142: JUMP 00002143: JUMPDEST 00002144: SWAP5 00002145: PUSH1 0x20 00002147: SWAP4 00002148: SWAP1 00002149: SWAP4 0000214a: ADD 0000214b: CALLDATALOAD 0000214c: SWAP4 0000214d: POP 0000214e: POP 0000214f: POP 00002150: JUMP 00002151: JUMPDEST 00002152: PUSH0 00002153: PUSH0 00002154: PUSH0 00002155: PUSH1 0x60 00002157: DUP5 00002158: DUP7 00002159: SUB 0000215a: SLT 0000215b: ISZERO 0000215c: PUSH2 0x2163 0000215f: JUMPI 00002160: PUSH0 00002161: PUSH0 00002162: REVERT 00002163: JUMPDEST 00002164: DUP4 00002165: CALLDATALOAD 00002166: PUSH2 0x216e 00002169: DUP2 0000216a: PUSH2 0x1fc8 0000216d: JUMP 0000216e: JUMPDEST 0000216f: SWAP3 00002170: POP 00002171: PUSH1 0x20 00002173: DUP5 00002174: ADD 00002175: CALLDATALOAD 00002176: SWAP2 00002177: POP 00002178: PUSH1 0x40 0000217a: DUP5 0000217b: ADD 0000217c: CALLDATALOAD 0000217d: PUSH2 0x2185 00002180: DUP2 00002181: PUSH2 0x1fc8 00002184: JUMP 00002185: JUMPDEST 00002186: DUP1 00002187: SWAP2 00002188: POP 00002189: POP 0000218a: SWAP3 0000218b: POP 0000218c: SWAP3 0000218d: POP 0000218e: SWAP3 0000218f: JUMP 00002190: JUMPDEST 00002191: PUSH4 0x4e487b71 00002196: PUSH1 0xe0 00002198: SHL 00002199: PUSH0 0000219a: MSTORE 0000219b: PUSH1 0x32 0000219d: PUSH1 0x04 0000219f: MSTORE 000021a0: PUSH1 0x24 000021a2: PUSH0 000021a3: REVERT 000021a4: JUMPDEST 000021a5: PUSH4 0x4e487b71 000021aa: PUSH1 0xe0 000021ac: SHL 000021ad: PUSH0 000021ae: MSTORE 000021af: PUSH1 0x11 000021b1: PUSH1 0x04 000021b3: MSTORE 000021b4: PUSH1 0x24 000021b6: PUSH0 000021b7: REVERT 000021b8: JUMPDEST 000021b9: DUP2 000021ba: DUP2 000021bb: SUB 000021bc: PUSH0 000021bd: DUP4 000021be: SLT 000021bf: DUP1 000021c0: ISZERO 000021c1: DUP4 000021c2: DUP4 000021c3: SGT 000021c4: AND 000021c5: DUP4 000021c6: DUP4 000021c7: SLT 000021c8: DUP3 000021c9: AND 000021ca: OR 000021cb: ISZERO 000021cc: PUSH2 0x16eb 000021cf: JUMPI 000021d0: PUSH2 0x16eb 000021d3: PUSH2 0x21a4 000021d6: JUMP 000021d7: JUMPDEST 000021d8: PUSH0 000021d9: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 000021fa: DUP3 000021fb: SUB 000021fc: PUSH2 0x2207 000021ff: JUMPI 00002200: PUSH2 0x2207 00002203: PUSH2 0x21a4 00002206: JUMP 00002207: JUMPDEST 00002208: POP 00002209: PUSH0 0000220a: SUB 0000220b: SWAP1 0000220c: JUMP 0000220d: JUMPDEST 0000220e: DUP2 0000220f: DUP2 00002210: SUB 00002211: DUP2 00002212: DUP2 00002213: GT 00002214: ISZERO 00002215: PUSH2 0x08c5 00002218: JUMPI 00002219: PUSH2 0x08c5 0000221c: PUSH2 0x21a4 0000221f: JUMP 00002220: JUMPDEST 00002221: PUSH0 00002222: PUSH1 0x01 00002224: PUSH1 0x01 00002226: PUSH1 0x80 00002228: SHL 00002229: SUB 0000222a: DUP3 0000222b: AND 0000222c: DUP1 0000222d: PUSH2 0x2238 00002230: JUMPI 00002231: PUSH2 0x2238 00002234: PUSH2 0x21a4 00002237: JUMP 00002238: JUMPDEST 00002239: PUSH0 0000223a: NOT 0000223b: ADD 0000223c: SWAP3 0000223d: SWAP2 0000223e: POP 0000223f: POP 00002240: JUMP 00002241: JUMPDEST 00002242: DUP1 00002243: DUP3 00002244: ADD 00002245: DUP3 00002246: DUP2 00002247: SLT 00002248: PUSH0 00002249: DUP4 0000224a: SLT 0000224b: DUP1 0000224c: ISZERO 0000224d: DUP3 0000224e: AND 0000224f: DUP3 00002250: ISZERO 00002251: DUP3 00002252: AND 00002253: OR 00002254: ISZERO 00002255: PUSH2 0x2260 00002258: JUMPI 00002259: PUSH2 0x2260 0000225c: PUSH2 0x21a4 0000225f: JUMP 00002260: JUMPDEST 00002261: POP 00002262: POP 00002263: SWAP3 00002264: SWAP2 00002265: POP 00002266: POP 00002267: JUMP 00002268: JUMPDEST 00002269: PUSH0 0000226a: PUSH1 0x01 0000226c: PUSH1 0x01 0000226e: PUSH1 0x80 00002270: SHL 00002271: SUB 00002272: DUP3 00002273: AND 00002274: PUSH1 0x01 00002276: PUSH1 0x01 00002278: PUSH1 0x80 0000227a: SHL 0000227b: SUB 0000227c: DUP2 0000227d: SUB 0000227e: PUSH2 0x2289 00002281: JUMPI 00002282: PUSH2 0x2289 00002285: PUSH2 0x21a4 00002288: JUMP 00002289: JUMPDEST 0000228a: PUSH1 0x01 0000228c: ADD 0000228d: SWAP3 0000228e: SWAP2 0000228f: POP 00002290: POP 00002291: JUMP 00002292: INVALID 00002293: LOG2 00002294: PUSH5 0x6970667358 0000229a: UNKNOWN(0x22) 0000229b: SLT 0000229c: KECCAK256 0000229d: CALLER 0000229e: UNKNOWN(0xE9) 0000229f: MULMOD 000022a0: PUSH30 0xe09e8090232c37f81227ad54f8b11b2fbe707150420069054a70b8ae6473 000022bf: PUSH16
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | codex | Nested initializer modifiers brick initialization | 85 | no | — |
viewevidence_json{
"evidence": "`__ExtendedAccessControl_init` and `__ExtendedAccessControl_init_unchained` both use the `initializer` modifier, and `Wallet.initialize` calls `__ExtendedAccessControl_init`.",
"locations": [
"contracts/contracts/ExtendedAccessControlUpgradeable.sol:26",
"contracts/contracts/ExtendedAccessControlUpgradeable.sol:30",
"contracts/contracts/Wallet.sol:124"
],
"recommendation": "Change base initializers to `onlyInitializing` (and keep a single `initializer` entry point), mirroring OpenZeppelin's pattern; alternatively remove the nested initializer and call `_addRole` directly from the top-level initializer.",
"exploit_scenario": "Calling `Wallet.initialize` invokes `__ExtendedAccessControl_init`, which is marked `initializer` and internally calls `__ExtendedAccessControl_init_unchained`, also marked `initializer`. OpenZeppelin's `initializer` modifier forbids nested initializer calls, so the second call reverts, leaving the proxy permanently uninitialized and unusable (no roles can be granted, transfers and admin actions are locked)."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x837f11cc6777a935bba93f3000e1e0429f844c0a4f9c90dab4c88d6f825b0e64
call_targets:
0x1ef756da62278f3d43b0994f6e9e276f47a363e8
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x837f11cc6777a935bba93f3000e1e0429f844c0a4f9c90dab4c88d6f825b0e64",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1ef756da62278f3d43b0994f6e9e276f47a363e8"
],
"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": "0xe082e718",
"selector": "0xe082e718",
"calldata_variants": [
"0xe082e718",
"0xe082e7180000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe33d547e",
"selector": "0xe33d547e",
"calldata_variants": [
"0xe33d547e",
"0xe33d547e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3816388",
"selector": "0xf3816388",
"calldata_variants": [
"0xf3816388",
"0xf38163880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbba0f01",
"selector": "0xdbba0f01",
"calldata_variants": [
"0xdbba0f01",
"0xdbba0f010000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc117c3af",
"selector": "0xc117c3af",
"calldata_variants": [
"0xc117c3af",
"0xc117c3af0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc4d66de8",
"selector": "0xc4d66de8",
"calldata_variants": [
"0xc4d66de8",
"0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc724bfe6",
"selector": "0xc724bfe6",
"calldata_variants": [
"0xc724bfe6",
"0xc724bfe60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4054,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5296,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x837f11cc6777a935bba93f3000e1e0429f844c0a4f9c90dab4c88d6f825b0e64
call_targets:
0x1ef756da62278f3d43b0994f6e9e276f47a363e8
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x837f11cc6777a935bba93f3000e1e0429f844c0a4f9c90dab4c88d6f825b0e64",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1ef756da62278f3d43b0994f6e9e276f47a363e8"
],
"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": "0xe082e718",
"selector": "0xe082e718",
"calldata_variants": [
"0xe082e718",
"0xe082e7180000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe33d547e",
"selector": "0xe33d547e",
"calldata_variants": [
"0xe33d547e",
"0xe33d547e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3816388",
"selector": "0xf3816388",
"calldata_variants": [
"0xf3816388",
"0xf38163880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbba0f01",
"selector": "0xdbba0f01",
"calldata_variants": [
"0xdbba0f01",
"0xdbba0f010000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc117c3af",
"selector": "0xc117c3af",
"calldata_variants": [
"0xc117c3af",
"0xc117c3af0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc4d66de8",
"selector": "0xc4d66de8",
"calldata_variants": [
"0xc4d66de8",
"0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc724bfe6",
"selector": "0xc724bfe6",
"calldata_variants": [
"0xc724bfe6",
"0xc724bfe60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4054,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5296,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| low | other | codex | ERC20 transfer return value ignored | 65 | no | — |
viewevidence_json{
"evidence": "The IERC20 interface omits the `bool` return value and the transfer call result is not checked.",
"locations": [
"contracts/contracts/Wallet.sol:15",
"contracts/contracts/Wallet.sol:401"
],
"recommendation": "Use an ERC20 interface that returns `bool` and wrap transfers with `SafeERC20.safeTransfer` (or explicitly require the return value to be true).",
"exploit_scenario": "For non-compliant or malicious ERC20s that return `false` instead of reverting, `Wallet.transfer` (token version) still emits a transfer event and consumes limit capacity even though no tokens moved, enabling limit exhaustion/false accounting."
}
|