09fa5a2e-f3b7-46e9-8b86-0a03ea86c5f7
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 |
|---|---|---|---|---|
| 30676 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75052 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 75053 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 75054 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 75055 | capability.graph | complete | 1 / 3 | 1 week ago |
| 75056 | detector.run | complete | 1 / 3 | 1 week ago |
| 75057 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1044276] OpenAI Codex v0.77.0 (research preview)
[codex:1044276] --------
[codex:1044276] workdir: /tmp/codex-multi-4ke7ln7n
[codex:1044276] model: gpt-5.2-codex
[codex:1044276] provider: openai
[codex:1044276] approval: never
[codex:1044276] sandbox: read-only
[codex:1044276] reasoning effort: xhigh
[codex:1044276] reasoning summaries: auto
[codex:1044276] session id: 019b6d38-9891-7561-98af-cec6a290fd71
[codex:1044276] --------
[codex:1044276] user
[codex:1044276] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1044276] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1044276] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1044276]
[codex:1044276] Scope rules:
[codex:1044276] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1044276] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1044276]
[codex:1044276] Output MUST be valid JSON matching the provided schema.
[codex:1044276] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1044276] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1044276]
[codex:1044276] Output constraints (IMPORTANT):
[codex:1044276] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1044276] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1044276] mcp startup: no servers
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Preparing to read audit instructions**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc ls in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276] AUDIT_BUNDLE.txt
[codex:1044276] codex-output-schema.json
[codex:1044276] contracts
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Reading bundle**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1044276]
[codex:1044276] ================================================================================
[codex:1044276] FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/BalancerErrors.sol
[codex:1044276] ================================================================================
[codex:1044276] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1044276] // This program is free software: you can redistribute it and/or modify
[codex:1044276] // it under the terms of the GNU General Public License as published by
[codex:1044276] // the Free Software Foundation, either version 3 of the License, or
[codex:1044276] // (at your option) any later version.
[codex:1044276]
[codex:1044276] // This program is distributed in the hope that it will be useful,
[codex:1044276] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:1044276] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[codex:1044276] // GNU General Public License for more details.
[codex:1044276]
[codex:1044276] // You should have received a copy of the GNU General Public License
[codex:1044276] // along with this program. If not, see <http://www.gnu.org/licenses/>.
[codex:1044276]
[codex:1044276] pragma solidity >=0.7.0 <0.9.0;
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Planning full contract inspection**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'rg --files contracts' in /tmp/codex-multi-4ke7ln7n succeeded in 8ms:
[codex:1044276] contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/BalancerErrors.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/math/Math.sol
[codex:1044276] contracts/contracts/interfaces/IRewardDistributor.sol
[codex:1044276] contracts/contracts/interfaces/IVotingEscrow.sol
[codex:1044276] contracts/contracts/RewardDistributor.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/InputHelpers.sol
[codex:1044276] contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/openzeppelin/IERC20.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ReentrancyGuard.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeERC20.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/openzeppelin/EIP712.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeMath.sol
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Distinguishing first-party from third-party code**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '1,240p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 7ms:
[codex:1044276] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1044276] // This program is free software: you can redistribute it and/or modify
[codex:1044276] // it under the terms of the GNU General Public License as published by
[codex:1044276] // the Free Software Foundation, either version 3 of the License, or
[codex:1044276] // (at your option) any later version.
[codex:1044276]
[codex:1044276] // This program is distributed in the hope that it will be useful,
[codex:1044276] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:1044276] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[codex:1044276] // GNU General Public License for more details.
[codex:1044276]
[codex:1044276] // You should have received a copy of the GNU General Public License
[codex:1044276] // along with this program. If not, see <http://www.gnu.org/licenses/>.
[codex:1044276]
[codex:1044276] pragma solidity ^0.7.0;
[codex:1044276] pragma experimental ABIEncoderV2;
[codex:1044276]
[codex:1044276]
[codex:1044276] import {IVotingEscrow} from "./interfaces/IVotingEscrow.sol";
[codex:1044276] import {IRewardDistributor} from "./interfaces/IRewardDistributor.sol";
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Continuing task**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '240,480p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276] * @param amount - The amount of tokens to deposit.
[codex:1044276] */
[codex:1044276] function depositToken(
[codex:1044276] IERC20 token,
[codex:1044276] uint256 amount
[codex:1044276] ) external override nonReentrant {
[codex:1044276] require(allowedRewardTokens[address(token)], "token not allowed");
[codex:1044276] _checkpointToken(token, false);
[codex:1044276] token.safeTransferFrom(msg.sender, address(this), amount);
[codex:1044276] _checkpointToken(token, true);
[codex:1044276] }
[codex:1044276]
[codex:1044276] /**
[codex:1044276] * @notice Deposits tokens to be distributed in the current week.
[codex:1044276] * @dev A version of `depositToken` which supports depositing multiple `tokens` at once.
[codex:1044276] * See `depositToken` for more details.
[codex:1044276] * @param tokens - An array of ERC20 token addresses to distribute.
[codex:1044276] * @param amounts - An array of token amounts to deposit.
[codex:1044276] */
[codex:1044276] function depositTokens(
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Continuing process**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '480,720p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 6ms:
[codex:1044276] tokenState.timeCursor = uint64(block.timestamp);
[codex:1044276]
[codex:1044276] uint256 tokenBalance = token.balanceOf(address(this));
[codex:1044276] uint256 newTokensToDistribute = tokenBalance.sub(
[codex:1044276] tokenState.cachedBalance
[codex:1044276] );
[codex:1044276] if (newTokensToDistribute == 0) return;
[codex:1044276] require(
[codex:1044276] tokenBalance <= type(uint128).max,
[codex:1044276] "Maximum token balance exceeded"
[codex:1044276] );
[codex:1044276] tokenState.cachedBalance = uint128(tokenBalance);
[codex:1044276]
[codex:1044276] uint256 firstIncompleteWeek = _roundDownTimestamp(lastTokenTime);
[codex:1044276] uint256 nextWeek = 0;
[codex:1044276]
[codex:1044276] // Distribute `newTokensToDistribute` evenly across the time period from `lastTokenTime` to now.
[codex:1044276] // These tokens are assigned to weeks proportionally to how much of this period falls into each week.
[codex:1044276] mapping(uint256 => uint256) storage tokensPerWeek = _tokensPerWeek[
[codex:1044276] token
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Continuing process**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '720,960p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276] IERC20 token
[codex:1044276] ) internal view returns (uint256) {
[codex:1044276] uint256 userTimeCursor = _userTokenTimeCursor[user][token];
[codex:1044276] if (userTimeCursor > 0) return userTimeCursor;
[codex:1044276] // This is the first time that the user has interacted with this token.
[codex:1044276] // We then start from the latest out of either when `user` first locked veBPT or `token` was first checkpointed.
[codex:1044276] return
[codex:1044276] Math.max(_userState[user].startTime, _tokenState[token].startTime);
[codex:1044276] }
[codex:1044276]
[codex:1044276] /**
[codex:1044276] * @dev Return the user epoch number for `user` corresponding to the provided `timestamp`
[codex:1044276] */
[codex:1044276] function _findTimestampUserEpoch(
[codex:1044276] address user,
[codex:1044276] uint256 timestamp,
[codex:1044276] uint256 minUserEpoch,
[codex:1044276] uint256 maxUserEpoch
[codex:1044276] ) internal view returns (uint256) {
[codex:1044276] uint256 min = minUserEpoch;
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Continuing process**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '960,1200p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276] uint block_time = point_0.ts;
[codex:1044276] if (d_block != 0) {
[codex:1044276] block_time += (d_t * (_block - point_0.blk)) / d_block;
[codex:1044276] }
[codex:1044276]
[codex:1044276] upoint.bias -= upoint.slope * int128(int(block_time - upoint.ts));
[codex:1044276] if (upoint.bias >= 0) {
[codex:1044276] return uint(uint128(upoint.bias));
[codex:1044276] } else {
[codex:1044276] return 0;
[codex:1044276] }
[codex:1044276] }
[codex:1044276] }
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Reviewing full AUDIT_BUNDLE**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'tail -n 40 AUDIT_BUNDLE.txt' in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276]
[codex:1044276] function increase_amount(uint256 _value) external;
[codex:1044276]
[codex:1044276] function increase_unlock_time(uint256 _unlock_time) external;
[codex:1044276]
[codex:1044276] function locked__end(address _addr) external view returns (uint256);
[codex:1044276]
[codex:1044276] function name() external view returns (string memory);
[codex:1044276]
[codex:1044276] function symbol() external view returns (string memory);
[codex:1044276]
[codex:1044276] function token() external view returns (address);
[codex:1044276]
[codex:1044276] function totalSupply() external view returns (uint256);
[codex:1044276]
[codex:1044276] function totalSupplyAt(uint256 _block) external view returns (uint256);
[codex:1044276]
[codex:1044276] function totalSupplyAtT(uint256 _timestamp) external view returns (uint256);
[codex:1044276]
[codex:1044276] function user_point_epoch(address user) external view returns (uint256);
[codex:1044276]
[codex:1044276]
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Analyzing AUDIT_BUNDLE and contract risks**
[codex:1044276]
[codex:1044276] I'm reviewing the full AUDIT_BUNDLE to ensure completeness, considering how to read the large file efficiently without flooding output. I'm carefully assessing RewardDistributor and related contracts for vulnerabilities such as unprotected initialization, reentrancy protection usage, and critical issues like division by zero in reward calculations that could cause claims to revert and block users. I’m also noting potential DoS risks from zero supply weeks and effects of deflationary tokens on cached balances. There's a lot to unpack here!
[codex:1044276] thinking
[codex:1044276] **Evaluating token deposit and checkpoint mechanics**
[codex:1044276]
[codex:1044276] I'm looking at how fee-charging tokens affect deposits and checkpointing, noting the risk of cached balance mismatches causing reverts if admins claw back tokens unsafely. I’m analyzing open access to checkpoint functions, unprotected initialization issues, and the implications of the 20-iteration loop in `_checkpointToken` that can cause tokens to remain undistributed if checkpointing is delayed over long periods, potentially leading to lost rewards. It’s interesting how allowed tokens list governs deposits but not checkpointing or claims, which might cause design quirks but not clear vulnerabilities.
[codex:1044276] thinking
[codex:1044276] **Checking initialization and planning line number extraction**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'rg -n "function initialize" -n contracts/contracts/RewardDistributor.sol' in /tmp/codex-multi-4ke7ln7n succeeded in 8ms:
[codex:1044276] 103: function initialize(
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Identifying line numbers for key code locations**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'rg -n "_veSupplyCache" -n contracts/contracts/RewardDistributor.sol' in /tmp/codex-multi-4ke7ln7n succeeded in 7ms:
[codex:1044276] 54: mapping(uint256 => uint256) private _veSupplyCache;
[codex:1044276] 206: return _veSupplyCache[timestamp];
[codex:1044276] 420: _veSupplyCache[nextUserTokenWeekToClaim];
[codex:1044276] 703: _veSupplyCache[nextWeekToCheckpoint] = totalSupplyAtT;
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Inspecting code around line 420**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "nl -ba contracts/contracts/RewardDistributor.sol | sed -n '400,440p'" in /tmp/codex-multi-4ke7ln7n succeeded in 6ms:
[codex:1044276] 400 _roundUpTimestamp(
[codex:1044276] 401 Math.min(_timeCursor, _userState[user].timeCursor)
[codex:1044276] 402 ),
[codex:1044276] 403 _roundDownTimestamp(tokenState.timeCursor)
[codex:1044276] 404 );
[codex:1044276] 405
[codex:1044276] 406 mapping(uint256 => uint256) storage tokensPerWeek = _tokensPerWeek[
[codex:1044276] 407 token
[codex:1044276] 408 ];
[codex:1044276] 409 mapping(uint256 => uint256)
[codex:1044276] 410 storage userBalanceAtTimestamp = _userBalanceAtTimestamp[user];
[codex:1044276] 411
[codex:1044276] 412 uint256 amount;
[codex:1044276] 413 for (uint256 i = 0; i < 20; ++i) {
[codex:1044276] 414 // We clearly cannot claim for `firstUnclaimableWeek` and so we break here.
[codex:1044276] 415 if (nextUserTokenWeekToClaim >= firstUnclaimableWeek) break;
[codex:1044276] 416
[codex:1044276] 417 amount +=
[codex:1044276] 418 (tokensPerWeek[nextUserTokenWeekToClaim] *
[codex:1044276] 419 userBalanceAtTimestamp[nextUserTokenWeekToClaim]) /
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Selecting code lines for update**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "nl -ba contracts/contracts/RewardDistributor.sol | sed -n '90,130p'" in /tmp/codex-multi-4ke7ln7n succeeded in 6ms:
[codex:1044276] 90
[codex:1044276] 91 mapping(address => UserState) internal _userState;
[codex:1044276] 92 mapping(address => mapping(uint256 => uint256))
[codex:1044276] 93 private _userBalanceAtTimestamp;
[codex:1044276] 94 mapping(address => mapping(IERC20 => uint256)) private _userTokenTimeCursor;
[codex:1044276] 95
[codex:1044276] 96 constructor() EIP712("RewardDistributor", "1") {}
[codex:1044276] 97
[codex:1044276] 98 modifier onlyAdmin() {
[codex:1044276] 99 require(admin == msg.sender, "not admin");
[codex:1044276] 100 _;
[codex:1044276] 101 }
[codex:1044276] 102
[codex:1044276] 103 function initialize(
[codex:1044276] 104 IVotingEscrow votingEscrow,
[codex:1044276] 105 uint256 startTime,
[codex:1044276] 106 address admin_
[codex:1044276] 107 ) external {
[codex:1044276] 108 require(!isInitialized, "only once");
[codex:1044276] 109 isInitialized = true;
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Inspecting line numbers near checkpoint**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "nl -ba contracts/contracts/RewardDistributor.sol | sed -n '440,560p'" in /tmp/codex-multi-4ke7ln7n succeeded in 6ms:
[codex:1044276] 440 function _checkpointToken(IERC20 token, bool force) internal {
[codex:1044276] 441 TokenState storage tokenState = _tokenState[token];
[codex:1044276] 442 uint256 lastTokenTime = tokenState.timeCursor;
[codex:1044276] 443 uint256 timeSinceLastCheckpoint;
[codex:1044276] 444 if (lastTokenTime == 0) {
[codex:1044276] 445 // If it's the first time we're checkpointing this token then start distributing from now.
[codex:1044276] 446 // Also mark at which timestamp users should start attempts to claim this token from.
[codex:1044276] 447 lastTokenTime = block.timestamp;
[codex:1044276] 448 tokenState.startTime = uint64(_roundDownTimestamp(block.timestamp));
[codex:1044276] 449
[codex:1044276] 450 // Prevent someone from assigning tokens to an inaccessible week.
[codex:1044276] 451 require(
[codex:1044276] 452 block.timestamp > _startTime,
[codex:1044276] 453 "Reward distribution has not started yet"
[codex:1044276] 454 );
[codex:1044276] 455 } else {
[codex:1044276] 456 timeSinceLastCheckpoint = block.timestamp - lastTokenTime;
[codex:1044276] 457
[codex:1044276] 458 if (!force) {
[codex:1044276] 459 // Checkpointing N times within a single week is completely equivalent to checkpointing once at the end.
[codex:1044276]
[codex:1044276] thinking
[codex:1044276] **Preparing audit findings JSON**
[codex:1044276] codex
[codex:1044276] {"no_findings":false,"summary":"Identified 3 issues: unprotected initializer takeover, division-by-zero claim DoS when weekly ve supply is zero, and reward distribution truncation after long inactivity.","findings":[{"severity":"high","category":"access_control","title":"Unprotected initialize allows admin/votingEscrow takeover","exploit_scenario":"If the contract is deployed without calling initialize in the same transaction, any address can call initialize first, set themselves as admin and point votingEscrow to a malicious contract, then use admin-only functions (e.g., clawbackUnsafe) or break reward accounting.","recommendation":"Restrict initialize to a trusted deployer/factory (e.g., onlyAdmin/onlyFactory), or move initialization into a constructor for non-proxy deployments. If used behind a proxy, use an initializer pattern that disables further initializers on the implementation contract.","evidence":"initialize is external and only checks isInitialized; there is no access control gate before setting admin and _votingEscrow.","locations":["contracts/contracts/RewardDistributor.sol:103"]},{"severity":"medium","category":"math","title":"Claiming can revert when weekly total supply is zero","exploit_scenario":"If total ve supply at a weekly checkpoint is 0 (e.g., all locks expired), _veSupplyCache[week] becomes 0. Later claimToken/claimTokens will divide by this value and revert, blocking all claims that need to pass through that week and leaving tokens stuck.","recommendation":"Handle zero supply weeks explicitly (e.g., skip distribution when _veSupplyCache[week] == 0 or store a sentinel), or prevent checkpointing/distributing rewards into weeks with zero total supply.","evidence":"_claimToken computes (tokensPerWeek * userBalance) / _veSupplyCache[week] without a zero check.","locations":["contracts/contracts/RewardDistributor.sol:417"]},{"severity":"low","category":"math","title":"Token distribution truncates after >20 weeks of inactivity","exploit_scenario":"If a token hasn’t been checkpointed for more than 20 weeks, _checkpointToken only iterates 20 weeks but sets tokenState.timeCursor to block.timestamp. The remaining undistributed portion is never allocated to any week and becomes permanently unclaimable.","recommendation":"If the loop hits its iteration cap, leave timeCursor at the last processed week so subsequent calls continue distribution, or allow batched catch-up across multiple calls without marking the token fully up-to-date.","evidence":"_checkpointToken sets tokenState.timeCursor = block.timestamp before looping for at most 20 iterations with no continuation logic.","locations":["contracts/contracts/RewardDistributor.sol:480","contracts/contracts/RewardDistributor.sol:501"]}]}
[codex:1044276] tokens used
[codex:1044276] 58,315
[codex:1044276] {"no_findings":false,"summary":"Identified 3 issues: unprotected initializer takeover, division-by-zero claim DoS when weekly ve supply is zero, and reward distribution truncation after long inactivity.","findings":[{"severity":"high","category":"access_control","title":"Unprotected initialize allows admin/votingEscrow takeover","exploit_scenario":"If the contract is deployed without calling initialize in the same transaction, any address can call initialize first, set themselves as admin and point votingEscrow to a malicious contract, then use admin-only functions (e.g., clawbackUnsafe) or break reward accounting.","recommendation":"Restrict initialize to a trusted deployer/factory (e.g., onlyAdmin/onlyFactory), or move initialization into a constructor for non-proxy deployments. If used behind a proxy, use an initializer pattern that disables further initializers on the implementation contract.","evidence":"initialize is external and only checks isInitialized; there is no access control gate before setting admin and _votingEscrow.","locations":["contracts/contracts/RewardDistributor.sol:103"]},{"severity":"medium","category":"math","title":"Claiming can revert when weekly total supply is zero","exploit_scenario":"If total ve supply at a weekly checkpoint is 0 (e.g., all locks expired), _veSupplyCache[week] becomes 0. Later claimToken/claimTokens will divide by this value and revert, blocking all claims that need to pass through that week and leaving tokens stuck.","recommendation":"Handle zero supply weeks explicitly (e.g., skip distribution when _veSupplyCache[week] == 0 or store a sentinel), or prevent checkpointing/distributing rewards into weeks with zero total supply.","evidence":"_claimToken computes (tokensPerWeek * userBalance) / _veSupplyCache[week] without a zero check.","locations":["contracts/contracts/RewardDistributor.sol:417"]},{"severity":"low","category":"math","title":"Token distribution truncates after >20 weeks of inactivity","exploit_scenario":"If a token hasn’t been checkpointed for more than 20 weeks, _checkpointToken only iterates 20 weeks but sets tokenState.timeCursor to block.timestamp. The remaining undistributed portion is never allocated to any week and becomes permanently unclaimable.","recommendation":"If the loop hits its iteration cap, leave timeCursor at the last processed week so subsequent calls continue distribution, or allow batched catch-up across multiple calls without marking the token fully up-to-date.","evidence":"_checkpointToken sets tokenState.timeCursor = block.timestamp before looping for at most 20 iterations with no continuation logic.","locations":["contracts/contracts/RewardDistributor.sol:480","contracts/contracts/RewardDistributor.sol:501"]}]}
{
"codex": {
"ran_at": "2025-12-30T03:10:34.251994+00:00",
"returncode": 0
},
"summary": "Identified 3 issues: unprotected initializer takeover, division-by-zero claim DoS when weekly ve supply is zero, and reward distribution truncation after long inactivity.",
"raw_final": {
"summary": "Identified 3 issues: unprotected initializer takeover, division-by-zero claim DoS when weekly ve supply is zero, and reward distribution truncation after long inactivity.",
"findings": [
{
"title": "Unprotected initialize allows admin/votingEscrow takeover",
"category": "access_control",
"evidence": "initialize is external and only checks isInitialized; there is no access control gate before setting admin and _votingEscrow.",
"severity": "high",
"locations": [
"contracts/contracts/RewardDistributor.sol:103"
],
"recommendation": "Restrict initialize to a trusted deployer/factory (e.g., onlyAdmin/onlyFactory), or move initialization into a constructor for non-proxy deployments. If used behind a proxy, use an initializer pattern that disables further initializers on the implementation contract.",
"exploit_scenario": "If the contract is deployed without calling initialize in the same transaction, any address can call initialize first, set themselves as admin and point votingEscrow to a malicious contract, then use admin-only functions (e.g., clawbackUnsafe) or break reward accounting."
},
{
"title": "Claiming can revert when weekly total supply is zero",
"category": "math",
"evidence": "_claimToken computes (tokensPerWeek * userBalance) / _veSupplyCache[week] without a zero check.",
"severity": "medium",
"locations": [
"contracts/contracts/RewardDistributor.sol:417"
],
"recommendation": "Handle zero supply weeks explicitly (e.g., skip distribution when _veSupplyCache[week] == 0 or store a sentinel), or prevent checkpointing/distributing rewards into weeks with zero total supply.",
"exploit_scenario": "If total ve supply at a weekly checkpoint is 0 (e.g., all locks expired), _veSupplyCache[week] becomes 0. Later claimToken/claimTokens will divide by this value and revert, blocking all claims that need to pass through that week and leaving tokens stuck."
},
{
"title": "Token distribution truncates after >20 weeks of inactivity",
"category": "math",
"evidence": "_checkpointToken sets tokenState.timeCursor = block.timestamp before looping for at most 20 iterations with no continuation logic.",
"severity": "low",
"locations": [
"contracts/contracts/RewardDistributor.sol:480",
"contracts/contracts/RewardDistributor.sol:501"
],
"recommendation": "If the loop hits its iteration cap, leave timeCursor at the last processed week so subsequent calls continue distribution, or allow batched catch-up across multiple calls without marking the token fully up-to-date.",
"exploit_scenario": "If a token hasn\u2019t been checkpointed for more than 20 weeks, _checkpointToken only iterates 20 weeks but sets tokenState.timeCursor to block.timestamp. The remaining undistributed portion is never allocated to any week and becomes permanently unclaimable."
}
],
"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 0x01cf 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x876e69a1 00000026: GT 00000027: PUSH2 0x0104 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xd07b705f 00000031: GT 00000032: PUSH2 0x00a2 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xed3a0887 0000003c: GT 0000003d: PUSH2 0x0071 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xed3a0887 00000047: EQ 00000048: PUSH2 0x0578 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xf213bd8c 00000052: EQ 00000053: PUSH2 0x05a8 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xf851a440 0000005d: EQ 0000005e: PUSH2 0x05c4 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xfdac51a1 00000068: EQ 00000069: PUSH2 0x05e2 0000006c: JUMPI 0000006d: PUSH2 0x01cf 00000070: JUMP 00000071: JUMPDEST 00000072: DUP1 00000073: PUSH4 0xd07b705f 00000078: EQ 00000079: PUSH2 0x04ca 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xd3dc4ca1 00000083: EQ 00000084: PUSH2 0x04fa 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0xde681faf 0000008e: EQ 0000008f: PUSH2 0x052a 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xece7514d 00000099: EQ 0000009a: PUSH2 0x055a 0000009d: JUMPI 0000009e: PUSH2 0x01cf 000000a1: JUMP 000000a2: JUMPDEST 000000a3: DUP1 000000a4: PUSH4 0xacbc1428 000000a9: GT 000000aa: PUSH2 0x00de 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0xacbc1428 000000b4: EQ 000000b5: PUSH2 0x0444 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0xc2c4c5c1 000000bf: EQ 000000c0: PUSH2 0x0474 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0xc350a1b5 000000ca: EQ 000000cb: PUSH2 0x047e 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0xca31879d 000000d5: EQ 000000d6: PUSH2 0x049a 000000d9: JUMPI 000000da: PUSH2 0x01cf 000000dd: JUMP 000000de: JUMPDEST 000000df: DUP1 000000e0: PUSH4 0x876e69a1 000000e5: EQ 000000e6: PUSH2 0x03c8 000000e9: JUMPI 000000ea: DUP1 000000eb: PUSH4 0x88720467 000000f0: EQ 000000f1: PUSH2 0x03f8 000000f4: JUMPI 000000f5: DUP1 000000f6: PUSH4 0x905d10ac 000000fb: EQ 000000fc: PUSH2 0x0428 000000ff: JUMPI 00000100: PUSH2 0x01cf 00000103: JUMP 00000104: JUMPDEST 00000105: DUP1 00000106: PUSH4 0x4ee2cd7e 0000010b: GT 0000010c: PUSH2 0x0171 0000010f: JUMPI 00000110: DUP1 00000111: PUSH4 0x75829def 00000116: GT 00000117: PUSH2 0x014b 0000011a: JUMPI 0000011b: DUP1 0000011c: PUSH4 0x75829def 00000121: EQ 00000122: PUSH2 0x0342 00000125: JUMPI 00000126: DUP1 00000127: PUSH4 0x7b8d6221 0000012c: EQ 0000012d: PUSH2 0x035e 00000130: JUMPI 00000131: DUP1 00000132: PUSH4 0x8050a7ee 00000137: EQ 00000138: PUSH2 0x037a 0000013b: JUMPI 0000013c: DUP1 0000013d: PUSH4 0x82aa5ad4 00000142: EQ 00000143: PUSH2 0x03aa 00000146: JUMPI 00000147: PUSH2 0x01cf 0000014a: JUMP 0000014b: JUMPDEST 0000014c: DUP1 0000014d: PUSH4 0x4ee2cd7e 00000152: EQ 00000153: PUSH2 0x02b2 00000156: JUMPI 00000157: DUP1 00000158: PUSH4 0x4f3c5090 0000015d: EQ 0000015e: PUSH2 0x02e2 00000161: JUMPI 00000162: DUP1 00000163: PUSH4 0x7116c60c 00000168: EQ 00000169: PUSH2 0x0312 0000016c: JUMPI 0000016d: PUSH2 0x01cf 00000170: JUMP 00000171: JUMPDEST 00000172: DUP1 00000173: PUSH4 0x2308805b 00000178: GT 00000179: PUSH2 0x01ad 0000017c: JUMPI 0000017d: DUP1 0000017e: PUSH4 0x2308805b 00000183: EQ 00000184: PUSH2 0x022c 00000187: JUMPI 00000188: DUP1 00000189: PUSH4 0x338b5dea 0000018e: EQ 0000018f: PUSH2 0x025c 00000192: JUMPI 00000193: DUP1 00000194: PUSH4 0x3902b9bc 00000199: EQ 0000019a: PUSH2 0x0278 0000019d: JUMPI 0000019e: DUP1 0000019f: PUSH4 0x392e53cd 000001a4: EQ 000001a5: PUSH2 0x0294 000001a8: JUMPI 000001a9: PUSH2 0x01cf 000001ac: JUMP 000001ad: JUMPDEST 000001ae: DUP1 000001af: PUSH4 0x08b0308a 000001b4: EQ 000001b5: PUSH2 0x01d4 000001b8: JUMPI 000001b9: DUP1 000001ba: PUSH4 0x14866e08 000001bf: EQ 000001c0: PUSH2 0x01f2 000001c3: JUMPI 000001c4: DUP1 000001c5: PUSH4 0x18160ddd 000001ca: EQ 000001cb: PUSH2 0x020e 000001ce: JUMPI 000001cf: JUMPDEST 000001d0: PUSH1 0x00 000001d2: DUP1 000001d3: REVERT 000001d4: JUMPDEST 000001d5: PUSH2 0x01dc 000001d8: PUSH2 0x05fe 000001db: JUMP 000001dc: JUMPDEST 000001dd: PUSH1 0x40 000001df: MLOAD 000001e0: PUSH2 0x01e9 000001e3: SWAP2 000001e4: SWAP1 000001e5: PUSH2 0x40d3 000001e8: JUMP 000001e9: JUMPDEST 000001ea: PUSH1 0x40 000001ec: MLOAD 000001ed: DUP1 000001ee: SWAP2 000001ef: SUB 000001f0: SWAP1 000001f1: RETURN 000001f2: JUMPDEST 000001f3: PUSH2 0x020c 000001f6: PUSH1 0x04 000001f8: DUP1 000001f9: CALLDATASIZE 000001fa: SUB 000001fb: DUP2 000001fc: ADD 000001fd: SWAP1 000001fe: PUSH2 0x0207 00000201: SWAP2 00000202: SWAP1 00000203: PUSH2 0x37db 00000206: JUMP 00000207: JUMPDEST 00000208: PUSH2 0x0626 0000020b: JUMP 0000020c: JUMPDEST 0000020d: STOP 0000020e: JUMPDEST 0000020f: PUSH2 0x0216 00000212: PUSH2 0x0642 00000215: JUMP 00000216: JUMPDEST 00000217: PUSH1 0x40 00000219: MLOAD 0000021a: PUSH2 0x0223 0000021d: SWAP2 0000021e: SWAP1 0000021f: PUSH2 0x420e 00000222: JUMP 00000223: JUMPDEST 00000224: PUSH1 0x40 00000226: MLOAD 00000227: DUP1 00000228: SWAP2 00000229: SUB 0000022a: SWAP1 0000022b: RETURN 0000022c: JUMPDEST 0000022d: PUSH2 0x0246 00000230: PUSH1 0x04 00000232: DUP1 00000233: CALLDATASIZE 00000234: SUB 00000235: DUP2 00000236: ADD 00000237: SWAP1 00000238: PUSH2 0x0241 0000023b: SWAP2 0000023c: SWAP1 0000023d: PUSH2 0x39fc 00000240: JUMP 00000241: JUMPDEST 00000242: PUSH2 0x0652 00000245: JUMP 00000246: JUMPDEST 00000247: PUSH1 0x40 00000249: MLOAD 0000024a: PUSH2 0x0253 0000024d: SWAP2 0000024e: SWAP1 0000024f: PUSH2 0x420e 00000252: JUMP 00000253: JUMPDEST 00000254: PUSH1 0x40 00000256: MLOAD 00000257: DUP1 00000258: SWAP2 00000259: SUB 0000025a: SWAP1 0000025b: RETURN 0000025c: JUMPDEST 0000025d: PUSH2 0x0276 00000260: PUSH1 0x04 00000262: DUP1 00000263: CALLDATASIZE 00000264: SUB 00000265: DUP2 00000266: ADD 00000267: SWAP1 00000268: PUSH2 0x0271 0000026b: SWAP2 0000026c: SWAP1 0000026d: PUSH2 0x3a25 00000270: JUMP 00000271: JUMPDEST 00000272: PUSH2 0x06cc 00000275: JUMP 00000276: JUMPDEST 00000277: STOP 00000278: JUMPDEST 00000279: PUSH2 0x0292 0000027c: PUSH1 0x04 0000027e: DUP1 0000027f: CALLDATASIZE 00000280: SUB 00000281: DUP2 00000282: ADD 00000283: SWAP1 00000284: PUSH2 0x028d 00000287: SWAP2 00000288: SWAP1 00000289: PUSH2 0x39fc 0000028c: JUMP 0000028d: JUMPDEST 0000028e: PUSH2 0x07af 00000291: JUMP 00000292: JUMPDEST 00000293: STOP 00000294: JUMPDEST 00000295: PUSH2 0x029c 00000298: PUSH2 0x07cd 0000029b: JUMP 0000029c: JUMPDEST 0000029d: PUSH1 0x40 0000029f: MLOAD 000002a0: PUSH2 0x02a9 000002a3: SWAP2 000002a4: SWAP1 000002a5: PUSH2 0x4081 000002a8: JUMP 000002a9: JUMPDEST 000002aa: PUSH1 0x40 000002ac: MLOAD 000002ad: DUP1 000002ae: SWAP2 000002af: SUB 000002b0: SWAP1 000002b1: RETURN 000002b2: JUMPDEST 000002b3: PUSH2 0x02cc 000002b6: PUSH1 0x04 000002b8: DUP1 000002b9: CALLDATASIZE 000002ba: SUB 000002bb: DUP2 000002bc: ADD 000002bd: SWAP1 000002be: PUSH2 0x02c7 000002c1: SWAP2 000002c2: SWAP1 000002c3: PUSH2 0x3898 000002c6: JUMP 000002c7: JUMPDEST 000002c8: PUSH2 0x07e0 000002cb: JUMP 000002cc: JUMPDEST 000002cd: PUSH1 0x40 000002cf: MLOAD 000002d0: PUSH2 0x02d9 000002d3: SWAP2 000002d4: SWAP1 000002d5: PUSH2 0x420e 000002d8: JUMP 000002d9: JUMPDEST 000002da: PUSH1 0x40 000002dc: MLOAD 000002dd: DUP1 000002de: SWAP2 000002df: SUB 000002e0: SWAP1 000002e1: RETURN 000002e2: JUMPDEST 000002e3: PUSH2 0x02fc 000002e6: PUSH1 0x04 000002e8: DUP1 000002e9: CALLDATASIZE 000002ea: SUB 000002eb: DUP2 000002ec: ADD 000002ed: SWAP1 000002ee: PUSH2 0x02f7 000002f1: SWAP2 000002f2: SWAP1 000002f3: PUSH2 0x3b02 000002f6: JUMP 000002f7: JUMPDEST 000002f8: PUSH2 0x0d3c 000002fb: JUMP 000002fc: JUMPDEST 000002fd: PUSH1 0x40 000002ff: MLOAD 00000300: PUSH2 0x0309 00000303: SWAP2 00000304: SWAP1 00000305: PUSH2 0x420e 00000308: JUMP 00000309: JUMPDEST 0000030a: PUSH1 0x40 0000030c: MLOAD 0000030d: DUP1 0000030e: SWAP2 0000030f: SUB 00000310: SWAP1 00000311: RETURN 00000312: JUMPDEST 00000313: PUSH2 0x032c 00000316: PUSH1 0x04 00000318: DUP1 00000319: CALLDATASIZE 0000031a: SUB 0000031b: DUP2 0000031c: ADD 0000031d: SWAP1 0000031e: PUSH2 0x0327 00000321: SWAP2 00000322: SWAP1 00000323: PUSH2 0x3b02 00000326: JUMP 00000327: JUMPDEST 00000328: PUSH2 0x0d59 0000032b: JUMP 0000032c: JUMPDEST 0000032d: PUSH1 0x40 0000032f: MLOAD 00000330: PUSH2 0x0339 00000333: SWAP2 00000334: SWAP1 00000335: PUSH2 0x420e 00000338: JUMP 00000339: JUMPDEST 0000033a: PUSH1 0x40 0000033c: MLOAD 0000033d: DUP1 0000033e: SWAP2 0000033f: SUB 00000340: SWAP1 00000341: RETURN 00000342: JUMPDEST 00000343: PUSH2 0x035c 00000346: PUSH1 0x04 00000348: DUP1 00000349: CALLDATASIZE 0000034a: SUB 0000034b: DUP2 0000034c: ADD 0000034d: SWAP1 0000034e: PUSH2 0x0357 00000351: SWAP2 00000352: SWAP1 00000353: PUSH2 0x37db 00000356: JUMP 00000357: JUMPDEST 00000358: PUSH2 0x0d6b 0000035b: JUMP 0000035c: JUMPDEST 0000035d: STOP 0000035e: JUMPDEST 0000035f: PUSH2 0x0378 00000362: PUSH1 0x04 00000364: DUP1 00000365: CALLDATASIZE 00000366: SUB 00000367: DUP2 00000368: ADD 00000369: SWAP1 0000036a: PUSH2 0x0373 0000036d: SWAP2 0000036e: SWAP1 0000036f: PUSH2 0x395e 00000372: JUMP 00000373: JUMPDEST 00000374: PUSH2 0x0ef2 00000377: JUMP 00000378: JUMPDEST 00000379: STOP 0000037a: JUMPDEST 0000037b: PUSH2 0x0394 0000037e: PUSH1 0x04 00000380: DUP1 00000381: CALLDATASIZE 00000382: SUB 00000383: DUP2 00000384: ADD 00000385: SWAP1 00000386: PUSH2 0x038f 00000389: SWAP2 0000038a: SWAP1 0000038b: PUSH2 0x385c 0000038e: JUMP 0000038f: JUMPDEST 00000390: PUSH2 0x1099 00000393: JUMP 00000394: JUMPDEST 00000395: PUSH1 0x40 00000397: MLOAD 00000398: PUSH2 0x03a1 0000039b: SWAP2 0000039c: SWAP1 0000039d: PUSH2 0x420e 000003a0: JUMP 000003a1: JUMPDEST 000003a2: PUSH1 0x40 000003a4: MLOAD 000003a5: DUP1 000003a6: SWAP2 000003a7: SUB 000003a8: SWAP1 000003a9: RETURN 000003aa: JUMPDEST 000003ab: PUSH2 0x03b2 000003ae: PUSH2 0x10ad 000003b1: JUMP 000003b2: JUMPDEST 000003b3: PUSH1 0x40 000003b5: MLOAD 000003b6: PUSH2 0x03bf 000003b9: SWAP2 000003ba: SWAP1 000003bb: PUSH2 0x420e 000003be: JUMP 000003bf: JUMPDEST 000003c0: PUSH1 0x40 000003c2: MLOAD 000003c3: DUP1 000003c4: SWAP2 000003c5: SUB 000003c6: SWAP1 000003c7: RETURN 000003c8: JUMPDEST 000003c9: PUSH2 0x03e2 000003cc: PUSH1 0x04 000003ce: DUP1 000003cf: CALLDATASIZE 000003d0: SUB 000003d1: DUP2 000003d2: ADD 000003d3: SWAP1 000003d4: PUSH2 0x03dd 000003d7: SWAP2 000003d8: SWAP1 000003d9: PUSH2 0x37db 000003dc: JUMP 000003dd: JUMPDEST 000003de: PUSH2 0x10b7 000003e1: JUMP 000003e2: JUMPDEST 000003e3: PUSH1 0x40 000003e5: MLOAD 000003e6: PUSH2 0x03ef 000003e9: SWAP2 000003ea: SWAP1 000003eb: PUSH2 0x420e 000003ee: JUMP 000003ef: JUMPDEST 000003f0: PUSH1 0x40 000003f2: MLOAD 000003f3: DUP1 000003f4: SWAP2 000003f5: SUB 000003f6: SWAP1 000003f7: RETURN 000003f8: JUMPDEST 000003f9: PUSH2 0x0412 000003fc: PUSH1 0x04 000003fe: DUP1 000003ff: CALLDATASIZE 00000400: SUB 00000401: DUP2 00000402: ADD 00000403: SWAP1 00000404: PUSH2 0x040d 00000407: SWAP2 00000408: SWAP1 00000409: PUSH2 0x3804 0000040c: JUMP 0000040d: JUMPDEST 0000040e: PUSH2 0x1121 00000411: JUMP 00000412: JUMPDEST 00000413: PUSH1 0x40 00000415: MLOAD 00000416: PUSH2 0x041f 00000419: SWAP2 0000041a: SWAP1 0000041b: PUSH2 0x405f 0000041e: JUMP 0000041f: JUMPDEST 00000420: PUSH1 0x40 00000422: MLOAD 00000423: DUP1 00000424: SWAP2 00000425: SUB 00000426: SWAP1 00000427: RETURN 00000428: JUMPDEST 00000429: PUSH2 0x0442 0000042c: PUSH1 0x04 0000042e: DUP1 0000042f: CALLDATASIZE 00000430: SUB 00000431: DUP2 00000432: ADD 00000433: SWAP1 00000434: PUSH2 0x043d 00000437: SWAP2 00000438: SWAP1 00000439: PUSH2 0x3919 0000043c: JUMP 0000043d: JUMPDEST 0000043e: PUSH2 0x1227 00000441: JUMP 00000442: JUMPDEST 00000443: STOP 00000444: JUMPDEST 00000445: PUSH2 0x045e 00000448: PUSH1 0x04 0000044a: DUP1 0000044b: CALLDATASIZE 0000044c: SUB 0000044d: DUP2 0000044e: ADD 0000044f: SWAP1 00000450: PUSH2 0x0459 00000453: SWAP2 00000454: SWAP1 00000455: PUSH2 0x39fc 00000458: JUMP 00000459: JUMPDEST 0000045a: PUSH2 0x1286 0000045d: JUMP 0000045e: JUMPDEST 0000045f: PUSH1 0x40 00000461: MLOAD 00000462: PUSH2 0x046b 00000465: SWAP2 00000466: SWAP1 00000467: PUSH2 0x420e 0000046a: JUMP 0000046b: JUMPDEST 0000046c: PUSH1 0x40 0000046e: MLOAD 0000046f: DUP1 00000470: SWAP2 00000471: SUB 00000472: SWAP1 00000473: RETURN 00000474: JUMPDEST 00000475: PUSH2 0x047c 00000478: PUSH2 0x12f0 0000047b: JUMP 0000047c: JUMPDEST 0000047d: STOP 0000047e: JUMPDEST 0000047f: PUSH2 0x0498 00000482: PUSH1 0x04 00000484: DUP1 00000485: CALLDATASIZE 00000486: SUB 00000487: DUP2 00000488: ADD 00000489: SWAP1 0000048a: PUSH2 0x0493 0000048d: SWAP2 0000048e: SWAP1 0000048f: PUSH2 0x3a61 00000492: JUMP 00000493: JUMPDEST 00000494: PUSH2 0x130a 00000497: JUMP 00000498: JUMPDEST 00000499: STOP 0000049a: JUMPDEST 0000049b: PUSH2 0x04b4 0000049e: PUSH1 0x04 000004a0: DUP1 000004a1: CALLDATASIZE 000004a2: SUB 000004a3: DUP2 000004a4: ADD 000004a5: SWAP1 000004a6: PUSH2 0x04af 000004a9: SWAP2 000004aa: SWAP1 000004ab: PUSH2 0x385c 000004ae: JUMP 000004af: JUMPDEST 000004b0: PUSH2 0x15a8 000004b3: JUMP 000004b4: JUMPDEST 000004b5: PUSH1 0x40 000004b7: MLOAD 000004b8: PUSH2 0x04c1 000004bb: SWAP2 000004bc: SWAP1 000004bd: PUSH2 0x420e 000004c0: JUMP 000004c1: JUMPDEST 000004c2: PUSH1 0x40 000004c4: MLOAD 000004c5: DUP1 000004c6: SWAP2 000004c7: SUB 000004c8: SWAP1 000004c9: RETURN 000004ca: JUMPDEST 000004cb: PUSH2 0x04e4 000004ce: PUSH1 0x04 000004d0: DUP1 000004d1: CALLDATASIZE 000004d2: SUB 000004d3: DUP2 000004d4: ADD 000004d5: SWAP1 000004d6: PUSH2 0x04df 000004d9: SWAP2 000004da: SWAP1 000004db: PUSH2 0x3898 000004de: JUMP 000004df: JUMPDEST 000004e0: PUSH2 0x15ee 000004e3: JUMP 000004e4: JUMPDEST 000004e5: PUSH1 0x40 000004e7: MLOAD 000004e8: PUSH2 0x04f1 000004eb: SWAP2 000004ec: SWAP1 000004ed: PUSH2 0x420e 000004f0: JUMP 000004f1: JUMPDEST 000004f2: PUSH1 0x40 000004f4: MLOAD 000004f5: DUP1 000004f6: SWAP2 000004f7: SUB 000004f8: SWAP1 000004f9: RETURN 000004fa: JUMPDEST 000004fb: PUSH2 0x0514 000004fe: PUSH1 0x04 00000500: DUP1 00000501: CALLDATASIZE 00000502: SUB 00000503: DUP2 00000504: ADD 00000505: SWAP1 00000506: PUSH2 0x050f 00000509: SWAP2 0000050a: SWAP1 0000050b: PUSH2 0x3a25 0000050e: JUMP 0000050f: JUMPDEST 00000510: PUSH2 0x1602 00000513: JUMP 00000514: JUMPDEST 00000515: PUSH1 0x40 00000517: MLOAD 00000518: PUSH2 0x0521 0000051b: SWAP2 0000051c: SWAP1 0000051d: PUSH2 0x420e 00000520: JUMP 00000521: JUMPDEST 00000522: PUSH1 0x40 00000524: MLOAD 00000525: DUP1 00000526: SWAP2 00000527: SUB 00000528: SWAP1 00000529: RETURN 0000052a: JUMPDEST 0000052b: PUSH2 0x0544 0000052e: PUSH1 0x04 00000530: DUP1 00000531: CALLDATASIZE 00000532: SUB 00000533: DUP2 00000534: ADD 00000535: SWAP1 00000536: PUSH2 0x053f 00000539: SWAP2 0000053a: SWAP1 0000053b: PUSH2 0x3898 0000053e: JUMP 0000053f: JUMPDEST 00000540: PUSH2 0x165d 00000543: JUMP 00000544: JUMPDEST 00000545: PUSH1 0x40 00000547: MLOAD 00000548: PUSH2 0x0551 0000054b: SWAP2 0000054c: SWAP1 0000054d: PUSH2 0x420e 00000550: JUMP 00000551: JUMPDEST 00000552: PUSH1 0x40 00000554: MLOAD 00000555: DUP1 00000556: SWAP2 00000557: SUB 00000558: SWAP1 00000559: RETURN 0000055a: JUMPDEST 0000055b: PUSH2 0x0562 0000055e: PUSH2 0x16b8 00000561: JUMP 00000562: JUMPDEST 00000563: PUSH1 0x40 00000565: MLOAD 00000566: PUSH2 0x056f 00000569: SWAP2 0000056a: SWAP1 0000056b: PUSH2 0x403d 0000056e: JUMP 0000056f: JUMPDEST 00000570: PUSH1 0x40 00000572: MLOAD 00000573: DUP1 00000574: SWAP2 00000575: SUB 00000576: SWAP1 00000577: RETURN 00000578: JUMPDEST 00000579: PUSH2 0x0592 0000057c: PUSH1 0x04 0000057e: DUP1 0000057f: CALLDATASIZE 00000580: SUB 00000581: DUP2 00000582: ADD 00000583: SWAP1 00000584: PUSH2 0x058d 00000587: SWAP2 00000588: SWAP1 00000589: PUSH2 0x37db 0000058c: JUMP 0000058d: JUMPDEST 0000058e: PUSH2 0x1746 00000591: JUMP 00000592: JUMPDEST 00000593: PUSH1 0x40 00000595: MLOAD 00000596: PUSH2 0x059f 00000599: SWAP2 0000059a: SWAP1 0000059b: PUSH2 0x4081 0000059e: JUMP 0000059f: JUMPDEST 000005a0: PUSH1 0x40 000005a2: MLOAD 000005a3: DUP1 000005a4: SWAP2 000005a5: SUB 000005a6: SWAP1 000005a7: RETURN 000005a8: JUMPDEST 000005a9: PUSH2 0x05c2 000005ac: PUSH1 0x04 000005ae: DUP1 000005af: CALLDATASIZE 000005b0: SUB 000005b1: DUP2 000005b2: ADD 000005b3: SWAP1 000005b4: PUSH2 0x05bd 000005b7: SWAP2 000005b8: SWAP1 000005b9: PUSH2 0x38d4 000005bc: JUMP 000005bd: JUMPDEST 000005be: PUSH2 0x1766 000005c1: JUMP 000005c2: JUMPDEST 000005c3: STOP 000005c4: JUMPDEST 000005c5: PUSH2 0x05cc 000005c8: PUSH2 0x1a21 000005cb: JUMP 000005cc: JUMPDEST 000005cd: PUSH1 0x40 000005cf: MLOAD 000005d0: PUSH2 0x05d9 000005d3: SWAP2 000005d4: SWAP1 000005d5: PUSH2 0x3f7d 000005d8: JUMP 000005d9: JUMPDEST 000005da: PUSH1 0x40 000005dc: MLOAD 000005dd: DUP1 000005de: SWAP2 000005df: SUB 000005e0: SWAP1 000005e1: RETURN 000005e2: JUMPDEST 000005e3: PUSH2 0x05fc 000005e6: PUSH1 0x04 000005e8: DUP1 000005e9: CALLDATASIZE 000005ea: SUB 000005eb: DUP2 000005ec: ADD 000005ed: SWAP1 000005ee: PUSH2 0x05f7 000005f1: SWAP2 000005f2: SWAP1 000005f3: PUSH2 0x39fc 000005f6: JUMP 000005f7: JUMPDEST 000005f8: PUSH2 0x1a47 000005fb: JUMP 000005fc: JUMPDEST 000005fd: STOP 000005fe: JUMPDEST 000005ff: PUSH1 0x00 00000601: PUSH1 0x01 00000603: DUP1 00000604: SLOAD 00000605: SWAP1 00000606: PUSH2 0x0100 00000609: EXP 0000060a: SWAP1 0000060b: DIV 0000060c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000621: AND 00000622: SWAP1 00000623: POP 00000624: SWAP1 00000625: JUMP 00000626: JUMPDEST 00000627: PUSH2 0x062e 0000062a: PUSH2 0x1bb5 0000062d: JUMP 0000062e: JUMPDEST 0000062f: PUSH2 0x0637 00000632: DUP2 00000633: PUSH2 0x1bd1 00000636: JUMP 00000637: JUMPDEST 00000638: PUSH2 0x063f 0000063b: PUSH2 0x2149 0000063e: JUMP 0000063f: JUMPDEST 00000640: POP 00000641: JUMP 00000642: JUMPDEST 00000643: PUSH1 0x00 00000645: PUSH2 0x064d 00000648: TIMESTAMP 00000649: PUSH2 0x2153 0000064c: JUMP 0000064d: JUMPDEST 0000064e: SWAP1 0000064f: POP 00000650: SWAP1 00000651: JUMP 00000652: JUMPDEST 00000653: PUSH1 0x00 00000655: PUSH1 0x08 00000657: PUSH1 0x00 00000659: DUP4 0000065a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000066f: AND 00000670: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000685: AND 00000686: DUP2 00000687: MSTORE 00000688: PUSH1 0x20 0000068a: ADD 0000068b: SWAP1 0000068c: DUP2 0000068d: MSTORE 0000068e: PUSH1 0x20 00000690: ADD 00000691: PUSH1 0x00 00000693: KECCAK256 00000694: PUSH1 0x00 00000696: ADD 00000697: PUSH1 0x10 00000699: SWAP1 0000069a: SLOAD 0000069b: SWAP1 0000069c: PUSH2 0x0100 0000069f: EXP 000006a0: SWAP1 000006a1: DIV 000006a2: PUSH16 0xffffffffffffffffffffffffffffffff 000006b3: AND 000006b4: PUSH16 0xffffffffffffffffffffffffffffffff 000006c5: AND 000006c6: SWAP1 000006c7: POP 000006c8: SWAP2 000006c9: SWAP1 000006ca: POP 000006cb: JUMP 000006cc: JUMPDEST 000006cd: PUSH2 0x06d4 000006d0: PUSH2 0x1bb5 000006d3: JUMP 000006d4: JUMPDEST 000006d5: PUSH1 0x07 000006d7: PUSH1 0x00 000006d9: DUP4 000006da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006ef: AND 000006f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000705: AND 00000706: DUP2 00000707: MSTORE 00000708: PUSH1 0x20 0000070a: ADD 0000070b: SWAP1 0000070c: DUP2 0000070d: MSTORE 0000070e: PUSH1 0x20 00000710: ADD 00000711: PUSH1 0x00 00000713: KECCAK256 00000714: PUSH1 0x00 00000716: SWAP1 00000717: SLOAD 00000718: SWAP1 00000719: PUSH2 0x0100 0000071c: EXP 0000071d: SWAP1 0000071e: DIV 0000071f: PUSH1 0xff 00000721: AND 00000722: PUSH2 0x0760 00000725: JUMPI 00000726: PUSH1 0x40 00000728: MLOAD 00000729: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000074a: DUP2 0000074b: MSTORE 0000074c: PUSH1 0x04 0000074e: ADD 0000074f: PUSH2 0x0757 00000752: SWAP1 00000753: PUSH2 0x410e 00000756: JUMP 00000757: JUMPDEST 00000758: PUSH1 0x40 0000075a: MLOAD 0000075b: DUP1 0000075c: SWAP2 0000075d: SUB 0000075e: SWAP1 0000075f: REVERT 00000760: JUMPDEST 00000761: PUSH2 0x076b 00000764: DUP3 00000765: PUSH1 0x00 00000767: PUSH2 0x22bc 0000076a: JUMP 0000076b: JUMPDEST 0000076c: PUSH2 0x0798 0000076f: CALLER 00000770: ADDRESS 00000771: DUP4 00000772: DUP6 00000773: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000788: AND 00000789: PUSH2 0x2740 0000078c: SWAP1 0000078d: SWAP4 0000078e: SWAP3 0000078f: SWAP2 00000790: SWAP1 00000791: PUSH4 0xffffffff 00000796: AND 00000797: JUMP 00000798: JUMPDEST 00000799: PUSH2 0x07a3 0000079c: DUP3 0000079d: PUSH1 0x01 0000079f: PUSH2 0x22bc 000007a2: JUMP 000007a3: JUMPDEST 000007a4: PUSH2 0x07ab 000007a7: PUSH2 0x2149 000007aa: JUMP 000007ab: JUMPDEST 000007ac: POP 000007ad: POP 000007ae: JUMP 000007af: JUMPDEST 000007b0: PUSH2 0x07b7 000007b3: PUSH2 0x1bb5 000007b6: JUMP 000007b7: JUMPDEST 000007b8: PUSH2 0x07c2 000007bb: DUP2 000007bc: PUSH1 0x01 000007be: PUSH2 0x22bc 000007c1: JUMP 000007c2: JUMPDEST 000007c3: PUSH2 0x07ca 000007c6: PUSH2 0x2149 000007c9: JUMP 000007ca: JUMPDEST 000007cb: POP 000007cc: JUMP 000007cd: JUMPDEST 000007ce: PUSH1 0x01 000007d0: PUSH1 0x00 000007d2: SWAP1 000007d3: SLOAD 000007d4: SWAP1 000007d5: PUSH2 0x0100 000007d8: EXP 000007d9: SWAP1 000007da: DIV 000007db: PUSH1 0xff 000007dd: AND 000007de: DUP2 000007df: JUMP 000007e0: JUMPDEST 000007e1: PUSH1 0x00 000007e3: NUMBER 000007e4: DUP3 000007e5: GT 000007e6: ISZERO 000007e7: PUSH2 0x07ef 000007ea: JUMPI 000007eb: PUSH1 0x00 000007ed: DUP1 000007ee: REVERT 000007ef: JUMPDEST 000007f0: PUSH1 0x00 000007f2: DUP1 000007f3: PUSH1 0x01 000007f5: DUP1 000007f6: SLOAD 000007f7: SWAP1 000007f8: PUSH2 0x0100 000007fb: EXP 000007fc: SWAP1 000007fd: DIV 000007fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000813: AND 00000814: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000829: AND 0000082a: PUSH4 0x010ae757 0000082f: DUP7 00000830: PUSH1 0x40 00000832: MLOAD 00000833: DUP3 00000834: PUSH4 0xffffffff 00000839: AND 0000083a: PUSH1 0xe0 0000083c: SHL 0000083d: DUP2 0000083e: MSTORE 0000083f: PUSH1 0x04 00000841: ADD 00000842: PUSH2 0x084b 00000845: SWAP2 00000846: SWAP1 00000847: PUSH2 0x3f7d 0000084a: JUMP 0000084b: JUMPDEST 0000084c: PUSH1 0x20 0000084e: PUSH1 0x40 00000850: MLOAD 00000851: DUP1 00000852: DUP4 00000853: SUB 00000854: DUP2 00000855: DUP7 00000856: DUP1 00000857: EXTCODESIZE 00000858: ISZERO 00000859: DUP1 0000085a: ISZERO 0000085b: PUSH2 0x0863 0000085e: JUMPI 0000085f: PUSH1 0x00 00000861: DUP1 00000862: REVERT 00000863: JUMPDEST 00000864: POP 00000865: GAS 00000866: STATICCALL 00000867: ISZERO 00000868: DUP1 00000869: ISZERO 0000086a: PUSH2 0x0877 0000086d: JUMPI 0000086e: RETURNDATASIZE 0000086f: PUSH1 0x00 00000871: DUP1 00000872: RETURNDATACOPY 00000873: RETURNDATASIZE 00000874: PUSH1 0x00 00000876: REVERT 00000877: JUMPDEST 00000878: POP 00000879: POP 0000087a: POP 0000087b: POP 0000087c: PUSH1 0x40 0000087e: MLOAD 0000087f: RETURNDATASIZE 00000880: PUSH1 0x1f 00000882: NOT 00000883: PUSH1 0x1f 00000885: DUP3 00000886: ADD 00000887: AND 00000888: DUP3 00000889: ADD 0000088a: DUP1 0000088b: PUSH1 0x40 0000088d: MSTORE 0000088e: POP 0000088f: DUP2 00000890: ADD 00000891: SWAP1 00000892: PUSH2 0x089b 00000895: SWAP2 00000896: SWAP1 00000897: PUSH2 0x3b2b 0000089a: JUMP 0000089b: JUMPDEST 0000089c: SWAP1 0000089d: POP 0000089e: PUSH1 0x00 000008a0: JUMPDEST 000008a1: PUSH1 0x80 000008a3: DUP2 000008a4: LT 000008a5: ISZERO 000008a6: PUSH2 0x0999 000008a9: JUMPI 000008aa: DUP2 000008ab: DUP4 000008ac: LT 000008ad: PUSH2 0x08b5 000008b0: JUMPI 000008b1: PUSH2 0x0999 000008b4: JUMP 000008b5: JUMPDEST 000008b6: PUSH1 0x00 000008b8: PUSH1 0x02 000008ba: PUSH1 0x01 000008bc: DUP5 000008bd: DUP7 000008be: ADD 000008bf: ADD 000008c0: DUP2 000008c1: PUSH2 0x08c6 000008c4: JUMPI 000008c5: INVALID 000008c6: JUMPDEST 000008c7: DIV 000008c8: SWAP1 000008c9: POP 000008ca: DUP6 000008cb: PUSH1 0x01 000008cd: DUP1 000008ce: SLOAD 000008cf: SWAP1 000008d0: PUSH2 0x0100 000008d3: EXP 000008d4: SWAP1 000008d5: DIV 000008d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008eb: AND 000008ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000901: AND 00000902: PUSH4 0x28d09d47 00000907: DUP10 00000908: DUP5 00000909: PUSH1 0x40 0000090b: MLOAD 0000090c: DUP4 0000090d: PUSH4 0xffffffff 00000912: AND 00000913: PUSH1 0xe0 00000915: SHL 00000916: DUP2 00000917: MSTORE 00000918: PUSH1 0x04 0000091a: ADD 0000091b: PUSH2 0x0925 0000091e: SWAP3 0000091f: SWAP2 00000920: SWAP1 00000921: PUSH2 0x4014 00000924: JUMP 00000925: JUMPDEST 00000926: PUSH1 0x80 00000928: PUSH1 0x40 0000092a: MLOAD 0000092b: DUP1 0000092c: DUP4 0000092d: SUB 0000092e: DUP2 0000092f: DUP7 00000930: DUP1 00000931: EXTCODESIZE 00000932: ISZERO 00000933: DUP1 00000934: ISZERO 00000935: PUSH2 0x093d 00000938: JUMPI 00000939: PUSH1 0x00 0000093b: DUP1 0000093c: REVERT 0000093d: JUMPDEST 0000093e: POP 0000093f: GAS 00000940: STATICCALL 00000941: ISZERO 00000942: DUP1 00000943: ISZERO 00000944: PUSH2 0x0951 00000947: JUMPI 00000948: RETURNDATASIZE 00000949: PUSH1 0x00 0000094b: DUP1 0000094c: RETURNDATACOPY 0000094d: RETURNDATASIZE 0000094e: PUSH1 0x00 00000950: REVERT 00000951: JUMPDEST 00000952: POP 00000953: POP 00000954: POP 00000955: POP 00000956: PUSH1 0x40 00000958: MLOAD 00000959: RETURNDATASIZE 0000095a: PUSH1 0x1f 0000095c: NOT 0000095d: PUSH1 0x1f 0000095f: DUP3 00000960: ADD 00000961: AND 00000962: DUP3 00000963: ADD 00000964: DUP1 00000965: PUSH1 0x40 00000967: MSTORE 00000968: POP 00000969: DUP2 0000096a: ADD 0000096b: SWAP1 0000096c: PUSH2 0x0975 0000096f: SWAP2 00000970: SWAP1 00000971: PUSH2 0x3ad9 00000974: JUMP 00000975: JUMPDEST 00000976: PUSH1 0x60 00000978: ADD 00000979: MLOAD 0000097a: GT 0000097b: PUSH2 0x0986 0000097e: JUMPI 0000097f: DUP1 00000980: SWAP4 00000981: POP 00000982: PUSH2 0x098d 00000985: JUMP 00000986: JUMPDEST 00000987: PUSH1 0x01 00000989: DUP2 0000098a: SUB 0000098b: SWAP3 0000098c: POP 0000098d: JUMPDEST 0000098e: POP 0000098f: DUP1 00000990: PUSH1 0x01 00000992: ADD 00000993: SWAP1 00000994: POP 00000995: PUSH2 0x08a0 00000998: JUMP 00000999: JUMPDEST 0000099a: POP 0000099b: PUSH2 0x09a2 0000099e: PUSH2 0x35c8 000009a1: JUMP 000009a2: JUMPDEST 000009a3: PUSH1 0x01 000009a5: DUP1 000009a6: SLOAD 000009a7: SWAP1 000009a8: PUSH2 0x0100 000009ab: EXP 000009ac: SWAP1 000009ad: DIV 000009ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009c3: AND 000009c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009d9: AND 000009da: PUSH4 0x28d09d47 000009df: DUP8 000009e0: DUP6 000009e1: PUSH1 0x40 000009e3: MLOAD 000009e4: DUP4 000009e5: PUSH4 0xffffffff 000009ea: AND 000009eb: PUSH1 0xe0 000009ed: SHL 000009ee: DUP2 000009ef: MSTORE 000009f0: PUSH1 0x04 000009f2: ADD 000009f3: PUSH2 0x09fd 000009f6: SWAP3 000009f7: SWAP2 000009f8: SWAP1 000009f9: PUSH2 0x4014 000009fc: JUMP 000009fd: JUMPDEST 000009fe: PUSH1 0x80 00000a00: PUSH1 0x40 00000a02: MLOAD 00000a03: DUP1 00000a04: DUP4 00000a05: SUB 00000a06: DUP2 00000a07: DUP7 00000a08: DUP1 00000a09: EXTCODESIZE 00000a0a: ISZERO 00000a0b: DUP1 00000a0c: ISZERO 00000a0d: PUSH2 0x0a15 00000a10: JUMPI 00000a11: PUSH1 0x00 00000a13: DUP1 00000a14: REVERT 00000a15: JUMPDEST 00000a16: POP 00000a17: GAS 00000a18: STATICCALL 00000a19: ISZERO 00000a1a: DUP1 00000a1b: ISZERO 00000a1c: PUSH2 0x0a29 00000a1f: JUMPI 00000a20: RETURNDATASIZE 00000a21: PUSH1 0x00 00000a23: DUP1 00000a24: RETURNDATACOPY 00000a25: RETURNDATASIZE 00000a26: PUSH1 0x00 00000a28: REVERT 00000a29: JUMPDEST 00000a2a: POP 00000a2b: POP 00000a2c: POP 00000a2d: POP 00000a2e: PUSH1 0x40 00000a30: MLOAD 00000a31: RETURNDATASIZE 00000a32: PUSH1 0x1f 00000a34: NOT 00000a35: PUSH1 0x1f 00000a37: DUP3 00000a38: ADD 00000a39: AND 00000a3a: DUP3 00000a3b: ADD 00000a3c: DUP1 00000a3d: PUSH1 0x40 00000a3f: MSTORE 00000a40: POP 00000a41: DUP2 00000a42: ADD 00000a43: SWAP1 00000a44: PUSH2 0x0a4d 00000a47: SWAP2 00000a48: SWAP1 00000a49: PUSH2 0x3ad9 00000a4c: JUMP 00000a4d: JUMPDEST 00000a4e: SWAP1 00000a4f: POP 00000a50: PUSH1 0x00 00000a52: PUSH1 0x01 00000a54: DUP1 00000a55: SLOAD 00000a56: SWAP1 00000a57: PUSH2 0x0100 00000a5a: EXP 00000a5b: SWAP1 00000a5c: DIV 00000a5d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a72: AND 00000a73: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a88: AND 00000a89: PUSH4 0x900cf0cf 00000a8e: PUSH1 0x40 00000a90: MLOAD 00000a91: DUP2 00000a92: PUSH4 0xffffffff 00000a97: AND 00000a98: PUSH1 0xe0 00000a9a: SHL 00000a9b: DUP2 00000a9c: MSTORE 00000a9d: PUSH1 0x04 00000a9f: ADD 00000aa0: PUSH1 0x20 00000aa2: PUSH1 0x40 00000aa4: MLOAD 00000aa5: DUP1 00000aa6: DUP4 00000aa7: SUB 00000aa8: DUP2 00000aa9: DUP7 00000aaa: DUP1 00000aab: EXTCODESIZE 00000aac: ISZERO 00000aad: DUP1 00000aae: ISZERO 00000aaf: PUSH2 0x0ab7 00000ab2: JUMPI 00000ab3: PUSH1 0x00 00000ab5: DUP1 00000ab6: REVERT 00000ab7: JUMPDEST 00000ab8: POP 00000ab9: GAS 00000aba: STATICCALL 00000abb: ISZERO 00000abc: DUP1 00000abd: ISZERO 00000abe: PUSH2 0x0acb 00000ac1: JUMPI 00000ac2: RETURNDATASIZE 00000ac3: PUSH1 0x00 00000ac5: DUP1 00000ac6: RETURNDATACOPY 00000ac7: RETURNDATASIZE 00000ac8: PUSH1 0x00 00000aca: REVERT 00000acb: JUMPDEST 00000acc: POP 00000acd: POP 00000ace: POP 00000acf: POP 00000ad0: PUSH1 0x40 00000ad2: MLOAD 00000ad3: RETURNDATASIZE 00000ad4: PUSH1 0x1f 00000ad6: NOT 00000ad7: PUSH1 0x1f 00000ad9: DUP3 00000ada: ADD 00000adb: AND 00000adc: DUP3 00000add: ADD 00000ade: DUP1 00000adf: PUSH1 0x40 00000ae1: MSTORE 00000ae2: POP 00000ae3: DUP2 00000ae4: ADD 00000ae5: SWAP1 00000ae6: PUSH2 0x0aef 00000ae9: SWAP2 00000aea: SWAP1 00000aeb: PUSH2 0x3b2b 00000aee: JUMP 00000aef: JUMPDEST 00000af0: SWAP1 00000af1: POP 00000af2: PUSH1 0x00 00000af4: PUSH2 0x0afd 00000af7: DUP8 00000af8: DUP4 00000af9: PUSH2 0x27c9 00000afc: JUMP 00000afd: JUMPDEST 00000afe: SWAP1 00000aff: POP 00000b00: PUSH2 0x0b07 00000b03: PUSH2 0x35c8 00000b06: JUMP 00000b07: JUMPDEST 00000b08: PUSH1 0x01 00000b0a: DUP1 00000b0b: SLOAD 00000b0c: SWAP1 00000b0d: PUSH2 0x0100 00000b10: EXP 00000b11: SWAP1 00000b12: DIV 00000b13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b28: AND 00000b29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b3e: AND 00000b3f: PUSH4 0xd1febfb9 00000b44: DUP4 00000b45: PUSH1 0x40 00000b47: MLOAD 00000b48: DUP3 00000b49: PUSH4 0xffffffff 00000b4e: AND 00000b4f: PUSH1 0xe0 00000b51: SHL 00000b52: DUP2 00000b53: MSTORE 00000b54: PUSH1 0x04 00000b56: ADD 00000b57: PUSH2 0x0b60 00000b5a: SWAP2 00000b5b: SWAP1 00000b5c: PUSH2 0x420e 00000b5f: JUMP 00000b60: JUMPDEST 00000b61: PUSH1 0x80 00000b63: PUSH1 0x40 00000b65: MLOAD 00000b66: DUP1 00000b67: DUP4 00000b68: SUB 00000b69: DUP2 00000b6a: DUP7 00000b6b: DUP1 00000b6c: EXTCODESIZE 00000b6d: ISZERO 00000b6e: DUP1 00000b6f: ISZERO 00000b70: PUSH2 0x0b78 00000b73: JUMPI 00000b74: PUSH1 0x00 00000b76: DUP1 00000b77: REVERT 00000b78: JUMPDEST 00000b79: POP 00000b7a: GAS 00000b7b: STATICCALL 00000b7c: ISZERO 00000b7d: DUP1 00000b7e: ISZERO 00000b7f: PUSH2 0x0b8c 00000b82: JUMPI 00000b83: RETURNDATASIZE 00000b84: PUSH1 0x00 00000b86: DUP1 00000b87: RETURNDATACOPY 00000b88: RETURNDATASIZE 00000b89: PUSH1 0x00 00000b8b: REVERT 00000b8c: JUMPDEST 00000b8d: POP 00000b8e: POP 00000b8f: POP 00000b90: POP 00000b91: PUSH1 0x40 00000b93: MLOAD 00000b94: RETURNDATASIZE 00000b95: PUSH1 0x1f 00000b97: NOT 00000b98: PUSH1 0x1f 00000b9a: DUP3 00000b9b: ADD 00000b9c: AND 00000b9d: DUP3 00000b9e: ADD 00000b9f: DUP1 00000ba0: PUSH1 0x40 00000ba2: MSTORE 00000ba3: POP 00000ba4: DUP2 00000ba5: ADD 00000ba6: SWAP1 00000ba7: PUSH2 0x0bb0 00000baa: SWAP2 00000bab: SWAP1 00000bac: PUSH2 0x3ad9 00000baf: JUMP 00000bb0: JUMPDEST 00000bb1: SWAP1 00000bb2: POP 00000bb3: PUSH1 0x00 00000bb5: DUP1 00000bb6: DUP5 00000bb7: DUP5 00000bb8: LT 00000bb9: ISZERO 00000bba: PUSH2 0x0c93 00000bbd: JUMPI 00000bbe: PUSH2 0x0bc5 00000bc1: PUSH2 0x35c8 00000bc4: JUMP 00000bc5: JUMPDEST 00000bc6: PUSH1 0x01 00000bc8: DUP1 00000bc9: SLOAD 00000bca: SWAP1 00000bcb: PUSH2 0x0100 00000bce: EXP 00000bcf: SWAP1 00000bd0: DIV 00000bd1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000be6: AND 00000be7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bfc: AND 00000bfd: PUSH4 0xd1febfb9 00000c02: PUSH1 0x01 00000c04: DUP8 00000c05: ADD 00000c06: PUSH1 0x40 00000c08: MLOAD 00000c09: DUP3 00000c0a: PUSH4 0xffffffff 00000c0f: AND 00000c10: PUSH1 0xe0 00000c12: SHL 00000c13: DUP2 00000c14: MSTORE 00000c15: PUSH1 0x04 00000c17: ADD 00000c18: PUSH2 0x0c21 00000c1b: SWAP2 00000c1c: SWAP1 00000c1d: PUSH2 0x420e 00000c20: JUMP 00000c21: JUMPDEST 00000c22: PUSH1 0x80 00000c24: PUSH1 0x40 00000c26: MLOAD 00000c27: DUP1 00000c28: DUP4 00000c29: SUB 00000c2a: DUP2 00000c2b: DUP7 00000c2c: DUP1 00000c2d: EXTCODESIZE 00000c2e: ISZERO 00000c2f: DUP1 00000c30: ISZERO 00000c31: PUSH2 0x0c39 00000c34: JUMPI 00000c35: PUSH1 0x00 00000c37: DUP1 00000c38: REVERT 00000c39: JUMPDEST 00000c3a: POP 00000c3b: GAS 00000c3c: STATICCALL 00000c3d: ISZERO 00000c3e: DUP1 00000c3f: ISZERO 00000c40: PUSH2 0x0c4d 00000c43: JUMPI 00000c44: RETURNDATASIZE 00000c45: PUSH1 0x00 00000c47: DUP1 00000c48: RETURNDATACOPY 00000c49: RETURNDATASIZE 00000c4a: PUSH1 0x00 00000c4c: REVERT 00000c4d: JUMPDEST 00000c4e: POP 00000c4f: POP 00000c50: POP 00000c51: POP 00000c52: PUSH1 0x40 00000c54: MLOAD 00000c55: RETURNDATASIZE 00000c56: PUSH1 0x1f 00000c58: NOT 00000c59: PUSH1 0x1f 00000c5b: DUP3 00000c5c: ADD 00000c5d: AND 00000c5e: DUP3 00000c5f: ADD 00000c60: DUP1 00000c61: PUSH1 0x40 00000c63: MSTORE 00000c64: POP 00000c65: DUP2 00000c66: ADD 00000c67: SWAP1 00000c68: PUSH2 0x0c71 00000c6b: SWAP2 00000c6c: SWAP1 00000c6d: PUSH2 0x3ad9 00000c70: JUMP 00000c71: JUMPDEST 00000c72: SWAP1 00000c73: POP 00000c74: DUP4 00000c75: PUSH1 0x60 00000c77: ADD 00000c78: MLOAD 00000c79: DUP2 00000c7a: PUSH1 0x60 00000c7c: ADD 00000c7d: MLOAD 00000c7e: SUB 00000c7f: SWAP3 00000c80: POP 00000c81: DUP4 00000c82: PUSH1 0x40 00000c84: ADD 00000c85: MLOAD 00000c86: DUP2 00000c87: PUSH1 0x40 00000c89: ADD 00000c8a: MLOAD 00000c8b: SUB 00000c8c: SWAP2 00000c8d: POP 00000c8e: POP 00000c8f: PUSH2 0x0ca6 00000c92: JUMP 00000c93: JUMPDEST 00000c94: DUP3 00000c95: PUSH1 0x60 00000c97: ADD 00000c98: MLOAD 00000c99: NUMBER 00000c9a: SUB 00000c9b: SWAP2 00000c9c: POP 00000c9d: DUP3 00000c9e: PUSH1 0x40 00000ca0: ADD 00000ca1: MLOAD 00000ca2: TIMESTAMP 00000ca3: SUB 00000ca4: SWAP1 00000ca5: POP 00000ca6: JUMPDEST 00000ca7: PUSH1 0x00 00000ca9: DUP4 00000caa: PUSH1 0x40 00000cac: ADD 00000cad: MLOAD 00000cae: SWAP1 00000caf: POP 00000cb0: PUSH1 0x00 00000cb2: DUP4 00000cb3: EQ 00000cb4: PUSH2 0x0cce 00000cb7: JUMPI 00000cb8: DUP3 00000cb9: DUP5 00000cba: PUSH1 0x60 00000cbc: ADD 00000cbd: MLOAD 00000cbe: DUP13 00000cbf: SUB 00000cc0: DUP4 00000cc1: MUL 00000cc2: DUP2 00000cc3: PUSH2 0x0cc8 00000cc6: JUMPI 00000cc7: INVALID 00000cc8: JUMPDEST 00000cc9: DIV 00000cca: DUP2 00000ccb: ADD 00000ccc: SWAP1 00000ccd: POP 00000cce: JUMPDEST 00000ccf: DUP7 00000cd0: PUSH1 0x40 00000cd2: ADD 00000cd3: MLOAD 00000cd4: DUP2 00000cd5: SUB 00000cd6: DUP8 00000cd7: PUSH1 0x20 00000cd9: ADD 00000cda: MLOAD 00000cdb: MUL 00000cdc: DUP8 00000cdd: PUSH1 0x00 00000cdf: ADD 00000ce0: DUP2 00000ce1: DUP2 00000ce2: MLOAD 00000ce3: SUB 00000ce4: SWAP2 00000ce5: POP 00000ce6: SWAP1 00000ce7: PUSH1 0x0f 00000ce9: SIGNEXTEND 00000cea: SWAP1 00000ceb: DUP2 00000cec: PUSH1 0x0f 00000cee: SIGNEXTEND 00000cef: DUP2 00000cf0: MSTORE 00000cf1: POP 00000cf2: POP 00000cf3: PUSH1 0x00 00000cf5: DUP8 00000cf6: PUSH1 0x00 00000cf8: ADD 00000cf9: MLOAD 00000cfa: PUSH1 0x0f 00000cfc: SIGNEXTEND 00000cfd: SLT 00000cfe: PUSH2 0x0d28 00000d01: JUMPI 00000d02: DUP7 00000d03: PUSH1 0x00 00000d05: ADD 00000d06: MLOAD 00000d07: PUSH16 0xffffffffffffffffffffffffffffffff 00000d18: AND 00000d19: SWAP10 00000d1a: POP 00000d1b: POP 00000d1c: POP 00000d1d: POP 00000d1e: POP 00000d1f: POP 00000d20: POP 00000d21: POP 00000d22: POP 00000d23: POP 00000d24: PUSH2 0x0d36 00000d27: JUMP 00000d28: JUMPDEST 00000d29: PUSH1 0x00 00000d2b: SWAP10 00000d2c: POP 00000d2d: POP 00000d2e: POP 00000d2f: POP 00000d30: POP 00000d31: POP 00000d32: POP 00000d33: POP 00000d34: POP 00000d35: POP 00000d36: JUMPDEST 00000d37: SWAP3 00000d38: SWAP2 00000d39: POP 00000d3a: POP 00000d3b: JUMP 00000d3c: JUMPDEST 00000d3d: PUSH1 0x00 00000d3f: PUSH1 0x04 00000d41: PUSH1 0x00 00000d43: DUP4 00000d44: DUP2 00000d45: MSTORE 00000d46: PUSH1 0x20 00000d48: ADD 00000d49: SWAP1 00000d4a: DUP2 00000d4b: MSTORE 00000d4c: PUSH1 0x20 00000d4e: ADD 00000d4f: PUSH1 0x00 00000d51: KECCAK256 00000d52: SLOAD 00000d53: SWAP1 00000d54: POP 00000d55: SWAP2 00000d56: SWAP1 00000d57: POP 00000d58: JUMP 00000d59: JUMPDEST 00000d5a: PUSH1 0x00 00000d5c: PUSH2 0x0d64 00000d5f: DUP3 00000d60: PUSH2 0x2153 00000d63: JUMP 00000d64: JUMPDEST 00000d65: SWAP1 00000d66: POP 00000d67: SWAP2 00000d68: SWAP1 00000d69: POP 00000d6a: JUMP 00000d6b: JUMPDEST 00000d6c: CALLER 00000d6d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d82: AND 00000d83: PUSH1 0x05 00000d85: PUSH1 0x00 00000d87: SWAP1 00000d88: SLOAD 00000d89: SWAP1 00000d8a: PUSH2 0x0100 00000d8d: EXP 00000d8e: SWAP1 00000d8f: DIV 00000d90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000da5: AND 00000da6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dbb: AND 00000dbc: EQ 00000dbd: PUSH2 0x0dfb 00000dc0: JUMPI 00000dc1: PUSH1 0x40 00000dc3: MLOAD 00000dc4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000de5: DUP2 00000de6: MSTORE 00000de7: PUSH1 0x04 00000de9: ADD 00000dea: PUSH2 0x0df2 00000ded: SWAP1 00000dee: PUSH2 0x41ee 00000df1: JUMP 00000df2: JUMPDEST 00000df3: PUSH1 0x40 00000df5: MLOAD 00000df6: DUP1 00000df7: SWAP2 00000df8: SUB 00000df9: SWAP1 00000dfa: REVERT 00000dfb: JUMPDEST 00000dfc: PUSH1 0x00 00000dfe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e13: AND 00000e14: DUP2 00000e15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e2a: AND 00000e2b: EQ 00000e2c: ISZERO 00000e2d: PUSH2 0x0e6b 00000e30: JUMPI 00000e31: PUSH1 0x40 00000e33: MLOAD 00000e34: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000e55: DUP2 00000e56: MSTORE 00000e57: PUSH1 0x04 00000e59: ADD 00000e5a: PUSH2 0x0e62 00000e5d: SWAP1 00000e5e: PUSH2 0x41ae 00000e61: JUMP 00000e62: JUMPDEST 00000e63: PUSH1 0x40 00000e65: MLOAD 00000e66: DUP1 00000e67: SWAP2 00000e68: SUB 00000e69: SWAP1 00000e6a: REVERT 00000e6b: JUMPDEST 00000e6c: DUP1 00000e6d: PUSH1 0x05 00000e6f: PUSH1 0x00 00000e71: PUSH2 0x0100 00000e74: EXP 00000e75: DUP2 00000e76: SLOAD 00000e77: DUP2 00000e78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e8d: MUL 00000e8e: NOT 00000e8f: AND 00000e90: SWAP1 00000e91: DUP4 00000e92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ea7: AND 00000ea8: MUL 00000ea9: OR 00000eaa: SWAP1 00000eab: SSTORE 00000eac: POP 00000ead: DUP1 00000eae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ec3: AND 00000ec4: PUSH32 0xe22b4f506b7da9a528a95d7063a6cde8d2b6268773b1f7f65c00057531704a3d 00000ee5: PUSH1 0x40 00000ee7: MLOAD 00000ee8: PUSH1 0x40 00000eea: MLOAD 00000eeb: DUP1 00000eec: SWAP2 00000eed: SUB 00000eee: SWAP1 00000eef: LOG2 00000ef0: POP 00000ef1: JUMP 00000ef2: JUMPDEST 00000ef3: PUSH2 0x0efa 00000ef6: PUSH2 0x1bb5 00000ef9: JUMP 00000efa: JUMPDEST 00000efb: PUSH2 0x0f0a 00000efe: DUP5 00000eff: DUP5 00000f00: SWAP1 00000f01: POP 00000f02: DUP4 00000f03: DUP4 00000f04: SWAP1 00000f05: POP 00000f06: PUSH2 0x28db 00000f09: JUMP 00000f0a: JUMPDEST 00000f0b: PUSH1 0x00 00000f0d: DUP5 00000f0e: DUP5 00000f0f: SWAP1 00000f10: POP 00000f11: SWAP1 00000f12: POP 00000f13: PUSH1 0x00 00000f15: JUMPDEST 00000f16: DUP2 00000f17: DUP2 00000f18: LT 00000f19: ISZERO 00000f1a: PUSH2 0x1089 00000f1d: JUMPI 00000f1e: PUSH1 0x07 00000f20: PUSH1 0x00 00000f22: DUP8 00000f23: DUP8 00000f24: DUP5 00000f25: DUP2 00000f26: DUP2 00000f27: LT 00000f28: PUSH2 0x0f2d 00000f2b: JUMPI 00000f2c: INVALID 00000f2d: JUMPDEST 00000f2e: SWAP1 00000f2f: POP 00000f30: PUSH1 0x20 00000f32: MUL 00000f33: ADD 00000f34: PUSH1 0x20 00000f36: DUP2 00000f37: ADD 00000f38: SWAP1 00000f39: PUSH2 0x0f42 00000f3c: SWAP2 00000f3d: SWAP1 00000f3e: PUSH2 0x39fc 00000f41: JUMP 00000f42: JUMPDEST 00000f43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f58: AND 00000f59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f6e: AND 00000f6f: DUP2 00000f70: MSTORE 00000f71: PUSH1 0x20 00000f73: ADD 00000f74: SWAP1 00000f75: DUP2 00000f76: MSTORE 00000f77: PUSH1 0x20 00000f79: ADD 00000f7a: PUSH1 0x00 00000f7c: KECCAK256 00000f7d: PUSH1 0x00 00000f7f: SWAP1 00000f80: SLOAD 00000f81: SWAP1 00000f82: PUSH2 0x0100 00000f85: EXP 00000f86: SWAP1 00000f87: DIV 00000f88: PUSH1 0xff 00000f8a: AND 00000f8b: PUSH2 0x0fc9 00000f8e: JUMPI 00000f8f: PUSH1 0x40 00000f91: MLOAD 00000f92: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000fb3: DUP2 00000fb4: MSTORE 00000fb5: PUSH1 0x04 00000fb7: ADD 00000fb8: PUSH2 0x0fc0 00000fbb: SWAP1 00000fbc: PUSH2 0x410e 00000fbf: JUMP 00000fc0: JUMPDEST 00000fc1: PUSH1 0x40 00000fc3: MLOAD 00000fc4: DUP1 00000fc5: SWAP2 00000fc6: SUB 00000fc7: SWAP1 00000fc8: REVERT 00000fc9: JUMPDEST 00000fca: PUSH2 0x0ff4 00000fcd: DUP7 00000fce: DUP7 00000fcf: DUP4 00000fd0: DUP2 00000fd1: DUP2 00000fd2: LT 00000fd3: PUSH2 0x0fd8 00000fd6: JUMPI 00000fd7: INVALID 00000fd8: JUMPDEST 00000fd9: SWAP1 00000fda: POP 00000fdb: PUSH1 0x20 00000fdd: MUL 00000fde: ADD 00000fdf: PUSH1 0x20 00000fe1: DUP2 00000fe2: ADD 00000fe3: SWAP1 00000fe4: PUSH2 0x0fed 00000fe7: SWAP2 00000fe8: SWAP1 00000fe9: PUSH2 0x39fc 00000fec: JUMP 00000fed: JUMPDEST 00000fee: PUSH1 0x00 00000ff0: PUSH2 0x22bc 00000ff3: JUMP 00000ff4: JUMPDEST 00000ff5: PUSH2 0x1053 00000ff8: CALLER 00000ff9: ADDRESS 00000ffa: DUP7 00000ffb: DUP7 00000ffc: DUP6 00000ffd: DUP2 00000ffe: DUP2 00000fff: LT 00001000: PUSH2 0x1005 00001003: JUMPI 00001004: INVALID 00001005: JUMPDEST 00001006: SWAP1 00001007: POP 00001008: PUSH1 0x20 0000100a: MUL 0000100b: ADD 0000100c: CALLDATALOAD 0000100d: DUP10 0000100e: DUP10 0000100f: DUP7 00001010: DUP2 00001011: DUP2 00001012: LT 00001013: PUSH2 0x1018 00001016: JUMPI 00001017: INVALID 00001018: JUMPDEST 00001019: SWAP1 0000101a: POP 0000101b: PUSH1 0x20 0000101d: MUL 0000101e: ADD 0000101f: PUSH1 0x20 00001021: DUP2 00001022: ADD 00001023: SWAP1 00001024: PUSH2 0x102d 00001027: SWAP2 00001028: SWAP1 00001029: PUSH2 0x39fc 0000102c: JUMP 0000102d: JUMPDEST 0000102e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001043: AND 00001044: PUSH2 0x2740 00001047: SWAP1 00001048: SWAP4 00001049: SWAP3 0000104a: SWAP2 0000104b: SWAP1 0000104c: PUSH4 0xffffffff 00001051: AND 00001052: JUMP 00001053: JUMPDEST 00001054: PUSH2 0x107e 00001057: DUP7 00001058: DUP7 00001059: DUP4 0000105a: DUP2 0000105b: DUP2 0000105c: LT 0000105d: PUSH2 0x1062 00001060: JUMPI 00001061: INVALID 00001062: JUMPDEST 00001063: SWAP1 00001064: POP 00001065: PUSH1 0x20 00001067: MUL 00001068: ADD 00001069: PUSH1 0x20 0000106b: DUP2 0000106c: ADD 0000106d: SWAP1 0000106e: PUSH2 0x1077 00001071: SWAP2 00001072: SWAP1 00001073: PUSH2 0x39fc 00001076: JUMP 00001077: JUMPDEST 00001078: PUSH1 0x01 0000107a: PUSH2 0x22bc 0000107d: JUMP 0000107e: JUMPDEST 0000107f: DUP1 00001080: PUSH1 0x01 00001082: ADD 00001083: SWAP1 00001084: POP 00001085: PUSH2 0x0f15 00001088: JUMP 00001089: JUMPDEST 0000108a: POP 0000108b: POP 0000108c: PUSH2 0x1093 0000108f: PUSH2 0x2149 00001092: JUMP 00001093: JUMPDEST 00001094: POP 00001095: POP 00001096: POP 00001097: POP 00001098: JUMP 00001099: JUMPDEST 0000109a: PUSH1 0x00 0000109c: PUSH2 0x10a5 0000109f: DUP4 000010a0: DUP4 000010a1: PUSH2 0x28ec 000010a4: JUMP 000010a5: JUMPDEST 000010a6: SWAP1 000010a7: POP 000010a8: SWAP3 000010a9: SWAP2 000010aa: POP 000010ab: POP 000010ac: JUMP 000010ad: JUMPDEST 000010ae: PUSH1 0x00 000010b0: PUSH1 0x03 000010b2: SLOAD 000010b3: SWAP1 000010b4: POP 000010b5: SWAP1 000010b6: JUMP 000010b7: JUMPDEST 000010b8: PUSH1 0x00 000010ba: PUSH1 0x0a 000010bc: PUSH1 0x00 000010be: DUP4 000010bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010d4: AND 000010d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010ea: AND 000010eb: DUP2 000010ec: MSTORE 000010ed: PUSH1 0x20 000010ef: ADD 000010f0: SWAP1 000010f1: DUP2 000010f2: MSTORE 000010f3: PUSH1 0x20 000010f5: ADD 000010f6: PUSH1 0x00 000010f8: KECCAK256 000010f9: PUSH1 0x00 000010fb: ADD 000010fc: PUSH1 0x08 000010fe: SWAP1 000010ff: SLOAD 00001100: SWAP1 00001101: PUSH2 0x0100 00001104: EXP 00001105: SWAP1 00001106: DIV 00001107: PUSH8 0xffffffffffffffff 00001110: AND 00001111: PUSH8 0xffffffffffffffff 0000111a: AND 0000111b: SWAP1 0000111c: POP 0000111d: SWAP2 0000111e: SWAP1 0000111f: POP 00001120: JUMP 00001121: JUMPDEST 00001122: PUSH1 0x60 00001124: PUSH2 0x112b 00001127: PUSH2 0x1bb5 0000112a: JUMP 0000112b: JUMPDEST 0000112c: PUSH2 0x1133 0000112f: PUSH2 0x2a54 00001132: JUMP 00001133: JUMPDEST 00001134: PUSH2 0x113c 00001137: DUP5 00001138: PUSH2 0x1bd1 0000113b: JUMP 0000113c: JUMPDEST 0000113d: PUSH1 0x00 0000113f: DUP4 00001140: DUP4 00001141: SWAP1 00001142: POP 00001143: SWAP1 00001144: POP 00001145: PUSH1 0x60 00001147: DUP2 00001148: PUSH8 0xffffffffffffffff 00001151: DUP2 00001152: GT 00001153: DUP1 00001154: ISZERO 00001155: PUSH2 0x115d 00001158: JUMPI 00001159: PUSH1 0x00 0000115b: DUP1 0000115c: REVERT 0000115d: JUMPDEST 0000115e: POP 0000115f: PUSH1 0x40 00001161: MLOAD 00001162: SWAP1 00001163: DUP1 00001164: DUP3 00001165: MSTORE 00001166: DUP1 00001167: PUSH1 0x20 00001169: MUL 0000116a: PUSH1 0x20 0000116c: ADD 0000116d: DUP3 0000116e: ADD 0000116f: PUSH1 0x40 00001171: MSTORE 00001172: DUP1 00001173: ISZERO 00001174: PUSH2 0x118c 00001177: JUMPI 00001178: DUP2 00001179: PUSH1 0x20 0000117b: ADD 0000117c: PUSH1 0x20 0000117e: DUP3 0000117f: MUL 00001180: DUP1 00001181: CALLDATASIZE 00001182: DUP4 00001183: CALLDATACOPY 00001184: DUP1 00001185: DUP3 00001186: ADD 00001187: SWAP2 00001188: POP 00001189: POP 0000118a: SWAP1 0000118b: POP 0000118c: JUMPDEST 0000118d: POP 0000118e: SWAP1 0000118f: POP 00001190: PUSH1 0x00 00001192: JUMPDEST 00001193: DUP3 00001194: DUP2 00001195: LT 00001196: ISZERO 00001197: PUSH2 0x1212 0000119a: JUMPI 0000119b: PUSH2 0x11c5 0000119e: DUP7 0000119f: DUP7 000011a0: DUP4 000011a1: DUP2 000011a2: DUP2 000011a3: LT 000011a4: PUSH2 0x11a9 000011a7: JUMPI 000011a8: INVALID 000011a9: JUMPDEST 000011aa: SWAP1 000011ab: POP 000011ac: PUSH1 0x20 000011ae: MUL 000011af: ADD 000011b0: PUSH1 0x20 000011b2: DUP2 000011b3: ADD 000011b4: SWAP1 000011b5: PUSH2 0x11be 000011b8: SWAP2 000011b9: SWAP1 000011ba: PUSH2 0x39fc 000011bd: JUMP 000011be: JUMPDEST 000011bf: PUSH1 0x00 000011c1: PUSH2 0x22bc 000011c4: JUMP 000011c5: JUMPDEST 000011c6: PUSH2 0x11ef 000011c9: DUP8 000011ca: DUP8 000011cb: DUP8 000011cc: DUP5 000011cd: DUP2 000011ce: DUP2 000011cf: LT 000011d0: PUSH2 0x11d5 000011d3: JUMPI 000011d4: INVALID 000011d5: JUMPDEST 000011d6: SWAP1 000011d7: POP 000011d8: PUSH1 0x20 000011da: MUL 000011db: ADD 000011dc: PUSH1 0x20 000011de: DUP2 000011df: ADD 000011e0: SWAP1 000011e1: PUSH2 0x11ea 000011e4: SWAP2 000011e5: SWAP1 000011e6: PUSH2 0x39fc 000011e9: JUMP 000011ea: JUMPDEST 000011eb: PUSH2 0x2b60 000011ee: JUMP 000011ef: JUMPDEST 000011f0: DUP3 000011f1: DUP3 000011f2: DUP2 000011f3: MLOAD 000011f4: DUP2 000011f5: LT 000011f6: PUSH2 0x11fb 000011f9: JUMPI 000011fa: INVALID 000011fb: JUMPDEST 000011fc: PUSH1 0x20 000011fe: MUL 000011ff: PUSH1 0x20 00001201: ADD 00001202: ADD 00001203: DUP2 00001204: DUP2 00001205: MSTORE 00001206: POP 00001207: POP 00001208: DUP1 00001209: PUSH1 0x01 0000120b: ADD 0000120c: SWAP1 0000120d: POP 0000120e: PUSH2 0x1192 00001211: JUMP 00001212: JUMPDEST 00001213: POP 00001214: DUP1 00001215: SWAP3 00001216: POP 00001217: POP 00001218: POP 00001219: PUSH2 0x1220 0000121c: PUSH2 0x2149 0000121f: JUMP 00001220: JUMPDEST 00001221: SWAP4 00001222: SWAP3 00001223: POP 00001224: POP 00001225: POP 00001226: JUMP 00001227: JUMPDEST 00001228: PUSH2 0x122f 0000122b: PUSH2 0x1bb5 0000122e: JUMP 0000122f: JUMPDEST 00001230: PUSH1 0x00 00001232: DUP3 00001233: DUP3 00001234: SWAP1 00001235: POP 00001236: SWAP1 00001237: POP 00001238: PUSH1 0x00 0000123a: JUMPDEST 0000123b: DUP2 0000123c: DUP2 0000123d: LT 0000123e: ISZERO 0000123f: PUSH2 0x1278 00001242: JUMPI 00001243: PUSH2 0x126d 00001246: DUP5 00001247: DUP5 00001248: DUP4 00001249: DUP2 0000124a: DUP2 0000124b: LT 0000124c: PUSH2 0x1251 0000124f: JUMPI 00001250: INVALID 00001251: JUMPDEST 00001252: SWAP1 00001253: POP 00001254: PUSH1 0x20 00001256: MUL 00001257: ADD 00001258: PUSH1 0x20 0000125a: DUP2 0000125b: ADD 0000125c: SWAP1 0000125d: PUSH2 0x1266 00001260: SWAP2 00001261: SWAP1 00001262: PUSH2 0x39fc 00001265: JUMP 00001266: JUMPDEST 00001267: PUSH1 0x01 00001269: PUSH2 0x22bc 0000126c: JUMP 0000126d: JUMPDEST 0000126e: DUP1 0000126f: PUSH1 0x01 00001271: ADD 00001272: SWAP1 00001273: POP 00001274: PUSH2 0x123a 00001277: JUMP 00001278: JUMPDEST 00001279: POP 0000127a: POP 0000127b: PUSH2 0x1282 0000127e: PUSH2 0x2149 00001281: JUMP 00001282: JUMPDEST 00001283: POP 00001284: POP 00001285: JUMP 00001286: JUMPDEST 00001287: PUSH1 0x00 00001289: PUSH1 0x08 0000128b: PUSH1 0x00 0000128d: DUP4 0000128e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012a3: AND 000012a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012b9: AND 000012ba: DUP2 000012bb: MSTORE 000012bc: PUSH1 0x20 000012be: ADD 000012bf: SWAP1 000012c0: DUP2 000012c1: MSTORE 000012c2: PUSH1 0x20 000012c4: ADD 000012c5: PUSH1 0x00 000012c7: KECCAK256 000012c8: PUSH1 0x00 000012ca: ADD 000012cb: PUSH1 0x08 000012cd: SWAP1 000012ce: SLOAD 000012cf: SWAP1 000012d0: PUSH2 0x0100 000012d3: EXP 000012d4: SWAP1 000012d5: DIV 000012d6: PUSH8 0xffffffffffffffff 000012df: AND 000012e0: PUSH8 0xffffffffffffffff 000012e9: AND 000012ea: SWAP1 000012eb: POP 000012ec: SWAP2 000012ed: SWAP1 000012ee: POP 000012ef: JUMP 000012f0: JUMPDEST 000012f1: PUSH2 0x12f8 000012f4: PUSH2 0x1bb5 000012f7: JUMP 000012f8: JUMPDEST 000012f9: PUSH2 0x1300 000012fc: PUSH2 0x2a54 000012ff: JUMP 00001300: JUMPDEST 00001301: PUSH2 0x1308 00001304: PUSH2 0x2149 00001307: JUMP 00001308: JUMPDEST 00001309: JUMP 0000130a: JUMPDEST 0000130b: PUSH1 0x01 0000130d: PUSH1 0x00 0000130f: SWAP1 00001310: SLOAD 00001311: SWAP1 00001312: PUSH2 0x0100 00001315: EXP 00001316: SWAP1 00001317: DIV 00001318: PUSH1 0xff 0000131a: AND 0000131b: ISZERO 0000131c: PUSH2 0x135a 0000131f: JUMPI 00001320: PUSH1 0x40 00001322: MLOAD 00001323: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001344: DUP2 00001345: MSTORE 00001346: PUSH1 0x04 00001348: ADD 00001349: PUSH2 0x1351 0000134c: SWAP1 0000134d: PUSH2 0x416e 00001350: JUMP 00001351: JUMPDEST 00001352: PUSH1 0x40 00001354: MLOAD 00001355: DUP1 00001356: SWAP2 00001357: SUB 00001358: SWAP1 00001359: REVERT 0000135a: JUMPDEST 0000135b: PUSH1 0x01 0000135d: DUP1 0000135e: PUSH1 0x00 00001360: PUSH2 0x0100 00001363: EXP 00001364: DUP2 00001365: SLOAD 00001366: DUP2 00001367: PUSH1 0xff 00001369: MUL 0000136a: NOT 0000136b: AND 0000136c: SWAP1 0000136d: DUP4 0000136e: ISZERO 0000136f: ISZERO 00001370: MUL 00001371: OR 00001372: SWAP1 00001373: SSTORE 00001374: POP 00001375: PUSH1 0x00 00001377: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000138c: AND 0000138d: DUP2 0000138e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013a3: AND 000013a4: EQ 000013a5: ISZERO 000013a6: PUSH2 0x13e4 000013a9: JUMPI 000013aa: PUSH1 0x40 000013ac: MLOAD 000013ad: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000013ce: DUP2 000013cf: MSTORE 000013d0: PUSH1 0x04 000013d2: ADD 000013d3: PUSH2 0x13db 000013d6: SWAP1 000013d7: PUSH2 0x41ae 000013da: JUMP 000013db: JUMPDEST 000013dc: PUSH1 0x40 000013de: MLOAD 000013df: DUP1 000013e0: SWAP2 000013e1: SUB 000013e2: SWAP1 000013e3: REVERT 000013e4: JUMPDEST 000013e5: DUP1 000013e6: PUSH1 0x05 000013e8: PUSH1 0x00 000013ea: PUSH2 0x0100 000013ed: EXP 000013ee: DUP2 000013ef: SLOAD 000013f0: DUP2 000013f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001406: MUL 00001407: NOT 00001408: AND 00001409: SWAP1 0000140a: DUP4 0000140b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001420: AND 00001421: MUL 00001422: OR 00001423: SWAP1 00001424: SSTORE 00001425: POP 00001426: DUP3 00001427: PUSH1 0x01 00001429: DUP1 0000142a: PUSH2 0x0100 0000142d: EXP 0000142e: DUP2 0000142f: SLOAD 00001430: DUP2 00001431: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001446: MUL 00001447: NOT 00001448: AND 00001449: SWAP1 0000144a: DUP4 0000144b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001460: AND 00001461: MUL 00001462: OR 00001463: SWAP1 00001464: SSTORE 00001465: POP 00001466: PUSH2 0x146e 00001469: DUP3 0000146a: PUSH2 0x2ecc 0000146d: JUMP 0000146e: JUMPDEST 0000146f: SWAP2 00001470: POP 00001471: PUSH1 0x00 00001473: PUSH2 0x147b 00001476: TIMESTAMP 00001477: PUSH2 0x2ecc 0000147a: JUMP 0000147b: JUMPDEST 0000147c: SWAP1 0000147d: POP 0000147e: DUP1 0000147f: DUP4 00001480: LT 00001481: ISZERO 00001482: PUSH2 0x14c0 00001485: JUMPI 00001486: PUSH1 0x40 00001488: MLOAD 00001489: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000014aa: DUP2 000014ab: MSTORE 000014ac: PUSH1 0x04 000014ae: ADD 000014af: PUSH2 0x14b7 000014b2: SWAP1 000014b3: PUSH2 0x418e 000014b6: JUMP 000014b7: JUMPDEST 000014b8: PUSH1 0x40 000014ba: MLOAD 000014bb: DUP1 000014bc: SWAP2 000014bd: SUB 000014be: SWAP1 000014bf: REVERT 000014c0: JUMPDEST 000014c1: DUP1 000014c2: DUP4 000014c3: EQ 000014c4: ISZERO 000014c5: PUSH2 0x1594 000014c8: JUMPI 000014c9: PUSH1 0x00 000014cb: DUP5 000014cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014e1: AND 000014e2: PUSH4 0x7116c60c 000014e7: DUP4 000014e8: PUSH1 0x40 000014ea: MLOAD 000014eb: DUP3 000014ec: PUSH4 0xffffffff 000014f1: AND 000014f2: PUSH1 0xe0 000014f4: SHL 000014f5: DUP2 000014f6: MSTORE 000014f7: PUSH1 0x04 000014f9: ADD 000014fa: PUSH2 0x1503 000014fd: SWAP2 000014fe: SWAP1 000014ff: PUSH2 0x420e 00001502: JUMP 00001503: JUMPDEST 00001504: PUSH1 0x20 00001506: PUSH1 0x40 00001508: MLOAD 00001509: DUP1 0000150a: DUP4 0000150b: SUB 0000150c: DUP2 0000150d: DUP7 0000150e: DUP1 0000150f: EXTCODESIZE 00001510: ISZERO 00001511: DUP1 00001512: ISZERO 00001513: PUSH2 0x151b 00001516: JUMPI 00001517: PUSH1 0x00 00001519: DUP1 0000151a: REVERT 0000151b: JUMPDEST 0000151c: POP 0000151d: GAS 0000151e: STATICCALL 0000151f: ISZERO 00001520: DUP1 00001521: ISZERO 00001522: PUSH2 0x152f 00001525: JUMPI 00001526: RETURNDATASIZE 00001527: PUSH1 0x00 00001529: DUP1 0000152a: RETURNDATACOPY 0000152b: RETURNDATASIZE 0000152c: PUSH1 0x00 0000152e: REVERT 0000152f: JUMPDEST 00001530: POP 00001531: POP 00001532: POP 00001533: POP 00001534: PUSH1 0x40 00001536: MLOAD 00001537: RETURNDATASIZE 00001538: PUSH1 0x1f 0000153a: NOT 0000153b: PUSH1 0x1f 0000153d: DUP3 0000153e: ADD 0000153f: AND 00001540: DUP3 00001541: ADD 00001542: DUP1 00001543: PUSH1 0x40 00001545: MSTORE 00001546: POP 00001547: DUP2 00001548: ADD 00001549: SWAP1 0000154a: PUSH2 0x1553 0000154d: SWAP2 0000154e: SWAP1 0000154f: PUSH2 0x3b2b 00001552: JUMP 00001553: JUMPDEST 00001554: GT 00001555: PUSH2 0x1593 00001558: JUMPI 00001559: PUSH1 0x40 0000155b: MLOAD 0000155c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000157d: DUP2 0000157e: MSTORE 0000157f: PUSH1 0x04 00001581: ADD 00001582: PUSH2 0x158a 00001585: SWAP1 00001586: PUSH2 0x41ce 00001589: JUMP 0000158a: JUMPDEST 0000158b: PUSH1 0x40 0000158d: MLOAD 0000158e: DUP1 0000158f: SWAP2 00001590: SUB 00001591: SWAP1 00001592: REVERT 00001593: JUMPDEST 00001594: JUMPDEST 00001595: DUP3 00001596: PUSH1 0x02 00001598: DUP2 00001599: SWAP1 0000159a: SSTORE 0000159b: POP 0000159c: DUP3 0000159d: PUSH1 0x03 0000159f: DUP2 000015a0: SWAP1 000015a1: SSTORE 000015a2: POP 000015a3: POP 000015a4: POP 000015a5: POP 000015a6: POP 000015a7: JUMP 000015a8: JUMPDEST 000015a9: PUSH1 0x00 000015ab: PUSH2 0x15b2 000015ae: PUSH2 0x1bb5 000015b1: JUMP 000015b2: JUMPDEST 000015b3: PUSH2 0x15ba 000015b6: PUSH2 0x2a54 000015b9: JUMP 000015ba: JUMPDEST 000015bb: PUSH2 0x15c3 000015be: DUP4 000015bf: PUSH2 0x1bd1 000015c2: JUMP 000015c3: JUMPDEST 000015c4: PUSH2 0x15ce 000015c7: DUP3 000015c8: PUSH1 0x00 000015ca: PUSH2 0x22bc 000015cd: JUMP 000015ce: JUMPDEST 000015cf: PUSH1 0x00 000015d1: PUSH2 0x15da 000015d4: DUP5 000015d5: DUP5 000015d6: PUSH2 0x2b60 000015d9: JUMP 000015da: JUMPDEST 000015db: SWAP1 000015dc: POP 000015dd: DUP1 000015de: SWAP2 000015df: POP 000015e0: POP 000015e1: PUSH2 0x15e8 000015e4: PUSH2 0x2149 000015e7: JUMP 000015e8: JUMPDEST 000015e9: SWAP3 000015ea: SWAP2 000015eb: POP 000015ec: POP 000015ed: JUMP 000015ee: JUMPDEST 000015ef: PUSH1 0x00 000015f1: PUSH2 0x15fa 000015f4: DUP4 000015f5: DUP4 000015f6: PUSH2 0x2ee4 000015f9: JUMP 000015fa: JUMPDEST 000015fb: SWAP1 000015fc: POP 000015fd: SWAP3 000015fe: SWAP2 000015ff: POP 00001600: POP 00001601: JUMP 00001602: JUMPDEST 00001603: PUSH1 0x00 00001605: PUSH1 0x09 00001607: PUSH1 0x00 00001609: DUP5 0000160a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000161f: AND 00001620: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001635: AND 00001636: DUP2 00001637: MSTORE 00001638: PUSH1 0x20 0000163a: ADD 0000163b: SWAP1 0000163c: DUP2 0000163d: MSTORE 0000163e: PUSH1 0x20 00001640: ADD 00001641: PUSH1 0x00 00001643: KECCAK256 00001644: PUSH1 0x00 00001646: DUP4 00001647: DUP2 00001648: MSTORE 00001649: PUSH1 0x20 0000164b: ADD 0000164c: SWAP1 0000164d: DUP2 0000164e: MSTORE 0000164f: PUSH1 0x20 00001651: ADD 00001652: PUSH1 0x00 00001654: KECCAK256 00001655: SLOAD 00001656: SWAP1 00001657: POP 00001658: SWAP3 00001659: SWAP2 0000165a: POP 0000165b: POP 0000165c: JUMP 0000165d: JUMPDEST 0000165e: PUSH1 0x00 00001660: PUSH1 0x0b 00001662: PUSH1 0x00 00001664: DUP5 00001665: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000167a: AND 0000167b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001690: AND 00001691: DUP2 00001692: MSTORE 00001693: PUSH1 0x20 00001695: ADD 00001696: SWAP1 00001697: DUP2 00001698: MSTORE 00001699: PUSH1 0x20 0000169b: ADD 0000169c: PUSH1 0x00 0000169e: KECCAK256 0000169f: PUSH1 0x00 000016a1: DUP4 000016a2: DUP2 000016a3: MSTORE 000016a4: PUSH1 0x20 000016a6: ADD 000016a7: SWAP1 000016a8: DUP2 000016a9: MSTORE 000016aa: PUSH1 0x20 000016ac: ADD 000016ad: PUSH1 0x00 000016af: KECCAK256 000016b0: SLOAD 000016b1: SWAP1 000016b2: POP 000016b3: SWAP3 000016b4: SWAP2 000016b5: POP 000016b6: POP 000016b7: JUMP 000016b8: JUMPDEST 000016b9: PUSH1 0x60 000016bb: PUSH1 0x06 000016bd: DUP1 000016be: SLOAD 000016bf: DUP1 000016c0: PUSH1 0x20 000016c2: MUL 000016c3: PUSH1 0x20 000016c5: ADD 000016c6: PUSH1 0x40 000016c8: MLOAD 000016c9: SWAP1 000016ca: DUP2 000016cb: ADD 000016cc: PUSH1 0x40 000016ce: MSTORE 000016cf: DUP1 000016d0: SWAP3 000016d1: SWAP2 000016d2: SWAP1 000016d3: DUP2 000016d4: DUP2 000016d5: MSTORE 000016d6: PUSH1 0x20 000016d8: ADD 000016d9: DUP3 000016da: DUP1 000016db: SLOAD 000016dc: DUP1 000016dd: ISZERO 000016de: PUSH2 0x173c 000016e1: JUMPI 000016e2: PUSH1 0x20 000016e4: MUL 000016e5: DUP3 000016e6: ADD 000016e7: SWAP2 000016e8: SWAP1 000016e9: PUSH1 0x00 000016eb: MSTORE 000016ec: PUSH1 0x20 000016ee: PUSH1 0x00 000016f0: KECCAK256 000016f1: SWAP1 000016f2: JUMPDEST 000016f3: DUP2 000016f4: PUSH1 0x00 000016f6: SWAP1 000016f7: SLOAD 000016f8: SWAP1 000016f9: PUSH2 0x0100 000016fc: EXP 000016fd: SWAP1 000016fe: DIV 000016ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001714: AND 00001715: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000172a: AND 0000172b: DUP2 0000172c: MSTORE 0000172d: PUSH1 0x20 0000172f: ADD 00001730: SWAP1 00001731: PUSH1 0x01 00001733: ADD 00001734: SWAP1 00001735: DUP1 00001736: DUP4 00001737: GT 00001738: PUSH2 0x16f2 0000173b: JUMPI 0000173c: JUMPDEST 0000173d: POP 0000173e: POP 0000173f: POP 00001740: POP 00001741: POP 00001742: SWAP1 00001743: POP 00001744: SWAP1 00001745: JUMP 00001746: JUMPDEST 00001747: PUSH1 0x07 00001749: PUSH1 0x20 0000174b: MSTORE 0000174c: DUP1 0000174d: PUSH1 0x00 0000174f: MSTORE 00001750: PUSH1 0x40 00001752: PUSH1 0x00 00001754: KECCAK256 00001755: PUSH1 0x00 00001757: SWAP2 00001758: POP 00001759: SLOAD 0000175a: SWAP1 0000175b: PUSH2 0x0100 0000175e: EXP 0000175f: SWAP1 00001760: DIV 00001761: PUSH1 0xff 00001763: AND 00001764: DUP2 00001765: JUMP 00001766: JUMPDEST 00001767: CALLER 00001768: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000177d: AND 0000177e: PUSH1 0x05 00001780: PUSH1 0x00 00001782: SWAP1 00001783: SLOAD 00001784: SWAP1 00001785: PUSH2 0x0100 00001788: EXP 00001789: SWAP1 0000178a: DIV 0000178b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017a0: AND 000017a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017b6: AND 000017b7: EQ 000017b8: PUSH2 0x17f6 000017bb: JUMPI 000017bc: PUSH1 0x40 000017be: MLOAD 000017bf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000017e0: DUP2 000017e1: MSTORE 000017e2: PUSH1 0x04 000017e4: ADD 000017e5: PUSH2 0x17ed 000017e8: SWAP1 000017e9: PUSH2 0x41ee 000017ec: JUMP 000017ed: JUMPDEST 000017ee: PUSH1 0x40 000017f0: MLOAD 000017f1: DUP1 000017f2: SWAP2 000017f3: SUB 000017f4: SWAP1 000017f5: REVERT 000017f6: JUMPDEST 000017f7: PUSH1 0x00 000017f9: JUMPDEST 000017fa: DUP3 000017fb: DUP3 000017fc: SWAP1 000017fd: POP 000017fe: DUP2 000017ff: LT 00001800: ISZERO 00001801: PUSH2 0x1a1c 00001804: JUMPI 00001805: PUSH1 0x07 00001807: PUSH1 0x00 00001809: DUP5 0000180a: DUP5 0000180b: DUP5 0000180c: DUP2 0000180d: DUP2 0000180e: LT 0000180f: PUSH2 0x1814 00001812: JUMPI 00001813: INVALID 00001814: JUMPDEST 00001815: SWAP1 00001816: POP 00001817: PUSH1 0x20 00001819: MUL 0000181a: ADD 0000181b: PUSH1 0x20 0000181d: DUP2 0000181e: ADD 0000181f: SWAP1 00001820: PUSH2 0x1829 00001823: SWAP2 00001824: SWAP1 00001825: PUSH2 0x37db 00001828: JUMP 00001829: JUMPDEST 0000182a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000183f: AND 00001840: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001855: AND 00001856: DUP2 00001857: MSTORE 00001858: PUSH1 0x20 0000185a: ADD 0000185b: SWAP1 0000185c: DUP2 0000185d: MSTORE 0000185e: PUSH1 0x20 00001860: ADD 00001861: PUSH1 0x00 00001863: KECCAK256 00001864: PUSH1 0x00 00001866: SWAP1 00001867: SLOAD 00001868: SWAP1 00001869: PUSH2 0x0100 0000186c: EXP 0000186d: SWAP1 0000186e: DIV 0000186f: PUSH1 0xff 00001871: AND 00001872: ISZERO 00001873: PUSH2 0x18b1 00001876: JUMPI 00001877: PUSH1 0x40 00001879: MLOAD 0000187a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000189b: DUP2 0000189c: MSTORE 0000189d: PUSH1 0x04 0000189f: ADD 000018a0: PUSH2 0x18a8 000018a3: SWAP1 000018a4: PUSH2 0x40ee 000018a7: JUMP 000018a8: JUMPDEST 000018a9: PUSH1 0x40 000018ab: MLOAD 000018ac: DUP1 000018ad: SWAP2 000018ae: SUB 000018af: SWAP1 000018b0: REVERT 000018b1: JUMPDEST 000018b2: PUSH1 0x01 000018b4: PUSH1 0x07 000018b6: PUSH1 0x00 000018b8: DUP6 000018b9: DUP6 000018ba: DUP6 000018bb: DUP2 000018bc: DUP2 000018bd: LT 000018be: PUSH2 0x18c3 000018c1: JUMPI 000018c2: INVALID 000018c3: JUMPDEST 000018c4: SWAP1 000018c5: POP 000018c6: PUSH1 0x20 000018c8: MUL 000018c9: ADD 000018ca: PUSH1 0x20 000018cc: DUP2 000018cd: ADD 000018ce: SWAP1 000018cf: PUSH2 0x18d8 000018d2: SWAP2 000018d3: SWAP1 000018d4: PUSH2 0x37db 000018d7: JUMP 000018d8: JUMPDEST 000018d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018ee: AND 000018ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001904: AND 00001905: DUP2 00001906: MSTORE 00001907: PUSH1 0x20 00001909: ADD 0000190a: SWAP1 0000190b: DUP2 0000190c: MSTORE 0000190d: PUSH1 0x20 0000190f: ADD 00001910: PUSH1 0x00 00001912: KECCAK256 00001913: PUSH1 0x00 00001915: PUSH2 0x0100 00001918: EXP 00001919: DUP2 0000191a: SLOAD 0000191b: DUP2 0000191c: PUSH1 0xff 0000191e: MUL 0000191f: NOT 00001920: AND 00001921: SWAP1 00001922: DUP4 00001923: ISZERO 00001924: ISZERO 00001925: MUL 00001926: OR 00001927: SWAP1 00001928: SSTORE 00001929: POP 0000192a: PUSH1 0x06 0000192c: DUP4 0000192d: DUP4 0000192e: DUP4 0000192f: DUP2 00001930: DUP2 00001931: LT 00001932: PUSH2 0x1937 00001935: JUMPI 00001936: INVALID 00001937: JUMPDEST 00001938: SWAP1 00001939: POP 0000193a: PUSH1 0x20 0000193c: MUL 0000193d: ADD 0000193e: PUSH1 0x20 00001940: DUP2 00001941: ADD 00001942: SWAP1 00001943: PUSH2 0x194c 00001946: SWAP2 00001947: SWAP1 00001948: PUSH2 0x37db 0000194b: JUMP 0000194c: JUMPDEST 0000194d: SWAP1 0000194e: DUP1 0000194f: PUSH1 0x01 00001951: DUP2 00001952: SLOAD 00001953: ADD 00001954: DUP1 00001955: DUP3 00001956: SSTORE 00001957: DUP1 00001958: SWAP2 00001959: POP 0000195a: POP 0000195b: PUSH1 0x01 0000195d: SWAP1 0000195e: SUB 0000195f: SWAP1 00001960: PUSH1 0x00 00001962: MSTORE 00001963: PUSH1 0x20 00001965: PUSH1 0x00 00001967: KECCAK256 00001968: ADD 00001969: PUSH1 0x00 0000196b: SWAP1 0000196c: SWAP2 0000196d: SWAP1 0000196e: SWAP2 0000196f: SWAP1 00001970: SWAP2 00001971: PUSH2 0x0100 00001974: EXP 00001975: DUP2 00001976: SLOAD 00001977: DUP2 00001978: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000198d: MUL 0000198e: NOT 0000198f: AND 00001990: SWAP1 00001991: DUP4 00001992: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019a7: AND 000019a8: MUL 000019a9: OR 000019aa: SWAP1 000019ab: SSTORE 000019ac: POP 000019ad: DUP3 000019ae: DUP3 000019af: DUP3 000019b0: DUP2 000019b1: DUP2 000019b2: LT 000019b3: PUSH2 0x19b8 000019b6: JUMPI 000019b7: INVALID 000019b8: JUMPDEST 000019b9: SWAP1 000019ba: POP 000019bb: PUSH1 0x20 000019bd: MUL 000019be: ADD 000019bf: PUSH1 0x20 000019c1: DUP2 000019c2: ADD 000019c3: SWAP1 000019c4: PUSH2 0x19cd 000019c7: SWAP2 000019c8: SWAP1 000019c9: PUSH2 0x37db 000019cc: JUMP 000019cd: JUMPDEST 000019ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019e3: AND 000019e4: PUSH32 0x784c8f4dbf0ffedd6e72c76501c545a70f8b203b30a26ce542bf92ba87c248a4 00001a05: PUSH1 0x40 00001a07: MLOAD 00001a08: PUSH1 0x40 00001a0a: MLOAD 00001a0b: DUP1 00001a0c: SWAP2 00001a0d: SUB 00001a0e: SWAP1 00001a0f: LOG2 00001a10: DUP1 00001a11: DUP1 00001a12: PUSH1 0x01 00001a14: ADD 00001a15: SWAP2 00001a16: POP 00001a17: POP 00001a18: PUSH2 0x17f9 00001a1b: JUMP 00001a1c: JUMPDEST 00001a1d: POP 00001a1e: POP 00001a1f: POP 00001a20: JUMP 00001a21: JUMPDEST 00001a22: PUSH1 0x05 00001a24: PUSH1 0x00 00001a26: SWAP1 00001a27: SLOAD 00001a28: SWAP1 00001a29: PUSH2 0x0100 00001a2c: EXP 00001a2d: SWAP1 00001a2e: DIV 00001a2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a44: AND 00001a45: DUP2 00001a46: JUMP 00001a47: JUMPDEST 00001a48: CALLER 00001a49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a5e: AND 00001a5f: PUSH1 0x05 00001a61: PUSH1 0x00 00001a63: SWAP1 00001a64: SLOAD 00001a65: SWAP1 00001a66: PUSH2 0x0100 00001a69: EXP 00001a6a: SWAP1 00001a6b: DIV 00001a6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a81: AND 00001a82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a97: AND 00001a98: EQ 00001a99: PUSH2 0x1ad7 00001a9c: JUMPI 00001a9d: PUSH1 0x40 00001a9f: MLOAD 00001aa0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001ac1: DUP2 00001ac2: MSTORE 00001ac3: PUSH1 0x04 00001ac5: ADD 00001ac6: PUSH2 0x1ace 00001ac9: SWAP1 00001aca: PUSH2 0x41ee 00001acd: JUMP 00001ace: JUMPDEST 00001acf: PUSH1 0x40 00001ad1: MLOAD 00001ad2: DUP1 00001ad3: SWAP2 00001ad4: SUB 00001ad5: SWAP1 00001ad6: REVERT 00001ad7: JUMPDEST 00001ad8: PUSH1 0x00 00001ada: DUP2 00001adb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001af0: AND 00001af1: PUSH4 0x70a08231 00001af6: ADDRESS 00001af7: PUSH1 0x40 00001af9: MLOAD 00001afa: DUP3 00001afb: PUSH4 0xffffffff 00001b00: AND 00001b01: PUSH1 0xe0 00001b03: SHL 00001b04: DUP2 00001b05: MSTORE 00001b06: PUSH1 0x04 00001b08: ADD 00001b09: PUSH2 0x1b12 00001b0c: SWAP2 00001b0d: SWAP1 00001b0e: PUSH2 0x3f7d 00001b11: JUMP 00001b12: JUMPDEST 00001b13: PUSH1 0x20 00001b15: PUSH1 0x40 00001b17: MLOAD 00001b18: DUP1 00001b19: DUP4 00001b1a: SUB 00001b1b: DUP2 00001b1c: DUP7 00001b1d: DUP1 00001b1e: EXTCODESIZE 00001b1f: ISZERO 00001b20: DUP1 00001b21: ISZERO 00001b22: PUSH2 0x1b2a 00001b25: JUMPI 00001b26: PUSH1 0x00 00001b28: DUP1 00001b29: REVERT 00001b2a: JUMPDEST 00001b2b: POP 00001b2c: GAS 00001b2d: STATICCALL 00001b2e: ISZERO 00001b2f: DUP1 00001b30: ISZERO 00001b31: PUSH2 0x1b3e 00001b34: JUMPI 00001b35: RETURNDATASIZE 00001b36: PUSH1 0x00 00001b38: DUP1 00001b39: RETURNDATACOPY 00001b3a: RETURNDATASIZE 00001b3b: PUSH1 0x00 00001b3d: REVERT 00001b3e: JUMPDEST 00001b3f: POP 00001b40: POP 00001b41: POP 00001b42: POP 00001b43: PUSH1 0x40 00001b45: MLOAD 00001b46: RETURNDATASIZE 00001b47: PUSH1 0x1f 00001b49: NOT 00001b4a: PUSH1 0x1f 00001b4c: DUP3 00001b4d: ADD 00001b4e: AND 00001b4f: DUP3 00001b50: ADD 00001b51: DUP1 00001b52: PUSH1 0x40 00001b54: MSTORE 00001b55: POP 00001b56: DUP2 00001b57: ADD 00001b58: SWAP1 00001b59: PUSH2 0x1b62 00001b5c: SWAP2 00001b5d: SWAP1 00001b5e: PUSH2 0x3b2b 00001b61: JUMP 00001b62: JUMPDEST 00001b63: SWAP1 00001b64: POP 00001b65: PUSH2 0x1bb1 00001b68: PUSH1 0x05 00001b6a: PUSH1 0x00 00001b6c: SWAP1 00001b6d: SLOAD 00001b6e: SWAP1 00001b6f: PUSH2 0x0100 00001b72: EXP 00001b73: SWAP1 00001b74: DIV 00001b75: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b8a: AND 00001b8b: DUP3 00001b8c: DUP5 00001b8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ba2: AND 00001ba3: PUSH2 0x30b5 00001ba6: SWAP1 00001ba7: SWAP3 00001ba8: SWAP2 00001ba9: SWAP1 00001baa: PUSH4 0xffffffff 00001baf: AND 00001bb0: JUMP 00001bb1: JUMPDEST 00001bb2: POP 00001bb3: POP 00001bb4: JUMP 00001bb5: JUMPDEST 00001bb6: PUSH2 0x1bc7 00001bb9: PUSH1 0x02 00001bbb: PUSH1 0x00 00001bbd: SLOAD 00001bbe: EQ 00001bbf: ISZERO 00001bc0: PUSH2 0x0190 00001bc3: PUSH2 0x313b 00001bc6: JUMP 00001bc7: JUMPDEST 00001bc8: PUSH1 0x02 00001bca: PUSH1 0x00 00001bcc: DUP2 00001bcd: SWAP1 00001bce: SSTORE 00001bcf: POP 00001bd0: JUMP 00001bd1: JUMPDEST 00001bd2: PUSH1 0x00 00001bd4: PUSH1 0x01 00001bd6: DUP1 00001bd7: SLOAD 00001bd8: SWAP1 00001bd9: PUSH2 0x0100 00001bdc: EXP 00001bdd: SWAP1 00001bde: DIV 00001bdf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bf4: AND 00001bf5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c0a: AND 00001c0b: PUSH4 0x010ae757 00001c10: DUP4 00001c11: PUSH1 0x40 00001c13: MLOAD 00001c14: DUP3 00001c15: PUSH4 0xffffffff 00001c1a: AND 00001c1b: PUSH1 0xe0 00001c1d: SHL 00001c1e: DUP2 00001c1f: MSTORE 00001c20: PUSH1 0x04 00001c22: ADD 00001c23: PUSH2 0x1c2c 00001c26: SWAP2 00001c27: SWAP1 00001c28: PUSH2 0x3f7d 00001c2b: JUMP 00001c2c: JUMPDEST 00001c2d: PUSH1 0x20 00001c2f: PUSH1 0x40 00001c31: MLOAD 00001c32: DUP1 00001c33: DUP4 00001c34: SUB 00001c35: DUP2 00001c36: DUP7 00001c37: DUP1 00001c38: EXTCODESIZE 00001c39: ISZERO 00001c3a: DUP1 00001c3b: ISZERO 00001c3c: PUSH2 0x1c44 00001c3f: JUMPI 00001c40: PUSH1 0x00 00001c42: DUP1 00001c43: REVERT 00001c44: JUMPDEST 00001c45: POP 00001c46: GAS 00001c47: STATICCALL 00001c48: ISZERO 00001c49: DUP1 00001c4a: ISZERO 00001c4b: PUSH2 0x1c58 00001c4e: JUMPI 00001c4f: RETURNDATASIZE 00001c50: PUSH1 0x00 00001c52: DUP1 00001c53: RETURNDATACOPY 00001c54: RETURNDATASIZE 00001c55: PUSH1 0x00 00001c57: REVERT 00001c58: JUMPDEST 00001c59: POP 00001c5a: POP 00001c5b: POP 00001c5c: POP 00001c5d: PUSH1 0x40 00001c5f: MLOAD 00001c60: RETURNDATASIZE 00001c61: PUSH1 0x1f 00001c63: NOT 00001c64: PUSH1 0x1f 00001c66: DUP3 00001c67: ADD 00001c68: AND 00001c69: DUP3 00001c6a: ADD 00001c6b: DUP1 00001c6c: PUSH1 0x40 00001c6e: MSTORE 00001c6f: POP 00001c70: DUP2 00001c71: ADD 00001c72: SWAP1 00001c73: PUSH2 0x1c7c 00001c76: SWAP2 00001c77: SWAP1 00001c78: PUSH2 0x3b2b 00001c7b: JUMP 00001c7c: JUMPDEST 00001c7d: SWAP1 00001c7e: POP 00001c7f: PUSH1 0x00 00001c81: DUP2 00001c82: EQ 00001c83: ISZERO 00001c84: PUSH2 0x1c8d 00001c87: JUMPI 00001c88: POP 00001c89: PUSH2 0x2146 00001c8c: JUMP 00001c8d: JUMPDEST 00001c8e: PUSH1 0x00 00001c90: PUSH1 0x0a 00001c92: PUSH1 0x00 00001c94: DUP5 00001c95: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001caa: AND 00001cab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cc0: AND 00001cc1: DUP2 00001cc2: MSTORE 00001cc3: PUSH1 0x20 00001cc5: ADD 00001cc6: SWAP1 00001cc7: DUP2 00001cc8: MSTORE 00001cc9: PUSH1 0x20 00001ccb: ADD 00001ccc: PUSH1 0x00 00001cce: KECCAK256 00001ccf: SWAP1 00001cd0: POP 00001cd1: PUSH1 0x00 00001cd3: DUP2 00001cd4: PUSH1 0x00 00001cd6: ADD 00001cd7: PUSH1 0x08 00001cd9: SWAP1 00001cda: SLOAD 00001cdb: SWAP1 00001cdc: PUSH2 0x0100 00001cdf: EXP 00001ce0: SWAP1 00001ce1: DIV 00001ce2: PUSH8 0xffffffffffffffff 00001ceb: AND 00001cec: PUSH8 0xffffffffffffffff 00001cf5: AND 00001cf6: SWAP1 00001cf7: POP 00001cf8: PUSH1 0x00 00001cfa: DUP1 00001cfb: DUP3 00001cfc: EQ 00001cfd: ISZERO 00001cfe: PUSH2 0x1d17 00001d01: JUMPI 00001d02: PUSH2 0x1d10 00001d05: DUP6 00001d06: PUSH1 0x02 00001d08: SLOAD 00001d09: PUSH1 0x00 00001d0b: DUP8 00001d0c: PUSH2 0x314e 00001d0f: JUMP 00001d10: JUMPDEST 00001d11: SWAP1 00001d12: POP 00001d13: PUSH2 0x1d77 00001d16: JUMP 00001d17: JUMPDEST 00001d18: TIMESTAMP 00001d19: DUP3 00001d1a: LT 00001d1b: PUSH2 0x1d27 00001d1e: JUMPI 00001d1f: POP 00001d20: POP 00001d21: POP 00001d22: POP 00001d23: PUSH2 0x2146 00001d26: JUMP 00001d27: JUMPDEST 00001d28: DUP3 00001d29: PUSH1 0x00 00001d2b: ADD 00001d2c: PUSH1 0x10 00001d2e: SWAP1 00001d2f: SLOAD 00001d30: SWAP1 00001d31: PUSH2 0x0100 00001d34: EXP 00001d35: SWAP1 00001d36: DIV 00001d37: PUSH16 0xffffffffffffffffffffffffffffffff 00001d48: AND 00001d49: PUSH16 0xffffffffffffffffffffffffffffffff 00001d5a: AND 00001d5b: SWAP1 00001d5c: POP 00001d5d: PUSH1 0x14 00001d5f: DUP2 00001d60: DUP6 00001d61: SUB 00001d62: GT 00001d63: ISZERO 00001d64: PUSH2 0x1d76 00001d67: JUMPI 00001d68: PUSH2 0x1d73 00001d6b: DUP6 00001d6c: DUP4 00001d6d: DUP4 00001d6e: DUP8 00001d6f: PUSH2 0x314e 00001d72: JUMP 00001d73: JUMPDEST 00001d74: SWAP1 00001d75: POP 00001d76: JUMPDEST 00001d77: JUMPDEST 00001d78: PUSH1 0x00 00001d7a: DUP2 00001d7b: EQ 00001d7c: ISZERO 00001d7d: PUSH2 0x1d85 00001d80: JUMPI 00001d81: PUSH1 0x01 00001d83: SWAP1 00001d84: POP 00001d85: JUMPDEST 00001d86: PUSH2 0x1d8d 00001d89: PUSH2 0x35c8 00001d8c: JUMP 00001d8d: JUMPDEST 00001d8e: PUSH1 0x01 00001d90: DUP1 00001d91: SLOAD 00001d92: SWAP1 00001d93: PUSH2 0x0100 00001d96: EXP 00001d97: SWAP1 00001d98: DIV 00001d99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dae: AND 00001daf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dc4: AND 00001dc5: PUSH4 0x28d09d47 00001dca: DUP8 00001dcb: DUP5 00001dcc: PUSH1 0x40 00001dce: MLOAD 00001dcf: DUP4 00001dd0: PUSH4 0xffffffff 00001dd5: AND 00001dd6: PUSH1 0xe0 00001dd8: SHL 00001dd9: DUP2 00001dda: MSTORE 00001ddb: PUSH1 0x04 00001ddd: ADD 00001dde: PUSH2 0x1de8 00001de1: SWAP3 00001de2: SWAP2 00001de3: SWAP1 00001de4: PUSH2 0x4014 00001de7: JUMP 00001de8: JUMPDEST 00001de9: PUSH1 0x80 00001deb: PUSH1 0x40 00001ded: MLOAD 00001dee: DUP1 00001def: DUP4 00001df0: SUB 00001df1: DUP2 00001df2: DUP7 00001df3: DUP1 00001df4: EXTCODESIZE 00001df5: ISZERO 00001df6: DUP1 00001df7: ISZERO 00001df8: PUSH2 0x1e00 00001dfb: JUMPI 00001dfc: PUSH1 0x00 00001dfe: DUP1 00001dff: REVERT 00001e00: JUMPDEST 00001e01: POP 00001e02: GAS 00001e03: STATICCALL 00001e04: ISZERO 00001e05: DUP1 00001e06: ISZERO 00001e07: PUSH2 0x1e14 00001e0a: JUMPI 00001e0b: RETURNDATASIZE 00001e0c: PUSH1 0x00 00001e0e: DUP1 00001e0f: RETURNDATACOPY 00001e10: RETURNDATASIZE 00001e11: PUSH1 0x00 00001e13: REVERT 00001e14: JUMPDEST 00001e15: POP 00001e16: POP 00001e17: POP 00001e18: POP 00001e19: PUSH1 0x40 00001e1b: MLOAD 00001e1c: RETURNDATASIZE 00001e1d: PUSH1 0x1f 00001e1f: NOT 00001e20: PUSH1 0x1f 00001e22: DUP3 00001e23: ADD 00001e24: AND 00001e25: DUP3 00001e26: ADD 00001e27: DUP1 00001e28: PUSH1 0x40 00001e2a: MSTORE 00001e2b: POP 00001e2c: DUP2 00001e2d: ADD 00001e2e: SWAP1 00001e2f: PUSH2 0x1e38 00001e32: SWAP2 00001e33: SWAP1 00001e34: PUSH2 0x3ad9 00001e37: JUMP 00001e38: JUMPDEST 00001e39: SWAP1 00001e3a: POP 00001e3b: PUSH1 0x00 00001e3d: DUP4 00001e3e: EQ 00001e3f: ISZERO 00001e40: PUSH2 0x1ecd 00001e43: JUMPI 00001e44: PUSH1 0x02 00001e46: SLOAD 00001e47: TIMESTAMP 00001e48: GT 00001e49: PUSH2 0x1e87 00001e4c: JUMPI 00001e4d: PUSH1 0x40 00001e4f: MLOAD 00001e50: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001e71: DUP2 00001e72: MSTORE 00001e73: PUSH1 0x04 00001e75: ADD 00001e76: PUSH2 0x1e7e 00001e79: SWAP1 00001e7a: PUSH2 0x414e 00001e7d: JUMP 00001e7e: JUMPDEST 00001e7f: PUSH1 0x40 00001e81: MLOAD 00001e82: DUP1 00001e83: SWAP2 00001e84: SUB 00001e85: SWAP1 00001e86: REVERT 00001e87: JUMPDEST 00001e88: PUSH2 0x1e9f 00001e8b: PUSH1 0x02 00001e8d: SLOAD 00001e8e: PUSH2 0x1e9a 00001e91: DUP4 00001e92: PUSH1 0x40 00001e94: ADD 00001e95: MLOAD 00001e96: PUSH2 0x326e 00001e99: JUMP 00001e9a: JUMPDEST 00001e9b: PUSH2 0x3288 00001e9e: JUMP 00001e9f: JUMPDEST 00001ea0: SWAP3 00001ea1: POP 00001ea2: DUP3 00001ea3: DUP5 00001ea4: PUSH1 0x00 00001ea6: ADD 00001ea7: PUSH1 0x00 00001ea9: PUSH2 0x0100 00001eac: EXP 00001ead: DUP2 00001eae: SLOAD 00001eaf: DUP2 00001eb0: PUSH8 0xffffffffffffffff 00001eb9: MUL 00001eba: NOT 00001ebb: AND 00001ebc: SWAP1 00001ebd: DUP4 00001ebe: PUSH8 0xffffffffffffffff 00001ec7: AND 00001ec8: MUL 00001ec9: OR 00001eca: SWAP1 00001ecb: SSTORE 00001ecc: POP 00001ecd: JUMPDEST 00001ece: PUSH2 0x1ed5 00001ed1: PUSH2 0x35c8 00001ed4: JUMP 00001ed5: JUMPDEST 00001ed6: PUSH1 0x00 00001ed8: JUMPDEST 00001ed9: PUSH1 0x32 00001edb: DUP2 00001edc: LT 00001edd: ISZERO 00001ede: PUSH2 0x20cb 00001ee1: JUMPI 00001ee2: DUP3 00001ee3: PUSH1 0x40 00001ee5: ADD 00001ee6: MLOAD 00001ee7: DUP6 00001ee8: LT 00001ee9: ISZERO 00001eea: DUP1 00001eeb: ISZERO 00001eec: PUSH2 0x1ef5 00001eef: JUMPI 00001ef0: POP 00001ef1: DUP7 00001ef2: DUP5 00001ef3: GT 00001ef4: ISZERO 00001ef5: JUMPDEST 00001ef6: ISZERO 00001ef7: PUSH2 0x1ff0 00001efa: JUMPI 00001efb: PUSH1 0x01 00001efd: DUP5 00001efe: ADD 00001eff: SWAP4 00001f00: POP 00001f01: DUP3 00001f02: SWAP2 00001f03: POP 00001f04: DUP7 00001f05: DUP5 00001f06: GT 00001f07: ISZERO 00001f08: PUSH2 0x1f3d 00001f0b: JUMPI 00001f0c: PUSH1 0x40 00001f0e: MLOAD 00001f0f: DUP1 00001f10: PUSH1 0x80 00001f12: ADD 00001f13: PUSH1 0x40 00001f15: MSTORE 00001f16: DUP1 00001f17: PUSH1 0x00 00001f19: PUSH1 0x0f 00001f1b: SIGNEXTEND 00001f1c: DUP2 00001f1d: MSTORE 00001f1e: PUSH1 0x20 00001f20: ADD 00001f21: PUSH1 0x00 00001f23: PUSH1 0x0f 00001f25: SIGNEXTEND 00001f26: DUP2 00001f27: MSTORE 00001f28: PUSH1 0x20 00001f2a: ADD 00001f2b: PUSH1 0x00 00001f2d: DUP2 00001f2e: MSTORE 00001f2f: PUSH1 0x20 00001f31: ADD 00001f32: PUSH1 0x00 00001f34: DUP2 00001f35: MSTORE 00001f36: POP 00001f37: SWAP3 00001f38: POP 00001f39: PUSH2 0x1feb 00001f3c: JUMP 00001f3d: JUMPDEST 00001f3e: PUSH1 0x01 00001f40: DUP1 00001f41: SLOAD 00001f42: SWAP1 00001f43: PUSH2 0x0100 00001f46: EXP 00001f47: SWAP1 00001f48: DIV 00001f49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f5e: AND 00001f5f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f74: AND 00001f75: PUSH4 0x28d09d47 00001f7a: DUP10 00001f7b: DUP7 00001f7c: PUSH1 0x40 00001f7e: MLOAD 00001f7f: DUP4 00001f80: PUSH4 0xffffffff 00001f85: AND 00001f86: PUSH1 0xe0 00001f88: SHL 00001f89: DUP2 00001f8a: MSTORE 00001f8b: PUSH1 0x04 00001f8d: ADD 00001f8e: PUSH2 0x1f98 00001f91: SWAP3 00001f92: SWAP2 00001f93: SWAP1 00001f94: PUSH2 0x4014 00001f97: JUMP 00001f98: JUMPDEST 00001f99: PUSH1 0x80 00001f9b: PUSH1 0x40 00001f9d: MLOAD 00001f9e: DUP1 00001f9f: DUP4 00001fa0: SUB 00001fa1: DUP2 00001fa2: DUP7 00001fa3: DUP1 00001fa4: EXTCODESIZE 00001fa5: ISZERO 00001fa6: DUP1 00001fa7: ISZERO 00001fa8: PUSH2 0x1fb0 00001fab: JUMPI 00001fac: PUSH1 0x00 00001fae: DUP1 00001faf: REVERT 00001fb0: JUMPDEST 00001fb1: POP 00001fb2: GAS 00001fb3: STATICCALL 00001fb4: ISZERO 00001fb5: DUP1 00001fb6: ISZERO 00001fb7: PUSH2 0x1fc4 00001fba: JUMPI 00001fbb: RETURNDATASIZE 00001fbc: PUSH1 0x00 00001fbe: DUP1 00001fbf: RETURNDATACOPY 00001fc0: RETURNDATASIZE 00001fc1: PUSH1 0x00 00001fc3: REVERT 00001fc4: JUMPDEST 00001fc5: POP 00001fc6: POP 00001fc7: POP 00001fc8: POP 00001fc9: PUSH1 0x40 00001fcb: MLOAD 00001fcc: RETURNDATASIZE 00001fcd: PUSH1 0x1f 00001fcf: NOT 00001fd0: PUSH1 0x1f 00001fd2: DUP3 00001fd3: ADD 00001fd4: AND 00001fd5: DUP3 00001fd6: ADD 00001fd7: DUP1 00001fd8: PUSH1 0x40 00001fda: MSTORE 00001fdb: POP 00001fdc: DUP2 00001fdd: ADD 00001fde: SWAP1 00001fdf: PUSH2 0x1fe8 00001fe2: SWAP2 00001fe3: SWAP1 00001fe4: PUSH2 0x3ad9 00001fe7: JUMP 00001fe8: JUMPDEST 00001fe9: SWAP3 00001fea: POP 00001feb: JUMPDEST 00001fec: PUSH2 0x20c0 00001fef: JUMP 00001ff0: JUMPDEST 00001ff1: TIMESTAMP 00001ff2: DUP6 00001ff3: LT 00001ff4: PUSH2 0x1ffc 00001ff7: JUMPI 00001ff8: PUSH2 0x20cb 00001ffb: JUMP 00001ffc: JUMPDEST 00001ffd: PUSH1 0x00 00001fff: DUP3 00002000: PUSH1 0x40 00002002: ADD 00002003: MLOAD 00002004: DUP7 00002005: SUB 00002006: SWAP1 00002007: POP 00002008: PUSH1 0x00 0000200a: DUP2 0000200b: DUP5 0000200c: PUSH1 0x20 0000200e: ADD 0000200f: MLOAD 00002010: MUL 00002011: PUSH1 0x0f 00002013: SIGNEXTEND 00002014: DUP5 00002015: PUSH1 0x00 00002017: ADD 00002018: MLOAD 00002019: PUSH1 0x0f 0000201b: SIGNEXTEND 0000201c: SGT 0000201d: PUSH2 0x2027 00002020: JUMPI 00002021: PUSH1 0x00 00002023: PUSH2 0x2038 00002026: JUMP 00002027: JUMPDEST 00002028: DUP2 00002029: DUP5 0000202a: PUSH1 0x20 0000202c: ADD 0000202d: MLOAD 0000202e: MUL 0000202f: DUP5 00002030: PUSH1 0x00 00002032: ADD 00002033: MLOAD 00002034: SUB 00002035: PUSH1 0x0f 00002037: SIGNEXTEND 00002038: JUMPDEST 00002039: SWAP1 0000203a: POP 0000203b: PUSH1 0x00 0000203d: DUP2 0000203e: EQ 0000203f: DUP1 00002040: ISZERO 00002041: PUSH2 0x2049 00002044: JUMPI 00002045: POP 00002046: DUP9 00002047: DUP7 00002048: GT 00002049: JUMPDEST 0000204a: ISZERO 0000204b: PUSH2 0x2060 0000204e: JUMPI 0000204f: PUSH2 0x2057 00002052: TIMESTAMP 00002053: PUSH2 0x326e 00002056: JUMP 00002057: JUMPDEST 00002058: SWAP7 00002059: POP 0000205a: POP 0000205b: POP 0000205c: PUSH2 0x20cb 0000205f: JUMP 00002060: JUMPDEST 00002061: DUP1 00002062: PUSH1 0x0b 00002064: PUSH1 0x00 00002066: DUP13 00002067: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000207c: AND 0000207d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002092: AND 00002093: DUP2 00002094: MSTORE 00002095: PUSH1 0x20 00002097: ADD 00002098: SWAP1 00002099: DUP2 0000209a: MSTORE 0000209b: PUSH1 0x20 0000209d: ADD 0000209e: PUSH1 0x00 000020a0: KECCAK256 000020a1: PUSH1 0x00 000020a3: DUP10 000020a4: DUP2 000020a5: MSTORE 000020a6: PUSH1 0x20 000020a8: ADD 000020a9: SWAP1 000020aa: DUP2 000020ab: MSTORE 000020ac: PUSH1 0x20 000020ae: ADD 000020af: PUSH1 0x00 000020b1: KECCAK256 000020b2: DUP2 000020b3: SWAP1 000020b4: SSTORE 000020b5: POP 000020b6: PUSH3 0x093a80 000020ba: DUP8 000020bb: ADD 000020bc: SWAP7 000020bd: POP 000020be: POP 000020bf: POP 000020c0: JUMPDEST 000020c1: DUP1 000020c2: PUSH1 0x01 000020c4: ADD 000020c5: SWAP1 000020c6: POP 000020c7: PUSH2 0x1ed8 000020ca: JUMP 000020cb: JUMPDEST 000020cc: POP 000020cd: PUSH1 0x01 000020cf: DUP4 000020d0: SUB 000020d1: PUSH8 0xffffffffffffffff 000020da: AND 000020db: DUP6 000020dc: PUSH1 0x00 000020de: ADD 000020df: PUSH1 0x10 000020e1: PUSH2 0x0100 000020e4: EXP 000020e5: DUP2 000020e6: SLOAD 000020e7: DUP2 000020e8: PUSH16 0xffffffffffffffffffffffffffffffff 000020f9: MUL 000020fa: NOT 000020fb: AND 000020fc: SWAP1 000020fd: DUP4 000020fe: PUSH16 0xffffffffffffffffffffffffffffffff 0000210f: AND 00002110: MUL 00002111: OR 00002112: SWAP1 00002113: SSTORE 00002114: POP 00002115: DUP4 00002116: DUP6 00002117: PUSH1 0x00 00002119: ADD 0000211a: PUSH1 0x08 0000211c: PUSH2 0x0100 0000211f: EXP 00002120: DUP2 00002121: SLOAD 00002122: DUP2 00002123: PUSH8 0xffffffffffffffff 0000212c: MUL 0000212d: NOT 0000212e: AND 0000212f: SWAP1 00002130: DUP4 00002131: PUSH8 0xffffffffffffffff 0000213a: AND 0000213b: MUL 0000213c: OR 0000213d: SWAP1 0000213e: SSTORE 0000213f: POP 00002140: POP 00002141: POP 00002142: POP 00002143: POP 00002144: POP 00002145: POP 00002146: JUMPDEST 00002147: POP 00002148: JUMP 00002149: JUMPDEST 0000214a: PUSH1 0x01 0000214c: PUSH1 0x00 0000214e: DUP2 0000214f: SWAP1 00002150: SSTORE 00002151: POP 00002152: JUMP 00002153: JUMPDEST 00002154: PUSH1 0x00 00002156: DUP1 00002157: PUSH1 0x01 00002159: DUP1 0000215a: SLOAD 0000215b: SWAP1 0000215c: PUSH2 0x0100 0000215f: EXP 00002160: SWAP1 00002161: DIV 00002162: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002177: AND 00002178: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000218d: AND 0000218e: PUSH4 0x900cf0cf 00002193: PUSH1 0x40 00002195: MLOAD 00002196: DUP2 00002197: PUSH4 0xffffffff 0000219c: AND 0000219d: PUSH1 0xe0 0000219f: SHL 000021a0: DUP2 000021a1: MSTORE 000021a2: PUSH1 0x04 000021a4: ADD 000021a5: PUSH1 0x20 000021a7: PUSH1 0x40 000021a9: MLOAD 000021aa: DUP1 000021ab: DUP4 000021ac: SUB 000021ad: DUP2 000021ae: DUP7 000021af: DUP1 000021b0: EXTCODESIZE 000021b1: ISZERO 000021b2: DUP1 000021b3: ISZERO 000021b4: PUSH2 0x21bc 000021b7: JUMPI 000021b8: PUSH1 0x00 000021ba: DUP1 000021bb: REVERT 000021bc: JUMPDEST 000021bd: POP 000021be: GAS 000021bf: STATICCALL 000021c0: ISZERO 000021c1: DUP1 000021c2: ISZERO 000021c3: PUSH2 0x21d0 000021c6: JUMPI 000021c7: RETURNDATASIZE 000021c8: PUSH1 0x00 000021ca: DUP1 000021cb: RETURNDATACOPY 000021cc: RETURNDATASIZE 000021cd: PUSH1 0x00 000021cf: REVERT 000021d0: JUMPDEST 000021d1: POP 000021d2: POP 000021d3: POP 000021d4: POP 000021d5: PUSH1 0x40 000021d7: MLOAD 000021d8: RETURNDATASIZE 000021d9: PUSH1 0x1f 000021db: NOT 000021dc: PUSH1 0x1f 000021de: DUP3 000021df: ADD 000021e0: AND 000021e1: DUP3 000021e2: ADD 000021e3: DUP1 000021e4: PUSH1 0x40 000021e6: MSTORE 000021e7: POP 000021e8: DUP2 000021e9: ADD 000021ea: SWAP1 000021eb: PUSH2 0x21f4 000021ee: SWAP2 000021ef: SWAP1 000021f0: PUSH2 0x3b2b 000021f3: JUMP 000021f4: JUMPDEST 000021f5: SWAP1 000021f6: POP 000021f7: PUSH2 0x21fe 000021fa: PUSH2 0x35c8 000021fd: JUMP 000021fe: JUMPDEST 000021ff: PUSH1 0x01 00002201: DUP1 00002202: SLOAD 00002203: SWAP1 00002204: PUSH2 0x0100 00002207: EXP 00002208: SWAP1 00002209: DIV 0000220a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000221f: AND 00002220: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002235: AND 00002236: PUSH4 0xd1febfb9 0000223b: DUP4 0000223c: PUSH1 0x40 0000223e: MLOAD 0000223f: DUP3 00002240: PUSH4 0xffffffff 00002245: AND 00002246: PUSH1 0xe0 00002248: SHL 00002249: DUP2 0000224a: MSTORE 0000224b: PUSH1 0x04 0000224d: ADD 0000224e: PUSH2 0x2257 00002251: SWAP2 00002252: SWAP1 00002253: PUSH2 0x420e 00002256: JUMP 00002257: JUMPDEST 00002258: PUSH1 0x80 0000225a: PUSH1 0x40 0000225c: MLOAD 0000225d: DUP1 0000225e: DUP4 0000225f: SUB 00002260: DUP2 00002261: DUP7 00002262: DUP1 00002263: EXTCODESIZE 00002264: ISZERO 00002265: DUP1 00002266: ISZERO 00002267: PUSH2 0x226f 0000226a: JUMPI 0000226b: PUSH1 0x00 0000226d: DUP1 0000226e: REVERT 0000226f: JUMPDEST 00002270: POP 00002271: GAS 00002272: STATICCALL 00002273: ISZERO 00002274: DUP1 00002275: ISZERO 00002276: PUSH2 0x2283 00002279: JUMPI 0000227a: RETURNDATASIZE 0000227b: PUSH1 0x00 0000227d: DUP1 0000227e: RETURNDATACOPY 0000227f: RETURNDATASIZE 00002280: PUSH1 0x00 00002282: REVERT 00002283: JUMPDEST 00002284: POP 00002285: POP 00002286: POP 00002287: POP 00002288: PUSH1 0x40 0000228a: MLOAD 0000228b: RETURNDATASIZE 0000228c: PUSH1 0x1f 0000228e: NOT 0000228f: PUSH1 0x1f 00002291: DUP3 00002292: ADD 00002293: AND 00002294: DUP3 00002295: ADD 00002296: DUP1 00002297: PUSH1 0x40 00002299: MSTORE 0000229a: POP 0000229b: DUP2 0000229c: ADD 0000229d: SWAP1 0000229e: PUSH2 0x22a7 000022a1: SWAP2 000022a2: SWAP1 000022a3: PUSH2 0x3ad9 000022a6: JUMP 000022a7: JUMPDEST 000022a8: SWAP1 000022a9: POP 000022aa: PUSH2 0x22b3 000022ad: DUP2 000022ae: DUP6 000022af: PUSH2 0x329b 000022b2: JUMP 000022b3: JUMPDEST 000022b4: SWAP3 000022b5: POP 000022b6: POP 000022b7: POP 000022b8: SWAP2 000022b9: SWAP1 000022ba: POP 000022bb: JUMP 000022bc: JUMPDEST 000022bd: PUSH1 0x00 000022bf: PUSH1 0x08 000022c1: PUSH1 0x00 000022c3: DUP5 000022c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022d9: AND 000022da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022ef: AND 000022f0: DUP2 000022f1: MSTORE 000022f2: PUSH1 0x20 000022f4: ADD 000022f5: SWAP1 000022f6: DUP2 000022f7: MSTORE 000022f8: PUSH1 0x20 000022fa: ADD 000022fb: PUSH1 0x00 000022fd: KECCAK256 000022fe: SWAP1 000022ff: POP 00002300: PUSH1 0x00 00002302: DUP2 00002303: PUSH1 0x00 00002305: ADD 00002306: PUSH1 0x08 00002308: SWAP1 00002309: SLOAD 0000230a: SWAP1 0000230b: PUSH2 0x0100 0000230e: EXP 0000230f: SWAP1 00002310: DIV 00002311: PUSH8 0xffffffffffffffff 0000231a: AND 0000231b: PUSH8 0xffffffffffffffff 00002324: AND 00002325: SWAP1 00002326: POP 00002327: PUSH1 0x00 00002329: DUP1 0000232a: DUP3 0000232b: EQ 0000232c: ISZERO 0000232d: PUSH2 0x23af 00002330: JUMPI 00002331: TIMESTAMP 00002332: SWAP2 00002333: POP 00002334: PUSH2 0x233c 00002337: TIMESTAMP 00002338: PUSH2 0x2ecc 0000233b: JUMP 0000233c: JUMPDEST 0000233d: DUP4 0000233e: PUSH1 0x00 00002340: ADD 00002341: PUSH1 0x00 00002343: PUSH2 0x0100 00002346: EXP 00002347: DUP2 00002348: SLOAD 00002349: DUP2 0000234a: PUSH8 0xffffffffffffffff 00002353: MUL 00002354: NOT 00002355: AND 00002356: SWAP1 00002357: DUP4 00002358: PUSH8 0xffffffffffffffff 00002361: AND 00002362: MUL 00002363: OR 00002364: SWAP1 00002365: SSTORE 00002366: POP 00002367: PUSH1 0x02 00002369: SLOAD 0000236a: TIMESTAMP 0000236b: GT 0000236c: PUSH2 0x23aa 0000236f: JUMPI 00002370: PUSH1 0x40 00002372: MLOAD 00002373: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002394: DUP2 00002395: MSTORE 00002396: PUSH1 0x04 00002398: ADD 00002399: PUSH2 0x23a1 0000239c: SWAP1 0000239d: PUSH2 0x414e 000023a0: JUMP 000023a1: JUMPDEST 000023a2: PUSH1 0x40 000023a4: MLOAD 000023a5: DUP1 000023a6: SWAP2 000023a7: SUB 000023a8: SWAP1 000023a9: REVERT 000023aa: JUMPDEST 000023ab: PUSH2 0x2402 000023ae: JUMP 000023af: JUMPDEST 000023b0: DUP2 000023b1: TIMESTAMP 000023b2: SUB 000023b3: SWAP1 000023b4: POP 000023b5: DUP4 000023b6: PUSH2 0x2401 000023b9: JUMPI 000023ba: PUSH1 0x00 000023bc: PUSH2 0x23c4 000023bf: DUP4 000023c0: PUSH2 0x2ecc 000023c3: JUMP 000023c4: JUMPDEST 000023c5: PUSH2 0x23cd 000023c8: TIMESTAMP 000023c9: PUSH2 0x2ecc 000023cc: JUMP 000023cd: JUMPDEST 000023ce: EQ 000023cf: SWAP1 000023d0: POP 000023d1: PUSH1 0x00 000023d3: PUSH3 0x015180 000023d7: TIMESTAMP 000023d8: PUSH2 0x23e0 000023db: TIMESTAMP 000023dc: PUSH2 0x326e 000023df: JUMP 000023e0: JUMPDEST 000023e1: SUB 000023e2: LT 000023e3: SWAP1 000023e4: POP 000023e5: DUP2 000023e6: DUP1 000023e7: ISZERO 000023e8: PUSH2 0x23ef 000023eb: JUMPI 000023ec: POP 000023ed: DUP1 000023ee: ISZERO 000023ef: JUMPDEST 000023f0: ISZERO 000023f1: PUSH2 0x23fe 000023f4: JUMPI 000023f5: POP 000023f6: POP 000023f7: POP 000023f8: POP 000023f9: POP 000023fa: PUSH2 0x273c 000023fd: JUMP 000023fe: JUMPDEST 000023ff: POP 00002400: POP 00002401: JUMPDEST 00002402: JUMPDEST 00002403: TIMESTAMP 00002404: DUP4 00002405: PUSH1 0x00 00002407: ADD 00002408: PUSH1 0x08 0000240a: PUSH2 0x0100 0000240d: EXP 0000240e: DUP2 0000240f: SLOAD 00002410: DUP2 00002411: PUSH8 0xffffffffffffffff 0000241a: MUL 0000241b: NOT 0000241c: AND 0000241d: SWAP1 0000241e: DUP4 0000241f: PUSH8 0xffffffffffffffff 00002428: AND 00002429: MUL 0000242a: OR 0000242b: SWAP1 0000242c: SSTORE 0000242d: POP 0000242e: PUSH1 0x00 00002430: DUP6 00002431: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002446: AND 00002447: PUSH4 0x70a08231 0000244c: ADDRESS 0000244d: PUSH1 0x40 0000244f: MLOAD 00002450: DUP3 00002451: PUSH4 0xffffffff 00002456: AND 00002457: PUSH1 0xe0 00002459: SHL 0000245a: DUP2 0000245b: MSTORE 0000245c: PUSH1 0x04 0000245e: ADD 0000245f: PUSH2 0x2468 00002462: SWAP2 00002463: SWAP1 00002464: PUSH2 0x3f7d 00002467: JUMP 00002468: JUMPDEST 00002469: PUSH1 0x20 0000246b: PUSH1 0x40 0000246d: MLOAD 0000246e: DUP1 0000246f: DUP4 00002470: SUB 00002471: DUP2 00002472: DUP7 00002473: DUP1 00002474: EXTCODESIZE 00002475: ISZERO 00002476: DUP1 00002477: ISZERO 00002478: PUSH2 0x2480 0000247b: JUMPI 0000247c: PUSH1 0x00 0000247e: DUP1 0000247f: REVERT 00002480: JUMPDEST 00002481: POP 00002482: GAS 00002483: STATICCALL 00002484: ISZERO 00002485: DUP1 00002486: ISZERO 00002487: PUSH2 0x2494 0000248a: JUMPI 0000248b: RETURNDATASIZE 0000248c: PUSH1 0x00 0000248e: DUP1 0000248f: RETURNDATACOPY 00002490: RETURNDATASIZE 00002491: PUSH1 0x00 00002493: REVERT 00002494: JUMPDEST 00002495: POP 00002496: POP 00002497: POP 00002498: POP 00002499: PUSH1 0x40 0000249b: MLOAD 0000249c: RETURNDATASIZE 0000249d: PUSH1 0x1f 0000249f: NOT 000024a0: PUSH1 0x1f 000024a2: DUP3 000024a3: ADD 000024a4: AND 000024a5: DUP3 000024a6: ADD 000024a7: DUP1 000024a8: PUSH1 0x40 000024aa: MSTORE 000024ab: POP 000024ac: DUP2 000024ad: ADD 000024ae: SWAP1 000024af: PUSH2 0x24b8 000024b2: SWAP2 000024b3: SWAP1 000024b4: PUSH2 0x3b2b 000024b7: JUMP 000024b8: JUMPDEST 000024b9: SWAP1 000024ba: POP 000024bb: PUSH1 0x00 000024bd: PUSH2 0x2501 000024c0: DUP6 000024c1: PUSH1 0x00 000024c3: ADD 000024c4: PUSH1 0x10 000024c6: SWAP1 000024c7: SLOAD 000024c8: SWAP1 000024c9: PUSH2 0x0100 000024cc: EXP 000024cd: SWAP1 000024ce: DIV 000024cf: PUSH16 0xffffffffffffffffffffffffffffffff 000024e0: AND 000024e1: PUSH16 0xffffffffffffffffffffffffffffffff 000024f2: AND 000024f3: DUP4 000024f4: PUSH2 0x3437 000024f7: SWAP1 000024f8: SWAP2 000024f9: SWAP1 000024fa: PUSH4 0xffffffff 000024ff: AND 00002500: JUMP 00002501: JUMPDEST 00002502: SWAP1 00002503: POP 00002504: PUSH1 0x00 00002506: DUP2 00002507: EQ 00002508: ISZERO 00002509: PUSH2 0x2516 0000250c: JUMPI 0000250d: POP 0000250e: POP 0000250f: POP 00002510: POP 00002511: POP 00002512: PUSH2 0x273c 00002515: JUMP 00002516: JUMPDEST 00002517: PUSH16 0xffffffffffffffffffffffffffffffff 00002528: DUP1 00002529: AND 0000252a: DUP3 0000252b: GT 0000252c: ISZERO 0000252d: PUSH2 0x256b 00002530: JUMPI 00002531: PUSH1 0x40 00002533: MLOAD 00002534: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002555: DUP2 00002556: MSTORE 00002557: PUSH1 0x04 00002559: ADD 0000255a: PUSH2 0x2562 0000255d: SWAP1 0000255e: PUSH2 0x412e 00002561: JUMP 00002562: JUMPDEST 00002563: PUSH1 0x40 00002565: MLOAD 00002566: DUP1 00002567: SWAP2 00002568: SUB 00002569: SWAP1 0000256a: REVERT 0000256b: JUMPDEST 0000256c: DUP2 0000256d: DUP6 0000256e: PUSH1 0x00 00002570: ADD 00002571: PUSH1 0x10 00002573: PUSH2 0x0100 00002576: EXP 00002577: DUP2 00002578: SLOAD 00002579: DUP2 0000257a: PUSH16 0xffffffffffffffffffffffffffffffff 0000258b: MUL 0000258c: NOT 0000258d: AND 0000258e: SWAP1 0000258f: DUP4 00002590: PUSH16 0xffffffffffffffffffffffffffffffff 000025a1: AND 000025a2: MUL 000025a3: OR 000025a4: SWAP1 000025a5: SSTORE 000025a6: POP 000025a7: PUSH1 0x00 000025a9: PUSH2 0x25b1 000025ac: DUP6 000025ad: PUSH2 0x2ecc 000025b0: JUMP 000025b1: JUMPDEST 000025b2: SWAP1 000025b3: POP 000025b4: PUSH1 0x00 000025b6: DUP1 000025b7: PUSH1 0x09 000025b9: PUSH1 0x00 000025bb: DUP12 000025bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025d1: AND 000025d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025e7: AND 000025e8: DUP2 000025e9: MSTORE 000025ea: PUSH1 0x20 000025ec: ADD 000025ed: SWAP1 000025ee: DUP2 000025ef: MSTORE 000025f0: PUSH1 0x20 000025f2: ADD 000025f3: PUSH1 0x00 000025f5: KECCAK256 000025f6: SWAP1 000025f7: POP 000025f8: PUSH1 0x00 000025fa: JUMPDEST 000025fb: PUSH1 0x14 000025fd: DUP2 000025fe: LT 000025ff: ISZERO 00002600: PUSH2 0x26f7 00002603: JUMPI 00002604: PUSH3 0x093a80 00002608: DUP5 00002609: ADD 0000260a: SWAP3 0000260b: POP 0000260c: DUP3 0000260d: TIMESTAMP 0000260e: LT 0000260f: ISZERO 00002610: PUSH2 0x267f 00002613: JUMPI 00002614: PUSH1 0x00 00002616: DUP8 00002617: EQ 00002618: DUP1 00002619: ISZERO 0000261a: PUSH2 0x2622 0000261d: JUMPI 0000261e: POP 0000261f: DUP8 00002620: TIMESTAMP 00002621: EQ 00002622: JUMPDEST 00002623: ISZERO 00002624: PUSH2 0x264c 00002627: JUMPI 00002628: DUP5 00002629: DUP3 0000262a: PUSH1 0x00 0000262c: DUP7 0000262d: DUP2 0000262e: MSTORE 0000262f: PUSH1 0x20 00002631: ADD 00002632: SWAP1 00002633: DUP2 00002634: MSTORE 00002635: PUSH1 0x20 00002637: ADD 00002638: PUSH1 0x00 0000263a: KECCAK256 0000263b: PUSH1 0x00 0000263d: DUP3 0000263e: DUP3 0000263f: SLOAD 00002640: ADD 00002641: SWAP3 00002642: POP 00002643: POP 00002644: DUP2 00002645: SWAP1 00002646: SSTORE 00002647: POP 00002648: PUSH2 0x267a 0000264b: JUMP 0000264c: JUMPDEST 0000264d: DUP7 0000264e: DUP9 0000264f: TIMESTAMP 00002650: SUB 00002651: DUP7 00002652: MUL 00002653: DUP2 00002654: PUSH2 0x2659 00002657: JUMPI 00002658: INVALID 00002659: JUMPDEST 0000265a: DIV 0000265b: DUP3 0000265c: PUSH1 0x00 0000265e: DUP7 0000265f: DUP2 00002660: MSTORE 00002661: PUSH1 0x20 00002663: ADD 00002664: SWAP1 00002665: DUP2 00002666: MSTORE 00002667: PUSH1 0x20 00002669: ADD 0000266a: PUSH1 0x00 0000266c: KECCAK256 0000266d: PUSH1 0x00 0000266f: DUP3 00002670: DUP3 00002671: SLOAD 00002672: ADD 00002673: SWAP3 00002674: POP 00002675: POP 00002676: DUP2 00002677: SWAP1 00002678: SSTORE 00002679: POP 0000267a: JUMPDEST 0000267b: PUSH2 0x26f7 0000267e: JUMP 0000267f: JUMPDEST 00002680: PUSH1 0x00 00002682: DUP8 00002683: EQ 00002684: DUP1 00002685: ISZERO 00002686: PUSH2 0x268e 00002689: JUMPI 0000268a: POP 0000268b: DUP8 0000268c: DUP4 0000268d: EQ 0000268e: JUMPDEST 0000268f: ISZERO 00002690: PUSH2 0x26b8 00002693: JUMPI 00002694: DUP5 00002695: DUP3 00002696: PUSH1 0x00 00002698: DUP7 00002699: DUP2 0000269a: MSTORE 0000269b: PUSH1 0x20 0000269d: ADD 0000269e: SWAP1 0000269f: DUP2 000026a0: MSTORE 000026a1: PUSH1 0x20 000026a3: ADD 000026a4: PUSH1 0x00 000026a6: KECCAK256 000026a7: PUSH1 0x00 000026a9: DUP3 000026aa: DUP3 000026ab: SLOAD 000026ac: ADD 000026ad: SWAP3 000026ae: POP 000026af: POP 000026b0: DUP2 000026b1: SWAP1 000026b2: SSTORE 000026b3: POP 000026b4: PUSH2 0x26e6 000026b7: JUMP 000026b8: JUMPDEST 000026b9: DUP7 000026ba: DUP9 000026bb: DUP5 000026bc: SUB 000026bd: DUP7 000026be: MUL 000026bf: DUP2 000026c0: PUSH2 0x26c5 000026c3: JUMPI 000026c4: INVALID 000026c5: JUMPDEST 000026c6: DIV 000026c7: DUP3 000026c8: PUSH1 0x00 000026ca: DUP7 000026cb: DUP2 000026cc: MSTORE 000026cd: PUSH1 0x20 000026cf: ADD 000026d0: SWAP1 000026d1: DUP2 000026d2: MSTORE 000026d3: PUSH1 0x20 000026d5: ADD 000026d6: PUSH1 0x00 000026d8: KECCAK256 000026d9: PUSH1 0x00 000026db: DUP3 000026dc: DUP3 000026dd: SLOAD 000026de: ADD 000026df: SWAP3 000026e0: POP 000026e1: POP 000026e2: DUP2 000026e3: SWAP1 000026e4: SSTORE 000026e5: POP 000026e6: JUMPDEST 000026e7: DUP3 000026e8: SWAP8 000026e9: POP 000026ea: DUP3 000026eb: SWAP4 000026ec: POP 000026ed: DUP1 000026ee: PUSH1 0x01 000026f0: ADD 000026f1: SWAP1 000026f2: POP 000026f3: PUSH2 0x25fa 000026f6: JUMP 000026f7: JUMPDEST 000026f8: POP 000026f9: PUSH32 0x9b7f1a85a4c9b4e59e1b6527d9969c50cdfb3a1a467d0c4a51fb0ed8bf07f130 0000271a: DUP11 0000271b: DUP6 0000271c: DUP10 0000271d: PUSH1 0x40 0000271f: MLOAD 00002720: PUSH2 0x272b 00002723: SWAP4 00002724: SWAP3 00002725: SWAP2 00002726: SWAP1 00002727: PUSH2 0x409c 0000272a: JUMP 0000272b: JUMPDEST 0000272c: PUSH1 0x40 0000272e: MLOAD 0000272f: DUP1 00002730: SWAP2 00002731: SUB 00002732: SWAP1 00002733: LOG1 00002734: POP 00002735: POP 00002736: POP 00002737: POP 00002738: POP 00002739: POP 0000273a: POP 0000273b: POP 0000273c: JUMPDEST 0000273d: POP 0000273e: POP 0000273f: JUMP 00002740: JUMPDEST 00002741: PUSH2 0x27c3 00002744: DUP5 00002745: PUSH4 0x23b872dd 0000274a: PUSH1 0xe0 0000274c: SHL 0000274d: DUP6 0000274e: DUP6 0000274f: DUP6 00002750: PUSH1 0x40 00002752: MLOAD 00002753: PUSH1 0x24 00002755: ADD 00002756: PUSH2 0x2761 00002759: SWAP4 0000275a: SWAP3 0000275b: SWAP2 0000275c: SWAP1 0000275d: PUSH2 0x3f98 00002760: JUMP 00002761: JUMPDEST 00002762: PUSH1 0x40 00002764: MLOAD 00002765: PUSH1 0x20 00002767: DUP2 00002768: DUP4 00002769: SUB 0000276a: SUB 0000276b: DUP2 0000276c: MSTORE 0000276d: SWAP1 0000276e: PUSH1 0x40 00002770: MSTORE 00002771: SWAP1 00002772: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000278f: NOT 00002790: AND 00002791: PUSH1 0x20 00002793: DUP3 00002794: ADD 00002795: DUP1 00002796: MLOAD 00002797: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000027b4: DUP4 000027b5: DUP2 000027b6: DUP4 000027b7: AND 000027b8: OR 000027b9: DUP4 000027ba: MSTORE 000027bb: POP 000027bc: POP 000027bd: POP 000027be: POP 000027bf: PUSH2 0x344d 000027c2: JUMP 000027c3: JUMPDEST 000027c4: POP 000027c5: POP 000027c6: POP 000027c7: POP 000027c8: JUMP 000027c9: JUMPDEST 000027ca: PUSH1 0x00 000027cc: DUP1 000027cd: PUSH1 0x00 000027cf: SWAP1 000027d0: POP 000027d1: PUSH1 0x00 000027d3: DUP4 000027d4: SWAP1 000027d5: POP 000027d6: PUSH1 0x00 000027d8: JUMPDEST 000027d9: PUSH1 0x80 000027db: DUP2 000027dc: LT 000027dd: ISZERO 000027de: PUSH2 0x28cf 000027e1: JUMPI 000027e2: DUP2 000027e3: DUP4 000027e4: LT 000027e5: PUSH2 0x27ed 000027e8: JUMPI 000027e9: PUSH2 0x28cf 000027ec: JUMP 000027ed: JUMPDEST 000027ee: PUSH1 0x00 000027f0: PUSH1 0x02 000027f2: PUSH1 0x01 000027f4: DUP5 000027f5: DUP7 000027f6: ADD 000027f7: ADD 000027f8: DUP2 000027f9: PUSH2 0x27fe 000027fc: JUMPI 000027fd: INVALID 000027fe: JUMPDEST 000027ff: DIV 00002800: SWAP1 00002801: POP 00002802: DUP7 00002803: PUSH1 0x01 00002805: DUP1 00002806: SLOAD 00002807: SWAP1 00002808: PUSH2 0x0100 0000280b: EXP 0000280c: SWAP1 0000280d: DIV 0000280e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002823: AND 00002824: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002839: AND 0000283a: PUSH4 0xd1febfb9 0000283f: DUP4 00002840: PUSH1 0x40 00002842: MLOAD 00002843: DUP3 00002844: PUSH4 0xffffffff 00002849: AND 0000284a: PUSH1 0xe0 0000284c: SHL 0000284d: DUP2 0000284e: MSTORE 0000284f: PUSH1 0x04 00002851: ADD 00002852: PUSH2 0x285b 00002855: SWAP2 00002856: SWAP1 00002857: PUSH2 0x420e 0000285a: JUMP 0000285b: JUMPDEST 0000285c: PUSH1 0x80 0000285e: PUSH1 0x40 00002860: MLOAD 00002861: DUP1 00002862: DUP4 00002863: SUB 00002864: DUP2 00002865: DUP7 00002866: DUP1 00002867: EXTCODESIZE 00002868: ISZERO 00002869: DUP1 0000286a: ISZERO 0000286b: PUSH2 0x2873 0000286e: JUMPI 0000286f: PUSH1 0x00 00002871: DUP1 00002872: REVERT 00002873: JUMPDEST 00002874: POP 00002875: GAS 00002876: STATICCALL 00002877: ISZERO 00002878: DUP1 00002879: ISZERO 0000287a: PUSH2 0x2887 0000287d: JUMPI 0000287e: RETURNDATASIZE 0000287f: PUSH1 0x00 00002881: DUP1 00002882: RETURNDATACOPY 00002883: RETURNDATASIZE 00002884: PUSH1 0x00 00002886: REVERT 00002887: JUMPDEST 00002888: POP 00002889: POP 0000288a: POP 0000288b: POP 0000288c: PUSH1 0x40 0000288e: MLOAD 0000288f: RETURNDATASIZE 00002890: PUSH1 0x1f 00002892: NOT 00002893: PUSH1 0x1f 00002895: DUP3 00002896: ADD 00002897: AND 00002898: DUP3 00002899: ADD 0000289a: DUP1 0000289b: PUSH1 0x40 0000289d: MSTORE 0000289e: POP 0000289f: DUP2 000028a0: ADD 000028a1: SWAP1 000028a2: PUSH2 0x28ab 000028a5: SWAP2 000028a6: SWAP1 000028a7: PUSH2 0x3ad9 000028aa: JUMP 000028ab: JUMPDEST 000028ac: PUSH1 0x60 000028ae: ADD 000028af: MLOAD 000028b0: GT 000028b1: PUSH2 0x28bc 000028b4: JUMPI 000028b5: DUP1 000028b6: SWAP4 000028b7: POP 000028b8: PUSH2 0x28c3 000028bb: JUMP 000028bc: JUMPDEST 000028bd: PUSH1 0x01 000028bf: DUP2 000028c0: SUB 000028c1: SWAP3 000028c2: POP 000028c3: JUMPDEST 000028c4: POP 000028c5: DUP1 000028c6: PUSH1 0x01 000028c8: ADD 000028c9: SWAP1 000028ca: POP 000028cb: PUSH2 0x27d8 000028ce: JUMP 000028cf: JUMPDEST 000028d0: POP 000028d1: DUP2 000028d2: SWAP3 000028d3: POP 000028d4: POP 000028d5: POP 000028d6: SWAP3 000028d7: SWAP2 000028d8: POP 000028d9: POP 000028da: JUMP 000028db: JUMPDEST 000028dc: PUSH2 0x28e8 000028df: DUP2 000028e0: DUP4 000028e1: EQ 000028e2: PUSH1 0x67 000028e4: PUSH2 0x313b 000028e7: JUMP 000028e8: JUMPDEST 000028e9: POP 000028ea: POP 000028eb: JUMP 000028ec: JUMPDEST 000028ed: PUSH1 0x00 000028ef: DUP1 000028f0: PUSH1 0x0c 000028f2: PUSH1 0x00 000028f4: DUP6 000028f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000290a: AND 0000290b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002920: AND 00002921: DUP2 00002922: MSTORE 00002923: PUSH1 0x20 00002925: ADD 00002926: SWAP1 00002927: DUP2 00002928: MSTORE 00002929: PUSH1 0x20 0000292b: ADD 0000292c: PUSH1 0x00 0000292e: KECCAK256 0000292f: PUSH1 0x00 00002931: DUP5 00002932: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002947: AND 00002948: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000295d: AND 0000295e: DUP2 0000295f: MSTORE 00002960: PUSH1 0x20 00002962: ADD 00002963: SWAP1 00002964: DUP2 00002965: MSTORE 00002966: PUSH1 0x20 00002968: ADD 00002969: PUSH1 0x00 0000296b: KECCAK256 0000296c: SLOAD 0000296d: SWAP1 0000296e: POP 0000296f: PUSH1 0x00 00002971: DUP2 00002972: GT 00002973: ISZERO 00002974: PUSH2 0x2980 00002977: JUMPI 00002978: DUP1 00002979: SWAP2 0000297a: POP 0000297b: POP 0000297c: PUSH2 0x2a4e 0000297f: JUMP 00002980: JUMPDEST 00002981: PUSH2 0x2a4a 00002984: PUSH1 0x0a 00002986: PUSH1 0x00 00002988: DUP7 00002989: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000299e: AND 0000299f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029b4: AND 000029b5: DUP2 000029b6: MSTORE 000029b7: PUSH1 0x20 000029b9: ADD 000029ba: SWAP1 000029bb: DUP2 000029bc: MSTORE 000029bd: PUSH1 0x20 000029bf: ADD 000029c0: PUSH1 0x00 000029c2: KECCAK256 000029c3: PUSH1 0x00 000029c5: ADD 000029c6: PUSH1 0x00 000029c8: SWAP1 000029c9: SLOAD 000029ca: SWAP1 000029cb: PUSH2 0x0100 000029ce: EXP 000029cf: SWAP1 000029d0: DIV 000029d1: PUSH8 0xffffffffffffffff 000029da: AND 000029db: PUSH8 0xffffffffffffffff 000029e4: AND 000029e5: PUSH1 0x08 000029e7: PUSH1 0x00 000029e9: DUP7 000029ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029ff: AND 00002a00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a15: AND 00002a16: DUP2 00002a17: MSTORE 00002a18: PUSH1 0x20 00002a1a: ADD 00002a1b: SWAP1 00002a1c: DUP2 00002a1d: MSTORE 00002a1e: PUSH1 0x20 00002a20: ADD 00002a21: PUSH1 0x00 00002a23: KECCAK256 00002a24: PUSH1 0x00 00002a26: ADD 00002a27: PUSH1 0x00 00002a29: SWAP1 00002a2a: SLOAD 00002a2b: SWAP1 00002a2c: PUSH2 0x0100 00002a2f: EXP 00002a30: SWAP1 00002a31: DIV 00002a32: PUSH8 0xffffffffffffffff 00002a3b: AND 00002a3c: PUSH8 0xffffffffffffffff 00002a45: AND 00002a46: PUSH2 0x3288 00002a49: JUMP 00002a4a: JUMPDEST 00002a4b: SWAP2 00002a4c: POP 00002a4d: POP 00002a4e: JUMPDEST 00002a4f: SWAP3 00002a50: SWAP2 00002a51: POP 00002a52: POP 00002a53: JUMP 00002a54: JUMPDEST 00002a55: PUSH1 0x00 00002a57: PUSH1 0x03 00002a59: SLOAD 00002a5a: SWAP1 00002a5b: POP 00002a5c: PUSH1 0x00 00002a5e: PUSH2 0x2a66 00002a61: TIMESTAMP 00002a62: PUSH2 0x2ecc 00002a65: JUMP 00002a66: JUMPDEST 00002a67: SWAP1 00002a68: POP 00002a69: DUP1 00002a6a: DUP3 00002a6b: GT 00002a6c: DUP1 00002a6d: PUSH2 0x2a75 00002a70: JUMPI 00002a71: POP 00002a72: TIMESTAMP 00002a73: DUP2 00002a74: EQ 00002a75: JUMPDEST 00002a76: ISZERO 00002a77: PUSH2 0x2a81 00002a7a: JUMPI 00002a7b: POP 00002a7c: POP 00002a7d: PUSH2 0x2b5e 00002a80: JUMP 00002a81: JUMPDEST 00002a82: PUSH1 0x01 00002a84: DUP1 00002a85: SLOAD 00002a86: SWAP1 00002a87: PUSH2 0x0100 00002a8a: EXP 00002a8b: SWAP1 00002a8c: DIV 00002a8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002aa2: AND 00002aa3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ab8: AND 00002ab9: PUSH4 0xc2c4c5c1 00002abe: PUSH1 0x40 00002ac0: MLOAD 00002ac1: DUP2 00002ac2: PUSH4 0xffffffff 00002ac7: AND 00002ac8: PUSH1 0xe0 00002aca: SHL 00002acb: DUP2 00002acc: MSTORE 00002acd: PUSH1 0x04 00002acf: ADD 00002ad0: PUSH1 0x00 00002ad2: PUSH1 0x40 00002ad4: MLOAD 00002ad5: DUP1 00002ad6: DUP4 00002ad7: SUB 00002ad8: DUP2 00002ad9: PUSH1 0x00 00002adb: DUP8 00002adc: DUP1 00002add: EXTCODESIZE 00002ade: ISZERO 00002adf: DUP1 00002ae0: ISZERO 00002ae1: PUSH2 0x2ae9 00002ae4: JUMPI 00002ae5: PUSH1 0x00 00002ae7: DUP1 00002ae8: REVERT 00002ae9: JUMPDEST 00002aea: POP 00002aeb: GAS 00002aec: CALL 00002aed: ISZERO 00002aee: DUP1 00002aef: ISZERO 00002af0: PUSH2 0x2afd 00002af3: JUMPI 00002af4: RETURNDATASIZE 00002af5: PUSH1 0x00 00002af7: DUP1 00002af8: RETURNDATACOPY 00002af9: RETURNDATASIZE 00002afa: PUSH1 0x00 00002afc: REVERT 00002afd: JUMPDEST 00002afe: POP 00002aff: POP 00002b00: POP 00002b01: POP 00002b02: PUSH1 0x00 00002b04: JUMPDEST 00002b05: PUSH1 0x14 00002b07: DUP2 00002b08: LT 00002b09: ISZERO 00002b0a: PUSH2 0x2b53 00002b0d: JUMPI 00002b0e: DUP2 00002b0f: DUP4 00002b10: GT 00002b11: ISZERO 00002b12: PUSH2 0x2b1a 00002b15: JUMPI 00002b16: PUSH2 0x2b53 00002b19: JUMP 00002b1a: JUMPDEST 00002b1b: PUSH1 0x00 00002b1d: PUSH2 0x2b25 00002b20: DUP5 00002b21: PUSH2 0x0d59 00002b24: JUMP 00002b25: JUMPDEST 00002b26: SWAP1 00002b27: POP 00002b28: DUP1 00002b29: PUSH1 0x04 00002b2b: PUSH1 0x00 00002b2d: DUP7 00002b2e: DUP2 00002b2f: MSTORE 00002b30: PUSH1 0x20 00002b32: ADD 00002b33: SWAP1 00002b34: DUP2 00002b35: MSTORE 00002b36: PUSH1 0x20 00002b38: ADD 00002b39: PUSH1 0x00 00002b3b: KECCAK256 00002b3c: DUP2 00002b3d: SWAP1 00002b3e: SSTORE 00002b3f: POP 00002b40: PUSH3 0x093a80 00002b44: DUP5 00002b45: ADD 00002b46: SWAP4 00002b47: POP 00002b48: POP 00002b49: DUP1 00002b4a: PUSH1 0x01 00002b4c: ADD 00002b4d: SWAP1 00002b4e: POP 00002b4f: PUSH2 0x2b04 00002b52: JUMP 00002b53: JUMPDEST 00002b54: POP 00002b55: DUP2 00002b56: PUSH1 0x03 00002b58: DUP2 00002b59: SWAP1 00002b5a: SSTORE 00002b5b: POP 00002b5c: POP 00002b5d: POP 00002b5e: JUMPDEST 00002b5f: JUMP 00002b60: JUMPDEST 00002b61: PUSH1 0x00 00002b63: DUP1 00002b64: PUSH1 0x08 00002b66: PUSH1 0x00 00002b68: DUP5 00002b69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b7e: AND 00002b7f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b94: AND 00002b95: DUP2 00002b96: MSTORE 00002b97: PUSH1 0x20 00002b99: ADD 00002b9a: SWAP1 00002b9b: DUP2 00002b9c: MSTORE 00002b9d: PUSH1 0x20 00002b9f: ADD 00002ba0: PUSH1 0x00 00002ba2: KECCAK256 00002ba3: SWAP1 00002ba4: POP 00002ba5: PUSH1 0x00 00002ba7: PUSH2 0x2bb0 00002baa: DUP6 00002bab: DUP6 00002bac: PUSH2 0x28ec 00002baf: JUMP 00002bb0: JUMPDEST 00002bb1: SWAP1 00002bb2: POP 00002bb3: PUSH1 0x00 00002bb5: PUSH2 0x2c5b 00002bb8: PUSH2 0x2c2b 00002bbb: PUSH2 0x2c26 00002bbe: PUSH1 0x03 00002bc0: SLOAD 00002bc1: PUSH1 0x0a 00002bc3: PUSH1 0x00 00002bc5: DUP12 00002bc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bdb: AND 00002bdc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bf1: AND 00002bf2: DUP2 00002bf3: MSTORE 00002bf4: PUSH1 0x20 00002bf6: ADD 00002bf7: SWAP1 00002bf8: DUP2 00002bf9: MSTORE 00002bfa: PUSH1 0x20 00002bfc: ADD 00002bfd: PUSH1 0x00 00002bff: KECCAK256 00002c00: PUSH1 0x00 00002c02: ADD 00002c03: PUSH1 0x08 00002c05: SWAP1 00002c06: SLOAD 00002c07: SWAP1 00002c08: PUSH2 0x0100 00002c0b: EXP 00002c0c: SWAP1 00002c0d: DIV 00002c0e: PUSH8 0xffffffffffffffff 00002c17: AND 00002c18: PUSH8 0xffffffffffffffff 00002c21: AND 00002c22: PUSH2 0x3501 00002c25: JUMP 00002c26: JUMPDEST 00002c27: PUSH2 0x326e 00002c2a: JUMP 00002c2b: JUMPDEST 00002c2c: PUSH2 0x2c56 00002c2f: DUP6 00002c30: PUSH1 0x00 00002c32: ADD 00002c33: PUSH1 0x08 00002c35: SWAP1 00002c36: SLOAD 00002c37: SWAP1 00002c38: PUSH2 0x0100 00002c3b: EXP 00002c3c: SWAP1 00002c3d: DIV 00002c3e: PUSH8 0xffffffffffffffff 00002c47: AND 00002c48: PUSH8 0xffffffffffffffff 00002c51: AND 00002c52: PUSH2 0x2ecc 00002c55: JUMP 00002c56: JUMPDEST 00002c57: PUSH2 0x3501 00002c5a: JUMP 00002c5b: JUMPDEST 00002c5c: SWAP1 00002c5d: POP 00002c5e: PUSH1 0x00 00002c60: PUSH1 0x09 00002c62: PUSH1 0x00 00002c64: DUP8 00002c65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c7a: AND 00002c7b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c90: AND 00002c91: DUP2 00002c92: MSTORE 00002c93: PUSH1 0x20 00002c95: ADD 00002c96: SWAP1 00002c97: DUP2 00002c98: MSTORE 00002c99: PUSH1 0x20 00002c9b: ADD 00002c9c: PUSH1 0x00 00002c9e: KECCAK256 00002c9f: SWAP1 00002ca0: POP 00002ca1: PUSH1 0x00 00002ca3: PUSH1 0x0b 00002ca5: PUSH1 0x00 00002ca7: DUP10 00002ca8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cbd: AND 00002cbe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cd3: AND 00002cd4: DUP2 00002cd5: MSTORE 00002cd6: PUSH1 0x20 00002cd8: ADD 00002cd9: SWAP1 00002cda: DUP2 00002cdb: MSTORE 00002cdc: PUSH1 0x20 00002cde: ADD 00002cdf: PUSH1 0x00 00002ce1: KECCAK256 00002ce2: SWAP1 00002ce3: POP 00002ce4: PUSH1 0x00 00002ce6: DUP1 00002ce7: PUSH1 0x00 00002ce9: SWAP1 00002cea: POP 00002ceb: JUMPDEST 00002cec: PUSH1 0x14 00002cee: DUP2 00002cef: LT 00002cf0: ISZERO 00002cf1: PUSH2 0x2d5a 00002cf4: JUMPI 00002cf5: DUP5 00002cf6: DUP7 00002cf7: LT 00002cf8: PUSH2 0x2d00 00002cfb: JUMPI 00002cfc: PUSH2 0x2d5a 00002cff: JUMP 00002d00: JUMPDEST 00002d01: PUSH1 0x04 00002d03: PUSH1 0x00 00002d05: DUP8 00002d06: DUP2 00002d07: MSTORE 00002d08: PUSH1 0x20 00002d0a: ADD 00002d0b: SWAP1 00002d0c: DUP2 00002d0d: MSTORE 00002d0e: PUSH1 0x20 00002d10: ADD 00002d11: PUSH1 0x00 00002d13: KECCAK256 00002d14: SLOAD 00002d15: DUP4 00002d16: PUSH1 0x00 00002d18: DUP9 00002d19: DUP2 00002d1a: MSTORE 00002d1b: PUSH1 0x20 00002d1d: ADD 00002d1e: SWAP1 00002d1f: DUP2 00002d20: MSTORE 00002d21: PUSH1 0x20 00002d23: ADD 00002d24: PUSH1 0x00 00002d26: KECCAK256 00002d27: SLOAD 00002d28: DUP6 00002d29: PUSH1 0x00 00002d2b: DUP10 00002d2c: DUP2 00002d2d: MSTORE 00002d2e: PUSH1 0x20 00002d30: ADD 00002d31: SWAP1 00002d32: DUP2 00002d33: MSTORE 00002d34: PUSH1 0x20 00002d36: ADD 00002d37: PUSH1 0x00 00002d39: KECCAK256 00002d3a: SLOAD 00002d3b: MUL 00002d3c: DUP2 00002d3d: PUSH2 0x2d42 00002d40: JUMPI 00002d41: INVALID 00002d42: JUMPDEST 00002d43: DIV 00002d44: DUP3 00002d45: ADD 00002d46: SWAP2 00002d47: POP 00002d48: PUSH3 0x093a80 00002d4c: DUP7 00002d4d: ADD 00002d4e: SWAP6 00002d4f: POP 00002d50: DUP1 00002d51: PUSH1 0x01 00002d53: ADD 00002d54: SWAP1 00002d55: POP 00002d56: PUSH2 0x2ceb 00002d59: JUMP 00002d5a: JUMPDEST 00002d5b: POP 00002d5c: DUP5 00002d5d: PUSH1 0x0c 00002d5f: PUSH1 0x00 00002d61: DUP12 00002d62: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d77: AND 00002d78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d8d: AND 00002d8e: DUP2 00002d8f: MSTORE 00002d90: PUSH1 0x20 00002d92: ADD 00002d93: SWAP1 00002d94: DUP2 00002d95: MSTORE 00002d96: PUSH1 0x20 00002d98: ADD 00002d99: PUSH1 0x00 00002d9b: KECCAK256 00002d9c: PUSH1 0x00 00002d9e: DUP11 00002d9f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002db4: AND 00002db5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dca: AND 00002dcb: DUP2 00002dcc: MSTORE 00002dcd: PUSH1 0x20 00002dcf: ADD 00002dd0: SWAP1 00002dd1: DUP2 00002dd2: MSTORE 00002dd3: PUSH1 0x20 00002dd5: ADD 00002dd6: PUSH1 0x00 00002dd8: KECCAK256 00002dd9: DUP2 00002dda: SWAP1 00002ddb: SSTORE 00002ddc: POP 00002ddd: PUSH1 0x00 00002ddf: DUP2 00002de0: GT 00002de1: ISZERO 00002de2: PUSH2 0x2ebd 00002de5: JUMPI 00002de6: DUP1 00002de7: DUP7 00002de8: PUSH1 0x00 00002dea: ADD 00002deb: PUSH1 0x10 00002ded: SWAP1 00002dee: SLOAD 00002def: SWAP1 00002df0: PUSH2 0x0100 00002df3: EXP 00002df4: SWAP1 00002df5: DIV 00002df6: PUSH16 0xffffffffffffffffffffffffffffffff 00002e07: AND 00002e08: PUSH16 0xffffffffffffffffffffffffffffffff 00002e19: AND 00002e1a: SUB 00002e1b: DUP7 00002e1c: PUSH1 0x00 00002e1e: ADD 00002e1f: PUSH1 0x10 00002e21: PUSH2 0x0100 00002e24: EXP 00002e25: DUP2 00002e26: SLOAD 00002e27: DUP2 00002e28: PUSH16 0xffffffffffffffffffffffffffffffff 00002e39: MUL 00002e3a: NOT 00002e3b: AND 00002e3c: SWAP1 00002e3d: DUP4 00002e3e: PUSH16 0xffffffffffffffffffffffffffffffff 00002e4f: AND 00002e50: MUL 00002e51: OR 00002e52: SWAP1 00002e53: SSTORE 00002e54: POP 00002e55: PUSH2 0x2e7f 00002e58: DUP10 00002e59: DUP3 00002e5a: DUP11 00002e5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e70: AND 00002e71: PUSH2 0x30b5 00002e74: SWAP1 00002e75: SWAP3 00002e76: SWAP2 00002e77: SWAP1 00002e78: PUSH4 0xffffffff 00002e7d: AND 00002e7e: JUMP 00002e7f: JUMPDEST 00002e80: PUSH32 0xff097c7d8b1957a4ff09ef1361b5fb54dcede3941ba836d0beb9d10bec725de6 00002ea1: DUP10 00002ea2: DUP10 00002ea3: DUP4 00002ea4: DUP9 00002ea5: PUSH1 0x40 00002ea7: MLOAD 00002ea8: PUSH2 0x2eb4 00002eab: SWAP5 00002eac: SWAP4 00002ead: SWAP3 00002eae: SWAP2 00002eaf: SWAP1 00002eb0: PUSH2 0x3fcf 00002eb3: JUMP 00002eb4: JUMPDEST 00002eb5: PUSH1 0x40 00002eb7: MLOAD 00002eb8: DUP1 00002eb9: SWAP2 00002eba: SUB 00002ebb: SWAP1 00002ebc: LOG1 00002ebd: JUMPDEST 00002ebe: DUP1 00002ebf: SWAP7 00002ec0: POP 00002ec1: POP 00002ec2: POP 00002ec3: POP 00002ec4: POP 00002ec5: POP 00002ec6: POP 00002ec7: SWAP3 00002ec8: SWAP2 00002ec9: POP 00002eca: POP 00002ecb: JUMP 00002ecc: JUMPDEST 00002ecd: PUSH1 0x00 00002ecf: PUSH3 0x093a80 00002ed3: DUP1 00002ed4: DUP4 00002ed5: DUP2 00002ed6: PUSH2 0x2edb 00002ed9: JUMPI 00002eda: INVALID 00002edb: JUMPDEST 00002edc: DIV 00002edd: MUL 00002ede: SWAP1 00002edf: POP 00002ee0: SWAP2 00002ee1: SWAP1 00002ee2: POP 00002ee3: JUMP 00002ee4: JUMPDEST 00002ee5: PUSH1 0x00 00002ee7: DUP1 00002ee8: PUSH1 0x01 00002eea: DUP1 00002eeb: SLOAD 00002eec: SWAP1 00002eed: PUSH2 0x0100 00002ef0: EXP 00002ef1: SWAP1 00002ef2: DIV 00002ef3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f08: AND 00002f09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f1e: AND 00002f1f: PUSH4 0x010ae757 00002f24: DUP6 00002f25: PUSH1 0x40 00002f27: MLOAD 00002f28: DUP3 00002f29: PUSH4 0xffffffff 00002f2e: AND 00002f2f: PUSH1 0xe0 00002f31: SHL 00002f32: DUP2 00002f33: MSTORE 00002f34: PUSH1 0x04 00002f36: ADD 00002f37: PUSH2 0x2f40 00002f3a: SWAP2 00002f3b: SWAP1 00002f3c: PUSH2 0x3f7d 00002f3f: JUMP 00002f40: JUMPDEST 00002f41: PUSH1 0x20 00002f43: PUSH1 0x40 00002f45: MLOAD 00002f46: DUP1 00002f47: DUP4 00002f48: SUB 00002f49: DUP2 00002f4a: DUP7 00002f4b: DUP1 00002f4c: EXTCODESIZE 00002f4d: ISZERO 00002f4e: DUP1 00002f4f: ISZERO 00002f50: PUSH2 0x2f58 00002f53: JUMPI 00002f54: PUSH1 0x00 00002f56: DUP1 00002f57: REVERT 00002f58: JUMPDEST 00002f59: POP 00002f5a: GAS 00002f5b: STATICCALL 00002f5c: ISZERO 00002f5d: DUP1 00002f5e: ISZERO 00002f5f: PUSH2 0x2f6c 00002f62: JUMPI 00002f63: RETURNDATASIZE 00002f64: PUSH1 0x00 00002f66: DUP1 00002f67: RETURNDATACOPY 00002f68: RETURNDATASIZE 00002f69: PUSH1 0x00 00002f6b: REVERT 00002f6c: JUMPDEST 00002f6d: POP 00002f6e: POP 00002f6f: POP 00002f70: POP 00002f71: PUSH1 0x40 00002f73: MLOAD 00002f74: RETURNDATASIZE 00002f75: PUSH1 0x1f 00002f77: NOT 00002f78: PUSH1 0x1f 00002f7a: DUP3 00002f7b: ADD 00002f7c: AND 00002f7d: DUP3 00002f7e: ADD 00002f7f: DUP1 00002f80: PUSH1 0x40 00002f82: MSTORE 00002f83: POP 00002f84: DUP2 00002f85: ADD 00002f86: SWAP1 00002f87: PUSH2 0x2f90 00002f8a: SWAP2 00002f8b: SWAP1 00002f8c: PUSH2 0x3b2b 00002f8f: JUMP 00002f90: JUMPDEST 00002f91: SWAP1 00002f92: POP 00002f93: PUSH1 0x00 00002f95: DUP2 00002f96: EQ 00002f97: ISZERO 00002f98: PUSH2 0x2fa5 00002f9b: JUMPI 00002f9c: PUSH1 0x00 00002f9e: SWAP2 00002f9f: POP 00002fa0: POP 00002fa1: PUSH2 0x30af 00002fa4: JUMP 00002fa5: JUMPDEST 00002fa6: PUSH2 0x2fad 00002fa9: PUSH2 0x35c8 00002fac: JUMP 00002fad: JUMPDEST 00002fae: PUSH1 0x01 00002fb0: DUP1 00002fb1: SLOAD 00002fb2: SWAP1 00002fb3: PUSH2 0x0100 00002fb6: EXP 00002fb7: SWAP1 00002fb8: DIV 00002fb9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002fce: AND 00002fcf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002fe4: AND 00002fe5: PUSH4 0x28d09d47 00002fea: DUP7 00002feb: DUP5 00002fec: PUSH1 0x40 00002fee: MLOAD 00002fef: DUP4 00002ff0: PUSH4 0xffffffff 00002ff5: AND 00002ff6: PUSH1 0xe0 00002ff8: SHL 00002ff9: DUP2 00002ffa: MSTORE 00002ffb: PUSH1 0x04 00002ffd: ADD 00002ffe: PUSH2 0x3008 00003001: SWAP3 00003002: SWAP2 00003003: SWAP1 00003004: PUSH2 0x4014 00003007: JUMP 00003008: JUMPDEST 00003009: PUSH1 0x80 0000300b: PUSH1 0x40 0000300d: MLOAD 0000300e: DUP1 0000300f: DUP4 00003010: SUB 00003011: DUP2 00003012: DUP7 00003013: DUP1 00003014: EXTCODESIZE 00003015: ISZERO 00003016: DUP1 00003017: ISZERO 00003018: PUSH2 0x3020 0000301b: JUMPI 0000301c: PUSH1 0x00 0000301e: DUP1 0000301f: REVERT 00003020: JUMPDEST 00003021: POP 00003022: GAS 00003023: STATICCALL 00003024: ISZERO 00003025: DUP1 00003026: ISZERO 00003027: PUSH2 0x3034 0000302a: JUMPI 0000302b: RETURNDATASIZE 0000302c: PUSH1 0x00 0000302e: DUP1 0000302f: RETURNDATACOPY 00003030: RETURNDATASIZE 00003031: PUSH1 0x00 00003033: REVERT 00003034: JUMPDEST 00003035: POP 00003036: POP 00003037: POP 00003038: POP 00003039: PUSH1 0x40 0000303b: MLOAD 0000303c: RETURNDATASIZE 0000303d: PUSH1 0x1f 0000303f: NOT 00003040: PUSH1 0x1f 00003042: DUP3 00003043: ADD 00003044: AND 00003045: DUP3 00003046: ADD 00003047: DUP1 00003048: PUSH1 0x40 0000304a: MSTORE 0000304b: POP 0000304c: DUP2 0000304d: ADD 0000304e: SWAP1 0000304f: PUSH2 0x3058 00003052: SWAP2 00003053: SWAP1 00003054: PUSH2 0x3ad9 00003057: JUMP 00003058: JUMPDEST 00003059: SWAP1 0000305a: POP 0000305b: DUP1 0000305c: PUSH1 0x40 0000305e: ADD 0000305f: MLOAD 00003060: DUP5 00003061: SUB 00003062: DUP2 00003063: PUSH1 0x20 00003065: ADD 00003066: MLOAD 00003067: MUL 00003068: DUP2 00003069: PUSH1 0x00 0000306b: ADD 0000306c: DUP2 0000306d: DUP2 0000306e: MLOAD 0000306f: SUB 00003070: SWAP2 00003071: POP 00003072: SWAP1 00003073: PUSH1 0x0f 00003075: SIGNEXTEND 00003076: SWAP1 00003077: DUP2 00003078: PUSH1 0x0f 0000307a: SIGNEXTEND 0000307b: DUP2 0000307c: MSTORE 0000307d: POP 0000307e: POP 0000307f: PUSH1 0x00 00003081: DUP2 00003082: PUSH1 0x00 00003084: ADD 00003085: MLOAD 00003086: PUSH1 0x0f 00003088: SIGNEXTEND 00003089: SLT 0000308a: ISZERO 0000308b: PUSH2 0x30a2 0000308e: JUMPI 0000308f: PUSH1 0x00 00003091: DUP2 00003092: PUSH1 0x00 00003094: ADD 00003095: SWAP1 00003096: PUSH1 0x0f 00003098: SIGNEXTEND 00003099: SWAP1 0000309a: DUP2 0000309b: PUSH1 0x0f 0000309d: SIGNEXTEND 0000309e: DUP2 0000309f: MSTORE 000030a0: POP 000030a1: POP 000030a2: JUMPDEST 000030a3: DUP1 000030a4: PUSH1 0x00 000030a6: ADD 000030a7: MLOAD 000030a8: PUSH1 0x0f 000030aa: SIGNEXTEND 000030ab: SWAP3 000030ac: POP 000030ad: POP 000030ae: POP 000030af: JUMPDEST 000030b0: SWAP3 000030b1: SWAP2 000030b2: POP 000030b3: POP 000030b4: JUMP 000030b5: JUMPDEST 000030b6: PUSH2 0x3136 000030b9: DUP4 000030ba: PUSH4 0xa9059cbb 000030bf: PUSH1 0xe0 000030c1: SHL 000030c2: DUP5 000030c3: DUP5 000030c4: PUSH1 0x40 000030c6: MLOAD 000030c7: PUSH1 0x24 000030c9: ADD 000030ca: PUSH2 0x30d4 000030cd: SWAP3 000030ce: SWAP2 000030cf: SWAP1 000030d0: PUSH2 0x4014 000030d3: JUMP 000030d4: JUMPDEST 000030d5: PUSH1 0x40 000030d7: MLOAD 000030d8: PUSH1 0x20 000030da: DUP2 000030db: DUP4 000030dc: SUB 000030dd: SUB 000030de: DUP2 000030df: MSTORE 000030e0: SWAP1 000030e1: PUSH1 0x40 000030e3: MSTORE 000030e4: SWAP1 000030e5: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003102: NOT 00003103: AND 00003104: PUSH1 0x20 00003106: DUP3 00003107: ADD 00003108: DUP1 00003109: MLOAD 0000310a: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003127: DUP4 00003128: DUP2 00003129: DUP4 0000312a: AND 0000312b: OR 0000312c: DUP4 0000312d: MSTORE 0000312e: POP 0000312f: POP 00003130: POP 00003131: POP 00003132: PUSH2 0x344d 00003135: JUMP 00003136: JUMPDEST 00003137: POP 00003138: POP 00003139: POP 0000313a: JUMP 0000313b: JUMPDEST 0000313c: DUP2 0000313d: PUSH2 0x314a 00003140: JUMPI 00003141: PUSH2 0x3149 00003144: DUP2 00003145: PUSH2 0x3514 00003148: JUMP 00003149: JUMPDEST 0000314a: JUMPDEST 0000314b: POP 0000314c: POP 0000314d: JUMP 0000314e: JUMPDEST 0000314f: PUSH1 0x00 00003151: DUP1 00003152: DUP4 00003153: SWAP1 00003154: POP 00003155: PUSH1 0x00 00003157: DUP4 00003158: SWAP1 00003159: POP 0000315a: PUSH1 0x00 0000315c: JUMPDEST 0000315d: PUSH1 0x80 0000315f: DUP2 00003160: LT 00003161: ISZERO 00003162: PUSH2 0x3260 00003165: JUMPI 00003166: DUP2 00003167: DUP4 00003168: LT 00003169: PUSH2 0x3171 0000316c: JUMPI 0000316d: PUSH2 0x3260 00003170: JUMP 00003171: JUMPDEST 00003172: PUSH1 0x00 00003174: PUSH1 0x02 00003176: DUP1 00003177: DUP5 00003178: DUP7 00003179: ADD 0000317a: ADD 0000317b: DUP2 0000317c: PUSH2 0x3181 0000317f: JUMPI 00003180: INVALID 00003181: JUMPDEST 00003182: DIV 00003183: SWAP1 00003184: POP 00003185: PUSH2 0x318c 00003188: PUSH2 0x35c8 0000318b: JUMP 0000318c: JUMPDEST 0000318d: PUSH1 0x01 0000318f: DUP1 00003190: SLOAD 00003191: SWAP1 00003192: PUSH2 0x0100 00003195: EXP 00003196: SWAP1 00003197: DIV 00003198: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031ad: AND 000031ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031c3: AND 000031c4: PUSH4 0x28d09d47 000031c9: DUP12 000031ca: DUP5 000031cb: PUSH1 0x40 000031cd: MLOAD 000031ce: DUP4 000031cf: PUSH4 0xffffffff 000031d4: AND 000031d5: PUSH1 0xe0 000031d7: SHL 000031d8: DUP2 000031d9: MSTORE 000031da: PUSH1 0x04 000031dc: ADD 000031dd: PUSH2 0x31e7 000031e0: SWAP3 000031e1: SWAP2 000031e2: SWAP1 000031e3: PUSH2 0x4014 000031e6: JUMP 000031e7: JUMPDEST 000031e8: PUSH1 0x80 000031ea: PUSH1 0x40 000031ec: MLOAD 000031ed: DUP1 000031ee: DUP4 000031ef: SUB 000031f0: DUP2 000031f1: DUP7 000031f2: DUP1 000031f3: EXTCODESIZE 000031f4: ISZERO 000031f5: DUP1 000031f6: ISZERO 000031f7: PUSH2 0x31ff 000031fa: JUMPI 000031fb: PUSH1 0x00 000031fd: DUP1 000031fe: REVERT 000031ff: JUMPDEST 00003200: POP 00003201: GAS 00003202: STATICCALL 00003203: ISZERO 00003204: DUP1 00003205: ISZERO 00003206: PUSH2 0x3213 00003209: JUMPI 0000320a: RETURNDATASIZE 0000320b: PUSH1 0x00 0000320d: DUP1 0000320e: RETURNDATACOPY 0000320f: RETURNDATASIZE 00003210: PUSH1 0x00 00003212: REVERT 00003213: JUMPDEST 00003214: POP 00003215: POP 00003216: POP 00003217: POP 00003218: PUSH1 0x40 0000321a: MLOAD 0000321b: RETURNDATASIZE 0000321c: PUSH1 0x1f 0000321e: NOT 0000321f: PUSH1 0x1f 00003221: DUP3 00003222: ADD 00003223: AND 00003224: DUP3 00003225: ADD 00003226: DUP1 00003227: PUSH1 0x40 00003229: MSTORE 0000322a: POP 0000322b: DUP2 0000322c: ADD 0000322d: SWAP1 0000322e: PUSH2 0x3237 00003231: SWAP2 00003232: SWAP1 00003233: PUSH2 0x3ad9 00003236: JUMP 00003237: JUMPDEST 00003238: SWAP1 00003239: POP 0000323a: DUP9 0000323b: DUP2 0000323c: PUSH1 0x40 0000323e: ADD 0000323f: MLOAD 00003240: GT 00003241: PUSH2 0x324c 00003244: JUMPI 00003245: DUP2 00003246: SWAP5 00003247: POP 00003248: PUSH2 0x3253 0000324b: JUMP 0000324c: JUMPDEST 0000324d: PUSH1 0x01 0000324f: DUP3 00003250: SUB 00003251: SWAP4 00003252: POP 00003253: JUMPDEST 00003254: POP 00003255: POP 00003256: DUP1 00003257: PUSH1 0x01 00003259: ADD 0000325a: SWAP1 0000325b: POP 0000325c: PUSH2 0x315c 0000325f: JUMP 00003260: JUMPDEST 00003261: POP 00003262: DUP2 00003263: SWAP3 00003264: POP 00003265: POP 00003266: POP 00003267: SWAP5 00003268: SWAP4 00003269: POP 0000326a: POP 0000326b: POP 0000326c: POP 0000326d: JUMP 0000326e: JUMPDEST 0000326f: PUSH1 0x00 00003271: PUSH2 0x3281 00003274: PUSH1 0x01 00003276: PUSH3 0x093a80 0000327a: DUP5 0000327b: ADD 0000327c: SUB 0000327d: PUSH2 0x2ecc 00003280: JUMP 00003281: JUMPDEST 00003282: SWAP1 00003283: POP 00003284: SWAP2 00003285: SWAP1 00003286: POP 00003287: JUMP 00003288: JUMPDEST 00003289: PUSH1 0x00 0000328b: DUP2 0000328c: DUP4 0000328d: LT 0000328e: DUP3 0000328f: DUP5 00003290: SUB 00003291: MUL 00003292: DUP4 00003293: SUB 00003294: SWAP1 00003295: POP 00003296: SWAP3 00003297: SWAP2 00003298: POP 00003299: POP 0000329a: JUMP 0000329b: JUMPDEST 0000329c: PUSH1 0x00 0000329e: PUSH2 0x32a5 000032a1: PUSH2 0x35c8 000032a4: JUMP 000032a5: JUMPDEST 000032a6: DUP4 000032a7: SWAP1 000032a8: POP 000032a9: PUSH1 0x00 000032ab: PUSH3 0x093a80 000032af: DUP1 000032b0: DUP4 000032b1: PUSH1 0x40 000032b3: ADD 000032b4: MLOAD 000032b5: DUP2 000032b6: PUSH2 0x32bb 000032b9: JUMPI 000032ba: INVALID 000032bb: JUMPDEST 000032bc: DIV 000032bd: MUL 000032be: SWAP1 000032bf: POP 000032c0: PUSH1 0x00 000032c2: JUMPDEST 000032c3: PUSH1 0xff 000032c5: DUP2 000032c6: LT 000032c7: ISZERO 000032c8: PUSH2 0x33f1 000032cb: JUMPI 000032cc: PUSH3 0x093a80 000032d0: DUP3 000032d1: ADD 000032d2: SWAP2 000032d3: POP 000032d4: PUSH1 0x00 000032d6: DUP6 000032d7: DUP4 000032d8: GT 000032d9: ISZERO 000032da: PUSH2 0x32e5 000032dd: JUMPI 000032de: DUP6 000032df: SWAP3 000032e0: POP 000032e1: PUSH2 0x3391 000032e4: JUMP 000032e5: JUMPDEST 000032e6: PUSH1 0x01 000032e8: DUP1 000032e9: SLOAD 000032ea: SWAP1 000032eb: PUSH2 0x0100 000032ee: EXP 000032ef: SWAP1 000032f0: DIV 000032f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003306: AND 00003307: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000331c: AND 0000331d: PUSH4 0x71197484 00003322: DUP5 00003323: PUSH1 0x40 00003325: MLOAD 00003326: DUP3 00003327: PUSH4 0xffffffff 0000332c: AND 0000332d: PUSH1 0xe0 0000332f: SHL 00003330: DUP2 00003331: MSTORE 00003332: PUSH1 0x04 00003334: ADD 00003335: PUSH2 0x333e 00003338: SWAP2 00003339: SWAP1 0000333a: PUSH2 0x420e 0000333d: JUMP 0000333e: JUMPDEST 0000333f: PUSH1 0x20 00003341: PUSH1 0x40 00003343: MLOAD 00003344: DUP1 00003345: DUP4 00003346: SUB 00003347: DUP2 00003348: DUP7 00003349: DUP1 0000334a: EXTCODESIZE 0000334b: ISZERO 0000334c: DUP1 0000334d: ISZERO 0000334e: PUSH2 0x3356 00003351: JUMPI 00003352: PUSH1 0x00 00003354: DUP1 00003355: REVERT 00003356: JUMPDEST 00003357: POP 00003358: GAS 00003359: STATICCALL 0000335a: ISZERO 0000335b: DUP1 0000335c: ISZERO 0000335d: PUSH2 0x336a 00003360: JUMPI 00003361: RETURNDATASIZE 00003362: PUSH1 0x00 00003364: DUP1 00003365: RETURNDATACOPY 00003366: RETURNDATASIZE 00003367: PUSH1 0x00 00003369: REVERT 0000336a: JUMPDEST 0000336b: POP 0000336c: POP 0000336d: POP 0000336e: POP 0000336f: PUSH1 0x40 00003371: MLOAD 00003372: RETURNDATASIZE 00003373: PUSH1 0x1f 00003375: NOT 00003376: PUSH1 0x1f 00003378: DUP3 00003379: ADD 0000337a: AND 0000337b: DUP3 0000337c: ADD 0000337d: DUP1 0000337e: PUSH1 0x40 00003380: MSTORE 00003381: POP 00003382: DUP2 00003383: ADD 00003384: SWAP1 00003385: PUSH2 0x338e 00003388: SWAP2 00003389: SWAP1 0000338a: PUSH2 0x3ab0 0000338d: JUMP 0000338e: JUMPDEST 0000338f: SWAP1 00003390: POP 00003391: JUMPDEST 00003392: DUP4 00003393: PUSH1 0x40 00003395: ADD 00003396: MLOAD 00003397: DUP4 00003398: SUB 00003399: DUP5 0000339a: PUSH1 0x20 0000339c: ADD 0000339d: MLOAD 0000339e: MUL 0000339f: DUP5 000033a0: PUSH1 0x00 000033a2: ADD 000033a3: DUP2 000033a4: DUP2 000033a5: MLOAD 000033a6: SUB 000033a7: SWAP2 000033a8: POP 000033a9: SWAP1 000033aa: PUSH1 0x0f 000033ac: SIGNEXTEND 000033ad: SWAP1 000033ae: DUP2 000033af: PUSH1 0x0f 000033b1: SIGNEXTEND 000033b2: DUP2 000033b3: MSTORE 000033b4: POP 000033b5: POP 000033b6: DUP6 000033b7: DUP4 000033b8: EQ 000033b9: ISZERO 000033ba: PUSH2 0x33c3 000033bd: JUMPI 000033be: POP 000033bf: PUSH2 0x33f1 000033c2: JUMP 000033c3: JUMPDEST 000033c4: DUP1 000033c5: DUP5 000033c6: PUSH1 0x20 000033c8: ADD 000033c9: DUP2 000033ca: DUP2 000033cb: MLOAD 000033cc: ADD 000033cd: SWAP2 000033ce: POP 000033cf: SWAP1 000033d0: PUSH1 0x0f 000033d2: SIGNEXTEND 000033d3: SWAP1 000033d4: DUP2 000033d5: PUSH1 0x0f 000033d7: SIGNEXTEND 000033d8: DUP2 000033d9: MSTORE 000033da: POP 000033db: POP 000033dc: DUP3 000033dd: DUP5 000033de: PUSH1 0x40 000033e0: ADD 000033e1: DUP2 000033e2: DUP2 000033e3: MSTORE 000033e4: POP 000033e5: POP 000033e6: POP 000033e7: DUP1 000033e8: PUSH1 0x01 000033ea: ADD 000033eb: SWAP1 000033ec: POP 000033ed: PUSH2 0x32c2 000033f0: JUMP 000033f1: JUMPDEST 000033f2: POP 000033f3: PUSH1 0x00 000033f5: DUP3 000033f6: PUSH1 0x00 000033f8: ADD 000033f9: MLOAD 000033fa: PUSH1 0x0f 000033fc: SIGNEXTEND 000033fd: SLT 000033fe: ISZERO 000033ff: PUSH2 0x3416 00003402: JUMPI 00003403: PUSH1 0x00 00003405: DUP3 00003406: PUSH1 0x00 00003408: ADD 00003409: SWAP1 0000340a: PUSH1 0x0f 0000340c: SIGNEXTEND 0000340d: SWAP1 0000340e: DUP2 0000340f: PUSH1 0x0f 00003411: SIGNEXTEND 00003412: DUP2 00003413: MSTORE 00003414: POP 00003415: POP 00003416: JUMPDEST 00003417: DUP2 00003418: PUSH1 0x00 0000341a: ADD 0000341b: MLOAD 0000341c: PUSH16 0xffffffffffffffffffffffffffffffff 0000342d: AND 0000342e: SWAP3 0000342f: POP 00003430: POP 00003431: POP 00003432: SWAP3 00003433: SWAP2 00003434: POP 00003435: POP 00003436: JUMP 00003437: JUMPDEST 00003438: PUSH1 0x00 0000343a: PUSH2 0x3445 0000343d: DUP4 0000343e: DUP4 0000343f: PUSH1 0x01 00003441: PUSH2 0x3527 00003444: JUMP 00003445: JUMPDEST 00003446: SWAP1 00003447: POP 00003448: SWAP3 00003449: SWAP2 0000344a: POP 0000344b: POP 0000344c: JUMP 0000344d: JUMPDEST 0000344e: PUSH1 0x00 00003450: PUSH1 0x60 00003452: DUP4 00003453: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003468: AND 00003469: DUP4 0000346a: PUSH1 0x40 0000346c: MLOAD 0000346d: PUSH2 0x3476 00003470: SWAP2 00003471: SWAP1 00003472: PUSH2 0x3f66 00003475: JUMP 00003476: JUMPDEST 00003477: PUSH1 0x00 00003479: PUSH1 0x40 0000347b: MLOAD 0000347c: DUP1 0000347d: DUP4 0000347e: SUB 0000347f: DUP2 00003480: PUSH1 0x00 00003482: DUP7 00003483: GAS 00003484: CALL 00003485: SWAP2 00003486: POP 00003487: POP 00003488: RETURNDATASIZE 00003489: DUP1 0000348a: PUSH1 0x00 0000348c: DUP2 0000348d: EQ 0000348e: PUSH2 0x34b3 00003491: JUMPI 00003492: PUSH1 0x40 00003494: MLOAD 00003495: SWAP2 00003496: POP 00003497: PUSH1 0x1f 00003499: NOT 0000349a: PUSH1 0x3f 0000349c: RETURNDATASIZE 0000349d: ADD 0000349e: AND 0000349f: DUP3 000034a0: ADD 000034a1: PUSH1 0x40 000034a3: MSTORE 000034a4: RETURNDATASIZE 000034a5: DUP3 000034a6: MSTORE 000034a7: RETURNDATASIZE 000034a8: PUSH1 0x00 000034aa: PUSH1 0x20 000034ac: DUP5 000034ad: ADD 000034ae: RETURNDATACOPY 000034af: PUSH2 0x34b8 000034b2: JUMP 000034b3: JUMPDEST 000034b4: PUSH1 0x60 000034b6: SWAP2 000034b7: POP 000034b8: JUMPDEST 000034b9: POP 000034ba: SWAP2 000034bb: POP 000034bc: SWAP2 000034bd: POP 000034be: PUSH1 0x00 000034c0: DUP3 000034c1: EQ 000034c2: ISZERO 000034c3: PUSH2 0x34d0 000034c6: JUMPI 000034c7: RETURNDATASIZE 000034c8: PUSH1 0x00 000034ca: DUP1 000034cb: RETURNDATACOPY 000034cc: RETURNDATASIZE 000034cd: PUSH1 0x00 000034cf: REVERT 000034d0: JUMPDEST 000034d1: PUSH2 0x34fb 000034d4: PUSH1 0x00 000034d6: DUP3 000034d7: MLOAD 000034d8: EQ 000034d9: DUP1 000034da: PUSH2 0x34f3 000034dd: JUMPI 000034de: POP 000034df: DUP2 000034e0: DUP1 000034e1: PUSH1 0x20 000034e3: ADD 000034e4: SWAP1 000034e5: MLOAD 000034e6: DUP2 000034e7: ADD 000034e8: SWAP1 000034e9: PUSH2 0x34f2 000034ec: SWAP2 000034ed: SWAP1 000034ee: PUSH2 0x39d3 000034f1: JUMP 000034f2: JUMPDEST 000034f3: JUMPDEST 000034f4: PUSH2 0x01a2 000034f7: PUSH2 0x313b 000034fa: JUMP 000034fb: JUMPDEST 000034fc: POP 000034fd: POP 000034fe: POP 000034ff: POP 00003500: JUMP 00003501: JUMPDEST 00003502: PUSH1 0x00 00003504: DUP2 00003505: DUP4 00003506: GT 00003507: DUP3 00003508: DUP5 00003509: SUB 0000350a: MUL 0000350b: DUP4 0000350c: SUB 0000350d: SWAP1 0000350e: POP 0000350f: SWAP3 00003510: SWAP2 00003511: POP 00003512: POP 00003513: JUMP 00003514: JUMPDEST 00003515: PUSH2 0x3524 00003518: DUP2 00003519: PUSH3 0x42414c 0000351d: PUSH1 0xe8 0000351f: SHL 00003520: PUSH2 0x3548 00003523: JUMP 00003524: JUMPDEST 00003525: POP 00003526: JUMP 00003527: JUMPDEST 00003528: PUSH1 0x00 0000352a: PUSH2 0x3536 0000352d: DUP5 0000352e: DUP5 0000352f: GT 00003530: ISZERO 00003531: DUP4 00003532: PUSH2 0x313b 00003535: JUMP 00003536: JUMPDEST 00003537: PUSH1 0x00 00003539: DUP4 0000353a: DUP6 0000353b: SUB 0000353c: SWAP1 0000353d: POP 0000353e: DUP1 0000353f: SWAP2 00003540: POP 00003541: POP 00003542: SWAP4 00003543: SWAP3 00003544: POP 00003545: POP 00003546: POP 00003547: JUMP 00003548: JUMPDEST 00003549: PUSH1 0x00 0000354b: DUP2 0000354c: PUSH1 0xe8 0000354e: SHR 0000354f: PUSH3 0xffffff 00003553: AND 00003554: SWAP1 00003555: POP 00003556: PUSH1 0x30 00003558: PUSH1 0x0a 0000355a: DUP5 0000355b: MOD 0000355c: ADD 0000355d: PUSH1 0x0a 0000355f: DUP5 00003560: DIV 00003561: SWAP4 00003562: POP 00003563: PUSH1 0x30 00003565: PUSH1 0x0a 00003567: DUP6 00003568: MOD 00003569: ADD 0000356a: PUSH1 0x0a 0000356c: DUP6 0000356d: DIV 0000356e: SWAP5 0000356f: POP 00003570: PUSH1 0x30 00003572: PUSH1 0x0a 00003574: DUP7 00003575: MOD 00003576: ADD 00003577: DUP4 00003578: PUSH1 0x08 0000357a: SHL 0000357b: PUSH1 0x23 0000357d: ADD 0000357e: PUSH1 0x18 00003580: SHL 00003581: DUP2 00003582: PUSH1 0x10 00003584: SHL 00003585: DUP4 00003586: PUSH1 0x08 00003588: SHL 00003589: DUP6 0000358a: ADD 0000358b: ADD 0000358c: DUP2 0000358d: ADD 0000358e: PUSH1 0xc8 00003590: SHL 00003591: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000035b2: PUSH1 0x00 000035b4: MSTORE 000035b5: PUSH1 0x20 000035b7: PUSH1 0x04 000035b9: MSTORE 000035ba: PUSH1 0x07 000035bc: PUSH1 0x24 000035be: MSTORE 000035bf: DUP1 000035c0: PUSH1 0x44 000035c2: MSTORE 000035c3: PUSH1 0x64 000035c5: PUSH1 0x00 000035c7: REVERT 000035c8: JUMPDEST 000035c9: PUSH1 0x40 000035cb: MLOAD 000035cc: DUP1 000035cd: PUSH1 0x80 000035cf: ADD 000035d0: PUSH1 0x40 000035d2: MSTORE 000035d3: DUP1 000035d4: PUSH1 0x00 000035d6: PUSH1 0x0f 000035d8: SIGNEXTEND 000035d9: DUP2 000035da: MSTORE 000035db: PUSH1 0x20 000035dd: ADD 000035de: PUSH1 0x00 000035e0: PUSH1 0x0f 000035e2: SIGNEXTEND 000035e3: DUP2 000035e4: MSTORE 000035e5: PUSH1 0x20 000035e7: ADD 000035e8: PUSH1 0x00 000035ea: DUP2 000035eb: MSTORE 000035ec: PUSH1 0x20 000035ee: ADD 000035ef: PUSH1 0x00 000035f1: DUP2 000035f2: MSTORE 000035f3: POP 000035f4: SWAP1 000035f5: JUMP 000035f6: JUMPDEST 000035f7: PUSH1 0x00 000035f9: DUP2 000035fa: CALLDATALOAD 000035fb: SWAP1 000035fc: POP 000035fd: PUSH2 0x3605 00003600: DUP2 00003601: PUSH2 0x43e3 00003604: JUMP 00003605: JUMPDEST 00003606: SWAP3 00003607: SWAP2 00003608: POP 00003609: POP 0000360a: JUMP 0000360b: JUMPDEST 0000360c: PUSH1 0x00 0000360e: DUP1 0000360f: DUP4 00003610: PUSH1 0x1f 00003612: DUP5 00003613: ADD 00003614: SLT 00003615: PUSH2 0x361d 00003618: JUMPI 00003619: PUSH1 0x00 0000361b: DUP1 0000361c: REVERT 0000361d: JUMPDEST 0000361e: DUP3 0000361f: CALLDATALOAD 00003620: SWAP1 00003621: POP 00003622: PUSH8 0xffffffffffffffff 0000362b: DUP2 0000362c: GT 0000362d: ISZERO 0000362e: PUSH2 0x3636 00003631: JUMPI 00003632: PUSH1 0x00 00003634: DUP1 00003635: REVERT 00003636: JUMPDEST 00003637: PUSH1 0x20 00003639: DUP4 0000363a: ADD 0000363b: SWAP2 0000363c: POP 0000363d: DUP4 0000363e: PUSH1 0x20 00003640: DUP3 00003641: MUL 00003642: DUP4 00003643: ADD 00003644: GT 00003645: ISZERO 00003646: PUSH2 0x364e 00003649: JUMPI 0000364a: PUSH1 0x00 0000364c: DUP1 0000364d: REVERT 0000364e: JUMPDEST 0000364f: SWAP3 00003650: POP 00003651: SWAP3 00003652: SWAP1 00003653: POP 00003654: JUMP 00003655: JUMPDEST 00003656: PUSH1 0x00 00003658: DUP1 00003659: DUP4 0000365a: PUSH1 0x1f 0000365c: DUP5 0000365d: ADD 0000365e: SLT 0000365f: PUSH2 0x3667 00003662: JUMPI 00003663: PUSH1 0x00 00003665: DUP1 00003666: REVERT 00003667: JUMPDEST 00003668: DUP3 00003669: CALLDATALOAD 0000366a: SWAP1 0000366b: POP 0000366c: PUSH8 0xffffffffffffffff 00003675: DUP2 00003676: GT 00003677: ISZERO 00003678: PUSH2 0x3680 0000367b: JUMPI 0000367c: PUSH1 0x00 0000367e: DUP1 0000367f: REVERT 00003680: JUMPDEST 00003681: PUSH1 0x20 00003683: DUP4 00003684: ADD 00003685: SWAP2 00003686: POP 00003687: DUP4 00003688: PUSH1 0x20 0000368a: DUP3 0000368b: MUL 0000368c: DUP4 0000368d: ADD 0000368e: GT 0000368f: ISZERO 00003690: PUSH2 0x3698 00003693: JUMPI 00003694: PUSH1 0x00 00003696: DUP1 00003697: REVERT 00003698: JUMPDEST 00003699: SWAP3 0000369a: POP 0000369b: SWAP3 0000369c: SWAP1 0000369d: POP 0000369e: JUMP 0000369f: JUMPDEST 000036a0: PUSH1 0x00 000036a2: DUP1 000036a3: DUP4 000036a4: PUSH1 0x1f 000036a6: DUP5 000036a7: ADD 000036a8: SLT 000036a9: PUSH2 0x36b1 000036ac: JUMPI 000036ad: PUSH1 0x00 000036af: DUP1 000036b0: REVERT 000036b1: JUMPDEST 000036b2: DUP3 000036b3: CALLDATALOAD 000036b4: SWAP1 000036b5: POP 000036b6: PUSH8 0xffffffffffffffff 000036bf: DUP2 000036c0: GT 000036c1: ISZERO 000036c2: PUSH2 0x36ca 000036c5: JUMPI 000036c6: PUSH1 0x00 000036c8: DUP1 000036c9: REVERT 000036ca: JUMPDEST 000036cb: PUSH1 0x20 000036cd: DUP4 000036ce: ADD 000036cf: SWAP2 000036d0: POP 000036d1: DUP4 000036d2: PUSH1 0x20 000036d4: DUP3 000036d5: MUL 000036d6: DUP4 000036d7: ADD 000036d8: GT 000036d9: ISZERO 000036da: PUSH2 0x36e2 000036dd: JUMPI 000036de: PUSH1 0x00 000036e0: DUP1 000036e1: REVERT 000036e2: JUMPDEST 000036e3: SWAP3 000036e4: POP 000036e5: SWAP3 000036e6: SWAP1 000036e7: POP 000036e8: JUMP 000036e9: JUMPDEST 000036ea: PUSH1 0x00 000036ec: DUP2 000036ed: MLOAD 000036ee: SWAP1 000036ef: POP 000036f0: PUSH2 0x36f8 000036f3: DUP2 000036f4: PUSH2 0x43fa 000036f7: JUMP 000036f8: JUMPDEST 000036f9: SWAP3 000036fa: SWAP2 000036fb: POP 000036fc: POP 000036fd: JUMP 000036fe: JUMPDEST 000036ff: PUSH1 0x00 00003701: DUP2 00003702: CALLDATALOAD 00003703: SWAP1 00003704: POP 00003705: PUSH2 0x370d 00003708: DUP2 00003709: PUSH2 0x4411 0000370c: JUMP 0000370d: JUMPDEST 0000370e: SWAP3 0000370f: SWAP2 00003710: POP 00003711: POP 00003712: JUMP 00003713: JUMPDEST 00003714: PUSH1 0x00 00003716: DUP2 00003717: CALLDATALOAD 00003718: SWAP1 00003719: POP 0000371a: PUSH2 0x3722 0000371d: DUP2 0000371e: PUSH2 0x4428 00003721: JUMP 00003722: JUMPDEST 00003723: SWAP3 00003724: SWAP2 00003725: POP 00003726: POP 00003727: JUMP 00003728: JUMPDEST 00003729: PUSH1 0x00 0000372b: DUP2 0000372c: MLOAD 0000372d: SWAP1 0000372e: POP 0000372f: PUSH2 0x3737 00003732: DUP2 00003733: PUSH2 0x443f 00003736: JUMP 00003737: JUMPDEST 00003738: SWAP3 00003739: SWAP2 0000373a: POP 0000373b: POP 0000373c: JUMP 0000373d: JUMPDEST 0000373e: PUSH1 0x00 00003740: PUSH1 0x80 00003742: DUP3 00003743: DUP5 00003744: SUB 00003745: SLT 00003746: ISZERO 00003747: PUSH2 0x374f 0000374a: JUMPI 0000374b: PUSH1 0x00 0000374d: DUP1 0000374e: REVERT 0000374f: JUMPDEST 00003750: PUSH2 0x3759 00003753: PUSH1 0x80 00003755: PUSH2 0x4229 00003758: JUMP 00003759: JUMPDEST 0000375a: SWAP1 0000375b: POP 0000375c: PUSH1 0x00 0000375e: PUSH2 0x3769 00003761: DUP5 00003762: DUP3 00003763: DUP6 00003764: ADD 00003765: PUSH2 0x3728 00003768: JUMP 00003769: JUMPDEST 0000376a: PUSH1 0x00 0000376c: DUP4 0000376d: ADD 0000376e: MSTORE 0000376f: POP 00003770: PUSH1 0x20 00003772: PUSH2 0x377d 00003775: DUP5 00003776: DUP3 00003777: DUP6 00003778: ADD 00003779: PUSH2 0x3728 0000377c: JUMP 0000377d: JUMPDEST 0000377e: PUSH1 0x20 00003780: DUP4 00003781: ADD 00003782: MSTORE 00003783: POP 00003784: PUSH1 0x40 00003786: PUSH2 0x3791 00003789: DUP5 0000378a: DUP3 0000378b: DUP6 0000378c: ADD 0000378d: PUSH2 0x37c6 00003790: JUMP 00003791: JUMPDEST 00003792: PUSH1 0x40 00003794: DUP4 00003795: ADD 00003796: MSTORE 00003797: POP 00003798: PUSH1 0x60 0000379a: PUSH2 0x37a5 0000379d: DUP5 0000379e: DUP3 0000379f: DUP6 000037a0: ADD 000037a1: PUSH2 0x37c6 000037a4: JUMP 000037a5: JUMPDEST 000037a6: PUSH1 0x60 000037a8: DUP4 000037a9: ADD 000037aa: MSTORE 000037ab: POP 000037ac: SWAP3 000037ad: SWAP2 000037ae: POP 000037af: POP 000037b0: JUMP 000037b1: JUMPDEST 000037b2: PUSH1 0x00 000037b4: DUP2 000037b5: CALLDATALOAD 000037b6: SWAP1 000037b7: POP 000037b8: PUSH2 0x37c0 000037bb: DUP2 000037bc: PUSH2 0x4456 000037bf: JUMP 000037c0: JUMPDEST 000037c1: SWAP3 000037c2: SWAP2 000037c3: POP 000037c4: POP 000037c5: JUMP 000037c6: JUMPDEST 000037c7: PUSH1 0x00 000037c9: DUP2 000037ca: MLOAD 000037cb: SWAP1 000037cc: POP 000037cd: PUSH2 0x37d5 000037d0: DUP2 000037d1: PUSH2 0x4456 000037d4: JUMP 000037d5: JUMPDEST 000037d6: SWAP3 000037d7: SWAP2 000037d8: POP 000037d9: POP 000037da: JUMP 000037db: JUMPDEST 000037dc: PUSH1 0x00 000037de: PUSH1 0x20 000037e0: DUP3 000037e1: DUP5 000037e2: SUB 000037e3: SLT 000037e4: ISZERO 000037e5: PUSH2 0x37ed 000037e8: JUMPI 000037e9: PUSH1 0x00 000037eb: DUP1 000037ec: REVERT 000037ed: JUMPDEST 000037ee: PUSH1 0x00 000037f0: PUSH2 0x37fb 000037f3: DUP5 000037f4: DUP3 000037f5: DUP6 000037f6: ADD 000037f7: PUSH2 0x35f6 000037fa: JUMP 000037fb: JUMPDEST 000037fc: SWAP2 000037fd: POP 000037fe: POP 000037ff: SWAP3 00003800: SWAP2 00003801: POP 00003802: POP 00003803: JUMP 00003804: JUMPDEST 00003805: PUSH1 0x00 00003807: DUP1 00003808: PUSH1 0x00 0000380a: PUSH1 0x40 0000380c: DUP5 0000380d: DUP7 0000380e: SUB 0000380f: SLT 00003810: ISZERO 00003811: PUSH2 0x3819 00003814: JUMPI 00003815: PUSH1 0x00 00003817: DUP1 00003818: REVERT 00003819: JUMPDEST 0000381a: PUSH1 0x00 0000381c: PUSH2 0x3827 0000381f: DUP7 00003820: DUP3 00003821: DUP8 00003822: ADD 00003823: PUSH2 0x35f6 00003826: JUMP 00003827: JUMPDEST 00003828: SWAP4 00003829: POP 0000382a: POP 0000382b: PUSH1 0x20 0000382d: DUP5 0000382e: ADD 0000382f: CALLDATALOAD 00003830: PUSH8 0xffffffffffffffff 00003839: DUP2 0000383a: GT 0000383b: ISZERO 0000383c: PUSH2 0x3844 0000383f: JUMPI 00003840: PUSH1 0x00 00003842: DUP1 00003843: REVERT 00003844: JUMPDEST 00003845: PUSH2 0x3850 00003848: DUP7 00003849: DUP3 0000384a: DUP8 0000384b: ADD 0000384c: PUSH2 0x3655 0000384f: JUMP 00003850: JUMPDEST 00003851: SWAP3 00003852: POP 00003853: SWAP3 00003854: POP 00003855: POP 00003856: SWAP3 00003857: POP 00003858: SWAP3 00003859: POP 0000385a: SWAP3 0000385b: JUMP 0000385c: JUMPDEST 0000385d: PUSH1 0x00 0000385f: DUP1 00003860: PUSH1 0x40 00003862: DUP4 00003863: DUP6 00003864: SUB 00003865: SLT 00003866: ISZERO 00003867: PUSH2 0x386f 0000386a: JUMPI 0000386b: PUSH1 0x00 0000386d: DUP1 0000386e: REVERT 0000386f: JUMPDEST 00003870: PUSH1 0x00 00003872: PUSH2 0x387d 00003875: DUP6 00003876: DUP3 00003877: DUP7 00003878: ADD 00003879: PUSH2 0x35f6 0000387c: JUMP 0000387d: JUMPDEST 0000387e: SWAP3 0000387f: POP 00003880: POP 00003881: PUSH1 0x20 00003883: PUSH2 0x388e 00003886: DUP6 00003887: DUP3 00003888: DUP7 00003889: ADD 0000388a: PUSH2 0x36fe 0000388d: JUMP 0000388e: JUMPDEST 0000388f: SWAP2 00003890: POP 00003891: POP 00003892: SWAP3 00003893: POP 00003894: SWAP3 00003895: SWAP1 00003896: POP 00003897: JUMP 00003898: JUMPDEST 00003899: PUSH1 0x00 0000389b: DUP1 0000389c: PUSH1 0x40 0000389e: DUP4 0000389f: DUP6 000038a0: SUB 000038a1: SLT 000038a2: ISZERO 000038a3: PUSH2 0x38ab 000038a6: JUMPI 000038a7: PUSH1 0x00 000038a9: DUP1 000038aa: REVERT 000038ab: JUMPDEST 000038ac: PUSH1 0x00 000038ae: PUSH2 0x38b9 000038b1: DUP6 000038b2: DUP3 000038b3: DUP7 000038b4: ADD 000038b5: PUSH2 0x35f6 000038b8: JUMP 000038b9: JUMPDEST 000038ba: SWAP3 000038bb: POP 000038bc: POP 000038bd: PUSH1 0x20 000038bf: PUSH2 0x38ca 000038c2: DUP6 000038c3: DUP3 000038c4: DUP7 000038c5: ADD 000038c6: PUSH2 0x37b1 000038c9: JUMP 000038ca: JUMPDEST 000038cb: SWAP2 000038cc: POP 000038cd: POP 000038ce: SWAP3 000038cf: POP 000038d0: SWAP3 000038d1: SWAP1 000038d2: POP 000038d3: JUMP 000038d4: JUMPDEST 000038d5: PUSH1 0x00 000038d7: DUP1 000038d8: PUSH1 0x20 000038da: DUP4 000038db: DUP6 000038dc: SUB 000038dd: SLT 000038de: ISZERO 000038df: PUSH2 0x38e7 000038e2: JUMPI 000038e3: PUSH1 0x00 000038e5: DUP1 000038e6: REVERT 000038e7: JUMPDEST 000038e8: PUSH1 0x00 000038ea: DUP4 000038eb: ADD 000038ec: CALLDATALOAD 000038ed: PUSH8 0xffffffffffffffff 000038f6: DUP2 000038f7: GT 000038f8: ISZERO 000038f9: PUSH2 0x3901 000038fc: JUMPI 000038fd: PUSH1 0x00 000038ff: DUP1 00003900: REVERT 00003901: JUMPDEST 00003902: PUSH2 0x390d 00003905: DUP6 00003906: DUP3 00003907: DUP7 00003908: ADD 00003909: PUSH2 0x360b 0000390c: JUMP 0000390d: JUMPDEST 0000390e: SWAP3 0000390f: POP 00003910: SWAP3 00003911: POP 00003912: POP 00003913: SWAP3 00003914: POP 00003915: SWAP3 00003916: SWAP1 00003917: POP 00003918: JUMP 00003919: JUMPDEST 0000391a: PUSH1 0x00 0000391c: DUP1 0000391d: PUSH1 0x20 0000391f: DUP4 00003920: DUP6 00003921: SUB 00003922: SLT 00003923: ISZERO 00003924: PUSH2 0x392c 00003927: JUMPI 00003928: PUSH1 0x00 0000392a: DUP1 0000392b: REVERT 0000392c: JUMPDEST 0000392d: PUSH1 0x00 0000392f: DUP4 00003930: ADD 00003931: CALLDATALOAD 00003932: PUSH8 0xffffffffffffffff 0000393b: DUP2 0000393c: GT 0000393d: ISZERO 0000393e: PUSH2 0x3946 00003941: JUMPI 00003942: PUSH1 0x00 00003944: DUP1 00003945: REVERT 00003946: JUMPDEST 00003947: PUSH2 0x3952 0000394a: DUP6 0000394b: DUP3 0000394c: DUP7 0000394d: ADD 0000394e: PUSH2 0x3655 00003951: JUMP 00003952: JUMPDEST 00003953: SWAP3 00003954: POP 00003955: SWAP3 00003956: POP 00003957: POP 00003958: SWAP3 00003959: POP 0000395a: SWAP3 0000395b: SWAP1 0000395c: POP 0000395d: JUMP 0000395e: JUMPDEST 0000395f: PUSH1 0x00 00003961: DUP1 00003962: PUSH1 0x00 00003964: DUP1 00003965: PUSH1 0x40 00003967: DUP6 00003968: DUP8 00003969: SUB 0000396a: SLT 0000396b: ISZERO 0000396c: PUSH2 0x3974 0000396f: JUMPI 00003970: PUSH1 0x00 00003972: DUP1 00003973: REVERT 00003974: JUMPDEST 00003975: PUSH1 0x00 00003977: DUP6 00003978: ADD 00003979: CALLDATALOAD 0000397a: PUSH8 0xffffffffffffffff 00003983: DUP2 00003984: GT 00003985: ISZERO 00003986: PUSH2 0x398e 00003989: JUMPI 0000398a: PUSH1 0x00 0000398c: DUP1 0000398d: REVERT 0000398e: JUMPDEST 0000398f: PUSH2 0x399a 00003992: DUP8 00003993: DUP3 00003994: DUP9 00003995: ADD 00003996: PUSH2 0x3655 00003999: JUMP 0000399a: JUMPDEST 0000399b: SWAP5 0000399c: POP 0000399d: SWAP5 0000399e: POP 0000399f: POP 000039a0: PUSH1 0x20 000039a2: DUP6 000039a3: ADD 000039a4: CALLDATALOAD 000039a5: PUSH8 0xffffffffffffffff 000039ae: DUP2 000039af: GT 000039b0: ISZERO 000039b1: PUSH2 0x39b9 000039b4: JUMPI 000039b5: PUSH1 0x00 000039b7: DUP1 000039b8: REVERT 000039b9: JUMPDEST 000039ba: PUSH2 0x39c5 000039bd: DUP8 000039be: DUP3 000039bf: DUP9 000039c0: ADD 000039c1: PUSH2 0x369f 000039c4: JUMP 000039c5: JUMPDEST 000039c6: SWAP3 000039c7: POP 000039c8: SWAP3 000039c9: POP 000039ca: POP 000039cb: SWAP3 000039cc: SWAP6 000039cd: SWAP2 000039ce: SWAP5 000039cf: POP 000039d0: SWAP3 000039d1: POP 000039d2: JUMP 000039d3: JUMPDEST 000039d4: PUSH1 0x00 000039d6: PUSH1 0x20 000039d8: DUP3 000039d9: DUP5 000039da: SUB 000039db: SLT 000039dc: ISZERO 000039dd: PUSH2 0x39e5 000039e0: JUMPI 000039e1: PUSH1 0x00 000039e3: DUP1 000039e4: REVERT 000039e5: JUMPDEST 000039e6: PUSH1 0x00 000039e8: PUSH2 0x39f3 000039eb: DUP5 000039ec: DUP3 000039ed: DUP6 000039ee: ADD 000039ef: PUSH2 0x36e9 000039f2: JUMP 000039f3: JUMPDEST 000039f4: SWAP2 000039f5: POP 000039f6: POP 000039f7: SWAP3 000039f8: SWAP2 000039f9: POP 000039fa: POP 000039fb: JUMP 000039fc: JUMPDEST 000039fd: PUSH1 0x00 000039ff: PUSH1 0x20 00003a01: DUP3 00003a02: DUP5 00003a03: SUB 00003a04: SLT 00003a05: ISZERO 00003a06: PUSH2 0x3a0e 00003a09: JUMPI 00003a0a: PUSH1 0x00 00003a0c: DUP1 00003a0d: REVERT 00003a0e: JUMPDEST 00003a0f: PUSH1 0x00 00003a11: PUSH2 0x3a1c 00003a14: DUP5 00003a15: DUP3 00003a16: DUP6 00003a17: ADD 00003a18: PUSH2 0x36fe 00003a1b: JUMP 00003a1c: JUMPDEST 00003a1d: SWAP2 00003a1e: POP 00003a1f: POP 00003a20: SWAP3 00003a21: SWAP2 00003a22: POP 00003a23: POP 00003a24: JUMP 00003a25: JUMPDEST 00003a26: PUSH1 0x00 00003a28: DUP1 00003a29: PUSH1 0x40 00003a2b: DUP4 00003a2c: DUP6 00003a2d: SUB 00003a2e: SLT 00003a2f: ISZERO 00003a30: PUSH2 0x3a38 00003a33: JUMPI 00003a34: PUSH1 0x00 00003a36: DUP1 00003a37: REVERT 00003a38: JUMPDEST 00003a39: PUSH1 0x00 00003a3b: PUSH2 0x3a46 00003a3e: DUP6 00003a3f: DUP3 00003a40: DUP7 00003a41: ADD 00003a42: PUSH2 0x36fe 00003a45: JUMP 00003a46: JUMPDEST 00003a47: SWAP3 00003a48: POP 00003a49: POP 00003a4a: PUSH1 0x20 00003a4c: PUSH2 0x3a57 00003a4f: DUP6 00003a50: DUP3 00003a51: DUP7 00003a52: ADD 00003a53: PUSH2 0x37b1 00003a56: JUMP 00003a57: JUMPDEST 00003a58: SWAP2 00003a59: POP 00003a5a: POP 00003a5b: SWAP3 00003a5c: POP 00003a5d: SWAP3 00003a5e: SWAP1 00003a5f: POP 00003a60: JUMP 00003a61: JUMPDEST 00003a62: PUSH1 0x00 00003a64: DUP1 00003a65: PUSH1 0x00 00003a67: PUSH1 0x60 00003a69: DUP5 00003a6a: DUP7 00003a6b: SUB 00003a6c: SLT 00003a6d: ISZERO 00003a6e: PUSH2 0x3a76 00003a71: JUMPI 00003a72: PUSH1 0x00 00003a74: DUP1 00003a75: REVERT 00003a76: JUMPDEST 00003a77: PUSH1 0x00 00003a79: PUSH2 0x3a84 00003a7c: DUP7 00003a7d: DUP3 00003a7e: DUP8 00003a7f: ADD 00003a80: PUSH2 0x3713 00003a83: JUMP 00003a84: JUMPDEST 00003a85: SWAP4 00003a86: POP 00003a87: POP 00003a88: PUSH1 0x20 00003a8a: PUSH2 0x3a95 00003a8d: DUP7 00003a8e: DUP3 00003a8f: DUP8 00003a90: ADD 00003a91: PUSH2 0x37b1 00003a94: JUMP 00003a95: JUMPDEST 00003a96: SWAP3 00003a97: POP 00003a98: POP 00003a99: PUSH1 0x40 00003a9b: PUSH2 0x3aa6 00003a9e: DUP7 00003a9f: DUP3 00003aa0: DUP8 00003aa1: ADD 00003aa2: PUSH2 0x35f6 00003aa5: JUMP 00003aa6: JUMPDEST 00003aa7: SWAP2 00003aa8: POP 00003aa9: POP 00003aaa: SWAP3 00003aab: POP 00003aac: SWAP3 00003aad: POP 00003aae: SWAP3 00003aaf: JUMP 00003ab0: JUMPDEST 00003ab1: PUSH1 0x00 00003ab3: PUSH1 0x20 00003ab5: DUP3 00003ab6: DUP5 00003ab7: SUB 00003ab8: SLT 00003ab9: ISZERO 00003aba: PUSH2 0x3ac2 00003abd: JUMPI 00003abe: PUSH1 0x00 00003ac0: DUP1 00003ac1: REVERT 00003ac2: JUMPDEST 00003ac3: PUSH1 0x00 00003ac5: PUSH2 0x3ad0 00003ac8: DUP5 00003ac9: DUP3 00003aca: DUP6 00003acb: ADD 00003acc: PUSH2 0x3728 00003acf: JUMP 00003ad0: JUMPDEST 00003ad1: SWAP2 00003ad2: POP 00003ad3: POP 00003ad4: SWAP3 00003ad5: SWAP2 00003ad6: POP 00003ad7: POP 00003ad8: JUMP 00003ad9: JUMPDEST 00003ada: PUSH1 0x00 00003adc: PUSH1 0x80 00003ade: DUP3 00003adf: DUP5 00003ae0: SUB 00003ae1: SLT 00003ae2: ISZERO 00003ae3: PUSH2 0x3aeb 00003ae6: JUMPI 00003ae7: PUSH1 0x00 00003ae9: DUP1 00003aea: REVERT 00003aeb: JUMPDEST 00003aec: PUSH1 0x00 00003aee: PUSH2 0x3af9 00003af1: DUP5 00003af2: DUP3 00003af3: DUP6 00003af4: ADD 00003af5: PUSH2 0x373d 00003af8: JUMP 00003af9: JUMPDEST 00003afa: SWAP2 00003afb: POP 00003afc: POP 00003afd: SWAP3 00003afe: SWAP2 00003aff: POP 00003b00: POP 00003b01: JUMP 00003b02: JUMPDEST 00003b03: PUSH1 0x00 00003b05: PUSH1 0x20 00003b07: DUP3 00003b08: DUP5 00003b09: SUB 00003b0a: SLT 00003b0b: ISZERO 00003b0c: PUSH2 0x3b14 00003b0f: JUMPI 00003b10: PUSH1 0x00 00003b12: DUP1 00003b13: REVERT 00003b14: JUMPDEST 00003b15: PUSH1 0x00 00003b17: PUSH2 0x3b22 00003b1a: DUP5 00003b1b: DUP3 00003b1c: DUP6 00003b1d: ADD 00003b1e: PUSH2 0x37b1 00003b21: JUMP 00003b22: JUMPDEST 00003b23: SWAP2 00003b24: POP 00003b25: POP 00003b26: SWAP3 00003b27: SWAP2 00003b28: POP 00003b29: POP 00003b2a: JUMP 00003b2b: JUMPDEST 00003b2c: PUSH1 0x00 00003b2e: PUSH1 0x20 00003b30: DUP3 00003b31: DUP5 00003b32: SUB 00003b33: SLT 00003b34: ISZERO 00003b35: PUSH2 0x3b3d 00003b38: JUMPI 00003b39: PUSH1 0x00 00003b3b: DUP1 00003b3c: REVERT 00003b3d: JUMPDEST 00003b3e: PUSH1 0x00 00003b40: PUSH2 0x3b4b 00003b43: DUP5 00003b44: DUP3 00003b45: DUP6 00003b46: ADD 00003b47: PUSH2 0x37c6 00003b4a: JUMP 00003b4b: JUMPDEST 00003b4c: SWAP2 00003b4d: POP 00003b4e: POP 00003b4f: SWAP3 00003b50: SWAP2 00003b51: POP 00003b52: POP 00003b53: JUMP 00003b54: JUMPDEST 00003b55: PUSH1 0x00 00003b57: PUSH2 0x3b60 00003b5a: DUP4 00003b5b: DUP4 00003b5c: PUSH2 0x3b84 00003b5f: JUMP 00003b60: JUMPDEST 00003b61: PUSH1 0x20 00003b63: DUP4 00003b64: ADD 00003b65: SWAP1 00003b66: POP 00003b67: SWAP3 00003b68: SWAP2 00003b69: POP 00003b6a: POP 00003b6b: JUMP 00003b6c: JUMPDEST 00003b6d: PUSH1 0x00 00003b6f: PUSH2 0x3b78 00003b72: DUP4 00003b73: DUP4 00003b74: PUSH2 0x3f48 00003b77: JUMP 00003b78: JUMPDEST 00003b79: PUSH1 0x20 00003b7b: DUP4 00003b7c: ADD 00003b7d: SWAP1 00003b7e: POP 00003b7f: SWAP3 00003b80: SWAP2 00003b81: POP 00003b82: POP 00003b83: JUMP 00003b84: JUMPDEST 00003b85: PUSH2 0x3b8d 00003b88: DUP2 00003b89: PUSH2 0x42ef 00003b8c: JUMP 00003b8d: JUMPDEST 00003b8e: DUP3 00003b8f: MSTORE 00003b90: POP 00003b91: POP 00003b92: JUMP 00003b93: JUMPDEST 00003b94: PUSH2 0x3b9c 00003b97: DUP2 00003b98: PUSH2 0x42ef 00003b9b: JUMP 00003b9c: JUMPDEST 00003b9d: DUP3 00003b9e: MSTORE 00003b9f: POP 00003ba0: POP 00003ba1: JUMP 00003ba2: JUMPDEST 00003ba3: PUSH1 0x00 00003ba5: PUSH2 0x3bad 00003ba8: DUP3 00003ba9: PUSH2 0x4276 00003bac: JUMP 00003bad: JUMPDEST 00003bae: PUSH2 0x3bb7 00003bb1: DUP2 00003bb2: DUP6 00003bb3: PUSH2 0x42b1 00003bb6: JUMP 00003bb7: JUMPDEST 00003bb8: SWAP4 00003bb9: POP 00003bba: PUSH2 0x3bc2 00003bbd: DUP4 00003bbe: PUSH2 0x4256 00003bc1: JUMP 00003bc2: JUMPDEST 00003bc3: DUP1 00003bc4: PUSH1 0x00 00003bc6: JUMPDEST 00003bc7: DUP4 00003bc8: DUP2 00003bc9: LT 00003bca: ISZERO 00003bcb: PUSH2 0x3bf3 00003bce: JUMPI 00003bcf: DUP2 00003bd0: MLOAD 00003bd1: PUSH2 0x3bda 00003bd4: DUP9 00003bd5: DUP3 00003bd6: PUSH2 0x3b54 00003bd9: JUMP 00003bda: JUMPDEST 00003bdb: SWAP8 00003bdc: POP 00003bdd: PUSH2 0x3be5 00003be0: DUP4 00003be1: PUSH2 0x4297 00003be4: JUMP 00003be5: JUMPDEST 00003be6: SWAP3 00003be7: POP 00003be8: POP 00003be9: PUSH1 0x01 00003beb: DUP2 00003bec: ADD 00003bed: SWAP1 00003bee: POP 00003bef: PUSH2 0x3bc6 00003bf2: JUMP 00003bf3: JUMPDEST 00003bf4: POP 00003bf5: DUP6 00003bf6: SWAP4 00003bf7: POP 00003bf8: POP 00003bf9: POP 00003bfa: POP 00003bfb: SWAP3 00003bfc: SWAP2 00003bfd: POP 00003bfe: POP 00003bff: JUMP 00003c00: JUMPDEST 00003c01: PUSH1 0x00 00003c03: PUSH2 0x3c0b 00003c06: DUP3 00003c07: PUSH2 0x4281 00003c0a: JUMP 00003c0b: JUMPDEST 00003c0c: PUSH2 0x3c15 00003c0f: DUP2 00003c10: DUP6 00003c11: PUSH2 0x42c2 00003c14: JUMP 00003c15: JUMPDEST 00003c16: SWAP4 00003c17: POP 00003c18: PUSH2 0x3c20 00003c1b: DUP4 00003c1c: PUSH2 0x4266 00003c1f: JUMP 00003c20: JUMPDEST 00003c21: DUP1 00003c22: PUSH1 0x00 00003c24: JUMPDEST 00003c25: DUP4 00003c26: DUP2 00003c27: LT 00003c28: ISZERO 00003c29: PUSH2 0x3c51 00003c2c: JUMPI 00003c2d: DUP2 00003c2e: MLOAD 00003c2f: PUSH2 0x3c38 00003c32: DUP9 00003c33: DUP3 00003c34: PUSH2 0x3b6c 00003c37: JUMP 00003c38: JUMPDEST 00003c39: SWAP8 00003c3a: POP 00003c3b: PUSH2 0x3c43 00003c3e: DUP4 00003c3f: PUSH2 0x42a4 00003c42: JUMP 00003c43: JUMPDEST 00003c44: SWAP3 00003c45: POP 00003c46: POP 00003c47: PUSH1 0x01 00003c49: DUP2 00003c4a: ADD 00003c4b: SWAP1 00003c4c: POP 00003c4d: PUSH2 0x3c24 00003c50: JUMP 00003c51: JUMPDEST 00003c52: POP 00003c53: DUP6 00003c54: SWAP4 00003c55: POP 00003c56: POP 00003c57: POP 00003c58: POP 00003c59: SWAP3 00003c5a: SWAP2 00003c5b: POP 00003c5c: POP 00003c5d: JUMP 00003c5e: JUMPDEST 00003c5f: PUSH2 0x3c67 00003c62: DUP2 00003c63: PUSH2 0x4301 00003c66: JUMP 00003c67: JUMPDEST 00003c68: DUP3 00003c69: MSTORE 00003c6a: POP 00003c6b: POP 00003c6c: JUMP 00003c6d: JUMPDEST 00003c6e: PUSH1 0x00 00003c70: PUSH2 0x3c78 00003c73: DUP3 00003c74: PUSH2 0x428c 00003c77: JUMP 00003c78: JUMPDEST 00003c79: PUSH2 0x3c82 00003c7c: DUP2 00003c7d: DUP6 00003c7e: PUSH2 0x42d3 00003c81: JUMP 00003c82: JUMPDEST 00003c83: SWAP4 00003c84: POP 00003c85: PUSH2 0x3c92 00003c88: DUP2 00003c89: DUP6 00003c8a: PUSH1 0x20 00003c8c: DUP7 00003c8d: ADD 00003c8e: PUSH2 0x43b0 00003c91: JUMP 00003c92: JUMPDEST 00003c93: DUP1 00003c94: DUP5 00003c95: ADD 00003c96: SWAP2 00003c97: POP 00003c98: POP 00003c99: SWAP3 00003c9a: SWAP2 00003c9b: POP 00003c9c: POP 00003c9d: JUMP 00003c9e: JUMPDEST 00003c9f: PUSH2 0x3ca7 00003ca2: DUP2 00003ca3: PUSH2 0x4368 00003ca6: JUMP 00003ca7: JUMPDEST 00003ca8: DUP3 00003ca9: MSTORE 00003caa: POP 00003cab: POP 00003cac: JUMP 00003cad: JUMPDEST 00003cae: PUSH2 0x3cb6 00003cb1: DUP2 00003cb2: PUSH2 0x438c 00003cb5: JUMP 00003cb6: JUMPDEST 00003cb7: DUP3 00003cb8: MSTORE 00003cb9: POP 00003cba: POP 00003cbb: JUMP 00003cbc: JUMPDEST 00003cbd: PUSH1 0x00 00003cbf: PUSH2 0x3cc9 00003cc2: PUSH1 0x0d 00003cc4: DUP4 00003cc5: PUSH2 0x42de 00003cc8: JUMP 00003cc9: JUMPDEST 00003cca: SWAP2 00003ccb: POP 00003ccc: PUSH32 0x616c726561647920657869737400000000000000000000000000000000000000 00003ced: PUSH1 0x00 00003cef: DUP4 00003cf0: ADD 00003cf1: MSTORE 00003cf2: PUSH1 0x20 00003cf4: DUP3 00003cf5: ADD 00003cf6: SWAP1 00003cf7: POP 00003cf8: SWAP2 00003cf9: SWAP1 00003cfa: POP 00003cfb: JUMP 00003cfc: JUMPDEST 00003cfd: PUSH1 0x00 00003cff: PUSH2 0x3d09 00003d02: PUSH1 0x11 00003d04: DUP4 00003d05: PUSH2 0x42de 00003d08: JUMP 00003d09: JUMPDEST 00003d0a: SWAP2 00003d0b: POP 00003d0c: PUSH32 0x746f6b656e206e6f7420616c6c6f776564000000000000000000000000000000 00003d2d: PUSH1 0x00 00003d2f: DUP4 00003d30: ADD 00003d31: MSTORE 00003d32: PUSH1 0x20 00003d34: DUP3 00003d35: ADD 00003d36: SWAP1 00003d37: POP 00003d38: SWAP2 00003d39: SWAP1 00003d3a: POP 00003d3b: JUMP 00003d3c: JUMPDEST 00003d3d: PUSH1 0x00 00003d3f: PUSH2 0x3d49 00003d42: PUSH1 0x1e 00003d44: DUP4 00003d45: PUSH2 0x42de 00003d48: JUMP 00003d49: JUMPDEST 00003d4a: SWAP2 00003d4b: POP 00003d4c: PUSH32 0x4d6178696d756d20746f6b656e2062616c616e63652065786365656465640000 00003d6d: PUSH1 0x00 00003d6f: DUP4 00003d70: ADD 00003d71: MSTORE 00003d72: PUSH1 0x20 00003d74: DUP3 00003d75: ADD 00003d76: SWAP1 00003d77: POP 00003d78: SWAP2 00003d79: SWAP1 00003d7a: POP 00003d7b: JUMP 00003d7c: JUMPDEST 00003d7d: PUSH1 0x00 00003d7f: PUSH2 0x3d89 00003d82: PUSH1 0x27 00003d84: DUP4 00003d85: PUSH2 0x42de 00003d88: JUMP 00003d89: JUMPDEST 00003d8a: SWAP2 00003d8b: POP 00003d8c: PUSH32 0x52657761726420646973747269627574696f6e20686173206e6f742073746172 00003dad: PUSH1 0x00 00003daf: DUP4 00003db0: ADD 00003db1: MSTORE 00003db2: PUSH32 0x7465642079657400000000000000000000000000000000000000000000000000 00003dd3: PUSH1 0x20 00003dd5: DUP4 00003dd6: ADD 00003dd7: MSTORE 00003dd8: PUSH1 0x40 00003dda: DUP3 00003ddb: ADD 00003ddc: SWAP1 00003ddd: POP 00003dde: SWAP2 00003ddf: SWAP1 00003de0: POP 00003de1: JUMP 00003de2: JUMPDEST 00003de3: PUSH1 0x00 00003de5: PUSH2 0x3def 00003de8: PUSH1 0x09 00003dea: DUP4 00003deb: PUSH2 0x42de 00003dee: JUMP 00003def: JUMPDEST 00003df0: SWAP2 00003df1: POP 00003df2: PUSH32 0x6f6e6c79206f6e63650000000000000000000000000000000000000000000000 00003e13: PUSH1 0x00 00003e15: DUP4 00003e16: ADD 00003e17: MSTORE 00003e18: PUSH1 0x20 00003e1a: DUP3 00003e1b: ADD 00003e1c: SWAP1 00003e1d: POP 00003e1e: SWAP2 00003e1f: SWAP1 00003e20: POP 00003e21: JUMP 00003e22: JUMPDEST 00003e23: PUSH1 0x00 00003e25: PUSH2 0x3e2f 00003e28: PUSH1 0x20 00003e2a: DUP4 00003e2b: PUSH2 0x42de 00003e2e: JUMP 00003e2f: JUMPDEST 00003e30: SWAP2 00003e31: POP 00003e32: PUSH32 0x43616e6e6f74207374617274206265666f72652063757272656e74207765656b 00003e53: PUSH1 0x00 00003e55: DUP4 00003e56: ADD 00003e57: MSTORE 00003e58: PUSH1 0x20 00003e5a: DUP3 00003e5b: ADD 00003e5c: SWAP1 00003e5d: POP 00003e5e: SWAP2 00003e5f: SWAP1 00003e60: POP 00003e61: JUMP 00003e62: JUMPDEST 00003e63: PUSH1 0x00 00003e65: PUSH2 0x3e6f 00003e68: PUSH1 0x0c 00003e6a: DUP4 00003e6b: PUSH2 0x42de 00003e6e: JUMP 00003e6f: JUMPDEST 00003e70: SWAP2 00003e71: POP 00003e72: PUSH32 0x7a65726f20616464726573730000000000000000000000000000000000000000 00003e93: PUSH1 0x00 00003e95: DUP4 00003e96: ADD 00003e97: MSTORE 00003e98: PUSH1 0x20 00003e9a: DUP3 00003e9b: ADD 00003e9c: SWAP1 00003e9d: POP 00003e9e: SWAP2 00003e9f: SWAP1 00003ea0: POP 00003ea1: JUMP 00003ea2: JUMPDEST 00003ea3: PUSH1 0x00 00003ea5: PUSH2 0x3eaf 00003ea8: PUSH1 0x28 00003eaa: DUP4 00003eab: PUSH2 0x42de 00003eae: JUMP 00003eaf: JUMPDEST 00003eb0: SWAP2 00003eb1: POP 00003eb2: PUSH32 0x5a65726f20746f74616c20737570706c7920726573756c747320696e206c6f73 00003ed3: PUSH1 0x00 00003ed5: DUP4 00003ed6: ADD 00003ed7: MSTORE 00003ed8: PUSH32 0x7420746f6b656e73000000000000000000000000000000000000000000000000 00003ef9: PUSH1 0x20 00003efb: DUP4 00003efc: ADD 00003efd: MSTORE 00003efe: PUSH1 0x40 00003f00: DUP3 00003f01: ADD 00003f02: SWAP1 00003f03: POP 00003f04: SWAP2 00003f05: SWAP1 00003f06: POP 00003f07: JUMP 00003f08: JUMPDEST 00003f09: PUSH1 0x00 00003f0b: PUSH2 0x3f15 00003f0e: PUSH1 0x09 00003f10: DUP4 00003f11: PUSH2 0x42de 00003f14: JUMP 00003f15: JUMPDEST 00003f16: SWAP2 00003f17: POP 00003f18: PUSH32 0x6e6f742061646d696e0000000000000000000000000000000000000000000000 00003f39: PUSH1 0x00 00003f3b: DUP4 00003f3c: ADD 00003f3d: MSTORE 00003f3e: PUSH1 0x20 00003f40: DUP3 00003f41: ADD 00003f42: SWAP1 00003f43: POP 00003f44: SWAP2 00003f45: SWAP1 00003f46: POP 00003f47: JUMP 00003f48: JUMPDEST 00003f49: PUSH2 0x3f51 00003f4c: DUP2 00003f4d: PUSH2 0x435e 00003f50: JUMP 00003f51: JUMPDEST 00003f52: DUP3 00003f53: MSTORE 00003f54: POP 00003f55: POP 00003f56: JUMP 00003f57: JUMPDEST 00003f58: PUSH2 0x3f60 00003f5b: DUP2 00003f5c: PUSH2 0x435e 00003f5f: JUMP 00003f60: JUMPDEST 00003f61: DUP3 00003f62: MSTORE 00003f63: POP 00003f64: POP 00003f65: JUMP 00003f66: JUMPDEST 00003f67: PUSH1 0x00 00003f69: PUSH2 0x3f72 00003f6c: DUP3 00003f6d: DUP5 00003f6e: PUSH2 0x3c6d 00003f71: JUMP 00003f72: JUMPDEST 00003f73: SWAP2 00003f74: POP 00003f75: DUP2 00003f76: SWAP1 00003f77: POP 00003f78: SWAP3 00003f79: SWAP2 00003f7a: POP 00003f7b: POP 00003f7c: JUMP 00003f7d: JUMPDEST 00003f7e: PUSH1 0x00 00003f80: PUSH1 0x20 00003f82: DUP3 00003f83: ADD 00003f84: SWAP1 00003f85: POP 00003f86: PUSH2 0x3f92 00003f89: PUSH1 0x00 00003f8b: DUP4 00003f8c: ADD 00003f8d: DUP5 00003f8e: PUSH2 0x3b93 00003f91: JUMP 00003f92: JUMPDEST 00003f93: SWAP3 00003f94: SWAP2 00003f95: POP 00003f96: POP 00003f97: JUMP 00003f98: JUMPDEST 00003f99: PUSH1 0x00 00003f9b: PUSH1 0x60 00003f9d: DUP3 00003f9e: ADD 00003f9f: SWAP1 00003fa0: POP 00003fa1: PUSH2 0x3fad 00003fa4: PUSH1 0x00 00003fa6: DUP4 00003fa7: ADD 00003fa8: DUP7 00003fa9: PUSH2 0x3b93 00003fac: JUMP 00003fad: JUMPDEST 00003fae: PUSH2 0x3fba 00003fb1: PUSH1 0x20 00003fb3: DUP4 00003fb4: ADD 00003fb5: DUP6 00003fb6: PUSH2 0x3b93 00003fb9: JUMP 00003fba: JUMPDEST 00003fbb: PUSH2 0x3fc7 00003fbe: PUSH1 0x40 00003fc0: DUP4 00003fc1: ADD 00003fc2: DUP5 00003fc3: PUSH2 0x3f57 00003fc6: JUMP 00003fc7: JUMPDEST 00003fc8: SWAP5 00003fc9: SWAP4 00003fca: POP 00003fcb: POP 00003fcc: POP 00003fcd: POP 00003fce: JUMP 00003fcf: JUMPDEST 00003fd0: PUSH1 0x00 00003fd2: PUSH1 0x80 00003fd4: DUP3 00003fd5: ADD 00003fd6: SWAP1 00003fd7: POP 00003fd8: PUSH2 0x3fe4 00003fdb: PUSH1 0x00 00003fdd: DUP4 00003fde: ADD 00003fdf: DUP8 00003fe0: PUSH2 0x3b93 00003fe3: JUMP 00003fe4: JUMPDEST 00003fe5: PUSH2 0x3ff1 00003fe8: PUSH1 0x20 00003fea: DUP4 00003feb: ADD 00003fec: DUP7 00003fed: PUSH2 0x3c9e 00003ff0: JUMP 00003ff1: JUMPDEST 00003ff2: PUSH2 0x3ffe 00003ff5: PUSH1 0x40 00003ff7: DUP4 00003ff8: ADD 00003ff9: DUP6 00003ffa: PUSH2 0x3f57 00003ffd: JUMP 00003ffe: JUMPDEST 00003fff: PUSH2 0x400b 00004002: PUSH1 0x60 00004004: DUP4 00004005: ADD 00004006: DUP5 00004007: PUSH2 0x3f57 0000400a: JUMP 0000400b: JUMPDEST 0000400c: SWAP6 0000400d: SWAP5 0000400e: POP 0000400f: POP 00004010: POP 00004011: POP 00004012: POP 00004013: JUMP 00004014: JUMPDEST 00004015: PUSH1 0x00 00004017: PUSH1 0x40 00004019: DUP3 0000401a: ADD 0000401b: SWAP1 0000401c: POP 0000401d: PUSH2 0x4029 00004020: PUSH1 0x00 00004022: DUP4 00004023: ADD 00004024: DUP6 00004025: PUSH2 0x3b93 00004028: JUMP 00004029: JUMPDEST 0000402a: PUSH2 0x4036 0000402d: PUSH1 0x20 0000402f: DUP4 00004030: ADD 00004031: DUP5 00004032: PUSH2 0x3f57 00004035: JUMP 00004036: JUMPDEST 00004037: SWAP4 00004038: SWAP3 00004039: POP 0000403a: POP 0000403b: POP 0000403c: JUMP 0000403d: JUMPDEST 0000403e: PUSH1 0x00 00004040: PUSH1 0x20 00004042: DUP3 00004043: ADD 00004044: SWAP1 00004045: POP 00004046: DUP2 00004047: DUP2 00004048: SUB 00004049: PUSH1 0x00 0000404b: DUP4 0000404c: ADD 0000404d: MSTORE 0000404e: PUSH2 0x4057 00004051: DUP2 00004052: DUP5 00004053: PUSH2 0x3ba2 00004056: JUMP 00004057: JUMPDEST 00004058: SWAP1 00004059: POP 0000405a: SWAP3 0000405b: SWAP2 0000405c: POP 0000405d: POP 0000405e: JUMP 0000405f: JUMPDEST 00004060: PUSH1 0x00 00004062: PUSH1 0x20 00004064: DUP3 00004065: ADD 00004066: SWAP1 00004067: POP 00004068: DUP2 00004069: DUP2 0000406a: SUB 0000406b: PUSH1 0x00 0000406d: DUP4 0000406e: ADD 0000406f: MSTORE 00004070: PUSH2 0x4079 00004073: DUP2 00004074: DUP5 00004075: PUSH2 0x3c00 00004078: JUMP 00004079: JUMPDEST 0000407a: SWAP1 0000407b: POP 0000407c: SWAP3 0000407d: SWAP2 0000407e: POP 0000407f: POP 00004080: JUMP 00004081: JUMPDEST 00004082: PUSH1 0x00 00004084: PUSH1 0x20 00004086: DUP3 00004087: ADD 00004088: SWAP1 00004089: POP 0000408a: PUSH2 0x4096 0000408d: PUSH1 0x00 0000408f: DUP4 00004090: ADD 00004091: DUP5 00004092: PUSH2 0x3c5e 00004095: JUMP 00004096: JUMPDEST 00004097: SWAP3 00004098: SWAP2 00004099: POP 0000409a: POP 0000409b: JUMP 0000409c: JUMPDEST 0000409d: PUSH1 0x00 0000409f: PUSH1 0x60 000040a1: DUP3 000040a2: ADD 000040a3: SWAP1 000040a4: POP 000040a5: PUSH2 0x40b1 000040a8: PUSH1 0x00 000040aa: DUP4 000040ab: ADD 000040ac: DUP7 000040ad: PUSH2 0x3c9e 000040b0: JUMP 000040b1: JUMPDEST 000040b2: PUSH2 0x40be 000040b5: PUSH1 0x20 000040b7: DUP4 000040b8: ADD 000040b9: DUP6 000040ba: PUSH2 0x3f57 000040bd: JUMP 000040be: JUMPDEST 000040bf: PUSH2 0x40cb 000040c2: PUSH1 0x40 000040c4: DUP4 000040c5: ADD 000040c6: DUP5 000040c7: PUSH2 0x3f57 000040ca: JUMP 000040cb: JUMPDEST 000040cc: SWAP5 000040cd: SWAP4 000040ce: POP 000040cf: POP 000040d0: POP 000040d1: POP 000040d2: JUMP 000040d3: JUMPDEST 000040d4: PUSH1 0x00 000040d6: PUSH1 0x20 000040d8: DUP3 000040d9: ADD 000040da: SWAP1 000040db: POP 000040dc: PUSH2 0x40e8 000040df: PUSH1 0x00 000040e1: DUP4 000040e2: ADD 000040e3: DUP5 000040e4: PUSH2 0x3cad 000040e7: JUMP 000040e8: JUMPDEST 000040e9: SWAP3 000040ea: SWAP2 000040eb: POP 000040ec: POP 000040ed: JUMP 000040ee: JUMPDEST 000040ef: PUSH1 0x00 000040f1: PUSH1 0x20 000040f3: DUP3 000040f4: ADD 000040f5: SWAP1 000040f6: POP 000040f7: DUP2 000040f8: DUP2 000040f9: SUB 000040fa: PUSH1 0x00 000040fc: DUP4 000040fd: ADD 000040fe: MSTORE 000040ff: PUSH2 0x4107 00004102: DUP2 00004103: PUSH2 0x3cbc 00004106: JUMP 00004107: JUMPDEST 00004108: SWAP1 00004109: POP 0000410a: SWAP2 0000410b: SWAP1 0000410c: POP 0000410d: JUMP 0000410e: JUMPDEST 0000410f: PUSH1 0x00 00004111: PUSH1 0x20 00004113: DUP3 00004114: ADD 00004115: SWAP1 00004116: POP 00004117: DUP2 00004118: DUP2 00004119: SUB 0000411a: PUSH1 0x00 0000411c: DUP4 0000411d: ADD 0000411e: MSTORE 0000411f: PUSH2 0x4127 00004122: DUP2 00004123: PUSH2 0x3cfc 00004126: JUMP 00004127: JUMPDEST 00004128: SWAP1 00004129: POP 0000412a: SWAP2 0000412b: SWAP1 0000412c: POP 0000412d: JUMP 0000412e: JUMPDEST 0000412f: PUSH1 0x00 00004131: PUSH1 0x20 00004133: DUP3 00004134: ADD 00004135: SWAP1 00004136: POP 00004137: DUP2 00004138: DUP2 00004139: SUB 0000413a: PUSH1 0x00 0000413c: DUP4 0000413d: ADD 0000413e: MSTORE 0000413f: PUSH2 0x4147 00004142: DUP2 00004143: PUSH2 0x3d3c 00004146: JUMP 00004147: JUMPDEST 00004148: SWAP1 00004149: POP 0000414a: SWAP2 0000414b: SWAP1 0000414c: POP 0000414d: JUMP 0000414e: JUMPDEST 0000414f: PUSH1 0x00 00004151: PUSH1 0x20 00004153: DUP3 00004154: ADD 00004155: SWAP1 00004156: POP 00004157: DUP2 00004158: DUP2 00004159: SUB 0000415a: PUSH1 0x00 0000415c: DUP4 0000415d: ADD 0000415e: MSTORE 0000415f: PUSH2 0x4167 00004162: DUP2 00004163: PUSH2 0x3d7c 00004166: JUMP 00004167: JUMPDEST 00004168: SWAP1 00004169: POP 0000416a: SWAP2 0000416b: SWAP1 0000416c: POP 0000416d: JUMP 0000416e: JUMPDEST 0000416f: PUSH1 0x00 00004171: PUSH1 0x20 00004173: DUP3 00004174: ADD 00004175: SWAP1 00004176: POP 00004177: DUP2 00004178: DUP2 00004179: SUB 0000417a: PUSH1 0x00 0000417c: DUP4 0000417d: ADD 0000417e: MSTORE 0000417f: PUSH2 0x4187 00004182: DUP2 00004183: PUSH2 0x3de2 00004186: JUMP 00004187: JUMPDEST 00004188: SWAP1 00004189: POP 0000418a: SWAP2 0000418b: SWAP1 0000418c: POP 0000418d: JUMP 0000418e: JUMPDEST 0000418f: PUSH1 0x00 00004191: PUSH1 0x20 00004193: DUP3 00004194: ADD 00004195: SWAP1 00004196: POP 00004197: DUP2 00004198: DUP2 00004199: SUB 0000419a: PUSH1 0x00 0000419c: DUP4 0000419d: ADD 0000419e: MSTORE 0000419f: PUSH2 0x41a7 000041a2: DUP2 000041a3: PUSH2 0x3e22 000041a6: JUMP 000041a7: JUMPDEST 000041a8: SWAP1 000041a9: POP 000041aa: SWAP2 000041ab: SWAP1 000041ac: POP 000041ad: JUMP 000041ae: JUMPDEST 000041af: PUSH1 0x00 000041b1: PUSH1 0x20 000041b3: DUP3 000041b4: ADD 000041b5: SWAP1 000041b6: POP 000041b7: DUP2 000041b8: DUP2 000041b9: SUB 000041ba: PUSH1 0x00 000041bc: DUP4 000041bd: ADD 000041be: MSTORE 000041bf: PUSH2 0x41c7 000041c2: DUP2 000041c3: PUSH2 0x3e62 000041c6: JUMP 000041c7: JUMPDEST 000041c8: SWAP1 000041c9: POP 000041ca: SWAP2 000041cb: SWAP1 000041cc: POP 000041cd: JUMP 000041ce: JUMPDEST 000041cf: PUSH1 0x00 000041d1: PUSH1 0x20 000041d3: DUP3 000041d4: ADD 000041d5: SWAP1 000041d6: POP 000041d7: DUP2 000041d8: DUP2 000041d9: SUB 000041da: PUSH1 0x00 000041dc: DUP4 000041dd: ADD 000041de: MSTORE 000041df: PUSH2 0x41e7 000041e2: DUP2 000041e3: PUSH2 0x3ea2 000041e6: JUMP 000041e7: JUMPDEST 000041e8: SWAP1 000041e9: POP 000041ea: SWAP2 000041eb: SWAP1 000041ec: POP 000041ed: JUMP 000041ee: JUMPDEST 000041ef: PUSH1 0x00 000041f1: PUSH1 0x20 000041f3: DUP3 000041f4: ADD 000041f5: SWAP1 000041f6: POP 000041f7: DUP2 000041f8: DUP2 000041f9: SUB 000041fa: PUSH1 0x00 000041fc: DUP4 000041fd: ADD 000041fe: MSTORE 000041ff: PUSH2 0x4207 00004202: DUP2 00004203: PUSH2 0x3f08 00004206: JUMP 00004207: JUMPDEST 00004208: SWAP1 00004209: POP 0000420a: SWAP2 0000420b: SWAP1 0000420c: POP 0000420d: JUMP 0000420e: JUMPDEST 0000420f: PUSH1 0x00 00004211: PUSH1 0x20 00004213: DUP3 00004214: ADD 00004215: SWAP1 00004216: POP 00004217: PUSH2 0x4223 0000421a: PUSH1 0x00 0000421c: DUP4 0000421d: ADD 0000421e: DUP5 0000421f: PUSH2 0x3f57 00004222: JUMP 00004223: JUMPDEST 00004224: SWAP3 00004225: SWAP2 00004226: POP 00004227: POP 00004228: JUMP 00004229: JUMPDEST 0000422a: PUSH1 0x00 0000422c: PUSH1 0x40 0000422e: MLOAD 0000422f: SWAP1 00004230: POP 00004231: DUP2 00004232: DUP2 00004233: ADD 00004234: DUP2 00004235: DUP2 00004236: LT 00004237: PUSH8 0xffffffffffffffff 00004240: DUP3 00004241: GT 00004242: OR 00004243: ISZERO 00004244: PUSH2 0x424c 00004247: JUMPI 00004248: PUSH1 0x00 0000424a: DUP1 0000424b: REVERT 0000424c: JUMPDEST 0000424d: DUP1 0000424e: PUSH1 0x40 00004250: MSTORE 00004251: POP 00004252: SWAP2 00004253: SWAP1 00004254: POP 00004255: JUMP 00004256: JUMPDEST 00004257: PUSH1 0x00 00004259: DUP2 0000425a: SWAP1 0000425b: POP 0000425c: PUSH1 0x20 0000425e: DUP3 0000425f: ADD 00004260: SWAP1 00004261: POP 00004262: SWAP2 00004263: SWAP1 00004264: POP 00004265: JUMP 00004266: JUMPDEST 00004267: PUSH1 0x00 00004269: DUP2 0000426a: SWAP1 0000426b: POP 0000426c: PUSH1 0x20 0000426e: DUP3 0000426f: ADD 00004270: SWAP1 00004271: POP 00004272: SWAP2 00004273: SWAP1 00004274: POP 00004275: JUMP 00004276: JUMPDEST 00004277: PUSH1 0x00 00004279: DUP2 0000427a: MLOAD 0000427b: SWAP1 0000427c: POP 0000427d: SWAP2 0000427e: SWAP1 0000427f: POP 00004280: JUMP 00004281: JUMPDEST 00004282: PUSH1 0x00 00004284: DUP2 00004285: MLOAD 00004286: SWAP1 00004287: POP 00004288: SWAP2 00004289: SWAP1 0000428a: POP 0000428b: JUMP 0000428c: JUMPDEST 0000428d: PUSH1 0x00 0000428f: DUP2 00004290: MLOAD 00004291: SWAP1 00004292: POP 00004293: SWAP2 00004294: SWAP1 00004295: POP 00004296: JUMP 00004297: JUMPDEST 00004298: PUSH1 0x00 0000429a: PUSH1 0x20 0000429c: DUP3 0000429d: ADD 0000429e: SWAP1 0000429f: POP 000042a0: SWAP2 000042a1: SWAP1 000042a2: POP 000042a3: JUMP 000042a4: JUMPDEST 000042a5: PUSH1 0x00 000042a7: PUSH1 0x20 000042a9: DUP3 000042aa: ADD 000042ab: SWAP1 000042ac: POP 000042ad: SWAP2 000042ae: SWAP1 000042af: POP 000042b0: JUMP 000042b1: JUMPDEST 000042b2: PUSH1 0x00 000042b4: DUP3 000042b5: DUP3 000042b6: MSTORE 000042b7: PUSH1 0x20 000042b9: DUP3 000042ba: ADD 000042bb: SWAP1 000042bc: POP 000042bd: SWAP3 000042be: SWAP2 000042bf: POP 000042c0: POP 000042c1: JUMP 000042c2: JUMPDEST 000042c3: PUSH1 0x00 000042c5: DUP3 000042c6: DUP3 000042c7: MSTORE 000042c8: PUSH1 0x20 000042ca: DUP3 000042cb: ADD 000042cc: SWAP1 000042cd: POP 000042ce: SWAP3 000042cf: SWAP2 000042d0: POP 000042d1: POP 000042d2: JUMP 000042d3: JUMPDEST 000042d4: PUSH1 0x00 000042d6: DUP2 000042d7: SWAP1 000042d8: POP 000042d9: SWAP3 000042da: SWAP2 000042db: POP 000042dc: POP 000042dd: JUMP 000042de: JUMPDEST 000042df: PUSH1 0x00 000042e1: DUP3 000042e2: DUP3 000042e3: MSTORE 000042e4: PUSH1 0x20 000042e6: DUP3 000042e7: ADD 000042e8: SWAP1 000042e9: POP 000042ea: SWAP3 000042eb: SWAP2 000042ec: POP 000042ed: POP 000042ee: JUMP 000042ef: JUMPDEST 000042f0: PUSH1 0x00 000042f2: PUSH2 0x42fa 000042f5: DUP3 000042f6: PUSH2 0x433e 000042f9: JUMP 000042fa: JUMPDEST 000042fb: SWAP1 000042fc: POP 000042fd: SWAP2 000042fe: SWAP1 000042ff: POP 00004300: JUMP 00004301: JUMPDEST 00004302: PUSH1 0x00 00004304: DUP2 00004305: ISZERO 00004306: ISZERO 00004307: SWAP1 00004308: POP 00004309: SWAP2 0000430a: SWAP1 0000430b: POP 0000430c: JUMP 0000430d: JUMPDEST 0000430e: PUSH1 0x00 00004310: PUSH2 0x4318 00004313: DUP3 00004314: PUSH2 0x42ef 00004317: JUMP 00004318: JUMPDEST 00004319: SWAP1 0000431a: POP 0000431b: SWAP2 0000431c: SWAP1 0000431d: POP 0000431e: JUMP 0000431f: JUMPDEST 00004320: PUSH1 0x00 00004322: PUSH2 0x432a 00004325: DUP3 00004326: PUSH2 0x42ef 00004329: JUMP 0000432a: JUMPDEST 0000432b: SWAP1 0000432c: POP 0000432d: SWAP2 0000432e: SWAP1 0000432f: POP 00004330: JUMP 00004331: JUMPDEST 00004332: PUSH1 0x00 00004334: DUP2 00004335: PUSH1 0x0f 00004337: SIGNEXTEND 00004338: SWAP1 00004339: POP 0000433a: SWAP2 0000433b: SWAP1 0000433c: POP 0000433d: JUMP 0000433e: JUMPDEST 0000433f: PUSH1 0x00 00004341: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004356: DUP3 00004357: AND 00004358: SWAP1 00004359: POP 0000435a: SWAP2 0000435b: SWAP1 0000435c: POP 0000435d: JUMP 0000435e: JUMPDEST 0000435f: PUSH1 0x00 00004361: DUP2 00004362: SWAP1 00004363: POP 00004364: SWAP2 00004365: SWAP1 00004366: POP 00004367: JUMP 00004368: JUMPDEST 00004369: PUSH1 0x00 0000436b: PUSH2 0x4373 0000436e: DUP3 0000436f: PUSH2 0x437a 00004372: JUMP 00004373: JUMPDEST 00004374: SWAP1 00004375: POP 00004376: SWAP2 00004377: SWAP1 00004378: POP 00004379: JUMP 0000437a: JUMPDEST 0000437b: PUSH1 0x00 0000437d: PUSH2 0x4385 00004380: DUP3 00004381: PUSH2 0x433e 00004384: JUMP 00004385: JUMPDEST 00004386: SWAP1 00004387: POP 00004388: SWAP2 00004389: SWAP1 0000438a: POP 0000438b: JUMP 0000438c: JUMPDEST 0000438d: PUSH1 0x00 0000438f: PUSH2 0x4397 00004392: DUP3 00004393: PUSH2 0x439e 00004396: JUMP 00004397: JUMPDEST 00004398: SWAP1 00004399: POP 0000439a: SWAP2 0000439b: SWAP1 0000439c: POP 0000439d: JUMP 0000439e: JUMPDEST 0000439f: PUSH1 0x00 000043a1: PUSH2 0x43a9 000043a4: DUP3 000043a5: PUSH2 0x433e 000043a8: JUMP 000043a9: JUMPDEST 000043aa: SWAP1 000043ab: POP 000043ac: SWAP2 000043ad: SWAP1 000043ae: POP 000043af: JUMP 000043b0: JUMPDEST 000043b1: PUSH1 0x00 000043b3: JUMPDEST 000043b4: DUP4 000043b5: DUP2 000043b6: LT 000043b7: ISZERO 000043b8: PUSH2 0x43ce 000043bb: JUMPI 000043bc: DUP1 000043bd: DUP3 000043be: ADD 000043bf: MLOAD 000043c0: DUP2 000043c1: DUP5 000043c2: ADD 000043c3: MSTORE 000043c4: PUSH1 0x20 000043c6: DUP2 000043c7: ADD 000043c8: SWAP1 000043c9: POP 000043ca: PUSH2 0x43b3 000043cd: JUMP 000043ce: JUMPDEST 000043cf: DUP4 000043d0: DUP2 000043d1: GT 000043d2: ISZERO 000043d3: PUSH2 0x43dd 000043d6: JUMPI 000043d7: PUSH1 0x00 000043d9: DUP5 000043da: DUP5 000043db: ADD 000043dc: MSTORE 000043dd: JUMPDEST 000043de: POP 000043df: POP 000043e0: POP 000043e1: POP 000043e2: JUMP 000043e3: JUMPDEST 000043e4: PUSH2 0x43ec 000043e7: DUP2 000043e8: PUSH2 0x42ef 000043eb: JUMP 000043ec: JUMPDEST 000043ed: DUP2 000043ee: EQ 000043ef: PUSH2 0x43f7 000043f2: JUMPI 000043f3: PUSH1 0x00 000043f5: DUP1 000043f6: REVERT 000043f7: JUMPDEST 000043f8: POP 000043f9: JUMP 000043fa: JUMPDEST 000043fb: PUSH2 0x4403 000043fe: DUP2 000043ff: PUSH2 0x4301 00004402: JUMP 00004403: JUMPDEST 00004404: DUP2 00004405: EQ 00004406: PUSH2 0x440e 00004409: JUMPI 0000440a: PUSH1 0x00 0000440c: DUP1 0000440d: REVERT 0000440e: JUMPDEST 0000440f: POP 00004410: JUMP 00004411: JUMPDEST 00004412: PUSH2 0x441a 00004415: DUP2 00004416: PUSH2 0x430d 00004419: JUMP 0000441a: JUMPDEST 0000441b: DUP2 0000441c: EQ 0000441d: PUSH2 0x4425 00004420: JUMPI 00004421: PUSH1 0x00 00004423: DUP1 00004424: REVERT 00004425: JUMPDEST 00004426: POP 00004427: JUMP 00004428: JUMPDEST 00004429: PUSH2 0x4431 0000442c: DUP2 0000442d: PUSH2 0x431f 00004430: JUMP 00004431: JUMPDEST 00004432: DUP2 00004433: EQ 00004434: PUSH2 0x443c 00004437: JUMPI 00004438: PUSH1 0x00 0000443a: DUP1 0000443b: REVERT 0000443c: JUMPDEST 0000443d: POP 0000443e: JUMP 0000443f: JUMPDEST 00004440: PUSH2 0x4448 00004443: DUP2 00004444: PUSH2 0x4331 00004447: JUMP 00004448: JUMPDEST 00004449: DUP2 0000444a: EQ 0000444b: PUSH2 0x4453 0000444e: JUMPI 0000444f: PUSH1 0x00 00004451: DUP1 00004452: REVERT 00004453: JUMPDEST 00004454: POP 00004455: JUMP 00004456: JUMPDEST 00004457: PUSH2 0x445f 0000445a: DUP2 0000445b: PUSH2 0x435e 0000445e: JUMP 0000445f: JUMPDEST 00004460: DUP2 00004461: EQ 00004462: PUSH2 0x446a 00004465: JUMPI 00004466: PUSH1 0x00 00004468: DUP1 00004469: REVERT 0000446a: JUMPDEST 0000446b: POP 0000446c: JUMP 0000446d: INVALID 0000446e: LOG2 0000446f: PUSH5 0x6970667358 00004475: UNKNOWN(0x22) 00004476: SLT 00004477: KECCAK256 00004478: UNKNOWN(0xCD) 00004479: SWAP14 0000447a: UNKNOWN(0xEF) 0000447b: UNKNOWN(0x25) 0000447c: DELEGATECALL 0000447d: UNKNOWN(0x0D) 0000447e: UNKNOWN(0xE9) 0000447f: PUSH24 0x2f4adf4759612469e2b39dccf7a498e7403c74d34a294dc0 00004498: PUSH5 0x736f6c6343 0000449e: STOP 0000449f: SMOD 000044a0: ADD 000044a1: STOP 000044a2: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xbac5638ec1ae267bf858586a5aa1f8fe81f986db78e624c351253b53f018b89c
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0xbac5638ec1ae267bf858586a5aa1f8fe81f986db78e624c351253b53f018b89c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xed3a0887",
"selector": "0xed3a0887",
"calldata_variants": [
"0xed3a0887",
"0xed3a08870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf213bd8c",
"selector": "0xf213bd8c",
"calldata_variants": [
"0xf213bd8c",
"0xf213bd8c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfdac51a1",
"selector": "0xfdac51a1",
"calldata_variants": [
"0xfdac51a1",
"0xfdac51a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd07b705f",
"selector": "0xd07b705f",
"calldata_variants": [
"0xd07b705f",
"0xd07b705f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd3dc4ca1",
"selector": "0xd3dc4ca1",
"calldata_variants": [
"0xd3dc4ca1",
"0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde681faf",
"selector": "0xde681faf",
"calldata_variants": [
"0xde681faf",
"0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xece7514d",
"selector": "0xece7514d",
"calldata_variants": [
"0xece7514d",
"0xece7514d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 17532,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | access_control | codex | Unprotected initialize allows admin/votingEscrow takeover | 85 | no | — |
viewevidence_json{
"evidence": "initialize is external and only checks isInitialized; there is no access control gate before setting admin and _votingEscrow.",
"locations": [
"contracts/contracts/RewardDistributor.sol:103"
],
"recommendation": "Restrict initialize to a trusted deployer/factory (e.g., onlyAdmin/onlyFactory), or move initialization into a constructor for non-proxy deployments. If used behind a proxy, use an initializer pattern that disables further initializers on the implementation contract.",
"exploit_scenario": "If the contract is deployed without calling initialize in the same transaction, any address can call initialize first, set themselves as admin and point votingEscrow to a malicious contract, then use admin-only functions (e.g., clawbackUnsafe) or break reward accounting."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x4a3d72ac55f9d4b9a99be1aa49722652ac3fea1bf604db0f4836f04234531f83
call_targets:
0x8549ba7f483afb13b8321830d6f07f30f0a2f1de
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x4a3d72ac55f9d4b9a99be1aa49722652ac3fea1bf604db0f4836f04234531f83",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x8549ba7f483afb13b8321830d6f07f30f0a2f1de"
],
"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": "0xed3a0887",
"selector": "0xed3a0887",
"calldata_variants": [
"0xed3a0887",
"0xed3a08870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf213bd8c",
"selector": "0xf213bd8c",
"calldata_variants": [
"0xf213bd8c",
"0xf213bd8c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfdac51a1",
"selector": "0xfdac51a1",
"calldata_variants": [
"0xfdac51a1",
"0xfdac51a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd07b705f",
"selector": "0xd07b705f",
"calldata_variants": [
"0xd07b705f",
"0xd07b705f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd3dc4ca1",
"selector": "0xd3dc4ca1",
"calldata_variants": [
"0xd3dc4ca1",
"0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde681faf",
"selector": "0xde681faf",
"calldata_variants": [
"0xde681faf",
"0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xece7514d",
"selector": "0xece7514d",
"calldata_variants": [
"0xece7514d",
"0xece7514d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 10988,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 13444,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x4a3d72ac55f9d4b9a99be1aa49722652ac3fea1bf604db0f4836f04234531f83
call_targets:
0x8549ba7f483afb13b8321830d6f07f30f0a2f1de
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x4a3d72ac55f9d4b9a99be1aa49722652ac3fea1bf604db0f4836f04234531f83",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x8549ba7f483afb13b8321830d6f07f30f0a2f1de"
],
"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": "0xed3a0887",
"selector": "0xed3a0887",
"calldata_variants": [
"0xed3a0887",
"0xed3a08870000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf213bd8c",
"selector": "0xf213bd8c",
"calldata_variants": [
"0xf213bd8c",
"0xf213bd8c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfdac51a1",
"selector": "0xfdac51a1",
"calldata_variants": [
"0xfdac51a1",
"0xfdac51a10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd07b705f",
"selector": "0xd07b705f",
"calldata_variants": [
"0xd07b705f",
"0xd07b705f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd3dc4ca1",
"selector": "0xd3dc4ca1",
"calldata_variants": [
"0xd3dc4ca1",
"0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde681faf",
"selector": "0xde681faf",
"calldata_variants": [
"0xde681faf",
"0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xece7514d",
"selector": "0xece7514d",
"calldata_variants": [
"0xece7514d",
"0xece7514d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 10988,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 13444,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | math | codex | Claiming can revert when weekly total supply is zero | 75 | no | — |
viewevidence_json{
"evidence": "_claimToken computes (tokensPerWeek * userBalance) / _veSupplyCache[week] without a zero check.",
"locations": [
"contracts/contracts/RewardDistributor.sol:417"
],
"recommendation": "Handle zero supply weeks explicitly (e.g., skip distribution when _veSupplyCache[week] == 0 or store a sentinel), or prevent checkpointing/distributing rewards into weeks with zero total supply.",
"exploit_scenario": "If total ve supply at a weekly checkpoint is 0 (e.g., all locks expired), _veSupplyCache[week] becomes 0. Later claimToken/claimTokens will divide by this value and revert, blocking all claims that need to pass through that week and leaving tokens stuck."
}
|
| low | math | codex | Token distribution truncates after >20 weeks of inactivity | 65 | no | — |
viewevidence_json{
"evidence": "_checkpointToken sets tokenState.timeCursor = block.timestamp before looping for at most 20 iterations with no continuation logic.",
"locations": [
"contracts/contracts/RewardDistributor.sol:480",
"contracts/contracts/RewardDistributor.sol:501"
],
"recommendation": "If the loop hits its iteration cap, leave timeCursor at the last processed week so subsequent calls continue distribution, or allow batched catch-up across multiple calls without marking the token fully up-to-date.",
"exploit_scenario": "If a token hasn\u2019t been checkpointed for more than 20 weeks, _checkpointToken only iterates 20 weeks but sets tokenState.timeCursor to block.timestamp. The remaining undistributed portion is never allocated to any week and becomes permanently unclaimable."
}
|
| 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": 20
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 21
}
|