5fac7a82-c226-4c04-b342-64f4f4f1792b
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 |
|---|---|---|---|---|
| 30258 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 73732 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 73733 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 73734 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 73735 | capability.graph | complete | 1 / 3 | 1 week ago |
| 73736 | detector.run | complete | 1 / 3 | 1 week ago |
| 73737 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1421690] OpenAI Codex v0.77.0 (research preview)
[codex:1421690] --------
[codex:1421690] workdir: /tmp/codex-multi-l7tm_izm
[codex:1421690] model: gpt-5.2-codex
[codex:1421690] provider: openai
[codex:1421690] approval: never
[codex:1421690] sandbox: read-only
[codex:1421690] reasoning effort: xhigh
[codex:1421690] reasoning summaries: auto
[codex:1421690] session id: 019b6281-f301-7031-8cbb-2e94b824199c
[codex:1421690] --------
[codex:1421690] user
[codex:1421690] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1421690] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1421690] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1421690]
[codex:1421690] Scope rules:
[codex:1421690] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1421690] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1421690]
[codex:1421690] Output MUST be valid JSON matching the provided schema.
[codex:1421690] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1421690] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1421690]
[codex:1421690] Output constraints (IMPORTANT):
[codex:1421690] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1421690] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1421690] mcp startup: no servers
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Preparing to review audit instructions**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc ls in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] AUDIT_BUNDLE.txt
[codex:1421690] codex-output-schema.json
[codex:1421690] contracts
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Reading AUDIT_BUNDLE.txt contents**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1421690]
[codex:1421690] ================================================================================
[codex:1421690] FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC1363.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: MIT
[codex:1421690] // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1363.sol)
[codex:1421690]
[codex:1421690] pragma solidity ^0.8.20;
[codex:1421690]
[codex:1421690] import {IERC20} from "./IERC20.sol";
[codex:1421690] import {IERC165} from "./IERC165.sol";
[codex:1421690]
[codex:1421690] /**
[codex:1421690] * @title IERC1363
[codex:1421690] * @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].
[codex:1421690] *
[codex:1421690] * Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract
[codex:1421690] * after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.
[codex:1421690] */
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Planning comprehensive audit reading**
[codex:1421690]
[codex:1421690] I'm working out how to fully read and analyze the massive AUDIT_BUNDLE.txt file, which is too large for a single output and includes many concatenated contracts. I'll likely use chunked reads with commands like `sed` or a Python script to process it entirely, then search for key security patterns and identify first-party contracts versus third-party code like OpenZeppelin. This approach should help me perform a thorough audit as required!
[codex:1421690] exec
[codex:1421690] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-l7tm_izm succeeded in 7ms:
[codex:1421690] 4:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC1363.sol
[codex:1421690] 94:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC165.sol
[codex:1421690] 104:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC20.sol
[codex:1421690] 114:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC4626.sol
[codex:1421690] 348:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC5267.sol
[codex:1421690] 380:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC721.sol
[codex:1421690] 390:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/draft-IERC6093.sol
[codex:1421690] 555:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/ERC20.sol
[codex:1421690] 875:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/IERC20.sol
[codex:1421690] 958:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/extensions/ERC20Permit.sol
[codex:1421690] 1045:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/extensions/IERC20Metadata.sol
[codex:1421690] 1075:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/extensions/IERC20Permit.sol
[codex:1421690] 1169:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1421690] 1346:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/token/ERC721/IERC721.sol
[codex:1421690] 1485:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Address.sol
[codex:1421690] 1640:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Context.sol
[codex:1421690] 1672:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Errors.sol
[codex:1421690] 1702:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Nonces.sol
[codex:1421690] 1752:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/Panic.sol
[codex:1421690] 1811:FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/utils/ShortStrings.sol
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Extracting Silo.sol from audit bundle**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '5504,6345p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 7ms:
[codex:1421690] FILE: contracts/silo-core/contracts/Silo.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity 0.8.28;
[codex:1421690]
[codex:1421690] import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1421690] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1421690]
[codex:1421690] import {ISilo, IERC4626, IERC3156FlashLender} from "./interfaces/ISilo.sol";
[codex:1421690] import {IShareToken} from "./interfaces/IShareToken.sol";
[codex:1421690]
[codex:1421690] import {IERC3156FlashBorrower} from "./interfaces/IERC3156FlashBorrower.sol";
[codex:1421690] import {ISiloConfig} from "./interfaces/ISiloConfig.sol";
[codex:1421690] import {ISiloFactory} from "./interfaces/ISiloFactory.sol";
[codex:1421690]
[codex:1421690] import {ShareCollateralToken} from "./utils/ShareCollateralToken.sol";
[codex:1421690]
[codex:1421690] import {Actions} from "./lib/Actions.sol";
[codex:1421690] import {Views} from "./lib/Views.sol";
[codex:1421690] import {SiloStdLib} from "./lib/SiloStdLib.sol";
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Identifying need for SiloConfig**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '6345,6822p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/SiloConfig.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity 0.8.28;
[codex:1421690]
[codex:1421690] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1421690]
[codex:1421690] import {ISilo} from "./interfaces/ISilo.sol";
[codex:1421690] import {ISiloConfig} from "./interfaces/ISiloConfig.sol";
[codex:1421690] import {CrossReentrancyGuard} from "./utils/CrossReentrancyGuard.sol";
[codex:1421690] import {Hook} from "./lib/Hook.sol";
[codex:1421690]
[codex:1421690] /// @notice SiloConfig stores full configuration of Silo in immutable manner
[codex:1421690] /// @dev Immutable contract is more expensive to deploy than minimal proxy however it provides nearly 10x cheaper
[codex:1421690] /// data access using immutable variables.
[codex:1421690] contract SiloConfig is ISiloConfig, CrossReentrancyGuard {
[codex:1421690] using Hook for uint256;
[codex:1421690]
[codex:1421690] uint256 public immutable SILO_ID;
[codex:1421690]
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Preparing to read audit bundle sections**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '6822,8184p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/interfaces/ICrossReentrancyGuard.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: MIT
[codex:1421690] pragma solidity >=0.5.0;
[codex:1421690]
[codex:1421690] interface ICrossReentrancyGuard {
[codex:1421690] error CrossReentrantCall();
[codex:1421690] error CrossReentrancyNotActive();
[codex:1421690]
[codex:1421690] /// @notice only silo method for cross Silo reentrancy
[codex:1421690] function turnOnReentrancyProtection() external;
[codex:1421690]
[codex:1421690] /// @notice only silo method for cross Silo reentrancy
[codex:1421690] function turnOffReentrancyProtection() external;
[codex:1421690]
[codex:1421690] /// @notice view method for checking cross Silo reentrancy flag
[codex:1421690] /// @return entered true if the reentrancy guard is currently set to "entered", which indicates there is a
[codex:1421690] /// `nonReentrant` function in the call stack.
[codex:1421690] function reentrancyGuardEntered() external view returns (bool entered);
[codex:1421690] }
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Continuing to explore libraries**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '8184,8891p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/lib/Actions.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity ^0.8.28;
[codex:1421690]
[codex:1421690] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1421690] import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1421690] import {Address} from "openzeppelin5/utils/Address.sol";
[codex:1421690] import {Math} from "openzeppelin5/utils/math/Math.sol";
[codex:1421690]
[codex:1421690] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1421690] import {IInterestRateModelV2} from "../interfaces/IInterestRateModelV2.sol";
[codex:1421690] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1421690] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1421690] import {IERC3156FlashBorrower} from "../interfaces/IERC3156FlashBorrower.sol";
[codex:1421690] import {IHookReceiver} from "../interfaces/IHookReceiver.sol";
[codex:1421690]
[codex:1421690] import {SiloERC4626Lib} from "./SiloERC4626Lib.sol";
[codex:1421690] import {SiloSolvencyLib} from "./SiloSolvencyLib.sol";
[codex:1421690] import {SiloLendingLib} from "./SiloLendingLib.sol";
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Extending libraries**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '8891,9594p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/lib/CallBeforeQuoteLib.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity ^0.8.28;
[codex:1421690]
[codex:1421690] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1421690] import {ISiloOracle} from "../interfaces/ISiloOracle.sol";
[codex:1421690]
[codex:1421690] library CallBeforeQuoteLib {
[codex:1421690] /// @dev Call `beforeQuote` on the `solvencyOracle` oracle
[codex:1421690] /// @param _config Silo config data
[codex:1421690] function callSolvencyOracleBeforeQuote(ISiloConfig.ConfigData memory _config) internal {
[codex:1421690] if (_config.callBeforeQuote && _config.solvencyOracle != address(0)) {
[codex:1421690] ISiloOracle(_config.solvencyOracle).beforeQuote(_config.token);
[codex:1421690] }
[codex:1421690] }
[codex:1421690]
[codex:1421690] /// @dev Call `beforeQuote` on the `maxLtvOracle` oracle
[codex:1421690] /// @param _config Silo config data
[codex:1421690] function callMaxLtvOracleBeforeQuote(ISiloConfig.ConfigData memory _config) internal {
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Continuing review from line 9594**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '9594,10198p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/lib/IsContract.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity ^0.8.24;
[codex:1421690]
[codex:1421690] library IsContract {
[codex:1421690] /**
[codex:1421690] * @dev Returns true if `account` is a contract.
[codex:1421690] *
[codex:1421690] * [IMPORTANT]
[codex:1421690] * ====
[codex:1421690] * It is unsafe to assume that an address for which this function returns
[codex:1421690] * false is an externally-owned account (EOA) and not a contract.
[codex:1421690] *
[codex:1421690] * Among others, `isContract` will return false for the following
[codex:1421690] * types of addresses:
[codex:1421690] *
[codex:1421690] * - an externally-owned account
[codex:1421690] * - a contract in construction
[codex:1421690] * - an address where a contract will be created
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Continuing process**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '10198,10695p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 7ms:
[codex:1421690] FILE: contracts/silo-core/contracts/lib/SiloLendingLib.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity ^0.8.28;
[codex:1421690]
[codex:1421690] import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1421690] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1421690] import {Math} from "openzeppelin5/utils/math/Math.sol";
[codex:1421690]
[codex:1421690] import {ISiloOracle} from "../interfaces/ISiloOracle.sol";
[codex:1421690] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1421690] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1421690] import {IInterestRateModel} from "../interfaces/IInterestRateModel.sol";
[codex:1421690] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1421690] import {SiloSolvencyLib} from "./SiloSolvencyLib.sol";
[codex:1421690] import {SiloStdLib} from "./SiloStdLib.sol";
[codex:1421690] import {SiloMathLib} from "./SiloMathLib.sol";
[codex:1421690] import {Rounding} from "./Rounding.sol";
[codex:1421690] import {ShareTokenLib} from "./ShareTokenLib.sol";
[codex:1421690] import {SiloStorageLib} from "./SiloStorageLib.sol";
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Continuing to read content**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '10695,11065p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/lib/SiloMathLib.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity ^0.8.28;
[codex:1421690]
[codex:1421690] import {Math} from "openzeppelin5/utils/math/Math.sol";
[codex:1421690] import {Rounding} from "../lib/Rounding.sol";
[codex:1421690] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1421690]
[codex:1421690] library SiloMathLib {
[codex:1421690] using Math for uint256;
[codex:1421690]
[codex:1421690] uint256 internal constant _PRECISION_DECIMALS = 1e18;
[codex:1421690]
[codex:1421690] uint256 internal constant _DECIMALS_OFFSET = 3;
[codex:1421690]
[codex:1421690] /// @dev this is constant version of openzeppelin5/contracts/token/ERC20/extensions/ERC4626._decimalsOffset
[codex:1421690] uint256 internal constant _DECIMALS_OFFSET_POW = 10 ** _DECIMALS_OFFSET;
[codex:1421690]
[codex:1421690] /// @notice Returns available liquidity to be borrowed
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Continuing exploration**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '11065,11308p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/lib/SiloSolvencyLib.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity ^0.8.28;
[codex:1421690]
[codex:1421690] import {Math} from "openzeppelin5/utils/math/Math.sol";
[codex:1421690]
[codex:1421690] import {ISiloOracle} from "../interfaces/ISiloOracle.sol";
[codex:1421690] import {SiloStdLib, ISiloConfig, IShareToken, ISilo} from "./SiloStdLib.sol";
[codex:1421690] import {SiloMathLib} from "./SiloMathLib.sol";
[codex:1421690] import {Rounding} from "./Rounding.sol";
[codex:1421690]
[codex:1421690] library SiloSolvencyLib {
[codex:1421690] using Math for uint256;
[codex:1421690]
[codex:1421690] struct LtvData {
[codex:1421690] ISiloOracle collateralOracle;
[codex:1421690] ISiloOracle debtOracle;
[codex:1421690] uint256 borrowerProtectedAssets;
[codex:1421690] uint256 borrowerCollateralAssets;
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Continuing to read more**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '11308,11472p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/lib/SiloStdLib.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity ^0.8.28;
[codex:1421690]
[codex:1421690] import {SafeERC20} from "openzeppelin5/token/ERC20/utils/SafeERC20.sol";
[codex:1421690] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1421690]
[codex:1421690] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1421690] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1421690] import {IInterestRateModel} from "../interfaces/IInterestRateModel.sol";
[codex:1421690] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1421690] import {SiloMathLib} from "./SiloMathLib.sol";
[codex:1421690]
[codex:1421690] library SiloStdLib {
[codex:1421690] using SafeERC20 for IERC20;
[codex:1421690]
[codex:1421690] uint256 internal constant _PRECISION_DECIMALS = 1e18;
[codex:1421690]
[codex:1421690] /// @notice Returns flash fee amount
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Continuing to proceed**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '11472,11566p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/lib/SiloStorageLib.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity 0.8.28;
[codex:1421690]
[codex:1421690] import {ISilo} from "silo-core/contracts/interfaces/ISilo.sol";
[codex:1421690]
[codex:1421690] library SiloStorageLib {
[codex:1421690] // keccak256(abi.encode(uint256(keccak256("silo.storage.SiloVault")) - 1)) & ~bytes32(uint256(0xff));
[codex:1421690] bytes32 private constant _STORAGE_LOCATION = 0xd7513ffe3a01a9f6606089d1b67011bca35bec018ac0faa914e1c529408f8300;
[codex:1421690]
[codex:1421690] function getSiloStorage() internal pure returns (ISilo.SiloStorage storage $) {
[codex:1421690] // solhint-disable-next-line no-inline-assembly
[codex:1421690] assembly {
[codex:1421690] $.slot := _STORAGE_LOCATION
[codex:1421690] }
[codex:1421690] }
[codex:1421690] }
[codex:1421690]
[codex:1421690] ================================================================================
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Finishing library work**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '11566,11857p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/lib/Views.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity ^0.8.28;
[codex:1421690]
[codex:1421690] import {IERC20} from "openzeppelin5/token/ERC20/IERC20.sol";
[codex:1421690]
[codex:1421690] import {ISiloConfig} from "../interfaces/ISiloConfig.sol";
[codex:1421690] import {ISilo} from "../interfaces/ISilo.sol";
[codex:1421690] import {ISiloOracle} from "../interfaces/ISiloOracle.sol";
[codex:1421690] import {IShareToken} from "../interfaces/IShareToken.sol";
[codex:1421690] import {ISiloFactory} from "../interfaces/ISiloFactory.sol";
[codex:1421690]
[codex:1421690] import {SiloERC4626Lib} from "./SiloERC4626Lib.sol";
[codex:1421690] import {SiloSolvencyLib} from "./SiloSolvencyLib.sol";
[codex:1421690] import {SiloLendingLib} from "./SiloLendingLib.sol";
[codex:1421690] import {SiloStdLib} from "./SiloStdLib.sol";
[codex:1421690] import {SiloMathLib} from "./SiloMathLib.sol";
[codex:1421690] import {Rounding} from "./Rounding.sol";
[codex:1421690] import {ShareTokenLib} from "./ShareTokenLib.sol";
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Reviewing remaining code segment**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '11857,12230p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] FILE: contracts/silo-core/contracts/utils/CrossReentrancyGuard.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: BUSL-1.1
[codex:1421690] pragma solidity 0.8.28;
[codex:1421690]
[codex:1421690] import {ICrossReentrancyGuard} from "../interfaces/ICrossReentrancyGuard.sol";
[codex:1421690]
[codex:1421690] abstract contract CrossReentrancyGuard is ICrossReentrancyGuard {
[codex:1421690] uint256 private constant _NOT_ENTERED = 0;
[codex:1421690] uint256 private constant _ENTERED = 1;
[codex:1421690]
[codex:1421690] uint256 private transient _crossReentrantStatus;
[codex:1421690]
[codex:1421690] /// @inheritdoc ICrossReentrancyGuard
[codex:1421690] function turnOnReentrancyProtection() external virtual {
[codex:1421690] _onlySiloOrTokenOrHookReceiver();
[codex:1421690]
[codex:1421690] require(_crossReentrantStatus != _ENTERED, CrossReentrantCall());
[codex:1421690]
[codex:1421690] _crossReentrantStatus = _ENTERED;
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Verifying full file reading compliance**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '1,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 7ms:
[codex:1421690] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1421690]
[codex:1421690] ================================================================================
[codex:1421690] FILE: contracts/gitmodules/openzeppelin-contracts-5/contracts/interfaces/IERC1363.sol
[codex:1421690] ================================================================================
[codex:1421690] // SPDX-License-Identifier: MIT
[codex:1421690] // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1363.sol)
[codex:1421690]
[codex:1421690] pragma solidity ^0.8.20;
[codex:1421690]
[codex:1421690] import {IERC20} from "./IERC20.sol";
[codex:1421690] import {IERC165} from "./IERC165.sol";
[codex:1421690]
[codex:1421690] /**
[codex:1421690] * @title IERC1363
[codex:1421690] * @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].
[codex:1421690] *
[codex:1421690] * Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract
[codex:1421690] * after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.
[codex:1421690] */
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Continuing to read more lines**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '2001,4000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] r.slot := slot
[codex:1421690] }
[codex:1421690] }
[codex:1421690]
[codex:1421690] /**
[codex:1421690] * @dev Returns an `BooleanSlot` with member `value` located at `slot`.
[codex:1421690] */
[codex:1421690] function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
[codex:1421690] /// @solidity memory-safe-assembly
[codex:1421690] assembly {
[codex:1421690] r.slot := slot
[codex:1421690] }
[codex:1421690] }
[codex:1421690]
[codex:1421690] /**
[codex:1421690] * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.
[codex:1421690] */
[codex:1421690] function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
[codex:1421690] /// @solidity memory-safe-assembly
[codex:1421690] assembly {
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Requesting remaining content**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "sed -n '4001,5504p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-l7tm_izm succeeded in 8ms:
[codex:1421690] }
[codex:1421690] }
[codex:1421690]
[codex:1421690] /**
[codex:1421690] * @dev Returns the downcasted int192 from int256, reverting on
[codex:1421690] * overflow (when the input is less than smallest int192 or
[codex:1421690] * greater than largest int192).
[codex:1421690] *
[codex:1421690] * Counterpart to Solidity's `int192` operator.
[codex:1421690] *
[codex:1421690] * Requirements:
[codex:1421690] *
[codex:1421690] * - input must fit into 192 bits
[codex:1421690] */
[codex:1421690] function toInt192(int256 value) internal pure returns (int192 downcasted) {
[codex:1421690] downcasted = int192(value);
[codex:1421690] if (downcasted != value) {
[codex:1421690] revert SafeCastOverflowedIntDowncast(192, value);
[codex:1421690] }
[codex:1421690] }
[codex:1421690]
[codex:1421690]
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Performing detailed vulnerability audit**
[codex:1421690]
[codex:1421690] I’m carefully analyzing the code for common vulnerabilities like reentrancy, access control, and unsafe delegatecalls, focusing on the hook receiver’s privileged delegatecall, reentrancy guard timing, and unprotected initialization that might allow configuration takeover. There’s also risk from fee-on-transfer tokens breaking accounting, and potential pitfalls if the hook receiver is untrusted or misconfigured. I’m weighing these against intended design and typical deployment patterns to identify real exploitable issues.
[codex:1421690] thinking
[codex:1421690] **Examining flashloan reentrancy concerns**
[codex:1421690]
[codex:1421690] I’m digging into how flashLoan lacks a reentrancy guard, letting borrowers call back into Silo during the loan, which might allow complex interactions like depositing or borrowing mid-flashloan. While this could enable unusual sequences of calls, typical token transfer checks and accounting mostly prevent exploits, though there are nuanced risks around fee withdrawals mid-loan and delegatecall hooks toggling the reentrancy guard. I’m weighing whether these are intentional design choices or subtle vulnerabilities.
[codex:1421690] thinking
[codex:1421690] **Investigating reentrancy guard bypass via hook receiver**
[codex:1421690]
[codex:1421690] I’m exploring how the hook receiver can call turnOffReentrancyProtection during a token mint hook while the guard is active, effectively disabling the reentrancy guard mid-operation and allowing reentrant calls that could disrupt state. This looks risky if the hook receiver is not fully trusted, though it may be an intentional trade-off given the hook receiver’s privileged role. I’m also planning to check all delegatecall uses for broader implications.
[codex:1421690] exec
[codex:1421690] /bin/bash -lc 'rg -n "delegatecall" contracts/silo-core/contracts' in /tmp/codex-multi-l7tm_izm succeeded in 9ms:
[codex:1421690] contracts/silo-core/contracts/lib/Actions.sol:518: (success, result) = _target.delegatecall(_input); // solhint-disable-line avoid-low-level-calls
[codex:1421690] contracts/silo-core/contracts/lib/ShareTokenLib.sol:131: (success, result) = _target.delegatecall(_input); // solhint-disable-line avoid-low-level-calls
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Analyzing smart contract risks and controls**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc 'rg -n "callOnBehalfOfShareToken" -n contracts/silo-core/contracts' in /tmp/codex-multi-l7tm_izm succeeded in 8ms:
[codex:1421690] contracts/silo-core/contracts/lib/ShareTokenLib.sol:124: function callOnBehalfOfShareToken(address _target, uint256 _value, ISilo.CallType _callType, bytes calldata _input)
[codex:1421690]
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Clarifying third-party vs first-party libs and auditing risks**
[codex:1421690]
[codex:1421690] I'm sorting out the confusing instructions about treating `lib/` as third-party while some `lib/` directories are actually first-party inside contracts. To be safe, I'll analyze those internal libs as first-party since they're integral. Then, I review key potential vulnerabilities like unprotected initialization, fee-on-transfer token issues affecting accounting, dangerous delegatecall exposure via hook receivers, and reentrancy risks especially around flash loans and hooks—all weighed with severity and context to flag relevant security concerns thoughtfully.
[codex:1421690] thinking
[codex:1421690] **Examining collateral share token and deposit mechanics**
[codex:1421690]
[codex:1421690] I'm analyzing how the Silo contract serves as both vault and collateral share token, which leads to self-calls during deposits that trigger hooks and reentrancy guards. I also consider subtle risks related to arithmetic overflows, interest calculations, and potential reentrancy through external hook calls before guarding—but overall these seem managed with trust assumptions and safe patterns. Finally, I’m preparing to map identified key findings to precise code locations for detailed reporting.
[codex:1421690] exec
[codex:1421690] /bin/bash -lc 'rg -n "function initialize" contracts/silo-core/contracts/Silo.sol' in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] 65: function initialize(ISiloConfig _config) external virtual {
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Examining smart contract vulnerabilities**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc 'rg -n "fee-on-transfer" contracts/silo-core/contracts/lib/SiloERC4626Lib.sol contracts/silo-core/contracts/lib/SiloLendingLib.sol' in /tmp/codex-multi-l7tm_izm succeeded in 9ms:
[codex:1421690] contracts/silo-core/contracts/lib/SiloERC4626Lib.sol:139: // fee-on-transfer is ignored
[codex:1421690] contracts/silo-core/contracts/lib/SiloLendingLib.sol:84: // fee-on-transfer is ignored
[codex:1421690] contracts/silo-core/contracts/lib/SiloLendingLib.sol:204: // fee-on-transfer is ignored.
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Preparing code reference lines**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc 'rg -n "delegatecall" contracts/silo-core/contracts/lib/Actions.sol contracts/silo-core/contracts/lib/ShareTokenLib.sol' in /tmp/codex-multi-l7tm_izm succeeded in 9ms:
[codex:1421690] contracts/silo-core/contracts/lib/ShareTokenLib.sol:131: (success, result) = _target.delegatecall(_input); // solhint-disable-line avoid-low-level-calls
[codex:1421690] contracts/silo-core/contracts/lib/Actions.sol:518: (success, result) = _target.delegatecall(_input); // solhint-disable-line avoid-low-level-calls
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Identifying callOnBehalfOfSilo usage lines**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc 'rg -n "callOnBehalfOfSilo" contracts/silo-core/contracts/Silo.sol contracts/silo-core/contracts/lib/Actions.sol' in /tmp/codex-multi-l7tm_izm succeeded in 9ms:
[codex:1421690] contracts/silo-core/contracts/Silo.sol:55: function callOnBehalfOfSilo(address _target, uint256 _value, CallType _callType, bytes calldata _input)
[codex:1421690] contracts/silo-core/contracts/Silo.sol:61: (success, result) = Actions.callOnBehalfOfSilo(_target, _value, _callType, _input);
[codex:1421690] contracts/silo-core/contracts/lib/Actions.sol:506: function callOnBehalfOfSilo(address _target, uint256 _value, ISilo.CallType _callType, bytes calldata _input)
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Analyzing potential vulnerabilities and access controls**
[codex:1421690]
[codex:1421690] I'm digging into access control, delegatecall risks, and accounting quirks, especially focusing on unprotected initialization, fee-on-transfer token risks, and the hook receiver's broad transfer abilities. I want to highlight trust assumptions around delegatecall and the risk of stolen tokens if the hook receiver is compromised, while considering severity levels and contextual design intents.
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "nl -ba contracts/silo-core/contracts/lib/SiloERC4626Lib.sol | sed -n '120,170p'" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] 120 require(assets <= liquidity, ISilo.NotEnoughLiquidity());
[codex:1421690] 121
[codex:1421690] 122 $.totalAssets[collateralType] = totalAssets - assets;
[codex:1421690] 123 }
[codex:1421690] 124
[codex:1421690] 125 // `burn` checks if `_spender` is allowed to withdraw `_owner` assets. `burn` calls hook receiver
[codex:1421690] 126 // after tokens transfer and can potentially reenter, but state changes are already completed,
[codex:1421690] 127 // and reentrancy protection is still enabled.
[codex:1421690] 128 IShareToken(_shareToken).burn(_args.owner, _args.spender, shares);
[codex:1421690] 129
[codex:1421690] 130 if (_asset != address(0)) {
[codex:1421690] 131 // does not matter what is the type of transfer, we can not go below protected balance
[codex:1421690] 132 uint256 protectedBalance = $.totalAssets[ISilo.AssetType.Protected];
[codex:1421690] 133
[codex:1421690] 134 require(
[codex:1421690] 135 protectedBalance == 0 || IERC20(_asset).balanceOf(address(this)) - assets >= protectedBalance,
[codex:1421690] 136 ISilo.ProtectedProtection()
[codex:1421690] 137 );
[codex:1421690] 138
[codex:1421690] 139 // fee-on-transfer is ignored
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Adjusting deposit line position**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "nl -ba contracts/silo-core/contracts/lib/SiloERC4626Lib.sol | sed -n '70,120p'" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] 70 // Hook receiver is called after `mint` and can reentry but state changes are completed already,
[codex:1421690] 71 // and reentrancy protection is still enabled.
[codex:1421690] 72 _collateralShareToken.mint(_receiver, _depositor, shares);
[codex:1421690] 73
[codex:1421690] 74 if (_token != address(0)) {
[codex:1421690] 75 // Reentrancy is possible only for view methods (read-only reentrancy),
[codex:1421690] 76 // so no harm can be done as the state is already updated.
[codex:1421690] 77 // We do not expect the silo to work with any malicious token that will not send tokens to silo.
[codex:1421690] 78 IERC20(_token).safeTransferFrom(_depositor, address(this), assets);
[codex:1421690] 79 }
[codex:1421690] 80 }
[codex:1421690] 81
[codex:1421690] 82 /// @notice Withdraw assets from the silo
[codex:1421690] 83 /// @dev Asset type is not verified here, make sure you revert before when type == Debt
[codex:1421690] 84 /// @param _asset The ERC20 token address to withdraw; 0 means tokens will not be transferred. Useful for
[codex:1421690] 85 /// transition of collateral.
[codex:1421690] 86 /// @param _shareToken Address of the share token being burned for withdrawal
[codex:1421690] 87 /// @param _args ISilo.WithdrawArgs
[codex:1421690] 88 /// @return assets The exact amount of assets withdrawn
[codex:1421690] 89 /// @return shares The exact number of shares burned in exchange for the withdrawn assets
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Checking fee-on-transfer mentions**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "nl -ba contracts/silo-core/contracts/lib/SiloLendingLib.sol | sed -n '60,110p'" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] 60 _assetType: ISilo.AssetType.Debt
[codex:1421690] 61 });
[codex:1421690] 62
[codex:1421690] 63 if (shares > debtSharesBalance) {
[codex:1421690] 64 shares = debtSharesBalance;
[codex:1421690] 65
[codex:1421690] 66 (assets, shares) = SiloMathLib.convertToAssetsOrToShares({
[codex:1421690] 67 _assets: 0,
[codex:1421690] 68 _shares: shares,
[codex:1421690] 69 _totalAssets: totalDebtAssets,
[codex:1421690] 70 _totalShares: totalDebtShares,
[codex:1421690] 71 _roundingToAssets: Rounding.REPAY_TO_ASSETS,
[codex:1421690] 72 _roundingToShares: Rounding.REPAY_TO_SHARES,
[codex:1421690] 73 _assetType: ISilo.AssetType.Debt
[codex:1421690] 74 });
[codex:1421690] 75 }
[codex:1421690] 76
[codex:1421690] 77 require(totalDebtAssets >= assets, ISilo.RepayTooHigh());
[codex:1421690] 78
[codex:1421690] 79 // subtract repayment from debt, save to unchecked because of above `totalDebtAssets < assets`
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Collecting code references for fee-on-transfer handling**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "nl -ba contracts/silo-core/contracts/lib/Actions.sol | sed -n '500,540p'" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] 500
[codex:1421690] 501 /// @notice Method for HookReceiver only to call on behalf of Silo
[codex:1421690] 502 /// @param _target address of the contract to call
[codex:1421690] 503 /// @param _value amount of ETH to send
[codex:1421690] 504 /// @param _callType type of the call (Call or Delegatecall)
[codex:1421690] 505 /// @param _input calldata for the call
[codex:1421690] 506 function callOnBehalfOfSilo(address _target, uint256 _value, ISilo.CallType _callType, bytes calldata _input)
[codex:1421690] 507 internal
[codex:1421690] 508 returns (bool success, bytes memory result)
[codex:1421690] 509 {
[codex:1421690] 510 require(
[codex:1421690] 511 msg.sender == address(ShareTokenLib.getShareTokenStorage().hookSetup.hookReceiver),
[codex:1421690] 512 ISilo.OnlyHookReceiver()
[codex:1421690] 513 );
[codex:1421690] 514
[codex:1421690] 515 // Silo will not send back any ether leftovers after the call.
[codex:1421690] 516 // The hook receiver should request the ether if needed in a separate call.
[codex:1421690] 517 if (_callType == ISilo.CallType.Delegatecall) {
[codex:1421690] 518 (success, result) = _target.delegatecall(_input); // solhint-disable-line avoid-low-level-calls
[codex:1421690] 519 } else {
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Identifying delegatecall usage**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "nl -ba contracts/silo-core/contracts/lib/ShareTokenLib.sol | sed -n '120,150p'" in /tmp/codex-multi-l7tm_izm succeeded in 7ms:
[codex:1421690] 120 /// @param _callType call type
[codex:1421690] 121 /// @param _input input data
[codex:1421690] 122 /// @return success true if the call was successful, false otherwise
[codex:1421690] 123 /// @return result bytes returned by the call
[codex:1421690] 124 function callOnBehalfOfShareToken(address _target, uint256 _value, ISilo.CallType _callType, bytes calldata _input)
[codex:1421690] 125 internal
[codex:1421690] 126 returns (bool success, bytes memory result)
[codex:1421690] 127 {
[codex:1421690] 128 // Share token will not send back any ether leftovers after the call.
[codex:1421690] 129 // The hook receiver should request the ether if needed in a separate call.
[codex:1421690] 130 if (_callType == ISilo.CallType.Delegatecall) {
[codex:1421690] 131 (success, result) = _target.delegatecall(_input); // solhint-disable-line avoid-low-level-calls
[codex:1421690] 132 } else {
[codex:1421690] 133 (success, result) = _target.call{value: _value}(_input); // solhint-disable-line avoid-low-level-calls
[codex:1421690] 134 }
[codex:1421690] 135 }
[codex:1421690] 136
[codex:1421690] 137 /// @dev checks if operation is "real" transfer
[codex:1421690] 138 /// @param _sender sender address
[codex:1421690] 139 /// @param _recipient recipient address
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Deciding on contract inclusions and locating initialization**
[codex:1421690] exec
[codex:1421690] /bin/bash -lc "nl -ba contracts/silo-core/contracts/Silo.sol | sed -n '50,90p'" in /tmp/codex-multi-l7tm_izm succeeded in 6ms:
[codex:1421690] 50 function silo() external view virtual override returns (ISilo) {
[codex:1421690] 51 return this;
[codex:1421690] 52 }
[codex:1421690] 53
[codex:1421690] 54 /// @inheritdoc ISilo
[codex:1421690] 55 function callOnBehalfOfSilo(address _target, uint256 _value, CallType _callType, bytes calldata _input)
[codex:1421690] 56 external
[codex:1421690] 57 virtual
[codex:1421690] 58 payable
[codex:1421690] 59 returns (bool success, bytes memory result)
[codex:1421690] 60 {
[codex:1421690] 61 (success, result) = Actions.callOnBehalfOfSilo(_target, _value, _callType, _input);
[codex:1421690] 62 }
[codex:1421690] 63
[codex:1421690] 64 /// @inheritdoc ISilo
[codex:1421690] 65 function initialize(ISiloConfig _config) external virtual {
[codex:1421690] 66 // silo initialization
[codex:1421690] 67 address hookReceiver = Actions.initialize(_config);
[codex:1421690] 68 // silo (vault) share token initialization
[codex:1421690] 69 _shareTokenInitialize(this, hookReceiver, uint24(Hook.COLLATERAL_TOKEN));
[codex:1421690]
[codex:1421690] thinking
[codex:1421690] **Summarizing vulnerability findings and JSON output**
[codex:1421690] codex
[codex:1421690] {"no_findings":false,"summary":"Identified three issues: a publicly callable initializer that can be front‑run on fresh clones, accounting that assumes full transfers (fee‑on‑transfer tokens break solvency), and a delegatecall escape hatch granted to the hook receiver.","findings":[{"severity":"high","category":"upgradeability","title":"Silo initializer is publicly callable, enabling first-caller takeover","exploit_scenario":"If a new Silo proxy/clone is deployed without an atomic initialization, any account can call `initialize` first and set an arbitrary `SiloConfig` (including a malicious hook receiver). This permanently controls configuration and can redirect fees or brick the pool before legitimate initialization.","recommendation":"Restrict `initialize` to the factory or a trusted deployer (e.g., `onlyFactory`), and/or use an initializer modifier that enforces an authorized caller. Ensure factory initializes in the same transaction as deployment.","evidence":"`initialize` is external and has no access control beyond a one-time storage check.","locations":["contracts/silo-core/contracts/Silo.sol:65"]},{"severity":"medium","category":"math","title":"Fee-on-transfer tokens break share and debt accounting","exploit_scenario":"For fee-on-transfer tokens, deposits and repayments credit the full requested amount even if fewer tokens are received. An attacker can deposit such a token to mint excess shares and borrow against inflated collateral, or repay debt while transferring less than the accounted amount, leading to undercollateralization and potential insolvency.","recommendation":"Reject fee-on-transfer/rebasing tokens at configuration time, or compute actual received amounts using pre/post balance checks and base share/debt accounting on the real amount moved.","evidence":"Transfers explicitly ignore fee-on-transfer behavior, and accounting uses the requested amounts instead of received amounts.","locations":["contracts/silo-core/contracts/lib/SiloERC4626Lib.sol:72","contracts/silo-core/contracts/lib/SiloERC4626Lib.sol:139","contracts/silo-core/contracts/lib/SiloLendingLib.sol:84"]},{"severity":"low","category":"other","title":"Hook receiver can delegatecall arbitrary targets with Silo/share-token storage context","exploit_scenario":"A compromised or upgradable hook receiver can invoke `callOnBehalfOfSilo` with `Delegatecall` to execute arbitrary code in the Silo’s storage context (or via ShareToken helper), potentially draining assets or corrupting accounting. This is a powerful trust boundary that amplifies hook receiver risk.","recommendation":"Remove or disable delegatecall capability, or restrict it to an allowlisted target set. Ensure the hook receiver is immutable and fully trusted if delegatecall remains.","evidence":"`callOnBehalfOfSilo` and `callOnBehalfOfShareToken` allow delegatecall to an arbitrary `_target`.","locations":["contracts/silo-core/contracts/lib/Actions.sol:518","contracts/silo-core/contracts/lib/ShareTokenLib.sol:131"]}]}
[codex:1421690] tokens used
[codex:1421690] 137,505
[codex:1421690] {"no_findings":false,"summary":"Identified three issues: a publicly callable initializer that can be front‑run on fresh clones, accounting that assumes full transfers (fee‑on‑transfer tokens break solvency), and a delegatecall escape hatch granted to the hook receiver.","findings":[{"severity":"high","category":"upgradeability","title":"Silo initializer is publicly callable, enabling first-caller takeover","exploit_scenario":"If a new Silo proxy/clone is deployed without an atomic initialization, any account can call `initialize` first and set an arbitrary `SiloConfig` (including a malicious hook receiver). This permanently controls configuration and can redirect fees or brick the pool before legitimate initialization.","recommendation":"Restrict `initialize` to the factory or a trusted deployer (e.g., `onlyFactory`), and/or use an initializer modifier that enforces an authorized caller. Ensure factory initializes in the same transaction as deployment.","evidence":"`initialize` is external and has no access control beyond a one-time storage check.","locations":["contracts/silo-core/contracts/Silo.sol:65"]},{"severity":"medium","category":"math","title":"Fee-on-transfer tokens break share and debt accounting","exploit_scenario":"For fee-on-transfer tokens, deposits and repayments credit the full requested amount even if fewer tokens are received. An attacker can deposit such a token to mint excess shares and borrow against inflated collateral, or repay debt while transferring less than the accounted amount, leading to undercollateralization and potential insolvency.","recommendation":"Reject fee-on-transfer/rebasing tokens at configuration time, or compute actual received amounts using pre/post balance checks and base share/debt accounting on the real amount moved.","evidence":"Transfers explicitly ignore fee-on-transfer behavior, and accounting uses the requested amounts instead of received amounts.","locations":["contracts/silo-core/contracts/lib/SiloERC4626Lib.sol:72","contracts/silo-core/contracts/lib/SiloERC4626Lib.sol:139","contracts/silo-core/contracts/lib/SiloLendingLib.sol:84"]},{"severity":"low","category":"other","title":"Hook receiver can delegatecall arbitrary targets with Silo/share-token storage context","exploit_scenario":"A compromised or upgradable hook receiver can invoke `callOnBehalfOfSilo` with `Delegatecall` to execute arbitrary code in the Silo’s storage context (or via ShareToken helper), potentially draining assets or corrupting accounting. This is a powerful trust boundary that amplifies hook receiver risk.","recommendation":"Remove or disable delegatecall capability, or restrict it to an allowlisted target set. Ensure the hook receiver is immutable and fully trusted if delegatecall remains.","evidence":"`callOnBehalfOfSilo` and `callOnBehalfOfShareToken` allow delegatecall to an arbitrary `_target`.","locations":["contracts/silo-core/contracts/lib/Actions.sol:518","contracts/silo-core/contracts/lib/ShareTokenLib.sol:131"]}]}
{
"codex": {
"ran_at": "2025-12-28T01:20:03.232157+00:00",
"returncode": 0
},
"summary": "Identified three issues: a publicly callable initializer that can be front\u2011run on fresh clones, accounting that assumes full transfers (fee\u2011on\u2011transfer tokens break solvency), and a delegatecall escape hatch granted to the hook receiver.",
"raw_final": {
"summary": "Identified three issues: a publicly callable initializer that can be front\u2011run on fresh clones, accounting that assumes full transfers (fee\u2011on\u2011transfer tokens break solvency), and a delegatecall escape hatch granted to the hook receiver.",
"findings": [
{
"title": "Silo initializer is publicly callable, enabling first-caller takeover",
"category": "upgradeability",
"evidence": "`initialize` is external and has no access control beyond a one-time storage check.",
"severity": "high",
"locations": [
"contracts/silo-core/contracts/Silo.sol:65"
],
"recommendation": "Restrict `initialize` to the factory or a trusted deployer (e.g., `onlyFactory`), and/or use an initializer modifier that enforces an authorized caller. Ensure factory initializes in the same transaction as deployment.",
"exploit_scenario": "If a new Silo proxy/clone is deployed without an atomic initialization, any account can call `initialize` first and set an arbitrary `SiloConfig` (including a malicious hook receiver). This permanently controls configuration and can redirect fees or brick the pool before legitimate initialization."
},
{
"title": "Fee-on-transfer tokens break share and debt accounting",
"category": "math",
"evidence": "Transfers explicitly ignore fee-on-transfer behavior, and accounting uses the requested amounts instead of received amounts.",
"severity": "medium",
"locations": [
"contracts/silo-core/contracts/lib/SiloERC4626Lib.sol:72",
"contracts/silo-core/contracts/lib/SiloERC4626Lib.sol:139",
"contracts/silo-core/contracts/lib/SiloLendingLib.sol:84"
],
"recommendation": "Reject fee-on-transfer/rebasing tokens at configuration time, or compute actual received amounts using pre/post balance checks and base share/debt accounting on the real amount moved.",
"exploit_scenario": "For fee-on-transfer tokens, deposits and repayments credit the full requested amount even if fewer tokens are received. An attacker can deposit such a token to mint excess shares and borrow against inflated collateral, or repay debt while transferring less than the accounted amount, leading to undercollateralization and potential insolvency."
},
{
"title": "Hook receiver can delegatecall arbitrary targets with Silo/share-token storage context",
"category": "other",
"evidence": "`callOnBehalfOfSilo` and `callOnBehalfOfShareToken` allow delegatecall to an arbitrary `_target`.",
"severity": "low",
"locations": [
"contracts/silo-core/contracts/lib/Actions.sol:518",
"contracts/silo-core/contracts/lib/ShareTokenLib.sol:131"
],
"recommendation": "Remove or disable delegatecall capability, or restrict it to an allowlisted target set. Ensure the hook receiver is immutable and fully trusted if delegatecall remains.",
"exploit_scenario": "A compromised or upgradable hook receiver can invoke `callOnBehalfOfSilo` with `Delegatecall` to execute arbitrary code in the Silo\u2019s storage context (or via ShareToken helper), potentially draining assets or corrupting accounting. This is a powerful trust boundary that amplifies hook receiver risk."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x04b3 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x94bf804d 00000018: GT 00000019: PUSH2 0x026d 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xc63d75b6 00000023: GT 00000024: PUSH2 0x014a 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xda537660 0000002e: GT 0000002f: PUSH2 0x00be 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xeb3beb29 00000039: GT 0000003a: PUSH2 0x0083 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xeb3beb29 00000044: EQ 00000045: PUSH2 0x0f88 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xecd658b4 0000004f: EQ 00000050: PUSH2 0x0f9a 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xef8b30f7 0000005a: EQ 0000005b: PUSH2 0x0fae 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0xf6b911bc 00000065: EQ 00000066: PUSH2 0x0fcd 00000069: JUMPI 0000006a: DUP1 0000006b: PUSH4 0xfa9b1c6a 00000070: EQ 00000071: PUSH2 0x0fec 00000074: JUMPI 00000075: DUP1 00000076: PUSH4 0xffbaaf7a 0000007b: EQ 0000007c: PUSH2 0x100b 0000007f: JUMPI 00000080: PUSH0 00000081: PUSH0 00000082: REVERT 00000083: JUMPDEST 00000084: DUP1 00000085: PUSH4 0xda537660 0000008a: EQ 0000008b: PUSH2 0x0eed 0000008e: JUMPI 0000008f: DUP1 00000090: PUSH4 0xdce5c2db 00000095: EQ 00000096: PUSH2 0x0f0c 00000099: JUMPI 0000009a: DUP1 0000009b: PUSH4 0xdd62ed3e 000000a0: EQ 000000a1: PUSH2 0x0f2b 000000a4: JUMPI 000000a5: DUP1 000000a6: PUSH4 0xe36754eb 000000ab: EQ 000000ac: PUSH2 0x0f4a 000000af: JUMPI 000000b0: DUP1 000000b1: PUSH4 0xe72bec57 000000b6: EQ 000000b7: PUSH2 0x0f69 000000ba: JUMPI 000000bb: PUSH0 000000bc: PUSH0 000000bd: REVERT 000000be: JUMPDEST 000000bf: DUP1 000000c0: PUSH4 0xd505accf 000000c5: GT 000000c6: PUSH2 0x010f 000000c9: JUMPI 000000ca: DUP1 000000cb: PUSH4 0xd505accf 000000d0: EQ 000000d1: PUSH2 0x0e52 000000d4: JUMPI 000000d5: DUP1 000000d6: PUSH4 0xd5164184 000000db: EQ 000000dc: PUSH2 0x0e71 000000df: JUMPI 000000e0: DUP1 000000e1: PUSH4 0xd714fd19 000000e6: EQ 000000e7: PUSH2 0x0a21 000000ea: JUMPI 000000eb: DUP1 000000ec: PUSH4 0xd905777e 000000f1: EQ 000000f2: PUSH2 0x0e90 000000f5: JUMPI 000000f6: DUP1 000000f7: PUSH4 0xd985616c 000000fc: EQ 000000fd: PUSH2 0x0eaf 00000100: JUMPI 00000101: DUP1 00000102: PUSH4 0xd9d98ce4 00000107: EQ 00000108: PUSH2 0x0ece 0000010b: JUMPI 0000010c: PUSH0 0000010d: PUSH0 0000010e: REVERT 0000010f: JUMPDEST 00000110: DUP1 00000111: PUSH4 0xc63d75b6 00000116: EQ 00000117: PUSH2 0x0837 0000011a: JUMPI 0000011b: DUP1 0000011c: PUSH4 0xc6c3bbe6 00000121: EQ 00000122: PUSH2 0x0de1 00000125: JUMPI 00000126: DUP1 00000127: PUSH4 0xc6e6f592 0000012c: EQ 0000012d: PUSH2 0x0e00 00000130: JUMPI 00000131: DUP1 00000132: PUSH4 0xcad1aacf 00000137: EQ 00000138: PUSH2 0x0e1f 0000013b: JUMPI 0000013c: DUP1 0000013d: PUSH4 0xce96cb77 00000142: EQ 00000143: PUSH2 0x0e33 00000146: JUMPI 00000147: PUSH0 00000148: PUSH0 00000149: REVERT 0000014a: JUMPDEST 0000014b: DUP1 0000014c: PUSH4 0xb3d7f6b9 00000151: GT 00000152: PUSH2 0x01e1 00000155: JUMPI 00000156: DUP1 00000157: PUSH4 0xba087652 0000015c: GT 0000015d: PUSH2 0x01a6 00000160: JUMPI 00000161: DUP1 00000162: PUSH4 0xba087652 00000167: EQ 00000168: PUSH2 0x0d13 0000016b: JUMPI 0000016c: DUP1 0000016d: PUSH4 0xba8ffe65 00000172: EQ 00000173: PUSH2 0x0d32 00000176: JUMPI 00000177: DUP1 00000178: PUSH4 0xbf722ca2 0000017d: EQ 0000017e: PUSH2 0x0d51 00000181: JUMPI 00000182: DUP1 00000183: PUSH4 0xc061ddc7 00000188: EQ 00000189: PUSH2 0x0d70 0000018c: JUMPI 0000018d: DUP1 0000018e: PUSH4 0xc45a0155 00000193: EQ 00000194: PUSH2 0x0d8f 00000197: JUMPI 00000198: DUP1 00000199: PUSH4 0xc4d66de8 0000019e: EQ 0000019f: PUSH2 0x0dc2 000001a2: JUMPI 000001a3: PUSH0 000001a4: PUSH0 000001a5: REVERT 000001a6: JUMPDEST 000001a7: DUP1 000001a8: PUSH4 0xb3d7f6b9 000001ad: EQ 000001ae: PUSH2 0x0c78 000001b1: JUMPI 000001b2: DUP1 000001b3: PUSH4 0xb460af94 000001b8: EQ 000001b9: PUSH2 0x0c97 000001bc: JUMPI 000001bd: DUP1 000001be: PUSH4 0xb6d821c7 000001c3: EQ 000001c4: PUSH2 0x0cb6 000001c7: JUMPI 000001c8: DUP1 000001c9: PUSH4 0xb7ec8d4b 000001ce: EQ 000001cf: PUSH2 0x0cd5 000001d2: JUMPI 000001d3: DUP1 000001d4: PUSH4 0xb8337c2a 000001d9: EQ 000001da: PUSH2 0x0cf4 000001dd: JUMPI 000001de: PUSH0 000001df: PUSH0 000001e0: REVERT 000001e1: JUMPDEST 000001e2: DUP1 000001e3: PUSH4 0xa1ecef5c 000001e8: GT 000001e9: PUSH2 0x0232 000001ec: JUMPI 000001ed: DUP1 000001ee: PUSH4 0xa1ecef5c 000001f3: EQ 000001f4: PUSH2 0x0bf3 000001f7: JUMPI 000001f8: DUP1 000001f9: PUSH4 0xa1ff9bee 000001fe: EQ 000001ff: PUSH2 0x04be 00000202: JUMPI 00000203: DUP1 00000204: PUSH4 0xa6afed95 00000209: EQ 0000020a: PUSH2 0x0c07 0000020d: JUMPI 0000020e: DUP1 0000020f: PUSH4 0xa7d6e44b 00000214: EQ 00000215: PUSH2 0x0c1b 00000218: JUMPI 00000219: DUP1 0000021a: PUSH4 0xa9059cbb 0000021f: EQ 00000220: PUSH2 0x0c3a 00000223: JUMPI 00000224: DUP1 00000225: PUSH4 0xacb70815 0000022a: EQ 0000022b: PUSH2 0x0c59 0000022e: JUMPI 0000022f: PUSH0 00000230: PUSH0 00000231: REVERT 00000232: JUMPDEST 00000233: DUP1 00000234: PUSH4 0x94bf804d 00000239: EQ 0000023a: PUSH2 0x0b14 0000023d: JUMPI 0000023e: DUP1 0000023f: PUSH4 0x95d89b41 00000244: EQ 00000245: PUSH2 0x0b33 00000248: JUMPI 00000249: DUP1 0000024a: PUSH4 0x97a9d457 0000024f: EQ 00000250: PUSH2 0x0b47 00000253: JUMPI 00000254: DUP1 00000255: PUSH4 0x9d35abaf 0000025a: EQ 0000025b: PUSH2 0x0b66 0000025e: JUMPI 0000025f: DUP1 00000260: PUSH4 0x9ef2fda0 00000265: EQ 00000266: PUSH2 0x0bb4 00000269: JUMPI 0000026a: PUSH0 0000026b: PUSH0 0000026c: REVERT 0000026d: JUMPDEST 0000026e: DUP1 0000026f: PUSH4 0x421a1aee 00000274: GT 00000275: PUSH2 0x039b 00000278: JUMPI 00000279: DUP1 0000027a: PUSH4 0x6e236614 0000027f: GT 00000280: PUSH2 0x030f 00000283: JUMPI 00000284: DUP1 00000285: PUSH4 0x7ecebe00 0000028a: GT 0000028b: PUSH2 0x02d4 0000028e: JUMPI 0000028f: DUP1 00000290: PUSH4 0x7ecebe00 00000295: EQ 00000296: PUSH2 0x0a35 00000299: JUMPI 0000029a: DUP1 0000029b: PUSH4 0x7fe2c8b7 000002a0: EQ 000002a1: PUSH2 0x0a54 000002a4: JUMPI 000002a5: DUP1 000002a6: PUSH4 0x7ff00077 000002ab: EQ 000002ac: PUSH2 0x0a73 000002af: JUMPI 000002b0: DUP1 000002b1: PUSH4 0x84b0196e 000002b6: EQ 000002b7: PUSH2 0x0a92 000002ba: JUMPI 000002bb: DUP1 000002bc: PUSH4 0x889576f7 000002c1: EQ 000002c2: PUSH2 0x0ab9 000002c5: JUMPI 000002c6: DUP1 000002c7: PUSH4 0x8fea8062 000002cc: EQ 000002cd: PUSH2 0x0ad8 000002d0: JUMPI 000002d1: PUSH0 000002d2: PUSH0 000002d3: REVERT 000002d4: JUMPDEST 000002d5: DUP1 000002d6: PUSH4 0x6e236614 000002db: EQ 000002dc: PUSH2 0x09a5 000002df: JUMPI 000002e0: DUP1 000002e1: PUSH4 0x6e553f65 000002e6: EQ 000002e7: PUSH2 0x09c4 000002ea: JUMPI 000002eb: DUP1 000002ec: PUSH4 0x70a08231 000002f1: EQ 000002f2: PUSH2 0x09e3 000002f5: JUMPI 000002f6: DUP1 000002f7: PUSH4 0x78007e23 000002fc: EQ 000002fd: PUSH2 0x0a02 00000300: JUMPI 00000301: DUP1 00000302: PUSH4 0x79502c55 00000307: EQ 00000308: PUSH2 0x0a21 0000030b: JUMPI 0000030c: PUSH0 0000030d: PUSH0 0000030e: REVERT 0000030f: JUMPDEST 00000310: DUP1 00000311: PUSH4 0x571b9544 00000316: GT 00000317: PUSH2 0x0360 0000031a: JUMPI 0000031b: DUP1 0000031c: PUSH4 0x571b9544 00000321: EQ 00000322: PUSH2 0x08eb 00000325: JUMPI 00000326: DUP1 00000327: PUSH4 0x5cffe9de 0000032c: EQ 0000032d: PUSH2 0x090a 00000330: JUMPI 00000331: DUP1 00000332: PUSH4 0x5d4086af 00000337: EQ 00000338: PUSH2 0x0929 0000033b: JUMPI 0000033c: DUP1 0000033d: PUSH4 0x5f301149 00000342: EQ 00000343: PUSH2 0x0948 00000346: JUMPI 00000347: DUP1 00000348: PUSH4 0x613255ab 0000034d: EQ 0000034e: PUSH2 0x0967 00000351: JUMPI 00000352: DUP1 00000353: PUSH4 0x6e1f8f7e 00000358: EQ 00000359: PUSH2 0x0986 0000035c: JUMPI 0000035d: PUSH0 0000035e: PUSH0 0000035f: REVERT 00000360: JUMPDEST 00000361: DUP1 00000362: PUSH4 0x421a1aee 00000367: EQ 00000368: PUSH2 0x0857 0000036b: JUMPI 0000036c: DUP1 0000036d: PUSH4 0x4624c6a7 00000372: EQ 00000373: PUSH2 0x0876 00000376: JUMPI 00000377: DUP1 00000378: PUSH4 0x476343ee 0000037d: EQ 0000037e: PUSH2 0x0897 00000381: JUMPI 00000382: DUP1 00000383: PUSH4 0x4c7b0f3c 00000388: EQ 00000389: PUSH2 0x08ad 0000038c: JUMPI 0000038d: DUP1 0000038e: PUSH4 0x4cdad506 00000393: EQ 00000394: PUSH2 0x08cc 00000397: JUMPI 00000398: PUSH0 00000399: PUSH0 0000039a: REVERT 0000039b: JUMPDEST 0000039c: DUP1 0000039d: PUSH4 0x18160ddd 000003a2: GT 000003a3: PUSH2 0x0432 000003a6: JUMPI 000003a7: DUP1 000003a8: PUSH4 0x3644e515 000003ad: GT 000003ae: PUSH2 0x03f7 000003b1: JUMPI 000003b2: DUP1 000003b3: PUSH4 0x3644e515 000003b8: EQ 000003b9: PUSH2 0x0774 000003bc: JUMPI 000003bd: DUP1 000003be: PUSH4 0x37224626 000003c3: EQ 000003c4: PUSH2 0x0788 000003c7: JUMPI 000003c8: DUP1 000003c9: PUSH4 0x38b51ce1 000003ce: EQ 000003cf: PUSH2 0x07c3 000003d2: JUMPI 000003d3: DUP1 000003d4: PUSH4 0x38d52e0f 000003d9: EQ 000003da: PUSH2 0x07e2 000003dd: JUMPI 000003de: DUP1 000003df: PUSH4 0x39c5c505 000003e4: EQ 000003e5: PUSH2 0x080e 000003e8: JUMPI 000003e9: DUP1 000003ea: PUSH4 0x402d267d 000003ef: EQ 000003f0: PUSH2 0x0837 000003f3: JUMPI 000003f4: PUSH0 000003f5: PUSH0 000003f6: REVERT 000003f7: JUMPDEST 000003f8: DUP1 000003f9: PUSH4 0x18160ddd 000003fe: EQ 000003ff: PUSH2 0x06be 00000402: JUMPI 00000403: DUP1 00000404: PUSH4 0x23b872dd 00000409: EQ 0000040a: PUSH2 0x06f1 0000040d: JUMPI 0000040e: DUP1 0000040f: PUSH4 0x267e54a7 00000414: EQ 00000415: PUSH2 0x0710 00000418: JUMPI 00000419: DUP1 0000041a: PUSH4 0x29d6509a 0000041f: EQ 00000420: PUSH2 0x072f 00000423: JUMPI 00000424: DUP1 00000425: PUSH4 0x313ce567 0000042a: EQ 0000042b: PUSH2 0x074e 0000042e: JUMPI 0000042f: PUSH0 00000430: PUSH0 00000431: REVERT 00000432: JUMPDEST 00000433: DUP1 00000434: PUSH4 0x095ea7b3 00000439: GT 0000043a: PUSH2 0x0478 0000043d: JUMPI 0000043e: DUP1 0000043f: PUSH4 0x095ea7b3 00000444: EQ 00000445: PUSH2 0x0558 00000448: JUMPI 00000449: DUP1 0000044a: PUSH4 0x0a28a477 0000044f: EQ 00000450: PUSH2 0x0587 00000453: JUMPI 00000454: DUP1 00000455: PUSH4 0x0ed4fe31 0000045a: EQ 0000045b: PUSH2 0x05a6 0000045e: JUMPI 0000045f: DUP1 00000460: PUSH4 0x11b5e682 00000465: EQ 00000466: PUSH2 0x0680 00000469: JUMPI 0000046a: DUP1 0000046b: PUSH4 0x12d4c574 00000470: EQ 00000471: PUSH2 0x069f 00000474: JUMPI 00000475: PUSH0 00000476: PUSH0 00000477: REVERT 00000478: JUMPDEST 00000479: DUP1 0000047a: PUSH4 0x01e1d114 0000047f: EQ 00000480: PUSH2 0x04be 00000483: JUMPI 00000484: DUP1 00000485: PUSH4 0x06fdde03 0000048a: EQ 0000048b: PUSH2 0x04e5 0000048e: JUMPI 0000048f: DUP1 00000490: PUSH4 0x071bf3ff 00000495: EQ 00000496: PUSH2 0x0506 00000499: JUMPI 0000049a: DUP1 0000049b: PUSH4 0x07a2d13a 000004a0: EQ 000004a1: PUSH2 0x0525 000004a4: JUMPI 000004a5: DUP1 000004a6: PUSH4 0x0910a510 000004ab: EQ 000004ac: PUSH2 0x0544 000004af: JUMPI 000004b0: PUSH0 000004b1: PUSH0 000004b2: REVERT 000004b3: JUMPDEST 000004b4: CALLDATASIZE 000004b5: PUSH2 0x04ba 000004b8: JUMPI 000004b9: STOP 000004ba: JUMPDEST 000004bb: PUSH0 000004bc: PUSH0 000004bd: REVERT 000004be: JUMPDEST 000004bf: CALLVALUE 000004c0: DUP1 000004c1: ISZERO 000004c2: PUSH2 0x04c9 000004c5: JUMPI 000004c6: PUSH0 000004c7: PUSH0 000004c8: REVERT 000004c9: JUMPDEST 000004ca: POP 000004cb: PUSH2 0x04d2 000004ce: PUSH2 0x101f 000004d1: JUMP 000004d2: JUMPDEST 000004d3: PUSH1 0x40 000004d5: MLOAD 000004d6: SWAP1 000004d7: DUP2 000004d8: MSTORE 000004d9: PUSH1 0x20 000004db: ADD 000004dc: JUMPDEST 000004dd: PUSH1 0x40 000004df: MLOAD 000004e0: DUP1 000004e1: SWAP2 000004e2: SUB 000004e3: SWAP1 000004e4: RETURN 000004e5: JUMPDEST 000004e6: CALLVALUE 000004e7: DUP1 000004e8: ISZERO 000004e9: PUSH2 0x04f0 000004ec: JUMPI 000004ed: PUSH0 000004ee: PUSH0 000004ef: REVERT 000004f0: JUMPDEST 000004f1: POP 000004f2: PUSH2 0x04f9 000004f5: PUSH2 0x102d 000004f8: JUMP 000004f9: JUMPDEST 000004fa: PUSH1 0x40 000004fc: MLOAD 000004fd: PUSH2 0x04dc 00000500: SWAP2 00000501: SWAP1 00000502: PUSH2 0x4a44 00000505: JUMP 00000506: JUMPDEST 00000507: CALLVALUE 00000508: DUP1 00000509: ISZERO 0000050a: PUSH2 0x0511 0000050d: JUMPI 0000050e: PUSH0 0000050f: PUSH0 00000510: REVERT 00000511: JUMPDEST 00000512: POP 00000513: PUSH2 0x04d2 00000516: PUSH2 0x0520 00000519: CALLDATASIZE 0000051a: PUSH1 0x04 0000051c: PUSH2 0x4a76 0000051f: JUMP 00000520: JUMPDEST 00000521: PUSH2 0x109c 00000524: JUMP 00000525: JUMPDEST 00000526: CALLVALUE 00000527: DUP1 00000528: ISZERO 00000529: PUSH2 0x0530 0000052c: JUMPI 0000052d: PUSH0 0000052e: PUSH0 0000052f: REVERT 00000530: JUMPDEST 00000531: POP 00000532: PUSH2 0x04d2 00000535: PUSH2 0x053f 00000538: CALLDATASIZE 00000539: PUSH1 0x04 0000053b: PUSH2 0x4aad 0000053e: JUMP 0000053f: JUMPDEST 00000540: PUSH2 0x10af 00000543: JUMP 00000544: JUMPDEST 00000545: CALLVALUE 00000546: DUP1 00000547: ISZERO 00000548: PUSH2 0x054f 0000054b: JUMPI 0000054c: PUSH0 0000054d: PUSH0 0000054e: REVERT 0000054f: JUMPDEST 00000550: POP 00000551: PUSH2 0x04d2 00000554: PUSH2 0x10c1 00000557: JUMP 00000558: JUMPDEST 00000559: CALLVALUE 0000055a: DUP1 0000055b: ISZERO 0000055c: PUSH2 0x0563 0000055f: JUMPI 00000560: PUSH0 00000561: PUSH0 00000562: REVERT 00000563: JUMPDEST 00000564: POP 00000565: PUSH2 0x0577 00000568: PUSH2 0x0572 0000056b: CALLDATASIZE 0000056c: PUSH1 0x04 0000056e: PUSH2 0x4ac4 00000571: JUMP 00000572: JUMPDEST 00000573: PUSH2 0x10d2 00000576: JUMP 00000577: JUMPDEST 00000578: PUSH1 0x40 0000057a: MLOAD 0000057b: SWAP1 0000057c: ISZERO 0000057d: ISZERO 0000057e: DUP2 0000057f: MSTORE 00000580: PUSH1 0x20 00000582: ADD 00000583: PUSH2 0x04dc 00000586: JUMP 00000587: JUMPDEST 00000588: CALLVALUE 00000589: DUP1 0000058a: ISZERO 0000058b: PUSH2 0x0592 0000058e: JUMPI 0000058f: PUSH0 00000590: PUSH0 00000591: REVERT 00000592: JUMPDEST 00000593: POP 00000594: PUSH2 0x04d2 00000597: PUSH2 0x05a1 0000059a: CALLDATASIZE 0000059b: PUSH1 0x04 0000059d: PUSH2 0x4aad 000005a0: JUMP 000005a1: JUMPDEST 000005a2: PUSH2 0x10f4 000005a5: JUMP 000005a6: JUMPDEST 000005a7: CALLVALUE 000005a8: DUP1 000005a9: ISZERO 000005aa: PUSH2 0x05b1 000005ad: JUMPI 000005ae: PUSH0 000005af: PUSH0 000005b0: REVERT 000005b1: JUMPDEST 000005b2: POP 000005b3: PUSH2 0x0637 000005b6: PUSH1 0x40 000005b8: DUP1 000005b9: MLOAD 000005ba: PUSH1 0x80 000005bc: DUP2 000005bd: ADD 000005be: DUP3 000005bf: MSTORE 000005c0: PUSH0 000005c1: DUP1 000005c2: DUP3 000005c3: MSTORE 000005c4: PUSH1 0x20 000005c6: DUP3 000005c7: ADD 000005c8: DUP2 000005c9: SWAP1 000005ca: MSTORE 000005cb: SWAP2 000005cc: DUP2 000005cd: ADD 000005ce: DUP3 000005cf: SWAP1 000005d0: MSTORE 000005d1: PUSH1 0x60 000005d3: DUP2 000005d4: ADD 000005d5: SWAP2 000005d6: SWAP1 000005d7: SWAP2 000005d8: MSTORE 000005d9: PUSH0 000005da: MLOAD 000005db: PUSH1 0x20 000005dd: PUSH2 0x5708 000005e0: PUSH0 000005e1: CODECOPY 000005e2: PUSH0 000005e3: MLOAD 000005e4: SWAP1 000005e5: PUSH0 000005e6: MSTORE 000005e7: PUSH1 0x40 000005e9: DUP1 000005ea: MLOAD 000005eb: PUSH1 0x80 000005ed: DUP2 000005ee: ADD 000005ef: DUP3 000005f0: MSTORE 000005f1: PUSH1 0x02 000005f3: SWAP3 000005f4: SWAP1 000005f5: SWAP3 000005f6: ADD 000005f7: SLOAD 000005f8: PUSH1 0x01 000005fa: PUSH1 0x01 000005fc: PUSH1 0xa0 000005fe: SHL 000005ff: SUB 00000600: DUP2 00000601: AND 00000602: DUP4 00000603: MSTORE 00000604: PUSH3 0xffffff 00000608: PUSH1 0x01 0000060a: PUSH1 0xa0 0000060c: SHL 0000060d: DUP3 0000060e: DIV 0000060f: DUP2 00000610: AND 00000611: PUSH1 0x20 00000613: DUP6 00000614: ADD 00000615: MSTORE 00000616: PUSH1 0x01 00000618: PUSH1 0xb8 0000061a: SHL 0000061b: DUP3 0000061c: DIV 0000061d: DUP2 0000061e: AND 0000061f: SWAP3 00000620: DUP5 00000621: ADD 00000622: SWAP3 00000623: SWAP1 00000624: SWAP3 00000625: MSTORE 00000626: PUSH1 0x01 00000628: PUSH1 0xd0 0000062a: SHL 0000062b: SWAP1 0000062c: DIV 0000062d: AND 0000062e: PUSH1 0x60 00000630: DUP3 00000631: ADD 00000632: MSTORE 00000633: SWAP2 00000634: SWAP1 00000635: POP 00000636: JUMP 00000637: JUMPDEST 00000638: PUSH1 0x40 0000063a: MLOAD 0000063b: PUSH2 0x04dc 0000063e: SWAP2 0000063f: SWAP1 00000640: DUP2 00000641: MLOAD 00000642: PUSH1 0x01 00000644: PUSH1 0x01 00000646: PUSH1 0xa0 00000648: SHL 00000649: SUB 0000064a: AND 0000064b: DUP2 0000064c: MSTORE 0000064d: PUSH1 0x20 0000064f: DUP1 00000650: DUP4 00000651: ADD 00000652: MLOAD 00000653: PUSH3 0xffffff 00000657: SWAP1 00000658: DUP2 00000659: AND 0000065a: SWAP2 0000065b: DUP4 0000065c: ADD 0000065d: SWAP2 0000065e: SWAP1 0000065f: SWAP2 00000660: MSTORE 00000661: PUSH1 0x40 00000663: DUP1 00000664: DUP5 00000665: ADD 00000666: MLOAD 00000667: DUP3 00000668: AND 00000669: SWAP1 0000066a: DUP4 0000066b: ADD 0000066c: MSTORE 0000066d: PUSH1 0x60 0000066f: SWAP3 00000670: DUP4 00000671: ADD 00000672: MLOAD 00000673: AND 00000674: SWAP2 00000675: DUP2 00000676: ADD 00000677: SWAP2 00000678: SWAP1 00000679: SWAP2 0000067a: MSTORE 0000067b: PUSH1 0x80 0000067d: ADD 0000067e: SWAP1 0000067f: JUMP 00000680: JUMPDEST 00000681: CALLVALUE 00000682: DUP1 00000683: ISZERO 00000684: PUSH2 0x068b 00000687: JUMPI 00000688: PUSH0 00000689: PUSH0 0000068a: REVERT 0000068b: JUMPDEST 0000068c: POP 0000068d: PUSH2 0x04d2 00000690: PUSH2 0x069a 00000693: CALLDATASIZE 00000694: PUSH1 0x04 00000696: PUSH2 0x4aee 00000699: JUMP 0000069a: JUMPDEST 0000069b: PUSH2 0x1100 0000069e: JUMP 0000069f: JUMPDEST 000006a0: CALLVALUE 000006a1: DUP1 000006a2: ISZERO 000006a3: PUSH2 0x06aa 000006a6: JUMPI 000006a7: PUSH0 000006a8: PUSH0 000006a9: REVERT 000006aa: JUMPDEST 000006ab: POP 000006ac: PUSH2 0x04d2 000006af: PUSH2 0x06b9 000006b2: CALLDATASIZE 000006b3: PUSH1 0x04 000006b5: PUSH2 0x4a76 000006b8: JUMP 000006b9: JUMPDEST 000006ba: PUSH2 0x110b 000006bd: JUMP 000006be: JUMPDEST 000006bf: CALLVALUE 000006c0: DUP1 000006c1: ISZERO 000006c2: PUSH2 0x06c9 000006c5: JUMPI 000006c6: PUSH0 000006c7: PUSH0 000006c8: REVERT 000006c9: JUMPDEST 000006ca: POP 000006cb: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02 000006ec: SLOAD 000006ed: PUSH2 0x04d2 000006f0: JUMP 000006f1: JUMPDEST 000006f2: CALLVALUE 000006f3: DUP1 000006f4: ISZERO 000006f5: PUSH2 0x06fc 000006f8: JUMPI 000006f9: PUSH0 000006fa: PUSH0 000006fb: REVERT 000006fc: JUMPDEST 000006fd: POP 000006fe: PUSH2 0x0577 00000701: PUSH2 0x070b 00000704: CALLDATASIZE 00000705: PUSH1 0x04 00000707: PUSH2 0x4b11 0000070a: JUMP 0000070b: JUMPDEST 0000070c: PUSH2 0x111e 0000070f: JUMP 00000710: JUMPDEST 00000711: CALLVALUE 00000712: DUP1 00000713: ISZERO 00000714: PUSH2 0x071b 00000717: JUMPI 00000718: PUSH0 00000719: PUSH0 0000071a: REVERT 0000071b: JUMPDEST 0000071c: POP 0000071d: PUSH2 0x04d2 00000720: PUSH2 0x072a 00000723: CALLDATASIZE 00000724: PUSH1 0x04 00000726: PUSH2 0x4aee 00000729: JUMP 0000072a: JUMPDEST 0000072b: PUSH2 0x118d 0000072e: JUMP 0000072f: JUMPDEST 00000730: CALLVALUE 00000731: DUP1 00000732: ISZERO 00000733: PUSH2 0x073a 00000736: JUMPI 00000737: PUSH0 00000738: PUSH0 00000739: REVERT 0000073a: JUMPDEST 0000073b: POP 0000073c: PUSH2 0x04d2 0000073f: PUSH2 0x0749 00000742: CALLDATASIZE 00000743: PUSH1 0x04 00000745: PUSH2 0x4b4f 00000748: JUMP 00000749: JUMPDEST 0000074a: PUSH2 0x1198 0000074d: JUMP 0000074e: JUMPDEST 0000074f: CALLVALUE 00000750: DUP1 00000751: ISZERO 00000752: PUSH2 0x0759 00000755: JUMPI 00000756: PUSH0 00000757: PUSH0 00000758: REVERT 00000759: JUMPDEST 0000075a: POP 0000075b: PUSH2 0x0762 0000075e: PUSH2 0x1276 00000761: JUMP 00000762: JUMPDEST 00000763: PUSH1 0x40 00000765: MLOAD 00000766: PUSH1 0xff 00000768: SWAP1 00000769: SWAP2 0000076a: AND 0000076b: DUP2 0000076c: MSTORE 0000076d: PUSH1 0x20 0000076f: ADD 00000770: PUSH2 0x04dc 00000773: JUMP 00000774: JUMPDEST 00000775: CALLVALUE 00000776: DUP1 00000777: ISZERO 00000778: PUSH2 0x077f 0000077b: JUMPI 0000077c: PUSH0 0000077d: PUSH0 0000077e: REVERT 0000077f: JUMPDEST 00000780: POP 00000781: PUSH2 0x04d2 00000784: PUSH2 0x12e2 00000787: JUMP 00000788: JUMPDEST 00000789: CALLVALUE 0000078a: DUP1 0000078b: ISZERO 0000078c: PUSH2 0x0793 0000078f: JUMPI 00000790: PUSH0 00000791: PUSH0 00000792: REVERT 00000793: JUMPDEST 00000794: POP 00000795: PUSH2 0x079c 00000798: PUSH2 0x12eb 0000079b: JUMP 0000079c: JUMPDEST 0000079d: PUSH1 0x40 0000079f: DUP1 000007a0: MLOAD 000007a1: DUP3 000007a2: MLOAD 000007a3: PUSH1 0x01 000007a5: PUSH1 0x01 000007a7: PUSH1 0x40 000007a9: SHL 000007aa: SUB 000007ab: SWAP1 000007ac: DUP2 000007ad: AND 000007ae: DUP3 000007af: MSTORE 000007b0: PUSH1 0x20 000007b2: SWAP4 000007b3: DUP5 000007b4: ADD 000007b5: MLOAD 000007b6: AND 000007b7: SWAP3 000007b8: DUP2 000007b9: ADD 000007ba: SWAP3 000007bb: SWAP1 000007bc: SWAP3 000007bd: MSTORE 000007be: ADD 000007bf: PUSH2 0x04dc 000007c2: JUMP 000007c3: JUMPDEST 000007c4: CALLVALUE 000007c5: DUP1 000007c6: ISZERO 000007c7: PUSH2 0x07ce 000007ca: JUMPI 000007cb: PUSH0 000007cc: PUSH0 000007cd: REVERT 000007ce: JUMPDEST 000007cf: POP 000007d0: PUSH2 0x0577 000007d3: PUSH2 0x07dd 000007d6: CALLDATASIZE 000007d7: PUSH1 0x04 000007d9: PUSH2 0x4b4f 000007dc: JUMP 000007dd: JUMPDEST 000007de: PUSH2 0x135b 000007e1: JUMP 000007e2: JUMPDEST 000007e3: CALLVALUE 000007e4: DUP1 000007e5: ISZERO 000007e6: PUSH2 0x07ed 000007e9: JUMPI 000007ea: PUSH0 000007eb: PUSH0 000007ec: REVERT 000007ed: JUMPDEST 000007ee: POP 000007ef: PUSH2 0x07f6 000007f2: PUSH2 0x13d7 000007f5: JUMP 000007f6: JUMPDEST 000007f7: PUSH1 0x40 000007f9: MLOAD 000007fa: PUSH1 0x01 000007fc: PUSH1 0x01 000007fe: PUSH1 0xa0 00000800: SHL 00000801: SUB 00000802: SWAP1 00000803: SWAP2 00000804: AND 00000805: DUP2 00000806: MSTORE 00000807: PUSH1 0x20 00000809: ADD 0000080a: PUSH2 0x04dc 0000080d: JUMP 0000080e: JUMPDEST 0000080f: CALLVALUE 00000810: DUP1 00000811: ISZERO 00000812: PUSH2 0x0819 00000815: JUMPI 00000816: PUSH0 00000817: PUSH0 00000818: REVERT 00000819: JUMPDEST 0000081a: POP 0000081b: PUSH2 0x0822 0000081e: PUSH2 0x1448 00000821: JUMP 00000822: JUMPDEST 00000823: PUSH1 0x40 00000825: DUP1 00000826: MLOAD 00000827: SWAP3 00000828: DUP4 00000829: MSTORE 0000082a: PUSH1 0x20 0000082c: DUP4 0000082d: ADD 0000082e: SWAP2 0000082f: SWAP1 00000830: SWAP2 00000831: MSTORE 00000832: ADD 00000833: PUSH2 0x04dc 00000836: JUMP 00000837: JUMPDEST 00000838: CALLVALUE 00000839: DUP1 0000083a: ISZERO 0000083b: PUSH2 0x0842 0000083e: JUMPI 0000083f: PUSH0 00000840: PUSH0 00000841: REVERT 00000842: JUMPDEST 00000843: POP 00000844: PUSH2 0x04d2 00000847: PUSH2 0x0851 0000084a: CALLDATASIZE 0000084b: PUSH1 0x04 0000084d: PUSH2 0x4b4f 00000850: JUMP 00000851: JUMPDEST 00000852: POP 00000853: PUSH0 00000854: NOT 00000855: SWAP1 00000856: JUMP 00000857: JUMPDEST 00000858: CALLVALUE 00000859: DUP1 0000085a: ISZERO 0000085b: PUSH2 0x0862 0000085e: JUMPI 0000085f: PUSH0 00000860: PUSH0 00000861: REVERT 00000862: JUMPDEST 00000863: POP 00000864: PUSH2 0x04d2 00000867: PUSH2 0x0871 0000086a: CALLDATASIZE 0000086b: PUSH1 0x04 0000086d: PUSH2 0x4b4f 00000870: JUMP 00000871: JUMPDEST 00000872: PUSH2 0x145b 00000875: JUMP 00000876: JUMPDEST 00000877: PUSH2 0x0889 0000087a: PUSH2 0x0884 0000087d: CALLDATASIZE 0000087e: PUSH1 0x04 00000880: PUSH2 0x4ba7 00000883: JUMP 00000884: JUMPDEST 00000885: PUSH2 0x14dd 00000888: JUMP 00000889: JUMPDEST 0000088a: PUSH1 0x40 0000088c: MLOAD 0000088d: PUSH2 0x04dc 00000890: SWAP3 00000891: SWAP2 00000892: SWAP1 00000893: PUSH2 0x4c14 00000896: JUMP 00000897: JUMPDEST 00000898: CALLVALUE 00000899: DUP1 0000089a: ISZERO 0000089b: PUSH2 0x08a2 0000089e: JUMPI 0000089f: PUSH0 000008a0: PUSH0 000008a1: REVERT 000008a2: JUMPDEST 000008a3: POP 000008a4: PUSH2 0x08ab 000008a7: PUSH2 0x14fb 000008aa: JUMP 000008ab: JUMPDEST 000008ac: STOP 000008ad: JUMPDEST 000008ae: CALLVALUE 000008af: DUP1 000008b0: ISZERO 000008b1: PUSH2 0x08b8 000008b4: JUMPI 000008b5: PUSH0 000008b6: PUSH0 000008b7: REVERT 000008b8: JUMPDEST 000008b9: POP 000008ba: PUSH2 0x08ab 000008bd: PUSH2 0x08c7 000008c0: CALLDATASIZE 000008c1: PUSH1 0x04 000008c3: PUSH2 0x4c3e 000008c6: JUMP 000008c7: JUMPDEST 000008c8: PUSH2 0x15ca 000008cb: JUMP 000008cc: JUMPDEST 000008cd: CALLVALUE 000008ce: DUP1 000008cf: ISZERO 000008d0: PUSH2 0x08d7 000008d3: JUMPI 000008d4: PUSH0 000008d5: PUSH0 000008d6: REVERT 000008d7: JUMPDEST 000008d8: POP 000008d9: PUSH2 0x04d2 000008dc: PUSH2 0x08e6 000008df: CALLDATASIZE 000008e0: PUSH1 0x04 000008e2: PUSH2 0x4aad 000008e5: JUMP 000008e6: JUMPDEST 000008e7: PUSH2 0x165e 000008ea: JUMP 000008eb: JUMPDEST 000008ec: CALLVALUE 000008ed: DUP1 000008ee: ISZERO 000008ef: PUSH2 0x08f6 000008f2: JUMPI 000008f3: PUSH0 000008f4: PUSH0 000008f5: REVERT 000008f6: JUMPDEST 000008f7: POP 000008f8: PUSH2 0x04d2 000008fb: PUSH2 0x0905 000008fe: CALLDATASIZE 000008ff: PUSH1 0x04 00000901: PUSH2 0x4b4f 00000904: JUMP 00000905: JUMPDEST 00000906: PUSH2 0x166a 00000909: JUMP 0000090a: JUMPDEST 0000090b: CALLVALUE 0000090c: DUP1 0000090d: ISZERO 0000090e: PUSH2 0x0915 00000911: JUMPI 00000912: PUSH0 00000913: PUSH0 00000914: REVERT 00000915: JUMPDEST 00000916: POP 00000917: PUSH2 0x0577 0000091a: PUSH2 0x0924 0000091d: CALLDATASIZE 0000091e: PUSH1 0x04 00000920: PUSH2 0x4c6a 00000923: JUMP 00000924: JUMPDEST 00000925: PUSH2 0x16f4 00000928: JUMP 00000929: JUMPDEST 0000092a: CALLVALUE 0000092b: DUP1 0000092c: ISZERO 0000092d: PUSH2 0x0934 00000930: JUMPI 00000931: PUSH0 00000932: PUSH0 00000933: REVERT 00000934: JUMPDEST 00000935: POP 00000936: PUSH2 0x04d2 00000939: PUSH2 0x0943 0000093c: CALLDATASIZE 0000093d: PUSH1 0x04 0000093f: PUSH2 0x4ccd 00000942: JUMP 00000943: JUMPDEST 00000944: PUSH2 0x17b9 00000947: JUMP 00000948: JUMPDEST 00000949: CALLVALUE 0000094a: DUP1 0000094b: ISZERO 0000094c: PUSH2 0x0953 0000094f: JUMPI 00000950: PUSH0 00000951: PUSH0 00000952: REVERT 00000953: JUMPDEST 00000954: POP 00000955: PUSH2 0x04d2 00000958: PUSH2 0x0962 0000095b: CALLDATASIZE 0000095c: PUSH1 0x04 0000095e: PUSH2 0x4b4f 00000961: JUMP 00000962: JUMPDEST 00000963: PUSH2 0x17c4 00000966: JUMP 00000967: JUMPDEST 00000968: CALLVALUE 00000969: DUP1 0000096a: ISZERO 0000096b: PUSH2 0x0972 0000096e: JUMPI 0000096f: PUSH0 00000970: PUSH0 00000971: REVERT 00000972: JUMPDEST 00000973: POP 00000974: PUSH2 0x04d2 00000977: PUSH2 0x0981 0000097a: CALLDATASIZE 0000097b: PUSH1 0x04 0000097d: PUSH2 0x4b4f 00000980: JUMP 00000981: JUMPDEST 00000982: PUSH2 0x1840 00000985: JUMP 00000986: JUMPDEST 00000987: CALLVALUE 00000988: DUP1 00000989: ISZERO 0000098a: PUSH2 0x0991 0000098d: JUMPI 0000098e: PUSH0 0000098f: PUSH0 00000990: REVERT 00000991: JUMPDEST 00000992: POP 00000993: PUSH2 0x04d2 00000996: PUSH2 0x09a0 00000999: CALLDATASIZE 0000099a: PUSH1 0x04 0000099c: PUSH2 0x4aee 0000099f: JUMP 000009a0: JUMPDEST 000009a1: PUSH2 0x184a 000009a4: JUMP 000009a5: JUMPDEST 000009a6: CALLVALUE 000009a7: DUP1 000009a8: ISZERO 000009a9: PUSH2 0x09b0 000009ac: JUMPI 000009ad: PUSH0 000009ae: PUSH0 000009af: REVERT 000009b0: JUMPDEST 000009b1: POP 000009b2: PUSH2 0x08ab 000009b5: PUSH2 0x09bf 000009b8: CALLDATASIZE 000009b9: PUSH1 0x04 000009bb: PUSH2 0x4cee 000009be: JUMP 000009bf: JUMPDEST 000009c0: PUSH2 0x1855 000009c3: JUMP 000009c4: JUMPDEST 000009c5: CALLVALUE 000009c6: DUP1 000009c7: ISZERO 000009c8: PUSH2 0x09cf 000009cb: JUMPI 000009cc: PUSH0 000009cd: PUSH0 000009ce: REVERT 000009cf: JUMPDEST 000009d0: POP 000009d1: PUSH2 0x04d2 000009d4: PUSH2 0x09de 000009d7: CALLDATASIZE 000009d8: PUSH1 0x04 000009da: PUSH2 0x4d20 000009dd: JUMP 000009de: JUMPDEST 000009df: PUSH2 0x189f 000009e2: JUMP 000009e3: JUMPDEST 000009e4: CALLVALUE 000009e5: DUP1 000009e6: ISZERO 000009e7: PUSH2 0x09ee 000009ea: JUMPI 000009eb: PUSH0 000009ec: PUSH0 000009ed: REVERT 000009ee: JUMPDEST 000009ef: POP 000009f0: PUSH2 0x04d2 000009f3: PUSH2 0x09fd 000009f6: CALLDATASIZE 000009f7: PUSH1 0x04 000009f9: PUSH2 0x4b4f 000009fc: JUMP 000009fd: JUMPDEST 000009fe: PUSH2 0x18ad 00000a01: JUMP 00000a02: JUMPDEST 00000a03: CALLVALUE 00000a04: DUP1 00000a05: ISZERO 00000a06: PUSH2 0x0a0d 00000a09: JUMPI 00000a0a: PUSH0 00000a0b: PUSH0 00000a0c: REVERT 00000a0d: JUMPDEST 00000a0e: POP 00000a0f: PUSH2 0x04d2 00000a12: PUSH2 0x0a1c 00000a15: CALLDATASIZE 00000a16: PUSH1 0x04 00000a18: PUSH2 0x4aad 00000a1b: JUMP 00000a1c: JUMPDEST 00000a1d: PUSH2 0x18f0 00000a20: JUMP 00000a21: JUMPDEST 00000a22: CALLVALUE 00000a23: DUP1 00000a24: ISZERO 00000a25: PUSH2 0x0a2c 00000a28: JUMPI 00000a29: PUSH0 00000a2a: PUSH0 00000a2b: REVERT 00000a2c: JUMPDEST 00000a2d: POP 00000a2e: PUSH2 0x07f6 00000a31: PUSH2 0x1918 00000a34: JUMP 00000a35: JUMPDEST 00000a36: CALLVALUE 00000a37: DUP1 00000a38: ISZERO 00000a39: PUSH2 0x0a40 00000a3c: JUMPI 00000a3d: PUSH0 00000a3e: PUSH0 00000a3f: REVERT 00000a40: JUMPDEST 00000a41: POP 00000a42: PUSH2 0x04d2 00000a45: PUSH2 0x0a4f 00000a48: CALLDATASIZE 00000a49: PUSH1 0x04 00000a4b: PUSH2 0x4b4f 00000a4e: JUMP 00000a4f: JUMPDEST 00000a50: PUSH2 0x1921 00000a53: JUMP 00000a54: JUMPDEST 00000a55: CALLVALUE 00000a56: DUP1 00000a57: ISZERO 00000a58: PUSH2 0x0a5f 00000a5b: JUMPI 00000a5c: PUSH0 00000a5d: PUSH0 00000a5e: REVERT 00000a5f: JUMPDEST 00000a60: POP 00000a61: PUSH2 0x04d2 00000a64: PUSH2 0x0a6e 00000a67: CALLDATASIZE 00000a68: PUSH1 0x04 00000a6a: PUSH2 0x4d43 00000a6d: JUMP 00000a6e: JUMPDEST 00000a6f: PUSH2 0x192b 00000a72: JUMP 00000a73: JUMPDEST 00000a74: CALLVALUE 00000a75: DUP1 00000a76: ISZERO 00000a77: PUSH2 0x0a7e 00000a7a: JUMPI 00000a7b: PUSH0 00000a7c: PUSH0 00000a7d: REVERT 00000a7e: JUMPDEST 00000a7f: POP 00000a80: PUSH2 0x04d2 00000a83: PUSH2 0x0a8d 00000a86: CALLDATASIZE 00000a87: PUSH1 0x04 00000a89: PUSH2 0x4ccd 00000a8c: JUMP 00000a8d: JUMPDEST 00000a8e: PUSH2 0x1a64 00000a91: JUMP 00000a92: JUMPDEST 00000a93: CALLVALUE 00000a94: DUP1 00000a95: ISZERO 00000a96: PUSH2 0x0a9d 00000a99: JUMPI 00000a9a: PUSH0 00000a9b: PUSH0 00000a9c: REVERT 00000a9d: JUMPDEST 00000a9e: POP 00000a9f: PUSH2 0x0aa6 00000aa2: PUSH2 0x1a6f 00000aa5: JUMP 00000aa6: JUMPDEST 00000aa7: PUSH1 0x40 00000aa9: MLOAD 00000aaa: PUSH2 0x04dc 00000aad: SWAP8 00000aae: SWAP7 00000aaf: SWAP6 00000ab0: SWAP5 00000ab1: SWAP4 00000ab2: SWAP3 00000ab3: SWAP2 00000ab4: SWAP1 00000ab5: PUSH2 0x4d82 00000ab8: JUMP 00000ab9: JUMPDEST 00000aba: CALLVALUE 00000abb: DUP1 00000abc: ISZERO 00000abd: PUSH2 0x0ac4 00000ac0: JUMPI 00000ac1: PUSH0 00000ac2: PUSH0 00000ac3: REVERT 00000ac4: JUMPDEST 00000ac5: POP 00000ac6: PUSH2 0x04d2 00000ac9: PUSH2 0x0ad3 00000acc: CALLDATASIZE 00000acd: PUSH1 0x04 00000acf: PUSH2 0x4d43 00000ad2: JUMP 00000ad3: JUMPDEST 00000ad4: PUSH2 0x1b1d 00000ad7: JUMP 00000ad8: JUMPDEST 00000ad9: CALLVALUE 00000ada: DUP1 00000adb: ISZERO 00000adc: PUSH2 0x0ae3 00000adf: JUMPI 00000ae0: PUSH0 00000ae1: PUSH0 00000ae2: REVERT 00000ae3: JUMPDEST 00000ae4: POP 00000ae5: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1202 00000b06: SLOAD 00000b07: PUSH1 0x01 00000b09: PUSH1 0x01 00000b0b: PUSH1 0xa0 00000b0d: SHL 00000b0e: SUB 00000b0f: AND 00000b10: PUSH2 0x07f6 00000b13: JUMP 00000b14: JUMPDEST 00000b15: CALLVALUE 00000b16: DUP1 00000b17: ISZERO 00000b18: PUSH2 0x0b1f 00000b1b: JUMPI 00000b1c: PUSH0 00000b1d: PUSH0 00000b1e: REVERT 00000b1f: JUMPDEST 00000b20: POP 00000b21: PUSH2 0x04d2 00000b24: PUSH2 0x0b2e 00000b27: CALLDATASIZE 00000b28: PUSH1 0x04 00000b2a: PUSH2 0x4d20 00000b2d: JUMP 00000b2e: JUMPDEST 00000b2f: PUSH2 0x1c18 00000b32: JUMP 00000b33: JUMPDEST 00000b34: CALLVALUE 00000b35: DUP1 00000b36: ISZERO 00000b37: PUSH2 0x0b3e 00000b3a: JUMPI 00000b3b: PUSH0 00000b3c: PUSH0 00000b3d: REVERT 00000b3e: JUMPDEST 00000b3f: POP 00000b40: PUSH2 0x04f9 00000b43: PUSH2 0x1c26 00000b46: JUMP 00000b47: JUMPDEST 00000b48: CALLVALUE 00000b49: DUP1 00000b4a: ISZERO 00000b4b: PUSH2 0x0b52 00000b4e: JUMPI 00000b4f: PUSH0 00000b50: PUSH0 00000b51: REVERT 00000b52: JUMPDEST 00000b53: POP 00000b54: PUSH2 0x04d2 00000b57: PUSH2 0x0b61 00000b5a: CALLDATASIZE 00000b5b: PUSH1 0x04 00000b5d: PUSH2 0x4b4f 00000b60: JUMP 00000b61: JUMPDEST 00000b62: PUSH2 0x1c6e 00000b65: JUMP 00000b66: JUMPDEST 00000b67: CALLVALUE 00000b68: DUP1 00000b69: ISZERO 00000b6a: PUSH2 0x0b71 00000b6d: JUMPI 00000b6e: PUSH0 00000b6f: PUSH0 00000b70: REVERT 00000b71: JUMPDEST 00000b72: POP 00000b73: PUSH2 0x0b7a 00000b76: PUSH2 0x1cb7 00000b79: JUMP 00000b7a: JUMPDEST 00000b7b: PUSH1 0x40 00000b7d: DUP1 00000b7e: MLOAD 00000b7f: PUSH1 0x01 00000b81: PUSH1 0x01 00000b83: PUSH1 0xc0 00000b85: SHL 00000b86: SUB 00000b87: SWAP1 00000b88: SWAP7 00000b89: AND 00000b8a: DUP7 00000b8b: MSTORE 00000b8c: PUSH1 0x01 00000b8e: PUSH1 0x01 00000b90: PUSH1 0x40 00000b92: SHL 00000b93: SUB 00000b94: SWAP1 00000b95: SWAP5 00000b96: AND 00000b97: PUSH1 0x20 00000b99: DUP7 00000b9a: ADD 00000b9b: MSTORE 00000b9c: SWAP3 00000b9d: DUP5 00000b9e: ADD 00000b9f: SWAP2 00000ba0: SWAP1 00000ba1: SWAP2 00000ba2: MSTORE 00000ba3: PUSH1 0x60 00000ba5: DUP4 00000ba6: ADD 00000ba7: MSTORE 00000ba8: PUSH1 0x80 00000baa: DUP3 00000bab: ADD 00000bac: MSTORE 00000bad: PUSH1 0xa0 00000baf: ADD 00000bb0: PUSH2 0x04dc 00000bb3: JUMP 00000bb4: JUMPDEST 00000bb5: CALLVALUE 00000bb6: DUP1 00000bb7: ISZERO 00000bb8: PUSH2 0x0bbf 00000bbb: JUMPI 00000bbc: PUSH0 00000bbd: PUSH0 00000bbe: REVERT 00000bbf: JUMPDEST 00000bc0: POP 00000bc1: PUSH2 0x0bc8 00000bc4: PUSH2 0x1d69 00000bc7: JUMP 00000bc8: JUMPDEST 00000bc9: PUSH1 0x40 00000bcb: DUP1 00000bcc: MLOAD 00000bcd: DUP3 00000bce: MLOAD 00000bcf: DUP2 00000bd0: MSTORE 00000bd1: PUSH1 0x20 00000bd3: DUP1 00000bd4: DUP5 00000bd5: ADD 00000bd6: MLOAD 00000bd7: SWAP1 00000bd8: DUP3 00000bd9: ADD 00000bda: MSTORE 00000bdb: SWAP2 00000bdc: DUP2 00000bdd: ADD 00000bde: MLOAD 00000bdf: PUSH1 0x01 00000be1: PUSH1 0x01 00000be3: PUSH1 0x40 00000be5: SHL 00000be6: SUB 00000be7: AND 00000be8: SWAP1 00000be9: DUP3 00000bea: ADD 00000beb: MSTORE 00000bec: PUSH1 0x60 00000bee: ADD 00000bef: PUSH2 0x04dc 00000bf2: JUMP 00000bf3: JUMPDEST 00000bf4: CALLVALUE 00000bf5: DUP1 00000bf6: ISZERO 00000bf7: PUSH2 0x0bfe 00000bfa: JUMPI 00000bfb: PUSH0 00000bfc: PUSH0 00000bfd: REVERT 00000bfe: JUMPDEST 00000bff: POP 00000c00: PUSH2 0x08ab 00000c03: PUSH2 0x1d9b 00000c06: JUMP 00000c07: JUMPDEST 00000c08: CALLVALUE 00000c09: DUP1 00000c0a: ISZERO 00000c0b: PUSH2 0x0c12 00000c0e: JUMPI 00000c0f: PUSH0 00000c10: PUSH0 00000c11: REVERT 00000c12: JUMPDEST 00000c13: POP 00000c14: PUSH2 0x04d2 00000c17: PUSH2 0x1e1f 00000c1a: JUMP 00000c1b: JUMPDEST 00000c1c: CALLVALUE 00000c1d: DUP1 00000c1e: ISZERO 00000c1f: PUSH2 0x0c26 00000c22: JUMPI 00000c23: PUSH0 00000c24: PUSH0 00000c25: REVERT 00000c26: JUMPDEST 00000c27: POP 00000c28: PUSH2 0x04d2 00000c2b: PUSH2 0x0c35 00000c2e: CALLDATASIZE 00000c2f: PUSH1 0x04 00000c31: PUSH2 0x4aee 00000c34: JUMP 00000c35: JUMPDEST 00000c36: PUSH2 0x1e28 00000c39: JUMP 00000c3a: JUMPDEST 00000c3b: CALLVALUE 00000c3c: DUP1 00000c3d: ISZERO 00000c3e: PUSH2 0x0c45 00000c41: JUMPI 00000c42: PUSH0 00000c43: PUSH0 00000c44: REVERT 00000c45: JUMPDEST 00000c46: POP 00000c47: PUSH2 0x0577 00000c4a: PUSH2 0x0c54 00000c4d: CALLDATASIZE 00000c4e: PUSH1 0x04 00000c50: PUSH2 0x4ac4 00000c53: JUMP 00000c54: JUMPDEST 00000c55: PUSH2 0x1e33 00000c58: JUMP 00000c59: JUMPDEST 00000c5a: CALLVALUE 00000c5b: DUP1 00000c5c: ISZERO 00000c5d: PUSH2 0x0c64 00000c60: JUMPI 00000c61: PUSH0 00000c62: PUSH0 00000c63: REVERT 00000c64: JUMPDEST 00000c65: POP 00000c66: PUSH2 0x04d2 00000c69: PUSH2 0x0c73 00000c6c: CALLDATASIZE 00000c6d: PUSH1 0x04 00000c6f: PUSH2 0x4d20 00000c72: JUMP 00000c73: JUMPDEST 00000c74: PUSH2 0x1ea0 00000c77: JUMP 00000c78: JUMPDEST 00000c79: CALLVALUE 00000c7a: DUP1 00000c7b: ISZERO 00000c7c: PUSH2 0x0c83 00000c7f: JUMPI 00000c80: PUSH0 00000c81: PUSH0 00000c82: REVERT 00000c83: JUMPDEST 00000c84: POP 00000c85: PUSH2 0x04d2 00000c88: PUSH2 0x0c92 00000c8b: CALLDATASIZE 00000c8c: PUSH1 0x04 00000c8e: PUSH2 0x4aad 00000c91: JUMP 00000c92: JUMPDEST 00000c93: PUSH2 0x1f85 00000c96: JUMP 00000c97: JUMPDEST 00000c98: CALLVALUE 00000c99: DUP1 00000c9a: ISZERO 00000c9b: PUSH2 0x0ca2 00000c9e: JUMPI 00000c9f: PUSH0 00000ca0: PUSH0 00000ca1: REVERT 00000ca2: JUMPDEST 00000ca3: POP 00000ca4: PUSH2 0x04d2 00000ca7: PUSH2 0x0cb1 00000caa: CALLDATASIZE 00000cab: PUSH1 0x04 00000cad: PUSH2 0x4d43 00000cb0: JUMP 00000cb1: JUMPDEST 00000cb2: PUSH2 0x1f91 00000cb5: JUMP 00000cb6: JUMPDEST 00000cb7: CALLVALUE 00000cb8: DUP1 00000cb9: ISZERO 00000cba: PUSH2 0x0cc1 00000cbd: JUMPI 00000cbe: PUSH0 00000cbf: PUSH0 00000cc0: REVERT 00000cc1: JUMPDEST 00000cc2: POP 00000cc3: PUSH2 0x04d2 00000cc6: PUSH2 0x0cd0 00000cc9: CALLDATASIZE 00000cca: PUSH1 0x04 00000ccc: PUSH2 0x4e18 00000ccf: JUMP 00000cd0: JUMPDEST 00000cd1: PUSH2 0x1fa1 00000cd4: JUMP 00000cd5: JUMPDEST 00000cd6: CALLVALUE 00000cd7: DUP1 00000cd8: ISZERO 00000cd9: PUSH2 0x0ce0 00000cdc: JUMPI 00000cdd: PUSH0 00000cde: PUSH0 00000cdf: REVERT 00000ce0: JUMPDEST 00000ce1: POP 00000ce2: PUSH2 0x04d2 00000ce5: PUSH2 0x0cef 00000ce8: CALLDATASIZE 00000ce9: PUSH1 0x04 00000ceb: PUSH2 0x4e31 00000cee: JUMP 00000cef: JUMPDEST 00000cf0: PUSH2 0x1fe9 00000cf3: JUMP 00000cf4: JUMPDEST 00000cf5: CALLVALUE 00000cf6: DUP1 00000cf7: ISZERO 00000cf8: PUSH2 0x0cff 00000cfb: JUMPI 00000cfc: PUSH0 00000cfd: PUSH0 00000cfe: REVERT 00000cff: JUMPDEST 00000d00: POP 00000d01: PUSH2 0x04d2 00000d04: PUSH2 0x0d0e 00000d07: CALLDATASIZE 00000d08: PUSH1 0x04 00000d0a: PUSH2 0x4e65 00000d0d: JUMP 00000d0e: JUMPDEST 00000d0f: PUSH2 0x1ff6 00000d12: JUMP 00000d13: JUMPDEST 00000d14: CALLVALUE 00000d15: DUP1 00000d16: ISZERO 00000d17: PUSH2 0x0d1e 00000d1a: JUMPI 00000d1b: PUSH0 00000d1c: PUSH0 00000d1d: REVERT 00000d1e: JUMPDEST 00000d1f: POP 00000d20: PUSH2 0x04d2 00000d23: PUSH2 0x0d2d 00000d26: CALLDATASIZE 00000d27: PUSH1 0x04 00000d29: PUSH2 0x4d43 00000d2c: JUMP 00000d2d: JUMPDEST 00000d2e: PUSH2 0x200f 00000d31: JUMP 00000d32: JUMPDEST 00000d33: CALLVALUE 00000d34: DUP1 00000d35: ISZERO 00000d36: PUSH2 0x0d3d 00000d39: JUMPI 00000d3a: PUSH0 00000d3b: PUSH0 00000d3c: REVERT 00000d3d: JUMPDEST 00000d3e: POP 00000d3f: PUSH2 0x04d2 00000d42: PUSH2 0x0d4c 00000d45: CALLDATASIZE 00000d46: PUSH1 0x04 00000d48: PUSH2 0x4aad 00000d4b: JUMP 00000d4c: JUMPDEST 00000d4d: PUSH2 0x2028 00000d50: JUMP 00000d51: JUMPDEST 00000d52: CALLVALUE 00000d53: DUP1 00000d54: ISZERO 00000d55: PUSH2 0x0d5c 00000d58: JUMPI 00000d59: PUSH0 00000d5a: PUSH0 00000d5b: REVERT 00000d5c: JUMPDEST 00000d5d: POP 00000d5e: PUSH2 0x04d2 00000d61: PUSH2 0x0d6b 00000d64: CALLDATASIZE 00000d65: PUSH1 0x04 00000d67: PUSH2 0x4aad 00000d6a: JUMP 00000d6b: JUMPDEST 00000d6c: PUSH2 0x2048 00000d6f: JUMP 00000d70: JUMPDEST 00000d71: CALLVALUE 00000d72: DUP1 00000d73: ISZERO 00000d74: PUSH2 0x0d7b 00000d77: JUMPI 00000d78: PUSH0 00000d79: PUSH0 00000d7a: REVERT 00000d7b: JUMPDEST 00000d7c: POP 00000d7d: PUSH2 0x04d2 00000d80: PUSH2 0x0d8a 00000d83: CALLDATASIZE 00000d84: PUSH1 0x04 00000d86: PUSH2 0x4e31 00000d89: JUMP 00000d8a: JUMPDEST 00000d8b: PUSH2 0x2068 00000d8e: JUMP 00000d8f: JUMPDEST 00000d90: CALLVALUE 00000d91: DUP1 00000d92: ISZERO 00000d93: PUSH2 0x0d9a 00000d96: JUMPI 00000d97: PUSH0 00000d98: PUSH0 00000d99: REVERT 00000d9a: JUMPDEST 00000d9b: POP 00000d9c: PUSH2 0x07f6 00000d9f: PUSH32 0x00000000000000000000000022a3cf6149bfa611bafc89fd721918ec3cf7b581 00000dc0: DUP2 00000dc1: JUMP 00000dc2: JUMPDEST 00000dc3: CALLVALUE 00000dc4: DUP1 00000dc5: ISZERO 00000dc6: PUSH2 0x0dcd 00000dc9: JUMPI 00000dca: PUSH0 00000dcb: PUSH0 00000dcc: REVERT 00000dcd: JUMPDEST 00000dce: POP 00000dcf: PUSH2 0x08ab 00000dd2: PUSH2 0x0ddc 00000dd5: CALLDATASIZE 00000dd6: PUSH1 0x04 00000dd8: PUSH2 0x4b4f 00000ddb: JUMP 00000ddc: JUMPDEST 00000ddd: PUSH2 0x2075 00000de0: JUMP 00000de1: JUMPDEST 00000de2: CALLVALUE 00000de3: DUP1 00000de4: ISZERO 00000de5: PUSH2 0x0dec 00000de8: JUMPI 00000de9: PUSH0 00000dea: PUSH0 00000deb: REVERT 00000dec: JUMPDEST 00000ded: POP 00000dee: PUSH2 0x08ab 00000df1: PUSH2 0x0dfb 00000df4: CALLDATASIZE 00000df5: PUSH1 0x04 00000df7: PUSH2 0x4b11 00000dfa: JUMP 00000dfb: JUMPDEST 00000dfc: PUSH2 0x2104 00000dff: JUMP 00000e00: JUMPDEST 00000e01: CALLVALUE 00000e02: DUP1 00000e03: ISZERO 00000e04: PUSH2 0x0e0b 00000e07: JUMPI 00000e08: PUSH0 00000e09: PUSH0 00000e0a: REVERT 00000e0b: JUMPDEST 00000e0c: POP 00000e0d: PUSH2 0x04d2 00000e10: PUSH2 0x0e1a 00000e13: CALLDATASIZE 00000e14: PUSH1 0x04 00000e16: PUSH2 0x4aad 00000e19: JUMP 00000e1a: JUMPDEST 00000e1b: PUSH2 0x214c 00000e1e: JUMP 00000e1f: JUMPDEST 00000e20: CALLVALUE 00000e21: DUP1 00000e22: ISZERO 00000e23: PUSH2 0x0e2a 00000e26: JUMPI 00000e27: PUSH0 00000e28: PUSH0 00000e29: REVERT 00000e2a: JUMPDEST 00000e2b: POP 00000e2c: PUSH2 0x08ab 00000e2f: PUSH2 0x2158 00000e32: JUMP 00000e33: JUMPDEST 00000e34: CALLVALUE 00000e35: DUP1 00000e36: ISZERO 00000e37: PUSH2 0x0e3e 00000e3a: JUMPI 00000e3b: PUSH0 00000e3c: PUSH0 00000e3d: REVERT 00000e3e: JUMPDEST 00000e3f: POP 00000e40: PUSH2 0x04d2 00000e43: PUSH2 0x0e4d 00000e46: CALLDATASIZE 00000e47: PUSH1 0x04 00000e49: PUSH2 0x4b4f 00000e4c: JUMP 00000e4d: JUMPDEST 00000e4e: PUSH2 0x220d 00000e51: JUMP 00000e52: JUMPDEST 00000e53: CALLVALUE 00000e54: DUP1 00000e55: ISZERO 00000e56: PUSH2 0x0e5d 00000e59: JUMPI 00000e5a: PUSH0 00000e5b: PUSH0 00000e5c: REVERT 00000e5d: JUMPDEST 00000e5e: POP 00000e5f: PUSH2 0x08ab 00000e62: PUSH2 0x0e6c 00000e65: CALLDATASIZE 00000e66: PUSH1 0x04 00000e68: PUSH2 0x4ec3 00000e6b: JUMP 00000e6c: JUMPDEST 00000e6d: PUSH2 0x2219 00000e70: JUMP 00000e71: JUMPDEST 00000e72: CALLVALUE 00000e73: DUP1 00000e74: ISZERO 00000e75: PUSH2 0x0e7c 00000e78: JUMPI 00000e79: PUSH0 00000e7a: PUSH0 00000e7b: REVERT 00000e7c: JUMPDEST 00000e7d: POP 00000e7e: PUSH2 0x04d2 00000e81: PUSH2 0x0e8b 00000e84: CALLDATASIZE 00000e85: PUSH1 0x04 00000e87: PUSH2 0x4d43 00000e8a: JUMP 00000e8b: JUMPDEST 00000e8c: PUSH2 0x223c 00000e8f: JUMP 00000e90: JUMPDEST 00000e91: CALLVALUE 00000e92: DUP1 00000e93: ISZERO 00000e94: PUSH2 0x0e9b 00000e97: JUMPI 00000e98: PUSH0 00000e99: PUSH0 00000e9a: REVERT 00000e9b: JUMPDEST 00000e9c: POP 00000e9d: PUSH2 0x04d2 00000ea0: PUSH2 0x0eaa 00000ea3: CALLDATASIZE 00000ea4: PUSH1 0x04 00000ea6: PUSH2 0x4b4f 00000ea9: JUMP 00000eaa: JUMPDEST 00000eab: PUSH2 0x22a8 00000eae: JUMP 00000eaf: JUMPDEST 00000eb0: CALLVALUE 00000eb1: DUP1 00000eb2: ISZERO 00000eb3: PUSH2 0x0eba 00000eb6: JUMPI 00000eb7: PUSH0 00000eb8: PUSH0 00000eb9: REVERT 00000eba: JUMPDEST 00000ebb: POP 00000ebc: PUSH2 0x08ab 00000ebf: PUSH2 0x0ec9 00000ec2: CALLDATASIZE 00000ec3: PUSH1 0x04 00000ec5: PUSH2 0x4b11 00000ec8: JUMP 00000ec9: JUMPDEST 00000eca: PUSH2 0x22b4 00000ecd: JUMP 00000ece: JUMPDEST 00000ecf: CALLVALUE 00000ed0: DUP1 00000ed1: ISZERO 00000ed2: PUSH2 0x0ed9 00000ed5: JUMPI 00000ed6: PUSH0 00000ed7: PUSH0 00000ed8: REVERT 00000ed9: JUMPDEST 00000eda: POP 00000edb: PUSH2 0x04d2 00000ede: PUSH2 0x0ee8 00000ee1: CALLDATASIZE 00000ee2: PUSH1 0x04 00000ee4: PUSH2 0x4ac4 00000ee7: JUMP 00000ee8: JUMPDEST 00000ee9: PUSH2 0x2343 00000eec: JUMP 00000eed: JUMPDEST 00000eee: CALLVALUE 00000eef: DUP1 00000ef0: ISZERO 00000ef1: PUSH2 0x0ef8 00000ef4: JUMPI 00000ef5: PUSH0 00000ef6: PUSH0 00000ef7: REVERT 00000ef8: JUMPDEST 00000ef9: POP 00000efa: PUSH2 0x04d2 00000efd: PUSH2 0x0f07 00000f00: CALLDATASIZE 00000f01: PUSH1 0x04 00000f03: PUSH2 0x4e65 00000f06: JUMP 00000f07: JUMPDEST 00000f08: PUSH2 0x23a2 00000f0b: JUMP 00000f0c: JUMPDEST 00000f0d: CALLVALUE 00000f0e: DUP1 00000f0f: ISZERO 00000f10: PUSH2 0x0f17 00000f13: JUMPI 00000f14: PUSH0 00000f15: PUSH0 00000f16: REVERT 00000f17: JUMPDEST 00000f18: POP 00000f19: PUSH2 0x0822 00000f1c: PUSH2 0x0f26 00000f1f: CALLDATASIZE 00000f20: PUSH1 0x04 00000f22: PUSH2 0x4b4f 00000f25: JUMP 00000f26: JUMPDEST 00000f27: PUSH2 0x23bb 00000f2a: JUMP 00000f2b: JUMPDEST 00000f2c: CALLVALUE 00000f2d: DUP1 00000f2e: ISZERO 00000f2f: PUSH2 0x0f36 00000f32: JUMPI 00000f33: PUSH0 00000f34: PUSH0 00000f35: REVERT 00000f36: JUMPDEST 00000f37: POP 00000f38: PUSH2 0x04d2 00000f3b: PUSH2 0x0f45 00000f3e: CALLDATASIZE 00000f3f: PUSH1 0x04 00000f41: PUSH2 0x4f2f 00000f44: JUMP 00000f45: JUMPDEST 00000f46: PUSH2 0x23f1 00000f49: JUMP 00000f4a: JUMPDEST 00000f4b: CALLVALUE 00000f4c: DUP1 00000f4d: ISZERO 00000f4e: PUSH2 0x0f55 00000f51: JUMPI 00000f52: PUSH0 00000f53: PUSH0 00000f54: REVERT 00000f55: JUMPDEST 00000f56: POP 00000f57: PUSH2 0x04d2 00000f5a: PUSH2 0x0f64 00000f5d: CALLDATASIZE 00000f5e: PUSH1 0x04 00000f60: PUSH2 0x4d20 00000f63: JUMP 00000f64: JUMPDEST 00000f65: PUSH2 0x243a 00000f68: JUMP 00000f69: JUMPDEST 00000f6a: CALLVALUE 00000f6b: DUP1 00000f6c: ISZERO 00000f6d: PUSH2 0x0f74 00000f70: JUMPI 00000f71: PUSH0 00000f72: PUSH0 00000f73: REVERT 00000f74: JUMPDEST 00000f75: POP 00000f76: PUSH2 0x04d2 00000f79: PUSH2 0x0f83 00000f7c: CALLDATASIZE 00000f7d: PUSH1 0x04 00000f7f: PUSH2 0x4aad 00000f82: JUMP 00000f83: JUMPDEST 00000f84: PUSH2 0x2514 00000f87: JUMP 00000f88: JUMPDEST 00000f89: CALLVALUE 00000f8a: DUP1 00000f8b: ISZERO 00000f8c: PUSH2 0x0f93 00000f8f: JUMPI 00000f90: PUSH0 00000f91: PUSH0 00000f92: REVERT 00000f93: JUMPDEST 00000f94: POP 00000f95: ADDRESS 00000f96: PUSH2 0x07f6 00000f99: JUMP 00000f9a: JUMPDEST 00000f9b: CALLVALUE 00000f9c: DUP1 00000f9d: ISZERO 00000f9e: PUSH2 0x0fa5 00000fa1: JUMPI 00000fa2: PUSH0 00000fa3: PUSH0 00000fa4: REVERT 00000fa5: JUMPDEST 00000fa6: POP 00000fa7: PUSH2 0x04d2 00000faa: PUSH2 0x2535 00000fad: JUMP 00000fae: JUMPDEST 00000faf: CALLVALUE 00000fb0: DUP1 00000fb1: ISZERO 00000fb2: PUSH2 0x0fb9 00000fb5: JUMPI 00000fb6: PUSH0 00000fb7: PUSH0 00000fb8: REVERT 00000fb9: JUMPDEST 00000fba: POP 00000fbb: PUSH2 0x04d2 00000fbe: PUSH2 0x0fc8 00000fc1: CALLDATASIZE 00000fc2: PUSH1 0x04 00000fc4: PUSH2 0x4aad 00000fc7: JUMP 00000fc8: JUMPDEST 00000fc9: PUSH2 0x253e 00000fcc: JUMP 00000fcd: JUMPDEST 00000fce: CALLVALUE 00000fcf: DUP1 00000fd0: ISZERO 00000fd1: PUSH2 0x0fd8 00000fd4: JUMPI 00000fd5: PUSH0 00000fd6: PUSH0 00000fd7: REVERT 00000fd8: JUMPDEST 00000fd9: POP 00000fda: PUSH2 0x08ab 00000fdd: PUSH2 0x0fe7 00000fe0: CALLDATASIZE 00000fe1: PUSH1 0x04 00000fe3: PUSH2 0x4b11 00000fe6: JUMP 00000fe7: JUMPDEST 00000fe8: PUSH2 0x254a 00000feb: JUMP 00000fec: JUMPDEST 00000fed: CALLVALUE 00000fee: DUP1 00000fef: ISZERO 00000ff0: PUSH2 0x0ff7 00000ff3: JUMPI 00000ff4: PUSH0 00000ff5: PUSH0 00000ff6: REVERT 00000ff7: JUMPDEST 00000ff8: POP 00000ff9: PUSH2 0x04d2 00000ffc: PUSH2 0x1006 00000fff: CALLDATASIZE 00001000: PUSH1 0x04 00001002: PUSH2 0x4e31 00001005: JUMP 00001006: JUMPDEST 00001007: PUSH2 0x25b1 0000100a: JUMP 0000100b: JUMPDEST 0000100c: CALLVALUE 0000100d: DUP1 0000100e: ISZERO 0000100f: PUSH2 0x1016 00001012: JUMPI 00001013: PUSH0 00001014: PUSH0 00001015: REVERT 00001016: JUMPDEST 00001017: POP 00001018: PUSH2 0x0822 0000101b: PUSH2 0x27a3 0000101e: JUMP 0000101f: JUMPDEST 00001020: PUSH0 00001021: PUSH2 0x1028 00001024: PUSH2 0x27ad 00001027: JUMP 00001028: JUMPDEST 00001029: SWAP1 0000102a: POP 0000102b: SWAP1 0000102c: JUMP 0000102d: JUMPDEST 0000102e: PUSH1 0x60 00001030: PUSH20 0x73de8d3b49000cc9fd2a05f27b37af0c1f6e3133 00001045: PUSH4 0x06fdde03 0000104a: PUSH1 0x40 0000104c: MLOAD 0000104d: DUP2 0000104e: PUSH4 0xffffffff 00001053: AND 00001054: PUSH1 0xe0 00001056: SHL 00001057: DUP2 00001058: MSTORE 00001059: PUSH1 0x04 0000105b: ADD 0000105c: PUSH0 0000105d: PUSH1 0x40 0000105f: MLOAD 00001060: DUP1 00001061: DUP4 00001062: SUB 00001063: DUP2 00001064: DUP7 00001065: GAS 00001066: DELEGATECALL 00001067: ISZERO 00001068: DUP1 00001069: ISZERO 0000106a: PUSH2 0x1075 0000106d: JUMPI 0000106e: RETURNDATASIZE 0000106f: PUSH0 00001070: PUSH0 00001071: RETURNDATACOPY 00001072: RETURNDATASIZE 00001073: PUSH0 00001074: REVERT 00001075: JUMPDEST 00001076: POP 00001077: POP 00001078: POP 00001079: POP 0000107a: PUSH1 0x40 0000107c: MLOAD 0000107d: RETURNDATASIZE 0000107e: PUSH0 0000107f: DUP3 00001080: RETURNDATACOPY 00001081: PUSH1 0x1f 00001083: RETURNDATASIZE 00001084: SWAP1 00001085: DUP2 00001086: ADD 00001087: PUSH1 0x1f 00001089: NOT 0000108a: AND 0000108b: DUP3 0000108c: ADD 0000108d: PUSH1 0x40 0000108f: MSTORE 00001090: PUSH2 0x1028 00001093: SWAP2 00001094: SWAP1 00001095: DUP2 00001096: ADD 00001097: SWAP1 00001098: PUSH2 0x4fc8 0000109b: JUMP 0000109c: JUMPDEST 0000109d: PUSH0 0000109e: PUSH2 0x10a7 000010a1: DUP4 000010a2: DUP4 000010a3: PUSH2 0x27c6 000010a6: JUMP 000010a7: JUMPDEST 000010a8: SWAP5 000010a9: SWAP4 000010aa: POP 000010ab: POP 000010ac: POP 000010ad: POP 000010ae: JUMP 000010af: JUMPDEST 000010b0: PUSH0 000010b1: PUSH2 0x10bb 000010b4: DUP3 000010b5: PUSH1 0x01 000010b7: PUSH2 0x284b 000010ba: JUMP 000010bb: JUMPDEST 000010bc: SWAP3 000010bd: SWAP2 000010be: POP 000010bf: POP 000010c0: JUMP 000010c1: JUMPDEST 000010c2: PUSH0 000010c3: PUSH2 0x1028 000010c6: PUSH2 0x10cd 000010c9: PUSH2 0x2892 000010cc: JUMP 000010cd: JUMPDEST 000010ce: PUSH2 0x28c0 000010d1: JUMP 000010d2: JUMPDEST 000010d3: PUSH0 000010d4: PUSH2 0x10e3 000010d7: PUSH2 0x10de 000010da: PUSH2 0x2892 000010dd: JUMP 000010de: JUMPDEST 000010df: PUSH2 0x294e 000010e2: JUMP 000010e3: JUMPDEST 000010e4: PUSH2 0x10ed 000010e7: DUP4 000010e8: DUP4 000010e9: PUSH2 0x29cf 000010ec: JUMP 000010ed: JUMPDEST 000010ee: SWAP4 000010ef: SWAP3 000010f0: POP 000010f1: POP 000010f2: POP 000010f3: JUMP 000010f4: JUMPDEST 000010f5: PUSH0 000010f6: PUSH2 0x10bb 000010f9: DUP3 000010fa: PUSH1 0x01 000010fc: PUSH2 0x29e6 000010ff: JUMP 00001100: JUMPDEST 00001101: PUSH0 00001102: PUSH2 0x10ed 00001105: DUP4 00001106: DUP4 00001107: PUSH2 0x2a32 0000110a: JUMP 0000110b: JUMPDEST 0000110c: PUSH0 0000110d: PUSH2 0x1116 00001110: DUP4 00001111: DUP4 00001112: PUSH2 0x27c6 00001115: JUMP 00001116: JUMPDEST 00001117: POP 00001118: SWAP4 00001119: SWAP3 0000111a: POP 0000111b: POP 0000111c: POP 0000111d: JUMP 0000111e: JUMPDEST 0000111f: PUSH0 00001120: PUSH0 00001121: PUSH2 0x1128 00001124: PUSH2 0x2a78 00001127: JUMP 00001128: JUMPDEST 00001129: SWAP1 0000112a: POP 0000112b: PUSH2 0x1135 0000112e: DUP6 0000112f: DUP6 00001130: DUP6 00001131: PUSH2 0x2ad4 00001134: JUMP 00001135: JUMPDEST 00001136: SWAP2 00001137: POP 00001138: DUP1 00001139: PUSH1 0x01 0000113b: PUSH1 0x01 0000113d: PUSH1 0xa0 0000113f: SHL 00001140: SUB 00001141: AND 00001142: PUSH4 0x62402b04 00001147: PUSH1 0x40 00001149: MLOAD 0000114a: DUP2 0000114b: PUSH4 0xffffffff 00001150: AND 00001151: PUSH1 0xe0 00001153: SHL 00001154: DUP2 00001155: MSTORE 00001156: PUSH1 0x04 00001158: ADD 00001159: PUSH0 0000115a: PUSH1 0x40 0000115c: MLOAD 0000115d: DUP1 0000115e: DUP4 0000115f: SUB 00001160: DUP2 00001161: PUSH0 00001162: DUP8 00001163: DUP1 00001164: EXTCODESIZE 00001165: ISZERO 00001166: DUP1 00001167: ISZERO 00001168: PUSH2 0x116f 0000116b: JUMPI 0000116c: PUSH0 0000116d: PUSH0 0000116e: REVERT 0000116f: JUMPDEST 00001170: POP 00001171: GAS 00001172: CALL 00001173: ISZERO 00001174: DUP1 00001175: ISZERO 00001176: PUSH2 0x1181 00001179: JUMPI 0000117a: RETURNDATASIZE 0000117b: PUSH0 0000117c: PUSH0 0000117d: RETURNDATACOPY 0000117e: RETURNDATASIZE 0000117f: PUSH0 00001180: REVERT 00001181: JUMPDEST 00001182: POP 00001183: POP 00001184: POP 00001185: POP 00001186: POP 00001187: SWAP4 00001188: SWAP3 00001189: POP 0000118a: POP 0000118b: POP 0000118c: JUMP 0000118d: JUMPDEST 0000118e: PUSH0 0000118f: PUSH2 0x10ed 00001192: DUP4 00001193: DUP4 00001194: PUSH2 0x29e6 00001197: JUMP 00001198: JUMPDEST 00001199: PUSH0 0000119a: PUSH0 0000119b: PUSH2 0x11a2 0000119e: PUSH2 0x2892 000011a1: JUMP 000011a2: JUMPDEST 000011a3: PUSH1 0x40 000011a5: MLOAD 000011a6: PUSH4 0x1e1f5609 000011ab: PUSH1 0xe1 000011ad: SHL 000011ae: DUP2 000011af: MSTORE 000011b0: ADDRESS 000011b1: PUSH1 0x04 000011b3: DUP3 000011b4: ADD 000011b5: MSTORE 000011b6: PUSH1 0x01 000011b8: PUSH1 0x01 000011ba: PUSH1 0xa0 000011bc: SHL 000011bd: SUB 000011be: SWAP2 000011bf: SWAP1 000011c0: SWAP2 000011c1: AND 000011c2: SWAP1 000011c3: PUSH4 0x3c3eac12 000011c8: SWAP1 000011c9: PUSH1 0x24 000011cb: ADD 000011cc: PUSH1 0x40 000011ce: DUP1 000011cf: MLOAD 000011d0: DUP1 000011d1: DUP4 000011d2: SUB 000011d3: DUP2 000011d4: DUP7 000011d5: GAS 000011d6: STATICCALL 000011d7: ISZERO 000011d8: DUP1 000011d9: ISZERO 000011da: PUSH2 0x11e5 000011dd: JUMPI 000011de: RETURNDATASIZE 000011df: PUSH0 000011e0: PUSH0 000011e1: RETURNDATACOPY 000011e2: RETURNDATASIZE 000011e3: PUSH0 000011e4: REVERT 000011e5: JUMPDEST 000011e6: POP 000011e7: POP 000011e8: POP 000011e9: POP 000011ea: PUSH1 0x40 000011ec: MLOAD 000011ed: RETURNDATASIZE 000011ee: PUSH1 0x1f 000011f0: NOT 000011f1: PUSH1 0x1f 000011f3: DUP3 000011f4: ADD 000011f5: AND 000011f6: DUP3 000011f7: ADD 000011f8: DUP1 000011f9: PUSH1 0x40 000011fb: MSTORE 000011fc: POP 000011fd: DUP2 000011fe: ADD 000011ff: SWAP1 00001200: PUSH2 0x1209 00001203: SWAP2 00001204: SWAP1 00001205: PUSH2 0x5065 00001208: JUMP 00001209: JUMPDEST 0000120a: POP 0000120b: PUSH1 0x40 0000120d: MLOAD 0000120e: PUSH4 0x70a08231 00001213: PUSH1 0xe0 00001215: SHL 00001216: DUP2 00001217: MSTORE 00001218: PUSH1 0x01 0000121a: PUSH1 0x01 0000121c: PUSH1 0xa0 0000121e: SHL 0000121f: SUB 00001220: DUP6 00001221: DUP2 00001222: AND 00001223: PUSH1 0x04 00001225: DUP4 00001226: ADD 00001227: MSTORE 00001228: SWAP2 00001229: SWAP3 0000122a: POP 0000122b: SWAP1 0000122c: DUP3 0000122d: AND 0000122e: SWAP1 0000122f: PUSH4 0x70a08231 00001234: SWAP1 00001235: PUSH1 0x24 00001237: ADD 00001238: PUSH1 0x20 0000123a: PUSH1 0x40 0000123c: MLOAD 0000123d: DUP1 0000123e: DUP4 0000123f: SUB 00001240: DUP2 00001241: DUP7 00001242: GAS 00001243: STATICCALL 00001244: ISZERO 00001245: DUP1 00001246: ISZERO 00001247: PUSH2 0x1252 0000124a: JUMPI 0000124b: RETURNDATASIZE 0000124c: PUSH0 0000124d: PUSH0 0000124e: RETURNDATACOPY 0000124f: RETURNDATASIZE 00001250: PUSH0 00001251: REVERT 00001252: JUMPDEST 00001253: POP 00001254: POP 00001255: POP 00001256: POP 00001257: PUSH1 0x40 00001259: MLOAD 0000125a: RETURNDATASIZE 0000125b: PUSH1 0x1f 0000125d: NOT 0000125e: PUSH1 0x1f 00001260: DUP3 00001261: ADD 00001262: AND 00001263: DUP3 00001264: ADD 00001265: DUP1 00001266: PUSH1 0x40 00001268: MSTORE 00001269: POP 0000126a: DUP2 0000126b: ADD 0000126c: SWAP1 0000126d: PUSH2 0x10ed 00001270: SWAP2 00001271: SWAP1 00001272: PUSH2 0x5092 00001275: JUMP 00001276: JUMPDEST 00001277: PUSH0 00001278: PUSH20 0x73de8d3b49000cc9fd2a05f27b37af0c1f6e3133 0000128d: PUSH4 0x313ce567 00001292: PUSH1 0x40 00001294: MLOAD 00001295: DUP2 00001296: PUSH4 0xffffffff 0000129b: AND 0000129c: PUSH1 0xe0 0000129e: SHL 0000129f: DUP2 000012a0: MSTORE 000012a1: PUSH1 0x04 000012a3: ADD 000012a4: PUSH1 0x20 000012a6: PUSH1 0x40 000012a8: MLOAD 000012a9: DUP1 000012aa: DUP4 000012ab: SUB 000012ac: DUP2 000012ad: DUP7 000012ae: GAS 000012af: DELEGATECALL 000012b0: ISZERO 000012b1: DUP1 000012b2: ISZERO 000012b3: PUSH2 0x12be 000012b6: JUMPI 000012b7: RETURNDATASIZE 000012b8: PUSH0 000012b9: PUSH0 000012ba: RETURNDATACOPY 000012bb: RETURNDATASIZE 000012bc: PUSH0 000012bd: REVERT 000012be: JUMPDEST 000012bf: POP 000012c0: POP 000012c1: POP 000012c2: POP 000012c3: PUSH1 0x40 000012c5: MLOAD 000012c6: RETURNDATASIZE 000012c7: PUSH1 0x1f 000012c9: NOT 000012ca: PUSH1 0x1f 000012cc: DUP3 000012cd: ADD 000012ce: AND 000012cf: DUP3 000012d0: ADD 000012d1: DUP1 000012d2: PUSH1 0x40 000012d4: MSTORE 000012d5: POP 000012d6: DUP2 000012d7: ADD 000012d8: SWAP1 000012d9: PUSH2 0x1028 000012dc: SWAP2 000012dd: SWAP1 000012de: PUSH2 0x50a9 000012e1: JUMP 000012e2: JUMPDEST 000012e3: PUSH0 000012e4: PUSH2 0x1028 000012e7: PUSH2 0x2af7 000012ea: JUMP 000012eb: JUMPDEST 000012ec: PUSH1 0x40 000012ee: DUP1 000012ef: MLOAD 000012f0: DUP1 000012f1: DUP3 000012f2: ADD 000012f3: SWAP1 000012f4: SWAP2 000012f5: MSTORE 000012f6: PUSH0 000012f7: DUP1 000012f8: DUP3 000012f9: MSTORE 000012fa: PUSH1 0x20 000012fc: DUP3 000012fd: ADD 000012fe: MSTORE 000012ff: PUSH2 0x1028 00001302: PUSH1 0x40 00001304: DUP1 00001305: MLOAD 00001306: DUP1 00001307: DUP3 00001308: ADD 00001309: DUP3 0000130a: MSTORE 0000130b: PUSH0 0000130c: DUP1 0000130d: DUP3 0000130e: MSTORE 0000130f: PUSH1 0x20 00001311: SWAP2 00001312: DUP3 00001313: ADD 00001314: MSTORE 00001315: DUP2 00001316: MLOAD 00001317: DUP1 00001318: DUP4 00001319: ADD 0000131a: SWAP1 0000131b: SWAP3 0000131c: MSTORE 0000131d: PUSH32 0xd7513ffe3a01a9f6606089d1b67011bca35bec018ac0faa914e1c529408f8301 0000133e: SLOAD 0000133f: PUSH1 0x01 00001341: PUSH1 0x01 00001343: PUSH1 0x40 00001345: SHL 00001346: SUB 00001347: DUP1 00001348: DUP3 00001349: AND 0000134a: DUP5 0000134b: MSTORE 0000134c: PUSH1 0x01 0000134e: PUSH1 0x40 00001350: SHL 00001351: SWAP1 00001352: SWAP2 00001353: DIV 00001354: AND 00001355: SWAP1 00001356: DUP3 00001357: ADD 00001358: MSTORE 00001359: SWAP1 0000135a: JUMP 0000135b: JUMPDEST 0000135c: PUSH1 0x40 0000135e: MLOAD 0000135f: PUSH4 0x38b51ce1 00001364: PUSH1 0xe0 00001366: SHL 00001367: DUP2 00001368: MSTORE 00001369: PUSH1 0x01 0000136b: PUSH1 0x01 0000136d: PUSH1 0xa0 0000136f: SHL 00001370: SUB 00001371: DUP3 00001372: AND 00001373: PUSH1 0x04 00001375: DUP3 00001376: ADD 00001377: MSTORE 00001378: PUSH0 00001379: SWAP1 0000137a: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9 0000138f: SWAP1 00001390: PUSH4 0x38b51ce1 00001395: SWAP1 00001396: PUSH1 0x24 00001398: ADD 00001399: PUSH1 0x20 0000139b: PUSH1 0x40 0000139d: MLOAD 0000139e: DUP1 0000139f: DUP4 000013a0: SUB 000013a1: DUP2 000013a2: DUP7 000013a3: GAS 000013a4: DELEGATECALL 000013a5: ISZERO 000013a6: DUP1 000013a7: ISZERO 000013a8: PUSH2 0x13b3 000013ab: JUMPI 000013ac: RETURNDATASIZE 000013ad: PUSH0 000013ae: PUSH0 000013af: RETURNDATACOPY 000013b0: RETURNDATASIZE 000013b1: PUSH0 000013b2: REVERT 000013b3: JUMPDEST 000013b4: POP 000013b5: POP 000013b6: POP 000013b7: POP 000013b8: PUSH1 0x40 000013ba: MLOAD 000013bb: RETURNDATASIZE 000013bc: PUSH1 0x1f 000013be: NOT 000013bf: PUSH1 0x1f 000013c1: DUP3 000013c2: ADD 000013c3: AND 000013c4: DUP3 000013c5: ADD 000013c6: DUP1 000013c7: PUSH1 0x40 000013c9: MSTORE 000013ca: POP 000013cb: DUP2 000013cc: ADD 000013cd: SWAP1 000013ce: PUSH2 0x10bb 000013d1: SWAP2 000013d2: SWAP1 000013d3: PUSH2 0x50d3 000013d6: JUMP 000013d7: JUMPDEST 000013d8: PUSH0 000013d9: PUSH2 0x13e0 000013dc: PUSH2 0x2892 000013df: JUMP 000013e0: JUMPDEST 000013e1: PUSH1 0x40 000013e3: MLOAD 000013e4: PUSH4 0x07439b49 000013e9: PUSH1 0xe0 000013eb: SHL 000013ec: DUP2 000013ed: MSTORE 000013ee: ADDRESS 000013ef: PUSH1 0x04 000013f1: DUP3 000013f2: ADD 000013f3: MSTORE 000013f4: PUSH1 0x01 000013f6: PUSH1 0x01 000013f8: PUSH1 0xa0 000013fa: SHL 000013fb: SUB 000013fc: SWAP2 000013fd: SWAP1 000013fe: SWAP2 000013ff: AND 00001400: SWAP1 00001401: PUSH4 0x07439b49 00001406: SWAP1 00001407: PUSH1 0x24 00001409: ADD 0000140a: PUSH1 0x20 0000140c: PUSH1 0x40 0000140e: MLOAD 0000140f: DUP1 00001410: DUP4 00001411: SUB 00001412: DUP2 00001413: DUP7 00001414: GAS 00001415: STATICCALL 00001416: ISZERO 00001417: DUP1 00001418: ISZERO 00001419: PUSH2 0x1424 0000141c: JUMPI 0000141d: RETURNDATASIZE 0000141e: PUSH0 0000141f: PUSH0 00001420: RETURNDATACOPY 00001421: RETURNDATASIZE 00001422: PUSH0 00001423: REVERT 00001424: JUMPDEST 00001425: POP 00001426: POP 00001427: POP 00001428: POP 00001429: PUSH1 0x40 0000142b: MLOAD 0000142c: RETURNDATASIZE 0000142d: PUSH1 0x1f 0000142f: NOT 00001430: PUSH1 0x1f 00001432: DUP3 00001433: ADD 00001434: AND 00001435: DUP3 00001436: ADD 00001437: DUP1 00001438: PUSH1 0x40 0000143a: MSTORE 0000143b: POP 0000143c: DUP2 0000143d: ADD 0000143e: SWAP1 0000143f: PUSH2 0x1028 00001442: SWAP2 00001443: SWAP1 00001444: PUSH2 0x50ec 00001447: JUMP 00001448: JUMPDEST 00001449: PUSH0 0000144a: PUSH0 0000144b: PUSH2 0x1452 0000144e: PUSH2 0x2b00 00001451: JUMP 00001452: JUMPDEST 00001453: SWAP1 00001454: SWAP4 00001455: SWAP1 00001456: SWAP3 00001457: POP 00001458: SWAP1 00001459: POP 0000145a: JUMP 0000145b: JUMPDEST 0000145c: PUSH1 0x40 0000145e: MLOAD 0000145f: PUSH4 0x4383e19f 00001464: PUSH1 0xe1 00001466: SHL 00001467: DUP2 00001468: MSTORE 00001469: PUSH1 0x01 0000146b: PUSH1 0x01 0000146d: PUSH1 0xa0 0000146f: SHL 00001470: SUB 00001471: DUP3 00001472: AND 00001473: PUSH1 0x04 00001475: DUP3 00001476: ADD 00001477: MSTORE 00001478: PUSH0 00001479: PUSH1 0x24 0000147b: DUP3 0000147c: ADD 0000147d: DUP2 0000147e: SWAP1 0000147f: MSTORE 00001480: SWAP1 00001481: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9 00001496: SWAP1 00001497: PUSH4 0x8707c33e 0000149c: SWAP1 0000149d: PUSH1 0x44 0000149f: ADD 000014a0: PUSH1 0x40 000014a2: DUP1 000014a3: MLOAD 000014a4: DUP1 000014a5: DUP4 000014a6: SUB 000014a7: DUP2 000014a8: DUP7 000014a9: GAS 000014aa: DELEGATECALL 000014ab: ISZERO 000014ac: DUP1 000014ad: ISZERO 000014ae: PUSH2 0x14b9 000014b1: JUMPI 000014b2: RETURNDATASIZE 000014b3: PUSH0 000014b4: PUSH0 000014b5: RETURNDATACOPY 000014b6: RETURNDATASIZE 000014b7: PUSH0 000014b8: REVERT 000014b9: JUMPDEST 000014ba: POP 000014bb: POP 000014bc: POP 000014bd: POP 000014be: PUSH1 0x40 000014c0: MLOAD 000014c1: RETURNDATASIZE 000014c2: PUSH1 0x1f 000014c4: NOT 000014c5: PUSH1 0x1f 000014c7: DUP3 000014c8: ADD 000014c9: AND 000014ca: DUP3 000014cb: ADD 000014cc: DUP1 000014cd: PUSH1 0x40 000014cf: MSTORE 000014d0: POP 000014d1: DUP2 000014d2: ADD 000014d3: SWAP1 000014d4: PUSH2 0x10ed 000014d7: SWAP2 000014d8: SWAP1 000014d9: PUSH2 0x5107 000014dc: JUMP 000014dd: JUMPDEST 000014de: PUSH0 000014df: PUSH1 0x60 000014e1: PUSH2 0x14ed 000014e4: DUP8 000014e5: DUP8 000014e6: DUP8 000014e7: DUP8 000014e8: DUP8 000014e9: PUSH2 0x2b63 000014ec: JUMP 000014ed: JUMPDEST 000014ee: SWAP1 000014ef: SWAP9 000014f0: SWAP1 000014f1: SWAP8 000014f2: POP 000014f3: SWAP6 000014f4: POP 000014f5: POP 000014f6: POP 000014f7: POP 000014f8: POP 000014f9: POP 000014fa: JUMP 000014fb: JUMPDEST 000014fc: PUSH2 0x1503 000014ff: PUSH2 0x2c86 00001502: JUMP 00001503: JUMPDEST 00001504: POP 00001505: PUSH1 0x40 00001507: MLOAD 00001508: PUSH4 0x11234561 0000150d: PUSH1 0xe3 0000150f: SHL 00001510: DUP2 00001511: MSTORE 00001512: ADDRESS 00001513: PUSH1 0x04 00001515: DUP3 00001516: ADD 00001517: MSTORE 00001518: PUSH0 00001519: SWAP1 0000151a: DUP2 0000151b: SWAP1 0000151c: DUP2 0000151d: SWAP1 0000151e: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00001533: SWAP1 00001534: PUSH4 0x891a2b08 00001539: SWAP1 0000153a: PUSH1 0x24 0000153c: ADD 0000153d: PUSH1 0x60 0000153f: PUSH1 0x40 00001541: MLOAD 00001542: DUP1 00001543: DUP4 00001544: SUB 00001545: DUP2 00001546: DUP7 00001547: GAS 00001548: DELEGATECALL 00001549: ISZERO 0000154a: DUP1 0000154b: ISZERO 0000154c: PUSH2 0x1557 0000154f: JUMPI 00001550: RETURNDATASIZE 00001551: PUSH0 00001552: PUSH0 00001553: RETURNDATACOPY 00001554: RETURNDATASIZE 00001555: PUSH0 00001556: REVERT 00001557: JUMPDEST 00001558: POP 00001559: POP 0000155a: POP 0000155b: POP 0000155c: PUSH1 0x40 0000155e: MLOAD 0000155f: RETURNDATASIZE 00001560: PUSH1 0x1f 00001562: NOT 00001563: PUSH1 0x1f 00001565: DUP3 00001566: ADD 00001567: AND 00001568: DUP3 00001569: ADD 0000156a: DUP1 0000156b: PUSH1 0x40 0000156d: MSTORE 0000156e: POP 0000156f: DUP2 00001570: ADD 00001571: SWAP1 00001572: PUSH2 0x157b 00001575: SWAP2 00001576: SWAP1 00001577: PUSH2 0x5129 0000157a: JUMP 0000157b: JUMPDEST 0000157c: PUSH1 0x40 0000157e: DUP1 0000157f: MLOAD 00001580: DUP5 00001581: DUP2 00001582: MSTORE 00001583: PUSH1 0x20 00001585: DUP2 00001586: ADD 00001587: DUP5 00001588: SWAP1 00001589: MSTORE 0000158a: DUP3 0000158b: ISZERO 0000158c: ISZERO 0000158d: DUP2 0000158e: DUP4 0000158f: ADD 00001590: MSTORE 00001591: SWAP1 00001592: MLOAD 00001593: SWAP4 00001594: SWAP7 00001595: POP 00001596: SWAP2 00001597: SWAP5 00001598: POP 00001599: SWAP3 0000159a: POP 0000159b: PUSH32 0x58ce9a502017c1e4e0084fcfd7067e2642dfe9e11757d8017b9cf16d729967c7 000015bc: SWAP2 000015bd: SWAP1 000015be: DUP2 000015bf: SWAP1 000015c0: SUB 000015c1: PUSH1 0x60 000015c3: ADD 000015c4: SWAP1 000015c5: LOG1 000015c6: POP 000015c7: POP 000015c8: POP 000015c9: JUMP 000015ca: JUMPDEST 000015cb: PUSH2 0x15d2 000015ce: PUSH2 0x2caf 000015d1: JUMP 000015d2: JUMPDEST 000015d3: PUSH1 0x01 000015d5: PUSH1 0x01 000015d7: PUSH1 0xa0 000015d9: SHL 000015da: SUB 000015db: AND 000015dc: CALLER 000015dd: PUSH1 0x01 000015df: PUSH1 0x01 000015e1: PUSH1 0xa0 000015e3: SHL 000015e4: SUB 000015e5: AND 000015e6: EQ 000015e7: PUSH2 0x1603 000015ea: JUMPI 000015eb: PUSH1 0x40 000015ed: MLOAD 000015ee: PUSH4 0x10528c6d 000015f3: PUSH1 0xe1 000015f5: SHL 000015f6: DUP2 000015f7: MSTORE 000015f8: PUSH1 0x04 000015fa: ADD 000015fb: PUSH1 0x40 000015fd: MLOAD 000015fe: DUP1 000015ff: SWAP2 00001600: SUB 00001601: SWAP1 00001602: REVERT 00001603: JUMPDEST 00001604: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1202 00001625: DUP1 00001626: SLOAD 00001627: PUSH6 0xffffffffffff 0000162e: PUSH1 0xa0 00001630: SHL 00001631: NOT 00001632: AND 00001633: PUSH1 0x01 00001635: PUSH1 0xa0 00001637: SHL 00001638: PUSH3 0xffffff 0000163c: SWAP5 0000163d: DUP6 0000163e: AND 0000163f: MUL 00001640: PUSH3 0xffffff 00001644: PUSH1 0xb8 00001646: SHL 00001647: NOT 00001648: AND 00001649: OR 0000164a: PUSH1 0x01 0000164c: PUSH1 0xb8 0000164e: SHL 0000164f: SWAP3 00001650: SWAP1 00001651: SWAP4 00001652: AND 00001653: SWAP2 00001654: SWAP1 00001655: SWAP2 00001656: MUL 00001657: SWAP2 00001658: SWAP1 00001659: SWAP2 0000165a: OR 0000165b: SWAP1 0000165c: SSTORE 0000165d: JUMP 0000165e: JUMPDEST 0000165f: PUSH0 00001660: PUSH2 0x10bb 00001663: DUP3 00001664: PUSH1 0x01 00001666: PUSH2 0x2cca 00001669: JUMP 0000166a: JUMPDEST 0000166b: PUSH1 0x40 0000166d: MLOAD 0000166e: PUSH4 0x4383e19f 00001673: PUSH1 0xe1 00001675: SHL 00001676: DUP2 00001677: MSTORE 00001678: PUSH1 0x01 0000167a: PUSH1 0x01 0000167c: PUSH1 0xa0 0000167e: SHL 0000167f: SUB 00001680: DUP3 00001681: AND 00001682: PUSH1 0x04 00001684: DUP3 00001685: ADD 00001686: MSTORE 00001687: PUSH1 0x01 00001689: PUSH1 0x24 0000168b: DUP3 0000168c: ADD 0000168d: MSTORE 0000168e: PUSH0 0000168f: SWAP1 00001690: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9 000016a5: SWAP1 000016a6: PUSH4 0x8707c33e 000016ab: SWAP1 000016ac: PUSH1 0x44 000016ae: ADD 000016af: JUMPDEST 000016b0: PUSH1 0x40 000016b2: DUP1 000016b3: MLOAD 000016b4: DUP1 000016b5: DUP4 000016b6: SUB 000016b7: DUP2 000016b8: DUP7 000016b9: GAS 000016ba: DELEGATECALL 000016bb: ISZERO 000016bc: DUP1 000016bd: ISZERO 000016be: PUSH2 0x16c9 000016c1: JUMPI 000016c2: RETURNDATASIZE 000016c3: PUSH0 000016c4: PUSH0 000016c5: RETURNDATACOPY 000016c6: RETURNDATASIZE 000016c7: PUSH0 000016c8: REVERT 000016c9: JUMPDEST 000016ca: POP 000016cb: POP 000016cc: POP 000016cd: POP 000016ce: PUSH1 0x40 000016d0: MLOAD 000016d1: RETURNDATASIZE 000016d2: PUSH1 0x1f 000016d4: NOT 000016d5: PUSH1 0x1f 000016d7: DUP3 000016d8: ADD 000016d9: AND 000016da: DUP3 000016db: ADD 000016dc: DUP1 000016dd: PUSH1 0x40 000016df: MSTORE 000016e0: POP 000016e1: DUP2 000016e2: ADD 000016e3: SWAP1 000016e4: PUSH2 0x16ed 000016e7: SWAP2 000016e8: SWAP1 000016e9: PUSH2 0x5107 000016ec: JUMP 000016ed: JUMPDEST 000016ee: POP 000016ef: SWAP3 000016f0: SWAP2 000016f1: POP 000016f2: POP 000016f3: JUMP 000016f4: JUMPDEST 000016f5: PUSH1 0x40 000016f7: MLOAD 000016f8: PUSH4 0x69f958a5 000016fd: PUSH1 0xe1 000016ff: SHL 00001700: DUP2 00001701: MSTORE 00001702: PUSH0 00001703: SWAP1 00001704: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00001719: SWAP1 0000171a: PUSH4 0xd3f2b14a 0000171f: SWAP1 00001720: PUSH2 0x1735 00001723: SWAP1 00001724: DUP10 00001725: SWAP1 00001726: DUP10 00001727: SWAP1 00001728: DUP10 00001729: SWAP1 0000172a: DUP10 0000172b: SWAP1 0000172c: DUP10 0000172d: SWAP1 0000172e: PUSH1 0x04 00001730: ADD 00001731: PUSH2 0x515c 00001734: JUMP 00001735: JUMPDEST 00001736: PUSH1 0x20 00001738: PUSH1 0x40 0000173a: MLOAD 0000173b: DUP1 0000173c: DUP4 0000173d: SUB 0000173e: DUP2 0000173f: DUP7 00001740: GAS 00001741: DELEGATECALL 00001742: ISZERO 00001743: DUP1 00001744: ISZERO 00001745: PUSH2 0x1750 00001748: JUMPI 00001749: RETURNDATASIZE 0000174a: PUSH0 0000174b: PUSH0 0000174c: RETURNDATACOPY 0000174d: RETURNDATASIZE 0000174e: PUSH0 0000174f: REVERT 00001750: JUMPDEST 00001751: POP 00001752: POP 00001753: POP 00001754: POP 00001755: PUSH1 0x40 00001757: MLOAD 00001758: RETURNDATASIZE 00001759: PUSH1 0x1f 0000175b: NOT 0000175c: PUSH1 0x1f 0000175e: DUP3 0000175f: ADD 00001760: AND 00001761: DUP3 00001762: ADD 00001763: DUP1 00001764: PUSH1 0x40 00001766: MSTORE 00001767: POP 00001768: DUP2 00001769: ADD 0000176a: SWAP1 0000176b: PUSH2 0x1774 0000176e: SWAP2 0000176f: SWAP1 00001770: PUSH2 0x50d3 00001773: JUMP 00001774: JUMPDEST 00001775: SWAP1 00001776: POP 00001777: DUP1 00001778: ISZERO 00001779: PUSH2 0x17b0 0000177c: JUMPI 0000177d: PUSH1 0x40 0000177f: MLOAD 00001780: DUP5 00001781: DUP2 00001782: MSTORE 00001783: PUSH32 0x97bf554031869ec4edcf72b0dcdc2234dd406afe091f3631be088f348e179574 000017a4: SWAP1 000017a5: PUSH1 0x20 000017a7: ADD 000017a8: PUSH1 0x40 000017aa: MLOAD 000017ab: DUP1 000017ac: SWAP2 000017ad: SUB 000017ae: SWAP1 000017af: LOG1 000017b0: JUMPDEST 000017b1: SWAP6 000017b2: SWAP5 000017b3: POP 000017b4: POP 000017b5: POP 000017b6: POP 000017b7: POP 000017b8: JUMP 000017b9: JUMPDEST 000017ba: PUSH0 000017bb: PUSH2 0x10ed 000017be: DUP4 000017bf: DUP4 000017c0: PUSH2 0x2d0f 000017c3: JUMP 000017c4: JUMPDEST 000017c5: PUSH1 0x40 000017c7: MLOAD 000017c8: PUSH4 0x5f301149 000017cd: PUSH1 0xe0 000017cf: SHL 000017d0: DUP2 000017d1: MSTORE 000017d2: PUSH1 0x01 000017d4: PUSH1 0x01 000017d6: PUSH1 0xa0 000017d8: SHL 000017d9: SUB 000017da: DUP3 000017db: AND 000017dc: PUSH1 0x04 000017de: DUP3 000017df: ADD 000017e0: MSTORE 000017e1: PUSH0 000017e2: SWAP1 000017e3: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9 000017f8: SWAP1 000017f9: PUSH4 0x5f301149 000017fe: SWAP1 000017ff: PUSH1 0x24 00001801: ADD 00001802: PUSH1 0x20 00001804: PUSH1 0x40 00001806: MLOAD 00001807: DUP1 00001808: DUP4 00001809: SUB 0000180a: DUP2 0000180b: DUP7 0000180c: GAS 0000180d: DELEGATECALL 0000180e: ISZERO 0000180f: DUP1 00001810: ISZERO 00001811: PUSH2 0x181c 00001814: JUMPI 00001815: RETURNDATASIZE 00001816: PUSH0 00001817: PUSH0 00001818: RETURNDATACOPY 00001819: RETURNDATASIZE 0000181a: PUSH0 0000181b: REVERT 0000181c: JUMPDEST 0000181d: POP 0000181e: POP 0000181f: POP 00001820: POP 00001821: PUSH1 0x40 00001823: MLOAD 00001824: RETURNDATASIZE 00001825: PUSH1 0x1f 00001827: NOT 00001828: PUSH1 0x1f 0000182a: DUP3 0000182b: ADD 0000182c: AND 0000182d: DUP3 0000182e: ADD 0000182f: DUP1 00001830: PUSH1 0x40 00001832: MSTORE 00001833: POP 00001834: DUP2 00001835: ADD 00001836: SWAP1 00001837: PUSH2 0x10bb 0000183a: SWAP2 0000183b: SWAP1 0000183c: PUSH2 0x5092 0000183f: JUMP 00001840: JUMPDEST 00001841: PUSH0 00001842: PUSH2 0x10bb 00001845: DUP3 00001846: PUSH2 0x2d50 00001849: JUMP 0000184a: JUMPDEST 0000184b: PUSH0 0000184c: PUSH2 0x10ed 0000184f: DUP4 00001850: DUP4 00001851: PUSH2 0x2eaa 00001854: JUMP 00001855: JUMPDEST 00001856: PUSH2 0x185d 00001859: PUSH2 0x2892 0000185c: JUMP 0000185d: JUMPDEST 0000185e: PUSH1 0x01 00001860: PUSH1 0x01 00001862: PUSH1 0xa0 00001864: SHL 00001865: SUB 00001866: AND 00001867: CALLER 00001868: PUSH1 0x01 0000186a: PUSH1 0x01 0000186c: PUSH1 0xa0 0000186e: SHL 0000186f: SUB 00001870: AND 00001871: EQ 00001872: PUSH2 0x188e 00001875: JUMPI 00001876: PUSH1 0x40 00001878: MLOAD 00001879: PUSH4 0x59d74a41 0000187e: PUSH1 0xe0 00001880: SHL 00001881: DUP2 00001882: MSTORE 00001883: PUSH1 0x04 00001885: ADD 00001886: PUSH1 0x40 00001888: MLOAD 00001889: DUP1 0000188a: SWAP2 0000188b: SUB 0000188c: SWAP1 0000188d: REVERT 0000188e: JUMPDEST 0000188f: PUSH2 0x1899 00001892: DUP4 00001893: DUP4 00001894: DUP4 00001895: PUSH2 0x2eef 00001898: JUMP 00001899: JUMPDEST 0000189a: POP 0000189b: POP 0000189c: POP 0000189d: POP 0000189e: JUMP 0000189f: JUMPDEST 000018a0: PUSH0 000018a1: PUSH2 0x10a7 000018a4: DUP4 000018a5: PUSH0 000018a6: DUP5 000018a7: PUSH1 0x01 000018a9: PUSH2 0x2fbb 000018ac: JUMP 000018ad: JUMPDEST 000018ae: PUSH0 000018af: DUP1 000018b0: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 000018d1: JUMPDEST 000018d2: PUSH1 0x01 000018d4: PUSH1 0x01 000018d6: PUSH1 0xa0 000018d8: SHL 000018d9: SUB 000018da: SWAP1 000018db: SWAP4 000018dc: AND 000018dd: PUSH0 000018de: SWAP1 000018df: DUP2 000018e0: MSTORE 000018e1: PUSH1 0x20 000018e3: SWAP4 000018e4: SWAP1 000018e5: SWAP4 000018e6: MSTORE 000018e7: POP 000018e8: POP 000018e9: PUSH1 0x40 000018eb: SWAP1 000018ec: KECCAK256 000018ed: SLOAD 000018ee: SWAP1 000018ef: JUMP 000018f0: JUMPDEST 000018f1: PUSH0 000018f2: PUSH0 000018f3: PUSH0 000018f4: PUSH2 0x1905 000018f7: PUSH2 0x18fe 000018fa: PUSH2 0x30f1 000018fd: JUMP 000018fe: JUMPDEST 000018ff: PUSH1 0x02 00001901: PUSH2 0x31f3 00001904: JUMP 00001905: JUMPDEST 00001906: SWAP2 00001907: POP 00001908: SWAP2 00001909: POP 0000190a: PUSH2 0x10a7 0000190d: DUP5 0000190e: DUP4 0000190f: DUP4 00001910: PUSH1 0x01 00001912: PUSH1 0x02 00001914: PUSH2 0x33e2 00001917: JUMP 00001918: JUMPDEST 00001919: PUSH0 0000191a: PUSH2 0x1028 0000191d: PUSH2 0x2892 00001920: JUMP 00001921: JUMPDEST 00001922: PUSH0 00001923: PUSH2 0x10bb 00001926: DUP3 00001927: PUSH2 0x341d 0000192a: JUMP 0000192b: JUMPDEST 0000192c: PUSH0 0000192d: PUSH0 0000192e: PUSH0 0000192f: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00001944: PUSH4 0x9a2f31f1 00001949: PUSH1 0x40 0000194b: MLOAD 0000194c: DUP1 0000194d: PUSH1 0x80 0000194f: ADD 00001950: PUSH1 0x40 00001952: MSTORE 00001953: DUP1 00001954: DUP10 00001955: DUP2 00001956: MSTORE 00001957: PUSH1 0x20 00001959: ADD 0000195a: PUSH0 0000195b: DUP2 0000195c: MSTORE 0000195d: PUSH1 0x20 0000195f: ADD 00001960: DUP9 00001961: PUSH1 0x01 00001963: PUSH1 0x01 00001965: PUSH1 0xa0 00001967: SHL 00001968: SUB 00001969: AND 0000196a: DUP2 0000196b: MSTORE 0000196c: PUSH1 0x20 0000196e: ADD 0000196f: DUP8 00001970: PUSH1 0x01 00001972: PUSH1 0x01 00001974: PUSH1 0xa0 00001976: SHL 00001977: SUB 00001978: AND 00001979: DUP2 0000197a: MSTORE 0000197b: POP 0000197c: PUSH1 0x40 0000197e: MLOAD 0000197f: DUP3 00001980: PUSH4 0xffffffff 00001985: AND 00001986: PUSH1 0xe0 00001988: SHL 00001989: DUP2 0000198a: MSTORE 0000198b: PUSH1 0x04 0000198d: ADD 0000198e: PUSH2 0x1997 00001991: SWAP2 00001992: SWAP1 00001993: PUSH2 0x51ac 00001996: JUMP 00001997: JUMPDEST 00001998: PUSH1 0x60 0000199a: PUSH1 0x40 0000199c: MLOAD 0000199d: DUP1 0000199e: DUP4 0000199f: SUB 000019a0: DUP2 000019a1: DUP7 000019a2: GAS 000019a3: DELEGATECALL 000019a4: ISZERO 000019a5: DUP1 000019a6: ISZERO 000019a7: PUSH2 0x19b2 000019aa: JUMPI 000019ab: RETURNDATASIZE 000019ac: PUSH0 000019ad: PUSH0 000019ae: RETURNDATACOPY 000019af: RETURNDATASIZE 000019b0: PUSH0 000019b1: REVERT 000019b2: JUMPDEST 000019b3: POP 000019b4: POP 000019b5: POP 000019b6: POP 000019b7: PUSH1 0x40 000019b9: MLOAD 000019ba: RETURNDATASIZE 000019bb: PUSH1 0x1f 000019bd: NOT 000019be: PUSH1 0x1f 000019c0: DUP3 000019c1: ADD 000019c2: AND 000019c3: DUP3 000019c4: ADD 000019c5: DUP1 000019c6: PUSH1 0x40 000019c8: MSTORE 000019c9: POP 000019ca: DUP2 000019cb: ADD 000019cc: SWAP1 000019cd: PUSH2 0x19d6 000019d0: SWAP2 000019d1: SWAP1 000019d2: PUSH2 0x5129 000019d5: JUMP 000019d6: JUMPDEST 000019d7: PUSH1 0x40 000019d9: DUP1 000019da: MLOAD 000019db: DUP5 000019dc: DUP2 000019dd: MSTORE 000019de: PUSH1 0x20 000019e0: DUP2 000019e1: ADD 000019e2: DUP5 000019e3: SWAP1 000019e4: MSTORE 000019e5: SWAP3 000019e6: SWAP7 000019e7: POP 000019e8: SWAP3 000019e9: SWAP5 000019ea: POP 000019eb: SWAP3 000019ec: POP 000019ed: PUSH1 0x01 000019ef: PUSH1 0x01 000019f1: PUSH1 0xa0 000019f3: SHL 000019f4: SUB 000019f5: DUP1 000019f6: DUP8 000019f7: AND 000019f8: SWAP3 000019f9: SWAP1 000019fa: DUP9 000019fb: AND 000019fc: SWAP2 000019fd: CALLER 000019fe: SWAP2 000019ff: PUSH32 0x96558a334f4759f0e7c423d68c84721860bd8fbf94ddc4e55158ecb125ad04b5 00001a20: SWAP2 00001a21: ADD 00001a22: JUMPDEST 00001a23: PUSH1 0x40 00001a25: MLOAD 00001a26: DUP1 00001a27: SWAP2 00001a28: SUB 00001a29: SWAP1 00001a2a: LOG4 00001a2b: DUP1 00001a2c: ISZERO 00001a2d: PUSH2 0x1a5b 00001a30: JUMPI 00001a31: PUSH1 0x40 00001a33: MLOAD 00001a34: CALLER 00001a35: SWAP1 00001a36: PUSH32 0x4aa7ec2e9d912271d4af0f59b2735f825ef583f4d6ee04f0242be6f58febc0fc 00001a57: SWAP1 00001a58: PUSH0 00001a59: SWAP1 00001a5a: LOG2 00001a5b: JUMPDEST 00001a5c: POP 00001a5d: POP 00001a5e: SWAP4 00001a5f: SWAP3 00001a60: POP 00001a61: POP 00001a62: POP 00001a63: JUMP 00001a64: JUMPDEST 00001a65: PUSH0 00001a66: PUSH2 0x10ed 00001a69: DUP4 00001a6a: DUP4 00001a6b: PUSH2 0x284b 00001a6e: JUMP 00001a6f: JUMPDEST 00001a70: PUSH0 00001a71: PUSH1 0x60 00001a73: DUP1 00001a74: DUP3 00001a75: DUP1 00001a76: DUP1 00001a77: DUP4 00001a78: DUP2 00001a79: PUSH0 00001a7a: MLOAD 00001a7b: PUSH1 0x20 00001a7d: PUSH2 0x5768 00001a80: PUSH0 00001a81: CODECOPY 00001a82: PUSH0 00001a83: MLOAD 00001a84: SWAP1 00001a85: PUSH0 00001a86: MSTORE 00001a87: DUP1 00001a88: SLOAD 00001a89: SWAP1 00001a8a: SWAP2 00001a8b: POP 00001a8c: ISZERO 00001a8d: DUP1 00001a8e: ISZERO 00001a8f: PUSH2 0x1a9a 00001a92: JUMPI 00001a93: POP 00001a94: PUSH1 0x01 00001a96: DUP2 00001a97: ADD 00001a98: SLOAD 00001a99: ISZERO 00001a9a: JUMPDEST 00001a9b: PUSH2 0x1ae3 00001a9e: JUMPI 00001a9f: PUSH1 0x40 00001aa1: MLOAD 00001aa2: PUSH3 0x461bcd 00001aa6: PUSH1 0xe5 00001aa8: SHL 00001aa9: DUP2 00001aaa: MSTORE 00001aab: PUSH1 0x20 00001aad: PUSH1 0x04 00001aaf: DUP3 00001ab0: ADD 00001ab1: MSTORE 00001ab2: PUSH1 0x15 00001ab4: PUSH1 0x24 00001ab6: DUP3 00001ab7: ADD 00001ab8: MSTORE 00001ab9: PUSH21 0x1152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959 00001acf: PUSH1 0x5a 00001ad1: SHL 00001ad2: PUSH1 0x44 00001ad4: DUP3 00001ad5: ADD 00001ad6: MSTORE 00001ad7: PUSH1 0x64 00001ad9: ADD 00001ada: JUMPDEST 00001adb: PUSH1 0x40 00001add: MLOAD 00001ade: DUP1 00001adf: SWAP2 00001ae0: SUB 00001ae1: SWAP1 00001ae2: REVERT 00001ae3: JUMPDEST 00001ae4: PUSH2 0x1aeb 00001ae7: PUSH2 0x3445 00001aea: JUMP 00001aeb: JUMPDEST 00001aec: PUSH2 0x1af3 00001aef: PUSH2 0x3505 00001af2: JUMP 00001af3: JUMPDEST 00001af4: PUSH1 0x40 00001af6: DUP1 00001af7: MLOAD 00001af8: PUSH0 00001af9: DUP1 00001afa: DUP3 00001afb: MSTORE 00001afc: PUSH1 0x20 00001afe: DUP3 00001aff: ADD 00001b00: SWAP1 00001b01: SWAP3 00001b02: MSTORE 00001b03: PUSH1 0x0f 00001b05: PUSH1 0xf8 00001b07: SHL 00001b08: SWAP13 00001b09: SWAP4 00001b0a: SWAP12 00001b0b: POP 00001b0c: SWAP2 00001b0d: SWAP10 00001b0e: POP 00001b0f: CHAINID 00001b10: SWAP9 00001b11: POP 00001b12: ADDRESS 00001b13: SWAP8 00001b14: POP 00001b15: SWAP6 00001b16: POP 00001b17: SWAP4 00001b18: POP 00001b19: SWAP2 00001b1a: POP 00001b1b: POP 00001b1c: JUMP 00001b1d: JUMPDEST 00001b1e: PUSH0 00001b1f: PUSH0 00001b20: PUSH0 00001b21: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00001b36: PUSH4 0x5937128b 00001b3b: PUSH1 0x40 00001b3d: MLOAD 00001b3e: DUP1 00001b3f: PUSH1 0x80 00001b41: ADD 00001b42: PUSH1 0x40 00001b44: MSTORE 00001b45: DUP1 00001b46: PUSH0 00001b47: DUP2 00001b48: MSTORE 00001b49: PUSH1 0x20 00001b4b: ADD 00001b4c: DUP10 00001b4d: DUP2 00001b4e: MSTORE 00001b4f: PUSH1 0x20 00001b51: ADD 00001b52: DUP9 00001b53: PUSH1 0x01 00001b55: PUSH1 0x01 00001b57: PUSH1 0xa0 00001b59: SHL 00001b5a: SUB 00001b5b: AND 00001b5c: DUP2 00001b5d: MSTORE 00001b5e: PUSH1 0x20 00001b60: ADD 00001b61: DUP8 00001b62: PUSH1 0x01 00001b64: PUSH1 0x01 00001b66: PUSH1 0xa0 00001b68: SHL 00001b69: SUB 00001b6a: AND 00001b6b: DUP2 00001b6c: MSTORE 00001b6d: POP 00001b6e: PUSH1 0x40 00001b70: MLOAD 00001b71: DUP3 00001b72: PUSH4 0xffffffff 00001b77: AND 00001b78: PUSH1 0xe0 00001b7a: SHL 00001b7b: DUP2 00001b7c: MSTORE 00001b7d: PUSH1 0x04 00001b7f: ADD 00001b80: PUSH2 0x1b89 00001b83: SWAP2 00001b84: SWAP1 00001b85: PUSH2 0x51ac 00001b88: JUMP 00001b89: JUMPDEST 00001b8a: PUSH1 0x60 00001b8c: PUSH1 0x40 00001b8e: MLOAD 00001b8f: DUP1 00001b90: DUP4 00001b91: SUB 00001b92: DUP2 00001b93: DUP7 00001b94: GAS 00001b95: DELEGATECALL 00001b96: ISZERO 00001b97: DUP1 00001b98: ISZERO 00001b99: PUSH2 0x1ba4 00001b9c: JUMPI 00001b9d: RETURNDATASIZE 00001b9e: PUSH0 00001b9f: PUSH0 00001ba0: RETURNDATACOPY 00001ba1: RETURNDATASIZE 00001ba2: PUSH0 00001ba3: REVERT 00001ba4: JUMPDEST 00001ba5: POP 00001ba6: POP 00001ba7: POP 00001ba8: POP 00001ba9: PUSH1 0x40 00001bab: MLOAD 00001bac: RETURNDATASIZE 00001bad: PUSH1 0x1f 00001baf: NOT 00001bb0: PUSH1 0x1f 00001bb2: DUP3 00001bb3: ADD 00001bb4: AND 00001bb5: DUP3 00001bb6: ADD 00001bb7: DUP1 00001bb8: PUSH1 0x40 00001bba: MSTORE 00001bbb: POP 00001bbc: DUP2 00001bbd: ADD 00001bbe: SWAP1 00001bbf: PUSH2 0x1bc8 00001bc2: SWAP2 00001bc3: SWAP1 00001bc4: PUSH2 0x5129 00001bc7: JUMP 00001bc8: JUMPDEST 00001bc9: PUSH1 0x40 00001bcb: DUP1 00001bcc: MLOAD 00001bcd: DUP5 00001bce: DUP2 00001bcf: MSTORE 00001bd0: PUSH1 0x20 00001bd2: DUP2 00001bd3: ADD 00001bd4: DUP5 00001bd5: SWAP1 00001bd6: MSTORE 00001bd7: SWAP4 00001bd8: SWAP7 00001bd9: POP 00001bda: SWAP2 00001bdb: SWAP5 00001bdc: POP 00001bdd: SWAP3 00001bde: POP 00001bdf: PUSH1 0x01 00001be1: PUSH1 0x01 00001be3: PUSH1 0xa0 00001be5: SHL 00001be6: SUB 00001be7: DUP7 00001be8: DUP2 00001be9: AND 00001bea: SWAP3 00001beb: SWAP1 00001bec: DUP9 00001bed: AND 00001bee: SWAP2 00001bef: CALLER 00001bf0: SWAP2 00001bf1: PUSH32 0x96558a334f4759f0e7c423d68c84721860bd8fbf94ddc4e55158ecb125ad04b5 00001c12: SWAP2 00001c13: ADD 00001c14: PUSH2 0x1a22 00001c17: JUMP 00001c18: JUMPDEST 00001c19: PUSH0 00001c1a: PUSH2 0x1116 00001c1d: PUSH0 00001c1e: DUP5 00001c1f: DUP5 00001c20: PUSH1 0x01 00001c22: PUSH2 0x2fbb 00001c25: JUMP 00001c26: JUMPDEST 00001c27: PUSH1 0x60 00001c29: PUSH20 0x73de8d3b49000cc9fd2a05f27b37af0c1f6e3133 00001c3e: PUSH4 0x95d89b41 00001c43: PUSH1 0x40 00001c45: MLOAD 00001c46: DUP2 00001c47: PUSH4 0xffffffff 00001c4c: AND 00001c4d: PUSH1 0xe0 00001c4f: SHL 00001c50: DUP2 00001c51: MSTORE 00001c52: PUSH1 0x04 00001c54: ADD 00001c55: PUSH0 00001c56: PUSH1 0x40 00001c58: MLOAD 00001c59: DUP1 00001c5a: DUP4 00001c5b: SUB 00001c5c: DUP2 00001c5d: DUP7 00001c5e: GAS 00001c5f: DELEGATECALL 00001c60: ISZERO 00001c61: DUP1 00001c62: ISZERO 00001c63: PUSH2 0x1075 00001c66: JUMPI 00001c67: RETURNDATASIZE 00001c68: PUSH0 00001c69: PUSH0 00001c6a: RETURNDATACOPY 00001c6b: RETURNDATASIZE 00001c6c: PUSH0 00001c6d: REVERT 00001c6e: JUMPDEST 00001c6f: PUSH1 0x40 00001c71: MLOAD 00001c72: PUSH4 0x4383e19f 00001c77: PUSH1 0xe1 00001c79: SHL 00001c7a: DUP2 00001c7b: MSTORE 00001c7c: PUSH1 0x01 00001c7e: PUSH1 0x01 00001c80: PUSH1 0xa0 00001c82: SHL 00001c83: SUB 00001c84: DUP3 00001c85: AND 00001c86: PUSH1 0x04 00001c88: DUP3 00001c89: ADD 00001c8a: MSTORE 00001c8b: PUSH0 00001c8c: PUSH1 0x24 00001c8e: DUP3 00001c8f: ADD 00001c90: DUP2 00001c91: SWAP1 00001c92: MSTORE 00001c93: SWAP1 00001c94: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9 00001ca9: SWAP1 00001caa: PUSH4 0x8707c33e 00001caf: SWAP1 00001cb0: PUSH1 0x44 00001cb2: ADD 00001cb3: PUSH2 0x16af 00001cb6: JUMP 00001cb7: JUMPDEST 00001cb8: PUSH0 00001cb9: PUSH0 00001cba: PUSH0 00001cbb: PUSH0 00001cbc: PUSH0 00001cbd: PUSH2 0x1d58 00001cc0: PUSH0 00001cc1: MLOAD 00001cc2: PUSH1 0x20 00001cc4: PUSH2 0x5748 00001cc7: PUSH0 00001cc8: CODECOPY 00001cc9: PUSH0 00001cca: MLOAD 00001ccb: SWAP1 00001ccc: PUSH0 00001ccd: MSTORE 00001cce: SLOAD 00001ccf: PUSH0 00001cd0: MLOAD 00001cd1: PUSH1 0x20 00001cd3: PUSH2 0x5728 00001cd6: PUSH0 00001cd7: CODECOPY 00001cd8: PUSH0 00001cd9: MLOAD 00001cda: SWAP1 00001cdb: PUSH0 00001cdc: MSTORE 00001cdd: PUSH1 0x20 00001cdf: MSTORE 00001ce0: PUSH32 0x1d6b5be70a9f383ca45b06b91c80fedc4b8206aae15f8f5652c9213b796e9a02 00001d01: SLOAD 00001d02: PUSH0 00001d03: MLOAD 00001d04: PUSH1 0x20 00001d06: PUSH2 0x5788 00001d09: PUSH0 00001d0a: CODECOPY 00001d0b: PUSH0 00001d0c: MLOAD 00001d0d: SWAP1 00001d0e: PUSH0 00001d0f: MSTORE 00001d10: SLOAD 00001d11: PUSH1 0x02 00001d13: PUSH0 00001d14: MSTORE 00001d15: PUSH32 0x9b40389f0c625a77401470835767c77e909c039c8fc3275d3c2d2a048f8d5757 00001d36: SLOAD 00001d37: PUSH1 0x01 00001d39: PUSH1 0x01 00001d3b: PUSH1 0xc0 00001d3d: SHL 00001d3e: SUB 00001d3f: DUP5 00001d40: AND 00001d41: SWAP5 00001d42: PUSH1 0x01 00001d44: PUSH1 0x01 00001d46: PUSH1 0x40 00001d48: SHL 00001d49: SUB 00001d4a: PUSH1 0x01 00001d4c: PUSH1 0xc0 00001d4e: SHL 00001d4f: SWAP1 00001d50: SWAP6 00001d51: DIV 00001d52: SWAP5 00001d53: SWAP1 00001d54: SWAP5 00001d55: AND 00001d56: SWAP4 00001d57: JUMP 00001d58: JUMPDEST 00001d59: SWAP5 00001d5a: POP 00001d5b: SWAP5 00001d5c: POP 00001d5d: SWAP5 00001d5e: POP 00001d5f: SWAP5 00001d60: POP 00001d61: SWAP5 00001d62: POP 00001d63: SWAP1 00001d64: SWAP2 00001d65: SWAP3 00001d66: SWAP4 00001d67: SWAP5 00001d68: JUMP 00001d69: JUMPDEST 00001d6a: PUSH2 0x1d93 00001d6d: PUSH1 0x40 00001d6f: MLOAD 00001d70: DUP1 00001d71: PUSH1 0x60 00001d73: ADD 00001d74: PUSH1 0x40 00001d76: MSTORE 00001d77: DUP1 00001d78: PUSH0 00001d79: DUP2 00001d7a: MSTORE 00001d7b: PUSH1 0x20 00001d7d: ADD 00001d7e: PUSH0 00001d7f: DUP2 00001d80: MSTORE 00001d81: PUSH1 0x20 00001d83: ADD 00001d84: PUSH0 00001d85: PUSH1 0x01 00001d87: PUSH1 0x01 00001d89: PUSH1 0x40 00001d8b: SHL 00001d8c: SUB 00001d8d: AND 00001d8e: DUP2 00001d8f: MSTORE 00001d90: POP 00001d91: SWAP1 00001d92: JUMP 00001d93: JUMPDEST 00001d94: PUSH2 0x1028 00001d97: PUSH2 0x3543 00001d9a: JUMP 00001d9b: JUMPDEST 00001d9c: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00001db1: PUSH4 0xa1ecef5c 00001db6: PUSH1 0x40 00001db8: MLOAD 00001db9: DUP2 00001dba: PUSH4 0xffffffff 00001dbf: AND 00001dc0: PUSH1 0xe0 00001dc2: SHL 00001dc3: DUP2 00001dc4: MSTORE 00001dc5: PUSH1 0x04 00001dc7: ADD 00001dc8: PUSH0 00001dc9: PUSH1 0x40 00001dcb: MLOAD 00001dcc: DUP1 00001dcd: DUP4 00001dce: SUB 00001dcf: DUP2 00001dd0: DUP7 00001dd1: DUP1 00001dd2: EXTCODESIZE 00001dd3: ISZERO 00001dd4: DUP1 00001dd5: ISZERO 00001dd6: PUSH2 0x1ddd 00001dd9: JUMPI 00001dda: PUSH0 00001ddb: PUSH0 00001ddc: REVERT 00001ddd: JUMPDEST 00001dde: POP 00001ddf: GAS 00001de0: DELEGATECALL 00001de1: ISZERO 00001de2: DUP1 00001de3: ISZERO 00001de4: PUSH2 0x1def 00001de7: JUMPI 00001de8: RETURNDATASIZE 00001de9: PUSH0 00001dea: PUSH0 00001deb: RETURNDATACOPY 00001dec: RETURNDATASIZE 00001ded: PUSH0 00001dee: REVERT 00001def: JUMPDEST 00001df0: POP 00001df1: POP 00001df2: PUSH1 0x40 00001df4: MLOAD 00001df5: CALLER 00001df6: SWAP3 00001df7: POP 00001df8: PUSH32 0x4aa7ec2e9d912271d4af0f59b2735f825ef583f4d6ee04f0242be6f58febc0fc 00001e19: SWAP2 00001e1a: POP 00001e1b: PUSH0 00001e1c: SWAP1 00001e1d: LOG2 00001e1e: JUMP 00001e1f: JUMPDEST 00001e20: PUSH0 00001e21: PUSH2 0x1028 00001e24: PUSH2 0x2c86 00001e27: JUMP 00001e28: JUMPDEST 00001e29: PUSH0 00001e2a: PUSH2 0x10ed 00001e2d: DUP4 00001e2e: DUP4 00001e2f: PUSH2 0x2cca 00001e32: JUMP 00001e33: JUMPDEST 00001e34: PUSH0 00001e35: PUSH0 00001e36: PUSH2 0x1e3d 00001e39: PUSH2 0x2a78 00001e3c: JUMP 00001e3d: JUMPDEST 00001e3e: SWAP1 00001e3f: POP 00001e40: PUSH2 0x1e49 00001e43: DUP5 00001e44: DUP5 00001e45: PUSH2 0x35ef 00001e48: JUMP 00001e49: JUMPDEST 00001e4a: SWAP2 00001e4b: POP 00001e4c: DUP1 00001e4d: PUSH1 0x01 00001e4f: PUSH1 0x01 00001e51: PUSH1 0xa0 00001e53: SHL 00001e54: SUB 00001e55: AND 00001e56: PUSH4 0x62402b04 00001e5b: PUSH1 0x40 00001e5d: MLOAD 00001e5e: DUP2 00001e5f: PUSH4 0xffffffff 00001e64: AND 00001e65: PUSH1 0xe0 00001e67: SHL 00001e68: DUP2 00001e69: MSTORE 00001e6a: PUSH1 0x04 00001e6c: ADD 00001e6d: PUSH0 00001e6e: PUSH1 0x40 00001e70: MLOAD 00001e71: DUP1 00001e72: DUP4 00001e73: SUB 00001e74: DUP2 00001e75: PUSH0 00001e76: DUP8 00001e77: DUP1 00001e78: EXTCODESIZE 00001e79: ISZERO 00001e7a: DUP1 00001e7b: ISZERO 00001e7c: PUSH2 0x1e83 00001e7f: JUMPI 00001e80: PUSH0 00001e81: PUSH0 00001e82: REVERT 00001e83: JUMPDEST 00001e84: POP 00001e85: GAS 00001e86: CALL 00001e87: ISZERO 00001e88: DUP1 00001e89: ISZERO 00001e8a: PUSH2 0x1e95 00001e8d: JUMPI 00001e8e: RETURNDATASIZE 00001e8f: PUSH0 00001e90: PUSH0 00001e91: RETURNDATACOPY 00001e92: RETURNDATASIZE 00001e93: PUSH0 00001e94: REVERT 00001e95: JUMPDEST 00001e96: POP 00001e97: POP 00001e98: POP 00001e99: POP 00001e9a: POP 00001e9b: SWAP3 00001e9c: SWAP2 00001e9d: POP 00001e9e: POP 00001e9f: JUMP 00001ea0: JUMPDEST 00001ea1: PUSH1 0x40 00001ea3: MLOAD 00001ea4: PUSH4 0xb0062139 00001ea9: PUSH1 0xe0 00001eab: SHL 00001eac: DUP2 00001ead: MSTORE 00001eae: PUSH1 0x04 00001eb0: DUP2 00001eb1: ADD 00001eb2: DUP4 00001eb3: SWAP1 00001eb4: MSTORE 00001eb5: PUSH0 00001eb6: PUSH1 0x24 00001eb8: DUP3 00001eb9: ADD 00001eba: DUP2 00001ebb: SWAP1 00001ebc: MSTORE 00001ebd: PUSH1 0x01 00001ebf: PUSH1 0x01 00001ec1: PUSH1 0xa0 00001ec3: SHL 00001ec4: SUB 00001ec5: DUP4 00001ec6: AND 00001ec7: PUSH1 0x44 00001ec9: DUP4 00001eca: ADD 00001ecb: MSTORE 00001ecc: CALLER 00001ecd: PUSH1 0x64 00001ecf: DUP4 00001ed0: ADD 00001ed1: MSTORE 00001ed2: SWAP1 00001ed3: DUP2 00001ed4: SWAP1 00001ed5: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00001eea: SWAP1 00001eeb: PUSH4 0xb0062139 00001ef0: SWAP1 00001ef1: PUSH1 0x84 00001ef3: ADD 00001ef4: PUSH1 0x40 00001ef6: DUP1 00001ef7: MLOAD 00001ef8: DUP1 00001ef9: DUP4 00001efa: SUB 00001efb: DUP2 00001efc: DUP7 00001efd: GAS 00001efe: DELEGATECALL 00001eff: ISZERO 00001f00: DUP1 00001f01: ISZERO 00001f02: PUSH2 0x1f0d 00001f05: JUMPI 00001f06: RETURNDATASIZE 00001f07: PUSH0 00001f08: PUSH0 00001f09: RETURNDATACOPY 00001f0a: RETURNDATASIZE 00001f0b: PUSH0 00001f0c: REVERT 00001f0d: JUMPDEST 00001f0e: POP 00001f0f: POP 00001f10: POP 00001f11: POP 00001f12: PUSH1 0x40 00001f14: MLOAD 00001f15: RETURNDATASIZE 00001f16: PUSH1 0x1f 00001f18: NOT 00001f19: PUSH1 0x1f 00001f1b: DUP3 00001f1c: ADD 00001f1d: AND 00001f1e: DUP3 00001f1f: ADD 00001f20: DUP1 00001f21: PUSH1 0x40 00001f23: MSTORE 00001f24: POP 00001f25: DUP2 00001f26: ADD 00001f27: SWAP1 00001f28: PUSH2 0x1f31 00001f2b: SWAP2 00001f2c: SWAP1 00001f2d: PUSH2 0x5107 00001f30: JUMP 00001f31: JUMPDEST 00001f32: PUSH1 0x40 00001f34: DUP1 00001f35: MLOAD 00001f36: DUP4 00001f37: DUP2 00001f38: MSTORE 00001f39: PUSH1 0x20 00001f3b: DUP2 00001f3c: ADD 00001f3d: DUP4 00001f3e: SWAP1 00001f3f: MSTORE 00001f40: SWAP2 00001f41: SWAP5 00001f42: POP 00001f43: SWAP2 00001f44: SWAP3 00001f45: POP 00001f46: PUSH1 0x01 00001f48: PUSH1 0x01 00001f4a: PUSH1 0xa0 00001f4c: SHL 00001f4d: SUB 00001f4e: DUP6 00001f4f: AND 00001f50: SWAP2 00001f51: CALLER 00001f52: SWAP2 00001f53: PUSH32 0xe4a1ae657f49cb1fb1c7d3a94ae6093565c4c8c0e03de488f79c377c3c3a24e0 00001f74: SWAP2 00001f75: ADD 00001f76: JUMPDEST 00001f77: PUSH1 0x40 00001f79: MLOAD 00001f7a: DUP1 00001f7b: SWAP2 00001f7c: SUB 00001f7d: SWAP1 00001f7e: LOG3 00001f7f: POP 00001f80: SWAP3 00001f81: SWAP2 00001f82: POP 00001f83: POP 00001f84: JUMP 00001f85: JUMPDEST 00001f86: PUSH0 00001f87: PUSH2 0x10bb 00001f8a: DUP3 00001f8b: PUSH1 0x01 00001f8d: PUSH2 0x2a32 00001f90: JUMP 00001f91: JUMPDEST 00001f92: PUSH0 00001f93: PUSH2 0x17b0 00001f96: DUP5 00001f97: PUSH0 00001f98: DUP6 00001f99: DUP6 00001f9a: CALLER 00001f9b: PUSH1 0x01 00001f9d: PUSH2 0x35fc 00001fa0: JUMP 00001fa1: JUMPDEST 00001fa2: PUSH0 00001fa3: PUSH0 00001fa4: MLOAD 00001fa5: PUSH1 0x20 00001fa7: PUSH2 0x5728 00001faa: PUSH0 00001fab: CODECOPY 00001fac: PUSH0 00001fad: MLOAD 00001fae: SWAP1 00001faf: PUSH0 00001fb0: MSTORE 00001fb1: DUP2 00001fb2: DUP4 00001fb3: PUSH1 0x02 00001fb5: DUP2 00001fb6: GT 00001fb7: ISZERO 00001fb8: PUSH2 0x1fc3 00001fbb: JUMPI 00001fbc: PUSH2 0x1fc3 00001fbf: PUSH2 0x51e6 00001fc2: JUMP 00001fc3: JUMPDEST 00001fc4: PUSH1 0x02 00001fc6: DUP2 00001fc7: GT 00001fc8: ISZERO 00001fc9: PUSH2 0x1fd4 00001fcc: JUMPI 00001fcd: PUSH2 0x1fd4 00001fd0: PUSH2 0x51e6 00001fd3: JUMP 00001fd4: JUMPDEST 00001fd5: DUP2 00001fd6: MSTORE 00001fd7: PUSH1 0x20 00001fd9: ADD 00001fda: SWAP1 00001fdb: DUP2 00001fdc: MSTORE 00001fdd: PUSH1 0x20 00001fdf: ADD 00001fe0: PUSH0 00001fe1: KECCAK256 00001fe2: SLOAD 00001fe3: SWAP1 00001fe4: POP 00001fe5: SWAP2 00001fe6: SWAP1 00001fe7: POP 00001fe8: JUMP 00001fe9: JUMPDEST 00001fea: PUSH0 00001feb: PUSH2 0x17b0 00001fee: DUP5 00001fef: PUSH0 00001ff0: DUP6 00001ff1: DUP6 00001ff2: PUSH2 0x2fbb 00001ff5: JUMP 00001ff6: JUMPDEST 00001ff7: PUSH0 00001ff8: PUSH2 0x2005 00001ffb: DUP6 00001ffc: PUSH0 00001ffd: DUP7 00001ffe: DUP7 00001fff: CALLER 00002000: DUP8 00002001: PUSH2 0x35fc 00002004: JUMP 00002005: JUMPDEST 00002006: SWAP7 00002007: SWAP6 00002008: POP 00002009: POP 0000200a: POP 0000200b: POP 0000200c: POP 0000200d: POP 0000200e: JUMP 0000200f: JUMPDEST 00002010: PUSH0 00002011: PUSH2 0x201f 00002014: PUSH0 00002015: DUP6 00002016: DUP6 00002017: DUP6 00002018: CALLER 00002019: PUSH1 0x01 0000201b: PUSH2 0x35fc 0000201e: JUMP 0000201f: JUMPDEST 00002020: POP 00002021: SWAP5 00002022: SWAP4 00002023: POP 00002024: POP 00002025: POP 00002026: POP 00002027: JUMP 00002028: JUMPDEST 00002029: PUSH0 0000202a: PUSH0 0000202b: PUSH0 0000202c: PUSH2 0x2036 0000202f: PUSH2 0x18fe 00002032: PUSH2 0x30f1 00002035: JUMP 00002036: JUMPDEST 00002037: SWAP2 00002038: POP 00002039: SWAP2 0000203a: POP 0000203b: PUSH2 0x10a7 0000203e: DUP5 0000203f: DUP4 00002040: DUP4 00002041: PUSH0 00002042: PUSH1 0x02 00002044: PUSH2 0x3790 00002047: JUMP 00002048: JUMPDEST 00002049: PUSH0 0000204a: PUSH0 0000204b: PUSH0 0000204c: PUSH2 0x2056 0000204f: PUSH2 0x18fe 00002052: PUSH2 0x30f1 00002055: JUMP 00002056: JUMPDEST 00002057: SWAP2 00002058: POP 00002059: SWAP2 0000205a: POP 0000205b: PUSH2 0x10a7 0000205e: DUP5 0000205f: DUP4 00002060: DUP4 00002061: PUSH0 00002062: PUSH1 0x02 00002064: PUSH2 0x33e2 00002067: JUMP 00002068: JUMPDEST 00002069: PUSH0 0000206a: PUSH2 0x201f 0000206d: PUSH0 0000206e: DUP6 0000206f: DUP6 00002070: DUP6 00002071: PUSH2 0x2fbb 00002074: JUMP 00002075: JUMPDEST 00002076: PUSH1 0x40 00002078: MLOAD 00002079: PUSH4 0x0f5cbacf 0000207e: PUSH1 0xe2 00002080: SHL 00002081: DUP2 00002082: MSTORE 00002083: PUSH1 0x01 00002085: PUSH1 0x01 00002087: PUSH1 0xa0 00002089: SHL 0000208a: SUB 0000208b: DUP3 0000208c: AND 0000208d: PUSH1 0x04 0000208f: DUP3 00002090: ADD 00002091: MSTORE 00002092: PUSH0 00002093: SWAP1 00002094: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 000020a9: SWAP1 000020aa: PUSH4 0x3d72eb3c 000020af: SWAP1 000020b0: PUSH1 0x24 000020b2: ADD 000020b3: PUSH1 0x20 000020b5: PUSH1 0x40 000020b7: MLOAD 000020b8: DUP1 000020b9: DUP4 000020ba: SUB 000020bb: DUP2 000020bc: DUP7 000020bd: GAS 000020be: DELEGATECALL 000020bf: ISZERO 000020c0: DUP1 000020c1: ISZERO 000020c2: PUSH2 0x20cd 000020c5: JUMPI 000020c6: RETURNDATASIZE 000020c7: PUSH0 000020c8: PUSH0 000020c9: RETURNDATACOPY 000020ca: RETURNDATASIZE 000020cb: PUSH0 000020cc: REVERT 000020cd: JUMPDEST 000020ce: POP 000020cf: POP 000020d0: POP 000020d1: POP 000020d2: PUSH1 0x40 000020d4: MLOAD 000020d5: RETURNDATASIZE 000020d6: PUSH1 0x1f 000020d8: NOT 000020d9: PUSH1 0x1f 000020db: DUP3 000020dc: ADD 000020dd: AND 000020de: DUP3 000020df: ADD 000020e0: DUP1 000020e1: PUSH1 0x40 000020e3: MSTORE 000020e4: POP 000020e5: DUP2 000020e6: ADD 000020e7: SWAP1 000020e8: PUSH2 0x20f1 000020eb: SWAP2 000020ec: SWAP1 000020ed: PUSH2 0x50ec 000020f0: JUMP 000020f1: JUMPDEST 000020f2: SWAP1 000020f3: POP 000020f4: PUSH2 0x2100 000020f7: ADDRESS 000020f8: DUP3 000020f9: PUSH2 0x0800 000020fc: PUSH2 0x37bf 000020ff: JUMP 00002100: JUMPDEST 00002101: POP 00002102: POP 00002103: JUMP 00002104: JUMPDEST 00002105: PUSH2 0x210c 00002108: PUSH2 0x2caf 0000210b: JUMP 0000210c: JUMPDEST 0000210d: PUSH1 0x01 0000210f: PUSH1 0x01 00002111: PUSH1 0xa0 00002113: SHL 00002114: SUB 00002115: AND 00002116: CALLER 00002117: PUSH1 0x01 00002119: PUSH1 0x01 0000211b: PUSH1 0xa0 0000211d: SHL 0000211e: SUB 0000211f: AND 00002120: EQ 00002121: PUSH2 0x213d 00002124: JUMPI 00002125: PUSH1 0x40 00002127: MLOAD 00002128: PUSH4 0x10528c6d 0000212d: PUSH1 0xe1 0000212f: SHL 00002130: DUP2 00002131: MSTORE 00002132: PUSH1 0x04 00002134: ADD 00002135: PUSH1 0x40 00002137: MLOAD 00002138: DUP1 00002139: SWAP2 0000213a: SUB 0000213b: SWAP1 0000213c: REVERT 0000213d: JUMPDEST 0000213e: PUSH2 0x2147 00002141: DUP4 00002142: DUP3 00002143: PUSH2 0x397c 00002146: JUMP 00002147: JUMPDEST 00002148: POP 00002149: POP 0000214a: POP 0000214b: JUMP 0000214c: JUMPDEST 0000214d: PUSH0 0000214e: PUSH2 0x10bb 00002151: DUP3 00002152: PUSH1 0x01 00002154: PUSH2 0x2d0f 00002157: JUMP 00002158: JUMPDEST 00002159: PUSH0 0000215a: PUSH0 0000215b: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00002170: PUSH4 0xcad1aacf 00002175: PUSH1 0x40 00002177: MLOAD 00002178: DUP2 00002179: PUSH4 0xffffffff 0000217e: AND 0000217f: PUSH1 0xe0 00002181: SHL 00002182: DUP2 00002183: MSTORE 00002184: PUSH1 0x04 00002186: ADD 00002187: PUSH1 0x40 00002189: DUP1 0000218a: MLOAD 0000218b: DUP1 0000218c: DUP4 0000218d: SUB 0000218e: DUP2 0000218f: DUP7 00002190: GAS 00002191: DELEGATECALL 00002192: ISZERO 00002193: DUP1 00002194: ISZERO 00002195: PUSH2 0x21a0 00002198: JUMPI 00002199: RETURNDATASIZE 0000219a: PUSH0 0000219b: PUSH0 0000219c: RETURNDATACOPY 0000219d: RETURNDATASIZE 0000219e: PUSH0 0000219f: REVERT 000021a0: JUMPDEST 000021a1: POP 000021a2: POP 000021a3: POP 000021a4: POP 000021a5: PUSH1 0x40 000021a7: MLOAD 000021a8: RETURNDATASIZE 000021a9: PUSH1 0x1f 000021ab: NOT 000021ac: PUSH1 0x1f 000021ae: DUP3 000021af: ADD 000021b0: AND 000021b1: DUP3 000021b2: ADD 000021b3: DUP1 000021b4: PUSH1 0x40 000021b6: MSTORE 000021b7: POP 000021b8: DUP2 000021b9: ADD 000021ba: SWAP1 000021bb: PUSH2 0x21c4 000021be: SWAP2 000021bf: SWAP1 000021c0: PUSH2 0x51fa 000021c3: JUMP 000021c4: JUMPDEST 000021c5: PUSH1 0x40 000021c7: DUP1 000021c8: MLOAD 000021c9: PUSH3 0xffffff 000021cd: DUP1 000021ce: DUP6 000021cf: AND 000021d0: DUP3 000021d1: MSTORE 000021d2: DUP4 000021d3: AND 000021d4: PUSH1 0x20 000021d6: DUP3 000021d7: ADD 000021d8: MSTORE 000021d9: SWAP3 000021da: SWAP5 000021db: POP 000021dc: SWAP1 000021dd: SWAP3 000021de: POP 000021df: PUSH32 0x2b7ec2cd1f9292c7a9ae800c2479f6be4217beacb0c01ef2d7e4e84fced3d75b 00002200: SWAP2 00002201: ADD 00002202: PUSH1 0x40 00002204: MLOAD 00002205: DUP1 00002206: SWAP2 00002207: SUB 00002208: SWAP1 00002209: LOG1 0000220a: POP 0000220b: POP 0000220c: JUMP 0000220d: JUMPDEST 0000220e: PUSH0 0000220f: PUSH2 0x16ed 00002212: DUP3 00002213: PUSH1 0x01 00002215: PUSH2 0x27c6 00002218: JUMP 00002219: JUMPDEST 0000221a: PUSH2 0x2224 0000221d: PUSH2 0x10de 00002220: PUSH2 0x2892 00002223: JUMP 00002224: JUMPDEST 00002225: PUSH2 0x2233 00002228: DUP8 00002229: DUP8 0000222a: DUP8 0000222b: DUP8 0000222c: DUP8 0000222d: DUP8 0000222e: DUP8 0000222f: PUSH2 0x39b0 00002232: JUMP 00002233: JUMPDEST 00002234: POP 00002235: POP 00002236: POP 00002237: POP 00002238: POP 00002239: POP 0000223a: POP 0000223b: JUMP 0000223c: JUMPDEST 0000223d: PUSH0 0000223e: PUSH0 0000223f: PUSH0 00002240: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00002255: PUSH4 0x5937128b 0000225a: PUSH1 0x40 0000225c: MLOAD 0000225d: DUP1 0000225e: PUSH1 0x80 00002260: ADD 00002261: PUSH1 0x40 00002263: MSTORE 00002264: DUP1 00002265: DUP10 00002266: DUP2 00002267: MSTORE 00002268: PUSH1 0x20 0000226a: ADD 0000226b: PUSH0 0000226c: DUP2 0000226d: MSTORE 0000226e: PUSH1 0x20 00002270: ADD 00002271: DUP9 00002272: PUSH1 0x01 00002274: PUSH1 0x01 00002276: PUSH1 0xa0 00002278: SHL 00002279: SUB 0000227a: AND 0000227b: DUP2 0000227c: MSTORE 0000227d: PUSH1 0x20 0000227f: ADD 00002280: DUP8 00002281: PUSH1 0x01 00002283: PUSH1 0x01 00002285: PUSH1 0xa0 00002287: SHL 00002288: SUB 00002289: AND 0000228a: DUP2 0000228b: MSTORE 0000228c: POP 0000228d: PUSH1 0x40 0000228f: MLOAD 00002290: DUP3 00002291: PUSH4 0xffffffff 00002296: AND 00002297: PUSH1 0xe0 00002299: SHL 0000229a: DUP2 0000229b: MSTORE 0000229c: PUSH1 0x04 0000229e: ADD 0000229f: PUSH2 0x1997 000022a2: SWAP2 000022a3: SWAP1 000022a4: PUSH2 0x51ac 000022a7: JUMP 000022a8: JUMPDEST 000022a9: PUSH0 000022aa: PUSH2 0x10ed 000022ad: DUP3 000022ae: PUSH1 0x01 000022b0: PUSH2 0x27c6 000022b3: JUMP 000022b4: JUMPDEST 000022b5: PUSH0 000022b6: MLOAD 000022b7: PUSH1 0x20 000022b9: PUSH2 0x5708 000022bc: PUSH0 000022bd: CODECOPY 000022be: PUSH0 000022bf: MLOAD 000022c0: SWAP1 000022c1: PUSH0 000022c2: MSTORE 000022c3: PUSH1 0x02 000022c5: ADD 000022c6: SLOAD 000022c7: PUSH1 0x01 000022c9: PUSH1 0x01 000022cb: PUSH1 0xa0 000022cd: SHL 000022ce: SUB 000022cf: AND 000022d0: CALLER 000022d1: EQ 000022d2: PUSH2 0x22ee 000022d5: JUMPI 000022d6: PUSH1 0x40 000022d8: MLOAD 000022d9: PUSH4 0x80897acb 000022de: PUSH1 0xe0 000022e0: SHL 000022e1: DUP2 000022e2: MSTORE 000022e3: PUSH1 0x04 000022e5: ADD 000022e6: PUSH1 0x40 000022e8: MLOAD 000022e9: DUP1 000022ea: SWAP2 000022eb: SUB 000022ec: SWAP1 000022ed: REVERT 000022ee: JUMPDEST 000022ef: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1203 00002310: DUP1 00002311: SLOAD 00002312: PUSH1 0xff 00002314: NOT 00002315: AND 00002316: SWAP1 00002317: SSTORE 00002318: PUSH0 00002319: MLOAD 0000231a: PUSH1 0x20 0000231c: PUSH2 0x5708 0000231f: PUSH0 00002320: CODECOPY 00002321: PUSH0 00002322: MLOAD 00002323: SWAP1 00002324: PUSH0 00002325: MSTORE 00002326: PUSH2 0x2330 00002329: DUP5 0000232a: DUP5 0000232b: DUP5 0000232c: PUSH2 0x3b05 0000232f: JUMP 00002330: JUMPDEST 00002331: PUSH1 0x03 00002333: ADD 00002334: DUP1 00002335: SLOAD 00002336: PUSH1 0xff 00002338: NOT 00002339: AND 0000233a: PUSH1 0x01 0000233c: OR 0000233d: SWAP1 0000233e: SSTORE 0000233f: POP 00002340: POP 00002341: POP 00002342: JUMP 00002343: JUMPDEST 00002344: PUSH1 0x40 00002346: MLOAD 00002347: PUSH4 0x36766339 0000234c: PUSH1 0xe2 0000234e: SHL 0000234f: DUP2 00002350: MSTORE 00002351: PUSH1 0x01 00002353: PUSH1 0x01 00002355: PUSH1 0xa0 00002357: SHL 00002358: SUB 00002359: DUP4 0000235a: AND 0000235b: PUSH1 0x04 0000235d: DUP3 0000235e: ADD 0000235f: MSTORE 00002360: PUSH1 0x24 00002362: DUP2 00002363: ADD 00002364: DUP3 00002365: SWAP1 00002366: MSTORE 00002367: PUSH0 00002368: SWAP1 00002369: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9 0000237e: SWAP1 0000237f: PUSH4 0xd9d98ce4 00002384: SWAP1 00002385: PUSH1 0x44 00002387: ADD 00002388: PUSH1 0x20 0000238a: PUSH1 0x40 0000238c: MLOAD 0000238d: DUP1 0000238e: DUP4 0000238f: SUB 00002390: DUP2 00002391: DUP7 00002392: GAS 00002393: DELEGATECALL 00002394: ISZERO 00002395: DUP1 00002396: ISZERO 00002397: PUSH2 0x1252 0000239a: JUMPI 0000239b: RETURNDATASIZE 0000239c: PUSH0 0000239d: PUSH0 0000239e: RETURNDATACOPY 0000239f: RETURNDATASIZE 000023a0: PUSH0 000023a1: REVERT 000023a2: JUMPDEST 000023a3: PUSH0 000023a4: PUSH2 0x23b1 000023a7: PUSH0 000023a8: DUP7 000023a9: DUP7 000023aa: DUP7 000023ab: CALLER 000023ac: DUP8 000023ad: PUSH2 0x35fc 000023b0: JUMP 000023b1: JUMPDEST 000023b2: POP 000023b3: SWAP6 000023b4: SWAP5 000023b5: POP 000023b6: POP 000023b7: POP 000023b8: POP 000023b9: POP 000023ba: JUMP 000023bb: JUMPDEST 000023bc: PUSH0 000023bd: PUSH0 000023be: PUSH2 0x23c6 000023c1: DUP4 000023c2: PUSH2 0x18ad 000023c5: JUMP 000023c6: JUMPDEST 000023c7: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02 000023e8: SLOAD 000023e9: SWAP2 000023ea: POP 000023eb: SWAP2 000023ec: POP 000023ed: SWAP2 000023ee: POP 000023ef: SWAP2 000023f0: JUMP 000023f1: JUMPDEST 000023f2: PUSH1 0x01 000023f4: PUSH1 0x01 000023f6: PUSH1 0xa0 000023f8: SHL 000023f9: SUB 000023fa: SWAP2 000023fb: DUP3 000023fc: AND 000023fd: PUSH0 000023fe: SWAP1 000023ff: DUP2 00002400: MSTORE 00002401: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01 00002422: PUSH1 0x20 00002424: SWAP1 00002425: DUP2 00002426: MSTORE 00002427: PUSH1 0x40 00002429: DUP1 0000242a: DUP4 0000242b: KECCAK256 0000242c: SWAP4 0000242d: SWAP1 0000242e: SWAP5 0000242f: AND 00002430: DUP3 00002431: MSTORE 00002432: SWAP2 00002433: SWAP1 00002434: SWAP2 00002435: MSTORE 00002436: KECCAK256 00002437: SLOAD 00002438: SWAP1 00002439: JUMP 0000243a: JUMPDEST 0000243b: PUSH1 0x40 0000243d: MLOAD 0000243e: PUSH4 0xb0062139 00002443: PUSH1 0xe0 00002445: SHL 00002446: DUP2 00002447: MSTORE 00002448: PUSH0 00002449: PUSH1 0x04 0000244b: DUP3 0000244c: ADD 0000244d: DUP2 0000244e: SWAP1 0000244f: MSTORE 00002450: PUSH1 0x24 00002452: DUP3 00002453: ADD 00002454: DUP5 00002455: SWAP1 00002456: MSTORE 00002457: PUSH1 0x01 00002459: PUSH1 0x01 0000245b: PUSH1 0xa0 0000245d: SHL 0000245e: SUB 0000245f: DUP4 00002460: AND 00002461: PUSH1 0x44 00002463: DUP4 00002464: ADD 00002465: MSTORE 00002466: CALLER 00002467: PUSH1 0x64 00002469: DUP4 0000246a: ADD 0000246b: MSTORE 0000246c: SWAP1 0000246d: DUP2 0000246e: SWAP1 0000246f: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00002484: SWAP1 00002485: PUSH4 0xb0062139 0000248a: SWAP1 0000248b: PUSH1 0x84 0000248d: ADD 0000248e: PUSH1 0x40 00002490: DUP1 00002491: MLOAD 00002492: DUP1 00002493: DUP4 00002494: SUB 00002495: DUP2 00002496: DUP7 00002497: GAS 00002498: DELEGATECALL 00002499: ISZERO 0000249a: DUP1 0000249b: ISZERO 0000249c: PUSH2 0x24a7 0000249f: JUMPI 000024a0: RETURNDATASIZE 000024a1: PUSH0 000024a2: PUSH0 000024a3: RETURNDATACOPY 000024a4: RETURNDATASIZE 000024a5: PUSH0 000024a6: REVERT 000024a7: JUMPDEST 000024a8: POP 000024a9: POP 000024aa: POP 000024ab: POP 000024ac: PUSH1 0x40 000024ae: MLOAD 000024af: RETURNDATASIZE 000024b0: PUSH1 0x1f 000024b2: NOT 000024b3: PUSH1 0x1f 000024b5: DUP3 000024b6: ADD 000024b7: AND 000024b8: DUP3 000024b9: ADD 000024ba: DUP1 000024bb: PUSH1 0x40 000024bd: MSTORE 000024be: POP 000024bf: DUP2 000024c0: ADD 000024c1: SWAP1 000024c2: PUSH2 0x24cb 000024c5: SWAP2 000024c6: SWAP1 000024c7: PUSH2 0x5107 000024ca: JUMP 000024cb: JUMPDEST 000024cc: PUSH1 0x40 000024ce: DUP1 000024cf: MLOAD 000024d0: DUP4 000024d1: DUP2 000024d2: MSTORE 000024d3: PUSH1 0x20 000024d5: DUP2 000024d6: ADD 000024d7: DUP4 000024d8: SWAP1 000024d9: MSTORE 000024da: SWAP3 000024db: SWAP5 000024dc: POP 000024dd: SWAP1 000024de: SWAP3 000024df: POP 000024e0: PUSH1 0x01 000024e2: PUSH1 0x01 000024e4: PUSH1 0xa0 000024e6: SHL 000024e7: SUB 000024e8: DUP6 000024e9: AND 000024ea: SWAP2 000024eb: CALLER 000024ec: SWAP2 000024ed: PUSH32 0xe4a1ae657f49cb1fb1c7d3a94ae6093565c4c8c0e03de488f79c377c3c3a24e0 0000250e: SWAP2 0000250f: ADD 00002510: PUSH2 0x1f76 00002513: JUMP 00002514: JUMPDEST 00002515: PUSH0 00002516: PUSH0 00002517: PUSH0 00002518: PUSH2 0x2522 0000251b: PUSH2 0x18fe 0000251e: PUSH2 0x30f1 00002521: JUMP 00002522: JUMPDEST 00002523: SWAP2 00002524: POP 00002525: SWAP2 00002526: POP 00002527: PUSH2 0x10a7 0000252a: DUP5 0000252b: DUP4 0000252c: DUP4 0000252d: PUSH1 0x01 0000252f: PUSH1 0x02 00002531: PUSH2 0x3790 00002534: JUMP 00002535: JUMPDEST 00002536: PUSH0 00002537: PUSH2 0x1028 0000253a: PUSH2 0x3b62 0000253d: JUMP 0000253e: JUMPDEST 0000253f: PUSH0 00002540: PUSH2 0x10bb 00002543: DUP3 00002544: PUSH1 0x01 00002546: PUSH2 0x2eaa 00002549: JUMP 0000254a: JUMPDEST 0000254b: PUSH2 0x2552 0000254e: PUSH2 0x2caf 00002551: JUMP 00002552: JUMPDEST 00002553: PUSH1 0x01 00002555: PUSH1 0x01 00002557: PUSH1 0xa0 00002559: SHL 0000255a: SUB 0000255b: AND 0000255c: CALLER 0000255d: PUSH1 0x01 0000255f: PUSH1 0x01 00002561: PUSH1 0xa0 00002563: SHL 00002564: SUB 00002565: AND 00002566: EQ 00002567: PUSH2 0x2583 0000256a: JUMPI 0000256b: PUSH1 0x40 0000256d: MLOAD 0000256e: PUSH4 0x10528c6d 00002573: PUSH1 0xe1 00002575: SHL 00002576: DUP2 00002577: MSTORE 00002578: PUSH1 0x04 0000257a: ADD 0000257b: PUSH1 0x40 0000257d: MLOAD 0000257e: DUP1 0000257f: SWAP2 00002580: SUB 00002581: SWAP1 00002582: REVERT 00002583: JUMPDEST 00002584: DUP2 00002585: PUSH1 0x01 00002587: PUSH1 0x01 00002589: PUSH1 0xa0 0000258b: SHL 0000258c: SUB 0000258d: AND 0000258e: DUP4 0000258f: PUSH1 0x01 00002591: PUSH1 0x01 00002593: PUSH1 0xa0 00002595: SHL 00002596: SUB 00002597: AND 00002598: EQ 00002599: PUSH2 0x25a7 0000259c: JUMPI 0000259d: PUSH2 0x25a7 000025a0: DUP4 000025a1: DUP4 000025a2: DUP4 000025a3: PUSH2 0x3b81 000025a6: JUMP 000025a7: JUMPDEST 000025a8: PUSH2 0x2147 000025ab: DUP4 000025ac: DUP3 000025ad: PUSH2 0x3bde 000025b0: JUMP 000025b1: JUMPDEST 000025b2: PUSH0 000025b3: PUSH0 000025b4: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 000025c9: PUSH4 0x5ca5797b 000025ce: PUSH1 0x40 000025d0: MLOAD 000025d1: DUP1 000025d2: PUSH1 0x60 000025d4: ADD 000025d5: PUSH1 0x40 000025d7: MSTORE 000025d8: DUP1 000025d9: DUP9 000025da: DUP2 000025db: MSTORE 000025dc: PUSH1 0x20 000025de: ADD 000025df: DUP8 000025e0: PUSH1 0x01 000025e2: PUSH1 0x01 000025e4: PUSH1 0xa0 000025e6: SHL 000025e7: SUB 000025e8: AND 000025e9: DUP2 000025ea: MSTORE 000025eb: PUSH1 0x20 000025ed: ADD 000025ee: DUP7 000025ef: PUSH1 0x01 000025f1: DUP2 000025f2: GT 000025f3: ISZERO 000025f4: PUSH2 0x25ff 000025f7: JUMPI 000025f8: PUSH2 0x25ff 000025fb: PUSH2 0x51e6 000025fe: JUMP 000025ff: JUMPDEST 00002600: DUP2 00002601: MSTORE 00002602: POP 00002603: PUSH1 0x40 00002605: MLOAD 00002606: DUP3 00002607: PUSH4 0xffffffff 0000260c: AND 0000260d: PUSH1 0xe0 0000260f: SHL 00002610: DUP2 00002611: MSTORE 00002612: PUSH1 0x04 00002614: ADD 00002615: PUSH2 0x261e 00002618: SWAP2 00002619: SWAP1 0000261a: PUSH2 0x523b 0000261d: JUMP 0000261e: JUMPDEST 0000261f: PUSH1 0x40 00002621: DUP1 00002622: MLOAD 00002623: DUP1 00002624: DUP4 00002625: SUB 00002626: DUP2 00002627: DUP7 00002628: GAS 00002629: DELEGATECALL 0000262a: ISZERO 0000262b: DUP1 0000262c: ISZERO 0000262d: PUSH2 0x2638 00002630: JUMPI 00002631: RETURNDATASIZE 00002632: PUSH0 00002633: PUSH0 00002634: RETURNDATACOPY 00002635: RETURNDATASIZE 00002636: PUSH0 00002637: REVERT 00002638: JUMPDEST 00002639: POP 0000263a: POP 0000263b: POP 0000263c: POP 0000263d: PUSH1 0x40 0000263f: MLOAD 00002640: RETURNDATASIZE 00002641: PUSH1 0x1f 00002643: NOT 00002644: PUSH1 0x1f 00002646: DUP3 00002647: ADD 00002648: AND 00002649: DUP3 0000264a: ADD 0000264b: DUP1 0000264c: PUSH1 0x40 0000264e: MSTORE 0000264f: POP 00002650: DUP2 00002651: ADD 00002652: SWAP1 00002653: PUSH2 0x265c 00002656: SWAP2 00002657: SWAP1 00002658: PUSH2 0x5107 0000265b: JUMP 0000265c: JUMPDEST 0000265d: SWAP1 0000265e: SWAP3 0000265f: POP 00002660: SWAP1 00002661: POP 00002662: PUSH1 0x01 00002664: DUP4 00002665: PUSH1 0x01 00002667: DUP2 00002668: GT 00002669: ISZERO 0000266a: PUSH2 0x2675 0000266d: JUMPI 0000266e: PUSH2 0x2675 00002671: PUSH2 0x51e6 00002674: JUMP 00002675: JUMPDEST 00002676: SUB 00002677: PUSH2 0x270d 0000267a: JUMPI 0000267b: PUSH1 0x40 0000267d: DUP1 0000267e: MLOAD 0000267f: DUP4 00002680: DUP2 00002681: MSTORE 00002682: PUSH1 0x20 00002684: DUP2 00002685: ADD 00002686: DUP8 00002687: SWAP1 00002688: MSTORE 00002689: PUSH1 0x01 0000268b: PUSH1 0x01 0000268d: PUSH1 0xa0 0000268f: SHL 00002690: SUB 00002691: DUP7 00002692: AND 00002693: SWAP2 00002694: DUP3 00002695: SWAP2 00002696: CALLER 00002697: SWAP2 00002698: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db 000026b9: SWAP2 000026ba: ADD 000026bb: PUSH1 0x40 000026bd: MLOAD 000026be: DUP1 000026bf: SWAP2 000026c0: SUB 000026c1: SWAP1 000026c2: LOG4 000026c3: PUSH1 0x40 000026c5: DUP1 000026c6: MLOAD 000026c7: DUP4 000026c8: DUP2 000026c9: MSTORE 000026ca: PUSH1 0x20 000026cc: DUP2 000026cd: ADD 000026ce: DUP4 000026cf: SWAP1 000026d0: MSTORE 000026d1: PUSH1 0x01 000026d3: PUSH1 0x01 000026d5: PUSH1 0xa0 000026d7: SHL 000026d8: SUB 000026d9: DUP7 000026da: AND 000026db: SWAP2 000026dc: CALLER 000026dd: SWAP2 000026de: PUSH32 0x1ad348f5de3e19e23d88e34248ceb6ab09804a35a3abc0e7758045b7b9036acd 000026ff: SWAP2 00002700: ADD 00002701: PUSH1 0x40 00002703: MLOAD 00002704: DUP1 00002705: SWAP2 00002706: SUB 00002707: SWAP1 00002708: LOG3 00002709: PUSH2 0x1116 0000270c: JUMP 0000270d: JUMPDEST 0000270e: PUSH1 0x40 00002710: DUP1 00002711: MLOAD 00002712: DUP4 00002713: DUP2 00002714: MSTORE 00002715: PUSH1 0x20 00002717: DUP2 00002718: ADD 00002719: DUP8 0000271a: SWAP1 0000271b: MSTORE 0000271c: PUSH1 0x01 0000271e: PUSH1 0x01 00002720: PUSH1 0xa0 00002722: SHL 00002723: SUB 00002724: DUP7 00002725: AND 00002726: SWAP2 00002727: DUP3 00002728: SWAP2 00002729: CALLER 0000272a: SWAP2 0000272b: PUSH32 0x2dac01ea07cfa812db5881eaad96ba201c018c042b8f9ea7278cdf6f29e65f24 0000274c: SWAP2 0000274d: ADD 0000274e: PUSH1 0x40 00002750: MLOAD 00002751: DUP1 00002752: SWAP2 00002753: SUB 00002754: SWAP1 00002755: LOG4 00002756: PUSH1 0x40 00002758: DUP1 00002759: MLOAD 0000275a: DUP4 0000275b: DUP2 0000275c: MSTORE 0000275d: PUSH1 0x20 0000275f: DUP2 00002760: ADD 00002761: DUP4 00002762: SWAP1 00002763: MSTORE 00002764: PUSH1 0x01 00002766: PUSH1 0x01 00002768: PUSH1 0xa0 0000276a: SHL 0000276b: SUB 0000276c: DUP7 0000276d: AND 0000276e: SWAP2 0000276f: CALLER 00002770: SWAP2 00002771: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00002792: SWAP2 00002793: ADD 00002794: PUSH1 0x40 00002796: MLOAD 00002797: DUP1 00002798: SWAP2 00002799: SUB 0000279a: SWAP1 0000279b: LOG3 0000279c: POP 0000279d: SWAP4 0000279e: SWAP3 0000279f: POP 000027a0: POP 000027a1: POP 000027a2: JUMP 000027a3: JUMPDEST 000027a4: PUSH0 000027a5: PUSH0 000027a6: PUSH2 0x1452 000027a9: PUSH2 0x3c12 000027ac: JUMP 000027ad: JUMPDEST 000027ae: PUSH0 000027af: PUSH2 0x27c0 000027b2: PUSH2 0x27b9 000027b5: PUSH2 0x30f1 000027b8: JUMP 000027b9: JUMPDEST 000027ba: PUSH1 0x01 000027bc: PUSH2 0x31f3 000027bf: JUMP 000027c0: JUMPDEST 000027c1: POP 000027c2: SWAP2 000027c3: SWAP1 000027c4: POP 000027c5: JUMP 000027c6: JUMPDEST 000027c7: PUSH0 000027c8: PUSH0 000027c9: PUSH20 0x664f19612d6c2807e129458885d8ab5f29f31fb9 000027de: PUSH4 0x67df3cb4 000027e3: DUP6 000027e4: DUP6 000027e5: PUSH1 0x40 000027e7: MLOAD 000027e8: DUP4 000027e9: PUSH4 0xffffffff 000027ee: AND 000027ef: PUSH1 0xe0 000027f1: SHL 000027f2: DUP2 000027f3: MSTORE 000027f4: PUSH1 0x04 000027f6: ADD 000027f7: PUSH2 0x2801 000027fa: SWAP3 000027fb: SWAP2 000027fc: SWAP1 000027fd: PUSH2 0x5269 00002800: JUMP 00002801: JUMPDEST 00002802: PUSH1 0x40 00002804: DUP1 00002805: MLOAD 00002806: DUP1 00002807: DUP4 00002808: SUB 00002809: DUP2 0000280a: DUP7 0000280b: GAS 0000280c: DELEGATECALL 0000280d: ISZERO 0000280e: DUP1 0000280f: ISZERO 00002810: PUSH2 0x281b 00002813: JUMPI 00002814: RETURNDATASIZE 00002815: PUSH0 00002816: PUSH0 00002817: RETURNDATACOPY 00002818: RETURNDATASIZE 00002819: PUSH0 0000281a: REVERT 0000281b: JUMPDEST 0000281c: POP 0000281d: POP 0000281e: POP 0000281f: POP 00002820: PUSH1 0x40 00002822: MLOAD 00002823: RETURNDATASIZE 00002824: PUSH1 0x1f 00002826: NOT 00002827: PUSH1 0x1f 00002829: DUP3 0000282a: ADD 0000282b: AND 0000282c: DUP3 0000282d: ADD 0000282e: DUP1 0000282f: PUSH1 0x40 00002831: MSTORE 00002832: POP 00002833: DUP2 00002834: ADD 00002835: SWAP1 00002836: PUSH2 0x283f 00002839: SWAP2 0000283a: SWAP1 0000283b: PUSH2 0x5107 0000283e: JUMP 0000283f: JUMPDEST 00002840: SWAP2 00002841: POP 00002842: SWAP2 00002843: POP 00002844: JUMPDEST 00002845: SWAP3 00002846: POP 00002847: SWAP3 00002848: SWAP1 00002849: POP 0000284a: JUMP 0000284b: JUMPDEST 0000284c: PUSH0 0000284d: PUSH0 0000284e: PUSH0 0000284f: PUSH2 0x285f 00002852: PUSH2 0x2859 00002855: PUSH2 0x30f1 00002858: JUMP 00002859: JUMPDEST 0000285a: DUP6 0000285b: PUSH2 0x31f3 0000285e: JUMP 0000285f: JUMPDEST 00002860: SWAP1 00002861: SWAP3 00002862: POP 00002863: SWAP1 00002864: POP 00002865: PUSH2 0x17b0 00002868: DUP6 00002869: DUP4 0000286a: DUP4 0000286b: PUSH1 0x02 0000286d: DUP9 0000286e: PUSH1 0x02 00002870: DUP2 00002871: GT 00002872: ISZERO 00002873: PUSH2 0x287e 00002876: JUMPI 00002877: PUSH2 0x287e 0000287a: PUSH2 0x51e6 0000287d: JUMP 0000287e: JUMPDEST 0000287f: EQ 00002880: PUSH2 0x288a 00002883: JUMPI 00002884: PUSH1 0x01 00002886: PUSH2 0x288c 00002889: JUMP 0000288a: JUMPDEST 0000288b: PUSH0 0000288c: JUMPDEST 0000288d: DUP9 0000288e: PUSH2 0x3790 00002891: JUMP 00002892: JUMPDEST 00002893: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1201 000028b4: SLOAD 000028b5: PUSH1 0x01 000028b7: PUSH1 0x01 000028b9: PUSH1 0xa0 000028bb: SHL 000028bc: SUB 000028bd: AND 000028be: SWAP1 000028bf: JUMP 000028c0: JUMPDEST 000028c1: PUSH1 0x40 000028c3: MLOAD 000028c4: PUSH4 0xe48a5f7b 000028c9: PUSH1 0xe0 000028cb: SHL 000028cc: DUP2 000028cd: MSTORE 000028ce: ADDRESS 000028cf: PUSH1 0x04 000028d1: DUP3 000028d2: ADD 000028d3: MSTORE 000028d4: PUSH0 000028d5: SWAP1 000028d6: DUP2 000028d7: SWAP1 000028d8: PUSH1 0x01 000028da: PUSH1 0x01 000028dc: PUSH1 0xa0 000028de: SHL 000028df: SUB 000028e0: DUP5 000028e1: AND 000028e2: SWAP1 000028e3: PUSH4 0xe48a5f7b 000028e8: SWAP1 000028e9: PUSH1 0x24 000028eb: ADD 000028ec: PUSH2 0x0220 000028ef: PUSH1 0x40 000028f1: MLOAD 000028f2: DUP1 000028f3: DUP4 000028f4: SUB 000028f5: DUP2 000028f6: DUP7 000028f7: GAS 000028f8: STATICCALL 000028f9: ISZERO 000028fa: DUP1 000028fb: ISZERO 000028fc: PUSH2 0x2907 000028ff: JUMPI 00002900: RETURNDATASIZE 00002901: PUSH0 00002902: PUSH0 00002903: RETURNDATACOPY 00002904: RETURNDATASIZE 00002905: PUSH0 00002906: REVERT 00002907: JUMPDEST 00002908: POP 00002909: POP 0000290a: POP 0000290b: POP 0000290c: PUSH1 0x40 0000290e: MLOAD 0000290f: RETURNDATASIZE 00002910: PUSH1 0x1f 00002912: NOT 00002913: PUSH1 0x1f 00002915: DUP3 00002916: ADD 00002917: AND 00002918: DUP3 00002919: ADD 0000291a: DUP1 0000291b: PUSH1 0x40 0000291d: MSTORE 0000291e: POP 0000291f: DUP2 00002920: ADD 00002921: SWAP1 00002922: PUSH2 0x292b 00002925: SWAP2 00002926: SWAP1 00002927: PUSH2 0x5286 0000292a: JUMP 0000292b: JUMPDEST 0000292c: SWAP1 0000292d: POP 0000292e: PUSH2 0x2944 00002931: DUP2 00002932: PUSH2 0x0120 00002935: ADD 00002936: MLOAD 00002937: DUP3 00002938: PUSH0 00002939: ADD 0000293a: MLOAD 0000293b: DUP4 0000293c: PUSH1 0x20 0000293e: ADD 0000293f: MLOAD 00002940: PUSH2 0x3c52 00002943: JUMP 00002944: JUMPDEST 00002945: POP 00002946: SWAP1 00002947: SWAP5 00002948: SWAP4 00002949: POP 0000294a: POP 0000294b: POP 0000294c: POP 0000294d: JUMP 0000294e: JUMPDEST 0000294f: DUP1 00002950: PUSH1 0x01 00002952: PUSH1 0x01 00002954: PUSH1 0xa0 00002956: SHL 00002957: SUB 00002958: AND 00002959: PUSH4 0xd2c725e0 0000295e: PUSH1 0x40 00002960: MLOAD 00002961: DUP2 00002962: PUSH4 0xffffffff 00002967: AND 00002968: PUSH1 0xe0 0000296a: SHL 0000296b: DUP2 0000296c: MSTORE 0000296d: PUSH1 0x04 0000296f: ADD 00002970: PUSH1 0x20 00002972: PUSH1 0x40 00002974: MLOAD 00002975: DUP1 00002976: DUP4 00002977: SUB 00002978: DUP2 00002979: DUP7 0000297a: GAS 0000297b: STATICCALL 0000297c: ISZERO 0000297d: DUP1 0000297e: ISZERO 0000297f: PUSH2 0x298a 00002982: JUMPI 00002983: RETURNDATASIZE 00002984: PUSH0 00002985: PUSH0 00002986: RETURNDATACOPY 00002987: RETURNDATASIZE 00002988: PUSH0 00002989: REVERT 0000298a: JUMPDEST 0000298b: POP 0000298c: POP 0000298d: POP 0000298e: POP 0000298f: PUSH1 0x40 00002991: MLOAD 00002992: RETURNDATASIZE 00002993: PUSH1 0x1f 00002995: NOT 00002996: PUSH1 0x1f 00002998: DUP3 00002999: ADD 0000299a: AND 0000299b: DUP3 0000299c: ADD 0000299d: DUP1 0000299e: PUSH1 0x40 000029a0: MSTORE 000029a1: POP 000029a2: DUP2 000029a3: ADD 000029a4: SWAP1 000029a5: PUSH2 0x29ae 000029a8: SWAP2 000029a9: SWAP1 000029aa: PUSH2 0x50d3 000029ad: JUMP 000029ae: JUMPDEST 000029af: ISZERO 000029b0: PUSH2 0x29cc 000029b3: JUMPI 000029b4: PUSH1 0x40 000029b6: MLOAD 000029b7: PUSH4 0xe17fbf89 000029bc: PUSH1 0xe0 000029be: SHL 000029bf: DUP2 000029c0: MSTORE 000029c1: PUSH1 0x04 000029c3: ADD 000029c4: PUSH1 0x40 000029c6: MLOAD 000029c7: DUP1 000029c8: SWAP2 000029c9: SUB 000029ca: SWAP1 000029cb: REVERT 000029cc: JUMPDEST 000029cd: POP 000029ce: JUMP 000029cf: JUMPDEST 000029d0: PUSH0 000029d1: CALLER 000029d2: PUSH2 0x29dc 000029d5: DUP2 000029d6: DUP6 000029d7: DUP6 000029d8: PUSH2 0x3c84 000029db: JUMP 000029dc: JUMPDEST 000029dd: POP 000029de: PUSH1 0x01 000029e0: SWAP4 000029e1: SWAP3 000029e2: POP 000029e3: POP 000029e4: POP 000029e5: JUMP 000029e6: JUMPDEST 000029e7: PUSH0 000029e8: PUSH0 000029e9: DUP3 000029ea: PUSH1 0x01 000029ec: DUP2 000029ed: GT 000029ee: ISZERO 000029ef: PUSH2 0x29fa 000029f2: JUMPI 000029f3: PUSH2 0x29fa 000029f6: PUSH2 0x51e6 000029f9: JUMP 000029fa: JUMPDEST 000029fb: PUSH1 0x02 000029fd: DUP2 000029fe: GT 000029ff: ISZERO 00002a00: PUSH2 0x2a0b 00002a03: JUMPI 00002a04: PUSH2 0x2a0b 00002a07: PUSH2 0x51e6 00002a0a: JUMP 00002a0b: JUMPDEST 00002a0c: SWAP1 00002a0d: POP 00002a0e: PUSH0 00002a0f: PUSH0 00002a10: PUSH2 0x2a20 00002a13: PUSH2 0x2a1a 00002a16: PUSH2 0x30f1 00002a19: JUMP 00002a1a: JUMPDEST 00002a1b: DUP5 00002a1c: PUSH2 0x31f3 00002a1f: JUMP 00002a20: JUMPDEST 00002a21: SWAP2 00002a22: POP 00002a23: SWAP2 00002a24: POP 00002a25: PUSH2 0x2005 00002a28: DUP7 00002a29: DUP4 00002a2a: DUP4 00002a2b: PUSH1 0x01 00002a2d: DUP8 00002a2e: PUSH2 0x33e2 00002a31: JUMP 00002a32: JUMPDEST 00002a33: PUSH0 00002a34: PUSH0 00002a35: DUP3 00002a36: PUSH1 0x01 00002a38: DUP2 00002a39: GT 00002a3a: ISZERO 00002a3b: PUSH2 0x2a46 00002a3e: JUMPI 00002a3f: PUSH2 0x2a46 00002a42: PUSH2 0x51e6 00002a45: JUMP 00002a46: JUMPDEST 00002a47: PUSH1 0x02 00002a49: DUP2 00002a4a: GT 00002a4b: ISZERO 00002a4c: PUSH2 0x2a57 00002a4f: JUMPI 00002a50: PUSH2 0x2a57 00002a53: PUSH2 0x51e6 00002a56: JUMP 00002a57: JUMPDEST 00002a58: SWAP1 00002a59: POP 00002a5a: PUSH0 00002a5b: PUSH0 00002a5c: PUSH2 0x2a66 00002a5f: PUSH2 0x2a1a 00002a62: PUSH2 0x30f1 00002a65: JUMP 00002a66: JUMPDEST 00002a67: SWAP2 00002a68: POP 00002a69: SWAP2 00002a6a: POP 00002a6b: PUSH2 0x2005 00002a6e: DUP7 00002a6f: DUP4 00002a70: DUP4 00002a71: PUSH1 0x01 00002a73: DUP8 00002a74: PUSH2 0x3790 00002a77: JUMP 00002a78: JUMPDEST 00002a79: PUSH0 00002a7a: PUSH2 0x2a81 00002a7d: PUSH2 0x2892 00002a80: JUMP 00002a81: JUMPDEST 00002a82: SWAP1 00002a83: POP 00002a84: DUP1 00002a85: PUSH1 0x01 00002a87: PUSH1 0x01 00002a89: PUSH1 0xa0 00002a8b: SHL 00002a8c: SUB 00002a8d: AND 00002a8e: PUSH4 0x9dd41330 00002a93: PUSH1 0x40 00002a95: MLOAD 00002a96: DUP2 00002a97: PUSH4 0xffffffff 00002a9c: AND 00002a9d: PUSH1 0xe0 00002a9f: SHL 00002aa0: DUP2 00002aa1: MSTORE 00002aa2: PUSH1 0x04 00002aa4: ADD 00002aa5: PUSH0 00002aa6: PUSH1 0x40 00002aa8: MLOAD 00002aa9: DUP1 00002aaa: DUP4 00002aab: SUB 00002aac: DUP2 00002aad: PUSH0 00002aae: DUP8 00002aaf: DUP1 00002ab0: EXTCODESIZE 00002ab1: ISZERO 00002ab2: DUP1 00002ab3: ISZERO 00002ab4: PUSH2 0x2abb 00002ab7: JUMPI 00002ab8: PUSH0 00002ab9: PUSH0 00002aba: REVERT 00002abb: JUMPDEST 00002abc: POP 00002abd: GAS 00002abe: CALL 00002abf: ISZERO 00002ac0: DUP1 00002ac1: ISZERO 00002ac2: PUSH2 0x2acd 00002ac5: JUMPI 00002ac6: RETURNDATASIZE 00002ac7: PUSH0 00002ac8: PUSH0 00002ac9: RETURNDATACOPY 00002aca: RETURNDATASIZE 00002acb: PUSH0 00002acc: REVERT 00002acd: JUMPDEST 00002ace: POP 00002acf: POP 00002ad0: POP 00002ad1: POP 00002ad2: SWAP1 00002ad3: JUMP 00002ad4: JUMPDEST 00002ad5: PUSH0 00002ad6: CALLER 00002ad7: PUSH2 0x2ae1 00002ada: DUP6 00002adb: DUP3 00002adc: DUP6 00002add: PUSH2 0x3b81 00002ae0: JUMP 00002ae1: JUMPDEST 00002ae2: PUSH2 0x2aec 00002ae5: DUP6 00002ae6: DUP6 00002ae7: DUP6 00002ae8: PUSH2 0x3b05 00002aeb: JUMP 00002aec: JUMPDEST 00002aed: POP 00002aee: PUSH1 0x01 00002af0: SWAP5 00002af1: SWAP4 00002af2: POP 00002af3: POP 00002af4: POP 00002af5: POP 00002af6: JUMP 00002af7: JUMPDEST 00002af8: PUSH0 00002af9: PUSH2 0x1028 00002afc: PUSH2 0x3c91 00002aff: JUMP 00002b00: JUMPDEST 00002b01: PUSH1 0x01 00002b03: PUSH0 00002b04: SWAP1 00002b05: DUP2 00002b06: MSTORE 00002b07: PUSH0 00002b08: MLOAD 00002b09: PUSH1 0x20 00002b0b: PUSH2 0x5728 00002b0e: PUSH0 00002b0f: CODECOPY 00002b10: PUSH0 00002b11: MLOAD 00002b12: SWAP1 00002b13: PUSH0 00002b14: MSTORE 00002b15: PUSH1 0x20 00002b17: DUP2 00002b18: SWAP1 00002b19: MSTORE 00002b1a: PUSH0 00002b1b: MLOAD 00002b1c: PUSH1 0x20 00002b1e: PUSH2 0x5788 00002b21: PUSH0 00002b22: CODECOPY 00002b23: PUSH0 00002b24: MLOAD 00002b25: SWAP1 00002b26: PUSH0 00002b27: MSTORE 00002b28: SLOAD 00002b29: SWAP2 00002b2a: SWAP1 00002b2b: PUSH0 00002b2c: MLOAD 00002b2d: PUSH1 0x20 00002b2f: PUSH2 0x5748 00002b32: PUSH0 00002b33: CODECOPY 00002b34: PUSH0 00002b35: MLOAD 00002b36: SWAP1 00002b37: PUSH0 00002b38: MSTORE 00002b39: SWAP1 00002b3a: DUP3 00002b3b: PUSH1 0x02 00002b3d: JUMPDEST 00002b3e: PUSH1 0x02 00002b40: DUP2 00002b41: GT 00002b42: ISZERO 00002b43: PUSH2 0x2b4e 00002b46: JUMPI 00002b47: PUSH2 0x2b4e 00002b4a: PUSH2 0x51e6 00002b4d: JUMP 00002b4e: JUMPDEST 00002b4f: DUP2 00002b50: MSTORE 00002b51: PUSH1 0x20 00002b53: ADD 00002b54: SWAP1 00002b55: DUP2 00002b56: MSTORE 00002b57: PUSH1 0x20 00002b59: ADD 00002b5a: PUSH0 00002b5b: KECCAK256 00002b5c: SLOAD 00002b5d: SWAP2 00002b5e: POP 00002b5f: POP 00002b60: SWAP1 00002b61: SWAP2 00002b62: JUMP 00002b63: JUMPDEST 00002b64: PUSH0 00002b65: PUSH1 0x60 00002b67: PUSH0 00002b68: MLOAD 00002b69: PUSH1 0x20 00002b6b: PUSH2 0x5708 00002b6e: PUSH0 00002b6f: CODECOPY 00002b70: PUSH0 00002b71: MLOAD 00002b72: SWAP1 00002b73: PUSH0 00002b74: MSTORE 00002b75: PUSH1 0x02 00002b77: ADD 00002b78: SLOAD 00002b79: PUSH1 0x01 00002b7b: PUSH1 0x01 00002b7d: PUSH1 0xa0 00002b7f: SHL 00002b80: SUB 00002b81: AND 00002b82: CALLER 00002b83: EQ 00002b84: PUSH2 0x2ba0 00002b87: JUMPI 00002b88: PUSH1 0x40 00002b8a: MLOAD 00002b8b: PUSH4 0x80897acb 00002b90: PUSH1 0xe0 00002b92: SHL 00002b93: DUP2 00002b94: MSTORE 00002b95: PUSH1 0x04 00002b97: ADD 00002b98: PUSH1 0x40 00002b9a: MLOAD 00002b9b: DUP1 00002b9c: SWAP2 00002b9d: SUB 00002b9e: SWAP1 00002b9f: REVERT 00002ba0: JUMPDEST 00002ba1: PUSH1 0x01 00002ba3: DUP6 00002ba4: PUSH1 0x01 00002ba6: DUP2 00002ba7: GT 00002ba8: ISZERO 00002ba9: PUSH2 0x2bb4 00002bac: JUMPI 00002bad: PUSH2 0x2bb4 00002bb0: PUSH2 0x51e6 00002bb3: JUMP 00002bb4: JUMPDEST 00002bb5: SUB 00002bb6: PUSH2 0x2c1b 00002bb9: JUMPI 00002bba: DUP7 00002bbb: PUSH1 0x01 00002bbd: PUSH1 0x01 00002bbf: PUSH1 0xa0 00002bc1: SHL 00002bc2: SUB 00002bc3: AND 00002bc4: DUP5 00002bc5: DUP5 00002bc6: PUSH1 0x40 00002bc8: MLOAD 00002bc9: PUSH2 0x2bd3 00002bcc: SWAP3 00002bcd: SWAP2 00002bce: SWAP1 00002bcf: PUSH2 0x539f 00002bd2: JUMP 00002bd3: JUMPDEST 00002bd4: PUSH0 00002bd5: PUSH1 0x40 00002bd7: MLOAD 00002bd8: DUP1 00002bd9: DUP4 00002bda: SUB 00002bdb: DUP2 00002bdc: DUP6 00002bdd: GAS 00002bde: DELEGATECALL 00002bdf: SWAP2 00002be0: POP 00002be1: POP 00002be2: RETURNDATASIZE 00002be3: DUP1 00002be4: PUSH0 00002be5: DUP2 00002be6: EQ 00002be7: PUSH2 0x2c0b 00002bea: JUMPI 00002beb: PUSH1 0x40 00002bed: MLOAD 00002bee: SWAP2 00002bef: POP 00002bf0: PUSH1 0x1f 00002bf2: NOT 00002bf3: PUSH1 0x3f 00002bf5: RETURNDATASIZE 00002bf6: ADD 00002bf7: AND 00002bf8: DUP3 00002bf9: ADD 00002bfa: PUSH1 0x40 00002bfc: MSTORE 00002bfd: RETURNDATASIZE 00002bfe: DUP3 00002bff: MSTORE 00002c00: RETURNDATASIZE 00002c01: PUSH0 00002c02: PUSH1 0x20 00002c04: DUP5 00002c05: ADD 00002c06: RETURNDATACOPY 00002c07: PUSH2 0x2c10 00002c0a: JUMP 00002c0b: JUMPDEST 00002c0c: PUSH1 0x60 00002c0e: SWAP2 00002c0f: POP 00002c10: JUMPDEST 00002c11: POP 00002c12: SWAP1 00002c13: SWAP3 00002c14: POP 00002c15: SWAP1 00002c16: POP 00002c17: PUSH2 0x2c7c 00002c1a: JUMP 00002c1b: JUMPDEST 00002c1c: DUP7 00002c1d: PUSH1 0x01 00002c1f: PUSH1 0x01 00002c21: PUSH1 0xa0 00002c23: SHL 00002c24: SUB 00002c25: AND 00002c26: DUP7 00002c27: DUP6 00002c28: DUP6 00002c29: PUSH1 0x40 00002c2b: MLOAD 00002c2c: PUSH2 0x2c36 00002c2f: SWAP3 00002c30: SWAP2 00002c31: SWAP1 00002c32: PUSH2 0x539f 00002c35: JUMP 00002c36: JUMPDEST 00002c37: PUSH0 00002c38: PUSH1 0x40 00002c3a: MLOAD 00002c3b: DUP1 00002c3c: DUP4 00002c3d: SUB 00002c3e: DUP2 00002c3f: DUP6 00002c40: DUP8 00002c41: GAS 00002c42: CALL 00002c43: SWAP3 00002c44: POP 00002c45: POP 00002c46: POP 00002c47: RETURNDATASIZE 00002c48: DUP1 00002c49: PUSH0 00002c4a: DUP2 00002c4b: EQ 00002c4c: PUSH2 0x2c70 00002c4f: JUMPI 00002c50: PUSH1 0x40 00002c52: MLOAD 00002c53: SWAP2 00002c54: POP 00002c55: PUSH1 0x1f 00002c57: NOT 00002c58: PUSH1 0x3f 00002c5a: RETURNDATASIZE 00002c5b: ADD 00002c5c: AND 00002c5d: DUP3 00002c5e: ADD 00002c5f: PUSH1 0x40 00002c61: MSTORE 00002c62: RETURNDATASIZE 00002c63: DUP3 00002c64: MSTORE 00002c65: RETURNDATASIZE 00002c66: PUSH0 00002c67: PUSH1 0x20 00002c69: DUP5 00002c6a: ADD 00002c6b: RETURNDATACOPY 00002c6c: PUSH2 0x2c75 00002c6f: JUMP 00002c70: JUMPDEST 00002c71: PUSH1 0x60 00002c73: SWAP2 00002c74: POP 00002c75: JUMPDEST 00002c76: POP 00002c77: SWAP1 00002c78: SWAP3 00002c79: POP 00002c7a: SWAP1 00002c7b: POP 00002c7c: JUMPDEST 00002c7d: SWAP6 00002c7e: POP 00002c7f: SWAP6 00002c80: SWAP4 00002c81: POP 00002c82: POP 00002c83: POP 00002c84: POP 00002c85: JUMP 00002c86: JUMPDEST 00002c87: PUSH0 00002c88: PUSH0 00002c89: PUSH2 0x2c90 00002c8c: PUSH2 0x30f1 00002c8f: JUMP 00002c90: JUMPDEST 00002c91: SWAP1 00002c92: POP 00002c93: PUSH2 0x2ca9 00002c96: DUP2 00002c97: PUSH2 0x0120 00002c9a: ADD 00002c9b: MLOAD 00002c9c: DUP3 00002c9d: PUSH0 00002c9e: ADD 00002c9f: MLOAD 00002ca0: DUP4 00002ca1: PUSH1 0x20 00002ca3: ADD 00002ca4: MLOAD 00002ca5: PUSH2 0x2eef 00002ca8: JUMP 00002ca9: JUMPDEST 00002caa: SWAP2 00002cab: POP 00002cac: POP 00002cad: SWAP1 00002cae: JUMP 00002caf: JUMPDEST 00002cb0: PUSH0 00002cb1: MLOAD 00002cb2: PUSH1 0x20 00002cb4: PUSH2 0x5708 00002cb7: PUSH0 00002cb8: CODECOPY 00002cb9: PUSH0 00002cba: MLOAD 00002cbb: SWAP1 00002cbc: PUSH0 00002cbd: MSTORE 00002cbe: SLOAD 00002cbf: PUSH1 0x01 00002cc1: PUSH1 0x01 00002cc3: PUSH1 0xa0 00002cc5: SHL 00002cc6: SUB 00002cc7: AND 00002cc8: SWAP1 00002cc9: JUMP 00002cca: JUMPDEST 00002ccb: PUSH0 00002ccc: PUSH0 00002ccd: DUP3 00002cce: PUSH1 0x01 00002cd0: DUP2 00002cd1: GT 00002cd2: ISZERO 00002cd3: PUSH2 0x2cde 00002cd6: JUMPI 00002cd7: PUSH2 0x2cde 00002cda: PUSH2 0x51e6 00002cdd: JUMP 00002cde: JUMPDEST 00002cdf: PUSH1 0x02 00002ce1: DUP2 00002ce2: GT 00002ce3: ISZERO 00002ce4: PUSH2 0x2cef 00002ce7: JUMPI 00002ce8: PUSH2 0x2cef 00002ceb: PUSH2 0x51e6 00002cee: JUMP 00002cef: JUMPDEST 00002cf0: SWAP1 00002cf1: POP 00002cf2: PUSH0 00002cf3: PUSH0 00002cf4: PUSH2 0x2cfe 00002cf7: PUSH2 0x2a1a 00002cfa: PUSH2 0x30f1 00002cfd: JUMP 00002cfe: JUMPDEST 00002cff: SWAP2 00002d00: POP 00002d01: SWAP2 00002d02: POP 00002d03: PUSH2 0x2005 00002d06: DUP7 00002d07: DUP4 00002d08: DUP4 00002d09: PUSH0 00002d0a: DUP8 00002d0b: PUSH2 0x3790 00002d0e: JUMP 00002d0f: JUMPDEST 00002d10: PUSH0 00002d11: PUSH0 00002d12: PUSH0 00002d13: PUSH2 0x2d1d 00002d16: PUSH2 0x2859 00002d19: PUSH2 0x30f1 00002d1c: JUMP 00002d1d: JUMPDEST 00002d1e: SWAP1 00002d1f: SWAP3 00002d20: POP 00002d21: SWAP1 00002d22: POP 00002d23: PUSH2 0x17b0 00002d26: DUP6 00002d27: DUP4 00002d28: DUP4 00002d29: PUSH1 0x02 00002d2b: DUP9 00002d2c: PUSH1 0x02 00002d2e: DUP2 00002d2f: GT 00002d30: ISZERO 00002d31: PUSH2 0x2d3c 00002d34: JUMPI 00002d35: PUSH2 0x2d3c 00002d38: PUSH2 0x51e6 00002d3b: JUMP 00002d3c: JUMPDEST 00002d3d: EQ 00002d3e: PUSH2 0x2d47 00002d41: JUMPI 00002d42: PUSH0 00002d43: PUSH2 0x2d4a 00002d46: JUMP 00002d47: JUMPDEST 00002d48: PUSH1 0x01 00002d4a: JUMPDEST 00002d4b: DUP9 00002d4c: PUSH2 0x33e2 00002d4f: JUMP 00002d50: JUMPDEST 00002d51: PUSH0 00002d52: PUSH2 0x2d59 00002d55: PUSH2 0x2892 00002d58: JUMP 00002d59: JUMPDEST 00002d5a: PUSH1 0x40 00002d5c: MLOAD 00002d5d: PUSH4 0x07439b49 00002d62: PUSH1 0xe0 00002d64: SHL 00002d65: DUP2 00002d66: MSTORE 00002d67: ADDRESS 00002d68: PUSH1 0x04 00002d6a: DUP3 00002d6b: ADD 00002d6c: MSTORE 00002d6d: PUSH1 0x01 00002d6f: PUSH1 0x01 00002d71: PUSH1 0xa0 00002d73: SHL 00002d74: SUB 00002d75: SWAP2 00002d76: SWAP1 00002d77: SWAP2 00002d78: AND 00002d79: SWAP1 00002d7a: PUSH4 0x07439b49 00002d7f: SWAP1 00002d80: PUSH1 0x24 00002d82: ADD 00002d83: PUSH1 0x20 00002d85: PUSH1 0x40 00002d87: MLOAD 00002d88: DUP1 00002d89: DUP4 00002d8a: SUB 00002d8b: DUP2 00002d8c: DUP7 00002d8d: GAS 00002d8e: STATICCALL 00002d8f: ISZERO 00002d90: DUP1 00002d91: ISZERO 00002d92: PUSH2 0x2d9d 00002d95: JUMPI 00002d96: RETURNDATASIZE 00002d97: PUSH0 00002d98: PUSH0 00002d99: RETURNDATACOPY 00002d9a: RETURNDATASIZE 00002d9b: PUSH0 00002d9c: REVERT 00002d9d: JUMPDEST 00002d9e: POP 00002d9f: POP 00002da0: POP 00002da1: POP 00002da2: PUSH1 0x40 00002da4: MLOAD 00002da5: RETURNDATASIZE 00002da6: PUSH1 0x1f 00002da8: NOT 00002da9: PUSH1 0x1f 00002dab: DUP3 00002dac: ADD 00002dad: AND 00002dae: DUP3 00002daf: ADD 00002db0: DUP1 00002db1: PUSH1 0x40 00002db3: MSTORE 00002db4: POP 00002db5: DUP2 00002db6: ADD 00002db7: SWAP1 00002db8: PUSH2 0x2dc1 00002dbb: SWAP2 00002dbc: SWAP1 00002dbd: PUSH2 0x50ec 00002dc0: JUMP 00002dc1: JUMPDEST 00002dc2: PUSH1 0x01 00002dc4: PUSH1 0x01 00002dc6: PUSH1 0xa0 00002dc8: SHL 00002dc9: SUB 00002dca: AND 00002dcb: DUP3 00002dcc: PUSH1 0x01 00002dce: PUSH1 0x01 00002dd0: PUSH1 0xa0 00002dd2: SHL 00002dd3: SUB 00002dd4: AND 00002dd5: EQ 00002dd6: PUSH2 0x2de0 00002dd9: JUMPI 00002dda: POP 00002ddb: PUSH0 00002ddc: SWAP2 00002ddd: SWAP1 00002dde: POP 00002ddf: JUMP 00002de0: JUMPDEST 00002de1: PUSH0 00002de2: DUP1 00002de3: DUP1 00002de4: MSTORE 00002de5: PUSH0 00002de6: MLOAD 00002de7: PUSH1 0x20 00002de9: PUSH2 0x5728 00002dec: PUSH0 00002ded: CODECOPY 00002dee: PUSH0 00002def: MLOAD 00002df0: SWAP1 00002df1: PUSH0 00002df2: MSTORE 00002df3: PUSH1 0x20 00002df5: SWAP1 00002df6: DUP2 00002df7: MSTORE 00002df8: PUSH32 0x1d6b5be70a9f383ca45b06b91c80fedc4b8206aae15f8f5652c9213b796e9a02 00002e19: SLOAD 00002e1a: PUSH1 0x40 00002e1c: DUP1 00002e1d: MLOAD 00002e1e: PUSH4 0x70a08231 00002e23: PUSH1 0xe0 00002e25: SHL 00002e26: DUP2 00002e27: MSTORE 00002e28: ADDRESS 00002e29: PUSH1 0x04 00002e2b: DUP3 00002e2c: ADD 00002e2d: MSTORE 00002e2e: SWAP1 00002e2f: MLOAD 00002e30: PUSH0 00002e31: MLOAD 00002e32: PUSH1 0x20 00002e34: PUSH2 0x5748 00002e37: PUSH0 00002e38: CODECOPY 00002e39: PUSH0 00002e3a: MLOAD 00002e3b: SWAP1 00002e3c: PUSH0 00002e3d: MSTORE 00002e3e: SWAP5 00002e3f: SWAP3 00002e40: SWAP4 00002e41: PUSH1 0x01 00002e43: PUSH1 0x01 00002e45: PUSH1 0xa0 00002e47: SHL 00002e48: SUB 00002e49: DUP9 00002e4a: AND 00002e4b: SWAP3 00002e4c: PUSH4 0x70a08231 00002e51: SWAP3 00002e52: PUSH1 0x24 00002e54: DUP1 00002e55: DUP4 00002e56: ADD 00002e57: SWAP4 00002e58: SWAP3 00002e59: DUP3 00002e5a: SWAP1 00002e5b: SUB 00002e5c: ADD 00002e5d: DUP2 00002e5e: DUP7 00002e5f: GAS 00002e60: STATICCALL 00002e61: ISZERO 00002e62: DUP1 00002e63: ISZERO 00002e64: PUSH2 0x2e6f 00002e67: JUMPI 00002e68: RETURNDATASIZE 00002e69: PUSH0 00002e6a: PUSH0 00002e6b: RETURNDATACOPY 00002e6c: RETURNDATASIZE 00002e6d: PUSH0 00002e6e: REVERT 00002e6f: JUMPDEST 00002e70: POP 00002e71: POP 00002e72: POP 00002e73: POP 00002e74: PUSH1 0x40 00002e76: MLOAD 00002e77: RETURNDATASIZE 00002e78: PUSH1 0x1f 00002e7a: NOT 00002e7b: PUSH1 0x1f 00002e7d: DUP3 00002e7e: ADD 00002e7f: AND 00002e80: DUP3 00002e81: ADD 00002e82: DUP1 00002e83: PUSH1 0x40 00002e85: MSTORE 00002e86: POP 00002e87: DUP2 00002e88: ADD 00002e89: SWAP1 00002e8a: PUSH2 0x2e93 00002e8d: SWAP2 00002e8e: SWAP1 00002e8f: PUSH2 0x5092 00002e92: JUMP 00002e93: JUMPDEST 00002e94: SWAP1 00002e95: POP 00002e96: DUP2 00002e97: DUP2 00002e98: GT 00002e99: PUSH2 0x2ea2 00002e9c: JUMPI 00002e9d: PUSH0 00002e9e: PUSH2 0x17b0 00002ea1: JUMP 00002ea2: JUMPDEST 00002ea3: SUB 00002ea4: SWAP4 00002ea5: SWAP3 00002ea6: POP 00002ea7: POP 00002ea8: POP 00002ea9: JUMP 00002eaa: JUMPDEST 00002eab: PUSH0 00002eac: PUSH0 00002ead: DUP3 00002eae: PUSH1 0x01 00002eb0: DUP2 00002eb1: GT 00002eb2: ISZERO 00002eb3: PUSH2 0x2ebe 00002eb6: JUMPI 00002eb7: PUSH2 0x2ebe 00002eba: PUSH2 0x51e6 00002ebd: JUMP 00002ebe: JUMPDEST 00002ebf: PUSH1 0x02 00002ec1: DUP2 00002ec2: GT 00002ec3: ISZERO 00002ec4: PUSH2 0x2ecf 00002ec7: JUMPI 00002ec8: PUSH2 0x2ecf 00002ecb: PUSH2 0x51e6 00002ece: JUMP 00002ecf: JUMPDEST 00002ed0: SWAP1 00002ed1: POP 00002ed2: PUSH0 00002ed3: PUSH0 00002ed4: PUSH2 0x2ede 00002ed7: PUSH2 0x2a1a 00002eda: PUSH2 0x30f1 00002edd: JUMP 00002ede: JUMPDEST 00002edf: SWAP2 00002ee0: POP 00002ee1: SWAP2 00002ee2: POP 00002ee3: PUSH2 0x2005 00002ee6: DUP7 00002ee7: DUP4 00002ee8: DUP4 00002ee9: PUSH0 00002eea: DUP8 00002eeb: PUSH2 0x33e2 00002eee: JUMP 00002eef: JUMPDEST 00002ef0: PUSH1 0x40 00002ef2: MLOAD 00002ef3: PUSH4 0xe9c1bd61 00002ef8: PUSH1 0xe0 00002efa: SHL 00002efb: DUP2 00002efc: MSTORE 00002efd: PUSH1 0x01 00002eff: PUSH1 0x01 00002f01: PUSH1 0xa0 00002f03: SHL 00002f04: SUB 00002f05: DUP5 00002f06: AND 00002f07: PUSH1 0x04 00002f09: DUP3 00002f0a: ADD 00002f0b: MSTORE 00002f0c: PUSH1 0x24 00002f0e: DUP2 00002f0f: ADD 00002f10: DUP4 00002f11: SWAP1 00002f12: MSTORE 00002f13: PUSH1 0x44 00002f15: DUP2 00002f16: ADD 00002f17: DUP3 00002f18: SWAP1 00002f19: MSTORE 00002f1a: PUSH0 00002f1b: SWAP1 00002f1c: PUSH20 0x2d53aed73de024222971fc66b1ea3c55a11dd558 00002f31: SWAP1 00002f32: PUSH4 0xe9c1bd61 00002f37: SWAP1 00002f38: PUSH1 0x64 00002f3a: ADD 00002f3b: PUSH1 0x20 00002f3d: PUSH1 0x40 00002f3f: MLOAD 00002f40: DUP1 00002f41: DUP4 00002f42: SUB 00002f43: DUP2 00002f44: DUP7 00002f45: GAS 00002f46: DELEGATECALL 00002f47: ISZERO 00002f48: DUP1 00002f49: ISZERO 00002f4a: PUSH2 0x2f55 00002f4d: JUMPI 00002f4e: RETURNDATASIZE 00002f4f: PUSH0 00002f50: PUSH0 00002f51: RETURNDATACOPY 00002f52: RETURNDATASIZE 00002f53: PUSH0 00002f54: REVERT 00002f55: JUMPDEST 00002f56: POP 00002f57: POP 00002f58: POP 00002f59: POP 00002f5a: PUSH1 0x40 00002f5c: MLOAD 00002f5d: RETURNDATASIZE 00002f5e: PUSH1 0x1f 00002f60: NOT 00002f61: PUSH1 0x1f 00002f63: DUP3 00002f64: ADD 00002f65: AND 00002f66: DUP3 00002f67: ADD 00002f68: DUP1 00002f69: PUSH1 0x40 00002f6b: MSTORE 00002f6c: POP 00002f6d: DUP2 00002f6e: ADD 00002f6f: SWAP1 00002f70: PUSH2 0x2f79 00002f73: SWAP2 00002f74: SWAP1 00002f75: PUSH2 0x5092 00002f78: JUMP 00002f79: JUMPDEST 00002f7a: SWAP1 00002f7b: POP 00002f7c: DUP1 00002f7d: ISZERO 00002f7e: PUSH2 0x10ed 00002f81: JUMPI 00002f82: PUSH1 0x40 00002f84: MLOAD 00002f85: DUP2 00002f86: DUP2 00002f87: MSTORE 00002f88: PUSH32 0xd1fe0093c54116fe147366ec7de3cfa98e1e02e91d7ccb124241f6beae255b4c 00002fa9: SWAP1 00002faa: PUSH1 0x20 00002fac: ADD 00002fad: PUSH1 0x40 00002faf: MLOAD 00002fb0: DUP1 00002fb1: SWAP2 00002fb2: SUB 00002fb3: SWAP1 00002fb4: LOG1 00002fb5: SWAP4 00002fb6: SWAP3 00002fb7: POP 00002fb8: POP 00002fb9: POP 00002fba: JUMP 00002fbb: JUMPDEST 00002fbc: PUSH0 00002fbd: PUSH0 00002fbe: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00002fd3: PUSH4 0x7ca0c3c5 00002fd8: DUP8 00002fd9: DUP8 00002fda: DUP8 00002fdb: DUP8 00002fdc: PUSH1 0x40 00002fde: MLOAD 00002fdf: DUP6 00002fe0: PUSH4 0xffffffff 00002fe5: AND 00002fe6: PUSH1 0xe0 00002fe8: SHL 00002fe9: DUP2 00002fea: MSTORE 00002feb: PUSH1 0x04 00002fed: ADD 00002fee: PUSH2 0x2ffa 00002ff1: SWAP5 00002ff2: SWAP4 00002ff3: SWAP3 00002ff4: SWAP2 00002ff5: SWAP1 00002ff6: PUSH2 0x53ae 00002ff9: JUMP 00002ffa: JUMPDEST 00002ffb: PUSH1 0x40 00002ffd: DUP1 00002ffe: MLOAD 00002fff: DUP1 00003000: DUP4 00003001: SUB 00003002: DUP2 00003003: DUP7 00003004: GAS 00003005: DELEGATECALL 00003006: ISZERO 00003007: DUP1 00003008: ISZERO 00003009: PUSH2 0x3014 0000300c: JUMPI 0000300d: RETURNDATASIZE 0000300e: PUSH0 0000300f: PUSH0 00003010: RETURNDATACOPY 00003011: RETURNDATASIZE 00003012: PUSH0 00003013: REVERT 00003014: JUMPDEST 00003015: POP 00003016: POP 00003017: POP 00003018: POP 00003019: PUSH1 0x40 0000301b: MLOAD 0000301c: RETURNDATASIZE 0000301d: PUSH1 0x1f 0000301f: NOT 00003020: PUSH1 0x1f 00003022: DUP3 00003023: ADD 00003024: AND 00003025: DUP3 00003026: ADD 00003027: DUP1 00003028: PUSH1 0x40 0000302a: MSTORE 0000302b: POP 0000302c: DUP2 0000302d: ADD 0000302e: SWAP1 0000302f: PUSH2 0x3038 00003032: SWAP2 00003033: SWAP1 00003034: PUSH2 0x5107 00003037: JUMP 00003038: JUMPDEST 00003039: SWAP1 0000303a: SWAP3 0000303b: POP 0000303c: SWAP1 0000303d: POP 0000303e: PUSH1 0x01 00003040: DUP4 00003041: PUSH1 0x01 00003043: DUP2 00003044: GT 00003045: ISZERO 00003046: PUSH2 0x3051 00003049: JUMPI 0000304a: PUSH2 0x3051 0000304d: PUSH2 0x51e6 00003050: JUMP 00003051: JUMPDEST 00003052: SUB 00003053: PUSH2 0x30a1 00003056: JUMPI 00003057: PUSH1 0x40 00003059: DUP1 0000305a: MLOAD 0000305b: DUP4 0000305c: DUP2 0000305d: MSTORE 0000305e: PUSH1 0x20 00003060: DUP2 00003061: ADD 00003062: DUP4 00003063: SWAP1 00003064: MSTORE 00003065: PUSH1 0x01 00003067: PUSH1 0x01 00003069: PUSH1 0xa0 0000306b: SHL 0000306c: SUB 0000306d: DUP7 0000306e: AND 0000306f: SWAP2 00003070: CALLER 00003071: SWAP2 00003072: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00003093: SWAP2 00003094: ADD 00003095: PUSH1 0x40 00003097: MLOAD 00003098: DUP1 00003099: SWAP2 0000309a: SUB 0000309b: SWAP1 0000309c: LOG3 0000309d: PUSH2 0x30e8 000030a0: JUMP 000030a1: JUMPDEST 000030a2: PUSH1 0x40 000030a4: DUP1 000030a5: MLOAD 000030a6: DUP4 000030a7: DUP2 000030a8: MSTORE 000030a9: PUSH1 0x20 000030ab: DUP2 000030ac: ADD 000030ad: DUP4 000030ae: SWAP1 000030af: MSTORE 000030b0: PUSH1 0x01 000030b2: PUSH1 0x01 000030b4: PUSH1 0xa0 000030b6: SHL 000030b7: SUB 000030b8: DUP7 000030b9: AND 000030ba: SWAP2 000030bb: CALLER 000030bc: SWAP2 000030bd: PUSH32 0x1ad348f5de3e19e23d88e34248ceb6ab09804a35a3abc0e7758045b7b9036acd 000030de: SWAP2 000030df: ADD 000030e0: PUSH1 0x40 000030e2: MLOAD 000030e3: DUP1 000030e4: SWAP2 000030e5: SUB 000030e6: SWAP1 000030e7: LOG3 000030e8: JUMPDEST 000030e9: SWAP5 000030ea: POP 000030eb: SWAP5 000030ec: SWAP3 000030ed: POP 000030ee: POP 000030ef: POP 000030f0: JUMP 000030f1: JUMPDEST 000030f2: PUSH1 0x40 000030f4: DUP1 000030f5: MLOAD 000030f6: PUSH2 0x0220 000030f9: DUP2 000030fa: ADD 000030fb: DUP3 000030fc: MSTORE 000030fd: PUSH0 000030fe: DUP1 000030ff: DUP3 00003100: MSTORE 00003101: PUSH1 0x20 00003103: DUP3 00003104: ADD 00003105: DUP2 00003106: SWAP1 00003107: MSTORE 00003108: SWAP2 00003109: DUP2 0000310a: ADD 0000310b: DUP3 0000310c: SWAP1 0000310d: MSTORE 0000310e: PUSH1 0x60 00003110: DUP2 00003111: ADD 00003112: DUP3 00003113: SWAP1 00003114: MSTORE 00003115: PUSH1 0x80 00003117: DUP2 00003118: ADD 00003119: DUP3 0000311a: SWAP1 0000311b: MSTORE 0000311c: PUSH1 0xa0 0000311e: DUP2 0000311f: ADD 00003120: DUP3 00003121: SWAP1 00003122: MSTORE 00003123: PUSH1 0xc0 00003125: DUP2 00003126: ADD 00003127: DUP3 00003128: SWAP1 00003129: MSTORE 0000312a: PUSH1 0xe0 0000312c: DUP2 0000312d: ADD 0000312e: DUP3 0000312f: SWAP1 00003130: MSTORE 00003131: PUSH2 0x0100 00003134: DUP2 00003135: ADD 00003136: DUP3 00003137: SWAP1 00003138: MSTORE 00003139: PUSH2 0x0120 0000313c: DUP2 0000313d: ADD 0000313e: DUP3 0000313f: SWAP1 00003140: MSTORE 00003141: PUSH2 0x0140 00003144: DUP2 00003145: ADD 00003146: DUP3 00003147: SWAP1 00003148: MSTORE 00003149: PUSH2 0x0160 0000314c: DUP2 0000314d: ADD 0000314e: DUP3 0000314f: SWAP1 00003150: MSTORE 00003151: PUSH2 0x0180 00003154: DUP2 00003155: ADD 00003156: DUP3 00003157: SWAP1 00003158: MSTORE 00003159: PUSH2 0x01a0 0000315c: DUP2 0000315d: ADD 0000315e: DUP3 0000315f: SWAP1 00003160: MSTORE 00003161: PUSH2 0x01c0 00003164: DUP2 00003165: ADD 00003166: DUP3 00003167: SWAP1 00003168: MSTORE 00003169: PUSH2 0x01e0 0000316c: DUP2 0000316d: ADD 0000316e: DUP3 0000316f: SWAP1 00003170: MSTORE 00003171: PUSH2 0x0200 00003174: DUP2 00003175: ADD 00003176: SWAP2 00003177: SWAP1 00003178: SWAP2 00003179: MSTORE 0000317a: PUSH0 0000317b: MLOAD 0000317c: PUSH1 0x20 0000317e: PUSH2 0x5708 00003181: PUSH0 00003182: CODECOPY 00003183: PUSH0 00003184: MLOAD 00003185: SWAP1 00003186: PUSH0 00003187: MSTORE 00003188: PUSH1 0x01 0000318a: ADD 0000318b: SLOAD 0000318c: PUSH1 0x40 0000318e: MLOAD 0000318f: PUSH4 0xe48a5f7b 00003194: PUSH1 0xe0 00003196: SHL 00003197: DUP2 00003198: MSTORE 00003199: ADDRESS 0000319a: PUSH1 0x04 0000319c: DUP3 0000319d: ADD 0000319e: MSTORE 0000319f: PUSH1 0x01 000031a1: PUSH1 0x01 000031a3: PUSH1 0xa0 000031a5: SHL 000031a6: SUB 000031a7: SWAP1 000031a8: SWAP2 000031a9: AND 000031aa: SWAP1 000031ab: PUSH4 0xe48a5f7b 000031b0: SWAP1 000031b1: PUSH1 0x24 000031b3: ADD 000031b4: PUSH2 0x0220 000031b7: PUSH1 0x40 000031b9: MLOAD 000031ba: DUP1 000031bb: DUP4 000031bc: SUB 000031bd: DUP2 000031be: DUP7 000031bf: GAS 000031c0: STATICCALL 000031c1: ISZERO 000031c2: DUP1 000031c3: ISZERO 000031c4: PUSH2 0x31cf 000031c7: JUMPI 000031c8: RETURNDATASIZE 000031c9: PUSH0 000031ca: PUSH0 000031cb: RETURNDATACOPY 000031cc: RETURNDATASIZE 000031cd: PUSH0 000031ce: REVERT 000031cf: JUMPDEST 000031d0: POP 000031d1: POP 000031d2: POP 000031d3: POP 000031d4: PUSH1 0x40 000031d6: MLOAD 000031d7: RETURNDATASIZE 000031d8: PUSH1 0x1f 000031da: NOT 000031db: PUSH1 0x1f 000031dd: DUP3 000031de: ADD 000031df: AND 000031e0: DUP3 000031e1: ADD 000031e2: DUP1 000031e3: PUSH1 0x40 000031e5: MSTORE 000031e6: POP 000031e7: DUP2 000031e8: ADD 000031e9: SWAP1 000031ea: PUSH2 0x1028 000031ed: SWAP2 000031ee: SWAP1 000031ef: PUSH2 0x5286 000031f2: JUMP 000031f3: JUMPDEST 000031f4: PUSH0 000031f5: DUP1 000031f6: DUP1 000031f7: DUP4 000031f8: PUSH1 0x02 000031fa: DUP2 000031fb: GT 000031fc: ISZERO 000031fd: PUSH2 0x3208 00003200: JUMPI 00003201: PUSH2 0x3208 00003204: PUSH2 0x51e6 00003207: JUMP 00003208: JUMPDEST 00003209: SUB 0000320a: PUSH2 0x32e9 0000320d: JUMPI 0000320e: DUP4 0000320f: PUSH1 0x40 00003211: ADD 00003212: MLOAD 00003213: PUSH1 0x01 00003215: PUSH1 0x01 00003217: PUSH1 0xa0 00003219: SHL 0000321a: SUB 0000321b: AND 0000321c: PUSH4 0xb6d821c7 00003221: PUSH0 00003222: PUSH1 0x40 00003224: MLOAD 00003225: DUP3 00003226: PUSH4 0xffffffff 0000322b: AND 0000322c: PUSH1 0xe0 0000322e: SHL 0000322f: DUP2 00003230: MSTORE 00003231: PUSH1 0x04 00003233: ADD 00003234: PUSH2 0x323d 00003237: SWAP2 00003238: SWAP1 00003239: PUSH2 0x53d8 0000323c: JUMP 0000323d: JUMPDEST 0000323e: PUSH1 0x20 00003240: PUSH1 0x40 00003242: MLOAD 00003243: DUP1 00003244: DUP4 00003245: SUB 00003246: DUP2 00003247: DUP7 00003248: GAS 00003249: STATICCALL 0000324a: ISZERO 0000324b: DUP1 0000324c: ISZERO 0000324d: PUSH2 0x3258 00003250: JUMPI 00003251: RETURNDATASIZE 00003252: PUSH0 00003253: PUSH0 00003254: RETURNDATACOPY 00003255: RETURNDATASIZE 00003256: PUSH0 00003257: REVERT 00003258: JUMPDEST 00003259: POP 0000325a: POP 0000325b: POP 0000325c: POP 0000325d: PUSH1 0x40 0000325f: MLOAD 00003260: RETURNDATASIZE 00003261: PUSH1 0x1f 00003263: NOT 00003264: PUSH1 0x1f 00003266: DUP3 00003267: ADD 00003268: AND 00003269: DUP3 0000326a: ADD 0000326b: DUP1 0000326c: PUSH1 0x40 0000326e: MSTORE 0000326f: POP 00003270: DUP2 00003271: ADD 00003272: SWAP1 00003273: PUSH2 0x327c 00003276: SWAP2 00003277: SWAP1 00003278: PUSH2 0x5092 0000327b: JUMP 0000327c: JUMPDEST 0000327d: SWAP2 0000327e: POP 0000327f: DUP4 00003280: PUSH1 0x80 00003282: ADD 00003283: MLOAD 00003284: PUSH1 0x01 00003286: PUSH1 0x01 00003288: PUSH1 0xa0 0000328a: SHL 0000328b: SUB 0000328c: AND 0000328d: PUSH4 0x18160ddd 00003292: PUSH1 0x40 00003294: MLOAD 00003295: DUP2 00003296: PUSH4 0xffffffff 0000329b: AND 0000329c: PUSH1 0xe0 0000329e: SHL 0000329f: DUP2 000032a0: MSTORE 000032a1: PUSH1 0x04 000032a3: ADD 000032a4: PUSH1 0x20 000032a6: PUSH1 0x40 000032a8: MLOAD 000032a9: DUP1 000032aa: DUP4 000032ab: SUB 000032ac: DUP2 000032ad: DUP7 000032ae: GAS 000032af: STATICCALL 000032b0: ISZERO 000032b1: DUP1 000032b2: ISZERO 000032b3: PUSH2 0x32be 000032b6: JUMPI 000032b7: RETURNDATASIZE 000032b8: PUSH0 000032b9: PUSH0 000032ba: RETURNDATACOPY 000032bb: RETURNDATASIZE 000032bc: PUSH0 000032bd: REVERT 000032be: JUMPDEST 000032bf: POP 000032c0: POP 000032c1: POP 000032c2: POP 000032c3: PUSH1 0x40 000032c5: MLOAD 000032c6: RETURNDATASIZE 000032c7: PUSH1 0x1f 000032c9: NOT 000032ca: PUSH1 0x1f 000032cc: DUP3 000032cd: ADD 000032ce: AND 000032cf: DUP3 000032d0: ADD 000032d1: DUP1 000032d2: PUSH1 0x40 000032d4: MSTORE 000032d5: POP 000032d6: DUP2 000032d7: ADD 000032d8: SWAP1 000032d9: PUSH2 0x32e2 000032dc: SWAP2 000032dd: SWAP1 000032de: PUSH2 0x5092 000032e1: JUMP 000032e2: JUMPDEST 000032e3: SWAP1 000032e4: POP 000032e5: PUSH2 0x2844 000032e8: JUMP 000032e9: JUMPDEST 000032ea: PUSH1 0x01 000032ec: DUP4 000032ed: PUSH1 0x02 000032ef: DUP2 000032f0: GT 000032f1: ISZERO 000032f2: PUSH2 0x32fd 000032f5: JUMPI 000032f6: PUSH2 0x32fd 000032f9: PUSH2 0x51e6 000032fc: JUMP 000032fd: JUMPDEST 000032fe: SUB 000032ff: PUSH2 0x3360 00003302: JUMPI 00003303: PUSH2 0x331e 00003306: DUP5 00003307: PUSH1 0x40 00003309: ADD 0000330a: MLOAD 0000330b: DUP6 0000330c: PUSH2 0x0120 0000330f: ADD 00003310: MLOAD 00003311: DUP7 00003312: PUSH0 00003313: ADD 00003314: MLOAD 00003315: DUP8 00003316: PUSH1 0x20 00003318: ADD 00003319: MLOAD 0000331a: PUSH2 0x3d04 0000331d: JUMP 0000331e: JUMPDEST 0000331f: SWAP2 00003320: POP 00003321: DUP4 00003322: PUSH1 0xa0 00003324: ADD 00003325: MLOAD 00003326: PUSH1 0x01 00003328: PUSH1 0x01 0000332a: PUSH1 0xa0 0000332c: SHL 0000332d: SUB 0000332e: AND 0000332f: PUSH4 0x18160ddd 00003334: PUSH1 0x40 00003336: MLOAD 00003337: DUP2 00003338: PUSH4 0xffffffff 0000333d: AND 0000333e: PUSH1 0xe0 00003340: SHL 00003341: DUP2 00003342: MSTORE 00003343: PUSH1 0x04 00003345: ADD 00003346: PUSH1 0x20 00003348: PUSH1 0x40 0000334a: MLOAD 0000334b: DUP1 0000334c: DUP4 0000334d: SUB 0000334e: DUP2 0000334f: DUP7 00003350: GAS 00003351: STATICCALL 00003352: ISZERO 00003353: DUP1 00003354: ISZERO 00003355: PUSH2 0x32be 00003358: JUMPI 00003359: RETURNDATASIZE 0000335a: PUSH0 0000335b: PUSH0 0000335c: RETURNDATACOPY 0000335d: RETURNDATASIZE 0000335e: PUSH0 0000335f: REVERT 00003360: JUMPDEST 00003361: PUSH2 0x3373 00003364: DUP5 00003365: PUSH1 0x40 00003367: ADD 00003368: MLOAD 00003369: DUP6 0000336a: PUSH2 0x0120 0000336d: ADD 0000336e: MLOAD 0000336f: PUSH2 0x3dfa 00003372: JUMP 00003373: JUMPDEST 00003374: SWAP2 00003375: POP 00003376: DUP4 00003377: PUSH1 0xc0 00003379: ADD 0000337a: MLOAD 0000337b: PUSH1 0x01 0000337d: PUSH1 0x01 0000337f: PUSH1 0xa0 00003381: SHL 00003382: SUB 00003383: AND 00003384: PUSH4 0x18160ddd 00003389: PUSH1 0x40 0000338b: MLOAD 0000338c: DUP2 0000338d: PUSH4 0xffffffff 00003392: AND 00003393: PUSH1 0xe0 00003395: SHL 00003396: DUP2 00003397: MSTORE 00003398: PUSH1 0x04 0000339a: ADD 0000339b: PUSH1 0x20 0000339d: PUSH1 0x40 0000339f: MLOAD 000033a0: DUP1 000033a1: DUP4 000033a2: SUB 000033a3: DUP2 000033a4: DUP7 000033a5: GAS 000033a6: STATICCALL 000033a7: ISZERO 000033a8: DUP1 000033a9: ISZERO 000033aa: PUSH2 0x33b5 000033ad: JUMPI 000033ae: RETURNDATASIZE 000033af: PUSH0 000033b0: PUSH0 000033b1: RETURNDATACOPY 000033b2: RETURNDATASIZE 000033b3: PUSH0 000033b4: REVERT 000033b5: JUMPDEST 000033b6: POP 000033b7: POP 000033b8: POP 000033b9: POP 000033ba: PUSH1 0x40 000033bc: MLOAD 000033bd: RETURNDATASIZE 000033be: PUSH1 0x1f 000033c0: NOT 000033c1: PUSH1 0x1f 000033c3: DUP3 000033c4: ADD 000033c5: AND 000033c6: DUP3 000033c7: ADD 000033c8: DUP1 000033c9: PUSH1 0x40 000033cb: MSTORE 000033cc: POP 000033cd: DUP2 000033ce: ADD 000033cf: SWAP1 000033d0: PUSH2 0x33d9 000033d3: SWAP2 000033d4: SWAP1 000033d5: PUSH2 0x5092 000033d8: JUMP 000033d9: JUMPDEST 000033da: SWAP1 000033db: POP 000033dc: SWAP3 000033dd: POP 000033de: SWAP3 000033df: SWAP1 000033e0: POP 000033e1: JUMP 000033e2: JUMPDEST 000033e3: PUSH0 000033e4: PUSH0 000033e5: PUSH0 000033e6: PUSH2 0x33f0 000033e9: DUP8 000033ea: DUP8 000033eb: DUP7 000033ec: PUSH2 0x3ee4 000033ef: JUMP 000033f0: JUMPDEST 000033f1: SWAP2 000033f2: POP 000033f3: SWAP2 000033f4: POP 000033f5: DUP2 000033f6: PUSH0 000033f7: SUB 000033f8: PUSH2 0x3405 000033fb: JUMPI 000033fc: DUP8 000033fd: SWAP3 000033fe: POP 000033ff: POP 00003400: POP 00003401: PUSH2 0x17b0 00003404: JUMP 00003405: JUMPDEST 00003406: PUSH2 0x3411 00003409: DUP9 0000340a: DUP4 0000340b: DUP4 0000340c: DUP9 0000340d: PUSH2 0x3f3f 00003410: JUMP 00003411: JUMPDEST 00003412: SWAP9 00003413: SWAP8 00003414: POP 00003415: POP 00003416: POP 00003417: POP 00003418: POP 00003419: POP 0000341a: POP 0000341b: POP 0000341c: JUMP 0000341d: JUMPDEST 0000341e: PUSH0 0000341f: DUP1 00003420: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00 00003441: PUSH2 0x18d1 00003444: JUMP 00003445: JUMPDEST 00003446: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102 00003467: DUP1 00003468: SLOAD 00003469: PUSH1 0x60 0000346b: SWAP2 0000346c: PUSH0 0000346d: MLOAD 0000346e: PUSH1 0x20 00003470: PUSH2 0x5768 00003473: PUSH0 00003474: CODECOPY 00003475: PUSH0 00003476: MLOAD 00003477: SWAP1 00003478: PUSH0 00003479: MSTORE 0000347a: SWAP2 0000347b: PUSH2 0x3483 0000347e: SWAP1 0000347f: PUSH2 0x53f2 00003482: JUMP 00003483: JUMPDEST 00003484: DUP1 00003485: PUSH1 0x1f 00003487: ADD 00003488: PUSH1 0x20 0000348a: DUP1 0000348b: SWAP2 0000348c: DIV 0000348d: MUL 0000348e: PUSH1 0x20 00003490: ADD 00003491: PUSH1 0x40 00003493: MLOAD 00003494: SWAP1 00003495: DUP2 00003496: ADD 00003497: PUSH1 0x40 00003499: MSTORE 0000349a: DUP1 0000349b: SWAP3 0000349c: SWAP2 0000349d: SWAP1 0000349e: DUP2 0000349f: DUP2 000034a0: MSTORE 000034a1: PUSH1 0x20 000034a3: ADD 000034a4: DUP3 000034a5: DUP1 000034a6: SLOAD 000034a7: PUSH2 0x34af 000034aa: SWAP1 000034ab: PUSH2 0x53f2 000034ae: JUMP 000034af: JUMPDEST 000034b0: DUP1 000034b1: ISZERO 000034b2: PUSH2 0x34fa 000034b5: JUMPI 000034b6: DUP1 000034b7: PUSH1 0x1f 000034b9: LT 000034ba: PUSH2 0x34d1 000034bd: JUMPI 000034be: PUSH2 0x0100 000034c1: DUP1 000034c2: DUP4 000034c3: SLOAD 000034c4: DIV 000034c5: MUL 000034c6: DUP4 000034c7: MSTORE 000034c8: SWAP2 000034c9: PUSH1 0x20 000034cb: ADD 000034cc: SWAP2 000034cd: PUSH2 0x34fa 000034d0: JUMP 000034d1: JUMPDEST 000034d2: DUP3 000034d3: ADD 000034d4: SWAP2 000034d5: SWAP1 000034d6: PUSH0 000034d7: MSTORE 000034d8: PUSH1 0x20 000034da: PUSH0 000034db: KECCAK256 000034dc: SWAP1 000034dd: JUMPDEST 000034de: DUP2 000034df: SLOAD 000034e0: DUP2 000034e1: MSTORE 000034e2: SWAP1 000034e3: PUSH1 0x01 000034e5: ADD 000034e6: SWAP1 000034e7: PUSH1 0x20 000034e9: ADD 000034ea: DUP1 000034eb: DUP4 000034ec: GT 000034ed: PUSH2 0x34dd 000034f0: JUMPI 000034f1: DUP3 000034f2: SWAP1 000034f3: SUB 000034f4: PUSH1 0x1f 000034f6: AND 000034f7: DUP3 000034f8: ADD 000034f9: SWAP2 000034fa: JUMPDEST 000034fb: POP 000034fc: POP 000034fd: POP 000034fe: POP 000034ff: POP 00003500: SWAP2 00003501: POP 00003502: POP 00003503: SWAP1 00003504: JUMP 00003505: JUMPDEST 00003506: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103 00003527: DUP1 00003528: SLOAD 00003529: PUSH1 0x60 0000352b: SWAP2 0000352c: PUSH0 0000352d: MLOAD 0000352e: PUSH1 0x20 00003530: PUSH2 0x5768 00003533: PUSH0 00003534: CODECOPY 00003535: PUSH0 00003536: MLOAD 00003537: SWAP1 00003538: PUSH0 00003539: MSTORE 0000353a: SWAP2 0000353b: PUSH2 0x3483 0000353e: SWAP1 0000353f: PUSH2 0x53f2 00003542: JUMP 00003543: JUMPDEST 00003544: PUSH2 0x356d 00003547: PUSH1 0x40 00003549: MLOAD 0000354a: DUP1 0000354b: PUSH1 0x60 0000354d: ADD 0000354e: PUSH1 0x40 00003550: MSTORE 00003551: DUP1 00003552: PUSH0 00003553: DUP2 00003554: MSTORE 00003555: PUSH1 0x20 00003557: ADD 00003558: PUSH0 00003559: DUP2 0000355a: MSTORE 0000355b: PUSH1 0x20 0000355d: ADD 0000355e: PUSH0 0000355f: PUSH1 0x01 00003561: PUSH1 0x01 00003563: PUSH1 0x40 00003565: SHL 00003566: SUB 00003567: AND 00003568: DUP2 00003569: MSTORE 0000356a: POP 0000356b: SWAP1 0000356c: JUMP 0000356d: JUMPDEST 0000356e: POP 0000356f: PUSH1 0x40 00003571: DUP1 00003572: MLOAD 00003573: PUSH1 0x60 00003575: DUP2 00003576: ADD 00003577: DUP3 00003578: MSTORE 00003579: PUSH0 0000357a: MLOAD 0000357b: PUSH1 0x20 0000357d: PUSH2 0x5788 00003580: PUSH0 00003581: CODECOPY 00003582: PUSH0 00003583: MLOAD 00003584: SWAP1 00003585: PUSH0 00003586: MSTORE 00003587: SLOAD 00003588: DUP2 00003589: MSTORE 0000358a: PUSH1 0x02 0000358c: PUSH0 0000358d: MSTORE 0000358e: PUSH0 0000358f: MLOAD 00003590: PUSH1 0x20 00003592: PUSH2 0x5728 00003595: PUSH0 00003596: CODECOPY 00003597: PUSH0 00003598: MLOAD 00003599: SWAP1 0000359a: PUSH0 0000359b: MSTORE 0000359c: PUSH1 0x20 0000359e: SWAP1 0000359f: DUP2 000035a0: MSTORE 000035a1: PUSH32 0x9b40389f0c625a77401470835767c77e909c039c8fc3275d3c2d2a048f8d5757 000035c2: SLOAD 000035c3: SWAP1 000035c4: DUP3 000035c5: ADD 000035c6: MSTORE 000035c7: PUSH0 000035c8: MLOAD 000035c9: PUSH1 0x20 000035cb: PUSH2 0x5748 000035ce: PUSH0 000035cf: CODECOPY 000035d0: PUSH0 000035d1: MLOAD 000035d2: SWAP1 000035d3: PUSH0 000035d4: MSTORE 000035d5: SLOAD 000035d6: PUSH1 0x01 000035d8: PUSH1 0xc0 000035da: SHL 000035db: SWAP1 000035dc: DIV 000035dd: PUSH1 0x01 000035df: PUSH1 0x01 000035e1: PUSH1 0x40 000035e3: SHL 000035e4: SUB 000035e5: AND 000035e6: SWAP2 000035e7: DUP2 000035e8: ADD 000035e9: SWAP2 000035ea: SWAP1 000035eb: SWAP2 000035ec: MSTORE 000035ed: SWAP1 000035ee: JUMP 000035ef: JUMPDEST 000035f0: PUSH0 000035f1: CALLER 000035f2: PUSH2 0x29dc 000035f5: DUP2 000035f6: DUP6 000035f7: DUP6 000035f8: PUSH2 0x3b05 000035fb: JUMP 000035fc: JUMPDEST 000035fd: PUSH0 000035fe: PUSH0 000035ff: PUSH20 0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be 00003614: PUSH4 0x5af0d5b8 00003619: PUSH1 0x40 0000361b: MLOAD 0000361c: DUP1 0000361d: PUSH1 0xc0 0000361f: ADD 00003620: PUSH1 0x40 00003622: MSTORE 00003623: DUP1 00003624: DUP12 00003625: DUP2 00003626: MSTORE 00003627: PUSH1 0x20 00003629: ADD 0000362a: DUP11 0000362b: DUP2 0000362c: MSTORE 0000362d: PUSH1 0x20 0000362f: ADD 00003630: DUP10 00003631: PUSH1 0x01 00003633: PUSH1 0x01 00003635: PUSH1 0xa0 00003637: SHL 00003638: SUB 00003639: AND 0000363a: DUP2 0000363b: MSTORE 0000363c: PUSH1 0x20 0000363e: ADD 0000363f: DUP9 00003640: PUSH1 0x01 00003642: PUSH1 0x01 00003644: PUSH1 0xa0 00003646: SHL 00003647: SUB 00003648: AND 00003649: DUP2 0000364a: MSTORE 0000364b: PUSH1 0x20 0000364d: ADD 0000364e: DUP8 0000364f: PUSH1 0x01 00003651: PUSH1 0x01 00003653: PUSH1 0xa0 00003655: SHL 00003656: SUB 00003657: AND 00003658: DUP2 00003659: MSTORE 0000365a: PUSH1 0x20 0000365c: ADD 0000365d: DUP7 0000365e: PUSH1 0x01 00003660: DUP2 00003661: GT 00003662: ISZERO 00003663: PUSH2 0x366e 00003666: JUMPI 00003667: PUSH2 0x366e 0000366a: PUSH2 0x51e6 0000366d: JUMP 0000366e: JUMPDEST 0000366f: DUP2 00003670: MSTORE 00003671: POP 00003672: PUSH1 0x40 00003674: MLOAD 00003675: DUP3 00003676: PUSH4 0xffffffff 0000367b: AND 0000367c: PUSH1 0xe0 0000367e: SHL 0000367f: DUP2 00003680: MSTORE 00003681: PUSH1 0x04 00003683: ADD 00003684: PUSH2 0x368d 00003687: SWAP2 00003688: SWAP1 00003689: PUSH2 0x5424 0000368c: JUMP 0000368d: JUMPDEST 0000368e: PUSH1 0x40 00003690: DUP1 00003691: MLOAD 00003692: DUP1 00003693: DUP4 00003694: SUB 00003695: DUP2 00003696: DUP7 00003697: GAS 00003698: DELEGATECALL 00003699: ISZERO 0000369a: DUP1 0000369b: ISZERO 0000369c: PUSH2 0x36a7 0000369f: JUMPI 000036a0: RETURNDATASIZE 000036a1: PUSH0 000036a2: PUSH0 000036a3: RETURNDATACOPY 000036a4: RETURNDATASIZE 000036a5: PUSH0 000036a6: REVERT 000036a7: JUMPDEST 000036a8: POP 000036a9: POP 000036aa: POP 000036ab: POP 000036ac: PUSH1 0x40 000036ae: MLOAD 000036af: RETURNDATASIZE 000036b0: PUSH1 0x1f 000036b2: NOT 000036b3: PUSH1 0x1f 000036b5: DUP3 000036b6: ADD 000036b7: AND 000036b8: DUP3 000036b9: ADD 000036ba: DUP1 000036bb: PUSH1 0x40 000036bd: MSTORE 000036be: POP 000036bf: DUP2 000036c0: ADD 000036c1: SWAP1 000036c2: PUSH2 0x36cb 000036c5: SWAP2 000036c6: SWAP1 000036c7: PUSH2 0x5107 000036ca: JUMP 000036cb: JUMPDEST 000036cc: SWAP1 000036cd: SWAP3 000036ce: POP 000036cf: SWAP1 000036d0: POP 000036d1: PUSH1 0x01 000036d3: DUP4 000036d4: PUSH1 0x01 000036d6: DUP2 000036d7: GT 000036d8: ISZERO 000036d9: PUSH2 0x36e4 000036dc: JUMPI 000036dd: PUSH2 0x36e4 000036e0: PUSH2 0x51e6 000036e3: JUMP 000036e4: JUMPDEST 000036e5: SUB 000036e6: PUSH2 0x3739 000036e9: JUMPI 000036ea: PUSH1 0x40 000036ec: DUP1 000036ed: MLOAD 000036ee: DUP4 000036ef: DUP2 000036f0: MSTORE 000036f1: PUSH1 0x20 000036f3: DUP2 000036f4: ADD 000036f5: DUP4 000036f6: SWAP1 000036f7: MSTORE 000036f8: PUSH1 0x01 000036fa: PUSH1 0x01 000036fc: PUSH1 0xa0 000036fe: SHL 000036ff: SUB 00003700: DUP1 00003701: DUP9 00003702: AND 00003703: SWAP3 00003704: SWAP1 00003705: DUP10 00003706: AND 00003707: SWAP2 00003708: CALLER 00003709: SWAP2 0000370a: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db 0000372b: SWAP2 0000372c: ADD 0000372d: PUSH1 0x40 0000372f: MLOAD 00003730: DUP1 00003731: SWAP2 00003732: SUB 00003733: SWAP1 00003734: LOG4 00003735: PUSH2 0x3785 00003738: JUMP 00003739: JUMPDEST 0000373a: PUSH1 0x40 0000373c: DUP1 0000373d: MLOAD 0000373e: DUP4 0000373f: DUP2 00003740: MSTORE 00003741: PUSH1 0x20 00003743: DUP2 00003744: ADD 00003745: DUP4 00003746: SWAP1 00003747: MSTORE 00003748: PUSH1 0x01 0000374a: PUSH1 0x01 0000374c: PUSH1 0xa0 0000374e: SHL 0000374f: SUB 00003750: DUP1 00003751: DUP9 00003752: AND 00003753: SWAP3 00003754: SWAP1 00003755: DUP10 00003756: AND 00003757: SWAP2 00003758: CALLER 00003759: SWAP2 0000375a: PUSH32 0x2dac01ea07cfa812db5881eaad96ba201c018c042b8f9ea7278cdf6f29e65f24 0000377b: SWAP2 0000377c: ADD 0000377d: PUSH1 0x40 0000377f: MLOAD 00003780: DUP1 00003781: SWAP2 00003782: SUB 00003783: SWAP1 00003784: LOG4 00003785: JUMPDEST 00003786: SWAP7 00003787: POP 00003788: SWAP7 00003789: SWAP5 0000378a: POP 0000378b: POP 0000378c: POP 0000378d: POP 0000378e: POP 0000378f: JUMP 00003790: JUMPDEST 00003791: PUSH0 00003792: PUSH0 00003793: PUSH0 00003794: PUSH2 0x379e 00003797: DUP8 00003798: DUP8 00003799: DUP7 0000379a: PUSH2 0x3ee4 0000379d: JUMP 0000379e: JUMPDEST 0000379f: SWAP2 000037a0: POP 000037a1: SWAP2 000037a2: POP 000037a3: DUP2 000037a4: PUSH0 000037a5: SUB 000037a6: PUSH2 0x37b3 000037a9: JUMPI 000037aa: DUP8 000037ab: SWAP3 000037ac: POP 000037ad: POP 000037ae: POP 000037af: PUSH2 0x17b0 000037b2: JUMP 000037b3: JUMPDEST 000037b4: PUSH2 0x3411 000037b7: DUP9 000037b8: DUP3 000037b9: DUP5 000037ba: DUP9 000037bb: PUSH2 0x3f3f 000037be: JUMP 000037bf: JUMPDEST 000037c0: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 000037e1: DUP1 000037e2: SLOAD 000037e3: PUSH1 0x01 000037e5: PUSH1 0x40 000037e7: SHL 000037e8: DUP2 000037e9: DIV 000037ea: PUSH1 0xff 000037ec: AND 000037ed: ISZERO 000037ee: SWAP1 000037ef: PUSH1 0x01 000037f1: PUSH1 0x01 000037f3: PUSH1 0x40 000037f5: SHL 000037f6: SUB 000037f7: AND 000037f8: PUSH0 000037f9: DUP2 000037fa: ISZERO 000037fb: DUP1 000037fc: ISZERO 000037fd: PUSH2 0x3803 00003800: JUMPI 00003801: POP 00003802: DUP3 00003803: JUMPDEST 00003804: SWAP1 00003805: POP 00003806: PUSH0 00003807: DUP3 00003808: PUSH1 0x01 0000380a: PUSH1 0x01 0000380c: PUSH1 0x40 0000380e: SHL 0000380f: SUB 00003810: AND 00003811: PUSH1 0x01 00003813: EQ 00003814: DUP1 00003815: ISZERO 00003816: PUSH2 0x381e 00003819: JUMPI 0000381a: POP 0000381b: ADDRESS 0000381c: EXTCODESIZE 0000381d: ISZERO 0000381e: JUMPDEST 0000381f: SWAP1 00003820: POP 00003821: DUP2 00003822: ISZERO 00003823: DUP1 00003824: ISZERO 00003825: PUSH2 0x382c 00003828: JUMPI 00003829: POP 0000382a: DUP1 0000382b: ISZERO 0000382c: JUMPDEST 0000382d: ISZERO 0000382e: PUSH2 0x384a 00003831: JUMPI 00003832: PUSH1 0x40 00003834: MLOAD 00003835: PUSH4 0xf92ee8a9 0000383a: PUSH1 0xe0 0000383c: SHL 0000383d: DUP2 0000383e: MSTORE 0000383f: PUSH1 0x04 00003841: ADD 00003842: PUSH1 0x40 00003844: MLOAD 00003845: DUP1 00003846: SWAP2 00003847: SUB 00003848: SWAP1 00003849: REVERT 0000384a: JUMPDEST 0000384b: DUP5 0000384c: SLOAD 0000384d: PUSH8 0xffffffffffffffff 00003856: NOT 00003857: AND 00003858: PUSH1 0x01 0000385a: OR 0000385b: DUP6 0000385c: SSTORE 0000385d: DUP4 0000385e: ISZERO 0000385f: PUSH2 0x3874 00003862: JUMPI 00003863: DUP5 00003864: SLOAD 00003865: PUSH1 0xff 00003867: PUSH1 0x40 00003869: SHL 0000386a: NOT 0000386b: AND 0000386c: PUSH1 0x01 0000386e: PUSH1 0x40 00003870: SHL 00003871: OR 00003872: DUP6 00003873: SSTORE 00003874: JUMPDEST 00003875: PUSH2 0x38b2 00003878: PUSH1 0x40 0000387a: MLOAD 0000387b: DUP1 0000387c: PUSH1 0x40 0000387e: ADD 0000387f: PUSH1 0x40 00003881: MSTORE 00003882: DUP1 00003883: PUSH1 0x18 00003885: DUP2 00003886: MSTORE 00003887: PUSH1 0x20 00003889: ADD 0000388a: PUSH32 0x53696c6f5368617265546f6b656e4549503731324e616d650000000000000000 000038ab: DUP2 000038ac: MSTORE 000038ad: POP 000038ae: PUSH2 0x3f81 000038b1: JUMP 000038b2: JUMPDEST 000038b3: PUSH1 0x40 000038b5: MLOAD 000038b6: PUSH4 0x1983f68f 000038bb: PUSH1 0xe2 000038bd: SHL 000038be: DUP2 000038bf: MSTORE 000038c0: PUSH1 0x01 000038c2: PUSH1 0x01 000038c4: PUSH1 0xa0 000038c6: SHL 000038c7: SUB 000038c8: DUP1 000038c9: DUP11 000038ca: AND 000038cb: PUSH1 0x04 000038cd: DUP4 000038ce: ADD 000038cf: MSTORE 000038d0: DUP9 000038d1: AND 000038d2: PUSH1 0x24 000038d4: DUP3 000038d5: ADD 000038d6: MSTORE 000038d7: PUSH3 0xffffff 000038db: DUP8 000038dc: AND 000038dd: PUSH1 0x44 000038df: DUP3 000038e0: ADD 000038e1: MSTORE 000038e2: PUSH20 0x73de8d3b49000cc9fd2a05f27b37af0c1f6e3133 000038f7: SWAP1 000038f8: PUSH4 0x660fda3c 000038fd: SWAP1 000038fe: PUSH1 0x64 00003900: ADD 00003901: PUSH0 00003902: PUSH1 0x40 00003904: MLOAD 00003905: DUP1 00003906: DUP4 00003907: SUB 00003908: DUP2 00003909: DUP7 0000390a: DUP1 0000390b: EXTCODESIZE 0000390c: ISZERO 0000390d: DUP1 0000390e: ISZERO 0000390f: PUSH2 0x3916 00003912: JUMPI 00003913: PUSH0 00003914: PUSH0 00003915: REVERT 00003916: JUMPDEST 00003917: POP 00003918: GAS 00003919: DELEGATECALL 0000391a: ISZERO 0000391b: DUP1 0000391c: ISZERO 0000391d: PUSH2 0x3928 00003920: JUMPI 00003921: RETURNDATASIZE 00003922: PUSH0 00003923: PUSH0 00003924: RETURNDATACOPY 00003925: RETURNDATASIZE 00003926: PUSH0 00003927: REVERT 00003928: JUMPDEST 00003929: POP 0000392a: POP 0000392b: POP 0000392c: POP 0000392d: DUP4 0000392e: ISZERO 0000392f: PUSH2 0x3972 00003932: JUMPI 00003933: DUP5 00003934: SLOAD 00003935: PUSH1 0xff 00003937: PUSH1 0x40 00003939: SHL 0000393a: NOT 0000393b: AND 0000393c: DUP6 0000393d: SSTORE 0000393e: PUSH1 0x40 00003940: MLOAD 00003941: PUSH1 0x01 00003943: DUP2 00003944: MSTORE 00003945: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 00003966: SWAP1 00003967: PUSH1 0x20 00003969: ADD 0000396a: PUSH1 0x40 0000396c: MLOAD 0000396d: DUP1 0000396e: SWAP2 0000396f: SUB 00003970: SWAP1 00003971: LOG1 00003972: JUMPDEST 00003973: POP 00003974: POP 00003975: POP 00003976: POP 00003977: POP 00003978: POP 00003979: POP 0000397a: POP 0000397b: JUMP 0000397c: JUMPDEST 0000397d: PUSH1 0x01 0000397f: PUSH1 0x01 00003981: PUSH1 0xa0 00003983: SHL 00003984: SUB 00003985: DUP3 00003986: AND 00003987: PUSH2 0x39a5 0000398a: JUMPI 0000398b: PUSH1 0x40 0000398d: MLOAD 0000398e: PUSH4 0xec442f05 00003993: PUSH1 0xe0 00003995: SHL 00003996: DUP2 00003997: MSTORE 00003998: PUSH0 00003999: PUSH1 0x04 0000399b: DUP3 0000399c: ADD 0000399d: MSTORE 0000399e: PUSH1 0x24 000039a0: ADD 000039a1: PUSH2 0x1ada 000039a4: JUMP 000039a5: JUMPDEST 000039a6: PUSH2 0x2100 000039a9: PUSH0 000039aa: DUP4 000039ab: DUP4 000039ac: PUSH2 0x3fac 000039af: JUMP 000039b0: JUMPDEST 000039b1: DUP4 000039b2: TIMESTAMP 000039b3: GT 000039b4: ISZERO 000039b5: PUSH2 0x39d4 000039b8: JUMPI 000039b9: PUSH1 0x40 000039bb: MLOAD 000039bc: PUSH4 0x313c8981 000039c1: PUSH1 0xe1 000039c3: SHL 000039c4: DUP2 000039c5: MSTORE 000039c6: PUSH1 0x04 000039c8: DUP2 000039c9: ADD 000039ca: DUP6 000039cb: SWAP1 000039cc: MSTORE 000039cd: PUSH1 0x24 000039cf: ADD 000039d0: PUSH2 0x1ada 000039d3: JUMP 000039d4: JUMPDEST 000039d5: PUSH0 000039d6: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 000039f7: DUP9 000039f8: DUP9 000039f9: DUP9 000039fa: PUSH2 0x3a3e 000039fd: DUP13 000039fe: PUSH1 0x01 00003a00: PUSH1 0x01 00003a02: PUSH1 0xa0 00003a04: SHL 00003a05: SUB 00003a06: AND 00003a07: PUSH0 00003a08: SWAP1 00003a09: DUP2 00003a0a: MSTORE 00003a0b: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00 00003a2c: PUSH1 0x20 00003a2e: MSTORE 00003a2f: PUSH1 0x40 00003a31: SWAP1 00003a32: KECCAK256 00003a33: DUP1 00003a34: SLOAD 00003a35: PUSH1 0x01 00003a37: DUP2 00003a38: ADD 00003a39: SWAP1 00003a3a: SWAP2 00003a3b: SSTORE 00003a3c: SWAP1 00003a3d: JUMP 00003a3e: JUMPDEST 00003a3f: PUSH1 0x40 00003a41: DUP1 00003a42: MLOAD 00003a43: PUSH1 0x20 00003a45: DUP2 00003a46: ADD 00003a47: SWAP7 00003a48: SWAP1 00003a49: SWAP7 00003a4a: MSTORE 00003a4b: PUSH1 0x01 00003a4d: PUSH1 0x01 00003a4f: PUSH1 0xa0 00003a51: SHL 00003a52: SUB 00003a53: SWAP5 00003a54: DUP6 00003a55: AND 00003a56: SWAP1 00003a57: DUP7 00003a58: ADD 00003a59: MSTORE 00003a5a: SWAP3 00003a5b: SWAP1 00003a5c: SWAP2 00003a5d: AND 00003a5e: PUSH1 0x60 00003a60: DUP5 00003a61: ADD 00003a62: MSTORE 00003a63: PUSH1 0x80 00003a65: DUP4 00003a66: ADD 00003a67: MSTORE 00003a68: PUSH1 0xa0 00003a6a: DUP3 00003a6b: ADD 00003a6c: MSTORE 00003a6d: PUSH1 0xc0 00003a6f: DUP2 00003a70: ADD 00003a71: DUP7 00003a72: SWAP1 00003a73: MSTORE 00003a74: PUSH1 0xe0 00003a76: ADD 00003a77: PUSH1 0x40 00003a79: MLOAD 00003a7a: PUSH1 0x20 00003a7c: DUP2 00003a7d: DUP4 00003a7e: SUB 00003a7f: SUB 00003a80: DUP2 00003a81: MSTORE 00003a82: SWAP1 00003a83: PUSH1 0x40 00003a85: MSTORE 00003a86: DUP1 00003a87: MLOAD 00003a88: SWAP1 00003a89: PUSH1 0x20 00003a8b: ADD 00003a8c: KECCAK256 00003a8d: SWAP1 00003a8e: POP 00003a8f: PUSH0 00003a90: PUSH2 0x3a98 00003a93: DUP3 00003a94: PUSH2 0x3fe2 00003a97: JUMP 00003a98: JUMPDEST 00003a99: SWAP1 00003a9a: POP 00003a9b: PUSH0 00003a9c: PUSH2 0x3aa7 00003a9f: DUP3 00003aa0: DUP8 00003aa1: DUP8 00003aa2: DUP8 00003aa3: PUSH2 0x400e 00003aa6: JUMP 00003aa7: JUMPDEST 00003aa8: SWAP1 00003aa9: POP 00003aaa: DUP10 00003aab: PUSH1 0x01 00003aad: PUSH1 0x01 00003aaf: PUSH1 0xa0 00003ab1: SHL 00003ab2: SUB 00003ab3: AND 00003ab4: DUP2 00003ab5: PUSH1 0x01 00003ab7: PUSH1 0x01 00003ab9: PUSH1 0xa0 00003abb: SHL 00003abc: SUB 00003abd: AND 00003abe: EQ 00003abf: PUSH2 0x3aee 00003ac2: JUMPI 00003ac3: PUSH1 0x40 00003ac5: MLOAD 00003ac6: PUSH4 0x25c00723 00003acb: PUSH1 0xe1 00003acd: SHL 00003ace: DUP2 00003acf: MSTORE 00003ad0: PUSH1 0x01 00003ad2: PUSH1 0x01 00003ad4: PUSH1 0xa0 00003ad6: SHL 00003ad7: SUB 00003ad8: DUP1 00003ad9: DUP4 00003ada: AND 00003adb: PUSH1 0x04 00003add: DUP4 00003ade: ADD 00003adf: MSTORE 00003ae0: DUP12 00003ae1: AND 00003ae2: PUSH1 0x24 00003ae4: DUP3 00003ae5: ADD 00003ae6: MSTORE 00003ae7: PUSH1 0x44 00003ae9: ADD 00003aea: PUSH2 0x1ada 00003aed: JUMP 00003aee: JUMPDEST 00003aef: PUSH2 0x3af9 00003af2: DUP11 00003af3: DUP11 00003af4: DUP11 00003af5: PUSH2 0x3c84 00003af8: JUMP 00003af9: JUMPDEST 00003afa: POP 00003afb: POP 00003afc: POP 00003afd: POP 00003afe: POP 00003aff: POP 00003b00: POP 00003b01: POP 00003b02: POP 00003b03: POP 00003b04: JUMP 00003b05: JUMPDEST 00003b06: PUSH1 0x01 00003b08: PUSH1 0x01 00003b0a: PUSH1 0xa0 00003b0c: SHL 00003b0d: SUB 00003b0e: DUP4 00003b0f: AND 00003b10: PUSH2 0x3b2e 00003b13: JUMPI 00003b14: PUSH1 0x40 00003b16: MLOAD 00003b17: PUSH4 0x4b637e8f 00003b1c: PUSH1 0xe1 00003b1e: SHL 00003b1f: DUP2 00003b20: MSTORE 00003b21: PUSH0 00003b22: PUSH1 0x04 00003b24: DUP3 00003b25: ADD 00003b26: MSTORE 00003b27: PUSH1 0x24 00003b29: ADD 00003b2a: PUSH2 0x1ada 00003b2d: JUMP 00003b2e: JUMPDEST 00003b2f: PUSH1 0x01 00003b31: PUSH1 0x01 00003b33: PUSH1 0xa0 00003b35: SHL 00003b36: SUB 00003b37: DUP3 00003b38: AND 00003b39: PUSH2 0x3b57 00003b3c: JUMPI 00003b3d: PUSH1 0x40 00003b3f: MLOAD 00003b40: PUSH4 0xec442f05 00003b45: PUSH1 0xe0 00003b47: SHL 00003b48: DUP2 00003b49: MSTORE 00003b4a: PUSH0 00003b4b: PUSH1 0x04 00003b4d: DUP3 00003b4e: ADD 00003b4f: MSTORE 00003b50: PUSH1 0x24 00003b52: ADD 00003b53: PUSH2 0x1ada 00003b56: JUMP 00003b57: JUMPDEST 00003b58: PUSH2 0x2147 00003b5b: DUP4 00003b5c: DUP4 00003b5d: DUP4 00003b5e: PUSH2 0x3fac 00003b61: JUMP 00003b62: JUMPDEST 00003b63: PUSH0 00003b64: PUSH0 00003b65: PUSH2 0x3b6c 00003b68: PUSH2 0x30f1 00003b6b: JUMP 00003b6c: JUMPDEST 00003b6d: SWAP1 00003b6e: POP 00003b6f: PUSH2 0x2ca9 00003b72: DUP2 00003b73: PUSH1 0x40 00003b75: ADD 00003b76: MLOAD 00003b77: DUP3 00003b78: PUSH2 0x0120 00003b7b: ADD 00003b7c: MLOAD 00003b7d: PUSH2 0x3dfa 00003b80: JUMP 00003b81: JUMPDEST 00003b82: PUSH0 00003b83: PUSH2 0x3b8c 00003b86: DUP5 00003b87: DUP5 00003b88: PUSH2 0x23f1 00003b8b: JUMP 00003b8c: JUMPDEST 00003b8d: SWAP1 00003b8e: POP 00003b8f: PUSH0 00003b90: NOT 00003b91: DUP2 00003b92: EQ 00003b93: PUSH2 0x1899 00003b96: JUMPI 00003b97: DUP2 00003b98: DUP2 00003b99: LT 00003b9a: ISZERO 00003b9b: PUSH2 0x3bd0 00003b9e: JUMPI 00003b9f: PUSH1 0x40 00003ba1: MLOAD 00003ba2: PUSH4 0x7dc7a0d9 00003ba7: PUSH1 0xe1 00003ba9: SHL 00003baa: DUP2 00003bab: MSTORE 00003bac: PUSH1 0x01 00003bae: PUSH1 0x01 00003bb0: PUSH1 0xa0 00003bb2: SHL 00003bb3: SUB 00003bb4: DUP5 00003bb5: AND 00003bb6: PUSH1 0x04 00003bb8: DUP3 00003bb9: ADD 00003bba: MSTORE 00003bbb: PUSH1 0x24 00003bbd: DUP2 00003bbe: ADD 00003bbf: DUP3 00003bc0: SWAP1 00003bc1: MSTORE 00003bc2: PUSH1 0x44 00003bc4: DUP2 00003bc5: ADD 00003bc6: DUP4 00003bc7: SWAP1 00003bc8: MSTORE 00003bc9: PUSH1 0x64 00003bcb: ADD 00003bcc: PUSH2 0x1ada 00003bcf: JUMP 00003bd0: JUMPDEST 00003bd1: PUSH2 0x1899 00003bd4: DUP5 00003bd5: DUP5 00003bd6: DUP5 00003bd7: DUP5 00003bd8: SUB 00003bd9: PUSH0 00003bda: PUSH2 0x403a 00003bdd: JUMP 00003bde: JUMPDEST 00003bdf: PUSH1 0x01 00003be1: PUSH1 0x01 00003be3: PUSH1 0xa0 00003be5: SHL 00003be6: SUB 00003be7: DUP3 00003be8: AND 00003be9: PUSH2 0x3c07 00003bec: JUMPI 00003bed: PUSH1 0x40 00003bef: MLOAD 00003bf0: PUSH4 0x4b637e8f 00003bf5: PUSH1 0xe1 00003bf7: SHL 00003bf8: DUP2 00003bf9: MSTORE 00003bfa: PUSH0 00003bfb: PUSH1 0x04 00003bfd: DUP3 00003bfe: ADD 00003bff: MSTORE 00003c00: PUSH1 0x24 00003c02: ADD 00003c03: PUSH2 0x1ada 00003c06: JUMP 00003c07: JUMPDEST 00003c08: PUSH2 0x2100 00003c0b: DUP3 00003c0c: PUSH0 00003c0d: DUP4 00003c0e: PUSH2 0x3fac 00003c11: JUMP 00003c12: JUMPDEST 00003c13: PUSH1 0x01 00003c15: PUSH0 00003c16: SWAP1 00003c17: DUP2 00003c18: MSTORE 00003c19: PUSH0 00003c1a: MLOAD 00003c1b: PUSH1 0x20 00003c1d: PUSH2 0x5728 00003c20: PUSH0 00003c21: CODECOPY 00003c22: PUSH0 00003c23: MLOAD 00003c24: SWAP1 00003c25: PUSH0 00003c26: MSTORE 00003c27: PUSH1 0x20 00003c29: DUP2 00003c2a: SWAP1 00003c2b: MSTORE 00003c2c: PUSH0 00003c2d: MLOAD 00003c2e: PUSH1 0x20 00003c30: PUSH2 0x5788 00003c33: PUSH0 00003c34: CODECOPY 00003c35: PUSH0 00003c36: MLOAD 00003c37: SWAP1 00003c38: PUSH0 00003c39: MSTORE 00003c3a: SLOAD 00003c3b: SWAP2 00003c3c: SWAP1 00003c3d: PUSH0 00003c3e: MLOAD 00003c3f: PUSH1 0x20 00003c41: PUSH2 0x5748 00003c44: PUSH0 00003c45: CODECOPY 00003c46: PUSH0 00003c47: MLOAD 00003c48: SWAP1 00003c49: PUSH0 00003c4a: MSTORE 00003c4b: SWAP1 00003c4c: DUP3 00003c4d: DUP1 00003c4e: PUSH2 0x2b3d 00003c51: JUMP 00003c52: JUMPDEST 00003c53: PUSH0 00003c54: PUSH0 00003c55: PUSH0 00003c56: PUSH2 0x3c61 00003c59: ADDRESS 00003c5a: DUP8 00003c5b: DUP8 00003c5c: DUP8 00003c5d: PUSH2 0x3d04 00003c60: JUMP 00003c61: JUMPDEST 00003c62: SWAP2 00003c63: POP 00003c64: PUSH2 0x3c6d 00003c67: ADDRESS 00003c68: DUP8 00003c69: PUSH2 0x3dfa 00003c6c: JUMP 00003c6d: JUMPDEST 00003c6e: SWAP1 00003c6f: POP 00003c70: PUSH2 0x3c79 00003c73: DUP3 00003c74: DUP3 00003c75: PUSH2 0x4131 00003c78: JUMP 00003c79: JUMPDEST 00003c7a: SWAP3 00003c7b: POP 00003c7c: SWAP4 00003c7d: POP 00003c7e: SWAP4 00003c7f: POP 00003c80: SWAP4 00003c81: SWAP1 00003c82: POP 00003c83: JUMP 00003c84: JUMPDEST 00003c85: PUSH2 0x2147 00003c88: DUP4 00003c89: DUP4 00003c8a: DUP4 00003c8b: PUSH1 0x01 00003c8d: PUSH2 0x403a 00003c90: JUMP 00003c91: JUMPDEST 00003c92: PUSH0 00003c93: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 00003cb4: PUSH2 0x3cbb 00003cb7: PUSH2 0x4149 00003cba: JUMP 00003cbb: JUMPDEST 00003cbc: PUSH2 0x3cc3 00003cbf: PUSH2 0x41b1 00003cc2: JUMP 00003cc3: JUMPDEST 00003cc4: PUSH1 0x40 00003cc6: DUP1 00003cc7: MLOAD 00003cc8: PUSH1 0x20 00003cca: DUP2 00003ccb: ADD 00003ccc: SWAP5 00003ccd: SWAP1 00003cce: SWAP5 00003ccf: MSTORE 00003cd0: DUP4 00003cd1: ADD 00003cd2: SWAP2 00003cd3: SWAP1 00003cd4: SWAP2 00003cd5: MSTORE 00003cd6: PUSH1 0x60 00003cd8: DUP3 00003cd9: ADD 00003cda: MSTORE 00003cdb: CHAINID 00003cdc: PUSH1 0x80 00003cde: DUP3 00003cdf: ADD 00003ce0: MSTORE 00003ce1: ADDRESS 00003ce2: PUSH1 0xa0 00003ce4: DUP3 00003ce5: ADD 00003ce6: MSTORE 00003ce7: PUSH1 0xc0 00003ce9: ADD 00003cea: PUSH1 0x40 00003cec: MLOAD 00003ced: PUSH1 0x20 00003cef: DUP2 00003cf0: DUP4 00003cf1: SUB 00003cf2: SUB 00003cf3: DUP2 00003cf4: MSTORE 00003cf5: SWAP1 00003cf6: PUSH1 0x40 00003cf8: MSTORE 00003cf9: DUP1 00003cfa: MLOAD 00003cfb: SWAP1 00003cfc: PUSH1 0x20 00003cfe: ADD 00003cff: KECCAK256 00003d00: SWAP1 00003d01: POP 00003d02: SWAP1 00003d03: JUMP 00003d04: JUMPDEST 00003d05: PUSH1 0x40 00003d07: MLOAD 00003d08: PUSH4 0x67efe7fd 00003d0d: PUSH1 0xe1 00003d0f: SHL 00003d10: DUP2 00003d11: MSTORE 00003d12: PUSH1 0x01 00003d14: PUSH1 0x01 00003d16: PUSH1 0xa0 00003d18: SHL 00003d19: SUB 00003d1a: DUP6 00003d1b: DUP2 00003d1c: AND 00003d1d: PUSH1 0x04 00003d1f: DUP4 00003d20: ADD 00003d21: MSTORE 00003d22: TIMESTAMP 00003d23: PUSH1 0x24 00003d25: DUP4 00003d26: ADD 00003d27: MSTORE 00003d28: PUSH0 00003d29: SWAP2 00003d2a: DUP3 00003d2b: SWAP2 00003d2c: DUP7 00003d2d: AND 00003d2e: SWAP1 00003d2f: PUSH4 0xcfdfcffa 00003d34: SWAP1 00003d35: PUSH1 0x44 00003d37: ADD 00003d38: PUSH1 0x20 00003d3a: PUSH1 0x40 00003d3c: MLOAD 00003d3d: DUP1 00003d3e: DUP4 00003d3f: SUB 00003d40: DUP2 00003d41: DUP7 00003d42: GAS 00003d43: STATICCALL 00003d44: SWAP3 00003d45: POP 00003d46: POP 00003d47: POP 00003d48: DUP1 00003d49: ISZERO 00003d4a: PUSH2 0x3d70 00003d4d: JUMPI 00003d4e: POP 00003d4f: PUSH1 0x40 00003d51: DUP1 00003d52: MLOAD 00003d53: PUSH1 0x1f 00003d55: RETURNDATASIZE 00003d56: SWAP1 00003d57: DUP2 00003d58: ADD 00003d59: PUSH1 0x1f 00003d5b: NOT 00003d5c: AND 00003d5d: DUP3 00003d5e: ADD 00003d5f: SWAP1 00003d60: SWAP3 00003d61: MSTORE 00003d62: PUSH2 0x3d6d 00003d65: SWAP2 00003d66: DUP2 00003d67: ADD 00003d68: SWAP1 00003d69: PUSH2 0x5092 00003d6c: JUMP 00003d6d: JUMPDEST 00003d6e: PUSH1 0x01 00003d70: JUMPDEST 00003d71: ISZERO 00003d72: PUSH2 0x3d78 00003d75: JUMPI 00003d76: SWAP1 00003d77: POP 00003d78: JUMPDEST 00003d79: PUSH0 00003d7a: PUSH0 00003d7b: DUP8 00003d7c: PUSH1 0x01 00003d7e: PUSH1 0x01 00003d80: PUSH1 0xa0 00003d82: SHL 00003d83: SUB 00003d84: AND 00003d85: PUSH4 0x39c5c505 00003d8a: PUSH1 0x40 00003d8c: MLOAD 00003d8d: DUP2 00003d8e: PUSH4 0xffffffff 00003d93: AND 00003d94: PUSH1 0xe0 00003d96: SHL 00003d97: DUP2 00003d98: MSTORE 00003d99: PUSH1 0x04 00003d9b: ADD 00003d9c: PUSH1 0x40 00003d9e: DUP1 00003d9f: MLOAD 00003da0: DUP1 00003da1: DUP4 00003da2: SUB 00003da3: DUP2 00003da4: DUP7 00003da5: GAS 00003da6: STATICCALL 00003da7: ISZERO 00003da8: DUP1 00003da9: ISZERO 00003daa: PUSH2 0x3db5 00003dad: JUMPI 00003dae: RETURNDATASIZE 00003daf: PUSH0 00003db0: PUSH0 00003db1: RETURNDATACOPY 00003db2: RETURNDATASIZE 00003db3: PUSH0 00003db4: REVERT 00003db5: JUMPDEST 00003db6: POP 00003db7: POP 00003db8: POP 00003db9: POP 00003dba: PUSH1 0x40 00003dbc: MLOAD 00003dbd: RETURNDATASIZE 00003dbe: PUSH1 0x1f 00003dc0: NOT 00003dc1: PUSH1 0x1f 00003dc3: DUP3 00003dc4: ADD 00003dc5: AND 00003dc6: DUP3 00003dc7: ADD 00003dc8: DUP1 00003dc9: PUSH1 0x40 00003dcb: MSTORE 00003dcc: POP 00003dcd: DUP2 00003dce: ADD 00003dcf: SWAP1 00003dd0: PUSH2 0x3dd9 00003dd3: SWAP2 00003dd4: SWAP1 00003dd5: PUSH2 0x5107 00003dd8: JUMP 00003dd9: JUMPDEST 00003dda: SWAP2 00003ddb: POP 00003ddc: SWAP2 00003ddd: POP 00003dde: PUSH2 0x3dea 00003de1: DUP3 00003de2: DUP3 00003de3: DUP6 00003de4: DUP10 00003de5: DUP10 00003de6: PUSH2 0x41f3 00003de9: JUMP 00003dea: JUMPDEST 00003deb: POP 00003dec: SWAP2 00003ded: SWAP11 00003dee: SWAP10 00003def: POP 00003df0: POP 00003df1: POP 00003df2: POP 00003df3: POP 00003df4: POP 00003df5: POP 00003df6: POP 00003df7: POP 00003df8: POP 00003df9: JUMP 00003dfa: JUMPDEST 00003dfb: PUSH1 0x40 00003dfd: MLOAD 00003dfe: PUSH4 0x67efe7fd 00003e03: PUSH1 0xe1 00003e05: SHL 00003e06: DUP2 00003e07: MSTORE 00003e08: PUSH1 0x01 00003e0a: PUSH1 0x01 00003e0c: PUSH1 0xa0 00003e0e: SHL 00003e0f: SUB 00003e10: DUP4 00003e11: DUP2 00003e12: AND 00003e13: PUSH1 0x04 00003e15: DUP4 00003e16: ADD 00003e17: MSTORE 00003e18: TIMESTAMP 00003e19: PUSH1 0x24 00003e1b: DUP4 00003e1c: ADD 00003e1d: MSTORE 00003e1e: PUSH0 00003e1f: SWAP2 00003e20: DUP3 00003e21: SWAP2 00003e22: DUP5 00003e23: AND 00003e24: SWAP1 00003e25: PUSH4 0xcfdfcffa 00003e2a: SWAP1 00003e2b: PUSH1 0x44 00003e2d: ADD 00003e2e: PUSH1 0x20 00003e30: PUSH1 0x40 00003e32: MLOAD 00003e33: DUP1 00003e34: DUP4 00003e35: SUB 00003e36: DUP2 00003e37: DUP7 00003e38: GAS 00003e39: STATICCALL 00003e3a: SWAP3 00003e3b: POP 00003e3c: POP 00003e3d: POP 00003e3e: DUP1 00003e3f: ISZERO 00003e40: PUSH2 0x3e66 00003e43: JUMPI 00003e44: POP 00003e45: PUSH1 0x40 00003e47: DUP1 00003e48: MLOAD 00003e49: PUSH1 0x1f 00003e4b: RETURNDATASIZE 00003e4c: SWAP1 00003e4d: DUP2 00003e4e: ADD 00003e4f: PUSH1 0x1f 00003e51: NOT 00003e52: AND 00003e53: DUP3 00003e54: ADD 00003e55: SWAP1 00003e56: SWAP3 00003e57: MSTORE 00003e58: PUSH2 0x3e63 00003e5b: SWAP2 00003e5c: DUP2 00003e5d: ADD 00003e5e: SWAP1 00003e5f: PUSH2 0x5092 00003e62: JUMP 00003e63: JUMPDEST 00003e64: PUSH1 0x01 00003e66: JUMPDEST 00003e67: ISZERO 00003e68: PUSH2 0x3e6e 00003e6b: JUMPI 00003e6c: SWAP1 00003e6d: POP 00003e6e: JUMPDEST 00003e6f: PUSH1 0x40 00003e71: MLOAD 00003e72: PUSH4 0xb6d821c7 00003e77: PUSH1 0xe0 00003e79: SHL 00003e7a: DUP2 00003e7b: MSTORE 00003e7c: PUSH2 0x201f 00003e7f: SWAP1 00003e80: PUSH1 0x01 00003e82: PUSH1 0x01 00003e84: PUSH1 0xa0 00003e86: SHL 00003e87: SUB 00003e88: DUP7 00003e89: AND 00003e8a: SWAP1 00003e8b: PUSH4 0xb6d821c7 00003e90: SWAP1 00003e91: PUSH2 0x3e9f 00003e94: SWAP1 00003e95: PUSH1 0x02 00003e97: SWAP1 00003e98: PUSH1 0x04 00003e9a: ADD 00003e9b: PUSH2 0x53d8 00003e9e: JUMP 00003e9f: JUMPDEST 00003ea0: PUSH1 0x20 00003ea2: PUSH1 0x40 00003ea4: MLOAD 00003ea5: DUP1 00003ea6: DUP4 00003ea7: SUB 00003ea8: DUP2 00003ea9: DUP7 00003eaa: GAS 00003eab: STATICCALL 00003eac: ISZERO 00003ead: DUP1 00003eae: ISZERO 00003eaf: PUSH2 0x3eba 00003eb2: JUMPI 00003eb3: RETURNDATASIZE 00003eb4: PUSH0 00003eb5: PUSH0 00003eb6: RETURNDATACOPY 00003eb7: RETURNDATASIZE 00003eb8: PUSH0 00003eb9: REVERT 00003eba: JUMPDEST 00003ebb: POP 00003ebc: POP 00003ebd: POP 00003ebe: POP 00003ebf: PUSH1 0x40 00003ec1: MLOAD 00003ec2: RETURNDATASIZE 00003ec3: PUSH1 0x1f 00003ec5: NOT 00003ec6: PUSH1 0x1f 00003ec8: DUP3 00003ec9: ADD 00003eca: AND 00003ecb: DUP3 00003ecc: ADD 00003ecd: DUP1 00003ece: PUSH1 0x40 00003ed0: MSTORE 00003ed1: POP 00003ed2: DUP2 00003ed3: ADD 00003ed4: SWAP1 00003ed5: PUSH2 0x3ede 00003ed8: SWAP2 00003ed9: SWAP1 00003eda: PUSH2 0x5092 00003edd: JUMP 00003ede: JUMPDEST 00003edf: DUP3 00003ee0: PUSH2 0x424d 00003ee3: JUMP 00003ee4: JUMPDEST 00003ee5: PUSH0 00003ee6: PUSH0 00003ee7: DUP4 00003ee8: PUSH0 00003ee9: SUB 00003eea: PUSH2 0x3ef1 00003eed: JUMPI 00003eee: PUSH0 00003eef: SWAP5 00003ef0: POP 00003ef1: JUMPDEST 00003ef2: PUSH1 0x02 00003ef4: DUP4 00003ef5: PUSH1 0x02 00003ef7: DUP2 00003ef8: GT 00003ef9: ISZERO 00003efa: PUSH2 0x3f05 00003efd: JUMPI 00003efe: PUSH2 0x3f05 00003f01: PUSH2 0x51e6 00003f04: JUMP 00003f05: JUMPDEST 00003f06: EQ 00003f07: PUSH2 0x3f30 00003f0a: JUMPI 00003f0b: PUSH2 0x3f16 00003f0e: PUSH1 0x03 00003f10: PUSH1 0x0a 00003f12: PUSH2 0x5571 00003f15: JUMP 00003f16: JUMPDEST 00003f17: PUSH2 0x3f20 00003f1a: SWAP1 00003f1b: DUP6 00003f1c: PUSH2 0x557c 00003f1f: JUMP 00003f20: JUMPDEST 00003f21: PUSH2 0x3f2b 00003f24: DUP7 00003f25: PUSH1 0x01 00003f27: PUSH2 0x557c 00003f2a: JUMP 00003f2b: JUMPDEST 00003f2c: PUSH2 0x3f33 00003f2f: JUMP 00003f30: JUMPDEST 00003f31: DUP4 00003f32: DUP6 00003f33: JUMPDEST 00003f34: SWAP1 00003f35: SWAP7 00003f36: SWAP1 00003f37: SWAP6 00003f38: POP 00003f39: SWAP4 00003f3a: POP 00003f3b: POP 00003f3c: POP 00003f3d: POP 00003f3e: JUMP 00003f3f: JUMPDEST 00003f40: PUSH0 00003f41: PUSH2 0x3f6c 00003f44: PUSH2 0x3f4c 00003f47: DUP4 00003f48: PUSH2 0x4295 00003f4b: JUMP 00003f4c: JUMPDEST 00003f4d: DUP1 00003f4e: ISZERO 00003f4f: PUSH2 0x3f67 00003f52: JUMPI 00003f53: POP 00003f54: PUSH0 00003f55: DUP5 00003f56: DUP1 00003f57: PUSH2 0x3f62 00003f5a: JUMPI 00003f5b: PUSH2 0x3f62 00003f5e: PUSH2 0x558f 00003f61: JUMP 00003f62: JUMPDEST 00003f63: DUP7 00003f64: DUP9 00003f65: MULMOD 00003f66: GT 00003f67: JUMPDEST 00003f68: ISZERO 00003f69: ISZERO 00003f6a: SWAP1 00003f6b: JUMP 00003f6c: JUMPDEST 00003f6d: PUSH2 0x3f77 00003f70: DUP7 00003f71: DUP7 00003f72: DUP7 00003f73: PUSH2 0x42c1 00003f76: JUMP 00003f77: JUMPDEST 00003f78: PUSH2 0x17b0 00003f7b: SWAP2 00003f7c: SWAP1 00003f7d: PUSH2 0x557c 00003f80: JUMP 00003f81: JUMPDEST 00003f82: PUSH2 0x3f89 00003f85: PUSH2 0x437e 00003f88: JUMP 00003f89: JUMPDEST 00003f8a: PUSH2 0x29cc 00003f8d: DUP2 00003f8e: PUSH1 0x40 00003f90: MLOAD 00003f91: DUP1 00003f92: PUSH1 0x40 00003f94: ADD 00003f95: PUSH1 0x40 00003f97: MSTORE 00003f98: DUP1 00003f99: PUSH1 0x01 00003f9b: DUP2 00003f9c: MSTORE 00003f9d: PUSH1 0x20 00003f9f: ADD 00003fa0: PUSH1 0x31 00003fa2: PUSH1 0xf8 00003fa4: SHL 00003fa5: DUP2 00003fa6: MSTORE 00003fa7: POP 00003fa8: PUSH2 0x43c9 00003fab: JUMP 00003fac: JUMPDEST 00003fad: DUP1 00003fae: PUSH0 00003faf: SUB 00003fb0: PUSH2 0x3fcc 00003fb3: JUMPI 00003fb4: PUSH1 0x40 00003fb6: MLOAD 00003fb7: PUSH4 0x10cadee3 00003fbc: PUSH1 0xe0 00003fbe: SHL 00003fbf: DUP2 00003fc0: MSTORE 00003fc1: PUSH1 0x04 00003fc3: ADD 00003fc4: PUSH1 0x40 00003fc6: MLOAD 00003fc7: DUP1 00003fc8: SWAP2 00003fc9: SUB 00003fca: SWAP1 00003fcb: REVERT 00003fcc: JUMPDEST 00003fcd: PUSH2 0x3fd7 00003fd0: DUP4 00003fd1: DUP4 00003fd2: DUP4 00003fd3: PUSH2 0x4428 00003fd6: JUMP 00003fd7: JUMPDEST 00003fd8: PUSH2 0x2147 00003fdb: DUP4 00003fdc: DUP4 00003fdd: DUP4 00003fde: PUSH2 0x4574 00003fe1: JUMP 00003fe2: JUMPDEST 00003fe3: PUSH0 00003fe4: PUSH2 0x10bb 00003fe7: PUSH2 0x3fee 00003fea: PUSH2 0x2af7 00003fed: JUMP 00003fee: JUMPDEST 00003fef: DUP4 00003ff0: PUSH1 0x40 00003ff2: MLOAD 00003ff3: PUSH2 0x1901 00003ff6: PUSH1 0xf0 00003ff8: SHL 00003ff9: DUP2 00003ffa: MSTORE 00003ffb: PUSH1 0x02 00003ffd: DUP2 00003ffe: ADD 00003fff: SWAP3 00004000: SWAP1 00004001: SWAP3 00004002: MSTORE 00004003: PUSH1 0x22 00004005: DUP3 00004006: ADD 00004007: MSTORE 00004008: PUSH1 0x42 0000400a: SWAP1 0000400b: KECCAK256 0000400c: SWAP1 0000400d: JUMP 0000400e: JUMPDEST 0000400f: PUSH0 00004010: PUSH0 00004011: PUSH0 00004012: PUSH0 00004013: PUSH2 0x401e 00004016: DUP9 00004017: DUP9 00004018: DUP9 00004019: DUP9 0000401a: PUSH2 0x464a 0000401d: JUMP 0000401e: JUMPDEST 0000401f: SWAP3 00004020: POP 00004021: SWAP3 00004022: POP 00004023: SWAP3 00004024: POP 00004025: PUSH2 0x402e 00004028: DUP3 00004029: DUP3 0000402a: PUSH2 0x4712 0000402d: JUMP 0000402e: JUMPDEST 0000402f: POP 00004030: SWAP1 00004031: SWAP7 00004032: SWAP6 00004033: POP 00004034: POP 00004035: POP 00004036: POP 00004037: POP 00004038: POP 00004039: JUMP 0000403a: JUMPDEST 0000403b: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 0000405c: PUSH1 0x01 0000405e: PUSH1 0x01 00004060: PUSH1 0xa0 00004062: SHL 00004063: SUB 00004064: DUP6 00004065: AND 00004066: PUSH2 0x4084 00004069: JUMPI 0000406a: PUSH1 0x40 0000406c: MLOAD 0000406d: PUSH4 0xe602df05 00004072: PUSH1 0xe0 00004074: SHL 00004075: DUP2 00004076: MSTORE 00004077: PUSH0 00004078: PUSH1 0x04 0000407a: DUP3 0000407b: ADD 0000407c: MSTORE 0000407d: PUSH1 0x24 0000407f: ADD 00004080: PUSH2 0x1ada 00004083: JUMP 00004084: JUMPDEST 00004085: PUSH1 0x01 00004087: PUSH1 0x01 00004089: PUSH1 0xa0 0000408b: SHL 0000408c: SUB 0000408d: DUP5 0000408e: AND 0000408f: PUSH2 0x40ad 00004092: JUMPI 00004093: PUSH1 0x40 00004095: MLOAD 00004096: PUSH4 0x4a1406b1 0000409b: PUSH1 0xe1 0000409d: SHL 0000409e: DUP2 0000409f: MSTORE 000040a0: PUSH0 000040a1: PUSH1 0x04 000040a3: DUP3 000040a4: ADD 000040a5: MSTORE 000040a6: PUSH1 0x24 000040a8: ADD 000040a9: PUSH2 0x1ada 000040ac: JUMP 000040ad: JUMPDEST 000040ae: PUSH1 0x01 000040b0: PUSH1 0x01 000040b2: PUSH1 0xa0 000040b4: SHL 000040b5: SUB 000040b6: DUP1 000040b7: DUP7 000040b8: AND 000040b9: PUSH0 000040ba: SWAP1 000040bb: DUP2 000040bc: MSTORE 000040bd: PUSH1 0x01 000040bf: DUP4 000040c0: ADD 000040c1: PUSH1 0x20 000040c3: SWAP1 000040c4: DUP2 000040c5: MSTORE 000040c6: PUSH1 0x40 000040c8: DUP1 000040c9: DUP4 000040ca: KECCAK256 000040cb: SWAP4 000040cc: DUP9 000040cd: AND 000040ce: DUP4 000040cf: MSTORE 000040d0: SWAP3 000040d1: SWAP1 000040d2: MSTORE 000040d3: KECCAK256 000040d4: DUP4 000040d5: SWAP1 000040d6: SSTORE 000040d7: DUP2 000040d8: ISZERO 000040d9: PUSH2 0x412a 000040dc: JUMPI 000040dd: DUP4 000040de: PUSH1 0x01 000040e0: PUSH1 0x01 000040e2: PUSH1 0xa0 000040e4: SHL 000040e5: SUB 000040e6: AND 000040e7: DUP6 000040e8: PUSH1 0x01 000040ea: PUSH1 0x01 000040ec: PUSH1 0xa0 000040ee: SHL 000040ef: SUB 000040f0: AND 000040f1: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00004112: DUP6 00004113: PUSH1 0x40 00004115: MLOAD 00004116: PUSH2 0x4121 00004119: SWAP2 0000411a: DUP2 0000411b: MSTORE 0000411c: PUSH1 0x20 0000411e: ADD 0000411f: SWAP1 00004120: JUMP 00004121: JUMPDEST 00004122: PUSH1 0x40 00004124: MLOAD 00004125: DUP1 00004126: SWAP2 00004127: SUB 00004128: SWAP1 00004129: LOG3 0000412a: JUMPDEST 0000412b: POP 0000412c: POP 0000412d: POP 0000412e: POP 0000412f: POP 00004130: JUMP 00004131: JUMPDEST 00004132: PUSH0 00004133: DUP3 00004134: DUP3 00004135: GT 00004136: PUSH2 0x4141 00004139: JUMPI 0000413a: DUP2 0000413b: DUP4 0000413c: SUB 0000413d: PUSH2 0x10ed 00004140: JUMP 00004141: JUMPDEST 00004142: PUSH0 00004143: SWAP4 00004144: SWAP3 00004145: POP 00004146: POP 00004147: POP 00004148: JUMP 00004149: JUMPDEST 0000414a: PUSH0 0000414b: PUSH0 0000414c: MLOAD 0000414d: PUSH1 0x20 0000414f: PUSH2 0x5768 00004152: PUSH0 00004153: CODECOPY 00004154: PUSH0 00004155: MLOAD 00004156: SWAP1 00004157: PUSH0 00004158: MSTORE 00004159: DUP2 0000415a: PUSH2 0x4161 0000415d: PUSH2 0x3445 00004160: JUMP 00004161: JUMPDEST 00004162: DUP1 00004163: MLOAD 00004164: SWAP1 00004165: SWAP2 00004166: POP 00004167: ISZERO 00004168: PUSH2 0x4179 0000416b: JUMPI 0000416c: DUP1 0000416d: MLOAD 0000416e: PUSH1 0x20 00004170: SWAP1 00004171: SWAP2 00004172: ADD 00004173: KECCAK256 00004174: SWAP3 00004175: SWAP2 00004176: POP 00004177: POP 00004178: JUMP 00004179: JUMPDEST 0000417a: DUP2 0000417b: SLOAD 0000417c: DUP1 0000417d: ISZERO 0000417e: PUSH2 0x4188 00004181: JUMPI 00004182: SWAP4 00004183: SWAP3 00004184: POP 00004185: POP 00004186: POP 00004187: JUMP 00004188: JUMPDEST 00004189: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 000041aa: SWAP4 000041ab: POP 000041ac: POP 000041ad: POP 000041ae: POP 000041af: SWAP1 000041b0: JUMP 000041b1: JUMPDEST 000041b2: PUSH0 000041b3: PUSH0 000041b4: MLOAD 000041b5: PUSH1 0x20 000041b7: PUSH2 0x5768 000041ba: PUSH0 000041bb: CODECOPY 000041bc: PUSH0 000041bd: MLOAD 000041be: SWAP1 000041bf: PUSH0 000041c0: MSTORE 000041c1: DUP2 000041c2: PUSH2 0x41c9 000041c5: PUSH2 0x3505 000041c8: JUMP 000041c9: JUMPDEST 000041ca: DUP1 000041cb: MLOAD 000041cc: SWAP1 000041cd: SWAP2 000041ce: POP 000041cf: ISZERO 000041d0: PUSH2 0x41e1 000041d3: JUMPI 000041d4: DUP1 000041d5: MLOAD 000041d6: PUSH1 0x20 000041d8: SWAP1 000041d9: SWAP2 000041da: ADD 000041db: KECCAK256 000041dc: SWAP3 000041dd: SWAP2 000041de: POP 000041df: POP 000041e0: JUMP 000041e1: JUMPDEST 000041e2: PUSH1 0x01 000041e4: DUP3 000041e5: ADD 000041e6: SLOAD 000041e7: DUP1 000041e8: ISZERO 000041e9: PUSH2 0x4188 000041ec: JUMPI 000041ed: SWAP4 000041ee: SWAP3 000041ef: POP 000041f0: POP 000041f1: POP 000041f2: JUMP 000041f3: JUMPDEST 000041f4: PUSH0 000041f5: PUSH0 000041f6: PUSH0 000041f7: PUSH0 000041f8: PUSH2 0x4201 000041fb: DUP9 000041fc: DUP9 000041fd: PUSH2 0x424d 00004200: JUMP 00004201: JUMPDEST 00004202: SWAP1 00004203: SWAP4 00004204: POP 00004205: SWAP1 00004206: POP 00004207: DUP6 00004208: DUP6 00004209: ADD 0000420a: PUSH2 0x421c 0000420d: DUP3 0000420e: DUP3 0000420f: PUSH8 0x0de0b6b3a7640000 00004218: PUSH2 0x47ca 0000421b: JUMP 0000421c: JUMPDEST 0000421d: SWAP3 0000421e: POP 0000421f: PUSH0 00004220: PUSH2 0x4229 00004223: DUP5 00004224: DUP5 00004225: PUSH2 0x55a3 00004228: JUMP 00004229: JUMPDEST 0000422a: SWAP1 0000422b: POP 0000422c: DUP11 0000422d: NOT 0000422e: DUP2 0000422f: DUP2 00004230: LT 00004231: ISZERO 00004232: PUSH2 0x4239 00004235: JUMPI 00004236: DUP1 00004237: SWAP2 00004238: POP 00004239: JUMPDEST 0000423a: DUP2 0000423b: DUP13 0000423c: ADD 0000423d: SWAP7 0000423e: POP 0000423f: POP 00004240: POP 00004241: POP 00004242: SWAP6 00004243: POP 00004244: SWAP6 00004245: POP 00004246: SWAP6 00004247: POP 00004248: SWAP6 00004249: SWAP2 0000424a: POP 0000424b: POP 0000424c: JUMP 0000424d: JUMPDEST 0000424e: PUSH0 0000424f: DUP1 00004250: DUP4 00004251: ISZERO 00004252: DUP1 00004253: PUSH2 0x425a 00004256: JUMPI 00004257: POP 00004258: DUP3 00004259: ISZERO 0000425a: JUMPDEST 0000425b: ISZERO 0000425c: PUSH2 0x4269 0000425f: JUMPI 00004260: POP 00004261: DUP3 00004262: SWAP1 00004263: POP 00004264: PUSH0 00004265: PUSH2 0x2844 00004268: JUMP 00004269: JUMPDEST 0000426a: PUSH2 0x427c 0000426d: DUP5 0000426e: DUP5 0000426f: PUSH8 0x0de0b6b3a7640000 00004278: PUSH2 0x47ca 0000427b: JUMP 0000427c: JUMPDEST 0000427d: SWAP1 0000427e: POP 0000427f: DUP1 00004280: DUP5 00004281: ADD 00004282: SWAP2 00004283: POP 00004284: DUP4 00004285: DUP3 00004286: LT 00004287: ISZERO 00004288: PUSH2 0x2844 0000428b: JUMPI 0000428c: POP 0000428d: SWAP2 0000428e: SWAP3 0000428f: PUSH0 00004290: SWAP3 00004291: POP 00004292: SWAP1 00004293: POP 00004294: JUMP 00004295: JUMPDEST 00004296: PUSH0 00004297: PUSH1 0x02 00004299: DUP3 0000429a: PUSH1 0x03 0000429c: DUP2 0000429d: GT 0000429e: ISZERO 0000429f: PUSH2 0x42aa 000042a2: JUMPI 000042a3: PUSH2 0x42aa 000042a6: PUSH2 0x51e6 000042a9: JUMP 000042aa: JUMPDEST 000042ab: PUSH2 0x42b4 000042ae: SWAP2 000042af: SWAP1 000042b0: PUSH2 0x55b6 000042b3: JUMP 000042b4: JUMPDEST 000042b5: PUSH1 0xff 000042b7: AND 000042b8: PUSH1 0x01 000042ba: EQ 000042bb: SWAP1 000042bc: POP 000042bd: SWAP2 000042be: SWAP1 000042bf: POP 000042c0: JUMP 000042c1: JUMPDEST 000042c2: PUSH0 000042c3: DUP4 000042c4: DUP4 000042c5: MUL 000042c6: DUP2 000042c7: PUSH0 000042c8: NOT 000042c9: DUP6 000042ca: DUP8 000042cb: MULMOD 000042cc: DUP3 000042cd: DUP2 000042ce: LT 000042cf: DUP4 000042d0: DUP3 000042d1: SUB 000042d2: SUB 000042d3: SWAP2 000042d4: POP 000042d5: POP 000042d6: DUP1 000042d7: PUSH0 000042d8: SUB 000042d9: PUSH2 0x42f5 000042dc: JUMPI 000042dd: DUP4 000042de: DUP3 000042df: DUP2 000042e0: PUSH2 0x42eb 000042e3: JUMPI 000042e4: PUSH2 0x42eb 000042e7: PUSH2 0x558f 000042ea: JUMP 000042eb: JUMPDEST 000042ec: DIV 000042ed: SWAP3 000042ee: POP 000042ef: POP 000042f0: POP 000042f1: PUSH2 0x10ed 000042f4: JUMP 000042f5: JUMPDEST 000042f6: DUP1 000042f7: DUP5 000042f8: GT 000042f9: PUSH2 0x4313 000042fc: JUMPI 000042fd: PUSH2 0x4313 00004300: DUP5 00004301: ISZERO 00004302: PUSH2 0x430c 00004305: JUMPI 00004306: PUSH1 0x11 00004308: PUSH2 0x4812 0000430b: JUMP 0000430c: JUMPDEST 0000430d: PUSH1 0x12 0000430f: PUSH2 0x4812 00004312: JUMP 00004313: JUMPDEST 00004314: PUSH0 00004315: DUP5 00004316: DUP7 00004317: DUP9 00004318: MULMOD 00004319: PUSH0 0000431a: DUP7 0000431b: DUP2 0000431c: SUB 0000431d: DUP8 0000431e: AND 0000431f: SWAP7 00004320: DUP8 00004321: SWAP1 00004322: DIV 00004323: SWAP7 00004324: PUSH1 0x02 00004326: PUSH1 0x03 00004328: DUP10 00004329: MUL 0000432a: DUP2 0000432b: XOR 0000432c: DUP1 0000432d: DUP11 0000432e: MUL 0000432f: DUP3 00004330: SUB 00004331: MUL 00004332: DUP1 00004333: DUP11 00004334: MUL 00004335: DUP3 00004336: SUB 00004337: MUL 00004338: DUP1 00004339: DUP11 0000433a: MUL 0000433b: DUP3 0000433c: SUB 0000433d: MUL 0000433e: DUP1 0000433f: DUP11 00004340: MUL 00004341: DUP3 00004342: SUB 00004343: MUL 00004344: DUP1 00004345: DUP11 00004346: MUL 00004347: DUP3 00004348: SUB 00004349: MUL 0000434a: DUP1 0000434b: DUP11 0000434c: MUL 0000434d: SWAP1 0000434e: SWAP2 0000434f: SUB 00004350: MUL 00004351: SWAP2 00004352: DUP2 00004353: SWAP1 00004354: SUB 00004355: DUP2 00004356: SWAP1 00004357: DIV 00004358: PUSH1 0x01 0000435a: ADD 0000435b: DUP7 0000435c: DUP5 0000435d: GT 0000435e: SWAP1 0000435f: SWAP6 00004360: SUB 00004361: SWAP5 00004362: SWAP1 00004363: SWAP5 00004364: MUL 00004365: SWAP2 00004366: SWAP1 00004367: SWAP5 00004368: SUB 00004369: SWAP3 0000436a: SWAP1 0000436b: SWAP3 0000436c: DIV 0000436d: SWAP2 0000436e: SWAP1 0000436f: SWAP2 00004370: OR 00004371: SWAP2 00004372: SWAP1 00004373: SWAP2 00004374: MUL 00004375: SWAP2 00004376: POP 00004377: POP 00004378: SWAP4 00004379: SWAP3 0000437a: POP 0000437b: POP 0000437c: POP 0000437d: JUMP 0000437e: JUMPDEST 0000437f: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 000043a0: SLOAD 000043a1: PUSH1 0x01 000043a3: PUSH1 0x40 000043a5: SHL 000043a6: SWAP1 000043a7: DIV 000043a8: PUSH1 0xff 000043aa: AND 000043ab: PUSH2 0x43c7 000043ae: JUMPI 000043af: PUSH1 0x40 000043b1: MLOAD 000043b2: PUSH4 0x1afcd79f 000043b7: PUSH1 0xe3 000043b9: SHL 000043ba: DUP2 000043bb: MSTORE 000043bc: PUSH1 0x04 000043be: ADD 000043bf: PUSH1 0x40 000043c1: MLOAD 000043c2: DUP1 000043c3: SWAP2 000043c4: SUB 000043c5: SWAP1 000043c6: REVERT 000043c7: JUMPDEST 000043c8: JUMP 000043c9: JUMPDEST 000043ca: PUSH2 0x43d1 000043cd: PUSH2 0x437e 000043d0: JUMP 000043d1: JUMPDEST 000043d2: PUSH0 000043d3: MLOAD 000043d4: PUSH1 0x20 000043d6: PUSH2 0x5768 000043d9: PUSH0 000043da: CODECOPY 000043db: PUSH0 000043dc: MLOAD 000043dd: SWAP1 000043de: PUSH0 000043df: MSTORE 000043e0: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102 00004401: PUSH2 0x440a 00004404: DUP5 00004405: DUP3 00004406: PUSH2 0x5627 00004409: JUMP 0000440a: JUMPDEST 0000440b: POP 0000440c: PUSH1 0x03 0000440e: DUP2 0000440f: ADD 00004410: PUSH2 0x4419 00004413: DUP4 00004414: DUP3 00004415: PUSH2 0x5627 00004418: JUMP 00004419: JUMPDEST 0000441a: POP 0000441b: PUSH0 0000441c: DUP1 0000441d: DUP3 0000441e: SSTORE 0000441f: PUSH1 0x01 00004421: SWAP1 00004422: SWAP2 00004423: ADD 00004424: SSTORE 00004425: POP 00004426: POP 00004427: JUMP 00004428: JUMPDEST 00004429: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 0000444a: PUSH1 0x01 0000444c: PUSH1 0x01 0000444e: PUSH1 0xa0 00004450: SHL 00004451: SUB 00004452: DUP5 00004453: AND 00004454: PUSH2 0x4475 00004457: JUMPI 00004458: DUP2 00004459: DUP2 0000445a: PUSH1 0x02 0000445c: ADD 0000445d: PUSH0 0000445e: DUP3 0000445f: DUP3 00004460: SLOAD 00004461: PUSH2 0x446a 00004464: SWAP2 00004465: SWAP1 00004466: PUSH2 0x557c 00004469: JUMP 0000446a: JUMPDEST 0000446b: SWAP1 0000446c: SWAP2 0000446d: SSTORE 0000446e: POP 0000446f: PUSH2 0x44e5 00004472: SWAP1 00004473: POP 00004474: JUMP 00004475: JUMPDEST 00004476: PUSH1 0x01 00004478: PUSH1 0x01 0000447a: PUSH1 0xa0 0000447c: SHL 0000447d: SUB 0000447e: DUP5 0000447f: AND 00004480: PUSH0 00004481: SWAP1 00004482: DUP2 00004483: MSTORE 00004484: PUSH1 0x20 00004486: DUP3 00004487: SWAP1 00004488: MSTORE 00004489: PUSH1 0x40 0000448b: SWAP1 0000448c: KECCAK256 0000448d: SLOAD 0000448e: DUP3 0000448f: DUP2 00004490: LT 00004491: ISZERO 00004492: PUSH2 0x44c7 00004495: JUMPI 00004496: PUSH1 0x40 00004498: MLOAD 00004499: PUSH4 0x391434e3 0000449e: PUSH1 0xe2 000044a0: SHL 000044a1: DUP2 000044a2: MSTORE 000044a3: PUSH1 0x01 000044a5: PUSH1 0x01 000044a7: PUSH1 0xa0 000044a9: SHL 000044aa: SUB 000044ab: DUP7 000044ac: AND 000044ad: PUSH1 0x04 000044af: DUP3 000044b0: ADD 000044b1: MSTORE 000044b2: PUSH1 0x24 000044b4: DUP2 000044b5: ADD 000044b6: DUP3 000044b7: SWAP1 000044b8: MSTORE 000044b9: PUSH1 0x44 000044bb: DUP2 000044bc: ADD 000044bd: DUP5 000044be: SWAP1 000044bf: MSTORE 000044c0: PUSH1 0x64 000044c2: ADD 000044c3: PUSH2 0x1ada 000044c6: JUMP 000044c7: JUMPDEST 000044c8: PUSH1 0x01 000044ca: PUSH1 0x01 000044cc: PUSH1 0xa0 000044ce: SHL 000044cf: SUB 000044d0: DUP6 000044d1: AND 000044d2: PUSH0 000044d3: SWAP1 000044d4: DUP2 000044d5: MSTORE 000044d6: PUSH1 0x20 000044d8: DUP4 000044d9: SWAP1 000044da: MSTORE 000044db: PUSH1 0x40 000044dd: SWAP1 000044de: KECCAK256 000044df: SWAP1 000044e0: DUP4 000044e1: SWAP1 000044e2: SUB 000044e3: SWAP1 000044e4: SSTORE 000044e5: JUMPDEST 000044e6: PUSH1 0x01 000044e8: PUSH1 0x01 000044ea: PUSH1 0xa0 000044ec: SHL 000044ed: SUB 000044ee: DUP4 000044ef: AND 000044f0: PUSH2 0x4503 000044f3: JUMPI 000044f4: PUSH1 0x02 000044f6: DUP2 000044f7: ADD 000044f8: DUP1 000044f9: SLOAD 000044fa: DUP4 000044fb: SWAP1 000044fc: SUB 000044fd: SWAP1 000044fe: SSTORE 000044ff: PUSH2 0x4521 00004502: JUMP 00004503: JUMPDEST 00004504: PUSH1 0x01 00004506: PUSH1 0x01 00004508: PUSH1 0xa0 0000450a: SHL 0000450b: SUB 0000450c: DUP4 0000450d: AND 0000450e: PUSH0 0000450f: SWAP1 00004510: DUP2 00004511: MSTORE 00004512: PUSH1 0x20 00004514: DUP3 00004515: SWAP1 00004516: MSTORE 00004517: PUSH1 0x40 00004519: SWAP1 0000451a: KECCAK256 0000451b: DUP1 0000451c: SLOAD 0000451d: DUP4 0000451e: ADD 0000451f: SWAP1 00004520: SSTORE 00004521: JUMPDEST 00004522: DUP3 00004523: PUSH1 0x01 00004525: PUSH1 0x01 00004527: PUSH1 0xa0 00004529: SHL 0000452a: SUB 0000452b: AND 0000452c: DUP5 0000452d: PUSH1 0x01 0000452f: PUSH1 0x01 00004531: PUSH1 0xa0 00004533: SHL 00004534: SUB 00004535: AND 00004536: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004557: DUP5 00004558: PUSH1 0x40 0000455a: MLOAD 0000455b: PUSH2 0x4566 0000455e: SWAP2 0000455f: DUP2 00004560: MSTORE 00004561: PUSH1 0x20 00004563: ADD 00004564: SWAP1 00004565: JUMP 00004566: JUMPDEST 00004567: PUSH1 0x40 00004569: MLOAD 0000456a: DUP1 0000456b: SWAP2 0000456c: SUB 0000456d: SWAP1 0000456e: LOG3 0000456f: POP 00004570: POP 00004571: POP 00004572: POP 00004573: JUMP 00004574: JUMPDEST 00004575: PUSH0 00004576: MLOAD 00004577: PUSH1 0x20 00004579: PUSH2 0x5708 0000457c: PUSH0 0000457d: CODECOPY 0000457e: PUSH0 0000457f: MLOAD 00004580: SWAP1 00004581: PUSH0 00004582: MSTORE 00004583: PUSH2 0x458c 00004586: DUP5 00004587: DUP5 00004588: PUSH2 0x4823 0000458b: JUMP 0000458c: JUMPDEST 0000458d: DUP1 0000458e: ISZERO 0000458f: PUSH2 0x459c 00004592: JUMPI 00004593: POP 00004594: PUSH1 0x03 00004596: DUP2 00004597: ADD 00004598: SLOAD 00004599: PUSH1 0xff 0000459b: AND 0000459c: JUMPDEST 0000459d: ISZERO 0000459e: PUSH2 0x463f 000045a1: JUMPI 000045a2: PUSH1 0x40 000045a4: MLOAD 000045a5: PUSH4 0x6f15550f 000045aa: PUSH1 0xe1 000045ac: SHL 000045ad: DUP2 000045ae: MSTORE 000045af: PUSH1 0x01 000045b1: PUSH1 0x01 000045b3: PUSH1 0xa0 000045b5: SHL 000045b6: SUB 000045b7: DUP6 000045b8: AND 000045b9: PUSH1 0x04 000045bb: DUP3 000045bc: ADD 000045bd: MSTORE 000045be: PUSH0 000045bf: SWAP1 000045c0: PUSH20 0x281ce96b63a35ef91846579e4562ab6b92e632f2 000045d5: SWAP1 000045d6: PUSH4 0xde2aaa1e 000045db: SWAP1 000045dc: PUSH1 0x24 000045de: ADD 000045df: PUSH1 0x20 000045e1: PUSH1 0x40 000045e3: MLOAD 000045e4: DUP1 000045e5: DUP4 000045e6: SUB 000045e7: DUP2 000045e8: DUP7 000045e9: GAS 000045ea: DELEGATECALL 000045eb: ISZERO 000045ec: DUP1 000045ed: ISZERO 000045ee: PUSH2 0x45f9 000045f1: JUMPI 000045f2: RETURNDATASIZE 000045f3: PUSH0 000045f4: PUSH0 000045f5: RETURNDATACOPY 000045f6: RETURNDATASIZE 000045f7: PUSH0 000045f8: REVERT 000045f9: JUMPDEST 000045fa: POP 000045fb: POP 000045fc: POP 000045fd: POP 000045fe: PUSH1 0x40 00004600: MLOAD 00004601: RETURNDATASIZE 00004602: PUSH1 0x1f 00004604: NOT 00004605: PUSH1 0x1f 00004607: DUP3 00004608: ADD 00004609: AND 0000460a: DUP3 0000460b: ADD 0000460c: DUP1 0000460d: PUSH1 0x40 0000460f: MSTORE 00004610: POP 00004611: DUP2 00004612: ADD 00004613: SWAP1 00004614: PUSH2 0x461d 00004617: SWAP2 00004618: SWAP1 00004619: PUSH2 0x50d3 0000461c: JUMP 0000461d: JUMPDEST 0000461e: SWAP1 0000461f: POP 00004620: DUP1 00004621: PUSH2 0x463d 00004624: JUMPI 00004625: PUSH1 0x40 00004627: MLOAD 00004628: PUSH4 0x3c3b8e1b 0000462d: PUSH1 0xe2 0000462f: SHL 00004630: DUP2 00004631: MSTORE 00004632: PUSH1 0x04 00004634: ADD 00004635: PUSH1 0x40 00004637: MLOAD 00004638: DUP1 00004639: SWAP2 0000463a: SUB 0000463b: SWAP1 0000463c: REVERT 0000463d: JUMPDEST 0000463e: POP 0000463f: JUMPDEST 00004640: PUSH2 0x1899 00004643: DUP5 00004644: DUP5 00004645: DUP5 00004646: PUSH2 0x4848 00004649: JUMP 0000464a: JUMPDEST 0000464b: PUSH0 0000464c: DUP1 0000464d: DUP1 0000464e: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 0000466f: DUP5 00004670: GT 00004671: ISZERO 00004672: PUSH2 0x4683 00004675: JUMPI 00004676: POP 00004677: PUSH0 00004678: SWAP2 00004679: POP 0000467a: PUSH1 0x03 0000467c: SWAP1 0000467d: POP 0000467e: DUP3 0000467f: PUSH2 0x4708 00004682: JUMP 00004683: JUMPDEST 00004684: PUSH1 0x40 00004686: DUP1 00004687: MLOAD 00004688: PUSH0 00004689: DUP1 0000468a: DUP3 0000468b: MSTORE 0000468c: PUSH1 0x20 0000468e: DUP3 0000468f: ADD 00004690: DUP1 00004691: DUP5 00004692: MSTORE 00004693: DUP11 00004694: SWAP1 00004695: MSTORE 00004696: PUSH1 0xff 00004698: DUP10 00004699: AND 0000469a: SWAP3 0000469b: DUP3 0000469c: ADD 0000469d: SWAP3 0000469e: SWAP1 0000469f: SWAP3 000046a0: MSTORE 000046a1: PUSH1 0x60 000046a3: DUP2 000046a4: ADD 000046a5: DUP8 000046a6: SWAP1 000046a7: MSTORE 000046a8: PUSH1 0x80 000046aa: DUP2 000046ab: ADD 000046ac: DUP7 000046ad: SWAP1 000046ae: MSTORE 000046af: PUSH1 0x01 000046b1: SWAP1 000046b2: PUSH1 0xa0 000046b4: ADD 000046b5: PUSH1 0x20 000046b7: PUSH1 0x40 000046b9: MLOAD 000046ba: PUSH1 0x20 000046bc: DUP2 000046bd: SUB 000046be: SWAP1 000046bf: DUP1 000046c0: DUP5 000046c1: SUB 000046c2: SWAP1 000046c3: DUP6 000046c4: GAS 000046c5: STATICCALL 000046c6: ISZERO 000046c7: DUP1 000046c8: ISZERO 000046c9: PUSH2 0x46d4 000046cc: JUMPI 000046cd: RETURNDATASIZE 000046ce: PUSH0 000046cf: PUSH0 000046d0: RETURNDATACOPY 000046d1: RETURNDATASIZE 000046d2: PUSH0 000046d3: REVERT 000046d4: JUMPDEST 000046d5: POP 000046d6: POP 000046d7: PUSH1 0x40 000046d9: MLOAD 000046da: PUSH1 0x1f 000046dc: NOT 000046dd: ADD 000046de: MLOAD 000046df: SWAP2 000046e0: POP 000046e1: POP 000046e2: PUSH1 0x01 000046e4: PUSH1 0x01 000046e6: PUSH1 0xa0 000046e8: SHL 000046e9: SUB 000046ea: DUP2 000046eb: AND 000046ec: PUSH2 0x46ff 000046ef: JUMPI 000046f0: POP 000046f1: PUSH0 000046f2: SWAP3 000046f3: POP 000046f4: PUSH1 0x01 000046f6: SWAP2 000046f7: POP 000046f8: DUP3 000046f9: SWAP1 000046fa: POP 000046fb: PUSH2 0x4708 000046fe: JUMP 000046ff: JUMPDEST 00004700: SWAP3 00004701: POP 00004702: PUSH0 00004703: SWAP2 00004704: POP 00004705: DUP2 00004706: SWAP1 00004707: POP 00004708: JUMPDEST 00004709: SWAP5 0000470a: POP 0000470b: SWAP5 0000470c: POP 0000470d: SWAP5 0000470e: SWAP2 0000470f: POP 00004710: POP 00004711: JUMP 00004712: JUMPDEST 00004713: PUSH0 00004714: DUP3 00004715: PUSH1 0x03 00004717: DUP2 00004718: GT 00004719: ISZERO 0000471a: PUSH2 0x4725 0000471d: JUMPI 0000471e: PUSH2 0x4725 00004721: PUSH2 0x51e6 00004724: JUMP 00004725: JUMPDEST 00004726: SUB 00004727: PUSH2 0x472e 0000472a: JUMPI 0000472b: POP 0000472c: POP 0000472d: JUMP 0000472e: JUMPDEST 0000472f: PUSH1 0x01 00004731: DUP3 00004732: PUSH1 0x03 00004734: DUP2 00004735: GT 00004736: ISZERO 00004737: PUSH2 0x4742 0000473a: JUMPI 0000473b: PUSH2 0x4742 0000473e: PUSH2 0x51e6 00004741: JUMP 00004742: JUMPDEST 00004743: SUB 00004744: PUSH2 0x4760 00004747: JUMPI 00004748: PUSH1 0x40 0000474a: MLOAD 0000474b: PUSH4 0xf645eedf 00004750: PUSH1 0xe0 00004752: SHL 00004753: DUP2 00004754: MSTORE 00004755: PUSH1 0x04 00004757: ADD 00004758: PUSH1 0x40 0000475a: MLOAD 0000475b: DUP1 0000475c: SWAP2 0000475d: SUB 0000475e: SWAP1 0000475f: REVERT 00004760: JUMPDEST 00004761: PUSH1 0x02 00004763: DUP3 00004764: PUSH1 0x03 00004766: DUP2 00004767: GT 00004768: ISZERO 00004769: PUSH2 0x4774 0000476c: JUMPI 0000476d: PUSH2 0x4774 00004770: PUSH2 0x51e6 00004773: JUMP 00004774: JUMPDEST 00004775: SUB 00004776: PUSH2 0x4795 00004779: JUMPI 0000477a: PUSH1 0x40 0000477c: MLOAD 0000477d: PUSH4 0xfce698f7 00004782: PUSH1 0xe0 00004784: SHL 00004785: DUP2 00004786: MSTORE 00004787: PUSH1 0x04 00004789: DUP2 0000478a: ADD 0000478b: DUP3 0000478c: SWAP1 0000478d: MSTORE 0000478e: PUSH1 0x24 00004790: ADD 00004791: PUSH2 0x1ada 00004794: JUMP 00004795: JUMPDEST 00004796: PUSH1 0x03 00004798: DUP3 00004799: PUSH1 0x03 0000479b: DUP2 0000479c: GT 0000479d: ISZERO 0000479e: PUSH2 0x47a9 000047a1: JUMPI 000047a2: PUSH2 0x47a9 000047a5: PUSH2 0x51e6 000047a8: JUMP 000047a9: JUMPDEST 000047aa: SUB 000047ab: PUSH2 0x2100 000047ae: JUMPI 000047af: PUSH1 0x40 000047b1: MLOAD 000047b2: PUSH4 0x35e2f383 000047b7: PUSH1 0xe2 000047b9: SHL 000047ba: DUP2 000047bb: MSTORE 000047bc: PUSH1 0x04 000047be: DUP2 000047bf: ADD 000047c0: DUP3 000047c1: SWAP1 000047c2: MSTORE 000047c3: PUSH1 0x24 000047c5: ADD 000047c6: PUSH2 0x1ada 000047c9: JUMP 000047ca: JUMPDEST 000047cb: PUSH0 000047cc: DUP4 000047cd: PUSH0 000047ce: SUB 000047cf: PUSH2 0x47d9 000047d2: JUMPI 000047d3: POP 000047d4: PUSH0 000047d5: PUSH2 0x10ed 000047d8: JUMP 000047d9: JUMPDEST 000047da: POP 000047db: DUP3 000047dc: DUP3 000047dd: MUL 000047de: DUP3 000047df: DUP5 000047e0: DUP3 000047e1: DUP2 000047e2: PUSH2 0x47ed 000047e5: JUMPI 000047e6: PUSH2 0x47ed 000047e9: PUSH2 0x558f 000047ec: JUMP 000047ed: JUMPDEST 000047ee: DIV 000047ef: EQ 000047f0: PUSH2 0x47fa 000047f3: JUMPI 000047f4: POP 000047f5: PUSH0 000047f6: PUSH2 0x10ed 000047f9: JUMP 000047fa: JUMPDEST 000047fb: DUP2 000047fc: DUP2 000047fd: DUP2 000047fe: PUSH2 0x4809 00004801: JUMPI 00004802: PUSH2 0x4809 00004805: PUSH2 0x558f 00004808: JUMP 00004809: JUMPDEST 0000480a: DIV 0000480b: SWAP5 0000480c: SWAP4 0000480d: POP 0000480e: POP 0000480f: POP 00004810: POP 00004811: JUMP 00004812: JUMPDEST 00004813: PUSH4 0x4e487b71 00004818: PUSH0 00004819: MSTORE 0000481a: DUP1 0000481b: PUSH1 0x20 0000481d: MSTORE 0000481e: PUSH1 0x24 00004820: PUSH1 0x1c 00004822: REVERT 00004823: JUMPDEST 00004824: PUSH0 00004825: PUSH1 0x01 00004827: PUSH1 0x01 00004829: PUSH1 0xa0 0000482b: SHL 0000482c: SUB 0000482d: DUP4 0000482e: AND 0000482f: ISZERO 00004830: DUP1 00004831: ISZERO 00004832: SWAP1 00004833: PUSH2 0x10ed 00004836: JUMPI 00004837: POP 00004838: POP 00004839: PUSH1 0x01 0000483b: PUSH1 0x01 0000483d: PUSH1 0xa0 0000483f: SHL 00004840: SUB 00004841: AND 00004842: ISZERO 00004843: ISZERO 00004844: SWAP2 00004845: SWAP1 00004846: POP 00004847: JUMP 00004848: JUMPDEST 00004849: PUSH1 0x40 0000484b: DUP1 0000484c: MLOAD 0000484d: PUSH1 0x80 0000484f: DUP2 00004850: ADD 00004851: DUP3 00004852: MSTORE 00004853: PUSH32 0x01b0b3f9d6e360167e522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1202 00004874: SLOAD 00004875: PUSH1 0x01 00004877: PUSH1 0x01 00004879: PUSH1 0xa0 0000487b: SHL 0000487c: SUB 0000487d: DUP2 0000487e: AND 0000487f: DUP3 00004880: MSTORE 00004881: PUSH3 0xffffff 00004885: PUSH1 0x01 00004887: PUSH1 0xa0 00004889: SHL 0000488a: DUP3 0000488b: DIV 0000488c: DUP2 0000488d: AND 0000488e: PUSH1 0x20 00004890: DUP5 00004891: ADD 00004892: MSTORE 00004893: PUSH1 0x01 00004895: PUSH1 0xb8 00004897: SHL 00004898: DUP3 00004899: DIV 0000489a: DUP2 0000489b: AND 0000489c: SWAP4 0000489d: DUP4 0000489e: ADD 0000489f: SWAP4 000048a0: SWAP1 000048a1: SWAP4 000048a2: MSTORE 000048a3: PUSH1 0x01 000048a5: PUSH1 0xd0 000048a7: SHL 000048a8: SWAP1 000048a9: DIV 000048aa: SWAP1 000048ab: SWAP2 000048ac: AND 000048ad: PUSH1 0x60 000048af: DUP3 000048b0: ADD 000048b1: DUP2 000048b2: SWAP1 000048b3: MSTORE 000048b4: PUSH0 000048b5: MLOAD 000048b6: PUSH1 0x20 000048b8: PUSH2 0x5708 000048bb: PUSH0 000048bc: CODECOPY 000048bd: PUSH0 000048be: MLOAD 000048bf: SWAP1 000048c0: PUSH0 000048c1: MSTORE 000048c2: SWAP2 000048c3: SWAP1 000048c4: PUSH0 000048c5: SWAP1 000048c6: PUSH2 0x48ce 000048c9: SWAP1 000048ca: PUSH2 0x49d3 000048cd: JUMP 000048ce: JUMPDEST 000048cf: PUSH1 0x40 000048d1: DUP4 000048d2: ADD 000048d3: MLOAD 000048d4: SWAP1 000048d5: SWAP2 000048d6: POP 000048d7: DUP2 000048d8: AND 000048d9: PUSH3 0xffffff 000048dd: AND 000048de: DUP2 000048df: EQ 000048e0: PUSH2 0x48eb 000048e3: JUMPI 000048e4: POP 000048e5: POP 000048e6: POP 000048e7: POP 000048e8: POP 000048e9: POP 000048ea: JUMP 000048eb: JUMPDEST 000048ec: DUP2 000048ed: MLOAD 000048ee: DUP4 000048ef: SLOAD 000048f0: PUSH1 0x01 000048f2: PUSH1 0x01 000048f4: PUSH1 0xa0 000048f6: SHL 000048f7: SUB 000048f8: SWAP2 000048f9: DUP3 000048fa: AND 000048fb: SWAP2 000048fc: PUSH4 0xaef28235 00004901: SWAP2 00004902: AND 00004903: DUP4 00004904: DUP10 00004905: DUP10 00004906: DUP10 00004907: PUSH2 0x490f 0000490a: DUP4 0000490b: PUSH2 0x18ad 0000490e: JUMP 0000490f: JUMPDEST 00004910: PUSH2 0x4918 00004913: DUP14 00004914: PUSH2 0x18ad 00004917: JUMP 00004918: JUMPDEST 00004919: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02 0000493a: SLOAD 0000493b: PUSH1 0x40 0000493d: MLOAD 0000493e: PUSH12 0xffffffffffffffffffffffff 0000494b: NOT 0000494c: PUSH1 0x60 0000494e: SWAP8 0000494f: DUP9 00004950: SHL 00004951: DUP2 00004952: AND 00004953: PUSH1 0x20 00004955: DUP4 00004956: ADD 00004957: MSTORE 00004958: SWAP6 00004959: SWAP1 0000495a: SWAP7 0000495b: SHL 0000495c: SWAP1 0000495d: SWAP5 0000495e: AND 0000495f: PUSH1 0x34 00004961: DUP7 00004962: ADD 00004963: MSTORE 00004964: PUSH1 0x48 00004966: DUP6 00004967: ADD 00004968: SWAP3 00004969: SWAP1 0000496a: SWAP3 0000496b: MSTORE 0000496c: PUSH1 0x68 0000496e: DUP5 0000496f: ADD 00004970: MSTORE 00004971: PUSH1 0x88 00004973: DUP4 00004974: ADD 00004975: MSTORE 00004976: PUSH1 0xa8 00004978: DUP3 00004979: ADD 0000497a: MSTORE 0000497b: PUSH1 0xc8 0000497d: ADD 0000497e: PUSH1 0x40 00004980: MLOAD 00004981: PUSH1 0x20 00004983: DUP2 00004984: DUP4 00004985: SUB 00004986: SUB 00004987: DUP2 00004988: MSTORE 00004989: SWAP1 0000498a: PUSH1 0x40 0000498c: MSTORE 0000498d: PUSH1 0x40 0000498f: MLOAD 00004990: DUP5 00004991: PUSH4 0xffffffff 00004996: AND 00004997: PUSH1 0xe0 00004999: SHL 0000499a: DUP2 0000499b: MSTORE 0000499c: PUSH1 0x04 0000499e: ADD 0000499f: PUSH2 0x49aa 000049a2: SWAP4 000049a3: SWAP3 000049a4: SWAP2 000049a5: SWAP1 000049a6: PUSH2 0x56e1 000049a9: JUMP 000049aa: JUMPDEST 000049ab: PUSH0 000049ac: PUSH1 0x40 000049ae: MLOAD 000049af: DUP1 000049b0: DUP4 000049b1: SUB 000049b2: DUP2 000049b3: PUSH0 000049b4: DUP8 000049b5: DUP1 000049b6: EXTCODESIZE 000049b7: ISZERO 000049b8: DUP1 000049b9: ISZERO 000049ba: PUSH2 0x49c1 000049bd: JUMPI 000049be: PUSH0 000049bf: PUSH0 000049c0: REVERT 000049c1: JUMPDEST 000049c2: POP 000049c3: GAS 000049c4: CALL 000049c5: ISZERO 000049c6: DUP1 000049c7: ISZERO 000049c8: PUSH2 0x3af9 000049cb: JUMPI 000049cc: RETURNDATASIZE 000049cd: PUSH0 000049ce: PUSH0 000049cf: RETURNDATACOPY 000049d0: RETURNDATASIZE 000049d1: PUSH0 000049d2: REVERT 000049d3: JUMPDEST 000049d4: PUSH0 000049d5: PUSH2 0x0800 000049d8: DUP3 000049d9: EQ 000049da: DUP1 000049db: PUSH2 0x49e5 000049de: JUMPI 000049df: POP 000049e0: PUSH2 0x1000 000049e3: DUP3 000049e4: EQ 000049e5: JUMPDEST 000049e6: DUP1 000049e7: PUSH2 0x49f1 000049ea: JUMPI 000049eb: POP 000049ec: PUSH2 0x2000 000049ef: DUP3 000049f0: EQ 000049f1: JUMPDEST 000049f2: PUSH2 0x4a0e 000049f5: JUMPI 000049f6: PUSH1 0x40 000049f8: MLOAD 000049f9: PUSH4 0xa1e9dd9d 000049fe: PUSH1 0xe0 00004a00: SHL 00004a01: DUP2 00004a02: MSTORE 00004a03: PUSH1 0x04 00004a05: ADD 00004a06: PUSH1 0x40 00004a08: MLOAD 00004a09: DUP1 00004a0a: SWAP2 00004a0b: SUB 00004a0c: SWAP1 00004a0d: REVERT 00004a0e: JUMPDEST 00004a0f: POP 00004a10: PUSH2 0x0400 00004a13: OR 00004a14: SWAP1 00004a15: JUMP 00004a16: JUMPDEST 00004a17: PUSH0 00004a18: DUP2 00004a19: MLOAD 00004a1a: DUP1 00004a1b: DUP5 00004a1c: MSTORE 00004a1d: DUP1 00004a1e: PUSH1 0x20 00004a20: DUP5 00004a21: ADD 00004a22: PUSH1 0x20 00004a24: DUP7 00004a25: ADD 00004a26: MCOPY 00004a27: PUSH0 00004a28: PUSH1 0x20 00004a2a: DUP3 00004a2b: DUP7 00004a2c: ADD 00004a2d: ADD 00004a2e: MSTORE 00004a2f: PUSH1 0x20 00004a31: PUSH1 0x1f 00004a33: NOT 00004a34: PUSH1 0x1f 00004a36: DUP4 00004a37: ADD 00004a38: AND 00004a39: DUP6 00004a3a: ADD 00004a3b: ADD 00004a3c: SWAP2 00004a3d: POP 00004a3e: POP 00004a3f: SWAP3 00004a40: SWAP2 00004a41: POP 00004a42: POP 00004a43: JUMP 00004a44: JUMPDEST 00004a45: PUSH1 0x20 00004a47: DUP2 00004a48: MSTORE 00004a49: PUSH0 00004a4a: PUSH2 0x10ed 00004a4d: PUSH1 0x20 00004a4f: DUP4 00004a50: ADD 00004a51: DUP5 00004a52: PUSH2 0x4a16 00004a55: JUMP 00004a56: JUMPDEST 00004a57: PUSH1 0x01 00004a59: PUSH1 0x01 00004a5b: PUSH1 0xa0 00004a5d: SHL 00004a5e: SUB 00004a5f: DUP2 00004a60: AND 00004a61: DUP2 00004a62: EQ 00004a63: PUSH2 0x29cc 00004a66: JUMPI 00004a67: PUSH0 00004a68: PUSH0 00004a69: REVERT 00004a6a: JUMPDEST 00004a6b: PUSH1 0x02 00004a6d: DUP2 00004a6e: LT 00004a6f: PUSH2 0x29cc 00004a72: JUMPI 00004a73: PUSH0 00004a74: PUSH0 00004a75: REVERT 00004a76: JUMPDEST 00004a77: PUSH0 00004a78: PUSH0 00004a79: PUSH1 0x40 00004a7b: DUP4 00004a7c: DUP6 00004a7d: SUB 00004a7e: SLT 00004a7f: ISZERO 00004a80: PUSH2 0x4a87 00004a83: JUMPI 00004a84: PUSH0 00004a85: PUSH0 00004a86: REVERT 00004a87: JUMPDEST 00004a88: DUP3 00004a89: CALLDATALOAD 00004a8a: PUSH2 0x4a92 00004a8d: DUP2 00004a8e: PUSH2 0x4a56 00004a91: JUMP 00004a92: JUMPDEST 00004a93: SWAP2 00004a94: POP 00004a95: PUSH1 0x20 00004a97: DUP4 00004a98: ADD 00004a99: CALLDATALOAD 00004a9a: PUSH2 0x4aa2 00004a9d: DUP2 00004a9e: PUSH2 0x4a6a 00004aa1: JUMP 00004aa2: JUMPDEST 00004aa3: DUP1 00004aa4: SWAP2 00004aa5: POP 00004aa6: POP 00004aa7: SWAP3 00004aa8: POP 00004aa9: SWAP3 00004aaa: SWAP1 00004aab: POP 00004aac: JUMP 00004aad: JUMPDEST 00004aae: PUSH0 00004aaf: PUSH1 0x20 00004ab1: DUP3 00004ab2: DUP5 00004ab3: SUB 00004ab4: SLT 00004ab5: ISZERO 00004ab6: PUSH2 0x4abd 00004ab9: JUMPI 00004aba: PUSH0 00004abb: PUSH0 00004abc: REVERT 00004abd: JUMPDEST 00004abe: POP 00004abf: CALLDATALOAD 00004ac0: SWAP2 00004ac1: SWAP1 00004ac2: POP 00004ac3: JUMP 00004ac4: JUMPDEST 00004ac5: PUSH0 00004ac6: PUSH0 00004ac7: PUSH1 0x40 00004ac9: DUP4 00004aca: DUP6 00004acb: SUB 00004acc: SLT 00004acd: ISZERO 00004ace: PUSH2 0x4ad5 00004ad1: JUMPI 00004ad2: PUSH0 00004ad3: PUSH0 00004ad4: REVERT 00004ad5: JUMPDEST 00004ad6: DUP3 00004ad7: CALLDATALOAD 00004ad8: PUSH2 0x4ae0 00004adb: DUP2 00004adc: PUSH2 0x4a56 00004adf: JUMP 00004ae0: JUMPDEST 00004ae1: SWAP5 00004ae2: PUSH1 0x20 00004ae4: SWAP4 00004ae5: SWAP1 00004ae6: SWAP4 00004ae7: ADD 00004ae8: CALLDATALOAD 00004ae9: SWAP4 00004aea: POP 00004aeb: POP 00004aec: POP 00004aed: JUMP 00004aee: JUMPDEST 00004aef: PUSH0 00004af0: PUSH0 00004af1: PUSH1 0x40 00004af3: DUP4 00004af4: DUP6 00004af5: SUB 00004af6: SLT 00004af7: ISZERO 00004af8: PUSH2 0x4aff 00004afb: JUMPI 00004afc: PUSH0 00004afd: PUSH0 00004afe: REVERT 00004aff: JUMPDEST 00004b00: DUP3 00004b01: CALLDATALOAD 00004b02: SWAP2 00004b03: POP 00004b04: PUSH1 0x20 00004b06: DUP4 00004b07: ADD 00004b08: CALLDATALOAD 00004b09: PUSH2 0x4aa2 00004b0c: DUP2 00004b0d: PUSH2 0x4a6a 00004b10: JUMP 00004b11: JUMPDEST 00004b12: PUSH0 00004b13: PUSH0 00004b14: PUSH0 00004b15: PUSH1 0x60 00004b17: DUP5 00004b18: DUP7 00004b19: SUB 00004b1a: SLT 00004b1b: ISZERO 00004b1c: PUSH2 0x4b23 00004b1f: JUMPI 00004b20: PUSH0 00004b21: PUSH0 00004b22: REVERT 00004b23: JUMPDEST 00004b24: DUP4 00004b25: CALLDATALOAD 00004b26: PUSH2 0x4b2e 00004b29: DUP2 00004b2a: PUSH2 0x4a56 00004b2d: JUMP 00004b2e: JUMPDEST 00004b2f: SWAP3 00004b30: POP 00004b31: PUSH1 0x20 00004b33: DUP5 00004b34: ADD 00004b35: CALLDATALOAD 00004b36: PUSH2 0x4b3e 00004b39: DUP2 00004b3a: PUSH2 0x4a56 00004b3d: JUMP 00004b3e: JUMPDEST 00004b3f: SWAP3 00004b40: SWAP6 00004b41: SWAP3 00004b42: SWAP5 00004b43: POP 00004b44: POP 00004b45: POP 00004b46: PUSH1 0x40 00004b48: SWAP2 00004b49: SWAP1 00004b4a: SWAP2 00004b4b: ADD 00004b4c: CALLDATALOAD 00004b4d: SWAP1 00004b4e: JUMP 00004b4f: JUMPDEST 00004b50: PUSH0 00004b51: PUSH1 0x20 00004b53: DUP3 00004b54: DUP5 00004b55: SUB 00004b56: SLT 00004b57: ISZERO 00004b58: PUSH2 0x4b5f 00004b5b: JUMPI 00004b5c: PUSH0 00004b5d: PUSH0 00004b5e: REVERT 00004b5f: JUMPDEST 00004b60: DUP2 00004b61: CALLDATALOAD 00004b62: PUSH2 0x10ed 00004b65: DUP2 00004b66: PUSH2 0x4a56 00004b69: JUMP 00004b6a: JUMPDEST 00004b6b: PUSH0 00004b6c: PUSH0 00004b6d: DUP4 00004b6e: PUSH1 0x1f 00004b70: DUP5 00004b71: ADD 00004b72: SLT 00004b73: PUSH2 0x4b7a 00004b76: JUMPI 00004b77: PUSH0 00004b78: PUSH0 00004b79: REVERT 00004b7a: JUMPDEST 00004b7b: POP 00004b7c: DUP2 00004b7d: CALLDATALOAD 00004b7e: PUSH1 0x01 00004b80: PUSH1 0x01 00004b82: PUSH1 0x40 00004b84: SHL 00004b85: SUB 00004b86: DUP2 00004b87: GT 00004b88: ISZERO 00004b89: PUSH2 0x4b90 00004b8c: JUMPI 00004b8d: PUSH0 00004b8e: PUSH0 00004b8f: REVERT 00004b90: JUMPDEST 00004b91: PUSH1 0x20 00004b93: DUP4 00004b94: ADD 00004b95: SWAP2 00004b96: POP 00004b97: DUP4 00004b98: PUSH1 0x20 00004b9a: DUP3 00004b9b: DUP6 00004b9c: ADD 00004b9d: ADD 00004b9e: GT 00004b9f: ISZERO 00004ba0: PUSH2 0x2844 00004ba3: JUMPI 00004ba4: PUSH0 00004ba5: PUSH0 00004ba6: REVERT 00004ba7: JUMPDEST 00004ba8: PUSH0 00004ba9: PUSH0 00004baa: PUSH0 00004bab: PUSH0 00004bac: PUSH0 00004bad: PUSH1 0x80 00004baf: DUP7 00004bb0: DUP9 00004bb1: SUB 00004bb2: SLT 00004bb3: ISZERO 00004bb4: PUSH2 0x4bbb 00004bb7: JUMPI 00004bb8: PUSH0 00004bb9: PUSH0 00004bba: REVERT 00004bbb: JUMPDEST 00004bbc: DUP6 00004bbd: CALLDATALOAD 00004bbe: PUSH2 0x4bc6 00004bc1: DUP2 00004bc2: PUSH2 0x4a56 00004bc5: JUMP 00004bc6: JUMPDEST 00004bc7: SWAP5 00004bc8: POP 00004bc9: PUSH1 0x20 00004bcb: DUP7 00004bcc: ADD 00004bcd: CALLDATALOAD 00004bce: SWAP4 00004bcf: POP 00004bd0: PUSH1 0x40 00004bd2: DUP7 00004bd3: ADD 00004bd4: CALLDATALOAD 00004bd5: PUSH2 0x4bdd 00004bd8: DUP2 00004bd9: PUSH2 0x4a6a 00004bdc: JUMP 00004bdd: JUMPDEST 00004bde: SWAP3 00004bdf: POP 00004be0: PUSH1 0x60 00004be2: DUP7 00004be3: ADD 00004be4: CALLDATALOAD 00004be5: PUSH1 0x01 00004be7: PUSH1 0x01 00004be9: PUSH1 0x40 00004beb: SHL 00004bec: SUB 00004bed: DUP2 00004bee: GT 00004bef: ISZERO 00004bf0: PUSH2 0x4bf7 00004bf3: JUMPI 00004bf4: PUSH0 00004bf5: PUSH0 00004bf6: REVERT 00004bf7: JUMPDEST 00004bf8: PUSH2 0x4c03 00004bfb: DUP9 00004bfc: DUP3 00004bfd: DUP10 00004bfe: ADD 00004bff: PUSH2 0x4b6a 00004c02: JUMP 00004c03: JUMPDEST 00004c04: SWAP7 00004c05: SWAP10 00004c06: SWAP6 00004c07: SWAP9 00004c08: POP 00004c09: SWAP4 00004c0a: SWAP7 00004c0b: POP 00004c0c: SWAP3 00004c0d: SWAP5 00004c0e: SWAP4 00004c0f: SWAP3 00004c10: POP 00004c11: POP 00004c12: POP 00004c13: JUMP 00004c14: JUMPDEST 00004c15: DUP3 00004c16: ISZERO 00004c17: ISZERO 00004c18: DUP2 00004c19: MSTORE 00004c1a: PUSH1 0x40 00004c1c: PUSH1 0x20 00004c1e: DUP3 00004c1f: ADD 00004c20: MSTORE 00004c21: PUSH0 00004c22: PUSH2 0x10a7 00004c25: PUSH1 0x40 00004c27: DUP4 00004c28: ADD 00004c29: DUP5 00004c2a: PUSH2 0x4a16 00004c2d: JUMP 00004c2e: JUMPDEST 00004c2f: PUSH3 0xffffff 00004c33: DUP2 00004c34: AND 00004c35: DUP2 00004c36: EQ 00004c37: PUSH2 0x29cc 00004c3a: JUMPI 00004c3b: PUSH0 00004c3c: PUSH0 00004c3d: REVERT 00004c3e: JUMPDEST 00004c3f: PUSH0 00004c40: PUSH0 00004c41: PUSH1 0x40 00004c43: DUP4 00004c44: DUP6 00004c45: SUB 00004c46: SLT 00004c47: ISZERO 00004c48: PUSH2 0x4c4f 00004c4b: JUMPI 00004c4c: PUSH0 00004c4d: PUSH0 00004c4e: REVERT 00004c4f: JUMPDEST 00004c50: DUP3 00004c51: CALLDATALOAD 00004c52: PUSH2 0x4c5a 00004c55: DUP2 00004c56: PUSH2 0x4c2e 00004c59: JUMP 00004c5a: JUMPDEST 00004c5b: SWAP2 00004c5c: POP 00004c5d: PUSH1 0x20 00004c5f: DUP4 00004c60: ADD 00004c61: CALLDATALOAD 00004c62: PUSH2 0x4aa2 00004c65: DUP2 00004c66: PUSH2 0x4c2e 00004c69: JUMP 00004c6a: JUMPDEST 00004c6b: PUSH0 00004c6c: PUSH0 00004c6d: PUSH0 00004c6e: PUSH0 00004c6f: PUSH0 00004c70: PUSH1 0x80 00004c72: DUP7 00004c73: DUP9 00004c74: SUB 00004c75: SLT 00004c76: ISZERO 00004c77: PUSH2 0x4c7e 00004c7a: JUMPI 00004c7b: PUSH0 00004c7c: PUSH0 00004c7d: REVERT 00004c7e: JUMPDEST 00004c7f: DUP6 00004c80: CALLDATALOAD 00004c81: PUSH2 0x4c89 00004c84: DUP2 00004c85: PUSH2 0x4a56 00004c88: JUMP 00004c89: JUMPDEST 00004c8a: SWAP5 00004c8b: POP 00004c8c: PUSH1 0x20 00004c8e: DUP7 00004c8f: ADD 00004c90: CALLDATALOAD 00004c91: PUSH2 0x4c99 00004c94: DUP2 00004c95: PUSH2 0x4a56 00004c98: JUMP 00004c99: JUMPDEST 00004c9a: SWAP4 00004c9b: POP 00004c9c: PUSH1 0x40 00004c9e: DUP7 00004c9f: ADD 00004ca0: CALLDATALOAD 00004ca1: SWAP3 00004ca2: POP 00004ca3: PUSH1 0x60 00004ca5: DUP7 00004ca6: ADD 00004ca7: CALLDATALOAD 00004ca8: PUSH1 0x01 00004caa: PUSH1 0x01 00004cac: PUSH1 0x40 00004cae: SHL 00004caf: SUB 00004cb0: DUP2 00004cb1: GT 00004cb2: ISZERO 00004cb3: PUSH2 0x4bf7 00004cb6: JUMPI 00004cb7: PUSH0 00004cb8: PUSH0 00004cb9: REVERT 00004cba: JUMPDEST 00004cbb: DUP1 00004cbc: CALLDATALOAD 00004cbd: PUSH1 0x03 00004cbf: DUP2 00004cc0: LT 00004cc1: PUSH2 0x4cc8 00004cc4: JUMPI 00004cc5: PUSH0 00004cc6: PUSH0 00004cc7: REVERT 00004cc8: JUMPDEST 00004cc9: SWAP2 00004cca: SWAP1 00004ccb: POP 00004ccc: JUMP 00004ccd: JUMPDEST 00004cce: PUSH0 00004ccf: PUSH0 00004cd0: PUSH1 0x40 00004cd2: DUP4 00004cd3: DUP6 00004cd4: SUB 00004cd5: SLT 00004cd6: ISZERO 00004cd7: PUSH2 0x4cde 00004cda: JUMPI 00004cdb: PUSH0 00004cdc: PUSH0 00004cdd: REVERT 00004cde: JUMPDEST 00004cdf: DUP3 00004ce0: CALLDATALOAD 00004ce1: SWAP2 00004ce2: POP 00004ce3: PUSH2 0x33d9 00004ce6: PUSH1 0x20 00004ce8: DUP5 00004ce9: ADD 00004cea: PUSH2 0x4cba 00004ced: JUMP 00004cee: JUMPDEST 00004cef: PUSH0 00004cf0: PUSH0 00004cf1: PUSH0 00004cf2: PUSH1 0x60 00004cf4: DUP5 00004cf5: DUP7 00004cf6: SUB 00004cf7: SLT 00004cf8: ISZERO 00004cf9: PUSH2 0x4d00 00004cfc: JUMPI 00004cfd: PUSH0 00004cfe: PUSH0 00004cff: REVERT 00004d00: JUMPDEST 00004d01: DUP4 00004d02: CALLDATALOAD 00004d03: PUSH2 0x4d0b 00004d06: DUP2 00004d07: PUSH2 0x4a56 00004d0a: JUMP 00004d0b: JUMPDEST 00004d0c: SWAP6 00004d0d: PUSH1 0x20 00004d0f: DUP6 00004d10: ADD 00004d11: CALLDATALOAD 00004d12: SWAP6 00004d13: POP 00004d14: PUSH1 0x40 00004d16: SWAP1 00004d17: SWAP5 00004d18: ADD 00004d19: CALLDATALOAD 00004d1a: SWAP4 00004d1b: SWAP3 00004d1c: POP 00004d1d: POP 00004d1e: POP 00004d1f: JUMP 00004d20: JUMPDEST 00004d21: PUSH0 00004d22: PUSH0 00004d23: PUSH1 0x40 00004d25: DUP4 00004d26: DUP6 00004d27: SUB 00004d28: SLT 00004d29: ISZERO 00004d2a: PUSH2 0x4d31 00004d2d: JUMPI 00004d2e: PUSH0 00004d2f: PUSH0 00004d30: REVERT 00004d31: JUMPDEST 00004d32: DUP3 00004d33: CALLDATALOAD 00004d34: SWAP2 00004d35: POP 00004d36: PUSH1 0x20 00004d38: DUP4 00004d39: ADD 00004d3a: CALLDATALOAD 00004d3b: PUSH2 0x4aa2 00004d3e: DUP2 00004d3f: PUSH2 0x4a56 00004d42: JUMP 00004d43: JUMPDEST 00004d44: PUSH0 00004d45: PUSH0 00004d46: PUSH0 00004d47: PUSH1 0x60 00004d49: DUP5 00004d4a: DUP7 00004d4b: SUB 00004d4c: SLT 00004d4d: ISZERO 00004d4e: PUSH2 0x4d55 00004d51: JUMPI 00004d52: PUSH0 00004d53: PUSH0 00004d54: REVERT 00004d55: JUMPDEST 00004d56: DUP4 00004d57: CALLDATALOAD 00004d58: SWAP3 00004d59: POP 00004d5a: PUSH1 0x20 00004d5c: DUP5 00004d5d: ADD 00004d5e: CALLDATALOAD 00004d5f: PUSH2 0x4d67 00004d62: DUP2 00004d63: PUSH2 0x4a56 00004d66: JUMP 00004d67: JUMPDEST 00004d68: SWAP2 00004d69: POP 00004d6a: PUSH1 0x40 00004d6c: DUP5 00004d6d: ADD 00004d6e: CALLDATALOAD 00004d6f: PUSH2 0x4d77 00004d72: DUP2 00004d73: PUSH2 0x4a56 00004d76: JUMP 00004d77: JUMPDEST 00004d78: DUP1 00004d79: SWAP2 00004d7a: POP 00004d7b: POP 00004d7c: SWAP3 00004d7d: POP 00004d7e: SWAP3 00004d7f: POP 00004d80: SWAP3 00004d81: JUMP 00004d82: JUMPDEST 00004d83: PUSH1 0xff 00004d85: PUSH1 0xf8 00004d87: SHL 00004d88: DUP9 00004d89: AND 00004d8a: DUP2 00004d8b: MSTORE 00004d8c: PUSH1 0xe0 00004d8e: PUSH1 0x20 00004d90: DUP3 00004d91: ADD 00004d92: MSTORE 00004d93: PUSH0 00004d94: PUSH2 0x4da0 00004d97: PUSH1 0xe0 00004d99: DUP4 00004d9a: ADD 00004d9b: DUP10 00004d9c: PUSH2 0x4a16 00004d9f: JUMP 00004da0: JUMPDEST 00004da1: DUP3 00004da2: DUP2 00004da3: SUB 00004da4: PUSH1 0x40 00004da6: DUP5 00004da7: ADD 00004da8: MSTORE 00004da9: PUSH2 0x4db2 00004dac: DUP2 00004dad: DUP10 00004dae: PUSH2 0x4a16 00004db1: JUMP 00004db2: JUMPDEST 00004db3: PUSH1 0x60 00004db5: DUP5 00004db6: ADD 00004db7: DUP9 00004db8: SWAP1 00004db9: MSTORE 00004dba: PUSH1 0x01 00004dbc: PUSH1 0x01 00004dbe: PUSH1 0xa0 00004dc0: SHL 00004dc1: SUB 00004dc2: DUP8 00004dc3: AND 00004dc4: PUSH1 0x80 00004dc6: DUP6 00004dc7: ADD 00004dc8: MSTORE 00004dc9: PUSH1 0xa0 00004dcb: DUP5 00004dcc: ADD 00004dcd: DUP7 00004dce: SWAP1 00004dcf: MSTORE 00004dd0: DUP4 00004dd1: DUP2 00004dd2: SUB 00004dd3: PUSH1 0xc0 00004dd5: DUP6 00004dd6: ADD 00004dd7: MSTORE 00004dd8: DUP5 00004dd9: MLOAD 00004dda: DUP1 00004ddb: DUP3 00004ddc: MSTORE 00004ddd: PUSH1 0x20 00004ddf: DUP1 00004de0: DUP8 00004de1: ADD 00004de2: SWAP4 00004de3: POP 00004de4: SWAP1 00004de5: SWAP2 00004de6: ADD 00004de7: SWAP1 00004de8: PUSH0 00004de9: JUMPDEST 00004dea: DUP2 00004deb: DUP2 00004dec: LT 00004ded: ISZERO 00004dee: PUSH2 0x4e07 00004df1: JUMPI 00004df2: DUP4 00004df3: MLOAD 00004df4: DUP4 00004df5: MSTORE 00004df6: PUSH1 0x20 00004df8: SWAP4 00004df9: DUP5 00004dfa: ADD 00004dfb: SWAP4 00004dfc: SWAP1 00004dfd: SWAP3 00004dfe: ADD 00004dff: SWAP2 00004e00: PUSH1 0x01 00004e02: ADD 00004e03: PUSH2 0x4de9 00004e06: JUMP 00004e07: JUMPDEST 00004e08: POP 00004e09: SWAP1 00004e0a: SWAP12 00004e0b: SWAP11 00004e0c: POP 00004e0d: POP 00004e0e: POP 00004e0f: POP 00004e10: POP 00004e11: POP 00004e12: POP 00004e13: POP 00004e14: POP 00004e15: POP 00004e16: POP 00004e17: JUMP 00004e18: JUMPDEST 00004e19: PUSH0 00004e1a: PUSH1 0x20 00004e1c: DUP3 00004e1d: DUP5 00004e1e: SUB 00004e1f: SLT 00004e20: ISZERO 00004e21: PUSH2 0x4e28 00004e24: JUMPI 00004e25: PUSH0 00004e26: PUSH0 00004e27: REVERT 00004e28: JUMPDEST 00004e29: PUSH2 0x10ed 00004e2c: DUP3 00004e2d: PUSH2 0x4cba 00004e30: JUMP 00004e31: JUMPDEST 00004e32: PUSH0 00004e33: PUSH0 00004e34: PUSH0 00004e35: PUSH1 0x60 00004e37: DUP5 00004e38: DUP7 00004e39: SUB 00004e3a: SLT 00004e3b: ISZERO 00004e3c: PUSH2 0x4e43 00004e3f: JUMPI 00004e40: PUSH0 00004e41: PUSH0 00004e42: REVERT 00004e43: JUMPDEST 00004e44: DUP4 00004e45: CALLDATALOAD 00004e46: SWAP3 00004e47: POP 00004e48: PUSH1 0x20 00004e4a: DUP5 00004e4b: ADD 00004e4c: CALLDATALOAD 00004e4d: PUSH2 0x4e55 00004e50: DUP2 00004e51: PUSH2 0x4a56 00004e54: JUMP 00004e55: JUMPDEST 00004e56: SWAP2 00004e57: POP 00004e58: PUSH1 0x40 00004e5a: DUP5 00004e5b: ADD 00004e5c: CALLDATALOAD 00004e5d: PUSH2 0x4d77 00004e60: DUP2 00004e61: PUSH2 0x4a6a 00004e64: JUMP 00004e65: JUMPDEST 00004e66: PUSH0 00004e67: PUSH0 00004e68: PUSH0 00004e69: PUSH0 00004e6a: PUSH1 0x80 00004e6c: DUP6 00004e6d: DUP8 00004e6e: SUB 00004e6f: SLT 00004e70: ISZERO 00004e71: PUSH2 0x4e78 00004e74: JUMPI 00004e75: PUSH0 00004e76: PUSH0 00004e77: REVERT 00004e78: JUMPDEST 00004e79: DUP5 00004e7a: CALLDATALOAD 00004e7b: SWAP4 00004e7c: POP 00004e7d: PUSH1 0x20 00004e7f: DUP6 00004e80: ADD 00004e81: CALLDATALOAD 00004e82: PUSH2 0x4e8a 00004e85: DUP2 00004e86: PUSH2 0x4a56 00004e89: JUMP 00004e8a: JUMPDEST 00004e8b: SWAP3 00004e8c: POP 00004e8d: PUSH1 0x40 00004e8f: DUP6 00004e90: ADD 00004e91: CALLDATALOAD 00004e92: PUSH2 0x4e9a 00004e95: DUP2 00004e96: PUSH2 0x4a56 00004e99: JUMP 00004e9a: JUMPDEST 00004e9b: SWAP2 00004e9c: POP 00004e9d: PUSH1 0x60 00004e9f: DUP6 00004ea0: ADD 00004ea1: CALLDATALOAD 00004ea2: PUSH2 0x4eaa 00004ea5: DUP2 00004ea6: PUSH2 0x4a6a 00004ea9: JUMP 00004eaa: JUMPDEST 00004eab: SWAP4 00004eac: SWAP7 00004ead: SWAP3 00004eae: SWAP6 00004eaf: POP 00004eb0: SWAP1 00004eb1: SWAP4 00004eb2: POP 00004eb3: POP 00004eb4: JUMP 00004eb5: JUMPDEST 00004eb6: PUSH1 0xff 00004eb8: DUP2 00004eb9: AND 00004eba: DUP2 00004ebb: EQ 00004ebc: PUSH2 0x29cc 00004ebf: JUMPI 00004ec0: PUSH0 00004ec1: PUSH0 00004ec2: REVERT 00004ec3: JUMPDEST 00004ec4: PUSH0 00004ec5: PUSH0 00004ec6: PUSH0 00004ec7: PUSH0 00004ec8: PUSH0 00004ec9: PUSH0 00004eca: PUSH0 00004ecb: PUSH1 0xe0 00004ecd: DUP9 00004ece: DUP11 00004ecf: SUB 00004ed0: SLT 00004ed1: ISZERO 00004ed2: PUSH2 0x4ed9 00004ed5: JUMPI 00004ed6: PUSH0 00004ed7: PUSH0 00004ed8: REVERT 00004ed9: JUMPDEST 00004eda: DUP8 00004edb: CALLDATALOAD 00004edc: PUSH2 0x4ee4 00004edf: DUP2 00004ee0: PUSH2 0x4a56 00004ee3: JUMP 00004ee4: JUMPDEST 00004ee5: SWAP7 00004ee6: POP 00004ee7: PUSH1 0x20 00004ee9: DUP9 00004eea: ADD 00004eeb: CALLDATALOAD 00004eec: PUSH2 0x4ef4 00004eef: DUP2 00004ef0: PUSH2 0x4a56 00004ef3: JUMP 00004ef4: JUMPDEST 00004ef5: SWAP6 00004ef6: POP 00004ef7: PUSH1 0x40 00004ef9: DUP9 00004efa: ADD 00004efb: CALLDATALOAD 00004efc: SWAP5 00004efd: POP 00004efe: PUSH1 0x60 00004f00: DUP9 00004f01: ADD 00004f02: CALLDATALOAD 00004f03: SWAP4 00004f04: POP 00004f05: PUSH1 0x80 00004f07: DUP9 00004f08: ADD 00004f09: CALLDATALOAD 00004f0a: PUSH2 0x4f12 00004f0d: DUP2 00004f0e: PUSH2 0x4eb5 00004f11: JUMP 00004f12: JUMPDEST 00004f13: SWAP7 00004f14: SWAP10 00004f15: SWAP6 00004f16: SWAP9 00004f17: POP 00004f18: SWAP4 00004f19: SWAP7 00004f1a: SWAP3 00004f1b: SWAP6 00004f1c: SWAP5 00004f1d: PUSH1 0xa0 00004f1f: DUP5 00004f20: ADD 00004f21: CALLDATALOAD 00004f22: SWAP5 00004f23: POP 00004f24: PUSH1 0xc0 00004f26: SWAP1 00004f27: SWAP4 00004f28: ADD 00004f29: CALLDATALOAD 00004f2a: SWAP3 00004f2b: SWAP2 00004f2c: POP 00004f2d: POP 00004f2e: JUMP 00004f2f: JUMPDEST 00004f30: PUSH0 00004f31: PUSH0 00004f32: PUSH1 0x40 00004f34: DUP4 00004f35: DUP6 00004f36: SUB 00004f37: SLT 00004f38: ISZERO 00004f39: PUSH2 0x4f40 00004f3c: JUMPI 00004f3d: PUSH0 00004f3e: PUSH0 00004f3f: REVERT 00004f40: JUMPDEST 00004f41: DUP3 00004f42: CALLDATALOAD 00004f43: PUSH2 0x4f4b 00004f46: DUP2 00004f47: PUSH2 0x4a56 00004f4a: JUMP 00004f4b: JUMPDEST 00004f4c: SWAP2 00004f4d: POP 00004f4e: PUSH1 0x20 00004f50: DUP4 00004f51: ADD 00004f52: CALLDATALOAD 00004f53: PUSH2 0x4aa2 00004f56: DUP2 00004f57: PUSH2 0x4a56 00004f5a: JUMP 00004f5b: JUMPDEST 00004f5c: PUSH4 0x4e487b71 00004f61: PUSH1 0xe0 00004f63: SHL 00004f64: PUSH0 00004f65: MSTORE 00004f66: PUSH1 0x41 00004f68: PUSH1 0x04 00004f6a: MSTORE 00004f6b: PUSH1 0x24 00004f6d: PUSH0 00004f6e: REVERT 00004f6f: JUMPDEST 00004f70: PUSH1 0x40 00004f72: MLOAD 00004f73: PUSH2 0x0220 00004f76: DUP2 00004f77: ADD 00004f78: PUSH1 0x01 00004f7a: PUSH1 0x01 00004f7c: PUSH1 0x40 00004f7e: SHL 00004f7f: SUB 00004f80: DUP2 00004f81: GT 00004f82: DUP3 00004f83: DUP3 00004f84: LT 00004f85: OR 00004f86: ISZERO 00004f87: PUSH2 0x4f92 00004f8a: JUMPI 00004f8b: PUSH2 0x4f92 00004f8e: PUSH2 0x4f5b 00004f91: JUMP 00004f92: JUMPDEST 00004f93: PUSH1 0x40 00004f95: MSTORE 00004f96: SWAP1 00004f97: JUMP 00004f98: JUMPDEST 00004f99: PUSH1 0x40 00004f9b: MLOAD 00004f9c: PUSH1 0x1f 00004f9e: DUP3 00004f9f: ADD 00004fa0: PUSH1 0x1f 00004fa2: NOT 00004fa3: AND 00004fa4: DUP2 00004fa5: ADD 00004fa6: PUSH1 0x01 00004fa8: PUSH1 0x01 00004faa: PUSH1 0x40 00004fac: SHL 00004fad: SUB 00004fae: DUP2 00004faf: GT 00004fb0: DUP3 00004fb1: DUP3 00004fb2: LT 00004fb3: OR 00004fb4: ISZERO 00004fb5: PUSH2 0x4fc0 00004fb8: JUMPI 00004fb9: PUSH2 0x4fc0 00004fbc: PUSH2 0x4f5b 00004fbf: JUMP 00004fc0: JUMPDEST 00004fc1: PUSH1 0x40 00004fc3: MSTORE 00004fc4: SWAP2 00004fc5: SWAP1 00004fc6: POP 00004fc7: JUMP 00004fc8: JUMPDEST 00004fc9: PUSH0 00004fca: PUSH1 0x20 00004fcc: DUP3 00004fcd: DUP5 00004fce: SUB 00004fcf: SLT 00004fd0: ISZERO 00004fd1: PUSH2 0x4fd8 00004fd4: JUMPI 00004fd5: PUSH0 00004fd6: PUSH0 00004fd7: REVERT 00004fd8: JUMPDEST 00004fd9: DUP2 00004fda: MLOAD 00004fdb: PUSH1 0x01 00004fdd: PUSH1 0x01 00004fdf: PUSH1 0x40 00004fe1: SHL 00004fe2: SUB 00004fe3: DUP2 00004fe4: GT 00004fe5: ISZERO 00004fe6: PUSH2 0x4fed 00004fe9: JUMPI 00004fea: PUSH0 00004feb: PUSH0 00004fec: REVERT 00004fed: JUMPDEST 00004fee: DUP3 00004fef: ADD 00004ff0: PUSH1 0x1f 00004ff2: DUP2 00004ff3: ADD 00004ff4: DUP5 00004ff5: SGT 00004ff6: PUSH2 0x4ffd 00004ff9: JUMPI 00004ffa: PUSH0 00004ffb: PUSH0 00004ffc: REVERT 00004ffd: JUMPDEST 00004ffe: DUP1 00004fff: MLOAD 00005000: PUSH1 0x01 00005002: PUSH1 0x01 00005004: PUSH1 0x40 00005006: SHL 00005007: SUB 00005008: DUP2 00005009: GT 0000500a: ISZERO 0000500b: PUSH2 0x5016 0000500e: JUMPI 0000500f: PUSH2 0x5016 00005012: PUSH2 0x4f5b 00005015: JUMP 00005016: JUMPDEST 00005017: PUSH2 0x5029 0000501a: PUSH1 0x1f 0000501c: DUP3 0000501d: ADD 0000501e: PUSH1 0x1f 00005020: NOT 00005021: AND 00005022: PUSH1 0x20 00005024: ADD 00005025: PUSH2 0x4f98 00005028: JUMP 00005029: JUMPDEST 0000502a: DUP2 0000502b: DUP2 0000502c: MSTORE 0000502d: DUP6 0000502e: PUSH1 0x20 00005030: DUP4 00005031: DUP6 00005032: ADD 00005033: ADD 00005034: GT 00005035: ISZERO 00005036: PUSH2 0x503d 00005039: JUMPI 0000503a: PUSH0 0000503b: PUSH0 0000503c: REVERT 0000503d: JUMPDEST 0000503e: DUP2 0000503f: PUSH1 0x20 00005041: DUP5 00005042: ADD 00005043: PUSH1 0x20 00005045: DUP4 00005046: ADD 00005047: MCOPY 00005048: PUSH0 00005049: SWAP2 0000504a: DUP2 0000504b: ADD 0000504c: PUSH1 0x20 0000504e: ADD 0000504f: SWAP2 00005050: SWAP1 00005051: SWAP2 00005052: MSTORE 00005053: SWAP5 00005054: SWAP4 00005055: POP 00005056: POP 00005057: POP 00005058: POP 00005059: JUMP 0000505a: JUMPDEST 0000505b: DUP1 0000505c: MLOAD 0000505d: PUSH2 0x4cc8 00005060: DUP2 00005061: PUSH2 0x4a56 00005064: JUMP 00005065: JUMPDEST 00005066: PUSH0 00005067: PUSH0 00005068: PUSH1 0x40 0000506a: DUP4 0000506b: DUP6 0000506c: SUB 0000506d: SLT 0000506e: ISZERO 0000506f: PUSH2 0x5076 00005072: JUMPI 00005073: PUSH0 00005074: PUSH0 00005075: REVERT 00005076: JUMPDEST 00005077: DUP3 00005078: MLOAD 00005079: PUSH2 0x5081 0000507c: DUP2 0000507d: PUSH2 0x4a56 00005080: JUMP 00005081: JUMPDEST 00005082: PUSH1 0x20 00005084: DUP5 00005085: ADD 00005086: MLOAD 00005087: SWAP1 00005088: SWAP3 00005089: POP 0000508a: PUSH2 0x4aa2 0000508d: DUP2 0000508e: PUSH2 0x4a56 00005091: JUMP 00005092: JUMPDEST 00005093: PUSH0 00005094: PUSH1 0x20 00005096: DUP3 00005097: DUP5 00005098: SUB 00005099: SLT 0000509a: ISZERO 0000509b: PUSH2 0x50a2 0000509e: JUMPI 0000509f: PUSH0 000050a0: PUSH0 000050a1: REVERT 000050a2: JUMPDEST 000050a3: POP 000050a4: MLOAD 000050a5: SWAP2 000050a6: SWAP1 000050a7: POP 000050a8: JUMP 000050a9: JUMPDEST 000050aa: PUSH0 000050ab: PUSH1 0x20 000050ad: DUP3 000050ae: DUP5 000050af: SUB 000050b0: SLT 000050b1: ISZERO 000050b2: PUSH2 0x50b9 000050b5: JUMPI 000050b6: PUSH0 000050b7: PUSH0 000050b8: REVERT 000050b9: JUMPDEST 000050ba: DUP2 000050bb: MLOAD 000050bc: PUSH2 0x10ed 000050bf: DUP2 000050c0: PUSH2 0x4eb5 000050c3: JUMP 000050c4: JUMPDEST 000050c5: DUP1 000050c6: MLOAD 000050c7: DUP1 000050c8: ISZERO 000050c9: ISZERO 000050ca: DUP2 000050cb: EQ 000050cc: PUSH2 0x4cc8 000050cf: JUMPI 000050d0: PUSH0 000050d1: PUSH0 000050d2: REVERT 000050d3: JUMPDEST 000050d4: PUSH0 000050d5: PUSH1 0x20 000050d7: DUP3 000050d8: DUP5 000050d9: SUB 000050da: SLT 000050db: ISZERO 000050dc: PUSH2 0x50e3 000050df: JUMPI 000050e0: PUSH0 000050e1: PUSH0 000050e2: REVERT 000050e3: JUMPDEST 000050e4: PUSH2 0x10ed 000050e7: DUP3 000050e8: PUSH2 0x50c4 000050eb: JUMP 000050ec: JUMPDEST 000050ed: PUSH0 000050ee: PUSH1 0x20 000050f0: DUP3 000050f1: DUP5 000050f2: SUB 000050f3: SLT 000050f4: ISZERO 000050f5: PUSH2 0x50fc 000050f8: JUMPI 000050f9: PUSH0 000050fa: PUSH0 000050fb: REVERT 000050fc: JUMPDEST 000050fd: DUP2 000050fe: MLOAD 000050ff: PUSH2 0x10ed 00005102: DUP2 00005103: PUSH2 0x4a56 00005106: JUMP 00005107: JUMPDEST 00005108: PUSH0 00005109: PUSH0 0000510a: PUSH1 0x40 0000510c: DUP4 0000510d: DUP6 0000510e: SUB 0000510f: SLT 00005110: ISZERO 00005111: PUSH2 0x5118 00005114: JUMPI 00005115: PUSH0 00005116: PUSH0 00005117: REVERT 00005118: JUMPDEST 00005119: POP 0000511a: POP 0000511b: DUP1 0000511c: MLOAD 0000511d: PUSH1 0x20 0000511f: SWAP1 00005120: SWAP2 00005121: ADD 00005122: MLOAD 00005123: SWAP1 00005124: SWAP3 00005125: SWAP1 00005126: SWAP2 00005127: POP 00005128: JUMP 00005129: JUMPDEST 0000512a: PUSH0 0000512b: PUSH0 0000512c: PUSH0 0000512d: PUSH1 0x60 0000512f: DUP5 00005130: DUP7 00005131: SUB 00005132: SLT 00005133: ISZERO 00005134: PUSH2 0x513b 00005137: JUMPI 00005138: PUSH0 00005139: PUSH0 0000513a: REVERT 0000513b: JUMPDEST 0000513c: DUP4 0000513d: MLOAD 0000513e: PUSH1 0x20 00005140: DUP6 00005141: ADD 00005142: MLOAD 00005143: SWAP1 00005144: SWAP4 00005145: POP 00005146: SWAP2 00005147: POP 00005148: PUSH2 0x5153 0000514b: PUSH1 0x40 0000514d: DUP6 0000514e: ADD 0000514f: PUSH2 0x50c4 00005152: JUMP 00005153: JUMPDEST 00005154: SWAP1 00005155: POP 00005156: SWAP3 00005157: POP 00005158: SWAP3 00005159: POP 0000515a: SWAP3 0000515b: JUMP 0000515c: JUMPDEST 0000515d: PUSH1 0x01 0000515f: PUSH1 0x01 00005161: PUSH1 0xa0 00005163: SHL 00005164: SUB 00005165: DUP7 00005166: DUP2 00005167: AND 00005168: DUP3 00005169: MSTORE 0000516a: DUP6 0000516b: AND 0000516c: PUSH1 0x20 0000516e: DUP3 0000516f: ADD 00005170: MSTORE 00005171: PUSH1 0x40 00005173: DUP2 00005174: ADD 00005175: DUP5 00005176: SWAP1 00005177: MSTORE 00005178: PUSH1 0x80 0000517a: PUSH1 0x60 0000517c: DUP3 0000517d: ADD 0000517e: DUP2 0000517f: SWAP1 00005180: MSTORE 00005181: DUP2 00005182: ADD 00005183: DUP3 00005184: SWAP1 00005185: MSTORE 00005186: DUP2 00005187: DUP4 00005188: PUSH1 0xa0 0000518a: DUP4 0000518b: ADD 0000518c: CALLDATACOPY 0000518d: PUSH0 0000518e: DUP2 0000518f: DUP4 00005190: ADD 00005191: PUSH1 0xa0 00005193: SWAP1 00005194: DUP2 00005195: ADD 00005196: SWAP2 00005197: SWAP1 00005198: SWAP2 00005199: MSTORE 0000519a: PUSH1 0x1f 0000519c: SWAP1 0000519d: SWAP3 0000519e: ADD 0000519f: PUSH1 0x1f 000051a1: NOT 000051a2: AND 000051a3: ADD 000051a4: ADD 000051a5: SWAP5 000051a6: SWAP4 000051a7: POP 000051a8: POP 000051a9: POP 000051aa: POP 000051ab: JUMP 000051ac: JUMPDEST 000051ad: DUP2 000051ae: MLOAD 000051af: DUP2 000051b0: MSTORE 000051b1: PUSH1 0x20 000051b3: DUP1 000051b4: DUP4 000051b5: ADD 000051b6: MLOAD 000051b7: SWAP1 000051b8: DUP3 000051b9: ADD 000051ba: MSTORE 000051bb: PUSH1 0x40 000051bd: DUP1 000051be: DUP4 000051bf: ADD 000051c0: MLOAD 000051c1: PUSH1 0x01 000051c3: PUSH1 0x01 000051c5: PUSH1 0xa0 000051c7: SHL 000051c8: SUB 000051c9: SWAP1 000051ca: DUP2 000051cb: AND 000051cc: SWAP2 000051cd: DUP4 000051ce: ADD 000051cf: SWAP2 000051d0: SWAP1 000051d1: SWAP2 000051d2: MSTORE 000051d3: PUSH1 0x60 000051d5: SWAP3 000051d6: DUP4 000051d7: ADD 000051d8: MLOAD 000051d9: AND 000051da: SWAP2 000051db: DUP2 000051dc: ADD 000051dd: SWAP2 000051de: SWAP1 000051df: SWAP2 000051e0: MSTORE 000051e1: PUSH1 0x80 000051e3: ADD 000051e4: SWAP1 000051e5: JUMP 000051e6: JUMPDEST 000051e7: PUSH4 0x4e487b71 000051ec: PUSH1 0xe0 000051ee: SHL 000051ef: PUSH0 000051f0: MSTORE 000051f1: PUSH1 0x21 000051f3: PUSH1 0x04 000051f5: MSTORE 000051f6: PUSH1 0x24 000051f8: PUSH0 000051f9: REVERT 000051fa: JUMPDEST 000051fb: PUSH0 000051fc: PUSH0 000051fd: PUSH1 0x40 000051ff: DUP4 00005200: DUP6 00005201: SUB 00005202: SLT 00005203: ISZERO 00005204: PUSH2 0x520b 00005207: JUMPI 00005208: PUSH0 00005209: PUSH0 0000520a: REVERT 0000520b: JUMPDEST 0000520c: DUP3 0000520d: MLOAD 0000520e: PUSH2 0x5216 00005211: DUP2 00005212: PUSH2 0x4c2e 00005215: JUMP 00005216: JUMPDEST 00005217: PUSH1 0x20 00005219: DUP5 0000521a: ADD 0000521b: MLOAD 0000521c: SWAP1 0000521d: SWAP3 0000521e: POP 0000521f: PUSH2 0x4aa2 00005222: DUP2 00005223: PUSH2 0x4c2e 00005226: JUMP 00005227: JUMPDEST 00005228: PUSH1 0x02 0000522a: DUP2 0000522b: LT 0000522c: PUSH2 0x5237 0000522f: JUMPI 00005230: PUSH2 0x5237 00005233: PUSH2 0x51e6 00005236: JUMP 00005237: JUMPDEST 00005238: SWAP1 00005239: MSTORE 0000523a: JUMP 0000523b: JUMPDEST 0000523c: DUP2 0000523d: MLOAD 0000523e: DUP2 0000523f: MSTORE 00005240: PUSH1 0x20 00005242: DUP1 00005243: DUP4 00005244: ADD 00005245: MLOAD 00005246: PUSH1 0x01 00005248: PUSH1 0x01 0000524a: PUSH1 0xa0 0000524c: SHL 0000524d: SUB 0000524e: AND 0000524f: SWAP1 00005250: DUP3 00005251: ADD 00005252: MSTORE 00005253: PUSH1 0x40 00005255: DUP1 00005256: DUP4 00005257: ADD 00005258: MLOAD 00005259: PUSH1 0x60 0000525b: DUP4 0000525c: ADD 0000525d: SWAP2 0000525e: PUSH2 0x16ed 00005261: SWAP1 00005262: DUP5 00005263: ADD 00005264: DUP3 00005265: PUSH2 0x5227 00005268: JUMP 00005269: JUMPDEST 0000526a: PUSH1 0x01 0000526c: PUSH1 0x01 0000526e: PUSH1 0xa0 00005270: SHL 00005271: SUB 00005272: DUP4 00005273: AND 00005274: DUP2 00005275: MSTORE 00005276: PUSH1 0x40 00005278: DUP2 00005279: ADD 0000527a: PUSH2 0x10ed 0000527d: PUSH1 0x20 0000527f: DUP4 00005280: ADD 00005281: DUP5 00005282: PUSH2 0x5227 00005285: JUMP 00005286: JUMPDEST 00005287: PUSH0 00005288: PUSH2 0x0220 0000528b: DUP3 0000528c: DUP5 0000528d: SUB 0000528e: SLT 0000528f: DUP1 00005290: ISZERO 00005291: PUSH2 0x5298 00005294: JUMPI 00005295: PUSH0 00005296: PUSH0 00005297: REVERT 00005298: JUMPDEST 00005299: POP 0000529a: PUSH2 0x52a1 0000529d: PUSH2 0x4f6f 000052a0: JUMP 000052a1: JUMPDEST 000052a2: DUP3 000052a3: MLOAD 000052a4: DUP2 000052a5: MSTORE 000052a6: PUSH1 0x20 000052a8: DUP1 000052a9: DUP5 000052aa: ADD 000052ab: MLOAD 000052ac: SWAP1 000052ad: DUP3 000052ae: ADD 000052af: MSTORE 000052b0: PUSH2 0x52bb 000052b3: PUSH1 0x40 000052b5: DUP5 000052b6: ADD 000052b7: PUSH2 0x505a 000052ba: JUMP 000052bb: JUMPDEST 000052bc: PUSH1 0x40 000052be: DUP3 000052bf: ADD 000052c0: MSTORE 000052c1: PUSH2 0x52cc 000052c4: PUSH1 0x60 000052c6: DUP5 000052c7: ADD 000052c8: PUSH2 0x505a 000052cb: JUMP 000052cc: JUMPDEST 000052cd: PUSH1 0x60 000052cf: DUP3 000052d0: ADD 000052d1: MSTORE 000052d2: PUSH2 0x52dd 000052d5: PUSH1 0x80 000052d7: DUP5 000052d8: ADD 000052d9: PUSH2 0x505a 000052dc: JUMP 000052dd: JUMPDEST 000052de: PUSH1 0x80 000052e0: DUP3 000052e1: ADD 000052e2: MSTORE 000052e3: PUSH2 0x52ee 000052e6: PUSH1 0xa0 000052e8: DUP5 000052e9: ADD 000052ea: PUSH2 0x505a 000052ed: JUMP 000052ee: JUMPDEST 000052ef: PUSH1 0xa0 000052f1: DUP3 000052f2: ADD 000052f3: MSTORE 000052f4: PUSH2 0x52ff 000052f7: PUSH1 0xc0 000052f9: DUP5 000052fa: ADD 000052fb: PUSH2 0x505a 000052fe: JUMP 000052ff: JUMPDEST 00005300: PUSH1 0xc0 00005302: DUP3 00005303: ADD 00005304: MSTORE 00005305: PUSH2 0x5310 00005308: PUSH1 0xe0 0000530a: DUP5 0000530b: ADD 0000530c: PUSH2 0x505a 0000530f: JUMP 00005310: JUMPDEST 00005311: PUSH1 0xe0 00005313: DUP3 00005314: ADD 00005315: MSTORE 00005316: PUSH2 0x5322 00005319: PUSH2 0x0100 0000531c: DUP5 0000531d: ADD 0000531e: PUSH2 0x505a 00005321: JUMP 00005322: JUMPDEST 00005323: PUSH2 0x0100 00005326: DUP3 00005327: ADD 00005328: MSTORE 00005329: PUSH2 0x5335 0000532c: PUSH2 0x0120 0000532f: DUP5 00005330: ADD 00005331: PUSH2 0x505a 00005334: JUMP 00005335: JUMPDEST 00005336: PUSH2 0x0120 00005339: DUP3 0000533a: ADD 0000533b: MSTORE 0000533c: PUSH2 0x0140 0000533f: DUP4 00005340: DUP2 00005341: ADD 00005342: MLOAD 00005343: SWAP1 00005344: DUP3 00005345: ADD 00005346: MSTORE 00005347: PUSH2 0x0160 0000534a: DUP1 0000534b: DUP5 0000534c: ADD 0000534d: MLOAD 0000534e: SWAP1 0000534f: DUP3 00005350: ADD 00005351: MSTORE 00005352: PUSH2 0x0180 00005355: DUP1 00005356: DUP5 00005357: ADD 00005358: MLOAD 00005359: SWAP1 0000535a: DUP3 0000535b: ADD 0000535c: MSTORE 0000535d: PUSH2 0x01a0 00005360: DUP1 00005361: DUP5 00005362: ADD 00005363: MLOAD 00005364: SWAP1 00005365: DUP3 00005366: ADD 00005367: MSTORE 00005368: PUSH2 0x01c0 0000536b: DUP1 0000536c: DUP5 0000536d: ADD 0000536e: MLOAD 0000536f: SWAP1 00005370: DUP3 00005371: ADD 00005372: MSTORE 00005373: PUSH2 0x537f 00005376: PUSH2 0x01e0 00005379: DUP5 0000537a: ADD 0000537b: PUSH2 0x505a 0000537e: JUMP 0000537f: JUMPDEST 00005380: PUSH2 0x01e0 00005383: DUP3 00005384: ADD 00005385: MSTORE 00005386: PUSH2 0x5392 00005389: PUSH2 0x0200 0000538c: DUP5 0000538d: ADD 0000538e: PUSH2 0x50c4 00005391: JUMP 00005392: JUMPDEST 00005393: PUSH2 0x0200 00005396: DUP3 00005397: ADD 00005398: MSTORE 00005399: SWAP4 0000539a: SWAP3 0000539b: POP 0000539c: POP 0000539d: POP 0000539e: JUMP 0000539f: JUMPDEST 000053a0: DUP2 000053a1: DUP4 000053a2: DUP3 000053a3: CALLDATACOPY 000053a4: PUSH0 000053a5: SWAP2 000053a6: ADD 000053a7: SWAP1 000053a8: DUP2 000053a9: MSTORE 000053aa: SWAP2 000053ab: SWAP1 000053ac: POP 000053ad: JUMP 000053ae: JUMPDEST 000053af: DUP5 000053b0: DUP2 000053b1: MSTORE 000053b2: PUSH1 0x20 000053b4: DUP2 000053b5: ADD 000053b6: DUP5 000053b7: SWAP1 000053b8: MSTORE 000053b9: PUSH1 0x01 000053bb: PUSH1 0x01 000053bd: PUSH1 0xa0 000053bf: SHL 000053c0: SUB 000053c1: DUP4 000053c2: AND 000053c3: PUSH1 0x40 000053c5: DUP3 000053c6: ADD 000053c7: MSTORE 000053c8: PUSH1 0x80 000053ca: DUP2 000053cb: ADD 000053cc: PUSH2 0x17b0 000053cf: PUSH1 0x60 000053d1: DUP4 000053d2: ADD 000053d3: DUP5 000053d4: PUSH2 0x5227 000053d7: JUMP 000053d8: JUMPDEST 000053d9: PUSH1 0x20 000053db: DUP2 000053dc: ADD 000053dd: PUSH1 0x03 000053df: DUP4 000053e0: LT 000053e1: PUSH2 0x53ec 000053e4: JUMPI 000053e5: PUSH2 0x53ec 000053e8: PUSH2 0x51e6 000053eb: JUMP 000053ec: JUMPDEST 000053ed: SWAP2 000053ee: SWAP1 000053ef: MSTORE 000053f0: SWAP1 000053f1: JUMP 000053f2: JUMPDEST 000053f3: PUSH1 0x01 000053f5: DUP2 000053f6: DUP2 000053f7: SHR 000053f8: SWAP1 000053f9: DUP3 000053fa: AND 000053fb: DUP1 000053fc: PUSH2 0x5406 000053ff: JUMPI 00005400: PUSH1 0x7f 00005402: DUP3 00005403: AND 00005404: SWAP2 00005405: POP 00005406: JUMPDEST 00005407: PUSH1 0x20 00005409: DUP3 0000540a: LT 0000540b: DUP2 0000540c: SUB 0000540d: PUSH2 0x27c0 00005410: JUMPI 00005411: PUSH4 0x4e487b71 00005416: PUSH1 0xe0 00005418: SHL 00005419: PUSH0 0000541a: MSTORE 0000541b: PUSH1 0x22 0000541d: PUSH1 0x04 0000541f: MSTORE 00005420: PUSH1 0x24 00005422: PUSH0 00005423: REVERT 00005424: JUMPDEST 00005425: DUP2 00005426: MLOAD 00005427: DUP2 00005428: MSTORE 00005429: PUSH1 0x20 0000542b: DUP1 0000542c: DUP4 0000542d: ADD 0000542e: MLOAD 0000542f: SWAP1 00005430: DUP3 00005431: ADD 00005432: MSTORE 00005433: PUSH1 0x40 00005435: DUP1 00005436: DUP4 00005437: ADD 00005438: MLOAD 00005439: PUSH1 0x01 0000543b: PUSH1 0x01 0000543d: PUSH1 0xa0 0000543f: SHL 00005440: SUB 00005441: SWAP1 00005442: DUP2 00005443: AND 00005444: SWAP2 00005445: DUP4 00005446: ADD 00005447: SWAP2 00005448: SWAP1 00005449: SWAP2 0000544a: MSTORE 0000544b: PUSH1 0x60 0000544d: DUP1 0000544e: DUP5 0000544f: ADD 00005450: MLOAD 00005451: DUP3 00005452: AND 00005453: SWAP1 00005454: DUP4 00005455: ADD 00005456: MSTORE 00005457: PUSH1 0x80 00005459: DUP1 0000545a: DUP5 0000545b: ADD 0000545c: MLOAD 0000545d: SWAP1 0000545e: SWAP2 0000545f: AND 00005460: SWAP1 00005461: DUP3 00005462: ADD 00005463: MSTORE 00005464: PUSH1 0xa0 00005466: DUP1 00005467: DUP4 00005468: ADD 00005469: MLOAD 0000546a: PUSH1 0xc0 0000546c: DUP4 0000546d: ADD 0000546e: SWAP2 0000546f: PUSH2 0x16ed 00005472: SWAP1 00005473: DUP5 00005474: ADD 00005475: DUP3 00005476: PUSH2 0x5227 00005479: JUMP 0000547a: JUMPDEST 0000547b: PUSH4 0x4e487b71 00005480: PUSH1 0xe0 00005482: SHL 00005483: PUSH0 00005484: MSTORE 00005485: PUSH1 0x11 00005487: PUSH1 0x04 00005489: MSTORE 0000548a: PUSH1 0x24 0000548c: PUSH0 0000548d: REVERT 0000548e: JUMPDEST 0000548f: PUSH1 0x01 00005491: DUP2 00005492: JUMPDEST 00005493: PUSH1 0x01 00005495: DUP5 00005496: GT 00005497: ISZERO 00005498: PUSH2 0x54c9 0000549b: JUMPI 0000549c: DUP1 0000549d: DUP6 0000549e: DIV 0000549f: DUP2 000054a0: GT 000054a1: ISZERO 000054a2: PUSH2 0x54ad 000054a5: JUMPI 000054a6: PUSH2 0x54ad 000054a9: PUSH2 0x547a 000054ac: JUMP 000054ad: JUMPDEST 000054ae: PUSH1 0x01 000054b0: DUP5 000054b1: AND 000054b2: ISZERO 000054b3: PUSH2 0x54bb 000054b6: JUMPI 000054b7: SWAP1 000054b8: DUP2 000054b9: MUL 000054ba: SWAP1 000054bb: JUMPDEST 000054bc: PUSH1 0x01 000054be: SWAP4 000054bf: SWAP1 000054c0: SWAP4 000054c1: SHR 000054c2: SWAP3 000054c3: DUP1 000054c4: MUL 000054c5: PUSH2 0x5492 000054c8: JUMP 000054c9: JUMPDEST 000054ca: SWAP4 000054cb: POP 000054cc: SWAP4 000054cd: SWAP2 000054ce: POP 000054cf: POP 000054d0: JUMP 000054d1: JUMPDEST 000054d2: PUSH0 000054d3: DUP3 000054d4: PUSH2 0x54df 000054d7: JUMPI 000054d8: POP 000054d9: PUSH1 0x01 000054db: PUSH2 0x10bb 000054de: JUMP 000054df: JUMPDEST 000054e0: DUP2 000054e1: PUSH2 0x54eb 000054e4: JUMPI 000054e5: POP 000054e6: PUSH0 000054e7: PUSH2 0x10bb 000054ea: JUMP 000054eb: JUMPDEST 000054ec: DUP2 000054ed: PUSH1 0x01 000054ef: DUP2 000054f0: EQ 000054f1: PUSH2 0x5501 000054f4: JUMPI 000054f5: PUSH1 0x02 000054f7: DUP2 000054f8: EQ 000054f9: PUSH2 0x550b 000054fc: JUMPI 000054fd: PUSH2 0x5527 00005500: JUMP 00005501: JUMPDEST 00005502: PUSH1 0x01 00005504: SWAP2 00005505: POP 00005506: POP 00005507: PUSH2 0x10bb 0000550a: JUMP 0000550b: JUMPDEST 0000550c: PUSH1 0xff 0000550e: DUP5 0000550f: GT 00005510: ISZERO 00005511: PUSH2 0x551c 00005514: JUMPI 00005515: PUSH2 0x551c 00005518: PUSH2 0x547a 0000551b: JUMP 0000551c: JUMPDEST 0000551d: POP 0000551e: POP 0000551f: PUSH1 0x01 00005521: DUP3 00005522: SHL 00005523: PUSH2 0x10bb 00005526: JUMP 00005527: JUMPDEST 00005528: POP 00005529: PUSH1 0x20 0000552b: DUP4 0000552c: LT 0000552d: PUSH2 0x0133 00005530: DUP4 00005531: LT 00005532: AND 00005533: PUSH1 0x4e 00005535: DUP5 00005536: LT 00005537: PUSH1 0x0b 00005539: DUP5 0000553a: LT 0000553b: AND 0000553c: OR 0000553d: ISZERO 0000553e: PUSH2 0x554a 00005541: JUMPI 00005542: POP 00005543: DUP2 00005544: DUP2 00005545: EXP 00005546: PUSH2 0x10bb 00005549: JUMP 0000554a: JUMPDEST 0000554b: PUSH2 0x5556 0000554e: PUSH0 0000554f: NOT 00005550: DUP5 00005551: DUP5 00005552: PUSH2 0x548e 00005555: JUMP 00005556: JUMPDEST 00005557: DUP1 00005558: PUSH0 00005559: NOT 0000555a: DIV 0000555b: DUP3 0000555c: GT 0000555d: ISZERO 0000555e: PUSH2 0x5569 00005561: JUMPI 00005562: PUSH2 0x5569 00005565: PUSH2 0x547a 00005568: JUMP 00005569: JUMPDEST 0000556a: MUL 0000556b: SWAP4 0000556c: SWAP3 0000556d: POP 0000556e: POP 0000556f: POP 00005570: JUMP 00005571: JUMPDEST 00005572: PUSH0 00005573: PUSH2 0x10ed 00005576: DUP4 00005577: DUP4 00005578: PUSH2 0x54d1 0000557b: JUMP 0000557c: JUMPDEST 0000557d: DUP1 0000557e: DUP3 0000557f: ADD 00005580: DUP1 00005581: DUP3 00005582: GT 00005583: ISZERO 00005584: PUSH2 0x10bb 00005587: JUMPI 00005588: PUSH2 0x10bb 0000558b: PUSH2 0x547a 0000558e: JUMP 0000558f: JUMPDEST 00005590: PUSH4 0x4e487b71 00005595: PUSH1 0xe0 00005597: SHL 00005598: PUSH0 00005599: MSTORE 0000559a: PUSH1 0x12 0000559c: PUSH1 0x04 0000559e: MSTORE 0000559f: PUSH1 0x24 000055a1: PUSH0 000055a2: REVERT 000055a3: JUMPDEST 000055a4: DUP2 000055a5: DUP2 000055a6: SUB 000055a7: DUP2 000055a8: DUP2 000055a9: GT 000055aa: ISZERO 000055ab: PUSH2 0x10bb 000055ae: JUMPI 000055af: PUSH2 0x10bb 000055b2: PUSH2 0x547a 000055b5: JUMP 000055b6: JUMPDEST 000055b7: PUSH0 000055b8: PUSH1 0xff 000055ba: DUP4 000055bb: AND 000055bc: DUP1 000055bd: PUSH2 0x55d4 000055c0: JUMPI 000055c1: PUSH4 0x4e487b71 000055c6: PUSH1 0xe0 000055c8: SHL 000055c9: PUSH0 000055ca: MSTORE 000055cb: PUSH1 0x12 000055cd: PUSH1 0x04 000055cf: MSTORE 000055d0: PUSH1 0x24 000055d2: PUSH0 000055d3: REVERT 000055d4: JUMPDEST 000055d5: DUP1 000055d6: PUSH1 0xff 000055d8: DUP5 000055d9: AND 000055da: MOD 000055db: SWAP2 000055dc: POP 000055dd: POP 000055de: SWAP3 000055df: SWAP2 000055e0: POP 000055e1: POP 000055e2: JUMP 000055e3: JUMPDEST 000055e4: PUSH1 0x1f 000055e6: DUP3 000055e7: GT 000055e8: ISZERO 000055e9: PUSH2 0x2147 000055ec: JUMPI 000055ed: DUP1 000055ee: PUSH0 000055ef: MSTORE 000055f0: PUSH1 0x20 000055f2: PUSH0 000055f3: KECCAK256 000055f4: PUSH1 0x1f 000055f6: DUP5 000055f7: ADD 000055f8: PUSH1 0x05 000055fa: SHR 000055fb: DUP2 000055fc: ADD 000055fd: PUSH1 0x20 000055ff: DUP6 00005600: LT 00005601: ISZERO 00005602: PUSH2 0x5608 00005605: JUMPI 00005606: POP 00005607: DUP1 00005608: JUMPDEST 00005609: PUSH1 0x1f 0000560b: DUP5 0000560c: ADD 0000560d: PUSH1 0x05 0000560f: SHR 00005610: DUP3 00005611: ADD 00005612: SWAP2 00005613: POP 00005614: JUMPDEST 00005615: DUP2 00005616: DUP2 00005617: LT 00005618: ISZERO 00005619: PUSH2 0x412a 0000561c: JUMPI 0000561d: PUSH0 0000561e: DUP2 0000561f: SSTORE 00005620: PUSH1 0x01 00005622: ADD 00005623: PUSH2 0x5614 00005626: JUMP 00005627: JUMPDEST 00005628: DUP2 00005629: MLOAD 0000562a: PUSH1 0x01 0000562c: PUSH1 0x01 0000562e: PUSH1 0x40 00005630: SHL 00005631: SUB 00005632: DUP2 00005633: GT 00005634: ISZERO 00005635: PUSH2 0x5640 00005638: JUMPI 00005639: PUSH2 0x5640 0000563c: PUSH2 0x4f5b 0000563f: JUMP 00005640: JUMPDEST 00005641: PUSH2 0x5654 00005644: DUP2 00005645: PUSH2 0x564e 00005648: DUP5 00005649: SLOAD 0000564a: PUSH2 0x53f2 0000564d: JUMP 0000564e: JUMPDEST 0000564f: DUP5 00005650: PUSH2 0x55e3 00005653: JUMP 00005654: JUMPDEST 00005655: PUSH1 0x20 00005657: PUSH1 0x1f 00005659: DUP3 0000565a: GT 0000565b: PUSH1 0x01 0000565d: DUP2 0000565e: EQ 0000565f: PUSH2 0x5686 00005662: JUMPI 00005663: PUSH0 00005664: DUP4 00005665: ISZERO 00005666: PUSH2 0x566f 00005669: JUMPI 0000566a: POP 0000566b: DUP5 0000566c: DUP3 0000566d: ADD 0000566e: MLOAD 0000566f: JUMPDEST 00005670: PUSH0 00005671: NOT 00005672: PUSH1 0x03 00005674: DUP6 00005675: SWAP1 00005676: SHL 00005677: SHR 00005678: NOT 00005679: AND 0000567a: PUSH1 0x01 0000567c: DUP5 0000567d: SWAP1 0000567e: SHL 0000567f: OR 00005680: DUP5 00005681: SSTORE 00005682: PUSH2 0x412a 00005685: JUMP 00005686: JUMPDEST 00005687: PUSH0 00005688: DUP5 00005689: DUP2 0000568a: MSTORE 0000568b: PUSH1 0x20 0000568d: DUP2 0000568e: KECCAK256 0000568f: PUSH1 0x1f 00005691: NOT 00005692: DUP6 00005693: AND 00005694: SWAP2 00005695: JUMPDEST 00005696: DUP3 00005697: DUP2 00005698: LT 00005699: ISZERO 0000569a: PUSH2 0x56b5 0000569d: JUMPI 0000569e: DUP8 0000569f: DUP6 000056a0: ADD 000056a1: MLOAD 000056a2: DUP3 000056a3: SSTORE 000056a4: PUSH1 0x20 000056a6: SWAP5 000056a7: DUP6 000056a8: ADD 000056a9: SWAP5 000056aa: PUSH1 0x01 000056ac: SWAP1 000056ad: SWAP3 000056ae: ADD 000056af: SWAP2 000056b0: ADD 000056b1: PUSH2 0x5695 000056b4: JUMP 000056b5: JUMPDEST 000056b6: POP 000056b7: DUP5 000056b8: DUP3 000056b9: LT 000056ba: ISZERO 000056bb: PUSH2 0x56d2 000056be: JUMPI 000056bf: DUP7 000056c0: DUP5 000056c1: ADD 000056c2: MLOAD 000056c3: PUSH0 000056c4: NOT 000056c5: PUSH1 0x03 000056c7: DUP8 000056c8: SWAP1 000056c9: SHL 000056ca: PUSH1 0xf8 000056cc: AND 000056cd: SHR 000056ce: NOT 000056cf: AND 000056d0: DUP2 000056d1: SSTORE 000056d2: JUMPDEST 000056d3: POP 000056d4: POP 000056d5: POP 000056d6: POP 000056d7: PUSH1 0x01 000056d9: SWAP1 000056da: DUP2 000056db: SHL 000056dc: ADD 000056dd: SWAP1 000056de: SSTORE 000056df: POP 000056e0: JUMP 000056e1: JUMPDEST 000056e2: PUSH1 0x01 000056e4: DUP1 000056e5: PUSH1 0xa0 000056e7: SHL 000056e8: SUB 000056e9: DUP5 000056ea: AND 000056eb: DUP2 000056ec: MSTORE 000056ed: DUP3 000056ee: PUSH1 0x20 000056f0: DUP3 000056f1: ADD 000056f2: MSTORE 000056f3: PUSH1 0x60 000056f5: PUSH1 0x40 000056f7: DUP3 000056f8: ADD 000056f9: MSTORE 000056fa: PUSH0 000056fb: PUSH2 0x17b0 000056fe: PUSH1 0x60 00005700: DUP4 00005701: ADD 00005702: DUP5 00005703: PUSH2 0x4a16 00005706: JUMP 00005707: INVALID 00005708: ADD 00005709: UNKNOWN(0xB0) 0000570a: UNKNOWN(0xB3) 0000570b: UNKNOWN(0xF9) 0000570c: UNKNOWN(0xD6) 0000570d: UNKNOWN(0xE3) 0000570e: PUSH1 0x16 00005710: PUSH31 0x522fa2b18ba597ad7b2b35841fec7e1ca4dbb0adea1200d7513ffe3a01a9f6 00005730: PUSH1 0x60 00005732: DUP10 00005733: UNKNOWN(0xD1) 00005734: UNKNOWN(0xB6) 00005735: PUSH17 0x11bca35bec018ac0faa914e1c529408f83 00005747: MUL 00005748: UNKNOWN(0xD7) 00005749: MLOAD 0000574a: EXTCODEHASH 0000574b: INVALID 0000574c: GASPRICE 0000574d: ADD 0000574e: UNKNOWN(0xA9) 0000574f: UNKNOWN(0xF6) 00005750: PUSH1 0x60 00005752: DUP10 00005753: UNKNOWN(0xD1) 00005754: UNKNOWN(0xB6) 00005755: PUSH17 0x11bca35bec018ac0faa914e1c529408f83 00005767: STOP 00005768: LOG1 00005769: PUSH11 0x46d94261c7517cc8ff89f6 00005775: SHR 00005776: UNKNOWN(0x0C) 00005777: UNKNOWN(0xE9) 00005778: CALLDATALOAD 00005779: SWAP9 0000577a: UNKNOWN(0xE3) 0000577b: UNKNOWN(0xC8) 0000577c: BLOBHASH 0000577d: DUP1 0000577e: LT 0000577f: GT 00005780: UNKNOWN(0xDE) 00005781: UNKNOWN(0xE6) 00005782: BLOBHASH 00005783: UNKNOWN(0xA6) 00005784: UNKNOWN(0xA5) 00005785: JUMPI 00005786: UNKNOWN(0xD1) 00005787: STOP 00005788: SWAP16 00005789: UNKNOWN(0x4C) 0000578a: SWAP12 0000578b: SWAP1 0000578c: UNKNOWN(0xB8) 0000578d: CALLDATACOPY 0000578e: MCOPY 0000578f: BYTE 00005790: SHR 00005791: MLOAD 00005792: BASEFEE 00005793: EXTCODESIZE 00005794: EXTCODECOPY 00005795: LOG4 00005796: SELFBALANCE 00005797: UNKNOWN(0xC3) 00005798: UNKNOWN(0xCE) 00005799: UNKNOWN(0xF6) 0000579a: SSTORE 0000579b: PUSH29 0x7e1ddcfb2935a045af6b0ec7a2646970667358221220e81a903e0235bb 000057b9: UNKNOWN(0xAC) 000057ba: UNKNOWN(0xD5) 000057bb: UNKNOWN(0xD1) 000057bc: SWAP14 000057bd: PUSH21 0x3a667f9d6c02a21bf8d6ca6c849d567a4518ff0864 000057d3: PUSH20
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x7550c6f7738fc5c8182b89c56c81a3002a66603a0fae52d32ea39e7b5a1c0651
call_targets:
0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be
target_varies:
no
classification:
constant_target
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "sink_reached",
"attempts": 51,
"trace_id": "0x7550c6f7738fc5c8182b89c56c81a3002a66603a0fae52d32ea39e7b5a1c0651",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xce25eb57f2cde06332cbd1f51bfc72881fa6d9be"
],
"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": "0xeb3beb29",
"selector": "0xeb3beb29",
"calldata_variants": [
"0xeb3beb29",
"0xeb3beb290000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xecd658b4",
"selector": "0xecd658b4",
"calldata_variants": [
"0xecd658b4",
"0xecd658b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6b911bc",
"selector": "0xf6b911bc",
"calldata_variants": [
"0xf6b911bc",
"0xf6b911bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa9b1c6a",
"selector": "0xfa9b1c6a",
"calldata_variants": [
"0xfa9b1c6a",
"0xfa9b1c6a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffbaaf7a",
"selector": "0xffbaaf7a",
"calldata_variants": [
"0xffbaaf7a",
"0xffbaaf7a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda537660",
"selector": "0xda537660",
"calldata_variants": [
"0xda537660",
"0xda5376600000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdce5c2db",
"selector": "0xdce5c2db",
"calldata_variants": [
"0xdce5c2db",
"0xdce5c2db0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4198,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 4783,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 5028,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 25,
"untrusted_delegatecall_count": 25
}
|
| high | upgradeability | codex | Silo initializer is publicly callable, enabling first-caller takeover | 85 | no | — |
viewevidence_json{
"evidence": "`initialize` is external and has no access control beyond a one-time storage check.",
"locations": [
"contracts/silo-core/contracts/Silo.sol:65"
],
"recommendation": "Restrict `initialize` to the factory or a trusted deployer (e.g., `onlyFactory`), and/or use an initializer modifier that enforces an authorized caller. Ensure factory initializes in the same transaction as deployment.",
"exploit_scenario": "If a new Silo proxy/clone is deployed without an atomic initialization, any account can call `initialize` first and set an arbitrary `SiloConfig` (including a malicious hook receiver). This permanently controls configuration and can redirect fees or brick the pool before legitimate initialization."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x910713f3f5dd3a2bfad2ca7fadd69f8b94552f3fd1e7c8a96cb249857b0e98c3
call_targets:
0xef1bc66e0ea9717a3f2c969633a989d6bf41024b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x910713f3f5dd3a2bfad2ca7fadd69f8b94552f3fd1e7c8a96cb249857b0e98c3",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xef1bc66e0ea9717a3f2c969633a989d6bf41024b"
],
"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": "0xeb3beb29",
"selector": "0xeb3beb29",
"calldata_variants": [
"0xeb3beb29",
"0xeb3beb290000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xecd658b4",
"selector": "0xecd658b4",
"calldata_variants": [
"0xecd658b4",
"0xecd658b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6b911bc",
"selector": "0xf6b911bc",
"calldata_variants": [
"0xf6b911bc",
"0xf6b911bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa9b1c6a",
"selector": "0xfa9b1c6a",
"calldata_variants": [
"0xfa9b1c6a",
"0xfa9b1c6a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffbaaf7a",
"selector": "0xffbaaf7a",
"calldata_variants": [
"0xffbaaf7a",
"0xffbaaf7a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda537660",
"selector": "0xda537660",
"calldata_variants": [
"0xda537660",
"0xda5376600000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdce5c2db",
"selector": "0xdce5c2db",
"calldata_variants": [
"0xdce5c2db",
"0xdce5c2db0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4466,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7814,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10942,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 5,
"guards_detected": [],
"untrusted_call_count": 5
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x910713f3f5dd3a2bfad2ca7fadd69f8b94552f3fd1e7c8a96cb249857b0e98c3
call_targets:
0xef1bc66e0ea9717a3f2c969633a989d6bf41024b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x910713f3f5dd3a2bfad2ca7fadd69f8b94552f3fd1e7c8a96cb249857b0e98c3",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xef1bc66e0ea9717a3f2c969633a989d6bf41024b"
],
"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": "0xeb3beb29",
"selector": "0xeb3beb29",
"calldata_variants": [
"0xeb3beb29",
"0xeb3beb290000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xecd658b4",
"selector": "0xecd658b4",
"calldata_variants": [
"0xecd658b4",
"0xecd658b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6b911bc",
"selector": "0xf6b911bc",
"calldata_variants": [
"0xf6b911bc",
"0xf6b911bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa9b1c6a",
"selector": "0xfa9b1c6a",
"calldata_variants": [
"0xfa9b1c6a",
"0xfa9b1c6a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffbaaf7a",
"selector": "0xffbaaf7a",
"calldata_variants": [
"0xffbaaf7a",
"0xffbaaf7a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda537660",
"selector": "0xda537660",
"calldata_variants": [
"0xda537660",
"0xda5376600000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdce5c2db",
"selector": "0xdce5c2db",
"calldata_variants": [
"0xdce5c2db",
"0xdce5c2db0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4466,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7814,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10942,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 5,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 25
}
|
| medium | math | codex | Fee-on-transfer tokens break share and debt accounting | 75 | no | — |
viewevidence_json{
"evidence": "Transfers explicitly ignore fee-on-transfer behavior, and accounting uses the requested amounts instead of received amounts.",
"locations": [
"contracts/silo-core/contracts/lib/SiloERC4626Lib.sol:72",
"contracts/silo-core/contracts/lib/SiloERC4626Lib.sol:139",
"contracts/silo-core/contracts/lib/SiloLendingLib.sol:84"
],
"recommendation": "Reject fee-on-transfer/rebasing tokens at configuration time, or compute actual received amounts using pre/post balance checks and base share/debt accounting on the real amount moved.",
"exploit_scenario": "For fee-on-transfer tokens, deposits and repayments credit the full requested amount even if fewer tokens are received. An attacker can deposit such a token to mint excess shares and borrow against inflated collateral, or repay debt while transferring less than the accounted amount, leading to undercollateralization and potential insolvency."
}
|
| low | other | codex | Hook receiver can delegatecall arbitrary targets with Silo/share-token storage context | 65 | no | — |
viewevidence_json{
"evidence": "`callOnBehalfOfSilo` and `callOnBehalfOfShareToken` allow delegatecall to an arbitrary `_target`.",
"locations": [
"contracts/silo-core/contracts/lib/Actions.sol:518",
"contracts/silo-core/contracts/lib/ShareTokenLib.sol:131"
],
"recommendation": "Remove or disable delegatecall capability, or restrict it to an allowlisted target set. Ensure the hook receiver is immutable and fully trusted if delegatecall remains.",
"exploit_scenario": "A compromised or upgradable hook receiver can invoke `callOnBehalfOfSilo` with `Delegatecall` to execute arbitrary code in the Silo\u2019s storage context (or via ShareToken helper), potentially draining assets or corrupting accounting. This is a powerful trust boundary that amplifies hook receiver risk."
}
|
| 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": 10
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 22
}
|