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

Analysis Run

e9597aef-e9cc-49ba-9d81-2312231691b5

complete
Chain ID
1
Address
Block Number
Created
Sat, Dec 27, 2025 9:40 PM
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 CALL target/value 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
30204 report.consolidate complete 1 / 1 3 months ago
93823 artifact.fetch complete 1 / 3 1 week ago
93824 tool.cast_disasm complete 1 / 3 1 week ago
93825 analysis.bundle complete 1 / 3 1 week ago
93826 capability.graph complete 1 / 3 1 week ago
93827 detector.run complete 1 / 3 1 week ago
93828 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 1 upgradeability issue: an unprotected initializer can allow hostile initialization if deployment is not atomic.
View stderr
[codex:1126409] OpenAI Codex v0.77.0 (research preview)
[codex:1126409] --------
[codex:1126409] workdir: /tmp/codex-multi-x2ul4g9t
[codex:1126409] model: gpt-5.2-codex
[codex:1126409] provider: openai
[codex:1126409] approval: never
[codex:1126409] sandbox: read-only
[codex:1126409] reasoning effort: xhigh
[codex:1126409] reasoning summaries: auto
[codex:1126409] session id: 019b61bc-8032-7741-a477-e7db8b9922d8
[codex:1126409] --------
[codex:1126409] user
[codex:1126409] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1126409] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1126409] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1126409] 
[codex:1126409] Scope rules:
[codex:1126409] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1126409] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1126409] 
[codex:1126409] Output MUST be valid JSON matching the provided schema.
[codex:1126409] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1126409] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1126409] 
[codex:1126409] Output constraints (IMPORTANT):
[codex:1126409] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1126409] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1126409] mcp startup: no servers
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Reading AUDIT_BUNDLE.txt**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc ls in /tmp/codex-multi-x2ul4g9t succeeded in 5ms:
[codex:1126409] AUDIT_BUNDLE.txt
[codex:1126409] codex-output-schema.json
[codex:1126409] contracts
[codex:1126409] exec
[codex:1126409] /bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-multi-x2ul4g9t succeeded in 5ms:
[codex:1126409] 3424 AUDIT_BUNDLE.txt
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 6ms:
[codex:1126409] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1126409] 
[codex:1126409] ================================================================================
[codex:1126409] FILE: contracts/contracts/tokenbridge/ethereum/L1ArbitrumMessenger.sol
[codex:1126409] ================================================================================
[codex:1126409] // SPDX-License-Identifier: Apache-2.0
[codex:1126409] 
[codex:1126409] /*
[codex:1126409]  * Copyright 2020, Offchain Labs, Inc.
[codex:1126409]  *
[codex:1126409]  * Licensed under the Apache License, Version 2.0 (the "License");
[codex:1126409]  * you may not use this file except in compliance with the License.
[codex:1126409]  * You may obtain a copy of the License at
[codex:1126409]  *
[codex:1126409]  *    http://www.apache.org/licenses/LICENSE-2.0
[codex:1126409]  *
[codex:1126409]  * Unless required by applicable law or agreed to in writing, software
[codex:1126409]  * distributed under the License is distributed on an "AS IS" BASIS,
[codex:1126409]  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:1126409]  * See the License for the specific language governing permissions and
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Planning full file inspection**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 6ms:
[codex:1126409]         uint256 l2CallValue,
[codex:1126409]         uint256 maxSubmissionCost,
[codex:1126409]         address excessFeeRefundAddress,
[codex:1126409]         address callValueRefundAddress,
[codex:1126409]         uint256 gasLimit,
[codex:1126409]         uint256 maxFeePerGas,
[codex:1126409]         uint256 tokenTotalFeeAmount,
[codex:1126409]         bytes calldata data
[codex:1126409]     ) external returns (uint256);
[codex:1126409] }
[codex:1126409] 
[codex:1126409] ================================================================================
[codex:1126409] FILE: contracts/contracts/tokenbridge/ethereum/gateway/IL1ArbitrumGateway.sol
[codex:1126409] ================================================================================
[codex:1126409] // SPDX-License-Identifier: Apache-2.0
[codex:1126409] 
[codex:1126409] /*
[codex:1126409]  * Copyright 2020, Offchain Labs, Inc.
[codex:1126409]  *
[codex:1126409]  * Licensed under the Apache License, Version 2.0 (the "License");
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Proceeding with next steps**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 6ms:
[codex:1126409]         address _newDestination,
[codex:1126409]         bytes memory _newData
[codex:1126409]     ) internal virtual {
[codex:1126409]         bytes32 withdrawData = encodeWithdrawal(_exitNum, _initialDestination);
[codex:1126409]         redirectedExits[withdrawData] = ExitData(true, _newDestination, _newData);
[codex:1126409]     }
[codex:1126409] 
[codex:1126409]     function encodeWithdrawal(uint256 _exitNum, address _initialDestination)
[codex:1126409]         public
[codex:1126409]         pure
[codex:1126409]         returns (bytes32)
[codex:1126409]     {
[codex:1126409]         // here we assume the L2 bridge gives a unique exitNum to each exit
[codex:1126409]         return keccak256(abi.encode(_exitNum, _initialDestination));
[codex:1126409]     }
[codex:1126409] }
[codex:1126409] 
[codex:1126409] ================================================================================
[codex:1126409] FILE: contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumGateway.sol
[codex:1126409] ================================================================================
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Continuing process**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 5ms:
[codex:1126409]      * @return res abi encoded inbox sequence number
[codex:1126409]      */
[codex:1126409]     function _initiateDeposit(
[codex:1126409]         address _refundTo,
[codex:1126409]         address _from,
[codex:1126409]         uint256 _amount,
[codex:1126409]         uint256 _maxGas,
[codex:1126409]         uint256 _gasPriceBid,
[codex:1126409]         uint256 _maxSubmissionCost,
[codex:1126409]         uint256, // tokenTotalFeeAmount - amount of fees to be deposited in native token to cover for retryable ticket cost (used only in ERC20-based rollups)
[codex:1126409]         bytes memory _data
[codex:1126409]     ) internal virtual returns (uint256) {
[codex:1126409]         return
[codex:1126409]             createOutboundTxCustomRefund(
[codex:1126409]                 _refundTo,
[codex:1126409]                 _from,
[codex:1126409]                 _amount,
[codex:1126409]                 _maxGas,
[codex:1126409]                 _gasPriceBid,
[codex:1126409]                 _maxSubmissionCost,
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Continuing exploration**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 6ms:
[codex:1126409]      * to learn more about how these ids are created.
[codex:1126409]      *
[codex:1126409]      * This function call must use less than 30 000 gas.
[codex:1126409]      */
[codex:1126409]     function supportsInterface(bytes4 interfaceId) external view returns (bool);
[codex:1126409] }
[codex:1126409] 
[codex:1126409] ================================================================================
[codex:1126409] FILE: contracts/contracts/tokenbridge/libraries/IERC20Bridge.sol
[codex:1126409] ================================================================================
[codex:1126409] // SPDX-License-Identifier: Apache-2.0
[codex:1126409] 
[codex:1126409] // solhint-disable-next-line compiler-version
[codex:1126409] pragma solidity >=0.6.9 <0.9.0;
[codex:1126409] 
[codex:1126409] interface IERC20Bridge {
[codex:1126409]     /**
[codex:1126409]      * @dev token that is escrowed in bridge on L1 side and minted on L2 as native currency. Also fees are paid in this token.
[codex:1126409]      */
[codex:1126409]     function nativeToken() external view returns (address);
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Evaluating third-party contract handling**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '1600,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 5ms:
[codex:1126409] ================================================================================
[codex:1126409] // Copyright 2021-2022, Offchain Labs, Inc.
[codex:1126409] // For license information, see https://github.com/nitro/blob/master/LICENSE
[codex:1126409] // SPDX-License-Identifier: BUSL-1.1
[codex:1126409] 
[codex:1126409] // solhint-disable-next-line compiler-version
[codex:1126409] pragma solidity >=0.6.9 <0.9.0;
[codex:1126409] 
[codex:1126409] import "./IOwnable.sol";
[codex:1126409] 
[codex:1126409] interface IBridge {
[codex:1126409]     event MessageDelivered(
[codex:1126409]         uint256 indexed messageIndex,
[codex:1126409]         bytes32 indexed beforeInboxAcc,
[codex:1126409]         address inbox,
[codex:1126409]         uint8 kind,
[codex:1126409]         address sender,
[codex:1126409]         bytes32 messageDataHash,
[codex:1126409]         uint256 baseFeeL1,
[codex:1126409]         uint64 timestamp
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Continuing the process**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '2000,2400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 5ms:
[codex:1126409]     function executeTransaction(
[codex:1126409]         bytes32[] calldata proof,
[codex:1126409]         uint256 index,
[codex:1126409]         address l2Sender,
[codex:1126409]         address to,
[codex:1126409]         uint256 l2Block,
[codex:1126409]         uint256 l1Block,
[codex:1126409]         uint256 l2Timestamp,
[codex:1126409]         uint256 value,
[codex:1126409]         bytes calldata data
[codex:1126409]     ) external;
[codex:1126409] 
[codex:1126409]     /**
[codex:1126409]      *  @dev function used to simulate the result of a particular function call from the outbox
[codex:1126409]      *       it is useful for things such as gas estimates. This function includes all costs except for
[codex:1126409]      *       proof validation (which can be considered offchain as a somewhat of a fixed cost - it's
[codex:1126409]      *       not really a fixed cost, but can be treated as so with a fixed overhead for gas estimation).
[codex:1126409]      *       We can't include the cost of proof validation since this is intended to be used to simulate txs
[codex:1126409]      *       that are included in yet-to-be confirmed merkle roots. The simulation entrypoint could instead pretend
[codex:1126409]      *       to confirm a pending merkle root, but that would be less practical for integrating with tooling.
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Reviewing full AUDIT_BUNDLE.txt**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '2400,2800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 5ms:
[codex:1126409]     }
[codex:1126409] 
[codex:1126409]     /**
[codex:1126409]      * @dev See {IERC20-allowance}.
[codex:1126409]      */
[codex:1126409]     function allowance(address owner, address spender) public view virtual override returns (uint256) {
[codex:1126409]         return _allowances[owner][spender];
[codex:1126409]     }
[codex:1126409] 
[codex:1126409]     /**
[codex:1126409]      * @dev See {IERC20-approve}.
[codex:1126409]      *
[codex:1126409]      * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
[codex:1126409]      * `transferFrom`. This is semantically equivalent to an infinite approval.
[codex:1126409]      *
[codex:1126409]      * Requirements:
[codex:1126409]      *
[codex:1126409]      * - `spender` cannot be the zero address.
[codex:1126409]      */
[codex:1126409]     function approve(address spender, uint256 amount) public virtual override returns (bool) {
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Continuing near end**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '2800,3200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 5ms:
[codex:1126409] /**
[codex:1126409]  * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
[codex:1126409]  * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
[codex:1126409]  *
[codex:1126409]  * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
[codex:1126409]  * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't
[codex:1126409]  * need to send a transaction, and thus is not required to hold Ether at all.
[codex:1126409]  */
[codex:1126409] interface IERC20Permit {
[codex:1126409]     /**
[codex:1126409]      * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,
[codex:1126409]      * given ``owner``'s signed approval.
[codex:1126409]      *
[codex:1126409]      * IMPORTANT: The same issues {IERC20-approve} has related to transaction
[codex:1126409]      * ordering also apply here.
[codex:1126409]      *
[codex:1126409]      * Emits an {Approval} event.
[codex:1126409]      *
[codex:1126409]      * Requirements:
[codex:1126409]      *
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Continuing to review final lines**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "sed -n '3200,3424p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-x2ul4g9t succeeded in 5ms:
[codex:1126409]         string memory errorMessage
[codex:1126409]     ) internal pure returns (bytes memory) {
[codex:1126409]         if (success) {
[codex:1126409]             return returndata;
[codex:1126409]         } else {
[codex:1126409]             _revert(returndata, errorMessage);
[codex:1126409]         }
[codex:1126409]     }
[codex:1126409] 
[codex:1126409]     function _revert(bytes memory returndata, string memory errorMessage) private pure {
[codex:1126409]         // Look for revert reason and bubble it up if present
[codex:1126409]         if (returndata.length > 0) {
[codex:1126409]             // The easiest way to bubble the revert reason is using memory via assembly
[codex:1126409]             /// @solidity memory-safe-assembly
[codex:1126409]             assembly {
[codex:1126409]                 let returndata_size := mload(returndata)
[codex:1126409]                 revert(add(32, returndata), returndata_size)
[codex:1126409]             }
[codex:1126409]         } else {
[codex:1126409]             revert(errorMessage);
[codex:1126409] 
[codex:1126409] 
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Reviewing first-party contract vulnerabilities**
[codex:1126409] thinking
[codex:1126409] **Identifying upgrade and access control nuances**
[codex:1126409] 
[codex:1126409] I’m noting potential risks around unprotected initialize functions in proxy setups that could allow front-run initialization if not done atomically, plus quirks in whitelist disabling that prevent re-enabling. These aren’t direct exploits but represent deployment-sensitive conditions worth mentioning.
[codex:1126409] thinking
[codex:1126409] **Evaluating router call logic and reentrancy setup**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc 'rg -n "delegatecall" contracts/contracts' in /tmp/codex-multi-x2ul4g9t exited 1 in 10ms:
[codex:1126409] 
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Searching for `.call` usages**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "rg -n \"\\.call|call\\{\" contracts/contracts" in /tmp/codex-multi-x2ul4g9t exited 1 in 9ms:
[codex:1126409] 
[codex:1126409] 
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Evaluating security and initialization risks**
[codex:1126409] 
[codex:1126409] I’m carefully reviewing potential issues around reentrancy, access control, upgradeability, and external calls in the Arbitrum token bridge code. The main takeaway is the publicly callable `initialize` without admin restriction poses a real risk if not properly set during deployment. Other findings are mainly user or router trust assumptions and subtle behavior with fee payments and token balances, but not clear vulnerabilities. Overall, I lean toward reporting the unprotected initializer as a low-to-medium severity upgradeability concern while marking no critical runtime vulnerabilities.
[codex:1126409] thinking
[codex:1126409] **Detailing initializer vulnerability with impact**
[codex:1126409] 
[codex:1126409] I’m outlining how the public, unrestricted `initialize` function lets an attacker on a freshly deployed proxy set critical addresses to malicious contracts, enabling escrow theft or denial of service. This issue affects both L1ERC20Gateway and L1OrbitERC20Gateway, posing a severe risk if initialization is missed or left unprotected at deployment. The finding will include exact source locations and emphasize its conditional but high-impact nature.
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "nl -ba contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol | sed -n '70,150p'" in /tmp/codex-multi-x2ul4g9t succeeded in 6ms:
[codex:1126409]     70	                _to,
[codex:1126409]     71	                _amount,
[codex:1126409]     72	                _maxGas,
[codex:1126409]     73	                _gasPriceBid,
[codex:1126409]     74	                _data
[codex:1126409]     75	            );
[codex:1126409]     76	    }
[codex:1126409]     77	
[codex:1126409]     78	    function finalizeInboundTransfer(
[codex:1126409]     79	        address _token,
[codex:1126409]     80	        address _from,
[codex:1126409]     81	        address _to,
[codex:1126409]     82	        uint256 _amount,
[codex:1126409]     83	        bytes calldata _data
[codex:1126409]     84	    ) public payable override nonReentrant {
[codex:1126409]     85	        // the superclass checks onlyCounterpartGateway
[codex:1126409]     86	        super.finalizeInboundTransfer(_token, _from, _to, _amount, _data);
[codex:1126409]     87	    }
[codex:1126409]     88	
[codex:1126409]     89	    function initialize(
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Evaluating unprotected initializer risks**
[codex:1126409] exec
[codex:1126409] /bin/bash -lc "nl -ba contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumGateway.sol | sed -n '50,120p'" in /tmp/codex-multi-x2ul4g9t succeeded in 7ms:
[codex:1126409]     50	        address indexed _to,
[codex:1126409]     51	        uint256 indexed _sequenceNumber,
[codex:1126409]     52	        uint256 _amount
[codex:1126409]     53	    );
[codex:1126409]     54	
[codex:1126409]     55	    event WithdrawalFinalized(
[codex:1126409]     56	        address l1Token,
[codex:1126409]     57	        address indexed _from,
[codex:1126409]     58	        address indexed _to,
[codex:1126409]     59	        uint256 indexed _exitNum,
[codex:1126409]     60	        uint256 _amount
[codex:1126409]     61	    );
[codex:1126409]     62	
[codex:1126409]     63	    modifier onlyCounterpartGateway() override {
[codex:1126409]     64	        address _inbox = inbox;
[codex:1126409]     65	
[codex:1126409]     66	        // a message coming from the counterpart gateway was executed by the bridge
[codex:1126409]     67	        address bridge = address(super.getBridge(_inbox));
[codex:1126409]     68	        require(msg.sender == bridge, "NOT_FROM_BRIDGE");
[codex:1126409]     69	
[codex:1126409] 
[codex:1126409] thinking
[codex:1126409] **Evaluating unprotected initializer risk**
[codex:1126409] codex
[codex:1126409] {"no_findings":false,"summary":"Found 1 upgradeability issue: an unprotected initializer can allow hostile initialization if deployment is not atomic.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected initialize allows hostile setup of critical bridge addresses","exploit_scenario":"If the proxy/implementation is deployed without calling initialize in the same transaction, any external account can call initialize first and set the inbox/router/counterpartGateway to attacker-controlled contracts. A malicious inbox/bridge/outbox can then satisfy onlyCounterpartGateway checks and call finalizeInboundTransfer to release escrowed tokens to the attacker or permanently block legitimate bridging.","recommendation":"Protect initialization with an access-control guard or OpenZeppelin's initializer/onlyProxy pattern, and ensure proxies are initialized atomically on deployment (e.g., via constructor calldata). Consider adding an explicit admin role check to initialize.","evidence":"L1ERC20Gateway.initialize is public and lacks any access control beyond a single-call guard in _initialize; it sets critical addresses (counterpart, router, inbox).","locations":["contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol:89"]}]}
[codex:1126409] tokens used
[codex:1126409] 80,999
[codex:1126409] {"no_findings":false,"summary":"Found 1 upgradeability issue: an unprotected initializer can allow hostile initialization if deployment is not atomic.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected initialize allows hostile setup of critical bridge addresses","exploit_scenario":"If the proxy/implementation is deployed without calling initialize in the same transaction, any external account can call initialize first and set the inbox/router/counterpartGateway to attacker-controlled contracts. A malicious inbox/bridge/outbox can then satisfy onlyCounterpartGateway checks and call finalizeInboundTransfer to release escrowed tokens to the attacker or permanently block legitimate bridging.","recommendation":"Protect initialization with an access-control guard or OpenZeppelin's initializer/onlyProxy pattern, and ensure proxies are initialized atomically on deployment (e.g., via constructor calldata). Consider adding an explicit admin role check to initialize.","evidence":"L1ERC20Gateway.initialize is public and lacks any access control beyond a single-call guard in _initialize; it sets critical addresses (counterpart, router, inbox).","locations":["contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol:89"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-27T21:40:33.638588+00:00",
        "returncode": 0
    },
    "summary": "Found 1 upgradeability issue: an unprotected initializer can allow hostile initialization if deployment is not atomic.",
    "raw_final": {
        "summary": "Found 1 upgradeability issue: an unprotected initializer can allow hostile initialization if deployment is not atomic.",
        "findings": [
            {
                "title": "Unprotected initialize allows hostile setup of critical bridge addresses",
                "category": "upgradeability",
                "evidence": "L1ERC20Gateway.initialize is public and lacks any access control beyond a single-call guard in _initialize; it sets critical addresses (counterpart, router, inbox).",
                "severity": "high",
                "locations": [
                    "contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol:89"
                ],
                "recommendation": "Protect initialization with an access-control guard or OpenZeppelin's initializer/onlyProxy pattern, and ensure proxies are initialized atomically on deployment (e.g., via constructor calldata). Consider adding an explicit admin role check to initialize.",
                "exploit_scenario": "If the proxy/implementation is deployed without calling initialize in the same transaction, any external account can call initialize first and set the inbox/router/counterpartGateway to attacker-controlled contracts. A malicious inbox/bridge/outbox can then satisfy onlyCounterpartGateway checks and call finalizeInboundTransfer to release escrowed tokens to the attacker or permanently block legitimate bridging."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
11
EXT*/BALANCE
3
Total opcodes
6586
Flags
selfdestruct_present create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00e9
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0xa01893bf
00000019: GT
0000001a: PUSH2 0x0085
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xa01893bf
00000024: EQ
00000025: PUSH2 0x021e
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xa0c76a96
0000002f: EQ
00000030: PUSH2 0x023e
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xa7e28d48
0000003a: EQ
0000003b: PUSH2 0x025e
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xbcf2e6eb
00000045: EQ
00000046: PUSH2 0x027e
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xbd5f3e7d
00000050: EQ
00000051: PUSH2 0x02ad
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xd2ce7d65
0000005b: EQ
0000005c: PUSH2 0x02cd
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf68a9082
00000066: EQ
00000067: PUSH2 0x02e0
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0xf887ea40
00000071: EQ
00000072: PUSH2 0x030e
00000075: JUMPI
00000076: DUP1
00000077: PUSH4 0xfb0e722b
0000007c: EQ
0000007d: PUSH2 0x032e
00000080: JUMPI
00000081: PUSH1 0x00
00000083: DUP1
00000084: REVERT
00000085: JUMPDEST
00000086: DUP1
00000087: PUSH4 0x01ffc9a7
0000008c: EQ
0000008d: PUSH2 0x00ee
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0x020a6058
00000097: EQ
00000098: PUSH2 0x0123
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0x2db09c1c
000000a2: EQ
000000a3: PUSH2 0x0151
000000a6: JUMPI
000000a7: DUP1
000000a8: PUSH4 0x2e567b36
000000ad: EQ
000000ae: PUSH2 0x017e
000000b1: JUMPI
000000b2: DUP1
000000b3: PUSH4 0x4fb1a07b
000000b8: EQ
000000b9: PUSH2 0x0193
000000bc: JUMPI
000000bd: DUP1
000000be: PUSH4 0x70fc045f
000000c3: EQ
000000c4: PUSH2 0x01b3
000000c7: JUMPI
000000c8: DUP1
000000c9: PUSH4 0x93e59dc1
000000ce: EQ
000000cf: PUSH2 0x01d3
000000d2: JUMPI
000000d3: DUP1
000000d4: PUSH4 0x95fcea78
000000d9: EQ
000000da: PUSH2 0x01f3
000000dd: JUMPI
000000de: DUP1
000000df: PUSH4 0x97881f8d
000000e4: EQ
000000e5: PUSH2 0x0208
000000e8: JUMPI
000000e9: JUMPDEST
000000ea: PUSH1 0x00
000000ec: DUP1
000000ed: REVERT
000000ee: JUMPDEST
000000ef: CALLVALUE
000000f0: DUP1
000000f1: ISZERO
000000f2: PUSH2 0x00fa
000000f5: JUMPI
000000f6: PUSH1 0x00
000000f8: DUP1
000000f9: REVERT
000000fa: JUMPDEST
000000fb: POP
000000fc: PUSH2 0x010e
000000ff: PUSH2 0x0109
00000102: CALLDATASIZE
00000103: PUSH1 0x04
00000105: PUSH2 0x1b4e
00000108: JUMP
00000109: JUMPDEST
0000010a: PUSH2 0x034e
0000010d: JUMP
0000010e: JUMPDEST
0000010f: PUSH1 0x40
00000111: MLOAD
00000112: SWAP1
00000113: ISZERO
00000114: ISZERO
00000115: DUP2
00000116: MSTORE
00000117: PUSH1 0x20
00000119: ADD
0000011a: JUMPDEST
0000011b: PUSH1 0x40
0000011d: MLOAD
0000011e: DUP1
0000011f: SWAP2
00000120: SUB
00000121: SWAP1
00000122: RETURN
00000123: JUMPDEST
00000124: CALLVALUE
00000125: DUP1
00000126: ISZERO
00000127: PUSH2 0x012f
0000012a: JUMPI
0000012b: PUSH1 0x00
0000012d: DUP1
0000012e: REVERT
0000012f: JUMPDEST
00000130: POP
00000131: PUSH2 0x0143
00000134: PUSH2 0x013e
00000137: CALLDATASIZE
00000138: PUSH1 0x04
0000013a: PUSH2 0x1b8d
0000013d: JUMP
0000013e: JUMPDEST
0000013f: PUSH2 0x0385
00000142: JUMP
00000143: JUMPDEST
00000144: PUSH1 0x40
00000146: MLOAD
00000147: SWAP1
00000148: DUP2
00000149: MSTORE
0000014a: PUSH1 0x20
0000014c: ADD
0000014d: PUSH2 0x011a
00000150: JUMP
00000151: JUMPDEST
00000152: CALLVALUE
00000153: DUP1
00000154: ISZERO
00000155: PUSH2 0x015d
00000158: JUMPI
00000159: PUSH1 0x00
0000015b: DUP1
0000015c: REVERT
0000015d: JUMPDEST
0000015e: POP
0000015f: PUSH1 0x00
00000161: SLOAD
00000162: PUSH2 0x0171
00000165: SWAP1
00000166: PUSH1 0x01
00000168: PUSH1 0x01
0000016a: PUSH1 0xa0
0000016c: SHL
0000016d: SUB
0000016e: AND
0000016f: DUP2
00000170: JUMP
00000171: JUMPDEST
00000172: PUSH1 0x40
00000174: MLOAD
00000175: PUSH2 0x011a
00000178: SWAP2
00000179: SWAP1
0000017a: PUSH2 0x1bbd
0000017d: JUMP
0000017e: JUMPDEST
0000017f: PUSH2 0x0191
00000182: PUSH2 0x018c
00000185: CALLDATASIZE
00000186: PUSH1 0x04
00000188: PUSH2 0x1c12
0000018b: JUMP
0000018c: JUMPDEST
0000018d: PUSH2 0x03ca
00000190: JUMP
00000191: JUMPDEST
00000192: STOP
00000193: JUMPDEST
00000194: PUSH2 0x01a6
00000197: PUSH2 0x01a1
0000019a: CALLDATASIZE
0000019b: PUSH1 0x04
0000019d: PUSH2 0x1c96
000001a0: JUMP
000001a1: JUMPDEST
000001a2: PUSH2 0x0415
000001a5: JUMP
000001a6: JUMPDEST
000001a7: PUSH1 0x40
000001a9: MLOAD
000001aa: PUSH2 0x011a
000001ad: SWAP2
000001ae: SWAP1
000001af: PUSH2 0x1d7d
000001b2: JUMP
000001b3: JUMPDEST
000001b4: CALLVALUE
000001b5: DUP1
000001b6: ISZERO
000001b7: PUSH2 0x01bf
000001ba: JUMPI
000001bb: PUSH1 0x00
000001bd: DUP1
000001be: REVERT
000001bf: JUMPDEST
000001c0: POP
000001c1: PUSH1 0x05
000001c3: SLOAD
000001c4: PUSH2 0x0171
000001c7: SWAP1
000001c8: PUSH1 0x01
000001ca: PUSH1 0x01
000001cc: PUSH1 0xa0
000001ce: SHL
000001cf: SUB
000001d0: AND
000001d1: DUP2
000001d2: JUMP
000001d3: JUMPDEST
000001d4: CALLVALUE
000001d5: DUP1
000001d6: ISZERO
000001d7: PUSH2 0x01df
000001da: JUMPI
000001db: PUSH1 0x00
000001dd: DUP1
000001de: REVERT
000001df: JUMPDEST
000001e0: POP
000001e1: PUSH1 0x06
000001e3: SLOAD
000001e4: PUSH2 0x0171
000001e7: SWAP1
000001e8: PUSH1 0x01
000001ea: PUSH1 0x01
000001ec: PUSH1 0xa0
000001ee: SHL
000001ef: SUB
000001f0: AND
000001f1: DUP2
000001f2: JUMP
000001f3: JUMPDEST
000001f4: CALLVALUE
000001f5: DUP1
000001f6: ISZERO
000001f7: PUSH2 0x01ff
000001fa: JUMPI
000001fb: PUSH1 0x00
000001fd: DUP1
000001fe: REVERT
000001ff: JUMPDEST
00000200: POP
00000201: PUSH2 0x0191
00000204: PUSH2 0x04d5
00000207: JUMP
00000208: JUMPDEST
00000209: CALLVALUE
0000020a: DUP1
0000020b: ISZERO
0000020c: PUSH2 0x0214
0000020f: JUMPI
00000210: PUSH1 0x00
00000212: DUP1
00000213: REVERT
00000214: JUMPDEST
00000215: POP
00000216: PUSH2 0x0143
00000219: PUSH1 0x04
0000021b: SLOAD
0000021c: DUP2
0000021d: JUMP
0000021e: JUMPDEST
0000021f: CALLVALUE
00000220: DUP1
00000221: ISZERO
00000222: PUSH2 0x022a
00000225: JUMPI
00000226: PUSH1 0x00
00000228: DUP1
00000229: REVERT
0000022a: JUMPDEST
0000022b: POP
0000022c: PUSH2 0x0191
0000022f: PUSH2 0x0239
00000232: CALLDATASIZE
00000233: PUSH1 0x04
00000235: PUSH2 0x1d90
00000238: JUMP
00000239: JUMPDEST
0000023a: PUSH2 0x054d
0000023d: JUMP
0000023e: JUMPDEST
0000023f: CALLVALUE
00000240: DUP1
00000241: ISZERO
00000242: PUSH2 0x024a
00000245: JUMPI
00000246: PUSH1 0x00
00000248: DUP1
00000249: REVERT
0000024a: JUMPDEST
0000024b: POP
0000024c: PUSH2 0x01a6
0000024f: PUSH2 0x0259
00000252: CALLDATASIZE
00000253: PUSH1 0x04
00000255: PUSH2 0x1ebb
00000258: JUMP
00000259: JUMPDEST
0000025a: PUSH2 0x0617
0000025d: JUMP
0000025e: JUMPDEST
0000025f: CALLVALUE
00000260: DUP1
00000261: ISZERO
00000262: PUSH2 0x026a
00000265: JUMPI
00000266: PUSH1 0x00
00000268: DUP1
00000269: REVERT
0000026a: JUMPDEST
0000026b: POP
0000026c: PUSH2 0x0171
0000026f: PUSH2 0x0279
00000272: CALLDATASIZE
00000273: PUSH1 0x04
00000275: PUSH2 0x1f39
00000278: JUMP
00000279: JUMPDEST
0000027a: PUSH2 0x06da
0000027d: JUMP
0000027e: JUMPDEST
0000027f: CALLVALUE
00000280: DUP1
00000281: ISZERO
00000282: PUSH2 0x028a
00000285: JUMPI
00000286: PUSH1 0x00
00000288: DUP1
00000289: REVERT
0000028a: JUMPDEST
0000028b: POP
0000028c: PUSH2 0x029e
0000028f: PUSH2 0x0299
00000292: CALLDATASIZE
00000293: PUSH1 0x04
00000295: PUSH2 0x1f56
00000298: JUMP
00000299: JUMPDEST
0000029a: PUSH2 0x070b
0000029d: JUMP
0000029e: JUMPDEST
0000029f: PUSH1 0x40
000002a1: MLOAD
000002a2: PUSH2 0x011a
000002a5: SWAP4
000002a6: SWAP3
000002a7: SWAP2
000002a8: SWAP1
000002a9: PUSH2 0x1f6f
000002ac: JUMP
000002ad: JUMPDEST
000002ae: CALLVALUE
000002af: DUP1
000002b0: ISZERO
000002b1: PUSH2 0x02b9
000002b4: JUMPI
000002b5: PUSH1 0x00
000002b7: DUP1
000002b8: REVERT
000002b9: JUMPDEST
000002ba: POP
000002bb: PUSH2 0x0191
000002be: PUSH2 0x02c8
000002c1: CALLDATASIZE
000002c2: PUSH1 0x04
000002c4: PUSH2 0x1fa4
000002c7: JUMP
000002c8: JUMPDEST
000002c9: PUSH2 0x07c4
000002cc: JUMP
000002cd: JUMPDEST
000002ce: PUSH2 0x01a6
000002d1: PUSH2 0x02db
000002d4: CALLDATASIZE
000002d5: PUSH1 0x04
000002d7: PUSH2 0x2042
000002da: JUMP
000002db: JUMPDEST
000002dc: PUSH2 0x0a24
000002df: JUMP
000002e0: JUMPDEST
000002e1: CALLVALUE
000002e2: DUP1
000002e3: ISZERO
000002e4: PUSH2 0x02ec
000002e7: JUMPI
000002e8: PUSH1 0x00
000002ea: DUP1
000002eb: REVERT
000002ec: JUMPDEST
000002ed: POP
000002ee: PUSH2 0x0300
000002f1: PUSH2 0x02fb
000002f4: CALLDATASIZE
000002f5: PUSH1 0x04
000002f7: PUSH2 0x20b4
000002fa: JUMP
000002fb: JUMPDEST
000002fc: PUSH2 0x0a42
000002ff: JUMP
00000300: JUMPDEST
00000301: PUSH1 0x40
00000303: MLOAD
00000304: PUSH2 0x011a
00000307: SWAP3
00000308: SWAP2
00000309: SWAP1
0000030a: PUSH2 0x210c
0000030d: JUMP
0000030e: JUMPDEST
0000030f: CALLVALUE
00000310: DUP1
00000311: ISZERO
00000312: PUSH2 0x031a
00000315: JUMPI
00000316: PUSH1 0x00
00000318: DUP1
00000319: REVERT
0000031a: JUMPDEST
0000031b: POP
0000031c: PUSH1 0x01
0000031e: SLOAD
0000031f: PUSH2 0x0171
00000322: SWAP1
00000323: PUSH1 0x01
00000325: PUSH1 0x01
00000327: PUSH1 0xa0
00000329: SHL
0000032a: SUB
0000032b: AND
0000032c: DUP2
0000032d: JUMP
0000032e: JUMPDEST
0000032f: CALLVALUE
00000330: DUP1
00000331: ISZERO
00000332: PUSH2 0x033a
00000335: JUMPI
00000336: PUSH1 0x00
00000338: DUP1
00000339: REVERT
0000033a: JUMPDEST
0000033b: POP
0000033c: PUSH1 0x02
0000033e: SLOAD
0000033f: PUSH2 0x0171
00000342: SWAP1
00000343: PUSH1 0x01
00000345: PUSH1 0x01
00000347: PUSH1 0xa0
00000349: SHL
0000034a: SUB
0000034b: AND
0000034c: DUP2
0000034d: JUMP
0000034e: JUMPDEST
0000034f: PUSH1 0x00
00000351: PUSH1 0x01
00000353: PUSH1 0x01
00000355: PUSH1 0xe0
00000357: SHL
00000358: SUB
00000359: NOT
0000035a: DUP3
0000035b: AND
0000035c: PUSH4 0x4fb1a07b
00000361: PUSH1 0xe0
00000363: SHL
00000364: EQ
00000365: DUP1
00000366: PUSH2 0x037f
00000369: JUMPI
0000036a: POP
0000036b: PUSH4 0x01ffc9a7
00000370: PUSH1 0xe0
00000372: SHL
00000373: PUSH1 0x01
00000375: PUSH1 0x01
00000377: PUSH1 0xe0
00000379: SHL
0000037a: SUB
0000037b: NOT
0000037c: DUP4
0000037d: AND
0000037e: EQ
0000037f: JUMPDEST
00000380: SWAP3
00000381: SWAP2
00000382: POP
00000383: POP
00000384: JUMP
00000385: JUMPDEST
00000386: PUSH1 0x00
00000388: DUP3
00000389: DUP3
0000038a: PUSH1 0x40
0000038c: MLOAD
0000038d: PUSH1 0x20
0000038f: ADD
00000390: PUSH2 0x03ac
00000393: SWAP3
00000394: SWAP2
00000395: SWAP1
00000396: SWAP2
00000397: DUP3
00000398: MSTORE
00000399: PUSH1 0x01
0000039b: PUSH1 0x01
0000039d: PUSH1 0xa0
0000039f: SHL
000003a0: SUB
000003a1: AND
000003a2: PUSH1 0x20
000003a4: DUP3
000003a5: ADD
000003a6: MSTORE
000003a7: PUSH1 0x40
000003a9: ADD
000003aa: SWAP1
000003ab: JUMP
000003ac: JUMPDEST
000003ad: PUSH1 0x40
000003af: MLOAD
000003b0: PUSH1 0x20
000003b2: DUP2
000003b3: DUP4
000003b4: SUB
000003b5: SUB
000003b6: DUP2
000003b7: MSTORE
000003b8: SWAP1
000003b9: PUSH1 0x40
000003bb: MSTORE
000003bc: DUP1
000003bd: MLOAD
000003be: SWAP1
000003bf: PUSH1 0x20
000003c1: ADD
000003c2: KECCAK256
000003c3: SWAP1
000003c4: POP
000003c5: SWAP3
000003c6: SWAP2
000003c7: POP
000003c8: POP
000003c9: JUMP
000003ca: JUMPDEST
000003cb: PUSH1 0x02
000003cd: PUSH1 0x07
000003cf: SLOAD
000003d0: SUB
000003d1: PUSH2 0x03f5
000003d4: JUMPI
000003d5: PUSH1 0x40
000003d7: MLOAD
000003d8: PUSH3 0x461bcd
000003dc: PUSH1 0xe5
000003de: SHL
000003df: DUP2
000003e0: MSTORE
000003e1: PUSH1 0x04
000003e3: ADD
000003e4: PUSH2 0x03ec
000003e7: SWAP1
000003e8: PUSH2 0x2130
000003eb: JUMP
000003ec: JUMPDEST
000003ed: PUSH1 0x40
000003ef: MLOAD
000003f0: DUP1
000003f1: SWAP2
000003f2: SUB
000003f3: SWAP1
000003f4: REVERT
000003f5: JUMPDEST
000003f6: PUSH1 0x02
000003f8: PUSH1 0x07
000003fa: SSTORE
000003fb: PUSH2 0x0408
000003fe: DUP7
000003ff: DUP7
00000400: DUP7
00000401: DUP7
00000402: DUP7
00000403: DUP7
00000404: PUSH2 0x0b32
00000407: JUMP
00000408: JUMPDEST
00000409: POP
0000040a: POP
0000040b: PUSH1 0x01
0000040d: PUSH1 0x07
0000040f: SSTORE
00000410: POP
00000411: POP
00000412: POP
00000413: POP
00000414: JUMP
00000415: JUMPDEST
00000416: PUSH1 0x60
00000418: CALLVALUE
00000419: ISZERO
0000041a: PUSH2 0x0450
0000041d: JUMPI
0000041e: PUSH1 0x40
00000420: MLOAD
00000421: PUSH3 0x461bcd
00000425: PUSH1 0xe5
00000427: SHL
00000428: DUP2
00000429: MSTORE
0000042a: PUSH1 0x20
0000042c: PUSH1 0x04
0000042e: DUP3
0000042f: ADD
00000430: MSTORE
00000431: PUSH1 0x08
00000433: PUSH1 0x24
00000435: DUP3
00000436: ADD
00000437: MSTORE
00000438: PUSH8 0x4e4f5f56414c5545
00000441: PUSH1 0xc0
00000443: SHL
00000444: PUSH1 0x44
00000446: DUP3
00000447: ADD
00000448: MSTORE
00000449: PUSH1 0x64
0000044b: ADD
0000044c: PUSH2 0x03ec
0000044f: JUMP
00000450: JUMPDEST
00000451: PUSH2 0x0458
00000454: PUSH2 0x0c9a
00000457: JUMP
00000458: JUMPDEST
00000459: PUSH1 0x01
0000045b: PUSH1 0x01
0000045d: PUSH1 0xa0
0000045f: SHL
00000460: SUB
00000461: AND
00000462: DUP10
00000463: PUSH1 0x01
00000465: PUSH1 0x01
00000467: PUSH1 0xa0
00000469: SHL
0000046a: SUB
0000046b: AND
0000046c: SUB
0000046d: PUSH2 0x04b8
00000470: JUMPI
00000471: PUSH1 0x40
00000473: MLOAD
00000474: PUSH3 0x461bcd
00000478: PUSH1 0xe5
0000047a: SHL
0000047b: DUP2
0000047c: MSTORE
0000047d: PUSH1 0x20
0000047f: PUSH1 0x04
00000481: DUP3
00000482: ADD
00000483: MSTORE
00000484: PUSH1 0x1f
00000486: PUSH1 0x24
00000488: DUP3
00000489: ADD
0000048a: MSTORE
0000048b: PUSH32 0x4e4f545f414c4c4f5745445f544f5f4252494447455f4645455f544f4b454e00
000004ac: PUSH1 0x44
000004ae: DUP3
000004af: ADD
000004b0: MSTORE
000004b1: PUSH1 0x64
000004b3: ADD
000004b4: PUSH2 0x03ec
000004b7: JUMP
000004b8: JUMPDEST
000004b9: PUSH2 0x04c8
000004bc: DUP10
000004bd: DUP10
000004be: DUP10
000004bf: DUP10
000004c0: DUP10
000004c1: DUP10
000004c2: DUP10
000004c3: DUP10
000004c4: PUSH2 0x0d1e
000004c7: JUMP
000004c8: JUMPDEST
000004c9: SWAP10
000004ca: SWAP9
000004cb: POP
000004cc: POP
000004cd: POP
000004ce: POP
000004cf: POP
000004d0: POP
000004d1: POP
000004d2: POP
000004d3: POP
000004d4: JUMP
000004d5: JUMPDEST
000004d6: PUSH1 0x00
000004d8: PUSH2 0x04ff
000004db: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
000004fc: SLOAD
000004fd: SWAP1
000004fe: JUMP
000004ff: JUMPDEST
00000500: SWAP1
00000501: POP
00000502: CALLER
00000503: PUSH1 0x01
00000505: PUSH1 0x01
00000507: PUSH1 0xa0
00000509: SHL
0000050a: SUB
0000050b: DUP3
0000050c: AND
0000050d: EQ
0000050e: PUSH2 0x054a
00000511: JUMPI
00000512: PUSH1 0x40
00000514: MLOAD
00000515: PUSH3 0x461bcd
00000519: PUSH1 0xe5
0000051b: SHL
0000051c: DUP2
0000051d: MSTORE
0000051e: PUSH1 0x20
00000520: PUSH1 0x04
00000522: DUP3
00000523: ADD
00000524: MSTORE
00000525: PUSH1 0x0e
00000527: PUSH1 0x24
00000529: DUP3
0000052a: ADD
0000052b: MSTORE
0000052c: PUSH14 0x2727aa2fa32927a6afa0a226a4a7
0000053b: PUSH1 0x91
0000053d: SHL
0000053e: PUSH1 0x44
00000540: DUP3
00000541: ADD
00000542: MSTORE
00000543: PUSH1 0x64
00000545: ADD
00000546: PUSH2 0x03ec
00000549: JUMP
0000054a: JUMPDEST
0000054b: POP
0000054c: JUMP
0000054d: JUMPDEST
0000054e: PUSH2 0x0558
00000551: DUP6
00000552: DUP6
00000553: DUP6
00000554: PUSH2 0x0d69
00000557: JUMP
00000558: JUMPDEST
00000559: DUP2
0000055a: PUSH2 0x0599
0000055d: JUMPI
0000055e: PUSH1 0x40
00000560: MLOAD
00000561: PUSH3 0x461bcd
00000565: PUSH1 0xe5
00000567: SHL
00000568: DUP2
00000569: MSTORE
0000056a: PUSH1 0x20
0000056c: PUSH1 0x04
0000056e: DUP3
0000056f: ADD
00000570: MSTORE
00000571: PUSH1 0x11
00000573: PUSH1 0x24
00000575: DUP3
00000576: ADD
00000577: MSTORE
00000578: PUSH17 0x0929cac82989288bea0a49eb0b29082a69
0000058a: PUSH1 0x7b
0000058c: SHL
0000058d: PUSH1 0x44
0000058f: DUP3
00000590: ADD
00000591: MSTORE
00000592: PUSH1 0x64
00000594: ADD
00000595: PUSH2 0x03ec
00000598: JUMP
00000599: JUMPDEST
0000059a: PUSH1 0x01
0000059c: PUSH1 0x01
0000059e: PUSH1 0xa0
000005a0: SHL
000005a1: SUB
000005a2: DUP2
000005a3: AND
000005a4: PUSH2 0x05e0
000005a7: JUMPI
000005a8: PUSH1 0x40
000005aa: MLOAD
000005ab: PUSH3 0x461bcd
000005af: PUSH1 0xe5
000005b1: SHL
000005b2: DUP2
000005b3: MSTORE
000005b4: PUSH1 0x20
000005b6: PUSH1 0x04
000005b8: DUP3
000005b9: ADD
000005ba: MSTORE
000005bb: PUSH1 0x0e
000005bd: PUSH1 0x24
000005bf: DUP3
000005c0: ADD
000005c1: MSTORE
000005c2: PUSH14 0x24a72b20a624a22fa122a0a1a7a7
000005d1: PUSH1 0x91
000005d3: SHL
000005d4: PUSH1 0x44
000005d6: DUP3
000005d7: ADD
000005d8: MSTORE
000005d9: PUSH1 0x64
000005db: ADD
000005dc: PUSH2 0x03ec
000005df: JUMP
000005e0: JUMPDEST
000005e1: PUSH1 0x04
000005e3: SWAP2
000005e4: SWAP1
000005e5: SWAP2
000005e6: SSTORE
000005e7: PUSH1 0x05
000005e9: DUP1
000005ea: SLOAD
000005eb: PUSH1 0x01
000005ed: PUSH1 0x01
000005ef: PUSH1 0xa0
000005f1: SHL
000005f2: SUB
000005f3: SWAP1
000005f4: SWAP3
000005f5: AND
000005f6: PUSH1 0x01
000005f8: PUSH1 0x01
000005fa: PUSH1 0xa0
000005fc: SHL
000005fd: SUB
000005fe: NOT
000005ff: SWAP3
00000600: DUP4
00000601: AND
00000602: OR
00000603: SWAP1
00000604: SSTORE
00000605: PUSH1 0x06
00000607: DUP1
00000608: SLOAD
00000609: SWAP1
0000060a: SWAP2
0000060b: AND
0000060c: SWAP1
0000060d: SSTORE
0000060e: POP
0000060f: POP
00000610: PUSH1 0x01
00000612: PUSH1 0x07
00000614: SSTORE
00000615: POP
00000616: JUMP
00000617: JUMPDEST
00000618: PUSH1 0x60
0000061a: PUSH1 0x00
0000061c: PUSH2 0x062c
0000061f: DUP8
00000620: PUSH4 0x06fdde03
00000625: PUSH1 0xe0
00000627: SHL
00000628: PUSH2 0x0e1c
0000062b: JUMP
0000062c: JUMPDEST
0000062d: PUSH2 0x063d
00000630: DUP9
00000631: PUSH4 0x95d89b41
00000636: PUSH1 0xe0
00000638: SHL
00000639: PUSH2 0x0e1c
0000063c: JUMP
0000063d: JUMPDEST
0000063e: PUSH2 0x064e
00000641: DUP10
00000642: PUSH4 0x313ce567
00000647: PUSH1 0xe0
00000649: SHL
0000064a: PUSH2 0x0e1c
0000064d: JUMP
0000064e: JUMPDEST
0000064f: PUSH1 0x40
00000651: MLOAD
00000652: PUSH1 0x20
00000654: ADD
00000655: PUSH2 0x0660
00000658: SWAP4
00000659: SWAP3
0000065a: SWAP2
0000065b: SWAP1
0000065c: PUSH2 0x2167
0000065f: JUMP
00000660: JUMPDEST
00000661: PUSH1 0x40
00000663: DUP1
00000664: MLOAD
00000665: PUSH1 0x1f
00000667: NOT
00000668: DUP2
00000669: DUP5
0000066a: SUB
0000066b: ADD
0000066c: DUP2
0000066d: MSTORE
0000066e: SWAP2
0000066f: SWAP1
00000670: MSTORE
00000671: SWAP1
00000672: POP
00000673: PUSH4 0x172b3d9b
00000678: PUSH1 0xe1
0000067a: SHL
0000067b: DUP8
0000067c: DUP8
0000067d: DUP8
0000067e: DUP8
0000067f: PUSH2 0x0688
00000682: DUP7
00000683: DUP10
00000684: PUSH2 0x0ead
00000687: JUMP
00000688: JUMPDEST
00000689: PUSH1 0x40
0000068b: MLOAD
0000068c: PUSH1 0x24
0000068e: ADD
0000068f: PUSH2 0x069c
00000692: SWAP6
00000693: SWAP5
00000694: SWAP4
00000695: SWAP3
00000696: SWAP2
00000697: SWAP1
00000698: PUSH2 0x21a0
0000069b: JUMP
0000069c: JUMPDEST
0000069d: PUSH1 0x40
0000069f: DUP1
000006a0: MLOAD
000006a1: PUSH1 0x1f
000006a3: NOT
000006a4: DUP2
000006a5: DUP5
000006a6: SUB
000006a7: ADD
000006a8: DUP2
000006a9: MSTORE
000006aa: SWAP2
000006ab: SWAP1
000006ac: MSTORE
000006ad: PUSH1 0x20
000006af: DUP2
000006b0: ADD
000006b1: DUP1
000006b2: MLOAD
000006b3: PUSH1 0x01
000006b5: PUSH1 0x01
000006b7: PUSH1 0xe0
000006b9: SHL
000006ba: SUB
000006bb: AND
000006bc: PUSH1 0x01
000006be: PUSH1 0x01
000006c0: PUSH1 0xe0
000006c2: SHL
000006c3: SUB
000006c4: NOT
000006c5: SWAP1
000006c6: SWAP4
000006c7: AND
000006c8: SWAP3
000006c9: SWAP1
000006ca: SWAP3
000006cb: OR
000006cc: SWAP1
000006cd: SWAP2
000006ce: MSTORE
000006cf: SWAP2
000006d0: POP
000006d1: POP
000006d2: SWAP6
000006d3: SWAP5
000006d4: POP
000006d5: POP
000006d6: POP
000006d7: POP
000006d8: POP
000006d9: JUMP
000006da: JUMPDEST
000006db: PUSH1 0x00
000006dd: DUP1
000006de: PUSH2 0x06e6
000006e1: DUP4
000006e2: PUSH2 0x0ed9
000006e5: JUMP
000006e6: JUMPDEST
000006e7: PUSH1 0x04
000006e9: SLOAD
000006ea: PUSH1 0x05
000006ec: SLOAD
000006ed: SWAP2
000006ee: SWAP3
000006ef: POP
000006f0: PUSH2 0x0704
000006f3: SWAP2
000006f4: DUP4
000006f5: SWAP2
000006f6: SWAP1
000006f7: PUSH1 0x01
000006f9: PUSH1 0x01
000006fb: PUSH1 0xa0
000006fd: SHL
000006fe: SUB
000006ff: AND
00000700: PUSH2 0x0f3e
00000703: JUMP
00000704: JUMPDEST
00000705: SWAP4
00000706: SWAP3
00000707: POP
00000708: POP
00000709: POP
0000070a: JUMP
0000070b: JUMPDEST
0000070c: PUSH1 0x03
0000070e: PUSH1 0x20
00000710: MSTORE
00000711: PUSH1 0x00
00000713: SWAP1
00000714: DUP2
00000715: MSTORE
00000716: PUSH1 0x40
00000718: SWAP1
00000719: KECCAK256
0000071a: DUP1
0000071b: SLOAD
0000071c: PUSH1 0x01
0000071e: DUP3
0000071f: ADD
00000720: DUP1
00000721: SLOAD
00000722: PUSH1 0xff
00000724: DUP4
00000725: AND
00000726: SWAP4
00000727: PUSH2 0x0100
0000072a: SWAP1
0000072b: SWAP4
0000072c: DIV
0000072d: PUSH1 0x01
0000072f: PUSH1 0x01
00000731: PUSH1 0xa0
00000733: SHL
00000734: SUB
00000735: AND
00000736: SWAP3
00000737: SWAP2
00000738: SWAP1
00000739: PUSH2 0x0741
0000073c: SWAP1
0000073d: PUSH2 0x21db
00000740: JUMP
00000741: JUMPDEST
00000742: DUP1
00000743: PUSH1 0x1f
00000745: ADD
00000746: PUSH1 0x20
00000748: DUP1
00000749: SWAP2
0000074a: DIV
0000074b: MUL
0000074c: PUSH1 0x20
0000074e: ADD
0000074f: PUSH1 0x40
00000751: MLOAD
00000752: SWAP1
00000753: DUP2
00000754: ADD
00000755: PUSH1 0x40
00000757: MSTORE
00000758: DUP1
00000759: SWAP3
0000075a: SWAP2
0000075b: SWAP1
0000075c: DUP2
0000075d: DUP2
0000075e: MSTORE
0000075f: PUSH1 0x20
00000761: ADD
00000762: DUP3
00000763: DUP1
00000764: SLOAD
00000765: PUSH2 0x076d
00000768: SWAP1
00000769: PUSH2 0x21db
0000076c: JUMP
0000076d: JUMPDEST
0000076e: DUP1
0000076f: ISZERO
00000770: PUSH2 0x07ba
00000773: JUMPI
00000774: DUP1
00000775: PUSH1 0x1f
00000777: LT
00000778: PUSH2 0x078f
0000077b: JUMPI
0000077c: PUSH2 0x0100
0000077f: DUP1
00000780: DUP4
00000781: SLOAD
00000782: DIV
00000783: MUL
00000784: DUP4
00000785: MSTORE
00000786: SWAP2
00000787: PUSH1 0x20
00000789: ADD
0000078a: SWAP2
0000078b: PUSH2 0x07ba
0000078e: JUMP
0000078f: JUMPDEST
00000790: DUP3
00000791: ADD
00000792: SWAP2
00000793: SWAP1
00000794: PUSH1 0x00
00000796: MSTORE
00000797: PUSH1 0x20
00000799: PUSH1 0x00
0000079b: KECCAK256
0000079c: SWAP1
0000079d: JUMPDEST
0000079e: DUP2
0000079f: SLOAD
000007a0: DUP2
000007a1: MSTORE
000007a2: SWAP1
000007a3: PUSH1 0x01
000007a5: ADD
000007a6: SWAP1
000007a7: PUSH1 0x20
000007a9: ADD
000007aa: DUP1
000007ab: DUP4
000007ac: GT
000007ad: PUSH2 0x079d
000007b0: JUMPI
000007b1: DUP3
000007b2: SWAP1
000007b3: SUB
000007b4: PUSH1 0x1f
000007b6: AND
000007b7: DUP3
000007b8: ADD
000007b9: SWAP2
000007ba: JUMPDEST
000007bb: POP
000007bc: POP
000007bd: POP
000007be: POP
000007bf: POP
000007c0: SWAP1
000007c1: POP
000007c2: DUP4
000007c3: JUMP
000007c4: JUMPDEST
000007c5: PUSH1 0x00
000007c7: PUSH2 0x07e0
000007ca: DUP9
000007cb: DUP9
000007cc: PUSH1 0x40
000007ce: MLOAD
000007cf: DUP1
000007d0: PUSH1 0x20
000007d2: ADD
000007d3: PUSH1 0x40
000007d5: MSTORE
000007d6: DUP1
000007d7: PUSH1 0x00
000007d9: DUP2
000007da: MSTORE
000007db: POP
000007dc: PUSH2 0x0a42
000007df: JUMP
000007e0: JUMPDEST
000007e1: POP
000007e2: SWAP1
000007e3: POP
000007e4: CALLER
000007e5: PUSH1 0x01
000007e7: PUSH1 0x01
000007e9: PUSH1 0xa0
000007eb: SHL
000007ec: SUB
000007ed: DUP3
000007ee: AND
000007ef: EQ
000007f0: PUSH2 0x0831
000007f3: JUMPI
000007f4: PUSH1 0x40
000007f6: MLOAD
000007f7: PUSH3 0x461bcd
000007fb: PUSH1 0xe5
000007fd: SHL
000007fe: DUP2
000007ff: MSTORE
00000800: PUSH1 0x20
00000802: PUSH1 0x04
00000804: DUP3
00000805: ADD
00000806: MSTORE
00000807: PUSH1 0x13
00000809: PUSH1 0x24
0000080b: DUP3
0000080c: ADD
0000080d: MSTORE
0000080e: PUSH19 0x2727aa2fa2ac2822a1aa22a22fa9a2a72222a9
00000822: PUSH1 0x69
00000824: SHL
00000825: PUSH1 0x44
00000827: DUP3
00000828: ADD
00000829: MSTORE
0000082a: PUSH1 0x64
0000082c: ADD
0000082d: PUSH2 0x03ec
00000830: JUMP
00000831: JUMPDEST
00000832: DUP4
00000833: ISZERO
00000834: PUSH2 0x0871
00000837: JUMPI
00000838: PUSH1 0x40
0000083a: MLOAD
0000083b: PUSH3 0x461bcd
0000083f: PUSH1 0xe5
00000841: SHL
00000842: DUP2
00000843: MSTORE
00000844: PUSH1 0x20
00000846: PUSH1 0x04
00000848: DUP3
00000849: ADD
0000084a: MSTORE
0000084b: PUSH1 0x0f
0000084d: PUSH1 0x24
0000084f: DUP3
00000850: ADD
00000851: MSTORE
00000852: PUSH15 0x1393d7d110551057d0531313d5d151
00000862: PUSH1 0x8a
00000864: SHL
00000865: PUSH1 0x44
00000867: DUP3
00000868: ADD
00000869: MSTORE
0000086a: PUSH1 0x64
0000086c: ADD
0000086d: PUSH2 0x03ec
00000870: JUMP
00000871: JUMPDEST
00000872: PUSH2 0x08b3
00000875: DUP9
00000876: DUP9
00000877: DUP9
00000878: DUP9
00000879: DUP9
0000087a: DUP1
0000087b: DUP1
0000087c: PUSH1 0x1f
0000087e: ADD
0000087f: PUSH1 0x20
00000881: DUP1
00000882: SWAP2
00000883: DIV
00000884: MUL
00000885: PUSH1 0x20
00000887: ADD
00000888: PUSH1 0x40
0000088a: MLOAD
0000088b: SWAP1
0000088c: DUP2
0000088d: ADD
0000088e: PUSH1 0x40
00000890: MSTORE
00000891: DUP1
00000892: SWAP4
00000893: SWAP3
00000894: SWAP2
00000895: SWAP1
00000896: DUP2
00000897: DUP2
00000898: MSTORE
00000899: PUSH1 0x20
0000089b: ADD
0000089c: DUP4
0000089d: DUP4
0000089e: DUP1
0000089f: DUP3
000008a0: DUP5
000008a1: CALLDATACOPY
000008a2: PUSH1 0x00
000008a4: SWAP3
000008a5: ADD
000008a6: SWAP2
000008a7: SWAP1
000008a8: SWAP2
000008a9: MSTORE
000008aa: POP
000008ab: PUSH2 0x0f68
000008ae: SWAP3
000008af: POP
000008b0: POP
000008b1: POP
000008b2: JUMP
000008b3: JUMPDEST
000008b4: DUP2
000008b5: ISZERO
000008b6: PUSH2 0x09c0
000008b9: JUMPI
000008ba: PUSH1 0x01
000008bc: PUSH1 0x01
000008be: PUSH1 0xa0
000008c0: SHL
000008c1: SUB
000008c2: DUP7
000008c3: AND
000008c4: EXTCODESIZE
000008c5: PUSH2 0x0902
000008c8: JUMPI
000008c9: PUSH1 0x40
000008cb: MLOAD
000008cc: PUSH3 0x461bcd
000008d0: PUSH1 0xe5
000008d2: SHL
000008d3: DUP2
000008d4: MSTORE
000008d5: PUSH1 0x20
000008d7: PUSH1 0x04
000008d9: DUP3
000008da: ADD
000008db: MSTORE
000008dc: PUSH1 0x0f
000008de: PUSH1 0x24
000008e0: DUP3
000008e1: ADD
000008e2: MSTORE
000008e3: PUSH15 0x1513d7d393d517d0d3d395149050d5
000008f3: PUSH1 0x8a
000008f5: SHL
000008f6: PUSH1 0x44
000008f8: DUP3
000008f9: ADD
000008fa: MSTORE
000008fb: PUSH1 0x64
000008fd: ADD
000008fe: PUSH2 0x03ec
00000901: JUMP
00000902: JUMPDEST
00000903: PUSH1 0x40
00000905: MLOAD
00000906: PUSH4 0x0592e207
0000090b: PUSH1 0xe4
0000090d: SHL
0000090e: DUP2
0000090f: MSTORE
00000910: PUSH1 0x00
00000912: SWAP1
00000913: PUSH1 0x01
00000915: PUSH1 0x01
00000917: PUSH1 0xa0
00000919: SHL
0000091a: SUB
0000091b: DUP9
0000091c: AND
0000091d: SWAP1
0000091e: PUSH4 0x592e2070
00000923: SWAP1
00000924: PUSH2 0x0937
00000927: SWAP1
00000928: DUP6
00000929: SWAP1
0000092a: DUP14
0000092b: SWAP1
0000092c: DUP10
0000092d: SWAP1
0000092e: DUP10
0000092f: SWAP1
00000930: PUSH1 0x04
00000932: ADD
00000933: PUSH2 0x223e
00000936: JUMP
00000937: JUMPDEST
00000938: PUSH1 0x20
0000093a: PUSH1 0x40
0000093c: MLOAD
0000093d: DUP1
0000093e: DUP4
0000093f: SUB
00000940: DUP2
00000941: PUSH1 0x00
00000943: DUP8
00000944: GAS
00000945: CALL
00000946: ISZERO
00000947: DUP1
00000948: ISZERO
00000949: PUSH2 0x0956
0000094c: JUMPI
0000094d: RETURNDATASIZE
0000094e: PUSH1 0x00
00000950: DUP1
00000951: RETURNDATACOPY
00000952: RETURNDATASIZE
00000953: PUSH1 0x00
00000955: REVERT
00000956: JUMPDEST
00000957: POP
00000958: POP
00000959: POP
0000095a: POP
0000095b: PUSH1 0x40
0000095d: MLOAD
0000095e: RETURNDATASIZE
0000095f: PUSH1 0x1f
00000961: NOT
00000962: PUSH1 0x1f
00000964: DUP3
00000965: ADD
00000966: AND
00000967: DUP3
00000968: ADD
00000969: DUP1
0000096a: PUSH1 0x40
0000096c: MSTORE
0000096d: POP
0000096e: DUP2
0000096f: ADD
00000970: SWAP1
00000971: PUSH2 0x097a
00000974: SWAP2
00000975: SWAP1
00000976: PUSH2 0x2266
00000979: JUMP
0000097a: JUMPDEST
0000097b: SWAP1
0000097c: POP
0000097d: DUP1
0000097e: PUSH2 0x09be
00000981: JUMPI
00000982: PUSH1 0x40
00000984: MLOAD
00000985: PUSH3 0x461bcd
00000989: PUSH1 0xe5
0000098b: SHL
0000098c: DUP2
0000098d: MSTORE
0000098e: PUSH1 0x20
00000990: PUSH1 0x04
00000992: DUP3
00000993: ADD
00000994: MSTORE
00000995: PUSH1 0x12
00000997: PUSH1 0x24
00000999: DUP3
0000099a: ADD
0000099b: MSTORE
0000099c: PUSH18 0x1514905394d1915497d213d3d2d7d1905253
000009af: PUSH1 0x72
000009b1: SHL
000009b2: PUSH1 0x44
000009b4: DUP3
000009b5: ADD
000009b6: MSTORE
000009b7: PUSH1 0x64
000009b9: ADD
000009ba: PUSH2 0x03ec
000009bd: JUMP
000009be: JUMPDEST
000009bf: POP
000009c0: JUMPDEST
000009c1: DUP8
000009c2: DUP7
000009c3: PUSH1 0x01
000009c5: PUSH1 0x01
000009c7: PUSH1 0xa0
000009c9: SHL
000009ca: SUB
000009cb: AND
000009cc: DUP3
000009cd: PUSH1 0x01
000009cf: PUSH1 0x01
000009d1: PUSH1 0xa0
000009d3: SHL
000009d4: SUB
000009d5: AND
000009d6: PUSH32 0x56735ccb9dc7d2222ce4177fc3aea44c33882e2a2c73e0fb1c6b93c9c13a04d4
000009f7: DUP9
000009f8: DUP9
000009f9: DUP9
000009fa: DUP9
000009fb: PUSH1 0x00
000009fd: DUP12
000009fe: DUP12
000009ff: SWAP1
00000a00: POP
00000a01: GT
00000a02: PUSH1 0x40
00000a04: MLOAD
00000a05: PUSH2 0x0a12
00000a08: SWAP6
00000a09: SWAP5
00000a0a: SWAP4
00000a0b: SWAP3
00000a0c: SWAP2
00000a0d: SWAP1
00000a0e: PUSH2 0x2288
00000a11: JUMP
00000a12: JUMPDEST
00000a13: PUSH1 0x40
00000a15: MLOAD
00000a16: DUP1
00000a17: SWAP2
00000a18: SUB
00000a19: SWAP1
00000a1a: LOG4
00000a1b: POP
00000a1c: POP
00000a1d: POP
00000a1e: POP
00000a1f: POP
00000a20: POP
00000a21: POP
00000a22: POP
00000a23: JUMP
00000a24: JUMPDEST
00000a25: PUSH1 0x60
00000a27: PUSH2 0x0a36
00000a2a: DUP9
00000a2b: DUP9
00000a2c: DUP10
00000a2d: DUP10
00000a2e: DUP10
00000a2f: DUP10
00000a30: DUP10
00000a31: DUP10
00000a32: PUSH2 0x0415
00000a35: JUMP
00000a36: JUMPDEST
00000a37: SWAP9
00000a38: SWAP8
00000a39: POP
00000a3a: POP
00000a3b: POP
00000a3c: POP
00000a3d: POP
00000a3e: POP
00000a3f: POP
00000a40: POP
00000a41: JUMP
00000a42: JUMPDEST
00000a43: PUSH1 0x00
00000a45: PUSH1 0x60
00000a47: PUSH1 0x00
00000a49: PUSH2 0x0a52
00000a4c: DUP7
00000a4d: DUP7
00000a4e: PUSH2 0x0385
00000a51: JUMP
00000a52: JUMPDEST
00000a53: PUSH1 0x00
00000a55: DUP2
00000a56: DUP2
00000a57: MSTORE
00000a58: PUSH1 0x03
00000a5a: PUSH1 0x20
00000a5c: MSTORE
00000a5d: PUSH1 0x40
00000a5f: SWAP1
00000a60: KECCAK256
00000a61: DUP1
00000a62: SLOAD
00000a63: SWAP2
00000a64: SWAP3
00000a65: POP
00000a66: SWAP1
00000a67: PUSH1 0xff
00000a69: AND
00000a6a: ISZERO
00000a6b: PUSH2 0x0b21
00000a6e: JUMPI
00000a6f: DUP1
00000a70: PUSH1 0x00
00000a72: ADD
00000a73: PUSH1 0x01
00000a75: SWAP1
00000a76: SLOAD
00000a77: SWAP1
00000a78: PUSH2 0x0100
00000a7b: EXP
00000a7c: SWAP1
00000a7d: DIV
00000a7e: PUSH1 0x01
00000a80: PUSH1 0x01
00000a82: PUSH1 0xa0
00000a84: SHL
00000a85: SUB
00000a86: AND
00000a87: DUP2
00000a88: PUSH1 0x01
00000a8a: ADD
00000a8b: DUP1
00000a8c: DUP1
00000a8d: SLOAD
00000a8e: PUSH2 0x0a96
00000a91: SWAP1
00000a92: PUSH2 0x21db
00000a95: JUMP
00000a96: JUMPDEST
00000a97: DUP1
00000a98: PUSH1 0x1f
00000a9a: ADD
00000a9b: PUSH1 0x20
00000a9d: DUP1
00000a9e: SWAP2
00000a9f: DIV
00000aa0: MUL
00000aa1: PUSH1 0x20
00000aa3: ADD
00000aa4: PUSH1 0x40
00000aa6: MLOAD
00000aa7: SWAP1
00000aa8: DUP2
00000aa9: ADD
00000aaa: PUSH1 0x40
00000aac: MSTORE
00000aad: DUP1
00000aae: SWAP3
00000aaf: SWAP2
00000ab0: SWAP1
00000ab1: DUP2
00000ab2: DUP2
00000ab3: MSTORE
00000ab4: PUSH1 0x20
00000ab6: ADD
00000ab7: DUP3
00000ab8: DUP1
00000ab9: SLOAD
00000aba: PUSH2 0x0ac2
00000abd: SWAP1
00000abe: PUSH2 0x21db
00000ac1: JUMP
00000ac2: JUMPDEST
00000ac3: DUP1
00000ac4: ISZERO
00000ac5: PUSH2 0x0b0f
00000ac8: JUMPI
00000ac9: DUP1
00000aca: PUSH1 0x1f
00000acc: LT
00000acd: PUSH2 0x0ae4
00000ad0: JUMPI
00000ad1: PUSH2 0x0100
00000ad4: DUP1
00000ad5: DUP4
00000ad6: SLOAD
00000ad7: DIV
00000ad8: MUL
00000ad9: DUP4
00000ada: MSTORE
00000adb: SWAP2
00000adc: PUSH1 0x20
00000ade: ADD
00000adf: SWAP2
00000ae0: PUSH2 0x0b0f
00000ae3: JUMP
00000ae4: JUMPDEST
00000ae5: DUP3
00000ae6: ADD
00000ae7: SWAP2
00000ae8: SWAP1
00000ae9: PUSH1 0x00
00000aeb: MSTORE
00000aec: PUSH1 0x20
00000aee: PUSH1 0x00
00000af0: KECCAK256
00000af1: SWAP1
00000af2: JUMPDEST
00000af3: DUP2
00000af4: SLOAD
00000af5: DUP2
00000af6: MSTORE
00000af7: SWAP1
00000af8: PUSH1 0x01
00000afa: ADD
00000afb: SWAP1
00000afc: PUSH1 0x20
00000afe: ADD
00000aff: DUP1
00000b00: DUP4
00000b01: GT
00000b02: PUSH2 0x0af2
00000b05: JUMPI
00000b06: DUP3
00000b07: SWAP1
00000b08: SUB
00000b09: PUSH1 0x1f
00000b0b: AND
00000b0c: DUP3
00000b0d: ADD
00000b0e: SWAP2
00000b0f: JUMPDEST
00000b10: POP
00000b11: POP
00000b12: POP
00000b13: POP
00000b14: POP
00000b15: SWAP1
00000b16: POP
00000b17: SWAP4
00000b18: POP
00000b19: SWAP4
00000b1a: POP
00000b1b: POP
00000b1c: POP
00000b1d: PUSH2 0x0b2a
00000b20: JUMP
00000b21: JUMPDEST
00000b22: DUP6
00000b23: DUP6
00000b24: SWAP4
00000b25: POP
00000b26: SWAP4
00000b27: POP
00000b28: POP
00000b29: POP
00000b2a: JUMPDEST
00000b2b: SWAP4
00000b2c: POP
00000b2d: SWAP4
00000b2e: SWAP2
00000b2f: POP
00000b30: POP
00000b31: JUMP
00000b32: JUMPDEST
00000b33: PUSH1 0x02
00000b35: SLOAD
00000b36: PUSH1 0x01
00000b38: PUSH1 0x01
00000b3a: PUSH1 0xa0
00000b3c: SHL
00000b3d: SUB
00000b3e: AND
00000b3f: PUSH1 0x00
00000b41: PUSH2 0x0b49
00000b44: DUP3
00000b45: PUSH2 0x0ffa
00000b48: JUMP
00000b49: JUMPDEST
00000b4a: SWAP1
00000b4b: POP
00000b4c: CALLER
00000b4d: PUSH1 0x01
00000b4f: PUSH1 0x01
00000b51: PUSH1 0xa0
00000b53: SHL
00000b54: SUB
00000b55: DUP3
00000b56: AND
00000b57: EQ
00000b58: PUSH2 0x0b95
00000b5b: JUMPI
00000b5c: PUSH1 0x40
00000b5e: MLOAD
00000b5f: PUSH3 0x461bcd
00000b63: PUSH1 0xe5
00000b65: SHL
00000b66: DUP2
00000b67: MSTORE
00000b68: PUSH1 0x20
00000b6a: PUSH1 0x04
00000b6c: DUP3
00000b6d: ADD
00000b6e: MSTORE
00000b6f: PUSH1 0x0f
00000b71: PUSH1 0x24
00000b73: DUP3
00000b74: ADD
00000b75: MSTORE
00000b76: PUSH15 0x4e4f545f46524f4d5f425249444745
00000b86: PUSH1 0x88
00000b88: SHL
00000b89: PUSH1 0x44
00000b8b: DUP3
00000b8c: ADD
00000b8d: MSTORE
00000b8e: PUSH1 0x64
00000b90: ADD
00000b91: PUSH2 0x03ec
00000b94: JUMP
00000b95: JUMPDEST
00000b96: PUSH1 0x00
00000b98: PUSH2 0x0ba0
00000b9b: DUP4
00000b9c: PUSH2 0x105e
00000b9f: JUMP
00000ba0: JUMPDEST
00000ba1: PUSH1 0x00
00000ba3: SLOAD
00000ba4: SWAP1
00000ba5: SWAP2
00000ba6: POP
00000ba7: PUSH1 0x01
00000ba9: PUSH1 0x01
00000bab: PUSH1 0xa0
00000bad: SHL
00000bae: SUB
00000baf: DUP1
00000bb0: DUP4
00000bb1: AND
00000bb2: SWAP2
00000bb3: AND
00000bb4: EQ
00000bb5: PUSH2 0x0bfb
00000bb8: JUMPI
00000bb9: PUSH1 0x40
00000bbb: MLOAD
00000bbc: PUSH3 0x461bcd
00000bc0: PUSH1 0xe5
00000bc2: SHL
00000bc3: DUP2
00000bc4: MSTORE
00000bc5: PUSH1 0x20
00000bc7: PUSH1 0x04
00000bc9: DUP3
00000bca: ADD
00000bcb: MSTORE
00000bcc: PUSH1 0x18
00000bce: PUSH1 0x24
00000bd0: DUP3
00000bd1: ADD
00000bd2: MSTORE
00000bd3: PUSH24 0x4f4e4c595f434f554e544552504152545f47415445574159
00000bec: PUSH1 0x40
00000bee: SHL
00000bef: PUSH1 0x44
00000bf1: DUP3
00000bf2: ADD
00000bf3: MSTORE
00000bf4: PUSH1 0x64
00000bf6: ADD
00000bf7: PUSH2 0x03ec
00000bfa: JUMP
00000bfb: JUMPDEST
00000bfc: PUSH1 0x00
00000bfe: DUP1
00000bff: PUSH2 0x0c08
00000c02: DUP8
00000c03: DUP8
00000c04: PUSH2 0x1175
00000c07: JUMP
00000c08: JUMPDEST
00000c09: SWAP2
00000c0a: POP
00000c0b: SWAP2
00000c0c: POP
00000c0d: DUP1
00000c0e: MLOAD
00000c0f: PUSH1 0x00
00000c11: EQ
00000c12: PUSH2 0x0c26
00000c15: JUMPI
00000c16: POP
00000c17: PUSH1 0x40
00000c19: DUP1
00000c1a: MLOAD
00000c1b: PUSH1 0x20
00000c1d: DUP2
00000c1e: ADD
00000c1f: SWAP1
00000c20: SWAP2
00000c21: MSTORE
00000c22: PUSH1 0x00
00000c24: DUP2
00000c25: MSTORE
00000c26: JUMPDEST
00000c27: PUSH2 0x0c31
00000c2a: DUP3
00000c2b: DUP11
00000c2c: DUP4
00000c2d: PUSH2 0x0a42
00000c30: JUMP
00000c31: JUMPDEST
00000c32: POP
00000c33: SWAP9
00000c34: POP
00000c35: PUSH2 0x0c3f
00000c38: DUP12
00000c39: DUP11
00000c3a: DUP11
00000c3b: PUSH2 0x1190
00000c3e: JUMP
00000c3f: JUMPDEST
00000c40: DUP2
00000c41: DUP10
00000c42: PUSH1 0x01
00000c44: PUSH1 0x01
00000c46: PUSH1 0xa0
00000c48: SHL
00000c49: SUB
00000c4a: AND
00000c4b: DUP12
00000c4c: PUSH1 0x01
00000c4e: PUSH1 0x01
00000c50: PUSH1 0xa0
00000c52: SHL
00000c53: SUB
00000c54: AND
00000c55: PUSH32 0x891afe029c75c4f8c5855fc3480598bc5a53739344f6ae575bdb7ea2a79f56b3
00000c76: DUP15
00000c77: DUP13
00000c78: PUSH1 0x40
00000c7a: MLOAD
00000c7b: PUSH2 0x0c85
00000c7e: SWAP3
00000c7f: SWAP2
00000c80: SWAP1
00000c81: PUSH2 0x22c4
00000c84: JUMP
00000c85: JUMPDEST
00000c86: PUSH1 0x40
00000c88: MLOAD
00000c89: DUP1
00000c8a: SWAP2
00000c8b: SUB
00000c8c: SWAP1
00000c8d: LOG4
00000c8e: POP
00000c8f: POP
00000c90: POP
00000c91: POP
00000c92: POP
00000c93: POP
00000c94: POP
00000c95: POP
00000c96: POP
00000c97: POP
00000c98: POP
00000c99: JUMP
00000c9a: JUMPDEST
00000c9b: PUSH1 0x02
00000c9d: SLOAD
00000c9e: PUSH1 0x00
00000ca0: SWAP1
00000ca1: DUP2
00000ca2: SWAP1
00000ca3: PUSH2 0x0cb4
00000ca6: SWAP1
00000ca7: PUSH1 0x01
00000ca9: PUSH1 0x01
00000cab: PUSH1 0xa0
00000cad: SHL
00000cae: SUB
00000caf: AND
00000cb0: PUSH2 0x0ffa
00000cb3: JUMP
00000cb4: JUMPDEST
00000cb5: SWAP1
00000cb6: POP
00000cb7: DUP1
00000cb8: PUSH1 0x01
00000cba: PUSH1 0x01
00000cbc: PUSH1 0xa0
00000cbe: SHL
00000cbf: SUB
00000cc0: AND
00000cc1: PUSH4 0xe1758bd8
00000cc6: PUSH1 0x40
00000cc8: MLOAD
00000cc9: DUP2
00000cca: PUSH4 0xffffffff
00000ccf: AND
00000cd0: PUSH1 0xe0
00000cd2: SHL
00000cd3: DUP2
00000cd4: MSTORE
00000cd5: PUSH1 0x04
00000cd7: ADD
00000cd8: PUSH1 0x20
00000cda: PUSH1 0x40
00000cdc: MLOAD
00000cdd: DUP1
00000cde: DUP4
00000cdf: SUB
00000ce0: DUP2
00000ce1: DUP7
00000ce2: GAS
00000ce3: STATICCALL
00000ce4: ISZERO
00000ce5: DUP1
00000ce6: ISZERO
00000ce7: PUSH2 0x0cf4
00000cea: JUMPI
00000ceb: RETURNDATASIZE
00000cec: PUSH1 0x00
00000cee: DUP1
00000cef: RETURNDATACOPY
00000cf0: RETURNDATASIZE
00000cf1: PUSH1 0x00
00000cf3: REVERT
00000cf4: JUMPDEST
00000cf5: POP
00000cf6: POP
00000cf7: POP
00000cf8: POP
00000cf9: PUSH1 0x40
00000cfb: MLOAD
00000cfc: RETURNDATASIZE
00000cfd: PUSH1 0x1f
00000cff: NOT
00000d00: PUSH1 0x1f
00000d02: DUP3
00000d03: ADD
00000d04: AND
00000d05: DUP3
00000d06: ADD
00000d07: DUP1
00000d08: PUSH1 0x40
00000d0a: MSTORE
00000d0b: POP
00000d0c: DUP2
00000d0d: ADD
00000d0e: SWAP1
00000d0f: PUSH2 0x0d18
00000d12: SWAP2
00000d13: SWAP1
00000d14: PUSH2 0x22dd
00000d17: JUMP
00000d18: JUMPDEST
00000d19: SWAP2
00000d1a: POP
00000d1b: POP
00000d1c: SWAP1
00000d1d: JUMP
00000d1e: JUMPDEST
00000d1f: PUSH1 0x60
00000d21: PUSH1 0x02
00000d23: PUSH1 0x07
00000d25: SLOAD
00000d26: SUB
00000d27: PUSH2 0x0d42
00000d2a: JUMPI
00000d2b: PUSH1 0x40
00000d2d: MLOAD
00000d2e: PUSH3 0x461bcd
00000d32: PUSH1 0xe5
00000d34: SHL
00000d35: DUP2
00000d36: MSTORE
00000d37: PUSH1 0x04
00000d39: ADD
00000d3a: PUSH2 0x03ec
00000d3d: SWAP1
00000d3e: PUSH2 0x2130
00000d41: JUMP
00000d42: JUMPDEST
00000d43: PUSH1 0x02
00000d45: PUSH1 0x07
00000d47: SSTORE
00000d48: PUSH2 0x0d57
00000d4b: DUP10
00000d4c: DUP10
00000d4d: DUP10
00000d4e: DUP10
00000d4f: DUP10
00000d50: DUP10
00000d51: DUP10
00000d52: DUP10
00000d53: PUSH2 0x11a9
00000d56: JUMP
00000d57: JUMPDEST
00000d58: PUSH1 0x01
00000d5a: PUSH1 0x07
00000d5c: SSTORE
00000d5d: SWAP10
00000d5e: SWAP9
00000d5f: POP
00000d60: POP
00000d61: POP
00000d62: POP
00000d63: POP
00000d64: POP
00000d65: POP
00000d66: POP
00000d67: POP
00000d68: JUMP
00000d69: JUMPDEST
00000d6a: PUSH2 0x0d73
00000d6d: DUP4
00000d6e: DUP4
00000d6f: PUSH2 0x13f9
00000d72: JUMP
00000d73: JUMPDEST
00000d74: PUSH1 0x01
00000d76: PUSH1 0x01
00000d78: PUSH1 0xa0
00000d7a: SHL
00000d7b: SUB
00000d7c: DUP3
00000d7d: AND
00000d7e: PUSH2 0x0db6
00000d81: JUMPI
00000d82: PUSH1 0x40
00000d84: MLOAD
00000d85: PUSH3 0x461bcd
00000d89: PUSH1 0xe5
00000d8b: SHL
00000d8c: DUP2
00000d8d: MSTORE
00000d8e: PUSH1 0x20
00000d90: PUSH1 0x04
00000d92: DUP3
00000d93: ADD
00000d94: MSTORE
00000d95: PUSH1 0x0a
00000d97: PUSH1 0x24
00000d99: DUP3
00000d9a: ADD
00000d9b: MSTORE
00000d9c: PUSH10 0x2120a22fa927aaaa22a9
00000da7: PUSH1 0xb1
00000da9: SHL
00000daa: PUSH1 0x44
00000dac: DUP3
00000dad: ADD
00000dae: MSTORE
00000daf: PUSH1 0x64
00000db1: ADD
00000db2: PUSH2 0x03ec
00000db5: JUMP
00000db6: JUMPDEST
00000db7: PUSH1 0x01
00000db9: PUSH1 0x01
00000dbb: PUSH1 0xa0
00000dbd: SHL
00000dbe: SUB
00000dbf: DUP2
00000dc0: AND
00000dc1: PUSH2 0x0df8
00000dc4: JUMPI
00000dc5: PUSH1 0x40
00000dc7: MLOAD
00000dc8: PUSH3 0x461bcd
00000dcc: PUSH1 0xe5
00000dce: SHL
00000dcf: DUP2
00000dd0: MSTORE
00000dd1: PUSH1 0x20
00000dd3: PUSH1 0x04
00000dd5: DUP3
00000dd6: ADD
00000dd7: MSTORE
00000dd8: PUSH1 0x09
00000dda: PUSH1 0x24
00000ddc: DUP3
00000ddd: ADD
00000dde: MSTORE
00000ddf: PUSH9 0x0848288be929c849eb
00000de9: PUSH1 0xbb
00000deb: SHL
00000dec: PUSH1 0x44
00000dee: DUP3
00000def: ADD
00000df0: MSTORE
00000df1: PUSH1 0x64
00000df3: ADD
00000df4: PUSH2 0x03ec
00000df7: JUMP
00000df8: JUMPDEST
00000df9: PUSH1 0x02
00000dfb: DUP1
00000dfc: SLOAD
00000dfd: PUSH1 0x01
00000dff: PUSH1 0x01
00000e01: PUSH1 0xa0
00000e03: SHL
00000e04: SUB
00000e05: NOT
00000e06: AND
00000e07: PUSH1 0x01
00000e09: PUSH1 0x01
00000e0b: PUSH1 0xa0
00000e0d: SHL
00000e0e: SUB
00000e0f: SWAP3
00000e10: SWAP1
00000e11: SWAP3
00000e12: AND
00000e13: SWAP2
00000e14: SWAP1
00000e15: SWAP2
00000e16: OR
00000e17: SWAP1
00000e18: SSTORE
00000e19: POP
00000e1a: POP
00000e1b: JUMP
00000e1c: JUMPDEST
00000e1d: PUSH1 0x40
00000e1f: DUP1
00000e20: MLOAD
00000e21: PUSH1 0x04
00000e23: DUP2
00000e24: MSTORE
00000e25: PUSH1 0x24
00000e27: DUP2
00000e28: ADD
00000e29: DUP3
00000e2a: MSTORE
00000e2b: PUSH1 0x20
00000e2d: DUP2
00000e2e: ADD
00000e2f: DUP1
00000e30: MLOAD
00000e31: PUSH1 0x01
00000e33: PUSH1 0x01
00000e35: PUSH1 0xe0
00000e37: SHL
00000e38: SUB
00000e39: AND
00000e3a: PUSH1 0x01
00000e3c: PUSH1 0x01
00000e3e: PUSH1 0xe0
00000e40: SHL
00000e41: SUB
00000e42: NOT
00000e43: DUP6
00000e44: AND
00000e45: OR
00000e46: SWAP1
00000e47: MSTORE
00000e48: SWAP1
00000e49: MLOAD
00000e4a: PUSH1 0x60
00000e4c: SWAP2
00000e4d: PUSH1 0x00
00000e4f: SWAP2
00000e50: PUSH1 0x01
00000e52: PUSH1 0x01
00000e54: PUSH1 0xa0
00000e56: SHL
00000e57: SUB
00000e58: DUP7
00000e59: AND
00000e5a: SWAP2
00000e5b: PUSH2 0x0e63
00000e5e: SWAP2
00000e5f: PUSH2 0x22fa
00000e62: JUMP
00000e63: JUMPDEST
00000e64: PUSH1 0x00
00000e66: PUSH1 0x40
00000e68: MLOAD
00000e69: DUP1
00000e6a: DUP4
00000e6b: SUB
00000e6c: DUP2
00000e6d: DUP6
00000e6e: GAS
00000e6f: STATICCALL
00000e70: SWAP2
00000e71: POP
00000e72: POP
00000e73: RETURNDATASIZE
00000e74: DUP1
00000e75: PUSH1 0x00
00000e77: DUP2
00000e78: EQ
00000e79: PUSH2 0x0e9e
00000e7c: JUMPI
00000e7d: PUSH1 0x40
00000e7f: MLOAD
00000e80: SWAP2
00000e81: POP
00000e82: PUSH1 0x1f
00000e84: NOT
00000e85: PUSH1 0x3f
00000e87: RETURNDATASIZE
00000e88: ADD
00000e89: AND
00000e8a: DUP3
00000e8b: ADD
00000e8c: PUSH1 0x40
00000e8e: MSTORE
00000e8f: RETURNDATASIZE
00000e90: DUP3
00000e91: MSTORE
00000e92: RETURNDATASIZE
00000e93: PUSH1 0x00
00000e95: PUSH1 0x20
00000e97: DUP5
00000e98: ADD
00000e99: RETURNDATACOPY
00000e9a: PUSH2 0x0ea3
00000e9d: JUMP
00000e9e: JUMPDEST
00000e9f: PUSH1 0x60
00000ea1: SWAP2
00000ea2: POP
00000ea3: JUMPDEST
00000ea4: POP
00000ea5: SWAP6
00000ea6: SWAP5
00000ea7: POP
00000ea8: POP
00000ea9: POP
00000eaa: POP
00000eab: POP
00000eac: JUMP
00000ead: JUMPDEST
00000eae: PUSH1 0x60
00000eb0: DUP3
00000eb1: DUP3
00000eb2: PUSH1 0x40
00000eb4: MLOAD
00000eb5: PUSH1 0x20
00000eb7: ADD
00000eb8: PUSH2 0x0ec2
00000ebb: SWAP3
00000ebc: SWAP2
00000ebd: SWAP1
00000ebe: PUSH2 0x2316
00000ec1: JUMP
00000ec2: JUMPDEST
00000ec3: PUSH1 0x40
00000ec5: MLOAD
00000ec6: PUSH1 0x20
00000ec8: DUP2
00000ec9: DUP4
00000eca: SUB
00000ecb: SUB
00000ecc: DUP2
00000ecd: MSTORE
00000ece: SWAP1
00000ecf: PUSH1 0x40
00000ed1: MSTORE
00000ed2: SWAP1
00000ed3: POP
00000ed4: SWAP3
00000ed5: SWAP2
00000ed6: POP
00000ed7: POP
00000ed8: JUMP
00000ed9: JUMPDEST
00000eda: PUSH1 0x00
00000edc: DUP1
00000edd: SLOAD
00000ede: PUSH1 0x40
00000ee0: MLOAD
00000ee1: PUSH1 0x01
00000ee3: PUSH1 0x01
00000ee5: PUSH1 0xa0
00000ee7: SHL
00000ee8: SUB
00000ee9: SWAP1
00000eea: SWAP2
00000eeb: AND
00000eec: SWAP1
00000eed: PUSH2 0x0efa
00000ef0: SWAP1
00000ef1: DUP5
00000ef2: SWAP1
00000ef3: PUSH1 0x20
00000ef5: ADD
00000ef6: PUSH2 0x1bbd
00000ef9: JUMP
00000efa: JUMPDEST
00000efb: PUSH1 0x40
00000efd: MLOAD
00000efe: PUSH1 0x20
00000f00: DUP2
00000f01: DUP4
00000f02: SUB
00000f03: SUB
00000f04: DUP2
00000f05: MSTORE
00000f06: SWAP1
00000f07: PUSH1 0x40
00000f09: MSTORE
00000f0a: DUP1
00000f0b: MLOAD
00000f0c: SWAP1
00000f0d: PUSH1 0x20
00000f0f: ADD
00000f10: KECCAK256
00000f11: PUSH1 0x40
00000f13: MLOAD
00000f14: PUSH1 0x20
00000f16: ADD
00000f17: PUSH2 0x0f21
00000f1a: SWAP3
00000f1b: SWAP2
00000f1c: SWAP1
00000f1d: PUSH2 0x22c4
00000f20: JUMP
00000f21: JUMPDEST
00000f22: PUSH1 0x40
00000f24: MLOAD
00000f25: PUSH1 0x20
00000f27: DUP2
00000f28: DUP4
00000f29: SUB
00000f2a: SUB
00000f2b: DUP2
00000f2c: MSTORE
00000f2d: SWAP1
00000f2e: PUSH1 0x40
00000f30: MSTORE
00000f31: DUP1
00000f32: MLOAD
00000f33: SWAP1
00000f34: PUSH1 0x20
00000f36: ADD
00000f37: KECCAK256
00000f38: SWAP1
00000f39: POP
00000f3a: SWAP2
00000f3b: SWAP1
00000f3c: POP
00000f3d: JUMP
00000f3e: JUMPDEST
00000f3f: PUSH1 0x00
00000f41: PUSH1 0x40
00000f43: MLOAD
00000f44: DUP4
00000f45: PUSH1 0x40
00000f47: DUP3
00000f48: ADD
00000f49: MSTORE
00000f4a: DUP5
00000f4b: PUSH1 0x20
00000f4d: DUP3
00000f4e: ADD
00000f4f: MSTORE
00000f50: DUP3
00000f51: DUP2
00000f52: MSTORE
00000f53: PUSH1 0x0b
00000f55: DUP2
00000f56: ADD
00000f57: SWAP1
00000f58: POP
00000f59: PUSH1 0xff
00000f5b: DUP2
00000f5c: MSTORE8
00000f5d: PUSH1 0x55
00000f5f: SWAP1
00000f60: KECCAK256
00000f61: SWAP5
00000f62: SWAP4
00000f63: POP
00000f64: POP
00000f65: POP
00000f66: POP
00000f67: JUMP
00000f68: JUMPDEST
00000f69: PUSH1 0x00
00000f6b: PUSH2 0x0f74
00000f6e: DUP6
00000f6f: DUP6
00000f70: PUSH2 0x0385
00000f73: JUMP
00000f74: JUMPDEST
00000f75: PUSH1 0x40
00000f77: DUP1
00000f78: MLOAD
00000f79: PUSH1 0x60
00000f7b: DUP2
00000f7c: ADD
00000f7d: DUP3
00000f7e: MSTORE
00000f7f: PUSH1 0x01
00000f81: DUP1
00000f82: DUP3
00000f83: MSTORE
00000f84: PUSH1 0x01
00000f86: PUSH1 0x01
00000f88: PUSH1 0xa0
00000f8a: SHL
00000f8b: SUB
00000f8c: DUP8
00000f8d: DUP2
00000f8e: AND
00000f8f: PUSH1 0x20
00000f91: DUP1
00000f92: DUP6
00000f93: ADD
00000f94: SWAP2
00000f95: DUP3
00000f96: MSTORE
00000f97: DUP5
00000f98: DUP7
00000f99: ADD
00000f9a: DUP10
00000f9b: DUP2
00000f9c: MSTORE
00000f9d: PUSH1 0x00
00000f9f: DUP9
00000fa0: DUP2
00000fa1: MSTORE
00000fa2: PUSH1 0x03
00000fa4: SWAP1
00000fa5: SWAP3
00000fa6: MSTORE
00000fa7: SWAP6
00000fa8: SWAP1
00000fa9: KECCAK256
00000faa: DUP5
00000fab: MLOAD
00000fac: DUP2
00000fad: SLOAD
00000fae: SWAP3
00000faf: MLOAD
00000fb0: PUSH1 0x01
00000fb2: PUSH1 0x01
00000fb4: PUSH1 0xa8
00000fb6: SHL
00000fb7: SUB
00000fb8: NOT
00000fb9: SWAP1
00000fba: SWAP4
00000fbb: AND
00000fbc: SWAP1
00000fbd: ISZERO
00000fbe: ISZERO
00000fbf: PUSH2 0x0100
00000fc2: PUSH1 0x01
00000fc4: PUSH1 0xa8
00000fc6: SHL
00000fc7: SUB
00000fc8: NOT
00000fc9: AND
00000fca: OR
00000fcb: PUSH2 0x0100
00000fce: SWAP3
00000fcf: SWAP1
00000fd0: SWAP4
00000fd1: AND
00000fd2: SWAP2
00000fd3: SWAP1
00000fd4: SWAP2
00000fd5: MUL
00000fd6: SWAP2
00000fd7: SWAP1
00000fd8: SWAP2
00000fd9: OR
00000fda: DUP2
00000fdb: SSTORE
00000fdc: SWAP3
00000fdd: MLOAD
00000fde: SWAP4
00000fdf: SWAP5
00000fe0: POP
00000fe1: SWAP1
00000fe2: SWAP3
00000fe3: SWAP1
00000fe4: DUP3
00000fe5: ADD
00000fe6: SWAP1
00000fe7: PUSH2 0x0ff0
00000fea: SWAP1
00000feb: DUP3
00000fec: PUSH2 0x2389
00000fef: JUMP
00000ff0: JUMPDEST
00000ff1: POP
00000ff2: POP
00000ff3: POP
00000ff4: POP
00000ff5: POP
00000ff6: POP
00000ff7: POP
00000ff8: POP
00000ff9: JUMP
00000ffa: JUMPDEST
00000ffb: PUSH1 0x00
00000ffd: DUP2
00000ffe: PUSH1 0x01
00001000: PUSH1 0x01
00001002: PUSH1 0xa0
00001004: SHL
00001005: SUB
00001006: AND
00001007: PUSH4 0xe78cea92
0000100c: PUSH1 0x40
0000100e: MLOAD
0000100f: DUP2
00001010: PUSH4 0xffffffff
00001015: AND
00001016: PUSH1 0xe0
00001018: SHL
00001019: DUP2
0000101a: MSTORE
0000101b: PUSH1 0x04
0000101d: ADD
0000101e: PUSH1 0x20
00001020: PUSH1 0x40
00001022: MLOAD
00001023: DUP1
00001024: DUP4
00001025: SUB
00001026: DUP2
00001027: DUP7
00001028: GAS
00001029: STATICCALL
0000102a: ISZERO
0000102b: DUP1
0000102c: ISZERO
0000102d: PUSH2 0x103a
00001030: JUMPI
00001031: RETURNDATASIZE
00001032: PUSH1 0x00
00001034: DUP1
00001035: RETURNDATACOPY
00001036: RETURNDATASIZE
00001037: PUSH1 0x00
00001039: REVERT
0000103a: JUMPDEST
0000103b: POP
0000103c: POP
0000103d: POP
0000103e: POP
0000103f: PUSH1 0x40
00001041: MLOAD
00001042: RETURNDATASIZE
00001043: PUSH1 0x1f
00001045: NOT
00001046: PUSH1 0x1f
00001048: DUP3
00001049: ADD
0000104a: AND
0000104b: DUP3
0000104c: ADD
0000104d: DUP1
0000104e: PUSH1 0x40
00001050: MSTORE
00001051: POP
00001052: DUP2
00001053: ADD
00001054: SWAP1
00001055: PUSH2 0x037f
00001058: SWAP2
00001059: SWAP1
0000105a: PUSH2 0x22dd
0000105d: JUMP
0000105e: JUMPDEST
0000105f: PUSH1 0x00
00001061: DUP1
00001062: PUSH2 0x106a
00001065: DUP4
00001066: PUSH2 0x0ffa
00001069: JUMP
0000106a: JUMPDEST
0000106b: PUSH1 0x01
0000106d: PUSH1 0x01
0000106f: PUSH1 0xa0
00001071: SHL
00001072: SUB
00001073: AND
00001074: PUSH4 0xab5d8943
00001079: PUSH1 0x40
0000107b: MLOAD
0000107c: DUP2
0000107d: PUSH4 0xffffffff
00001082: AND
00001083: PUSH1 0xe0
00001085: SHL
00001086: DUP2
00001087: MSTORE
00001088: PUSH1 0x04
0000108a: ADD
0000108b: PUSH1 0x20
0000108d: PUSH1 0x40
0000108f: MLOAD
00001090: DUP1
00001091: DUP4
00001092: SUB
00001093: DUP2
00001094: DUP7
00001095: GAS
00001096: STATICCALL
00001097: ISZERO
00001098: DUP1
00001099: ISZERO
0000109a: PUSH2 0x10a7
0000109d: JUMPI
0000109e: RETURNDATASIZE
0000109f: PUSH1 0x00
000010a1: DUP1
000010a2: RETURNDATACOPY
000010a3: RETURNDATASIZE
000010a4: PUSH1 0x00
000010a6: REVERT
000010a7: JUMPDEST
000010a8: POP
000010a9: POP
000010aa: POP
000010ab: POP
000010ac: PUSH1 0x40
000010ae: MLOAD
000010af: RETURNDATASIZE
000010b0: PUSH1 0x1f
000010b2: NOT
000010b3: PUSH1 0x1f
000010b5: DUP3
000010b6: ADD
000010b7: AND
000010b8: DUP3
000010b9: ADD
000010ba: DUP1
000010bb: PUSH1 0x40
000010bd: MSTORE
000010be: POP
000010bf: DUP2
000010c0: ADD
000010c1: SWAP1
000010c2: PUSH2 0x10cb
000010c5: SWAP2
000010c6: SWAP1
000010c7: PUSH2 0x22dd
000010ca: JUMP
000010cb: JUMPDEST
000010cc: SWAP1
000010cd: POP
000010ce: PUSH1 0x00
000010d0: DUP2
000010d1: PUSH1 0x01
000010d3: PUSH1 0x01
000010d5: PUSH1 0xa0
000010d7: SHL
000010d8: SUB
000010d9: AND
000010da: PUSH4 0x80648b02
000010df: PUSH1 0x40
000010e1: MLOAD
000010e2: DUP2
000010e3: PUSH4 0xffffffff
000010e8: AND
000010e9: PUSH1 0xe0
000010eb: SHL
000010ec: DUP2
000010ed: MSTORE
000010ee: PUSH1 0x04
000010f0: ADD
000010f1: PUSH1 0x20
000010f3: PUSH1 0x40
000010f5: MLOAD
000010f6: DUP1
000010f7: DUP4
000010f8: SUB
000010f9: DUP2
000010fa: DUP7
000010fb: GAS
000010fc: STATICCALL
000010fd: ISZERO
000010fe: DUP1
000010ff: ISZERO
00001100: PUSH2 0x110d
00001103: JUMPI
00001104: RETURNDATASIZE
00001105: PUSH1 0x00
00001107: DUP1
00001108: RETURNDATACOPY
00001109: RETURNDATASIZE
0000110a: PUSH1 0x00
0000110c: REVERT
0000110d: JUMPDEST
0000110e: POP
0000110f: POP
00001110: POP
00001111: POP
00001112: PUSH1 0x40
00001114: MLOAD
00001115: RETURNDATASIZE
00001116: PUSH1 0x1f
00001118: NOT
00001119: PUSH1 0x1f
0000111b: DUP3
0000111c: ADD
0000111d: AND
0000111e: DUP3
0000111f: ADD
00001120: DUP1
00001121: PUSH1 0x40
00001123: MSTORE
00001124: POP
00001125: DUP2
00001126: ADD
00001127: SWAP1
00001128: PUSH2 0x1131
0000112b: SWAP2
0000112c: SWAP1
0000112d: PUSH2 0x22dd
00001130: JUMP
00001131: JUMPDEST
00001132: SWAP1
00001133: POP
00001134: PUSH1 0x01
00001136: PUSH1 0x01
00001138: PUSH1 0xa0
0000113a: SHL
0000113b: SUB
0000113c: DUP2
0000113d: AND
0000113e: PUSH2 0x0704
00001141: JUMPI
00001142: PUSH1 0x40
00001144: MLOAD
00001145: PUSH3 0x461bcd
00001149: PUSH1 0xe5
0000114b: SHL
0000114c: DUP2
0000114d: MSTORE
0000114e: PUSH1 0x20
00001150: PUSH1 0x04
00001152: DUP3
00001153: ADD
00001154: MSTORE
00001155: PUSH1 0x09
00001157: PUSH1 0x24
00001159: DUP3
0000115a: ADD
0000115b: MSTORE
0000115c: PUSH9 0x2727afa9a2a72222a9
00001166: PUSH1 0xb9
00001168: SHL
00001169: PUSH1 0x44
0000116b: DUP3
0000116c: ADD
0000116d: MSTORE
0000116e: PUSH1 0x64
00001170: ADD
00001171: PUSH2 0x03ec
00001174: JUMP
00001175: JUMPDEST
00001176: PUSH1 0x00
00001178: PUSH1 0x60
0000117a: PUSH2 0x1185
0000117d: DUP4
0000117e: DUP6
0000117f: ADD
00001180: DUP6
00001181: PUSH2 0x2448
00001184: JUMP
00001185: JUMPDEST
00001186: SWAP1
00001187: SWAP6
00001188: SWAP1
00001189: SWAP5
0000118a: POP
0000118b: SWAP3
0000118c: POP
0000118d: POP
0000118e: POP
0000118f: JUMP
00001190: JUMPDEST
00001191: PUSH2 0x11a4
00001194: PUSH1 0x01
00001196: PUSH1 0x01
00001198: PUSH1 0xa0
0000119a: SHL
0000119b: SUB
0000119c: DUP5
0000119d: AND
0000119e: DUP4
0000119f: DUP4
000011a0: PUSH2 0x14bb
000011a3: JUMP
000011a4: JUMPDEST
000011a5: POP
000011a6: POP
000011a7: POP
000011a8: JUMP
000011a9: JUMPDEST
000011aa: PUSH1 0x60
000011ac: PUSH2 0x11b4
000011af: CALLER
000011b0: PUSH2 0x1511
000011b3: JUMP
000011b4: JUMPDEST
000011b5: PUSH2 0x11f2
000011b8: JUMPI
000011b9: PUSH1 0x40
000011bb: MLOAD
000011bc: PUSH3 0x461bcd
000011c0: PUSH1 0xe5
000011c2: SHL
000011c3: DUP2
000011c4: MSTORE
000011c5: PUSH1 0x20
000011c7: PUSH1 0x04
000011c9: DUP3
000011ca: ADD
000011cb: MSTORE
000011cc: PUSH1 0x0f
000011ce: PUSH1 0x24
000011d0: DUP3
000011d1: ADD
000011d2: MSTORE
000011d3: PUSH15 0x2727aa2fa32927a6afa927aaaa22a9
000011e3: PUSH1 0x89
000011e5: SHL
000011e6: PUSH1 0x44
000011e8: DUP3
000011e9: ADD
000011ea: MSTORE
000011eb: PUSH1 0x64
000011ed: ADD
000011ee: PUSH2 0x03ec
000011f1: JUMP
000011f2: JUMPDEST
000011f3: PUSH1 0x00
000011f5: DUP1
000011f6: PUSH1 0x60
000011f8: PUSH1 0x00
000011fa: DUP1
000011fb: PUSH2 0x1203
000011fe: CALLER
000011ff: PUSH2 0x1511
00001202: JUMP
00001203: JUMPDEST
00001204: ISZERO
00001205: PUSH2 0x121c
00001208: JUMPI
00001209: PUSH2 0x1212
0000120c: DUP9
0000120d: DUP9
0000120e: PUSH2 0x1525
00001211: JUMP
00001212: JUMPDEST
00001213: SWAP1
00001214: SWAP6
00001215: POP
00001216: SWAP3
00001217: POP
00001218: PUSH2 0x1259
0000121b: JUMP
0000121c: JUMPDEST
0000121d: CALLER
0000121e: SWAP5
0000121f: POP
00001220: DUP8
00001221: DUP8
00001222: DUP1
00001223: DUP1
00001224: PUSH1 0x1f
00001226: ADD
00001227: PUSH1 0x20
00001229: DUP1
0000122a: SWAP2
0000122b: DIV
0000122c: MUL
0000122d: PUSH1 0x20
0000122f: ADD
00001230: PUSH1 0x40
00001232: MLOAD
00001233: SWAP1
00001234: DUP2
00001235: ADD
00001236: PUSH1 0x40
00001238: MSTORE
00001239: DUP1
0000123a: SWAP4
0000123b: SWAP3
0000123c: SWAP2
0000123d: SWAP1
0000123e: DUP2
0000123f: DUP2
00001240: MSTORE
00001241: PUSH1 0x20
00001243: ADD
00001244: DUP4
00001245: DUP4
00001246: DUP1
00001247: DUP3
00001248: DUP5
00001249: CALLDATACOPY
0000124a: PUSH1 0x00
0000124c: SWAP3
0000124d: ADD
0000124e: SWAP2
0000124f: SWAP1
00001250: SWAP2
00001251: MSTORE
00001252: POP
00001253: SWAP3
00001254: SWAP6
00001255: POP
00001256: POP
00001257: POP
00001258: POP
00001259: JUMPDEST
0000125a: PUSH2 0x1262
0000125d: DUP4
0000125e: PUSH2 0x1541
00001261: JUMP
00001262: JUMPDEST
00001263: DUP2
00001264: MLOAD
00001265: SWAP2
00001266: SWAP6
00001267: POP
00001268: SWAP2
00001269: SWAP4
0000126a: POP
0000126b: SWAP1
0000126c: SWAP2
0000126d: POP
0000126e: ISZERO
0000126f: PUSH2 0x12b0
00001272: JUMPI
00001273: PUSH1 0x40
00001275: MLOAD
00001276: PUSH3 0x461bcd
0000127a: PUSH1 0xe5
0000127c: SHL
0000127d: DUP2
0000127e: MSTORE
0000127f: PUSH1 0x20
00001281: PUSH1 0x04
00001283: DUP3
00001284: ADD
00001285: MSTORE
00001286: PUSH1 0x13
00001288: PUSH1 0x24
0000128a: DUP3
0000128b: ADD
0000128c: MSTORE
0000128d: PUSH19 0x115615149057d110551057d11254d050931151
000012a1: PUSH1 0x6a
000012a3: SHL
000012a4: PUSH1 0x44
000012a6: DUP3
000012a7: ADD
000012a8: MSTORE
000012a9: PUSH1 0x64
000012ab: ADD
000012ac: PUSH2 0x03ec
000012af: JUMP
000012b0: JUMPDEST
000012b1: PUSH1 0x01
000012b3: PUSH1 0x01
000012b5: PUSH1 0xa0
000012b7: SHL
000012b8: SUB
000012b9: DUP15
000012ba: AND
000012bb: EXTCODESIZE
000012bc: PUSH2 0x12f9
000012bf: JUMPI
000012c0: PUSH1 0x40
000012c2: MLOAD
000012c3: PUSH3 0x461bcd
000012c7: PUSH1 0xe5
000012c9: SHL
000012ca: DUP2
000012cb: MSTORE
000012cc: PUSH1 0x20
000012ce: PUSH1 0x04
000012d0: DUP3
000012d1: ADD
000012d2: MSTORE
000012d3: PUSH1 0x0f
000012d5: PUSH1 0x24
000012d7: DUP3
000012d8: ADD
000012d9: MSTORE
000012da: PUSH15 0x130c57d393d517d0d3d395149050d5
000012ea: PUSH1 0x8a
000012ec: SHL
000012ed: PUSH1 0x44
000012ef: DUP3
000012f0: ADD
000012f1: MSTORE
000012f2: PUSH1 0x64
000012f4: ADD
000012f5: PUSH2 0x03ec
000012f8: JUMP
000012f9: JUMPDEST
000012fa: PUSH1 0x00
000012fc: PUSH2 0x1304
000012ff: DUP16
00001300: PUSH2 0x06da
00001303: JUMP
00001304: JUMPDEST
00001305: SWAP1
00001306: POP
00001307: PUSH1 0x01
00001309: PUSH1 0x01
0000130b: PUSH1 0xa0
0000130d: SHL
0000130e: SUB
0000130f: DUP2
00001310: AND
00001311: PUSH2 0x134e
00001314: JUMPI
00001315: PUSH1 0x40
00001317: MLOAD
00001318: PUSH3 0x461bcd
0000131c: PUSH1 0xe5
0000131e: SHL
0000131f: DUP2
00001320: MSTORE
00001321: PUSH1 0x20
00001323: PUSH1 0x04
00001325: DUP3
00001326: ADD
00001327: MSTORE
00001328: PUSH1 0x0f
0000132a: PUSH1 0x24
0000132c: DUP3
0000132d: ADD
0000132e: MSTORE
0000132f: PUSH15 0x1393d7d30c97d513d2d15397d4d155
0000133f: PUSH1 0x8a
00001341: SHL
00001342: PUSH1 0x44
00001344: DUP3
00001345: ADD
00001346: MSTORE
00001347: PUSH1 0x64
00001349: ADD
0000134a: PUSH2 0x03ec
0000134d: JUMP
0000134e: JUMPDEST
0000134f: PUSH2 0x1359
00001352: DUP16
00001353: DUP8
00001354: DUP15
00001355: PUSH2 0x1568
00001358: JUMP
00001359: JUMPDEST
0000135a: SWAP12
0000135b: POP
0000135c: PUSH2 0x1368
0000135f: DUP16
00001360: DUP8
00001361: DUP16
00001362: DUP16
00001363: DUP9
00001364: PUSH2 0x0617
00001367: JUMP
00001368: JUMPDEST
00001369: SWAP7
0000136a: POP
0000136b: PUSH2 0x137a
0000136e: DUP15
0000136f: DUP8
00001370: DUP15
00001371: DUP15
00001372: DUP15
00001373: DUP9
00001374: DUP9
00001375: DUP15
00001376: PUSH2 0x1675
00001379: JUMP
0000137a: JUMPDEST
0000137b: SWAP5
0000137c: POP
0000137d: POP
0000137e: POP
0000137f: POP
00001380: DUP2
00001381: DUP11
00001382: PUSH1 0x01
00001384: PUSH1 0x01
00001386: PUSH1 0xa0
00001388: SHL
00001389: SUB
0000138a: AND
0000138b: DUP5
0000138c: PUSH1 0x01
0000138e: PUSH1 0x01
00001390: PUSH1 0xa0
00001392: SHL
00001393: SUB
00001394: AND
00001395: PUSH32 0xb8910b9960c443aac3240b98585384e3a6f109fbf6969e264c3f183d69aba7e1
000013b6: DUP16
000013b7: DUP14
000013b8: PUSH1 0x40
000013ba: MLOAD
000013bb: PUSH2 0x13c5
000013be: SWAP3
000013bf: SWAP2
000013c0: SWAP1
000013c1: PUSH2 0x22c4
000013c4: JUMP
000013c5: JUMPDEST
000013c6: PUSH1 0x40
000013c8: MLOAD
000013c9: DUP1
000013ca: SWAP2
000013cb: SUB
000013cc: SWAP1
000013cd: LOG4
000013ce: PUSH1 0x40
000013d0: DUP1
000013d1: MLOAD
000013d2: PUSH1 0x20
000013d4: DUP2
000013d5: ADD
000013d6: DUP5
000013d7: SWAP1
000013d8: MSTORE
000013d9: ADD
000013da: PUSH1 0x40
000013dc: MLOAD
000013dd: PUSH1 0x20
000013df: DUP2
000013e0: DUP4
000013e1: SUB
000013e2: SUB
000013e3: DUP2
000013e4: MSTORE
000013e5: SWAP1
000013e6: PUSH1 0x40
000013e8: MSTORE
000013e9: SWAP4
000013ea: POP
000013eb: POP
000013ec: POP
000013ed: POP
000013ee: SWAP9
000013ef: SWAP8
000013f0: POP
000013f1: POP
000013f2: POP
000013f3: POP
000013f4: POP
000013f5: POP
000013f6: POP
000013f7: POP
000013f8: JUMP
000013f9: JUMPDEST
000013fa: PUSH1 0x01
000013fc: PUSH1 0x01
000013fe: PUSH1 0xa0
00001400: SHL
00001401: SUB
00001402: DUP3
00001403: AND
00001404: PUSH2 0x1445
00001407: JUMPI
00001408: PUSH1 0x40
0000140a: MLOAD
0000140b: PUSH3 0x461bcd
0000140f: PUSH1 0xe5
00001411: SHL
00001412: DUP2
00001413: MSTORE
00001414: PUSH1 0x20
00001416: PUSH1 0x04
00001418: DUP3
00001419: ADD
0000141a: MSTORE
0000141b: PUSH1 0x13
0000141d: PUSH1 0x24
0000141f: DUP3
00001420: ADD
00001421: MSTORE
00001422: PUSH19 0x1253959053125117d0d3d55395115494105495
00001436: PUSH1 0x6a
00001438: SHL
00001439: PUSH1 0x44
0000143b: DUP3
0000143c: ADD
0000143d: MSTORE
0000143e: PUSH1 0x64
00001440: ADD
00001441: PUSH2 0x03ec
00001444: JUMP
00001445: JUMPDEST
00001446: PUSH1 0x00
00001448: SLOAD
00001449: PUSH1 0x01
0000144b: PUSH1 0x01
0000144d: PUSH1 0xa0
0000144f: SHL
00001450: SUB
00001451: AND
00001452: ISZERO
00001453: PUSH2 0x148d
00001456: JUMPI
00001457: PUSH1 0x40
00001459: MLOAD
0000145a: PUSH3 0x461bcd
0000145e: PUSH1 0xe5
00001460: SHL
00001461: DUP2
00001462: MSTORE
00001463: PUSH1 0x20
00001465: PUSH1 0x04
00001467: DUP3
00001468: ADD
00001469: MSTORE
0000146a: PUSH1 0x0c
0000146c: PUSH1 0x24
0000146e: DUP3
0000146f: ADD
00001470: MSTORE
00001471: PUSH12 0x1053149150511657d2539255
0000147e: PUSH1 0xa2
00001480: SHL
00001481: PUSH1 0x44
00001483: DUP3
00001484: ADD
00001485: MSTORE
00001486: PUSH1 0x64
00001488: ADD
00001489: PUSH2 0x03ec
0000148c: JUMP
0000148d: JUMPDEST
0000148e: PUSH1 0x00
00001490: DUP1
00001491: SLOAD
00001492: PUSH1 0x01
00001494: PUSH1 0x01
00001496: PUSH1 0xa0
00001498: SHL
00001499: SUB
0000149a: SWAP4
0000149b: DUP5
0000149c: AND
0000149d: PUSH1 0x01
0000149f: PUSH1 0x01
000014a1: PUSH1 0xa0
000014a3: SHL
000014a4: SUB
000014a5: NOT
000014a6: SWAP2
000014a7: DUP3
000014a8: AND
000014a9: OR
000014aa: SWAP1
000014ab: SWAP2
000014ac: SSTORE
000014ad: PUSH1 0x01
000014af: DUP1
000014b0: SLOAD
000014b1: SWAP3
000014b2: SWAP1
000014b3: SWAP4
000014b4: AND
000014b5: SWAP2
000014b6: AND
000014b7: OR
000014b8: SWAP1
000014b9: SSTORE
000014ba: JUMP
000014bb: JUMPDEST
000014bc: PUSH2 0x11a4
000014bf: DUP4
000014c0: PUSH4 0xa9059cbb
000014c5: PUSH1 0xe0
000014c7: SHL
000014c8: DUP5
000014c9: DUP5
000014ca: PUSH1 0x40
000014cc: MLOAD
000014cd: PUSH1 0x24
000014cf: ADD
000014d0: PUSH2 0x14da
000014d3: SWAP3
000014d4: SWAP2
000014d5: SWAP1
000014d6: PUSH2 0x22c4
000014d9: JUMP
000014da: JUMPDEST
000014db: PUSH1 0x40
000014dd: DUP1
000014de: MLOAD
000014df: PUSH1 0x1f
000014e1: NOT
000014e2: DUP2
000014e3: DUP5
000014e4: SUB
000014e5: ADD
000014e6: DUP2
000014e7: MSTORE
000014e8: SWAP2
000014e9: SWAP1
000014ea: MSTORE
000014eb: PUSH1 0x20
000014ed: DUP2
000014ee: ADD
000014ef: DUP1
000014f0: MLOAD
000014f1: PUSH1 0x01
000014f3: PUSH1 0x01
000014f5: PUSH1 0xe0
000014f7: SHL
000014f8: SUB
000014f9: AND
000014fa: PUSH1 0x01
000014fc: PUSH1 0x01
000014fe: PUSH1 0xe0
00001500: SHL
00001501: SUB
00001502: NOT
00001503: SWAP1
00001504: SWAP4
00001505: AND
00001506: SWAP3
00001507: SWAP1
00001508: SWAP3
00001509: OR
0000150a: SWAP1
0000150b: SWAP2
0000150c: MSTORE
0000150d: PUSH2 0x16ca
00001510: JUMP
00001511: JUMPDEST
00001512: PUSH1 0x01
00001514: SLOAD
00001515: PUSH1 0x01
00001517: PUSH1 0x01
00001519: PUSH1 0xa0
0000151b: SHL
0000151c: SUB
0000151d: SWAP2
0000151e: DUP3
0000151f: AND
00001520: SWAP2
00001521: AND
00001522: EQ
00001523: SWAP1
00001524: JUMP
00001525: JUMPDEST
00001526: PUSH1 0x00
00001528: PUSH1 0x60
0000152a: PUSH2 0x1535
0000152d: DUP4
0000152e: DUP6
0000152f: ADD
00001530: DUP6
00001531: PUSH2 0x248e
00001534: JUMP
00001535: JUMPDEST
00001536: SWAP2
00001537: POP
00001538: SWAP2
00001539: POP
0000153a: JUMPDEST
0000153b: SWAP3
0000153c: POP
0000153d: SWAP3
0000153e: SWAP1
0000153f: POP
00001540: JUMP
00001541: JUMPDEST
00001542: PUSH1 0x00
00001544: PUSH1 0x60
00001546: PUSH1 0x00
00001548: DUP4
00001549: DUP1
0000154a: PUSH1 0x20
0000154c: ADD
0000154d: SWAP1
0000154e: MLOAD
0000154f: DUP2
00001550: ADD
00001551: SWAP1
00001552: PUSH2 0x155b
00001555: SWAP2
00001556: SWAP1
00001557: PUSH2 0x24c7
0000155a: JUMP
0000155b: JUMPDEST
0000155c: SWAP2
0000155d: SWAP7
0000155e: SWAP1
0000155f: SWAP6
00001560: POP
00001561: SWAP1
00001562: SWAP4
00001563: POP
00001564: SWAP2
00001565: POP
00001566: POP
00001567: JUMP
00001568: JUMPDEST
00001569: PUSH1 0x00
0000156b: DUP1
0000156c: DUP5
0000156d: PUSH1 0x01
0000156f: PUSH1 0x01
00001571: PUSH1 0xa0
00001573: SHL
00001574: SUB
00001575: AND
00001576: PUSH4 0x70a08231
0000157b: ADDRESS
0000157c: PUSH1 0x40
0000157e: MLOAD
0000157f: DUP3
00001580: PUSH4 0xffffffff
00001585: AND
00001586: PUSH1 0xe0
00001588: SHL
00001589: DUP2
0000158a: MSTORE
0000158b: PUSH1 0x04
0000158d: ADD
0000158e: PUSH2 0x1597
00001591: SWAP2
00001592: SWAP1
00001593: PUSH2 0x1bbd
00001596: JUMP
00001597: JUMPDEST
00001598: PUSH1 0x20
0000159a: PUSH1 0x40
0000159c: MLOAD
0000159d: DUP1
0000159e: DUP4
0000159f: SUB
000015a0: DUP2
000015a1: DUP7
000015a2: GAS
000015a3: STATICCALL
000015a4: ISZERO
000015a5: DUP1
000015a6: ISZERO
000015a7: PUSH2 0x15b4
000015aa: JUMPI
000015ab: RETURNDATASIZE
000015ac: PUSH1 0x00
000015ae: DUP1
000015af: RETURNDATACOPY
000015b0: RETURNDATASIZE
000015b1: PUSH1 0x00
000015b3: REVERT
000015b4: JUMPDEST
000015b5: POP
000015b6: POP
000015b7: POP
000015b8: POP
000015b9: PUSH1 0x40
000015bb: MLOAD
000015bc: RETURNDATASIZE
000015bd: PUSH1 0x1f
000015bf: NOT
000015c0: PUSH1 0x1f
000015c2: DUP3
000015c3: ADD
000015c4: AND
000015c5: DUP3
000015c6: ADD
000015c7: DUP1
000015c8: PUSH1 0x40
000015ca: MSTORE
000015cb: POP
000015cc: DUP2
000015cd: ADD
000015ce: SWAP1
000015cf: PUSH2 0x15d8
000015d2: SWAP2
000015d3: SWAP1
000015d4: PUSH2 0x2552
000015d7: JUMP
000015d8: JUMPDEST
000015d9: SWAP1
000015da: POP
000015db: PUSH2 0x15ef
000015de: PUSH1 0x01
000015e0: PUSH1 0x01
000015e2: PUSH1 0xa0
000015e4: SHL
000015e5: SUB
000015e6: DUP7
000015e7: AND
000015e8: DUP6
000015e9: ADDRESS
000015ea: DUP7
000015eb: PUSH2 0x179c
000015ee: JUMP
000015ef: JUMPDEST
000015f0: PUSH1 0x40
000015f2: MLOAD
000015f3: PUSH4 0x70a08231
000015f8: PUSH1 0xe0
000015fa: SHL
000015fb: DUP2
000015fc: MSTORE
000015fd: PUSH1 0x00
000015ff: SWAP1
00001600: PUSH1 0x01
00001602: PUSH1 0x01
00001604: PUSH1 0xa0
00001606: SHL
00001607: SUB
00001608: DUP8
00001609: AND
0000160a: SWAP1
0000160b: PUSH4 0x70a08231
00001610: SWAP1
00001611: PUSH2 0x161e
00001614: SWAP1
00001615: ADDRESS
00001616: SWAP1
00001617: PUSH1 0x04
00001619: ADD
0000161a: PUSH2 0x1bbd
0000161d: JUMP
0000161e: JUMPDEST
0000161f: PUSH1 0x20
00001621: PUSH1 0x40
00001623: MLOAD
00001624: DUP1
00001625: DUP4
00001626: SUB
00001627: DUP2
00001628: DUP7
00001629: GAS
0000162a: STATICCALL
0000162b: ISZERO
0000162c: DUP1
0000162d: ISZERO
0000162e: PUSH2 0x163b
00001631: JUMPI
00001632: RETURNDATASIZE
00001633: PUSH1 0x00
00001635: DUP1
00001636: RETURNDATACOPY
00001637: RETURNDATASIZE
00001638: PUSH1 0x00
0000163a: REVERT
0000163b: JUMPDEST
0000163c: POP
0000163d: POP
0000163e: POP
0000163f: POP
00001640: PUSH1 0x40
00001642: MLOAD
00001643: RETURNDATASIZE
00001644: PUSH1 0x1f
00001646: NOT
00001647: PUSH1 0x1f
00001649: DUP3
0000164a: ADD
0000164b: AND
0000164c: DUP3
0000164d: ADD
0000164e: DUP1
0000164f: PUSH1 0x40
00001651: MSTORE
00001652: POP
00001653: DUP2
00001654: ADD
00001655: SWAP1
00001656: PUSH2 0x165f
00001659: SWAP2
0000165a: SWAP1
0000165b: PUSH2 0x2552
0000165e: JUMP
0000165f: JUMPDEST
00001660: SWAP1
00001661: POP
00001662: PUSH2 0x166b
00001665: DUP3
00001666: DUP3
00001667: PUSH2 0x256b
0000166a: JUMP
0000166b: JUMPDEST
0000166c: SWAP7
0000166d: SWAP6
0000166e: POP
0000166f: POP
00001670: POP
00001671: POP
00001672: POP
00001673: POP
00001674: JUMP
00001675: JUMPDEST
00001676: PUSH1 0x00
00001678: PUSH2 0x04c8
0000167b: PUSH1 0x02
0000167d: PUSH1 0x00
0000167f: SWAP1
00001680: SLOAD
00001681: SWAP1
00001682: PUSH2 0x0100
00001685: EXP
00001686: SWAP1
00001687: DIV
00001688: PUSH1 0x01
0000168a: PUSH1 0x01
0000168c: PUSH1 0xa0
0000168e: SHL
0000168f: SUB
00001690: AND
00001691: PUSH1 0x00
00001693: DUP1
00001694: SLOAD
00001695: SWAP1
00001696: PUSH2 0x0100
00001699: EXP
0000169a: SWAP1
0000169b: DIV
0000169c: PUSH1 0x01
0000169e: PUSH1 0x01
000016a0: PUSH1 0xa0
000016a2: SHL
000016a3: SUB
000016a4: AND
000016a5: DUP12
000016a6: DUP12
000016a7: DUP8
000016a8: PUSH1 0x00
000016aa: PUSH1 0x40
000016ac: MLOAD
000016ad: DUP1
000016ae: PUSH1 0x60
000016b0: ADD
000016b1: PUSH1 0x40
000016b3: MSTORE
000016b4: DUP1
000016b5: DUP13
000016b6: DUP2
000016b7: MSTORE
000016b8: PUSH1 0x20
000016ba: ADD
000016bb: DUP15
000016bc: DUP2
000016bd: MSTORE
000016be: PUSH1 0x20
000016c0: ADD
000016c1: DUP14
000016c2: DUP2
000016c3: MSTORE
000016c4: POP
000016c5: DUP10
000016c6: PUSH2 0x17da
000016c9: JUMP
000016ca: JUMPDEST
000016cb: PUSH1 0x00
000016cd: PUSH2 0x171f
000016d0: DUP3
000016d1: PUSH1 0x40
000016d3: MLOAD
000016d4: DUP1
000016d5: PUSH1 0x40
000016d7: ADD
000016d8: PUSH1 0x40
000016da: MSTORE
000016db: DUP1
000016dc: PUSH1 0x20
000016de: DUP2
000016df: MSTORE
000016e0: PUSH1 0x20
000016e2: ADD
000016e3: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00001704: DUP2
00001705: MSTORE
00001706: POP
00001707: DUP6
00001708: PUSH1 0x01
0000170a: PUSH1 0x01
0000170c: PUSH1 0xa0
0000170e: SHL
0000170f: SUB
00001710: AND
00001711: PUSH2 0x17fa
00001714: SWAP1
00001715: SWAP3
00001716: SWAP2
00001717: SWAP1
00001718: PUSH4 0xffffffff
0000171d: AND
0000171e: JUMP
0000171f: JUMPDEST
00001720: DUP1
00001721: MLOAD
00001722: SWAP1
00001723: SWAP2
00001724: POP
00001725: ISZERO
00001726: PUSH2 0x11a4
00001729: JUMPI
0000172a: DUP1
0000172b: DUP1
0000172c: PUSH1 0x20
0000172e: ADD
0000172f: SWAP1
00001730: MLOAD
00001731: DUP2
00001732: ADD
00001733: SWAP1
00001734: PUSH2 0x173d
00001737: SWAP2
00001738: SWAP1
00001739: PUSH2 0x2266
0000173c: JUMP
0000173d: JUMPDEST
0000173e: PUSH2 0x11a4
00001741: JUMPI
00001742: PUSH1 0x40
00001744: MLOAD
00001745: PUSH3 0x461bcd
00001749: PUSH1 0xe5
0000174b: SHL
0000174c: DUP2
0000174d: MSTORE
0000174e: PUSH1 0x20
00001750: PUSH1 0x04
00001752: DUP3
00001753: ADD
00001754: MSTORE
00001755: PUSH1 0x2a
00001757: PUSH1 0x24
00001759: DUP3
0000175a: ADD
0000175b: MSTORE
0000175c: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
0000177d: PUSH1 0x44
0000177f: DUP3
00001780: ADD
00001781: MSTORE
00001782: PUSH10 0x1bdd081cdd58d8d95959
0000178d: PUSH1 0xb2
0000178f: SHL
00001790: PUSH1 0x64
00001792: DUP3
00001793: ADD
00001794: MSTORE
00001795: PUSH1 0x84
00001797: ADD
00001798: PUSH2 0x03ec
0000179b: JUMP
0000179c: JUMPDEST
0000179d: PUSH1 0x40
0000179f: MLOAD
000017a0: PUSH1 0x01
000017a2: PUSH1 0x01
000017a4: PUSH1 0xa0
000017a6: SHL
000017a7: SUB
000017a8: DUP1
000017a9: DUP6
000017aa: AND
000017ab: PUSH1 0x24
000017ad: DUP4
000017ae: ADD
000017af: MSTORE
000017b0: DUP4
000017b1: AND
000017b2: PUSH1 0x44
000017b4: DUP3
000017b5: ADD
000017b6: MSTORE
000017b7: PUSH1 0x64
000017b9: DUP2
000017ba: ADD
000017bb: DUP3
000017bc: SWAP1
000017bd: MSTORE
000017be: PUSH2 0x17d4
000017c1: SWAP1
000017c2: DUP6
000017c3: SWAP1
000017c4: PUSH4 0x23b872dd
000017c9: PUSH1 0xe0
000017cb: SHL
000017cc: SWAP1
000017cd: PUSH1 0x84
000017cf: ADD
000017d0: PUSH2 0x14da
000017d3: JUMP
000017d4: JUMPDEST
000017d5: POP
000017d6: POP
000017d7: POP
000017d8: POP
000017d9: JUMP
000017da: JUMPDEST
000017db: PUSH1 0x00
000017dd: PUSH2 0x04c8
000017e0: DUP10
000017e1: DUP10
000017e2: DUP10
000017e3: DUP10
000017e4: DUP10
000017e5: DUP10
000017e6: DUP10
000017e7: PUSH1 0x00
000017e9: ADD
000017ea: MLOAD
000017eb: DUP11
000017ec: PUSH1 0x20
000017ee: ADD
000017ef: MLOAD
000017f0: DUP12
000017f1: PUSH1 0x40
000017f3: ADD
000017f4: MLOAD
000017f5: DUP12
000017f6: PUSH2 0x1811
000017f9: JUMP
000017fa: JUMPDEST
000017fb: PUSH1 0x60
000017fd: PUSH2 0x1809
00001800: DUP5
00001801: DUP5
00001802: PUSH1 0x00
00001804: DUP6
00001805: PUSH2 0x1883
00001808: JUMP
00001809: JUMPDEST
0000180a: SWAP5
0000180b: SWAP4
0000180c: POP
0000180d: POP
0000180e: POP
0000180f: POP
00001810: JUMP
00001811: JUMPDEST
00001812: PUSH1 0x00
00001814: DUP1
00001815: PUSH2 0x1826
00001818: DUP13
00001819: DUP13
0000181a: DUP13
0000181b: DUP13
0000181c: DUP13
0000181d: DUP13
0000181e: DUP13
0000181f: DUP13
00001820: DUP13
00001821: DUP13
00001822: PUSH2 0x195e
00001825: JUMP
00001826: JUMPDEST
00001827: SWAP1
00001828: POP
00001829: DUP1
0000182a: DUP12
0000182b: PUSH1 0x01
0000182d: PUSH1 0x01
0000182f: PUSH1 0xa0
00001831: SHL
00001832: SUB
00001833: AND
00001834: DUP11
00001835: PUSH1 0x01
00001837: PUSH1 0x01
00001839: PUSH1 0xa0
0000183b: SHL
0000183c: SUB
0000183d: AND
0000183e: PUSH32 0xc1d1490cf25c3b40d600dfb27c7680340ed1ab901b7e8f3551280968a3b372b0
0000185f: DUP7
00001860: PUSH1 0x40
00001862: MLOAD
00001863: PUSH2 0x186c
00001866: SWAP2
00001867: SWAP1
00001868: PUSH2 0x1d7d
0000186b: JUMP
0000186c: JUMPDEST
0000186d: PUSH1 0x40
0000186f: MLOAD
00001870: DUP1
00001871: SWAP2
00001872: SUB
00001873: SWAP1
00001874: LOG4
00001875: SWAP12
00001876: SWAP11
00001877: POP
00001878: POP
00001879: POP
0000187a: POP
0000187b: POP
0000187c: POP
0000187d: POP
0000187e: POP
0000187f: POP
00001880: POP
00001881: POP
00001882: JUMP
00001883: JUMPDEST
00001884: PUSH1 0x60
00001886: DUP3
00001887: SELFBALANCE
00001888: LT
00001889: ISZERO
0000188a: PUSH2 0x18e4
0000188d: JUMPI
0000188e: PUSH1 0x40
00001890: MLOAD
00001891: PUSH3 0x461bcd
00001895: PUSH1 0xe5
00001897: SHL
00001898: DUP2
00001899: MSTORE
0000189a: PUSH1 0x20
0000189c: PUSH1 0x04
0000189e: DUP3
0000189f: ADD
000018a0: MSTORE
000018a1: PUSH1 0x26
000018a3: PUSH1 0x24
000018a5: DUP3
000018a6: ADD
000018a7: MSTORE
000018a8: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
000018c9: PUSH1 0x44
000018cb: DUP3
000018cc: ADD
000018cd: MSTORE
000018ce: PUSH6 0x1c8818d85b1b
000018d5: PUSH1 0xd2
000018d7: SHL
000018d8: PUSH1 0x64
000018da: DUP3
000018db: ADD
000018dc: MSTORE
000018dd: PUSH1 0x84
000018df: ADD
000018e0: PUSH2 0x03ec
000018e3: JUMP
000018e4: JUMPDEST
000018e5: PUSH1 0x00
000018e7: DUP1
000018e8: DUP7
000018e9: PUSH1 0x01
000018eb: PUSH1 0x01
000018ed: PUSH1 0xa0
000018ef: SHL
000018f0: SUB
000018f1: AND
000018f2: DUP6
000018f3: DUP8
000018f4: PUSH1 0x40
000018f6: MLOAD
000018f7: PUSH2 0x1900
000018fa: SWAP2
000018fb: SWAP1
000018fc: PUSH2 0x22fa
000018ff: JUMP
00001900: JUMPDEST
00001901: PUSH1 0x00
00001903: PUSH1 0x40
00001905: MLOAD
00001906: DUP1
00001907: DUP4
00001908: SUB
00001909: DUP2
0000190a: DUP6
0000190b: DUP8
0000190c: GAS
0000190d: CALL
0000190e: SWAP3
0000190f: POP
00001910: POP
00001911: POP
00001912: RETURNDATASIZE
00001913: DUP1
00001914: PUSH1 0x00
00001916: DUP2
00001917: EQ
00001918: PUSH2 0x193d
0000191b: JUMPI
0000191c: PUSH1 0x40
0000191e: MLOAD
0000191f: SWAP2
00001920: POP
00001921: PUSH1 0x1f
00001923: NOT
00001924: PUSH1 0x3f
00001926: RETURNDATASIZE
00001927: ADD
00001928: AND
00001929: DUP3
0000192a: ADD
0000192b: PUSH1 0x40
0000192d: MSTORE
0000192e: RETURNDATASIZE
0000192f: DUP3
00001930: MSTORE
00001931: RETURNDATASIZE
00001932: PUSH1 0x00
00001934: PUSH1 0x20
00001936: DUP5
00001937: ADD
00001938: RETURNDATACOPY
00001939: PUSH2 0x1942
0000193c: JUMP
0000193d: JUMPDEST
0000193e: PUSH1 0x60
00001940: SWAP2
00001941: POP
00001942: JUMPDEST
00001943: POP
00001944: SWAP2
00001945: POP
00001946: SWAP2
00001947: POP
00001948: PUSH2 0x1953
0000194b: DUP8
0000194c: DUP4
0000194d: DUP4
0000194e: DUP8
0000194f: PUSH2 0x1ab0
00001952: JUMP
00001953: JUMPDEST
00001954: SWAP8
00001955: SWAP7
00001956: POP
00001957: POP
00001958: POP
00001959: POP
0000195a: POP
0000195b: POP
0000195c: POP
0000195d: JUMP
0000195e: JUMPDEST
0000195f: PUSH1 0x00
00001961: DUP1
00001962: PUSH2 0x1969
00001965: PUSH2 0x0c9a
00001968: JUMP
00001969: JUMPDEST
0000196a: SWAP1
0000196b: POP
0000196c: PUSH1 0x00
0000196e: DUP2
0000196f: PUSH1 0x01
00001971: PUSH1 0x01
00001973: PUSH1 0xa0
00001975: SHL
00001976: SUB
00001977: AND
00001978: PUSH4 0x70a08231
0000197d: DUP15
0000197e: PUSH1 0x40
00001980: MLOAD
00001981: DUP3
00001982: PUSH4 0xffffffff
00001987: AND
00001988: PUSH1 0xe0
0000198a: SHL
0000198b: DUP2
0000198c: MSTORE
0000198d: PUSH1 0x04
0000198f: ADD
00001990: PUSH2 0x1999
00001993: SWAP2
00001994: SWAP1
00001995: PUSH2 0x1bbd
00001998: JUMP
00001999: JUMPDEST
0000199a: PUSH1 0x20
0000199c: PUSH1 0x40
0000199e: MLOAD
0000199f: DUP1
000019a0: DUP4
000019a1: SUB
000019a2: DUP2
000019a3: DUP7
000019a4: GAS
000019a5: STATICCALL
000019a6: ISZERO
000019a7: DUP1
000019a8: ISZERO
000019a9: PUSH2 0x19b6
000019ac: JUMPI
000019ad: RETURNDATASIZE
000019ae: PUSH1 0x00
000019b0: DUP1
000019b1: RETURNDATACOPY
000019b2: RETURNDATASIZE
000019b3: PUSH1 0x00
000019b5: REVERT
000019b6: JUMPDEST
000019b7: POP
000019b8: POP
000019b9: POP
000019ba: POP
000019bb: PUSH1 0x40
000019bd: MLOAD
000019be: RETURNDATASIZE
000019bf: PUSH1 0x1f
000019c1: NOT
000019c2: PUSH1 0x1f
000019c4: DUP3
000019c5: ADD
000019c6: AND
000019c7: DUP3
000019c8: ADD
000019c9: DUP1
000019ca: PUSH1 0x40
000019cc: MSTORE
000019cd: POP
000019ce: DUP2
000019cf: ADD
000019d0: SWAP1
000019d1: PUSH2 0x19da
000019d4: SWAP2
000019d5: SWAP1
000019d6: PUSH2 0x2552
000019d9: JUMP
000019da: JUMPDEST
000019db: SWAP1
000019dc: POP
000019dd: DUP9
000019de: DUP2
000019df: LT
000019e0: ISZERO
000019e1: PUSH2 0x1a20
000019e4: JUMPI
000019e5: PUSH1 0x00
000019e7: PUSH2 0x19ef
000019ea: CALLER
000019eb: PUSH2 0x1511
000019ee: JUMP
000019ef: JUMPDEST
000019f0: PUSH2 0x19f9
000019f3: JUMPI
000019f4: CALLER
000019f5: PUSH2 0x19fb
000019f8: JUMP
000019f9: JUMPDEST
000019fa: DUP11
000019fb: JUMPDEST
000019fc: SWAP1
000019fd: POP
000019fe: PUSH2 0x1a1e
00001a01: DUP2
00001a02: DUP16
00001a03: PUSH2 0x1a0c
00001a06: DUP6
00001a07: DUP15
00001a08: PUSH2 0x256b
00001a0b: JUMP
00001a0c: JUMPDEST
00001a0d: PUSH1 0x01
00001a0f: PUSH1 0x01
00001a11: PUSH1 0xa0
00001a13: SHL
00001a14: SUB
00001a15: DUP8
00001a16: AND
00001a17: SWAP3
00001a18: SWAP2
00001a19: SWAP1
00001a1a: PUSH2 0x179c
00001a1d: JUMP
00001a1e: JUMPDEST
00001a1f: POP
00001a20: JUMPDEST
00001a21: POP
00001a22: POP
00001a23: DUP11
00001a24: PUSH1 0x01
00001a26: PUSH1 0x01
00001a28: PUSH1 0xa0
00001a2a: SHL
00001a2b: SUB
00001a2c: AND
00001a2d: PUSH4 0x549e8426
00001a32: DUP12
00001a33: DUP9
00001a34: DUP9
00001a35: DUP14
00001a36: DUP14
00001a37: DUP11
00001a38: DUP11
00001a39: DUP16
00001a3a: DUP12
00001a3b: PUSH1 0x40
00001a3d: MLOAD
00001a3e: DUP11
00001a3f: PUSH4 0xffffffff
00001a44: AND
00001a45: PUSH1 0xe0
00001a47: SHL
00001a48: DUP2
00001a49: MSTORE
00001a4a: PUSH1 0x04
00001a4c: ADD
00001a4d: PUSH2 0x1a5e
00001a50: SWAP10
00001a51: SWAP9
00001a52: SWAP8
00001a53: SWAP7
00001a54: SWAP6
00001a55: SWAP5
00001a56: SWAP4
00001a57: SWAP3
00001a58: SWAP2
00001a59: SWAP1
00001a5a: PUSH2 0x258c
00001a5d: JUMP
00001a5e: JUMPDEST
00001a5f: PUSH1 0x20
00001a61: PUSH1 0x40
00001a63: MLOAD
00001a64: DUP1
00001a65: DUP4
00001a66: SUB
00001a67: DUP2
00001a68: PUSH1 0x00
00001a6a: DUP8
00001a6b: GAS
00001a6c: CALL
00001a6d: ISZERO
00001a6e: DUP1
00001a6f: ISZERO
00001a70: PUSH2 0x1a7d
00001a73: JUMPI
00001a74: RETURNDATASIZE
00001a75: PUSH1 0x00
00001a77: DUP1
00001a78: RETURNDATACOPY
00001a79: RETURNDATASIZE
00001a7a: PUSH1 0x00
00001a7c: REVERT
00001a7d: JUMPDEST
00001a7e: POP
00001a7f: POP
00001a80: POP
00001a81: POP
00001a82: PUSH1 0x40
00001a84: MLOAD
00001a85: RETURNDATASIZE
00001a86: PUSH1 0x1f
00001a88: NOT
00001a89: PUSH1 0x1f
00001a8b: DUP3
00001a8c: ADD
00001a8d: AND
00001a8e: DUP3
00001a8f: ADD
00001a90: DUP1
00001a91: PUSH1 0x40
00001a93: MSTORE
00001a94: POP
00001a95: DUP2
00001a96: ADD
00001a97: SWAP1
00001a98: PUSH2 0x1aa1
00001a9b: SWAP2
00001a9c: SWAP1
00001a9d: PUSH2 0x2552
00001aa0: JUMP
00001aa1: JUMPDEST
00001aa2: SWAP12
00001aa3: SWAP11
00001aa4: POP
00001aa5: POP
00001aa6: POP
00001aa7: POP
00001aa8: POP
00001aa9: POP
00001aaa: POP
00001aab: POP
00001aac: POP
00001aad: POP
00001aae: POP
00001aaf: JUMP
00001ab0: JUMPDEST
00001ab1: PUSH1 0x60
00001ab3: DUP4
00001ab4: ISZERO
00001ab5: PUSH2 0x1b1f
00001ab8: JUMPI
00001ab9: DUP3
00001aba: MLOAD
00001abb: PUSH1 0x00
00001abd: SUB
00001abe: PUSH2 0x1b18
00001ac1: JUMPI
00001ac2: PUSH1 0x01
00001ac4: PUSH1 0x01
00001ac6: PUSH1 0xa0
00001ac8: SHL
00001ac9: SUB
00001aca: DUP6
00001acb: AND
00001acc: EXTCODESIZE
00001acd: PUSH2 0x1b18
00001ad0: JUMPI
00001ad1: PUSH1 0x40
00001ad3: MLOAD
00001ad4: PUSH3 0x461bcd
00001ad8: PUSH1 0xe5
00001ada: SHL
00001adb: DUP2
00001adc: MSTORE
00001add: PUSH1 0x20
00001adf: PUSH1 0x04
00001ae1: DUP3
00001ae2: ADD
00001ae3: MSTORE
00001ae4: PUSH1 0x1d
00001ae6: PUSH1 0x24
00001ae8: DUP3
00001ae9: ADD
00001aea: MSTORE
00001aeb: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00001b0c: PUSH1 0x44
00001b0e: DUP3
00001b0f: ADD
00001b10: MSTORE
00001b11: PUSH1 0x64
00001b13: ADD
00001b14: PUSH2 0x03ec
00001b17: JUMP
00001b18: JUMPDEST
00001b19: POP
00001b1a: DUP2
00001b1b: PUSH2 0x1809
00001b1e: JUMP
00001b1f: JUMPDEST
00001b20: PUSH2 0x1809
00001b23: DUP4
00001b24: DUP4
00001b25: DUP2
00001b26: MLOAD
00001b27: ISZERO
00001b28: PUSH2 0x1b34
00001b2b: JUMPI
00001b2c: DUP2
00001b2d: MLOAD
00001b2e: DUP1
00001b2f: DUP4
00001b30: PUSH1 0x20
00001b32: ADD
00001b33: REVERT
00001b34: JUMPDEST
00001b35: DUP1
00001b36: PUSH1 0x40
00001b38: MLOAD
00001b39: PUSH3 0x461bcd
00001b3d: PUSH1 0xe5
00001b3f: SHL
00001b40: DUP2
00001b41: MSTORE
00001b42: PUSH1 0x04
00001b44: ADD
00001b45: PUSH2 0x03ec
00001b48: SWAP2
00001b49: SWAP1
00001b4a: PUSH2 0x1d7d
00001b4d: JUMP
00001b4e: JUMPDEST
00001b4f: PUSH1 0x00
00001b51: PUSH1 0x20
00001b53: DUP3
00001b54: DUP5
00001b55: SUB
00001b56: SLT
00001b57: ISZERO
00001b58: PUSH2 0x1b60
00001b5b: JUMPI
00001b5c: PUSH1 0x00
00001b5e: DUP1
00001b5f: REVERT
00001b60: JUMPDEST
00001b61: DUP2
00001b62: CALLDATALOAD
00001b63: PUSH1 0x01
00001b65: PUSH1 0x01
00001b67: PUSH1 0xe0
00001b69: SHL
00001b6a: SUB
00001b6b: NOT
00001b6c: DUP2
00001b6d: AND
00001b6e: DUP2
00001b6f: EQ
00001b70: PUSH2 0x0704
00001b73: JUMPI
00001b74: PUSH1 0x00
00001b76: DUP1
00001b77: REVERT
00001b78: JUMPDEST
00001b79: PUSH1 0x01
00001b7b: PUSH1 0x01
00001b7d: PUSH1 0xa0
00001b7f: SHL
00001b80: SUB
00001b81: DUP2
00001b82: AND
00001b83: DUP2
00001b84: EQ
00001b85: PUSH2 0x054a
00001b88: JUMPI
00001b89: PUSH1 0x00
00001b8b: DUP1
00001b8c: REVERT
00001b8d: JUMPDEST
00001b8e: PUSH1 0x00
00001b90: DUP1
00001b91: PUSH1 0x40
00001b93: DUP4
00001b94: DUP6
00001b95: SUB
00001b96: SLT
00001b97: ISZERO
00001b98: PUSH2 0x1ba0
00001b9b: JUMPI
00001b9c: PUSH1 0x00
00001b9e: DUP1
00001b9f: REVERT
00001ba0: JUMPDEST
00001ba1: DUP3
00001ba2: CALLDATALOAD
00001ba3: SWAP2
00001ba4: POP
00001ba5: PUSH1 0x20
00001ba7: DUP4
00001ba8: ADD
00001ba9: CALLDATALOAD
00001baa: PUSH2 0x1bb2
00001bad: DUP2
00001bae: PUSH2 0x1b78
00001bb1: JUMP
00001bb2: JUMPDEST
00001bb3: DUP1
00001bb4: SWAP2
00001bb5: POP
00001bb6: POP
00001bb7: SWAP3
00001bb8: POP
00001bb9: SWAP3
00001bba: SWAP1
00001bbb: POP
00001bbc: JUMP
00001bbd: JUMPDEST
00001bbe: PUSH1 0x01
00001bc0: PUSH1 0x01
00001bc2: PUSH1 0xa0
00001bc4: SHL
00001bc5: SUB
00001bc6: SWAP2
00001bc7: SWAP1
00001bc8: SWAP2
00001bc9: AND
00001bca: DUP2
00001bcb: MSTORE
00001bcc: PUSH1 0x20
00001bce: ADD
00001bcf: SWAP1
00001bd0: JUMP
00001bd1: JUMPDEST
00001bd2: PUSH1 0x00
00001bd4: DUP1
00001bd5: DUP4
00001bd6: PUSH1 0x1f
00001bd8: DUP5
00001bd9: ADD
00001bda: SLT
00001bdb: PUSH2 0x1be3
00001bde: JUMPI
00001bdf: PUSH1 0x00
00001be1: DUP1
00001be2: REVERT
00001be3: JUMPDEST
00001be4: POP
00001be5: DUP2
00001be6: CALLDATALOAD
00001be7: PUSH1 0x01
00001be9: PUSH1 0x01
00001beb: PUSH1 0x40
00001bed: SHL
00001bee: SUB
00001bef: DUP2
00001bf0: GT
00001bf1: ISZERO
00001bf2: PUSH2 0x1bfa
00001bf5: JUMPI
00001bf6: PUSH1 0x00
00001bf8: DUP1
00001bf9: REVERT
00001bfa: JUMPDEST
00001bfb: PUSH1 0x20
00001bfd: DUP4
00001bfe: ADD
00001bff: SWAP2
00001c00: POP
00001c01: DUP4
00001c02: PUSH1 0x20
00001c04: DUP3
00001c05: DUP6
00001c06: ADD
00001c07: ADD
00001c08: GT
00001c09: ISZERO
00001c0a: PUSH2 0x153a
00001c0d: JUMPI
00001c0e: PUSH1 0x00
00001c10: DUP1
00001c11: REVERT
00001c12: JUMPDEST
00001c13: PUSH1 0x00
00001c15: DUP1
00001c16: PUSH1 0x00
00001c18: DUP1
00001c19: PUSH1 0x00
00001c1b: DUP1
00001c1c: PUSH1 0xa0
00001c1e: DUP8
00001c1f: DUP10
00001c20: SUB
00001c21: SLT
00001c22: ISZERO
00001c23: PUSH2 0x1c2b
00001c26: JUMPI
00001c27: PUSH1 0x00
00001c29: DUP1
00001c2a: REVERT
00001c2b: JUMPDEST
00001c2c: DUP7
00001c2d: CALLDATALOAD
00001c2e: PUSH2 0x1c36
00001c31: DUP2
00001c32: PUSH2 0x1b78
00001c35: JUMP
00001c36: JUMPDEST
00001c37: SWAP6
00001c38: POP
00001c39: PUSH1 0x20
00001c3b: DUP8
00001c3c: ADD
00001c3d: CALLDATALOAD
00001c3e: PUSH2 0x1c46
00001c41: DUP2
00001c42: PUSH2 0x1b78
00001c45: JUMP
00001c46: JUMPDEST
00001c47: SWAP5
00001c48: POP
00001c49: PUSH1 0x40
00001c4b: DUP8
00001c4c: ADD
00001c4d: CALLDATALOAD
00001c4e: PUSH2 0x1c56
00001c51: DUP2
00001c52: PUSH2 0x1b78
00001c55: JUMP
00001c56: JUMPDEST
00001c57: SWAP4
00001c58: POP
00001c59: PUSH1 0x60
00001c5b: DUP8
00001c5c: ADD
00001c5d: CALLDATALOAD
00001c5e: SWAP3
00001c5f: POP
00001c60: PUSH1 0x80
00001c62: DUP8
00001c63: ADD
00001c64: CALLDATALOAD
00001c65: PUSH1 0x01
00001c67: PUSH1 0x01
00001c69: PUSH1 0x40
00001c6b: SHL
00001c6c: SUB
00001c6d: DUP2
00001c6e: GT
00001c6f: ISZERO
00001c70: PUSH2 0x1c78
00001c73: JUMPI
00001c74: PUSH1 0x00
00001c76: DUP1
00001c77: REVERT
00001c78: JUMPDEST
00001c79: PUSH2 0x1c84
00001c7c: DUP10
00001c7d: DUP3
00001c7e: DUP11
00001c7f: ADD
00001c80: PUSH2 0x1bd1
00001c83: JUMP
00001c84: JUMPDEST
00001c85: SWAP8
00001c86: SWAP11
00001c87: SWAP7
00001c88: SWAP10
00001c89: POP
00001c8a: SWAP5
00001c8b: SWAP8
00001c8c: POP
00001c8d: SWAP3
00001c8e: SWAP6
00001c8f: SWAP4
00001c90: SWAP5
00001c91: SWAP3
00001c92: POP
00001c93: POP
00001c94: POP
00001c95: JUMP
00001c96: JUMPDEST
00001c97: PUSH1 0x00
00001c99: DUP1
00001c9a: PUSH1 0x00
00001c9c: DUP1
00001c9d: PUSH1 0x00
00001c9f: DUP1
00001ca0: PUSH1 0x00
00001ca2: DUP1
00001ca3: PUSH1 0xe0
00001ca5: DUP10
00001ca6: DUP12
00001ca7: SUB
00001ca8: SLT
00001ca9: ISZERO
00001caa: PUSH2 0x1cb2
00001cad: JUMPI
00001cae: PUSH1 0x00
00001cb0: DUP1
00001cb1: REVERT
00001cb2: JUMPDEST
00001cb3: DUP9
00001cb4: CALLDATALOAD
00001cb5: PUSH2 0x1cbd
00001cb8: DUP2
00001cb9: PUSH2 0x1b78
00001cbc: JUMP
00001cbd: JUMPDEST
00001cbe: SWAP8
00001cbf: POP
00001cc0: PUSH1 0x20
00001cc2: DUP10
00001cc3: ADD
00001cc4: CALLDATALOAD
00001cc5: PUSH2 0x1ccd
00001cc8: DUP2
00001cc9: PUSH2 0x1b78
00001ccc: JUMP
00001ccd: JUMPDEST
00001cce: SWAP7
00001ccf: POP
00001cd0: PUSH1 0x40
00001cd2: DUP10
00001cd3: ADD
00001cd4: CALLDATALOAD
00001cd5: PUSH2 0x1cdd
00001cd8: DUP2
00001cd9: PUSH2 0x1b78
00001cdc: JUMP
00001cdd: JUMPDEST
00001cde: SWAP6
00001cdf: POP
00001ce0: PUSH1 0x60
00001ce2: DUP10
00001ce3: ADD
00001ce4: CALLDATALOAD
00001ce5: SWAP5
00001ce6: POP
00001ce7: PUSH1 0x80
00001ce9: DUP10
00001cea: ADD
00001ceb: CALLDATALOAD
00001cec: SWAP4
00001ced: POP
00001cee: PUSH1 0xa0
00001cf0: DUP10
00001cf1: ADD
00001cf2: CALLDATALOAD
00001cf3: SWAP3
00001cf4: POP
00001cf5: PUSH1 0xc0
00001cf7: DUP10
00001cf8: ADD
00001cf9: CALLDATALOAD
00001cfa: PUSH1 0x01
00001cfc: PUSH1 0x01
00001cfe: PUSH1 0x40
00001d00: SHL
00001d01: SUB
00001d02: DUP2
00001d03: GT
00001d04: ISZERO
00001d05: PUSH2 0x1d0d
00001d08: JUMPI
00001d09: PUSH1 0x00
00001d0b: DUP1
00001d0c: REVERT
00001d0d: JUMPDEST
00001d0e: PUSH2 0x1d19
00001d11: DUP12
00001d12: DUP3
00001d13: DUP13
00001d14: ADD
00001d15: PUSH2 0x1bd1
00001d18: JUMP
00001d19: JUMPDEST
00001d1a: SWAP10
00001d1b: SWAP13
00001d1c: SWAP9
00001d1d: SWAP12
00001d1e: POP
00001d1f: SWAP7
00001d20: SWAP10
00001d21: POP
00001d22: SWAP5
00001d23: SWAP8
00001d24: SWAP4
00001d25: SWAP7
00001d26: SWAP3
00001d27: SWAP6
00001d28: SWAP5
00001d29: POP
00001d2a: POP
00001d2b: POP
00001d2c: JUMP
00001d2d: JUMPDEST
00001d2e: PUSH1 0x00
00001d30: JUMPDEST
00001d31: DUP4
00001d32: DUP2
00001d33: LT
00001d34: ISZERO
00001d35: PUSH2 0x1d48
00001d38: JUMPI
00001d39: DUP2
00001d3a: DUP2
00001d3b: ADD
00001d3c: MLOAD
00001d3d: DUP4
00001d3e: DUP3
00001d3f: ADD
00001d40: MSTORE
00001d41: PUSH1 0x20
00001d43: ADD
00001d44: PUSH2 0x1d30
00001d47: JUMP
00001d48: JUMPDEST
00001d49: POP
00001d4a: POP
00001d4b: PUSH1 0x00
00001d4d: SWAP2
00001d4e: ADD
00001d4f: MSTORE
00001d50: JUMP
00001d51: JUMPDEST
00001d52: PUSH1 0x00
00001d54: DUP2
00001d55: MLOAD
00001d56: DUP1
00001d57: DUP5
00001d58: MSTORE
00001d59: PUSH2 0x1d69
00001d5c: DUP2
00001d5d: PUSH1 0x20
00001d5f: DUP7
00001d60: ADD
00001d61: PUSH1 0x20
00001d63: DUP7
00001d64: ADD
00001d65: PUSH2 0x1d2d
00001d68: JUMP
00001d69: JUMPDEST
00001d6a: PUSH1 0x1f
00001d6c: ADD
00001d6d: PUSH1 0x1f
00001d6f: NOT
00001d70: AND
00001d71: SWAP3
00001d72: SWAP1
00001d73: SWAP3
00001d74: ADD
00001d75: PUSH1 0x20
00001d77: ADD
00001d78: SWAP3
00001d79: SWAP2
00001d7a: POP
00001d7b: POP
00001d7c: JUMP
00001d7d: JUMPDEST
00001d7e: PUSH1 0x20
00001d80: DUP2
00001d81: MSTORE
00001d82: PUSH1 0x00
00001d84: PUSH2 0x0704
00001d87: PUSH1 0x20
00001d89: DUP4
00001d8a: ADD
00001d8b: DUP5
00001d8c: PUSH2 0x1d51
00001d8f: JUMP
00001d90: JUMPDEST
00001d91: PUSH1 0x00
00001d93: DUP1
00001d94: PUSH1 0x00
00001d96: DUP1
00001d97: PUSH1 0x00
00001d99: PUSH1 0xa0
00001d9b: DUP7
00001d9c: DUP9
00001d9d: SUB
00001d9e: SLT
00001d9f: ISZERO
00001da0: PUSH2 0x1da8
00001da3: JUMPI
00001da4: PUSH1 0x00
00001da6: DUP1
00001da7: REVERT
00001da8: JUMPDEST
00001da9: DUP6
00001daa: CALLDATALOAD
00001dab: PUSH2 0x1db3
00001dae: DUP2
00001daf: PUSH2 0x1b78
00001db2: JUMP
00001db3: JUMPDEST
00001db4: SWAP5
00001db5: POP
00001db6: PUSH1 0x20
00001db8: DUP7
00001db9: ADD
00001dba: CALLDATALOAD
00001dbb: PUSH2 0x1dc3
00001dbe: DUP2
00001dbf: PUSH2 0x1b78
00001dc2: JUMP
00001dc3: JUMPDEST
00001dc4: SWAP4
00001dc5: POP
00001dc6: PUSH1 0x40
00001dc8: DUP7
00001dc9: ADD
00001dca: CALLDATALOAD
00001dcb: PUSH2 0x1dd3
00001dce: DUP2
00001dcf: PUSH2 0x1b78
00001dd2: JUMP
00001dd3: JUMPDEST
00001dd4: SWAP3
00001dd5: POP
00001dd6: PUSH1 0x60
00001dd8: DUP7
00001dd9: ADD
00001dda: CALLDATALOAD
00001ddb: SWAP2
00001ddc: POP
00001ddd: PUSH1 0x80
00001ddf: DUP7
00001de0: ADD
00001de1: CALLDATALOAD
00001de2: PUSH2 0x1dea
00001de5: DUP2
00001de6: PUSH2 0x1b78
00001de9: JUMP
00001dea: JUMPDEST
00001deb: DUP1
00001dec: SWAP2
00001ded: POP
00001dee: POP
00001def: SWAP3
00001df0: SWAP6
00001df1: POP
00001df2: SWAP3
00001df3: SWAP6
00001df4: SWAP1
00001df5: SWAP4
00001df6: POP
00001df7: JUMP
00001df8: JUMPDEST
00001df9: PUSH4 0x4e487b71
00001dfe: PUSH1 0xe0
00001e00: SHL
00001e01: PUSH1 0x00
00001e03: MSTORE
00001e04: PUSH1 0x41
00001e06: PUSH1 0x04
00001e08: MSTORE
00001e09: PUSH1 0x24
00001e0b: PUSH1 0x00
00001e0d: REVERT
00001e0e: JUMPDEST
00001e0f: PUSH1 0x40
00001e11: MLOAD
00001e12: PUSH1 0x1f
00001e14: DUP3
00001e15: ADD
00001e16: PUSH1 0x1f
00001e18: NOT
00001e19: AND
00001e1a: DUP2
00001e1b: ADD
00001e1c: PUSH1 0x01
00001e1e: PUSH1 0x01
00001e20: PUSH1 0x40
00001e22: SHL
00001e23: SUB
00001e24: DUP2
00001e25: GT
00001e26: DUP3
00001e27: DUP3
00001e28: LT
00001e29: OR
00001e2a: ISZERO
00001e2b: PUSH2 0x1e36
00001e2e: JUMPI
00001e2f: PUSH2 0x1e36
00001e32: PUSH2 0x1df8
00001e35: JUMP
00001e36: JUMPDEST
00001e37: PUSH1 0x40
00001e39: MSTORE
00001e3a: SWAP2
00001e3b: SWAP1
00001e3c: POP
00001e3d: JUMP
00001e3e: JUMPDEST
00001e3f: PUSH1 0x00
00001e41: PUSH1 0x01
00001e43: PUSH1 0x01
00001e45: PUSH1 0x40
00001e47: SHL
00001e48: SUB
00001e49: DUP3
00001e4a: GT
00001e4b: ISZERO
00001e4c: PUSH2 0x1e57
00001e4f: JUMPI
00001e50: PUSH2 0x1e57
00001e53: PUSH2 0x1df8
00001e56: JUMP
00001e57: JUMPDEST
00001e58: POP
00001e59: PUSH1 0x1f
00001e5b: ADD
00001e5c: PUSH1 0x1f
00001e5e: NOT
00001e5f: AND
00001e60: PUSH1 0x20
00001e62: ADD
00001e63: SWAP1
00001e64: JUMP
00001e65: JUMPDEST
00001e66: PUSH1 0x00
00001e68: DUP3
00001e69: PUSH1 0x1f
00001e6b: DUP4
00001e6c: ADD
00001e6d: SLT
00001e6e: PUSH2 0x1e76
00001e71: JUMPI
00001e72: PUSH1 0x00
00001e74: DUP1
00001e75: REVERT
00001e76: JUMPDEST
00001e77: DUP2
00001e78: CALLDATALOAD
00001e79: PUSH2 0x1e89
00001e7c: PUSH2 0x1e84
00001e7f: DUP3
00001e80: PUSH2 0x1e3e
00001e83: JUMP
00001e84: JUMPDEST
00001e85: PUSH2 0x1e0e
00001e88: JUMP
00001e89: JUMPDEST
00001e8a: DUP2
00001e8b: DUP2
00001e8c: MSTORE
00001e8d: DUP5
00001e8e: PUSH1 0x20
00001e90: DUP4
00001e91: DUP7
00001e92: ADD
00001e93: ADD
00001e94: GT
00001e95: ISZERO
00001e96: PUSH2 0x1e9e
00001e99: JUMPI
00001e9a: PUSH1 0x00
00001e9c: DUP1
00001e9d: REVERT
00001e9e: JUMPDEST
00001e9f: DUP2
00001ea0: PUSH1 0x20
00001ea2: DUP6
00001ea3: ADD
00001ea4: PUSH1 0x20
00001ea6: DUP4
00001ea7: ADD
00001ea8: CALLDATACOPY
00001ea9: PUSH1 0x00
00001eab: SWAP2
00001eac: DUP2
00001ead: ADD
00001eae: PUSH1 0x20
00001eb0: ADD
00001eb1: SWAP2
00001eb2: SWAP1
00001eb3: SWAP2
00001eb4: MSTORE
00001eb5: SWAP4
00001eb6: SWAP3
00001eb7: POP
00001eb8: POP
00001eb9: POP
00001eba: JUMP
00001ebb: JUMPDEST
00001ebc: PUSH1 0x00
00001ebe: DUP1
00001ebf: PUSH1 0x00
00001ec1: DUP1
00001ec2: PUSH1 0x00
00001ec4: PUSH1 0xa0
00001ec6: DUP7
00001ec7: DUP9
00001ec8: SUB
00001ec9: SLT
00001eca: ISZERO
00001ecb: PUSH2 0x1ed3
00001ece: JUMPI
00001ecf: PUSH1 0x00
00001ed1: DUP1
00001ed2: REVERT
00001ed3: JUMPDEST
00001ed4: DUP6
00001ed5: CALLDATALOAD
00001ed6: PUSH2 0x1ede
00001ed9: DUP2
00001eda: PUSH2 0x1b78
00001edd: JUMP
00001ede: JUMPDEST
00001edf: SWAP5
00001ee0: POP
00001ee1: PUSH1 0x20
00001ee3: DUP7
00001ee4: ADD
00001ee5: CALLDATALOAD
00001ee6: PUSH2 0x1eee
00001ee9: DUP2
00001eea: PUSH2 0x1b78
00001eed: JUMP
00001eee: JUMPDEST
00001eef: SWAP4
00001ef0: POP
00001ef1: PUSH1 0x40
00001ef3: DUP7
00001ef4: ADD
00001ef5: CALLDATALOAD
00001ef6: PUSH2 0x1efe
00001ef9: DUP2
00001efa: PUSH2 0x1b78
00001efd: JUMP
00001efe: JUMPDEST
00001eff: SWAP3
00001f00: POP
00001f01: PUSH1 0x60
00001f03: DUP7
00001f04: ADD
00001f05: CALLDATALOAD
00001f06: SWAP2
00001f07: POP
00001f08: PUSH1 0x80
00001f0a: DUP7
00001f0b: ADD
00001f0c: CALLDATALOAD
00001f0d: PUSH1 0x01
00001f0f: PUSH1 0x01
00001f11: PUSH1 0x40
00001f13: SHL
00001f14: SUB
00001f15: DUP2
00001f16: GT
00001f17: ISZERO
00001f18: PUSH2 0x1f20
00001f1b: JUMPI
00001f1c: PUSH1 0x00
00001f1e: DUP1
00001f1f: REVERT
00001f20: JUMPDEST
00001f21: PUSH2 0x1f2c
00001f24: DUP9
00001f25: DUP3
00001f26: DUP10
00001f27: ADD
00001f28: PUSH2 0x1e65
00001f2b: JUMP
00001f2c: JUMPDEST
00001f2d: SWAP2
00001f2e: POP
00001f2f: POP
00001f30: SWAP3
00001f31: SWAP6
00001f32: POP
00001f33: SWAP3
00001f34: SWAP6
00001f35: SWAP1
00001f36: SWAP4
00001f37: POP
00001f38: JUMP
00001f39: JUMPDEST
00001f3a: PUSH1 0x00
00001f3c: PUSH1 0x20
00001f3e: DUP3
00001f3f: DUP5
00001f40: SUB
00001f41: SLT
00001f42: ISZERO
00001f43: PUSH2 0x1f4b
00001f46: JUMPI
00001f47: PUSH1 0x00
00001f49: DUP1
00001f4a: REVERT
00001f4b: JUMPDEST
00001f4c: DUP2
00001f4d: CALLDATALOAD
00001f4e: PUSH2 0x0704
00001f51: DUP2
00001f52: PUSH2 0x1b78
00001f55: JUMP
00001f56: JUMPDEST
00001f57: PUSH1 0x00
00001f59: PUSH1 0x20
00001f5b: DUP3
00001f5c: DUP5
00001f5d: SUB
00001f5e: SLT
00001f5f: ISZERO
00001f60: PUSH2 0x1f68
00001f63: JUMPI
00001f64: PUSH1 0x00
00001f66: DUP1
00001f67: REVERT
00001f68: JUMPDEST
00001f69: POP
00001f6a: CALLDATALOAD
00001f6b: SWAP2
00001f6c: SWAP1
00001f6d: POP
00001f6e: JUMP
00001f6f: JUMPDEST
00001f70: DUP4
00001f71: ISZERO
00001f72: ISZERO
00001f73: DUP2
00001f74: MSTORE
00001f75: PUSH1 0x01
00001f77: PUSH1 0x01
00001f79: PUSH1 0xa0
00001f7b: SHL
00001f7c: SUB
00001f7d: DUP4
00001f7e: AND
00001f7f: PUSH1 0x20
00001f81: DUP3
00001f82: ADD
00001f83: MSTORE
00001f84: PUSH1 0x60
00001f86: PUSH1 0x40
00001f88: DUP3
00001f89: ADD
00001f8a: DUP2
00001f8b: SWAP1
00001f8c: MSTORE
00001f8d: PUSH1 0x00
00001f8f: SWAP1
00001f90: PUSH2 0x1f9b
00001f93: SWAP1
00001f94: DUP4
00001f95: ADD
00001f96: DUP5
00001f97: PUSH2 0x1d51
00001f9a: JUMP
00001f9b: JUMPDEST
00001f9c: SWAP6
00001f9d: SWAP5
00001f9e: POP
00001f9f: POP
00001fa0: POP
00001fa1: POP
00001fa2: POP
00001fa3: JUMP
00001fa4: JUMPDEST
00001fa5: PUSH1 0x00
00001fa7: DUP1
00001fa8: PUSH1 0x00
00001faa: DUP1
00001fab: PUSH1 0x00
00001fad: DUP1
00001fae: PUSH1 0x00
00001fb0: PUSH1 0xa0
00001fb2: DUP9
00001fb3: DUP11
00001fb4: SUB
00001fb5: SLT
00001fb6: ISZERO
00001fb7: PUSH2 0x1fbf
00001fba: JUMPI
00001fbb: PUSH1 0x00
00001fbd: DUP1
00001fbe: REVERT
00001fbf: JUMPDEST
00001fc0: DUP8
00001fc1: CALLDATALOAD
00001fc2: SWAP7
00001fc3: POP
00001fc4: PUSH1 0x20
00001fc6: DUP9
00001fc7: ADD
00001fc8: CALLDATALOAD
00001fc9: PUSH2 0x1fd1
00001fcc: DUP2
00001fcd: PUSH2 0x1b78
00001fd0: JUMP
00001fd1: JUMPDEST
00001fd2: SWAP6
00001fd3: POP
00001fd4: PUSH1 0x40
00001fd6: DUP9
00001fd7: ADD
00001fd8: CALLDATALOAD
00001fd9: PUSH2 0x1fe1
00001fdc: DUP2
00001fdd: PUSH2 0x1b78
00001fe0: JUMP
00001fe1: JUMPDEST
00001fe2: SWAP5
00001fe3: POP
00001fe4: PUSH1 0x60
00001fe6: DUP9
00001fe7: ADD
00001fe8: CALLDATALOAD
00001fe9: PUSH1 0x01
00001feb: PUSH1 0x01
00001fed: PUSH1 0x40
00001fef: SHL
00001ff0: SUB
00001ff1: DUP1
00001ff2: DUP3
00001ff3: GT
00001ff4: ISZERO
00001ff5: PUSH2 0x1ffd
00001ff8: JUMPI
00001ff9: PUSH1 0x00
00001ffb: DUP1
00001ffc: REVERT
00001ffd: JUMPDEST
00001ffe: PUSH2 0x2009
00002001: DUP12
00002002: DUP4
00002003: DUP13
00002004: ADD
00002005: PUSH2 0x1bd1
00002008: JUMP
00002009: JUMPDEST
0000200a: SWAP1
0000200b: SWAP7
0000200c: POP
0000200d: SWAP5
0000200e: POP
0000200f: PUSH1 0x80
00002011: DUP11
00002012: ADD
00002013: CALLDATALOAD
00002014: SWAP2
00002015: POP
00002016: DUP1
00002017: DUP3
00002018: GT
00002019: ISZERO
0000201a: PUSH2 0x2022
0000201d: JUMPI
0000201e: PUSH1 0x00
00002020: DUP1
00002021: REVERT
00002022: JUMPDEST
00002023: POP
00002024: PUSH2 0x202f
00002027: DUP11
00002028: DUP3
00002029: DUP12
0000202a: ADD
0000202b: PUSH2 0x1bd1
0000202e: JUMP
0000202f: JUMPDEST
00002030: SWAP9
00002031: SWAP12
00002032: SWAP8
00002033: SWAP11
00002034: POP
00002035: SWAP6
00002036: SWAP9
00002037: POP
00002038: SWAP4
00002039: SWAP7
0000203a: SWAP3
0000203b: SWAP6
0000203c: SWAP3
0000203d: SWAP4
0000203e: POP
0000203f: POP
00002040: POP
00002041: JUMP
00002042: JUMPDEST
00002043: PUSH1 0x00
00002045: DUP1
00002046: PUSH1 0x00
00002048: DUP1
00002049: PUSH1 0x00
0000204b: DUP1
0000204c: PUSH1 0x00
0000204e: PUSH1 0xc0
00002050: DUP9
00002051: DUP11
00002052: SUB
00002053: SLT
00002054: ISZERO
00002055: PUSH2 0x205d
00002058: JUMPI
00002059: PUSH1 0x00
0000205b: DUP1
0000205c: REVERT
0000205d: JUMPDEST
0000205e: DUP8
0000205f: CALLDATALOAD
00002060: PUSH2 0x2068
00002063: DUP2
00002064: PUSH2 0x1b78
00002067: JUMP
00002068: JUMPDEST
00002069: SWAP7
0000206a: POP
0000206b: PUSH1 0x20
0000206d: DUP9
0000206e: ADD
0000206f: CALLDATALOAD
00002070: PUSH2 0x2078
00002073: DUP2
00002074: PUSH2 0x1b78
00002077: JUMP
00002078: JUMPDEST
00002079: SWAP6
0000207a: POP
0000207b: PUSH1 0x40
0000207d: DUP9
0000207e: ADD
0000207f: CALLDATALOAD
00002080: SWAP5
00002081: POP
00002082: PUSH1 0x60
00002084: DUP9
00002085: ADD
00002086: CALLDATALOAD
00002087: SWAP4
00002088: POP
00002089: PUSH1 0x80
0000208b: DUP9
0000208c: ADD
0000208d: CALLDATALOAD
0000208e: SWAP3
0000208f: POP
00002090: PUSH1 0xa0
00002092: DUP9
00002093: ADD
00002094: CALLDATALOAD
00002095: PUSH1 0x01
00002097: PUSH1 0x01
00002099: PUSH1 0x40
0000209b: SHL
0000209c: SUB
0000209d: DUP2
0000209e: GT
0000209f: ISZERO
000020a0: PUSH2 0x20a8
000020a3: JUMPI
000020a4: PUSH1 0x00
000020a6: DUP1
000020a7: REVERT
000020a8: JUMPDEST
000020a9: PUSH2 0x202f
000020ac: DUP11
000020ad: DUP3
000020ae: DUP12
000020af: ADD
000020b0: PUSH2 0x1bd1
000020b3: JUMP
000020b4: JUMPDEST
000020b5: PUSH1 0x00
000020b7: DUP1
000020b8: PUSH1 0x00
000020ba: PUSH1 0x60
000020bc: DUP5
000020bd: DUP7
000020be: SUB
000020bf: SLT
000020c0: ISZERO
000020c1: PUSH2 0x20c9
000020c4: JUMPI
000020c5: PUSH1 0x00
000020c7: DUP1
000020c8: REVERT
000020c9: JUMPDEST
000020ca: DUP4
000020cb: CALLDATALOAD
000020cc: SWAP3
000020cd: POP
000020ce: PUSH1 0x20
000020d0: DUP5
000020d1: ADD
000020d2: CALLDATALOAD
000020d3: PUSH2 0x20db
000020d6: DUP2
000020d7: PUSH2 0x1b78
000020da: JUMP
000020db: JUMPDEST
000020dc: SWAP2
000020dd: POP
000020de: PUSH1 0x40
000020e0: DUP5
000020e1: ADD
000020e2: CALLDATALOAD
000020e3: PUSH1 0x01
000020e5: PUSH1 0x01
000020e7: PUSH1 0x40
000020e9: SHL
000020ea: SUB
000020eb: DUP2
000020ec: GT
000020ed: ISZERO
000020ee: PUSH2 0x20f6
000020f1: JUMPI
000020f2: PUSH1 0x00
000020f4: DUP1
000020f5: REVERT
000020f6: JUMPDEST
000020f7: PUSH2 0x2102
000020fa: DUP7
000020fb: DUP3
000020fc: DUP8
000020fd: ADD
000020fe: PUSH2 0x1e65
00002101: JUMP
00002102: JUMPDEST
00002103: SWAP2
00002104: POP
00002105: POP
00002106: SWAP3
00002107: POP
00002108: SWAP3
00002109: POP
0000210a: SWAP3
0000210b: JUMP
0000210c: JUMPDEST
0000210d: PUSH1 0x01
0000210f: PUSH1 0x01
00002111: PUSH1 0xa0
00002113: SHL
00002114: SUB
00002115: DUP4
00002116: AND
00002117: DUP2
00002118: MSTORE
00002119: PUSH1 0x40
0000211b: PUSH1 0x20
0000211d: DUP3
0000211e: ADD
0000211f: DUP2
00002120: SWAP1
00002121: MSTORE
00002122: PUSH1 0x00
00002124: SWAP1
00002125: PUSH2 0x1809
00002128: SWAP1
00002129: DUP4
0000212a: ADD
0000212b: DUP5
0000212c: PUSH2 0x1d51
0000212f: JUMP
00002130: JUMPDEST
00002131: PUSH1 0x20
00002133: DUP1
00002134: DUP3
00002135: MSTORE
00002136: PUSH1 0x1f
00002138: SWAP1
00002139: DUP3
0000213a: ADD
0000213b: MSTORE
0000213c: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00
0000215d: PUSH1 0x40
0000215f: DUP3
00002160: ADD
00002161: MSTORE
00002162: PUSH1 0x60
00002164: ADD
00002165: SWAP1
00002166: JUMP
00002167: JUMPDEST
00002168: PUSH1 0x60
0000216a: DUP2
0000216b: MSTORE
0000216c: PUSH1 0x00
0000216e: PUSH2 0x217a
00002171: PUSH1 0x60
00002173: DUP4
00002174: ADD
00002175: DUP7
00002176: PUSH2 0x1d51
00002179: JUMP
0000217a: JUMPDEST
0000217b: DUP3
0000217c: DUP2
0000217d: SUB
0000217e: PUSH1 0x20
00002180: DUP5
00002181: ADD
00002182: MSTORE
00002183: PUSH2 0x218c
00002186: DUP2
00002187: DUP7
00002188: PUSH2 0x1d51
0000218b: JUMP
0000218c: JUMPDEST
0000218d: SWAP1
0000218e: POP
0000218f: DUP3
00002190: DUP2
00002191: SUB
00002192: PUSH1 0x40
00002194: DUP5
00002195: ADD
00002196: MSTORE
00002197: PUSH2 0x166b
0000219a: DUP2
0000219b: DUP6
0000219c: PUSH2 0x1d51
0000219f: JUMP
000021a0: JUMPDEST
000021a1: PUSH1 0x01
000021a3: PUSH1 0x01
000021a5: PUSH1 0xa0
000021a7: SHL
000021a8: SUB
000021a9: DUP7
000021aa: DUP2
000021ab: AND
000021ac: DUP3
000021ad: MSTORE
000021ae: DUP6
000021af: DUP2
000021b0: AND
000021b1: PUSH1 0x20
000021b3: DUP4
000021b4: ADD
000021b5: MSTORE
000021b6: DUP5
000021b7: AND
000021b8: PUSH1 0x40
000021ba: DUP3
000021bb: ADD
000021bc: MSTORE
000021bd: PUSH1 0x60
000021bf: DUP2
000021c0: ADD
000021c1: DUP4
000021c2: SWAP1
000021c3: MSTORE
000021c4: PUSH1 0xa0
000021c6: PUSH1 0x80
000021c8: DUP3
000021c9: ADD
000021ca: DUP2
000021cb: SWAP1
000021cc: MSTORE
000021cd: PUSH1 0x00
000021cf: SWAP1
000021d0: PUSH2 0x1953
000021d3: SWAP1
000021d4: DUP4
000021d5: ADD
000021d6: DUP5
000021d7: PUSH2 0x1d51
000021da: JUMP
000021db: JUMPDEST
000021dc: PUSH1 0x01
000021de: DUP2
000021df: DUP2
000021e0: SHR
000021e1: SWAP1
000021e2: DUP3
000021e3: AND
000021e4: DUP1
000021e5: PUSH2 0x21ef
000021e8: JUMPI
000021e9: PUSH1 0x7f
000021eb: DUP3
000021ec: AND
000021ed: SWAP2
000021ee: POP
000021ef: JUMPDEST
000021f0: PUSH1 0x20
000021f2: DUP3
000021f3: LT
000021f4: DUP2
000021f5: SUB
000021f6: PUSH2 0x220f
000021f9: JUMPI
000021fa: PUSH4 0x4e487b71
000021ff: PUSH1 0xe0
00002201: SHL
00002202: PUSH1 0x00
00002204: MSTORE
00002205: PUSH1 0x22
00002207: PUSH1 0x04
00002209: MSTORE
0000220a: PUSH1 0x24
0000220c: PUSH1 0x00
0000220e: REVERT
0000220f: JUMPDEST
00002210: POP
00002211: SWAP2
00002212: SWAP1
00002213: POP
00002214: JUMP
00002215: JUMPDEST
00002216: DUP2
00002217: DUP4
00002218: MSTORE
00002219: DUP2
0000221a: DUP2
0000221b: PUSH1 0x20
0000221d: DUP6
0000221e: ADD
0000221f: CALLDATACOPY
00002220: POP
00002221: PUSH1 0x00
00002223: DUP3
00002224: DUP3
00002225: ADD
00002226: PUSH1 0x20
00002228: SWAP1
00002229: DUP2
0000222a: ADD
0000222b: SWAP2
0000222c: SWAP1
0000222d: SWAP2
0000222e: MSTORE
0000222f: PUSH1 0x1f
00002231: SWAP1
00002232: SWAP2
00002233: ADD
00002234: PUSH1 0x1f
00002236: NOT
00002237: AND
00002238: SWAP1
00002239: SWAP2
0000223a: ADD
0000223b: ADD
0000223c: SWAP1
0000223d: JUMP
0000223e: JUMPDEST
0000223f: PUSH1 0x01
00002241: DUP1
00002242: PUSH1 0xa0
00002244: SHL
00002245: SUB
00002246: DUP6
00002247: AND
00002248: DUP2
00002249: MSTORE
0000224a: DUP4
0000224b: PUSH1 0x20
0000224d: DUP3
0000224e: ADD
0000224f: MSTORE
00002250: PUSH1 0x60
00002252: PUSH1 0x40
00002254: DUP3
00002255: ADD
00002256: MSTORE
00002257: PUSH1 0x00
00002259: PUSH2 0x166b
0000225c: PUSH1 0x60
0000225e: DUP4
0000225f: ADD
00002260: DUP5
00002261: DUP7
00002262: PUSH2 0x2215
00002265: JUMP
00002266: JUMPDEST
00002267: PUSH1 0x00
00002269: PUSH1 0x20
0000226b: DUP3
0000226c: DUP5
0000226d: SUB
0000226e: SLT
0000226f: ISZERO
00002270: PUSH2 0x2278
00002273: JUMPI
00002274: PUSH1 0x00
00002276: DUP1
00002277: REVERT
00002278: JUMPDEST
00002279: DUP2
0000227a: MLOAD
0000227b: DUP1
0000227c: ISZERO
0000227d: ISZERO
0000227e: DUP2
0000227f: EQ
00002280: PUSH2 0x0704
00002283: JUMPI
00002284: PUSH1 0x00
00002286: DUP1
00002287: REVERT
00002288: JUMPDEST
00002289: PUSH1 0x60
0000228b: DUP2
0000228c: MSTORE
0000228d: PUSH1 0x00
0000228f: PUSH2 0x229c
00002292: PUSH1 0x60
00002294: DUP4
00002295: ADD
00002296: DUP8
00002297: DUP10
00002298: PUSH2 0x2215
0000229b: JUMP
0000229c: JUMPDEST
0000229d: DUP3
0000229e: DUP2
0000229f: SUB
000022a0: PUSH1 0x20
000022a2: DUP5
000022a3: ADD
000022a4: MSTORE
000022a5: PUSH2 0x22af
000022a8: DUP2
000022a9: DUP7
000022aa: DUP9
000022ab: PUSH2 0x2215
000022ae: JUMP
000022af: JUMPDEST
000022b0: SWAP2
000022b1: POP
000022b2: POP
000022b3: DUP3
000022b4: ISZERO
000022b5: ISZERO
000022b6: PUSH1 0x40
000022b8: DUP4
000022b9: ADD
000022ba: MSTORE
000022bb: SWAP7
000022bc: SWAP6
000022bd: POP
000022be: POP
000022bf: POP
000022c0: POP
000022c1: POP
000022c2: POP
000022c3: JUMP
000022c4: JUMPDEST
000022c5: PUSH1 0x01
000022c7: PUSH1 0x01
000022c9: PUSH1 0xa0
000022cb: SHL
000022cc: SUB
000022cd: SWAP3
000022ce: SWAP1
000022cf: SWAP3
000022d0: AND
000022d1: DUP3
000022d2: MSTORE
000022d3: PUSH1 0x20
000022d5: DUP3
000022d6: ADD
000022d7: MSTORE
000022d8: PUSH1 0x40
000022da: ADD
000022db: SWAP1
000022dc: JUMP
000022dd: JUMPDEST
000022de: PUSH1 0x00
000022e0: PUSH1 0x20
000022e2: DUP3
000022e3: DUP5
000022e4: SUB
000022e5: SLT
000022e6: ISZERO
000022e7: PUSH2 0x22ef
000022ea: JUMPI
000022eb: PUSH1 0x00
000022ed: DUP1
000022ee: REVERT
000022ef: JUMPDEST
000022f0: DUP2
000022f1: MLOAD
000022f2: PUSH2 0x0704
000022f5: DUP2
000022f6: PUSH2 0x1b78
000022f9: JUMP
000022fa: JUMPDEST
000022fb: PUSH1 0x00
000022fd: DUP3
000022fe: MLOAD
000022ff: PUSH2 0x230c
00002302: DUP2
00002303: DUP5
00002304: PUSH1 0x20
00002306: DUP8
00002307: ADD
00002308: PUSH2 0x1d2d
0000230b: JUMP
0000230c: JUMPDEST
0000230d: SWAP2
0000230e: SWAP1
0000230f: SWAP2
00002310: ADD
00002311: SWAP3
00002312: SWAP2
00002313: POP
00002314: POP
00002315: JUMP
00002316: JUMPDEST
00002317: PUSH1 0x40
00002319: DUP2
0000231a: MSTORE
0000231b: PUSH1 0x00
0000231d: PUSH2 0x2329
00002320: PUSH1 0x40
00002322: DUP4
00002323: ADD
00002324: DUP6
00002325: PUSH2 0x1d51
00002328: JUMP
00002329: JUMPDEST
0000232a: DUP3
0000232b: DUP2
0000232c: SUB
0000232d: PUSH1 0x20
0000232f: DUP5
00002330: ADD
00002331: MSTORE
00002332: PUSH2 0x1f9b
00002335: DUP2
00002336: DUP6
00002337: PUSH2 0x1d51
0000233a: JUMP
0000233b: JUMPDEST
0000233c: PUSH1 0x1f
0000233e: DUP3
0000233f: GT
00002340: ISZERO
00002341: PUSH2 0x11a4
00002344: JUMPI
00002345: PUSH1 0x00
00002347: DUP2
00002348: DUP2
00002349: MSTORE
0000234a: PUSH1 0x20
0000234c: DUP2
0000234d: KECCAK256
0000234e: PUSH1 0x1f
00002350: DUP6
00002351: ADD
00002352: PUSH1 0x05
00002354: SHR
00002355: DUP2
00002356: ADD
00002357: PUSH1 0x20
00002359: DUP7
0000235a: LT
0000235b: ISZERO
0000235c: PUSH2 0x2362
0000235f: JUMPI
00002360: POP
00002361: DUP1
00002362: JUMPDEST
00002363: PUSH1 0x1f
00002365: DUP6
00002366: ADD
00002367: PUSH1 0x05
00002369: SHR
0000236a: DUP3
0000236b: ADD
0000236c: SWAP2
0000236d: POP
0000236e: JUMPDEST
0000236f: DUP2
00002370: DUP2
00002371: LT
00002372: ISZERO
00002373: PUSH2 0x2381
00002376: JUMPI
00002377: DUP3
00002378: DUP2
00002379: SSTORE
0000237a: PUSH1 0x01
0000237c: ADD
0000237d: PUSH2 0x236e
00002380: JUMP
00002381: JUMPDEST
00002382: POP
00002383: POP
00002384: POP
00002385: POP
00002386: POP
00002387: POP
00002388: JUMP
00002389: JUMPDEST
0000238a: DUP2
0000238b: MLOAD
0000238c: PUSH1 0x01
0000238e: PUSH1 0x01
00002390: PUSH1 0x40
00002392: SHL
00002393: SUB
00002394: DUP2
00002395: GT
00002396: ISZERO
00002397: PUSH2 0x23a2
0000239a: JUMPI
0000239b: PUSH2 0x23a2
0000239e: PUSH2 0x1df8
000023a1: JUMP
000023a2: JUMPDEST
000023a3: PUSH2 0x23b6
000023a6: DUP2
000023a7: PUSH2 0x23b0
000023aa: DUP5
000023ab: SLOAD
000023ac: PUSH2 0x21db
000023af: JUMP
000023b0: JUMPDEST
000023b1: DUP5
000023b2: PUSH2 0x233b
000023b5: JUMP
000023b6: JUMPDEST
000023b7: PUSH1 0x20
000023b9: DUP1
000023ba: PUSH1 0x1f
000023bc: DUP4
000023bd: GT
000023be: PUSH1 0x01
000023c0: DUP2
000023c1: EQ
000023c2: PUSH2 0x23eb
000023c5: JUMPI
000023c6: PUSH1 0x00
000023c8: DUP5
000023c9: ISZERO
000023ca: PUSH2 0x23d3
000023cd: JUMPI
000023ce: POP
000023cf: DUP6
000023d0: DUP4
000023d1: ADD
000023d2: MLOAD
000023d3: JUMPDEST
000023d4: PUSH1 0x00
000023d6: NOT
000023d7: PUSH1 0x03
000023d9: DUP7
000023da: SWAP1
000023db: SHL
000023dc: SHR
000023dd: NOT
000023de: AND
000023df: PUSH1 0x01
000023e1: DUP6
000023e2: SWAP1
000023e3: SHL
000023e4: OR
000023e5: DUP6
000023e6: SSTORE
000023e7: PUSH2 0x2381
000023ea: JUMP
000023eb: JUMPDEST
000023ec: PUSH1 0x00
000023ee: DUP6
000023ef: DUP2
000023f0: MSTORE
000023f1: PUSH1 0x20
000023f3: DUP2
000023f4: KECCAK256
000023f5: PUSH1 0x1f
000023f7: NOT
000023f8: DUP7
000023f9: AND
000023fa: SWAP2
000023fb: JUMPDEST
000023fc: DUP3
000023fd: DUP2
000023fe: LT
000023ff: ISZERO
00002400: PUSH2 0x241a
00002403: JUMPI
00002404: DUP9
00002405: DUP7
00002406: ADD
00002407: MLOAD
00002408: DUP3
00002409: SSTORE
0000240a: SWAP5
0000240b: DUP5
0000240c: ADD
0000240d: SWAP5
0000240e: PUSH1 0x01
00002410: SWAP1
00002411: SWAP2
00002412: ADD
00002413: SWAP1
00002414: DUP5
00002415: ADD
00002416: PUSH2 0x23fb
00002419: JUMP
0000241a: JUMPDEST
0000241b: POP
0000241c: DUP6
0000241d: DUP3
0000241e: LT
0000241f: ISZERO
00002420: PUSH2 0x2438
00002423: JUMPI
00002424: DUP8
00002425: DUP6
00002426: ADD
00002427: MLOAD
00002428: PUSH1 0x00
0000242a: NOT
0000242b: PUSH1 0x03
0000242d: DUP9
0000242e: SWAP1
0000242f: SHL
00002430: PUSH1 0xf8
00002432: AND
00002433: SHR
00002434: NOT
00002435: AND
00002436: DUP2
00002437: SSTORE
00002438: JUMPDEST
00002439: POP
0000243a: POP
0000243b: POP
0000243c: POP
0000243d: POP
0000243e: PUSH1 0x01
00002440: SWAP1
00002441: DUP2
00002442: SHL
00002443: ADD
00002444: SWAP1
00002445: SSTORE
00002446: POP
00002447: JUMP
00002448: JUMPDEST
00002449: PUSH1 0x00
0000244b: DUP1
0000244c: PUSH1 0x40
0000244e: DUP4
0000244f: DUP6
00002450: SUB
00002451: SLT
00002452: ISZERO
00002453: PUSH2 0x245b
00002456: JUMPI
00002457: PUSH1 0x00
00002459: DUP1
0000245a: REVERT
0000245b: JUMPDEST
0000245c: DUP3
0000245d: CALLDATALOAD
0000245e: SWAP2
0000245f: POP
00002460: PUSH1 0x20
00002462: DUP4
00002463: ADD
00002464: CALLDATALOAD
00002465: PUSH1 0x01
00002467: PUSH1 0x01
00002469: PUSH1 0x40
0000246b: SHL
0000246c: SUB
0000246d: DUP2
0000246e: GT
0000246f: ISZERO
00002470: PUSH2 0x2478
00002473: JUMPI
00002474: PUSH1 0x00
00002476: DUP1
00002477: REVERT
00002478: JUMPDEST
00002479: PUSH2 0x2484
0000247c: DUP6
0000247d: DUP3
0000247e: DUP7
0000247f: ADD
00002480: PUSH2 0x1e65
00002483: JUMP
00002484: JUMPDEST
00002485: SWAP2
00002486: POP
00002487: POP
00002488: SWAP3
00002489: POP
0000248a: SWAP3
0000248b: SWAP1
0000248c: POP
0000248d: JUMP
0000248e: JUMPDEST
0000248f: PUSH1 0x00
00002491: DUP1
00002492: PUSH1 0x40
00002494: DUP4
00002495: DUP6
00002496: SUB
00002497: SLT
00002498: ISZERO
00002499: PUSH2 0x24a1
0000249c: JUMPI
0000249d: PUSH1 0x00
0000249f: DUP1
000024a0: REVERT
000024a1: JUMPDEST
000024a2: DUP3
000024a3: CALLDATALOAD
000024a4: PUSH2 0x24ac
000024a7: DUP2
000024a8: PUSH2 0x1b78
000024ab: JUMP
000024ac: JUMPDEST
000024ad: SWAP2
000024ae: POP
000024af: PUSH1 0x20
000024b1: DUP4
000024b2: ADD
000024b3: CALLDATALOAD
000024b4: PUSH1 0x01
000024b6: PUSH1 0x01
000024b8: PUSH1 0x40
000024ba: SHL
000024bb: SUB
000024bc: DUP2
000024bd: GT
000024be: ISZERO
000024bf: PUSH2 0x2478
000024c2: JUMPI
000024c3: PUSH1 0x00
000024c5: DUP1
000024c6: REVERT
000024c7: JUMPDEST
000024c8: PUSH1 0x00
000024ca: DUP1
000024cb: PUSH1 0x00
000024cd: PUSH1 0x60
000024cf: DUP5
000024d0: DUP7
000024d1: SUB
000024d2: SLT
000024d3: ISZERO
000024d4: PUSH2 0x24dc
000024d7: JUMPI
000024d8: PUSH1 0x00
000024da: DUP1
000024db: REVERT
000024dc: JUMPDEST
000024dd: DUP4
000024de: MLOAD
000024df: SWAP3
000024e0: POP
000024e1: PUSH1 0x20
000024e3: DUP5
000024e4: ADD
000024e5: MLOAD
000024e6: PUSH1 0x01
000024e8: PUSH1 0x01
000024ea: PUSH1 0x40
000024ec: SHL
000024ed: SUB
000024ee: DUP2
000024ef: GT
000024f0: ISZERO
000024f1: PUSH2 0x24f9
000024f4: JUMPI
000024f5: PUSH1 0x00
000024f7: DUP1
000024f8: REVERT
000024f9: JUMPDEST
000024fa: DUP5
000024fb: ADD
000024fc: PUSH1 0x1f
000024fe: DUP2
000024ff: ADD
00002500: DUP7
00002501: SGT
00002502: PUSH2 0x250a
00002505: JUMPI
00002506: PUSH1 0x00
00002508: DUP1
00002509: REVERT
0000250a: JUMPDEST
0000250b: DUP1
0000250c: MLOAD
0000250d: PUSH2 0x2518
00002510: PUSH2 0x1e84
00002513: DUP3
00002514: PUSH2 0x1e3e
00002517: JUMP
00002518: JUMPDEST
00002519: DUP2
0000251a: DUP2
0000251b: MSTORE
0000251c: DUP8
0000251d: PUSH1 0x20
0000251f: DUP4
00002520: DUP6
00002521: ADD
00002522: ADD
00002523: GT
00002524: ISZERO
00002525: PUSH2 0x252d
00002528: JUMPI
00002529: PUSH1 0x00
0000252b: DUP1
0000252c: REVERT
0000252d: JUMPDEST
0000252e: PUSH2 0x253e
00002531: DUP3
00002532: PUSH1 0x20
00002534: DUP4
00002535: ADD
00002536: PUSH1 0x20
00002538: DUP7
00002539: ADD
0000253a: PUSH2 0x1d2d
0000253d: JUMP
0000253e: JUMPDEST
0000253f: DUP1
00002540: SWAP5
00002541: POP
00002542: POP
00002543: POP
00002544: POP
00002545: PUSH1 0x40
00002547: DUP5
00002548: ADD
00002549: MLOAD
0000254a: SWAP1
0000254b: POP
0000254c: SWAP3
0000254d: POP
0000254e: SWAP3
0000254f: POP
00002550: SWAP3
00002551: JUMP
00002552: JUMPDEST
00002553: PUSH1 0x00
00002555: PUSH1 0x20
00002557: DUP3
00002558: DUP5
00002559: SUB
0000255a: SLT
0000255b: ISZERO
0000255c: PUSH2 0x2564
0000255f: JUMPI
00002560: PUSH1 0x00
00002562: DUP1
00002563: REVERT
00002564: JUMPDEST
00002565: POP
00002566: MLOAD
00002567: SWAP2
00002568: SWAP1
00002569: POP
0000256a: JUMP
0000256b: JUMPDEST
0000256c: DUP2
0000256d: DUP2
0000256e: SUB
0000256f: DUP2
00002570: DUP2
00002571: GT
00002572: ISZERO
00002573: PUSH2 0x037f
00002576: JUMPI
00002577: PUSH4 0x4e487b71
0000257c: PUSH1 0xe0
0000257e: SHL
0000257f: PUSH1 0x00
00002581: MSTORE
00002582: PUSH1 0x11
00002584: PUSH1 0x04
00002586: MSTORE
00002587: PUSH1 0x24
00002589: PUSH1 0x00
0000258b: REVERT
0000258c: JUMPDEST
0000258d: PUSH1 0x00
0000258f: PUSH2 0x0120
00002592: PUSH1 0x01
00002594: DUP1
00002595: PUSH1 0xa0
00002597: SHL
00002598: SUB
00002599: DUP1
0000259a: DUP14
0000259b: AND
0000259c: DUP5
0000259d: MSTORE
0000259e: DUP12
0000259f: PUSH1 0x20
000025a1: DUP6
000025a2: ADD
000025a3: MSTORE
000025a4: DUP11
000025a5: PUSH1 0x40
000025a7: DUP6
000025a8: ADD
000025a9: MSTORE
000025aa: DUP1
000025ab: DUP11
000025ac: AND
000025ad: PUSH1 0x60
000025af: DUP6
000025b0: ADD
000025b1: MSTORE
000025b2: DUP1
000025b3: DUP10
000025b4: AND
000025b5: PUSH1 0x80
000025b7: DUP6
000025b8: ADD
000025b9: MSTORE
000025ba: POP
000025bb: DUP7
000025bc: PUSH1 0xa0
000025be: DUP5
000025bf: ADD
000025c0: MSTORE
000025c1: DUP6
000025c2: PUSH1 0xc0
000025c4: DUP5
000025c5: ADD
000025c6: MSTORE
000025c7: DUP5
000025c8: PUSH1 0xe0
000025ca: DUP5
000025cb: ADD
000025cc: MSTORE
000025cd: DUP1
000025ce: PUSH2 0x0100
000025d1: DUP5
000025d2: ADD
000025d3: MSTORE
000025d4: PUSH2 0x25df
000025d7: DUP2
000025d8: DUP5
000025d9: ADD
000025da: DUP6
000025db: PUSH2 0x1d51
000025de: JUMP
000025df: JUMPDEST
000025e0: SWAP13
000025e1: SWAP12
000025e2: POP
000025e3: POP
000025e4: POP
000025e5: POP
000025e6: POP
000025e7: POP
000025e8: POP
000025e9: POP
000025ea: POP
000025eb: POP
000025ec: POP
000025ed: POP
000025ee: JUMP
000025ef: INVALID
000025f0: LOG2
000025f1: PUSH5 0x6970667358
000025f7: UNKNOWN(0x22)
000025f8: SLT
000025f9: KECCAK256
000025fa: SWAP7
000025fb: DUP1
000025fc: UNKNOWN(0x2D)
000025fd: PUSH12 0xc55351407cc4962860edc0cd
0000260a: UNKNOWN(0xBA)
0000260b: CREATE
0000260c: UNKNOWN(0xB0)
0000260d: PUSH10 0xdeb9e72c7fbc22ae181e
00002618: LOG3
00002619: SELFDESTRUCT
0000261a: PUSH5 0x736f6c6343
00002620: STOP
00002621: ADDMOD
00002622: LT
00002623: STOP
00002624: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xa9bdc10b442929a04cb015c8fd06c904de74e0744b30592cb758c9efc6c6f5ea
call_targets: 0xe80b4e0ed5e92d865f4708eee0e1564287a7d848
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa9bdc10b442929a04cb015c8fd06c904de74e0744b30592cb758c9efc6c6f5ea",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe80b4e0ed5e92d865f4708eee0e1564287a7d848"
    ],
    "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": "0xa01893bf",
            "selector": "0xa01893bf",
            "calldata_variants": [
                "0xa01893bf",
                "0xa01893bf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0c76a96",
            "selector": "0xa0c76a96",
            "calldata_variants": [
                "0xa0c76a96",
                "0xa0c76a960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa7e28d48",
            "selector": "0xa7e28d48",
            "calldata_variants": [
                "0xa7e28d48",
                "0xa7e28d480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbcf2e6eb",
            "selector": "0xbcf2e6eb",
            "calldata_variants": [
                "0xbcf2e6eb",
                "0xbcf2e6eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbd5f3e7d",
            "selector": "0xbd5f3e7d",
            "calldata_variants": [
                "0xbd5f3e7d",
                "0xbd5f3e7d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2ce7d65",
            "selector": "0xd2ce7d65",
            "calldata_variants": [
                "0xd2ce7d65",
                "0xd2ce7d650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf68a9082",
            "selector": "0xf68a9082",
            "calldata_variants": [
                "0xf68a9082",
                "0xf68a90820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf887ea40",
            "selector": "0xf887ea40",
            "calldata_variants": [
                "0xf887ea40",
                "0xf887ea400000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2373,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6413,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6764,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [],
    "untrusted_call_count": 3
}
high other cast SELFDESTRUCT present 85 no
view
evidence_json
{
    "notes": "selfdestruct can remove contract code and send funds; review reachability",
    "selfdestruct_count": 1
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xa9bdc10b442929a04cb015c8fd06c904de74e0744b30592cb758c9efc6c6f5ea
call_targets: 0xe80b4e0ed5e92d865f4708eee0e1564287a7d848
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa9bdc10b442929a04cb015c8fd06c904de74e0744b30592cb758c9efc6c6f5ea",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe80b4e0ed5e92d865f4708eee0e1564287a7d848"
    ],
    "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": "0xa01893bf",
            "selector": "0xa01893bf",
            "calldata_variants": [
                "0xa01893bf",
                "0xa01893bf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0c76a96",
            "selector": "0xa0c76a96",
            "calldata_variants": [
                "0xa0c76a96",
                "0xa0c76a960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa7e28d48",
            "selector": "0xa7e28d48",
            "calldata_variants": [
                "0xa7e28d48",
                "0xa7e28d480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbcf2e6eb",
            "selector": "0xbcf2e6eb",
            "calldata_variants": [
                "0xbcf2e6eb",
                "0xbcf2e6eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbd5f3e7d",
            "selector": "0xbd5f3e7d",
            "calldata_variants": [
                "0xbd5f3e7d",
                "0xbd5f3e7d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2ce7d65",
            "selector": "0xd2ce7d65",
            "calldata_variants": [
                "0xd2ce7d65",
                "0xd2ce7d650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf68a9082",
            "selector": "0xf68a9082",
            "calldata_variants": [
                "0xf68a9082",
                "0xf68a90820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf887ea40",
            "selector": "0xf887ea40",
            "calldata_variants": [
                "0xf887ea40",
                "0xf887ea400000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2373,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6413,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6764,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": []
}
high upgradeability codex Unprotected initialize allows hostile setup of critical bridge addresses 85 no
view
evidence_json
{
    "evidence": "L1ERC20Gateway.initialize is public and lacks any access control beyond a single-call guard in _initialize; it sets critical addresses (counterpart, router, inbox).",
    "locations": [
        "contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol:89"
    ],
    "recommendation": "Protect initialization with an access-control guard or OpenZeppelin's initializer/onlyProxy pattern, and ensure proxies are initialized atomically on deployment (e.g., via constructor calldata). Consider adding an explicit admin role check to initialize.",
    "exploit_scenario": "If the proxy/implementation is deployed without calling initialize in the same transaction, any external account can call initialize first and set the inbox/router/counterpartGateway to attacker-controlled contracts. A malicious inbox/bridge/outbox can then satisfy onlyCounterpartGateway checks and call finalizeInboundTransfer to release escrowed tokens to the attacker or permanently block legitimate bridging."
}
high other detector SELFDESTRUCT reachable 65 no no
view
trace_id: 0xaead01fc060c755950ca4a7e5188175e9715c50a4f8aef349fa7aa2c84907ba2
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xaead01fc060c755950ca4a7e5188175e9715c50a4f8aef349fa7aa2c84907ba2",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xa01893bf",
            "selector": "0xa01893bf",
            "calldata_variants": [
                "0xa01893bf",
                "0xa01893bf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0c76a96",
            "selector": "0xa0c76a96",
            "calldata_variants": [
                "0xa0c76a96",
                "0xa0c76a960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa7e28d48",
            "selector": "0xa7e28d48",
            "calldata_variants": [
                "0xa7e28d48",
                "0xa7e28d480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbcf2e6eb",
            "selector": "0xbcf2e6eb",
            "calldata_variants": [
                "0xbcf2e6eb",
                "0xbcf2e6eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbd5f3e7d",
            "selector": "0xbd5f3e7d",
            "calldata_variants": [
                "0xbd5f3e7d",
                "0xbd5f3e7d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2ce7d65",
            "selector": "0xd2ce7d65",
            "calldata_variants": [
                "0xd2ce7d65",
                "0xd2ce7d650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf68a9082",
            "selector": "0xf68a9082",
            "calldata_variants": [
                "0xf68a9082",
                "0xf68a90820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf887ea40",
            "selector": "0xf887ea40",
            "calldata_variants": [
                "0xf887ea40",
                "0xf887ea400000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [],
    "selfdestruct_count": 1
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0xaead01fc060c755950ca4a7e5188175e9715c50a4f8aef349fa7aa2c84907ba2
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xaead01fc060c755950ca4a7e5188175e9715c50a4f8aef349fa7aa2c84907ba2",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xa01893bf",
            "selector": "0xa01893bf",
            "calldata_variants": [
                "0xa01893bf",
                "0xa01893bf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0c76a96",
            "selector": "0xa0c76a96",
            "calldata_variants": [
                "0xa0c76a96",
                "0xa0c76a960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa7e28d48",
            "selector": "0xa7e28d48",
            "calldata_variants": [
                "0xa7e28d48",
                "0xa7e28d480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbcf2e6eb",
            "selector": "0xbcf2e6eb",
            "calldata_variants": [
                "0xbcf2e6eb",
                "0xbcf2e6eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbd5f3e7d",
            "selector": "0xbd5f3e7d",
            "calldata_variants": [
                "0xbd5f3e7d",
                "0xbd5f3e7d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2ce7d65",
            "selector": "0xd2ce7d65",
            "calldata_variants": [
                "0xd2ce7d65",
                "0xd2ce7d650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf68a9082",
            "selector": "0xf68a9082",
            "calldata_variants": [
                "0xf68a9082",
                "0xf68a90820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf887ea40",
            "selector": "0xf887ea40",
            "calldata_variants": [
                "0xf887ea40",
                "0xf887ea400000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}