f79cdfdf-c2a6-4381-8634-dcbefab1610e
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 |
|---|---|---|---|---|
| 30641 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 74842 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 74843 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 74844 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 74845 | capability.graph | complete | 1 / 3 | 1 week ago |
| 74846 | detector.run | complete | 1 / 3 | 1 week ago |
| 74847 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:576980] OpenAI Codex v0.77.0 (research preview)
[codex:576980] --------
[codex:576980] workdir: /tmp/codex-multi-a72k9sp_
[codex:576980] model: gpt-5.2-codex
[codex:576980] provider: openai
[codex:576980] approval: never
[codex:576980] sandbox: read-only
[codex:576980] reasoning effort: xhigh
[codex:576980] reasoning summaries: auto
[codex:576980] session id: 019b6cc9-7c55-7f72-8c29-eb3fb05acafe
[codex:576980] --------
[codex:576980] user
[codex:576980] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:576980] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:576980] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:576980]
[codex:576980] Scope rules:
[codex:576980] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:576980] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:576980]
[codex:576980] Output MUST be valid JSON matching the provided schema.
[codex:576980] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:576980] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:576980]
[codex:576980] Output constraints (IMPORTANT):
[codex:576980] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:576980] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:576980] mcp startup: no servers
[codex:576980]
[codex:576980] thinking
[codex:576980] **Preparing to review AUDIT_BUNDLE**
[codex:576980] exec
[codex:576980] /bin/bash -lc ls in /tmp/codex-multi-a72k9sp_ succeeded in 5ms:
[codex:576980] AUDIT_BUNDLE.txt
[codex:576980] codex-output-schema.json
[codex:576980] contracts
[codex:576980]
[codex:576980] thinking
[codex:576980] **Reading AUDIT_BUNDLE**
[codex:576980] exec
[codex:576980] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-a72k9sp_ succeeded in 6ms:
[codex:576980] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:576980]
[codex:576980] ================================================================================
[codex:576980] FILE: contracts/@openzeppelin/contracts/math/SafeMath.sol
[codex:576980] ================================================================================
[codex:576980] // SPDX-License-Identifier: MIT
[codex:576980]
[codex:576980] pragma solidity >=0.6.0 <0.8.0;
[codex:576980]
[codex:576980] /**
[codex:576980] * @dev Wrappers over Solidity's arithmetic operations with added overflow
[codex:576980] * checks.
[codex:576980] *
[codex:576980] * Arithmetic operations in Solidity wrap on overflow. This can easily result
[codex:576980] * in bugs, because programmers usually assume that an overflow raises an
[codex:576980] * error, which is the standard behavior in high level programming languages.
[codex:576980] * `SafeMath` restores this intuition by reverting the transaction when an
[codex:576980] * operation overflows.
[codex:576980] *
[codex:576980] * Using this library instead of the unchecked operations eliminates an entire
[codex:576980]
[codex:576980] thinking
[codex:576980] **Filtering first-party contracts for audit**
[codex:576980] exec
[codex:576980] /bin/bash -lc 'rg -n "''^FILE: contracts/contracts" AUDIT_BUNDLE.txt' in /tmp/codex-multi-a72k9sp_ succeeded in 7ms:
[codex:576980] 641:FILE: contracts/contracts/AMMQuoter.sol
[codex:576980] 986:FILE: contracts/contracts/AMMWrapper.sol
[codex:576980] 1553:FILE: contracts/contracts/AMMWrapperWithPath.sol
[codex:576980] 1853:FILE: contracts/contracts/AllowanceTarget.sol
[codex:576980] 1941:FILE: contracts/contracts/MarketMakerProxy.sol
[codex:576980] 2064:FILE: contracts/contracts/PMM.sol
[codex:576980] 2374:FILE: contracts/contracts/PermanentStorage.sol
[codex:576980] 2650:FILE: contracts/contracts/RFQ.sol
[codex:576980] 2911:FILE: contracts/contracts/Spender.sol
[codex:576980] 3196:FILE: contracts/contracts/SpenderSimulation.sol
[codex:576980] 3244:FILE: contracts/contracts/Tokenlon.sol
[codex:576980] 3257:FILE: contracts/contracts/interfaces/IAMM.sol
[codex:576980] 3280:FILE: contracts/contracts/interfaces/IAllowanceTarget.sol
[codex:576980] 3292:FILE: contracts/contracts/interfaces/ICurveFi.sol
[codex:576980] 3442:FILE: contracts/contracts/interfaces/IERC1271Wallet.sol
[codex:576980] 3484:FILE: contracts/contracts/interfaces/IHasBlackListERC20Token.sol
[codex:576980] 3497:FILE: contracts/contracts/interfaces/IPMM.sol
[codex:576980] 3514:FILE: contracts/contracts/interfaces/IPermanentStorage.sol
[codex:576980] 3533:FILE: contracts/contracts/interfaces/IRFQ.sol
[codex:576980] 3550:FILE: contracts/contracts/interfaces/ISetAllowance.sol
[codex:576980]
[codex:576980] thinking
[codex:576980] **Reviewing key contract files**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/AMMQuoter.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /AMMQuoter/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 10ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980] pragma experimental ABIEncoderV2;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:576980] import "./interfaces/IUniswapExchange.sol";
[codex:576980] import "./interfaces/IUniswapFactory.sol";
[codex:576980] import "./interfaces/IUniswapRouterV2.sol";
[codex:576980] import "./interfaces/ICurveFi.sol";
[codex:576980] import "./interfaces/IWeth.sol";
[codex:576980] import "./interfaces/IPermanentStorage.sol";
[codex:576980] import "./interfaces/IUniswapV3Quoter.sol";
[codex:576980] import "./utils/LibBytes.sol";
[codex:576980]
[codex:576980] /// This contract is designed to be called off-chain.
[codex:576980] /// At T1, 4 requests would be made in order to get quote, which is for Uniswap v2, v3, Sushiswap and others.
[codex:576980] /// For those source without path design, we can find best out amount in this contract.
[codex:576980] /// For Uniswap and Sushiswap, best path would be calculated off-chain, we only verify out amount in this contract.
[codex:576980]
[codex:576980] contract AMMQuoter {
[codex:576980]
[codex:576980] thinking
[codex:576980] **Assessing AMMQuoter security posture**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/AMMWrapper.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /AMMWrapper.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 6ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:576980] import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:576980] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:576980] import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:576980] import "./interfaces/ISpender.sol";
[codex:576980] import "./interfaces/IUniswapExchange.sol";
[codex:576980] import "./interfaces/IUniswapFactory.sol";
[codex:576980] import "./interfaces/IUniswapRouterV2.sol";
[codex:576980] import "./interfaces/ICurveFi.sol";
[codex:576980] import "./interfaces/IAMM.sol";
[codex:576980] import "./interfaces/IWeth.sol";
[codex:576980] import "./interfaces/IPermanentStorage.sol";
[codex:576980] import "./utils/AMMLibEIP712.sol";
[codex:576980] import "./utils/SignatureValidator.sol";
[codex:576980]
[codex:576980] contract AMMWrapper is
[codex:576980] IAMM,
[codex:576980]
[codex:576980] thinking
[codex:576980] **Continuing AMMWrapperWithPath implementation**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/AMMWrapperWithPath.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /AMMWrapperWithPath.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980] pragma experimental ABIEncoderV2;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:576980] import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:576980] import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:576980] import "./AMMWrapper.sol";
[codex:576980] import "./interfaces/ISpender.sol";
[codex:576980] import "./interfaces/IUniswapRouterV2.sol";
[codex:576980] import "./interfaces/IUniswapV3SwapRouter.sol";
[codex:576980] import "./interfaces/IPermanentStorage.sol";
[codex:576980] import "./utils/UniswapV3PathLib.sol";
[codex:576980]
[codex:576980] contract AMMWrapperWithPath is AMMWrapper {
[codex:576980] using SafeMath for uint256;
[codex:576980] using SafeERC20 for IERC20;
[codex:576980] using Path for bytes;
[codex:576980]
[codex:576980] // Constants do not have storage slot.
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing potential security risks**
[codex:576980]
[codex:576980] I'm scrutinizing AMMWrapper for security concerns like reentrancy in token transfers, use of tx.origin for relayer validation, and uncertainties in feeFactor signing. I’m also checking signature validation robustness and potential cross-chain replay risks via EIP712 domain setup. There is a lot here to weigh carefully!
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/utils\\/AMMLibEIP712.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /AMMLibEIP712.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980] import "./BaseLibEIP712.sol";
[codex:576980]
[codex:576980] contract AMMLibEIP712 is BaseLibEIP712 {
[codex:576980] /***********************************|
[codex:576980] | Constants |
[codex:576980] |__________________________________*/
[codex:576980]
[codex:576980] struct Order {
[codex:576980] address makerAddr;
[codex:576980] address takerAssetAddr;
[codex:576980] address makerAssetAddr;
[codex:576980] uint256 takerAssetAmount;
[codex:576980] uint256 makerAssetAmount;
[codex:576980] address userAddr;
[codex:576980] address payable receiverAddr;
[codex:576980] uint256 salt;
[codex:576980] uint256 deadline;
[codex:576980]
[codex:576980] thinking
[codex:576980] **Identifying missing BaseLibEIP712**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/utils\\/BaseLibEIP712.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /BaseLibEIP712.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980] contract BaseLibEIP712 {
[codex:576980] /***********************************|
[codex:576980] | Constants |
[codex:576980] |__________________________________*/
[codex:576980]
[codex:576980] // EIP-191 Header
[codex:576980] string public constant EIP191_HEADER = "\x19\x01";
[codex:576980]
[codex:576980] // EIP712Domain
[codex:576980] string public constant EIP712_DOMAIN_NAME = "Tokenlon";
[codex:576980] string public constant EIP712_DOMAIN_VERSION = "v5";
[codex:576980]
[codex:576980] // EIP712Domain Separator
[codex:576980] bytes32 public immutable EIP712_DOMAIN_SEPARATOR = keccak256(
[codex:576980] abi.encode(
[codex:576980] keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
[codex:576980] keccak256(bytes(EIP712_DOMAIN_NAME)),
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing EIP712 domain details**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/AllowanceTarget.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /AllowanceTarget.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] ================================================================================
[codex:576980] // SPDX-License-Identifier: MIT
[codex:576980]
[codex:576980] pragma solidity ^0.6.5;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/utils/Address.sol";
[codex:576980] import "./interfaces/IAllowanceTarget.sol";
[codex:576980]
[codex:576980] /**
[codex:576980] * @dev AllowanceTarget contract
[codex:576980] */
[codex:576980] contract AllowanceTarget is IAllowanceTarget {
[codex:576980] using Address for address;
[codex:576980]
[codex:576980] uint256 constant private TIME_LOCK_DURATION = 1 days;
[codex:576980]
[codex:576980] address public spender;
[codex:576980] address public newSpender;
[codex:576980] uint256 public timelockExpirationTime;
[codex:576980]
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing spender control and timelock**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/MarketMakerProxy.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /MarketMakerProxy.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:576980] import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:576980] import "./interfaces/IWeth.sol";
[codex:576980] import "./pmm/mmp/Ownable.sol";
[codex:576980] import "./pmm/0xLibs/LibDecoder.sol";
[codex:576980]
[codex:576980] interface IIMBTC {
[codex:576980] function burn(uint256 amount, bytes calldata data) external;
[codex:576980] }
[codex:576980]
[codex:576980] interface IWBTC {
[codex:576980] function burn(uint256 value) external;
[codex:576980] }
[codex:576980]
[codex:576980] contract MarketMakerProxy is
[codex:576980] Ownable,
[codex:576980] LibDecoder
[codex:576980]
[codex:576980] thinking
[codex:576980] **Inspecting Ownable in MarketMakerProxy context**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/pmm\\/mmp\\/Ownable.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /pmm'"\\/mmp\\/Ownable.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980] contract Ownable {
[codex:576980] address public owner;
[codex:576980] address public operator;
[codex:576980]
[codex:576980] constructor ()
[codex:576980] public
[codex:576980] {
[codex:576980] owner = msg.sender;
[codex:576980] }
[codex:576980]
[codex:576980] modifier onlyOwner() {
[codex:576980] require(
[codex:576980] msg.sender == owner,
[codex:576980] "Ownable: only contract owner"
[codex:576980] );
[codex:576980] _;
[codex:576980] }
[codex:576980]
[codex:576980] thinking
[codex:576980] **Reviewing MarketMakerProxy contract details**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/PMM.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /PMM.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980] pragma experimental ABIEncoderV2;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:576980] import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:576980] import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:576980] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:576980] import "@openzeppelin/contracts/utils/Address.sol";
[codex:576980] import "./pmm/0xLibs/LibOrder.sol";
[codex:576980] import "./pmm/0xLibs/LibDecoder.sol";
[codex:576980] import "./pmm/0xLibs/LibEncoder.sol";
[codex:576980] import "./interfaces/ISpender.sol";
[codex:576980] import "./interfaces/IZeroExchange.sol";
[codex:576980] import "./interfaces/IWeth.sol";
[codex:576980] import "./interfaces/IPMM.sol";
[codex:576980] import "./interfaces/IPermanentStorage.sol";
[codex:576980] import "./interfaces/IERC1271Wallet.sol";
[codex:576980]
[codex:576980] contract PMM is
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing feeFactor usage in 0x orders**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/pmm\\/0xLibs\\/LibDecoder.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /pmm'"\\/0xLibs\\/LibDecoder.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980] pragma experimental ABIEncoderV2;
[codex:576980]
[codex:576980] import "./LibOrder.sol";
[codex:576980] import "../../utils/LibBytes.sol";
[codex:576980]
[codex:576980] contract LibDecoder {
[codex:576980] using LibBytes for bytes;
[codex:576980]
[codex:576980] function decodeFillOrder(bytes memory data) internal pure returns(LibOrder.Order memory order, uint256 takerFillAmount, bytes memory mmSignature) {
[codex:576980] require(
[codex:576980] data.length > 800,
[codex:576980] "LibDecoder: LENGTH_LESS_800"
[codex:576980] );
[codex:576980]
[codex:576980] // compare method_id
[codex:576980] // 0x64a3bc15 is fillOrKillOrder's method id.
[codex:576980] require(
[codex:576980] data.readBytes4(0) == 0x64a3bc15,
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing signature and replay protections**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/PermanentStorage.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /PermanentStorage.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 7ms:
[codex:576980] ================================================================================
[codex:576980] // SPDX-License-Identifier: MIT
[codex:576980]
[codex:576980] pragma solidity ^0.6.5;
[codex:576980]
[codex:576980] import "./interfaces/IPermanentStorage.sol";
[codex:576980] import "./utils/lib_storage/PSStorage.sol";
[codex:576980]
[codex:576980] contract PermanentStorage is IPermanentStorage {
[codex:576980]
[codex:576980] // Constants do not have storage slot.
[codex:576980] bytes32 public constant curveTokenIndexStorageId = 0xf4c750cdce673f6c35898d215e519b86e3846b1f0532fb48b84fe9d80f6de2fc; // keccak256("curveTokenIndex")
[codex:576980] bytes32 public constant transactionSeenStorageId = 0x695d523b8578c6379a2121164fd8de334b9c5b6b36dff5408bd4051a6b1704d0; // keccak256("transactionSeen")
[codex:576980] bytes32 public constant relayerValidStorageId = 0x2c97779b4deaf24e9d46e02ec2699240a957d92782b51165b93878b09dd66f61; // keccak256("relayerValid")
[codex:576980]
[codex:576980] // New supported Curve pools
[codex:576980] address public constant CURVE_renBTC_POOL = 0x93054188d876f558f4a66B2EF1d97d16eDf0895B;
[codex:576980] address public constant CURVE_sBTC_POOL = 0x7fC77b5c7614E1533320Ea6DDc2Eb61fa00A9714;
[codex:576980] address public constant CURVE_hBTC_POOL = 0x4CA9b3063Ec5866A4B82E437059D2C43d1be596F;
[codex:576980] address public constant CURVE_sETH_POOL = 0xc5424B857f758E906013F3555Dad202e4bdB4567;
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing initialize function's access control**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/RFQ.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /RFQ.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980] pragma experimental ABIEncoderV2;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:576980] import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:576980] import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:576980] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:576980] import "@openzeppelin/contracts/utils/Address.sol";
[codex:576980] import "./interfaces/ISpender.sol";
[codex:576980] import "./interfaces/IWeth.sol";
[codex:576980] import "./interfaces/IRFQ.sol";
[codex:576980] import "./interfaces/IPermanentStorage.sol";
[codex:576980] import "./interfaces/IERC1271Wallet.sol";
[codex:576980] import "./utils/RFQLibEIP712.sol";
[codex:576980]
[codex:576980] contract RFQ is
[codex:576980] ReentrancyGuard,
[codex:576980] IRFQ,
[codex:576980] RFQLibEIP712,
[codex:576980]
[codex:576980] thinking
[codex:576980] **Investigating Spender usage**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/Spender.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /Spender.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 7ms:
[codex:576980] ================================================================================
[codex:576980] // SPDX-License-Identifier: MIT
[codex:576980]
[codex:576980] pragma solidity ^0.6.5;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:576980] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:576980] import "./interfaces/IAllowanceTarget.sol";
[codex:576980]
[codex:576980] /**
[codex:576980] * @dev Spender contract
[codex:576980] */
[codex:576980] contract Spender {
[codex:576980] using SafeMath for uint256;
[codex:576980]
[codex:576980] // Constants do not have storage slot.
[codex:576980] address private constant ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
[codex:576980] address private constant ZERO_ADDRESS = address(0);
[codex:576980] uint256 constant private TIME_LOCK_DURATION = 1 days;
[codex:576980]
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing spendFromUserTo balance check issue**
[codex:576980] exec
[codex:576980] /bin/bash -lc 'rg -n "spendFromUserTo" -n contracts -S' in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] contracts/contracts/Spender.sol:246: function spendFromUserTo(address _user, address _tokenAddr, address _receiver, uint256 _amount) external onlyAuthorized {
[codex:576980] contracts/contracts/interfaces/ISpender.sol:5: function spendFromUserTo(address _user, address _tokenAddr, address _receiverAddr, uint256 _amount) external;
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing potential issues in spender functions**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/SpenderSimulation.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /SpenderSimulation.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 7ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980] import "./interfaces/IHasBlackListERC20Token.sol";
[codex:576980] import "./interfaces/ISpender.sol";
[codex:576980]
[codex:576980] contract SpenderSimulation {
[codex:576980] ISpender public immutable spender;
[codex:576980]
[codex:576980] mapping(address => bool) public hasBlackListERC20Tokens;
[codex:576980]
[codex:576980] modifier checkBlackList(address _tokenAddr, address _user) {
[codex:576980] if (hasBlackListERC20Tokens[_tokenAddr]) {
[codex:576980] IHasBlackListERC20Token hasBlackListERC20Token = IHasBlackListERC20Token(_tokenAddr);
[codex:576980] require(!hasBlackListERC20Token.isBlackListed(_user), "SpenderSimulation: user in token's blacklist");
[codex:576980] }
[codex:576980] _;
[codex:576980] }
[codex:576980]
[codex:576980] /************************************************************
[codex:576980]
[codex:576980] thinking
[codex:576980] **Checking Tokenlon in simulation**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/Tokenlon.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /Tokenlon.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 7ms:
[codex:576980] ================================================================================
[codex:576980] // SPDX-License-Identifier: MIT
[codex:576980]
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980] import "./upgrade_proxy/TransparentUpgradeableProxy.sol";
[codex:576980]
[codex:576980] contract Tokenlon is TransparentUpgradeableProxy {
[codex:576980] constructor(address _logic, address _admin, bytes memory _data) public payable TransparentUpgradeableProxy(_logic, _admin, _data) {}
[codex:576980] }
[codex:576980]
[codex:576980] ================================================================================
[codex:576980] FILE: contracts/contracts/interfaces/IAMM.sol
[codex:576980]
[codex:576980] thinking
[codex:576980] **Checking proxy contracts**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/upgrade_proxy\\/Proxy.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /upgrade_proxy'"\\/Proxy.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] ================================================================================
[codex:576980] // SPDX-License-Identifier: MIT
[codex:576980]
[codex:576980] pragma solidity >=0.6.0 <0.8.0;
[codex:576980]
[codex:576980] /**
[codex:576980] * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
[codex:576980] * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
[codex:576980] * be specified by overriding the virtual {_implementation} function.
[codex:576980] *
[codex:576980] * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
[codex:576980] * different contract through the {_delegate} function.
[codex:576980] *
[codex:576980] * The success and return data of the delegated call will be returned back to the caller of the proxy.
[codex:576980] */
[codex:576980] abstract contract Proxy {
[codex:576980] /**
[codex:576980] * @dev Delegates the current call to `implementation`.
[codex:576980] *
[codex:576980] * This function does not return to its internall call site, it will return directly to the external caller.
[codex:576980]
[codex:576980] thinking
[codex:576980] **Examining TransparentUpgradeableProxy**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/upgrade_proxy\\/TransparentUpgradeableProxy.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /upgrade_proxy'"\\/TransparentUpgradeableProxy.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] ================================================================================
[codex:576980] // SPDX-License-Identifier: MIT
[codex:576980]
[codex:576980] pragma solidity >=0.6.0 <0.8.0;
[codex:576980]
[codex:576980] import "./UpgradeableProxy.sol";
[codex:576980]
[codex:576980] /**
[codex:576980] * @dev This contract implements a proxy that is upgradeable by an admin.
[codex:576980] *
[codex:576980] * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
[codex:576980] * clashing], which can potentially be used in an attack, this contract uses the
[codex:576980] * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
[codex:576980] * things that go hand in hand:
[codex:576980] *
[codex:576980] * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
[codex:576980] * that call matches one of the admin functions exposed by the proxy itself.
[codex:576980] * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
[codex:576980] * implementation. If the admin tries to call a function on the implementation it will fail with an error that says
[codex:576980] * "admin cannot fallback to proxy target".
[codex:576980]
[codex:576980] thinking
[codex:576980] **Noticing UpgradeableProxy reference**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/upgrade_proxy\\/UpgradeableProxy.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /upgrade_proxy'"\\/UpgradeableProxy.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] ================================================================================
[codex:576980] // SPDX-License-Identifier: MIT
[codex:576980]
[codex:576980] pragma solidity >=0.6.0 <0.8.0;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/utils/Address.sol";
[codex:576980]
[codex:576980] import "./Proxy.sol";
[codex:576980]
[codex:576980] /**
[codex:576980] * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
[codex:576980] * implementation address that can be changed. This address is stored in storage in the location specified by
[codex:576980] * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
[codex:576980] * implementation behind the proxy.
[codex:576980] *
[codex:576980] * Upgradeability is only provided internally through {_upgradeTo}. For an externally upgradeable proxy see
[codex:576980] * {TransparentUpgradeableProxy}.
[codex:576980] */
[codex:576980] contract UpgradeableProxy is Proxy {
[codex:576980] /**
[codex:576980]
[codex:576980] thinking
[codex:576980] **Examining proxy upgrade risks**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/multi_sig\\/MultiSig.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /multi_sig'"\\/MultiSig.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity 0.6.12;
[codex:576980]
[codex:576980] import "../utils/LibBytes.sol";
[codex:576980] import "./MultiSigLibEIP712.sol";
[codex:576980]
[codex:576980] /**
[codex:576980] * @title MultiSig
[codex:576980] * @author dYdX
[codex:576980] *
[codex:576980] * Multi-Signature Wallet.
[codex:576980] * Allows multiple parties to agree on transactions before execution.
[codex:576980] * Adapted from Stefan George's MultiSigWallet contract.
[codex:576980] *
[codex:576980] * Logic Changes:
[codex:576980] * - Removed the fallback function
[codex:576980] * - Ensure newOwner is notNull
[codex:576980] *
[codex:576980] * Syntax Changes:
[codex:576980] * - Update Solidity syntax for 0.5.X: use `emit` keyword (events), use `view` keyword (functions)
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing multisig reentrancy and meta-transaction risks**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/multi_sig\\/DelayedMultiSig.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /multi_sig'"\\/DelayedMultiSig.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity 0.6.12;
[codex:576980]
[codex:576980] import "./MultiSig.sol";
[codex:576980]
[codex:576980] // File: contracts/external/multisig/DelayedMultiSig.sol
[codex:576980]
[codex:576980] /**
[codex:576980] * @title DelayedMultiSig
[codex:576980] * @author dYdX
[codex:576980] *
[codex:576980] * Multi-Signature Wallet with delay in execution.
[codex:576980] * Allows multiple parties to execute a transaction after a time lock has passed.
[codex:576980] * Adapted from Amir Bandeali's MultiSigWalletWithTimeLock contract.
[codex:576980]
[codex:576980] * Logic Changes:
[codex:576980] * - Only owners can execute transactions
[codex:576980] * - Require that each transaction succeeds
[codex:576980] * - Added function to execute multiple transactions within the same Ethereum transaction
[codex:576980] */
[codex:576980]
[codex:576980] thinking
[codex:576980] **Considering PartiallyDelayedMultiSig**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/multi_sig\\/PartiallyDelayedMultiSig.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /multi_sig'"\\/PartiallyDelayedMultiSig.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 10ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity 0.6.12;
[codex:576980]
[codex:576980] import "./DelayedMultiSig.sol";
[codex:576980]
[codex:576980] // File: contracts/external/multisig/PartiallyDelayedMultiSig.sol
[codex:576980]
[codex:576980] /**
[codex:576980] * @title PartiallyDelayedMultiSig
[codex:576980] * @author dYdX
[codex:576980] *
[codex:576980] * Multi-Signature Wallet with delay in execution except for some function selectors.
[codex:576980] */
[codex:576980] contract PartiallyDelayedMultiSig is
[codex:576980] DelayedMultiSig
[codex:576980] {
[codex:576980] // ============ Events ============
[codex:576980]
[codex:576980] event SelectorSet(address destination, bytes4 selector, bool approved);
[codex:576980]
[codex:576980]
[codex:576980] thinking
[codex:576980] **Checking MiningTreasury reference**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/multi_sig\\/MiningTreasury.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /multi_sig'"\\/MiningTreasury.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 7ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity 0.6.12;
[codex:576980]
[codex:576980] import "./MultiSig.sol";
[codex:576980]
[codex:576980] contract MiningTreasury is MultiSig {
[codex:576980] constructor (
[codex:576980] address[] memory _owners,
[codex:576980] uint256 _required
[codex:576980] )
[codex:576980] public
[codex:576980] MultiSig(_owners, _required)
[codex:576980] {
[codex:576980] }
[codex:576980] }
[codex:576980]
[codex:576980] ================================================================================
[codex:576980] FILE: contracts/contracts/multi_sig/MultiSig.sol
[codex:576980]
[codex:576980] thinking
[codex:576980] **Inspecting UserProxyStub**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/stub\\/UserProxyStub.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /stub'"\\/UserProxyStub.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] ================================================================================
[codex:576980] // SPDX-License-Identifier: MIT
[codex:576980]
[codex:576980] pragma solidity ^0.6.5;
[codex:576980]
[codex:576980] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:576980] import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:576980] import "../interfaces/IAMM.sol";
[codex:576980]
[codex:576980] contract UserProxyStub {
[codex:576980] using SafeERC20 for IERC20;
[codex:576980]
[codex:576980] // Constants do not have storage slot.
[codex:576980] uint256 private constant MAX_UINT = 2**256 - 1;
[codex:576980] address private constant ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
[codex:576980] address private constant ZERO_ADDRESS = address(0);
[codex:576980]
[codex:576980] /**
[codex:576980] * @dev Below are the variables which consume storage slots.
[codex:576980] */
[codex:576980]
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing potential trading contract vulnerabilities**
[codex:576980]
[codex:576980] I'm carefully reviewing various components in the core trading contracts, focusing on signature validation, external calls, reentrancy protections, and transaction replay safeguards. I'm tracing subtle risks like signature malleability, tx.origin usage for relayer checks, and how msg.value flows in Curve and Uniswap trades to understand if any might cause unexpected behaviors or attacks. There's a lot to unpack here, especially around replay prevention, token approvals, and how trade parameters (like paths) could be manipulated by relayers without user consent. Let's explore this further!
[codex:576980] thinking
[codex:576980] **Examining trade settlement fee logic**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/utils\\/RFQLibEIP712.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /RFQLibEIP712.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980] import "./BaseLibEIP712.sol";
[codex:576980] import "./SignatureValidator.sol";
[codex:576980]
[codex:576980] contract RFQLibEIP712 is BaseLibEIP712 {
[codex:576980] /***********************************|
[codex:576980] | Constants |
[codex:576980] |__________________________________*/
[codex:576980]
[codex:576980]
[codex:576980] struct Order {
[codex:576980] address takerAddr;
[codex:576980] address makerAddr;
[codex:576980] address takerAssetAddr;
[codex:576980] address makerAssetAddr;
[codex:576980] uint256 takerAssetAmount;
[codex:576980] uint256 makerAssetAmount;
[codex:576980] address receiverAddr;
[codex:576980]
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing signature and proxy risks**
[codex:576980] thinking
[codex:576980] **Checking signature malleability handling**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/pmm\\/0xLibs\\/LibOrder.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /pmm'"\\/0xLibs\\/LibOrder.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] /*
[codex:576980]
[codex:576980] Copyright 2018 ZeroEx Intl.
[codex:576980]
[codex:576980] Licensed under the Apache License, Version 2.0 (the "License");
[codex:576980] you may not use this file except in compliance with the License.
[codex:576980] You may obtain a copy of the License at
[codex:576980]
[codex:576980] http://www.apache.org/licenses/LICENSE-2.0
[codex:576980]
[codex:576980] Unless required by applicable law or agreed to in writing, software
[codex:576980] distributed under the License is distributed on an "AS IS" BASIS,
[codex:576980] WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:576980] See the License for the specific language governing permissions and
[codex:576980] limitations under the License.
[codex:576980]
[codex:576980] */
[codex:576980]
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing AMMWrapper and SignatureValidator vulnerabilities**
[codex:576980] exec
[codex:576980] /bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] 550: (bool success, bytes memory returndata) = target.delegatecall(data);
[codex:576980] 5984: * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
[codex:576980] 6008: let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)
[codex:576980] 6014: // delegatecall returns 0 on error.
[codex:576980] 6183: (bool success,) = newImplementation.delegatecall(data);
[codex:576980] 6251: (bool success,) = _logic.delegatecall(_data);
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing AMMWrapper and RFQ contract risks**
[codex:576980] exec
[codex:576980] /bin/bash -lc "rg -n \"tx\\.origin\" -n contracts/contracts AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] AUDIT_BUNDLE.txt:1231: if (! permStorage.isRelayerValid(tx.origin)) {
[codex:576980] AUDIT_BUNDLE.txt:1619: if (! permStorage.isRelayerValid(tx.origin)) {
[codex:576980] contracts/contracts/AMMWrapper.sol:244: if (! permStorage.isRelayerValid(tx.origin)) {
[codex:576980] contracts/contracts/AMMWrapperWithPath.sol:65: if (! permStorage.isRelayerValid(tx.origin)) {
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing reentrancy, access control, and signature validation**
[codex:576980] exec
[codex:576980] /bin/bash -lc 'rg -n "TODO|FIXME|BUG" contracts/contracts' in /tmp/codex-multi-a72k9sp_ exited 1 in 9ms:
[codex:576980]
[codex:576980]
[codex:576980] thinking
[codex:576980] **Evaluating potential initialization vulnerability**
[codex:576980] exec
[codex:576980] /bin/bash -lc "rg -n \"\\.call\\{|\\.call\\(\" contracts/contracts" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] contracts/contracts/AllowanceTarget.sol:73: (success, resultData) = target.call(callData);
[codex:576980] contracts/contracts/stub/UserProxyStub.sol:60: (bool callSucceed,) = ammWrapperAddr.call{value: msg.value}(_payload);
[codex:576980] contracts/contracts/stub/UserProxyStub.sol:73: (bool callSucceed,) = pmmAddr.call{value: msg.value}(_payload);
[codex:576980] contracts/contracts/stub/UserProxyStub.sol:86: (bool callSucceed,) = rfqAddr.call{value: msg.value}(_payload);
[codex:576980] contracts/contracts/Spender.sol:217: (bool callSucceed, bytes memory returndata) = address(allowanceTarget).call{gas: gasStipend}(
[codex:576980] contracts/contracts/Spender.sol:258: (bool callSucceed, bytes memory returndata) = address(allowanceTarget).call{gas: gasStipend}(
[codex:576980]
[codex:576980] thinking
[codex:576980] **Reviewing external calls and authorization logic**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/multi_sig\\/MultiSigLibEIP712.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /multi_sig'"\\/MultiSigLibEIP712.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 8ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity 0.6.12;
[codex:576980]
[codex:576980] contract MultiSigLibEIP712 {
[codex:576980] /***********************************|
[codex:576980] | Constants |
[codex:576980] |__________________________________*/
[codex:576980]
[codex:576980] // EIP712Domain
[codex:576980] string public constant EIP712_DOMAIN_NAME = "MultiSig";
[codex:576980] string public constant EIP712_DOMAIN_VERSION = "v1";
[codex:576980]
[codex:576980] // EIP712Domain Separator
[codex:576980] bytes32 public EIP712_DOMAIN_SEPARATOR;
[codex:576980]
[codex:576980] // SUBMIT_TRANSACTION_TYPE_HASH = keccak256("submitTransaction(uint256 transactionId,address destination,uint256 value,bytes data)");
[codex:576980] bytes32 public constant SUBMIT_TRANSACTION_TYPE_HASH = 0x2c78e27c3bb2592e67e8d37ad1a95bfccd188e77557c22593b1af0b920a08295;
[codex:576980]
[codex:576980] // CONFIRM_TRANSACTION_TYPE_HASH = keccak256("confirmTransaction(uint256 transactionId)");
[codex:576980] bytes32 public constant CONFIRM_TRANSACTION_TYPE_HASH = 0x3e96bdc38d4133bc81813a187b2d41bc74332643ce7dbe82c7d94ead8366a65f;
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing potential contract vulnerabilities**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/pmm\\/0xLibs\\/LibEncoder.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /pmm'"\\/0xLibs\\/LibEncoder.sol/ && f{exit}' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] ================================================================================
[codex:576980] pragma solidity ^0.6.0;
[codex:576980] pragma experimental ABIEncoderV2;
[codex:576980]
[codex:576980] import "./LibEIP712.sol";
[codex:576980]
[codex:576980] contract LibEncoder is
[codex:576980] LibEIP712
[codex:576980] {
[codex:576980] // Hash for the EIP712 ZeroEx Transaction Schema
[codex:576980] bytes32 constant internal EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH = keccak256(
[codex:576980] abi.encodePacked(
[codex:576980] "ZeroExTransaction(",
[codex:576980] "uint256 salt,",
[codex:576980] "address signerAddress,",
[codex:576980] "bytes data",
[codex:576980] ")"
[codex:576980] ));
[codex:576980]
[codex:576980] function encodeTransactionHash(
[codex:576980]
[codex:576980] thinking
[codex:576980] **Analyzing potential security concerns across contracts**
[codex:576980] exec
[codex:576980] /bin/bash -lc "awk 'f{print} /"'^FILE: contracts'"\\/contracts\\/utils\\/LibBytes.sol/{f=1} /"'^FILE: contracts'"\\/contracts\\// && "'$0 !~ /LibBytes.sol/ && f{exit}'"' AUDIT_BUNDLE.txt" in /tmp/codex-multi-a72k9sp_ succeeded in 10ms:
[codex:576980] ================================================================================
[codex:576980] /*
[codex:576980] Copyright 2018 ZeroEx Intl.
[codex:576980] Licensed under the Apache License, Version 2.0 (the "License");
[codex:576980] you may not use this file except in compliance with the License.
[codex:576980] You may obtain a copy of the License at
[codex:576980] http://www.apache.org/licenses/LICENSE-2.0
[codex:576980] Unless required by applicable law or agreed to in writing, software
[codex:576980] distributed under the License is distributed on an "AS IS" BASIS,
[codex:576980] WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:576980] See the License for the specific language governing permissions and
[codex:576980] limitations under the License.
[codex:576980] This is a truncated version of the original LibBytes.sol library from ZeroEx.
[codex:576980] */
[codex:576980]
[codex:576980] pragma solidity ^0.6.0;
[codex:576980]
[codex:576980]
[codex:576980] library LibBytes {
[codex:576980] using LibBytes for bytes;
[codex:576980]
[codex:576980] thinking
[codex:576980] **Evaluating potential vulnerabilities in spending and proxy contracts**
[codex:576980] exec
[codex:576980] /bin/bash -lc 'rg -n "selfdestruct" contracts/contracts' in /tmp/codex-multi-a72k9sp_ succeeded in 9ms:
[codex:576980] contracts/contracts/AllowanceTarget.sol:55: selfdestruct(payable(spender));
[codex:576980]
[codex:576980] thinking
[codex:576980] **Identifying signature validation risk in MarketMakerProxy**
[codex:576980] exec
[codex:576980] /bin/bash -lc "nl -ba contracts/contracts/MarketMakerProxy.sol | sed -n '1,200p'" in /tmp/codex-multi-a72k9sp_ succeeded in 6ms:
[codex:576980] 1 pragma solidity ^0.6.0;
[codex:576980] 2
[codex:576980] 3 import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:576980] 4 import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
[codex:576980] 5 import "./interfaces/IWeth.sol";
[codex:576980] 6 import "./pmm/mmp/Ownable.sol";
[codex:576980] 7 import "./pmm/0xLibs/LibDecoder.sol";
[codex:576980] 8
[codex:576980] 9 interface IIMBTC {
[codex:576980] 10 function burn(uint256 amount, bytes calldata data) external;
[codex:576980] 11 }
[codex:576980] 12
[codex:576980] 13 interface IWBTC {
[codex:576980] 14 function burn(uint256 value) external;
[codex:576980] 15 }
[codex:576980] 16
[codex:576980] 17 contract MarketMakerProxy is
[codex:576980] 18 Ownable,
[codex:576980] 19 LibDecoder
[codex:576980] 20 {
[codex:576980]
[codex:576980] thinking
[codex:576980] **Preparing signature validation vulnerability report**
[codex:576980] codex
[codex:576980] {"no_findings":false,"summary":"Found 1 medium-risk issue in MarketMakerProxy where an unset/zero SIGNER lets invalid signatures pass, potentially enabling unauthorized order validation if misconfigured.","findings":[{"severity":"medium","category":"auth","title":"MarketMakerProxy accepts zero SIGNER, allowing signature bypass with invalid signatures","exploit_scenario":"If SIGNER is never set (default zero) or accidentally set to address(0), an attacker can supply a 65-byte all-zero signature so `ecrecover()` returns address(0). The equality check passes and `isValidSignature` returns the magic value, so external protocols (e.g., 0x) would treat arbitrary orders as signed by the MarketMakerProxy. With existing ERC20 allowances, this can enable draining the proxy’s funds.","recommendation":"Reject zero signers in `setSigner` and/or require `SIGNER != address(0)` inside `isValidSignature`. Consider initializing SIGNER in the constructor and enforcing ECDSA `v`/`s` validity to avoid address(0) recovery on malformed signatures.","evidence":"`SIGNER` is unset by default and `setSigner` does not prevent zero. `isValidSignature` only checks `SIGNER == _ecrecoverAddress(...)`, so invalid signatures that recover to address(0) are accepted when SIGNER is zero.","locations":["contracts/contracts/MarketMakerProxy.sol:25","contracts/contracts/MarketMakerProxy.sol:48","contracts/contracts/MarketMakerProxy.sol:100"]}]}
[codex:576980] tokens used
[codex:576980] 149,964
[codex:576980] {"no_findings":false,"summary":"Found 1 medium-risk issue in MarketMakerProxy where an unset/zero SIGNER lets invalid signatures pass, potentially enabling unauthorized order validation if misconfigured.","findings":[{"severity":"medium","category":"auth","title":"MarketMakerProxy accepts zero SIGNER, allowing signature bypass with invalid signatures","exploit_scenario":"If SIGNER is never set (default zero) or accidentally set to address(0), an attacker can supply a 65-byte all-zero signature so `ecrecover()` returns address(0). The equality check passes and `isValidSignature` returns the magic value, so external protocols (e.g., 0x) would treat arbitrary orders as signed by the MarketMakerProxy. With existing ERC20 allowances, this can enable draining the proxy’s funds.","recommendation":"Reject zero signers in `setSigner` and/or require `SIGNER != address(0)` inside `isValidSignature`. Consider initializing SIGNER in the constructor and enforcing ECDSA `v`/`s` validity to avoid address(0) recovery on malformed signatures.","evidence":"`SIGNER` is unset by default and `setSigner` does not prevent zero. `isValidSignature` only checks `SIGNER == _ecrecoverAddress(...)`, so invalid signatures that recover to address(0) are accepted when SIGNER is zero.","locations":["contracts/contracts/MarketMakerProxy.sol:25","contracts/contracts/MarketMakerProxy.sol:48","contracts/contracts/MarketMakerProxy.sol:100"]}]}
{
"codex": {
"ran_at": "2025-12-30T01:15:33.565873+00:00",
"returncode": 0
},
"summary": "Found 1 medium-risk issue in MarketMakerProxy where an unset/zero SIGNER lets invalid signatures pass, potentially enabling unauthorized order validation if misconfigured.",
"raw_final": {
"summary": "Found 1 medium-risk issue in MarketMakerProxy where an unset/zero SIGNER lets invalid signatures pass, potentially enabling unauthorized order validation if misconfigured.",
"findings": [
{
"title": "MarketMakerProxy accepts zero SIGNER, allowing signature bypass with invalid signatures",
"category": "auth",
"evidence": "`SIGNER` is unset by default and `setSigner` does not prevent zero. `isValidSignature` only checks `SIGNER == _ecrecoverAddress(...)`, so invalid signatures that recover to address(0) are accepted when SIGNER is zero.",
"severity": "medium",
"locations": [
"contracts/contracts/MarketMakerProxy.sol:25",
"contracts/contracts/MarketMakerProxy.sol:48",
"contracts/contracts/MarketMakerProxy.sol:100"
],
"recommendation": "Reject zero signers in `setSigner` and/or require `SIGNER != address(0)` inside `isValidSignature`. Consider initializing SIGNER in the constructor and enforcing ECDSA `v`/`s` validity to avoid address(0) recovery on malformed signatures.",
"exploit_scenario": "If SIGNER is never set (default zero) or accidentally set to address(0), an attacker can supply a 65-byte all-zero signature so `ecrecover()` returns address(0). The equality check passes and `isValidSignature` returns the magic value, so external protocols (e.g., 0x) would treat arbitrary orders as signed by the MarketMakerProxy. With existing ERC20 allowances, this can enable draining the proxy\u2019s funds."
}
],
"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 0x018f 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x982f0ef3 00000019: GT 0000001a: PUSH2 0x00d6 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xe0c05c24 00000024: GT 00000025: PUSH2 0x007f 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xf6326fb3 0000002f: GT 00000030: PUSH2 0x0059 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xf6326fb3 0000003a: EQ 0000003b: PUSH2 0x03b9 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xfa4e12d7 00000045: EQ 00000046: PUSH2 0x03ce 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfd070296 00000050: EQ 00000051: PUSH2 0x03fb 00000054: JUMPI 00000055: PUSH2 0x0196 00000058: JUMP 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0xe0c05c24 00000060: EQ 00000061: PUSH2 0x036f 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0xe8edc816 0000006b: EQ 0000006c: PUSH2 0x0384 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xf2fde38b 00000076: EQ 00000077: PUSH2 0x0399 0000007a: JUMPI 0000007b: PUSH2 0x0196 0000007e: JUMP 0000007f: JUMPDEST 00000080: DUP1 00000081: PUSH4 0xc49e4fd9 00000086: GT 00000087: PUSH2 0x00b0 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0xc49e4fd9 00000091: EQ 00000092: PUSH2 0x0330 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xdab400f3 0000009c: EQ 0000009d: PUSH2 0x0345 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xdeb53645 000000a7: EQ 000000a8: PUSH2 0x035a 000000ab: JUMPI 000000ac: PUSH2 0x0196 000000af: JUMP 000000b0: JUMPDEST 000000b1: DUP1 000000b2: PUSH4 0x982f0ef3 000000b7: EQ 000000b8: PUSH2 0x02f1 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0xa94c12bc 000000c2: EQ 000000c3: PUSH2 0x0306 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0xbb8a43b9 000000cd: EQ 000000ce: PUSH2 0x031b 000000d1: JUMPI 000000d2: PUSH2 0x0196 000000d5: JUMP 000000d6: JUMPDEST 000000d7: DUP1 000000d8: PUSH4 0x48093018 000000dd: GT 000000de: PUSH2 0x0138 000000e1: JUMPI 000000e2: DUP1 000000e3: PUSH4 0x5cc33321 000000e8: GT 000000e9: PUSH2 0x0112 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0x5cc33321 000000f3: EQ 000000f4: PUSH2 0x029c 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0x8225500c 000000fe: EQ 000000ff: PUSH2 0x02b1 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x82fdaf58 00000109: EQ 0000010a: PUSH2 0x02d1 0000010d: JUMPI 0000010e: PUSH2 0x0196 00000111: JUMP 00000112: JUMPDEST 00000113: DUP1 00000114: PUSH4 0x48093018 00000119: EQ 0000011a: PUSH2 0x0252 0000011d: JUMPI 0000011e: DUP1 0000011f: PUSH4 0x54fd4d50 00000124: EQ 00000125: PUSH2 0x0265 00000128: JUMPI 00000129: DUP1 0000012a: PUSH4 0x570ca735 0000012f: EQ 00000130: PUSH2 0x0287 00000133: JUMPI 00000134: PUSH2 0x0196 00000137: JUMP 00000138: JUMPDEST 00000139: DUP1 0000013a: PUSH4 0x3ec63216 0000013f: GT 00000140: PUSH2 0x0169 00000143: JUMPI 00000144: DUP1 00000145: PUSH4 0x3ec63216 0000014a: EQ 0000014b: PUSH2 0x0208 0000014e: JUMPI 0000014f: DUP1 00000150: PUSH4 0x3fc8cef3 00000155: EQ 00000156: PUSH2 0x021d 00000159: JUMPI 0000015a: DUP1 0000015b: PUSH4 0x46920bad 00000160: EQ 00000161: PUSH2 0x0232 00000164: JUMPI 00000165: PUSH2 0x0196 00000168: JUMP 00000169: JUMPDEST 0000016a: DUP1 0000016b: PUSH4 0x03ad2aa0 00000170: EQ 00000171: PUSH2 0x019b 00000174: JUMPI 00000175: DUP1 00000176: PUSH4 0x192f0c04 0000017b: EQ 0000017c: PUSH2 0x01c4 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0x30db4580 00000186: EQ 00000187: PUSH2 0x01e6 0000018a: JUMPI 0000018b: PUSH2 0x0196 0000018e: JUMP 0000018f: JUMPDEST 00000190: CALLDATASIZE 00000191: PUSH2 0x0196 00000194: JUMPI 00000195: STOP 00000196: JUMPDEST 00000197: PUSH1 0x00 00000199: DUP1 0000019a: REVERT 0000019b: JUMPDEST 0000019c: PUSH2 0x01ae 0000019f: PUSH2 0x01a9 000001a2: CALLDATASIZE 000001a3: PUSH1 0x04 000001a5: PUSH2 0x34fc 000001a8: JUMP 000001a9: JUMPDEST 000001aa: PUSH2 0x0410 000001ad: JUMP 000001ae: JUMPDEST 000001af: PUSH1 0x40 000001b1: MLOAD 000001b2: PUSH2 0x01bb 000001b5: SWAP2 000001b6: SWAP1 000001b7: PUSH2 0x3d04 000001ba: JUMP 000001bb: JUMPDEST 000001bc: PUSH1 0x40 000001be: MLOAD 000001bf: DUP1 000001c0: SWAP2 000001c1: SUB 000001c2: SWAP1 000001c3: RETURN 000001c4: JUMPDEST 000001c5: CALLVALUE 000001c6: DUP1 000001c7: ISZERO 000001c8: PUSH2 0x01d0 000001cb: JUMPI 000001cc: PUSH1 0x00 000001ce: DUP1 000001cf: REVERT 000001d0: JUMPDEST 000001d1: POP 000001d2: PUSH2 0x01d9 000001d5: PUSH2 0x088d 000001d8: JUMP 000001d9: JUMPDEST 000001da: PUSH1 0x40 000001dc: MLOAD 000001dd: PUSH2 0x01bb 000001e0: SWAP2 000001e1: SWAP1 000001e2: PUSH2 0x3c6b 000001e5: JUMP 000001e6: JUMPDEST 000001e7: CALLVALUE 000001e8: DUP1 000001e9: ISZERO 000001ea: PUSH2 0x01f2 000001ed: JUMPI 000001ee: PUSH1 0x00 000001f0: DUP1 000001f1: REVERT 000001f2: JUMPDEST 000001f3: POP 000001f4: PUSH2 0x0206 000001f7: PUSH2 0x0201 000001fa: CALLDATASIZE 000001fb: PUSH1 0x04 000001fd: PUSH2 0x3651 00000200: JUMP 00000201: JUMPDEST 00000202: PUSH2 0x08a5 00000205: JUMP 00000206: JUMPDEST 00000207: STOP 00000208: JUMPDEST 00000209: CALLVALUE 0000020a: DUP1 0000020b: ISZERO 0000020c: PUSH2 0x0214 0000020f: JUMPI 00000210: PUSH1 0x00 00000212: DUP1 00000213: REVERT 00000214: JUMPDEST 00000215: POP 00000216: PUSH2 0x01d9 00000219: PUSH2 0x0956 0000021c: JUMP 0000021d: JUMPDEST 0000021e: CALLVALUE 0000021f: DUP1 00000220: ISZERO 00000221: PUSH2 0x0229 00000224: JUMPI 00000225: PUSH1 0x00 00000227: DUP1 00000228: REVERT 00000229: JUMPDEST 0000022a: POP 0000022b: PUSH2 0x01d9 0000022e: PUSH2 0x097a 00000231: JUMP 00000232: JUMPDEST 00000233: CALLVALUE 00000234: DUP1 00000235: ISZERO 00000236: PUSH2 0x023e 00000239: JUMPI 0000023a: PUSH1 0x00 0000023c: DUP1 0000023d: REVERT 0000023e: JUMPDEST 0000023f: POP 00000240: PUSH2 0x0206 00000243: PUSH2 0x024d 00000246: CALLDATASIZE 00000247: PUSH1 0x04 00000249: PUSH2 0x3651 0000024c: JUMP 0000024d: JUMPDEST 0000024e: PUSH2 0x099e 00000251: JUMP 00000252: JUMPDEST 00000253: PUSH2 0x01ae 00000256: PUSH2 0x0260 00000259: CALLDATASIZE 0000025a: PUSH1 0x04 0000025c: PUSH2 0x37de 0000025f: JUMP 00000260: JUMPDEST 00000261: PUSH2 0x0a25 00000264: JUMP 00000265: JUMPDEST 00000266: CALLVALUE 00000267: DUP1 00000268: ISZERO 00000269: PUSH2 0x0271 0000026c: JUMPI 0000026d: PUSH1 0x00 0000026f: DUP1 00000270: REVERT 00000271: JUMPDEST 00000272: POP 00000273: PUSH2 0x027a 00000276: PUSH2 0x0e3b 00000279: JUMP 0000027a: JUMPDEST 0000027b: PUSH1 0x40 0000027d: MLOAD 0000027e: PUSH2 0x01bb 00000281: SWAP2 00000282: SWAP1 00000283: PUSH2 0x3ded 00000286: JUMP 00000287: JUMPDEST 00000288: CALLVALUE 00000289: DUP1 0000028a: ISZERO 0000028b: PUSH2 0x0293 0000028e: JUMPI 0000028f: PUSH1 0x00 00000291: DUP1 00000292: REVERT 00000293: JUMPDEST 00000294: POP 00000295: PUSH2 0x01d9 00000298: PUSH2 0x0e74 0000029b: JUMP 0000029c: JUMPDEST 0000029d: CALLVALUE 0000029e: DUP1 0000029f: ISZERO 000002a0: PUSH2 0x02a8 000002a3: JUMPI 000002a4: PUSH1 0x00 000002a6: DUP1 000002a7: REVERT 000002a8: JUMPDEST 000002a9: POP 000002aa: PUSH2 0x027a 000002ad: PUSH2 0x0e83 000002b0: JUMP 000002b1: JUMPDEST 000002b2: CALLVALUE 000002b3: DUP1 000002b4: ISZERO 000002b5: PUSH2 0x02bd 000002b8: JUMPI 000002b9: PUSH1 0x00 000002bb: DUP1 000002bc: REVERT 000002bd: JUMPDEST 000002be: POP 000002bf: PUSH2 0x0206 000002c2: PUSH2 0x02cc 000002c5: CALLDATASIZE 000002c6: PUSH1 0x04 000002c8: PUSH2 0x3920 000002cb: JUMP 000002cc: JUMPDEST 000002cd: PUSH2 0x0ebc 000002d0: JUMP 000002d1: JUMPDEST 000002d2: CALLVALUE 000002d3: DUP1 000002d4: ISZERO 000002d5: PUSH2 0x02dd 000002d8: JUMPI 000002d9: PUSH1 0x00 000002db: DUP1 000002dc: REVERT 000002dd: JUMPDEST 000002de: POP 000002df: PUSH2 0x0206 000002e2: PUSH2 0x02ec 000002e5: CALLDATASIZE 000002e6: PUSH1 0x04 000002e8: PUSH2 0x34e0 000002eb: JUMP 000002ec: JUMPDEST 000002ed: PUSH2 0x0f26 000002f0: JUMP 000002f1: JUMPDEST 000002f2: CALLVALUE 000002f3: DUP1 000002f4: ISZERO 000002f5: PUSH2 0x02fd 000002f8: JUMPI 000002f9: PUSH1 0x00 000002fb: DUP1 000002fc: REVERT 000002fd: JUMPDEST 000002fe: POP 000002ff: PUSH2 0x01ae 00000302: PUSH2 0x0fce 00000305: JUMP 00000306: JUMPDEST 00000307: CALLVALUE 00000308: DUP1 00000309: ISZERO 0000030a: PUSH2 0x0312 0000030d: JUMPI 0000030e: PUSH1 0x00 00000310: DUP1 00000311: REVERT 00000312: JUMPDEST 00000313: POP 00000314: PUSH2 0x01d9 00000317: PUSH2 0x0ff6 0000031a: JUMP 0000031b: JUMPDEST 0000031c: CALLVALUE 0000031d: DUP1 0000031e: ISZERO 0000031f: PUSH2 0x0327 00000322: JUMPI 00000323: PUSH1 0x00 00000325: DUP1 00000326: REVERT 00000327: JUMPDEST 00000328: POP 00000329: PUSH2 0x01d9 0000032c: PUSH2 0x100e 0000032f: JUMP 00000330: JUMPDEST 00000331: CALLVALUE 00000332: DUP1 00000333: ISZERO 00000334: PUSH2 0x033c 00000337: JUMPI 00000338: PUSH1 0x00 0000033a: DUP1 0000033b: REVERT 0000033c: JUMPDEST 0000033d: POP 0000033e: PUSH2 0x01d9 00000341: PUSH2 0x1026 00000344: JUMP 00000345: JUMPDEST 00000346: CALLVALUE 00000347: DUP1 00000348: ISZERO 00000349: PUSH2 0x0351 0000034c: JUMPI 0000034d: PUSH1 0x00 0000034f: DUP1 00000350: REVERT 00000351: JUMPDEST 00000352: POP 00000353: PUSH2 0x01ae 00000356: PUSH2 0x104a 00000359: JUMP 0000035a: JUMPDEST 0000035b: CALLVALUE 0000035c: DUP1 0000035d: ISZERO 0000035e: PUSH2 0x0366 00000361: JUMPI 00000362: PUSH1 0x00 00000364: DUP1 00000365: REVERT 00000366: JUMPDEST 00000367: POP 00000368: PUSH2 0x01ae 0000036b: PUSH2 0x106e 0000036e: JUMP 0000036f: JUMPDEST 00000370: CALLVALUE 00000371: DUP1 00000372: ISZERO 00000373: PUSH2 0x037b 00000376: JUMPI 00000377: PUSH1 0x00 00000379: DUP1 0000037a: REVERT 0000037b: JUMPDEST 0000037c: POP 0000037d: PUSH2 0x027a 00000380: PUSH2 0x1074 00000383: JUMP 00000384: JUMPDEST 00000385: CALLVALUE 00000386: DUP1 00000387: ISZERO 00000388: PUSH2 0x0390 0000038b: JUMPI 0000038c: PUSH1 0x00 0000038e: DUP1 0000038f: REVERT 00000390: JUMPDEST 00000391: POP 00000392: PUSH2 0x01d9 00000395: PUSH2 0x1092 00000398: JUMP 00000399: JUMPDEST 0000039a: CALLVALUE 0000039b: DUP1 0000039c: ISZERO 0000039d: PUSH2 0x03a5 000003a0: JUMPI 000003a1: PUSH1 0x00 000003a3: DUP1 000003a4: REVERT 000003a5: JUMPDEST 000003a6: POP 000003a7: PUSH2 0x0206 000003aa: PUSH2 0x03b4 000003ad: CALLDATASIZE 000003ae: PUSH1 0x04 000003b0: PUSH2 0x34e0 000003b3: JUMP 000003b4: JUMPDEST 000003b5: PUSH2 0x10a1 000003b8: JUMP 000003b9: JUMPDEST 000003ba: CALLVALUE 000003bb: DUP1 000003bc: ISZERO 000003bd: PUSH2 0x03c5 000003c0: JUMPI 000003c1: PUSH1 0x00 000003c3: DUP1 000003c4: REVERT 000003c5: JUMPDEST 000003c6: POP 000003c7: PUSH2 0x0206 000003ca: PUSH2 0x1149 000003cd: JUMP 000003ce: JUMPDEST 000003cf: CALLVALUE 000003d0: DUP1 000003d1: ISZERO 000003d2: PUSH2 0x03da 000003d5: JUMPI 000003d6: PUSH1 0x00 000003d8: DUP1 000003d9: REVERT 000003da: JUMPDEST 000003db: POP 000003dc: PUSH2 0x03ee 000003df: PUSH2 0x03e9 000003e2: CALLDATASIZE 000003e3: PUSH1 0x04 000003e5: PUSH2 0x35d4 000003e8: JUMP 000003e9: JUMPDEST 000003ea: PUSH2 0x1220 000003ed: JUMP 000003ee: JUMPDEST 000003ef: PUSH1 0x40 000003f1: MLOAD 000003f2: PUSH2 0x01bb 000003f5: SWAP2 000003f6: SWAP1 000003f7: PUSH2 0x3cf9 000003fa: JUMP 000003fb: JUMPDEST 000003fc: CALLVALUE 000003fd: DUP1 000003fe: ISZERO 000003ff: PUSH2 0x0407 00000402: JUMPI 00000403: PUSH1 0x00 00000405: DUP1 00000406: REVERT 00000407: JUMPDEST 00000408: POP 00000409: PUSH2 0x027a 0000040c: PUSH2 0x161a 0000040f: JUMP 00000410: JUMPDEST 00000411: PUSH1 0x00 00000413: PUSH1 0x02 00000415: PUSH1 0x00 00000417: SLOAD 00000418: EQ 00000419: ISZERO 0000041a: PUSH2 0x043e 0000041d: JUMPI 0000041e: PUSH1 0x40 00000420: MLOAD 00000421: PUSH3 0x461bcd 00000425: PUSH1 0xe5 00000427: SHL 00000428: DUP2 00000429: MSTORE 0000042a: PUSH1 0x04 0000042c: ADD 0000042d: PUSH2 0x0435 00000430: SWAP1 00000431: PUSH2 0x49b9 00000434: JUMP 00000435: JUMPDEST 00000436: PUSH1 0x40 00000438: MLOAD 00000439: DUP1 0000043a: SWAP2 0000043b: SUB 0000043c: SWAP1 0000043d: REVERT 0000043e: JUMPDEST 0000043f: PUSH1 0x02 00000441: PUSH1 0x00 00000443: SSTORE 00000444: PUSH32 0x00000000000000000000000003f34be1bf910116595db1b11e9d1b2ca5d59659 00000465: PUSH1 0x01 00000467: PUSH1 0x01 00000469: PUSH1 0xa0 0000046b: SHL 0000046c: SUB 0000046d: AND 0000046e: CALLER 0000046f: EQ 00000470: PUSH2 0x048b 00000473: JUMPI 00000474: PUSH1 0x40 00000476: MLOAD 00000477: PUSH3 0x461bcd 0000047b: PUSH1 0xe5 0000047d: SHL 0000047e: DUP2 0000047f: MSTORE 00000480: PUSH1 0x04 00000482: ADD 00000483: PUSH2 0x0435 00000486: SWAP1 00000487: PUSH2 0x4177 0000048a: JUMP 0000048b: JUMPDEST 0000048c: PUSH2 0x0493 0000048f: PUSH2 0x3290 00000492: JUMP 00000493: JUMPDEST 00000494: PUSH1 0x40 00000496: MLOAD 00000497: DUP1 00000498: PUSH2 0x0120 0000049b: ADD 0000049c: PUSH1 0x40 0000049e: MSTORE 0000049f: DUP1 000004a0: DUP16 000004a1: PUSH1 0x01 000004a3: PUSH1 0x01 000004a5: PUSH1 0xa0 000004a7: SHL 000004a8: SUB 000004a9: AND 000004aa: DUP2 000004ab: MSTORE 000004ac: PUSH1 0x20 000004ae: ADD 000004af: DUP15 000004b0: PUSH1 0x01 000004b2: PUSH1 0x01 000004b4: PUSH1 0xa0 000004b6: SHL 000004b7: SUB 000004b8: AND 000004b9: DUP2 000004ba: MSTORE 000004bb: PUSH1 0x20 000004bd: ADD 000004be: DUP14 000004bf: PUSH1 0x01 000004c1: PUSH1 0x01 000004c3: PUSH1 0xa0 000004c5: SHL 000004c6: SUB 000004c7: AND 000004c8: DUP2 000004c9: MSTORE 000004ca: PUSH1 0x20 000004cc: ADD 000004cd: DUP13 000004ce: DUP2 000004cf: MSTORE 000004d0: PUSH1 0x20 000004d2: ADD 000004d3: DUP12 000004d4: DUP2 000004d5: MSTORE 000004d6: PUSH1 0x20 000004d8: ADD 000004d9: DUP10 000004da: PUSH1 0x01 000004dc: PUSH1 0x01 000004de: PUSH1 0xa0 000004e0: SHL 000004e1: SUB 000004e2: AND 000004e3: DUP2 000004e4: MSTORE 000004e5: PUSH1 0x20 000004e7: ADD 000004e8: DUP9 000004e9: PUSH1 0x01 000004eb: PUSH1 0x01 000004ed: PUSH1 0xa0 000004ef: SHL 000004f0: SUB 000004f1: AND 000004f2: DUP2 000004f3: MSTORE 000004f4: PUSH1 0x20 000004f6: ADD 000004f7: DUP8 000004f8: DUP2 000004f9: MSTORE 000004fa: PUSH1 0x20 000004fc: ADD 000004fd: DUP7 000004fe: DUP2 000004ff: MSTORE 00000500: POP 00000501: SWAP1 00000502: POP 00000503: TIMESTAMP 00000504: DUP2 00000505: PUSH2 0x0100 00000508: ADD 00000509: MLOAD 0000050a: LT 0000050b: ISZERO 0000050c: PUSH2 0x0527 0000050f: JUMPI 00000510: PUSH1 0x40 00000512: MLOAD 00000513: PUSH3 0x461bcd 00000517: PUSH1 0xe5 00000519: SHL 0000051a: DUP2 0000051b: MSTORE 0000051c: PUSH1 0x04 0000051e: ADD 0000051f: PUSH2 0x0435 00000522: SWAP1 00000523: PUSH2 0x4769 00000526: JUMP 00000527: JUMPDEST 00000528: PUSH2 0x052f 0000052b: PUSH2 0x32dc 0000052e: JUMP 0000052f: JUMPDEST 00000530: PUSH2 0x0537 00000533: PUSH2 0x3311 00000536: JUMP 00000537: JUMPDEST 00000538: PUSH1 0x02 0000053a: SLOAD 0000053b: PUSH2 0xffff 0000053e: SWAP1 0000053f: DUP2 00000540: AND 00000541: PUSH1 0xa0 00000543: DUP5 00000544: ADD 00000545: MSTORE 00000546: DUP12 00000547: AND 00000548: PUSH1 0x80 0000054a: DUP4 0000054b: ADD 0000054c: MSTORE 0000054d: PUSH1 0x40 0000054f: MLOAD 00000550: PUSH4 0x17f7751d 00000555: PUSH1 0xe1 00000557: SHL 00000558: DUP2 00000559: MSTORE 0000055a: PUSH1 0x01 0000055c: PUSH1 0x01 0000055e: PUSH1 0xa0 00000560: SHL 00000561: SUB 00000562: PUSH32 0x0000000000000000000000006d9cc14a1d36e6ff13fc6efa9e9326fcd12e7903 00000583: AND 00000584: SWAP1 00000585: PUSH4 0x2feeea3a 0000058a: SWAP1 0000058b: PUSH2 0x0598 0000058e: SWAP1 0000058f: ORIGIN 00000590: SWAP1 00000591: PUSH1 0x04 00000593: ADD 00000594: PUSH2 0x3c6b 00000597: JUMP 00000598: JUMPDEST 00000599: PUSH1 0x20 0000059b: PUSH1 0x40 0000059d: MLOAD 0000059e: DUP1 0000059f: DUP4 000005a0: SUB 000005a1: DUP2 000005a2: DUP7 000005a3: DUP1 000005a4: EXTCODESIZE 000005a5: ISZERO 000005a6: DUP1 000005a7: ISZERO 000005a8: PUSH2 0x05b0 000005ab: JUMPI 000005ac: PUSH1 0x00 000005ae: DUP1 000005af: REVERT 000005b0: JUMPDEST 000005b1: POP 000005b2: GAS 000005b3: STATICCALL 000005b4: ISZERO 000005b5: DUP1 000005b6: ISZERO 000005b7: PUSH2 0x05c4 000005ba: JUMPI 000005bb: RETURNDATASIZE 000005bc: PUSH1 0x00 000005be: DUP1 000005bf: RETURNDATACOPY 000005c0: RETURNDATASIZE 000005c1: PUSH1 0x00 000005c3: REVERT 000005c4: JUMPDEST 000005c5: POP 000005c6: POP 000005c7: POP 000005c8: POP 000005c9: PUSH1 0x40 000005cb: MLOAD 000005cc: RETURNDATASIZE 000005cd: PUSH1 0x1f 000005cf: NOT 000005d0: PUSH1 0x1f 000005d2: DUP3 000005d3: ADD 000005d4: AND 000005d5: DUP3 000005d6: ADD 000005d7: DUP1 000005d8: PUSH1 0x40 000005da: MSTORE 000005db: POP 000005dc: DUP2 000005dd: ADD 000005de: SWAP1 000005df: PUSH2 0x05e8 000005e2: SWAP2 000005e3: SWAP1 000005e4: PUSH2 0x3736 000005e7: JUMP 000005e8: JUMPDEST 000005e9: PUSH2 0x0624 000005ec: JUMPI 000005ed: DUP2 000005ee: PUSH1 0x80 000005f0: ADD 000005f1: MLOAD 000005f2: PUSH2 0xffff 000005f5: AND 000005f6: DUP3 000005f7: PUSH1 0xa0 000005f9: ADD 000005fa: MLOAD 000005fb: PUSH2 0xffff 000005fe: AND 000005ff: GT 00000600: PUSH2 0x060d 00000603: JUMPI 00000604: DUP2 00000605: PUSH1 0x80 00000607: ADD 00000608: MLOAD 00000609: PUSH2 0x0613 0000060c: JUMP 0000060d: JUMPDEST 0000060e: DUP2 0000060f: PUSH1 0xa0 00000611: ADD 00000612: MLOAD 00000613: JUMPDEST 00000614: PUSH2 0xffff 00000617: AND 00000618: PUSH1 0x80 0000061a: DUP4 0000061b: ADD 0000061c: MSTORE 0000061d: PUSH1 0x00 0000061f: PUSH1 0xa0 00000621: DUP4 00000622: ADD 00000623: MSTORE 00000624: JUMPDEST 00000625: PUSH1 0x20 00000627: DUP4 00000628: ADD 00000629: MLOAD 0000062a: PUSH1 0x01 0000062c: PUSH1 0x01 0000062e: PUSH1 0xa0 00000630: SHL 00000631: SUB 00000632: AND 00000633: ISZERO 00000634: DUP1 00000635: PUSH2 0x065e 00000638: JUMPI 00000639: POP 0000063a: PUSH1 0x20 0000063c: DUP4 0000063d: ADD 0000063e: MLOAD 0000063f: PUSH1 0x01 00000641: PUSH1 0x01 00000643: PUSH1 0xa0 00000645: SHL 00000646: SUB 00000647: AND 00000648: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0000065d: EQ 0000065e: JUMPDEST 0000065f: ISZERO 00000660: ISZERO 00000661: DUP2 00000662: MSTORE 00000663: PUSH1 0x40 00000665: DUP4 00000666: ADD 00000667: MLOAD 00000668: PUSH1 0x01 0000066a: PUSH1 0x01 0000066c: PUSH1 0xa0 0000066e: SHL 0000066f: SUB 00000670: AND 00000671: ISZERO 00000672: DUP1 00000673: PUSH2 0x069c 00000676: JUMPI 00000677: POP 00000678: PUSH1 0x40 0000067a: DUP4 0000067b: ADD 0000067c: MLOAD 0000067d: PUSH1 0x01 0000067f: PUSH1 0x01 00000681: PUSH1 0xa0 00000683: SHL 00000684: SUB 00000685: AND 00000686: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0000069b: EQ 0000069c: JUMPDEST 0000069d: ISZERO 0000069e: ISZERO 0000069f: PUSH1 0x20 000006a1: DUP3 000006a2: ADD 000006a3: MSTORE 000006a4: DUP3 000006a5: MLOAD 000006a6: PUSH2 0x06ae 000006a9: SWAP1 000006aa: PUSH2 0x1653 000006ad: JUMP 000006ae: JUMPDEST 000006af: ISZERO 000006b0: PUSH2 0x0723 000006b3: JUMPI 000006b4: DUP1 000006b5: MLOAD 000006b6: PUSH2 0x06c3 000006b9: JUMPI 000006ba: DUP3 000006bb: PUSH1 0x20 000006bd: ADD 000006be: MLOAD 000006bf: PUSH2 0x06d9 000006c2: JUMP 000006c3: JUMPDEST 000006c4: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 000006d9: JUMPDEST 000006da: PUSH1 0x01 000006dc: PUSH1 0x01 000006de: PUSH1 0xa0 000006e0: SHL 000006e1: SUB 000006e2: AND 000006e3: PUSH1 0x40 000006e5: DUP3 000006e6: ADD 000006e7: MSTORE 000006e8: PUSH1 0x20 000006ea: DUP2 000006eb: ADD 000006ec: MLOAD 000006ed: PUSH2 0x06fa 000006f0: JUMPI 000006f1: DUP3 000006f2: PUSH1 0x40 000006f4: ADD 000006f5: MLOAD 000006f6: PUSH2 0x0710 000006f9: JUMP 000006fa: JUMPDEST 000006fb: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00000710: JUMPDEST 00000711: PUSH1 0x01 00000713: PUSH1 0x01 00000715: PUSH1 0xa0 00000717: SHL 00000718: SUB 00000719: AND 0000071a: PUSH1 0x60 0000071c: DUP3 0000071d: ADD 0000071e: MSTORE 0000071f: PUSH2 0x07a7 00000722: JUMP 00000723: JUMPDEST 00000724: DUP1 00000725: MLOAD 00000726: PUSH2 0x0733 00000729: JUMPI 0000072a: DUP3 0000072b: PUSH1 0x20 0000072d: ADD 0000072e: MLOAD 0000072f: PUSH2 0x0755 00000732: JUMP 00000733: JUMPDEST 00000734: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000755: JUMPDEST 00000756: PUSH1 0x01 00000758: PUSH1 0x01 0000075a: PUSH1 0xa0 0000075c: SHL 0000075d: SUB 0000075e: AND 0000075f: PUSH1 0x40 00000761: DUP3 00000762: ADD 00000763: MSTORE 00000764: PUSH1 0x20 00000766: DUP2 00000767: ADD 00000768: MLOAD 00000769: PUSH2 0x0776 0000076c: JUMPI 0000076d: DUP3 0000076e: PUSH1 0x40 00000770: ADD 00000771: MLOAD 00000772: PUSH2 0x0798 00000775: JUMP 00000776: JUMPDEST 00000777: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000798: JUMPDEST 00000799: PUSH1 0x01 0000079b: PUSH1 0x01 0000079d: PUSH1 0xa0 0000079f: SHL 000007a0: SUB 000007a1: AND 000007a2: PUSH1 0x60 000007a4: DUP3 000007a5: ADD 000007a6: MSTORE 000007a7: JUMPDEST 000007a8: PUSH2 0x07b2 000007ab: DUP4 000007ac: DUP8 000007ad: DUP8 000007ae: PUSH2 0x16d9 000007b1: JUMP 000007b2: JUMPDEST 000007b3: PUSH1 0x20 000007b5: DUP4 000007b6: ADD 000007b7: MSTORE 000007b8: PUSH2 0x07c1 000007bb: DUP4 000007bc: DUP3 000007bd: PUSH2 0x18d8 000007c0: JUMP 000007c1: JUMPDEST 000007c2: PUSH2 0x07cc 000007c5: DUP4 000007c6: DUP4 000007c7: DUP4 000007c8: PUSH2 0x1a3e 000007cb: JUMP 000007cc: JUMPDEST 000007cd: PUSH1 0x60 000007cf: DUP5 000007d0: ADD 000007d1: MSTORE 000007d2: DUP3 000007d3: MSTORE 000007d4: PUSH2 0x07de 000007d7: DUP4 000007d8: DUP4 000007d9: DUP4 000007da: PUSH2 0x1db2 000007dd: JUMP 000007de: JUMPDEST 000007df: DUP3 000007e0: PUSH1 0x40 000007e2: ADD 000007e3: DUP2 000007e4: DUP2 000007e5: MSTORE 000007e6: POP 000007e7: POP 000007e8: DUP3 000007e9: PUSH1 0xa0 000007eb: ADD 000007ec: MLOAD 000007ed: PUSH1 0x01 000007ef: PUSH1 0x01 000007f1: PUSH1 0xa0 000007f3: SHL 000007f4: SUB 000007f5: AND 000007f6: DUP3 000007f7: PUSH1 0x20 000007f9: ADD 000007fa: MLOAD 000007fb: PUSH32 0x751c65d3b4f3d8a604acd9f9de3800b28af395263a2c0a096f50a5d479d8bf4f 0000081c: DUP5 0000081d: PUSH1 0x00 0000081f: ADD 00000820: MLOAD 00000821: DUP7 00000822: PUSH1 0x20 00000824: ADD 00000825: MLOAD 00000826: DUP8 00000827: PUSH1 0x60 00000829: ADD 0000082a: MLOAD 0000082b: DUP9 0000082c: PUSH1 0x00 0000082e: ADD 0000082f: MLOAD 00000830: DUP10 00000831: PUSH1 0x40 00000833: ADD 00000834: MLOAD 00000835: DUP11 00000836: PUSH1 0x80 00000838: ADD 00000839: MLOAD 0000083a: DUP12 0000083b: PUSH1 0xc0 0000083d: ADD 0000083e: MLOAD 0000083f: DUP12 00000840: PUSH1 0x40 00000842: ADD 00000843: MLOAD 00000844: DUP13 00000845: PUSH1 0x60 00000847: ADD 00000848: MLOAD 00000849: DUP14 0000084a: PUSH1 0x80 0000084c: ADD 0000084d: MLOAD 0000084e: DUP15 0000084f: PUSH1 0xa0 00000851: ADD 00000852: MLOAD 00000853: PUSH1 0x40 00000855: MLOAD 00000856: PUSH2 0x0869 00000859: SWAP12 0000085a: SWAP11 0000085b: SWAP10 0000085c: SWAP9 0000085d: SWAP8 0000085e: SWAP7 0000085f: SWAP6 00000860: SWAP5 00000861: SWAP4 00000862: SWAP3 00000863: SWAP2 00000864: SWAP1 00000865: PUSH2 0x3e00 00000868: JUMP 00000869: JUMPDEST 0000086a: PUSH1 0x40 0000086c: MLOAD 0000086d: DUP1 0000086e: SWAP2 0000086f: SUB 00000870: SWAP1 00000871: LOG3 00000872: POP 00000873: PUSH1 0x40 00000875: ADD 00000876: MLOAD 00000877: PUSH1 0x01 00000879: PUSH1 0x00 0000087b: SSTORE 0000087c: SWAP15 0000087d: SWAP14 0000087e: POP 0000087f: POP 00000880: POP 00000881: POP 00000882: POP 00000883: POP 00000884: POP 00000885: POP 00000886: POP 00000887: POP 00000888: POP 00000889: POP 0000088a: POP 0000088b: POP 0000088c: JUMP 0000088d: JUMPDEST 0000088e: PUSH20 0xe592427a0aece92de3edee1f18e0157c05861564 000008a3: DUP2 000008a4: JUMP 000008a5: JUMPDEST 000008a6: PUSH1 0x01 000008a8: SLOAD 000008a9: PUSH1 0x01 000008ab: PUSH1 0x01 000008ad: PUSH1 0xa0 000008af: SHL 000008b0: SUB 000008b1: AND 000008b2: CALLER 000008b3: EQ 000008b4: PUSH2 0x08cf 000008b7: JUMPI 000008b8: PUSH1 0x40 000008ba: MLOAD 000008bb: PUSH3 0x461bcd 000008bf: PUSH1 0xe5 000008c1: SHL 000008c2: DUP2 000008c3: MSTORE 000008c4: PUSH1 0x04 000008c6: ADD 000008c7: PUSH2 0x0435 000008ca: SWAP1 000008cb: PUSH2 0x461b 000008ce: JUMP 000008cf: JUMPDEST 000008d0: PUSH1 0x00 000008d2: JUMPDEST 000008d3: DUP3 000008d4: DUP2 000008d5: LT 000008d6: ISZERO 000008d7: PUSH2 0x0950 000008da: JUMPI 000008db: PUSH2 0x0911 000008de: DUP3 000008df: PUSH1 0x00 000008e1: DUP7 000008e2: DUP7 000008e3: DUP6 000008e4: DUP2 000008e5: DUP2 000008e6: LT 000008e7: PUSH2 0x08ec 000008ea: JUMPI 000008eb: INVALID 000008ec: JUMPDEST 000008ed: SWAP1 000008ee: POP 000008ef: PUSH1 0x20 000008f1: MUL 000008f2: ADD 000008f3: PUSH1 0x20 000008f5: DUP2 000008f6: ADD 000008f7: SWAP1 000008f8: PUSH2 0x0901 000008fb: SWAP2 000008fc: SWAP1 000008fd: PUSH2 0x34e0 00000900: JUMP 00000901: JUMPDEST 00000902: PUSH1 0x01 00000904: PUSH1 0x01 00000906: PUSH1 0xa0 00000908: SHL 00000909: SUB 0000090a: AND 0000090b: SWAP2 0000090c: SWAP1 0000090d: PUSH2 0x21a3 00000910: JUMP 00000911: JUMPDEST 00000912: PUSH32 0x7c22b5f0390808135dc69153cbe5633a868bb389d20d7e2071500f3c8e49017e 00000933: DUP3 00000934: PUSH1 0x40 00000936: MLOAD 00000937: PUSH2 0x0940 0000093a: SWAP2 0000093b: SWAP1 0000093c: PUSH2 0x3c6b 0000093f: JUMP 00000940: JUMPDEST 00000941: PUSH1 0x40 00000943: MLOAD 00000944: DUP1 00000945: SWAP2 00000946: SUB 00000947: SWAP1 00000948: LOG1 00000949: PUSH1 0x01 0000094b: ADD 0000094c: PUSH2 0x08d2 0000094f: JUMP 00000950: JUMPDEST 00000951: POP 00000952: POP 00000953: POP 00000954: POP 00000955: JUMP 00000956: JUMPDEST 00000957: PUSH32 0x00000000000000000000000003f34be1bf910116595db1b11e9d1b2ca5d59659 00000978: DUP2 00000979: JUMP 0000097a: JUMPDEST 0000097b: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000099c: DUP2 0000099d: JUMP 0000099e: JUMPDEST 0000099f: PUSH1 0x01 000009a1: SLOAD 000009a2: PUSH1 0x01 000009a4: PUSH1 0x01 000009a6: PUSH1 0xa0 000009a8: SHL 000009a9: SUB 000009aa: AND 000009ab: CALLER 000009ac: EQ 000009ad: PUSH2 0x09c8 000009b0: JUMPI 000009b1: PUSH1 0x40 000009b3: MLOAD 000009b4: PUSH3 0x461bcd 000009b8: PUSH1 0xe5 000009ba: SHL 000009bb: DUP2 000009bc: MSTORE 000009bd: PUSH1 0x04 000009bf: ADD 000009c0: PUSH2 0x0435 000009c3: SWAP1 000009c4: PUSH2 0x461b 000009c7: JUMP 000009c8: JUMPDEST 000009c9: PUSH1 0x00 000009cb: JUMPDEST 000009cc: DUP3 000009cd: DUP2 000009ce: LT 000009cf: ISZERO 000009d0: PUSH2 0x0950 000009d3: JUMPI 000009d4: PUSH2 0x09e6 000009d7: DUP3 000009d8: PUSH1 0x00 000009da: NOT 000009db: DUP7 000009dc: DUP7 000009dd: DUP6 000009de: DUP2 000009df: DUP2 000009e0: LT 000009e1: PUSH2 0x08ec 000009e4: JUMPI 000009e5: INVALID 000009e6: JUMPDEST 000009e7: PUSH32 0xcc25b8a957df0a0b6c4413850c122a29ee10048018cd63f00e453e1bba64943a 00000a08: DUP3 00000a09: PUSH1 0x40 00000a0b: MLOAD 00000a0c: PUSH2 0x0a15 00000a0f: SWAP2 00000a10: SWAP1 00000a11: PUSH2 0x3c6b 00000a14: JUMP 00000a15: JUMPDEST 00000a16: PUSH1 0x40 00000a18: MLOAD 00000a19: DUP1 00000a1a: SWAP2 00000a1b: SUB 00000a1c: SWAP1 00000a1d: LOG1 00000a1e: PUSH1 0x01 00000a20: ADD 00000a21: PUSH2 0x09cb 00000a24: JUMP 00000a25: JUMPDEST 00000a26: PUSH1 0x00 00000a28: PUSH1 0x02 00000a2a: PUSH1 0x00 00000a2c: SLOAD 00000a2d: EQ 00000a2e: ISZERO 00000a2f: PUSH2 0x0a4a 00000a32: JUMPI 00000a33: PUSH1 0x40 00000a35: MLOAD 00000a36: PUSH3 0x461bcd 00000a3a: PUSH1 0xe5 00000a3c: SHL 00000a3d: DUP2 00000a3e: MSTORE 00000a3f: PUSH1 0x04 00000a41: ADD 00000a42: PUSH2 0x0435 00000a45: SWAP1 00000a46: PUSH2 0x49b9 00000a49: JUMP 00000a4a: JUMPDEST 00000a4b: PUSH1 0x02 00000a4d: PUSH1 0x00 00000a4f: SSTORE 00000a50: PUSH32 0x00000000000000000000000003f34be1bf910116595db1b11e9d1b2ca5d59659 00000a71: PUSH1 0x01 00000a73: PUSH1 0x01 00000a75: PUSH1 0xa0 00000a77: SHL 00000a78: SUB 00000a79: AND 00000a7a: CALLER 00000a7b: EQ 00000a7c: PUSH2 0x0a97 00000a7f: JUMPI 00000a80: PUSH1 0x40 00000a82: MLOAD 00000a83: PUSH3 0x461bcd 00000a87: PUSH1 0xe5 00000a89: SHL 00000a8a: DUP2 00000a8b: MSTORE 00000a8c: PUSH1 0x04 00000a8e: ADD 00000a8f: PUSH2 0x0435 00000a92: SWAP1 00000a93: PUSH2 0x4177 00000a96: JUMP 00000a97: JUMPDEST 00000a98: TIMESTAMP 00000a99: DUP10 00000a9a: PUSH2 0x0100 00000a9d: ADD 00000a9e: MLOAD 00000a9f: LT 00000aa0: ISZERO 00000aa1: PUSH2 0x0abc 00000aa4: JUMPI 00000aa5: PUSH1 0x40 00000aa7: MLOAD 00000aa8: PUSH3 0x461bcd 00000aac: PUSH1 0xe5 00000aae: SHL 00000aaf: DUP2 00000ab0: MSTORE 00000ab1: PUSH1 0x04 00000ab3: ADD 00000ab4: PUSH2 0x0435 00000ab7: SWAP1 00000ab8: PUSH2 0x4769 00000abb: JUMP 00000abc: JUMPDEST 00000abd: PUSH2 0x0ac4 00000ac0: PUSH2 0x32dc 00000ac3: JUMP 00000ac4: JUMPDEST 00000ac5: PUSH2 0x0acc 00000ac8: PUSH2 0x3311 00000acb: JUMP 00000acc: JUMPDEST 00000acd: PUSH1 0x02 00000acf: SLOAD 00000ad0: PUSH2 0xffff 00000ad3: SWAP1 00000ad4: DUP2 00000ad5: AND 00000ad6: PUSH1 0xa0 00000ad8: DUP5 00000ad9: ADD 00000ada: MSTORE 00000adb: DUP11 00000adc: AND 00000add: PUSH1 0x80 00000adf: DUP4 00000ae0: ADD 00000ae1: MSTORE 00000ae2: PUSH1 0x40 00000ae4: DUP1 00000ae5: MLOAD 00000ae6: PUSH1 0x20 00000ae8: PUSH1 0x1f 00000aea: DUP10 00000aeb: ADD 00000aec: DUP2 00000aed: SWAP1 00000aee: DIV 00000aef: DUP2 00000af0: MUL 00000af1: DUP3 00000af2: ADD 00000af3: DUP2 00000af4: ADD 00000af5: SWAP1 00000af6: SWAP3 00000af7: MSTORE 00000af8: DUP8 00000af9: DUP2 00000afa: MSTORE 00000afb: SWAP1 00000afc: DUP9 00000afd: SWAP1 00000afe: DUP9 00000aff: SWAP1 00000b00: DUP2 00000b01: SWAP1 00000b02: DUP5 00000b03: ADD 00000b04: DUP4 00000b05: DUP3 00000b06: DUP1 00000b07: DUP3 00000b08: DUP5 00000b09: CALLDATACOPY 00000b0a: PUSH1 0x00 00000b0c: SWAP3 00000b0d: ADD 00000b0e: SWAP2 00000b0f: SWAP1 00000b10: SWAP2 00000b11: MSTORE 00000b12: POP 00000b13: POP 00000b14: POP 00000b15: POP 00000b16: PUSH1 0xa0 00000b18: DUP3 00000b19: ADD 00000b1a: MSTORE 00000b1b: PUSH1 0x40 00000b1d: DUP1 00000b1e: MLOAD 00000b1f: PUSH1 0x20 00000b21: DUP1 00000b22: DUP8 00000b23: MUL 00000b24: DUP3 00000b25: DUP2 00000b26: ADD 00000b27: DUP3 00000b28: ADD 00000b29: SWAP1 00000b2a: SWAP4 00000b2b: MSTORE 00000b2c: DUP7 00000b2d: DUP3 00000b2e: MSTORE 00000b2f: SWAP1 00000b30: SWAP2 00000b31: DUP8 00000b32: SWAP2 00000b33: DUP8 00000b34: SWAP2 00000b35: DUP3 00000b36: SWAP2 00000b37: DUP6 00000b38: ADD 00000b39: SWAP1 00000b3a: DUP5 00000b3b: SWAP1 00000b3c: DUP1 00000b3d: DUP3 00000b3e: DUP5 00000b3f: CALLDATACOPY 00000b40: PUSH1 0x00 00000b42: SWAP3 00000b43: ADD 00000b44: SWAP2 00000b45: SWAP1 00000b46: SWAP2 00000b47: MSTORE 00000b48: POP 00000b49: POP 00000b4a: POP 00000b4b: POP 00000b4c: PUSH1 0x80 00000b4e: DUP3 00000b4f: ADD 00000b50: MSTORE 00000b51: PUSH1 0x40 00000b53: MLOAD 00000b54: PUSH4 0x17f7751d 00000b59: PUSH1 0xe1 00000b5b: SHL 00000b5c: DUP2 00000b5d: MSTORE 00000b5e: PUSH1 0x01 00000b60: PUSH1 0x01 00000b62: PUSH1 0xa0 00000b64: SHL 00000b65: SUB 00000b66: PUSH32 0x0000000000000000000000006d9cc14a1d36e6ff13fc6efa9e9326fcd12e7903 00000b87: AND 00000b88: SWAP1 00000b89: PUSH4 0x2feeea3a 00000b8e: SWAP1 00000b8f: PUSH2 0x0b9c 00000b92: SWAP1 00000b93: ORIGIN 00000b94: SWAP1 00000b95: PUSH1 0x04 00000b97: ADD 00000b98: PUSH2 0x3c6b 00000b9b: JUMP 00000b9c: JUMPDEST 00000b9d: PUSH1 0x20 00000b9f: PUSH1 0x40 00000ba1: MLOAD 00000ba2: DUP1 00000ba3: DUP4 00000ba4: SUB 00000ba5: DUP2 00000ba6: DUP7 00000ba7: DUP1 00000ba8: EXTCODESIZE 00000ba9: ISZERO 00000baa: DUP1 00000bab: ISZERO 00000bac: PUSH2 0x0bb4 00000baf: JUMPI 00000bb0: PUSH1 0x00 00000bb2: DUP1 00000bb3: REVERT 00000bb4: JUMPDEST 00000bb5: POP 00000bb6: GAS 00000bb7: STATICCALL 00000bb8: ISZERO 00000bb9: DUP1 00000bba: ISZERO 00000bbb: PUSH2 0x0bc8 00000bbe: JUMPI 00000bbf: RETURNDATASIZE 00000bc0: PUSH1 0x00 00000bc2: DUP1 00000bc3: RETURNDATACOPY 00000bc4: RETURNDATASIZE 00000bc5: PUSH1 0x00 00000bc7: REVERT 00000bc8: JUMPDEST 00000bc9: POP 00000bca: POP 00000bcb: POP 00000bcc: POP 00000bcd: PUSH1 0x40 00000bcf: MLOAD 00000bd0: RETURNDATASIZE 00000bd1: PUSH1 0x1f 00000bd3: NOT 00000bd4: PUSH1 0x1f 00000bd6: DUP3 00000bd7: ADD 00000bd8: AND 00000bd9: DUP3 00000bda: ADD 00000bdb: DUP1 00000bdc: PUSH1 0x40 00000bde: MSTORE 00000bdf: POP 00000be0: DUP2 00000be1: ADD 00000be2: SWAP1 00000be3: PUSH2 0x0bec 00000be6: SWAP2 00000be7: SWAP1 00000be8: PUSH2 0x3736 00000beb: JUMP 00000bec: JUMPDEST 00000bed: PUSH2 0x0c28 00000bf0: JUMPI 00000bf1: DUP2 00000bf2: PUSH1 0x80 00000bf4: ADD 00000bf5: MLOAD 00000bf6: PUSH2 0xffff 00000bf9: AND 00000bfa: DUP3 00000bfb: PUSH1 0xa0 00000bfd: ADD 00000bfe: MLOAD 00000bff: PUSH2 0xffff 00000c02: AND 00000c03: GT 00000c04: PUSH2 0x0c11 00000c07: JUMPI 00000c08: DUP2 00000c09: PUSH1 0x80 00000c0b: ADD 00000c0c: MLOAD 00000c0d: PUSH2 0x0c17 00000c10: JUMP 00000c11: JUMPDEST 00000c12: DUP2 00000c13: PUSH1 0xa0 00000c15: ADD 00000c16: MLOAD 00000c17: JUMPDEST 00000c18: PUSH2 0xffff 00000c1b: AND 00000c1c: PUSH1 0x80 00000c1e: DUP4 00000c1f: ADD 00000c20: MSTORE 00000c21: PUSH1 0x00 00000c23: PUSH1 0xa0 00000c25: DUP4 00000c26: ADD 00000c27: MSTORE 00000c28: JUMPDEST 00000c29: PUSH1 0x20 00000c2b: DUP12 00000c2c: ADD 00000c2d: MLOAD 00000c2e: PUSH1 0x01 00000c30: PUSH1 0x01 00000c32: PUSH1 0xa0 00000c34: SHL 00000c35: SUB 00000c36: AND 00000c37: ISZERO 00000c38: DUP1 00000c39: PUSH2 0x0c62 00000c3c: JUMPI 00000c3d: POP 00000c3e: PUSH1 0x20 00000c40: DUP12 00000c41: ADD 00000c42: MLOAD 00000c43: PUSH1 0x01 00000c45: PUSH1 0x01 00000c47: PUSH1 0xa0 00000c49: SHL 00000c4a: SUB 00000c4b: AND 00000c4c: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00000c61: EQ 00000c62: JUMPDEST 00000c63: ISZERO 00000c64: ISZERO 00000c65: DUP2 00000c66: MSTORE 00000c67: PUSH1 0x40 00000c69: DUP12 00000c6a: ADD 00000c6b: MLOAD 00000c6c: PUSH1 0x01 00000c6e: PUSH1 0x01 00000c70: PUSH1 0xa0 00000c72: SHL 00000c73: SUB 00000c74: AND 00000c75: ISZERO 00000c76: DUP1 00000c77: PUSH2 0x0ca0 00000c7a: JUMPI 00000c7b: POP 00000c7c: PUSH1 0x40 00000c7e: DUP12 00000c7f: ADD 00000c80: MLOAD 00000c81: PUSH1 0x01 00000c83: PUSH1 0x01 00000c85: PUSH1 0xa0 00000c87: SHL 00000c88: SUB 00000c89: AND 00000c8a: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00000c9f: EQ 00000ca0: JUMPDEST 00000ca1: ISZERO 00000ca2: ISZERO 00000ca3: PUSH1 0x20 00000ca5: DUP3 00000ca6: ADD 00000ca7: MSTORE 00000ca8: DUP11 00000ca9: MLOAD 00000caa: PUSH2 0x0cb2 00000cad: SWAP1 00000cae: PUSH2 0x1653 00000cb1: JUMP 00000cb2: JUMPDEST 00000cb3: ISZERO 00000cb4: PUSH2 0x0d27 00000cb7: JUMPI 00000cb8: DUP1 00000cb9: MLOAD 00000cba: PUSH2 0x0cc7 00000cbd: JUMPI 00000cbe: DUP11 00000cbf: PUSH1 0x20 00000cc1: ADD 00000cc2: MLOAD 00000cc3: PUSH2 0x0cdd 00000cc6: JUMP 00000cc7: JUMPDEST 00000cc8: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00000cdd: JUMPDEST 00000cde: PUSH1 0x01 00000ce0: PUSH1 0x01 00000ce2: PUSH1 0xa0 00000ce4: SHL 00000ce5: SUB 00000ce6: AND 00000ce7: PUSH1 0x40 00000ce9: DUP3 00000cea: ADD 00000ceb: MSTORE 00000cec: PUSH1 0x20 00000cee: DUP2 00000cef: ADD 00000cf0: MLOAD 00000cf1: PUSH2 0x0cfe 00000cf4: JUMPI 00000cf5: DUP11 00000cf6: PUSH1 0x40 00000cf8: ADD 00000cf9: MLOAD 00000cfa: PUSH2 0x0d14 00000cfd: JUMP 00000cfe: JUMPDEST 00000cff: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00000d14: JUMPDEST 00000d15: PUSH1 0x01 00000d17: PUSH1 0x01 00000d19: PUSH1 0xa0 00000d1b: SHL 00000d1c: SUB 00000d1d: AND 00000d1e: PUSH1 0x60 00000d20: DUP3 00000d21: ADD 00000d22: MSTORE 00000d23: PUSH2 0x0dab 00000d26: JUMP 00000d27: JUMPDEST 00000d28: DUP1 00000d29: MLOAD 00000d2a: PUSH2 0x0d37 00000d2d: JUMPI 00000d2e: DUP11 00000d2f: PUSH1 0x20 00000d31: ADD 00000d32: MLOAD 00000d33: PUSH2 0x0d59 00000d36: JUMP 00000d37: JUMPDEST 00000d38: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000d59: JUMPDEST 00000d5a: PUSH1 0x01 00000d5c: PUSH1 0x01 00000d5e: PUSH1 0xa0 00000d60: SHL 00000d61: SUB 00000d62: AND 00000d63: PUSH1 0x40 00000d65: DUP3 00000d66: ADD 00000d67: MSTORE 00000d68: PUSH1 0x20 00000d6a: DUP2 00000d6b: ADD 00000d6c: MLOAD 00000d6d: PUSH2 0x0d7a 00000d70: JUMPI 00000d71: DUP11 00000d72: PUSH1 0x40 00000d74: ADD 00000d75: MLOAD 00000d76: PUSH2 0x0d9c 00000d79: JUMP 00000d7a: JUMPDEST 00000d7b: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000d9c: JUMPDEST 00000d9d: PUSH1 0x01 00000d9f: PUSH1 0x01 00000da1: PUSH1 0xa0 00000da3: SHL 00000da4: SUB 00000da5: AND 00000da6: PUSH1 0x60 00000da8: DUP3 00000da9: ADD 00000daa: MSTORE 00000dab: JUMPDEST 00000dac: PUSH2 0x0db6 00000daf: DUP12 00000db0: DUP11 00000db1: DUP11 00000db2: PUSH2 0x16d9 00000db5: JUMP 00000db6: JUMPDEST 00000db7: PUSH1 0x20 00000db9: DUP4 00000dba: ADD 00000dbb: MSTORE 00000dbc: PUSH2 0x0dc5 00000dbf: DUP12 00000dc0: DUP3 00000dc1: PUSH2 0x18d8 00000dc4: JUMP 00000dc5: JUMPDEST 00000dc6: PUSH2 0x0dd0 00000dc9: DUP12 00000dca: DUP4 00000dcb: DUP4 00000dcc: PUSH2 0x22d0 00000dcf: JUMP 00000dd0: JUMPDEST 00000dd1: PUSH1 0x60 00000dd3: DUP5 00000dd4: ADD 00000dd5: MSTORE 00000dd6: DUP3 00000dd7: MSTORE 00000dd8: PUSH2 0x0de2 00000ddb: DUP12 00000ddc: DUP4 00000ddd: DUP4 00000dde: PUSH2 0x1db2 00000de1: JUMP 00000de2: JUMPDEST 00000de3: DUP3 00000de4: PUSH1 0x40 00000de6: ADD 00000de7: DUP2 00000de8: DUP2 00000de9: MSTORE 00000dea: POP 00000deb: POP 00000dec: PUSH32 0xc36ae6e11a161c28ae95fc0f8c0f56d3d0fb7f3a3524499c53fb6733ed86764d 00000e0d: DUP3 00000e0e: DUP13 00000e0f: PUSH1 0x40 00000e11: MLOAD 00000e12: PUSH2 0x0e1c 00000e15: SWAP3 00000e16: SWAP2 00000e17: SWAP1 00000e18: PUSH2 0x4b4c 00000e1b: JUMP 00000e1c: JUMPDEST 00000e1d: PUSH1 0x40 00000e1f: MLOAD 00000e20: DUP1 00000e21: SWAP2 00000e22: SUB 00000e23: SWAP1 00000e24: LOG1 00000e25: POP 00000e26: PUSH1 0x40 00000e28: ADD 00000e29: MLOAD 00000e2a: PUSH1 0x01 00000e2c: PUSH1 0x00 00000e2e: SSTORE 00000e2f: SWAP10 00000e30: SWAP9 00000e31: POP 00000e32: POP 00000e33: POP 00000e34: POP 00000e35: POP 00000e36: POP 00000e37: POP 00000e38: POP 00000e39: POP 00000e3a: JUMP 00000e3b: JUMPDEST 00000e3c: PUSH1 0x40 00000e3e: MLOAD 00000e3f: DUP1 00000e40: PUSH1 0x40 00000e42: ADD 00000e43: PUSH1 0x40 00000e45: MSTORE 00000e46: DUP1 00000e47: PUSH1 0x05 00000e49: DUP2 00000e4a: MSTORE 00000e4b: PUSH1 0x20 00000e4d: ADD 00000e4e: PUSH32 0x352e322e30000000000000000000000000000000000000000000000000000000 00000e6f: DUP2 00000e70: MSTORE 00000e71: POP 00000e72: DUP2 00000e73: JUMP 00000e74: JUMPDEST 00000e75: PUSH1 0x01 00000e77: SLOAD 00000e78: PUSH1 0x01 00000e7a: PUSH1 0x01 00000e7c: PUSH1 0xa0 00000e7e: SHL 00000e7f: SUB 00000e80: AND 00000e81: DUP2 00000e82: JUMP 00000e83: JUMPDEST 00000e84: PUSH1 0x40 00000e86: MLOAD 00000e87: DUP1 00000e88: PUSH1 0x40 00000e8a: ADD 00000e8b: PUSH1 0x40 00000e8d: MSTORE 00000e8e: DUP1 00000e8f: PUSH1 0x02 00000e91: DUP2 00000e92: MSTORE 00000e93: PUSH1 0x20 00000e95: ADD 00000e96: PUSH32 0x7635000000000000000000000000000000000000000000000000000000000000 00000eb7: DUP2 00000eb8: MSTORE 00000eb9: POP 00000eba: DUP2 00000ebb: JUMP 00000ebc: JUMPDEST 00000ebd: PUSH1 0x01 00000ebf: SLOAD 00000ec0: PUSH1 0x01 00000ec2: PUSH1 0x01 00000ec4: PUSH1 0xa0 00000ec6: SHL 00000ec7: SUB 00000ec8: AND 00000ec9: CALLER 00000eca: EQ 00000ecb: PUSH2 0x0ee6 00000ece: JUMPI 00000ecf: PUSH1 0x40 00000ed1: MLOAD 00000ed2: PUSH3 0x461bcd 00000ed6: PUSH1 0xe5 00000ed8: SHL 00000ed9: DUP2 00000eda: MSTORE 00000edb: PUSH1 0x04 00000edd: ADD 00000ede: PUSH2 0x0435 00000ee1: SWAP1 00000ee2: PUSH2 0x461b 00000ee5: JUMP 00000ee6: JUMPDEST 00000ee7: PUSH1 0x02 00000ee9: DUP2 00000eea: SWAP1 00000eeb: SSTORE 00000eec: PUSH1 0x40 00000eee: MLOAD 00000eef: PUSH32 0x944e6cfc55d615def1246239dc39ee5d2490dc67f9f0088edf3142a9cfa44451 00000f10: SWAP1 00000f11: PUSH2 0x0f1b 00000f14: SWAP1 00000f15: DUP4 00000f16: SWAP1 00000f17: PUSH2 0x3d04 00000f1a: JUMP 00000f1b: JUMPDEST 00000f1c: PUSH1 0x40 00000f1e: MLOAD 00000f1f: DUP1 00000f20: SWAP2 00000f21: SUB 00000f22: SWAP1 00000f23: LOG1 00000f24: POP 00000f25: JUMP 00000f26: JUMPDEST 00000f27: PUSH1 0x01 00000f29: SLOAD 00000f2a: PUSH1 0x01 00000f2c: PUSH1 0x01 00000f2e: PUSH1 0xa0 00000f30: SHL 00000f31: SUB 00000f32: AND 00000f33: CALLER 00000f34: EQ 00000f35: PUSH2 0x0f50 00000f38: JUMPI 00000f39: PUSH1 0x40 00000f3b: MLOAD 00000f3c: PUSH3 0x461bcd 00000f40: PUSH1 0xe5 00000f42: SHL 00000f43: DUP2 00000f44: MSTORE 00000f45: PUSH1 0x04 00000f47: ADD 00000f48: PUSH2 0x0435 00000f4b: SWAP1 00000f4c: PUSH2 0x461b 00000f4f: JUMP 00000f50: JUMPDEST 00000f51: PUSH1 0x01 00000f53: PUSH1 0x01 00000f55: PUSH1 0xa0 00000f57: SHL 00000f58: SUB 00000f59: DUP2 00000f5a: AND 00000f5b: PUSH2 0x0f76 00000f5e: JUMPI 00000f5f: PUSH1 0x40 00000f61: MLOAD 00000f62: PUSH3 0x461bcd 00000f66: PUSH1 0xe5 00000f68: SHL 00000f69: DUP2 00000f6a: MSTORE 00000f6b: PUSH1 0x04 00000f6d: ADD 00000f6e: PUSH2 0x0435 00000f71: SWAP1 00000f72: PUSH2 0x4359 00000f75: JUMP 00000f76: JUMPDEST 00000f77: PUSH1 0x03 00000f79: DUP1 00000f7a: SLOAD 00000f7b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f90: NOT 00000f91: AND 00000f92: PUSH1 0x01 00000f94: PUSH1 0x01 00000f96: PUSH1 0xa0 00000f98: SHL 00000f99: SUB 00000f9a: DUP4 00000f9b: AND 00000f9c: OR 00000f9d: SWAP1 00000f9e: SSTORE 00000f9f: PUSH1 0x40 00000fa1: MLOAD 00000fa2: PUSH32 0xbd4e916c3e5390ed2ffaf01ea6c14195c3e174811b8ad55bca06034e89bbd0bb 00000fc3: SWAP1 00000fc4: PUSH2 0x0f1b 00000fc7: SWAP1 00000fc8: DUP4 00000fc9: SWAP1 00000fca: PUSH2 0x3c6b 00000fcd: JUMP 00000fce: JUMPDEST 00000fcf: PUSH1 0x40 00000fd1: MLOAD 00000fd2: PUSH1 0x20 00000fd4: ADD 00000fd5: PUSH2 0x0fdd 00000fd8: SWAP1 00000fd9: PUSH2 0x3a95 00000fdc: JUMP 00000fdd: JUMPDEST 00000fde: PUSH1 0x40 00000fe0: MLOAD 00000fe1: PUSH1 0x20 00000fe3: DUP2 00000fe4: DUP4 00000fe5: SUB 00000fe6: SUB 00000fe7: DUP2 00000fe8: MSTORE 00000fe9: SWAP1 00000fea: PUSH1 0x40 00000fec: MSTORE 00000fed: DUP1 00000fee: MLOAD 00000fef: SWAP1 00000ff0: PUSH1 0x20 00000ff2: ADD 00000ff3: KECCAK256 00000ff4: DUP2 00000ff5: JUMP 00000ff6: JUMPDEST 00000ff7: PUSH20 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 0000100c: DUP2 0000100d: JUMP 0000100e: JUMPDEST 0000100f: PUSH20 0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f 00001024: DUP2 00001025: JUMP 00001026: JUMPDEST 00001027: PUSH32 0x0000000000000000000000006d9cc14a1d36e6ff13fc6efa9e9326fcd12e7903 00001048: DUP2 00001049: JUMP 0000104a: JUMPDEST 0000104b: PUSH32 0x2398e52ffc413ba4f582150da8278d5b2386c55f513d50e900e11bff0ea59c7c 0000106c: DUP2 0000106d: JUMP 0000106e: JUMPDEST 0000106f: PUSH1 0x02 00001071: SLOAD 00001072: DUP2 00001073: JUMP 00001074: JUMPDEST 00001075: PUSH1 0x40 00001077: MLOAD 00001078: DUP1 00001079: PUSH1 0x40 0000107b: ADD 0000107c: PUSH1 0x40 0000107e: MSTORE 0000107f: DUP1 00001080: PUSH1 0x02 00001082: DUP2 00001083: MSTORE 00001084: PUSH1 0x20 00001086: ADD 00001087: PUSH2 0x1901 0000108a: PUSH1 0xf0 0000108c: SHL 0000108d: DUP2 0000108e: MSTORE 0000108f: POP 00001090: DUP2 00001091: JUMP 00001092: JUMPDEST 00001093: PUSH1 0x03 00001095: SLOAD 00001096: PUSH1 0x01 00001098: PUSH1 0x01 0000109a: PUSH1 0xa0 0000109c: SHL 0000109d: SUB 0000109e: AND 0000109f: DUP2 000010a0: JUMP 000010a1: JUMPDEST 000010a2: PUSH1 0x01 000010a4: SLOAD 000010a5: PUSH1 0x01 000010a7: PUSH1 0x01 000010a9: PUSH1 0xa0 000010ab: SHL 000010ac: SUB 000010ad: AND 000010ae: CALLER 000010af: EQ 000010b0: PUSH2 0x10cb 000010b3: JUMPI 000010b4: PUSH1 0x40 000010b6: MLOAD 000010b7: PUSH3 0x461bcd 000010bb: PUSH1 0xe5 000010bd: SHL 000010be: DUP2 000010bf: MSTORE 000010c0: PUSH1 0x04 000010c2: ADD 000010c3: PUSH2 0x0435 000010c6: SWAP1 000010c7: PUSH2 0x461b 000010ca: JUMP 000010cb: JUMPDEST 000010cc: PUSH1 0x01 000010ce: PUSH1 0x01 000010d0: PUSH1 0xa0 000010d2: SHL 000010d3: SUB 000010d4: DUP2 000010d5: AND 000010d6: PUSH2 0x10f1 000010d9: JUMPI 000010da: PUSH1 0x40 000010dc: MLOAD 000010dd: PUSH3 0x461bcd 000010e1: PUSH1 0xe5 000010e3: SHL 000010e4: DUP2 000010e5: MSTORE 000010e6: PUSH1 0x04 000010e8: ADD 000010e9: PUSH2 0x0435 000010ec: SWAP1 000010ed: PUSH2 0x3ff2 000010f0: JUMP 000010f1: JUMPDEST 000010f2: PUSH1 0x01 000010f4: DUP1 000010f5: SLOAD 000010f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000110b: NOT 0000110c: AND 0000110d: PUSH1 0x01 0000110f: PUSH1 0x01 00001111: PUSH1 0xa0 00001113: SHL 00001114: SUB 00001115: DUP4 00001116: AND 00001117: OR 00001118: SWAP1 00001119: SSTORE 0000111a: PUSH1 0x40 0000111c: MLOAD 0000111d: PUSH32 0xcfaaa26691e16e66e73290fc725eee1a6b4e0e693a1640484937aac25ffb55a4 0000113e: SWAP1 0000113f: PUSH2 0x0f1b 00001142: SWAP1 00001143: DUP4 00001144: SWAP1 00001145: PUSH2 0x3c6b 00001148: JUMP 00001149: JUMPDEST 0000114a: PUSH1 0x01 0000114c: SLOAD 0000114d: PUSH1 0x01 0000114f: PUSH1 0x01 00001151: PUSH1 0xa0 00001153: SHL 00001154: SUB 00001155: AND 00001156: CALLER 00001157: EQ 00001158: PUSH2 0x1173 0000115b: JUMPI 0000115c: PUSH1 0x40 0000115e: MLOAD 0000115f: PUSH3 0x461bcd 00001163: PUSH1 0xe5 00001165: SHL 00001166: DUP2 00001167: MSTORE 00001168: PUSH1 0x04 0000116a: ADD 0000116b: PUSH2 0x0435 0000116e: SWAP1 0000116f: PUSH2 0x461b 00001172: JUMP 00001173: JUMPDEST 00001174: SELFBALANCE 00001175: DUP1 00001176: ISZERO 00001177: PUSH2 0x121d 0000117a: JUMPI 0000117b: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000119c: PUSH1 0x01 0000119e: PUSH1 0x01 000011a0: PUSH1 0xa0 000011a2: SHL 000011a3: SUB 000011a4: AND 000011a5: PUSH4 0xd0e30db0 000011aa: DUP3 000011ab: PUSH1 0x40 000011ad: MLOAD 000011ae: DUP3 000011af: PUSH4 0xffffffff 000011b4: AND 000011b5: PUSH1 0xe0 000011b7: SHL 000011b8: DUP2 000011b9: MSTORE 000011ba: PUSH1 0x04 000011bc: ADD 000011bd: PUSH1 0x00 000011bf: PUSH1 0x40 000011c1: MLOAD 000011c2: DUP1 000011c3: DUP4 000011c4: SUB 000011c5: DUP2 000011c6: DUP6 000011c7: DUP9 000011c8: DUP1 000011c9: EXTCODESIZE 000011ca: ISZERO 000011cb: DUP1 000011cc: ISZERO 000011cd: PUSH2 0x11d5 000011d0: JUMPI 000011d1: PUSH1 0x00 000011d3: DUP1 000011d4: REVERT 000011d5: JUMPDEST 000011d6: POP 000011d7: GAS 000011d8: CALL 000011d9: ISZERO 000011da: DUP1 000011db: ISZERO 000011dc: PUSH2 0x11e9 000011df: JUMPI 000011e0: RETURNDATASIZE 000011e1: PUSH1 0x00 000011e3: DUP1 000011e4: RETURNDATACOPY 000011e5: RETURNDATASIZE 000011e6: PUSH1 0x00 000011e8: REVERT 000011e9: JUMPDEST 000011ea: POP 000011eb: POP 000011ec: POP 000011ed: POP 000011ee: POP 000011ef: PUSH32 0xf21b64ad26683e79854b8f088d254ef4e123df84bdb91d1f7f4356d772716a39 00001210: DUP2 00001211: PUSH1 0x40 00001213: MLOAD 00001214: PUSH2 0x0f1b 00001217: SWAP2 00001218: SWAP1 00001219: PUSH2 0x3d04 0000121c: JUMP 0000121d: JUMPDEST 0000121e: POP 0000121f: JUMP 00001220: JUMPDEST 00001221: PUSH1 0x00 00001223: DUP1 00001224: DUP3 00001225: MLOAD 00001226: GT 00001227: PUSH2 0x1242 0000122a: JUMPI 0000122b: PUSH1 0x40 0000122d: MLOAD 0000122e: PUSH3 0x461bcd 00001232: PUSH1 0xe5 00001234: SHL 00001235: DUP2 00001236: MSTORE 00001237: PUSH1 0x04 00001239: ADD 0000123a: PUSH2 0x0435 0000123d: SWAP1 0000123e: PUSH2 0x44cd 00001241: JUMP 00001242: JUMPDEST 00001243: PUSH1 0x01 00001245: PUSH1 0x01 00001247: PUSH1 0xa0 00001249: SHL 0000124a: SUB 0000124b: DUP6 0000124c: AND 0000124d: PUSH2 0x1268 00001250: JUMPI 00001251: PUSH1 0x40 00001253: MLOAD 00001254: PUSH3 0x461bcd 00001258: PUSH1 0xe5 0000125a: SHL 0000125b: DUP2 0000125c: MSTORE 0000125d: PUSH1 0x04 0000125f: ADD 00001260: PUSH2 0x0435 00001263: SWAP1 00001264: PUSH2 0x404f 00001267: JUMP 00001268: JUMPDEST 00001269: PUSH1 0x00 0000126b: PUSH2 0x1273 0000126e: DUP4 0000126f: PUSH2 0x249f 00001272: JUMP 00001273: JUMPDEST 00001274: PUSH1 0xf8 00001276: SHR 00001277: SWAP1 00001278: POP 00001279: PUSH1 0x07 0000127b: DUP2 0000127c: LT 0000127d: PUSH2 0x1298 00001280: JUMPI 00001281: PUSH1 0x40 00001283: MLOAD 00001284: PUSH3 0x461bcd 00001288: PUSH1 0xe5 0000128a: SHL 0000128b: DUP2 0000128c: MSTORE 0000128d: PUSH1 0x04 0000128f: ADD 00001290: PUSH2 0x0435 00001293: SWAP1 00001294: PUSH2 0x45be 00001297: JUMP 00001298: JUMPDEST 00001299: PUSH1 0x00 0000129b: DUP2 0000129c: PUSH1 0xff 0000129e: AND 0000129f: PUSH1 0x07 000012a1: DUP2 000012a2: GT 000012a3: ISZERO 000012a4: PUSH2 0x12a9 000012a7: JUMPI 000012a8: INVALID 000012a9: JUMPDEST 000012aa: SWAP1 000012ab: POP 000012ac: PUSH1 0x00 000012ae: DUP1 000012af: DUP1 000012b0: DUP1 000012b1: DUP1 000012b2: DUP6 000012b3: PUSH1 0x07 000012b5: DUP2 000012b6: GT 000012b7: ISZERO 000012b8: PUSH2 0x12bd 000012bb: JUMPI 000012bc: INVALID 000012bd: JUMPDEST 000012be: EQ 000012bf: ISZERO 000012c0: PUSH2 0x12db 000012c3: JUMPI 000012c4: PUSH1 0x40 000012c6: MLOAD 000012c7: PUSH3 0x461bcd 000012cb: PUSH1 0xe5 000012cd: SHL 000012ce: DUP2 000012cf: MSTORE 000012d0: PUSH1 0x04 000012d2: ADD 000012d3: PUSH2 0x0435 000012d6: SWAP1 000012d7: PUSH2 0x46af 000012da: JUMP 000012db: JUMPDEST 000012dc: PUSH1 0x02 000012de: DUP6 000012df: PUSH1 0x07 000012e1: DUP2 000012e2: GT 000012e3: ISZERO 000012e4: PUSH2 0x12e9 000012e7: JUMPI 000012e8: INVALID 000012e9: JUMPDEST 000012ea: EQ 000012eb: ISZERO 000012ec: PUSH2 0x13b3 000012ef: JUMPI 000012f0: DUP8 000012f1: MLOAD 000012f2: PUSH1 0x61 000012f4: EQ 000012f5: PUSH2 0x1310 000012f8: JUMPI 000012f9: PUSH1 0x40 000012fb: MLOAD 000012fc: PUSH3 0x461bcd 00001300: PUSH1 0xe5 00001302: SHL 00001303: DUP2 00001304: MSTORE 00001305: PUSH1 0x04 00001307: ADD 00001308: PUSH2 0x0435 0000130b: SWAP1 0000130c: PUSH2 0x3e7e 0000130f: JUMP 00001310: JUMPDEST 00001311: PUSH2 0x131b 00001314: DUP9 00001315: PUSH1 0x00 00001317: PUSH2 0x2505 0000131a: JUMP 0000131b: JUMPDEST 0000131c: SWAP3 0000131d: POP 0000131e: PUSH2 0x1328 00001321: DUP9 00001322: PUSH1 0x20 00001324: PUSH2 0x2505 00001327: JUMP 00001328: JUMPDEST 00001329: SWAP2 0000132a: POP 0000132b: DUP8 0000132c: PUSH1 0x40 0000132e: DUP2 0000132f: MLOAD 00001330: DUP2 00001331: LT 00001332: PUSH2 0x1337 00001335: JUMPI 00001336: INVALID 00001337: JUMPDEST 00001338: PUSH1 0x20 0000133a: ADD 0000133b: ADD 0000133c: MLOAD 0000133d: PUSH1 0xf8 0000133f: SHR 00001340: PUSH1 0xf8 00001342: SHL 00001343: PUSH1 0xf8 00001345: SHR 00001346: SWAP4 00001347: POP 00001348: PUSH1 0x01 0000134a: DUP11 0000134b: DUP6 0000134c: DUP6 0000134d: DUP6 0000134e: PUSH1 0x40 00001350: MLOAD 00001351: PUSH1 0x00 00001353: DUP2 00001354: MSTORE 00001355: PUSH1 0x20 00001357: ADD 00001358: PUSH1 0x40 0000135a: MSTORE 0000135b: PUSH1 0x40 0000135d: MLOAD 0000135e: PUSH2 0x136a 00001361: SWAP5 00001362: SWAP4 00001363: SWAP3 00001364: SWAP2 00001365: SWAP1 00001366: PUSH2 0x3d7e 00001369: JUMP 0000136a: JUMPDEST 0000136b: PUSH1 0x20 0000136d: PUSH1 0x40 0000136f: MLOAD 00001370: PUSH1 0x20 00001372: DUP2 00001373: SUB 00001374: SWAP1 00001375: DUP1 00001376: DUP5 00001377: SUB 00001378: SWAP1 00001379: DUP6 0000137a: GAS 0000137b: STATICCALL 0000137c: ISZERO 0000137d: DUP1 0000137e: ISZERO 0000137f: PUSH2 0x138c 00001382: JUMPI 00001383: RETURNDATASIZE 00001384: PUSH1 0x00 00001386: DUP1 00001387: RETURNDATACOPY 00001388: RETURNDATASIZE 00001389: PUSH1 0x00 0000138b: REVERT 0000138c: JUMPDEST 0000138d: POP 0000138e: POP 0000138f: PUSH1 0x40 00001391: MLOAD 00001392: PUSH1 0x1f 00001394: NOT 00001395: ADD 00001396: MLOAD 00001397: PUSH1 0x01 00001399: PUSH1 0x01 0000139b: PUSH1 0xa0 0000139d: SHL 0000139e: SUB 0000139f: DUP14 000013a0: DUP2 000013a1: AND 000013a2: SWAP2 000013a3: AND 000013a4: EQ 000013a5: SWAP8 000013a6: POP 000013a7: PUSH2 0x1612 000013aa: SWAP7 000013ab: POP 000013ac: POP 000013ad: POP 000013ae: POP 000013af: POP 000013b0: POP 000013b1: POP 000013b2: JUMP 000013b3: JUMPDEST 000013b4: PUSH1 0x03 000013b6: DUP6 000013b7: PUSH1 0x07 000013b9: DUP2 000013ba: GT 000013bb: ISZERO 000013bc: PUSH2 0x13c1 000013bf: JUMPI 000013c0: INVALID 000013c1: JUMPDEST 000013c2: EQ 000013c3: ISZERO 000013c4: PUSH2 0x1468 000013c7: JUMPI 000013c8: DUP8 000013c9: MLOAD 000013ca: PUSH1 0x61 000013cc: EQ 000013cd: PUSH2 0x13e8 000013d0: JUMPI 000013d1: PUSH1 0x40 000013d3: MLOAD 000013d4: PUSH3 0x461bcd 000013d8: PUSH1 0xe5 000013da: SHL 000013db: DUP2 000013dc: MSTORE 000013dd: PUSH1 0x04 000013df: ADD 000013e0: PUSH2 0x0435 000013e3: SWAP1 000013e4: PUSH2 0x3e7e 000013e7: JUMP 000013e8: JUMPDEST 000013e9: PUSH2 0x13f3 000013ec: DUP9 000013ed: PUSH1 0x00 000013ef: PUSH2 0x2505 000013f2: JUMP 000013f3: JUMPDEST 000013f4: SWAP3 000013f5: POP 000013f6: PUSH2 0x1400 000013f9: DUP9 000013fa: PUSH1 0x20 000013fc: PUSH2 0x2505 000013ff: JUMP 00001400: JUMPDEST 00001401: SWAP2 00001402: POP 00001403: DUP8 00001404: PUSH1 0x40 00001406: DUP2 00001407: MLOAD 00001408: DUP2 00001409: LT 0000140a: PUSH2 0x140f 0000140d: JUMPI 0000140e: INVALID 0000140f: JUMPDEST 00001410: PUSH1 0x20 00001412: ADD 00001413: ADD 00001414: MLOAD 00001415: PUSH1 0xf8 00001417: SHR 00001418: PUSH1 0xf8 0000141a: SHL 0000141b: PUSH1 0xf8 0000141d: SHR 0000141e: SWAP4 0000141f: POP 00001420: PUSH1 0x01 00001422: DUP11 00001423: PUSH1 0x40 00001425: MLOAD 00001426: PUSH1 0x20 00001428: ADD 00001429: PUSH2 0x1432 0000142c: SWAP2 0000142d: SWAP1 0000142e: PUSH2 0x3c3a 00001431: JUMP 00001432: JUMPDEST 00001433: PUSH1 0x40 00001435: MLOAD 00001436: PUSH1 0x20 00001438: DUP2 00001439: DUP4 0000143a: SUB 0000143b: SUB 0000143c: DUP2 0000143d: MSTORE 0000143e: SWAP1 0000143f: PUSH1 0x40 00001441: MSTORE 00001442: DUP1 00001443: MLOAD 00001444: SWAP1 00001445: PUSH1 0x20 00001447: ADD 00001448: KECCAK256 00001449: DUP6 0000144a: DUP6 0000144b: DUP6 0000144c: PUSH1 0x40 0000144e: MLOAD 0000144f: PUSH1 0x00 00001451: DUP2 00001452: MSTORE 00001453: PUSH1 0x20 00001455: ADD 00001456: PUSH1 0x40 00001458: MSTORE 00001459: PUSH1 0x40 0000145b: MLOAD 0000145c: PUSH2 0x136a 0000145f: SWAP5 00001460: SWAP4 00001461: SWAP3 00001462: SWAP2 00001463: SWAP1 00001464: PUSH2 0x3d7e 00001467: JUMP 00001468: JUMPDEST 00001469: PUSH1 0x04 0000146b: DUP6 0000146c: PUSH1 0x07 0000146e: DUP2 0000146f: GT 00001470: ISZERO 00001471: PUSH2 0x1476 00001474: JUMPI 00001475: INVALID 00001476: JUMPDEST 00001477: EQ 00001478: ISZERO 00001479: PUSH2 0x151b 0000147c: JUMPI 0000147d: PUSH1 0x40 0000147f: MLOAD 00001480: PUSH4 0x20c13b0b 00001485: PUSH1 0xe0 00001487: SHL 00001488: DUP2 00001489: MSTORE 0000148a: PUSH1 0x01 0000148c: PUSH1 0x01 0000148e: PUSH1 0xa0 00001490: SHL 00001491: SUB 00001492: DUP13 00001493: AND 00001494: SWAP1 00001495: PUSH4 0x20c13b0b 0000149a: SWAP1 0000149b: PUSH2 0x14aa 0000149e: SWAP1 0000149f: DUP13 000014a0: SWAP1 000014a1: DUP13 000014a2: SWAP1 000014a3: PUSH1 0x04 000014a5: ADD 000014a6: PUSH2 0x3d9c 000014a9: JUMP 000014aa: JUMPDEST 000014ab: PUSH1 0x20 000014ad: PUSH1 0x40 000014af: MLOAD 000014b0: DUP1 000014b1: DUP4 000014b2: SUB 000014b3: DUP2 000014b4: DUP7 000014b5: DUP1 000014b6: EXTCODESIZE 000014b7: ISZERO 000014b8: DUP1 000014b9: ISZERO 000014ba: PUSH2 0x14c2 000014bd: JUMPI 000014be: PUSH1 0x00 000014c0: DUP1 000014c1: REVERT 000014c2: JUMPDEST 000014c3: POP 000014c4: GAS 000014c5: STATICCALL 000014c6: ISZERO 000014c7: DUP1 000014c8: ISZERO 000014c9: PUSH2 0x14d6 000014cc: JUMPI 000014cd: RETURNDATASIZE 000014ce: PUSH1 0x00 000014d0: DUP1 000014d1: RETURNDATACOPY 000014d2: RETURNDATASIZE 000014d3: PUSH1 0x00 000014d5: REVERT 000014d6: JUMPDEST 000014d7: POP 000014d8: POP 000014d9: POP 000014da: POP 000014db: PUSH1 0x40 000014dd: MLOAD 000014de: RETURNDATASIZE 000014df: PUSH1 0x1f 000014e1: NOT 000014e2: PUSH1 0x1f 000014e4: DUP3 000014e5: ADD 000014e6: AND 000014e7: DUP3 000014e8: ADD 000014e9: DUP1 000014ea: PUSH1 0x40 000014ec: MSTORE 000014ed: POP 000014ee: DUP2 000014ef: ADD 000014f0: SWAP1 000014f1: PUSH2 0x14fa 000014f4: SWAP2 000014f5: SWAP1 000014f6: PUSH2 0x3752 000014f9: JUMP 000014fa: JUMPDEST 000014fb: PUSH1 0x01 000014fd: PUSH1 0x01 000014ff: PUSH1 0xe0 00001501: SHL 00001502: SUB 00001503: NOT 00001504: AND 00001505: PUSH4 0x20c13b0b 0000150a: PUSH1 0xe0 0000150c: SHL 0000150d: EQ 0000150e: SWAP7 0000150f: POP 00001510: PUSH2 0x1612 00001513: SWAP6 00001514: POP 00001515: POP 00001516: POP 00001517: POP 00001518: POP 00001519: POP 0000151a: JUMP 0000151b: JUMPDEST 0000151c: PUSH1 0x05 0000151e: DUP6 0000151f: PUSH1 0x07 00001521: DUP2 00001522: GT 00001523: ISZERO 00001524: PUSH2 0x1529 00001527: JUMPI 00001528: INVALID 00001529: JUMPDEST 0000152a: EQ 0000152b: ISZERO 0000152c: PUSH2 0x15ce 0000152f: JUMPI 00001530: PUSH1 0x40 00001532: MLOAD 00001533: PUSH4 0x0b135d3f 00001538: PUSH1 0xe1 0000153a: SHL 0000153b: DUP2 0000153c: MSTORE 0000153d: PUSH1 0x01 0000153f: PUSH1 0x01 00001541: PUSH1 0xa0 00001543: SHL 00001544: SUB 00001545: DUP13 00001546: AND 00001547: SWAP1 00001548: PUSH4 0x1626ba7e 0000154d: SWAP1 0000154e: PUSH2 0x155d 00001551: SWAP1 00001552: DUP14 00001553: SWAP1 00001554: DUP13 00001555: SWAP1 00001556: PUSH1 0x04 00001558: ADD 00001559: PUSH2 0x3d65 0000155c: JUMP 0000155d: JUMPDEST 0000155e: PUSH1 0x20 00001560: PUSH1 0x40 00001562: MLOAD 00001563: DUP1 00001564: DUP4 00001565: SUB 00001566: DUP2 00001567: DUP7 00001568: DUP1 00001569: EXTCODESIZE 0000156a: ISZERO 0000156b: DUP1 0000156c: ISZERO 0000156d: PUSH2 0x1575 00001570: JUMPI 00001571: PUSH1 0x00 00001573: DUP1 00001574: REVERT 00001575: JUMPDEST 00001576: POP 00001577: GAS 00001578: STATICCALL 00001579: ISZERO 0000157a: DUP1 0000157b: ISZERO 0000157c: PUSH2 0x1589 0000157f: JUMPI 00001580: RETURNDATASIZE 00001581: PUSH1 0x00 00001583: DUP1 00001584: RETURNDATACOPY 00001585: RETURNDATASIZE 00001586: PUSH1 0x00 00001588: REVERT 00001589: JUMPDEST 0000158a: POP 0000158b: POP 0000158c: POP 0000158d: POP 0000158e: PUSH1 0x40 00001590: MLOAD 00001591: RETURNDATASIZE 00001592: PUSH1 0x1f 00001594: NOT 00001595: PUSH1 0x1f 00001597: DUP3 00001598: ADD 00001599: AND 0000159a: DUP3 0000159b: ADD 0000159c: DUP1 0000159d: PUSH1 0x40 0000159f: MSTORE 000015a0: POP 000015a1: DUP2 000015a2: ADD 000015a3: SWAP1 000015a4: PUSH2 0x15ad 000015a7: SWAP2 000015a8: SWAP1 000015a9: PUSH2 0x3752 000015ac: JUMP 000015ad: JUMPDEST 000015ae: PUSH1 0x01 000015b0: PUSH1 0x01 000015b2: PUSH1 0xe0 000015b4: SHL 000015b5: SUB 000015b6: NOT 000015b7: AND 000015b8: PUSH4 0x0b135d3f 000015bd: PUSH1 0xe1 000015bf: SHL 000015c0: EQ 000015c1: SWAP7 000015c2: POP 000015c3: PUSH2 0x1612 000015c6: SWAP6 000015c7: POP 000015c8: POP 000015c9: POP 000015ca: POP 000015cb: POP 000015cc: POP 000015cd: JUMP 000015ce: JUMPDEST 000015cf: PUSH1 0x06 000015d1: DUP6 000015d2: PUSH1 0x07 000015d4: DUP2 000015d5: GT 000015d6: ISZERO 000015d7: PUSH2 0x15dc 000015da: JUMPI 000015db: INVALID 000015dc: JUMPDEST 000015dd: EQ 000015de: ISZERO 000015df: PUSH2 0x15fa 000015e2: JUMPI 000015e3: PUSH2 0x15ed 000015e6: DUP11 000015e7: DUP13 000015e8: DUP11 000015e9: PUSH2 0x253e 000015ec: JUMP 000015ed: JUMPDEST 000015ee: SWAP7 000015ef: POP 000015f0: POP 000015f1: POP 000015f2: POP 000015f3: POP 000015f4: POP 000015f5: POP 000015f6: PUSH2 0x1612 000015f9: JUMP 000015fa: JUMPDEST 000015fb: PUSH1 0x40 000015fd: MLOAD 000015fe: PUSH3 0x461bcd 00001602: PUSH1 0xe5 00001604: SHL 00001605: DUP2 00001606: MSTORE 00001607: PUSH1 0x04 00001609: ADD 0000160a: PUSH2 0x0435 0000160d: SWAP1 0000160e: PUSH2 0x45be 00001611: JUMP 00001612: JUMPDEST 00001613: SWAP5 00001614: SWAP4 00001615: POP 00001616: POP 00001617: POP 00001618: POP 00001619: JUMP 0000161a: JUMPDEST 0000161b: PUSH1 0x40 0000161d: MLOAD 0000161e: DUP1 0000161f: PUSH1 0x40 00001621: ADD 00001622: PUSH1 0x40 00001624: MSTORE 00001625: DUP1 00001626: PUSH1 0x08 00001628: DUP2 00001629: MSTORE 0000162a: PUSH1 0x20 0000162c: ADD 0000162d: PUSH32 0x546f6b656e6c6f6e000000000000000000000000000000000000000000000000 0000164e: DUP2 0000164f: MSTORE 00001650: POP 00001651: DUP2 00001652: JUMP 00001653: JUMPDEST 00001654: PUSH1 0x00 00001656: PUSH1 0x01 00001658: PUSH1 0x01 0000165a: PUSH1 0xa0 0000165c: SHL 0000165d: SUB 0000165e: DUP3 0000165f: AND 00001660: PUSH20 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 00001675: EQ 00001676: DUP1 00001677: PUSH2 0x169c 0000167a: JUMPI 0000167b: POP 0000167c: PUSH1 0x01 0000167e: PUSH1 0x01 00001680: PUSH1 0xa0 00001682: SHL 00001683: SUB 00001684: DUP3 00001685: AND 00001686: PUSH20 0xe592427a0aece92de3edee1f18e0157c05861564 0000169b: EQ 0000169c: JUMPDEST 0000169d: DUP1 0000169e: PUSH2 0x16c3 000016a1: JUMPI 000016a2: POP 000016a3: PUSH1 0x01 000016a5: PUSH1 0x01 000016a7: PUSH1 0xa0 000016a9: SHL 000016aa: SUB 000016ab: DUP3 000016ac: AND 000016ad: PUSH20 0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f 000016c2: EQ 000016c3: JUMPDEST 000016c4: ISZERO 000016c5: PUSH2 0x16d0 000016c8: JUMPI 000016c9: POP 000016ca: PUSH1 0x00 000016cc: PUSH2 0x16d4 000016cf: JUMP 000016d0: JUMPDEST 000016d1: POP 000016d2: PUSH1 0x01 000016d4: JUMPDEST 000016d5: SWAP2 000016d6: SWAP1 000016d7: POP 000016d8: JUMP 000016d9: JUMPDEST 000016da: PUSH1 0x00 000016dc: PUSH1 0x40 000016de: MLOAD 000016df: PUSH1 0x20 000016e1: ADD 000016e2: PUSH2 0x16ea 000016e5: SWAP1 000016e6: PUSH2 0x3a95 000016e9: JUMP 000016ea: JUMPDEST 000016eb: PUSH1 0x40 000016ed: MLOAD 000016ee: PUSH1 0x20 000016f0: DUP2 000016f1: DUP4 000016f2: SUB 000016f3: SUB 000016f4: DUP2 000016f5: MSTORE 000016f6: SWAP1 000016f7: PUSH1 0x40 000016f9: MSTORE 000016fa: DUP1 000016fb: MLOAD 000016fc: SWAP1 000016fd: PUSH1 0x20 000016ff: ADD 00001700: KECCAK256 00001701: DUP5 00001702: PUSH1 0x00 00001704: ADD 00001705: MLOAD 00001706: DUP6 00001707: PUSH1 0x20 00001709: ADD 0000170a: MLOAD 0000170b: DUP7 0000170c: PUSH1 0x40 0000170e: ADD 0000170f: MLOAD 00001710: DUP8 00001711: PUSH1 0x60 00001713: ADD 00001714: MLOAD 00001715: DUP9 00001716: PUSH1 0x80 00001718: ADD 00001719: MLOAD 0000171a: DUP10 0000171b: PUSH1 0xa0 0000171d: ADD 0000171e: MLOAD 0000171f: DUP11 00001720: PUSH1 0xc0 00001722: ADD 00001723: MLOAD 00001724: DUP12 00001725: PUSH1 0xe0 00001727: ADD 00001728: MLOAD 00001729: DUP13 0000172a: PUSH2 0x0100 0000172d: ADD 0000172e: MLOAD 0000172f: PUSH1 0x40 00001731: MLOAD 00001732: PUSH1 0x20 00001734: ADD 00001735: PUSH2 0x1747 00001738: SWAP11 00001739: SWAP10 0000173a: SWAP9 0000173b: SWAP8 0000173c: SWAP7 0000173d: SWAP6 0000173e: SWAP5 0000173f: SWAP4 00001740: SWAP3 00001741: SWAP2 00001742: SWAP1 00001743: PUSH2 0x3d0d 00001746: JUMP 00001747: JUMPDEST 00001748: PUSH1 0x40 0000174a: MLOAD 0000174b: PUSH1 0x20 0000174d: DUP2 0000174e: DUP4 0000174f: SUB 00001750: SUB 00001751: DUP2 00001752: MSTORE 00001753: SWAP1 00001754: PUSH1 0x40 00001756: MSTORE 00001757: DUP1 00001758: MLOAD 00001759: SWAP1 0000175a: PUSH1 0x20 0000175c: ADD 0000175d: KECCAK256 0000175e: SWAP1 0000175f: POP 00001760: PUSH1 0x00 00001762: PUSH1 0x40 00001764: MLOAD 00001765: DUP1 00001766: PUSH1 0x40 00001768: ADD 00001769: PUSH1 0x40 0000176b: MSTORE 0000176c: DUP1 0000176d: PUSH1 0x02 0000176f: DUP2 00001770: MSTORE 00001771: PUSH1 0x20 00001773: ADD 00001774: PUSH2 0x1901 00001777: PUSH1 0xf0 00001779: SHL 0000177a: DUP2 0000177b: MSTORE 0000177c: POP 0000177d: PUSH32 0x2398e52ffc413ba4f582150da8278d5b2386c55f513d50e900e11bff0ea59c7c 0000179e: DUP4 0000179f: PUSH1 0x40 000017a1: MLOAD 000017a2: PUSH1 0x20 000017a4: ADD 000017a5: PUSH2 0x17b0 000017a8: SWAP4 000017a9: SWAP3 000017aa: SWAP2 000017ab: SWAP1 000017ac: PUSH2 0x3a6e 000017af: JUMP 000017b0: JUMPDEST 000017b1: PUSH1 0x40 000017b3: MLOAD 000017b4: PUSH1 0x20 000017b6: DUP2 000017b7: DUP4 000017b8: SUB 000017b9: SUB 000017ba: DUP2 000017bb: MSTORE 000017bc: SWAP1 000017bd: PUSH1 0x40 000017bf: MSTORE 000017c0: DUP1 000017c1: MLOAD 000017c2: SWAP1 000017c3: PUSH1 0x20 000017c5: ADD 000017c6: KECCAK256 000017c7: SWAP1 000017c8: POP 000017c9: PUSH2 0x181d 000017cc: DUP6 000017cd: PUSH1 0xa0 000017cf: ADD 000017d0: MLOAD 000017d1: DUP3 000017d2: PUSH1 0x40 000017d4: MLOAD 000017d5: DUP1 000017d6: PUSH1 0x20 000017d8: ADD 000017d9: PUSH1 0x40 000017db: MSTORE 000017dc: DUP1 000017dd: PUSH1 0x00 000017df: DUP2 000017e0: MSTORE 000017e1: POP 000017e2: DUP8 000017e3: DUP8 000017e4: DUP1 000017e5: DUP1 000017e6: PUSH1 0x1f 000017e8: ADD 000017e9: PUSH1 0x20 000017eb: DUP1 000017ec: SWAP2 000017ed: DIV 000017ee: MUL 000017ef: PUSH1 0x20 000017f1: ADD 000017f2: PUSH1 0x40 000017f4: MLOAD 000017f5: SWAP1 000017f6: DUP2 000017f7: ADD 000017f8: PUSH1 0x40 000017fa: MSTORE 000017fb: DUP1 000017fc: SWAP4 000017fd: SWAP3 000017fe: SWAP2 000017ff: SWAP1 00001800: DUP2 00001801: DUP2 00001802: MSTORE 00001803: PUSH1 0x20 00001805: ADD 00001806: DUP4 00001807: DUP4 00001808: DUP1 00001809: DUP3 0000180a: DUP5 0000180b: CALLDATACOPY 0000180c: PUSH1 0x00 0000180e: SWAP3 0000180f: ADD 00001810: SWAP2 00001811: SWAP1 00001812: SWAP2 00001813: MSTORE 00001814: POP 00001815: PUSH2 0x1220 00001818: SWAP3 00001819: POP 0000181a: POP 0000181b: POP 0000181c: JUMP 0000181d: JUMPDEST 0000181e: PUSH2 0x1839 00001821: JUMPI 00001822: PUSH1 0x40 00001824: MLOAD 00001825: PUSH3 0x461bcd 00001829: PUSH1 0xe5 0000182b: SHL 0000182c: DUP2 0000182d: MSTORE 0000182e: PUSH1 0x04 00001830: ADD 00001831: PUSH2 0x0435 00001834: SWAP1 00001835: PUSH2 0x4413 00001838: JUMP 00001839: JUMPDEST 0000183a: PUSH1 0x40 0000183c: MLOAD 0000183d: PUSH32 0x36ef425100000000000000000000000000000000000000000000000000000000 0000185e: DUP2 0000185f: MSTORE 00001860: PUSH1 0x01 00001862: PUSH1 0x01 00001864: PUSH1 0xa0 00001866: SHL 00001867: SUB 00001868: PUSH32 0x0000000000000000000000006d9cc14a1d36e6ff13fc6efa9e9326fcd12e7903 00001889: AND 0000188a: SWAP1 0000188b: PUSH4 0x36ef4251 00001890: SWAP1 00001891: PUSH2 0x189e 00001894: SWAP1 00001895: DUP6 00001896: SWAP1 00001897: PUSH1 0x04 00001899: ADD 0000189a: PUSH2 0x3d04 0000189d: JUMP 0000189e: JUMPDEST 0000189f: PUSH1 0x00 000018a1: PUSH1 0x40 000018a3: MLOAD 000018a4: DUP1 000018a5: DUP4 000018a6: SUB 000018a7: DUP2 000018a8: PUSH1 0x00 000018aa: DUP8 000018ab: DUP1 000018ac: EXTCODESIZE 000018ad: ISZERO 000018ae: DUP1 000018af: ISZERO 000018b0: PUSH2 0x18b8 000018b3: JUMPI 000018b4: PUSH1 0x00 000018b6: DUP1 000018b7: REVERT 000018b8: JUMPDEST 000018b9: POP 000018ba: GAS 000018bb: CALL 000018bc: ISZERO 000018bd: DUP1 000018be: ISZERO 000018bf: PUSH2 0x18cc 000018c2: JUMPI 000018c3: RETURNDATASIZE 000018c4: PUSH1 0x00 000018c6: DUP1 000018c7: RETURNDATACOPY 000018c8: RETURNDATASIZE 000018c9: PUSH1 0x00 000018cb: REVERT 000018cc: JUMPDEST 000018cd: POP 000018ce: POP 000018cf: POP 000018d0: POP 000018d1: POP 000018d2: SWAP4 000018d3: SWAP3 000018d4: POP 000018d5: POP 000018d6: POP 000018d7: JUMP 000018d8: JUMPDEST 000018d9: DUP1 000018da: MLOAD 000018db: ISZERO 000018dc: PUSH2 0x19ad 000018df: JUMPI 000018e0: PUSH1 0x00 000018e2: CALLVALUE 000018e3: GT 000018e4: PUSH2 0x18ff 000018e7: JUMPI 000018e8: PUSH1 0x40 000018ea: MLOAD 000018eb: PUSH3 0x461bcd 000018ef: PUSH1 0xe5 000018f1: SHL 000018f2: DUP2 000018f3: MSTORE 000018f4: PUSH1 0x04 000018f6: ADD 000018f7: PUSH2 0x0435 000018fa: SWAP1 000018fb: PUSH2 0x4982 000018fe: JUMP 000018ff: JUMPDEST 00001900: CALLVALUE 00001901: DUP3 00001902: PUSH1 0x60 00001904: ADD 00001905: MLOAD 00001906: EQ 00001907: PUSH2 0x1922 0000190a: JUMPI 0000190b: PUSH1 0x40 0000190d: MLOAD 0000190e: PUSH3 0x461bcd 00001912: PUSH1 0xe5 00001914: SHL 00001915: DUP2 00001916: MSTORE 00001917: PUSH1 0x04 00001919: ADD 0000191a: PUSH2 0x0435 0000191d: SWAP1 0000191e: PUSH2 0x43b6 00001921: JUMP 00001922: JUMPDEST 00001923: PUSH2 0x192f 00001926: DUP2 00001927: PUSH1 0x40 00001929: ADD 0000192a: MLOAD 0000192b: PUSH2 0x26a6 0000192e: JUMP 0000192f: JUMPDEST 00001930: PUSH2 0x19a8 00001933: JUMPI 00001934: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001955: PUSH1 0x01 00001957: PUSH1 0x01 00001959: PUSH1 0xa0 0000195b: SHL 0000195c: SUB 0000195d: AND 0000195e: PUSH4 0xd0e30db0 00001963: CALLVALUE 00001964: PUSH1 0x40 00001966: MLOAD 00001967: DUP3 00001968: PUSH4 0xffffffff 0000196d: AND 0000196e: PUSH1 0xe0 00001970: SHL 00001971: DUP2 00001972: MSTORE 00001973: PUSH1 0x04 00001975: ADD 00001976: PUSH1 0x00 00001978: PUSH1 0x40 0000197a: MLOAD 0000197b: DUP1 0000197c: DUP4 0000197d: SUB 0000197e: DUP2 0000197f: DUP6 00001980: DUP9 00001981: DUP1 00001982: EXTCODESIZE 00001983: ISZERO 00001984: DUP1 00001985: ISZERO 00001986: PUSH2 0x198e 00001989: JUMPI 0000198a: PUSH1 0x00 0000198c: DUP1 0000198d: REVERT 0000198e: JUMPDEST 0000198f: POP 00001990: GAS 00001991: CALL 00001992: ISZERO 00001993: DUP1 00001994: ISZERO 00001995: PUSH2 0x19a2 00001998: JUMPI 00001999: RETURNDATASIZE 0000199a: PUSH1 0x00 0000199c: DUP1 0000199d: RETURNDATACOPY 0000199e: RETURNDATASIZE 0000199f: PUSH1 0x00 000019a1: REVERT 000019a2: JUMPDEST 000019a3: POP 000019a4: POP 000019a5: POP 000019a6: POP 000019a7: POP 000019a8: JUMPDEST 000019a9: PUSH2 0x1a3a 000019ac: JUMP 000019ad: JUMPDEST 000019ae: PUSH1 0x03 000019b0: SLOAD 000019b1: PUSH1 0xa0 000019b3: DUP4 000019b4: ADD 000019b5: MLOAD 000019b6: PUSH1 0x20 000019b8: DUP5 000019b9: ADD 000019ba: MLOAD 000019bb: PUSH1 0x60 000019bd: DUP6 000019be: ADD 000019bf: MLOAD 000019c0: PUSH1 0x40 000019c2: MLOAD 000019c3: PUSH32 0x3474ad1a00000000000000000000000000000000000000000000000000000000 000019e4: DUP2 000019e5: MSTORE 000019e6: PUSH1 0x01 000019e8: PUSH1 0x01 000019ea: PUSH1 0xa0 000019ec: SHL 000019ed: SUB 000019ee: SWAP1 000019ef: SWAP5 000019f0: AND 000019f1: SWAP4 000019f2: PUSH4 0x3474ad1a 000019f7: SWAP4 000019f8: PUSH2 0x1a07 000019fb: SWAP4 000019fc: SWAP1 000019fd: SWAP3 000019fe: SWAP1 000019ff: SWAP2 00001a00: PUSH1 0x04 00001a02: ADD 00001a03: PUSH2 0x3cbc 00001a06: JUMP 00001a07: JUMPDEST 00001a08: PUSH1 0x00 00001a0a: PUSH1 0x40 00001a0c: MLOAD 00001a0d: DUP1 00001a0e: DUP4 00001a0f: SUB 00001a10: DUP2 00001a11: PUSH1 0x00 00001a13: DUP8 00001a14: DUP1 00001a15: EXTCODESIZE 00001a16: ISZERO 00001a17: DUP1 00001a18: ISZERO 00001a19: PUSH2 0x1a21 00001a1c: JUMPI 00001a1d: PUSH1 0x00 00001a1f: DUP1 00001a20: REVERT 00001a21: JUMPDEST 00001a22: POP 00001a23: GAS 00001a24: CALL 00001a25: ISZERO 00001a26: DUP1 00001a27: ISZERO 00001a28: PUSH2 0x1a35 00001a2b: JUMPI 00001a2c: RETURNDATASIZE 00001a2d: PUSH1 0x00 00001a2f: DUP1 00001a30: RETURNDATACOPY 00001a31: RETURNDATASIZE 00001a32: PUSH1 0x00 00001a34: REVERT 00001a35: JUMPDEST 00001a36: POP 00001a37: POP 00001a38: POP 00001a39: POP 00001a3a: JUMPDEST 00001a3b: POP 00001a3c: POP 00001a3d: JUMP 00001a3e: JUMPDEST 00001a3f: PUSH1 0x60 00001a41: PUSH1 0x00 00001a43: DUP3 00001a44: PUSH1 0x40 00001a46: ADD 00001a47: MLOAD 00001a48: DUP6 00001a49: PUSH1 0x00 00001a4b: ADD 00001a4c: MLOAD 00001a4d: PUSH1 0x00 00001a4f: PUSH2 0x1a57 00001a52: DUP4 00001a53: PUSH2 0x26a6 00001a56: JUMP 00001a57: JUMPDEST 00001a58: SWAP1 00001a59: POP 00001a5a: DUP1 00001a5b: PUSH2 0x1a74 00001a5e: JUMPI 00001a5f: PUSH2 0x1a74 00001a62: PUSH1 0x01 00001a64: PUSH1 0x01 00001a66: PUSH1 0xa0 00001a68: SHL 00001a69: SUB 00001a6a: DUP5 00001a6b: AND 00001a6c: DUP4 00001a6d: PUSH1 0x00 00001a6f: NOT 00001a70: PUSH2 0x21a3 00001a73: JUMP 00001a74: JUMPDEST 00001a75: PUSH1 0x00 00001a77: PUSH2 0x1aad 00001a7a: PUSH2 0x2710 00001a7d: PUSH2 0x1aa7 00001a80: PUSH2 0x1a9c 00001a83: DUP12 00001a84: PUSH1 0xa0 00001a86: ADD 00001a87: MLOAD 00001a88: PUSH2 0xffff 00001a8b: AND 00001a8c: PUSH2 0x2710 00001a8f: PUSH2 0x26ef 00001a92: SWAP1 00001a93: SWAP2 00001a94: SWAP1 00001a95: PUSH4 0xffffffff 00001a9a: AND 00001a9b: JUMP 00001a9c: JUMPDEST 00001a9d: PUSH1 0x80 00001a9f: DUP14 00001aa0: ADD 00001aa1: MLOAD 00001aa2: SWAP1 00001aa3: PUSH2 0x2717 00001aa6: JUMP 00001aa7: JUMPDEST 00001aa8: SWAP1 00001aa9: PUSH2 0x2751 00001aac: JUMP 00001aad: JUMPDEST 00001aae: DUP10 00001aaf: MLOAD 00001ab0: SWAP1 00001ab1: SWAP2 00001ab2: POP 00001ab3: PUSH1 0x01 00001ab5: PUSH1 0x01 00001ab7: PUSH1 0xa0 00001ab9: SHL 00001aba: SUB 00001abb: AND 00001abc: PUSH20 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 00001ad1: EQ 00001ad2: DUP1 00001ad3: PUSH2 0x1af9 00001ad6: JUMPI 00001ad7: POP 00001ad8: DUP9 00001ad9: MLOAD 00001ada: PUSH1 0x01 00001adc: PUSH1 0x01 00001ade: PUSH1 0xa0 00001ae0: SHL 00001ae1: SUB 00001ae2: AND 00001ae3: PUSH20 0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f 00001af8: EQ 00001af9: JUMPDEST 00001afa: ISZERO 00001afb: PUSH2 0x1b9a 00001afe: JUMPI 00001aff: DUP9 00001b00: MLOAD 00001b01: PUSH1 0x01 00001b03: PUSH1 0x01 00001b05: PUSH1 0xa0 00001b07: SHL 00001b08: SUB 00001b09: AND 00001b0a: PUSH20 0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f 00001b1f: EQ 00001b20: PUSH2 0x1b4b 00001b23: JUMPI 00001b24: PUSH1 0x40 00001b26: MLOAD 00001b27: DUP1 00001b28: PUSH1 0x40 00001b2a: ADD 00001b2b: PUSH1 0x40 00001b2d: MSTORE 00001b2e: DUP1 00001b2f: PUSH1 0x0a 00001b31: DUP2 00001b32: MSTORE 00001b33: PUSH1 0x20 00001b35: ADD 00001b36: PUSH10 0x2ab734b9bbb0b8102b19 00001b41: PUSH1 0xb1 00001b43: SHL 00001b44: DUP2 00001b45: MSTORE 00001b46: POP 00001b47: PUSH2 0x1b6e 00001b4a: JUMP 00001b4b: JUMPDEST 00001b4c: PUSH1 0x40 00001b4e: MLOAD 00001b4f: DUP1 00001b50: PUSH1 0x40 00001b52: ADD 00001b53: PUSH1 0x40 00001b55: MSTORE 00001b56: DUP1 00001b57: PUSH1 0x09 00001b59: DUP2 00001b5a: MSTORE 00001b5b: PUSH1 0x20 00001b5d: ADD 00001b5e: PUSH9 0x053757368695377617 00001b68: PUSH1 0xbc 00001b6a: SHL 00001b6b: DUP2 00001b6c: MSTORE 00001b6d: POP 00001b6e: JUMPDEST 00001b6f: SWAP6 00001b70: POP 00001b71: PUSH2 0x1b93 00001b74: DUP10 00001b75: PUSH1 0x00 00001b77: ADD 00001b78: MLOAD 00001b79: DUP9 00001b7a: PUSH1 0x40 00001b7c: ADD 00001b7d: MLOAD 00001b7e: DUP10 00001b7f: PUSH1 0x60 00001b81: ADD 00001b82: MLOAD 00001b83: DUP13 00001b84: PUSH1 0x60 00001b86: ADD 00001b87: MLOAD 00001b88: DUP6 00001b89: DUP15 00001b8a: PUSH2 0x0100 00001b8d: ADD 00001b8e: MLOAD 00001b8f: PUSH2 0x2783 00001b92: JUMP 00001b93: JUMPDEST 00001b94: SWAP5 00001b95: POP 00001b96: PUSH2 0x1d8c 00001b99: JUMP 00001b9a: JUMPDEST 00001b9b: PUSH2 0x1ba2 00001b9e: PUSH2 0x335d 00001ba1: JUMP 00001ba2: JUMPDEST 00001ba3: DUP10 00001ba4: MLOAD 00001ba5: PUSH1 0x40 00001ba7: DUP1 00001ba8: DUP11 00001ba9: ADD 00001baa: MLOAD 00001bab: PUSH1 0x60 00001bad: DUP12 00001bae: ADD 00001baf: MLOAD 00001bb0: SWAP2 00001bb1: MLOAD 00001bb2: PUSH32 0x8ab4a8cc00000000000000000000000000000000000000000000000000000000 00001bd3: DUP2 00001bd4: MSTORE 00001bd5: PUSH1 0x01 00001bd7: PUSH1 0x01 00001bd9: PUSH1 0xa0 00001bdb: SHL 00001bdc: SUB 00001bdd: PUSH32 0x0000000000000000000000006d9cc14a1d36e6ff13fc6efa9e9326fcd12e7903 00001bfe: AND 00001bff: SWAP4 00001c00: PUSH4 0x8ab4a8cc 00001c05: SWAP4 00001c06: PUSH2 0x1c13 00001c09: SWAP4 00001c0a: SWAP2 00001c0b: SWAP3 00001c0c: PUSH1 0x04 00001c0e: ADD 00001c0f: PUSH2 0x3c99 00001c12: JUMP 00001c13: JUMPDEST 00001c14: PUSH1 0x80 00001c16: PUSH1 0x40 00001c18: MLOAD 00001c19: DUP1 00001c1a: DUP4 00001c1b: SUB 00001c1c: DUP2 00001c1d: DUP7 00001c1e: DUP1 00001c1f: EXTCODESIZE 00001c20: ISZERO 00001c21: DUP1 00001c22: ISZERO 00001c23: PUSH2 0x1c2b 00001c26: JUMPI 00001c27: PUSH1 0x00 00001c29: DUP1 00001c2a: REVERT 00001c2b: JUMPDEST 00001c2c: POP 00001c2d: GAS 00001c2e: STATICCALL 00001c2f: ISZERO 00001c30: DUP1 00001c31: ISZERO 00001c32: PUSH2 0x1c3f 00001c35: JUMPI 00001c36: RETURNDATASIZE 00001c37: PUSH1 0x00 00001c39: DUP1 00001c3a: RETURNDATACOPY 00001c3b: RETURNDATASIZE 00001c3c: PUSH1 0x00 00001c3e: REVERT 00001c3f: JUMPDEST 00001c40: POP 00001c41: POP 00001c42: POP 00001c43: POP 00001c44: PUSH1 0x40 00001c46: MLOAD 00001c47: RETURNDATASIZE 00001c48: PUSH1 0x1f 00001c4a: NOT 00001c4b: PUSH1 0x1f 00001c4d: DUP3 00001c4e: ADD 00001c4f: AND 00001c50: DUP3 00001c51: ADD 00001c52: DUP1 00001c53: PUSH1 0x40 00001c55: MSTORE 00001c56: POP 00001c57: DUP2 00001c58: ADD 00001c59: SWAP1 00001c5a: PUSH2 0x1c63 00001c5d: SWAP2 00001c5e: SWAP1 00001c5f: PUSH2 0x377a 00001c62: JUMP 00001c63: JUMPDEST 00001c64: POP 00001c65: PUSH2 0xffff 00001c68: AND 00001c69: PUSH1 0x40 00001c6b: DUP5 00001c6c: ADD 00001c6d: DUP2 00001c6e: SWAP1 00001c6f: MSTORE 00001c70: PUSH1 0x0f 00001c72: SWAP2 00001c73: DUP3 00001c74: SIGNEXTEND 00001c75: DUP3 00001c76: SIGNEXTEND 00001c77: PUSH1 0x20 00001c79: DUP6 00001c7a: ADD 00001c7b: MSTORE 00001c7c: SWAP2 00001c7d: DUP2 00001c7e: SIGNEXTEND 00001c7f: SWAP1 00001c80: SIGNEXTEND 00001c81: DUP3 00001c82: MSTORE 00001c83: PUSH2 0x1c9e 00001c86: JUMPI 00001c87: PUSH1 0x40 00001c89: MLOAD 00001c8a: PUSH3 0x461bcd 00001c8e: PUSH1 0xe5 00001c90: SHL 00001c91: DUP2 00001c92: MSTORE 00001c93: PUSH1 0x04 00001c95: ADD 00001c96: PUSH2 0x0435 00001c99: SWAP1 00001c9a: PUSH2 0x40ac 00001c9d: JUMP 00001c9e: JUMPDEST 00001c9f: PUSH1 0x00 00001ca1: DUP2 00001ca2: PUSH1 0x00 00001ca4: ADD 00001ca5: MLOAD 00001ca6: PUSH1 0x0f 00001ca8: SIGNEXTEND 00001ca9: SGT 00001caa: DUP1 00001cab: ISZERO 00001cac: PUSH2 0x1cbc 00001caf: JUMPI 00001cb0: POP 00001cb1: PUSH1 0x00 00001cb3: DUP2 00001cb4: PUSH1 0x20 00001cb6: ADD 00001cb7: MLOAD 00001cb8: PUSH1 0x0f 00001cba: SIGNEXTEND 00001cbb: SGT 00001cbc: JUMPDEST 00001cbd: ISZERO 00001cbe: PUSH2 0x1d72 00001cc1: JUMPI 00001cc2: PUSH1 0x40 00001cc4: DUP1 00001cc5: MLOAD 00001cc6: DUP1 00001cc7: DUP3 00001cc8: ADD 00001cc9: SWAP1 00001cca: SWAP2 00001ccb: MSTORE 00001ccc: PUSH1 0x05 00001cce: DUP2 00001ccf: MSTORE 00001cd0: PUSH32 0x4375727665000000000000000000000000000000000000000000000000000000 00001cf1: PUSH1 0x20 00001cf3: DUP1 00001cf4: DUP4 00001cf5: ADD 00001cf6: SWAP2 00001cf7: SWAP1 00001cf8: SWAP2 00001cf9: MSTORE 00001cfa: DUP3 00001cfb: MLOAD 00001cfc: PUSH1 0x00 00001cfe: NOT 00001cff: SWAP1 00001d00: DUP2 00001d01: ADD 00001d02: PUSH1 0x0f 00001d04: SWAP1 00001d05: DUP2 00001d06: SIGNEXTEND 00001d07: DUP2 00001d08: SIGNEXTEND 00001d09: DUP6 00001d0a: MSTORE 00001d0b: SWAP2 00001d0c: DUP5 00001d0d: ADD 00001d0e: DUP1 00001d0f: MLOAD 00001d10: SWAP1 00001d11: SWAP2 00001d12: ADD 00001d13: DUP3 00001d14: SIGNEXTEND 00001d15: SWAP1 00001d16: SWAP2 00001d17: SIGNEXTEND 00001d18: SWAP1 00001d19: MSTORE 00001d1a: PUSH1 0x60 00001d1c: DUP10 00001d1d: ADD 00001d1e: MLOAD 00001d1f: SWAP1 00001d20: SWAP8 00001d21: POP 00001d22: PUSH1 0x00 00001d24: SWAP1 00001d25: PUSH2 0x1d2d 00001d28: SWAP1 00001d29: PUSH2 0x28a7 00001d2c: JUMP 00001d2d: JUMPDEST 00001d2e: DUP12 00001d2f: MLOAD 00001d30: DUP4 00001d31: MLOAD 00001d32: PUSH1 0x20 00001d34: DUP6 00001d35: ADD 00001d36: MLOAD 00001d37: PUSH1 0x60 00001d39: DUP16 00001d3a: ADD 00001d3b: MLOAD 00001d3c: PUSH1 0x40 00001d3e: DUP8 00001d3f: ADD 00001d40: MLOAD 00001d41: SWAP5 00001d42: SWAP6 00001d43: POP 00001d44: PUSH2 0x1d4e 00001d47: SWAP5 00001d48: DUP9 00001d49: SWAP1 00001d4a: PUSH2 0x2941 00001d4d: JUMP 00001d4e: JUMPDEST 00001d4f: PUSH1 0x00 00001d51: PUSH2 0x1d5d 00001d54: DUP11 00001d55: PUSH1 0x60 00001d57: ADD 00001d58: MLOAD 00001d59: PUSH2 0x28a7 00001d5c: JUMP 00001d5d: JUMPDEST 00001d5e: SWAP1 00001d5f: POP 00001d60: PUSH2 0x1d69 00001d63: DUP2 00001d64: DUP4 00001d65: PUSH2 0x26ef 00001d68: JUMP 00001d69: JUMPDEST 00001d6a: SWAP8 00001d6b: POP 00001d6c: POP 00001d6d: POP 00001d6e: PUSH2 0x1d8a 00001d71: JUMP 00001d72: JUMPDEST 00001d73: PUSH1 0x40 00001d75: MLOAD 00001d76: PUSH3 0x461bcd 00001d7a: PUSH1 0xe5 00001d7c: SHL 00001d7d: DUP2 00001d7e: MSTORE 00001d7f: PUSH1 0x04 00001d81: ADD 00001d82: PUSH2 0x0435 00001d85: SWAP1 00001d86: PUSH2 0x486b 00001d89: JUMP 00001d8a: JUMPDEST 00001d8b: POP 00001d8c: JUMPDEST 00001d8d: POP 00001d8e: DUP1 00001d8f: PUSH2 0x1da7 00001d92: JUMPI 00001d93: PUSH2 0x1da7 00001d96: PUSH1 0x01 00001d98: PUSH1 0x01 00001d9a: PUSH1 0xa0 00001d9c: SHL 00001d9d: SUB 00001d9e: DUP5 00001d9f: AND 00001da0: DUP4 00001da1: PUSH1 0x00 00001da3: PUSH2 0x21a3 00001da6: JUMP 00001da7: JUMPDEST 00001da8: POP 00001da9: POP 00001daa: POP 00001dab: SWAP4 00001dac: POP 00001dad: SWAP4 00001dae: SWAP2 00001daf: POP 00001db0: POP 00001db1: JUMP 00001db2: JUMPDEST 00001db3: PUSH1 0x80 00001db5: DUP1 00001db6: DUP4 00001db7: ADD 00001db8: MLOAD 00001db9: PUSH1 0xa0 00001dbb: DUP5 00001dbc: ADD 00001dbd: MLOAD 00001dbe: SWAP2 00001dbf: DUP6 00001dc0: ADD 00001dc1: MLOAD 00001dc2: PUSH1 0x60 00001dc4: DUP6 00001dc5: ADD 00001dc6: MLOAD 00001dc7: PUSH1 0x00 00001dc9: SWAP4 00001dca: PUSH2 0xffff 00001dcd: SWAP4 00001dce: DUP5 00001dcf: AND 00001dd0: SWAP4 00001dd1: AND 00001dd2: SWAP2 00001dd3: EQ 00001dd4: ISZERO 00001dd5: PUSH2 0x1de4 00001dd8: JUMPI 00001dd9: DUP5 00001dda: PUSH1 0x60 00001ddc: ADD 00001ddd: MLOAD 00001dde: SWAP3 00001ddf: POP 00001de0: PUSH2 0x2097 00001de3: JUMP 00001de4: JUMPDEST 00001de5: DUP6 00001de6: PUSH1 0x80 00001de8: ADD 00001de9: MLOAD 00001dea: DUP6 00001deb: PUSH1 0x60 00001ded: ADD 00001dee: MLOAD 00001def: GT 00001df0: ISZERO 00001df1: PUSH2 0x1e70 00001df4: JUMPI 00001df5: PUSH1 0x00 00001df7: PUSH2 0x1e0d 00001dfa: DUP7 00001dfb: PUSH1 0x60 00001dfd: ADD 00001dfe: MLOAD 00001dff: DUP5 00001e00: PUSH2 0x2717 00001e03: SWAP1 00001e04: SWAP2 00001e05: SWAP1 00001e06: PUSH4 0xffffffff 00001e0b: AND 00001e0c: JUMP 00001e0d: JUMPDEST 00001e0e: PUSH2 0x1e34 00001e11: PUSH2 0x2710 00001e14: PUSH2 0x1e2e 00001e17: DUP11 00001e18: PUSH1 0x80 00001e1a: ADD 00001e1b: MLOAD 00001e1c: DUP11 00001e1d: PUSH1 0x60 00001e1f: ADD 00001e20: MLOAD 00001e21: PUSH2 0x26ef 00001e24: SWAP1 00001e25: SWAP2 00001e26: SWAP1 00001e27: PUSH4 0xffffffff 00001e2c: AND 00001e2d: JUMP 00001e2e: JUMPDEST 00001e2f: SWAP1 00001e30: PUSH2 0x2717 00001e33: JUMP 00001e34: JUMPDEST 00001e35: GT 00001e36: SWAP1 00001e37: POP 00001e38: DUP1 00001e39: ISZERO 00001e3a: PUSH2 0x1e62 00001e3d: JUMPI 00001e3e: PUSH2 0x1e5b 00001e41: PUSH2 0x2710 00001e44: PUSH2 0x1aa7 00001e47: PUSH2 0x1e50 00001e4a: DUP3 00001e4b: DUP8 00001e4c: PUSH2 0x26ef 00001e4f: JUMP 00001e50: JUMPDEST 00001e51: PUSH1 0x60 00001e53: DUP11 00001e54: ADD 00001e55: MLOAD 00001e56: SWAP1 00001e57: PUSH2 0x2717 00001e5a: JUMP 00001e5b: JUMPDEST 00001e5c: SWAP4 00001e5d: POP 00001e5e: PUSH2 0x1e6a 00001e61: JUMP 00001e62: JUMPDEST 00001e63: DUP7 00001e64: PUSH1 0x80 00001e66: ADD 00001e67: MLOAD 00001e68: SWAP4 00001e69: POP 00001e6a: JUMPDEST 00001e6b: POP 00001e6c: PUSH2 0x2097 00001e6f: JUMP 00001e70: JUMPDEST 00001e71: PUSH1 0x00 00001e73: DUP2 00001e74: GT 00001e75: PUSH2 0x1e90 00001e78: JUMPI 00001e79: PUSH1 0x40 00001e7b: MLOAD 00001e7c: PUSH3 0x461bcd 00001e80: PUSH1 0xe5 00001e82: SHL 00001e83: DUP2 00001e84: MSTORE 00001e85: PUSH1 0x04 00001e87: ADD 00001e88: PUSH2 0x0435 00001e8b: SWAP1 00001e8c: PUSH2 0x3edb 00001e8f: JUMP 00001e90: JUMPDEST 00001e91: PUSH1 0x00 00001e93: DUP3 00001e94: DUP3 00001e95: LT 00001e96: PUSH2 0x1e9f 00001e99: JUMPI 00001e9a: DUP3 00001e9b: PUSH2 0x1ea1 00001e9e: JUMP 00001e9f: JUMPDEST 00001ea0: DUP2 00001ea1: JUMPDEST 00001ea2: SWAP1 00001ea3: POP 00001ea4: PUSH1 0x00 00001ea6: PUSH2 0x1ebc 00001ea9: DUP8 00001eaa: PUSH1 0x60 00001eac: ADD 00001ead: MLOAD 00001eae: DUP4 00001eaf: PUSH2 0x2717 00001eb2: SWAP1 00001eb3: SWAP2 00001eb4: SWAP1 00001eb5: PUSH4 0xffffffff 00001eba: AND 00001ebb: JUMP 00001ebc: JUMPDEST 00001ebd: PUSH2 0x1edd 00001ec0: PUSH2 0x2710 00001ec3: PUSH2 0x1e2e 00001ec6: DUP11 00001ec7: PUSH1 0x60 00001ec9: ADD 00001eca: MLOAD 00001ecb: DUP13 00001ecc: PUSH1 0x80 00001ece: ADD 00001ecf: MLOAD 00001ed0: PUSH2 0x26ef 00001ed3: SWAP1 00001ed4: SWAP2 00001ed5: SWAP1 00001ed6: PUSH4 0xffffffff 00001edb: AND 00001edc: JUMP 00001edd: JUMPDEST 00001ede: GT 00001edf: ISZERO 00001ee0: SWAP1 00001ee1: POP 00001ee2: DUP1 00001ee3: PUSH2 0x1efe 00001ee6: JUMPI 00001ee7: PUSH1 0x40 00001ee9: MLOAD 00001eea: PUSH3 0x461bcd 00001eee: PUSH1 0xe5 00001ef0: SHL 00001ef1: DUP2 00001ef2: MSTORE 00001ef3: PUSH1 0x04 00001ef5: ADD 00001ef6: PUSH2 0x0435 00001ef9: SWAP1 00001efa: PUSH2 0x3f95 00001efd: JUMP 00001efe: JUMPDEST 00001eff: PUSH1 0x00 00001f01: PUSH2 0x1f0d 00001f04: DUP8 00001f05: PUSH1 0x60 00001f07: ADD 00001f08: MLOAD 00001f09: PUSH2 0x28a7 00001f0c: JUMP 00001f0d: JUMPDEST 00001f0e: PUSH1 0x80 00001f10: DUP11 00001f11: ADD 00001f12: MLOAD 00001f13: SWAP1 00001f14: SWAP2 00001f15: POP 00001f16: DUP2 00001f17: LT 00001f18: DUP1 00001f19: ISZERO 00001f1a: SWAP1 00001f1b: DUP2 00001f1c: PUSH2 0x1f2d 00001f1f: JUMPI 00001f20: POP 00001f21: PUSH2 0x1f2d 00001f24: DUP9 00001f25: PUSH1 0x60 00001f27: ADD 00001f28: MLOAD 00001f29: PUSH2 0x26a6 00001f2c: JUMP 00001f2d: JUMPDEST 00001f2e: ISZERO 00001f2f: PUSH2 0x206e 00001f32: JUMPI 00001f33: PUSH1 0x80 00001f35: DUP11 00001f36: ADD 00001f37: MLOAD 00001f38: PUSH1 0x00 00001f3a: SWAP1 00001f3b: PUSH2 0x1f44 00001f3e: SWAP1 00001f3f: DUP5 00001f40: PUSH2 0x26ef 00001f43: JUMP 00001f44: JUMPDEST 00001f45: PUSH1 0x40 00001f47: MLOAD 00001f48: PUSH4 0x70a08231 00001f4d: PUSH1 0xe0 00001f4f: SHL 00001f50: DUP2 00001f51: MSTORE 00001f52: SWAP1 00001f53: SWAP2 00001f54: POP 00001f55: PUSH1 0x01 00001f57: PUSH1 0x01 00001f59: PUSH1 0xa0 00001f5b: SHL 00001f5c: SUB 00001f5d: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001f7e: AND 00001f7f: SWAP1 00001f80: PUSH4 0x70a08231 00001f85: SWAP1 00001f86: PUSH2 0x1f93 00001f89: SWAP1 00001f8a: ADDRESS 00001f8b: SWAP1 00001f8c: PUSH1 0x04 00001f8e: ADD 00001f8f: PUSH2 0x3c6b 00001f92: JUMP 00001f93: JUMPDEST 00001f94: PUSH1 0x20 00001f96: PUSH1 0x40 00001f98: MLOAD 00001f99: DUP1 00001f9a: DUP4 00001f9b: SUB 00001f9c: DUP2 00001f9d: DUP7 00001f9e: DUP1 00001f9f: EXTCODESIZE 00001fa0: ISZERO 00001fa1: DUP1 00001fa2: ISZERO 00001fa3: PUSH2 0x1fab 00001fa6: JUMPI 00001fa7: PUSH1 0x00 00001fa9: DUP1 00001faa: REVERT 00001fab: JUMPDEST 00001fac: POP 00001fad: GAS 00001fae: STATICCALL 00001faf: ISZERO 00001fb0: DUP1 00001fb1: ISZERO 00001fb2: PUSH2 0x1fbf 00001fb5: JUMPI 00001fb6: RETURNDATASIZE 00001fb7: PUSH1 0x00 00001fb9: DUP1 00001fba: RETURNDATACOPY 00001fbb: RETURNDATASIZE 00001fbc: PUSH1 0x00 00001fbe: REVERT 00001fbf: JUMPDEST 00001fc0: POP 00001fc1: POP 00001fc2: POP 00001fc3: POP 00001fc4: PUSH1 0x40 00001fc6: MLOAD 00001fc7: RETURNDATASIZE 00001fc8: PUSH1 0x1f 00001fca: NOT 00001fcb: PUSH1 0x1f 00001fcd: DUP3 00001fce: ADD 00001fcf: AND 00001fd0: DUP3 00001fd1: ADD 00001fd2: DUP1 00001fd3: PUSH1 0x40 00001fd5: MSTORE 00001fd6: POP 00001fd7: DUP2 00001fd8: ADD 00001fd9: SWAP1 00001fda: PUSH2 0x1fe3 00001fdd: SWAP2 00001fde: SWAP1 00001fdf: PUSH2 0x3938 00001fe2: JUMP 00001fe3: JUMPDEST 00001fe4: DUP2 00001fe5: GT 00001fe6: PUSH2 0x206c 00001fe9: JUMPI 00001fea: PUSH1 0x40 00001fec: MLOAD 00001fed: PUSH4 0x2e1a7d4d 00001ff2: PUSH1 0xe0 00001ff4: SHL 00001ff5: DUP2 00001ff6: MSTORE 00001ff7: PUSH1 0x01 00001ff9: PUSH1 0x01 00001ffb: PUSH1 0xa0 00001ffd: SHL 00001ffe: SUB 00001fff: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00002020: AND 00002021: SWAP1 00002022: PUSH4 0x2e1a7d4d 00002027: SWAP1 00002028: PUSH2 0x2035 0000202b: SWAP1 0000202c: DUP5 0000202d: SWAP1 0000202e: PUSH1 0x04 00002030: ADD 00002031: PUSH2 0x3d04 00002034: JUMP 00002035: JUMPDEST 00002036: PUSH1 0x00 00002038: PUSH1 0x40 0000203a: MLOAD 0000203b: DUP1 0000203c: DUP4 0000203d: SUB 0000203e: DUP2 0000203f: PUSH1 0x00 00002041: DUP8 00002042: DUP1 00002043: EXTCODESIZE 00002044: ISZERO 00002045: DUP1 00002046: ISZERO 00002047: PUSH2 0x204f 0000204a: JUMPI 0000204b: PUSH1 0x00 0000204d: DUP1 0000204e: REVERT 0000204f: JUMPDEST 00002050: POP 00002051: GAS 00002052: CALL 00002053: ISZERO 00002054: DUP1 00002055: ISZERO 00002056: PUSH2 0x2063 00002059: JUMPI 0000205a: RETURNDATASIZE 0000205b: PUSH1 0x00 0000205d: DUP1 0000205e: RETURNDATACOPY 0000205f: RETURNDATASIZE 00002060: PUSH1 0x00 00002062: REVERT 00002063: JUMPDEST 00002064: POP 00002065: POP 00002066: POP 00002067: POP 00002068: PUSH1 0x01 0000206a: SWAP2 0000206b: POP 0000206c: JUMPDEST 0000206d: POP 0000206e: JUMPDEST 0000206f: DUP1 00002070: PUSH2 0x208b 00002073: JUMPI 00002074: PUSH1 0x40 00002076: MLOAD 00002077: PUSH3 0x461bcd 0000207b: PUSH1 0xe5 0000207d: SHL 0000207e: DUP2 0000207f: MSTORE 00002080: PUSH1 0x04 00002082: ADD 00002083: PUSH2 0x0435 00002086: SWAP1 00002087: PUSH2 0x3f38 0000208a: JUMP 0000208b: JUMPDEST 0000208c: DUP10 0000208d: PUSH1 0x80 0000208f: ADD 00002090: MLOAD 00002091: SWAP7 00002092: POP 00002093: POP 00002094: POP 00002095: POP 00002096: POP 00002097: JUMPDEST 00002098: DUP4 00002099: PUSH1 0x20 0000209b: ADD 0000209c: MLOAD 0000209d: ISZERO 0000209e: PUSH2 0x2174 000020a1: JUMPI 000020a2: PUSH2 0x20ae 000020a5: DUP5 000020a6: PUSH1 0x60 000020a8: ADD 000020a9: MLOAD 000020aa: PUSH2 0x26a6 000020ad: JUMP 000020ae: JUMPDEST 000020af: PUSH2 0x2131 000020b2: JUMPI 000020b3: PUSH1 0x40 000020b5: MLOAD 000020b6: PUSH4 0x2e1a7d4d 000020bb: PUSH1 0xe0 000020bd: SHL 000020be: DUP2 000020bf: MSTORE 000020c0: PUSH1 0x01 000020c2: PUSH1 0x01 000020c4: PUSH1 0xa0 000020c6: SHL 000020c7: SUB 000020c8: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000020e9: AND 000020ea: SWAP1 000020eb: PUSH4 0x2e1a7d4d 000020f0: SWAP1 000020f1: PUSH2 0x20fe 000020f4: SWAP1 000020f5: DUP7 000020f6: SWAP1 000020f7: PUSH1 0x04 000020f9: ADD 000020fa: PUSH2 0x3d04 000020fd: JUMP 000020fe: JUMPDEST 000020ff: PUSH1 0x00 00002101: PUSH1 0x40 00002103: MLOAD 00002104: DUP1 00002105: DUP4 00002106: SUB 00002107: DUP2 00002108: PUSH1 0x00 0000210a: DUP8 0000210b: DUP1 0000210c: EXTCODESIZE 0000210d: ISZERO 0000210e: DUP1 0000210f: ISZERO 00002110: PUSH2 0x2118 00002113: JUMPI 00002114: PUSH1 0x00 00002116: DUP1 00002117: REVERT 00002118: JUMPDEST 00002119: POP 0000211a: GAS 0000211b: CALL 0000211c: ISZERO 0000211d: DUP1 0000211e: ISZERO 0000211f: PUSH2 0x212c 00002122: JUMPI 00002123: RETURNDATASIZE 00002124: PUSH1 0x00 00002126: DUP1 00002127: RETURNDATACOPY 00002128: RETURNDATASIZE 00002129: PUSH1 0x00 0000212b: REVERT 0000212c: JUMPDEST 0000212d: POP 0000212e: POP 0000212f: POP 00002130: POP 00002131: JUMPDEST 00002132: DUP6 00002133: PUSH1 0xc0 00002135: ADD 00002136: MLOAD 00002137: PUSH1 0x01 00002139: PUSH1 0x01 0000213b: PUSH1 0xa0 0000213d: SHL 0000213e: SUB 0000213f: AND 00002140: PUSH2 0x08fc 00002143: DUP5 00002144: SWAP1 00002145: DUP2 00002146: ISZERO 00002147: MUL 00002148: SWAP1 00002149: PUSH1 0x40 0000214b: MLOAD 0000214c: PUSH1 0x00 0000214e: PUSH1 0x40 00002150: MLOAD 00002151: DUP1 00002152: DUP4 00002153: SUB 00002154: DUP2 00002155: DUP6 00002156: DUP9 00002157: DUP9 00002158: CALL 00002159: SWAP4 0000215a: POP 0000215b: POP 0000215c: POP 0000215d: POP 0000215e: ISZERO 0000215f: DUP1 00002160: ISZERO 00002161: PUSH2 0x216e 00002164: JUMPI 00002165: RETURNDATASIZE 00002166: PUSH1 0x00 00002168: DUP1 00002169: RETURNDATACOPY 0000216a: RETURNDATASIZE 0000216b: PUSH1 0x00 0000216d: REVERT 0000216e: JUMPDEST 0000216f: POP 00002170: PUSH2 0x219a 00002173: JUMP 00002174: JUMPDEST 00002175: PUSH2 0x219a 00002178: DUP7 00002179: PUSH1 0xc0 0000217b: ADD 0000217c: MLOAD 0000217d: DUP5 0000217e: DUP9 0000217f: PUSH1 0x40 00002181: ADD 00002182: MLOAD 00002183: PUSH1 0x01 00002185: PUSH1 0x01 00002187: PUSH1 0xa0 00002189: SHL 0000218a: SUB 0000218b: AND 0000218c: PUSH2 0x2a69 0000218f: SWAP1 00002190: SWAP3 00002191: SWAP2 00002192: SWAP1 00002193: PUSH4 0xffffffff 00002198: AND 00002199: JUMP 0000219a: JUMPDEST 0000219b: POP 0000219c: POP 0000219d: SWAP4 0000219e: SWAP3 0000219f: POP 000021a0: POP 000021a1: POP 000021a2: JUMP 000021a3: JUMPDEST 000021a4: DUP1 000021a5: ISZERO 000021a6: DUP1 000021a7: PUSH2 0x2244 000021aa: JUMPI 000021ab: POP 000021ac: PUSH1 0x40 000021ae: MLOAD 000021af: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 000021d0: DUP2 000021d1: MSTORE 000021d2: PUSH1 0x01 000021d4: PUSH1 0x01 000021d6: PUSH1 0xa0 000021d8: SHL 000021d9: SUB 000021da: DUP5 000021db: AND 000021dc: SWAP1 000021dd: PUSH4 0xdd62ed3e 000021e2: SWAP1 000021e3: PUSH2 0x21f2 000021e6: SWAP1 000021e7: ADDRESS 000021e8: SWAP1 000021e9: DUP7 000021ea: SWAP1 000021eb: PUSH1 0x04 000021ed: ADD 000021ee: PUSH2 0x3c7f 000021f1: JUMP 000021f2: JUMPDEST 000021f3: PUSH1 0x20 000021f5: PUSH1 0x40 000021f7: MLOAD 000021f8: DUP1 000021f9: DUP4 000021fa: SUB 000021fb: DUP2 000021fc: DUP7 000021fd: DUP1 000021fe: EXTCODESIZE 000021ff: ISZERO 00002200: DUP1 00002201: ISZERO 00002202: PUSH2 0x220a 00002205: JUMPI 00002206: PUSH1 0x00 00002208: DUP1 00002209: REVERT 0000220a: JUMPDEST 0000220b: POP 0000220c: GAS 0000220d: STATICCALL 0000220e: ISZERO 0000220f: DUP1 00002210: ISZERO 00002211: PUSH2 0x221e 00002214: JUMPI 00002215: RETURNDATASIZE 00002216: PUSH1 0x00 00002218: DUP1 00002219: RETURNDATACOPY 0000221a: RETURNDATASIZE 0000221b: PUSH1 0x00 0000221d: REVERT 0000221e: JUMPDEST 0000221f: POP 00002220: POP 00002221: POP 00002222: POP 00002223: PUSH1 0x40 00002225: MLOAD 00002226: RETURNDATASIZE 00002227: PUSH1 0x1f 00002229: NOT 0000222a: PUSH1 0x1f 0000222c: DUP3 0000222d: ADD 0000222e: AND 0000222f: DUP3 00002230: ADD 00002231: DUP1 00002232: PUSH1 0x40 00002234: MSTORE 00002235: POP 00002236: DUP2 00002237: ADD 00002238: SWAP1 00002239: PUSH2 0x2242 0000223c: SWAP2 0000223d: SWAP1 0000223e: PUSH2 0x3938 00002241: JUMP 00002242: JUMPDEST 00002243: ISZERO 00002244: JUMPDEST 00002245: PUSH2 0x2260 00002248: JUMPI 00002249: PUSH1 0x40 0000224b: MLOAD 0000224c: PUSH3 0x461bcd 00002250: PUSH1 0xe5 00002252: SHL 00002253: DUP2 00002254: MSTORE 00002255: PUSH1 0x04 00002257: ADD 00002258: PUSH2 0x0435 0000225b: SWAP1 0000225c: PUSH2 0x49f0 0000225f: JUMP 00002260: JUMPDEST 00002261: PUSH2 0x22cb 00002264: DUP4 00002265: PUSH4 0x095ea7b3 0000226a: PUSH1 0xe0 0000226c: SHL 0000226d: DUP5 0000226e: DUP5 0000226f: PUSH1 0x40 00002271: MLOAD 00002272: PUSH1 0x24 00002274: ADD 00002275: PUSH2 0x227f 00002278: SWAP3 00002279: SWAP2 0000227a: SWAP1 0000227b: PUSH2 0x3ce0 0000227e: JUMP 0000227f: JUMPDEST 00002280: PUSH1 0x40 00002282: DUP1 00002283: MLOAD 00002284: PUSH1 0x1f 00002286: NOT 00002287: DUP2 00002288: DUP5 00002289: SUB 0000228a: ADD 0000228b: DUP2 0000228c: MSTORE 0000228d: SWAP2 0000228e: SWAP1 0000228f: MSTORE 00002290: PUSH1 0x20 00002292: DUP2 00002293: ADD 00002294: DUP1 00002295: MLOAD 00002296: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000022b3: AND 000022b4: PUSH1 0x01 000022b6: PUSH1 0x01 000022b8: PUSH1 0xe0 000022ba: SHL 000022bb: SUB 000022bc: NOT 000022bd: SWAP1 000022be: SWAP4 000022bf: AND 000022c0: SWAP3 000022c1: SWAP1 000022c2: SWAP3 000022c3: OR 000022c4: SWAP1 000022c5: SWAP2 000022c6: MSTORE 000022c7: PUSH2 0x2a88 000022ca: JUMP 000022cb: JUMPDEST 000022cc: POP 000022cd: POP 000022ce: POP 000022cf: JUMP 000022d0: JUMPDEST 000022d1: PUSH1 0x60 000022d3: PUSH1 0x00 000022d5: DUP3 000022d6: PUSH1 0x40 000022d8: ADD 000022d9: MLOAD 000022da: DUP6 000022db: PUSH1 0x00 000022dd: ADD 000022de: MLOAD 000022df: PUSH1 0x00 000022e1: PUSH2 0x22e9 000022e4: DUP4 000022e5: PUSH2 0x26a6 000022e8: JUMP 000022e9: JUMPDEST 000022ea: SWAP1 000022eb: POP 000022ec: DUP1 000022ed: PUSH2 0x2306 000022f0: JUMPI 000022f1: PUSH2 0x2306 000022f4: PUSH1 0x01 000022f6: PUSH1 0x01 000022f8: PUSH1 0xa0 000022fa: SHL 000022fb: SUB 000022fc: DUP5 000022fd: AND 000022fe: DUP4 000022ff: PUSH1 0x00 00002301: NOT 00002302: PUSH2 0x21a3 00002305: JUMP 00002306: JUMPDEST 00002307: PUSH1 0x00 00002309: PUSH2 0x232e 0000230c: PUSH2 0x2710 0000230f: PUSH2 0x1aa7 00002312: PUSH2 0x1a9c 00002315: DUP12 00002316: PUSH1 0xa0 00002318: ADD 00002319: MLOAD 0000231a: PUSH2 0xffff 0000231d: AND 0000231e: PUSH2 0x2710 00002321: PUSH2 0x26ef 00002324: SWAP1 00002325: SWAP2 00002326: SWAP1 00002327: PUSH4 0xffffffff 0000232c: AND 0000232d: JUMP 0000232e: JUMPDEST 0000232f: DUP10 00002330: MLOAD 00002331: SWAP1 00002332: SWAP2 00002333: POP 00002334: PUSH1 0x01 00002336: PUSH1 0x01 00002338: PUSH1 0xa0 0000233a: SHL 0000233b: SUB 0000233c: AND 0000233d: PUSH20 0x7a250d5630b4cf539739df2c5dacb4c659f2488d 00002352: EQ 00002353: DUP1 00002354: PUSH2 0x237a 00002357: JUMPI 00002358: POP 00002359: DUP9 0000235a: MLOAD 0000235b: PUSH1 0x01 0000235d: PUSH1 0x01 0000235f: PUSH1 0xa0 00002361: SHL 00002362: SUB 00002363: AND 00002364: PUSH20 0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f 00002379: EQ 0000237a: JUMPDEST 0000237b: ISZERO 0000237c: PUSH2 0x2419 0000237f: JUMPI 00002380: DUP9 00002381: MLOAD 00002382: PUSH1 0x01 00002384: PUSH1 0x01 00002386: PUSH1 0xa0 00002388: SHL 00002389: SUB 0000238a: AND 0000238b: PUSH20 0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f 000023a0: EQ 000023a1: PUSH2 0x23cc 000023a4: JUMPI 000023a5: PUSH1 0x40 000023a7: MLOAD 000023a8: DUP1 000023a9: PUSH1 0x40 000023ab: ADD 000023ac: PUSH1 0x40 000023ae: MSTORE 000023af: DUP1 000023b0: PUSH1 0x0a 000023b2: DUP2 000023b3: MSTORE 000023b4: PUSH1 0x20 000023b6: ADD 000023b7: PUSH10 0x2ab734b9bbb0b8102b19 000023c2: PUSH1 0xb1 000023c4: SHL 000023c5: DUP2 000023c6: MSTORE 000023c7: POP 000023c8: PUSH2 0x23ef 000023cb: JUMP 000023cc: JUMPDEST 000023cd: PUSH1 0x40 000023cf: MLOAD 000023d0: DUP1 000023d1: PUSH1 0x40 000023d3: ADD 000023d4: PUSH1 0x40 000023d6: MSTORE 000023d7: DUP1 000023d8: PUSH1 0x09 000023da: DUP2 000023db: MSTORE 000023dc: PUSH1 0x20 000023de: ADD 000023df: PUSH9 0x053757368695377617 000023e9: PUSH1 0xbc 000023eb: SHL 000023ec: DUP2 000023ed: MSTORE 000023ee: POP 000023ef: JUMPDEST 000023f0: SWAP6 000023f1: POP 000023f2: PUSH2 0x1b93 000023f5: DUP10 000023f6: PUSH1 0x00 000023f8: ADD 000023f9: MLOAD 000023fa: DUP9 000023fb: PUSH1 0x40 000023fd: ADD 000023fe: MLOAD 000023ff: DUP10 00002400: PUSH1 0x60 00002402: ADD 00002403: MLOAD 00002404: DUP13 00002405: PUSH1 0x60 00002407: ADD 00002408: MLOAD 00002409: DUP6 0000240a: DUP15 0000240b: PUSH2 0x0100 0000240e: ADD 0000240f: MLOAD 00002410: DUP14 00002411: PUSH1 0x80 00002413: ADD 00002414: MLOAD 00002415: PUSH2 0x2b17 00002418: JUMP 00002419: JUMPDEST 0000241a: DUP9 0000241b: MLOAD 0000241c: PUSH1 0x01 0000241e: PUSH1 0x01 00002420: PUSH1 0xa0 00002422: SHL 00002423: SUB 00002424: AND 00002425: PUSH20 0xe592427a0aece92de3edee1f18e0157c05861564 0000243a: EQ 0000243b: ISZERO 0000243c: PUSH2 0x1b9a 0000243f: JUMPI 00002440: PUSH1 0x40 00002442: MLOAD 00002443: DUP1 00002444: PUSH1 0x40 00002446: ADD 00002447: PUSH1 0x40 00002449: MSTORE 0000244a: DUP1 0000244b: PUSH1 0x0a 0000244d: DUP2 0000244e: MSTORE 0000244f: PUSH1 0x20 00002451: ADD 00002452: PUSH32 0x556e697377617020563300000000000000000000000000000000000000000000 00002473: DUP2 00002474: MSTORE 00002475: POP 00002476: SWAP6 00002477: POP 00002478: PUSH2 0x1b93 0000247b: DUP10 0000247c: PUSH1 0x00 0000247e: ADD 0000247f: MLOAD 00002480: DUP9 00002481: PUSH1 0x40 00002483: ADD 00002484: MLOAD 00002485: DUP10 00002486: PUSH1 0x60 00002488: ADD 00002489: MLOAD 0000248a: DUP13 0000248b: PUSH2 0x0100 0000248e: ADD 0000248f: MLOAD 00002490: DUP14 00002491: PUSH1 0x60 00002493: ADD 00002494: MLOAD 00002495: DUP7 00002496: DUP14 00002497: PUSH1 0xa0 00002499: ADD 0000249a: MLOAD 0000249b: PUSH2 0x2d08 0000249e: JUMP 0000249f: JUMPDEST 000024a0: PUSH1 0x00 000024a2: DUP1 000024a3: DUP3 000024a4: MLOAD 000024a5: GT 000024a6: PUSH2 0x24c1 000024a9: JUMPI 000024aa: PUSH1 0x40 000024ac: MLOAD 000024ad: PUSH3 0x461bcd 000024b1: PUSH1 0xe5 000024b3: SHL 000024b4: DUP2 000024b5: MSTORE 000024b6: PUSH1 0x04 000024b8: ADD 000024b9: PUSH2 0x0435 000024bc: SWAP1 000024bd: PUSH2 0x470c 000024c0: JUMP 000024c1: JUMPDEST 000024c2: DUP2 000024c3: PUSH1 0x01 000024c5: DUP4 000024c6: MLOAD 000024c7: SUB 000024c8: DUP2 000024c9: MLOAD 000024ca: DUP2 000024cb: LT 000024cc: PUSH2 0x24d1 000024cf: JUMPI 000024d0: INVALID 000024d1: JUMPDEST 000024d2: ADD 000024d3: PUSH1 0x20 000024d5: ADD 000024d6: MLOAD 000024d7: DUP3 000024d8: MLOAD 000024d9: PUSH1 0x00 000024db: NOT 000024dc: ADD 000024dd: SWAP1 000024de: SWAP3 000024df: MSTORE 000024e0: POP 000024e1: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000 00002502: AND 00002503: SWAP1 00002504: JUMP 00002505: JUMPDEST 00002506: PUSH1 0x00 00002508: DUP2 00002509: PUSH1 0x20 0000250b: ADD 0000250c: DUP4 0000250d: MLOAD 0000250e: LT 0000250f: ISZERO 00002510: PUSH2 0x252b 00002513: JUMPI 00002514: PUSH1 0x40 00002516: MLOAD 00002517: PUSH3 0x461bcd 0000251b: PUSH1 0xe5 0000251d: SHL 0000251e: DUP2 0000251f: MSTORE 00002520: PUSH1 0x04 00002522: ADD 00002523: PUSH2 0x0435 00002526: SWAP1 00002527: PUSH2 0x4652 0000252a: JUMP 0000252b: JUMPDEST 0000252c: PUSH1 0x20 0000252e: DUP3 0000252f: ADD 00002530: SWAP2 00002531: POP 00002532: DUP2 00002533: DUP4 00002534: ADD 00002535: MLOAD 00002536: SWAP1 00002537: POP 00002538: JUMPDEST 00002539: SWAP3 0000253a: SWAP2 0000253b: POP 0000253c: POP 0000253d: JUMP 0000253e: JUMPDEST 0000253f: PUSH1 0x00 00002541: PUSH1 0x60 00002543: PUSH4 0x1626ba7e 00002548: PUSH1 0xe0 0000254a: SHL 0000254b: DUP6 0000254c: DUP5 0000254d: PUSH1 0x40 0000254f: MLOAD 00002550: PUSH1 0x24 00002552: ADD 00002553: PUSH2 0x255d 00002556: SWAP3 00002557: SWAP2 00002558: SWAP1 00002559: PUSH2 0x3d65 0000255c: JUMP 0000255d: JUMPDEST 0000255e: PUSH1 0x40 00002560: DUP1 00002561: MLOAD 00002562: PUSH1 0x1f 00002564: NOT 00002565: DUP2 00002566: DUP5 00002567: SUB 00002568: ADD 00002569: DUP2 0000256a: MSTORE 0000256b: SWAP2 0000256c: SWAP1 0000256d: MSTORE 0000256e: PUSH1 0x20 00002570: DUP2 00002571: ADD 00002572: DUP1 00002573: MLOAD 00002574: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002591: AND 00002592: PUSH1 0x01 00002594: PUSH1 0x01 00002596: PUSH1 0xe0 00002598: SHL 00002599: SUB 0000259a: NOT 0000259b: SWAP1 0000259c: SWAP4 0000259d: AND 0000259e: SWAP3 0000259f: SWAP1 000025a0: SWAP3 000025a1: OR 000025a2: SWAP1 000025a3: SWAP2 000025a4: MSTORE 000025a5: SWAP1 000025a6: POP 000025a7: PUSH32 0xb067138100000000000000000000000000000000000000000000000000000000 000025c8: DUP5 000025c9: EXTCODESIZE 000025ca: PUSH2 0x25fe 000025cd: JUMPI 000025ce: PUSH3 0x461bcd 000025d2: PUSH1 0xe5 000025d4: SHL 000025d5: PUSH1 0x00 000025d7: MSTORE 000025d8: PUSH1 0x01 000025da: PUSH1 0xe5 000025dc: SHL 000025dd: PUSH1 0x20 000025df: MSTORE 000025e0: PUSH13 0x062ba0a62622aa2fa2a92927a9 000025ee: PUSH1 0x81 000025f0: SHL 000025f1: PUSH1 0x40 000025f3: MSTORE 000025f4: PUSH1 0x00 000025f6: PUSH1 0x60 000025f8: MSTORE 000025f9: PUSH1 0x64 000025fb: PUSH1 0x00 000025fd: REVERT 000025fe: JUMPDEST 000025ff: PUSH1 0x20 00002601: DUP3 00002602: ADD 00002603: PUSH1 0x20 00002605: DUP2 00002606: DUP5 00002607: MLOAD 00002608: DUP4 00002609: DUP10 0000260a: GAS 0000260b: STATICCALL 0000260c: PUSH1 0x20 0000260e: RETURNDATASIZE 0000260f: EQ 00002610: PUSH2 0x2644 00002613: JUMPI 00002614: PUSH3 0x461bcd 00002618: PUSH1 0xe5 0000261a: SHL 0000261b: PUSH1 0x00 0000261d: MSTORE 0000261e: PUSH1 0x01 00002620: PUSH1 0xe5 00002622: SHL 00002623: PUSH1 0x20 00002625: MSTORE 00002626: PUSH13 0x062ba0a62622aa2fa2a92927a9 00002634: PUSH1 0x81 00002636: SHL 00002637: PUSH1 0x40 00002639: MSTORE 0000263a: PUSH1 0x00 0000263c: PUSH1 0x60 0000263e: MSTORE 0000263f: PUSH1 0x64 00002641: PUSH1 0x00 00002643: REVERT 00002644: JUMPDEST 00002645: DUP1 00002646: DUP1 00002647: ISZERO 00002648: PUSH2 0x2658 0000264b: JUMPI 0000264c: PUSH1 0x01 0000264e: DUP2 0000264f: EQ 00002650: PUSH2 0x2689 00002653: JUMPI 00002654: PUSH2 0x18cc 00002657: JUMP 00002658: JUMPDEST 00002659: PUSH3 0x461bcd 0000265d: PUSH1 0xe5 0000265f: SHL 00002660: PUSH1 0x00 00002662: MSTORE 00002663: PUSH1 0x01 00002665: PUSH1 0xe5 00002667: SHL 00002668: PUSH1 0x20 0000266a: MSTORE 0000266b: PUSH13 0x062ba0a62622aa2fa2a92927a9 00002679: PUSH1 0x81 0000267b: SHL 0000267c: PUSH1 0x40 0000267e: MSTORE 0000267f: PUSH1 0x00 00002681: PUSH1 0x60 00002683: MSTORE 00002684: PUSH1 0x64 00002686: PUSH1 0x00 00002688: REVERT 00002689: JUMPDEST 0000268a: POP 0000268b: POP 0000268c: MLOAD 0000268d: PUSH1 0x01 0000268f: PUSH1 0x01 00002691: PUSH1 0xe0 00002693: SHL 00002694: SUB 00002695: NOT 00002696: SWAP1 00002697: DUP2 00002698: AND 00002699: SWAP2 0000269a: AND 0000269b: EQ 0000269c: SWAP2 0000269d: POP 0000269e: POP 0000269f: JUMPDEST 000026a0: SWAP4 000026a1: SWAP3 000026a2: POP 000026a3: POP 000026a4: POP 000026a5: JUMP 000026a6: JUMPDEST 000026a7: PUSH1 0x00 000026a9: PUSH1 0x01 000026ab: PUSH1 0x01 000026ad: PUSH1 0xa0 000026af: SHL 000026b0: SUB 000026b1: DUP3 000026b2: AND 000026b3: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 000026c8: EQ 000026c9: DUP1 000026ca: PUSH2 0x26da 000026cd: JUMPI 000026ce: POP 000026cf: PUSH1 0x01 000026d1: PUSH1 0x01 000026d3: PUSH1 0xa0 000026d5: SHL 000026d6: SUB 000026d7: DUP3 000026d8: AND 000026d9: ISZERO 000026da: JUMPDEST 000026db: ISZERO 000026dc: PUSH2 0x26e7 000026df: JUMPI 000026e0: POP 000026e1: PUSH1 0x01 000026e3: PUSH2 0x16d4 000026e6: JUMP 000026e7: JUMPDEST 000026e8: POP 000026e9: PUSH1 0x00 000026eb: PUSH2 0x16d4 000026ee: JUMP 000026ef: JUMPDEST 000026f0: PUSH1 0x00 000026f2: DUP3 000026f3: DUP3 000026f4: GT 000026f5: ISZERO 000026f6: PUSH2 0x2711 000026f9: JUMPI 000026fa: PUSH1 0x40 000026fc: MLOAD 000026fd: PUSH3 0x461bcd 00002701: PUSH1 0xe5 00002703: SHL 00002704: DUP2 00002705: MSTORE 00002706: PUSH1 0x04 00002708: ADD 00002709: PUSH2 0x0435 0000270c: SWAP1 0000270d: PUSH2 0x4140 00002710: JUMP 00002711: JUMPDEST 00002712: POP 00002713: SWAP1 00002714: SUB 00002715: SWAP1 00002716: JUMP 00002717: JUMPDEST 00002718: PUSH1 0x00 0000271a: DUP3 0000271b: PUSH2 0x2726 0000271e: JUMPI 0000271f: POP 00002720: PUSH1 0x00 00002722: PUSH2 0x2538 00002725: JUMP 00002726: JUMPDEST 00002727: DUP3 00002728: DUP3 00002729: MUL 0000272a: DUP3 0000272b: DUP5 0000272c: DUP3 0000272d: DUP2 0000272e: PUSH2 0x2733 00002731: JUMPI 00002732: INVALID 00002733: JUMPDEST 00002734: DIV 00002735: EQ 00002736: PUSH2 0x269f 00002739: JUMPI 0000273a: PUSH1 0x40 0000273c: MLOAD 0000273d: PUSH3 0x461bcd 00002741: PUSH1 0xe5 00002743: SHL 00002744: DUP2 00002745: MSTORE 00002746: PUSH1 0x04 00002748: ADD 00002749: PUSH2 0x0435 0000274c: SWAP1 0000274d: PUSH2 0x4470 00002750: JUMP 00002751: JUMPDEST 00002752: PUSH1 0x00 00002754: DUP1 00002755: DUP3 00002756: GT 00002757: PUSH2 0x2772 0000275a: JUMPI 0000275b: PUSH1 0x40 0000275d: MLOAD 0000275e: PUSH3 0x461bcd 00002762: PUSH1 0xe5 00002764: SHL 00002765: DUP2 00002766: MSTORE 00002767: PUSH1 0x04 00002769: ADD 0000276a: PUSH2 0x0435 0000276d: SWAP1 0000276e: PUSH2 0x4231 00002771: JUMP 00002772: JUMPDEST 00002773: DUP2 00002774: DUP4 00002775: DUP2 00002776: PUSH2 0x277b 00002779: JUMPI 0000277a: INVALID 0000277b: JUMPDEST 0000277c: DIV 0000277d: SWAP4 0000277e: SWAP3 0000277f: POP 00002780: POP 00002781: POP 00002782: JUMP 00002783: JUMPDEST 00002784: PUSH1 0x40 00002786: DUP1 00002787: MLOAD 00002788: PUSH1 0x02 0000278a: DUP1 0000278b: DUP3 0000278c: MSTORE 0000278d: PUSH1 0x60 0000278f: DUP1 00002790: DUP4 00002791: ADD 00002792: DUP5 00002793: MSTORE 00002794: PUSH1 0x00 00002796: SWAP4 00002797: DUP11 00002798: SWAP4 00002799: SWAP2 0000279a: SWAP3 0000279b: SWAP1 0000279c: PUSH1 0x20 0000279e: DUP4 0000279f: ADD 000027a0: SWAP1 000027a1: DUP1 000027a2: CALLDATASIZE 000027a3: DUP4 000027a4: CALLDATACOPY 000027a5: ADD 000027a6: SWAP1 000027a7: POP 000027a8: POP 000027a9: SWAP1 000027aa: POP 000027ab: DUP8 000027ac: DUP2 000027ad: PUSH1 0x00 000027af: DUP2 000027b0: MLOAD 000027b1: DUP2 000027b2: LT 000027b3: PUSH2 0x27b8 000027b6: JUMPI 000027b7: INVALID 000027b8: JUMPDEST 000027b9: PUSH1 0x20 000027bb: MUL 000027bc: PUSH1 0x20 000027be: ADD 000027bf: ADD 000027c0: SWAP1 000027c1: PUSH1 0x01 000027c3: PUSH1 0x01 000027c5: PUSH1 0xa0 000027c7: SHL 000027c8: SUB 000027c9: AND 000027ca: SWAP1 000027cb: DUP2 000027cc: PUSH1 0x01 000027ce: PUSH1 0x01 000027d0: PUSH1 0xa0 000027d2: SHL 000027d3: SUB 000027d4: AND 000027d5: DUP2 000027d6: MSTORE 000027d7: POP 000027d8: POP 000027d9: DUP7 000027da: DUP2 000027db: PUSH1 0x01 000027dd: DUP2 000027de: MLOAD 000027df: DUP2 000027e0: LT 000027e1: PUSH2 0x27e6 000027e4: JUMPI 000027e5: INVALID 000027e6: JUMPDEST 000027e7: PUSH1 0x01 000027e9: PUSH1 0x01 000027eb: PUSH1 0xa0 000027ed: SHL 000027ee: SUB 000027ef: SWAP3 000027f0: DUP4 000027f1: AND 000027f2: PUSH1 0x20 000027f4: SWAP2 000027f5: DUP3 000027f6: MUL 000027f7: SWAP3 000027f8: SWAP1 000027f9: SWAP3 000027fa: ADD 000027fb: ADD 000027fc: MSTORE 000027fd: PUSH1 0x40 000027ff: MLOAD 00002800: PUSH4 0x38ed1739 00002805: PUSH1 0xe0 00002807: SHL 00002808: DUP2 00002809: MSTORE 0000280a: PUSH1 0x60 0000280c: SWAP2 0000280d: DUP5 0000280e: AND 0000280f: SWAP1 00002810: PUSH4 0x38ed1739 00002815: SWAP1 00002816: PUSH2 0x282b 00002819: SWAP1 0000281a: DUP11 0000281b: SWAP1 0000281c: DUP11 0000281d: SWAP1 0000281e: DUP8 0000281f: SWAP1 00002820: ADDRESS 00002821: SWAP1 00002822: DUP13 00002823: SWAP1 00002824: PUSH1 0x04 00002826: ADD 00002827: PUSH2 0x4c3b 0000282a: JUMP 0000282b: JUMPDEST 0000282c: PUSH1 0x00 0000282e: PUSH1 0x40 00002830: MLOAD 00002831: DUP1 00002832: DUP4 00002833: SUB 00002834: DUP2 00002835: PUSH1 0x00 00002837: DUP8 00002838: DUP1 00002839: EXTCODESIZE 0000283a: ISZERO 0000283b: DUP1 0000283c: ISZERO 0000283d: PUSH2 0x2845 00002840: JUMPI 00002841: PUSH1 0x00 00002843: DUP1 00002844: REVERT 00002845: JUMPDEST 00002846: POP 00002847: GAS 00002848: CALL 00002849: ISZERO 0000284a: DUP1 0000284b: ISZERO 0000284c: PUSH2 0x2859 0000284f: JUMPI 00002850: RETURNDATASIZE 00002851: PUSH1 0x00 00002853: DUP1 00002854: RETURNDATACOPY 00002855: RETURNDATASIZE 00002856: PUSH1 0x00 00002858: REVERT 00002859: JUMPDEST 0000285a: POP 0000285b: POP 0000285c: POP 0000285d: POP 0000285e: PUSH1 0x40 00002860: MLOAD 00002861: RETURNDATASIZE 00002862: PUSH1 0x00 00002864: DUP3 00002865: RETURNDATACOPY 00002866: PUSH1 0x1f 00002868: RETURNDATASIZE 00002869: SWAP1 0000286a: DUP2 0000286b: ADD 0000286c: PUSH1 0x1f 0000286e: NOT 0000286f: AND 00002870: DUP3 00002871: ADD 00002872: PUSH1 0x40 00002874: MSTORE 00002875: PUSH2 0x2881 00002878: SWAP2 00002879: SWAP1 0000287a: DUP2 0000287b: ADD 0000287c: SWAP1 0000287d: PUSH2 0x36a6 00002880: JUMP 00002881: JUMPDEST 00002882: SWAP1 00002883: POP 00002884: DUP1 00002885: PUSH1 0x01 00002887: DUP2 00002888: MLOAD 00002889: DUP2 0000288a: LT 0000288b: PUSH2 0x2890 0000288e: JUMPI 0000288f: INVALID 00002890: JUMPDEST 00002891: PUSH1 0x20 00002893: MUL 00002894: PUSH1 0x20 00002896: ADD 00002897: ADD 00002898: MLOAD 00002899: SWAP4 0000289a: POP 0000289b: POP 0000289c: POP 0000289d: POP 0000289e: SWAP7 0000289f: SWAP6 000028a0: POP 000028a1: POP 000028a2: POP 000028a3: POP 000028a4: POP 000028a5: POP 000028a6: JUMP 000028a7: JUMPDEST 000028a8: PUSH1 0x00 000028aa: PUSH2 0x28b2 000028ad: DUP3 000028ae: PUSH2 0x26a6 000028b1: JUMP 000028b2: JUMPDEST 000028b3: ISZERO 000028b4: PUSH2 0x28be 000028b7: JUMPI 000028b8: POP 000028b9: SELFBALANCE 000028ba: PUSH2 0x16d4 000028bd: JUMP 000028be: JUMPDEST 000028bf: PUSH1 0x40 000028c1: MLOAD 000028c2: PUSH4 0x70a08231 000028c7: PUSH1 0xe0 000028c9: SHL 000028ca: DUP2 000028cb: MSTORE 000028cc: PUSH1 0x01 000028ce: PUSH1 0x01 000028d0: PUSH1 0xa0 000028d2: SHL 000028d3: SUB 000028d4: DUP4 000028d5: AND 000028d6: SWAP1 000028d7: PUSH4 0x70a08231 000028dc: SWAP1 000028dd: PUSH2 0x28ea 000028e0: SWAP1 000028e1: ADDRESS 000028e2: SWAP1 000028e3: PUSH1 0x04 000028e5: ADD 000028e6: PUSH2 0x3c6b 000028e9: JUMP 000028ea: JUMPDEST 000028eb: PUSH1 0x20 000028ed: PUSH1 0x40 000028ef: MLOAD 000028f0: DUP1 000028f1: DUP4 000028f2: SUB 000028f3: DUP2 000028f4: DUP7 000028f5: DUP1 000028f6: EXTCODESIZE 000028f7: ISZERO 000028f8: DUP1 000028f9: ISZERO 000028fa: PUSH2 0x2902 000028fd: JUMPI 000028fe: PUSH1 0x00 00002900: DUP1 00002901: REVERT 00002902: JUMPDEST 00002903: POP 00002904: GAS 00002905: STATICCALL 00002906: ISZERO 00002907: DUP1 00002908: ISZERO 00002909: PUSH2 0x2916 0000290c: JUMPI 0000290d: RETURNDATASIZE 0000290e: PUSH1 0x00 00002910: DUP1 00002911: RETURNDATACOPY 00002912: RETURNDATASIZE 00002913: PUSH1 0x00 00002915: REVERT 00002916: JUMPDEST 00002917: POP 00002918: POP 00002919: POP 0000291a: POP 0000291b: PUSH1 0x40 0000291d: MLOAD 0000291e: RETURNDATASIZE 0000291f: PUSH1 0x1f 00002921: NOT 00002922: PUSH1 0x1f 00002924: DUP3 00002925: ADD 00002926: AND 00002927: DUP3 00002928: ADD 00002929: DUP1 0000292a: PUSH1 0x40 0000292c: MSTORE 0000292d: POP 0000292e: DUP2 0000292f: ADD 00002930: SWAP1 00002931: PUSH2 0x293a 00002934: SWAP2 00002935: SWAP1 00002936: PUSH2 0x3938 00002939: JUMP 0000293a: JUMPDEST 0000293b: SWAP1 0000293c: POP 0000293d: PUSH2 0x16d4 00002940: JUMP 00002941: JUMPDEST 00002942: DUP6 00002943: PUSH1 0x01 00002945: PUSH2 0xffff 00002948: DUP4 00002949: AND 0000294a: EQ 0000294b: ISZERO 0000294c: PUSH2 0x29d3 0000294f: JUMPI 00002950: PUSH1 0x40 00002952: MLOAD 00002953: PUSH32 0x3df0212400000000000000000000000000000000000000000000000000000000 00002974: DUP2 00002975: MSTORE 00002976: PUSH1 0x01 00002978: PUSH1 0x01 0000297a: PUSH1 0xa0 0000297c: SHL 0000297d: SUB 0000297e: DUP3 0000297f: AND 00002980: SWAP1 00002981: PUSH4 0x3df02124 00002986: SWAP1 00002987: CALLVALUE 00002988: SWAP1 00002989: PUSH2 0x299c 0000298c: SWAP1 0000298d: DUP11 0000298e: SWAP1 0000298f: DUP11 00002990: SWAP1 00002991: DUP11 00002992: SWAP1 00002993: DUP11 00002994: SWAP1 00002995: PUSH1 0x04 00002997: ADD 00002998: PUSH2 0x3dca 0000299b: JUMP 0000299c: JUMPDEST 0000299d: PUSH1 0x00 0000299f: PUSH1 0x40 000029a1: MLOAD 000029a2: DUP1 000029a3: DUP4 000029a4: SUB 000029a5: DUP2 000029a6: DUP6 000029a7: DUP9 000029a8: DUP1 000029a9: EXTCODESIZE 000029aa: ISZERO 000029ab: DUP1 000029ac: ISZERO 000029ad: PUSH2 0x29b5 000029b0: JUMPI 000029b1: PUSH1 0x00 000029b3: DUP1 000029b4: REVERT 000029b5: JUMPDEST 000029b6: POP 000029b7: GAS 000029b8: CALL 000029b9: ISZERO 000029ba: DUP1 000029bb: ISZERO 000029bc: PUSH2 0x29c9 000029bf: JUMPI 000029c0: RETURNDATASIZE 000029c1: PUSH1 0x00 000029c3: DUP1 000029c4: RETURNDATACOPY 000029c5: RETURNDATASIZE 000029c6: PUSH1 0x00 000029c8: REVERT 000029c9: JUMPDEST 000029ca: POP 000029cb: POP 000029cc: POP 000029cd: POP 000029ce: POP 000029cf: PUSH2 0x2a60 000029d2: JUMP 000029d3: JUMPDEST 000029d4: DUP2 000029d5: PUSH2 0xffff 000029d8: AND 000029d9: PUSH1 0x02 000029db: EQ 000029dc: ISZERO 000029dd: PUSH2 0x2a60 000029e0: JUMPI 000029e1: PUSH1 0x40 000029e3: MLOAD 000029e4: PUSH32 0xa6417ed600000000000000000000000000000000000000000000000000000000 00002a05: DUP2 00002a06: MSTORE 00002a07: PUSH1 0x01 00002a09: PUSH1 0x01 00002a0b: PUSH1 0xa0 00002a0d: SHL 00002a0e: SUB 00002a0f: DUP3 00002a10: AND 00002a11: SWAP1 00002a12: PUSH4 0xa6417ed6 00002a17: SWAP1 00002a18: CALLVALUE 00002a19: SWAP1 00002a1a: PUSH2 0x2a2d 00002a1d: SWAP1 00002a1e: DUP11 00002a1f: SWAP1 00002a20: DUP11 00002a21: SWAP1 00002a22: DUP11 00002a23: SWAP1 00002a24: DUP11 00002a25: SWAP1 00002a26: PUSH1 0x04 00002a28: ADD 00002a29: PUSH2 0x3dca 00002a2c: JUMP 00002a2d: JUMPDEST 00002a2e: PUSH1 0x00 00002a30: PUSH1 0x40 00002a32: MLOAD 00002a33: DUP1 00002a34: DUP4 00002a35: SUB 00002a36: DUP2 00002a37: DUP6 00002a38: DUP9 00002a39: DUP1 00002a3a: EXTCODESIZE 00002a3b: ISZERO 00002a3c: DUP1 00002a3d: ISZERO 00002a3e: PUSH2 0x2a46 00002a41: JUMPI 00002a42: PUSH1 0x00 00002a44: DUP1 00002a45: REVERT 00002a46: JUMPDEST 00002a47: POP 00002a48: GAS 00002a49: CALL 00002a4a: ISZERO 00002a4b: DUP1 00002a4c: ISZERO 00002a4d: PUSH2 0x2a5a 00002a50: JUMPI 00002a51: RETURNDATASIZE 00002a52: PUSH1 0x00 00002a54: DUP1 00002a55: RETURNDATACOPY 00002a56: RETURNDATASIZE 00002a57: PUSH1 0x00 00002a59: REVERT 00002a5a: JUMPDEST 00002a5b: POP 00002a5c: POP 00002a5d: POP 00002a5e: POP 00002a5f: POP 00002a60: JUMPDEST 00002a61: POP 00002a62: POP 00002a63: POP 00002a64: POP 00002a65: POP 00002a66: POP 00002a67: POP 00002a68: JUMP 00002a69: JUMPDEST 00002a6a: PUSH2 0x22cb 00002a6d: DUP4 00002a6e: PUSH4 0xa9059cbb 00002a73: PUSH1 0xe0 00002a75: SHL 00002a76: DUP5 00002a77: DUP5 00002a78: PUSH1 0x40 00002a7a: MLOAD 00002a7b: PUSH1 0x24 00002a7d: ADD 00002a7e: PUSH2 0x227f 00002a81: SWAP3 00002a82: SWAP2 00002a83: SWAP1 00002a84: PUSH2 0x3ce0 00002a87: JUMP 00002a88: JUMPDEST 00002a89: PUSH1 0x60 00002a8b: PUSH2 0x2add 00002a8e: DUP3 00002a8f: PUSH1 0x40 00002a91: MLOAD 00002a92: DUP1 00002a93: PUSH1 0x40 00002a95: ADD 00002a96: PUSH1 0x40 00002a98: MSTORE 00002a99: DUP1 00002a9a: PUSH1 0x20 00002a9c: DUP2 00002a9d: MSTORE 00002a9e: PUSH1 0x20 00002aa0: ADD 00002aa1: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00002ac2: DUP2 00002ac3: MSTORE 00002ac4: POP 00002ac5: DUP6 00002ac6: PUSH1 0x01 00002ac8: PUSH1 0x01 00002aca: PUSH1 0xa0 00002acc: SHL 00002acd: SUB 00002ace: AND 00002acf: PUSH2 0x2ee1 00002ad2: SWAP1 00002ad3: SWAP3 00002ad4: SWAP2 00002ad5: SWAP1 00002ad6: PUSH4 0xffffffff 00002adb: AND 00002adc: JUMP 00002add: JUMPDEST 00002ade: DUP1 00002adf: MLOAD 00002ae0: SWAP1 00002ae1: SWAP2 00002ae2: POP 00002ae3: ISZERO 00002ae4: PUSH2 0x22cb 00002ae7: JUMPI 00002ae8: DUP1 00002ae9: DUP1 00002aea: PUSH1 0x20 00002aec: ADD 00002aed: SWAP1 00002aee: MLOAD 00002aef: DUP2 00002af0: ADD 00002af1: SWAP1 00002af2: PUSH2 0x2afb 00002af5: SWAP2 00002af6: SWAP1 00002af7: PUSH2 0x3736 00002afa: JUMP 00002afb: JUMPDEST 00002afc: PUSH2 0x22cb 00002aff: JUMPI 00002b00: PUSH1 0x40 00002b02: MLOAD 00002b03: PUSH3 0x461bcd 00002b07: PUSH1 0xe5 00002b09: SHL 00002b0a: DUP2 00002b0b: MSTORE 00002b0c: PUSH1 0x04 00002b0e: ADD 00002b0f: PUSH2 0x0435 00002b12: SWAP1 00002b13: PUSH2 0x4925 00002b16: JUMP 00002b17: JUMPDEST 00002b18: DUP1 00002b19: MLOAD 00002b1a: PUSH1 0x00 00002b1c: SWAP1 00002b1d: DUP9 00002b1e: SWAP1 00002b1f: PUSH2 0x2ba3 00002b22: JUMPI 00002b23: PUSH1 0x40 00002b25: DUP1 00002b26: MLOAD 00002b27: PUSH1 0x02 00002b29: DUP1 00002b2a: DUP3 00002b2b: MSTORE 00002b2c: PUSH1 0x60 00002b2e: DUP3 00002b2f: ADD 00002b30: DUP4 00002b31: MSTORE 00002b32: SWAP1 00002b33: SWAP2 00002b34: PUSH1 0x20 00002b36: DUP4 00002b37: ADD 00002b38: SWAP1 00002b39: DUP1 00002b3a: CALLDATASIZE 00002b3b: DUP4 00002b3c: CALLDATACOPY 00002b3d: ADD 00002b3e: SWAP1 00002b3f: POP 00002b40: POP 00002b41: SWAP3 00002b42: POP 00002b43: DUP8 00002b44: DUP4 00002b45: PUSH1 0x00 00002b47: DUP2 00002b48: MLOAD 00002b49: DUP2 00002b4a: LT 00002b4b: PUSH2 0x2b50 00002b4e: JUMPI 00002b4f: INVALID 00002b50: JUMPDEST 00002b51: PUSH1 0x20 00002b53: MUL 00002b54: PUSH1 0x20 00002b56: ADD 00002b57: ADD 00002b58: SWAP1 00002b59: PUSH1 0x01 00002b5b: PUSH1 0x01 00002b5d: PUSH1 0xa0 00002b5f: SHL 00002b60: SUB 00002b61: AND 00002b62: SWAP1 00002b63: DUP2 00002b64: PUSH1 0x01 00002b66: PUSH1 0x01 00002b68: PUSH1 0xa0 00002b6a: SHL 00002b6b: SUB 00002b6c: AND 00002b6d: DUP2 00002b6e: MSTORE 00002b6f: POP 00002b70: POP 00002b71: DUP7 00002b72: DUP4 00002b73: PUSH1 0x01 00002b75: DUP2 00002b76: MLOAD 00002b77: DUP2 00002b78: LT 00002b79: PUSH2 0x2b7e 00002b7c: JUMPI 00002b7d: INVALID 00002b7e: JUMPDEST 00002b7f: PUSH1 0x20 00002b81: MUL 00002b82: PUSH1 0x20 00002b84: ADD 00002b85: ADD 00002b86: SWAP1 00002b87: PUSH1 0x01 00002b89: PUSH1 0x01 00002b8b: PUSH1 0xa0 00002b8d: SHL 00002b8e: SUB 00002b8f: AND 00002b90: SWAP1 00002b91: DUP2 00002b92: PUSH1 0x01 00002b94: PUSH1 0x01 00002b96: PUSH1 0xa0 00002b98: SHL 00002b99: SUB 00002b9a: AND 00002b9b: DUP2 00002b9c: MSTORE 00002b9d: POP 00002b9e: POP 00002b9f: PUSH2 0x2c52 00002ba2: JUMP 00002ba3: JUMPDEST 00002ba4: PUSH1 0x02 00002ba6: DUP4 00002ba7: MLOAD 00002ba8: LT 00002ba9: ISZERO 00002baa: PUSH2 0x2bc5 00002bad: JUMPI 00002bae: PUSH1 0x40 00002bb0: MLOAD 00002bb1: PUSH3 0x461bcd 00002bb5: PUSH1 0xe5 00002bb7: SHL 00002bb8: DUP2 00002bb9: MSTORE 00002bba: PUSH1 0x04 00002bbc: ADD 00002bbd: PUSH2 0x0435 00002bc0: SWAP1 00002bc1: PUSH2 0x48c8 00002bc4: JUMP 00002bc5: JUMPDEST 00002bc6: DUP8 00002bc7: PUSH1 0x01 00002bc9: PUSH1 0x01 00002bcb: PUSH1 0xa0 00002bcd: SHL 00002bce: SUB 00002bcf: AND 00002bd0: DUP4 00002bd1: PUSH1 0x00 00002bd3: DUP2 00002bd4: MLOAD 00002bd5: DUP2 00002bd6: LT 00002bd7: PUSH2 0x2bdc 00002bda: JUMPI 00002bdb: INVALID 00002bdc: JUMPDEST 00002bdd: PUSH1 0x20 00002bdf: MUL 00002be0: PUSH1 0x20 00002be2: ADD 00002be3: ADD 00002be4: MLOAD 00002be5: PUSH1 0x01 00002be7: PUSH1 0x01 00002be9: PUSH1 0xa0 00002beb: SHL 00002bec: SUB 00002bed: AND 00002bee: EQ 00002bef: PUSH2 0x2c0a 00002bf2: JUMPI 00002bf3: PUSH1 0x40 00002bf5: MLOAD 00002bf6: PUSH3 0x461bcd 00002bfa: PUSH1 0xe5 00002bfc: SHL 00002bfd: DUP2 00002bfe: MSTORE 00002bff: PUSH1 0x04 00002c01: ADD 00002c02: PUSH2 0x0435 00002c05: SWAP1 00002c06: PUSH2 0x42fc 00002c09: JUMP 00002c0a: JUMPDEST 00002c0b: DUP7 00002c0c: PUSH1 0x01 00002c0e: PUSH1 0x01 00002c10: PUSH1 0xa0 00002c12: SHL 00002c13: SUB 00002c14: AND 00002c15: DUP4 00002c16: PUSH1 0x01 00002c18: DUP6 00002c19: MLOAD 00002c1a: SUB 00002c1b: DUP2 00002c1c: MLOAD 00002c1d: DUP2 00002c1e: LT 00002c1f: PUSH2 0x2c24 00002c22: JUMPI 00002c23: INVALID 00002c24: JUMPDEST 00002c25: PUSH1 0x20 00002c27: MUL 00002c28: PUSH1 0x20 00002c2a: ADD 00002c2b: ADD 00002c2c: MLOAD 00002c2d: PUSH1 0x01 00002c2f: PUSH1 0x01 00002c31: PUSH1 0xa0 00002c33: SHL 00002c34: SUB 00002c35: AND 00002c36: EQ 00002c37: PUSH2 0x2c52 00002c3a: JUMPI 00002c3b: PUSH1 0x40 00002c3d: MLOAD 00002c3e: PUSH3 0x461bcd 00002c42: PUSH1 0xe5 00002c44: SHL 00002c45: DUP2 00002c46: MSTORE 00002c47: PUSH1 0x04 00002c49: ADD 00002c4a: PUSH2 0x0435 00002c4d: SWAP1 00002c4e: PUSH2 0x429f 00002c51: JUMP 00002c52: JUMPDEST 00002c53: PUSH1 0x40 00002c55: MLOAD 00002c56: PUSH4 0x38ed1739 00002c5b: PUSH1 0xe0 00002c5d: SHL 00002c5e: DUP2 00002c5f: MSTORE 00002c60: PUSH1 0x60 00002c62: SWAP1 00002c63: PUSH1 0x01 00002c65: PUSH1 0x01 00002c67: PUSH1 0xa0 00002c69: SHL 00002c6a: SUB 00002c6b: DUP4 00002c6c: AND 00002c6d: SWAP1 00002c6e: PUSH4 0x38ed1739 00002c73: SWAP1 00002c74: PUSH2 0x2c89 00002c77: SWAP1 00002c78: DUP11 00002c79: SWAP1 00002c7a: DUP11 00002c7b: SWAP1 00002c7c: DUP10 00002c7d: SWAP1 00002c7e: ADDRESS 00002c7f: SWAP1 00002c80: DUP13 00002c81: SWAP1 00002c82: PUSH1 0x04 00002c84: ADD 00002c85: PUSH2 0x4c3b 00002c88: JUMP 00002c89: JUMPDEST 00002c8a: PUSH1 0x00 00002c8c: PUSH1 0x40 00002c8e: MLOAD 00002c8f: DUP1 00002c90: DUP4 00002c91: SUB 00002c92: DUP2 00002c93: PUSH1 0x00 00002c95: DUP8 00002c96: DUP1 00002c97: EXTCODESIZE 00002c98: ISZERO 00002c99: DUP1 00002c9a: ISZERO 00002c9b: PUSH2 0x2ca3 00002c9e: JUMPI 00002c9f: PUSH1 0x00 00002ca1: DUP1 00002ca2: REVERT 00002ca3: JUMPDEST 00002ca4: POP 00002ca5: GAS 00002ca6: CALL 00002ca7: ISZERO 00002ca8: DUP1 00002ca9: ISZERO 00002caa: PUSH2 0x2cb7 00002cad: JUMPI 00002cae: RETURNDATASIZE 00002caf: PUSH1 0x00 00002cb1: DUP1 00002cb2: RETURNDATACOPY 00002cb3: RETURNDATASIZE 00002cb4: PUSH1 0x00 00002cb6: REVERT 00002cb7: JUMPDEST 00002cb8: POP 00002cb9: POP 00002cba: POP 00002cbb: POP 00002cbc: PUSH1 0x40 00002cbe: MLOAD 00002cbf: RETURNDATASIZE 00002cc0: PUSH1 0x00 00002cc2: DUP3 00002cc3: RETURNDATACOPY 00002cc4: PUSH1 0x1f 00002cc6: RETURNDATASIZE 00002cc7: SWAP1 00002cc8: DUP2 00002cc9: ADD 00002cca: PUSH1 0x1f 00002ccc: NOT 00002ccd: AND 00002cce: DUP3 00002ccf: ADD 00002cd0: PUSH1 0x40 00002cd2: MSTORE 00002cd3: PUSH2 0x2cdf 00002cd6: SWAP2 00002cd7: SWAP1 00002cd8: DUP2 00002cd9: ADD 00002cda: SWAP1 00002cdb: PUSH2 0x36a6 00002cde: JUMP 00002cdf: JUMPDEST 00002ce0: SWAP1 00002ce1: POP 00002ce2: DUP1 00002ce3: PUSH1 0x01 00002ce5: DUP3 00002ce6: MLOAD 00002ce7: SUB 00002ce8: DUP2 00002ce9: MLOAD 00002cea: DUP2 00002ceb: LT 00002cec: PUSH2 0x2cf1 00002cef: JUMPI 00002cf0: INVALID 00002cf1: JUMPDEST 00002cf2: PUSH1 0x20 00002cf4: MUL 00002cf5: PUSH1 0x20 00002cf7: ADD 00002cf8: ADD 00002cf9: MLOAD 00002cfa: SWAP3 00002cfb: POP 00002cfc: POP 00002cfd: POP 00002cfe: SWAP8 00002cff: SWAP7 00002d00: POP 00002d01: POP 00002d02: POP 00002d03: POP 00002d04: POP 00002d05: POP 00002d06: POP 00002d07: JUMP 00002d08: JUMPDEST 00002d09: PUSH1 0x00 00002d0b: DUP8 00002d0c: DUP2 00002d0d: PUSH2 0x2d16 00002d10: DUP5 00002d11: DUP3 00002d12: PUSH2 0x2505 00002d15: JUMP 00002d16: JUMPDEST 00002d17: SWAP1 00002d18: POP 00002d19: PUSH1 0x01 00002d1b: PUSH1 0xff 00002d1d: DUP3 00002d1e: AND 00002d1f: EQ 00002d20: ISZERO 00002d21: PUSH2 0x2e22 00002d24: JUMPI 00002d25: PUSH1 0x00 00002d27: DUP5 00002d28: DUP1 00002d29: PUSH1 0x20 00002d2b: ADD 00002d2c: SWAP1 00002d2d: MLOAD 00002d2e: DUP2 00002d2f: ADD 00002d30: SWAP1 00002d31: PUSH2 0x2d3a 00002d34: SWAP2 00002d35: SWAP1 00002d36: PUSH2 0x39d9 00002d39: JUMP 00002d3a: JUMPDEST 00002d3b: SWAP2 00002d3c: POP 00002d3d: POP 00002d3e: PUSH2 0x2d45 00002d41: PUSH2 0x337d 00002d44: JUMP 00002d45: JUMPDEST 00002d46: PUSH1 0x01 00002d48: PUSH1 0x01 00002d4a: PUSH1 0xa0 00002d4c: SHL 00002d4d: SUB 00002d4e: DUP1 00002d4f: DUP13 00002d50: AND 00002d51: DUP3 00002d52: MSTORE 00002d53: DUP11 00002d54: DUP2 00002d55: AND 00002d56: PUSH1 0x20 00002d58: DUP4 00002d59: ADD 00002d5a: MSTORE 00002d5b: PUSH3 0xffffff 00002d5f: DUP4 00002d60: AND 00002d61: PUSH1 0x40 00002d63: DUP1 00002d64: DUP5 00002d65: ADD 00002d66: SWAP2 00002d67: SWAP1 00002d68: SWAP2 00002d69: MSTORE 00002d6a: ADDRESS 00002d6b: PUSH1 0x60 00002d6d: DUP5 00002d6e: ADD 00002d6f: MSTORE 00002d70: PUSH1 0x80 00002d72: DUP4 00002d73: ADD 00002d74: DUP12 00002d75: SWAP1 00002d76: MSTORE 00002d77: PUSH1 0xa0 00002d79: DUP4 00002d7a: ADD 00002d7b: DUP11 00002d7c: SWAP1 00002d7d: MSTORE 00002d7e: PUSH1 0xc0 00002d80: DUP4 00002d81: ADD 00002d82: DUP10 00002d83: SWAP1 00002d84: MSTORE 00002d85: PUSH1 0x00 00002d87: PUSH1 0xe0 00002d89: DUP5 00002d8a: ADD 00002d8b: MSTORE 00002d8c: MLOAD 00002d8d: PUSH32 0x414bf38900000000000000000000000000000000000000000000000000000000 00002dae: DUP2 00002daf: MSTORE 00002db0: SWAP1 00002db1: DUP6 00002db2: AND 00002db3: SWAP1 00002db4: PUSH4 0x414bf389 00002db9: SWAP1 00002dba: PUSH2 0x2dc7 00002dbd: SWAP1 00002dbe: DUP5 00002dbf: SWAP1 00002dc0: PUSH1 0x04 00002dc2: ADD 00002dc3: PUSH2 0x4add 00002dc6: JUMP 00002dc7: JUMPDEST 00002dc8: PUSH1 0x20 00002dca: PUSH1 0x40 00002dcc: MLOAD 00002dcd: DUP1 00002dce: DUP4 00002dcf: SUB 00002dd0: DUP2 00002dd1: PUSH1 0x00 00002dd3: DUP8 00002dd4: DUP1 00002dd5: EXTCODESIZE 00002dd6: ISZERO 00002dd7: DUP1 00002dd8: ISZERO 00002dd9: PUSH2 0x2de1 00002ddc: JUMPI 00002ddd: PUSH1 0x00 00002ddf: DUP1 00002de0: REVERT 00002de1: JUMPDEST 00002de2: POP 00002de3: GAS 00002de4: CALL 00002de5: ISZERO 00002de6: DUP1 00002de7: ISZERO 00002de8: PUSH2 0x2df5 00002deb: JUMPI 00002dec: RETURNDATASIZE 00002ded: PUSH1 0x00 00002def: DUP1 00002df0: RETURNDATACOPY 00002df1: RETURNDATASIZE 00002df2: PUSH1 0x00 00002df4: REVERT 00002df5: JUMPDEST 00002df6: POP 00002df7: POP 00002df8: POP 00002df9: POP 00002dfa: PUSH1 0x40 00002dfc: MLOAD 00002dfd: RETURNDATASIZE 00002dfe: PUSH1 0x1f 00002e00: NOT 00002e01: PUSH1 0x1f 00002e03: DUP3 00002e04: ADD 00002e05: AND 00002e06: DUP3 00002e07: ADD 00002e08: DUP1 00002e09: PUSH1 0x40 00002e0b: MSTORE 00002e0c: POP 00002e0d: DUP2 00002e0e: ADD 00002e0f: SWAP1 00002e10: PUSH2 0x2e19 00002e13: SWAP2 00002e14: SWAP1 00002e15: PUSH2 0x3938 00002e18: JUMP 00002e19: JUMPDEST 00002e1a: SWAP5 00002e1b: POP 00002e1c: POP 00002e1d: POP 00002e1e: PUSH2 0x2ed4 00002e21: JUMP 00002e22: JUMPDEST 00002e23: DUP1 00002e24: PUSH1 0xff 00002e26: AND 00002e27: PUSH1 0x02 00002e29: EQ 00002e2a: ISZERO 00002e2b: PUSH2 0x2ebc 00002e2e: JUMPI 00002e2f: PUSH1 0x60 00002e31: DUP5 00002e32: DUP1 00002e33: PUSH1 0x20 00002e35: ADD 00002e36: SWAP1 00002e37: MLOAD 00002e38: DUP2 00002e39: ADD 00002e3a: SWAP1 00002e3b: PUSH2 0x2e44 00002e3e: SWAP2 00002e3f: SWAP1 00002e40: PUSH2 0x3950 00002e43: JUMP 00002e44: JUMPDEST 00002e45: SWAP2 00002e46: POP 00002e47: POP 00002e48: PUSH2 0x2e52 00002e4b: DUP2 00002e4c: DUP12 00002e4d: DUP12 00002e4e: PUSH2 0x2ef0 00002e51: JUMP 00002e52: JUMPDEST 00002e53: PUSH2 0x2e5a 00002e56: PUSH2 0x33c1 00002e59: JUMP 00002e5a: JUMPDEST 00002e5b: DUP2 00002e5c: DUP2 00002e5d: MSTORE 00002e5e: ADDRESS 00002e5f: PUSH1 0x20 00002e61: DUP3 00002e62: ADD 00002e63: MSTORE 00002e64: PUSH1 0x40 00002e66: DUP1 00002e67: DUP3 00002e68: ADD 00002e69: DUP11 00002e6a: SWAP1 00002e6b: MSTORE 00002e6c: PUSH1 0x60 00002e6e: DUP3 00002e6f: ADD 00002e70: DUP10 00002e71: SWAP1 00002e72: MSTORE 00002e73: PUSH1 0x80 00002e75: DUP3 00002e76: ADD 00002e77: DUP9 00002e78: SWAP1 00002e79: MSTORE 00002e7a: MLOAD 00002e7b: PUSH32 0xc04b8d5900000000000000000000000000000000000000000000000000000000 00002e9c: DUP2 00002e9d: MSTORE 00002e9e: PUSH1 0x01 00002ea0: PUSH1 0x01 00002ea2: PUSH1 0xa0 00002ea4: SHL 00002ea5: SUB 00002ea6: DUP6 00002ea7: AND 00002ea8: SWAP1 00002ea9: PUSH4 0xc04b8d59 00002eae: SWAP1 00002eaf: PUSH2 0x2dc7 00002eb2: SWAP1 00002eb3: DUP5 00002eb4: SWAP1 00002eb5: PUSH1 0x04 00002eb7: ADD 00002eb8: PUSH2 0x4a84 00002ebb: JUMP 00002ebc: JUMPDEST 00002ebd: PUSH1 0x40 00002ebf: MLOAD 00002ec0: PUSH3 0x461bcd 00002ec4: PUSH1 0xe5 00002ec6: SHL 00002ec7: DUP2 00002ec8: MSTORE 00002ec9: PUSH1 0x04 00002ecb: ADD 00002ecc: PUSH2 0x0435 00002ecf: SWAP1 00002ed0: PUSH2 0x480e 00002ed3: JUMP 00002ed4: JUMPDEST 00002ed5: POP 00002ed6: POP 00002ed7: SWAP8 00002ed8: SWAP7 00002ed9: POP 00002eda: POP 00002edb: POP 00002edc: POP 00002edd: POP 00002ede: POP 00002edf: POP 00002ee0: JUMP 00002ee1: JUMPDEST 00002ee2: PUSH1 0x60 00002ee4: PUSH2 0x1612 00002ee7: DUP5 00002ee8: DUP5 00002ee9: PUSH1 0x00 00002eeb: DUP6 00002eec: PUSH2 0x2fb0 00002eef: JUMP 00002ef0: JUMPDEST 00002ef1: PUSH1 0x00 00002ef3: DUP1 00002ef4: PUSH2 0x2efc 00002ef7: DUP6 00002ef8: PUSH2 0x3071 00002efb: JUMP 00002efc: JUMPDEST 00002efd: POP 00002efe: SWAP2 00002eff: POP 00002f00: SWAP2 00002f01: POP 00002f02: PUSH2 0x2f0a 00002f05: DUP6 00002f06: PUSH2 0x30a2 00002f09: JUMP 00002f0a: JUMPDEST 00002f0b: ISZERO 00002f0c: PUSH2 0x2f47 00002f0f: JUMPI 00002f10: PUSH2 0x2f18 00002f13: DUP6 00002f14: PUSH2 0x30aa 00002f17: JUMP 00002f18: JUMPDEST 00002f19: SWAP5 00002f1a: POP 00002f1b: JUMPDEST 00002f1c: PUSH2 0x2f24 00002f1f: DUP6 00002f20: PUSH2 0x30a2 00002f23: JUMP 00002f24: JUMPDEST 00002f25: ISZERO 00002f26: PUSH2 0x2f39 00002f29: JUMPI 00002f2a: PUSH2 0x2f32 00002f2d: DUP6 00002f2e: PUSH2 0x30aa 00002f31: JUMP 00002f32: JUMPDEST 00002f33: SWAP5 00002f34: POP 00002f35: PUSH2 0x2f1b 00002f38: JUMP 00002f39: JUMPDEST 00002f3a: PUSH2 0x2f42 00002f3d: DUP6 00002f3e: PUSH2 0x3071 00002f41: JUMP 00002f42: JUMPDEST 00002f43: POP 00002f44: SWAP2 00002f45: POP 00002f46: POP 00002f47: JUMPDEST 00002f48: DUP4 00002f49: PUSH1 0x01 00002f4b: PUSH1 0x01 00002f4d: PUSH1 0xa0 00002f4f: SHL 00002f50: SUB 00002f51: AND 00002f52: DUP3 00002f53: PUSH1 0x01 00002f55: PUSH1 0x01 00002f57: PUSH1 0xa0 00002f59: SHL 00002f5a: SUB 00002f5b: AND 00002f5c: EQ 00002f5d: PUSH2 0x2f78 00002f60: JUMPI 00002f61: PUSH1 0x40 00002f63: MLOAD 00002f64: PUSH3 0x461bcd 00002f68: PUSH1 0xe5 00002f6a: SHL 00002f6b: DUP2 00002f6c: MSTORE 00002f6d: PUSH1 0x04 00002f6f: ADD 00002f70: PUSH2 0x0435 00002f73: SWAP1 00002f74: PUSH2 0x42fc 00002f77: JUMP 00002f78: JUMPDEST 00002f79: DUP3 00002f7a: PUSH1 0x01 00002f7c: PUSH1 0x01 00002f7e: PUSH1 0xa0 00002f80: SHL 00002f81: SUB 00002f82: AND 00002f83: DUP2 00002f84: PUSH1 0x01 00002f86: PUSH1 0x01 00002f88: PUSH1 0xa0 00002f8a: SHL 00002f8b: SUB 00002f8c: AND 00002f8d: EQ 00002f8e: PUSH2 0x2fa9 00002f91: JUMPI 00002f92: PUSH1 0x40 00002f94: MLOAD 00002f95: PUSH3 0x461bcd 00002f99: PUSH1 0xe5 00002f9b: SHL 00002f9c: DUP2 00002f9d: MSTORE 00002f9e: PUSH1 0x04 00002fa0: ADD 00002fa1: PUSH2 0x0435 00002fa4: SWAP1 00002fa5: PUSH2 0x429f 00002fa8: JUMP 00002fa9: JUMPDEST 00002faa: POP 00002fab: POP 00002fac: POP 00002fad: POP 00002fae: POP 00002faf: JUMP 00002fb0: JUMPDEST 00002fb1: PUSH1 0x60 00002fb3: DUP3 00002fb4: SELFBALANCE 00002fb5: LT 00002fb6: ISZERO 00002fb7: PUSH2 0x2fd2 00002fba: JUMPI 00002fbb: PUSH1 0x40 00002fbd: MLOAD 00002fbe: PUSH3 0x461bcd 00002fc2: PUSH1 0xe5 00002fc4: SHL 00002fc5: DUP2 00002fc6: MSTORE 00002fc7: PUSH1 0x04 00002fc9: ADD 00002fca: PUSH2 0x0435 00002fcd: SWAP1 00002fce: PUSH2 0x41d4 00002fd1: JUMP 00002fd2: JUMPDEST 00002fd3: PUSH2 0x2fdb 00002fd6: DUP6 00002fd7: PUSH2 0x30c1 00002fda: JUMP 00002fdb: JUMPDEST 00002fdc: PUSH2 0x2ff7 00002fdf: JUMPI 00002fe0: PUSH1 0x40 00002fe2: MLOAD 00002fe3: PUSH3 0x461bcd 00002fe7: PUSH1 0xe5 00002fe9: SHL 00002fea: DUP2 00002feb: MSTORE 00002fec: PUSH1 0x04 00002fee: ADD 00002fef: PUSH2 0x0435 00002ff2: SWAP1 00002ff3: PUSH2 0x47a0 00002ff6: JUMP 00002ff7: JUMPDEST 00002ff8: PUSH1 0x00 00002ffa: PUSH1 0x60 00002ffc: DUP7 00002ffd: PUSH1 0x01 00002fff: PUSH1 0x01 00003001: PUSH1 0xa0 00003003: SHL 00003004: SUB 00003005: AND 00003006: DUP6 00003007: DUP8 00003008: PUSH1 0x40 0000300a: MLOAD 0000300b: PUSH2 0x3014 0000300e: SWAP2 0000300f: SWAP1 00003010: PUSH2 0x3a52 00003013: JUMP 00003014: JUMPDEST 00003015: PUSH1 0x00 00003017: PUSH1 0x40 00003019: MLOAD 0000301a: DUP1 0000301b: DUP4 0000301c: SUB 0000301d: DUP2 0000301e: DUP6 0000301f: DUP8 00003020: GAS 00003021: CALL 00003022: SWAP3 00003023: POP 00003024: POP 00003025: POP 00003026: RETURNDATASIZE 00003027: DUP1 00003028: PUSH1 0x00 0000302a: DUP2 0000302b: EQ 0000302c: PUSH2 0x3051 0000302f: JUMPI 00003030: PUSH1 0x40 00003032: MLOAD 00003033: SWAP2 00003034: POP 00003035: PUSH1 0x1f 00003037: NOT 00003038: PUSH1 0x3f 0000303a: RETURNDATASIZE 0000303b: ADD 0000303c: AND 0000303d: DUP3 0000303e: ADD 0000303f: PUSH1 0x40 00003041: MSTORE 00003042: RETURNDATASIZE 00003043: DUP3 00003044: MSTORE 00003045: RETURNDATASIZE 00003046: PUSH1 0x00 00003048: PUSH1 0x20 0000304a: DUP5 0000304b: ADD 0000304c: RETURNDATACOPY 0000304d: PUSH2 0x3056 00003050: JUMP 00003051: JUMPDEST 00003052: PUSH1 0x60 00003054: SWAP2 00003055: POP 00003056: JUMPDEST 00003057: POP 00003058: SWAP2 00003059: POP 0000305a: SWAP2 0000305b: POP 0000305c: PUSH2 0x3066 0000305f: DUP3 00003060: DUP3 00003061: DUP7 00003062: PUSH2 0x30c7 00003065: JUMP 00003066: JUMPDEST 00003067: SWAP8 00003068: SWAP7 00003069: POP 0000306a: POP 0000306b: POP 0000306c: POP 0000306d: POP 0000306e: POP 0000306f: POP 00003070: JUMP 00003071: JUMPDEST 00003072: PUSH1 0x00 00003074: DUP1 00003075: DUP1 00003076: PUSH2 0x307f 00003079: DUP5 0000307a: DUP3 0000307b: PUSH2 0x3100 0000307e: JUMP 0000307f: JUMPDEST 00003080: SWAP3 00003081: POP 00003082: PUSH2 0x308c 00003085: DUP5 00003086: PUSH1 0x14 00003088: PUSH2 0x3162 0000308b: JUMP 0000308c: JUMPDEST 0000308d: SWAP1 0000308e: POP 0000308f: PUSH2 0x3099 00003092: DUP5 00003093: PUSH1 0x17 00003095: PUSH2 0x3100 00003098: JUMP 00003099: JUMPDEST 0000309a: SWAP2 0000309b: POP 0000309c: SWAP2 0000309d: SWAP4 0000309e: SWAP1 0000309f: SWAP3 000030a0: POP 000030a1: JUMP 000030a2: JUMPDEST 000030a3: MLOAD 000030a4: PUSH1 0x42 000030a6: GT 000030a7: ISZERO 000030a8: SWAP1 000030a9: JUMP 000030aa: JUMPDEST 000030ab: DUP1 000030ac: MLOAD 000030ad: PUSH1 0x60 000030af: SWAP1 000030b0: PUSH2 0x2538 000030b3: SWAP1 000030b4: DUP4 000030b5: SWAP1 000030b6: PUSH1 0x17 000030b8: SWAP1 000030b9: PUSH1 0x16 000030bb: NOT 000030bc: ADD 000030bd: PUSH2 0x31b4 000030c0: JUMP 000030c1: JUMPDEST 000030c2: EXTCODESIZE 000030c3: ISZERO 000030c4: ISZERO 000030c5: SWAP1 000030c6: JUMP 000030c7: JUMPDEST 000030c8: PUSH1 0x60 000030ca: DUP4 000030cb: ISZERO 000030cc: PUSH2 0x30d6 000030cf: JUMPI 000030d0: POP 000030d1: DUP2 000030d2: PUSH2 0x269f 000030d5: JUMP 000030d6: JUMPDEST 000030d7: DUP3 000030d8: MLOAD 000030d9: ISZERO 000030da: PUSH2 0x30e6 000030dd: JUMPI 000030de: DUP3 000030df: MLOAD 000030e0: DUP1 000030e1: DUP5 000030e2: PUSH1 0x20 000030e4: ADD 000030e5: REVERT 000030e6: JUMPDEST 000030e7: DUP2 000030e8: PUSH1 0x40 000030ea: MLOAD 000030eb: PUSH3 0x461bcd 000030ef: PUSH1 0xe5 000030f1: SHL 000030f2: DUP2 000030f3: MSTORE 000030f4: PUSH1 0x04 000030f6: ADD 000030f7: PUSH2 0x0435 000030fa: SWAP2 000030fb: SWAP1 000030fc: PUSH2 0x3ded 000030ff: JUMP 00003100: JUMPDEST 00003101: PUSH1 0x00 00003103: DUP2 00003104: DUP3 00003105: PUSH1 0x14 00003107: ADD 00003108: LT 00003109: ISZERO 0000310a: PUSH2 0x3125 0000310d: JUMPI 0000310e: PUSH1 0x40 00003110: MLOAD 00003111: PUSH3 0x461bcd 00003115: PUSH1 0xe5 00003117: SHL 00003118: DUP2 00003119: MSTORE 0000311a: PUSH1 0x04 0000311c: ADD 0000311d: PUSH2 0x0435 00003120: SWAP1 00003121: PUSH2 0x4a4d 00003124: JUMP 00003125: JUMPDEST 00003126: DUP2 00003127: PUSH1 0x14 00003129: ADD 0000312a: DUP4 0000312b: MLOAD 0000312c: LT 0000312d: ISZERO 0000312e: PUSH2 0x3149 00003131: JUMPI 00003132: PUSH1 0x40 00003134: MLOAD 00003135: PUSH3 0x461bcd 00003139: PUSH1 0xe5 0000313b: SHL 0000313c: DUP2 0000313d: MSTORE 0000313e: PUSH1 0x04 00003140: ADD 00003141: PUSH2 0x0435 00003144: SWAP1 00003145: PUSH2 0x4587 00003148: JUMP 00003149: JUMPDEST 0000314a: POP 0000314b: ADD 0000314c: PUSH1 0x20 0000314e: ADD 0000314f: MLOAD 00003150: PUSH13 0x01000000000000000000000000 0000315e: SWAP1 0000315f: DIV 00003160: SWAP1 00003161: JUMP 00003162: JUMPDEST 00003163: PUSH1 0x00 00003165: DUP2 00003166: DUP3 00003167: PUSH1 0x03 00003169: ADD 0000316a: LT 0000316b: ISZERO 0000316c: PUSH2 0x3187 0000316f: JUMPI 00003170: PUSH1 0x40 00003172: MLOAD 00003173: PUSH3 0x461bcd 00003177: PUSH1 0xe5 00003179: SHL 0000317a: DUP2 0000317b: MSTORE 0000317c: PUSH1 0x04 0000317e: ADD 0000317f: PUSH2 0x0435 00003182: SWAP1 00003183: PUSH2 0x4109 00003186: JUMP 00003187: JUMPDEST 00003188: DUP2 00003189: PUSH1 0x03 0000318b: ADD 0000318c: DUP4 0000318d: MLOAD 0000318e: LT 0000318f: ISZERO 00003190: PUSH2 0x31ab 00003193: JUMPI 00003194: PUSH1 0x40 00003196: MLOAD 00003197: PUSH3 0x461bcd 0000319b: PUSH1 0xe5 0000319d: SHL 0000319e: DUP2 0000319f: MSTORE 000031a0: PUSH1 0x04 000031a2: ADD 000031a3: PUSH2 0x0435 000031a6: SWAP1 000031a7: PUSH2 0x4550 000031aa: JUMP 000031ab: JUMPDEST 000031ac: POP 000031ad: ADD 000031ae: PUSH1 0x03 000031b0: ADD 000031b1: MLOAD 000031b2: SWAP1 000031b3: JUMP 000031b4: JUMPDEST 000031b5: PUSH1 0x60 000031b7: DUP2 000031b8: DUP3 000031b9: PUSH1 0x1f 000031bb: ADD 000031bc: LT 000031bd: ISZERO 000031be: PUSH2 0x31d9 000031c1: JUMPI 000031c2: PUSH1 0x40 000031c4: MLOAD 000031c5: PUSH3 0x461bcd 000031c9: PUSH1 0xe5 000031cb: SHL 000031cc: DUP2 000031cd: MSTORE 000031ce: PUSH1 0x04 000031d0: ADD 000031d1: PUSH2 0x0435 000031d4: SWAP1 000031d5: PUSH2 0x4268 000031d8: JUMP 000031d9: JUMPDEST 000031da: DUP3 000031db: DUP3 000031dc: DUP5 000031dd: ADD 000031de: LT 000031df: ISZERO 000031e0: PUSH2 0x31fb 000031e3: JUMPI 000031e4: PUSH1 0x40 000031e6: MLOAD 000031e7: PUSH3 0x461bcd 000031eb: PUSH1 0xe5 000031ed: SHL 000031ee: DUP2 000031ef: MSTORE 000031f0: PUSH1 0x04 000031f2: ADD 000031f3: PUSH2 0x0435 000031f6: SWAP1 000031f7: PUSH2 0x4268 000031fa: JUMP 000031fb: JUMPDEST 000031fc: DUP2 000031fd: DUP4 000031fe: ADD 000031ff: DUP5 00003200: MLOAD 00003201: LT 00003202: ISZERO 00003203: PUSH2 0x321e 00003206: JUMPI 00003207: PUSH1 0x40 00003209: MLOAD 0000320a: PUSH3 0x461bcd 0000320e: PUSH1 0xe5 00003210: SHL 00003211: DUP2 00003212: MSTORE 00003213: PUSH1 0x04 00003215: ADD 00003216: PUSH2 0x0435 00003219: SWAP1 0000321a: PUSH2 0x47d7 0000321d: JUMP 0000321e: JUMPDEST 0000321f: PUSH1 0x60 00003221: DUP3 00003222: ISZERO 00003223: DUP1 00003224: ISZERO 00003225: PUSH2 0x323d 00003228: JUMPI 00003229: PUSH1 0x40 0000322b: MLOAD 0000322c: SWAP2 0000322d: POP 0000322e: PUSH1 0x00 00003230: DUP3 00003231: MSTORE 00003232: PUSH1 0x20 00003234: DUP3 00003235: ADD 00003236: PUSH1 0x40 00003238: MSTORE 00003239: PUSH2 0x3287 0000323c: JUMP 0000323d: JUMPDEST 0000323e: PUSH1 0x40 00003240: MLOAD 00003241: SWAP2 00003242: POP 00003243: PUSH1 0x1f 00003245: DUP5 00003246: AND 00003247: DUP1 00003248: ISZERO 00003249: PUSH1 0x20 0000324b: MUL 0000324c: DUP2 0000324d: DUP5 0000324e: ADD 0000324f: ADD 00003250: DUP6 00003251: DUP2 00003252: ADD 00003253: DUP8 00003254: DUP4 00003255: ISZERO 00003256: PUSH1 0x20 00003258: MUL 00003259: DUP5 0000325a: DUP12 0000325b: ADD 0000325c: ADD 0000325d: ADD 0000325e: JUMPDEST 0000325f: DUP2 00003260: DUP4 00003261: LT 00003262: ISZERO 00003263: PUSH2 0x3276 00003266: JUMPI 00003267: DUP1 00003268: MLOAD 00003269: DUP4 0000326a: MSTORE 0000326b: PUSH1 0x20 0000326d: SWAP3 0000326e: DUP4 0000326f: ADD 00003270: SWAP3 00003271: ADD 00003272: PUSH2 0x325e 00003275: JUMP 00003276: JUMPDEST 00003277: POP 00003278: POP 00003279: DUP6 0000327a: DUP5 0000327b: MSTORE 0000327c: PUSH1 0x1f 0000327e: ADD 0000327f: PUSH1 0x1f 00003281: NOT 00003282: AND 00003283: PUSH1 0x40 00003285: MSTORE 00003286: POP 00003287: JUMPDEST 00003288: POP 00003289: SWAP5 0000328a: SWAP4 0000328b: POP 0000328c: POP 0000328d: POP 0000328e: POP 0000328f: JUMP 00003290: JUMPDEST 00003291: PUSH1 0x40 00003293: DUP1 00003294: MLOAD 00003295: PUSH2 0x0120 00003298: DUP2 00003299: ADD 0000329a: DUP3 0000329b: MSTORE 0000329c: PUSH1 0x00 0000329e: DUP1 0000329f: DUP3 000032a0: MSTORE 000032a1: PUSH1 0x20 000032a3: DUP3 000032a4: ADD 000032a5: DUP2 000032a6: SWAP1 000032a7: MSTORE 000032a8: SWAP2 000032a9: DUP2 000032aa: ADD 000032ab: DUP3 000032ac: SWAP1 000032ad: MSTORE 000032ae: PUSH1 0x60 000032b0: DUP2 000032b1: ADD 000032b2: DUP3 000032b3: SWAP1 000032b4: MSTORE 000032b5: PUSH1 0x80 000032b7: DUP2 000032b8: ADD 000032b9: DUP3 000032ba: SWAP1 000032bb: MSTORE 000032bc: PUSH1 0xa0 000032be: DUP2 000032bf: ADD 000032c0: DUP3 000032c1: SWAP1 000032c2: MSTORE 000032c3: PUSH1 0xc0 000032c5: DUP2 000032c6: ADD 000032c7: DUP3 000032c8: SWAP1 000032c9: MSTORE 000032ca: PUSH1 0xe0 000032cc: DUP2 000032cd: ADD 000032ce: DUP3 000032cf: SWAP1 000032d0: MSTORE 000032d1: PUSH2 0x0100 000032d4: DUP2 000032d5: ADD 000032d6: SWAP2 000032d7: SWAP1 000032d8: SWAP2 000032d9: MSTORE 000032da: SWAP1 000032db: JUMP 000032dc: JUMPDEST 000032dd: PUSH1 0x40 000032df: DUP1 000032e0: MLOAD 000032e1: PUSH1 0xc0 000032e3: DUP2 000032e4: ADD 000032e5: DUP3 000032e6: MSTORE 000032e7: PUSH1 0x60 000032e9: DUP1 000032ea: DUP3 000032eb: MSTORE 000032ec: PUSH1 0x00 000032ee: PUSH1 0x20 000032f0: DUP4 000032f1: ADD 000032f2: DUP2 000032f3: SWAP1 000032f4: MSTORE 000032f5: SWAP3 000032f6: DUP3 000032f7: ADD 000032f8: DUP4 000032f9: SWAP1 000032fa: MSTORE 000032fb: DUP2 000032fc: ADD 000032fd: DUP3 000032fe: SWAP1 000032ff: MSTORE 00003300: PUSH1 0x80 00003302: DUP2 00003303: ADD 00003304: DUP3 00003305: SWAP1 00003306: MSTORE 00003307: PUSH1 0xa0 00003309: DUP2 0000330a: ADD 0000330b: SWAP2 0000330c: SWAP1 0000330d: SWAP2 0000330e: MSTORE 0000330f: SWAP1 00003310: JUMP 00003311: JUMPDEST 00003312: PUSH1 0x40 00003314: MLOAD 00003315: DUP1 00003316: PUSH1 0xc0 00003318: ADD 00003319: PUSH1 0x40 0000331b: MSTORE 0000331c: DUP1 0000331d: PUSH1 0x00 0000331f: ISZERO 00003320: ISZERO 00003321: DUP2 00003322: MSTORE 00003323: PUSH1 0x20 00003325: ADD 00003326: PUSH1 0x00 00003328: ISZERO 00003329: ISZERO 0000332a: DUP2 0000332b: MSTORE 0000332c: PUSH1 0x20 0000332e: ADD 0000332f: PUSH1 0x00 00003331: PUSH1 0x01 00003333: PUSH1 0x01 00003335: PUSH1 0xa0 00003337: SHL 00003338: SUB 00003339: AND 0000333a: DUP2 0000333b: MSTORE 0000333c: PUSH1 0x20 0000333e: ADD 0000333f: PUSH1 0x00 00003341: PUSH1 0x01 00003343: PUSH1 0x01 00003345: PUSH1 0xa0 00003347: SHL 00003348: SUB 00003349: AND 0000334a: DUP2 0000334b: MSTORE 0000334c: PUSH1 0x20 0000334e: ADD 0000334f: PUSH1 0x60 00003351: DUP2 00003352: MSTORE 00003353: PUSH1 0x20 00003355: ADD 00003356: PUSH1 0x60 00003358: DUP2 00003359: MSTORE 0000335a: POP 0000335b: SWAP1 0000335c: JUMP 0000335d: JUMPDEST 0000335e: PUSH1 0x40 00003360: DUP1 00003361: MLOAD 00003362: PUSH1 0x60 00003364: DUP2 00003365: ADD 00003366: DUP3 00003367: MSTORE 00003368: PUSH1 0x00 0000336a: DUP1 0000336b: DUP3 0000336c: MSTORE 0000336d: PUSH1 0x20 0000336f: DUP3 00003370: ADD 00003371: DUP2 00003372: SWAP1 00003373: MSTORE 00003374: SWAP2 00003375: DUP2 00003376: ADD 00003377: SWAP2 00003378: SWAP1 00003379: SWAP2 0000337a: MSTORE 0000337b: SWAP1 0000337c: JUMP 0000337d: JUMPDEST 0000337e: PUSH1 0x40 00003380: DUP1 00003381: MLOAD 00003382: PUSH2 0x0100 00003385: DUP2 00003386: ADD 00003387: DUP3 00003388: MSTORE 00003389: PUSH1 0x00 0000338b: DUP1 0000338c: DUP3 0000338d: MSTORE 0000338e: PUSH1 0x20 00003390: DUP3 00003391: ADD 00003392: DUP2 00003393: SWAP1 00003394: MSTORE 00003395: SWAP2 00003396: DUP2 00003397: ADD 00003398: DUP3 00003399: SWAP1 0000339a: MSTORE 0000339b: PUSH1 0x60 0000339d: DUP2 0000339e: ADD 0000339f: DUP3 000033a0: SWAP1 000033a1: MSTORE 000033a2: PUSH1 0x80 000033a4: DUP2 000033a5: ADD 000033a6: DUP3 000033a7: SWAP1 000033a8: MSTORE 000033a9: PUSH1 0xa0 000033ab: DUP2 000033ac: ADD 000033ad: DUP3 000033ae: SWAP1 000033af: MSTORE 000033b0: PUSH1 0xc0 000033b2: DUP2 000033b3: ADD 000033b4: DUP3 000033b5: SWAP1 000033b6: MSTORE 000033b7: PUSH1 0xe0 000033b9: DUP2 000033ba: ADD 000033bb: SWAP2 000033bc: SWAP1 000033bd: SWAP2 000033be: MSTORE 000033bf: SWAP1 000033c0: JUMP 000033c1: JUMPDEST 000033c2: PUSH1 0x40 000033c4: MLOAD 000033c5: DUP1 000033c6: PUSH1 0xa0 000033c8: ADD 000033c9: PUSH1 0x40 000033cb: MSTORE 000033cc: DUP1 000033cd: PUSH1 0x60 000033cf: DUP2 000033d0: MSTORE 000033d1: PUSH1 0x20 000033d3: ADD 000033d4: PUSH1 0x00 000033d6: PUSH1 0x01 000033d8: PUSH1 0x01 000033da: PUSH1 0xa0 000033dc: SHL 000033dd: SUB 000033de: AND 000033df: DUP2 000033e0: MSTORE 000033e1: PUSH1 0x20 000033e3: ADD 000033e4: PUSH1 0x00 000033e6: DUP2 000033e7: MSTORE 000033e8: PUSH1 0x20 000033ea: ADD 000033eb: PUSH1 0x00 000033ed: DUP2 000033ee: MSTORE 000033ef: PUSH1 0x20 000033f1: ADD 000033f2: PUSH1 0x00 000033f4: DUP2 000033f5: MSTORE 000033f6: POP 000033f7: SWAP1 000033f8: JUMP 000033f9: JUMPDEST 000033fa: DUP1 000033fb: CALLDATALOAD 000033fc: PUSH2 0x2538 000033ff: DUP2 00003400: PUSH2 0x4d42 00003403: JUMP 00003404: JUMPDEST 00003405: PUSH1 0x00 00003407: DUP1 00003408: DUP4 00003409: PUSH1 0x1f 0000340b: DUP5 0000340c: ADD 0000340d: SLT 0000340e: PUSH2 0x3415 00003411: JUMPI 00003412: DUP2 00003413: DUP3 00003414: REVERT 00003415: JUMPDEST 00003416: POP 00003417: DUP2 00003418: CALLDATALOAD 00003419: PUSH8 0xffffffffffffffff 00003422: DUP2 00003423: GT 00003424: ISZERO 00003425: PUSH2 0x342c 00003428: JUMPI 00003429: DUP2 0000342a: DUP3 0000342b: REVERT 0000342c: JUMPDEST 0000342d: PUSH1 0x20 0000342f: DUP4 00003430: ADD 00003431: SWAP2 00003432: POP 00003433: DUP4 00003434: PUSH1 0x20 00003436: DUP1 00003437: DUP4 00003438: MUL 00003439: DUP6 0000343a: ADD 0000343b: ADD 0000343c: GT 0000343d: ISZERO 0000343e: PUSH2 0x3446 00003441: JUMPI 00003442: PUSH1 0x00 00003444: DUP1 00003445: REVERT 00003446: JUMPDEST 00003447: SWAP3 00003448: POP 00003449: SWAP3 0000344a: SWAP1 0000344b: POP 0000344c: JUMP 0000344d: JUMPDEST 0000344e: PUSH1 0x00 00003450: DUP1 00003451: DUP4 00003452: PUSH1 0x1f 00003454: DUP5 00003455: ADD 00003456: SLT 00003457: PUSH2 0x345e 0000345a: JUMPI 0000345b: DUP2 0000345c: DUP3 0000345d: REVERT 0000345e: JUMPDEST 0000345f: POP 00003460: DUP2 00003461: CALLDATALOAD 00003462: PUSH8 0xffffffffffffffff 0000346b: DUP2 0000346c: GT 0000346d: ISZERO 0000346e: PUSH2 0x3475 00003471: JUMPI 00003472: DUP2 00003473: DUP3 00003474: REVERT 00003475: JUMPDEST 00003476: PUSH1 0x20 00003478: DUP4 00003479: ADD 0000347a: SWAP2 0000347b: POP 0000347c: DUP4 0000347d: PUSH1 0x20 0000347f: DUP3 00003480: DUP6 00003481: ADD 00003482: ADD 00003483: GT 00003484: ISZERO 00003485: PUSH2 0x3446 00003488: JUMPI 00003489: PUSH1 0x00 0000348b: DUP1 0000348c: REVERT 0000348d: JUMPDEST 0000348e: PUSH1 0x00 00003490: DUP3 00003491: PUSH1 0x1f 00003493: DUP4 00003494: ADD 00003495: SLT 00003496: PUSH2 0x349d 00003499: JUMPI 0000349a: DUP1 0000349b: DUP2 0000349c: REVERT 0000349d: JUMPDEST 0000349e: DUP2 0000349f: CALLDATALOAD 000034a0: PUSH2 0x34b0 000034a3: PUSH2 0x34ab 000034a6: DUP3 000034a7: PUSH2 0x4cf2 000034aa: JUMP 000034ab: JUMPDEST 000034ac: PUSH2 0x4cab 000034af: JUMP 000034b0: JUMPDEST 000034b1: SWAP2 000034b2: POP 000034b3: DUP1 000034b4: DUP3 000034b5: MSTORE 000034b6: DUP4 000034b7: PUSH1 0x20 000034b9: DUP3 000034ba: DUP6 000034bb: ADD 000034bc: ADD 000034bd: GT 000034be: ISZERO 000034bf: PUSH2 0x34c7 000034c2: JUMPI 000034c3: PUSH1 0x00 000034c5: DUP1 000034c6: REVERT 000034c7: JUMPDEST 000034c8: DUP1 000034c9: PUSH1 0x20 000034cb: DUP5 000034cc: ADD 000034cd: PUSH1 0x20 000034cf: DUP5 000034d0: ADD 000034d1: CALLDATACOPY 000034d2: PUSH1 0x00 000034d4: SWAP1 000034d5: DUP3 000034d6: ADD 000034d7: PUSH1 0x20 000034d9: ADD 000034da: MSTORE 000034db: SWAP3 000034dc: SWAP2 000034dd: POP 000034de: POP 000034df: JUMP 000034e0: JUMPDEST 000034e1: PUSH1 0x00 000034e3: PUSH1 0x20 000034e5: DUP3 000034e6: DUP5 000034e7: SUB 000034e8: SLT 000034e9: ISZERO 000034ea: PUSH2 0x34f1 000034ed: JUMPI 000034ee: DUP1 000034ef: DUP2 000034f0: REVERT 000034f1: JUMPDEST 000034f2: DUP2 000034f3: CALLDATALOAD 000034f4: PUSH2 0x269f 000034f7: DUP2 000034f8: PUSH2 0x4d42 000034fb: JUMP 000034fc: JUMPDEST 000034fd: PUSH1 0x00 000034ff: DUP1 00003500: PUSH1 0x00 00003502: DUP1 00003503: PUSH1 0x00 00003505: DUP1 00003506: PUSH1 0x00 00003508: DUP1 00003509: PUSH1 0x00 0000350b: DUP1 0000350c: PUSH1 0x00 0000350e: DUP1 0000350f: PUSH2 0x0160 00003512: DUP14 00003513: DUP16 00003514: SUB 00003515: SLT 00003516: ISZERO 00003517: PUSH2 0x351e 0000351a: JUMPI 0000351b: DUP8 0000351c: DUP9 0000351d: REVERT 0000351e: JUMPDEST 0000351f: PUSH2 0x3528 00003522: DUP14 00003523: CALLDATALOAD 00003524: PUSH2 0x4d42 00003527: JUMP 00003528: JUMPDEST 00003529: DUP13 0000352a: CALLDATALOAD 0000352b: SWAP12 0000352c: POP 0000352d: PUSH2 0x3539 00003530: PUSH1 0x20 00003532: DUP15 00003533: ADD 00003534: CALLDATALOAD 00003535: PUSH2 0x4d42 00003538: JUMP 00003539: JUMPDEST 0000353a: PUSH1 0x20 0000353c: DUP14 0000353d: ADD 0000353e: CALLDATALOAD 0000353f: SWAP11 00003540: POP 00003541: PUSH2 0x354d 00003544: DUP15 00003545: PUSH1 0x40 00003547: DUP16 00003548: ADD 00003549: PUSH2 0x33f9 0000354c: JUMP 0000354d: JUMPDEST 0000354e: SWAP10 0000354f: POP 00003550: PUSH1 0x60 00003552: DUP14 00003553: ADD 00003554: CALLDATALOAD 00003555: SWAP9 00003556: POP 00003557: PUSH1 0x80 00003559: DUP14 0000355a: ADD 0000355b: CALLDATALOAD 0000355c: SWAP8 0000355d: POP 0000355e: PUSH1 0xa0 00003560: DUP14 00003561: ADD 00003562: CALLDATALOAD 00003563: SWAP7 00003564: POP 00003565: PUSH2 0x3571 00003568: DUP15 00003569: PUSH1 0xc0 0000356b: DUP16 0000356c: ADD 0000356d: PUSH2 0x33f9 00003570: JUMP 00003571: JUMPDEST 00003572: SWAP6 00003573: POP 00003574: PUSH2 0x3580 00003577: DUP15 00003578: PUSH1 0xe0 0000357a: DUP16 0000357b: ADD 0000357c: PUSH2 0x33f9 0000357f: JUMP 00003580: JUMPDEST 00003581: SWAP5 00003582: POP 00003583: PUSH2 0x0100 00003586: DUP14 00003587: ADD 00003588: CALLDATALOAD 00003589: SWAP4 0000358a: POP 0000358b: PUSH2 0x0120 0000358e: DUP14 0000358f: ADD 00003590: CALLDATALOAD 00003591: SWAP3 00003592: POP 00003593: PUSH8 0xffffffffffffffff 0000359c: PUSH2 0x0140 0000359f: DUP15 000035a0: ADD 000035a1: CALLDATALOAD 000035a2: GT 000035a3: ISZERO 000035a4: PUSH2 0x35ab 000035a7: JUMPI 000035a8: DUP1 000035a9: DUP2 000035aa: REVERT 000035ab: JUMPDEST 000035ac: PUSH2 0x35bc 000035af: DUP15 000035b0: PUSH2 0x0140 000035b3: DUP16 000035b4: ADD 000035b5: CALLDATALOAD 000035b6: DUP16 000035b7: ADD 000035b8: PUSH2 0x344d 000035bb: JUMP 000035bc: JUMPDEST 000035bd: DUP2 000035be: SWAP4 000035bf: POP 000035c0: DUP1 000035c1: SWAP3 000035c2: POP 000035c3: POP 000035c4: POP 000035c5: SWAP3 000035c6: SWAP6 000035c7: SWAP9 000035c8: SWAP12 000035c9: POP 000035ca: SWAP3 000035cb: SWAP6 000035cc: SWAP9 000035cd: SWAP12 000035ce: POP 000035cf: SWAP3 000035d0: SWAP6 000035d1: SWAP9 000035d2: SWAP12 000035d3: JUMP 000035d4: JUMPDEST 000035d5: PUSH1 0x00 000035d7: DUP1 000035d8: PUSH1 0x00 000035da: DUP1 000035db: PUSH1 0x80 000035dd: DUP6 000035de: DUP8 000035df: SUB 000035e0: SLT 000035e1: ISZERO 000035e2: PUSH2 0x35e9 000035e5: JUMPI 000035e6: DUP4 000035e7: DUP5 000035e8: REVERT 000035e9: JUMPDEST 000035ea: DUP5 000035eb: CALLDATALOAD 000035ec: PUSH2 0x35f4 000035ef: DUP2 000035f0: PUSH2 0x4d42 000035f3: JUMP 000035f4: JUMPDEST 000035f5: SWAP4 000035f6: POP 000035f7: PUSH1 0x20 000035f9: DUP6 000035fa: ADD 000035fb: CALLDATALOAD 000035fc: SWAP3 000035fd: POP 000035fe: PUSH1 0x40 00003600: DUP6 00003601: ADD 00003602: CALLDATALOAD 00003603: PUSH8 0xffffffffffffffff 0000360c: DUP1 0000360d: DUP3 0000360e: GT 0000360f: ISZERO 00003610: PUSH2 0x3617 00003613: JUMPI 00003614: DUP4 00003615: DUP5 00003616: REVERT 00003617: JUMPDEST 00003618: PUSH2 0x3623 0000361b: DUP9 0000361c: DUP4 0000361d: DUP10 0000361e: ADD 0000361f: PUSH2 0x348d 00003622: JUMP 00003623: JUMPDEST 00003624: SWAP4 00003625: POP 00003626: PUSH1 0x60 00003628: DUP8 00003629: ADD 0000362a: CALLDATALOAD 0000362b: SWAP2 0000362c: POP 0000362d: DUP1 0000362e: DUP3 0000362f: GT 00003630: ISZERO 00003631: PUSH2 0x3638 00003634: JUMPI 00003635: DUP3 00003636: DUP4 00003637: REVERT 00003638: JUMPDEST 00003639: POP 0000363a: PUSH2 0x3645 0000363d: DUP8 0000363e: DUP3 0000363f: DUP9 00003640: ADD 00003641: PUSH2 0x348d 00003644: JUMP 00003645: JUMPDEST 00003646: SWAP2 00003647: POP 00003648: POP 00003649: SWAP3 0000364a: SWAP6 0000364b: SWAP2 0000364c: SWAP5 0000364d: POP 0000364e: SWAP3 0000364f: POP 00003650: JUMP 00003651: JUMPDEST 00003652: PUSH1 0x00 00003654: DUP1 00003655: PUSH1 0x00 00003657: PUSH1 0x40 00003659: DUP5 0000365a: DUP7 0000365b: SUB 0000365c: SLT 0000365d: ISZERO 0000365e: PUSH2 0x3665 00003661: JUMPI 00003662: DUP3 00003663: DUP4 00003664: REVERT 00003665: JUMPDEST 00003666: DUP4 00003667: CALLDATALOAD 00003668: PUSH8 0xffffffffffffffff 00003671: DUP2 00003672: GT 00003673: ISZERO 00003674: PUSH2 0x367b 00003677: JUMPI 00003678: DUP4 00003679: DUP5 0000367a: REVERT 0000367b: JUMPDEST 0000367c: PUSH2 0x3687 0000367f: DUP7 00003680: DUP3 00003681: DUP8 00003682: ADD 00003683: PUSH2 0x3404 00003686: JUMP 00003687: JUMPDEST 00003688: SWAP1 00003689: SWAP5 0000368a: POP 0000368b: SWAP3 0000368c: POP 0000368d: POP 0000368e: PUSH1 0x20 00003690: DUP5 00003691: ADD 00003692: CALLDATALOAD 00003693: PUSH2 0x369b 00003696: DUP2 00003697: PUSH2 0x4d42 0000369a: JUMP 0000369b: JUMPDEST 0000369c: DUP1 0000369d: SWAP2 0000369e: POP 0000369f: POP 000036a0: SWAP3 000036a1: POP 000036a2: SWAP3 000036a3: POP 000036a4: SWAP3 000036a5: JUMP 000036a6: JUMPDEST 000036a7: PUSH1 0x00 000036a9: PUSH1 0x20 000036ab: DUP1 000036ac: DUP4 000036ad: DUP6 000036ae: SUB 000036af: SLT 000036b0: ISZERO 000036b1: PUSH2 0x36b8 000036b4: JUMPI 000036b5: DUP2 000036b6: DUP3 000036b7: REVERT 000036b8: JUMPDEST 000036b9: DUP3 000036ba: MLOAD 000036bb: PUSH8 0xffffffffffffffff 000036c4: DUP2 000036c5: GT 000036c6: ISZERO 000036c7: PUSH2 0x36ce 000036ca: JUMPI 000036cb: DUP3 000036cc: DUP4 000036cd: REVERT 000036ce: JUMPDEST 000036cf: DUP4 000036d0: ADD 000036d1: PUSH1 0x1f 000036d3: DUP2 000036d4: ADD 000036d5: DUP6 000036d6: SGT 000036d7: PUSH2 0x36de 000036da: JUMPI 000036db: DUP3 000036dc: DUP4 000036dd: REVERT 000036de: JUMPDEST 000036df: DUP1 000036e0: MLOAD 000036e1: PUSH2 0x36ec 000036e4: PUSH2 0x34ab 000036e7: DUP3 000036e8: PUSH2 0x4cd2 000036eb: JUMP 000036ec: JUMPDEST 000036ed: DUP2 000036ee: DUP2 000036ef: MSTORE 000036f0: DUP4 000036f1: DUP2 000036f2: ADD 000036f3: SWAP1 000036f4: DUP4 000036f5: DUP6 000036f6: ADD 000036f7: DUP6 000036f8: DUP5 000036f9: MUL 000036fa: DUP6 000036fb: ADD 000036fc: DUP7 000036fd: ADD 000036fe: DUP10 000036ff: LT 00003700: ISZERO 00003701: PUSH2 0x3708 00003704: JUMPI 00003705: DUP7 00003706: DUP8 00003707: REVERT 00003708: JUMPDEST 00003709: DUP7 0000370a: SWAP5 0000370b: POP 0000370c: JUMPDEST 0000370d: DUP4 0000370e: DUP6 0000370f: LT 00003710: ISZERO 00003711: PUSH2 0x372a 00003714: JUMPI 00003715: DUP1 00003716: MLOAD 00003717: DUP4 00003718: MSTORE 00003719: PUSH1 0x01 0000371b: SWAP5 0000371c: SWAP1 0000371d: SWAP5 0000371e: ADD 0000371f: SWAP4 00003720: SWAP2 00003721: DUP6 00003722: ADD 00003723: SWAP2 00003724: DUP6 00003725: ADD 00003726: PUSH2 0x370c 00003729: JUMP 0000372a: JUMPDEST 0000372b: POP 0000372c: SWAP8 0000372d: SWAP7 0000372e: POP 0000372f: POP 00003730: POP 00003731: POP 00003732: POP 00003733: POP 00003734: POP 00003735: JUMP 00003736: JUMPDEST 00003737: PUSH1 0x00 00003739: PUSH1 0x20 0000373b: DUP3 0000373c: DUP5 0000373d: SUB 0000373e: SLT 0000373f: ISZERO 00003740: PUSH2 0x3747 00003743: JUMPI 00003744: DUP1 00003745: DUP2 00003746: REVERT 00003747: JUMPDEST 00003748: DUP2 00003749: MLOAD 0000374a: PUSH2 0x269f 0000374d: DUP2 0000374e: PUSH2 0x4d57 00003751: JUMP 00003752: JUMPDEST 00003753: PUSH1 0x00 00003755: PUSH1 0x20 00003757: DUP3 00003758: DUP5 00003759: SUB 0000375a: SLT 0000375b: ISZERO 0000375c: PUSH2 0x3763 0000375f: JUMPI 00003760: DUP1 00003761: DUP2 00003762: REVERT 00003763: JUMPDEST 00003764: DUP2 00003765: MLOAD 00003766: PUSH1 0x01 00003768: PUSH1 0x01 0000376a: PUSH1 0xe0 0000376c: SHL 0000376d: SUB 0000376e: NOT 0000376f: DUP2 00003770: AND 00003771: DUP2 00003772: EQ 00003773: PUSH2 0x269f 00003776: JUMPI 00003777: DUP2 00003778: DUP3 00003779: REVERT 0000377a: JUMPDEST 0000377b: PUSH1 0x00 0000377d: DUP1 0000377e: PUSH1 0x00 00003780: DUP1 00003781: PUSH1 0x80 00003783: DUP6 00003784: DUP8 00003785: SUB 00003786: SLT 00003787: ISZERO 00003788: PUSH2 0x378f 0000378b: JUMPI 0000378c: DUP2 0000378d: DUP3 0000378e: REVERT 0000378f: JUMPDEST 00003790: DUP5 00003791: MLOAD 00003792: PUSH2 0x379a 00003795: DUP2 00003796: PUSH2 0x4d65 00003799: JUMP 0000379a: JUMPDEST 0000379b: PUSH1 0x20 0000379d: DUP7 0000379e: ADD 0000379f: MLOAD 000037a0: SWAP1 000037a1: SWAP5 000037a2: POP 000037a3: PUSH2 0x37ab 000037a6: DUP2 000037a7: PUSH2 0x4d65 000037aa: JUMP 000037ab: JUMPDEST 000037ac: PUSH1 0x40 000037ae: DUP7 000037af: ADD 000037b0: MLOAD 000037b1: SWAP1 000037b2: SWAP4 000037b3: POP 000037b4: PUSH2 0xffff 000037b7: DUP2 000037b8: AND 000037b9: DUP2 000037ba: EQ 000037bb: PUSH2 0x37c2 000037be: JUMPI 000037bf: DUP3 000037c0: DUP4 000037c1: REVERT 000037c2: JUMPDEST 000037c3: PUSH1 0x60 000037c5: DUP7 000037c6: ADD 000037c7: MLOAD 000037c8: SWAP1 000037c9: SWAP3 000037ca: POP 000037cb: PUSH2 0x37d3 000037ce: DUP2 000037cf: PUSH2 0x4d57 000037d2: JUMP 000037d3: JUMPDEST 000037d4: SWAP4 000037d5: SWAP7 000037d6: SWAP3 000037d7: SWAP6 000037d8: POP 000037d9: SWAP1 000037da: SWAP4 000037db: POP 000037dc: POP 000037dd: JUMP 000037de: JUMPDEST 000037df: PUSH1 0x00 000037e1: DUP1 000037e2: PUSH1 0x00 000037e4: DUP1 000037e5: PUSH1 0x00 000037e7: DUP1 000037e8: PUSH1 0x00 000037ea: DUP1 000037eb: DUP9 000037ec: DUP11 000037ed: SUB 000037ee: PUSH2 0x01a0 000037f1: DUP2 000037f2: SLT 000037f3: ISZERO 000037f4: PUSH2 0x37fb 000037f7: JUMPI 000037f8: DUP3 000037f9: DUP4 000037fa: REVERT 000037fb: JUMPDEST 000037fc: PUSH2 0x0120 000037ff: DUP1 00003800: DUP3 00003801: SLT 00003802: ISZERO 00003803: PUSH2 0x380a 00003806: JUMPI 00003807: DUP4 00003808: DUP5 00003809: REVERT 0000380a: JUMPDEST 0000380b: PUSH2 0x3813 0000380e: DUP2 0000380f: PUSH2 0x4cab 00003812: JUMP 00003813: JUMPDEST 00003814: SWAP2 00003815: POP 00003816: PUSH2 0x381f 00003819: DUP13 0000381a: DUP13 0000381b: PUSH2 0x33f9 0000381e: JUMP 0000381f: JUMPDEST 00003820: DUP3 00003821: MSTORE 00003822: PUSH2 0x382e 00003825: DUP13 00003826: PUSH1 0x20 00003828: DUP14 00003829: ADD 0000382a: PUSH2 0x33f9 0000382d: JUMP 0000382e: JUMPDEST 0000382f: PUSH1 0x20 00003831: DUP4 00003832: ADD 00003833: MSTORE 00003834: PUSH2 0x3840 00003837: DUP13 00003838: PUSH1 0x40 0000383a: DUP14 0000383b: ADD 0000383c: PUSH2 0x33f9 0000383f: JUMP 00003840: JUMPDEST 00003841: PUSH1 0x40 00003843: DUP4 00003844: ADD 00003845: MSTORE 00003846: PUSH1 0x60 00003848: DUP12 00003849: ADD 0000384a: CALLDATALOAD 0000384b: PUSH1 0x60 0000384d: DUP4 0000384e: ADD 0000384f: MSTORE 00003850: PUSH1 0x80 00003852: DUP12 00003853: ADD 00003854: CALLDATALOAD 00003855: PUSH1 0x80 00003857: DUP4 00003858: ADD 00003859: MSTORE 0000385a: PUSH2 0x3866 0000385d: DUP13 0000385e: PUSH1 0xa0 00003860: DUP14 00003861: ADD 00003862: PUSH2 0x33f9 00003865: JUMP 00003866: JUMPDEST 00003867: PUSH1 0xa0 00003869: DUP4 0000386a: ADD 0000386b: MSTORE 0000386c: PUSH2 0x3878 0000386f: DUP13 00003870: PUSH1 0xc0 00003872: DUP14 00003873: ADD 00003874: PUSH2 0x33f9 00003877: JUMP 00003878: JUMPDEST 00003879: PUSH1 0xc0 0000387b: DUP4 0000387c: ADD 0000387d: MSTORE 0000387e: PUSH1 0xe0 00003880: DUP12 00003881: DUP2 00003882: ADD 00003883: CALLDATALOAD 00003884: SWAP1 00003885: DUP4 00003886: ADD 00003887: MSTORE 00003888: PUSH2 0x0100 0000388b: DUP1 0000388c: DUP13 0000388d: ADD 0000388e: CALLDATALOAD 0000388f: SWAP1 00003890: DUP4 00003891: ADD 00003892: MSTORE 00003893: SWAP1 00003894: SWAP9 00003895: POP 00003896: DUP10 00003897: ADD 00003898: CALLDATALOAD 00003899: SWAP7 0000389a: POP 0000389b: PUSH2 0x0140 0000389e: DUP10 0000389f: ADD 000038a0: CALLDATALOAD 000038a1: PUSH8 0xffffffffffffffff 000038aa: DUP1 000038ab: DUP3 000038ac: GT 000038ad: ISZERO 000038ae: PUSH2 0x38b5 000038b1: JUMPI 000038b2: DUP4 000038b3: DUP5 000038b4: REVERT 000038b5: JUMPDEST 000038b6: PUSH2 0x38c1 000038b9: DUP13 000038ba: DUP4 000038bb: DUP14 000038bc: ADD 000038bd: PUSH2 0x344d 000038c0: JUMP 000038c1: JUMPDEST 000038c2: SWAP1 000038c3: SWAP9 000038c4: POP 000038c5: SWAP7 000038c6: POP 000038c7: PUSH2 0x0160 000038ca: DUP12 000038cb: ADD 000038cc: CALLDATALOAD 000038cd: SWAP2 000038ce: POP 000038cf: DUP1 000038d0: DUP3 000038d1: GT 000038d2: ISZERO 000038d3: PUSH2 0x38da 000038d6: JUMPI 000038d7: DUP4 000038d8: DUP5 000038d9: REVERT 000038da: JUMPDEST 000038db: PUSH2 0x38e6 000038de: DUP13 000038df: DUP4 000038e0: DUP14 000038e1: ADD 000038e2: PUSH2 0x344d 000038e5: JUMP 000038e6: JUMPDEST 000038e7: SWAP1 000038e8: SWAP7 000038e9: POP 000038ea: SWAP5 000038eb: POP 000038ec: PUSH2 0x0180 000038ef: DUP12 000038f0: ADD 000038f1: CALLDATALOAD 000038f2: SWAP2 000038f3: POP 000038f4: DUP1 000038f5: DUP3 000038f6: GT 000038f7: ISZERO 000038f8: PUSH2 0x38ff 000038fb: JUMPI 000038fc: DUP4 000038fd: DUP5 000038fe: REVERT 000038ff: JUMPDEST 00003900: POP 00003901: PUSH2 0x390c 00003904: DUP12 00003905: DUP3 00003906: DUP13 00003907: ADD 00003908: PUSH2 0x3404 0000390b: JUMP 0000390c: JUMPDEST 0000390d: SWAP10 0000390e: SWAP13 0000390f: SWAP9 00003910: SWAP12 00003911: POP 00003912: SWAP7 00003913: SWAP10 00003914: POP 00003915: SWAP5 00003916: SWAP8 00003917: SWAP4 00003918: SWAP7 00003919: SWAP3 0000391a: SWAP6 0000391b: SWAP5 0000391c: POP 0000391d: POP 0000391e: POP 0000391f: JUMP 00003920: JUMPDEST 00003921: PUSH1 0x00 00003923: PUSH1 0x20 00003925: DUP3 00003926: DUP5 00003927: SUB 00003928: SLT 00003929: ISZERO 0000392a: PUSH2 0x3931 0000392d: JUMPI 0000392e: DUP1 0000392f: DUP2 00003930: REVERT 00003931: JUMPDEST 00003932: POP 00003933: CALLDATALOAD 00003934: SWAP2 00003935: SWAP1 00003936: POP 00003937: JUMP 00003938: JUMPDEST 00003939: PUSH1 0x00 0000393b: PUSH1 0x20 0000393d: DUP3 0000393e: DUP5 0000393f: SUB 00003940: SLT 00003941: ISZERO 00003942: PUSH2 0x3949 00003945: JUMPI 00003946: DUP1 00003947: DUP2 00003948: REVERT 00003949: JUMPDEST 0000394a: POP 0000394b: MLOAD 0000394c: SWAP2 0000394d: SWAP1 0000394e: POP 0000394f: JUMP 00003950: JUMPDEST 00003951: PUSH1 0x00 00003953: DUP1 00003954: PUSH1 0x40 00003956: DUP4 00003957: DUP6 00003958: SUB 00003959: SLT 0000395a: ISZERO 0000395b: PUSH2 0x3962 0000395e: JUMPI 0000395f: DUP2 00003960: DUP3 00003961: REVERT 00003962: JUMPDEST 00003963: DUP3 00003964: MLOAD 00003965: PUSH2 0x396d 00003968: DUP2 00003969: PUSH2 0x4d74 0000396c: JUMP 0000396d: JUMPDEST 0000396e: PUSH1 0x20 00003970: DUP5 00003971: ADD 00003972: MLOAD 00003973: SWAP1 00003974: SWAP3 00003975: POP 00003976: PUSH8 0xffffffffffffffff 0000397f: DUP2 00003980: GT 00003981: ISZERO 00003982: PUSH2 0x3989 00003985: JUMPI 00003986: DUP2 00003987: DUP3 00003988: REVERT 00003989: JUMPDEST 0000398a: DUP4 0000398b: ADD 0000398c: PUSH1 0x1f 0000398e: DUP2 0000398f: ADD 00003990: DUP6 00003991: SGT 00003992: PUSH2 0x3999 00003995: JUMPI 00003996: DUP2 00003997: DUP3 00003998: REVERT 00003999: JUMPDEST 0000399a: DUP1 0000399b: MLOAD 0000399c: PUSH2 0x39a7 0000399f: PUSH2 0x34ab 000039a2: DUP3 000039a3: PUSH2 0x4cf2 000039a6: JUMP 000039a7: JUMPDEST 000039a8: DUP2 000039a9: DUP2 000039aa: MSTORE 000039ab: DUP7 000039ac: PUSH1 0x20 000039ae: DUP4 000039af: DUP6 000039b0: ADD 000039b1: ADD 000039b2: GT 000039b3: ISZERO 000039b4: PUSH2 0x39bb 000039b7: JUMPI 000039b8: DUP4 000039b9: DUP5 000039ba: REVERT 000039bb: JUMPDEST 000039bc: PUSH2 0x39cc 000039bf: DUP3 000039c0: PUSH1 0x20 000039c2: DUP4 000039c3: ADD 000039c4: PUSH1 0x20 000039c6: DUP7 000039c7: ADD 000039c8: PUSH2 0x4d16 000039cb: JUMP 000039cc: JUMPDEST 000039cd: DUP1 000039ce: SWAP4 000039cf: POP 000039d0: POP 000039d1: POP 000039d2: POP 000039d3: SWAP3 000039d4: POP 000039d5: SWAP3 000039d6: SWAP1 000039d7: POP 000039d8: JUMP 000039d9: JUMPDEST 000039da: PUSH1 0x00 000039dc: DUP1 000039dd: PUSH1 0x40 000039df: DUP4 000039e0: DUP6 000039e1: SUB 000039e2: SLT 000039e3: ISZERO 000039e4: PUSH2 0x39eb 000039e7: JUMPI 000039e8: DUP2 000039e9: DUP3 000039ea: REVERT 000039eb: JUMPDEST 000039ec: DUP3 000039ed: MLOAD 000039ee: PUSH2 0x39f6 000039f1: DUP2 000039f2: PUSH2 0x4d74 000039f5: JUMP 000039f6: JUMPDEST 000039f7: PUSH1 0x20 000039f9: DUP5 000039fa: ADD 000039fb: MLOAD 000039fc: SWAP1 000039fd: SWAP3 000039fe: POP 000039ff: PUSH3 0xffffff 00003a03: DUP2 00003a04: AND 00003a05: DUP2 00003a06: EQ 00003a07: PUSH2 0x3a0e 00003a0a: JUMPI 00003a0b: DUP2 00003a0c: DUP3 00003a0d: REVERT 00003a0e: JUMPDEST 00003a0f: DUP1 00003a10: SWAP2 00003a11: POP 00003a12: POP 00003a13: SWAP3 00003a14: POP 00003a15: SWAP3 00003a16: SWAP1 00003a17: POP 00003a18: JUMP 00003a19: JUMPDEST 00003a1a: PUSH1 0x01 00003a1c: PUSH1 0x01 00003a1e: PUSH1 0xa0 00003a20: SHL 00003a21: SUB 00003a22: AND 00003a23: SWAP1 00003a24: MSTORE 00003a25: JUMP 00003a26: JUMPDEST 00003a27: PUSH1 0x00 00003a29: DUP2 00003a2a: MLOAD 00003a2b: DUP1 00003a2c: DUP5 00003a2d: MSTORE 00003a2e: PUSH2 0x3a3e 00003a31: DUP2 00003a32: PUSH1 0x20 00003a34: DUP7 00003a35: ADD 00003a36: PUSH1 0x20 00003a38: DUP7 00003a39: ADD 00003a3a: PUSH2 0x4d16 00003a3d: JUMP 00003a3e: JUMPDEST 00003a3f: PUSH1 0x1f 00003a41: ADD 00003a42: PUSH1 0x1f 00003a44: NOT 00003a45: AND 00003a46: SWAP3 00003a47: SWAP1 00003a48: SWAP3 00003a49: ADD 00003a4a: PUSH1 0x20 00003a4c: ADD 00003a4d: SWAP3 00003a4e: SWAP2 00003a4f: POP 00003a50: POP 00003a51: JUMP 00003a52: JUMPDEST 00003a53: PUSH1 0x00 00003a55: DUP3 00003a56: MLOAD 00003a57: PUSH2 0x3a64 00003a5a: DUP2 00003a5b: DUP5 00003a5c: PUSH1 0x20 00003a5e: DUP8 00003a5f: ADD 00003a60: PUSH2 0x4d16 00003a63: JUMP 00003a64: JUMPDEST 00003a65: SWAP2 00003a66: SWAP1 00003a67: SWAP2 00003a68: ADD 00003a69: SWAP3 00003a6a: SWAP2 00003a6b: POP 00003a6c: POP 00003a6d: JUMP 00003a6e: JUMPDEST 00003a6f: PUSH1 0x00 00003a71: DUP5 00003a72: MLOAD 00003a73: PUSH2 0x3a80 00003a76: DUP2 00003a77: DUP5 00003a78: PUSH1 0x20 00003a7a: DUP10 00003a7b: ADD 00003a7c: PUSH2 0x4d16 00003a7f: JUMP 00003a80: JUMPDEST 00003a81: SWAP2 00003a82: SWAP1 00003a83: SWAP2 00003a84: ADD 00003a85: SWAP3 00003a86: DUP4 00003a87: MSTORE 00003a88: POP 00003a89: PUSH1 0x20 00003a8b: DUP3 00003a8c: ADD 00003a8d: MSTORE 00003a8e: PUSH1 0x40 00003a90: ADD 00003a91: SWAP2 00003a92: SWAP1 00003a93: POP 00003a94: JUMP 00003a95: JUMPDEST 00003a96: PUSH32 0x7472616465576974685065726d69742800000000000000000000000000000000 00003ab7: DUP2 00003ab8: MSTORE 00003ab9: PUSH32 0x61646472657373206d616b6572416464722c0000000000000000000000000000 00003ada: PUSH1 0x10 00003adc: DUP3 00003add: ADD 00003ade: MSTORE 00003adf: PUSH32 0x616464726573732074616b65724173736574416464722c000000000000000000 00003b00: PUSH1 0x22 00003b02: DUP3 00003b03: ADD 00003b04: MSTORE 00003b05: PUSH32 0x61646472657373206d616b65724173736574416464722c000000000000000000 00003b26: PUSH1 0x39 00003b28: DUP3 00003b29: ADD 00003b2a: MSTORE 00003b2b: PUSH32 0x75696e743235362074616b65724173736574416d6f756e742c00000000000000 00003b4c: PUSH1 0x50 00003b4e: DUP3 00003b4f: ADD 00003b50: MSTORE 00003b51: PUSH32 0x75696e74323536206d616b65724173736574416d6f756e742c00000000000000 00003b72: PUSH1 0x69 00003b74: DUP3 00003b75: ADD 00003b76: MSTORE 00003b77: PUSH32 0x616464726573732075736572416464722c000000000000000000000000000000 00003b98: PUSH1 0x82 00003b9a: DUP3 00003b9b: ADD 00003b9c: MSTORE 00003b9d: PUSH32 0x61646472657373207265636569766572416464722c0000000000000000000000 00003bbe: PUSH1 0x93 00003bc0: DUP3 00003bc1: ADD 00003bc2: MSTORE 00003bc3: PUSH32 0x75696e743235362073616c742c00000000000000000000000000000000000000 00003be4: PUSH1 0xa8 00003be6: DUP3 00003be7: ADD 00003be8: MSTORE 00003be9: PUSH32 0x75696e7432353620646561646c696e6500000000000000000000000000000000 00003c0a: PUSH1 0xb5 00003c0c: DUP3 00003c0d: ADD 00003c0e: MSTORE 00003c0f: PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 00003c30: PUSH1 0xc5 00003c32: DUP3 00003c33: ADD 00003c34: MSTORE 00003c35: PUSH1 0xc6 00003c37: ADD 00003c38: SWAP1 00003c39: JUMP 00003c3a: JUMPDEST 00003c3b: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00003c5c: DUP2 00003c5d: MSTORE 00003c5e: PUSH1 0x1c 00003c60: DUP2 00003c61: ADD 00003c62: SWAP2 00003c63: SWAP1 00003c64: SWAP2 00003c65: MSTORE 00003c66: PUSH1 0x3c 00003c68: ADD 00003c69: SWAP1 00003c6a: JUMP 00003c6b: JUMPDEST 00003c6c: PUSH1 0x01 00003c6e: PUSH1 0x01 00003c70: PUSH1 0xa0 00003c72: SHL 00003c73: SUB 00003c74: SWAP2 00003c75: SWAP1 00003c76: SWAP2 00003c77: AND 00003c78: DUP2 00003c79: MSTORE 00003c7a: PUSH1 0x20 00003c7c: ADD 00003c7d: SWAP1 00003c7e: JUMP 00003c7f: JUMPDEST 00003c80: PUSH1 0x01 00003c82: PUSH1 0x01 00003c84: PUSH1 0xa0 00003c86: SHL 00003c87: SUB 00003c88: SWAP3 00003c89: DUP4 00003c8a: AND 00003c8b: DUP2 00003c8c: MSTORE 00003c8d: SWAP2 00003c8e: AND 00003c8f: PUSH1 0x20 00003c91: DUP3 00003c92: ADD 00003c93: MSTORE 00003c94: PUSH1 0x40 00003c96: ADD 00003c97: SWAP1 00003c98: JUMP 00003c99: JUMPDEST 00003c9a: PUSH1 0x01 00003c9c: PUSH1 0x01 00003c9e: PUSH1 0xa0 00003ca0: SHL 00003ca1: SUB 00003ca2: SWAP4 00003ca3: DUP5 00003ca4: AND 00003ca5: DUP2 00003ca6: MSTORE 00003ca7: SWAP2 00003ca8: DUP4 00003ca9: AND 00003caa: PUSH1 0x20 00003cac: DUP4 00003cad: ADD 00003cae: MSTORE 00003caf: SWAP1 00003cb0: SWAP2 00003cb1: AND 00003cb2: PUSH1 0x40 00003cb4: DUP3 00003cb5: ADD 00003cb6: MSTORE 00003cb7: PUSH1 0x60 00003cb9: ADD 00003cba: SWAP1 00003cbb: JUMP 00003cbc: JUMPDEST 00003cbd: PUSH1 0x01 00003cbf: PUSH1 0x01 00003cc1: PUSH1 0xa0 00003cc3: SHL 00003cc4: SUB 00003cc5: SWAP4 00003cc6: DUP5 00003cc7: AND 00003cc8: DUP2 00003cc9: MSTORE 00003cca: SWAP2 00003ccb: SWAP1 00003ccc: SWAP3 00003ccd: AND 00003cce: PUSH1 0x20 00003cd0: DUP3 00003cd1: ADD 00003cd2: MSTORE 00003cd3: PUSH1 0x40 00003cd5: DUP2 00003cd6: ADD 00003cd7: SWAP2 00003cd8: SWAP1 00003cd9: SWAP2 00003cda: MSTORE 00003cdb: PUSH1 0x60 00003cdd: ADD 00003cde: SWAP1 00003cdf: JUMP 00003ce0: JUMPDEST 00003ce1: PUSH1 0x01 00003ce3: PUSH1 0x01 00003ce5: PUSH1 0xa0 00003ce7: SHL 00003ce8: SUB 00003ce9: SWAP3 00003cea: SWAP1 00003ceb: SWAP3 00003cec: AND 00003ced: DUP3 00003cee: MSTORE 00003cef: PUSH1 0x20 00003cf1: DUP3 00003cf2: ADD 00003cf3: MSTORE 00003cf4: PUSH1 0x40 00003cf6: ADD 00003cf7: SWAP1 00003cf8: JUMP 00003cf9: JUMPDEST 00003cfa: SWAP1 00003cfb: ISZERO 00003cfc: ISZERO 00003cfd: DUP2 00003cfe: MSTORE 00003cff: PUSH1 0x20 00003d01: ADD 00003d02: SWAP1 00003d03: JUMP 00003d04: JUMPDEST 00003d05: SWAP1 00003d06: DUP2 00003d07: MSTORE 00003d08: PUSH1 0x20 00003d0a: ADD 00003d0b: SWAP1 00003d0c: JUMP 00003d0d: JUMPDEST 00003d0e: SWAP10 00003d0f: DUP11 00003d10: MSTORE 00003d11: PUSH1 0x01 00003d13: PUSH1 0x01 00003d15: PUSH1 0xa0 00003d17: SHL 00003d18: SUB 00003d19: SWAP9 00003d1a: DUP10 00003d1b: AND 00003d1c: PUSH1 0x20 00003d1e: DUP12 00003d1f: ADD 00003d20: MSTORE 00003d21: SWAP7 00003d22: DUP9 00003d23: AND 00003d24: PUSH1 0x40 00003d26: DUP11 00003d27: ADD 00003d28: MSTORE 00003d29: SWAP5 00003d2a: DUP8 00003d2b: AND 00003d2c: PUSH1 0x60 00003d2e: DUP10 00003d2f: ADD 00003d30: MSTORE 00003d31: PUSH1 0x80 00003d33: DUP9 00003d34: ADD 00003d35: SWAP4 00003d36: SWAP1 00003d37: SWAP4 00003d38: MSTORE 00003d39: PUSH1 0xa0 00003d3b: DUP8 00003d3c: ADD 00003d3d: SWAP2 00003d3e: SWAP1 00003d3f: SWAP2 00003d40: MSTORE 00003d41: DUP5 00003d42: AND 00003d43: PUSH1 0xc0 00003d45: DUP7 00003d46: ADD 00003d47: MSTORE 00003d48: SWAP1 00003d49: SWAP3 00003d4a: AND 00003d4b: PUSH1 0xe0 00003d4d: DUP5 00003d4e: ADD 00003d4f: MSTORE 00003d50: PUSH2 0x0100 00003d53: DUP4 00003d54: ADD 00003d55: SWAP2 00003d56: SWAP1 00003d57: SWAP2 00003d58: MSTORE 00003d59: PUSH2 0x0120 00003d5c: DUP3 00003d5d: ADD 00003d5e: MSTORE 00003d5f: PUSH2 0x0140 00003d62: ADD 00003d63: SWAP1 00003d64: JUMP 00003d65: JUMPDEST 00003d66: PUSH1 0x00 00003d68: DUP4 00003d69: DUP3 00003d6a: MSTORE 00003d6b: PUSH1 0x40 00003d6d: PUSH1 0x20 00003d6f: DUP4 00003d70: ADD 00003d71: MSTORE 00003d72: PUSH2 0x1612 00003d75: PUSH1 0x40 00003d77: DUP4 00003d78: ADD 00003d79: DUP5 00003d7a: PUSH2 0x3a26 00003d7d: JUMP 00003d7e: JUMPDEST 00003d7f: SWAP4 00003d80: DUP5 00003d81: MSTORE 00003d82: PUSH1 0xff 00003d84: SWAP3 00003d85: SWAP1 00003d86: SWAP3 00003d87: AND 00003d88: PUSH1 0x20 00003d8a: DUP5 00003d8b: ADD 00003d8c: MSTORE 00003d8d: PUSH1 0x40 00003d8f: DUP4 00003d90: ADD 00003d91: MSTORE 00003d92: PUSH1 0x60 00003d94: DUP3 00003d95: ADD 00003d96: MSTORE 00003d97: PUSH1 0x80 00003d99: ADD 00003d9a: SWAP1 00003d9b: JUMP 00003d9c: JUMPDEST 00003d9d: PUSH1 0x00 00003d9f: PUSH1 0x40 00003da1: DUP3 00003da2: MSTORE 00003da3: PUSH2 0x3daf 00003da6: PUSH1 0x40 00003da8: DUP4 00003da9: ADD 00003daa: DUP6 00003dab: PUSH2 0x3a26 00003dae: JUMP 00003daf: JUMPDEST 00003db0: DUP3 00003db1: DUP2 00003db2: SUB 00003db3: PUSH1 0x20 00003db5: DUP5 00003db6: ADD 00003db7: MSTORE 00003db8: PUSH2 0x3dc1 00003dbb: DUP2 00003dbc: DUP6 00003dbd: PUSH2 0x3a26 00003dc0: JUMP 00003dc1: JUMPDEST 00003dc2: SWAP6 00003dc3: SWAP5 00003dc4: POP 00003dc5: POP 00003dc6: POP 00003dc7: POP 00003dc8: POP 00003dc9: JUMP 00003dca: JUMPDEST 00003dcb: PUSH1 0x0f 00003dcd: SWAP5 00003dce: DUP6 00003dcf: SIGNEXTEND 00003dd0: DUP2 00003dd1: MSTORE 00003dd2: SWAP3 00003dd3: SWAP1 00003dd4: SWAP4 00003dd5: SIGNEXTEND 00003dd6: PUSH1 0x20 00003dd8: DUP4 00003dd9: ADD 00003dda: MSTORE 00003ddb: PUSH1 0x40 00003ddd: DUP3 00003dde: ADD 00003ddf: MSTORE 00003de0: PUSH1 0x60 00003de2: DUP2 00003de3: ADD 00003de4: SWAP2 00003de5: SWAP1 00003de6: SWAP2 00003de7: MSTORE 00003de8: PUSH1 0x80 00003dea: ADD 00003deb: SWAP1 00003dec: JUMP 00003ded: JUMPDEST 00003dee: PUSH1 0x00 00003df0: PUSH1 0x20 00003df2: DUP3 00003df3: MSTORE 00003df4: PUSH2 0x269f 00003df7: PUSH1 0x20 00003df9: DUP4 00003dfa: ADD 00003dfb: DUP5 00003dfc: PUSH2 0x3a26 00003dff: JUMP 00003e00: JUMPDEST 00003e01: PUSH1 0x00 00003e03: PUSH2 0x0160 00003e06: DUP1 00003e07: DUP4 00003e08: MSTORE 00003e09: PUSH2 0x3e14 00003e0c: DUP2 00003e0d: DUP5 00003e0e: ADD 00003e0f: DUP16 00003e10: PUSH2 0x3a26 00003e13: JUMP 00003e14: JUMPDEST 00003e15: PUSH1 0x01 00003e17: PUSH1 0x01 00003e19: PUSH1 0xa0 00003e1b: SHL 00003e1c: SUB 00003e1d: SWAP14 00003e1e: DUP15 00003e1f: AND 00003e20: PUSH1 0x20 00003e22: DUP6 00003e23: ADD 00003e24: MSTORE 00003e25: PUSH1 0x40 00003e27: DUP5 00003e28: ADD 00003e29: SWAP13 00003e2a: SWAP1 00003e2b: SWAP13 00003e2c: MSTORE 00003e2d: POP 00003e2e: POP 00003e2f: SWAP8 00003e30: DUP11 00003e31: AND 00003e32: PUSH1 0x60 00003e34: DUP10 00003e35: ADD 00003e36: MSTORE 00003e37: SWAP6 00003e38: DUP10 00003e39: AND 00003e3a: PUSH1 0x80 00003e3c: DUP9 00003e3d: ADD 00003e3e: MSTORE 00003e3f: PUSH1 0xa0 00003e41: DUP8 00003e42: ADD 00003e43: SWAP5 00003e44: SWAP1 00003e45: SWAP5 00003e46: MSTORE 00003e47: SWAP2 00003e48: SWAP1 00003e49: SWAP7 00003e4a: AND 00003e4b: PUSH1 0xc0 00003e4d: DUP6 00003e4e: ADD 00003e4f: MSTORE 00003e50: PUSH1 0xe0 00003e52: DUP5 00003e53: ADD 00003e54: SWAP6 00003e55: SWAP1 00003e56: SWAP6 00003e57: MSTORE 00003e58: PUSH2 0x0100 00003e5b: DUP4 00003e5c: ADD 00003e5d: SWAP5 00003e5e: SWAP1 00003e5f: SWAP5 00003e60: MSTORE 00003e61: PUSH2 0xffff 00003e64: SWAP4 00003e65: DUP5 00003e66: AND 00003e67: PUSH2 0x0120 00003e6a: DUP4 00003e6b: ADD 00003e6c: MSTORE 00003e6d: SWAP1 00003e6e: SWAP3 00003e6f: AND 00003e70: PUSH2 0x0140 00003e73: SWAP1 00003e74: SWAP3 00003e75: ADD 00003e76: SWAP2 00003e77: SWAP1 00003e78: SWAP2 00003e79: MSTORE 00003e7a: SWAP2 00003e7b: SWAP1 00003e7c: POP 00003e7d: JUMP 00003e7e: JUMPDEST 00003e7f: PUSH1 0x20 00003e81: DUP1 00003e82: DUP3 00003e83: MSTORE 00003e84: PUSH1 0x37 00003e86: SWAP1 00003e87: DUP3 00003e88: ADD 00003e89: MSTORE 00003e8a: PUSH32 0x5369676e617475726556616c696461746f7223697356616c69645369676e6174 00003eab: PUSH1 0x40 00003ead: DUP3 00003eae: ADD 00003eaf: MSTORE 00003eb0: PUSH32 0x7572653a206c656e677468203937207265717569726564000000000000000000 00003ed1: PUSH1 0x60 00003ed3: DUP3 00003ed4: ADD 00003ed5: MSTORE 00003ed6: PUSH1 0x80 00003ed8: ADD 00003ed9: SWAP1 00003eda: JUMP 00003edb: JUMPDEST 00003edc: PUSH1 0x20 00003ede: DUP1 00003edf: DUP3 00003ee0: MSTORE 00003ee1: PUSH1 0x2d 00003ee3: SWAP1 00003ee4: DUP3 00003ee5: ADD 00003ee6: MSTORE 00003ee7: PUSH32 0x414d4d577261707065723a20746869732074726164652077696c6c206e6f7420 00003f08: PUSH1 0x40 00003f0a: DUP3 00003f0b: ADD 00003f0c: MSTORE 00003f0d: PUSH32 0x626520737562736964697a656400000000000000000000000000000000000000 00003f2e: PUSH1 0x60 00003f30: DUP3 00003f31: ADD 00003f32: MSTORE 00003f33: PUSH1 0x80 00003f35: ADD 00003f36: SWAP1 00003f37: JUMP 00003f38: JUMPDEST 00003f39: PUSH1 0x20 00003f3b: DUP1 00003f3c: DUP3 00003f3d: MSTORE 00003f3e: PUSH1 0x2b 00003f40: SWAP1 00003f41: DUP3 00003f42: ADD 00003f43: MSTORE 00003f44: PUSH32 0x414d4d577261707065723a206e6f7420656e6f75676820736176696e67732074 00003f65: PUSH1 0x40 00003f67: DUP3 00003f68: ADD 00003f69: MSTORE 00003f6a: PUSH32 0x6f20737562736964697a65000000000000000000000000000000000000000000 00003f8b: PUSH1 0x60 00003f8d: DUP3 00003f8e: ADD 00003f8f: MSTORE 00003f90: PUSH1 0x80 00003f92: ADD 00003f93: SWAP1 00003f94: JUMP 00003f95: JUMPDEST 00003f96: PUSH1 0x20 00003f98: DUP1 00003f99: DUP3 00003f9a: MSTORE 00003f9b: PUSH1 0x38 00003f9d: SWAP1 00003f9e: DUP3 00003f9f: ADD 00003fa0: MSTORE 00003fa1: PUSH32 0x414d4d577261707065723a20616d6f756e7420646966666572656e6365206c61 00003fc2: PUSH1 0x40 00003fc4: DUP3 00003fc5: ADD 00003fc6: MSTORE 00003fc7: PUSH32 0x72676572207468616e207375627369647920616d6f756e740000000000000000 00003fe8: PUSH1 0x60 00003fea: DUP3 00003feb: ADD 00003fec: MSTORE 00003fed: PUSH1 0x80 00003fef: ADD 00003ff0: SWAP1 00003ff1: JUMP 00003ff2: JUMPDEST 00003ff3: PUSH1 0x20 00003ff5: DUP1 00003ff6: DUP3 00003ff7: MSTORE 00003ff8: PUSH1 0x2c 00003ffa: SWAP1 00003ffb: DUP3 00003ffc: ADD 00003ffd: MSTORE 00003ffe: PUSH32 0x414d4d577261707065723a206f70657261746f722063616e206e6f7420626520 0000401f: PUSH1 0x40 00004021: DUP3 00004022: ADD 00004023: MSTORE 00004024: PUSH32 0x7a65726f20616464726573730000000000000000000000000000000000000000 00004045: PUSH1 0x60 00004047: DUP3 00004048: ADD 00004049: MSTORE 0000404a: PUSH1 0x80 0000404c: ADD 0000404d: SWAP1 0000404e: JUMP 0000404f: JUMPDEST 00004050: PUSH1 0x20 00004052: DUP1 00004053: DUP3 00004054: MSTORE 00004055: PUSH1 0x33 00004057: SWAP1 00004058: DUP3 00004059: ADD 0000405a: MSTORE 0000405b: PUSH32 0x5369676e617475726556616c696461746f7223697356616c69645369676e6174 0000407c: PUSH1 0x40 0000407e: DUP3 0000407f: ADD 00004080: MSTORE 00004081: PUSH32 0x7572653a20696e76616c6964207369676e657200000000000000000000000000 000040a2: PUSH1 0x60 000040a4: DUP3 000040a5: ADD 000040a6: MSTORE 000040a7: PUSH1 0x80 000040a9: ADD 000040aa: SWAP1 000040ab: JUMP 000040ac: JUMPDEST 000040ad: PUSH1 0x20 000040af: DUP1 000040b0: DUP3 000040b1: MSTORE 000040b2: PUSH1 0x26 000040b4: SWAP1 000040b5: DUP3 000040b6: ADD 000040b7: MSTORE 000040b8: PUSH32 0x414d4d577261707065723a2073776170206d6574686f64206e6f742072656769 000040d9: PUSH1 0x40 000040db: DUP3 000040dc: ADD 000040dd: MSTORE 000040de: PUSH32 0x7374657265640000000000000000000000000000000000000000000000000000 000040ff: PUSH1 0x60 00004101: DUP3 00004102: ADD 00004103: MSTORE 00004104: PUSH1 0x80 00004106: ADD 00004107: SWAP1 00004108: JUMP 00004109: JUMPDEST 0000410a: PUSH1 0x20 0000410c: DUP1 0000410d: DUP3 0000410e: MSTORE 0000410f: PUSH1 0x11 00004111: SWAP1 00004112: DUP3 00004113: ADD 00004114: MSTORE 00004115: PUSH32 0x746f55696e7432345f6f766572666c6f77000000000000000000000000000000 00004136: PUSH1 0x40 00004138: DUP3 00004139: ADD 0000413a: MSTORE 0000413b: PUSH1 0x60 0000413d: ADD 0000413e: SWAP1 0000413f: JUMP 00004140: JUMPDEST 00004141: PUSH1 0x20 00004143: DUP1 00004144: DUP3 00004145: MSTORE 00004146: PUSH1 0x1e 00004148: SWAP1 00004149: DUP3 0000414a: ADD 0000414b: MSTORE 0000414c: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 0000416d: PUSH1 0x40 0000416f: DUP3 00004170: ADD 00004171: MSTORE 00004172: PUSH1 0x60 00004174: ADD 00004175: SWAP1 00004176: JUMP 00004177: JUMPDEST 00004178: PUSH1 0x20 0000417a: DUP1 0000417b: DUP3 0000417c: MSTORE 0000417d: PUSH1 0x26 0000417f: SWAP1 00004180: DUP3 00004181: ADD 00004182: MSTORE 00004183: PUSH32 0x414d4d577261707065723a206e6f7420746865205573657250726f787920636f 000041a4: PUSH1 0x40 000041a6: DUP3 000041a7: ADD 000041a8: MSTORE 000041a9: PUSH32 0x6e74726163740000000000000000000000000000000000000000000000000000 000041ca: PUSH1 0x60 000041cc: DUP3 000041cd: ADD 000041ce: MSTORE 000041cf: PUSH1 0x80 000041d1: ADD 000041d2: SWAP1 000041d3: JUMP 000041d4: JUMPDEST 000041d5: PUSH1 0x20 000041d7: DUP1 000041d8: DUP3 000041d9: MSTORE 000041da: PUSH1 0x26 000041dc: SWAP1 000041dd: DUP3 000041de: ADD 000041df: MSTORE 000041e0: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 00004201: PUSH1 0x40 00004203: DUP3 00004204: ADD 00004205: MSTORE 00004206: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 00004227: PUSH1 0x60 00004229: DUP3 0000422a: ADD 0000422b: MSTORE 0000422c: PUSH1 0x80 0000422e: ADD 0000422f: SWAP1 00004230: JUMP 00004231: JUMPDEST 00004232: PUSH1 0x20 00004234: DUP1 00004235: DUP3 00004236: MSTORE 00004237: PUSH1 0x1a 00004239: SWAP1 0000423a: DUP3 0000423b: ADD 0000423c: MSTORE 0000423d: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 0000425e: PUSH1 0x40 00004260: DUP3 00004261: ADD 00004262: MSTORE 00004263: PUSH1 0x60 00004265: ADD 00004266: SWAP1 00004267: JUMP 00004268: JUMPDEST 00004269: PUSH1 0x20 0000426b: DUP1 0000426c: DUP3 0000426d: MSTORE 0000426e: PUSH1 0x0e 00004270: SWAP1 00004271: DUP3 00004272: ADD 00004273: MSTORE 00004274: PUSH32 0x736c6963655f6f766572666c6f77000000000000000000000000000000000000 00004295: PUSH1 0x40 00004297: DUP3 00004298: ADD 00004299: MSTORE 0000429a: PUSH1 0x60 0000429c: ADD 0000429d: SWAP1 0000429e: JUMP 0000429f: JUMPDEST 000042a0: PUSH1 0x20 000042a2: DUP1 000042a3: DUP3 000042a4: MSTORE 000042a5: PUSH1 0x37 000042a7: SWAP1 000042a8: DUP3 000042a9: ADD 000042aa: MSTORE 000042ab: PUSH32 0x414d4d577261707065723a206c61737420656c656d656e74206f662070617468 000042cc: PUSH1 0x40 000042ce: DUP3 000042cf: ADD 000042d0: MSTORE 000042d1: PUSH32 0x206d757374206d61746368206d616b6572206173736574000000000000000000 000042f2: PUSH1 0x60 000042f4: DUP3 000042f5: ADD 000042f6: MSTORE 000042f7: PUSH1 0x80 000042f9: ADD 000042fa: SWAP1 000042fb: JUMP 000042fc: JUMPDEST 000042fd: PUSH1 0x20 000042ff: DUP1 00004300: DUP3 00004301: MSTORE 00004302: PUSH1 0x38 00004304: SWAP1 00004305: DUP3 00004306: ADD 00004307: MSTORE 00004308: PUSH32 0x414d4d577261707065723a20666972737420656c656d656e74206f6620706174 00004329: PUSH1 0x40 0000432b: DUP3 0000432c: ADD 0000432d: MSTORE 0000432e: PUSH32 0x68206d757374206d617463682074616b65722061737365740000000000000000 0000434f: PUSH1 0x60 00004351: DUP3 00004352: ADD 00004353: MSTORE 00004354: PUSH1 0x80 00004356: ADD 00004357: SWAP1 00004358: JUMP 00004359: JUMPDEST 0000435a: PUSH1 0x20 0000435c: DUP1 0000435d: DUP3 0000435e: MSTORE 0000435f: PUSH1 0x2b 00004361: SWAP1 00004362: DUP3 00004363: ADD 00004364: MSTORE 00004365: PUSH32 0x414d4d577261707065723a207370656e6465722063616e206e6f74206265207a 00004386: PUSH1 0x40 00004388: DUP3 00004389: ADD 0000438a: MSTORE 0000438b: PUSH32 0x65726f2061646472657373000000000000000000000000000000000000000000 000043ac: PUSH1 0x60 000043ae: DUP3 000043af: ADD 000043b0: MSTORE 000043b1: PUSH1 0x80 000043b3: ADD 000043b4: SWAP1 000043b5: JUMP 000043b6: JUMPDEST 000043b7: PUSH1 0x20 000043b9: DUP1 000043ba: DUP3 000043bb: MSTORE 000043bc: PUSH1 0x23 000043be: SWAP1 000043bf: DUP3 000043c0: ADD 000043c1: MSTORE 000043c2: PUSH32 0x414d4d577261707065723a206d73672e76616c756520646f65736e2774206d61 000043e3: PUSH1 0x40 000043e5: DUP3 000043e6: ADD 000043e7: MSTORE 000043e8: PUSH32 0x7463680000000000000000000000000000000000000000000000000000000000 00004409: PUSH1 0x60 0000440b: DUP3 0000440c: ADD 0000440d: MSTORE 0000440e: PUSH1 0x80 00004410: ADD 00004411: SWAP1 00004412: JUMP 00004413: JUMPDEST 00004414: PUSH1 0x20 00004416: DUP1 00004417: DUP3 00004418: MSTORE 00004419: PUSH1 0x22 0000441b: SWAP1 0000441c: DUP3 0000441d: ADD 0000441e: MSTORE 0000441f: PUSH32 0x414d4d577261707065723a20696e76616c69642075736572207369676e617475 00004440: PUSH1 0x40 00004442: DUP3 00004443: ADD 00004444: MSTORE 00004445: PUSH32 0x7265000000000000000000000000000000000000000000000000000000000000 00004466: PUSH1 0x60 00004468: DUP3 00004469: ADD 0000446a: MSTORE 0000446b: PUSH1 0x80 0000446d: ADD 0000446e: SWAP1 0000446f: JUMP 00004470: JUMPDEST 00004471: PUSH1 0x20 00004473: DUP1 00004474: DUP3 00004475: MSTORE 00004476: PUSH1 0x21 00004478: SWAP1 00004479: DUP3 0000447a: ADD 0000447b: MSTORE 0000447c: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f 0000449d: PUSH1 0x40 0000449f: DUP3 000044a0: ADD 000044a1: MSTORE 000044a2: PUSH32 0x7700000000000000000000000000000000000000000000000000000000000000 000044c3: PUSH1 0x60 000044c5: DUP3 000044c6: ADD 000044c7: MSTORE 000044c8: PUSH1 0x80 000044ca: ADD 000044cb: SWAP1 000044cc: JUMP 000044cd: JUMPDEST 000044ce: PUSH1 0x20 000044d0: DUP1 000044d1: DUP3 000044d2: MSTORE 000044d3: PUSH1 0x43 000044d5: SWAP1 000044d6: DUP3 000044d7: ADD 000044d8: MSTORE 000044d9: PUSH32 0x5369676e617475726556616c696461746f7223697356616c69645369676e6174 000044fa: PUSH1 0x40 000044fc: DUP3 000044fd: ADD 000044fe: MSTORE 000044ff: PUSH32 0x7572653a206c656e6774682067726561746572207468616e2030207265717569 00004520: PUSH1 0x60 00004522: DUP3 00004523: ADD 00004524: MSTORE 00004525: PUSH32 0x7265640000000000000000000000000000000000000000000000000000000000 00004546: PUSH1 0x80 00004548: DUP3 00004549: ADD 0000454a: MSTORE 0000454b: PUSH1 0xa0 0000454d: ADD 0000454e: SWAP1 0000454f: JUMP 00004550: JUMPDEST 00004551: PUSH1 0x20 00004553: DUP1 00004554: DUP3 00004555: MSTORE 00004556: PUSH1 0x14 00004558: SWAP1 00004559: DUP3 0000455a: ADD 0000455b: MSTORE 0000455c: PUSH32 0x746f55696e7432345f6f75744f66426f756e6473000000000000000000000000 0000457d: PUSH1 0x40 0000457f: DUP3 00004580: ADD 00004581: MSTORE 00004582: PUSH1 0x60 00004584: ADD 00004585: SWAP1 00004586: JUMP 00004587: JUMPDEST 00004588: PUSH1 0x20 0000458a: DUP1 0000458b: DUP3 0000458c: MSTORE 0000458d: PUSH1 0x15 0000458f: SWAP1 00004590: DUP3 00004591: ADD 00004592: MSTORE 00004593: PUSH32 0x746f416464726573735f6f75744f66426f756e64730000000000000000000000 000045b4: PUSH1 0x40 000045b6: DUP3 000045b7: ADD 000045b8: MSTORE 000045b9: PUSH1 0x60 000045bb: ADD 000045bc: SWAP1 000045bd: JUMP 000045be: JUMPDEST 000045bf: PUSH1 0x20 000045c1: DUP1 000045c2: DUP3 000045c3: MSTORE 000045c4: PUSH1 0x3a 000045c6: SWAP1 000045c7: DUP3 000045c8: ADD 000045c9: MSTORE 000045ca: PUSH32 0x5369676e617475726556616c696461746f7223697356616c69645369676e6174 000045eb: PUSH1 0x40 000045ed: DUP3 000045ee: ADD 000045ef: MSTORE 000045f0: PUSH32 0x7572653a20756e737570706f72746564207369676e6174757265000000000000 00004611: PUSH1 0x60 00004613: DUP3 00004614: ADD 00004615: MSTORE 00004616: PUSH1 0x80 00004618: ADD 00004619: SWAP1 0000461a: JUMP 0000461b: JUMPDEST 0000461c: PUSH1 0x20 0000461e: DUP1 0000461f: DUP3 00004620: MSTORE 00004621: PUSH1 0x1c 00004623: SWAP1 00004624: DUP3 00004625: ADD 00004626: MSTORE 00004627: PUSH32 0x414d4d577261707065723a206e6f7420746865206f70657261746f7200000000 00004648: PUSH1 0x40 0000464a: DUP3 0000464b: ADD 0000464c: MSTORE 0000464d: PUSH1 0x60 0000464f: ADD 00004650: SWAP1 00004651: JUMP 00004652: JUMPDEST 00004653: PUSH1 0x20 00004655: DUP1 00004656: DUP3 00004657: MSTORE 00004658: PUSH1 0x3b 0000465a: SWAP1 0000465b: DUP3 0000465c: ADD 0000465d: MSTORE 0000465e: PUSH32 0x4c696242797465732372656164427974657333322067726561746572206f7220 0000467f: PUSH1 0x40 00004681: DUP3 00004682: ADD 00004683: MSTORE 00004684: PUSH32 0x657175616c20746f203332206c656e6774682072657175697265640000000000 000046a5: PUSH1 0x60 000046a7: DUP3 000046a8: ADD 000046a9: MSTORE 000046aa: PUSH1 0x80 000046ac: ADD 000046ad: SWAP1 000046ae: JUMP 000046af: JUMPDEST 000046b0: PUSH1 0x20 000046b2: DUP1 000046b3: DUP3 000046b4: MSTORE 000046b5: PUSH1 0x36 000046b7: SWAP1 000046b8: DUP3 000046b9: ADD 000046ba: MSTORE 000046bb: PUSH32 0x5369676e617475726556616c696461746f7223697356616c69645369676e6174 000046dc: PUSH1 0x40 000046de: DUP3 000046df: ADD 000046e0: MSTORE 000046e1: PUSH32 0x7572653a20696c6c6567616c207369676e617475726500000000000000000000 00004702: PUSH1 0x60 00004704: DUP3 00004705: ADD 00004706: MSTORE 00004707: PUSH1 0x80 00004709: ADD 0000470a: SWAP1 0000470b: JUMP 0000470c: JUMPDEST 0000470d: PUSH1 0x20 0000470f: DUP1 00004710: DUP3 00004711: MSTORE 00004712: PUSH1 0x37 00004714: SWAP1 00004715: DUP3 00004716: ADD 00004717: MSTORE 00004718: PUSH32 0x4c6962427974657323706f704c617374427974653a2067726561746572207468 00004739: PUSH1 0x40 0000473b: DUP3 0000473c: ADD 0000473d: MSTORE 0000473e: PUSH32 0x616e207a65726f206c656e677468207265717569726564000000000000000000 0000475f: PUSH1 0x60 00004761: DUP3 00004762: ADD 00004763: MSTORE 00004764: PUSH1 0x80 00004766: ADD 00004767: SWAP1 00004768: JUMP 00004769: JUMPDEST 0000476a: PUSH1 0x20 0000476c: DUP1 0000476d: DUP3 0000476e: MSTORE 0000476f: PUSH1 0x19 00004771: SWAP1 00004772: DUP3 00004773: ADD 00004774: MSTORE 00004775: PUSH32 0x414d4d577261707065723a2065787069726564206f7264657200000000000000 00004796: PUSH1 0x40 00004798: DUP3 00004799: ADD 0000479a: MSTORE 0000479b: PUSH1 0x60 0000479d: ADD 0000479e: SWAP1 0000479f: JUMP 000047a0: JUMPDEST 000047a1: PUSH1 0x20 000047a3: DUP1 000047a4: DUP3 000047a5: MSTORE 000047a6: PUSH1 0x1d 000047a8: SWAP1 000047a9: DUP3 000047aa: ADD 000047ab: MSTORE 000047ac: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 000047cd: PUSH1 0x40 000047cf: DUP3 000047d0: ADD 000047d1: MSTORE 000047d2: PUSH1 0x60 000047d4: ADD 000047d5: SWAP1 000047d6: JUMP 000047d7: JUMPDEST 000047d8: PUSH1 0x20 000047da: DUP1 000047db: DUP3 000047dc: MSTORE 000047dd: PUSH1 0x11 000047df: SWAP1 000047e0: DUP3 000047e1: ADD 000047e2: MSTORE 000047e3: PUSH32 0x736c6963655f6f75744f66426f756e6473000000000000000000000000000000 00004804: PUSH1 0x40 00004806: DUP3 00004807: ADD 00004808: MSTORE 00004809: PUSH1 0x60 0000480b: ADD 0000480c: SWAP1 0000480d: JUMP 0000480e: JUMPDEST 0000480f: PUSH1 0x20 00004811: DUP1 00004812: DUP3 00004813: MSTORE 00004814: PUSH1 0x2b 00004816: SWAP1 00004817: DUP3 00004818: ADD 00004819: MSTORE 0000481a: PUSH32 0x414d4d577261707065723a20756e737570706f7274656420556e697377617056 0000483b: PUSH1 0x40 0000483d: DUP3 0000483e: ADD 0000483f: MSTORE 00004840: PUSH32 0x3320737761702074797065000000000000000000000000000000000000000000 00004861: PUSH1 0x60 00004863: DUP3 00004864: ADD 00004865: MSTORE 00004866: PUSH1 0x80 00004868: ADD 00004869: SWAP1 0000486a: JUMP 0000486b: JUMPDEST 0000486c: PUSH1 0x20 0000486e: DUP1 0000486f: DUP3 00004870: MSTORE 00004871: PUSH1 0x21 00004873: SWAP1 00004874: DUP3 00004875: ADD 00004876: MSTORE 00004877: PUSH32 0x414d4d577261707065723a20756e737570706f72746564206d616b6572416464 00004898: PUSH1 0x40 0000489a: DUP3 0000489b: ADD 0000489c: MSTORE 0000489d: PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 000048be: PUSH1 0x60 000048c0: DUP3 000048c1: ADD 000048c2: MSTORE 000048c3: PUSH1 0x80 000048c5: ADD 000048c6: SWAP1 000048c7: JUMP 000048c8: JUMPDEST 000048c9: PUSH1 0x20 000048cb: DUP1 000048cc: DUP3 000048cd: MSTORE 000048ce: PUSH1 0x2c 000048d0: SWAP1 000048d1: DUP3 000048d2: ADD 000048d3: MSTORE 000048d4: PUSH32 0x414d4d577261707065723a2070617468206c656e677468206d75737420626520 000048f5: PUSH1 0x40 000048f7: DUP3 000048f8: ADD 000048f9: MSTORE 000048fa: PUSH32 0x6174206c656173742074776f0000000000000000000000000000000000000000 0000491b: PUSH1 0x60 0000491d: DUP3 0000491e: ADD 0000491f: MSTORE 00004920: PUSH1 0x80 00004922: ADD 00004923: SWAP1 00004924: JUMP 00004925: JUMPDEST 00004926: PUSH1 0x20 00004928: DUP1 00004929: DUP3 0000492a: MSTORE 0000492b: PUSH1 0x2a 0000492d: SWAP1 0000492e: DUP3 0000492f: ADD 00004930: MSTORE 00004931: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00004952: PUSH1 0x40 00004954: DUP3 00004955: ADD 00004956: MSTORE 00004957: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 00004978: PUSH1 0x60 0000497a: DUP3 0000497b: ADD 0000497c: MSTORE 0000497d: PUSH1 0x80 0000497f: ADD 00004980: SWAP1 00004981: JUMP 00004982: JUMPDEST 00004983: PUSH1 0x20 00004985: DUP1 00004986: DUP3 00004987: MSTORE 00004988: PUSH1 0x1d 0000498a: SWAP1 0000498b: DUP3 0000498c: ADD 0000498d: MSTORE 0000498e: PUSH32 0x414d4d577261707065723a206d73672e76616c7565206973207a65726f000000 000049af: PUSH1 0x40 000049b1: DUP3 000049b2: ADD 000049b3: MSTORE 000049b4: PUSH1 0x60 000049b6: ADD 000049b7: SWAP1 000049b8: JUMP 000049b9: JUMPDEST 000049ba: PUSH1 0x20 000049bc: DUP1 000049bd: DUP3 000049be: MSTORE 000049bf: PUSH1 0x1f 000049c1: SWAP1 000049c2: DUP3 000049c3: ADD 000049c4: MSTORE 000049c5: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 000049e6: PUSH1 0x40 000049e8: DUP3 000049e9: ADD 000049ea: MSTORE 000049eb: PUSH1 0x60 000049ed: ADD 000049ee: SWAP1 000049ef: JUMP 000049f0: JUMPDEST 000049f1: PUSH1 0x20 000049f3: DUP1 000049f4: DUP3 000049f5: MSTORE 000049f6: PUSH1 0x36 000049f8: SWAP1 000049f9: DUP3 000049fa: ADD 000049fb: MSTORE 000049fc: PUSH32 0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f 00004a1d: PUSH1 0x40 00004a1f: DUP3 00004a20: ADD 00004a21: MSTORE 00004a22: PUSH32 0x20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000 00004a43: PUSH1 0x60 00004a45: DUP3 00004a46: ADD 00004a47: MSTORE 00004a48: PUSH1 0x80 00004a4a: ADD 00004a4b: SWAP1 00004a4c: JUMP 00004a4d: JUMPDEST 00004a4e: PUSH1 0x20 00004a50: DUP1 00004a51: DUP3 00004a52: MSTORE 00004a53: PUSH1 0x12 00004a55: SWAP1 00004a56: DUP3 00004a57: ADD 00004a58: MSTORE 00004a59: PUSH32 0x746f416464726573735f6f766572666c6f770000000000000000000000000000 00004a7a: PUSH1 0x40 00004a7c: DUP3 00004a7d: ADD 00004a7e: MSTORE 00004a7f: PUSH1 0x60 00004a81: ADD 00004a82: SWAP1 00004a83: JUMP 00004a84: JUMPDEST 00004a85: PUSH1 0x00 00004a87: PUSH1 0x20 00004a89: DUP3 00004a8a: MSTORE 00004a8b: DUP3 00004a8c: MLOAD 00004a8d: PUSH1 0xa0 00004a8f: PUSH1 0x20 00004a91: DUP5 00004a92: ADD 00004a93: MSTORE 00004a94: PUSH2 0x4aa0 00004a97: PUSH1 0xc0 00004a99: DUP5 00004a9a: ADD 00004a9b: DUP3 00004a9c: PUSH2 0x3a26 00004a9f: JUMP 00004aa0: JUMPDEST 00004aa1: SWAP1 00004aa2: POP 00004aa3: PUSH1 0x01 00004aa5: PUSH1 0x01 00004aa7: PUSH1 0xa0 00004aa9: SHL 00004aaa: SUB 00004aab: PUSH1 0x20 00004aad: DUP6 00004aae: ADD 00004aaf: MLOAD 00004ab0: AND 00004ab1: PUSH1 0x40 00004ab3: DUP5 00004ab4: ADD 00004ab5: MSTORE 00004ab6: PUSH1 0x40 00004ab8: DUP5 00004ab9: ADD 00004aba: MLOAD 00004abb: PUSH1 0x60 00004abd: DUP5 00004abe: ADD 00004abf: MSTORE 00004ac0: PUSH1 0x60 00004ac2: DUP5 00004ac3: ADD 00004ac4: MLOAD 00004ac5: PUSH1 0x80 00004ac7: DUP5 00004ac8: ADD 00004ac9: MSTORE 00004aca: PUSH1 0x80 00004acc: DUP5 00004acd: ADD 00004ace: MLOAD 00004acf: PUSH1 0xa0 00004ad1: DUP5 00004ad2: ADD 00004ad3: MSTORE 00004ad4: DUP1 00004ad5: SWAP2 00004ad6: POP 00004ad7: POP 00004ad8: SWAP3 00004ad9: SWAP2 00004ada: POP 00004adb: POP 00004adc: JUMP 00004add: JUMPDEST 00004ade: PUSH1 0x00 00004ae0: PUSH2 0x0100 00004ae3: DUP3 00004ae4: ADD 00004ae5: SWAP1 00004ae6: POP 00004ae7: PUSH1 0x01 00004ae9: PUSH1 0x01 00004aeb: PUSH1 0xa0 00004aed: SHL 00004aee: SUB 00004aef: DUP1 00004af0: DUP5 00004af1: MLOAD 00004af2: AND 00004af3: DUP4 00004af4: MSTORE 00004af5: DUP1 00004af6: PUSH1 0x20 00004af8: DUP6 00004af9: ADD 00004afa: MLOAD 00004afb: AND 00004afc: PUSH1 0x20 00004afe: DUP5 00004aff: ADD 00004b00: MSTORE 00004b01: PUSH3 0xffffff 00004b05: PUSH1 0x40 00004b07: DUP6 00004b08: ADD 00004b09: MLOAD 00004b0a: AND 00004b0b: PUSH1 0x40 00004b0d: DUP5 00004b0e: ADD 00004b0f: MSTORE 00004b10: DUP1 00004b11: PUSH1 0x60 00004b13: DUP6 00004b14: ADD 00004b15: MLOAD 00004b16: AND 00004b17: PUSH1 0x60 00004b19: DUP5 00004b1a: ADD 00004b1b: MSTORE 00004b1c: PUSH1 0x80 00004b1e: DUP5 00004b1f: ADD 00004b20: MLOAD 00004b21: PUSH1 0x80 00004b23: DUP5 00004b24: ADD 00004b25: MSTORE 00004b26: PUSH1 0xa0 00004b28: DUP5 00004b29: ADD 00004b2a: MLOAD 00004b2b: PUSH1 0xa0 00004b2d: DUP5 00004b2e: ADD 00004b2f: MSTORE 00004b30: PUSH1 0xc0 00004b32: DUP5 00004b33: ADD 00004b34: MLOAD 00004b35: PUSH1 0xc0 00004b37: DUP5 00004b38: ADD 00004b39: MSTORE 00004b3a: DUP1 00004b3b: PUSH1 0xe0 00004b3d: DUP6 00004b3e: ADD 00004b3f: MLOAD 00004b40: AND 00004b41: PUSH1 0xe0 00004b43: DUP5 00004b44: ADD 00004b45: MSTORE 00004b46: POP 00004b47: SWAP3 00004b48: SWAP2 00004b49: POP 00004b4a: POP 00004b4b: JUMP 00004b4c: JUMPDEST 00004b4d: PUSH1 0x00 00004b4f: PUSH2 0x0140 00004b52: DUP1 00004b53: DUP4 00004b54: MSTORE 00004b55: DUP5 00004b56: MLOAD 00004b57: PUSH1 0xc0 00004b59: DUP3 00004b5a: DUP6 00004b5b: ADD 00004b5c: MSTORE 00004b5d: PUSH2 0x4b6a 00004b60: PUSH2 0x0200 00004b63: DUP6 00004b64: ADD 00004b65: DUP3 00004b66: PUSH2 0x3a26 00004b69: JUMP 00004b6a: JUMPDEST 00004b6b: PUSH1 0x20 00004b6d: DUP8 00004b6e: DUP2 00004b6f: ADD 00004b70: MLOAD 00004b71: PUSH2 0x0160 00004b74: DUP8 00004b75: ADD 00004b76: MSTORE 00004b77: PUSH1 0x40 00004b79: DUP9 00004b7a: ADD 00004b7b: MLOAD 00004b7c: PUSH2 0x0180 00004b7f: DUP8 00004b80: ADD 00004b81: MSTORE 00004b82: PUSH1 0x60 00004b84: DUP9 00004b85: ADD 00004b86: MLOAD 00004b87: PUSH2 0x01a0 00004b8a: DUP8 00004b8b: ADD 00004b8c: MSTORE 00004b8d: PUSH1 0x80 00004b8f: DUP9 00004b90: ADD 00004b91: MLOAD 00004b92: PUSH2 0xffff 00004b95: SWAP1 00004b96: DUP2 00004b97: AND 00004b98: PUSH2 0x01c0 00004b9b: DUP9 00004b9c: ADD 00004b9d: MSTORE 00004b9e: PUSH1 0xa0 00004ba0: DUP10 00004ba1: ADD 00004ba2: MLOAD 00004ba3: AND 00004ba4: PUSH2 0x01e0 00004ba7: DUP8 00004ba8: ADD 00004ba9: MSTORE 00004baa: DUP7 00004bab: MLOAD 00004bac: SWAP2 00004bad: SWAP5 00004bae: POP 00004baf: PUSH2 0x4bbc 00004bb2: SWAP4 00004bb3: POP 00004bb4: DUP6 00004bb5: ADD 00004bb6: SWAP2 00004bb7: POP 00004bb8: PUSH2 0x3a19 00004bbb: JUMP 00004bbc: JUMPDEST 00004bbd: PUSH1 0x20 00004bbf: DUP4 00004bc0: ADD 00004bc1: MLOAD 00004bc2: PUSH2 0x4bce 00004bc5: PUSH1 0x40 00004bc7: DUP5 00004bc8: ADD 00004bc9: DUP3 00004bca: PUSH2 0x3a19 00004bcd: JUMP 00004bce: JUMPDEST 00004bcf: POP 00004bd0: PUSH1 0x40 00004bd2: DUP4 00004bd3: ADD 00004bd4: MLOAD 00004bd5: PUSH2 0x4be1 00004bd8: PUSH1 0x60 00004bda: DUP5 00004bdb: ADD 00004bdc: DUP3 00004bdd: PUSH2 0x3a19 00004be0: JUMP 00004be1: JUMPDEST 00004be2: POP 00004be3: PUSH1 0x60 00004be5: DUP4 00004be6: ADD 00004be7: MLOAD 00004be8: PUSH1 0x80 00004bea: DUP4 00004beb: ADD 00004bec: MSTORE 00004bed: PUSH1 0x80 00004bef: DUP4 00004bf0: ADD 00004bf1: MLOAD 00004bf2: PUSH1 0xa0 00004bf4: DUP4 00004bf5: ADD 00004bf6: MSTORE 00004bf7: PUSH1 0xa0 00004bf9: DUP4 00004bfa: ADD 00004bfb: MLOAD 00004bfc: PUSH2 0x4c08 00004bff: PUSH1 0xc0 00004c01: DUP5 00004c02: ADD 00004c03: DUP3 00004c04: PUSH2 0x3a19 00004c07: JUMP 00004c08: JUMPDEST 00004c09: POP 00004c0a: PUSH1 0xc0 00004c0c: DUP4 00004c0d: ADD 00004c0e: MLOAD 00004c0f: PUSH2 0x4c1b 00004c12: PUSH1 0xe0 00004c14: DUP5 00004c15: ADD 00004c16: DUP3 00004c17: PUSH2 0x3a19 00004c1a: JUMP 00004c1b: JUMPDEST 00004c1c: POP 00004c1d: PUSH1 0xe0 00004c1f: DUP4 00004c20: ADD 00004c21: MLOAD 00004c22: PUSH2 0x0100 00004c25: DUP4 00004c26: DUP2 00004c27: ADD 00004c28: SWAP2 00004c29: SWAP1 00004c2a: SWAP2 00004c2b: MSTORE 00004c2c: SWAP1 00004c2d: SWAP3 00004c2e: ADD 00004c2f: MLOAD 00004c30: PUSH2 0x0120 00004c33: SWAP1 00004c34: SWAP2 00004c35: ADD 00004c36: MSTORE 00004c37: SWAP2 00004c38: SWAP1 00004c39: POP 00004c3a: JUMP 00004c3b: JUMPDEST 00004c3c: PUSH1 0x00 00004c3e: PUSH1 0xa0 00004c40: DUP3 00004c41: ADD 00004c42: DUP8 00004c43: DUP4 00004c44: MSTORE 00004c45: PUSH1 0x20 00004c47: DUP8 00004c48: DUP2 00004c49: DUP6 00004c4a: ADD 00004c4b: MSTORE 00004c4c: PUSH1 0xa0 00004c4e: PUSH1 0x40 00004c50: DUP6 00004c51: ADD 00004c52: MSTORE 00004c53: DUP2 00004c54: DUP8 00004c55: MLOAD 00004c56: DUP1 00004c57: DUP5 00004c58: MSTORE 00004c59: PUSH1 0xc0 00004c5b: DUP7 00004c5c: ADD 00004c5d: SWAP2 00004c5e: POP 00004c5f: DUP3 00004c60: DUP10 00004c61: ADD 00004c62: SWAP4 00004c63: POP 00004c64: DUP5 00004c65: JUMPDEST 00004c66: DUP2 00004c67: DUP2 00004c68: LT 00004c69: ISZERO 00004c6a: PUSH2 0x4c8a 00004c6d: JUMPI 00004c6e: DUP5 00004c6f: MLOAD 00004c70: PUSH1 0x01 00004c72: PUSH1 0x01 00004c74: PUSH1 0xa0 00004c76: SHL 00004c77: SUB 00004c78: AND 00004c79: DUP4 00004c7a: MSTORE 00004c7b: SWAP4 00004c7c: DUP4 00004c7d: ADD 00004c7e: SWAP4 00004c7f: SWAP2 00004c80: DUP4 00004c81: ADD 00004c82: SWAP2 00004c83: PUSH1 0x01 00004c85: ADD 00004c86: PUSH2 0x4c65 00004c89: JUMP 00004c8a: JUMPDEST 00004c8b: POP 00004c8c: POP 00004c8d: PUSH1 0x01 00004c8f: PUSH1 0x01 00004c91: PUSH1 0xa0 00004c93: SHL 00004c94: SUB 00004c95: SWAP7 00004c96: SWAP1 00004c97: SWAP7 00004c98: AND 00004c99: PUSH1 0x60 00004c9b: DUP6 00004c9c: ADD 00004c9d: MSTORE 00004c9e: POP 00004c9f: POP 00004ca0: POP 00004ca1: PUSH1 0x80 00004ca3: ADD 00004ca4: MSTORE 00004ca5: SWAP4 00004ca6: SWAP3 00004ca7: POP 00004ca8: POP 00004ca9: POP 00004caa: JUMP 00004cab: JUMPDEST 00004cac: PUSH1 0x40 00004cae: MLOAD 00004caf: DUP2 00004cb0: DUP2 00004cb1: ADD 00004cb2: PUSH8 0xffffffffffffffff 00004cbb: DUP2 00004cbc: GT 00004cbd: DUP3 00004cbe: DUP3 00004cbf: LT 00004cc0: OR 00004cc1: ISZERO 00004cc2: PUSH2 0x4cca 00004cc5: JUMPI 00004cc6: PUSH1 0x00 00004cc8: DUP1 00004cc9: REVERT 00004cca: JUMPDEST 00004ccb: PUSH1 0x40 00004ccd: MSTORE 00004cce: SWAP2 00004ccf: SWAP1 00004cd0: POP 00004cd1: JUMP 00004cd2: JUMPDEST 00004cd3: PUSH1 0x00 00004cd5: PUSH8 0xffffffffffffffff 00004cde: DUP3 00004cdf: GT 00004ce0: ISZERO 00004ce1: PUSH2 0x4ce8 00004ce4: JUMPI 00004ce5: DUP1 00004ce6: DUP2 00004ce7: REVERT 00004ce8: JUMPDEST 00004ce9: POP 00004cea: PUSH1 0x20 00004cec: SWAP1 00004ced: DUP2 00004cee: MUL 00004cef: ADD 00004cf0: SWAP1 00004cf1: JUMP 00004cf2: JUMPDEST 00004cf3: PUSH1 0x00 00004cf5: PUSH8 0xffffffffffffffff 00004cfe: DUP3 00004cff: GT 00004d00: ISZERO 00004d01: PUSH2 0x4d08 00004d04: JUMPI 00004d05: DUP1 00004d06: DUP2 00004d07: REVERT 00004d08: JUMPDEST 00004d09: POP 00004d0a: PUSH1 0x1f 00004d0c: ADD 00004d0d: PUSH1 0x1f 00004d0f: NOT 00004d10: AND 00004d11: PUSH1 0x20 00004d13: ADD 00004d14: SWAP1 00004d15: JUMP 00004d16: JUMPDEST 00004d17: PUSH1 0x00 00004d19: JUMPDEST 00004d1a: DUP4 00004d1b: DUP2 00004d1c: LT 00004d1d: ISZERO 00004d1e: PUSH2 0x4d31 00004d21: JUMPI 00004d22: DUP2 00004d23: DUP2 00004d24: ADD 00004d25: MLOAD 00004d26: DUP4 00004d27: DUP3 00004d28: ADD 00004d29: MSTORE 00004d2a: PUSH1 0x20 00004d2c: ADD 00004d2d: PUSH2 0x4d19 00004d30: JUMP 00004d31: JUMPDEST 00004d32: DUP4 00004d33: DUP2 00004d34: GT 00004d35: ISZERO 00004d36: PUSH2 0x0950 00004d39: JUMPI 00004d3a: POP 00004d3b: POP 00004d3c: PUSH1 0x00 00004d3e: SWAP2 00004d3f: ADD 00004d40: MSTORE 00004d41: JUMP 00004d42: JUMPDEST 00004d43: PUSH1 0x01 00004d45: PUSH1 0x01 00004d47: PUSH1 0xa0 00004d49: SHL 00004d4a: SUB 00004d4b: DUP2 00004d4c: AND 00004d4d: DUP2 00004d4e: EQ 00004d4f: PUSH2 0x121d 00004d52: JUMPI 00004d53: PUSH1 0x00 00004d55: DUP1 00004d56: REVERT 00004d57: JUMPDEST 00004d58: DUP1 00004d59: ISZERO 00004d5a: ISZERO 00004d5b: DUP2 00004d5c: EQ 00004d5d: PUSH2 0x121d 00004d60: JUMPI 00004d61: PUSH1 0x00 00004d63: DUP1 00004d64: REVERT 00004d65: JUMPDEST 00004d66: DUP1 00004d67: PUSH1 0x0f 00004d69: SIGNEXTEND 00004d6a: DUP2 00004d6b: EQ 00004d6c: PUSH2 0x121d 00004d6f: JUMPI 00004d70: PUSH1 0x00 00004d72: DUP1 00004d73: REVERT 00004d74: JUMPDEST 00004d75: PUSH1 0xff 00004d77: DUP2 00004d78: AND 00004d79: DUP2 00004d7a: EQ 00004d7b: PUSH2 0x121d 00004d7e: JUMPI 00004d7f: PUSH1 0x00 00004d81: DUP1 00004d82: REVERT 00004d83: INVALID 00004d84: LOG2 00004d85: PUSH5 0x6970667358 00004d8b: UNKNOWN(0x22) 00004d8c: SLT 00004d8d: KECCAK256 00004d8e: SWAP10 00004d8f: CALLVALUE 00004d90: UNKNOWN(0xB9) 00004d91: UNKNOWN(0xEC) 00004d92: ADDMOD 00004d93: UNKNOWN(0xAE) 00004d94: SWAP7 00004d95: UNKNOWN(0xB9) 00004d96: UNKNOWN(0xC9) 00004d97: UNKNOWN(0xCC) 00004d98: SWAP3 00004d99: UNKNOWN(0xD8) 00004d9a: UNKNOWN(0xE4) 00004d9b: UNKNOWN(0xC5) 00004d9c: SWAP15 00004d9d: SWAP15 00004d9e: UNKNOWN(0xDC) 00004d9f: PUSH19 0x4d056d67457584e4359d24a8a0d064736f6c63 00004db3: NUMBER 00004db4: STOP 00004db5: MOD 00004db6: UNKNOWN(0x0C) 00004db7: STOP 00004db8: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xf6326fb3",
"selector": "0xf6326fb3",
"calldata_variants": [
"0xf6326fb3",
"0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa4e12d7",
"selector": "0xfa4e12d7",
"calldata_variants": [
"0xfa4e12d7",
"0xfa4e12d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfd070296",
"selector": "0xfd070296",
"calldata_variants": [
"0xfd070296",
"0xfd0702960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe0c05c24",
"selector": "0xe0c05c24",
"calldata_variants": [
"0xe0c05c24",
"0xe0c05c240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe8edc816",
"selector": "0xe8edc816",
"calldata_variants": [
"0xe8edc816",
"0xe8edc8160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc49e4fd9",
"selector": "0xc49e4fd9",
"calldata_variants": [
"0xc49e4fd9",
"0xc49e4fd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdab400f3",
"selector": "0xdab400f3",
"calldata_variants": [
"0xdab400f3",
"0xdab400f30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 1423,
"type": "tx_origin_used"
},
{
"pc": 2963,
"type": "tx_origin_used"
}
]
}
|
| medium | auth | codex | MarketMakerProxy accepts zero SIGNER, allowing signature bypass with invalid signatures | 75 | no | — |
viewevidence_json{
"evidence": "`SIGNER` is unset by default and `setSigner` does not prevent zero. `isValidSignature` only checks `SIGNER == _ecrecoverAddress(...)`, so invalid signatures that recover to address(0) are accepted when SIGNER is zero.",
"locations": [
"contracts/contracts/MarketMakerProxy.sol:25",
"contracts/contracts/MarketMakerProxy.sol:48",
"contracts/contracts/MarketMakerProxy.sol:100"
],
"recommendation": "Reject zero signers in `setSigner` and/or require `SIGNER != address(0)` inside `isValidSignature`. Consider initializing SIGNER in the constructor and enforcing ECDSA `v`/`s` validity to avoid address(0) recovery on malformed signatures.",
"exploit_scenario": "If SIGNER is never set (default zero) or accidentally set to address(0), an attacker can supply a 65-byte all-zero signature so `ecrecover()` returns address(0). The equality check passes and `isValidSignature` returns the magic value, so external protocols (e.g., 0x) would treat arbitrary orders as signed by the MarketMakerProxy. With existing ERC20 allowances, this can enable draining the proxy\u2019s funds."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x944282a0d45675d88f166a21d2b4370f01316d9f49c8fd761e74bf197ed732b9
call_targets:
0x4a14347083b80e5216ca31350a2d21702ac3650d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x944282a0d45675d88f166a21d2b4370f01316d9f49c8fd761e74bf197ed732b9",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x4a14347083b80e5216ca31350a2d21702ac3650d"
],
"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": "0xf6326fb3",
"selector": "0xf6326fb3",
"calldata_variants": [
"0xf6326fb3",
"0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa4e12d7",
"selector": "0xfa4e12d7",
"calldata_variants": [
"0xfa4e12d7",
"0xfa4e12d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfd070296",
"selector": "0xfd070296",
"calldata_variants": [
"0xfd070296",
"0xfd0702960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe0c05c24",
"selector": "0xe0c05c24",
"calldata_variants": [
"0xe0c05c24",
"0xe0c05c240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe8edc816",
"selector": "0xe8edc816",
"calldata_variants": [
"0xe8edc816",
"0xe8edc8160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc49e4fd9",
"selector": "0xc49e4fd9",
"calldata_variants": [
"0xc49e4fd9",
"0xc49e4fd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdab400f3",
"selector": "0xdab400f3",
"calldata_variants": [
"0xdab400f3",
"0xdab400f30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4568,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6331,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6545,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 13,
"guards_detected": [
{
"pc": 1423,
"type": "tx_origin_used"
},
{
"pc": 2963,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 13
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x944282a0d45675d88f166a21d2b4370f01316d9f49c8fd761e74bf197ed732b9
call_targets:
0x4a14347083b80e5216ca31350a2d21702ac3650d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x944282a0d45675d88f166a21d2b4370f01316d9f49c8fd761e74bf197ed732b9",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x4a14347083b80e5216ca31350a2d21702ac3650d"
],
"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": "0xf6326fb3",
"selector": "0xf6326fb3",
"calldata_variants": [
"0xf6326fb3",
"0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa4e12d7",
"selector": "0xfa4e12d7",
"calldata_variants": [
"0xfa4e12d7",
"0xfa4e12d70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfd070296",
"selector": "0xfd070296",
"calldata_variants": [
"0xfd070296",
"0xfd0702960000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe0c05c24",
"selector": "0xe0c05c24",
"calldata_variants": [
"0xe0c05c24",
"0xe0c05c240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe8edc816",
"selector": "0xe8edc816",
"calldata_variants": [
"0xe8edc816",
"0xe8edc8160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc49e4fd9",
"selector": "0xc49e4fd9",
"calldata_variants": [
"0xc49e4fd9",
"0xc49e4fd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdab400f3",
"selector": "0xdab400f3",
"calldata_variants": [
"0xdab400f3",
"0xdab400f30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4568,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6331,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6545,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 13,
"guards_detected": [
{
"pc": 1423,
"type": "tx_origin_used"
},
{
"pc": 2963,
"type": "tx_origin_used"
}
]
}
|
| 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": 21
}
|
| 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": 23
}
|