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

Analysis Run

9ddbf2b4-3560-4207-aba0-175d63d7e610

failed
Chain ID
1
Address
Block Number
Created
Sun, Dec 28, 2025 1:45 PM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30298 report.consolidate complete 1 / 1 3 months ago
73972 artifact.fetch failed 1 / 3 1 week ago
73973 tool.cast_disasm complete 1 / 3 1 week ago
73974 analysis.bundle complete 1 / 3 1 week ago
73975 capability.graph complete 1 / 3 1 week ago
73976 detector.run complete 1 / 3 1 week ago
73977 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
3
No findings?
no
Summary
Found three issues: upgradeable initialization not locked, fee-on-transfer accounting mismatch, and replayable revert requests.
View stderr
[codex:772943] OpenAI Codex v0.77.0 (research preview)
[codex:772943] --------
[codex:772943] workdir: /tmp/codex-multi-t07hntsb
[codex:772943] model: gpt-5.2-codex
[codex:772943] provider: openai
[codex:772943] approval: never
[codex:772943] sandbox: read-only
[codex:772943] reasoning effort: xhigh
[codex:772943] reasoning summaries: auto
[codex:772943] session id: 019b652e-bfec-7b52-8c5b-ef79f2d6324d
[codex:772943] --------
[codex:772943] user
[codex:772943] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:772943] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:772943] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:772943] 
[codex:772943] Scope rules:
[codex:772943] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:772943] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:772943] 
[codex:772943] Output MUST be valid JSON matching the provided schema.
[codex:772943] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:772943] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:772943] 
[codex:772943] Output constraints (IMPORTANT):
[codex:772943] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:772943] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:772943] mcp startup: no servers
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Preparing to read instruction files**
[codex:772943] exec
[codex:772943] /bin/bash -lc ls in /tmp/codex-multi-t07hntsb succeeded in 5ms:
[codex:772943] AUDIT_BUNDLE.txt
[codex:772943] codex-output-schema.json
[codex:772943] contracts
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Checking user skills and preparing to read audit file**
[codex:772943] exec
[codex:772943] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-t07hntsb succeeded in 6ms:
[codex:772943] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:772943] 
[codex:772943] ================================================================================
[codex:772943] FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:772943] ================================================================================
[codex:772943] // SPDX-License-Identifier: MIT
[codex:772943] // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
[codex:772943] 
[codex:772943] pragma solidity ^0.8.0;
[codex:772943] 
[codex:772943] import "../utils/Context.sol";
[codex:772943] 
[codex:772943] /**
[codex:772943]  * @dev Contract module which provides a basic access control mechanism, where
[codex:772943]  * there is an account (an owner) that can be granted exclusive access to
[codex:772943]  * specific functions.
[codex:772943]  *
[codex:772943]  * By default, the owner account will be the one that deploys the contract. This
[codex:772943]  * can later be changed with {transferOwnership}.
[codex:772943]  *
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Planning segmented file parsing**
[codex:772943] exec
[codex:772943] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-t07hntsb succeeded in 6ms:
[codex:772943] 4:FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:772943] 84:FILE: contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:772943] 170:FILE: contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol
[codex:772943] 234:FILE: contracts/@openzeppelin/contracts/utils/Context.sol
[codex:772943] 262:FILE: contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol
[codex:772943] 349:FILE: contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol
[codex:772943] 433:FILE: contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol
[codex:772943] 627:FILE: contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol
[codex:772943] 663:FILE: contracts/@uniswap/lib/contracts/libraries/TransferHelper.sol
[codex:772943] 718:FILE: contracts/contracts/synth-core/Portal.sol
[codex:772943] 1411:FILE: contracts/contracts/synth-core/interfaces/IBridge.sol
[codex:772943] 1441:FILE: contracts/contracts/synth-core/interfaces/IWrapper.sol
[codex:772943] 1453:FILE: contracts/contracts/synth-core/metarouter/MetaRouteStructs.sol
[codex:772943] 1558:FILE: contracts/contracts/synth-core/metarouter/interfaces/IMetaRouter.sol
[codex:772943] 1607:FILE: contracts/contracts/synth-core/types/BtcSerial.sol
[codex:772943] 1626:FILE: contracts/contracts/utils/RelayRecipientUpgradeable.sol
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Examining main contract Portal.sol**
[codex:772943] exec
[codex:772943] /bin/bash -lc "sed -n '718,1100p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-t07hntsb succeeded in 7ms:
[codex:772943] FILE: contracts/contracts/synth-core/Portal.sol
[codex:772943] ================================================================================
[codex:772943] // SPDX-License-Identifier: GPL-3.0
[codex:772943] 
[codex:772943] pragma solidity ^0.8.0;
[codex:772943] 
[codex:772943] import "@openzeppelin/contracts/access/Ownable.sol";
[codex:772943] import "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol";
[codex:772943] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:772943] import "./interfaces/IBridge.sol";
[codex:772943] import "@uniswap/lib/contracts/libraries/TransferHelper.sol";
[codex:772943] import "../utils/RelayRecipientUpgradeable.sol";
[codex:772943] import "./interfaces/IWrapper.sol";
[codex:772943] import "./metarouter/interfaces/IMetaRouter.sol";
[codex:772943] 
[codex:772943] /**
[codex:772943]  * @title A contract that synthesizes tokens
[codex:772943]  * @notice In order to create a synthetic representation on another network, the user must call synthesize function here
[codex:772943]  * @dev All function calls are currently implemented without side effects
[codex:772943]  */
[codex:772943] exec
[codex:772943] /bin/bash -lc "sed -n '1100,1415p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-t07hntsb succeeded in 5ms:
[codex:772943]             );
[codex:772943]             IBridge(bridge).transmitRequestV2(
[codex:772943]                 out,
[codex:772943]                 _receiveSide,
[codex:772943]                 _oppositeBridge,
[codex:772943]                 _chainId
[codex:772943]             );
[codex:772943]         }
[codex:772943] 
[codex:772943]         emit RevertBurnRequest(_internalID, _msgSender());
[codex:772943]         emit ClientIdLog(_internalID, _clientID);
[codex:772943]     }
[codex:772943] 
[codex:772943]     function metaRevertRequest(
[codex:772943]         MetaRouteStructs.MetaRevertTransaction memory _metaRevertTransaction
[codex:772943]     ) external whenNotPaused {
[codex:772943]         if (_metaRevertTransaction.swapCalldata.length != 0){
[codex:772943]             bytes32 externalID = keccak256(abi.encodePacked(_metaRevertTransaction.internalID, address(this), _msgSender(), block.chainid));
[codex:772943] 
[codex:772943]             require(
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Reviewing upgradeable contract and reentrancy risks**
[codex:772943] 
[codex:772943] I'm examining the Portal and RelayRecipientUpgradeable contracts for vulnerabilities like uninitialized implementations, external call patterns, and reentrancy concerns, especially around state updates before external calls and access controls on sensitive functions. I'm also considering if public initializer exposure or missing constructor safeguards pose real risks given typical proxy usage.
[codex:772943] exec
[codex:772943] /bin/bash -lc 'rg -n "synthesizeNative|permit|wrapper|native" AUDIT_BUNDLE.txt' in /tmp/codex-multi-t07hntsb succeeded in 6ms:
[codex:772943] 181: * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
[codex:772943] 207:    function permit(
[codex:772943] 219:     * included whenever a signature is generated for {permit}.
[codex:772943] 221:     * Every successful call to {permit} increases ``owner``'s nonce by one. This
[codex:772943] 227:     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.
[codex:772943] 741:    address public wrapper;
[codex:772943] 832:    event SetWrapper(address wrapper);
[codex:772943] 856:        address _wrapper,
[codex:772943] 861:        wrapper = _wrapper;
[codex:772943] 1237:    function setWrapper(address _wrapper) external onlyOwner {
[codex:772943] 1238:        wrapper = _wrapper;
[codex:772943] 1239:        emit SetWrapper(_wrapper);
[codex:772943] 1264:     * @dev Internal function used in synthesize, synthesizeNative, synthesizeWithPermit
[codex:772943] 1516:        bool nativeIn;
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Analyzing contract code and potential risks**
[codex:772943] exec
[codex:772943] /bin/bash -lc 'rg --files' in /tmp/codex-multi-t07hntsb succeeded in 10ms:
[codex:772943] codex-output-schema.json
[codex:772943] AUDIT_BUNDLE.txt
[codex:772943] contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol
[codex:772943] contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol
[codex:772943] contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol
[codex:772943] contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol
[codex:772943] contracts/@uniswap/lib/contracts/libraries/TransferHelper.sol
[codex:772943] contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:772943] contracts/contracts/utils/RelayRecipientUpgradeable.sol
[codex:772943] contracts/contracts/synth-core/Portal.sol
[codex:772943] contracts/@openzeppelin/contracts/utils/Context.sol
[codex:772943] contracts/contracts/synth-core/interfaces/IWrapper.sol
[codex:772943] contracts/contracts/synth-core/interfaces/IBridge.sol
[codex:772943] contracts/contracts/synth-core/types/BtcSerial.sol
[codex:772943] contracts/contracts/synth-core/metarouter/MetaRouteStructs.sol
[codex:772943] contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:772943] contracts/contracts/synth-core/metarouter/interfaces/IMetaRouter.sol
[codex:772943] contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Preparing to inspect Portal.sol**
[codex:772943] exec
[codex:772943] /bin/bash -lc 'nl -ba contracts/contracts/synth-core/Portal.sol' in /tmp/codex-multi-t07hntsb succeeded in 5ms:
[codex:772943]      1	// SPDX-License-Identifier: GPL-3.0
[codex:772943]      2	
[codex:772943]      3	pragma solidity ^0.8.0;
[codex:772943]      4	
[codex:772943]      5	import "@openzeppelin/contracts/access/Ownable.sol";
[codex:772943]      6	import "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol";
[codex:772943]      7	import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:772943]      8	import "./interfaces/IBridge.sol";
[codex:772943]      9	import "@uniswap/lib/contracts/libraries/TransferHelper.sol";
[codex:772943]     10	import "../utils/RelayRecipientUpgradeable.sol";
[codex:772943]     11	import "./interfaces/IWrapper.sol";
[codex:772943]     12	import "./metarouter/interfaces/IMetaRouter.sol";
[codex:772943]     13	
[codex:772943]     14	/**
[codex:772943]     15	 * @title A contract that synthesizes tokens
[codex:772943]     16	 * @notice In order to create a synthetic representation on another network, the user must call synthesize function here
[codex:772943]     17	 * @dev All function calls are currently implemented without side effects
[codex:772943]     18	 */
[codex:772943]     19	contract Portal is RelayRecipientUpgradeable {
[codex:772943]     20	    /// ** PUBLIC states **
[codex:772943] 
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Analyzing potential security concerns**
[codex:772943] thinking
[codex:772943] **Examining upgrade and cross-chain message risks**
[codex:772943] 
[codex:772943] I’m looking closely at upgrade initialization risks and how user-supplied cross-chain target addresses could allow arbitrary messages if the bridge doesn’t enforce whitelists. There’s also some subtle reentrancy possible during token transfers that might complicate state, plus behavior around meta transactions and externalID consistency that seems correct but deserves attention. This is a neat mix of design assumptions and possible security angles to sort through!
[codex:772943] exec
[codex:772943] /bin/bash -lc 'nl -ba contracts/contracts/utils/RelayRecipientUpgradeable.sol' in /tmp/codex-multi-t07hntsb succeeded in 5ms:
[codex:772943]      1	// SPDX-License-Identifier: GPL-3.0
[codex:772943]      2	
[codex:772943]      3	pragma solidity ^0.8.0;
[codex:772943]      4	
[codex:772943]      5	import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
[codex:772943]      6	
[codex:772943]      7	abstract contract RelayRecipientUpgradeable is OwnableUpgradeable {
[codex:772943]      8	    address private _trustedForwarder;
[codex:772943]      9	
[codex:772943]     10	    function __RelayRecipient_init(address trustedForwarder)
[codex:772943]     11	        internal
[codex:772943]     12	        onlyInitializing
[codex:772943]     13	    {
[codex:772943]     14	        __Ownable_init();
[codex:772943]     15	        _trustedForwarder = trustedForwarder;
[codex:772943]     16	    }
[codex:772943]     17	
[codex:772943]     18	    function isTrustedForwarder(address forwarder)
[codex:772943]     19	        public
[codex:772943]     20	        view
[codex:772943] 
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Analyzing potential vulnerabilities and upgradeability risks**
[codex:772943] 
[codex:772943] I’m carefully reviewing upgradeability patterns, access controls, and token handling to spot risks like unprotected initialization, fee-on-transfer token accounting issues, and repeated revert requests that might cause spam or double refunds. There’s a lot to unpack around external call patterns, state management, and trust assumptions with the forwarder and bridge contracts. I’m narrowing down the most meaningful issues while filtering out intended behaviors.
[codex:772943] thinking
[codex:772943] **Evaluating state management and externalID logic**
[codex:772943] 
[codex:772943] I’m examining how revert requests and unsynthesize states interact, especially around externalID computations and their effect on user funds or potential locks. The interplay between revert and burn externalIDs is complex and unclear without more contract context, so I’m cautious about claiming serious issues but noting some possible self-imposed fund locks or edge cases in state persistence.
[codex:772943] exec
[codex:772943] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-t07hntsb succeeded in 6ms:
[codex:772943] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:772943] 
[codex:772943] 
[codex:772943] thinking
[codex:772943] **Summarizing vulnerability findings**
[codex:772943] 
[codex:772943] I'm preparing a JSON report with findings on upgradeability initialization risk, fee-on-transfer accounting issues, and replayable revert requests, including their severity, categories, locations, and exploit scenarios based on the Solidity contract analysis.
[codex:772943] thinking
[codex:772943] **Detailing vulnerability exploit scenarios**
[codex:772943] 
[codex:772943] I’m organizing clear exploit scenarios and recommendations for the identified issues, including initializer misuse for ownership takeover, fee-on-transfer token undercollateralization, and replayable revert requests that could spam the bridge. I’ll include relevant evidence lines and suggested mitigations in the final JSON output.
[codex:772943] codex
[codex:772943] {"no_findings":false,"summary":"Found three issues: upgradeable initialization not locked, fee-on-transfer accounting mismatch, and replayable revert requests.","findings":[{"severity":"medium","category":"upgradeability","title":"Upgradeable Portal can be initialized by anyone if proxy/implementation is left uninitialized","exploit_scenario":"If a proxy is deployed without an immediate initialize call (or the implementation is deployed and funded directly), an attacker can call initialize, become owner, set bridge/metaRouter, and then use onlyBridge paths (after setting bridge to themselves) to withdraw locked tokens.","recommendation":"Add a constructor that calls `_disableInitializers()` on the implementation and ensure deployment scripts initialize the proxy atomically (e.g., constructor data).","evidence":"`initialize` is `public` and guarded only by `initializer`, with no constructor disabling initializers in the implementation.","locations":["contracts/contracts/synth-core/Portal.sol:134","contracts/contracts/utils/RelayRecipientUpgradeable.sol:10"]},{"severity":"medium","category":"math","title":"Fee-on-transfer/rebasing tokens can undercollateralize synths","exploit_scenario":"If a whitelisted token takes a transfer fee or rebases, `synthesize`/`metaSynthesize` use the requested `_amount` rather than the actual received amount. A user can mint synthetic assets for more than the contract actually locked, then later redeem full value, leaving the pool undercollateralized or causing insolvency on redeem.","recommendation":"Whitelist only vanilla ERC20s or calculate the actual received amount by checking token balance before/after transfer and use that value for accounting and mint requests.","evidence":"`balanceOf` is incremented by the user-supplied `_amount` after `safeTransferFrom`, without verifying actual tokens received.","locations":["contracts/contracts/synth-core/Portal.sol:174","contracts/contracts/synth-core/Portal.sol:187","contracts/contracts/synth-core/Portal.sol:558","contracts/contracts/synth-core/Portal.sol:213","contracts/contracts/synth-core/Portal.sol:624"]},{"severity":"low","category":"other","title":"Revert request functions are replayable, allowing repeated bridge calls","exploit_scenario":"An attacker can call `revertBurnRequest` or `metaRevertRequest` repeatedly for the same `internalID`. The functions only block the `Unsynthesized` state, so each call sends a new `transmitRequestV2` to the bridge. If the remote side is not idempotent, this can lead to duplicate processing; otherwise it can be used to spam or waste bridge resources.","recommendation":"Require `unsynthesizeStates[externalID] == Default` before sending a revert request and consider adding explicit replay protection or an idempotency check.","evidence":"The guard only checks `!= Unsynthesized` and does not prevent repeated calls once state is `RevertRequest`.","locations":["contracts/contracts/synth-core/Portal.sol:360","contracts/contracts/synth-core/Portal.sol:370","contracts/contracts/synth-core/Portal.sol:394","contracts/contracts/synth-core/Portal.sol:400"]}]}
[codex:772943] tokens used
[codex:772943] 54,748
[codex:772943] {"no_findings":false,"summary":"Found three issues: upgradeable initialization not locked, fee-on-transfer accounting mismatch, and replayable revert requests.","findings":[{"severity":"medium","category":"upgradeability","title":"Upgradeable Portal can be initialized by anyone if proxy/implementation is left uninitialized","exploit_scenario":"If a proxy is deployed without an immediate initialize call (or the implementation is deployed and funded directly), an attacker can call initialize, become owner, set bridge/metaRouter, and then use onlyBridge paths (after setting bridge to themselves) to withdraw locked tokens.","recommendation":"Add a constructor that calls `_disableInitializers()` on the implementation and ensure deployment scripts initialize the proxy atomically (e.g., constructor data).","evidence":"`initialize` is `public` and guarded only by `initializer`, with no constructor disabling initializers in the implementation.","locations":["contracts/contracts/synth-core/Portal.sol:134","contracts/contracts/utils/RelayRecipientUpgradeable.sol:10"]},{"severity":"medium","category":"math","title":"Fee-on-transfer/rebasing tokens can undercollateralize synths","exploit_scenario":"If a whitelisted token takes a transfer fee or rebases, `synthesize`/`metaSynthesize` use the requested `_amount` rather than the actual received amount. A user can mint synthetic assets for more than the contract actually locked, then later redeem full value, leaving the pool undercollateralized or causing insolvency on redeem.","recommendation":"Whitelist only vanilla ERC20s or calculate the actual received amount by checking token balance before/after transfer and use that value for accounting and mint requests.","evidence":"`balanceOf` is incremented by the user-supplied `_amount` after `safeTransferFrom`, without verifying actual tokens received.","locations":["contracts/contracts/synth-core/Portal.sol:174","contracts/contracts/synth-core/Portal.sol:187","contracts/contracts/synth-core/Portal.sol:558","contracts/contracts/synth-core/Portal.sol:213","contracts/contracts/synth-core/Portal.sol:624"]},{"severity":"low","category":"other","title":"Revert request functions are replayable, allowing repeated bridge calls","exploit_scenario":"An attacker can call `revertBurnRequest` or `metaRevertRequest` repeatedly for the same `internalID`. The functions only block the `Unsynthesized` state, so each call sends a new `transmitRequestV2` to the bridge. If the remote side is not idempotent, this can lead to duplicate processing; otherwise it can be used to spam or waste bridge resources.","recommendation":"Require `unsynthesizeStates[externalID] == Default` before sending a revert request and consider adding explicit replay protection or an idempotency check.","evidence":"The guard only checks `!= Unsynthesized` and does not prevent repeated calls once state is `RevertRequest`.","locations":["contracts/contracts/synth-core/Portal.sol:360","contracts/contracts/synth-core/Portal.sol:370","contracts/contracts/synth-core/Portal.sol:394","contracts/contracts/synth-core/Portal.sol:400"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-28T13:45:36.489475+00:00",
        "returncode": 0
    },
    "summary": "Found three issues: upgradeable initialization not locked, fee-on-transfer accounting mismatch, and replayable revert requests.",
    "raw_final": {
        "summary": "Found three issues: upgradeable initialization not locked, fee-on-transfer accounting mismatch, and replayable revert requests.",
        "findings": [
            {
                "title": "Upgradeable Portal can be initialized by anyone if proxy/implementation is left uninitialized",
                "category": "upgradeability",
                "evidence": "`initialize` is `public` and guarded only by `initializer`, with no constructor disabling initializers in the implementation.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/synth-core/Portal.sol:134",
                    "contracts/contracts/utils/RelayRecipientUpgradeable.sol:10"
                ],
                "recommendation": "Add a constructor that calls `_disableInitializers()` on the implementation and ensure deployment scripts initialize the proxy atomically (e.g., constructor data).",
                "exploit_scenario": "If a proxy is deployed without an immediate initialize call (or the implementation is deployed and funded directly), an attacker can call initialize, become owner, set bridge/metaRouter, and then use onlyBridge paths (after setting bridge to themselves) to withdraw locked tokens."
            },
            {
                "title": "Fee-on-transfer/rebasing tokens can undercollateralize synths",
                "category": "math",
                "evidence": "`balanceOf` is incremented by the user-supplied `_amount` after `safeTransferFrom`, without verifying actual tokens received.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/synth-core/Portal.sol:174",
                    "contracts/contracts/synth-core/Portal.sol:187",
                    "contracts/contracts/synth-core/Portal.sol:558",
                    "contracts/contracts/synth-core/Portal.sol:213",
                    "contracts/contracts/synth-core/Portal.sol:624"
                ],
                "recommendation": "Whitelist only vanilla ERC20s or calculate the actual received amount by checking token balance before/after transfer and use that value for accounting and mint requests.",
                "exploit_scenario": "If a whitelisted token takes a transfer fee or rebases, `synthesize`/`metaSynthesize` use the requested `_amount` rather than the actual received amount. A user can mint synthetic assets for more than the contract actually locked, then later redeem full value, leaving the pool undercollateralized or causing insolvency on redeem."
            },
            {
                "title": "Revert request functions are replayable, allowing repeated bridge calls",
                "category": "other",
                "evidence": "The guard only checks `!= Unsynthesized` and does not prevent repeated calls once state is `RevertRequest`.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/synth-core/Portal.sol:360",
                    "contracts/contracts/synth-core/Portal.sol:370",
                    "contracts/contracts/synth-core/Portal.sol:394",
                    "contracts/contracts/synth-core/Portal.sol:400"
                ],
                "recommendation": "Require `unsynthesizeStates[externalID] == Default` before sending a revert request and consider adding explicit replay protection or an idempotency check.",
                "exploit_scenario": "An attacker can call `revertBurnRequest` or `metaRevertRequest` repeatedly for the same `internalID`. The functions only block the `Unsynthesized` state, so each call sends a new `transmitRequestV2` to the bridge. If the remote side is not idempotent, this can lead to duplicate processing; otherwise it can be used to spam or waste bridge resources."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
10
EXT*/BALANCE
9
Total opcodes
6961
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: ISZERO
0000000a: PUSH2 0x0012
0000000d: JUMPI
0000000e: PUSH1 0x00
00000010: DUP1
00000011: REVERT
00000012: JUMPDEST
00000013: PUSH1 0x00
00000015: DUP1
00000016: CALLDATALOAD
00000017: PUSH1 0xe0
00000019: SHR
0000001a: DUP1
0000001b: PUSH4 0x08759e9b
00000020: EQ
00000021: PUSH2 0x23e3
00000024: JUMPI
00000025: DUP1
00000026: PUSH4 0x1459457a
0000002b: EQ
0000002c: PUSH2 0x2203
0000002f: JUMPI
00000030: DUP1
00000031: PUSH4 0x1ebe53ef
00000036: EQ
00000037: PUSH2 0x20cb
0000003a: JUMPI
0000003b: DUP1
0000003c: PUSH4 0x3f4ba83a
00000041: EQ
00000042: PUSH2 0x206c
00000045: JUMPI
00000046: DUP1
00000047: PUSH4 0x486ff0cd
0000004c: EQ
0000004d: PUSH2 0x200a
00000050: JUMPI
00000051: DUP1
00000052: PUSH4 0x4a913664
00000057: EQ
00000058: PUSH2 0x1eb1
0000005b: JUMPI
0000005c: DUP1
0000005d: PUSH4 0x572b6c05
00000062: EQ
00000063: PUSH2 0x1e7d
00000066: JUMPI
00000067: DUP1
00000068: PUSH4 0x5badbe4c
0000006d: EQ
0000006e: PUSH2 0x1e5f
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0x5c975abb
00000078: EQ
00000079: PUSH2 0x1e3c
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0x68775278
00000083: EQ
00000084: PUSH2 0x1e04
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0x70a08231
0000008e: EQ
0000008f: PUSH2 0x1dcc
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0x715018a6
00000099: EQ
0000009a: PUSH2 0x1d55
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0x753d7563
000000a4: EQ
000000a5: PUSH2 0x1d18
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0x7c374f99
000000af: EQ
000000b0: PUSH2 0x1c89
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0x8456cb59
000000ba: EQ
000000bb: PUSH2 0x1c1c
000000be: JUMPI
000000bf: DUP1
000000c0: PUSH4 0x8bb39802
000000c5: EQ
000000c6: PUSH2 0x1b8a
000000c9: JUMPI
000000ca: DUP1
000000cb: PUSH4 0x8da5cb5b
000000d0: EQ
000000d1: PUSH2 0x1b63
000000d4: JUMPI
000000d5: DUP1
000000d6: PUSH4 0x9d866985
000000db: EQ
000000dc: PUSH2 0x1af3
000000df: JUMPI
000000e0: DUP1
000000e1: PUSH4 0xac210cc7
000000e6: EQ
000000e7: PUSH2 0x1acc
000000ea: JUMPI
000000eb: DUP1
000000ec: PUSH4 0xb1659a3c
000000f1: EQ
000000f2: PUSH2 0x168f
000000f5: JUMPI
000000f6: DUP1
000000f7: PUSH4 0xc2167d93
000000fc: EQ
000000fd: PUSH2 0x160e
00000100: JUMPI
00000101: DUP1
00000102: PUSH4 0xc23a4c88
00000107: EQ
00000108: PUSH2 0x157c
0000010b: JUMPI
0000010c: DUP1
0000010d: PUSH4 0xc42a2894
00000112: EQ
00000113: PUSH2 0x13ab
00000116: JUMPI
00000117: DUP1
00000118: PUSH4 0xce654c17
0000011d: EQ
0000011e: PUSH2 0x0c31
00000121: JUMPI
00000122: DUP1
00000123: PUSH4 0xdbec15bb
00000128: EQ
00000129: PUSH2 0x0c0a
0000012c: JUMPI
0000012d: DUP1
0000012e: PUSH4 0xe78cea92
00000133: EQ
00000134: PUSH2 0x0be3
00000137: JUMPI
00000138: DUP1
00000139: PUSH4 0xeadd5c34
0000013e: EQ
0000013f: PUSH2 0x0af1
00000142: JUMPI
00000143: DUP1
00000144: PUSH4 0xf2fde38b
00000149: EQ
0000014a: PUSH2 0x0a3a
0000014d: JUMPI
0000014e: DUP1
0000014f: PUSH4 0xfab92894
00000154: EQ
00000155: PUSH2 0x0a04
00000158: JUMPI
00000159: PUSH4 0xfce633c2
0000015e: EQ
0000015f: PUSH2 0x0167
00000162: JUMPI
00000163: PUSH1 0x00
00000165: DUP1
00000166: REVERT
00000167: JUMPDEST
00000168: CALLVALUE
00000169: PUSH2 0x0a01
0000016c: JUMPI
0000016d: PUSH1 0x03
0000016f: NOT
00000170: PUSH1 0x20
00000172: DUP2
00000173: CALLDATASIZE
00000174: ADD
00000175: SLT
00000176: PUSH2 0x05ee
00000179: JUMPI
0000017a: PUSH8 0xffffffffffffffff
00000183: PUSH1 0x04
00000185: CALLDATALOAD
00000186: GT
00000187: PUSH2 0x05ee
0000018a: JUMPI
0000018b: PUSH2 0x01a0
0000018e: SWAP1
0000018f: PUSH1 0x04
00000191: CALLDATALOAD
00000192: CALLDATASIZE
00000193: SUB
00000194: ADD
00000195: SLT
00000196: PUSH2 0x0a01
00000199: JUMPI
0000019a: PUSH1 0x40
0000019c: MLOAD
0000019d: PUSH2 0x01a5
000001a0: DUP2
000001a1: PUSH2 0x2727
000001a4: JUMP
000001a5: JUMPDEST
000001a6: PUSH1 0x04
000001a8: CALLDATALOAD
000001a9: PUSH1 0x04
000001ab: ADD
000001ac: CALLDATALOAD
000001ad: DUP2
000001ae: MSTORE
000001af: PUSH1 0x24
000001b1: PUSH1 0x04
000001b3: CALLDATALOAD
000001b4: ADD
000001b5: CALLDATALOAD
000001b6: PUSH1 0x20
000001b8: DUP3
000001b9: ADD
000001ba: MSTORE
000001bb: PUSH2 0x01c8
000001be: PUSH1 0x44
000001c0: PUSH1 0x04
000001c2: CALLDATALOAD
000001c3: ADD
000001c4: PUSH2 0x26a3
000001c7: JUMP
000001c8: JUMPDEST
000001c9: PUSH1 0x40
000001cb: DUP3
000001cc: ADD
000001cd: MSTORE
000001ce: PUSH2 0x01db
000001d1: PUSH1 0x64
000001d3: PUSH1 0x04
000001d5: CALLDATALOAD
000001d6: ADD
000001d7: PUSH2 0x26a3
000001da: JUMP
000001db: JUMPDEST
000001dc: PUSH1 0x60
000001de: DUP3
000001df: ADD
000001e0: MSTORE
000001e1: PUSH2 0x01ee
000001e4: PUSH1 0x84
000001e6: PUSH1 0x04
000001e8: CALLDATALOAD
000001e9: ADD
000001ea: PUSH2 0x26a3
000001ed: JUMP
000001ee: JUMPDEST
000001ef: PUSH1 0x80
000001f1: DUP3
000001f2: ADD
000001f3: MSTORE
000001f4: PUSH1 0x04
000001f6: CALLDATALOAD
000001f7: PUSH1 0xa4
000001f9: DUP2
000001fa: ADD
000001fb: CALLDATALOAD
000001fc: PUSH1 0xa0
000001fe: DUP4
000001ff: ADD
00000200: MSTORE
00000201: PUSH1 0xc4
00000203: DUP2
00000204: ADD
00000205: CALLDATALOAD
00000206: PUSH1 0xc0
00000208: DUP4
00000209: ADD
0000020a: MSTORE
0000020b: PUSH2 0x0216
0000020e: SWAP1
0000020f: PUSH1 0xe4
00000211: ADD
00000212: PUSH2 0x26a3
00000215: JUMP
00000216: JUMPDEST
00000217: PUSH1 0xe0
00000219: DUP3
0000021a: ADD
0000021b: MSTORE
0000021c: PUSH2 0x0104
0000021f: PUSH1 0x04
00000221: CALLDATALOAD
00000222: ADD
00000223: CALLDATALOAD
00000224: PUSH8 0xffffffffffffffff
0000022d: DUP2
0000022e: GT
0000022f: PUSH2 0x09fd
00000232: JUMPI
00000233: PUSH2 0x0243
00000236: SWAP1
00000237: PUSH1 0x04
00000239: CALLDATASIZE
0000023a: SWAP2
0000023b: DUP2
0000023c: CALLDATALOAD
0000023d: ADD
0000023e: ADD
0000023f: PUSH2 0x2867
00000242: JUMP
00000243: JUMPDEST
00000244: PUSH2 0x0100
00000247: DUP3
00000248: ADD
00000249: MSTORE
0000024a: PUSH2 0x0258
0000024d: PUSH2 0x0124
00000250: PUSH1 0x04
00000252: CALLDATALOAD
00000253: ADD
00000254: PUSH2 0x26a3
00000257: JUMP
00000258: JUMPDEST
00000259: PUSH2 0x0120
0000025c: DUP3
0000025d: ADD
0000025e: MSTORE
0000025f: PUSH2 0x026d
00000262: PUSH2 0x0144
00000265: PUSH1 0x04
00000267: CALLDATALOAD
00000268: ADD
00000269: PUSH2 0x26a3
0000026c: JUMP
0000026d: JUMPDEST
0000026e: PUSH2 0x0140
00000271: DUP3
00000272: ADD
00000273: MSTORE
00000274: PUSH2 0x0164
00000277: PUSH1 0x04
00000279: CALLDATALOAD
0000027a: ADD
0000027b: CALLDATALOAD
0000027c: PUSH8 0xffffffffffffffff
00000285: DUP2
00000286: GT
00000287: PUSH2 0x09fd
0000028a: JUMPI
0000028b: PUSH2 0x029b
0000028e: SWAP1
0000028f: PUSH1 0x04
00000291: CALLDATASIZE
00000292: SWAP2
00000293: DUP2
00000294: CALLDATALOAD
00000295: ADD
00000296: ADD
00000297: PUSH2 0x2867
0000029a: JUMP
0000029b: JUMPDEST
0000029c: PUSH2 0x0160
0000029f: DUP3
000002a0: ADD
000002a1: MSTORE
000002a2: PUSH2 0x0184
000002a5: PUSH1 0x04
000002a7: CALLDATALOAD
000002a8: ADD
000002a9: CALLDATALOAD
000002aa: PUSH2 0x0180
000002ad: DUP3
000002ae: ADD
000002af: MSTORE
000002b0: PUSH2 0x02be
000002b3: PUSH1 0xff
000002b5: PUSH1 0x69
000002b7: SLOAD
000002b8: AND
000002b9: ISZERO
000002ba: PUSH2 0x294e
000002bd: JUMP
000002be: JUMPDEST
000002bf: PUSH2 0x0100
000002c2: DUP2
000002c3: ADD
000002c4: MLOAD
000002c5: MLOAD
000002c6: ISZERO
000002c7: PUSH2 0x0601
000002ca: JUMPI
000002cb: DUP2
000002cc: PUSH1 0x20
000002ce: DUP3
000002cf: ADD
000002d0: MLOAD
000002d1: PUSH2 0x0322
000002d4: PUSH2 0x0330
000002d7: PUSH2 0x02de
000002da: PUSH2 0x316e
000002dd: JUMP
000002de: JUMPDEST
000002df: SWAP3
000002e0: PUSH1 0x40
000002e2: MLOAD
000002e3: SWAP3
000002e4: DUP4
000002e5: SWAP2
000002e6: PUSH1 0x20
000002e8: DUP4
000002e9: ADD
000002ea: SWAP6
000002eb: CHAINID
000002ec: SWAP2
000002ed: ADDRESS
000002ee: SWAP1
000002ef: DUP9
000002f0: SWAP3
000002f1: PUSH1 0x68
000002f3: SWAP5
000002f4: SWAP3
000002f5: SWAP2
000002f6: DUP5
000002f7: MSTORE
000002f8: PUSH12 0xffffffffffffffffffffffff
00000305: NOT
00000306: DUP1
00000307: SWAP3
00000308: PUSH1 0x60
0000030a: SHL
0000030b: AND
0000030c: PUSH1 0x20
0000030e: DUP6
0000030f: ADD
00000310: MSTORE
00000311: PUSH1 0x60
00000313: SHL
00000314: AND
00000315: PUSH1 0x34
00000317: DUP4
00000318: ADD
00000319: MSTORE
0000031a: PUSH1 0x48
0000031c: DUP3
0000031d: ADD
0000031e: MSTORE
0000031f: ADD
00000320: SWAP1
00000321: JUMP
00000322: JUMPDEST
00000323: SUB
00000324: PUSH1 0x1f
00000326: NOT
00000327: DUP2
00000328: ADD
00000329: DUP4
0000032a: MSTORE
0000032b: DUP3
0000032c: PUSH2 0x2799
0000032f: JUMP
00000330: JUMPDEST
00000331: MLOAD
00000332: SWAP1
00000333: KECCAK256
00000334: DUP1
00000335: DUP3
00000336: MSTORE
00000337: PUSH1 0x6b
00000339: PUSH1 0x20
0000033b: MSTORE
0000033c: PUSH2 0x0358
0000033f: PUSH1 0x01
00000341: PUSH1 0xff
00000343: PUSH1 0x40
00000345: DUP6
00000346: KECCAK256
00000347: SLOAD
00000348: AND
00000349: PUSH2 0x0351
0000034c: DUP2
0000034d: PUSH2 0x282b
00000350: JUMP
00000351: JUMPDEST
00000352: EQ
00000353: ISZERO
00000354: PUSH2 0x2fb7
00000357: JUMP
00000358: JUMPDEST
00000359: DUP1
0000035a: DUP3
0000035b: MSTORE
0000035c: PUSH1 0x6b
0000035e: PUSH1 0x20
00000360: MSTORE
00000361: PUSH1 0x40
00000363: DUP3
00000364: KECCAK256
00000365: PUSH1 0x02
00000367: PUSH1 0xff
00000369: NOT
0000036a: DUP3
0000036b: SLOAD
0000036c: AND
0000036d: OR
0000036e: SWAP1
0000036f: SSTORE
00000370: PUSH2 0x04c5
00000373: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000394: PUSH1 0x43
00000396: PUSH1 0x40
00000398: MLOAD
00000399: PUSH2 0x03a1
0000039c: DUP2
0000039d: PUSH2 0x2760
000003a0: JUMP
000003a1: JUMPDEST
000003a2: DUP2
000003a3: DUP2
000003a4: MSTORE
000003a5: PUSH32 0x6573290000000000000000000000000000000000000000000000000000000000
000003c6: PUSH1 0x60
000003c8: PUSH1 0x20
000003ca: DUP4
000003cb: ADD
000003cc: SWAP3
000003cd: PUSH32 0x7265766572744d6574614275726e2875696e743235362c627974657333322c61
000003ee: DUP5
000003ef: MSTORE
000003f0: PUSH32 0x6464726573732c62797465732c616464726573732c616464726573732c627974
00000411: PUSH1 0x40
00000413: DUP3
00000414: ADD
00000415: MSTORE
00000416: ADD
00000417: MSTORE
00000418: KECCAK256
00000419: AND
0000041a: PUSH2 0x0322
0000041d: DUP6
0000041e: MLOAD
0000041f: SWAP4
00000420: PUSH1 0x01
00000422: PUSH1 0x01
00000424: PUSH1 0xa0
00000426: SHL
00000427: SUB
00000428: PUSH1 0xe0
0000042a: DUP9
0000042b: ADD
0000042c: MLOAD
0000042d: AND
0000042e: SWAP1
0000042f: PUSH2 0x0100
00000432: DUP9
00000433: ADD
00000434: MLOAD
00000435: SWAP2
00000436: PUSH2 0x048b
00000439: PUSH1 0x01
0000043b: PUSH1 0x01
0000043d: PUSH1 0xa0
0000043f: SHL
00000440: SUB
00000441: PUSH2 0x0120
00000444: DUP12
00000445: ADD
00000446: MLOAD
00000447: AND
00000448: SWAP4
00000449: PUSH1 0x01
0000044b: PUSH1 0x01
0000044d: PUSH1 0xa0
0000044f: SHL
00000450: SUB
00000451: PUSH2 0x0140
00000454: DUP13
00000455: ADD
00000456: MLOAD
00000457: AND
00000458: SWAP3
00000459: PUSH2 0x0160
0000045c: DUP13
0000045d: ADD
0000045e: MLOAD
0000045f: SWAP5
00000460: PUSH1 0x40
00000462: MLOAD
00000463: SWAP11
00000464: DUP12
00000465: SWAP10
00000466: PUSH1 0x20
00000468: DUP12
00000469: ADD
0000046a: MSTORE
0000046b: PUSH1 0x24
0000046d: DUP11
0000046e: ADD
0000046f: MSTORE
00000470: PUSH1 0x44
00000472: DUP10
00000473: ADD
00000474: MSTORE
00000475: PUSH1 0x64
00000477: DUP9
00000478: ADD
00000479: MSTORE
0000047a: PUSH1 0xe0
0000047c: PUSH1 0x84
0000047e: DUP9
0000047f: ADD
00000480: MSTORE
00000481: PUSH2 0x0104
00000484: DUP8
00000485: ADD
00000486: SWAP1
00000487: PUSH2 0x26b7
0000048a: JUMP
0000048b: JUMPDEST
0000048c: SWAP3
0000048d: PUSH1 0xa4
0000048f: DUP7
00000490: ADD
00000491: MSTORE
00000492: PUSH1 0xc4
00000494: DUP6
00000495: ADD
00000496: MSTORE
00000497: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc
000004b8: DUP5
000004b9: DUP4
000004ba: SUB
000004bb: ADD
000004bc: PUSH1 0xe4
000004be: DUP6
000004bf: ADD
000004c0: MSTORE
000004c1: PUSH2 0x26b7
000004c4: JUMP
000004c5: JUMPDEST
000004c6: PUSH1 0x01
000004c8: PUSH1 0x01
000004ca: PUSH1 0xa0
000004cc: SHL
000004cd: SUB
000004ce: PUSH1 0x67
000004d0: SLOAD
000004d1: AND
000004d2: SWAP1
000004d3: PUSH1 0x01
000004d5: PUSH1 0x01
000004d7: PUSH1 0xa0
000004d9: SHL
000004da: SUB
000004db: PUSH1 0x40
000004dd: DUP6
000004de: ADD
000004df: MLOAD
000004e0: AND
000004e1: SWAP2
000004e2: PUSH1 0x01
000004e4: PUSH1 0x01
000004e6: PUSH1 0xa0
000004e8: SHL
000004e9: SUB
000004ea: PUSH1 0x60
000004ec: DUP7
000004ed: ADD
000004ee: MLOAD
000004ef: AND
000004f0: SWAP1
000004f1: PUSH1 0xa0
000004f3: DUP7
000004f4: ADD
000004f5: MLOAD
000004f6: SWAP4
000004f7: DUP2
000004f8: EXTCODESIZE
000004f9: ISZERO
000004fa: PUSH2 0x05fd
000004fd: JUMPI
000004fe: DUP6
000004ff: DUP1
00000500: SWAP5
00000501: PUSH2 0x0520
00000504: PUSH1 0x40
00000506: MLOAD
00000507: SWAP8
00000508: DUP9
00000509: SWAP7
0000050a: DUP8
0000050b: SWAP6
0000050c: DUP7
0000050d: SWAP5
0000050e: PUSH4 0x3675e4e1
00000513: PUSH1 0xe1
00000515: SHL
00000516: DUP7
00000517: MSTORE
00000518: PUSH1 0x04
0000051a: DUP7
0000051b: ADD
0000051c: PUSH2 0x3027
0000051f: JUMP
00000520: JUMPDEST
00000521: SUB
00000522: SWAP3
00000523: GAS
00000524: CALL
00000525: DUP1
00000526: ISZERO
00000527: PUSH2 0x05f2
0000052a: JUMPI
0000052b: PUSH2 0x05da
0000052e: JUMPI
0000052f: JUMPDEST
00000530: POP
00000531: POP
00000532: DUP1
00000533: PUSH1 0x20
00000535: DUP1
00000536: SWAP3
00000537: ADD
00000538: MLOAD
00000539: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5
0000055a: DUP4
0000055b: PUSH1 0x01
0000055d: PUSH1 0x01
0000055f: PUSH1 0xa0
00000561: SHL
00000562: SUB
00000563: PUSH2 0x056a
00000566: PUSH2 0x316e
00000569: JUMP
0000056a: JUMPDEST
0000056b: AND
0000056c: PUSH1 0x40
0000056e: MLOAD
0000056f: SWAP1
00000570: DUP5
00000571: PUSH32 0x40590cc12db0488520ce425059f83f8caed91bdf98de5ff829dc57c63843161b
00000592: DUP10
00000593: DUP1
00000594: LOG3
00000595: PUSH2 0x0180
00000598: DUP6
00000599: ADD
0000059a: MLOAD
0000059b: SWAP4
0000059c: DUP2
0000059d: MSTORE
0000059e: LOG2
0000059f: JUMPDEST
000005a0: ADD
000005a1: MLOAD
000005a2: PUSH1 0x01
000005a4: PUSH1 0x01
000005a6: PUSH1 0xa0
000005a8: SHL
000005a9: SUB
000005aa: PUSH2 0x05b1
000005ad: PUSH2 0x316e
000005b0: JUMP
000005b1: JUMPDEST
000005b2: AND
000005b3: SWAP1
000005b4: PUSH32 0xbd03c66ec5bd3d01fbf22bc794f68ac88b693023b438724019205a4b42aefb20
000005d5: DUP4
000005d6: DUP1
000005d7: LOG3
000005d8: DUP1
000005d9: RETURN
000005da: JUMPDEST
000005db: PUSH2 0x05e3
000005de: SWAP1
000005df: PUSH2 0x26f7
000005e2: JUMP
000005e3: JUMPDEST
000005e4: PUSH2 0x05ee
000005e7: JUMPI
000005e8: DUP2
000005e9: CODESIZE
000005ea: PUSH2 0x052f
000005ed: JUMP
000005ee: JUMPDEST
000005ef: POP
000005f0: DUP1
000005f1: REVERT
000005f2: JUMPDEST
000005f3: PUSH1 0x40
000005f5: MLOAD
000005f6: RETURNDATASIZE
000005f7: DUP5
000005f8: DUP3
000005f9: RETURNDATACOPY
000005fa: RETURNDATASIZE
000005fb: SWAP1
000005fc: REVERT
000005fd: JUMPDEST
000005fe: DUP6
000005ff: DUP1
00000600: REVERT
00000601: JUMPDEST
00000602: PUSH2 0x0160
00000605: DUP2
00000606: ADD
00000607: MLOAD
00000608: MLOAD
00000609: ISZERO
0000060a: PUSH2 0x0876
0000060d: JUMPI
0000060e: PUSH1 0x20
00000610: DUP2
00000611: ADD
00000612: MLOAD
00000613: PUSH2 0x0322
00000616: PUSH2 0x0620
00000619: PUSH2 0x02de
0000061c: PUSH2 0x316e
0000061f: JUMP
00000620: JUMPDEST
00000621: MLOAD
00000622: SWAP1
00000623: KECCAK256
00000624: DUP1
00000625: DUP4
00000626: MSTORE
00000627: PUSH1 0x6b
00000629: PUSH1 0x20
0000062b: MSTORE
0000062c: PUSH2 0x0641
0000062f: PUSH1 0x01
00000631: PUSH1 0xff
00000633: PUSH1 0x40
00000635: DUP7
00000636: KECCAK256
00000637: SLOAD
00000638: AND
00000639: PUSH2 0x0351
0000063c: DUP2
0000063d: PUSH2 0x282b
00000640: JUMP
00000641: JUMPDEST
00000642: DUP1
00000643: DUP4
00000644: MSTORE
00000645: PUSH1 0x6b
00000647: PUSH1 0x20
00000649: MSTORE
0000064a: PUSH1 0x40
0000064c: DUP4
0000064d: KECCAK256
0000064e: PUSH1 0x02
00000650: PUSH1 0xff
00000652: NOT
00000653: DUP3
00000654: SLOAD
00000655: AND
00000656: OR
00000657: SWAP1
00000658: SSTORE
00000659: PUSH1 0x01
0000065b: PUSH1 0x01
0000065d: PUSH1 0xa0
0000065f: SHL
00000660: SUB
00000661: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000682: PUSH1 0x42
00000684: PUSH1 0x40
00000686: MLOAD
00000687: PUSH2 0x068f
0000068a: DUP2
0000068b: PUSH2 0x2760
0000068e: JUMP
0000068f: JUMPDEST
00000690: DUP2
00000691: DUP2
00000692: MSTORE
00000693: PUSH32 0x7329000000000000000000000000000000000000000000000000000000000000
000006b4: PUSH1 0x60
000006b6: PUSH1 0x20
000006b8: DUP4
000006b9: ADD
000006ba: SWAP3
000006bb: PUSH32 0x7265766572744275726e416e644275726e2875696e743235362c627974657333
000006dc: DUP5
000006dd: MSTORE
000006de: PUSH32 0x322c616464726573732c616464726573732c75696e743235362c616464726573
000006ff: PUSH1 0x40
00000701: DUP3
00000702: ADD
00000703: MSTORE
00000704: ADD
00000705: MSTORE
00000706: KECCAK256
00000707: AND
00000708: SWAP2
00000709: DUP4
0000070a: MLOAD
0000070b: SWAP1
0000070c: DUP3
0000070d: PUSH1 0x80
0000070f: DUP7
00000710: ADD
00000711: MLOAD
00000712: AND
00000713: SWAP1
00000714: PUSH2 0x071b
00000717: PUSH2 0x316e
0000071a: JUMP
0000071b: JUMPDEST
0000071c: SWAP3
0000071d: PUSH1 0x40
0000071f: MLOAD
00000720: SWAP6
00000721: PUSH1 0x20
00000723: DUP8
00000724: ADD
00000725: MSTORE
00000726: PUSH1 0x24
00000728: DUP7
00000729: ADD
0000072a: MSTORE
0000072b: PUSH1 0x44
0000072d: DUP6
0000072e: ADD
0000072f: MSTORE
00000730: ADDRESS
00000731: PUSH1 0x64
00000733: DUP6
00000734: ADD
00000735: MSTORE
00000736: PUSH1 0x84
00000738: DUP5
00000739: ADD
0000073a: MSTORE
0000073b: CHAINID
0000073c: PUSH1 0xa4
0000073e: DUP5
0000073f: ADD
00000740: MSTORE
00000741: AND
00000742: PUSH1 0xc4
00000744: DUP3
00000745: ADD
00000746: MSTORE
00000747: PUSH1 0xc4
00000749: DUP2
0000074a: MSTORE
0000074b: PUSH2 0x0100
0000074e: DUP2
0000074f: ADD
00000750: DUP2
00000751: DUP2
00000752: LT
00000753: PUSH8 0xffffffffffffffff
0000075c: DUP3
0000075d: GT
0000075e: OR
0000075f: PUSH2 0x0860
00000762: JUMPI
00000763: DUP4
00000764: SWAP2
00000765: DUP2
00000766: PUSH1 0x40
00000768: MSTORE
00000769: PUSH1 0x01
0000076b: PUSH1 0x01
0000076d: PUSH1 0xa0
0000076f: SHL
00000770: SUB
00000771: PUSH1 0x67
00000773: SLOAD
00000774: AND
00000775: SWAP1
00000776: PUSH1 0x01
00000778: PUSH1 0x01
0000077a: PUSH1 0xa0
0000077c: SHL
0000077d: SUB
0000077e: PUSH2 0x0120
00000781: DUP7
00000782: ADD
00000783: MLOAD
00000784: AND
00000785: SWAP2
00000786: PUSH1 0x01
00000788: PUSH1 0x01
0000078a: PUSH1 0xa0
0000078c: SHL
0000078d: SUB
0000078e: PUSH1 0x60
00000790: DUP8
00000791: ADD
00000792: MLOAD
00000793: AND
00000794: SWAP3
00000795: PUSH1 0xa0
00000797: DUP8
00000798: ADD
00000799: MLOAD
0000079a: DUP3
0000079b: EXTCODESIZE
0000079c: ISZERO
0000079d: PUSH2 0x085c
000007a0: JUMPI
000007a1: PUSH1 0xff
000007a3: NOT
000007a4: DUP7
000007a5: SWAP5
000007a6: PUSH2 0x07c4
000007a9: DUP10
000007aa: SWAP8
000007ab: SWAP4
000007ac: DUP9
000007ad: SWAP5
000007ae: DUP9
000007af: SWAP7
000007b0: PUSH4 0x3675e4e1
000007b5: PUSH1 0xe1
000007b7: SHL
000007b8: DUP9
000007b9: MSTORE
000007ba: DUP5
000007bb: PUSH2 0x0104
000007be: DUP2
000007bf: ADD
000007c0: PUSH2 0x3027
000007c3: JUMP
000007c4: JUMPDEST
000007c5: SUB
000007c6: ADD
000007c7: SWAP3
000007c8: GAS
000007c9: CALL
000007ca: DUP1
000007cb: ISZERO
000007cc: PUSH2 0x05f2
000007cf: JUMPI
000007d0: PUSH2 0x0848
000007d3: JUMPI
000007d4: JUMPDEST
000007d5: POP
000007d6: POP
000007d7: DUP1
000007d8: PUSH1 0x20
000007da: DUP1
000007db: SWAP3
000007dc: ADD
000007dd: MLOAD
000007de: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5
000007ff: DUP4
00000800: PUSH1 0x01
00000802: PUSH1 0x01
00000804: PUSH1 0xa0
00000806: SHL
00000807: SUB
00000808: PUSH2 0x080f
0000080b: PUSH2 0x316e
0000080e: JUMP
0000080f: JUMPDEST
00000810: AND
00000811: PUSH1 0x40
00000813: MLOAD
00000814: SWAP1
00000815: DUP5
00000816: PUSH32 0x40590cc12db0488520ce425059f83f8caed91bdf98de5ff829dc57c63843161b
00000837: DUP10
00000838: DUP1
00000839: LOG3
0000083a: PUSH2 0x0180
0000083d: DUP6
0000083e: ADD
0000083f: MLOAD
00000840: SWAP4
00000841: DUP2
00000842: MSTORE
00000843: LOG2
00000844: PUSH2 0x059f
00000847: JUMP
00000848: JUMPDEST
00000849: PUSH2 0x0851
0000084c: SWAP1
0000084d: PUSH2 0x26f7
00000850: JUMP
00000851: JUMPDEST
00000852: PUSH2 0x05ee
00000855: JUMPI
00000856: DUP2
00000857: CODESIZE
00000858: PUSH2 0x07d4
0000085b: JUMP
0000085c: JUMPDEST
0000085d: DUP7
0000085e: DUP1
0000085f: REVERT
00000860: JUMPDEST
00000861: PUSH4 0x4e487b71
00000866: PUSH1 0xe0
00000868: SHL
00000869: PUSH1 0x00
0000086b: MSTORE
0000086c: PUSH1 0x41
0000086e: PUSH1 0x04
00000870: MSTORE
00000871: PUSH1 0x24
00000873: PUSH1 0x00
00000875: REVERT
00000876: JUMPDEST
00000877: DUP2
00000878: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000899: PUSH1 0x58
0000089b: PUSH1 0x40
0000089d: MLOAD
0000089e: PUSH2 0x08a6
000008a1: DUP2
000008a2: PUSH2 0x2760
000008a5: JUMP
000008a6: JUMPDEST
000008a7: DUP2
000008a8: DUP2
000008a9: MSTORE
000008aa: PUSH32 0x75696e743235362c616464726573732c62797465733332290000000000000000
000008cb: PUSH1 0x60
000008cd: PUSH1 0x20
000008cf: DUP4
000008d0: ADD
000008d1: SWAP3
000008d2: PUSH32 0x72657665727453796e74686573697a6552657175657374427942726964676528
000008f3: DUP5
000008f4: MSTORE
000008f5: PUSH32 0x75696e743235362c627974657333322c616464726573732c616464726573732c
00000916: PUSH1 0x40
00000918: DUP3
00000919: ADD
0000091a: MSTORE
0000091b: ADD
0000091c: MSTORE
0000091d: KECCAK256
0000091e: AND
0000091f: DUP3
00000920: MLOAD
00000921: SWAP1
00000922: PUSH1 0x20
00000924: DUP5
00000925: ADD
00000926: MLOAD
00000927: SWAP2
00000928: PUSH1 0x01
0000092a: PUSH1 0x01
0000092c: PUSH1 0xa0
0000092e: SHL
0000092f: SUB
00000930: DUP1
00000931: SWAP4
00000932: DUP2
00000933: PUSH1 0x40
00000935: DUP9
00000936: ADD
00000937: MLOAD
00000938: AND
00000939: DUP3
0000093a: PUSH1 0x80
0000093c: DUP10
0000093d: ADD
0000093e: MLOAD
0000093f: AND
00000940: SWAP1
00000941: PUSH2 0x0948
00000944: PUSH2 0x316e
00000947: JUMP
00000948: JUMPDEST
00000949: SWAP3
0000094a: PUSH2 0x0180
0000094d: DUP11
0000094e: ADD
0000094f: MLOAD
00000950: SWAP6
00000951: PUSH1 0x40
00000953: MLOAD
00000954: SWAP8
00000955: PUSH1 0x20
00000957: DUP10
00000958: ADD
00000959: MSTORE
0000095a: PUSH1 0x24
0000095c: DUP9
0000095d: ADD
0000095e: MSTORE
0000095f: PUSH1 0x44
00000961: DUP8
00000962: ADD
00000963: MSTORE
00000964: PUSH1 0x64
00000966: DUP7
00000967: ADD
00000968: MSTORE
00000969: PUSH1 0x84
0000096b: DUP6
0000096c: ADD
0000096d: MSTORE
0000096e: CHAINID
0000096f: PUSH1 0xa4
00000971: DUP6
00000972: ADD
00000973: MSTORE
00000974: AND
00000975: PUSH1 0xc4
00000977: DUP4
00000978: ADD
00000979: MSTORE
0000097a: PUSH1 0xe4
0000097c: DUP3
0000097d: ADD
0000097e: MSTORE
0000097f: PUSH1 0xe4
00000981: DUP2
00000982: MSTORE
00000983: PUSH2 0x098b
00000986: DUP2
00000987: PUSH2 0x277c
0000098a: JUMP
0000098b: JUMPDEST
0000098c: DUP2
0000098d: PUSH1 0x67
0000098f: SLOAD
00000990: AND
00000991: DUP3
00000992: PUSH2 0x0120
00000995: DUP7
00000996: ADD
00000997: MLOAD
00000998: AND
00000999: SWAP3
0000099a: PUSH1 0x60
0000099c: DUP7
0000099d: ADD
0000099e: MLOAD
0000099f: AND
000009a0: SWAP1
000009a1: PUSH1 0xa0
000009a3: DUP7
000009a4: ADD
000009a5: MLOAD
000009a6: SWAP4
000009a7: DUP2
000009a8: EXTCODESIZE
000009a9: ISZERO
000009aa: PUSH2 0x05fd
000009ad: JUMPI
000009ae: DUP6
000009af: DUP1
000009b0: SWAP5
000009b1: PUSH2 0x09d0
000009b4: PUSH1 0x40
000009b6: MLOAD
000009b7: SWAP8
000009b8: DUP9
000009b9: SWAP7
000009ba: DUP8
000009bb: SWAP6
000009bc: DUP7
000009bd: SWAP5
000009be: PUSH4 0x3675e4e1
000009c3: PUSH1 0xe1
000009c5: SHL
000009c6: DUP7
000009c7: MSTORE
000009c8: PUSH1 0x04
000009ca: DUP7
000009cb: ADD
000009cc: PUSH2 0x3027
000009cf: JUMP
000009d0: JUMPDEST
000009d1: SUB
000009d2: SWAP3
000009d3: GAS
000009d4: CALL
000009d5: DUP1
000009d6: ISZERO
000009d7: PUSH2 0x05f2
000009da: JUMPI
000009db: PUSH2 0x09e9
000009de: JUMPI
000009df: JUMPDEST
000009e0: POP
000009e1: POP
000009e2: PUSH1 0x20
000009e4: SWAP1
000009e5: PUSH2 0x059f
000009e8: JUMP
000009e9: JUMPDEST
000009ea: PUSH2 0x09f2
000009ed: SWAP1
000009ee: PUSH2 0x26f7
000009f1: JUMP
000009f2: JUMPDEST
000009f3: PUSH2 0x05ee
000009f6: JUMPI
000009f7: DUP2
000009f8: CODESIZE
000009f9: PUSH2 0x09df
000009fc: JUMP
000009fd: JUMPDEST
000009fe: DUP3
000009ff: DUP1
00000a00: REVERT
00000a01: JUMPDEST
00000a02: DUP1
00000a03: REVERT
00000a04: JUMPDEST
00000a05: POP
00000a06: CALLVALUE
00000a07: PUSH2 0x0a01
00000a0a: JUMPI
00000a0b: PUSH1 0x20
00000a0d: PUSH1 0x03
00000a0f: NOT
00000a10: CALLDATASIZE
00000a11: ADD
00000a12: SLT
00000a13: PUSH2 0x0a01
00000a16: JUMPI
00000a17: PUSH1 0xff
00000a19: PUSH1 0x40
00000a1b: PUSH1 0x20
00000a1d: SWAP3
00000a1e: PUSH1 0x04
00000a20: CALLDATALOAD
00000a21: DUP2
00000a22: MSTORE
00000a23: PUSH1 0x6b
00000a25: DUP5
00000a26: MSTORE
00000a27: KECCAK256
00000a28: SLOAD
00000a29: AND
00000a2a: PUSH1 0x40
00000a2c: MLOAD
00000a2d: SWAP1
00000a2e: PUSH2 0x0a36
00000a31: DUP2
00000a32: PUSH2 0x282b
00000a35: JUMP
00000a36: JUMPDEST
00000a37: DUP2
00000a38: MSTORE
00000a39: RETURN
00000a3a: JUMPDEST
00000a3b: POP
00000a3c: CALLVALUE
00000a3d: PUSH2 0x0a01
00000a40: JUMPI
00000a41: PUSH1 0x20
00000a43: PUSH1 0x03
00000a45: NOT
00000a46: CALLDATASIZE
00000a47: ADD
00000a48: SLT
00000a49: PUSH2 0x0a01
00000a4c: JUMPI
00000a4d: PUSH2 0x0a54
00000a50: PUSH2 0x2635
00000a53: JUMP
00000a54: JUMPDEST
00000a55: PUSH1 0x01
00000a57: PUSH1 0x01
00000a59: PUSH1 0xa0
00000a5b: SHL
00000a5c: SUB
00000a5d: PUSH2 0x0a74
00000a60: DUP2
00000a61: PUSH1 0x33
00000a63: SLOAD
00000a64: AND
00000a65: DUP3
00000a66: PUSH2 0x0a6d
00000a69: PUSH2 0x316e
00000a6c: JUMP
00000a6d: JUMPDEST
00000a6e: AND
00000a6f: EQ
00000a70: PUSH2 0x28ae
00000a73: JUMP
00000a74: JUMPDEST
00000a75: DUP2
00000a76: AND
00000a77: ISZERO
00000a78: PUSH2 0x0a87
00000a7b: JUMPI
00000a7c: PUSH2 0x0a84
00000a7f: SWAP1
00000a80: PUSH2 0x28f9
00000a83: JUMP
00000a84: JUMPDEST
00000a85: DUP1
00000a86: RETURN
00000a87: JUMPDEST
00000a88: PUSH1 0x84
00000a8a: PUSH1 0x40
00000a8c: MLOAD
00000a8d: PUSH3 0x461bcd
00000a91: PUSH1 0xe5
00000a93: SHL
00000a94: DUP2
00000a95: MSTORE
00000a96: PUSH1 0x20
00000a98: PUSH1 0x04
00000a9a: DUP3
00000a9b: ADD
00000a9c: MSTORE
00000a9d: PUSH1 0x26
00000a9f: PUSH1 0x24
00000aa1: DUP3
00000aa2: ADD
00000aa3: MSTORE
00000aa4: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
00000ac5: PUSH1 0x44
00000ac7: DUP3
00000ac8: ADD
00000ac9: MSTORE
00000aca: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000
00000aeb: PUSH1 0x64
00000aed: DUP3
00000aee: ADD
00000aef: MSTORE
00000af0: REVERT
00000af1: JUMPDEST
00000af2: POP
00000af3: CALLVALUE
00000af4: PUSH2 0x0a01
00000af7: JUMPI
00000af8: PUSH1 0x20
00000afa: PUSH1 0x03
00000afc: NOT
00000afd: CALLDATASIZE
00000afe: ADD
00000aff: SLT
00000b00: PUSH2 0x0a01
00000b03: JUMPI
00000b04: PUSH2 0x0b0b
00000b07: PUSH2 0x2635
00000b0a: JUMP
00000b0b: JUMPDEST
00000b0c: PUSH1 0x01
00000b0e: PUSH1 0x01
00000b10: PUSH1 0xa0
00000b12: SHL
00000b13: SUB
00000b14: SWAP1
00000b15: PUSH2 0x0b25
00000b18: DUP3
00000b19: PUSH1 0x33
00000b1b: SLOAD
00000b1c: AND
00000b1d: DUP4
00000b1e: PUSH2 0x0a6d
00000b21: PUSH2 0x316e
00000b24: JUMP
00000b25: JUMPDEST
00000b26: AND
00000b27: DUP1
00000b28: ISZERO
00000b29: PUSH2 0x0b79
00000b2c: JUMPI
00000b2d: PUSH1 0x20
00000b2f: DUP2
00000b30: PUSH32 0xd5c54ab1d37bfef4dd2253d9d73c292e46f5bd8a67ca5920aab4c2e1993178e7
00000b51: SWAP3
00000b52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b67: NOT
00000b68: PUSH1 0x6f
00000b6a: SLOAD
00000b6b: AND
00000b6c: OR
00000b6d: PUSH1 0x6f
00000b6f: SSTORE
00000b70: PUSH1 0x40
00000b72: MLOAD
00000b73: SWAP1
00000b74: DUP2
00000b75: MSTORE
00000b76: LOG1
00000b77: DUP1
00000b78: RETURN
00000b79: JUMPDEST
00000b7a: PUSH1 0x84
00000b7c: PUSH1 0x40
00000b7e: MLOAD
00000b7f: PUSH3 0x461bcd
00000b83: PUSH1 0xe5
00000b85: SHL
00000b86: DUP2
00000b87: MSTORE
00000b88: PUSH1 0x20
00000b8a: PUSH1 0x04
00000b8c: DUP3
00000b8d: ADD
00000b8e: MSTORE
00000b8f: PUSH1 0x27
00000b91: PUSH1 0x24
00000b93: DUP3
00000b94: ADD
00000b95: MSTORE
00000b96: PUSH32 0x53796d623a206d657461526f757465722063616e6e6f74206265207a65726f20
00000bb7: PUSH1 0x44
00000bb9: DUP3
00000bba: ADD
00000bbb: MSTORE
00000bbc: PUSH32 0x6164647265737300000000000000000000000000000000000000000000000000
00000bdd: PUSH1 0x64
00000bdf: DUP3
00000be0: ADD
00000be1: MSTORE
00000be2: REVERT
00000be3: JUMPDEST
00000be4: POP
00000be5: CALLVALUE
00000be6: PUSH2 0x0a01
00000be9: JUMPI
00000bea: DUP1
00000beb: PUSH1 0x03
00000bed: NOT
00000bee: CALLDATASIZE
00000bef: ADD
00000bf0: SLT
00000bf1: PUSH2 0x0a01
00000bf4: JUMPI
00000bf5: PUSH1 0x20
00000bf7: PUSH1 0x01
00000bf9: PUSH1 0x01
00000bfb: PUSH1 0xa0
00000bfd: SHL
00000bfe: SUB
00000bff: PUSH1 0x67
00000c01: SLOAD
00000c02: AND
00000c03: PUSH1 0x40
00000c05: MLOAD
00000c06: SWAP1
00000c07: DUP2
00000c08: MSTORE
00000c09: RETURN
00000c0a: JUMPDEST
00000c0b: POP
00000c0c: CALLVALUE
00000c0d: PUSH2 0x0a01
00000c10: JUMPI
00000c11: DUP1
00000c12: PUSH1 0x03
00000c14: NOT
00000c15: CALLDATASIZE
00000c16: ADD
00000c17: SLT
00000c18: PUSH2 0x0a01
00000c1b: JUMPI
00000c1c: PUSH1 0x20
00000c1e: PUSH1 0x01
00000c20: PUSH1 0x01
00000c22: PUSH1 0xa0
00000c24: SHL
00000c25: SUB
00000c26: PUSH1 0x6f
00000c28: SLOAD
00000c29: AND
00000c2a: PUSH1 0x40
00000c2c: MLOAD
00000c2d: SWAP1
00000c2e: DUP2
00000c2f: MSTORE
00000c30: RETURN
00000c31: JUMPDEST
00000c32: POP
00000c33: CALLVALUE
00000c34: PUSH2 0x0a01
00000c37: JUMPI
00000c38: PUSH1 0x03
00000c3a: NOT
00000c3b: SWAP1
00000c3c: PUSH1 0x20
00000c3e: DUP3
00000c3f: CALLDATASIZE
00000c40: ADD
00000c41: SLT
00000c42: PUSH2 0x0a01
00000c45: JUMPI
00000c46: PUSH8 0xffffffffffffffff
00000c4f: PUSH1 0x04
00000c51: CALLDATALOAD
00000c52: GT
00000c53: PUSH2 0x0a01
00000c56: JUMPI
00000c57: PUSH2 0x0200
00000c5a: DUP1
00000c5b: SWAP3
00000c5c: PUSH1 0x04
00000c5e: CALLDATALOAD
00000c5f: CALLDATASIZE
00000c60: SUB
00000c61: ADD
00000c62: SLT
00000c63: PUSH2 0x0a01
00000c66: JUMPI
00000c67: PUSH1 0x40
00000c69: MLOAD
00000c6a: SWAP2
00000c6b: DUP3
00000c6c: ADD
00000c6d: DUP3
00000c6e: DUP2
00000c6f: LT
00000c70: PUSH8 0xffffffffffffffff
00000c79: DUP3
00000c7a: GT
00000c7b: OR
00000c7c: PUSH2 0x0860
00000c7f: JUMPI
00000c80: PUSH1 0x40
00000c82: MSTORE
00000c83: PUSH1 0x04
00000c85: CALLDATALOAD
00000c86: PUSH1 0x04
00000c88: ADD
00000c89: CALLDATALOAD
00000c8a: DUP3
00000c8b: MSTORE
00000c8c: PUSH1 0x24
00000c8e: PUSH1 0x04
00000c90: CALLDATALOAD
00000c91: ADD
00000c92: CALLDATALOAD
00000c93: PUSH1 0x20
00000c95: DUP4
00000c96: ADD
00000c97: MSTORE
00000c98: PUSH2 0x0ca5
00000c9b: PUSH1 0x44
00000c9d: PUSH1 0x04
00000c9f: CALLDATALOAD
00000ca0: ADD
00000ca1: PUSH2 0x26a3
00000ca4: JUMP
00000ca5: JUMPDEST
00000ca6: PUSH1 0x40
00000ca8: DUP4
00000ca9: ADD
00000caa: MSTORE
00000cab: PUSH2 0x0cb8
00000cae: PUSH1 0x64
00000cb0: PUSH1 0x04
00000cb2: CALLDATALOAD
00000cb3: ADD
00000cb4: PUSH2 0x26a3
00000cb7: JUMP
00000cb8: JUMPDEST
00000cb9: PUSH1 0x60
00000cbb: DUP4
00000cbc: ADD
00000cbd: MSTORE
00000cbe: PUSH2 0x0ccb
00000cc1: PUSH1 0x84
00000cc3: PUSH1 0x04
00000cc5: CALLDATALOAD
00000cc6: ADD
00000cc7: PUSH2 0x26a3
00000cca: JUMP
00000ccb: JUMPDEST
00000ccc: PUSH1 0x80
00000cce: DUP4
00000ccf: ADD
00000cd0: MSTORE
00000cd1: PUSH2 0x0cde
00000cd4: PUSH1 0xa4
00000cd6: PUSH1 0x04
00000cd8: CALLDATALOAD
00000cd9: ADD
00000cda: PUSH2 0x26a3
00000cdd: JUMP
00000cde: JUMPDEST
00000cdf: PUSH1 0xa0
00000ce1: DUP4
00000ce2: ADD
00000ce3: MSTORE
00000ce4: PUSH2 0x0cf1
00000ce7: PUSH1 0xc4
00000ce9: PUSH1 0x04
00000ceb: CALLDATALOAD
00000cec: ADD
00000ced: PUSH2 0x26a3
00000cf0: JUMP
00000cf1: JUMPDEST
00000cf2: PUSH1 0xc0
00000cf4: DUP4
00000cf5: ADD
00000cf6: MSTORE
00000cf7: PUSH1 0xe4
00000cf9: PUSH1 0x04
00000cfb: CALLDATALOAD
00000cfc: ADD
00000cfd: CALLDATALOAD
00000cfe: PUSH1 0xe0
00000d00: DUP4
00000d01: ADD
00000d02: MSTORE
00000d03: PUSH8 0xffffffffffffffff
00000d0c: PUSH2 0x0104
00000d0f: PUSH1 0x04
00000d11: CALLDATALOAD
00000d12: ADD
00000d13: CALLDATALOAD
00000d14: GT
00000d15: PUSH2 0x0a01
00000d18: JUMPI
00000d19: PUSH2 0x0d2d
00000d1c: CALLDATASIZE
00000d1d: PUSH1 0x04
00000d1f: DUP1
00000d20: CALLDATALOAD
00000d21: PUSH2 0x0104
00000d24: DUP2
00000d25: ADD
00000d26: CALLDATALOAD
00000d27: ADD
00000d28: ADD
00000d29: PUSH2 0x27bc
00000d2c: JUMP
00000d2d: JUMPDEST
00000d2e: PUSH2 0x0100
00000d31: DUP4
00000d32: ADD
00000d33: MSTORE
00000d34: PUSH2 0x0d42
00000d37: PUSH2 0x0124
00000d3a: PUSH1 0x04
00000d3c: CALLDATALOAD
00000d3d: ADD
00000d3e: PUSH2 0x26a3
00000d41: JUMP
00000d42: JUMPDEST
00000d43: PUSH2 0x0120
00000d46: DUP4
00000d47: ADD
00000d48: MSTORE
00000d49: PUSH8 0xffffffffffffffff
00000d52: PUSH2 0x0144
00000d55: PUSH1 0x04
00000d57: CALLDATALOAD
00000d58: ADD
00000d59: CALLDATALOAD
00000d5a: GT
00000d5b: PUSH2 0x0a01
00000d5e: JUMPI
00000d5f: PUSH2 0x0d73
00000d62: CALLDATASIZE
00000d63: PUSH1 0x04
00000d65: DUP1
00000d66: CALLDATALOAD
00000d67: PUSH2 0x0144
00000d6a: DUP2
00000d6b: ADD
00000d6c: CALLDATALOAD
00000d6d: ADD
00000d6e: ADD
00000d6f: PUSH2 0x2867
00000d72: JUMP
00000d73: JUMPDEST
00000d74: PUSH2 0x0140
00000d77: DUP4
00000d78: ADD
00000d79: MSTORE
00000d7a: PUSH2 0x0d88
00000d7d: PUSH2 0x0164
00000d80: PUSH1 0x04
00000d82: CALLDATALOAD
00000d83: ADD
00000d84: PUSH2 0x26a3
00000d87: JUMP
00000d88: JUMPDEST
00000d89: PUSH2 0x0160
00000d8c: DUP4
00000d8d: ADD
00000d8e: MSTORE
00000d8f: PUSH8 0xffffffffffffffff
00000d98: PUSH2 0x0184
00000d9b: PUSH1 0x04
00000d9d: CALLDATALOAD
00000d9e: ADD
00000d9f: CALLDATALOAD
00000da0: GT
00000da1: PUSH2 0x0a01
00000da4: JUMPI
00000da5: PUSH2 0x0db9
00000da8: CALLDATASIZE
00000da9: PUSH1 0x04
00000dab: DUP1
00000dac: CALLDATALOAD
00000dad: PUSH2 0x0184
00000db0: DUP2
00000db1: ADD
00000db2: CALLDATALOAD
00000db3: ADD
00000db4: ADD
00000db5: PUSH2 0x2867
00000db8: JUMP
00000db9: JUMPDEST
00000dba: PUSH2 0x0180
00000dbd: DUP4
00000dbe: ADD
00000dbf: MSTORE
00000dc0: PUSH2 0x01a4
00000dc3: PUSH1 0x04
00000dc5: CALLDATALOAD
00000dc6: ADD
00000dc7: CALLDATALOAD
00000dc8: PUSH2 0x01a0
00000dcb: DUP4
00000dcc: ADD
00000dcd: MSTORE
00000dce: PUSH2 0x0ddc
00000dd1: PUSH2 0x01c4
00000dd4: PUSH1 0x04
00000dd6: CALLDATALOAD
00000dd7: ADD
00000dd8: PUSH2 0x26a3
00000ddb: JUMP
00000ddc: JUMPDEST
00000ddd: PUSH2 0x01c0
00000de0: DUP4
00000de1: ADD
00000de2: MSTORE
00000de3: PUSH2 0x01e4
00000de6: PUSH1 0x04
00000de8: CALLDATALOAD
00000de9: ADD
00000dea: CALLDATALOAD
00000deb: PUSH2 0x01e0
00000dee: DUP4
00000def: ADD
00000df0: MSTORE
00000df1: PUSH2 0x0dff
00000df4: PUSH1 0xff
00000df6: PUSH1 0x69
00000df8: SLOAD
00000df9: AND
00000dfa: ISZERO
00000dfb: PUSH2 0x294e
00000dfe: JUMP
00000dff: JUMPDEST
00000e00: PUSH1 0x01
00000e02: PUSH1 0x01
00000e04: PUSH1 0xa0
00000e06: SHL
00000e07: SUB
00000e08: PUSH1 0x40
00000e0a: DUP4
00000e0b: ADD
00000e0c: MLOAD
00000e0d: AND
00000e0e: DUP2
00000e0f: MSTORE
00000e10: PUSH1 0x6e
00000e12: PUSH1 0x20
00000e14: MSTORE
00000e15: PUSH2 0x0e24
00000e18: PUSH1 0xff
00000e1a: PUSH1 0x40
00000e1c: DUP4
00000e1d: KECCAK256
00000e1e: SLOAD
00000e1f: AND
00000e20: PUSH2 0x2999
00000e23: JUMP
00000e24: JUMPDEST
00000e25: PUSH2 0x0e4d
00000e28: PUSH1 0x20
00000e2a: DUP4
00000e2b: ADD
00000e2c: MLOAD
00000e2d: PUSH1 0x01
00000e2f: PUSH1 0x01
00000e31: PUSH1 0xa0
00000e33: SHL
00000e34: SUB
00000e35: PUSH1 0x40
00000e37: DUP6
00000e38: ADD
00000e39: MLOAD
00000e3a: AND
00000e3b: DUP4
00000e3c: MSTORE
00000e3d: PUSH1 0x6d
00000e3f: PUSH1 0x20
00000e41: MSTORE
00000e42: PUSH1 0x40
00000e44: DUP4
00000e45: KECCAK256
00000e46: SLOAD
00000e47: GT
00000e48: ISZERO
00000e49: PUSH2 0x29e4
00000e4c: JUMP
00000e4d: JUMPDEST
00000e4e: PUSH2 0x0e74
00000e51: PUSH1 0x01
00000e53: PUSH1 0x01
00000e55: PUSH1 0xa0
00000e57: SHL
00000e58: SUB
00000e59: PUSH1 0x40
00000e5b: DUP5
00000e5c: ADD
00000e5d: MLOAD
00000e5e: AND
00000e5f: PUSH2 0x0e66
00000e62: PUSH2 0x316e
00000e65: JUMP
00000e66: JUMPDEST
00000e67: SWAP1
00000e68: PUSH1 0x20
00000e6a: DUP6
00000e6b: ADD
00000e6c: MLOAD
00000e6d: SWAP2
00000e6e: ADDRESS
00000e6f: SWAP2
00000e70: PUSH2 0x2a77
00000e73: JUMP
00000e74: JUMPDEST
00000e75: PUSH1 0x01
00000e77: PUSH1 0x01
00000e79: PUSH1 0xa0
00000e7b: SHL
00000e7c: SUB
00000e7d: PUSH1 0x40
00000e7f: DUP4
00000e80: ADD
00000e81: MLOAD
00000e82: AND
00000e83: DUP2
00000e84: MSTORE
00000e85: PUSH1 0x6c
00000e87: PUSH1 0x20
00000e89: MSTORE
00000e8a: PUSH2 0x0e9c
00000e8d: PUSH1 0x40
00000e8f: DUP3
00000e90: KECCAK256
00000e91: SLOAD
00000e92: PUSH1 0x20
00000e94: DUP5
00000e95: ADD
00000e96: MLOAD
00000e97: SWAP1
00000e98: PUSH2 0x30f0
00000e9b: JUMP
00000e9c: JUMPDEST
00000e9d: PUSH1 0x01
00000e9f: PUSH1 0x01
00000ea1: PUSH1 0xa0
00000ea3: SHL
00000ea4: SUB
00000ea5: PUSH1 0x40
00000ea7: DUP5
00000ea8: ADD
00000ea9: MLOAD
00000eaa: AND
00000eab: DUP3
00000eac: MSTORE
00000ead: PUSH1 0x6c
00000eaf: PUSH1 0x20
00000eb1: MSTORE
00000eb2: PUSH1 0x40
00000eb4: DUP3
00000eb5: KECCAK256
00000eb6: SSTORE
00000eb7: PUSH1 0x01
00000eb9: PUSH1 0x01
00000ebb: PUSH1 0xa0
00000ebd: SHL
00000ebe: SUB
00000ebf: PUSH2 0x01c0
00000ec2: DUP4
00000ec3: ADD
00000ec4: MLOAD
00000ec5: AND
00000ec6: ISZERO
00000ec7: PUSH2 0x1392
00000eca: JUMPI
00000ecb: JUMPDEST
00000ecc: PUSH1 0x68
00000ece: SLOAD
00000ecf: PUSH1 0x40
00000ed1: MLOAD
00000ed2: ADDRESS
00000ed3: PUSH1 0x60
00000ed5: SHL
00000ed6: PUSH12 0xffffffffffffffffffffffff
00000ee3: NOT
00000ee4: AND
00000ee5: PUSH1 0x20
00000ee7: DUP3
00000ee8: ADD
00000ee9: MSTORE
00000eea: PUSH1 0x34
00000eec: DUP2
00000eed: ADD
00000eee: SWAP2
00000eef: SWAP1
00000ef0: SWAP2
00000ef1: MSTORE
00000ef2: CHAINID
00000ef3: PUSH1 0x54
00000ef5: DUP3
00000ef6: ADD
00000ef7: MSTORE
00000ef8: PUSH2 0x0f04
00000efb: DUP2
00000efc: PUSH1 0x74
00000efe: DUP2
00000eff: ADD
00000f00: PUSH2 0x0322
00000f03: JUMP
00000f04: JUMPDEST
00000f05: PUSH1 0x20
00000f07: DUP2
00000f08: MLOAD
00000f09: SWAP2
00000f0a: ADD
00000f0b: KECCAK256
00000f0c: SWAP1
00000f0d: PUSH1 0x01
00000f0f: PUSH1 0x01
00000f11: PUSH1 0xa0
00000f13: SHL
00000f14: SUB
00000f15: PUSH1 0x80
00000f17: DUP5
00000f18: ADD
00000f19: MLOAD
00000f1a: AND
00000f1b: PUSH1 0x01
00000f1d: PUSH1 0x01
00000f1f: PUSH1 0xa0
00000f21: SHL
00000f22: SUB
00000f23: PUSH2 0x01c0
00000f26: DUP6
00000f27: ADD
00000f28: MLOAD
00000f29: AND
00000f2a: PUSH2 0x0f75
00000f2d: PUSH1 0xe0
00000f2f: DUP7
00000f30: ADD
00000f31: MLOAD
00000f32: SWAP2
00000f33: PUSH2 0x0322
00000f36: PUSH1 0x40
00000f38: MLOAD
00000f39: SWAP4
00000f3a: DUP5
00000f3b: SWAP3
00000f3c: PUSH1 0x20
00000f3e: DUP5
00000f3f: ADD
00000f40: SWAP7
00000f41: DUP10
00000f42: DUP9
00000f43: SWAP3
00000f44: PUSH1 0x68
00000f46: SWAP5
00000f47: SWAP3
00000f48: SWAP2
00000f49: DUP5
00000f4a: MSTORE
00000f4b: PUSH12 0xffffffffffffffffffffffff
00000f58: NOT
00000f59: DUP1
00000f5a: SWAP3
00000f5b: PUSH1 0x60
00000f5d: SHL
00000f5e: AND
00000f5f: PUSH1 0x20
00000f61: DUP6
00000f62: ADD
00000f63: MSTORE
00000f64: PUSH1 0x60
00000f66: SHL
00000f67: AND
00000f68: PUSH1 0x34
00000f6a: DUP4
00000f6b: ADD
00000f6c: MSTORE
00000f6d: PUSH1 0x48
00000f6f: DUP3
00000f70: ADD
00000f71: MSTORE
00000f72: ADD
00000f73: SWAP1
00000f74: JUMP
00000f75: JUMPDEST
00000f76: MLOAD
00000f77: SWAP1
00000f78: KECCAK256
00000f79: PUSH2 0x122d
00000f7c: DUP5
00000f7d: MLOAD
00000f7e: SWAP2
00000f7f: PUSH1 0x20
00000f81: DUP7
00000f82: ADD
00000f83: MLOAD
00000f84: DUP7
00000f85: PUSH1 0x01
00000f87: PUSH1 0x01
00000f89: PUSH1 0xa0
00000f8b: SHL
00000f8c: SUB
00000f8d: PUSH1 0x40
00000f8f: DUP3
00000f90: ADD
00000f91: MLOAD
00000f92: AND
00000f93: PUSH1 0x01
00000f95: PUSH1 0x01
00000f97: PUSH1 0xa0
00000f99: SHL
00000f9a: SUB
00000f9b: PUSH1 0x60
00000f9d: DUP4
00000f9e: ADD
00000f9f: MLOAD
00000fa0: AND
00000fa1: PUSH2 0x0100
00000fa4: DUP4
00000fa5: ADD
00000fa6: MLOAD
00000fa7: PUSH1 0x01
00000fa9: PUSH1 0x01
00000fab: PUSH1 0xa0
00000fad: SHL
00000fae: SUB
00000faf: PUSH2 0x0120
00000fb2: DUP6
00000fb3: ADD
00000fb4: MLOAD
00000fb5: AND
00000fb6: SWAP1
00000fb7: PUSH2 0x0140
00000fba: DUP6
00000fbb: ADD
00000fbc: MLOAD
00000fbd: SWAP3
00000fbe: PUSH1 0x01
00000fc0: PUSH1 0x01
00000fc2: PUSH1 0xa0
00000fc4: SHL
00000fc5: SUB
00000fc6: PUSH2 0x0160
00000fc9: DUP8
00000fca: ADD
00000fcb: MLOAD
00000fcc: AND
00000fcd: SWAP5
00000fce: PUSH2 0x01a0
00000fd1: PUSH2 0x0180
00000fd4: DUP9
00000fd5: ADD
00000fd6: MLOAD
00000fd7: SWAP8
00000fd8: ADD
00000fd9: MLOAD
00000fda: SWAP8
00000fdb: PUSH1 0x40
00000fdd: MLOAD
00000fde: SWAP12
00000fdf: PUSH2 0x0fe7
00000fe2: DUP14
00000fe3: PUSH2 0x2727
00000fe6: JUMP
00000fe7: JUMPDEST
00000fe8: DUP13
00000fe9: MSTORE
00000fea: PUSH1 0x20
00000fec: DUP13
00000fed: ADD
00000fee: MSTORE
00000fef: DUP13
00000ff0: PUSH1 0x40
00000ff2: DUP13
00000ff3: ADD
00000ff4: MSTORE
00000ff5: DUP9
00000ff6: PUSH1 0x60
00000ff8: DUP13
00000ff9: ADD
00000ffa: MSTORE
00000ffb: PUSH1 0x80
00000ffd: DUP12
00000ffe: ADD
00000fff: MSTORE
00001000: CHAINID
00001001: PUSH1 0xa0
00001003: DUP12
00001004: ADD
00001005: MSTORE
00001006: PUSH1 0xc0
00001008: DUP11
00001009: ADD
0000100a: MSTORE
0000100b: PUSH1 0xe0
0000100d: DUP10
0000100e: ADD
0000100f: MSTORE
00001010: PUSH2 0x0100
00001013: DUP9
00001014: ADD
00001015: MSTORE
00001016: PUSH2 0x0120
00001019: DUP8
0000101a: ADD
0000101b: MSTORE
0000101c: PUSH2 0x0140
0000101f: DUP7
00001020: ADD
00001021: MSTORE
00001022: PUSH2 0x0160
00001025: DUP6
00001026: ADD
00001027: MSTORE
00001028: PUSH2 0x0180
0000102b: DUP5
0000102c: ADD
0000102d: MSTORE
0000102e: PUSH2 0x116e
00001031: PUSH1 0x40
00001033: MLOAD
00001034: DUP1
00001035: SWAP5
00001036: PUSH32 0xc29a91bc00000000000000000000000000000000000000000000000000000000
00001057: PUSH1 0x20
00001059: DUP4
0000105a: ADD
0000105b: MSTORE
0000105c: PUSH1 0x20
0000105e: PUSH1 0x24
00001060: DUP4
00001061: ADD
00001062: MSTORE
00001063: DUP1
00001064: MLOAD
00001065: PUSH1 0x44
00001067: DUP4
00001068: ADD
00001069: MSTORE
0000106a: PUSH1 0x20
0000106c: DUP2
0000106d: ADD
0000106e: MLOAD
0000106f: PUSH1 0x64
00001071: DUP4
00001072: ADD
00001073: MSTORE
00001074: PUSH1 0x40
00001076: DUP2
00001077: ADD
00001078: MLOAD
00001079: PUSH1 0x84
0000107b: DUP4
0000107c: ADD
0000107d: MSTORE
0000107e: PUSH1 0x60
00001080: DUP2
00001081: ADD
00001082: MLOAD
00001083: PUSH1 0xa4
00001085: DUP4
00001086: ADD
00001087: MSTORE
00001088: PUSH1 0x01
0000108a: PUSH1 0x01
0000108c: PUSH1 0xa0
0000108e: SHL
0000108f: SUB
00001090: PUSH1 0x80
00001092: DUP3
00001093: ADD
00001094: MLOAD
00001095: AND
00001096: PUSH1 0xc4
00001098: DUP4
00001099: ADD
0000109a: MSTORE
0000109b: PUSH1 0xa0
0000109d: DUP2
0000109e: ADD
0000109f: MLOAD
000010a0: PUSH1 0xe4
000010a2: DUP4
000010a3: ADD
000010a4: MSTORE
000010a5: PUSH1 0x01
000010a7: PUSH1 0x01
000010a9: PUSH1 0xa0
000010ab: SHL
000010ac: SUB
000010ad: PUSH1 0xc0
000010af: DUP3
000010b0: ADD
000010b1: MLOAD
000010b2: AND
000010b3: PUSH2 0x0104
000010b6: DUP4
000010b7: ADD
000010b8: MSTORE
000010b9: PUSH2 0x0180
000010bc: PUSH2 0x1157
000010bf: PUSH2 0x10da
000010c2: PUSH1 0xe0
000010c4: DUP5
000010c5: ADD
000010c6: MLOAD
000010c7: PUSH2 0x01a0
000010ca: PUSH2 0x0124
000010cd: DUP8
000010ce: ADD
000010cf: MSTORE
000010d0: PUSH2 0x01e4
000010d3: DUP7
000010d4: ADD
000010d5: SWAP1
000010d6: PUSH2 0x30b3
000010d9: JUMP
000010da: JUMPDEST
000010db: PUSH1 0x01
000010dd: PUSH1 0x01
000010df: PUSH1 0xa0
000010e1: SHL
000010e2: SUB
000010e3: PUSH2 0x0100
000010e6: DUP6
000010e7: ADD
000010e8: MLOAD
000010e9: AND
000010ea: PUSH2 0x0144
000010ed: DUP7
000010ee: ADD
000010ef: MSTORE
000010f0: PUSH2 0x112b
000010f3: PUSH2 0x0120
000010f6: DUP6
000010f7: ADD
000010f8: MLOAD
000010f9: SWAP2
000010fa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc
0000111b: SWAP3
0000111c: DUP4
0000111d: DUP9
0000111e: DUP4
0000111f: SUB
00001120: ADD
00001121: PUSH2 0x0164
00001124: DUP10
00001125: ADD
00001126: MSTORE
00001127: PUSH2 0x26b7
0000112a: JUMP
0000112b: JUMPDEST
0000112c: SWAP1
0000112d: PUSH1 0x01
0000112f: PUSH1 0x01
00001131: PUSH1 0xa0
00001133: SHL
00001134: SUB
00001135: PUSH2 0x0140
00001138: DUP7
00001139: ADD
0000113a: MLOAD
0000113b: AND
0000113c: PUSH2 0x0184
0000113f: DUP8
00001140: ADD
00001141: MSTORE
00001142: PUSH2 0x0160
00001145: DUP6
00001146: ADD
00001147: MLOAD
00001148: SWAP1
00001149: DUP7
0000114a: DUP4
0000114b: SUB
0000114c: ADD
0000114d: PUSH2 0x01a4
00001150: DUP8
00001151: ADD
00001152: MSTORE
00001153: PUSH2 0x26b7
00001156: JUMP
00001157: JUMPDEST
00001158: SWAP2
00001159: ADD
0000115a: MLOAD
0000115b: PUSH2 0x01c4
0000115e: DUP4
0000115f: ADD
00001160: MSTORE
00001161: SUB
00001162: PUSH1 0x1f
00001164: NOT
00001165: DUP2
00001166: ADD
00001167: DUP6
00001168: MSTORE
00001169: DUP5
0000116a: PUSH2 0x2799
0000116d: JUMP
0000116e: JUMPDEST
0000116f: PUSH1 0x01
00001171: PUSH1 0x01
00001173: PUSH1 0xa0
00001175: SHL
00001176: SUB
00001177: PUSH1 0xc0
00001179: DUP8
0000117a: ADD
0000117b: MLOAD
0000117c: AND
0000117d: SWAP1
0000117e: PUSH1 0x01
00001180: PUSH1 0x01
00001182: PUSH1 0xa0
00001184: SHL
00001185: SUB
00001186: PUSH1 0x60
00001188: DUP9
00001189: ADD
0000118a: MLOAD
0000118b: AND
0000118c: PUSH1 0x01
0000118e: PUSH1 0x01
00001190: PUSH1 0xa0
00001192: SHL
00001193: SUB
00001194: PUSH1 0x03
00001196: DUP2
00001197: PUSH1 0x40
00001199: DUP12
0000119a: ADD
0000119b: MLOAD
0000119c: AND
0000119d: SWAP5
0000119e: PUSH1 0x20
000011a0: DUP12
000011a1: ADD
000011a2: MLOAD
000011a3: PUSH1 0x40
000011a5: MLOAD
000011a6: SWAP2
000011a7: PUSH2 0x11af
000011aa: DUP4
000011ab: PUSH2 0x270b
000011ae: JUMP
000011af: JUMPDEST
000011b0: DUP3
000011b1: MSTORE
000011b2: PUSH1 0x20
000011b4: DUP3
000011b5: ADD
000011b6: SWAP5
000011b7: DUP6
000011b8: MSTORE
000011b9: PUSH1 0x40
000011bb: DUP3
000011bc: ADD
000011bd: SWAP1
000011be: DUP2
000011bf: MSTORE
000011c0: PUSH1 0x60
000011c2: DUP3
000011c3: ADD
000011c4: SWAP7
000011c5: DUP8
000011c6: MSTORE
000011c7: PUSH1 0x80
000011c9: DUP3
000011ca: ADD
000011cb: SWAP6
000011cc: PUSH1 0x01
000011ce: DUP8
000011cf: MSTORE
000011d0: DUP11
000011d1: MSTORE
000011d2: PUSH1 0x6a
000011d4: PUSH1 0x20
000011d6: MSTORE
000011d7: DUP4
000011d8: PUSH1 0x40
000011da: DUP12
000011db: KECCAK256
000011dc: SWAP3
000011dd: MLOAD
000011de: AND
000011df: SWAP5
000011e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011f5: NOT
000011f6: SWAP6
000011f7: DUP7
000011f8: DUP5
000011f9: SLOAD
000011fa: AND
000011fb: OR
000011fc: DUP4
000011fd: SSTORE
000011fe: DUP5
000011ff: PUSH1 0x01
00001201: DUP5
00001202: ADD
00001203: SWAP2
00001204: MLOAD
00001205: AND
00001206: DUP7
00001207: DUP3
00001208: SLOAD
00001209: AND
0000120a: OR
0000120b: SWAP1
0000120c: SSTORE
0000120d: MLOAD
0000120e: PUSH1 0x02
00001210: DUP3
00001211: ADD
00001212: SSTORE
00001213: ADD
00001214: SWAP4
00001215: MLOAD
00001216: AND
00001217: SWAP1
00001218: DUP4
00001219: SLOAD
0000121a: AND
0000121b: OR
0000121c: DUP3
0000121d: SSTORE
0000121e: MLOAD
0000121f: SWAP1
00001220: PUSH2 0x1228
00001223: DUP3
00001224: PUSH2 0x282b
00001227: JUMP
00001228: JUMPDEST
00001229: PUSH2 0x2bd2
0000122c: JUMP
0000122d: JUMPDEST
0000122e: PUSH2 0x1238
00001231: PUSH1 0x68
00001233: SLOAD
00001234: PUSH2 0x305c
00001237: JUMP
00001238: JUMPDEST
00001239: PUSH1 0x68
0000123b: SSTORE
0000123c: PUSH1 0x01
0000123e: PUSH1 0x01
00001240: PUSH1 0xa0
00001242: SHL
00001243: SUB
00001244: PUSH1 0x67
00001246: SLOAD
00001247: AND
00001248: PUSH1 0x01
0000124a: PUSH1 0x01
0000124c: PUSH1 0xa0
0000124e: SHL
0000124f: SUB
00001250: PUSH1 0x80
00001252: DUP7
00001253: ADD
00001254: MLOAD
00001255: AND
00001256: SWAP1
00001257: PUSH1 0x01
00001259: PUSH1 0x01
0000125b: PUSH1 0xa0
0000125d: SHL
0000125e: SUB
0000125f: PUSH1 0xa0
00001261: DUP8
00001262: ADD
00001263: MLOAD
00001264: AND
00001265: SWAP2
00001266: PUSH1 0xe0
00001268: DUP8
00001269: ADD
0000126a: MLOAD
0000126b: SWAP4
0000126c: DUP3
0000126d: EXTCODESIZE
0000126e: ISZERO
0000126f: PUSH2 0x05fd
00001272: JUMPI
00001273: SWAP1
00001274: DUP6
00001275: DUP1
00001276: SWAP5
00001277: SWAP4
00001278: SWAP3
00001279: PUSH2 0x1298
0000127c: PUSH1 0x40
0000127e: MLOAD
0000127f: SWAP8
00001280: DUP9
00001281: SWAP7
00001282: DUP8
00001283: SWAP6
00001284: DUP7
00001285: SWAP5
00001286: PUSH4 0x3675e4e1
0000128b: PUSH1 0xe1
0000128d: SHL
0000128e: DUP7
0000128f: MSTORE
00001290: PUSH1 0x04
00001292: DUP7
00001293: ADD
00001294: PUSH2 0x3027
00001297: JUMP
00001298: JUMPDEST
00001299: SUB
0000129a: SWAP3
0000129b: GAS
0000129c: CALL
0000129d: DUP1
0000129e: ISZERO
0000129f: PUSH2 0x05f2
000012a2: JUMPI
000012a3: PUSH2 0x137e
000012a6: JUMPI
000012a7: JUMPDEST
000012a8: PUSH1 0x20
000012aa: DUP4
000012ab: PUSH2 0x01e0
000012ae: DUP7
000012af: PUSH1 0x01
000012b1: PUSH1 0x01
000012b3: PUSH1 0xa0
000012b5: SHL
000012b6: SUB
000012b7: PUSH1 0xc0
000012b9: DUP3
000012ba: ADD
000012bb: MLOAD
000012bc: AND
000012bd: PUSH1 0xe0
000012bf: DUP3
000012c0: ADD
000012c1: MLOAD
000012c2: PUSH1 0x01
000012c4: PUSH1 0x01
000012c6: PUSH1 0xa0
000012c8: SHL
000012c9: SUB
000012ca: PUSH2 0x01c0
000012cd: DUP5
000012ce: ADD
000012cf: MLOAD
000012d0: AND
000012d1: SWAP2
000012d2: PUSH32 0x31325fe0a1a2e6a5b1e41572156ba5b4e94f0fae7e7f63ec21e9b5ce1e4b3eab
000012f3: PUSH1 0x01
000012f5: PUSH1 0x01
000012f7: PUSH1 0xa0
000012f9: SHL
000012fa: SUB
000012fb: PUSH1 0x60
000012fd: DUP7
000012fe: ADD
000012ff: MLOAD
00001300: AND
00001301: DUP9
00001302: DUP7
00001303: ADD
00001304: MLOAD
00001305: SWAP1
00001306: PUSH2 0x1348
00001309: PUSH1 0x01
0000130b: PUSH1 0x01
0000130d: PUSH1 0xa0
0000130f: SHL
00001310: SUB
00001311: PUSH1 0x40
00001313: DUP10
00001314: ADD
00001315: MLOAD
00001316: AND
00001317: PUSH1 0x40
00001319: MLOAD
0000131a: SWAP4
0000131b: DUP5
0000131c: SWAP4
0000131d: DUP13
0000131e: DUP6
0000131f: SWAP3
00001320: SWAP4
00001321: PUSH1 0x60
00001323: SWAP3
00001324: SWAP2
00001325: SWAP6
00001326: SWAP5
00001327: PUSH1 0x80
00001329: DUP6
0000132a: ADD
0000132b: SWAP7
0000132c: DUP6
0000132d: MSTORE
0000132e: PUSH1 0x01
00001330: PUSH1 0x01
00001332: PUSH1 0xa0
00001334: SHL
00001335: SUB
00001336: DUP1
00001337: SWAP4
00001338: AND
00001339: PUSH1 0x20
0000133b: DUP7
0000133c: ADD
0000133d: MSTORE
0000133e: PUSH1 0x40
00001340: DUP6
00001341: ADD
00001342: MSTORE
00001343: AND
00001344: SWAP2
00001345: ADD
00001346: MSTORE
00001347: JUMP
00001348: JUMPDEST
00001349: SUB
0000134a: SWAP1
0000134b: LOG4
0000134c: ADD
0000134d: MLOAD
0000134e: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5
0000136f: DUP4
00001370: PUSH1 0x40
00001372: MLOAD
00001373: DUP5
00001374: DUP2
00001375: MSTORE
00001376: LOG2
00001377: PUSH1 0x40
00001379: MLOAD
0000137a: SWAP1
0000137b: DUP2
0000137c: MSTORE
0000137d: RETURN
0000137e: JUMPDEST
0000137f: PUSH2 0x1388
00001382: DUP3
00001383: SWAP2
00001384: PUSH2 0x26f7
00001387: JUMP
00001388: JUMPDEST
00001389: PUSH2 0x0a01
0000138c: JUMPI
0000138d: DUP1
0000138e: PUSH2 0x12a7
00001391: JUMP
00001392: JUMPDEST
00001393: PUSH1 0x01
00001395: PUSH1 0x01
00001397: PUSH1 0xa0
00001399: SHL
0000139a: SUB
0000139b: PUSH1 0x60
0000139d: DUP4
0000139e: ADD
0000139f: MLOAD
000013a0: AND
000013a1: PUSH2 0x01c0
000013a4: DUP4
000013a5: ADD
000013a6: MSTORE
000013a7: PUSH2 0x0ecb
000013aa: JUMP
000013ab: JUMPDEST
000013ac: POP
000013ad: CALLVALUE
000013ae: PUSH2 0x0a01
000013b1: JUMPI
000013b2: PUSH1 0x40
000013b4: PUSH1 0x03
000013b6: NOT
000013b7: CALLDATASIZE
000013b8: ADD
000013b9: SLT
000013ba: PUSH2 0x0a01
000013bd: JUMPI
000013be: PUSH1 0x04
000013c0: CALLDATALOAD
000013c1: PUSH1 0x24
000013c3: CALLDATALOAD
000013c4: PUSH1 0x01
000013c6: PUSH1 0x01
000013c8: PUSH1 0xa0
000013ca: SHL
000013cb: SUB
000013cc: PUSH2 0x13da
000013cf: DUP2
000013d0: PUSH1 0x67
000013d2: SLOAD
000013d3: AND
000013d4: CALLER
000013d5: EQ
000013d6: PUSH2 0x2b87
000013d9: JUMP
000013da: JUMPDEST
000013db: PUSH2 0x13e9
000013de: PUSH1 0xff
000013e0: PUSH1 0x69
000013e2: SLOAD
000013e3: AND
000013e4: ISZERO
000013e5: PUSH2 0x294e
000013e8: JUMP
000013e9: JUMPDEST
000013ea: DUP2
000013eb: DUP5
000013ec: MSTORE
000013ed: PUSH1 0x6a
000013ef: PUSH1 0x20
000013f1: MSTORE
000013f2: PUSH1 0x40
000013f4: DUP5
000013f5: KECCAK256
000013f6: SWAP3
000013f7: PUSH1 0x03
000013f9: DUP5
000013fa: ADD
000013fb: DUP1
000013fc: SLOAD
000013fd: PUSH1 0x01
000013ff: PUSH1 0xff
00001401: DUP3
00001402: PUSH1 0xa0
00001404: SHR
00001405: AND
00001406: PUSH2 0x140e
00001409: DUP2
0000140a: PUSH2 0x282b
0000140d: JUMP
0000140e: JUMPDEST
0000140f: SUB
00001410: PUSH2 0x1512
00001413: JUMPI
00001414: DUP4
00001415: PUSH2 0x14e1
00001418: DUP5
00001419: DUP3
0000141a: PUSH32 0xefcdf9ea4e65571d2ce9c030c46954e950662df8a7d8bd039fc4417e37b2f88c
0000143b: SWAP8
0000143c: DUP6
0000143d: PUSH21 0x020000000000000000000000000000000000000000
00001453: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
00001474: PUSH2 0x150c
00001477: SWAP9
00001478: AND
00001479: OR
0000147a: DUP9
0000147b: SSTORE
0000147c: AND
0000147d: SWAP10
0000147e: DUP11
0000147f: DUP13
00001480: MSTORE
00001481: PUSH1 0x6c
00001483: PUSH1 0x20
00001485: MSTORE
00001486: PUSH1 0x40
00001488: DUP13
00001489: KECCAK256
0000148a: SLOAD
0000148b: SWAP11
0000148c: PUSH2 0x149b
0000148f: PUSH1 0x02
00001491: DUP4
00001492: ADD
00001493: SWAP13
00001494: DUP14
00001495: SLOAD
00001496: SWAP1
00001497: PUSH2 0x2c21
0000149a: JUMP
0000149b: JUMPDEST
0000149c: SWAP1
0000149d: DUP14
0000149e: MSTORE
0000149f: PUSH1 0x6c
000014a1: PUSH1 0x20
000014a3: MSTORE
000014a4: PUSH1 0x40
000014a6: DUP14
000014a7: KECCAK256
000014a8: SSTORE
000014a9: PUSH2 0x14c5
000014ac: DUP3
000014ad: DUP9
000014ae: SLOAD
000014af: AND
000014b0: DUP13
000014b1: PUSH2 0x14bf
000014b4: DUP7
000014b5: DUP7
000014b6: DUP7
000014b7: SLOAD
000014b8: AND
000014b9: SWAP3
000014ba: SLOAD
000014bb: PUSH2 0x2c21
000014be: JUMP
000014bf: JUMPDEST
000014c0: SWAP2
000014c1: PUSH2 0x2c44
000014c4: JUMP
000014c5: JUMPDEST
000014c6: PUSH2 0x14d8
000014c9: DUP4
000014ca: DUP4
000014cb: DUP10
000014cc: SLOAD
000014cd: AND
000014ce: DUP5
000014cf: PUSH1 0x67
000014d1: SLOAD
000014d2: AND
000014d3: SWAP1
000014d4: PUSH2 0x2c44
000014d7: JUMP
000014d8: JUMPDEST
000014d9: SLOAD
000014da: AND
000014db: SWAP9
000014dc: SLOAD
000014dd: PUSH2 0x2c21
000014e0: JUMP
000014e1: JUMPDEST
000014e2: SWAP3
000014e3: SLOAD
000014e4: AND
000014e5: PUSH1 0x40
000014e7: MLOAD
000014e8: SWAP4
000014e9: DUP5
000014ea: SWAP4
000014eb: DUP5
000014ec: SWAP2
000014ed: PUSH1 0x40
000014ef: SWAP2
000014f0: SWAP5
000014f1: SWAP4
000014f2: PUSH1 0x01
000014f4: PUSH1 0x01
000014f6: PUSH1 0xa0
000014f8: SHL
000014f9: SUB
000014fa: SWAP2
000014fb: PUSH1 0x60
000014fd: DUP6
000014fe: ADD
000014ff: SWAP7
00001500: DUP6
00001501: MSTORE
00001502: PUSH1 0x20
00001504: DUP6
00001505: ADD
00001506: MSTORE
00001507: AND
00001508: SWAP2
00001509: ADD
0000150a: MSTORE
0000150b: JUMP
0000150c: JUMPDEST
0000150d: SUB
0000150e: SWAP1
0000150f: LOG3
00001510: DUP1
00001511: RETURN
00001512: JUMPDEST
00001513: PUSH1 0x84
00001515: PUSH1 0x40
00001517: MLOAD
00001518: PUSH3 0x461bcd
0000151c: PUSH1 0xe5
0000151e: SHL
0000151f: DUP2
00001520: MSTORE
00001521: PUSH1 0x20
00001523: PUSH1 0x04
00001525: DUP3
00001526: ADD
00001527: MSTORE
00001528: PUSH1 0x29
0000152a: PUSH1 0x24
0000152c: DUP3
0000152d: ADD
0000152e: MSTORE
0000152f: PUSH32 0x53796d623a207374617465206e6f74206f70656e206f7220747820646f657320
00001550: PUSH1 0x44
00001552: DUP3
00001553: ADD
00001554: MSTORE
00001555: PUSH32 0x6e6f742065786973740000000000000000000000000000000000000000000000
00001576: PUSH1 0x64
00001578: DUP3
00001579: ADD
0000157a: MSTORE
0000157b: REVERT
0000157c: JUMPDEST
0000157d: POP
0000157e: CALLVALUE
0000157f: PUSH2 0x0a01
00001582: JUMPI
00001583: PUSH2 0x0120
00001586: PUSH1 0x03
00001588: NOT
00001589: CALLDATASIZE
0000158a: ADD
0000158b: SLT
0000158c: PUSH2 0x0a01
0000158f: JUMPI
00001590: PUSH2 0x1597
00001593: PUSH2 0x261f
00001596: JUMP
00001597: JUMPDEST
00001598: PUSH2 0x159f
0000159b: PUSH2 0x2661
0000159e: JUMP
0000159f: JUMPDEST
000015a0: SWAP1
000015a1: PUSH2 0x15a8
000015a4: PUSH2 0x268d
000015a7: JUMP
000015a8: JUMPDEST
000015a9: SWAP2
000015aa: PUSH1 0xe4
000015ac: CALLDATALOAD
000015ad: SWAP3
000015ae: PUSH8 0xffffffffffffffff
000015b7: DUP5
000015b8: GT
000015b9: PUSH2 0x160a
000015bc: JUMPI
000015bd: PUSH2 0x15cd
000015c0: PUSH2 0x0a84
000015c3: SWAP5
000015c4: CALLDATASIZE
000015c5: SWAP1
000015c6: PUSH1 0x04
000015c8: ADD
000015c9: PUSH2 0x2867
000015cc: JUMP
000015cd: JUMPDEST
000015ce: SWAP2
000015cf: PUSH2 0x15e4
000015d2: PUSH1 0x01
000015d4: PUSH1 0x01
000015d6: PUSH1 0xa0
000015d8: SHL
000015d9: SUB
000015da: PUSH1 0x67
000015dc: SLOAD
000015dd: AND
000015de: CALLER
000015df: EQ
000015e0: PUSH2 0x2b87
000015e3: JUMP
000015e4: JUMPDEST
000015e5: PUSH2 0x15f3
000015e8: PUSH1 0xff
000015ea: PUSH1 0x69
000015ec: SLOAD
000015ed: AND
000015ee: ISZERO
000015ef: PUSH2 0x294e
000015f2: JUMP
000015f3: JUMPDEST
000015f4: PUSH2 0x0104
000015f7: CALLDATALOAD
000015f8: SWAP4
000015f9: PUSH1 0x84
000015fb: CALLDATALOAD
000015fc: SWAP1
000015fd: PUSH1 0x44
000015ff: CALLDATALOAD
00001600: PUSH1 0x24
00001602: CALLDATALOAD
00001603: PUSH1 0x04
00001605: CALLDATALOAD
00001606: PUSH2 0x2dc0
00001609: JUMP
0000160a: JUMPDEST
0000160b: DUP5
0000160c: DUP1
0000160d: REVERT
0000160e: JUMPDEST
0000160f: POP
00001610: CALLVALUE
00001611: PUSH2 0x0a01
00001614: JUMPI
00001615: PUSH1 0x20
00001617: PUSH1 0x03
00001619: NOT
0000161a: CALLDATASIZE
0000161b: ADD
0000161c: SLT
0000161d: PUSH2 0x0a01
00001620: JUMPI
00001621: PUSH32 0xce42f6a6b3d7a9e5602623686f752d848285a87b22f0168a666c9c6064d2d230
00001642: PUSH1 0x20
00001644: PUSH2 0x164b
00001647: PUSH2 0x2635
0000164a: JUMP
0000164b: JUMPDEST
0000164c: PUSH1 0x01
0000164e: PUSH1 0x01
00001650: PUSH1 0xa0
00001652: SHL
00001653: SUB
00001654: SWAP1
00001655: PUSH2 0x1665
00001658: DUP3
00001659: PUSH1 0x33
0000165b: SLOAD
0000165c: AND
0000165d: DUP4
0000165e: PUSH2 0x0a6d
00001661: PUSH2 0x316e
00001664: JUMP
00001665: JUMPDEST
00001666: AND
00001667: DUP1
00001668: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000167d: NOT
0000167e: PUSH1 0x66
00001680: SLOAD
00001681: AND
00001682: OR
00001683: PUSH1 0x66
00001685: SSTORE
00001686: PUSH1 0x40
00001688: MLOAD
00001689: SWAP1
0000168a: DUP2
0000168b: MSTORE
0000168c: LOG1
0000168d: DUP1
0000168e: RETURN
0000168f: JUMPDEST
00001690: POP
00001691: CALLVALUE
00001692: PUSH2 0x0a01
00001695: JUMPI
00001696: PUSH2 0x0120
00001699: PUSH1 0x03
0000169b: NOT
0000169c: CALLDATASIZE
0000169d: ADD
0000169e: SLT
0000169f: PUSH2 0x0a01
000016a2: JUMPI
000016a3: PUSH2 0x16aa
000016a6: PUSH2 0x264b
000016a9: JUMP
000016aa: JUMPDEST
000016ab: PUSH2 0x16b2
000016ae: PUSH2 0x261f
000016b1: JUMP
000016b2: JUMPDEST
000016b3: SWAP1
000016b4: PUSH2 0x16bb
000016b7: PUSH2 0x2677
000016ba: JUMP
000016bb: JUMPDEST
000016bc: SWAP2
000016bd: PUSH2 0x16c4
000016c0: PUSH2 0x2661
000016c3: JUMP
000016c4: JUMPDEST
000016c5: SWAP3
000016c6: PUSH2 0x16cd
000016c9: PUSH2 0x268d
000016cc: JUMP
000016cd: JUMPDEST
000016ce: SWAP1
000016cf: PUSH2 0x16dd
000016d2: PUSH1 0xff
000016d4: PUSH1 0x69
000016d6: SLOAD
000016d7: AND
000016d8: ISZERO
000016d9: PUSH2 0x294e
000016dc: JUMP
000016dd: JUMPDEST
000016de: PUSH1 0x01
000016e0: PUSH1 0x01
000016e2: PUSH1 0xa0
000016e4: SHL
000016e5: SUB
000016e6: DUP5
000016e7: AND
000016e8: DUP7
000016e9: MSTORE
000016ea: PUSH1 0x6e
000016ec: PUSH1 0x20
000016ee: MSTORE
000016ef: PUSH2 0x16fe
000016f2: PUSH1 0xff
000016f4: PUSH1 0x40
000016f6: DUP9
000016f7: KECCAK256
000016f8: SLOAD
000016f9: AND
000016fa: PUSH2 0x2999
000016fd: JUMP
000016fe: JUMPDEST
000016ff: PUSH1 0x01
00001701: PUSH1 0x01
00001703: PUSH1 0xa0
00001705: SHL
00001706: SUB
00001707: DUP5
00001708: AND
00001709: DUP7
0000170a: MSTORE
0000170b: PUSH1 0x6d
0000170d: PUSH1 0x20
0000170f: MSTORE
00001710: PUSH2 0x1721
00001713: PUSH1 0x40
00001715: DUP8
00001716: KECCAK256
00001717: SLOAD
00001718: PUSH1 0x44
0000171a: CALLDATALOAD
0000171b: LT
0000171c: ISZERO
0000171d: PUSH2 0x29e4
00001720: JUMP
00001721: JUMPDEST
00001722: PUSH2 0x1738
00001725: PUSH2 0x172c
00001728: PUSH2 0x316e
0000172b: JUMP
0000172c: JUMPDEST
0000172d: PUSH1 0x44
0000172f: CALLDATALOAD
00001730: SWAP1
00001731: ADDRESS
00001732: SWAP1
00001733: DUP8
00001734: PUSH2 0x2a77
00001737: JUMP
00001738: JUMPDEST
00001739: PUSH1 0x01
0000173b: PUSH1 0x01
0000173d: PUSH1 0xa0
0000173f: SHL
00001740: SUB
00001741: DUP3
00001742: DUP2
00001743: DUP7
00001744: AND
00001745: DUP9
00001746: MSTORE
00001747: PUSH1 0x6c
00001749: PUSH1 0x20
0000174b: MSTORE
0000174c: PUSH2 0x175b
0000174f: PUSH1 0x44
00001751: CALLDATALOAD
00001752: PUSH1 0x40
00001754: DUP11
00001755: KECCAK256
00001756: SLOAD
00001757: PUSH2 0x30f0
0000175a: JUMP
0000175b: JUMPDEST
0000175c: DUP3
0000175d: DUP8
0000175e: AND
0000175f: DUP10
00001760: MSTORE
00001761: PUSH1 0x6c
00001763: PUSH1 0x20
00001765: MSTORE
00001766: PUSH1 0x40
00001768: DUP10
00001769: KECCAK256
0000176a: SSTORE
0000176b: AND
0000176c: ISZERO
0000176d: PUSH2 0x1ac4
00001770: JUMPI
00001771: JUMPDEST
00001772: DUP6
00001773: PUSH1 0x68
00001775: SLOAD
00001776: PUSH1 0x40
00001778: MLOAD
00001779: PUSH2 0x17af
0000177c: DUP2
0000177d: PUSH2 0x0322
00001780: PUSH1 0x20
00001782: DUP3
00001783: ADD
00001784: SWAP5
00001785: CHAINID
00001786: SWAP1
00001787: ADDRESS
00001788: DUP8
00001789: SWAP2
0000178a: PUSH12 0xffffffffffffffffffffffff
00001797: NOT
00001798: PUSH1 0x54
0000179a: SWAP5
0000179b: SWAP3
0000179c: PUSH1 0x60
0000179e: SHL
0000179f: AND
000017a0: DUP4
000017a1: MSTORE
000017a2: PUSH1 0x14
000017a4: DUP4
000017a5: ADD
000017a6: MSTORE
000017a7: PUSH1 0x34
000017a9: DUP3
000017aa: ADD
000017ab: MSTORE
000017ac: ADD
000017ad: SWAP1
000017ae: JUMP
000017af: JUMPDEST
000017b0: MLOAD
000017b1: SWAP1
000017b2: KECCAK256
000017b3: SWAP6
000017b4: PUSH1 0x40
000017b6: MLOAD
000017b7: PUSH2 0x17fa
000017ba: DUP2
000017bb: PUSH2 0x0322
000017be: PUSH1 0xe4
000017c0: CALLDATALOAD
000017c1: DUP9
000017c2: DUP9
000017c3: DUP14
000017c4: PUSH1 0x20
000017c6: DUP7
000017c7: ADD
000017c8: SWAP3
000017c9: PUSH1 0x68
000017cb: SWAP5
000017cc: SWAP3
000017cd: SWAP2
000017ce: DUP5
000017cf: MSTORE
000017d0: PUSH12 0xffffffffffffffffffffffff
000017dd: NOT
000017de: DUP1
000017df: SWAP3
000017e0: PUSH1 0x60
000017e2: SHL
000017e3: AND
000017e4: PUSH1 0x20
000017e6: DUP6
000017e7: ADD
000017e8: MSTORE
000017e9: PUSH1 0x60
000017eb: SHL
000017ec: AND
000017ed: PUSH1 0x34
000017ef: DUP4
000017f0: ADD
000017f1: MSTORE
000017f2: PUSH1 0x48
000017f4: DUP3
000017f5: ADD
000017f6: MSTORE
000017f7: ADD
000017f8: SWAP1
000017f9: JUMP
000017fa: JUMPDEST
000017fb: PUSH1 0x20
000017fd: DUP2
000017fe: MLOAD
000017ff: SWAP2
00001800: ADD
00001801: KECCAK256
00001802: SWAP1
00001803: PUSH2 0x19a3
00001806: DUP8
00001807: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001828: PUSH1 0x4b
0000182a: PUSH1 0x40
0000182c: MLOAD
0000182d: PUSH2 0x1835
00001830: DUP2
00001831: PUSH2 0x2760
00001834: JUMP
00001835: JUMPDEST
00001836: DUP2
00001837: DUP2
00001838: MSTORE
00001839: PUSH32 0x35362c6164647265737329000000000000000000000000000000000000000000
0000185a: PUSH1 0x60
0000185c: PUSH1 0x20
0000185e: DUP4
0000185f: ADD
00001860: SWAP3
00001861: PUSH32 0x6d696e7453796e746865746963546f6b656e2875696e743235362c6279746573
00001882: DUP5
00001883: MSTORE
00001884: PUSH32 0x33322c627974657333322c616464726573732c75696e743235362c75696e7432
000018a5: PUSH1 0x40
000018a7: DUP3
000018a8: ADD
000018a9: MSTORE
000018aa: ADD
000018ab: MSTORE
000018ac: KECCAK256
000018ad: AND
000018ae: SWAP4
000018af: PUSH1 0x40
000018b1: MLOAD
000018b2: SWAP5
000018b3: PUSH1 0x20
000018b5: DUP7
000018b6: ADD
000018b7: MSTORE
000018b8: PUSH1 0x04
000018ba: CALLDATALOAD
000018bb: PUSH1 0x24
000018bd: DUP7
000018be: ADD
000018bf: MSTORE
000018c0: DUP1
000018c1: PUSH1 0x44
000018c3: DUP7
000018c4: ADD
000018c5: MSTORE
000018c6: DUP11
000018c7: PUSH1 0x64
000018c9: DUP7
000018ca: ADD
000018cb: MSTORE
000018cc: PUSH1 0x01
000018ce: PUSH1 0x01
000018d0: PUSH1 0xa0
000018d2: SHL
000018d3: SUB
000018d4: DUP3
000018d5: AND
000018d6: PUSH1 0x84
000018d8: DUP7
000018d9: ADD
000018da: MSTORE
000018db: CHAINID
000018dc: PUSH1 0xa4
000018de: DUP7
000018df: ADD
000018e0: MSTORE
000018e1: PUSH1 0x44
000018e3: CALLDATALOAD
000018e4: PUSH1 0xc4
000018e6: DUP7
000018e7: ADD
000018e8: MSTORE
000018e9: PUSH1 0x01
000018eb: PUSH1 0x01
000018ed: PUSH1 0xa0
000018ef: SHL
000018f0: SUB
000018f1: DUP10
000018f2: AND
000018f3: DUP1
000018f4: PUSH1 0xe4
000018f6: DUP8
000018f7: ADD
000018f8: MSTORE
000018f9: PUSH1 0xe4
000018fb: DUP7
000018fc: MSTORE
000018fd: PUSH2 0x1905
00001900: DUP7
00001901: PUSH2 0x277c
00001904: JUMP
00001905: JUMPDEST
00001906: PUSH1 0x01
00001908: PUSH1 0x01
0000190a: PUSH1 0xa0
0000190c: SHL
0000190d: SUB
0000190e: PUSH1 0x03
00001910: PUSH2 0x1917
00001913: PUSH2 0x316e
00001916: JUMP
00001917: JUMPDEST
00001918: DUP3
00001919: PUSH1 0x40
0000191b: MLOAD
0000191c: SWAP2
0000191d: PUSH2 0x1925
00001920: DUP4
00001921: PUSH2 0x270b
00001924: JUMP
00001925: JUMPDEST
00001926: AND
00001927: DUP2
00001928: MSTORE
00001929: PUSH1 0x20
0000192b: DUP2
0000192c: ADD
0000192d: SWAP4
0000192e: DUP5
0000192f: MSTORE
00001930: PUSH1 0x40
00001932: DUP2
00001933: ADD
00001934: PUSH1 0x44
00001936: CALLDATALOAD
00001937: DUP2
00001938: MSTORE
00001939: DUP4
0000193a: PUSH1 0x60
0000193c: DUP4
0000193d: ADD
0000193e: SWAP8
0000193f: AND
00001940: DUP8
00001941: MSTORE
00001942: PUSH1 0x80
00001944: DUP3
00001945: ADD
00001946: SWAP6
00001947: PUSH1 0x01
00001949: DUP8
0000194a: MSTORE
0000194b: DUP12
0000194c: MSTORE
0000194d: PUSH1 0x6a
0000194f: PUSH1 0x20
00001951: MSTORE
00001952: DUP4
00001953: PUSH1 0x40
00001955: DUP13
00001956: KECCAK256
00001957: SWAP3
00001958: MLOAD
00001959: AND
0000195a: SWAP5
0000195b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001970: NOT
00001971: SWAP6
00001972: DUP7
00001973: DUP5
00001974: SLOAD
00001975: AND
00001976: OR
00001977: DUP4
00001978: SSTORE
00001979: DUP5
0000197a: PUSH1 0x01
0000197c: DUP5
0000197d: ADD
0000197e: SWAP2
0000197f: MLOAD
00001980: AND
00001981: DUP7
00001982: DUP3
00001983: SLOAD
00001984: AND
00001985: OR
00001986: SWAP1
00001987: SSTORE
00001988: MLOAD
00001989: PUSH1 0x02
0000198b: DUP3
0000198c: ADD
0000198d: SSTORE
0000198e: ADD
0000198f: SWAP4
00001990: MLOAD
00001991: AND
00001992: SWAP1
00001993: DUP4
00001994: SLOAD
00001995: AND
00001996: OR
00001997: DUP3
00001998: SSTORE
00001999: MLOAD
0000199a: SWAP1
0000199b: PUSH2 0x1228
0000199e: DUP3
0000199f: PUSH2 0x282b
000019a2: JUMP
000019a3: JUMPDEST
000019a4: PUSH2 0x19ae
000019a7: PUSH1 0x68
000019a9: SLOAD
000019aa: PUSH2 0x305c
000019ad: JUMP
000019ae: JUMPDEST
000019af: PUSH1 0x68
000019b1: SSTORE
000019b2: PUSH1 0x01
000019b4: PUSH1 0x01
000019b6: PUSH1 0xa0
000019b8: SHL
000019b9: SUB
000019ba: PUSH1 0x67
000019bc: SLOAD
000019bd: AND
000019be: SWAP1
000019bf: DUP2
000019c0: EXTCODESIZE
000019c1: ISZERO
000019c2: PUSH2 0x1ac0
000019c5: JUMPI
000019c6: DUP4
000019c7: PUSH2 0x19eb
000019ca: SWAP6
000019cb: PUSH1 0x40
000019cd: MLOAD
000019ce: SWAP7
000019cf: DUP8
000019d0: SWAP6
000019d1: DUP7
000019d2: SWAP5
000019d3: DUP6
000019d4: SWAP4
000019d5: PUSH4 0x3675e4e1
000019da: PUSH1 0xe1
000019dc: SHL
000019dd: DUP6
000019de: MSTORE
000019df: PUSH1 0xe4
000019e1: CALLDATALOAD
000019e2: SWAP3
000019e3: PUSH1 0x04
000019e5: DUP7
000019e6: ADD
000019e7: PUSH2 0x3027
000019ea: JUMP
000019eb: JUMPDEST
000019ec: SUB
000019ed: SWAP3
000019ee: GAS
000019ef: CALL
000019f0: DUP1
000019f1: ISZERO
000019f2: PUSH2 0x1ab5
000019f5: JUMPI
000019f6: PUSH2 0x1aa1
000019f9: JUMPI
000019fa: JUMPDEST
000019fb: POP
000019fc: PUSH1 0x20
000019fe: SWAP5
000019ff: POP
00001a00: PUSH32 0x31325fe0a1a2e6a5b1e41572156ba5b4e94f0fae7e7f63ec21e9b5ce1e4b3eab
00001a21: PUSH1 0x01
00001a23: PUSH1 0x01
00001a25: PUSH1 0xa0
00001a27: SHL
00001a28: SUB
00001a29: DUP1
00001a2a: PUSH2 0x1a31
00001a2d: PUSH2 0x316e
00001a30: JUMP
00001a31: JUMPDEST
00001a32: PUSH1 0x40
00001a34: DUP1
00001a35: MLOAD
00001a36: DUP10
00001a37: DUP2
00001a38: MSTORE
00001a39: PUSH1 0x01
00001a3b: PUSH1 0x01
00001a3d: PUSH1 0xa0
00001a3f: SHL
00001a40: SUB
00001a41: SWAP8
00001a42: DUP9
00001a43: AND
00001a44: PUSH1 0x20
00001a46: DUP3
00001a47: ADD
00001a48: MSTORE
00001a49: PUSH1 0x44
00001a4b: CALLDATALOAD
00001a4c: SWAP2
00001a4d: DUP2
00001a4e: ADD
00001a4f: SWAP2
00001a50: SWAP1
00001a51: SWAP2
00001a52: MSTORE
00001a53: SWAP7
00001a54: SWAP1
00001a55: SWAP6
00001a56: AND
00001a57: PUSH1 0x60
00001a59: DUP8
00001a5a: ADD
00001a5b: MSTORE
00001a5c: SWAP3
00001a5d: AND
00001a5e: SWAP4
00001a5f: PUSH1 0xe4
00001a61: CALLDATALOAD
00001a62: SWAP4
00001a63: SWAP3
00001a64: SWAP1
00001a65: SWAP3
00001a66: AND
00001a67: SWAP2
00001a68: PUSH1 0x80
00001a6a: SWAP1
00001a6b: LOG4
00001a6c: PUSH1 0x40
00001a6e: MLOAD
00001a6f: DUP2
00001a70: DUP2
00001a71: MSTORE
00001a72: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5
00001a93: DUP4
00001a94: PUSH2 0x0104
00001a97: CALLDATALOAD
00001a98: SWAP3
00001a99: LOG2
00001a9a: PUSH1 0x40
00001a9c: MLOAD
00001a9d: SWAP1
00001a9e: DUP2
00001a9f: MSTORE
00001aa0: RETURN
00001aa1: JUMPDEST
00001aa2: PUSH2 0x1aab
00001aa5: DUP7
00001aa6: SWAP2
00001aa7: PUSH2 0x26f7
00001aaa: JUMP
00001aab: JUMPDEST
00001aac: PUSH2 0x160a
00001aaf: JUMPI
00001ab0: DUP5
00001ab1: PUSH2 0x19fa
00001ab4: JUMP
00001ab5: JUMPDEST
00001ab6: PUSH1 0x40
00001ab8: MLOAD
00001ab9: RETURNDATASIZE
00001aba: DUP9
00001abb: DUP3
00001abc: RETURNDATACOPY
00001abd: RETURNDATASIZE
00001abe: SWAP1
00001abf: REVERT
00001ac0: JUMPDEST
00001ac1: DUP4
00001ac2: DUP1
00001ac3: REVERT
00001ac4: JUMPDEST
00001ac5: DUP3
00001ac6: SWAP2
00001ac7: POP
00001ac8: PUSH2 0x1771
00001acb: JUMP
00001acc: JUMPDEST
00001acd: POP
00001ace: CALLVALUE
00001acf: PUSH2 0x0a01
00001ad2: JUMPI
00001ad3: DUP1
00001ad4: PUSH1 0x03
00001ad6: NOT
00001ad7: CALLDATASIZE
00001ad8: ADD
00001ad9: SLT
00001ada: PUSH2 0x0a01
00001add: JUMPI
00001ade: PUSH1 0x20
00001ae0: PUSH1 0x01
00001ae2: PUSH1 0x01
00001ae4: PUSH1 0xa0
00001ae6: SHL
00001ae7: SUB
00001ae8: PUSH1 0x66
00001aea: SLOAD
00001aeb: AND
00001aec: PUSH1 0x40
00001aee: MLOAD
00001aef: SWAP1
00001af0: DUP2
00001af1: MSTORE
00001af2: RETURN
00001af3: JUMPDEST
00001af4: POP
00001af5: CALLVALUE
00001af6: PUSH2 0x0a01
00001af9: JUMPI
00001afa: PUSH1 0x20
00001afc: PUSH1 0x03
00001afe: NOT
00001aff: CALLDATASIZE
00001b00: ADD
00001b01: SLT
00001b02: PUSH2 0x0a01
00001b05: JUMPI
00001b06: PUSH1 0x40
00001b08: PUSH1 0xa0
00001b0a: SWAP2
00001b0b: PUSH1 0x04
00001b0d: CALLDATALOAD
00001b0e: DUP2
00001b0f: MSTORE
00001b10: PUSH1 0x6a
00001b12: PUSH1 0x20
00001b14: MSTORE
00001b15: KECCAK256
00001b16: PUSH1 0x01
00001b18: PUSH1 0x01
00001b1a: PUSH1 0xa0
00001b1c: SHL
00001b1d: SUB
00001b1e: SWAP1
00001b1f: DUP2
00001b20: DUP2
00001b21: SLOAD
00001b22: AND
00001b23: SWAP2
00001b24: DUP1
00001b25: PUSH1 0x01
00001b27: DUP4
00001b28: ADD
00001b29: SLOAD
00001b2a: AND
00001b2b: SWAP2
00001b2c: PUSH1 0x03
00001b2e: PUSH1 0x02
00001b30: DUP3
00001b31: ADD
00001b32: SLOAD
00001b33: SWAP2
00001b34: ADD
00001b35: SLOAD
00001b36: SWAP1
00001b37: PUSH1 0xff
00001b39: DUP3
00001b3a: DUP8
00001b3b: SHR
00001b3c: AND
00001b3d: SWAP4
00001b3e: PUSH1 0x40
00001b40: MLOAD
00001b41: SWAP6
00001b42: DUP7
00001b43: MSTORE
00001b44: PUSH1 0x20
00001b46: DUP7
00001b47: ADD
00001b48: MSTORE
00001b49: PUSH1 0x40
00001b4b: DUP6
00001b4c: ADD
00001b4d: MSTORE
00001b4e: AND
00001b4f: PUSH1 0x60
00001b51: DUP4
00001b52: ADD
00001b53: MSTORE
00001b54: PUSH2 0x1b5c
00001b57: DUP2
00001b58: PUSH2 0x282b
00001b5b: JUMP
00001b5c: JUMPDEST
00001b5d: PUSH1 0x80
00001b5f: DUP3
00001b60: ADD
00001b61: MSTORE
00001b62: RETURN
00001b63: JUMPDEST
00001b64: POP
00001b65: CALLVALUE
00001b66: PUSH2 0x0a01
00001b69: JUMPI
00001b6a: DUP1
00001b6b: PUSH1 0x03
00001b6d: NOT
00001b6e: CALLDATASIZE
00001b6f: ADD
00001b70: SLT
00001b71: PUSH2 0x0a01
00001b74: JUMPI
00001b75: PUSH1 0x20
00001b77: PUSH1 0x01
00001b79: PUSH1 0x01
00001b7b: PUSH1 0xa0
00001b7d: SHL
00001b7e: SUB
00001b7f: PUSH1 0x33
00001b81: SLOAD
00001b82: AND
00001b83: PUSH1 0x40
00001b85: MLOAD
00001b86: SWAP1
00001b87: DUP2
00001b88: MSTORE
00001b89: RETURN
00001b8a: JUMPDEST
00001b8b: POP
00001b8c: CALLVALUE
00001b8d: PUSH2 0x0a01
00001b90: JUMPI
00001b91: PUSH1 0x40
00001b93: PUSH1 0x03
00001b95: NOT
00001b96: CALLDATASIZE
00001b97: ADD
00001b98: SLT
00001b99: PUSH2 0x0a01
00001b9c: JUMPI
00001b9d: PUSH32 0xa6742efd4f410d6fd9688a6cf6a15b6d51121097a263056a3576baaacdc4a9ae
00001bbe: PUSH2 0x1bc5
00001bc1: PUSH2 0x2635
00001bc4: JUMP
00001bc5: JUMPDEST
00001bc6: PUSH1 0x24
00001bc8: CALLDATALOAD
00001bc9: SWAP1
00001bca: PUSH1 0x01
00001bcc: PUSH1 0x01
00001bce: PUSH1 0xa0
00001bd0: SHL
00001bd1: SUB
00001bd2: PUSH2 0x1be2
00001bd5: DUP2
00001bd6: PUSH1 0x33
00001bd8: SLOAD
00001bd9: AND
00001bda: DUP3
00001bdb: PUSH2 0x0a6d
00001bde: PUSH2 0x316e
00001be1: JUMP
00001be2: JUMPDEST
00001be3: DUP2
00001be4: AND
00001be5: DUP5
00001be6: MSTORE
00001be7: PUSH1 0x6d
00001be9: PUSH1 0x20
00001beb: MSTORE
00001bec: DUP2
00001bed: PUSH1 0x40
00001bef: DUP6
00001bf0: KECCAK256
00001bf1: SSTORE
00001bf2: PUSH2 0x1c16
00001bf5: PUSH1 0x40
00001bf7: MLOAD
00001bf8: SWAP3
00001bf9: DUP4
00001bfa: SWAP3
00001bfb: DUP4
00001bfc: PUSH1 0x20
00001bfe: SWAP1
00001bff: SWAP4
00001c00: SWAP3
00001c01: SWAP2
00001c02: SWAP4
00001c03: PUSH1 0x01
00001c05: PUSH1 0x01
00001c07: PUSH1 0xa0
00001c09: SHL
00001c0a: SUB
00001c0b: PUSH1 0x40
00001c0d: DUP3
00001c0e: ADD
00001c0f: SWAP6
00001c10: AND
00001c11: DUP2
00001c12: MSTORE
00001c13: ADD
00001c14: MSTORE
00001c15: JUMP
00001c16: JUMPDEST
00001c17: SUB
00001c18: SWAP1
00001c19: LOG1
00001c1a: DUP1
00001c1b: RETURN
00001c1c: JUMPDEST
00001c1d: POP
00001c1e: CALLVALUE
00001c1f: PUSH2 0x0a01
00001c22: JUMPI
00001c23: DUP1
00001c24: PUSH1 0x03
00001c26: NOT
00001c27: CALLDATASIZE
00001c28: ADD
00001c29: SLT
00001c2a: PUSH2 0x0a01
00001c2d: JUMPI
00001c2e: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
00001c4f: PUSH1 0x20
00001c51: PUSH1 0x01
00001c53: PUSH1 0x01
00001c55: PUSH1 0xa0
00001c57: SHL
00001c58: SUB
00001c59: PUSH2 0x1c69
00001c5c: DUP2
00001c5d: PUSH1 0x33
00001c5f: SLOAD
00001c60: AND
00001c61: DUP3
00001c62: PUSH2 0x0a6d
00001c65: PUSH2 0x316e
00001c68: JUMP
00001c69: JUMPDEST
00001c6a: PUSH1 0x01
00001c6c: PUSH1 0xff
00001c6e: NOT
00001c6f: PUSH1 0x69
00001c71: SLOAD
00001c72: AND
00001c73: OR
00001c74: PUSH1 0x69
00001c76: SSTORE
00001c77: PUSH2 0x1c7e
00001c7a: PUSH2 0x316e
00001c7d: JUMP
00001c7e: JUMPDEST
00001c7f: PUSH1 0x40
00001c81: MLOAD
00001c82: SWAP2
00001c83: AND
00001c84: DUP2
00001c85: MSTORE
00001c86: LOG1
00001c87: DUP1
00001c88: RETURN
00001c89: JUMPDEST
00001c8a: POP
00001c8b: CALLVALUE
00001c8c: PUSH2 0x0a01
00001c8f: JUMPI
00001c90: PUSH1 0x40
00001c92: PUSH1 0x03
00001c94: NOT
00001c95: CALLDATASIZE
00001c96: ADD
00001c97: SLT
00001c98: PUSH2 0x0a01
00001c9b: JUMPI
00001c9c: PUSH2 0x1ca3
00001c9f: PUSH2 0x2635
00001ca2: JUMP
00001ca3: JUMPDEST
00001ca4: PUSH1 0x24
00001ca6: CALLDATALOAD
00001ca7: SWAP1
00001ca8: DUP2
00001ca9: ISZERO
00001caa: ISZERO
00001cab: DUP1
00001cac: SWAP3
00001cad: SUB
00001cae: PUSH2 0x09fd
00001cb1: JUMPI
00001cb2: PUSH32 0x0a4552f1105808db6a44587c9ef0a7c4064bf620b9d843b514ad7365bd52239a
00001cd3: SWAP2
00001cd4: PUSH1 0x40
00001cd6: SWAP2
00001cd7: PUSH1 0x01
00001cd9: PUSH1 0x01
00001cdb: PUSH1 0xa0
00001cdd: SHL
00001cde: SUB
00001cdf: SWAP1
00001ce0: PUSH2 0x1cf0
00001ce3: DUP3
00001ce4: PUSH1 0x33
00001ce6: SLOAD
00001ce7: AND
00001ce8: DUP4
00001ce9: PUSH2 0x0a6d
00001cec: PUSH2 0x316e
00001cef: JUMP
00001cf0: JUMPDEST
00001cf1: AND
00001cf2: SWAP1
00001cf3: DUP2
00001cf4: DUP6
00001cf5: MSTORE
00001cf6: PUSH1 0x6e
00001cf8: PUSH1 0x20
00001cfa: MSTORE
00001cfb: DUP3
00001cfc: DUP6
00001cfd: KECCAK256
00001cfe: PUSH1 0xff
00001d00: NOT
00001d01: DUP2
00001d02: SLOAD
00001d03: AND
00001d04: PUSH1 0xff
00001d06: DUP4
00001d07: AND
00001d08: OR
00001d09: SWAP1
00001d0a: SSTORE
00001d0b: DUP3
00001d0c: MLOAD
00001d0d: SWAP2
00001d0e: DUP3
00001d0f: MSTORE
00001d10: PUSH1 0x20
00001d12: DUP3
00001d13: ADD
00001d14: MSTORE
00001d15: LOG1
00001d16: DUP1
00001d17: RETURN
00001d18: JUMPDEST
00001d19: POP
00001d1a: CALLVALUE
00001d1b: PUSH2 0x0a01
00001d1e: JUMPI
00001d1f: PUSH1 0x20
00001d21: PUSH1 0x03
00001d23: NOT
00001d24: CALLDATASIZE
00001d25: ADD
00001d26: SLT
00001d27: PUSH2 0x0a01
00001d2a: JUMPI
00001d2b: PUSH1 0xff
00001d2d: PUSH1 0x40
00001d2f: PUSH1 0x20
00001d31: SWAP3
00001d32: PUSH1 0x01
00001d34: PUSH1 0x01
00001d36: PUSH1 0xa0
00001d38: SHL
00001d39: SUB
00001d3a: PUSH2 0x1d41
00001d3d: PUSH2 0x2635
00001d40: JUMP
00001d41: JUMPDEST
00001d42: AND
00001d43: DUP2
00001d44: MSTORE
00001d45: PUSH1 0x6e
00001d47: DUP5
00001d48: MSTORE
00001d49: KECCAK256
00001d4a: SLOAD
00001d4b: AND
00001d4c: PUSH1 0x40
00001d4e: MLOAD
00001d4f: SWAP1
00001d50: ISZERO
00001d51: ISZERO
00001d52: DUP2
00001d53: MSTORE
00001d54: RETURN
00001d55: JUMPDEST
00001d56: POP
00001d57: CALLVALUE
00001d58: PUSH2 0x0a01
00001d5b: JUMPI
00001d5c: DUP1
00001d5d: PUSH1 0x03
00001d5f: NOT
00001d60: CALLDATASIZE
00001d61: ADD
00001d62: SLT
00001d63: PUSH2 0x0a01
00001d66: JUMPI
00001d67: PUSH1 0x00
00001d69: PUSH1 0x33
00001d6b: SLOAD
00001d6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d81: NOT
00001d82: PUSH1 0x01
00001d84: PUSH1 0x01
00001d86: PUSH1 0xa0
00001d88: SHL
00001d89: SUB
00001d8a: SWAP2
00001d8b: PUSH2 0x1da1
00001d8e: DUP4
00001d8f: DUP3
00001d90: AND
00001d91: SWAP4
00001d92: PUSH2 0x1d99
00001d95: PUSH2 0x316e
00001d98: JUMP
00001d99: JUMPDEST
00001d9a: AND
00001d9b: DUP5
00001d9c: EQ
00001d9d: PUSH2 0x28ae
00001da0: JUMP
00001da1: JUMPDEST
00001da2: AND
00001da3: PUSH1 0x33
00001da5: SSTORE
00001da6: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001dc7: DUP3
00001dc8: DUP1
00001dc9: LOG3
00001dca: DUP1
00001dcb: RETURN
00001dcc: JUMPDEST
00001dcd: POP
00001dce: CALLVALUE
00001dcf: PUSH2 0x0a01
00001dd2: JUMPI
00001dd3: PUSH1 0x20
00001dd5: PUSH1 0x03
00001dd7: NOT
00001dd8: CALLDATASIZE
00001dd9: ADD
00001dda: SLT
00001ddb: PUSH2 0x0a01
00001dde: JUMPI
00001ddf: PUSH1 0x40
00001de1: PUSH1 0x20
00001de3: SWAP2
00001de4: PUSH1 0x01
00001de6: PUSH1 0x01
00001de8: PUSH1 0xa0
00001dea: SHL
00001deb: SUB
00001dec: PUSH2 0x1df3
00001def: PUSH2 0x2635
00001df2: JUMP
00001df3: JUMPDEST
00001df4: AND
00001df5: DUP2
00001df6: MSTORE
00001df7: PUSH1 0x6c
00001df9: DUP4
00001dfa: MSTORE
00001dfb: KECCAK256
00001dfc: SLOAD
00001dfd: PUSH1 0x40
00001dff: MLOAD
00001e00: SWAP1
00001e01: DUP2
00001e02: MSTORE
00001e03: RETURN
00001e04: JUMPDEST
00001e05: POP
00001e06: CALLVALUE
00001e07: PUSH2 0x0a01
00001e0a: JUMPI
00001e0b: PUSH1 0x20
00001e0d: PUSH1 0x03
00001e0f: NOT
00001e10: CALLDATASIZE
00001e11: ADD
00001e12: SLT
00001e13: PUSH2 0x0a01
00001e16: JUMPI
00001e17: PUSH1 0x40
00001e19: PUSH1 0x20
00001e1b: SWAP2
00001e1c: PUSH1 0x01
00001e1e: PUSH1 0x01
00001e20: PUSH1 0xa0
00001e22: SHL
00001e23: SUB
00001e24: PUSH2 0x1e2b
00001e27: PUSH2 0x2635
00001e2a: JUMP
00001e2b: JUMPDEST
00001e2c: AND
00001e2d: DUP2
00001e2e: MSTORE
00001e2f: PUSH1 0x6d
00001e31: DUP4
00001e32: MSTORE
00001e33: KECCAK256
00001e34: SLOAD
00001e35: PUSH1 0x40
00001e37: MLOAD
00001e38: SWAP1
00001e39: DUP2
00001e3a: MSTORE
00001e3b: RETURN
00001e3c: JUMPDEST
00001e3d: POP
00001e3e: CALLVALUE
00001e3f: PUSH2 0x0a01
00001e42: JUMPI
00001e43: DUP1
00001e44: PUSH1 0x03
00001e46: NOT
00001e47: CALLDATASIZE
00001e48: ADD
00001e49: SLT
00001e4a: PUSH2 0x0a01
00001e4d: JUMPI
00001e4e: PUSH1 0x20
00001e50: PUSH1 0xff
00001e52: PUSH1 0x69
00001e54: SLOAD
00001e55: AND
00001e56: PUSH1 0x40
00001e58: MLOAD
00001e59: SWAP1
00001e5a: ISZERO
00001e5b: ISZERO
00001e5c: DUP2
00001e5d: MSTORE
00001e5e: RETURN
00001e5f: JUMPDEST
00001e60: POP
00001e61: CALLVALUE
00001e62: PUSH2 0x0a01
00001e65: JUMPI
00001e66: DUP1
00001e67: PUSH1 0x03
00001e69: NOT
00001e6a: CALLDATASIZE
00001e6b: ADD
00001e6c: SLT
00001e6d: PUSH2 0x0a01
00001e70: JUMPI
00001e71: PUSH1 0x20
00001e73: PUSH1 0x68
00001e75: SLOAD
00001e76: PUSH1 0x40
00001e78: MLOAD
00001e79: SWAP1
00001e7a: DUP2
00001e7b: MSTORE
00001e7c: RETURN
00001e7d: JUMPDEST
00001e7e: POP
00001e7f: CALLVALUE
00001e80: PUSH2 0x0a01
00001e83: JUMPI
00001e84: PUSH1 0x20
00001e86: PUSH1 0x03
00001e88: NOT
00001e89: CALLDATASIZE
00001e8a: ADD
00001e8b: SLT
00001e8c: PUSH2 0x0a01
00001e8f: JUMPI
00001e90: PUSH1 0x20
00001e92: PUSH2 0x1e99
00001e95: PUSH2 0x2635
00001e98: JUMP
00001e99: JUMPDEST
00001e9a: PUSH1 0x01
00001e9c: PUSH1 0x01
00001e9e: PUSH1 0xa0
00001ea0: SHL
00001ea1: SUB
00001ea2: DUP1
00001ea3: PUSH1 0x65
00001ea5: SLOAD
00001ea6: AND
00001ea7: SWAP2
00001ea8: AND
00001ea9: EQ
00001eaa: PUSH1 0x40
00001eac: MLOAD
00001ead: SWAP1
00001eae: DUP2
00001eaf: MSTORE
00001eb0: RETURN
00001eb1: JUMPDEST
00001eb2: POP
00001eb3: CALLVALUE
00001eb4: PUSH2 0x0a01
00001eb7: JUMPI
00001eb8: PUSH1 0x20
00001eba: DUP1
00001ebb: PUSH1 0x03
00001ebd: NOT
00001ebe: CALLDATASIZE
00001ebf: ADD
00001ec0: SLT
00001ec1: PUSH2 0x05ee
00001ec4: JUMPI
00001ec5: PUSH1 0x04
00001ec7: CALLDATALOAD
00001ec8: PUSH8 0xffffffffffffffff
00001ed1: DUP2
00001ed2: GT
00001ed3: PUSH2 0x09fd
00001ed6: JUMPI
00001ed7: PUSH2 0x1ee4
00001eda: SWAP1
00001edb: CALLDATASIZE
00001edc: SWAP1
00001edd: PUSH1 0x04
00001edf: ADD
00001ee0: PUSH2 0x27bc
00001ee3: JUMP
00001ee4: JUMPDEST
00001ee5: SWAP1
00001ee6: PUSH1 0x01
00001ee8: PUSH1 0x01
00001eea: PUSH1 0xa0
00001eec: SHL
00001eed: SUB
00001eee: SWAP1
00001eef: PUSH2 0x1eff
00001ef2: DUP3
00001ef3: PUSH1 0x33
00001ef5: SLOAD
00001ef6: AND
00001ef7: DUP4
00001ef8: PUSH2 0x0a6d
00001efb: PUSH2 0x316e
00001efe: JUMP
00001eff: JUMPDEST
00001f00: DUP4
00001f01: JUMPDEST
00001f02: DUP4
00001f03: MLOAD
00001f04: DUP2
00001f05: LT
00001f06: ISZERO
00001f07: PUSH2 0x1fd3
00001f0a: JUMPI
00001f0b: DUP1
00001f0c: DUP4
00001f0d: PUSH2 0x1f18
00001f10: PUSH1 0x24
00001f12: SWAP4
00001f13: DUP8
00001f14: PUSH2 0x3089
00001f17: JUMP
00001f18: JUMPDEST
00001f19: MLOAD
00001f1a: AND
00001f1b: DUP7
00001f1c: MSTORE
00001f1d: PUSH1 0x6e
00001f1f: DUP4
00001f20: MSTORE
00001f21: PUSH2 0x1f30
00001f24: PUSH1 0xff
00001f26: PUSH1 0x40
00001f28: DUP9
00001f29: KECCAK256
00001f2a: SLOAD
00001f2b: AND
00001f2c: PUSH2 0x2999
00001f2f: JUMP
00001f30: JUMPDEST
00001f31: DUP3
00001f32: DUP5
00001f33: PUSH2 0x1f3c
00001f36: DUP4
00001f37: DUP9
00001f38: PUSH2 0x3089
00001f3b: JUMP
00001f3c: JUMPDEST
00001f3d: MLOAD
00001f3e: AND
00001f3f: PUSH1 0x40
00001f41: MLOAD
00001f42: SWAP4
00001f43: DUP5
00001f44: DUP1
00001f45: SWAP3
00001f46: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00001f67: DUP3
00001f68: MSTORE
00001f69: ADDRESS
00001f6a: PUSH1 0x04
00001f6c: DUP4
00001f6d: ADD
00001f6e: MSTORE
00001f6f: GAS
00001f70: STATICCALL
00001f71: DUP1
00001f72: ISZERO
00001f73: PUSH2 0x1ab5
00001f76: JUMPI
00001f77: DUP7
00001f78: SWAP1
00001f79: PUSH2 0x1fa4
00001f7c: JUMPI
00001f7d: JUMPDEST
00001f7e: PUSH2 0x1f9f
00001f81: SWAP3
00001f82: POP
00001f83: DUP5
00001f84: PUSH2 0x1f8d
00001f87: DUP4
00001f88: DUP9
00001f89: PUSH2 0x3089
00001f8c: JUMP
00001f8d: JUMPDEST
00001f8e: MLOAD
00001f8f: AND
00001f90: DUP8
00001f91: MSTORE
00001f92: PUSH1 0x6c
00001f94: DUP5
00001f95: MSTORE
00001f96: PUSH1 0x40
00001f98: DUP8
00001f99: KECCAK256
00001f9a: SSTORE
00001f9b: PUSH2 0x305c
00001f9e: JUMP
00001f9f: JUMPDEST
00001fa0: PUSH2 0x1f01
00001fa3: JUMP
00001fa4: JUMPDEST
00001fa5: POP
00001fa6: DUP3
00001fa7: DUP3
00001fa8: DUP2
00001fa9: RETURNDATASIZE
00001faa: DUP4
00001fab: GT
00001fac: PUSH2 0x1fcc
00001faf: JUMPI
00001fb0: JUMPDEST
00001fb1: PUSH2 0x1fba
00001fb4: DUP2
00001fb5: DUP4
00001fb6: PUSH2 0x2799
00001fb9: JUMP
00001fba: JUMPDEST
00001fbb: DUP2
00001fbc: ADD
00001fbd: SUB
00001fbe: SLT
00001fbf: PUSH2 0x05fd
00001fc2: JUMPI
00001fc3: PUSH2 0x1f9f
00001fc6: SWAP2
00001fc7: MLOAD
00001fc8: PUSH2 0x1f7d
00001fcb: JUMP
00001fcc: JUMPDEST
00001fcd: POP
00001fce: RETURNDATASIZE
00001fcf: PUSH2 0x1fb0
00001fd2: JUMP
00001fd3: JUMPDEST
00001fd4: PUSH1 0x40
00001fd6: MLOAD
00001fd7: DUP3
00001fd8: DUP2
00001fd9: MSTORE
00001fda: DUP6
00001fdb: SWAP1
00001fdc: PUSH32 0x5a980ed3bb4dd09162988674fd35c7002fa70e44dd03d2942ac38c074b1a638e
00001ffd: SWAP1
00001ffe: DUP1
00001fff: PUSH2 0x1c16
00002002: DUP2
00002003: DUP8
00002004: ADD
00002005: DUP10
00002006: PUSH2 0x30b3
00002009: JUMP
0000200a: JUMPDEST
0000200b: POP
0000200c: CALLVALUE
0000200d: PUSH2 0x0a01
00002010: JUMPI
00002011: DUP1
00002012: PUSH1 0x03
00002014: NOT
00002015: CALLDATASIZE
00002016: ADD
00002017: SLT
00002018: PUSH2 0x0a01
0000201b: JUMPI
0000201c: PUSH2 0x2068
0000201f: PUSH1 0x40
00002021: MLOAD
00002022: PUSH2 0x202a
00002025: DUP2
00002026: PUSH2 0x2744
00002029: JUMP
0000202a: JUMPDEST
0000202b: PUSH1 0x05
0000202d: DUP2
0000202e: MSTORE
0000202f: PUSH32 0x322e302e31000000000000000000000000000000000000000000000000000000
00002050: PUSH1 0x20
00002052: DUP3
00002053: ADD
00002054: MSTORE
00002055: PUSH1 0x40
00002057: MLOAD
00002058: SWAP2
00002059: DUP3
0000205a: SWAP2
0000205b: PUSH1 0x20
0000205d: DUP4
0000205e: MSTORE
0000205f: PUSH1 0x20
00002061: DUP4
00002062: ADD
00002063: SWAP1
00002064: PUSH2 0x26b7
00002067: JUMP
00002068: JUMPDEST
00002069: SUB
0000206a: SWAP1
0000206b: RETURN
0000206c: JUMPDEST
0000206d: POP
0000206e: CALLVALUE
0000206f: PUSH2 0x0a01
00002072: JUMPI
00002073: DUP1
00002074: PUSH1 0x03
00002076: NOT
00002077: CALLDATASIZE
00002078: ADD
00002079: SLT
0000207a: PUSH2 0x0a01
0000207d: JUMPI
0000207e: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
0000209f: PUSH1 0x20
000020a1: PUSH1 0x01
000020a3: PUSH1 0x01
000020a5: PUSH1 0xa0
000020a7: SHL
000020a8: SUB
000020a9: PUSH2 0x20b9
000020ac: DUP2
000020ad: PUSH1 0x33
000020af: SLOAD
000020b0: AND
000020b1: DUP3
000020b2: PUSH2 0x0a6d
000020b5: PUSH2 0x316e
000020b8: JUMP
000020b9: JUMPDEST
000020ba: PUSH1 0xff
000020bc: NOT
000020bd: PUSH1 0x69
000020bf: SLOAD
000020c0: AND
000020c1: PUSH1 0x69
000020c3: SSTORE
000020c4: PUSH2 0x1c7e
000020c7: PUSH2 0x316e
000020ca: JUMP
000020cb: JUMPDEST
000020cc: POP
000020cd: CALLVALUE
000020ce: PUSH2 0x0a01
000020d1: JUMPI
000020d2: PUSH1 0xc0
000020d4: PUSH1 0x03
000020d6: NOT
000020d7: CALLDATASIZE
000020d8: ADD
000020d9: SLT
000020da: PUSH2 0x0a01
000020dd: JUMPI
000020de: PUSH1 0x04
000020e0: CALLDATALOAD
000020e1: PUSH1 0x24
000020e3: CALLDATALOAD
000020e4: PUSH2 0x20eb
000020e7: PUSH2 0x261f
000020ea: JUMP
000020eb: JUMPDEST
000020ec: SWAP1
000020ed: PUSH32 0xaeef64b7687b985665b6620c7fa271b6f051a3fbe2bfc366fb9c964602eb6d26
0000210e: PUSH1 0x84
00002110: CALLDATALOAD
00002111: PUSH2 0x2118
00002114: PUSH2 0x2661
00002117: JUMP
00002118: JUMPDEST
00002119: PUSH2 0x21fd
0000211c: PUSH2 0x21ce
0000211f: DUP8
00002120: PUSH1 0x01
00002122: PUSH1 0x01
00002124: PUSH1 0xa0
00002126: SHL
00002127: SUB
00002128: SWAP5
00002129: PUSH2 0x2137
0000212c: DUP7
0000212d: PUSH1 0x67
0000212f: SLOAD
00002130: AND
00002131: CALLER
00002132: EQ
00002133: PUSH2 0x2b87
00002136: JUMP
00002137: JUMPDEST
00002138: PUSH2 0x2146
0000213b: PUSH1 0xff
0000213d: PUSH1 0x69
0000213f: SLOAD
00002140: AND
00002141: ISZERO
00002142: PUSH2 0x294e
00002145: JUMP
00002146: JUMPDEST
00002147: DUP8
00002148: DUP12
00002149: MSTORE
0000214a: PUSH1 0x6b
0000214c: PUSH1 0x20
0000214e: MSTORE
0000214f: PUSH2 0x2168
00002152: PUSH1 0xff
00002154: PUSH1 0x40
00002156: DUP14
00002157: KECCAK256
00002158: SLOAD
00002159: AND
0000215a: PUSH2 0x2162
0000215d: DUP2
0000215e: PUSH2 0x282b
00002161: JUMP
00002162: JUMPDEST
00002163: ISZERO
00002164: PUSH2 0x2d4f
00002167: JUMP
00002168: JUMPDEST
00002169: DUP11
0000216a: PUSH2 0x2182
0000216d: DUP3
0000216e: PUSH1 0x40
00002170: DUP10
00002171: DUP14
00002172: AND
00002173: SWAP4
00002174: DUP5
00002175: DUP2
00002176: MSTORE
00002177: PUSH1 0x6c
00002179: PUSH1 0x20
0000217b: MSTORE
0000217c: KECCAK256
0000217d: SLOAD
0000217e: PUSH2 0x2c21
00002181: JUMP
00002182: JUMPDEST
00002183: SWAP1
00002184: DUP13
00002185: MSTORE
00002186: PUSH1 0x6c
00002188: PUSH1 0x20
0000218a: MSTORE
0000218b: PUSH1 0x40
0000218d: DUP13
0000218e: KECCAK256
0000218f: SSTORE
00002190: DUP8
00002191: DUP12
00002192: MSTORE
00002193: PUSH1 0x6b
00002195: PUSH1 0x20
00002197: MSTORE
00002198: PUSH1 0x40
0000219a: DUP12
0000219b: KECCAK256
0000219c: PUSH1 0x01
0000219e: PUSH1 0xff
000021a0: NOT
000021a1: DUP3
000021a2: SLOAD
000021a3: AND
000021a4: OR
000021a5: SWAP1
000021a6: SSTORE
000021a7: PUSH2 0x21b5
000021aa: DUP3
000021ab: DUP8
000021ac: PUSH1 0x67
000021ae: SLOAD
000021af: AND
000021b0: DUP12
000021b1: PUSH2 0x2c44
000021b4: JUMP
000021b5: JUMPDEST
000021b6: PUSH2 0x21c9
000021b9: PUSH2 0x21c2
000021bc: DUP4
000021bd: DUP4
000021be: PUSH2 0x2c21
000021c1: JUMP
000021c2: JUMPDEST
000021c3: DUP7
000021c4: DUP12
000021c5: PUSH2 0x2c44
000021c8: JUMP
000021c9: JUMPDEST
000021ca: PUSH2 0x2c21
000021cd: JUMP
000021ce: JUMPDEST
000021cf: SWAP6
000021d0: PUSH1 0x40
000021d2: MLOAD
000021d3: SWAP4
000021d4: DUP5
000021d5: SWAP4
000021d6: AND
000021d7: SWAP8
000021d8: PUSH1 0x44
000021da: CALLDATALOAD
000021db: SWAP8
000021dc: DUP5
000021dd: SWAP2
000021de: PUSH1 0x40
000021e0: SWAP2
000021e1: SWAP5
000021e2: SWAP4
000021e3: PUSH1 0x01
000021e5: PUSH1 0x01
000021e7: PUSH1 0xa0
000021e9: SHL
000021ea: SUB
000021eb: SWAP2
000021ec: PUSH1 0x60
000021ee: DUP6
000021ef: ADD
000021f0: SWAP7
000021f1: DUP6
000021f2: MSTORE
000021f3: PUSH1 0x20
000021f5: DUP6
000021f6: ADD
000021f7: MSTORE
000021f8: AND
000021f9: SWAP2
000021fa: ADD
000021fb: MSTORE
000021fc: JUMP
000021fd: JUMPDEST
000021fe: SUB
000021ff: SWAP1
00002200: LOG4
00002201: DUP1
00002202: RETURN
00002203: JUMPDEST
00002204: POP
00002205: CALLVALUE
00002206: PUSH2 0x0a01
00002209: JUMPI
0000220a: PUSH1 0xa0
0000220c: PUSH1 0x03
0000220e: NOT
0000220f: CALLDATASIZE
00002210: ADD
00002211: SLT
00002212: PUSH2 0x0a01
00002215: JUMPI
00002216: PUSH2 0x221d
00002219: PUSH2 0x2635
0000221c: JUMP
0000221d: JUMPDEST
0000221e: PUSH2 0x2225
00002221: PUSH2 0x264b
00002224: JUMP
00002225: JUMPDEST
00002226: SWAP1
00002227: PUSH2 0x222e
0000222a: PUSH2 0x2604
0000222d: JUMP
0000222e: JUMPDEST
0000222f: SWAP2
00002230: PUSH2 0x2237
00002233: PUSH2 0x261f
00002236: JUMP
00002237: JUMPDEST
00002238: SWAP1
00002239: PUSH2 0x2240
0000223c: PUSH2 0x2677
0000223f: JUMP
00002240: JUMPDEST
00002241: SWAP4
00002242: DUP6
00002243: SLOAD
00002244: SWAP5
00002245: PUSH1 0xff
00002247: DUP7
00002248: PUSH1 0x08
0000224a: SHR
0000224b: AND
0000224c: DUP1
0000224d: PUSH1 0x00
0000224f: EQ
00002250: PUSH2 0x23d9
00002253: JUMPI
00002254: ADDRESS
00002255: EXTCODESIZE
00002256: ISZERO
00002257: JUMPDEST
00002258: ISZERO
00002259: PUSH2 0x236f
0000225c: JUMPI
0000225d: ISZERO
0000225e: SWAP6
0000225f: DUP7
00002260: PUSH2 0x2341
00002263: JUMPI
00002264: JUMPDEST
00002265: POP
00002266: PUSH2 0x2290
00002269: PUSH1 0xff
0000226b: DUP9
0000226c: SLOAD
0000226d: PUSH1 0x08
0000226f: SHR
00002270: AND
00002271: PUSH2 0x2279
00002274: DUP2
00002275: PUSH2 0x30fd
00002278: JUMP
00002279: JUMPDEST
0000227a: PUSH2 0x2282
0000227d: DUP2
0000227e: PUSH2 0x30fd
00002281: JUMP
00002282: JUMPDEST
00002283: PUSH2 0x228b
00002286: DUP2
00002287: PUSH2 0x30fd
0000228a: JUMP
0000228b: JUMPDEST
0000228c: PUSH2 0x30fd
0000228f: JUMP
00002290: JUMPDEST
00002291: PUSH2 0x22a0
00002294: PUSH2 0x229b
00002297: PUSH2 0x316e
0000229a: JUMP
0000229b: JUMPDEST
0000229c: PUSH2 0x28f9
0000229f: JUMP
000022a0: JUMPDEST
000022a1: PUSH1 0x01
000022a3: PUSH1 0x01
000022a5: PUSH1 0xa0
000022a7: SHL
000022a8: SUB
000022a9: DUP1
000022aa: SWAP6
000022ab: DUP2
000022ac: DUP1
000022ad: SWAP5
000022ae: DUP2
000022af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022c4: NOT
000022c5: SWAP8
000022c6: AND
000022c7: DUP8
000022c8: PUSH1 0x65
000022ca: SLOAD
000022cb: AND
000022cc: OR
000022cd: PUSH1 0x65
000022cf: SSTORE
000022d0: AND
000022d1: DUP6
000022d2: PUSH1 0x66
000022d4: SLOAD
000022d5: AND
000022d6: OR
000022d7: PUSH1 0x66
000022d9: SSTORE
000022da: AND
000022db: DUP4
000022dc: PUSH1 0x67
000022de: SLOAD
000022df: AND
000022e0: OR
000022e1: PUSH1 0x67
000022e3: SSTORE
000022e4: AND
000022e5: SWAP1
000022e6: PUSH1 0x6f
000022e8: SLOAD
000022e9: AND
000022ea: OR
000022eb: PUSH1 0x6f
000022ed: SSTORE
000022ee: AND
000022ef: DUP1
000022f0: PUSH2 0x2325
000022f3: JUMPI
000022f4: JUMPDEST
000022f5: POP
000022f6: PUSH2 0x22fc
000022f9: JUMPI
000022fa: DUP1
000022fb: RETURN
000022fc: JUMPDEST
000022fd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
0000231e: DUP2
0000231f: SLOAD
00002320: AND
00002321: DUP2
00002322: SSTORE
00002323: DUP1
00002324: RETURN
00002325: JUMPDEST
00002326: DUP3
00002327: MSTORE
00002328: PUSH1 0x6e
0000232a: PUSH1 0x20
0000232c: MSTORE
0000232d: PUSH1 0x40
0000232f: DUP3
00002330: KECCAK256
00002331: PUSH1 0x01
00002333: PUSH1 0xff
00002335: NOT
00002336: DUP3
00002337: SLOAD
00002338: AND
00002339: OR
0000233a: SWAP1
0000233b: SSTORE
0000233c: CODESIZE
0000233d: PUSH2 0x22f4
00002340: JUMP
00002341: JUMPDEST
00002342: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
00002363: AND
00002364: PUSH2 0x0101
00002367: OR
00002368: DUP8
00002369: SSTORE
0000236a: CODESIZE
0000236b: PUSH2 0x2264
0000236e: JUMP
0000236f: JUMPDEST
00002370: PUSH1 0x84
00002372: PUSH1 0x40
00002374: MLOAD
00002375: PUSH3 0x461bcd
00002379: PUSH1 0xe5
0000237b: SHL
0000237c: DUP2
0000237d: MSTORE
0000237e: PUSH1 0x20
00002380: PUSH1 0x04
00002382: DUP3
00002383: ADD
00002384: MSTORE
00002385: PUSH1 0x2e
00002387: PUSH1 0x24
00002389: DUP3
0000238a: ADD
0000238b: MSTORE
0000238c: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
000023ad: PUSH1 0x44
000023af: DUP3
000023b0: ADD
000023b1: MSTORE
000023b2: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
000023d3: PUSH1 0x64
000023d5: DUP3
000023d6: ADD
000023d7: MSTORE
000023d8: REVERT
000023d9: JUMPDEST
000023da: PUSH1 0xff
000023dc: DUP8
000023dd: AND
000023de: ISZERO
000023df: PUSH2 0x2257
000023e2: JUMP
000023e3: JUMPDEST
000023e4: POP
000023e5: CALLVALUE
000023e6: PUSH2 0x0a01
000023e9: JUMPI
000023ea: PUSH1 0xc0
000023ec: PUSH1 0x03
000023ee: NOT
000023ef: CALLDATASIZE
000023f0: ADD
000023f1: SLT
000023f2: PUSH2 0x0a01
000023f5: JUMPI
000023f6: PUSH1 0x24
000023f8: CALLDATALOAD
000023f9: PUSH2 0x2400
000023fc: PUSH2 0x2604
000023ff: JUMP
00002400: JUMPDEST
00002401: PUSH2 0x2408
00002404: PUSH2 0x261f
00002407: JUMP
00002408: JUMPDEST
00002409: PUSH2 0x2417
0000240c: PUSH1 0xff
0000240e: PUSH1 0x69
00002410: SLOAD
00002411: AND
00002412: ISZERO
00002413: PUSH2 0x294e
00002416: JUMP
00002417: JUMPDEST
00002418: PUSH2 0x241f
0000241b: PUSH2 0x316e
0000241e: JUMP
0000241f: JUMPDEST
00002420: SWAP2
00002421: DUP5
00002422: PUSH1 0x40
00002424: MLOAD
00002425: SWAP4
00002426: PUSH1 0x20
00002428: SWAP5
00002429: PUSH2 0x246b
0000242c: DUP2
0000242d: PUSH2 0x0322
00002430: DUP9
00002431: DUP3
00002432: ADD
00002433: SWAP5
00002434: CHAINID
00002435: SWAP1
00002436: ADDRESS
00002437: DUP13
00002438: DUP9
00002439: SWAP3
0000243a: PUSH1 0x68
0000243c: SWAP5
0000243d: SWAP3
0000243e: SWAP2
0000243f: DUP5
00002440: MSTORE
00002441: PUSH12 0xffffffffffffffffffffffff
0000244e: NOT
0000244f: DUP1
00002450: SWAP3
00002451: PUSH1 0x60
00002453: SHL
00002454: AND
00002455: PUSH1 0x20
00002457: DUP6
00002458: ADD
00002459: MSTORE
0000245a: PUSH1 0x60
0000245c: SHL
0000245d: AND
0000245e: PUSH1 0x34
00002460: DUP4
00002461: ADD
00002462: MSTORE
00002463: PUSH1 0x48
00002465: DUP3
00002466: ADD
00002467: MSTORE
00002468: ADD
00002469: SWAP1
0000246a: JUMP
0000246b: JUMPDEST
0000246c: MLOAD
0000246d: SWAP1
0000246e: KECCAK256
0000246f: DUP1
00002470: DUP3
00002471: MSTORE
00002472: PUSH1 0x6b
00002474: DUP6
00002475: MSTORE
00002476: PUSH2 0x248b
00002479: PUSH1 0x01
0000247b: PUSH1 0xff
0000247d: PUSH1 0x40
0000247f: DUP6
00002480: KECCAK256
00002481: SLOAD
00002482: AND
00002483: PUSH2 0x0351
00002486: DUP2
00002487: PUSH2 0x282b
0000248a: JUMP
0000248b: JUMPDEST
0000248c: DUP1
0000248d: DUP3
0000248e: MSTORE
0000248f: PUSH1 0x6b
00002491: DUP6
00002492: MSTORE
00002493: PUSH1 0x40
00002495: DUP3
00002496: KECCAK256
00002497: PUSH1 0x02
00002499: PUSH1 0xff
0000249b: NOT
0000249c: DUP3
0000249d: SLOAD
0000249e: AND
0000249f: OR
000024a0: SWAP1
000024a1: SSTORE
000024a2: PUSH32 0x7265766572744275726e2875696e743235362c62797465733332290000000000
000024c3: DUP6
000024c4: PUSH1 0x40
000024c6: MLOAD
000024c7: PUSH2 0x24cf
000024ca: DUP2
000024cb: PUSH2 0x2744
000024ce: JUMP
000024cf: JUMPDEST
000024d0: PUSH1 0x1b
000024d2: DUP2
000024d3: MSTORE
000024d4: ADD
000024d5: MSTORE
000024d6: PUSH1 0x40
000024d8: MLOAD
000024d9: SWAP1
000024da: PUSH32 0xf70519ae00000000000000000000000000000000000000000000000000000000
000024fb: DUP7
000024fc: DUP4
000024fd: ADD
000024fe: MSTORE
000024ff: PUSH1 0x04
00002501: CALLDATALOAD
00002502: PUSH1 0x24
00002504: DUP4
00002505: ADD
00002506: MSTORE
00002507: PUSH1 0x44
00002509: DUP3
0000250a: ADD
0000250b: MSTORE
0000250c: PUSH1 0x44
0000250e: DUP2
0000250f: MSTORE
00002510: PUSH2 0x2518
00002513: DUP2
00002514: PUSH2 0x2760
00002517: JUMP
00002518: JUMPDEST
00002519: PUSH1 0x01
0000251b: PUSH1 0x01
0000251d: PUSH1 0xa0
0000251f: SHL
00002520: SUB
00002521: SWAP4
00002522: DUP5
00002523: PUSH1 0x67
00002525: SLOAD
00002526: AND
00002527: SWAP1
00002528: DUP2
00002529: EXTCODESIZE
0000252a: ISZERO
0000252b: PUSH2 0x1ac0
0000252e: JUMPI
0000252f: DUP4
00002530: PUSH2 0x2554
00002533: SWAP6
00002534: PUSH1 0x40
00002536: MLOAD
00002537: SWAP7
00002538: DUP8
00002539: SWAP6
0000253a: DUP7
0000253b: SWAP5
0000253c: DUP6
0000253d: SWAP4
0000253e: PUSH4 0x3675e4e1
00002543: PUSH1 0xe1
00002545: SHL
00002546: DUP6
00002547: MSTORE
00002548: PUSH1 0x84
0000254a: CALLDATALOAD
0000254b: SWAP3
0000254c: PUSH1 0x04
0000254e: DUP7
0000254f: ADD
00002550: PUSH2 0x3027
00002553: JUMP
00002554: JUMPDEST
00002555: SUB
00002556: SWAP3
00002557: GAS
00002558: CALL
00002559: DUP1
0000255a: ISZERO
0000255b: PUSH2 0x25f9
0000255e: JUMPI
0000255f: PUSH2 0x25c4
00002562: JUMPI
00002563: JUMPDEST
00002564: POP
00002565: SWAP1
00002566: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5
00002587: SWAP2
00002588: PUSH2 0x258f
0000258b: PUSH2 0x316e
0000258e: JUMP
0000258f: JUMPDEST
00002590: AND
00002591: SWAP3
00002592: PUSH1 0x40
00002594: MLOAD
00002595: SWAP4
00002596: DUP2
00002597: PUSH32 0x40590cc12db0488520ce425059f83f8caed91bdf98de5ff829dc57c63843161b
000025b8: DUP8
000025b9: DUP1
000025ba: LOG3
000025bb: DUP4
000025bc: MSTORE
000025bd: PUSH1 0xa4
000025bf: CALLDATALOAD
000025c0: SWAP3
000025c1: LOG2
000025c2: DUP1
000025c3: RETURN
000025c4: JUMPDEST
000025c5: SWAP4
000025c6: PUSH2 0x25f1
000025c9: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5
000025ea: SWAP4
000025eb: SWAP3
000025ec: SWAP6
000025ed: PUSH2 0x26f7
000025f0: JUMP
000025f1: JUMPDEST
000025f2: SWAP4
000025f3: SWAP1
000025f4: SWAP2
000025f5: PUSH2 0x2563
000025f8: JUMP
000025f9: JUMPDEST
000025fa: PUSH1 0x40
000025fc: MLOAD
000025fd: RETURNDATASIZE
000025fe: DUP8
000025ff: DUP3
00002600: RETURNDATACOPY
00002601: RETURNDATASIZE
00002602: SWAP1
00002603: REVERT
00002604: JUMPDEST
00002605: PUSH1 0x44
00002607: CALLDATALOAD
00002608: SWAP1
00002609: PUSH1 0x01
0000260b: PUSH1 0x01
0000260d: PUSH1 0xa0
0000260f: SHL
00002610: SUB
00002611: DUP3
00002612: AND
00002613: DUP3
00002614: SUB
00002615: PUSH2 0x261a
00002618: JUMPI
00002619: JUMP
0000261a: JUMPDEST
0000261b: PUSH1 0x00
0000261d: DUP1
0000261e: REVERT
0000261f: JUMPDEST
00002620: PUSH1 0x64
00002622: CALLDATALOAD
00002623: SWAP1
00002624: PUSH1 0x01
00002626: PUSH1 0x01
00002628: PUSH1 0xa0
0000262a: SHL
0000262b: SUB
0000262c: DUP3
0000262d: AND
0000262e: DUP3
0000262f: SUB
00002630: PUSH2 0x261a
00002633: JUMPI
00002634: JUMP
00002635: JUMPDEST
00002636: PUSH1 0x04
00002638: CALLDATALOAD
00002639: SWAP1
0000263a: PUSH1 0x01
0000263c: PUSH1 0x01
0000263e: PUSH1 0xa0
00002640: SHL
00002641: SUB
00002642: DUP3
00002643: AND
00002644: DUP3
00002645: SUB
00002646: PUSH2 0x261a
00002649: JUMPI
0000264a: JUMP
0000264b: JUMPDEST
0000264c: PUSH1 0x24
0000264e: CALLDATALOAD
0000264f: SWAP1
00002650: PUSH1 0x01
00002652: PUSH1 0x01
00002654: PUSH1 0xa0
00002656: SHL
00002657: SUB
00002658: DUP3
00002659: AND
0000265a: DUP3
0000265b: SUB
0000265c: PUSH2 0x261a
0000265f: JUMPI
00002660: JUMP
00002661: JUMPDEST
00002662: PUSH1 0xa4
00002664: CALLDATALOAD
00002665: SWAP1
00002666: PUSH1 0x01
00002668: PUSH1 0x01
0000266a: PUSH1 0xa0
0000266c: SHL
0000266d: SUB
0000266e: DUP3
0000266f: AND
00002670: DUP3
00002671: SUB
00002672: PUSH2 0x261a
00002675: JUMPI
00002676: JUMP
00002677: JUMPDEST
00002678: PUSH1 0x84
0000267a: CALLDATALOAD
0000267b: SWAP1
0000267c: PUSH1 0x01
0000267e: PUSH1 0x01
00002680: PUSH1 0xa0
00002682: SHL
00002683: SUB
00002684: DUP3
00002685: AND
00002686: DUP3
00002687: SUB
00002688: PUSH2 0x261a
0000268b: JUMPI
0000268c: JUMP
0000268d: JUMPDEST
0000268e: PUSH1 0xc4
00002690: CALLDATALOAD
00002691: SWAP1
00002692: PUSH1 0x01
00002694: PUSH1 0x01
00002696: PUSH1 0xa0
00002698: SHL
00002699: SUB
0000269a: DUP3
0000269b: AND
0000269c: DUP3
0000269d: SUB
0000269e: PUSH2 0x261a
000026a1: JUMPI
000026a2: JUMP
000026a3: JUMPDEST
000026a4: CALLDATALOAD
000026a5: SWAP1
000026a6: PUSH1 0x01
000026a8: PUSH1 0x01
000026aa: PUSH1 0xa0
000026ac: SHL
000026ad: SUB
000026ae: DUP3
000026af: AND
000026b0: DUP3
000026b1: SUB
000026b2: PUSH2 0x261a
000026b5: JUMPI
000026b6: JUMP
000026b7: JUMPDEST
000026b8: SWAP2
000026b9: SWAP1
000026ba: DUP3
000026bb: MLOAD
000026bc: SWAP3
000026bd: DUP4
000026be: DUP3
000026bf: MSTORE
000026c0: PUSH1 0x00
000026c2: JUMPDEST
000026c3: DUP5
000026c4: DUP2
000026c5: LT
000026c6: PUSH2 0x26e3
000026c9: JUMPI
000026ca: POP
000026cb: POP
000026cc: PUSH1 0x1f
000026ce: NOT
000026cf: PUSH1 0x1f
000026d1: DUP5
000026d2: PUSH1 0x00
000026d4: PUSH1 0x20
000026d6: DUP1
000026d7: SWAP7
000026d8: SWAP8
000026d9: DUP7
000026da: ADD
000026db: ADD
000026dc: MSTORE
000026dd: ADD
000026de: AND
000026df: ADD
000026e0: ADD
000026e1: SWAP1
000026e2: JUMP
000026e3: JUMPDEST
000026e4: PUSH1 0x20
000026e6: DUP2
000026e7: DUP4
000026e8: ADD
000026e9: DUP2
000026ea: ADD
000026eb: MLOAD
000026ec: DUP5
000026ed: DUP4
000026ee: ADD
000026ef: DUP3
000026f0: ADD
000026f1: MSTORE
000026f2: ADD
000026f3: PUSH2 0x26c2
000026f6: JUMP
000026f7: JUMPDEST
000026f8: PUSH8 0xffffffffffffffff
00002701: DUP2
00002702: GT
00002703: PUSH2 0x0860
00002706: JUMPI
00002707: PUSH1 0x40
00002709: MSTORE
0000270a: JUMP
0000270b: JUMPDEST
0000270c: PUSH1 0xa0
0000270e: DUP2
0000270f: ADD
00002710: SWAP1
00002711: DUP2
00002712: LT
00002713: PUSH8 0xffffffffffffffff
0000271c: DUP3
0000271d: GT
0000271e: OR
0000271f: PUSH2 0x0860
00002722: JUMPI
00002723: PUSH1 0x40
00002725: MSTORE
00002726: JUMP
00002727: JUMPDEST
00002728: PUSH2 0x01a0
0000272b: DUP2
0000272c: ADD
0000272d: SWAP1
0000272e: DUP2
0000272f: LT
00002730: PUSH8 0xffffffffffffffff
00002739: DUP3
0000273a: GT
0000273b: OR
0000273c: PUSH2 0x0860
0000273f: JUMPI
00002740: PUSH1 0x40
00002742: MSTORE
00002743: JUMP
00002744: JUMPDEST
00002745: PUSH1 0x40
00002747: DUP2
00002748: ADD
00002749: SWAP1
0000274a: DUP2
0000274b: LT
0000274c: PUSH8 0xffffffffffffffff
00002755: DUP3
00002756: GT
00002757: OR
00002758: PUSH2 0x0860
0000275b: JUMPI
0000275c: PUSH1 0x40
0000275e: MSTORE
0000275f: JUMP
00002760: JUMPDEST
00002761: PUSH1 0x80
00002763: DUP2
00002764: ADD
00002765: SWAP1
00002766: DUP2
00002767: LT
00002768: PUSH8 0xffffffffffffffff
00002771: DUP3
00002772: GT
00002773: OR
00002774: PUSH2 0x0860
00002777: JUMPI
00002778: PUSH1 0x40
0000277a: MSTORE
0000277b: JUMP
0000277c: JUMPDEST
0000277d: PUSH2 0x0120
00002780: DUP2
00002781: ADD
00002782: SWAP1
00002783: DUP2
00002784: LT
00002785: PUSH8 0xffffffffffffffff
0000278e: DUP3
0000278f: GT
00002790: OR
00002791: PUSH2 0x0860
00002794: JUMPI
00002795: PUSH1 0x40
00002797: MSTORE
00002798: JUMP
00002799: JUMPDEST
0000279a: SWAP1
0000279b: PUSH1 0x1f
0000279d: PUSH1 0x1f
0000279f: NOT
000027a0: SWAP2
000027a1: ADD
000027a2: AND
000027a3: DUP2
000027a4: ADD
000027a5: SWAP1
000027a6: DUP2
000027a7: LT
000027a8: PUSH8 0xffffffffffffffff
000027b1: DUP3
000027b2: GT
000027b3: OR
000027b4: PUSH2 0x0860
000027b7: JUMPI
000027b8: PUSH1 0x40
000027ba: MSTORE
000027bb: JUMP
000027bc: JUMPDEST
000027bd: SWAP1
000027be: DUP1
000027bf: PUSH1 0x1f
000027c1: DUP4
000027c2: ADD
000027c3: SLT
000027c4: ISZERO
000027c5: PUSH2 0x261a
000027c8: JUMPI
000027c9: DUP2
000027ca: CALLDATALOAD
000027cb: SWAP1
000027cc: PUSH8 0xffffffffffffffff
000027d5: DUP3
000027d6: GT
000027d7: PUSH2 0x0860
000027da: JUMPI
000027db: DUP2
000027dc: PUSH1 0x05
000027de: SHL
000027df: PUSH1 0x40
000027e1: MLOAD
000027e2: SWAP4
000027e3: PUSH1 0x20
000027e5: SWAP4
000027e6: PUSH2 0x27f1
000027e9: DUP6
000027ea: DUP5
000027eb: ADD
000027ec: DUP8
000027ed: PUSH2 0x2799
000027f0: JUMP
000027f1: JUMPDEST
000027f2: DUP6
000027f3: MSTORE
000027f4: DUP4
000027f5: DUP1
000027f6: DUP7
000027f7: ADD
000027f8: SWAP3
000027f9: DUP3
000027fa: ADD
000027fb: ADD
000027fc: SWAP3
000027fd: DUP4
000027fe: GT
000027ff: PUSH2 0x261a
00002802: JUMPI
00002803: DUP4
00002804: ADD
00002805: SWAP1
00002806: JUMPDEST
00002807: DUP3
00002808: DUP3
00002809: LT
0000280a: PUSH2 0x2814
0000280d: JUMPI
0000280e: POP
0000280f: POP
00002810: POP
00002811: POP
00002812: SWAP1
00002813: JUMP
00002814: JUMPDEST
00002815: DUP4
00002816: DUP1
00002817: SWAP2
00002818: PUSH2 0x2820
0000281b: DUP5
0000281c: PUSH2 0x26a3
0000281f: JUMP
00002820: JUMPDEST
00002821: DUP2
00002822: MSTORE
00002823: ADD
00002824: SWAP2
00002825: ADD
00002826: SWAP1
00002827: PUSH2 0x2806
0000282a: JUMP
0000282b: JUMPDEST
0000282c: PUSH1 0x03
0000282e: GT
0000282f: ISZERO
00002830: PUSH2 0x2835
00002833: JUMPI
00002834: JUMP
00002835: JUMPDEST
00002836: PUSH4 0x4e487b71
0000283b: PUSH1 0xe0
0000283d: SHL
0000283e: PUSH1 0x00
00002840: MSTORE
00002841: PUSH1 0x21
00002843: PUSH1 0x04
00002845: MSTORE
00002846: PUSH1 0x24
00002848: PUSH1 0x00
0000284a: REVERT
0000284b: JUMPDEST
0000284c: PUSH8 0xffffffffffffffff
00002855: DUP2
00002856: GT
00002857: PUSH2 0x0860
0000285a: JUMPI
0000285b: PUSH1 0x1f
0000285d: ADD
0000285e: PUSH1 0x1f
00002860: NOT
00002861: AND
00002862: PUSH1 0x20
00002864: ADD
00002865: SWAP1
00002866: JUMP
00002867: JUMPDEST
00002868: DUP2
00002869: PUSH1 0x1f
0000286b: DUP3
0000286c: ADD
0000286d: SLT
0000286e: ISZERO
0000286f: PUSH2 0x261a
00002872: JUMPI
00002873: DUP1
00002874: CALLDATALOAD
00002875: SWAP1
00002876: PUSH2 0x287e
00002879: DUP3
0000287a: PUSH2 0x284b
0000287d: JUMP
0000287e: JUMPDEST
0000287f: SWAP3
00002880: PUSH2 0x288c
00002883: PUSH1 0x40
00002885: MLOAD
00002886: SWAP5
00002887: DUP6
00002888: PUSH2 0x2799
0000288b: JUMP
0000288c: JUMPDEST
0000288d: DUP3
0000288e: DUP5
0000288f: MSTORE
00002890: PUSH1 0x20
00002892: DUP4
00002893: DUP4
00002894: ADD
00002895: ADD
00002896: GT
00002897: PUSH2 0x261a
0000289a: JUMPI
0000289b: DUP2
0000289c: PUSH1 0x00
0000289e: SWAP3
0000289f: PUSH1 0x20
000028a1: DUP1
000028a2: SWAP4
000028a3: ADD
000028a4: DUP4
000028a5: DUP7
000028a6: ADD
000028a7: CALLDATACOPY
000028a8: DUP4
000028a9: ADD
000028aa: ADD
000028ab: MSTORE
000028ac: SWAP1
000028ad: JUMP
000028ae: JUMPDEST
000028af: ISZERO
000028b0: PUSH2 0x28b5
000028b3: JUMPI
000028b4: JUMP
000028b5: JUMPDEST
000028b6: PUSH1 0x64
000028b8: PUSH1 0x40
000028ba: MLOAD
000028bb: PUSH3 0x461bcd
000028bf: PUSH1 0xe5
000028c1: SHL
000028c2: DUP2
000028c3: MSTORE
000028c4: PUSH1 0x20
000028c6: PUSH1 0x04
000028c8: DUP3
000028c9: ADD
000028ca: MSTORE
000028cb: PUSH1 0x20
000028cd: PUSH1 0x24
000028cf: DUP3
000028d0: ADD
000028d1: MSTORE
000028d2: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
000028f3: PUSH1 0x44
000028f5: DUP3
000028f6: ADD
000028f7: MSTORE
000028f8: REVERT
000028f9: JUMPDEST
000028fa: PUSH1 0x33
000028fc: SLOAD
000028fd: SWAP1
000028fe: PUSH1 0x01
00002900: PUSH1 0x01
00002902: PUSH1 0xa0
00002904: SHL
00002905: SUB
00002906: DUP1
00002907: SWAP2
00002908: AND
00002909: SWAP2
0000290a: DUP3
0000290b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002920: NOT
00002921: DUP3
00002922: AND
00002923: OR
00002924: PUSH1 0x33
00002926: SSTORE
00002927: AND
00002928: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00002949: PUSH1 0x00
0000294b: DUP1
0000294c: LOG3
0000294d: JUMP
0000294e: JUMPDEST
0000294f: ISZERO
00002950: PUSH2 0x2955
00002953: JUMPI
00002954: JUMP
00002955: JUMPDEST
00002956: PUSH1 0x64
00002958: PUSH1 0x40
0000295a: MLOAD
0000295b: PUSH3 0x461bcd
0000295f: PUSH1 0xe5
00002961: SHL
00002962: DUP2
00002963: MSTORE
00002964: PUSH1 0x20
00002966: PUSH1 0x04
00002968: DUP3
00002969: ADD
0000296a: MSTORE
0000296b: PUSH1 0x0c
0000296d: PUSH1 0x24
0000296f: DUP3
00002970: ADD
00002971: MSTORE
00002972: PUSH32 0x53796d623a207061757365640000000000000000000000000000000000000000
00002993: PUSH1 0x44
00002995: DUP3
00002996: ADD
00002997: MSTORE
00002998: REVERT
00002999: JUMPDEST
0000299a: ISZERO
0000299b: PUSH2 0x29a0
0000299e: JUMPI
0000299f: JUMP
000029a0: JUMPDEST
000029a1: PUSH1 0x64
000029a3: PUSH1 0x40
000029a5: MLOAD
000029a6: PUSH3 0x461bcd
000029aa: PUSH1 0xe5
000029ac: SHL
000029ad: DUP2
000029ae: MSTORE
000029af: PUSH1 0x20
000029b1: PUSH1 0x04
000029b3: DUP3
000029b4: ADD
000029b5: MSTORE
000029b6: PUSH1 0x18
000029b8: PUSH1 0x24
000029ba: DUP3
000029bb: ADD
000029bc: MSTORE
000029bd: PUSH32 0x53796d623a20756e617574686f72697a656420746f6b656e0000000000000000
000029de: PUSH1 0x44
000029e0: DUP3
000029e1: ADD
000029e2: MSTORE
000029e3: REVERT
000029e4: JUMPDEST
000029e5: ISZERO
000029e6: PUSH2 0x29eb
000029e9: JUMPI
000029ea: JUMP
000029eb: JUMPDEST
000029ec: PUSH1 0x64
000029ee: PUSH1 0x40
000029f0: MLOAD
000029f1: PUSH3 0x461bcd
000029f5: PUSH1 0xe5
000029f7: SHL
000029f8: DUP2
000029f9: MSTORE
000029fa: PUSH1 0x20
000029fc: PUSH1 0x04
000029fe: DUP3
000029ff: ADD
00002a00: MSTORE
00002a01: PUSH1 0x1c
00002a03: PUSH1 0x24
00002a05: DUP3
00002a06: ADD
00002a07: MSTORE
00002a08: PUSH32 0x53796d623a20616d6f756e7420756e646572207468726573686f6c6400000000
00002a29: PUSH1 0x44
00002a2b: DUP3
00002a2c: ADD
00002a2d: MSTORE
00002a2e: REVERT
00002a2f: JUMPDEST
00002a30: RETURNDATASIZE
00002a31: ISZERO
00002a32: PUSH2 0x2a5a
00002a35: JUMPI
00002a36: RETURNDATASIZE
00002a37: SWAP1
00002a38: PUSH2 0x2a40
00002a3b: DUP3
00002a3c: PUSH2 0x284b
00002a3f: JUMP
00002a40: JUMPDEST
00002a41: SWAP2
00002a42: PUSH2 0x2a4e
00002a45: PUSH1 0x40
00002a47: MLOAD
00002a48: SWAP4
00002a49: DUP5
00002a4a: PUSH2 0x2799
00002a4d: JUMP
00002a4e: JUMPDEST
00002a4f: DUP3
00002a50: MSTORE
00002a51: RETURNDATASIZE
00002a52: PUSH1 0x00
00002a54: PUSH1 0x20
00002a56: DUP5
00002a57: ADD
00002a58: RETURNDATACOPY
00002a59: JUMP
00002a5a: JUMPDEST
00002a5b: PUSH1 0x60
00002a5d: SWAP1
00002a5e: JUMP
00002a5f: JUMPDEST
00002a60: SWAP1
00002a61: DUP2
00002a62: PUSH1 0x20
00002a64: SWAP2
00002a65: SUB
00002a66: SLT
00002a67: PUSH2 0x261a
00002a6a: JUMPI
00002a6b: MLOAD
00002a6c: DUP1
00002a6d: ISZERO
00002a6e: ISZERO
00002a6f: DUP2
00002a70: SUB
00002a71: PUSH2 0x261a
00002a74: JUMPI
00002a75: SWAP1
00002a76: JUMP
00002a77: JUMPDEST
00002a78: SWAP1
00002a79: SWAP2
00002a7a: PUSH1 0x00
00002a7c: DUP1
00002a7d: SWAP5
00002a7e: SWAP4
00002a7f: DUP2
00002a80: SWAP5
00002a81: PUSH1 0x40
00002a83: MLOAD
00002a84: SWAP2
00002a85: PUSH1 0x20
00002a87: DUP4
00002a88: ADD
00002a89: SWAP5
00002a8a: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
00002aab: DUP7
00002aac: MSTORE
00002aad: PUSH1 0x01
00002aaf: PUSH1 0x01
00002ab1: PUSH1 0xa0
00002ab3: SHL
00002ab4: SUB
00002ab5: DUP1
00002ab6: SWAP3
00002ab7: AND
00002ab8: PUSH1 0x24
00002aba: DUP6
00002abb: ADD
00002abc: MSTORE
00002abd: AND
00002abe: PUSH1 0x44
00002ac0: DUP4
00002ac1: ADD
00002ac2: MSTORE
00002ac3: PUSH1 0x64
00002ac5: DUP3
00002ac6: ADD
00002ac7: MSTORE
00002ac8: PUSH1 0x64
00002aca: DUP2
00002acb: MSTORE
00002acc: PUSH2 0x2ad4
00002acf: DUP2
00002ad0: PUSH2 0x270b
00002ad3: JUMP
00002ad4: JUMPDEST
00002ad5: MLOAD
00002ad6: SWAP3
00002ad7: GAS
00002ad8: CALL
00002ad9: PUSH2 0x2ae0
00002adc: PUSH2 0x2a2f
00002adf: JUMP
00002ae0: JUMPDEST
00002ae1: DUP2
00002ae2: PUSH2 0x2b58
00002ae5: JUMPI
00002ae6: JUMPDEST
00002ae7: POP
00002ae8: ISZERO
00002ae9: PUSH2 0x2aee
00002aec: JUMPI
00002aed: JUMP
00002aee: JUMPDEST
00002aef: PUSH1 0x84
00002af1: PUSH1 0x40
00002af3: MLOAD
00002af4: PUSH3 0x461bcd
00002af8: PUSH1 0xe5
00002afa: SHL
00002afb: DUP2
00002afc: MSTORE
00002afd: PUSH1 0x20
00002aff: PUSH1 0x04
00002b01: DUP3
00002b02: ADD
00002b03: MSTORE
00002b04: PUSH1 0x31
00002b06: PUSH1 0x24
00002b08: DUP3
00002b09: ADD
00002b0a: MSTORE
00002b0b: PUSH32 0x5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472
00002b2c: PUSH1 0x44
00002b2e: DUP3
00002b2f: ADD
00002b30: MSTORE
00002b31: PUSH32 0x616e7366657246726f6d206661696c6564000000000000000000000000000000
00002b52: PUSH1 0x64
00002b54: DUP3
00002b55: ADD
00002b56: MSTORE
00002b57: REVERT
00002b58: JUMPDEST
00002b59: DUP1
00002b5a: MLOAD
00002b5b: DUP1
00002b5c: ISZERO
00002b5d: SWAP3
00002b5e: POP
00002b5f: DUP3
00002b60: ISZERO
00002b61: PUSH2 0x2b6d
00002b64: JUMPI
00002b65: JUMPDEST
00002b66: POP
00002b67: POP
00002b68: CODESIZE
00002b69: PUSH2 0x2ae6
00002b6c: JUMP
00002b6d: JUMPDEST
00002b6e: PUSH2 0x2b80
00002b71: SWAP3
00002b72: POP
00002b73: PUSH1 0x20
00002b75: DUP1
00002b76: SWAP2
00002b77: DUP4
00002b78: ADD
00002b79: ADD
00002b7a: SWAP2
00002b7b: ADD
00002b7c: PUSH2 0x2a5f
00002b7f: JUMP
00002b80: JUMPDEST
00002b81: CODESIZE
00002b82: DUP1
00002b83: PUSH2 0x2b65
00002b86: JUMP
00002b87: JUMPDEST
00002b88: ISZERO
00002b89: PUSH2 0x2b8e
00002b8c: JUMPI
00002b8d: JUMP
00002b8e: JUMPDEST
00002b8f: PUSH1 0x64
00002b91: PUSH1 0x40
00002b93: MLOAD
00002b94: PUSH3 0x461bcd
00002b98: PUSH1 0xe5
00002b9a: SHL
00002b9b: DUP2
00002b9c: MSTORE
00002b9d: PUSH1 0x20
00002b9f: PUSH1 0x04
00002ba1: DUP3
00002ba2: ADD
00002ba3: MSTORE
00002ba4: PUSH1 0x1e
00002ba6: PUSH1 0x24
00002ba8: DUP3
00002ba9: ADD
00002baa: MSTORE
00002bab: PUSH32 0x53796d623a2063616c6c6572206973206e6f7420746865206272696467650000
00002bcc: PUSH1 0x44
00002bce: DUP3
00002bcf: ADD
00002bd0: MSTORE
00002bd1: REVERT
00002bd2: JUMPDEST
00002bd3: SWAP1
00002bd4: PUSH2 0x2bdc
00002bd7: DUP2
00002bd8: PUSH2 0x282b
00002bdb: JUMP
00002bdc: JUMPDEST
00002bdd: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
00002bfe: PUSH21 0xff0000000000000000000000000000000000000000
00002c14: DUP4
00002c15: SLOAD
00002c16: SWAP3
00002c17: PUSH1 0xa0
00002c19: SHL
00002c1a: AND
00002c1b: SWAP2
00002c1c: AND
00002c1d: OR
00002c1e: SWAP1
00002c1f: SSTORE
00002c20: JUMP
00002c21: JUMPDEST
00002c22: SWAP2
00002c23: SWAP1
00002c24: DUP3
00002c25: SUB
00002c26: SWAP2
00002c27: DUP3
00002c28: GT
00002c29: PUSH2 0x2c2e
00002c2c: JUMPI
00002c2d: JUMP
00002c2e: JUMPDEST
00002c2f: PUSH4 0x4e487b71
00002c34: PUSH1 0xe0
00002c36: SHL
00002c37: PUSH1 0x00
00002c39: MSTORE
00002c3a: PUSH1 0x11
00002c3c: PUSH1 0x04
00002c3e: MSTORE
00002c3f: PUSH1 0x24
00002c41: PUSH1 0x00
00002c43: REVERT
00002c44: JUMPDEST
00002c45: PUSH1 0x40
00002c47: MLOAD
00002c48: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00002c69: PUSH1 0x20
00002c6b: DUP3
00002c6c: ADD
00002c6d: SWAP1
00002c6e: DUP2
00002c6f: MSTORE
00002c70: PUSH1 0x01
00002c72: PUSH1 0x01
00002c74: PUSH1 0xa0
00002c76: SHL
00002c77: SUB
00002c78: SWAP1
00002c79: SWAP4
00002c7a: AND
00002c7b: PUSH1 0x24
00002c7d: DUP3
00002c7e: ADD
00002c7f: MSTORE
00002c80: PUSH1 0x44
00002c82: DUP2
00002c83: ADD
00002c84: SWAP4
00002c85: SWAP1
00002c86: SWAP4
00002c87: MSTORE
00002c88: PUSH1 0x00
00002c8a: SWAP3
00002c8b: DUP4
00002c8c: SWAP3
00002c8d: SWAP1
00002c8e: DUP4
00002c8f: SWAP1
00002c90: PUSH2 0x2c9c
00002c93: DUP2
00002c94: PUSH1 0x64
00002c96: DUP2
00002c97: ADD
00002c98: PUSH2 0x0322
00002c9b: JUMP
00002c9c: JUMPDEST
00002c9d: MLOAD
00002c9e: SWAP3
00002c9f: GAS
00002ca0: CALL
00002ca1: PUSH2 0x2ca8
00002ca4: PUSH2 0x2a2f
00002ca7: JUMP
00002ca8: JUMPDEST
00002ca9: DUP2
00002caa: PUSH2 0x2d20
00002cad: JUMPI
00002cae: JUMPDEST
00002caf: POP
00002cb0: ISZERO
00002cb1: PUSH2 0x2cb6
00002cb4: JUMPI
00002cb5: JUMP
00002cb6: JUMPDEST
00002cb7: PUSH1 0x84
00002cb9: PUSH1 0x40
00002cbb: MLOAD
00002cbc: PUSH3 0x461bcd
00002cc0: PUSH1 0xe5
00002cc2: SHL
00002cc3: DUP2
00002cc4: MSTORE
00002cc5: PUSH1 0x20
00002cc7: PUSH1 0x04
00002cc9: DUP3
00002cca: ADD
00002ccb: MSTORE
00002ccc: PUSH1 0x2d
00002cce: PUSH1 0x24
00002cd0: DUP3
00002cd1: ADD
00002cd2: MSTORE
00002cd3: PUSH32 0x5472616e7366657248656c7065723a3a736166655472616e736665723a207472
00002cf4: PUSH1 0x44
00002cf6: DUP3
00002cf7: ADD
00002cf8: MSTORE
00002cf9: PUSH32 0x616e73666572206661696c656400000000000000000000000000000000000000
00002d1a: PUSH1 0x64
00002d1c: DUP3
00002d1d: ADD
00002d1e: MSTORE
00002d1f: REVERT
00002d20: JUMPDEST
00002d21: DUP1
00002d22: MLOAD
00002d23: DUP1
00002d24: ISZERO
00002d25: SWAP3
00002d26: POP
00002d27: DUP3
00002d28: ISZERO
00002d29: PUSH2 0x2d35
00002d2c: JUMPI
00002d2d: JUMPDEST
00002d2e: POP
00002d2f: POP
00002d30: CODESIZE
00002d31: PUSH2 0x2cae
00002d34: JUMP
00002d35: JUMPDEST
00002d36: PUSH2 0x2d48
00002d39: SWAP3
00002d3a: POP
00002d3b: PUSH1 0x20
00002d3d: DUP1
00002d3e: SWAP2
00002d3f: DUP4
00002d40: ADD
00002d41: ADD
00002d42: SWAP2
00002d43: ADD
00002d44: PUSH2 0x2a5f
00002d47: JUMP
00002d48: JUMPDEST
00002d49: CODESIZE
00002d4a: DUP1
00002d4b: PUSH2 0x2d2d
00002d4e: JUMP
00002d4f: JUMPDEST
00002d50: ISZERO
00002d51: PUSH2 0x2d56
00002d54: JUMPI
00002d55: JUMP
00002d56: JUMPDEST
00002d57: PUSH1 0x84
00002d59: PUSH1 0x40
00002d5b: MLOAD
00002d5c: PUSH3 0x461bcd
00002d60: PUSH1 0xe5
00002d62: SHL
00002d63: DUP2
00002d64: MSTORE
00002d65: PUSH1 0x20
00002d67: PUSH1 0x04
00002d69: DUP3
00002d6a: ADD
00002d6b: MSTORE
00002d6c: PUSH1 0x26
00002d6e: PUSH1 0x24
00002d70: DUP3
00002d71: ADD
00002d72: MSTORE
00002d73: PUSH32 0x53796d623a2073796e74686574696320746f6b656e7320656d657267656e6379
00002d94: PUSH1 0x44
00002d96: DUP3
00002d97: ADD
00002d98: MSTORE
00002d99: PUSH32 0x556e6275726e0000000000000000000000000000000000000000000000000000
00002dba: PUSH1 0x64
00002dbc: DUP3
00002dbd: ADD
00002dbe: MSTORE
00002dbf: REVERT
00002dc0: JUMPDEST
00002dc1: SWAP5
00002dc2: SWAP3
00002dc3: SWAP4
00002dc4: SWAP2
00002dc5: SWAP6
00002dc6: SWAP7
00002dc7: SWAP1
00002dc8: SWAP7
00002dc9: PUSH1 0x00
00002dcb: SWAP2
00002dcc: DUP8
00002dcd: DUP4
00002dce: MSTORE
00002dcf: PUSH1 0x6b
00002dd1: PUSH1 0x20
00002dd3: MSTORE
00002dd4: PUSH2 0x2de7
00002dd7: PUSH1 0xff
00002dd9: PUSH1 0x40
00002ddb: DUP6
00002ddc: KECCAK256
00002ddd: SLOAD
00002dde: AND
00002ddf: PUSH2 0x2162
00002de2: DUP2
00002de3: PUSH2 0x282b
00002de6: JUMP
00002de7: JUMPDEST
00002de8: PUSH1 0x01
00002dea: PUSH1 0x01
00002dec: PUSH1 0xa0
00002dee: SHL
00002def: SUB
00002df0: SWAP4
00002df1: PUSH2 0x2e41
00002df4: DUP9
00002df5: DUP7
00002df6: DUP9
00002df7: AND
00002df8: SWAP3
00002df9: DUP4
00002dfa: DUP8
00002dfb: MSTORE
00002dfc: PUSH1 0x6c
00002dfe: PUSH1 0x20
00002e00: MSTORE
00002e01: PUSH2 0x2e0e
00002e04: DUP2
00002e05: PUSH1 0x40
00002e07: DUP10
00002e08: KECCAK256
00002e09: SLOAD
00002e0a: PUSH2 0x2c21
00002e0d: JUMP
00002e0e: JUMPDEST
00002e0f: DUP5
00002e10: DUP9
00002e11: MSTORE
00002e12: PUSH1 0x6c
00002e14: PUSH1 0x20
00002e16: MSTORE
00002e17: PUSH1 0x40
00002e19: DUP9
00002e1a: KECCAK256
00002e1b: SSTORE
00002e1c: DUP12
00002e1d: DUP8
00002e1e: MSTORE
00002e1f: PUSH1 0x6b
00002e21: PUSH1 0x20
00002e23: MSTORE
00002e24: PUSH1 0x40
00002e26: DUP8
00002e27: KECCAK256
00002e28: PUSH1 0x01
00002e2a: PUSH1 0xff
00002e2c: NOT
00002e2d: DUP3
00002e2e: SLOAD
00002e2f: AND
00002e30: OR
00002e31: SWAP1
00002e32: SSTORE
00002e33: PUSH2 0x21c9
00002e36: DUP3
00002e37: DUP10
00002e38: PUSH1 0x67
00002e3a: SLOAD
00002e3b: AND
00002e3c: DUP12
00002e3d: PUSH2 0x2c44
00002e40: JUMP
00002e41: JUMPDEST
00002e42: SWAP7
00002e43: DUP3
00002e44: MLOAD
00002e45: ISZERO
00002e46: PUSH2 0x2f50
00002e49: JUMPI
00002e4a: PUSH2 0x2e58
00002e4d: DUP9
00002e4e: DUP8
00002e4f: PUSH1 0x6f
00002e51: SLOAD
00002e52: AND
00002e53: DUP10
00002e54: PUSH2 0x2c44
00002e57: JUMP
00002e58: JUMPDEST
00002e59: DUP6
00002e5a: PUSH1 0x6f
00002e5c: SLOAD
00002e5d: AND
00002e5e: SWAP3
00002e5f: DUP4
00002e60: EXTCODESIZE
00002e61: ISZERO
00002e62: PUSH2 0x05fd
00002e65: JUMPI
00002e66: DUP6
00002e67: SWAP5
00002e68: SWAP4
00002e69: SWAP3
00002e6a: DUP8
00002e6b: DUP11
00002e6c: SWAP4
00002e6d: PUSH2 0x2ebf
00002e70: DUP9
00002e71: SWAP5
00002e72: PUSH1 0x40
00002e74: MLOAD
00002e75: SWAP12
00002e76: DUP13
00002e77: SWAP10
00002e78: DUP11
00002e79: SWAP9
00002e7a: DUP10
00002e7b: SWAP8
00002e7c: PUSH32 0xf5b697a500000000000000000000000000000000000000000000000000000000
00002e9d: DUP10
00002e9e: MSTORE
00002e9f: PUSH1 0x04
00002ea1: DUP10
00002ea2: ADD
00002ea3: MSTORE
00002ea4: PUSH1 0x24
00002ea6: DUP9
00002ea7: ADD
00002ea8: MSTORE
00002ea9: AND
00002eaa: PUSH1 0x44
00002eac: DUP7
00002ead: ADD
00002eae: MSTORE
00002eaf: PUSH1 0xc0
00002eb1: PUSH1 0x64
00002eb3: DUP7
00002eb4: ADD
00002eb5: MSTORE
00002eb6: PUSH1 0xc4
00002eb8: DUP6
00002eb9: ADD
00002eba: SWAP1
00002ebb: PUSH2 0x26b7
00002ebe: JUMP
00002ebf: JUMPDEST
00002ec0: SWAP16
00002ec1: PUSH1 0x84
00002ec3: DUP5
00002ec4: ADD
00002ec5: MSTORE
00002ec6: AND
00002ec7: SWAP14
00002ec8: DUP15
00002ec9: PUSH1 0xa4
00002ecb: DUP4
00002ecc: ADD
00002ecd: MSTORE
00002ece: SUB
00002ecf: SWAP3
00002ed0: GAS
00002ed1: CALL
00002ed2: SWAP1
00002ed3: DUP2
00002ed4: ISZERO
00002ed5: PUSH2 0x2f44
00002ed8: JUMPI
00002ed9: POP
00002eda: SWAP2
00002edb: PUSH2 0x2f30
00002ede: SWAP2
00002edf: PUSH32 0xaeef64b7687b985665b6620c7fa271b6f051a3fbe2bfc366fb9c964602eb6d26
00002f00: SWAP6
00002f01: SWAP5
00002f02: SWAP4
00002f03: PUSH2 0x2f35
00002f06: JUMPI
00002f07: JUMPDEST
00002f08: POP
00002f09: PUSH1 0x40
00002f0b: MLOAD
00002f0c: SWAP4
00002f0d: DUP5
00002f0e: SWAP4
00002f0f: DUP5
00002f10: SWAP2
00002f11: PUSH1 0x40
00002f13: SWAP2
00002f14: SWAP5
00002f15: SWAP4
00002f16: PUSH1 0x01
00002f18: PUSH1 0x01
00002f1a: PUSH1 0xa0
00002f1c: SHL
00002f1d: SUB
00002f1e: SWAP2
00002f1f: PUSH1 0x60
00002f21: DUP6
00002f22: ADD
00002f23: SWAP7
00002f24: DUP6
00002f25: MSTORE
00002f26: PUSH1 0x20
00002f28: DUP6
00002f29: ADD
00002f2a: MSTORE
00002f2b: AND
00002f2c: SWAP2
00002f2d: ADD
00002f2e: MSTORE
00002f2f: JUMP
00002f30: JUMPDEST
00002f31: SUB
00002f32: SWAP1
00002f33: LOG4
00002f34: JUMP
00002f35: JUMPDEST
00002f36: PUSH2 0x2f3e
00002f39: SWAP1
00002f3a: PUSH2 0x26f7
00002f3d: JUMP
00002f3e: JUMPDEST
00002f3f: CODESIZE
00002f40: PUSH2 0x2f07
00002f43: JUMP
00002f44: JUMPDEST
00002f45: PUSH1 0x40
00002f47: MLOAD
00002f48: SWAP1
00002f49: RETURNDATASIZE
00002f4a: SWAP1
00002f4b: DUP3
00002f4c: RETURNDATACOPY
00002f4d: RETURNDATASIZE
00002f4e: SWAP1
00002f4f: REVERT
00002f50: JUMPDEST
00002f51: DUP8
00002f52: SWAP12
00002f53: POP
00002f54: DUP7
00002f55: DUP2
00002f56: SWAP8
00002f57: SWAP6
00002f58: POP
00002f59: PUSH32 0xaeef64b7687b985665b6620c7fa271b6f051a3fbe2bfc366fb9c964602eb6d26
00002f7a: SWAP10
00002f7b: SWAP5
00002f7c: POP
00002f7d: PUSH2 0x2f8d
00002f80: SWAP4
00002f81: POP
00002f82: PUSH2 0x2f30
00002f85: SWAP7
00002f86: SWAP9
00002f87: SWAP3
00002f88: POP
00002f89: PUSH2 0x2c44
00002f8c: JUMP
00002f8d: JUMPDEST
00002f8e: PUSH1 0x40
00002f90: MLOAD
00002f91: SWAP5
00002f92: DUP6
00002f93: SWAP5
00002f94: AND
00002f95: SWAP9
00002f96: DUP5
00002f97: SWAP2
00002f98: PUSH1 0x40
00002f9a: SWAP2
00002f9b: SWAP5
00002f9c: SWAP4
00002f9d: PUSH1 0x01
00002f9f: PUSH1 0x01
00002fa1: PUSH1 0xa0
00002fa3: SHL
00002fa4: SUB
00002fa5: SWAP2
00002fa6: PUSH1 0x60
00002fa8: DUP6
00002fa9: ADD
00002faa: SWAP7
00002fab: DUP6
00002fac: MSTORE
00002fad: PUSH1 0x20
00002faf: DUP6
00002fb0: ADD
00002fb1: MSTORE
00002fb2: AND
00002fb3: SWAP2
00002fb4: ADD
00002fb5: MSTORE
00002fb6: JUMP
00002fb7: JUMPDEST
00002fb8: ISZERO
00002fb9: PUSH2 0x2fbe
00002fbc: JUMPI
00002fbd: JUMP
00002fbe: JUMPDEST
00002fbf: PUSH1 0x84
00002fc1: PUSH1 0x40
00002fc3: MLOAD
00002fc4: PUSH3 0x461bcd
00002fc8: PUSH1 0xe5
00002fca: SHL
00002fcb: DUP2
00002fcc: MSTORE
00002fcd: PUSH1 0x20
00002fcf: PUSH1 0x04
00002fd1: DUP3
00002fd2: ADD
00002fd3: MSTORE
00002fd4: PUSH1 0x24
00002fd6: DUP1
00002fd7: DUP3
00002fd8: ADD
00002fd9: MSTORE
00002fda: PUSH32 0x53796d623a205265616c20746f6b656e7320616c7265616479207472616e7366
00002ffb: PUSH1 0x44
00002ffd: DUP3
00002ffe: ADD
00002fff: MSTORE
00003000: PUSH32 0x6572656400000000000000000000000000000000000000000000000000000000
00003021: PUSH1 0x64
00003023: DUP3
00003024: ADD
00003025: MSTORE
00003026: REVERT
00003027: JUMPDEST
00003028: SWAP1
00003029: SWAP2
0000302a: PUSH2 0x3041
0000302d: PUSH1 0x60
0000302f: SWAP4
00003030: SWAP7
00003031: SWAP6
00003032: SWAP5
00003033: SWAP7
00003034: PUSH1 0x80
00003036: DUP5
00003037: MSTORE
00003038: PUSH1 0x80
0000303a: DUP5
0000303b: ADD
0000303c: SWAP1
0000303d: PUSH2 0x26b7
00003040: JUMP
00003041: JUMPDEST
00003042: SWAP6
00003043: PUSH1 0x01
00003045: PUSH1 0x01
00003047: PUSH1 0xa0
00003049: SHL
0000304a: SUB
0000304b: DUP1
0000304c: SWAP3
0000304d: AND
0000304e: PUSH1 0x20
00003050: DUP5
00003051: ADD
00003052: MSTORE
00003053: AND
00003054: PUSH1 0x40
00003056: DUP3
00003057: ADD
00003058: MSTORE
00003059: ADD
0000305a: MSTORE
0000305b: JUMP
0000305c: JUMPDEST
0000305d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000307e: DUP2
0000307f: EQ
00003080: PUSH2 0x2c2e
00003083: JUMPI
00003084: PUSH1 0x01
00003086: ADD
00003087: SWAP1
00003088: JUMP
00003089: JUMPDEST
0000308a: DUP1
0000308b: MLOAD
0000308c: DUP3
0000308d: LT
0000308e: ISZERO
0000308f: PUSH2 0x309d
00003092: JUMPI
00003093: PUSH1 0x20
00003095: SWAP2
00003096: PUSH1 0x05
00003098: SHL
00003099: ADD
0000309a: ADD
0000309b: SWAP1
0000309c: JUMP
0000309d: JUMPDEST
0000309e: PUSH4 0x4e487b71
000030a3: PUSH1 0xe0
000030a5: SHL
000030a6: PUSH1 0x00
000030a8: MSTORE
000030a9: PUSH1 0x32
000030ab: PUSH1 0x04
000030ad: MSTORE
000030ae: PUSH1 0x24
000030b0: PUSH1 0x00
000030b2: REVERT
000030b3: JUMPDEST
000030b4: SWAP1
000030b5: DUP2
000030b6: MLOAD
000030b7: DUP1
000030b8: DUP3
000030b9: MSTORE
000030ba: PUSH1 0x20
000030bc: DUP1
000030bd: DUP1
000030be: SWAP4
000030bf: ADD
000030c0: SWAP4
000030c1: ADD
000030c2: SWAP2
000030c3: PUSH1 0x00
000030c5: JUMPDEST
000030c6: DUP3
000030c7: DUP2
000030c8: LT
000030c9: PUSH2 0x30d3
000030cc: JUMPI
000030cd: POP
000030ce: POP
000030cf: POP
000030d0: POP
000030d1: SWAP1
000030d2: JUMP
000030d3: JUMPDEST
000030d4: DUP4
000030d5: MLOAD
000030d6: PUSH1 0x01
000030d8: PUSH1 0x01
000030da: PUSH1 0xa0
000030dc: SHL
000030dd: SUB
000030de: AND
000030df: DUP6
000030e0: MSTORE
000030e1: SWAP4
000030e2: DUP2
000030e3: ADD
000030e4: SWAP4
000030e5: SWAP3
000030e6: DUP2
000030e7: ADD
000030e8: SWAP3
000030e9: PUSH1 0x01
000030eb: ADD
000030ec: PUSH2 0x30c5
000030ef: JUMP
000030f0: JUMPDEST
000030f1: SWAP2
000030f2: SWAP1
000030f3: DUP3
000030f4: ADD
000030f5: DUP1
000030f6: SWAP3
000030f7: GT
000030f8: PUSH2 0x2c2e
000030fb: JUMPI
000030fc: JUMP
000030fd: JUMPDEST
000030fe: ISZERO
000030ff: PUSH2 0x3104
00003102: JUMPI
00003103: JUMP
00003104: JUMPDEST
00003105: PUSH1 0x84
00003107: PUSH1 0x40
00003109: MLOAD
0000310a: PUSH3 0x461bcd
0000310e: PUSH1 0xe5
00003110: SHL
00003111: DUP2
00003112: MSTORE
00003113: PUSH1 0x20
00003115: PUSH1 0x04
00003117: DUP3
00003118: ADD
00003119: MSTORE
0000311a: PUSH1 0x2b
0000311c: PUSH1 0x24
0000311e: DUP3
0000311f: ADD
00003120: MSTORE
00003121: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00003142: PUSH1 0x44
00003144: DUP3
00003145: ADD
00003146: MSTORE
00003147: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00003168: PUSH1 0x64
0000316a: DUP3
0000316b: ADD
0000316c: MSTORE
0000316d: REVERT
0000316e: JUMPDEST
0000316f: PUSH1 0x01
00003171: PUSH1 0x01
00003173: PUSH1 0xa0
00003175: SHL
00003176: SUB
00003177: PUSH1 0x65
00003179: SLOAD
0000317a: AND
0000317b: CALLER
0000317c: EQ
0000317d: PUSH1 0x00
0000317f: EQ
00003180: PUSH2 0x31ad
00003183: JUMPI
00003184: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec
000031a5: CALLDATASIZE
000031a6: ADD
000031a7: CALLDATALOAD
000031a8: PUSH1 0x60
000031aa: SHR
000031ab: SWAP1
000031ac: JUMP
000031ad: JUMPDEST
000031ae: CALLER
000031af: SWAP1
000031b0: JUMP
000031b1: INVALID
000031b2: LOG2
000031b3: PUSH5 0x6970667358
000031b9: UNKNOWN(0x22)
000031ba: SLT
000031bb: KECCAK256
000031bc: EXTCODEHASH
000031bd: PUSH12 0x08c062226a7398e9665e2cce
000031ca: CLZ
000031cb: PUSH17 0x4a2a05444ff0560313d259f80580967964
000031dd: PUSH20

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x660538a96472f458a53486d9283bda8d0b0b59d77ee46e09b50b624eac3ac734
call_targets: 0x57dbcb192fa64bf07eab76941d1dae5177c8f4f3
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x660538a96472f458a53486d9283bda8d0b0b59d77ee46e09b50b624eac3ac734",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x57dbcb192fa64bf07eab76941d1dae5177c8f4f3"
    ],
    "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": "0x08759e9b",
            "selector": "0x08759e9b",
            "calldata_variants": [
                "0x08759e9b",
                "0x08759e9b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1459457a",
            "selector": "0x1459457a",
            "calldata_variants": [
                "0x1459457a",
                "0x1459457a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1ebe53ef",
            "selector": "0x1ebe53ef",
            "calldata_variants": [
                "0x1ebe53ef",
                "0x1ebe53ef0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3f4ba83a",
            "selector": "0x3f4ba83a",
            "calldata_variants": [
                "0x3f4ba83a",
                "0x3f4ba83a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x486ff0cd",
            "selector": "0x486ff0cd",
            "calldata_variants": [
                "0x486ff0cd",
                "0x486ff0cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a913664",
            "selector": "0x4a913664",
            "calldata_variants": [
                "0x4a913664",
                "0x4a9136640000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x572b6c05",
            "selector": "0x572b6c05",
            "calldata_variants": [
                "0x572b6c05",
                "0x572b6c050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5badbe4c",
            "selector": "0x5badbe4c",
            "calldata_variants": [
                "0x5badbe4c",
                "0x5badbe4c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1316,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1993,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2516,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 9,
    "guards_detected": [],
    "untrusted_call_count": 9
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x660538a96472f458a53486d9283bda8d0b0b59d77ee46e09b50b624eac3ac734
call_targets: 0x57dbcb192fa64bf07eab76941d1dae5177c8f4f3
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x660538a96472f458a53486d9283bda8d0b0b59d77ee46e09b50b624eac3ac734",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x57dbcb192fa64bf07eab76941d1dae5177c8f4f3"
    ],
    "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": "0x08759e9b",
            "selector": "0x08759e9b",
            "calldata_variants": [
                "0x08759e9b",
                "0x08759e9b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1459457a",
            "selector": "0x1459457a",
            "calldata_variants": [
                "0x1459457a",
                "0x1459457a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1ebe53ef",
            "selector": "0x1ebe53ef",
            "calldata_variants": [
                "0x1ebe53ef",
                "0x1ebe53ef0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3f4ba83a",
            "selector": "0x3f4ba83a",
            "calldata_variants": [
                "0x3f4ba83a",
                "0x3f4ba83a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x486ff0cd",
            "selector": "0x486ff0cd",
            "calldata_variants": [
                "0x486ff0cd",
                "0x486ff0cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a913664",
            "selector": "0x4a913664",
            "calldata_variants": [
                "0x4a913664",
                "0x4a9136640000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x572b6c05",
            "selector": "0x572b6c05",
            "calldata_variants": [
                "0x572b6c05",
                "0x572b6c050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5badbe4c",
            "selector": "0x5badbe4c",
            "calldata_variants": [
                "0x5badbe4c",
                "0x5badbe4c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1316,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1993,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2516,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 9,
    "guards_detected": []
}
medium upgradeability codex Upgradeable Portal can be initialized by anyone if proxy/implementation is left uninitialized 75 no
view
evidence_json
{
    "evidence": "`initialize` is `public` and guarded only by `initializer`, with no constructor disabling initializers in the implementation.",
    "locations": [
        "contracts/contracts/synth-core/Portal.sol:134",
        "contracts/contracts/utils/RelayRecipientUpgradeable.sol:10"
    ],
    "recommendation": "Add a constructor that calls `_disableInitializers()` on the implementation and ensure deployment scripts initialize the proxy atomically (e.g., constructor data).",
    "exploit_scenario": "If a proxy is deployed without an immediate initialize call (or the implementation is deployed and funded directly), an attacker can call initialize, become owner, set bridge/metaRouter, and then use onlyBridge paths (after setting bridge to themselves) to withdraw locked tokens."
}
medium math codex Fee-on-transfer/rebasing tokens can undercollateralize synths 75 no
view
evidence_json
{
    "evidence": "`balanceOf` is incremented by the user-supplied `_amount` after `safeTransferFrom`, without verifying actual tokens received.",
    "locations": [
        "contracts/contracts/synth-core/Portal.sol:174",
        "contracts/contracts/synth-core/Portal.sol:187",
        "contracts/contracts/synth-core/Portal.sol:558",
        "contracts/contracts/synth-core/Portal.sol:213",
        "contracts/contracts/synth-core/Portal.sol:624"
    ],
    "recommendation": "Whitelist only vanilla ERC20s or calculate the actual received amount by checking token balance before/after transfer and use that value for accounting and mint requests.",
    "exploit_scenario": "If a whitelisted token takes a transfer fee or rebases, `synthesize`/`metaSynthesize` use the requested `_amount` rather than the actual received amount. A user can mint synthetic assets for more than the contract actually locked, then later redeem full value, leaving the pool undercollateralized or causing insolvency on redeem."
}
low other codex Revert request functions are replayable, allowing repeated bridge calls 65 no
view
evidence_json
{
    "evidence": "The guard only checks `!= Unsynthesized` and does not prevent repeated calls once state is `RevertRequest`.",
    "locations": [
        "contracts/contracts/synth-core/Portal.sol:360",
        "contracts/contracts/synth-core/Portal.sol:370",
        "contracts/contracts/synth-core/Portal.sol:394",
        "contracts/contracts/synth-core/Portal.sol:400"
    ],
    "recommendation": "Require `unsynthesizeStates[externalID] == Default` before sending a revert request and consider adding explicit replay protection or an idempotency check.",
    "exploit_scenario": "An attacker can call `revertBurnRequest` or `metaRevertRequest` repeatedly for the same `internalID`. The functions only block the `Unsynthesized` state, so each call sends a new `transmitRequestV2` to the bridge. If the remote side is not idempotent, this can lead to duplicate processing; otherwise it can be used to spam or waste bridge resources."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 9
}