32c00cf5-d812-497b-98d4-d7d523f95e8a
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31373 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 111236 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 111237 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 111238 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 111239 | capability.graph | complete | 1 / 3 | 1 week ago |
| 111240 | detector.run | complete | 1 / 3 | 1 week ago |
| 111241 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1415578] OpenAI Codex v0.77.0 (research preview)
[codex:1415578] --------
[codex:1415578] workdir: /tmp/codex-multi-5_qc75em
[codex:1415578] model: gpt-5.2-codex
[codex:1415578] provider: openai
[codex:1415578] approval: never
[codex:1415578] sandbox: read-only
[codex:1415578] reasoning effort: xhigh
[codex:1415578] reasoning summaries: auto
[codex:1415578] session id: 019b80e8-411e-7591-b46d-2b03c1405e89
[codex:1415578] --------
[codex:1415578] user
[codex:1415578] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1415578]
[codex:1415578] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1415578]
[codex:1415578] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1415578] - Gas inefficiency, code quality, naming, or best practices
[codex:1415578] - Theoretical vulnerabilities without a clear extraction path
[codex:1415578] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1415578] - Front-running unless it enables theft beyond MEV
[codex:1415578] - DoS, griefing, or issues that don't result in attacker profit
[codex:1415578] - Missing events, view function issues, or informational findings
[codex:1415578]
[codex:1415578] HIGH-VALUE PATTERNS TO HUNT:
[codex:1415578] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1415578] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1415578] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1415578] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1415578] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1415578] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1415578] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1415578] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1415578] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1415578]
[codex:1415578] For each finding, you MUST provide:
[codex:1415578] 1. Exact file and line numbers of vulnerable code
[codex:1415578] 2. Step-by-step exploit transaction sequence
[codex:1415578] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1415578]
[codex:1415578] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1415578]
[codex:1415578] Output MUST be valid JSON matching the provided schema.
[codex:1415578] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1415578] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1415578] mcp startup: no servers
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Searching for AUDIT_BUNDLE**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc ls in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578] AUDIT_BUNDLE.txt
[codex:1415578] codex-output-schema.json
[codex:1415578] contracts
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1415578]
[codex:1415578] ================================================================================
[codex:1415578] FILE: contracts/contracts/PackageVersioned.sol
[codex:1415578] ================================================================================
[codex:1415578] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1415578] pragma solidity >=0.6.11;
[codex:1415578]
[codex:1415578] /**
[codex:1415578] * @title PackageVersioned
[codex:1415578] * @notice Package version getter for contracts
[codex:1415578] **/
[codex:1415578] abstract contract PackageVersioned {
[codex:1415578] // GENERATED CODE - DO NOT EDIT
[codex:1415578] string public constant PACKAGE_VERSION = "9.0.6";
[codex:1415578] }
[codex:1415578]
[codex:1415578] ================================================================================
[codex:1415578] FILE: contracts/contracts/client/GasRouter.sol
[codex:1415578] ================================================================================
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Scanning bundle for exploits**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578]
[codex:1415578] constructor(address _mailbox) onlyContract(_mailbox) {
[codex:1415578] mailbox = IMailbox(_mailbox);
[codex:1415578] localDomain = mailbox.localDomain();
[codex:1415578] _transferOwnership(msg.sender);
[codex:1415578] }
[codex:1415578]
[codex:1415578] function interchainSecurityModule()
[codex:1415578] external
[codex:1415578] view
[codex:1415578] virtual
[codex:1415578] returns (IInterchainSecurityModule)
[codex:1415578] {
[codex:1415578] return _interchainSecurityModule;
[codex:1415578] }
[codex:1415578]
[codex:1415578] /**
[codex:1415578] * @notice Sets the address of the application's custom hook.
[codex:1415578] * @param _hook The address of the hook contract.
[codex:1415578] */
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578] */
[codex:1415578] function _isRemoteRouter(
[codex:1415578] uint32 _domain,
[codex:1415578] bytes32 _address
[codex:1415578] ) internal view returns (bool) {
[codex:1415578] return routers(_domain) == _address;
[codex:1415578] }
[codex:1415578]
[codex:1415578] /**
[codex:1415578] * @notice Assert that the given domain has an Application Router registered and return its address
[codex:1415578] * @param _domain The domain of the chain for which to get the Application Router
[codex:1415578] * @return _router The address of the remote Application Router on _domain
[codex:1415578] */
[codex:1415578] function _mustHaveRemoteRouter(
[codex:1415578] uint32 _domain
[codex:1415578] ) internal view returns (bytes32) {
[codex:1415578] (bool contained, bytes32 _router) = _routers.tryGet(_domain);
[codex:1415578] if (contained) {
[codex:1415578] return _router;
[codex:1415578] }
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Continuing contract search**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578] * @param messageId The unique message identifier
[codex:1415578] */
[codex:1415578] event ProcessId(bytes32 indexed messageId);
[codex:1415578]
[codex:1415578] /**
[codex:1415578] * @notice Emitted when a Hyperlane message is delivered
[codex:1415578] * @param origin The origin domain of the message
[codex:1415578] * @param sender The message sender address on `origin`
[codex:1415578] * @param recipient The address that handled the message
[codex:1415578] */
[codex:1415578] event Process(
[codex:1415578] uint32 indexed origin,
[codex:1415578] bytes32 indexed sender,
[codex:1415578] address indexed recipient
[codex:1415578] );
[codex:1415578]
[codex:1415578] function localDomain() external view returns (uint32);
[codex:1415578]
[codex:1415578] function delivered(bytes32 messageId) external view returns (bool);
[codex:1415578]
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Continuing exploration**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578]
[codex:1415578] /**
[codex:1415578] * @notice Returns the message sender as address.
[codex:1415578] * @param _message ABI encoded Hyperlane message.
[codex:1415578] * @return Sender of `_message` as address
[codex:1415578] */
[codex:1415578] function senderAddress(
[codex:1415578] bytes calldata _message
[codex:1415578] ) internal pure returns (address) {
[codex:1415578] return sender(_message).bytes32ToAddress();
[codex:1415578] }
[codex:1415578]
[codex:1415578] /**
[codex:1415578] * @notice Returns the message destination domain.
[codex:1415578] * @param _message ABI encoded Hyperlane message.
[codex:1415578] * @return Destination domain of `_message`
[codex:1415578] */
[codex:1415578] function destination(
[codex:1415578] bytes calldata _message
[codex:1415578] ) internal pure returns (uint32) {
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '1600,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 6ms:
[codex:1415578] function rebalance(
[codex:1415578] uint32 domain,
[codex:1415578] uint256 amount,
[codex:1415578] ValueTransferBridge bridge
[codex:1415578] ) external payable onlyRebalancer onlyAllowedBridge(domain, bridge) {
[codex:1415578] address rebalancer = _msgSender();
[codex:1415578]
[codex:1415578] bytes32 recipient = allowedRecipient[domain];
[codex:1415578] if (recipient == bytes32(0)) {
[codex:1415578] recipient = _mustHaveRemoteRouter(domain);
[codex:1415578] }
[codex:1415578]
[codex:1415578] _rebalance(domain, recipient, amount, bridge);
[codex:1415578] emit CollateralMoved({
[codex:1415578] domain: domain,
[codex:1415578] recipient: recipient,
[codex:1415578] amount: amount,
[codex:1415578] rebalancer: rebalancer
[codex:1415578] });
[codex:1415578] }
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Continuing to process remaining tokens**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc "sed -n '2000,2400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578]
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Analyzing potential exploits and vulnerabilities**
[codex:1415578]
[codex:1415578] I'm carefully tracing through HypNative and TokenRouter logic to find any exploit paths for profit. I'm examining fund handling, reentrancy risks, access controls, initializer misuse, and cross-chain funds dispatch. I'm particularly focused on uninitialized contract ownership that could let an attacker gain control and drain collateral via rebalance with a malicious bridge. Next, I'll check contract files for exact locations to link findings to line numbers.
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'rg -n "function initialize" -n contracts/contracts -S' in /tmp/codex-multi-5_qc75em succeeded in 13ms:
[codex:1415578] contracts/contracts/token/HypNative.sol:39: function initialize(
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'nl -ba contracts/contracts/token/HypNative.sol' in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578] 1 // SPDX-License-Identifier: Apache-2.0
[codex:1415578] 2 pragma solidity >=0.8.0;
[codex:1415578] 3
[codex:1415578] 4 import {TokenRouter} from "./libs/TokenRouter.sol";
[codex:1415578] 5 import {FungibleTokenRouter} from "./libs/FungibleTokenRouter.sol";
[codex:1415578] 6 import {MovableCollateralRouter} from "./libs/MovableCollateralRouter.sol";
[codex:1415578] 7 import {ValueTransferBridge} from "./interfaces/ValueTransferBridge.sol";
[codex:1415578] 8 import {Quote} from "../interfaces/ITokenBridge.sol";
[codex:1415578] 9
[codex:1415578] 10 import {Address} from "@openzeppelin/contracts/utils/Address.sol";
[codex:1415578] 11
[codex:1415578] 12 /**
[codex:1415578] 13 * @title Hyperlane Native Token Router that extends ERC20 with remote transfer functionality.
[codex:1415578] 14 * @author Abacus Works
[codex:1415578] 15 * @dev Supply on each chain is not constant but the aggregate supply across all chains is.
[codex:1415578] 16 */
[codex:1415578] 17 contract HypNative is MovableCollateralRouter {
[codex:1415578] 18 string internal constant INSUFFICIENT_NATIVE_AMOUNT =
[codex:1415578] 19 "Native: amount exceeds msg.value";
[codex:1415578] 20
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Preparing to gather line numbers**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'nl -ba contracts/contracts/client/MailboxClient.sol' in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578] 1 // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1415578] 2 pragma solidity >=0.6.11;
[codex:1415578] 3
[codex:1415578] 4 /*@@@@@@@ @@@@@@@@@
[codex:1415578] 5 @@@@@@@@@ @@@@@@@@@
[codex:1415578] 6 @@@@@@@@@ @@@@@@@@@
[codex:1415578] 7 @@@@@@@@@ @@@@@@@@@
[codex:1415578] 8 @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1415578] 9 @@@@@ HYPERLANE @@@@@@@
[codex:1415578] 10 @@@@@@@@@@@@@@@@@@@@@@@@@
[codex:1415578] 11 @@@@@@@@@ @@@@@@@@@
[codex:1415578] 12 @@@@@@@@@ @@@@@@@@@
[codex:1415578] 13 @@@@@@@@@ @@@@@@@@@
[codex:1415578] 14 @@@@@@@@@ @@@@@@@@*/
[codex:1415578] 15
[codex:1415578] 16 // ============ Internal Imports ============
[codex:1415578] 17 import {IMailbox} from "../interfaces/IMailbox.sol";
[codex:1415578] 18 import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
[codex:1415578] 19 import {IInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol";
[codex:1415578] 20 import {Message} from "../libs/Message.sol";
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Identifying needed MovableCollateralRouter lines**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'nl -ba contracts/contracts/token/libs/MovableCollateralRouter.sol' in /tmp/codex-multi-5_qc75em succeeded in 7ms:
[codex:1415578] 1 // SPDX-License-Identifier: Apache-2.0
[codex:1415578] 2 pragma solidity >=0.8.0;
[codex:1415578] 3
[codex:1415578] 4 import {Router} from "../../client/Router.sol";
[codex:1415578] 5 import {FungibleTokenRouter} from "./FungibleTokenRouter.sol";
[codex:1415578] 6 import {ValueTransferBridge} from "../interfaces/ValueTransferBridge.sol";
[codex:1415578] 7 import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
[codex:1415578] 8
[codex:1415578] 9 import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1415578] 10 import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1415578] 11
[codex:1415578] 12 abstract contract MovableCollateralRouter is FungibleTokenRouter {
[codex:1415578] 13 using SafeERC20 for IERC20;
[codex:1415578] 14 using EnumerableSet for EnumerableSet.AddressSet;
[codex:1415578] 15
[codex:1415578] 16 /// @notice Mapping of domain to allowed rebalance recipient.
[codex:1415578] 17 /// @dev Keys constrained to a subset of Router.domains()
[codex:1415578] 18 mapping(uint32 routerDomain => bytes32 recipient) public allowedRecipient;
[codex:1415578] 19
[codex:1415578] 20 /// @notice Mapping of domain to allowed rebalance bridges.
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Analyzing uninitialized ownership exploit**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'rg -n "initializer" contracts/contracts -S' in /tmp/codex-multi-5_qc75em succeeded in 14ms:
[codex:1415578] contracts/contracts/token/HypNative.sol:43: ) public virtual initializer {
[codex:1415578] contracts/contracts/client/MailboxClient.sol:108: // ======== Initializer =========
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Analyzing contract initialization and ownership controls**
[codex:1415578] exec
[codex:1415578] /bin/bash -lc 'nl -ba contracts/contracts/client/Router.sol' in /tmp/codex-multi-5_qc75em succeeded in 5ms:
[codex:1415578] 1 // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1415578] 2 pragma solidity >=0.6.11;
[codex:1415578] 3
[codex:1415578] 4 // ============ Internal Imports ============
[codex:1415578] 5 import {IMessageRecipient} from "../interfaces/IMessageRecipient.sol";
[codex:1415578] 6 import {IPostDispatchHook} from "../interfaces/hooks/IPostDispatchHook.sol";
[codex:1415578] 7 import {MailboxClient} from "./MailboxClient.sol";
[codex:1415578] 8 import {EnumerableMapExtended} from "../libs/EnumerableMapExtended.sol";
[codex:1415578] 9
[codex:1415578] 10 // ============ External Imports ============
[codex:1415578] 11 import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";
[codex:1415578] 12
[codex:1415578] 13 abstract contract Router is MailboxClient, IMessageRecipient {
[codex:1415578] 14 using EnumerableMapExtended for EnumerableMapExtended.UintToBytes32Map;
[codex:1415578] 15 using Strings for uint32;
[codex:1415578] 16
[codex:1415578] 17 // ============ Mutable Storage ============
[codex:1415578] 18 /// @dev Mapping of domain => router. For a given domain we have one router we send/receive messages from.
[codex:1415578] 19 EnumerableMapExtended.UintToBytes32Map internal _routers;
[codex:1415578] 20
[codex:1415578]
[codex:1415578]
[codex:1415578] thinking
[codex:1415578] **Identifying concrete uninitialized exploit**
[codex:1415578] thinking
[codex:1415578] **Preparing final JSON report**
[codex:1415578] codex
[codex:1415578] {"no_findings":false,"summary":"Found a concrete takeover path: `HypNative.initialize` is publicly callable and can be used to seize ownership if not yet initialized, then whitelist a malicious bridge/rebalancer and drain all native collateral.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initializer enables ownership takeover and collateral drain via rebalance","exploit_scenario":"1) Find a deployed `HypNative` instance where `initialize()` has not been called yet. 2) Call `initialize(address(0), address(0), attacker)`; `onlyContractOrNull` allows zero addresses and `_MailboxClient_initialize` sets the owner to the attacker-provided `_owner`. 3) As owner, call `enrollRemoteRouter` to register any domain, then `addBridge(domain, maliciousBridge)` and `addRebalancer(attacker)` to whitelist attacker-controlled bridge and self. 4) Call `rebalance(domain, amount, maliciousBridge)` with `amount` equal to the contract’s ETH balance (and `msg.value = 0`). `HypNative._rebalance` sends `amount` ETH to `maliciousBridge`, which can simply keep the funds. 5) Repeat until the contract balance is drained.","recommendation":"Disable initializers in the constructor (`_disableInitializers()`), or remove `initialize` entirely for non-proxy deployments. If initialization is required, restrict it (e.g., onlyOwner) and ensure deployment tooling calls it atomically before any third party can interact.","evidence":"`HypNative.initialize` is public `initializer` and calls `_MailboxClient_initialize`, which sets ownership to the caller-provided `_owner`; ownership then allows adding bridges/rebalancers and calling `rebalance`, which forwards ETH to the chosen bridge.","locations":["contracts/contracts/token/HypNative.sol:39","contracts/contracts/client/MailboxClient.sol:109","contracts/contracts/client/MailboxClient.sol:117","contracts/contracts/client/Router.sol:54","contracts/contracts/token/libs/MovableCollateralRouter.sol:69","contracts/contracts/token/libs/MovableCollateralRouter.sol:98","contracts/contracts/token/libs/MovableCollateralRouter.sol:114","contracts/contracts/token/HypNative.sol:119"]}]}
[codex:1415578] tokens used
[codex:1415578] 33,847
[codex:1415578] {"no_findings":false,"summary":"Found a concrete takeover path: `HypNative.initialize` is publicly callable and can be used to seize ownership if not yet initialized, then whitelist a malicious bridge/rebalancer and drain all native collateral.","findings":[{"severity":"critical","category":"upgradeability","title":"Unprotected initializer enables ownership takeover and collateral drain via rebalance","exploit_scenario":"1) Find a deployed `HypNative` instance where `initialize()` has not been called yet. 2) Call `initialize(address(0), address(0), attacker)`; `onlyContractOrNull` allows zero addresses and `_MailboxClient_initialize` sets the owner to the attacker-provided `_owner`. 3) As owner, call `enrollRemoteRouter` to register any domain, then `addBridge(domain, maliciousBridge)` and `addRebalancer(attacker)` to whitelist attacker-controlled bridge and self. 4) Call `rebalance(domain, amount, maliciousBridge)` with `amount` equal to the contract’s ETH balance (and `msg.value = 0`). `HypNative._rebalance` sends `amount` ETH to `maliciousBridge`, which can simply keep the funds. 5) Repeat until the contract balance is drained.","recommendation":"Disable initializers in the constructor (`_disableInitializers()`), or remove `initialize` entirely for non-proxy deployments. If initialization is required, restrict it (e.g., onlyOwner) and ensure deployment tooling calls it atomically before any third party can interact.","evidence":"`HypNative.initialize` is public `initializer` and calls `_MailboxClient_initialize`, which sets ownership to the caller-provided `_owner`; ownership then allows adding bridges/rebalancers and calling `rebalance`, which forwards ETH to the chosen bridge.","locations":["contracts/contracts/token/HypNative.sol:39","contracts/contracts/client/MailboxClient.sol:109","contracts/contracts/client/MailboxClient.sol:117","contracts/contracts/client/Router.sol:54","contracts/contracts/token/libs/MovableCollateralRouter.sol:69","contracts/contracts/token/libs/MovableCollateralRouter.sol:98","contracts/contracts/token/libs/MovableCollateralRouter.sol:114","contracts/contracts/token/HypNative.sol:119"]}]}
{
"codex": {
"ran_at": "2026-01-02T22:54:13.044809+00:00",
"returncode": 0
},
"summary": "Found a concrete takeover path: `HypNative.initialize` is publicly callable and can be used to seize ownership if not yet initialized, then whitelist a malicious bridge/rebalancer and drain all native collateral.",
"raw_final": {
"summary": "Found a concrete takeover path: `HypNative.initialize` is publicly callable and can be used to seize ownership if not yet initialized, then whitelist a malicious bridge/rebalancer and drain all native collateral.",
"findings": [
{
"title": "Unprotected initializer enables ownership takeover and collateral drain via rebalance",
"category": "upgradeability",
"evidence": "`HypNative.initialize` is public `initializer` and calls `_MailboxClient_initialize`, which sets ownership to the caller-provided `_owner`; ownership then allows adding bridges/rebalancers and calling `rebalance`, which forwards ETH to the chosen bridge.",
"severity": "critical",
"locations": [
"contracts/contracts/token/HypNative.sol:39",
"contracts/contracts/client/MailboxClient.sol:109",
"contracts/contracts/client/MailboxClient.sol:117",
"contracts/contracts/client/Router.sol:54",
"contracts/contracts/token/libs/MovableCollateralRouter.sol:69",
"contracts/contracts/token/libs/MovableCollateralRouter.sol:98",
"contracts/contracts/token/libs/MovableCollateralRouter.sol:114",
"contracts/contracts/token/HypNative.sol:119"
],
"recommendation": "Disable initializers in the constructor (`_disableInitializers()`), or remove `initialize` entirely for non-proxy deployments. If initialization is required, restrict it (e.g., onlyOwner) and ensure deployment tooling calls it atomically before any third party can interact.",
"exploit_scenario": "1) Find a deployed `HypNative` instance where `initialize()` has not been called yet. 2) Call `initialize(address(0), address(0), attacker)`; `onlyContractOrNull` allows zero addresses and `_MailboxClient_initialize` sets the owner to the attacker-provided `_owner`. 3) As owner, call `enrollRemoteRouter` to register any domain, then `addBridge(domain, maliciousBridge)` and `addRebalancer(attacker)` to whitelist attacker-controlled bridge and self. 4) Call `rebalance(domain, amount, maliciousBridge)` with `amount` equal to the contract\u2019s ETH balance (and `msg.value = 0`). `HypNative._rebalance` sends `amount` ETH to `maliciousBridge`, which can simply keep the funds. 5) Repeat until the contract balance is drained."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0289 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x81b4e8b4 00000019: GT 0000001a: PUSH2 0x0153 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 0x07ff 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfa57f157 00000050: EQ 00000051: PUSH2 0x0833 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xfbaca44c 0000005b: EQ 0000005c: PUSH2 0x0853 0000005f: JUMPI 00000060: PUSH1 0x00 00000062: DUP1 00000063: REVERT 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xf2ed8c53 0000006b: EQ 0000006c: PUSH2 0x07bf 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xf2fde38b 00000076: EQ 00000077: PUSH2 0x07df 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 0x0754 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xe9198bf9 0000009c: EQ 0000009d: PUSH2 0x077f 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xefae508a 000000a7: EQ 000000a8: PUSH2 0x079f 000000ab: JUMPI 000000ac: PUSH1 0x00 000000ae: DUP1 000000af: REVERT 000000b0: JUMPDEST 000000b1: DUP1 000000b2: PUSH4 0xc69c8ce2 000000b7: EQ 000000b8: PUSH2 0x070b 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0xd5438eae 000000c2: EQ 000000c3: PUSH2 0x0720 000000c6: JUMPI 000000c7: PUSH1 0x00 000000c9: DUP1 000000ca: REVERT 000000cb: JUMPDEST 000000cc: DUP1 000000cd: PUSH4 0x93c44847 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 0x06ab 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0xc0c53b8b 000000f3: EQ 000000f4: PUSH2 0x06cb 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0xc3827115 000000fe: EQ 000000ff: PUSH2 0x06eb 00000102: JUMPI 00000103: PUSH1 0x00 00000105: DUP1 00000106: REVERT 00000107: JUMPDEST 00000108: DUP1 00000109: PUSH4 0x93c44847 0000010e: EQ 0000010f: PUSH2 0x0635 00000112: JUMPI 00000113: DUP1 00000114: PUSH4 0xb1bd6436 00000119: EQ 0000011a: PUSH2 0x068b 0000011d: JUMPI 0000011e: PUSH1 0x00 00000120: DUP1 00000121: REVERT 00000122: JUMPDEST 00000123: DUP1 00000124: PUSH4 0x81b4e8b4 00000129: EQ 0000012a: PUSH2 0x0581 0000012d: JUMPI 0000012e: DUP1 0000012f: PUSH4 0x8bd90b82 00000134: EQ 00000135: PUSH2 0x0594 00000138: JUMPI 00000139: DUP1 0000013a: PUSH4 0x8d3638f4 0000013f: EQ 00000140: PUSH2 0x05c1 00000143: JUMPI 00000144: DUP1 00000145: PUSH4 0x8da5cb5b 0000014a: EQ 0000014b: PUSH2 0x060a 0000014e: JUMPI 0000014f: PUSH1 0x00 00000151: DUP1 00000152: REVERT 00000153: JUMPDEST 00000154: DUP1 00000155: PUSH4 0x4e38a81d 0000015a: GT 0000015b: PUSH2 0x0201 0000015e: JUMPI 0000015f: DUP1 00000160: PUSH4 0x715018a6 00000165: GT 00000166: PUSH2 0x01b5 00000169: JUMPI 0000016a: DUP1 0000016b: PUSH4 0x775313a1 00000170: GT 00000171: PUSH2 0x019a 00000174: JUMPI 00000175: DUP1 00000176: PUSH4 0x775313a1 0000017b: EQ 0000017c: PUSH2 0x04d5 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0x77e2dc7a 00000186: EQ 00000187: PUSH2 0x0502 0000018a: JUMPI 0000018b: DUP1 0000018c: PUSH4 0x7f5a7c7b 00000191: EQ 00000192: PUSH2 0x052f 00000195: JUMPI 00000196: PUSH1 0x00 00000198: DUP1 00000199: REVERT 0000019a: JUMPDEST 0000019b: DUP1 0000019c: PUSH4 0x715018a6 000001a1: EQ 000001a2: PUSH2 0x04a0 000001a5: JUMPI 000001a6: DUP1 000001a7: PUSH4 0x71a15b38 000001ac: EQ 000001ad: PUSH2 0x04b5 000001b0: JUMPI 000001b1: PUSH1 0x00 000001b3: DUP1 000001b4: REVERT 000001b5: JUMPDEST 000001b6: DUP1 000001b7: PUSH4 0x56d5d475 000001bc: GT 000001bd: PUSH2 0x01e6 000001c0: JUMPI 000001c1: DUP1 000001c2: PUSH4 0x56d5d475 000001c7: EQ 000001c8: PUSH2 0x0445 000001cb: JUMPI 000001cc: DUP1 000001cd: PUSH4 0x6a99c333 000001d2: EQ 000001d3: PUSH2 0x0458 000001d6: JUMPI 000001d7: DUP1 000001d8: PUSH4 0x70a08231 000001dd: EQ 000001de: PUSH2 0x046b 000001e1: JUMPI 000001e2: PUSH1 0x00 000001e4: DUP1 000001e5: REVERT 000001e6: JUMPDEST 000001e7: DUP1 000001e8: PUSH4 0x4e38a81d 000001ed: EQ 000001ee: PUSH2 0x0412 000001f1: JUMPI 000001f2: DUP1 000001f3: PUSH4 0x51debffc 000001f8: EQ 000001f9: PUSH2 0x0432 000001fc: JUMPI 000001fd: PUSH1 0x00 000001ff: DUP1 00000200: REVERT 00000201: JUMPDEST 00000202: DUP1 00000203: PUSH4 0x2ead72f6 00000208: GT 00000209: PUSH2 0x0258 0000020c: JUMPI 0000020d: DUP1 0000020e: PUSH4 0x43bc4b9a 00000213: GT 00000214: PUSH2 0x023d 00000217: JUMPI 00000218: DUP1 00000219: PUSH4 0x43bc4b9a 0000021e: EQ 0000021f: PUSH2 0x03b0 00000222: JUMPI 00000223: DUP1 00000224: PUSH4 0x440df4f4 00000229: EQ 0000022a: PUSH2 0x03d0 0000022d: JUMPI 0000022e: DUP1 0000022f: PUSH4 0x49d462ef 00000234: EQ 00000235: PUSH2 0x03f2 00000238: JUMPI 00000239: PUSH1 0x00 0000023b: DUP1 0000023c: REVERT 0000023d: JUMPDEST 0000023e: DUP1 0000023f: PUSH4 0x2ead72f6 00000244: EQ 00000245: PUSH2 0x0362 00000248: JUMPI 00000249: DUP1 0000024a: PUSH4 0x3dfd3873 0000024f: EQ 00000250: PUSH2 0x0390 00000253: JUMPI 00000254: PUSH1 0x00 00000256: DUP1 00000257: REVERT 00000258: JUMPDEST 00000259: DUP1 0000025a: PUSH4 0x0c979919 0000025f: EQ 00000260: PUSH2 0x02ca 00000263: JUMPI 00000264: DUP1 00000265: PUSH4 0x0e72cc06 0000026a: EQ 0000026b: PUSH2 0x02ec 0000026e: JUMPI 0000026f: DUP1 00000270: PUSH4 0x1ba83149 00000275: EQ 00000276: PUSH2 0x030c 00000279: JUMPI 0000027a: DUP1 0000027b: PUSH4 0x2c2d8089 00000280: EQ 00000281: PUSH2 0x0342 00000284: JUMPI 00000285: PUSH1 0x00 00000287: DUP1 00000288: REVERT 00000289: JUMPDEST 0000028a: CALLDATASIZE 0000028b: PUSH2 0x02c5 0000028e: JUMPI 0000028f: PUSH1 0x40 00000291: MLOAD 00000292: CALLVALUE 00000293: DUP2 00000294: MSTORE 00000295: CALLER 00000296: SWAP1 00000297: PUSH32 0x5d8bc849764969eb1bcc6d0a2f55999d0167c1ccec240a4f39cf664ca9c4148e 000002b8: SWAP1 000002b9: PUSH1 0x20 000002bb: ADD 000002bc: PUSH1 0x40 000002be: MLOAD 000002bf: DUP1 000002c0: SWAP2 000002c1: SUB 000002c2: SWAP1 000002c3: LOG2 000002c4: STOP 000002c5: JUMPDEST 000002c6: PUSH1 0x00 000002c8: DUP1 000002c9: REVERT 000002ca: JUMPDEST 000002cb: CALLVALUE 000002cc: DUP1 000002cd: ISZERO 000002ce: PUSH2 0x02d6 000002d1: JUMPI 000002d2: PUSH1 0x00 000002d4: DUP1 000002d5: REVERT 000002d6: JUMPDEST 000002d7: POP 000002d8: PUSH2 0x02ea 000002db: PUSH2 0x02e5 000002de: CALLDATASIZE 000002df: PUSH1 0x04 000002e1: PUSH2 0x2d52 000002e4: JUMP 000002e5: JUMPDEST 000002e6: PUSH2 0x0873 000002e9: JUMP 000002ea: JUMPDEST 000002eb: STOP 000002ec: JUMPDEST 000002ed: CALLVALUE 000002ee: DUP1 000002ef: ISZERO 000002f0: PUSH2 0x02f8 000002f3: JUMPI 000002f4: PUSH1 0x00 000002f6: DUP1 000002f7: REVERT 000002f8: JUMPDEST 000002f9: POP 000002fa: PUSH2 0x02ea 000002fd: PUSH2 0x0307 00000300: CALLDATASIZE 00000301: PUSH1 0x04 00000303: PUSH2 0x2d52 00000306: JUMP 00000307: JUMPDEST 00000308: PUSH2 0x088a 0000030b: JUMP 0000030c: JUMPDEST 0000030d: CALLVALUE 0000030e: DUP1 0000030f: ISZERO 00000310: PUSH2 0x0318 00000313: JUMPI 00000314: PUSH1 0x00 00000316: DUP1 00000317: REVERT 00000318: JUMPDEST 00000319: POP 0000031a: PUSH2 0x032c 0000031d: PUSH2 0x0327 00000320: CALLDATASIZE 00000321: PUSH1 0x04 00000323: PUSH2 0x2d88 00000326: JUMP 00000327: JUMPDEST 00000328: PUSH2 0x09d8 0000032b: JUMP 0000032c: JUMPDEST 0000032d: PUSH1 0x40 0000032f: MLOAD 00000330: PUSH2 0x0339 00000333: SWAP2 00000334: SWAP1 00000335: PUSH2 0x2da3 00000338: JUMP 00000339: JUMPDEST 0000033a: PUSH1 0x40 0000033c: MLOAD 0000033d: DUP1 0000033e: SWAP2 0000033f: SUB 00000340: SWAP1 00000341: RETURN 00000342: JUMPDEST 00000343: CALLVALUE 00000344: DUP1 00000345: ISZERO 00000346: PUSH2 0x034e 00000349: JUMPI 0000034a: PUSH1 0x00 0000034c: DUP1 0000034d: REVERT 0000034e: JUMPDEST 0000034f: POP 00000350: PUSH2 0x02ea 00000353: PUSH2 0x035d 00000356: CALLDATASIZE 00000357: PUSH1 0x04 00000359: PUSH2 0x2dfd 0000035c: JUMP 0000035d: JUMPDEST 0000035e: PUSH2 0x09ff 00000361: JUMP 00000362: JUMPDEST 00000363: CALLVALUE 00000364: DUP1 00000365: ISZERO 00000366: PUSH2 0x036e 00000369: JUMPI 0000036a: PUSH1 0x00 0000036c: DUP1 0000036d: REVERT 0000036e: JUMPDEST 0000036f: POP 00000370: PUSH2 0x0382 00000373: PUSH2 0x037d 00000376: CALLDATASIZE 00000377: PUSH1 0x04 00000379: PUSH2 0x2d88 0000037c: JUMP 0000037d: JUMPDEST 0000037e: PUSH2 0x0a2a 00000381: JUMP 00000382: JUMPDEST 00000383: PUSH1 0x40 00000385: MLOAD 00000386: SWAP1 00000387: DUP2 00000388: MSTORE 00000389: PUSH1 0x20 0000038b: ADD 0000038c: PUSH2 0x0339 0000038f: JUMP 00000390: JUMPDEST 00000391: CALLVALUE 00000392: DUP1 00000393: ISZERO 00000394: PUSH2 0x039c 00000397: JUMPI 00000398: PUSH1 0x00 0000039a: DUP1 0000039b: REVERT 0000039c: JUMPDEST 0000039d: POP 0000039e: PUSH2 0x02ea 000003a1: PUSH2 0x03ab 000003a4: CALLDATASIZE 000003a5: PUSH1 0x04 000003a7: PUSH2 0x2d52 000003aa: JUMP 000003ab: JUMPDEST 000003ac: PUSH2 0x0a49 000003af: JUMP 000003b0: JUMPDEST 000003b1: CALLVALUE 000003b2: DUP1 000003b3: ISZERO 000003b4: PUSH2 0x03bc 000003b7: JUMPI 000003b8: PUSH1 0x00 000003ba: DUP1 000003bb: REVERT 000003bc: JUMPDEST 000003bd: POP 000003be: PUSH2 0x02ea 000003c1: PUSH2 0x03cb 000003c4: CALLDATASIZE 000003c5: PUSH1 0x04 000003c7: PUSH2 0x2d52 000003ca: JUMP 000003cb: JUMPDEST 000003cc: PUSH2 0x0b8a 000003cf: JUMP 000003d0: JUMPDEST 000003d1: CALLVALUE 000003d2: DUP1 000003d3: ISZERO 000003d4: PUSH2 0x03dc 000003d7: JUMPI 000003d8: PUSH1 0x00 000003da: DUP1 000003db: REVERT 000003dc: JUMPDEST 000003dd: POP 000003de: PUSH2 0x03e5 000003e1: PUSH2 0x0b9d 000003e4: JUMP 000003e5: JUMPDEST 000003e6: PUSH1 0x40 000003e8: MLOAD 000003e9: PUSH2 0x0339 000003ec: SWAP2 000003ed: SWAP1 000003ee: PUSH2 0x2e27 000003f1: JUMP 000003f2: JUMPDEST 000003f3: CALLVALUE 000003f4: DUP1 000003f5: ISZERO 000003f6: PUSH2 0x03fe 000003f9: JUMPI 000003fa: PUSH1 0x00 000003fc: DUP1 000003fd: REVERT 000003fe: JUMPDEST 000003ff: POP 00000400: PUSH2 0x02ea 00000403: PUSH2 0x040d 00000406: CALLDATASIZE 00000407: PUSH1 0x04 00000409: PUSH2 0x2dfd 0000040c: JUMP 0000040d: JUMPDEST 0000040e: PUSH2 0x0bae 00000411: JUMP 00000412: JUMPDEST 00000413: CALLVALUE 00000414: DUP1 00000415: ISZERO 00000416: PUSH2 0x041e 00000419: JUMPI 0000041a: PUSH1 0x00 0000041c: DUP1 0000041d: REVERT 0000041e: JUMPDEST 0000041f: POP 00000420: PUSH2 0x02ea 00000423: PUSH2 0x042d 00000426: CALLDATASIZE 00000427: PUSH1 0x04 00000429: PUSH2 0x2e65 0000042c: JUMP 0000042d: JUMPDEST 0000042e: PUSH2 0x0bc0 00000431: JUMP 00000432: JUMPDEST 00000433: PUSH2 0x0382 00000436: PUSH2 0x0440 00000439: CALLDATASIZE 0000043a: PUSH1 0x04 0000043c: PUSH2 0x2ede 0000043f: JUMP 00000440: JUMPDEST 00000441: PUSH2 0x0bef 00000444: JUMP 00000445: JUMPDEST 00000446: PUSH2 0x02ea 00000449: PUSH2 0x0453 0000044c: CALLDATASIZE 0000044d: PUSH1 0x04 0000044f: PUSH2 0x2f58 00000452: JUMP 00000453: JUMPDEST 00000454: PUSH2 0x0c41 00000457: JUMP 00000458: JUMPDEST 00000459: PUSH2 0x02ea 0000045c: PUSH2 0x0466 0000045f: CALLDATASIZE 00000460: PUSH1 0x04 00000462: PUSH2 0x2fb2 00000465: JUMP 00000466: JUMPDEST 00000467: PUSH2 0x0db5 0000046a: JUMP 0000046b: JUMPDEST 0000046c: CALLVALUE 0000046d: DUP1 0000046e: ISZERO 0000046f: PUSH2 0x0477 00000472: JUMPI 00000473: PUSH1 0x00 00000475: DUP1 00000476: REVERT 00000477: JUMPDEST 00000478: POP 00000479: PUSH2 0x0382 0000047c: PUSH2 0x0486 0000047f: CALLDATASIZE 00000480: PUSH1 0x04 00000482: PUSH2 0x2d52 00000485: JUMP 00000486: JUMPDEST 00000487: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000049c: AND 0000049d: BALANCE 0000049e: SWAP1 0000049f: JUMP 000004a0: JUMPDEST 000004a1: CALLVALUE 000004a2: DUP1 000004a3: ISZERO 000004a4: PUSH2 0x04ac 000004a7: JUMPI 000004a8: PUSH1 0x00 000004aa: DUP1 000004ab: REVERT 000004ac: JUMPDEST 000004ad: POP 000004ae: PUSH2 0x02ea 000004b1: PUSH2 0x0f4e 000004b4: JUMP 000004b5: JUMPDEST 000004b6: CALLVALUE 000004b7: DUP1 000004b8: ISZERO 000004b9: PUSH2 0x04c1 000004bc: JUMPI 000004bd: PUSH1 0x00 000004bf: DUP1 000004c0: REVERT 000004c1: JUMPDEST 000004c2: POP 000004c3: PUSH2 0x02ea 000004c6: PUSH2 0x04d0 000004c9: CALLDATASIZE 000004ca: PUSH1 0x04 000004cc: PUSH2 0x3037 000004cf: JUMP 000004d0: JUMPDEST 000004d1: PUSH2 0x0f62 000004d4: JUMP 000004d5: JUMPDEST 000004d6: CALLVALUE 000004d7: DUP1 000004d8: ISZERO 000004d9: PUSH2 0x04e1 000004dc: JUMPI 000004dd: PUSH1 0x00 000004df: DUP1 000004e0: REVERT 000004e1: JUMPDEST 000004e2: POP 000004e3: PUSH2 0x0382 000004e6: PUSH2 0x04f0 000004e9: CALLDATASIZE 000004ea: PUSH1 0x04 000004ec: PUSH2 0x2d88 000004ef: JUMP 000004f0: JUMPDEST 000004f1: PUSH1 0xca 000004f3: PUSH1 0x20 000004f5: MSTORE 000004f6: PUSH1 0x00 000004f8: SWAP1 000004f9: DUP2 000004fa: MSTORE 000004fb: PUSH1 0x40 000004fd: SWAP1 000004fe: KECCAK256 000004ff: SLOAD 00000500: DUP2 00000501: JUMP 00000502: JUMPDEST 00000503: CALLVALUE 00000504: DUP1 00000505: ISZERO 00000506: PUSH2 0x050e 00000509: JUMPI 0000050a: PUSH1 0x00 0000050c: DUP1 0000050d: REVERT 0000050e: JUMPDEST 0000050f: POP 00000510: PUSH2 0x0382 00000513: PUSH2 0x051d 00000516: CALLDATASIZE 00000517: PUSH1 0x04 00000519: PUSH2 0x2d88 0000051c: JUMP 0000051d: JUMPDEST 0000051e: PUSH1 0xcb 00000520: PUSH1 0x20 00000522: MSTORE 00000523: PUSH1 0x00 00000525: SWAP1 00000526: DUP2 00000527: MSTORE 00000528: PUSH1 0x40 0000052a: SWAP1 0000052b: KECCAK256 0000052c: SLOAD 0000052d: DUP2 0000052e: JUMP 0000052f: JUMPDEST 00000530: CALLVALUE 00000531: DUP1 00000532: ISZERO 00000533: PUSH2 0x053b 00000536: JUMPI 00000537: PUSH1 0x00 00000539: DUP1 0000053a: REVERT 0000053b: JUMPDEST 0000053c: POP 0000053d: PUSH1 0x65 0000053f: SLOAD 00000540: PUSH2 0x055c 00000543: SWAP1 00000544: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000559: AND 0000055a: DUP2 0000055b: JUMP 0000055c: JUMPDEST 0000055d: PUSH1 0x40 0000055f: MLOAD 00000560: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000575: SWAP1 00000576: SWAP2 00000577: AND 00000578: DUP2 00000579: MSTORE 0000057a: PUSH1 0x20 0000057c: ADD 0000057d: PUSH2 0x0339 00000580: JUMP 00000581: JUMPDEST 00000582: PUSH2 0x0382 00000585: PUSH2 0x058f 00000588: CALLDATASIZE 00000589: PUSH1 0x04 0000058b: PUSH2 0x3079 0000058e: JUMP 0000058f: JUMPDEST 00000590: PUSH2 0x0fbd 00000593: JUMP 00000594: JUMPDEST 00000595: CALLVALUE 00000596: DUP1 00000597: ISZERO 00000598: PUSH2 0x05a0 0000059b: JUMPI 0000059c: PUSH1 0x00 0000059e: DUP1 0000059f: REVERT 000005a0: JUMPDEST 000005a1: POP 000005a2: PUSH2 0x05b4 000005a5: PUSH2 0x05af 000005a8: CALLDATASIZE 000005a9: PUSH1 0x04 000005ab: PUSH2 0x3079 000005ae: JUMP 000005af: JUMPDEST 000005b0: PUSH2 0x0fcb 000005b3: JUMP 000005b4: JUMPDEST 000005b5: PUSH1 0x40 000005b7: MLOAD 000005b8: PUSH2 0x0339 000005bb: SWAP2 000005bc: SWAP1 000005bd: PUSH2 0x30ac 000005c0: JUMP 000005c1: JUMPDEST 000005c2: CALLVALUE 000005c3: DUP1 000005c4: ISZERO 000005c5: PUSH2 0x05cd 000005c8: JUMPI 000005c9: PUSH1 0x00 000005cb: DUP1 000005cc: REVERT 000005cd: JUMPDEST 000005ce: POP 000005cf: PUSH2 0x05f5 000005d2: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 000005f3: DUP2 000005f4: JUMP 000005f5: JUMPDEST 000005f6: PUSH1 0x40 000005f8: MLOAD 000005f9: PUSH4 0xffffffff 000005fe: SWAP1 000005ff: SWAP2 00000600: AND 00000601: DUP2 00000602: MSTORE 00000603: PUSH1 0x20 00000605: ADD 00000606: PUSH2 0x0339 00000609: JUMP 0000060a: JUMPDEST 0000060b: CALLVALUE 0000060c: DUP1 0000060d: ISZERO 0000060e: PUSH2 0x0616 00000611: JUMPI 00000612: PUSH1 0x00 00000614: DUP1 00000615: REVERT 00000616: JUMPDEST 00000617: POP 00000618: PUSH1 0x33 0000061a: SLOAD 0000061b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000630: AND 00000631: PUSH2 0x055c 00000634: JUMP 00000635: JUMPDEST 00000636: CALLVALUE 00000637: DUP1 00000638: ISZERO 00000639: PUSH2 0x0641 0000063c: JUMPI 0000063d: PUSH1 0x00 0000063f: DUP1 00000640: REVERT 00000641: JUMPDEST 00000642: POP 00000643: PUSH2 0x067e 00000646: PUSH1 0x40 00000648: MLOAD 00000649: DUP1 0000064a: PUSH1 0x40 0000064c: ADD 0000064d: PUSH1 0x40 0000064f: MSTORE 00000650: DUP1 00000651: PUSH1 0x05 00000653: DUP2 00000654: MSTORE 00000655: PUSH1 0x20 00000657: ADD 00000658: PUSH32 0x392e302e36000000000000000000000000000000000000000000000000000000 00000679: DUP2 0000067a: MSTORE 0000067b: POP 0000067c: DUP2 0000067d: JUMP 0000067e: JUMPDEST 0000067f: PUSH1 0x40 00000681: MLOAD 00000682: PUSH2 0x0339 00000685: SWAP2 00000686: SWAP1 00000687: PUSH2 0x317f 0000068a: JUMP 0000068b: JUMPDEST 0000068c: CALLVALUE 0000068d: DUP1 0000068e: ISZERO 0000068f: PUSH2 0x0697 00000692: JUMPI 00000693: PUSH1 0x00 00000695: DUP1 00000696: REVERT 00000697: JUMPDEST 00000698: POP 00000699: PUSH2 0x02ea 0000069c: PUSH2 0x06a6 0000069f: CALLDATASIZE 000006a0: PUSH1 0x04 000006a2: PUSH2 0x3192 000006a5: JUMP 000006a6: JUMPDEST 000006a7: PUSH2 0x1071 000006aa: JUMP 000006ab: JUMPDEST 000006ac: CALLVALUE 000006ad: DUP1 000006ae: ISZERO 000006af: PUSH2 0x06b7 000006b2: JUMPI 000006b3: PUSH1 0x00 000006b5: DUP1 000006b6: REVERT 000006b7: JUMPDEST 000006b8: POP 000006b9: PUSH2 0x02ea 000006bc: PUSH2 0x06c6 000006bf: CALLDATASIZE 000006c0: PUSH1 0x04 000006c2: PUSH2 0x2dfd 000006c5: JUMP 000006c6: JUMPDEST 000006c7: PUSH2 0x10e2 000006ca: JUMP 000006cb: JUMPDEST 000006cc: CALLVALUE 000006cd: DUP1 000006ce: ISZERO 000006cf: PUSH2 0x06d7 000006d2: JUMPI 000006d3: PUSH1 0x00 000006d5: DUP1 000006d6: REVERT 000006d7: JUMPDEST 000006d8: POP 000006d9: PUSH2 0x02ea 000006dc: PUSH2 0x06e6 000006df: CALLDATASIZE 000006e0: PUSH1 0x04 000006e2: PUSH2 0x3207 000006e5: JUMP 000006e6: JUMPDEST 000006e7: PUSH2 0x10f4 000006ea: JUMP 000006eb: JUMPDEST 000006ec: CALLVALUE 000006ed: DUP1 000006ee: ISZERO 000006ef: PUSH2 0x06f7 000006f2: JUMPI 000006f3: PUSH1 0x00 000006f5: DUP1 000006f6: REVERT 000006f7: JUMPDEST 000006f8: POP 000006f9: PUSH2 0x02ea 000006fc: PUSH2 0x0706 000006ff: CALLDATASIZE 00000700: PUSH1 0x04 00000702: PUSH2 0x2d88 00000705: JUMP 00000706: JUMPDEST 00000707: PUSH2 0x128b 0000070a: JUMP 0000070b: JUMPDEST 0000070c: CALLVALUE 0000070d: DUP1 0000070e: ISZERO 0000070f: PUSH2 0x0717 00000712: JUMPI 00000713: PUSH1 0x00 00000715: DUP1 00000716: REVERT 00000717: JUMPDEST 00000718: POP 00000719: PUSH2 0x032c 0000071c: PUSH2 0x12aa 0000071f: JUMP 00000720: JUMPDEST 00000721: CALLVALUE 00000722: DUP1 00000723: ISZERO 00000724: PUSH2 0x072c 00000727: JUMPI 00000728: PUSH1 0x00 0000072a: DUP1 0000072b: REVERT 0000072c: JUMPDEST 0000072d: POP 0000072e: PUSH2 0x055c 00000731: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239 00000752: DUP2 00000753: JUMP 00000754: JUMPDEST 00000755: CALLVALUE 00000756: DUP1 00000757: ISZERO 00000758: PUSH2 0x0760 0000075b: JUMPI 0000075c: PUSH1 0x00 0000075e: DUP1 0000075f: REVERT 00000760: JUMPDEST 00000761: POP 00000762: PUSH1 0x66 00000764: SLOAD 00000765: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000077a: AND 0000077b: PUSH2 0x055c 0000077e: JUMP 0000077f: JUMPDEST 00000780: CALLVALUE 00000781: DUP1 00000782: ISZERO 00000783: PUSH2 0x078b 00000786: JUMPI 00000787: PUSH1 0x00 00000789: DUP1 0000078a: REVERT 0000078b: JUMPDEST 0000078c: POP 0000078d: PUSH2 0x02ea 00000790: PUSH2 0x079a 00000793: CALLDATASIZE 00000794: PUSH1 0x04 00000796: PUSH2 0x3247 00000799: JUMP 0000079a: JUMPDEST 0000079b: PUSH2 0x12b6 0000079e: JUMP 0000079f: JUMPDEST 000007a0: CALLVALUE 000007a1: DUP1 000007a2: ISZERO 000007a3: PUSH2 0x07ab 000007a6: JUMPI 000007a7: PUSH1 0x00 000007a9: DUP1 000007aa: REVERT 000007ab: JUMPDEST 000007ac: POP 000007ad: PUSH2 0x02ea 000007b0: PUSH2 0x07ba 000007b3: CALLDATASIZE 000007b4: PUSH1 0x04 000007b6: PUSH2 0x2d88 000007b9: JUMP 000007ba: JUMPDEST 000007bb: PUSH2 0x1395 000007be: JUMP 000007bf: JUMPDEST 000007c0: CALLVALUE 000007c1: DUP1 000007c2: ISZERO 000007c3: PUSH2 0x07cb 000007c6: JUMPI 000007c7: PUSH1 0x00 000007c9: DUP1 000007ca: REVERT 000007cb: JUMPDEST 000007cc: POP 000007cd: PUSH2 0x0382 000007d0: PUSH2 0x07da 000007d3: CALLDATASIZE 000007d4: PUSH1 0x04 000007d6: PUSH2 0x2d88 000007d9: JUMP 000007da: JUMPDEST 000007db: PUSH2 0x13a9 000007de: JUMP 000007df: JUMPDEST 000007e0: CALLVALUE 000007e1: DUP1 000007e2: ISZERO 000007e3: PUSH2 0x07eb 000007e6: JUMPI 000007e7: PUSH1 0x00 000007e9: DUP1 000007ea: REVERT 000007eb: JUMPDEST 000007ec: POP 000007ed: PUSH2 0x02ea 000007f0: PUSH2 0x07fa 000007f3: CALLDATASIZE 000007f4: PUSH1 0x04 000007f6: PUSH2 0x2d52 000007f9: JUMP 000007fa: JUMPDEST 000007fb: PUSH2 0x13d6 000007fe: JUMP 000007ff: JUMPDEST 00000800: CALLVALUE 00000801: DUP1 00000802: ISZERO 00000803: PUSH2 0x080b 00000806: JUMPI 00000807: PUSH1 0x00 00000809: DUP1 0000080a: REVERT 0000080b: JUMPDEST 0000080c: POP 0000080d: PUSH2 0x0382 00000810: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 00000831: DUP2 00000832: JUMP 00000833: JUMPDEST 00000834: CALLVALUE 00000835: DUP1 00000836: ISZERO 00000837: PUSH2 0x083f 0000083a: JUMPI 0000083b: PUSH1 0x00 0000083d: DUP1 0000083e: REVERT 0000083f: JUMPDEST 00000840: POP 00000841: PUSH2 0x02ea 00000844: PUSH2 0x084e 00000847: CALLDATASIZE 00000848: PUSH1 0x04 0000084a: PUSH2 0x32a7 0000084d: JUMP 0000084e: JUMPDEST 0000084f: PUSH2 0x148a 00000852: JUMP 00000853: JUMPDEST 00000854: CALLVALUE 00000855: DUP1 00000856: ISZERO 00000857: PUSH2 0x085f 0000085a: JUMPI 0000085b: PUSH1 0x00 0000085d: DUP1 0000085e: REVERT 0000085f: JUMPDEST 00000860: POP 00000861: PUSH2 0x02ea 00000864: PUSH2 0x086e 00000867: CALLDATASIZE 00000868: PUSH1 0x04 0000086a: PUSH2 0x2e65 0000086d: JUMP 0000086e: JUMPDEST 0000086f: PUSH2 0x14d3 00000872: JUMP 00000873: JUMPDEST 00000874: PUSH2 0x087b 00000877: PUSH2 0x1507 0000087a: JUMP 0000087b: JUMPDEST 0000087c: PUSH2 0x0886 0000087f: PUSH1 0xcd 00000881: DUP3 00000882: PUSH2 0x1588 00000885: JUMP 00000886: JUMPDEST 00000887: POP 00000888: POP 00000889: JUMP 0000088a: JUMPDEST 0000088b: DUP1 0000088c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008a1: DUP2 000008a2: AND 000008a3: EXTCODESIZE 000008a4: ISZERO 000008a5: ISZERO 000008a6: DUP1 000008a7: PUSH2 0x08c4 000008aa: JUMPI 000008ab: POP 000008ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008c1: DUP2 000008c2: AND 000008c3: ISZERO 000008c4: JUMPDEST 000008c5: PUSH2 0x0955 000008c8: JUMPI 000008c9: PUSH1 0x40 000008cb: MLOAD 000008cc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000008ed: DUP2 000008ee: MSTORE 000008ef: PUSH1 0x20 000008f1: PUSH1 0x04 000008f3: DUP3 000008f4: ADD 000008f5: MSTORE 000008f6: PUSH1 0x27 000008f8: PUSH1 0x24 000008fa: DUP3 000008fb: ADD 000008fc: MSTORE 000008fd: PUSH32 0x4d61696c626f78436c69656e743a20696e76616c696420636f6e747261637420 0000091e: PUSH1 0x44 00000920: DUP3 00000921: ADD 00000922: MSTORE 00000923: PUSH32 0x73657474696e6700000000000000000000000000000000000000000000000000 00000944: PUSH1 0x64 00000946: DUP3 00000947: ADD 00000948: MSTORE 00000949: PUSH1 0x84 0000094b: ADD 0000094c: JUMPDEST 0000094d: PUSH1 0x40 0000094f: MLOAD 00000950: DUP1 00000951: SWAP2 00000952: SUB 00000953: SWAP1 00000954: REVERT 00000955: JUMPDEST 00000956: PUSH2 0x095d 00000959: PUSH2 0x1507 0000095c: JUMP 0000095d: JUMPDEST 0000095e: PUSH1 0x66 00000960: DUP1 00000961: SLOAD 00000962: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000983: AND 00000984: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000999: DUP5 0000099a: AND 0000099b: SWAP1 0000099c: DUP2 0000099d: OR 0000099e: SWAP1 0000099f: SWAP2 000009a0: SSTORE 000009a1: PUSH1 0x40 000009a3: MLOAD 000009a4: SWAP1 000009a5: DUP2 000009a6: MSTORE 000009a7: PUSH32 0xc47cbcc588c67679e52261c45cc315e56562f8d0ccaba16facb9093ff9498799 000009c8: SWAP1 000009c9: PUSH1 0x20 000009cb: ADD 000009cc: JUMPDEST 000009cd: PUSH1 0x40 000009cf: MLOAD 000009d0: DUP1 000009d1: SWAP2 000009d2: SUB 000009d3: SWAP1 000009d4: LOG1 000009d5: POP 000009d6: POP 000009d7: JUMP 000009d8: JUMPDEST 000009d9: PUSH4 0xffffffff 000009de: DUP2 000009df: AND 000009e0: PUSH1 0x00 000009e2: SWAP1 000009e3: DUP2 000009e4: MSTORE 000009e5: PUSH1 0xcc 000009e7: PUSH1 0x20 000009e9: MSTORE 000009ea: PUSH1 0x40 000009ec: SWAP1 000009ed: KECCAK256 000009ee: PUSH1 0x60 000009f0: SWAP1 000009f1: PUSH2 0x09f9 000009f4: SWAP1 000009f5: PUSH2 0x15b1 000009f8: JUMP 000009f9: JUMPDEST 000009fa: SWAP3 000009fb: SWAP2 000009fc: POP 000009fd: POP 000009fe: JUMP 000009ff: JUMPDEST 00000a00: PUSH2 0x0a07 00000a03: PUSH2 0x1507 00000a06: JUMP 00000a07: JUMPDEST 00000a08: PUSH2 0x0a10 00000a0b: DUP3 00000a0c: PUSH2 0x15be 00000a0f: JUMP 00000a10: JUMPDEST 00000a11: POP 00000a12: PUSH4 0xffffffff 00000a17: SWAP1 00000a18: SWAP2 00000a19: AND 00000a1a: PUSH1 0x00 00000a1c: SWAP1 00000a1d: DUP2 00000a1e: MSTORE 00000a1f: PUSH1 0xcb 00000a21: PUSH1 0x20 00000a23: MSTORE 00000a24: PUSH1 0x40 00000a26: SWAP1 00000a27: KECCAK256 00000a28: SSTORE 00000a29: JUMP 00000a2a: JUMPDEST 00000a2b: PUSH1 0x00 00000a2d: DUP1 00000a2e: PUSH2 0x0a41 00000a31: PUSH1 0x97 00000a33: PUSH4 0xffffffff 00000a38: DUP1 00000a39: DUP7 00000a3a: AND 00000a3b: SWAP1 00000a3c: PUSH2 0x1623 00000a3f: AND 00000a40: JUMP 00000a41: JUMPDEST 00000a42: SWAP5 00000a43: SWAP4 00000a44: POP 00000a45: POP 00000a46: POP 00000a47: POP 00000a48: JUMP 00000a49: JUMPDEST 00000a4a: DUP1 00000a4b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a60: DUP2 00000a61: AND 00000a62: EXTCODESIZE 00000a63: ISZERO 00000a64: ISZERO 00000a65: DUP1 00000a66: PUSH2 0x0a83 00000a69: JUMPI 00000a6a: POP 00000a6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a80: DUP2 00000a81: AND 00000a82: ISZERO 00000a83: JUMPDEST 00000a84: PUSH2 0x0b0f 00000a87: JUMPI 00000a88: PUSH1 0x40 00000a8a: MLOAD 00000a8b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000aac: DUP2 00000aad: MSTORE 00000aae: PUSH1 0x20 00000ab0: PUSH1 0x04 00000ab2: DUP3 00000ab3: ADD 00000ab4: MSTORE 00000ab5: PUSH1 0x27 00000ab7: PUSH1 0x24 00000ab9: DUP3 00000aba: ADD 00000abb: MSTORE 00000abc: PUSH32 0x4d61696c626f78436c69656e743a20696e76616c696420636f6e747261637420 00000add: PUSH1 0x44 00000adf: DUP3 00000ae0: ADD 00000ae1: MSTORE 00000ae2: PUSH32 0x73657474696e6700000000000000000000000000000000000000000000000000 00000b03: PUSH1 0x64 00000b05: DUP3 00000b06: ADD 00000b07: MSTORE 00000b08: PUSH1 0x84 00000b0a: ADD 00000b0b: PUSH2 0x094c 00000b0e: JUMP 00000b0f: JUMPDEST 00000b10: PUSH2 0x0b17 00000b13: PUSH2 0x1507 00000b16: JUMP 00000b17: JUMPDEST 00000b18: PUSH1 0x65 00000b1a: DUP1 00000b1b: SLOAD 00000b1c: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000b3d: AND 00000b3e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b53: DUP5 00000b54: AND 00000b55: SWAP1 00000b56: DUP2 00000b57: OR 00000b58: SWAP1 00000b59: SWAP2 00000b5a: SSTORE 00000b5b: PUSH1 0x40 00000b5d: MLOAD 00000b5e: SWAP1 00000b5f: DUP2 00000b60: MSTORE 00000b61: PUSH32 0x4eab7b127c764308788622363ad3e9532de3dfba7845bd4f84c125a22544255a 00000b82: SWAP1 00000b83: PUSH1 0x20 00000b85: ADD 00000b86: PUSH2 0x09cc 00000b89: JUMP 00000b8a: JUMPDEST 00000b8b: PUSH2 0x0b92 00000b8e: PUSH2 0x1507 00000b91: JUMP 00000b92: JUMPDEST 00000b93: PUSH2 0x0886 00000b96: PUSH1 0xcd 00000b98: DUP3 00000b99: PUSH2 0x163c 00000b9c: JUMP 00000b9d: JUMPDEST 00000b9e: PUSH1 0x60 00000ba0: PUSH2 0x0ba9 00000ba3: PUSH1 0x97 00000ba5: PUSH2 0x165e 00000ba8: JUMP 00000ba9: JUMPDEST 00000baa: SWAP1 00000bab: POP 00000bac: SWAP1 00000bad: JUMP 00000bae: JUMPDEST 00000baf: PUSH2 0x0bb6 00000bb2: PUSH2 0x1507 00000bb5: JUMP 00000bb6: JUMPDEST 00000bb7: PUSH2 0x0886 00000bba: DUP3 00000bbb: DUP3 00000bbc: PUSH2 0x170f 00000bbf: JUMP 00000bc0: JUMPDEST 00000bc1: PUSH2 0x0bc8 00000bc4: PUSH2 0x1507 00000bc7: JUMP 00000bc8: JUMPDEST 00000bc9: PUSH4 0xffffffff 00000bce: DUP1 00000bcf: DUP4 00000bd0: AND 00000bd1: PUSH1 0x00 00000bd3: SWAP1 00000bd4: DUP2 00000bd5: MSTORE 00000bd6: PUSH1 0xcc 00000bd8: PUSH1 0x20 00000bda: MSTORE 00000bdb: PUSH1 0x40 00000bdd: SWAP1 00000bde: KECCAK256 00000bdf: PUSH2 0x0bea 00000be2: SWAP2 00000be3: DUP4 00000be4: SWAP1 00000be5: PUSH2 0x163c 00000be8: AND 00000be9: JUMP 00000bea: JUMPDEST 00000beb: POP 00000bec: POP 00000bed: POP 00000bee: JUMP 00000bef: JUMPDEST 00000bf0: PUSH1 0x00 00000bf2: PUSH2 0x0c36 00000bf5: DUP8 00000bf6: DUP8 00000bf7: DUP8 00000bf8: CALLVALUE 00000bf9: DUP9 00000bfa: DUP9 00000bfb: DUP1 00000bfc: DUP1 00000bfd: PUSH1 0x1f 00000bff: ADD 00000c00: PUSH1 0x20 00000c02: DUP1 00000c03: SWAP2 00000c04: DIV 00000c05: MUL 00000c06: PUSH1 0x20 00000c08: ADD 00000c09: PUSH1 0x40 00000c0b: MLOAD 00000c0c: SWAP1 00000c0d: DUP2 00000c0e: ADD 00000c0f: PUSH1 0x40 00000c11: MSTORE 00000c12: DUP1 00000c13: SWAP4 00000c14: SWAP3 00000c15: SWAP2 00000c16: SWAP1 00000c17: DUP2 00000c18: DUP2 00000c19: MSTORE 00000c1a: PUSH1 0x20 00000c1c: ADD 00000c1d: DUP4 00000c1e: DUP4 00000c1f: DUP1 00000c20: DUP3 00000c21: DUP5 00000c22: CALLDATACOPY 00000c23: PUSH1 0x00 00000c25: SWAP3 00000c26: ADD 00000c27: SWAP2 00000c28: SWAP1 00000c29: SWAP2 00000c2a: MSTORE 00000c2b: POP 00000c2c: DUP11 00000c2d: SWAP3 00000c2e: POP 00000c2f: PUSH2 0x175d 00000c32: SWAP2 00000c33: POP 00000c34: POP 00000c35: JUMP 00000c36: JUMPDEST 00000c37: SWAP8 00000c38: SWAP7 00000c39: POP 00000c3a: POP 00000c3b: POP 00000c3c: POP 00000c3d: POP 00000c3e: POP 00000c3f: POP 00000c40: JUMP 00000c41: JUMPDEST 00000c42: CALLER 00000c43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c58: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239 00000c79: AND 00000c7a: EQ 00000c7b: PUSH2 0x0d06 00000c7e: JUMPI 00000c7f: PUSH1 0x40 00000c81: MLOAD 00000c82: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ca3: DUP2 00000ca4: MSTORE 00000ca5: PUSH1 0x20 00000ca7: PUSH1 0x04 00000ca9: DUP3 00000caa: ADD 00000cab: MSTORE 00000cac: PUSH1 0x21 00000cae: PUSH1 0x24 00000cb0: DUP3 00000cb1: ADD 00000cb2: MSTORE 00000cb3: PUSH32 0x4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f 00000cd4: PUSH1 0x44 00000cd6: DUP3 00000cd7: ADD 00000cd8: MSTORE 00000cd9: PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 00000cfa: PUSH1 0x64 00000cfc: DUP3 00000cfd: ADD 00000cfe: MSTORE 00000cff: PUSH1 0x84 00000d01: ADD 00000d02: PUSH2 0x094c 00000d05: JUMP 00000d06: JUMPDEST 00000d07: PUSH1 0x00 00000d09: PUSH2 0x0d11 00000d0c: DUP6 00000d0d: PUSH2 0x15be 00000d10: JUMP 00000d11: JUMPDEST 00000d12: SWAP1 00000d13: POP 00000d14: DUP4 00000d15: DUP2 00000d16: EQ 00000d17: PUSH2 0x0da2 00000d1a: JUMPI 00000d1b: PUSH1 0x40 00000d1d: MLOAD 00000d1e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000d3f: DUP2 00000d40: MSTORE 00000d41: PUSH1 0x20 00000d43: PUSH1 0x04 00000d45: DUP3 00000d46: ADD 00000d47: MSTORE 00000d48: PUSH1 0x25 00000d4a: PUSH1 0x24 00000d4c: DUP3 00000d4d: ADD 00000d4e: MSTORE 00000d4f: PUSH32 0x456e726f6c6c656420726f7574657220646f6573206e6f74206d617463682073 00000d70: PUSH1 0x44 00000d72: DUP3 00000d73: ADD 00000d74: MSTORE 00000d75: PUSH32 0x656e646572000000000000000000000000000000000000000000000000000000 00000d96: PUSH1 0x64 00000d98: DUP3 00000d99: ADD 00000d9a: MSTORE 00000d9b: PUSH1 0x84 00000d9d: ADD 00000d9e: PUSH2 0x094c 00000da1: JUMP 00000da2: JUMPDEST 00000da3: PUSH2 0x0dae 00000da6: DUP6 00000da7: DUP6 00000da8: DUP6 00000da9: DUP6 00000daa: PUSH2 0x1780 00000dad: JUMP 00000dae: JUMPDEST 00000daf: POP 00000db0: POP 00000db1: POP 00000db2: POP 00000db3: POP 00000db4: JUMP 00000db5: JUMPDEST 00000db6: PUSH2 0x0dc0 00000db9: PUSH1 0xcd 00000dbb: CALLER 00000dbc: PUSH2 0x1802 00000dbf: JUMP 00000dc0: JUMPDEST 00000dc1: PUSH2 0x0e26 00000dc4: JUMPI 00000dc5: PUSH1 0x40 00000dc7: MLOAD 00000dc8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000de9: DUP2 00000dea: MSTORE 00000deb: PUSH1 0x20 00000ded: PUSH1 0x04 00000def: DUP3 00000df0: ADD 00000df1: MSTORE 00000df2: PUSH1 0x14 00000df4: PUSH1 0x24 00000df6: DUP3 00000df7: ADD 00000df8: MSTORE 00000df9: PUSH32 0x4d43523a204f6e6c7920526562616c616e636572000000000000000000000000 00000e1a: PUSH1 0x44 00000e1c: DUP3 00000e1d: ADD 00000e1e: MSTORE 00000e1f: PUSH1 0x64 00000e21: ADD 00000e22: PUSH2 0x094c 00000e25: JUMP 00000e26: JUMPDEST 00000e27: PUSH4 0xffffffff 00000e2c: DUP1 00000e2d: DUP5 00000e2e: AND 00000e2f: PUSH1 0x00 00000e31: SWAP1 00000e32: DUP2 00000e33: MSTORE 00000e34: PUSH1 0xcc 00000e36: PUSH1 0x20 00000e38: MSTORE 00000e39: PUSH1 0x40 00000e3b: SWAP1 00000e3c: KECCAK256 00000e3d: DUP5 00000e3e: SWAP2 00000e3f: DUP4 00000e40: SWAP2 00000e41: SWAP1 00000e42: PUSH2 0x0e4f 00000e45: SWAP1 00000e46: DUP3 00000e47: SWAP1 00000e48: DUP5 00000e49: SWAP1 00000e4a: PUSH2 0x1802 00000e4d: AND 00000e4e: JUMP 00000e4f: JUMPDEST 00000e50: PUSH2 0x0eb5 00000e53: JUMPI 00000e54: PUSH1 0x40 00000e56: MLOAD 00000e57: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000e78: DUP2 00000e79: MSTORE 00000e7a: PUSH1 0x20 00000e7c: PUSH1 0x04 00000e7e: DUP3 00000e7f: ADD 00000e80: MSTORE 00000e81: PUSH1 0x17 00000e83: PUSH1 0x24 00000e85: DUP3 00000e86: ADD 00000e87: MSTORE 00000e88: PUSH32 0x4d43523a204e6f7420616c6c6f77656420627269646765000000000000000000 00000ea9: PUSH1 0x44 00000eab: DUP3 00000eac: ADD 00000ead: MSTORE 00000eae: PUSH1 0x64 00000eb0: ADD 00000eb1: PUSH2 0x094c 00000eb4: JUMP 00000eb5: JUMPDEST 00000eb6: PUSH4 0xffffffff 00000ebb: DUP7 00000ebc: AND 00000ebd: PUSH1 0x00 00000ebf: SWAP1 00000ec0: DUP2 00000ec1: MSTORE 00000ec2: PUSH1 0xcb 00000ec4: PUSH1 0x20 00000ec6: MSTORE 00000ec7: PUSH1 0x40 00000ec9: SWAP1 00000eca: KECCAK256 00000ecb: SLOAD 00000ecc: CALLER 00000ecd: SWAP1 00000ece: DUP1 00000ecf: PUSH2 0x0ede 00000ed2: JUMPI 00000ed3: PUSH2 0x0edb 00000ed6: DUP9 00000ed7: PUSH2 0x15be 00000eda: JUMP 00000edb: JUMPDEST 00000edc: SWAP1 00000edd: POP 00000ede: JUMPDEST 00000edf: PUSH2 0x0eea 00000ee2: DUP9 00000ee3: DUP3 00000ee4: DUP10 00000ee5: DUP10 00000ee6: PUSH2 0x1831 00000ee9: JUMP 00000eea: JUMPDEST 00000eeb: PUSH1 0x40 00000eed: DUP1 00000eee: MLOAD 00000eef: DUP3 00000ef0: DUP2 00000ef1: MSTORE 00000ef2: PUSH1 0x20 00000ef4: DUP2 00000ef5: ADD 00000ef6: DUP10 00000ef7: SWAP1 00000ef8: MSTORE 00000ef9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f0e: DUP5 00000f0f: AND 00000f10: SWAP2 00000f11: PUSH4 0xffffffff 00000f16: DUP12 00000f17: AND 00000f18: SWAP2 00000f19: PUSH32 0xb1e1b117ddf429b1b8a359fe0e978f0ae191c0f70e0babfea7acaad1b0ee8a2d 00000f3a: SWAP2 00000f3b: ADD 00000f3c: JUMPDEST 00000f3d: PUSH1 0x40 00000f3f: MLOAD 00000f40: DUP1 00000f41: SWAP2 00000f42: SUB 00000f43: SWAP1 00000f44: LOG3 00000f45: POP 00000f46: POP 00000f47: POP 00000f48: POP 00000f49: POP 00000f4a: POP 00000f4b: POP 00000f4c: POP 00000f4d: JUMP 00000f4e: JUMPDEST 00000f4f: PUSH2 0x0f56 00000f52: PUSH2 0x1507 00000f55: JUMP 00000f56: JUMPDEST 00000f57: PUSH2 0x0f60 00000f5a: PUSH1 0x00 00000f5c: PUSH2 0x1975 00000f5f: JUMP 00000f60: JUMPDEST 00000f61: JUMP 00000f62: JUMPDEST 00000f63: PUSH2 0x0f6a 00000f66: PUSH2 0x1507 00000f69: JUMP 00000f6a: JUMPDEST 00000f6b: DUP1 00000f6c: PUSH1 0x00 00000f6e: JUMPDEST 00000f6f: DUP2 00000f70: DUP2 00000f71: LT 00000f72: ISZERO 00000f73: PUSH2 0x0fb7 00000f76: JUMPI 00000f77: PUSH2 0x0fa5 00000f7a: DUP5 00000f7b: DUP5 00000f7c: DUP4 00000f7d: DUP2 00000f7e: DUP2 00000f7f: LT 00000f80: PUSH2 0x0f8b 00000f83: JUMPI 00000f84: PUSH2 0x0f8b 00000f87: PUSH2 0x32c5 00000f8a: JUMP 00000f8b: JUMPDEST 00000f8c: SWAP1 00000f8d: POP 00000f8e: PUSH1 0x20 00000f90: MUL 00000f91: ADD 00000f92: PUSH1 0x20 00000f94: DUP2 00000f95: ADD 00000f96: SWAP1 00000f97: PUSH2 0x0fa0 00000f9a: SWAP2 00000f9b: SWAP1 00000f9c: PUSH2 0x2d88 00000f9f: JUMP 00000fa0: JUMPDEST 00000fa1: PUSH2 0x19ec 00000fa4: JUMP 00000fa5: JUMPDEST 00000fa6: PUSH2 0x0fb0 00000fa9: PUSH1 0x01 00000fab: DUP3 00000fac: PUSH2 0x3323 00000faf: JUMP 00000fb0: JUMPDEST 00000fb1: SWAP1 00000fb2: POP 00000fb3: PUSH2 0x0f6e 00000fb6: JUMP 00000fb7: JUMPDEST 00000fb8: POP 00000fb9: POP 00000fba: POP 00000fbb: POP 00000fbc: JUMP 00000fbd: JUMPDEST 00000fbe: PUSH1 0x00 00000fc0: PUSH2 0x0a41 00000fc3: DUP5 00000fc4: DUP5 00000fc5: DUP5 00000fc6: CALLVALUE 00000fc7: PUSH2 0x1a20 00000fca: JUMP 00000fcb: JUMPDEST 00000fcc: PUSH1 0x40 00000fce: DUP1 00000fcf: MLOAD 00000fd0: PUSH1 0x01 00000fd2: DUP1 00000fd3: DUP3 00000fd4: MSTORE 00000fd5: DUP2 00000fd6: DUP4 00000fd7: ADD 00000fd8: SWAP1 00000fd9: SWAP3 00000fda: MSTORE 00000fdb: PUSH1 0x60 00000fdd: SWAP2 00000fde: DUP2 00000fdf: PUSH1 0x20 00000fe1: ADD 00000fe2: JUMPDEST 00000fe3: PUSH1 0x40 00000fe5: DUP1 00000fe6: MLOAD 00000fe7: DUP1 00000fe8: DUP3 00000fe9: ADD 00000fea: SWAP1 00000feb: SWAP2 00000fec: MSTORE 00000fed: PUSH1 0x00 00000fef: DUP1 00000ff0: DUP3 00000ff1: MSTORE 00000ff2: PUSH1 0x20 00000ff4: DUP3 00000ff5: ADD 00000ff6: MSTORE 00000ff7: DUP2 00000ff8: MSTORE 00000ff9: PUSH1 0x20 00000ffb: ADD 00000ffc: SWAP1 00000ffd: PUSH1 0x01 00000fff: SWAP1 00001000: SUB 00001001: SWAP1 00001002: DUP2 00001003: PUSH2 0x0fe2 00001006: JUMPI 00001007: SWAP1 00001008: POP 00001009: POP 0000100a: SWAP1 0000100b: POP 0000100c: PUSH1 0x40 0000100e: MLOAD 0000100f: DUP1 00001010: PUSH1 0x40 00001012: ADD 00001013: PUSH1 0x40 00001015: MSTORE 00001016: DUP1 00001017: PUSH1 0x00 00001019: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000102e: AND 0000102f: DUP2 00001030: MSTORE 00001031: PUSH1 0x20 00001033: ADD 00001034: DUP4 00001035: PUSH2 0x103f 00001038: DUP8 00001039: DUP8 0000103a: DUP8 0000103b: PUSH2 0x1a59 0000103e: JUMP 0000103f: JUMPDEST 00001040: PUSH2 0x1049 00001043: SWAP2 00001044: SWAP1 00001045: PUSH2 0x3323 00001048: JUMP 00001049: JUMPDEST 0000104a: DUP2 0000104b: MSTORE 0000104c: POP 0000104d: DUP2 0000104e: PUSH1 0x00 00001050: DUP2 00001051: MLOAD 00001052: DUP2 00001053: LT 00001054: PUSH2 0x105f 00001057: JUMPI 00001058: PUSH2 0x105f 0000105b: PUSH2 0x32c5 0000105e: JUMP 0000105f: JUMPDEST 00001060: PUSH1 0x20 00001062: MUL 00001063: PUSH1 0x20 00001065: ADD 00001066: ADD 00001067: DUP2 00001068: SWAP1 00001069: MSTORE 0000106a: POP 0000106b: SWAP4 0000106c: SWAP3 0000106d: POP 0000106e: POP 0000106f: POP 00001070: JUMP 00001071: JUMPDEST 00001072: PUSH2 0x1079 00001075: PUSH2 0x1507 00001078: JUMP 00001079: JUMPDEST 0000107a: PUSH1 0x00 0000107c: JUMPDEST 0000107d: DUP2 0000107e: DUP2 0000107f: LT 00001080: ISZERO 00001081: PUSH2 0x0bea 00001084: JUMPI 00001085: PUSH2 0x10d0 00001088: DUP4 00001089: DUP4 0000108a: DUP4 0000108b: DUP2 0000108c: DUP2 0000108d: LT 0000108e: PUSH2 0x1099 00001091: JUMPI 00001092: PUSH2 0x1099 00001095: PUSH2 0x32c5 00001098: JUMP 00001099: JUMPDEST 0000109a: PUSH2 0x10af 0000109d: SWAP3 0000109e: PUSH1 0x20 000010a0: PUSH1 0x40 000010a2: SWAP1 000010a3: SWAP3 000010a4: MUL 000010a5: ADD 000010a6: SWAP1 000010a7: DUP2 000010a8: ADD 000010a9: SWAP2 000010aa: POP 000010ab: PUSH2 0x2d88 000010ae: JUMP 000010af: JUMPDEST 000010b0: DUP5 000010b1: DUP5 000010b2: DUP5 000010b3: DUP2 000010b4: DUP2 000010b5: LT 000010b6: PUSH2 0x10c1 000010b9: JUMPI 000010ba: PUSH2 0x10c1 000010bd: PUSH2 0x32c5 000010c0: JUMP 000010c1: JUMPDEST 000010c2: SWAP1 000010c3: POP 000010c4: PUSH1 0x40 000010c6: MUL 000010c7: ADD 000010c8: PUSH1 0x20 000010ca: ADD 000010cb: CALLDATALOAD 000010cc: PUSH2 0x170f 000010cf: JUMP 000010d0: JUMPDEST 000010d1: PUSH2 0x10db 000010d4: PUSH1 0x01 000010d6: DUP3 000010d7: PUSH2 0x3323 000010da: JUMP 000010db: JUMPDEST 000010dc: SWAP1 000010dd: POP 000010de: PUSH2 0x107c 000010e1: JUMP 000010e2: JUMPDEST 000010e3: PUSH2 0x10ea 000010e6: PUSH2 0x1507 000010e9: JUMP 000010ea: JUMPDEST 000010eb: PUSH2 0x0886 000010ee: DUP3 000010ef: DUP3 000010f0: PUSH2 0x1aa2 000010f3: JUMP 000010f4: JUMPDEST 000010f5: PUSH1 0x00 000010f7: SLOAD 000010f8: PUSH2 0x0100 000010fb: SWAP1 000010fc: DIV 000010fd: PUSH1 0xff 000010ff: AND 00001100: ISZERO 00001101: DUP1 00001102: DUP1 00001103: ISZERO 00001104: PUSH2 0x1114 00001107: JUMPI 00001108: POP 00001109: PUSH1 0x00 0000110b: SLOAD 0000110c: PUSH1 0x01 0000110e: PUSH1 0xff 00001110: SWAP1 00001111: SWAP2 00001112: AND 00001113: LT 00001114: JUMPDEST 00001115: DUP1 00001116: PUSH2 0x112e 00001119: JUMPI 0000111a: POP 0000111b: ADDRESS 0000111c: EXTCODESIZE 0000111d: ISZERO 0000111e: DUP1 0000111f: ISZERO 00001120: PUSH2 0x112e 00001123: JUMPI 00001124: POP 00001125: PUSH1 0x00 00001127: SLOAD 00001128: PUSH1 0xff 0000112a: AND 0000112b: PUSH1 0x01 0000112d: EQ 0000112e: JUMPDEST 0000112f: PUSH2 0x11ba 00001132: JUMPI 00001133: PUSH1 0x40 00001135: MLOAD 00001136: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001157: DUP2 00001158: MSTORE 00001159: PUSH1 0x20 0000115b: PUSH1 0x04 0000115d: DUP3 0000115e: ADD 0000115f: MSTORE 00001160: PUSH1 0x2e 00001162: PUSH1 0x24 00001164: DUP3 00001165: ADD 00001166: MSTORE 00001167: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00001188: PUSH1 0x44 0000118a: DUP3 0000118b: ADD 0000118c: MSTORE 0000118d: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 000011ae: PUSH1 0x64 000011b0: DUP3 000011b1: ADD 000011b2: MSTORE 000011b3: PUSH1 0x84 000011b5: ADD 000011b6: PUSH2 0x094c 000011b9: JUMP 000011ba: JUMPDEST 000011bb: PUSH1 0x00 000011bd: DUP1 000011be: SLOAD 000011bf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000011e0: AND 000011e1: PUSH1 0x01 000011e3: OR 000011e4: SWAP1 000011e5: SSTORE 000011e6: DUP1 000011e7: ISZERO 000011e8: PUSH2 0x1218 000011eb: JUMPI 000011ec: PUSH1 0x00 000011ee: DUP1 000011ef: SLOAD 000011f0: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 00001211: AND 00001212: PUSH2 0x0100 00001215: OR 00001216: SWAP1 00001217: SSTORE 00001218: JUMPDEST 00001219: PUSH2 0x1223 0000121c: DUP5 0000121d: DUP5 0000121e: DUP5 0000121f: PUSH2 0x1ab8 00001222: JUMP 00001223: JUMPDEST 00001224: DUP1 00001225: ISZERO 00001226: PUSH2 0x0fb7 00001229: JUMPI 0000122a: PUSH1 0x00 0000122c: DUP1 0000122d: SLOAD 0000122e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 0000124f: AND 00001250: SWAP1 00001251: SSTORE 00001252: PUSH1 0x40 00001254: MLOAD 00001255: PUSH1 0x01 00001257: DUP2 00001258: MSTORE 00001259: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 0000127a: SWAP1 0000127b: PUSH1 0x20 0000127d: ADD 0000127e: PUSH1 0x40 00001280: MLOAD 00001281: DUP1 00001282: SWAP2 00001283: SUB 00001284: SWAP1 00001285: LOG1 00001286: POP 00001287: POP 00001288: POP 00001289: POP 0000128a: JUMP 0000128b: JUMPDEST 0000128c: PUSH2 0x1293 0000128f: PUSH2 0x1507 00001292: JUMP 00001293: JUMPDEST 00001294: PUSH4 0xffffffff 00001299: AND 0000129a: PUSH1 0x00 0000129c: SWAP1 0000129d: DUP2 0000129e: MSTORE 0000129f: PUSH1 0xcb 000012a1: PUSH1 0x20 000012a3: MSTORE 000012a4: PUSH1 0x40 000012a6: DUP2 000012a7: KECCAK256 000012a8: SSTORE 000012a9: JUMP 000012aa: JUMPDEST 000012ab: PUSH1 0x60 000012ad: PUSH2 0x0ba9 000012b0: PUSH1 0xcd 000012b2: PUSH2 0x15b1 000012b5: JUMP 000012b6: JUMPDEST 000012b7: PUSH2 0x12be 000012ba: PUSH2 0x1507 000012bd: JUMP 000012be: JUMPDEST 000012bf: DUP3 000012c0: DUP2 000012c1: EQ 000012c2: PUSH2 0x1327 000012c5: JUMPI 000012c6: PUSH1 0x40 000012c8: MLOAD 000012c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000012ea: DUP2 000012eb: MSTORE 000012ec: PUSH1 0x20 000012ee: PUSH1 0x04 000012f0: DUP3 000012f1: ADD 000012f2: MSTORE 000012f3: PUSH1 0x07 000012f5: PUSH1 0x24 000012f7: DUP3 000012f8: ADD 000012f9: MSTORE 000012fa: PUSH32 0x216c656e67746800000000000000000000000000000000000000000000000000 0000131b: PUSH1 0x44 0000131d: DUP3 0000131e: ADD 0000131f: MSTORE 00001320: PUSH1 0x64 00001322: ADD 00001323: PUSH2 0x094c 00001326: JUMP 00001327: JUMPDEST 00001328: DUP3 00001329: PUSH1 0x00 0000132b: JUMPDEST 0000132c: DUP2 0000132d: DUP2 0000132e: LT 0000132f: ISZERO 00001330: PUSH2 0x138d 00001333: JUMPI 00001334: PUSH2 0x137b 00001337: DUP7 00001338: DUP7 00001339: DUP4 0000133a: DUP2 0000133b: DUP2 0000133c: LT 0000133d: PUSH2 0x1348 00001340: JUMPI 00001341: PUSH2 0x1348 00001344: PUSH2 0x32c5 00001347: JUMP 00001348: JUMPDEST 00001349: SWAP1 0000134a: POP 0000134b: PUSH1 0x20 0000134d: MUL 0000134e: ADD 0000134f: PUSH1 0x20 00001351: DUP2 00001352: ADD 00001353: SWAP1 00001354: PUSH2 0x135d 00001357: SWAP2 00001358: SWAP1 00001359: PUSH2 0x2d88 0000135c: JUMP 0000135d: JUMPDEST 0000135e: DUP6 0000135f: DUP6 00001360: DUP5 00001361: DUP2 00001362: DUP2 00001363: LT 00001364: PUSH2 0x136f 00001367: JUMPI 00001368: PUSH2 0x136f 0000136b: PUSH2 0x32c5 0000136e: JUMP 0000136f: JUMPDEST 00001370: SWAP1 00001371: POP 00001372: PUSH1 0x20 00001374: MUL 00001375: ADD 00001376: CALLDATALOAD 00001377: PUSH2 0x1aa2 0000137a: JUMP 0000137b: JUMPDEST 0000137c: PUSH2 0x1386 0000137f: PUSH1 0x01 00001381: DUP3 00001382: PUSH2 0x3323 00001385: JUMP 00001386: JUMPDEST 00001387: SWAP1 00001388: POP 00001389: PUSH2 0x132b 0000138c: JUMP 0000138d: JUMPDEST 0000138e: POP 0000138f: POP 00001390: POP 00001391: POP 00001392: POP 00001393: POP 00001394: JUMP 00001395: JUMPDEST 00001396: PUSH2 0x139d 00001399: PUSH2 0x1507 0000139c: JUMP 0000139d: JUMPDEST 0000139e: PUSH2 0x13a6 000013a1: DUP2 000013a2: PUSH2 0x19ec 000013a5: JUMP 000013a6: JUMPDEST 000013a7: POP 000013a8: JUMP 000013a9: JUMPDEST 000013aa: PUSH1 0x00 000013ac: PUSH2 0x09f9 000013af: DUP3 000013b0: DUP3 000013b1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000013d2: PUSH2 0x1a59 000013d5: JUMP 000013d6: JUMPDEST 000013d7: PUSH2 0x13de 000013da: PUSH2 0x1507 000013dd: JUMP 000013de: JUMPDEST 000013df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013f4: DUP2 000013f5: AND 000013f6: PUSH2 0x1481 000013f9: JUMPI 000013fa: PUSH1 0x40 000013fc: MLOAD 000013fd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000141e: DUP2 0000141f: MSTORE 00001420: PUSH1 0x20 00001422: PUSH1 0x04 00001424: DUP3 00001425: ADD 00001426: MSTORE 00001427: PUSH1 0x26 00001429: PUSH1 0x24 0000142b: DUP3 0000142c: ADD 0000142d: MSTORE 0000142e: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 0000144f: PUSH1 0x44 00001451: DUP3 00001452: ADD 00001453: MSTORE 00001454: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 00001475: PUSH1 0x64 00001477: DUP3 00001478: ADD 00001479: MSTORE 0000147a: PUSH1 0x84 0000147c: ADD 0000147d: PUSH2 0x094c 00001480: JUMP 00001481: JUMPDEST 00001482: PUSH2 0x13a6 00001485: DUP2 00001486: PUSH2 0x1975 00001489: JUMP 0000148a: JUMPDEST 0000148b: PUSH2 0x1492 0000148e: PUSH2 0x1507 00001491: JUMP 00001492: JUMPDEST 00001493: PUSH2 0x0886 00001496: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014ab: DUP4 000014ac: AND 000014ad: DUP3 000014ae: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000014cf: PUSH2 0x1b72 000014d2: JUMP 000014d3: JUMPDEST 000014d4: PUSH2 0x14db 000014d7: PUSH2 0x1507 000014da: JUMP 000014db: JUMPDEST 000014dc: PUSH2 0x14e4 000014df: DUP3 000014e0: PUSH2 0x15be 000014e3: JUMP 000014e4: JUMPDEST 000014e5: POP 000014e6: PUSH4 0xffffffff 000014eb: DUP1 000014ec: DUP4 000014ed: AND 000014ee: PUSH1 0x00 000014f0: SWAP1 000014f1: DUP2 000014f2: MSTORE 000014f3: PUSH1 0xcc 000014f5: PUSH1 0x20 000014f7: MSTORE 000014f8: PUSH1 0x40 000014fa: SWAP1 000014fb: KECCAK256 000014fc: PUSH2 0x0bea 000014ff: SWAP2 00001500: DUP4 00001501: SWAP1 00001502: PUSH2 0x1588 00001505: AND 00001506: JUMP 00001507: JUMPDEST 00001508: PUSH1 0x33 0000150a: SLOAD 0000150b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001520: AND 00001521: CALLER 00001522: EQ 00001523: PUSH2 0x0f60 00001526: JUMPI 00001527: PUSH1 0x40 00001529: MLOAD 0000152a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000154b: DUP2 0000154c: MSTORE 0000154d: PUSH1 0x20 0000154f: PUSH1 0x04 00001551: DUP3 00001552: ADD 00001553: DUP2 00001554: SWAP1 00001555: MSTORE 00001556: PUSH1 0x24 00001558: DUP3 00001559: ADD 0000155a: MSTORE 0000155b: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 0000157c: PUSH1 0x44 0000157e: DUP3 0000157f: ADD 00001580: MSTORE 00001581: PUSH1 0x64 00001583: ADD 00001584: PUSH2 0x094c 00001587: JUMP 00001588: JUMPDEST 00001589: PUSH1 0x00 0000158b: PUSH2 0x15aa 0000158e: DUP4 0000158f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015a4: DUP5 000015a5: AND 000015a6: PUSH2 0x1d2b 000015a9: JUMP 000015aa: JUMPDEST 000015ab: SWAP4 000015ac: SWAP3 000015ad: POP 000015ae: POP 000015af: POP 000015b0: JUMP 000015b1: JUMPDEST 000015b2: PUSH1 0x60 000015b4: PUSH1 0x00 000015b6: PUSH2 0x15aa 000015b9: DUP4 000015ba: PUSH2 0x1d7a 000015bd: JUMP 000015be: JUMPDEST 000015bf: PUSH1 0x00 000015c1: DUP1 000015c2: DUP1 000015c3: PUSH2 0x15d6 000015c6: PUSH1 0x97 000015c8: PUSH4 0xffffffff 000015cd: DUP1 000015ce: DUP8 000015cf: AND 000015d0: SWAP1 000015d1: PUSH2 0x1623 000015d4: AND 000015d5: JUMP 000015d6: JUMPDEST 000015d7: SWAP2 000015d8: POP 000015d9: SWAP2 000015da: POP 000015db: DUP2 000015dc: ISZERO 000015dd: PUSH2 0x15e7 000015e0: JUMPI 000015e1: SWAP4 000015e2: SWAP3 000015e3: POP 000015e4: POP 000015e5: POP 000015e6: JUMP 000015e7: JUMPDEST 000015e8: PUSH2 0x15f0 000015eb: DUP5 000015ec: PUSH2 0x1dd6 000015ef: JUMP 000015f0: JUMPDEST 000015f1: PUSH1 0x40 000015f3: MLOAD 000015f4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001615: DUP2 00001616: MSTORE 00001617: PUSH1 0x04 00001619: ADD 0000161a: PUSH2 0x094c 0000161d: SWAP2 0000161e: SWAP1 0000161f: PUSH2 0x317f 00001622: JUMP 00001623: JUMPDEST 00001624: PUSH1 0x00 00001626: DUP1 00001627: PUSH2 0x1630 0000162a: DUP5 0000162b: DUP5 0000162c: PUSH2 0x1e0d 0000162f: JUMP 00001630: JUMPDEST 00001631: SWAP2 00001632: POP 00001633: SWAP2 00001634: POP 00001635: JUMPDEST 00001636: SWAP3 00001637: POP 00001638: SWAP3 00001639: SWAP1 0000163a: POP 0000163b: JUMP 0000163c: JUMPDEST 0000163d: PUSH1 0x00 0000163f: PUSH2 0x15aa 00001642: DUP4 00001643: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001658: DUP5 00001659: AND 0000165a: PUSH2 0x1e47 0000165d: JUMP 0000165e: JUMPDEST 0000165f: PUSH1 0x60 00001661: PUSH1 0x00 00001663: PUSH2 0x166b 00001666: DUP4 00001667: PUSH2 0x1f3a 0000166a: JUMP 0000166b: JUMPDEST 0000166c: SWAP1 0000166d: POP 0000166e: DUP1 0000166f: MLOAD 00001670: PUSH8 0xffffffffffffffff 00001679: DUP2 0000167a: GT 0000167b: ISZERO 0000167c: PUSH2 0x1687 0000167f: JUMPI 00001680: PUSH2 0x1687 00001683: PUSH2 0x3336 00001686: JUMP 00001687: JUMPDEST 00001688: PUSH1 0x40 0000168a: MLOAD 0000168b: SWAP1 0000168c: DUP1 0000168d: DUP3 0000168e: MSTORE 0000168f: DUP1 00001690: PUSH1 0x20 00001692: MUL 00001693: PUSH1 0x20 00001695: ADD 00001696: DUP3 00001697: ADD 00001698: PUSH1 0x40 0000169a: MSTORE 0000169b: DUP1 0000169c: ISZERO 0000169d: PUSH2 0x16b0 000016a0: JUMPI 000016a1: DUP2 000016a2: PUSH1 0x20 000016a4: ADD 000016a5: PUSH1 0x20 000016a7: DUP3 000016a8: MUL 000016a9: DUP1 000016aa: CALLDATASIZE 000016ab: DUP4 000016ac: CALLDATACOPY 000016ad: ADD 000016ae: SWAP1 000016af: POP 000016b0: JUMPDEST 000016b1: POP 000016b2: SWAP2 000016b3: POP 000016b4: PUSH1 0x00 000016b6: JUMPDEST 000016b7: DUP2 000016b8: MLOAD 000016b9: DUP2 000016ba: LT 000016bb: ISZERO 000016bc: PUSH2 0x1708 000016bf: JUMPI 000016c0: DUP2 000016c1: DUP2 000016c2: DUP2 000016c3: MLOAD 000016c4: DUP2 000016c5: LT 000016c6: PUSH2 0x16d1 000016c9: JUMPI 000016ca: PUSH2 0x16d1 000016cd: PUSH2 0x32c5 000016d0: JUMP 000016d1: JUMPDEST 000016d2: PUSH1 0x20 000016d4: MUL 000016d5: PUSH1 0x20 000016d7: ADD 000016d8: ADD 000016d9: MLOAD 000016da: DUP4 000016db: DUP3 000016dc: DUP2 000016dd: MLOAD 000016de: DUP2 000016df: LT 000016e0: PUSH2 0x16eb 000016e3: JUMPI 000016e4: PUSH2 0x16eb 000016e7: PUSH2 0x32c5 000016ea: JUMP 000016eb: JUMPDEST 000016ec: PUSH4 0xffffffff 000016f1: SWAP1 000016f2: SWAP3 000016f3: AND 000016f4: PUSH1 0x20 000016f6: SWAP3 000016f7: DUP4 000016f8: MUL 000016f9: SWAP2 000016fa: SWAP1 000016fb: SWAP2 000016fc: ADD 000016fd: SWAP1 000016fe: SWAP2 000016ff: ADD 00001700: MSTORE 00001701: PUSH1 0x01 00001703: ADD 00001704: PUSH2 0x16b6 00001707: JUMP 00001708: JUMPDEST 00001709: POP 0000170a: POP 0000170b: SWAP2 0000170c: SWAP1 0000170d: POP 0000170e: JUMP 0000170f: JUMPDEST 00001710: PUSH4 0xffffffff 00001715: DUP3 00001716: AND 00001717: PUSH1 0x00 00001719: DUP2 0000171a: DUP2 0000171b: MSTORE 0000171c: PUSH1 0xca 0000171e: PUSH1 0x20 00001720: SWAP1 00001721: DUP2 00001722: MSTORE 00001723: PUSH1 0x40 00001725: SWAP2 00001726: DUP3 00001727: SWAP1 00001728: KECCAK256 00001729: DUP5 0000172a: SWAP1 0000172b: SSTORE 0000172c: DUP2 0000172d: MLOAD 0000172e: SWAP3 0000172f: DUP4 00001730: MSTORE 00001731: DUP3 00001732: ADD 00001733: DUP4 00001734: SWAP1 00001735: MSTORE 00001736: PUSH32 0xc3de732a98b24a2b5c6f67e8a7fb057ffc14046b83968a2c73e4148d2fba978b 00001757: SWAP2 00001758: ADD 00001759: PUSH2 0x09cc 0000175c: JUMP 0000175d: JUMPDEST 0000175e: PUSH1 0x00 00001760: PUSH2 0x1768 00001763: DUP6 00001764: PUSH2 0x1fcb 00001767: JUMP 00001768: JUMPDEST 00001769: POP 0000176a: PUSH2 0x0c36 0000176d: DUP8 0000176e: DUP8 0000176f: DUP8 00001770: PUSH2 0x1779 00001773: DUP2 00001774: CALLVALUE 00001775: PUSH2 0x3365 00001778: JUMP 00001779: JUMPDEST 0000177a: DUP8 0000177b: DUP8 0000177c: PUSH2 0x204b 0000177f: JUMP 00001780: JUMPDEST 00001781: PUSH1 0x00 00001783: PUSH2 0x178c 00001786: DUP4 00001787: DUP4 00001788: PUSH2 0x20d2 0000178b: JUMP 0000178c: JUMPDEST 0000178d: SWAP1 0000178e: POP 0000178f: PUSH1 0x00 00001791: PUSH2 0x179a 00001794: DUP5 00001795: DUP5 00001796: PUSH2 0x20fb 00001799: JUMP 0000179a: JUMPDEST 0000179b: SWAP1 0000179c: POP 0000179d: CALLDATASIZE 0000179e: PUSH1 0x00 000017a0: PUSH2 0x17a9 000017a3: DUP7 000017a4: DUP7 000017a5: PUSH2 0x210b 000017a8: JUMP 000017a9: JUMPDEST 000017aa: SWAP2 000017ab: POP 000017ac: SWAP2 000017ad: POP 000017ae: PUSH2 0x17c9 000017b1: PUSH2 0x17b9 000017b4: DUP6 000017b5: PUSH2 0x211b 000017b8: JUMP 000017b9: JUMPDEST 000017ba: PUSH2 0x17c2 000017bd: DUP6 000017be: PUSH2 0x21c4 000017c1: JUMP 000017c2: JUMPDEST 000017c3: DUP5 000017c4: DUP5 000017c5: PUSH2 0x21f0 000017c8: JUMP 000017c9: JUMPDEST 000017ca: DUP4 000017cb: DUP9 000017cc: PUSH4 0xffffffff 000017d1: AND 000017d2: PUSH32 0xba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6 000017f3: DUP6 000017f4: PUSH1 0x40 000017f6: MLOAD 000017f7: PUSH2 0x0f3c 000017fa: SWAP2 000017fb: DUP2 000017fc: MSTORE 000017fd: PUSH1 0x20 000017ff: ADD 00001800: SWAP1 00001801: JUMP 00001802: JUMPDEST 00001803: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001818: DUP2 00001819: AND 0000181a: PUSH1 0x00 0000181c: SWAP1 0000181d: DUP2 0000181e: MSTORE 0000181f: PUSH1 0x01 00001821: DUP4 00001822: ADD 00001823: PUSH1 0x20 00001825: MSTORE 00001826: PUSH1 0x40 00001828: DUP2 00001829: KECCAK256 0000182a: SLOAD 0000182b: ISZERO 0000182c: ISZERO 0000182d: PUSH2 0x15aa 00001830: JUMP 00001831: JUMPDEST 00001832: PUSH1 0x00 00001834: PUSH2 0x183d 00001837: DUP4 00001838: CALLVALUE 00001839: PUSH2 0x3323 0000183c: JUMP 0000183d: JUMPDEST 0000183e: SWAP1 0000183f: POP 00001840: DUP1 00001841: SELFBALANCE 00001842: LT 00001843: ISZERO 00001844: PUSH2 0x18cf 00001847: JUMPI 00001848: PUSH1 0x40 0000184a: MLOAD 0000184b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000186c: DUP2 0000186d: MSTORE 0000186e: PUSH1 0x20 00001870: PUSH1 0x04 00001872: DUP3 00001873: ADD 00001874: MSTORE 00001875: PUSH1 0x28 00001877: PUSH1 0x24 00001879: DUP3 0000187a: ADD 0000187b: MSTORE 0000187c: PUSH32 0x4e61746976653a20726562616c616e636520616d6f756e742065786365656473 0000189d: PUSH1 0x44 0000189f: DUP3 000018a0: ADD 000018a1: MSTORE 000018a2: PUSH32 0x2062616c616e6365000000000000000000000000000000000000000000000000 000018c3: PUSH1 0x64 000018c5: DUP3 000018c6: ADD 000018c7: MSTORE 000018c8: PUSH1 0x84 000018ca: ADD 000018cb: PUSH2 0x094c 000018ce: JUMP 000018cf: JUMPDEST 000018d0: PUSH1 0x40 000018d2: MLOAD 000018d3: PUSH32 0x81b4e8b400000000000000000000000000000000000000000000000000000000 000018f4: DUP2 000018f5: MSTORE 000018f6: PUSH4 0xffffffff 000018fb: DUP7 000018fc: AND 000018fd: PUSH1 0x04 000018ff: DUP3 00001900: ADD 00001901: MSTORE 00001902: PUSH1 0x24 00001904: DUP2 00001905: ADD 00001906: DUP6 00001907: SWAP1 00001908: MSTORE 00001909: PUSH1 0x44 0000190b: DUP2 0000190c: ADD 0000190d: DUP5 0000190e: SWAP1 0000190f: MSTORE 00001910: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001925: DUP4 00001926: AND 00001927: SWAP1 00001928: PUSH4 0x81b4e8b4 0000192d: SWAP1 0000192e: DUP4 0000192f: SWAP1 00001930: PUSH1 0x64 00001932: ADD 00001933: PUSH1 0x20 00001935: PUSH1 0x40 00001937: MLOAD 00001938: DUP1 00001939: DUP4 0000193a: SUB 0000193b: DUP2 0000193c: DUP6 0000193d: DUP9 0000193e: GAS 0000193f: CALL 00001940: ISZERO 00001941: DUP1 00001942: ISZERO 00001943: PUSH2 0x1950 00001946: JUMPI 00001947: RETURNDATASIZE 00001948: PUSH1 0x00 0000194a: DUP1 0000194b: RETURNDATACOPY 0000194c: RETURNDATASIZE 0000194d: PUSH1 0x00 0000194f: REVERT 00001950: JUMPDEST 00001951: POP 00001952: POP 00001953: POP 00001954: POP 00001955: POP 00001956: PUSH1 0x40 00001958: MLOAD 00001959: RETURNDATASIZE 0000195a: PUSH1 0x1f 0000195c: NOT 0000195d: PUSH1 0x1f 0000195f: DUP3 00001960: ADD 00001961: AND 00001962: DUP3 00001963: ADD 00001964: DUP1 00001965: PUSH1 0x40 00001967: MSTORE 00001968: POP 00001969: DUP2 0000196a: ADD 0000196b: SWAP1 0000196c: PUSH2 0x138d 0000196f: SWAP2 00001970: SWAP1 00001971: PUSH2 0x3378 00001974: JUMP 00001975: JUMPDEST 00001976: PUSH1 0x33 00001978: DUP1 00001979: SLOAD 0000197a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000198f: DUP4 00001990: DUP2 00001991: AND 00001992: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000019b3: DUP4 000019b4: AND 000019b5: DUP2 000019b6: OR 000019b7: SWAP1 000019b8: SWAP4 000019b9: SSTORE 000019ba: PUSH1 0x40 000019bc: MLOAD 000019bd: SWAP2 000019be: AND 000019bf: SWAP2 000019c0: SWAP1 000019c1: DUP3 000019c2: SWAP1 000019c3: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000019e4: SWAP1 000019e5: PUSH1 0x00 000019e7: SWAP1 000019e8: LOG3 000019e9: POP 000019ea: POP 000019eb: JUMP 000019ec: JUMPDEST 000019ed: PUSH4 0xffffffff 000019f2: DUP2 000019f3: AND 000019f4: PUSH1 0x00 000019f6: SWAP1 000019f7: DUP2 000019f8: MSTORE 000019f9: PUSH1 0xcb 000019fb: PUSH1 0x20 000019fd: SWAP1 000019fe: DUP2 000019ff: MSTORE 00001a00: PUSH1 0x40 00001a02: DUP1 00001a03: DUP4 00001a04: KECCAK256 00001a05: DUP4 00001a06: SWAP1 00001a07: SSTORE 00001a08: PUSH1 0xcc 00001a0a: SWAP1 00001a0b: SWAP2 00001a0c: MSTORE 00001a0d: SWAP1 00001a0e: KECCAK256 00001a0f: PUSH2 0x1a17 00001a12: SWAP1 00001a13: PUSH2 0x21fa 00001a16: JUMP 00001a17: JUMPDEST 00001a18: PUSH2 0x13a6 00001a1b: DUP2 00001a1c: PUSH2 0x2252 00001a1f: JUMP 00001a20: JUMPDEST 00001a21: PUSH1 0x00 00001a23: PUSH2 0x1a50 00001a26: DUP6 00001a27: DUP6 00001a28: DUP6 00001a29: DUP6 00001a2a: PUSH2 0x1a32 00001a2d: DUP11 00001a2e: PUSH2 0x22a7 00001a31: JUMP 00001a32: JUMPDEST 00001a33: PUSH1 0x65 00001a35: SLOAD 00001a36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a4b: AND 00001a4c: PUSH2 0x175d 00001a4f: JUMP 00001a50: JUMPDEST 00001a51: SWAP6 00001a52: SWAP5 00001a53: POP 00001a54: POP 00001a55: POP 00001a56: POP 00001a57: POP 00001a58: JUMP 00001a59: JUMPDEST 00001a5a: PUSH1 0x40 00001a5c: DUP1 00001a5d: MLOAD 00001a5e: PUSH1 0x20 00001a60: DUP2 00001a61: ADD 00001a62: DUP5 00001a63: SWAP1 00001a64: MSTORE 00001a65: DUP1 00001a66: DUP3 00001a67: ADD 00001a68: DUP4 00001a69: SWAP1 00001a6a: MSTORE 00001a6b: DUP2 00001a6c: MLOAD 00001a6d: DUP1 00001a6e: DUP3 00001a6f: SUB 00001a70: DUP4 00001a71: ADD 00001a72: DUP2 00001a73: MSTORE 00001a74: PUSH1 0x60 00001a76: SWAP1 00001a77: SWAP2 00001a78: ADD 00001a79: SWAP1 00001a7a: SWAP2 00001a7b: MSTORE 00001a7c: PUSH1 0x00 00001a7e: SWAP1 00001a7f: PUSH2 0x0a41 00001a82: SWAP1 00001a83: DUP6 00001a84: SWAP1 00001a85: PUSH1 0x65 00001a87: SLOAD 00001a88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a9d: AND 00001a9e: PUSH2 0x22c9 00001aa1: JUMP 00001aa2: JUMPDEST 00001aa3: PUSH2 0x0886 00001aa6: PUSH1 0x97 00001aa8: PUSH4 0xffffffff 00001aad: DUP1 00001aae: DUP6 00001aaf: AND 00001ab0: SWAP1 00001ab1: DUP5 00001ab2: SWAP1 00001ab3: PUSH2 0x22df 00001ab6: AND 00001ab7: JUMP 00001ab8: JUMPDEST 00001ab9: PUSH1 0x00 00001abb: SLOAD 00001abc: PUSH2 0x0100 00001abf: SWAP1 00001ac0: DIV 00001ac1: PUSH1 0xff 00001ac3: AND 00001ac4: PUSH2 0x1b4f 00001ac7: JUMPI 00001ac8: PUSH1 0x40 00001aca: MLOAD 00001acb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001aec: DUP2 00001aed: MSTORE 00001aee: PUSH1 0x20 00001af0: PUSH1 0x04 00001af2: DUP3 00001af3: ADD 00001af4: MSTORE 00001af5: PUSH1 0x2b 00001af7: PUSH1 0x24 00001af9: DUP3 00001afa: ADD 00001afb: MSTORE 00001afc: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00001b1d: PUSH1 0x44 00001b1f: DUP3 00001b20: ADD 00001b21: MSTORE 00001b22: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00001b43: PUSH1 0x64 00001b45: DUP3 00001b46: ADD 00001b47: MSTORE 00001b48: PUSH1 0x84 00001b4a: ADD 00001b4b: PUSH2 0x094c 00001b4e: JUMP 00001b4f: JUMPDEST 00001b50: PUSH2 0x1b57 00001b53: PUSH2 0x22ea 00001b56: JUMP 00001b57: JUMPDEST 00001b58: PUSH2 0x1b60 00001b5b: DUP4 00001b5c: PUSH2 0x0a49 00001b5f: JUMP 00001b60: JUMPDEST 00001b61: PUSH2 0x1b69 00001b64: DUP3 00001b65: PUSH2 0x088a 00001b68: JUMP 00001b69: JUMPDEST 00001b6a: PUSH2 0x0bea 00001b6d: DUP2 00001b6e: PUSH2 0x1975 00001b71: JUMP 00001b72: JUMPDEST 00001b73: DUP1 00001b74: ISZERO 00001b75: DUP1 00001b76: PUSH2 0x1c12 00001b79: JUMPI 00001b7a: POP 00001b7b: PUSH1 0x40 00001b7d: MLOAD 00001b7e: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 00001b9f: DUP2 00001ba0: MSTORE 00001ba1: ADDRESS 00001ba2: PUSH1 0x04 00001ba4: DUP3 00001ba5: ADD 00001ba6: MSTORE 00001ba7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bbc: DUP4 00001bbd: DUP2 00001bbe: AND 00001bbf: PUSH1 0x24 00001bc1: DUP4 00001bc2: ADD 00001bc3: MSTORE 00001bc4: DUP5 00001bc5: AND 00001bc6: SWAP1 00001bc7: PUSH4 0xdd62ed3e 00001bcc: SWAP1 00001bcd: PUSH1 0x44 00001bcf: ADD 00001bd0: PUSH1 0x20 00001bd2: PUSH1 0x40 00001bd4: MLOAD 00001bd5: DUP1 00001bd6: DUP4 00001bd7: SUB 00001bd8: DUP2 00001bd9: DUP7 00001bda: GAS 00001bdb: STATICCALL 00001bdc: ISZERO 00001bdd: DUP1 00001bde: ISZERO 00001bdf: PUSH2 0x1bec 00001be2: JUMPI 00001be3: RETURNDATASIZE 00001be4: PUSH1 0x00 00001be6: DUP1 00001be7: RETURNDATACOPY 00001be8: RETURNDATASIZE 00001be9: PUSH1 0x00 00001beb: REVERT 00001bec: JUMPDEST 00001bed: POP 00001bee: POP 00001bef: POP 00001bf0: POP 00001bf1: PUSH1 0x40 00001bf3: MLOAD 00001bf4: RETURNDATASIZE 00001bf5: PUSH1 0x1f 00001bf7: NOT 00001bf8: PUSH1 0x1f 00001bfa: DUP3 00001bfb: ADD 00001bfc: AND 00001bfd: DUP3 00001bfe: ADD 00001bff: DUP1 00001c00: PUSH1 0x40 00001c02: MSTORE 00001c03: POP 00001c04: DUP2 00001c05: ADD 00001c06: SWAP1 00001c07: PUSH2 0x1c10 00001c0a: SWAP2 00001c0b: SWAP1 00001c0c: PUSH2 0x3378 00001c0f: JUMP 00001c10: JUMPDEST 00001c11: ISZERO 00001c12: JUMPDEST 00001c13: PUSH2 0x1c9e 00001c16: JUMPI 00001c17: PUSH1 0x40 00001c19: MLOAD 00001c1a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c3b: DUP2 00001c3c: MSTORE 00001c3d: PUSH1 0x20 00001c3f: PUSH1 0x04 00001c41: DUP3 00001c42: ADD 00001c43: MSTORE 00001c44: PUSH1 0x36 00001c46: PUSH1 0x24 00001c48: DUP3 00001c49: ADD 00001c4a: MSTORE 00001c4b: PUSH32 0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f 00001c6c: PUSH1 0x44 00001c6e: DUP3 00001c6f: ADD 00001c70: MSTORE 00001c71: PUSH32 0x20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000 00001c92: PUSH1 0x64 00001c94: DUP3 00001c95: ADD 00001c96: MSTORE 00001c97: PUSH1 0x84 00001c99: ADD 00001c9a: PUSH2 0x094c 00001c9d: JUMP 00001c9e: JUMPDEST 00001c9f: PUSH1 0x40 00001ca1: DUP1 00001ca2: MLOAD 00001ca3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cb8: DUP5 00001cb9: AND 00001cba: PUSH1 0x24 00001cbc: DUP3 00001cbd: ADD 00001cbe: MSTORE 00001cbf: PUSH1 0x44 00001cc1: DUP1 00001cc2: DUP3 00001cc3: ADD 00001cc4: DUP5 00001cc5: SWAP1 00001cc6: MSTORE 00001cc7: DUP3 00001cc8: MLOAD 00001cc9: DUP1 00001cca: DUP4 00001ccb: SUB 00001ccc: SWAP1 00001ccd: SWAP2 00001cce: ADD 00001ccf: DUP2 00001cd0: MSTORE 00001cd1: PUSH1 0x64 00001cd3: SWAP1 00001cd4: SWAP2 00001cd5: ADD 00001cd6: SWAP1 00001cd7: SWAP2 00001cd8: MSTORE 00001cd9: PUSH1 0x20 00001cdb: DUP2 00001cdc: ADD 00001cdd: DUP1 00001cde: MLOAD 00001cdf: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001cfc: AND 00001cfd: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00001d1e: OR 00001d1f: SWAP1 00001d20: MSTORE 00001d21: PUSH2 0x0bea 00001d24: SWAP1 00001d25: DUP5 00001d26: SWAP1 00001d27: PUSH2 0x2389 00001d2a: JUMP 00001d2b: JUMPDEST 00001d2c: PUSH1 0x00 00001d2e: DUP2 00001d2f: DUP2 00001d30: MSTORE 00001d31: PUSH1 0x01 00001d33: DUP4 00001d34: ADD 00001d35: PUSH1 0x20 00001d37: MSTORE 00001d38: PUSH1 0x40 00001d3a: DUP2 00001d3b: KECCAK256 00001d3c: SLOAD 00001d3d: PUSH2 0x1d72 00001d40: JUMPI 00001d41: POP 00001d42: DUP2 00001d43: SLOAD 00001d44: PUSH1 0x01 00001d46: DUP2 00001d47: DUP2 00001d48: ADD 00001d49: DUP5 00001d4a: SSTORE 00001d4b: PUSH1 0x00 00001d4d: DUP5 00001d4e: DUP2 00001d4f: MSTORE 00001d50: PUSH1 0x20 00001d52: DUP1 00001d53: DUP3 00001d54: KECCAK256 00001d55: SWAP1 00001d56: SWAP4 00001d57: ADD 00001d58: DUP5 00001d59: SWAP1 00001d5a: SSTORE 00001d5b: DUP5 00001d5c: SLOAD 00001d5d: DUP5 00001d5e: DUP3 00001d5f: MSTORE 00001d60: DUP3 00001d61: DUP7 00001d62: ADD 00001d63: SWAP1 00001d64: SWAP4 00001d65: MSTORE 00001d66: PUSH1 0x40 00001d68: SWAP1 00001d69: KECCAK256 00001d6a: SWAP2 00001d6b: SWAP1 00001d6c: SWAP2 00001d6d: SSTORE 00001d6e: PUSH2 0x09f9 00001d71: JUMP 00001d72: JUMPDEST 00001d73: POP 00001d74: PUSH1 0x00 00001d76: PUSH2 0x09f9 00001d79: JUMP 00001d7a: JUMPDEST 00001d7b: PUSH1 0x60 00001d7d: DUP2 00001d7e: PUSH1 0x00 00001d80: ADD 00001d81: DUP1 00001d82: SLOAD 00001d83: DUP1 00001d84: PUSH1 0x20 00001d86: MUL 00001d87: PUSH1 0x20 00001d89: ADD 00001d8a: PUSH1 0x40 00001d8c: MLOAD 00001d8d: SWAP1 00001d8e: DUP2 00001d8f: ADD 00001d90: PUSH1 0x40 00001d92: MSTORE 00001d93: DUP1 00001d94: SWAP3 00001d95: SWAP2 00001d96: SWAP1 00001d97: DUP2 00001d98: DUP2 00001d99: MSTORE 00001d9a: PUSH1 0x20 00001d9c: ADD 00001d9d: DUP3 00001d9e: DUP1 00001d9f: SLOAD 00001da0: DUP1 00001da1: ISZERO 00001da2: PUSH2 0x1dca 00001da5: JUMPI 00001da6: PUSH1 0x20 00001da8: MUL 00001da9: DUP3 00001daa: ADD 00001dab: SWAP2 00001dac: SWAP1 00001dad: PUSH1 0x00 00001daf: MSTORE 00001db0: PUSH1 0x20 00001db2: PUSH1 0x00 00001db4: KECCAK256 00001db5: SWAP1 00001db6: JUMPDEST 00001db7: DUP2 00001db8: SLOAD 00001db9: DUP2 00001dba: MSTORE 00001dbb: PUSH1 0x20 00001dbd: ADD 00001dbe: SWAP1 00001dbf: PUSH1 0x01 00001dc1: ADD 00001dc2: SWAP1 00001dc3: DUP1 00001dc4: DUP4 00001dc5: GT 00001dc6: PUSH2 0x1db6 00001dc9: JUMPI 00001dca: JUMPDEST 00001dcb: POP 00001dcc: POP 00001dcd: POP 00001dce: POP 00001dcf: POP 00001dd0: SWAP1 00001dd1: POP 00001dd2: SWAP2 00001dd3: SWAP1 00001dd4: POP 00001dd5: JUMP 00001dd6: JUMPDEST 00001dd7: PUSH1 0x60 00001dd9: PUSH2 0x1de7 00001ddc: DUP3 00001ddd: PUSH4 0xffffffff 00001de2: AND 00001de3: PUSH2 0x2498 00001de6: JUMP 00001de7: JUMPDEST 00001de8: PUSH1 0x40 00001dea: MLOAD 00001deb: PUSH1 0x20 00001ded: ADD 00001dee: PUSH2 0x1df7 00001df1: SWAP2 00001df2: SWAP1 00001df3: PUSH2 0x3391 00001df6: JUMP 00001df7: JUMPDEST 00001df8: PUSH1 0x40 00001dfa: MLOAD 00001dfb: PUSH1 0x20 00001dfd: DUP2 00001dfe: DUP4 00001dff: SUB 00001e00: SUB 00001e01: DUP2 00001e02: MSTORE 00001e03: SWAP1 00001e04: PUSH1 0x40 00001e06: MSTORE 00001e07: SWAP1 00001e08: POP 00001e09: SWAP2 00001e0a: SWAP1 00001e0b: POP 00001e0c: JUMP 00001e0d: JUMPDEST 00001e0e: PUSH1 0x00 00001e10: DUP2 00001e11: DUP2 00001e12: MSTORE 00001e13: PUSH1 0x02 00001e15: DUP4 00001e16: ADD 00001e17: PUSH1 0x20 00001e19: MSTORE 00001e1a: PUSH1 0x40 00001e1c: DUP2 00001e1d: KECCAK256 00001e1e: SLOAD 00001e1f: DUP2 00001e20: SWAP1 00001e21: DUP1 00001e22: PUSH2 0x1e3c 00001e25: JUMPI 00001e26: PUSH2 0x1e2f 00001e29: DUP6 00001e2a: DUP6 00001e2b: PUSH2 0x2556 00001e2e: JUMP 00001e2f: JUMPDEST 00001e30: SWAP3 00001e31: POP 00001e32: PUSH1 0x00 00001e34: SWAP2 00001e35: POP 00001e36: PUSH2 0x1635 00001e39: SWAP1 00001e3a: POP 00001e3b: JUMP 00001e3c: JUMPDEST 00001e3d: PUSH1 0x01 00001e3f: SWAP3 00001e40: POP 00001e41: SWAP1 00001e42: POP 00001e43: PUSH2 0x1635 00001e46: JUMP 00001e47: JUMPDEST 00001e48: PUSH1 0x00 00001e4a: DUP2 00001e4b: DUP2 00001e4c: MSTORE 00001e4d: PUSH1 0x01 00001e4f: DUP4 00001e50: ADD 00001e51: PUSH1 0x20 00001e53: MSTORE 00001e54: PUSH1 0x40 00001e56: DUP2 00001e57: KECCAK256 00001e58: SLOAD 00001e59: DUP1 00001e5a: ISZERO 00001e5b: PUSH2 0x1f30 00001e5e: JUMPI 00001e5f: PUSH1 0x00 00001e61: PUSH2 0x1e6b 00001e64: PUSH1 0x01 00001e66: DUP4 00001e67: PUSH2 0x3365 00001e6a: JUMP 00001e6b: JUMPDEST 00001e6c: DUP6 00001e6d: SLOAD 00001e6e: SWAP1 00001e6f: SWAP2 00001e70: POP 00001e71: PUSH1 0x00 00001e73: SWAP1 00001e74: PUSH2 0x1e7f 00001e77: SWAP1 00001e78: PUSH1 0x01 00001e7a: SWAP1 00001e7b: PUSH2 0x3365 00001e7e: JUMP 00001e7f: JUMPDEST 00001e80: SWAP1 00001e81: POP 00001e82: DUP2 00001e83: DUP2 00001e84: EQ 00001e85: PUSH2 0x1ee4 00001e88: JUMPI 00001e89: PUSH1 0x00 00001e8b: DUP7 00001e8c: PUSH1 0x00 00001e8e: ADD 00001e8f: DUP3 00001e90: DUP2 00001e91: SLOAD 00001e92: DUP2 00001e93: LT 00001e94: PUSH2 0x1e9f 00001e97: JUMPI 00001e98: PUSH2 0x1e9f 00001e9b: PUSH2 0x32c5 00001e9e: JUMP 00001e9f: JUMPDEST 00001ea0: SWAP1 00001ea1: PUSH1 0x00 00001ea3: MSTORE 00001ea4: PUSH1 0x20 00001ea6: PUSH1 0x00 00001ea8: KECCAK256 00001ea9: ADD 00001eaa: SLOAD 00001eab: SWAP1 00001eac: POP 00001ead: DUP1 00001eae: DUP8 00001eaf: PUSH1 0x00 00001eb1: ADD 00001eb2: DUP5 00001eb3: DUP2 00001eb4: SLOAD 00001eb5: DUP2 00001eb6: LT 00001eb7: PUSH2 0x1ec2 00001eba: JUMPI 00001ebb: PUSH2 0x1ec2 00001ebe: PUSH2 0x32c5 00001ec1: JUMP 00001ec2: JUMPDEST 00001ec3: PUSH1 0x00 00001ec5: SWAP2 00001ec6: DUP3 00001ec7: MSTORE 00001ec8: PUSH1 0x20 00001eca: DUP1 00001ecb: DUP4 00001ecc: KECCAK256 00001ecd: SWAP1 00001ece: SWAP2 00001ecf: ADD 00001ed0: SWAP3 00001ed1: SWAP1 00001ed2: SWAP3 00001ed3: SSTORE 00001ed4: SWAP2 00001ed5: DUP3 00001ed6: MSTORE 00001ed7: PUSH1 0x01 00001ed9: DUP9 00001eda: ADD 00001edb: SWAP1 00001edc: MSTORE 00001edd: PUSH1 0x40 00001edf: SWAP1 00001ee0: KECCAK256 00001ee1: DUP4 00001ee2: SWAP1 00001ee3: SSTORE 00001ee4: JUMPDEST 00001ee5: DUP6 00001ee6: SLOAD 00001ee7: DUP7 00001ee8: SWAP1 00001ee9: DUP1 00001eea: PUSH2 0x1ef5 00001eed: JUMPI 00001eee: PUSH2 0x1ef5 00001ef1: PUSH2 0x33d6 00001ef4: JUMP 00001ef5: JUMPDEST 00001ef6: PUSH1 0x01 00001ef8: SWAP1 00001ef9: SUB 00001efa: DUP2 00001efb: DUP2 00001efc: SWAP1 00001efd: PUSH1 0x00 00001eff: MSTORE 00001f00: PUSH1 0x20 00001f02: PUSH1 0x00 00001f04: KECCAK256 00001f05: ADD 00001f06: PUSH1 0x00 00001f08: SWAP1 00001f09: SSTORE 00001f0a: SWAP1 00001f0b: SSTORE 00001f0c: DUP6 00001f0d: PUSH1 0x01 00001f0f: ADD 00001f10: PUSH1 0x00 00001f12: DUP7 00001f13: DUP2 00001f14: MSTORE 00001f15: PUSH1 0x20 00001f17: ADD 00001f18: SWAP1 00001f19: DUP2 00001f1a: MSTORE 00001f1b: PUSH1 0x20 00001f1d: ADD 00001f1e: PUSH1 0x00 00001f20: KECCAK256 00001f21: PUSH1 0x00 00001f23: SWAP1 00001f24: SSTORE 00001f25: PUSH1 0x01 00001f27: SWAP4 00001f28: POP 00001f29: POP 00001f2a: POP 00001f2b: POP 00001f2c: PUSH2 0x09f9 00001f2f: JUMP 00001f30: JUMPDEST 00001f31: PUSH1 0x00 00001f33: SWAP2 00001f34: POP 00001f35: POP 00001f36: PUSH2 0x09f9 00001f39: JUMP 00001f3a: JUMPDEST 00001f3b: PUSH1 0x60 00001f3d: PUSH1 0x00 00001f3f: PUSH2 0x1f47 00001f42: DUP4 00001f43: PUSH2 0x2562 00001f46: JUMP 00001f47: JUMPDEST 00001f48: SWAP1 00001f49: POP 00001f4a: DUP1 00001f4b: PUSH8 0xffffffffffffffff 00001f54: DUP2 00001f55: GT 00001f56: ISZERO 00001f57: PUSH2 0x1f62 00001f5a: JUMPI 00001f5b: PUSH2 0x1f62 00001f5e: PUSH2 0x3336 00001f61: JUMP 00001f62: JUMPDEST 00001f63: PUSH1 0x40 00001f65: MLOAD 00001f66: SWAP1 00001f67: DUP1 00001f68: DUP3 00001f69: MSTORE 00001f6a: DUP1 00001f6b: PUSH1 0x20 00001f6d: MUL 00001f6e: PUSH1 0x20 00001f70: ADD 00001f71: DUP3 00001f72: ADD 00001f73: PUSH1 0x40 00001f75: MSTORE 00001f76: DUP1 00001f77: ISZERO 00001f78: PUSH2 0x1f8b 00001f7b: JUMPI 00001f7c: DUP2 00001f7d: PUSH1 0x20 00001f7f: ADD 00001f80: PUSH1 0x20 00001f82: DUP3 00001f83: MUL 00001f84: DUP1 00001f85: CALLDATASIZE 00001f86: DUP4 00001f87: CALLDATACOPY 00001f88: ADD 00001f89: SWAP1 00001f8a: POP 00001f8b: JUMPDEST 00001f8c: POP 00001f8d: SWAP2 00001f8e: POP 00001f8f: PUSH1 0x00 00001f91: JUMPDEST 00001f92: DUP2 00001f93: DUP2 00001f94: LT 00001f95: ISZERO 00001f96: PUSH2 0x1708 00001f99: JUMPI 00001f9a: PUSH2 0x1fa3 00001f9d: DUP5 00001f9e: DUP3 00001f9f: PUSH2 0x256d 00001fa2: JUMP 00001fa3: JUMPDEST 00001fa4: PUSH1 0x00 00001fa6: SHR 00001fa7: DUP4 00001fa8: DUP3 00001fa9: DUP2 00001faa: MLOAD 00001fab: DUP2 00001fac: LT 00001fad: PUSH2 0x1fb8 00001fb0: JUMPI 00001fb1: PUSH2 0x1fb8 00001fb4: PUSH2 0x32c5 00001fb7: JUMP 00001fb8: JUMPDEST 00001fb9: PUSH1 0x20 00001fbb: SWAP1 00001fbc: DUP2 00001fbd: MUL 00001fbe: SWAP2 00001fbf: SWAP1 00001fc0: SWAP2 00001fc1: ADD 00001fc2: ADD 00001fc3: MSTORE 00001fc4: PUSH1 0x01 00001fc6: ADD 00001fc7: PUSH2 0x1f91 00001fca: JUMP 00001fcb: JUMPDEST 00001fcc: PUSH1 0x60 00001fce: DUP2 00001fcf: CALLVALUE 00001fd0: LT 00001fd1: ISZERO 00001fd2: PUSH2 0x2037 00001fd5: JUMPI 00001fd6: PUSH1 0x40 00001fd8: MLOAD 00001fd9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001ffa: DUP2 00001ffb: MSTORE 00001ffc: PUSH1 0x20 00001ffe: PUSH1 0x04 00002000: DUP3 00002001: ADD 00002002: DUP2 00002003: SWAP1 00002004: MSTORE 00002005: PUSH1 0x24 00002007: DUP3 00002008: ADD 00002009: MSTORE 0000200a: PUSH32 0x4e61746976653a20616d6f756e742065786365656473206d73672e76616c7565 0000202b: PUSH1 0x44 0000202d: DUP3 0000202e: ADD 0000202f: MSTORE 00002030: PUSH1 0x64 00002032: ADD 00002033: PUSH2 0x094c 00002036: JUMP 00002037: JUMPDEST 00002038: POP 00002039: POP 0000203a: PUSH1 0x40 0000203c: DUP1 0000203d: MLOAD 0000203e: PUSH1 0x20 00002040: DUP2 00002041: ADD 00002042: SWAP1 00002043: SWAP2 00002044: MSTORE 00002045: PUSH1 0x00 00002047: DUP2 00002048: MSTORE 00002049: SWAP1 0000204a: JUMP 0000204b: JUMPDEST 0000204c: PUSH1 0x00 0000204e: DUP1 0000204f: PUSH2 0x2057 00002052: DUP7 00002053: PUSH2 0x1fcb 00002056: JUMP 00002057: JUMPDEST 00002058: SWAP1 00002059: POP 0000205a: PUSH1 0x00 0000205c: PUSH2 0x2064 0000205f: DUP8 00002060: PUSH2 0x2579 00002063: JUMP 00002064: JUMPDEST 00002065: SWAP1 00002066: POP 00002067: PUSH1 0x00 00002069: PUSH2 0x2073 0000206c: DUP10 0000206d: DUP4 0000206e: DUP6 0000206f: PUSH2 0x25a5 00002072: JUMP 00002073: JUMPDEST 00002074: SWAP1 00002075: POP 00002076: PUSH2 0x2082 00002079: DUP11 0000207a: DUP9 0000207b: DUP4 0000207c: DUP10 0000207d: DUP10 0000207e: PUSH2 0x25d4 00002081: JUMP 00002082: JUMPDEST 00002083: SWAP4 00002084: POP 00002085: DUP9 00002086: DUP11 00002087: PUSH4 0xffffffff 0000208c: AND 0000208d: PUSH32 0xd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec 000020ae: DUP5 000020af: PUSH1 0x40 000020b1: MLOAD 000020b2: PUSH2 0x20bd 000020b5: SWAP2 000020b6: DUP2 000020b7: MSTORE 000020b8: PUSH1 0x20 000020ba: ADD 000020bb: SWAP1 000020bc: JUMP 000020bd: JUMPDEST 000020be: PUSH1 0x40 000020c0: MLOAD 000020c1: DUP1 000020c2: SWAP2 000020c3: SUB 000020c4: SWAP1 000020c5: LOG3 000020c6: POP 000020c7: POP 000020c8: POP 000020c9: SWAP7 000020ca: SWAP6 000020cb: POP 000020cc: POP 000020cd: POP 000020ce: POP 000020cf: POP 000020d0: POP 000020d1: JUMP 000020d2: JUMPDEST 000020d3: PUSH1 0x00 000020d5: DUP3 000020d6: DUP2 000020d7: DUP4 000020d8: PUSH2 0x20e2 000020db: DUP3 000020dc: PUSH1 0x20 000020de: PUSH2 0x3405 000020e1: JUMP 000020e2: JUMPDEST 000020e3: PUSH1 0xff 000020e5: AND 000020e6: SWAP3 000020e7: PUSH2 0x20f2 000020ea: SWAP4 000020eb: SWAP3 000020ec: SWAP2 000020ed: SWAP1 000020ee: PUSH2 0x341e 000020f1: JUMP 000020f2: JUMPDEST 000020f3: PUSH2 0x15aa 000020f6: SWAP2 000020f7: PUSH2 0x3448 000020fa: JUMP 000020fb: JUMPDEST 000020fc: PUSH1 0x00 000020fe: DUP3 000020ff: PUSH1 0x20 00002101: DUP4 00002102: PUSH2 0x20e2 00002105: DUP3 00002106: DUP1 00002107: PUSH2 0x3405 0000210a: JUMP 0000210b: JUMPDEST 0000210c: CALLDATASIZE 0000210d: PUSH1 0x00 0000210f: PUSH2 0x1630 00002112: DUP4 00002113: PUSH1 0x40 00002115: DUP2 00002116: DUP8 00002117: PUSH2 0x341e 0000211a: JUMP 0000211b: JUMPDEST 0000211c: PUSH1 0x00 0000211e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002133: DUP3 00002134: GT 00002135: ISZERO 00002136: PUSH2 0x21c0 00002139: JUMPI 0000213a: PUSH1 0x40 0000213c: MLOAD 0000213d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000215e: DUP2 0000215f: MSTORE 00002160: PUSH1 0x20 00002162: PUSH1 0x04 00002164: DUP3 00002165: ADD 00002166: MSTORE 00002167: PUSH1 0x24 00002169: DUP1 0000216a: DUP3 0000216b: ADD 0000216c: MSTORE 0000216d: PUSH32 0x5479706543617374733a2062797465733332546f41646472657373206f766572 0000218e: PUSH1 0x44 00002190: DUP3 00002191: ADD 00002192: MSTORE 00002193: PUSH32 0x666c6f7700000000000000000000000000000000000000000000000000000000 000021b4: PUSH1 0x64 000021b6: DUP3 000021b7: ADD 000021b8: MSTORE 000021b9: PUSH1 0x84 000021bb: ADD 000021bc: PUSH2 0x094c 000021bf: JUMP 000021c0: JUMPDEST 000021c1: POP 000021c2: SWAP1 000021c3: JUMP 000021c4: JUMPDEST 000021c5: PUSH1 0x00 000021c7: PUSH2 0x09f9 000021ca: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 000021eb: DUP4 000021ec: PUSH2 0x3484 000021ef: JUMP 000021f0: JUMPDEST 000021f1: PUSH2 0x0fb7 000021f4: DUP5 000021f5: DUP5 000021f6: PUSH2 0x2687 000021f9: JUMP 000021fa: JUMPDEST 000021fb: DUP1 000021fc: SLOAD 000021fd: PUSH1 0x00 000021ff: JUMPDEST 00002200: DUP2 00002201: DUP2 00002202: LT 00002203: ISZERO 00002204: PUSH2 0x224a 00002207: JUMPI 00002208: DUP3 00002209: PUSH1 0x01 0000220b: ADD 0000220c: PUSH1 0x00 0000220e: DUP5 0000220f: PUSH1 0x00 00002211: ADD 00002212: DUP4 00002213: DUP2 00002214: SLOAD 00002215: DUP2 00002216: LT 00002217: PUSH2 0x2222 0000221a: JUMPI 0000221b: PUSH2 0x2222 0000221e: PUSH2 0x32c5 00002221: JUMP 00002222: JUMPDEST 00002223: SWAP1 00002224: PUSH1 0x00 00002226: MSTORE 00002227: PUSH1 0x20 00002229: PUSH1 0x00 0000222b: KECCAK256 0000222c: ADD 0000222d: SLOAD 0000222e: DUP2 0000222f: MSTORE 00002230: PUSH1 0x20 00002232: ADD 00002233: SWAP1 00002234: DUP2 00002235: MSTORE 00002236: PUSH1 0x20 00002238: ADD 00002239: PUSH1 0x00 0000223b: KECCAK256 0000223c: PUSH1 0x00 0000223e: SWAP1 0000223f: SSTORE 00002240: DUP1 00002241: PUSH1 0x01 00002243: ADD 00002244: SWAP1 00002245: POP 00002246: PUSH2 0x21ff 00002249: JUMP 0000224a: JUMPDEST 0000224b: POP 0000224c: POP 0000224d: PUSH1 0x00 0000224f: SWAP1 00002250: SSTORE 00002251: JUMP 00002252: JUMPDEST 00002253: PUSH2 0x2266 00002256: PUSH1 0x97 00002258: PUSH4 0xffffffff 0000225d: DUP1 0000225e: DUP5 0000225f: AND 00002260: SWAP1 00002261: PUSH2 0x27e1 00002264: AND 00002265: JUMP 00002266: JUMPDEST 00002267: PUSH2 0x226f 0000226a: DUP3 0000226b: PUSH2 0x1dd6 0000226e: JUMP 0000226f: JUMPDEST 00002270: SWAP1 00002271: PUSH2 0x0886 00002274: JUMPI 00002275: PUSH1 0x40 00002277: MLOAD 00002278: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002299: DUP2 0000229a: MSTORE 0000229b: PUSH1 0x04 0000229d: ADD 0000229e: PUSH2 0x094c 000022a1: SWAP2 000022a2: SWAP1 000022a3: PUSH2 0x317f 000022a6: JUMP 000022a7: JUMPDEST 000022a8: PUSH4 0xffffffff 000022ad: DUP2 000022ae: AND 000022af: PUSH1 0x00 000022b1: SWAP1 000022b2: DUP2 000022b3: MSTORE 000022b4: PUSH1 0xca 000022b6: PUSH1 0x20 000022b8: MSTORE 000022b9: PUSH1 0x40 000022bb: SWAP1 000022bc: KECCAK256 000022bd: SLOAD 000022be: PUSH1 0x60 000022c0: SWAP1 000022c1: PUSH2 0x09f9 000022c4: SWAP1 000022c5: PUSH2 0x27ed 000022c8: JUMP 000022c9: JUMPDEST 000022ca: PUSH1 0x00 000022cc: PUSH2 0x0a41 000022cf: DUP5 000022d0: DUP5 000022d1: PUSH2 0x22d9 000022d4: DUP8 000022d5: PUSH2 0x22a7 000022d8: JUMP 000022d9: JUMPDEST 000022da: DUP6 000022db: PUSH2 0x280b 000022de: JUMP 000022df: JUMPDEST 000022e0: PUSH2 0x0fb7 000022e3: DUP4 000022e4: DUP4 000022e5: DUP4 000022e6: PUSH2 0x28df 000022e9: JUMP 000022ea: JUMPDEST 000022eb: PUSH1 0x00 000022ed: SLOAD 000022ee: PUSH2 0x0100 000022f1: SWAP1 000022f2: DIV 000022f3: PUSH1 0xff 000022f5: AND 000022f6: PUSH2 0x2381 000022f9: JUMPI 000022fa: PUSH1 0x40 000022fc: MLOAD 000022fd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000231e: DUP2 0000231f: MSTORE 00002320: PUSH1 0x20 00002322: PUSH1 0x04 00002324: DUP3 00002325: ADD 00002326: MSTORE 00002327: PUSH1 0x2b 00002329: PUSH1 0x24 0000232b: DUP3 0000232c: ADD 0000232d: MSTORE 0000232e: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 0000234f: PUSH1 0x44 00002351: DUP3 00002352: ADD 00002353: MSTORE 00002354: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00002375: PUSH1 0x64 00002377: DUP3 00002378: ADD 00002379: MSTORE 0000237a: PUSH1 0x84 0000237c: ADD 0000237d: PUSH2 0x094c 00002380: JUMP 00002381: JUMPDEST 00002382: PUSH2 0x0f60 00002385: PUSH2 0x28fc 00002388: JUMP 00002389: JUMPDEST 0000238a: PUSH1 0x00 0000238c: PUSH2 0x23eb 0000238f: DUP3 00002390: PUSH1 0x40 00002392: MLOAD 00002393: DUP1 00002394: PUSH1 0x40 00002396: ADD 00002397: PUSH1 0x40 00002399: MSTORE 0000239a: DUP1 0000239b: PUSH1 0x20 0000239d: DUP2 0000239e: MSTORE 0000239f: PUSH1 0x20 000023a1: ADD 000023a2: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 000023c3: DUP2 000023c4: MSTORE 000023c5: POP 000023c6: DUP6 000023c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023dc: AND 000023dd: PUSH2 0x299c 000023e0: SWAP1 000023e1: SWAP3 000023e2: SWAP2 000023e3: SWAP1 000023e4: PUSH4 0xffffffff 000023e9: AND 000023ea: JUMP 000023eb: JUMPDEST 000023ec: SWAP1 000023ed: POP 000023ee: DUP1 000023ef: MLOAD 000023f0: PUSH1 0x00 000023f2: EQ 000023f3: DUP1 000023f4: PUSH2 0x240c 000023f7: JUMPI 000023f8: POP 000023f9: DUP1 000023fa: DUP1 000023fb: PUSH1 0x20 000023fd: ADD 000023fe: SWAP1 000023ff: MLOAD 00002400: DUP2 00002401: ADD 00002402: SWAP1 00002403: PUSH2 0x240c 00002406: SWAP2 00002407: SWAP1 00002408: PUSH2 0x34bf 0000240b: JUMP 0000240c: JUMPDEST 0000240d: PUSH2 0x0bea 00002410: JUMPI 00002411: PUSH1 0x40 00002413: MLOAD 00002414: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002435: DUP2 00002436: MSTORE 00002437: PUSH1 0x20 00002439: PUSH1 0x04 0000243b: DUP3 0000243c: ADD 0000243d: MSTORE 0000243e: PUSH1 0x2a 00002440: PUSH1 0x24 00002442: DUP3 00002443: ADD 00002444: MSTORE 00002445: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00002466: PUSH1 0x44 00002468: DUP3 00002469: ADD 0000246a: MSTORE 0000246b: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 0000248c: PUSH1 0x64 0000248e: DUP3 0000248f: ADD 00002490: MSTORE 00002491: PUSH1 0x84 00002493: ADD 00002494: PUSH2 0x094c 00002497: JUMP 00002498: JUMPDEST 00002499: PUSH1 0x60 0000249b: PUSH1 0x00 0000249d: PUSH2 0x24a5 000024a0: DUP4 000024a1: PUSH2 0x29ab 000024a4: JUMP 000024a5: JUMPDEST 000024a6: PUSH1 0x01 000024a8: ADD 000024a9: SWAP1 000024aa: POP 000024ab: PUSH1 0x00 000024ad: DUP2 000024ae: PUSH8 0xffffffffffffffff 000024b7: DUP2 000024b8: GT 000024b9: ISZERO 000024ba: PUSH2 0x24c5 000024bd: JUMPI 000024be: PUSH2 0x24c5 000024c1: PUSH2 0x3336 000024c4: JUMP 000024c5: JUMPDEST 000024c6: PUSH1 0x40 000024c8: MLOAD 000024c9: SWAP1 000024ca: DUP1 000024cb: DUP3 000024cc: MSTORE 000024cd: DUP1 000024ce: PUSH1 0x1f 000024d0: ADD 000024d1: PUSH1 0x1f 000024d3: NOT 000024d4: AND 000024d5: PUSH1 0x20 000024d7: ADD 000024d8: DUP3 000024d9: ADD 000024da: PUSH1 0x40 000024dc: MSTORE 000024dd: DUP1 000024de: ISZERO 000024df: PUSH2 0x24ef 000024e2: JUMPI 000024e3: PUSH1 0x20 000024e5: DUP3 000024e6: ADD 000024e7: DUP2 000024e8: DUP1 000024e9: CALLDATASIZE 000024ea: DUP4 000024eb: CALLDATACOPY 000024ec: ADD 000024ed: SWAP1 000024ee: POP 000024ef: JUMPDEST 000024f0: POP 000024f1: SWAP1 000024f2: POP 000024f3: DUP2 000024f4: DUP2 000024f5: ADD 000024f6: PUSH1 0x20 000024f8: ADD 000024f9: JUMPDEST 000024fa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000251b: ADD 0000251c: PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 0000253d: PUSH1 0x0a 0000253f: DUP7 00002540: MOD 00002541: BYTE 00002542: DUP2 00002543: MSTORE8 00002544: PUSH1 0x0a 00002546: DUP6 00002547: DIV 00002548: SWAP5 00002549: POP 0000254a: DUP5 0000254b: PUSH2 0x24f9 0000254e: JUMPI 0000254f: POP 00002550: SWAP4 00002551: SWAP3 00002552: POP 00002553: POP 00002554: POP 00002555: JUMP 00002556: JUMPDEST 00002557: PUSH1 0x00 00002559: PUSH2 0x15aa 0000255c: DUP4 0000255d: DUP4 0000255e: PUSH2 0x2a8d 00002561: JUMP 00002562: JUMPDEST 00002563: PUSH1 0x00 00002565: PUSH2 0x09f9 00002568: DUP3 00002569: PUSH2 0x2aa5 0000256c: JUMP 0000256d: JUMPDEST 0000256e: PUSH1 0x00 00002570: PUSH2 0x15aa 00002573: DUP4 00002574: DUP4 00002575: PUSH2 0x2aaf 00002578: JUMP 00002579: JUMPDEST 0000257a: PUSH1 0x00 0000257c: PUSH2 0x09f9 0000257f: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 000025a0: DUP4 000025a1: PUSH2 0x34e1 000025a4: JUMP 000025a5: JUMPDEST 000025a6: PUSH1 0x60 000025a8: DUP4 000025a9: DUP4 000025aa: DUP4 000025ab: PUSH1 0x40 000025ad: MLOAD 000025ae: PUSH1 0x20 000025b0: ADD 000025b1: PUSH2 0x25bc 000025b4: SWAP4 000025b5: SWAP3 000025b6: SWAP2 000025b7: SWAP1 000025b8: PUSH2 0x34f8 000025bb: JUMP 000025bc: JUMPDEST 000025bd: PUSH1 0x40 000025bf: MLOAD 000025c0: PUSH1 0x20 000025c2: DUP2 000025c3: DUP4 000025c4: SUB 000025c5: SUB 000025c6: DUP2 000025c7: MSTORE 000025c8: SWAP1 000025c9: PUSH1 0x40 000025cb: MSTORE 000025cc: SWAP1 000025cd: POP 000025ce: SWAP4 000025cf: SWAP3 000025d0: POP 000025d1: POP 000025d2: POP 000025d3: JUMP 000025d4: JUMPDEST 000025d5: PUSH1 0x00 000025d7: DUP1 000025d8: PUSH2 0x25e0 000025db: DUP8 000025dc: PUSH2 0x15be 000025df: JUMP 000025e0: JUMPDEST 000025e1: SWAP1 000025e2: POP 000025e3: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239 00002604: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002619: AND 0000261a: PUSH4 0x10b83dc0 0000261f: DUP8 00002620: DUP10 00002621: DUP5 00002622: DUP10 00002623: DUP10 00002624: DUP10 00002625: PUSH1 0x40 00002627: MLOAD 00002628: DUP8 00002629: PUSH4 0xffffffff 0000262e: AND 0000262f: PUSH1 0xe0 00002631: SHL 00002632: DUP2 00002633: MSTORE 00002634: PUSH1 0x04 00002636: ADD 00002637: PUSH2 0x2644 0000263a: SWAP6 0000263b: SWAP5 0000263c: SWAP4 0000263d: SWAP3 0000263e: SWAP2 0000263f: SWAP1 00002640: PUSH2 0x3525 00002643: JUMP 00002644: JUMPDEST 00002645: PUSH1 0x20 00002647: PUSH1 0x40 00002649: MLOAD 0000264a: DUP1 0000264b: DUP4 0000264c: SUB 0000264d: DUP2 0000264e: DUP6 0000264f: DUP9 00002650: GAS 00002651: CALL 00002652: ISZERO 00002653: DUP1 00002654: ISZERO 00002655: PUSH2 0x2662 00002658: JUMPI 00002659: RETURNDATASIZE 0000265a: PUSH1 0x00 0000265c: DUP1 0000265d: RETURNDATACOPY 0000265e: RETURNDATASIZE 0000265f: PUSH1 0x00 00002661: REVERT 00002662: JUMPDEST 00002663: POP 00002664: POP 00002665: POP 00002666: POP 00002667: POP 00002668: PUSH1 0x40 0000266a: MLOAD 0000266b: RETURNDATASIZE 0000266c: PUSH1 0x1f 0000266e: NOT 0000266f: PUSH1 0x1f 00002671: DUP3 00002672: ADD 00002673: AND 00002674: DUP3 00002675: ADD 00002676: DUP1 00002677: PUSH1 0x40 00002679: MSTORE 0000267a: POP 0000267b: DUP2 0000267c: ADD 0000267d: SWAP1 0000267e: PUSH2 0x0c36 00002681: SWAP2 00002682: SWAP1 00002683: PUSH2 0x3378 00002686: JUMP 00002687: JUMPDEST 00002688: DUP1 00002689: SELFBALANCE 0000268a: LT 0000268b: ISZERO 0000268c: PUSH2 0x26f1 0000268f: JUMPI 00002690: PUSH1 0x40 00002692: MLOAD 00002693: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000026b4: DUP2 000026b5: MSTORE 000026b6: PUSH1 0x20 000026b8: PUSH1 0x04 000026ba: DUP3 000026bb: ADD 000026bc: MSTORE 000026bd: PUSH1 0x1d 000026bf: PUSH1 0x24 000026c1: DUP3 000026c2: ADD 000026c3: MSTORE 000026c4: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e6365000000 000026e5: PUSH1 0x44 000026e7: DUP3 000026e8: ADD 000026e9: MSTORE 000026ea: PUSH1 0x64 000026ec: ADD 000026ed: PUSH2 0x094c 000026f0: JUMP 000026f1: JUMPDEST 000026f2: PUSH1 0x00 000026f4: DUP3 000026f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000270a: AND 0000270b: DUP3 0000270c: PUSH1 0x40 0000270e: MLOAD 0000270f: PUSH1 0x00 00002711: PUSH1 0x40 00002713: MLOAD 00002714: DUP1 00002715: DUP4 00002716: SUB 00002717: DUP2 00002718: DUP6 00002719: DUP8 0000271a: GAS 0000271b: CALL 0000271c: SWAP3 0000271d: POP 0000271e: POP 0000271f: POP 00002720: RETURNDATASIZE 00002721: DUP1 00002722: PUSH1 0x00 00002724: DUP2 00002725: EQ 00002726: PUSH2 0x274b 00002729: JUMPI 0000272a: PUSH1 0x40 0000272c: MLOAD 0000272d: SWAP2 0000272e: POP 0000272f: PUSH1 0x1f 00002731: NOT 00002732: PUSH1 0x3f 00002734: RETURNDATASIZE 00002735: ADD 00002736: AND 00002737: DUP3 00002738: ADD 00002739: PUSH1 0x40 0000273b: MSTORE 0000273c: RETURNDATASIZE 0000273d: DUP3 0000273e: MSTORE 0000273f: RETURNDATASIZE 00002740: PUSH1 0x00 00002742: PUSH1 0x20 00002744: DUP5 00002745: ADD 00002746: RETURNDATACOPY 00002747: PUSH2 0x2750 0000274a: JUMP 0000274b: JUMPDEST 0000274c: PUSH1 0x60 0000274e: SWAP2 0000274f: POP 00002750: JUMPDEST 00002751: POP 00002752: POP 00002753: SWAP1 00002754: POP 00002755: DUP1 00002756: PUSH2 0x0bea 00002759: JUMPI 0000275a: PUSH1 0x40 0000275c: MLOAD 0000275d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000277e: DUP2 0000277f: MSTORE 00002780: PUSH1 0x20 00002782: PUSH1 0x04 00002784: DUP3 00002785: ADD 00002786: MSTORE 00002787: PUSH1 0x3a 00002789: PUSH1 0x24 0000278b: DUP3 0000278c: ADD 0000278d: MSTORE 0000278e: PUSH32 0x416464726573733a20756e61626c6520746f2073656e642076616c75652c2072 000027af: PUSH1 0x44 000027b1: DUP3 000027b2: ADD 000027b3: MSTORE 000027b4: PUSH32 0x6563697069656e74206d61792068617665207265766572746564000000000000 000027d5: PUSH1 0x64 000027d7: DUP3 000027d8: ADD 000027d9: MSTORE 000027da: PUSH1 0x84 000027dc: ADD 000027dd: PUSH2 0x094c 000027e0: JUMP 000027e1: JUMPDEST 000027e2: PUSH1 0x00 000027e4: PUSH2 0x15aa 000027e7: DUP4 000027e8: DUP4 000027e9: PUSH2 0x2ad9 000027ec: JUMP 000027ed: JUMPDEST 000027ee: PUSH1 0x60 000027f0: PUSH2 0x09f9 000027f3: PUSH1 0x00 000027f5: DUP4 000027f6: CALLER 000027f7: PUSH1 0x40 000027f9: MLOAD 000027fa: DUP1 000027fb: PUSH1 0x20 000027fd: ADD 000027fe: PUSH1 0x40 00002800: MSTORE 00002801: DUP1 00002802: PUSH1 0x00 00002804: DUP2 00002805: MSTORE 00002806: POP 00002807: PUSH2 0x2af6 0000280a: JUMP 0000280b: JUMPDEST 0000280c: PUSH1 0x00 0000280e: DUP1 0000280f: PUSH2 0x2817 00002812: DUP7 00002813: PUSH2 0x15be 00002816: JUMP 00002817: JUMPDEST 00002818: PUSH1 0x40 0000281a: MLOAD 0000281b: PUSH32 0x81d2ea9500000000000000000000000000000000000000000000000000000000 0000283c: DUP2 0000283d: MSTORE 0000283e: SWAP1 0000283f: SWAP2 00002840: POP 00002841: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002856: PUSH32 0x000000000000000000000000c005dc82818d67af737725bd4bf75435d065d239 00002877: AND 00002878: SWAP1 00002879: PUSH4 0x81d2ea95 0000287e: SWAP1 0000287f: PUSH2 0x2894 00002882: SWAP1 00002883: DUP10 00002884: SWAP1 00002885: DUP6 00002886: SWAP1 00002887: DUP11 00002888: SWAP1 00002889: DUP11 0000288a: SWAP1 0000288b: DUP11 0000288c: SWAP1 0000288d: PUSH1 0x04 0000288f: ADD 00002890: PUSH2 0x3525 00002893: JUMP 00002894: JUMPDEST 00002895: PUSH1 0x20 00002897: PUSH1 0x40 00002899: MLOAD 0000289a: DUP1 0000289b: DUP4 0000289c: SUB 0000289d: DUP2 0000289e: DUP7 0000289f: GAS 000028a0: STATICCALL 000028a1: ISZERO 000028a2: DUP1 000028a3: ISZERO 000028a4: PUSH2 0x28b1 000028a7: JUMPI 000028a8: RETURNDATASIZE 000028a9: PUSH1 0x00 000028ab: DUP1 000028ac: RETURNDATACOPY 000028ad: RETURNDATASIZE 000028ae: PUSH1 0x00 000028b0: REVERT 000028b1: JUMPDEST 000028b2: POP 000028b3: POP 000028b4: POP 000028b5: POP 000028b6: PUSH1 0x40 000028b8: MLOAD 000028b9: RETURNDATASIZE 000028ba: PUSH1 0x1f 000028bc: NOT 000028bd: PUSH1 0x1f 000028bf: DUP3 000028c0: ADD 000028c1: AND 000028c2: DUP3 000028c3: ADD 000028c4: DUP1 000028c5: PUSH1 0x40 000028c7: MSTORE 000028c8: POP 000028c9: DUP2 000028ca: ADD 000028cb: SWAP1 000028cc: PUSH2 0x28d5 000028cf: SWAP2 000028d0: SWAP1 000028d1: PUSH2 0x3378 000028d4: JUMP 000028d5: JUMPDEST 000028d6: SWAP7 000028d7: SWAP6 000028d8: POP 000028d9: POP 000028da: POP 000028db: POP 000028dc: POP 000028dd: POP 000028de: JUMP 000028df: JUMPDEST 000028e0: PUSH1 0x00 000028e2: DUP3 000028e3: DUP2 000028e4: MSTORE 000028e5: PUSH1 0x02 000028e7: DUP5 000028e8: ADD 000028e9: PUSH1 0x20 000028eb: MSTORE 000028ec: PUSH1 0x40 000028ee: DUP2 000028ef: KECCAK256 000028f0: DUP3 000028f1: SWAP1 000028f2: SSTORE 000028f3: PUSH2 0x0a41 000028f6: DUP5 000028f7: DUP5 000028f8: PUSH2 0x2b2b 000028fb: JUMP 000028fc: JUMPDEST 000028fd: PUSH1 0x00 000028ff: SLOAD 00002900: PUSH2 0x0100 00002903: SWAP1 00002904: DIV 00002905: PUSH1 0xff 00002907: AND 00002908: PUSH2 0x2993 0000290b: JUMPI 0000290c: PUSH1 0x40 0000290e: MLOAD 0000290f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002930: DUP2 00002931: MSTORE 00002932: PUSH1 0x20 00002934: PUSH1 0x04 00002936: DUP3 00002937: ADD 00002938: MSTORE 00002939: PUSH1 0x2b 0000293b: PUSH1 0x24 0000293d: DUP3 0000293e: ADD 0000293f: MSTORE 00002940: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002961: PUSH1 0x44 00002963: DUP3 00002964: ADD 00002965: MSTORE 00002966: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00002987: PUSH1 0x64 00002989: DUP3 0000298a: ADD 0000298b: MSTORE 0000298c: PUSH1 0x84 0000298e: ADD 0000298f: PUSH2 0x094c 00002992: JUMP 00002993: JUMPDEST 00002994: PUSH2 0x0f60 00002997: CALLER 00002998: PUSH2 0x1975 0000299b: JUMP 0000299c: JUMPDEST 0000299d: PUSH1 0x60 0000299f: PUSH2 0x0a41 000029a2: DUP5 000029a3: DUP5 000029a4: PUSH1 0x00 000029a6: DUP6 000029a7: PUSH2 0x2b37 000029aa: JUMP 000029ab: JUMPDEST 000029ac: PUSH1 0x00 000029ae: DUP1 000029af: PUSH27 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000 000029cb: DUP4 000029cc: LT 000029cd: PUSH2 0x29f4 000029d0: JUMPI 000029d1: PUSH27 0x184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000 000029ed: DUP4 000029ee: DIV 000029ef: SWAP3 000029f0: POP 000029f1: PUSH1 0x40 000029f3: ADD 000029f4: JUMPDEST 000029f5: PUSH14 0x04ee2d6d415b85acef8100000000 00002a04: DUP4 00002a05: LT 00002a06: PUSH2 0x2a20 00002a09: JUMPI 00002a0a: PUSH14 0x04ee2d6d415b85acef8100000000 00002a19: DUP4 00002a1a: DIV 00002a1b: SWAP3 00002a1c: POP 00002a1d: PUSH1 0x20 00002a1f: ADD 00002a20: JUMPDEST 00002a21: PUSH7 0x2386f26fc10000 00002a29: DUP4 00002a2a: LT 00002a2b: PUSH2 0x2a3e 00002a2e: JUMPI 00002a2f: PUSH7 0x2386f26fc10000 00002a37: DUP4 00002a38: DIV 00002a39: SWAP3 00002a3a: POP 00002a3b: PUSH1 0x10 00002a3d: ADD 00002a3e: JUMPDEST 00002a3f: PUSH4 0x05f5e100 00002a44: DUP4 00002a45: LT 00002a46: PUSH2 0x2a56 00002a49: JUMPI 00002a4a: PUSH4 0x05f5e100 00002a4f: DUP4 00002a50: DIV 00002a51: SWAP3 00002a52: POP 00002a53: PUSH1 0x08 00002a55: ADD 00002a56: JUMPDEST 00002a57: PUSH2 0x2710 00002a5a: DUP4 00002a5b: LT 00002a5c: PUSH2 0x2a6a 00002a5f: JUMPI 00002a60: PUSH2 0x2710 00002a63: DUP4 00002a64: DIV 00002a65: SWAP3 00002a66: POP 00002a67: PUSH1 0x04 00002a69: ADD 00002a6a: JUMPDEST 00002a6b: PUSH1 0x64 00002a6d: DUP4 00002a6e: LT 00002a6f: PUSH2 0x2a7c 00002a72: JUMPI 00002a73: PUSH1 0x64 00002a75: DUP4 00002a76: DIV 00002a77: SWAP3 00002a78: POP 00002a79: PUSH1 0x02 00002a7b: ADD 00002a7c: JUMPDEST 00002a7d: PUSH1 0x0a 00002a7f: DUP4 00002a80: LT 00002a81: PUSH2 0x09f9 00002a84: JUMPI 00002a85: PUSH1 0x01 00002a87: ADD 00002a88: SWAP3 00002a89: SWAP2 00002a8a: POP 00002a8b: POP 00002a8c: JUMP 00002a8d: JUMPDEST 00002a8e: PUSH1 0x00 00002a90: DUP2 00002a91: DUP2 00002a92: MSTORE 00002a93: PUSH1 0x01 00002a95: DUP4 00002a96: ADD 00002a97: PUSH1 0x20 00002a99: MSTORE 00002a9a: PUSH1 0x40 00002a9c: DUP2 00002a9d: KECCAK256 00002a9e: SLOAD 00002a9f: ISZERO 00002aa0: ISZERO 00002aa1: PUSH2 0x15aa 00002aa4: JUMP 00002aa5: JUMPDEST 00002aa6: PUSH1 0x00 00002aa8: PUSH2 0x09f9 00002aab: DUP3 00002aac: SLOAD 00002aad: SWAP1 00002aae: JUMP 00002aaf: JUMPDEST 00002ab0: PUSH1 0x00 00002ab2: DUP3 00002ab3: PUSH1 0x00 00002ab5: ADD 00002ab6: DUP3 00002ab7: DUP2 00002ab8: SLOAD 00002ab9: DUP2 00002aba: LT 00002abb: PUSH2 0x2ac6 00002abe: JUMPI 00002abf: PUSH2 0x2ac6 00002ac2: PUSH2 0x32c5 00002ac5: JUMP 00002ac6: JUMPDEST 00002ac7: SWAP1 00002ac8: PUSH1 0x00 00002aca: MSTORE 00002acb: PUSH1 0x20 00002acd: PUSH1 0x00 00002acf: KECCAK256 00002ad0: ADD 00002ad1: SLOAD 00002ad2: SWAP1 00002ad3: POP 00002ad4: SWAP3 00002ad5: SWAP2 00002ad6: POP 00002ad7: POP 00002ad8: JUMP 00002ad9: JUMPDEST 00002ada: PUSH1 0x00 00002adc: DUP2 00002add: DUP2 00002ade: MSTORE 00002adf: PUSH1 0x02 00002ae1: DUP4 00002ae2: ADD 00002ae3: PUSH1 0x20 00002ae5: MSTORE 00002ae6: PUSH1 0x40 00002ae8: DUP2 00002ae9: KECCAK256 00002aea: DUP2 00002aeb: SWAP1 00002aec: SSTORE 00002aed: PUSH2 0x15aa 00002af0: DUP4 00002af1: DUP4 00002af2: PUSH2 0x2c45 00002af5: JUMP 00002af6: JUMPDEST 00002af7: PUSH1 0x60 00002af9: PUSH1 0x01 00002afb: DUP6 00002afc: DUP6 00002afd: DUP6 00002afe: DUP6 00002aff: PUSH1 0x40 00002b01: MLOAD 00002b02: PUSH1 0x20 00002b04: ADD 00002b05: PUSH2 0x2b12 00002b08: SWAP6 00002b09: SWAP5 00002b0a: SWAP4 00002b0b: SWAP3 00002b0c: SWAP2 00002b0d: SWAP1 00002b0e: PUSH2 0x3585 00002b11: JUMP 00002b12: JUMPDEST 00002b13: PUSH1 0x40 00002b15: MLOAD 00002b16: PUSH1 0x20 00002b18: DUP2 00002b19: DUP4 00002b1a: SUB 00002b1b: SUB 00002b1c: DUP2 00002b1d: MSTORE 00002b1e: SWAP1 00002b1f: PUSH1 0x40 00002b21: MSTORE 00002b22: SWAP1 00002b23: POP 00002b24: SWAP5 00002b25: SWAP4 00002b26: POP 00002b27: POP 00002b28: POP 00002b29: POP 00002b2a: JUMP 00002b2b: JUMPDEST 00002b2c: PUSH1 0x00 00002b2e: PUSH2 0x15aa 00002b31: DUP4 00002b32: DUP4 00002b33: PUSH2 0x1d2b 00002b36: JUMP 00002b37: JUMPDEST 00002b38: PUSH1 0x60 00002b3a: DUP3 00002b3b: SELFBALANCE 00002b3c: LT 00002b3d: ISZERO 00002b3e: PUSH2 0x2bc9 00002b41: JUMPI 00002b42: PUSH1 0x40 00002b44: MLOAD 00002b45: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002b66: DUP2 00002b67: MSTORE 00002b68: PUSH1 0x20 00002b6a: PUSH1 0x04 00002b6c: DUP3 00002b6d: ADD 00002b6e: MSTORE 00002b6f: PUSH1 0x26 00002b71: PUSH1 0x24 00002b73: DUP3 00002b74: ADD 00002b75: MSTORE 00002b76: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 00002b97: PUSH1 0x44 00002b99: DUP3 00002b9a: ADD 00002b9b: MSTORE 00002b9c: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 00002bbd: PUSH1 0x64 00002bbf: DUP3 00002bc0: ADD 00002bc1: MSTORE 00002bc2: PUSH1 0x84 00002bc4: ADD 00002bc5: PUSH2 0x094c 00002bc8: JUMP 00002bc9: JUMPDEST 00002bca: PUSH1 0x00 00002bcc: DUP1 00002bcd: DUP7 00002bce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002be3: AND 00002be4: DUP6 00002be5: DUP8 00002be6: PUSH1 0x40 00002be8: MLOAD 00002be9: PUSH2 0x2bf2 00002bec: SWAP2 00002bed: SWAP1 00002bee: PUSH2 0x360a 00002bf1: JUMP 00002bf2: JUMPDEST 00002bf3: PUSH1 0x00 00002bf5: PUSH1 0x40 00002bf7: MLOAD 00002bf8: DUP1 00002bf9: DUP4 00002bfa: SUB 00002bfb: DUP2 00002bfc: DUP6 00002bfd: DUP8 00002bfe: GAS 00002bff: CALL 00002c00: SWAP3 00002c01: POP 00002c02: POP 00002c03: POP 00002c04: RETURNDATASIZE 00002c05: DUP1 00002c06: PUSH1 0x00 00002c08: DUP2 00002c09: EQ 00002c0a: PUSH2 0x2c2f 00002c0d: JUMPI 00002c0e: PUSH1 0x40 00002c10: MLOAD 00002c11: SWAP2 00002c12: POP 00002c13: PUSH1 0x1f 00002c15: NOT 00002c16: PUSH1 0x3f 00002c18: RETURNDATASIZE 00002c19: ADD 00002c1a: AND 00002c1b: DUP3 00002c1c: ADD 00002c1d: PUSH1 0x40 00002c1f: MSTORE 00002c20: RETURNDATASIZE 00002c21: DUP3 00002c22: MSTORE 00002c23: RETURNDATASIZE 00002c24: PUSH1 0x00 00002c26: PUSH1 0x20 00002c28: DUP5 00002c29: ADD 00002c2a: RETURNDATACOPY 00002c2b: PUSH2 0x2c34 00002c2e: JUMP 00002c2f: JUMPDEST 00002c30: PUSH1 0x60 00002c32: SWAP2 00002c33: POP 00002c34: JUMPDEST 00002c35: POP 00002c36: SWAP2 00002c37: POP 00002c38: SWAP2 00002c39: POP 00002c3a: PUSH2 0x0c36 00002c3d: DUP8 00002c3e: DUP4 00002c3f: DUP4 00002c40: DUP8 00002c41: PUSH2 0x2c51 00002c44: JUMP 00002c45: JUMPDEST 00002c46: PUSH1 0x00 00002c48: PUSH2 0x15aa 00002c4b: DUP4 00002c4c: DUP4 00002c4d: PUSH2 0x1e47 00002c50: JUMP 00002c51: JUMPDEST 00002c52: PUSH1 0x60 00002c54: DUP4 00002c55: ISZERO 00002c56: PUSH2 0x2ce7 00002c59: JUMPI 00002c5a: DUP3 00002c5b: MLOAD 00002c5c: PUSH1 0x00 00002c5e: SUB 00002c5f: PUSH2 0x2ce0 00002c62: JUMPI 00002c63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c78: DUP6 00002c79: AND 00002c7a: EXTCODESIZE 00002c7b: PUSH2 0x2ce0 00002c7e: JUMPI 00002c7f: PUSH1 0x40 00002c81: MLOAD 00002c82: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002ca3: DUP2 00002ca4: MSTORE 00002ca5: PUSH1 0x20 00002ca7: PUSH1 0x04 00002ca9: DUP3 00002caa: ADD 00002cab: MSTORE 00002cac: PUSH1 0x1d 00002cae: PUSH1 0x24 00002cb0: DUP3 00002cb1: ADD 00002cb2: MSTORE 00002cb3: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00002cd4: PUSH1 0x44 00002cd6: DUP3 00002cd7: ADD 00002cd8: MSTORE 00002cd9: PUSH1 0x64 00002cdb: ADD 00002cdc: PUSH2 0x094c 00002cdf: JUMP 00002ce0: JUMPDEST 00002ce1: POP 00002ce2: DUP2 00002ce3: PUSH2 0x0a41 00002ce6: JUMP 00002ce7: JUMPDEST 00002ce8: PUSH2 0x0a41 00002ceb: DUP4 00002cec: DUP4 00002ced: DUP2 00002cee: MLOAD 00002cef: ISZERO 00002cf0: PUSH2 0x2cfc 00002cf3: JUMPI 00002cf4: DUP2 00002cf5: MLOAD 00002cf6: DUP1 00002cf7: DUP4 00002cf8: PUSH1 0x20 00002cfa: ADD 00002cfb: REVERT 00002cfc: JUMPDEST 00002cfd: DUP1 00002cfe: PUSH1 0x40 00002d00: MLOAD 00002d01: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002d22: DUP2 00002d23: MSTORE 00002d24: PUSH1 0x04 00002d26: ADD 00002d27: PUSH2 0x094c 00002d2a: SWAP2 00002d2b: SWAP1 00002d2c: PUSH2 0x317f 00002d2f: JUMP 00002d30: JUMPDEST 00002d31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d46: DUP2 00002d47: AND 00002d48: DUP2 00002d49: EQ 00002d4a: PUSH2 0x13a6 00002d4d: JUMPI 00002d4e: PUSH1 0x00 00002d50: DUP1 00002d51: REVERT 00002d52: JUMPDEST 00002d53: PUSH1 0x00 00002d55: PUSH1 0x20 00002d57: DUP3 00002d58: DUP5 00002d59: SUB 00002d5a: SLT 00002d5b: ISZERO 00002d5c: PUSH2 0x2d64 00002d5f: JUMPI 00002d60: PUSH1 0x00 00002d62: DUP1 00002d63: REVERT 00002d64: JUMPDEST 00002d65: DUP2 00002d66: CALLDATALOAD 00002d67: PUSH2 0x15aa 00002d6a: DUP2 00002d6b: PUSH2 0x2d30 00002d6e: JUMP 00002d6f: JUMPDEST 00002d70: DUP1 00002d71: CALLDATALOAD 00002d72: PUSH4 0xffffffff 00002d77: DUP2 00002d78: AND 00002d79: DUP2 00002d7a: EQ 00002d7b: PUSH2 0x2d83 00002d7e: JUMPI 00002d7f: PUSH1 0x00 00002d81: DUP1 00002d82: REVERT 00002d83: JUMPDEST 00002d84: SWAP2 00002d85: SWAP1 00002d86: POP 00002d87: JUMP 00002d88: JUMPDEST 00002d89: PUSH1 0x00 00002d8b: PUSH1 0x20 00002d8d: DUP3 00002d8e: DUP5 00002d8f: SUB 00002d90: SLT 00002d91: ISZERO 00002d92: PUSH2 0x2d9a 00002d95: JUMPI 00002d96: PUSH1 0x00 00002d98: DUP1 00002d99: REVERT 00002d9a: JUMPDEST 00002d9b: PUSH2 0x15aa 00002d9e: DUP3 00002d9f: PUSH2 0x2d6f 00002da2: JUMP 00002da3: JUMPDEST 00002da4: PUSH1 0x20 00002da6: DUP1 00002da7: DUP3 00002da8: MSTORE 00002da9: DUP3 00002daa: MLOAD 00002dab: DUP3 00002dac: DUP3 00002dad: ADD 00002dae: DUP2 00002daf: SWAP1 00002db0: MSTORE 00002db1: PUSH1 0x00 00002db3: SWAP2 00002db4: SWAP1 00002db5: DUP5 00002db6: DUP3 00002db7: ADD 00002db8: SWAP1 00002db9: PUSH1 0x40 00002dbb: DUP6 00002dbc: ADD 00002dbd: SWAP1 00002dbe: DUP5 00002dbf: JUMPDEST 00002dc0: DUP2 00002dc1: DUP2 00002dc2: LT 00002dc3: ISZERO 00002dc4: PUSH2 0x2df1 00002dc7: JUMPI 00002dc8: DUP4 00002dc9: MLOAD 00002dca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ddf: AND 00002de0: DUP4 00002de1: MSTORE 00002de2: SWAP3 00002de3: DUP5 00002de4: ADD 00002de5: SWAP3 00002de6: SWAP2 00002de7: DUP5 00002de8: ADD 00002de9: SWAP2 00002dea: PUSH1 0x01 00002dec: ADD 00002ded: PUSH2 0x2dbf 00002df0: JUMP 00002df1: JUMPDEST 00002df2: POP 00002df3: SWAP1 00002df4: SWAP7 00002df5: SWAP6 00002df6: POP 00002df7: POP 00002df8: POP 00002df9: POP 00002dfa: POP 00002dfb: POP 00002dfc: JUMP 00002dfd: JUMPDEST 00002dfe: PUSH1 0x00 00002e00: DUP1 00002e01: PUSH1 0x40 00002e03: DUP4 00002e04: DUP6 00002e05: SUB 00002e06: SLT 00002e07: ISZERO 00002e08: PUSH2 0x2e10 00002e0b: JUMPI 00002e0c: PUSH1 0x00 00002e0e: DUP1 00002e0f: REVERT 00002e10: JUMPDEST 00002e11: PUSH2 0x2e19 00002e14: DUP4 00002e15: PUSH2 0x2d6f 00002e18: JUMP 00002e19: JUMPDEST 00002e1a: SWAP5 00002e1b: PUSH1 0x20 00002e1d: SWAP4 00002e1e: SWAP1 00002e1f: SWAP4 00002e20: ADD 00002e21: CALLDATALOAD 00002e22: SWAP4 00002e23: POP 00002e24: POP 00002e25: POP 00002e26: JUMP 00002e27: JUMPDEST 00002e28: PUSH1 0x20 00002e2a: DUP1 00002e2b: DUP3 00002e2c: MSTORE 00002e2d: DUP3 00002e2e: MLOAD 00002e2f: DUP3 00002e30: DUP3 00002e31: ADD 00002e32: DUP2 00002e33: SWAP1 00002e34: MSTORE 00002e35: PUSH1 0x00 00002e37: SWAP2 00002e38: SWAP1 00002e39: DUP5 00002e3a: DUP3 00002e3b: ADD 00002e3c: SWAP1 00002e3d: PUSH1 0x40 00002e3f: DUP6 00002e40: ADD 00002e41: SWAP1 00002e42: DUP5 00002e43: JUMPDEST 00002e44: DUP2 00002e45: DUP2 00002e46: LT 00002e47: ISZERO 00002e48: PUSH2 0x2df1 00002e4b: JUMPI 00002e4c: DUP4 00002e4d: MLOAD 00002e4e: PUSH4 0xffffffff 00002e53: AND 00002e54: DUP4 00002e55: MSTORE 00002e56: SWAP3 00002e57: DUP5 00002e58: ADD 00002e59: SWAP3 00002e5a: SWAP2 00002e5b: DUP5 00002e5c: ADD 00002e5d: SWAP2 00002e5e: PUSH1 0x01 00002e60: ADD 00002e61: PUSH2 0x2e43 00002e64: JUMP 00002e65: JUMPDEST 00002e66: PUSH1 0x00 00002e68: DUP1 00002e69: PUSH1 0x40 00002e6b: DUP4 00002e6c: DUP6 00002e6d: SUB 00002e6e: SLT 00002e6f: ISZERO 00002e70: PUSH2 0x2e78 00002e73: JUMPI 00002e74: PUSH1 0x00 00002e76: DUP1 00002e77: REVERT 00002e78: JUMPDEST 00002e79: PUSH2 0x2e81 00002e7c: DUP4 00002e7d: PUSH2 0x2d6f 00002e80: JUMP 00002e81: JUMPDEST 00002e82: SWAP2 00002e83: POP 00002e84: PUSH1 0x20 00002e86: DUP4 00002e87: ADD 00002e88: CALLDATALOAD 00002e89: PUSH2 0x2e91 00002e8c: DUP2 00002e8d: PUSH2 0x2d30 00002e90: JUMP 00002e91: JUMPDEST 00002e92: DUP1 00002e93: SWAP2 00002e94: POP 00002e95: POP 00002e96: SWAP3 00002e97: POP 00002e98: SWAP3 00002e99: SWAP1 00002e9a: POP 00002e9b: JUMP 00002e9c: JUMPDEST 00002e9d: PUSH1 0x00 00002e9f: DUP1 00002ea0: DUP4 00002ea1: PUSH1 0x1f 00002ea3: DUP5 00002ea4: ADD 00002ea5: SLT 00002ea6: PUSH2 0x2eae 00002ea9: JUMPI 00002eaa: PUSH1 0x00 00002eac: DUP1 00002ead: REVERT 00002eae: JUMPDEST 00002eaf: POP 00002eb0: DUP2 00002eb1: CALLDATALOAD 00002eb2: PUSH8 0xffffffffffffffff 00002ebb: DUP2 00002ebc: GT 00002ebd: ISZERO 00002ebe: PUSH2 0x2ec6 00002ec1: JUMPI 00002ec2: PUSH1 0x00 00002ec4: DUP1 00002ec5: REVERT 00002ec6: JUMPDEST 00002ec7: PUSH1 0x20 00002ec9: DUP4 00002eca: ADD 00002ecb: SWAP2 00002ecc: POP 00002ecd: DUP4 00002ece: PUSH1 0x20 00002ed0: DUP3 00002ed1: DUP6 00002ed2: ADD 00002ed3: ADD 00002ed4: GT 00002ed5: ISZERO 00002ed6: PUSH2 0x1635 00002ed9: JUMPI 00002eda: PUSH1 0x00 00002edc: DUP1 00002edd: REVERT 00002ede: JUMPDEST 00002edf: PUSH1 0x00 00002ee1: DUP1 00002ee2: PUSH1 0x00 00002ee4: DUP1 00002ee5: PUSH1 0x00 00002ee7: DUP1 00002ee8: PUSH1 0xa0 00002eea: DUP8 00002eeb: DUP10 00002eec: SUB 00002eed: SLT 00002eee: ISZERO 00002eef: PUSH2 0x2ef7 00002ef2: JUMPI 00002ef3: PUSH1 0x00 00002ef5: DUP1 00002ef6: REVERT 00002ef7: JUMPDEST 00002ef8: PUSH2 0x2f00 00002efb: DUP8 00002efc: PUSH2 0x2d6f 00002eff: JUMP 00002f00: JUMPDEST 00002f01: SWAP6 00002f02: POP 00002f03: PUSH1 0x20 00002f05: DUP8 00002f06: ADD 00002f07: CALLDATALOAD 00002f08: SWAP5 00002f09: POP 00002f0a: PUSH1 0x40 00002f0c: DUP8 00002f0d: ADD 00002f0e: CALLDATALOAD 00002f0f: SWAP4 00002f10: POP 00002f11: PUSH1 0x60 00002f13: DUP8 00002f14: ADD 00002f15: CALLDATALOAD 00002f16: PUSH8 0xffffffffffffffff 00002f1f: DUP2 00002f20: GT 00002f21: ISZERO 00002f22: PUSH2 0x2f2a 00002f25: JUMPI 00002f26: PUSH1 0x00 00002f28: DUP1 00002f29: REVERT 00002f2a: JUMPDEST 00002f2b: PUSH2 0x2f36 00002f2e: DUP10 00002f2f: DUP3 00002f30: DUP11 00002f31: ADD 00002f32: PUSH2 0x2e9c 00002f35: JUMP 00002f36: JUMPDEST 00002f37: SWAP1 00002f38: SWAP5 00002f39: POP 00002f3a: SWAP3 00002f3b: POP 00002f3c: POP 00002f3d: PUSH1 0x80 00002f3f: DUP8 00002f40: ADD 00002f41: CALLDATALOAD 00002f42: PUSH2 0x2f4a 00002f45: DUP2 00002f46: PUSH2 0x2d30 00002f49: JUMP 00002f4a: JUMPDEST 00002f4b: DUP1 00002f4c: SWAP2 00002f4d: POP 00002f4e: POP 00002f4f: SWAP3 00002f50: SWAP6 00002f51: POP 00002f52: SWAP3 00002f53: SWAP6 00002f54: POP 00002f55: SWAP3 00002f56: SWAP6 00002f57: JUMP 00002f58: JUMPDEST 00002f59: PUSH1 0x00 00002f5b: DUP1 00002f5c: PUSH1 0x00 00002f5e: DUP1 00002f5f: PUSH1 0x60 00002f61: DUP6 00002f62: DUP8 00002f63: SUB 00002f64: SLT 00002f65: ISZERO 00002f66: PUSH2 0x2f6e 00002f69: JUMPI 00002f6a: PUSH1 0x00 00002f6c: DUP1 00002f6d: REVERT 00002f6e: JUMPDEST 00002f6f: PUSH2 0x2f77 00002f72: DUP6 00002f73: PUSH2 0x2d6f 00002f76: JUMP 00002f77: JUMPDEST 00002f78: SWAP4 00002f79: POP 00002f7a: PUSH1 0x20 00002f7c: DUP6 00002f7d: ADD 00002f7e: CALLDATALOAD 00002f7f: SWAP3 00002f80: POP 00002f81: PUSH1 0x40 00002f83: DUP6 00002f84: ADD 00002f85: CALLDATALOAD 00002f86: PUSH8 0xffffffffffffffff 00002f8f: DUP2 00002f90: GT 00002f91: ISZERO 00002f92: PUSH2 0x2f9a 00002f95: JUMPI 00002f96: PUSH1 0x00 00002f98: DUP1 00002f99: REVERT 00002f9a: JUMPDEST 00002f9b: PUSH2 0x2fa6 00002f9e: DUP8 00002f9f: DUP3 00002fa0: DUP9 00002fa1: ADD 00002fa2: PUSH2 0x2e9c 00002fa5: JUMP 00002fa6: JUMPDEST 00002fa7: SWAP6 00002fa8: SWAP9 00002fa9: SWAP5 00002faa: SWAP8 00002fab: POP 00002fac: SWAP6 00002fad: POP 00002fae: POP 00002faf: POP 00002fb0: POP 00002fb1: JUMP 00002fb2: JUMPDEST 00002fb3: PUSH1 0x00 00002fb5: DUP1 00002fb6: PUSH1 0x00 00002fb8: PUSH1 0x60 00002fba: DUP5 00002fbb: DUP7 00002fbc: SUB 00002fbd: SLT 00002fbe: ISZERO 00002fbf: PUSH2 0x2fc7 00002fc2: JUMPI 00002fc3: PUSH1 0x00 00002fc5: DUP1 00002fc6: REVERT 00002fc7: JUMPDEST 00002fc8: PUSH2 0x2fd0 00002fcb: DUP5 00002fcc: PUSH2 0x2d6f 00002fcf: JUMP 00002fd0: JUMPDEST 00002fd1: SWAP3 00002fd2: POP 00002fd3: PUSH1 0x20 00002fd5: DUP5 00002fd6: ADD 00002fd7: CALLDATALOAD 00002fd8: SWAP2 00002fd9: POP 00002fda: PUSH1 0x40 00002fdc: DUP5 00002fdd: ADD 00002fde: CALLDATALOAD 00002fdf: PUSH2 0x2fe7 00002fe2: DUP2 00002fe3: PUSH2 0x2d30 00002fe6: JUMP 00002fe7: JUMPDEST 00002fe8: DUP1 00002fe9: SWAP2 00002fea: POP 00002feb: POP 00002fec: SWAP3 00002fed: POP 00002fee: SWAP3 00002fef: POP 00002ff0: SWAP3 00002ff1: JUMP 00002ff2: JUMPDEST 00002ff3: PUSH1 0x00 00002ff5: DUP1 00002ff6: DUP4 00002ff7: PUSH1 0x1f 00002ff9: DUP5 00002ffa: ADD 00002ffb: SLT 00002ffc: PUSH2 0x3004 00002fff: JUMPI 00003000: PUSH1 0x00 00003002: DUP1 00003003: REVERT 00003004: JUMPDEST 00003005: POP 00003006: DUP2 00003007: CALLDATALOAD 00003008: PUSH8 0xffffffffffffffff 00003011: DUP2 00003012: GT 00003013: ISZERO 00003014: PUSH2 0x301c 00003017: JUMPI 00003018: PUSH1 0x00 0000301a: DUP1 0000301b: REVERT 0000301c: JUMPDEST 0000301d: PUSH1 0x20 0000301f: DUP4 00003020: ADD 00003021: SWAP2 00003022: POP 00003023: DUP4 00003024: PUSH1 0x20 00003026: DUP3 00003027: PUSH1 0x05 00003029: SHL 0000302a: DUP6 0000302b: ADD 0000302c: ADD 0000302d: GT 0000302e: ISZERO 0000302f: PUSH2 0x1635 00003032: JUMPI 00003033: PUSH1 0x00 00003035: DUP1 00003036: REVERT 00003037: JUMPDEST 00003038: PUSH1 0x00 0000303a: DUP1 0000303b: PUSH1 0x20 0000303d: DUP4 0000303e: DUP6 0000303f: SUB 00003040: SLT 00003041: ISZERO 00003042: PUSH2 0x304a 00003045: JUMPI 00003046: PUSH1 0x00 00003048: DUP1 00003049: REVERT 0000304a: JUMPDEST 0000304b: DUP3 0000304c: CALLDATALOAD 0000304d: PUSH8 0xffffffffffffffff 00003056: DUP2 00003057: GT 00003058: ISZERO 00003059: PUSH2 0x3061 0000305c: JUMPI 0000305d: PUSH1 0x00 0000305f: DUP1 00003060: REVERT 00003061: JUMPDEST 00003062: PUSH2 0x306d 00003065: DUP6 00003066: DUP3 00003067: DUP7 00003068: ADD 00003069: PUSH2 0x2ff2 0000306c: JUMP 0000306d: JUMPDEST 0000306e: SWAP1 0000306f: SWAP7 00003070: SWAP1 00003071: SWAP6 00003072: POP 00003073: SWAP4 00003074: POP 00003075: POP 00003076: POP 00003077: POP 00003078: JUMP 00003079: JUMPDEST 0000307a: PUSH1 0x00 0000307c: DUP1 0000307d: PUSH1 0x00 0000307f: PUSH1 0x60 00003081: DUP5 00003082: DUP7 00003083: SUB 00003084: SLT 00003085: ISZERO 00003086: PUSH2 0x308e 00003089: JUMPI 0000308a: PUSH1 0x00 0000308c: DUP1 0000308d: REVERT 0000308e: JUMPDEST 0000308f: PUSH2 0x3097 00003092: DUP5 00003093: PUSH2 0x2d6f 00003096: JUMP 00003097: JUMPDEST 00003098: SWAP6 00003099: PUSH1 0x20 0000309b: DUP6 0000309c: ADD 0000309d: CALLDATALOAD 0000309e: SWAP6 0000309f: POP 000030a0: PUSH1 0x40 000030a2: SWAP1 000030a3: SWAP5 000030a4: ADD 000030a5: CALLDATALOAD 000030a6: SWAP4 000030a7: SWAP3 000030a8: POP 000030a9: POP 000030aa: POP 000030ab: JUMP 000030ac: JUMPDEST 000030ad: PUSH1 0x20 000030af: DUP1 000030b0: DUP3 000030b1: MSTORE 000030b2: DUP3 000030b3: MLOAD 000030b4: DUP3 000030b5: DUP3 000030b6: ADD 000030b7: DUP2 000030b8: SWAP1 000030b9: MSTORE 000030ba: PUSH1 0x00 000030bc: SWAP2 000030bd: SWAP1 000030be: PUSH1 0x40 000030c0: SWAP1 000030c1: DUP2 000030c2: DUP6 000030c3: ADD 000030c4: SWAP1 000030c5: DUP7 000030c6: DUP5 000030c7: ADD 000030c8: DUP6 000030c9: JUMPDEST 000030ca: DUP3 000030cb: DUP2 000030cc: LT 000030cd: ISZERO 000030ce: PUSH2 0x3104 000030d1: JUMPI 000030d2: DUP2 000030d3: MLOAD 000030d4: DUP1 000030d5: MLOAD 000030d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030eb: AND 000030ec: DUP6 000030ed: MSTORE 000030ee: DUP7 000030ef: ADD 000030f0: MLOAD 000030f1: DUP7 000030f2: DUP6 000030f3: ADD 000030f4: MSTORE 000030f5: SWAP3 000030f6: DUP5 000030f7: ADD 000030f8: SWAP3 000030f9: SWAP1 000030fa: DUP6 000030fb: ADD 000030fc: SWAP1 000030fd: PUSH1 0x01 000030ff: ADD 00003100: PUSH2 0x30c9 00003103: JUMP 00003104: JUMPDEST 00003105: POP 00003106: SWAP2 00003107: SWAP8 00003108: SWAP7 00003109: POP 0000310a: POP 0000310b: POP 0000310c: POP 0000310d: POP 0000310e: POP 0000310f: POP 00003110: JUMP 00003111: JUMPDEST 00003112: PUSH1 0x00 00003114: JUMPDEST 00003115: DUP4 00003116: DUP2 00003117: LT 00003118: ISZERO 00003119: PUSH2 0x312c 0000311c: JUMPI 0000311d: DUP2 0000311e: DUP2 0000311f: ADD 00003120: MLOAD 00003121: DUP4 00003122: DUP3 00003123: ADD 00003124: MSTORE 00003125: PUSH1 0x20 00003127: ADD 00003128: PUSH2 0x3114 0000312b: JUMP 0000312c: JUMPDEST 0000312d: POP 0000312e: POP 0000312f: PUSH1 0x00 00003131: SWAP2 00003132: ADD 00003133: MSTORE 00003134: JUMP 00003135: JUMPDEST 00003136: PUSH1 0x00 00003138: DUP2 00003139: MLOAD 0000313a: DUP1 0000313b: DUP5 0000313c: MSTORE 0000313d: PUSH2 0x314d 00003140: DUP2 00003141: PUSH1 0x20 00003143: DUP7 00003144: ADD 00003145: PUSH1 0x20 00003147: DUP7 00003148: ADD 00003149: PUSH2 0x3111 0000314c: JUMP 0000314d: JUMPDEST 0000314e: PUSH1 0x1f 00003150: ADD 00003151: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00003172: AND 00003173: SWAP3 00003174: SWAP1 00003175: SWAP3 00003176: ADD 00003177: PUSH1 0x20 00003179: ADD 0000317a: SWAP3 0000317b: SWAP2 0000317c: POP 0000317d: POP 0000317e: JUMP 0000317f: JUMPDEST 00003180: PUSH1 0x20 00003182: DUP2 00003183: MSTORE 00003184: PUSH1 0x00 00003186: PUSH2 0x15aa 00003189: PUSH1 0x20 0000318b: DUP4 0000318c: ADD 0000318d: DUP5 0000318e: PUSH2 0x3135 00003191: JUMP 00003192: JUMPDEST 00003193: PUSH1 0x00 00003195: DUP1 00003196: PUSH1 0x20 00003198: DUP4 00003199: DUP6 0000319a: SUB 0000319b: SLT 0000319c: ISZERO 0000319d: PUSH2 0x31a5 000031a0: JUMPI 000031a1: PUSH1 0x00 000031a3: DUP1 000031a4: REVERT 000031a5: JUMPDEST 000031a6: DUP3 000031a7: CALLDATALOAD 000031a8: PUSH8 0xffffffffffffffff 000031b1: DUP1 000031b2: DUP3 000031b3: GT 000031b4: ISZERO 000031b5: PUSH2 0x31bd 000031b8: JUMPI 000031b9: PUSH1 0x00 000031bb: DUP1 000031bc: REVERT 000031bd: JUMPDEST 000031be: DUP2 000031bf: DUP6 000031c0: ADD 000031c1: SWAP2 000031c2: POP 000031c3: DUP6 000031c4: PUSH1 0x1f 000031c6: DUP4 000031c7: ADD 000031c8: SLT 000031c9: PUSH2 0x31d1 000031cc: JUMPI 000031cd: PUSH1 0x00 000031cf: DUP1 000031d0: REVERT 000031d1: JUMPDEST 000031d2: DUP2 000031d3: CALLDATALOAD 000031d4: DUP2 000031d5: DUP2 000031d6: GT 000031d7: ISZERO 000031d8: PUSH2 0x31e0 000031db: JUMPI 000031dc: PUSH1 0x00 000031de: DUP1 000031df: REVERT 000031e0: JUMPDEST 000031e1: DUP7 000031e2: PUSH1 0x20 000031e4: DUP3 000031e5: PUSH1 0x06 000031e7: SHL 000031e8: DUP6 000031e9: ADD 000031ea: ADD 000031eb: GT 000031ec: ISZERO 000031ed: PUSH2 0x31f5 000031f0: JUMPI 000031f1: PUSH1 0x00 000031f3: DUP1 000031f4: REVERT 000031f5: JUMPDEST 000031f6: PUSH1 0x20 000031f8: SWAP3 000031f9: SWAP1 000031fa: SWAP3 000031fb: ADD 000031fc: SWAP7 000031fd: SWAP2 000031fe: SWAP6 000031ff: POP 00003200: SWAP1 00003201: SWAP4 00003202: POP 00003203: POP 00003204: POP 00003205: POP 00003206: JUMP 00003207: JUMPDEST 00003208: PUSH1 0x00 0000320a: DUP1 0000320b: PUSH1 0x00 0000320d: PUSH1 0x60 0000320f: DUP5 00003210: DUP7 00003211: SUB 00003212: SLT 00003213: ISZERO 00003214: PUSH2 0x321c 00003217: JUMPI 00003218: PUSH1 0x00 0000321a: DUP1 0000321b: REVERT 0000321c: JUMPDEST 0000321d: DUP4 0000321e: CALLDATALOAD 0000321f: PUSH2 0x3227 00003222: DUP2 00003223: PUSH2 0x2d30 00003226: JUMP 00003227: JUMPDEST 00003228: SWAP3 00003229: POP 0000322a: PUSH1 0x20 0000322c: DUP5 0000322d: ADD 0000322e: CALLDATALOAD 0000322f: PUSH2 0x3237 00003232: DUP2 00003233: PUSH2 0x2d30 00003236: JUMP 00003237: JUMPDEST 00003238: SWAP2 00003239: POP 0000323a: PUSH1 0x40 0000323c: DUP5 0000323d: ADD 0000323e: CALLDATALOAD 0000323f: PUSH2 0x2fe7 00003242: DUP2 00003243: PUSH2 0x2d30 00003246: JUMP 00003247: JUMPDEST 00003248: PUSH1 0x00 0000324a: DUP1 0000324b: PUSH1 0x00 0000324d: DUP1 0000324e: PUSH1 0x40 00003250: DUP6 00003251: DUP8 00003252: SUB 00003253: SLT 00003254: ISZERO 00003255: PUSH2 0x325d 00003258: JUMPI 00003259: PUSH1 0x00 0000325b: DUP1 0000325c: REVERT 0000325d: JUMPDEST 0000325e: DUP5 0000325f: CALLDATALOAD 00003260: PUSH8 0xffffffffffffffff 00003269: DUP1 0000326a: DUP3 0000326b: GT 0000326c: ISZERO 0000326d: PUSH2 0x3275 00003270: JUMPI 00003271: PUSH1 0x00 00003273: DUP1 00003274: REVERT 00003275: JUMPDEST 00003276: PUSH2 0x3281 00003279: DUP9 0000327a: DUP4 0000327b: DUP10 0000327c: ADD 0000327d: PUSH2 0x2ff2 00003280: JUMP 00003281: JUMPDEST 00003282: SWAP1 00003283: SWAP7 00003284: POP 00003285: SWAP5 00003286: POP 00003287: PUSH1 0x20 00003289: DUP8 0000328a: ADD 0000328b: CALLDATALOAD 0000328c: SWAP2 0000328d: POP 0000328e: DUP1 0000328f: DUP3 00003290: GT 00003291: ISZERO 00003292: PUSH2 0x329a 00003295: JUMPI 00003296: PUSH1 0x00 00003298: DUP1 00003299: REVERT 0000329a: JUMPDEST 0000329b: POP 0000329c: PUSH2 0x2fa6 0000329f: DUP8 000032a0: DUP3 000032a1: DUP9 000032a2: ADD 000032a3: PUSH2 0x2ff2 000032a6: JUMP 000032a7: JUMPDEST 000032a8: PUSH1 0x00 000032aa: DUP1 000032ab: PUSH1 0x40 000032ad: DUP4 000032ae: DUP6 000032af: SUB 000032b0: SLT 000032b1: ISZERO 000032b2: PUSH2 0x32ba 000032b5: JUMPI 000032b6: PUSH1 0x00 000032b8: DUP1 000032b9: REVERT 000032ba: JUMPDEST 000032bb: DUP3 000032bc: CALLDATALOAD 000032bd: PUSH2 0x2e81 000032c0: DUP2 000032c1: PUSH2 0x2d30 000032c4: JUMP 000032c5: JUMPDEST 000032c6: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000032e7: PUSH1 0x00 000032e9: MSTORE 000032ea: PUSH1 0x32 000032ec: PUSH1 0x04 000032ee: MSTORE 000032ef: PUSH1 0x24 000032f1: PUSH1 0x00 000032f3: REVERT 000032f4: JUMPDEST 000032f5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003316: PUSH1 0x00 00003318: MSTORE 00003319: PUSH1 0x11 0000331b: PUSH1 0x04 0000331d: MSTORE 0000331e: PUSH1 0x24 00003320: PUSH1 0x00 00003322: REVERT 00003323: JUMPDEST 00003324: DUP1 00003325: DUP3 00003326: ADD 00003327: DUP1 00003328: DUP3 00003329: GT 0000332a: ISZERO 0000332b: PUSH2 0x09f9 0000332e: JUMPI 0000332f: PUSH2 0x09f9 00003332: PUSH2 0x32f4 00003335: JUMP 00003336: JUMPDEST 00003337: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003358: PUSH1 0x00 0000335a: MSTORE 0000335b: PUSH1 0x41 0000335d: PUSH1 0x04 0000335f: MSTORE 00003360: PUSH1 0x24 00003362: PUSH1 0x00 00003364: REVERT 00003365: JUMPDEST 00003366: DUP2 00003367: DUP2 00003368: SUB 00003369: DUP2 0000336a: DUP2 0000336b: GT 0000336c: ISZERO 0000336d: PUSH2 0x09f9 00003370: JUMPI 00003371: PUSH2 0x09f9 00003374: PUSH2 0x32f4 00003377: JUMP 00003378: JUMPDEST 00003379: PUSH1 0x00 0000337b: PUSH1 0x20 0000337d: DUP3 0000337e: DUP5 0000337f: SUB 00003380: SLT 00003381: ISZERO 00003382: PUSH2 0x338a 00003385: JUMPI 00003386: PUSH1 0x00 00003388: DUP1 00003389: REVERT 0000338a: JUMPDEST 0000338b: POP 0000338c: MLOAD 0000338d: SWAP2 0000338e: SWAP1 0000338f: POP 00003390: JUMP 00003391: JUMPDEST 00003392: PUSH32 0x4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000 000033b3: DUP2 000033b4: MSTORE 000033b5: PUSH1 0x00 000033b7: DUP3 000033b8: MLOAD 000033b9: PUSH2 0x33c9 000033bc: DUP2 000033bd: PUSH1 0x1f 000033bf: DUP6 000033c0: ADD 000033c1: PUSH1 0x20 000033c3: DUP8 000033c4: ADD 000033c5: PUSH2 0x3111 000033c8: JUMP 000033c9: JUMPDEST 000033ca: SWAP2 000033cb: SWAP1 000033cc: SWAP2 000033cd: ADD 000033ce: PUSH1 0x1f 000033d0: ADD 000033d1: SWAP3 000033d2: SWAP2 000033d3: POP 000033d4: POP 000033d5: JUMP 000033d6: JUMPDEST 000033d7: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000033f8: PUSH1 0x00 000033fa: MSTORE 000033fb: PUSH1 0x31 000033fd: PUSH1 0x04 000033ff: MSTORE 00003400: PUSH1 0x24 00003402: PUSH1 0x00 00003404: REVERT 00003405: JUMPDEST 00003406: PUSH1 0xff 00003408: DUP2 00003409: DUP2 0000340a: AND 0000340b: DUP4 0000340c: DUP3 0000340d: AND 0000340e: ADD 0000340f: SWAP1 00003410: DUP2 00003411: GT 00003412: ISZERO 00003413: PUSH2 0x09f9 00003416: JUMPI 00003417: PUSH2 0x09f9 0000341a: PUSH2 0x32f4 0000341d: JUMP 0000341e: JUMPDEST 0000341f: PUSH1 0x00 00003421: DUP1 00003422: DUP6 00003423: DUP6 00003424: GT 00003425: ISZERO 00003426: PUSH2 0x342e 00003429: JUMPI 0000342a: PUSH1 0x00 0000342c: DUP1 0000342d: REVERT 0000342e: JUMPDEST 0000342f: DUP4 00003430: DUP7 00003431: GT 00003432: ISZERO 00003433: PUSH2 0x343b 00003436: JUMPI 00003437: PUSH1 0x00 00003439: DUP1 0000343a: REVERT 0000343b: JUMPDEST 0000343c: POP 0000343d: POP 0000343e: DUP3 0000343f: ADD 00003440: SWAP4 00003441: SWAP2 00003442: SWAP1 00003443: SWAP3 00003444: SUB 00003445: SWAP2 00003446: POP 00003447: JUMP 00003448: JUMPDEST 00003449: DUP1 0000344a: CALLDATALOAD 0000344b: PUSH1 0x20 0000344d: DUP4 0000344e: LT 0000344f: ISZERO 00003450: PUSH2 0x09f9 00003453: JUMPI 00003454: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003475: PUSH1 0x20 00003477: DUP5 00003478: SWAP1 00003479: SUB 0000347a: PUSH1 0x03 0000347c: SHL 0000347d: SHL 0000347e: AND 0000347f: SWAP3 00003480: SWAP2 00003481: POP 00003482: POP 00003483: JUMP 00003484: JUMPDEST 00003485: PUSH1 0x00 00003487: DUP3 00003488: PUSH2 0x34ba 0000348b: JUMPI 0000348c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000034ad: PUSH1 0x00 000034af: MSTORE 000034b0: PUSH1 0x12 000034b2: PUSH1 0x04 000034b4: MSTORE 000034b5: PUSH1 0x24 000034b7: PUSH1 0x00 000034b9: REVERT 000034ba: JUMPDEST 000034bb: POP 000034bc: DIV 000034bd: SWAP1 000034be: JUMP 000034bf: JUMPDEST 000034c0: PUSH1 0x00 000034c2: PUSH1 0x20 000034c4: DUP3 000034c5: DUP5 000034c6: SUB 000034c7: SLT 000034c8: ISZERO 000034c9: PUSH2 0x34d1 000034cc: JUMPI 000034cd: PUSH1 0x00 000034cf: DUP1 000034d0: REVERT 000034d1: JUMPDEST 000034d2: DUP2 000034d3: MLOAD 000034d4: DUP1 000034d5: ISZERO 000034d6: ISZERO 000034d7: DUP2 000034d8: EQ 000034d9: PUSH2 0x15aa 000034dc: JUMPI 000034dd: PUSH1 0x00 000034df: DUP1 000034e0: REVERT 000034e1: JUMPDEST 000034e2: DUP1 000034e3: DUP3 000034e4: MUL 000034e5: DUP2 000034e6: ISZERO 000034e7: DUP3 000034e8: DUP3 000034e9: DIV 000034ea: DUP5 000034eb: EQ 000034ec: OR 000034ed: PUSH2 0x09f9 000034f0: JUMPI 000034f1: PUSH2 0x09f9 000034f4: PUSH2 0x32f4 000034f7: JUMP 000034f8: JUMPDEST 000034f9: DUP4 000034fa: DUP2 000034fb: MSTORE 000034fc: DUP3 000034fd: PUSH1 0x20 000034ff: DUP3 00003500: ADD 00003501: MSTORE 00003502: PUSH1 0x00 00003504: DUP3 00003505: MLOAD 00003506: PUSH2 0x3516 00003509: DUP2 0000350a: PUSH1 0x40 0000350c: DUP6 0000350d: ADD 0000350e: PUSH1 0x20 00003510: DUP8 00003511: ADD 00003512: PUSH2 0x3111 00003515: JUMP 00003516: JUMPDEST 00003517: SWAP2 00003518: SWAP1 00003519: SWAP2 0000351a: ADD 0000351b: PUSH1 0x40 0000351d: ADD 0000351e: SWAP5 0000351f: SWAP4 00003520: POP 00003521: POP 00003522: POP 00003523: POP 00003524: JUMP 00003525: JUMPDEST 00003526: PUSH4 0xffffffff 0000352b: DUP7 0000352c: AND 0000352d: DUP2 0000352e: MSTORE 0000352f: DUP5 00003530: PUSH1 0x20 00003532: DUP3 00003533: ADD 00003534: MSTORE 00003535: PUSH1 0xa0 00003537: PUSH1 0x40 00003539: DUP3 0000353a: ADD 0000353b: MSTORE 0000353c: PUSH1 0x00 0000353e: PUSH2 0x354a 00003541: PUSH1 0xa0 00003543: DUP4 00003544: ADD 00003545: DUP7 00003546: PUSH2 0x3135 00003549: JUMP 0000354a: JUMPDEST 0000354b: DUP3 0000354c: DUP2 0000354d: SUB 0000354e: PUSH1 0x60 00003550: DUP5 00003551: ADD 00003552: MSTORE 00003553: PUSH2 0x355c 00003556: DUP2 00003557: DUP7 00003558: PUSH2 0x3135 0000355b: JUMP 0000355c: JUMPDEST 0000355d: SWAP2 0000355e: POP 0000355f: POP 00003560: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003575: DUP4 00003576: AND 00003577: PUSH1 0x80 00003579: DUP4 0000357a: ADD 0000357b: MSTORE 0000357c: SWAP7 0000357d: SWAP6 0000357e: POP 0000357f: POP 00003580: POP 00003581: POP 00003582: POP 00003583: POP 00003584: JUMP 00003585: JUMPDEST 00003586: PUSH32 0xffff000000000000000000000000000000000000000000000000000000000000 000035a7: DUP7 000035a8: PUSH1 0xf0 000035aa: SHL 000035ab: AND 000035ac: DUP2 000035ad: MSTORE 000035ae: DUP5 000035af: PUSH1 0x02 000035b1: DUP3 000035b2: ADD 000035b3: MSTORE 000035b4: DUP4 000035b5: PUSH1 0x22 000035b7: DUP3 000035b8: ADD 000035b9: MSTORE 000035ba: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 000035db: DUP4 000035dc: PUSH1 0x60 000035de: SHL 000035df: AND 000035e0: PUSH1 0x42 000035e2: DUP3 000035e3: ADD 000035e4: MSTORE 000035e5: PUSH1 0x00 000035e7: DUP3 000035e8: MLOAD 000035e9: PUSH2 0x35f9 000035ec: DUP2 000035ed: PUSH1 0x56 000035ef: DUP6 000035f0: ADD 000035f1: PUSH1 0x20 000035f3: DUP8 000035f4: ADD 000035f5: PUSH2 0x3111 000035f8: JUMP 000035f9: JUMPDEST 000035fa: SWAP2 000035fb: SWAP1 000035fc: SWAP2 000035fd: ADD 000035fe: PUSH1 0x56 00003600: ADD 00003601: SWAP7 00003602: SWAP6 00003603: POP 00003604: POP 00003605: POP 00003606: POP 00003607: POP 00003608: POP 00003609: JUMP 0000360a: JUMPDEST 0000360b: PUSH1 0x00 0000360d: DUP3 0000360e: MLOAD 0000360f: PUSH2 0x361c 00003612: DUP2 00003613: DUP5 00003614: PUSH1 0x20 00003616: DUP8 00003617: ADD 00003618: PUSH2 0x3111 0000361b: JUMP 0000361c: JUMPDEST 0000361d: SWAP2 0000361e: SWAP1 0000361f: SWAP2 00003620: ADD 00003621: SWAP3 00003622: SWAP2 00003623: POP 00003624: POP 00003625: JUMP 00003626: INVALID 00003627: LOG2 00003628: PUSH5 0x6970667358 0000362e: UNKNOWN(0x22) 0000362f: SLT 00003630: KECCAK256 00003631: PUSH28 0x7a63b9bc34bca952723e011d8b336662e3808e238d9284cc20d385c8 0000364e: DUP4 0000364f: UNKNOWN(0xAE) 00003650: CODECOPY 00003651: PUSH5 0x736f6c6343 00003657: STOP 00003658: ADDMOD 00003659: AND 0000365a: STOP 0000365b: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | codex | Unprotected initializer enables ownership takeover and collateral drain via rebalance | 90 | no | — |
viewevidence_json{
"evidence": "`HypNative.initialize` is public `initializer` and calls `_MailboxClient_initialize`, which sets ownership to the caller-provided `_owner`; ownership then allows adding bridges/rebalancers and calling `rebalance`, which forwards ETH to the chosen bridge.",
"locations": [
"contracts/contracts/token/HypNative.sol:39",
"contracts/contracts/client/MailboxClient.sol:109",
"contracts/contracts/client/MailboxClient.sol:117",
"contracts/contracts/client/Router.sol:54",
"contracts/contracts/token/libs/MovableCollateralRouter.sol:69",
"contracts/contracts/token/libs/MovableCollateralRouter.sol:98",
"contracts/contracts/token/libs/MovableCollateralRouter.sol:114",
"contracts/contracts/token/HypNative.sol:119"
],
"recommendation": "Disable initializers in the constructor (`_disableInitializers()`), or remove `initialize` entirely for non-proxy deployments. If initialization is required, restrict it (e.g., onlyOwner) and ensure deployment tooling calls it atomically before any third party can interact.",
"exploit_scenario": "1) Find a deployed `HypNative` instance where `initialize()` has not been called yet. 2) Call `initialize(address(0), address(0), attacker)`; `onlyContractOrNull` allows zero addresses and `_MailboxClient_initialize` sets the owner to the attacker-provided `_owner`. 3) As owner, call `enrollRemoteRouter` to register any domain, then `addBridge(domain, maliciousBridge)` and `addRebalancer(attacker)` to whitelist attacker-controlled bridge and self. 4) Call `rebalance(domain, amount, maliciousBridge)` with `amount` equal to the contract\u2019s ETH balance (and `msg.value = 0`). `HypNative._rebalance` sends `amount` ETH to `maliciousBridge`, which can simply keep the funds. 5) Repeat until the contract balance is drained."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x4b86b6f0d3b7696169c119c19370f9f3d5c072d2d1892c6b0977ab975271c4d6
call_targets:
0x522a1bc31fa8d9421c29506d4e600aecefaa1b7d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x4b86b6f0d3b7696169c119c19370f9f3d5c072d2d1892c6b0977ab975271c4d6",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x522a1bc31fa8d9421c29506d4e600aecefaa1b7d"
],
"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": 6463,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9809,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10011,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [
{
"pc": 3138,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 4
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x4b86b6f0d3b7696169c119c19370f9f3d5c072d2d1892c6b0977ab975271c4d6
call_targets:
0x522a1bc31fa8d9421c29506d4e600aecefaa1b7d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x4b86b6f0d3b7696169c119c19370f9f3d5c072d2d1892c6b0977ab975271c4d6",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x522a1bc31fa8d9421c29506d4e600aecefaa1b7d"
],
"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": 6463,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9809,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10011,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": [
{
"pc": 3138,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 5
}
|