aae94f7c-836c-4390-a20d-a9e2f0e8a71c
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 |
|---|---|---|---|---|
| 30716 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75292 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 75293 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 75294 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 75295 | capability.graph | complete | 1 / 3 | 1 week ago |
| 75296 | detector.run | complete | 1 / 3 | 1 week ago |
| 75297 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:703593] OpenAI Codex v0.77.0 (research preview)
[codex:703593] --------
[codex:703593] workdir: /tmp/codex-multi-_04vp8u7
[codex:703593] model: gpt-5.2-codex
[codex:703593] provider: openai
[codex:703593] approval: never
[codex:703593] sandbox: read-only
[codex:703593] reasoning effort: xhigh
[codex:703593] reasoning summaries: auto
[codex:703593] session id: 019b6fdc-2537-7970-b819-3af589a1fde2
[codex:703593] --------
[codex:703593] user
[codex:703593] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:703593] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:703593] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:703593]
[codex:703593] Scope rules:
[codex:703593] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:703593] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:703593]
[codex:703593] Output MUST be valid JSON matching the provided schema.
[codex:703593] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:703593] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:703593]
[codex:703593] Output constraints (IMPORTANT):
[codex:703593] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:703593] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:703593] mcp startup: no servers
[codex:703593]
[codex:703593] thinking
[codex:703593] **Preparing to read AUDIT_BUNDLE.txt**
[codex:703593] exec
[codex:703593] /bin/bash -lc ls in /tmp/codex-multi-_04vp8u7 succeeded in 5ms:
[codex:703593] AUDIT_BUNDLE.txt
[codex:703593] codex-output-schema.json
[codex:703593] contracts
[codex:703593] exec
[codex:703593] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:703593]
[codex:703593] ================================================================================
[codex:703593] FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IAuthorizerAdaptor.sol
[codex:703593] ================================================================================
[codex:703593] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:703593] // This program is free software: you can redistribute it and/or modify
[codex:703593] // it under the terms of the GNU General Public License as published by
[codex:703593] // the Free Software Foundation, either version 3 of the License, or
[codex:703593] // (at your option) any later version.
[codex:703593]
[codex:703593] // This program is distributed in the hope that it will be useful,
[codex:703593] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:703593] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[codex:703593] // GNU General Public License for more details.
[codex:703593]
[codex:703593] // You should have received a copy of the GNU General Public License
[codex:703593] // along with this program. If not, see <http://www.gnu.org/licenses/>.
[codex:703593]
[codex:703593] pragma solidity ^0.7.0;
[codex:703593]
[codex:703593] thinking
[codex:703593] **Planning full AUDIT_BUNDLE inspection**
[codex:703593] exec
[codex:703593] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-_04vp8u7 succeeded in 7ms:
[codex:703593] 4:FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IAuthorizerAdaptor.sol
[codex:703593] 46:FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IFeeDistributor.sol
[codex:703593] 218:FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IVotingEscrow.sol
[codex:703593] 273:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/BalancerErrors.sol
[codex:703593] 532:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/IAuthentication.sol
[codex:703593] 558:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/IOptionalOnlyCaller.sol
[codex:703593] 605:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/ISignaturesValidator.sol
[codex:703593] 639:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/ITemporarilyPausable.sol
[codex:703593] 680:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/misc/IWETH.sol
[codex:703593] 711:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/openzeppelin/IERC1271.sol
[codex:703593] 734:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/openzeppelin/IERC20.sol
[codex:703593] 819:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IAsset.sol
[codex:703593] 849:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IAuthorizer.sol
[codex:703593] 879:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IFlashLoanRecipient.sol
[codex:703593] 920:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IProtocolFeesCollector.sol
[codex:703593] 970:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IVault.sol
[codex:703593] 1746:FILE: contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/EOASignaturesValidator.sol
[codex:703593] 1857:FILE: contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/InputHelpers.sol
[codex:703593] 1915:FILE: contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/OptionalOnlyCaller.sol
[codex:703593] 1985:FILE: contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/SignaturesValidator.sol
[codex:703593]
[codex:703593] thinking
[codex:703593] **Evaluating first-party contract scope**
[codex:703593] exec
[codex:703593] /bin/bash -lc "sed -n '2591,3229p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593] FILE: contracts/contracts/fee-distribution/FeeDistributor.sol
[codex:703593] ================================================================================
[codex:703593] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:703593] // This program is free software: you can redistribute it and/or modify
[codex:703593] // it under the terms of the GNU General Public License as published by
[codex:703593] // the Free Software Foundation, either version 3 of the License, or
[codex:703593] // (at your option) any later version.
[codex:703593]
[codex:703593] // This program is distributed in the hope that it will be useful,
[codex:703593] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:703593] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[codex:703593] // GNU General Public License for more details.
[codex:703593]
[codex:703593] // You should have received a copy of the GNU General Public License
[codex:703593] // along with this program. If not, see <http://www.gnu.org/licenses/>.
[codex:703593]
[codex:703593] pragma solidity ^0.7.0;
[codex:703593] pragma experimental ABIEncoderV2;
[codex:703593]
[codex:703593] import "@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/IAuthentication.sol";
[codex:703593]
[codex:703593] thinking
[codex:703593] **Reviewing related contract files**
[codex:703593] exec
[codex:703593] /bin/bash -lc "sed -n '1700,2590p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593]
[codex:703593] // Protocol Fees
[codex:703593] //
[codex:703593] // Some operations cause the Vault to collect tokens in the form of protocol fees, which can then be withdrawn by
[codex:703593] // permissioned accounts.
[codex:703593] //
[codex:703593] // There are two kinds of protocol fees:
[codex:703593] //
[codex:703593] // - flash loan fees: charged on all flash loans, as a percentage of the amounts lent.
[codex:703593] //
[codex:703593] // - swap fees: a percentage of the fees charged by Pools when performing swaps. For a number of reasons, including
[codex:703593] // swap gas costs and interface simplicity, protocol swap fees are not charged on each individual swap. Rather,
[codex:703593] // Pools are expected to keep track of how much they have charged in swap fees, and pay any outstanding debts to the
[codex:703593] // Vault when they are joined or exited. This prevents users from joining a Pool with unpaid debt, as well as
[codex:703593] // exiting a Pool in debt without first paying their share.
[codex:703593]
[codex:703593] /**
[codex:703593] * @dev Returns the current protocol fee module.
[codex:703593] */
[codex:703593] function getProtocolFeesCollector() external view returns (IProtocolFeesCollector);
[codex:703593]
[codex:703593] thinking
[codex:703593] **Continuing to review file from start**
[codex:703593] exec
[codex:703593] /bin/bash -lc "sed -n '1,1700p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:703593]
[codex:703593] ================================================================================
[codex:703593] FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IAuthorizerAdaptor.sol
[codex:703593] ================================================================================
[codex:703593] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:703593] // This program is free software: you can redistribute it and/or modify
[codex:703593] // it under the terms of the GNU General Public License as published by
[codex:703593] // the Free Software Foundation, either version 3 of the License, or
[codex:703593] // (at your option) any later version.
[codex:703593]
[codex:703593] // This program is distributed in the hope that it will be useful,
[codex:703593] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:703593] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[codex:703593] // GNU General Public License for more details.
[codex:703593]
[codex:703593] // You should have received a copy of the GNU General Public License
[codex:703593] // along with this program. If not, see <http://www.gnu.org/licenses/>.
[codex:703593]
[codex:703593] pragma solidity ^0.7.0;
[codex:703593]
[codex:703593]
[codex:703593] thinking
[codex:703593] **Analyzing audit file reading and token distribution logic**
[codex:703593]
[codex:703593] I'm figuring out how to read the entire AUDIT_BUNDLE.txt without triggering output truncation by breaking it into smaller segments, then focusing on key contract logic like FeeDistributor. I’m uncovering a subtle bug where token distribution stops after 20 weeks if checkpoints aren’t called frequently, causing tokens to get stuck and remain undistributed—a significant liveness and accounting flaw worth flagging.
[codex:703593] thinking
[codex:703593] **Inspecting edge cases and signature handling in FeeDistributor**
[codex:703593]
[codex:703593] I'm examining how the contract deals with weeks of zero supply, possible division by zero, and the flow of token claims over multiple weeks. There is no explicit handling of zero-supply weeks which might cause claims to revert or tokens to be stuck. I’m also reviewing signature validation nuances and rounding issues, finding mostly acceptable design choices but noting some minor rounding drift that could lock small token amounts indefinitely.
[codex:703593] exec
[codex:703593] /bin/bash -lc 'rg -n "_checkpointToken" contracts/contracts/fee-distribution/FeeDistributor.sol' in /tmp/codex-multi-_04vp8u7 succeeded in 7ms:
[codex:703593] 182: _checkpointToken(token, false);
[codex:703593] 184: _checkpointToken(token, true);
[codex:703593] 199: _checkpointToken(tokens[i], false);
[codex:703593] 201: _checkpointToken(tokens[i], true);
[codex:703593] 233: _checkpointToken(token, true);
[codex:703593] 245: _checkpointToken(tokens[i], true);
[codex:703593] 268: _checkpointToken(token, false);
[codex:703593] 295: _checkpointToken(tokens[i], false);
[codex:703593] 354: function _checkpointToken(IERC20 token, bool force) internal {
[codex:703593]
[codex:703593] thinking
[codex:703593] **Adding line numbers for context**
[codex:703593] exec
[codex:703593] /bin/bash -lc "nl -ba contracts/contracts/fee-distribution/FeeDistributor.sol | sed -n '350,450p'" in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593] 350
[codex:703593] 351 /**
[codex:703593] 352 * @dev Calculate the amount of `token` to be distributed to `_votingEscrow` holders since the last checkpoint.
[codex:703593] 353 */
[codex:703593] 354 function _checkpointToken(IERC20 token, bool force) internal {
[codex:703593] 355 TokenState storage tokenState = _tokenState[token];
[codex:703593] 356 uint256 lastTokenTime = tokenState.timeCursor;
[codex:703593] 357 uint256 timeSinceLastCheckpoint;
[codex:703593] 358 if (lastTokenTime == 0) {
[codex:703593] 359 // If it's the first time we're checkpointing this token then start distributing from now.
[codex:703593] 360 // Also mark at which timestamp users should start attempts to claim this token from.
[codex:703593] 361 lastTokenTime = block.timestamp;
[codex:703593] 362 tokenState.startTime = uint64(_roundDownTimestamp(block.timestamp));
[codex:703593] 363
[codex:703593] 364 // Prevent someone from assigning tokens to an inaccessible week.
[codex:703593] 365 require(block.timestamp > _startTime, "Fee distribution has not started yet");
[codex:703593] 366 } else {
[codex:703593] 367 timeSinceLastCheckpoint = block.timestamp - lastTokenTime;
[codex:703593] 368
[codex:703593] 369 if (!force) {
[codex:703593]
[codex:703593]
[codex:703593]
[codex:703593] thinking
[codex:703593] **Planning complete AUDIT_BUNDLE reading**
[codex:703593]
[codex:703593] I’m figuring out how to fully read all 3,229 lines of AUDIT_BUNDLE.txt in manageable chunks without overwhelming the conversation. To comply with the requirement, I’m considering reading file segments by sed or other commands, focusing on relevant contract and helper files, especially non-interface logic, while balancing the output size and ensuring I cover all parts before concluding the audit.
[codex:703593] thinking
[codex:703593] **Identifying potential accounting and signature issues**
[codex:703593]
[codex:703593] I’m reviewing token checkpointing logic for edge cases like token rebasing or long inactivity causing undistributed tokens, exploring if looping limits lead to locked funds. Also, I’m examining signature validation for missing expiry/deadline fields that might allow replay of unused signatures, balancing severity and relevance within the audit scope.
[codex:703593] thinking
[codex:703593] ```json
[codex:703593] {
[codex:703593] "no_findings": false,
[codex:703593] "summary": "Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.",
[codex:703593] "findings": [
[codex:703593] {
[codex:703593] "severity": "medium",
[codex:703593] "category": "other",
[codex:703593] "title": "Checkpointing after >20-week gaps can permanently lock undistributed tokens",
[codex:703593] "exploit_scenario": "If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to `block.timestamp` and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract.",
[codex:703593] "recommendation": "When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to `block.timestamp` or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or increase the loop to cover the full gap and/or add pagination).",
[codex:703593] "evidence": "tokenState.timeCursor is set to block.timestamp and cachedBalance is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of newTokensToDistribute unassigned.",
[codex:703593] "locations": [
[codex:703593] "contracts/contracts/fee-distribution/FeeDistributor.sol:388",
[codex:703593] "contracts/contracts/fee-distribution/FeeDistributor.sol:402"
[codex:703593] ]
[codex:703593] }
[codex:703593] ]
[codex:703593] }
[codex:703593] ```
[codex:703593] codex
[codex:703593] {"no_findings":false,"summary":"Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.","findings":[{"severity":"medium","category":"other","title":"Checkpointing after long gaps can permanently lock undistributed tokens","exploit_scenario":"If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to the current timestamp and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract.","recommendation":"When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to the current timestamp or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or add pagination/increase the iteration cap).","evidence":"`tokenState.timeCursor` is set to `block.timestamp` and `cachedBalance` is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of `newTokensToDistribute` unassigned.","locations":["contracts/contracts/fee-distribution/FeeDistributor.sol:388","contracts/contracts/fee-distribution/FeeDistributor.sol:402"]}]}
[codex:703593] tokens used
[codex:703593] 58,847
[codex:703593] {"no_findings":false,"summary":"Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.","findings":[{"severity":"medium","category":"other","title":"Checkpointing after long gaps can permanently lock undistributed tokens","exploit_scenario":"If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to the current timestamp and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract.","recommendation":"When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to the current timestamp or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or add pagination/increase the iteration cap).","evidence":"`tokenState.timeCursor` is set to `block.timestamp` and `cachedBalance` is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of `newTokensToDistribute` unassigned.","locations":["contracts/contracts/fee-distribution/FeeDistributor.sol:388","contracts/contracts/fee-distribution/FeeDistributor.sol:402"]}]}
{
"codex": {
"ran_at": "2025-12-30T15:30:31.138702+00:00",
"returncode": 0
},
"summary": "Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.",
"raw_final": {
"summary": "Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.",
"findings": [
{
"title": "Checkpointing after long gaps can permanently lock undistributed tokens",
"category": "other",
"evidence": "`tokenState.timeCursor` is set to `block.timestamp` and `cachedBalance` is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of `newTokensToDistribute` unassigned.",
"severity": "medium",
"locations": [
"contracts/contracts/fee-distribution/FeeDistributor.sol:388",
"contracts/contracts/fee-distribution/FeeDistributor.sol:402"
],
"recommendation": "When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to the current timestamp or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or add pagination/increase the iteration cap).",
"exploit_scenario": "If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to the current timestamp and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x0182 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x90193b7c 00000026: GT 00000027: PUSH2 0x00d8 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xca31879d 00000031: GT 00000032: PUSH2 0x008c 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xe811f44b 0000003c: GT 0000003d: PUSH2 0x0066 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xe811f44b 00000047: EQ 00000048: PUSH2 0x030e 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xed24911d 00000052: EQ 00000053: PUSH2 0x0321 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xfcaa54ee 0000005d: EQ 0000005e: PUSH2 0x0329 00000061: JUMPI 00000062: PUSH2 0x0182 00000065: JUMP 00000066: JUMPDEST 00000067: DUP1 00000068: PUSH4 0xca31879d 0000006d: EQ 0000006e: PUSH2 0x02d5 00000071: JUMPI 00000072: DUP1 00000073: PUSH4 0xd3dc4ca1 00000078: EQ 00000079: PUSH2 0x02e8 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xde681faf 00000083: EQ 00000084: PUSH2 0x02fb 00000087: JUMPI 00000088: PUSH2 0x0182 0000008b: JUMP 0000008c: JUMPDEST 0000008d: DUP1 0000008e: PUSH4 0xa1648aa5 00000093: GT 00000094: PUSH2 0x00bd 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0xa1648aa5 0000009e: EQ 0000009f: PUSH2 0x029a 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0xacbc1428 000000a9: EQ 000000aa: PUSH2 0x02ba 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0xc2c4c5c1 000000b4: EQ 000000b5: PUSH2 0x02cd 000000b8: JUMPI 000000b9: PUSH2 0x0182 000000bc: JUMP 000000bd: JUMPDEST 000000be: DUP1 000000bf: PUSH4 0x90193b7c 000000c4: EQ 000000c5: PUSH2 0x0274 000000c8: JUMPI 000000c9: DUP1 000000ca: PUSH4 0x905d10ac 000000cf: EQ 000000d0: PUSH2 0x0287 000000d3: JUMPI 000000d4: PUSH2 0x0182 000000d7: JUMP 000000d8: JUMPDEST 000000d9: DUP1 000000da: PUSH4 0x4f3c5090 000000df: GT 000000e0: PUSH2 0x013a 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0x82aa5ad4 000000ea: GT 000000eb: PUSH2 0x0114 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0x82aa5ad4 000000f5: EQ 000000f6: PUSH2 0x0239 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0x876e69a1 00000100: EQ 00000101: PUSH2 0x0241 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0x88720467 0000010b: EQ 0000010c: PUSH2 0x0254 0000010f: JUMPI 00000110: PUSH2 0x0182 00000113: JUMP 00000114: JUMPDEST 00000115: DUP1 00000116: PUSH4 0x4f3c5090 0000011b: EQ 0000011c: PUSH2 0x0200 0000011f: JUMPI 00000120: DUP1 00000121: PUSH4 0x7b8d6221 00000126: EQ 00000127: PUSH2 0x0213 0000012a: JUMPI 0000012b: DUP1 0000012c: PUSH4 0x8050a7ee 00000131: EQ 00000132: PUSH2 0x0226 00000135: JUMPI 00000136: PUSH2 0x0182 00000139: JUMP 0000013a: JUMPDEST 0000013b: DUP1 0000013c: PUSH4 0x2308805b 00000141: GT 00000142: PUSH2 0x016b 00000145: JUMPI 00000146: DUP1 00000147: PUSH4 0x2308805b 0000014c: EQ 0000014d: PUSH2 0x01ba 00000150: JUMPI 00000151: DUP1 00000152: PUSH4 0x338b5dea 00000157: EQ 00000158: PUSH2 0x01da 0000015b: JUMPI 0000015c: DUP1 0000015d: PUSH4 0x3902b9bc 00000162: EQ 00000163: PUSH2 0x01ed 00000166: JUMPI 00000167: PUSH2 0x0182 0000016a: JUMP 0000016b: JUMPDEST 0000016c: DUP1 0000016d: PUSH4 0x08b0308a 00000172: EQ 00000173: PUSH2 0x0187 00000176: JUMPI 00000177: DUP1 00000178: PUSH4 0x14866e08 0000017d: EQ 0000017e: PUSH2 0x01a5 00000181: JUMPI 00000182: JUMPDEST 00000183: PUSH1 0x00 00000185: DUP1 00000186: REVERT 00000187: JUMPDEST 00000188: PUSH2 0x018f 0000018b: PUSH2 0x033c 0000018e: JUMP 0000018f: JUMPDEST 00000190: PUSH1 0x40 00000192: MLOAD 00000193: PUSH2 0x019c 00000196: SWAP2 00000197: SWAP1 00000198: PUSH2 0x22df 0000019b: JUMP 0000019c: JUMPDEST 0000019d: PUSH1 0x40 0000019f: MLOAD 000001a0: DUP1 000001a1: SWAP2 000001a2: SUB 000001a3: SWAP1 000001a4: RETURN 000001a5: JUMPDEST 000001a6: PUSH2 0x01b8 000001a9: PUSH2 0x01b3 000001ac: CALLDATASIZE 000001ad: PUSH1 0x04 000001af: PUSH2 0x1f44 000001b2: JUMP 000001b3: JUMPDEST 000001b4: PUSH2 0x0360 000001b7: JUMP 000001b8: JUMPDEST 000001b9: STOP 000001ba: JUMPDEST 000001bb: PUSH2 0x01cd 000001be: PUSH2 0x01c8 000001c1: CALLDATASIZE 000001c2: PUSH1 0x04 000001c4: PUSH2 0x1f44 000001c7: JUMP 000001c8: JUMPDEST 000001c9: PUSH2 0x037c 000001cc: JUMP 000001cd: JUMPDEST 000001ce: PUSH1 0x40 000001d0: MLOAD 000001d1: PUSH2 0x019c 000001d4: SWAP2 000001d5: SWAP1 000001d6: PUSH2 0x23f8 000001d9: JUMP 000001da: JUMPDEST 000001db: PUSH2 0x01b8 000001de: PUSH2 0x01e8 000001e1: CALLDATASIZE 000001e2: PUSH1 0x04 000001e4: PUSH2 0x20ba 000001e7: JUMP 000001e8: JUMPDEST 000001e9: PUSH2 0x03ca 000001ec: JUMP 000001ed: JUMPDEST 000001ee: PUSH2 0x01b8 000001f1: PUSH2 0x01fb 000001f4: CALLDATASIZE 000001f5: PUSH1 0x04 000001f7: PUSH2 0x1f44 000001fa: JUMP 000001fb: JUMPDEST 000001fc: PUSH2 0x0416 000001ff: JUMP 00000200: JUMPDEST 00000201: PUSH2 0x01cd 00000204: PUSH2 0x020e 00000207: CALLDATASIZE 00000208: PUSH1 0x04 0000020a: PUSH2 0x225d 0000020d: JUMP 0000020e: JUMPDEST 0000020f: PUSH2 0x0429 00000212: JUMP 00000213: JUMPDEST 00000214: PUSH2 0x01b8 00000217: PUSH2 0x0221 0000021a: CALLDATASIZE 0000021b: PUSH1 0x04 0000021d: PUSH2 0x2125 00000220: JUMP 00000221: JUMPDEST 00000222: PUSH2 0x043b 00000225: JUMP 00000226: JUMPDEST 00000227: PUSH2 0x01cd 0000022a: PUSH2 0x0234 0000022d: CALLDATASIZE 0000022e: PUSH1 0x04 00000230: PUSH2 0x2082 00000233: JUMP 00000234: JUMPDEST 00000235: PUSH2 0x051e 00000238: JUMP 00000239: JUMPDEST 0000023a: PUSH2 0x01cd 0000023d: PUSH2 0x0533 00000240: JUMP 00000241: JUMPDEST 00000242: PUSH2 0x01cd 00000245: PUSH2 0x024f 00000248: CALLDATASIZE 00000249: PUSH1 0x04 0000024b: PUSH2 0x1f44 0000024e: JUMP 0000024f: JUMPDEST 00000250: PUSH2 0x0539 00000253: JUMP 00000254: JUMPDEST 00000255: PUSH2 0x0267 00000258: PUSH2 0x0262 0000025b: CALLDATASIZE 0000025c: PUSH1 0x04 0000025e: PUSH2 0x1f60 00000261: JUMP 00000262: JUMPDEST 00000263: PUSH2 0x0577 00000266: JUMP 00000267: JUMPDEST 00000268: PUSH1 0x40 0000026a: MLOAD 0000026b: PUSH2 0x019c 0000026e: SWAP2 0000026f: SWAP1 00000270: PUSH2 0x23b5 00000273: JUMP 00000274: JUMPDEST 00000275: PUSH2 0x01cd 00000278: PUSH2 0x0282 0000027b: CALLDATASIZE 0000027c: PUSH1 0x04 0000027e: PUSH2 0x1f44 00000281: JUMP 00000282: JUMPDEST 00000283: PUSH2 0x065a 00000286: JUMP 00000287: JUMPDEST 00000288: PUSH2 0x01b8 0000028b: PUSH2 0x0295 0000028e: CALLDATASIZE 0000028f: PUSH1 0x04 00000291: PUSH2 0x20e5 00000294: JUMP 00000295: JUMPDEST 00000296: PUSH2 0x0682 00000299: JUMP 0000029a: JUMPDEST 0000029b: PUSH2 0x02ad 0000029e: PUSH2 0x02a8 000002a1: CALLDATASIZE 000002a2: PUSH1 0x04 000002a4: PUSH2 0x1f44 000002a7: JUMP 000002a8: JUMPDEST 000002a9: PUSH2 0x06b7 000002ac: JUMP 000002ad: JUMPDEST 000002ae: PUSH1 0x40 000002b0: MLOAD 000002b1: PUSH2 0x019c 000002b4: SWAP2 000002b5: SWAP1 000002b6: PUSH2 0x23ed 000002b9: JUMP 000002ba: JUMPDEST 000002bb: PUSH2 0x01cd 000002be: PUSH2 0x02c8 000002c1: CALLDATASIZE 000002c2: PUSH1 0x04 000002c4: PUSH2 0x1f44 000002c7: JUMP 000002c8: JUMPDEST 000002c9: PUSH2 0x06e2 000002cc: JUMP 000002cd: JUMPDEST 000002ce: PUSH2 0x01b8 000002d1: PUSH2 0x0720 000002d4: JUMP 000002d5: JUMPDEST 000002d6: PUSH2 0x01cd 000002d9: PUSH2 0x02e3 000002dc: CALLDATASIZE 000002dd: PUSH1 0x04 000002df: PUSH2 0x2082 000002e2: JUMP 000002e3: JUMPDEST 000002e4: PUSH2 0x073a 000002e7: JUMP 000002e8: JUMPDEST 000002e9: PUSH2 0x01cd 000002ec: PUSH2 0x02f6 000002ef: CALLDATASIZE 000002f0: PUSH1 0x04 000002f2: PUSH2 0x20ba 000002f5: JUMP 000002f6: JUMPDEST 000002f7: PUSH2 0x0782 000002fa: JUMP 000002fb: JUMPDEST 000002fc: PUSH2 0x01cd 000002ff: PUSH2 0x0309 00000302: CALLDATASIZE 00000303: PUSH1 0x04 00000305: PUSH2 0x20ba 00000308: JUMP 00000309: JUMPDEST 0000030a: PUSH2 0x07b7 0000030d: JUMP 0000030e: JUMPDEST 0000030f: PUSH2 0x01b8 00000312: PUSH2 0x031c 00000315: CALLDATASIZE 00000316: PUSH1 0x04 00000318: PUSH2 0x218e 0000031b: JUMP 0000031c: JUMPDEST 0000031d: PUSH2 0x07ec 00000320: JUMP 00000321: JUMPDEST 00000322: PUSH2 0x01cd 00000325: PUSH2 0x07f6 00000328: JUMP 00000329: JUMPDEST 0000032a: PUSH2 0x01b8 0000032d: PUSH2 0x0337 00000330: CALLDATASIZE 00000331: PUSH1 0x04 00000333: PUSH2 0x1fb3 00000336: JUMP 00000337: JUMPDEST 00000338: PUSH2 0x0805 0000033b: JUMP 0000033c: JUMPDEST 0000033d: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25 0000035e: SWAP1 0000035f: JUMP 00000360: JUMPDEST 00000361: PUSH2 0x0368 00000364: PUSH2 0x0876 00000367: JUMP 00000368: JUMPDEST 00000369: PUSH2 0x0371 0000036c: DUP2 0000036d: PUSH2 0x088d 00000370: JUMP 00000371: JUMPDEST 00000372: PUSH2 0x0379 00000375: PUSH2 0x0e5d 00000378: JUMP 00000379: JUMPDEST 0000037a: POP 0000037b: JUMP 0000037c: JUMPDEST 0000037d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000392: AND 00000393: PUSH1 0x00 00000395: SWAP1 00000396: DUP2 00000397: MSTORE 00000398: PUSH1 0x05 0000039a: PUSH1 0x20 0000039c: MSTORE 0000039d: PUSH1 0x40 0000039f: SWAP1 000003a0: KECCAK256 000003a1: SLOAD 000003a2: PUSH17 0x0100000000000000000000000000000000 000003b4: SWAP1 000003b5: DIV 000003b6: PUSH16 0xffffffffffffffffffffffffffffffff 000003c7: AND 000003c8: SWAP1 000003c9: JUMP 000003ca: JUMPDEST 000003cb: PUSH2 0x03d2 000003ce: PUSH2 0x0876 000003d1: JUMP 000003d2: JUMPDEST 000003d3: PUSH2 0x03dd 000003d6: DUP3 000003d7: PUSH1 0x00 000003d9: PUSH2 0x0e64 000003dc: JUMP 000003dd: JUMPDEST 000003de: PUSH2 0x03ff 000003e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003f6: DUP4 000003f7: AND 000003f8: CALLER 000003f9: ADDRESS 000003fa: DUP5 000003fb: PUSH2 0x128e 000003fe: JUMP 000003ff: JUMPDEST 00000400: PUSH2 0x040a 00000403: DUP3 00000404: PUSH1 0x01 00000406: PUSH2 0x0e64 00000409: JUMP 0000040a: JUMPDEST 0000040b: PUSH2 0x0412 0000040e: PUSH2 0x0e5d 00000411: JUMP 00000412: JUMPDEST 00000413: POP 00000414: POP 00000415: JUMP 00000416: JUMPDEST 00000417: PUSH2 0x041e 0000041a: PUSH2 0x0876 0000041d: JUMP 0000041e: JUMPDEST 0000041f: PUSH2 0x0371 00000422: DUP2 00000423: PUSH1 0x01 00000425: PUSH2 0x0e64 00000428: JUMP 00000429: JUMPDEST 0000042a: PUSH1 0x00 0000042c: SWAP1 0000042d: DUP2 0000042e: MSTORE 0000042f: PUSH1 0x04 00000431: PUSH1 0x20 00000433: MSTORE 00000434: PUSH1 0x40 00000436: SWAP1 00000437: KECCAK256 00000438: SLOAD 00000439: SWAP1 0000043a: JUMP 0000043b: JUMPDEST 0000043c: PUSH2 0x0443 0000043f: PUSH2 0x0876 00000442: JUMP 00000443: JUMPDEST 00000444: PUSH2 0x044d 00000447: DUP4 00000448: DUP3 00000449: PUSH2 0x1331 0000044c: JUMP 0000044d: JUMPDEST 0000044e: DUP3 0000044f: PUSH1 0x00 00000451: JUMPDEST 00000452: DUP2 00000453: DUP2 00000454: LT 00000455: ISZERO 00000456: PUSH2 0x050e 00000459: JUMPI 0000045a: PUSH2 0x0484 0000045d: DUP7 0000045e: DUP7 0000045f: DUP4 00000460: DUP2 00000461: DUP2 00000462: LT 00000463: PUSH2 0x0468 00000466: JUMPI 00000467: INVALID 00000468: JUMPDEST 00000469: SWAP1 0000046a: POP 0000046b: PUSH1 0x20 0000046d: MUL 0000046e: ADD 0000046f: PUSH1 0x20 00000471: DUP2 00000472: ADD 00000473: SWAP1 00000474: PUSH2 0x047d 00000477: SWAP2 00000478: SWAP1 00000479: PUSH2 0x1f44 0000047c: JUMP 0000047d: JUMPDEST 0000047e: PUSH1 0x00 00000480: PUSH2 0x0e64 00000483: JUMP 00000484: JUMPDEST 00000485: PUSH2 0x04db 00000488: CALLER 00000489: ADDRESS 0000048a: DUP7 0000048b: DUP7 0000048c: DUP6 0000048d: DUP2 0000048e: DUP2 0000048f: LT 00000490: PUSH2 0x0495 00000493: JUMPI 00000494: INVALID 00000495: JUMPDEST 00000496: SWAP1 00000497: POP 00000498: PUSH1 0x20 0000049a: MUL 0000049b: ADD 0000049c: CALLDATALOAD 0000049d: DUP10 0000049e: DUP10 0000049f: DUP7 000004a0: DUP2 000004a1: DUP2 000004a2: LT 000004a3: PUSH2 0x04a8 000004a6: JUMPI 000004a7: INVALID 000004a8: JUMPDEST 000004a9: SWAP1 000004aa: POP 000004ab: PUSH1 0x20 000004ad: MUL 000004ae: ADD 000004af: PUSH1 0x20 000004b1: DUP2 000004b2: ADD 000004b3: SWAP1 000004b4: PUSH2 0x04bd 000004b7: SWAP2 000004b8: SWAP1 000004b9: PUSH2 0x1f44 000004bc: JUMP 000004bd: JUMPDEST 000004be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004d3: AND 000004d4: SWAP3 000004d5: SWAP2 000004d6: SWAP1 000004d7: PUSH2 0x128e 000004da: JUMP 000004db: JUMPDEST 000004dc: PUSH2 0x0506 000004df: DUP7 000004e0: DUP7 000004e1: DUP4 000004e2: DUP2 000004e3: DUP2 000004e4: LT 000004e5: PUSH2 0x04ea 000004e8: JUMPI 000004e9: INVALID 000004ea: JUMPDEST 000004eb: SWAP1 000004ec: POP 000004ed: PUSH1 0x20 000004ef: MUL 000004f0: ADD 000004f1: PUSH1 0x20 000004f3: DUP2 000004f4: ADD 000004f5: SWAP1 000004f6: PUSH2 0x04ff 000004f9: SWAP2 000004fa: SWAP1 000004fb: PUSH2 0x1f44 000004fe: JUMP 000004ff: JUMPDEST 00000500: PUSH1 0x01 00000502: PUSH2 0x0e64 00000505: JUMP 00000506: JUMPDEST 00000507: PUSH1 0x01 00000509: ADD 0000050a: PUSH2 0x0451 0000050d: JUMP 0000050e: JUMPDEST 0000050f: POP 00000510: POP 00000511: PUSH2 0x0518 00000514: PUSH2 0x0e5d 00000517: JUMP 00000518: JUMPDEST 00000519: POP 0000051a: POP 0000051b: POP 0000051c: POP 0000051d: JUMP 0000051e: JUMPDEST 0000051f: PUSH1 0x00 00000521: PUSH2 0x052a 00000524: DUP4 00000525: DUP4 00000526: PUSH2 0x133e 00000529: JUMP 0000052a: JUMPDEST 0000052b: SWAP1 0000052c: POP 0000052d: JUMPDEST 0000052e: SWAP3 0000052f: SWAP2 00000530: POP 00000531: POP 00000532: JUMP 00000533: JUMPDEST 00000534: PUSH1 0x03 00000536: SLOAD 00000537: SWAP1 00000538: JUMP 00000539: JUMPDEST 0000053a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000054f: AND 00000550: PUSH1 0x00 00000552: SWAP1 00000553: DUP2 00000554: MSTORE 00000555: PUSH1 0x07 00000557: PUSH1 0x20 00000559: MSTORE 0000055a: PUSH1 0x40 0000055c: SWAP1 0000055d: KECCAK256 0000055e: SLOAD 0000055f: PUSH9 0x010000000000000000 00000569: SWAP1 0000056a: DIV 0000056b: PUSH8 0xffffffffffffffff 00000574: AND 00000575: SWAP1 00000576: JUMP 00000577: JUMPDEST 00000578: PUSH1 0x60 0000057a: PUSH2 0x0581 0000057d: PUSH2 0x0876 00000580: JUMP 00000581: JUMPDEST 00000582: DUP4 00000583: PUSH2 0x058b 00000586: DUP2 00000587: PUSH2 0x13d6 0000058a: JUMP 0000058b: JUMPDEST 0000058c: PUSH2 0x0593 0000058f: PUSH2 0x1428 00000592: JUMP 00000593: JUMPDEST 00000594: PUSH2 0x059c 00000597: DUP6 00000598: PUSH2 0x088d 0000059b: JUMP 0000059c: JUMPDEST 0000059d: DUP3 0000059e: PUSH1 0x60 000005a0: DUP2 000005a1: PUSH8 0xffffffffffffffff 000005aa: DUP2 000005ab: GT 000005ac: DUP1 000005ad: ISZERO 000005ae: PUSH2 0x05b6 000005b1: JUMPI 000005b2: PUSH1 0x00 000005b4: DUP1 000005b5: REVERT 000005b6: JUMPDEST 000005b7: POP 000005b8: PUSH1 0x40 000005ba: MLOAD 000005bb: SWAP1 000005bc: DUP1 000005bd: DUP3 000005be: MSTORE 000005bf: DUP1 000005c0: PUSH1 0x20 000005c2: MUL 000005c3: PUSH1 0x20 000005c5: ADD 000005c6: DUP3 000005c7: ADD 000005c8: PUSH1 0x40 000005ca: MSTORE 000005cb: DUP1 000005cc: ISZERO 000005cd: PUSH2 0x05e0 000005d0: JUMPI 000005d1: DUP2 000005d2: PUSH1 0x20 000005d4: ADD 000005d5: PUSH1 0x20 000005d7: DUP3 000005d8: MUL 000005d9: DUP1 000005da: CALLDATASIZE 000005db: DUP4 000005dc: CALLDATACOPY 000005dd: ADD 000005de: SWAP1 000005df: POP 000005e0: JUMPDEST 000005e1: POP 000005e2: SWAP1 000005e3: POP 000005e4: PUSH1 0x00 000005e6: JUMPDEST 000005e7: DUP3 000005e8: DUP2 000005e9: LT 000005ea: ISZERO 000005eb: PUSH2 0x0646 000005ee: JUMPI 000005ef: PUSH2 0x05fd 000005f2: DUP8 000005f3: DUP8 000005f4: DUP4 000005f5: DUP2 000005f6: DUP2 000005f7: LT 000005f8: PUSH2 0x0468 000005fb: JUMPI 000005fc: INVALID 000005fd: JUMPDEST 000005fe: PUSH2 0x0627 00000601: DUP9 00000602: DUP9 00000603: DUP9 00000604: DUP5 00000605: DUP2 00000606: DUP2 00000607: LT 00000608: PUSH2 0x060d 0000060b: JUMPI 0000060c: INVALID 0000060d: JUMPDEST 0000060e: SWAP1 0000060f: POP 00000610: PUSH1 0x20 00000612: MUL 00000613: ADD 00000614: PUSH1 0x20 00000616: DUP2 00000617: ADD 00000618: SWAP1 00000619: PUSH2 0x0622 0000061c: SWAP2 0000061d: SWAP1 0000061e: PUSH2 0x1f44 00000621: JUMP 00000622: JUMPDEST 00000623: PUSH2 0x15d2 00000626: JUMP 00000627: JUMPDEST 00000628: DUP3 00000629: DUP3 0000062a: DUP2 0000062b: MLOAD 0000062c: DUP2 0000062d: LT 0000062e: PUSH2 0x0633 00000631: JUMPI 00000632: INVALID 00000633: JUMPDEST 00000634: PUSH1 0x20 00000636: SWAP1 00000637: DUP2 00000638: MUL 00000639: SWAP2 0000063a: SWAP1 0000063b: SWAP2 0000063c: ADD 0000063d: ADD 0000063e: MSTORE 0000063f: PUSH1 0x01 00000641: ADD 00000642: PUSH2 0x05e6 00000645: JUMP 00000646: JUMPDEST 00000647: POP 00000648: SWAP3 00000649: POP 0000064a: POP 0000064b: POP 0000064c: PUSH2 0x0653 0000064f: PUSH2 0x0e5d 00000652: JUMP 00000653: JUMPDEST 00000654: SWAP4 00000655: SWAP3 00000656: POP 00000657: POP 00000658: POP 00000659: JUMP 0000065a: JUMPDEST 0000065b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000670: AND 00000671: PUSH1 0x00 00000673: SWAP1 00000674: DUP2 00000675: MSTORE 00000676: PUSH1 0x20 00000678: DUP2 00000679: SWAP1 0000067a: MSTORE 0000067b: PUSH1 0x40 0000067d: SWAP1 0000067e: KECCAK256 0000067f: SLOAD 00000680: SWAP1 00000681: JUMP 00000682: JUMPDEST 00000683: PUSH2 0x068a 00000686: PUSH2 0x0876 00000689: JUMP 0000068a: JUMPDEST 0000068b: DUP1 0000068c: PUSH1 0x00 0000068e: JUMPDEST 0000068f: DUP2 00000690: DUP2 00000691: LT 00000692: ISZERO 00000693: PUSH2 0x06ad 00000696: JUMPI 00000697: PUSH2 0x06a5 0000069a: DUP5 0000069b: DUP5 0000069c: DUP4 0000069d: DUP2 0000069e: DUP2 0000069f: LT 000006a0: PUSH2 0x04ea 000006a3: JUMPI 000006a4: INVALID 000006a5: JUMPDEST 000006a6: PUSH1 0x01 000006a8: ADD 000006a9: PUSH2 0x068e 000006ac: JUMP 000006ad: JUMPDEST 000006ae: POP 000006af: POP 000006b0: PUSH2 0x0412 000006b3: PUSH2 0x0e5d 000006b6: JUMP 000006b7: JUMPDEST 000006b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006cd: AND 000006ce: PUSH1 0x00 000006d0: SWAP1 000006d1: DUP2 000006d2: MSTORE 000006d3: PUSH1 0x01 000006d5: PUSH1 0x20 000006d7: MSTORE 000006d8: PUSH1 0x40 000006da: SWAP1 000006db: KECCAK256 000006dc: SLOAD 000006dd: PUSH1 0xff 000006df: AND 000006e0: SWAP1 000006e1: JUMP 000006e2: JUMPDEST 000006e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006f8: AND 000006f9: PUSH1 0x00 000006fb: SWAP1 000006fc: DUP2 000006fd: MSTORE 000006fe: PUSH1 0x05 00000700: PUSH1 0x20 00000702: MSTORE 00000703: PUSH1 0x40 00000705: SWAP1 00000706: KECCAK256 00000707: SLOAD 00000708: PUSH9 0x010000000000000000 00000712: SWAP1 00000713: DIV 00000714: PUSH8 0xffffffffffffffff 0000071d: AND 0000071e: SWAP1 0000071f: JUMP 00000720: JUMPDEST 00000721: PUSH2 0x0728 00000724: PUSH2 0x0876 00000727: JUMP 00000728: JUMPDEST 00000729: PUSH2 0x0730 0000072c: PUSH2 0x1428 0000072f: JUMP 00000730: JUMPDEST 00000731: PUSH2 0x0738 00000734: PUSH2 0x0e5d 00000737: JUMP 00000738: JUMPDEST 00000739: JUMP 0000073a: JUMPDEST 0000073b: PUSH1 0x00 0000073d: PUSH2 0x0744 00000740: PUSH2 0x0876 00000743: JUMP 00000744: JUMPDEST 00000745: DUP3 00000746: PUSH2 0x074e 00000749: DUP2 0000074a: PUSH2 0x13d6 0000074d: JUMP 0000074e: JUMPDEST 0000074f: PUSH2 0x0756 00000752: PUSH2 0x1428 00000755: JUMP 00000756: JUMPDEST 00000757: PUSH2 0x075f 0000075a: DUP5 0000075b: PUSH2 0x088d 0000075e: JUMP 0000075f: JUMPDEST 00000760: PUSH2 0x076a 00000763: DUP4 00000764: PUSH1 0x00 00000766: PUSH2 0x0e64 00000769: JUMP 0000076a: JUMPDEST 0000076b: PUSH1 0x00 0000076d: PUSH2 0x0776 00000770: DUP6 00000771: DUP6 00000772: PUSH2 0x15d2 00000775: JUMP 00000776: JUMPDEST 00000777: SWAP3 00000778: POP 00000779: POP 0000077a: POP 0000077b: PUSH2 0x052d 0000077e: PUSH2 0x0e5d 00000781: JUMP 00000782: JUMPDEST 00000783: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000798: SWAP2 00000799: SWAP1 0000079a: SWAP2 0000079b: AND 0000079c: PUSH1 0x00 0000079e: SWAP1 0000079f: DUP2 000007a0: MSTORE 000007a1: PUSH1 0x06 000007a3: PUSH1 0x20 000007a5: SWAP1 000007a6: DUP2 000007a7: MSTORE 000007a8: PUSH1 0x40 000007aa: DUP1 000007ab: DUP4 000007ac: KECCAK256 000007ad: SWAP4 000007ae: DUP4 000007af: MSTORE 000007b0: SWAP3 000007b1: SWAP1 000007b2: MSTORE 000007b3: KECCAK256 000007b4: SLOAD 000007b5: SWAP1 000007b6: JUMP 000007b7: JUMPDEST 000007b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007cd: SWAP2 000007ce: SWAP1 000007cf: SWAP2 000007d0: AND 000007d1: PUSH1 0x00 000007d3: SWAP1 000007d4: DUP2 000007d5: MSTORE 000007d6: PUSH1 0x08 000007d8: PUSH1 0x20 000007da: SWAP1 000007db: DUP2 000007dc: MSTORE 000007dd: PUSH1 0x40 000007df: DUP1 000007e0: DUP4 000007e1: KECCAK256 000007e2: SWAP4 000007e3: DUP4 000007e4: MSTORE 000007e5: SWAP3 000007e6: SWAP1 000007e7: MSTORE 000007e8: KECCAK256 000007e9: SLOAD 000007ea: SWAP1 000007eb: JUMP 000007ec: JUMPDEST 000007ed: PUSH2 0x0379 000007f0: CALLER 000007f1: DUP3 000007f2: PUSH2 0x17ef 000007f5: JUMP 000007f6: JUMPDEST 000007f7: PUSH1 0x00 000007f9: PUSH2 0x0800 000007fc: PUSH2 0x187c 000007ff: JUMP 00000800: JUMPDEST 00000801: SWAP1 00000802: POP 00000803: SWAP1 00000804: JUMP 00000805: JUMPDEST 00000806: PUSH1 0x00 00000808: PUSH32 0xbd291ffccec065968fe20c5f8debdad73ab50837733f357eeae8814178015a90 00000829: DUP5 0000082a: DUP5 0000082b: PUSH2 0x0833 0000082e: DUP8 0000082f: PUSH2 0x065a 00000832: JUMP 00000833: JUMPDEST 00000834: PUSH1 0x40 00000836: MLOAD 00000837: PUSH1 0x20 00000839: ADD 0000083a: PUSH2 0x0846 0000083d: SWAP5 0000083e: SWAP4 0000083f: SWAP3 00000840: SWAP2 00000841: SWAP1 00000842: PUSH2 0x2401 00000845: JUMP 00000846: JUMPDEST 00000847: PUSH1 0x40 00000849: MLOAD 0000084a: PUSH1 0x20 0000084c: DUP2 0000084d: DUP4 0000084e: SUB 0000084f: SUB 00000850: DUP2 00000851: MSTORE 00000852: SWAP1 00000853: PUSH1 0x40 00000855: MSTORE 00000856: DUP1 00000857: MLOAD 00000858: SWAP1 00000859: PUSH1 0x20 0000085b: ADD 0000085c: KECCAK256 0000085d: SWAP1 0000085e: POP 0000085f: PUSH2 0x086c 00000862: DUP5 00000863: DUP3 00000864: DUP5 00000865: PUSH2 0x01f8 00000868: PUSH2 0x1919 0000086b: JUMP 0000086c: JUMPDEST 0000086d: PUSH2 0x0518 00000870: DUP5 00000871: DUP5 00000872: PUSH2 0x17ef 00000875: JUMP 00000876: JUMPDEST 00000877: PUSH2 0x0887 0000087a: PUSH1 0x02 0000087c: DUP1 0000087d: SLOAD 0000087e: EQ 0000087f: ISZERO 00000880: PUSH2 0x0190 00000883: PUSH2 0x1946 00000886: JUMP 00000887: JUMPDEST 00000888: PUSH1 0x02 0000088a: DUP1 0000088b: SSTORE 0000088c: JUMP 0000088d: JUMPDEST 0000088e: PUSH1 0x40 00000890: MLOAD 00000891: PUSH32 0x010ae75700000000000000000000000000000000000000000000000000000000 000008b2: DUP2 000008b3: MSTORE 000008b4: PUSH1 0x00 000008b6: SWAP1 000008b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008cc: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25 000008ed: AND 000008ee: SWAP1 000008ef: PUSH4 0x010ae757 000008f4: SWAP1 000008f5: PUSH2 0x0902 000008f8: SWAP1 000008f9: DUP6 000008fa: SWAP1 000008fb: PUSH1 0x04 000008fd: ADD 000008fe: PUSH2 0x22df 00000901: JUMP 00000902: JUMPDEST 00000903: PUSH1 0x20 00000905: PUSH1 0x40 00000907: MLOAD 00000908: DUP1 00000909: DUP4 0000090a: SUB 0000090b: DUP2 0000090c: DUP7 0000090d: DUP1 0000090e: EXTCODESIZE 0000090f: ISZERO 00000910: DUP1 00000911: ISZERO 00000912: PUSH2 0x091a 00000915: JUMPI 00000916: PUSH1 0x00 00000918: DUP1 00000919: REVERT 0000091a: JUMPDEST 0000091b: POP 0000091c: GAS 0000091d: STATICCALL 0000091e: ISZERO 0000091f: DUP1 00000920: ISZERO 00000921: PUSH2 0x092e 00000924: JUMPI 00000925: RETURNDATASIZE 00000926: PUSH1 0x00 00000928: DUP1 00000929: RETURNDATACOPY 0000092a: RETURNDATASIZE 0000092b: PUSH1 0x00 0000092d: REVERT 0000092e: JUMPDEST 0000092f: POP 00000930: POP 00000931: POP 00000932: POP 00000933: PUSH1 0x40 00000935: MLOAD 00000936: RETURNDATASIZE 00000937: PUSH1 0x1f 00000939: NOT 0000093a: PUSH1 0x1f 0000093c: DUP3 0000093d: ADD 0000093e: AND 0000093f: DUP3 00000940: ADD 00000941: DUP1 00000942: PUSH1 0x40 00000944: MSTORE 00000945: POP 00000946: DUP2 00000947: ADD 00000948: SWAP1 00000949: PUSH2 0x0952 0000094c: SWAP2 0000094d: SWAP1 0000094e: PUSH2 0x2275 00000951: JUMP 00000952: JUMPDEST 00000953: SWAP1 00000954: POP 00000955: DUP1 00000956: PUSH2 0x095f 00000959: JUMPI 0000095a: POP 0000095b: PUSH2 0x0379 0000095e: JUMP 0000095f: JUMPDEST 00000960: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000975: DUP3 00000976: AND 00000977: PUSH1 0x00 00000979: SWAP1 0000097a: DUP2 0000097b: MSTORE 0000097c: PUSH1 0x07 0000097e: PUSH1 0x20 00000980: MSTORE 00000981: PUSH1 0x40 00000983: DUP2 00000984: KECCAK256 00000985: DUP1 00000986: SLOAD 00000987: SWAP1 00000988: SWAP2 00000989: PUSH9 0x010000000000000000 00000993: SWAP1 00000994: SWAP2 00000995: DIV 00000996: PUSH8 0xffffffffffffffff 0000099f: AND 000009a0: SWAP1 000009a1: DUP2 000009a2: PUSH2 0x09d9 000009a5: JUMPI 000009a6: PUSH2 0x09d2 000009a9: DUP6 000009aa: PUSH32 0x0000000000000000000000000000000000000000000000000000000062cf5c80 000009cb: PUSH1 0x00 000009cd: DUP8 000009ce: PUSH2 0x1954 000009d1: JUMP 000009d2: JUMPDEST 000009d3: SWAP1 000009d4: POP 000009d5: PUSH2 0x0a2c 000009d8: JUMP 000009d9: JUMPDEST 000009da: TIMESTAMP 000009db: DUP3 000009dc: LT 000009dd: PUSH2 0x09e9 000009e0: JUMPI 000009e1: POP 000009e2: POP 000009e3: POP 000009e4: POP 000009e5: PUSH2 0x0379 000009e8: JUMP 000009e9: JUMPDEST 000009ea: POP 000009eb: DUP2 000009ec: SLOAD 000009ed: PUSH17 0x0100000000000000000000000000000000 000009ff: SWAP1 00000a00: DIV 00000a01: PUSH16 0xffffffffffffffffffffffffffffffff 00000a12: AND 00000a13: PUSH1 0x14 00000a15: DUP2 00000a16: DUP6 00000a17: SUB 00000a18: GT 00000a19: ISZERO 00000a1a: PUSH2 0x0a2c 00000a1d: JUMPI 00000a1e: PUSH2 0x0a29 00000a21: DUP6 00000a22: DUP4 00000a23: DUP4 00000a24: DUP8 00000a25: PUSH2 0x1954 00000a28: JUMP 00000a29: JUMPDEST 00000a2a: SWAP1 00000a2b: POP 00000a2c: JUMPDEST 00000a2d: DUP1 00000a2e: PUSH2 0x0a35 00000a31: JUMPI 00000a32: POP 00000a33: PUSH1 0x01 00000a35: JUMPDEST 00000a36: PUSH2 0x0a3d 00000a39: PUSH2 0x1ebb 00000a3c: JUMP 00000a3d: JUMPDEST 00000a3e: PUSH1 0x40 00000a40: MLOAD 00000a41: PUSH32 0x28d09d4700000000000000000000000000000000000000000000000000000000 00000a62: DUP2 00000a63: MSTORE 00000a64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a79: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25 00000a9a: AND 00000a9b: SWAP1 00000a9c: PUSH4 0x28d09d47 00000aa1: SWAP1 00000aa2: PUSH2 0x0ab1 00000aa5: SWAP1 00000aa6: DUP10 00000aa7: SWAP1 00000aa8: DUP7 00000aa9: SWAP1 00000aaa: PUSH1 0x04 00000aac: ADD 00000aad: PUSH2 0x238f 00000ab0: JUMP 00000ab1: JUMPDEST 00000ab2: PUSH1 0x80 00000ab4: PUSH1 0x40 00000ab6: MLOAD 00000ab7: DUP1 00000ab8: DUP4 00000ab9: SUB 00000aba: DUP2 00000abb: DUP7 00000abc: DUP1 00000abd: EXTCODESIZE 00000abe: ISZERO 00000abf: DUP1 00000ac0: ISZERO 00000ac1: PUSH2 0x0ac9 00000ac4: JUMPI 00000ac5: PUSH1 0x00 00000ac7: DUP1 00000ac8: REVERT 00000ac9: JUMPDEST 00000aca: POP 00000acb: GAS 00000acc: STATICCALL 00000acd: ISZERO 00000ace: DUP1 00000acf: ISZERO 00000ad0: PUSH2 0x0add 00000ad3: JUMPI 00000ad4: RETURNDATASIZE 00000ad5: PUSH1 0x00 00000ad7: DUP1 00000ad8: RETURNDATACOPY 00000ad9: RETURNDATASIZE 00000ada: PUSH1 0x00 00000adc: REVERT 00000add: JUMPDEST 00000ade: POP 00000adf: POP 00000ae0: POP 00000ae1: POP 00000ae2: PUSH1 0x40 00000ae4: MLOAD 00000ae5: RETURNDATASIZE 00000ae6: PUSH1 0x1f 00000ae8: NOT 00000ae9: PUSH1 0x1f 00000aeb: DUP3 00000aec: ADD 00000aed: AND 00000aee: DUP3 00000aef: ADD 00000af0: DUP1 00000af1: PUSH1 0x40 00000af3: MSTORE 00000af4: POP 00000af5: DUP2 00000af6: ADD 00000af7: SWAP1 00000af8: PUSH2 0x0b01 00000afb: SWAP2 00000afc: SWAP1 00000afd: PUSH2 0x2206 00000b00: JUMP 00000b01: JUMPDEST 00000b02: SWAP1 00000b03: POP 00000b04: DUP3 00000b05: PUSH2 0x0bd5 00000b08: JUMPI 00000b09: PUSH32 0x0000000000000000000000000000000000000000000000000000000062cf5c80 00000b2a: TIMESTAMP 00000b2b: GT 00000b2c: PUSH2 0x0b6a 00000b2f: JUMPI 00000b30: PUSH1 0x40 00000b32: MLOAD 00000b33: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000b54: DUP2 00000b55: MSTORE 00000b56: PUSH1 0x04 00000b58: ADD 00000b59: PUSH2 0x0b61 00000b5c: SWAP1 00000b5d: PUSH2 0x2548 00000b60: JUMP 00000b61: JUMPDEST 00000b62: PUSH1 0x40 00000b64: MLOAD 00000b65: DUP1 00000b66: SWAP2 00000b67: SUB 00000b68: SWAP1 00000b69: REVERT 00000b6a: JUMPDEST 00000b6b: PUSH2 0x0ba0 00000b6e: PUSH32 0x0000000000000000000000000000000000000000000000000000000062cf5c80 00000b8f: PUSH2 0x0b9b 00000b92: DUP4 00000b93: PUSH1 0x40 00000b95: ADD 00000b96: MLOAD 00000b97: PUSH2 0x1a75 00000b9a: JUMP 00000b9b: JUMPDEST 00000b9c: PUSH2 0x1a85 00000b9f: JUMP 00000ba0: JUMPDEST 00000ba1: DUP5 00000ba2: SLOAD 00000ba3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 00000bc4: AND 00000bc5: PUSH8 0xffffffffffffffff 00000bce: DUP3 00000bcf: AND 00000bd0: OR 00000bd1: DUP6 00000bd2: SSTORE 00000bd3: SWAP3 00000bd4: POP 00000bd5: JUMPDEST 00000bd6: PUSH2 0x0bdd 00000bd9: PUSH2 0x1ebb 00000bdc: JUMP 00000bdd: JUMPDEST 00000bde: PUSH1 0x00 00000be0: JUMPDEST 00000be1: PUSH1 0x32 00000be3: DUP2 00000be4: LT 00000be5: ISZERO 00000be6: PUSH2 0x0dc2 00000be9: JUMPI 00000bea: DUP3 00000beb: PUSH1 0x40 00000bed: ADD 00000bee: MLOAD 00000bef: DUP6 00000bf0: LT 00000bf1: ISZERO 00000bf2: DUP1 00000bf3: ISZERO 00000bf4: PUSH2 0x0bfd 00000bf7: JUMPI 00000bf8: POP 00000bf9: DUP7 00000bfa: DUP5 00000bfb: GT 00000bfc: ISZERO 00000bfd: JUMPDEST 00000bfe: ISZERO 00000bff: PUSH2 0x0d11 00000c02: JUMPI 00000c03: PUSH1 0x01 00000c05: DUP5 00000c06: ADD 00000c07: SWAP4 00000c08: POP 00000c09: DUP3 00000c0a: SWAP2 00000c0b: POP 00000c0c: DUP7 00000c0d: DUP5 00000c0e: GT 00000c0f: ISZERO 00000c10: PUSH2 0x0c45 00000c13: JUMPI 00000c14: PUSH1 0x40 00000c16: MLOAD 00000c17: DUP1 00000c18: PUSH1 0x80 00000c1a: ADD 00000c1b: PUSH1 0x40 00000c1d: MSTORE 00000c1e: DUP1 00000c1f: PUSH1 0x00 00000c21: PUSH1 0x0f 00000c23: SIGNEXTEND 00000c24: DUP2 00000c25: MSTORE 00000c26: PUSH1 0x20 00000c28: ADD 00000c29: PUSH1 0x00 00000c2b: PUSH1 0x0f 00000c2d: SIGNEXTEND 00000c2e: DUP2 00000c2f: MSTORE 00000c30: PUSH1 0x20 00000c32: ADD 00000c33: PUSH1 0x00 00000c35: DUP2 00000c36: MSTORE 00000c37: PUSH1 0x20 00000c39: ADD 00000c3a: PUSH1 0x00 00000c3c: DUP2 00000c3d: MSTORE 00000c3e: POP 00000c3f: SWAP3 00000c40: POP 00000c41: PUSH2 0x0d0c 00000c44: JUMP 00000c45: JUMPDEST 00000c46: PUSH1 0x40 00000c48: MLOAD 00000c49: PUSH32 0x28d09d4700000000000000000000000000000000000000000000000000000000 00000c6a: DUP2 00000c6b: MSTORE 00000c6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c81: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25 00000ca2: AND 00000ca3: SWAP1 00000ca4: PUSH4 0x28d09d47 00000ca9: SWAP1 00000caa: PUSH2 0x0cb9 00000cad: SWAP1 00000cae: DUP12 00000caf: SWAP1 00000cb0: DUP9 00000cb1: SWAP1 00000cb2: PUSH1 0x04 00000cb4: ADD 00000cb5: PUSH2 0x238f 00000cb8: JUMP 00000cb9: JUMPDEST 00000cba: PUSH1 0x80 00000cbc: PUSH1 0x40 00000cbe: MLOAD 00000cbf: DUP1 00000cc0: DUP4 00000cc1: SUB 00000cc2: DUP2 00000cc3: DUP7 00000cc4: DUP1 00000cc5: EXTCODESIZE 00000cc6: ISZERO 00000cc7: DUP1 00000cc8: ISZERO 00000cc9: PUSH2 0x0cd1 00000ccc: JUMPI 00000ccd: PUSH1 0x00 00000ccf: DUP1 00000cd0: REVERT 00000cd1: JUMPDEST 00000cd2: POP 00000cd3: GAS 00000cd4: STATICCALL 00000cd5: ISZERO 00000cd6: DUP1 00000cd7: ISZERO 00000cd8: PUSH2 0x0ce5 00000cdb: JUMPI 00000cdc: RETURNDATASIZE 00000cdd: PUSH1 0x00 00000cdf: DUP1 00000ce0: RETURNDATACOPY 00000ce1: RETURNDATASIZE 00000ce2: PUSH1 0x00 00000ce4: REVERT 00000ce5: JUMPDEST 00000ce6: POP 00000ce7: POP 00000ce8: POP 00000ce9: POP 00000cea: PUSH1 0x40 00000cec: MLOAD 00000ced: RETURNDATASIZE 00000cee: PUSH1 0x1f 00000cf0: NOT 00000cf1: PUSH1 0x1f 00000cf3: DUP3 00000cf4: ADD 00000cf5: AND 00000cf6: DUP3 00000cf7: ADD 00000cf8: DUP1 00000cf9: PUSH1 0x40 00000cfb: MSTORE 00000cfc: POP 00000cfd: DUP2 00000cfe: ADD 00000cff: SWAP1 00000d00: PUSH2 0x0d09 00000d03: SWAP2 00000d04: SWAP1 00000d05: PUSH2 0x2206 00000d08: JUMP 00000d09: JUMPDEST 00000d0a: SWAP3 00000d0b: POP 00000d0c: JUMPDEST 00000d0d: PUSH2 0x0dba 00000d10: JUMP 00000d11: JUMPDEST 00000d12: TIMESTAMP 00000d13: DUP6 00000d14: LT 00000d15: PUSH2 0x0d1d 00000d18: JUMPI 00000d19: PUSH2 0x0dc2 00000d1c: JUMP 00000d1d: JUMPDEST 00000d1e: PUSH1 0x00 00000d20: DUP3 00000d21: PUSH1 0x40 00000d23: ADD 00000d24: MLOAD 00000d25: DUP7 00000d26: SUB 00000d27: SWAP1 00000d28: POP 00000d29: PUSH1 0x00 00000d2b: DUP2 00000d2c: DUP5 00000d2d: PUSH1 0x20 00000d2f: ADD 00000d30: MLOAD 00000d31: MUL 00000d32: PUSH1 0x0f 00000d34: SIGNEXTEND 00000d35: DUP5 00000d36: PUSH1 0x00 00000d38: ADD 00000d39: MLOAD 00000d3a: PUSH1 0x0f 00000d3c: SIGNEXTEND 00000d3d: SGT 00000d3e: PUSH2 0x0d48 00000d41: JUMPI 00000d42: PUSH1 0x00 00000d44: PUSH2 0x0d59 00000d47: JUMP 00000d48: JUMPDEST 00000d49: DUP2 00000d4a: DUP5 00000d4b: PUSH1 0x20 00000d4d: ADD 00000d4e: MLOAD 00000d4f: MUL 00000d50: DUP5 00000d51: PUSH1 0x00 00000d53: ADD 00000d54: MLOAD 00000d55: SUB 00000d56: PUSH1 0x0f 00000d58: SIGNEXTEND 00000d59: JUMPDEST 00000d5a: SWAP1 00000d5b: POP 00000d5c: DUP1 00000d5d: ISZERO 00000d5e: DUP1 00000d5f: ISZERO 00000d60: PUSH2 0x0d68 00000d63: JUMPI 00000d64: POP 00000d65: DUP9 00000d66: DUP7 00000d67: GT 00000d68: JUMPDEST 00000d69: ISZERO 00000d6a: PUSH2 0x0d7f 00000d6d: JUMPI 00000d6e: PUSH2 0x0d76 00000d71: TIMESTAMP 00000d72: PUSH2 0x1a75 00000d75: JUMP 00000d76: JUMPDEST 00000d77: SWAP7 00000d78: POP 00000d79: POP 00000d7a: POP 00000d7b: PUSH2 0x0dc2 00000d7e: JUMP 00000d7f: JUMPDEST 00000d80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d95: DUP11 00000d96: AND 00000d97: PUSH1 0x00 00000d99: SWAP1 00000d9a: DUP2 00000d9b: MSTORE 00000d9c: PUSH1 0x08 00000d9e: PUSH1 0x20 00000da0: SWAP1 00000da1: DUP2 00000da2: MSTORE 00000da3: PUSH1 0x40 00000da5: DUP1 00000da6: DUP4 00000da7: KECCAK256 00000da8: DUP11 00000da9: DUP5 00000daa: MSTORE 00000dab: SWAP1 00000dac: SWAP2 00000dad: MSTORE 00000dae: SWAP1 00000daf: KECCAK256 00000db0: SSTORE 00000db1: POP 00000db2: PUSH3 0x093a80 00000db6: SWAP1 00000db7: SWAP5 00000db8: ADD 00000db9: SWAP4 00000dba: JUMPDEST 00000dbb: PUSH1 0x01 00000dbd: ADD 00000dbe: PUSH2 0x0be0 00000dc1: JUMP 00000dc2: JUMPDEST 00000dc3: POP 00000dc4: POP 00000dc5: DUP4 00000dc6: SLOAD 00000dc7: PUSH16 0xffffffffffffffffffffffffffffffff 00000dd8: AND 00000dd9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000dfa: SWAP3 00000dfb: SWAP1 00000dfc: SWAP3 00000dfd: ADD 00000dfe: PUSH8 0xffffffffffffffff 00000e07: SWAP1 00000e08: DUP2 00000e09: AND 00000e0a: PUSH17 0x0100000000000000000000000000000000 00000e1c: MUL 00000e1d: SWAP3 00000e1e: SWAP1 00000e1f: SWAP3 00000e20: OR 00000e21: PUSH32 0xffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff 00000e42: AND 00000e43: PUSH9 0x010000000000000000 00000e4d: SWAP4 00000e4e: SWAP1 00000e4f: SWAP3 00000e50: AND 00000e51: SWAP3 00000e52: SWAP1 00000e53: SWAP3 00000e54: MUL 00000e55: OR 00000e56: SWAP1 00000e57: SWAP2 00000e58: SSTORE 00000e59: POP 00000e5a: POP 00000e5b: POP 00000e5c: JUMP 00000e5d: JUMPDEST 00000e5e: PUSH1 0x01 00000e60: PUSH1 0x02 00000e62: SSTORE 00000e63: JUMP 00000e64: JUMPDEST 00000e65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e7a: DUP3 00000e7b: AND 00000e7c: PUSH1 0x00 00000e7e: SWAP1 00000e7f: DUP2 00000e80: MSTORE 00000e81: PUSH1 0x05 00000e83: PUSH1 0x20 00000e85: MSTORE 00000e86: PUSH1 0x40 00000e88: DUP2 00000e89: KECCAK256 00000e8a: DUP1 00000e8b: SLOAD 00000e8c: SWAP1 00000e8d: SWAP2 00000e8e: PUSH9 0x010000000000000000 00000e98: SWAP1 00000e99: SWAP2 00000e9a: DIV 00000e9b: PUSH8 0xffffffffffffffff 00000ea4: AND 00000ea5: SWAP1 00000ea6: DUP2 00000ea7: PUSH2 0x0f48 00000eaa: JUMPI 00000eab: TIMESTAMP 00000eac: SWAP2 00000ead: POP 00000eae: PUSH2 0x0eb6 00000eb1: TIMESTAMP 00000eb2: PUSH2 0x1a9c 00000eb5: JUMP 00000eb6: JUMPDEST 00000eb7: DUP4 00000eb8: SLOAD 00000eb9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 00000eda: AND 00000edb: PUSH8 0xffffffffffffffff 00000ee4: SWAP2 00000ee5: SWAP1 00000ee6: SWAP2 00000ee7: AND 00000ee8: OR 00000ee9: DUP4 00000eea: SSTORE 00000eeb: PUSH32 0x0000000000000000000000000000000000000000000000000000000062cf5c80 00000f0c: TIMESTAMP 00000f0d: GT 00000f0e: PUSH2 0x0f43 00000f11: JUMPI 00000f12: PUSH1 0x40 00000f14: MLOAD 00000f15: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f36: DUP2 00000f37: MSTORE 00000f38: PUSH1 0x04 00000f3a: ADD 00000f3b: PUSH2 0x0b61 00000f3e: SWAP1 00000f3f: PUSH2 0x2548 00000f42: JUMP 00000f43: JUMPDEST 00000f44: PUSH2 0x0f9a 00000f47: JUMP 00000f48: JUMPDEST 00000f49: DUP2 00000f4a: TIMESTAMP 00000f4b: SUB 00000f4c: SWAP1 00000f4d: POP 00000f4e: DUP4 00000f4f: PUSH2 0x0f9a 00000f52: JUMPI 00000f53: PUSH1 0x00 00000f55: PUSH2 0x0f5d 00000f58: DUP4 00000f59: PUSH2 0x1a9c 00000f5c: JUMP 00000f5d: JUMPDEST 00000f5e: PUSH2 0x0f66 00000f61: TIMESTAMP 00000f62: PUSH2 0x1a9c 00000f65: JUMP 00000f66: JUMPDEST 00000f67: EQ 00000f68: SWAP1 00000f69: POP 00000f6a: PUSH1 0x00 00000f6c: PUSH3 0x015180 00000f70: TIMESTAMP 00000f71: PUSH2 0x0f79 00000f74: TIMESTAMP 00000f75: PUSH2 0x1a75 00000f78: JUMP 00000f79: JUMPDEST 00000f7a: SUB 00000f7b: LT 00000f7c: SWAP1 00000f7d: POP 00000f7e: DUP2 00000f7f: DUP1 00000f80: ISZERO 00000f81: PUSH2 0x0f88 00000f84: JUMPI 00000f85: POP 00000f86: DUP1 00000f87: ISZERO 00000f88: JUMPDEST 00000f89: ISZERO 00000f8a: PUSH2 0x0f97 00000f8d: JUMPI 00000f8e: POP 00000f8f: POP 00000f90: POP 00000f91: POP 00000f92: POP 00000f93: PUSH2 0x0412 00000f96: JUMP 00000f97: JUMPDEST 00000f98: POP 00000f99: POP 00000f9a: JUMPDEST 00000f9b: DUP3 00000f9c: SLOAD 00000f9d: PUSH32 0xffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff 00000fbe: AND 00000fbf: PUSH9 0x010000000000000000 00000fc9: TIMESTAMP 00000fca: PUSH8 0xffffffffffffffff 00000fd3: AND 00000fd4: MUL 00000fd5: OR 00000fd6: DUP4 00000fd7: SSTORE 00000fd8: PUSH1 0x40 00000fda: MLOAD 00000fdb: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00000ffc: DUP2 00000ffd: MSTORE 00000ffe: PUSH1 0x00 00001000: SWAP1 00001001: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001016: DUP8 00001017: AND 00001018: SWAP1 00001019: PUSH4 0x70a08231 0000101e: SWAP1 0000101f: PUSH2 0x102c 00001022: SWAP1 00001023: ADDRESS 00001024: SWAP1 00001025: PUSH1 0x04 00001027: ADD 00001028: PUSH2 0x22df 0000102b: JUMP 0000102c: JUMPDEST 0000102d: PUSH1 0x20 0000102f: PUSH1 0x40 00001031: MLOAD 00001032: DUP1 00001033: DUP4 00001034: SUB 00001035: DUP2 00001036: DUP7 00001037: DUP1 00001038: EXTCODESIZE 00001039: ISZERO 0000103a: DUP1 0000103b: ISZERO 0000103c: PUSH2 0x1044 0000103f: JUMPI 00001040: PUSH1 0x00 00001042: DUP1 00001043: REVERT 00001044: JUMPDEST 00001045: POP 00001046: GAS 00001047: STATICCALL 00001048: ISZERO 00001049: DUP1 0000104a: ISZERO 0000104b: PUSH2 0x1058 0000104e: JUMPI 0000104f: RETURNDATASIZE 00001050: PUSH1 0x00 00001052: DUP1 00001053: RETURNDATACOPY 00001054: RETURNDATASIZE 00001055: PUSH1 0x00 00001057: REVERT 00001058: JUMPDEST 00001059: POP 0000105a: POP 0000105b: POP 0000105c: POP 0000105d: PUSH1 0x40 0000105f: MLOAD 00001060: RETURNDATASIZE 00001061: PUSH1 0x1f 00001063: NOT 00001064: PUSH1 0x1f 00001066: DUP3 00001067: ADD 00001068: AND 00001069: DUP3 0000106a: ADD 0000106b: DUP1 0000106c: PUSH1 0x40 0000106e: MSTORE 0000106f: POP 00001070: DUP2 00001071: ADD 00001072: SWAP1 00001073: PUSH2 0x107c 00001076: SWAP2 00001077: SWAP1 00001078: PUSH2 0x2275 0000107b: JUMP 0000107c: JUMPDEST 0000107d: DUP5 0000107e: SLOAD 0000107f: SWAP1 00001080: SWAP2 00001081: POP 00001082: PUSH1 0x00 00001084: SWAP1 00001085: PUSH2 0x10b5 00001088: SWAP1 00001089: DUP4 0000108a: SWAP1 0000108b: PUSH17 0x0100000000000000000000000000000000 0000109d: SWAP1 0000109e: DIV 0000109f: PUSH16 0xffffffffffffffffffffffffffffffff 000010b0: AND 000010b1: PUSH2 0x1aa8 000010b4: JUMP 000010b5: JUMPDEST 000010b6: SWAP1 000010b7: POP 000010b8: DUP1 000010b9: PUSH2 0x10c6 000010bc: JUMPI 000010bd: POP 000010be: POP 000010bf: POP 000010c0: POP 000010c1: POP 000010c2: PUSH2 0x0412 000010c5: JUMP 000010c6: JUMPDEST 000010c7: PUSH16 0xffffffffffffffffffffffffffffffff 000010d8: DUP3 000010d9: GT 000010da: ISZERO 000010db: PUSH2 0x1110 000010de: JUMPI 000010df: PUSH1 0x40 000010e1: MLOAD 000010e2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001103: DUP2 00001104: MSTORE 00001105: PUSH1 0x04 00001107: ADD 00001108: PUSH2 0x0b61 0000110b: SWAP1 0000110c: PUSH2 0x2511 0000110f: JUMP 00001110: JUMPDEST 00001111: DUP5 00001112: SLOAD 00001113: PUSH16 0xffffffffffffffffffffffffffffffff 00001124: DUP1 00001125: DUP5 00001126: AND 00001127: PUSH17 0x0100000000000000000000000000000000 00001139: MUL 0000113a: SWAP2 0000113b: AND 0000113c: OR 0000113d: DUP6 0000113e: SSTORE 0000113f: PUSH1 0x00 00001141: PUSH2 0x1149 00001144: DUP6 00001145: PUSH2 0x1a9c 00001148: JUMP 00001149: JUMPDEST 0000114a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000115f: DUP10 00001160: AND 00001161: PUSH1 0x00 00001163: SWAP1 00001164: DUP2 00001165: MSTORE 00001166: PUSH1 0x06 00001168: PUSH1 0x20 0000116a: MSTORE 0000116b: PUSH1 0x40 0000116d: DUP2 0000116e: KECCAK256 0000116f: SWAP2 00001170: SWAP3 00001171: POP 00001172: SWAP1 00001173: DUP2 00001174: JUMPDEST 00001175: PUSH1 0x14 00001177: DUP2 00001178: LT 00001179: ISZERO 0000117a: PUSH2 0x1246 0000117d: JUMPI 0000117e: DUP4 0000117f: PUSH3 0x093a80 00001183: ADD 00001184: SWAP3 00001185: POP 00001186: DUP3 00001187: TIMESTAMP 00001188: LT 00001189: ISZERO 0000118a: PUSH2 0x11e4 0000118d: JUMPI 0000118e: DUP7 0000118f: ISZERO 00001190: DUP1 00001191: ISZERO 00001192: PUSH2 0x119a 00001195: JUMPI 00001196: POP 00001197: DUP8 00001198: TIMESTAMP 00001199: EQ 0000119a: JUMPDEST 0000119b: ISZERO 0000119c: PUSH2 0x11b8 0000119f: JUMPI 000011a0: PUSH1 0x00 000011a2: DUP5 000011a3: DUP2 000011a4: MSTORE 000011a5: PUSH1 0x20 000011a7: DUP4 000011a8: SWAP1 000011a9: MSTORE 000011aa: PUSH1 0x40 000011ac: SWAP1 000011ad: KECCAK256 000011ae: DUP1 000011af: SLOAD 000011b0: DUP7 000011b1: ADD 000011b2: SWAP1 000011b3: SSTORE 000011b4: PUSH2 0x11df 000011b7: JUMP 000011b8: JUMPDEST 000011b9: DUP7 000011ba: DUP9 000011bb: TIMESTAMP 000011bc: SUB 000011bd: DUP7 000011be: MUL 000011bf: DUP2 000011c0: PUSH2 0x11c5 000011c3: JUMPI 000011c4: INVALID 000011c5: JUMPDEST 000011c6: PUSH1 0x00 000011c8: DUP7 000011c9: DUP2 000011ca: MSTORE 000011cb: PUSH1 0x20 000011cd: DUP6 000011ce: SWAP1 000011cf: MSTORE 000011d0: PUSH1 0x40 000011d2: SWAP1 000011d3: KECCAK256 000011d4: DUP1 000011d5: SLOAD 000011d6: SWAP3 000011d7: SWAP1 000011d8: SWAP2 000011d9: DIV 000011da: SWAP1 000011db: SWAP2 000011dc: ADD 000011dd: SWAP1 000011de: SSTORE 000011df: JUMPDEST 000011e0: PUSH2 0x1246 000011e3: JUMP 000011e4: JUMPDEST 000011e5: DUP7 000011e6: ISZERO 000011e7: DUP1 000011e8: ISZERO 000011e9: PUSH2 0x11f1 000011ec: JUMPI 000011ed: POP 000011ee: DUP8 000011ef: DUP4 000011f0: EQ 000011f1: JUMPDEST 000011f2: ISZERO 000011f3: PUSH2 0x120f 000011f6: JUMPI 000011f7: PUSH1 0x00 000011f9: DUP5 000011fa: DUP2 000011fb: MSTORE 000011fc: PUSH1 0x20 000011fe: DUP4 000011ff: SWAP1 00001200: MSTORE 00001201: PUSH1 0x40 00001203: SWAP1 00001204: KECCAK256 00001205: DUP1 00001206: SLOAD 00001207: DUP7 00001208: ADD 00001209: SWAP1 0000120a: SSTORE 0000120b: PUSH2 0x1236 0000120e: JUMP 0000120f: JUMPDEST 00001210: DUP7 00001211: DUP9 00001212: DUP5 00001213: SUB 00001214: DUP7 00001215: MUL 00001216: DUP2 00001217: PUSH2 0x121c 0000121a: JUMPI 0000121b: INVALID 0000121c: JUMPDEST 0000121d: PUSH1 0x00 0000121f: DUP7 00001220: DUP2 00001221: MSTORE 00001222: PUSH1 0x20 00001224: DUP6 00001225: SWAP1 00001226: MSTORE 00001227: PUSH1 0x40 00001229: SWAP1 0000122a: KECCAK256 0000122b: DUP1 0000122c: SLOAD 0000122d: SWAP3 0000122e: SWAP1 0000122f: SWAP2 00001230: DIV 00001231: SWAP1 00001232: SWAP2 00001233: ADD 00001234: SWAP1 00001235: SSTORE 00001236: JUMPDEST 00001237: SWAP2 00001238: SWAP7 00001239: POP 0000123a: DUP7 0000123b: SWAP3 0000123c: POP 0000123d: DUP3 0000123e: SWAP2 0000123f: PUSH1 0x01 00001241: ADD 00001242: PUSH2 0x1174 00001245: JUMP 00001246: JUMPDEST 00001247: POP 00001248: PUSH32 0x9b7f1a85a4c9b4e59e1b6527d9969c50cdfb3a1a467d0c4a51fb0ed8bf07f130 00001269: DUP11 0000126a: DUP6 0000126b: DUP10 0000126c: PUSH1 0x40 0000126e: MLOAD 0000126f: PUSH2 0x127a 00001272: SWAP4 00001273: SWAP3 00001274: SWAP2 00001275: SWAP1 00001276: PUSH2 0x24e3 00001279: JUMP 0000127a: JUMPDEST 0000127b: PUSH1 0x40 0000127d: MLOAD 0000127e: DUP1 0000127f: SWAP2 00001280: SUB 00001281: SWAP1 00001282: LOG1 00001283: POP 00001284: POP 00001285: POP 00001286: POP 00001287: POP 00001288: POP 00001289: POP 0000128a: POP 0000128b: POP 0000128c: POP 0000128d: JUMP 0000128e: JUMPDEST 0000128f: PUSH2 0x0518 00001292: DUP5 00001293: PUSH4 0x23b872dd 00001298: PUSH1 0xe0 0000129a: SHL 0000129b: DUP6 0000129c: DUP6 0000129d: DUP6 0000129e: PUSH1 0x40 000012a0: MLOAD 000012a1: PUSH1 0x24 000012a3: ADD 000012a4: PUSH2 0x12af 000012a7: SWAP4 000012a8: SWAP3 000012a9: SWAP2 000012aa: SWAP1 000012ab: PUSH2 0x2300 000012ae: JUMP 000012af: JUMPDEST 000012b0: PUSH1 0x40 000012b2: DUP1 000012b3: MLOAD 000012b4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000012d5: DUP2 000012d6: DUP5 000012d7: SUB 000012d8: ADD 000012d9: DUP2 000012da: MSTORE 000012db: SWAP2 000012dc: SWAP1 000012dd: MSTORE 000012de: PUSH1 0x20 000012e0: DUP2 000012e1: ADD 000012e2: DUP1 000012e3: MLOAD 000012e4: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001301: AND 00001302: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001323: SWAP1 00001324: SWAP4 00001325: AND 00001326: SWAP3 00001327: SWAP1 00001328: SWAP3 00001329: OR 0000132a: SWAP1 0000132b: SWAP2 0000132c: MSTORE 0000132d: PUSH2 0x1ab6 00001330: JUMP 00001331: JUMPDEST 00001332: PUSH2 0x0412 00001335: DUP2 00001336: DUP4 00001337: EQ 00001338: PUSH1 0x67 0000133a: PUSH2 0x1946 0000133d: JUMP 0000133e: JUMPDEST 0000133f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001354: DUP1 00001355: DUP4 00001356: AND 00001357: PUSH1 0x00 00001359: SWAP1 0000135a: DUP2 0000135b: MSTORE 0000135c: PUSH1 0x09 0000135e: PUSH1 0x20 00001360: SWAP1 00001361: DUP2 00001362: MSTORE 00001363: PUSH1 0x40 00001365: DUP1 00001366: DUP4 00001367: KECCAK256 00001368: SWAP4 00001369: DUP6 0000136a: AND 0000136b: DUP4 0000136c: MSTORE 0000136d: SWAP3 0000136e: SWAP1 0000136f: MSTORE 00001370: SWAP1 00001371: DUP2 00001372: KECCAK256 00001373: SLOAD 00001374: DUP1 00001375: ISZERO 00001376: PUSH2 0x1380 00001379: JUMPI 0000137a: SWAP1 0000137b: POP 0000137c: PUSH2 0x052d 0000137f: JUMP 00001380: JUMPDEST 00001381: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001396: DUP1 00001397: DUP6 00001398: AND 00001399: PUSH1 0x00 0000139b: SWAP1 0000139c: DUP2 0000139d: MSTORE 0000139e: PUSH1 0x07 000013a0: PUSH1 0x20 000013a2: SWAP1 000013a3: DUP2 000013a4: MSTORE 000013a5: PUSH1 0x40 000013a7: DUP1 000013a8: DUP4 000013a9: KECCAK256 000013aa: SLOAD 000013ab: SWAP4 000013ac: DUP8 000013ad: AND 000013ae: DUP4 000013af: MSTORE 000013b0: PUSH1 0x05 000013b2: SWAP1 000013b3: SWAP2 000013b4: MSTORE 000013b5: SWAP1 000013b6: KECCAK256 000013b7: SLOAD 000013b8: PUSH2 0x13ce 000013bb: SWAP2 000013bc: PUSH8 0xffffffffffffffff 000013c5: SWAP1 000013c6: DUP2 000013c7: AND 000013c8: SWAP2 000013c9: AND 000013ca: PUSH2 0x1a85 000013cd: JUMP 000013ce: JUMPDEST 000013cf: SWAP5 000013d0: SWAP4 000013d1: POP 000013d2: POP 000013d3: POP 000013d4: POP 000013d5: JUMP 000013d6: JUMPDEST 000013d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013ec: DUP2 000013ed: AND 000013ee: PUSH1 0x00 000013f0: SWAP1 000013f1: DUP2 000013f2: MSTORE 000013f3: PUSH1 0x01 000013f5: PUSH1 0x20 000013f7: MSTORE 000013f8: PUSH1 0x40 000013fa: SWAP1 000013fb: KECCAK256 000013fc: SLOAD 000013fd: PUSH1 0xff 000013ff: AND 00001400: ISZERO 00001401: PUSH2 0x0379 00001404: JUMPI 00001405: PUSH2 0x0379 00001408: CALLER 00001409: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000141e: DUP4 0000141f: AND 00001420: EQ 00001421: PUSH2 0x0191 00001424: PUSH2 0x1946 00001427: JUMP 00001428: JUMPDEST 00001429: PUSH1 0x03 0000142b: SLOAD 0000142c: PUSH1 0x00 0000142e: PUSH2 0x1436 00001431: TIMESTAMP 00001432: PUSH2 0x1a9c 00001435: JUMP 00001436: JUMPDEST 00001437: SWAP1 00001438: POP 00001439: DUP1 0000143a: DUP3 0000143b: GT 0000143c: DUP1 0000143d: PUSH2 0x1445 00001440: JUMPI 00001441: POP 00001442: TIMESTAMP 00001443: DUP2 00001444: EQ 00001445: JUMPDEST 00001446: ISZERO 00001447: PUSH2 0x1451 0000144a: JUMPI 0000144b: POP 0000144c: POP 0000144d: PUSH2 0x0738 00001450: JUMP 00001451: JUMPDEST 00001452: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25 00001473: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001488: AND 00001489: PUSH4 0xc2c4c5c1 0000148e: PUSH1 0x40 00001490: MLOAD 00001491: DUP2 00001492: PUSH4 0xffffffff 00001497: AND 00001498: PUSH1 0xe0 0000149a: SHL 0000149b: DUP2 0000149c: MSTORE 0000149d: PUSH1 0x04 0000149f: ADD 000014a0: PUSH1 0x00 000014a2: PUSH1 0x40 000014a4: MLOAD 000014a5: DUP1 000014a6: DUP4 000014a7: SUB 000014a8: DUP2 000014a9: PUSH1 0x00 000014ab: DUP8 000014ac: DUP1 000014ad: EXTCODESIZE 000014ae: ISZERO 000014af: DUP1 000014b0: ISZERO 000014b1: PUSH2 0x14b9 000014b4: JUMPI 000014b5: PUSH1 0x00 000014b7: DUP1 000014b8: REVERT 000014b9: JUMPDEST 000014ba: POP 000014bb: GAS 000014bc: CALL 000014bd: ISZERO 000014be: DUP1 000014bf: ISZERO 000014c0: PUSH2 0x14cd 000014c3: JUMPI 000014c4: RETURNDATASIZE 000014c5: PUSH1 0x00 000014c7: DUP1 000014c8: RETURNDATACOPY 000014c9: RETURNDATASIZE 000014ca: PUSH1 0x00 000014cc: REVERT 000014cd: JUMPDEST 000014ce: POP 000014cf: POP 000014d0: POP 000014d1: POP 000014d2: PUSH1 0x00 000014d4: JUMPDEST 000014d5: PUSH1 0x14 000014d7: DUP2 000014d8: LT 000014d9: ISZERO 000014da: PUSH2 0x15cb 000014dd: JUMPI 000014de: DUP2 000014df: DUP4 000014e0: GT 000014e1: ISZERO 000014e2: PUSH2 0x14ea 000014e5: JUMPI 000014e6: PUSH2 0x15cb 000014e9: JUMP 000014ea: JUMPDEST 000014eb: PUSH1 0x40 000014ed: MLOAD 000014ee: PUSH32 0xbd85b03900000000000000000000000000000000000000000000000000000000 0000150f: DUP2 00001510: MSTORE 00001511: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001526: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25 00001547: AND 00001548: SWAP1 00001549: PUSH4 0xbd85b039 0000154e: SWAP1 0000154f: PUSH2 0x155c 00001552: SWAP1 00001553: DUP7 00001554: SWAP1 00001555: PUSH1 0x04 00001557: ADD 00001558: PUSH2 0x23f8 0000155b: JUMP 0000155c: JUMPDEST 0000155d: PUSH1 0x20 0000155f: PUSH1 0x40 00001561: MLOAD 00001562: DUP1 00001563: DUP4 00001564: SUB 00001565: DUP2 00001566: DUP7 00001567: DUP1 00001568: EXTCODESIZE 00001569: ISZERO 0000156a: DUP1 0000156b: ISZERO 0000156c: PUSH2 0x1574 0000156f: JUMPI 00001570: PUSH1 0x00 00001572: DUP1 00001573: REVERT 00001574: JUMPDEST 00001575: POP 00001576: GAS 00001577: STATICCALL 00001578: ISZERO 00001579: DUP1 0000157a: ISZERO 0000157b: PUSH2 0x1588 0000157e: JUMPI 0000157f: RETURNDATASIZE 00001580: PUSH1 0x00 00001582: DUP1 00001583: RETURNDATACOPY 00001584: RETURNDATASIZE 00001585: PUSH1 0x00 00001587: REVERT 00001588: JUMPDEST 00001589: POP 0000158a: POP 0000158b: POP 0000158c: POP 0000158d: PUSH1 0x40 0000158f: MLOAD 00001590: RETURNDATASIZE 00001591: PUSH1 0x1f 00001593: NOT 00001594: PUSH1 0x1f 00001596: DUP3 00001597: ADD 00001598: AND 00001599: DUP3 0000159a: ADD 0000159b: DUP1 0000159c: PUSH1 0x40 0000159e: MSTORE 0000159f: POP 000015a0: DUP2 000015a1: ADD 000015a2: SWAP1 000015a3: PUSH2 0x15ac 000015a6: SWAP2 000015a7: SWAP1 000015a8: PUSH2 0x2275 000015ab: JUMP 000015ac: JUMPDEST 000015ad: PUSH1 0x00 000015af: DUP5 000015b0: DUP2 000015b1: MSTORE 000015b2: PUSH1 0x04 000015b4: PUSH1 0x20 000015b6: MSTORE 000015b7: PUSH1 0x40 000015b9: SWAP1 000015ba: KECCAK256 000015bb: SSTORE 000015bc: PUSH3 0x093a80 000015c0: SWAP1 000015c1: SWAP3 000015c2: ADD 000015c3: SWAP2 000015c4: PUSH1 0x01 000015c6: ADD 000015c7: PUSH2 0x14d4 000015ca: JUMP 000015cb: JUMPDEST 000015cc: POP 000015cd: POP 000015ce: PUSH1 0x03 000015d0: SSTORE 000015d1: JUMP 000015d2: JUMPDEST 000015d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015e8: DUP2 000015e9: AND 000015ea: PUSH1 0x00 000015ec: SWAP1 000015ed: DUP2 000015ee: MSTORE 000015ef: PUSH1 0x05 000015f1: PUSH1 0x20 000015f3: MSTORE 000015f4: PUSH1 0x40 000015f6: DUP2 000015f7: KECCAK256 000015f8: DUP2 000015f9: PUSH2 0x1602 000015fc: DUP6 000015fd: DUP6 000015fe: PUSH2 0x133e 00001601: JUMP 00001602: JUMPDEST 00001603: PUSH1 0x03 00001605: SLOAD 00001606: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000161b: DUP8 0000161c: AND 0000161d: PUSH1 0x00 0000161f: SWAP1 00001620: DUP2 00001621: MSTORE 00001622: PUSH1 0x07 00001624: PUSH1 0x20 00001626: MSTORE 00001627: PUSH1 0x40 00001629: DUP2 0000162a: KECCAK256 0000162b: SLOAD 0000162c: SWAP3 0000162d: SWAP4 0000162e: POP 0000162f: SWAP2 00001630: PUSH2 0x1682 00001633: SWAP2 00001634: PUSH2 0x165c 00001637: SWAP2 00001638: PUSH2 0x1657 0000163b: SWAP2 0000163c: SWAP1 0000163d: PUSH9 0x010000000000000000 00001647: SWAP1 00001648: DIV 00001649: PUSH8 0xffffffffffffffff 00001652: AND 00001653: PUSH2 0x1b63 00001656: JUMP 00001657: JUMPDEST 00001658: PUSH2 0x1a75 0000165b: JUMP 0000165c: JUMPDEST 0000165d: DUP5 0000165e: SLOAD 0000165f: PUSH2 0x167d 00001662: SWAP1 00001663: PUSH9 0x010000000000000000 0000166d: SWAP1 0000166e: DIV 0000166f: PUSH8 0xffffffffffffffff 00001678: AND 00001679: PUSH2 0x1a9c 0000167c: JUMP 0000167d: JUMPDEST 0000167e: PUSH2 0x1b63 00001681: JUMP 00001682: JUMPDEST 00001683: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001698: DUP1 00001699: DUP8 0000169a: AND 0000169b: PUSH1 0x00 0000169d: SWAP1 0000169e: DUP2 0000169f: MSTORE 000016a0: PUSH1 0x06 000016a2: PUSH1 0x20 000016a4: SWAP1 000016a5: DUP2 000016a6: MSTORE 000016a7: PUSH1 0x40 000016a9: DUP1 000016aa: DUP4 000016ab: KECCAK256 000016ac: SWAP4 000016ad: DUP12 000016ae: AND 000016af: DUP4 000016b0: MSTORE 000016b1: PUSH1 0x08 000016b3: SWAP1 000016b4: SWAP2 000016b5: MSTORE 000016b6: DUP2 000016b7: KECCAK256 000016b8: SWAP3 000016b9: SWAP4 000016ba: POP 000016bb: SWAP1 000016bc: SWAP2 000016bd: SWAP1 000016be: DUP1 000016bf: JUMPDEST 000016c0: PUSH1 0x14 000016c2: DUP2 000016c3: LT 000016c4: ISZERO 000016c5: PUSH2 0x1713 000016c8: JUMPI 000016c9: DUP5 000016ca: DUP7 000016cb: LT 000016cc: PUSH2 0x16d4 000016cf: JUMPI 000016d0: PUSH2 0x1713 000016d3: JUMP 000016d4: JUMPDEST 000016d5: PUSH1 0x00 000016d7: DUP7 000016d8: DUP2 000016d9: MSTORE 000016da: PUSH1 0x04 000016dc: PUSH1 0x20 000016de: SWAP1 000016df: DUP2 000016e0: MSTORE 000016e1: PUSH1 0x40 000016e3: DUP1 000016e4: DUP4 000016e5: KECCAK256 000016e6: SLOAD 000016e7: DUP7 000016e8: DUP4 000016e9: MSTORE 000016ea: DUP2 000016eb: DUP5 000016ec: KECCAK256 000016ed: SLOAD 000016ee: SWAP3 000016ef: DUP9 000016f0: SWAP1 000016f1: MSTORE 000016f2: SWAP3 000016f3: KECCAK256 000016f4: SLOAD 000016f5: MUL 000016f6: DUP2 000016f7: PUSH2 0x16fc 000016fa: JUMPI 000016fb: INVALID 000016fc: JUMPDEST 000016fd: PUSH3 0x093a80 00001701: SWAP8 00001702: SWAP1 00001703: SWAP8 00001704: ADD 00001705: SWAP7 00001706: DIV 00001707: SWAP2 00001708: SWAP1 00001709: SWAP2 0000170a: ADD 0000170b: SWAP1 0000170c: PUSH1 0x01 0000170e: ADD 0000170f: PUSH2 0x16bf 00001712: JUMP 00001713: JUMPDEST 00001714: POP 00001715: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000172a: DUP1 0000172b: DUP11 0000172c: AND 0000172d: PUSH1 0x00 0000172f: SWAP1 00001730: DUP2 00001731: MSTORE 00001732: PUSH1 0x09 00001734: PUSH1 0x20 00001736: SWAP1 00001737: DUP2 00001738: MSTORE 00001739: PUSH1 0x40 0000173b: DUP1 0000173c: DUP4 0000173d: KECCAK256 0000173e: SWAP4 0000173f: DUP13 00001740: AND 00001741: DUP4 00001742: MSTORE 00001743: SWAP3 00001744: SWAP1 00001745: MSTORE 00001746: KECCAK256 00001747: DUP6 00001748: SWAP1 00001749: SSTORE 0000174a: DUP1 0000174b: ISZERO 0000174c: PUSH2 0x17e3 0000174f: JUMPI 00001750: DUP6 00001751: SLOAD 00001752: PUSH16 0xffffffffffffffffffffffffffffffff 00001763: PUSH17 0x0100000000000000000000000000000000 00001775: DUP1 00001776: DUP4 00001777: DIV 00001778: DUP3 00001779: AND 0000177a: DUP5 0000177b: SWAP1 0000177c: SUB 0000177d: DUP3 0000177e: AND 0000177f: MUL 00001780: SWAP2 00001781: AND 00001782: OR 00001783: DUP7 00001784: SSTORE 00001785: PUSH2 0x17a5 00001788: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000179d: DUP10 0000179e: AND 0000179f: DUP11 000017a0: DUP4 000017a1: PUSH2 0x1b72 000017a4: JUMP 000017a5: JUMPDEST 000017a6: PUSH32 0xff097c7d8b1957a4ff09ef1361b5fb54dcede3941ba836d0beb9d10bec725de6 000017c7: DUP10 000017c8: DUP10 000017c9: DUP4 000017ca: DUP9 000017cb: PUSH1 0x40 000017cd: MLOAD 000017ce: PUSH2 0x17da 000017d1: SWAP5 000017d2: SWAP4 000017d3: SWAP3 000017d4: SWAP2 000017d5: SWAP1 000017d6: PUSH2 0x2359 000017d9: JUMP 000017da: JUMPDEST 000017db: PUSH1 0x40 000017dd: MLOAD 000017de: DUP1 000017df: SWAP2 000017e0: SUB 000017e1: SWAP1 000017e2: LOG1 000017e3: JUMPDEST 000017e4: SWAP9 000017e5: SWAP8 000017e6: POP 000017e7: POP 000017e8: POP 000017e9: POP 000017ea: POP 000017eb: POP 000017ec: POP 000017ed: POP 000017ee: JUMP 000017ef: JUMPDEST 000017f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001805: DUP3 00001806: AND 00001807: PUSH1 0x00 00001809: SWAP1 0000180a: DUP2 0000180b: MSTORE 0000180c: PUSH1 0x01 0000180e: PUSH1 0x20 00001810: MSTORE 00001811: PUSH1 0x40 00001813: SWAP1 00001814: DUP2 00001815: SWAP1 00001816: KECCAK256 00001817: DUP1 00001818: SLOAD 00001819: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000183a: AND 0000183b: DUP4 0000183c: ISZERO 0000183d: ISZERO 0000183e: OR 0000183f: SWAP1 00001840: SSTORE 00001841: MLOAD 00001842: PUSH32 0xac9874a7a931a3f5c9f202c6d9cf40de5d21506993c9f9c38ca8265add89584c 00001863: SWAP1 00001864: PUSH2 0x1870 00001867: SWAP1 00001868: DUP5 00001869: SWAP1 0000186a: DUP5 0000186b: SWAP1 0000186c: PUSH2 0x2331 0000186f: JUMP 00001870: JUMPDEST 00001871: PUSH1 0x40 00001873: MLOAD 00001874: DUP1 00001875: SWAP2 00001876: SUB 00001877: SWAP1 00001878: LOG1 00001879: POP 0000187a: POP 0000187b: JUMP 0000187c: JUMPDEST 0000187d: PUSH1 0x00 0000187f: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 000018a0: PUSH32 0x0618c188edbe06a8ffa15e11b4f74493cfd6f23aba7fab610364d908072aac99 000018c1: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 000018e2: PUSH2 0x18e9 000018e5: PUSH2 0x1b96 000018e8: JUMP 000018e9: JUMPDEST 000018ea: ADDRESS 000018eb: PUSH1 0x40 000018ed: MLOAD 000018ee: PUSH1 0x20 000018f0: ADD 000018f1: PUSH2 0x18fe 000018f4: SWAP6 000018f5: SWAP5 000018f6: SWAP4 000018f7: SWAP3 000018f8: SWAP2 000018f9: SWAP1 000018fa: PUSH2 0x2434 000018fd: JUMP 000018fe: JUMPDEST 000018ff: PUSH1 0x40 00001901: MLOAD 00001902: PUSH1 0x20 00001904: DUP2 00001905: DUP4 00001906: SUB 00001907: SUB 00001908: DUP2 00001909: MSTORE 0000190a: SWAP1 0000190b: PUSH1 0x40 0000190d: MSTORE 0000190e: DUP1 0000190f: MLOAD 00001910: SWAP1 00001911: PUSH1 0x20 00001913: ADD 00001914: KECCAK256 00001915: SWAP1 00001916: POP 00001917: SWAP1 00001918: JUMP 00001919: JUMPDEST 0000191a: PUSH2 0x0518 0000191d: DUP5 0000191e: DUP5 0000191f: DUP5 00001920: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001941: DUP6 00001942: PUSH2 0x1b9a 00001945: JUMP 00001946: JUMPDEST 00001947: DUP2 00001948: PUSH2 0x0412 0000194b: JUMPI 0000194c: PUSH2 0x0412 0000194f: DUP2 00001950: PUSH2 0x1bfe 00001953: JUMP 00001954: JUMPDEST 00001955: PUSH1 0x00 00001957: DUP3 00001958: DUP3 00001959: DUP3 0000195a: JUMPDEST 0000195b: PUSH1 0x80 0000195d: DUP2 0000195e: LT 0000195f: ISZERO 00001960: PUSH2 0x1a69 00001963: JUMPI 00001964: DUP2 00001965: DUP4 00001966: LT 00001967: PUSH2 0x196f 0000196a: JUMPI 0000196b: PUSH2 0x1a69 0000196e: JUMP 0000196f: JUMPDEST 00001970: PUSH1 0x02 00001972: DUP3 00001973: DUP5 00001974: ADD 00001975: DUP2 00001976: ADD 00001977: DIV 00001978: PUSH2 0x197f 0000197b: PUSH2 0x1ebb 0000197e: JUMP 0000197f: JUMPDEST 00001980: PUSH1 0x40 00001982: MLOAD 00001983: PUSH32 0x28d09d4700000000000000000000000000000000000000000000000000000000 000019a4: DUP2 000019a5: MSTORE 000019a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019bb: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25 000019dc: AND 000019dd: SWAP1 000019de: PUSH4 0x28d09d47 000019e3: SWAP1 000019e4: PUSH2 0x19f3 000019e7: SWAP1 000019e8: DUP14 000019e9: SWAP1 000019ea: DUP7 000019eb: SWAP1 000019ec: PUSH1 0x04 000019ee: ADD 000019ef: PUSH2 0x238f 000019f2: JUMP 000019f3: JUMPDEST 000019f4: PUSH1 0x80 000019f6: PUSH1 0x40 000019f8: MLOAD 000019f9: DUP1 000019fa: DUP4 000019fb: SUB 000019fc: DUP2 000019fd: DUP7 000019fe: DUP1 000019ff: EXTCODESIZE 00001a00: ISZERO 00001a01: DUP1 00001a02: ISZERO 00001a03: PUSH2 0x1a0b 00001a06: JUMPI 00001a07: PUSH1 0x00 00001a09: DUP1 00001a0a: REVERT 00001a0b: JUMPDEST 00001a0c: POP 00001a0d: GAS 00001a0e: STATICCALL 00001a0f: ISZERO 00001a10: DUP1 00001a11: ISZERO 00001a12: PUSH2 0x1a1f 00001a15: JUMPI 00001a16: RETURNDATASIZE 00001a17: PUSH1 0x00 00001a19: DUP1 00001a1a: RETURNDATACOPY 00001a1b: RETURNDATASIZE 00001a1c: PUSH1 0x00 00001a1e: REVERT 00001a1f: JUMPDEST 00001a20: POP 00001a21: POP 00001a22: POP 00001a23: POP 00001a24: PUSH1 0x40 00001a26: MLOAD 00001a27: RETURNDATASIZE 00001a28: PUSH1 0x1f 00001a2a: NOT 00001a2b: PUSH1 0x1f 00001a2d: DUP3 00001a2e: ADD 00001a2f: AND 00001a30: DUP3 00001a31: ADD 00001a32: DUP1 00001a33: PUSH1 0x40 00001a35: MSTORE 00001a36: POP 00001a37: DUP2 00001a38: ADD 00001a39: SWAP1 00001a3a: PUSH2 0x1a43 00001a3d: SWAP2 00001a3e: SWAP1 00001a3f: PUSH2 0x2206 00001a42: JUMP 00001a43: JUMPDEST 00001a44: SWAP1 00001a45: POP 00001a46: DUP9 00001a47: DUP2 00001a48: PUSH1 0x40 00001a4a: ADD 00001a4b: MLOAD 00001a4c: GT 00001a4d: PUSH2 0x1a58 00001a50: JUMPI 00001a51: DUP2 00001a52: SWAP5 00001a53: POP 00001a54: PUSH2 0x1a5f 00001a57: JUMP 00001a58: JUMPDEST 00001a59: PUSH1 0x01 00001a5b: DUP3 00001a5c: SUB 00001a5d: SWAP4 00001a5e: POP 00001a5f: JUMPDEST 00001a60: POP 00001a61: POP 00001a62: PUSH1 0x01 00001a64: ADD 00001a65: PUSH2 0x195a 00001a68: JUMP 00001a69: JUMPDEST 00001a6a: POP 00001a6b: SWAP1 00001a6c: SWAP7 00001a6d: SWAP6 00001a6e: POP 00001a6f: POP 00001a70: POP 00001a71: POP 00001a72: POP 00001a73: POP 00001a74: JUMP 00001a75: JUMPDEST 00001a76: PUSH1 0x00 00001a78: PUSH2 0x052d 00001a7b: PUSH3 0x093a7f 00001a7f: DUP4 00001a80: ADD 00001a81: PUSH2 0x1a9c 00001a84: JUMP 00001a85: JUMPDEST 00001a86: PUSH1 0x00 00001a88: DUP2 00001a89: DUP4 00001a8a: LT 00001a8b: ISZERO 00001a8c: PUSH2 0x1a95 00001a8f: JUMPI 00001a90: DUP2 00001a91: PUSH2 0x052a 00001a94: JUMP 00001a95: JUMPDEST 00001a96: POP 00001a97: SWAP1 00001a98: SWAP2 00001a99: SWAP1 00001a9a: POP 00001a9b: JUMP 00001a9c: JUMPDEST 00001a9d: PUSH3 0x093a80 00001aa1: SWAP1 00001aa2: DUP2 00001aa3: SWAP1 00001aa4: DIV 00001aa5: MUL 00001aa6: SWAP1 00001aa7: JUMP 00001aa8: JUMPDEST 00001aa9: PUSH1 0x00 00001aab: PUSH2 0x052a 00001aae: DUP4 00001aaf: DUP4 00001ab0: PUSH1 0x01 00001ab2: PUSH2 0x1c6b 00001ab5: JUMP 00001ab6: JUMPDEST 00001ab7: PUSH1 0x00 00001ab9: PUSH1 0x60 00001abb: DUP4 00001abc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ad1: AND 00001ad2: DUP4 00001ad3: PUSH1 0x40 00001ad5: MLOAD 00001ad6: PUSH2 0x1adf 00001ad9: SWAP2 00001ada: SWAP1 00001adb: PUSH2 0x228d 00001ade: JUMP 00001adf: JUMPDEST 00001ae0: PUSH1 0x00 00001ae2: PUSH1 0x40 00001ae4: MLOAD 00001ae5: DUP1 00001ae6: DUP4 00001ae7: SUB 00001ae8: DUP2 00001ae9: PUSH1 0x00 00001aeb: DUP7 00001aec: GAS 00001aed: CALL 00001aee: SWAP2 00001aef: POP 00001af0: POP 00001af1: RETURNDATASIZE 00001af2: DUP1 00001af3: PUSH1 0x00 00001af5: DUP2 00001af6: EQ 00001af7: PUSH2 0x1b1c 00001afa: JUMPI 00001afb: PUSH1 0x40 00001afd: MLOAD 00001afe: SWAP2 00001aff: POP 00001b00: PUSH1 0x1f 00001b02: NOT 00001b03: PUSH1 0x3f 00001b05: RETURNDATASIZE 00001b06: ADD 00001b07: AND 00001b08: DUP3 00001b09: ADD 00001b0a: PUSH1 0x40 00001b0c: MSTORE 00001b0d: RETURNDATASIZE 00001b0e: DUP3 00001b0f: MSTORE 00001b10: RETURNDATASIZE 00001b11: PUSH1 0x00 00001b13: PUSH1 0x20 00001b15: DUP5 00001b16: ADD 00001b17: RETURNDATACOPY 00001b18: PUSH2 0x1b21 00001b1b: JUMP 00001b1c: JUMPDEST 00001b1d: PUSH1 0x60 00001b1f: SWAP2 00001b20: POP 00001b21: JUMPDEST 00001b22: POP 00001b23: SWAP2 00001b24: POP 00001b25: SWAP2 00001b26: POP 00001b27: PUSH1 0x00 00001b29: DUP3 00001b2a: EQ 00001b2b: ISZERO 00001b2c: PUSH2 0x1b39 00001b2f: JUMPI 00001b30: RETURNDATASIZE 00001b31: PUSH1 0x00 00001b33: DUP1 00001b34: RETURNDATACOPY 00001b35: RETURNDATASIZE 00001b36: PUSH1 0x00 00001b38: REVERT 00001b39: JUMPDEST 00001b3a: PUSH2 0x0518 00001b3d: DUP2 00001b3e: MLOAD 00001b3f: PUSH1 0x00 00001b41: EQ 00001b42: DUP1 00001b43: PUSH2 0x1b5b 00001b46: JUMPI 00001b47: POP 00001b48: DUP2 00001b49: DUP1 00001b4a: PUSH1 0x20 00001b4c: ADD 00001b4d: SWAP1 00001b4e: MLOAD 00001b4f: DUP2 00001b50: ADD 00001b51: SWAP1 00001b52: PUSH2 0x1b5b 00001b55: SWAP2 00001b56: SWAP1 00001b57: PUSH2 0x21aa 00001b5a: JUMP 00001b5b: JUMPDEST 00001b5c: PUSH2 0x01a2 00001b5f: PUSH2 0x1946 00001b62: JUMP 00001b63: JUMPDEST 00001b64: PUSH1 0x00 00001b66: DUP2 00001b67: DUP4 00001b68: LT 00001b69: PUSH2 0x1a95 00001b6c: JUMPI 00001b6d: DUP2 00001b6e: PUSH2 0x052a 00001b71: JUMP 00001b72: JUMPDEST 00001b73: PUSH2 0x1b91 00001b76: DUP4 00001b77: PUSH4 0xa9059cbb 00001b7c: PUSH1 0xe0 00001b7e: SHL 00001b7f: DUP5 00001b80: DUP5 00001b81: PUSH1 0x40 00001b83: MLOAD 00001b84: PUSH1 0x24 00001b86: ADD 00001b87: PUSH2 0x12af 00001b8a: SWAP3 00001b8b: SWAP2 00001b8c: SWAP1 00001b8d: PUSH2 0x238f 00001b90: JUMP 00001b91: JUMPDEST 00001b92: POP 00001b93: POP 00001b94: POP 00001b95: JUMP 00001b96: JUMPDEST 00001b97: CHAINID 00001b98: SWAP1 00001b99: JUMP 00001b9a: JUMPDEST 00001b9b: PUSH1 0x00 00001b9d: PUSH2 0x1ba5 00001ba0: DUP6 00001ba1: PUSH2 0x1c81 00001ba4: JUMP 00001ba5: JUMPDEST 00001ba6: SWAP1 00001ba7: POP 00001ba8: PUSH2 0x1bbb 00001bab: PUSH2 0x1bb5 00001bae: DUP8 00001baf: DUP4 00001bb0: DUP8 00001bb1: PUSH2 0x1cba 00001bb4: JUMP 00001bb5: JUMPDEST 00001bb6: DUP4 00001bb7: PUSH2 0x1946 00001bba: JUMP 00001bbb: JUMPDEST 00001bbc: PUSH2 0x1bca 00001bbf: TIMESTAMP 00001bc0: DUP5 00001bc1: LT 00001bc2: ISZERO 00001bc3: PUSH2 0x01b8 00001bc6: PUSH2 0x1946 00001bc9: JUMP 00001bca: JUMPDEST 00001bcb: POP 00001bcc: POP 00001bcd: POP 00001bce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001be3: SWAP1 00001be4: SWAP3 00001be5: AND 00001be6: PUSH1 0x00 00001be8: SWAP1 00001be9: DUP2 00001bea: MSTORE 00001beb: PUSH1 0x20 00001bed: DUP2 00001bee: SWAP1 00001bef: MSTORE 00001bf0: PUSH1 0x40 00001bf2: SWAP1 00001bf3: KECCAK256 00001bf4: DUP1 00001bf5: SLOAD 00001bf6: PUSH1 0x01 00001bf8: ADD 00001bf9: SWAP1 00001bfa: SSTORE 00001bfb: POP 00001bfc: POP 00001bfd: JUMP 00001bfe: JUMPDEST 00001bff: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c20: PUSH1 0x00 00001c22: SWAP1 00001c23: DUP2 00001c24: MSTORE 00001c25: PUSH1 0x20 00001c27: PUSH1 0x04 00001c29: MSTORE 00001c2a: PUSH1 0x07 00001c2c: PUSH1 0x24 00001c2e: MSTORE 00001c2f: PUSH7 0x42414c23000030 00001c37: PUSH1 0x0a 00001c39: DUP1 00001c3a: DUP5 00001c3b: DIV 00001c3c: DUP2 00001c3d: DUP2 00001c3e: MOD 00001c3f: PUSH1 0x30 00001c41: SWAP1 00001c42: DUP2 00001c43: ADD 00001c44: PUSH1 0x08 00001c46: SHL 00001c47: SWAP6 00001c48: DUP4 00001c49: SWAP1 00001c4a: MOD 00001c4b: SWAP6 00001c4c: SWAP1 00001c4d: SWAP6 00001c4e: ADD 00001c4f: SWAP1 00001c50: DUP3 00001c51: SWAP1 00001c52: DIV 00001c53: SWAP2 00001c54: DUP3 00001c55: MOD 00001c56: SWAP1 00001c57: SWAP5 00001c58: ADD 00001c59: PUSH1 0x10 00001c5b: SHL 00001c5c: SWAP4 00001c5d: SWAP1 00001c5e: SWAP4 00001c5f: ADD 00001c60: ADD 00001c61: PUSH1 0xc8 00001c63: SHL 00001c64: PUSH1 0x44 00001c66: MSTORE 00001c67: PUSH1 0x64 00001c69: SWAP1 00001c6a: REVERT 00001c6b: JUMPDEST 00001c6c: PUSH1 0x00 00001c6e: PUSH2 0x1c7a 00001c71: DUP5 00001c72: DUP5 00001c73: GT 00001c74: ISZERO 00001c75: DUP4 00001c76: PUSH2 0x1946 00001c79: JUMP 00001c7a: JUMPDEST 00001c7b: POP 00001c7c: POP 00001c7d: SWAP1 00001c7e: SUB 00001c7f: SWAP1 00001c80: JUMP 00001c81: JUMPDEST 00001c82: PUSH1 0x00 00001c84: PUSH2 0x1c8b 00001c87: PUSH2 0x187c 00001c8a: JUMP 00001c8b: JUMPDEST 00001c8c: DUP3 00001c8d: PUSH1 0x40 00001c8f: MLOAD 00001c90: PUSH1 0x20 00001c92: ADD 00001c93: PUSH2 0x1c9d 00001c96: SWAP3 00001c97: SWAP2 00001c98: SWAP1 00001c99: PUSH2 0x22a9 00001c9c: JUMP 00001c9d: JUMPDEST 00001c9e: PUSH1 0x40 00001ca0: MLOAD 00001ca1: PUSH1 0x20 00001ca3: DUP2 00001ca4: DUP4 00001ca5: SUB 00001ca6: SUB 00001ca7: DUP2 00001ca8: MSTORE 00001ca9: SWAP1 00001caa: PUSH1 0x40 00001cac: MSTORE 00001cad: DUP1 00001cae: MLOAD 00001caf: SWAP1 00001cb0: PUSH1 0x20 00001cb2: ADD 00001cb3: KECCAK256 00001cb4: SWAP1 00001cb5: POP 00001cb6: SWAP2 00001cb7: SWAP1 00001cb8: POP 00001cb9: JUMP 00001cba: JUMPDEST 00001cbb: PUSH1 0x00 00001cbd: PUSH2 0x1cdb 00001cc0: DUP5 00001cc1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cd6: AND 00001cd7: PUSH2 0x1dc2 00001cda: JUMP 00001cdb: JUMPDEST 00001cdc: ISZERO 00001cdd: PUSH2 0x1db0 00001ce0: JUMPI 00001ce1: PUSH1 0x40 00001ce3: MLOAD 00001ce4: PUSH32 0x1626ba7e00000000000000000000000000000000000000000000000000000000 00001d05: DUP1 00001d06: DUP3 00001d07: MSTORE 00001d08: SWAP1 00001d09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d1e: DUP7 00001d1f: AND 00001d20: SWAP1 00001d21: PUSH4 0x1626ba7e 00001d26: SWAP1 00001d27: PUSH2 0x1d36 00001d2a: SWAP1 00001d2b: DUP8 00001d2c: SWAP1 00001d2d: DUP8 00001d2e: SWAP1 00001d2f: PUSH1 0x04 00001d31: ADD 00001d32: PUSH2 0x246d 00001d35: JUMP 00001d36: JUMPDEST 00001d37: PUSH1 0x20 00001d39: PUSH1 0x40 00001d3b: MLOAD 00001d3c: DUP1 00001d3d: DUP4 00001d3e: SUB 00001d3f: DUP2 00001d40: DUP7 00001d41: DUP1 00001d42: EXTCODESIZE 00001d43: ISZERO 00001d44: DUP1 00001d45: ISZERO 00001d46: PUSH2 0x1d4e 00001d49: JUMPI 00001d4a: PUSH1 0x00 00001d4c: DUP1 00001d4d: REVERT 00001d4e: JUMPDEST 00001d4f: POP 00001d50: GAS 00001d51: STATICCALL 00001d52: ISZERO 00001d53: DUP1 00001d54: ISZERO 00001d55: PUSH2 0x1d62 00001d58: JUMPI 00001d59: RETURNDATASIZE 00001d5a: PUSH1 0x00 00001d5c: DUP1 00001d5d: RETURNDATACOPY 00001d5e: RETURNDATASIZE 00001d5f: PUSH1 0x00 00001d61: REVERT 00001d62: JUMPDEST 00001d63: POP 00001d64: POP 00001d65: POP 00001d66: POP 00001d67: PUSH1 0x40 00001d69: MLOAD 00001d6a: RETURNDATASIZE 00001d6b: PUSH1 0x1f 00001d6d: NOT 00001d6e: PUSH1 0x1f 00001d70: DUP3 00001d71: ADD 00001d72: AND 00001d73: DUP3 00001d74: ADD 00001d75: DUP1 00001d76: PUSH1 0x40 00001d78: MSTORE 00001d79: POP 00001d7a: DUP2 00001d7b: ADD 00001d7c: SWAP1 00001d7d: PUSH2 0x1d86 00001d80: SWAP2 00001d81: SWAP1 00001d82: PUSH2 0x21c6 00001d85: JUMP 00001d86: JUMPDEST 00001d87: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001da8: AND 00001da9: EQ 00001daa: SWAP1 00001dab: POP 00001dac: PUSH2 0x0653 00001daf: JUMP 00001db0: JUMPDEST 00001db1: PUSH2 0x1dbb 00001db4: DUP5 00001db5: DUP5 00001db6: DUP5 00001db7: PUSH2 0x1dc8 00001dba: JUMP 00001dbb: JUMPDEST 00001dbc: SWAP1 00001dbd: POP 00001dbe: PUSH2 0x0653 00001dc1: JUMP 00001dc2: JUMPDEST 00001dc3: EXTCODESIZE 00001dc4: ISZERO 00001dc5: ISZERO 00001dc6: SWAP1 00001dc7: JUMP 00001dc8: JUMPDEST 00001dc9: PUSH1 0x00 00001dcb: PUSH2 0x1dda 00001dce: DUP3 00001dcf: MLOAD 00001dd0: PUSH1 0x41 00001dd2: EQ 00001dd3: PUSH2 0x01b9 00001dd6: PUSH2 0x1946 00001dd9: JUMP 00001dda: JUMPDEST 00001ddb: PUSH1 0x20 00001ddd: DUP3 00001dde: DUP2 00001ddf: ADD 00001de0: MLOAD 00001de1: PUSH1 0x40 00001de3: DUP1 00001de4: DUP6 00001de5: ADD 00001de6: MLOAD 00001de7: PUSH1 0x60 00001de9: DUP7 00001dea: ADD 00001deb: MLOAD 00001dec: DUP3 00001ded: MLOAD 00001dee: PUSH1 0x00 00001df0: DUP1 00001df1: DUP3 00001df2: MSTORE 00001df3: SWAP6 00001df4: ADD 00001df5: SWAP3 00001df6: DUP4 00001df7: SWAP1 00001df8: MSTORE 00001df9: SWAP3 00001dfa: SWAP4 00001dfb: SWAP1 00001dfc: SWAP3 00001dfd: DUP2 00001dfe: BYTE 00001dff: SWAP2 00001e00: PUSH1 0x01 00001e02: SWAP1 00001e03: PUSH2 0x1e13 00001e06: SWAP1 00001e07: DUP10 00001e08: SWAP1 00001e09: DUP6 00001e0a: SWAP1 00001e0b: DUP9 00001e0c: SWAP1 00001e0d: DUP9 00001e0e: SWAP1 00001e0f: PUSH2 0x24c5 00001e12: JUMP 00001e13: JUMPDEST 00001e14: PUSH1 0x20 00001e16: PUSH1 0x40 00001e18: MLOAD 00001e19: PUSH1 0x20 00001e1b: DUP2 00001e1c: SUB 00001e1d: SWAP1 00001e1e: DUP1 00001e1f: DUP5 00001e20: SUB 00001e21: SWAP1 00001e22: DUP6 00001e23: GAS 00001e24: STATICCALL 00001e25: ISZERO 00001e26: DUP1 00001e27: ISZERO 00001e28: PUSH2 0x1e35 00001e2b: JUMPI 00001e2c: RETURNDATASIZE 00001e2d: PUSH1 0x00 00001e2f: DUP1 00001e30: RETURNDATACOPY 00001e31: RETURNDATASIZE 00001e32: PUSH1 0x00 00001e34: REVERT 00001e35: JUMPDEST 00001e36: POP 00001e37: POP 00001e38: PUSH1 0x40 00001e3a: MLOAD 00001e3b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001e5c: ADD 00001e5d: MLOAD 00001e5e: SWAP2 00001e5f: POP 00001e60: POP 00001e61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e76: DUP2 00001e77: AND 00001e78: ISZERO 00001e79: DUP1 00001e7a: ISZERO 00001e7b: SWAP1 00001e7c: PUSH2 0x17e3 00001e7f: JUMPI 00001e80: POP 00001e81: DUP8 00001e82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e97: AND 00001e98: DUP2 00001e99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001eae: AND 00001eaf: EQ 00001eb0: SWAP9 00001eb1: SWAP8 00001eb2: POP 00001eb3: POP 00001eb4: POP 00001eb5: POP 00001eb6: POP 00001eb7: POP 00001eb8: POP 00001eb9: POP 00001eba: JUMP 00001ebb: JUMPDEST 00001ebc: PUSH1 0x40 00001ebe: MLOAD 00001ebf: DUP1 00001ec0: PUSH1 0x80 00001ec2: ADD 00001ec3: PUSH1 0x40 00001ec5: MSTORE 00001ec6: DUP1 00001ec7: PUSH1 0x00 00001ec9: PUSH1 0x0f 00001ecb: SIGNEXTEND 00001ecc: DUP2 00001ecd: MSTORE 00001ece: PUSH1 0x20 00001ed0: ADD 00001ed1: PUSH1 0x00 00001ed3: PUSH1 0x0f 00001ed5: SIGNEXTEND 00001ed6: DUP2 00001ed7: MSTORE 00001ed8: PUSH1 0x20 00001eda: ADD 00001edb: PUSH1 0x00 00001edd: DUP2 00001ede: MSTORE 00001edf: PUSH1 0x20 00001ee1: ADD 00001ee2: PUSH1 0x00 00001ee4: DUP2 00001ee5: MSTORE 00001ee6: POP 00001ee7: SWAP1 00001ee8: JUMP 00001ee9: JUMPDEST 00001eea: PUSH1 0x00 00001eec: DUP1 00001eed: DUP4 00001eee: PUSH1 0x1f 00001ef0: DUP5 00001ef1: ADD 00001ef2: SLT 00001ef3: PUSH2 0x1efa 00001ef6: JUMPI 00001ef7: DUP2 00001ef8: DUP3 00001ef9: REVERT 00001efa: JUMPDEST 00001efb: POP 00001efc: DUP2 00001efd: CALLDATALOAD 00001efe: PUSH8 0xffffffffffffffff 00001f07: DUP2 00001f08: GT 00001f09: ISZERO 00001f0a: PUSH2 0x1f11 00001f0d: JUMPI 00001f0e: DUP2 00001f0f: DUP3 00001f10: REVERT 00001f11: JUMPDEST 00001f12: PUSH1 0x20 00001f14: DUP4 00001f15: ADD 00001f16: SWAP2 00001f17: POP 00001f18: DUP4 00001f19: PUSH1 0x20 00001f1b: DUP1 00001f1c: DUP4 00001f1d: MUL 00001f1e: DUP6 00001f1f: ADD 00001f20: ADD 00001f21: GT 00001f22: ISZERO 00001f23: PUSH2 0x1f2b 00001f26: JUMPI 00001f27: PUSH1 0x00 00001f29: DUP1 00001f2a: REVERT 00001f2b: JUMPDEST 00001f2c: SWAP3 00001f2d: POP 00001f2e: SWAP3 00001f2f: SWAP1 00001f30: POP 00001f31: JUMP 00001f32: JUMPDEST 00001f33: DUP1 00001f34: MLOAD 00001f35: PUSH1 0x0f 00001f37: DUP2 00001f38: SWAP1 00001f39: SIGNEXTEND 00001f3a: DUP2 00001f3b: EQ 00001f3c: PUSH2 0x052d 00001f3f: JUMPI 00001f40: PUSH1 0x00 00001f42: DUP1 00001f43: REVERT 00001f44: JUMPDEST 00001f45: PUSH1 0x00 00001f47: PUSH1 0x20 00001f49: DUP3 00001f4a: DUP5 00001f4b: SUB 00001f4c: SLT 00001f4d: ISZERO 00001f4e: PUSH2 0x1f55 00001f51: JUMPI 00001f52: DUP1 00001f53: DUP2 00001f54: REVERT 00001f55: JUMPDEST 00001f56: DUP2 00001f57: CALLDATALOAD 00001f58: PUSH2 0x0653 00001f5b: DUP2 00001f5c: PUSH2 0x25f8 00001f5f: JUMP 00001f60: JUMPDEST 00001f61: PUSH1 0x00 00001f63: DUP1 00001f64: PUSH1 0x00 00001f66: PUSH1 0x40 00001f68: DUP5 00001f69: DUP7 00001f6a: SUB 00001f6b: SLT 00001f6c: ISZERO 00001f6d: PUSH2 0x1f74 00001f70: JUMPI 00001f71: DUP2 00001f72: DUP3 00001f73: REVERT 00001f74: JUMPDEST 00001f75: DUP4 00001f76: CALLDATALOAD 00001f77: PUSH2 0x1f7f 00001f7a: DUP2 00001f7b: PUSH2 0x25f8 00001f7e: JUMP 00001f7f: JUMPDEST 00001f80: SWAP3 00001f81: POP 00001f82: PUSH1 0x20 00001f84: DUP5 00001f85: ADD 00001f86: CALLDATALOAD 00001f87: PUSH8 0xffffffffffffffff 00001f90: DUP2 00001f91: GT 00001f92: ISZERO 00001f93: PUSH2 0x1f9a 00001f96: JUMPI 00001f97: DUP3 00001f98: DUP4 00001f99: REVERT 00001f9a: JUMPDEST 00001f9b: PUSH2 0x1fa6 00001f9e: DUP7 00001f9f: DUP3 00001fa0: DUP8 00001fa1: ADD 00001fa2: PUSH2 0x1ee9 00001fa5: JUMP 00001fa6: JUMPDEST 00001fa7: SWAP5 00001fa8: SWAP8 00001fa9: SWAP1 00001faa: SWAP7 00001fab: POP 00001fac: SWAP4 00001fad: SWAP5 00001fae: POP 00001faf: POP 00001fb0: POP 00001fb1: POP 00001fb2: JUMP 00001fb3: JUMPDEST 00001fb4: PUSH1 0x00 00001fb6: DUP1 00001fb7: PUSH1 0x00 00001fb9: PUSH1 0x60 00001fbb: DUP5 00001fbc: DUP7 00001fbd: SUB 00001fbe: SLT 00001fbf: ISZERO 00001fc0: PUSH2 0x1fc7 00001fc3: JUMPI 00001fc4: DUP3 00001fc5: DUP4 00001fc6: REVERT 00001fc7: JUMPDEST 00001fc8: DUP4 00001fc9: CALLDATALOAD 00001fca: PUSH2 0x1fd2 00001fcd: DUP2 00001fce: PUSH2 0x25f8 00001fd1: JUMP 00001fd2: JUMPDEST 00001fd3: SWAP3 00001fd4: POP 00001fd5: PUSH1 0x20 00001fd7: DUP5 00001fd8: DUP2 00001fd9: ADD 00001fda: CALLDATALOAD 00001fdb: PUSH2 0x1fe3 00001fde: DUP2 00001fdf: PUSH2 0x261a 00001fe2: JUMP 00001fe3: JUMPDEST 00001fe4: SWAP3 00001fe5: POP 00001fe6: PUSH1 0x40 00001fe8: DUP6 00001fe9: ADD 00001fea: CALLDATALOAD 00001feb: PUSH8 0xffffffffffffffff 00001ff4: DUP1 00001ff5: DUP3 00001ff6: GT 00001ff7: ISZERO 00001ff8: PUSH2 0x1fff 00001ffb: JUMPI 00001ffc: DUP4 00001ffd: DUP5 00001ffe: REVERT 00001fff: JUMPDEST 00002000: DUP2 00002001: DUP8 00002002: ADD 00002003: SWAP2 00002004: POP 00002005: DUP8 00002006: PUSH1 0x1f 00002008: DUP4 00002009: ADD 0000200a: SLT 0000200b: PUSH2 0x2012 0000200e: JUMPI 0000200f: DUP4 00002010: DUP5 00002011: REVERT 00002012: JUMPDEST 00002013: DUP2 00002014: CALLDATALOAD 00002015: DUP2 00002016: DUP2 00002017: GT 00002018: ISZERO 00002019: PUSH2 0x2020 0000201c: JUMPI 0000201d: DUP5 0000201e: DUP6 0000201f: REVERT 00002020: JUMPDEST 00002021: PUSH2 0x2050 00002024: DUP5 00002025: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002046: PUSH1 0x1f 00002048: DUP5 00002049: ADD 0000204a: AND 0000204b: ADD 0000204c: PUSH2 0x25a5 0000204f: JUMP 00002050: JUMPDEST 00002051: SWAP2 00002052: POP 00002053: DUP1 00002054: DUP3 00002055: MSTORE 00002056: DUP9 00002057: DUP5 00002058: DUP3 00002059: DUP6 0000205a: ADD 0000205b: ADD 0000205c: GT 0000205d: ISZERO 0000205e: PUSH2 0x2065 00002061: JUMPI 00002062: DUP5 00002063: DUP6 00002064: REVERT 00002065: JUMPDEST 00002066: DUP1 00002067: DUP5 00002068: DUP5 00002069: ADD 0000206a: DUP6 0000206b: DUP5 0000206c: ADD 0000206d: CALLDATACOPY 0000206e: DUP5 0000206f: DUP5 00002070: DUP3 00002071: DUP5 00002072: ADD 00002073: ADD 00002074: MSTORE 00002075: POP 00002076: DUP1 00002077: SWAP4 00002078: POP 00002079: POP 0000207a: POP 0000207b: POP 0000207c: SWAP3 0000207d: POP 0000207e: SWAP3 0000207f: POP 00002080: SWAP3 00002081: JUMP 00002082: JUMPDEST 00002083: PUSH1 0x00 00002085: DUP1 00002086: PUSH1 0x40 00002088: DUP4 00002089: DUP6 0000208a: SUB 0000208b: SLT 0000208c: ISZERO 0000208d: PUSH2 0x2094 00002090: JUMPI 00002091: DUP2 00002092: DUP3 00002093: REVERT 00002094: JUMPDEST 00002095: DUP3 00002096: CALLDATALOAD 00002097: PUSH2 0x209f 0000209a: DUP2 0000209b: PUSH2 0x25f8 0000209e: JUMP 0000209f: JUMPDEST 000020a0: SWAP2 000020a1: POP 000020a2: PUSH1 0x20 000020a4: DUP4 000020a5: ADD 000020a6: CALLDATALOAD 000020a7: PUSH2 0x20af 000020aa: DUP2 000020ab: PUSH2 0x25f8 000020ae: JUMP 000020af: JUMPDEST 000020b0: DUP1 000020b1: SWAP2 000020b2: POP 000020b3: POP 000020b4: SWAP3 000020b5: POP 000020b6: SWAP3 000020b7: SWAP1 000020b8: POP 000020b9: JUMP 000020ba: JUMPDEST 000020bb: PUSH1 0x00 000020bd: DUP1 000020be: PUSH1 0x40 000020c0: DUP4 000020c1: DUP6 000020c2: SUB 000020c3: SLT 000020c4: ISZERO 000020c5: PUSH2 0x20cc 000020c8: JUMPI 000020c9: DUP2 000020ca: DUP3 000020cb: REVERT 000020cc: JUMPDEST 000020cd: DUP3 000020ce: CALLDATALOAD 000020cf: PUSH2 0x20d7 000020d2: DUP2 000020d3: PUSH2 0x25f8 000020d6: JUMP 000020d7: JUMPDEST 000020d8: SWAP5 000020d9: PUSH1 0x20 000020db: SWAP4 000020dc: SWAP1 000020dd: SWAP4 000020de: ADD 000020df: CALLDATALOAD 000020e0: SWAP4 000020e1: POP 000020e2: POP 000020e3: POP 000020e4: JUMP 000020e5: JUMPDEST 000020e6: PUSH1 0x00 000020e8: DUP1 000020e9: PUSH1 0x20 000020eb: DUP4 000020ec: DUP6 000020ed: SUB 000020ee: SLT 000020ef: ISZERO 000020f0: PUSH2 0x20f7 000020f3: JUMPI 000020f4: DUP2 000020f5: DUP3 000020f6: REVERT 000020f7: JUMPDEST 000020f8: DUP3 000020f9: CALLDATALOAD 000020fa: PUSH8 0xffffffffffffffff 00002103: DUP2 00002104: GT 00002105: ISZERO 00002106: PUSH2 0x210d 00002109: JUMPI 0000210a: DUP3 0000210b: DUP4 0000210c: REVERT 0000210d: JUMPDEST 0000210e: PUSH2 0x2119 00002111: DUP6 00002112: DUP3 00002113: DUP7 00002114: ADD 00002115: PUSH2 0x1ee9 00002118: JUMP 00002119: JUMPDEST 0000211a: SWAP1 0000211b: SWAP7 0000211c: SWAP1 0000211d: SWAP6 0000211e: POP 0000211f: SWAP4 00002120: POP 00002121: POP 00002122: POP 00002123: POP 00002124: JUMP 00002125: JUMPDEST 00002126: PUSH1 0x00 00002128: DUP1 00002129: PUSH1 0x00 0000212b: DUP1 0000212c: PUSH1 0x40 0000212e: DUP6 0000212f: DUP8 00002130: SUB 00002131: SLT 00002132: ISZERO 00002133: PUSH2 0x213a 00002136: JUMPI 00002137: DUP1 00002138: DUP2 00002139: REVERT 0000213a: JUMPDEST 0000213b: DUP5 0000213c: CALLDATALOAD 0000213d: PUSH8 0xffffffffffffffff 00002146: DUP1 00002147: DUP3 00002148: GT 00002149: ISZERO 0000214a: PUSH2 0x2151 0000214d: JUMPI 0000214e: DUP3 0000214f: DUP4 00002150: REVERT 00002151: JUMPDEST 00002152: PUSH2 0x215d 00002155: DUP9 00002156: DUP4 00002157: DUP10 00002158: ADD 00002159: PUSH2 0x1ee9 0000215c: JUMP 0000215d: JUMPDEST 0000215e: SWAP1 0000215f: SWAP7 00002160: POP 00002161: SWAP5 00002162: POP 00002163: PUSH1 0x20 00002165: DUP8 00002166: ADD 00002167: CALLDATALOAD 00002168: SWAP2 00002169: POP 0000216a: DUP1 0000216b: DUP3 0000216c: GT 0000216d: ISZERO 0000216e: PUSH2 0x2175 00002171: JUMPI 00002172: DUP3 00002173: DUP4 00002174: REVERT 00002175: JUMPDEST 00002176: POP 00002177: PUSH2 0x2182 0000217a: DUP8 0000217b: DUP3 0000217c: DUP9 0000217d: ADD 0000217e: PUSH2 0x1ee9 00002181: JUMP 00002182: JUMPDEST 00002183: SWAP6 00002184: SWAP9 00002185: SWAP5 00002186: SWAP8 00002187: POP 00002188: SWAP6 00002189: POP 0000218a: POP 0000218b: POP 0000218c: POP 0000218d: JUMP 0000218e: JUMPDEST 0000218f: PUSH1 0x00 00002191: PUSH1 0x20 00002193: DUP3 00002194: DUP5 00002195: SUB 00002196: SLT 00002197: ISZERO 00002198: PUSH2 0x219f 0000219b: JUMPI 0000219c: DUP1 0000219d: DUP2 0000219e: REVERT 0000219f: JUMPDEST 000021a0: DUP2 000021a1: CALLDATALOAD 000021a2: PUSH2 0x0653 000021a5: DUP2 000021a6: PUSH2 0x261a 000021a9: JUMP 000021aa: JUMPDEST 000021ab: PUSH1 0x00 000021ad: PUSH1 0x20 000021af: DUP3 000021b0: DUP5 000021b1: SUB 000021b2: SLT 000021b3: ISZERO 000021b4: PUSH2 0x21bb 000021b7: JUMPI 000021b8: DUP1 000021b9: DUP2 000021ba: REVERT 000021bb: JUMPDEST 000021bc: DUP2 000021bd: MLOAD 000021be: PUSH2 0x0653 000021c1: DUP2 000021c2: PUSH2 0x261a 000021c5: JUMP 000021c6: JUMPDEST 000021c7: PUSH1 0x00 000021c9: PUSH1 0x20 000021cb: DUP3 000021cc: DUP5 000021cd: SUB 000021ce: SLT 000021cf: ISZERO 000021d0: PUSH2 0x21d7 000021d3: JUMPI 000021d4: DUP1 000021d5: DUP2 000021d6: REVERT 000021d7: JUMPDEST 000021d8: DUP2 000021d9: MLOAD 000021da: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000021fb: DUP2 000021fc: AND 000021fd: DUP2 000021fe: EQ 000021ff: PUSH2 0x0653 00002202: JUMPI 00002203: DUP2 00002204: DUP3 00002205: REVERT 00002206: JUMPDEST 00002207: PUSH1 0x00 00002209: PUSH1 0x80 0000220b: DUP3 0000220c: DUP5 0000220d: SUB 0000220e: SLT 0000220f: ISZERO 00002210: PUSH2 0x2217 00002213: JUMPI 00002214: DUP1 00002215: DUP2 00002216: REVERT 00002217: JUMPDEST 00002218: PUSH2 0x2221 0000221b: PUSH1 0x80 0000221d: PUSH2 0x25a5 00002220: JUMP 00002221: JUMPDEST 00002222: PUSH2 0x222b 00002225: DUP5 00002226: DUP5 00002227: PUSH2 0x1f32 0000222a: JUMP 0000222b: JUMPDEST 0000222c: DUP2 0000222d: MSTORE 0000222e: PUSH2 0x223a 00002231: DUP5 00002232: PUSH1 0x20 00002234: DUP6 00002235: ADD 00002236: PUSH2 0x1f32 00002239: JUMP 0000223a: JUMPDEST 0000223b: PUSH1 0x20 0000223d: DUP3 0000223e: ADD 0000223f: MSTORE 00002240: PUSH1 0x40 00002242: DUP4 00002243: ADD 00002244: MLOAD 00002245: PUSH1 0x40 00002247: DUP3 00002248: ADD 00002249: MSTORE 0000224a: PUSH1 0x60 0000224c: DUP4 0000224d: ADD 0000224e: MLOAD 0000224f: PUSH1 0x60 00002251: DUP3 00002252: ADD 00002253: MSTORE 00002254: DUP1 00002255: SWAP2 00002256: POP 00002257: POP 00002258: SWAP3 00002259: SWAP2 0000225a: POP 0000225b: POP 0000225c: JUMP 0000225d: JUMPDEST 0000225e: PUSH1 0x00 00002260: PUSH1 0x20 00002262: DUP3 00002263: DUP5 00002264: SUB 00002265: SLT 00002266: ISZERO 00002267: PUSH2 0x226e 0000226a: JUMPI 0000226b: DUP1 0000226c: DUP2 0000226d: REVERT 0000226e: JUMPDEST 0000226f: POP 00002270: CALLDATALOAD 00002271: SWAP2 00002272: SWAP1 00002273: POP 00002274: JUMP 00002275: JUMPDEST 00002276: PUSH1 0x00 00002278: PUSH1 0x20 0000227a: DUP3 0000227b: DUP5 0000227c: SUB 0000227d: SLT 0000227e: ISZERO 0000227f: PUSH2 0x2286 00002282: JUMPI 00002283: DUP1 00002284: DUP2 00002285: REVERT 00002286: JUMPDEST 00002287: POP 00002288: MLOAD 00002289: SWAP2 0000228a: SWAP1 0000228b: POP 0000228c: JUMP 0000228d: JUMPDEST 0000228e: PUSH1 0x00 00002290: DUP3 00002291: MLOAD 00002292: PUSH2 0x229f 00002295: DUP2 00002296: DUP5 00002297: PUSH1 0x20 00002299: DUP8 0000229a: ADD 0000229b: PUSH2 0x25cc 0000229e: JUMP 0000229f: JUMPDEST 000022a0: SWAP2 000022a1: SWAP1 000022a2: SWAP2 000022a3: ADD 000022a4: SWAP3 000022a5: SWAP2 000022a6: POP 000022a7: POP 000022a8: JUMP 000022a9: JUMPDEST 000022aa: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 000022cb: DUP2 000022cc: MSTORE 000022cd: PUSH1 0x02 000022cf: DUP2 000022d0: ADD 000022d1: SWAP3 000022d2: SWAP1 000022d3: SWAP3 000022d4: MSTORE 000022d5: PUSH1 0x22 000022d7: DUP3 000022d8: ADD 000022d9: MSTORE 000022da: PUSH1 0x42 000022dc: ADD 000022dd: SWAP1 000022de: JUMP 000022df: JUMPDEST 000022e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022f5: SWAP2 000022f6: SWAP1 000022f7: SWAP2 000022f8: AND 000022f9: DUP2 000022fa: MSTORE 000022fb: PUSH1 0x20 000022fd: ADD 000022fe: SWAP1 000022ff: JUMP 00002300: JUMPDEST 00002301: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002316: SWAP4 00002317: DUP5 00002318: AND 00002319: DUP2 0000231a: MSTORE 0000231b: SWAP2 0000231c: SWAP1 0000231d: SWAP3 0000231e: AND 0000231f: PUSH1 0x20 00002321: DUP3 00002322: ADD 00002323: MSTORE 00002324: PUSH1 0x40 00002326: DUP2 00002327: ADD 00002328: SWAP2 00002329: SWAP1 0000232a: SWAP2 0000232b: MSTORE 0000232c: PUSH1 0x60 0000232e: ADD 0000232f: SWAP1 00002330: JUMP 00002331: JUMPDEST 00002332: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002347: SWAP3 00002348: SWAP1 00002349: SWAP3 0000234a: AND 0000234b: DUP3 0000234c: MSTORE 0000234d: ISZERO 0000234e: ISZERO 0000234f: PUSH1 0x20 00002351: DUP3 00002352: ADD 00002353: MSTORE 00002354: PUSH1 0x40 00002356: ADD 00002357: SWAP1 00002358: JUMP 00002359: JUMPDEST 0000235a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000236f: SWAP5 00002370: DUP6 00002371: AND 00002372: DUP2 00002373: MSTORE 00002374: SWAP3 00002375: SWAP1 00002376: SWAP4 00002377: AND 00002378: PUSH1 0x20 0000237a: DUP4 0000237b: ADD 0000237c: MSTORE 0000237d: PUSH1 0x40 0000237f: DUP3 00002380: ADD 00002381: MSTORE 00002382: PUSH1 0x60 00002384: DUP2 00002385: ADD 00002386: SWAP2 00002387: SWAP1 00002388: SWAP2 00002389: MSTORE 0000238a: PUSH1 0x80 0000238c: ADD 0000238d: SWAP1 0000238e: JUMP 0000238f: JUMPDEST 00002390: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023a5: SWAP3 000023a6: SWAP1 000023a7: SWAP3 000023a8: AND 000023a9: DUP3 000023aa: MSTORE 000023ab: PUSH1 0x20 000023ad: DUP3 000023ae: ADD 000023af: MSTORE 000023b0: PUSH1 0x40 000023b2: ADD 000023b3: SWAP1 000023b4: JUMP 000023b5: JUMPDEST 000023b6: PUSH1 0x20 000023b8: DUP1 000023b9: DUP3 000023ba: MSTORE 000023bb: DUP3 000023bc: MLOAD 000023bd: DUP3 000023be: DUP3 000023bf: ADD 000023c0: DUP2 000023c1: SWAP1 000023c2: MSTORE 000023c3: PUSH1 0x00 000023c5: SWAP2 000023c6: SWAP1 000023c7: DUP5 000023c8: DUP3 000023c9: ADD 000023ca: SWAP1 000023cb: PUSH1 0x40 000023cd: DUP6 000023ce: ADD 000023cf: SWAP1 000023d0: DUP5 000023d1: JUMPDEST 000023d2: DUP2 000023d3: DUP2 000023d4: LT 000023d5: ISZERO 000023d6: PUSH2 0x1a69 000023d9: JUMPI 000023da: DUP4 000023db: MLOAD 000023dc: DUP4 000023dd: MSTORE 000023de: SWAP3 000023df: DUP5 000023e0: ADD 000023e1: SWAP3 000023e2: SWAP2 000023e3: DUP5 000023e4: ADD 000023e5: SWAP2 000023e6: PUSH1 0x01 000023e8: ADD 000023e9: PUSH2 0x23d1 000023ec: JUMP 000023ed: JUMPDEST 000023ee: SWAP1 000023ef: ISZERO 000023f0: ISZERO 000023f1: DUP2 000023f2: MSTORE 000023f3: PUSH1 0x20 000023f5: ADD 000023f6: SWAP1 000023f7: JUMP 000023f8: JUMPDEST 000023f9: SWAP1 000023fa: DUP2 000023fb: MSTORE 000023fc: PUSH1 0x20 000023fe: ADD 000023ff: SWAP1 00002400: JUMP 00002401: JUMPDEST 00002402: SWAP4 00002403: DUP5 00002404: MSTORE 00002405: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000241a: SWAP3 0000241b: SWAP1 0000241c: SWAP3 0000241d: AND 0000241e: PUSH1 0x20 00002420: DUP5 00002421: ADD 00002422: MSTORE 00002423: ISZERO 00002424: ISZERO 00002425: PUSH1 0x40 00002427: DUP4 00002428: ADD 00002429: MSTORE 0000242a: PUSH1 0x60 0000242c: DUP3 0000242d: ADD 0000242e: MSTORE 0000242f: PUSH1 0x80 00002431: ADD 00002432: SWAP1 00002433: JUMP 00002434: JUMPDEST 00002435: SWAP5 00002436: DUP6 00002437: MSTORE 00002438: PUSH1 0x20 0000243a: DUP6 0000243b: ADD 0000243c: SWAP4 0000243d: SWAP1 0000243e: SWAP4 0000243f: MSTORE 00002440: PUSH1 0x40 00002442: DUP5 00002443: ADD 00002444: SWAP2 00002445: SWAP1 00002446: SWAP2 00002447: MSTORE 00002448: PUSH1 0x60 0000244a: DUP4 0000244b: ADD 0000244c: MSTORE 0000244d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002462: AND 00002463: PUSH1 0x80 00002465: DUP3 00002466: ADD 00002467: MSTORE 00002468: PUSH1 0xa0 0000246a: ADD 0000246b: SWAP1 0000246c: JUMP 0000246d: JUMPDEST 0000246e: PUSH1 0x00 00002470: DUP4 00002471: DUP3 00002472: MSTORE 00002473: PUSH1 0x40 00002475: PUSH1 0x20 00002477: DUP4 00002478: ADD 00002479: MSTORE 0000247a: DUP3 0000247b: MLOAD 0000247c: DUP1 0000247d: PUSH1 0x40 0000247f: DUP5 00002480: ADD 00002481: MSTORE 00002482: PUSH2 0x2492 00002485: DUP2 00002486: PUSH1 0x60 00002488: DUP6 00002489: ADD 0000248a: PUSH1 0x20 0000248c: DUP8 0000248d: ADD 0000248e: PUSH2 0x25cc 00002491: JUMP 00002492: JUMPDEST 00002493: PUSH1 0x1f 00002495: ADD 00002496: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000024b7: AND 000024b8: SWAP2 000024b9: SWAP1 000024ba: SWAP2 000024bb: ADD 000024bc: PUSH1 0x60 000024be: ADD 000024bf: SWAP4 000024c0: SWAP3 000024c1: POP 000024c2: POP 000024c3: POP 000024c4: JUMP 000024c5: JUMPDEST 000024c6: SWAP4 000024c7: DUP5 000024c8: MSTORE 000024c9: PUSH1 0xff 000024cb: SWAP3 000024cc: SWAP1 000024cd: SWAP3 000024ce: AND 000024cf: PUSH1 0x20 000024d1: DUP5 000024d2: ADD 000024d3: MSTORE 000024d4: PUSH1 0x40 000024d6: DUP4 000024d7: ADD 000024d8: MSTORE 000024d9: PUSH1 0x60 000024db: DUP3 000024dc: ADD 000024dd: MSTORE 000024de: PUSH1 0x80 000024e0: ADD 000024e1: SWAP1 000024e2: JUMP 000024e3: JUMPDEST 000024e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024f9: SWAP4 000024fa: SWAP1 000024fb: SWAP4 000024fc: AND 000024fd: DUP4 000024fe: MSTORE 000024ff: PUSH1 0x20 00002501: DUP4 00002502: ADD 00002503: SWAP2 00002504: SWAP1 00002505: SWAP2 00002506: MSTORE 00002507: PUSH1 0x40 00002509: DUP3 0000250a: ADD 0000250b: MSTORE 0000250c: PUSH1 0x60 0000250e: ADD 0000250f: SWAP1 00002510: JUMP 00002511: JUMPDEST 00002512: PUSH1 0x20 00002514: DUP1 00002515: DUP3 00002516: MSTORE 00002517: PUSH1 0x1e 00002519: SWAP1 0000251a: DUP3 0000251b: ADD 0000251c: MSTORE 0000251d: PUSH32 0x4d6178696d756d20746f6b656e2062616c616e63652065786365656465640000 0000253e: PUSH1 0x40 00002540: DUP3 00002541: ADD 00002542: MSTORE 00002543: PUSH1 0x60 00002545: ADD 00002546: SWAP1 00002547: JUMP 00002548: JUMPDEST 00002549: PUSH1 0x20 0000254b: DUP1 0000254c: DUP3 0000254d: MSTORE 0000254e: PUSH1 0x24 00002550: SWAP1 00002551: DUP3 00002552: ADD 00002553: MSTORE 00002554: PUSH32 0x46656520646973747269627574696f6e20686173206e6f742073746172746564 00002575: PUSH1 0x40 00002577: DUP3 00002578: ADD 00002579: MSTORE 0000257a: PUSH32 0x2079657400000000000000000000000000000000000000000000000000000000 0000259b: PUSH1 0x60 0000259d: DUP3 0000259e: ADD 0000259f: MSTORE 000025a0: PUSH1 0x80 000025a2: ADD 000025a3: SWAP1 000025a4: JUMP 000025a5: JUMPDEST 000025a6: PUSH1 0x40 000025a8: MLOAD 000025a9: DUP2 000025aa: DUP2 000025ab: ADD 000025ac: PUSH8 0xffffffffffffffff 000025b5: DUP2 000025b6: GT 000025b7: DUP3 000025b8: DUP3 000025b9: LT 000025ba: OR 000025bb: ISZERO 000025bc: PUSH2 0x25c4 000025bf: JUMPI 000025c0: PUSH1 0x00 000025c2: DUP1 000025c3: REVERT 000025c4: JUMPDEST 000025c5: PUSH1 0x40 000025c7: MSTORE 000025c8: SWAP2 000025c9: SWAP1 000025ca: POP 000025cb: JUMP 000025cc: JUMPDEST 000025cd: PUSH1 0x00 000025cf: JUMPDEST 000025d0: DUP4 000025d1: DUP2 000025d2: LT 000025d3: ISZERO 000025d4: PUSH2 0x25e7 000025d7: JUMPI 000025d8: DUP2 000025d9: DUP2 000025da: ADD 000025db: MLOAD 000025dc: DUP4 000025dd: DUP3 000025de: ADD 000025df: MSTORE 000025e0: PUSH1 0x20 000025e2: ADD 000025e3: PUSH2 0x25cf 000025e6: JUMP 000025e7: JUMPDEST 000025e8: DUP4 000025e9: DUP2 000025ea: GT 000025eb: ISZERO 000025ec: PUSH2 0x0518 000025ef: JUMPI 000025f0: POP 000025f1: POP 000025f2: PUSH1 0x00 000025f4: SWAP2 000025f5: ADD 000025f6: MSTORE 000025f7: JUMP 000025f8: JUMPDEST 000025f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000260e: DUP2 0000260f: AND 00002610: DUP2 00002611: EQ 00002612: PUSH2 0x0379 00002615: JUMPI 00002616: PUSH1 0x00 00002618: DUP1 00002619: REVERT 0000261a: JUMPDEST 0000261b: DUP1 0000261c: ISZERO 0000261d: ISZERO 0000261e: DUP2 0000261f: EQ 00002620: PUSH2 0x0379 00002623: JUMPI 00002624: PUSH1 0x00 00002626: DUP1 00002627: REVERT 00002628: INVALID 00002629: LOG2 0000262a: PUSH5 0x6970667358 00002630: UNKNOWN(0x22) 00002631: SLT 00002632: KECCAK256 00002633: PUSH15 0x91ba3bf7fae396c65faebeef9a2ad3 00002643: ADDRESS 00002644: UNKNOWN(0xD9) 00002645: ADDMOD 00002646: PUSH19 0x56688eb7df956fb362f6a77264736f6c634300 0000265a: SMOD 0000265b: ADD 0000265c: STOP 0000265d: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | codex | Checkpointing after long gaps can permanently lock undistributed tokens | 75 | no | — |
viewevidence_json{
"evidence": "`tokenState.timeCursor` is set to `block.timestamp` and `cachedBalance` is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of `newTokensToDistribute` unassigned.",
"locations": [
"contracts/contracts/fee-distribution/FeeDistributor.sol:388",
"contracts/contracts/fee-distribution/FeeDistributor.sol:402"
],
"recommendation": "When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to the current timestamp or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or add pagination/increase the iteration cap).",
"exploit_scenario": "If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to the current timestamp and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xea7b3b20153285ada3c7af2650b6adcc90b9823979b83dd9dc69448d35a09ce8
call_targets:
0xd3cf852898b21fc233251427c2dc93d3d604f3bb
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xea7b3b20153285ada3c7af2650b6adcc90b9823979b83dd9dc69448d35a09ce8",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xd3cf852898b21fc233251427c2dc93d3d604f3bb"
],
"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": "0xe811f44b",
"selector": "0xe811f44b",
"calldata_variants": [
"0xe811f44b",
"0xe811f44b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed24911d",
"selector": "0xed24911d",
"calldata_variants": [
"0xed24911d",
"0xed24911d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcaa54ee",
"selector": "0xfcaa54ee",
"calldata_variants": [
"0xfcaa54ee",
"0xfcaa54ee0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca31879d",
"selector": "0xca31879d",
"calldata_variants": [
"0xca31879d",
"0xca31879d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd3dc4ca1",
"selector": "0xd3dc4ca1",
"calldata_variants": [
"0xd3dc4ca1",
"0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde681faf",
"selector": "0xde681faf",
"calldata_variants": [
"0xde681faf",
"0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa1648aa5",
"selector": "0xa1648aa5",
"calldata_variants": [
"0xa1648aa5",
"0xa1648aa50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xacbc1428",
"selector": "0xacbc1428",
"calldata_variants": [
"0xacbc1428",
"0xacbc14280000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5308,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6893,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 5128,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 2
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xea7b3b20153285ada3c7af2650b6adcc90b9823979b83dd9dc69448d35a09ce8
call_targets:
0xd3cf852898b21fc233251427c2dc93d3d604f3bb
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xea7b3b20153285ada3c7af2650b6adcc90b9823979b83dd9dc69448d35a09ce8",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xd3cf852898b21fc233251427c2dc93d3d604f3bb"
],
"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": "0xe811f44b",
"selector": "0xe811f44b",
"calldata_variants": [
"0xe811f44b",
"0xe811f44b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed24911d",
"selector": "0xed24911d",
"calldata_variants": [
"0xed24911d",
"0xed24911d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcaa54ee",
"selector": "0xfcaa54ee",
"calldata_variants": [
"0xfcaa54ee",
"0xfcaa54ee0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca31879d",
"selector": "0xca31879d",
"calldata_variants": [
"0xca31879d",
"0xca31879d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd3dc4ca1",
"selector": "0xd3dc4ca1",
"calldata_variants": [
"0xd3dc4ca1",
"0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde681faf",
"selector": "0xde681faf",
"calldata_variants": [
"0xde681faf",
"0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa1648aa5",
"selector": "0xa1648aa5",
"calldata_variants": [
"0xa1648aa5",
"0xa1648aa50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xacbc1428",
"selector": "0xacbc1428",
"calldata_variants": [
"0xacbc1428",
"0xacbc14280000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5308,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6893,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": [
{
"pc": 5128,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 9
}
|