TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

6b74e541-cb40-41fa-b381-0ac9cd0774ee

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 2, 2026 2:20 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
31187 report.consolidate complete 1 / 1 3 months ago
76936 artifact.fetch complete 1 / 3 1 week ago
76937 tool.cast_disasm complete 1 / 3 1 week ago
76938 analysis.bundle complete 1 / 3 1 week ago
76939 capability.graph complete 1 / 3 1 week ago
76940 detector.run complete 1 / 3 1 week ago
76941 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found a public V3 reinitializer that can be front‑run to seize admin, replace the chain‑state verifier, and drain all ETH locked in the portal.
View stderr
[codex:1159327] OpenAI Codex v0.77.0 (research preview)
[codex:1159327] --------
[codex:1159327] workdir: /tmp/codex-multi-54z6gjby
[codex:1159327] model: gpt-5.2-codex
[codex:1159327] provider: openai
[codex:1159327] approval: never
[codex:1159327] sandbox: read-only
[codex:1159327] reasoning effort: xhigh
[codex:1159327] reasoning summaries: auto
[codex:1159327] session id: 019b7c7e-d0d3-78c0-88f7-1880411aff11
[codex:1159327] --------
[codex:1159327] user
[codex:1159327] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1159327] 
[codex:1159327] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1159327] 
[codex:1159327] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1159327] - Gas inefficiency, code quality, naming, or best practices
[codex:1159327] - Theoretical vulnerabilities without a clear extraction path
[codex:1159327] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1159327] - Front-running unless it enables theft beyond MEV
[codex:1159327] - DoS, griefing, or issues that don't result in attacker profit
[codex:1159327] - Missing events, view function issues, or informational findings
[codex:1159327] 
[codex:1159327] HIGH-VALUE PATTERNS TO HUNT:
[codex:1159327] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1159327] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1159327] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1159327] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1159327] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1159327] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1159327] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1159327] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1159327] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1159327] 
[codex:1159327] For each finding, you MUST provide:
[codex:1159327] 1. Exact file and line numbers of vulnerable code
[codex:1159327] 2. Step-by-step exploit transaction sequence
[codex:1159327] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1159327] 
[codex:1159327] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1159327] 
[codex:1159327] Output MUST be valid JSON matching the provided schema.
[codex:1159327] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1159327] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1159327] mcp startup: no servers
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Reviewing AUDIT_BUNDLE.txt instructions**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc ls in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] AUDIT_BUNDLE.txt
[codex:1159327] codex-output-schema.json
[codex:1159327] contracts
[codex:1159327] exec
[codex:1159327] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1159327] 
[codex:1159327] ================================================================================
[codex:1159327] FILE: contracts/contracts/fuelchain/FuelChainState.sol
[codex:1159327] ================================================================================
[codex:1159327] // SPDX-License-Identifier: UNLICENSED
[codex:1159327] // solhint-disable not-rely-on-time
[codex:1159327] pragma solidity 0.8.9;
[codex:1159327] 
[codex:1159327] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1159327] import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
[codex:1159327] import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
[codex:1159327] import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
[codex:1159327] import {CryptographyLib} from "../lib/Cryptography.sol";
[codex:1159327] 
[codex:1159327] /// @notice Structure for commits
[codex:1159327] struct Commit {
[codex:1159327]     bytes32 blockHash;
[codex:1159327]     uint32 timestamp;
[codex:1159327]     address reserved1;
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Preparing to audit contracts for exploits**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc 'rg --files' in /tmp/codex-multi-54z6gjby succeeded in 8ms:
[codex:1159327] codex-output-schema.json
[codex:1159327] AUDIT_BUNDLE.txt
[codex:1159327] contracts/contracts/fuelchain/FuelChainState.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v2/FuelMessagePortalV2.sol
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal.sol
[codex:1159327] contracts/contracts/fuelchain/types/FuelBlockHeaderLite.sol
[codex:1159327] contracts/contracts/fuelchain/types/FuelBlockHeader.sol
[codex:1159327] contracts/contracts/lib/Cryptography.sol
[codex:1159327] contracts/contracts/lib/CommonPredicates.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol
[codex:1159327] contracts/contracts/lib/VerifyBinaryTree/VerifyBinaryTree.sol
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Preparing to inspect contracts for vulnerabilities**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '1,240p' contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] // SPDX-License-Identifier: Apache-2.0
[codex:1159327] pragma solidity 0.8.9;
[codex:1159327] 
[codex:1159327] import "../v2/FuelMessagePortalV2.sol";
[codex:1159327] 
[codex:1159327] /// @custom:oz-upgrades-unsafe-allow constructor state-variable-immutable
[codex:1159327] contract FuelMessagePortalV3 is FuelMessagePortalV2 {
[codex:1159327]     using FuelBlockHeaderLib for FuelBlockHeader;
[codex:1159327]     using FuelBlockHeaderLiteLib for FuelBlockHeaderLite;
[codex:1159327] 
[codex:1159327]     /// @dev Emitted when fuel chain state is emitted
[codex:1159327]     event FuelChainStateUpdated(address indexed sender, address indexed oldValue, address indexed newValue);
[codex:1159327] 
[codex:1159327]     /// @dev Emitted when rate limit is reset
[codex:1159327]     event ResetRateLimit(uint256 amount);
[codex:1159327] 
[codex:1159327]     error MessageBlacklisted();
[codex:1159327]     error MessageRelayFailed();
[codex:1159327]     error NotSupported();
[codex:1159327]     error RateLimitExceeded();
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '240,520p' contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] 
[codex:1159327]         if (currentPeriodAmountTemp > limitAmount) {
[codex:1159327]             revert RateLimitExceeded();
[codex:1159327]         }
[codex:1159327] 
[codex:1159327]         currentPeriodAmount = currentPeriodAmountTemp;
[codex:1159327]     }
[codex:1159327] 
[codex:1159327]     /**
[codex:1159327]      * @notice Sets rate limiter role and other params
[codex:1159327]      * @param _limitAmount rate limit amount.
[codex:1159327]      */
[codex:1159327]     function _setInitParams(uint256 _limitAmount) internal {
[codex:1159327]         // set rate limiter role
[codex:1159327]         _grantRole(SET_RATE_LIMITER_ROLE, msg.sender);
[codex:1159327] 
[codex:1159327]         // initializing rate limit var
[codex:1159327]         currentPeriodEnd = block.timestamp + RATE_LIMIT_DURATION;
[codex:1159327]         limitAmount = _limitAmount;
[codex:1159327]     }
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Analyzing potential reinitialization exploit**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '1,260p' contracts/contracts/lib/VerifyBinaryTree/VerifyBinaryTree.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] // SPDX-License-Identifier: Apache-2.0
[codex:1159327] /// @title VerifyBinaryTree
[codex:1159327] /// @author Fuel Labs
[codex:1159327] /// @dev This implements verification for the binary trees used by the FuelVM
[codex:1159327] /// @dev For more details, check:
[codex:1159327] /// @dev https://github.com/FuelLabs/fuel-specs/blob/master/src/protocol/cryptographic-primitives.md
[codex:1159327] 
[codex:1159327] pragma solidity ^0.8.4;
[codex:1159327] 
[codex:1159327] import {Node} from "./Node.sol";
[codex:1159327] import {nodeDigest, leafDigest} from "./TreeHasher.sol";
[codex:1159327] import {pathLengthFromKey, getStartingBit} from "./Utils.sol";
[codex:1159327] 
[codex:1159327] /// @notice Verify if element (key, data) exists in Merkle tree, given data, proof, and root.
[codex:1159327] /// @param root: The root of the tree in which verify the given leaf
[codex:1159327] /// @param data: The data of the leaf to verify
[codex:1159327] /// @param key: The key of the leaf to verify.
[codex:1159327] /// @param proof: Binary Merkle Proof for the leaf.
[codex:1159327] /// @param numLeaves: The number of leaves in the tree
[codex:1159327] /// @return : Whether the proof is valid
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Analyzing upgrade initialization vulnerabilities**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "nl -ba contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol | sed -n '40,140p'" in /tmp/codex-multi-54z6gjby succeeded in 6ms:
[codex:1159327]     40	
[codex:1159327]     41	    /// @notice The eth withdrawal limit amount.
[codex:1159327]     42	    uint256 public limitAmount;
[codex:1159327]     43	
[codex:1159327]     44	    /// @notice Flag to enable or disable the rate limit feature
[codex:1159327]     45	    bool public rateLimitEnabled;
[codex:1159327]     46	
[codex:1159327]     47	    constructor(uint256 _depositLimitGlobal, uint256 _rateLimitDuration) FuelMessagePortalV2(_depositLimitGlobal) {
[codex:1159327]     48	        RATE_LIMIT_DURATION = _rateLimitDuration;
[codex:1159327]     49	        _disableInitializers();
[codex:1159327]     50	    }
[codex:1159327]     51	
[codex:1159327]     52	    function initialize(FuelChainState) public virtual override {
[codex:1159327]     53	        revert NotSupported();
[codex:1159327]     54	    }
[codex:1159327]     55	
[codex:1159327]     56	    function initializerV3(FuelChainState fuelChainState, uint256 _limitAmount) public reinitializer(3) {
[codex:1159327]     57	        initializerV1(fuelChainState);
[codex:1159327]     58	        _setInitParams(_limitAmount);
[codex:1159327]     59	    }
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Tracking function location**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "nl -ba contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol | sed -n '160,260p'" in /tmp/codex-multi-54z6gjby succeeded in 6ms:
[codex:1159327]    160	                blockHeader.outputMessagesCount
[codex:1159327]    161	            )
[codex:1159327]    162	        ) revert InvalidMessageInBlockProof();
[codex:1159327]    163	
[codex:1159327]    164	        //execute message
[codex:1159327]    165	        _executeMessage(messageId, message);
[codex:1159327]    166	    }
[codex:1159327]    167	
[codex:1159327]    168	    /// @notice Executes a message in the given header
[codex:1159327]    169	    /// @param messageId The id of message to execute
[codex:1159327]    170	    /// @param message The message to execute
[codex:1159327]    171	    function _executeMessage(bytes32 messageId, Message calldata message) internal virtual override nonReentrant {
[codex:1159327]    172	        if (_incomingMessageSuccessful[messageId]) revert AlreadyRelayed();
[codex:1159327]    173	
[codex:1159327]    174	        //set message sender for receiving contract to reference
[codex:1159327]    175	        _incomingMessageSender = message.sender;
[codex:1159327]    176	
[codex:1159327]    177	        // v2: update accounting if the message carries an amount
[codex:1159327]    178	        bool success;
[codex:1159327]    179	        bytes memory result;
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Checking initializerV1 location**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "nl -ba contracts/contracts/fuelchain/FuelMessagePortal.sol | sed -n '70,190p'" in /tmp/codex-multi-54z6gjby succeeded in 6ms:
[codex:1159327]     70	    error AmountTooBig();
[codex:1159327]     71	    error AlreadyRelayed();
[codex:1159327]     72	
[codex:1159327]     73	    ///////////////
[codex:1159327]     74	    // Constants //
[codex:1159327]     75	    ///////////////
[codex:1159327]     76	
[codex:1159327]     77	    /// @dev The admin related contract roles
[codex:1159327]     78	    bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
[codex:1159327]     79	
[codex:1159327]     80	    /// @dev The number of decimals that the base Fuel asset uses
[codex:1159327]     81	    uint256 public constant FUEL_BASE_ASSET_DECIMALS = 9;
[codex:1159327]     82	    uint256 public constant ETH_DECIMALS = 18;
[codex:1159327]     83	    uint256 public constant PRECISION = 10 ** (ETH_DECIMALS - FUEL_BASE_ASSET_DECIMALS);
[codex:1159327]     84	
[codex:1159327]     85	    /// @dev The max message data size in bytes
[codex:1159327]     86	    uint256 public constant MAX_MESSAGE_DATA_SIZE = 2 ** 16;
[codex:1159327]     87	
[codex:1159327]     88	    /// @dev Non-zero null value to optimize gas costs
[codex:1159327]     89	    bytes32 internal constant NULL_MESSAGE_SENDER = 0x000000000000000000000000000000000000000000000000000000000000dead;
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Searching for unprotected reinitializers**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc 'rg "reinitializer|initializerV" -n contracts/contracts' in /tmp/codex-multi-54z6gjby succeeded in 9ms:
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56:    function initializerV3(FuelChainState fuelChainState, uint256 _limitAmount) public reinitializer(3) {
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57:        initializerV1(fuelChainState);
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:61:    function reinitializeV3(uint256 _limitAmount) public reinitializer(3) {
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal.sol:120:        initializerV1(fuelChainState);
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal.sol:123:    function initializerV1(FuelChainState fuelChainState) internal virtual onlyInitializing {
[codex:1159327] 
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Analyzing unprotected initializerV3 vulnerability**
[codex:1159327] thinking
[codex:1159327] **Preparing detailed vulnerability report**
[codex:1159327] 
[codex:1159327] I'm organizing a thorough report that highlights the high-severity upgradeability issue caused by the unprotected `initializerV3`. I'll include precise exploit steps, key code locations with line numbers, and evidence demonstrating how an attacker can become admin, set a malicious chain state, and ultimately withdraw all locked ETH through fabricated proofs. I'll also plan to verify no additional vulnerabilities by scanning other related contracts before finalizing.
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '1,240p' contracts/contracts/fuelchain/FuelMessagePortal/v2/FuelMessagePortalV2.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] // SPDX-License-Identifier: Apache-2.0
[codex:1159327] pragma solidity 0.8.9;
[codex:1159327] 
[codex:1159327] import "../../FuelMessagePortal.sol";
[codex:1159327] 
[codex:1159327] /// @custom:oz-upgrades-unsafe-allow constructor state-variable-immutable
[codex:1159327] /// @custom:deprecation THIS CONTRACT IS DEPRECATED. CHECK FuelMessagePortalV3
[codex:1159327] contract FuelMessagePortalV2 is FuelMessagePortal {
[codex:1159327]     error GlobalDepositLimit();
[codex:1159327] 
[codex:1159327]     /// @custom:oz-upgrades-unsafe-allow state-variable-immutable
[codex:1159327]     uint256 public immutable depositLimitGlobal;
[codex:1159327] 
[codex:1159327]     uint256 public totalDeposited;
[codex:1159327] 
[codex:1159327]     constructor(uint256 _depositLimitGlobal) {
[codex:1159327]         /// @custom:oz-upgrades-unsafe-allow state-variable-assignment
[codex:1159327]         depositLimitGlobal = _depositLimitGlobal;
[codex:1159327]         _disableInitializers();
[codex:1159327]     }
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Verifying and committing FuelChainState changes**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '1,200p' contracts/contracts/lib/Cryptography.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] // SPDX-License-Identifier: UNLICENSED
[codex:1159327] pragma solidity 0.8.9;
[codex:1159327] 
[codex:1159327] /// @notice This is the Fuel protocol cryptography library.
[codex:1159327] library CryptographyLib {
[codex:1159327]     /////////////
[codex:1159327]     // Methods //
[codex:1159327]     /////////////
[codex:1159327] 
[codex:1159327]     // secp256k1n / 2
[codex:1159327]     uint256 private constant MAX_SIGNATURE_S_VALUE = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0;
[codex:1159327] 
[codex:1159327]     /// @notice The primary hash method for Fuel.
[codex:1159327]     /// @param data The bytes input data.
[codex:1159327]     /// @return The returned hash result.
[codex:1159327]     function hash(bytes memory data) internal pure returns (bytes32) {
[codex:1159327]         return sha256(data);
[codex:1159327]     }
[codex:1159327] }
[codex:1159327] 
[codex:1159327] thinking
[codex:1159327] **Preparing detailed exploit report JSON**
[codex:1159327] 
[codex:1159327] I'm carefully assembling a JSON report that highlights the critical exploitable initialization vulnerability allowing admin takeover and fund drain. I'll include evidence lines, file and line references, a concise summary, exploit steps, and precise remediation recommendations formatted exactly to the required schema.
[codex:1159327] codex
[codex:1159327] {"no_findings":false,"summary":"Found a public V3 reinitializer that can be front‑run to seize admin, replace the chain‑state verifier, and drain all ETH locked in the portal.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected V3 reinitializer lets attacker become admin, swap chain-state verifier, and forge withdrawals","exploit_scenario":"1) Proxy is upgraded to FuelMessagePortalV3 but the admin does not call `initializerV3`/`reinitializeV3` in the same tx (current version < 3). 2) Attacker calls `initializerV3(attackerFuelChainState, _limitAmount)`; this re-runs `initializerV1`, granting the attacker `DEFAULT_ADMIN_ROLE` and setting `_fuelChainState` to their malicious contract. 3) Attacker’s malicious FuelChainState returns `true` for any `finalized(...)` call, so `relayMessage` accepts attacker-chosen headers. 4) Attacker crafts a fake `rootBlockHeader`/`blockHeader` with `height=1`, `outputMessagesCount=1`, and empty proofs (key=0) so `verifyBinaryTree` passes for an attacker-chosen `messageId`. 5) Calling `relayMessage` executes `_executeMessage`, which transfers `withdrawnAmount` ETH to the attacker. Profit: up to the entire `totalDeposited`/ETH balance locked in the portal.","recommendation":"Restrict `initializerV3`/`reinitializeV3` to `onlyRole(DEFAULT_ADMIN_ROLE)` and avoid re-running `initializerV1` on upgrades; use `upgradeToAndCall` to atomically run the initializer so no public window exists.","evidence":"`initializerV3` is public and calls `initializerV1`, which grants admin roles and sets `_fuelChainState` from attacker input. `relayMessage` relies on `_fuelChainState.finalized(...)`, and `_executeMessage` performs the ETH transfer.","locations":["contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57","contracts/contracts/fuelchain/FuelMessagePortal.sol:123","contracts/contracts/fuelchain/FuelMessagePortal.sol:130","contracts/contracts/fuelchain/FuelMessagePortal.sol:133","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:129","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:171","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:181"]}]}
[codex:1159327] tokens used
[codex:1159327] 57,967
[codex:1159327] {"no_findings":false,"summary":"Found a public V3 reinitializer that can be front‑run to seize admin, replace the chain‑state verifier, and drain all ETH locked in the portal.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected V3 reinitializer lets attacker become admin, swap chain-state verifier, and forge withdrawals","exploit_scenario":"1) Proxy is upgraded to FuelMessagePortalV3 but the admin does not call `initializerV3`/`reinitializeV3` in the same tx (current version < 3). 2) Attacker calls `initializerV3(attackerFuelChainState, _limitAmount)`; this re-runs `initializerV1`, granting the attacker `DEFAULT_ADMIN_ROLE` and setting `_fuelChainState` to their malicious contract. 3) Attacker’s malicious FuelChainState returns `true` for any `finalized(...)` call, so `relayMessage` accepts attacker-chosen headers. 4) Attacker crafts a fake `rootBlockHeader`/`blockHeader` with `height=1`, `outputMessagesCount=1`, and empty proofs (key=0) so `verifyBinaryTree` passes for an attacker-chosen `messageId`. 5) Calling `relayMessage` executes `_executeMessage`, which transfers `withdrawnAmount` ETH to the attacker. Profit: up to the entire `totalDeposited`/ETH balance locked in the portal.","recommendation":"Restrict `initializerV3`/`reinitializeV3` to `onlyRole(DEFAULT_ADMIN_ROLE)` and avoid re-running `initializerV1` on upgrades; use `upgradeToAndCall` to atomically run the initializer so no public window exists.","evidence":"`initializerV3` is public and calls `initializerV1`, which grants admin roles and sets `_fuelChainState` from attacker input. `relayMessage` relies on `_fuelChainState.finalized(...)`, and `_executeMessage` performs the ETH transfer.","locations":["contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57","contracts/contracts/fuelchain/FuelMessagePortal.sol:123","contracts/contracts/fuelchain/FuelMessagePortal.sol:130","contracts/contracts/fuelchain/FuelMessagePortal.sol:133","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:129","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:171","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:181"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-02T02:20:57.806942+00:00",
        "returncode": 0
    },
    "summary": "Found a public V3 reinitializer that can be front\u2011run to seize admin, replace the chain\u2011state verifier, and drain all ETH locked in the portal.",
    "raw_final": {
        "summary": "Found a public V3 reinitializer that can be front\u2011run to seize admin, replace the chain\u2011state verifier, and drain all ETH locked in the portal.",
        "findings": [
            {
                "title": "Unprotected V3 reinitializer lets attacker become admin, swap chain-state verifier, and forge withdrawals",
                "category": "upgradeability",
                "evidence": "`initializerV3` is public and calls `initializerV1`, which grants admin roles and sets `_fuelChainState` from attacker input. `relayMessage` relies on `_fuelChainState.finalized(...)`, and `_executeMessage` performs the ETH transfer.",
                "severity": "high",
                "locations": [
                    "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56",
                    "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57",
                    "contracts/contracts/fuelchain/FuelMessagePortal.sol:123",
                    "contracts/contracts/fuelchain/FuelMessagePortal.sol:130",
                    "contracts/contracts/fuelchain/FuelMessagePortal.sol:133",
                    "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:129",
                    "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:171",
                    "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:181"
                ],
                "recommendation": "Restrict `initializerV3`/`reinitializeV3` to `onlyRole(DEFAULT_ADMIN_ROLE)` and avoid re-running `initializerV1` on upgrades; use `upgradeToAndCall` to atomically run the initializer so no public window exists.",
                "exploit_scenario": "1) Proxy is upgraded to FuelMessagePortalV3 but the admin does not call `initializerV3`/`reinitializeV3` in the same tx (current version < 3). 2) Attacker calls `initializerV3(attackerFuelChainState, _limitAmount)`; this re-runs `initializerV1`, granting the attacker `DEFAULT_ADMIN_ROLE` and setting `_fuelChainState` to their malicious contract. 3) Attacker\u2019s malicious FuelChainState returns `true` for any `finalized(...)` call, so `relayMessage` accepts attacker-chosen headers. 4) Attacker crafts a fake `rootBlockHeader`/`blockHeader` with `height=1`, `outputMessagesCount=1`, and empty proofs (key=0) so `verifyBinaryTree` passes for an attacker-chosen `messageId`. 5) Calling `relayMessage` executes `_executeMessage`, which transfers `withdrawnAmount` ETH to the attacker. Profit: up to the entire `totalDeposited`/ETH balance locked in the portal."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
5
EXT*/BALANCE
4
Total opcodes
7300
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x02fd
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x78abafaf
00000019: GT
0000001a: PUSH2 0x018f
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xc4d66de8
00000024: GT
00000025: PUSH2 0x00e1
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xe465eb9e
0000002f: GT
00000030: PUSH2 0x008a
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xe9f2838e
0000003a: GT
0000003b: PUSH2 0x0064
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xe9f2838e
00000045: EQ
00000046: PUSH2 0x0842
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf4a97d4b
00000050: EQ
00000051: PUSH2 0x085d
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xff50abdc
0000005b: EQ
0000005c: PUSH2 0x0878
0000005f: JUMPI
00000060: PUSH1 0x00
00000062: DUP1
00000063: REVERT
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xe465eb9e
0000006b: EQ
0000006c: PUSH2 0x07ef
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xe4c4be58
00000076: EQ
00000077: PUSH2 0x0806
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xe63ab1e9
00000081: EQ
00000082: PUSH2 0x080e
00000085: JUMPI
00000086: PUSH1 0x00
00000088: DUP1
00000089: REVERT
0000008a: JUMPDEST
0000008b: DUP1
0000008c: PUSH4 0xd68d9d4e
00000091: GT
00000092: PUSH2 0x00bb
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0xd68d9d4e
0000009c: EQ
0000009d: PUSH2 0x07b3
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xdb0e2cc6
000000a7: EQ
000000a8: PUSH2 0x07c6
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xe04c8bca
000000b2: EQ
000000b3: PUSH2 0x07d9
000000b6: JUMPI
000000b7: PUSH1 0x00
000000b9: DUP1
000000ba: REVERT
000000bb: JUMPDEST
000000bc: DUP1
000000bd: PUSH4 0xc4d66de8
000000c2: EQ
000000c3: PUSH2 0x075e
000000c6: JUMPI
000000c7: DUP1
000000c8: PUSH4 0xd547741f
000000cd: EQ
000000ce: PUSH2 0x077e
000000d1: JUMPI
000000d2: DUP1
000000d3: PUSH4 0xd67bdd25
000000d8: EQ
000000d9: PUSH2 0x079e
000000dc: JUMPI
000000dd: PUSH1 0x00
000000df: DUP1
000000e0: REVERT
000000e1: JUMPDEST
000000e2: DUP1
000000e3: PUSH4 0xa217fddf
000000e8: GT
000000e9: PUSH2 0x0143
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0xb905c4f1
000000f3: GT
000000f4: PUSH2 0x011d
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0xb905c4f1
000000fe: EQ
000000ff: PUSH2 0x06ed
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0xb95b3241
00000109: EQ
0000010a: PUSH2 0x070d
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0xbfb879b8
00000114: EQ
00000115: PUSH2 0x073e
00000118: JUMPI
00000119: PUSH1 0x00
0000011b: DUP1
0000011c: REVERT
0000011d: JUMPDEST
0000011e: DUP1
0000011f: PUSH4 0xa217fddf
00000124: EQ
00000125: PUSH2 0x068d
00000128: JUMPI
00000129: DUP1
0000012a: PUSH4 0xaaf5eb68
0000012f: EQ
00000130: PUSH2 0x06a2
00000133: JUMPI
00000134: DUP1
00000135: PUSH4 0xb63a998a
0000013a: EQ
0000013b: PUSH2 0x06b7
0000013e: JUMPI
0000013f: PUSH1 0x00
00000141: DUP1
00000142: REVERT
00000143: JUMPDEST
00000144: DUP1
00000145: PUSH4 0x91d14854
0000014a: GT
0000014b: PUSH2 0x0174
0000014e: JUMPI
0000014f: DUP1
00000150: PUSH4 0x91d14854
00000155: EQ
00000156: PUSH2 0x0609
00000159: JUMPI
0000015a: DUP1
0000015b: PUSH4 0x92cd1ff2
00000160: EQ
00000161: PUSH2 0x065c
00000164: JUMPI
00000165: DUP1
00000166: PUSH4 0xa0443ea8
0000016b: EQ
0000016c: PUSH2 0x0671
0000016f: JUMPI
00000170: PUSH1 0x00
00000172: DUP1
00000173: REVERT
00000174: JUMPDEST
00000175: DUP1
00000176: PUSH4 0x78abafaf
0000017b: EQ
0000017c: PUSH2 0x05dd
0000017f: JUMPI
00000180: DUP1
00000181: PUSH4 0x8456cb59
00000186: EQ
00000187: PUSH2 0x05f4
0000018a: JUMPI
0000018b: PUSH1 0x00
0000018d: DUP1
0000018e: REVERT
0000018f: JUMPDEST
00000190: DUP1
00000191: PUSH4 0x36568abe
00000196: GT
00000197: PUSH2 0x0253
0000019a: JUMPI
0000019b: DUP1
0000019c: PUSH4 0x52d1902d
000001a1: GT
000001a2: PUSH2 0x01fc
000001a5: JUMPI
000001a6: DUP1
000001a7: PUSH4 0x58794456
000001ac: GT
000001ad: PUSH2 0x01d6
000001b0: JUMPI
000001b1: DUP1
000001b2: PUSH4 0x58794456
000001b7: EQ
000001b8: PUSH2 0x057d
000001bb: JUMPI
000001bc: DUP1
000001bd: PUSH4 0x5c975abb
000001c2: EQ
000001c3: PUSH2 0x0594
000001c6: JUMPI
000001c7: DUP1
000001c8: PUSH4 0x69b1e00d
000001cd: EQ
000001ce: PUSH2 0x05ac
000001d1: JUMPI
000001d2: PUSH1 0x00
000001d4: DUP1
000001d5: REVERT
000001d6: JUMPDEST
000001d7: DUP1
000001d8: PUSH4 0x52d1902d
000001dd: EQ
000001de: PUSH2 0x0540
000001e1: JUMPI
000001e2: DUP1
000001e3: PUSH4 0x557eac73
000001e8: EQ
000001e9: PUSH2 0x0555
000001ec: JUMPI
000001ed: DUP1
000001ee: PUSH4 0x56bb54a7
000001f3: EQ
000001f4: PUSH2 0x0575
000001f7: JUMPI
000001f8: PUSH1 0x00
000001fa: DUP1
000001fb: REVERT
000001fc: JUMPDEST
000001fd: DUP1
000001fe: PUSH4 0x3f4ba83a
00000203: GT
00000204: PUSH2 0x022d
00000207: JUMPI
00000208: DUP1
00000209: PUSH4 0x3f4ba83a
0000020e: EQ
0000020f: PUSH2 0x0503
00000212: JUMPI
00000213: DUP1
00000214: PUSH4 0x40de1b1a
00000219: EQ
0000021a: PUSH2 0x0518
0000021d: JUMPI
0000021e: DUP1
0000021f: PUSH4 0x4f1ef286
00000224: EQ
00000225: PUSH2 0x052d
00000228: JUMPI
00000229: PUSH1 0x00
0000022b: DUP1
0000022c: REVERT
0000022d: JUMPDEST
0000022e: DUP1
0000022f: PUSH4 0x36568abe
00000234: EQ
00000235: PUSH2 0x04b0
00000238: JUMPI
00000239: DUP1
0000023a: PUSH4 0x3659cfe6
0000023f: EQ
00000240: PUSH2 0x04d0
00000243: JUMPI
00000244: DUP1
00000245: PUSH4 0x3c6524f2
0000024a: EQ
0000024b: PUSH2 0x04f0
0000024e: JUMPI
0000024f: PUSH1 0x00
00000251: DUP1
00000252: REVERT
00000253: JUMPDEST
00000254: DUP1
00000255: PUSH4 0x1abefcaf
0000025a: GT
0000025b: PUSH2 0x02b5
0000025e: JUMPI
0000025f: DUP1
00000260: PUSH4 0x2ce03353
00000265: GT
00000266: PUSH2 0x028f
00000269: JUMPI
0000026a: DUP1
0000026b: PUSH4 0x2ce03353
00000270: EQ
00000271: PUSH2 0x043c
00000274: JUMPI
00000275: DUP1
00000276: PUSH4 0x2f2ff15d
0000027b: EQ
0000027c: PUSH2 0x045c
0000027f: JUMPI
00000280: DUP1
00000281: PUSH4 0x32ad6268
00000286: EQ
00000287: PUSH2 0x047c
0000028a: JUMPI
0000028b: PUSH1 0x00
0000028d: DUP1
0000028e: REVERT
0000028f: JUMPDEST
00000290: DUP1
00000291: PUSH4 0x1abefcaf
00000296: EQ
00000297: PUSH2 0x03d9
0000029a: JUMPI
0000029b: DUP1
0000029c: PUSH4 0x23c640e7
000002a1: EQ
000002a2: PUSH2 0x03f9
000002a5: JUMPI
000002a6: DUP1
000002a7: PUSH4 0x248a9ca3
000002ac: EQ
000002ad: PUSH2 0x040c
000002b0: JUMPI
000002b1: PUSH1 0x00
000002b3: DUP1
000002b4: REVERT
000002b5: JUMPDEST
000002b6: DUP1
000002b7: PUSH4 0x04594000
000002bc: GT
000002bd: PUSH2 0x02e6
000002c0: JUMPI
000002c1: DUP1
000002c2: PUSH4 0x04594000
000002c7: EQ
000002c8: PUSH2 0x035c
000002cb: JUMPI
000002cc: DUP1
000002cd: PUSH4 0x06720bbb
000002d2: EQ
000002d3: PUSH2 0x0390
000002d6: JUMPI
000002d7: DUP1
000002d8: PUSH4 0x1a2a45fc
000002dd: EQ
000002de: PUSH2 0x03a5
000002e1: JUMPI
000002e2: PUSH1 0x00
000002e4: DUP1
000002e5: REVERT
000002e6: JUMPDEST
000002e7: DUP1
000002e8: PUSH4 0x01ffc9a7
000002ed: EQ
000002ee: PUSH2 0x0302
000002f1: JUMPI
000002f2: DUP1
000002f3: PUSH4 0x024f0575
000002f8: EQ
000002f9: PUSH2 0x0337
000002fc: JUMPI
000002fd: JUMPDEST
000002fe: PUSH1 0x00
00000300: DUP1
00000301: REVERT
00000302: JUMPDEST
00000303: CALLVALUE
00000304: DUP1
00000305: ISZERO
00000306: PUSH2 0x030e
00000309: JUMPI
0000030a: PUSH1 0x00
0000030c: DUP1
0000030d: REVERT
0000030e: JUMPDEST
0000030f: POP
00000310: PUSH2 0x0322
00000313: PUSH2 0x031d
00000316: CALLDATASIZE
00000317: PUSH1 0x04
00000319: PUSH2 0x318f
0000031c: JUMP
0000031d: JUMPDEST
0000031e: PUSH2 0x088f
00000321: JUMP
00000322: JUMPDEST
00000323: PUSH1 0x40
00000325: MLOAD
00000326: SWAP1
00000327: ISZERO
00000328: ISZERO
00000329: DUP2
0000032a: MSTORE
0000032b: PUSH1 0x20
0000032d: ADD
0000032e: JUMPDEST
0000032f: PUSH1 0x40
00000331: MLOAD
00000332: DUP1
00000333: SWAP2
00000334: SUB
00000335: SWAP1
00000336: RETURN
00000337: JUMPDEST
00000338: CALLVALUE
00000339: DUP1
0000033a: ISZERO
0000033b: PUSH2 0x0343
0000033e: JUMPI
0000033f: PUSH1 0x00
00000341: DUP1
00000342: REVERT
00000343: JUMPDEST
00000344: POP
00000345: PUSH2 0x034e
00000348: PUSH3 0x010000
0000034c: DUP2
0000034d: JUMP
0000034e: JUMPDEST
0000034f: PUSH1 0x40
00000351: MLOAD
00000352: SWAP1
00000353: DUP2
00000354: MSTORE
00000355: PUSH1 0x20
00000357: ADD
00000358: PUSH2 0x032e
0000035b: JUMP
0000035c: JUMPDEST
0000035d: CALLVALUE
0000035e: DUP1
0000035f: ISZERO
00000360: PUSH2 0x0368
00000363: JUMPI
00000364: PUSH1 0x00
00000366: DUP1
00000367: REVERT
00000368: JUMPDEST
00000369: POP
0000036a: PUSH2 0x034e
0000036d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000038e: DUP2
0000038f: JUMP
00000390: JUMPDEST
00000391: PUSH2 0x03a3
00000394: PUSH2 0x039e
00000397: CALLDATASIZE
00000398: PUSH1 0x04
0000039a: PUSH2 0x31d1
0000039d: JUMP
0000039e: JUMPDEST
0000039f: PUSH2 0x0928
000003a2: JUMP
000003a3: JUMPDEST
000003a4: STOP
000003a5: JUMPDEST
000003a6: CALLVALUE
000003a7: DUP1
000003a8: ISZERO
000003a9: PUSH2 0x03b1
000003ac: JUMPI
000003ad: PUSH1 0x00
000003af: DUP1
000003b0: REVERT
000003b1: JUMPDEST
000003b2: POP
000003b3: PUSH2 0x034e
000003b6: PUSH32 0x7e5b1c957d4df4bad29cdaceffe50f28f282a0d5096601b958917550d4b2e016
000003d7: DUP2
000003d8: JUMP
000003d9: JUMPDEST
000003da: CALLVALUE
000003db: DUP1
000003dc: ISZERO
000003dd: PUSH2 0x03e5
000003e0: JUMPI
000003e1: PUSH1 0x00
000003e3: DUP1
000003e4: REVERT
000003e5: JUMPDEST
000003e6: POP
000003e7: PUSH2 0x03a3
000003ea: PUSH2 0x03f4
000003ed: CALLDATASIZE
000003ee: PUSH1 0x04
000003f0: PUSH2 0x320c
000003f3: JUMP
000003f4: JUMPDEST
000003f5: PUSH2 0x094d
000003f8: JUMP
000003f9: JUMPDEST
000003fa: PUSH2 0x03a3
000003fd: PUSH2 0x0407
00000400: CALLDATASIZE
00000401: PUSH1 0x04
00000403: PUSH2 0x3229
00000406: JUMP
00000407: JUMPDEST
00000408: PUSH2 0x09eb
0000040b: JUMP
0000040c: JUMPDEST
0000040d: CALLVALUE
0000040e: DUP1
0000040f: ISZERO
00000410: PUSH2 0x0418
00000413: JUMPI
00000414: PUSH1 0x00
00000416: DUP1
00000417: REVERT
00000418: JUMPDEST
00000419: POP
0000041a: PUSH2 0x034e
0000041d: PUSH2 0x0427
00000420: CALLDATASIZE
00000421: PUSH1 0x04
00000423: PUSH2 0x31d1
00000426: JUMP
00000427: JUMPDEST
00000428: PUSH1 0x00
0000042a: SWAP1
0000042b: DUP2
0000042c: MSTORE
0000042d: PUSH1 0x97
0000042f: PUSH1 0x20
00000431: MSTORE
00000432: PUSH1 0x40
00000434: SWAP1
00000435: KECCAK256
00000436: PUSH1 0x01
00000438: ADD
00000439: SLOAD
0000043a: SWAP1
0000043b: JUMP
0000043c: JUMPDEST
0000043d: CALLVALUE
0000043e: DUP1
0000043f: ISZERO
00000440: PUSH2 0x0448
00000443: JUMPI
00000444: PUSH1 0x00
00000446: DUP1
00000447: REVERT
00000448: JUMPDEST
00000449: POP
0000044a: PUSH2 0x03a3
0000044d: PUSH2 0x0457
00000450: CALLDATASIZE
00000451: PUSH1 0x04
00000453: PUSH2 0x31d1
00000456: JUMP
00000457: JUMPDEST
00000458: PUSH2 0x0a38
0000045b: JUMP
0000045c: JUMPDEST
0000045d: CALLVALUE
0000045e: DUP1
0000045f: ISZERO
00000460: PUSH2 0x0468
00000463: JUMPI
00000464: PUSH1 0x00
00000466: DUP1
00000467: REVERT
00000468: JUMPDEST
00000469: POP
0000046a: PUSH2 0x03a3
0000046d: PUSH2 0x0477
00000470: CALLDATASIZE
00000471: PUSH1 0x04
00000473: PUSH2 0x32a5
00000476: JUMP
00000477: JUMPDEST
00000478: PUSH2 0x0b6e
0000047b: JUMP
0000047c: JUMPDEST
0000047d: CALLVALUE
0000047e: DUP1
0000047f: ISZERO
00000480: PUSH2 0x0488
00000483: JUMPI
00000484: PUSH1 0x00
00000486: DUP1
00000487: REVERT
00000488: JUMPDEST
00000489: POP
0000048a: PUSH2 0x034e
0000048d: PUSH32 0x0000000000000000000000000000000000000000000000000000000000093a80
000004ae: DUP2
000004af: JUMP
000004b0: JUMPDEST
000004b1: CALLVALUE
000004b2: DUP1
000004b3: ISZERO
000004b4: PUSH2 0x04bc
000004b7: JUMPI
000004b8: PUSH1 0x00
000004ba: DUP1
000004bb: REVERT
000004bc: JUMPDEST
000004bd: POP
000004be: PUSH2 0x03a3
000004c1: PUSH2 0x04cb
000004c4: CALLDATASIZE
000004c5: PUSH1 0x04
000004c7: PUSH2 0x32a5
000004ca: JUMP
000004cb: JUMPDEST
000004cc: PUSH2 0x0b93
000004cf: JUMP
000004d0: JUMPDEST
000004d1: CALLVALUE
000004d2: DUP1
000004d3: ISZERO
000004d4: PUSH2 0x04dc
000004d7: JUMPI
000004d8: PUSH1 0x00
000004da: DUP1
000004db: REVERT
000004dc: JUMPDEST
000004dd: POP
000004de: PUSH2 0x03a3
000004e1: PUSH2 0x04eb
000004e4: CALLDATASIZE
000004e5: PUSH1 0x04
000004e7: PUSH2 0x320c
000004ea: JUMP
000004eb: JUMPDEST
000004ec: PUSH2 0x0c2c
000004ef: JUMP
000004f0: JUMPDEST
000004f1: PUSH2 0x03a3
000004f4: PUSH2 0x04fe
000004f7: CALLDATASIZE
000004f8: PUSH1 0x04
000004fa: PUSH2 0x3300
000004fd: JUMP
000004fe: JUMPDEST
000004ff: PUSH2 0x0dfe
00000502: JUMP
00000503: JUMPDEST
00000504: CALLVALUE
00000505: DUP1
00000506: ISZERO
00000507: PUSH2 0x050f
0000050a: JUMPI
0000050b: PUSH1 0x00
0000050d: DUP1
0000050e: REVERT
0000050f: JUMPDEST
00000510: POP
00000511: PUSH2 0x03a3
00000514: PUSH2 0x118d
00000517: JUMP
00000518: JUMPDEST
00000519: CALLVALUE
0000051a: DUP1
0000051b: ISZERO
0000051c: PUSH2 0x0524
0000051f: JUMPI
00000520: PUSH1 0x00
00000522: DUP1
00000523: REVERT
00000524: JUMPDEST
00000525: POP
00000526: PUSH2 0x034e
00000529: PUSH1 0x09
0000052b: DUP2
0000052c: JUMP
0000052d: JUMPDEST
0000052e: PUSH2 0x03a3
00000531: PUSH2 0x053b
00000534: CALLDATASIZE
00000535: PUSH1 0x04
00000537: PUSH2 0x344d
0000053a: JUMP
0000053b: JUMPDEST
0000053c: PUSH2 0x11a0
0000053f: JUMP
00000540: JUMPDEST
00000541: CALLVALUE
00000542: DUP1
00000543: ISZERO
00000544: PUSH2 0x054c
00000547: JUMPI
00000548: PUSH1 0x00
0000054a: DUP1
0000054b: REVERT
0000054c: JUMPDEST
0000054d: POP
0000054e: PUSH2 0x034e
00000551: PUSH2 0x135f
00000554: JUMP
00000555: JUMPDEST
00000556: CALLVALUE
00000557: DUP1
00000558: ISZERO
00000559: PUSH2 0x0561
0000055c: JUMPI
0000055d: PUSH1 0x00
0000055f: DUP1
00000560: REVERT
00000561: JUMPDEST
00000562: POP
00000563: PUSH2 0x03a3
00000566: PUSH2 0x0570
00000569: CALLDATASIZE
0000056a: PUSH1 0x04
0000056c: PUSH2 0x31d1
0000056f: JUMP
00000570: JUMPDEST
00000571: PUSH2 0x1431
00000574: JUMP
00000575: JUMPDEST
00000576: PUSH2 0x03a3
00000579: PUSH2 0x14ca
0000057c: JUMP
0000057d: JUMPDEST
0000057e: CALLVALUE
0000057f: DUP1
00000580: ISZERO
00000581: PUSH2 0x0589
00000584: JUMPI
00000585: PUSH1 0x00
00000587: DUP1
00000588: REVERT
00000589: JUMPDEST
0000058a: POP
0000058b: PUSH2 0x034e
0000058e: PUSH2 0x01c9
00000591: SLOAD
00000592: DUP2
00000593: JUMP
00000594: JUMPDEST
00000595: CALLVALUE
00000596: DUP1
00000597: ISZERO
00000598: PUSH2 0x05a0
0000059b: JUMPI
0000059c: PUSH1 0x00
0000059e: DUP1
0000059f: REVERT
000005a0: JUMPDEST
000005a1: POP
000005a2: PUSH1 0x33
000005a4: SLOAD
000005a5: PUSH1 0xff
000005a7: AND
000005a8: PUSH2 0x0322
000005ab: JUMP
000005ac: JUMPDEST
000005ad: CALLVALUE
000005ae: DUP1
000005af: ISZERO
000005b0: PUSH2 0x05b8
000005b3: JUMPI
000005b4: PUSH1 0x00
000005b6: DUP1
000005b7: REVERT
000005b8: JUMPDEST
000005b9: POP
000005ba: PUSH2 0x0322
000005bd: PUSH2 0x05c7
000005c0: CALLDATASIZE
000005c1: PUSH1 0x04
000005c3: PUSH2 0x31d1
000005c6: JUMP
000005c7: JUMPDEST
000005c8: PUSH1 0x00
000005ca: SWAP1
000005cb: DUP2
000005cc: MSTORE
000005cd: PUSH2 0x0162
000005d0: PUSH1 0x20
000005d2: MSTORE
000005d3: PUSH1 0x40
000005d5: SWAP1
000005d6: KECCAK256
000005d7: SLOAD
000005d8: PUSH1 0xff
000005da: AND
000005db: SWAP1
000005dc: JUMP
000005dd: JUMPDEST
000005de: CALLVALUE
000005df: DUP1
000005e0: ISZERO
000005e1: PUSH2 0x05e9
000005e4: JUMPI
000005e5: PUSH1 0x00
000005e7: DUP1
000005e8: REVERT
000005e9: JUMPDEST
000005ea: POP
000005eb: PUSH2 0x034e
000005ee: PUSH2 0x01ca
000005f1: SLOAD
000005f2: DUP2
000005f3: JUMP
000005f4: JUMPDEST
000005f5: CALLVALUE
000005f6: DUP1
000005f7: ISZERO
000005f8: PUSH2 0x0600
000005fb: JUMPI
000005fc: PUSH1 0x00
000005fe: DUP1
000005ff: REVERT
00000600: JUMPDEST
00000601: POP
00000602: PUSH2 0x03a3
00000605: PUSH2 0x1505
00000608: JUMP
00000609: JUMPDEST
0000060a: CALLVALUE
0000060b: DUP1
0000060c: ISZERO
0000060d: PUSH2 0x0615
00000610: JUMPI
00000611: PUSH1 0x00
00000613: DUP1
00000614: REVERT
00000615: JUMPDEST
00000616: POP
00000617: PUSH2 0x0322
0000061a: PUSH2 0x0624
0000061d: CALLDATASIZE
0000061e: PUSH1 0x04
00000620: PUSH2 0x32a5
00000623: JUMP
00000624: JUMPDEST
00000625: PUSH1 0x00
00000627: SWAP2
00000628: DUP3
00000629: MSTORE
0000062a: PUSH1 0x97
0000062c: PUSH1 0x20
0000062e: SWAP1
0000062f: DUP2
00000630: MSTORE
00000631: PUSH1 0x40
00000633: DUP1
00000634: DUP5
00000635: KECCAK256
00000636: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000064b: SWAP4
0000064c: SWAP1
0000064d: SWAP4
0000064e: AND
0000064f: DUP5
00000650: MSTORE
00000651: SWAP2
00000652: SWAP1
00000653: MSTORE
00000654: SWAP1
00000655: KECCAK256
00000656: SLOAD
00000657: PUSH1 0xff
00000659: AND
0000065a: SWAP1
0000065b: JUMP
0000065c: JUMPDEST
0000065d: CALLVALUE
0000065e: DUP1
0000065f: ISZERO
00000660: PUSH2 0x0668
00000663: JUMPI
00000664: PUSH1 0x00
00000666: DUP1
00000667: REVERT
00000668: JUMPDEST
00000669: POP
0000066a: PUSH2 0x034e
0000066d: PUSH1 0x12
0000066f: DUP2
00000670: JUMP
00000671: JUMPDEST
00000672: CALLVALUE
00000673: DUP1
00000674: ISZERO
00000675: PUSH2 0x067d
00000678: JUMPI
00000679: PUSH1 0x00
0000067b: DUP1
0000067c: REVERT
0000067d: JUMPDEST
0000067e: POP
0000067f: PUSH1 0x40
00000681: MLOAD
00000682: PUSH1 0x09
00000684: DUP2
00000685: MSTORE
00000686: PUSH1 0x20
00000688: ADD
00000689: PUSH2 0x032e
0000068c: JUMP
0000068d: JUMPDEST
0000068e: CALLVALUE
0000068f: DUP1
00000690: ISZERO
00000691: PUSH2 0x0699
00000694: JUMPI
00000695: PUSH1 0x00
00000697: DUP1
00000698: REVERT
00000699: JUMPDEST
0000069a: POP
0000069b: PUSH2 0x034e
0000069e: PUSH1 0x00
000006a0: DUP2
000006a1: JUMP
000006a2: JUMPDEST
000006a3: CALLVALUE
000006a4: DUP1
000006a5: ISZERO
000006a6: PUSH2 0x06ae
000006a9: JUMPI
000006aa: PUSH1 0x00
000006ac: DUP1
000006ad: REVERT
000006ae: JUMPDEST
000006af: POP
000006b0: PUSH2 0x034e
000006b3: PUSH2 0x1537
000006b6: JUMP
000006b7: JUMPDEST
000006b8: CALLVALUE
000006b9: DUP1
000006ba: ISZERO
000006bb: PUSH2 0x06c3
000006be: JUMPI
000006bf: PUSH1 0x00
000006c1: DUP1
000006c2: REVERT
000006c3: JUMPDEST
000006c4: POP
000006c5: PUSH2 0x0160
000006c8: SLOAD
000006c9: PUSH1 0x40
000006cb: MLOAD
000006cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006e1: SWAP1
000006e2: SWAP2
000006e3: AND
000006e4: DUP2
000006e5: MSTORE
000006e6: PUSH1 0x20
000006e8: ADD
000006e9: PUSH2 0x032e
000006ec: JUMP
000006ed: JUMPDEST
000006ee: CALLVALUE
000006ef: DUP1
000006f0: ISZERO
000006f1: PUSH2 0x06f9
000006f4: JUMPI
000006f5: PUSH1 0x00
000006f7: DUP1
000006f8: REVERT
000006f9: JUMPDEST
000006fa: POP
000006fb: PUSH2 0x03a3
000006fe: PUSH2 0x0708
00000701: CALLDATASIZE
00000702: PUSH1 0x04
00000704: PUSH2 0x3503
00000707: JUMP
00000708: JUMPDEST
00000709: PUSH2 0x1551
0000070c: JUMP
0000070d: JUMPDEST
0000070e: CALLVALUE
0000070f: DUP1
00000710: ISZERO
00000711: PUSH2 0x0719
00000714: JUMPI
00000715: PUSH1 0x00
00000717: DUP1
00000718: REVERT
00000719: JUMPDEST
0000071a: POP
0000071b: PUSH2 0x0322
0000071e: PUSH2 0x0728
00000721: CALLDATASIZE
00000722: PUSH1 0x04
00000724: PUSH2 0x31d1
00000727: JUMP
00000728: JUMPDEST
00000729: PUSH2 0x01c7
0000072c: PUSH1 0x20
0000072e: MSTORE
0000072f: PUSH1 0x00
00000731: SWAP1
00000732: DUP2
00000733: MSTORE
00000734: PUSH1 0x40
00000736: SWAP1
00000737: KECCAK256
00000738: SLOAD
00000739: PUSH1 0xff
0000073b: AND
0000073c: DUP2
0000073d: JUMP
0000073e: JUMPDEST
0000073f: CALLVALUE
00000740: DUP1
00000741: ISZERO
00000742: PUSH2 0x074a
00000745: JUMPI
00000746: PUSH1 0x00
00000748: DUP1
00000749: REVERT
0000074a: JUMPDEST
0000074b: POP
0000074c: PUSH2 0x03a3
0000074f: PUSH2 0x0759
00000752: CALLDATASIZE
00000753: PUSH1 0x04
00000755: PUSH2 0x3520
00000758: JUMP
00000759: JUMPDEST
0000075a: PUSH2 0x15bd
0000075d: JUMP
0000075e: JUMPDEST
0000075f: CALLVALUE
00000760: DUP1
00000761: ISZERO
00000762: PUSH2 0x076a
00000765: JUMPI
00000766: PUSH1 0x00
00000768: DUP1
00000769: REVERT
0000076a: JUMPDEST
0000076b: POP
0000076c: PUSH2 0x03a3
0000076f: PUSH2 0x0779
00000772: CALLDATASIZE
00000773: PUSH1 0x04
00000775: PUSH2 0x320c
00000778: JUMP
00000779: JUMPDEST
0000077a: PUSH2 0x16f7
0000077d: JUMP
0000077e: JUMPDEST
0000077f: CALLVALUE
00000780: DUP1
00000781: ISZERO
00000782: PUSH2 0x078a
00000785: JUMPI
00000786: PUSH1 0x00
00000788: DUP1
00000789: REVERT
0000078a: JUMPDEST
0000078b: POP
0000078c: PUSH2 0x03a3
0000078f: PUSH2 0x0799
00000792: CALLDATASIZE
00000793: PUSH1 0x04
00000795: PUSH2 0x32a5
00000798: JUMP
00000799: JUMPDEST
0000079a: PUSH2 0x1729
0000079d: JUMP
0000079e: JUMPDEST
0000079f: CALLVALUE
000007a0: DUP1
000007a1: ISZERO
000007a2: PUSH2 0x07aa
000007a5: JUMPI
000007a6: PUSH1 0x00
000007a8: DUP1
000007a9: REVERT
000007aa: JUMPDEST
000007ab: POP
000007ac: PUSH2 0x034e
000007af: PUSH2 0x174e
000007b2: JUMP
000007b3: JUMPDEST
000007b4: PUSH2 0x03a3
000007b7: PUSH2 0x07c1
000007ba: CALLDATASIZE
000007bb: PUSH1 0x04
000007bd: PUSH2 0x31d1
000007c0: JUMP
000007c1: JUMPDEST
000007c2: PUSH2 0x1798
000007c5: JUMP
000007c6: JUMPDEST
000007c7: PUSH2 0x03a3
000007ca: PUSH2 0x07d4
000007cd: CALLDATASIZE
000007ce: PUSH1 0x04
000007d0: PUSH2 0x31d1
000007d3: JUMP
000007d4: JUMPDEST
000007d5: PUSH2 0x17ba
000007d8: JUMP
000007d9: JUMPDEST
000007da: CALLVALUE
000007db: DUP1
000007dc: ISZERO
000007dd: PUSH2 0x07e5
000007e0: JUMPI
000007e1: PUSH1 0x00
000007e3: DUP1
000007e4: REVERT
000007e5: JUMPDEST
000007e6: POP
000007e7: PUSH2 0x0161
000007ea: SLOAD
000007eb: PUSH2 0x034e
000007ee: JUMP
000007ef: JUMPDEST
000007f0: CALLVALUE
000007f1: DUP1
000007f2: ISZERO
000007f3: PUSH2 0x07fb
000007f6: JUMPI
000007f7: PUSH1 0x00
000007f9: DUP1
000007fa: REVERT
000007fb: JUMPDEST
000007fc: POP
000007fd: PUSH2 0x034e
00000800: PUSH2 0x01c8
00000803: SLOAD
00000804: DUP2
00000805: JUMP
00000806: JUMPDEST
00000807: PUSH2 0x03a3
0000080a: PUSH2 0x1801
0000080d: JUMP
0000080e: JUMPDEST
0000080f: CALLVALUE
00000810: DUP1
00000811: ISZERO
00000812: PUSH2 0x081a
00000815: JUMPI
00000816: PUSH1 0x00
00000818: DUP1
00000819: REVERT
0000081a: JUMPDEST
0000081b: POP
0000081c: PUSH2 0x034e
0000081f: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
00000840: DUP2
00000841: JUMP
00000842: JUMPDEST
00000843: CALLVALUE
00000844: DUP1
00000845: ISZERO
00000846: PUSH2 0x084e
00000849: JUMPI
0000084a: PUSH1 0x00
0000084c: DUP1
0000084d: REVERT
0000084e: JUMPDEST
0000084f: POP
00000850: PUSH2 0x01c6
00000853: SLOAD
00000854: PUSH2 0x0322
00000857: SWAP1
00000858: PUSH1 0xff
0000085a: AND
0000085b: DUP2
0000085c: JUMP
0000085d: JUMPDEST
0000085e: CALLVALUE
0000085f: DUP1
00000860: ISZERO
00000861: PUSH2 0x0869
00000864: JUMPI
00000865: PUSH1 0x00
00000867: DUP1
00000868: REVERT
00000869: JUMPDEST
0000086a: POP
0000086b: PUSH2 0x01cb
0000086e: SLOAD
0000086f: PUSH2 0x0322
00000872: SWAP1
00000873: PUSH1 0xff
00000875: AND
00000876: DUP2
00000877: JUMP
00000878: JUMPDEST
00000879: CALLVALUE
0000087a: DUP1
0000087b: ISZERO
0000087c: PUSH2 0x0884
0000087f: JUMPI
00000880: PUSH1 0x00
00000882: DUP1
00000883: REVERT
00000884: JUMPDEST
00000885: POP
00000886: PUSH2 0x034e
00000889: PUSH2 0x0194
0000088c: SLOAD
0000088d: DUP2
0000088e: JUMP
0000088f: JUMPDEST
00000890: PUSH1 0x00
00000892: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000008b3: DUP3
000008b4: AND
000008b5: PUSH32 0x7965db0b00000000000000000000000000000000000000000000000000000000
000008d6: EQ
000008d7: DUP1
000008d8: PUSH2 0x0922
000008db: JUMPI
000008dc: POP
000008dd: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000
000008fe: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000091f: DUP4
00000920: AND
00000921: EQ
00000922: JUMPDEST
00000923: SWAP3
00000924: SWAP2
00000925: POP
00000926: POP
00000927: JUMP
00000928: JUMPDEST
00000929: PUSH1 0x00
0000092b: PUSH2 0x0933
0000092e: DUP2
0000092f: PUSH2 0x181a
00000932: JUMP
00000933: JUMPDEST
00000934: POP
00000935: PUSH1 0x00
00000937: SWAP1
00000938: DUP2
00000939: MSTORE
0000093a: PUSH2 0x01c7
0000093d: PUSH1 0x20
0000093f: MSTORE
00000940: PUSH1 0x40
00000942: SWAP1
00000943: KECCAK256
00000944: DUP1
00000945: SLOAD
00000946: PUSH1 0xff
00000948: NOT
00000949: AND
0000094a: SWAP1
0000094b: SSTORE
0000094c: JUMP
0000094d: JUMPDEST
0000094e: PUSH1 0x00
00000950: PUSH2 0x0958
00000953: DUP2
00000954: PUSH2 0x181a
00000957: JUMP
00000958: JUMPDEST
00000959: PUSH2 0x0160
0000095c: SLOAD
0000095d: PUSH1 0x40
0000095f: MLOAD
00000960: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000975: DUP1
00000976: DUP6
00000977: AND
00000978: SWAP3
00000979: AND
0000097a: SWAP1
0000097b: CALLER
0000097c: SWAP1
0000097d: PUSH32 0x42e4ca4602039e4eee7055c852f2b9116333675ff2826aa7f05adb0839562f6e
0000099e: SWAP1
0000099f: PUSH1 0x00
000009a1: SWAP1
000009a2: LOG4
000009a3: POP
000009a4: PUSH2 0x0160
000009a7: DUP1
000009a8: SLOAD
000009a9: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000009ca: AND
000009cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009e0: SWAP3
000009e1: SWAP1
000009e2: SWAP3
000009e3: AND
000009e4: SWAP2
000009e5: SWAP1
000009e6: SWAP2
000009e7: OR
000009e8: SWAP1
000009e9: SSTORE
000009ea: JUMP
000009eb: JUMPDEST
000009ec: PUSH2 0x09f3
000009ef: PUSH2 0x1824
000009f2: JUMP
000009f3: JUMPDEST
000009f4: PUSH2 0x0a33
000009f7: DUP4
000009f8: DUP4
000009f9: DUP4
000009fa: DUP1
000009fb: DUP1
000009fc: PUSH1 0x1f
000009fe: ADD
000009ff: PUSH1 0x20
00000a01: DUP1
00000a02: SWAP2
00000a03: DIV
00000a04: MUL
00000a05: PUSH1 0x20
00000a07: ADD
00000a08: PUSH1 0x40
00000a0a: MLOAD
00000a0b: SWAP1
00000a0c: DUP2
00000a0d: ADD
00000a0e: PUSH1 0x40
00000a10: MSTORE
00000a11: DUP1
00000a12: SWAP4
00000a13: SWAP3
00000a14: SWAP2
00000a15: SWAP1
00000a16: DUP2
00000a17: DUP2
00000a18: MSTORE
00000a19: PUSH1 0x20
00000a1b: ADD
00000a1c: DUP4
00000a1d: DUP4
00000a1e: DUP1
00000a1f: DUP3
00000a20: DUP5
00000a21: CALLDATACOPY
00000a22: PUSH1 0x00
00000a24: SWAP3
00000a25: ADD
00000a26: SWAP2
00000a27: SWAP1
00000a28: SWAP2
00000a29: MSTORE
00000a2a: POP
00000a2b: PUSH2 0x1879
00000a2e: SWAP3
00000a2f: POP
00000a30: POP
00000a31: POP
00000a32: JUMP
00000a33: JUMPDEST
00000a34: POP
00000a35: POP
00000a36: POP
00000a37: JUMP
00000a38: JUMPDEST
00000a39: PUSH1 0x00
00000a3b: SLOAD
00000a3c: PUSH1 0x03
00000a3e: SWAP1
00000a3f: PUSH2 0x0100
00000a42: SWAP1
00000a43: DIV
00000a44: PUSH1 0xff
00000a46: AND
00000a47: ISZERO
00000a48: DUP1
00000a49: ISZERO
00000a4a: PUSH2 0x0a5a
00000a4d: JUMPI
00000a4e: POP
00000a4f: PUSH1 0x00
00000a51: SLOAD
00000a52: PUSH1 0xff
00000a54: DUP1
00000a55: DUP4
00000a56: AND
00000a57: SWAP2
00000a58: AND
00000a59: LT
00000a5a: JUMPDEST
00000a5b: PUSH2 0x0ad1
00000a5e: JUMPI
00000a5f: PUSH1 0x40
00000a61: MLOAD
00000a62: PUSH3 0x461bcd
00000a66: PUSH1 0xe5
00000a68: SHL
00000a69: DUP2
00000a6a: MSTORE
00000a6b: PUSH1 0x20
00000a6d: PUSH1 0x04
00000a6f: DUP3
00000a70: ADD
00000a71: MSTORE
00000a72: PUSH1 0x2e
00000a74: PUSH1 0x24
00000a76: DUP3
00000a77: ADD
00000a78: MSTORE
00000a79: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00000a9a: PUSH1 0x44
00000a9c: DUP3
00000a9d: ADD
00000a9e: MSTORE
00000a9f: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
00000ac0: PUSH1 0x64
00000ac2: DUP3
00000ac3: ADD
00000ac4: MSTORE
00000ac5: PUSH1 0x84
00000ac7: ADD
00000ac8: JUMPDEST
00000ac9: PUSH1 0x40
00000acb: MLOAD
00000acc: DUP1
00000acd: SWAP2
00000ace: SUB
00000acf: SWAP1
00000ad0: REVERT
00000ad1: JUMPDEST
00000ad2: PUSH1 0x00
00000ad4: DUP1
00000ad5: SLOAD
00000ad6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
00000af7: AND
00000af8: PUSH1 0xff
00000afa: DUP4
00000afb: AND
00000afc: OR
00000afd: PUSH2 0x0100
00000b00: OR
00000b01: SWAP1
00000b02: SSTORE
00000b03: PUSH2 0x0b0b
00000b06: DUP3
00000b07: PUSH2 0x19ff
00000b0a: JUMP
00000b0b: JUMPDEST
00000b0c: PUSH1 0x00
00000b0e: DUP1
00000b0f: SLOAD
00000b10: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
00000b31: AND
00000b32: SWAP1
00000b33: SSTORE
00000b34: PUSH1 0x40
00000b36: MLOAD
00000b37: PUSH1 0xff
00000b39: DUP3
00000b3a: AND
00000b3b: DUP2
00000b3c: MSTORE
00000b3d: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
00000b5e: SWAP1
00000b5f: PUSH1 0x20
00000b61: ADD
00000b62: JUMPDEST
00000b63: PUSH1 0x40
00000b65: MLOAD
00000b66: DUP1
00000b67: SWAP2
00000b68: SUB
00000b69: SWAP1
00000b6a: LOG1
00000b6b: POP
00000b6c: POP
00000b6d: JUMP
00000b6e: JUMPDEST
00000b6f: PUSH1 0x00
00000b71: DUP3
00000b72: DUP2
00000b73: MSTORE
00000b74: PUSH1 0x97
00000b76: PUSH1 0x20
00000b78: MSTORE
00000b79: PUSH1 0x40
00000b7b: SWAP1
00000b7c: KECCAK256
00000b7d: PUSH1 0x01
00000b7f: ADD
00000b80: SLOAD
00000b81: PUSH2 0x0b89
00000b84: DUP2
00000b85: PUSH2 0x181a
00000b88: JUMP
00000b89: JUMPDEST
00000b8a: PUSH2 0x0a33
00000b8d: DUP4
00000b8e: DUP4
00000b8f: PUSH2 0x1a5d
00000b92: JUMP
00000b93: JUMPDEST
00000b94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ba9: DUP2
00000baa: AND
00000bab: CALLER
00000bac: EQ
00000bad: PUSH2 0x0c1e
00000bb0: JUMPI
00000bb1: PUSH1 0x40
00000bb3: MLOAD
00000bb4: PUSH3 0x461bcd
00000bb8: PUSH1 0xe5
00000bba: SHL
00000bbb: DUP2
00000bbc: MSTORE
00000bbd: PUSH1 0x20
00000bbf: PUSH1 0x04
00000bc1: DUP3
00000bc2: ADD
00000bc3: MSTORE
00000bc4: PUSH1 0x2f
00000bc6: PUSH1 0x24
00000bc8: DUP3
00000bc9: ADD
00000bca: MSTORE
00000bcb: PUSH32 0x416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365
00000bec: PUSH1 0x44
00000bee: DUP3
00000bef: ADD
00000bf0: MSTORE
00000bf1: PUSH32 0x20726f6c657320666f722073656c660000000000000000000000000000000000
00000c12: PUSH1 0x64
00000c14: DUP3
00000c15: ADD
00000c16: MSTORE
00000c17: PUSH1 0x84
00000c19: ADD
00000c1a: PUSH2 0x0ac8
00000c1d: JUMP
00000c1e: JUMPDEST
00000c1f: PUSH2 0x0c28
00000c22: DUP3
00000c23: DUP3
00000c24: PUSH2 0x1b33
00000c27: JUMP
00000c28: JUMPDEST
00000c29: POP
00000c2a: POP
00000c2b: JUMP
00000c2c: JUMPDEST
00000c2d: ADDRESS
00000c2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c43: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67
00000c64: AND
00000c65: EQ
00000c66: ISZERO
00000c67: PUSH2 0x0cd8
00000c6a: JUMPI
00000c6b: PUSH1 0x40
00000c6d: MLOAD
00000c6e: PUSH3 0x461bcd
00000c72: PUSH1 0xe5
00000c74: SHL
00000c75: DUP2
00000c76: MSTORE
00000c77: PUSH1 0x20
00000c79: PUSH1 0x04
00000c7b: DUP3
00000c7c: ADD
00000c7d: MSTORE
00000c7e: PUSH1 0x2c
00000c80: PUSH1 0x24
00000c82: DUP3
00000c83: ADD
00000c84: MSTORE
00000c85: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820
00000ca6: PUSH1 0x44
00000ca8: DUP3
00000ca9: ADD
00000caa: MSTORE
00000cab: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000
00000ccc: PUSH1 0x64
00000cce: DUP3
00000ccf: ADD
00000cd0: MSTORE
00000cd1: PUSH1 0x84
00000cd3: ADD
00000cd4: PUSH2 0x0ac8
00000cd7: JUMP
00000cd8: JUMPDEST
00000cd9: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67
00000cfa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d0f: AND
00000d10: PUSH2 0x0d4d
00000d13: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
00000d34: SLOAD
00000d35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d4a: AND
00000d4b: SWAP1
00000d4c: JUMP
00000d4d: JUMPDEST
00000d4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d63: AND
00000d64: EQ
00000d65: PUSH2 0x0dd6
00000d68: JUMPI
00000d69: PUSH1 0x40
00000d6b: MLOAD
00000d6c: PUSH3 0x461bcd
00000d70: PUSH1 0xe5
00000d72: SHL
00000d73: DUP2
00000d74: MSTORE
00000d75: PUSH1 0x20
00000d77: PUSH1 0x04
00000d79: DUP3
00000d7a: ADD
00000d7b: MSTORE
00000d7c: PUSH1 0x2c
00000d7e: PUSH1 0x24
00000d80: DUP3
00000d81: ADD
00000d82: MSTORE
00000d83: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820
00000da4: PUSH1 0x44
00000da6: DUP3
00000da7: ADD
00000da8: MSTORE
00000da9: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000
00000dca: PUSH1 0x64
00000dcc: DUP3
00000dcd: ADD
00000dce: MSTORE
00000dcf: PUSH1 0x84
00000dd1: ADD
00000dd2: PUSH2 0x0ac8
00000dd5: JUMP
00000dd6: JUMPDEST
00000dd7: PUSH2 0x0ddf
00000dda: DUP2
00000ddb: PUSH2 0x1bd0
00000dde: JUMP
00000ddf: JUMPDEST
00000de0: PUSH1 0x40
00000de2: DUP1
00000de3: MLOAD
00000de4: PUSH1 0x00
00000de6: DUP1
00000de7: DUP3
00000de8: MSTORE
00000de9: PUSH1 0x20
00000deb: DUP3
00000dec: ADD
00000ded: SWAP1
00000dee: SWAP3
00000def: MSTORE
00000df0: PUSH2 0x0dfb
00000df3: SWAP2
00000df4: DUP4
00000df5: SWAP2
00000df6: SWAP1
00000df7: PUSH2 0x1bdb
00000dfa: JUMP
00000dfb: JUMPDEST
00000dfc: POP
00000dfd: JUMP
00000dfe: JUMPDEST
00000dff: PUSH2 0x0e06
00000e02: PUSH2 0x1824
00000e05: JUMP
00000e06: JUMPDEST
00000e07: PUSH2 0x01c6
00000e0a: SLOAD
00000e0b: PUSH1 0xff
00000e0d: AND
00000e0e: ISZERO
00000e0f: PUSH2 0x0e44
00000e12: JUMPI
00000e13: PUSH1 0x40
00000e15: MLOAD
00000e16: PUSH32 0x6022a9e700000000000000000000000000000000000000000000000000000000
00000e37: DUP2
00000e38: MSTORE
00000e39: PUSH1 0x04
00000e3b: ADD
00000e3c: PUSH1 0x40
00000e3e: MLOAD
00000e3f: DUP1
00000e40: SWAP2
00000e41: SUB
00000e42: SWAP1
00000e43: REVERT
00000e44: JUMPDEST
00000e45: PUSH2 0x0160
00000e48: SLOAD
00000e49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e5e: AND
00000e5f: PUSH4 0xc8902398
00000e64: PUSH2 0x0e7a
00000e67: PUSH2 0x0e75
00000e6a: CALLDATASIZE
00000e6b: DUP9
00000e6c: SWAP1
00000e6d: SUB
00000e6e: DUP9
00000e6f: ADD
00000e70: DUP9
00000e71: PUSH2 0x357d
00000e74: JUMP
00000e75: JUMPDEST
00000e76: PUSH2 0x1d97
00000e79: JUMP
00000e7a: JUMPDEST
00000e7b: PUSH2 0x0e8a
00000e7e: PUSH1 0x40
00000e80: DUP9
00000e81: ADD
00000e82: PUSH1 0x20
00000e84: DUP10
00000e85: ADD
00000e86: PUSH2 0x35ef
00000e89: JUMP
00000e8a: JUMPDEST
00000e8b: PUSH1 0x40
00000e8d: MLOAD
00000e8e: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000eaf: PUSH1 0xe0
00000eb1: DUP6
00000eb2: SWAP1
00000eb3: SHL
00000eb4: AND
00000eb5: DUP2
00000eb6: MSTORE
00000eb7: PUSH1 0x04
00000eb9: DUP2
00000eba: ADD
00000ebb: SWAP3
00000ebc: SWAP1
00000ebd: SWAP3
00000ebe: MSTORE
00000ebf: PUSH4 0xffffffff
00000ec4: AND
00000ec5: PUSH1 0x24
00000ec7: DUP3
00000ec8: ADD
00000ec9: MSTORE
00000eca: PUSH1 0x44
00000ecc: ADD
00000ecd: PUSH1 0x20
00000ecf: PUSH1 0x40
00000ed1: MLOAD
00000ed2: DUP1
00000ed3: DUP4
00000ed4: SUB
00000ed5: DUP2
00000ed6: DUP7
00000ed7: DUP1
00000ed8: EXTCODESIZE
00000ed9: ISZERO
00000eda: DUP1
00000edb: ISZERO
00000edc: PUSH2 0x0ee4
00000edf: JUMPI
00000ee0: PUSH1 0x00
00000ee2: DUP1
00000ee3: REVERT
00000ee4: JUMPDEST
00000ee5: POP
00000ee6: GAS
00000ee7: STATICCALL
00000ee8: ISZERO
00000ee9: DUP1
00000eea: ISZERO
00000eeb: PUSH2 0x0ef8
00000eee: JUMPI
00000eef: RETURNDATASIZE
00000ef0: PUSH1 0x00
00000ef2: DUP1
00000ef3: RETURNDATACOPY
00000ef4: RETURNDATASIZE
00000ef5: PUSH1 0x00
00000ef7: REVERT
00000ef8: JUMPDEST
00000ef9: POP
00000efa: POP
00000efb: POP
00000efc: POP
00000efd: PUSH1 0x40
00000eff: MLOAD
00000f00: RETURNDATASIZE
00000f01: PUSH1 0x1f
00000f03: NOT
00000f04: PUSH1 0x1f
00000f06: DUP3
00000f07: ADD
00000f08: AND
00000f09: DUP3
00000f0a: ADD
00000f0b: DUP1
00000f0c: PUSH1 0x40
00000f0e: MSTORE
00000f0f: POP
00000f10: DUP2
00000f11: ADD
00000f12: SWAP1
00000f13: PUSH2 0x0f1c
00000f16: SWAP2
00000f17: SWAP1
00000f18: PUSH2 0x360a
00000f1b: JUMP
00000f1c: JUMPDEST
00000f1d: PUSH2 0x0f52
00000f20: JUMPI
00000f21: PUSH1 0x40
00000f23: MLOAD
00000f24: PUSH32 0x53f2b04900000000000000000000000000000000000000000000000000000000
00000f45: DUP2
00000f46: MSTORE
00000f47: PUSH1 0x04
00000f49: ADD
00000f4a: PUSH1 0x40
00000f4c: MLOAD
00000f4d: DUP1
00000f4e: SWAP2
00000f4f: SUB
00000f50: SWAP1
00000f51: REVERT
00000f52: JUMPDEST
00000f53: PUSH2 0x0fed
00000f56: DUP5
00000f57: CALLDATALOAD
00000f58: PUSH2 0x0f6e
00000f5b: PUSH2 0x0f69
00000f5e: CALLDATASIZE
00000f5f: DUP8
00000f60: SWAP1
00000f61: SUB
00000f62: DUP8
00000f63: ADD
00000f64: DUP8
00000f65: PUSH2 0x3639
00000f68: JUMP
00000f69: JUMPDEST
00000f6a: PUSH2 0x1daa
00000f6d: JUMP
00000f6e: JUMPDEST
00000f6f: PUSH1 0x40
00000f71: MLOAD
00000f72: PUSH1 0x20
00000f74: ADD
00000f75: PUSH2 0x0f80
00000f78: SWAP2
00000f79: DUP2
00000f7a: MSTORE
00000f7b: PUSH1 0x20
00000f7d: ADD
00000f7e: SWAP1
00000f7f: JUMP
00000f80: JUMPDEST
00000f81: PUSH1 0x40
00000f83: DUP1
00000f84: MLOAD
00000f85: PUSH1 0x1f
00000f87: NOT
00000f88: DUP2
00000f89: DUP5
00000f8a: SUB
00000f8b: ADD
00000f8c: DUP2
00000f8d: MSTORE
00000f8e: SWAP2
00000f8f: SWAP1
00000f90: MSTORE
00000f91: PUSH2 0x0f9d
00000f94: PUSH1 0x20
00000f96: DUP7
00000f97: ADD
00000f98: DUP7
00000f99: PUSH2 0x36f7
00000f9c: JUMP
00000f9d: JUMPDEST
00000f9e: DUP1
00000f9f: DUP1
00000fa0: PUSH1 0x20
00000fa2: MUL
00000fa3: PUSH1 0x20
00000fa5: ADD
00000fa6: PUSH1 0x40
00000fa8: MLOAD
00000fa9: SWAP1
00000faa: DUP2
00000fab: ADD
00000fac: PUSH1 0x40
00000fae: MSTORE
00000faf: DUP1
00000fb0: SWAP4
00000fb1: SWAP3
00000fb2: SWAP2
00000fb3: SWAP1
00000fb4: DUP2
00000fb5: DUP2
00000fb6: MSTORE
00000fb7: PUSH1 0x20
00000fb9: ADD
00000fba: DUP4
00000fbb: DUP4
00000fbc: PUSH1 0x20
00000fbe: MUL
00000fbf: DUP1
00000fc0: DUP3
00000fc1: DUP5
00000fc2: CALLDATACOPY
00000fc3: PUSH1 0x00
00000fc5: SWAP3
00000fc6: ADD
00000fc7: SWAP2
00000fc8: SWAP1
00000fc9: SWAP2
00000fca: MSTORE
00000fcb: POP
00000fcc: POP
00000fcd: DUP8
00000fce: CALLDATALOAD
00000fcf: SWAP2
00000fd0: POP
00000fd1: PUSH2 0x0fe2
00000fd4: SWAP1
00000fd5: POP
00000fd6: PUSH1 0x40
00000fd8: DUP11
00000fd9: ADD
00000fda: PUSH1 0x20
00000fdc: DUP12
00000fdd: ADD
00000fde: PUSH2 0x35ef
00000fe1: JUMP
00000fe2: JUMPDEST
00000fe3: PUSH4 0xffffffff
00000fe8: AND
00000fe9: PUSH2 0x1db8
00000fec: JUMP
00000fed: JUMPDEST
00000fee: PUSH2 0x1023
00000ff1: JUMPI
00000ff2: PUSH1 0x40
00000ff4: MLOAD
00000ff5: PUSH32 0x63ca294c00000000000000000000000000000000000000000000000000000000
00001016: DUP2
00001017: MSTORE
00001018: PUSH1 0x04
0000101a: ADD
0000101b: PUSH1 0x40
0000101d: MLOAD
0000101e: DUP1
0000101f: SWAP2
00001020: SUB
00001021: SWAP1
00001022: REVERT
00001023: JUMPDEST
00001024: PUSH1 0x00
00001026: PUSH2 0x107a
00001029: DUP7
0000102a: CALLDATALOAD
0000102b: PUSH1 0x20
0000102d: DUP9
0000102e: ADD
0000102f: CALLDATALOAD
00001030: PUSH1 0x40
00001032: DUP10
00001033: ADD
00001034: CALLDATALOAD
00001035: PUSH2 0x1044
00001038: PUSH1 0x80
0000103a: DUP12
0000103b: ADD
0000103c: PUSH1 0x60
0000103e: DUP13
0000103f: ADD
00001040: PUSH2 0x3766
00001043: JUMP
00001044: JUMPDEST
00001045: PUSH2 0x1051
00001048: PUSH1 0x80
0000104a: DUP13
0000104b: ADD
0000104c: DUP13
0000104d: PUSH2 0x3781
00001050: JUMP
00001051: JUMPDEST
00001052: PUSH1 0x40
00001054: MLOAD
00001055: PUSH1 0x20
00001057: ADD
00001058: PUSH2 0x1066
0000105b: SWAP7
0000105c: SWAP6
0000105d: SWAP5
0000105e: SWAP4
0000105f: SWAP3
00001060: SWAP2
00001061: SWAP1
00001062: PUSH2 0x37e6
00001065: JUMP
00001066: JUMPDEST
00001067: PUSH1 0x40
00001069: MLOAD
0000106a: PUSH1 0x20
0000106c: DUP2
0000106d: DUP4
0000106e: SUB
0000106f: SUB
00001070: DUP2
00001071: MSTORE
00001072: SWAP1
00001073: PUSH1 0x40
00001075: MSTORE
00001076: PUSH2 0x1ddb
00001079: JUMP
0000107a: JUMPDEST
0000107b: PUSH1 0x00
0000107d: DUP2
0000107e: DUP2
0000107f: MSTORE
00001080: PUSH2 0x01c7
00001083: PUSH1 0x20
00001085: MSTORE
00001086: PUSH1 0x40
00001088: SWAP1
00001089: KECCAK256
0000108a: SLOAD
0000108b: SWAP1
0000108c: SWAP2
0000108d: POP
0000108e: PUSH1 0xff
00001090: AND
00001091: ISZERO
00001092: PUSH2 0x10c7
00001095: JUMPI
00001096: PUSH1 0x40
00001098: MLOAD
00001099: PUSH32 0x2ed07c6b00000000000000000000000000000000000000000000000000000000
000010ba: DUP2
000010bb: MSTORE
000010bc: PUSH1 0x04
000010be: ADD
000010bf: PUSH1 0x40
000010c1: MLOAD
000010c2: DUP1
000010c3: SWAP2
000010c4: SUB
000010c5: SWAP1
000010c6: REVERT
000010c7: JUMPDEST
000010c8: PUSH2 0x1145
000010cb: DUP5
000010cc: PUSH2 0x0100
000010cf: ADD
000010d0: CALLDATALOAD
000010d1: DUP3
000010d2: PUSH1 0x40
000010d4: MLOAD
000010d5: PUSH1 0x20
000010d7: ADD
000010d8: PUSH2 0x10e3
000010db: SWAP2
000010dc: DUP2
000010dd: MSTORE
000010de: PUSH1 0x20
000010e0: ADD
000010e1: SWAP1
000010e2: JUMP
000010e3: JUMPDEST
000010e4: PUSH1 0x40
000010e6: DUP1
000010e7: MLOAD
000010e8: PUSH1 0x1f
000010ea: NOT
000010eb: DUP2
000010ec: DUP5
000010ed: SUB
000010ee: ADD
000010ef: DUP2
000010f0: MSTORE
000010f1: SWAP2
000010f2: SWAP1
000010f3: MSTORE
000010f4: PUSH2 0x1100
000010f7: PUSH1 0x20
000010f9: DUP7
000010fa: ADD
000010fb: DUP7
000010fc: PUSH2 0x36f7
000010ff: JUMP
00001100: JUMPDEST
00001101: DUP1
00001102: DUP1
00001103: PUSH1 0x20
00001105: MUL
00001106: PUSH1 0x20
00001108: ADD
00001109: PUSH1 0x40
0000110b: MLOAD
0000110c: SWAP1
0000110d: DUP2
0000110e: ADD
0000110f: PUSH1 0x40
00001111: MSTORE
00001112: DUP1
00001113: SWAP4
00001114: SWAP3
00001115: SWAP2
00001116: SWAP1
00001117: DUP2
00001118: DUP2
00001119: MSTORE
0000111a: PUSH1 0x20
0000111c: ADD
0000111d: DUP4
0000111e: DUP4
0000111f: PUSH1 0x20
00001121: MUL
00001122: DUP1
00001123: DUP3
00001124: DUP5
00001125: CALLDATACOPY
00001126: PUSH1 0x00
00001128: SWAP3
00001129: ADD
0000112a: SWAP2
0000112b: SWAP1
0000112c: SWAP2
0000112d: MSTORE
0000112e: POP
0000112f: POP
00001130: DUP8
00001131: CALLDATALOAD
00001132: SWAP2
00001133: POP
00001134: PUSH2 0x0fe2
00001137: SWAP1
00001138: POP
00001139: PUSH1 0x80
0000113b: DUP11
0000113c: ADD
0000113d: PUSH1 0x60
0000113f: DUP12
00001140: ADD
00001141: PUSH2 0x35ef
00001144: JUMP
00001145: JUMPDEST
00001146: PUSH2 0x117b
00001149: JUMPI
0000114a: PUSH1 0x40
0000114c: MLOAD
0000114d: PUSH32 0x89df36b000000000000000000000000000000000000000000000000000000000
0000116e: DUP2
0000116f: MSTORE
00001170: PUSH1 0x04
00001172: ADD
00001173: PUSH1 0x40
00001175: MLOAD
00001176: DUP1
00001177: SWAP2
00001178: SUB
00001179: SWAP1
0000117a: REVERT
0000117b: JUMPDEST
0000117c: PUSH2 0x1185
0000117f: DUP2
00001180: DUP8
00001181: PUSH2 0x1e2d
00001184: JUMP
00001185: JUMPDEST
00001186: POP
00001187: POP
00001188: POP
00001189: POP
0000118a: POP
0000118b: POP
0000118c: JUMP
0000118d: JUMPDEST
0000118e: PUSH1 0x00
00001190: PUSH2 0x1198
00001193: DUP2
00001194: PUSH2 0x181a
00001197: JUMP
00001198: JUMPDEST
00001199: PUSH2 0x0dfb
0000119c: PUSH2 0x20e4
0000119f: JUMP
000011a0: JUMPDEST
000011a1: ADDRESS
000011a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011b7: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67
000011d8: AND
000011d9: EQ
000011da: ISZERO
000011db: PUSH2 0x124c
000011de: JUMPI
000011df: PUSH1 0x40
000011e1: MLOAD
000011e2: PUSH3 0x461bcd
000011e6: PUSH1 0xe5
000011e8: SHL
000011e9: DUP2
000011ea: MSTORE
000011eb: PUSH1 0x20
000011ed: PUSH1 0x04
000011ef: DUP3
000011f0: ADD
000011f1: MSTORE
000011f2: PUSH1 0x2c
000011f4: PUSH1 0x24
000011f6: DUP3
000011f7: ADD
000011f8: MSTORE
000011f9: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820
0000121a: PUSH1 0x44
0000121c: DUP3
0000121d: ADD
0000121e: MSTORE
0000121f: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000
00001240: PUSH1 0x64
00001242: DUP3
00001243: ADD
00001244: MSTORE
00001245: PUSH1 0x84
00001247: ADD
00001248: PUSH2 0x0ac8
0000124b: JUMP
0000124c: JUMPDEST
0000124d: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67
0000126e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001283: AND
00001284: PUSH2 0x12c1
00001287: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
000012a8: SLOAD
000012a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012be: AND
000012bf: SWAP1
000012c0: JUMP
000012c1: JUMPDEST
000012c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012d7: AND
000012d8: EQ
000012d9: PUSH2 0x134a
000012dc: JUMPI
000012dd: PUSH1 0x40
000012df: MLOAD
000012e0: PUSH3 0x461bcd
000012e4: PUSH1 0xe5
000012e6: SHL
000012e7: DUP2
000012e8: MSTORE
000012e9: PUSH1 0x20
000012eb: PUSH1 0x04
000012ed: DUP3
000012ee: ADD
000012ef: MSTORE
000012f0: PUSH1 0x2c
000012f2: PUSH1 0x24
000012f4: DUP3
000012f5: ADD
000012f6: MSTORE
000012f7: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820
00001318: PUSH1 0x44
0000131a: DUP3
0000131b: ADD
0000131c: MSTORE
0000131d: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000
0000133e: PUSH1 0x64
00001340: DUP3
00001341: ADD
00001342: MSTORE
00001343: PUSH1 0x84
00001345: ADD
00001346: PUSH2 0x0ac8
00001349: JUMP
0000134a: JUMPDEST
0000134b: PUSH2 0x1353
0000134e: DUP3
0000134f: PUSH2 0x1bd0
00001352: JUMP
00001353: JUMPDEST
00001354: PUSH2 0x0c28
00001357: DUP3
00001358: DUP3
00001359: PUSH1 0x01
0000135b: PUSH2 0x1bdb
0000135e: JUMP
0000135f: JUMPDEST
00001360: PUSH1 0x00
00001362: ADDRESS
00001363: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001378: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67
00001399: AND
0000139a: EQ
0000139b: PUSH2 0x140c
0000139e: JUMPI
0000139f: PUSH1 0x40
000013a1: MLOAD
000013a2: PUSH3 0x461bcd
000013a6: PUSH1 0xe5
000013a8: SHL
000013a9: DUP2
000013aa: MSTORE
000013ab: PUSH1 0x20
000013ad: PUSH1 0x04
000013af: DUP3
000013b0: ADD
000013b1: MSTORE
000013b2: PUSH1 0x38
000013b4: PUSH1 0x24
000013b6: DUP3
000013b7: ADD
000013b8: MSTORE
000013b9: PUSH32 0x555550535570677261646561626c653a206d757374206e6f742062652063616c
000013da: PUSH1 0x44
000013dc: DUP3
000013dd: ADD
000013de: MSTORE
000013df: PUSH32 0x6c6564207468726f7567682064656c656761746563616c6c0000000000000000
00001400: PUSH1 0x64
00001402: DUP3
00001403: ADD
00001404: MSTORE
00001405: PUSH1 0x84
00001407: ADD
00001408: PUSH2 0x0ac8
0000140b: JUMP
0000140c: JUMPDEST
0000140d: POP
0000140e: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
0000142f: SWAP1
00001430: JUMP
00001431: JUMPDEST
00001432: PUSH32 0x7e5b1c957d4df4bad29cdaceffe50f28f282a0d5096601b958917550d4b2e016
00001453: PUSH2 0x145b
00001456: DUP2
00001457: PUSH2 0x181a
0000145a: JUMP
0000145b: JUMPDEST
0000145c: TIMESTAMP
0000145d: PUSH2 0x01c9
00001460: SLOAD
00001461: LT
00001462: ISZERO
00001463: PUSH2 0x1494
00001466: JUMPI
00001467: TIMESTAMP
00001468: PUSH32 0x0000000000000000000000000000000000000000000000000000000000093a80
00001489: ADD
0000148a: PUSH2 0x01c9
0000148d: SSTORE
0000148e: PUSH1 0x00
00001490: PUSH2 0x01c8
00001493: SSTORE
00001494: JUMPDEST
00001495: PUSH2 0x01ca
00001498: DUP3
00001499: SWAP1
0000149a: SSTORE
0000149b: PUSH1 0x40
0000149d: MLOAD
0000149e: DUP3
0000149f: DUP2
000014a0: MSTORE
000014a1: PUSH32 0x53d83924cffa510ecaf1520ed9de204b6a2b1314d7dc3b20d8a970623841db8c
000014c2: SWAP1
000014c3: PUSH1 0x20
000014c5: ADD
000014c6: PUSH2 0x0b62
000014c9: JUMP
000014ca: JUMPDEST
000014cb: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
000014ec: PUSH2 0x14f4
000014ef: DUP2
000014f0: PUSH2 0x181a
000014f3: JUMP
000014f4: JUMPDEST
000014f5: POP
000014f6: PUSH2 0x01c6
000014f9: DUP1
000014fa: SLOAD
000014fb: PUSH1 0xff
000014fd: NOT
000014fe: AND
000014ff: PUSH1 0x01
00001501: OR
00001502: SWAP1
00001503: SSTORE
00001504: JUMP
00001505: JUMPDEST
00001506: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
00001527: PUSH2 0x152f
0000152a: DUP2
0000152b: PUSH2 0x181a
0000152e: JUMP
0000152f: JUMPDEST
00001530: PUSH2 0x0dfb
00001533: PUSH2 0x2143
00001536: JUMP
00001537: JUMPDEST
00001538: PUSH2 0x1543
0000153b: PUSH1 0x09
0000153d: PUSH1 0x12
0000153f: PUSH2 0x3869
00001542: JUMP
00001543: JUMPDEST
00001544: PUSH2 0x154e
00001547: SWAP1
00001548: PUSH1 0x0a
0000154a: PUSH2 0x39a0
0000154d: JUMP
0000154e: JUMPDEST
0000154f: DUP2
00001550: JUMP
00001551: JUMPDEST
00001552: PUSH32 0x7e5b1c957d4df4bad29cdaceffe50f28f282a0d5096601b958917550d4b2e016
00001573: PUSH2 0x157b
00001576: DUP2
00001577: PUSH2 0x181a
0000157a: JUMP
0000157b: JUMPDEST
0000157c: PUSH2 0x01cb
0000157f: DUP1
00001580: SLOAD
00001581: PUSH1 0xff
00001583: NOT
00001584: AND
00001585: DUP4
00001586: ISZERO
00001587: ISZERO
00001588: SWAP1
00001589: DUP2
0000158a: OR
0000158b: SWAP1
0000158c: SWAP2
0000158d: SSTORE
0000158e: PUSH1 0x40
00001590: MLOAD
00001591: SWAP1
00001592: DUP2
00001593: MSTORE
00001594: PUSH32 0xc0fd249af978a3c3d72e439fc68d57dced24cd9bca6fcb51b6d9f8db31703caa
000015b5: SWAP1
000015b6: PUSH1 0x20
000015b8: ADD
000015b9: PUSH2 0x0b62
000015bc: JUMP
000015bd: JUMPDEST
000015be: PUSH1 0x00
000015c0: SLOAD
000015c1: PUSH1 0x03
000015c3: SWAP1
000015c4: PUSH2 0x0100
000015c7: SWAP1
000015c8: DIV
000015c9: PUSH1 0xff
000015cb: AND
000015cc: ISZERO
000015cd: DUP1
000015ce: ISZERO
000015cf: PUSH2 0x15df
000015d2: JUMPI
000015d3: POP
000015d4: PUSH1 0x00
000015d6: SLOAD
000015d7: PUSH1 0xff
000015d9: DUP1
000015da: DUP4
000015db: AND
000015dc: SWAP2
000015dd: AND
000015de: LT
000015df: JUMPDEST
000015e0: PUSH2 0x1651
000015e3: JUMPI
000015e4: PUSH1 0x40
000015e6: MLOAD
000015e7: PUSH3 0x461bcd
000015eb: PUSH1 0xe5
000015ed: SHL
000015ee: DUP2
000015ef: MSTORE
000015f0: PUSH1 0x20
000015f2: PUSH1 0x04
000015f4: DUP3
000015f5: ADD
000015f6: MSTORE
000015f7: PUSH1 0x2e
000015f9: PUSH1 0x24
000015fb: DUP3
000015fc: ADD
000015fd: MSTORE
000015fe: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
0000161f: PUSH1 0x44
00001621: DUP3
00001622: ADD
00001623: MSTORE
00001624: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
00001645: PUSH1 0x64
00001647: DUP3
00001648: ADD
00001649: MSTORE
0000164a: PUSH1 0x84
0000164c: ADD
0000164d: PUSH2 0x0ac8
00001650: JUMP
00001651: JUMPDEST
00001652: PUSH1 0x00
00001654: DUP1
00001655: SLOAD
00001656: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
00001677: AND
00001678: PUSH1 0xff
0000167a: DUP4
0000167b: AND
0000167c: OR
0000167d: PUSH2 0x0100
00001680: OR
00001681: SWAP1
00001682: SSTORE
00001683: PUSH2 0x168b
00001686: DUP4
00001687: PUSH2 0x2180
0000168a: JUMP
0000168b: JUMPDEST
0000168c: PUSH2 0x1694
0000168f: DUP3
00001690: PUSH2 0x19ff
00001693: JUMP
00001694: JUMPDEST
00001695: PUSH1 0x00
00001697: DUP1
00001698: SLOAD
00001699: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
000016ba: AND
000016bb: SWAP1
000016bc: SSTORE
000016bd: PUSH1 0x40
000016bf: MLOAD
000016c0: PUSH1 0xff
000016c2: DUP3
000016c3: AND
000016c4: DUP2
000016c5: MSTORE
000016c6: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
000016e7: SWAP1
000016e8: PUSH1 0x20
000016ea: ADD
000016eb: PUSH1 0x40
000016ed: MLOAD
000016ee: DUP1
000016ef: SWAP2
000016f0: SUB
000016f1: SWAP1
000016f2: LOG1
000016f3: POP
000016f4: POP
000016f5: POP
000016f6: JUMP
000016f7: JUMPDEST
000016f8: PUSH1 0x40
000016fa: MLOAD
000016fb: PUSH32 0xa038794000000000000000000000000000000000000000000000000000000000
0000171c: DUP2
0000171d: MSTORE
0000171e: PUSH1 0x04
00001720: ADD
00001721: PUSH1 0x40
00001723: MLOAD
00001724: DUP1
00001725: SWAP2
00001726: SUB
00001727: SWAP1
00001728: REVERT
00001729: JUMPDEST
0000172a: PUSH1 0x00
0000172c: DUP3
0000172d: DUP2
0000172e: MSTORE
0000172f: PUSH1 0x97
00001731: PUSH1 0x20
00001733: MSTORE
00001734: PUSH1 0x40
00001736: SWAP1
00001737: KECCAK256
00001738: PUSH1 0x01
0000173a: ADD
0000173b: SLOAD
0000173c: PUSH2 0x1744
0000173f: DUP2
00001740: PUSH2 0x181a
00001743: JUMP
00001744: JUMPDEST
00001745: PUSH2 0x0a33
00001748: DUP4
00001749: DUP4
0000174a: PUSH2 0x1b33
0000174d: JUMP
0000174e: JUMPDEST
0000174f: PUSH2 0x015f
00001752: SLOAD
00001753: PUSH1 0x00
00001755: SWAP1
00001756: PUSH2 0xdead
00001759: EQ
0000175a: ISZERO
0000175b: PUSH2 0x1790
0000175e: JUMPI
0000175f: PUSH1 0x40
00001761: MLOAD
00001762: PUSH32 0xa192800600000000000000000000000000000000000000000000000000000000
00001783: DUP2
00001784: MSTORE
00001785: PUSH1 0x04
00001787: ADD
00001788: PUSH1 0x40
0000178a: MLOAD
0000178b: DUP1
0000178c: SWAP2
0000178d: SUB
0000178e: SWAP1
0000178f: REVERT
00001790: JUMPDEST
00001791: POP
00001792: PUSH2 0x015f
00001795: SLOAD
00001796: SWAP1
00001797: JUMP
00001798: JUMPDEST
00001799: PUSH2 0x17a0
0000179c: PUSH2 0x1824
0000179f: JUMP
000017a0: JUMPDEST
000017a1: PUSH1 0x40
000017a3: DUP1
000017a4: MLOAD
000017a5: PUSH1 0x00
000017a7: DUP2
000017a8: MSTORE
000017a9: PUSH1 0x20
000017ab: DUP2
000017ac: ADD
000017ad: SWAP1
000017ae: SWAP2
000017af: MSTORE
000017b0: PUSH2 0x0dfb
000017b3: SWAP1
000017b4: DUP3
000017b5: SWAP1
000017b6: PUSH2 0x1879
000017b9: JUMP
000017ba: JUMPDEST
000017bb: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
000017dc: PUSH2 0x17e4
000017df: DUP2
000017e0: PUSH2 0x181a
000017e3: JUMP
000017e4: JUMPDEST
000017e5: POP
000017e6: PUSH1 0x00
000017e8: SWAP1
000017e9: DUP2
000017ea: MSTORE
000017eb: PUSH2 0x01c7
000017ee: PUSH1 0x20
000017f0: MSTORE
000017f1: PUSH1 0x40
000017f3: SWAP1
000017f4: KECCAK256
000017f5: DUP1
000017f6: SLOAD
000017f7: PUSH1 0xff
000017f9: NOT
000017fa: AND
000017fb: PUSH1 0x01
000017fd: OR
000017fe: SWAP1
000017ff: SSTORE
00001800: JUMP
00001801: JUMPDEST
00001802: PUSH1 0x00
00001804: PUSH2 0x180c
00001807: DUP2
00001808: PUSH2 0x181a
0000180b: JUMP
0000180c: JUMPDEST
0000180d: POP
0000180e: PUSH2 0x01c6
00001811: DUP1
00001812: SLOAD
00001813: PUSH1 0xff
00001815: NOT
00001816: AND
00001817: SWAP1
00001818: SSTORE
00001819: JUMP
0000181a: JUMPDEST
0000181b: PUSH2 0x0dfb
0000181e: DUP2
0000181f: CALLER
00001820: PUSH2 0x22a7
00001823: JUMP
00001824: JUMPDEST
00001825: PUSH1 0x33
00001827: SLOAD
00001828: PUSH1 0xff
0000182a: AND
0000182b: ISZERO
0000182c: PUSH2 0x1877
0000182f: JUMPI
00001830: PUSH1 0x40
00001832: MLOAD
00001833: PUSH3 0x461bcd
00001837: PUSH1 0xe5
00001839: SHL
0000183a: DUP2
0000183b: MSTORE
0000183c: PUSH1 0x20
0000183e: PUSH1 0x04
00001840: DUP3
00001841: ADD
00001842: MSTORE
00001843: PUSH1 0x10
00001845: PUSH1 0x24
00001847: DUP3
00001848: ADD
00001849: MSTORE
0000184a: PUSH32 0x5061757361626c653a2070617573656400000000000000000000000000000000
0000186b: PUSH1 0x44
0000186d: DUP3
0000186e: ADD
0000186f: MSTORE
00001870: PUSH1 0x64
00001872: ADD
00001873: PUSH2 0x0ac8
00001876: JUMP
00001877: JUMPDEST
00001878: JUMP
00001879: JUMPDEST
0000187a: DUP1
0000187b: MLOAD
0000187c: CALLER
0000187d: SWAP1
0000187e: PUSH3 0x010000
00001882: GT
00001883: PUSH2 0x18b8
00001886: JUMPI
00001887: PUSH1 0x40
00001889: MLOAD
0000188a: PUSH32 0xa07dcb5200000000000000000000000000000000000000000000000000000000
000018ab: DUP2
000018ac: MSTORE
000018ad: PUSH1 0x04
000018af: ADD
000018b0: PUSH1 0x40
000018b2: MLOAD
000018b3: DUP1
000018b4: SWAP2
000018b5: SUB
000018b6: SWAP1
000018b7: REVERT
000018b8: JUMPDEST
000018b9: PUSH2 0x0194
000018bc: DUP1
000018bd: SLOAD
000018be: CALLVALUE
000018bf: ADD
000018c0: SWAP1
000018c1: DUP2
000018c2: SWAP1
000018c3: SSTORE
000018c4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000018e5: DUP2
000018e6: GT
000018e7: ISZERO
000018e8: PUSH2 0x191d
000018eb: JUMPI
000018ec: PUSH1 0x40
000018ee: MLOAD
000018ef: PUSH32 0x22eef62800000000000000000000000000000000000000000000000000000000
00001910: DUP2
00001911: MSTORE
00001912: PUSH1 0x04
00001914: ADD
00001915: PUSH1 0x40
00001917: MLOAD
00001918: DUP1
00001919: SWAP2
0000191a: SUB
0000191b: SWAP1
0000191c: REVERT
0000191d: JUMPDEST
0000191e: PUSH4 0x3b9aca00
00001923: CALLVALUE
00001924: SWAP1
00001925: DUP2
00001926: DIV
00001927: SWAP1
00001928: ISZERO
00001929: PUSH2 0x19ad
0000192c: JUMPI
0000192d: PUSH4 0x3b9aca00
00001932: DUP2
00001933: MUL
00001934: CALLVALUE
00001935: EQ
00001936: PUSH2 0x196b
00001939: JUMPI
0000193a: PUSH1 0x40
0000193c: MLOAD
0000193d: PUSH32 0xd7da5eff00000000000000000000000000000000000000000000000000000000
0000195e: DUP2
0000195f: MSTORE
00001960: PUSH1 0x04
00001962: ADD
00001963: PUSH1 0x40
00001965: MLOAD
00001966: DUP1
00001967: SWAP2
00001968: SUB
00001969: SWAP1
0000196a: REVERT
0000196b: JUMPDEST
0000196c: PUSH8 0xffffffffffffffff
00001975: DUP2
00001976: GT
00001977: ISZERO
00001978: PUSH2 0x19ad
0000197b: JUMPI
0000197c: PUSH1 0x40
0000197e: MLOAD
0000197f: PUSH32 0x6b2f218300000000000000000000000000000000000000000000000000000000
000019a0: DUP2
000019a1: MSTORE
000019a2: PUSH1 0x04
000019a4: ADD
000019a5: PUSH1 0x40
000019a7: MLOAD
000019a8: DUP1
000019a9: SWAP2
000019aa: SUB
000019ab: SWAP1
000019ac: REVERT
000019ad: JUMPDEST
000019ae: PUSH1 0x00
000019b0: PUSH2 0x0161
000019b3: SLOAD
000019b4: SWAP1
000019b5: POP
000019b6: DUP1
000019b7: DUP7
000019b8: DUP6
000019b9: PUSH32 0x2e8c88b204c4fc9f27811757a7ca53a385ca4d1c8a2c6b0aa2bc386646f0ca63
000019da: DUP6
000019db: DUP10
000019dc: PUSH1 0x40
000019de: MLOAD
000019df: PUSH2 0x19e9
000019e2: SWAP3
000019e3: SWAP2
000019e4: SWAP1
000019e5: PUSH2 0x3a04
000019e8: JUMP
000019e9: JUMPDEST
000019ea: PUSH1 0x40
000019ec: MLOAD
000019ed: DUP1
000019ee: SWAP2
000019ef: SUB
000019f0: SWAP1
000019f1: LOG4
000019f2: PUSH1 0x01
000019f4: ADD
000019f5: PUSH2 0x0161
000019f8: SSTORE
000019f9: POP
000019fa: POP
000019fb: POP
000019fc: POP
000019fd: POP
000019fe: JUMP
000019ff: JUMPDEST
00001a00: PUSH2 0x1a29
00001a03: PUSH32 0x7e5b1c957d4df4bad29cdaceffe50f28f282a0d5096601b958917550d4b2e016
00001a24: CALLER
00001a25: PUSH2 0x1a5d
00001a28: JUMP
00001a29: JUMPDEST
00001a2a: PUSH2 0x1a53
00001a2d: PUSH32 0x0000000000000000000000000000000000000000000000000000000000093a80
00001a4e: TIMESTAMP
00001a4f: PUSH2 0x3a27
00001a52: JUMP
00001a53: JUMPDEST
00001a54: PUSH2 0x01c9
00001a57: SSTORE
00001a58: PUSH2 0x01ca
00001a5b: SSTORE
00001a5c: JUMP
00001a5d: JUMPDEST
00001a5e: PUSH1 0x00
00001a60: DUP3
00001a61: DUP2
00001a62: MSTORE
00001a63: PUSH1 0x97
00001a65: PUSH1 0x20
00001a67: SWAP1
00001a68: DUP2
00001a69: MSTORE
00001a6a: PUSH1 0x40
00001a6c: DUP1
00001a6d: DUP4
00001a6e: KECCAK256
00001a6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a84: DUP6
00001a85: AND
00001a86: DUP5
00001a87: MSTORE
00001a88: SWAP1
00001a89: SWAP2
00001a8a: MSTORE
00001a8b: SWAP1
00001a8c: KECCAK256
00001a8d: SLOAD
00001a8e: PUSH1 0xff
00001a90: AND
00001a91: PUSH2 0x0c28
00001a94: JUMPI
00001a95: PUSH1 0x00
00001a97: DUP3
00001a98: DUP2
00001a99: MSTORE
00001a9a: PUSH1 0x97
00001a9c: PUSH1 0x20
00001a9e: SWAP1
00001a9f: DUP2
00001aa0: MSTORE
00001aa1: PUSH1 0x40
00001aa3: DUP1
00001aa4: DUP4
00001aa5: KECCAK256
00001aa6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001abb: DUP6
00001abc: AND
00001abd: DUP5
00001abe: MSTORE
00001abf: SWAP1
00001ac0: SWAP2
00001ac1: MSTORE
00001ac2: SWAP1
00001ac3: KECCAK256
00001ac4: DUP1
00001ac5: SLOAD
00001ac6: PUSH1 0xff
00001ac8: NOT
00001ac9: AND
00001aca: PUSH1 0x01
00001acc: OR
00001acd: SWAP1
00001ace: SSTORE
00001acf: PUSH2 0x1ad5
00001ad2: CALLER
00001ad3: SWAP1
00001ad4: JUMP
00001ad5: JUMPDEST
00001ad6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001aeb: AND
00001aec: DUP2
00001aed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b02: AND
00001b03: DUP4
00001b04: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
00001b25: PUSH1 0x40
00001b27: MLOAD
00001b28: PUSH1 0x40
00001b2a: MLOAD
00001b2b: DUP1
00001b2c: SWAP2
00001b2d: SUB
00001b2e: SWAP1
00001b2f: LOG4
00001b30: POP
00001b31: POP
00001b32: JUMP
00001b33: JUMPDEST
00001b34: PUSH1 0x00
00001b36: DUP3
00001b37: DUP2
00001b38: MSTORE
00001b39: PUSH1 0x97
00001b3b: PUSH1 0x20
00001b3d: SWAP1
00001b3e: DUP2
00001b3f: MSTORE
00001b40: PUSH1 0x40
00001b42: DUP1
00001b43: DUP4
00001b44: KECCAK256
00001b45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b5a: DUP6
00001b5b: AND
00001b5c: DUP5
00001b5d: MSTORE
00001b5e: SWAP1
00001b5f: SWAP2
00001b60: MSTORE
00001b61: SWAP1
00001b62: KECCAK256
00001b63: SLOAD
00001b64: PUSH1 0xff
00001b66: AND
00001b67: ISZERO
00001b68: PUSH2 0x0c28
00001b6b: JUMPI
00001b6c: PUSH1 0x00
00001b6e: DUP3
00001b6f: DUP2
00001b70: MSTORE
00001b71: PUSH1 0x97
00001b73: PUSH1 0x20
00001b75: SWAP1
00001b76: DUP2
00001b77: MSTORE
00001b78: PUSH1 0x40
00001b7a: DUP1
00001b7b: DUP4
00001b7c: KECCAK256
00001b7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b92: DUP6
00001b93: AND
00001b94: DUP1
00001b95: DUP6
00001b96: MSTORE
00001b97: SWAP3
00001b98: MSTORE
00001b99: DUP1
00001b9a: DUP4
00001b9b: KECCAK256
00001b9c: DUP1
00001b9d: SLOAD
00001b9e: PUSH1 0xff
00001ba0: NOT
00001ba1: AND
00001ba2: SWAP1
00001ba3: SSTORE
00001ba4: MLOAD
00001ba5: CALLER
00001ba6: SWAP3
00001ba7: DUP6
00001ba8: SWAP2
00001ba9: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
00001bca: SWAP2
00001bcb: SWAP1
00001bcc: LOG4
00001bcd: POP
00001bce: POP
00001bcf: JUMP
00001bd0: JUMPDEST
00001bd1: PUSH1 0x00
00001bd3: PUSH2 0x0c28
00001bd6: DUP2
00001bd7: PUSH2 0x181a
00001bda: JUMP
00001bdb: JUMPDEST
00001bdc: PUSH32 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143
00001bfd: SLOAD
00001bfe: PUSH1 0xff
00001c00: AND
00001c01: ISZERO
00001c02: PUSH2 0x1c0e
00001c05: JUMPI
00001c06: PUSH2 0x0a33
00001c09: DUP4
00001c0a: PUSH2 0x2329
00001c0d: JUMP
00001c0e: JUMPDEST
00001c0f: DUP3
00001c10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c25: AND
00001c26: PUSH4 0x52d1902d
00001c2b: PUSH1 0x40
00001c2d: MLOAD
00001c2e: DUP2
00001c2f: PUSH4 0xffffffff
00001c34: AND
00001c35: PUSH1 0xe0
00001c37: SHL
00001c38: DUP2
00001c39: MSTORE
00001c3a: PUSH1 0x04
00001c3c: ADD
00001c3d: PUSH1 0x20
00001c3f: PUSH1 0x40
00001c41: MLOAD
00001c42: DUP1
00001c43: DUP4
00001c44: SUB
00001c45: DUP2
00001c46: DUP7
00001c47: DUP1
00001c48: EXTCODESIZE
00001c49: ISZERO
00001c4a: DUP1
00001c4b: ISZERO
00001c4c: PUSH2 0x1c54
00001c4f: JUMPI
00001c50: PUSH1 0x00
00001c52: DUP1
00001c53: REVERT
00001c54: JUMPDEST
00001c55: POP
00001c56: GAS
00001c57: STATICCALL
00001c58: SWAP3
00001c59: POP
00001c5a: POP
00001c5b: POP
00001c5c: DUP1
00001c5d: ISZERO
00001c5e: PUSH2 0x1c84
00001c61: JUMPI
00001c62: POP
00001c63: PUSH1 0x40
00001c65: DUP1
00001c66: MLOAD
00001c67: PUSH1 0x1f
00001c69: RETURNDATASIZE
00001c6a: SWAP1
00001c6b: DUP2
00001c6c: ADD
00001c6d: PUSH1 0x1f
00001c6f: NOT
00001c70: AND
00001c71: DUP3
00001c72: ADD
00001c73: SWAP1
00001c74: SWAP3
00001c75: MSTORE
00001c76: PUSH2 0x1c81
00001c79: SWAP2
00001c7a: DUP2
00001c7b: ADD
00001c7c: SWAP1
00001c7d: PUSH2 0x3a3f
00001c80: JUMP
00001c81: JUMPDEST
00001c82: PUSH1 0x01
00001c84: JUMPDEST
00001c85: PUSH2 0x1cf6
00001c88: JUMPI
00001c89: PUSH1 0x40
00001c8b: MLOAD
00001c8c: PUSH3 0x461bcd
00001c90: PUSH1 0xe5
00001c92: SHL
00001c93: DUP2
00001c94: MSTORE
00001c95: PUSH1 0x20
00001c97: PUSH1 0x04
00001c99: DUP3
00001c9a: ADD
00001c9b: MSTORE
00001c9c: PUSH1 0x2e
00001c9e: PUSH1 0x24
00001ca0: DUP3
00001ca1: ADD
00001ca2: MSTORE
00001ca3: PUSH32 0x45524331393637557067726164653a206e657720696d706c656d656e74617469
00001cc4: PUSH1 0x44
00001cc6: DUP3
00001cc7: ADD
00001cc8: MSTORE
00001cc9: PUSH32 0x6f6e206973206e6f742055555053000000000000000000000000000000000000
00001cea: PUSH1 0x64
00001cec: DUP3
00001ced: ADD
00001cee: MSTORE
00001cef: PUSH1 0x84
00001cf1: ADD
00001cf2: PUSH2 0x0ac8
00001cf5: JUMP
00001cf6: JUMPDEST
00001cf7: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
00001d18: DUP2
00001d19: EQ
00001d1a: PUSH2 0x1d8b
00001d1d: JUMPI
00001d1e: PUSH1 0x40
00001d20: MLOAD
00001d21: PUSH3 0x461bcd
00001d25: PUSH1 0xe5
00001d27: SHL
00001d28: DUP2
00001d29: MSTORE
00001d2a: PUSH1 0x20
00001d2c: PUSH1 0x04
00001d2e: DUP3
00001d2f: ADD
00001d30: MSTORE
00001d31: PUSH1 0x29
00001d33: PUSH1 0x24
00001d35: DUP3
00001d36: ADD
00001d37: MSTORE
00001d38: PUSH32 0x45524331393637557067726164653a20756e737570706f727465642070726f78
00001d59: PUSH1 0x44
00001d5b: DUP3
00001d5c: ADD
00001d5d: MSTORE
00001d5e: PUSH32 0x6961626c65555549440000000000000000000000000000000000000000000000
00001d7f: PUSH1 0x64
00001d81: DUP3
00001d82: ADD
00001d83: MSTORE
00001d84: PUSH1 0x84
00001d86: ADD
00001d87: PUSH2 0x0ac8
00001d8a: JUMP
00001d8b: JUMPDEST
00001d8c: POP
00001d8d: PUSH2 0x0a33
00001d90: DUP4
00001d91: DUP4
00001d92: DUP4
00001d93: PUSH2 0x2419
00001d96: JUMP
00001d97: JUMPDEST
00001d98: PUSH1 0x00
00001d9a: PUSH2 0x0922
00001d9d: PUSH2 0x1da5
00001da0: DUP4
00001da1: PUSH2 0x2444
00001da4: JUMP
00001da5: JUMPDEST
00001da6: PUSH2 0x1ddb
00001da9: JUMP
00001daa: JUMPDEST
00001dab: PUSH1 0x00
00001dad: PUSH2 0x0922
00001db0: PUSH2 0x1da5
00001db3: DUP4
00001db4: PUSH2 0x24e3
00001db7: JUMP
00001db8: JUMPDEST
00001db9: PUSH1 0x00
00001dbb: PUSH2 0x1dcf
00001dbe: DUP7
00001dbf: PUSH2 0x1dc7
00001dc2: DUP8
00001dc3: PUSH2 0x2570
00001dc6: JUMP
00001dc7: JUMPDEST
00001dc8: DUP7
00001dc9: DUP7
00001dca: DUP7
00001dcb: PUSH2 0x25a0
00001dce: JUMP
00001dcf: JUMPDEST
00001dd0: SWAP1
00001dd1: POP
00001dd2: JUMPDEST
00001dd3: SWAP6
00001dd4: SWAP5
00001dd5: POP
00001dd6: POP
00001dd7: POP
00001dd8: POP
00001dd9: POP
00001dda: JUMP
00001ddb: JUMPDEST
00001ddc: PUSH1 0x00
00001dde: PUSH1 0x02
00001de0: DUP3
00001de1: PUSH1 0x40
00001de3: MLOAD
00001de4: PUSH2 0x1ded
00001de7: SWAP2
00001de8: SWAP1
00001de9: PUSH2 0x3a58
00001dec: JUMP
00001ded: JUMPDEST
00001dee: PUSH1 0x20
00001df0: PUSH1 0x40
00001df2: MLOAD
00001df3: DUP1
00001df4: DUP4
00001df5: SUB
00001df6: DUP2
00001df7: DUP6
00001df8: GAS
00001df9: STATICCALL
00001dfa: ISZERO
00001dfb: DUP1
00001dfc: ISZERO
00001dfd: PUSH2 0x1e0a
00001e00: JUMPI
00001e01: RETURNDATASIZE
00001e02: PUSH1 0x00
00001e04: DUP1
00001e05: RETURNDATACOPY
00001e06: RETURNDATASIZE
00001e07: PUSH1 0x00
00001e09: REVERT
00001e0a: JUMPDEST
00001e0b: POP
00001e0c: POP
00001e0d: POP
00001e0e: PUSH1 0x40
00001e10: MLOAD
00001e11: RETURNDATASIZE
00001e12: PUSH1 0x1f
00001e14: NOT
00001e15: PUSH1 0x1f
00001e17: DUP3
00001e18: ADD
00001e19: AND
00001e1a: DUP3
00001e1b: ADD
00001e1c: DUP1
00001e1d: PUSH1 0x40
00001e1f: MSTORE
00001e20: POP
00001e21: DUP2
00001e22: ADD
00001e23: SWAP1
00001e24: PUSH2 0x0922
00001e27: SWAP2
00001e28: SWAP1
00001e29: PUSH2 0x3a3f
00001e2c: JUMP
00001e2d: JUMPDEST
00001e2e: PUSH2 0x1e35
00001e31: PUSH2 0x27b9
00001e34: JUMP
00001e35: JUMPDEST
00001e36: PUSH1 0x00
00001e38: DUP3
00001e39: DUP2
00001e3a: MSTORE
00001e3b: PUSH2 0x0162
00001e3e: PUSH1 0x20
00001e40: MSTORE
00001e41: PUSH1 0x40
00001e43: SWAP1
00001e44: KECCAK256
00001e45: SLOAD
00001e46: PUSH1 0xff
00001e48: AND
00001e49: ISZERO
00001e4a: PUSH2 0x1e7f
00001e4d: JUMPI
00001e4e: PUSH1 0x40
00001e50: MLOAD
00001e51: PUSH32 0xd0ebeb4b00000000000000000000000000000000000000000000000000000000
00001e72: DUP2
00001e73: MSTORE
00001e74: PUSH1 0x04
00001e76: ADD
00001e77: PUSH1 0x40
00001e79: MLOAD
00001e7a: DUP1
00001e7b: SWAP2
00001e7c: SUB
00001e7d: SWAP1
00001e7e: REVERT
00001e7f: JUMPDEST
00001e80: DUP1
00001e81: CALLDATALOAD
00001e82: PUSH2 0x015f
00001e85: SSTORE
00001e86: PUSH1 0x00
00001e88: PUSH1 0x60
00001e8a: DUP2
00001e8b: PUSH2 0x1e99
00001e8e: PUSH1 0x80
00001e90: DUP6
00001e91: ADD
00001e92: DUP4
00001e93: DUP7
00001e94: ADD
00001e95: PUSH2 0x3766
00001e98: JUMP
00001e99: JUMPDEST
00001e9a: PUSH8 0xffffffffffffffff
00001ea3: AND
00001ea4: GT
00001ea5: ISZERO
00001ea6: PUSH2 0x1f9b
00001ea9: JUMPI
00001eaa: PUSH1 0x00
00001eac: PUSH2 0x1eb7
00001eaf: PUSH1 0x09
00001eb1: PUSH1 0x12
00001eb3: PUSH2 0x3869
00001eb6: JUMP
00001eb7: JUMPDEST
00001eb8: PUSH2 0x1ec2
00001ebb: SWAP1
00001ebc: PUSH1 0x0a
00001ebe: PUSH2 0x39a0
00001ec1: JUMP
00001ec2: JUMPDEST
00001ec3: PUSH2 0x1ed2
00001ec6: PUSH1 0x80
00001ec8: DUP7
00001ec9: ADD
00001eca: PUSH1 0x60
00001ecc: DUP8
00001ecd: ADD
00001ece: PUSH2 0x3766
00001ed1: JUMP
00001ed2: JUMPDEST
00001ed3: PUSH8 0xffffffffffffffff
00001edc: AND
00001edd: PUSH2 0x1ee6
00001ee0: SWAP2
00001ee1: SWAP1
00001ee2: PUSH2 0x3a74
00001ee5: JUMP
00001ee6: JUMPDEST
00001ee7: SWAP1
00001ee8: POP
00001ee9: DUP1
00001eea: PUSH2 0x0194
00001eed: PUSH1 0x00
00001eef: DUP3
00001ef0: DUP3
00001ef1: SLOAD
00001ef2: PUSH2 0x1efb
00001ef5: SWAP2
00001ef6: SWAP1
00001ef7: PUSH2 0x3869
00001efa: JUMP
00001efb: JUMPDEST
00001efc: SWAP1
00001efd: SWAP2
00001efe: SSTORE
00001eff: POP
00001f00: POP
00001f01: PUSH2 0x01cb
00001f04: SLOAD
00001f05: PUSH1 0xff
00001f07: AND
00001f08: ISZERO
00001f09: PUSH2 0x1f15
00001f0c: JUMPI
00001f0d: PUSH2 0x1f15
00001f10: DUP2
00001f11: PUSH2 0x2813
00001f14: JUMP
00001f15: JUMPDEST
00001f16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f2b: PUSH1 0x20
00001f2d: DUP6
00001f2e: ADD
00001f2f: CALLDATALOAD
00001f30: AND
00001f31: DUP2
00001f32: PUSH2 0x1f3e
00001f35: PUSH1 0x80
00001f37: DUP8
00001f38: ADD
00001f39: DUP8
00001f3a: PUSH2 0x3781
00001f3d: JUMP
00001f3e: JUMPDEST
00001f3f: PUSH1 0x40
00001f41: MLOAD
00001f42: PUSH2 0x1f4c
00001f45: SWAP3
00001f46: SWAP2
00001f47: SWAP1
00001f48: PUSH2 0x3ab1
00001f4b: JUMP
00001f4c: JUMPDEST
00001f4d: PUSH1 0x00
00001f4f: PUSH1 0x40
00001f51: MLOAD
00001f52: DUP1
00001f53: DUP4
00001f54: SUB
00001f55: DUP2
00001f56: DUP6
00001f57: DUP8
00001f58: GAS
00001f59: CALL
00001f5a: SWAP3
00001f5b: POP
00001f5c: POP
00001f5d: POP
00001f5e: RETURNDATASIZE
00001f5f: DUP1
00001f60: PUSH1 0x00
00001f62: DUP2
00001f63: EQ
00001f64: PUSH2 0x1f89
00001f67: JUMPI
00001f68: PUSH1 0x40
00001f6a: MLOAD
00001f6b: SWAP2
00001f6c: POP
00001f6d: PUSH1 0x1f
00001f6f: NOT
00001f70: PUSH1 0x3f
00001f72: RETURNDATASIZE
00001f73: ADD
00001f74: AND
00001f75: DUP3
00001f76: ADD
00001f77: PUSH1 0x40
00001f79: MSTORE
00001f7a: RETURNDATASIZE
00001f7b: DUP3
00001f7c: MSTORE
00001f7d: RETURNDATASIZE
00001f7e: PUSH1 0x00
00001f80: PUSH1 0x20
00001f82: DUP5
00001f83: ADD
00001f84: RETURNDATACOPY
00001f85: PUSH2 0x1f8e
00001f88: JUMP
00001f89: JUMPDEST
00001f8a: PUSH1 0x60
00001f8c: SWAP2
00001f8d: POP
00001f8e: JUMPDEST
00001f8f: POP
00001f90: SWAP1
00001f91: SWAP4
00001f92: POP
00001f93: SWAP2
00001f94: POP
00001f95: PUSH2 0x201a
00001f98: SWAP1
00001f99: POP
00001f9a: JUMP
00001f9b: JUMPDEST
00001f9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fb1: PUSH1 0x20
00001fb3: DUP5
00001fb4: ADD
00001fb5: CALLDATALOAD
00001fb6: AND
00001fb7: PUSH2 0x1fc3
00001fba: PUSH1 0x80
00001fbc: DUP6
00001fbd: ADD
00001fbe: DUP6
00001fbf: PUSH2 0x3781
00001fc2: JUMP
00001fc3: JUMPDEST
00001fc4: PUSH1 0x40
00001fc6: MLOAD
00001fc7: PUSH2 0x1fd1
00001fca: SWAP3
00001fcb: SWAP2
00001fcc: SWAP1
00001fcd: PUSH2 0x3ab1
00001fd0: JUMP
00001fd1: JUMPDEST
00001fd2: PUSH1 0x00
00001fd4: PUSH1 0x40
00001fd6: MLOAD
00001fd7: DUP1
00001fd8: DUP4
00001fd9: SUB
00001fda: DUP2
00001fdb: PUSH1 0x00
00001fdd: DUP7
00001fde: GAS
00001fdf: CALL
00001fe0: SWAP2
00001fe1: POP
00001fe2: POP
00001fe3: RETURNDATASIZE
00001fe4: DUP1
00001fe5: PUSH1 0x00
00001fe7: DUP2
00001fe8: EQ
00001fe9: PUSH2 0x200e
00001fec: JUMPI
00001fed: PUSH1 0x40
00001fef: MLOAD
00001ff0: SWAP2
00001ff1: POP
00001ff2: PUSH1 0x1f
00001ff4: NOT
00001ff5: PUSH1 0x3f
00001ff7: RETURNDATASIZE
00001ff8: ADD
00001ff9: AND
00001ffa: DUP3
00001ffb: ADD
00001ffc: PUSH1 0x40
00001ffe: MSTORE
00001fff: RETURNDATASIZE
00002000: DUP3
00002001: MSTORE
00002002: RETURNDATASIZE
00002003: PUSH1 0x00
00002005: PUSH1 0x20
00002007: DUP5
00002008: ADD
00002009: RETURNDATACOPY
0000200a: PUSH2 0x2013
0000200d: JUMP
0000200e: JUMPDEST
0000200f: PUSH1 0x60
00002011: SWAP2
00002012: POP
00002013: JUMPDEST
00002014: POP
00002015: SWAP1
00002016: SWAP3
00002017: POP
00002018: SWAP1
00002019: POP
0000201a: JUMPDEST
0000201b: DUP2
0000201c: PUSH2 0x2061
0000201f: JUMPI
00002020: DUP1
00002021: MLOAD
00002022: ISZERO
00002023: PUSH2 0x202f
00002026: JUMPI
00002027: DUP1
00002028: MLOAD
00002029: DUP1
0000202a: DUP3
0000202b: PUSH1 0x20
0000202d: ADD
0000202e: REVERT
0000202f: JUMPDEST
00002030: PUSH1 0x40
00002032: MLOAD
00002033: PUSH32 0x943c78c400000000000000000000000000000000000000000000000000000000
00002054: DUP2
00002055: MSTORE
00002056: PUSH1 0x04
00002058: ADD
00002059: PUSH1 0x40
0000205b: MLOAD
0000205c: DUP1
0000205d: SWAP2
0000205e: SUB
0000205f: SWAP1
00002060: REVERT
00002061: JUMPDEST
00002062: PUSH2 0xdead
00002065: PUSH2 0x015f
00002068: SSTORE
00002069: PUSH1 0x00
0000206b: DUP5
0000206c: DUP2
0000206d: MSTORE
0000206e: PUSH2 0x0162
00002071: PUSH1 0x20
00002073: SWAP1
00002074: DUP2
00002075: MSTORE
00002076: PUSH1 0x40
00002078: SWAP1
00002079: SWAP2
0000207a: KECCAK256
0000207b: DUP1
0000207c: SLOAD
0000207d: PUSH1 0xff
0000207f: NOT
00002080: AND
00002081: PUSH1 0x01
00002083: OR
00002084: SWAP1
00002085: SSTORE
00002086: DUP4
00002087: ADD
00002088: CALLDATALOAD
00002089: DUP4
0000208a: CALLDATALOAD
0000208b: DUP6
0000208c: PUSH32 0xd9e6225aff5cf09ee2f0b39b98941e3c2beca6957b16b9e02b674a69e0e83ee7
000020ad: PUSH2 0x20bc
000020b0: PUSH1 0x80
000020b2: DUP9
000020b3: ADD
000020b4: PUSH1 0x60
000020b6: DUP10
000020b7: ADD
000020b8: PUSH2 0x3766
000020bb: JUMP
000020bc: JUMPDEST
000020bd: PUSH1 0x40
000020bf: MLOAD
000020c0: PUSH8 0xffffffffffffffff
000020c9: SWAP1
000020ca: SWAP2
000020cb: AND
000020cc: DUP2
000020cd: MSTORE
000020ce: PUSH1 0x20
000020d0: ADD
000020d1: PUSH1 0x40
000020d3: MLOAD
000020d4: DUP1
000020d5: SWAP2
000020d6: SUB
000020d7: SWAP1
000020d8: LOG4
000020d9: POP
000020da: POP
000020db: PUSH2 0x0c28
000020de: PUSH1 0x01
000020e0: PUSH1 0xc9
000020e2: SSTORE
000020e3: JUMP
000020e4: JUMPDEST
000020e5: PUSH2 0x20ec
000020e8: PUSH2 0x28a1
000020eb: JUMP
000020ec: JUMPDEST
000020ed: PUSH1 0x33
000020ef: DUP1
000020f0: SLOAD
000020f1: PUSH1 0xff
000020f3: NOT
000020f4: AND
000020f5: SWAP1
000020f6: SSTORE
000020f7: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
00002118: CALLER
00002119: JUMPDEST
0000211a: PUSH1 0x40
0000211c: MLOAD
0000211d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002132: SWAP1
00002133: SWAP2
00002134: AND
00002135: DUP2
00002136: MSTORE
00002137: PUSH1 0x20
00002139: ADD
0000213a: PUSH1 0x40
0000213c: MLOAD
0000213d: DUP1
0000213e: SWAP2
0000213f: SUB
00002140: SWAP1
00002141: LOG1
00002142: JUMP
00002143: JUMPDEST
00002144: PUSH2 0x214b
00002147: PUSH2 0x1824
0000214a: JUMP
0000214b: JUMPDEST
0000214c: PUSH1 0x33
0000214e: DUP1
0000214f: SLOAD
00002150: PUSH1 0xff
00002152: NOT
00002153: AND
00002154: PUSH1 0x01
00002156: OR
00002157: SWAP1
00002158: SSTORE
00002159: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
0000217a: PUSH2 0x2119
0000217d: CALLER
0000217e: SWAP1
0000217f: JUMP
00002180: JUMPDEST
00002181: PUSH1 0x00
00002183: SLOAD
00002184: PUSH2 0x0100
00002187: SWAP1
00002188: DIV
00002189: PUSH1 0xff
0000218b: AND
0000218c: PUSH2 0x21fd
0000218f: JUMPI
00002190: PUSH1 0x40
00002192: MLOAD
00002193: PUSH3 0x461bcd
00002197: PUSH1 0xe5
00002199: SHL
0000219a: DUP2
0000219b: MSTORE
0000219c: PUSH1 0x20
0000219e: PUSH1 0x04
000021a0: DUP3
000021a1: ADD
000021a2: MSTORE
000021a3: PUSH1 0x2b
000021a5: PUSH1 0x24
000021a7: DUP3
000021a8: ADD
000021a9: MSTORE
000021aa: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
000021cb: PUSH1 0x44
000021cd: DUP3
000021ce: ADD
000021cf: MSTORE
000021d0: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
000021f1: PUSH1 0x64
000021f3: DUP3
000021f4: ADD
000021f5: MSTORE
000021f6: PUSH1 0x84
000021f8: ADD
000021f9: PUSH2 0x0ac8
000021fc: JUMP
000021fd: JUMPDEST
000021fe: PUSH2 0x2205
00002201: PUSH2 0x28f3
00002204: JUMP
00002205: JUMPDEST
00002206: PUSH2 0x220d
00002209: PUSH2 0x2978
0000220c: JUMP
0000220d: JUMPDEST
0000220e: PUSH2 0x2215
00002211: PUSH2 0x29f5
00002214: JUMP
00002215: JUMPDEST
00002216: PUSH2 0x221d
00002219: PUSH2 0x2978
0000221c: JUMP
0000221d: JUMPDEST
0000221e: PUSH2 0x2228
00002221: PUSH1 0x00
00002223: CALLER
00002224: PUSH2 0x1a5d
00002227: JUMP
00002228: JUMPDEST
00002229: PUSH2 0x2252
0000222c: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
0000224d: CALLER
0000224e: PUSH2 0x1a5d
00002251: JUMP
00002252: JUMPDEST
00002253: PUSH2 0x0160
00002256: DUP1
00002257: SLOAD
00002258: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002279: AND
0000227a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000228f: SWAP3
00002290: SWAP1
00002291: SWAP3
00002292: AND
00002293: SWAP2
00002294: SWAP1
00002295: SWAP2
00002296: OR
00002297: SWAP1
00002298: SSTORE
00002299: PUSH1 0x00
0000229b: PUSH2 0x0161
0000229e: SSTORE
0000229f: PUSH2 0xdead
000022a2: PUSH2 0x015f
000022a5: SSTORE
000022a6: JUMP
000022a7: JUMPDEST
000022a8: PUSH1 0x00
000022aa: DUP3
000022ab: DUP2
000022ac: MSTORE
000022ad: PUSH1 0x97
000022af: PUSH1 0x20
000022b1: SWAP1
000022b2: DUP2
000022b3: MSTORE
000022b4: PUSH1 0x40
000022b6: DUP1
000022b7: DUP4
000022b8: KECCAK256
000022b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022ce: DUP6
000022cf: AND
000022d0: DUP5
000022d1: MSTORE
000022d2: SWAP1
000022d3: SWAP2
000022d4: MSTORE
000022d5: SWAP1
000022d6: KECCAK256
000022d7: SLOAD
000022d8: PUSH1 0xff
000022da: AND
000022db: PUSH2 0x0c28
000022de: JUMPI
000022df: PUSH2 0x22e7
000022e2: DUP2
000022e3: PUSH2 0x2a7a
000022e6: JUMP
000022e7: JUMPDEST
000022e8: PUSH2 0x22f2
000022eb: DUP4
000022ec: PUSH1 0x20
000022ee: PUSH2 0x2a99
000022f1: JUMP
000022f2: JUMPDEST
000022f3: PUSH1 0x40
000022f5: MLOAD
000022f6: PUSH1 0x20
000022f8: ADD
000022f9: PUSH2 0x2303
000022fc: SWAP3
000022fd: SWAP2
000022fe: SWAP1
000022ff: PUSH2 0x3ac1
00002302: JUMP
00002303: JUMPDEST
00002304: PUSH1 0x40
00002306: DUP1
00002307: MLOAD
00002308: PUSH1 0x1f
0000230a: NOT
0000230b: DUP2
0000230c: DUP5
0000230d: SUB
0000230e: ADD
0000230f: DUP2
00002310: MSTORE
00002311: SWAP1
00002312: DUP3
00002313: SWAP1
00002314: MSTORE
00002315: PUSH3 0x461bcd
00002319: PUSH1 0xe5
0000231b: SHL
0000231c: DUP3
0000231d: MSTORE
0000231e: PUSH2 0x0ac8
00002321: SWAP2
00002322: PUSH1 0x04
00002324: ADD
00002325: PUSH2 0x3b42
00002328: JUMP
00002329: JUMPDEST
0000232a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000233f: DUP2
00002340: AND
00002341: EXTCODESIZE
00002342: PUSH2 0x23b3
00002345: JUMPI
00002346: PUSH1 0x40
00002348: MLOAD
00002349: PUSH3 0x461bcd
0000234d: PUSH1 0xe5
0000234f: SHL
00002350: DUP2
00002351: MSTORE
00002352: PUSH1 0x20
00002354: PUSH1 0x04
00002356: DUP3
00002357: ADD
00002358: MSTORE
00002359: PUSH1 0x2d
0000235b: PUSH1 0x24
0000235d: DUP3
0000235e: ADD
0000235f: MSTORE
00002360: PUSH32 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e
00002381: PUSH1 0x44
00002383: DUP3
00002384: ADD
00002385: MSTORE
00002386: PUSH32 0x6f74206120636f6e747261637400000000000000000000000000000000000000
000023a7: PUSH1 0x64
000023a9: DUP3
000023aa: ADD
000023ab: MSTORE
000023ac: PUSH1 0x84
000023ae: ADD
000023af: PUSH2 0x0ac8
000023b2: JUMP
000023b3: JUMPDEST
000023b4: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
000023d5: DUP1
000023d6: SLOAD
000023d7: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000023f8: AND
000023f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000240e: SWAP3
0000240f: SWAP1
00002410: SWAP3
00002411: AND
00002412: SWAP2
00002413: SWAP1
00002414: SWAP2
00002415: OR
00002416: SWAP1
00002417: SSTORE
00002418: JUMP
00002419: JUMPDEST
0000241a: PUSH2 0x2422
0000241d: DUP4
0000241e: PUSH2 0x2cc9
00002421: JUMP
00002422: JUMPDEST
00002423: PUSH1 0x00
00002425: DUP3
00002426: MLOAD
00002427: GT
00002428: DUP1
00002429: PUSH2 0x242f
0000242c: JUMPI
0000242d: POP
0000242e: DUP1
0000242f: JUMPDEST
00002430: ISZERO
00002431: PUSH2 0x0a33
00002434: JUMPI
00002435: PUSH2 0x243e
00002438: DUP4
00002439: DUP4
0000243a: PUSH2 0x2d16
0000243d: JUMP
0000243e: JUMPDEST
0000243f: POP
00002440: POP
00002441: POP
00002442: POP
00002443: JUMP
00002444: JUMPDEST
00002445: PUSH1 0x60
00002447: DUP2
00002448: PUSH1 0x00
0000244a: ADD
0000244b: MLOAD
0000244c: DUP3
0000244d: PUSH1 0x20
0000244f: ADD
00002450: MLOAD
00002451: DUP4
00002452: PUSH1 0x40
00002454: ADD
00002455: MLOAD
00002456: DUP5
00002457: PUSH1 0x60
00002459: ADD
0000245a: MLOAD
0000245b: PUSH1 0x40
0000245d: MLOAD
0000245e: PUSH1 0x20
00002460: ADD
00002461: PUSH2 0x24cd
00002464: SWAP5
00002465: SWAP4
00002466: SWAP3
00002467: SWAP2
00002468: SWAP1
00002469: SWAP4
0000246a: DUP5
0000246b: MSTORE
0000246c: PUSH1 0xe0
0000246e: SWAP3
0000246f: SWAP1
00002470: SWAP3
00002471: SHL
00002472: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00002493: AND
00002494: PUSH1 0x20
00002496: DUP5
00002497: ADD
00002498: MSTORE
00002499: PUSH1 0xc0
0000249b: SHL
0000249c: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
000024bd: AND
000024be: PUSH1 0x24
000024c0: DUP4
000024c1: ADD
000024c2: MSTORE
000024c3: PUSH1 0x2c
000024c5: DUP3
000024c6: ADD
000024c7: MSTORE
000024c8: PUSH1 0x4c
000024ca: ADD
000024cb: SWAP1
000024cc: JUMP
000024cd: JUMPDEST
000024ce: PUSH1 0x40
000024d0: MLOAD
000024d1: PUSH1 0x20
000024d3: DUP2
000024d4: DUP4
000024d5: SUB
000024d6: SUB
000024d7: DUP2
000024d8: MSTORE
000024d9: SWAP1
000024da: PUSH1 0x40
000024dc: MSTORE
000024dd: SWAP1
000024de: POP
000024df: SWAP2
000024e0: SWAP1
000024e1: POP
000024e2: JUMP
000024e3: JUMPDEST
000024e4: PUSH1 0x60
000024e6: DUP2
000024e7: PUSH1 0x00
000024e9: ADD
000024ea: MLOAD
000024eb: DUP3
000024ec: PUSH1 0xc0
000024ee: ADD
000024ef: MLOAD
000024f0: DUP4
000024f1: PUSH1 0x20
000024f3: ADD
000024f4: MLOAD
000024f5: PUSH2 0x24fd
000024f8: DUP6
000024f9: PUSH2 0x2d3b
000024fc: JUMP
000024fd: JUMPDEST
000024fe: PUSH1 0x40
00002500: MLOAD
00002501: PUSH1 0x20
00002503: ADD
00002504: PUSH2 0x24cd
00002507: SWAP5
00002508: SWAP4
00002509: SWAP3
0000250a: SWAP2
0000250b: SWAP1
0000250c: SWAP4
0000250d: DUP5
0000250e: MSTORE
0000250f: PUSH1 0xe0
00002511: SWAP3
00002512: SWAP1
00002513: SWAP3
00002514: SHL
00002515: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00002536: AND
00002537: PUSH1 0x20
00002539: DUP5
0000253a: ADD
0000253b: MSTORE
0000253c: PUSH1 0xc0
0000253e: SHL
0000253f: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00002560: AND
00002561: PUSH1 0x24
00002563: DUP4
00002564: ADD
00002565: MSTORE
00002566: PUSH1 0x2c
00002568: DUP3
00002569: ADD
0000256a: MSTORE
0000256b: PUSH1 0x4c
0000256d: ADD
0000256e: SWAP1
0000256f: JUMP
00002570: JUMPDEST
00002571: PUSH1 0x00
00002573: PUSH2 0x0922
00002576: PUSH1 0x00
00002578: PUSH1 0xf8
0000257a: SHL
0000257b: DUP4
0000257c: PUSH1 0x40
0000257e: MLOAD
0000257f: PUSH1 0x20
00002581: ADD
00002582: PUSH2 0x258c
00002585: SWAP3
00002586: SWAP2
00002587: SWAP1
00002588: PUSH2 0x3b55
0000258b: JUMP
0000258c: JUMPDEST
0000258d: PUSH1 0x40
0000258f: MLOAD
00002590: PUSH1 0x20
00002592: DUP2
00002593: DUP4
00002594: SUB
00002595: SUB
00002596: DUP2
00002597: MSTORE
00002598: SWAP1
00002599: PUSH1 0x40
0000259b: MSTORE
0000259c: PUSH2 0x2d49
0000259f: JUMP
000025a0: JUMPDEST
000025a1: PUSH1 0x00
000025a3: PUSH1 0x01
000025a5: DUP3
000025a6: GT
000025a7: PUSH2 0x25be
000025aa: JUMPI
000025ab: DUP4
000025ac: MLOAD
000025ad: ISZERO
000025ae: PUSH2 0x25b9
000025b1: JUMPI
000025b2: POP
000025b3: PUSH1 0x00
000025b5: PUSH2 0x1dd2
000025b8: JUMP
000025b9: JUMPDEST
000025ba: PUSH2 0x25d7
000025bd: JUMP
000025be: JUMPDEST
000025bf: PUSH2 0x25c8
000025c2: DUP4
000025c3: DUP4
000025c4: PUSH2 0x2d54
000025c7: JUMP
000025c8: JUMPDEST
000025c9: DUP5
000025ca: MLOAD
000025cb: EQ
000025cc: PUSH2 0x25d7
000025cf: JUMPI
000025d0: POP
000025d1: PUSH1 0x00
000025d3: PUSH2 0x1dd2
000025d6: JUMP
000025d7: JUMPDEST
000025d8: DUP2
000025d9: DUP4
000025da: LT
000025db: PUSH2 0x25e6
000025de: JUMPI
000025df: POP
000025e0: PUSH1 0x00
000025e2: PUSH2 0x1dd2
000025e5: JUMP
000025e6: JUMPDEST
000025e7: DUP4
000025e8: MLOAD
000025e9: PUSH2 0x2606
000025ec: JUMPI
000025ed: DUP2
000025ee: PUSH1 0x01
000025f0: EQ
000025f1: ISZERO
000025f2: PUSH2 0x25fe
000025f5: JUMPI
000025f6: POP
000025f7: DUP5
000025f8: DUP5
000025f9: EQ
000025fa: PUSH2 0x1dd2
000025fd: JUMP
000025fe: JUMPDEST
000025ff: POP
00002600: PUSH1 0x00
00002602: PUSH2 0x1dd2
00002605: JUMP
00002606: JUMPDEST
00002607: PUSH1 0x01
00002609: DUP4
0000260a: JUMPDEST
0000260b: PUSH1 0x00
0000260d: PUSH1 0x01
0000260f: DUP4
00002610: SHL
00002611: PUSH2 0x261a
00002614: DUP2
00002615: DUP9
00002616: PUSH2 0x3b9d
00002619: JUMP
0000261a: JUMPDEST
0000261b: PUSH2 0x2624
0000261e: SWAP2
0000261f: SWAP1
00002620: PUSH2 0x3a74
00002623: JUMP
00002624: JUMPDEST
00002625: SWAP1
00002626: POP
00002627: PUSH1 0x00
00002629: PUSH1 0x01
0000262b: PUSH2 0x2636
0000262e: DUP2
0000262f: DUP7
00002630: SHL
00002631: DUP5
00002632: PUSH2 0x3a27
00002635: JUMP
00002636: JUMPDEST
00002637: PUSH2 0x2640
0000263a: SWAP2
0000263b: SWAP1
0000263c: PUSH2 0x3869
0000263f: JUMP
00002640: JUMPDEST
00002641: SWAP1
00002642: POP
00002643: DUP6
00002644: DUP2
00002645: LT
00002646: PUSH2 0x2650
00002649: JUMPI
0000264a: POP
0000264b: POP
0000264c: PUSH2 0x2709
0000264f: JUMP
00002650: JUMPDEST
00002651: SWAP2
00002652: POP
00002653: DUP2
00002654: PUSH2 0x265e
00002657: PUSH1 0x01
00002659: DUP6
0000265a: PUSH2 0x3869
0000265d: JUMP
0000265e: JUMPDEST
0000265f: DUP9
00002660: MLOAD
00002661: GT
00002662: PUSH2 0x2672
00002665: JUMPI
00002666: PUSH1 0x00
00002668: SWAP5
00002669: POP
0000266a: POP
0000266b: POP
0000266c: POP
0000266d: POP
0000266e: PUSH2 0x1dd2
00002671: JUMP
00002672: JUMPDEST
00002673: PUSH2 0x267d
00002676: PUSH1 0x01
00002678: DUP6
00002679: PUSH2 0x3869
0000267c: JUMP
0000267d: JUMPDEST
0000267e: PUSH1 0x01
00002680: SWAP1
00002681: SHL
00002682: PUSH2 0x268b
00002685: DUP4
00002686: DUP10
00002687: PUSH2 0x3869
0000268a: JUMP
0000268b: JUMPDEST
0000268c: LT
0000268d: ISZERO
0000268e: PUSH2 0x26c5
00002691: JUMPI
00002692: PUSH2 0x26be
00002695: DUP10
00002696: DUP10
00002697: PUSH2 0x26a1
0000269a: PUSH1 0x01
0000269c: DUP9
0000269d: PUSH2 0x3869
000026a0: JUMP
000026a1: JUMPDEST
000026a2: DUP2
000026a3: MLOAD
000026a4: DUP2
000026a5: LT
000026a6: PUSH2 0x26b1
000026a9: JUMPI
000026aa: PUSH2 0x26b1
000026ad: PUSH2 0x3bd8
000026b0: JUMP
000026b1: JUMPDEST
000026b2: PUSH1 0x20
000026b4: MUL
000026b5: PUSH1 0x20
000026b7: ADD
000026b8: ADD
000026b9: MLOAD
000026ba: PUSH2 0x2df6
000026bd: JUMP
000026be: JUMPDEST
000026bf: SWAP9
000026c0: POP
000026c1: PUSH2 0x26f5
000026c4: JUMP
000026c5: JUMPDEST
000026c6: PUSH2 0x26f2
000026c9: DUP9
000026ca: PUSH2 0x26d4
000026cd: PUSH1 0x01
000026cf: DUP8
000026d0: PUSH2 0x3869
000026d3: JUMP
000026d4: JUMPDEST
000026d5: DUP2
000026d6: MLOAD
000026d7: DUP2
000026d8: LT
000026d9: PUSH2 0x26e4
000026dc: JUMPI
000026dd: PUSH2 0x26e4
000026e0: PUSH2 0x3bd8
000026e3: JUMP
000026e4: JUMPDEST
000026e5: PUSH1 0x20
000026e7: MUL
000026e8: PUSH1 0x20
000026ea: ADD
000026eb: ADD
000026ec: MLOAD
000026ed: DUP11
000026ee: PUSH2 0x2df6
000026f1: JUMP
000026f2: JUMPDEST
000026f3: SWAP9
000026f4: POP
000026f5: JUMPDEST
000026f6: PUSH2 0x2700
000026f9: PUSH1 0x01
000026fb: DUP6
000026fc: PUSH2 0x3a27
000026ff: JUMP
00002700: JUMPDEST
00002701: SWAP4
00002702: POP
00002703: POP
00002704: POP
00002705: PUSH2 0x260a
00002708: JUMP
00002709: JUMPDEST
0000270a: PUSH2 0x2714
0000270d: PUSH1 0x01
0000270f: DUP6
00002710: PUSH2 0x3869
00002713: JUMP
00002714: JUMPDEST
00002715: DUP2
00002716: EQ
00002717: PUSH2 0x2757
0000271a: JUMPI
0000271b: PUSH2 0x2725
0000271e: PUSH1 0x01
00002720: DUP4
00002721: PUSH2 0x3869
00002724: JUMP
00002725: JUMPDEST
00002726: DUP7
00002727: MLOAD
00002728: GT
00002729: PUSH2 0x2737
0000272c: JUMPI
0000272d: PUSH1 0x00
0000272f: SWAP3
00002730: POP
00002731: POP
00002732: POP
00002733: PUSH2 0x1dd2
00002736: JUMP
00002737: JUMPDEST
00002738: PUSH2 0x2747
0000273b: DUP8
0000273c: DUP8
0000273d: PUSH2 0x26a1
00002740: PUSH1 0x01
00002742: DUP7
00002743: PUSH2 0x3869
00002746: JUMP
00002747: JUMPDEST
00002748: SWAP7
00002749: POP
0000274a: PUSH2 0x2754
0000274d: PUSH1 0x01
0000274f: DUP4
00002750: PUSH2 0x3a27
00002753: JUMP
00002754: JUMPDEST
00002755: SWAP2
00002756: POP
00002757: JUMPDEST
00002758: DUP6
00002759: MLOAD
0000275a: PUSH2 0x2764
0000275d: PUSH1 0x01
0000275f: DUP5
00002760: PUSH2 0x3869
00002763: JUMP
00002764: JUMPDEST
00002765: LT
00002766: ISZERO
00002767: PUSH2 0x27ab
0000276a: JUMPI
0000276b: PUSH2 0x2797
0000276e: DUP7
0000276f: PUSH2 0x2779
00002772: PUSH1 0x01
00002774: DUP6
00002775: PUSH2 0x3869
00002778: JUMP
00002779: JUMPDEST
0000277a: DUP2
0000277b: MLOAD
0000277c: DUP2
0000277d: LT
0000277e: PUSH2 0x2789
00002781: JUMPI
00002782: PUSH2 0x2789
00002785: PUSH2 0x3bd8
00002788: JUMP
00002789: JUMPDEST
0000278a: PUSH1 0x20
0000278c: MUL
0000278d: PUSH1 0x20
0000278f: ADD
00002790: ADD
00002791: MLOAD
00002792: DUP9
00002793: PUSH2 0x2df6
00002796: JUMP
00002797: JUMPDEST
00002798: SWAP7
00002799: POP
0000279a: PUSH2 0x27a4
0000279d: PUSH1 0x01
0000279f: DUP4
000027a0: PUSH2 0x3a27
000027a3: JUMP
000027a4: JUMPDEST
000027a5: SWAP2
000027a6: POP
000027a7: PUSH2 0x2757
000027aa: JUMP
000027ab: JUMPDEST
000027ac: POP
000027ad: POP
000027ae: POP
000027af: SWAP4
000027b0: SWAP1
000027b1: SWAP3
000027b2: EQ
000027b3: SWAP4
000027b4: SWAP3
000027b5: POP
000027b6: POP
000027b7: POP
000027b8: JUMP
000027b9: JUMPDEST
000027ba: PUSH1 0x02
000027bc: PUSH1 0xc9
000027be: SLOAD
000027bf: EQ
000027c0: ISZERO
000027c1: PUSH2 0x280c
000027c4: JUMPI
000027c5: PUSH1 0x40
000027c7: MLOAD
000027c8: PUSH3 0x461bcd
000027cc: PUSH1 0xe5
000027ce: SHL
000027cf: DUP2
000027d0: MSTORE
000027d1: PUSH1 0x20
000027d3: PUSH1 0x04
000027d5: DUP3
000027d6: ADD
000027d7: MSTORE
000027d8: PUSH1 0x1f
000027da: PUSH1 0x24
000027dc: DUP3
000027dd: ADD
000027de: MSTORE
000027df: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00
00002800: PUSH1 0x44
00002802: DUP3
00002803: ADD
00002804: MSTORE
00002805: PUSH1 0x64
00002807: ADD
00002808: PUSH2 0x0ac8
0000280b: JUMP
0000280c: JUMPDEST
0000280d: PUSH1 0x02
0000280f: PUSH1 0xc9
00002811: SSTORE
00002812: JUMP
00002813: JUMPDEST
00002814: PUSH1 0x00
00002816: TIMESTAMP
00002817: PUSH2 0x01c9
0000281a: SLOAD
0000281b: LT
0000281c: ISZERO
0000281d: PUSH2 0x284e
00002820: JUMPI
00002821: POP
00002822: TIMESTAMP
00002823: PUSH32 0x0000000000000000000000000000000000000000000000000000000000093a80
00002844: ADD
00002845: PUSH2 0x01c9
00002848: SSTORE
00002849: DUP1
0000284a: PUSH2 0x2856
0000284d: JUMP
0000284e: JUMPDEST
0000284f: POP
00002850: PUSH2 0x01c8
00002853: SLOAD
00002854: DUP2
00002855: ADD
00002856: JUMPDEST
00002857: PUSH2 0x01ca
0000285a: SLOAD
0000285b: DUP2
0000285c: GT
0000285d: ISZERO
0000285e: PUSH2 0x2893
00002861: JUMPI
00002862: PUSH1 0x40
00002864: MLOAD
00002865: PUSH32 0xa74c1c5f00000000000000000000000000000000000000000000000000000000
00002886: DUP2
00002887: MSTORE
00002888: PUSH1 0x04
0000288a: ADD
0000288b: PUSH1 0x40
0000288d: MLOAD
0000288e: DUP1
0000288f: SWAP2
00002890: SUB
00002891: SWAP1
00002892: REVERT
00002893: JUMPDEST
00002894: PUSH2 0x01c8
00002897: SSTORE
00002898: POP
00002899: JUMP
0000289a: JUMPDEST
0000289b: PUSH1 0x01
0000289d: PUSH1 0xc9
0000289f: SSTORE
000028a0: JUMP
000028a1: JUMPDEST
000028a2: PUSH1 0x33
000028a4: SLOAD
000028a5: PUSH1 0xff
000028a7: AND
000028a8: PUSH2 0x1877
000028ab: JUMPI
000028ac: PUSH1 0x40
000028ae: MLOAD
000028af: PUSH3 0x461bcd
000028b3: PUSH1 0xe5
000028b5: SHL
000028b6: DUP2
000028b7: MSTORE
000028b8: PUSH1 0x20
000028ba: PUSH1 0x04
000028bc: DUP3
000028bd: ADD
000028be: MSTORE
000028bf: PUSH1 0x14
000028c1: PUSH1 0x24
000028c3: DUP3
000028c4: ADD
000028c5: MSTORE
000028c6: PUSH32 0x5061757361626c653a206e6f7420706175736564000000000000000000000000
000028e7: PUSH1 0x44
000028e9: DUP3
000028ea: ADD
000028eb: MSTORE
000028ec: PUSH1 0x64
000028ee: ADD
000028ef: PUSH2 0x0ac8
000028f2: JUMP
000028f3: JUMPDEST
000028f4: PUSH1 0x00
000028f6: SLOAD
000028f7: PUSH2 0x0100
000028fa: SWAP1
000028fb: DIV
000028fc: PUSH1 0xff
000028fe: AND
000028ff: PUSH2 0x2970
00002902: JUMPI
00002903: PUSH1 0x40
00002905: MLOAD
00002906: PUSH3 0x461bcd
0000290a: PUSH1 0xe5
0000290c: SHL
0000290d: DUP2
0000290e: MSTORE
0000290f: PUSH1 0x20
00002911: PUSH1 0x04
00002913: DUP3
00002914: ADD
00002915: MSTORE
00002916: PUSH1 0x2b
00002918: PUSH1 0x24
0000291a: DUP3
0000291b: ADD
0000291c: MSTORE
0000291d: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
0000293e: PUSH1 0x44
00002940: DUP3
00002941: ADD
00002942: MSTORE
00002943: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00002964: PUSH1 0x64
00002966: DUP3
00002967: ADD
00002968: MSTORE
00002969: PUSH1 0x84
0000296b: ADD
0000296c: PUSH2 0x0ac8
0000296f: JUMP
00002970: JUMPDEST
00002971: PUSH2 0x1877
00002974: PUSH2 0x2e3c
00002977: JUMP
00002978: JUMPDEST
00002979: PUSH1 0x00
0000297b: SLOAD
0000297c: PUSH2 0x0100
0000297f: SWAP1
00002980: DIV
00002981: PUSH1 0xff
00002983: AND
00002984: PUSH2 0x1877
00002987: JUMPI
00002988: PUSH1 0x40
0000298a: MLOAD
0000298b: PUSH3 0x461bcd
0000298f: PUSH1 0xe5
00002991: SHL
00002992: DUP2
00002993: MSTORE
00002994: PUSH1 0x20
00002996: PUSH1 0x04
00002998: DUP3
00002999: ADD
0000299a: MSTORE
0000299b: PUSH1 0x2b
0000299d: PUSH1 0x24
0000299f: DUP3
000029a0: ADD
000029a1: MSTORE
000029a2: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
000029c3: PUSH1 0x44
000029c5: DUP3
000029c6: ADD
000029c7: MSTORE
000029c8: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
000029e9: PUSH1 0x64
000029eb: DUP3
000029ec: ADD
000029ed: MSTORE
000029ee: PUSH1 0x84
000029f0: ADD
000029f1: PUSH2 0x0ac8
000029f4: JUMP
000029f5: JUMPDEST
000029f6: PUSH1 0x00
000029f8: SLOAD
000029f9: PUSH2 0x0100
000029fc: SWAP1
000029fd: DIV
000029fe: PUSH1 0xff
00002a00: AND
00002a01: PUSH2 0x2a72
00002a04: JUMPI
00002a05: PUSH1 0x40
00002a07: MLOAD
00002a08: PUSH3 0x461bcd
00002a0c: PUSH1 0xe5
00002a0e: SHL
00002a0f: DUP2
00002a10: MSTORE
00002a11: PUSH1 0x20
00002a13: PUSH1 0x04
00002a15: DUP3
00002a16: ADD
00002a17: MSTORE
00002a18: PUSH1 0x2b
00002a1a: PUSH1 0x24
00002a1c: DUP3
00002a1d: ADD
00002a1e: MSTORE
00002a1f: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00002a40: PUSH1 0x44
00002a42: DUP3
00002a43: ADD
00002a44: MSTORE
00002a45: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00002a66: PUSH1 0x64
00002a68: DUP3
00002a69: ADD
00002a6a: MSTORE
00002a6b: PUSH1 0x84
00002a6d: ADD
00002a6e: PUSH2 0x0ac8
00002a71: JUMP
00002a72: JUMPDEST
00002a73: PUSH2 0x1877
00002a76: PUSH2 0x2ec5
00002a79: JUMP
00002a7a: JUMPDEST
00002a7b: PUSH1 0x60
00002a7d: PUSH2 0x0922
00002a80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a95: DUP4
00002a96: AND
00002a97: PUSH1 0x14
00002a99: JUMPDEST
00002a9a: PUSH1 0x60
00002a9c: PUSH1 0x00
00002a9e: PUSH2 0x2aa8
00002aa1: DUP4
00002aa2: PUSH1 0x02
00002aa4: PUSH2 0x3a74
00002aa7: JUMP
00002aa8: JUMPDEST
00002aa9: PUSH2 0x2ab3
00002aac: SWAP1
00002aad: PUSH1 0x02
00002aaf: PUSH2 0x3a27
00002ab2: JUMP
00002ab3: JUMPDEST
00002ab4: PUSH8 0xffffffffffffffff
00002abd: DUP2
00002abe: GT
00002abf: ISZERO
00002ac0: PUSH2 0x2acb
00002ac3: JUMPI
00002ac4: PUSH2 0x2acb
00002ac7: PUSH2 0x33c3
00002aca: JUMP
00002acb: JUMPDEST
00002acc: PUSH1 0x40
00002ace: MLOAD
00002acf: SWAP1
00002ad0: DUP1
00002ad1: DUP3
00002ad2: MSTORE
00002ad3: DUP1
00002ad4: PUSH1 0x1f
00002ad6: ADD
00002ad7: PUSH1 0x1f
00002ad9: NOT
00002ada: AND
00002adb: PUSH1 0x20
00002add: ADD
00002ade: DUP3
00002adf: ADD
00002ae0: PUSH1 0x40
00002ae2: MSTORE
00002ae3: DUP1
00002ae4: ISZERO
00002ae5: PUSH2 0x2af5
00002ae8: JUMPI
00002ae9: PUSH1 0x20
00002aeb: DUP3
00002aec: ADD
00002aed: DUP2
00002aee: DUP1
00002aef: CALLDATASIZE
00002af0: DUP4
00002af1: CALLDATACOPY
00002af2: ADD
00002af3: SWAP1
00002af4: POP
00002af5: JUMPDEST
00002af6: POP
00002af7: SWAP1
00002af8: POP
00002af9: PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000
00002b1a: DUP2
00002b1b: PUSH1 0x00
00002b1d: DUP2
00002b1e: MLOAD
00002b1f: DUP2
00002b20: LT
00002b21: PUSH2 0x2b2c
00002b24: JUMPI
00002b25: PUSH2 0x2b2c
00002b28: PUSH2 0x3bd8
00002b2b: JUMP
00002b2c: JUMPDEST
00002b2d: PUSH1 0x20
00002b2f: ADD
00002b30: ADD
00002b31: SWAP1
00002b32: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002b52: NOT
00002b53: AND
00002b54: SWAP1
00002b55: DUP2
00002b56: PUSH1 0x00
00002b58: BYTE
00002b59: SWAP1
00002b5a: MSTORE8
00002b5b: POP
00002b5c: PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000
00002b7d: DUP2
00002b7e: PUSH1 0x01
00002b80: DUP2
00002b81: MLOAD
00002b82: DUP2
00002b83: LT
00002b84: PUSH2 0x2b8f
00002b87: JUMPI
00002b88: PUSH2 0x2b8f
00002b8b: PUSH2 0x3bd8
00002b8e: JUMP
00002b8f: JUMPDEST
00002b90: PUSH1 0x20
00002b92: ADD
00002b93: ADD
00002b94: SWAP1
00002b95: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002bb5: NOT
00002bb6: AND
00002bb7: SWAP1
00002bb8: DUP2
00002bb9: PUSH1 0x00
00002bbb: BYTE
00002bbc: SWAP1
00002bbd: MSTORE8
00002bbe: POP
00002bbf: PUSH1 0x00
00002bc1: PUSH2 0x2bcb
00002bc4: DUP5
00002bc5: PUSH1 0x02
00002bc7: PUSH2 0x3a74
00002bca: JUMP
00002bcb: JUMPDEST
00002bcc: PUSH2 0x2bd6
00002bcf: SWAP1
00002bd0: PUSH1 0x01
00002bd2: PUSH2 0x3a27
00002bd5: JUMP
00002bd6: JUMPDEST
00002bd7: SWAP1
00002bd8: POP
00002bd9: JUMPDEST
00002bda: PUSH1 0x01
00002bdc: DUP2
00002bdd: GT
00002bde: ISZERO
00002bdf: PUSH2 0x2c73
00002be2: JUMPI
00002be3: PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000
00002c04: DUP6
00002c05: PUSH1 0x0f
00002c07: AND
00002c08: PUSH1 0x10
00002c0a: DUP2
00002c0b: LT
00002c0c: PUSH2 0x2c17
00002c0f: JUMPI
00002c10: PUSH2 0x2c17
00002c13: PUSH2 0x3bd8
00002c16: JUMP
00002c17: JUMPDEST
00002c18: BYTE
00002c19: PUSH1 0xf8
00002c1b: SHL
00002c1c: DUP3
00002c1d: DUP3
00002c1e: DUP2
00002c1f: MLOAD
00002c20: DUP2
00002c21: LT
00002c22: PUSH2 0x2c2d
00002c25: JUMPI
00002c26: PUSH2 0x2c2d
00002c29: PUSH2 0x3bd8
00002c2c: JUMP
00002c2d: JUMPDEST
00002c2e: PUSH1 0x20
00002c30: ADD
00002c31: ADD
00002c32: SWAP1
00002c33: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002c53: NOT
00002c54: AND
00002c55: SWAP1
00002c56: DUP2
00002c57: PUSH1 0x00
00002c59: BYTE
00002c5a: SWAP1
00002c5b: MSTORE8
00002c5c: POP
00002c5d: PUSH1 0x04
00002c5f: SWAP5
00002c60: SWAP1
00002c61: SWAP5
00002c62: SHR
00002c63: SWAP4
00002c64: PUSH2 0x2c6c
00002c67: DUP2
00002c68: PUSH2 0x3c07
00002c6b: JUMP
00002c6c: JUMPDEST
00002c6d: SWAP1
00002c6e: POP
00002c6f: PUSH2 0x2bd9
00002c72: JUMP
00002c73: JUMPDEST
00002c74: POP
00002c75: DUP4
00002c76: ISZERO
00002c77: PUSH2 0x2cc2
00002c7a: JUMPI
00002c7b: PUSH1 0x40
00002c7d: MLOAD
00002c7e: PUSH3 0x461bcd
00002c82: PUSH1 0xe5
00002c84: SHL
00002c85: DUP2
00002c86: MSTORE
00002c87: PUSH1 0x20
00002c89: PUSH1 0x04
00002c8b: DUP3
00002c8c: ADD
00002c8d: DUP2
00002c8e: SWAP1
00002c8f: MSTORE
00002c90: PUSH1 0x24
00002c92: DUP3
00002c93: ADD
00002c94: MSTORE
00002c95: PUSH32 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74
00002cb6: PUSH1 0x44
00002cb8: DUP3
00002cb9: ADD
00002cba: MSTORE
00002cbb: PUSH1 0x64
00002cbd: ADD
00002cbe: PUSH2 0x0ac8
00002cc1: JUMP
00002cc2: JUMPDEST
00002cc3: SWAP4
00002cc4: SWAP3
00002cc5: POP
00002cc6: POP
00002cc7: POP
00002cc8: JUMP
00002cc9: JUMPDEST
00002cca: PUSH2 0x2cd2
00002ccd: DUP2
00002cce: PUSH2 0x2329
00002cd1: JUMP
00002cd2: JUMPDEST
00002cd3: PUSH1 0x40
00002cd5: MLOAD
00002cd6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ceb: DUP3
00002cec: AND
00002ced: SWAP1
00002cee: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
00002d0f: SWAP1
00002d10: PUSH1 0x00
00002d12: SWAP1
00002d13: LOG2
00002d14: POP
00002d15: JUMP
00002d16: JUMPDEST
00002d17: PUSH1 0x60
00002d19: PUSH2 0x2cc2
00002d1c: DUP4
00002d1d: DUP4
00002d1e: PUSH1 0x40
00002d20: MLOAD
00002d21: DUP1
00002d22: PUSH1 0x60
00002d24: ADD
00002d25: PUSH1 0x40
00002d27: MSTORE
00002d28: DUP1
00002d29: PUSH1 0x27
00002d2b: DUP2
00002d2c: MSTORE
00002d2d: PUSH1 0x20
00002d2f: ADD
00002d30: PUSH2 0x3c3d
00002d33: PUSH1 0x27
00002d35: SWAP2
00002d36: CODECOPY
00002d37: PUSH2 0x2f42
00002d3a: JUMP
00002d3b: JUMPDEST
00002d3c: PUSH1 0x00
00002d3e: PUSH2 0x0922
00002d41: PUSH2 0x1da5
00002d44: DUP4
00002d45: PUSH2 0x2fc7
00002d48: JUMP
00002d49: JUMPDEST
00002d4a: PUSH1 0x00
00002d4c: PUSH2 0x0922
00002d4f: DUP3
00002d50: PUSH2 0x1ddb
00002d53: JUMP
00002d54: JUMPDEST
00002d55: PUSH1 0x00
00002d57: PUSH2 0x2d5f
00002d5a: DUP3
00002d5b: PUSH2 0x30ad
00002d5e: JUMP
00002d5f: JUMPDEST
00002d60: PUSH2 0x2d6b
00002d63: SWAP1
00002d64: PUSH2 0x0100
00002d67: PUSH2 0x3869
00002d6a: JUMP
00002d6b: JUMPDEST
00002d6c: SWAP1
00002d6d: POP
00002d6e: PUSH1 0x00
00002d70: PUSH2 0x2d7a
00002d73: PUSH1 0x01
00002d75: DUP4
00002d76: PUSH2 0x3869
00002d79: JUMP
00002d7a: JUMPDEST
00002d7b: PUSH1 0x01
00002d7d: SWAP1
00002d7e: SHL
00002d7f: SWAP1
00002d80: POP
00002d81: PUSH1 0x01
00002d83: DUP2
00002d84: PUSH2 0x2d8d
00002d87: SWAP2
00002d88: SWAP1
00002d89: PUSH2 0x3869
00002d8c: JUMP
00002d8d: JUMPDEST
00002d8e: DUP5
00002d8f: GT
00002d90: PUSH2 0x2d99
00002d93: JUMPI
00002d94: POP
00002d95: PUSH2 0x0922
00002d98: JUMP
00002d99: JUMPDEST
00002d9a: DUP1
00002d9b: PUSH1 0x01
00002d9d: EQ
00002d9e: ISZERO
00002d9f: PUSH2 0x2dac
00002da2: JUMPI
00002da3: PUSH1 0x01
00002da5: SWAP2
00002da6: POP
00002da7: POP
00002da8: PUSH2 0x0922
00002dab: JUMP
00002dac: JUMPDEST
00002dad: PUSH1 0x01
00002daf: PUSH2 0x2db8
00002db2: DUP3
00002db3: DUP6
00002db4: PUSH2 0x3869
00002db7: JUMP
00002db8: JUMPDEST
00002db9: GT
00002dba: PUSH2 0x2dc7
00002dbd: JUMPI
00002dbe: PUSH1 0x01
00002dc0: SWAP2
00002dc1: POP
00002dc2: POP
00002dc3: PUSH2 0x0922
00002dc6: JUMP
00002dc7: JUMPDEST
00002dc8: PUSH2 0x2de3
00002dcb: PUSH2 0x2dd4
00002dce: DUP3
00002dcf: DUP7
00002dd0: PUSH2 0x3869
00002dd3: JUMP
00002dd4: JUMPDEST
00002dd5: PUSH2 0x2dde
00002dd8: DUP4
00002dd9: DUP7
00002dda: PUSH2 0x3869
00002ddd: JUMP
00002dde: JUMPDEST
00002ddf: PUSH2 0x2d54
00002de2: JUMP
00002de3: JUMPDEST
00002de4: PUSH2 0x2dee
00002de7: SWAP1
00002de8: PUSH1 0x01
00002dea: PUSH2 0x3a27
00002ded: JUMP
00002dee: JUMPDEST
00002def: SWAP2
00002df0: POP
00002df1: POP
00002df2: PUSH2 0x0922
00002df5: JUMP
00002df6: JUMPDEST
00002df7: PUSH1 0x40
00002df9: MLOAD
00002dfa: PUSH32 0x0100000000000000000000000000000000000000000000000000000000000000
00002e1b: PUSH1 0x20
00002e1d: DUP3
00002e1e: ADD
00002e1f: MSTORE
00002e20: PUSH1 0x21
00002e22: DUP2
00002e23: ADD
00002e24: DUP4
00002e25: SWAP1
00002e26: MSTORE
00002e27: PUSH1 0x41
00002e29: DUP2
00002e2a: ADD
00002e2b: DUP3
00002e2c: SWAP1
00002e2d: MSTORE
00002e2e: PUSH1 0x00
00002e30: SWAP1
00002e31: PUSH2 0x2cc2
00002e34: SWAP1
00002e35: PUSH1 0x61
00002e37: ADD
00002e38: PUSH2 0x258c
00002e3b: JUMP
00002e3c: JUMPDEST
00002e3d: PUSH1 0x00
00002e3f: SLOAD
00002e40: PUSH2 0x0100
00002e43: SWAP1
00002e44: DIV
00002e45: PUSH1 0xff
00002e47: AND
00002e48: PUSH2 0x2eb9
00002e4b: JUMPI
00002e4c: PUSH1 0x40
00002e4e: MLOAD
00002e4f: PUSH3 0x461bcd
00002e53: PUSH1 0xe5
00002e55: SHL
00002e56: DUP2
00002e57: MSTORE
00002e58: PUSH1 0x20
00002e5a: PUSH1 0x04
00002e5c: DUP3
00002e5d: ADD
00002e5e: MSTORE
00002e5f: PUSH1 0x2b
00002e61: PUSH1 0x24
00002e63: DUP3
00002e64: ADD
00002e65: MSTORE
00002e66: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00002e87: PUSH1 0x44
00002e89: DUP3
00002e8a: ADD
00002e8b: MSTORE
00002e8c: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00002ead: PUSH1 0x64
00002eaf: DUP3
00002eb0: ADD
00002eb1: MSTORE
00002eb2: PUSH1 0x84
00002eb4: ADD
00002eb5: PUSH2 0x0ac8
00002eb8: JUMP
00002eb9: JUMPDEST
00002eba: PUSH1 0x33
00002ebc: DUP1
00002ebd: SLOAD
00002ebe: PUSH1 0xff
00002ec0: NOT
00002ec1: AND
00002ec2: SWAP1
00002ec3: SSTORE
00002ec4: JUMP
00002ec5: JUMPDEST
00002ec6: PUSH1 0x00
00002ec8: SLOAD
00002ec9: PUSH2 0x0100
00002ecc: SWAP1
00002ecd: DIV
00002ece: PUSH1 0xff
00002ed0: AND
00002ed1: PUSH2 0x289a
00002ed4: JUMPI
00002ed5: PUSH1 0x40
00002ed7: MLOAD
00002ed8: PUSH3 0x461bcd
00002edc: PUSH1 0xe5
00002ede: SHL
00002edf: DUP2
00002ee0: MSTORE
00002ee1: PUSH1 0x20
00002ee3: PUSH1 0x04
00002ee5: DUP3
00002ee6: ADD
00002ee7: MSTORE
00002ee8: PUSH1 0x2b
00002eea: PUSH1 0x24
00002eec: DUP3
00002eed: ADD
00002eee: MSTORE
00002eef: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00002f10: PUSH1 0x44
00002f12: DUP3
00002f13: ADD
00002f14: MSTORE
00002f15: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00002f36: PUSH1 0x64
00002f38: DUP3
00002f39: ADD
00002f3a: MSTORE
00002f3b: PUSH1 0x84
00002f3d: ADD
00002f3e: PUSH2 0x0ac8
00002f41: JUMP
00002f42: JUMPDEST
00002f43: PUSH1 0x60
00002f45: PUSH1 0x00
00002f47: DUP1
00002f48: DUP6
00002f49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f5e: AND
00002f5f: DUP6
00002f60: PUSH1 0x40
00002f62: MLOAD
00002f63: PUSH2 0x2f6c
00002f66: SWAP2
00002f67: SWAP1
00002f68: PUSH2 0x3a58
00002f6b: JUMP
00002f6c: JUMPDEST
00002f6d: PUSH1 0x00
00002f6f: PUSH1 0x40
00002f71: MLOAD
00002f72: DUP1
00002f73: DUP4
00002f74: SUB
00002f75: DUP2
00002f76: DUP6
00002f77: GAS
00002f78: DELEGATECALL
00002f79: SWAP2
00002f7a: POP
00002f7b: POP
00002f7c: RETURNDATASIZE
00002f7d: DUP1
00002f7e: PUSH1 0x00
00002f80: DUP2
00002f81: EQ
00002f82: PUSH2 0x2fa7
00002f85: JUMPI
00002f86: PUSH1 0x40
00002f88: MLOAD
00002f89: SWAP2
00002f8a: POP
00002f8b: PUSH1 0x1f
00002f8d: NOT
00002f8e: PUSH1 0x3f
00002f90: RETURNDATASIZE
00002f91: ADD
00002f92: AND
00002f93: DUP3
00002f94: ADD
00002f95: PUSH1 0x40
00002f97: MSTORE
00002f98: RETURNDATASIZE
00002f99: DUP3
00002f9a: MSTORE
00002f9b: RETURNDATASIZE
00002f9c: PUSH1 0x00
00002f9e: PUSH1 0x20
00002fa0: DUP5
00002fa1: ADD
00002fa2: RETURNDATACOPY
00002fa3: PUSH2 0x2fac
00002fa6: JUMP
00002fa7: JUMPDEST
00002fa8: PUSH1 0x60
00002faa: SWAP2
00002fab: POP
00002fac: JUMPDEST
00002fad: POP
00002fae: SWAP2
00002faf: POP
00002fb0: SWAP2
00002fb1: POP
00002fb2: PUSH2 0x2fbd
00002fb5: DUP7
00002fb6: DUP4
00002fb7: DUP4
00002fb8: DUP8
00002fb9: PUSH2 0x30da
00002fbc: JUMP
00002fbd: JUMPDEST
00002fbe: SWAP7
00002fbf: SWAP6
00002fc0: POP
00002fc1: POP
00002fc2: POP
00002fc3: POP
00002fc4: POP
00002fc5: POP
00002fc6: JUMP
00002fc7: JUMPDEST
00002fc8: PUSH1 0x40
00002fca: DUP2
00002fcb: DUP2
00002fcc: ADD
00002fcd: MLOAD
00002fce: PUSH1 0x80
00002fd0: DUP4
00002fd1: ADD
00002fd2: MLOAD
00002fd3: PUSH1 0xa0
00002fd5: DUP5
00002fd6: ADD
00002fd7: MLOAD
00002fd8: PUSH2 0x0140
00002fdb: DUP6
00002fdc: ADD
00002fdd: MLOAD
00002fde: PUSH1 0x60
00002fe0: DUP1
00002fe1: DUP8
00002fe2: ADD
00002fe3: MLOAD
00002fe4: PUSH1 0xe0
00002fe6: DUP1
00002fe7: DUP10
00002fe8: ADD
00002fe9: MLOAD
00002fea: PUSH2 0x0100
00002fed: DUP11
00002fee: ADD
00002fef: MLOAD
00002ff0: PUSH2 0x0120
00002ff3: DUP12
00002ff4: ADD
00002ff5: MLOAD
00002ff6: SWAP10
00002ff7: MLOAD
00002ff8: PUSH1 0xc0
00002ffa: SWAP10
00002ffb: SWAP1
00002ffc: SWAP10
00002ffd: SHL
00002ffe: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000301f: AND
00003020: PUSH1 0x20
00003022: DUP11
00003023: ADD
00003024: MSTORE
00003025: SWAP7
00003026: DUP3
00003027: SHL
00003028: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00003049: SWAP1
0000304a: DUP2
0000304b: AND
0000304c: PUSH1 0x28
0000304e: DUP11
0000304f: ADD
00003050: MSTORE
00003051: SWAP6
00003052: DUP3
00003053: SHL
00003054: DUP7
00003055: AND
00003056: PUSH1 0x2c
00003058: DUP10
00003059: ADD
0000305a: MSTORE
0000305b: PUSH1 0xf0
0000305d: SWAP5
0000305e: SWAP1
0000305f: SWAP5
00003060: SHL
00003061: PUSH32 0xffff000000000000000000000000000000000000000000000000000000000000
00003082: AND
00003083: PUSH1 0x30
00003085: DUP9
00003086: ADD
00003087: MSTORE
00003088: SHL
00003089: SWAP1
0000308a: SWAP3
0000308b: AND
0000308c: PUSH1 0x32
0000308e: DUP6
0000308f: ADD
00003090: MSTORE
00003091: PUSH1 0x36
00003093: DUP5
00003094: ADD
00003095: MSTORE
00003096: PUSH1 0x56
00003098: DUP4
00003099: ADD
0000309a: SWAP2
0000309b: SWAP1
0000309c: SWAP2
0000309d: MSTORE
0000309e: PUSH1 0x76
000030a0: DUP3
000030a1: ADD
000030a2: SWAP3
000030a3: SWAP1
000030a4: SWAP3
000030a5: MSTORE
000030a6: PUSH1 0x96
000030a8: ADD
000030a9: PUSH2 0x24cd
000030ac: JUMP
000030ad: JUMPDEST
000030ae: PUSH1 0x00
000030b0: JUMPDEST
000030b1: DUP2
000030b2: DUP2
000030b3: PUSH1 0x01
000030b5: SWAP1
000030b6: SHL
000030b7: LT
000030b8: ISZERO
000030b9: PUSH2 0x30ce
000030bc: JUMPI
000030bd: PUSH2 0x30c7
000030c0: PUSH1 0x01
000030c2: DUP3
000030c3: PUSH2 0x3a27
000030c6: JUMP
000030c7: JUMPDEST
000030c8: SWAP1
000030c9: POP
000030ca: PUSH2 0x30b0
000030cd: JUMP
000030ce: JUMPDEST
000030cf: PUSH2 0x0922
000030d2: DUP2
000030d3: PUSH2 0x0100
000030d6: PUSH2 0x3869
000030d9: JUMP
000030da: JUMPDEST
000030db: PUSH1 0x60
000030dd: DUP4
000030de: ISZERO
000030df: PUSH2 0x3153
000030e2: JUMPI
000030e3: DUP3
000030e4: MLOAD
000030e5: PUSH2 0x314c
000030e8: JUMPI
000030e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000030fe: DUP6
000030ff: AND
00003100: EXTCODESIZE
00003101: PUSH2 0x314c
00003104: JUMPI
00003105: PUSH1 0x40
00003107: MLOAD
00003108: PUSH3 0x461bcd
0000310c: PUSH1 0xe5
0000310e: SHL
0000310f: DUP2
00003110: MSTORE
00003111: PUSH1 0x20
00003113: PUSH1 0x04
00003115: DUP3
00003116: ADD
00003117: MSTORE
00003118: PUSH1 0x1d
0000311a: PUSH1 0x24
0000311c: DUP3
0000311d: ADD
0000311e: MSTORE
0000311f: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00003140: PUSH1 0x44
00003142: DUP3
00003143: ADD
00003144: MSTORE
00003145: PUSH1 0x64
00003147: ADD
00003148: PUSH2 0x0ac8
0000314b: JUMP
0000314c: JUMPDEST
0000314d: POP
0000314e: DUP2
0000314f: PUSH2 0x315d
00003152: JUMP
00003153: JUMPDEST
00003154: PUSH2 0x315d
00003157: DUP4
00003158: DUP4
00003159: PUSH2 0x3165
0000315c: JUMP
0000315d: JUMPDEST
0000315e: SWAP5
0000315f: SWAP4
00003160: POP
00003161: POP
00003162: POP
00003163: POP
00003164: JUMP
00003165: JUMPDEST
00003166: DUP2
00003167: MLOAD
00003168: ISZERO
00003169: PUSH2 0x3175
0000316c: JUMPI
0000316d: DUP2
0000316e: MLOAD
0000316f: DUP1
00003170: DUP4
00003171: PUSH1 0x20
00003173: ADD
00003174: REVERT
00003175: JUMPDEST
00003176: DUP1
00003177: PUSH1 0x40
00003179: MLOAD
0000317a: PUSH3 0x461bcd
0000317e: PUSH1 0xe5
00003180: SHL
00003181: DUP2
00003182: MSTORE
00003183: PUSH1 0x04
00003185: ADD
00003186: PUSH2 0x0ac8
00003189: SWAP2
0000318a: SWAP1
0000318b: PUSH2 0x3b42
0000318e: JUMP
0000318f: JUMPDEST
00003190: PUSH1 0x00
00003192: PUSH1 0x20
00003194: DUP3
00003195: DUP5
00003196: SUB
00003197: SLT
00003198: ISZERO
00003199: PUSH2 0x31a1
0000319c: JUMPI
0000319d: PUSH1 0x00
0000319f: DUP1
000031a0: REVERT
000031a1: JUMPDEST
000031a2: DUP2
000031a3: CALLDATALOAD
000031a4: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000031c5: DUP2
000031c6: AND
000031c7: DUP2
000031c8: EQ
000031c9: PUSH2 0x2cc2
000031cc: JUMPI
000031cd: PUSH1 0x00
000031cf: DUP1
000031d0: REVERT
000031d1: JUMPDEST
000031d2: PUSH1 0x00
000031d4: PUSH1 0x20
000031d6: DUP3
000031d7: DUP5
000031d8: SUB
000031d9: SLT
000031da: ISZERO
000031db: PUSH2 0x31e3
000031de: JUMPI
000031df: PUSH1 0x00
000031e1: DUP1
000031e2: REVERT
000031e3: JUMPDEST
000031e4: POP
000031e5: CALLDATALOAD
000031e6: SWAP2
000031e7: SWAP1
000031e8: POP
000031e9: JUMP
000031ea: JUMPDEST
000031eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003200: DUP2
00003201: AND
00003202: DUP2
00003203: EQ
00003204: PUSH2 0x0dfb
00003207: JUMPI
00003208: PUSH1 0x00
0000320a: DUP1
0000320b: REVERT
0000320c: JUMPDEST
0000320d: PUSH1 0x00
0000320f: PUSH1 0x20
00003211: DUP3
00003212: DUP5
00003213: SUB
00003214: SLT
00003215: ISZERO
00003216: PUSH2 0x321e
00003219: JUMPI
0000321a: PUSH1 0x00
0000321c: DUP1
0000321d: REVERT
0000321e: JUMPDEST
0000321f: DUP2
00003220: CALLDATALOAD
00003221: PUSH2 0x2cc2
00003224: DUP2
00003225: PUSH2 0x31ea
00003228: JUMP
00003229: JUMPDEST
0000322a: PUSH1 0x00
0000322c: DUP1
0000322d: PUSH1 0x00
0000322f: PUSH1 0x40
00003231: DUP5
00003232: DUP7
00003233: SUB
00003234: SLT
00003235: ISZERO
00003236: PUSH2 0x323e
00003239: JUMPI
0000323a: PUSH1 0x00
0000323c: DUP1
0000323d: REVERT
0000323e: JUMPDEST
0000323f: DUP4
00003240: CALLDATALOAD
00003241: SWAP3
00003242: POP
00003243: PUSH1 0x20
00003245: DUP5
00003246: ADD
00003247: CALLDATALOAD
00003248: PUSH8 0xffffffffffffffff
00003251: DUP1
00003252: DUP3
00003253: GT
00003254: ISZERO
00003255: PUSH2 0x325d
00003258: JUMPI
00003259: PUSH1 0x00
0000325b: DUP1
0000325c: REVERT
0000325d: JUMPDEST
0000325e: DUP2
0000325f: DUP7
00003260: ADD
00003261: SWAP2
00003262: POP
00003263: DUP7
00003264: PUSH1 0x1f
00003266: DUP4
00003267: ADD
00003268: SLT
00003269: PUSH2 0x3271
0000326c: JUMPI
0000326d: PUSH1 0x00
0000326f: DUP1
00003270: REVERT
00003271: JUMPDEST
00003272: DUP2
00003273: CALLDATALOAD
00003274: DUP2
00003275: DUP2
00003276: GT
00003277: ISZERO
00003278: PUSH2 0x3280
0000327b: JUMPI
0000327c: PUSH1 0x00
0000327e: DUP1
0000327f: REVERT
00003280: JUMPDEST
00003281: DUP8
00003282: PUSH1 0x20
00003284: DUP3
00003285: DUP6
00003286: ADD
00003287: ADD
00003288: GT
00003289: ISZERO
0000328a: PUSH2 0x3292
0000328d: JUMPI
0000328e: PUSH1 0x00
00003290: DUP1
00003291: REVERT
00003292: JUMPDEST
00003293: PUSH1 0x20
00003295: DUP4
00003296: ADD
00003297: SWAP5
00003298: POP
00003299: DUP1
0000329a: SWAP4
0000329b: POP
0000329c: POP
0000329d: POP
0000329e: POP
0000329f: SWAP3
000032a0: POP
000032a1: SWAP3
000032a2: POP
000032a3: SWAP3
000032a4: JUMP
000032a5: JUMPDEST
000032a6: PUSH1 0x00
000032a8: DUP1
000032a9: PUSH1 0x40
000032ab: DUP4
000032ac: DUP6
000032ad: SUB
000032ae: SLT
000032af: ISZERO
000032b0: PUSH2 0x32b8
000032b3: JUMPI
000032b4: PUSH1 0x00
000032b6: DUP1
000032b7: REVERT
000032b8: JUMPDEST
000032b9: DUP3
000032ba: CALLDATALOAD
000032bb: SWAP2
000032bc: POP
000032bd: PUSH1 0x20
000032bf: DUP4
000032c0: ADD
000032c1: CALLDATALOAD
000032c2: PUSH2 0x32ca
000032c5: DUP2
000032c6: PUSH2 0x31ea
000032c9: JUMP
000032ca: JUMPDEST
000032cb: DUP1
000032cc: SWAP2
000032cd: POP
000032ce: POP
000032cf: SWAP3
000032d0: POP
000032d1: SWAP3
000032d2: SWAP1
000032d3: POP
000032d4: JUMP
000032d5: JUMPDEST
000032d6: PUSH1 0x00
000032d8: PUSH2 0x0160
000032db: DUP3
000032dc: DUP5
000032dd: SUB
000032de: SLT
000032df: ISZERO
000032e0: PUSH2 0x32e8
000032e3: JUMPI
000032e4: PUSH1 0x00
000032e6: DUP1
000032e7: REVERT
000032e8: JUMPDEST
000032e9: POP
000032ea: SWAP2
000032eb: SWAP1
000032ec: POP
000032ed: JUMP
000032ee: JUMPDEST
000032ef: PUSH1 0x00
000032f1: PUSH1 0x40
000032f3: DUP3
000032f4: DUP5
000032f5: SUB
000032f6: SLT
000032f7: ISZERO
000032f8: PUSH2 0x32e8
000032fb: JUMPI
000032fc: PUSH1 0x00
000032fe: DUP1
000032ff: REVERT
00003300: JUMPDEST
00003301: PUSH1 0x00
00003303: DUP1
00003304: PUSH1 0x00
00003306: DUP1
00003307: PUSH1 0x00
00003309: DUP6
0000330a: DUP8
0000330b: SUB
0000330c: PUSH2 0x0240
0000330f: DUP2
00003310: SLT
00003311: ISZERO
00003312: PUSH2 0x331a
00003315: JUMPI
00003316: PUSH1 0x00
00003318: DUP1
00003319: REVERT
0000331a: JUMPDEST
0000331b: DUP7
0000331c: CALLDATALOAD
0000331d: PUSH8 0xffffffffffffffff
00003326: DUP1
00003327: DUP3
00003328: GT
00003329: ISZERO
0000332a: PUSH2 0x3332
0000332d: JUMPI
0000332e: PUSH1 0x00
00003330: DUP1
00003331: REVERT
00003332: JUMPDEST
00003333: SWAP1
00003334: DUP9
00003335: ADD
00003336: SWAP1
00003337: PUSH1 0xa0
00003339: DUP3
0000333a: DUP12
0000333b: SUB
0000333c: SLT
0000333d: ISZERO
0000333e: PUSH2 0x3346
00003341: JUMPI
00003342: PUSH1 0x00
00003344: DUP1
00003345: REVERT
00003346: JUMPDEST
00003347: DUP2
00003348: SWAP8
00003349: POP
0000334a: PUSH1 0x80
0000334c: PUSH1 0x1f
0000334e: NOT
0000334f: DUP5
00003350: ADD
00003351: SLT
00003352: ISZERO
00003353: PUSH2 0x335b
00003356: JUMPI
00003357: PUSH1 0x00
00003359: DUP1
0000335a: REVERT
0000335b: JUMPDEST
0000335c: PUSH1 0x20
0000335e: DUP10
0000335f: ADD
00003360: SWAP7
00003361: POP
00003362: PUSH2 0x336e
00003365: DUP11
00003366: PUSH1 0xa0
00003368: DUP12
00003369: ADD
0000336a: PUSH2 0x32d5
0000336d: JUMP
0000336e: JUMPDEST
0000336f: SWAP6
00003370: POP
00003371: PUSH2 0x0200
00003374: DUP10
00003375: ADD
00003376: CALLDATALOAD
00003377: SWAP3
00003378: POP
00003379: DUP1
0000337a: DUP4
0000337b: GT
0000337c: ISZERO
0000337d: PUSH2 0x3385
00003380: JUMPI
00003381: PUSH1 0x00
00003383: DUP1
00003384: REVERT
00003385: JUMPDEST
00003386: PUSH2 0x3391
00003389: DUP11
0000338a: DUP5
0000338b: DUP12
0000338c: ADD
0000338d: PUSH2 0x32ee
00003390: JUMP
00003391: JUMPDEST
00003392: SWAP5
00003393: POP
00003394: PUSH2 0x0220
00003397: DUP10
00003398: ADD
00003399: CALLDATALOAD
0000339a: SWAP3
0000339b: POP
0000339c: DUP1
0000339d: DUP4
0000339e: GT
0000339f: ISZERO
000033a0: PUSH2 0x33a8
000033a3: JUMPI
000033a4: PUSH1 0x00
000033a6: DUP1
000033a7: REVERT
000033a8: JUMPDEST
000033a9: POP
000033aa: POP
000033ab: PUSH2 0x33b6
000033ae: DUP9
000033af: DUP3
000033b0: DUP10
000033b1: ADD
000033b2: PUSH2 0x32ee
000033b5: JUMP
000033b6: JUMPDEST
000033b7: SWAP2
000033b8: POP
000033b9: POP
000033ba: SWAP3
000033bb: SWAP6
000033bc: POP
000033bd: SWAP3
000033be: SWAP6
000033bf: SWAP1
000033c0: SWAP4
000033c1: POP
000033c2: JUMP
000033c3: JUMPDEST
000033c4: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000033e5: PUSH1 0x00
000033e7: MSTORE
000033e8: PUSH1 0x41
000033ea: PUSH1 0x04
000033ec: MSTORE
000033ed: PUSH1 0x24
000033ef: PUSH1 0x00
000033f1: REVERT
000033f2: JUMPDEST
000033f3: PUSH1 0x40
000033f5: MLOAD
000033f6: PUSH2 0x0160
000033f9: DUP2
000033fa: ADD
000033fb: PUSH8 0xffffffffffffffff
00003404: DUP2
00003405: GT
00003406: DUP3
00003407: DUP3
00003408: LT
00003409: OR
0000340a: ISZERO
0000340b: PUSH2 0x3416
0000340e: JUMPI
0000340f: PUSH2 0x3416
00003412: PUSH2 0x33c3
00003415: JUMP
00003416: JUMPDEST
00003417: PUSH1 0x40
00003419: MSTORE
0000341a: SWAP1
0000341b: JUMP
0000341c: JUMPDEST
0000341d: PUSH1 0x40
0000341f: MLOAD
00003420: PUSH1 0x1f
00003422: DUP3
00003423: ADD
00003424: PUSH1 0x1f
00003426: NOT
00003427: AND
00003428: DUP2
00003429: ADD
0000342a: PUSH8 0xffffffffffffffff
00003433: DUP2
00003434: GT
00003435: DUP3
00003436: DUP3
00003437: LT
00003438: OR
00003439: ISZERO
0000343a: PUSH2 0x3445
0000343d: JUMPI
0000343e: PUSH2 0x3445
00003441: PUSH2 0x33c3
00003444: JUMP
00003445: JUMPDEST
00003446: PUSH1 0x40
00003448: MSTORE
00003449: SWAP2
0000344a: SWAP1
0000344b: POP
0000344c: JUMP
0000344d: JUMPDEST
0000344e: PUSH1 0x00
00003450: DUP1
00003451: PUSH1 0x40
00003453: DUP4
00003454: DUP6
00003455: SUB
00003456: SLT
00003457: ISZERO
00003458: PUSH2 0x3460
0000345b: JUMPI
0000345c: PUSH1 0x00
0000345e: DUP1
0000345f: REVERT
00003460: JUMPDEST
00003461: DUP3
00003462: CALLDATALOAD
00003463: PUSH2 0x346b
00003466: DUP2
00003467: PUSH2 0x31ea
0000346a: JUMP
0000346b: JUMPDEST
0000346c: SWAP2
0000346d: POP
0000346e: PUSH1 0x20
00003470: DUP4
00003471: DUP2
00003472: ADD
00003473: CALLDATALOAD
00003474: PUSH8 0xffffffffffffffff
0000347d: DUP1
0000347e: DUP3
0000347f: GT
00003480: ISZERO
00003481: PUSH2 0x3489
00003484: JUMPI
00003485: PUSH1 0x00
00003487: DUP1
00003488: REVERT
00003489: JUMPDEST
0000348a: DUP2
0000348b: DUP7
0000348c: ADD
0000348d: SWAP2
0000348e: POP
0000348f: DUP7
00003490: PUSH1 0x1f
00003492: DUP4
00003493: ADD
00003494: SLT
00003495: PUSH2 0x349d
00003498: JUMPI
00003499: PUSH1 0x00
0000349b: DUP1
0000349c: REVERT
0000349d: JUMPDEST
0000349e: DUP2
0000349f: CALLDATALOAD
000034a0: DUP2
000034a1: DUP2
000034a2: GT
000034a3: ISZERO
000034a4: PUSH2 0x34af
000034a7: JUMPI
000034a8: PUSH2 0x34af
000034ab: PUSH2 0x33c3
000034ae: JUMP
000034af: JUMPDEST
000034b0: PUSH2 0x34c1
000034b3: DUP5
000034b4: PUSH1 0x1f
000034b6: NOT
000034b7: PUSH1 0x1f
000034b9: DUP5
000034ba: ADD
000034bb: AND
000034bc: ADD
000034bd: PUSH2 0x341c
000034c0: JUMP
000034c1: JUMPDEST
000034c2: SWAP2
000034c3: POP
000034c4: DUP1
000034c5: DUP3
000034c6: MSTORE
000034c7: DUP8
000034c8: DUP5
000034c9: DUP3
000034ca: DUP6
000034cb: ADD
000034cc: ADD
000034cd: GT
000034ce: ISZERO
000034cf: PUSH2 0x34d7
000034d2: JUMPI
000034d3: PUSH1 0x00
000034d5: DUP1
000034d6: REVERT
000034d7: JUMPDEST
000034d8: DUP1
000034d9: DUP5
000034da: DUP5
000034db: ADD
000034dc: DUP6
000034dd: DUP5
000034de: ADD
000034df: CALLDATACOPY
000034e0: PUSH1 0x00
000034e2: DUP5
000034e3: DUP3
000034e4: DUP5
000034e5: ADD
000034e6: ADD
000034e7: MSTORE
000034e8: POP
000034e9: DUP1
000034ea: SWAP4
000034eb: POP
000034ec: POP
000034ed: POP
000034ee: POP
000034ef: SWAP3
000034f0: POP
000034f1: SWAP3
000034f2: SWAP1
000034f3: POP
000034f4: JUMP
000034f5: JUMPDEST
000034f6: DUP1
000034f7: ISZERO
000034f8: ISZERO
000034f9: DUP2
000034fa: EQ
000034fb: PUSH2 0x0dfb
000034fe: JUMPI
000034ff: PUSH1 0x00
00003501: DUP1
00003502: REVERT
00003503: JUMPDEST
00003504: PUSH1 0x00
00003506: PUSH1 0x20
00003508: DUP3
00003509: DUP5
0000350a: SUB
0000350b: SLT
0000350c: ISZERO
0000350d: PUSH2 0x3515
00003510: JUMPI
00003511: PUSH1 0x00
00003513: DUP1
00003514: REVERT
00003515: JUMPDEST
00003516: DUP2
00003517: CALLDATALOAD
00003518: PUSH2 0x2cc2
0000351b: DUP2
0000351c: PUSH2 0x34f5
0000351f: JUMP
00003520: JUMPDEST
00003521: PUSH1 0x00
00003523: DUP1
00003524: PUSH1 0x40
00003526: DUP4
00003527: DUP6
00003528: SUB
00003529: SLT
0000352a: ISZERO
0000352b: PUSH2 0x3533
0000352e: JUMPI
0000352f: PUSH1 0x00
00003531: DUP1
00003532: REVERT
00003533: JUMPDEST
00003534: DUP3
00003535: CALLDATALOAD
00003536: PUSH2 0x353e
00003539: DUP2
0000353a: PUSH2 0x31ea
0000353d: JUMP
0000353e: JUMPDEST
0000353f: SWAP5
00003540: PUSH1 0x20
00003542: SWAP4
00003543: SWAP1
00003544: SWAP4
00003545: ADD
00003546: CALLDATALOAD
00003547: SWAP4
00003548: POP
00003549: POP
0000354a: POP
0000354b: JUMP
0000354c: JUMPDEST
0000354d: DUP1
0000354e: CALLDATALOAD
0000354f: PUSH4 0xffffffff
00003554: DUP2
00003555: AND
00003556: DUP2
00003557: EQ
00003558: PUSH2 0x3560
0000355b: JUMPI
0000355c: PUSH1 0x00
0000355e: DUP1
0000355f: REVERT
00003560: JUMPDEST
00003561: SWAP2
00003562: SWAP1
00003563: POP
00003564: JUMP
00003565: JUMPDEST
00003566: DUP1
00003567: CALLDATALOAD
00003568: PUSH8 0xffffffffffffffff
00003571: DUP2
00003572: AND
00003573: DUP2
00003574: EQ
00003575: PUSH2 0x3560
00003578: JUMPI
00003579: PUSH1 0x00
0000357b: DUP1
0000357c: REVERT
0000357d: JUMPDEST
0000357e: PUSH1 0x00
00003580: PUSH1 0x80
00003582: DUP3
00003583: DUP5
00003584: SUB
00003585: SLT
00003586: ISZERO
00003587: PUSH2 0x358f
0000358a: JUMPI
0000358b: PUSH1 0x00
0000358d: DUP1
0000358e: REVERT
0000358f: JUMPDEST
00003590: PUSH1 0x40
00003592: MLOAD
00003593: PUSH1 0x80
00003595: DUP2
00003596: ADD
00003597: DUP2
00003598: DUP2
00003599: LT
0000359a: PUSH8 0xffffffffffffffff
000035a3: DUP3
000035a4: GT
000035a5: OR
000035a6: ISZERO
000035a7: PUSH2 0x35b2
000035aa: JUMPI
000035ab: PUSH2 0x35b2
000035ae: PUSH2 0x33c3
000035b1: JUMP
000035b2: JUMPDEST
000035b3: PUSH1 0x40
000035b5: MSTORE
000035b6: DUP3
000035b7: CALLDATALOAD
000035b8: DUP2
000035b9: MSTORE
000035ba: PUSH2 0x35c5
000035bd: PUSH1 0x20
000035bf: DUP5
000035c0: ADD
000035c1: PUSH2 0x354c
000035c4: JUMP
000035c5: JUMPDEST
000035c6: PUSH1 0x20
000035c8: DUP3
000035c9: ADD
000035ca: MSTORE
000035cb: PUSH2 0x35d6
000035ce: PUSH1 0x40
000035d0: DUP5
000035d1: ADD
000035d2: PUSH2 0x3565
000035d5: JUMP
000035d6: JUMPDEST
000035d7: PUSH1 0x40
000035d9: DUP3
000035da: ADD
000035db: MSTORE
000035dc: PUSH1 0x60
000035de: DUP4
000035df: ADD
000035e0: CALLDATALOAD
000035e1: PUSH1 0x60
000035e3: DUP3
000035e4: ADD
000035e5: MSTORE
000035e6: DUP1
000035e7: SWAP2
000035e8: POP
000035e9: POP
000035ea: SWAP3
000035eb: SWAP2
000035ec: POP
000035ed: POP
000035ee: JUMP
000035ef: JUMPDEST
000035f0: PUSH1 0x00
000035f2: PUSH1 0x20
000035f4: DUP3
000035f5: DUP5
000035f6: SUB
000035f7: SLT
000035f8: ISZERO
000035f9: PUSH2 0x3601
000035fc: JUMPI
000035fd: PUSH1 0x00
000035ff: DUP1
00003600: REVERT
00003601: JUMPDEST
00003602: PUSH2 0x2cc2
00003605: DUP3
00003606: PUSH2 0x354c
00003609: JUMP
0000360a: JUMPDEST
0000360b: PUSH1 0x00
0000360d: PUSH1 0x20
0000360f: DUP3
00003610: DUP5
00003611: SUB
00003612: SLT
00003613: ISZERO
00003614: PUSH2 0x361c
00003617: JUMPI
00003618: PUSH1 0x00
0000361a: DUP1
0000361b: REVERT
0000361c: JUMPDEST
0000361d: DUP2
0000361e: MLOAD
0000361f: PUSH2 0x2cc2
00003622: DUP2
00003623: PUSH2 0x34f5
00003626: JUMP
00003627: JUMPDEST
00003628: DUP1
00003629: CALLDATALOAD
0000362a: PUSH2 0xffff
0000362d: DUP2
0000362e: AND
0000362f: DUP2
00003630: EQ
00003631: PUSH2 0x3560
00003634: JUMPI
00003635: PUSH1 0x00
00003637: DUP1
00003638: REVERT
00003639: JUMPDEST
0000363a: PUSH1 0x00
0000363c: PUSH2 0x0160
0000363f: DUP3
00003640: DUP5
00003641: SUB
00003642: SLT
00003643: ISZERO
00003644: PUSH2 0x364c
00003647: JUMPI
00003648: PUSH1 0x00
0000364a: DUP1
0000364b: REVERT
0000364c: JUMPDEST
0000364d: PUSH2 0x3654
00003650: PUSH2 0x33f2
00003653: JUMP
00003654: JUMPDEST
00003655: DUP3
00003656: CALLDATALOAD
00003657: DUP2
00003658: MSTORE
00003659: PUSH2 0x3664
0000365c: PUSH1 0x20
0000365e: DUP5
0000365f: ADD
00003660: PUSH2 0x3565
00003663: JUMP
00003664: JUMPDEST
00003665: PUSH1 0x20
00003667: DUP3
00003668: ADD
00003669: MSTORE
0000366a: PUSH2 0x3675
0000366d: PUSH1 0x40
0000366f: DUP5
00003670: ADD
00003671: PUSH2 0x3565
00003674: JUMP
00003675: JUMPDEST
00003676: PUSH1 0x40
00003678: DUP3
00003679: ADD
0000367a: MSTORE
0000367b: PUSH2 0x3686
0000367e: PUSH1 0x60
00003680: DUP5
00003681: ADD
00003682: PUSH2 0x354c
00003685: JUMP
00003686: JUMPDEST
00003687: PUSH1 0x60
00003689: DUP3
0000368a: ADD
0000368b: MSTORE
0000368c: PUSH2 0x3697
0000368f: PUSH1 0x80
00003691: DUP5
00003692: ADD
00003693: PUSH2 0x354c
00003696: JUMP
00003697: JUMPDEST
00003698: PUSH1 0x80
0000369a: DUP3
0000369b: ADD
0000369c: MSTORE
0000369d: PUSH2 0x36a8
000036a0: PUSH1 0xa0
000036a2: DUP5
000036a3: ADD
000036a4: PUSH2 0x354c
000036a7: JUMP
000036a8: JUMPDEST
000036a9: PUSH1 0xa0
000036ab: DUP3
000036ac: ADD
000036ad: MSTORE
000036ae: PUSH2 0x36b9
000036b1: PUSH1 0xc0
000036b3: DUP5
000036b4: ADD
000036b5: PUSH2 0x354c
000036b8: JUMP
000036b9: JUMPDEST
000036ba: PUSH1 0xc0
000036bc: DUP3
000036bd: ADD
000036be: MSTORE
000036bf: PUSH1 0xe0
000036c1: DUP4
000036c2: DUP2
000036c3: ADD
000036c4: CALLDATALOAD
000036c5: SWAP1
000036c6: DUP3
000036c7: ADD
000036c8: MSTORE
000036c9: PUSH2 0x0100
000036cc: DUP1
000036cd: DUP5
000036ce: ADD
000036cf: CALLDATALOAD
000036d0: SWAP1
000036d1: DUP3
000036d2: ADD
000036d3: MSTORE
000036d4: PUSH2 0x0120
000036d7: DUP1
000036d8: DUP5
000036d9: ADD
000036da: CALLDATALOAD
000036db: SWAP1
000036dc: DUP3
000036dd: ADD
000036de: MSTORE
000036df: PUSH2 0x0140
000036e2: PUSH2 0x36ec
000036e5: DUP2
000036e6: DUP6
000036e7: ADD
000036e8: PUSH2 0x3627
000036eb: JUMP
000036ec: JUMPDEST
000036ed: SWAP1
000036ee: DUP3
000036ef: ADD
000036f0: MSTORE
000036f1: SWAP4
000036f2: SWAP3
000036f3: POP
000036f4: POP
000036f5: POP
000036f6: JUMP
000036f7: JUMPDEST
000036f8: PUSH1 0x00
000036fa: DUP1
000036fb: DUP4
000036fc: CALLDATALOAD
000036fd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1
0000371e: DUP5
0000371f: CALLDATASIZE
00003720: SUB
00003721: ADD
00003722: DUP2
00003723: SLT
00003724: PUSH2 0x372c
00003727: JUMPI
00003728: PUSH1 0x00
0000372a: DUP1
0000372b: REVERT
0000372c: JUMPDEST
0000372d: DUP4
0000372e: ADD
0000372f: DUP1
00003730: CALLDATALOAD
00003731: SWAP2
00003732: POP
00003733: PUSH8 0xffffffffffffffff
0000373c: DUP3
0000373d: GT
0000373e: ISZERO
0000373f: PUSH2 0x3747
00003742: JUMPI
00003743: PUSH1 0x00
00003745: DUP1
00003746: REVERT
00003747: JUMPDEST
00003748: PUSH1 0x20
0000374a: ADD
0000374b: SWAP2
0000374c: POP
0000374d: PUSH1 0x05
0000374f: DUP2
00003750: SWAP1
00003751: SHL
00003752: CALLDATASIZE
00003753: SUB
00003754: DUP3
00003755: SGT
00003756: ISZERO
00003757: PUSH2 0x375f
0000375a: JUMPI
0000375b: PUSH1 0x00
0000375d: DUP1
0000375e: REVERT
0000375f: JUMPDEST
00003760: SWAP3
00003761: POP
00003762: SWAP3
00003763: SWAP1
00003764: POP
00003765: JUMP
00003766: JUMPDEST
00003767: PUSH1 0x00
00003769: PUSH1 0x20
0000376b: DUP3
0000376c: DUP5
0000376d: SUB
0000376e: SLT
0000376f: ISZERO
00003770: PUSH2 0x3778
00003773: JUMPI
00003774: PUSH1 0x00
00003776: DUP1
00003777: REVERT
00003778: JUMPDEST
00003779: PUSH2 0x2cc2
0000377c: DUP3
0000377d: PUSH2 0x3565
00003780: JUMP
00003781: JUMPDEST
00003782: PUSH1 0x00
00003784: DUP1
00003785: DUP4
00003786: CALLDATALOAD
00003787: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1
000037a8: DUP5
000037a9: CALLDATASIZE
000037aa: SUB
000037ab: ADD
000037ac: DUP2
000037ad: SLT
000037ae: PUSH2 0x37b6
000037b1: JUMPI
000037b2: PUSH1 0x00
000037b4: DUP1
000037b5: REVERT
000037b6: JUMPDEST
000037b7: DUP4
000037b8: ADD
000037b9: DUP1
000037ba: CALLDATALOAD
000037bb: SWAP2
000037bc: POP
000037bd: PUSH8 0xffffffffffffffff
000037c6: DUP3
000037c7: GT
000037c8: ISZERO
000037c9: PUSH2 0x37d1
000037cc: JUMPI
000037cd: PUSH1 0x00
000037cf: DUP1
000037d0: REVERT
000037d1: JUMPDEST
000037d2: PUSH1 0x20
000037d4: ADD
000037d5: SWAP2
000037d6: POP
000037d7: CALLDATASIZE
000037d8: DUP2
000037d9: SWAP1
000037da: SUB
000037db: DUP3
000037dc: SGT
000037dd: ISZERO
000037de: PUSH2 0x375f
000037e1: JUMPI
000037e2: PUSH1 0x00
000037e4: DUP1
000037e5: REVERT
000037e6: JUMPDEST
000037e7: DUP7
000037e8: DUP2
000037e9: MSTORE
000037ea: DUP6
000037eb: PUSH1 0x20
000037ed: DUP3
000037ee: ADD
000037ef: MSTORE
000037f0: DUP5
000037f1: PUSH1 0x40
000037f3: DUP3
000037f4: ADD
000037f5: MSTORE
000037f6: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00003817: DUP5
00003818: PUSH1 0xc0
0000381a: SHL
0000381b: AND
0000381c: PUSH1 0x60
0000381e: DUP3
0000381f: ADD
00003820: MSTORE
00003821: DUP2
00003822: DUP4
00003823: PUSH1 0x68
00003825: DUP4
00003826: ADD
00003827: CALLDATACOPY
00003828: PUSH1 0x00
0000382a: SWAP2
0000382b: ADD
0000382c: PUSH1 0x68
0000382e: ADD
0000382f: SWAP1
00003830: DUP2
00003831: MSTORE
00003832: SWAP6
00003833: SWAP5
00003834: POP
00003835: POP
00003836: POP
00003837: POP
00003838: POP
00003839: JUMP
0000383a: JUMPDEST
0000383b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000385c: PUSH1 0x00
0000385e: MSTORE
0000385f: PUSH1 0x11
00003861: PUSH1 0x04
00003863: MSTORE
00003864: PUSH1 0x24
00003866: PUSH1 0x00
00003868: REVERT
00003869: JUMPDEST
0000386a: PUSH1 0x00
0000386c: DUP3
0000386d: DUP3
0000386e: LT
0000386f: ISZERO
00003870: PUSH2 0x387b
00003873: JUMPI
00003874: PUSH2 0x387b
00003877: PUSH2 0x383a
0000387a: JUMP
0000387b: JUMPDEST
0000387c: POP
0000387d: SUB
0000387e: SWAP1
0000387f: JUMP
00003880: JUMPDEST
00003881: PUSH1 0x01
00003883: DUP2
00003884: DUP2
00003885: JUMPDEST
00003886: DUP1
00003887: DUP6
00003888: GT
00003889: ISZERO
0000388a: PUSH2 0x38d9
0000388d: JUMPI
0000388e: DUP2
0000388f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000038b0: DIV
000038b1: DUP3
000038b2: GT
000038b3: ISZERO
000038b4: PUSH2 0x38bf
000038b7: JUMPI
000038b8: PUSH2 0x38bf
000038bb: PUSH2 0x383a
000038be: JUMP
000038bf: JUMPDEST
000038c0: DUP1
000038c1: DUP6
000038c2: AND
000038c3: ISZERO
000038c4: PUSH2 0x38cc
000038c7: JUMPI
000038c8: SWAP2
000038c9: DUP2
000038ca: MUL
000038cb: SWAP2
000038cc: JUMPDEST
000038cd: SWAP4
000038ce: DUP5
000038cf: SHR
000038d0: SWAP4
000038d1: SWAP1
000038d2: DUP1
000038d3: MUL
000038d4: SWAP1
000038d5: PUSH2 0x3885
000038d8: JUMP
000038d9: JUMPDEST
000038da: POP
000038db: SWAP3
000038dc: POP
000038dd: SWAP3
000038de: SWAP1
000038df: POP
000038e0: JUMP
000038e1: JUMPDEST
000038e2: PUSH1 0x00
000038e4: DUP3
000038e5: PUSH2 0x38f0
000038e8: JUMPI
000038e9: POP
000038ea: PUSH1 0x01
000038ec: PUSH2 0x0922
000038ef: JUMP
000038f0: JUMPDEST
000038f1: DUP2
000038f2: PUSH2 0x38fd
000038f5: JUMPI
000038f6: POP
000038f7: PUSH1 0x00
000038f9: PUSH2 0x0922
000038fc: JUMP
000038fd: JUMPDEST
000038fe: DUP2
000038ff: PUSH1 0x01
00003901: DUP2
00003902: EQ
00003903: PUSH2 0x3913
00003906: JUMPI
00003907: PUSH1 0x02
00003909: DUP2
0000390a: EQ
0000390b: PUSH2 0x391d
0000390e: JUMPI
0000390f: PUSH2 0x3939
00003912: JUMP
00003913: JUMPDEST
00003914: PUSH1 0x01
00003916: SWAP2
00003917: POP
00003918: POP
00003919: PUSH2 0x0922
0000391c: JUMP
0000391d: JUMPDEST
0000391e: PUSH1 0xff
00003920: DUP5
00003921: GT
00003922: ISZERO
00003923: PUSH2 0x392e
00003926: JUMPI
00003927: PUSH2 0x392e
0000392a: PUSH2 0x383a
0000392d: JUMP
0000392e: JUMPDEST
0000392f: POP
00003930: POP
00003931: PUSH1 0x01
00003933: DUP3
00003934: SHL
00003935: PUSH2 0x0922
00003938: JUMP
00003939: JUMPDEST
0000393a: POP
0000393b: PUSH1 0x20
0000393d: DUP4
0000393e: LT
0000393f: PUSH2 0x0133
00003942: DUP4
00003943: LT
00003944: AND
00003945: PUSH1 0x4e
00003947: DUP5
00003948: LT
00003949: PUSH1 0x0b
0000394b: DUP5
0000394c: LT
0000394d: AND
0000394e: OR
0000394f: ISZERO
00003950: PUSH2 0x395c
00003953: JUMPI
00003954: POP
00003955: DUP2
00003956: DUP2
00003957: EXP
00003958: PUSH2 0x0922
0000395b: JUMP
0000395c: JUMPDEST
0000395d: PUSH2 0x3966
00003960: DUP4
00003961: DUP4
00003962: PUSH2 0x3880
00003965: JUMP
00003966: JUMPDEST
00003967: DUP1
00003968: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003989: DIV
0000398a: DUP3
0000398b: GT
0000398c: ISZERO
0000398d: PUSH2 0x3998
00003990: JUMPI
00003991: PUSH2 0x3998
00003994: PUSH2 0x383a
00003997: JUMP
00003998: JUMPDEST
00003999: MUL
0000399a: SWAP4
0000399b: SWAP3
0000399c: POP
0000399d: POP
0000399e: POP
0000399f: JUMP
000039a0: JUMPDEST
000039a1: PUSH1 0x00
000039a3: PUSH2 0x2cc2
000039a6: DUP4
000039a7: DUP4
000039a8: PUSH2 0x38e1
000039ab: JUMP
000039ac: JUMPDEST
000039ad: PUSH1 0x00
000039af: JUMPDEST
000039b0: DUP4
000039b1: DUP2
000039b2: LT
000039b3: ISZERO
000039b4: PUSH2 0x39c7
000039b7: JUMPI
000039b8: DUP2
000039b9: DUP2
000039ba: ADD
000039bb: MLOAD
000039bc: DUP4
000039bd: DUP3
000039be: ADD
000039bf: MSTORE
000039c0: PUSH1 0x20
000039c2: ADD
000039c3: PUSH2 0x39af
000039c6: JUMP
000039c7: JUMPDEST
000039c8: DUP4
000039c9: DUP2
000039ca: GT
000039cb: ISZERO
000039cc: PUSH2 0x243e
000039cf: JUMPI
000039d0: POP
000039d1: POP
000039d2: PUSH1 0x00
000039d4: SWAP2
000039d5: ADD
000039d6: MSTORE
000039d7: JUMP
000039d8: JUMPDEST
000039d9: PUSH1 0x00
000039db: DUP2
000039dc: MLOAD
000039dd: DUP1
000039de: DUP5
000039df: MSTORE
000039e0: PUSH2 0x39f0
000039e3: DUP2
000039e4: PUSH1 0x20
000039e6: DUP7
000039e7: ADD
000039e8: PUSH1 0x20
000039ea: DUP7
000039eb: ADD
000039ec: PUSH2 0x39ac
000039ef: JUMP
000039f0: JUMPDEST
000039f1: PUSH1 0x1f
000039f3: ADD
000039f4: PUSH1 0x1f
000039f6: NOT
000039f7: AND
000039f8: SWAP3
000039f9: SWAP1
000039fa: SWAP3
000039fb: ADD
000039fc: PUSH1 0x20
000039fe: ADD
000039ff: SWAP3
00003a00: SWAP2
00003a01: POP
00003a02: POP
00003a03: JUMP
00003a04: JUMPDEST
00003a05: PUSH8 0xffffffffffffffff
00003a0e: DUP4
00003a0f: AND
00003a10: DUP2
00003a11: MSTORE
00003a12: PUSH1 0x40
00003a14: PUSH1 0x20
00003a16: DUP3
00003a17: ADD
00003a18: MSTORE
00003a19: PUSH1 0x00
00003a1b: PUSH2 0x315d
00003a1e: PUSH1 0x40
00003a20: DUP4
00003a21: ADD
00003a22: DUP5
00003a23: PUSH2 0x39d8
00003a26: JUMP
00003a27: JUMPDEST
00003a28: PUSH1 0x00
00003a2a: DUP3
00003a2b: NOT
00003a2c: DUP3
00003a2d: GT
00003a2e: ISZERO
00003a2f: PUSH2 0x3a3a
00003a32: JUMPI
00003a33: PUSH2 0x3a3a
00003a36: PUSH2 0x383a
00003a39: JUMP
00003a3a: JUMPDEST
00003a3b: POP
00003a3c: ADD
00003a3d: SWAP1
00003a3e: JUMP
00003a3f: JUMPDEST
00003a40: PUSH1 0x00
00003a42: PUSH1 0x20
00003a44: DUP3
00003a45: DUP5
00003a46: SUB
00003a47: SLT
00003a48: ISZERO
00003a49: PUSH2 0x3a51
00003a4c: JUMPI
00003a4d: PUSH1 0x00
00003a4f: DUP1
00003a50: REVERT
00003a51: JUMPDEST
00003a52: POP
00003a53: MLOAD
00003a54: SWAP2
00003a55: SWAP1
00003a56: POP
00003a57: JUMP
00003a58: JUMPDEST
00003a59: PUSH1 0x00
00003a5b: DUP3
00003a5c: MLOAD
00003a5d: PUSH2 0x3a6a
00003a60: DUP2
00003a61: DUP5
00003a62: PUSH1 0x20
00003a64: DUP8
00003a65: ADD
00003a66: PUSH2 0x39ac
00003a69: JUMP
00003a6a: JUMPDEST
00003a6b: SWAP2
00003a6c: SWAP1
00003a6d: SWAP2
00003a6e: ADD
00003a6f: SWAP3
00003a70: SWAP2
00003a71: POP
00003a72: POP
00003a73: JUMP
00003a74: JUMPDEST
00003a75: PUSH1 0x00
00003a77: DUP2
00003a78: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003a99: DIV
00003a9a: DUP4
00003a9b: GT
00003a9c: DUP3
00003a9d: ISZERO
00003a9e: ISZERO
00003a9f: AND
00003aa0: ISZERO
00003aa1: PUSH2 0x3aac
00003aa4: JUMPI
00003aa5: PUSH2 0x3aac
00003aa8: PUSH2 0x383a
00003aab: JUMP
00003aac: JUMPDEST
00003aad: POP
00003aae: MUL
00003aaf: SWAP1
00003ab0: JUMP
00003ab1: JUMPDEST
00003ab2: DUP2
00003ab3: DUP4
00003ab4: DUP3
00003ab5: CALLDATACOPY
00003ab6: PUSH1 0x00
00003ab8: SWAP2
00003ab9: ADD
00003aba: SWAP1
00003abb: DUP2
00003abc: MSTORE
00003abd: SWAP2
00003abe: SWAP1
00003abf: POP
00003ac0: JUMP
00003ac1: JUMPDEST
00003ac2: PUSH32 0x416363657373436f6e74726f6c3a206163636f756e7420000000000000000000
00003ae3: DUP2
00003ae4: MSTORE
00003ae5: PUSH1 0x00
00003ae7: DUP4
00003ae8: MLOAD
00003ae9: PUSH2 0x3af9
00003aec: DUP2
00003aed: PUSH1 0x17
00003aef: DUP6
00003af0: ADD
00003af1: PUSH1 0x20
00003af3: DUP9
00003af4: ADD
00003af5: PUSH2 0x39ac
00003af8: JUMP
00003af9: JUMPDEST
00003afa: PUSH32 0x206973206d697373696e6720726f6c6520000000000000000000000000000000
00003b1b: PUSH1 0x17
00003b1d: SWAP2
00003b1e: DUP5
00003b1f: ADD
00003b20: SWAP2
00003b21: DUP3
00003b22: ADD
00003b23: MSTORE
00003b24: DUP4
00003b25: MLOAD
00003b26: PUSH2 0x3b36
00003b29: DUP2
00003b2a: PUSH1 0x28
00003b2c: DUP5
00003b2d: ADD
00003b2e: PUSH1 0x20
00003b30: DUP9
00003b31: ADD
00003b32: PUSH2 0x39ac
00003b35: JUMP
00003b36: JUMPDEST
00003b37: ADD
00003b38: PUSH1 0x28
00003b3a: ADD
00003b3b: SWAP5
00003b3c: SWAP4
00003b3d: POP
00003b3e: POP
00003b3f: POP
00003b40: POP
00003b41: JUMP
00003b42: JUMPDEST
00003b43: PUSH1 0x20
00003b45: DUP2
00003b46: MSTORE
00003b47: PUSH1 0x00
00003b49: PUSH2 0x2cc2
00003b4c: PUSH1 0x20
00003b4e: DUP4
00003b4f: ADD
00003b50: DUP5
00003b51: PUSH2 0x39d8
00003b54: JUMP
00003b55: JUMPDEST
00003b56: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000
00003b77: DUP4
00003b78: AND
00003b79: DUP2
00003b7a: MSTORE
00003b7b: PUSH1 0x00
00003b7d: DUP3
00003b7e: MLOAD
00003b7f: PUSH2 0x3b8f
00003b82: DUP2
00003b83: PUSH1 0x01
00003b85: DUP6
00003b86: ADD
00003b87: PUSH1 0x20
00003b89: DUP8
00003b8a: ADD
00003b8b: PUSH2 0x39ac
00003b8e: JUMP
00003b8f: JUMPDEST
00003b90: SWAP2
00003b91: SWAP1
00003b92: SWAP2
00003b93: ADD
00003b94: PUSH1 0x01
00003b96: ADD
00003b97: SWAP4
00003b98: SWAP3
00003b99: POP
00003b9a: POP
00003b9b: POP
00003b9c: JUMP
00003b9d: JUMPDEST
00003b9e: PUSH1 0x00
00003ba0: DUP3
00003ba1: PUSH2 0x3bd3
00003ba4: JUMPI
00003ba5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003bc6: PUSH1 0x00
00003bc8: MSTORE
00003bc9: PUSH1 0x12
00003bcb: PUSH1 0x04
00003bcd: MSTORE
00003bce: PUSH1 0x24
00003bd0: PUSH1 0x00
00003bd2: REVERT
00003bd3: JUMPDEST
00003bd4: POP
00003bd5: DIV
00003bd6: SWAP1
00003bd7: JUMP
00003bd8: JUMPDEST
00003bd9: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003bfa: PUSH1 0x00
00003bfc: MSTORE
00003bfd: PUSH1 0x32
00003bff: PUSH1 0x04
00003c01: MSTORE
00003c02: PUSH1 0x24
00003c04: PUSH1 0x00
00003c06: REVERT
00003c07: JUMPDEST
00003c08: PUSH1 0x00
00003c0a: DUP2
00003c0b: PUSH2 0x3c16
00003c0e: JUMPI
00003c0f: PUSH2 0x3c16
00003c12: PUSH2 0x383a
00003c15: JUMP
00003c16: JUMPDEST
00003c17: POP
00003c18: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003c39: ADD
00003c3a: SWAP1
00003c3b: JUMP
00003c3c: INVALID
00003c3d: COINBASE
00003c3e: PUSH5 0x6472657373
00003c44: GASPRICE
00003c45: KECCAK256
00003c46: PUSH13 0x6f772d6c6576656c2064656c65
00003c54: PUSH8 0x6174652063616c6c
00003c5d: KECCAK256
00003c5e: PUSH7 0x61696c6564a264
00003c66: PUSH10 0x706673582212205d4e59
00003c71: SWAP14
00003c72: UNKNOWN(0xFB)
00003c73: UNKNOWN(0xEF)
00003c74: GT
00003c75: INVALID
00003c76: SHR
00003c77: UNKNOWN(0x28)
00003c78: COINBASE
00003c79: CALLER
00003c7a: CALLDATACOPY
00003c7b: UNKNOWN(0xD7)
00003c7c: UNKNOWN(0xEE)
00003c7d: UNKNOWN(0xCC)
00003c7e: SWAP3
00003c7f: UNKNOWN(0xE3)
00003c80: PUSH8 0xcb4f298314ef8edd
00003c89: PUSH9 0x9f807fe464736f6c63
00003c93: NUMBER
00003c94: STOP
00003c95: ADDMOD
00003c96: MULMOD
00003c97: STOP
00003c98: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0xcb80203ce7b9e7d4e425000adb2667a1e8a5b92e14741beae10c90a7a53fa16d
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0xcb80203ce7b9e7d4e425000adb2667a1e8a5b92e14741beae10c90a7a53fa16d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xe9f2838e",
            "selector": "0xe9f2838e",
            "calldata_variants": [
                "0xe9f2838e",
                "0xe9f2838e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4a97d4b",
            "selector": "0xf4a97d4b",
            "calldata_variants": [
                "0xf4a97d4b",
                "0xf4a97d4b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff50abdc",
            "selector": "0xff50abdc",
            "calldata_variants": [
                "0xff50abdc",
                "0xff50abdc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe465eb9e",
            "selector": "0xe465eb9e",
            "calldata_variants": [
                "0xe465eb9e",
                "0xe465eb9e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4c4be58",
            "selector": "0xe4c4be58",
            "calldata_variants": [
                "0xe4c4be58",
                "0xe4c4be580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd68d9d4e",
            "selector": "0xd68d9d4e",
            "calldata_variants": [
                "0xd68d9d4e",
                "0xd68d9d4e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdb0e2cc6",
            "selector": "0xdb0e2cc6",
            "calldata_variants": [
                "0xdb0e2cc6",
                "0xdb0e2cc60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 12152,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high upgradeability codex Unprotected V3 reinitializer lets attacker become admin, swap chain-state verifier, and forge withdrawals 85 no
view
evidence_json
{
    "evidence": "`initializerV3` is public and calls `initializerV1`, which grants admin roles and sets `_fuelChainState` from attacker input. `relayMessage` relies on `_fuelChainState.finalized(...)`, and `_executeMessage` performs the ETH transfer.",
    "locations": [
        "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56",
        "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57",
        "contracts/contracts/fuelchain/FuelMessagePortal.sol:123",
        "contracts/contracts/fuelchain/FuelMessagePortal.sol:130",
        "contracts/contracts/fuelchain/FuelMessagePortal.sol:133",
        "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:129",
        "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:171",
        "contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:181"
    ],
    "recommendation": "Restrict `initializerV3`/`reinitializeV3` to `onlyRole(DEFAULT_ADMIN_ROLE)` and avoid re-running `initializerV1` on upgrades; use `upgradeToAndCall` to atomically run the initializer so no public window exists.",
    "exploit_scenario": "1) Proxy is upgraded to FuelMessagePortalV3 but the admin does not call `initializerV3`/`reinitializeV3` in the same tx (current version < 3). 2) Attacker calls `initializerV3(attackerFuelChainState, _limitAmount)`; this re-runs `initializerV1`, granting the attacker `DEFAULT_ADMIN_ROLE` and setting `_fuelChainState` to their malicious contract. 3) Attacker\u2019s malicious FuelChainState returns `true` for any `finalized(...)` call, so `relayMessage` accepts attacker-chosen headers. 4) Attacker crafts a fake `rootBlockHeader`/`blockHeader` with `height=1`, `outputMessagesCount=1`, and empty proofs (key=0) so `verifyBinaryTree` passes for an attacker-chosen `messageId`. 5) Calling `relayMessage` executes `_executeMessage`, which transfers `withdrawnAmount` ETH to the attacker. Profit: up to the entire `totalDeposited`/ETH balance locked in the portal."
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x068679c548f37feef995e9dd4f8327e42815f05269456ecc26bdf3b2d4d0a1d2
call_targets: 0x2c4df10a82cf077122ed99573aca6dacd76f2e67
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x068679c548f37feef995e9dd4f8327e42815f05269456ecc26bdf3b2d4d0a1d2",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2c4df10a82cf077122ed99573aca6dacd76f2e67"
    ],
    "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": "0xe9f2838e",
            "selector": "0xe9f2838e",
            "calldata_variants": [
                "0xe9f2838e",
                "0xe9f2838e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4a97d4b",
            "selector": "0xf4a97d4b",
            "calldata_variants": [
                "0xf4a97d4b",
                "0xf4a97d4b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff50abdc",
            "selector": "0xff50abdc",
            "calldata_variants": [
                "0xff50abdc",
                "0xff50abdc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe465eb9e",
            "selector": "0xe465eb9e",
            "calldata_variants": [
                "0xe465eb9e",
                "0xe465eb9e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4c4be58",
            "selector": "0xe4c4be58",
            "calldata_variants": [
                "0xe4c4be58",
                "0xe4c4be580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd68d9d4e",
            "selector": "0xd68d9d4e",
            "calldata_variants": [
                "0xd68d9d4e",
                "0xd68d9d4e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdb0e2cc6",
            "selector": "0xdb0e2cc6",
            "calldata_variants": [
                "0xdb0e2cc6",
                "0xdb0e2cc60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8025,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8159,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x068679c548f37feef995e9dd4f8327e42815f05269456ecc26bdf3b2d4d0a1d2
call_targets: 0x2c4df10a82cf077122ed99573aca6dacd76f2e67
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x068679c548f37feef995e9dd4f8327e42815f05269456ecc26bdf3b2d4d0a1d2",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x2c4df10a82cf077122ed99573aca6dacd76f2e67"
    ],
    "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": "0xe9f2838e",
            "selector": "0xe9f2838e",
            "calldata_variants": [
                "0xe9f2838e",
                "0xe9f2838e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4a97d4b",
            "selector": "0xf4a97d4b",
            "calldata_variants": [
                "0xf4a97d4b",
                "0xf4a97d4b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff50abdc",
            "selector": "0xff50abdc",
            "calldata_variants": [
                "0xff50abdc",
                "0xff50abdc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe465eb9e",
            "selector": "0xe465eb9e",
            "calldata_variants": [
                "0xe465eb9e",
                "0xe465eb9e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4c4be58",
            "selector": "0xe4c4be58",
            "calldata_variants": [
                "0xe4c4be58",
                "0xe4c4be580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd68d9d4e",
            "selector": "0xd68d9d4e",
            "calldata_variants": [
                "0xd68d9d4e",
                "0xd68d9d4e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdb0e2cc6",
            "selector": "0xdb0e2cc6",
            "calldata_variants": [
                "0xdb0e2cc6",
                "0xdb0e2cc60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8025,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8159,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}