d6e884b9-0d8a-4410-802c-0d7b21b36433
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 |
|---|---|---|---|---|
| 30338 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 74212 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 74213 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 74214 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 74215 | capability.graph | complete | 1 / 3 | 1 week ago |
| 74216 | detector.run | complete | 1 / 3 | 1 week ago |
| 74217 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1403078] OpenAI Codex v0.77.0 (research preview)
[codex:1403078] --------
[codex:1403078] workdir: /tmp/codex-multi-au1_xfpc
[codex:1403078] model: gpt-5.2-codex
[codex:1403078] provider: openai
[codex:1403078] approval: never
[codex:1403078] sandbox: read-only
[codex:1403078] reasoning effort: xhigh
[codex:1403078] reasoning summaries: auto
[codex:1403078] session id: 019b65f7-cada-7831-912a-4fd6f0b04174
[codex:1403078] --------
[codex:1403078] user
[codex:1403078] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1403078] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1403078] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1403078]
[codex:1403078] Scope rules:
[codex:1403078] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1403078] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1403078]
[codex:1403078] Output MUST be valid JSON matching the provided schema.
[codex:1403078] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1403078] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1403078]
[codex:1403078] Output constraints (IMPORTANT):
[codex:1403078] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1403078] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1403078] mcp startup: no servers
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Locating AUDIT_BUNDLE file**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc ls in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] AUDIT_BUNDLE.txt
[codex:1403078] codex-output-schema.json
[codex:1403078] contracts
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Reading full AUDIT_BUNDLE file**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1403078]
[codex:1403078] ================================================================================
[codex:1403078] FILE: contracts/contracts/v1/ISwapCallback.sol
[codex:1403078] ================================================================================
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @title TermMax Swap Callback Interface
[codex:1403078] * @author Term Structure Labs
[codex:1403078] * @notice Interface for handling callbacks after swap operations in TermMax
[codex:1403078] */
[codex:1403078] interface ISwapCallback {
[codex:1403078] /**
[codex:1403078] * @notice Callback function called after a swap operation
[codex:1403078] * @param ftReserve The reserve of the FT token
[codex:1403078] * @param xtReserve The reserve of the XT token
[codex:1403078] * @param deltaFt The change in FT token balance (positive for receiving, negative for paying)
[codex:1403078] * @param deltaXt The change in XT token balance (positive for receiving, negative for paying)
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Preparing to inspect first-party contracts**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg --files contracts/contracts/v1' in /tmp/codex-multi-au1_xfpc succeeded in 8ms:
[codex:1403078] contracts/contracts/v1/ISwapCallback.sol
[codex:1403078] contracts/contracts/v1/vault/ITermMaxVault.sol
[codex:1403078] contracts/contracts/v1/vault/IOrderManager.sol
[codex:1403078] contracts/contracts/v1/vault/VaultStorage.sol
[codex:1403078] contracts/contracts/v1/storage/TermMaxStorage.sol
[codex:1403078] contracts/contracts/v1/tokens/IMintableERC20.sol
[codex:1403078] contracts/contracts/v1/tokens/IGearingToken.sol
[codex:1403078] contracts/contracts/v1/errors/VaultErrors.sol
[codex:1403078] contracts/contracts/v1/oracle/IOracle.sol
[codex:1403078] contracts/contracts/v1/ITermMaxOrder.sol
[codex:1403078] contracts/contracts/v1/ITermMaxMarket.sol
[codex:1403078] contracts/contracts/v1/events/VaultEvents.sol
[codex:1403078] contracts/contracts/v1/lib/VaultConstants.sol
[codex:1403078] contracts/contracts/v1/lib/TransferUtils.sol
[codex:1403078] contracts/contracts/v1/lib/PendingLib.sol
[codex:1403078] contracts/contracts/v1/lib/Constants.sol
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Checking for implementations in vault**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/vault/ITermMaxVault.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078]
[codex:1403078] import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol";
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/interfaces/IERC20.sol";
[codex:1403078] import {ITermMaxMarket} from "../ITermMaxMarket.sol";
[codex:1403078] import {CurveCuts, VaultInitialParams} from "../storage/TermMaxStorage.sol";
[codex:1403078] import {ITermMaxOrder} from "../ITermMaxOrder.sol";
[codex:1403078] import {PendingAddress, PendingUint192} from "../lib/PendingLib.sol";
[codex:1403078] import {OrderInfo} from "./VaultStorage.sol";
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @title TermMax Vault Interface
[codex:1403078] * @author Term Structure Labs
[codex:1403078] * @notice Interface for TermMax vaults that extends the ERC4626 standard
[codex:1403078] * @dev Implements ERC4626 tokenized vault standard with additional TermMax-specific functionality
[codex:1403078] */
[codex:1403078] interface ITermMaxVault is IERC4626 {
[codex:1403078] /**
[codex:1403078] * @notice Initializes the vault
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '200,400p' contracts/contracts/v1/vault/ITermMaxVault.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] * @param order The order to redeem
[codex:1403078] */
[codex:1403078] function redeemOrder(ITermMaxOrder order) external;
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @notice Withdraws performance fee
[codex:1403078] * @param recipient The recipient of the performance fee
[codex:1403078] * @param amount The amount of performance fee to withdraw
[codex:1403078] */
[codex:1403078] function withdrawPerformanceFee(address recipient, uint256 amount) external;
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @notice Submits a new guardian address
[codex:1403078] * @param newGuardian The new guardian address
[codex:1403078] */
[codex:1403078] function submitGuardian(address newGuardian) external;
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @notice Sets a new curator address
[codex:1403078] * @param newCurator The new curator address
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Checking for implementations**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "rg --files contracts/contracts -g '*.sol'" in /tmp/codex-multi-au1_xfpc succeeded in 10ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol
[codex:1403078] contracts/contracts/v1plus/vault/ITermMaxVaultV1Plus.sol
[codex:1403078] contracts/contracts/v1plus/vault/VaultStorageV1Plus.sol
[codex:1403078] contracts/contracts/v1plus/storage/TermMaxStorageV1Plus.sol
[codex:1403078] contracts/contracts/v1/vault/ITermMaxVault.sol
[codex:1403078] contracts/contracts/v1/vault/IOrderManager.sol
[codex:1403078] contracts/contracts/v1/vault/VaultStorage.sol
[codex:1403078] contracts/contracts/v1plus/events/VaultEventsV1Plus.sol
[codex:1403078] contracts/contracts/v1/ISwapCallback.sol
[codex:1403078] contracts/contracts/v1plus/lib/TransactionReentrancyGuard.sol
[codex:1403078] contracts/contracts/v1/storage/TermMaxStorage.sol
[codex:1403078] contracts/contracts/v1/errors/VaultErrors.sol
[codex:1403078] contracts/contracts/v1/oracle/IOracle.sol
[codex:1403078] contracts/contracts/v1/ITermMaxMarket.sol
[codex:1403078] contracts/contracts/v1/ITermMaxOrder.sol
[codex:1403078] contracts/contracts/v1/tokens/IMintableERC20.sol
[codex:1403078] contracts/contracts/v1/tokens/IGearingToken.sol
[codex:1403078] contracts/contracts/v1/events/VaultEvents.sol
[codex:1403078] contracts/contracts/v1plus/errors/VaultErrorsV1Plus.sol
[codex:1403078] contracts/contracts/v1/lib/PendingLib.sol
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Inspecting TermMaxVaultV1Plus implementation**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: GPL-2.0-or-later
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @title TermMaxVaultV1Plus
[codex:1403078] * @notice This contract is inspired by MetaMorphoV1_1 (https://github.com/morpho-org/metamorpho-v1.1/blob/main/src/MetaMorphoV1_1.sol)
[codex:1403078] * @dev The role management structure is based on Morpho's role system (https://docs.morpho.org/curation/concepts/roles/)
[codex:1403078] * with similar separation of curator, guardian, and allocator roles for enhanced governance and risk management.
[codex:1403078] */
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1403078] import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
[codex:1403078] import {
[codex:1403078] IERC4626,
[codex:1403078] ERC4626Upgradeable,
[codex:1403078] ERC20Upgradeable
[codex:1403078] } from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol";
[codex:1403078] import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol";
[codex:1403078] import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
[codex:1403078] import {PendingLib, PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol";
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Continuing exploration**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '200,400p' contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] * @inheritdoc ITermMaxVault
[codex:1403078] */
[codex:1403078] function performanceFeeRate() external view virtual returns (uint64) {
[codex:1403078] return _performanceFeeRate;
[codex:1403078] }
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @inheritdoc ITermMaxVault
[codex:1403078] */
[codex:1403078] function totalFt() external view virtual returns (uint256) {
[codex:1403078] return _totalFt / Constants.DECIMAL_BASE_SQ;
[codex:1403078] }
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @inheritdoc ITermMaxVault
[codex:1403078] */
[codex:1403078] function accretingPrincipal() external view virtual returns (uint256) {
[codex:1403078] (uint256 ap,) = _previewAccruedInterest();
[codex:1403078] return ap / Constants.DECIMAL_BASE_SQ;
[codex:1403078] }
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Continuing process**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '400,800p' contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] }
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @inheritdoc ITermMaxVault
[codex:1403078] */
[codex:1403078] function redeemOrder(ITermMaxOrder order) external virtual {
[codex:1403078] _delegateCall(abi.encodeCall(IOrderManager.redeemOrder, (order)));
[codex:1403078] }
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @inheritdoc ITermMaxVault
[codex:1403078] */
[codex:1403078] function withdrawPerformanceFee(address recipient, uint256 amount)
[codex:1403078] external
[codex:1403078] virtual
[codex:1403078] nonReentrant
[codex:1403078] whenNotPaused
[codex:1403078] onlyCuratorRole
[codex:1403078] {
[codex:1403078] _delegateCall(abi.encodeCall(IOrderManager.withdrawPerformanceFee, (IERC20(asset()), recipient, amount)));
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Continuing process**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '800,1200p' contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078]
[codex:1403078] previewPerformanceFee += previewPerformanceFeeToCurator;
[codex:1403078] previewPrincipal += previewInterest;
[codex:1403078]
[codex:1403078] recentMaturity = nextMaturity;
[codex:1403078] }
[codex:1403078] if (recentMaturity > 0) {
[codex:1403078] (uint256 previewInterest, uint256 previewPerformanceFeeToCurator) =
[codex:1403078] _previewAccruedPeriodInterest(lastTime, currentTime, previewAnnualizedInterest);
[codex:1403078] previewPerformanceFee += previewPerformanceFeeToCurator;
[codex:1403078] previewPrincipal += previewInterest;
[codex:1403078] }
[codex:1403078] }
[codex:1403078]
[codex:1403078] function _previewAccruedPeriodInterest(uint256 startTime, uint256 endTime, uint256 previewAnnualizedInterest)
[codex:1403078] internal
[codex:1403078] view
[codex:1403078] returns (uint256, uint256)
[codex:1403078] {
[codex:1403078] uint256 interest = (previewAnnualizedInterest * (endTime - startTime)) / 365 days;
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Analyzing contract components and vulnerabilities**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/lib/TransactionReentrancyGuard.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078]
[codex:1403078] abstract contract TransactionReentrancyGuard {
[codex:1403078] /// @notice Error thrown when a reentrant call is detected in one transaction.
[codex:1403078] error ReentrantCall();
[codex:1403078] /// @notice Error thrown when a reentrant call is detected between actions.
[codex:1403078] error ReentrantCallBetweenActions(uint256 actionId, uint256 oldActionId);
[codex:1403078] /// @notice Error thrown when using reserved ID. (0 and 1 are reserved id)
[codex:1403078] error InvalidActionId();
[codex:1403078]
[codex:1403078] // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.TransactionReentrancyGuard")) - 1)) & ~bytes32(uint256(0xff))
[codex:1403078] uint256 private constant T_FLAG_STORE = 0x55d65f3b5821c66716708cd5119fc8b654f479bd23b96d0911cee85241904700;
[codex:1403078]
[codex:1403078] /// @notice Modifier to prevent reentrant calls in one transaction.
[codex:1403078] modifier nonTxReentrant() {
[codex:1403078] if (_getTxReentrancyGuardStorage() == 1) revert ReentrantCall();
[codex:1403078] _setTxReentrancyGuardStorage(1);
[codex:1403078] _;
[codex:1403078] }
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Analyzing transient storage compatibility**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,240p' contracts/contracts/v1plus/vault/VaultStorageV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078]
[codex:1403078] import {PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol";
[codex:1403078] import {OrderInfo} from "../../v1/vault/VaultStorage.sol";
[codex:1403078]
[codex:1403078] contract VaultStorageV1Plus {
[codex:1403078] // State variables
[codex:1403078] address internal _guardian;
[codex:1403078] address internal _curator;
[codex:1403078]
[codex:1403078] mapping(address => bool) internal _isAllocator;
[codex:1403078] mapping(address => bool) internal _marketWhitelist;
[codex:1403078] mapping(address => PendingUint192) internal _pendingMarkets;
[codex:1403078]
[codex:1403078] PendingUint192 internal _pendingTimelock;
[codex:1403078] PendingUint192 internal _pendingPerformanceFeeRate;
[codex:1403078] PendingAddress internal _pendingGuardian;
[codex:1403078]
[codex:1403078] uint256 internal _timelock;
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Checking storage components**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/storage/TermMaxStorageV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078]
[codex:1403078] struct VaultInitialParamsV1Plus {
[codex:1403078] address admin;
[codex:1403078] address curator;
[codex:1403078] address guardian;
[codex:1403078] uint256 timelock;
[codex:1403078] IERC20 asset;
[codex:1403078] uint256 maxCapacity;
[codex:1403078] string name;
[codex:1403078] string symbol;
[codex:1403078] /// @notice The performance fee rate in base units, e.g. 20% = 0.2e8
[codex:1403078] uint64 performanceFeeRate;
[codex:1403078] /// @notice The minimum APY in base units, e.g. 2% = 0.02e8
[codex:1403078] uint64 minApy;
[codex:1403078] /// @notice The minimum idle fund rate in base units, e.g. 10% = 0.1e8
[codex:1403078] uint64 minIdleFundRate;
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Inspecting TransferUtils library**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/lib/TransferUtils.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1403078]
[codex:1403078] library TransferUtils {
[codex:1403078] using SafeERC20 for IERC20;
[codex:1403078]
[codex:1403078] error CanNotTransferUintMax();
[codex:1403078]
[codex:1403078] function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
[codex:1403078] if (value == type(uint256).max) {
[codex:1403078] revert CanNotTransferUintMax();
[codex:1403078] }
[codex:1403078] if (from == to || value == 0) {
[codex:1403078] return;
[codex:1403078] }
[codex:1403078] token.safeTransferFrom(from, to, value);
[codex:1403078] }
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Considering PendingLib**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/lib/PendingLib.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: GPL-2.0-or-later
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] struct PendingUint192 {
[codex:1403078] /// @notice The pending value to set.
[codex:1403078] uint192 value;
[codex:1403078] /// @notice The timestamp at which the pending value becomes valid.
[codex:1403078] uint64 validAt;
[codex:1403078] }
[codex:1403078]
[codex:1403078] struct PendingAddress {
[codex:1403078] /// @notice The pending value to set.
[codex:1403078] address value;
[codex:1403078] /// @notice The timestamp at which the pending value becomes valid.
[codex:1403078] uint64 validAt;
[codex:1403078] }
[codex:1403078]
[codex:1403078] /// @title PendingLib
[codex:1403078] /// @author Morpho Labs
[codex:1403078] /// @custom:contact security@morpho.org
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Noting additional libraries**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/lib/VaultConstants.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] library VaultConstants {
[codex:1403078] /// @dev The maximum delay of a timelock.
[codex:1403078] uint256 internal constant MAX_TIMELOCK = 2 weeks;
[codex:1403078]
[codex:1403078] /// @dev The minimum delay of a timelock post initialization.
[codex:1403078] uint256 internal constant POST_INITIALIZATION_MIN_TIMELOCK = 1 days;
[codex:1403078]
[codex:1403078] /// @dev The maximum number of markets in the supply/withdraw queue.
[codex:1403078] uint256 internal constant MAX_QUEUE_LENGTH = 30;
[codex:1403078]
[codex:1403078] /// @dev The maximum fee the vault can have (50%).
[codex:1403078] uint256 internal constant MAX_FEE = 0.5e18;
[codex:1403078]
[codex:1403078] /// @dev The maximum term the vault can have.
[codex:1403078] uint256 internal constant MAX_TERM = 365 days;
[codex:1403078]
[codex:1403078] /// @dev The maximum performance fee rate the vault can have.
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Checking for constants**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/lib/Constants.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @title The general constants of TermMax
[codex:1403078] * @author Term Structure Labs
[codex:1403078] */
[codex:1403078] library Constants {
[codex:1403078] /// @notice The base decimals of ratio
[codex:1403078] uint256 constant DECIMAL_BASE = 1e8;
[codex:1403078] /// @notice The square of the base decimals
[codex:1403078] uint256 constant DECIMAL_BASE_SQ = 1e16;
[codex:1403078] /// @notice The days of one year
[codex:1403078] uint256 constant DAYS_IN_YEAR = 365;
[codex:1403078] /// @notice The seconds of one day
[codex:1403078] uint256 constant SECONDS_IN_DAY = 1 days;
[codex:1403078] /// @notice The window time left for the liquidation bot after the market expires
[codex:1403078] uint256 constant LIQUIDATION_WINDOW = 2 hours;
[codex:1403078] /// @notice The limit of fee ratio
[codex:1403078] uint32 constant MAX_FEE_RATIO = 0.2e8;
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Inspecting VaultErrorsV1Plus events**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/errors/VaultErrorsV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @title Vault Errors V1Plus
[codex:1403078] * @author Term Structure Labs
[codex:1403078] */
[codex:1403078] interface VaultErrorsV1Plus {
[codex:1403078] /// @notice Error thrown when the parameters of updating orders are invalid
[codex:1403078] error ArrayLengthMismatch();
[codex:1403078] /// @notice Error thrown when dealing unexpected collateral
[codex:1403078] error CollateralIsAsset();
[codex:1403078] /// @notice Error thrown when initializing the vault using V1 initializing function
[codex:1403078] error UseVaultInitialParamsV1Plus();
[codex:1403078] /// @notice Error thrown when calling functions about supply queue
[codex:1403078] error SupplyQueueNoLongerSupported();
[codex:1403078] /// @notice Error thrown when calling functions about withdrawal queue
[codex:1403078] error WithdrawalQueueNoLongerSupported();
[codex:1403078] /// @notice Error thrown when calling apr function
[codex:1403078] error UseApyInsteadOfApr();
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Identifying needed interface**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/vault/IOrderManager.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {ITermMaxMarket} from "../ITermMaxMarket.sol";
[codex:1403078] import {ITermMaxOrder} from "../ITermMaxOrder.sol";
[codex:1403078] import {CurveCuts} from "../storage/TermMaxStorage.sol";
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @title Order Manager Interface
[codex:1403078] * @author Term Structure Labs
[codex:1403078] */
[codex:1403078] interface IOrderManager {
[codex:1403078] /**
[codex:1403078] * @notice Creates a new order
[codex:1403078] * @param asset The asset token address
[codex:1403078] * @param market The market address
[codex:1403078] * @param maxSupply The maximum xt supply of the order
[codex:1403078] * @param initialReserve The initial reserve of the order
[codex:1403078] * @param curveCuts The curve cuts for the order
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Analyzing delegatecall risks**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/vault/VaultStorage.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078]
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {ITermMaxMarket} from "../ITermMaxMarket.sol";
[codex:1403078] import {PendingAddress, PendingUint192} from "../lib/PendingLib.sol";
[codex:1403078]
[codex:1403078] struct OrderInfo {
[codex:1403078] ITermMaxMarket market;
[codex:1403078] IERC20 ft;
[codex:1403078] IERC20 xt;
[codex:1403078] uint128 maxSupply;
[codex:1403078] uint64 maturity;
[codex:1403078] }
[codex:1403078]
[codex:1403078] contract VaultStorage {
[codex:1403078] // State variables
[codex:1403078] address internal _guardian;
[codex:1403078] address internal _curator;
[codex:1403078]
[codex:1403078]
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Analyzing TermMaxVaultV1Plus vulnerabilities**
[codex:1403078] thinking
[codex:1403078] **Evaluating delegatecall and event logic risks**
[codex:1403078]
[codex:1403078] I'll review delegatecall paths that might allow reentrancy due to missing guards, note double event emissions from performance fee updates, and consider potential unbounded loops that could cause gas issues—there is also a focus on access control gaps relying on delegatecall to enforce authorization without internal checks.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "_orderMapping" contracts/contracts' in /tmp/codex-multi-au1_xfpc succeeded in 10ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:254: return _orderMapping[order];
[codex:1403078] contracts/contracts/v1plus/vault/VaultStorageV1Plus.sol:37: mapping(address => OrderInfo) internal _orderMapping;
[codex:1403078] contracts/contracts/v1/vault/VaultStorage.sol:48: mapping(address => OrderInfo) internal _orderMapping;
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Analyzing vault withdrawal and accounting logic**
[codex:1403078]
[codex:1403078] I'm reviewing the vault's withdrawal and accounting functions for potential issues. I notice withdrawals bypass the pause check, which might be intentional for emergencies. I'm also considering risks around delegatecalls and imperfect internal accounting due to limited code visibility. Next, I'll look into related interfaces to gather more clues.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/vault/ITermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol";
[codex:1403078] import {PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol";
[codex:1403078] import {VaultInitialParamsV1Plus} from "../storage/TermMaxStorageV1Plus.sol";
[codex:1403078]
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @title ITermMaxVaultV1Plus
[codex:1403078] * @notice Interface for TermMax Vault V1Plus contract
[codex:1403078] * @dev This interface defines the core functionality for vault operations including
[codex:1403078] * initialization, APY management, and pending parameter updates with timelock mechanism
[codex:1403078] */
[codex:1403078] interface ITermMaxVaultV1Plus is IERC4626 {
[codex:1403078] /**
[codex:1403078] * @notice Initializes the vault with the provided parameters
[codex:1403078] * @dev This function should only be called once during contract deployment
[codex:1403078] * @param params The initial configuration parameters for the vault
[codex:1403078] */
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Analyzing potential reentrancy and state risks**
[codex:1403078]
[codex:1403078] I'm weighing if missing nonReentrant guards on redeemOrder and afterSwap might allow reentrant attacks causing inconsistent state or double updates, especially since deposit is protected but redeemOrder isn’t. I'm also noting pause-related access gaps and pondering if capacity or asset accounting could lead to issues, plus the risk of infinite loops in accrued interest previews—next I'll dive into related storage to grasp the assumptions better.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/storage/TermMaxStorage.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078]
[codex:1403078] import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {IOracle} from "../oracle/IOracle.sol";
[codex:1403078] import {ISwapCallback} from "../ISwapCallback.sol";
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @title The data struct of token pair
[codex:1403078] * @author Term Structure Labs
[codex:1403078] */
[codex:1403078] struct CurveCut {
[codex:1403078] uint256 xtReserve;
[codex:1403078] uint256 liqSquare;
[codex:1403078] int256 offset;
[codex:1403078] }
[codex:1403078]
[codex:1403078] struct FeeConfig {
[codex:1403078] /// @notice The lending fee ratio taker
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Analyzing potential contract vulnerabilities**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "contract ERC4626Upgradeable" -n contracts/dependencies/@openzeppelin-contracts-upgradeable-5.2.0/token/ERC20/extensions/ERC4626Upgradeable.sol' in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] 51:abstract contract ERC4626Upgradeable is Initializable, ERC20Upgradeable, IERC4626 {
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,80p' contracts/dependencies/@openzeppelin-contracts-upgradeable-5.2.0/token/ERC20/extensions/ERC4626Upgradeable.sol" in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/ERC4626.sol)
[codex:1403078]
[codex:1403078] pragma solidity ^0.8.20;
[codex:1403078]
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1403078] import {ERC20Upgradeable} from "../ERC20Upgradeable.sol";
[codex:1403078] import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1403078] import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol";
[codex:1403078] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1403078] import {Initializable} from "../../../proxy/utils/Initializable.sol";
[codex:1403078]
[codex:1403078] /**
[codex:1403078] * @dev Implementation of the ERC-4626 "Tokenized Vault Standard" as defined in
[codex:1403078] * https://eips.ethereum.org/EIPS/eip-4626[ERC-4626].
[codex:1403078] *
[codex:1403078] * This extension allows the minting and burning of "shares" (represented using the ERC-20 inheritance) in exchange for
[codex:1403078] * underlying "assets" through standardized {deposit}, {mint}, {redeem} and {burn} workflows. This contract extends
[codex:1403078] * the ERC-20 standard. Any additional extensions included along it would affect the "shares" token represented by this
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Preparing to audit delegatecall usage**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "delegatecall" contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol' in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] 487: (bool success, bytes memory returnData) = ORDER_MANAGER_SINGLETON.delegatecall(data);
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Evaluating delegatecall risks and access controls**
[codex:1403078]
[codex:1403078] I'm examining the use of delegatecall to ORDER_MANAGER_SINGLETON and reviewing access controls, reentrancy guards, and pause functionality to identify potential vulnerabilities. It seems most risks depend on order manager’s validation, with concerns around delegatecall upgradeability, unguarded redeemOrder calls during pause, and possible unchecked withdrawals by the curator. I want to be careful about these conditional findings while considering overall contract logic and external dependencies.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "ORDER_MANAGER_SINGLETON" -n contracts/contracts' in /tmp/codex-multi-au1_xfpc succeeded in 9ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56: address public immutable ORDER_MANAGER_SINGLETON;
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:101: constructor(address ORDER_MANAGER_SINGLETON_) {
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:102: ORDER_MANAGER_SINGLETON = ORDER_MANAGER_SINGLETON_;
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:487: (bool success, bytes memory returnData) = ORDER_MANAGER_SINGLETON.delegatecall(data);
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Searching for delegatecall usage**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "delegatecall" contracts/contracts' in /tmp/codex-multi-au1_xfpc succeeded in 8ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:487: (bool success, bytes memory returnData) = ORDER_MANAGER_SINGLETON.delegatecall(data);
[codex:1403078]
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Identifying delegatecall and access control risks**
[codex:1403078] thinking
[codex:1403078] **Analyzing integer types and reentrancy implications**
[codex:1403078]
[codex:1403078] There is a detailed look at integer size consistency in performance fee rates and pending values, finding they are safe due to bounds checks. I’m also exploring how the nonReentrant guards interact with delegatecalls, noticing that some functions like `afterSwap` are not protected, which could allow reentrancy during deposit or withdraw. The interplay between token transfers, delegatecalls, and reentrancy guards might enable subtle state-manipulation risks, especially if external callbacks occur mid-operation. I’m curious about the potential effect of these gaps and how critical they might be.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "afterSwap" contracts/contracts' in /tmp/codex-multi-au1_xfpc succeeded in 8ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826: function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt, int256)
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:832: _delegateCall(abi.encodeCall(IOrderManager.afterSwap, (ftReserve, xtReserve, deltaFt)));
[codex:1403078] contracts/contracts/v1/vault/IOrderManager.sol:97: function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt) external;
[codex:1403078] contracts/contracts/v1/ISwapCallback.sol:17: function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt, int256 deltaXt) external;
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Analyzing potential vulnerabilities and planning findings**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Summarizing security findings and crafting JSON report**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "nl -ba contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol | sed -n '460,540p'" in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] 460
[codex:1403078] 461 _delegateCall(abi.encodeCall(IOrderManager.depositAssets, (IERC20(asset()), assets)));
[codex:1403078] 462 _mint(recipient, shares);
[codex:1403078] 463
[codex:1403078] 464 emit Deposit(caller, recipient, assets, shares);
[codex:1403078] 465 }
[codex:1403078] 466
[codex:1403078] 467 /**
[codex:1403078] 468 * @dev Withdraw/redeem common workflow.
[codex:1403078] 469 */
[codex:1403078] 470 function _withdraw(address caller, address receiver, address owner, uint256 assets, uint256 shares)
[codex:1403078] 471 internal
[codex:1403078] 472 override
[codex:1403078] 473 nonReentrant
[codex:1403078] 474 nonTxReentrantBetweenActions(ACTION_WITHDRAW)
[codex:1403078] 475 {
[codex:1403078] 476 if (caller != owner) {
[codex:1403078] 477 _spendAllowance(owner, caller, shares);
[codex:1403078] 478 }
[codex:1403078] 479
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Locating afterSwap function**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "nl -ba contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol | sed -n '810,860p'" in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] 810 previewPrincipal += previewInterest;
[codex:1403078] 811 }
[codex:1403078] 812 }
[codex:1403078] 813
[codex:1403078] 814 function _previewAccruedPeriodInterest(uint256 startTime, uint256 endTime, uint256 previewAnnualizedInterest)
[codex:1403078] 815 internal
[codex:1403078] 816 view
[codex:1403078] 817 returns (uint256, uint256)
[codex:1403078] 818 {
[codex:1403078] 819 uint256 interest = (previewAnnualizedInterest * (endTime - startTime)) / 365 days;
[codex:1403078] 820 uint256 performanceFeeToCurator = (interest * _performanceFeeRate) / Constants.DECIMAL_BASE;
[codex:1403078] 821 return (interest - performanceFeeToCurator, performanceFeeToCurator);
[codex:1403078] 822 }
[codex:1403078] 823
[codex:1403078] 824 /// @notice Callback function for the swap
[codex:1403078] 825 /// @param deltaFt The change in the ft balance of the order
[codex:1403078] 826 function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt, int256)
[codex:1403078] 827 external
[codex:1403078] 828 virtual
[codex:1403078] 829 override
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Locating ORDER_MANAGER_SINGLETON and constructor lines**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "nl -ba contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol | sed -n '40,120p'" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] 40 VaultStorageV1Plus,
[codex:1403078] 41 ITermMaxVault,
[codex:1403078] 42 Ownable2StepUpgradeable,
[codex:1403078] 43 ReentrancyGuardUpgradeable,
[codex:1403078] 44 ERC4626Upgradeable,
[codex:1403078] 45 PausableUpgradeable,
[codex:1403078] 46 VaultErrors,
[codex:1403078] 47 VaultEvents,
[codex:1403078] 48 ISwapCallback,
[codex:1403078] 49 ITermMaxVaultV1Plus,
[codex:1403078] 50 TransactionReentrancyGuard
[codex:1403078] 51 {
[codex:1403078] 52 using SafeCast for uint256;
[codex:1403078] 53 using TransferUtils for IERC20;
[codex:1403078] 54 using PendingLib for *;
[codex:1403078] 55
[codex:1403078] 56 address public immutable ORDER_MANAGER_SINGLETON;
[codex:1403078] 57
[codex:1403078] 58 // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.vault.actionDeposit")) - 1)) & ~bytes32(uint256(0xff))
[codex:1403078] 59 uint256 private constant ACTION_DEPOSIT = 0x1d9ff85e70b948f53a2cc45fa6f42c020b2a8eec3349351855dea946b0635700;
[codex:1403078]
[codex:1403078] thinking
[codex:1403078] **Preparing security findings and JSON output**
[codex:1403078] codex
[codex:1403078] {"no_findings":false,"summary":"Identified 2 issues: reliance on an external delegatecall-based order manager creates an implicit upgradeability backdoor, and the swap callback is publicly callable without caller validation.","findings":[{"severity":"high","category":"upgradeability","title":"Delegatecall to external ORDER_MANAGER_SINGLETON enables full vault takeover if that address is upgradeable/compromised","exploit_scenario":"If ORDER_MANAGER_SINGLETON is a proxy or otherwise upgradeable, its admin (or a compromised key) can swap in malicious logic. Because the vault uses delegatecall for core actions, the new logic can overwrite vault storage, mint/burn shares, or transfer assets out, effectively draining user funds.","recommendation":"Ensure ORDER_MANAGER_SINGLETON is a non-upgradeable, immutable implementation with a fixed codehash; consider validating codehash at deployment, or embed the order manager logic directly. If upgradeability is required, gate upgrades behind explicit, timelocked governance and document this trust assumption.","evidence":"The vault stores an external ORDER_MANAGER_SINGLETON and forwards critical operations through `delegatecall` in `_delegateCall`, giving the target full access to vault storage and assets.","locations":["contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56","contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:486"]},{"severity":"medium","category":"access_control","title":"afterSwap callback is publicly callable with unvalidated parameters","exploit_scenario":"Any account can call `afterSwap` with arbitrary reserve/delta values (or reenter during token transfers) to trigger the order manager’s accounting logic. If the order manager relies on these inputs without strict caller validation, an attacker can skew interest/fee accounting or induce inconsistent state, potentially affecting share pricing and withdrawals.","recommendation":"Restrict `afterSwap` to authorized order contracts (e.g., require `_orderMapping[msg.sender]` to be set), validate the reserve/delta inputs against order state, and consider adding `nonReentrant` or a dedicated reentrancy guard for the callback.","evidence":"`afterSwap` is an external function with only a pause check and forwards user-supplied parameters directly into the order manager via delegatecall; there is no caller authentication in the vault.","locations":["contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826"]}]}
[codex:1403078] tokens used
[codex:1403078] 65,062
[codex:1403078] {"no_findings":false,"summary":"Identified 2 issues: reliance on an external delegatecall-based order manager creates an implicit upgradeability backdoor, and the swap callback is publicly callable without caller validation.","findings":[{"severity":"high","category":"upgradeability","title":"Delegatecall to external ORDER_MANAGER_SINGLETON enables full vault takeover if that address is upgradeable/compromised","exploit_scenario":"If ORDER_MANAGER_SINGLETON is a proxy or otherwise upgradeable, its admin (or a compromised key) can swap in malicious logic. Because the vault uses delegatecall for core actions, the new logic can overwrite vault storage, mint/burn shares, or transfer assets out, effectively draining user funds.","recommendation":"Ensure ORDER_MANAGER_SINGLETON is a non-upgradeable, immutable implementation with a fixed codehash; consider validating codehash at deployment, or embed the order manager logic directly. If upgradeability is required, gate upgrades behind explicit, timelocked governance and document this trust assumption.","evidence":"The vault stores an external ORDER_MANAGER_SINGLETON and forwards critical operations through `delegatecall` in `_delegateCall`, giving the target full access to vault storage and assets.","locations":["contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56","contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:486"]},{"severity":"medium","category":"access_control","title":"afterSwap callback is publicly callable with unvalidated parameters","exploit_scenario":"Any account can call `afterSwap` with arbitrary reserve/delta values (or reenter during token transfers) to trigger the order manager’s accounting logic. If the order manager relies on these inputs without strict caller validation, an attacker can skew interest/fee accounting or induce inconsistent state, potentially affecting share pricing and withdrawals.","recommendation":"Restrict `afterSwap` to authorized order contracts (e.g., require `_orderMapping[msg.sender]` to be set), validate the reserve/delta inputs against order state, and consider adding `nonReentrant` or a dedicated reentrancy guard for the callback.","evidence":"`afterSwap` is an external function with only a pause check and forwards user-supplied parameters directly into the order manager via delegatecall; there is no caller authentication in the vault.","locations":["contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826"]}]}
{
"codex": {
"ran_at": "2025-12-28T17:26:32.227598+00:00",
"returncode": 0
},
"summary": "Identified 2 issues: reliance on an external delegatecall-based order manager creates an implicit upgradeability backdoor, and the swap callback is publicly callable without caller validation.",
"raw_final": {
"summary": "Identified 2 issues: reliance on an external delegatecall-based order manager creates an implicit upgradeability backdoor, and the swap callback is publicly callable without caller validation.",
"findings": [
{
"title": "Delegatecall to external ORDER_MANAGER_SINGLETON enables full vault takeover if that address is upgradeable/compromised",
"category": "upgradeability",
"evidence": "The vault stores an external ORDER_MANAGER_SINGLETON and forwards critical operations through `delegatecall` in `_delegateCall`, giving the target full access to vault storage and assets.",
"severity": "high",
"locations": [
"contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56",
"contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:486"
],
"recommendation": "Ensure ORDER_MANAGER_SINGLETON is a non-upgradeable, immutable implementation with a fixed codehash; consider validating codehash at deployment, or embed the order manager logic directly. If upgradeability is required, gate upgrades behind explicit, timelocked governance and document this trust assumption.",
"exploit_scenario": "If ORDER_MANAGER_SINGLETON is a proxy or otherwise upgradeable, its admin (or a compromised key) can swap in malicious logic. Because the vault uses delegatecall for core actions, the new logic can overwrite vault storage, mint/burn shares, or transfer assets out, effectively draining user funds."
},
{
"title": "afterSwap callback is publicly callable with unvalidated parameters",
"category": "access_control",
"evidence": "`afterSwap` is an external function with only a pause check and forwards user-supplied parameters directly into the order manager via delegatecall; there is no caller authentication in the vault.",
"severity": "medium",
"locations": [
"contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826"
],
"recommendation": "Restrict `afterSwap` to authorized order contracts (e.g., require `_orderMapping[msg.sender]` to be set), validate the reserve/delta inputs against order state, and consider adding `nonReentrant` or a dedicated reentrancy guard for the callback.",
"exploit_scenario": "Any account can call `afterSwap` with arbitrary reserve/delta values (or reenter during token transfers) to trigger the order manager\u2019s accounting logic. If the order manager relies on these inputs without strict caller validation, an attacker can skew interest/fee accounting or induce inconsistent state, potentially affecting share pricing and withdrawals."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: ISZERO 0000000a: PUSH2 0x0011 0000000d: JUMPI 0000000e: PUSH0 0000000f: DUP1 00000010: REVERT 00000011: JUMPDEST 00000012: PUSH0 00000013: CALLDATALOAD 00000014: PUSH1 0xe0 00000016: SHR 00000017: DUP1 00000018: PUSH4 0x01e1d114 0000001d: EQ 0000001e: PUSH2 0x05c5 00000021: JUMPI 00000022: DUP1 00000023: PUSH4 0x06fdde03 00000028: EQ 00000029: PUSH2 0x05c0 0000002c: JUMPI 0000002d: DUP1 0000002e: PUSH4 0x07a2d13a 00000033: EQ 00000034: PUSH2 0x053e 00000037: JUMPI 00000038: DUP1 00000039: PUSH4 0x095ea7b3 0000003e: EQ 0000003f: PUSH2 0x05bb 00000042: JUMPI 00000043: DUP1 00000044: PUSH4 0x0a28a477 00000049: EQ 0000004a: PUSH2 0x05b6 0000004d: JUMPI 0000004e: DUP1 0000004f: PUSH4 0x0d8e6e2c 00000054: EQ 00000055: PUSH2 0x05b1 00000058: JUMPI 00000059: DUP1 0000005a: PUSH4 0x0f4f0c32 0000005f: EQ 00000060: PUSH2 0x05ac 00000063: JUMPI 00000064: DUP1 00000065: PUSH4 0x0ffbfda4 0000006a: EQ 0000006b: PUSH2 0x05a7 0000006e: JUMPI 0000006f: DUP1 00000070: PUSH4 0x1124f92c 00000075: EQ 00000076: PUSH2 0x05a2 00000079: JUMPI 0000007a: DUP1 0000007b: PUSH4 0x163c8c77 00000080: EQ 00000081: PUSH2 0x059d 00000084: JUMPI 00000085: DUP1 00000086: PUSH4 0x18160ddd 0000008b: EQ 0000008c: PUSH2 0x0598 0000008f: JUMPI 00000090: DUP1 00000091: PUSH4 0x1908a2ee 00000096: EQ 00000097: PUSH2 0x0593 0000009a: JUMPI 0000009b: DUP1 0000009c: PUSH4 0x1ecca77c 000000a1: EQ 000000a2: PUSH2 0x058e 000000a5: JUMPI 000000a6: DUP1 000000a7: PUSH4 0x23b872dd 000000ac: EQ 000000ad: PUSH2 0x0589 000000b0: JUMPI 000000b1: DUP1 000000b2: PUSH4 0x24524a96 000000b7: EQ 000000b8: PUSH2 0x0584 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0x313ce567 000000c2: EQ 000000c3: PUSH2 0x057f 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x332f47ba 000000cd: EQ 000000ce: PUSH2 0x057a 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x33f91ebb 000000d8: EQ 000000d9: PUSH2 0x0575 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x3775d83a 000000e3: EQ 000000e4: PUSH2 0x0570 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x38d52e0f 000000ee: EQ 000000ef: PUSH2 0x056b 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0x3bcfc4b8 000000f9: EQ 000000fa: PUSH2 0x0566 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x3f38db41 00000104: EQ 00000105: PUSH2 0x0561 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x3f4ba83a 0000010f: EQ 00000110: PUSH2 0x055c 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x402d267d 0000011a: EQ 0000011b: PUSH2 0x0557 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x41b67833 00000125: EQ 00000126: PUSH2 0x0552 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x452a9320 00000130: EQ 00000131: PUSH2 0x054d 00000134: JUMPI 00000135: DUP1 00000136: PUSH4 0x460bf7e1 0000013b: EQ 0000013c: PUSH2 0x0548 0000013f: JUMPI 00000140: DUP1 00000141: PUSH4 0x48c70966 00000146: EQ 00000147: PUSH2 0x0543 0000014a: JUMPI 0000014b: DUP1 0000014c: PUSH4 0x4cdad506 00000151: EQ 00000152: PUSH2 0x053e 00000155: JUMPI 00000156: DUP1 00000157: PUSH4 0x4dedf20e 0000015c: EQ 0000015d: PUSH2 0x0539 00000160: JUMPI 00000161: DUP1 00000162: PUSH4 0x57ded9c9 00000167: EQ 00000168: PUSH2 0x0534 0000016b: JUMPI 0000016c: DUP1 0000016d: PUSH4 0x594d16f7 00000172: EQ 00000173: PUSH2 0x052f 00000176: JUMPI 00000177: DUP1 00000178: PUSH4 0x5c975abb 0000017d: EQ 0000017e: PUSH2 0x052a 00000181: JUMPI 00000182: DUP1 00000183: PUSH4 0x5f19ed69 00000188: EQ 00000189: PUSH2 0x0525 0000018c: JUMPI 0000018d: DUP1 0000018e: PUSH4 0x618f9694 00000193: EQ 00000194: PUSH2 0x0520 00000197: JUMPI 00000198: DUP1 00000199: PUSH4 0x62518ddf 0000019e: EQ 0000019f: PUSH2 0x051b 000001a2: JUMPI 000001a3: DUP1 000001a4: PUSH4 0x69c42125 000001a9: EQ 000001aa: PUSH2 0x0516 000001ad: JUMPI 000001ae: DUP1 000001af: PUSH4 0x6e553f65 000001b4: EQ 000001b5: PUSH2 0x0511 000001b8: JUMPI 000001b9: DUP1 000001ba: PUSH4 0x70a08231 000001bf: EQ 000001c0: PUSH2 0x0453 000001c3: JUMPI 000001c4: DUP1 000001c5: PUSH4 0x715018a6 000001ca: EQ 000001cb: PUSH2 0x050c 000001ce: JUMPI 000001cf: DUP1 000001d0: PUSH4 0x7207fbb4 000001d5: EQ 000001d6: PUSH2 0x0507 000001d9: JUMPI 000001da: DUP1 000001db: PUSH4 0x7224a512 000001e0: EQ 000001e1: PUSH2 0x0502 000001e4: JUMPI 000001e5: DUP1 000001e6: PUSH4 0x762c31ba 000001eb: EQ 000001ec: PUSH2 0x04fd 000001ef: JUMPI 000001f0: DUP1 000001f1: PUSH4 0x77e1731b 000001f6: EQ 000001f7: PUSH2 0x04f8 000001fa: JUMPI 000001fb: DUP1 000001fc: PUSH4 0x79ba5097 00000201: EQ 00000202: PUSH2 0x04f3 00000205: JUMPI 00000206: DUP1 00000207: PUSH4 0x7cc4d9a1 0000020c: EQ 0000020d: PUSH2 0x04ee 00000210: JUMPI 00000211: DUP1 00000212: PUSH4 0x80a58a5e 00000217: EQ 00000218: PUSH2 0x04e9 0000021b: JUMPI 0000021c: DUP1 0000021d: PUSH4 0x8456cb59 00000222: EQ 00000223: PUSH2 0x04e4 00000226: JUMPI 00000227: DUP1 00000228: PUSH4 0x86c058ed 0000022d: EQ 0000022e: PUSH2 0x04df 00000231: JUMPI 00000232: DUP1 00000233: PUSH4 0x87788782 00000238: EQ 00000239: PUSH2 0x04da 0000023c: JUMPI 0000023d: DUP1 0000023e: PUSH4 0x89716a25 00000243: EQ 00000244: PUSH2 0x04d5 00000247: JUMPI 00000248: DUP1 00000249: PUSH4 0x8a2c7b39 0000024e: EQ 0000024f: PUSH2 0x04d0 00000252: JUMPI 00000253: DUP1 00000254: PUSH4 0x8da5cb5b 00000259: EQ 0000025a: PUSH2 0x04cb 0000025d: JUMPI 0000025e: DUP1 0000025f: PUSH4 0x91915ef8 00000264: EQ 00000265: PUSH2 0x04c6 00000268: JUMPI 00000269: DUP1 0000026a: PUSH4 0x93bd007b 0000026f: EQ 00000270: PUSH2 0x04c1 00000273: JUMPI 00000274: DUP1 00000275: PUSH4 0x94bf804d 0000027a: EQ 0000027b: PUSH2 0x04bc 0000027e: JUMPI 0000027f: DUP1 00000280: PUSH4 0x95d89b41 00000285: EQ 00000286: PUSH2 0x04b7 00000289: JUMPI 0000028a: DUP1 0000028b: PUSH4 0x988a64c4 00000290: EQ 00000291: PUSH2 0x04b2 00000294: JUMPI 00000295: DUP1 00000296: PUSH4 0x9d6b4a45 0000029b: EQ 0000029c: PUSH2 0x04ad 0000029f: JUMPI 000002a0: DUP1 000002a1: PUSH4 0xa1251f37 000002a6: EQ 000002a7: PUSH2 0x04a8 000002aa: JUMPI 000002ab: DUP1 000002ac: PUSH4 0xa17b3130 000002b1: EQ 000002b2: PUSH2 0x04a3 000002b5: JUMPI 000002b6: DUP1 000002b7: PUSH4 0xa5f31d61 000002bc: EQ 000002bd: PUSH2 0x049e 000002c0: JUMPI 000002c1: DUP1 000002c2: PUSH4 0xa9059cbb 000002c7: EQ 000002c8: PUSH2 0x0499 000002cb: JUMPI 000002cc: DUP1 000002cd: PUSH4 0xa9133f5e 000002d2: EQ 000002d3: PUSH2 0x0494 000002d6: JUMPI 000002d7: DUP1 000002d8: PUSH4 0xac4ed57a 000002dd: EQ 000002de: PUSH2 0x048f 000002e1: JUMPI 000002e2: DUP1 000002e3: PUSH4 0xad15a208 000002e8: EQ 000002e9: PUSH2 0x048a 000002ec: JUMPI 000002ed: DUP1 000002ee: PUSH4 0xb192a84a 000002f3: EQ 000002f4: PUSH2 0x0485 000002f7: JUMPI 000002f8: DUP1 000002f9: PUSH4 0xb3d7f6b9 000002fe: EQ 000002ff: PUSH2 0x0480 00000302: JUMPI 00000303: DUP1 00000304: PUSH4 0xb460af94 00000309: EQ 0000030a: PUSH2 0x047b 0000030d: JUMPI 0000030e: DUP1 0000030f: PUSH4 0xba087652 00000314: EQ 00000315: PUSH2 0x0476 00000318: JUMPI 00000319: DUP1 0000031a: PUSH4 0xc63d75b6 0000031f: EQ 00000320: PUSH2 0x0471 00000323: JUMPI 00000324: DUP1 00000325: PUSH4 0xc6e6f592 0000032a: EQ 0000032b: PUSH2 0x0426 0000032e: JUMPI 0000032f: DUP1 00000330: PUSH4 0xc9649aa9 00000335: EQ 00000336: PUSH2 0x046c 00000339: JUMPI 0000033a: DUP1 0000033b: PUSH4 0xcb3cab67 00000340: EQ 00000341: PUSH2 0x0467 00000344: JUMPI 00000345: DUP1 00000346: PUSH4 0xce96cb77 0000034b: EQ 0000034c: PUSH2 0x0462 0000034f: JUMPI 00000350: DUP1 00000351: PUSH4 0xd209643a 00000356: EQ 00000357: PUSH2 0x045d 0000035a: JUMPI 0000035b: DUP1 0000035c: PUSH4 0xd33219b4 00000361: EQ 00000362: PUSH2 0x0458 00000365: JUMPI 00000366: DUP1 00000367: PUSH4 0xd905777e 0000036c: EQ 0000036d: PUSH2 0x0453 00000370: JUMPI 00000371: DUP1 00000372: PUSH4 0xda3f224a 00000377: EQ 00000378: PUSH2 0x044e 0000037b: JUMPI 0000037c: DUP1 0000037d: PUSH4 0xdd62ed3e 00000382: EQ 00000383: PUSH2 0x0449 00000386: JUMPI 00000387: DUP1 00000388: PUSH4 0xe30c3978 0000038d: EQ 0000038e: PUSH2 0x0444 00000391: JUMPI 00000392: DUP1 00000393: PUSH4 0xe34c721b 00000398: EQ 00000399: PUSH2 0x043f 0000039c: JUMPI 0000039d: DUP1 0000039e: PUSH4 0xe5c6c88d 000003a3: EQ 000003a4: PUSH2 0x043a 000003a7: JUMPI 000003a8: DUP1 000003a9: PUSH4 0xe66f53b7 000003ae: EQ 000003af: PUSH2 0x0435 000003b2: JUMPI 000003b3: DUP1 000003b4: PUSH4 0xe850bff0 000003b9: EQ 000003ba: PUSH2 0x0430 000003bd: JUMPI 000003be: DUP1 000003bf: PUSH4 0xe90956cf 000003c4: EQ 000003c5: PUSH2 0x042b 000003c8: JUMPI 000003c9: DUP1 000003ca: PUSH4 0xef8b30f7 000003cf: EQ 000003d0: PUSH2 0x0426 000003d3: JUMPI 000003d4: DUP1 000003d5: PUSH4 0xf199a00e 000003da: EQ 000003db: PUSH2 0x0421 000003de: JUMPI 000003df: DUP1 000003e0: PUSH4 0xf2fde38b 000003e5: EQ 000003e6: PUSH2 0x041c 000003e9: JUMPI 000003ea: DUP1 000003eb: PUSH4 0xf6b6a7a4 000003f0: EQ 000003f1: PUSH2 0x0417 000003f4: JUMPI 000003f5: DUP1 000003f6: PUSH4 0xf7d18521 000003fb: EQ 000003fc: PUSH2 0x0412 000003ff: JUMPI 00000400: PUSH4 0xfcabcc14 00000405: EQ 00000406: PUSH2 0x040d 00000409: JUMPI 0000040a: PUSH0 0000040b: DUP1 0000040c: REVERT 0000040d: JUMPDEST 0000040e: PUSH2 0x31d8 00000411: JUMP 00000412: JUMPDEST 00000413: PUSH2 0x31b8 00000416: JUMP 00000417: JUMPDEST 00000418: PUSH2 0x3117 0000041b: JUMP 0000041c: JUMPDEST 0000041d: PUSH2 0x308f 00000420: JUMP 00000421: JUMPDEST 00000422: PUSH2 0x2f6d 00000425: JUMP 00000426: JUMPDEST 00000427: PUSH2 0x2b4e 0000042a: JUMP 0000042b: JUMPDEST 0000042c: PUSH2 0x2f2a 0000042f: JUMP 00000430: JUMPDEST 00000431: PUSH2 0x2eb4 00000434: JUMP 00000435: JUMPDEST 00000436: PUSH2 0x2e8c 00000439: JUMP 0000043a: JUMPDEST 0000043b: PUSH2 0x2e66 0000043e: JUMP 0000043f: JUMPDEST 00000440: PUSH2 0x2dcf 00000443: JUMP 00000444: JUMPDEST 00000445: PUSH2 0x2d9b 00000448: JUMP 00000449: JUMPDEST 0000044a: PUSH2 0x2d5b 0000044d: JUMP 0000044e: JUMPDEST 0000044f: PUSH2 0x2d07 00000452: JUMP 00000453: JUMPDEST 00000454: PUSH2 0x166f 00000457: JUMP 00000458: JUMPDEST 00000459: PUSH2 0x2cea 0000045c: JUMP 0000045d: JUMPDEST 0000045e: PUSH2 0x2c83 00000461: JUMP 00000462: JUMPDEST 00000463: PUSH2 0x2c5c 00000466: JUMP 00000467: JUMPDEST 00000468: PUSH2 0x2be0 0000046b: JUMP 0000046c: JUMPDEST 0000046d: PUSH2 0x2b6c 00000470: JUMP 00000471: JUMPDEST 00000472: PUSH2 0x2b28 00000475: JUMP 00000476: JUMPDEST 00000477: PUSH2 0x29be 0000047a: JUMP 0000047b: JUMPDEST 0000047c: PUSH2 0x2816 0000047f: JUMP 00000480: JUMPDEST 00000481: PUSH2 0x27cf 00000484: JUMP 00000485: JUMPDEST 00000486: PUSH2 0x2743 00000489: JUMP 0000048a: JUMPDEST 0000048b: PUSH2 0x2607 0000048e: JUMP 0000048f: JUMPDEST 00000490: PUSH2 0x2593 00000493: JUMP 00000494: JUMPDEST 00000495: PUSH2 0x252c 00000498: JUMP 00000499: JUMPDEST 0000049a: PUSH2 0x2502 0000049d: JUMP 0000049e: JUMPDEST 0000049f: PUSH2 0x24c4 000004a2: JUMP 000004a3: JUMPDEST 000004a4: PUSH2 0x24a5 000004a7: JUMP 000004a8: JUMPDEST 000004a9: PUSH2 0x2385 000004ac: JUMP 000004ad: JUMPDEST 000004ae: PUSH2 0x22ac 000004b1: JUMP 000004b2: JUMPDEST 000004b3: PUSH2 0x225b 000004b6: JUMP 000004b7: JUMPDEST 000004b8: PUSH2 0x219e 000004bb: JUMP 000004bc: JUMPDEST 000004bd: PUSH2 0x2038 000004c0: JUMP 000004c1: JUMPDEST 000004c2: PUSH2 0x1f67 000004c5: JUMP 000004c6: JUMPDEST 000004c7: PUSH2 0x1f08 000004ca: JUMP 000004cb: JUMPDEST 000004cc: PUSH2 0x1ed4 000004cf: JUMP 000004d0: JUMPDEST 000004d1: PUSH2 0x1e9f 000004d4: JUMP 000004d5: JUMPDEST 000004d6: PUSH2 0x1d97 000004d9: JUMP 000004da: JUMPDEST 000004db: PUSH2 0x1d6a 000004de: JUMP 000004df: JUMPDEST 000004e0: PUSH2 0x1cf6 000004e3: JUMP 000004e4: JUMPDEST 000004e5: PUSH2 0x1c85 000004e8: JUMP 000004e9: JUMPDEST 000004ea: PUSH2 0x1c11 000004ed: JUMP 000004ee: JUMPDEST 000004ef: PUSH2 0x1baa 000004f2: JUMP 000004f3: JUMPDEST 000004f4: PUSH2 0x1b5e 000004f7: JUMP 000004f8: JUMPDEST 000004f9: PUSH2 0x1a7a 000004fc: JUMP 000004fd: JUMPDEST 000004fe: PUSH2 0x1998 00000501: JUMP 00000502: JUMPDEST 00000503: PUSH2 0x18c6 00000506: JUMP 00000507: JUMPDEST 00000508: PUSH2 0x1713 0000050b: JUMP 0000050c: JUMPDEST 0000050d: PUSH2 0x1696 00000510: JUMP 00000511: JUMPDEST 00000512: PUSH2 0x1474 00000515: JUMP 00000516: JUMPDEST 00000517: PUSH2 0x144e 0000051a: JUMP 0000051b: JUMPDEST 0000051c: PUSH2 0x142e 0000051f: JUMP 00000520: JUMPDEST 00000521: PUSH2 0x13f3 00000524: JUMP 00000525: JUMPDEST 00000526: PUSH2 0x1302 00000529: JUMP 0000052a: JUMPDEST 0000052b: PUSH2 0x116c 0000052e: JUMP 0000052f: JUMPDEST 00000530: PUSH2 0x05c5 00000533: JUMP 00000534: JUMPDEST 00000535: PUSH2 0x114d 00000538: JUMP 00000539: JUMPDEST 0000053a: PUSH2 0x110d 0000053d: JUMP 0000053e: JUMPDEST 0000053f: PUSH2 0x0711 00000542: JUMP 00000543: JUMPDEST 00000544: PUSH2 0x10ed 00000547: JUMP 00000548: JUMPDEST 00000549: PUSH2 0x1067 0000054c: JUMP 0000054d: JUMPDEST 0000054e: PUSH2 0x1040 00000551: JUMP 00000552: JUMPDEST 00000553: PUSH2 0x0fca 00000556: JUMP 00000557: JUMPDEST 00000558: PUSH2 0x0e58 0000055b: JUMP 0000055c: JUMPDEST 0000055d: PUSH2 0x0dda 00000560: JUMP 00000561: JUMPDEST 00000562: PUSH2 0x0d73 00000565: JUMP 00000566: JUMPDEST 00000567: PUSH2 0x0d59 0000056a: JUMP 0000056b: JUMPDEST 0000056c: PUSH2 0x0d25 0000056f: JUMP 00000570: JUMPDEST 00000571: PUSH2 0x0cbe 00000574: JUMP 00000575: JUMPDEST 00000576: PUSH2 0x0c9f 00000579: JUMP 0000057a: JUMPDEST 0000057b: PUSH2 0x0c64 0000057e: JUMP 0000057f: JUMPDEST 00000580: PUSH2 0x0c27 00000583: JUMP 00000584: JUMPDEST 00000585: PUSH2 0x0bfe 00000588: JUMP 00000589: JUMPDEST 0000058a: PUSH2 0x0bb3 0000058d: JUMP 0000058e: JUMPDEST 0000058f: PUSH2 0x0b30 00000592: JUMP 00000593: JUMPDEST 00000594: PUSH2 0x0af0 00000597: JUMP 00000598: JUMPDEST 00000599: PUSH2 0x0ac7 0000059c: JUMP 0000059d: JUMPDEST 0000059e: PUSH2 0x0a6e 000005a1: JUMP 000005a2: JUMPDEST 000005a3: PUSH2 0x08fc 000005a6: JUMP 000005a7: JUMPDEST 000005a8: PUSH2 0x08ae 000005ab: JUMP 000005ac: JUMPDEST 000005ad: PUSH2 0x086a 000005b0: JUMP 000005b1: JUMPDEST 000005b2: PUSH2 0x082b 000005b5: JUMP 000005b6: JUMPDEST 000005b7: PUSH2 0x080d 000005ba: JUMP 000005bb: JUMPDEST 000005bc: PUSH2 0x0755 000005bf: JUMP 000005c0: JUMPDEST 000005c1: PUSH2 0x061f 000005c4: JUMP 000005c5: JUMPDEST 000005c6: CALLVALUE 000005c7: PUSH2 0x05f1 000005ca: JUMPI 000005cb: PUSH0 000005cc: CALLDATASIZE 000005cd: PUSH1 0x03 000005cf: NOT 000005d0: ADD 000005d1: SLT 000005d2: PUSH2 0x05f1 000005d5: JUMPI 000005d6: PUSH1 0x20 000005d8: PUSH7 0x2386f26fc10000 000005e0: PUSH2 0x05e7 000005e3: PUSH2 0x3b3a 000005e6: JUMP 000005e7: JUMPDEST 000005e8: POP 000005e9: DIV 000005ea: PUSH1 0x40 000005ec: MLOAD 000005ed: SWAP1 000005ee: DUP2 000005ef: MSTORE 000005f0: RETURN 000005f1: JUMPDEST 000005f2: PUSH0 000005f3: DUP1 000005f4: REVERT 000005f5: JUMPDEST 000005f6: PUSH1 0x20 000005f8: PUSH1 0x40 000005fa: SWAP3 000005fb: DUP2 000005fc: DUP4 000005fd: MSTORE 000005fe: DUP1 000005ff: MLOAD 00000600: SWAP2 00000601: DUP3 00000602: SWAP2 00000603: DUP3 00000604: DUP3 00000605: DUP7 00000606: ADD 00000607: MSTORE 00000608: ADD 00000609: DUP5 0000060a: DUP5 0000060b: ADD 0000060c: MCOPY 0000060d: PUSH0 0000060e: DUP3 0000060f: DUP3 00000610: ADD 00000611: DUP5 00000612: ADD 00000613: MSTORE 00000614: PUSH1 0x1f 00000616: ADD 00000617: PUSH1 0x1f 00000619: NOT 0000061a: AND 0000061b: ADD 0000061c: ADD 0000061d: SWAP1 0000061e: JUMP 0000061f: JUMPDEST 00000620: CALLVALUE 00000621: PUSH2 0x05f1 00000624: JUMPI 00000625: PUSH0 00000626: CALLDATASIZE 00000627: PUSH1 0x03 00000629: NOT 0000062a: ADD 0000062b: SLT 0000062c: PUSH2 0x05f1 0000062f: JUMPI 00000630: PUSH1 0x40 00000632: MLOAD 00000633: PUSH0 00000634: PUSH0 00000635: MLOAD 00000636: PUSH1 0x20 00000638: PUSH2 0x4cc2 0000063b: PUSH0 0000063c: CODECOPY 0000063d: PUSH0 0000063e: MLOAD 0000063f: SWAP1 00000640: PUSH0 00000641: MSTORE 00000642: SLOAD 00000643: PUSH2 0x064b 00000646: DUP2 00000647: PUSH2 0x32e7 0000064a: JUMP 0000064b: JUMPDEST 0000064c: DUP1 0000064d: DUP5 0000064e: MSTORE 0000064f: SWAP1 00000650: PUSH1 0x01 00000652: DUP2 00000653: AND 00000654: SWAP1 00000655: DUP2 00000656: ISZERO 00000657: PUSH2 0x06ed 0000065a: JUMPI 0000065b: POP 0000065c: PUSH1 0x01 0000065e: EQ 0000065f: PUSH2 0x0683 00000662: JUMPI 00000663: JUMPDEST 00000664: PUSH2 0x067f 00000667: DUP4 00000668: PUSH2 0x0673 0000066b: DUP2 0000066c: DUP6 0000066d: SUB 0000066e: DUP3 0000066f: PUSH2 0x0ee8 00000672: JUMP 00000673: JUMPDEST 00000674: PUSH1 0x40 00000676: MLOAD 00000677: SWAP2 00000678: DUP3 00000679: SWAP2 0000067a: DUP3 0000067b: PUSH2 0x05f5 0000067e: JUMP 0000067f: JUMPDEST 00000680: SUB 00000681: SWAP1 00000682: RETURN 00000683: JUMPDEST 00000684: PUSH0 00000685: MLOAD 00000686: PUSH1 0x20 00000688: PUSH2 0x4cc2 0000068b: PUSH0 0000068c: CODECOPY 0000068d: PUSH0 0000068e: MLOAD 0000068f: SWAP1 00000690: PUSH0 00000691: MSTORE 00000692: PUSH0 00000693: SWAP1 00000694: DUP2 00000695: MSTORE 00000696: PUSH32 0x2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0 000006b7: SWAP4 000006b8: SWAP3 000006b9: POP 000006ba: SWAP1 000006bb: JUMPDEST 000006bc: DUP1 000006bd: DUP3 000006be: LT 000006bf: PUSH2 0x06d3 000006c2: JUMPI 000006c3: POP 000006c4: SWAP1 000006c5: SWAP2 000006c6: POP 000006c7: DUP2 000006c8: ADD 000006c9: PUSH1 0x20 000006cb: ADD 000006cc: PUSH2 0x0673 000006cf: PUSH2 0x0663 000006d2: JUMP 000006d3: JUMPDEST 000006d4: SWAP2 000006d5: SWAP3 000006d6: PUSH1 0x01 000006d8: DUP2 000006d9: PUSH1 0x20 000006db: SWAP3 000006dc: SLOAD 000006dd: DUP4 000006de: DUP6 000006df: DUP9 000006e0: ADD 000006e1: ADD 000006e2: MSTORE 000006e3: ADD 000006e4: SWAP2 000006e5: ADD 000006e6: SWAP1 000006e7: SWAP3 000006e8: SWAP2 000006e9: PUSH2 0x06bb 000006ec: JUMP 000006ed: JUMPDEST 000006ee: PUSH1 0xff 000006f0: NOT 000006f1: AND 000006f2: PUSH1 0x20 000006f4: DUP1 000006f5: DUP7 000006f6: ADD 000006f7: SWAP2 000006f8: SWAP1 000006f9: SWAP2 000006fa: MSTORE 000006fb: SWAP2 000006fc: ISZERO 000006fd: ISZERO 000006fe: PUSH1 0x05 00000700: SHL 00000701: DUP5 00000702: ADD 00000703: SWAP1 00000704: SWAP2 00000705: ADD 00000706: SWAP2 00000707: POP 00000708: PUSH2 0x0673 0000070b: SWAP1 0000070c: POP 0000070d: PUSH2 0x0663 00000710: JUMP 00000711: JUMPDEST 00000712: CALLVALUE 00000713: PUSH2 0x05f1 00000716: JUMPI 00000717: PUSH1 0x20 00000719: CALLDATASIZE 0000071a: PUSH1 0x03 0000071c: NOT 0000071d: ADD 0000071e: SLT 0000071f: PUSH2 0x05f1 00000722: JUMPI 00000723: PUSH1 0x20 00000725: PUSH2 0x072f 00000728: PUSH1 0x04 0000072a: CALLDATALOAD 0000072b: PUSH2 0x3c91 0000072e: JUMP 0000072f: JUMPDEST 00000730: PUSH1 0x40 00000732: MLOAD 00000733: SWAP1 00000734: DUP2 00000735: MSTORE 00000736: RETURN 00000737: JUMPDEST 00000738: PUSH1 0x01 0000073a: PUSH1 0x01 0000073c: PUSH1 0xa0 0000073e: SHL 0000073f: SUB 00000740: DUP2 00000741: AND 00000742: SUB 00000743: PUSH2 0x05f1 00000746: JUMPI 00000747: JUMP 00000748: JUMPDEST 00000749: CALLDATALOAD 0000074a: SWAP1 0000074b: PUSH2 0x0753 0000074e: DUP3 0000074f: PUSH2 0x0737 00000752: JUMP 00000753: JUMPDEST 00000754: JUMP 00000755: JUMPDEST 00000756: CALLVALUE 00000757: PUSH2 0x05f1 0000075a: JUMPI 0000075b: PUSH1 0x40 0000075d: CALLDATASIZE 0000075e: PUSH1 0x03 00000760: NOT 00000761: ADD 00000762: SLT 00000763: PUSH2 0x05f1 00000766: JUMPI 00000767: PUSH1 0x04 00000769: CALLDATALOAD 0000076a: PUSH2 0x0772 0000076d: DUP2 0000076e: PUSH2 0x0737 00000771: JUMP 00000772: JUMPDEST 00000773: PUSH1 0x24 00000775: CALLDATALOAD 00000776: CALLER 00000777: ISZERO 00000778: PUSH2 0x07fa 0000077b: JUMPI 0000077c: PUSH1 0x01 0000077e: PUSH1 0x01 00000780: PUSH1 0xa0 00000782: SHL 00000783: SUB 00000784: DUP3 00000785: AND 00000786: SWAP2 00000787: DUP3 00000788: ISZERO 00000789: PUSH2 0x07e7 0000078c: JUMPI 0000078d: PUSH2 0x07af 00000790: DUP3 00000791: SWAP2 00000792: PUSH2 0x079a 00000795: CALLER 00000796: PUSH2 0x331f 00000799: JUMP 0000079a: JUMPDEST 0000079b: SWAP1 0000079c: PUSH1 0x01 0000079e: DUP1 0000079f: PUSH1 0xa0 000007a1: SHL 000007a2: SUB 000007a3: AND 000007a4: PUSH0 000007a5: MSTORE 000007a6: PUSH1 0x20 000007a8: MSTORE 000007a9: PUSH1 0x40 000007ab: PUSH0 000007ac: KECCAK256 000007ad: SWAP1 000007ae: JUMP 000007af: JUMPDEST 000007b0: SSTORE 000007b1: PUSH1 0x40 000007b3: MLOAD 000007b4: SWAP1 000007b5: DUP2 000007b6: MSTORE 000007b7: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000007d8: PUSH1 0x20 000007da: CALLER 000007db: SWAP3 000007dc: LOG3 000007dd: PUSH1 0x20 000007df: PUSH1 0x40 000007e1: MLOAD 000007e2: PUSH1 0x01 000007e4: DUP2 000007e5: MSTORE 000007e6: RETURN 000007e7: JUMPDEST 000007e8: PUSH4 0x4a1406b1 000007ed: PUSH1 0xe1 000007ef: SHL 000007f0: PUSH0 000007f1: MSTORE 000007f2: PUSH0 000007f3: PUSH1 0x04 000007f5: MSTORE 000007f6: PUSH1 0x24 000007f8: PUSH0 000007f9: REVERT 000007fa: JUMPDEST 000007fb: PUSH4 0xe602df05 00000800: PUSH1 0xe0 00000802: SHL 00000803: PUSH0 00000804: MSTORE 00000805: PUSH0 00000806: PUSH1 0x04 00000808: MSTORE 00000809: PUSH1 0x24 0000080b: PUSH0 0000080c: REVERT 0000080d: JUMPDEST 0000080e: CALLVALUE 0000080f: PUSH2 0x05f1 00000812: JUMPI 00000813: PUSH1 0x20 00000815: CALLDATASIZE 00000816: PUSH1 0x03 00000818: NOT 00000819: ADD 0000081a: SLT 0000081b: PUSH2 0x05f1 0000081e: JUMPI 0000081f: PUSH1 0x20 00000821: PUSH2 0x072f 00000824: PUSH1 0x04 00000826: CALLDATALOAD 00000827: PUSH2 0x3d18 0000082a: JUMP 0000082b: JUMPDEST 0000082c: CALLVALUE 0000082d: PUSH2 0x05f1 00000830: JUMPI 00000831: PUSH0 00000832: CALLDATASIZE 00000833: PUSH1 0x03 00000835: NOT 00000836: ADD 00000837: SLT 00000838: PUSH2 0x05f1 0000083b: JUMPI 0000083c: PUSH2 0x067f 0000083f: PUSH1 0x40 00000841: MLOAD 00000842: PUSH2 0x084c 00000845: PUSH1 0x40 00000847: DUP3 00000848: PUSH2 0x0ee8 0000084b: JUMP 0000084c: JUMPDEST 0000084d: PUSH1 0x05 0000084f: DUP2 00000850: MSTORE 00000851: PUSH5 0x0312e312e3 00000857: PUSH1 0xdc 00000859: SHL 0000085a: PUSH1 0x20 0000085c: DUP3 0000085d: ADD 0000085e: MSTORE 0000085f: PUSH1 0x40 00000861: MLOAD 00000862: SWAP2 00000863: DUP3 00000864: SWAP2 00000865: DUP3 00000866: PUSH2 0x05f5 00000869: JUMP 0000086a: JUMPDEST 0000086b: CALLVALUE 0000086c: PUSH2 0x05f1 0000086f: JUMPI 00000870: PUSH0 00000871: CALLDATASIZE 00000872: PUSH1 0x03 00000874: NOT 00000875: ADD 00000876: SLT 00000877: PUSH2 0x05f1 0000087a: JUMPI 0000087b: PUSH1 0x40 0000087d: MLOAD 0000087e: PUSH32 0x0000000000000000000000006cd5b7952245ad44e436644ff928bfab322f29fc 0000089f: PUSH1 0x01 000008a1: PUSH1 0x01 000008a3: PUSH1 0xa0 000008a5: SHL 000008a6: SUB 000008a7: AND 000008a8: DUP2 000008a9: MSTORE 000008aa: PUSH1 0x20 000008ac: SWAP1 000008ad: RETURN 000008ae: JUMPDEST 000008af: CALLVALUE 000008b0: PUSH2 0x05f1 000008b3: JUMPI 000008b4: PUSH0 000008b5: CALLDATASIZE 000008b6: PUSH1 0x03 000008b8: NOT 000008b9: ADD 000008ba: SLT 000008bb: PUSH2 0x05f1 000008be: JUMPI 000008bf: PUSH1 0x20 000008c1: PUSH1 0x01 000008c3: PUSH1 0x01 000008c5: PUSH1 0x40 000008c7: SHL 000008c8: SUB 000008c9: PUSH1 0x14 000008cb: SLOAD 000008cc: AND 000008cd: PUSH1 0x40 000008cf: MLOAD 000008d0: SWAP1 000008d1: DUP2 000008d2: MSTORE 000008d3: RETURN 000008d4: JUMPDEST 000008d5: PUSH1 0x40 000008d7: SWAP1 000008d8: PUSH1 0x03 000008da: NOT 000008db: ADD 000008dc: SLT 000008dd: PUSH2 0x05f1 000008e0: JUMPI 000008e1: PUSH1 0x04 000008e3: CALLDATALOAD 000008e4: PUSH2 0x08ec 000008e7: DUP2 000008e8: PUSH2 0x0737 000008eb: JUMP 000008ec: JUMPDEST 000008ed: SWAP1 000008ee: PUSH1 0x24 000008f0: CALLDATALOAD 000008f1: DUP1 000008f2: ISZERO 000008f3: ISZERO 000008f4: DUP2 000008f5: SUB 000008f6: PUSH2 0x05f1 000008f9: JUMPI 000008fa: SWAP1 000008fb: JUMP 000008fc: JUMPDEST 000008fd: CALLVALUE 000008fe: PUSH2 0x05f1 00000901: JUMPI 00000902: PUSH2 0x090a 00000905: CALLDATASIZE 00000906: PUSH2 0x08d4 00000909: JUMP 0000090a: JUMPDEST 0000090b: PUSH1 0x01 0000090d: SLOAD 0000090e: PUSH1 0x01 00000910: PUSH1 0x01 00000912: PUSH1 0xa0 00000914: SHL 00000915: SUB 00000916: AND 00000917: CALLER 00000918: EQ 00000919: ISZERO 0000091a: DUP1 0000091b: PUSH2 0x0a4d 0000091e: JUMPI 0000091f: JUMPDEST 00000920: PUSH2 0x0a3e 00000923: JUMPI 00000924: PUSH1 0x01 00000926: PUSH1 0x01 00000928: PUSH1 0xa0 0000092a: SHL 0000092b: SUB 0000092c: DUP3 0000092d: AND 0000092e: PUSH0 0000092f: SWAP1 00000930: DUP2 00000931: MSTORE 00000932: PUSH1 0x03 00000934: PUSH1 0x20 00000936: MSTORE 00000937: PUSH1 0x40 00000939: SWAP1 0000093a: KECCAK256 0000093b: SLOAD 0000093c: PUSH1 0xff 0000093e: AND 0000093f: DUP1 00000940: PUSH2 0x0a37 00000943: JUMPI 00000944: JUMPDEST 00000945: PUSH2 0x0a28 00000948: JUMPI 00000949: PUSH1 0x01 0000094b: PUSH1 0x01 0000094d: PUSH1 0xa0 0000094f: SHL 00000950: SUB 00000951: DUP3 00000952: AND 00000953: PUSH0 00000954: SWAP1 00000955: DUP2 00000956: MSTORE 00000957: PUSH1 0x04 00000959: PUSH1 0x20 0000095b: MSTORE 0000095c: PUSH1 0x40 0000095e: SWAP1 0000095f: KECCAK256 00000960: PUSH1 0x01 00000962: PUSH1 0x01 00000964: PUSH1 0x40 00000966: SHL 00000967: SUB 00000968: SWAP1 00000969: PUSH2 0x0974 0000096c: SWAP1 0000096d: JUMPDEST 0000096e: SLOAD 0000096f: PUSH1 0xc0 00000971: SHR 00000972: SWAP1 00000973: JUMP 00000974: JUMPDEST 00000975: AND 00000976: PUSH2 0x0a19 00000979: JUMPI 0000097a: DUP1 0000097b: PUSH2 0x0989 0000097e: JUMPI 0000097f: PUSH2 0x0987 00000982: SWAP2 00000983: PUSH2 0x3eff 00000986: JUMP 00000987: JUMPDEST 00000988: STOP 00000989: JUMPDEST 0000098a: POP 0000098b: PUSH1 0x01 0000098d: PUSH1 0x01 0000098f: PUSH1 0xa0 00000991: SHL 00000992: SUB 00000993: DUP2 00000994: AND 00000995: PUSH0 00000996: SWAP1 00000997: DUP2 00000998: MSTORE 00000999: PUSH1 0x04 0000099b: PUSH1 0x20 0000099d: MSTORE 0000099e: PUSH1 0x40 000009a0: SWAP1 000009a1: KECCAK256 000009a2: PUSH1 0x08 000009a4: SLOAD 000009a5: PUSH2 0x09ad 000009a8: SWAP2 000009a9: PUSH2 0x3d9f 000009ac: JUMP 000009ad: JUMPDEST 000009ae: PUSH32 0x24c5ea3dd9a5ba11b8a603674e63d62accaa480c1b05d18de5861f3894868d79 000009cf: PUSH2 0x0a14 000009d2: PUSH2 0x09ee 000009d5: PUSH2 0x096d 000009d8: DUP5 000009d9: PUSH1 0x01 000009db: DUP1 000009dc: PUSH1 0xa0 000009de: SHL 000009df: SUB 000009e0: AND 000009e1: PUSH0 000009e2: MSTORE 000009e3: PUSH1 0x04 000009e5: PUSH1 0x20 000009e7: MSTORE 000009e8: PUSH1 0x40 000009ea: PUSH0 000009eb: KECCAK256 000009ec: SWAP1 000009ed: JUMP 000009ee: JUMPDEST 000009ef: PUSH1 0x40 000009f1: MLOAD 000009f2: PUSH1 0x01 000009f4: PUSH1 0x01 000009f6: PUSH1 0x40 000009f8: SHL 000009f9: SUB 000009fa: SWAP1 000009fb: SWAP2 000009fc: AND 000009fd: DUP2 000009fe: MSTORE 000009ff: PUSH1 0x01 00000a01: PUSH1 0x01 00000a03: PUSH1 0xa0 00000a05: SHL 00000a06: SUB 00000a07: SWAP1 00000a08: SWAP4 00000a09: AND 00000a0a: SWAP3 00000a0b: SWAP1 00000a0c: DUP2 00000a0d: SWAP1 00000a0e: PUSH1 0x20 00000a10: DUP3 00000a11: ADD 00000a12: SWAP1 00000a13: JUMP 00000a14: JUMPDEST 00000a15: SUB 00000a16: SWAP1 00000a17: LOG2 00000a18: STOP 00000a19: JUMPDEST 00000a1a: PUSH4 0x24d90267 00000a1f: PUSH1 0xe1 00000a21: SHL 00000a22: PUSH0 00000a23: MSTORE 00000a24: PUSH1 0x04 00000a26: PUSH0 00000a27: REVERT 00000a28: JUMPDEST 00000a29: PUSH4 0xa741a045 00000a2e: PUSH1 0xe0 00000a30: SHL 00000a31: PUSH0 00000a32: MSTORE 00000a33: PUSH1 0x04 00000a35: PUSH0 00000a36: REVERT 00000a37: JUMPDEST 00000a38: POP 00000a39: DUP1 00000a3a: PUSH2 0x0944 00000a3d: JUMP 00000a3e: JUMPDEST 00000a3f: PUSH4 0x32a2673b 00000a44: PUSH1 0xe2 00000a46: SHL 00000a47: PUSH0 00000a48: MSTORE 00000a49: PUSH1 0x04 00000a4b: PUSH0 00000a4c: REVERT 00000a4d: JUMPDEST 00000a4e: POP 00000a4f: PUSH0 00000a50: MLOAD 00000a51: PUSH1 0x20 00000a53: PUSH2 0x4d02 00000a56: PUSH0 00000a57: CODECOPY 00000a58: PUSH0 00000a59: MLOAD 00000a5a: SWAP1 00000a5b: PUSH0 00000a5c: MSTORE 00000a5d: SLOAD 00000a5e: PUSH1 0x01 00000a60: PUSH1 0x01 00000a62: PUSH1 0xa0 00000a64: SHL 00000a65: SUB 00000a66: AND 00000a67: CALLER 00000a68: EQ 00000a69: ISZERO 00000a6a: PUSH2 0x091f 00000a6d: JUMP 00000a6e: JUMPDEST 00000a6f: CALLVALUE 00000a70: PUSH2 0x05f1 00000a73: JUMPI 00000a74: PUSH0 00000a75: CALLDATASIZE 00000a76: PUSH1 0x03 00000a78: NOT 00000a79: ADD 00000a7a: SLT 00000a7b: PUSH2 0x05f1 00000a7e: JUMPI 00000a7f: PUSH1 0x12 00000a81: SLOAD 00000a82: DUP1 00000a83: PUSH1 0xc0 00000a85: SHR 00000a86: DUP1 00000a87: ISZERO 00000a88: PUSH2 0x0ab8 00000a8b: JUMPI 00000a8c: TIMESTAMP 00000a8d: LT 00000a8e: PUSH2 0x0aa9 00000a91: JUMPI 00000a92: PUSH1 0x01 00000a94: PUSH1 0x01 00000a96: PUSH1 0x40 00000a98: SHL 00000a99: SUB 00000a9a: PUSH2 0x0aa3 00000a9d: SWAP2 00000a9e: AND 00000a9f: PUSH2 0x3f64 00000aa2: JUMP 00000aa3: JUMPDEST 00000aa4: PUSH0 00000aa5: PUSH1 0x12 00000aa7: SSTORE 00000aa8: STOP 00000aa9: JUMPDEST 00000aaa: PUSH4 0x333bd2cb 00000aaf: PUSH1 0xe1 00000ab1: SHL 00000ab2: PUSH0 00000ab3: MSTORE 00000ab4: PUSH1 0x04 00000ab6: PUSH0 00000ab7: REVERT 00000ab8: JUMPDEST 00000ab9: PUSH4 0xe5f408a5 00000abe: PUSH1 0xe0 00000ac0: SHL 00000ac1: PUSH0 00000ac2: MSTORE 00000ac3: PUSH1 0x04 00000ac5: PUSH0 00000ac6: REVERT 00000ac7: JUMPDEST 00000ac8: CALLVALUE 00000ac9: PUSH2 0x05f1 00000acc: JUMPI 00000acd: PUSH0 00000ace: CALLDATASIZE 00000acf: PUSH1 0x03 00000ad1: NOT 00000ad2: ADD 00000ad3: SLT 00000ad4: PUSH2 0x05f1 00000ad7: JUMPI 00000ad8: PUSH1 0x20 00000ada: PUSH0 00000adb: MLOAD 00000adc: PUSH1 0x20 00000ade: PUSH2 0x4d22 00000ae1: PUSH0 00000ae2: CODECOPY 00000ae3: PUSH0 00000ae4: MLOAD 00000ae5: SWAP1 00000ae6: PUSH0 00000ae7: MSTORE 00000ae8: SLOAD 00000ae9: PUSH1 0x40 00000aeb: MLOAD 00000aec: SWAP1 00000aed: DUP2 00000aee: MSTORE 00000aef: RETURN 00000af0: JUMPDEST 00000af1: CALLVALUE 00000af2: PUSH2 0x05f1 00000af5: JUMPI 00000af6: PUSH1 0x20 00000af8: CALLDATASIZE 00000af9: PUSH1 0x03 00000afb: NOT 00000afc: ADD 00000afd: SLT 00000afe: PUSH2 0x05f1 00000b01: JUMPI 00000b02: PUSH1 0x04 00000b04: CALLDATALOAD 00000b05: PUSH2 0x0b0d 00000b08: DUP2 00000b09: PUSH2 0x0737 00000b0c: JUMP 00000b0d: JUMPDEST 00000b0e: PUSH1 0x01 00000b10: DUP1 00000b11: PUSH1 0xa0 00000b13: SHL 00000b14: SUB 00000b15: AND 00000b16: PUSH0 00000b17: MSTORE 00000b18: PUSH1 0x03 00000b1a: PUSH1 0x20 00000b1c: MSTORE 00000b1d: PUSH1 0x20 00000b1f: PUSH1 0xff 00000b21: PUSH1 0x40 00000b23: PUSH0 00000b24: KECCAK256 00000b25: SLOAD 00000b26: AND 00000b27: PUSH1 0x40 00000b29: MLOAD 00000b2a: SWAP1 00000b2b: ISZERO 00000b2c: ISZERO 00000b2d: DUP2 00000b2e: MSTORE 00000b2f: RETURN 00000b30: JUMPDEST 00000b31: CALLVALUE 00000b32: PUSH2 0x05f1 00000b35: JUMPI 00000b36: PUSH0 00000b37: CALLDATASIZE 00000b38: PUSH1 0x03 00000b3a: NOT 00000b3b: ADD 00000b3c: SLT 00000b3d: PUSH2 0x05f1 00000b40: JUMPI 00000b41: PUSH0 00000b42: SLOAD 00000b43: PUSH1 0x01 00000b45: PUSH1 0x01 00000b47: PUSH1 0xa0 00000b49: SHL 00000b4a: SUB 00000b4b: AND 00000b4c: CALLER 00000b4d: EQ 00000b4e: ISZERO 00000b4f: DUP1 00000b50: PUSH2 0x0b92 00000b53: JUMPI 00000b54: JUMPDEST 00000b55: PUSH2 0x0b83 00000b58: JUMPI 00000b59: PUSH0 00000b5a: PUSH1 0x07 00000b5c: SSTORE 00000b5d: CALLER 00000b5e: PUSH32 0xc40a085ccfa20f5fd518ade5c3a77a7ecbdfbb4c75efcdca6146a8e3c841d663 00000b7f: PUSH0 00000b80: DUP1 00000b81: LOG2 00000b82: STOP 00000b83: JUMPDEST 00000b84: PUSH4 0x7cf97e4d 00000b89: PUSH1 0xe1 00000b8b: SHL 00000b8c: PUSH0 00000b8d: MSTORE 00000b8e: PUSH1 0x04 00000b90: PUSH0 00000b91: REVERT 00000b92: JUMPDEST 00000b93: POP 00000b94: PUSH0 00000b95: MLOAD 00000b96: PUSH1 0x20 00000b98: PUSH2 0x4d02 00000b9b: PUSH0 00000b9c: CODECOPY 00000b9d: PUSH0 00000b9e: MLOAD 00000b9f: SWAP1 00000ba0: PUSH0 00000ba1: MSTORE 00000ba2: SLOAD 00000ba3: PUSH1 0x01 00000ba5: PUSH1 0x01 00000ba7: PUSH1 0xa0 00000ba9: SHL 00000baa: SUB 00000bab: AND 00000bac: CALLER 00000bad: EQ 00000bae: ISZERO 00000baf: PUSH2 0x0b54 00000bb2: JUMP 00000bb3: JUMPDEST 00000bb4: CALLVALUE 00000bb5: PUSH2 0x05f1 00000bb8: JUMPI 00000bb9: PUSH1 0x60 00000bbb: CALLDATASIZE 00000bbc: PUSH1 0x03 00000bbe: NOT 00000bbf: ADD 00000bc0: SLT 00000bc1: PUSH2 0x05f1 00000bc4: JUMPI 00000bc5: PUSH2 0x0bf3 00000bc8: PUSH1 0x04 00000bca: CALLDATALOAD 00000bcb: PUSH2 0x0bd3 00000bce: DUP2 00000bcf: PUSH2 0x0737 00000bd2: JUMP 00000bd3: JUMPDEST 00000bd4: PUSH1 0x24 00000bd6: CALLDATALOAD 00000bd7: PUSH2 0x0bdf 00000bda: DUP2 00000bdb: PUSH2 0x0737 00000bde: JUMP 00000bdf: JUMPDEST 00000be0: PUSH1 0x44 00000be2: CALLDATALOAD 00000be3: SWAP2 00000be4: PUSH2 0x0bee 00000be7: DUP4 00000be8: CALLER 00000be9: DUP4 00000bea: PUSH2 0x3fc0 00000bed: JUMP 00000bee: JUMPDEST 00000bef: PUSH2 0x403e 00000bf2: JUMP 00000bf3: JUMPDEST 00000bf4: PUSH1 0x20 00000bf6: PUSH1 0x40 00000bf8: MLOAD 00000bf9: PUSH1 0x01 00000bfb: DUP2 00000bfc: MSTORE 00000bfd: RETURN 00000bfe: JUMPDEST 00000bff: CALLVALUE 00000c00: PUSH2 0x05f1 00000c03: JUMPI 00000c04: PUSH0 00000c05: CALLDATASIZE 00000c06: PUSH1 0x03 00000c08: NOT 00000c09: ADD 00000c0a: SLT 00000c0b: PUSH2 0x05f1 00000c0e: JUMPI 00000c0f: PUSH1 0x20 00000c11: PUSH1 0x01 00000c13: PUSH1 0x01 00000c15: PUSH1 0x40 00000c17: SHL 00000c18: SUB 00000c19: PUSH1 0x14 00000c1b: SLOAD 00000c1c: PUSH1 0x80 00000c1e: SHR 00000c1f: AND 00000c20: PUSH1 0x40 00000c22: MLOAD 00000c23: SWAP1 00000c24: DUP2 00000c25: MSTORE 00000c26: RETURN 00000c27: JUMPDEST 00000c28: CALLVALUE 00000c29: PUSH2 0x05f1 00000c2c: JUMPI 00000c2d: PUSH0 00000c2e: CALLDATASIZE 00000c2f: PUSH1 0x03 00000c31: NOT 00000c32: ADD 00000c33: SLT 00000c34: PUSH2 0x05f1 00000c37: JUMPI 00000c38: PUSH1 0xff 00000c3a: PUSH0 00000c3b: MLOAD 00000c3c: PUSH1 0x20 00000c3e: PUSH2 0x4d82 00000c41: PUSH0 00000c42: CODECOPY 00000c43: PUSH0 00000c44: MLOAD 00000c45: SWAP1 00000c46: PUSH0 00000c47: MSTORE 00000c48: SLOAD 00000c49: PUSH1 0xa0 00000c4b: SHR 00000c4c: AND 00000c4d: PUSH1 0xff 00000c4f: DUP2 00000c50: GT 00000c51: PUSH2 0x0c5f 00000c54: JUMPI 00000c55: PUSH1 0x20 00000c57: SWAP1 00000c58: PUSH1 0x40 00000c5a: MLOAD 00000c5b: SWAP1 00000c5c: DUP2 00000c5d: MSTORE 00000c5e: RETURN 00000c5f: JUMPDEST 00000c60: PUSH2 0x32c4 00000c63: JUMP 00000c64: JUMPDEST 00000c65: CALLVALUE 00000c66: PUSH2 0x05f1 00000c69: JUMPI 00000c6a: PUSH0 00000c6b: CALLDATASIZE 00000c6c: PUSH1 0x03 00000c6e: NOT 00000c6f: ADD 00000c70: SLT 00000c71: PUSH2 0x05f1 00000c74: JUMPI 00000c75: PUSH1 0x13 00000c77: SLOAD 00000c78: DUP1 00000c79: PUSH1 0xc0 00000c7b: SHR 00000c7c: DUP1 00000c7d: ISZERO 00000c7e: PUSH2 0x0ab8 00000c81: JUMPI 00000c82: TIMESTAMP 00000c83: LT 00000c84: PUSH2 0x0aa9 00000c87: JUMPI 00000c88: PUSH1 0x01 00000c8a: PUSH1 0x01 00000c8c: PUSH1 0x40 00000c8e: SHL 00000c8f: SUB 00000c90: PUSH2 0x0c99 00000c93: SWAP2 00000c94: AND 00000c95: PUSH2 0x4108 00000c98: JUMP 00000c99: JUMPDEST 00000c9a: PUSH0 00000c9b: PUSH1 0x13 00000c9d: SSTORE 00000c9e: STOP 00000c9f: JUMPDEST 00000ca0: CALLVALUE 00000ca1: PUSH2 0x05f1 00000ca4: JUMPI 00000ca5: PUSH0 00000ca6: CALLDATASIZE 00000ca7: PUSH1 0x03 00000ca9: NOT 00000caa: ADD 00000cab: SLT 00000cac: PUSH2 0x05f1 00000caf: JUMPI 00000cb0: PUSH4 0x207972c9 00000cb5: PUSH1 0xe0 00000cb7: SHL 00000cb8: PUSH0 00000cb9: MSTORE 00000cba: PUSH1 0x04 00000cbc: PUSH0 00000cbd: REVERT 00000cbe: JUMPDEST 00000cbf: CALLVALUE 00000cc0: PUSH2 0x05f1 00000cc3: JUMPI 00000cc4: PUSH0 00000cc5: CALLDATASIZE 00000cc6: PUSH1 0x03 00000cc8: NOT 00000cc9: ADD 00000cca: SLT 00000ccb: PUSH2 0x05f1 00000cce: JUMPI 00000ccf: PUSH2 0x0cd6 00000cd2: PUSH2 0x339e 00000cd5: JUMP 00000cd6: JUMPDEST 00000cd7: POP 00000cd8: PUSH2 0x067f 00000cdb: PUSH1 0x40 00000cdd: MLOAD 00000cde: PUSH2 0x0ce6 00000ce1: DUP2 00000ce2: PUSH2 0x0eb2 00000ce5: JUMP 00000ce6: JUMPDEST 00000ce7: PUSH1 0x13 00000ce9: SLOAD 00000cea: PUSH1 0x01 00000cec: PUSH1 0x01 00000cee: PUSH1 0xc0 00000cf0: SHL 00000cf1: SUB 00000cf2: DUP2 00000cf3: AND 00000cf4: DUP1 00000cf5: DUP4 00000cf6: MSTORE 00000cf7: PUSH1 0xc0 00000cf9: SWAP2 00000cfa: SWAP1 00000cfb: SWAP2 00000cfc: SHR 00000cfd: PUSH1 0x20 00000cff: SWAP3 00000d00: DUP4 00000d01: ADD 00000d02: SWAP1 00000d03: DUP2 00000d04: MSTORE 00000d05: PUSH1 0x40 00000d07: DUP1 00000d08: MLOAD 00000d09: SWAP3 00000d0a: DUP4 00000d0b: MSTORE 00000d0c: SWAP1 00000d0d: MLOAD 00000d0e: PUSH1 0x01 00000d10: PUSH1 0x01 00000d12: PUSH1 0x40 00000d14: SHL 00000d15: SUB 00000d16: AND 00000d17: SWAP3 00000d18: DUP3 00000d19: ADD 00000d1a: SWAP3 00000d1b: SWAP1 00000d1c: SWAP3 00000d1d: MSTORE 00000d1e: SWAP2 00000d1f: DUP3 00000d20: SWAP2 00000d21: DUP3 00000d22: ADD 00000d23: SWAP1 00000d24: JUMP 00000d25: JUMPDEST 00000d26: CALLVALUE 00000d27: PUSH2 0x05f1 00000d2a: JUMPI 00000d2b: PUSH0 00000d2c: CALLDATASIZE 00000d2d: PUSH1 0x03 00000d2f: NOT 00000d30: ADD 00000d31: SLT 00000d32: PUSH2 0x05f1 00000d35: JUMPI 00000d36: PUSH0 00000d37: MLOAD 00000d38: PUSH1 0x20 00000d3a: PUSH2 0x4d82 00000d3d: PUSH0 00000d3e: CODECOPY 00000d3f: PUSH0 00000d40: MLOAD 00000d41: SWAP1 00000d42: PUSH0 00000d43: MSTORE 00000d44: SLOAD 00000d45: PUSH1 0x40 00000d47: MLOAD 00000d48: PUSH1 0x01 00000d4a: PUSH1 0x01 00000d4c: PUSH1 0xa0 00000d4e: SHL 00000d4f: SUB 00000d50: SWAP1 00000d51: SWAP2 00000d52: AND 00000d53: DUP2 00000d54: MSTORE 00000d55: PUSH1 0x20 00000d57: SWAP1 00000d58: RETURN 00000d59: JUMPDEST 00000d5a: CALLVALUE 00000d5b: PUSH2 0x05f1 00000d5e: JUMPI 00000d5f: PUSH0 00000d60: CALLDATASIZE 00000d61: PUSH1 0x03 00000d63: NOT 00000d64: ADD 00000d65: SLT 00000d66: PUSH2 0x05f1 00000d69: JUMPI 00000d6a: PUSH1 0x20 00000d6c: PUSH2 0x072f 00000d6f: PUSH2 0x33d6 00000d72: JUMP 00000d73: JUMPDEST 00000d74: CALLVALUE 00000d75: PUSH2 0x05f1 00000d78: JUMPI 00000d79: PUSH0 00000d7a: CALLDATASIZE 00000d7b: PUSH1 0x03 00000d7d: NOT 00000d7e: ADD 00000d7f: SLT 00000d80: PUSH2 0x05f1 00000d83: JUMPI 00000d84: PUSH2 0x0d8b 00000d87: PUSH2 0x339e 00000d8a: JUMP 00000d8b: JUMPDEST 00000d8c: POP 00000d8d: PUSH2 0x067f 00000d90: PUSH1 0x40 00000d92: MLOAD 00000d93: PUSH2 0x0d9b 00000d96: DUP2 00000d97: PUSH2 0x0eb2 00000d9a: JUMP 00000d9b: JUMPDEST 00000d9c: PUSH1 0x06 00000d9e: SLOAD 00000d9f: PUSH1 0x01 00000da1: PUSH1 0x01 00000da3: PUSH1 0xc0 00000da5: SHL 00000da6: SUB 00000da7: DUP2 00000da8: AND 00000da9: DUP1 00000daa: DUP4 00000dab: MSTORE 00000dac: PUSH1 0xc0 00000dae: SWAP2 00000daf: SWAP1 00000db0: SWAP2 00000db1: SHR 00000db2: PUSH1 0x20 00000db4: SWAP3 00000db5: DUP4 00000db6: ADD 00000db7: SWAP1 00000db8: DUP2 00000db9: MSTORE 00000dba: PUSH1 0x40 00000dbc: DUP1 00000dbd: MLOAD 00000dbe: SWAP3 00000dbf: DUP4 00000dc0: MSTORE 00000dc1: SWAP1 00000dc2: MLOAD 00000dc3: PUSH1 0x01 00000dc5: PUSH1 0x01 00000dc7: PUSH1 0x40 00000dc9: SHL 00000dca: SUB 00000dcb: AND 00000dcc: SWAP3 00000dcd: DUP3 00000dce: ADD 00000dcf: SWAP3 00000dd0: SWAP1 00000dd1: SWAP3 00000dd2: MSTORE 00000dd3: SWAP2 00000dd4: DUP3 00000dd5: SWAP2 00000dd6: DUP3 00000dd7: ADD 00000dd8: SWAP1 00000dd9: JUMP 00000dda: JUMPDEST 00000ddb: CALLVALUE 00000ddc: PUSH2 0x05f1 00000ddf: JUMPI 00000de0: PUSH0 00000de1: CALLDATASIZE 00000de2: PUSH1 0x03 00000de4: NOT 00000de5: ADD 00000de6: SLT 00000de7: PUSH2 0x05f1 00000dea: JUMPI 00000deb: PUSH2 0x0df2 00000dee: PUSH2 0x4162 00000df1: JUMP 00000df2: JUMPDEST 00000df3: PUSH0 00000df4: MLOAD 00000df5: PUSH1 0x20 00000df7: PUSH2 0x4da2 00000dfa: PUSH0 00000dfb: CODECOPY 00000dfc: PUSH0 00000dfd: MLOAD 00000dfe: SWAP1 00000dff: PUSH0 00000e00: MSTORE 00000e01: SLOAD 00000e02: PUSH1 0xff 00000e04: DUP2 00000e05: AND 00000e06: ISZERO 00000e07: PUSH2 0x0e49 00000e0a: JUMPI 00000e0b: PUSH1 0xff 00000e0d: NOT 00000e0e: AND 00000e0f: PUSH0 00000e10: MLOAD 00000e11: PUSH1 0x20 00000e13: PUSH2 0x4da2 00000e16: PUSH0 00000e17: CODECOPY 00000e18: PUSH0 00000e19: MLOAD 00000e1a: SWAP1 00000e1b: PUSH0 00000e1c: MSTORE 00000e1d: SSTORE 00000e1e: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 00000e3f: PUSH1 0x20 00000e41: PUSH1 0x40 00000e43: MLOAD 00000e44: CALLER 00000e45: DUP2 00000e46: MSTORE 00000e47: LOG1 00000e48: STOP 00000e49: JUMPDEST 00000e4a: PUSH4 0x8dfc202b 00000e4f: PUSH1 0xe0 00000e51: SHL 00000e52: PUSH0 00000e53: MSTORE 00000e54: PUSH1 0x04 00000e56: PUSH0 00000e57: REVERT 00000e58: JUMPDEST 00000e59: CALLVALUE 00000e5a: PUSH2 0x05f1 00000e5d: JUMPI 00000e5e: PUSH1 0x20 00000e60: CALLDATASIZE 00000e61: PUSH1 0x03 00000e63: NOT 00000e64: ADD 00000e65: SLT 00000e66: PUSH2 0x05f1 00000e69: JUMPI 00000e6a: PUSH2 0x0e74 00000e6d: PUSH1 0x04 00000e6f: CALLDATALOAD 00000e70: PUSH2 0x0737 00000e73: JUMP 00000e74: JUMPDEST 00000e75: PUSH1 0x20 00000e77: PUSH2 0x072f 00000e7a: PUSH2 0x3411 00000e7d: JUMP 00000e7e: JUMPDEST 00000e7f: PUSH4 0x4e487b71 00000e84: PUSH1 0xe0 00000e86: SHL 00000e87: PUSH0 00000e88: MSTORE 00000e89: PUSH1 0x41 00000e8b: PUSH1 0x04 00000e8d: MSTORE 00000e8e: PUSH1 0x24 00000e90: PUSH0 00000e91: REVERT 00000e92: JUMPDEST 00000e93: PUSH1 0x60 00000e95: DUP2 00000e96: ADD 00000e97: SWAP1 00000e98: DUP2 00000e99: LT 00000e9a: PUSH1 0x01 00000e9c: PUSH1 0x01 00000e9e: PUSH1 0x40 00000ea0: SHL 00000ea1: SUB 00000ea2: DUP3 00000ea3: GT 00000ea4: OR 00000ea5: PUSH2 0x0ead 00000ea8: JUMPI 00000ea9: PUSH1 0x40 00000eab: MSTORE 00000eac: JUMP 00000ead: JUMPDEST 00000eae: PUSH2 0x0e7e 00000eb1: JUMP 00000eb2: JUMPDEST 00000eb3: PUSH1 0x40 00000eb5: DUP2 00000eb6: ADD 00000eb7: SWAP1 00000eb8: DUP2 00000eb9: LT 00000eba: PUSH1 0x01 00000ebc: PUSH1 0x01 00000ebe: PUSH1 0x40 00000ec0: SHL 00000ec1: SUB 00000ec2: DUP3 00000ec3: GT 00000ec4: OR 00000ec5: PUSH2 0x0ead 00000ec8: JUMPI 00000ec9: PUSH1 0x40 00000ecb: MSTORE 00000ecc: JUMP 00000ecd: JUMPDEST 00000ece: PUSH1 0xa0 00000ed0: DUP2 00000ed1: ADD 00000ed2: SWAP1 00000ed3: DUP2 00000ed4: LT 00000ed5: PUSH1 0x01 00000ed7: PUSH1 0x01 00000ed9: PUSH1 0x40 00000edb: SHL 00000edc: SUB 00000edd: DUP3 00000ede: GT 00000edf: OR 00000ee0: PUSH2 0x0ead 00000ee3: JUMPI 00000ee4: PUSH1 0x40 00000ee6: MSTORE 00000ee7: JUMP 00000ee8: JUMPDEST 00000ee9: SWAP1 00000eea: PUSH1 0x1f 00000eec: DUP1 00000eed: NOT 00000eee: SWAP2 00000eef: ADD 00000ef0: AND 00000ef1: DUP2 00000ef2: ADD 00000ef3: SWAP1 00000ef4: DUP2 00000ef5: LT 00000ef6: PUSH1 0x01 00000ef8: PUSH1 0x01 00000efa: PUSH1 0x40 00000efc: SHL 00000efd: SUB 00000efe: DUP3 00000eff: GT 00000f00: OR 00000f01: PUSH2 0x0ead 00000f04: JUMPI 00000f05: PUSH1 0x40 00000f07: MSTORE 00000f08: JUMP 00000f09: JUMPDEST 00000f0a: PUSH1 0x40 00000f0c: MLOAD 00000f0d: SWAP1 00000f0e: PUSH2 0x0753 00000f11: PUSH2 0x0100 00000f14: DUP4 00000f15: PUSH2 0x0ee8 00000f18: JUMP 00000f19: JUMPDEST 00000f1a: PUSH1 0x40 00000f1c: MLOAD 00000f1d: SWAP1 00000f1e: PUSH2 0x0753 00000f21: PUSH2 0x0160 00000f24: DUP4 00000f25: PUSH2 0x0ee8 00000f28: JUMP 00000f29: JUMPDEST 00000f2a: PUSH1 0x01 00000f2c: PUSH1 0x01 00000f2e: PUSH1 0x40 00000f30: SHL 00000f31: SUB 00000f32: DUP2 00000f33: GT 00000f34: PUSH2 0x0ead 00000f37: JUMPI 00000f38: PUSH1 0x05 00000f3a: SHL 00000f3b: PUSH1 0x20 00000f3d: ADD 00000f3e: SWAP1 00000f3f: JUMP 00000f40: JUMPDEST 00000f41: SWAP1 00000f42: DUP1 00000f43: PUSH1 0x1f 00000f45: DUP4 00000f46: ADD 00000f47: SLT 00000f48: ISZERO 00000f49: PUSH2 0x05f1 00000f4c: JUMPI 00000f4d: DUP2 00000f4e: CALLDATALOAD 00000f4f: PUSH2 0x0f57 00000f52: DUP2 00000f53: PUSH2 0x0f29 00000f56: JUMP 00000f57: JUMPDEST 00000f58: SWAP3 00000f59: PUSH2 0x0f65 00000f5c: PUSH1 0x40 00000f5e: MLOAD 00000f5f: SWAP5 00000f60: DUP6 00000f61: PUSH2 0x0ee8 00000f64: JUMP 00000f65: JUMPDEST 00000f66: DUP2 00000f67: DUP5 00000f68: MSTORE 00000f69: PUSH1 0x20 00000f6b: DUP1 00000f6c: DUP6 00000f6d: ADD 00000f6e: SWAP3 00000f6f: PUSH1 0x05 00000f71: SHL 00000f72: DUP3 00000f73: ADD 00000f74: ADD 00000f75: SWAP3 00000f76: DUP4 00000f77: GT 00000f78: PUSH2 0x05f1 00000f7b: JUMPI 00000f7c: PUSH1 0x20 00000f7e: ADD 00000f7f: SWAP1 00000f80: JUMPDEST 00000f81: DUP3 00000f82: DUP3 00000f83: LT 00000f84: PUSH2 0x0f8d 00000f87: JUMPI 00000f88: POP 00000f89: POP 00000f8a: POP 00000f8b: SWAP1 00000f8c: JUMP 00000f8d: JUMPDEST 00000f8e: DUP2 00000f8f: CALLDATALOAD 00000f90: DUP2 00000f91: MSTORE 00000f92: PUSH1 0x20 00000f94: SWAP2 00000f95: DUP3 00000f96: ADD 00000f97: SWAP2 00000f98: ADD 00000f99: PUSH2 0x0f80 00000f9c: JUMP 00000f9d: JUMPDEST 00000f9e: PUSH1 0x20 00000fa0: PUSH1 0x03 00000fa2: NOT 00000fa3: DUP3 00000fa4: ADD 00000fa5: SLT 00000fa6: PUSH2 0x05f1 00000fa9: JUMPI 00000faa: PUSH1 0x04 00000fac: CALLDATALOAD 00000fad: SWAP1 00000fae: PUSH1 0x01 00000fb0: PUSH1 0x01 00000fb2: PUSH1 0x40 00000fb4: SHL 00000fb5: SUB 00000fb6: DUP3 00000fb7: GT 00000fb8: PUSH2 0x05f1 00000fbb: JUMPI 00000fbc: PUSH2 0x0fc7 00000fbf: SWAP2 00000fc0: PUSH1 0x04 00000fc2: ADD 00000fc3: PUSH2 0x0f40 00000fc6: JUMP 00000fc7: JUMPDEST 00000fc8: SWAP1 00000fc9: JUMP 00000fca: JUMPDEST 00000fcb: CALLVALUE 00000fcc: PUSH2 0x05f1 00000fcf: JUMPI 00000fd0: PUSH2 0x0fd8 00000fd3: CALLDATASIZE 00000fd4: PUSH2 0x0f9d 00000fd7: JUMP 00000fd8: JUMPDEST 00000fd9: POP 00000fda: CALLER 00000fdb: PUSH0 00000fdc: MSTORE 00000fdd: PUSH1 0x02 00000fdf: PUSH1 0x20 00000fe1: MSTORE 00000fe2: PUSH1 0xff 00000fe4: PUSH1 0x40 00000fe6: PUSH0 00000fe7: KECCAK256 00000fe8: SLOAD 00000fe9: AND 00000fea: ISZERO 00000feb: DUP1 00000fec: PUSH2 0x102b 00000fef: JUMPI 00000ff0: JUMPDEST 00000ff1: DUP1 00000ff2: PUSH2 0x100a 00000ff5: JUMPI 00000ff6: JUMPDEST 00000ff7: ISZERO 00000ff8: PUSH2 0x338f 00000ffb: JUMPI 00000ffc: PUSH4 0xf7137c0f 00001001: PUSH1 0xe0 00001003: SHL 00001004: PUSH0 00001005: MSTORE 00001006: PUSH1 0x04 00001008: PUSH0 00001009: REVERT 0000100a: JUMPDEST 0000100b: POP 0000100c: PUSH0 0000100d: MLOAD 0000100e: PUSH1 0x20 00001010: PUSH2 0x4d02 00001013: PUSH0 00001014: CODECOPY 00001015: PUSH0 00001016: MLOAD 00001017: SWAP1 00001018: PUSH0 00001019: MSTORE 0000101a: SLOAD 0000101b: PUSH1 0x01 0000101d: PUSH1 0x01 0000101f: PUSH1 0xa0 00001021: SHL 00001022: SUB 00001023: AND 00001024: CALLER 00001025: EQ 00001026: ISZERO 00001027: PUSH2 0x0ff6 0000102a: JUMP 0000102b: JUMPDEST 0000102c: POP 0000102d: PUSH1 0x01 0000102f: SLOAD 00001030: PUSH1 0x01 00001032: PUSH1 0x01 00001034: PUSH1 0xa0 00001036: SHL 00001037: SUB 00001038: AND 00001039: CALLER 0000103a: EQ 0000103b: ISZERO 0000103c: PUSH2 0x0ff0 0000103f: JUMP 00001040: JUMPDEST 00001041: CALLVALUE 00001042: PUSH2 0x05f1 00001045: JUMPI 00001046: PUSH0 00001047: CALLDATASIZE 00001048: PUSH1 0x03 0000104a: NOT 0000104b: ADD 0000104c: SLT 0000104d: PUSH2 0x05f1 00001050: JUMPI 00001051: PUSH0 00001052: SLOAD 00001053: PUSH1 0x40 00001055: MLOAD 00001056: PUSH1 0x01 00001058: PUSH1 0x01 0000105a: PUSH1 0xa0 0000105c: SHL 0000105d: SUB 0000105e: SWAP1 0000105f: SWAP2 00001060: AND 00001061: DUP2 00001062: MSTORE 00001063: PUSH1 0x20 00001065: SWAP1 00001066: RETURN 00001067: JUMPDEST 00001068: CALLVALUE 00001069: PUSH2 0x05f1 0000106c: JUMPI 0000106d: PUSH1 0x20 0000106f: CALLDATASIZE 00001070: PUSH1 0x03 00001072: NOT 00001073: ADD 00001074: SLT 00001075: PUSH2 0x05f1 00001078: JUMPI 00001079: PUSH1 0x04 0000107b: CALLDATALOAD 0000107c: PUSH2 0x1084 0000107f: DUP2 00001080: PUSH2 0x0737 00001083: JUMP 00001084: JUMPDEST 00001085: PUSH2 0x108c 00001088: PUSH2 0x339e 0000108b: JUMP 0000108c: JUMPDEST 0000108d: POP 0000108e: PUSH1 0x01 00001090: DUP1 00001091: PUSH1 0xa0 00001093: SHL 00001094: SUB 00001095: AND 00001096: PUSH0 00001097: MSTORE 00001098: PUSH1 0x04 0000109a: PUSH1 0x20 0000109c: MSTORE 0000109d: PUSH2 0x067f 000010a0: PUSH1 0x40 000010a2: PUSH0 000010a3: KECCAK256 000010a4: PUSH1 0x40 000010a6: MLOAD 000010a7: SWAP1 000010a8: PUSH2 0x10b0 000010ab: DUP3 000010ac: PUSH2 0x0eb2 000010af: JUMP 000010b0: JUMPDEST 000010b1: SLOAD 000010b2: PUSH1 0x01 000010b4: PUSH1 0x01 000010b6: PUSH1 0xc0 000010b8: SHL 000010b9: SUB 000010ba: DUP2 000010bb: AND 000010bc: DUP1 000010bd: DUP4 000010be: MSTORE 000010bf: PUSH1 0xc0 000010c1: SWAP2 000010c2: SWAP1 000010c3: SWAP2 000010c4: SHR 000010c5: PUSH1 0x20 000010c7: SWAP3 000010c8: DUP4 000010c9: ADD 000010ca: SWAP1 000010cb: DUP2 000010cc: MSTORE 000010cd: PUSH1 0x40 000010cf: DUP1 000010d0: MLOAD 000010d1: SWAP3 000010d2: DUP4 000010d3: MSTORE 000010d4: SWAP1 000010d5: MLOAD 000010d6: PUSH1 0x01 000010d8: PUSH1 0x01 000010da: PUSH1 0x40 000010dc: SHL 000010dd: SUB 000010de: AND 000010df: SWAP3 000010e0: DUP3 000010e1: ADD 000010e2: SWAP3 000010e3: SWAP1 000010e4: SWAP3 000010e5: MSTORE 000010e6: SWAP2 000010e7: DUP3 000010e8: SWAP2 000010e9: DUP3 000010ea: ADD 000010eb: SWAP1 000010ec: JUMP 000010ed: JUMPDEST 000010ee: CALLVALUE 000010ef: PUSH2 0x05f1 000010f2: JUMPI 000010f3: PUSH0 000010f4: CALLDATASIZE 000010f5: PUSH1 0x03 000010f7: NOT 000010f8: ADD 000010f9: SLT 000010fa: PUSH2 0x05f1 000010fd: JUMPI 000010fe: PUSH1 0x20 00001100: PUSH1 0x14 00001102: SLOAD 00001103: PUSH1 0xc0 00001105: SHR 00001106: PUSH1 0x40 00001108: MLOAD 00001109: SWAP1 0000110a: DUP2 0000110b: MSTORE 0000110c: RETURN 0000110d: JUMPDEST 0000110e: CALLVALUE 0000110f: PUSH2 0x05f1 00001112: JUMPI 00001113: PUSH1 0x20 00001115: CALLDATASIZE 00001116: PUSH1 0x03 00001118: NOT 00001119: ADD 0000111a: SLT 0000111b: PUSH2 0x05f1 0000111e: JUMPI 0000111f: PUSH1 0x04 00001121: CALLDATALOAD 00001122: PUSH2 0x112a 00001125: DUP2 00001126: PUSH2 0x0737 00001129: JUMP 0000112a: JUMPDEST 0000112b: PUSH1 0x01 0000112d: DUP1 0000112e: PUSH1 0xa0 00001130: SHL 00001131: SUB 00001132: AND 00001133: PUSH0 00001134: MSTORE 00001135: PUSH1 0x02 00001137: PUSH1 0x20 00001139: MSTORE 0000113a: PUSH1 0x20 0000113c: PUSH1 0xff 0000113e: PUSH1 0x40 00001140: PUSH0 00001141: KECCAK256 00001142: SLOAD 00001143: AND 00001144: PUSH1 0x40 00001146: MLOAD 00001147: SWAP1 00001148: ISZERO 00001149: ISZERO 0000114a: DUP2 0000114b: MSTORE 0000114c: RETURN 0000114d: JUMPDEST 0000114e: CALLVALUE 0000114f: PUSH2 0x05f1 00001152: JUMPI 00001153: PUSH0 00001154: CALLDATASIZE 00001155: PUSH1 0x03 00001157: NOT 00001158: ADD 00001159: SLT 0000115a: PUSH2 0x05f1 0000115d: JUMPI 0000115e: PUSH4 0x4e2d04b3 00001163: PUSH1 0xe0 00001165: SHL 00001166: PUSH0 00001167: MSTORE 00001168: PUSH1 0x04 0000116a: PUSH0 0000116b: REVERT 0000116c: JUMPDEST 0000116d: CALLVALUE 0000116e: PUSH2 0x05f1 00001171: JUMPI 00001172: PUSH0 00001173: CALLDATASIZE 00001174: PUSH1 0x03 00001176: NOT 00001177: ADD 00001178: SLT 00001179: PUSH2 0x05f1 0000117c: JUMPI 0000117d: PUSH1 0x20 0000117f: PUSH1 0xff 00001181: PUSH0 00001182: MLOAD 00001183: PUSH1 0x20 00001185: PUSH2 0x4da2 00001188: PUSH0 00001189: CODECOPY 0000118a: PUSH0 0000118b: MLOAD 0000118c: SWAP1 0000118d: PUSH0 0000118e: MSTORE 0000118f: SLOAD 00001190: AND 00001191: PUSH1 0x40 00001193: MLOAD 00001194: SWAP1 00001195: ISZERO 00001196: ISZERO 00001197: DUP2 00001198: MSTORE 00001199: RETURN 0000119a: JUMPDEST 0000119b: DUP2 0000119c: PUSH1 0x1f 0000119e: DUP3 0000119f: ADD 000011a0: SLT 000011a1: ISZERO 000011a2: PUSH2 0x05f1 000011a5: JUMPI 000011a6: DUP1 000011a7: CALLDATALOAD 000011a8: SWAP1 000011a9: PUSH2 0x11b1 000011ac: DUP3 000011ad: PUSH2 0x0f29 000011b0: JUMP 000011b1: JUMPDEST 000011b2: SWAP3 000011b3: PUSH2 0x11bf 000011b6: PUSH1 0x40 000011b8: MLOAD 000011b9: SWAP5 000011ba: DUP6 000011bb: PUSH2 0x0ee8 000011be: JUMP 000011bf: JUMPDEST 000011c0: DUP3 000011c1: DUP5 000011c2: MSTORE 000011c3: PUSH1 0x20 000011c5: PUSH1 0x60 000011c7: DUP2 000011c8: DUP7 000011c9: ADD 000011ca: SWAP5 000011cb: MUL 000011cc: DUP4 000011cd: ADD 000011ce: ADD 000011cf: SWAP2 000011d0: DUP2 000011d1: DUP4 000011d2: GT 000011d3: PUSH2 0x05f1 000011d6: JUMPI 000011d7: PUSH1 0x20 000011d9: ADD 000011da: SWAP3 000011db: JUMPDEST 000011dc: DUP3 000011dd: DUP5 000011de: LT 000011df: PUSH2 0x11e9 000011e2: JUMPI 000011e3: POP 000011e4: POP 000011e5: POP 000011e6: POP 000011e7: SWAP1 000011e8: JUMP 000011e9: JUMPDEST 000011ea: PUSH1 0x60 000011ec: DUP5 000011ed: DUP4 000011ee: SUB 000011ef: SLT 000011f0: PUSH2 0x05f1 000011f3: JUMPI 000011f4: PUSH1 0x20 000011f6: PUSH1 0x60 000011f8: SWAP2 000011f9: PUSH1 0x40 000011fb: MLOAD 000011fc: PUSH2 0x1204 000011ff: DUP2 00001200: PUSH2 0x0e92 00001203: JUMP 00001204: JUMPDEST 00001205: DUP7 00001206: CALLDATALOAD 00001207: DUP2 00001208: MSTORE 00001209: DUP3 0000120a: DUP8 0000120b: ADD 0000120c: CALLDATALOAD 0000120d: DUP4 0000120e: DUP3 0000120f: ADD 00001210: MSTORE 00001211: PUSH1 0x40 00001213: DUP8 00001214: ADD 00001215: CALLDATALOAD 00001216: PUSH1 0x40 00001218: DUP3 00001219: ADD 0000121a: MSTORE 0000121b: DUP2 0000121c: MSTORE 0000121d: ADD 0000121e: SWAP4 0000121f: ADD 00001220: SWAP3 00001221: PUSH2 0x11db 00001224: JUMP 00001225: JUMPDEST 00001226: SWAP2 00001227: SWAP1 00001228: PUSH1 0x40 0000122a: DUP4 0000122b: DUP3 0000122c: SUB 0000122d: SLT 0000122e: PUSH2 0x05f1 00001231: JUMPI 00001232: PUSH1 0x40 00001234: MLOAD 00001235: SWAP1 00001236: PUSH2 0x123e 00001239: DUP3 0000123a: PUSH2 0x0eb2 0000123d: JUMP 0000123e: JUMPDEST 0000123f: DUP2 00001240: SWAP4 00001241: DUP1 00001242: CALLDATALOAD 00001243: PUSH1 0x01 00001245: PUSH1 0x01 00001247: PUSH1 0x40 00001249: SHL 0000124a: SUB 0000124b: DUP2 0000124c: GT 0000124d: PUSH2 0x05f1 00001250: JUMPI 00001251: DUP3 00001252: PUSH2 0x125c 00001255: SWAP2 00001256: DUP4 00001257: ADD 00001258: PUSH2 0x119a 0000125b: JUMP 0000125c: JUMPDEST 0000125d: DUP4 0000125e: MSTORE 0000125f: PUSH1 0x20 00001261: DUP2 00001262: ADD 00001263: CALLDATALOAD 00001264: SWAP2 00001265: PUSH1 0x01 00001267: PUSH1 0x01 00001269: PUSH1 0x40 0000126b: SHL 0000126c: SUB 0000126d: DUP4 0000126e: GT 0000126f: PUSH2 0x05f1 00001272: JUMPI 00001273: PUSH1 0x20 00001275: SWAP3 00001276: PUSH2 0x127f 00001279: SWAP3 0000127a: ADD 0000127b: PUSH2 0x119a 0000127e: JUMP 0000127f: JUMPDEST 00001280: SWAP2 00001281: ADD 00001282: MSTORE 00001283: JUMP 00001284: JUMPDEST 00001285: SWAP1 00001286: DUP1 00001287: PUSH1 0x1f 00001289: DUP4 0000128a: ADD 0000128b: SLT 0000128c: ISZERO 0000128d: PUSH2 0x05f1 00001290: JUMPI 00001291: DUP2 00001292: CALLDATALOAD 00001293: PUSH2 0x129b 00001296: DUP2 00001297: PUSH2 0x0f29 0000129a: JUMP 0000129b: JUMPDEST 0000129c: SWAP3 0000129d: PUSH2 0x12a9 000012a0: PUSH1 0x40 000012a2: MLOAD 000012a3: SWAP5 000012a4: DUP6 000012a5: PUSH2 0x0ee8 000012a8: JUMP 000012a9: JUMPDEST 000012aa: DUP2 000012ab: DUP5 000012ac: MSTORE 000012ad: PUSH1 0x20 000012af: DUP1 000012b0: DUP6 000012b1: ADD 000012b2: SWAP3 000012b3: PUSH1 0x05 000012b5: SHL 000012b6: DUP3 000012b7: ADD 000012b8: ADD 000012b9: SWAP2 000012ba: DUP4 000012bb: DUP4 000012bc: GT 000012bd: PUSH2 0x05f1 000012c0: JUMPI 000012c1: PUSH1 0x20 000012c3: DUP3 000012c4: ADD 000012c5: SWAP1 000012c6: JUMPDEST 000012c7: DUP4 000012c8: DUP3 000012c9: LT 000012ca: PUSH2 0x12d5 000012cd: JUMPI 000012ce: POP 000012cf: POP 000012d0: POP 000012d1: POP 000012d2: POP 000012d3: SWAP1 000012d4: JUMP 000012d5: JUMPDEST 000012d6: DUP2 000012d7: CALLDATALOAD 000012d8: PUSH1 0x01 000012da: PUSH1 0x01 000012dc: PUSH1 0x40 000012de: SHL 000012df: SUB 000012e0: DUP2 000012e1: GT 000012e2: PUSH2 0x05f1 000012e5: JUMPI 000012e6: PUSH1 0x20 000012e8: SWAP2 000012e9: PUSH2 0x12f7 000012ec: DUP8 000012ed: DUP5 000012ee: DUP1 000012ef: SWAP5 000012f0: DUP9 000012f1: ADD 000012f2: ADD 000012f3: PUSH2 0x1225 000012f6: JUMP 000012f7: JUMPDEST 000012f8: DUP2 000012f9: MSTORE 000012fa: ADD 000012fb: SWAP2 000012fc: ADD 000012fd: SWAP1 000012fe: PUSH2 0x12c6 00001301: JUMP 00001302: JUMPDEST 00001303: CALLVALUE 00001304: PUSH2 0x05f1 00001307: JUMPI 00001308: PUSH1 0x80 0000130a: CALLDATASIZE 0000130b: PUSH1 0x03 0000130d: NOT 0000130e: ADD 0000130f: SLT 00001310: PUSH2 0x05f1 00001313: JUMPI 00001314: PUSH1 0x04 00001316: CALLDATALOAD 00001317: PUSH1 0x01 00001319: PUSH1 0x01 0000131b: PUSH1 0x40 0000131d: SHL 0000131e: SUB 0000131f: DUP2 00001320: GT 00001321: PUSH2 0x05f1 00001324: JUMPI 00001325: CALLDATASIZE 00001326: PUSH1 0x23 00001328: DUP3 00001329: ADD 0000132a: SLT 0000132b: ISZERO 0000132c: PUSH2 0x05f1 0000132f: JUMPI 00001330: DUP1 00001331: PUSH1 0x04 00001333: ADD 00001334: CALLDATALOAD 00001335: SWAP1 00001336: PUSH2 0x133e 00001339: DUP3 0000133a: PUSH2 0x0f29 0000133d: JUMP 0000133e: JUMPDEST 0000133f: SWAP2 00001340: PUSH2 0x134c 00001343: PUSH1 0x40 00001345: MLOAD 00001346: SWAP4 00001347: DUP5 00001348: PUSH2 0x0ee8 0000134b: JUMP 0000134c: JUMPDEST 0000134d: DUP1 0000134e: DUP4 0000134f: MSTORE 00001350: PUSH1 0x24 00001352: PUSH1 0x20 00001354: DUP5 00001355: ADD 00001356: SWAP2 00001357: PUSH1 0x05 00001359: SHL 0000135a: DUP4 0000135b: ADD 0000135c: ADD 0000135d: SWAP2 0000135e: CALLDATASIZE 0000135f: DUP4 00001360: GT 00001361: PUSH2 0x05f1 00001364: JUMPI 00001365: PUSH1 0x24 00001367: ADD 00001368: SWAP1 00001369: JUMPDEST 0000136a: DUP3 0000136b: DUP3 0000136c: LT 0000136d: PUSH2 0x13d9 00001370: JUMPI 00001371: DUP4 00001372: PUSH1 0x24 00001374: CALLDATALOAD 00001375: PUSH1 0x01 00001377: PUSH1 0x01 00001379: PUSH1 0x40 0000137b: SHL 0000137c: SUB 0000137d: DUP2 0000137e: GT 0000137f: PUSH2 0x05f1 00001382: JUMPI 00001383: PUSH2 0x1390 00001386: SWAP1 00001387: CALLDATASIZE 00001388: SWAP1 00001389: PUSH1 0x04 0000138b: ADD 0000138c: PUSH2 0x0f40 0000138f: JUMP 00001390: JUMPDEST 00001391: SWAP1 00001392: PUSH1 0x44 00001394: CALLDATALOAD 00001395: PUSH1 0x01 00001397: PUSH1 0x01 00001399: PUSH1 0x40 0000139b: SHL 0000139c: SUB 0000139d: DUP2 0000139e: GT 0000139f: PUSH2 0x05f1 000013a2: JUMPI 000013a3: PUSH2 0x13b0 000013a6: SWAP1 000013a7: CALLDATASIZE 000013a8: SWAP1 000013a9: PUSH1 0x04 000013ab: ADD 000013ac: PUSH2 0x0f40 000013af: JUMP 000013b0: JUMPDEST 000013b1: PUSH1 0x64 000013b3: CALLDATALOAD 000013b4: SWAP3 000013b5: PUSH1 0x01 000013b7: PUSH1 0x01 000013b9: PUSH1 0x40 000013bb: SHL 000013bc: SUB 000013bd: DUP5 000013be: GT 000013bf: PUSH2 0x05f1 000013c2: JUMPI 000013c3: PUSH2 0x13d3 000013c6: PUSH2 0x0987 000013c9: SWAP5 000013ca: CALLDATASIZE 000013cb: SWAP1 000013cc: PUSH1 0x04 000013ce: ADD 000013cf: PUSH2 0x1284 000013d2: JUMP 000013d3: JUMPDEST 000013d4: SWAP3 000013d5: PUSH2 0x3466 000013d8: JUMP 000013d9: JUMPDEST 000013da: PUSH1 0x20 000013dc: DUP1 000013dd: SWAP2 000013de: DUP4 000013df: CALLDATALOAD 000013e0: PUSH2 0x13e8 000013e3: DUP2 000013e4: PUSH2 0x0737 000013e7: JUMP 000013e8: JUMPDEST 000013e9: DUP2 000013ea: MSTORE 000013eb: ADD 000013ec: SWAP2 000013ed: ADD 000013ee: SWAP1 000013ef: PUSH2 0x1369 000013f2: JUMP 000013f3: JUMPDEST 000013f4: CALLVALUE 000013f5: PUSH2 0x05f1 000013f8: JUMPI 000013f9: PUSH1 0x20 000013fb: CALLDATASIZE 000013fc: PUSH1 0x03 000013fe: NOT 000013ff: ADD 00001400: SLT 00001401: PUSH2 0x05f1 00001404: JUMPI 00001405: PUSH1 0x04 00001407: CALLDATALOAD 00001408: PUSH2 0x1410 0000140b: DUP2 0000140c: PUSH2 0x0737 0000140f: JUMP 00001410: JUMPDEST 00001411: PUSH1 0x01 00001413: DUP1 00001414: PUSH1 0xa0 00001416: SHL 00001417: SUB 00001418: AND 00001419: PUSH0 0000141a: MSTORE 0000141b: PUSH1 0x0e 0000141d: PUSH1 0x20 0000141f: MSTORE 00001420: PUSH1 0x20 00001422: PUSH1 0x40 00001424: PUSH0 00001425: KECCAK256 00001426: SLOAD 00001427: PUSH1 0x40 00001429: MLOAD 0000142a: SWAP1 0000142b: DUP2 0000142c: MSTORE 0000142d: RETURN 0000142e: JUMPDEST 0000142f: CALLVALUE 00001430: PUSH2 0x05f1 00001433: JUMPI 00001434: PUSH1 0x20 00001436: CALLDATASIZE 00001437: PUSH1 0x03 00001439: NOT 0000143a: ADD 0000143b: SLT 0000143c: PUSH2 0x05f1 0000143f: JUMPI 00001440: PUSH4 0x207972c9 00001445: PUSH1 0xe0 00001447: SHL 00001448: PUSH0 00001449: MSTORE 0000144a: PUSH1 0x04 0000144c: PUSH0 0000144d: REVERT 0000144e: JUMPDEST 0000144f: CALLVALUE 00001450: PUSH2 0x05f1 00001453: JUMPI 00001454: PUSH0 00001455: CALLDATASIZE 00001456: PUSH1 0x03 00001458: NOT 00001459: ADD 0000145a: SLT 0000145b: PUSH2 0x05f1 0000145e: JUMPI 0000145f: PUSH1 0x20 00001461: PUSH7 0x2386f26fc10000 00001469: PUSH1 0x0a 0000146b: SLOAD 0000146c: DIV 0000146d: PUSH1 0x40 0000146f: MLOAD 00001470: SWAP1 00001471: DUP2 00001472: MSTORE 00001473: RETURN 00001474: JUMPDEST 00001475: CALLVALUE 00001476: PUSH2 0x05f1 00001479: JUMPI 0000147a: PUSH1 0x40 0000147c: CALLDATASIZE 0000147d: PUSH1 0x03 0000147f: NOT 00001480: ADD 00001481: SLT 00001482: PUSH2 0x05f1 00001485: JUMPI 00001486: PUSH1 0x04 00001488: CALLDATALOAD 00001489: PUSH1 0x24 0000148b: CALLDATALOAD 0000148c: PUSH2 0x1494 0000148f: DUP2 00001490: PUSH2 0x0737 00001493: JUMP 00001494: JUMPDEST 00001495: PUSH2 0x149c 00001498: PUSH2 0x3411 0000149b: JUMP 0000149c: JUMPDEST 0000149d: DUP1 0000149e: DUP4 0000149f: GT 000014a0: PUSH2 0x164d 000014a3: JUMPI 000014a4: POP 000014a5: PUSH2 0x14ad 000014a8: DUP3 000014a9: PUSH2 0x3d5c 000014ac: JUMP 000014ad: JUMPDEST 000014ae: SWAP1 000014af: PUSH2 0x14b6 000014b2: PUSH2 0x4288 000014b5: JUMP 000014b6: JUMPDEST 000014b7: PUSH0 000014b8: MLOAD 000014b9: PUSH1 0x20 000014bb: PUSH2 0x4d42 000014be: PUSH0 000014bf: CODECOPY 000014c0: PUSH0 000014c1: MLOAD 000014c2: SWAP1 000014c3: PUSH0 000014c4: MSTORE 000014c5: TLOAD 000014c6: SWAP3 000014c7: DUP4 000014c8: ISZERO 000014c9: ISZERO 000014ca: DUP1 000014cb: PUSH2 0x1636 000014ce: JUMPI 000014cf: JUMPDEST 000014d0: PUSH2 0x1612 000014d3: JUMPI 000014d4: PUSH2 0x067f 000014d7: SWAP4 000014d8: POP 000014d9: PUSH0 000014da: MLOAD 000014db: PUSH1 0x20 000014dd: PUSH2 0x4d62 000014e0: PUSH0 000014e1: CODECOPY 000014e2: PUSH0 000014e3: MLOAD 000014e4: SWAP1 000014e5: PUSH0 000014e6: MSTORE 000014e7: PUSH0 000014e8: MLOAD 000014e9: PUSH1 0x20 000014eb: PUSH2 0x4d42 000014ee: PUSH0 000014ef: CODECOPY 000014f0: PUSH0 000014f1: MLOAD 000014f2: SWAP1 000014f3: PUSH0 000014f4: MSTORE 000014f5: TSTORE 000014f6: PUSH2 0x14fd 000014f9: PUSH2 0x4182 000014fc: JUMP 000014fd: JUMPDEST 000014fe: PUSH0 000014ff: MLOAD 00001500: PUSH1 0x20 00001502: PUSH2 0x4d82 00001505: PUSH0 00001506: CODECOPY 00001507: PUSH0 00001508: MLOAD 00001509: SWAP1 0000150a: PUSH0 0000150b: MSTORE 0000150c: SLOAD 0000150d: PUSH2 0x1524 00001510: SWAP1 00001511: DUP3 00001512: SWAP1 00001513: ADDRESS 00001514: SWAP1 00001515: CALLER 00001516: SWAP1 00001517: PUSH1 0x01 00001519: PUSH1 0x01 0000151b: PUSH1 0xa0 0000151d: SHL 0000151e: SUB 0000151f: AND 00001520: PUSH2 0x4a02 00001523: JUMP 00001524: JUMPDEST 00001525: PUSH2 0x159b 00001528: DUP2 00001529: PUSH2 0x1596 0000152c: PUSH2 0x155a 0000152f: PUSH2 0x154e 00001532: PUSH2 0x154e 00001535: PUSH0 00001536: MLOAD 00001537: PUSH1 0x20 00001539: PUSH2 0x4d82 0000153c: PUSH0 0000153d: CODECOPY 0000153e: PUSH0 0000153f: MLOAD 00001540: SWAP1 00001541: PUSH0 00001542: MSTORE 00001543: SLOAD 00001544: PUSH1 0x01 00001546: DUP1 00001547: PUSH1 0xa0 00001549: SHL 0000154a: SUB 0000154b: AND 0000154c: SWAP1 0000154d: JUMP 0000154e: JUMPDEST 0000154f: PUSH1 0x01 00001551: PUSH1 0x01 00001553: PUSH1 0xa0 00001555: SHL 00001556: SUB 00001557: AND 00001558: SWAP1 00001559: JUMP 0000155a: JUMPDEST 0000155b: PUSH1 0x40 0000155d: MLOAD 0000155e: PUSH4 0x49cc4ebd 00001563: PUSH1 0xe1 00001565: SHL 00001566: PUSH1 0x20 00001568: DUP3 00001569: ADD 0000156a: MSTORE 0000156b: PUSH1 0x01 0000156d: PUSH1 0x01 0000156f: PUSH1 0xa0 00001571: SHL 00001572: SUB 00001573: SWAP1 00001574: SWAP2 00001575: AND 00001576: PUSH1 0x24 00001578: DUP3 00001579: ADD 0000157a: MSTORE 0000157b: PUSH1 0x44 0000157d: DUP2 0000157e: ADD 0000157f: SWAP3 00001580: SWAP1 00001581: SWAP3 00001582: MSTORE 00001583: DUP2 00001584: PUSH1 0x64 00001586: DUP2 00001587: ADD 00001588: JUMPDEST 00001589: SUB 0000158a: PUSH1 0x1f 0000158c: NOT 0000158d: DUP2 0000158e: ADD 0000158f: DUP4 00001590: MSTORE 00001591: DUP3 00001592: PUSH2 0x0ee8 00001595: JUMP 00001596: JUMPDEST 00001597: PUSH2 0x41d8 0000159a: JUMP 0000159b: JUMPDEST 0000159c: POP 0000159d: PUSH2 0x15a6 000015a0: DUP4 000015a1: DUP4 000015a2: PUSH2 0x4ade 000015a5: JUMP 000015a6: JUMPDEST 000015a7: PUSH1 0x40 000015a9: DUP1 000015aa: MLOAD 000015ab: SWAP2 000015ac: DUP3 000015ad: MSTORE 000015ae: PUSH1 0x20 000015b0: DUP3 000015b1: ADD 000015b2: DUP5 000015b3: SWAP1 000015b4: MSTORE 000015b5: PUSH1 0x01 000015b7: PUSH1 0x01 000015b9: PUSH1 0xa0 000015bb: SHL 000015bc: SUB 000015bd: SWAP1 000015be: SWAP3 000015bf: AND 000015c0: SWAP2 000015c1: CALLER 000015c2: SWAP2 000015c3: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 000015e4: SWAP2 000015e5: DUP2 000015e6: SWAP1 000015e7: DUP2 000015e8: ADD 000015e9: JUMPDEST 000015ea: SUB 000015eb: SWAP1 000015ec: LOG3 000015ed: PUSH2 0x1602 000015f0: PUSH1 0x01 000015f2: PUSH0 000015f3: MLOAD 000015f4: PUSH1 0x20 000015f6: PUSH2 0x4dc2 000015f9: PUSH0 000015fa: CODECOPY 000015fb: PUSH0 000015fc: MLOAD 000015fd: SWAP1 000015fe: PUSH0 000015ff: MSTORE 00001600: SSTORE 00001601: JUMP 00001602: JUMPDEST 00001603: PUSH1 0x40 00001605: MLOAD 00001606: SWAP1 00001607: DUP2 00001608: MSTORE 00001609: SWAP1 0000160a: DUP2 0000160b: SWAP1 0000160c: PUSH1 0x20 0000160e: DUP3 0000160f: ADD 00001610: SWAP1 00001611: JUMP 00001612: JUMPDEST 00001613: DUP4 00001614: PUSH4 0xbeb4ce07 00001619: PUSH1 0xe0 0000161b: SHL 0000161c: PUSH0 0000161d: MSTORE 0000161e: PUSH0 0000161f: MLOAD 00001620: PUSH1 0x20 00001622: PUSH2 0x4d62 00001625: PUSH0 00001626: CODECOPY 00001627: PUSH0 00001628: MLOAD 00001629: SWAP1 0000162a: PUSH0 0000162b: MSTORE 0000162c: PUSH1 0x04 0000162e: MSTORE 0000162f: PUSH1 0x24 00001631: MSTORE 00001632: PUSH1 0x44 00001634: PUSH0 00001635: REVERT 00001636: JUMPDEST 00001637: POP 00001638: PUSH0 00001639: MLOAD 0000163a: PUSH1 0x20 0000163c: PUSH2 0x4d62 0000163f: PUSH0 00001640: CODECOPY 00001641: PUSH0 00001642: MLOAD 00001643: SWAP1 00001644: PUSH0 00001645: MSTORE 00001646: DUP5 00001647: EQ 00001648: ISZERO 00001649: PUSH2 0x14cf 0000164c: JUMP 0000164d: JUMPDEST 0000164e: SWAP2 0000164f: SWAP1 00001650: PUSH4 0x3c8097d9 00001655: PUSH1 0xe1 00001657: SHL 00001658: PUSH0 00001659: MSTORE 0000165a: PUSH1 0x01 0000165c: DUP1 0000165d: PUSH1 0xa0 0000165f: SHL 00001660: SUB 00001661: AND 00001662: PUSH1 0x04 00001664: MSTORE 00001665: PUSH1 0x24 00001667: MSTORE 00001668: PUSH1 0x44 0000166a: MSTORE 0000166b: PUSH1 0x64 0000166d: PUSH0 0000166e: REVERT 0000166f: JUMPDEST 00001670: CALLVALUE 00001671: PUSH2 0x05f1 00001674: JUMPI 00001675: PUSH1 0x20 00001677: CALLDATASIZE 00001678: PUSH1 0x03 0000167a: NOT 0000167b: ADD 0000167c: SLT 0000167d: PUSH2 0x05f1 00001680: JUMPI 00001681: PUSH1 0x20 00001683: PUSH2 0x072f 00001686: PUSH1 0x04 00001688: CALLDATALOAD 00001689: PUSH2 0x1691 0000168c: DUP2 0000168d: PUSH2 0x0737 00001690: JUMP 00001691: JUMPDEST 00001692: PUSH2 0x366b 00001695: JUMP 00001696: JUMPDEST 00001697: CALLVALUE 00001698: PUSH2 0x05f1 0000169b: JUMPI 0000169c: PUSH0 0000169d: CALLDATASIZE 0000169e: PUSH1 0x03 000016a0: NOT 000016a1: ADD 000016a2: SLT 000016a3: PUSH2 0x05f1 000016a6: JUMPI 000016a7: PUSH2 0x16ae 000016aa: PUSH2 0x4162 000016ad: JUMP 000016ae: JUMPDEST 000016af: PUSH0 000016b0: MLOAD 000016b1: PUSH1 0x20 000016b3: PUSH2 0x4e02 000016b6: PUSH0 000016b7: CODECOPY 000016b8: PUSH0 000016b9: MLOAD 000016ba: SWAP1 000016bb: PUSH0 000016bc: MSTORE 000016bd: DUP1 000016be: SLOAD 000016bf: PUSH1 0x01 000016c1: PUSH1 0x01 000016c3: PUSH1 0xa0 000016c5: SHL 000016c6: SUB 000016c7: NOT 000016c8: SWAP1 000016c9: DUP2 000016ca: AND 000016cb: SWAP1 000016cc: SWAP2 000016cd: SSTORE 000016ce: PUSH0 000016cf: MLOAD 000016d0: PUSH1 0x20 000016d2: PUSH2 0x4d02 000016d5: PUSH0 000016d6: CODECOPY 000016d7: PUSH0 000016d8: MLOAD 000016d9: SWAP1 000016da: PUSH0 000016db: MSTORE 000016dc: DUP1 000016dd: SLOAD 000016de: SWAP2 000016df: DUP3 000016e0: AND 000016e1: SWAP1 000016e2: SSTORE 000016e3: PUSH0 000016e4: SWAP1 000016e5: PUSH1 0x01 000016e7: PUSH1 0x01 000016e9: PUSH1 0xa0 000016eb: SHL 000016ec: SUB 000016ed: AND 000016ee: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000170f: DUP3 00001710: DUP1 00001711: LOG3 00001712: STOP 00001713: JUMPDEST 00001714: CALLVALUE 00001715: PUSH2 0x05f1 00001718: JUMPI 00001719: PUSH1 0x80 0000171b: CALLDATASIZE 0000171c: PUSH1 0x03 0000171e: NOT 0000171f: ADD 00001720: SLT 00001721: PUSH2 0x05f1 00001724: JUMPI 00001725: PUSH1 0x04 00001727: CALLDATALOAD 00001728: PUSH2 0x1730 0000172b: DUP2 0000172c: PUSH2 0x0737 0000172f: JUMP 00001730: JUMPDEST 00001731: PUSH1 0x24 00001733: CALLDATALOAD 00001734: SWAP1 00001735: PUSH1 0x44 00001737: CALLDATALOAD 00001738: SWAP1 00001739: PUSH2 0x1741 0000173c: DUP3 0000173d: PUSH2 0x0737 00001740: JUMP 00001741: JUMPDEST 00001742: PUSH1 0x64 00001744: CALLDATALOAD 00001745: SWAP2 00001746: PUSH2 0x174e 00001749: DUP4 0000174a: PUSH2 0x0737 0000174d: JUMP 0000174e: JUMPDEST 0000174f: PUSH2 0x1756 00001752: PUSH2 0x4288 00001755: JUMP 00001756: JUMPDEST 00001757: PUSH0 00001758: MLOAD 00001759: PUSH1 0x20 0000175b: PUSH2 0x4d82 0000175e: PUSH0 0000175f: CODECOPY 00001760: PUSH0 00001761: MLOAD 00001762: SWAP1 00001763: PUSH0 00001764: MSTORE 00001765: SLOAD 00001766: PUSH2 0x1779 00001769: SWAP1 0000176a: PUSH2 0x154e 0000176d: SWAP1 0000176e: PUSH1 0x01 00001770: PUSH1 0x01 00001772: PUSH1 0xa0 00001774: SHL 00001775: SUB 00001776: AND 00001777: DUP2 00001778: JUMP 00001779: JUMPDEST 0000177a: PUSH1 0x01 0000177c: PUSH1 0x01 0000177e: PUSH1 0xa0 00001780: SHL 00001781: SUB 00001782: DUP4 00001783: AND 00001784: SWAP3 00001785: SWAP1 00001786: DUP4 00001787: EQ 00001788: PUSH2 0x18b7 0000178b: JUMPI 0000178c: PUSH2 0x1794 0000178f: DUP6 00001790: PUSH2 0x3d18 00001793: JUMP 00001794: JUMPDEST 00001795: SWAP4 00001796: PUSH2 0x179e 00001799: DUP2 0000179a: PUSH2 0x366b 0000179d: JUMP 0000179e: JUMPDEST 0000179f: DUP1 000017a0: DUP7 000017a1: GT 000017a2: PUSH2 0x1893 000017a5: JUMPI 000017a6: POP 000017a7: DUP6 000017a8: PUSH2 0x1596 000017ab: PUSH2 0x1813 000017ae: SWAP4 000017af: PUSH2 0x17ca 000017b2: DUP9 000017b3: PUSH2 0x1804 000017b6: SWAP6 000017b7: PUSH1 0x01 000017b9: DUP1 000017ba: PUSH1 0xa0 000017bc: SHL 000017bd: SUB 000017be: DUP2 000017bf: AND 000017c0: CALLER 000017c1: SUB 000017c2: PUSH2 0x1883 000017c5: JUMPI 000017c6: PUSH2 0x42c0 000017c9: JUMP 000017ca: JUMPDEST 000017cb: PUSH1 0x40 000017cd: MLOAD 000017ce: PUSH4 0x5394eb43 000017d3: PUSH1 0xe1 000017d5: SHL 000017d6: PUSH1 0x20 000017d8: DUP3 000017d9: ADD 000017da: MSTORE 000017db: PUSH1 0x01 000017dd: PUSH1 0x01 000017df: PUSH1 0xa0 000017e1: SHL 000017e2: SUB 000017e3: DUP1 000017e4: DUP9 000017e5: AND 000017e6: PUSH1 0x24 000017e8: DUP4 000017e9: ADD 000017ea: MSTORE 000017eb: SWAP1 000017ec: SWAP2 000017ed: AND 000017ee: PUSH1 0x44 000017f0: DUP3 000017f1: ADD 000017f2: MSTORE 000017f3: PUSH1 0x64 000017f5: DUP2 000017f6: ADD 000017f7: SWAP3 000017f8: SWAP1 000017f9: SWAP3 000017fa: MSTORE 000017fb: DUP2 000017fc: PUSH1 0x84 000017fe: DUP2 000017ff: ADD 00001800: PUSH2 0x1588 00001803: JUMP 00001804: JUMPDEST 00001805: PUSH1 0x20 00001807: DUP1 00001808: DUP3 00001809: MLOAD 0000180a: DUP4 0000180b: ADD 0000180c: ADD 0000180d: SWAP2 0000180e: ADD 0000180f: PUSH2 0x36a4 00001812: JUMP 00001813: JUMPDEST 00001814: PUSH1 0x40 00001816: DUP1 00001817: MLOAD 00001818: SWAP6 00001819: DUP7 0000181a: MSTORE 0000181b: PUSH1 0x20 0000181d: DUP7 0000181e: ADD 0000181f: DUP6 00001820: SWAP1 00001821: MSTORE 00001822: DUP6 00001823: ADD 00001824: DUP2 00001825: SWAP1 00001826: MSTORE 00001827: SWAP4 00001828: PUSH1 0x01 0000182a: PUSH1 0x01 0000182c: PUSH1 0xa0 0000182e: SHL 0000182f: SUB 00001830: SWAP2 00001831: SWAP1 00001832: SWAP2 00001833: AND 00001834: SWAP1 00001835: CALLER 00001836: SWAP1 00001837: PUSH32 0xaf2e30fae2dfd1a90059cf53415e90c4ee9d151c1b1861df8f8a5963069c47f4 00001858: SWAP1 00001859: PUSH1 0x60 0000185b: SWAP1 0000185c: LOG4 0000185d: PUSH2 0x1872 00001860: PUSH1 0x01 00001862: PUSH0 00001863: MLOAD 00001864: PUSH1 0x20 00001866: PUSH2 0x4dc2 00001869: PUSH0 0000186a: CODECOPY 0000186b: PUSH0 0000186c: MLOAD 0000186d: SWAP1 0000186e: PUSH0 0000186f: MSTORE 00001870: SSTORE 00001871: JUMP 00001872: JUMPDEST 00001873: PUSH1 0x40 00001875: DUP1 00001876: MLOAD 00001877: SWAP2 00001878: DUP3 00001879: MSTORE 0000187a: PUSH1 0x20 0000187c: DUP3 0000187d: ADD 0000187e: SWAP3 0000187f: SWAP1 00001880: SWAP3 00001881: MSTORE 00001882: RETURN 00001883: JUMPDEST 00001884: PUSH2 0x188e 00001887: DUP3 00001888: CALLER 00001889: DUP4 0000188a: PUSH2 0x3fc0 0000188d: JUMP 0000188e: JUMPDEST 0000188f: PUSH2 0x42c0 00001892: JUMP 00001893: JUMPDEST 00001894: PUSH4 0x2e52afbb 00001899: PUSH1 0xe2 0000189b: SHL 0000189c: PUSH0 0000189d: MSTORE 0000189e: PUSH1 0x01 000018a0: PUSH1 0x01 000018a2: PUSH1 0xa0 000018a4: SHL 000018a5: SUB 000018a6: DUP5 000018a7: AND 000018a8: PUSH1 0x04 000018aa: MSTORE 000018ab: PUSH1 0x24 000018ad: DUP7 000018ae: SWAP1 000018af: MSTORE 000018b0: PUSH1 0x44 000018b2: MSTORE 000018b3: PUSH1 0x64 000018b5: PUSH0 000018b6: REVERT 000018b7: JUMPDEST 000018b8: PUSH4 0x4049e745 000018bd: PUSH1 0xe1 000018bf: SHL 000018c0: PUSH0 000018c1: MSTORE 000018c2: PUSH1 0x04 000018c4: PUSH0 000018c5: REVERT 000018c6: JUMPDEST 000018c7: CALLVALUE 000018c8: PUSH2 0x05f1 000018cb: JUMPI 000018cc: PUSH1 0x20 000018ce: CALLDATASIZE 000018cf: PUSH1 0x03 000018d1: NOT 000018d2: ADD 000018d3: SLT 000018d4: PUSH2 0x05f1 000018d7: JUMPI 000018d8: PUSH1 0x04 000018da: CALLDATALOAD 000018db: PUSH1 0x01 000018dd: SLOAD 000018de: PUSH1 0x01 000018e0: PUSH1 0x01 000018e2: PUSH1 0xa0 000018e4: SHL 000018e5: SUB 000018e6: AND 000018e7: CALLER 000018e8: EQ 000018e9: ISZERO 000018ea: DUP1 000018eb: PUSH2 0x1977 000018ee: JUMPI 000018ef: JUMPDEST 000018f0: PUSH2 0x0a3e 000018f3: JUMPI 000018f4: PUSH1 0x08 000018f6: SLOAD 000018f7: SWAP1 000018f8: DUP2 000018f9: DUP2 000018fa: EQ 000018fb: PUSH2 0x0a28 000018fe: JUMPI 000018ff: PUSH1 0x05 00001901: SLOAD 00001902: PUSH1 0xc0 00001904: SHR 00001905: PUSH2 0x0a19 00001908: JUMPI 00001909: PUSH2 0x1911 0000190c: DUP2 0000190d: PUSH2 0x4359 00001910: JUMP 00001911: JUMPDEST 00001912: DUP2 00001913: DUP2 00001914: GT 00001915: ISZERO 00001916: PUSH2 0x1923 00001919: JUMPI 0000191a: PUSH2 0x0987 0000191d: SWAP2 0000191e: POP 0000191f: PUSH2 0x438c 00001922: JUMP 00001923: JUMPDEST 00001924: PUSH32 0x6ed11f5df0bdefbbb4873e90566a9cfafbb8305c164922c173437f3c45f90a35 00001945: SWAP2 00001946: PUSH2 0x1958 00001949: SWAP1 0000194a: PUSH1 0x01 0000194c: PUSH1 0x01 0000194e: PUSH1 0xb8 00001950: SHL 00001951: SUB 00001952: DUP4 00001953: AND 00001954: PUSH2 0x3ddb 00001957: JUMP 00001958: JUMPDEST 00001959: PUSH1 0x05 0000195b: SLOAD 0000195c: PUSH1 0x40 0000195e: DUP1 0000195f: MLOAD 00001960: SWAP3 00001961: DUP4 00001962: MSTORE 00001963: PUSH1 0xc0 00001965: SWAP2 00001966: SWAP1 00001967: SWAP2 00001968: SHR 00001969: PUSH1 0x20 0000196b: DUP4 0000196c: ADD 0000196d: MSTORE 0000196e: DUP2 0000196f: SWAP1 00001970: DUP2 00001971: ADD 00001972: JUMPDEST 00001973: SUB 00001974: SWAP1 00001975: LOG1 00001976: STOP 00001977: JUMPDEST 00001978: POP 00001979: PUSH0 0000197a: MLOAD 0000197b: PUSH1 0x20 0000197d: PUSH2 0x4d02 00001980: PUSH0 00001981: CODECOPY 00001982: PUSH0 00001983: MLOAD 00001984: SWAP1 00001985: PUSH0 00001986: MSTORE 00001987: SLOAD 00001988: PUSH1 0x01 0000198a: PUSH1 0x01 0000198c: PUSH1 0xa0 0000198e: SHL 0000198f: SUB 00001990: AND 00001991: CALLER 00001992: EQ 00001993: ISZERO 00001994: PUSH2 0x18ef 00001997: JUMP 00001998: JUMPDEST 00001999: CALLVALUE 0000199a: PUSH2 0x05f1 0000199d: JUMPI 0000199e: PUSH0 0000199f: CALLDATASIZE 000019a0: PUSH1 0x03 000019a2: NOT 000019a3: ADD 000019a4: SLT 000019a5: PUSH2 0x05f1 000019a8: JUMPI 000019a9: PUSH2 0x19b0 000019ac: PUSH2 0x339e 000019af: JUMP 000019b0: JUMPDEST 000019b1: POP 000019b2: PUSH1 0x40 000019b4: DUP1 000019b5: MLOAD 000019b6: PUSH2 0x19be 000019b9: DUP2 000019ba: PUSH2 0x0eb2 000019bd: JUMP 000019be: JUMPDEST 000019bf: PUSH1 0x01 000019c1: PUSH1 0x01 000019c3: PUSH1 0x40 000019c5: SHL 000019c6: SUB 000019c7: PUSH1 0x07 000019c9: SLOAD 000019ca: DUP2 000019cb: PUSH1 0x20 000019cd: PUSH1 0x01 000019cf: DUP1 000019d0: PUSH1 0xa0 000019d2: SHL 000019d3: SUB 000019d4: DUP4 000019d5: AND 000019d6: SWAP5 000019d7: DUP6 000019d8: DUP2 000019d9: MSTORE 000019da: ADD 000019db: SWAP2 000019dc: PUSH1 0xa0 000019de: SHR 000019df: AND 000019e0: DUP2 000019e1: MSTORE 000019e2: DUP4 000019e3: MLOAD 000019e4: SWAP3 000019e5: DUP4 000019e6: MSTORE 000019e7: MLOAD 000019e8: AND 000019e9: PUSH1 0x20 000019eb: DUP3 000019ec: ADD 000019ed: MSTORE 000019ee: RETURN 000019ef: JUMPDEST 000019f0: PUSH1 0x01 000019f2: PUSH1 0x01 000019f4: PUSH1 0x40 000019f6: SHL 000019f7: SUB 000019f8: DUP2 000019f9: GT 000019fa: PUSH2 0x0ead 000019fd: JUMPI 000019fe: PUSH1 0x1f 00001a00: ADD 00001a01: PUSH1 0x1f 00001a03: NOT 00001a04: AND 00001a05: PUSH1 0x20 00001a07: ADD 00001a08: SWAP1 00001a09: JUMP 00001a0a: JUMPDEST 00001a0b: DUP2 00001a0c: PUSH1 0x1f 00001a0e: DUP3 00001a0f: ADD 00001a10: SLT 00001a11: ISZERO 00001a12: PUSH2 0x05f1 00001a15: JUMPI 00001a16: DUP1 00001a17: CALLDATALOAD 00001a18: SWAP1 00001a19: PUSH2 0x1a21 00001a1c: DUP3 00001a1d: PUSH2 0x19ef 00001a20: JUMP 00001a21: JUMPDEST 00001a22: SWAP3 00001a23: PUSH2 0x1a2f 00001a26: PUSH1 0x40 00001a28: MLOAD 00001a29: SWAP5 00001a2a: DUP6 00001a2b: PUSH2 0x0ee8 00001a2e: JUMP 00001a2f: JUMPDEST 00001a30: DUP3 00001a31: DUP5 00001a32: MSTORE 00001a33: PUSH1 0x20 00001a35: DUP4 00001a36: DUP4 00001a37: ADD 00001a38: ADD 00001a39: GT 00001a3a: PUSH2 0x05f1 00001a3d: JUMPI 00001a3e: DUP2 00001a3f: PUSH0 00001a40: SWAP3 00001a41: PUSH1 0x20 00001a43: DUP1 00001a44: SWAP4 00001a45: ADD 00001a46: DUP4 00001a47: DUP7 00001a48: ADD 00001a49: CALLDATACOPY 00001a4a: DUP4 00001a4b: ADD 00001a4c: ADD 00001a4d: MSTORE 00001a4e: SWAP1 00001a4f: JUMP 00001a50: JUMPDEST 00001a51: PUSH1 0x04 00001a53: CALLDATALOAD 00001a54: SWAP1 00001a55: PUSH1 0x01 00001a57: PUSH1 0x01 00001a59: PUSH1 0x40 00001a5b: SHL 00001a5c: SUB 00001a5d: DUP3 00001a5e: AND 00001a5f: DUP3 00001a60: SUB 00001a61: PUSH2 0x05f1 00001a64: JUMPI 00001a65: JUMP 00001a66: JUMPDEST 00001a67: CALLDATALOAD 00001a68: SWAP1 00001a69: PUSH1 0x01 00001a6b: PUSH1 0x01 00001a6d: PUSH1 0x40 00001a6f: SHL 00001a70: SUB 00001a71: DUP3 00001a72: AND 00001a73: DUP3 00001a74: SUB 00001a75: PUSH2 0x05f1 00001a78: JUMPI 00001a79: JUMP 00001a7a: JUMPDEST 00001a7b: CALLVALUE 00001a7c: PUSH2 0x05f1 00001a7f: JUMPI 00001a80: PUSH1 0x20 00001a82: CALLDATASIZE 00001a83: PUSH1 0x03 00001a85: NOT 00001a86: ADD 00001a87: SLT 00001a88: PUSH2 0x05f1 00001a8b: JUMPI 00001a8c: PUSH1 0x04 00001a8e: CALLDATALOAD 00001a8f: PUSH1 0x01 00001a91: PUSH1 0x01 00001a93: PUSH1 0x40 00001a95: SHL 00001a96: SUB 00001a97: DUP2 00001a98: GT 00001a99: PUSH2 0x05f1 00001a9c: JUMPI 00001a9d: PUSH2 0x0100 00001aa0: PUSH1 0x03 00001aa2: NOT 00001aa3: DUP3 00001aa4: CALLDATASIZE 00001aa5: SUB 00001aa6: ADD 00001aa7: SLT 00001aa8: PUSH2 0x05f1 00001aab: JUMPI 00001aac: PUSH2 0x1ab3 00001aaf: PUSH2 0x0f09 00001ab2: JUMP 00001ab3: JUMPDEST 00001ab4: SWAP1 00001ab5: PUSH2 0x1ac0 00001ab8: DUP2 00001ab9: PUSH1 0x04 00001abb: ADD 00001abc: PUSH2 0x0748 00001abf: JUMP 00001ac0: JUMPDEST 00001ac1: DUP3 00001ac2: MSTORE 00001ac3: PUSH2 0x1ace 00001ac6: PUSH1 0x24 00001ac8: DUP3 00001ac9: ADD 00001aca: PUSH2 0x0748 00001acd: JUMP 00001ace: JUMPDEST 00001acf: PUSH1 0x20 00001ad1: DUP4 00001ad2: ADD 00001ad3: MSTORE 00001ad4: PUSH1 0x44 00001ad6: DUP2 00001ad7: ADD 00001ad8: CALLDATALOAD 00001ad9: PUSH1 0x40 00001adb: DUP4 00001adc: ADD 00001add: MSTORE 00001ade: PUSH2 0x1ae9 00001ae1: PUSH1 0x64 00001ae3: DUP3 00001ae4: ADD 00001ae5: PUSH2 0x0748 00001ae8: JUMP 00001ae9: JUMPDEST 00001aea: PUSH1 0x60 00001aec: DUP4 00001aed: ADD 00001aee: MSTORE 00001aef: PUSH1 0x84 00001af1: DUP2 00001af2: ADD 00001af3: CALLDATALOAD 00001af4: PUSH1 0x80 00001af6: DUP4 00001af7: ADD 00001af8: MSTORE 00001af9: PUSH1 0xa4 00001afb: DUP2 00001afc: ADD 00001afd: CALLDATALOAD 00001afe: PUSH1 0x01 00001b00: PUSH1 0x01 00001b02: PUSH1 0x40 00001b04: SHL 00001b05: SUB 00001b06: DUP2 00001b07: GT 00001b08: PUSH2 0x05f1 00001b0b: JUMPI 00001b0c: PUSH2 0x1b1b 00001b0f: SWAP1 00001b10: PUSH1 0x04 00001b12: CALLDATASIZE 00001b13: SWAP2 00001b14: DUP5 00001b15: ADD 00001b16: ADD 00001b17: PUSH2 0x1a0a 00001b1a: JUMP 00001b1b: JUMPDEST 00001b1c: PUSH1 0xa0 00001b1e: DUP4 00001b1f: ADD 00001b20: MSTORE 00001b21: PUSH1 0xc4 00001b23: DUP2 00001b24: ADD 00001b25: CALLDATALOAD 00001b26: PUSH1 0x01 00001b28: PUSH1 0x01 00001b2a: PUSH1 0x40 00001b2c: SHL 00001b2d: SUB 00001b2e: DUP2 00001b2f: GT 00001b30: PUSH2 0x05f1 00001b33: JUMPI 00001b34: PUSH2 0x1b54 00001b37: SWAP2 00001b38: PUSH2 0x1b49 00001b3b: PUSH1 0xe4 00001b3d: SWAP3 00001b3e: PUSH1 0x04 00001b40: CALLDATASIZE 00001b41: SWAP2 00001b42: DUP5 00001b43: ADD 00001b44: ADD 00001b45: PUSH2 0x1a0a 00001b48: JUMP 00001b49: JUMPDEST 00001b4a: PUSH1 0xc0 00001b4c: DUP6 00001b4d: ADD 00001b4e: MSTORE 00001b4f: ADD 00001b50: PUSH2 0x1a66 00001b53: JUMP 00001b54: JUMPDEST 00001b55: PUSH1 0xe0 00001b57: DUP3 00001b58: ADD 00001b59: MSTORE 00001b5a: PUSH2 0x3712 00001b5d: JUMP 00001b5e: JUMPDEST 00001b5f: CALLVALUE 00001b60: PUSH2 0x05f1 00001b63: JUMPI 00001b64: PUSH0 00001b65: CALLDATASIZE 00001b66: PUSH1 0x03 00001b68: NOT 00001b69: ADD 00001b6a: SLT 00001b6b: PUSH2 0x05f1 00001b6e: JUMPI 00001b6f: PUSH0 00001b70: MLOAD 00001b71: PUSH1 0x20 00001b73: PUSH2 0x4e02 00001b76: PUSH0 00001b77: CODECOPY 00001b78: PUSH0 00001b79: MLOAD 00001b7a: SWAP1 00001b7b: PUSH0 00001b7c: MSTORE 00001b7d: SLOAD 00001b7e: CALLER 00001b7f: PUSH1 0x01 00001b81: PUSH1 0x01 00001b83: PUSH1 0xa0 00001b85: SHL 00001b86: SUB 00001b87: SWAP1 00001b88: SWAP2 00001b89: AND 00001b8a: SUB 00001b8b: PUSH2 0x1b97 00001b8e: JUMPI 00001b8f: PUSH2 0x0987 00001b92: CALLER 00001b93: PUSH2 0x421d 00001b96: JUMP 00001b97: JUMPDEST 00001b98: PUSH4 0x118cdaa7 00001b9d: PUSH1 0xe0 00001b9f: SHL 00001ba0: PUSH0 00001ba1: MSTORE 00001ba2: CALLER 00001ba3: PUSH1 0x04 00001ba5: MSTORE 00001ba6: PUSH1 0x24 00001ba8: PUSH0 00001ba9: REVERT 00001baa: JUMPDEST 00001bab: CALLVALUE 00001bac: PUSH2 0x05f1 00001baf: JUMPI 00001bb0: PUSH0 00001bb1: CALLDATASIZE 00001bb2: PUSH1 0x03 00001bb4: NOT 00001bb5: ADD 00001bb6: SLT 00001bb7: PUSH2 0x05f1 00001bba: JUMPI 00001bbb: PUSH2 0x1bc2 00001bbe: PUSH2 0x339e 00001bc1: JUMP 00001bc2: JUMPDEST 00001bc3: POP 00001bc4: PUSH2 0x067f 00001bc7: PUSH1 0x40 00001bc9: MLOAD 00001bca: PUSH2 0x1bd2 00001bcd: DUP2 00001bce: PUSH2 0x0eb2 00001bd1: JUMP 00001bd2: JUMPDEST 00001bd3: PUSH1 0x05 00001bd5: SLOAD 00001bd6: PUSH1 0x01 00001bd8: PUSH1 0x01 00001bda: PUSH1 0xc0 00001bdc: SHL 00001bdd: SUB 00001bde: DUP2 00001bdf: AND 00001be0: DUP1 00001be1: DUP4 00001be2: MSTORE 00001be3: PUSH1 0xc0 00001be5: SWAP2 00001be6: SWAP1 00001be7: SWAP2 00001be8: SHR 00001be9: PUSH1 0x20 00001beb: SWAP3 00001bec: DUP4 00001bed: ADD 00001bee: SWAP1 00001bef: DUP2 00001bf0: MSTORE 00001bf1: PUSH1 0x40 00001bf3: DUP1 00001bf4: MLOAD 00001bf5: SWAP3 00001bf6: DUP4 00001bf7: MSTORE 00001bf8: SWAP1 00001bf9: MLOAD 00001bfa: PUSH1 0x01 00001bfc: PUSH1 0x01 00001bfe: PUSH1 0x40 00001c00: SHL 00001c01: SUB 00001c02: AND 00001c03: SWAP3 00001c04: DUP3 00001c05: ADD 00001c06: SWAP3 00001c07: SWAP1 00001c08: SWAP3 00001c09: MSTORE 00001c0a: SWAP2 00001c0b: DUP3 00001c0c: SWAP2 00001c0d: DUP3 00001c0e: ADD 00001c0f: SWAP1 00001c10: JUMP 00001c11: JUMPDEST 00001c12: CALLVALUE 00001c13: PUSH2 0x05f1 00001c16: JUMPI 00001c17: PUSH0 00001c18: CALLDATASIZE 00001c19: PUSH1 0x03 00001c1b: NOT 00001c1c: ADD 00001c1d: SLT 00001c1e: PUSH2 0x05f1 00001c21: JUMPI 00001c22: PUSH0 00001c23: SLOAD 00001c24: PUSH1 0x01 00001c26: PUSH1 0x01 00001c28: PUSH1 0xa0 00001c2a: SHL 00001c2b: SUB 00001c2c: AND 00001c2d: CALLER 00001c2e: EQ 00001c2f: ISZERO 00001c30: DUP1 00001c31: PUSH2 0x1c64 00001c34: JUMPI 00001c35: JUMPDEST 00001c36: PUSH2 0x0b83 00001c39: JUMPI 00001c3a: PUSH0 00001c3b: PUSH1 0x06 00001c3d: SSTORE 00001c3e: CALLER 00001c3f: PUSH32 0xb7cc052ba5dd4e2c200f771e69c6c4dddd930567bd8bea00e527944967c57db8 00001c60: PUSH0 00001c61: DUP1 00001c62: LOG2 00001c63: STOP 00001c64: JUMPDEST 00001c65: POP 00001c66: PUSH0 00001c67: MLOAD 00001c68: PUSH1 0x20 00001c6a: PUSH2 0x4d02 00001c6d: PUSH0 00001c6e: CODECOPY 00001c6f: PUSH0 00001c70: MLOAD 00001c71: SWAP1 00001c72: PUSH0 00001c73: MSTORE 00001c74: SLOAD 00001c75: PUSH1 0x01 00001c77: PUSH1 0x01 00001c79: PUSH1 0xa0 00001c7b: SHL 00001c7c: SUB 00001c7d: AND 00001c7e: CALLER 00001c7f: EQ 00001c80: ISZERO 00001c81: PUSH2 0x1c35 00001c84: JUMP 00001c85: JUMPDEST 00001c86: CALLVALUE 00001c87: PUSH2 0x05f1 00001c8a: JUMPI 00001c8b: PUSH0 00001c8c: CALLDATASIZE 00001c8d: PUSH1 0x03 00001c8f: NOT 00001c90: ADD 00001c91: SLT 00001c92: PUSH2 0x05f1 00001c95: JUMPI 00001c96: PUSH2 0x1c9d 00001c99: PUSH2 0x4162 00001c9c: JUMP 00001c9d: JUMPDEST 00001c9e: PUSH2 0x1ca5 00001ca1: PUSH2 0x4182 00001ca4: JUMP 00001ca5: JUMPDEST 00001ca6: PUSH1 0x01 00001ca8: PUSH1 0xff 00001caa: NOT 00001cab: PUSH0 00001cac: MLOAD 00001cad: PUSH1 0x20 00001caf: PUSH2 0x4da2 00001cb2: PUSH0 00001cb3: CODECOPY 00001cb4: PUSH0 00001cb5: MLOAD 00001cb6: SWAP1 00001cb7: PUSH0 00001cb8: MSTORE 00001cb9: SLOAD 00001cba: AND 00001cbb: OR 00001cbc: PUSH0 00001cbd: MLOAD 00001cbe: PUSH1 0x20 00001cc0: PUSH2 0x4da2 00001cc3: PUSH0 00001cc4: CODECOPY 00001cc5: PUSH0 00001cc6: MLOAD 00001cc7: SWAP1 00001cc8: PUSH0 00001cc9: MSTORE 00001cca: SSTORE 00001ccb: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 00001cec: PUSH1 0x20 00001cee: PUSH1 0x40 00001cf0: MLOAD 00001cf1: CALLER 00001cf2: DUP2 00001cf3: MSTORE 00001cf4: LOG1 00001cf5: STOP 00001cf6: JUMPDEST 00001cf7: CALLVALUE 00001cf8: PUSH2 0x05f1 00001cfb: JUMPI 00001cfc: PUSH0 00001cfd: CALLDATASIZE 00001cfe: PUSH1 0x03 00001d00: NOT 00001d01: ADD 00001d02: SLT 00001d03: PUSH2 0x05f1 00001d06: JUMPI 00001d07: PUSH0 00001d08: SLOAD 00001d09: PUSH1 0x01 00001d0b: PUSH1 0x01 00001d0d: PUSH1 0xa0 00001d0f: SHL 00001d10: SUB 00001d11: AND 00001d12: CALLER 00001d13: EQ 00001d14: ISZERO 00001d15: DUP1 00001d16: PUSH2 0x1d49 00001d19: JUMPI 00001d1a: JUMPDEST 00001d1b: PUSH2 0x0b83 00001d1e: JUMPI 00001d1f: PUSH0 00001d20: PUSH1 0x12 00001d22: SSTORE 00001d23: CALLER 00001d24: PUSH32 0x6e2daa1b3bca5239ed02028dbe091b3e5d41ae2702e4394b0a28cee04bd59fb2 00001d45: PUSH0 00001d46: DUP1 00001d47: LOG2 00001d48: STOP 00001d49: JUMPDEST 00001d4a: POP 00001d4b: PUSH0 00001d4c: MLOAD 00001d4d: PUSH1 0x20 00001d4f: PUSH2 0x4d02 00001d52: PUSH0 00001d53: CODECOPY 00001d54: PUSH0 00001d55: MLOAD 00001d56: SWAP1 00001d57: PUSH0 00001d58: MSTORE 00001d59: SLOAD 00001d5a: PUSH1 0x01 00001d5c: PUSH1 0x01 00001d5e: PUSH1 0xa0 00001d60: SHL 00001d61: SUB 00001d62: AND 00001d63: CALLER 00001d64: EQ 00001d65: ISZERO 00001d66: PUSH2 0x1d1a 00001d69: JUMP 00001d6a: JUMPDEST 00001d6b: CALLVALUE 00001d6c: PUSH2 0x05f1 00001d6f: JUMPI 00001d70: PUSH0 00001d71: CALLDATASIZE 00001d72: PUSH1 0x03 00001d74: NOT 00001d75: ADD 00001d76: SLT 00001d77: PUSH2 0x05f1 00001d7a: JUMPI 00001d7b: PUSH1 0x20 00001d7d: PUSH2 0x1d84 00001d80: PUSH2 0x3b3a 00001d83: JUMP 00001d84: JUMPDEST 00001d85: SWAP1 00001d86: POP 00001d87: PUSH7 0x2386f26fc10000 00001d8f: PUSH1 0x40 00001d91: MLOAD 00001d92: SWAP2 00001d93: DIV 00001d94: DUP2 00001d95: MSTORE 00001d96: RETURN 00001d97: JUMPDEST 00001d98: CALLVALUE 00001d99: PUSH2 0x05f1 00001d9c: JUMPI 00001d9d: PUSH1 0x20 00001d9f: CALLDATASIZE 00001da0: PUSH1 0x03 00001da2: NOT 00001da3: ADD 00001da4: SLT 00001da5: PUSH2 0x05f1 00001da8: JUMPI 00001da9: PUSH2 0x1db0 00001dac: PUSH2 0x1a50 00001daf: JUMP 00001db0: JUMPDEST 00001db1: PUSH1 0x01 00001db3: SLOAD 00001db4: PUSH1 0x01 00001db6: PUSH1 0x01 00001db8: PUSH1 0xa0 00001dba: SHL 00001dbb: SUB 00001dbc: AND 00001dbd: CALLER 00001dbe: EQ 00001dbf: ISZERO 00001dc0: DUP1 00001dc1: PUSH2 0x1e7e 00001dc4: JUMPI 00001dc5: JUMPDEST 00001dc6: PUSH2 0x0a3e 00001dc9: JUMPI 00001dca: PUSH1 0x14 00001dcc: SLOAD 00001dcd: PUSH2 0x1de9 00001dd0: SWAP1 00001dd1: PUSH1 0x80 00001dd3: SHR 00001dd4: PUSH1 0x01 00001dd6: PUSH1 0x01 00001dd8: PUSH1 0x40 00001dda: SHL 00001ddb: SUB 00001ddc: AND 00001ddd: JUMPDEST 00001dde: PUSH1 0x01 00001de0: PUSH1 0x01 00001de2: PUSH1 0x40 00001de4: SHL 00001de5: SUB 00001de6: AND 00001de7: SWAP1 00001de8: JUMP 00001de9: JUMPDEST 00001dea: SWAP1 00001deb: PUSH1 0x01 00001ded: PUSH1 0x01 00001def: PUSH1 0x40 00001df1: SHL 00001df2: SUB 00001df3: DUP2 00001df4: AND 00001df5: SWAP2 00001df6: DUP1 00001df7: DUP4 00001df8: EQ 00001df9: PUSH2 0x0a28 00001dfc: JUMPI 00001dfd: PUSH1 0x01 00001dff: PUSH1 0x01 00001e01: PUSH1 0x40 00001e03: SHL 00001e04: SUB 00001e05: PUSH2 0x1e10 00001e08: PUSH1 0x12 00001e0a: SLOAD 00001e0b: PUSH1 0xc0 00001e0d: SHR 00001e0e: SWAP1 00001e0f: JUMP 00001e10: JUMPDEST 00001e11: AND 00001e12: PUSH2 0x0a19 00001e15: JUMPI 00001e16: DUP3 00001e17: GT 00001e18: ISZERO 00001e19: PUSH2 0x1e26 00001e1c: JUMPI 00001e1d: PUSH2 0x0987 00001e20: SWAP2 00001e21: POP 00001e22: PUSH2 0x3f64 00001e25: JUMP 00001e26: JUMPDEST 00001e27: PUSH2 0x1e54 00001e2a: PUSH32 0x4cedca5aa9a1cac41bbc05fef13c4ddccee26353a3de3d7615435bdf3f92ad63 00001e4b: SWAP3 00001e4c: PUSH1 0x08 00001e4e: SLOAD 00001e4f: SWAP1 00001e50: PUSH2 0x3e24 00001e53: JUMP 00001e54: JUMPDEST 00001e55: PUSH1 0x12 00001e57: SLOAD 00001e58: PUSH1 0xc0 00001e5a: SHR 00001e5b: JUMPDEST 00001e5c: PUSH1 0x40 00001e5e: DUP1 00001e5f: MLOAD 00001e60: PUSH1 0x01 00001e62: PUSH1 0x01 00001e64: PUSH1 0x40 00001e66: SHL 00001e67: SUB 00001e68: SWAP4 00001e69: DUP5 00001e6a: AND 00001e6b: DUP2 00001e6c: MSTORE 00001e6d: SWAP3 00001e6e: SWAP1 00001e6f: SWAP2 00001e70: AND 00001e71: PUSH1 0x20 00001e73: DUP4 00001e74: ADD 00001e75: MSTORE 00001e76: DUP2 00001e77: SWAP1 00001e78: DUP2 00001e79: ADD 00001e7a: PUSH2 0x1972 00001e7d: JUMP 00001e7e: JUMPDEST 00001e7f: POP 00001e80: PUSH0 00001e81: MLOAD 00001e82: PUSH1 0x20 00001e84: PUSH2 0x4d02 00001e87: PUSH0 00001e88: CODECOPY 00001e89: PUSH0 00001e8a: MLOAD 00001e8b: SWAP1 00001e8c: PUSH0 00001e8d: MSTORE 00001e8e: SLOAD 00001e8f: PUSH1 0x01 00001e91: PUSH1 0x01 00001e93: PUSH1 0xa0 00001e95: SHL 00001e96: SUB 00001e97: AND 00001e98: CALLER 00001e99: EQ 00001e9a: ISZERO 00001e9b: PUSH2 0x1dc5 00001e9e: JUMP 00001e9f: JUMPDEST 00001ea0: CALLVALUE 00001ea1: PUSH2 0x05f1 00001ea4: JUMPI 00001ea5: PUSH0 00001ea6: CALLDATASIZE 00001ea7: PUSH1 0x03 00001ea9: NOT 00001eaa: ADD 00001eab: SLT 00001eac: PUSH2 0x05f1 00001eaf: JUMPI 00001eb0: PUSH1 0x05 00001eb2: SLOAD 00001eb3: DUP1 00001eb4: PUSH1 0xc0 00001eb6: SHR 00001eb7: DUP1 00001eb8: ISZERO 00001eb9: PUSH2 0x0ab8 00001ebc: JUMPI 00001ebd: TIMESTAMP 00001ebe: LT 00001ebf: PUSH2 0x0aa9 00001ec2: JUMPI 00001ec3: PUSH2 0x0987 00001ec6: SWAP1 00001ec7: PUSH1 0x01 00001ec9: PUSH1 0x01 00001ecb: PUSH1 0xc0 00001ecd: SHL 00001ece: SUB 00001ecf: AND 00001ed0: PUSH2 0x438c 00001ed3: JUMP 00001ed4: JUMPDEST 00001ed5: CALLVALUE 00001ed6: PUSH2 0x05f1 00001ed9: JUMPI 00001eda: PUSH0 00001edb: CALLDATASIZE 00001edc: PUSH1 0x03 00001ede: NOT 00001edf: ADD 00001ee0: SLT 00001ee1: PUSH2 0x05f1 00001ee4: JUMPI 00001ee5: PUSH0 00001ee6: MLOAD 00001ee7: PUSH1 0x20 00001ee9: PUSH2 0x4d02 00001eec: PUSH0 00001eed: CODECOPY 00001eee: PUSH0 00001eef: MLOAD 00001ef0: SWAP1 00001ef1: PUSH0 00001ef2: MSTORE 00001ef3: SLOAD 00001ef4: PUSH1 0x40 00001ef6: MLOAD 00001ef7: PUSH1 0x01 00001ef9: PUSH1 0x01 00001efb: PUSH1 0xa0 00001efd: SHL 00001efe: SUB 00001eff: SWAP1 00001f00: SWAP2 00001f01: AND 00001f02: DUP2 00001f03: MSTORE 00001f04: PUSH1 0x20 00001f06: SWAP1 00001f07: RETURN 00001f08: JUMPDEST 00001f09: CALLVALUE 00001f0a: PUSH2 0x05f1 00001f0d: JUMPI 00001f0e: PUSH1 0x20 00001f10: CALLDATASIZE 00001f11: PUSH1 0x03 00001f13: NOT 00001f14: ADD 00001f15: SLT 00001f16: PUSH2 0x05f1 00001f19: JUMPI 00001f1a: PUSH1 0x04 00001f1c: CALLDATALOAD 00001f1d: PUSH1 0x01 00001f1f: DUP1 00001f20: PUSH1 0xa0 00001f22: SHL 00001f23: SUB 00001f24: PUSH1 0x01 00001f26: SLOAD 00001f27: AND 00001f28: CALLER 00001f29: EQ 00001f2a: ISZERO 00001f2b: DUP1 00001f2c: PUSH2 0x1f46 00001f2f: JUMPI 00001f30: JUMPDEST 00001f31: PUSH2 0x0a3e 00001f34: JUMPI 00001f35: PUSH1 0x09 00001f37: SLOAD 00001f38: DUP2 00001f39: EQ 00001f3a: PUSH2 0x0a28 00001f3d: JUMPI 00001f3e: PUSH2 0x0987 00001f41: SWAP1 00001f42: PUSH2 0x43c2 00001f45: JUMP 00001f46: JUMPDEST 00001f47: POP 00001f48: PUSH0 00001f49: MLOAD 00001f4a: PUSH1 0x20 00001f4c: PUSH2 0x4d02 00001f4f: PUSH0 00001f50: CODECOPY 00001f51: PUSH0 00001f52: MLOAD 00001f53: SWAP1 00001f54: PUSH0 00001f55: MSTORE 00001f56: SLOAD 00001f57: PUSH1 0x01 00001f59: PUSH1 0x01 00001f5b: PUSH1 0xa0 00001f5d: SHL 00001f5e: SUB 00001f5f: AND 00001f60: CALLER 00001f61: EQ 00001f62: ISZERO 00001f63: PUSH2 0x1f30 00001f66: JUMP 00001f67: JUMPDEST 00001f68: CALLVALUE 00001f69: PUSH2 0x05f1 00001f6c: JUMPI 00001f6d: PUSH1 0x40 00001f6f: CALLDATASIZE 00001f70: PUSH1 0x03 00001f72: NOT 00001f73: ADD 00001f74: SLT 00001f75: PUSH2 0x05f1 00001f78: JUMPI 00001f79: PUSH1 0x04 00001f7b: CALLDATALOAD 00001f7c: PUSH2 0x1f84 00001f7f: DUP2 00001f80: PUSH2 0x0737 00001f83: JUMP 00001f84: JUMPDEST 00001f85: PUSH1 0x24 00001f87: CALLDATALOAD 00001f88: SWAP1 00001f89: PUSH2 0x1f90 00001f8c: PUSH2 0x4288 00001f8f: JUMP 00001f90: JUMPDEST 00001f91: PUSH2 0x1f98 00001f94: PUSH2 0x4182 00001f97: JUMP 00001f98: JUMPDEST 00001f99: PUSH1 0x01 00001f9b: SLOAD 00001f9c: PUSH1 0x01 00001f9e: PUSH1 0x01 00001fa0: PUSH1 0xa0 00001fa2: SHL 00001fa3: SUB 00001fa4: AND 00001fa5: CALLER 00001fa6: EQ 00001fa7: ISZERO 00001fa8: DUP1 00001fa9: PUSH2 0x2017 00001fac: JUMPI 00001fad: JUMPDEST 00001fae: PUSH2 0x0a3e 00001fb1: JUMPI 00001fb2: PUSH0 00001fb3: MLOAD 00001fb4: PUSH1 0x20 00001fb6: PUSH2 0x4d82 00001fb9: PUSH0 00001fba: CODECOPY 00001fbb: PUSH0 00001fbc: MLOAD 00001fbd: SWAP1 00001fbe: PUSH0 00001fbf: MSTORE 00001fc0: SLOAD 00001fc1: PUSH1 0x40 00001fc3: MLOAD 00001fc4: PUSH4 0x2cfc68f1 00001fc9: PUSH1 0xe1 00001fcb: SHL 00001fcc: PUSH1 0x20 00001fce: DUP3 00001fcf: ADD 00001fd0: MSTORE 00001fd1: PUSH1 0x01 00001fd3: PUSH1 0x01 00001fd5: PUSH1 0xa0 00001fd7: SHL 00001fd8: SUB 00001fd9: SWAP2 00001fda: DUP3 00001fdb: AND 00001fdc: PUSH1 0x24 00001fde: DUP3 00001fdf: ADD 00001fe0: MSTORE 00001fe1: SWAP2 00001fe2: AND 00001fe3: PUSH1 0x44 00001fe5: DUP3 00001fe6: ADD 00001fe7: MSTORE 00001fe8: PUSH1 0x64 00001fea: DUP2 00001feb: ADD 00001fec: SWAP2 00001fed: SWAP1 00001fee: SWAP2 00001fef: MSTORE 00001ff0: PUSH2 0x2000 00001ff3: SWAP1 00001ff4: PUSH2 0x1596 00001ff7: DUP2 00001ff8: PUSH1 0x84 00001ffa: DUP2 00001ffb: ADD 00001ffc: PUSH2 0x1588 00001fff: JUMP 00002000: JUMPDEST 00002001: POP 00002002: PUSH2 0x0987 00002005: PUSH1 0x01 00002007: PUSH0 00002008: MLOAD 00002009: PUSH1 0x20 0000200b: PUSH2 0x4dc2 0000200e: PUSH0 0000200f: CODECOPY 00002010: PUSH0 00002011: MLOAD 00002012: SWAP1 00002013: PUSH0 00002014: MSTORE 00002015: SSTORE 00002016: JUMP 00002017: JUMPDEST 00002018: POP 00002019: PUSH0 0000201a: MLOAD 0000201b: PUSH1 0x20 0000201d: PUSH2 0x4d02 00002020: PUSH0 00002021: CODECOPY 00002022: PUSH0 00002023: MLOAD 00002024: SWAP1 00002025: PUSH0 00002026: MSTORE 00002027: SLOAD 00002028: PUSH1 0x01 0000202a: PUSH1 0x01 0000202c: PUSH1 0xa0 0000202e: SHL 0000202f: SUB 00002030: AND 00002031: CALLER 00002032: EQ 00002033: ISZERO 00002034: PUSH2 0x1fad 00002037: JUMP 00002038: JUMPDEST 00002039: CALLVALUE 0000203a: PUSH2 0x05f1 0000203d: JUMPI 0000203e: PUSH1 0x40 00002040: CALLDATASIZE 00002041: PUSH1 0x03 00002043: NOT 00002044: ADD 00002045: SLT 00002046: PUSH2 0x05f1 00002049: JUMPI 0000204a: PUSH1 0x04 0000204c: CALLDATALOAD 0000204d: PUSH1 0x24 0000204f: CALLDATALOAD 00002050: PUSH2 0x2058 00002053: DUP2 00002054: PUSH2 0x0737 00002057: JUMP 00002058: JUMPDEST 00002059: PUSH2 0x2060 0000205c: PUSH2 0x3ac8 0000205f: JUMP 00002060: JUMPDEST 00002061: DUP1 00002062: DUP4 00002063: GT 00002064: PUSH2 0x217c 00002067: JUMPI 00002068: POP 00002069: PUSH2 0x2071 0000206c: DUP3 0000206d: PUSH2 0x3cd4 00002070: JUMP 00002071: JUMPDEST 00002072: SWAP1 00002073: PUSH2 0x207a 00002076: PUSH2 0x4288 00002079: JUMP 0000207a: JUMPDEST 0000207b: PUSH0 0000207c: MLOAD 0000207d: PUSH1 0x20 0000207f: PUSH2 0x4d42 00002082: PUSH0 00002083: CODECOPY 00002084: PUSH0 00002085: MLOAD 00002086: SWAP1 00002087: PUSH0 00002088: MSTORE 00002089: TLOAD 0000208a: SWAP3 0000208b: DUP4 0000208c: ISZERO 0000208d: ISZERO 0000208e: DUP1 0000208f: PUSH2 0x2165 00002092: JUMPI 00002093: JUMPDEST 00002094: PUSH2 0x1612 00002097: JUMPI 00002098: PUSH2 0x067f 0000209b: SWAP4 0000209c: POP 0000209d: PUSH0 0000209e: MLOAD 0000209f: PUSH1 0x20 000020a1: PUSH2 0x4d62 000020a4: PUSH0 000020a5: CODECOPY 000020a6: PUSH0 000020a7: MLOAD 000020a8: SWAP1 000020a9: PUSH0 000020aa: MSTORE 000020ab: PUSH0 000020ac: MLOAD 000020ad: PUSH1 0x20 000020af: PUSH2 0x4d42 000020b2: PUSH0 000020b3: CODECOPY 000020b4: PUSH0 000020b5: MLOAD 000020b6: SWAP1 000020b7: PUSH0 000020b8: MSTORE 000020b9: TSTORE 000020ba: PUSH2 0x20c1 000020bd: PUSH2 0x4182 000020c0: JUMP 000020c1: JUMPDEST 000020c2: PUSH0 000020c3: MLOAD 000020c4: PUSH1 0x20 000020c6: PUSH2 0x4d82 000020c9: PUSH0 000020ca: CODECOPY 000020cb: PUSH0 000020cc: MLOAD 000020cd: SWAP1 000020ce: PUSH0 000020cf: MSTORE 000020d0: SLOAD 000020d1: PUSH2 0x20e8 000020d4: SWAP1 000020d5: DUP5 000020d6: SWAP1 000020d7: ADDRESS 000020d8: SWAP1 000020d9: CALLER 000020da: SWAP1 000020db: PUSH1 0x01 000020dd: PUSH1 0x01 000020df: PUSH1 0xa0 000020e1: SHL 000020e2: SUB 000020e3: AND 000020e4: PUSH2 0x4a02 000020e7: JUMP 000020e8: JUMPDEST 000020e9: PUSH2 0x2112 000020ec: DUP4 000020ed: PUSH2 0x1596 000020f0: PUSH2 0x155a 000020f3: PUSH2 0x154e 000020f6: PUSH2 0x154e 000020f9: PUSH0 000020fa: MLOAD 000020fb: PUSH1 0x20 000020fd: PUSH2 0x4d82 00002100: PUSH0 00002101: CODECOPY 00002102: PUSH0 00002103: MLOAD 00002104: SWAP1 00002105: PUSH0 00002106: MSTORE 00002107: SLOAD 00002108: PUSH1 0x01 0000210a: DUP1 0000210b: PUSH1 0xa0 0000210d: SHL 0000210e: SUB 0000210f: AND 00002110: SWAP1 00002111: JUMP 00002112: JUMPDEST 00002113: POP 00002114: PUSH2 0x211d 00002117: DUP2 00002118: DUP4 00002119: PUSH2 0x4ade 0000211c: JUMP 0000211d: JUMPDEST 0000211e: PUSH1 0x40 00002120: DUP1 00002121: MLOAD 00002122: DUP5 00002123: DUP2 00002124: MSTORE 00002125: PUSH1 0x20 00002127: DUP2 00002128: ADD 00002129: SWAP3 0000212a: SWAP1 0000212b: SWAP3 0000212c: MSTORE 0000212d: PUSH1 0x01 0000212f: PUSH1 0x01 00002131: PUSH1 0xa0 00002133: SHL 00002134: SUB 00002135: SWAP1 00002136: SWAP3 00002137: AND 00002138: SWAP2 00002139: CALLER 0000213a: SWAP2 0000213b: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 0000215c: SWAP2 0000215d: DUP2 0000215e: SWAP1 0000215f: DUP2 00002160: ADD 00002161: PUSH2 0x15e9 00002164: JUMP 00002165: JUMPDEST 00002166: POP 00002167: PUSH0 00002168: MLOAD 00002169: PUSH1 0x20 0000216b: PUSH2 0x4d62 0000216e: PUSH0 0000216f: CODECOPY 00002170: PUSH0 00002171: MLOAD 00002172: SWAP1 00002173: PUSH0 00002174: MSTORE 00002175: DUP5 00002176: EQ 00002177: ISZERO 00002178: PUSH2 0x2093 0000217b: JUMP 0000217c: JUMPDEST 0000217d: SWAP2 0000217e: SWAP1 0000217f: PUSH4 0x284ff667 00002184: PUSH1 0xe0 00002186: SHL 00002187: PUSH0 00002188: MSTORE 00002189: PUSH1 0x01 0000218b: DUP1 0000218c: PUSH1 0xa0 0000218e: SHL 0000218f: SUB 00002190: AND 00002191: PUSH1 0x04 00002193: MSTORE 00002194: PUSH1 0x24 00002196: MSTORE 00002197: PUSH1 0x44 00002199: MSTORE 0000219a: PUSH1 0x64 0000219c: PUSH0 0000219d: REVERT 0000219e: JUMPDEST 0000219f: CALLVALUE 000021a0: PUSH2 0x05f1 000021a3: JUMPI 000021a4: PUSH0 000021a5: CALLDATASIZE 000021a6: PUSH1 0x03 000021a8: NOT 000021a9: ADD 000021aa: SLT 000021ab: PUSH2 0x05f1 000021ae: JUMPI 000021af: PUSH1 0x40 000021b1: MLOAD 000021b2: PUSH0 000021b3: PUSH0 000021b4: MLOAD 000021b5: PUSH1 0x20 000021b7: PUSH2 0x4ce2 000021ba: PUSH0 000021bb: CODECOPY 000021bc: PUSH0 000021bd: MLOAD 000021be: SWAP1 000021bf: PUSH0 000021c0: MSTORE 000021c1: SLOAD 000021c2: PUSH2 0x21ca 000021c5: DUP2 000021c6: PUSH2 0x32e7 000021c9: JUMP 000021ca: JUMPDEST 000021cb: DUP1 000021cc: DUP5 000021cd: MSTORE 000021ce: SWAP1 000021cf: PUSH1 0x01 000021d1: DUP2 000021d2: AND 000021d3: SWAP1 000021d4: DUP2 000021d5: ISZERO 000021d6: PUSH2 0x06ed 000021d9: JUMPI 000021da: POP 000021db: PUSH1 0x01 000021dd: EQ 000021de: PUSH2 0x21f1 000021e1: JUMPI 000021e2: PUSH2 0x067f 000021e5: DUP4 000021e6: PUSH2 0x0673 000021e9: DUP2 000021ea: DUP6 000021eb: SUB 000021ec: DUP3 000021ed: PUSH2 0x0ee8 000021f0: JUMP 000021f1: JUMPDEST 000021f2: PUSH0 000021f3: MLOAD 000021f4: PUSH1 0x20 000021f6: PUSH2 0x4ce2 000021f9: PUSH0 000021fa: CODECOPY 000021fb: PUSH0 000021fc: MLOAD 000021fd: SWAP1 000021fe: PUSH0 000021ff: MSTORE 00002200: PUSH0 00002201: SWAP1 00002202: DUP2 00002203: MSTORE 00002204: PUSH32 0x46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa 00002225: SWAP4 00002226: SWAP3 00002227: POP 00002228: SWAP1 00002229: JUMPDEST 0000222a: DUP1 0000222b: DUP3 0000222c: LT 0000222d: PUSH2 0x2241 00002230: JUMPI 00002231: POP 00002232: SWAP1 00002233: SWAP2 00002234: POP 00002235: DUP2 00002236: ADD 00002237: PUSH1 0x20 00002239: ADD 0000223a: PUSH2 0x0673 0000223d: PUSH2 0x0663 00002240: JUMP 00002241: JUMPDEST 00002242: SWAP2 00002243: SWAP3 00002244: PUSH1 0x01 00002246: DUP2 00002247: PUSH1 0x20 00002249: SWAP3 0000224a: SLOAD 0000224b: DUP4 0000224c: DUP6 0000224d: DUP9 0000224e: ADD 0000224f: ADD 00002250: MSTORE 00002251: ADD 00002252: SWAP2 00002253: ADD 00002254: SWAP1 00002255: SWAP3 00002256: SWAP2 00002257: PUSH2 0x2229 0000225a: JUMP 0000225b: JUMPDEST 0000225c: CALLVALUE 0000225d: PUSH2 0x05f1 00002260: JUMPI 00002261: PUSH1 0x20 00002263: CALLDATASIZE 00002264: PUSH1 0x03 00002266: NOT 00002267: ADD 00002268: SLT 00002269: PUSH2 0x05f1 0000226c: JUMPI 0000226d: PUSH2 0x0987 00002270: PUSH1 0x04 00002272: CALLDATALOAD 00002273: PUSH2 0x227b 00002276: DUP2 00002277: PUSH2 0x0737 0000227a: JUMP 0000227b: JUMPDEST 0000227c: PUSH1 0x40 0000227e: MLOAD 0000227f: PUSH4 0x26229931 00002284: PUSH1 0xe2 00002286: SHL 00002287: PUSH1 0x20 00002289: DUP3 0000228a: ADD 0000228b: MSTORE 0000228c: PUSH1 0x01 0000228e: PUSH1 0x01 00002290: PUSH1 0xa0 00002292: SHL 00002293: SUB 00002294: SWAP1 00002295: SWAP2 00002296: AND 00002297: PUSH1 0x24 00002299: DUP1 0000229a: DUP4 0000229b: ADD 0000229c: SWAP2 0000229d: SWAP1 0000229e: SWAP2 0000229f: MSTORE 000022a0: DUP2 000022a1: MSTORE 000022a2: PUSH2 0x1596 000022a5: PUSH1 0x44 000022a7: DUP3 000022a8: PUSH2 0x0ee8 000022ab: JUMP 000022ac: JUMPDEST 000022ad: CALLVALUE 000022ae: PUSH2 0x05f1 000022b1: JUMPI 000022b2: PUSH1 0x20 000022b4: CALLDATASIZE 000022b5: PUSH1 0x03 000022b7: NOT 000022b8: ADD 000022b9: SLT 000022ba: PUSH2 0x05f1 000022bd: JUMPI 000022be: PUSH1 0x04 000022c0: CALLDATALOAD 000022c1: PUSH2 0x22c9 000022c4: DUP2 000022c5: PUSH2 0x0737 000022c8: JUMP 000022c9: JUMPDEST 000022ca: PUSH2 0x22d1 000022cd: PUSH2 0x4162 000022d0: JUMP 000022d1: JUMPDEST 000022d2: PUSH0 000022d3: SLOAD 000022d4: PUSH1 0x01 000022d6: PUSH1 0x01 000022d8: PUSH1 0xa0 000022da: SHL 000022db: SUB 000022dc: AND 000022dd: PUSH1 0x01 000022df: PUSH1 0x01 000022e1: PUSH1 0xa0 000022e3: SHL 000022e4: SUB 000022e5: DUP2 000022e6: AND 000022e7: PUSH1 0x01 000022e9: PUSH1 0x01 000022eb: PUSH1 0xa0 000022ed: SHL 000022ee: SUB 000022ef: DUP4 000022f0: AND 000022f1: EQ 000022f2: PUSH2 0x0a28 000022f5: JUMPI 000022f6: PUSH1 0x07 000022f8: SLOAD 000022f9: PUSH1 0xa0 000022fb: SHR 000022fc: PUSH1 0x01 000022fe: PUSH1 0x01 00002300: PUSH1 0x40 00002302: SHL 00002303: SUB 00002304: AND 00002305: PUSH2 0x0a19 00002308: JUMPI 00002309: PUSH1 0x01 0000230b: PUSH1 0x01 0000230d: PUSH1 0xa0 0000230f: SHL 00002310: SUB 00002311: AND 00002312: PUSH2 0x231e 00002315: JUMPI 00002316: PUSH2 0x0987 00002319: SWAP1 0000231a: PUSH2 0x444a 0000231d: JUMP 0000231e: JUMPDEST 0000231f: PUSH32 0x14279aa98f18dee77127cf315bcced708f417d07da24929c2f6460b481d0c13e 00002340: SWAP1 00002341: PUSH2 0x234c 00002344: PUSH1 0x08 00002346: SLOAD 00002347: DUP3 00002348: PUSH2 0x43f4 0000234b: JUMP 0000234c: JUMPDEST 0000234d: PUSH1 0x07 0000234f: SLOAD 00002350: PUSH1 0xa0 00002352: SHR 00002353: PUSH1 0x01 00002355: PUSH1 0x01 00002357: PUSH1 0x40 00002359: SHL 0000235a: SUB 0000235b: AND 0000235c: PUSH1 0x40 0000235e: DUP1 0000235f: MLOAD 00002360: PUSH1 0x01 00002362: PUSH1 0x01 00002364: PUSH1 0xa0 00002366: SHL 00002367: SUB 00002368: SWAP1 00002369: SWAP4 0000236a: AND 0000236b: DUP4 0000236c: MSTORE 0000236d: PUSH1 0x01 0000236f: PUSH1 0x01 00002371: PUSH1 0x40 00002373: SHL 00002374: SUB 00002375: SWAP1 00002376: SWAP2 00002377: AND 00002378: PUSH1 0x20 0000237a: DUP4 0000237b: ADD 0000237c: MSTORE 0000237d: DUP2 0000237e: SWAP1 0000237f: DUP2 00002380: ADD 00002381: PUSH2 0x1972 00002384: JUMP 00002385: JUMPDEST 00002386: CALLVALUE 00002387: PUSH2 0x05f1 0000238a: JUMPI 0000238b: PUSH1 0x20 0000238d: CALLDATASIZE 0000238e: PUSH1 0x03 00002390: NOT 00002391: ADD 00002392: SLT 00002393: PUSH2 0x05f1 00002396: JUMPI 00002397: PUSH1 0x04 00002399: CALLDATALOAD 0000239a: PUSH1 0x01 0000239c: PUSH1 0x01 0000239e: PUSH1 0x40 000023a0: SHL 000023a1: SUB 000023a2: DUP2 000023a3: GT 000023a4: PUSH2 0x05f1 000023a7: JUMPI 000023a8: PUSH2 0x0160 000023ab: PUSH1 0x03 000023ad: NOT 000023ae: DUP3 000023af: CALLDATASIZE 000023b0: SUB 000023b1: ADD 000023b2: SLT 000023b3: PUSH2 0x05f1 000023b6: JUMPI 000023b7: PUSH2 0x23be 000023ba: PUSH2 0x0f19 000023bd: JUMP 000023be: JUMPDEST 000023bf: PUSH2 0x23ca 000023c2: DUP3 000023c3: PUSH1 0x04 000023c5: ADD 000023c6: PUSH2 0x0748 000023c9: JUMP 000023ca: JUMPDEST 000023cb: DUP2 000023cc: MSTORE 000023cd: PUSH2 0x23d8 000023d0: PUSH1 0x24 000023d2: DUP4 000023d3: ADD 000023d4: PUSH2 0x0748 000023d7: JUMP 000023d8: JUMPDEST 000023d9: PUSH1 0x20 000023db: DUP3 000023dc: ADD 000023dd: MSTORE 000023de: PUSH2 0x23e9 000023e1: PUSH1 0x44 000023e3: DUP4 000023e4: ADD 000023e5: PUSH2 0x0748 000023e8: JUMP 000023e9: JUMPDEST 000023ea: PUSH1 0x40 000023ec: DUP3 000023ed: ADD 000023ee: MSTORE 000023ef: PUSH1 0x64 000023f1: DUP3 000023f2: ADD 000023f3: CALLDATALOAD 000023f4: PUSH1 0x60 000023f6: DUP3 000023f7: ADD 000023f8: MSTORE 000023f9: PUSH2 0x2404 000023fc: PUSH1 0x84 000023fe: DUP4 000023ff: ADD 00002400: PUSH2 0x0748 00002403: JUMP 00002404: JUMPDEST 00002405: PUSH1 0x80 00002407: DUP3 00002408: ADD 00002409: MSTORE 0000240a: PUSH1 0xa4 0000240c: DUP3 0000240d: ADD 0000240e: CALLDATALOAD 0000240f: PUSH1 0xa0 00002411: DUP3 00002412: ADD 00002413: MSTORE 00002414: PUSH1 0xc4 00002416: DUP3 00002417: ADD 00002418: CALLDATALOAD 00002419: PUSH1 0x01 0000241b: PUSH1 0x01 0000241d: PUSH1 0x40 0000241f: SHL 00002420: SUB 00002421: DUP2 00002422: GT 00002423: PUSH2 0x05f1 00002426: JUMPI 00002427: PUSH2 0x2436 0000242a: SWAP1 0000242b: PUSH1 0x04 0000242d: CALLDATASIZE 0000242e: SWAP2 0000242f: DUP6 00002430: ADD 00002431: ADD 00002432: PUSH2 0x1a0a 00002435: JUMP 00002436: JUMPDEST 00002437: PUSH1 0xc0 00002439: DUP3 0000243a: ADD 0000243b: MSTORE 0000243c: PUSH1 0xe4 0000243e: DUP3 0000243f: ADD 00002440: CALLDATALOAD 00002441: SWAP2 00002442: PUSH1 0x01 00002444: PUSH1 0x01 00002446: PUSH1 0x40 00002448: SHL 00002449: SUB 0000244a: DUP4 0000244b: GT 0000244c: PUSH2 0x05f1 0000244f: JUMPI 00002450: PUSH2 0x0144 00002453: PUSH2 0x249a 00002456: SWAP2 00002457: PUSH2 0x2469 0000245a: PUSH2 0x0987 0000245d: SWAP6 0000245e: PUSH1 0x04 00002460: CALLDATASIZE 00002461: SWAP2 00002462: DUP5 00002463: ADD 00002464: ADD 00002465: PUSH2 0x1a0a 00002468: JUMP 00002469: JUMPDEST 0000246a: PUSH1 0xe0 0000246c: DUP6 0000246d: ADD 0000246e: MSTORE 0000246f: PUSH2 0x247b 00002472: PUSH2 0x0104 00002475: DUP3 00002476: ADD 00002477: PUSH2 0x1a66 0000247a: JUMP 0000247b: JUMPDEST 0000247c: PUSH2 0x0100 0000247f: DUP6 00002480: ADD 00002481: MSTORE 00002482: PUSH2 0x248e 00002485: PUSH2 0x0124 00002488: DUP3 00002489: ADD 0000248a: PUSH2 0x1a66 0000248d: JUMP 0000248e: JUMPDEST 0000248f: PUSH2 0x0120 00002492: DUP6 00002493: ADD 00002494: MSTORE 00002495: ADD 00002496: PUSH2 0x1a66 00002499: JUMP 0000249a: JUMPDEST 0000249b: PUSH2 0x0140 0000249e: DUP3 0000249f: ADD 000024a0: MSTORE 000024a1: PUSH2 0x37a7 000024a4: JUMP 000024a5: JUMPDEST 000024a6: CALLVALUE 000024a7: PUSH2 0x05f1 000024aa: JUMPI 000024ab: PUSH0 000024ac: CALLDATASIZE 000024ad: PUSH1 0x03 000024af: NOT 000024b0: ADD 000024b1: SLT 000024b2: PUSH2 0x05f1 000024b5: JUMPI 000024b6: PUSH4 0x580b4feb 000024bb: PUSH1 0xe1 000024bd: SHL 000024be: PUSH0 000024bf: MSTORE 000024c0: PUSH1 0x04 000024c2: PUSH0 000024c3: REVERT 000024c4: JUMPDEST 000024c5: CALLVALUE 000024c6: PUSH2 0x05f1 000024c9: JUMPI 000024ca: PUSH0 000024cb: CALLDATASIZE 000024cc: PUSH1 0x03 000024ce: NOT 000024cf: ADD 000024d0: SLT 000024d1: PUSH2 0x05f1 000024d4: JUMPI 000024d5: PUSH1 0x07 000024d7: SLOAD 000024d8: PUSH1 0x01 000024da: PUSH1 0x01 000024dc: PUSH1 0x40 000024de: SHL 000024df: SUB 000024e0: DUP2 000024e1: PUSH1 0xa0 000024e3: SHR 000024e4: AND 000024e5: DUP1 000024e6: ISZERO 000024e7: PUSH2 0x0ab8 000024ea: JUMPI 000024eb: TIMESTAMP 000024ec: LT 000024ed: PUSH2 0x0aa9 000024f0: JUMPI 000024f1: PUSH2 0x0987 000024f4: SWAP1 000024f5: PUSH1 0x01 000024f7: PUSH1 0x01 000024f9: PUSH1 0xa0 000024fb: SHL 000024fc: SUB 000024fd: AND 000024fe: PUSH2 0x444a 00002501: JUMP 00002502: JUMPDEST 00002503: CALLVALUE 00002504: PUSH2 0x05f1 00002507: JUMPI 00002508: PUSH1 0x40 0000250a: CALLDATASIZE 0000250b: PUSH1 0x03 0000250d: NOT 0000250e: ADD 0000250f: SLT 00002510: PUSH2 0x05f1 00002513: JUMPI 00002514: PUSH2 0x0bf3 00002517: PUSH1 0x04 00002519: CALLDATALOAD 0000251a: PUSH2 0x2522 0000251d: DUP2 0000251e: PUSH2 0x0737 00002521: JUMP 00002522: JUMPDEST 00002523: PUSH1 0x24 00002525: CALLDATALOAD 00002526: SWAP1 00002527: CALLER 00002528: PUSH2 0x403e 0000252b: JUMP 0000252c: JUMPDEST 0000252d: CALLVALUE 0000252e: PUSH2 0x05f1 00002531: JUMPI 00002532: PUSH1 0x20 00002534: CALLDATASIZE 00002535: PUSH1 0x03 00002537: NOT 00002538: ADD 00002539: SLT 0000253a: PUSH2 0x05f1 0000253d: JUMPI 0000253e: PUSH1 0x04 00002540: CALLDATALOAD 00002541: PUSH1 0x01 00002543: PUSH1 0x01 00002545: PUSH1 0xb8 00002547: SHL 00002548: SUB 00002549: DUP2 0000254a: AND 0000254b: DUP2 0000254c: SUB 0000254d: PUSH2 0x05f1 00002550: JUMPI 00002551: PUSH1 0x01 00002553: SLOAD 00002554: PUSH1 0x01 00002556: PUSH1 0x01 00002558: PUSH1 0xa0 0000255a: SHL 0000255b: SUB 0000255c: AND 0000255d: CALLER 0000255e: EQ 0000255f: ISZERO 00002560: DUP1 00002561: PUSH2 0x2572 00002564: JUMPI 00002565: JUMPDEST 00002566: PUSH2 0x0a3e 00002569: JUMPI 0000256a: PUSH2 0x0987 0000256d: SWAP1 0000256e: PUSH2 0x39bd 00002571: JUMP 00002572: JUMPDEST 00002573: POP 00002574: PUSH0 00002575: MLOAD 00002576: PUSH1 0x20 00002578: PUSH2 0x4d02 0000257b: PUSH0 0000257c: CODECOPY 0000257d: PUSH0 0000257e: MLOAD 0000257f: SWAP1 00002580: PUSH0 00002581: MSTORE 00002582: SLOAD 00002583: PUSH1 0x01 00002585: PUSH1 0x01 00002587: PUSH1 0xa0 00002589: SHL 0000258a: SUB 0000258b: AND 0000258c: CALLER 0000258d: EQ 0000258e: ISZERO 0000258f: PUSH2 0x2565 00002592: JUMP 00002593: JUMPDEST 00002594: CALLVALUE 00002595: PUSH2 0x05f1 00002598: JUMPI 00002599: PUSH0 0000259a: CALLDATASIZE 0000259b: PUSH1 0x03 0000259d: NOT 0000259e: ADD 0000259f: SLT 000025a0: PUSH2 0x05f1 000025a3: JUMPI 000025a4: PUSH0 000025a5: SLOAD 000025a6: PUSH1 0x01 000025a8: PUSH1 0x01 000025aa: PUSH1 0xa0 000025ac: SHL 000025ad: SUB 000025ae: AND 000025af: CALLER 000025b0: EQ 000025b1: ISZERO 000025b2: DUP1 000025b3: PUSH2 0x25e6 000025b6: JUMPI 000025b7: JUMPDEST 000025b8: PUSH2 0x0b83 000025bb: JUMPI 000025bc: PUSH0 000025bd: PUSH1 0x13 000025bf: SSTORE 000025c0: CALLER 000025c1: PUSH32 0x9a72a70252c2d4b0a5c28053ff51d9e11d2574f655c4149384fb9e7679447af9 000025e2: PUSH0 000025e3: DUP1 000025e4: LOG2 000025e5: STOP 000025e6: JUMPDEST 000025e7: POP 000025e8: PUSH0 000025e9: MLOAD 000025ea: PUSH1 0x20 000025ec: PUSH2 0x4d02 000025ef: PUSH0 000025f0: CODECOPY 000025f1: PUSH0 000025f2: MLOAD 000025f3: SWAP1 000025f4: PUSH0 000025f5: MSTORE 000025f6: SLOAD 000025f7: PUSH1 0x01 000025f9: PUSH1 0x01 000025fb: PUSH1 0xa0 000025fd: SHL 000025fe: SUB 000025ff: AND 00002600: CALLER 00002601: EQ 00002602: ISZERO 00002603: PUSH2 0x25b7 00002606: JUMP 00002607: JUMPDEST 00002608: CALLVALUE 00002609: PUSH2 0x05f1 0000260c: JUMPI 0000260d: PUSH1 0x80 0000260f: CALLDATASIZE 00002610: PUSH1 0x03 00002612: NOT 00002613: ADD 00002614: SLT 00002615: PUSH2 0x05f1 00002618: JUMPI 00002619: PUSH1 0x04 0000261b: CALLDATALOAD 0000261c: PUSH2 0x2624 0000261f: DUP2 00002620: PUSH2 0x0737 00002623: JUMP 00002624: JUMPDEST 00002625: PUSH1 0x24 00002627: CALLDATALOAD 00002628: PUSH1 0x44 0000262a: CALLDATALOAD 0000262b: PUSH1 0x64 0000262d: CALLDATALOAD 0000262e: PUSH1 0x01 00002630: PUSH1 0x01 00002632: PUSH1 0x40 00002634: SHL 00002635: SUB 00002636: DUP2 00002637: GT 00002638: PUSH2 0x05f1 0000263b: JUMPI 0000263c: PUSH2 0x2649 0000263f: SWAP1 00002640: CALLDATASIZE 00002641: SWAP1 00002642: PUSH1 0x04 00002644: ADD 00002645: PUSH2 0x1225 00002648: JUMP 00002649: JUMPDEST 0000264a: SWAP3 0000264b: PUSH1 0x01 0000264d: DUP1 0000264e: PUSH1 0xa0 00002650: SHL 00002651: SUB 00002652: PUSH1 0x01 00002654: SLOAD 00002655: AND 00002656: CALLER 00002657: EQ 00002658: ISZERO 00002659: DUP1 0000265a: PUSH2 0x2722 0000265d: JUMPI 0000265e: JUMPDEST 0000265f: PUSH2 0x0a3e 00002662: JUMPI 00002663: PUSH1 0x01 00002665: PUSH1 0x01 00002667: PUSH1 0xa0 00002669: SHL 0000266a: SUB 0000266b: AND 0000266c: PUSH0 0000266d: DUP2 0000266e: DUP2 0000266f: MSTORE 00002670: PUSH1 0x03 00002672: PUSH1 0x20 00002674: MSTORE 00002675: PUSH1 0x40 00002677: SWAP1 00002678: KECCAK256 00002679: SLOAD 0000267a: PUSH1 0xff 0000267c: AND 0000267d: ISZERO 0000267e: PUSH2 0x2714 00002681: JUMPI 00002682: PUSH2 0x1596 00002685: PUSH2 0x26fa 00002688: SWAP4 00002689: PUSH2 0x1588 0000268c: PUSH2 0x067f 0000268f: SWAP7 00002690: PUSH2 0x26eb 00002693: SWAP6 00002694: PUSH2 0x269b 00002697: PUSH2 0x4182 0000269a: JUMP 0000269b: JUMPDEST 0000269c: PUSH1 0x01 0000269e: DUP1 0000269f: PUSH1 0xa0 000026a1: SHL 000026a2: SUB 000026a3: PUSH0 000026a4: MLOAD 000026a5: PUSH1 0x20 000026a7: PUSH2 0x4d82 000026aa: PUSH0 000026ab: CODECOPY 000026ac: PUSH0 000026ad: MLOAD 000026ae: SWAP1 000026af: PUSH0 000026b0: MSTORE 000026b1: SLOAD 000026b2: AND 000026b3: SWAP4 000026b4: PUSH1 0x40 000026b6: MLOAD 000026b7: SWAP7 000026b8: DUP8 000026b9: SWAP6 000026ba: PUSH4 0xdb449c91 000026bf: PUSH1 0xe0 000026c1: SHL 000026c2: PUSH1 0x20 000026c4: DUP9 000026c5: ADD 000026c6: MSTORE 000026c7: PUSH1 0x24 000026c9: DUP8 000026ca: ADD 000026cb: MSTORE 000026cc: PUSH1 0x44 000026ce: DUP7 000026cf: ADD 000026d0: MSTORE 000026d1: PUSH1 0x64 000026d3: DUP6 000026d4: ADD 000026d5: MSTORE 000026d6: PUSH1 0x84 000026d8: DUP5 000026d9: ADD 000026da: MSTORE 000026db: PUSH1 0xa0 000026dd: PUSH1 0xa4 000026df: DUP5 000026e0: ADD 000026e1: MSTORE 000026e2: PUSH1 0xc4 000026e4: DUP4 000026e5: ADD 000026e6: SWAP1 000026e7: PUSH2 0x35e9 000026ea: JUMP 000026eb: JUMPDEST 000026ec: PUSH1 0x20 000026ee: DUP1 000026ef: DUP3 000026f0: MLOAD 000026f1: DUP4 000026f2: ADD 000026f3: ADD 000026f4: SWAP2 000026f5: ADD 000026f6: PUSH2 0x3ab3 000026f9: JUMP 000026fa: JUMPDEST 000026fb: PUSH1 0x40 000026fd: MLOAD 000026fe: PUSH1 0x01 00002700: PUSH1 0x01 00002702: PUSH1 0xa0 00002704: SHL 00002705: SUB 00002706: SWAP1 00002707: SWAP2 00002708: AND 00002709: DUP2 0000270a: MSTORE 0000270b: SWAP1 0000270c: DUP2 0000270d: SWAP1 0000270e: PUSH1 0x20 00002710: DUP3 00002711: ADD 00002712: SWAP1 00002713: JUMP 00002714: JUMPDEST 00002715: PUSH3 0x809237 00002719: PUSH1 0xe3 0000271b: SHL 0000271c: PUSH0 0000271d: MSTORE 0000271e: PUSH1 0x04 00002720: PUSH0 00002721: REVERT 00002722: JUMPDEST 00002723: POP 00002724: PUSH0 00002725: MLOAD 00002726: PUSH1 0x20 00002728: PUSH2 0x4d02 0000272b: PUSH0 0000272c: CODECOPY 0000272d: PUSH0 0000272e: MLOAD 0000272f: SWAP1 00002730: PUSH0 00002731: MSTORE 00002732: SLOAD 00002733: PUSH1 0x01 00002735: PUSH1 0x01 00002737: PUSH1 0xa0 00002739: SHL 0000273a: SUB 0000273b: AND 0000273c: CALLER 0000273d: EQ 0000273e: ISZERO 0000273f: PUSH2 0x265e 00002742: JUMP 00002743: JUMPDEST 00002744: CALLVALUE 00002745: PUSH2 0x05f1 00002748: JUMPI 00002749: PUSH2 0x2751 0000274c: CALLDATASIZE 0000274d: PUSH2 0x08d4 00002750: JUMP 00002751: JUMPDEST 00002752: SWAP1 00002753: PUSH2 0x275a 00002756: PUSH2 0x4162 00002759: JUMP 0000275a: JUMPDEST 0000275b: PUSH1 0x01 0000275d: PUSH1 0x01 0000275f: PUSH1 0xa0 00002761: SHL 00002762: SUB 00002763: AND 00002764: PUSH0 00002765: DUP2 00002766: DUP2 00002767: MSTORE 00002768: PUSH1 0x02 0000276a: PUSH1 0x20 0000276c: MSTORE 0000276d: PUSH1 0x40 0000276f: SWAP1 00002770: KECCAK256 00002771: SLOAD 00002772: SWAP1 00002773: SWAP2 00002774: DUP1 00002775: ISZERO 00002776: ISZERO 00002777: SWAP2 00002778: PUSH1 0xff 0000277a: AND 0000277b: ISZERO 0000277c: ISZERO 0000277d: DUP3 0000277e: EQ 0000277f: PUSH2 0x0a28 00002782: JUMPI 00002783: PUSH32 0x74dc60cbc81a9472d04ad1d20e151d369c41104d655ed3f2f3091166a502cd8d 000027a4: SWAP2 000027a5: PUSH2 0x27c6 000027a8: PUSH1 0x20 000027aa: SWAP3 000027ab: DUP6 000027ac: PUSH0 000027ad: MSTORE 000027ae: PUSH1 0x02 000027b0: DUP5 000027b1: MSTORE 000027b2: PUSH1 0x40 000027b4: PUSH0 000027b5: KECCAK256 000027b6: SWAP1 000027b7: PUSH1 0xff 000027b9: DUP1 000027ba: NOT 000027bb: DUP4 000027bc: SLOAD 000027bd: AND 000027be: SWAP2 000027bf: ISZERO 000027c0: ISZERO 000027c1: AND 000027c2: OR 000027c3: SWAP1 000027c4: SSTORE 000027c5: JUMP 000027c6: JUMPDEST 000027c7: PUSH1 0x40 000027c9: MLOAD 000027ca: SWAP1 000027cb: DUP2 000027cc: MSTORE 000027cd: LOG2 000027ce: STOP 000027cf: JUMPDEST 000027d0: CALLVALUE 000027d1: PUSH2 0x05f1 000027d4: JUMPI 000027d5: PUSH1 0x20 000027d7: CALLDATASIZE 000027d8: PUSH1 0x03 000027da: NOT 000027db: ADD 000027dc: SLT 000027dd: PUSH2 0x05f1 000027e0: JUMPI 000027e1: PUSH1 0x20 000027e3: PUSH2 0x072f 000027e6: PUSH1 0x04 000027e8: CALLDATALOAD 000027e9: PUSH2 0x3cd4 000027ec: JUMP 000027ed: JUMPDEST 000027ee: PUSH1 0x60 000027f0: SWAP1 000027f1: PUSH1 0x03 000027f3: NOT 000027f4: ADD 000027f5: SLT 000027f6: PUSH2 0x05f1 000027f9: JUMPI 000027fa: PUSH1 0x04 000027fc: CALLDATALOAD 000027fd: SWAP1 000027fe: PUSH1 0x24 00002800: CALLDATALOAD 00002801: PUSH2 0x2809 00002804: DUP2 00002805: PUSH2 0x0737 00002808: JUMP 00002809: JUMPDEST 0000280a: SWAP1 0000280b: PUSH1 0x44 0000280d: CALLDATALOAD 0000280e: PUSH2 0x0fc7 00002811: DUP2 00002812: PUSH2 0x0737 00002815: JUMP 00002816: JUMPDEST 00002817: CALLVALUE 00002818: PUSH2 0x05f1 0000281b: JUMPI 0000281c: PUSH2 0x2824 0000281f: CALLDATASIZE 00002820: PUSH2 0x27ed 00002823: JUMP 00002824: JUMPDEST 00002825: PUSH2 0x282d 00002828: DUP2 00002829: PUSH2 0x3aee 0000282c: JUMP 0000282d: JUMPDEST 0000282e: DUP1 0000282f: DUP5 00002830: GT 00002831: PUSH2 0x299c 00002834: JUMPI 00002835: POP 00002836: PUSH2 0x283e 00002839: DUP4 0000283a: PUSH2 0x3d18 0000283d: JUMP 0000283e: JUMPDEST 0000283f: SWAP2 00002840: PUSH2 0x2847 00002843: PUSH2 0x4288 00002846: JUMP 00002847: JUMPDEST 00002848: PUSH0 00002849: MLOAD 0000284a: PUSH1 0x20 0000284c: PUSH2 0x4d42 0000284f: PUSH0 00002850: CODECOPY 00002851: PUSH0 00002852: MLOAD 00002853: SWAP1 00002854: PUSH0 00002855: MSTORE 00002856: TLOAD 00002857: SWAP4 00002858: DUP5 00002859: ISZERO 0000285a: ISZERO 0000285b: DUP1 0000285c: PUSH2 0x2985 0000285f: JUMPI 00002860: JUMPDEST 00002861: PUSH2 0x2961 00002864: JUMPI 00002865: PUSH2 0x067f 00002868: SWAP5 00002869: POP 0000286a: PUSH0 0000286b: MLOAD 0000286c: PUSH1 0x20 0000286e: PUSH2 0x4ca2 00002871: PUSH0 00002872: CODECOPY 00002873: PUSH0 00002874: MLOAD 00002875: SWAP1 00002876: PUSH0 00002877: MSTORE 00002878: PUSH0 00002879: MLOAD 0000287a: PUSH1 0x20 0000287c: PUSH2 0x4d42 0000287f: PUSH0 00002880: CODECOPY 00002881: PUSH0 00002882: MLOAD 00002883: SWAP1 00002884: PUSH0 00002885: MSTORE 00002886: TSTORE 00002887: PUSH1 0x01 00002889: PUSH1 0x01 0000288b: PUSH1 0xa0 0000288d: SHL 0000288e: SUB 0000288f: DUP4 00002890: AND 00002891: SWAP3 00002892: PUSH2 0x28f5 00002895: SWAP1 00002896: DUP6 00002897: SWAP1 00002898: CALLER 00002899: DUP7 0000289a: SWAP1 0000289b: SUB 0000289c: PUSH2 0x2951 0000289f: JUMPI 000028a0: JUMPDEST 000028a1: PUSH0 000028a2: MLOAD 000028a3: PUSH1 0x20 000028a5: PUSH2 0x4d82 000028a8: PUSH0 000028a9: CODECOPY 000028aa: PUSH0 000028ab: MLOAD 000028ac: SWAP1 000028ad: PUSH0 000028ae: MSTORE 000028af: SLOAD 000028b0: PUSH1 0x40 000028b2: MLOAD 000028b3: PUSH4 0x7bd58ea9 000028b8: PUSH1 0xe0 000028ba: SHL 000028bb: PUSH1 0x20 000028bd: DUP3 000028be: ADD 000028bf: MSTORE 000028c0: PUSH1 0x01 000028c2: PUSH1 0x01 000028c4: PUSH1 0xa0 000028c6: SHL 000028c7: SUB 000028c8: SWAP2 000028c9: DUP3 000028ca: AND 000028cb: PUSH1 0x24 000028cd: DUP3 000028ce: ADD 000028cf: MSTORE 000028d0: SWAP1 000028d1: DUP7 000028d2: AND 000028d3: PUSH1 0x44 000028d5: DUP3 000028d6: ADD 000028d7: MSTORE 000028d8: PUSH1 0x64 000028da: DUP2 000028db: ADD 000028dc: DUP6 000028dd: SWAP1 000028de: MSTORE 000028df: PUSH2 0x28ef 000028e2: SWAP1 000028e3: PUSH2 0x1596 000028e6: DUP2 000028e7: PUSH1 0x84 000028e9: DUP2 000028ea: ADD 000028eb: PUSH2 0x1588 000028ee: JUMP 000028ef: JUMPDEST 000028f0: POP 000028f1: PUSH2 0x42c0 000028f4: JUMP 000028f5: JUMPDEST 000028f6: PUSH1 0x40 000028f8: DUP1 000028f9: MLOAD 000028fa: SWAP2 000028fb: DUP3 000028fc: MSTORE 000028fd: PUSH1 0x20 000028ff: DUP3 00002900: ADD 00002901: DUP6 00002902: SWAP1 00002903: MSTORE 00002904: PUSH1 0x01 00002906: PUSH1 0x01 00002908: PUSH1 0xa0 0000290a: SHL 0000290b: SUB 0000290c: SWAP1 0000290d: SWAP3 0000290e: AND 0000290f: SWAP2 00002910: CALLER 00002911: SWAP2 00002912: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db 00002933: SWAP2 00002934: DUP2 00002935: SWAP1 00002936: DUP2 00002937: ADD 00002938: JUMPDEST 00002939: SUB 0000293a: SWAP1 0000293b: LOG4 0000293c: PUSH2 0x1602 0000293f: PUSH1 0x01 00002941: PUSH0 00002942: MLOAD 00002943: PUSH1 0x20 00002945: PUSH2 0x4dc2 00002948: PUSH0 00002949: CODECOPY 0000294a: PUSH0 0000294b: MLOAD 0000294c: SWAP1 0000294d: PUSH0 0000294e: MSTORE 0000294f: SSTORE 00002950: JUMP 00002951: JUMPDEST 00002952: PUSH2 0x295c 00002955: DUP3 00002956: CALLER 00002957: DUP4 00002958: PUSH2 0x3fc0 0000295b: JUMP 0000295c: JUMPDEST 0000295d: PUSH2 0x28a0 00002960: JUMP 00002961: JUMPDEST 00002962: DUP5 00002963: PUSH4 0xbeb4ce07 00002968: PUSH1 0xe0 0000296a: SHL 0000296b: PUSH0 0000296c: MSTORE 0000296d: PUSH0 0000296e: MLOAD 0000296f: PUSH1 0x20 00002971: PUSH2 0x4ca2 00002974: PUSH0 00002975: CODECOPY 00002976: PUSH0 00002977: MLOAD 00002978: SWAP1 00002979: PUSH0 0000297a: MSTORE 0000297b: PUSH1 0x04 0000297d: MSTORE 0000297e: PUSH1 0x24 00002980: MSTORE 00002981: PUSH1 0x44 00002983: PUSH0 00002984: REVERT 00002985: JUMPDEST 00002986: POP 00002987: PUSH0 00002988: MLOAD 00002989: PUSH1 0x20 0000298b: PUSH2 0x4ca2 0000298e: PUSH0 0000298f: CODECOPY 00002990: PUSH0 00002991: MLOAD 00002992: SWAP1 00002993: PUSH0 00002994: MSTORE 00002995: DUP6 00002996: EQ 00002997: ISZERO 00002998: PUSH2 0x2860 0000299b: JUMP 0000299c: JUMPDEST 0000299d: DUP4 0000299e: DUP3 0000299f: PUSH4 0x3fa733bb 000029a4: PUSH1 0xe2 000029a6: SHL 000029a7: PUSH0 000029a8: MSTORE 000029a9: PUSH1 0x01 000029ab: DUP1 000029ac: PUSH1 0xa0 000029ae: SHL 000029af: SUB 000029b0: AND 000029b1: PUSH1 0x04 000029b3: MSTORE 000029b4: PUSH1 0x24 000029b6: MSTORE 000029b7: PUSH1 0x44 000029b9: MSTORE 000029ba: PUSH1 0x64 000029bc: PUSH0 000029bd: REVERT 000029be: JUMPDEST 000029bf: CALLVALUE 000029c0: PUSH2 0x05f1 000029c3: JUMPI 000029c4: PUSH2 0x29cc 000029c7: CALLDATASIZE 000029c8: PUSH2 0x27ed 000029cb: JUMP 000029cc: JUMPDEST 000029cd: PUSH2 0x29d5 000029d0: DUP2 000029d1: PUSH2 0x366b 000029d4: JUMP 000029d5: JUMPDEST 000029d6: DUP1 000029d7: DUP5 000029d8: GT 000029d9: PUSH2 0x2b06 000029dc: JUMPI 000029dd: POP 000029de: PUSH2 0x29e6 000029e1: DUP4 000029e2: PUSH2 0x3c91 000029e5: JUMP 000029e6: JUMPDEST 000029e7: SWAP2 000029e8: PUSH2 0x29ef 000029eb: PUSH2 0x4288 000029ee: JUMP 000029ef: JUMPDEST 000029f0: PUSH0 000029f1: MLOAD 000029f2: PUSH1 0x20 000029f4: PUSH2 0x4d42 000029f7: PUSH0 000029f8: CODECOPY 000029f9: PUSH0 000029fa: MLOAD 000029fb: SWAP1 000029fc: PUSH0 000029fd: MSTORE 000029fe: TLOAD 000029ff: SWAP4 00002a00: DUP5 00002a01: ISZERO 00002a02: ISZERO 00002a03: DUP1 00002a04: PUSH2 0x2aef 00002a07: JUMPI 00002a08: JUMPDEST 00002a09: PUSH2 0x2961 00002a0c: JUMPI 00002a0d: PUSH2 0x067f 00002a10: SWAP5 00002a11: POP 00002a12: PUSH0 00002a13: MLOAD 00002a14: PUSH1 0x20 00002a16: PUSH2 0x4ca2 00002a19: PUSH0 00002a1a: CODECOPY 00002a1b: PUSH0 00002a1c: MLOAD 00002a1d: SWAP1 00002a1e: PUSH0 00002a1f: MSTORE 00002a20: PUSH0 00002a21: MLOAD 00002a22: PUSH1 0x20 00002a24: PUSH2 0x4d42 00002a27: PUSH0 00002a28: CODECOPY 00002a29: PUSH0 00002a2a: MLOAD 00002a2b: SWAP1 00002a2c: PUSH0 00002a2d: MSTORE 00002a2e: TSTORE 00002a2f: PUSH1 0x01 00002a31: PUSH1 0x01 00002a33: PUSH1 0xa0 00002a35: SHL 00002a36: SUB 00002a37: DUP4 00002a38: AND 00002a39: SWAP3 00002a3a: PUSH2 0x2a97 00002a3d: SWAP1 00002a3e: DUP3 00002a3f: SWAP1 00002a40: CALLER 00002a41: DUP7 00002a42: SWAP1 00002a43: SUB 00002a44: PUSH2 0x2adf 00002a47: JUMPI 00002a48: JUMPDEST 00002a49: PUSH0 00002a4a: MLOAD 00002a4b: PUSH1 0x20 00002a4d: PUSH2 0x4d82 00002a50: PUSH0 00002a51: CODECOPY 00002a52: PUSH0 00002a53: MLOAD 00002a54: SWAP1 00002a55: PUSH0 00002a56: MSTORE 00002a57: SLOAD 00002a58: PUSH1 0x40 00002a5a: MLOAD 00002a5b: PUSH4 0x7bd58ea9 00002a60: PUSH1 0xe0 00002a62: SHL 00002a63: PUSH1 0x20 00002a65: DUP3 00002a66: ADD 00002a67: MSTORE 00002a68: PUSH1 0x01 00002a6a: PUSH1 0x01 00002a6c: PUSH1 0xa0 00002a6e: SHL 00002a6f: SUB 00002a70: SWAP2 00002a71: DUP3 00002a72: AND 00002a73: PUSH1 0x24 00002a75: DUP3 00002a76: ADD 00002a77: MSTORE 00002a78: SWAP1 00002a79: DUP7 00002a7a: AND 00002a7b: PUSH1 0x44 00002a7d: DUP3 00002a7e: ADD 00002a7f: MSTORE 00002a80: PUSH1 0x64 00002a82: DUP2 00002a83: ADD 00002a84: DUP9 00002a85: SWAP1 00002a86: MSTORE 00002a87: PUSH2 0x28ef 00002a8a: SWAP1 00002a8b: PUSH2 0x1596 00002a8e: DUP2 00002a8f: PUSH1 0x84 00002a91: DUP2 00002a92: ADD 00002a93: PUSH2 0x1588 00002a96: JUMP 00002a97: JUMPDEST 00002a98: PUSH1 0x40 00002a9a: DUP1 00002a9b: MLOAD 00002a9c: DUP6 00002a9d: DUP2 00002a9e: MSTORE 00002a9f: PUSH1 0x20 00002aa1: DUP2 00002aa2: ADD 00002aa3: SWAP3 00002aa4: SWAP1 00002aa5: SWAP3 00002aa6: MSTORE 00002aa7: PUSH1 0x01 00002aa9: PUSH1 0x01 00002aab: PUSH1 0xa0 00002aad: SHL 00002aae: SUB 00002aaf: SWAP1 00002ab0: SWAP3 00002ab1: AND 00002ab2: SWAP2 00002ab3: CALLER 00002ab4: SWAP2 00002ab5: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db 00002ad6: SWAP2 00002ad7: DUP2 00002ad8: SWAP1 00002ad9: DUP2 00002ada: ADD 00002adb: PUSH2 0x2938 00002ade: JUMP 00002adf: JUMPDEST 00002ae0: PUSH2 0x2aea 00002ae3: DUP3 00002ae4: CALLER 00002ae5: DUP4 00002ae6: PUSH2 0x3fc0 00002ae9: JUMP 00002aea: JUMPDEST 00002aeb: PUSH2 0x2a48 00002aee: JUMP 00002aef: JUMPDEST 00002af0: POP 00002af1: PUSH0 00002af2: MLOAD 00002af3: PUSH1 0x20 00002af5: PUSH2 0x4ca2 00002af8: PUSH0 00002af9: CODECOPY 00002afa: PUSH0 00002afb: MLOAD 00002afc: SWAP1 00002afd: PUSH0 00002afe: MSTORE 00002aff: DUP6 00002b00: EQ 00002b01: ISZERO 00002b02: PUSH2 0x2a08 00002b05: JUMP 00002b06: JUMPDEST 00002b07: DUP4 00002b08: DUP3 00002b09: PUSH4 0x2e52afbb 00002b0e: PUSH1 0xe2 00002b10: SHL 00002b11: PUSH0 00002b12: MSTORE 00002b13: PUSH1 0x01 00002b15: DUP1 00002b16: PUSH1 0xa0 00002b18: SHL 00002b19: SUB 00002b1a: AND 00002b1b: PUSH1 0x04 00002b1d: MSTORE 00002b1e: PUSH1 0x24 00002b20: MSTORE 00002b21: PUSH1 0x44 00002b23: MSTORE 00002b24: PUSH1 0x64 00002b26: PUSH0 00002b27: REVERT 00002b28: JUMPDEST 00002b29: CALLVALUE 00002b2a: PUSH2 0x05f1 00002b2d: JUMPI 00002b2e: PUSH1 0x20 00002b30: CALLDATASIZE 00002b31: PUSH1 0x03 00002b33: NOT 00002b34: ADD 00002b35: SLT 00002b36: PUSH2 0x05f1 00002b39: JUMPI 00002b3a: PUSH2 0x2b44 00002b3d: PUSH1 0x04 00002b3f: CALLDATALOAD 00002b40: PUSH2 0x0737 00002b43: JUMP 00002b44: JUMPDEST 00002b45: PUSH1 0x20 00002b47: PUSH2 0x072f 00002b4a: PUSH2 0x3ac8 00002b4d: JUMP 00002b4e: JUMPDEST 00002b4f: CALLVALUE 00002b50: PUSH2 0x05f1 00002b53: JUMPI 00002b54: PUSH1 0x20 00002b56: CALLDATASIZE 00002b57: PUSH1 0x03 00002b59: NOT 00002b5a: ADD 00002b5b: SLT 00002b5c: PUSH2 0x05f1 00002b5f: JUMPI 00002b60: PUSH1 0x20 00002b62: PUSH2 0x072f 00002b65: PUSH1 0x04 00002b67: CALLDATALOAD 00002b68: PUSH2 0x3d5c 00002b6b: JUMP 00002b6c: JUMPDEST 00002b6d: CALLVALUE 00002b6e: PUSH2 0x05f1 00002b71: JUMPI 00002b72: PUSH0 00002b73: CALLDATASIZE 00002b74: PUSH1 0x03 00002b76: NOT 00002b77: ADD 00002b78: SLT 00002b79: PUSH2 0x05f1 00002b7c: JUMPI 00002b7d: PUSH0 00002b7e: SLOAD 00002b7f: PUSH1 0x01 00002b81: PUSH1 0x01 00002b83: PUSH1 0xa0 00002b85: SHL 00002b86: SUB 00002b87: AND 00002b88: CALLER 00002b89: EQ 00002b8a: ISZERO 00002b8b: DUP1 00002b8c: PUSH2 0x2bbf 00002b8f: JUMPI 00002b90: JUMPDEST 00002b91: PUSH2 0x0b83 00002b94: JUMPI 00002b95: PUSH0 00002b96: PUSH1 0x05 00002b98: SSTORE 00002b99: CALLER 00002b9a: PUSH32 0x921828337692c347c634c5d2aacbc7b756014674bd236f3cc2058d8e284a951b 00002bbb: PUSH0 00002bbc: DUP1 00002bbd: LOG2 00002bbe: STOP 00002bbf: JUMPDEST 00002bc0: POP 00002bc1: PUSH0 00002bc2: MLOAD 00002bc3: PUSH1 0x20 00002bc5: PUSH2 0x4d02 00002bc8: PUSH0 00002bc9: CODECOPY 00002bca: PUSH0 00002bcb: MLOAD 00002bcc: SWAP1 00002bcd: PUSH0 00002bce: MSTORE 00002bcf: SLOAD 00002bd0: PUSH1 0x01 00002bd2: PUSH1 0x01 00002bd4: PUSH1 0xa0 00002bd6: SHL 00002bd7: SUB 00002bd8: AND 00002bd9: CALLER 00002bda: EQ 00002bdb: ISZERO 00002bdc: PUSH2 0x2b90 00002bdf: JUMP 00002be0: JUMPDEST 00002be1: CALLVALUE 00002be2: PUSH2 0x05f1 00002be5: JUMPI 00002be6: PUSH0 00002be7: CALLDATASIZE 00002be8: PUSH1 0x03 00002bea: NOT 00002beb: ADD 00002bec: SLT 00002bed: PUSH2 0x05f1 00002bf0: JUMPI 00002bf1: PUSH1 0x06 00002bf3: SLOAD 00002bf4: DUP1 00002bf5: PUSH1 0xc0 00002bf7: SHR 00002bf8: DUP1 00002bf9: ISZERO 00002bfa: PUSH2 0x0ab8 00002bfd: JUMPI 00002bfe: TIMESTAMP 00002bff: LT 00002c00: PUSH2 0x0aa9 00002c03: JUMPI 00002c04: PUSH2 0x2c1e 00002c07: SWAP1 00002c08: PUSH2 0x2c19 00002c0b: SWAP1 00002c0c: PUSH1 0x01 00002c0e: PUSH1 0x01 00002c10: PUSH1 0xc0 00002c12: SHL 00002c13: SUB 00002c14: AND 00002c15: PUSH2 0x492e 00002c18: JUMP 00002c19: JUMPDEST 00002c1a: PUSH2 0x4875 00002c1d: JUMP 00002c1e: JUMPDEST 00002c1f: PUSH0 00002c20: PUSH1 0x06 00002c22: SSTORE 00002c23: PUSH1 0x01 00002c25: PUSH1 0x01 00002c27: PUSH1 0x40 00002c29: SHL 00002c2a: SUB 00002c2b: PUSH1 0x14 00002c2d: SLOAD 00002c2e: AND 00002c2f: PUSH1 0x40 00002c31: MLOAD 00002c32: SWAP1 00002c33: DUP2 00002c34: MSTORE 00002c35: PUSH32 0x20affe2401825617c69366f8c3a3493d9822d1021d0b3023c4e77ea5b3d0fbc5 00002c56: PUSH1 0x20 00002c58: CALLER 00002c59: SWAP3 00002c5a: LOG2 00002c5b: STOP 00002c5c: JUMPDEST 00002c5d: CALLVALUE 00002c5e: PUSH2 0x05f1 00002c61: JUMPI 00002c62: PUSH1 0x20 00002c64: CALLDATASIZE 00002c65: PUSH1 0x03 00002c67: NOT 00002c68: ADD 00002c69: SLT 00002c6a: PUSH2 0x05f1 00002c6d: JUMPI 00002c6e: PUSH1 0x20 00002c70: PUSH2 0x072f 00002c73: PUSH1 0x04 00002c75: CALLDATALOAD 00002c76: PUSH2 0x2c7e 00002c79: DUP2 00002c7a: PUSH2 0x0737 00002c7d: JUMP 00002c7e: JUMPDEST 00002c7f: PUSH2 0x3aee 00002c82: JUMP 00002c83: JUMPDEST 00002c84: CALLVALUE 00002c85: PUSH2 0x05f1 00002c88: JUMPI 00002c89: PUSH0 00002c8a: CALLDATASIZE 00002c8b: PUSH1 0x03 00002c8d: NOT 00002c8e: ADD 00002c8f: SLT 00002c90: PUSH2 0x05f1 00002c93: JUMPI 00002c94: PUSH2 0x2c9b 00002c97: PUSH2 0x339e 00002c9a: JUMP 00002c9b: JUMPDEST 00002c9c: POP 00002c9d: PUSH2 0x067f 00002ca0: PUSH1 0x40 00002ca2: MLOAD 00002ca3: PUSH2 0x2cab 00002ca6: DUP2 00002ca7: PUSH2 0x0eb2 00002caa: JUMP 00002cab: JUMPDEST 00002cac: PUSH1 0x12 00002cae: SLOAD 00002caf: PUSH1 0x01 00002cb1: PUSH1 0x01 00002cb3: PUSH1 0xc0 00002cb5: SHL 00002cb6: SUB 00002cb7: DUP2 00002cb8: AND 00002cb9: DUP1 00002cba: DUP4 00002cbb: MSTORE 00002cbc: PUSH1 0xc0 00002cbe: SWAP2 00002cbf: SWAP1 00002cc0: SWAP2 00002cc1: SHR 00002cc2: PUSH1 0x20 00002cc4: SWAP3 00002cc5: DUP4 00002cc6: ADD 00002cc7: SWAP1 00002cc8: DUP2 00002cc9: MSTORE 00002cca: PUSH1 0x40 00002ccc: DUP1 00002ccd: MLOAD 00002cce: SWAP3 00002ccf: DUP4 00002cd0: MSTORE 00002cd1: SWAP1 00002cd2: MLOAD 00002cd3: PUSH1 0x01 00002cd5: PUSH1 0x01 00002cd7: PUSH1 0x40 00002cd9: SHL 00002cda: SUB 00002cdb: AND 00002cdc: SWAP3 00002cdd: DUP3 00002cde: ADD 00002cdf: SWAP3 00002ce0: SWAP1 00002ce1: SWAP3 00002ce2: MSTORE 00002ce3: SWAP2 00002ce4: DUP3 00002ce5: SWAP2 00002ce6: DUP3 00002ce7: ADD 00002ce8: SWAP1 00002ce9: JUMP 00002cea: JUMPDEST 00002ceb: CALLVALUE 00002cec: PUSH2 0x05f1 00002cef: JUMPI 00002cf0: PUSH0 00002cf1: CALLDATASIZE 00002cf2: PUSH1 0x03 00002cf4: NOT 00002cf5: ADD 00002cf6: SLT 00002cf7: PUSH2 0x05f1 00002cfa: JUMPI 00002cfb: PUSH1 0x20 00002cfd: PUSH1 0x08 00002cff: SLOAD 00002d00: PUSH1 0x40 00002d02: MLOAD 00002d03: SWAP1 00002d04: DUP2 00002d05: MSTORE 00002d06: RETURN 00002d07: JUMPDEST 00002d08: CALLVALUE 00002d09: PUSH2 0x05f1 00002d0c: JUMPI 00002d0d: PUSH1 0x80 00002d0f: CALLDATASIZE 00002d10: PUSH1 0x03 00002d12: NOT 00002d13: ADD 00002d14: SLT 00002d15: PUSH2 0x05f1 00002d18: JUMPI 00002d19: PUSH2 0x0987 00002d1c: PUSH1 0x04 00002d1e: CALLDATALOAD 00002d1f: PUSH1 0x44 00002d21: CALLDATALOAD 00002d22: PUSH1 0x24 00002d24: CALLDATALOAD 00002d25: PUSH2 0x2d2c 00002d28: PUSH2 0x4182 00002d2b: JUMP 00002d2c: JUMPDEST 00002d2d: PUSH1 0x40 00002d2f: MLOAD 00002d30: SWAP3 00002d31: PUSH4 0x0c3a1515 00002d36: PUSH1 0xe3 00002d38: SHL 00002d39: PUSH1 0x20 00002d3b: DUP6 00002d3c: ADD 00002d3d: MSTORE 00002d3e: PUSH1 0x24 00002d40: DUP5 00002d41: ADD 00002d42: MSTORE 00002d43: PUSH1 0x44 00002d45: DUP4 00002d46: ADD 00002d47: MSTORE 00002d48: PUSH1 0x64 00002d4a: DUP3 00002d4b: ADD 00002d4c: MSTORE 00002d4d: PUSH1 0x64 00002d4f: DUP2 00002d50: MSTORE 00002d51: PUSH2 0x1596 00002d54: PUSH1 0x84 00002d56: DUP3 00002d57: PUSH2 0x0ee8 00002d5a: JUMP 00002d5b: JUMPDEST 00002d5c: CALLVALUE 00002d5d: PUSH2 0x05f1 00002d60: JUMPI 00002d61: PUSH1 0x40 00002d63: CALLDATASIZE 00002d64: PUSH1 0x03 00002d66: NOT 00002d67: ADD 00002d68: SLT 00002d69: PUSH2 0x05f1 00002d6c: JUMPI 00002d6d: PUSH1 0x20 00002d6f: PUSH2 0x2d92 00002d72: PUSH1 0x04 00002d74: CALLDATALOAD 00002d75: PUSH2 0x2d7d 00002d78: DUP2 00002d79: PUSH2 0x0737 00002d7c: JUMP 00002d7d: JUMPDEST 00002d7e: PUSH2 0x079a 00002d81: PUSH1 0x24 00002d83: CALLDATALOAD 00002d84: SWAP2 00002d85: PUSH2 0x2d8d 00002d88: DUP4 00002d89: PUSH2 0x0737 00002d8c: JUMP 00002d8d: JUMPDEST 00002d8e: PUSH2 0x331f 00002d91: JUMP 00002d92: JUMPDEST 00002d93: SLOAD 00002d94: PUSH1 0x40 00002d96: MLOAD 00002d97: SWAP1 00002d98: DUP2 00002d99: MSTORE 00002d9a: RETURN 00002d9b: JUMPDEST 00002d9c: CALLVALUE 00002d9d: PUSH2 0x05f1 00002da0: JUMPI 00002da1: PUSH0 00002da2: CALLDATASIZE 00002da3: PUSH1 0x03 00002da5: NOT 00002da6: ADD 00002da7: SLT 00002da8: PUSH2 0x05f1 00002dab: JUMPI 00002dac: PUSH0 00002dad: MLOAD 00002dae: PUSH1 0x20 00002db0: PUSH2 0x4e02 00002db3: PUSH0 00002db4: CODECOPY 00002db5: PUSH0 00002db6: MLOAD 00002db7: SWAP1 00002db8: PUSH0 00002db9: MSTORE 00002dba: SLOAD 00002dbb: PUSH1 0x40 00002dbd: MLOAD 00002dbe: PUSH1 0x01 00002dc0: PUSH1 0x01 00002dc2: PUSH1 0xa0 00002dc4: SHL 00002dc5: SUB 00002dc6: SWAP1 00002dc7: SWAP2 00002dc8: AND 00002dc9: DUP2 00002dca: MSTORE 00002dcb: PUSH1 0x20 00002dcd: SWAP1 00002dce: RETURN 00002dcf: JUMPDEST 00002dd0: CALLVALUE 00002dd1: PUSH2 0x05f1 00002dd4: JUMPI 00002dd5: PUSH1 0x20 00002dd7: CALLDATASIZE 00002dd8: PUSH1 0x03 00002dda: NOT 00002ddb: ADD 00002ddc: SLT 00002ddd: PUSH2 0x05f1 00002de0: JUMPI 00002de1: PUSH1 0x04 00002de3: CALLDATALOAD 00002de4: PUSH2 0x2dec 00002de7: DUP2 00002de8: PUSH2 0x0737 00002deb: JUMP 00002dec: JUMPDEST 00002ded: PUSH0 00002dee: SLOAD 00002def: PUSH1 0x01 00002df1: PUSH1 0x01 00002df3: PUSH1 0xa0 00002df5: SHL 00002df6: SUB 00002df7: AND 00002df8: CALLER 00002df9: EQ 00002dfa: ISZERO 00002dfb: DUP1 00002dfc: PUSH2 0x2e45 00002dff: JUMPI 00002e00: JUMPDEST 00002e01: PUSH2 0x0b83 00002e04: JUMPI 00002e05: PUSH1 0x01 00002e07: PUSH1 0x01 00002e09: PUSH1 0xa0 00002e0b: SHL 00002e0c: SUB 00002e0d: AND 00002e0e: PUSH0 00002e0f: DUP2 00002e10: DUP2 00002e11: MSTORE 00002e12: PUSH1 0x04 00002e14: PUSH1 0x20 00002e16: MSTORE 00002e17: PUSH1 0x40 00002e19: DUP2 00002e1a: KECCAK256 00002e1b: DUP2 00002e1c: SWAP1 00002e1d: SSTORE 00002e1e: CALLER 00002e1f: SWAP1 00002e20: PUSH32 0x10d2cd24a2375b12d91635518e47506f9aebfe8af364c6109b93ac41e8b0b86f 00002e41: SWAP1 00002e42: DUP1 00002e43: LOG3 00002e44: STOP 00002e45: JUMPDEST 00002e46: POP 00002e47: PUSH0 00002e48: MLOAD 00002e49: PUSH1 0x20 00002e4b: PUSH2 0x4d02 00002e4e: PUSH0 00002e4f: CODECOPY 00002e50: PUSH0 00002e51: MLOAD 00002e52: SWAP1 00002e53: PUSH0 00002e54: MSTORE 00002e55: SLOAD 00002e56: PUSH1 0x01 00002e58: PUSH1 0x01 00002e5a: PUSH1 0xa0 00002e5c: SHL 00002e5d: SUB 00002e5e: AND 00002e5f: CALLER 00002e60: EQ 00002e61: ISZERO 00002e62: PUSH2 0x2e00 00002e65: JUMP 00002e66: JUMPDEST 00002e67: CALLVALUE 00002e68: PUSH2 0x05f1 00002e6b: JUMPI 00002e6c: PUSH0 00002e6d: CALLDATASIZE 00002e6e: PUSH1 0x03 00002e70: NOT 00002e71: ADD 00002e72: SLT 00002e73: PUSH2 0x05f1 00002e76: JUMPI 00002e77: PUSH1 0x20 00002e79: PUSH7 0x2386f26fc10000 00002e81: PUSH1 0x0d 00002e83: SLOAD 00002e84: DIV 00002e85: PUSH1 0x40 00002e87: MLOAD 00002e88: SWAP1 00002e89: DUP2 00002e8a: MSTORE 00002e8b: RETURN 00002e8c: JUMPDEST 00002e8d: CALLVALUE 00002e8e: PUSH2 0x05f1 00002e91: JUMPI 00002e92: PUSH0 00002e93: CALLDATASIZE 00002e94: PUSH1 0x03 00002e96: NOT 00002e97: ADD 00002e98: SLT 00002e99: PUSH2 0x05f1 00002e9c: JUMPI 00002e9d: PUSH1 0x01 00002e9f: SLOAD 00002ea0: PUSH1 0x40 00002ea2: MLOAD 00002ea3: PUSH1 0x01 00002ea5: PUSH1 0x01 00002ea7: PUSH1 0xa0 00002ea9: SHL 00002eaa: SUB 00002eab: SWAP1 00002eac: SWAP2 00002ead: AND 00002eae: DUP2 00002eaf: MSTORE 00002eb0: PUSH1 0x20 00002eb2: SWAP1 00002eb3: RETURN 00002eb4: JUMPDEST 00002eb5: CALLVALUE 00002eb6: PUSH2 0x05f1 00002eb9: JUMPI 00002eba: PUSH2 0x2ec2 00002ebd: CALLDATASIZE 00002ebe: PUSH2 0x0f9d 00002ec1: JUMP 00002ec2: JUMPDEST 00002ec3: POP 00002ec4: CALLER 00002ec5: PUSH0 00002ec6: MSTORE 00002ec7: PUSH1 0x02 00002ec9: PUSH1 0x20 00002ecb: MSTORE 00002ecc: PUSH1 0xff 00002ece: PUSH1 0x40 00002ed0: PUSH0 00002ed1: KECCAK256 00002ed2: SLOAD 00002ed3: AND 00002ed4: ISZERO 00002ed5: DUP1 00002ed6: PUSH2 0x2f15 00002ed9: JUMPI 00002eda: JUMPDEST 00002edb: DUP1 00002edc: PUSH2 0x2ef4 00002edf: JUMPI 00002ee0: JUMPDEST 00002ee1: ISZERO 00002ee2: PUSH2 0x39ae 00002ee5: JUMPI 00002ee6: PUSH4 0xf7137c0f 00002eeb: PUSH1 0xe0 00002eed: SHL 00002eee: PUSH0 00002eef: MSTORE 00002ef0: PUSH1 0x04 00002ef2: PUSH0 00002ef3: REVERT 00002ef4: JUMPDEST 00002ef5: POP 00002ef6: PUSH0 00002ef7: MLOAD 00002ef8: PUSH1 0x20 00002efa: PUSH2 0x4d02 00002efd: PUSH0 00002efe: CODECOPY 00002eff: PUSH0 00002f00: MLOAD 00002f01: SWAP1 00002f02: PUSH0 00002f03: MSTORE 00002f04: SLOAD 00002f05: PUSH1 0x01 00002f07: PUSH1 0x01 00002f09: PUSH1 0xa0 00002f0b: SHL 00002f0c: SUB 00002f0d: AND 00002f0e: CALLER 00002f0f: EQ 00002f10: ISZERO 00002f11: PUSH2 0x2ee0 00002f14: JUMP 00002f15: JUMPDEST 00002f16: POP 00002f17: PUSH1 0x01 00002f19: SLOAD 00002f1a: PUSH1 0x01 00002f1c: PUSH1 0x01 00002f1e: PUSH1 0xa0 00002f20: SHL 00002f21: SUB 00002f22: AND 00002f23: CALLER 00002f24: EQ 00002f25: ISZERO 00002f26: PUSH2 0x2eda 00002f29: JUMP 00002f2a: JUMPDEST 00002f2b: CALLVALUE 00002f2c: PUSH2 0x05f1 00002f2f: JUMPI 00002f30: PUSH1 0x20 00002f32: CALLDATASIZE 00002f33: PUSH1 0x03 00002f35: NOT 00002f36: ADD 00002f37: SLT 00002f38: PUSH2 0x05f1 00002f3b: JUMPI 00002f3c: PUSH1 0x04 00002f3e: CALLDATALOAD 00002f3f: PUSH2 0x2f47 00002f42: DUP2 00002f43: PUSH2 0x0737 00002f46: JUMP 00002f47: JUMPDEST 00002f48: PUSH2 0x2f4f 00002f4b: PUSH2 0x4162 00002f4e: JUMP 00002f4f: JUMPDEST 00002f50: PUSH1 0x01 00002f52: SLOAD 00002f53: PUSH1 0x01 00002f55: PUSH1 0x01 00002f57: PUSH1 0xa0 00002f59: SHL 00002f5a: SUB 00002f5b: DUP3 00002f5c: DUP2 00002f5d: AND 00002f5e: SWAP2 00002f5f: AND 00002f60: EQ 00002f61: PUSH2 0x0a28 00002f64: JUMPI 00002f65: PUSH2 0x0987 00002f68: SWAP1 00002f69: PUSH2 0x48e2 00002f6c: JUMP 00002f6d: JUMPDEST 00002f6e: CALLVALUE 00002f6f: PUSH2 0x05f1 00002f72: JUMPI 00002f73: PUSH1 0x20 00002f75: CALLDATASIZE 00002f76: PUSH1 0x03 00002f78: NOT 00002f79: ADD 00002f7a: SLT 00002f7b: PUSH2 0x05f1 00002f7e: JUMPI 00002f7f: PUSH1 0x04 00002f81: CALLDATALOAD 00002f82: PUSH2 0x2f8a 00002f85: DUP2 00002f86: PUSH2 0x0737 00002f89: JUMP 00002f8a: JUMPDEST 00002f8b: PUSH0 00002f8c: PUSH1 0x80 00002f8e: PUSH1 0x40 00002f90: MLOAD 00002f91: PUSH2 0x2f99 00002f94: DUP2 00002f95: PUSH2 0x0ecd 00002f98: JUMP 00002f99: JUMPDEST 00002f9a: DUP3 00002f9b: DUP2 00002f9c: MSTORE 00002f9d: DUP3 00002f9e: PUSH1 0x20 00002fa0: DUP3 00002fa1: ADD 00002fa2: MSTORE 00002fa3: DUP3 00002fa4: PUSH1 0x40 00002fa6: DUP3 00002fa7: ADD 00002fa8: MSTORE 00002fa9: DUP3 00002faa: PUSH1 0x60 00002fac: DUP3 00002fad: ADD 00002fae: MSTORE 00002faf: ADD 00002fb0: MSTORE 00002fb1: PUSH1 0x01 00002fb3: DUP1 00002fb4: PUSH1 0xa0 00002fb6: SHL 00002fb7: SUB 00002fb8: AND 00002fb9: PUSH0 00002fba: MSTORE 00002fbb: PUSH1 0x0f 00002fbd: PUSH1 0x20 00002fbf: MSTORE 00002fc0: PUSH2 0x067f 00002fc3: PUSH1 0x40 00002fc5: PUSH0 00002fc6: KECCAK256 00002fc7: PUSH2 0x3031 00002fca: PUSH2 0x3021 00002fcd: PUSH1 0x03 00002fcf: PUSH1 0x40 00002fd1: MLOAD 00002fd2: SWAP4 00002fd3: PUSH2 0x2fdb 00002fd6: DUP6 00002fd7: PUSH2 0x0ecd 00002fda: JUMP 00002fdb: JUMPDEST 00002fdc: DUP1 00002fdd: SLOAD 00002fde: PUSH1 0x01 00002fe0: PUSH1 0x01 00002fe2: PUSH1 0xa0 00002fe4: SHL 00002fe5: SUB 00002fe6: SWAP1 00002fe7: DUP2 00002fe8: AND 00002fe9: DUP7 00002fea: MSTORE 00002feb: PUSH1 0x01 00002fed: DUP3 00002fee: ADD 00002fef: SLOAD 00002ff0: DUP2 00002ff1: AND 00002ff2: PUSH1 0x20 00002ff4: DUP8 00002ff5: ADD 00002ff6: MSTORE 00002ff7: PUSH1 0x02 00002ff9: DUP3 00002ffa: ADD 00002ffb: SLOAD 00002ffc: AND 00002ffd: PUSH1 0x40 00002fff: DUP7 00003000: ADD 00003001: MSTORE 00003002: ADD 00003003: SLOAD 00003004: PUSH1 0x01 00003006: PUSH1 0x01 00003008: PUSH1 0x80 0000300a: SHL 0000300b: SUB 0000300c: DUP2 0000300d: AND 0000300e: PUSH1 0x60 00003010: DUP6 00003011: ADD 00003012: MSTORE 00003013: PUSH1 0x80 00003015: SHR 00003016: PUSH1 0x01 00003018: PUSH1 0x01 0000301a: PUSH1 0x40 0000301c: SHL 0000301d: SUB 0000301e: AND 0000301f: SWAP1 00003020: JUMP 00003021: JUMPDEST 00003022: PUSH1 0x01 00003024: PUSH1 0x01 00003026: PUSH1 0x40 00003028: SHL 00003029: SUB 0000302a: AND 0000302b: PUSH1 0x80 0000302d: DUP4 0000302e: ADD 0000302f: MSTORE 00003030: JUMP 00003031: JUMPDEST 00003032: PUSH1 0x40 00003034: DUP1 00003035: MLOAD 00003036: DUP3 00003037: MLOAD 00003038: PUSH1 0x01 0000303a: PUSH1 0x01 0000303c: PUSH1 0xa0 0000303e: SHL 0000303f: SUB 00003040: SWAP1 00003041: DUP2 00003042: AND 00003043: DUP3 00003044: MSTORE 00003045: PUSH1 0x20 00003047: DUP1 00003048: DUP6 00003049: ADD 0000304a: MLOAD 0000304b: DUP3 0000304c: AND 0000304d: SWAP1 0000304e: DUP4 0000304f: ADD 00003050: MSTORE 00003051: DUP4 00003052: DUP4 00003053: ADD 00003054: MLOAD 00003055: AND 00003056: SWAP2 00003057: DUP2 00003058: ADD 00003059: SWAP2 0000305a: SWAP1 0000305b: SWAP2 0000305c: MSTORE 0000305d: PUSH1 0x60 0000305f: DUP1 00003060: DUP4 00003061: ADD 00003062: MLOAD 00003063: PUSH1 0x01 00003065: PUSH1 0x01 00003067: PUSH1 0x80 00003069: SHL 0000306a: SUB 0000306b: AND 0000306c: SWAP1 0000306d: DUP3 0000306e: ADD 0000306f: MSTORE 00003070: PUSH1 0x80 00003072: SWAP2 00003073: DUP3 00003074: ADD 00003075: MLOAD 00003076: PUSH1 0x01 00003078: PUSH1 0x01 0000307a: PUSH1 0x40 0000307c: SHL 0000307d: SUB 0000307e: AND 0000307f: SWAP2 00003080: DUP2 00003081: ADD 00003082: SWAP2 00003083: SWAP1 00003084: SWAP2 00003085: MSTORE 00003086: SWAP1 00003087: DUP2 00003088: SWAP1 00003089: PUSH1 0xa0 0000308b: DUP3 0000308c: ADD 0000308d: SWAP1 0000308e: JUMP 0000308f: JUMPDEST 00003090: CALLVALUE 00003091: PUSH2 0x05f1 00003094: JUMPI 00003095: PUSH1 0x20 00003097: CALLDATASIZE 00003098: PUSH1 0x03 0000309a: NOT 0000309b: ADD 0000309c: SLT 0000309d: PUSH2 0x05f1 000030a0: JUMPI 000030a1: PUSH1 0x04 000030a3: CALLDATALOAD 000030a4: PUSH2 0x30ac 000030a7: DUP2 000030a8: PUSH2 0x0737 000030ab: JUMP 000030ac: JUMPDEST 000030ad: PUSH2 0x30b4 000030b0: PUSH2 0x4162 000030b3: JUMP 000030b4: JUMPDEST 000030b5: PUSH0 000030b6: MLOAD 000030b7: PUSH1 0x20 000030b9: PUSH2 0x4e02 000030bc: PUSH0 000030bd: CODECOPY 000030be: PUSH0 000030bf: MLOAD 000030c0: SWAP1 000030c1: PUSH0 000030c2: MSTORE 000030c3: DUP1 000030c4: SLOAD 000030c5: PUSH1 0x01 000030c7: PUSH1 0x01 000030c9: PUSH1 0xa0 000030cb: SHL 000030cc: SUB 000030cd: NOT 000030ce: AND 000030cf: PUSH1 0x01 000030d1: PUSH1 0x01 000030d3: PUSH1 0xa0 000030d5: SHL 000030d6: SUB 000030d7: SWAP3 000030d8: DUP4 000030d9: AND 000030da: SWAP1 000030db: DUP2 000030dc: OR 000030dd: SWAP1 000030de: SWAP2 000030df: SSTORE 000030e0: PUSH0 000030e1: MLOAD 000030e2: PUSH1 0x20 000030e4: PUSH2 0x4d02 000030e7: PUSH0 000030e8: CODECOPY 000030e9: PUSH0 000030ea: MLOAD 000030eb: SWAP1 000030ec: PUSH0 000030ed: MSTORE 000030ee: SLOAD 000030ef: SWAP1 000030f0: SWAP2 000030f1: AND 000030f2: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 00003113: PUSH0 00003114: DUP1 00003115: LOG3 00003116: STOP 00003117: JUMPDEST 00003118: CALLVALUE 00003119: PUSH2 0x05f1 0000311c: JUMPI 0000311d: PUSH1 0x20 0000311f: CALLDATASIZE 00003120: PUSH1 0x03 00003122: NOT 00003123: ADD 00003124: SLT 00003125: PUSH2 0x05f1 00003128: JUMPI 00003129: PUSH1 0x04 0000312b: CALLDATALOAD 0000312c: PUSH2 0x3134 0000312f: DUP2 00003130: PUSH2 0x0737 00003133: JUMP 00003134: JUMPDEST 00003135: PUSH1 0x01 00003137: PUSH1 0x01 00003139: PUSH1 0xa0 0000313b: SHL 0000313c: SUB 0000313d: DUP2 0000313e: AND 0000313f: PUSH0 00003140: SWAP1 00003141: DUP2 00003142: MSTORE 00003143: PUSH1 0x04 00003145: PUSH1 0x20 00003147: MSTORE 00003148: PUSH1 0x40 0000314a: SWAP1 0000314b: KECCAK256 0000314c: SLOAD 0000314d: PUSH1 0xc0 0000314f: SHR 00003150: DUP1 00003151: ISZERO 00003152: PUSH2 0x0ab8 00003155: JUMPI 00003156: TIMESTAMP 00003157: LT 00003158: PUSH2 0x0aa9 0000315b: JUMPI 0000315c: PUSH1 0x01 0000315e: DUP1 0000315f: PUSH1 0xa0 00003161: SHL 00003162: SUB 00003163: AND 00003164: DUP1 00003165: PUSH0 00003166: MSTORE 00003167: PUSH1 0x03 00003169: PUSH1 0x20 0000316b: MSTORE 0000316c: PUSH1 0x40 0000316e: PUSH0 0000316f: KECCAK256 00003170: PUSH1 0x01 00003172: PUSH1 0xff 00003174: NOT 00003175: DUP3 00003176: SLOAD 00003177: AND 00003178: OR 00003179: SWAP1 0000317a: SSTORE 0000317b: DUP1 0000317c: PUSH1 0x40 0000317e: MLOAD 0000317f: PUSH1 0x01 00003181: DUP2 00003182: MSTORE 00003183: PUSH32 0x7276f1d77fbb1794919362294fb870305193d894417c47c88716aa858f4272d3 000031a4: PUSH1 0x20 000031a6: CALLER 000031a7: SWAP3 000031a8: LOG3 000031a9: PUSH0 000031aa: SWAP1 000031ab: DUP2 000031ac: MSTORE 000031ad: PUSH1 0x04 000031af: PUSH1 0x20 000031b1: MSTORE 000031b2: PUSH1 0x40 000031b4: DUP2 000031b5: KECCAK256 000031b6: SSTORE 000031b7: STOP 000031b8: JUMPDEST 000031b9: CALLVALUE 000031ba: PUSH2 0x05f1 000031bd: JUMPI 000031be: PUSH1 0x20 000031c0: CALLDATASIZE 000031c1: PUSH1 0x03 000031c3: NOT 000031c4: ADD 000031c5: SLT 000031c6: PUSH2 0x05f1 000031c9: JUMPI 000031ca: PUSH4 0x580b4feb 000031cf: PUSH1 0xe1 000031d1: SHL 000031d2: PUSH0 000031d3: MSTORE 000031d4: PUSH1 0x04 000031d6: PUSH0 000031d7: REVERT 000031d8: JUMPDEST 000031d9: CALLVALUE 000031da: PUSH2 0x05f1 000031dd: JUMPI 000031de: PUSH1 0x20 000031e0: CALLDATASIZE 000031e1: PUSH1 0x03 000031e3: NOT 000031e4: ADD 000031e5: SLT 000031e6: PUSH2 0x05f1 000031e9: JUMPI 000031ea: PUSH2 0x31f1 000031ed: PUSH2 0x1a50 000031f0: JUMP 000031f1: JUMPDEST 000031f2: PUSH1 0x01 000031f4: SLOAD 000031f5: PUSH1 0x01 000031f7: PUSH1 0x01 000031f9: PUSH1 0xa0 000031fb: SHL 000031fc: SUB 000031fd: AND 000031fe: CALLER 000031ff: EQ 00003200: ISZERO 00003201: DUP1 00003202: PUSH2 0x328f 00003205: JUMPI 00003206: JUMPDEST 00003207: PUSH2 0x0a3e 0000320a: JUMPI 0000320b: PUSH2 0x3219 0000320e: PUSH2 0x1ddd 00003211: PUSH1 0x14 00003213: SLOAD 00003214: PUSH1 0xc0 00003216: SHR 00003217: SWAP1 00003218: JUMP 00003219: JUMPDEST 0000321a: SWAP1 0000321b: PUSH1 0x01 0000321d: PUSH1 0x01 0000321f: PUSH1 0x40 00003221: SHL 00003222: SUB 00003223: DUP2 00003224: AND 00003225: SWAP2 00003226: DUP1 00003227: DUP4 00003228: EQ 00003229: PUSH2 0x0a28 0000322c: JUMPI 0000322d: PUSH1 0x01 0000322f: PUSH1 0x01 00003231: PUSH1 0x40 00003233: SHL 00003234: SUB 00003235: PUSH2 0x3240 00003238: PUSH1 0x13 0000323a: SLOAD 0000323b: PUSH1 0xc0 0000323d: SHR 0000323e: SWAP1 0000323f: JUMP 00003240: JUMPDEST 00003241: AND 00003242: PUSH2 0x0a19 00003245: JUMPI 00003246: DUP3 00003247: GT 00003248: ISZERO 00003249: PUSH2 0x3256 0000324c: JUMPI 0000324d: PUSH2 0x0987 00003250: SWAP2 00003251: POP 00003252: PUSH2 0x4108 00003255: JUMP 00003256: JUMPDEST 00003257: PUSH2 0x3284 0000325a: PUSH32 0x3b8a044f41670eccfac9f7c33fa28e400326783a606ba37edb9c34a964bf7afa 0000327b: SWAP3 0000327c: PUSH1 0x08 0000327e: SLOAD 0000327f: SWAP1 00003280: PUSH2 0x3e6d 00003283: JUMP 00003284: JUMPDEST 00003285: PUSH1 0x13 00003287: SLOAD 00003288: PUSH1 0xc0 0000328a: SHR 0000328b: PUSH2 0x1e5b 0000328e: JUMP 0000328f: JUMPDEST 00003290: POP 00003291: PUSH0 00003292: MLOAD 00003293: PUSH1 0x20 00003295: PUSH2 0x4d02 00003298: PUSH0 00003299: CODECOPY 0000329a: PUSH0 0000329b: MLOAD 0000329c: SWAP1 0000329d: PUSH0 0000329e: MSTORE 0000329f: SLOAD 000032a0: PUSH1 0x01 000032a2: PUSH1 0x01 000032a4: PUSH1 0xa0 000032a6: SHL 000032a7: SUB 000032a8: AND 000032a9: CALLER 000032aa: EQ 000032ab: ISZERO 000032ac: PUSH2 0x3206 000032af: JUMP 000032b0: JUMPDEST 000032b1: PUSH4 0x4e487b71 000032b6: PUSH1 0xe0 000032b8: SHL 000032b9: PUSH0 000032ba: MSTORE 000032bb: PUSH1 0x12 000032bd: PUSH1 0x04 000032bf: MSTORE 000032c0: PUSH1 0x24 000032c2: PUSH0 000032c3: REVERT 000032c4: JUMPDEST 000032c5: PUSH4 0x4e487b71 000032ca: PUSH1 0xe0 000032cc: SHL 000032cd: PUSH0 000032ce: MSTORE 000032cf: PUSH1 0x11 000032d1: PUSH1 0x04 000032d3: MSTORE 000032d4: PUSH1 0x24 000032d6: PUSH0 000032d7: REVERT 000032d8: JUMPDEST 000032d9: DUP2 000032da: ISZERO 000032db: PUSH2 0x32e2 000032de: JUMPI 000032df: DIV 000032e0: SWAP1 000032e1: JUMP 000032e2: JUMPDEST 000032e3: PUSH2 0x32b0 000032e6: JUMP 000032e7: JUMPDEST 000032e8: SWAP1 000032e9: PUSH1 0x01 000032eb: DUP3 000032ec: DUP2 000032ed: SHR 000032ee: SWAP3 000032ef: AND 000032f0: DUP1 000032f1: ISZERO 000032f2: PUSH2 0x3315 000032f5: JUMPI 000032f6: JUMPDEST 000032f7: PUSH1 0x20 000032f9: DUP4 000032fa: LT 000032fb: EQ 000032fc: PUSH2 0x3301 000032ff: JUMPI 00003300: JUMP 00003301: JUMPDEST 00003302: PUSH4 0x4e487b71 00003307: PUSH1 0xe0 00003309: SHL 0000330a: PUSH0 0000330b: MSTORE 0000330c: PUSH1 0x22 0000330e: PUSH1 0x04 00003310: MSTORE 00003311: PUSH1 0x24 00003313: PUSH0 00003314: REVERT 00003315: JUMPDEST 00003316: SWAP2 00003317: PUSH1 0x7f 00003319: AND 0000331a: SWAP2 0000331b: PUSH2 0x32f6 0000331e: JUMP 0000331f: JUMPDEST 00003320: PUSH1 0x01 00003322: PUSH1 0x01 00003324: PUSH1 0xa0 00003326: SHL 00003327: SUB 00003328: AND 00003329: PUSH0 0000332a: SWAP1 0000332b: DUP2 0000332c: MSTORE 0000332d: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01 0000334e: PUSH1 0x20 00003350: MSTORE 00003351: PUSH1 0x40 00003353: SWAP1 00003354: KECCAK256 00003355: SWAP1 00003356: JUMP 00003357: JUMPDEST 00003358: PUSH1 0x01 0000335a: PUSH1 0x01 0000335c: PUSH1 0xa0 0000335e: SHL 0000335f: SUB 00003360: AND 00003361: PUSH0 00003362: SWAP1 00003363: DUP2 00003364: MSTORE 00003365: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 00003386: PUSH1 0x20 00003388: MSTORE 00003389: PUSH1 0x40 0000338b: SWAP1 0000338c: KECCAK256 0000338d: SWAP1 0000338e: JUMP 0000338f: JUMPDEST 00003390: PUSH4 0x207972c9 00003395: PUSH1 0xe0 00003397: SHL 00003398: PUSH0 00003399: MSTORE 0000339a: PUSH1 0x04 0000339c: PUSH0 0000339d: REVERT 0000339e: JUMPDEST 0000339f: PUSH1 0x40 000033a1: MLOAD 000033a2: SWAP1 000033a3: PUSH2 0x33ab 000033a6: DUP3 000033a7: PUSH2 0x0eb2 000033aa: JUMP 000033ab: JUMPDEST 000033ac: PUSH0 000033ad: PUSH1 0x20 000033af: DUP4 000033b0: DUP3 000033b1: DUP2 000033b2: MSTORE 000033b3: ADD 000033b4: MSTORE 000033b5: JUMP 000033b6: JUMPDEST 000033b7: SWAP2 000033b8: SWAP1 000033b9: DUP3 000033ba: SUB 000033bb: SWAP2 000033bc: DUP3 000033bd: GT 000033be: PUSH2 0x0c5f 000033c1: JUMPI 000033c2: JUMP 000033c3: JUMPDEST 000033c4: DUP2 000033c5: DUP2 000033c6: MUL 000033c7: SWAP3 000033c8: SWAP2 000033c9: DUP2 000033ca: ISZERO 000033cb: SWAP2 000033cc: DUP5 000033cd: DIV 000033ce: EQ 000033cf: OR 000033d0: ISZERO 000033d1: PUSH2 0x0c5f 000033d4: JUMPI 000033d5: JUMP 000033d6: JUMPDEST 000033d7: PUSH1 0x0b 000033d9: SLOAD 000033da: DUP1 000033db: ISZERO 000033dc: PUSH2 0x340c 000033df: JUMPI 000033e0: PUSH1 0x0d 000033e2: SLOAD 000033e3: PUSH1 0x01 000033e5: PUSH1 0x01 000033e7: PUSH1 0x40 000033e9: SHL 000033ea: SUB 000033eb: PUSH1 0x14 000033ed: SLOAD 000033ee: AND 000033ef: PUSH4 0x05f5e100 000033f4: SUB 000033f5: PUSH4 0x05f5e100 000033fa: DUP2 000033fb: GT 000033fc: PUSH2 0x0c5f 000033ff: JUMPI 00003400: PUSH2 0x3408 00003403: SWAP2 00003404: PUSH2 0x33c3 00003407: JUMP 00003408: JUMPDEST 00003409: DIV 0000340a: SWAP1 0000340b: JUMP 0000340c: JUMPDEST 0000340d: POP 0000340e: PUSH0 0000340f: SWAP1 00003410: JUMP 00003411: JUMPDEST 00003412: PUSH1 0xff 00003414: PUSH0 00003415: MLOAD 00003416: PUSH1 0x20 00003418: PUSH2 0x4da2 0000341b: PUSH0 0000341c: CODECOPY 0000341d: PUSH0 0000341e: MLOAD 0000341f: SWAP1 00003420: PUSH0 00003421: MSTORE 00003422: SLOAD 00003423: AND 00003424: PUSH2 0x3462 00003427: JUMPI 00003428: PUSH7 0x2386f26fc10000 00003430: PUSH2 0x3437 00003433: PUSH2 0x3b3a 00003436: JUMP 00003437: JUMPDEST 00003438: POP 00003439: DIV 0000343a: PUSH1 0x09 0000343c: SLOAD 0000343d: DUP1 0000343e: SWAP2 0000343f: LT 00003440: ISZERO 00003441: PUSH2 0x340c 00003444: JUMPI 00003445: PUSH7 0x2386f26fc10000 0000344d: PUSH2 0x3454 00003450: PUSH2 0x3b3a 00003453: JUMP 00003454: JUMPDEST 00003455: POP 00003456: DIV 00003457: DUP2 00003458: SUB 00003459: SWAP1 0000345a: DUP2 0000345b: GT 0000345c: PUSH2 0x0c5f 0000345f: JUMPI 00003460: SWAP1 00003461: JUMP 00003462: JUMPDEST 00003463: PUSH0 00003464: SWAP1 00003465: JUMP 00003466: JUMPDEST 00003467: SWAP4 00003468: SWAP3 00003469: SWAP1 0000346a: SWAP2 0000346b: PUSH1 0x01 0000346d: DUP1 0000346e: PUSH1 0xa0 00003470: SHL 00003471: SUB 00003472: PUSH1 0x01 00003474: SLOAD 00003475: AND 00003476: CALLER 00003477: EQ 00003478: ISZERO 00003479: DUP1 0000347a: PUSH2 0x354a 0000347d: JUMPI 0000347e: JUMPDEST 0000347f: PUSH2 0x0a3e 00003482: JUMPI 00003483: PUSH2 0x348a 00003486: PUSH2 0x4182 00003489: JUMP 0000348a: JUMPDEST 0000348b: PUSH1 0x01 0000348d: DUP1 0000348e: PUSH1 0xa0 00003490: SHL 00003491: SUB 00003492: PUSH0 00003493: MLOAD 00003494: PUSH1 0x20 00003496: PUSH2 0x4d82 00003499: PUSH0 0000349a: CODECOPY 0000349b: PUSH0 0000349c: MLOAD 0000349d: SWAP1 0000349e: PUSH0 0000349f: MSTORE 000034a0: SLOAD 000034a1: AND 000034a2: SWAP3 000034a3: PUSH1 0x40 000034a5: MLOAD 000034a6: SWAP4 000034a7: PUSH4 0x53cc9d55 000034ac: PUSH1 0xe1 000034ae: SHL 000034af: PUSH1 0x20 000034b1: DUP7 000034b2: ADD 000034b3: MSTORE 000034b4: PUSH1 0xc4 000034b6: DUP6 000034b7: ADD 000034b8: SWAP1 000034b9: PUSH1 0x24 000034bb: DUP7 000034bc: ADD 000034bd: MSTORE 000034be: PUSH1 0xa0 000034c0: PUSH1 0x44 000034c2: DUP7 000034c3: ADD 000034c4: MSTORE 000034c5: DUP7 000034c6: MLOAD 000034c7: DUP1 000034c8: SWAP2 000034c9: MSTORE 000034ca: PUSH1 0x20 000034cc: PUSH1 0xe4 000034ce: DUP7 000034cf: ADD 000034d0: SWAP8 000034d1: ADD 000034d2: SWAP1 000034d3: PUSH0 000034d4: JUMPDEST 000034d5: DUP2 000034d6: DUP2 000034d7: LT 000034d8: PUSH2 0x352b 000034db: JUMPI 000034dc: POP 000034dd: POP 000034de: POP 000034df: PUSH2 0x1596 000034e2: SWAP3 000034e3: PUSH2 0x3516 000034e6: DUP6 000034e7: SWAP4 000034e8: PUSH2 0x3504 000034eb: PUSH2 0x3528 000034ee: SWAP9 000034ef: SWAP10 000034f0: PUSH2 0x1588 000034f3: SWAP6 000034f4: PUSH1 0x23 000034f6: NOT 000034f7: DUP9 000034f8: DUP4 000034f9: SUB 000034fa: ADD 000034fb: PUSH1 0x64 000034fd: DUP10 000034fe: ADD 000034ff: MSTORE 00003500: PUSH2 0x356b 00003503: JUMP 00003504: JUMPDEST 00003505: DUP6 00003506: DUP2 00003507: SUB 00003508: PUSH1 0x23 0000350a: NOT 0000350b: ADD 0000350c: PUSH1 0x84 0000350e: DUP8 0000350f: ADD 00003510: MSTORE 00003511: SWAP1 00003512: PUSH2 0x356b 00003515: JUMP 00003516: JUMPDEST 00003517: DUP4 00003518: DUP2 00003519: SUB 0000351a: PUSH1 0x23 0000351c: NOT 0000351d: ADD 0000351e: PUSH1 0xa4 00003520: DUP6 00003521: ADD 00003522: MSTORE 00003523: SWAP1 00003524: PUSH2 0x3613 00003527: JUMP 00003528: JUMPDEST 00003529: POP 0000352a: JUMP 0000352b: JUMPDEST 0000352c: DUP3 0000352d: MLOAD 0000352e: PUSH1 0x01 00003530: PUSH1 0x01 00003532: PUSH1 0xa0 00003534: SHL 00003535: SUB 00003536: AND 00003537: DUP10 00003538: MSTORE 00003539: PUSH1 0x20 0000353b: SWAP9 0000353c: DUP10 0000353d: ADD 0000353e: SWAP9 0000353f: SWAP1 00003540: SWAP3 00003541: ADD 00003542: SWAP2 00003543: PUSH1 0x01 00003545: ADD 00003546: PUSH2 0x34d4 00003549: JUMP 0000354a: JUMPDEST 0000354b: POP 0000354c: PUSH0 0000354d: MLOAD 0000354e: PUSH1 0x20 00003550: PUSH2 0x4d02 00003553: PUSH0 00003554: CODECOPY 00003555: PUSH0 00003556: MLOAD 00003557: SWAP1 00003558: PUSH0 00003559: MSTORE 0000355a: SLOAD 0000355b: PUSH1 0x01 0000355d: PUSH1 0x01 0000355f: PUSH1 0xa0 00003561: SHL 00003562: SUB 00003563: AND 00003564: CALLER 00003565: EQ 00003566: ISZERO 00003567: PUSH2 0x347e 0000356a: JUMP 0000356b: JUMPDEST 0000356c: SWAP1 0000356d: PUSH1 0x20 0000356f: DUP1 00003570: DUP4 00003571: MLOAD 00003572: SWAP3 00003573: DUP4 00003574: DUP2 00003575: MSTORE 00003576: ADD 00003577: SWAP3 00003578: ADD 00003579: SWAP1 0000357a: PUSH0 0000357b: JUMPDEST 0000357c: DUP2 0000357d: DUP2 0000357e: LT 0000357f: PUSH2 0x3588 00003582: JUMPI 00003583: POP 00003584: POP 00003585: POP 00003586: SWAP1 00003587: JUMP 00003588: JUMPDEST 00003589: DUP3 0000358a: MLOAD 0000358b: DUP5 0000358c: MSTORE 0000358d: PUSH1 0x20 0000358f: SWAP4 00003590: DUP5 00003591: ADD 00003592: SWAP4 00003593: SWAP1 00003594: SWAP3 00003595: ADD 00003596: SWAP2 00003597: PUSH1 0x01 00003599: ADD 0000359a: PUSH2 0x357b 0000359d: JUMP 0000359e: JUMPDEST 0000359f: SWAP1 000035a0: PUSH1 0x20 000035a2: DUP1 000035a3: DUP4 000035a4: MLOAD 000035a5: SWAP3 000035a6: DUP4 000035a7: DUP2 000035a8: MSTORE 000035a9: ADD 000035aa: SWAP3 000035ab: ADD 000035ac: SWAP1 000035ad: PUSH0 000035ae: JUMPDEST 000035af: DUP2 000035b0: DUP2 000035b1: LT 000035b2: PUSH2 0x35bb 000035b5: JUMPI 000035b6: POP 000035b7: POP 000035b8: POP 000035b9: SWAP1 000035ba: JUMP 000035bb: JUMPDEST 000035bc: SWAP1 000035bd: SWAP2 000035be: SWAP3 000035bf: PUSH1 0x20 000035c1: PUSH1 0x60 000035c3: PUSH1 0x01 000035c5: SWAP3 000035c6: PUSH1 0x40 000035c8: DUP8 000035c9: MLOAD 000035ca: DUP1 000035cb: MLOAD 000035cc: DUP4 000035cd: MSTORE 000035ce: DUP5 000035cf: DUP2 000035d0: ADD 000035d1: MLOAD 000035d2: DUP6 000035d3: DUP5 000035d4: ADD 000035d5: MSTORE 000035d6: ADD 000035d7: MLOAD 000035d8: PUSH1 0x40 000035da: DUP3 000035db: ADD 000035dc: MSTORE 000035dd: ADD 000035de: SWAP5 000035df: ADD 000035e0: SWAP2 000035e1: ADD 000035e2: SWAP2 000035e3: SWAP1 000035e4: SWAP2 000035e5: PUSH2 0x35ae 000035e8: JUMP 000035e9: JUMPDEST 000035ea: PUSH2 0x0fc7 000035ed: SWAP2 000035ee: PUSH1 0x20 000035f0: PUSH2 0x3602 000035f3: DUP4 000035f4: MLOAD 000035f5: PUSH1 0x40 000035f7: DUP5 000035f8: MSTORE 000035f9: PUSH1 0x40 000035fb: DUP5 000035fc: ADD 000035fd: SWAP1 000035fe: PUSH2 0x359e 00003601: JUMP 00003602: JUMPDEST 00003603: SWAP3 00003604: ADD 00003605: MLOAD 00003606: SWAP1 00003607: PUSH1 0x20 00003609: DUP2 0000360a: DUP5 0000360b: SUB 0000360c: SWAP2 0000360d: ADD 0000360e: MSTORE 0000360f: PUSH2 0x359e 00003612: JUMP 00003613: JUMPDEST 00003614: SWAP1 00003615: DUP1 00003616: PUSH1 0x20 00003618: DUP4 00003619: MLOAD 0000361a: SWAP2 0000361b: DUP3 0000361c: DUP2 0000361d: MSTORE 0000361e: ADD 0000361f: SWAP2 00003620: PUSH1 0x20 00003622: DUP1 00003623: DUP4 00003624: PUSH1 0x05 00003626: SHL 00003627: DUP4 00003628: ADD 00003629: ADD 0000362a: SWAP5 0000362b: ADD 0000362c: SWAP3 0000362d: PUSH0 0000362e: SWAP2 0000362f: JUMPDEST 00003630: DUP4 00003631: DUP4 00003632: LT 00003633: PUSH2 0x363e 00003636: JUMPI 00003637: POP 00003638: POP 00003639: POP 0000363a: POP 0000363b: POP 0000363c: SWAP1 0000363d: JUMP 0000363e: JUMPDEST 0000363f: SWAP1 00003640: SWAP2 00003641: SWAP3 00003642: SWAP4 00003643: SWAP5 00003644: PUSH1 0x20 00003646: DUP1 00003647: PUSH2 0x365c 0000364a: PUSH1 0x01 0000364c: SWAP4 0000364d: PUSH1 0x1f 0000364f: NOT 00003650: DUP7 00003651: DUP3 00003652: SUB 00003653: ADD 00003654: DUP8 00003655: MSTORE 00003656: DUP10 00003657: MLOAD 00003658: PUSH2 0x35e9 0000365b: JUMP 0000365c: JUMPDEST 0000365d: SWAP8 0000365e: ADD 0000365f: SWAP4 00003660: ADD 00003661: SWAP4 00003662: ADD 00003663: SWAP2 00003664: SWAP4 00003665: SWAP3 00003666: SWAP1 00003667: PUSH2 0x362f 0000366a: JUMP 0000366b: JUMPDEST 0000366c: PUSH1 0x01 0000366e: PUSH1 0x01 00003670: PUSH1 0xa0 00003672: SHL 00003673: SUB 00003674: AND 00003675: PUSH0 00003676: SWAP1 00003677: DUP2 00003678: MSTORE 00003679: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 0000369a: PUSH1 0x20 0000369c: MSTORE 0000369d: PUSH1 0x40 0000369f: SWAP1 000036a0: KECCAK256 000036a1: SLOAD 000036a2: SWAP1 000036a3: JUMP 000036a4: JUMPDEST 000036a5: SWAP1 000036a6: DUP2 000036a7: PUSH1 0x20 000036a9: SWAP2 000036aa: SUB 000036ab: SLT 000036ac: PUSH2 0x05f1 000036af: JUMPI 000036b0: MLOAD 000036b1: SWAP1 000036b2: JUMP 000036b3: JUMPDEST 000036b4: PUSH1 0x01 000036b6: PUSH1 0x01 000036b8: PUSH1 0x01 000036ba: PUSH1 0x40 000036bc: SHL 000036bd: SUB 000036be: NOT 000036bf: PUSH0 000036c0: MLOAD 000036c1: PUSH1 0x20 000036c3: PUSH2 0x4de2 000036c6: PUSH0 000036c7: CODECOPY 000036c8: PUSH0 000036c9: MLOAD 000036ca: SWAP1 000036cb: PUSH0 000036cc: MSTORE 000036cd: SLOAD 000036ce: AND 000036cf: OR 000036d0: PUSH0 000036d1: MLOAD 000036d2: PUSH1 0x20 000036d4: PUSH2 0x4de2 000036d7: PUSH0 000036d8: CODECOPY 000036d9: PUSH0 000036da: MLOAD 000036db: SWAP1 000036dc: PUSH0 000036dd: MSTORE 000036de: SSTORE 000036df: JUMP 000036e0: JUMPDEST 000036e1: PUSH9 0x010000000000000000 000036eb: PUSH1 0xff 000036ed: PUSH1 0x40 000036ef: SHL 000036f0: NOT 000036f1: PUSH0 000036f2: MLOAD 000036f3: PUSH1 0x20 000036f5: PUSH2 0x4de2 000036f8: PUSH0 000036f9: CODECOPY 000036fa: PUSH0 000036fb: MLOAD 000036fc: SWAP1 000036fd: PUSH0 000036fe: MSTORE 000036ff: SLOAD 00003700: AND 00003701: OR 00003702: PUSH0 00003703: MLOAD 00003704: PUSH1 0x20 00003706: PUSH2 0x4de2 00003709: PUSH0 0000370a: CODECOPY 0000370b: PUSH0 0000370c: MLOAD 0000370d: SWAP1 0000370e: PUSH0 0000370f: MSTORE 00003710: SSTORE 00003711: JUMP 00003712: JUMPDEST 00003713: POP 00003714: PUSH0 00003715: MLOAD 00003716: PUSH1 0x20 00003718: PUSH2 0x4de2 0000371b: PUSH0 0000371c: CODECOPY 0000371d: PUSH0 0000371e: MLOAD 0000371f: SWAP1 00003720: PUSH0 00003721: MSTORE 00003722: SLOAD 00003723: PUSH1 0x01 00003725: PUSH1 0x01 00003727: PUSH1 0x40 00003729: SHL 0000372a: SUB 0000372b: PUSH1 0xff 0000372d: DUP3 0000372e: PUSH1 0x40 00003730: SHR 00003731: AND 00003732: ISZERO 00003733: SWAP2 00003734: AND 00003735: DUP1 00003736: ISZERO 00003737: SWAP1 00003738: DUP2 00003739: PUSH2 0x379f 0000373c: JUMPI 0000373d: JUMPDEST 0000373e: PUSH1 0x01 00003740: EQ 00003741: SWAP1 00003742: DUP2 00003743: PUSH2 0x3795 00003746: JUMPI 00003747: JUMPDEST 00003748: ISZERO 00003749: SWAP1 0000374a: DUP2 0000374b: PUSH2 0x378c 0000374e: JUMPI 0000374f: JUMPDEST 00003750: POP 00003751: PUSH2 0x377d 00003754: JUMPI 00003755: PUSH2 0x375c 00003758: PUSH2 0x36b3 0000375b: JUMP 0000375c: JUMPDEST 0000375d: PUSH2 0x3770 00003760: JUMPI 00003761: JUMPDEST 00003762: PUSH4 0x4b7395a7 00003767: PUSH1 0xe1 00003769: SHL 0000376a: PUSH0 0000376b: MSTORE 0000376c: PUSH1 0x04 0000376e: PUSH0 0000376f: REVERT 00003770: JUMPDEST 00003771: PUSH2 0x3778 00003774: PUSH2 0x36e0 00003777: JUMP 00003778: JUMPDEST 00003779: PUSH2 0x3761 0000377c: JUMP 0000377d: JUMPDEST 0000377e: PUSH4 0xf92ee8a9 00003783: PUSH1 0xe0 00003785: SHL 00003786: PUSH0 00003787: MSTORE 00003788: PUSH1 0x04 0000378a: PUSH0 0000378b: REVERT 0000378c: JUMPDEST 0000378d: SWAP1 0000378e: POP 0000378f: ISZERO 00003790: PUSH0 00003791: PUSH2 0x374f 00003794: JUMP 00003795: JUMPDEST 00003796: ADDRESS 00003797: EXTCODESIZE 00003798: ISZERO 00003799: SWAP2 0000379a: POP 0000379b: PUSH2 0x3747 0000379e: JUMP 0000379f: JUMPDEST 000037a0: DUP3 000037a1: SWAP2 000037a2: POP 000037a3: PUSH2 0x373d 000037a6: JUMP 000037a7: JUMPDEST 000037a8: PUSH0 000037a9: MLOAD 000037aa: PUSH1 0x20 000037ac: PUSH2 0x4de2 000037af: PUSH0 000037b0: CODECOPY 000037b1: PUSH0 000037b2: MLOAD 000037b3: SWAP1 000037b4: PUSH0 000037b5: MSTORE 000037b6: SLOAD 000037b7: SWAP1 000037b8: PUSH1 0x01 000037ba: PUSH1 0x01 000037bc: PUSH1 0x40 000037be: SHL 000037bf: SUB 000037c0: PUSH2 0x37d8 000037c3: PUSH1 0x40 000037c5: DUP5 000037c6: SWAP1 000037c7: SHR 000037c8: PUSH1 0xff 000037ca: AND 000037cb: ISZERO 000037cc: SWAP4 000037cd: PUSH1 0x01 000037cf: PUSH1 0x01 000037d1: PUSH1 0x40 000037d3: SHL 000037d4: SUB 000037d5: AND 000037d6: SWAP1 000037d7: JUMP 000037d8: JUMPDEST 000037d9: AND 000037da: DUP1 000037db: ISZERO 000037dc: SWAP1 000037dd: DUP2 000037de: PUSH2 0x3893 000037e1: JUMPI 000037e2: JUMPDEST 000037e3: PUSH1 0x01 000037e5: EQ 000037e6: SWAP1 000037e7: DUP2 000037e8: PUSH2 0x3889 000037eb: JUMPI 000037ec: JUMPDEST 000037ed: ISZERO 000037ee: SWAP1 000037ef: DUP2 000037f0: PUSH2 0x3880 000037f3: JUMPI 000037f4: JUMPDEST 000037f5: POP 000037f6: PUSH2 0x377d 000037f9: JUMPI 000037fa: PUSH2 0x380f 000037fd: SWAP1 000037fe: DUP3 000037ff: PUSH2 0x3806 00003802: PUSH2 0x36b3 00003805: JUMP 00003806: JUMPDEST 00003807: PUSH2 0x3873 0000380a: JUMPI 0000380b: PUSH2 0x389b 0000380e: JUMP 0000380f: JUMPDEST 00003810: PUSH2 0x3815 00003813: JUMPI 00003814: JUMP 00003815: JUMPDEST 00003816: PUSH2 0x383f 00003819: PUSH1 0xff 0000381b: PUSH1 0x40 0000381d: SHL 0000381e: NOT 0000381f: PUSH0 00003820: MLOAD 00003821: PUSH1 0x20 00003823: PUSH2 0x4de2 00003826: PUSH0 00003827: CODECOPY 00003828: PUSH0 00003829: MLOAD 0000382a: SWAP1 0000382b: PUSH0 0000382c: MSTORE 0000382d: SLOAD 0000382e: AND 0000382f: PUSH0 00003830: MLOAD 00003831: PUSH1 0x20 00003833: PUSH2 0x4de2 00003836: PUSH0 00003837: CODECOPY 00003838: PUSH0 00003839: MLOAD 0000383a: SWAP1 0000383b: PUSH0 0000383c: MSTORE 0000383d: SSTORE 0000383e: JUMP 0000383f: JUMPDEST 00003840: PUSH1 0x40 00003842: MLOAD 00003843: PUSH1 0x01 00003845: DUP2 00003846: MSTORE 00003847: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 00003868: SWAP1 00003869: DUP1 0000386a: PUSH1 0x20 0000386c: DUP2 0000386d: ADD 0000386e: JUMPDEST 0000386f: SUB 00003870: SWAP1 00003871: LOG1 00003872: JUMP 00003873: JUMPDEST 00003874: PUSH2 0x387b 00003877: PUSH2 0x36e0 0000387a: JUMP 0000387b: JUMPDEST 0000387c: PUSH2 0x389b 0000387f: JUMP 00003880: JUMPDEST 00003881: SWAP1 00003882: POP 00003883: ISZERO 00003884: PUSH0 00003885: PUSH2 0x37f4 00003888: JUMP 00003889: JUMPDEST 0000388a: ADDRESS 0000388b: EXTCODESIZE 0000388c: ISZERO 0000388d: SWAP2 0000388e: POP 0000388f: PUSH2 0x37ec 00003892: JUMP 00003893: JUMPDEST 00003894: DUP4 00003895: SWAP2 00003896: POP 00003897: PUSH2 0x37e2 0000389a: JUMP 0000389b: JUMPDEST 0000389c: PUSH2 0x39a9 0000389f: PUSH1 0x20 000038a1: PUSH2 0x0753 000038a4: SWAP3 000038a5: PUSH2 0x38b7 000038a8: PUSH1 0xc0 000038aa: DUP3 000038ab: ADD 000038ac: MLOAD 000038ad: PUSH1 0xe0 000038af: DUP4 000038b0: ADD 000038b1: MLOAD 000038b2: SWAP1 000038b3: PUSH2 0x449b 000038b6: JUMP 000038b7: JUMPDEST 000038b8: DUP1 000038b9: MLOAD 000038ba: PUSH2 0x38cb 000038bd: SWAP1 000038be: PUSH1 0x01 000038c0: PUSH1 0x01 000038c2: PUSH1 0xa0 000038c4: SHL 000038c5: SUB 000038c6: AND 000038c7: PUSH2 0x4784 000038ca: JUMP 000038cb: JUMPDEST 000038cc: PUSH1 0x80 000038ce: DUP2 000038cf: ADD 000038d0: MLOAD 000038d1: PUSH2 0x38e2 000038d4: SWAP1 000038d5: PUSH1 0x01 000038d7: PUSH1 0x01 000038d9: PUSH1 0xa0 000038db: SHL 000038dc: SUB 000038dd: AND 000038de: PUSH2 0x47b7 000038e1: JUMP 000038e2: JUMPDEST 000038e3: PUSH2 0x38ea 000038e6: PUSH2 0x4813 000038e9: JUMP 000038ea: JUMPDEST 000038eb: PUSH2 0x38f2 000038ee: PUSH2 0x482e 000038f1: JUMP 000038f2: JUMPDEST 000038f3: PUSH2 0x3926 000038f6: PUSH2 0x2c19 000038f9: PUSH2 0x0100 000038fc: DUP4 000038fd: ADD 000038fe: PUSH2 0x3919 00003901: PUSH2 0x3914 00003904: PUSH2 0x1ddd 00003907: DUP4 00003908: MLOAD 00003909: PUSH1 0x01 0000390b: PUSH1 0x01 0000390d: PUSH1 0x40 0000390f: SHL 00003910: SUB 00003911: AND 00003912: SWAP1 00003913: JUMP 00003914: JUMPDEST 00003915: PUSH2 0x485a 00003918: JUMP 00003919: JUMPDEST 0000391a: MLOAD 0000391b: PUSH1 0x01 0000391d: PUSH1 0x01 0000391f: PUSH1 0x40 00003921: SHL 00003922: SUB 00003923: AND 00003924: SWAP1 00003925: JUMP 00003926: JUMPDEST 00003927: PUSH2 0x393d 0000392a: PUSH1 0x60 0000392c: DUP3 0000392d: ADD 0000392e: PUSH2 0x3937 00003931: DUP2 00003932: MLOAD 00003933: PUSH2 0x4359 00003936: JUMP 00003937: JUMPDEST 00003938: MLOAD 00003939: PUSH2 0x438c 0000393c: JUMP 0000393d: JUMPDEST 0000393e: PUSH2 0x395a 00003941: PUSH2 0x3955 00003944: PUSH2 0x0120 00003947: DUP4 00003948: ADD 00003949: MLOAD 0000394a: PUSH1 0x01 0000394c: PUSH1 0x01 0000394e: PUSH1 0x40 00003950: SHL 00003951: SUB 00003952: AND 00003953: SWAP1 00003954: JUMP 00003955: JUMPDEST 00003956: PUSH2 0x3f64 00003959: JUMP 0000395a: JUMPDEST 0000395b: PUSH2 0x3977 0000395e: PUSH2 0x3972 00003961: PUSH2 0x0140 00003964: DUP4 00003965: ADD 00003966: MLOAD 00003967: PUSH1 0x01 00003969: PUSH1 0x01 0000396b: PUSH1 0x40 0000396d: SHL 0000396e: SUB 0000396f: AND 00003970: SWAP1 00003971: JUMP 00003972: JUMPDEST 00003973: PUSH2 0x4108 00003976: JUMP 00003977: JUMPDEST 00003978: PUSH1 0x40 0000397a: DUP2 0000397b: ADD 0000397c: MLOAD 0000397d: PUSH2 0x398e 00003980: SWAP1 00003981: PUSH1 0x01 00003983: PUSH1 0x01 00003985: PUSH1 0xa0 00003987: SHL 00003988: SUB 00003989: AND 0000398a: PUSH2 0x444a 0000398d: JUMP 0000398e: JUMPDEST 0000398f: PUSH2 0x399b 00003992: PUSH1 0xa0 00003994: DUP3 00003995: ADD 00003996: MLOAD 00003997: PUSH2 0x43c2 0000399a: JUMP 0000399b: JUMPDEST 0000399c: ADD 0000399d: MLOAD 0000399e: PUSH1 0x01 000039a0: PUSH1 0x01 000039a2: PUSH1 0xa0 000039a4: SHL 000039a5: SUB 000039a6: AND 000039a7: SWAP1 000039a8: JUMP 000039a9: JUMPDEST 000039aa: PUSH2 0x48e2 000039ad: JUMP 000039ae: JUMPDEST 000039af: PUSH4 0x580b4feb 000039b4: PUSH1 0xe1 000039b6: SHL 000039b7: PUSH0 000039b8: MSTORE 000039b9: PUSH1 0x04 000039bb: PUSH0 000039bc: REVERT 000039bd: JUMPDEST 000039be: PUSH2 0x39d2 000039c1: PUSH2 0x1ddd 000039c4: PUSH1 0x14 000039c6: SLOAD 000039c7: PUSH1 0x01 000039c9: PUSH1 0x01 000039cb: PUSH1 0x40 000039cd: SHL 000039ce: SUB 000039cf: AND 000039d0: SWAP1 000039d1: JUMP 000039d2: JUMPDEST 000039d3: PUSH1 0x01 000039d5: PUSH1 0x01 000039d7: PUSH1 0xb8 000039d9: SHL 000039da: SUB 000039db: DUP3 000039dc: AND 000039dd: SWAP1 000039de: DUP1 000039df: DUP3 000039e0: EQ 000039e1: PUSH2 0x0a28 000039e4: JUMPI 000039e5: PUSH1 0x01 000039e7: PUSH1 0x01 000039e9: PUSH1 0x40 000039eb: SHL 000039ec: SUB 000039ed: PUSH2 0x39f8 000039f0: PUSH1 0x06 000039f2: SLOAD 000039f3: PUSH1 0xc0 000039f5: SHR 000039f6: SWAP1 000039f7: JUMP 000039f8: JUMPDEST 000039f9: AND 000039fa: PUSH2 0x0a19 000039fd: JUMPI 000039fe: PUSH2 0x3a06 00003a01: DUP3 00003a02: PUSH2 0x485a 00003a05: JUMP 00003a06: JUMPDEST 00003a07: DUP2 00003a08: LT 00003a09: ISZERO 00003a0a: PUSH2 0x3a54 00003a0d: JUMPI 00003a0e: PUSH2 0x2c19 00003a11: PUSH2 0x3a19 00003a14: SWAP2 00003a15: PUSH2 0x492e 00003a18: JUMP 00003a19: JUMPDEST 00003a1a: PUSH1 0x40 00003a1c: MLOAD 00003a1d: PUSH1 0x01 00003a1f: PUSH1 0x01 00003a21: PUSH1 0xb8 00003a23: SHL 00003a24: SUB 00003a25: SWAP2 00003a26: SWAP1 00003a27: SWAP2 00003a28: AND 00003a29: DUP2 00003a2a: MSTORE 00003a2b: CALLER 00003a2c: SWAP1 00003a2d: PUSH32 0x20affe2401825617c69366f8c3a3493d9822d1021d0b3023c4e77ea5b3d0fbc5 00003a4e: SWAP1 00003a4f: PUSH1 0x20 00003a51: SWAP1 00003a52: LOG2 00003a53: JUMP 00003a54: JUMPDEST 00003a55: POP 00003a56: PUSH32 0x7424f23ff556b5fe97d2f5a4b22548445b948e612029151105b441519f1bfb99 00003a77: SWAP1 00003a78: PUSH2 0x3a83 00003a7b: PUSH1 0x08 00003a7d: SLOAD 00003a7e: DUP3 00003a7f: PUSH2 0x3eb6 00003a82: JUMP 00003a83: JUMPDEST 00003a84: PUSH1 0x06 00003a86: SLOAD 00003a87: PUSH1 0xc0 00003a89: SHR 00003a8a: PUSH1 0x40 00003a8c: DUP1 00003a8d: MLOAD 00003a8e: PUSH1 0x01 00003a90: PUSH1 0x01 00003a92: PUSH1 0xb8 00003a94: SHL 00003a95: SUB 00003a96: SWAP1 00003a97: SWAP4 00003a98: AND 00003a99: DUP4 00003a9a: MSTORE 00003a9b: PUSH1 0x01 00003a9d: PUSH1 0x01 00003a9f: PUSH1 0x40 00003aa1: SHL 00003aa2: SUB 00003aa3: SWAP1 00003aa4: SWAP2 00003aa5: AND 00003aa6: PUSH1 0x20 00003aa8: DUP4 00003aa9: ADD 00003aaa: MSTORE 00003aab: DUP2 00003aac: SWAP1 00003aad: DUP2 00003aae: ADD 00003aaf: PUSH2 0x386e 00003ab2: JUMP 00003ab3: JUMPDEST 00003ab4: SWAP1 00003ab5: DUP2 00003ab6: PUSH1 0x20 00003ab8: SWAP2 00003ab9: SUB 00003aba: SLT 00003abb: PUSH2 0x05f1 00003abe: JUMPI 00003abf: MLOAD 00003ac0: PUSH2 0x0fc7 00003ac3: DUP2 00003ac4: PUSH2 0x0737 00003ac7: JUMP 00003ac8: JUMPDEST 00003ac9: PUSH1 0xff 00003acb: PUSH0 00003acc: MLOAD 00003acd: PUSH1 0x20 00003acf: PUSH2 0x4da2 00003ad2: PUSH0 00003ad3: CODECOPY 00003ad4: PUSH0 00003ad5: MLOAD 00003ad6: SWAP1 00003ad7: PUSH0 00003ad8: MSTORE 00003ad9: SLOAD 00003ada: AND 00003adb: PUSH2 0x3462 00003ade: JUMPI 00003adf: PUSH2 0x0fc7 00003ae2: PUSH2 0x3ae9 00003ae5: PUSH2 0x3411 00003ae8: JUMP 00003ae9: JUMPDEST 00003aea: PUSH2 0x3d5c 00003aed: JUMP 00003aee: JUMPDEST 00003aef: PUSH1 0x01 00003af1: PUSH1 0x01 00003af3: PUSH1 0xa0 00003af5: SHL 00003af6: SUB 00003af7: AND 00003af8: PUSH0 00003af9: SWAP1 00003afa: DUP2 00003afb: MSTORE 00003afc: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 00003b1d: PUSH1 0x20 00003b1f: MSTORE 00003b20: PUSH1 0x40 00003b22: SWAP1 00003b23: KECCAK256 00003b24: SLOAD 00003b25: PUSH2 0x0fc7 00003b28: SWAP1 00003b29: PUSH2 0x3c91 00003b2c: JUMP 00003b2d: JUMPDEST 00003b2e: SWAP2 00003b2f: SWAP1 00003b30: DUP3 00003b31: ADD 00003b32: DUP1 00003b33: SWAP3 00003b34: GT 00003b35: PUSH2 0x0c5f 00003b38: JUMPI 00003b39: JUMP 00003b3a: JUMPDEST 00003b3b: PUSH2 0x3b43 00003b3e: TIMESTAMP 00003b3f: PUSH2 0x492e 00003b42: JUMP 00003b43: JUMPDEST 00003b44: PUSH1 0x14 00003b46: SLOAD 00003b47: PUSH2 0x3b5b 00003b4a: SWAP1 00003b4b: PUSH1 0x40 00003b4d: SHR 00003b4e: PUSH1 0x01 00003b50: PUSH1 0x01 00003b52: PUSH1 0x40 00003b54: SHL 00003b55: SUB 00003b56: AND 00003b57: PUSH2 0x1ddd 00003b5a: JUMP 00003b5b: JUMPDEST 00003b5c: SWAP2 00003b5d: DUP3 00003b5e: ISZERO 00003b5f: PUSH2 0x3c84 00003b62: JUMPI 00003b63: PUSH0 00003b64: DUP1 00003b65: MSTORE 00003b66: PUSH1 0x10 00003b68: PUSH1 0x20 00003b6a: MSTORE 00003b6b: SWAP1 00003b6c: SWAP2 00003b6d: PUSH2 0x3b9e 00003b70: PUSH32 0x6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb01 00003b91: JUMPDEST 00003b92: SLOAD 00003b93: PUSH1 0x01 00003b95: PUSH1 0x01 00003b97: PUSH1 0x40 00003b99: SHL 00003b9a: SUB 00003b9b: AND 00003b9c: SWAP1 00003b9d: JUMP 00003b9e: JUMPDEST 00003b9f: SWAP3 00003ba0: PUSH1 0x0d 00003ba2: SLOAD 00003ba3: SWAP2 00003ba4: PUSH1 0x0b 00003ba6: SLOAD 00003ba7: SWAP1 00003ba8: PUSH1 0x01 00003baa: PUSH1 0x01 00003bac: PUSH1 0x40 00003bae: SHL 00003baf: SUB 00003bb0: PUSH1 0x0c 00003bb2: SLOAD 00003bb3: SWAP4 00003bb4: AND 00003bb5: SWAP4 00003bb6: JUMPDEST 00003bb7: PUSH1 0x01 00003bb9: PUSH1 0x01 00003bbb: PUSH1 0x40 00003bbd: SHL 00003bbe: SUB 00003bbf: DUP8 00003bc0: AND 00003bc1: SWAP2 00003bc2: DUP3 00003bc3: DUP7 00003bc4: LT 00003bc5: ISZERO 00003bc6: DUP1 00003bc7: PUSH2 0x3c7b 00003bca: JUMPI 00003bcb: JUMPDEST 00003bcc: ISZERO 00003bcd: PUSH2 0x3c3e 00003bd0: JUMPI 00003bd1: SWAP2 00003bd2: PUSH2 0x3c31 00003bd5: PUSH2 0x3b91 00003bd8: PUSH2 0x3c2b 00003bdb: DUP5 00003bdc: PUSH2 0x3c24 00003bdf: PUSH2 0x3c0c 00003be2: PUSH2 0x3bf1 00003be5: PUSH2 0x3c37 00003be8: SWAP9 00003be9: DUP16 00003bea: SWAP11 00003beb: DUP10 00003bec: SWAP1 00003bed: PUSH2 0x495f 00003bf0: JUMP 00003bf1: JUMPDEST 00003bf2: SWAP6 00003bf3: SWAP1 00003bf4: SWAP8 00003bf5: SWAP10 00003bf6: PUSH1 0x01 00003bf8: PUSH1 0x01 00003bfa: PUSH1 0x40 00003bfc: SHL 00003bfd: SUB 00003bfe: AND 00003bff: PUSH0 00003c00: MSTORE 00003c01: PUSH1 0x10 00003c03: PUSH1 0x20 00003c05: MSTORE 00003c06: PUSH1 0x40 00003c08: PUSH0 00003c09: KECCAK256 00003c0a: SWAP1 00003c0b: JUMP 00003c0c: JUMPDEST 00003c0d: SWAP13 00003c0e: PUSH1 0x01 00003c10: PUSH1 0x01 00003c12: PUSH1 0x40 00003c14: SHL 00003c15: SUB 00003c16: AND 00003c17: PUSH0 00003c18: MSTORE 00003c19: PUSH1 0x11 00003c1b: PUSH1 0x20 00003c1d: MSTORE 00003c1e: PUSH1 0x40 00003c20: PUSH0 00003c21: KECCAK256 00003c22: SWAP1 00003c23: JUMP 00003c24: JUMPDEST 00003c25: SLOAD 00003c26: SWAP1 00003c27: PUSH2 0x33b6 00003c2a: JUMP 00003c2b: JUMPDEST 00003c2c: SWAP7 00003c2d: PUSH2 0x3b2d 00003c30: JUMP 00003c31: JUMPDEST 00003c32: SWAP4 00003c33: PUSH2 0x3b2d 00003c36: JUMP 00003c37: JUMPDEST 00003c38: SWAP2 00003c39: SWAP3 00003c3a: PUSH2 0x3bb6 00003c3d: JUMP 00003c3e: JUMPDEST 00003c3f: SWAP2 00003c40: POP 00003c41: SWAP3 00003c42: SWAP5 00003c43: SWAP4 00003c44: SWAP2 00003c45: SWAP6 00003c46: PUSH1 0x01 00003c48: PUSH1 0x01 00003c4a: PUSH1 0x40 00003c4c: SHL 00003c4d: SUB 00003c4e: AND 00003c4f: PUSH2 0x3c57 00003c52: JUMPI 00003c53: POP 00003c54: POP 00003c55: POP 00003c56: JUMP 00003c57: JUMPDEST 00003c58: PUSH2 0x3c78 00003c5b: SWAP4 00003c5c: SWAP6 00003c5d: SWAP5 00003c5e: SWAP3 00003c5f: PUSH2 0x3c72 00003c62: SWAP3 00003c63: PUSH2 0x3c6b 00003c66: SWAP3 00003c67: PUSH2 0x495f 00003c6a: JUMP 00003c6b: JUMPDEST 00003c6c: SWAP1 00003c6d: SWAP3 00003c6e: PUSH2 0x3b2d 00003c71: JUMP 00003c72: JUMPDEST 00003c73: SWAP3 00003c74: PUSH2 0x3b2d 00003c77: JUMP 00003c78: JUMPDEST 00003c79: SWAP2 00003c7a: JUMP 00003c7b: JUMPDEST 00003c7c: POP 00003c7d: DUP3 00003c7e: ISZERO 00003c7f: ISZERO 00003c80: PUSH2 0x3bcb 00003c83: JUMP 00003c84: JUMPDEST 00003c85: SWAP2 00003c86: POP 00003c87: POP 00003c88: PUSH1 0x0b 00003c8a: SLOAD 00003c8b: SWAP1 00003c8c: PUSH1 0x0c 00003c8e: SLOAD 00003c8f: SWAP1 00003c90: JUMP 00003c91: JUMPDEST 00003c92: PUSH7 0x2386f26fc10000 00003c9a: PUSH2 0x3ca1 00003c9d: PUSH2 0x3b3a 00003ca0: JUMP 00003ca1: JUMPDEST 00003ca2: POP 00003ca3: DIV 00003ca4: SWAP1 00003ca5: PUSH1 0x01 00003ca7: DUP3 00003ca8: ADD 00003ca9: DUP1 00003caa: SWAP3 00003cab: GT 00003cac: PUSH2 0x0c5f 00003caf: JUMPI 00003cb0: PUSH0 00003cb1: MLOAD 00003cb2: PUSH1 0x20 00003cb4: PUSH2 0x4d22 00003cb7: PUSH0 00003cb8: CODECOPY 00003cb9: PUSH0 00003cba: MLOAD 00003cbb: SWAP1 00003cbc: PUSH0 00003cbd: MSTORE 00003cbe: SLOAD 00003cbf: PUSH1 0x01 00003cc1: DUP2 00003cc2: ADD 00003cc3: DUP1 00003cc4: SWAP2 00003cc5: GT 00003cc6: PUSH2 0x0c5f 00003cc9: JUMPI 00003cca: PUSH2 0x0fc7 00003ccd: SWAP3 00003cce: PUSH0 00003ccf: SWAP3 00003cd0: PUSH2 0x49a4 00003cd3: JUMP 00003cd4: JUMPDEST 00003cd5: PUSH7 0x2386f26fc10000 00003cdd: PUSH2 0x3ce4 00003ce0: PUSH2 0x3b3a 00003ce3: JUMP 00003ce4: JUMPDEST 00003ce5: POP 00003ce6: DIV 00003ce7: SWAP1 00003ce8: PUSH1 0x01 00003cea: DUP3 00003ceb: ADD 00003cec: DUP1 00003ced: SWAP3 00003cee: GT 00003cef: PUSH2 0x0c5f 00003cf2: JUMPI 00003cf3: PUSH0 00003cf4: MLOAD 00003cf5: PUSH1 0x20 00003cf7: PUSH2 0x4d22 00003cfa: PUSH0 00003cfb: CODECOPY 00003cfc: PUSH0 00003cfd: MLOAD 00003cfe: SWAP1 00003cff: PUSH0 00003d00: MSTORE 00003d01: SLOAD 00003d02: PUSH1 0x01 00003d04: DUP2 00003d05: ADD 00003d06: DUP1 00003d07: SWAP2 00003d08: GT 00003d09: PUSH2 0x0c5f 00003d0c: JUMPI 00003d0d: PUSH2 0x0fc7 00003d10: SWAP3 00003d11: PUSH1 0x01 00003d13: SWAP3 00003d14: PUSH2 0x49a4 00003d17: JUMP 00003d18: JUMPDEST 00003d19: PUSH0 00003d1a: MLOAD 00003d1b: PUSH1 0x20 00003d1d: PUSH2 0x4d22 00003d20: PUSH0 00003d21: CODECOPY 00003d22: PUSH0 00003d23: MLOAD 00003d24: SWAP1 00003d25: PUSH0 00003d26: MSTORE 00003d27: SLOAD 00003d28: SWAP1 00003d29: PUSH1 0x01 00003d2b: DUP3 00003d2c: ADD 00003d2d: DUP1 00003d2e: SWAP3 00003d2f: GT 00003d30: PUSH2 0x0c5f 00003d33: JUMPI 00003d34: PUSH7 0x2386f26fc10000 00003d3c: PUSH2 0x3d43 00003d3f: PUSH2 0x3b3a 00003d42: JUMP 00003d43: JUMPDEST 00003d44: POP 00003d45: DIV 00003d46: PUSH1 0x01 00003d48: DUP2 00003d49: ADD 00003d4a: DUP1 00003d4b: SWAP2 00003d4c: GT 00003d4d: PUSH2 0x0c5f 00003d50: JUMPI 00003d51: PUSH2 0x0fc7 00003d54: SWAP3 00003d55: PUSH1 0x01 00003d57: SWAP3 00003d58: PUSH2 0x49a4 00003d5b: JUMP 00003d5c: JUMPDEST 00003d5d: PUSH0 00003d5e: MLOAD 00003d5f: PUSH1 0x20 00003d61: PUSH2 0x4d22 00003d64: PUSH0 00003d65: CODECOPY 00003d66: PUSH0 00003d67: MLOAD 00003d68: SWAP1 00003d69: PUSH0 00003d6a: MSTORE 00003d6b: SLOAD 00003d6c: SWAP1 00003d6d: PUSH1 0x01 00003d6f: DUP3 00003d70: ADD 00003d71: DUP1 00003d72: SWAP3 00003d73: GT 00003d74: PUSH2 0x0c5f 00003d77: JUMPI 00003d78: PUSH7 0x2386f26fc10000 00003d80: PUSH2 0x3d87 00003d83: PUSH2 0x3b3a 00003d86: JUMP 00003d87: JUMPDEST 00003d88: POP 00003d89: DIV 00003d8a: PUSH1 0x01 00003d8c: DUP2 00003d8d: ADD 00003d8e: DUP1 00003d8f: SWAP2 00003d90: GT 00003d91: PUSH2 0x0c5f 00003d94: JUMPI 00003d95: PUSH2 0x0fc7 00003d98: SWAP3 00003d99: PUSH0 00003d9a: SWAP3 00003d9b: PUSH2 0x49a4 00003d9e: JUMP 00003d9f: JUMPDEST 00003da0: DUP1 00003da1: SLOAD 00003da2: PUSH1 0x01 00003da4: PUSH1 0x01 00003da6: PUSH1 0xc0 00003da8: SHL 00003da9: SUB 00003daa: NOT 00003dab: AND 00003dac: DUP2 00003dad: SSTORE 00003dae: TIMESTAMP 00003daf: SWAP2 00003db0: DUP3 00003db1: ADD 00003db2: SWAP2 00003db3: DUP3 00003db4: LT 00003db5: PUSH2 0x0c5f 00003db8: JUMPI 00003db9: DUP1 00003dba: SLOAD 00003dbb: PUSH1 0x01 00003dbd: PUSH1 0x01 00003dbf: PUSH1 0xc0 00003dc1: SHL 00003dc2: SUB 00003dc3: AND 00003dc4: PUSH1 0xc0 00003dc6: SWAP3 00003dc7: SWAP1 00003dc8: SWAP3 00003dc9: SHL 00003dca: PUSH1 0x01 00003dcc: PUSH1 0x01 00003dce: PUSH1 0xc0 00003dd0: SHL 00003dd1: SUB 00003dd2: NOT 00003dd3: AND 00003dd4: SWAP2 00003dd5: SWAP1 00003dd6: SWAP2 00003dd7: OR 00003dd8: SWAP1 00003dd9: SSTORE 00003dda: JUMP 00003ddb: JUMPDEST 00003ddc: PUSH1 0x01 00003dde: DUP1 00003ddf: PUSH1 0xb8 00003de1: SHL 00003de2: SUB 00003de3: AND 00003de4: PUSH1 0x01 00003de6: PUSH1 0x01 00003de8: PUSH1 0x40 00003dea: SHL 00003deb: SUB 00003dec: PUSH1 0xc0 00003dee: SHL 00003def: PUSH1 0x05 00003df1: SLOAD 00003df2: AND 00003df3: OR 00003df4: PUSH1 0x05 00003df6: SSTORE 00003df7: TIMESTAMP 00003df8: ADD 00003df9: DUP1 00003dfa: TIMESTAMP 00003dfb: GT 00003dfc: PUSH2 0x0c5f 00003dff: JUMPI 00003e00: PUSH1 0x05 00003e02: DUP1 00003e03: SLOAD 00003e04: PUSH1 0x01 00003e06: PUSH1 0x01 00003e08: PUSH1 0xc0 00003e0a: SHL 00003e0b: SUB 00003e0c: AND 00003e0d: PUSH1 0xc0 00003e0f: SWAP3 00003e10: SWAP1 00003e11: SWAP3 00003e12: SHL 00003e13: PUSH1 0x01 00003e15: PUSH1 0x01 00003e17: PUSH1 0xc0 00003e19: SHL 00003e1a: SUB 00003e1b: NOT 00003e1c: AND 00003e1d: SWAP2 00003e1e: SWAP1 00003e1f: SWAP2 00003e20: OR 00003e21: SWAP1 00003e22: SSTORE 00003e23: JUMP 00003e24: JUMPDEST 00003e25: PUSH1 0x01 00003e27: DUP1 00003e28: PUSH1 0xb8 00003e2a: SHL 00003e2b: SUB 00003e2c: AND 00003e2d: PUSH1 0x01 00003e2f: PUSH1 0x01 00003e31: PUSH1 0x40 00003e33: SHL 00003e34: SUB 00003e35: PUSH1 0xc0 00003e37: SHL 00003e38: PUSH1 0x12 00003e3a: SLOAD 00003e3b: AND 00003e3c: OR 00003e3d: PUSH1 0x12 00003e3f: SSTORE 00003e40: TIMESTAMP 00003e41: ADD 00003e42: DUP1 00003e43: TIMESTAMP 00003e44: GT 00003e45: PUSH2 0x0c5f 00003e48: JUMPI 00003e49: PUSH1 0x12 00003e4b: DUP1 00003e4c: SLOAD 00003e4d: PUSH1 0x01 00003e4f: PUSH1 0x01 00003e51: PUSH1 0xc0 00003e53: SHL 00003e54: SUB 00003e55: AND 00003e56: PUSH1 0xc0 00003e58: SWAP3 00003e59: SWAP1 00003e5a: SWAP3 00003e5b: SHL 00003e5c: PUSH1 0x01 00003e5e: PUSH1 0x01 00003e60: PUSH1 0xc0 00003e62: SHL 00003e63: SUB 00003e64: NOT 00003e65: AND 00003e66: SWAP2 00003e67: SWAP1 00003e68: SWAP2 00003e69: OR 00003e6a: SWAP1 00003e6b: SSTORE 00003e6c: JUMP 00003e6d: JUMPDEST 00003e6e: PUSH1 0x01 00003e70: DUP1 00003e71: PUSH1 0xb8 00003e73: SHL 00003e74: SUB 00003e75: AND 00003e76: PUSH1 0x01 00003e78: PUSH1 0x01 00003e7a: PUSH1 0x40 00003e7c: SHL 00003e7d: SUB 00003e7e: PUSH1 0xc0 00003e80: SHL 00003e81: PUSH1 0x13 00003e83: SLOAD 00003e84: AND 00003e85: OR 00003e86: PUSH1 0x13 00003e88: SSTORE 00003e89: TIMESTAMP 00003e8a: ADD 00003e8b: DUP1 00003e8c: TIMESTAMP 00003e8d: GT 00003e8e: PUSH2 0x0c5f 00003e91: JUMPI 00003e92: PUSH1 0x13 00003e94: DUP1 00003e95: SLOAD 00003e96: PUSH1 0x01 00003e98: PUSH1 0x01 00003e9a: PUSH1 0xc0 00003e9c: SHL 00003e9d: SUB 00003e9e: AND 00003e9f: PUSH1 0xc0 00003ea1: SWAP3 00003ea2: SWAP1 00003ea3: SWAP3 00003ea4: SHL 00003ea5: PUSH1 0x01 00003ea7: PUSH1 0x01 00003ea9: PUSH1 0xc0 00003eab: SHL 00003eac: SUB 00003ead: NOT 00003eae: AND 00003eaf: SWAP2 00003eb0: SWAP1 00003eb1: SWAP2 00003eb2: OR 00003eb3: SWAP1 00003eb4: SSTORE 00003eb5: JUMP 00003eb6: JUMPDEST 00003eb7: PUSH1 0x01 00003eb9: DUP1 00003eba: PUSH1 0xb8 00003ebc: SHL 00003ebd: SUB 00003ebe: AND 00003ebf: PUSH1 0x01 00003ec1: PUSH1 0x01 00003ec3: PUSH1 0x40 00003ec5: SHL 00003ec6: SUB 00003ec7: PUSH1 0xc0 00003ec9: SHL 00003eca: PUSH1 0x06 00003ecc: SLOAD 00003ecd: AND 00003ece: OR 00003ecf: PUSH1 0x06 00003ed1: SSTORE 00003ed2: TIMESTAMP 00003ed3: ADD 00003ed4: DUP1 00003ed5: TIMESTAMP 00003ed6: GT 00003ed7: PUSH2 0x0c5f 00003eda: JUMPI 00003edb: PUSH1 0x06 00003edd: DUP1 00003ede: SLOAD 00003edf: PUSH1 0x01 00003ee1: PUSH1 0x01 00003ee3: PUSH1 0xc0 00003ee5: SHL 00003ee6: SUB 00003ee7: AND 00003ee8: PUSH1 0xc0 00003eea: SWAP3 00003eeb: SWAP1 00003eec: SWAP3 00003eed: SHL 00003eee: PUSH1 0x01 00003ef0: PUSH1 0x01 00003ef2: PUSH1 0xc0 00003ef4: SHL 00003ef5: SUB 00003ef6: NOT 00003ef7: AND 00003ef8: SWAP2 00003ef9: SWAP1 00003efa: SWAP2 00003efb: OR 00003efc: SWAP1 00003efd: SSTORE 00003efe: JUMP 00003eff: JUMPDEST 00003f00: PUSH1 0x01 00003f02: PUSH1 0x01 00003f04: PUSH1 0xa0 00003f06: SHL 00003f07: SUB 00003f08: AND 00003f09: PUSH0 00003f0a: DUP2 00003f0b: DUP2 00003f0c: MSTORE 00003f0d: PUSH1 0x03 00003f0f: PUSH1 0x20 00003f11: MSTORE 00003f12: PUSH1 0x40 00003f14: SWAP1 00003f15: KECCAK256 00003f16: DUP1 00003f17: SLOAD 00003f18: PUSH1 0xff 00003f1a: NOT 00003f1b: AND 00003f1c: PUSH1 0xff 00003f1e: DUP5 00003f1f: ISZERO 00003f20: ISZERO 00003f21: AND 00003f22: OR 00003f23: SWAP1 00003f24: SSTORE 00003f25: SWAP1 00003f26: DUP2 00003f27: SWAP1 00003f28: PUSH1 0x40 00003f2a: MLOAD 00003f2b: SWAP1 00003f2c: ISZERO 00003f2d: ISZERO 00003f2e: DUP2 00003f2f: MSTORE 00003f30: PUSH32 0x7276f1d77fbb1794919362294fb870305193d894417c47c88716aa858f4272d3 00003f51: PUSH1 0x20 00003f53: CALLER 00003f54: SWAP3 00003f55: LOG3 00003f56: PUSH0 00003f57: MSTORE 00003f58: PUSH1 0x04 00003f5a: PUSH1 0x20 00003f5c: MSTORE 00003f5d: PUSH0 00003f5e: PUSH1 0x40 00003f60: DUP2 00003f61: KECCAK256 00003f62: SSTORE 00003f63: JUMP 00003f64: JUMPDEST 00003f65: PUSH1 0x14 00003f67: SLOAD 00003f68: PUSH1 0x01 00003f6a: PUSH1 0x01 00003f6c: PUSH1 0x40 00003f6e: SHL 00003f6f: SUB 00003f70: PUSH1 0x80 00003f72: SHL 00003f73: DUP3 00003f74: PUSH1 0x80 00003f76: SHL 00003f77: AND 00003f78: SWAP1 00003f79: PUSH1 0x01 00003f7b: PUSH1 0x01 00003f7d: PUSH1 0x40 00003f7f: SHL 00003f80: SUB 00003f81: PUSH1 0x80 00003f83: SHL 00003f84: NOT 00003f85: AND 00003f86: OR 00003f87: PUSH1 0x14 00003f89: SSTORE 00003f8a: PUSH1 0x01 00003f8c: PUSH1 0x01 00003f8e: PUSH1 0x40 00003f90: SHL 00003f91: SUB 00003f92: PUSH1 0x40 00003f94: MLOAD 00003f95: SWAP2 00003f96: AND 00003f97: DUP2 00003f98: MSTORE 00003f99: PUSH32 0x0cdc8c1df674ca6c4f86f6d47b02a15083c5d3bf098ea38f02c2762bad0afad2 00003fba: PUSH1 0x20 00003fbc: CALLER 00003fbd: SWAP3 00003fbe: LOG2 00003fbf: JUMP 00003fc0: JUMPDEST 00003fc1: SWAP2 00003fc2: SWAP1 00003fc3: PUSH2 0x3fcf 00003fc6: DUP2 00003fc7: PUSH2 0x079a 00003fca: DUP6 00003fcb: PUSH2 0x331f 00003fce: JUMP 00003fcf: JUMPDEST 00003fd0: SLOAD 00003fd1: PUSH0 00003fd2: NOT 00003fd3: DUP2 00003fd4: LT 00003fd5: PUSH2 0x3fdf 00003fd8: JUMPI 00003fd9: JUMPDEST 00003fda: POP 00003fdb: POP 00003fdc: POP 00003fdd: POP 00003fde: JUMP 00003fdf: JUMPDEST 00003fe0: DUP3 00003fe1: DUP2 00003fe2: LT 00003fe3: PUSH2 0x401d 00003fe6: JUMPI 00003fe7: PUSH1 0x01 00003fe9: PUSH1 0x01 00003feb: PUSH1 0xa0 00003fed: SHL 00003fee: SUB 00003fef: DUP5 00003ff0: AND 00003ff1: ISZERO 00003ff2: PUSH2 0x07fa 00003ff5: JUMPI 00003ff6: PUSH1 0x01 00003ff8: PUSH1 0x01 00003ffa: PUSH1 0xa0 00003ffc: SHL 00003ffd: SUB 00003ffe: DUP3 00003fff: AND 00004000: ISZERO 00004001: PUSH2 0x07e7 00004004: JUMPI 00004005: PUSH2 0x4013 00004008: SWAP3 00004009: PUSH2 0x079a 0000400c: SWAP2 0000400d: SUB 0000400e: SWAP4 0000400f: PUSH2 0x331f 00004012: JUMP 00004013: JUMPDEST 00004014: SSTORE 00004015: PUSH0 00004016: DUP1 00004017: DUP1 00004018: DUP1 00004019: PUSH2 0x3fd9 0000401c: JUMP 0000401d: JUMPDEST 0000401e: SWAP1 0000401f: PUSH4 0x7dc7a0d9 00004024: PUSH1 0xe1 00004026: SHL 00004027: PUSH0 00004028: MSTORE 00004029: PUSH1 0x01 0000402b: DUP1 0000402c: PUSH1 0xa0 0000402e: SHL 0000402f: SUB 00004030: AND 00004031: PUSH1 0x04 00004033: MSTORE 00004034: PUSH1 0x24 00004036: MSTORE 00004037: PUSH1 0x44 00004039: MSTORE 0000403a: PUSH1 0x64 0000403c: PUSH0 0000403d: REVERT 0000403e: JUMPDEST 0000403f: SWAP2 00004040: PUSH1 0x01 00004042: PUSH1 0x01 00004044: PUSH1 0xa0 00004046: SHL 00004047: SUB 00004048: DUP4 00004049: AND 0000404a: SWAP2 0000404b: DUP3 0000404c: ISZERO 0000404d: PUSH2 0x40f5 00004050: JUMPI 00004051: PUSH1 0x01 00004053: PUSH1 0x01 00004055: PUSH1 0xa0 00004057: SHL 00004058: SUB 00004059: DUP2 0000405a: AND 0000405b: SWAP4 0000405c: DUP5 0000405d: ISZERO 0000405e: PUSH2 0x40e2 00004061: JUMPI 00004062: PUSH2 0x406a 00004065: DUP2 00004066: PUSH2 0x3357 00004069: JUMP 0000406a: JUMPDEST 0000406b: SLOAD 0000406c: DUP4 0000406d: DUP2 0000406e: LT 0000406f: PUSH2 0x40bd 00004072: JUMPI 00004073: SWAP2 00004074: PUSH2 0x40ab 00004077: SWAP2 00004078: PUSH2 0x40a5 0000407b: DUP6 0000407c: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000409d: SWAP7 0000409e: SWAP6 0000409f: SUB 000040a0: SWAP2 000040a1: PUSH2 0x3357 000040a4: JUMP 000040a5: JUMPDEST 000040a6: SSTORE 000040a7: PUSH2 0x3357 000040aa: JUMP 000040ab: JUMPDEST 000040ac: DUP1 000040ad: SLOAD 000040ae: DUP3 000040af: ADD 000040b0: SWAP1 000040b1: SSTORE 000040b2: PUSH1 0x40 000040b4: MLOAD 000040b5: SWAP1 000040b6: DUP2 000040b7: MSTORE 000040b8: PUSH1 0x20 000040ba: SWAP1 000040bb: LOG3 000040bc: JUMP 000040bd: JUMPDEST 000040be: PUSH4 0x391434e3 000040c3: PUSH1 0xe2 000040c5: SHL 000040c6: PUSH0 000040c7: MSTORE 000040c8: PUSH1 0x01 000040ca: PUSH1 0x01 000040cc: PUSH1 0xa0 000040ce: SHL 000040cf: SUB 000040d0: SWAP1 000040d1: SWAP2 000040d2: AND 000040d3: PUSH1 0x04 000040d5: MSTORE 000040d6: PUSH1 0x24 000040d8: MSTORE 000040d9: PUSH1 0x44 000040db: DUP3 000040dc: SWAP1 000040dd: MSTORE 000040de: PUSH1 0x64 000040e0: PUSH0 000040e1: REVERT 000040e2: JUMPDEST 000040e3: PUSH4 0xec442f05 000040e8: PUSH1 0xe0 000040ea: SHL 000040eb: PUSH0 000040ec: MSTORE 000040ed: PUSH0 000040ee: PUSH1 0x04 000040f0: MSTORE 000040f1: PUSH1 0x24 000040f3: PUSH0 000040f4: REVERT 000040f5: JUMPDEST 000040f6: PUSH4 0x4b637e8f 000040fb: PUSH1 0xe1 000040fd: SHL 000040fe: PUSH0 000040ff: MSTORE 00004100: PUSH0 00004101: PUSH1 0x04 00004103: MSTORE 00004104: PUSH1 0x24 00004106: PUSH0 00004107: REVERT 00004108: JUMPDEST 00004109: PUSH1 0x14 0000410b: DUP1 0000410c: SLOAD 0000410d: PUSH1 0x01 0000410f: PUSH1 0x01 00004111: PUSH1 0xc0 00004113: SHL 00004114: SUB 00004115: AND 00004116: PUSH1 0xc0 00004118: DUP4 00004119: SWAP1 0000411a: SHL 0000411b: PUSH1 0x01 0000411d: PUSH1 0x01 0000411f: PUSH1 0xc0 00004121: SHL 00004122: SUB 00004123: NOT 00004124: AND 00004125: OR 00004126: SWAP1 00004127: SSTORE 00004128: PUSH1 0x40 0000412a: MLOAD 0000412b: PUSH1 0x01 0000412d: PUSH1 0x01 0000412f: PUSH1 0x40 00004131: SHL 00004132: SUB 00004133: SWAP2 00004134: SWAP1 00004135: SWAP2 00004136: AND 00004137: DUP2 00004138: MSTORE 00004139: CALLER 0000413a: SWAP1 0000413b: PUSH32 0x37df918c2fd5f0501a9fdf1651bcdbad7a05d7b163702a82bbe497ee835ebc47 0000415c: SWAP1 0000415d: PUSH1 0x20 0000415f: SWAP1 00004160: LOG2 00004161: JUMP 00004162: JUMPDEST 00004163: PUSH0 00004164: MLOAD 00004165: PUSH1 0x20 00004167: PUSH2 0x4d02 0000416a: PUSH0 0000416b: CODECOPY 0000416c: PUSH0 0000416d: MLOAD 0000416e: SWAP1 0000416f: PUSH0 00004170: MSTORE 00004171: SLOAD 00004172: PUSH1 0x01 00004174: PUSH1 0x01 00004176: PUSH1 0xa0 00004178: SHL 00004179: SUB 0000417a: AND 0000417b: CALLER 0000417c: SUB 0000417d: PUSH2 0x1b97 00004180: JUMPI 00004181: JUMP 00004182: JUMPDEST 00004183: PUSH1 0xff 00004185: PUSH0 00004186: MLOAD 00004187: PUSH1 0x20 00004189: PUSH2 0x4da2 0000418c: PUSH0 0000418d: CODECOPY 0000418e: PUSH0 0000418f: MLOAD 00004190: SWAP1 00004191: PUSH0 00004192: MSTORE 00004193: SLOAD 00004194: AND 00004195: PUSH2 0x419a 00004198: JUMPI 00004199: JUMP 0000419a: JUMPDEST 0000419b: PUSH4 0xd93c0665 000041a0: PUSH1 0xe0 000041a2: SHL 000041a3: PUSH0 000041a4: MSTORE 000041a5: PUSH1 0x04 000041a7: PUSH0 000041a8: REVERT 000041a9: JUMPDEST 000041aa: RETURNDATASIZE 000041ab: ISZERO 000041ac: PUSH2 0x41d3 000041af: JUMPI 000041b0: RETURNDATASIZE 000041b1: SWAP1 000041b2: PUSH2 0x41ba 000041b5: DUP3 000041b6: PUSH2 0x19ef 000041b9: JUMP 000041ba: JUMPDEST 000041bb: SWAP2 000041bc: PUSH2 0x41c8 000041bf: PUSH1 0x40 000041c1: MLOAD 000041c2: SWAP4 000041c3: DUP5 000041c4: PUSH2 0x0ee8 000041c7: JUMP 000041c8: JUMPDEST 000041c9: DUP3 000041ca: MSTORE 000041cb: RETURNDATASIZE 000041cc: PUSH0 000041cd: PUSH1 0x20 000041cf: DUP5 000041d0: ADD 000041d1: RETURNDATACOPY 000041d2: JUMP 000041d3: JUMPDEST 000041d4: PUSH1 0x60 000041d6: SWAP1 000041d7: JUMP 000041d8: JUMPDEST 000041d9: PUSH0 000041da: DUP1 000041db: SWAP2 000041dc: PUSH1 0x20 000041de: DUP2 000041df: MLOAD 000041e0: SWAP2 000041e1: ADD 000041e2: PUSH32 0x0000000000000000000000006cd5b7952245ad44e436644ff928bfab322f29fc 00004203: GAS 00004204: DELEGATECALL 00004205: PUSH2 0x420c 00004208: PUSH2 0x41a9 0000420b: JUMP 0000420c: JUMPDEST 0000420d: SWAP1 0000420e: ISZERO 0000420f: PUSH2 0x4215 00004212: JUMPI 00004213: SWAP1 00004214: JUMP 00004215: JUMPDEST 00004216: PUSH1 0x20 00004218: DUP2 00004219: MLOAD 0000421a: SWAP2 0000421b: ADD 0000421c: REVERT 0000421d: JUMPDEST 0000421e: PUSH0 0000421f: MLOAD 00004220: PUSH1 0x20 00004222: PUSH2 0x4e02 00004225: PUSH0 00004226: CODECOPY 00004227: PUSH0 00004228: MLOAD 00004229: SWAP1 0000422a: PUSH0 0000422b: MSTORE 0000422c: DUP1 0000422d: SLOAD 0000422e: PUSH1 0x01 00004230: PUSH1 0x01 00004232: PUSH1 0xa0 00004234: SHL 00004235: SUB 00004236: NOT 00004237: SWAP1 00004238: DUP2 00004239: AND 0000423a: SWAP1 0000423b: SWAP2 0000423c: SSTORE 0000423d: PUSH0 0000423e: MLOAD 0000423f: PUSH1 0x20 00004241: PUSH2 0x4d02 00004244: PUSH0 00004245: CODECOPY 00004246: PUSH0 00004247: MLOAD 00004248: SWAP1 00004249: PUSH0 0000424a: MSTORE 0000424b: DUP1 0000424c: SLOAD 0000424d: SWAP2 0000424e: DUP3 0000424f: AND 00004250: PUSH1 0x01 00004252: PUSH1 0x01 00004254: PUSH1 0xa0 00004256: SHL 00004257: SUB 00004258: SWAP4 00004259: DUP5 0000425a: AND 0000425b: SWAP1 0000425c: DUP2 0000425d: OR 0000425e: SWAP1 0000425f: SWAP2 00004260: SSTORE 00004261: SWAP2 00004262: AND 00004263: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00004284: PUSH0 00004285: DUP1 00004286: LOG3 00004287: JUMP 00004288: JUMPDEST 00004289: PUSH1 0x02 0000428b: PUSH0 0000428c: MLOAD 0000428d: PUSH1 0x20 0000428f: PUSH2 0x4dc2 00004292: PUSH0 00004293: CODECOPY 00004294: PUSH0 00004295: MLOAD 00004296: SWAP1 00004297: PUSH0 00004298: MSTORE 00004299: SLOAD 0000429a: EQ 0000429b: PUSH2 0x42b1 0000429e: JUMPI 0000429f: PUSH1 0x02 000042a1: PUSH0 000042a2: MLOAD 000042a3: PUSH1 0x20 000042a5: PUSH2 0x4dc2 000042a8: PUSH0 000042a9: CODECOPY 000042aa: PUSH0 000042ab: MLOAD 000042ac: SWAP1 000042ad: PUSH0 000042ae: MSTORE 000042af: SSTORE 000042b0: JUMP 000042b1: JUMPDEST 000042b2: PUSH4 0x3ee5aeb5 000042b7: PUSH1 0xe0 000042b9: SHL 000042ba: PUSH0 000042bb: MSTORE 000042bc: PUSH1 0x04 000042be: PUSH0 000042bf: REVERT 000042c0: JUMPDEST 000042c1: PUSH1 0x01 000042c3: PUSH1 0x01 000042c5: PUSH1 0xa0 000042c7: SHL 000042c8: SUB 000042c9: DUP2 000042ca: AND 000042cb: SWAP2 000042cc: SWAP1 000042cd: DUP3 000042ce: ISZERO 000042cf: PUSH2 0x40f5 000042d2: JUMPI 000042d3: PUSH2 0x42db 000042d6: DUP2 000042d7: PUSH2 0x3357 000042da: JUMP 000042db: JUMPDEST 000042dc: SLOAD 000042dd: DUP3 000042de: DUP2 000042df: LT 000042e0: PUSH2 0x4336 000042e3: JUMPI 000042e4: SWAP2 000042e5: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004306: SWAP2 00004307: PUSH2 0x4314 0000430a: DUP3 0000430b: PUSH0 0000430c: SWAP7 0000430d: SWAP6 0000430e: SUB 0000430f: SWAP2 00004310: PUSH2 0x3357 00004313: JUMP 00004314: JUMPDEST 00004315: SSTORE 00004316: PUSH0 00004317: MLOAD 00004318: PUSH1 0x20 0000431a: PUSH2 0x4d22 0000431d: PUSH0 0000431e: CODECOPY 0000431f: PUSH0 00004320: MLOAD 00004321: SWAP1 00004322: PUSH0 00004323: MSTORE 00004324: DUP1 00004325: SLOAD 00004326: DUP3 00004327: SWAP1 00004328: SUB 00004329: SWAP1 0000432a: SSTORE 0000432b: PUSH1 0x40 0000432d: MLOAD 0000432e: SWAP1 0000432f: DUP2 00004330: MSTORE 00004331: PUSH1 0x20 00004333: SWAP1 00004334: LOG3 00004335: JUMP 00004336: JUMPDEST 00004337: PUSH4 0x391434e3 0000433c: PUSH1 0xe2 0000433e: SHL 0000433f: PUSH0 00004340: MSTORE 00004341: PUSH1 0x01 00004343: PUSH1 0x01 00004345: PUSH1 0xa0 00004347: SHL 00004348: SUB 00004349: SWAP1 0000434a: SWAP2 0000434b: AND 0000434c: PUSH1 0x04 0000434e: MSTORE 0000434f: PUSH1 0x24 00004351: MSTORE 00004352: PUSH1 0x44 00004354: MSTORE 00004355: PUSH1 0x64 00004357: PUSH0 00004358: REVERT 00004359: JUMPDEST 0000435a: PUSH3 0x127500 0000435e: DUP2 0000435f: GT 00004360: PUSH2 0x437d 00004363: JUMPI 00004364: PUSH3 0x015180 00004368: GT 00004369: PUSH2 0x436e 0000436c: JUMPI 0000436d: JUMP 0000436e: JUMPDEST 0000436f: PUSH4 0x1a1593df 00004374: PUSH1 0xe1 00004376: SHL 00004377: PUSH0 00004378: MSTORE 00004379: PUSH1 0x04 0000437b: PUSH0 0000437c: REVERT 0000437d: JUMPDEST 0000437e: PUSH4 0x46fedb57 00004383: PUSH1 0xe0 00004385: SHL 00004386: PUSH0 00004387: MSTORE 00004388: PUSH1 0x04 0000438a: PUSH0 0000438b: REVERT 0000438c: JUMPDEST 0000438d: DUP1 0000438e: PUSH1 0x08 00004390: SSTORE 00004391: PUSH1 0x40 00004393: MLOAD 00004394: SWAP1 00004395: DUP2 00004396: MSTORE 00004397: PUSH32 0xd28e9b90ee9b37c5936ff84392d71f29ff18117d7e76bcee60615262a90a3f75 000043b8: PUSH1 0x20 000043ba: CALLER 000043bb: SWAP3 000043bc: LOG2 000043bd: PUSH0 000043be: PUSH1 0x05 000043c0: SSTORE 000043c1: JUMP 000043c2: JUMPDEST 000043c3: DUP1 000043c4: PUSH1 0x09 000043c6: SSTORE 000043c7: PUSH1 0x40 000043c9: MLOAD 000043ca: SWAP1 000043cb: DUP2 000043cc: MSTORE 000043cd: PUSH32 0x51fa58fd85e72d533eb3933ef4dd0bb83a9614f46e076ffa025b0dcbb8dff315 000043ee: PUSH1 0x20 000043f0: CALLER 000043f1: SWAP3 000043f2: LOG2 000043f3: JUMP 000043f4: JUMPDEST 000043f5: PUSH1 0x01 000043f7: DUP1 000043f8: PUSH1 0xa0 000043fa: SHL 000043fb: SUB 000043fc: AND 000043fd: PUSH12 0xffffffffffffffffffffffff 0000440a: PUSH1 0xa0 0000440c: SHL 0000440d: PUSH1 0x07 0000440f: SLOAD 00004410: AND 00004411: OR 00004412: PUSH1 0x07 00004414: SSTORE 00004415: TIMESTAMP 00004416: ADD 00004417: DUP1 00004418: TIMESTAMP 00004419: GT 0000441a: PUSH2 0x0c5f 0000441d: JUMPI 0000441e: PUSH1 0x07 00004420: DUP1 00004421: SLOAD 00004422: PUSH8 0xffffffffffffffff 0000442b: PUSH1 0xa0 0000442d: SHL 0000442e: NOT 0000442f: AND 00004430: PUSH1 0xa0 00004432: SWAP3 00004433: SWAP1 00004434: SWAP3 00004435: SHL 00004436: PUSH8 0xffffffffffffffff 0000443f: PUSH1 0xa0 00004441: SHL 00004442: AND 00004443: SWAP2 00004444: SWAP1 00004445: SWAP2 00004446: OR 00004447: SWAP1 00004448: SSTORE 00004449: JUMP 0000444a: JUMPDEST 0000444b: PUSH1 0x01 0000444d: DUP1 0000444e: PUSH1 0xa0 00004450: SHL 00004451: SUB 00004452: AND 00004453: DUP1 00004454: PUSH12 0xffffffffffffffffffffffff 00004461: PUSH1 0xa0 00004463: SHL 00004464: PUSH0 00004465: SLOAD 00004466: AND 00004467: OR 00004468: PUSH0 00004469: SSTORE 0000446a: PUSH1 0x40 0000446c: MLOAD 0000446d: SWAP1 0000446e: DUP2 0000446f: MSTORE 00004470: PUSH32 0xcb11cc8aade2f5a556749d1b2380d108a16fac3431e6a5d5ce12ef9de0bd76e3 00004491: PUSH1 0x20 00004493: CALLER 00004494: SWAP3 00004495: LOG2 00004496: PUSH0 00004497: PUSH1 0x07 00004499: SSTORE 0000449a: JUMP 0000449b: JUMPDEST 0000449c: PUSH2 0x44a3 0000449f: PUSH2 0x4b57 000044a2: JUMP 000044a3: JUMPDEST 000044a4: DUP1 000044a5: MLOAD 000044a6: SWAP1 000044a7: PUSH1 0x01 000044a9: PUSH1 0x01 000044ab: PUSH1 0x40 000044ad: SHL 000044ae: SUB 000044af: DUP3 000044b0: GT 000044b1: PUSH2 0x0ead 000044b4: JUMPI 000044b5: PUSH2 0x44d4 000044b8: DUP3 000044b9: PUSH2 0x44cf 000044bc: PUSH0 000044bd: MLOAD 000044be: PUSH1 0x20 000044c0: PUSH2 0x4cc2 000044c3: PUSH0 000044c4: CODECOPY 000044c5: PUSH0 000044c6: MLOAD 000044c7: SWAP1 000044c8: PUSH0 000044c9: MSTORE 000044ca: SLOAD 000044cb: PUSH2 0x32e7 000044ce: JUMP 000044cf: JUMPDEST 000044d0: PUSH2 0x45c6 000044d3: JUMP 000044d4: JUMPDEST 000044d5: PUSH1 0x20 000044d7: SWAP1 000044d8: PUSH1 0x1f 000044da: DUP4 000044db: GT 000044dc: PUSH1 0x01 000044de: EQ 000044df: PUSH2 0x4527 000044e2: JUMPI 000044e3: SWAP2 000044e4: DUP1 000044e5: PUSH2 0x4508 000044e8: SWAP3 000044e9: PUSH2 0x0753 000044ec: SWAP6 000044ed: SWAP5 000044ee: PUSH0 000044ef: SWAP3 000044f0: PUSH2 0x451c 000044f3: JUMPI 000044f4: JUMPDEST 000044f5: POP 000044f6: POP 000044f7: DUP2 000044f8: PUSH1 0x01 000044fa: SHL 000044fb: SWAP2 000044fc: PUSH0 000044fd: NOT 000044fe: SWAP1 000044ff: PUSH1 0x03 00004501: SHL 00004502: SHR 00004503: NOT 00004504: AND 00004505: OR 00004506: SWAP1 00004507: JUMP 00004508: JUMPDEST 00004509: PUSH0 0000450a: MLOAD 0000450b: PUSH1 0x20 0000450d: PUSH2 0x4cc2 00004510: PUSH0 00004511: CODECOPY 00004512: PUSH0 00004513: MLOAD 00004514: SWAP1 00004515: PUSH0 00004516: MSTORE 00004517: SSTORE 00004518: PUSH2 0x4671 0000451b: JUMP 0000451c: JUMPDEST 0000451d: ADD 0000451e: MLOAD 0000451f: SWAP1 00004520: POP 00004521: PUSH0 00004522: DUP1 00004523: PUSH2 0x44f4 00004526: JUMP 00004527: JUMPDEST 00004528: PUSH0 00004529: MLOAD 0000452a: PUSH1 0x20 0000452c: PUSH2 0x4cc2 0000452f: PUSH0 00004530: CODECOPY 00004531: PUSH0 00004532: MLOAD 00004533: SWAP1 00004534: PUSH0 00004535: MSTORE 00004536: PUSH0 00004537: MSTORE 00004538: PUSH1 0x1f 0000453a: NOT 0000453b: DUP4 0000453c: AND 0000453d: SWAP2 0000453e: SWAP1 0000453f: PUSH32 0x2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0 00004560: SWAP3 00004561: PUSH0 00004562: JUMPDEST 00004563: DUP2 00004564: DUP2 00004565: LT 00004566: PUSH2 0x45ae 00004569: JUMPI 0000456a: POP 0000456b: SWAP2 0000456c: PUSH1 0x01 0000456e: SWAP4 0000456f: SWAP2 00004570: DUP6 00004571: PUSH2 0x0753 00004574: SWAP8 00004575: SWAP7 00004576: SWAP5 00004577: LT 00004578: PUSH2 0x4596 0000457b: JUMPI 0000457c: JUMPDEST 0000457d: POP 0000457e: POP 0000457f: POP 00004580: DUP2 00004581: SHL 00004582: ADD 00004583: PUSH0 00004584: MLOAD 00004585: PUSH1 0x20 00004587: PUSH2 0x4cc2 0000458a: PUSH0 0000458b: CODECOPY 0000458c: PUSH0 0000458d: MLOAD 0000458e: SWAP1 0000458f: PUSH0 00004590: MSTORE 00004591: SSTORE 00004592: PUSH2 0x4671 00004595: JUMP 00004596: JUMPDEST 00004597: ADD 00004598: MLOAD 00004599: PUSH0 0000459a: NOT 0000459b: PUSH1 0xf8 0000459d: DUP5 0000459e: PUSH1 0x03 000045a0: SHL 000045a1: AND 000045a2: SHR 000045a3: NOT 000045a4: AND 000045a5: SWAP1 000045a6: SSTORE 000045a7: PUSH0 000045a8: DUP1 000045a9: DUP1 000045aa: PUSH2 0x457c 000045ad: JUMP 000045ae: JUMPDEST 000045af: SWAP3 000045b0: SWAP4 000045b1: PUSH1 0x20 000045b3: PUSH1 0x01 000045b5: DUP2 000045b6: SWAP3 000045b7: DUP8 000045b8: DUP7 000045b9: ADD 000045ba: MLOAD 000045bb: DUP2 000045bc: SSTORE 000045bd: ADD 000045be: SWAP6 000045bf: ADD 000045c0: SWAP4 000045c1: ADD 000045c2: PUSH2 0x4562 000045c5: JUMP 000045c6: JUMPDEST 000045c7: PUSH1 0x1f 000045c9: DUP2 000045ca: GT 000045cb: PUSH2 0x45d2 000045ce: JUMPI 000045cf: POP 000045d0: POP 000045d1: JUMP 000045d2: JUMPDEST 000045d3: PUSH0 000045d4: MLOAD 000045d5: PUSH1 0x20 000045d7: PUSH2 0x4cc2 000045da: PUSH0 000045db: CODECOPY 000045dc: PUSH0 000045dd: MLOAD 000045de: SWAP1 000045df: PUSH0 000045e0: MSTORE 000045e1: PUSH0 000045e2: MSTORE 000045e3: PUSH1 0x20 000045e5: PUSH0 000045e6: KECCAK256 000045e7: SWAP1 000045e8: PUSH1 0x20 000045ea: PUSH1 0x1f 000045ec: DUP5 000045ed: ADD 000045ee: PUSH1 0x05 000045f0: SHR 000045f1: DUP4 000045f2: ADD 000045f3: SWAP4 000045f4: LT 000045f5: PUSH2 0x4618 000045f8: JUMPI 000045f9: JUMPDEST 000045fa: PUSH1 0x1f 000045fc: ADD 000045fd: PUSH1 0x05 000045ff: SHR 00004600: ADD 00004601: SWAP1 00004602: JUMPDEST 00004603: DUP2 00004604: DUP2 00004605: LT 00004606: PUSH2 0x460d 00004609: JUMPI 0000460a: POP 0000460b: POP 0000460c: JUMP 0000460d: JUMPDEST 0000460e: PUSH0 0000460f: DUP2 00004610: SSTORE 00004611: PUSH1 0x01 00004613: ADD 00004614: PUSH2 0x4602 00004617: JUMP 00004618: JUMPDEST 00004619: SWAP1 0000461a: SWAP2 0000461b: POP 0000461c: DUP2 0000461d: SWAP1 0000461e: PUSH2 0x45f9 00004621: JUMP 00004622: JUMPDEST 00004623: PUSH1 0x1f 00004625: DUP3 00004626: GT 00004627: PUSH2 0x462f 0000462a: JUMPI 0000462b: POP 0000462c: POP 0000462d: POP 0000462e: JUMP 0000462f: JUMPDEST 00004630: PUSH0 00004631: MSTORE 00004632: PUSH1 0x20 00004634: PUSH0 00004635: KECCAK256 00004636: SWAP1 00004637: PUSH1 0x20 00004639: PUSH1 0x1f 0000463b: DUP5 0000463c: ADD 0000463d: PUSH1 0x05 0000463f: SHR 00004640: DUP4 00004641: ADD 00004642: SWAP4 00004643: LT 00004644: PUSH2 0x4667 00004647: JUMPI 00004648: JUMPDEST 00004649: PUSH1 0x1f 0000464b: ADD 0000464c: PUSH1 0x05 0000464e: SHR 0000464f: ADD 00004650: SWAP1 00004651: JUMPDEST 00004652: DUP2 00004653: DUP2 00004654: LT 00004655: PUSH2 0x465c 00004658: JUMPI 00004659: POP 0000465a: POP 0000465b: JUMP 0000465c: JUMPDEST 0000465d: PUSH0 0000465e: DUP2 0000465f: SSTORE 00004660: PUSH1 0x01 00004662: ADD 00004663: PUSH2 0x4651 00004666: JUMP 00004667: JUMPDEST 00004668: SWAP1 00004669: SWAP2 0000466a: POP 0000466b: DUP2 0000466c: SWAP1 0000466d: PUSH2 0x4648 00004670: JUMP 00004671: JUMPDEST 00004672: SWAP1 00004673: DUP2 00004674: MLOAD 00004675: PUSH1 0x01 00004677: PUSH1 0x01 00004679: PUSH1 0x40 0000467b: SHL 0000467c: SUB 0000467d: DUP2 0000467e: GT 0000467f: PUSH2 0x0ead 00004682: JUMPI 00004683: PUSH2 0x46b0 00004686: DUP2 00004687: PUSH2 0x469d 0000468a: PUSH0 0000468b: MLOAD 0000468c: PUSH1 0x20 0000468e: PUSH2 0x4ce2 00004691: PUSH0 00004692: CODECOPY 00004693: PUSH0 00004694: MLOAD 00004695: SWAP1 00004696: PUSH0 00004697: MSTORE 00004698: SLOAD 00004699: PUSH2 0x32e7 0000469c: JUMP 0000469d: JUMPDEST 0000469e: PUSH0 0000469f: MLOAD 000046a0: PUSH1 0x20 000046a2: PUSH2 0x4ce2 000046a5: PUSH0 000046a6: CODECOPY 000046a7: PUSH0 000046a8: MLOAD 000046a9: SWAP1 000046aa: PUSH0 000046ab: MSTORE 000046ac: PUSH2 0x4622 000046af: JUMP 000046b0: JUMPDEST 000046b1: PUSH1 0x20 000046b3: SWAP3 000046b4: PUSH1 0x1f 000046b6: DUP3 000046b7: GT 000046b8: PUSH1 0x01 000046ba: EQ 000046bb: PUSH2 0x46f0 000046be: JUMPI 000046bf: PUSH2 0x46df 000046c2: SWAP3 000046c3: SWAP4 000046c4: DUP3 000046c5: SWAP2 000046c6: PUSH0 000046c7: SWAP3 000046c8: PUSH2 0x451c 000046cb: JUMPI 000046cc: POP 000046cd: POP 000046ce: DUP2 000046cf: PUSH1 0x01 000046d1: SHL 000046d2: SWAP2 000046d3: PUSH0 000046d4: NOT 000046d5: SWAP1 000046d6: PUSH1 0x03 000046d8: SHL 000046d9: SHR 000046da: NOT 000046db: AND 000046dc: OR 000046dd: SWAP1 000046de: JUMP 000046df: JUMPDEST 000046e0: PUSH0 000046e1: MLOAD 000046e2: PUSH1 0x20 000046e4: PUSH2 0x4ce2 000046e7: PUSH0 000046e8: CODECOPY 000046e9: PUSH0 000046ea: MLOAD 000046eb: SWAP1 000046ec: PUSH0 000046ed: MSTORE 000046ee: SSTORE 000046ef: JUMP 000046f0: JUMPDEST 000046f1: PUSH0 000046f2: MLOAD 000046f3: PUSH1 0x20 000046f5: PUSH2 0x4ce2 000046f8: PUSH0 000046f9: CODECOPY 000046fa: PUSH0 000046fb: MLOAD 000046fc: SWAP1 000046fd: PUSH0 000046fe: MSTORE 000046ff: PUSH0 00004700: MSTORE 00004701: PUSH1 0x1f 00004703: NOT 00004704: DUP3 00004705: AND 00004706: SWAP4 00004707: PUSH32 0x46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa 00004728: SWAP2 00004729: PUSH0 0000472a: JUMPDEST 0000472b: DUP7 0000472c: DUP2 0000472d: LT 0000472e: PUSH2 0x476c 00004731: JUMPI 00004732: POP 00004733: DUP4 00004734: PUSH1 0x01 00004736: SWAP6 00004737: SWAP7 00004738: LT 00004739: PUSH2 0x4754 0000473c: JUMPI 0000473d: JUMPDEST 0000473e: POP 0000473f: POP 00004740: POP 00004741: DUP2 00004742: SHL 00004743: ADD 00004744: PUSH0 00004745: MLOAD 00004746: PUSH1 0x20 00004748: PUSH2 0x4ce2 0000474b: PUSH0 0000474c: CODECOPY 0000474d: PUSH0 0000474e: MLOAD 0000474f: SWAP1 00004750: PUSH0 00004751: MSTORE 00004752: SSTORE 00004753: JUMP 00004754: JUMPDEST 00004755: ADD 00004756: MLOAD 00004757: PUSH0 00004758: NOT 00004759: PUSH1 0xf8 0000475b: DUP5 0000475c: PUSH1 0x03 0000475e: SHL 0000475f: AND 00004760: SHR 00004761: NOT 00004762: AND 00004763: SWAP1 00004764: SSTORE 00004765: PUSH0 00004766: DUP1 00004767: DUP1 00004768: PUSH2 0x473d 0000476b: JUMP 0000476c: JUMPDEST 0000476d: SWAP2 0000476e: SWAP3 0000476f: PUSH1 0x20 00004771: PUSH1 0x01 00004773: DUP2 00004774: SWAP3 00004775: DUP7 00004776: DUP6 00004777: ADD 00004778: MLOAD 00004779: DUP2 0000477a: SSTORE 0000477b: ADD 0000477c: SWAP5 0000477d: ADD 0000477e: SWAP3 0000477f: ADD 00004780: PUSH2 0x472a 00004783: JUMP 00004784: JUMPDEST 00004785: PUSH2 0x478c 00004788: PUSH2 0x4b57 0000478b: JUMP 0000478c: JUMPDEST 0000478d: PUSH1 0x01 0000478f: PUSH1 0x01 00004791: PUSH1 0xa0 00004793: SHL 00004794: SUB 00004795: DUP2 00004796: AND 00004797: ISZERO 00004798: PUSH2 0x47a4 0000479b: JUMPI 0000479c: PUSH2 0x0753 0000479f: SWAP1 000047a0: PUSH2 0x421d 000047a3: JUMP 000047a4: JUMPDEST 000047a5: PUSH4 0x1e4fbdf7 000047aa: PUSH1 0xe0 000047ac: SHL 000047ad: PUSH0 000047ae: MSTORE 000047af: PUSH0 000047b0: PUSH1 0x04 000047b2: MSTORE 000047b3: PUSH1 0x24 000047b5: PUSH0 000047b6: REVERT 000047b7: JUMPDEST 000047b8: PUSH2 0x47bf 000047bb: PUSH2 0x4b57 000047be: JUMP 000047bf: JUMPDEST 000047c0: PUSH2 0x47c8 000047c3: DUP2 000047c4: PUSH2 0x4b82 000047c7: JUMP 000047c8: JUMPDEST 000047c9: SWAP1 000047ca: ISZERO 000047cb: PUSH2 0x480a 000047ce: JUMPI 000047cf: SWAP1 000047d0: JUMPDEST 000047d1: PUSH0 000047d2: MLOAD 000047d3: PUSH1 0x20 000047d5: PUSH2 0x4d82 000047d8: PUSH0 000047d9: CODECOPY 000047da: PUSH0 000047db: MLOAD 000047dc: SWAP1 000047dd: PUSH0 000047de: MSTORE 000047df: DUP1 000047e0: SLOAD 000047e1: PUSH1 0x01 000047e3: PUSH1 0x01 000047e5: PUSH1 0xa8 000047e7: SHL 000047e8: SUB 000047e9: NOT 000047ea: AND 000047eb: PUSH1 0xa0 000047ed: SWAP4 000047ee: SWAP1 000047ef: SWAP4 000047f0: SHL 000047f1: PUSH1 0xff 000047f3: PUSH1 0xa0 000047f5: SHL 000047f6: AND 000047f7: SWAP3 000047f8: SWAP1 000047f9: SWAP3 000047fa: OR 000047fb: PUSH1 0x01 000047fd: PUSH1 0x01 000047ff: PUSH1 0xa0 00004801: SHL 00004802: SUB 00004803: SWAP1 00004804: SWAP2 00004805: AND 00004806: OR 00004807: SWAP1 00004808: SSTORE 00004809: JUMP 0000480a: JUMPDEST 0000480b: POP 0000480c: PUSH1 0x12 0000480e: SWAP1 0000480f: PUSH2 0x47d0 00004812: JUMP 00004813: JUMPDEST 00004814: PUSH2 0x481b 00004817: PUSH2 0x4b57 0000481a: JUMP 0000481b: JUMPDEST 0000481c: PUSH1 0x01 0000481e: PUSH0 0000481f: MLOAD 00004820: PUSH1 0x20 00004822: PUSH2 0x4dc2 00004825: PUSH0 00004826: CODECOPY 00004827: PUSH0 00004828: MLOAD 00004829: SWAP1 0000482a: PUSH0 0000482b: MSTORE 0000482c: SSTORE 0000482d: JUMP 0000482e: JUMPDEST 0000482f: PUSH2 0x4836 00004832: PUSH2 0x4b57 00004835: JUMP 00004836: JUMPDEST 00004837: PUSH1 0xff 00004839: NOT 0000483a: PUSH0 0000483b: MLOAD 0000483c: PUSH1 0x20 0000483e: PUSH2 0x4da2 00004841: PUSH0 00004842: CODECOPY 00004843: PUSH0 00004844: MLOAD 00004845: SWAP1 00004846: PUSH0 00004847: MSTORE 00004848: SLOAD 00004849: AND 0000484a: PUSH0 0000484b: MLOAD 0000484c: PUSH1 0x20 0000484e: PUSH2 0x4da2 00004851: PUSH0 00004852: CODECOPY 00004853: PUSH0 00004854: MLOAD 00004855: SWAP1 00004856: PUSH0 00004857: MSTORE 00004858: SSTORE 00004859: JUMP 0000485a: JUMPDEST 0000485b: PUSH4 0x02faf080 00004860: LT 00004861: PUSH2 0x4866 00004864: JUMPI 00004865: JUMP 00004866: JUMPDEST 00004867: PUSH4 0x062f00d5 0000486c: PUSH1 0xe5 0000486e: SHL 0000486f: PUSH0 00004870: MSTORE 00004871: PUSH1 0x04 00004873: PUSH0 00004874: REVERT 00004875: JUMPDEST 00004876: PUSH1 0x01 00004878: PUSH1 0x01 0000487a: PUSH1 0x40 0000487c: SHL 0000487d: SUB 0000487e: SWAP1 0000487f: PUSH2 0x48a0 00004882: PUSH1 0x40 00004884: MLOAD 00004885: PUSH4 0x45fe329f 0000488a: PUSH1 0xe0 0000488c: SHL 0000488d: PUSH1 0x20 0000488f: DUP3 00004890: ADD 00004891: MSTORE 00004892: PUSH1 0x04 00004894: DUP2 00004895: MSTORE 00004896: PUSH2 0x1596 00004899: PUSH1 0x24 0000489b: DUP3 0000489c: PUSH2 0x0ee8 0000489f: JUMP 000048a0: JUMPDEST 000048a1: POP 000048a2: AND 000048a3: DUP1 000048a4: PUSH1 0x01 000048a6: PUSH1 0x01 000048a8: PUSH1 0x40 000048aa: SHL 000048ab: SUB 000048ac: NOT 000048ad: PUSH1 0x14 000048af: SLOAD 000048b0: AND 000048b1: OR 000048b2: PUSH1 0x14 000048b4: SSTORE 000048b5: PUSH1 0x40 000048b7: MLOAD 000048b8: SWAP1 000048b9: DUP2 000048ba: MSTORE 000048bb: PUSH32 0x20affe2401825617c69366f8c3a3493d9822d1021d0b3023c4e77ea5b3d0fbc5 000048dc: PUSH1 0x20 000048de: CALLER 000048df: SWAP3 000048e0: LOG2 000048e1: JUMP 000048e2: JUMPDEST 000048e3: PUSH1 0x01 000048e5: DUP1 000048e6: SLOAD 000048e7: PUSH1 0x01 000048e9: PUSH1 0x01 000048eb: PUSH1 0xa0 000048ed: SHL 000048ee: SUB 000048ef: NOT 000048f0: AND 000048f1: PUSH1 0x01 000048f3: PUSH1 0x01 000048f5: PUSH1 0xa0 000048f7: SHL 000048f8: SUB 000048f9: SWAP1 000048fa: SWAP3 000048fb: AND 000048fc: SWAP2 000048fd: DUP3 000048fe: OR 000048ff: SWAP1 00004900: SSTORE 00004901: PUSH1 0x40 00004903: MLOAD 00004904: SWAP1 00004905: DUP2 00004906: MSTORE 00004907: PUSH32 0xbd0a63c12948fbc9194a5839019f99c9d71db924e5c70018265bc778b8f1a506 00004928: SWAP1 00004929: PUSH1 0x20 0000492b: SWAP1 0000492c: LOG1 0000492d: JUMP 0000492e: JUMPDEST 0000492f: PUSH1 0x01 00004931: PUSH1 0x01 00004933: PUSH1 0x40 00004935: SHL 00004936: SUB 00004937: DUP2 00004938: GT 00004939: PUSH2 0x4948 0000493c: JUMPI 0000493d: PUSH1 0x01 0000493f: PUSH1 0x01 00004941: PUSH1 0x40 00004943: SHL 00004944: SUB 00004945: AND 00004946: SWAP1 00004947: JUMP 00004948: JUMPDEST 00004949: PUSH4 0x06dfcc65 0000494e: PUSH1 0xe4 00004950: SHL 00004951: PUSH0 00004952: MSTORE 00004953: PUSH1 0x40 00004955: PUSH1 0x04 00004957: MSTORE 00004958: PUSH1 0x24 0000495a: MSTORE 0000495b: PUSH1 0x44 0000495d: PUSH0 0000495e: REVERT 0000495f: JUMPDEST 00004960: DUP2 00004961: SUB 00004962: SWAP2 00004963: SWAP1 00004964: DUP3 00004965: GT 00004966: PUSH2 0x0c5f 00004969: JUMPI 0000496a: PUSH4 0x01e13380 0000496f: SWAP2 00004970: PUSH2 0x4978 00004973: SWAP2 00004974: PUSH2 0x33c3 00004977: JUMP 00004978: JUMPDEST 00004979: DIV 0000497a: SWAP1 0000497b: PUSH4 0x05f5e100 00004980: PUSH2 0x4994 00004983: PUSH1 0x01 00004985: PUSH1 0x01 00004987: PUSH1 0x40 00004989: SHL 0000498a: SUB 0000498b: PUSH1 0x14 0000498d: SLOAD 0000498e: AND 0000498f: DUP5 00004990: PUSH2 0x33c3 00004993: JUMP 00004994: JUMPDEST 00004995: DIV 00004996: SWAP2 00004997: DUP3 00004998: DUP2 00004999: SUB 0000499a: SWAP1 0000499b: DUP2 0000499c: GT 0000499d: PUSH2 0x0c5f 000049a0: JUMPI 000049a1: SWAP2 000049a2: SWAP1 000049a3: JUMP 000049a4: JUMPDEST 000049a5: SWAP2 000049a6: SWAP1 000049a7: PUSH2 0x49b1 000049aa: DUP3 000049ab: DUP3 000049ac: DUP6 000049ad: PUSH2 0x4bff 000049b0: JUMP 000049b1: JUMPDEST 000049b2: SWAP4 000049b3: PUSH1 0x04 000049b5: DUP2 000049b6: LT 000049b7: ISZERO 000049b8: PUSH2 0x49ee 000049bb: JUMPI 000049bc: PUSH1 0x01 000049be: DUP1 000049bf: SWAP2 000049c0: AND 000049c1: EQ 000049c2: SWAP3 000049c3: DUP4 000049c4: PUSH2 0x49d9 000049c7: JUMPI 000049c8: JUMPDEST 000049c9: POP 000049ca: POP 000049cb: POP 000049cc: ISZERO 000049cd: ISZERO 000049ce: DUP2 000049cf: ADD 000049d0: DUP1 000049d1: SWAP2 000049d2: GT 000049d3: PUSH2 0x0c5f 000049d6: JUMPI 000049d7: SWAP1 000049d8: JUMP 000049d9: JUMPDEST 000049da: SWAP1 000049db: SWAP2 000049dc: DUP1 000049dd: SWAP4 000049de: POP 000049df: ISZERO 000049e0: PUSH2 0x32e2 000049e3: JUMPI 000049e4: MULMOD 000049e5: ISZERO 000049e6: ISZERO 000049e7: PUSH0 000049e8: DUP1 000049e9: DUP1 000049ea: PUSH2 0x49c8 000049ed: JUMP 000049ee: JUMPDEST 000049ef: PUSH4 0x4e487b71 000049f4: PUSH1 0xe0 000049f6: SHL 000049f7: PUSH0 000049f8: MSTORE 000049f9: PUSH1 0x21 000049fb: PUSH1 0x04 000049fd: MSTORE 000049fe: PUSH1 0x24 00004a00: PUSH0 00004a01: REVERT 00004a02: JUMPDEST 00004a03: SWAP3 00004a04: SWAP2 00004a05: SWAP1 00004a06: PUSH0 00004a07: NOT 00004a08: DUP4 00004a09: EQ 00004a0a: PUSH2 0x4acf 00004a0d: JUMPI 00004a0e: PUSH1 0x01 00004a10: PUSH1 0x01 00004a12: PUSH1 0xa0 00004a14: SHL 00004a15: SUB 00004a16: DUP2 00004a17: DUP2 00004a18: AND 00004a19: SWAP1 00004a1a: DUP4 00004a1b: AND 00004a1c: EQ 00004a1d: DUP1 00004a1e: ISZERO 00004a1f: PUSH2 0x4ac7 00004a22: JUMPI 00004a23: JUMPDEST 00004a24: PUSH2 0x3fd9 00004a27: JUMPI 00004a28: PUSH1 0x40 00004a2a: MLOAD 00004a2b: PUSH4 0x23b872dd 00004a30: PUSH1 0xe0 00004a32: SHL 00004a33: PUSH1 0x20 00004a35: DUP3 00004a36: DUP2 00004a37: ADD 00004a38: SWAP2 00004a39: DUP3 00004a3a: MSTORE 00004a3b: PUSH1 0x01 00004a3d: PUSH1 0x01 00004a3f: PUSH1 0xa0 00004a41: SHL 00004a42: SUB 00004a43: SWAP4 00004a44: DUP5 00004a45: AND 00004a46: PUSH1 0x24 00004a48: DUP5 00004a49: ADD 00004a4a: MSTORE 00004a4b: SWAP3 00004a4c: SWAP1 00004a4d: SWAP4 00004a4e: AND 00004a4f: PUSH1 0x44 00004a51: DUP3 00004a52: ADD 00004a53: MSTORE 00004a54: PUSH1 0x64 00004a56: DUP2 00004a57: ADD 00004a58: SWAP4 00004a59: SWAP1 00004a5a: SWAP4 00004a5b: MSTORE 00004a5c: SWAP2 00004a5d: PUSH0 00004a5e: SWAP2 00004a5f: SWAP1 00004a60: PUSH2 0x4a6c 00004a63: DUP2 00004a64: PUSH1 0x84 00004a66: DUP2 00004a67: ADD 00004a68: PUSH2 0x1588 00004a6b: JUMP 00004a6c: JUMPDEST 00004a6d: MLOAD 00004a6e: SWAP1 00004a6f: DUP3 00004a70: DUP6 00004a71: GAS 00004a72: CALL 00004a73: ISZERO 00004a74: PUSH2 0x4abc 00004a77: JUMPI 00004a78: PUSH0 00004a79: MLOAD 00004a7a: RETURNDATASIZE 00004a7b: PUSH2 0x4ab3 00004a7e: JUMPI 00004a7f: POP 00004a80: PUSH1 0x01 00004a82: PUSH1 0x01 00004a84: PUSH1 0xa0 00004a86: SHL 00004a87: SUB 00004a88: DUP2 00004a89: AND 00004a8a: EXTCODESIZE 00004a8b: ISZERO 00004a8c: JUMPDEST 00004a8d: PUSH2 0x4a93 00004a90: JUMPI 00004a91: POP 00004a92: JUMP 00004a93: JUMPDEST 00004a94: PUSH4 0x5274afe7 00004a99: PUSH1 0xe0 00004a9b: SHL 00004a9c: PUSH0 00004a9d: SWAP1 00004a9e: DUP2 00004a9f: MSTORE 00004aa0: PUSH1 0x01 00004aa2: PUSH1 0x01 00004aa4: PUSH1 0xa0 00004aa6: SHL 00004aa7: SUB 00004aa8: SWAP2 00004aa9: SWAP1 00004aaa: SWAP2 00004aab: AND 00004aac: PUSH1 0x04 00004aae: MSTORE 00004aaf: PUSH1 0x24 00004ab1: SWAP1 00004ab2: REVERT 00004ab3: JUMPDEST 00004ab4: PUSH1 0x01 00004ab6: EQ 00004ab7: ISZERO 00004ab8: PUSH2 0x4a8c 00004abb: JUMP 00004abc: JUMPDEST 00004abd: PUSH1 0x40 00004abf: MLOAD 00004ac0: RETURNDATASIZE 00004ac1: PUSH0 00004ac2: DUP3 00004ac3: RETURNDATACOPY 00004ac4: RETURNDATASIZE 00004ac5: SWAP1 00004ac6: REVERT 00004ac7: JUMPDEST 00004ac8: POP 00004ac9: DUP3 00004aca: ISZERO 00004acb: PUSH2 0x4a23 00004ace: JUMP 00004acf: JUMPDEST 00004ad0: PUSH4 0x0d550c3b 00004ad5: PUSH1 0xe1 00004ad7: SHL 00004ad8: PUSH0 00004ad9: MSTORE 00004ada: PUSH1 0x04 00004adc: PUSH0 00004add: REVERT 00004ade: JUMPDEST 00004adf: PUSH1 0x01 00004ae1: PUSH1 0x01 00004ae3: PUSH1 0xa0 00004ae5: SHL 00004ae6: SUB 00004ae7: DUP2 00004ae8: AND 00004ae9: SWAP2 00004aea: SWAP1 00004aeb: DUP3 00004aec: ISZERO 00004aed: PUSH2 0x40e2 00004af0: JUMPI 00004af1: PUSH0 00004af2: MLOAD 00004af3: PUSH1 0x20 00004af5: PUSH2 0x4d22 00004af8: PUSH0 00004af9: CODECOPY 00004afa: PUSH0 00004afb: MLOAD 00004afc: SWAP1 00004afd: PUSH0 00004afe: MSTORE 00004aff: SLOAD 00004b00: SWAP1 00004b01: DUP3 00004b02: DUP3 00004b03: ADD 00004b04: DUP1 00004b05: SWAP3 00004b06: GT 00004b07: PUSH2 0x0c5f 00004b0a: JUMPI 00004b0b: PUSH0 00004b0c: SWAP3 00004b0d: PUSH2 0x4b48 00004b10: PUSH1 0x20 00004b12: SWAP3 00004b13: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004b34: SWAP5 00004b35: PUSH0 00004b36: MLOAD 00004b37: PUSH1 0x20 00004b39: PUSH2 0x4d22 00004b3c: PUSH0 00004b3d: CODECOPY 00004b3e: PUSH0 00004b3f: MLOAD 00004b40: SWAP1 00004b41: PUSH0 00004b42: MSTORE 00004b43: SSTORE 00004b44: PUSH2 0x3357 00004b47: JUMP 00004b48: JUMPDEST 00004b49: DUP2 00004b4a: DUP2 00004b4b: SLOAD 00004b4c: ADD 00004b4d: SWAP1 00004b4e: SSTORE 00004b4f: PUSH1 0x40 00004b51: MLOAD 00004b52: SWAP1 00004b53: DUP2 00004b54: MSTORE 00004b55: LOG3 00004b56: JUMP 00004b57: JUMPDEST 00004b58: PUSH1 0xff 00004b5a: PUSH0 00004b5b: MLOAD 00004b5c: PUSH1 0x20 00004b5e: PUSH2 0x4de2 00004b61: PUSH0 00004b62: CODECOPY 00004b63: PUSH0 00004b64: MLOAD 00004b65: SWAP1 00004b66: PUSH0 00004b67: MSTORE 00004b68: SLOAD 00004b69: PUSH1 0x40 00004b6b: SHR 00004b6c: AND 00004b6d: ISZERO 00004b6e: PUSH2 0x4b73 00004b71: JUMPI 00004b72: JUMP 00004b73: JUMPDEST 00004b74: PUSH4 0x1afcd79f 00004b79: PUSH1 0xe3 00004b7b: SHL 00004b7c: PUSH0 00004b7d: MSTORE 00004b7e: PUSH1 0x04 00004b80: PUSH0 00004b81: REVERT 00004b82: JUMPDEST 00004b83: PUSH0 00004b84: DUP1 00004b85: SWAP2 00004b86: PUSH1 0x40 00004b88: MLOAD 00004b89: PUSH1 0x20 00004b8b: DUP2 00004b8c: ADD 00004b8d: SWAP1 00004b8e: PUSH4 0x313ce567 00004b93: PUSH1 0xe0 00004b95: SHL 00004b96: DUP3 00004b97: MSTORE 00004b98: PUSH1 0x04 00004b9a: DUP2 00004b9b: MSTORE 00004b9c: PUSH2 0x4ba6 00004b9f: PUSH1 0x24 00004ba1: DUP3 00004ba2: PUSH2 0x0ee8 00004ba5: JUMP 00004ba6: JUMPDEST 00004ba7: MLOAD 00004ba8: SWAP2 00004ba9: PUSH1 0x01 00004bab: PUSH1 0x01 00004bad: PUSH1 0xa0 00004baf: SHL 00004bb0: SUB 00004bb1: AND 00004bb2: GAS 00004bb3: STATICCALL 00004bb4: PUSH2 0x4bbb 00004bb7: PUSH2 0x41a9 00004bba: JUMP 00004bbb: JUMPDEST 00004bbc: SWAP1 00004bbd: DUP1 00004bbe: PUSH2 0x4bf3 00004bc1: JUMPI 00004bc2: JUMPDEST 00004bc3: PUSH2 0x4bce 00004bc6: JUMPI 00004bc7: JUMPDEST 00004bc8: POP 00004bc9: PUSH0 00004bca: SWAP1 00004bcb: PUSH0 00004bcc: SWAP1 00004bcd: JUMP 00004bce: JUMPDEST 00004bcf: DUP1 00004bd0: PUSH1 0x20 00004bd2: DUP1 00004bd3: PUSH2 0x4be1 00004bd6: SWAP4 00004bd7: MLOAD 00004bd8: DUP4 00004bd9: ADD 00004bda: ADD 00004bdb: SWAP2 00004bdc: ADD 00004bdd: PUSH2 0x36a4 00004be0: JUMP 00004be1: JUMPDEST 00004be2: PUSH1 0xff 00004be4: DUP2 00004be5: GT 00004be6: PUSH2 0x4bc7 00004be9: JUMPI 00004bea: SWAP1 00004beb: PUSH1 0xff 00004bed: PUSH1 0x01 00004bef: SWAP3 00004bf0: AND 00004bf1: SWAP1 00004bf2: JUMP 00004bf3: JUMPDEST 00004bf4: POP 00004bf5: PUSH1 0x20 00004bf7: DUP2 00004bf8: MLOAD 00004bf9: LT 00004bfa: ISZERO 00004bfb: PUSH2 0x4bc2 00004bfe: JUMP 00004bff: JUMPDEST 00004c00: SWAP2 00004c01: DUP2 00004c02: DUP4 00004c03: MUL 00004c04: SWAP2 00004c05: PUSH0 00004c06: NOT 00004c07: DUP2 00004c08: DUP6 00004c09: MULMOD 00004c0a: SWAP4 00004c0b: DUP4 00004c0c: DUP1 00004c0d: DUP7 00004c0e: LT 00004c0f: SWAP6 00004c10: SUB 00004c11: SWAP5 00004c12: DUP1 00004c13: DUP7 00004c14: SUB 00004c15: SWAP6 00004c16: EQ 00004c17: PUSH2 0x4c84 00004c1a: JUMPI 00004c1b: DUP5 00004c1c: DUP4 00004c1d: GT 00004c1e: ISZERO 00004c1f: PUSH2 0x4c77 00004c22: JUMPI 00004c23: SWAP1 00004c24: DUP3 00004c25: SWAP2 00004c26: MULMOD 00004c27: DUP2 00004c28: PUSH0 00004c29: SUB 00004c2a: DUP3 00004c2b: AND 00004c2c: DUP1 00004c2d: SWAP3 00004c2e: DIV 00004c2f: PUSH1 0x02 00004c31: DUP2 00004c32: PUSH1 0x03 00004c34: MUL 00004c35: XOR 00004c36: DUP1 00004c37: DUP3 00004c38: MUL 00004c39: PUSH1 0x02 00004c3b: SUB 00004c3c: MUL 00004c3d: DUP1 00004c3e: DUP3 00004c3f: MUL 00004c40: PUSH1 0x02 00004c42: SUB 00004c43: MUL 00004c44: DUP1 00004c45: DUP3 00004c46: MUL 00004c47: PUSH1 0x02 00004c49: SUB 00004c4a: MUL 00004c4b: DUP1 00004c4c: DUP3 00004c4d: MUL 00004c4e: PUSH1 0x02 00004c50: SUB 00004c51: MUL 00004c52: DUP1 00004c53: DUP3 00004c54: MUL 00004c55: PUSH1 0x02 00004c57: SUB 00004c58: MUL 00004c59: DUP1 00004c5a: SWAP2 00004c5b: MUL 00004c5c: PUSH1 0x02 00004c5e: SUB 00004c5f: MUL 00004c60: SWAP4 00004c61: PUSH1 0x01 00004c63: DUP4 00004c64: DUP1 00004c65: PUSH0 00004c66: SUB 00004c67: DIV 00004c68: ADD 00004c69: SWAP1 00004c6a: DUP5 00004c6b: DUP4 00004c6c: GT 00004c6d: SWAP1 00004c6e: SUB 00004c6f: MUL 00004c70: SWAP3 00004c71: SUB 00004c72: DIV 00004c73: OR 00004c74: MUL 00004c75: SWAP1 00004c76: JUMP 00004c77: JUMPDEST 00004c78: PUSH1 0x11 00004c7a: PUSH1 0x03 00004c7c: DUP5 00004c7d: ISZERO 00004c7e: MUL 00004c7f: XOR 00004c80: PUSH2 0x4c91 00004c83: JUMP 00004c84: JUMPDEST 00004c85: POP 00004c86: POP 00004c87: SWAP1 00004c88: PUSH2 0x0fc7 00004c8b: SWAP3 00004c8c: POP 00004c8d: PUSH2 0x32d8 00004c90: JUMP 00004c91: JUMPDEST 00004c92: PUSH4 0x4e487b71 00004c97: PUSH0 00004c98: MSTORE 00004c99: PUSH1 0x20 00004c9b: MSTORE 00004c9c: PUSH1 0x24 00004c9e: PUSH1 0x1c 00004ca0: REVERT 00004ca1: INVALID 00004ca2: UNKNOWN(0xFC) 00004ca3: UNKNOWN(0xB0) 00004ca4: UNKNOWN(0xC3) 00004ca5: UNKNOWN(0x2C) 00004ca6: UNKNOWN(0x4F) 00004ca7: PUSH6 0x3382a412cb0c 00004cae: UNKNOWN(0xAA) 00004caf: PUSH11 0x29f9e46d74bae452ca200c 00004cbb: PUSH8 0xf1e5e638930052c6 00004cc4: ORIGIN 00004cc5: SELFBALANCE 00004cc6: UNKNOWN(0xE1) 00004cc7: DELEGATECALL 00004cc8: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1 00004ce7: DELEGATECALL 00004ce8: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72 00004d07: UNKNOWN(0xD4) 00004d08: UNKNOWN(0x0F) 00004d09: UNKNOWN(0xDA) 00004d0a: UNKNOWN(0xE2) 00004d0b: REVERT 00004d0c: DUP13 00004d0d: UNKNOWN(0xEA) 00004d0e: UNKNOWN(0xC6) 00004d0f: UNKNOWN(0xB6) 00004d10: UNKNOWN(0x23) 00004d11: UNKNOWN(0x4C) 00004d12: PUSH24 0x06214fd39c1cd1e609a0528c19930052c63247e1f47db19d 00004d2b: TLOAD 00004d2c: UNKNOWN(0xE0) 00004d2d: CHAINID 00004d2e: STOP 00004d2f: ADDRESS 00004d30: UNKNOWN(0xC4) 00004d31: SWAP8 00004d32: CREATE 00004d33: PUSH8 0xca4cebf71ba98eea 00004d3c: UNKNOWN(0xDA) 00004d3d: UNKNOWN(0xBE) 00004d3e: KECCAK256 00004d3f: UNKNOWN(0xBA) 00004d40: UNKNOWN(0xCE) 00004d41: MUL 00004d42: SSTORE 00004d43: UNKNOWN(0xD6) 00004d44: PUSH0 00004d45: EXTCODESIZE 00004d46: PC 00004d47: UNKNOWN(0x21) 00004d48: UNKNOWN(0xC6) 00004d49: PUSH8 0x16708cd5119fc8b6 00004d52: SLOAD 00004d53: DELEGATECALL 00004d54: PUSH26 0xbd23b96d0911cee852419047001d9ff85e70b948f53a2cc45fa6 00004d6f: DELEGATECALL 00004d70: UNKNOWN(0x2C) 00004d71: MUL 00004d72: SIGNEXTEND 00004d73: UNKNOWN(0x2A) 00004d74: DUP15 00004d75: UNKNOWN(0xEC) 00004d76: CALLER 00004d77: BLOBHASH 00004d78: CALLDATALOAD 00004d79: XOR 00004d7a: SSTORE 00004d7b: UNKNOWN(0xDE) 00004d7c: UNKNOWN(0xA9) 00004d7d: CHAINID 00004d7e: UNKNOWN(0xB0) 00004d7f: PUSH4 0x57000773 00004d84: UNKNOWN(0xE5) 00004d85: ORIGIN 00004d86: UNKNOWN(0xDF) 00004d87: UNKNOWN(0xED) 00004d88: UNKNOWN(0xE9) 00004d89: UNKNOWN(0x1F) 00004d8a: DIV 00004d8b: UNKNOWN(0xB1) 00004d8c: UNKNOWN(0x2A) 00004d8d: PUSH20 0xd3d2acd361424f41f76b4fb79f090161e36b4e00 00004da2: UNKNOWN(0xCD) 00004da3: MCOPY 00004da4: UNKNOWN(0xD1) 00004da5: TLOAD 00004da6: PUSH15 0x187e77e9aee88184c21f4f2182ab58 00004db6: UNKNOWN(0x27) 00004db7: UNKNOWN(0xCB) 00004db8: EXTCODESIZE 00004db9: PUSH31 0x07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817 00004dd9: UNKNOWN(0xE2) 00004dda: BASEFEE 00004ddb: PUSH14 0x003becc55f00f0c57e16840df040 00004dea: CALL 00004deb: POP 00004dec: DUP9 00004ded: UNKNOWN(0xDC) 00004dee: UNKNOWN(0x2F) 00004def: DUP2 00004df0: INVALID 00004df1: CODECOPY 00004df2: SHR 00004df3: CODECOPY 00004df4: UNKNOWN(0x23) 00004df5: UNKNOWN(0xBE) 00004df6: UNKNOWN(0xC7) 00004df7: RETURNDATACOPY 00004df8: UNKNOWN(0x23) 00004df9: UNKNOWN(0xA9) 00004dfa: PUSH7 0x2efc9c229c6a00 00004e02: UNKNOWN(0x23) 00004e03: PUSH31 0x158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00a2 00004e23: PUSH5 0x6970667358 00004e29: UNKNOWN(0x22) 00004e2a: SLT 00004e2b: KECCAK256 00004e2c: BLOCKHASH 00004e2d: UNKNOWN(0xE6) 00004e2e: CLZ 00004e2f: DUP9 00004e30: PUSH2 0x90d2 00004e33: UNKNOWN(0x21) 00004e34: MULMOD 00004e35: UNKNOWN(0xF7) 00004e36: UNKNOWN(0xC8) 00004e37: UNKNOWN(0xBA) 00004e38: SWAP16 00004e39: UNKNOWN(0xD1) 00004e3a: DUP9 00004e3b: UNKNOWN(0x2A) 00004e3c: UNKNOWN(0xC7) 00004e3d: UNKNOWN(0xD4) 00004e3e: UNKNOWN(0x2B) 00004e3f: UNKNOWN(0xED) 00004e40: CALLDATACOPY 00004e41: PUSH6 0x49a48b53b64c 00004e48: UNKNOWN(0xDC) 00004e49: UNKNOWN(0xEF) 00004e4a: UNKNOWN(0x1F) 00004e4b: UNKNOWN(0xD0) 00004e4c: PUSH5 0x736f6c6343 00004e52: STOP 00004e53: ADDMOD 00004e54: SAR 00004e55: STOP 00004e56: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | codex | Delegatecall to external ORDER_MANAGER_SINGLETON enables full vault takeover if that address is upgradeable/compromised | 85 | no | — |
viewevidence_json{
"evidence": "The vault stores an external ORDER_MANAGER_SINGLETON and forwards critical operations through `delegatecall` in `_delegateCall`, giving the target full access to vault storage and assets.",
"locations": [
"contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56",
"contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:486"
],
"recommendation": "Ensure ORDER_MANAGER_SINGLETON is a non-upgradeable, immutable implementation with a fixed codehash; consider validating codehash at deployment, or embed the order manager logic directly. If upgradeability is required, gate upgrades behind explicit, timelocked governance and document this trust assumption.",
"exploit_scenario": "If ORDER_MANAGER_SINGLETON is a proxy or otherwise upgradeable, its admin (or a compromised key) can swap in malicious logic. Because the vault uses delegatecall for core actions, the new logic can overwrite vault storage, mint/burn shares, or transfer assets out, effectively draining user funds."
}
|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0xcb6fb597656baf42caef05ee2276b9943499aafc10ce6d1a1c863031eb761b44
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0xcb6fb597656baf42caef05ee2276b9943499aafc10ce6d1a1c863031eb761b44",
"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": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a28a477",
"selector": "0x0a28a477",
"calldata_variants": [
"0x0a28a477",
"0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0d8e6e2c",
"selector": "0x0d8e6e2c",
"calldata_variants": [
"0x0d8e6e2c",
"0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f4f0c32",
"selector": "0x0f4f0c32",
"calldata_variants": [
"0x0f4f0c32",
"0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ffbfda4",
"selector": "0x0ffbfda4",
"calldata_variants": [
"0x0ffbfda4",
"0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 16900,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 19655,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 19687,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 19652,
"type": "tx_origin_used"
},
{
"pc": 19845,
"type": "tx_origin_used"
}
],
"delegatecall_count": 5,
"untrusted_delegatecall_count": 5
}
|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a28a477",
"selector": "0x0a28a477",
"calldata_variants": [
"0x0a28a477",
"0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0d8e6e2c",
"selector": "0x0d8e6e2c",
"calldata_variants": [
"0x0d8e6e2c",
"0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f4f0c32",
"selector": "0x0f4f0c32",
"calldata_variants": [
"0x0f4f0c32",
"0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ffbfda4",
"selector": "0x0ffbfda4",
"calldata_variants": [
"0x0ffbfda4",
"0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 19652,
"type": "tx_origin_used"
},
{
"pc": 19845,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xbeac665ecafdefeaef15f0aa464729cedcfafc50d43f1429af10bb2c4a0adc73
call_targets:
0x1d9d0956621bf85d1d4cafc92d76a0448a5e6b9b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbeac665ecafdefeaef15f0aa464729cedcfafc50d43f1429af10bb2c4a0adc73",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1d9d0956621bf85d1d4cafc92d76a0448a5e6b9b"
],
"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": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a28a477",
"selector": "0x0a28a477",
"calldata_variants": [
"0x0a28a477",
"0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0d8e6e2c",
"selector": "0x0d8e6e2c",
"calldata_variants": [
"0x0d8e6e2c",
"0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f4f0c32",
"selector": "0x0f4f0c32",
"calldata_variants": [
"0x0f4f0c32",
"0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ffbfda4",
"selector": "0x0ffbfda4",
"calldata_variants": [
"0x0ffbfda4",
"0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 19058,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 19946,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": [
{
"pc": 19652,
"type": "tx_origin_used"
},
{
"pc": 19845,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x962a617863071928196c4ac63bed21ccdfc74673055db8adbd2ba8fe1428e272
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x962a617863071928196c4ac63bed21ccdfc74673055db8adbd2ba8fe1428e272",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a28a477",
"selector": "0x0a28a477",
"calldata_variants": [
"0x0a28a477",
"0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0d8e6e2c",
"selector": "0x0d8e6e2c",
"calldata_variants": [
"0x0d8e6e2c",
"0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f4f0c32",
"selector": "0x0f4f0c32",
"calldata_variants": [
"0x0f4f0c32",
"0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ffbfda4",
"selector": "0x0ffbfda4",
"calldata_variants": [
"0x0ffbfda4",
"0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xbeac665ecafdefeaef15f0aa464729cedcfafc50d43f1429af10bb2c4a0adc73
call_targets:
0x1d9d0956621bf85d1d4cafc92d76a0448a5e6b9b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbeac665ecafdefeaef15f0aa464729cedcfafc50d43f1429af10bb2c4a0adc73",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1d9d0956621bf85d1d4cafc92d76a0448a5e6b9b"
],
"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": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a28a477",
"selector": "0x0a28a477",
"calldata_variants": [
"0x0a28a477",
"0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0d8e6e2c",
"selector": "0x0d8e6e2c",
"calldata_variants": [
"0x0d8e6e2c",
"0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0f4f0c32",
"selector": "0x0f4f0c32",
"calldata_variants": [
"0x0f4f0c32",
"0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0ffbfda4",
"selector": "0x0ffbfda4",
"calldata_variants": [
"0x0ffbfda4",
"0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 19058,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 19946,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 19652,
"type": "tx_origin_used"
},
{
"pc": 19845,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 2
}
|
| medium | access_control | codex | afterSwap callback is publicly callable with unvalidated parameters | 75 | no | — |
viewevidence_json{
"evidence": "`afterSwap` is an external function with only a pause check and forwards user-supplied parameters directly into the order manager via delegatecall; there is no caller authentication in the vault.",
"locations": [
"contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826"
],
"recommendation": "Restrict `afterSwap` to authorized order contracts (e.g., require `_orderMapping[msg.sender]` to be set), validate the reserve/delta inputs against order state, and consider adding `nonReentrant` or a dedicated reentrancy guard for the callback.",
"exploit_scenario": "Any account can call `afterSwap` with arbitrary reserve/delta values (or reenter during token transfers) to trigger the order manager\u2019s accounting logic. If the order manager relies on these inputs without strict caller validation, an attacker can skew interest/fee accounting or induce inconsistent state, potentially affecting share pricing and withdrawals."
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 5
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|
| 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": 5
}
|