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

Analysis Run

b83d9cb7-09ac-4e3f-afa9-1ff09b9e4430

complete
Chain ID
1
Address
Block Number
Created
Thu, Jan 1, 2026 3:13 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
Unprotected initialize allows ownership takeover and collateral drain
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
31060 report.consolidate complete 1 / 1 3 months ago
76174 artifact.fetch complete 1 / 3 1 week ago
76175 tool.cast_disasm complete 1 / 3 1 week ago
76176 analysis.bundle complete 1 / 3 1 week ago
76177 capability.graph complete 1 / 3 1 week ago
76178 detector.run complete 1 / 3 1 week ago
76179 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
One exploitable initialization takeover enables draining all collateral if the contract is deployed without being initialized atomically.
View stderr
[codex:1475407] OpenAI Codex v0.77.0 (research preview)
[codex:1475407] --------
[codex:1475407] workdir: /tmp/codex-multi-_j9_jpcu
[codex:1475407] model: gpt-5.2-codex
[codex:1475407] provider: openai
[codex:1475407] approval: never
[codex:1475407] sandbox: read-only
[codex:1475407] reasoning effort: xhigh
[codex:1475407] reasoning summaries: auto
[codex:1475407] session id: 019b7a1b-bcef-7c02-83fc-b09b5b207429
[codex:1475407] --------
[codex:1475407] user
[codex:1475407] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1475407] 
[codex:1475407] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1475407] 
[codex:1475407] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1475407] - Gas inefficiency, code quality, naming, or best practices
[codex:1475407] - Theoretical vulnerabilities without a clear extraction path
[codex:1475407] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1475407] - Front-running unless it enables theft beyond MEV
[codex:1475407] - DoS, griefing, or issues that don't result in attacker profit
[codex:1475407] - Missing events, view function issues, or informational findings
[codex:1475407] 
[codex:1475407] HIGH-VALUE PATTERNS TO HUNT:
[codex:1475407] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1475407] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1475407] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1475407] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1475407] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1475407] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1475407] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1475407] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1475407] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1475407] 
[codex:1475407] For each finding, you MUST provide:
[codex:1475407] 1. Exact file and line numbers of vulnerable code
[codex:1475407] 2. Step-by-step exploit transaction sequence
[codex:1475407] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1475407] 
[codex:1475407] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1475407] 
[codex:1475407] Output MUST be valid JSON matching the provided schema.
[codex:1475407] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1475407] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1475407] mcp startup: no servers
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Preparing to read AUDIT_BUNDLE.txt**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc ls in /tmp/codex-multi-_j9_jpcu succeeded in 5ms:
[codex:1475407] AUDIT_BUNDLE.txt
[codex:1475407] codex-output-schema.json
[codex:1475407] contracts
[codex:1475407] exec
[codex:1475407] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-_j9_jpcu succeeded in 6ms:
[codex:1475407] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1475407] 
[codex:1475407] ================================================================================
[codex:1475407] FILE: contracts/contracts/PackageVersioned.sol
[codex:1475407] ================================================================================
[codex:1475407] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1475407] pragma solidity >=0.6.11;
[codex:1475407] 
[codex:1475407] /**
[codex:1475407]  * @title PackageVersioned
[codex:1475407]  * @notice Package version getter for contracts
[codex:1475407]  **/
[codex:1475407] abstract contract PackageVersioned {
[codex:1475407]     // GENERATED CODE - DO NOT EDIT
[codex:1475407]     string public constant PACKAGE_VERSION = "9.0.9";
[codex:1475407] }
[codex:1475407] 
[codex:1475407] ================================================================================
[codex:1475407] FILE: contracts/contracts/client/GasRouter.sol
[codex:1475407] ================================================================================
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Scanning contracts for vulnerabilities**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc 'rg -n "withdraw|claim|transfer|mint|burn|redeem|deposit|bridge|rebalance|hook" contracts/contracts -g"*.sol"' in /tmp/codex-multi-_j9_jpcu succeeded in 9ms:
[codex:1475407] contracts/contracts/interfaces/hooks/IPostDispatchHook.sol:37:     * @notice Returns an enum that represents the type of hook
[codex:1475407] contracts/contracts/interfaces/hooks/IPostDispatchHook.sol:39:    function hookType() external view returns (uint8);
[codex:1475407] contracts/contracts/interfaces/hooks/IPostDispatchHook.sol:42:     * @notice Returns whether the hook supports metadata
[codex:1475407] contracts/contracts/interfaces/hooks/IPostDispatchHook.sol:44:     * @return Whether the hook supports metadata
[codex:1475407] contracts/contracts/interfaces/hooks/IPostDispatchHook.sol:52:     * @param metadata The metadata required for the hook
[codex:1475407] contracts/contracts/interfaces/hooks/IPostDispatchHook.sol:62:     * @param metadata The metadata required for the hook
[codex:1475407] contracts/contracts/interfaces/ITokenBridge.sol:17:    function transferRemote(
[codex:1475407] contracts/contracts/interfaces/ITokenBridge.sol:24:     * @notice Provide the value transfer quote
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:32: * @title Hyperlane ERC20 Token Collateral that wraps an existing ERC20 with remote transfer functionality.
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:54:        address _hook,
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:58:        _MailboxClient_initialize(_hook, _interchainSecurityModule, _owner);
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:84:    function _transferFromSender(
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:95:    function _transferTo(
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:103:    function _rebalance(
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:107:        ValueTransferBridge bridge
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:109:        wrappedToken.safeApprove({spender: address(bridge), value: amount});
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:110:        MovableCollateralRouter._rebalance({
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:114:            bridge: bridge
[codex:1475407] contracts/contracts/interfaces/IMailbox.sol:5:import {IPostDispatchHook} from "./hooks/IPostDispatchHook.sol";
[codex:1475407] contracts/contracts/token/interfaces/ValueTransferBridge.sol:16:    function transferRemote(
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Listing contracts folder**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc 'rg -n "contract" contracts/contracts/token -g"*.sol"' in /tmp/codex-multi-_j9_jpcu succeeded in 8ms:
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:24:import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:25:import {Address} from "@openzeppelin/contracts/utils/Address.sol";
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:26:import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:27:import {Context} from "@openzeppelin/contracts/utils/Context.sol";
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:28:import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:35:contract HypERC20Collateral is MovableCollateralRouter {
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:81:     * @dev Transfers `_amount` of `wrappedToken` from `msg.sender` to this contract.
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol:92:     * @dev Transfers `_amount` of `wrappedToken` from this contract to `_recipient`.
[codex:1475407] contracts/contracts/token/libs/FungibleTokenRouter.sol:10:abstract contract FungibleTokenRouter is TokenRouter {
[codex:1475407] contracts/contracts/token/libs/TokenRouter.sol:14:abstract contract TokenRouter is GasRouter, ITokenBridge {
[codex:1475407] contracts/contracts/token/libs/MovableCollateralRouter.sol:7:import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
[codex:1475407] contracts/contracts/token/libs/MovableCollateralRouter.sol:9:import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1475407] contracts/contracts/token/libs/MovableCollateralRouter.sol:10:import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1475407] contracts/contracts/token/libs/MovableCollateralRouter.sol:12:abstract contract MovableCollateralRouter is FungibleTokenRouter {
[codex:1475407] contracts/contracts/token/libs/MovableCollateralRouter.sol:136:    /// See https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v5.3.0-rc.0/contracts/utils/structs/EnumerableSet.sol#L126
[codex:1475407] contracts/contracts/token/libs/MovableCollateralRouter.sol:144:    /// @dev A helper for `_clear`. See https://github.com/OpenZeppelin/openzeppelin-contracts/blob/39f5a0284e7eb539354e44b76fcbb69033b22b56/contracts/utils/Arrays.sol#L466
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Checking token directories**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc 'ls contracts/contracts/token' in /tmp/codex-multi-_j9_jpcu succeeded in 6ms:
[codex:1475407] HypERC20Collateral.sol
[codex:1475407] interfaces
[codex:1475407] libs
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Inspecting HypERC20Collateral component**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc "sed -n '1,200p' contracts/contracts/token/HypERC20Collateral.sol" in /tmp/codex-multi-_j9_jpcu succeeded in 5ms:
[codex:1475407] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1475407] pragma solidity >=0.8.0;
[codex:1475407] 
[codex:1475407] /*@@@@@@@       @@@@@@@@@
[codex:1475407]  @@@@@@@@@       @@@@@@@@@
[codex:1475407]   @@@@@@@@@       @@@@@@@@@
[codex:1475407]    @@@@@@@@@       @@@@@@@@@
[codex:1475407]     @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1475407]      @@@@@  HYPERLANE  @@@@@@@
[codex:1475407]     @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1475407]    @@@@@@@@@       @@@@@@@@@
[codex:1475407]   @@@@@@@@@       @@@@@@@@@
[codex:1475407]  @@@@@@@@@       @@@@@@@@@
[codex:1475407] @@@@@@@@@       @@@@@@@@*/
[codex:1475407] 
[codex:1475407] // ============ Internal Imports ============
[codex:1475407] import {TokenMessage} from "./libs/TokenMessage.sol";
[codex:1475407] import {TokenRouter} from "./libs/TokenRouter.sol";
[codex:1475407] import {FungibleTokenRouter} from "./libs/FungibleTokenRouter.sol";
[codex:1475407] import {MovableCollateralRouter} from "./libs/MovableCollateralRouter.sol";
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Reviewing related contract files**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc 'find contracts/contracts -maxdepth 2 -type f -name "*.sol"' in /tmp/codex-multi-_j9_jpcu succeeded in 6ms:
[codex:1475407] contracts/contracts/PackageVersioned.sol
[codex:1475407] contracts/contracts/libs/EnumerableMapExtended.sol
[codex:1475407] contracts/contracts/libs/TypeCasts.sol
[codex:1475407] contracts/contracts/libs/Message.sol
[codex:1475407] contracts/contracts/token/HypERC20Collateral.sol
[codex:1475407] contracts/contracts/client/Router.sol
[codex:1475407] contracts/contracts/client/MailboxClient.sol
[codex:1475407] contracts/contracts/client/GasRouter.sol
[codex:1475407] contracts/contracts/interfaces/IMailbox.sol
[codex:1475407] contracts/contracts/interfaces/IInterchainSecurityModule.sol
[codex:1475407] contracts/contracts/interfaces/ITokenBridge.sol
[codex:1475407] contracts/contracts/interfaces/IMessageRecipient.sol
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Analyzing unprotected initialize exploit potential**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc "nl -ba contracts/contracts/token/HypERC20Collateral.sol | sed -n '1,140p'" in /tmp/codex-multi-_j9_jpcu succeeded in 6ms:
[codex:1475407]      1	// SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1475407]      2	pragma solidity >=0.8.0;
[codex:1475407]      3	
[codex:1475407]      4	/*@@@@@@@       @@@@@@@@@
[codex:1475407]      5	 @@@@@@@@@       @@@@@@@@@
[codex:1475407]      6	  @@@@@@@@@       @@@@@@@@@
[codex:1475407]      7	   @@@@@@@@@       @@@@@@@@@
[codex:1475407]      8	    @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1475407]      9	     @@@@@  HYPERLANE  @@@@@@@
[codex:1475407]     10	    @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1475407]     11	   @@@@@@@@@       @@@@@@@@@
[codex:1475407]     12	  @@@@@@@@@       @@@@@@@@@
[codex:1475407]     13	 @@@@@@@@@       @@@@@@@@@
[codex:1475407]     14	@@@@@@@@@       @@@@@@@@*/
[codex:1475407]     15	
[codex:1475407]     16	// ============ Internal Imports ============
[codex:1475407]     17	import {TokenMessage} from "./libs/TokenMessage.sol";
[codex:1475407]     18	import {TokenRouter} from "./libs/TokenRouter.sol";
[codex:1475407]     19	import {FungibleTokenRouter} from "./libs/FungibleTokenRouter.sol";
[codex:1475407]     20	import {MovableCollateralRouter} from "./libs/MovableCollateralRouter.sol";
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Marking key function lines**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc "nl -ba contracts/contracts/token/libs/MovableCollateralRouter.sol | sed -n '1,220p'" in /tmp/codex-multi-_j9_jpcu succeeded in 6ms:
[codex:1475407]      1	// SPDX-License-Identifier: Apache-2.0
[codex:1475407]      2	pragma solidity >=0.8.0;
[codex:1475407]      3	
[codex:1475407]      4	import {Router} from "../../client/Router.sol";
[codex:1475407]      5	import {FungibleTokenRouter} from "./FungibleTokenRouter.sol";
[codex:1475407]      6	import {ValueTransferBridge} from "../interfaces/ValueTransferBridge.sol";
[codex:1475407]      7	import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
[codex:1475407]      8	
[codex:1475407]      9	import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1475407]     10	import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1475407]     11	
[codex:1475407]     12	abstract contract MovableCollateralRouter is FungibleTokenRouter {
[codex:1475407]     13	    using SafeERC20 for IERC20;
[codex:1475407]     14	    using EnumerableSet for EnumerableSet.AddressSet;
[codex:1475407]     15	
[codex:1475407]     16	    /// @notice Mapping of domain to allowed rebalance recipient.
[codex:1475407]     17	    /// @dev Keys constrained to a subset of Router.domains()
[codex:1475407]     18	    mapping(uint32 routerDomain => bytes32 recipient) public allowedRecipient;
[codex:1475407]     19	
[codex:1475407]     20	    /// @notice Mapping of domain to allowed rebalance bridges.
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Evaluating initialization and exploit possibilities**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc "nl -ba contracts/contracts/client/MailboxClient.sol | sed -n '80,170p'" in /tmp/codex-multi-_j9_jpcu succeeded in 6ms:
[codex:1475407]     80	        virtual
[codex:1475407]     81	        returns (IInterchainSecurityModule)
[codex:1475407]     82	    {
[codex:1475407]     83	        return _interchainSecurityModule;
[codex:1475407]     84	    }
[codex:1475407]     85	
[codex:1475407]     86	    /**
[codex:1475407]     87	     * @notice Sets the address of the application's custom hook.
[codex:1475407]     88	     * @param _hook The address of the hook contract.
[codex:1475407]     89	     */
[codex:1475407]     90	    function setHook(
[codex:1475407]     91	        address _hook
[codex:1475407]     92	    ) public virtual onlyContractOrNull(_hook) onlyOwner {
[codex:1475407]     93	        hook = IPostDispatchHook(_hook);
[codex:1475407]     94	        emit HookSet(_hook);
[codex:1475407]     95	    }
[codex:1475407]     96	
[codex:1475407]     97	    /**
[codex:1475407]     98	     * @notice Sets the address of the application's custom interchain security module.
[codex:1475407]     99	     * @param _module The address of the interchain security module contract.
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Analyzing unprotected initialize vulnerability**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-_j9_jpcu succeeded in 5ms:
[codex:1475407] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Summarizing vulnerability reporting format and analysis**
[codex:1475407] 
[codex:1475407] I'll outline the JSON structure required for reporting—including no_findings, summary, and findings with detailed evidence, locations, exploit scenarios, and profit estimates. I'm carefully weighing whether the unprotected initialize function counts as a concrete vulnerability given typical upgradeable contract patterns and the risk if initialization is omitted; this potential proxy hijacking fits the user's high-value pattern criteria, so I lean toward reporting it. I’m also scanning for other vulnerabilities like assembly storage manipulation or unchecked math but find no clear exploits there.
[codex:1475407] exec
[codex:1475407] /bin/bash -lc "sed -n '1,200p' contracts/contracts/libs/TypeCasts.sol" in /tmp/codex-multi-_j9_jpcu succeeded in 5ms:
[codex:1475407] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1475407] pragma solidity >=0.6.11;
[codex:1475407] 
[codex:1475407] library TypeCasts {
[codex:1475407]     // alignment preserving cast
[codex:1475407]     function addressToBytes32(address _addr) internal pure returns (bytes32) {
[codex:1475407]         return bytes32(uint256(uint160(_addr)));
[codex:1475407]     }
[codex:1475407] 
[codex:1475407]     // alignment preserving cast
[codex:1475407]     function bytes32ToAddress(bytes32 _buf) internal pure returns (address) {
[codex:1475407]         require(
[codex:1475407]             uint256(_buf) <= uint256(type(uint160).max),
[codex:1475407]             "TypeCasts: bytes32ToAddress overflow"
[codex:1475407]         );
[codex:1475407]         return address(uint160(uint256(_buf)));
[codex:1475407]     }
[codex:1475407] }
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Checking for message library**
[codex:1475407] exec
[codex:1475407] /bin/bash -lc "sed -n '1,220p' contracts/contracts/libs/Message.sol" in /tmp/codex-multi-_j9_jpcu succeeded in 5ms:
[codex:1475407] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1475407] pragma solidity >=0.8.0;
[codex:1475407] 
[codex:1475407] import {TypeCasts} from "./TypeCasts.sol";
[codex:1475407] 
[codex:1475407] /**
[codex:1475407]  * @title Hyperlane Message Library
[codex:1475407]  * @notice Library for formatted messages used by Mailbox
[codex:1475407]  **/
[codex:1475407] library Message {
[codex:1475407]     using TypeCasts for bytes32;
[codex:1475407] 
[codex:1475407]     uint256 private constant VERSION_OFFSET = 0;
[codex:1475407]     uint256 private constant NONCE_OFFSET = 1;
[codex:1475407]     uint256 private constant ORIGIN_OFFSET = 5;
[codex:1475407]     uint256 private constant SENDER_OFFSET = 9;
[codex:1475407]     uint256 private constant DESTINATION_OFFSET = 41;
[codex:1475407]     uint256 private constant RECIPIENT_OFFSET = 45;
[codex:1475407]     uint256 private constant BODY_OFFSET = 77;
[codex:1475407] 
[codex:1475407] 
[codex:1475407] thinking
[codex:1475407] **Analyzing unprotected initializer vulnerability**
[codex:1475407] codex
[codex:1475407] {"no_findings":false,"summary":"One exploitable initialization takeover enables draining all collateral if the contract is deployed without being initialized atomically.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initialize allows ownership takeover and collateral drain","exploit_scenario":"1) Contract is deployed but `initialize` is not called atomically (e.g., proxy deployed without init data or delayed setup). 2) Attacker calls `initialize(_hook, _ism, attacker)` to become owner. 3) As owner, attacker calls `approveTokenForBridge(wrappedToken, attackerEOA)` to grant themselves unlimited allowance. 4) Attacker calls `wrappedToken.transferFrom(address(HypERC20Collateral), attacker, balance)` to drain collateral. Profit: up to the full `wrappedToken` balance held by the router.","recommendation":"Require atomic initialization (pass init calldata to the proxy constructor) and/or add deployment-time safeguards (e.g., restrict `initialize` to a deployer-only address or call `_MailboxClient_initialize` in the constructor for non-proxy deployments). Disable initializers on the implementation if using proxies.","evidence":"`initialize` is public with no access control and calls `_MailboxClient_initialize`, which transfers ownership to the supplied `_owner`. Once owner, `approveTokenForBridge` can grant unlimited allowance to any address, enabling a direct `transferFrom` drain.","locations":["contracts/contracts/token/HypERC20Collateral.sol:53","contracts/contracts/client/MailboxClient.sol:109","contracts/contracts/token/libs/MovableCollateralRouter.sol:91"]}]}
[codex:1475407] tokens used
[codex:1475407] 50,412
[codex:1475407] {"no_findings":false,"summary":"One exploitable initialization takeover enables draining all collateral if the contract is deployed without being initialized atomically.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initialize allows ownership takeover and collateral drain","exploit_scenario":"1) Contract is deployed but `initialize` is not called atomically (e.g., proxy deployed without init data or delayed setup). 2) Attacker calls `initialize(_hook, _ism, attacker)` to become owner. 3) As owner, attacker calls `approveTokenForBridge(wrappedToken, attackerEOA)` to grant themselves unlimited allowance. 4) Attacker calls `wrappedToken.transferFrom(address(HypERC20Collateral), attacker, balance)` to drain collateral. Profit: up to the full `wrappedToken` balance held by the router.","recommendation":"Require atomic initialization (pass init calldata to the proxy constructor) and/or add deployment-time safeguards (e.g., restrict `initialize` to a deployer-only address or call `_MailboxClient_initialize` in the constructor for non-proxy deployments). Disable initializers on the implementation if using proxies.","evidence":"`initialize` is public with no access control and calls `_MailboxClient_initialize`, which transfers ownership to the supplied `_owner`. Once owner, `approveTokenForBridge` can grant unlimited allowance to any address, enabling a direct `transferFrom` drain.","locations":["contracts/contracts/token/HypERC20Collateral.sol:53","contracts/contracts/client/MailboxClient.sol:109","contracts/contracts/token/libs/MovableCollateralRouter.sol:91"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-01T15:13:22.298706+00:00",
        "returncode": 0
    },
    "summary": "One exploitable initialization takeover enables draining all collateral if the contract is deployed without being initialized atomically.",
    "raw_final": {
        "summary": "One exploitable initialization takeover enables draining all collateral if the contract is deployed without being initialized atomically.",
        "findings": [
            {
                "title": "Unprotected initialize allows ownership takeover and collateral drain",
                "category": "upgradeability",
                "evidence": "`initialize` is public with no access control and calls `_MailboxClient_initialize`, which transfers ownership to the supplied `_owner`. Once owner, `approveTokenForBridge` can grant unlimited allowance to any address, enabling a direct `transferFrom` drain.",
                "severity": "critical",
                "locations": [
                    "contracts/contracts/token/HypERC20Collateral.sol:53",
                    "contracts/contracts/client/MailboxClient.sol:109",
                    "contracts/contracts/token/libs/MovableCollateralRouter.sol:91"
                ],
                "recommendation": "Require atomic initialization (pass init calldata to the proxy constructor) and/or add deployment-time safeguards (e.g., restrict `initialize` to a deployer-only address or call `_MailboxClient_initialize` in the constructor for non-proxy deployments). Disable initializers on the implementation if using proxies.",
                "exploit_scenario": "1) Contract is deployed but `initialize` is not called atomically (e.g., proxy deployed without init data or delayed setup). 2) Attacker calls `initialize(_hook, _ism, attacker)` to become owner. 3) As owner, attacker calls `approveTokenForBridge(wrappedToken, attackerEOA)` to grant themselves unlimited allowance. 4) Attacker calls `wrappedToken.transferFrom(address(HypERC20Collateral), attacker, balance)` to drain collateral. Profit: up to the full `wrappedToken` balance held by the router."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
4
Total opcodes
6754
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x02a0
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x81b4e8b4
00000019: GT
0000001a: PUSH2 0x016e
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xc69c8ce2
00000024: GT
00000025: PUSH2 0x00cb
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xf2ed8c53
0000002f: GT
00000030: PUSH2 0x007f
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xf51e181a
0000003a: GT
0000003b: PUSH2 0x0064
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf51e181a
00000045: EQ
00000046: PUSH2 0x07f9
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xfa57f157
00000050: EQ
00000051: PUSH2 0x082d
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfbaca44c
0000005b: EQ
0000005c: PUSH2 0x084d
0000005f: JUMPI
00000060: PUSH1 0x00
00000062: DUP1
00000063: REVERT
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xf2ed8c53
0000006b: EQ
0000006c: PUSH2 0x07b9
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xf2fde38b
00000076: EQ
00000077: PUSH2 0x07d9
0000007a: JUMPI
0000007b: PUSH1 0x00
0000007d: DUP1
0000007e: REVERT
0000007f: JUMPDEST
00000080: DUP1
00000081: PUSH4 0xde523cf3
00000086: GT
00000087: PUSH2 0x00b0
0000008a: JUMPI
0000008b: DUP1
0000008c: PUSH4 0xde523cf3
00000091: EQ
00000092: PUSH2 0x074e
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0xe9198bf9
0000009c: EQ
0000009d: PUSH2 0x0779
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xefae508a
000000a7: EQ
000000a8: PUSH2 0x0799
000000ab: JUMPI
000000ac: PUSH1 0x00
000000ae: DUP1
000000af: REVERT
000000b0: JUMPDEST
000000b1: DUP1
000000b2: PUSH4 0xc69c8ce2
000000b7: EQ
000000b8: PUSH2 0x0705
000000bb: JUMPI
000000bc: DUP1
000000bd: PUSH4 0xd5438eae
000000c2: EQ
000000c3: PUSH2 0x071a
000000c6: JUMPI
000000c7: PUSH1 0x00
000000c9: DUP1
000000ca: REVERT
000000cb: JUMPDEST
000000cc: DUP1
000000cd: PUSH4 0x996c6cc3
000000d2: GT
000000d3: PUSH2 0x0122
000000d6: JUMPI
000000d7: DUP1
000000d8: PUSH4 0xb49c53a7
000000dd: GT
000000de: PUSH2 0x0107
000000e1: JUMPI
000000e2: DUP1
000000e3: PUSH4 0xb49c53a7
000000e8: EQ
000000e9: PUSH2 0x06a5
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0xc0c53b8b
000000f3: EQ
000000f4: PUSH2 0x06c5
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0xc3827115
000000fe: EQ
000000ff: PUSH2 0x06e5
00000102: JUMPI
00000103: PUSH1 0x00
00000105: DUP1
00000106: REVERT
00000107: JUMPDEST
00000108: DUP1
00000109: PUSH4 0x996c6cc3
0000010e: EQ
0000010f: PUSH2 0x0651
00000112: JUMPI
00000113: DUP1
00000114: PUSH4 0xb1bd6436
00000119: EQ
0000011a: PUSH2 0x0685
0000011d: JUMPI
0000011e: PUSH1 0x00
00000120: DUP1
00000121: REVERT
00000122: JUMPDEST
00000123: DUP1
00000124: PUSH4 0x8d3638f4
00000129: GT
0000012a: PUSH2 0x0153
0000012d: JUMPI
0000012e: DUP1
0000012f: PUSH4 0x8d3638f4
00000134: EQ
00000135: PUSH2 0x0587
00000138: JUMPI
00000139: DUP1
0000013a: PUSH4 0x8da5cb5b
0000013f: EQ
00000140: PUSH2 0x05d0
00000143: JUMPI
00000144: DUP1
00000145: PUSH4 0x93c44847
0000014a: EQ
0000014b: PUSH2 0x05fb
0000014e: JUMPI
0000014f: PUSH1 0x00
00000151: DUP1
00000152: REVERT
00000153: JUMPDEST
00000154: DUP1
00000155: PUSH4 0x81b4e8b4
0000015a: EQ
0000015b: PUSH2 0x0547
0000015e: JUMPI
0000015f: DUP1
00000160: PUSH4 0x8bd90b82
00000165: EQ
00000166: PUSH2 0x055a
00000169: JUMPI
0000016a: PUSH1 0x00
0000016c: DUP1
0000016d: REVERT
0000016e: JUMPDEST
0000016f: DUP1
00000170: PUSH4 0x4e38a81d
00000175: GT
00000176: PUSH2 0x021c
00000179: JUMPI
0000017a: DUP1
0000017b: PUSH4 0x715018a6
00000180: GT
00000181: PUSH2 0x01d0
00000184: JUMPI
00000185: DUP1
00000186: PUSH4 0x775313a1
0000018b: GT
0000018c: PUSH2 0x01b5
0000018f: JUMPI
00000190: DUP1
00000191: PUSH4 0x775313a1
00000196: EQ
00000197: PUSH2 0x049b
0000019a: JUMPI
0000019b: DUP1
0000019c: PUSH4 0x77e2dc7a
000001a1: EQ
000001a2: PUSH2 0x04c8
000001a5: JUMPI
000001a6: DUP1
000001a7: PUSH4 0x7f5a7c7b
000001ac: EQ
000001ad: PUSH2 0x04f5
000001b0: JUMPI
000001b1: PUSH1 0x00
000001b3: DUP1
000001b4: REVERT
000001b5: JUMPDEST
000001b6: DUP1
000001b7: PUSH4 0x715018a6
000001bc: EQ
000001bd: PUSH2 0x0466
000001c0: JUMPI
000001c1: DUP1
000001c2: PUSH4 0x71a15b38
000001c7: EQ
000001c8: PUSH2 0x047b
000001cb: JUMPI
000001cc: PUSH1 0x00
000001ce: DUP1
000001cf: REVERT
000001d0: JUMPDEST
000001d1: DUP1
000001d2: PUSH4 0x56d5d475
000001d7: GT
000001d8: PUSH2 0x0201
000001db: JUMPI
000001dc: DUP1
000001dd: PUSH4 0x56d5d475
000001e2: EQ
000001e3: PUSH2 0x0420
000001e6: JUMPI
000001e7: DUP1
000001e8: PUSH4 0x6a99c333
000001ed: EQ
000001ee: PUSH2 0x0433
000001f1: JUMPI
000001f2: DUP1
000001f3: PUSH4 0x70a08231
000001f8: EQ
000001f9: PUSH2 0x0446
000001fc: JUMPI
000001fd: PUSH1 0x00
000001ff: DUP1
00000200: REVERT
00000201: JUMPDEST
00000202: DUP1
00000203: PUSH4 0x4e38a81d
00000208: EQ
00000209: PUSH2 0x03ed
0000020c: JUMPI
0000020d: DUP1
0000020e: PUSH4 0x51debffc
00000213: EQ
00000214: PUSH2 0x040d
00000217: JUMPI
00000218: PUSH1 0x00
0000021a: DUP1
0000021b: REVERT
0000021c: JUMPDEST
0000021d: DUP1
0000021e: PUSH4 0x2ead72f6
00000223: GT
00000224: PUSH2 0x0273
00000227: JUMPI
00000228: DUP1
00000229: PUSH4 0x43bc4b9a
0000022e: GT
0000022f: PUSH2 0x0258
00000232: JUMPI
00000233: DUP1
00000234: PUSH4 0x43bc4b9a
00000239: EQ
0000023a: PUSH2 0x038b
0000023d: JUMPI
0000023e: DUP1
0000023f: PUSH4 0x440df4f4
00000244: EQ
00000245: PUSH2 0x03ab
00000248: JUMPI
00000249: DUP1
0000024a: PUSH4 0x49d462ef
0000024f: EQ
00000250: PUSH2 0x03cd
00000253: JUMPI
00000254: PUSH1 0x00
00000256: DUP1
00000257: REVERT
00000258: JUMPDEST
00000259: DUP1
0000025a: PUSH4 0x2ead72f6
0000025f: EQ
00000260: PUSH2 0x033d
00000263: JUMPI
00000264: DUP1
00000265: PUSH4 0x3dfd3873
0000026a: EQ
0000026b: PUSH2 0x036b
0000026e: JUMPI
0000026f: PUSH1 0x00
00000271: DUP1
00000272: REVERT
00000273: JUMPDEST
00000274: DUP1
00000275: PUSH4 0x0c979919
0000027a: EQ
0000027b: PUSH2 0x02a5
0000027e: JUMPI
0000027f: DUP1
00000280: PUSH4 0x0e72cc06
00000285: EQ
00000286: PUSH2 0x02c7
00000289: JUMPI
0000028a: DUP1
0000028b: PUSH4 0x1ba83149
00000290: EQ
00000291: PUSH2 0x02e7
00000294: JUMPI
00000295: DUP1
00000296: PUSH4 0x2c2d8089
0000029b: EQ
0000029c: PUSH2 0x031d
0000029f: JUMPI
000002a0: JUMPDEST
000002a1: PUSH1 0x00
000002a3: DUP1
000002a4: REVERT
000002a5: JUMPDEST
000002a6: CALLVALUE
000002a7: DUP1
000002a8: ISZERO
000002a9: PUSH2 0x02b1
000002ac: JUMPI
000002ad: PUSH1 0x00
000002af: DUP1
000002b0: REVERT
000002b1: JUMPDEST
000002b2: POP
000002b3: PUSH2 0x02c5
000002b6: PUSH2 0x02c0
000002b9: CALLDATASIZE
000002ba: PUSH1 0x04
000002bc: PUSH2 0x2d9a
000002bf: JUMP
000002c0: JUMPDEST
000002c1: PUSH2 0x086d
000002c4: JUMP
000002c5: JUMPDEST
000002c6: STOP
000002c7: JUMPDEST
000002c8: CALLVALUE
000002c9: DUP1
000002ca: ISZERO
000002cb: PUSH2 0x02d3
000002ce: JUMPI
000002cf: PUSH1 0x00
000002d1: DUP1
000002d2: REVERT
000002d3: JUMPDEST
000002d4: POP
000002d5: PUSH2 0x02c5
000002d8: PUSH2 0x02e2
000002db: CALLDATASIZE
000002dc: PUSH1 0x04
000002de: PUSH2 0x2d9a
000002e1: JUMP
000002e2: JUMPDEST
000002e3: PUSH2 0x0884
000002e6: JUMP
000002e7: JUMPDEST
000002e8: CALLVALUE
000002e9: DUP1
000002ea: ISZERO
000002eb: PUSH2 0x02f3
000002ee: JUMPI
000002ef: PUSH1 0x00
000002f1: DUP1
000002f2: REVERT
000002f3: JUMPDEST
000002f4: POP
000002f5: PUSH2 0x0307
000002f8: PUSH2 0x0302
000002fb: CALLDATASIZE
000002fc: PUSH1 0x04
000002fe: PUSH2 0x2dd0
00000301: JUMP
00000302: JUMPDEST
00000303: PUSH2 0x09d2
00000306: JUMP
00000307: JUMPDEST
00000308: PUSH1 0x40
0000030a: MLOAD
0000030b: PUSH2 0x0314
0000030e: SWAP2
0000030f: SWAP1
00000310: PUSH2 0x2deb
00000313: JUMP
00000314: JUMPDEST
00000315: PUSH1 0x40
00000317: MLOAD
00000318: DUP1
00000319: SWAP2
0000031a: SUB
0000031b: SWAP1
0000031c: RETURN
0000031d: JUMPDEST
0000031e: CALLVALUE
0000031f: DUP1
00000320: ISZERO
00000321: PUSH2 0x0329
00000324: JUMPI
00000325: PUSH1 0x00
00000327: DUP1
00000328: REVERT
00000329: JUMPDEST
0000032a: POP
0000032b: PUSH2 0x02c5
0000032e: PUSH2 0x0338
00000331: CALLDATASIZE
00000332: PUSH1 0x04
00000334: PUSH2 0x2e45
00000337: JUMP
00000338: JUMPDEST
00000339: PUSH2 0x09f9
0000033c: JUMP
0000033d: JUMPDEST
0000033e: CALLVALUE
0000033f: DUP1
00000340: ISZERO
00000341: PUSH2 0x0349
00000344: JUMPI
00000345: PUSH1 0x00
00000347: DUP1
00000348: REVERT
00000349: JUMPDEST
0000034a: POP
0000034b: PUSH2 0x035d
0000034e: PUSH2 0x0358
00000351: CALLDATASIZE
00000352: PUSH1 0x04
00000354: PUSH2 0x2dd0
00000357: JUMP
00000358: JUMPDEST
00000359: PUSH2 0x0a24
0000035c: JUMP
0000035d: JUMPDEST
0000035e: PUSH1 0x40
00000360: MLOAD
00000361: SWAP1
00000362: DUP2
00000363: MSTORE
00000364: PUSH1 0x20
00000366: ADD
00000367: PUSH2 0x0314
0000036a: JUMP
0000036b: JUMPDEST
0000036c: CALLVALUE
0000036d: DUP1
0000036e: ISZERO
0000036f: PUSH2 0x0377
00000372: JUMPI
00000373: PUSH1 0x00
00000375: DUP1
00000376: REVERT
00000377: JUMPDEST
00000378: POP
00000379: PUSH2 0x02c5
0000037c: PUSH2 0x0386
0000037f: CALLDATASIZE
00000380: PUSH1 0x04
00000382: PUSH2 0x2d9a
00000385: JUMP
00000386: JUMPDEST
00000387: PUSH2 0x0a43
0000038a: JUMP
0000038b: JUMPDEST
0000038c: CALLVALUE
0000038d: DUP1
0000038e: ISZERO
0000038f: PUSH2 0x0397
00000392: JUMPI
00000393: PUSH1 0x00
00000395: DUP1
00000396: REVERT
00000397: JUMPDEST
00000398: POP
00000399: PUSH2 0x02c5
0000039c: PUSH2 0x03a6
0000039f: CALLDATASIZE
000003a0: PUSH1 0x04
000003a2: PUSH2 0x2d9a
000003a5: JUMP
000003a6: JUMPDEST
000003a7: PUSH2 0x0b84
000003aa: JUMP
000003ab: JUMPDEST
000003ac: CALLVALUE
000003ad: DUP1
000003ae: ISZERO
000003af: PUSH2 0x03b7
000003b2: JUMPI
000003b3: PUSH1 0x00
000003b5: DUP1
000003b6: REVERT
000003b7: JUMPDEST
000003b8: POP
000003b9: PUSH2 0x03c0
000003bc: PUSH2 0x0b97
000003bf: JUMP
000003c0: JUMPDEST
000003c1: PUSH1 0x40
000003c3: MLOAD
000003c4: PUSH2 0x0314
000003c7: SWAP2
000003c8: SWAP1
000003c9: PUSH2 0x2e6f
000003cc: JUMP
000003cd: JUMPDEST
000003ce: CALLVALUE
000003cf: DUP1
000003d0: ISZERO
000003d1: PUSH2 0x03d9
000003d4: JUMPI
000003d5: PUSH1 0x00
000003d7: DUP1
000003d8: REVERT
000003d9: JUMPDEST
000003da: POP
000003db: PUSH2 0x02c5
000003de: PUSH2 0x03e8
000003e1: CALLDATASIZE
000003e2: PUSH1 0x04
000003e4: PUSH2 0x2e45
000003e7: JUMP
000003e8: JUMPDEST
000003e9: PUSH2 0x0ba8
000003ec: JUMP
000003ed: JUMPDEST
000003ee: CALLVALUE
000003ef: DUP1
000003f0: ISZERO
000003f1: PUSH2 0x03f9
000003f4: JUMPI
000003f5: PUSH1 0x00
000003f7: DUP1
000003f8: REVERT
000003f9: JUMPDEST
000003fa: POP
000003fb: PUSH2 0x02c5
000003fe: PUSH2 0x0408
00000401: CALLDATASIZE
00000402: PUSH1 0x04
00000404: PUSH2 0x2ead
00000407: JUMP
00000408: JUMPDEST
00000409: PUSH2 0x0bba
0000040c: JUMP
0000040d: JUMPDEST
0000040e: PUSH2 0x035d
00000411: PUSH2 0x041b
00000414: CALLDATASIZE
00000415: PUSH1 0x04
00000417: PUSH2 0x2f26
0000041a: JUMP
0000041b: JUMPDEST
0000041c: PUSH2 0x0be9
0000041f: JUMP
00000420: JUMPDEST
00000421: PUSH2 0x02c5
00000424: PUSH2 0x042e
00000427: CALLDATASIZE
00000428: PUSH1 0x04
0000042a: PUSH2 0x2fa0
0000042d: JUMP
0000042e: JUMPDEST
0000042f: PUSH2 0x0c3b
00000432: JUMP
00000433: JUMPDEST
00000434: PUSH2 0x02c5
00000437: PUSH2 0x0441
0000043a: CALLDATASIZE
0000043b: PUSH1 0x04
0000043d: PUSH2 0x2ffa
00000440: JUMP
00000441: JUMPDEST
00000442: PUSH2 0x0daf
00000445: JUMP
00000446: JUMPDEST
00000447: CALLVALUE
00000448: DUP1
00000449: ISZERO
0000044a: PUSH2 0x0452
0000044d: JUMPI
0000044e: PUSH1 0x00
00000450: DUP1
00000451: REVERT
00000452: JUMPDEST
00000453: POP
00000454: PUSH2 0x035d
00000457: PUSH2 0x0461
0000045a: CALLDATASIZE
0000045b: PUSH1 0x04
0000045d: PUSH2 0x2d9a
00000460: JUMP
00000461: JUMPDEST
00000462: PUSH2 0x0f48
00000465: JUMP
00000466: JUMPDEST
00000467: CALLVALUE
00000468: DUP1
00000469: ISZERO
0000046a: PUSH2 0x0472
0000046d: JUMPI
0000046e: PUSH1 0x00
00000470: DUP1
00000471: REVERT
00000472: JUMPDEST
00000473: POP
00000474: PUSH2 0x02c5
00000477: PUSH2 0x0ffd
0000047a: JUMP
0000047b: JUMPDEST
0000047c: CALLVALUE
0000047d: DUP1
0000047e: ISZERO
0000047f: PUSH2 0x0487
00000482: JUMPI
00000483: PUSH1 0x00
00000485: DUP1
00000486: REVERT
00000487: JUMPDEST
00000488: POP
00000489: PUSH2 0x02c5
0000048c: PUSH2 0x0496
0000048f: CALLDATASIZE
00000490: PUSH1 0x04
00000492: PUSH2 0x307f
00000495: JUMP
00000496: JUMPDEST
00000497: PUSH2 0x1011
0000049a: JUMP
0000049b: JUMPDEST
0000049c: CALLVALUE
0000049d: DUP1
0000049e: ISZERO
0000049f: PUSH2 0x04a7
000004a2: JUMPI
000004a3: PUSH1 0x00
000004a5: DUP1
000004a6: REVERT
000004a7: JUMPDEST
000004a8: POP
000004a9: PUSH2 0x035d
000004ac: PUSH2 0x04b6
000004af: CALLDATASIZE
000004b0: PUSH1 0x04
000004b2: PUSH2 0x2dd0
000004b5: JUMP
000004b6: JUMPDEST
000004b7: PUSH1 0xca
000004b9: PUSH1 0x20
000004bb: MSTORE
000004bc: PUSH1 0x00
000004be: SWAP1
000004bf: DUP2
000004c0: MSTORE
000004c1: PUSH1 0x40
000004c3: SWAP1
000004c4: KECCAK256
000004c5: SLOAD
000004c6: DUP2
000004c7: JUMP
000004c8: JUMPDEST
000004c9: CALLVALUE
000004ca: DUP1
000004cb: ISZERO
000004cc: PUSH2 0x04d4
000004cf: JUMPI
000004d0: PUSH1 0x00
000004d2: DUP1
000004d3: REVERT
000004d4: JUMPDEST
000004d5: POP
000004d6: PUSH2 0x035d
000004d9: PUSH2 0x04e3
000004dc: CALLDATASIZE
000004dd: PUSH1 0x04
000004df: PUSH2 0x2dd0
000004e2: JUMP
000004e3: JUMPDEST
000004e4: PUSH1 0xcb
000004e6: PUSH1 0x20
000004e8: MSTORE
000004e9: PUSH1 0x00
000004eb: SWAP1
000004ec: DUP2
000004ed: MSTORE
000004ee: PUSH1 0x40
000004f0: SWAP1
000004f1: KECCAK256
000004f2: SLOAD
000004f3: DUP2
000004f4: JUMP
000004f5: JUMPDEST
000004f6: CALLVALUE
000004f7: DUP1
000004f8: ISZERO
000004f9: PUSH2 0x0501
000004fc: JUMPI
000004fd: PUSH1 0x00
000004ff: DUP1
00000500: REVERT
00000501: JUMPDEST
00000502: POP
00000503: PUSH1 0x65
00000505: SLOAD
00000506: PUSH2 0x0522
00000509: SWAP1
0000050a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000051f: AND
00000520: DUP2
00000521: JUMP
00000522: JUMPDEST
00000523: PUSH1 0x40
00000525: MLOAD
00000526: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000053b: SWAP1
0000053c: SWAP2
0000053d: AND
0000053e: DUP2
0000053f: MSTORE
00000540: PUSH1 0x20
00000542: ADD
00000543: PUSH2 0x0314
00000546: JUMP
00000547: JUMPDEST
00000548: PUSH2 0x035d
0000054b: PUSH2 0x0555
0000054e: CALLDATASIZE
0000054f: PUSH1 0x04
00000551: PUSH2 0x30c1
00000554: JUMP
00000555: JUMPDEST
00000556: PUSH2 0x106c
00000559: JUMP
0000055a: JUMPDEST
0000055b: CALLVALUE
0000055c: DUP1
0000055d: ISZERO
0000055e: PUSH2 0x0566
00000561: JUMPI
00000562: PUSH1 0x00
00000564: DUP1
00000565: REVERT
00000566: JUMPDEST
00000567: POP
00000568: PUSH2 0x057a
0000056b: PUSH2 0x0575
0000056e: CALLDATASIZE
0000056f: PUSH1 0x04
00000571: PUSH2 0x30c1
00000574: JUMP
00000575: JUMPDEST
00000576: PUSH2 0x107a
00000579: JUMP
0000057a: JUMPDEST
0000057b: PUSH1 0x40
0000057d: MLOAD
0000057e: PUSH2 0x0314
00000581: SWAP2
00000582: SWAP1
00000583: PUSH2 0x30f4
00000586: JUMP
00000587: JUMPDEST
00000588: CALLVALUE
00000589: DUP1
0000058a: ISZERO
0000058b: PUSH2 0x0593
0000058e: JUMPI
0000058f: PUSH1 0x00
00000591: DUP1
00000592: REVERT
00000593: JUMPDEST
00000594: POP
00000595: PUSH2 0x05bb
00000598: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
000005b9: DUP2
000005ba: JUMP
000005bb: JUMPDEST
000005bc: PUSH1 0x40
000005be: MLOAD
000005bf: PUSH4 0xffffffff
000005c4: SWAP1
000005c5: SWAP2
000005c6: AND
000005c7: DUP2
000005c8: MSTORE
000005c9: PUSH1 0x20
000005cb: ADD
000005cc: PUSH2 0x0314
000005cf: JUMP
000005d0: JUMPDEST
000005d1: CALLVALUE
000005d2: DUP1
000005d3: ISZERO
000005d4: PUSH2 0x05dc
000005d7: JUMPI
000005d8: PUSH1 0x00
000005da: DUP1
000005db: REVERT
000005dc: JUMPDEST
000005dd: POP
000005de: PUSH1 0x33
000005e0: SLOAD
000005e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005f6: AND
000005f7: PUSH2 0x0522
000005fa: JUMP
000005fb: JUMPDEST
000005fc: CALLVALUE
000005fd: DUP1
000005fe: ISZERO
000005ff: PUSH2 0x0607
00000602: JUMPI
00000603: PUSH1 0x00
00000605: DUP1
00000606: REVERT
00000607: JUMPDEST
00000608: POP
00000609: PUSH2 0x0644
0000060c: PUSH1 0x40
0000060e: MLOAD
0000060f: DUP1
00000610: PUSH1 0x40
00000612: ADD
00000613: PUSH1 0x40
00000615: MSTORE
00000616: DUP1
00000617: PUSH1 0x05
00000619: DUP2
0000061a: MSTORE
0000061b: PUSH1 0x20
0000061d: ADD
0000061e: PUSH32 0x392e302e39000000000000000000000000000000000000000000000000000000
0000063f: DUP2
00000640: MSTORE
00000641: POP
00000642: DUP2
00000643: JUMP
00000644: JUMPDEST
00000645: PUSH1 0x40
00000647: MLOAD
00000648: PUSH2 0x0314
0000064b: SWAP2
0000064c: SWAP1
0000064d: PUSH2 0x31c7
00000650: JUMP
00000651: JUMPDEST
00000652: CALLVALUE
00000653: DUP1
00000654: ISZERO
00000655: PUSH2 0x065d
00000658: JUMPI
00000659: PUSH1 0x00
0000065b: DUP1
0000065c: REVERT
0000065d: JUMPDEST
0000065e: POP
0000065f: PUSH2 0x0522
00000662: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00000683: DUP2
00000684: JUMP
00000685: JUMPDEST
00000686: CALLVALUE
00000687: DUP1
00000688: ISZERO
00000689: PUSH2 0x0691
0000068c: JUMPI
0000068d: PUSH1 0x00
0000068f: DUP1
00000690: REVERT
00000691: JUMPDEST
00000692: POP
00000693: PUSH2 0x02c5
00000696: PUSH2 0x06a0
00000699: CALLDATASIZE
0000069a: PUSH1 0x04
0000069c: PUSH2 0x31da
0000069f: JUMP
000006a0: JUMPDEST
000006a1: PUSH2 0x117d
000006a4: JUMP
000006a5: JUMPDEST
000006a6: CALLVALUE
000006a7: DUP1
000006a8: ISZERO
000006a9: PUSH2 0x06b1
000006ac: JUMPI
000006ad: PUSH1 0x00
000006af: DUP1
000006b0: REVERT
000006b1: JUMPDEST
000006b2: POP
000006b3: PUSH2 0x02c5
000006b6: PUSH2 0x06c0
000006b9: CALLDATASIZE
000006ba: PUSH1 0x04
000006bc: PUSH2 0x2e45
000006bf: JUMP
000006c0: JUMPDEST
000006c1: PUSH2 0x11ee
000006c4: JUMP
000006c5: JUMPDEST
000006c6: CALLVALUE
000006c7: DUP1
000006c8: ISZERO
000006c9: PUSH2 0x06d1
000006cc: JUMPI
000006cd: PUSH1 0x00
000006cf: DUP1
000006d0: REVERT
000006d1: JUMPDEST
000006d2: POP
000006d3: PUSH2 0x02c5
000006d6: PUSH2 0x06e0
000006d9: CALLDATASIZE
000006da: PUSH1 0x04
000006dc: PUSH2 0x324f
000006df: JUMP
000006e0: JUMPDEST
000006e1: PUSH2 0x1200
000006e4: JUMP
000006e5: JUMPDEST
000006e6: CALLVALUE
000006e7: DUP1
000006e8: ISZERO
000006e9: PUSH2 0x06f1
000006ec: JUMPI
000006ed: PUSH1 0x00
000006ef: DUP1
000006f0: REVERT
000006f1: JUMPDEST
000006f2: POP
000006f3: PUSH2 0x02c5
000006f6: PUSH2 0x0700
000006f9: CALLDATASIZE
000006fa: PUSH1 0x04
000006fc: PUSH2 0x2dd0
000006ff: JUMP
00000700: JUMPDEST
00000701: PUSH2 0x1397
00000704: JUMP
00000705: JUMPDEST
00000706: CALLVALUE
00000707: DUP1
00000708: ISZERO
00000709: PUSH2 0x0711
0000070c: JUMPI
0000070d: PUSH1 0x00
0000070f: DUP1
00000710: REVERT
00000711: JUMPDEST
00000712: POP
00000713: PUSH2 0x0307
00000716: PUSH2 0x13b6
00000719: JUMP
0000071a: JUMPDEST
0000071b: CALLVALUE
0000071c: DUP1
0000071d: ISZERO
0000071e: PUSH2 0x0726
00000721: JUMPI
00000722: PUSH1 0x00
00000724: DUP1
00000725: REVERT
00000726: JUMPDEST
00000727: POP
00000728: PUSH2 0x0522
0000072b: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239
0000074c: DUP2
0000074d: JUMP
0000074e: JUMPDEST
0000074f: CALLVALUE
00000750: DUP1
00000751: ISZERO
00000752: PUSH2 0x075a
00000755: JUMPI
00000756: PUSH1 0x00
00000758: DUP1
00000759: REVERT
0000075a: JUMPDEST
0000075b: POP
0000075c: PUSH1 0x66
0000075e: SLOAD
0000075f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000774: AND
00000775: PUSH2 0x0522
00000778: JUMP
00000779: JUMPDEST
0000077a: CALLVALUE
0000077b: DUP1
0000077c: ISZERO
0000077d: PUSH2 0x0785
00000780: JUMPI
00000781: PUSH1 0x00
00000783: DUP1
00000784: REVERT
00000785: JUMPDEST
00000786: POP
00000787: PUSH2 0x02c5
0000078a: PUSH2 0x0794
0000078d: CALLDATASIZE
0000078e: PUSH1 0x04
00000790: PUSH2 0x328f
00000793: JUMP
00000794: JUMPDEST
00000795: PUSH2 0x13c2
00000798: JUMP
00000799: JUMPDEST
0000079a: CALLVALUE
0000079b: DUP1
0000079c: ISZERO
0000079d: PUSH2 0x07a5
000007a0: JUMPI
000007a1: PUSH1 0x00
000007a3: DUP1
000007a4: REVERT
000007a5: JUMPDEST
000007a6: POP
000007a7: PUSH2 0x02c5
000007aa: PUSH2 0x07b4
000007ad: CALLDATASIZE
000007ae: PUSH1 0x04
000007b0: PUSH2 0x2dd0
000007b3: JUMP
000007b4: JUMPDEST
000007b5: PUSH2 0x14a1
000007b8: JUMP
000007b9: JUMPDEST
000007ba: CALLVALUE
000007bb: DUP1
000007bc: ISZERO
000007bd: PUSH2 0x07c5
000007c0: JUMPI
000007c1: PUSH1 0x00
000007c3: DUP1
000007c4: REVERT
000007c5: JUMPDEST
000007c6: POP
000007c7: PUSH2 0x035d
000007ca: PUSH2 0x07d4
000007cd: CALLDATASIZE
000007ce: PUSH1 0x04
000007d0: PUSH2 0x2dd0
000007d3: JUMP
000007d4: JUMPDEST
000007d5: PUSH2 0x14b5
000007d8: JUMP
000007d9: JUMPDEST
000007da: CALLVALUE
000007db: DUP1
000007dc: ISZERO
000007dd: PUSH2 0x07e5
000007e0: JUMPI
000007e1: PUSH1 0x00
000007e3: DUP1
000007e4: REVERT
000007e5: JUMPDEST
000007e6: POP
000007e7: PUSH2 0x02c5
000007ea: PUSH2 0x07f4
000007ed: CALLDATASIZE
000007ee: PUSH1 0x04
000007f0: PUSH2 0x2d9a
000007f3: JUMP
000007f4: JUMPDEST
000007f5: PUSH2 0x14e2
000007f8: JUMP
000007f9: JUMPDEST
000007fa: CALLVALUE
000007fb: DUP1
000007fc: ISZERO
000007fd: PUSH2 0x0805
00000800: JUMPI
00000801: PUSH1 0x00
00000803: DUP1
00000804: REVERT
00000805: JUMPDEST
00000806: POP
00000807: PUSH2 0x035d
0000080a: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
0000082b: DUP2
0000082c: JUMP
0000082d: JUMPDEST
0000082e: CALLVALUE
0000082f: DUP1
00000830: ISZERO
00000831: PUSH2 0x0839
00000834: JUMPI
00000835: PUSH1 0x00
00000837: DUP1
00000838: REVERT
00000839: JUMPDEST
0000083a: POP
0000083b: PUSH2 0x02c5
0000083e: PUSH2 0x0848
00000841: CALLDATASIZE
00000842: PUSH1 0x04
00000844: PUSH2 0x32ef
00000847: JUMP
00000848: JUMPDEST
00000849: PUSH2 0x1596
0000084c: JUMP
0000084d: JUMPDEST
0000084e: CALLVALUE
0000084f: DUP1
00000850: ISZERO
00000851: PUSH2 0x0859
00000854: JUMPI
00000855: PUSH1 0x00
00000857: DUP1
00000858: REVERT
00000859: JUMPDEST
0000085a: POP
0000085b: PUSH2 0x02c5
0000085e: PUSH2 0x0868
00000861: CALLDATASIZE
00000862: PUSH1 0x04
00000864: PUSH2 0x2ead
00000867: JUMP
00000868: JUMPDEST
00000869: PUSH2 0x15df
0000086c: JUMP
0000086d: JUMPDEST
0000086e: PUSH2 0x0875
00000871: PUSH2 0x1613
00000874: JUMP
00000875: JUMPDEST
00000876: PUSH2 0x0880
00000879: PUSH1 0xcd
0000087b: DUP3
0000087c: PUSH2 0x1694
0000087f: JUMP
00000880: JUMPDEST
00000881: POP
00000882: POP
00000883: JUMP
00000884: JUMPDEST
00000885: DUP1
00000886: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000089b: DUP2
0000089c: AND
0000089d: EXTCODESIZE
0000089e: ISZERO
0000089f: ISZERO
000008a0: DUP1
000008a1: PUSH2 0x08be
000008a4: JUMPI
000008a5: POP
000008a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008bb: DUP2
000008bc: AND
000008bd: ISZERO
000008be: JUMPDEST
000008bf: PUSH2 0x094f
000008c2: JUMPI
000008c3: PUSH1 0x40
000008c5: MLOAD
000008c6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000008e7: DUP2
000008e8: MSTORE
000008e9: PUSH1 0x20
000008eb: PUSH1 0x04
000008ed: DUP3
000008ee: ADD
000008ef: MSTORE
000008f0: PUSH1 0x27
000008f2: PUSH1 0x24
000008f4: DUP3
000008f5: ADD
000008f6: MSTORE
000008f7: PUSH32 0x4d61696c626f78436c69656e743a20696e76616c696420636f6e747261637420
00000918: PUSH1 0x44
0000091a: DUP3
0000091b: ADD
0000091c: MSTORE
0000091d: PUSH32 0x73657474696e6700000000000000000000000000000000000000000000000000
0000093e: PUSH1 0x64
00000940: DUP3
00000941: ADD
00000942: MSTORE
00000943: PUSH1 0x84
00000945: ADD
00000946: JUMPDEST
00000947: PUSH1 0x40
00000949: MLOAD
0000094a: DUP1
0000094b: SWAP2
0000094c: SUB
0000094d: SWAP1
0000094e: REVERT
0000094f: JUMPDEST
00000950: PUSH2 0x0957
00000953: PUSH2 0x1613
00000956: JUMP
00000957: JUMPDEST
00000958: PUSH1 0x66
0000095a: DUP1
0000095b: SLOAD
0000095c: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
0000097d: AND
0000097e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000993: DUP5
00000994: AND
00000995: SWAP1
00000996: DUP2
00000997: OR
00000998: SWAP1
00000999: SWAP2
0000099a: SSTORE
0000099b: PUSH1 0x40
0000099d: MLOAD
0000099e: SWAP1
0000099f: DUP2
000009a0: MSTORE
000009a1: PUSH32 0xc47cbcc588c67679e52261c45cc315e56562f8d0ccaba16facb9093ff9498799
000009c2: SWAP1
000009c3: PUSH1 0x20
000009c5: ADD
000009c6: JUMPDEST
000009c7: PUSH1 0x40
000009c9: MLOAD
000009ca: DUP1
000009cb: SWAP2
000009cc: SUB
000009cd: SWAP1
000009ce: LOG1
000009cf: POP
000009d0: POP
000009d1: JUMP
000009d2: JUMPDEST
000009d3: PUSH4 0xffffffff
000009d8: DUP2
000009d9: AND
000009da: PUSH1 0x00
000009dc: SWAP1
000009dd: DUP2
000009de: MSTORE
000009df: PUSH1 0xcc
000009e1: PUSH1 0x20
000009e3: MSTORE
000009e4: PUSH1 0x40
000009e6: SWAP1
000009e7: KECCAK256
000009e8: PUSH1 0x60
000009ea: SWAP1
000009eb: PUSH2 0x09f3
000009ee: SWAP1
000009ef: PUSH2 0x16bd
000009f2: JUMP
000009f3: JUMPDEST
000009f4: SWAP3
000009f5: SWAP2
000009f6: POP
000009f7: POP
000009f8: JUMP
000009f9: JUMPDEST
000009fa: PUSH2 0x0a01
000009fd: PUSH2 0x1613
00000a00: JUMP
00000a01: JUMPDEST
00000a02: PUSH2 0x0a0a
00000a05: DUP3
00000a06: PUSH2 0x16ca
00000a09: JUMP
00000a0a: JUMPDEST
00000a0b: POP
00000a0c: PUSH4 0xffffffff
00000a11: SWAP1
00000a12: SWAP2
00000a13: AND
00000a14: PUSH1 0x00
00000a16: SWAP1
00000a17: DUP2
00000a18: MSTORE
00000a19: PUSH1 0xcb
00000a1b: PUSH1 0x20
00000a1d: MSTORE
00000a1e: PUSH1 0x40
00000a20: SWAP1
00000a21: KECCAK256
00000a22: SSTORE
00000a23: JUMP
00000a24: JUMPDEST
00000a25: PUSH1 0x00
00000a27: DUP1
00000a28: PUSH2 0x0a3b
00000a2b: PUSH1 0x97
00000a2d: PUSH4 0xffffffff
00000a32: DUP1
00000a33: DUP7
00000a34: AND
00000a35: SWAP1
00000a36: PUSH2 0x172f
00000a39: AND
00000a3a: JUMP
00000a3b: JUMPDEST
00000a3c: SWAP5
00000a3d: SWAP4
00000a3e: POP
00000a3f: POP
00000a40: POP
00000a41: POP
00000a42: JUMP
00000a43: JUMPDEST
00000a44: DUP1
00000a45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a5a: DUP2
00000a5b: AND
00000a5c: EXTCODESIZE
00000a5d: ISZERO
00000a5e: ISZERO
00000a5f: DUP1
00000a60: PUSH2 0x0a7d
00000a63: JUMPI
00000a64: POP
00000a65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a7a: DUP2
00000a7b: AND
00000a7c: ISZERO
00000a7d: JUMPDEST
00000a7e: PUSH2 0x0b09
00000a81: JUMPI
00000a82: PUSH1 0x40
00000a84: MLOAD
00000a85: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000aa6: DUP2
00000aa7: MSTORE
00000aa8: PUSH1 0x20
00000aaa: PUSH1 0x04
00000aac: DUP3
00000aad: ADD
00000aae: MSTORE
00000aaf: PUSH1 0x27
00000ab1: PUSH1 0x24
00000ab3: DUP3
00000ab4: ADD
00000ab5: MSTORE
00000ab6: PUSH32 0x4d61696c626f78436c69656e743a20696e76616c696420636f6e747261637420
00000ad7: PUSH1 0x44
00000ad9: DUP3
00000ada: ADD
00000adb: MSTORE
00000adc: PUSH32 0x73657474696e6700000000000000000000000000000000000000000000000000
00000afd: PUSH1 0x64
00000aff: DUP3
00000b00: ADD
00000b01: MSTORE
00000b02: PUSH1 0x84
00000b04: ADD
00000b05: PUSH2 0x0946
00000b08: JUMP
00000b09: JUMPDEST
00000b0a: PUSH2 0x0b11
00000b0d: PUSH2 0x1613
00000b10: JUMP
00000b11: JUMPDEST
00000b12: PUSH1 0x65
00000b14: DUP1
00000b15: SLOAD
00000b16: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000b37: AND
00000b38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b4d: DUP5
00000b4e: AND
00000b4f: SWAP1
00000b50: DUP2
00000b51: OR
00000b52: SWAP1
00000b53: SWAP2
00000b54: SSTORE
00000b55: PUSH1 0x40
00000b57: MLOAD
00000b58: SWAP1
00000b59: DUP2
00000b5a: MSTORE
00000b5b: PUSH32 0x4eab7b127c764308788622363ad3e9532de3dfba7845bd4f84c125a22544255a
00000b7c: SWAP1
00000b7d: PUSH1 0x20
00000b7f: ADD
00000b80: PUSH2 0x09c6
00000b83: JUMP
00000b84: JUMPDEST
00000b85: PUSH2 0x0b8c
00000b88: PUSH2 0x1613
00000b8b: JUMP
00000b8c: JUMPDEST
00000b8d: PUSH2 0x0880
00000b90: PUSH1 0xcd
00000b92: DUP3
00000b93: PUSH2 0x1748
00000b96: JUMP
00000b97: JUMPDEST
00000b98: PUSH1 0x60
00000b9a: PUSH2 0x0ba3
00000b9d: PUSH1 0x97
00000b9f: PUSH2 0x176a
00000ba2: JUMP
00000ba3: JUMPDEST
00000ba4: SWAP1
00000ba5: POP
00000ba6: SWAP1
00000ba7: JUMP
00000ba8: JUMPDEST
00000ba9: PUSH2 0x0bb0
00000bac: PUSH2 0x1613
00000baf: JUMP
00000bb0: JUMPDEST
00000bb1: PUSH2 0x0880
00000bb4: DUP3
00000bb5: DUP3
00000bb6: PUSH2 0x181b
00000bb9: JUMP
00000bba: JUMPDEST
00000bbb: PUSH2 0x0bc2
00000bbe: PUSH2 0x1613
00000bc1: JUMP
00000bc2: JUMPDEST
00000bc3: PUSH4 0xffffffff
00000bc8: DUP1
00000bc9: DUP4
00000bca: AND
00000bcb: PUSH1 0x00
00000bcd: SWAP1
00000bce: DUP2
00000bcf: MSTORE
00000bd0: PUSH1 0xcc
00000bd2: PUSH1 0x20
00000bd4: MSTORE
00000bd5: PUSH1 0x40
00000bd7: SWAP1
00000bd8: KECCAK256
00000bd9: PUSH2 0x0be4
00000bdc: SWAP2
00000bdd: DUP4
00000bde: SWAP1
00000bdf: PUSH2 0x1748
00000be2: AND
00000be3: JUMP
00000be4: JUMPDEST
00000be5: POP
00000be6: POP
00000be7: POP
00000be8: JUMP
00000be9: JUMPDEST
00000bea: PUSH1 0x00
00000bec: PUSH2 0x0c30
00000bef: DUP8
00000bf0: DUP8
00000bf1: DUP8
00000bf2: CALLVALUE
00000bf3: DUP9
00000bf4: DUP9
00000bf5: DUP1
00000bf6: DUP1
00000bf7: PUSH1 0x1f
00000bf9: ADD
00000bfa: PUSH1 0x20
00000bfc: DUP1
00000bfd: SWAP2
00000bfe: DIV
00000bff: MUL
00000c00: PUSH1 0x20
00000c02: ADD
00000c03: PUSH1 0x40
00000c05: MLOAD
00000c06: SWAP1
00000c07: DUP2
00000c08: ADD
00000c09: PUSH1 0x40
00000c0b: MSTORE
00000c0c: DUP1
00000c0d: SWAP4
00000c0e: SWAP3
00000c0f: SWAP2
00000c10: SWAP1
00000c11: DUP2
00000c12: DUP2
00000c13: MSTORE
00000c14: PUSH1 0x20
00000c16: ADD
00000c17: DUP4
00000c18: DUP4
00000c19: DUP1
00000c1a: DUP3
00000c1b: DUP5
00000c1c: CALLDATACOPY
00000c1d: PUSH1 0x00
00000c1f: SWAP3
00000c20: ADD
00000c21: SWAP2
00000c22: SWAP1
00000c23: SWAP2
00000c24: MSTORE
00000c25: POP
00000c26: DUP11
00000c27: SWAP3
00000c28: POP
00000c29: PUSH2 0x1869
00000c2c: SWAP2
00000c2d: POP
00000c2e: POP
00000c2f: JUMP
00000c30: JUMPDEST
00000c31: SWAP8
00000c32: SWAP7
00000c33: POP
00000c34: POP
00000c35: POP
00000c36: POP
00000c37: POP
00000c38: POP
00000c39: POP
00000c3a: JUMP
00000c3b: JUMPDEST
00000c3c: CALLER
00000c3d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c52: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239
00000c73: AND
00000c74: EQ
00000c75: PUSH2 0x0d00
00000c78: JUMPI
00000c79: PUSH1 0x40
00000c7b: MLOAD
00000c7c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000c9d: DUP2
00000c9e: MSTORE
00000c9f: PUSH1 0x20
00000ca1: PUSH1 0x04
00000ca3: DUP3
00000ca4: ADD
00000ca5: MSTORE
00000ca6: PUSH1 0x21
00000ca8: PUSH1 0x24
00000caa: DUP3
00000cab: ADD
00000cac: MSTORE
00000cad: PUSH32 0x4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f
00000cce: PUSH1 0x44
00000cd0: DUP3
00000cd1: ADD
00000cd2: MSTORE
00000cd3: PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000
00000cf4: PUSH1 0x64
00000cf6: DUP3
00000cf7: ADD
00000cf8: MSTORE
00000cf9: PUSH1 0x84
00000cfb: ADD
00000cfc: PUSH2 0x0946
00000cff: JUMP
00000d00: JUMPDEST
00000d01: PUSH1 0x00
00000d03: PUSH2 0x0d0b
00000d06: DUP6
00000d07: PUSH2 0x16ca
00000d0a: JUMP
00000d0b: JUMPDEST
00000d0c: SWAP1
00000d0d: POP
00000d0e: DUP4
00000d0f: DUP2
00000d10: EQ
00000d11: PUSH2 0x0d9c
00000d14: JUMPI
00000d15: PUSH1 0x40
00000d17: MLOAD
00000d18: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000d39: DUP2
00000d3a: MSTORE
00000d3b: PUSH1 0x20
00000d3d: PUSH1 0x04
00000d3f: DUP3
00000d40: ADD
00000d41: MSTORE
00000d42: PUSH1 0x25
00000d44: PUSH1 0x24
00000d46: DUP3
00000d47: ADD
00000d48: MSTORE
00000d49: PUSH32 0x456e726f6c6c656420726f7574657220646f6573206e6f74206d617463682073
00000d6a: PUSH1 0x44
00000d6c: DUP3
00000d6d: ADD
00000d6e: MSTORE
00000d6f: PUSH32 0x656e646572000000000000000000000000000000000000000000000000000000
00000d90: PUSH1 0x64
00000d92: DUP3
00000d93: ADD
00000d94: MSTORE
00000d95: PUSH1 0x84
00000d97: ADD
00000d98: PUSH2 0x0946
00000d9b: JUMP
00000d9c: JUMPDEST
00000d9d: PUSH2 0x0da8
00000da0: DUP6
00000da1: DUP6
00000da2: DUP6
00000da3: DUP6
00000da4: PUSH2 0x18f0
00000da7: JUMP
00000da8: JUMPDEST
00000da9: POP
00000daa: POP
00000dab: POP
00000dac: POP
00000dad: POP
00000dae: JUMP
00000daf: JUMPDEST
00000db0: PUSH2 0x0dba
00000db3: PUSH1 0xcd
00000db5: CALLER
00000db6: PUSH2 0x1972
00000db9: JUMP
00000dba: JUMPDEST
00000dbb: PUSH2 0x0e20
00000dbe: JUMPI
00000dbf: PUSH1 0x40
00000dc1: MLOAD
00000dc2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000de3: DUP2
00000de4: MSTORE
00000de5: PUSH1 0x20
00000de7: PUSH1 0x04
00000de9: DUP3
00000dea: ADD
00000deb: MSTORE
00000dec: PUSH1 0x14
00000dee: PUSH1 0x24
00000df0: DUP3
00000df1: ADD
00000df2: MSTORE
00000df3: PUSH32 0x4d43523a204f6e6c7920526562616c616e636572000000000000000000000000
00000e14: PUSH1 0x44
00000e16: DUP3
00000e17: ADD
00000e18: MSTORE
00000e19: PUSH1 0x64
00000e1b: ADD
00000e1c: PUSH2 0x0946
00000e1f: JUMP
00000e20: JUMPDEST
00000e21: PUSH4 0xffffffff
00000e26: DUP1
00000e27: DUP5
00000e28: AND
00000e29: PUSH1 0x00
00000e2b: SWAP1
00000e2c: DUP2
00000e2d: MSTORE
00000e2e: PUSH1 0xcc
00000e30: PUSH1 0x20
00000e32: MSTORE
00000e33: PUSH1 0x40
00000e35: SWAP1
00000e36: KECCAK256
00000e37: DUP5
00000e38: SWAP2
00000e39: DUP4
00000e3a: SWAP2
00000e3b: SWAP1
00000e3c: PUSH2 0x0e49
00000e3f: SWAP1
00000e40: DUP3
00000e41: SWAP1
00000e42: DUP5
00000e43: SWAP1
00000e44: PUSH2 0x1972
00000e47: AND
00000e48: JUMP
00000e49: JUMPDEST
00000e4a: PUSH2 0x0eaf
00000e4d: JUMPI
00000e4e: PUSH1 0x40
00000e50: MLOAD
00000e51: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e72: DUP2
00000e73: MSTORE
00000e74: PUSH1 0x20
00000e76: PUSH1 0x04
00000e78: DUP3
00000e79: ADD
00000e7a: MSTORE
00000e7b: PUSH1 0x17
00000e7d: PUSH1 0x24
00000e7f: DUP3
00000e80: ADD
00000e81: MSTORE
00000e82: PUSH32 0x4d43523a204e6f7420616c6c6f77656420627269646765000000000000000000
00000ea3: PUSH1 0x44
00000ea5: DUP3
00000ea6: ADD
00000ea7: MSTORE
00000ea8: PUSH1 0x64
00000eaa: ADD
00000eab: PUSH2 0x0946
00000eae: JUMP
00000eaf: JUMPDEST
00000eb0: PUSH4 0xffffffff
00000eb5: DUP7
00000eb6: AND
00000eb7: PUSH1 0x00
00000eb9: SWAP1
00000eba: DUP2
00000ebb: MSTORE
00000ebc: PUSH1 0xcb
00000ebe: PUSH1 0x20
00000ec0: MSTORE
00000ec1: PUSH1 0x40
00000ec3: SWAP1
00000ec4: KECCAK256
00000ec5: SLOAD
00000ec6: CALLER
00000ec7: SWAP1
00000ec8: DUP1
00000ec9: PUSH2 0x0ed8
00000ecc: JUMPI
00000ecd: PUSH2 0x0ed5
00000ed0: DUP9
00000ed1: PUSH2 0x16ca
00000ed4: JUMP
00000ed5: JUMPDEST
00000ed6: SWAP1
00000ed7: POP
00000ed8: JUMPDEST
00000ed9: PUSH2 0x0ee4
00000edc: DUP9
00000edd: DUP3
00000ede: DUP10
00000edf: DUP10
00000ee0: PUSH2 0x19a1
00000ee3: JUMP
00000ee4: JUMPDEST
00000ee5: PUSH1 0x40
00000ee7: DUP1
00000ee8: MLOAD
00000ee9: DUP3
00000eea: DUP2
00000eeb: MSTORE
00000eec: PUSH1 0x20
00000eee: DUP2
00000eef: ADD
00000ef0: DUP10
00000ef1: SWAP1
00000ef2: MSTORE
00000ef3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f08: DUP5
00000f09: AND
00000f0a: SWAP2
00000f0b: PUSH4 0xffffffff
00000f10: DUP12
00000f11: AND
00000f12: SWAP2
00000f13: PUSH32 0xb1e1b117ddf429b1b8a359fe0e978f0ae191c0f70e0babfea7acaad1b0ee8a2d
00000f34: SWAP2
00000f35: ADD
00000f36: JUMPDEST
00000f37: PUSH1 0x40
00000f39: MLOAD
00000f3a: DUP1
00000f3b: SWAP2
00000f3c: SUB
00000f3d: SWAP1
00000f3e: LOG3
00000f3f: POP
00000f40: POP
00000f41: POP
00000f42: POP
00000f43: POP
00000f44: POP
00000f45: POP
00000f46: POP
00000f47: JUMP
00000f48: JUMPDEST
00000f49: PUSH1 0x40
00000f4b: MLOAD
00000f4c: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00000f6d: DUP2
00000f6e: MSTORE
00000f6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f84: DUP3
00000f85: DUP2
00000f86: AND
00000f87: PUSH1 0x04
00000f89: DUP4
00000f8a: ADD
00000f8b: MSTORE
00000f8c: PUSH1 0x00
00000f8e: SWAP2
00000f8f: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00000fb0: SWAP1
00000fb1: SWAP2
00000fb2: AND
00000fb3: SWAP1
00000fb4: PUSH4 0x70a08231
00000fb9: SWAP1
00000fba: PUSH1 0x24
00000fbc: ADD
00000fbd: PUSH1 0x20
00000fbf: PUSH1 0x40
00000fc1: MLOAD
00000fc2: DUP1
00000fc3: DUP4
00000fc4: SUB
00000fc5: DUP2
00000fc6: DUP7
00000fc7: GAS
00000fc8: STATICCALL
00000fc9: ISZERO
00000fca: DUP1
00000fcb: ISZERO
00000fcc: PUSH2 0x0fd9
00000fcf: JUMPI
00000fd0: RETURNDATASIZE
00000fd1: PUSH1 0x00
00000fd3: DUP1
00000fd4: RETURNDATACOPY
00000fd5: RETURNDATASIZE
00000fd6: PUSH1 0x00
00000fd8: REVERT
00000fd9: JUMPDEST
00000fda: POP
00000fdb: POP
00000fdc: POP
00000fdd: POP
00000fde: PUSH1 0x40
00000fe0: MLOAD
00000fe1: RETURNDATASIZE
00000fe2: PUSH1 0x1f
00000fe4: NOT
00000fe5: PUSH1 0x1f
00000fe7: DUP3
00000fe8: ADD
00000fe9: AND
00000fea: DUP3
00000feb: ADD
00000fec: DUP1
00000fed: PUSH1 0x40
00000fef: MSTORE
00000ff0: POP
00000ff1: DUP2
00000ff2: ADD
00000ff3: SWAP1
00000ff4: PUSH2 0x09f3
00000ff7: SWAP2
00000ff8: SWAP1
00000ff9: PUSH2 0x330d
00000ffc: JUMP
00000ffd: JUMPDEST
00000ffe: PUSH2 0x1005
00001001: PUSH2 0x1613
00001004: JUMP
00001005: JUMPDEST
00001006: PUSH2 0x100f
00001009: PUSH1 0x00
0000100b: PUSH2 0x19ee
0000100e: JUMP
0000100f: JUMPDEST
00001010: JUMP
00001011: JUMPDEST
00001012: PUSH2 0x1019
00001015: PUSH2 0x1613
00001018: JUMP
00001019: JUMPDEST
0000101a: DUP1
0000101b: PUSH1 0x00
0000101d: JUMPDEST
0000101e: DUP2
0000101f: DUP2
00001020: LT
00001021: ISZERO
00001022: PUSH2 0x1066
00001025: JUMPI
00001026: PUSH2 0x1054
00001029: DUP5
0000102a: DUP5
0000102b: DUP4
0000102c: DUP2
0000102d: DUP2
0000102e: LT
0000102f: PUSH2 0x103a
00001032: JUMPI
00001033: PUSH2 0x103a
00001036: PUSH2 0x3326
00001039: JUMP
0000103a: JUMPDEST
0000103b: SWAP1
0000103c: POP
0000103d: PUSH1 0x20
0000103f: MUL
00001040: ADD
00001041: PUSH1 0x20
00001043: DUP2
00001044: ADD
00001045: SWAP1
00001046: PUSH2 0x104f
00001049: SWAP2
0000104a: SWAP1
0000104b: PUSH2 0x2dd0
0000104e: JUMP
0000104f: JUMPDEST
00001050: PUSH2 0x1a65
00001053: JUMP
00001054: JUMPDEST
00001055: PUSH2 0x105f
00001058: PUSH1 0x01
0000105a: DUP3
0000105b: PUSH2 0x3384
0000105e: JUMP
0000105f: JUMPDEST
00001060: SWAP1
00001061: POP
00001062: PUSH2 0x101d
00001065: JUMP
00001066: JUMPDEST
00001067: POP
00001068: POP
00001069: POP
0000106a: POP
0000106b: JUMP
0000106c: JUMPDEST
0000106d: PUSH1 0x00
0000106f: PUSH2 0x0a3b
00001072: DUP5
00001073: DUP5
00001074: DUP5
00001075: CALLVALUE
00001076: PUSH2 0x1a99
00001079: JUMP
0000107a: JUMPDEST
0000107b: PUSH1 0x40
0000107d: DUP1
0000107e: MLOAD
0000107f: PUSH1 0x02
00001081: DUP1
00001082: DUP3
00001083: MSTORE
00001084: PUSH1 0x60
00001086: DUP3
00001087: DUP2
00001088: ADD
00001089: SWAP1
0000108a: SWAP4
0000108b: MSTORE
0000108c: DUP2
0000108d: PUSH1 0x20
0000108f: ADD
00001090: JUMPDEST
00001091: PUSH1 0x40
00001093: DUP1
00001094: MLOAD
00001095: DUP1
00001096: DUP3
00001097: ADD
00001098: SWAP1
00001099: SWAP2
0000109a: MSTORE
0000109b: PUSH1 0x00
0000109d: DUP1
0000109e: DUP3
0000109f: MSTORE
000010a0: PUSH1 0x20
000010a2: DUP3
000010a3: ADD
000010a4: MSTORE
000010a5: DUP2
000010a6: MSTORE
000010a7: PUSH1 0x20
000010a9: ADD
000010aa: SWAP1
000010ab: PUSH1 0x01
000010ad: SWAP1
000010ae: SUB
000010af: SWAP1
000010b0: DUP2
000010b1: PUSH2 0x1090
000010b4: JUMPI
000010b5: SWAP1
000010b6: POP
000010b7: POP
000010b8: SWAP1
000010b9: POP
000010ba: PUSH1 0x40
000010bc: MLOAD
000010bd: DUP1
000010be: PUSH1 0x40
000010c0: ADD
000010c1: PUSH1 0x40
000010c3: MSTORE
000010c4: DUP1
000010c5: PUSH1 0x00
000010c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010dc: AND
000010dd: DUP2
000010de: MSTORE
000010df: PUSH1 0x20
000010e1: ADD
000010e2: PUSH2 0x10ec
000010e5: DUP7
000010e6: DUP7
000010e7: DUP7
000010e8: PUSH2 0x1ad2
000010eb: JUMP
000010ec: JUMPDEST
000010ed: DUP2
000010ee: MSTORE
000010ef: POP
000010f0: DUP2
000010f1: PUSH1 0x00
000010f3: DUP2
000010f4: MLOAD
000010f5: DUP2
000010f6: LT
000010f7: PUSH2 0x1102
000010fa: JUMPI
000010fb: PUSH2 0x1102
000010fe: PUSH2 0x3326
00001101: JUMP
00001102: JUMPDEST
00001103: PUSH1 0x20
00001105: MUL
00001106: PUSH1 0x20
00001108: ADD
00001109: ADD
0000110a: DUP2
0000110b: SWAP1
0000110c: MSTORE
0000110d: POP
0000110e: PUSH1 0x40
00001110: MLOAD
00001111: DUP1
00001112: PUSH1 0x40
00001114: ADD
00001115: PUSH1 0x40
00001117: MSTORE
00001118: DUP1
00001119: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0000113a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000114f: AND
00001150: DUP2
00001151: MSTORE
00001152: PUSH1 0x20
00001154: ADD
00001155: DUP4
00001156: DUP2
00001157: MSTORE
00001158: POP
00001159: DUP2
0000115a: PUSH1 0x01
0000115c: DUP2
0000115d: MLOAD
0000115e: DUP2
0000115f: LT
00001160: PUSH2 0x116b
00001163: JUMPI
00001164: PUSH2 0x116b
00001167: PUSH2 0x3326
0000116a: JUMP
0000116b: JUMPDEST
0000116c: PUSH1 0x20
0000116e: MUL
0000116f: PUSH1 0x20
00001171: ADD
00001172: ADD
00001173: DUP2
00001174: SWAP1
00001175: MSTORE
00001176: POP
00001177: SWAP4
00001178: SWAP3
00001179: POP
0000117a: POP
0000117b: POP
0000117c: JUMP
0000117d: JUMPDEST
0000117e: PUSH2 0x1185
00001181: PUSH2 0x1613
00001184: JUMP
00001185: JUMPDEST
00001186: PUSH1 0x00
00001188: JUMPDEST
00001189: DUP2
0000118a: DUP2
0000118b: LT
0000118c: ISZERO
0000118d: PUSH2 0x0be4
00001190: JUMPI
00001191: PUSH2 0x11dc
00001194: DUP4
00001195: DUP4
00001196: DUP4
00001197: DUP2
00001198: DUP2
00001199: LT
0000119a: PUSH2 0x11a5
0000119d: JUMPI
0000119e: PUSH2 0x11a5
000011a1: PUSH2 0x3326
000011a4: JUMP
000011a5: JUMPDEST
000011a6: PUSH2 0x11bb
000011a9: SWAP3
000011aa: PUSH1 0x20
000011ac: PUSH1 0x40
000011ae: SWAP1
000011af: SWAP3
000011b0: MUL
000011b1: ADD
000011b2: SWAP1
000011b3: DUP2
000011b4: ADD
000011b5: SWAP2
000011b6: POP
000011b7: PUSH2 0x2dd0
000011ba: JUMP
000011bb: JUMPDEST
000011bc: DUP5
000011bd: DUP5
000011be: DUP5
000011bf: DUP2
000011c0: DUP2
000011c1: LT
000011c2: PUSH2 0x11cd
000011c5: JUMPI
000011c6: PUSH2 0x11cd
000011c9: PUSH2 0x3326
000011cc: JUMP
000011cd: JUMPDEST
000011ce: SWAP1
000011cf: POP
000011d0: PUSH1 0x40
000011d2: MUL
000011d3: ADD
000011d4: PUSH1 0x20
000011d6: ADD
000011d7: CALLDATALOAD
000011d8: PUSH2 0x181b
000011db: JUMP
000011dc: JUMPDEST
000011dd: PUSH2 0x11e7
000011e0: PUSH1 0x01
000011e2: DUP3
000011e3: PUSH2 0x3384
000011e6: JUMP
000011e7: JUMPDEST
000011e8: SWAP1
000011e9: POP
000011ea: PUSH2 0x1188
000011ed: JUMP
000011ee: JUMPDEST
000011ef: PUSH2 0x11f6
000011f2: PUSH2 0x1613
000011f5: JUMP
000011f6: JUMPDEST
000011f7: PUSH2 0x0880
000011fa: DUP3
000011fb: DUP3
000011fc: PUSH2 0x1b1b
000011ff: JUMP
00001200: JUMPDEST
00001201: PUSH1 0x00
00001203: SLOAD
00001204: PUSH2 0x0100
00001207: SWAP1
00001208: DIV
00001209: PUSH1 0xff
0000120b: AND
0000120c: ISZERO
0000120d: DUP1
0000120e: DUP1
0000120f: ISZERO
00001210: PUSH2 0x1220
00001213: JUMPI
00001214: POP
00001215: PUSH1 0x00
00001217: SLOAD
00001218: PUSH1 0x01
0000121a: PUSH1 0xff
0000121c: SWAP1
0000121d: SWAP2
0000121e: AND
0000121f: LT
00001220: JUMPDEST
00001221: DUP1
00001222: PUSH2 0x123a
00001225: JUMPI
00001226: POP
00001227: ADDRESS
00001228: EXTCODESIZE
00001229: ISZERO
0000122a: DUP1
0000122b: ISZERO
0000122c: PUSH2 0x123a
0000122f: JUMPI
00001230: POP
00001231: PUSH1 0x00
00001233: SLOAD
00001234: PUSH1 0xff
00001236: AND
00001237: PUSH1 0x01
00001239: EQ
0000123a: JUMPDEST
0000123b: PUSH2 0x12c6
0000123e: JUMPI
0000123f: PUSH1 0x40
00001241: MLOAD
00001242: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001263: DUP2
00001264: MSTORE
00001265: PUSH1 0x20
00001267: PUSH1 0x04
00001269: DUP3
0000126a: ADD
0000126b: MSTORE
0000126c: PUSH1 0x2e
0000126e: PUSH1 0x24
00001270: DUP3
00001271: ADD
00001272: MSTORE
00001273: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00001294: PUSH1 0x44
00001296: DUP3
00001297: ADD
00001298: MSTORE
00001299: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
000012ba: PUSH1 0x64
000012bc: DUP3
000012bd: ADD
000012be: MSTORE
000012bf: PUSH1 0x84
000012c1: ADD
000012c2: PUSH2 0x0946
000012c5: JUMP
000012c6: JUMPDEST
000012c7: PUSH1 0x00
000012c9: DUP1
000012ca: SLOAD
000012cb: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
000012ec: AND
000012ed: PUSH1 0x01
000012ef: OR
000012f0: SWAP1
000012f1: SSTORE
000012f2: DUP1
000012f3: ISZERO
000012f4: PUSH2 0x1324
000012f7: JUMPI
000012f8: PUSH1 0x00
000012fa: DUP1
000012fb: SLOAD
000012fc: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
0000131d: AND
0000131e: PUSH2 0x0100
00001321: OR
00001322: SWAP1
00001323: SSTORE
00001324: JUMPDEST
00001325: PUSH2 0x132f
00001328: DUP5
00001329: DUP5
0000132a: DUP5
0000132b: PUSH2 0x1b31
0000132e: JUMP
0000132f: JUMPDEST
00001330: DUP1
00001331: ISZERO
00001332: PUSH2 0x1066
00001335: JUMPI
00001336: PUSH1 0x00
00001338: DUP1
00001339: SLOAD
0000133a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
0000135b: AND
0000135c: SWAP1
0000135d: SSTORE
0000135e: PUSH1 0x40
00001360: MLOAD
00001361: PUSH1 0x01
00001363: DUP2
00001364: MSTORE
00001365: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
00001386: SWAP1
00001387: PUSH1 0x20
00001389: ADD
0000138a: PUSH1 0x40
0000138c: MLOAD
0000138d: DUP1
0000138e: SWAP2
0000138f: SUB
00001390: SWAP1
00001391: LOG1
00001392: POP
00001393: POP
00001394: POP
00001395: POP
00001396: JUMP
00001397: JUMPDEST
00001398: PUSH2 0x139f
0000139b: PUSH2 0x1613
0000139e: JUMP
0000139f: JUMPDEST
000013a0: PUSH4 0xffffffff
000013a5: AND
000013a6: PUSH1 0x00
000013a8: SWAP1
000013a9: DUP2
000013aa: MSTORE
000013ab: PUSH1 0xcb
000013ad: PUSH1 0x20
000013af: MSTORE
000013b0: PUSH1 0x40
000013b2: DUP2
000013b3: KECCAK256
000013b4: SSTORE
000013b5: JUMP
000013b6: JUMPDEST
000013b7: PUSH1 0x60
000013b9: PUSH2 0x0ba3
000013bc: PUSH1 0xcd
000013be: PUSH2 0x16bd
000013c1: JUMP
000013c2: JUMPDEST
000013c3: PUSH2 0x13ca
000013c6: PUSH2 0x1613
000013c9: JUMP
000013ca: JUMPDEST
000013cb: DUP3
000013cc: DUP2
000013cd: EQ
000013ce: PUSH2 0x1433
000013d1: JUMPI
000013d2: PUSH1 0x40
000013d4: MLOAD
000013d5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000013f6: DUP2
000013f7: MSTORE
000013f8: PUSH1 0x20
000013fa: PUSH1 0x04
000013fc: DUP3
000013fd: ADD
000013fe: MSTORE
000013ff: PUSH1 0x07
00001401: PUSH1 0x24
00001403: DUP3
00001404: ADD
00001405: MSTORE
00001406: PUSH32 0x216c656e67746800000000000000000000000000000000000000000000000000
00001427: PUSH1 0x44
00001429: DUP3
0000142a: ADD
0000142b: MSTORE
0000142c: PUSH1 0x64
0000142e: ADD
0000142f: PUSH2 0x0946
00001432: JUMP
00001433: JUMPDEST
00001434: DUP3
00001435: PUSH1 0x00
00001437: JUMPDEST
00001438: DUP2
00001439: DUP2
0000143a: LT
0000143b: ISZERO
0000143c: PUSH2 0x1499
0000143f: JUMPI
00001440: PUSH2 0x1487
00001443: DUP7
00001444: DUP7
00001445: DUP4
00001446: DUP2
00001447: DUP2
00001448: LT
00001449: PUSH2 0x1454
0000144c: JUMPI
0000144d: PUSH2 0x1454
00001450: PUSH2 0x3326
00001453: JUMP
00001454: JUMPDEST
00001455: SWAP1
00001456: POP
00001457: PUSH1 0x20
00001459: MUL
0000145a: ADD
0000145b: PUSH1 0x20
0000145d: DUP2
0000145e: ADD
0000145f: SWAP1
00001460: PUSH2 0x1469
00001463: SWAP2
00001464: SWAP1
00001465: PUSH2 0x2dd0
00001468: JUMP
00001469: JUMPDEST
0000146a: DUP6
0000146b: DUP6
0000146c: DUP5
0000146d: DUP2
0000146e: DUP2
0000146f: LT
00001470: PUSH2 0x147b
00001473: JUMPI
00001474: PUSH2 0x147b
00001477: PUSH2 0x3326
0000147a: JUMP
0000147b: JUMPDEST
0000147c: SWAP1
0000147d: POP
0000147e: PUSH1 0x20
00001480: MUL
00001481: ADD
00001482: CALLDATALOAD
00001483: PUSH2 0x1b1b
00001486: JUMP
00001487: JUMPDEST
00001488: PUSH2 0x1492
0000148b: PUSH1 0x01
0000148d: DUP3
0000148e: PUSH2 0x3384
00001491: JUMP
00001492: JUMPDEST
00001493: SWAP1
00001494: POP
00001495: PUSH2 0x1437
00001498: JUMP
00001499: JUMPDEST
0000149a: POP
0000149b: POP
0000149c: POP
0000149d: POP
0000149e: POP
0000149f: POP
000014a0: JUMP
000014a1: JUMPDEST
000014a2: PUSH2 0x14a9
000014a5: PUSH2 0x1613
000014a8: JUMP
000014a9: JUMPDEST
000014aa: PUSH2 0x14b2
000014ad: DUP2
000014ae: PUSH2 0x1a65
000014b1: JUMP
000014b2: JUMPDEST
000014b3: POP
000014b4: JUMP
000014b5: JUMPDEST
000014b6: PUSH1 0x00
000014b8: PUSH2 0x09f3
000014bb: DUP3
000014bc: DUP3
000014bd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000014de: PUSH2 0x1ad2
000014e1: JUMP
000014e2: JUMPDEST
000014e3: PUSH2 0x14ea
000014e6: PUSH2 0x1613
000014e9: JUMP
000014ea: JUMPDEST
000014eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001500: DUP2
00001501: AND
00001502: PUSH2 0x158d
00001505: JUMPI
00001506: PUSH1 0x40
00001508: MLOAD
00001509: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000152a: DUP2
0000152b: MSTORE
0000152c: PUSH1 0x20
0000152e: PUSH1 0x04
00001530: DUP3
00001531: ADD
00001532: MSTORE
00001533: PUSH1 0x26
00001535: PUSH1 0x24
00001537: DUP3
00001538: ADD
00001539: MSTORE
0000153a: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
0000155b: PUSH1 0x44
0000155d: DUP3
0000155e: ADD
0000155f: MSTORE
00001560: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000
00001581: PUSH1 0x64
00001583: DUP3
00001584: ADD
00001585: MSTORE
00001586: PUSH1 0x84
00001588: ADD
00001589: PUSH2 0x0946
0000158c: JUMP
0000158d: JUMPDEST
0000158e: PUSH2 0x14b2
00001591: DUP2
00001592: PUSH2 0x19ee
00001595: JUMP
00001596: JUMPDEST
00001597: PUSH2 0x159e
0000159a: PUSH2 0x1613
0000159d: JUMP
0000159e: JUMPDEST
0000159f: PUSH2 0x0880
000015a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015b7: DUP4
000015b8: AND
000015b9: DUP3
000015ba: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000015db: PUSH2 0x1beb
000015de: JUMP
000015df: JUMPDEST
000015e0: PUSH2 0x15e7
000015e3: PUSH2 0x1613
000015e6: JUMP
000015e7: JUMPDEST
000015e8: PUSH2 0x15f0
000015eb: DUP3
000015ec: PUSH2 0x16ca
000015ef: JUMP
000015f0: JUMPDEST
000015f1: POP
000015f2: PUSH4 0xffffffff
000015f7: DUP1
000015f8: DUP4
000015f9: AND
000015fa: PUSH1 0x00
000015fc: SWAP1
000015fd: DUP2
000015fe: MSTORE
000015ff: PUSH1 0xcc
00001601: PUSH1 0x20
00001603: MSTORE
00001604: PUSH1 0x40
00001606: SWAP1
00001607: KECCAK256
00001608: PUSH2 0x0be4
0000160b: SWAP2
0000160c: DUP4
0000160d: SWAP1
0000160e: PUSH2 0x1694
00001611: AND
00001612: JUMP
00001613: JUMPDEST
00001614: PUSH1 0x33
00001616: SLOAD
00001617: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000162c: AND
0000162d: CALLER
0000162e: EQ
0000162f: PUSH2 0x100f
00001632: JUMPI
00001633: PUSH1 0x40
00001635: MLOAD
00001636: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001657: DUP2
00001658: MSTORE
00001659: PUSH1 0x20
0000165b: PUSH1 0x04
0000165d: DUP3
0000165e: ADD
0000165f: DUP2
00001660: SWAP1
00001661: MSTORE
00001662: PUSH1 0x24
00001664: DUP3
00001665: ADD
00001666: MSTORE
00001667: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00001688: PUSH1 0x44
0000168a: DUP3
0000168b: ADD
0000168c: MSTORE
0000168d: PUSH1 0x64
0000168f: ADD
00001690: PUSH2 0x0946
00001693: JUMP
00001694: JUMPDEST
00001695: PUSH1 0x00
00001697: PUSH2 0x16b6
0000169a: DUP4
0000169b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016b0: DUP5
000016b1: AND
000016b2: PUSH2 0x1deb
000016b5: JUMP
000016b6: JUMPDEST
000016b7: SWAP4
000016b8: SWAP3
000016b9: POP
000016ba: POP
000016bb: POP
000016bc: JUMP
000016bd: JUMPDEST
000016be: PUSH1 0x60
000016c0: PUSH1 0x00
000016c2: PUSH2 0x16b6
000016c5: DUP4
000016c6: PUSH2 0x1e3a
000016c9: JUMP
000016ca: JUMPDEST
000016cb: PUSH1 0x00
000016cd: DUP1
000016ce: DUP1
000016cf: PUSH2 0x16e2
000016d2: PUSH1 0x97
000016d4: PUSH4 0xffffffff
000016d9: DUP1
000016da: DUP8
000016db: AND
000016dc: SWAP1
000016dd: PUSH2 0x172f
000016e0: AND
000016e1: JUMP
000016e2: JUMPDEST
000016e3: SWAP2
000016e4: POP
000016e5: SWAP2
000016e6: POP
000016e7: DUP2
000016e8: ISZERO
000016e9: PUSH2 0x16f3
000016ec: JUMPI
000016ed: SWAP4
000016ee: SWAP3
000016ef: POP
000016f0: POP
000016f1: POP
000016f2: JUMP
000016f3: JUMPDEST
000016f4: PUSH2 0x16fc
000016f7: DUP5
000016f8: PUSH2 0x1e96
000016fb: JUMP
000016fc: JUMPDEST
000016fd: PUSH1 0x40
000016ff: MLOAD
00001700: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001721: DUP2
00001722: MSTORE
00001723: PUSH1 0x04
00001725: ADD
00001726: PUSH2 0x0946
00001729: SWAP2
0000172a: SWAP1
0000172b: PUSH2 0x31c7
0000172e: JUMP
0000172f: JUMPDEST
00001730: PUSH1 0x00
00001732: DUP1
00001733: PUSH2 0x173c
00001736: DUP5
00001737: DUP5
00001738: PUSH2 0x1ecd
0000173b: JUMP
0000173c: JUMPDEST
0000173d: SWAP2
0000173e: POP
0000173f: SWAP2
00001740: POP
00001741: JUMPDEST
00001742: SWAP3
00001743: POP
00001744: SWAP3
00001745: SWAP1
00001746: POP
00001747: JUMP
00001748: JUMPDEST
00001749: PUSH1 0x00
0000174b: PUSH2 0x16b6
0000174e: DUP4
0000174f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001764: DUP5
00001765: AND
00001766: PUSH2 0x1f07
00001769: JUMP
0000176a: JUMPDEST
0000176b: PUSH1 0x60
0000176d: PUSH1 0x00
0000176f: PUSH2 0x1777
00001772: DUP4
00001773: PUSH2 0x1ffa
00001776: JUMP
00001777: JUMPDEST
00001778: SWAP1
00001779: POP
0000177a: DUP1
0000177b: MLOAD
0000177c: PUSH8 0xffffffffffffffff
00001785: DUP2
00001786: GT
00001787: ISZERO
00001788: PUSH2 0x1793
0000178b: JUMPI
0000178c: PUSH2 0x1793
0000178f: PUSH2 0x3397
00001792: JUMP
00001793: JUMPDEST
00001794: PUSH1 0x40
00001796: MLOAD
00001797: SWAP1
00001798: DUP1
00001799: DUP3
0000179a: MSTORE
0000179b: DUP1
0000179c: PUSH1 0x20
0000179e: MUL
0000179f: PUSH1 0x20
000017a1: ADD
000017a2: DUP3
000017a3: ADD
000017a4: PUSH1 0x40
000017a6: MSTORE
000017a7: DUP1
000017a8: ISZERO
000017a9: PUSH2 0x17bc
000017ac: JUMPI
000017ad: DUP2
000017ae: PUSH1 0x20
000017b0: ADD
000017b1: PUSH1 0x20
000017b3: DUP3
000017b4: MUL
000017b5: DUP1
000017b6: CALLDATASIZE
000017b7: DUP4
000017b8: CALLDATACOPY
000017b9: ADD
000017ba: SWAP1
000017bb: POP
000017bc: JUMPDEST
000017bd: POP
000017be: SWAP2
000017bf: POP
000017c0: PUSH1 0x00
000017c2: JUMPDEST
000017c3: DUP2
000017c4: MLOAD
000017c5: DUP2
000017c6: LT
000017c7: ISZERO
000017c8: PUSH2 0x1814
000017cb: JUMPI
000017cc: DUP2
000017cd: DUP2
000017ce: DUP2
000017cf: MLOAD
000017d0: DUP2
000017d1: LT
000017d2: PUSH2 0x17dd
000017d5: JUMPI
000017d6: PUSH2 0x17dd
000017d9: PUSH2 0x3326
000017dc: JUMP
000017dd: JUMPDEST
000017de: PUSH1 0x20
000017e0: MUL
000017e1: PUSH1 0x20
000017e3: ADD
000017e4: ADD
000017e5: MLOAD
000017e6: DUP4
000017e7: DUP3
000017e8: DUP2
000017e9: MLOAD
000017ea: DUP2
000017eb: LT
000017ec: PUSH2 0x17f7
000017ef: JUMPI
000017f0: PUSH2 0x17f7
000017f3: PUSH2 0x3326
000017f6: JUMP
000017f7: JUMPDEST
000017f8: PUSH4 0xffffffff
000017fd: SWAP1
000017fe: SWAP3
000017ff: AND
00001800: PUSH1 0x20
00001802: SWAP3
00001803: DUP4
00001804: MUL
00001805: SWAP2
00001806: SWAP1
00001807: SWAP2
00001808: ADD
00001809: SWAP1
0000180a: SWAP2
0000180b: ADD
0000180c: MSTORE
0000180d: PUSH1 0x01
0000180f: ADD
00001810: PUSH2 0x17c2
00001813: JUMP
00001814: JUMPDEST
00001815: POP
00001816: POP
00001817: SWAP2
00001818: SWAP1
00001819: POP
0000181a: JUMP
0000181b: JUMPDEST
0000181c: PUSH4 0xffffffff
00001821: DUP3
00001822: AND
00001823: PUSH1 0x00
00001825: DUP2
00001826: DUP2
00001827: MSTORE
00001828: PUSH1 0xca
0000182a: PUSH1 0x20
0000182c: SWAP1
0000182d: DUP2
0000182e: MSTORE
0000182f: PUSH1 0x40
00001831: SWAP2
00001832: DUP3
00001833: SWAP1
00001834: KECCAK256
00001835: DUP5
00001836: SWAP1
00001837: SSTORE
00001838: DUP2
00001839: MLOAD
0000183a: SWAP3
0000183b: DUP4
0000183c: MSTORE
0000183d: DUP3
0000183e: ADD
0000183f: DUP4
00001840: SWAP1
00001841: MSTORE
00001842: PUSH32 0xc3de732a98b24a2b5c6f67e8a7fb057ffc14046b83968a2c73e4148d2fba978b
00001863: SWAP2
00001864: ADD
00001865: PUSH2 0x09c6
00001868: JUMP
00001869: JUMPDEST
0000186a: PUSH1 0x00
0000186c: DUP1
0000186d: PUSH2 0x1875
00001870: DUP7
00001871: PUSH2 0x208b
00001874: JUMP
00001875: JUMPDEST
00001876: SWAP1
00001877: POP
00001878: PUSH1 0x00
0000187a: PUSH2 0x1882
0000187d: DUP8
0000187e: PUSH2 0x20e3
00001881: JUMP
00001882: JUMPDEST
00001883: SWAP1
00001884: POP
00001885: PUSH1 0x00
00001887: PUSH2 0x1891
0000188a: DUP10
0000188b: DUP4
0000188c: DUP6
0000188d: PUSH2 0x210f
00001890: JUMP
00001891: JUMPDEST
00001892: SWAP1
00001893: POP
00001894: PUSH2 0x18a0
00001897: DUP11
00001898: DUP9
00001899: DUP4
0000189a: DUP10
0000189b: DUP10
0000189c: PUSH2 0x213e
0000189f: JUMP
000018a0: JUMPDEST
000018a1: SWAP4
000018a2: POP
000018a3: DUP9
000018a4: DUP11
000018a5: PUSH4 0xffffffff
000018aa: AND
000018ab: PUSH32 0xd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec
000018cc: DUP5
000018cd: PUSH1 0x40
000018cf: MLOAD
000018d0: PUSH2 0x18db
000018d3: SWAP2
000018d4: DUP2
000018d5: MSTORE
000018d6: PUSH1 0x20
000018d8: ADD
000018d9: SWAP1
000018da: JUMP
000018db: JUMPDEST
000018dc: PUSH1 0x40
000018de: MLOAD
000018df: DUP1
000018e0: SWAP2
000018e1: SUB
000018e2: SWAP1
000018e3: LOG3
000018e4: POP
000018e5: POP
000018e6: POP
000018e7: SWAP7
000018e8: SWAP6
000018e9: POP
000018ea: POP
000018eb: POP
000018ec: POP
000018ed: POP
000018ee: POP
000018ef: JUMP
000018f0: JUMPDEST
000018f1: PUSH1 0x00
000018f3: PUSH2 0x18fc
000018f6: DUP4
000018f7: DUP4
000018f8: PUSH2 0x21f1
000018fb: JUMP
000018fc: JUMPDEST
000018fd: SWAP1
000018fe: POP
000018ff: PUSH1 0x00
00001901: PUSH2 0x190a
00001904: DUP5
00001905: DUP5
00001906: PUSH2 0x221a
00001909: JUMP
0000190a: JUMPDEST
0000190b: SWAP1
0000190c: POP
0000190d: CALLDATASIZE
0000190e: PUSH1 0x00
00001910: PUSH2 0x1919
00001913: DUP7
00001914: DUP7
00001915: PUSH2 0x222a
00001918: JUMP
00001919: JUMPDEST
0000191a: SWAP2
0000191b: POP
0000191c: SWAP2
0000191d: POP
0000191e: PUSH2 0x1939
00001921: PUSH2 0x1929
00001924: DUP6
00001925: PUSH2 0x223a
00001928: JUMP
00001929: JUMPDEST
0000192a: PUSH2 0x1932
0000192d: DUP6
0000192e: PUSH2 0x22e3
00001931: JUMP
00001932: JUMPDEST
00001933: DUP5
00001934: DUP5
00001935: PUSH2 0x230f
00001938: JUMP
00001939: JUMPDEST
0000193a: DUP4
0000193b: DUP9
0000193c: PUSH4 0xffffffff
00001941: AND
00001942: PUSH32 0xba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6
00001963: DUP6
00001964: PUSH1 0x40
00001966: MLOAD
00001967: PUSH2 0x0f36
0000196a: SWAP2
0000196b: DUP2
0000196c: MSTORE
0000196d: PUSH1 0x20
0000196f: ADD
00001970: SWAP1
00001971: JUMP
00001972: JUMPDEST
00001973: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001988: DUP2
00001989: AND
0000198a: PUSH1 0x00
0000198c: SWAP1
0000198d: DUP2
0000198e: MSTORE
0000198f: PUSH1 0x01
00001991: DUP4
00001992: ADD
00001993: PUSH1 0x20
00001995: MSTORE
00001996: PUSH1 0x40
00001998: DUP2
00001999: KECCAK256
0000199a: SLOAD
0000199b: ISZERO
0000199c: ISZERO
0000199d: PUSH2 0x16b6
000019a0: JUMP
000019a1: JUMPDEST
000019a2: PUSH2 0x19e2
000019a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019ba: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000019db: AND
000019dc: DUP3
000019dd: DUP5
000019de: PUSH2 0x1beb
000019e1: JUMP
000019e2: JUMPDEST
000019e3: PUSH2 0x1066
000019e6: DUP5
000019e7: DUP5
000019e8: DUP5
000019e9: DUP5
000019ea: PUSH2 0x2350
000019ed: JUMP
000019ee: JUMPDEST
000019ef: PUSH1 0x33
000019f1: DUP1
000019f2: SLOAD
000019f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a08: DUP4
00001a09: DUP2
00001a0a: AND
00001a0b: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001a2c: DUP4
00001a2d: AND
00001a2e: DUP2
00001a2f: OR
00001a30: SWAP1
00001a31: SWAP4
00001a32: SSTORE
00001a33: PUSH1 0x40
00001a35: MLOAD
00001a36: SWAP2
00001a37: AND
00001a38: SWAP2
00001a39: SWAP1
00001a3a: DUP3
00001a3b: SWAP1
00001a3c: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001a5d: SWAP1
00001a5e: PUSH1 0x00
00001a60: SWAP1
00001a61: LOG3
00001a62: POP
00001a63: POP
00001a64: JUMP
00001a65: JUMPDEST
00001a66: PUSH4 0xffffffff
00001a6b: DUP2
00001a6c: AND
00001a6d: PUSH1 0x00
00001a6f: SWAP1
00001a70: DUP2
00001a71: MSTORE
00001a72: PUSH1 0xcb
00001a74: PUSH1 0x20
00001a76: SWAP1
00001a77: DUP2
00001a78: MSTORE
00001a79: PUSH1 0x40
00001a7b: DUP1
00001a7c: DUP4
00001a7d: KECCAK256
00001a7e: DUP4
00001a7f: SWAP1
00001a80: SSTORE
00001a81: PUSH1 0xcc
00001a83: SWAP1
00001a84: SWAP2
00001a85: MSTORE
00001a86: SWAP1
00001a87: KECCAK256
00001a88: PUSH2 0x1a90
00001a8b: SWAP1
00001a8c: PUSH2 0x23f6
00001a8f: JUMP
00001a90: JUMPDEST
00001a91: PUSH2 0x14b2
00001a94: DUP2
00001a95: PUSH2 0x244e
00001a98: JUMP
00001a99: JUMPDEST
00001a9a: PUSH1 0x00
00001a9c: PUSH2 0x1ac9
00001a9f: DUP6
00001aa0: DUP6
00001aa1: DUP6
00001aa2: DUP6
00001aa3: PUSH2 0x1aab
00001aa6: DUP11
00001aa7: PUSH2 0x24a3
00001aaa: JUMP
00001aab: JUMPDEST
00001aac: PUSH1 0x65
00001aae: SLOAD
00001aaf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ac4: AND
00001ac5: PUSH2 0x1869
00001ac8: JUMP
00001ac9: JUMPDEST
00001aca: SWAP6
00001acb: SWAP5
00001acc: POP
00001acd: POP
00001ace: POP
00001acf: POP
00001ad0: POP
00001ad1: JUMP
00001ad2: JUMPDEST
00001ad3: PUSH1 0x40
00001ad5: DUP1
00001ad6: MLOAD
00001ad7: PUSH1 0x20
00001ad9: DUP2
00001ada: ADD
00001adb: DUP5
00001adc: SWAP1
00001add: MSTORE
00001ade: DUP1
00001adf: DUP3
00001ae0: ADD
00001ae1: DUP4
00001ae2: SWAP1
00001ae3: MSTORE
00001ae4: DUP2
00001ae5: MLOAD
00001ae6: DUP1
00001ae7: DUP3
00001ae8: SUB
00001ae9: DUP4
00001aea: ADD
00001aeb: DUP2
00001aec: MSTORE
00001aed: PUSH1 0x60
00001aef: SWAP1
00001af0: SWAP2
00001af1: ADD
00001af2: SWAP1
00001af3: SWAP2
00001af4: MSTORE
00001af5: PUSH1 0x00
00001af7: SWAP1
00001af8: PUSH2 0x0a3b
00001afb: SWAP1
00001afc: DUP6
00001afd: SWAP1
00001afe: PUSH1 0x65
00001b00: SLOAD
00001b01: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b16: AND
00001b17: PUSH2 0x24c5
00001b1a: JUMP
00001b1b: JUMPDEST
00001b1c: PUSH2 0x0880
00001b1f: PUSH1 0x97
00001b21: PUSH4 0xffffffff
00001b26: DUP1
00001b27: DUP6
00001b28: AND
00001b29: SWAP1
00001b2a: DUP5
00001b2b: SWAP1
00001b2c: PUSH2 0x24db
00001b2f: AND
00001b30: JUMP
00001b31: JUMPDEST
00001b32: PUSH1 0x00
00001b34: SLOAD
00001b35: PUSH2 0x0100
00001b38: SWAP1
00001b39: DIV
00001b3a: PUSH1 0xff
00001b3c: AND
00001b3d: PUSH2 0x1bc8
00001b40: JUMPI
00001b41: PUSH1 0x40
00001b43: MLOAD
00001b44: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001b65: DUP2
00001b66: MSTORE
00001b67: PUSH1 0x20
00001b69: PUSH1 0x04
00001b6b: DUP3
00001b6c: ADD
00001b6d: MSTORE
00001b6e: PUSH1 0x2b
00001b70: PUSH1 0x24
00001b72: DUP3
00001b73: ADD
00001b74: MSTORE
00001b75: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00001b96: PUSH1 0x44
00001b98: DUP3
00001b99: ADD
00001b9a: MSTORE
00001b9b: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00001bbc: PUSH1 0x64
00001bbe: DUP3
00001bbf: ADD
00001bc0: MSTORE
00001bc1: PUSH1 0x84
00001bc3: ADD
00001bc4: PUSH2 0x0946
00001bc7: JUMP
00001bc8: JUMPDEST
00001bc9: PUSH2 0x1bd0
00001bcc: PUSH2 0x24e6
00001bcf: JUMP
00001bd0: JUMPDEST
00001bd1: PUSH2 0x1bd9
00001bd4: DUP4
00001bd5: PUSH2 0x0a43
00001bd8: JUMP
00001bd9: JUMPDEST
00001bda: PUSH2 0x1be2
00001bdd: DUP3
00001bde: PUSH2 0x0884
00001be1: JUMP
00001be2: JUMPDEST
00001be3: PUSH2 0x0be4
00001be6: DUP2
00001be7: PUSH2 0x19ee
00001bea: JUMP
00001beb: JUMPDEST
00001bec: DUP1
00001bed: ISZERO
00001bee: DUP1
00001bef: PUSH2 0x1c8b
00001bf2: JUMPI
00001bf3: POP
00001bf4: PUSH1 0x40
00001bf6: MLOAD
00001bf7: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000
00001c18: DUP2
00001c19: MSTORE
00001c1a: ADDRESS
00001c1b: PUSH1 0x04
00001c1d: DUP3
00001c1e: ADD
00001c1f: MSTORE
00001c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c35: DUP4
00001c36: DUP2
00001c37: AND
00001c38: PUSH1 0x24
00001c3a: DUP4
00001c3b: ADD
00001c3c: MSTORE
00001c3d: DUP5
00001c3e: AND
00001c3f: SWAP1
00001c40: PUSH4 0xdd62ed3e
00001c45: SWAP1
00001c46: PUSH1 0x44
00001c48: ADD
00001c49: PUSH1 0x20
00001c4b: PUSH1 0x40
00001c4d: MLOAD
00001c4e: DUP1
00001c4f: DUP4
00001c50: SUB
00001c51: DUP2
00001c52: DUP7
00001c53: GAS
00001c54: STATICCALL
00001c55: ISZERO
00001c56: DUP1
00001c57: ISZERO
00001c58: PUSH2 0x1c65
00001c5b: JUMPI
00001c5c: RETURNDATASIZE
00001c5d: PUSH1 0x00
00001c5f: DUP1
00001c60: RETURNDATACOPY
00001c61: RETURNDATASIZE
00001c62: PUSH1 0x00
00001c64: REVERT
00001c65: JUMPDEST
00001c66: POP
00001c67: POP
00001c68: POP
00001c69: POP
00001c6a: PUSH1 0x40
00001c6c: MLOAD
00001c6d: RETURNDATASIZE
00001c6e: PUSH1 0x1f
00001c70: NOT
00001c71: PUSH1 0x1f
00001c73: DUP3
00001c74: ADD
00001c75: AND
00001c76: DUP3
00001c77: ADD
00001c78: DUP1
00001c79: PUSH1 0x40
00001c7b: MSTORE
00001c7c: POP
00001c7d: DUP2
00001c7e: ADD
00001c7f: SWAP1
00001c80: PUSH2 0x1c89
00001c83: SWAP2
00001c84: SWAP1
00001c85: PUSH2 0x330d
00001c88: JUMP
00001c89: JUMPDEST
00001c8a: ISZERO
00001c8b: JUMPDEST
00001c8c: PUSH2 0x1d17
00001c8f: JUMPI
00001c90: PUSH1 0x40
00001c92: MLOAD
00001c93: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001cb4: DUP2
00001cb5: MSTORE
00001cb6: PUSH1 0x20
00001cb8: PUSH1 0x04
00001cba: DUP3
00001cbb: ADD
00001cbc: MSTORE
00001cbd: PUSH1 0x36
00001cbf: PUSH1 0x24
00001cc1: DUP3
00001cc2: ADD
00001cc3: MSTORE
00001cc4: PUSH32 0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f
00001ce5: PUSH1 0x44
00001ce7: DUP3
00001ce8: ADD
00001ce9: MSTORE
00001cea: PUSH32 0x20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000
00001d0b: PUSH1 0x64
00001d0d: DUP3
00001d0e: ADD
00001d0f: MSTORE
00001d10: PUSH1 0x84
00001d12: ADD
00001d13: PUSH2 0x0946
00001d16: JUMP
00001d17: JUMPDEST
00001d18: PUSH1 0x40
00001d1a: MLOAD
00001d1b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d30: DUP4
00001d31: AND
00001d32: PUSH1 0x24
00001d34: DUP3
00001d35: ADD
00001d36: MSTORE
00001d37: PUSH1 0x44
00001d39: DUP2
00001d3a: ADD
00001d3b: DUP3
00001d3c: SWAP1
00001d3d: MSTORE
00001d3e: PUSH2 0x0be4
00001d41: SWAP1
00001d42: DUP5
00001d43: SWAP1
00001d44: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000
00001d65: SWAP1
00001d66: PUSH1 0x64
00001d68: ADD
00001d69: JUMPDEST
00001d6a: PUSH1 0x40
00001d6c: DUP1
00001d6d: MLOAD
00001d6e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001d8f: DUP2
00001d90: DUP5
00001d91: SUB
00001d92: ADD
00001d93: DUP2
00001d94: MSTORE
00001d95: SWAP2
00001d96: SWAP1
00001d97: MSTORE
00001d98: PUSH1 0x20
00001d9a: DUP2
00001d9b: ADD
00001d9c: DUP1
00001d9d: MLOAD
00001d9e: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001dbb: AND
00001dbc: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001ddd: SWAP1
00001dde: SWAP4
00001ddf: AND
00001de0: SWAP3
00001de1: SWAP1
00001de2: SWAP3
00001de3: OR
00001de4: SWAP1
00001de5: SWAP2
00001de6: MSTORE
00001de7: PUSH2 0x2585
00001dea: JUMP
00001deb: JUMPDEST
00001dec: PUSH1 0x00
00001dee: DUP2
00001def: DUP2
00001df0: MSTORE
00001df1: PUSH1 0x01
00001df3: DUP4
00001df4: ADD
00001df5: PUSH1 0x20
00001df7: MSTORE
00001df8: PUSH1 0x40
00001dfa: DUP2
00001dfb: KECCAK256
00001dfc: SLOAD
00001dfd: PUSH2 0x1e32
00001e00: JUMPI
00001e01: POP
00001e02: DUP2
00001e03: SLOAD
00001e04: PUSH1 0x01
00001e06: DUP2
00001e07: DUP2
00001e08: ADD
00001e09: DUP5
00001e0a: SSTORE
00001e0b: PUSH1 0x00
00001e0d: DUP5
00001e0e: DUP2
00001e0f: MSTORE
00001e10: PUSH1 0x20
00001e12: DUP1
00001e13: DUP3
00001e14: KECCAK256
00001e15: SWAP1
00001e16: SWAP4
00001e17: ADD
00001e18: DUP5
00001e19: SWAP1
00001e1a: SSTORE
00001e1b: DUP5
00001e1c: SLOAD
00001e1d: DUP5
00001e1e: DUP3
00001e1f: MSTORE
00001e20: DUP3
00001e21: DUP7
00001e22: ADD
00001e23: SWAP1
00001e24: SWAP4
00001e25: MSTORE
00001e26: PUSH1 0x40
00001e28: SWAP1
00001e29: KECCAK256
00001e2a: SWAP2
00001e2b: SWAP1
00001e2c: SWAP2
00001e2d: SSTORE
00001e2e: PUSH2 0x09f3
00001e31: JUMP
00001e32: JUMPDEST
00001e33: POP
00001e34: PUSH1 0x00
00001e36: PUSH2 0x09f3
00001e39: JUMP
00001e3a: JUMPDEST
00001e3b: PUSH1 0x60
00001e3d: DUP2
00001e3e: PUSH1 0x00
00001e40: ADD
00001e41: DUP1
00001e42: SLOAD
00001e43: DUP1
00001e44: PUSH1 0x20
00001e46: MUL
00001e47: PUSH1 0x20
00001e49: ADD
00001e4a: PUSH1 0x40
00001e4c: MLOAD
00001e4d: SWAP1
00001e4e: DUP2
00001e4f: ADD
00001e50: PUSH1 0x40
00001e52: MSTORE
00001e53: DUP1
00001e54: SWAP3
00001e55: SWAP2
00001e56: SWAP1
00001e57: DUP2
00001e58: DUP2
00001e59: MSTORE
00001e5a: PUSH1 0x20
00001e5c: ADD
00001e5d: DUP3
00001e5e: DUP1
00001e5f: SLOAD
00001e60: DUP1
00001e61: ISZERO
00001e62: PUSH2 0x1e8a
00001e65: JUMPI
00001e66: PUSH1 0x20
00001e68: MUL
00001e69: DUP3
00001e6a: ADD
00001e6b: SWAP2
00001e6c: SWAP1
00001e6d: PUSH1 0x00
00001e6f: MSTORE
00001e70: PUSH1 0x20
00001e72: PUSH1 0x00
00001e74: KECCAK256
00001e75: SWAP1
00001e76: JUMPDEST
00001e77: DUP2
00001e78: SLOAD
00001e79: DUP2
00001e7a: MSTORE
00001e7b: PUSH1 0x20
00001e7d: ADD
00001e7e: SWAP1
00001e7f: PUSH1 0x01
00001e81: ADD
00001e82: SWAP1
00001e83: DUP1
00001e84: DUP4
00001e85: GT
00001e86: PUSH2 0x1e76
00001e89: JUMPI
00001e8a: JUMPDEST
00001e8b: POP
00001e8c: POP
00001e8d: POP
00001e8e: POP
00001e8f: POP
00001e90: SWAP1
00001e91: POP
00001e92: SWAP2
00001e93: SWAP1
00001e94: POP
00001e95: JUMP
00001e96: JUMPDEST
00001e97: PUSH1 0x60
00001e99: PUSH2 0x1ea7
00001e9c: DUP3
00001e9d: PUSH4 0xffffffff
00001ea2: AND
00001ea3: PUSH2 0x2694
00001ea6: JUMP
00001ea7: JUMPDEST
00001ea8: PUSH1 0x40
00001eaa: MLOAD
00001eab: PUSH1 0x20
00001ead: ADD
00001eae: PUSH2 0x1eb7
00001eb1: SWAP2
00001eb2: SWAP1
00001eb3: PUSH2 0x33c6
00001eb6: JUMP
00001eb7: JUMPDEST
00001eb8: PUSH1 0x40
00001eba: MLOAD
00001ebb: PUSH1 0x20
00001ebd: DUP2
00001ebe: DUP4
00001ebf: SUB
00001ec0: SUB
00001ec1: DUP2
00001ec2: MSTORE
00001ec3: SWAP1
00001ec4: PUSH1 0x40
00001ec6: MSTORE
00001ec7: SWAP1
00001ec8: POP
00001ec9: SWAP2
00001eca: SWAP1
00001ecb: POP
00001ecc: JUMP
00001ecd: JUMPDEST
00001ece: PUSH1 0x00
00001ed0: DUP2
00001ed1: DUP2
00001ed2: MSTORE
00001ed3: PUSH1 0x02
00001ed5: DUP4
00001ed6: ADD
00001ed7: PUSH1 0x20
00001ed9: MSTORE
00001eda: PUSH1 0x40
00001edc: DUP2
00001edd: KECCAK256
00001ede: SLOAD
00001edf: DUP2
00001ee0: SWAP1
00001ee1: DUP1
00001ee2: PUSH2 0x1efc
00001ee5: JUMPI
00001ee6: PUSH2 0x1eef
00001ee9: DUP6
00001eea: DUP6
00001eeb: PUSH2 0x2752
00001eee: JUMP
00001eef: JUMPDEST
00001ef0: SWAP3
00001ef1: POP
00001ef2: PUSH1 0x00
00001ef4: SWAP2
00001ef5: POP
00001ef6: PUSH2 0x1741
00001ef9: SWAP1
00001efa: POP
00001efb: JUMP
00001efc: JUMPDEST
00001efd: PUSH1 0x01
00001eff: SWAP3
00001f00: POP
00001f01: SWAP1
00001f02: POP
00001f03: PUSH2 0x1741
00001f06: JUMP
00001f07: JUMPDEST
00001f08: PUSH1 0x00
00001f0a: DUP2
00001f0b: DUP2
00001f0c: MSTORE
00001f0d: PUSH1 0x01
00001f0f: DUP4
00001f10: ADD
00001f11: PUSH1 0x20
00001f13: MSTORE
00001f14: PUSH1 0x40
00001f16: DUP2
00001f17: KECCAK256
00001f18: SLOAD
00001f19: DUP1
00001f1a: ISZERO
00001f1b: PUSH2 0x1ff0
00001f1e: JUMPI
00001f1f: PUSH1 0x00
00001f21: PUSH2 0x1f2b
00001f24: PUSH1 0x01
00001f26: DUP4
00001f27: PUSH2 0x340b
00001f2a: JUMP
00001f2b: JUMPDEST
00001f2c: DUP6
00001f2d: SLOAD
00001f2e: SWAP1
00001f2f: SWAP2
00001f30: POP
00001f31: PUSH1 0x00
00001f33: SWAP1
00001f34: PUSH2 0x1f3f
00001f37: SWAP1
00001f38: PUSH1 0x01
00001f3a: SWAP1
00001f3b: PUSH2 0x340b
00001f3e: JUMP
00001f3f: JUMPDEST
00001f40: SWAP1
00001f41: POP
00001f42: DUP2
00001f43: DUP2
00001f44: EQ
00001f45: PUSH2 0x1fa4
00001f48: JUMPI
00001f49: PUSH1 0x00
00001f4b: DUP7
00001f4c: PUSH1 0x00
00001f4e: ADD
00001f4f: DUP3
00001f50: DUP2
00001f51: SLOAD
00001f52: DUP2
00001f53: LT
00001f54: PUSH2 0x1f5f
00001f57: JUMPI
00001f58: PUSH2 0x1f5f
00001f5b: PUSH2 0x3326
00001f5e: JUMP
00001f5f: JUMPDEST
00001f60: SWAP1
00001f61: PUSH1 0x00
00001f63: MSTORE
00001f64: PUSH1 0x20
00001f66: PUSH1 0x00
00001f68: KECCAK256
00001f69: ADD
00001f6a: SLOAD
00001f6b: SWAP1
00001f6c: POP
00001f6d: DUP1
00001f6e: DUP8
00001f6f: PUSH1 0x00
00001f71: ADD
00001f72: DUP5
00001f73: DUP2
00001f74: SLOAD
00001f75: DUP2
00001f76: LT
00001f77: PUSH2 0x1f82
00001f7a: JUMPI
00001f7b: PUSH2 0x1f82
00001f7e: PUSH2 0x3326
00001f81: JUMP
00001f82: JUMPDEST
00001f83: PUSH1 0x00
00001f85: SWAP2
00001f86: DUP3
00001f87: MSTORE
00001f88: PUSH1 0x20
00001f8a: DUP1
00001f8b: DUP4
00001f8c: KECCAK256
00001f8d: SWAP1
00001f8e: SWAP2
00001f8f: ADD
00001f90: SWAP3
00001f91: SWAP1
00001f92: SWAP3
00001f93: SSTORE
00001f94: SWAP2
00001f95: DUP3
00001f96: MSTORE
00001f97: PUSH1 0x01
00001f99: DUP9
00001f9a: ADD
00001f9b: SWAP1
00001f9c: MSTORE
00001f9d: PUSH1 0x40
00001f9f: SWAP1
00001fa0: KECCAK256
00001fa1: DUP4
00001fa2: SWAP1
00001fa3: SSTORE
00001fa4: JUMPDEST
00001fa5: DUP6
00001fa6: SLOAD
00001fa7: DUP7
00001fa8: SWAP1
00001fa9: DUP1
00001faa: PUSH2 0x1fb5
00001fad: JUMPI
00001fae: PUSH2 0x1fb5
00001fb1: PUSH2 0x341e
00001fb4: JUMP
00001fb5: JUMPDEST
00001fb6: PUSH1 0x01
00001fb8: SWAP1
00001fb9: SUB
00001fba: DUP2
00001fbb: DUP2
00001fbc: SWAP1
00001fbd: PUSH1 0x00
00001fbf: MSTORE
00001fc0: PUSH1 0x20
00001fc2: PUSH1 0x00
00001fc4: KECCAK256
00001fc5: ADD
00001fc6: PUSH1 0x00
00001fc8: SWAP1
00001fc9: SSTORE
00001fca: SWAP1
00001fcb: SSTORE
00001fcc: DUP6
00001fcd: PUSH1 0x01
00001fcf: ADD
00001fd0: PUSH1 0x00
00001fd2: DUP7
00001fd3: DUP2
00001fd4: MSTORE
00001fd5: PUSH1 0x20
00001fd7: ADD
00001fd8: SWAP1
00001fd9: DUP2
00001fda: MSTORE
00001fdb: PUSH1 0x20
00001fdd: ADD
00001fde: PUSH1 0x00
00001fe0: KECCAK256
00001fe1: PUSH1 0x00
00001fe3: SWAP1
00001fe4: SSTORE
00001fe5: PUSH1 0x01
00001fe7: SWAP4
00001fe8: POP
00001fe9: POP
00001fea: POP
00001feb: POP
00001fec: PUSH2 0x09f3
00001fef: JUMP
00001ff0: JUMPDEST
00001ff1: PUSH1 0x00
00001ff3: SWAP2
00001ff4: POP
00001ff5: POP
00001ff6: PUSH2 0x09f3
00001ff9: JUMP
00001ffa: JUMPDEST
00001ffb: PUSH1 0x60
00001ffd: PUSH1 0x00
00001fff: PUSH2 0x2007
00002002: DUP4
00002003: PUSH2 0x275e
00002006: JUMP
00002007: JUMPDEST
00002008: SWAP1
00002009: POP
0000200a: DUP1
0000200b: PUSH8 0xffffffffffffffff
00002014: DUP2
00002015: GT
00002016: ISZERO
00002017: PUSH2 0x2022
0000201a: JUMPI
0000201b: PUSH2 0x2022
0000201e: PUSH2 0x3397
00002021: JUMP
00002022: JUMPDEST
00002023: PUSH1 0x40
00002025: MLOAD
00002026: SWAP1
00002027: DUP1
00002028: DUP3
00002029: MSTORE
0000202a: DUP1
0000202b: PUSH1 0x20
0000202d: MUL
0000202e: PUSH1 0x20
00002030: ADD
00002031: DUP3
00002032: ADD
00002033: PUSH1 0x40
00002035: MSTORE
00002036: DUP1
00002037: ISZERO
00002038: PUSH2 0x204b
0000203b: JUMPI
0000203c: DUP2
0000203d: PUSH1 0x20
0000203f: ADD
00002040: PUSH1 0x20
00002042: DUP3
00002043: MUL
00002044: DUP1
00002045: CALLDATASIZE
00002046: DUP4
00002047: CALLDATACOPY
00002048: ADD
00002049: SWAP1
0000204a: POP
0000204b: JUMPDEST
0000204c: POP
0000204d: SWAP2
0000204e: POP
0000204f: PUSH1 0x00
00002051: JUMPDEST
00002052: DUP2
00002053: DUP2
00002054: LT
00002055: ISZERO
00002056: PUSH2 0x1814
00002059: JUMPI
0000205a: PUSH2 0x2063
0000205d: DUP5
0000205e: DUP3
0000205f: PUSH2 0x2769
00002062: JUMP
00002063: JUMPDEST
00002064: PUSH1 0x00
00002066: SHR
00002067: DUP4
00002068: DUP3
00002069: DUP2
0000206a: MLOAD
0000206b: DUP2
0000206c: LT
0000206d: PUSH2 0x2078
00002070: JUMPI
00002071: PUSH2 0x2078
00002074: PUSH2 0x3326
00002077: JUMP
00002078: JUMPDEST
00002079: PUSH1 0x20
0000207b: SWAP1
0000207c: DUP2
0000207d: MUL
0000207e: SWAP2
0000207f: SWAP1
00002080: SWAP2
00002081: ADD
00002082: ADD
00002083: MSTORE
00002084: PUSH1 0x01
00002086: ADD
00002087: PUSH2 0x2051
0000208a: JUMP
0000208b: JUMPDEST
0000208c: PUSH1 0x60
0000208e: PUSH2 0x20cf
00002091: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020a6: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000020c7: AND
000020c8: CALLER
000020c9: ADDRESS
000020ca: DUP6
000020cb: PUSH2 0x2775
000020ce: JUMP
000020cf: JUMPDEST
000020d0: POP
000020d1: POP
000020d2: PUSH1 0x40
000020d4: DUP1
000020d5: MLOAD
000020d6: PUSH1 0x20
000020d8: DUP2
000020d9: ADD
000020da: SWAP1
000020db: SWAP2
000020dc: MSTORE
000020dd: PUSH1 0x00
000020df: DUP2
000020e0: MSTORE
000020e1: SWAP1
000020e2: JUMP
000020e3: JUMPDEST
000020e4: PUSH1 0x00
000020e6: PUSH2 0x09f3
000020e9: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
0000210a: DUP4
0000210b: PUSH2 0x344d
0000210e: JUMP
0000210f: JUMPDEST
00002110: PUSH1 0x60
00002112: DUP4
00002113: DUP4
00002114: DUP4
00002115: PUSH1 0x40
00002117: MLOAD
00002118: PUSH1 0x20
0000211a: ADD
0000211b: PUSH2 0x2126
0000211e: SWAP4
0000211f: SWAP3
00002120: SWAP2
00002121: SWAP1
00002122: PUSH2 0x3464
00002125: JUMP
00002126: JUMPDEST
00002127: PUSH1 0x40
00002129: MLOAD
0000212a: PUSH1 0x20
0000212c: DUP2
0000212d: DUP4
0000212e: SUB
0000212f: SUB
00002130: DUP2
00002131: MSTORE
00002132: SWAP1
00002133: PUSH1 0x40
00002135: MSTORE
00002136: SWAP1
00002137: POP
00002138: SWAP4
00002139: SWAP3
0000213a: POP
0000213b: POP
0000213c: POP
0000213d: JUMP
0000213e: JUMPDEST
0000213f: PUSH1 0x00
00002141: DUP1
00002142: PUSH2 0x214a
00002145: DUP8
00002146: PUSH2 0x16ca
00002149: JUMP
0000214a: JUMPDEST
0000214b: SWAP1
0000214c: POP
0000214d: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239
0000216e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002183: AND
00002184: PUSH4 0x10b83dc0
00002189: DUP8
0000218a: DUP10
0000218b: DUP5
0000218c: DUP10
0000218d: DUP10
0000218e: DUP10
0000218f: PUSH1 0x40
00002191: MLOAD
00002192: DUP8
00002193: PUSH4 0xffffffff
00002198: AND
00002199: PUSH1 0xe0
0000219b: SHL
0000219c: DUP2
0000219d: MSTORE
0000219e: PUSH1 0x04
000021a0: ADD
000021a1: PUSH2 0x21ae
000021a4: SWAP6
000021a5: SWAP5
000021a6: SWAP4
000021a7: SWAP3
000021a8: SWAP2
000021a9: SWAP1
000021aa: PUSH2 0x3491
000021ad: JUMP
000021ae: JUMPDEST
000021af: PUSH1 0x20
000021b1: PUSH1 0x40
000021b3: MLOAD
000021b4: DUP1
000021b5: DUP4
000021b6: SUB
000021b7: DUP2
000021b8: DUP6
000021b9: DUP9
000021ba: GAS
000021bb: CALL
000021bc: ISZERO
000021bd: DUP1
000021be: ISZERO
000021bf: PUSH2 0x21cc
000021c2: JUMPI
000021c3: RETURNDATASIZE
000021c4: PUSH1 0x00
000021c6: DUP1
000021c7: RETURNDATACOPY
000021c8: RETURNDATASIZE
000021c9: PUSH1 0x00
000021cb: REVERT
000021cc: JUMPDEST
000021cd: POP
000021ce: POP
000021cf: POP
000021d0: POP
000021d1: POP
000021d2: PUSH1 0x40
000021d4: MLOAD
000021d5: RETURNDATASIZE
000021d6: PUSH1 0x1f
000021d8: NOT
000021d9: PUSH1 0x1f
000021db: DUP3
000021dc: ADD
000021dd: AND
000021de: DUP3
000021df: ADD
000021e0: DUP1
000021e1: PUSH1 0x40
000021e3: MSTORE
000021e4: POP
000021e5: DUP2
000021e6: ADD
000021e7: SWAP1
000021e8: PUSH2 0x0c30
000021eb: SWAP2
000021ec: SWAP1
000021ed: PUSH2 0x330d
000021f0: JUMP
000021f1: JUMPDEST
000021f2: PUSH1 0x00
000021f4: DUP3
000021f5: DUP2
000021f6: DUP4
000021f7: PUSH2 0x2201
000021fa: DUP3
000021fb: PUSH1 0x20
000021fd: PUSH2 0x34f1
00002200: JUMP
00002201: JUMPDEST
00002202: PUSH1 0xff
00002204: AND
00002205: SWAP3
00002206: PUSH2 0x2211
00002209: SWAP4
0000220a: SWAP3
0000220b: SWAP2
0000220c: SWAP1
0000220d: PUSH2 0x350a
00002210: JUMP
00002211: JUMPDEST
00002212: PUSH2 0x16b6
00002215: SWAP2
00002216: PUSH2 0x3534
00002219: JUMP
0000221a: JUMPDEST
0000221b: PUSH1 0x00
0000221d: DUP3
0000221e: PUSH1 0x20
00002220: DUP4
00002221: PUSH2 0x2201
00002224: DUP3
00002225: DUP1
00002226: PUSH2 0x34f1
00002229: JUMP
0000222a: JUMPDEST
0000222b: CALLDATASIZE
0000222c: PUSH1 0x00
0000222e: PUSH2 0x173c
00002231: DUP4
00002232: PUSH1 0x40
00002234: DUP2
00002235: DUP8
00002236: PUSH2 0x350a
00002239: JUMP
0000223a: JUMPDEST
0000223b: PUSH1 0x00
0000223d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002252: DUP3
00002253: GT
00002254: ISZERO
00002255: PUSH2 0x22df
00002258: JUMPI
00002259: PUSH1 0x40
0000225b: MLOAD
0000225c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000227d: DUP2
0000227e: MSTORE
0000227f: PUSH1 0x20
00002281: PUSH1 0x04
00002283: DUP3
00002284: ADD
00002285: MSTORE
00002286: PUSH1 0x24
00002288: DUP1
00002289: DUP3
0000228a: ADD
0000228b: MSTORE
0000228c: PUSH32 0x5479706543617374733a2062797465733332546f41646472657373206f766572
000022ad: PUSH1 0x44
000022af: DUP3
000022b0: ADD
000022b1: MSTORE
000022b2: PUSH32 0x666c6f7700000000000000000000000000000000000000000000000000000000
000022d3: PUSH1 0x64
000022d5: DUP3
000022d6: ADD
000022d7: MSTORE
000022d8: PUSH1 0x84
000022da: ADD
000022db: PUSH2 0x0946
000022de: JUMP
000022df: JUMPDEST
000022e0: POP
000022e1: SWAP1
000022e2: JUMP
000022e3: JUMPDEST
000022e4: PUSH1 0x00
000022e6: PUSH2 0x09f3
000022e9: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
0000230a: DUP4
0000230b: PUSH2 0x3570
0000230e: JUMP
0000230f: JUMPDEST
00002310: PUSH2 0x1066
00002313: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002328: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00002349: AND
0000234a: DUP6
0000234b: DUP6
0000234c: PUSH2 0x27d3
0000234f: JUMP
00002350: JUMPDEST
00002351: PUSH1 0x40
00002353: MLOAD
00002354: PUSH32 0x81b4e8b400000000000000000000000000000000000000000000000000000000
00002375: DUP2
00002376: MSTORE
00002377: PUSH4 0xffffffff
0000237c: DUP6
0000237d: AND
0000237e: PUSH1 0x04
00002380: DUP3
00002381: ADD
00002382: MSTORE
00002383: PUSH1 0x24
00002385: DUP2
00002386: ADD
00002387: DUP5
00002388: SWAP1
00002389: MSTORE
0000238a: PUSH1 0x44
0000238c: DUP2
0000238d: ADD
0000238e: DUP4
0000238f: SWAP1
00002390: MSTORE
00002391: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023a6: DUP3
000023a7: AND
000023a8: SWAP1
000023a9: PUSH4 0x81b4e8b4
000023ae: SWAP1
000023af: CALLVALUE
000023b0: SWAP1
000023b1: PUSH1 0x64
000023b3: ADD
000023b4: PUSH1 0x20
000023b6: PUSH1 0x40
000023b8: MLOAD
000023b9: DUP1
000023ba: DUP4
000023bb: SUB
000023bc: DUP2
000023bd: DUP6
000023be: DUP9
000023bf: GAS
000023c0: CALL
000023c1: ISZERO
000023c2: DUP1
000023c3: ISZERO
000023c4: PUSH2 0x23d1
000023c7: JUMPI
000023c8: RETURNDATASIZE
000023c9: PUSH1 0x00
000023cb: DUP1
000023cc: RETURNDATACOPY
000023cd: RETURNDATASIZE
000023ce: PUSH1 0x00
000023d0: REVERT
000023d1: JUMPDEST
000023d2: POP
000023d3: POP
000023d4: POP
000023d5: POP
000023d6: POP
000023d7: PUSH1 0x40
000023d9: MLOAD
000023da: RETURNDATASIZE
000023db: PUSH1 0x1f
000023dd: NOT
000023de: PUSH1 0x1f
000023e0: DUP3
000023e1: ADD
000023e2: AND
000023e3: DUP3
000023e4: ADD
000023e5: DUP1
000023e6: PUSH1 0x40
000023e8: MSTORE
000023e9: POP
000023ea: DUP2
000023eb: ADD
000023ec: SWAP1
000023ed: PUSH2 0x0da8
000023f0: SWAP2
000023f1: SWAP1
000023f2: PUSH2 0x330d
000023f5: JUMP
000023f6: JUMPDEST
000023f7: DUP1
000023f8: SLOAD
000023f9: PUSH1 0x00
000023fb: JUMPDEST
000023fc: DUP2
000023fd: DUP2
000023fe: LT
000023ff: ISZERO
00002400: PUSH2 0x2446
00002403: JUMPI
00002404: DUP3
00002405: PUSH1 0x01
00002407: ADD
00002408: PUSH1 0x00
0000240a: DUP5
0000240b: PUSH1 0x00
0000240d: ADD
0000240e: DUP4
0000240f: DUP2
00002410: SLOAD
00002411: DUP2
00002412: LT
00002413: PUSH2 0x241e
00002416: JUMPI
00002417: PUSH2 0x241e
0000241a: PUSH2 0x3326
0000241d: JUMP
0000241e: JUMPDEST
0000241f: SWAP1
00002420: PUSH1 0x00
00002422: MSTORE
00002423: PUSH1 0x20
00002425: PUSH1 0x00
00002427: KECCAK256
00002428: ADD
00002429: SLOAD
0000242a: DUP2
0000242b: MSTORE
0000242c: PUSH1 0x20
0000242e: ADD
0000242f: SWAP1
00002430: DUP2
00002431: MSTORE
00002432: PUSH1 0x20
00002434: ADD
00002435: PUSH1 0x00
00002437: KECCAK256
00002438: PUSH1 0x00
0000243a: SWAP1
0000243b: SSTORE
0000243c: DUP1
0000243d: PUSH1 0x01
0000243f: ADD
00002440: SWAP1
00002441: POP
00002442: PUSH2 0x23fb
00002445: JUMP
00002446: JUMPDEST
00002447: POP
00002448: POP
00002449: PUSH1 0x00
0000244b: SWAP1
0000244c: SSTORE
0000244d: JUMP
0000244e: JUMPDEST
0000244f: PUSH2 0x2462
00002452: PUSH1 0x97
00002454: PUSH4 0xffffffff
00002459: DUP1
0000245a: DUP5
0000245b: AND
0000245c: SWAP1
0000245d: PUSH2 0x2829
00002460: AND
00002461: JUMP
00002462: JUMPDEST
00002463: PUSH2 0x246b
00002466: DUP3
00002467: PUSH2 0x1e96
0000246a: JUMP
0000246b: JUMPDEST
0000246c: SWAP1
0000246d: PUSH2 0x0880
00002470: JUMPI
00002471: PUSH1 0x40
00002473: MLOAD
00002474: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002495: DUP2
00002496: MSTORE
00002497: PUSH1 0x04
00002499: ADD
0000249a: PUSH2 0x0946
0000249d: SWAP2
0000249e: SWAP1
0000249f: PUSH2 0x31c7
000024a2: JUMP
000024a3: JUMPDEST
000024a4: PUSH4 0xffffffff
000024a9: DUP2
000024aa: AND
000024ab: PUSH1 0x00
000024ad: SWAP1
000024ae: DUP2
000024af: MSTORE
000024b0: PUSH1 0xca
000024b2: PUSH1 0x20
000024b4: MSTORE
000024b5: PUSH1 0x40
000024b7: SWAP1
000024b8: KECCAK256
000024b9: SLOAD
000024ba: PUSH1 0x60
000024bc: SWAP1
000024bd: PUSH2 0x09f3
000024c0: SWAP1
000024c1: PUSH2 0x2835
000024c4: JUMP
000024c5: JUMPDEST
000024c6: PUSH1 0x00
000024c8: PUSH2 0x0a3b
000024cb: DUP5
000024cc: DUP5
000024cd: PUSH2 0x24d5
000024d0: DUP8
000024d1: PUSH2 0x24a3
000024d4: JUMP
000024d5: JUMPDEST
000024d6: DUP6
000024d7: PUSH2 0x2853
000024da: JUMP
000024db: JUMPDEST
000024dc: PUSH2 0x1066
000024df: DUP4
000024e0: DUP4
000024e1: DUP4
000024e2: PUSH2 0x2927
000024e5: JUMP
000024e6: JUMPDEST
000024e7: PUSH1 0x00
000024e9: SLOAD
000024ea: PUSH2 0x0100
000024ed: SWAP1
000024ee: DIV
000024ef: PUSH1 0xff
000024f1: AND
000024f2: PUSH2 0x257d
000024f5: JUMPI
000024f6: PUSH1 0x40
000024f8: MLOAD
000024f9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000251a: DUP2
0000251b: MSTORE
0000251c: PUSH1 0x20
0000251e: PUSH1 0x04
00002520: DUP3
00002521: ADD
00002522: MSTORE
00002523: PUSH1 0x2b
00002525: PUSH1 0x24
00002527: DUP3
00002528: ADD
00002529: MSTORE
0000252a: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
0000254b: PUSH1 0x44
0000254d: DUP3
0000254e: ADD
0000254f: MSTORE
00002550: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00002571: PUSH1 0x64
00002573: DUP3
00002574: ADD
00002575: MSTORE
00002576: PUSH1 0x84
00002578: ADD
00002579: PUSH2 0x0946
0000257c: JUMP
0000257d: JUMPDEST
0000257e: PUSH2 0x100f
00002581: PUSH2 0x2944
00002584: JUMP
00002585: JUMPDEST
00002586: PUSH1 0x00
00002588: PUSH2 0x25e7
0000258b: DUP3
0000258c: PUSH1 0x40
0000258e: MLOAD
0000258f: DUP1
00002590: PUSH1 0x40
00002592: ADD
00002593: PUSH1 0x40
00002595: MSTORE
00002596: DUP1
00002597: PUSH1 0x20
00002599: DUP2
0000259a: MSTORE
0000259b: PUSH1 0x20
0000259d: ADD
0000259e: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
000025bf: DUP2
000025c0: MSTORE
000025c1: POP
000025c2: DUP6
000025c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025d8: AND
000025d9: PUSH2 0x29e4
000025dc: SWAP1
000025dd: SWAP3
000025de: SWAP2
000025df: SWAP1
000025e0: PUSH4 0xffffffff
000025e5: AND
000025e6: JUMP
000025e7: JUMPDEST
000025e8: SWAP1
000025e9: POP
000025ea: DUP1
000025eb: MLOAD
000025ec: PUSH1 0x00
000025ee: EQ
000025ef: DUP1
000025f0: PUSH2 0x2608
000025f3: JUMPI
000025f4: POP
000025f5: DUP1
000025f6: DUP1
000025f7: PUSH1 0x20
000025f9: ADD
000025fa: SWAP1
000025fb: MLOAD
000025fc: DUP2
000025fd: ADD
000025fe: SWAP1
000025ff: PUSH2 0x2608
00002602: SWAP2
00002603: SWAP1
00002604: PUSH2 0x35ab
00002607: JUMP
00002608: JUMPDEST
00002609: PUSH2 0x0be4
0000260c: JUMPI
0000260d: PUSH1 0x40
0000260f: MLOAD
00002610: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002631: DUP2
00002632: MSTORE
00002633: PUSH1 0x20
00002635: PUSH1 0x04
00002637: DUP3
00002638: ADD
00002639: MSTORE
0000263a: PUSH1 0x2a
0000263c: PUSH1 0x24
0000263e: DUP3
0000263f: ADD
00002640: MSTORE
00002641: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00002662: PUSH1 0x44
00002664: DUP3
00002665: ADD
00002666: MSTORE
00002667: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000
00002688: PUSH1 0x64
0000268a: DUP3
0000268b: ADD
0000268c: MSTORE
0000268d: PUSH1 0x84
0000268f: ADD
00002690: PUSH2 0x0946
00002693: JUMP
00002694: JUMPDEST
00002695: PUSH1 0x60
00002697: PUSH1 0x00
00002699: PUSH2 0x26a1
0000269c: DUP4
0000269d: PUSH2 0x29f3
000026a0: JUMP
000026a1: JUMPDEST
000026a2: PUSH1 0x01
000026a4: ADD
000026a5: SWAP1
000026a6: POP
000026a7: PUSH1 0x00
000026a9: DUP2
000026aa: PUSH8 0xffffffffffffffff
000026b3: DUP2
000026b4: GT
000026b5: ISZERO
000026b6: PUSH2 0x26c1
000026b9: JUMPI
000026ba: PUSH2 0x26c1
000026bd: PUSH2 0x3397
000026c0: JUMP
000026c1: JUMPDEST
000026c2: PUSH1 0x40
000026c4: MLOAD
000026c5: SWAP1
000026c6: DUP1
000026c7: DUP3
000026c8: MSTORE
000026c9: DUP1
000026ca: PUSH1 0x1f
000026cc: ADD
000026cd: PUSH1 0x1f
000026cf: NOT
000026d0: AND
000026d1: PUSH1 0x20
000026d3: ADD
000026d4: DUP3
000026d5: ADD
000026d6: PUSH1 0x40
000026d8: MSTORE
000026d9: DUP1
000026da: ISZERO
000026db: PUSH2 0x26eb
000026de: JUMPI
000026df: PUSH1 0x20
000026e1: DUP3
000026e2: ADD
000026e3: DUP2
000026e4: DUP1
000026e5: CALLDATASIZE
000026e6: DUP4
000026e7: CALLDATACOPY
000026e8: ADD
000026e9: SWAP1
000026ea: POP
000026eb: JUMPDEST
000026ec: POP
000026ed: SWAP1
000026ee: POP
000026ef: DUP2
000026f0: DUP2
000026f1: ADD
000026f2: PUSH1 0x20
000026f4: ADD
000026f5: JUMPDEST
000026f6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002717: ADD
00002718: PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000
00002739: PUSH1 0x0a
0000273b: DUP7
0000273c: MOD
0000273d: BYTE
0000273e: DUP2
0000273f: MSTORE8
00002740: PUSH1 0x0a
00002742: DUP6
00002743: DIV
00002744: SWAP5
00002745: POP
00002746: DUP5
00002747: PUSH2 0x26f5
0000274a: JUMPI
0000274b: POP
0000274c: SWAP4
0000274d: SWAP3
0000274e: POP
0000274f: POP
00002750: POP
00002751: JUMP
00002752: JUMPDEST
00002753: PUSH1 0x00
00002755: PUSH2 0x16b6
00002758: DUP4
00002759: DUP4
0000275a: PUSH2 0x2ad5
0000275d: JUMP
0000275e: JUMPDEST
0000275f: PUSH1 0x00
00002761: PUSH2 0x09f3
00002764: DUP3
00002765: PUSH2 0x2aed
00002768: JUMP
00002769: JUMPDEST
0000276a: PUSH1 0x00
0000276c: PUSH2 0x16b6
0000276f: DUP4
00002770: DUP4
00002771: PUSH2 0x2af7
00002774: JUMP
00002775: JUMPDEST
00002776: PUSH1 0x40
00002778: MLOAD
00002779: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000278e: DUP1
0000278f: DUP6
00002790: AND
00002791: PUSH1 0x24
00002793: DUP4
00002794: ADD
00002795: MSTORE
00002796: DUP4
00002797: AND
00002798: PUSH1 0x44
0000279a: DUP3
0000279b: ADD
0000279c: MSTORE
0000279d: PUSH1 0x64
0000279f: DUP2
000027a0: ADD
000027a1: DUP3
000027a2: SWAP1
000027a3: MSTORE
000027a4: PUSH2 0x1066
000027a7: SWAP1
000027a8: DUP6
000027a9: SWAP1
000027aa: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
000027cb: SWAP1
000027cc: PUSH1 0x84
000027ce: ADD
000027cf: PUSH2 0x1d69
000027d2: JUMP
000027d3: JUMPDEST
000027d4: PUSH1 0x40
000027d6: MLOAD
000027d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027ec: DUP4
000027ed: AND
000027ee: PUSH1 0x24
000027f0: DUP3
000027f1: ADD
000027f2: MSTORE
000027f3: PUSH1 0x44
000027f5: DUP2
000027f6: ADD
000027f7: DUP3
000027f8: SWAP1
000027f9: MSTORE
000027fa: PUSH2 0x0be4
000027fd: SWAP1
000027fe: DUP5
000027ff: SWAP1
00002800: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00002821: SWAP1
00002822: PUSH1 0x64
00002824: ADD
00002825: PUSH2 0x1d69
00002828: JUMP
00002829: JUMPDEST
0000282a: PUSH1 0x00
0000282c: PUSH2 0x16b6
0000282f: DUP4
00002830: DUP4
00002831: PUSH2 0x2b21
00002834: JUMP
00002835: JUMPDEST
00002836: PUSH1 0x60
00002838: PUSH2 0x09f3
0000283b: PUSH1 0x00
0000283d: DUP4
0000283e: CALLER
0000283f: PUSH1 0x40
00002841: MLOAD
00002842: DUP1
00002843: PUSH1 0x20
00002845: ADD
00002846: PUSH1 0x40
00002848: MSTORE
00002849: DUP1
0000284a: PUSH1 0x00
0000284c: DUP2
0000284d: MSTORE
0000284e: POP
0000284f: PUSH2 0x2b3e
00002852: JUMP
00002853: JUMPDEST
00002854: PUSH1 0x00
00002856: DUP1
00002857: PUSH2 0x285f
0000285a: DUP7
0000285b: PUSH2 0x16ca
0000285e: JUMP
0000285f: JUMPDEST
00002860: PUSH1 0x40
00002862: MLOAD
00002863: PUSH32 0x81d2ea9500000000000000000000000000000000000000000000000000000000
00002884: DUP2
00002885: MSTORE
00002886: SWAP1
00002887: SWAP2
00002888: POP
00002889: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000289e: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239
000028bf: AND
000028c0: SWAP1
000028c1: PUSH4 0x81d2ea95
000028c6: SWAP1
000028c7: PUSH2 0x28dc
000028ca: SWAP1
000028cb: DUP10
000028cc: SWAP1
000028cd: DUP6
000028ce: SWAP1
000028cf: DUP11
000028d0: SWAP1
000028d1: DUP11
000028d2: SWAP1
000028d3: DUP11
000028d4: SWAP1
000028d5: PUSH1 0x04
000028d7: ADD
000028d8: PUSH2 0x3491
000028db: JUMP
000028dc: JUMPDEST
000028dd: PUSH1 0x20
000028df: PUSH1 0x40
000028e1: MLOAD
000028e2: DUP1
000028e3: DUP4
000028e4: SUB
000028e5: DUP2
000028e6: DUP7
000028e7: GAS
000028e8: STATICCALL
000028e9: ISZERO
000028ea: DUP1
000028eb: ISZERO
000028ec: PUSH2 0x28f9
000028ef: JUMPI
000028f0: RETURNDATASIZE
000028f1: PUSH1 0x00
000028f3: DUP1
000028f4: RETURNDATACOPY
000028f5: RETURNDATASIZE
000028f6: PUSH1 0x00
000028f8: REVERT
000028f9: JUMPDEST
000028fa: POP
000028fb: POP
000028fc: POP
000028fd: POP
000028fe: PUSH1 0x40
00002900: MLOAD
00002901: RETURNDATASIZE
00002902: PUSH1 0x1f
00002904: NOT
00002905: PUSH1 0x1f
00002907: DUP3
00002908: ADD
00002909: AND
0000290a: DUP3
0000290b: ADD
0000290c: DUP1
0000290d: PUSH1 0x40
0000290f: MSTORE
00002910: POP
00002911: DUP2
00002912: ADD
00002913: SWAP1
00002914: PUSH2 0x291d
00002917: SWAP2
00002918: SWAP1
00002919: PUSH2 0x330d
0000291c: JUMP
0000291d: JUMPDEST
0000291e: SWAP7
0000291f: SWAP6
00002920: POP
00002921: POP
00002922: POP
00002923: POP
00002924: POP
00002925: POP
00002926: JUMP
00002927: JUMPDEST
00002928: PUSH1 0x00
0000292a: DUP3
0000292b: DUP2
0000292c: MSTORE
0000292d: PUSH1 0x02
0000292f: DUP5
00002930: ADD
00002931: PUSH1 0x20
00002933: MSTORE
00002934: PUSH1 0x40
00002936: DUP2
00002937: KECCAK256
00002938: DUP3
00002939: SWAP1
0000293a: SSTORE
0000293b: PUSH2 0x0a3b
0000293e: DUP5
0000293f: DUP5
00002940: PUSH2 0x2b73
00002943: JUMP
00002944: JUMPDEST
00002945: PUSH1 0x00
00002947: SLOAD
00002948: PUSH2 0x0100
0000294b: SWAP1
0000294c: DIV
0000294d: PUSH1 0xff
0000294f: AND
00002950: PUSH2 0x29db
00002953: JUMPI
00002954: PUSH1 0x40
00002956: MLOAD
00002957: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002978: DUP2
00002979: MSTORE
0000297a: PUSH1 0x20
0000297c: PUSH1 0x04
0000297e: DUP3
0000297f: ADD
00002980: MSTORE
00002981: PUSH1 0x2b
00002983: PUSH1 0x24
00002985: DUP3
00002986: ADD
00002987: MSTORE
00002988: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
000029a9: PUSH1 0x44
000029ab: DUP3
000029ac: ADD
000029ad: MSTORE
000029ae: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
000029cf: PUSH1 0x64
000029d1: DUP3
000029d2: ADD
000029d3: MSTORE
000029d4: PUSH1 0x84
000029d6: ADD
000029d7: PUSH2 0x0946
000029da: JUMP
000029db: JUMPDEST
000029dc: PUSH2 0x100f
000029df: CALLER
000029e0: PUSH2 0x19ee
000029e3: JUMP
000029e4: JUMPDEST
000029e5: PUSH1 0x60
000029e7: PUSH2 0x0a3b
000029ea: DUP5
000029eb: DUP5
000029ec: PUSH1 0x00
000029ee: DUP6
000029ef: PUSH2 0x2b7f
000029f2: JUMP
000029f3: JUMPDEST
000029f4: PUSH1 0x00
000029f6: DUP1
000029f7: PUSH27 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000
00002a13: DUP4
00002a14: LT
00002a15: PUSH2 0x2a3c
00002a18: JUMPI
00002a19: PUSH27 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000
00002a35: DUP4
00002a36: DIV
00002a37: SWAP3
00002a38: POP
00002a39: PUSH1 0x40
00002a3b: ADD
00002a3c: JUMPDEST
00002a3d: PUSH14 0x04ee2d6d415b85acef8100000000
00002a4c: DUP4
00002a4d: LT
00002a4e: PUSH2 0x2a68
00002a51: JUMPI
00002a52: PUSH14 0x04ee2d6d415b85acef8100000000
00002a61: DUP4
00002a62: DIV
00002a63: SWAP3
00002a64: POP
00002a65: PUSH1 0x20
00002a67: ADD
00002a68: JUMPDEST
00002a69: PUSH7 0x2386f26fc10000
00002a71: DUP4
00002a72: LT
00002a73: PUSH2 0x2a86
00002a76: JUMPI
00002a77: PUSH7 0x2386f26fc10000
00002a7f: DUP4
00002a80: DIV
00002a81: SWAP3
00002a82: POP
00002a83: PUSH1 0x10
00002a85: ADD
00002a86: JUMPDEST
00002a87: PUSH4 0x05f5e100
00002a8c: DUP4
00002a8d: LT
00002a8e: PUSH2 0x2a9e
00002a91: JUMPI
00002a92: PUSH4 0x05f5e100
00002a97: DUP4
00002a98: DIV
00002a99: SWAP3
00002a9a: POP
00002a9b: PUSH1 0x08
00002a9d: ADD
00002a9e: JUMPDEST
00002a9f: PUSH2 0x2710
00002aa2: DUP4
00002aa3: LT
00002aa4: PUSH2 0x2ab2
00002aa7: JUMPI
00002aa8: PUSH2 0x2710
00002aab: DUP4
00002aac: DIV
00002aad: SWAP3
00002aae: POP
00002aaf: PUSH1 0x04
00002ab1: ADD
00002ab2: JUMPDEST
00002ab3: PUSH1 0x64
00002ab5: DUP4
00002ab6: LT
00002ab7: PUSH2 0x2ac4
00002aba: JUMPI
00002abb: PUSH1 0x64
00002abd: DUP4
00002abe: DIV
00002abf: SWAP3
00002ac0: POP
00002ac1: PUSH1 0x02
00002ac3: ADD
00002ac4: JUMPDEST
00002ac5: PUSH1 0x0a
00002ac7: DUP4
00002ac8: LT
00002ac9: PUSH2 0x09f3
00002acc: JUMPI
00002acd: PUSH1 0x01
00002acf: ADD
00002ad0: SWAP3
00002ad1: SWAP2
00002ad2: POP
00002ad3: POP
00002ad4: JUMP
00002ad5: JUMPDEST
00002ad6: PUSH1 0x00
00002ad8: DUP2
00002ad9: DUP2
00002ada: MSTORE
00002adb: PUSH1 0x01
00002add: DUP4
00002ade: ADD
00002adf: PUSH1 0x20
00002ae1: MSTORE
00002ae2: PUSH1 0x40
00002ae4: DUP2
00002ae5: KECCAK256
00002ae6: SLOAD
00002ae7: ISZERO
00002ae8: ISZERO
00002ae9: PUSH2 0x16b6
00002aec: JUMP
00002aed: JUMPDEST
00002aee: PUSH1 0x00
00002af0: PUSH2 0x09f3
00002af3: DUP3
00002af4: SLOAD
00002af5: SWAP1
00002af6: JUMP
00002af7: JUMPDEST
00002af8: PUSH1 0x00
00002afa: DUP3
00002afb: PUSH1 0x00
00002afd: ADD
00002afe: DUP3
00002aff: DUP2
00002b00: SLOAD
00002b01: DUP2
00002b02: LT
00002b03: PUSH2 0x2b0e
00002b06: JUMPI
00002b07: PUSH2 0x2b0e
00002b0a: PUSH2 0x3326
00002b0d: JUMP
00002b0e: JUMPDEST
00002b0f: SWAP1
00002b10: PUSH1 0x00
00002b12: MSTORE
00002b13: PUSH1 0x20
00002b15: PUSH1 0x00
00002b17: KECCAK256
00002b18: ADD
00002b19: SLOAD
00002b1a: SWAP1
00002b1b: POP
00002b1c: SWAP3
00002b1d: SWAP2
00002b1e: POP
00002b1f: POP
00002b20: JUMP
00002b21: JUMPDEST
00002b22: PUSH1 0x00
00002b24: DUP2
00002b25: DUP2
00002b26: MSTORE
00002b27: PUSH1 0x02
00002b29: DUP4
00002b2a: ADD
00002b2b: PUSH1 0x20
00002b2d: MSTORE
00002b2e: PUSH1 0x40
00002b30: DUP2
00002b31: KECCAK256
00002b32: DUP2
00002b33: SWAP1
00002b34: SSTORE
00002b35: PUSH2 0x16b6
00002b38: DUP4
00002b39: DUP4
00002b3a: PUSH2 0x2c8d
00002b3d: JUMP
00002b3e: JUMPDEST
00002b3f: PUSH1 0x60
00002b41: PUSH1 0x01
00002b43: DUP6
00002b44: DUP6
00002b45: DUP6
00002b46: DUP6
00002b47: PUSH1 0x40
00002b49: MLOAD
00002b4a: PUSH1 0x20
00002b4c: ADD
00002b4d: PUSH2 0x2b5a
00002b50: SWAP6
00002b51: SWAP5
00002b52: SWAP4
00002b53: SWAP3
00002b54: SWAP2
00002b55: SWAP1
00002b56: PUSH2 0x35cd
00002b59: JUMP
00002b5a: JUMPDEST
00002b5b: PUSH1 0x40
00002b5d: MLOAD
00002b5e: PUSH1 0x20
00002b60: DUP2
00002b61: DUP4
00002b62: SUB
00002b63: SUB
00002b64: DUP2
00002b65: MSTORE
00002b66: SWAP1
00002b67: PUSH1 0x40
00002b69: MSTORE
00002b6a: SWAP1
00002b6b: POP
00002b6c: SWAP5
00002b6d: SWAP4
00002b6e: POP
00002b6f: POP
00002b70: POP
00002b71: POP
00002b72: JUMP
00002b73: JUMPDEST
00002b74: PUSH1 0x00
00002b76: PUSH2 0x16b6
00002b79: DUP4
00002b7a: DUP4
00002b7b: PUSH2 0x1deb
00002b7e: JUMP
00002b7f: JUMPDEST
00002b80: PUSH1 0x60
00002b82: DUP3
00002b83: SELFBALANCE
00002b84: LT
00002b85: ISZERO
00002b86: PUSH2 0x2c11
00002b89: JUMPI
00002b8a: PUSH1 0x40
00002b8c: MLOAD
00002b8d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002bae: DUP2
00002baf: MSTORE
00002bb0: PUSH1 0x20
00002bb2: PUSH1 0x04
00002bb4: DUP3
00002bb5: ADD
00002bb6: MSTORE
00002bb7: PUSH1 0x26
00002bb9: PUSH1 0x24
00002bbb: DUP3
00002bbc: ADD
00002bbd: MSTORE
00002bbe: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
00002bdf: PUSH1 0x44
00002be1: DUP3
00002be2: ADD
00002be3: MSTORE
00002be4: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000
00002c05: PUSH1 0x64
00002c07: DUP3
00002c08: ADD
00002c09: MSTORE
00002c0a: PUSH1 0x84
00002c0c: ADD
00002c0d: PUSH2 0x0946
00002c10: JUMP
00002c11: JUMPDEST
00002c12: PUSH1 0x00
00002c14: DUP1
00002c15: DUP7
00002c16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c2b: AND
00002c2c: DUP6
00002c2d: DUP8
00002c2e: PUSH1 0x40
00002c30: MLOAD
00002c31: PUSH2 0x2c3a
00002c34: SWAP2
00002c35: SWAP1
00002c36: PUSH2 0x3652
00002c39: JUMP
00002c3a: JUMPDEST
00002c3b: PUSH1 0x00
00002c3d: PUSH1 0x40
00002c3f: MLOAD
00002c40: DUP1
00002c41: DUP4
00002c42: SUB
00002c43: DUP2
00002c44: DUP6
00002c45: DUP8
00002c46: GAS
00002c47: CALL
00002c48: SWAP3
00002c49: POP
00002c4a: POP
00002c4b: POP
00002c4c: RETURNDATASIZE
00002c4d: DUP1
00002c4e: PUSH1 0x00
00002c50: DUP2
00002c51: EQ
00002c52: PUSH2 0x2c77
00002c55: JUMPI
00002c56: PUSH1 0x40
00002c58: MLOAD
00002c59: SWAP2
00002c5a: POP
00002c5b: PUSH1 0x1f
00002c5d: NOT
00002c5e: PUSH1 0x3f
00002c60: RETURNDATASIZE
00002c61: ADD
00002c62: AND
00002c63: DUP3
00002c64: ADD
00002c65: PUSH1 0x40
00002c67: MSTORE
00002c68: RETURNDATASIZE
00002c69: DUP3
00002c6a: MSTORE
00002c6b: RETURNDATASIZE
00002c6c: PUSH1 0x00
00002c6e: PUSH1 0x20
00002c70: DUP5
00002c71: ADD
00002c72: RETURNDATACOPY
00002c73: PUSH2 0x2c7c
00002c76: JUMP
00002c77: JUMPDEST
00002c78: PUSH1 0x60
00002c7a: SWAP2
00002c7b: POP
00002c7c: JUMPDEST
00002c7d: POP
00002c7e: SWAP2
00002c7f: POP
00002c80: SWAP2
00002c81: POP
00002c82: PUSH2 0x0c30
00002c85: DUP8
00002c86: DUP4
00002c87: DUP4
00002c88: DUP8
00002c89: PUSH2 0x2c99
00002c8c: JUMP
00002c8d: JUMPDEST
00002c8e: PUSH1 0x00
00002c90: PUSH2 0x16b6
00002c93: DUP4
00002c94: DUP4
00002c95: PUSH2 0x1f07
00002c98: JUMP
00002c99: JUMPDEST
00002c9a: PUSH1 0x60
00002c9c: DUP4
00002c9d: ISZERO
00002c9e: PUSH2 0x2d2f
00002ca1: JUMPI
00002ca2: DUP3
00002ca3: MLOAD
00002ca4: PUSH1 0x00
00002ca6: SUB
00002ca7: PUSH2 0x2d28
00002caa: JUMPI
00002cab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002cc0: DUP6
00002cc1: AND
00002cc2: EXTCODESIZE
00002cc3: PUSH2 0x2d28
00002cc6: JUMPI
00002cc7: PUSH1 0x40
00002cc9: MLOAD
00002cca: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002ceb: DUP2
00002cec: MSTORE
00002ced: PUSH1 0x20
00002cef: PUSH1 0x04
00002cf1: DUP3
00002cf2: ADD
00002cf3: MSTORE
00002cf4: PUSH1 0x1d
00002cf6: PUSH1 0x24
00002cf8: DUP3
00002cf9: ADD
00002cfa: MSTORE
00002cfb: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00002d1c: PUSH1 0x44
00002d1e: DUP3
00002d1f: ADD
00002d20: MSTORE
00002d21: PUSH1 0x64
00002d23: ADD
00002d24: PUSH2 0x0946
00002d27: JUMP
00002d28: JUMPDEST
00002d29: POP
00002d2a: DUP2
00002d2b: PUSH2 0x0a3b
00002d2e: JUMP
00002d2f: JUMPDEST
00002d30: PUSH2 0x0a3b
00002d33: DUP4
00002d34: DUP4
00002d35: DUP2
00002d36: MLOAD
00002d37: ISZERO
00002d38: PUSH2 0x2d44
00002d3b: JUMPI
00002d3c: DUP2
00002d3d: MLOAD
00002d3e: DUP1
00002d3f: DUP4
00002d40: PUSH1 0x20
00002d42: ADD
00002d43: REVERT
00002d44: JUMPDEST
00002d45: DUP1
00002d46: PUSH1 0x40
00002d48: MLOAD
00002d49: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002d6a: DUP2
00002d6b: MSTORE
00002d6c: PUSH1 0x04
00002d6e: ADD
00002d6f: PUSH2 0x0946
00002d72: SWAP2
00002d73: SWAP1
00002d74: PUSH2 0x31c7
00002d77: JUMP
00002d78: JUMPDEST
00002d79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d8e: DUP2
00002d8f: AND
00002d90: DUP2
00002d91: EQ
00002d92: PUSH2 0x14b2
00002d95: JUMPI
00002d96: PUSH1 0x00
00002d98: DUP1
00002d99: REVERT
00002d9a: JUMPDEST
00002d9b: PUSH1 0x00
00002d9d: PUSH1 0x20
00002d9f: DUP3
00002da0: DUP5
00002da1: SUB
00002da2: SLT
00002da3: ISZERO
00002da4: PUSH2 0x2dac
00002da7: JUMPI
00002da8: PUSH1 0x00
00002daa: DUP1
00002dab: REVERT
00002dac: JUMPDEST
00002dad: DUP2
00002dae: CALLDATALOAD
00002daf: PUSH2 0x16b6
00002db2: DUP2
00002db3: PUSH2 0x2d78
00002db6: JUMP
00002db7: JUMPDEST
00002db8: DUP1
00002db9: CALLDATALOAD
00002dba: PUSH4 0xffffffff
00002dbf: DUP2
00002dc0: AND
00002dc1: DUP2
00002dc2: EQ
00002dc3: PUSH2 0x2dcb
00002dc6: JUMPI
00002dc7: PUSH1 0x00
00002dc9: DUP1
00002dca: REVERT
00002dcb: JUMPDEST
00002dcc: SWAP2
00002dcd: SWAP1
00002dce: POP
00002dcf: JUMP
00002dd0: JUMPDEST
00002dd1: PUSH1 0x00
00002dd3: PUSH1 0x20
00002dd5: DUP3
00002dd6: DUP5
00002dd7: SUB
00002dd8: SLT
00002dd9: ISZERO
00002dda: PUSH2 0x2de2
00002ddd: JUMPI
00002dde: PUSH1 0x00
00002de0: DUP1
00002de1: REVERT
00002de2: JUMPDEST
00002de3: PUSH2 0x16b6
00002de6: DUP3
00002de7: PUSH2 0x2db7
00002dea: JUMP
00002deb: JUMPDEST
00002dec: PUSH1 0x20
00002dee: DUP1
00002def: DUP3
00002df0: MSTORE
00002df1: DUP3
00002df2: MLOAD
00002df3: DUP3
00002df4: DUP3
00002df5: ADD
00002df6: DUP2
00002df7: SWAP1
00002df8: MSTORE
00002df9: PUSH1 0x00
00002dfb: SWAP2
00002dfc: SWAP1
00002dfd: DUP5
00002dfe: DUP3
00002dff: ADD
00002e00: SWAP1
00002e01: PUSH1 0x40
00002e03: DUP6
00002e04: ADD
00002e05: SWAP1
00002e06: DUP5
00002e07: JUMPDEST
00002e08: DUP2
00002e09: DUP2
00002e0a: LT
00002e0b: ISZERO
00002e0c: PUSH2 0x2e39
00002e0f: JUMPI
00002e10: DUP4
00002e11: MLOAD
00002e12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e27: AND
00002e28: DUP4
00002e29: MSTORE
00002e2a: SWAP3
00002e2b: DUP5
00002e2c: ADD
00002e2d: SWAP3
00002e2e: SWAP2
00002e2f: DUP5
00002e30: ADD
00002e31: SWAP2
00002e32: PUSH1 0x01
00002e34: ADD
00002e35: PUSH2 0x2e07
00002e38: JUMP
00002e39: JUMPDEST
00002e3a: POP
00002e3b: SWAP1
00002e3c: SWAP7
00002e3d: SWAP6
00002e3e: POP
00002e3f: POP
00002e40: POP
00002e41: POP
00002e42: POP
00002e43: POP
00002e44: JUMP
00002e45: JUMPDEST
00002e46: PUSH1 0x00
00002e48: DUP1
00002e49: PUSH1 0x40
00002e4b: DUP4
00002e4c: DUP6
00002e4d: SUB
00002e4e: SLT
00002e4f: ISZERO
00002e50: PUSH2 0x2e58
00002e53: JUMPI
00002e54: PUSH1 0x00
00002e56: DUP1
00002e57: REVERT
00002e58: JUMPDEST
00002e59: PUSH2 0x2e61
00002e5c: DUP4
00002e5d: PUSH2 0x2db7
00002e60: JUMP
00002e61: JUMPDEST
00002e62: SWAP5
00002e63: PUSH1 0x20
00002e65: SWAP4
00002e66: SWAP1
00002e67: SWAP4
00002e68: ADD
00002e69: CALLDATALOAD
00002e6a: SWAP4
00002e6b: POP
00002e6c: POP
00002e6d: POP
00002e6e: JUMP
00002e6f: JUMPDEST
00002e70: PUSH1 0x20
00002e72: DUP1
00002e73: DUP3
00002e74: MSTORE
00002e75: DUP3
00002e76: MLOAD
00002e77: DUP3
00002e78: DUP3
00002e79: ADD
00002e7a: DUP2
00002e7b: SWAP1
00002e7c: MSTORE
00002e7d: PUSH1 0x00
00002e7f: SWAP2
00002e80: SWAP1
00002e81: DUP5
00002e82: DUP3
00002e83: ADD
00002e84: SWAP1
00002e85: PUSH1 0x40
00002e87: DUP6
00002e88: ADD
00002e89: SWAP1
00002e8a: DUP5
00002e8b: JUMPDEST
00002e8c: DUP2
00002e8d: DUP2
00002e8e: LT
00002e8f: ISZERO
00002e90: PUSH2 0x2e39
00002e93: JUMPI
00002e94: DUP4
00002e95: MLOAD
00002e96: PUSH4 0xffffffff
00002e9b: AND
00002e9c: DUP4
00002e9d: MSTORE
00002e9e: SWAP3
00002e9f: DUP5
00002ea0: ADD
00002ea1: SWAP3
00002ea2: SWAP2
00002ea3: DUP5
00002ea4: ADD
00002ea5: SWAP2
00002ea6: PUSH1 0x01
00002ea8: ADD
00002ea9: PUSH2 0x2e8b
00002eac: JUMP
00002ead: JUMPDEST
00002eae: PUSH1 0x00
00002eb0: DUP1
00002eb1: PUSH1 0x40
00002eb3: DUP4
00002eb4: DUP6
00002eb5: SUB
00002eb6: SLT
00002eb7: ISZERO
00002eb8: PUSH2 0x2ec0
00002ebb: JUMPI
00002ebc: PUSH1 0x00
00002ebe: DUP1
00002ebf: REVERT
00002ec0: JUMPDEST
00002ec1: PUSH2 0x2ec9
00002ec4: DUP4
00002ec5: PUSH2 0x2db7
00002ec8: JUMP
00002ec9: JUMPDEST
00002eca: SWAP2
00002ecb: POP
00002ecc: PUSH1 0x20
00002ece: DUP4
00002ecf: ADD
00002ed0: CALLDATALOAD
00002ed1: PUSH2 0x2ed9
00002ed4: DUP2
00002ed5: PUSH2 0x2d78
00002ed8: JUMP
00002ed9: JUMPDEST
00002eda: DUP1
00002edb: SWAP2
00002edc: POP
00002edd: POP
00002ede: SWAP3
00002edf: POP
00002ee0: SWAP3
00002ee1: SWAP1
00002ee2: POP
00002ee3: JUMP
00002ee4: JUMPDEST
00002ee5: PUSH1 0x00
00002ee7: DUP1
00002ee8: DUP4
00002ee9: PUSH1 0x1f
00002eeb: DUP5
00002eec: ADD
00002eed: SLT
00002eee: PUSH2 0x2ef6
00002ef1: JUMPI
00002ef2: PUSH1 0x00
00002ef4: DUP1
00002ef5: REVERT
00002ef6: JUMPDEST
00002ef7: POP
00002ef8: DUP2
00002ef9: CALLDATALOAD
00002efa: PUSH8 0xffffffffffffffff
00002f03: DUP2
00002f04: GT
00002f05: ISZERO
00002f06: PUSH2 0x2f0e
00002f09: JUMPI
00002f0a: PUSH1 0x00
00002f0c: DUP1
00002f0d: REVERT
00002f0e: JUMPDEST
00002f0f: PUSH1 0x20
00002f11: DUP4
00002f12: ADD
00002f13: SWAP2
00002f14: POP
00002f15: DUP4
00002f16: PUSH1 0x20
00002f18: DUP3
00002f19: DUP6
00002f1a: ADD
00002f1b: ADD
00002f1c: GT
00002f1d: ISZERO
00002f1e: PUSH2 0x1741
00002f21: JUMPI
00002f22: PUSH1 0x00
00002f24: DUP1
00002f25: REVERT
00002f26: JUMPDEST
00002f27: PUSH1 0x00
00002f29: DUP1
00002f2a: PUSH1 0x00
00002f2c: DUP1
00002f2d: PUSH1 0x00
00002f2f: DUP1
00002f30: PUSH1 0xa0
00002f32: DUP8
00002f33: DUP10
00002f34: SUB
00002f35: SLT
00002f36: ISZERO
00002f37: PUSH2 0x2f3f
00002f3a: JUMPI
00002f3b: PUSH1 0x00
00002f3d: DUP1
00002f3e: REVERT
00002f3f: JUMPDEST
00002f40: PUSH2 0x2f48
00002f43: DUP8
00002f44: PUSH2 0x2db7
00002f47: JUMP
00002f48: JUMPDEST
00002f49: SWAP6
00002f4a: POP
00002f4b: PUSH1 0x20
00002f4d: DUP8
00002f4e: ADD
00002f4f: CALLDATALOAD
00002f50: SWAP5
00002f51: POP
00002f52: PUSH1 0x40
00002f54: DUP8
00002f55: ADD
00002f56: CALLDATALOAD
00002f57: SWAP4
00002f58: POP
00002f59: PUSH1 0x60
00002f5b: DUP8
00002f5c: ADD
00002f5d: CALLDATALOAD
00002f5e: PUSH8 0xffffffffffffffff
00002f67: DUP2
00002f68: GT
00002f69: ISZERO
00002f6a: PUSH2 0x2f72
00002f6d: JUMPI
00002f6e: PUSH1 0x00
00002f70: DUP1
00002f71: REVERT
00002f72: JUMPDEST
00002f73: PUSH2 0x2f7e
00002f76: DUP10
00002f77: DUP3
00002f78: DUP11
00002f79: ADD
00002f7a: PUSH2 0x2ee4
00002f7d: JUMP
00002f7e: JUMPDEST
00002f7f: SWAP1
00002f80: SWAP5
00002f81: POP
00002f82: SWAP3
00002f83: POP
00002f84: POP
00002f85: PUSH1 0x80
00002f87: DUP8
00002f88: ADD
00002f89: CALLDATALOAD
00002f8a: PUSH2 0x2f92
00002f8d: DUP2
00002f8e: PUSH2 0x2d78
00002f91: JUMP
00002f92: JUMPDEST
00002f93: DUP1
00002f94: SWAP2
00002f95: POP
00002f96: POP
00002f97: SWAP3
00002f98: SWAP6
00002f99: POP
00002f9a: SWAP3
00002f9b: SWAP6
00002f9c: POP
00002f9d: SWAP3
00002f9e: SWAP6
00002f9f: JUMP
00002fa0: JUMPDEST
00002fa1: PUSH1 0x00
00002fa3: DUP1
00002fa4: PUSH1 0x00
00002fa6: DUP1
00002fa7: PUSH1 0x60
00002fa9: DUP6
00002faa: DUP8
00002fab: SUB
00002fac: SLT
00002fad: ISZERO
00002fae: PUSH2 0x2fb6
00002fb1: JUMPI
00002fb2: PUSH1 0x00
00002fb4: DUP1
00002fb5: REVERT
00002fb6: JUMPDEST
00002fb7: PUSH2 0x2fbf
00002fba: DUP6
00002fbb: PUSH2 0x2db7
00002fbe: JUMP
00002fbf: JUMPDEST
00002fc0: SWAP4
00002fc1: POP
00002fc2: PUSH1 0x20
00002fc4: DUP6
00002fc5: ADD
00002fc6: CALLDATALOAD
00002fc7: SWAP3
00002fc8: POP
00002fc9: PUSH1 0x40
00002fcb: DUP6
00002fcc: ADD
00002fcd: CALLDATALOAD
00002fce: PUSH8 0xffffffffffffffff
00002fd7: DUP2
00002fd8: GT
00002fd9: ISZERO
00002fda: PUSH2 0x2fe2
00002fdd: JUMPI
00002fde: PUSH1 0x00
00002fe0: DUP1
00002fe1: REVERT
00002fe2: JUMPDEST
00002fe3: PUSH2 0x2fee
00002fe6: DUP8
00002fe7: DUP3
00002fe8: DUP9
00002fe9: ADD
00002fea: PUSH2 0x2ee4
00002fed: JUMP
00002fee: JUMPDEST
00002fef: SWAP6
00002ff0: SWAP9
00002ff1: SWAP5
00002ff2: SWAP8
00002ff3: POP
00002ff4: SWAP6
00002ff5: POP
00002ff6: POP
00002ff7: POP
00002ff8: POP
00002ff9: JUMP
00002ffa: JUMPDEST
00002ffb: PUSH1 0x00
00002ffd: DUP1
00002ffe: PUSH1 0x00
00003000: PUSH1 0x60
00003002: DUP5
00003003: DUP7
00003004: SUB
00003005: SLT
00003006: ISZERO
00003007: PUSH2 0x300f
0000300a: JUMPI
0000300b: PUSH1 0x00
0000300d: DUP1
0000300e: REVERT
0000300f: JUMPDEST
00003010: PUSH2 0x3018
00003013: DUP5
00003014: PUSH2 0x2db7
00003017: JUMP
00003018: JUMPDEST
00003019: SWAP3
0000301a: POP
0000301b: PUSH1 0x20
0000301d: DUP5
0000301e: ADD
0000301f: CALLDATALOAD
00003020: SWAP2
00003021: POP
00003022: PUSH1 0x40
00003024: DUP5
00003025: ADD
00003026: CALLDATALOAD
00003027: PUSH2 0x302f
0000302a: DUP2
0000302b: PUSH2 0x2d78
0000302e: JUMP
0000302f: JUMPDEST
00003030: DUP1
00003031: SWAP2
00003032: POP
00003033: POP
00003034: SWAP3
00003035: POP
00003036: SWAP3
00003037: POP
00003038: SWAP3
00003039: JUMP
0000303a: JUMPDEST
0000303b: PUSH1 0x00
0000303d: DUP1
0000303e: DUP4
0000303f: PUSH1 0x1f
00003041: DUP5
00003042: ADD
00003043: SLT
00003044: PUSH2 0x304c
00003047: JUMPI
00003048: PUSH1 0x00
0000304a: DUP1
0000304b: REVERT
0000304c: JUMPDEST
0000304d: POP
0000304e: DUP2
0000304f: CALLDATALOAD
00003050: PUSH8 0xffffffffffffffff
00003059: DUP2
0000305a: GT
0000305b: ISZERO
0000305c: PUSH2 0x3064
0000305f: JUMPI
00003060: PUSH1 0x00
00003062: DUP1
00003063: REVERT
00003064: JUMPDEST
00003065: PUSH1 0x20
00003067: DUP4
00003068: ADD
00003069: SWAP2
0000306a: POP
0000306b: DUP4
0000306c: PUSH1 0x20
0000306e: DUP3
0000306f: PUSH1 0x05
00003071: SHL
00003072: DUP6
00003073: ADD
00003074: ADD
00003075: GT
00003076: ISZERO
00003077: PUSH2 0x1741
0000307a: JUMPI
0000307b: PUSH1 0x00
0000307d: DUP1
0000307e: REVERT
0000307f: JUMPDEST
00003080: PUSH1 0x00
00003082: DUP1
00003083: PUSH1 0x20
00003085: DUP4
00003086: DUP6
00003087: SUB
00003088: SLT
00003089: ISZERO
0000308a: PUSH2 0x3092
0000308d: JUMPI
0000308e: PUSH1 0x00
00003090: DUP1
00003091: REVERT
00003092: JUMPDEST
00003093: DUP3
00003094: CALLDATALOAD
00003095: PUSH8 0xffffffffffffffff
0000309e: DUP2
0000309f: GT
000030a0: ISZERO
000030a1: PUSH2 0x30a9
000030a4: JUMPI
000030a5: PUSH1 0x00
000030a7: DUP1
000030a8: REVERT
000030a9: JUMPDEST
000030aa: PUSH2 0x30b5
000030ad: DUP6
000030ae: DUP3
000030af: DUP7
000030b0: ADD
000030b1: PUSH2 0x303a
000030b4: JUMP
000030b5: JUMPDEST
000030b6: SWAP1
000030b7: SWAP7
000030b8: SWAP1
000030b9: SWAP6
000030ba: POP
000030bb: SWAP4
000030bc: POP
000030bd: POP
000030be: POP
000030bf: POP
000030c0: JUMP
000030c1: JUMPDEST
000030c2: PUSH1 0x00
000030c4: DUP1
000030c5: PUSH1 0x00
000030c7: PUSH1 0x60
000030c9: DUP5
000030ca: DUP7
000030cb: SUB
000030cc: SLT
000030cd: ISZERO
000030ce: PUSH2 0x30d6
000030d1: JUMPI
000030d2: PUSH1 0x00
000030d4: DUP1
000030d5: REVERT
000030d6: JUMPDEST
000030d7: PUSH2 0x30df
000030da: DUP5
000030db: PUSH2 0x2db7
000030de: JUMP
000030df: JUMPDEST
000030e0: SWAP6
000030e1: PUSH1 0x20
000030e3: DUP6
000030e4: ADD
000030e5: CALLDATALOAD
000030e6: SWAP6
000030e7: POP
000030e8: PUSH1 0x40
000030ea: SWAP1
000030eb: SWAP5
000030ec: ADD
000030ed: CALLDATALOAD
000030ee: SWAP4
000030ef: SWAP3
000030f0: POP
000030f1: POP
000030f2: POP
000030f3: JUMP
000030f4: JUMPDEST
000030f5: PUSH1 0x20
000030f7: DUP1
000030f8: DUP3
000030f9: MSTORE
000030fa: DUP3
000030fb: MLOAD
000030fc: DUP3
000030fd: DUP3
000030fe: ADD
000030ff: DUP2
00003100: SWAP1
00003101: MSTORE
00003102: PUSH1 0x00
00003104: SWAP2
00003105: SWAP1
00003106: PUSH1 0x40
00003108: SWAP1
00003109: DUP2
0000310a: DUP6
0000310b: ADD
0000310c: SWAP1
0000310d: DUP7
0000310e: DUP5
0000310f: ADD
00003110: DUP6
00003111: JUMPDEST
00003112: DUP3
00003113: DUP2
00003114: LT
00003115: ISZERO
00003116: PUSH2 0x314c
00003119: JUMPI
0000311a: DUP2
0000311b: MLOAD
0000311c: DUP1
0000311d: MLOAD
0000311e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003133: AND
00003134: DUP6
00003135: MSTORE
00003136: DUP7
00003137: ADD
00003138: MLOAD
00003139: DUP7
0000313a: DUP6
0000313b: ADD
0000313c: MSTORE
0000313d: SWAP3
0000313e: DUP5
0000313f: ADD
00003140: SWAP3
00003141: SWAP1
00003142: DUP6
00003143: ADD
00003144: SWAP1
00003145: PUSH1 0x01
00003147: ADD
00003148: PUSH2 0x3111
0000314b: JUMP
0000314c: JUMPDEST
0000314d: POP
0000314e: SWAP2
0000314f: SWAP8
00003150: SWAP7
00003151: POP
00003152: POP
00003153: POP
00003154: POP
00003155: POP
00003156: POP
00003157: POP
00003158: JUMP
00003159: JUMPDEST
0000315a: PUSH1 0x00
0000315c: JUMPDEST
0000315d: DUP4
0000315e: DUP2
0000315f: LT
00003160: ISZERO
00003161: PUSH2 0x3174
00003164: JUMPI
00003165: DUP2
00003166: DUP2
00003167: ADD
00003168: MLOAD
00003169: DUP4
0000316a: DUP3
0000316b: ADD
0000316c: MSTORE
0000316d: PUSH1 0x20
0000316f: ADD
00003170: PUSH2 0x315c
00003173: JUMP
00003174: JUMPDEST
00003175: POP
00003176: POP
00003177: PUSH1 0x00
00003179: SWAP2
0000317a: ADD
0000317b: MSTORE
0000317c: JUMP
0000317d: JUMPDEST
0000317e: PUSH1 0x00
00003180: DUP2
00003181: MLOAD
00003182: DUP1
00003183: DUP5
00003184: MSTORE
00003185: PUSH2 0x3195
00003188: DUP2
00003189: PUSH1 0x20
0000318b: DUP7
0000318c: ADD
0000318d: PUSH1 0x20
0000318f: DUP7
00003190: ADD
00003191: PUSH2 0x3159
00003194: JUMP
00003195: JUMPDEST
00003196: PUSH1 0x1f
00003198: ADD
00003199: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000031ba: AND
000031bb: SWAP3
000031bc: SWAP1
000031bd: SWAP3
000031be: ADD
000031bf: PUSH1 0x20
000031c1: ADD
000031c2: SWAP3
000031c3: SWAP2
000031c4: POP
000031c5: POP
000031c6: JUMP
000031c7: JUMPDEST
000031c8: PUSH1 0x20
000031ca: DUP2
000031cb: MSTORE
000031cc: PUSH1 0x00
000031ce: PUSH2 0x16b6
000031d1: PUSH1 0x20
000031d3: DUP4
000031d4: ADD
000031d5: DUP5
000031d6: PUSH2 0x317d
000031d9: JUMP
000031da: JUMPDEST
000031db: PUSH1 0x00
000031dd: DUP1
000031de: PUSH1 0x20
000031e0: DUP4
000031e1: DUP6
000031e2: SUB
000031e3: SLT
000031e4: ISZERO
000031e5: PUSH2 0x31ed
000031e8: JUMPI
000031e9: PUSH1 0x00
000031eb: DUP1
000031ec: REVERT
000031ed: JUMPDEST
000031ee: DUP3
000031ef: CALLDATALOAD
000031f0: PUSH8 0xffffffffffffffff
000031f9: DUP1
000031fa: DUP3
000031fb: GT
000031fc: ISZERO
000031fd: PUSH2 0x3205
00003200: JUMPI
00003201: PUSH1 0x00
00003203: DUP1
00003204: REVERT
00003205: JUMPDEST
00003206: DUP2
00003207: DUP6
00003208: ADD
00003209: SWAP2
0000320a: POP
0000320b: DUP6
0000320c: PUSH1 0x1f
0000320e: DUP4
0000320f: ADD
00003210: SLT
00003211: PUSH2 0x3219
00003214: JUMPI
00003215: PUSH1 0x00
00003217: DUP1
00003218: REVERT
00003219: JUMPDEST
0000321a: DUP2
0000321b: CALLDATALOAD
0000321c: DUP2
0000321d: DUP2
0000321e: GT
0000321f: ISZERO
00003220: PUSH2 0x3228
00003223: JUMPI
00003224: PUSH1 0x00
00003226: DUP1
00003227: REVERT
00003228: JUMPDEST
00003229: DUP7
0000322a: PUSH1 0x20
0000322c: DUP3
0000322d: PUSH1 0x06
0000322f: SHL
00003230: DUP6
00003231: ADD
00003232: ADD
00003233: GT
00003234: ISZERO
00003235: PUSH2 0x323d
00003238: JUMPI
00003239: PUSH1 0x00
0000323b: DUP1
0000323c: REVERT
0000323d: JUMPDEST
0000323e: PUSH1 0x20
00003240: SWAP3
00003241: SWAP1
00003242: SWAP3
00003243: ADD
00003244: SWAP7
00003245: SWAP2
00003246: SWAP6
00003247: POP
00003248: SWAP1
00003249: SWAP4
0000324a: POP
0000324b: POP
0000324c: POP
0000324d: POP
0000324e: JUMP
0000324f: JUMPDEST
00003250: PUSH1 0x00
00003252: DUP1
00003253: PUSH1 0x00
00003255: PUSH1 0x60
00003257: DUP5
00003258: DUP7
00003259: SUB
0000325a: SLT
0000325b: ISZERO
0000325c: PUSH2 0x3264
0000325f: JUMPI
00003260: PUSH1 0x00
00003262: DUP1
00003263: REVERT
00003264: JUMPDEST
00003265: DUP4
00003266: CALLDATALOAD
00003267: PUSH2 0x326f
0000326a: DUP2
0000326b: PUSH2 0x2d78
0000326e: JUMP
0000326f: JUMPDEST
00003270: SWAP3
00003271: POP
00003272: PUSH1 0x20
00003274: DUP5
00003275: ADD
00003276: CALLDATALOAD
00003277: PUSH2 0x327f
0000327a: DUP2
0000327b: PUSH2 0x2d78
0000327e: JUMP
0000327f: JUMPDEST
00003280: SWAP2
00003281: POP
00003282: PUSH1 0x40
00003284: DUP5
00003285: ADD
00003286: CALLDATALOAD
00003287: PUSH2 0x302f
0000328a: DUP2
0000328b: PUSH2 0x2d78
0000328e: JUMP
0000328f: JUMPDEST
00003290: PUSH1 0x00
00003292: DUP1
00003293: PUSH1 0x00
00003295: DUP1
00003296: PUSH1 0x40
00003298: DUP6
00003299: DUP8
0000329a: SUB
0000329b: SLT
0000329c: ISZERO
0000329d: PUSH2 0x32a5
000032a0: JUMPI
000032a1: PUSH1 0x00
000032a3: DUP1
000032a4: REVERT
000032a5: JUMPDEST
000032a6: DUP5
000032a7: CALLDATALOAD
000032a8: PUSH8 0xffffffffffffffff
000032b1: DUP1
000032b2: DUP3
000032b3: GT
000032b4: ISZERO
000032b5: PUSH2 0x32bd
000032b8: JUMPI
000032b9: PUSH1 0x00
000032bb: DUP1
000032bc: REVERT
000032bd: JUMPDEST
000032be: PUSH2 0x32c9
000032c1: DUP9
000032c2: DUP4
000032c3: DUP10
000032c4: ADD
000032c5: PUSH2 0x303a
000032c8: JUMP
000032c9: JUMPDEST
000032ca: SWAP1
000032cb: SWAP7
000032cc: POP
000032cd: SWAP5
000032ce: POP
000032cf: PUSH1 0x20
000032d1: DUP8
000032d2: ADD
000032d3: CALLDATALOAD
000032d4: SWAP2
000032d5: POP
000032d6: DUP1
000032d7: DUP3
000032d8: GT
000032d9: ISZERO
000032da: PUSH2 0x32e2
000032dd: JUMPI
000032de: PUSH1 0x00
000032e0: DUP1
000032e1: REVERT
000032e2: JUMPDEST
000032e3: POP
000032e4: PUSH2 0x2fee
000032e7: DUP8
000032e8: DUP3
000032e9: DUP9
000032ea: ADD
000032eb: PUSH2 0x303a
000032ee: JUMP
000032ef: JUMPDEST
000032f0: PUSH1 0x00
000032f2: DUP1
000032f3: PUSH1 0x40
000032f5: DUP4
000032f6: DUP6
000032f7: SUB
000032f8: SLT
000032f9: ISZERO
000032fa: PUSH2 0x3302
000032fd: JUMPI
000032fe: PUSH1 0x00
00003300: DUP1
00003301: REVERT
00003302: JUMPDEST
00003303: DUP3
00003304: CALLDATALOAD
00003305: PUSH2 0x2ec9
00003308: DUP2
00003309: PUSH2 0x2d78
0000330c: JUMP
0000330d: JUMPDEST
0000330e: PUSH1 0x00
00003310: PUSH1 0x20
00003312: DUP3
00003313: DUP5
00003314: SUB
00003315: SLT
00003316: ISZERO
00003317: PUSH2 0x331f
0000331a: JUMPI
0000331b: PUSH1 0x00
0000331d: DUP1
0000331e: REVERT
0000331f: JUMPDEST
00003320: POP
00003321: MLOAD
00003322: SWAP2
00003323: SWAP1
00003324: POP
00003325: JUMP
00003326: JUMPDEST
00003327: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003348: PUSH1 0x00
0000334a: MSTORE
0000334b: PUSH1 0x32
0000334d: PUSH1 0x04
0000334f: MSTORE
00003350: PUSH1 0x24
00003352: PUSH1 0x00
00003354: REVERT
00003355: JUMPDEST
00003356: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003377: PUSH1 0x00
00003379: MSTORE
0000337a: PUSH1 0x11
0000337c: PUSH1 0x04
0000337e: MSTORE
0000337f: PUSH1 0x24
00003381: PUSH1 0x00
00003383: REVERT
00003384: JUMPDEST
00003385: DUP1
00003386: DUP3
00003387: ADD
00003388: DUP1
00003389: DUP3
0000338a: GT
0000338b: ISZERO
0000338c: PUSH2 0x09f3
0000338f: JUMPI
00003390: PUSH2 0x09f3
00003393: PUSH2 0x3355
00003396: JUMP
00003397: JUMPDEST
00003398: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000033b9: PUSH1 0x00
000033bb: MSTORE
000033bc: PUSH1 0x41
000033be: PUSH1 0x04
000033c0: MSTORE
000033c1: PUSH1 0x24
000033c3: PUSH1 0x00
000033c5: REVERT
000033c6: JUMPDEST
000033c7: PUSH32 0x4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000
000033e8: DUP2
000033e9: MSTORE
000033ea: PUSH1 0x00
000033ec: DUP3
000033ed: MLOAD
000033ee: PUSH2 0x33fe
000033f1: DUP2
000033f2: PUSH1 0x1f
000033f4: DUP6
000033f5: ADD
000033f6: PUSH1 0x20
000033f8: DUP8
000033f9: ADD
000033fa: PUSH2 0x3159
000033fd: JUMP
000033fe: JUMPDEST
000033ff: SWAP2
00003400: SWAP1
00003401: SWAP2
00003402: ADD
00003403: PUSH1 0x1f
00003405: ADD
00003406: SWAP3
00003407: SWAP2
00003408: POP
00003409: POP
0000340a: JUMP
0000340b: JUMPDEST
0000340c: DUP2
0000340d: DUP2
0000340e: SUB
0000340f: DUP2
00003410: DUP2
00003411: GT
00003412: ISZERO
00003413: PUSH2 0x09f3
00003416: JUMPI
00003417: PUSH2 0x09f3
0000341a: PUSH2 0x3355
0000341d: JUMP
0000341e: JUMPDEST
0000341f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003440: PUSH1 0x00
00003442: MSTORE
00003443: PUSH1 0x31
00003445: PUSH1 0x04
00003447: MSTORE
00003448: PUSH1 0x24
0000344a: PUSH1 0x00
0000344c: REVERT
0000344d: JUMPDEST
0000344e: DUP1
0000344f: DUP3
00003450: MUL
00003451: DUP2
00003452: ISZERO
00003453: DUP3
00003454: DUP3
00003455: DIV
00003456: DUP5
00003457: EQ
00003458: OR
00003459: PUSH2 0x09f3
0000345c: JUMPI
0000345d: PUSH2 0x09f3
00003460: PUSH2 0x3355
00003463: JUMP
00003464: JUMPDEST
00003465: DUP4
00003466: DUP2
00003467: MSTORE
00003468: DUP3
00003469: PUSH1 0x20
0000346b: DUP3
0000346c: ADD
0000346d: MSTORE
0000346e: PUSH1 0x00
00003470: DUP3
00003471: MLOAD
00003472: PUSH2 0x3482
00003475: DUP2
00003476: PUSH1 0x40
00003478: DUP6
00003479: ADD
0000347a: PUSH1 0x20
0000347c: DUP8
0000347d: ADD
0000347e: PUSH2 0x3159
00003481: JUMP
00003482: JUMPDEST
00003483: SWAP2
00003484: SWAP1
00003485: SWAP2
00003486: ADD
00003487: PUSH1 0x40
00003489: ADD
0000348a: SWAP5
0000348b: SWAP4
0000348c: POP
0000348d: POP
0000348e: POP
0000348f: POP
00003490: JUMP
00003491: JUMPDEST
00003492: PUSH4 0xffffffff
00003497: DUP7
00003498: AND
00003499: DUP2
0000349a: MSTORE
0000349b: DUP5
0000349c: PUSH1 0x20
0000349e: DUP3
0000349f: ADD
000034a0: MSTORE
000034a1: PUSH1 0xa0
000034a3: PUSH1 0x40
000034a5: DUP3
000034a6: ADD
000034a7: MSTORE
000034a8: PUSH1 0x00
000034aa: PUSH2 0x34b6
000034ad: PUSH1 0xa0
000034af: DUP4
000034b0: ADD
000034b1: DUP7
000034b2: PUSH2 0x317d
000034b5: JUMP
000034b6: JUMPDEST
000034b7: DUP3
000034b8: DUP2
000034b9: SUB
000034ba: PUSH1 0x60
000034bc: DUP5
000034bd: ADD
000034be: MSTORE
000034bf: PUSH2 0x34c8
000034c2: DUP2
000034c3: DUP7
000034c4: PUSH2 0x317d
000034c7: JUMP
000034c8: JUMPDEST
000034c9: SWAP2
000034ca: POP
000034cb: POP
000034cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034e1: DUP4
000034e2: AND
000034e3: PUSH1 0x80
000034e5: DUP4
000034e6: ADD
000034e7: MSTORE
000034e8: SWAP7
000034e9: SWAP6
000034ea: POP
000034eb: POP
000034ec: POP
000034ed: POP
000034ee: POP
000034ef: POP
000034f0: JUMP
000034f1: JUMPDEST
000034f2: PUSH1 0xff
000034f4: DUP2
000034f5: DUP2
000034f6: AND
000034f7: DUP4
000034f8: DUP3
000034f9: AND
000034fa: ADD
000034fb: SWAP1
000034fc: DUP2
000034fd: GT
000034fe: ISZERO
000034ff: PUSH2 0x09f3
00003502: JUMPI
00003503: PUSH2 0x09f3
00003506: PUSH2 0x3355
00003509: JUMP
0000350a: JUMPDEST
0000350b: PUSH1 0x00
0000350d: DUP1
0000350e: DUP6
0000350f: DUP6
00003510: GT
00003511: ISZERO
00003512: PUSH2 0x351a
00003515: JUMPI
00003516: PUSH1 0x00
00003518: DUP1
00003519: REVERT
0000351a: JUMPDEST
0000351b: DUP4
0000351c: DUP7
0000351d: GT
0000351e: ISZERO
0000351f: PUSH2 0x3527
00003522: JUMPI
00003523: PUSH1 0x00
00003525: DUP1
00003526: REVERT
00003527: JUMPDEST
00003528: POP
00003529: POP
0000352a: DUP3
0000352b: ADD
0000352c: SWAP4
0000352d: SWAP2
0000352e: SWAP1
0000352f: SWAP3
00003530: SUB
00003531: SWAP2
00003532: POP
00003533: JUMP
00003534: JUMPDEST
00003535: DUP1
00003536: CALLDATALOAD
00003537: PUSH1 0x20
00003539: DUP4
0000353a: LT
0000353b: ISZERO
0000353c: PUSH2 0x09f3
0000353f: JUMPI
00003540: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003561: PUSH1 0x20
00003563: DUP5
00003564: SWAP1
00003565: SUB
00003566: PUSH1 0x03
00003568: SHL
00003569: SHL
0000356a: AND
0000356b: SWAP3
0000356c: SWAP2
0000356d: POP
0000356e: POP
0000356f: JUMP
00003570: JUMPDEST
00003571: PUSH1 0x00
00003573: DUP3
00003574: PUSH2 0x35a6
00003577: JUMPI
00003578: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003599: PUSH1 0x00
0000359b: MSTORE
0000359c: PUSH1 0x12
0000359e: PUSH1 0x04
000035a0: MSTORE
000035a1: PUSH1 0x24
000035a3: PUSH1 0x00
000035a5: REVERT
000035a6: JUMPDEST
000035a7: POP
000035a8: DIV
000035a9: SWAP1
000035aa: JUMP
000035ab: JUMPDEST
000035ac: PUSH1 0x00
000035ae: PUSH1 0x20
000035b0: DUP3
000035b1: DUP5
000035b2: SUB
000035b3: SLT
000035b4: ISZERO
000035b5: PUSH2 0x35bd
000035b8: JUMPI
000035b9: PUSH1 0x00
000035bb: DUP1
000035bc: REVERT
000035bd: JUMPDEST
000035be: DUP2
000035bf: MLOAD
000035c0: DUP1
000035c1: ISZERO
000035c2: ISZERO
000035c3: DUP2
000035c4: EQ
000035c5: PUSH2 0x16b6
000035c8: JUMPI
000035c9: PUSH1 0x00
000035cb: DUP1
000035cc: REVERT
000035cd: JUMPDEST
000035ce: PUSH32 0xffff000000000000000000000000000000000000000000000000000000000000
000035ef: DUP7
000035f0: PUSH1 0xf0
000035f2: SHL
000035f3: AND
000035f4: DUP2
000035f5: MSTORE
000035f6: DUP5
000035f7: PUSH1 0x02
000035f9: DUP3
000035fa: ADD
000035fb: MSTORE
000035fc: DUP4
000035fd: PUSH1 0x22
000035ff: DUP3
00003600: ADD
00003601: MSTORE
00003602: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00003623: DUP4
00003624: PUSH1 0x60
00003626: SHL
00003627: AND
00003628: PUSH1 0x42
0000362a: DUP3
0000362b: ADD
0000362c: MSTORE
0000362d: PUSH1 0x00
0000362f: DUP3
00003630: MLOAD
00003631: PUSH2 0x3641
00003634: DUP2
00003635: PUSH1 0x56
00003637: DUP6
00003638: ADD
00003639: PUSH1 0x20
0000363b: DUP8
0000363c: ADD
0000363d: PUSH2 0x3159
00003640: JUMP
00003641: JUMPDEST
00003642: SWAP2
00003643: SWAP1
00003644: SWAP2
00003645: ADD
00003646: PUSH1 0x56
00003648: ADD
00003649: SWAP7
0000364a: SWAP6
0000364b: POP
0000364c: POP
0000364d: POP
0000364e: POP
0000364f: POP
00003650: POP
00003651: JUMP
00003652: JUMPDEST
00003653: PUSH1 0x00
00003655: DUP3
00003656: MLOAD
00003657: PUSH2 0x3664
0000365a: DUP2
0000365b: DUP5
0000365c: PUSH1 0x20
0000365e: DUP8
0000365f: ADD
00003660: PUSH2 0x3159
00003663: JUMP
00003664: JUMPDEST
00003665: SWAP2
00003666: SWAP1
00003667: SWAP2
00003668: ADD
00003669: SWAP3
0000366a: SWAP2
0000366b: POP
0000366c: POP
0000366d: JUMP
0000366e: INVALID
0000366f: LOG2
00003670: PUSH5 0x6970667358
00003676: UNKNOWN(0x22)
00003677: SLT
00003678: KECCAK256
00003679: PUSH20 0x57756c68e918a3fa13fb415ad67e3812ae810d16
0000368e: DUP14
0000368f: UNKNOWN(0xBA)
00003690: PUSH5 0x1a6c546d14
00003696: PUSH13 0x556564736f6c63430008160033

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability codex Unprotected initialize allows ownership takeover and collateral drain 90 no
view
evidence_json
{
    "evidence": "`initialize` is public with no access control and calls `_MailboxClient_initialize`, which transfers ownership to the supplied `_owner`. Once owner, `approveTokenForBridge` can grant unlimited allowance to any address, enabling a direct `transferFrom` drain.",
    "locations": [
        "contracts/contracts/token/HypERC20Collateral.sol:53",
        "contracts/contracts/client/MailboxClient.sol:109",
        "contracts/contracts/token/libs/MovableCollateralRouter.sol:91"
    ],
    "recommendation": "Require atomic initialization (pass init calldata to the proxy constructor) and/or add deployment-time safeguards (e.g., restrict `initialize` to a deployer-only address or call `_MailboxClient_initialize` in the constructor for non-proxy deployments). Disable initializers on the implementation if using proxies.",
    "exploit_scenario": "1) Contract is deployed but `initialize` is not called atomically (e.g., proxy deployed without init data or delayed setup). 2) Attacker calls `initialize(_hook, _ism, attacker)` to become owner. 3) As owner, attacker calls `approveTokenForBridge(wrappedToken, attackerEOA)` to grant themselves unlimited allowance. 4) Attacker calls `wrappedToken.transferFrom(address(HypERC20Collateral), attacker, balance)` to drain collateral. Profit: up to the full `wrappedToken` balance held by the router."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x53902b508d7b47713dfcf8188d58316394725c15f19f984f02f842ffc29dce0b
call_targets: 0x817c51688c57ba79954e3063807128d61264acbf
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x53902b508d7b47713dfcf8188d58316394725c15f19f984f02f842ffc29dce0b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x817c51688c57ba79954e3063807128d61264acbf"
    ],
    "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": "0xf51e181a",
            "selector": "0xf51e181a",
            "calldata_variants": [
                "0xf51e181a",
                "0xf51e181a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa57f157",
            "selector": "0xfa57f157",
            "calldata_variants": [
                "0xfa57f157",
                "0xfa57f1570000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbaca44c",
            "selector": "0xfbaca44c",
            "calldata_variants": [
                "0xfbaca44c",
                "0xfbaca44c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2ed8c53",
            "selector": "0xf2ed8c53",
            "calldata_variants": [
                "0xf2ed8c53",
                "0xf2ed8c530000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde523cf3",
            "selector": "0xde523cf3",
            "calldata_variants": [
                "0xde523cf3",
                "0xde523cf30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe9198bf9",
            "selector": "0xe9198bf9",
            "calldata_variants": [
                "0xe9198bf9",
                "0xe9198bf90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xefae508a",
            "selector": "0xefae508a",
            "calldata_variants": [
                "0xefae508a",
                "0xefae508a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8635,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9152,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 11335,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 3132,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x53902b508d7b47713dfcf8188d58316394725c15f19f984f02f842ffc29dce0b
call_targets: 0x817c51688c57ba79954e3063807128d61264acbf
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x53902b508d7b47713dfcf8188d58316394725c15f19f984f02f842ffc29dce0b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x817c51688c57ba79954e3063807128d61264acbf"
    ],
    "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": "0xf51e181a",
            "selector": "0xf51e181a",
            "calldata_variants": [
                "0xf51e181a",
                "0xf51e181a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa57f157",
            "selector": "0xfa57f157",
            "calldata_variants": [
                "0xfa57f157",
                "0xfa57f1570000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbaca44c",
            "selector": "0xfbaca44c",
            "calldata_variants": [
                "0xfbaca44c",
                "0xfbaca44c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2ed8c53",
            "selector": "0xf2ed8c53",
            "calldata_variants": [
                "0xf2ed8c53",
                "0xf2ed8c530000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde523cf3",
            "selector": "0xde523cf3",
            "calldata_variants": [
                "0xde523cf3",
                "0xde523cf30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe9198bf9",
            "selector": "0xe9198bf9",
            "calldata_variants": [
                "0xe9198bf9",
                "0xe9198bf90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xefae508a",
            "selector": "0xefae508a",
            "calldata_variants": [
                "0xefae508a",
                "0xefae508a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8635,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9152,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 11335,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 3132,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}