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

Analysis Run

019ba9bd-975f-73b1-8c6a-5aab9a2fbec6

failed
Chain ID
1
Address
Block Number
Created
Sat, Jan 10, 2026 9:08 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 DELEGATECALL target reachable
crit 0 high 0 direct contract
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
37960 artifact.fetch complete 1 / 3 3 months ago
37961 proxy.resolve complete 1 / 3 3 months ago
37962 tool.cast_disasm complete 1 / 3 3 months ago
37963 analysis.bundle complete 1 / 3 3 months ago
37964 capability.graph complete 1 / 3 3 months ago
37965 detector.run complete 1 / 3 3 months ago
37966 validation.fork complete 1 / 3 3 months ago
38158 report.consolidate complete 1 / 6 3 months ago
38159 tool.slither failed 2 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
failed slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-vc9wvnbm) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-vc9wvnbm) 'forge' returned non-zero exit code 1 2026-01-11T00:38:42.934341Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-vc9wvnbm/lib/forge-std/console.sol": No such file or directory (os error 2) stdout: Unable to resolve imports: stdout: "forge-std/console.sol" in "/tmp/slither-vc9wvnbm/src/FastTransferGateway.sol" stdout: with remappings: stdout: @openzeppelin/contracts-upgradeable/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts-upgradeable/contracts/ stdout: @openzeppelin/contracts/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts/contracts/ stdout: ds-test/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/ stdout: erc4626-tests/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/ stdout: forge-std/=/tmp/slither-vc9wvnbm/lib/forge-std/ stdout: openzeppelin-contracts-upgradeable/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts-upgradeable/ stdout: openzeppelin-contracts/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts/ stdout: Compiling 28 files with Solc 0.8.22 stdout: Solc 0.8.22 finished in 29.28ms Error: Compiler run failed: stderr: Error (6275): Source "lib/forge-std/console.sol" not found: File not found. Searched the following locations: "/tmp/slither-vc9wvnbm". stderr: ParserError: Source "lib/forge-std/console.sol" not found: File not found. Searched the following locations: "/tmp/slither-vc9wvnbm". stderr: --> src/FastTransferGateway.sol:12:1: stderr: | stderr: 12 | import {console} from "forge-std/console.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Traceback (most recent call last): File "/var/www/tripwire/.venv/bin/slither", line 10, in <module> sys.exit(main()) ~~~~^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main main_impl(all_detector_classes=detectors, all_printer_classes=printers) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl ) = process_all(filename, args, detector_classes, printer_classes) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all compilations = compile_all(target, **vars(args)) File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all compilations.append(CryticCompile(target, **kwargs)) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__ self._compile(**kwargs) ~~~~~~~~~~~~~^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile self._platform.compile(self, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile hardhat_like_parsing( ~~~~~~~~~~~~~~~~~~~~^ crytic_compile, str(self._target), build_directory, str(self._project_root) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing raise InvalidCompilation(txt) crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command? /tmp/slither-vc9wvnbm/out/build-info is not a directory.
Attempts
2 / 2
Findings
0
Solc
View stderr
Traceback (most recent call last):
  File "/var/www/tripwire/worker/worker.py", line 198, in main
    payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
  File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
    return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 1084, in run
    stdout_text, stderr_text, result_json = _run_slither(
                                            ~~~~~~~~~~~~^
        workspace,
        ^^^^^^^^^^
    ...<4 lines>...
        target_path=target_path,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
    raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-vc9wvnbm)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-vc9wvnbm)
'forge' returned non-zero exit code 1
2026-01-11T00:38:42.934341Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-vc9wvnbm/lib/forge-std/console.sol": No such file or directory (os error 2)
stdout: Unable to resolve imports:
stdout:       "forge-std/console.sol" in "/tmp/slither-vc9wvnbm/src/FastTransferGateway.sol"
stdout: with remappings:
stdout:       @openzeppelin/contracts-upgradeable/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts-upgradeable/contracts/
stdout:       @openzeppelin/contracts/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts/contracts/
stdout:       ds-test/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/
stdout:       erc4626-tests/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/
stdout:       forge-std/=/tmp/slither-vc9wvnbm/lib/forge-std/
stdout:       openzeppelin-contracts-upgradeable/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts-upgradeable/
stdout:       openzeppelin-contracts/=/tmp/slither-vc9wvnbm/lib/openzeppelin-contracts/
stdout: Compiling 28 files with Solc 0.8.22
stdout: Solc 0.8.22 finished in 29.28ms
Error: Compiler run failed:
stderr: Error (6275): Source "lib/forge-std/console.sol" not found: File not found. Searched the following locations: "/tmp/slither-vc9wvnbm".
stderr: ParserError: Source "lib/forge-std/console.sol" not found: File not found. Searched the following locations: "/tmp/slither-vc9wvnbm".
stderr:   --> src/FastTransferGateway.sol:12:1:
stderr:    |
stderr: 12 | import {console} from "forge-std/console.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Traceback (most recent call last):
  File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
    main_impl(all_detector_classes=detectors, all_printer_classes=printers)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
        ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
    compilations = compile_all(target, **vars(args))
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
    compilations.append(CryticCompile(target, **kwargs))
                        ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
    self._compile(**kwargs)
    ~~~~~~~~~~~~~^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
    self._platform.compile(self, **kwargs)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
    hardhat_like_parsing(
    ~~~~~~~~~~~~~~~~~~~~^
        crytic_compile, str(self._target), build_directory, str(self._project_root)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
    raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-vc9wvnbm/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Found two issues: lingering token allowances in GoFastCaller can let prior recipients drain future funds, and permit signatures are tied to a global mutable nonce enabling cheap griefing of permit-based submissions.
View stdout
{"no_findings":false,"summary":"Found two issues: lingering token allowances in GoFastCaller can let prior recipients drain future funds, and permit signatures are tied to a global mutable nonce enabling cheap griefing of permit-based submissions.","findings":[{"severity":"medium","category":"other","title":"GoFastCaller leaves approvals in place, allowing previous recipients to drain future tokens","exploit_scenario":"A malicious recipient contract is called via `fillOrder` with `order.data` and chooses not to pull tokens (or pulls less). The GoFastCaller approval to that recipient remains. Later, other users fill orders that route tokens through GoFastCaller, and the earlier recipient can call `transferFrom` using its leftover allowance to steal those tokens.","recommendation":"After the external call, reset allowance for `_target` back to 0 (or use a pattern that transfers tokens directly to the recipient before the call). Consider using `safeTransfer` + callback with no approval, or clear allowances per call to avoid cross-order token theft.","evidence":"`execute` approves `_target` for `_amount` and never revokes it, leaving residual allowances that persist across calls.","locations":["src/GoFastCaller.sol:25","src/GoFastCaller.sol:30"]},{"severity":"low","category":"auth","title":"Permit-based order submission uses a global nonce that can be cheaply griefed","exploit_scenario":"Users must sign a Permit2 message using the gateway’s current global `nonce`. Any account can submit a zero-amount (or tiny-amount) order to increment this nonce and invalidate a pre-signed permit, repeatedly griefing permit submissions.","recommendation":"Decouple order nonce from Permit2 nonce. Use per-user Permit2 nonces (provided by the signer) and keep a separate order ID nonce, or require the caller to supply a permit nonce and verify it without relying on the shared `nonce`. Also enforce `amountIn > 0` to raise the griefing cost.","evidence":"`submitOrderWithPermit` derives the permit nonce from the shared `nonce` state and increments it for every order, while `submitOrder` allows arbitrary amounts and also increments the same nonce.","locations":["src/FastTransferGateway.sol:160","src/FastTransferGateway.sol:216","src/FastTransferGateway.sol:226","src/FastTransferGateway.sol:233"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-d00ezo5t
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019baa41-0c9e-71d2-a418-d747e0797d2a
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Reading AUDIT_BUNDLE file**
exec
/bin/bash -lc ls in /tmp/codex-d00ezo5t succeeded in 5ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
lib
src
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-d00ezo5t succeeded in 7ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: src/FastTransferGateway.sol
================================================================================
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {IERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";

import {console} from "forge-std/console.sol";

import {TypeCasts} from "./libraries/TypeCasts.sol";




thinking
**Analyzing contract vulnerabilities and logic**

I'm carefully examining potential issues like missing reentrancy guards, improper validation of filler addresses in fillOrder, risks from arbitrary order submissions, and approval leftover in GoFastCaller. I’m diving into how these interact, including upgradeable contract initializations, token calls, and order ID encoding, to spot subtle vulnerabilities or design concerns. There is a lot here, especially around token transfers, order settlement logic, and access controls that I want to make sure I understand thoroughly.
thinking
**Reviewing data handling and upgrade patterns**

I’m sorting through potential edge cases with orderIDs length and memory reads beyond bounds, impact of non-32-byte-aligned inputs, and how Solidity handles memory padding. I’m checking whether upgrade contracts mix non-upgradeable imports with upgradeable initializers, and digging into interactions between fillOrder’s external calls, token approvals, and nonReentrant guards. There's a lot to unpack around nonce usage, wild card parameter handling, and contract initialization flows that I'll keep exploring carefully.
thinking
**Analyzing token approval and message handling risks**

I’m looking into how GoFastCaller’s use of forceApprove might let recipients maintain lingering allowances, risking token drains across orders sharing that contract, and how message handling in initiateTimeout and refund could be disrupted by crafted inputs. I’m also exploring signature validation nuances with permit2 and replay concerns, as well as subtle gaps in order sender validation and allowance management that might affect token flow and refund correctness.
thinking
**Confirming repayment address and permit nonce issues**

I’m focusing on how repaymentAddress can differ from filler without harm due to checks on destination chain, and how shared global nonce usage in submitOrderWithPermit can cause permit signature DoS via nonce invalidation by zero-amount orders. This design quirk affects signature validity timing and is worth noting alongside the GoFastCaller approval concern.
exec
/bin/bash -lc "rg -n \"execute\\(|forceApprove\" -n src/GoFastCaller.sol" in /tmp/codex-d00ezo5t succeeded in 9ms:
25:    function execute(address _target, address _token, uint256 _amount, bytes memory _data)
30:        IERC20(_token).forceApprove(_target, _amount);
exec
/bin/bash -lc 'nl -ba src/GoFastCaller.sol' in /tmp/codex-d00ezo5t succeeded in 8ms:
     1	// SPDX-License-Identifier: UNLICENSED
     2	pragma solidity ^0.8.13;
     3	
     4	import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
     5	import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
     6	import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
     7	
     8	contract GoFastCaller is Ownable {
     9	    using SafeERC20 for IERC20;
    10	
    11	    address public gateway;
    12	
    13	    constructor(address _owner) Ownable(_owner) {}
    14	
    15	    function setGateway(address _gateway) external onlyOwner {
    16	        gateway = _gateway;
    17	    }
    18	
    19	    modifier onlyGateway() {
    20	        require(gateway != address(0), "GoFastCaller: gateway not set");

thinking
**Preparing to add line numbers**
exec
/bin/bash -lc "nl -ba src/FastTransferGateway.sol | sed -n '90,220p'" in /tmp/codex-d00ezo5t succeeded in 8ms:
    90	
    91	    mapping(bytes32 => SettlementDetails) public settlementDetails;
    92	    mapping(bytes32 => OrderStatus) public orderStatuses;
    93	
    94	    mapping(bytes32 => OrderFill) public orderFills;
    95	
    96	    GoFastCaller public goFastCaller;
    97	
    98	    constructor() {
    99	        _disableInitializers();
   100	    }
   101	
   102	    function initialize(
   103	        uint32 _localDomain,
   104	        address _owner,
   105	        address _token,
   106	        address _mailbox,
   107	        address _interchainSecurityModule,
   108	        address _permit2,
   109	        address _goFastCaller
exec
/bin/bash -lc "nl -ba src/FastTransferGateway.sol | sed -n '220,320p'" in /tmp/codex-d00ezo5t succeeded in 5ms:
   220	        bytes32 orderID = _orderID(order);
   221	
   222	        // checks
   223	        require(remoteDomains[destinationDomain] != bytes32(0), "FastTransferGateway: destination domain not found");
   224	
   225	        // effects
   226	        nonce += 1;
   227	        settlementDetails[orderID] =
   228	            SettlementDetails(order.sender, order.nonce, order.destinationDomain, order.amountIn);
   229	
   230	        emit OrderSubmitted(orderID, OrderEncoder.encode(order));
   231	
   232	        // interactions
   233	        _permitTransferFrom(order.amountIn, permitDeadline, order.nonce, signature);
   234	
   235	        return orderID;
   236	    }
   237	
   238	    /// @dev Fills an order
   239	    /// @param order The details of the order to fill

thinking
**Formulating security findings and JSON output**
codex
{"no_findings":false,"summary":"Found two issues: lingering token allowances in GoFastCaller can let prior recipients drain future funds, and permit signatures are tied to a global mutable nonce enabling cheap griefing of permit-based submissions.","findings":[{"severity":"medium","category":"other","title":"GoFastCaller leaves approvals in place, allowing previous recipients to drain future tokens","exploit_scenario":"A malicious recipient contract is called via `fillOrder` with `order.data` and chooses not to pull tokens (or pulls less). The GoFastCaller approval to that recipient remains. Later, other users fill orders that route tokens through GoFastCaller, and the earlier recipient can call `transferFrom` using its leftover allowance to steal those tokens.","recommendation":"After the external call, reset allowance for `_target` back to 0 (or use a pattern that transfers tokens directly to the recipient before the call). Consider using `safeTransfer` + callback with no approval, or clear allowances per call to avoid cross-order token theft.","evidence":"`execute` approves `_target` for `_amount` and never revokes it, leaving residual allowances that persist across calls.","locations":["src/GoFastCaller.sol:25","src/GoFastCaller.sol:30"]},{"severity":"low","category":"auth","title":"Permit-based order submission uses a global nonce that can be cheaply griefed","exploit_scenario":"Users must sign a Permit2 message using the gateway’s current global `nonce`. Any account can submit a zero-amount (or tiny-amount) order to increment this nonce and invalidate a pre-signed permit, repeatedly griefing permit submissions.","recommendation":"Decouple order nonce from Permit2 nonce. Use per-user Permit2 nonces (provided by the signer) and keep a separate order ID nonce, or require the caller to supply a permit nonce and verify it without relying on the shared `nonce`. Also enforce `amountIn > 0` to raise the griefing cost.","evidence":"`submitOrderWithPermit` derives the permit nonce from the shared `nonce` state and increments it for every order, while `submitOrder` allows arbitrary amounts and also increments the same nonce.","locations":["src/FastTransferGateway.sol:160","src/FastTransferGateway.sol:216","src/FastTransferGateway.sol:226","src/FastTransferGateway.sol:233"]}]}
tokens used
27,724
Metadata
{
    "codex": {
        "ran_at": "2026-01-10T23:36:41.686472+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 22,
        "import_count": 26,
        "first_party_contracts_count": 6
    },
    "summary": "Found two issues: lingering token allowances in GoFastCaller can let prior recipients drain future funds, and permit signatures are tied to a global mutable nonce enabling cheap griefing of permit-based submissions.",
    "raw_final": {
        "summary": "Found two issues: lingering token allowances in GoFastCaller can let prior recipients drain future funds, and permit signatures are tied to a global mutable nonce enabling cheap griefing of permit-based submissions.",
        "findings": [
            {
                "title": "GoFastCaller leaves approvals in place, allowing previous recipients to drain future tokens",
                "category": "other",
                "evidence": "`execute` approves `_target` for `_amount` and never revokes it, leaving residual allowances that persist across calls.",
                "severity": "medium",
                "locations": [
                    "src/GoFastCaller.sol:25",
                    "src/GoFastCaller.sol:30"
                ],
                "recommendation": "After the external call, reset allowance for `_target` back to 0 (or use a pattern that transfers tokens directly to the recipient before the call). Consider using `safeTransfer` + callback with no approval, or clear allowances per call to avoid cross-order token theft.",
                "exploit_scenario": "A malicious recipient contract is called via `fillOrder` with `order.data` and chooses not to pull tokens (or pulls less). The GoFastCaller approval to that recipient remains. Later, other users fill orders that route tokens through GoFastCaller, and the earlier recipient can call `transferFrom` using its leftover allowance to steal those tokens."
            },
            {
                "title": "Permit-based order submission uses a global nonce that can be cheaply griefed",
                "category": "auth",
                "evidence": "`submitOrderWithPermit` derives the permit nonce from the shared `nonce` state and increments it for every order, while `submitOrder` allows arbitrary amounts and also increments the same nonce.",
                "severity": "low",
                "locations": [
                    "src/FastTransferGateway.sol:160",
                    "src/FastTransferGateway.sol:216",
                    "src/FastTransferGateway.sol:226",
                    "src/FastTransferGateway.sol:233"
                ],
                "recommendation": "Decouple order nonce from Permit2 nonce. Use per-user Permit2 nonces (provided by the signer) and keep a separate order ID nonce, or require the caller to supply a permit nonce and verify it without relying on the shared `nonce`. Also enforce `amountIn > 0` to raise the griefing cost.",
                "exploit_scenario": "Users must sign a Permit2 message using the gateway\u2019s current global `nonce`. Any account can submit a zero-amount (or tiny-amount) order to increment this nonce and invalidate a pre-signed permit, repeatedly griefing permit submissions."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
7
EXT*/BALANCE
5
Total opcodes
8454
Flags
delegatecall_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01c2
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x88efb875
00000019: GT
0000001a: PUSH2 0x00f7
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xd5438eae
00000024: GT
00000025: PUSH2 0x0095
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xf2fde38b
0000002f: GT
00000030: PUSH2 0x0064
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xf2fde38b
0000003a: EQ
0000003b: PUSH2 0x059c
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf3c61d6b
00000045: EQ
00000046: PUSH2 0x05bc
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf7213db6
00000050: EQ
00000051: PUSH2 0x05dc
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfc0c546a
0000005b: EQ
0000005c: PUSH2 0x0651
0000005f: JUMPI
00000060: PUSH1 0x00
00000062: DUP1
00000063: REVERT
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xd5438eae
0000006b: EQ
0000006c: PUSH2 0x051c
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xde523cf3
00000076: EQ
00000077: PUSH2 0x053c
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xe5dc8496
00000081: EQ
00000082: PUSH2 0x055c
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xe88787c2
0000008c: EQ
0000008d: PUSH2 0x057c
00000090: JUMPI
00000091: PUSH1 0x00
00000093: DUP1
00000094: REVERT
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0xad3cb1cc
0000009c: GT
0000009d: PUSH2 0x00d1
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xad3cb1cc
000000a7: EQ
000000a8: PUSH2 0x0481
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xaffed0e0
000000b2: EQ
000000b3: PUSH2 0x04bf
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xb549117c
000000bd: EQ
000000be: PUSH2 0x04dc
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xc87d1240
000000c8: EQ
000000c9: PUSH2 0x04fc
000000cc: JUMPI
000000cd: PUSH1 0x00
000000cf: DUP1
000000d0: REVERT
000000d1: JUMPDEST
000000d2: DUP1
000000d3: PUSH4 0x88efb875
000000d8: EQ
000000d9: PUSH2 0x03f8
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0x8d3638f4
000000e3: EQ
000000e4: PUSH2 0x040b
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x8da5cb5b
000000ee: EQ
000000ef: PUSH2 0x0444
000000f2: JUMPI
000000f3: PUSH1 0x00
000000f5: DUP1
000000f6: REVERT
000000f7: JUMPDEST
000000f8: DUP1
000000f9: PUSH4 0x52d1902d
000000fe: GT
000000ff: PUSH2 0x0164
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0x6afdd850
00000109: GT
0000010a: PUSH2 0x013e
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x6afdd850
00000114: EQ
00000115: PUSH2 0x02f7
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x715018a6
0000011f: EQ
00000120: PUSH2 0x032f
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x7f665ee5
0000012a: EQ
0000012b: PUSH2 0x0344
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x85cf3f93
00000135: EQ
00000136: PUSH2 0x0381
00000139: JUMPI
0000013a: PUSH1 0x00
0000013c: DUP1
0000013d: REVERT
0000013e: JUMPDEST
0000013f: DUP1
00000140: PUSH4 0x52d1902d
00000145: EQ
00000146: PUSH2 0x02af
00000149: JUMPI
0000014a: DUP1
0000014b: PUSH4 0x56d5d475
00000150: EQ
00000151: PUSH2 0x02c4
00000154: JUMPI
00000155: DUP1
00000156: PUSH4 0x6ad1b6ac
0000015b: EQ
0000015c: PUSH2 0x02d7
0000015f: JUMPI
00000160: PUSH1 0x00
00000162: DUP1
00000163: REVERT
00000164: JUMPDEST
00000165: DUP1
00000166: PUSH4 0x1ea9e2e3
0000016b: GT
0000016c: PUSH2 0x01a0
0000016f: JUMPI
00000170: DUP1
00000171: PUSH4 0x1ea9e2e3
00000176: EQ
00000177: PUSH2 0x023c
0000017a: JUMPI
0000017b: DUP1
0000017c: PUSH4 0x30c5b926
00000181: EQ
00000182: PUSH2 0x0269
00000185: JUMPI
00000186: DUP1
00000187: PUSH4 0x4eae2607
0000018c: EQ
0000018d: PUSH2 0x027c
00000190: JUMPI
00000191: DUP1
00000192: PUSH4 0x4f1ef286
00000197: EQ
00000198: PUSH2 0x029c
0000019b: JUMPI
0000019c: PUSH1 0x00
0000019e: DUP1
0000019f: REVERT
000001a0: JUMPDEST
000001a1: DUP1
000001a2: PUSH4 0x061b32c9
000001a7: EQ
000001a8: PUSH2 0x01c7
000001ab: JUMPI
000001ac: DUP1
000001ad: PUSH4 0x0b5e0b68
000001b2: EQ
000001b3: PUSH2 0x01fa
000001b6: JUMPI
000001b7: DUP1
000001b8: PUSH4 0x0e72cc06
000001bd: EQ
000001be: PUSH2 0x021c
000001c1: JUMPI
000001c2: JUMPDEST
000001c3: PUSH1 0x00
000001c5: DUP1
000001c6: REVERT
000001c7: JUMPDEST
000001c8: CALLVALUE
000001c9: DUP1
000001ca: ISZERO
000001cb: PUSH2 0x01d3
000001ce: JUMPI
000001cf: PUSH1 0x00
000001d1: DUP1
000001d2: REVERT
000001d3: JUMPDEST
000001d4: POP
000001d5: PUSH2 0x01e7
000001d8: PUSH2 0x01e2
000001db: CALLDATASIZE
000001dc: PUSH1 0x04
000001de: PUSH2 0x2727
000001e1: JUMP
000001e2: JUMPDEST
000001e3: PUSH2 0x0671
000001e6: JUMP
000001e7: JUMPDEST
000001e8: PUSH1 0x40
000001ea: MLOAD
000001eb: SWAP1
000001ec: DUP2
000001ed: MSTORE
000001ee: PUSH1 0x20
000001f0: ADD
000001f1: JUMPDEST
000001f2: PUSH1 0x40
000001f4: MLOAD
000001f5: DUP1
000001f6: SWAP2
000001f7: SUB
000001f8: SWAP1
000001f9: RETURN
000001fa: JUMPDEST
000001fb: CALLVALUE
000001fc: DUP1
000001fd: ISZERO
000001fe: PUSH2 0x0206
00000201: JUMPI
00000202: PUSH1 0x00
00000204: DUP1
00000205: REVERT
00000206: JUMPDEST
00000207: POP
00000208: PUSH2 0x021a
0000020b: PUSH2 0x0215
0000020e: CALLDATASIZE
0000020f: PUSH1 0x04
00000211: PUSH2 0x2806
00000214: JUMP
00000215: JUMPDEST
00000216: PUSH2 0x0886
00000219: JUMP
0000021a: JUMPDEST
0000021b: STOP
0000021c: JUMPDEST
0000021d: CALLVALUE
0000021e: DUP1
0000021f: ISZERO
00000220: PUSH2 0x0228
00000223: JUMPI
00000224: PUSH1 0x00
00000226: DUP1
00000227: REVERT
00000228: JUMPDEST
00000229: POP
0000022a: PUSH2 0x021a
0000022d: PUSH2 0x0237
00000230: CALLDATASIZE
00000231: PUSH1 0x04
00000233: PUSH2 0x288c
00000236: JUMP
00000237: JUMPDEST
00000238: PUSH2 0x0a9f
0000023b: JUMP
0000023c: JUMPDEST
0000023d: CALLVALUE
0000023e: DUP1
0000023f: ISZERO
00000240: PUSH2 0x0248
00000243: JUMPI
00000244: PUSH1 0x00
00000246: DUP1
00000247: REVERT
00000248: JUMPDEST
00000249: POP
0000024a: PUSH2 0x01e7
0000024d: PUSH2 0x0257
00000250: CALLDATASIZE
00000251: PUSH1 0x04
00000253: PUSH2 0x28a7
00000256: JUMP
00000257: JUMPDEST
00000258: PUSH1 0x04
0000025a: PUSH1 0x20
0000025c: MSTORE
0000025d: PUSH1 0x00
0000025f: SWAP1
00000260: DUP2
00000261: MSTORE
00000262: PUSH1 0x40
00000264: SWAP1
00000265: KECCAK256
00000266: SLOAD
00000267: DUP2
00000268: JUMP
00000269: JUMPDEST
0000026a: PUSH2 0x021a
0000026d: PUSH2 0x0277
00000270: CALLDATASIZE
00000271: PUSH1 0x04
00000273: PUSH2 0x29ae
00000276: JUMP
00000277: JUMPDEST
00000278: PUSH2 0x0ac9
0000027b: JUMP
0000027c: JUMPDEST
0000027d: CALLVALUE
0000027e: DUP1
0000027f: ISZERO
00000280: PUSH2 0x0288
00000283: JUMPI
00000284: PUSH1 0x00
00000286: DUP1
00000287: REVERT
00000288: JUMPDEST
00000289: POP
0000028a: PUSH2 0x01e7
0000028d: PUSH2 0x0297
00000290: CALLDATASIZE
00000291: PUSH1 0x04
00000293: PUSH2 0x2b48
00000296: JUMP
00000297: JUMPDEST
00000298: PUSH2 0x0c84
0000029b: JUMP
0000029c: JUMPDEST
0000029d: PUSH2 0x021a
000002a0: PUSH2 0x02aa
000002a3: CALLDATASIZE
000002a4: PUSH1 0x04
000002a6: PUSH2 0x2b8b
000002a9: JUMP
000002aa: JUMPDEST
000002ab: PUSH2 0x0dba
000002ae: JUMP
000002af: JUMPDEST
000002b0: CALLVALUE
000002b1: DUP1
000002b2: ISZERO
000002b3: PUSH2 0x02bb
000002b6: JUMPI
000002b7: PUSH1 0x00
000002b9: DUP1
000002ba: REVERT
000002bb: JUMPDEST
000002bc: POP
000002bd: PUSH2 0x01e7
000002c0: PUSH2 0x0dd9
000002c3: JUMP
000002c4: JUMPDEST
000002c5: PUSH2 0x021a
000002c8: PUSH2 0x02d2
000002cb: CALLDATASIZE
000002cc: PUSH1 0x04
000002ce: PUSH2 0x2bc2
000002d1: JUMP
000002d2: JUMPDEST
000002d3: PUSH2 0x0df6
000002d6: JUMP
000002d7: JUMPDEST
000002d8: CALLVALUE
000002d9: DUP1
000002da: ISZERO
000002db: PUSH2 0x02e3
000002de: JUMPI
000002df: PUSH1 0x00
000002e1: DUP1
000002e2: REVERT
000002e3: JUMPDEST
000002e4: POP
000002e5: PUSH2 0x01e7
000002e8: PUSH2 0x02f2
000002eb: CALLDATASIZE
000002ec: PUSH1 0x04
000002ee: PUSH2 0x2c1b
000002f1: JUMP
000002f2: JUMPDEST
000002f3: PUSH2 0x108d
000002f6: JUMP
000002f7: JUMPDEST
000002f8: CALLVALUE
000002f9: DUP1
000002fa: ISZERO
000002fb: PUSH2 0x0303
000002fe: JUMPI
000002ff: PUSH1 0x00
00000301: DUP1
00000302: REVERT
00000303: JUMPDEST
00000304: POP
00000305: PUSH1 0x00
00000307: SLOAD
00000308: PUSH2 0x0317
0000030b: SWAP1
0000030c: PUSH1 0x01
0000030e: PUSH1 0x01
00000310: PUSH1 0xa0
00000312: SHL
00000313: SUB
00000314: AND
00000315: DUP2
00000316: JUMP
00000317: JUMPDEST
00000318: PUSH1 0x40
0000031a: MLOAD
0000031b: PUSH1 0x01
0000031d: PUSH1 0x01
0000031f: PUSH1 0xa0
00000321: SHL
00000322: SUB
00000323: SWAP1
00000324: SWAP2
00000325: AND
00000326: DUP2
00000327: MSTORE
00000328: PUSH1 0x20
0000032a: ADD
0000032b: PUSH2 0x01f1
0000032e: JUMP
0000032f: JUMPDEST
00000330: CALLVALUE
00000331: DUP1
00000332: ISZERO
00000333: PUSH2 0x033b
00000336: JUMPI
00000337: PUSH1 0x00
00000339: DUP1
0000033a: REVERT
0000033b: JUMPDEST
0000033c: POP
0000033d: PUSH2 0x021a
00000340: PUSH2 0x12a0
00000343: JUMP
00000344: JUMPDEST
00000345: CALLVALUE
00000346: DUP1
00000347: ISZERO
00000348: PUSH2 0x0350
0000034b: JUMPI
0000034c: PUSH1 0x00
0000034e: DUP1
0000034f: REVERT
00000350: JUMPDEST
00000351: POP
00000352: PUSH2 0x0374
00000355: PUSH2 0x035f
00000358: CALLDATASIZE
00000359: PUSH1 0x04
0000035b: PUSH2 0x2ca5
0000035e: JUMP
0000035f: JUMPDEST
00000360: PUSH1 0x07
00000362: PUSH1 0x20
00000364: MSTORE
00000365: PUSH1 0x00
00000367: SWAP1
00000368: DUP2
00000369: MSTORE
0000036a: PUSH1 0x40
0000036c: SWAP1
0000036d: KECCAK256
0000036e: SLOAD
0000036f: PUSH1 0xff
00000371: AND
00000372: DUP2
00000373: JUMP
00000374: JUMPDEST
00000375: PUSH1 0x40
00000377: MLOAD
00000378: PUSH2 0x01f1
0000037b: SWAP2
0000037c: SWAP1
0000037d: PUSH2 0x2cd4
00000380: JUMP
00000381: JUMPDEST
00000382: CALLVALUE
00000383: DUP1
00000384: ISZERO
00000385: PUSH2 0x038d
00000388: JUMPI
00000389: PUSH1 0x00
0000038b: DUP1
0000038c: REVERT
0000038d: JUMPDEST
0000038e: POP
0000038f: PUSH2 0x03cc
00000392: PUSH2 0x039c
00000395: CALLDATASIZE
00000396: PUSH1 0x04
00000398: PUSH2 0x2ca5
0000039b: JUMP
0000039c: JUMPDEST
0000039d: PUSH1 0x06
0000039f: PUSH1 0x20
000003a1: MSTORE
000003a2: PUSH1 0x00
000003a4: SWAP1
000003a5: DUP2
000003a6: MSTORE
000003a7: PUSH1 0x40
000003a9: SWAP1
000003aa: KECCAK256
000003ab: DUP1
000003ac: SLOAD
000003ad: PUSH1 0x01
000003af: DUP3
000003b0: ADD
000003b1: SLOAD
000003b2: PUSH1 0x02
000003b4: DUP4
000003b5: ADD
000003b6: SLOAD
000003b7: PUSH1 0x03
000003b9: SWAP1
000003ba: SWAP4
000003bb: ADD
000003bc: SLOAD
000003bd: SWAP2
000003be: SWAP3
000003bf: SWAP1
000003c0: SWAP2
000003c1: PUSH4 0xffffffff
000003c6: SWAP1
000003c7: SWAP2
000003c8: AND
000003c9: SWAP1
000003ca: DUP5
000003cb: JUMP
000003cc: JUMPDEST
000003cd: PUSH1 0x40
000003cf: MLOAD
000003d0: PUSH2 0x01f1
000003d3: SWAP5
000003d4: SWAP4
000003d5: SWAP3
000003d6: SWAP2
000003d7: SWAP1
000003d8: SWAP4
000003d9: DUP5
000003da: MSTORE
000003db: PUSH1 0x20
000003dd: DUP5
000003de: ADD
000003df: SWAP3
000003e0: SWAP1
000003e1: SWAP3
000003e2: MSTORE
000003e3: PUSH4 0xffffffff
000003e8: AND
000003e9: PUSH1 0x40
000003eb: DUP4
000003ec: ADD
000003ed: MSTORE
000003ee: PUSH1 0x60
000003f0: DUP3
000003f1: ADD
000003f2: MSTORE
000003f3: PUSH1 0x80
000003f5: ADD
000003f6: SWAP1
000003f7: JUMP
000003f8: JUMPDEST
000003f9: PUSH2 0x021a
000003fc: PUSH2 0x0406
000003ff: CALLDATASIZE
00000400: PUSH1 0x04
00000402: PUSH2 0x2cfc
00000405: JUMP
00000406: JUMPDEST
00000407: PUSH2 0x12b4
0000040a: JUMP
0000040b: JUMPDEST
0000040c: CALLVALUE
0000040d: DUP1
0000040e: ISZERO
0000040f: PUSH2 0x0417
00000412: JUMPI
00000413: PUSH1 0x00
00000415: DUP1
00000416: REVERT
00000417: JUMPDEST
00000418: POP
00000419: PUSH1 0x03
0000041b: SLOAD
0000041c: PUSH2 0x042f
0000041f: SWAP1
00000420: PUSH1 0x01
00000422: PUSH1 0xa0
00000424: SHL
00000425: SWAP1
00000426: DIV
00000427: PUSH4 0xffffffff
0000042c: AND
0000042d: DUP2
0000042e: JUMP
0000042f: JUMPDEST
00000430: PUSH1 0x40
00000432: MLOAD
00000433: PUSH4 0xffffffff
00000438: SWAP1
00000439: SWAP2
0000043a: AND
0000043b: DUP2
0000043c: MSTORE
0000043d: PUSH1 0x20
0000043f: ADD
00000440: PUSH2 0x01f1
00000443: JUMP
00000444: JUMPDEST
00000445: CALLVALUE
00000446: DUP1
00000447: ISZERO
00000448: PUSH2 0x0450
0000044b: JUMPI
0000044c: PUSH1 0x00
0000044e: DUP1
0000044f: REVERT
00000450: JUMPDEST
00000451: POP
00000452: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
00000473: SLOAD
00000474: PUSH1 0x01
00000476: PUSH1 0x01
00000478: PUSH1 0xa0
0000047a: SHL
0000047b: SUB
0000047c: AND
0000047d: PUSH2 0x0317
00000480: JUMP
00000481: JUMPDEST
00000482: CALLVALUE
00000483: DUP1
00000484: ISZERO
00000485: PUSH2 0x048d
00000488: JUMPI
00000489: PUSH1 0x00
0000048b: DUP1
0000048c: REVERT
0000048d: JUMPDEST
0000048e: POP
0000048f: PUSH2 0x04b2
00000492: PUSH1 0x40
00000494: MLOAD
00000495: DUP1
00000496: PUSH1 0x40
00000498: ADD
00000499: PUSH1 0x40
0000049b: MSTORE
0000049c: DUP1
0000049d: PUSH1 0x05
0000049f: DUP2
000004a0: MSTORE
000004a1: PUSH1 0x20
000004a3: ADD
000004a4: PUSH5 0x0352e302e3
000004aa: PUSH1 0xdc
000004ac: SHL
000004ad: DUP2
000004ae: MSTORE
000004af: POP
000004b0: DUP2
000004b1: JUMP
000004b2: JUMPDEST
000004b3: PUSH1 0x40
000004b5: MLOAD
000004b6: PUSH2 0x01f1
000004b9: SWAP2
000004ba: SWAP1
000004bb: PUSH2 0x2d88
000004be: JUMP
000004bf: JUMPDEST
000004c0: CALLVALUE
000004c1: DUP1
000004c2: ISZERO
000004c3: PUSH2 0x04cb
000004c6: JUMPI
000004c7: PUSH1 0x00
000004c9: DUP1
000004ca: REVERT
000004cb: JUMPDEST
000004cc: POP
000004cd: PUSH1 0x05
000004cf: SLOAD
000004d0: PUSH2 0x042f
000004d3: SWAP1
000004d4: PUSH4 0xffffffff
000004d9: AND
000004da: DUP2
000004db: JUMP
000004dc: JUMPDEST
000004dd: CALLVALUE
000004de: DUP1
000004df: ISZERO
000004e0: PUSH2 0x04e8
000004e3: JUMPI
000004e4: PUSH1 0x00
000004e6: DUP1
000004e7: REVERT
000004e8: JUMPDEST
000004e9: POP
000004ea: PUSH2 0x021a
000004ed: PUSH2 0x04f7
000004f0: CALLDATASIZE
000004f1: PUSH1 0x04
000004f3: PUSH2 0x2d9b
000004f6: JUMP
000004f7: JUMPDEST
000004f8: PUSH2 0x1519
000004fb: JUMP
000004fc: JUMPDEST
000004fd: CALLVALUE
000004fe: DUP1
000004ff: ISZERO
00000500: PUSH2 0x0508
00000503: JUMPI
00000504: PUSH1 0x00
00000506: DUP1
00000507: REVERT
00000508: JUMPDEST
00000509: POP
0000050a: PUSH1 0x09
0000050c: SLOAD
0000050d: PUSH2 0x0317
00000510: SWAP1
00000511: PUSH1 0x01
00000513: PUSH1 0x01
00000515: PUSH1 0xa0
00000517: SHL
00000518: SUB
00000519: AND
0000051a: DUP2
0000051b: JUMP
0000051c: JUMPDEST
0000051d: CALLVALUE
0000051e: DUP1
0000051f: ISZERO
00000520: PUSH2 0x0528
00000523: JUMPI
00000524: PUSH1 0x00
00000526: DUP1
00000527: REVERT
00000528: JUMPDEST
00000529: POP
0000052a: PUSH1 0x02
0000052c: SLOAD
0000052d: PUSH2 0x0317
00000530: SWAP1
00000531: PUSH1 0x01
00000533: PUSH1 0x01
00000535: PUSH1 0xa0
00000537: SHL
00000538: SUB
00000539: AND
0000053a: DUP2
0000053b: JUMP
0000053c: JUMPDEST
0000053d: CALLVALUE
0000053e: DUP1
0000053f: ISZERO
00000540: PUSH2 0x0548
00000543: JUMPI
00000544: PUSH1 0x00
00000546: DUP1
00000547: REVERT
00000548: JUMPDEST
00000549: POP
0000054a: PUSH1 0x03
0000054c: SLOAD
0000054d: PUSH2 0x0317
00000550: SWAP1
00000551: PUSH1 0x01
00000553: PUSH1 0x01
00000555: PUSH1 0xa0
00000557: SHL
00000558: SUB
00000559: AND
0000055a: DUP2
0000055b: JUMP
0000055c: JUMPDEST
0000055d: CALLVALUE
0000055e: DUP1
0000055f: ISZERO
00000560: PUSH2 0x0568
00000563: JUMPI
00000564: PUSH1 0x00
00000566: DUP1
00000567: REVERT
00000568: JUMPDEST
00000569: POP
0000056a: PUSH2 0x021a
0000056d: PUSH2 0x0577
00000570: CALLDATASIZE
00000571: PUSH1 0x04
00000573: PUSH2 0x2dde
00000576: JUMP
00000577: JUMPDEST
00000578: PUSH2 0x1953
0000057b: JUMP
0000057c: JUMPDEST
0000057d: CALLVALUE
0000057e: DUP1
0000057f: ISZERO
00000580: PUSH2 0x0588
00000583: JUMPI
00000584: PUSH1 0x00
00000586: DUP1
00000587: REVERT
00000588: JUMPDEST
00000589: POP
0000058a: PUSH2 0x01e7
0000058d: PUSH2 0x0597
00000590: CALLDATASIZE
00000591: PUSH1 0x04
00000593: PUSH2 0x2e08
00000596: JUMP
00000597: JUMPDEST
00000598: PUSH2 0x1974
0000059b: JUMP
0000059c: JUMPDEST
0000059d: CALLVALUE
0000059e: DUP1
0000059f: ISZERO
000005a0: PUSH2 0x05a8
000005a3: JUMPI
000005a4: PUSH1 0x00
000005a6: DUP1
000005a7: REVERT
000005a8: JUMPDEST
000005a9: POP
000005aa: PUSH2 0x021a
000005ad: PUSH2 0x05b7
000005b0: CALLDATASIZE
000005b1: PUSH1 0x04
000005b3: PUSH2 0x288c
000005b6: JUMP
000005b7: JUMPDEST
000005b8: PUSH2 0x1a4e
000005bb: JUMP
000005bc: JUMPDEST
000005bd: CALLVALUE
000005be: DUP1
000005bf: ISZERO
000005c0: PUSH2 0x05c8
000005c3: JUMPI
000005c4: PUSH1 0x00
000005c6: DUP1
000005c7: REVERT
000005c8: JUMPDEST
000005c9: POP
000005ca: PUSH2 0x021a
000005cd: PUSH2 0x05d7
000005d0: CALLDATASIZE
000005d1: PUSH1 0x04
000005d3: PUSH2 0x288c
000005d6: JUMP
000005d7: JUMPDEST
000005d8: PUSH2 0x1a8c
000005db: JUMP
000005dc: JUMPDEST
000005dd: CALLVALUE
000005de: DUP1
000005df: ISZERO
000005e0: PUSH2 0x05e8
000005e3: JUMPI
000005e4: PUSH1 0x00
000005e6: DUP1
000005e7: REVERT
000005e8: JUMPDEST
000005e9: POP
000005ea: PUSH2 0x0628
000005ed: PUSH2 0x05f7
000005f0: CALLDATASIZE
000005f1: PUSH1 0x04
000005f3: PUSH2 0x2ca5
000005f6: JUMP
000005f7: JUMPDEST
000005f8: PUSH1 0x08
000005fa: PUSH1 0x20
000005fc: MSTORE
000005fd: PUSH1 0x00
000005ff: SWAP1
00000600: DUP2
00000601: MSTORE
00000602: PUSH1 0x40
00000604: SWAP1
00000605: KECCAK256
00000606: DUP1
00000607: SLOAD
00000608: PUSH1 0x01
0000060a: SWAP1
0000060b: SWAP2
0000060c: ADD
0000060d: SLOAD
0000060e: PUSH1 0x01
00000610: PUSH1 0x01
00000612: PUSH1 0xa0
00000614: SHL
00000615: SUB
00000616: DUP2
00000617: AND
00000618: SWAP1
00000619: PUSH1 0x01
0000061b: PUSH1 0xa0
0000061d: SHL
0000061e: SWAP1
0000061f: DIV
00000620: PUSH4 0xffffffff
00000625: AND
00000626: DUP4
00000627: JUMP
00000628: JUMPDEST
00000629: PUSH1 0x40
0000062b: DUP1
0000062c: MLOAD
0000062d: SWAP4
0000062e: DUP5
0000062f: MSTORE
00000630: PUSH1 0x01
00000632: PUSH1 0x01
00000634: PUSH1 0xa0
00000636: SHL
00000637: SUB
00000638: SWAP1
00000639: SWAP3
0000063a: AND
0000063b: PUSH1 0x20
0000063d: DUP5
0000063e: ADD
0000063f: MSTORE
00000640: PUSH4 0xffffffff
00000645: AND
00000646: SWAP1
00000647: DUP3
00000648: ADD
00000649: MSTORE
0000064a: PUSH1 0x60
0000064c: ADD
0000064d: PUSH2 0x01f1
00000650: JUMP
00000651: JUMPDEST
00000652: CALLVALUE
00000653: DUP1
00000654: ISZERO
00000655: PUSH2 0x065d
00000658: JUMPI
00000659: PUSH1 0x00
0000065b: DUP1
0000065c: REVERT
0000065d: JUMPDEST
0000065e: POP
0000065f: PUSH1 0x01
00000661: SLOAD
00000662: PUSH2 0x0317
00000665: SWAP1
00000666: PUSH1 0x01
00000668: PUSH1 0x01
0000066a: PUSH1 0xa0
0000066c: SHL
0000066d: SUB
0000066e: AND
0000066f: DUP2
00000670: JUMP
00000671: JUMPDEST
00000672: PUSH1 0x00
00000674: TIMESTAMP
00000675: DUP8
00000676: PUSH1 0x01
00000678: PUSH1 0x01
0000067a: PUSH1 0x40
0000067c: SHL
0000067d: SUB
0000067e: AND
0000067f: GT
00000680: PUSH2 0x06a4
00000683: JUMPI
00000684: PUSH1 0x40
00000686: MLOAD
00000687: PUSH3 0x461bcd
0000068b: PUSH1 0xe5
0000068d: SHL
0000068e: DUP2
0000068f: MSTORE
00000690: PUSH1 0x04
00000692: ADD
00000693: PUSH2 0x069b
00000696: SWAP1
00000697: PUSH2 0x2e5e
0000069a: JUMP
0000069b: JUMPDEST
0000069c: PUSH1 0x40
0000069e: MLOAD
0000069f: DUP1
000006a0: SWAP2
000006a1: SUB
000006a2: SWAP1
000006a3: REVERT
000006a4: JUMPDEST
000006a5: PUSH1 0x40
000006a7: DUP1
000006a8: MLOAD
000006a9: PUSH2 0x0120
000006ac: DUP2
000006ad: ADD
000006ae: DUP3
000006af: MSTORE
000006b0: DUP14
000006b1: DUP2
000006b2: MSTORE
000006b3: PUSH1 0x20
000006b5: DUP1
000006b6: DUP3
000006b7: ADD
000006b8: DUP15
000006b9: SWAP1
000006ba: MSTORE
000006bb: DUP2
000006bc: DUP4
000006bd: ADD
000006be: DUP14
000006bf: SWAP1
000006c0: MSTORE
000006c1: PUSH1 0x60
000006c3: DUP3
000006c4: ADD
000006c5: DUP13
000006c6: SWAP1
000006c7: MSTORE
000006c8: PUSH1 0x05
000006ca: SLOAD
000006cb: PUSH4 0xffffffff
000006d0: SWAP1
000006d1: DUP2
000006d2: AND
000006d3: PUSH1 0x80
000006d5: DUP5
000006d6: ADD
000006d7: MSTORE
000006d8: PUSH1 0x03
000006da: SLOAD
000006db: PUSH1 0x01
000006dd: PUSH1 0xa0
000006df: SHL
000006e0: SWAP1
000006e1: DIV
000006e2: DUP2
000006e3: AND
000006e4: PUSH1 0xa0
000006e6: DUP5
000006e7: ADD
000006e8: MSTORE
000006e9: DUP12
000006ea: AND
000006eb: PUSH1 0xc0
000006ed: DUP4
000006ee: ADD
000006ef: MSTORE
000006f0: PUSH1 0x01
000006f2: PUSH1 0x01
000006f4: PUSH1 0x40
000006f6: SHL
000006f7: SUB
000006f8: DUP11
000006f9: AND
000006fa: PUSH1 0xe0
000006fc: DUP4
000006fd: ADD
000006fe: MSTORE
000006ff: DUP3
00000700: MLOAD
00000701: PUSH1 0x1f
00000703: DUP9
00000704: ADD
00000705: DUP3
00000706: SWAP1
00000707: DIV
00000708: DUP3
00000709: MUL
0000070a: DUP2
0000070b: ADD
0000070c: DUP3
0000070d: ADD
0000070e: SWAP1
0000070f: SWAP4
00000710: MSTORE
00000711: DUP7
00000712: DUP4
00000713: MSTORE
00000714: PUSH1 0x00
00000716: SWAP3
00000717: PUSH2 0x0100
0000071a: DUP4
0000071b: ADD
0000071c: SWAP2
0000071d: DUP10
0000071e: SWAP1
0000071f: DUP10
00000720: SWAP1
00000721: DUP2
00000722: SWAP1
00000723: DUP5
00000724: ADD
00000725: DUP4
00000726: DUP3
00000727: DUP1
00000728: DUP3
00000729: DUP5
0000072a: CALLDATACOPY
0000072b: PUSH1 0x00
0000072d: SWAP3
0000072e: ADD
0000072f: DUP3
00000730: SWAP1
00000731: MSTORE
00000732: POP
00000733: SWAP4
00000734: SWAP1
00000735: SWAP5
00000736: MSTORE
00000737: POP
00000738: SWAP3
00000739: SWAP4
0000073a: POP
0000073b: SWAP2
0000073c: POP
0000073d: PUSH2 0x0747
00000740: SWAP1
00000741: POP
00000742: DUP3
00000743: PUSH2 0x1ab6
00000746: JUMP
00000747: JUMPDEST
00000748: PUSH4 0xffffffff
0000074d: DUP12
0000074e: AND
0000074f: PUSH1 0x00
00000751: SWAP1
00000752: DUP2
00000753: MSTORE
00000754: PUSH1 0x04
00000756: PUSH1 0x20
00000758: MSTORE
00000759: PUSH1 0x40
0000075b: SWAP1
0000075c: KECCAK256
0000075d: SLOAD
0000075e: SWAP1
0000075f: SWAP2
00000760: POP
00000761: PUSH2 0x077c
00000764: JUMPI
00000765: PUSH1 0x40
00000767: MLOAD
00000768: PUSH3 0x461bcd
0000076c: PUSH1 0xe5
0000076e: SHL
0000076f: DUP2
00000770: MSTORE
00000771: PUSH1 0x04
00000773: ADD
00000774: PUSH2 0x069b
00000777: SWAP1
00000778: PUSH2 0x2ebb
0000077b: JUMP
0000077c: JUMPDEST
0000077d: PUSH1 0x05
0000077f: DUP1
00000780: SLOAD
00000781: PUSH1 0x01
00000783: SWAP2
00000784: SWAP1
00000785: PUSH1 0x00
00000787: SWAP1
00000788: PUSH2 0x0798
0000078b: SWAP1
0000078c: DUP5
0000078d: SWAP1
0000078e: PUSH4 0xffffffff
00000793: AND
00000794: PUSH2 0x2f22
00000797: JUMP
00000798: JUMPDEST
00000799: DUP3
0000079a: SLOAD
0000079b: PUSH2 0x0100
0000079e: SWAP3
0000079f: SWAP1
000007a0: SWAP3
000007a1: EXP
000007a2: PUSH4 0xffffffff
000007a7: DUP2
000007a8: DUP2
000007a9: MUL
000007aa: NOT
000007ab: SWAP1
000007ac: SWAP4
000007ad: AND
000007ae: SWAP2
000007af: DUP4
000007b0: AND
000007b1: MUL
000007b2: OR
000007b3: SWAP1
000007b4: SWAP2
000007b5: SSTORE
000007b6: PUSH1 0x40
000007b8: DUP1
000007b9: MLOAD
000007ba: PUSH1 0x80
000007bc: DUP1
000007bd: DUP3
000007be: ADD
000007bf: DUP4
000007c0: MSTORE
000007c1: DUP7
000007c2: MLOAD
000007c3: DUP3
000007c4: MSTORE
000007c5: DUP7
000007c6: ADD
000007c7: MLOAD
000007c8: DUP4
000007c9: AND
000007ca: PUSH1 0x20
000007cc: DUP1
000007cd: DUP4
000007ce: ADD
000007cf: SWAP2
000007d0: DUP3
000007d1: MSTORE
000007d2: PUSH1 0xc0
000007d4: DUP9
000007d5: ADD
000007d6: MLOAD
000007d7: DUP6
000007d8: AND
000007d9: DUP4
000007da: DUP6
000007db: ADD
000007dc: SWAP1
000007dd: DUP2
000007de: MSTORE
000007df: DUP9
000007e0: DUP6
000007e1: ADD
000007e2: MLOAD
000007e3: PUSH1 0x60
000007e5: DUP6
000007e6: ADD
000007e7: SWAP1
000007e8: DUP2
000007e9: MSTORE
000007ea: PUSH1 0x00
000007ec: DUP10
000007ed: DUP2
000007ee: MSTORE
000007ef: PUSH1 0x06
000007f1: SWAP1
000007f2: SWAP4
000007f3: MSTORE
000007f4: SWAP5
000007f5: SWAP1
000007f6: SWAP2
000007f7: KECCAK256
000007f8: SWAP3
000007f9: MLOAD
000007fa: DUP4
000007fb: SSTORE
000007fc: SWAP1
000007fd: MLOAD
000007fe: PUSH1 0x01
00000800: DUP4
00000801: ADD
00000802: SSTORE
00000803: MLOAD
00000804: PUSH1 0x02
00000806: DUP3
00000807: ADD
00000808: DUP1
00000809: SLOAD
0000080a: PUSH4 0xffffffff
0000080f: NOT
00000810: AND
00000811: SWAP2
00000812: SWAP1
00000813: SWAP5
00000814: AND
00000815: OR
00000816: SWAP1
00000817: SWAP3
00000818: SSTORE
00000819: MLOAD
0000081a: PUSH1 0x03
0000081c: SWAP1
0000081d: SWAP2
0000081e: ADD
0000081f: SSTORE
00000820: POP
00000821: DUP1
00000822: PUSH32 0x59f858504f8d8ad967dd7453df850e265270474e364b7e2fbd3333e06efdbfc0
00000843: PUSH2 0x084b
00000846: DUP5
00000847: PUSH2 0x1ac1
0000084a: JUMP
0000084b: JUMPDEST
0000084c: PUSH1 0x40
0000084e: MLOAD
0000084f: PUSH2 0x0858
00000852: SWAP2
00000853: SWAP1
00000854: PUSH2 0x2d88
00000857: JUMP
00000858: JUMPDEST
00000859: PUSH1 0x40
0000085b: MLOAD
0000085c: DUP1
0000085d: SWAP2
0000085e: SUB
0000085f: SWAP1
00000860: LOG2
00000861: PUSH2 0x0875
00000864: DUP3
00000865: PUSH1 0x40
00000867: ADD
00000868: MLOAD
00000869: DUP10
0000086a: DUP5
0000086b: PUSH1 0x80
0000086d: ADD
0000086e: MLOAD
0000086f: DUP9
00000870: DUP9
00000871: PUSH2 0x1b1f
00000874: JUMP
00000875: JUMPDEST
00000876: SWAP14
00000877: SWAP13
00000878: POP
00000879: POP
0000087a: POP
0000087b: POP
0000087c: POP
0000087d: POP
0000087e: POP
0000087f: POP
00000880: POP
00000881: POP
00000882: POP
00000883: POP
00000884: POP
00000885: JUMP
00000886: JUMPDEST
00000887: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
000008a8: DUP1
000008a9: SLOAD
000008aa: PUSH1 0x01
000008ac: PUSH1 0x40
000008ae: SHL
000008af: DUP2
000008b0: DIV
000008b1: PUSH1 0xff
000008b3: AND
000008b4: ISZERO
000008b5: SWAP1
000008b6: PUSH1 0x01
000008b8: PUSH1 0x01
000008ba: PUSH1 0x40
000008bc: SHL
000008bd: SUB
000008be: AND
000008bf: PUSH1 0x00
000008c1: DUP2
000008c2: ISZERO
000008c3: DUP1
000008c4: ISZERO
000008c5: PUSH2 0x08cb
000008c8: JUMPI
000008c9: POP
000008ca: DUP3
000008cb: JUMPDEST
000008cc: SWAP1
000008cd: POP
000008ce: PUSH1 0x00
000008d0: DUP3
000008d1: PUSH1 0x01
000008d3: PUSH1 0x01
000008d5: PUSH1 0x40
000008d7: SHL
000008d8: SUB
000008d9: AND
000008da: PUSH1 0x01
000008dc: EQ
000008dd: DUP1
000008de: ISZERO
000008df: PUSH2 0x08e7
000008e2: JUMPI
000008e3: POP
000008e4: ADDRESS
000008e5: EXTCODESIZE
000008e6: ISZERO
000008e7: JUMPDEST
000008e8: SWAP1
000008e9: POP
000008ea: DUP2
000008eb: ISZERO
000008ec: DUP1
000008ed: ISZERO
000008ee: PUSH2 0x08f5
000008f1: JUMPI
000008f2: POP
000008f3: DUP1
000008f4: ISZERO
000008f5: JUMPDEST
000008f6: ISZERO
000008f7: PUSH2 0x0913
000008fa: JUMPI
000008fb: PUSH1 0x40
000008fd: MLOAD
000008fe: PUSH4 0xf92ee8a9
00000903: PUSH1 0xe0
00000905: SHL
00000906: DUP2
00000907: MSTORE
00000908: PUSH1 0x04
0000090a: ADD
0000090b: PUSH1 0x40
0000090d: MLOAD
0000090e: DUP1
0000090f: SWAP2
00000910: SUB
00000911: SWAP1
00000912: REVERT
00000913: JUMPDEST
00000914: DUP5
00000915: SLOAD
00000916: PUSH8 0xffffffffffffffff
0000091f: NOT
00000920: AND
00000921: PUSH1 0x01
00000923: OR
00000924: DUP6
00000925: SSTORE
00000926: DUP4
00000927: ISZERO
00000928: PUSH2 0x093d
0000092b: JUMPI
0000092c: DUP5
0000092d: SLOAD
0000092e: PUSH1 0xff
00000930: PUSH1 0x40
00000932: SHL
00000933: NOT
00000934: AND
00000935: PUSH1 0x01
00000937: PUSH1 0x40
00000939: SHL
0000093a: OR
0000093b: DUP6
0000093c: SSTORE
0000093d: JUMPDEST
0000093e: PUSH2 0x0946
00000941: DUP12
00000942: PUSH2 0x1bd1
00000945: JUMP
00000946: JUMPDEST
00000947: DUP10
00000948: PUSH1 0x01
0000094a: PUSH1 0x00
0000094c: PUSH2 0x0100
0000094f: EXP
00000950: DUP2
00000951: SLOAD
00000952: DUP2
00000953: PUSH1 0x01
00000955: PUSH1 0x01
00000957: PUSH1 0xa0
00000959: SHL
0000095a: SUB
0000095b: MUL
0000095c: NOT
0000095d: AND
0000095e: SWAP1
0000095f: DUP4
00000960: PUSH1 0x01
00000962: PUSH1 0x01
00000964: PUSH1 0xa0
00000966: SHL
00000967: SUB
00000968: AND
00000969: MUL
0000096a: OR
0000096b: SWAP1
0000096c: SSTORE
0000096d: POP
0000096e: DUP9
0000096f: PUSH1 0x02
00000971: PUSH1 0x00
00000973: PUSH2 0x0100
00000976: EXP
00000977: DUP2
00000978: SLOAD
00000979: DUP2
0000097a: PUSH1 0x01
0000097c: PUSH1 0x01
0000097e: PUSH1 0xa0
00000980: SHL
00000981: SUB
00000982: MUL
00000983: NOT
00000984: AND
00000985: SWAP1
00000986: DUP4
00000987: PUSH1 0x01
00000989: PUSH1 0x01
0000098b: PUSH1 0xa0
0000098d: SHL
0000098e: SUB
0000098f: AND
00000990: MUL
00000991: OR
00000992: SWAP1
00000993: SSTORE
00000994: POP
00000995: DUP8
00000996: PUSH1 0x03
00000998: PUSH1 0x00
0000099a: PUSH2 0x0100
0000099d: EXP
0000099e: DUP2
0000099f: SLOAD
000009a0: DUP2
000009a1: PUSH1 0x01
000009a3: PUSH1 0x01
000009a5: PUSH1 0xa0
000009a7: SHL
000009a8: SUB
000009a9: MUL
000009aa: NOT
000009ab: AND
000009ac: SWAP1
000009ad: DUP4
000009ae: PUSH1 0x01
000009b0: PUSH1 0x01
000009b2: PUSH1 0xa0
000009b4: SHL
000009b5: SUB
000009b6: AND
000009b7: MUL
000009b8: OR
000009b9: SWAP1
000009ba: SSTORE
000009bb: POP
000009bc: DUP12
000009bd: PUSH1 0x03
000009bf: PUSH1 0x14
000009c1: PUSH2 0x0100
000009c4: EXP
000009c5: DUP2
000009c6: SLOAD
000009c7: DUP2
000009c8: PUSH4 0xffffffff
000009cd: MUL
000009ce: NOT
000009cf: AND
000009d0: SWAP1
000009d1: DUP4
000009d2: PUSH4 0xffffffff
000009d7: AND
000009d8: MUL
000009d9: OR
000009da: SWAP1
000009db: SSTORE
000009dc: POP
000009dd: DUP7
000009de: PUSH1 0x00
000009e0: DUP1
000009e1: PUSH2 0x0100
000009e4: EXP
000009e5: DUP2
000009e6: SLOAD
000009e7: DUP2
000009e8: PUSH1 0x01
000009ea: PUSH1 0x01
000009ec: PUSH1 0xa0
000009ee: SHL
000009ef: SUB
000009f0: MUL
000009f1: NOT
000009f2: AND
000009f3: SWAP1
000009f4: DUP4
000009f5: PUSH1 0x01
000009f7: PUSH1 0x01
000009f9: PUSH1 0xa0
000009fb: SHL
000009fc: SUB
000009fd: AND
000009fe: MUL
000009ff: OR
00000a00: SWAP1
00000a01: SSTORE
00000a02: POP
00000a03: PUSH1 0x01
00000a05: PUSH1 0x05
00000a07: PUSH1 0x00
00000a09: PUSH2 0x0100
00000a0c: EXP
00000a0d: DUP2
00000a0e: SLOAD
00000a0f: DUP2
00000a10: PUSH4 0xffffffff
00000a15: MUL
00000a16: NOT
00000a17: AND
00000a18: SWAP1
00000a19: DUP4
00000a1a: PUSH4 0xffffffff
00000a1f: AND
00000a20: MUL
00000a21: OR
00000a22: SWAP1
00000a23: SSTORE
00000a24: POP
00000a25: DUP6
00000a26: PUSH1 0x09
00000a28: PUSH1 0x00
00000a2a: PUSH2 0x0100
00000a2d: EXP
00000a2e: DUP2
00000a2f: SLOAD
00000a30: DUP2
00000a31: PUSH1 0x01
00000a33: PUSH1 0x01
00000a35: PUSH1 0xa0
00000a37: SHL
00000a38: SUB
00000a39: MUL
00000a3a: NOT
00000a3b: AND
00000a3c: SWAP1
00000a3d: DUP4
00000a3e: PUSH1 0x01
00000a40: PUSH1 0x01
00000a42: PUSH1 0xa0
00000a44: SHL
00000a45: SUB
00000a46: AND
00000a47: MUL
00000a48: OR
00000a49: SWAP1
00000a4a: SSTORE
00000a4b: POP
00000a4c: DUP4
00000a4d: ISZERO
00000a4e: PUSH2 0x0a91
00000a51: JUMPI
00000a52: DUP5
00000a53: SLOAD
00000a54: PUSH1 0xff
00000a56: PUSH1 0x40
00000a58: SHL
00000a59: NOT
00000a5a: AND
00000a5b: DUP6
00000a5c: SSTORE
00000a5d: PUSH1 0x40
00000a5f: MLOAD
00000a60: PUSH1 0x01
00000a62: DUP2
00000a63: MSTORE
00000a64: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00000a85: SWAP1
00000a86: PUSH1 0x20
00000a88: ADD
00000a89: PUSH1 0x40
00000a8b: MLOAD
00000a8c: DUP1
00000a8d: SWAP2
00000a8e: SUB
00000a8f: SWAP1
00000a90: LOG1
00000a91: JUMPDEST
00000a92: POP
00000a93: POP
00000a94: POP
00000a95: POP
00000a96: POP
00000a97: POP
00000a98: POP
00000a99: POP
00000a9a: POP
00000a9b: POP
00000a9c: POP
00000a9d: POP
00000a9e: JUMP
00000a9f: JUMPDEST
00000aa0: PUSH2 0x0aa7
00000aa3: PUSH2 0x1be2
00000aa6: JUMP
00000aa7: JUMPDEST
00000aa8: PUSH1 0x03
00000aaa: DUP1
00000aab: SLOAD
00000aac: PUSH1 0x01
00000aae: PUSH1 0x01
00000ab0: PUSH1 0xa0
00000ab2: SHL
00000ab3: SUB
00000ab4: NOT
00000ab5: AND
00000ab6: PUSH1 0x01
00000ab8: PUSH1 0x01
00000aba: PUSH1 0xa0
00000abc: SHL
00000abd: SUB
00000abe: SWAP3
00000abf: SWAP1
00000ac0: SWAP3
00000ac1: AND
00000ac2: SWAP2
00000ac3: SWAP1
00000ac4: SWAP2
00000ac5: OR
00000ac6: SWAP1
00000ac7: SSTORE
00000ac8: JUMP
00000ac9: JUMPDEST
00000aca: PUSH2 0x0ad2
00000acd: DUP2
00000ace: PUSH2 0x1c3d
00000ad1: JUMP
00000ad2: JUMPDEST
00000ad3: PUSH1 0x00
00000ad5: DUP1
00000ad6: JUMPDEST
00000ad7: DUP3
00000ad8: MLOAD
00000ad9: DUP2
00000ada: LT
00000adb: ISZERO
00000adc: PUSH2 0x0ba9
00000adf: JUMPI
00000ae0: DUP3
00000ae1: DUP2
00000ae2: ADD
00000ae3: PUSH1 0x20
00000ae5: ADD
00000ae6: MLOAD
00000ae7: PUSH1 0x00
00000ae9: PUSH2 0x0af1
00000aec: DUP3
00000aed: PUSH2 0x1cf9
00000af0: JUMP
00000af1: JUMPDEST
00000af2: PUSH1 0x20
00000af4: DUP2
00000af5: ADD
00000af6: MLOAD
00000af7: SWAP1
00000af8: SWAP2
00000af9: POP
00000afa: PUSH1 0x01
00000afc: PUSH1 0x01
00000afe: PUSH1 0xa0
00000b00: SHL
00000b01: SUB
00000b02: AND
00000b03: CALLER
00000b04: EQ
00000b05: PUSH2 0x0b5a
00000b08: JUMPI
00000b09: PUSH1 0x40
00000b0b: MLOAD
00000b0c: PUSH3 0x461bcd
00000b10: PUSH1 0xe5
00000b12: SHL
00000b13: DUP2
00000b14: MSTORE
00000b15: PUSH1 0x20
00000b17: PUSH1 0x04
00000b19: DUP3
00000b1a: ADD
00000b1b: MSTORE
00000b1c: PUSH1 0x21
00000b1e: PUSH1 0x24
00000b20: DUP3
00000b21: ADD
00000b22: MSTORE
00000b23: PUSH32 0x466173745472616e73666572476174657761793a20556e617574686f72697a65
00000b44: PUSH1 0x44
00000b46: DUP3
00000b47: ADD
00000b48: MSTORE
00000b49: PUSH1 0x19
00000b4b: PUSH1 0xfa
00000b4d: SHL
00000b4e: PUSH1 0x64
00000b50: DUP3
00000b51: ADD
00000b52: MSTORE
00000b53: PUSH1 0x84
00000b55: ADD
00000b56: PUSH2 0x069b
00000b59: JUMP
00000b5a: JUMPDEST
00000b5b: DUP3
00000b5c: ISZERO
00000b5d: PUSH2 0x0b8f
00000b60: JUMPI
00000b61: DUP4
00000b62: PUSH4 0xffffffff
00000b67: AND
00000b68: DUP2
00000b69: PUSH1 0x40
00000b6b: ADD
00000b6c: MLOAD
00000b6d: PUSH4 0xffffffff
00000b72: AND
00000b73: EQ
00000b74: PUSH2 0x0b8f
00000b77: JUMPI
00000b78: PUSH1 0x40
00000b7a: MLOAD
00000b7b: PUSH3 0x461bcd
00000b7f: PUSH1 0xe5
00000b81: SHL
00000b82: DUP2
00000b83: MSTORE
00000b84: PUSH1 0x04
00000b86: ADD
00000b87: PUSH2 0x069b
00000b8a: SWAP1
00000b8b: PUSH2 0x2f46
00000b8e: JUMP
00000b8f: JUMPDEST
00000b90: PUSH1 0x40
00000b92: ADD
00000b93: MLOAD
00000b94: SWAP3
00000b95: POP
00000b96: PUSH2 0x0ba2
00000b99: SWAP1
00000b9a: POP
00000b9b: PUSH1 0x20
00000b9d: DUP3
00000b9e: PUSH2 0x2f94
00000ba1: JUMP
00000ba2: JUMPDEST
00000ba3: SWAP1
00000ba4: POP
00000ba5: PUSH2 0x0ad6
00000ba8: JUMP
00000ba9: JUMPDEST
00000baa: POP
00000bab: PUSH4 0xffffffff
00000bb0: DUP2
00000bb1: AND
00000bb2: PUSH1 0x00
00000bb4: SWAP1
00000bb5: DUP2
00000bb6: MSTORE
00000bb7: PUSH1 0x04
00000bb9: PUSH1 0x20
00000bbb: MSTORE
00000bbc: PUSH1 0x40
00000bbe: SWAP1
00000bbf: KECCAK256
00000bc0: SLOAD
00000bc1: DUP1
00000bc2: PUSH2 0x0bdd
00000bc5: JUMPI
00000bc6: PUSH1 0x40
00000bc8: MLOAD
00000bc9: PUSH3 0x461bcd
00000bcd: PUSH1 0xe5
00000bcf: SHL
00000bd0: DUP2
00000bd1: MSTORE
00000bd2: PUSH1 0x04
00000bd4: ADD
00000bd5: PUSH2 0x069b
00000bd8: SWAP1
00000bd9: PUSH2 0x2fa7
00000bdc: JUMP
00000bdd: JUMPDEST
00000bde: PUSH1 0x00
00000be0: DUP1
00000be1: DUP6
00000be2: DUP6
00000be3: PUSH1 0x40
00000be5: MLOAD
00000be6: PUSH1 0x20
00000be8: ADD
00000be9: PUSH2 0x0bf4
00000bec: SWAP4
00000bed: SWAP3
00000bee: SWAP2
00000bef: SWAP1
00000bf0: PUSH2 0x2ff1
00000bf3: JUMP
00000bf4: JUMPDEST
00000bf5: PUSH1 0x40
00000bf7: DUP1
00000bf8: MLOAD
00000bf9: PUSH1 0x1f
00000bfb: NOT
00000bfc: DUP2
00000bfd: DUP5
00000bfe: SUB
00000bff: ADD
00000c00: DUP2
00000c01: MSTORE
00000c02: SWAP1
00000c03: DUP3
00000c04: SWAP1
00000c05: MSTORE
00000c06: PUSH1 0x02
00000c08: SLOAD
00000c09: PUSH4 0xfa31de01
00000c0e: PUSH1 0xe0
00000c10: SHL
00000c11: DUP4
00000c12: MSTORE
00000c13: SWAP1
00000c14: SWAP3
00000c15: POP
00000c16: PUSH1 0x01
00000c18: PUSH1 0x01
00000c1a: PUSH1 0xa0
00000c1c: SHL
00000c1d: SUB
00000c1e: AND
00000c1f: SWAP1
00000c20: PUSH4 0xfa31de01
00000c25: SWAP1
00000c26: CALLVALUE
00000c27: SWAP1
00000c28: PUSH2 0x0c39
00000c2b: SWAP1
00000c2c: DUP8
00000c2d: SWAP1
00000c2e: DUP8
00000c2f: SWAP1
00000c30: DUP8
00000c31: SWAP1
00000c32: PUSH1 0x04
00000c34: ADD
00000c35: PUSH2 0x3027
00000c38: JUMP
00000c39: JUMPDEST
00000c3a: PUSH1 0x20
00000c3c: PUSH1 0x40
00000c3e: MLOAD
00000c3f: DUP1
00000c40: DUP4
00000c41: SUB
00000c42: DUP2
00000c43: DUP6
00000c44: DUP9
00000c45: GAS
00000c46: CALL
00000c47: ISZERO
00000c48: DUP1
00000c49: ISZERO
00000c4a: PUSH2 0x0c57
00000c4d: JUMPI
00000c4e: RETURNDATASIZE
00000c4f: PUSH1 0x00
00000c51: DUP1
00000c52: RETURNDATACOPY
00000c53: RETURNDATASIZE
00000c54: PUSH1 0x00
00000c56: REVERT
00000c57: JUMPDEST
00000c58: POP
00000c59: POP
00000c5a: POP
00000c5b: POP
00000c5c: POP
00000c5d: PUSH1 0x40
00000c5f: MLOAD
00000c60: RETURNDATASIZE
00000c61: PUSH1 0x1f
00000c63: NOT
00000c64: PUSH1 0x1f
00000c66: DUP3
00000c67: ADD
00000c68: AND
00000c69: DUP3
00000c6a: ADD
00000c6b: DUP1
00000c6c: PUSH1 0x40
00000c6e: MSTORE
00000c6f: POP
00000c70: DUP2
00000c71: ADD
00000c72: SWAP1
00000c73: PUSH2 0x0c7c
00000c76: SWAP2
00000c77: SWAP1
00000c78: PUSH2 0x304c
00000c7b: JUMP
00000c7c: JUMPDEST
00000c7d: POP
00000c7e: POP
00000c7f: POP
00000c80: POP
00000c81: POP
00000c82: POP
00000c83: JUMP
00000c84: JUMPDEST
00000c85: PUSH4 0xffffffff
00000c8a: DUP3
00000c8b: AND
00000c8c: PUSH1 0x00
00000c8e: SWAP1
00000c8f: DUP2
00000c90: MSTORE
00000c91: PUSH1 0x04
00000c93: PUSH1 0x20
00000c95: MSTORE
00000c96: PUSH1 0x40
00000c98: DUP2
00000c99: KECCAK256
00000c9a: SLOAD
00000c9b: DUP1
00000c9c: PUSH2 0x0cb7
00000c9f: JUMPI
00000ca0: PUSH1 0x40
00000ca2: MLOAD
00000ca3: PUSH3 0x461bcd
00000ca7: PUSH1 0xe5
00000ca9: SHL
00000caa: DUP2
00000cab: MSTORE
00000cac: PUSH1 0x04
00000cae: ADD
00000caf: PUSH2 0x069b
00000cb2: SWAP1
00000cb3: PUSH2 0x2fa7
00000cb6: JUMP
00000cb7: JUMPDEST
00000cb8: PUSH1 0x60
00000cba: PUSH1 0x00
00000cbc: JUMPDEST
00000cbd: DUP5
00000cbe: MLOAD
00000cbf: DUP2
00000cc0: LT
00000cc1: ISZERO
00000cc2: PUSH2 0x0d13
00000cc5: JUMPI
00000cc6: DUP2
00000cc7: PUSH2 0x0ce8
00000cca: DUP7
00000ccb: DUP4
00000ccc: DUP2
00000ccd: MLOAD
00000cce: DUP2
00000ccf: LT
00000cd0: PUSH2 0x0cdb
00000cd3: JUMPI
00000cd4: PUSH2 0x0cdb
00000cd7: PUSH2 0x3065
00000cda: JUMP
00000cdb: JUMPDEST
00000cdc: PUSH1 0x20
00000cde: MUL
00000cdf: PUSH1 0x20
00000ce1: ADD
00000ce2: ADD
00000ce3: MLOAD
00000ce4: PUSH2 0x1ab6
00000ce7: JUMP
00000ce8: JUMPDEST
00000ce9: PUSH1 0x40
00000ceb: MLOAD
00000cec: PUSH1 0x20
00000cee: ADD
00000cef: PUSH2 0x0cf9
00000cf2: SWAP3
00000cf3: SWAP2
00000cf4: SWAP1
00000cf5: PUSH2 0x307b
00000cf8: JUMP
00000cf9: JUMPDEST
00000cfa: PUSH1 0x40
00000cfc: DUP1
00000cfd: MLOAD
00000cfe: PUSH1 0x1f
00000d00: NOT
00000d01: DUP2
00000d02: DUP5
00000d03: SUB
00000d04: ADD
00000d05: DUP2
00000d06: MSTORE
00000d07: SWAP2
00000d08: SWAP1
00000d09: MSTORE
00000d0a: SWAP2
00000d0b: POP
00000d0c: PUSH1 0x01
00000d0e: ADD
00000d0f: PUSH2 0x0cbc
00000d12: JUMP
00000d13: JUMPDEST
00000d14: POP
00000d15: PUSH1 0x00
00000d17: PUSH1 0x01
00000d19: DUP3
00000d1a: PUSH1 0x40
00000d1c: MLOAD
00000d1d: PUSH1 0x20
00000d1f: ADD
00000d20: PUSH2 0x0d2a
00000d23: SWAP3
00000d24: SWAP2
00000d25: SWAP1
00000d26: PUSH2 0x309d
00000d29: JUMP
00000d2a: JUMPDEST
00000d2b: PUSH1 0x40
00000d2d: DUP1
00000d2e: MLOAD
00000d2f: PUSH1 0x1f
00000d31: NOT
00000d32: DUP2
00000d33: DUP5
00000d34: SUB
00000d35: ADD
00000d36: DUP2
00000d37: MSTORE
00000d38: SWAP1
00000d39: DUP3
00000d3a: SWAP1
00000d3b: MSTORE
00000d3c: PUSH1 0x02
00000d3e: SLOAD
00000d3f: PUSH4 0x138857a3
00000d44: PUSH1 0xe3
00000d46: SHL
00000d47: DUP4
00000d48: MSTORE
00000d49: SWAP1
00000d4a: SWAP3
00000d4b: POP
00000d4c: PUSH1 0x01
00000d4e: PUSH1 0x01
00000d50: PUSH1 0xa0
00000d52: SHL
00000d53: SUB
00000d54: AND
00000d55: SWAP1
00000d56: PUSH4 0x9c42bd18
00000d5b: SWAP1
00000d5c: PUSH2 0x0d6d
00000d5f: SWAP1
00000d60: DUP10
00000d61: SWAP1
00000d62: DUP8
00000d63: SWAP1
00000d64: DUP7
00000d65: SWAP1
00000d66: PUSH1 0x04
00000d68: ADD
00000d69: PUSH2 0x3027
00000d6c: JUMP
00000d6d: JUMPDEST
00000d6e: PUSH1 0x20
00000d70: PUSH1 0x40
00000d72: MLOAD
00000d73: DUP1
00000d74: DUP4
00000d75: SUB
00000d76: DUP2
00000d77: DUP7
00000d78: GAS
00000d79: STATICCALL
00000d7a: ISZERO
00000d7b: DUP1
00000d7c: ISZERO
00000d7d: PUSH2 0x0d8a
00000d80: JUMPI
00000d81: RETURNDATASIZE
00000d82: PUSH1 0x00
00000d84: DUP1
00000d85: RETURNDATACOPY
00000d86: RETURNDATASIZE
00000d87: PUSH1 0x00
00000d89: REVERT
00000d8a: JUMPDEST
00000d8b: POP
00000d8c: POP
00000d8d: POP
00000d8e: POP
00000d8f: PUSH1 0x40
00000d91: MLOAD
00000d92: RETURNDATASIZE
00000d93: PUSH1 0x1f
00000d95: NOT
00000d96: PUSH1 0x1f
00000d98: DUP3
00000d99: ADD
00000d9a: AND
00000d9b: DUP3
00000d9c: ADD
00000d9d: DUP1
00000d9e: PUSH1 0x40
00000da0: MSTORE
00000da1: POP
00000da2: DUP2
00000da3: ADD
00000da4: SWAP1
00000da5: PUSH2 0x0dae
00000da8: SWAP2
00000da9: SWAP1
00000daa: PUSH2 0x304c
00000dad: JUMP
00000dae: JUMPDEST
00000daf: SWAP4
00000db0: POP
00000db1: POP
00000db2: POP
00000db3: POP
00000db4: JUMPDEST
00000db5: SWAP3
00000db6: SWAP2
00000db7: POP
00000db8: POP
00000db9: JUMP
00000dba: JUMPDEST
00000dbb: PUSH2 0x0dc2
00000dbe: PUSH2 0x1db1
00000dc1: JUMP
00000dc2: JUMPDEST
00000dc3: PUSH2 0x0dcb
00000dc6: DUP3
00000dc7: PUSH2 0x1e56
00000dca: JUMP
00000dcb: JUMPDEST
00000dcc: PUSH2 0x0dd5
00000dcf: DUP3
00000dd0: DUP3
00000dd1: PUSH2 0x1e5e
00000dd4: JUMP
00000dd5: JUMPDEST
00000dd6: POP
00000dd7: POP
00000dd8: JUMP
00000dd9: JUMPDEST
00000dda: PUSH1 0x00
00000ddc: PUSH2 0x0de3
00000ddf: PUSH2 0x1f20
00000de2: JUMP
00000de3: JUMPDEST
00000de4: POP
00000de5: PUSH1 0x00
00000de7: DUP1
00000de8: MLOAD
00000de9: PUSH1 0x20
00000deb: PUSH2 0x33bb
00000dee: DUP4
00000def: CODECOPY
00000df0: DUP2
00000df1: MLOAD
00000df2: SWAP2
00000df3: MSTORE
00000df4: SWAP1
00000df5: JUMP
00000df6: JUMPDEST
00000df7: PUSH1 0x02
00000df9: SLOAD
00000dfa: PUSH1 0x01
00000dfc: PUSH1 0x01
00000dfe: PUSH1 0xa0
00000e00: SHL
00000e01: SUB
00000e02: AND
00000e03: CALLER
00000e04: EQ
00000e05: PUSH2 0x0e60
00000e08: JUMPI
00000e09: PUSH1 0x40
00000e0b: MLOAD
00000e0c: PUSH3 0x461bcd
00000e10: PUSH1 0xe5
00000e12: SHL
00000e13: DUP2
00000e14: MSTORE
00000e15: PUSH1 0x20
00000e17: PUSH1 0x04
00000e19: DUP3
00000e1a: ADD
00000e1b: MSTORE
00000e1c: PUSH1 0x27
00000e1e: PUSH1 0x24
00000e20: DUP3
00000e21: ADD
00000e22: MSTORE
00000e23: PUSH32 0x466173745472616e73666572476174657761793a2073656e646572206e6f7420
00000e44: PUSH1 0x44
00000e46: DUP3
00000e47: ADD
00000e48: MSTORE
00000e49: PUSH7 0x0dac2d2d8c4def
00000e51: PUSH1 0xcb
00000e53: SHL
00000e54: PUSH1 0x64
00000e56: DUP3
00000e57: ADD
00000e58: MSTORE
00000e59: PUSH1 0x84
00000e5b: ADD
00000e5c: PUSH2 0x069b
00000e5f: JUMP
00000e60: JUMPDEST
00000e61: PUSH4 0xffffffff
00000e66: DUP5
00000e67: AND
00000e68: PUSH1 0x00
00000e6a: SWAP1
00000e6b: DUP2
00000e6c: MSTORE
00000e6d: PUSH1 0x04
00000e6f: PUSH1 0x20
00000e71: MSTORE
00000e72: PUSH1 0x40
00000e74: SWAP1
00000e75: KECCAK256
00000e76: SLOAD
00000e77: DUP1
00000e78: PUSH2 0x0ed8
00000e7b: JUMPI
00000e7c: PUSH1 0x40
00000e7e: MLOAD
00000e7f: PUSH3 0x461bcd
00000e83: PUSH1 0xe5
00000e85: SHL
00000e86: DUP2
00000e87: MSTORE
00000e88: PUSH1 0x20
00000e8a: PUSH1 0x04
00000e8c: DUP3
00000e8d: ADD
00000e8e: MSTORE
00000e8f: PUSH1 0x2c
00000e91: PUSH1 0x24
00000e93: DUP3
00000e94: ADD
00000e95: MSTORE
00000e96: PUSH32 0x466173745472616e73666572476174657761793a206f726967696e20646f6d61
00000eb7: PUSH1 0x44
00000eb9: DUP3
00000eba: ADD
00000ebb: MSTORE
00000ebc: PUSH12 0x1a5b881b9bdd08199bdd5b99
00000ec9: PUSH1 0xa2
00000ecb: SHL
00000ecc: PUSH1 0x64
00000ece: DUP3
00000ecf: ADD
00000ed0: MSTORE
00000ed1: PUSH1 0x84
00000ed3: ADD
00000ed4: PUSH2 0x069b
00000ed7: JUMP
00000ed8: JUMPDEST
00000ed9: DUP1
00000eda: DUP5
00000edb: EQ
00000edc: PUSH2 0x0f33
00000edf: JUMPI
00000ee0: PUSH1 0x40
00000ee2: MLOAD
00000ee3: PUSH3 0x461bcd
00000ee7: PUSH1 0xe5
00000ee9: SHL
00000eea: DUP2
00000eeb: MSTORE
00000eec: PUSH1 0x20
00000eee: PUSH1 0x04
00000ef0: DUP3
00000ef1: ADD
00000ef2: MSTORE
00000ef3: PUSH1 0x23
00000ef5: PUSH1 0x24
00000ef7: DUP3
00000ef8: ADD
00000ef9: MSTORE
00000efa: PUSH32 0x466173745472616e73666572476174657761793a20696e76616c69642073656e
00000f1b: PUSH1 0x44
00000f1d: DUP3
00000f1e: ADD
00000f1f: MSTORE
00000f20: PUSH3 0x3232b9
00000f24: PUSH1 0xe9
00000f26: SHL
00000f27: PUSH1 0x64
00000f29: DUP3
00000f2a: ADD
00000f2b: MSTORE
00000f2c: PUSH1 0x84
00000f2e: ADD
00000f2f: PUSH2 0x069b
00000f32: JUMP
00000f33: JUMPDEST
00000f34: PUSH1 0x00
00000f36: DUP4
00000f37: DUP4
00000f38: PUSH1 0x00
00000f3a: DUP2
00000f3b: DUP2
00000f3c: LT
00000f3d: PUSH2 0x0f48
00000f40: JUMPI
00000f41: PUSH2 0x0f48
00000f44: PUSH2 0x3065
00000f47: JUMP
00000f48: JUMPDEST
00000f49: SWAP2
00000f4a: SWAP1
00000f4b: SWAP2
00000f4c: ADD
00000f4d: CALLDATALOAD
00000f4e: PUSH1 0xf8
00000f50: SHR
00000f51: SWAP1
00000f52: POP
00000f53: PUSH1 0x01
00000f55: DUP2
00000f56: GT
00000f57: ISZERO
00000f58: PUSH2 0x0f63
00000f5b: JUMPI
00000f5c: PUSH2 0x0f63
00000f5f: PUSH2 0x2cbe
00000f62: JUMP
00000f63: JUMPDEST
00000f64: SWAP1
00000f65: POP
00000f66: PUSH1 0x00
00000f68: DUP2
00000f69: PUSH1 0x01
00000f6b: DUP2
00000f6c: GT
00000f6d: ISZERO
00000f6e: PUSH2 0x0f79
00000f71: JUMPI
00000f72: PUSH2 0x0f79
00000f75: PUSH2 0x2cbe
00000f78: JUMP
00000f79: JUMPDEST
00000f7a: SUB
00000f7b: PUSH2 0x1015
00000f7e: JUMPI
00000f7f: CALLDATASIZE
00000f80: PUSH1 0x00
00000f82: PUSH2 0x0f8e
00000f85: DUP6
00000f86: PUSH1 0x01
00000f88: DUP2
00000f89: DUP10
00000f8a: PUSH2 0x30cc
00000f8d: JUMP
00000f8e: JUMPDEST
00000f8f: SWAP1
00000f90: SWAP3
00000f91: POP
00000f92: SWAP1
00000f93: POP
00000f94: PUSH1 0x00
00000f96: PUSH2 0x0fa2
00000f99: PUSH1 0x20
00000f9b: DUP3
00000f9c: DUP5
00000f9d: DUP7
00000f9e: PUSH2 0x30cc
00000fa1: JUMP
00000fa2: JUMPDEST
00000fa3: PUSH2 0x0fab
00000fa6: SWAP2
00000fa7: PUSH2 0x30f6
00000faa: JUMP
00000fab: JUMPDEST
00000fac: SWAP1
00000fad: POP
00000fae: PUSH1 0x00
00000fb0: PUSH2 0x0fbc
00000fb3: DUP4
00000fb4: PUSH1 0x20
00000fb6: DUP2
00000fb7: DUP8
00000fb8: PUSH2 0x30cc
00000fbb: JUMP
00000fbc: JUMPDEST
00000fbd: DUP1
00000fbe: DUP1
00000fbf: PUSH1 0x1f
00000fc1: ADD
00000fc2: PUSH1 0x20
00000fc4: DUP1
00000fc5: SWAP2
00000fc6: DIV
00000fc7: MUL
00000fc8: PUSH1 0x20
00000fca: ADD
00000fcb: PUSH1 0x40
00000fcd: MLOAD
00000fce: SWAP1
00000fcf: DUP2
00000fd0: ADD
00000fd1: PUSH1 0x40
00000fd3: MSTORE
00000fd4: DUP1
00000fd5: SWAP4
00000fd6: SWAP3
00000fd7: SWAP2
00000fd8: SWAP1
00000fd9: DUP2
00000fda: DUP2
00000fdb: MSTORE
00000fdc: PUSH1 0x20
00000fde: ADD
00000fdf: DUP4
00000fe0: DUP4
00000fe1: DUP1
00000fe2: DUP3
00000fe3: DUP5
00000fe4: CALLDATACOPY
00000fe5: PUSH1 0x00
00000fe7: SWAP3
00000fe8: ADD
00000fe9: DUP3
00000fea: SWAP1
00000feb: MSTORE
00000fec: POP
00000fed: SWAP4
00000fee: SWAP5
00000fef: POP
00000ff0: PUSH2 0x0ffe
00000ff3: SWAP3
00000ff4: POP
00000ff5: DUP6
00000ff6: SWAP2
00000ff7: POP
00000ff8: PUSH2 0x1f69
00000ffb: SWAP1
00000ffc: POP
00000ffd: JUMP
00000ffe: JUMPDEST
00000fff: SWAP1
00001000: POP
00001001: PUSH2 0x100b
00001004: DUP2
00001005: DUP4
00001006: DUP14
00001007: PUSH2 0x1f6c
0000100a: JUMP
0000100b: JUMPDEST
0000100c: POP
0000100d: POP
0000100e: POP
0000100f: POP
00001010: POP
00001011: PUSH2 0x0c7c
00001014: JUMP
00001015: JUMPDEST
00001016: PUSH1 0x01
00001018: DUP2
00001019: PUSH1 0x01
0000101b: DUP2
0000101c: GT
0000101d: ISZERO
0000101e: PUSH2 0x1029
00001021: JUMPI
00001022: PUSH2 0x1029
00001025: PUSH2 0x2cbe
00001028: JUMP
00001029: JUMPDEST
0000102a: SUB
0000102b: PUSH2 0x0c7c
0000102e: JUMPI
0000102f: CALLDATASIZE
00001030: PUSH1 0x00
00001032: PUSH2 0x103e
00001035: DUP6
00001036: PUSH1 0x01
00001038: DUP2
00001039: DUP10
0000103a: PUSH2 0x30cc
0000103d: JUMP
0000103e: JUMPDEST
0000103f: SWAP2
00001040: POP
00001041: SWAP2
00001042: POP
00001043: PUSH2 0x1083
00001046: DUP3
00001047: DUP3
00001048: DUP1
00001049: DUP1
0000104a: PUSH1 0x1f
0000104c: ADD
0000104d: PUSH1 0x20
0000104f: DUP1
00001050: SWAP2
00001051: DIV
00001052: MUL
00001053: PUSH1 0x20
00001055: ADD
00001056: PUSH1 0x40
00001058: MLOAD
00001059: SWAP1
0000105a: DUP2
0000105b: ADD
0000105c: PUSH1 0x40
0000105e: MSTORE
0000105f: DUP1
00001060: SWAP4
00001061: SWAP3
00001062: SWAP2
00001063: SWAP1
00001064: DUP2
00001065: DUP2
00001066: MSTORE
00001067: PUSH1 0x20
00001069: ADD
0000106a: DUP4
0000106b: DUP4
0000106c: DUP1
0000106d: DUP3
0000106e: DUP5
0000106f: CALLDATACOPY
00001070: PUSH1 0x00
00001072: SWAP3
00001073: ADD
00001074: SWAP2
00001075: SWAP1
00001076: SWAP2
00001077: MSTORE
00001078: POP
00001079: DUP13
0000107a: SWAP3
0000107b: POP
0000107c: PUSH2 0x20c6
0000107f: SWAP2
00001080: POP
00001081: POP
00001082: JUMP
00001083: JUMPDEST
00001084: POP
00001085: POP
00001086: POP
00001087: POP
00001088: POP
00001089: POP
0000108a: POP
0000108b: POP
0000108c: JUMP
0000108d: JUMPDEST
0000108e: PUSH1 0x00
00001090: TIMESTAMP
00001091: DUP5
00001092: PUSH1 0x01
00001094: PUSH1 0x01
00001096: PUSH1 0x40
00001098: SHL
00001099: SUB
0000109a: AND
0000109b: GT
0000109c: PUSH2 0x10b7
0000109f: JUMPI
000010a0: PUSH1 0x40
000010a2: MLOAD
000010a3: PUSH3 0x461bcd
000010a7: PUSH1 0xe5
000010a9: SHL
000010aa: DUP2
000010ab: MSTORE
000010ac: PUSH1 0x04
000010ae: ADD
000010af: PUSH2 0x069b
000010b2: SWAP1
000010b3: PUSH2 0x2e5e
000010b6: JUMP
000010b7: JUMPDEST
000010b8: PUSH1 0x40
000010ba: DUP1
000010bb: MLOAD
000010bc: PUSH2 0x0120
000010bf: DUP2
000010c0: ADD
000010c1: DUP3
000010c2: MSTORE
000010c3: DUP11
000010c4: DUP2
000010c5: MSTORE
000010c6: PUSH1 0x20
000010c8: DUP1
000010c9: DUP3
000010ca: ADD
000010cb: DUP12
000010cc: SWAP1
000010cd: MSTORE
000010ce: DUP2
000010cf: DUP4
000010d0: ADD
000010d1: DUP11
000010d2: SWAP1
000010d3: MSTORE
000010d4: PUSH1 0x60
000010d6: DUP3
000010d7: ADD
000010d8: DUP10
000010d9: SWAP1
000010da: MSTORE
000010db: PUSH1 0x05
000010dd: SLOAD
000010de: PUSH4 0xffffffff
000010e3: SWAP1
000010e4: DUP2
000010e5: AND
000010e6: PUSH1 0x80
000010e8: DUP5
000010e9: ADD
000010ea: MSTORE
000010eb: PUSH1 0x03
000010ed: SLOAD
000010ee: PUSH1 0x01
000010f0: PUSH1 0xa0
000010f2: SHL
000010f3: SWAP1
000010f4: DIV
000010f5: DUP2
000010f6: AND
000010f7: PUSH1 0xa0
000010f9: DUP5
000010fa: ADD
000010fb: MSTORE
000010fc: DUP9
000010fd: AND
000010fe: PUSH1 0xc0
00001100: DUP4
00001101: ADD
00001102: MSTORE
00001103: PUSH1 0x01
00001105: PUSH1 0x01
00001107: PUSH1 0x40
00001109: SHL
0000110a: SUB
0000110b: DUP8
0000110c: AND
0000110d: PUSH1 0xe0
0000110f: DUP4
00001110: ADD
00001111: MSTORE
00001112: DUP3
00001113: MLOAD
00001114: PUSH1 0x1f
00001116: DUP7
00001117: ADD
00001118: DUP3
00001119: SWAP1
0000111a: DIV
0000111b: DUP3
0000111c: MUL
0000111d: DUP2
0000111e: ADD
0000111f: DUP3
00001120: ADD
00001121: SWAP1
00001122: SWAP4
00001123: MSTORE
00001124: DUP5
00001125: DUP4
00001126: MSTORE
00001127: PUSH1 0x00
00001129: SWAP3
0000112a: PUSH2 0x0100
0000112d: DUP4
0000112e: ADD
0000112f: SWAP2
00001130: DUP8
00001131: SWAP1
00001132: DUP8
00001133: SWAP1
00001134: DUP2
00001135: SWAP1
00001136: DUP5
00001137: ADD
00001138: DUP4
00001139: DUP3
0000113a: DUP1
0000113b: DUP3
0000113c: DUP5
0000113d: CALLDATACOPY
0000113e: PUSH1 0x00
00001140: SWAP3
00001141: ADD
00001142: DUP3
00001143: SWAP1
00001144: MSTORE
00001145: POP
00001146: SWAP4
00001147: SWAP1
00001148: SWAP5
00001149: MSTORE
0000114a: POP
0000114b: SWAP3
0000114c: SWAP4
0000114d: POP
0000114e: SWAP2
0000114f: POP
00001150: PUSH2 0x115a
00001153: SWAP1
00001154: POP
00001155: DUP3
00001156: PUSH2 0x1ab6
00001159: JUMP
0000115a: JUMPDEST
0000115b: PUSH4 0xffffffff
00001160: DUP9
00001161: AND
00001162: PUSH1 0x00
00001164: SWAP1
00001165: DUP2
00001166: MSTORE
00001167: PUSH1 0x04
00001169: PUSH1 0x20
0000116b: MSTORE
0000116c: PUSH1 0x40
0000116e: SWAP1
0000116f: KECCAK256
00001170: SLOAD
00001171: SWAP1
00001172: SWAP2
00001173: POP
00001174: PUSH2 0x118f
00001177: JUMPI
00001178: PUSH1 0x40
0000117a: MLOAD
0000117b: PUSH3 0x461bcd
0000117f: PUSH1 0xe5
00001181: SHL
00001182: DUP2
00001183: MSTORE
00001184: PUSH1 0x04
00001186: ADD
00001187: PUSH2 0x069b
0000118a: SWAP1
0000118b: PUSH2 0x2ebb
0000118e: JUMP
0000118f: JUMPDEST
00001190: PUSH1 0x05
00001192: DUP1
00001193: SLOAD
00001194: PUSH1 0x01
00001196: SWAP2
00001197: SWAP1
00001198: PUSH1 0x00
0000119a: SWAP1
0000119b: PUSH2 0x11ab
0000119e: SWAP1
0000119f: DUP5
000011a0: SWAP1
000011a1: PUSH4 0xffffffff
000011a6: AND
000011a7: PUSH2 0x2f22
000011aa: JUMP
000011ab: JUMPDEST
000011ac: DUP3
000011ad: SLOAD
000011ae: PUSH2 0x0100
000011b1: SWAP3
000011b2: SWAP1
000011b3: SWAP3
000011b4: EXP
000011b5: PUSH4 0xffffffff
000011ba: DUP2
000011bb: DUP2
000011bc: MUL
000011bd: NOT
000011be: SWAP1
000011bf: SWAP4
000011c0: AND
000011c1: SWAP2
000011c2: DUP4
000011c3: AND
000011c4: MUL
000011c5: OR
000011c6: SWAP1
000011c7: SWAP2
000011c8: SSTORE
000011c9: PUSH1 0x40
000011cb: DUP1
000011cc: MLOAD
000011cd: PUSH1 0x80
000011cf: DUP1
000011d0: DUP3
000011d1: ADD
000011d2: DUP4
000011d3: MSTORE
000011d4: DUP7
000011d5: MLOAD
000011d6: DUP3
000011d7: MSTORE
000011d8: DUP7
000011d9: ADD
000011da: MLOAD
000011db: DUP4
000011dc: AND
000011dd: PUSH1 0x20
000011df: DUP1
000011e0: DUP4
000011e1: ADD
000011e2: SWAP2
000011e3: DUP3
000011e4: MSTORE
000011e5: PUSH1 0xc0
000011e7: DUP9
000011e8: ADD
000011e9: MLOAD
000011ea: DUP6
000011eb: AND
000011ec: DUP4
000011ed: DUP6
000011ee: ADD
000011ef: SWAP1
000011f0: DUP2
000011f1: MSTORE
000011f2: DUP9
000011f3: DUP6
000011f4: ADD
000011f5: MLOAD
000011f6: PUSH1 0x60
000011f8: DUP6
000011f9: ADD
000011fa: SWAP1
000011fb: DUP2
000011fc: MSTORE
000011fd: PUSH1 0x00
000011ff: DUP10
00001200: DUP2
00001201: MSTORE
00001202: PUSH1 0x06
00001204: SWAP1
00001205: SWAP4
00001206: MSTORE
00001207: SWAP5
00001208: SWAP1
00001209: SWAP2
0000120a: KECCAK256
0000120b: SWAP3
0000120c: MLOAD
0000120d: DUP4
0000120e: SSTORE
0000120f: SWAP1
00001210: MLOAD
00001211: PUSH1 0x01
00001213: DUP4
00001214: ADD
00001215: SSTORE
00001216: MLOAD
00001217: PUSH1 0x02
00001219: DUP3
0000121a: ADD
0000121b: DUP1
0000121c: SLOAD
0000121d: PUSH4 0xffffffff
00001222: NOT
00001223: AND
00001224: SWAP2
00001225: SWAP1
00001226: SWAP5
00001227: AND
00001228: OR
00001229: SWAP1
0000122a: SWAP3
0000122b: SSTORE
0000122c: MLOAD
0000122d: PUSH1 0x03
0000122f: SWAP1
00001230: SWAP2
00001231: ADD
00001232: SSTORE
00001233: POP
00001234: DUP1
00001235: PUSH32 0x59f858504f8d8ad967dd7453df850e265270474e364b7e2fbd3333e06efdbfc0
00001256: PUSH2 0x125e
00001259: DUP5
0000125a: PUSH2 0x1ac1
0000125d: JUMP
0000125e: JUMPDEST
0000125f: PUSH1 0x40
00001261: MLOAD
00001262: PUSH2 0x126b
00001265: SWAP2
00001266: SWAP1
00001267: PUSH2 0x2d88
0000126a: JUMP
0000126b: JUMPDEST
0000126c: PUSH1 0x40
0000126e: MLOAD
0000126f: DUP1
00001270: SWAP2
00001271: SUB
00001272: SWAP1
00001273: LOG2
00001274: PUSH1 0x01
00001276: SLOAD
00001277: PUSH1 0x40
00001279: DUP4
0000127a: ADD
0000127b: MLOAD
0000127c: PUSH2 0x1292
0000127f: SWAP2
00001280: PUSH1 0x01
00001282: PUSH1 0x01
00001284: PUSH1 0xa0
00001286: SHL
00001287: SUB
00001288: AND
00001289: SWAP1
0000128a: CALLER
0000128b: SWAP1
0000128c: ADDRESS
0000128d: SWAP1
0000128e: PUSH2 0x20f6
00001291: JUMP
00001292: JUMPDEST
00001293: SWAP11
00001294: SWAP10
00001295: POP
00001296: POP
00001297: POP
00001298: POP
00001299: POP
0000129a: POP
0000129b: POP
0000129c: POP
0000129d: POP
0000129e: POP
0000129f: JUMP
000012a0: JUMPDEST
000012a1: PUSH2 0x12a8
000012a4: PUSH2 0x1be2
000012a7: JUMP
000012a8: JUMPDEST
000012a9: PUSH2 0x12b2
000012ac: PUSH1 0x00
000012ae: PUSH2 0x215d
000012b1: JUMP
000012b2: JUMPDEST
000012b3: JUMP
000012b4: JUMPDEST
000012b5: PUSH1 0x60
000012b7: PUSH1 0x00
000012b9: DUP1
000012ba: JUMPDEST
000012bb: DUP4
000012bc: MLOAD
000012bd: DUP2
000012be: LT
000012bf: ISZERO
000012c0: PUSH2 0x14cf
000012c3: JUMPI
000012c4: PUSH1 0x00
000012c6: DUP5
000012c7: DUP3
000012c8: DUP2
000012c9: MLOAD
000012ca: DUP2
000012cb: LT
000012cc: PUSH2 0x12d7
000012cf: JUMPI
000012d0: PUSH2 0x12d7
000012d3: PUSH2 0x3065
000012d6: JUMP
000012d7: JUMPDEST
000012d8: PUSH1 0x20
000012da: MUL
000012db: PUSH1 0x20
000012dd: ADD
000012de: ADD
000012df: MLOAD
000012e0: SWAP1
000012e1: POP
000012e2: PUSH1 0x03
000012e4: PUSH1 0x14
000012e6: SWAP1
000012e7: SLOAD
000012e8: SWAP1
000012e9: PUSH2 0x0100
000012ec: EXP
000012ed: SWAP1
000012ee: DIV
000012ef: PUSH4 0xffffffff
000012f4: AND
000012f5: PUSH4 0xffffffff
000012fa: AND
000012fb: DUP2
000012fc: PUSH1 0xc0
000012fe: ADD
000012ff: MLOAD
00001300: PUSH4 0xffffffff
00001305: AND
00001306: EQ
00001307: PUSH2 0x1364
0000130a: JUMPI
0000130b: PUSH1 0x40
0000130d: MLOAD
0000130e: PUSH3 0x461bcd
00001312: PUSH1 0xe5
00001314: SHL
00001315: DUP2
00001316: MSTORE
00001317: PUSH1 0x20
00001319: PUSH1 0x04
0000131b: DUP3
0000131c: ADD
0000131d: MSTORE
0000131e: PUSH1 0x29
00001320: PUSH1 0x24
00001322: DUP3
00001323: ADD
00001324: MSTORE
00001325: PUSH32 0x466173745472616e73666572476174657761793a20696e76616c6964206c6f63
00001346: PUSH1 0x44
00001348: DUP3
00001349: ADD
0000134a: MSTORE
0000134b: PUSH9 0x30b6103237b6b0b4b7
00001355: PUSH1 0xb9
00001357: SHL
00001358: PUSH1 0x64
0000135a: DUP3
0000135b: ADD
0000135c: MSTORE
0000135d: PUSH1 0x84
0000135f: ADD
00001360: PUSH2 0x069b
00001363: JUMP
00001364: JUMPDEST
00001365: PUSH1 0x00
00001367: PUSH2 0x136f
0000136a: DUP3
0000136b: PUSH2 0x1ab6
0000136e: JUMP
0000136f: JUMPDEST
00001370: PUSH1 0x00
00001372: DUP2
00001373: DUP2
00001374: MSTORE
00001375: PUSH1 0x07
00001377: PUSH1 0x20
00001379: MSTORE
0000137a: PUSH1 0x40
0000137c: SWAP1
0000137d: KECCAK256
0000137e: SLOAD
0000137f: PUSH1 0xe0
00001381: DUP5
00001382: ADD
00001383: MLOAD
00001384: SWAP2
00001385: SWAP3
00001386: POP
00001387: PUSH1 0xff
00001389: AND
0000138a: SWAP1
0000138b: TIMESTAMP
0000138c: PUSH1 0x01
0000138e: PUSH1 0x01
00001390: PUSH1 0x40
00001392: SHL
00001393: SUB
00001394: SWAP1
00001395: SWAP2
00001396: AND
00001397: LT
00001398: PUSH2 0x13f4
0000139b: JUMPI
0000139c: PUSH1 0x40
0000139e: MLOAD
0000139f: PUSH3 0x461bcd
000013a3: PUSH1 0xe5
000013a5: SHL
000013a6: DUP2
000013a7: MSTORE
000013a8: PUSH1 0x20
000013aa: PUSH1 0x04
000013ac: DUP3
000013ad: ADD
000013ae: MSTORE
000013af: PUSH1 0x28
000013b1: PUSH1 0x24
000013b3: DUP3
000013b4: ADD
000013b5: MSTORE
000013b6: PUSH32 0x466173745472616e73666572476174657761793a206f72646572206e6f742074
000013d7: PUSH1 0x44
000013d9: DUP3
000013da: ADD
000013db: MSTORE
000013dc: PUSH8 0x1a5b5959081bdd5d
000013e5: PUSH1 0xc2
000013e7: SHL
000013e8: PUSH1 0x64
000013ea: DUP3
000013eb: ADD
000013ec: MSTORE
000013ed: PUSH1 0x84
000013ef: ADD
000013f0: PUSH2 0x069b
000013f3: JUMP
000013f4: JUMPDEST
000013f5: PUSH1 0x00
000013f7: DUP2
000013f8: PUSH1 0x02
000013fa: DUP2
000013fb: GT
000013fc: ISZERO
000013fd: PUSH2 0x1408
00001400: JUMPI
00001401: PUSH2 0x1408
00001404: PUSH2 0x2cbe
00001407: JUMP
00001408: JUMPDEST
00001409: EQ
0000140a: PUSH2 0x145f
0000140d: JUMPI
0000140e: PUSH1 0x40
00001410: MLOAD
00001411: PUSH3 0x461bcd
00001415: PUSH1 0xe5
00001417: SHL
00001418: DUP2
00001419: MSTORE
0000141a: PUSH1 0x20
0000141c: PUSH1 0x04
0000141e: DUP3
0000141f: ADD
00001420: MSTORE
00001421: PUSH1 0x21
00001423: PUSH1 0x24
00001425: DUP3
00001426: ADD
00001427: MSTORE
00001428: PUSH32 0x466173745472616e73666572476174657761793a206f726465722066696c6c65
00001449: PUSH1 0x44
0000144b: DUP3
0000144c: ADD
0000144d: MSTORE
0000144e: PUSH1 0x19
00001450: PUSH1 0xfa
00001452: SHL
00001453: PUSH1 0x64
00001455: DUP3
00001456: ADD
00001457: MSTORE
00001458: PUSH1 0x84
0000145a: ADD
0000145b: PUSH2 0x069b
0000145e: JUMP
0000145f: JUMPDEST
00001460: DUP4
00001461: ISZERO
00001462: PUSH2 0x1494
00001465: JUMPI
00001466: DUP5
00001467: PUSH4 0xffffffff
0000146c: AND
0000146d: DUP4
0000146e: PUSH1 0xa0
00001470: ADD
00001471: MLOAD
00001472: PUSH4 0xffffffff
00001477: AND
00001478: EQ
00001479: PUSH2 0x1494
0000147c: JUMPI
0000147d: PUSH1 0x40
0000147f: MLOAD
00001480: PUSH3 0x461bcd
00001484: PUSH1 0xe5
00001486: SHL
00001487: DUP2
00001488: MSTORE
00001489: PUSH1 0x04
0000148b: ADD
0000148c: PUSH2 0x069b
0000148f: SWAP1
00001490: PUSH2 0x2f46
00001493: JUMP
00001494: JUMPDEST
00001495: DUP6
00001496: DUP3
00001497: PUSH1 0x40
00001499: MLOAD
0000149a: PUSH1 0x20
0000149c: ADD
0000149d: PUSH2 0x14a7
000014a0: SWAP3
000014a1: SWAP2
000014a2: SWAP1
000014a3: PUSH2 0x307b
000014a6: JUMP
000014a7: JUMPDEST
000014a8: PUSH1 0x40
000014aa: MLOAD
000014ab: PUSH1 0x20
000014ad: DUP2
000014ae: DUP4
000014af: SUB
000014b0: SUB
000014b1: DUP2
000014b2: MSTORE
000014b3: SWAP1
000014b4: PUSH1 0x40
000014b6: MSTORE
000014b7: SWAP6
000014b8: POP
000014b9: DUP3
000014ba: PUSH1 0xa0
000014bc: ADD
000014bd: MLOAD
000014be: SWAP5
000014bf: POP
000014c0: POP
000014c1: POP
000014c2: POP
000014c3: DUP1
000014c4: DUP1
000014c5: PUSH1 0x01
000014c7: ADD
000014c8: SWAP2
000014c9: POP
000014ca: POP
000014cb: PUSH2 0x12ba
000014ce: JUMP
000014cf: JUMPDEST
000014d0: POP
000014d1: PUSH4 0xffffffff
000014d6: DUP2
000014d7: AND
000014d8: PUSH1 0x00
000014da: SWAP1
000014db: DUP2
000014dc: MSTORE
000014dd: PUSH1 0x04
000014df: PUSH1 0x20
000014e1: MSTORE
000014e2: PUSH1 0x40
000014e4: SWAP1
000014e5: KECCAK256
000014e6: SLOAD
000014e7: DUP1
000014e8: PUSH2 0x1503
000014eb: JUMPI
000014ec: PUSH1 0x40
000014ee: MLOAD
000014ef: PUSH3 0x461bcd
000014f3: PUSH1 0xe5
000014f5: SHL
000014f6: DUP2
000014f7: MSTORE
000014f8: PUSH1 0x04
000014fa: ADD
000014fb: PUSH2 0x069b
000014fe: SWAP1
000014ff: PUSH2 0x2fa7
00001502: JUMP
00001503: JUMPDEST
00001504: PUSH1 0x00
00001506: PUSH1 0x01
00001508: DUP5
00001509: PUSH1 0x40
0000150b: MLOAD
0000150c: PUSH1 0x20
0000150e: ADD
0000150f: PUSH2 0x0bf4
00001512: SWAP3
00001513: SWAP2
00001514: SWAP1
00001515: PUSH2 0x309d
00001518: JUMP
00001519: JUMPDEST
0000151a: PUSH2 0x1521
0000151d: PUSH2 0x21ce
00001520: JUMP
00001521: JUMPDEST
00001522: TIMESTAMP
00001523: DUP2
00001524: PUSH1 0xe0
00001526: ADD
00001527: MLOAD
00001528: PUSH1 0x01
0000152a: PUSH1 0x01
0000152c: PUSH1 0x40
0000152e: SHL
0000152f: SUB
00001530: AND
00001531: GT
00001532: PUSH2 0x1588
00001535: JUMPI
00001536: PUSH1 0x40
00001538: MLOAD
00001539: PUSH3 0x461bcd
0000153d: PUSH1 0xe5
0000153f: SHL
00001540: DUP2
00001541: MSTORE
00001542: PUSH1 0x20
00001544: PUSH1 0x04
00001546: DUP3
00001547: ADD
00001548: MSTORE
00001549: PUSH1 0x22
0000154b: PUSH1 0x24
0000154d: DUP3
0000154e: ADD
0000154f: MSTORE
00001550: PUSH32 0x466173745472616e73666572476174657761793a206f72646572206578706972
00001571: PUSH1 0x44
00001573: DUP3
00001574: ADD
00001575: MSTORE
00001576: PUSH2 0x1959
00001579: PUSH1 0xf2
0000157b: SHL
0000157c: PUSH1 0x64
0000157e: DUP3
0000157f: ADD
00001580: MSTORE
00001581: PUSH1 0x84
00001583: ADD
00001584: PUSH2 0x069b
00001587: JUMP
00001588: JUMPDEST
00001589: PUSH1 0xa0
0000158b: DUP2
0000158c: ADD
0000158d: MLOAD
0000158e: PUSH4 0xffffffff
00001593: AND
00001594: PUSH1 0x00
00001596: SWAP1
00001597: DUP2
00001598: MSTORE
00001599: PUSH1 0x04
0000159b: PUSH1 0x20
0000159d: MSTORE
0000159e: PUSH1 0x40
000015a0: SWAP1
000015a1: KECCAK256
000015a2: SLOAD
000015a3: PUSH2 0x1603
000015a6: JUMPI
000015a7: PUSH1 0x40
000015a9: MLOAD
000015aa: PUSH3 0x461bcd
000015ae: PUSH1 0xe5
000015b0: SHL
000015b1: DUP2
000015b2: MSTORE
000015b3: PUSH1 0x20
000015b5: PUSH1 0x04
000015b7: DUP3
000015b8: ADD
000015b9: MSTORE
000015ba: PUSH1 0x2c
000015bc: PUSH1 0x24
000015be: DUP3
000015bf: ADD
000015c0: MSTORE
000015c1: PUSH32 0x466173745472616e73666572476174657761793a20736f7572636520646f6d61
000015e2: PUSH1 0x44
000015e4: DUP3
000015e5: ADD
000015e6: MSTORE
000015e7: PUSH12 0x1a5b881b9bdd08199bdd5b99
000015f4: PUSH1 0xa2
000015f6: SHL
000015f7: PUSH1 0x64
000015f9: DUP3
000015fa: ADD
000015fb: MSTORE
000015fc: PUSH1 0x84
000015fe: ADD
000015ff: PUSH2 0x069b
00001602: JUMP
00001603: JUMPDEST
00001604: PUSH1 0x03
00001606: SLOAD
00001607: PUSH1 0xc0
00001609: DUP3
0000160a: ADD
0000160b: MLOAD
0000160c: PUSH4 0xffffffff
00001611: SWAP1
00001612: DUP2
00001613: AND
00001614: PUSH1 0x01
00001616: PUSH1 0xa0
00001618: SHL
00001619: SWAP1
0000161a: SWAP3
0000161b: DIV
0000161c: AND
0000161d: EQ
0000161e: PUSH2 0x168f
00001621: JUMPI
00001622: PUSH1 0x40
00001624: MLOAD
00001625: PUSH3 0x461bcd
00001629: PUSH1 0xe5
0000162b: SHL
0000162c: DUP2
0000162d: MSTORE
0000162e: PUSH1 0x20
00001630: PUSH1 0x04
00001632: DUP3
00001633: ADD
00001634: MSTORE
00001635: PUSH1 0x3b
00001637: PUSH1 0x24
00001639: DUP3
0000163a: ADD
0000163b: MSTORE
0000163c: PUSH32 0x466173745472616e73666572476174657761793a20696e636f72726563742064
0000165d: PUSH1 0x44
0000165f: DUP3
00001660: ADD
00001661: MSTORE
00001662: PUSH32 0x657374696e6174696f6e20646f6d61696e20666f72206f726465720000000000
00001683: PUSH1 0x64
00001685: DUP3
00001686: ADD
00001687: MSTORE
00001688: PUSH1 0x84
0000168a: ADD
0000168b: PUSH2 0x069b
0000168e: JUMP
0000168f: JUMPDEST
00001690: PUSH1 0x00
00001692: PUSH2 0x169a
00001695: DUP3
00001696: PUSH2 0x1ab6
00001699: JUMP
0000169a: JUMPDEST
0000169b: SWAP1
0000169c: POP
0000169d: PUSH1 0x00
0000169f: DUP1
000016a0: DUP3
000016a1: DUP2
000016a2: MSTORE
000016a3: PUSH1 0x07
000016a5: PUSH1 0x20
000016a7: MSTORE
000016a8: PUSH1 0x40
000016aa: SWAP1
000016ab: KECCAK256
000016ac: SLOAD
000016ad: PUSH1 0xff
000016af: AND
000016b0: PUSH1 0x02
000016b2: DUP2
000016b3: GT
000016b4: ISZERO
000016b5: PUSH2 0x16c0
000016b8: JUMPI
000016b9: PUSH2 0x16c0
000016bc: PUSH2 0x2cbe
000016bf: JUMP
000016c0: JUMPDEST
000016c1: EQ
000016c2: PUSH2 0x171f
000016c5: JUMPI
000016c6: PUSH1 0x40
000016c8: MLOAD
000016c9: PUSH3 0x461bcd
000016cd: PUSH1 0xe5
000016cf: SHL
000016d0: DUP2
000016d1: MSTORE
000016d2: PUSH1 0x20
000016d4: PUSH1 0x04
000016d6: DUP3
000016d7: ADD
000016d8: MSTORE
000016d9: PUSH1 0x29
000016db: PUSH1 0x24
000016dd: DUP3
000016de: ADD
000016df: MSTORE
000016e0: PUSH32 0x466173745472616e73666572476174657761793a206f7264657220616c726561
00001701: PUSH1 0x44
00001703: DUP3
00001704: ADD
00001705: MSTORE
00001706: PUSH9 0x191e48199a5b1b1959
00001710: PUSH1 0xba
00001712: SHL
00001713: PUSH1 0x64
00001715: DUP3
00001716: ADD
00001717: MSTORE
00001718: PUSH1 0x84
0000171a: ADD
0000171b: PUSH2 0x069b
0000171e: JUMP
0000171f: JUMPDEST
00001720: PUSH1 0x00
00001722: PUSH2 0x172c
00001725: DUP4
00001726: PUSH1 0x20
00001728: ADD
00001729: MLOAD
0000172a: SWAP1
0000172b: JUMP
0000172c: JUMPDEST
0000172d: PUSH1 0x02
0000172f: SLOAD
00001730: SWAP1
00001731: SWAP2
00001732: POP
00001733: PUSH1 0x01
00001735: PUSH1 0x01
00001737: PUSH1 0xa0
00001739: SHL
0000173a: SUB
0000173b: SWAP1
0000173c: DUP2
0000173d: AND
0000173e: SWAP1
0000173f: DUP3
00001740: AND
00001741: SUB
00001742: PUSH2 0x17ac
00001745: JUMPI
00001746: PUSH1 0x40
00001748: MLOAD
00001749: PUSH3 0x461bcd
0000174d: PUSH1 0xe5
0000174f: SHL
00001750: DUP2
00001751: MSTORE
00001752: PUSH1 0x20
00001754: PUSH1 0x04
00001756: DUP3
00001757: ADD
00001758: MSTORE
00001759: PUSH1 0x36
0000175b: PUSH1 0x24
0000175d: DUP3
0000175e: ADD
0000175f: MSTORE
00001760: PUSH32 0x466173745472616e73666572476174657761793a206f72646572207265636970
00001781: PUSH1 0x44
00001783: DUP3
00001784: ADD
00001785: MSTORE
00001786: PUSH22 0x0d2cadce840c6c2dcdcdee840c4ca40dac2d2d8c4def
0000179d: PUSH1 0x53
0000179f: SHL
000017a0: PUSH1 0x64
000017a2: DUP3
000017a3: ADD
000017a4: MSTORE
000017a5: PUSH1 0x84
000017a7: ADD
000017a8: PUSH2 0x069b
000017ab: JUMP
000017ac: JUMPDEST
000017ad: PUSH1 0x00
000017af: DUP3
000017b0: DUP2
000017b1: MSTORE
000017b2: PUSH1 0x07
000017b4: PUSH1 0x20
000017b6: SWAP1
000017b7: DUP2
000017b8: MSTORE
000017b9: PUSH1 0x40
000017bb: DUP1
000017bc: DUP4
000017bd: KECCAK256
000017be: DUP1
000017bf: SLOAD
000017c0: PUSH1 0x01
000017c2: PUSH1 0xff
000017c4: NOT
000017c5: SWAP1
000017c6: SWAP2
000017c7: AND
000017c8: DUP2
000017c9: OR
000017ca: SWAP1
000017cb: SWAP2
000017cc: SSTORE
000017cd: DUP2
000017ce: MLOAD
000017cf: PUSH1 0x60
000017d1: DUP2
000017d2: ADD
000017d3: DUP4
000017d4: MSTORE
000017d5: DUP7
000017d6: DUP2
000017d7: MSTORE
000017d8: PUSH1 0x01
000017da: PUSH1 0x01
000017dc: PUSH1 0xa0
000017de: SHL
000017df: SUB
000017e0: DUP10
000017e1: DUP2
000017e2: AND
000017e3: DUP3
000017e4: DUP7
000017e5: ADD
000017e6: SWAP1
000017e7: DUP2
000017e8: MSTORE
000017e9: PUSH1 0xa0
000017eb: DUP11
000017ec: ADD
000017ed: MLOAD
000017ee: PUSH4 0xffffffff
000017f3: SWAP1
000017f4: DUP2
000017f5: AND
000017f6: DUP5
000017f7: DUP8
000017f8: ADD
000017f9: SWAP1
000017fa: DUP2
000017fb: MSTORE
000017fc: DUP11
000017fd: DUP10
000017fe: MSTORE
000017ff: PUSH1 0x08
00001801: SWAP1
00001802: SWAP8
00001803: MSTORE
00001804: SWAP5
00001805: SWAP1
00001806: SWAP7
00001807: KECCAK256
00001808: SWAP2
00001809: MLOAD
0000180a: DUP3
0000180b: SSTORE
0000180c: SWAP5
0000180d: MLOAD
0000180e: SWAP2
0000180f: ADD
00001810: DUP1
00001811: SLOAD
00001812: SWAP4
00001813: MLOAD
00001814: SWAP1
00001815: SWAP3
00001816: AND
00001817: PUSH1 0x01
00001819: PUSH1 0xa0
0000181b: SHL
0000181c: MUL
0000181d: PUSH1 0x01
0000181f: PUSH1 0x01
00001821: PUSH1 0xc0
00001823: SHL
00001824: SUB
00001825: NOT
00001826: SWAP1
00001827: SWAP4
00001828: AND
00001829: SWAP4
0000182a: AND
0000182b: SWAP3
0000182c: SWAP1
0000182d: SWAP3
0000182e: OR
0000182f: OR
00001830: SWAP1
00001831: SSTORE
00001832: PUSH2 0x0100
00001835: DUP4
00001836: ADD
00001837: MLOAD
00001838: MLOAD
00001839: ISZERO
0000183a: PUSH2 0x1909
0000183d: JUMPI
0000183e: PUSH1 0x01
00001840: SLOAD
00001841: PUSH1 0x09
00001843: SLOAD
00001844: PUSH1 0x60
00001846: DUP6
00001847: ADD
00001848: MLOAD
00001849: PUSH2 0x1862
0000184c: SWAP3
0000184d: PUSH1 0x01
0000184f: PUSH1 0x01
00001851: PUSH1 0xa0
00001853: SHL
00001854: SUB
00001855: SWAP1
00001856: DUP2
00001857: AND
00001858: SWAP3
00001859: CALLER
0000185a: SWAP3
0000185b: SWAP2
0000185c: AND
0000185d: SWAP1
0000185e: PUSH2 0x20f6
00001861: JUMP
00001862: JUMPDEST
00001863: PUSH1 0x09
00001865: SLOAD
00001866: PUSH1 0x01
00001868: SLOAD
00001869: PUSH1 0x60
0000186b: DUP6
0000186c: ADD
0000186d: MLOAD
0000186e: PUSH2 0x0100
00001871: DUP7
00001872: ADD
00001873: MLOAD
00001874: PUSH1 0x40
00001876: MLOAD
00001877: PUSH4 0x135df5ff
0000187c: PUSH1 0xe3
0000187e: SHL
0000187f: DUP2
00001880: MSTORE
00001881: PUSH1 0x00
00001883: SWAP5
00001884: PUSH1 0x01
00001886: PUSH1 0x01
00001888: PUSH1 0xa0
0000188a: SHL
0000188b: SUB
0000188c: SWAP1
0000188d: DUP2
0000188e: AND
0000188f: SWAP5
00001890: PUSH4 0x9aefaff8
00001895: SWAP5
00001896: PUSH2 0x18aa
00001899: SWAP5
0000189a: DUP10
0000189b: SWAP5
0000189c: SWAP3
0000189d: SWAP1
0000189e: SWAP4
0000189f: AND
000018a0: SWAP3
000018a1: SWAP1
000018a2: SWAP2
000018a3: PUSH1 0x04
000018a5: ADD
000018a6: PUSH2 0x3114
000018a9: JUMP
000018aa: JUMPDEST
000018ab: PUSH1 0x00
000018ad: PUSH1 0x40
000018af: MLOAD
000018b0: DUP1
000018b1: DUP4
000018b2: SUB
000018b3: DUP2
000018b4: PUSH1 0x00
000018b6: DUP8
000018b7: GAS
000018b8: CALL
000018b9: ISZERO
000018ba: DUP1
000018bb: ISZERO
000018bc: PUSH2 0x18c9
000018bf: JUMPI
000018c0: RETURNDATASIZE
000018c1: PUSH1 0x00
000018c3: DUP1
000018c4: RETURNDATACOPY
000018c5: RETURNDATASIZE
000018c6: PUSH1 0x00
000018c8: REVERT
000018c9: JUMPDEST
000018ca: POP
000018cb: POP
000018cc: POP
000018cd: POP
000018ce: PUSH1 0x40
000018d0: MLOAD
000018d1: RETURNDATASIZE
000018d2: PUSH1 0x00
000018d4: DUP3
000018d5: RETURNDATACOPY
000018d6: PUSH1 0x1f
000018d8: RETURNDATASIZE
000018d9: SWAP1
000018da: DUP2
000018db: ADD
000018dc: PUSH1 0x1f
000018de: NOT
000018df: AND
000018e0: DUP3
000018e1: ADD
000018e2: PUSH1 0x40
000018e4: MSTORE
000018e5: PUSH2 0x18f1
000018e8: SWAP2
000018e9: SWAP1
000018ea: DUP2
000018eb: ADD
000018ec: SWAP1
000018ed: PUSH2 0x3161
000018f0: JUMP
000018f1: JUMPDEST
000018f2: POP
000018f3: SWAP1
000018f4: POP
000018f5: DUP1
000018f6: PUSH2 0x1903
000018f9: JUMPI
000018fa: RETURNDATASIZE
000018fb: PUSH1 0x00
000018fd: DUP1
000018fe: RETURNDATACOPY
000018ff: RETURNDATASIZE
00001900: PUSH1 0x00
00001902: REVERT
00001903: JUMPDEST
00001904: POP
00001905: PUSH2 0x1928
00001908: JUMP
00001909: JUMPDEST
0000190a: PUSH1 0x01
0000190c: SLOAD
0000190d: PUSH1 0x60
0000190f: DUP5
00001910: ADD
00001911: MLOAD
00001912: PUSH2 0x1928
00001915: SWAP2
00001916: PUSH1 0x01
00001918: PUSH1 0x01
0000191a: PUSH1 0xa0
0000191c: SHL
0000191d: SUB
0000191e: AND
0000191f: SWAP1
00001920: CALLER
00001921: SWAP1
00001922: DUP5
00001923: SWAP1
00001924: PUSH2 0x20f6
00001927: JUMP
00001928: JUMPDEST
00001929: POP
0000192a: POP
0000192b: PUSH2 0x0dd5
0000192e: PUSH1 0x01
00001930: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
00001951: SSTORE
00001952: JUMP
00001953: JUMPDEST
00001954: PUSH2 0x195b
00001957: PUSH2 0x1be2
0000195a: JUMP
0000195b: JUMPDEST
0000195c: PUSH4 0xffffffff
00001961: SWAP1
00001962: SWAP2
00001963: AND
00001964: PUSH1 0x00
00001966: SWAP1
00001967: DUP2
00001968: MSTORE
00001969: PUSH1 0x04
0000196b: PUSH1 0x20
0000196d: MSTORE
0000196e: PUSH1 0x40
00001970: SWAP1
00001971: KECCAK256
00001972: SSTORE
00001973: JUMP
00001974: JUMPDEST
00001975: PUSH4 0xffffffff
0000197a: DUP4
0000197b: AND
0000197c: PUSH1 0x00
0000197e: SWAP1
0000197f: DUP2
00001980: MSTORE
00001981: PUSH1 0x04
00001983: PUSH1 0x20
00001985: MSTORE
00001986: PUSH1 0x40
00001988: DUP2
00001989: KECCAK256
0000198a: SLOAD
0000198b: DUP1
0000198c: PUSH2 0x19a7
0000198f: JUMPI
00001990: PUSH1 0x40
00001992: MLOAD
00001993: PUSH3 0x461bcd
00001997: PUSH1 0xe5
00001999: SHL
0000199a: DUP2
0000199b: MSTORE
0000199c: PUSH1 0x04
0000199e: ADD
0000199f: PUSH2 0x069b
000019a2: SWAP1
000019a3: PUSH2 0x2fa7
000019a6: JUMP
000019a7: JUMPDEST
000019a8: PUSH1 0x00
000019aa: DUP1
000019ab: DUP6
000019ac: DUP6
000019ad: PUSH1 0x40
000019af: MLOAD
000019b0: PUSH1 0x20
000019b2: ADD
000019b3: PUSH2 0x19be
000019b6: SWAP4
000019b7: SWAP3
000019b8: SWAP2
000019b9: SWAP1
000019ba: PUSH2 0x2ff1
000019bd: JUMP
000019be: JUMPDEST
000019bf: PUSH1 0x40
000019c1: DUP1
000019c2: MLOAD
000019c3: PUSH1 0x1f
000019c5: NOT
000019c6: DUP2
000019c7: DUP5
000019c8: SUB
000019c9: ADD
000019ca: DUP2
000019cb: MSTORE
000019cc: SWAP1
000019cd: DUP3
000019ce: SWAP1
000019cf: MSTORE
000019d0: PUSH1 0x02
000019d2: SLOAD
000019d3: PUSH4 0x138857a3
000019d8: PUSH1 0xe3
000019da: SHL
000019db: DUP4
000019dc: MSTORE
000019dd: SWAP1
000019de: SWAP3
000019df: POP
000019e0: PUSH1 0x01
000019e2: PUSH1 0x01
000019e4: PUSH1 0xa0
000019e6: SHL
000019e7: SUB
000019e8: AND
000019e9: SWAP1
000019ea: PUSH4 0x9c42bd18
000019ef: SWAP1
000019f0: PUSH2 0x1a01
000019f3: SWAP1
000019f4: DUP10
000019f5: SWAP1
000019f6: DUP7
000019f7: SWAP1
000019f8: DUP7
000019f9: SWAP1
000019fa: PUSH1 0x04
000019fc: ADD
000019fd: PUSH2 0x3027
00001a00: JUMP
00001a01: JUMPDEST
00001a02: PUSH1 0x20
00001a04: PUSH1 0x40
00001a06: MLOAD
00001a07: DUP1
00001a08: DUP4
00001a09: SUB
00001a0a: DUP2
00001a0b: DUP7
00001a0c: GAS
00001a0d: STATICCALL
00001a0e: ISZERO
00001a0f: DUP1
00001a10: ISZERO
00001a11: PUSH2 0x1a1e
00001a14: JUMPI
00001a15: RETURNDATASIZE
00001a16: PUSH1 0x00
00001a18: DUP1
00001a19: RETURNDATACOPY
00001a1a: RETURNDATASIZE
00001a1b: PUSH1 0x00
00001a1d: REVERT
00001a1e: JUMPDEST
00001a1f: POP
00001a20: POP
00001a21: POP
00001a22: POP
00001a23: PUSH1 0x40
00001a25: MLOAD
00001a26: RETURNDATASIZE
00001a27: PUSH1 0x1f
00001a29: NOT
00001a2a: PUSH1 0x1f
00001a2c: DUP3
00001a2d: ADD
00001a2e: AND
00001a2f: DUP3
00001a30: ADD
00001a31: DUP1
00001a32: PUSH1 0x40
00001a34: MSTORE
00001a35: POP
00001a36: DUP2
00001a37: ADD
00001a38: SWAP1
00001a39: PUSH2 0x1a42
00001a3c: SWAP2
00001a3d: SWAP1
00001a3e: PUSH2 0x304c
00001a41: JUMP
00001a42: JUMPDEST
00001a43: SWAP3
00001a44: POP
00001a45: POP
00001a46: POP
00001a47: JUMPDEST
00001a48: SWAP4
00001a49: SWAP3
00001a4a: POP
00001a4b: POP
00001a4c: POP
00001a4d: JUMP
00001a4e: JUMPDEST
00001a4f: PUSH2 0x1a56
00001a52: PUSH2 0x1be2
00001a55: JUMP
00001a56: JUMPDEST
00001a57: PUSH1 0x01
00001a59: PUSH1 0x01
00001a5b: PUSH1 0xa0
00001a5d: SHL
00001a5e: SUB
00001a5f: DUP2
00001a60: AND
00001a61: PUSH2 0x1a80
00001a64: JUMPI
00001a65: PUSH1 0x40
00001a67: MLOAD
00001a68: PUSH4 0x1e4fbdf7
00001a6d: PUSH1 0xe0
00001a6f: SHL
00001a70: DUP2
00001a71: MSTORE
00001a72: PUSH1 0x00
00001a74: PUSH1 0x04
00001a76: DUP3
00001a77: ADD
00001a78: MSTORE
00001a79: PUSH1 0x24
00001a7b: ADD
00001a7c: PUSH2 0x069b
00001a7f: JUMP
00001a80: JUMPDEST
00001a81: PUSH2 0x1a89
00001a84: DUP2
00001a85: PUSH2 0x215d
00001a88: JUMP
00001a89: JUMPDEST
00001a8a: POP
00001a8b: JUMP
00001a8c: JUMPDEST
00001a8d: PUSH2 0x1a94
00001a90: PUSH2 0x1be2
00001a93: JUMP
00001a94: JUMPDEST
00001a95: PUSH1 0x02
00001a97: DUP1
00001a98: SLOAD
00001a99: PUSH1 0x01
00001a9b: PUSH1 0x01
00001a9d: PUSH1 0xa0
00001a9f: SHL
00001aa0: SUB
00001aa1: NOT
00001aa2: AND
00001aa3: PUSH1 0x01
00001aa5: PUSH1 0x01
00001aa7: PUSH1 0xa0
00001aa9: SHL
00001aaa: SUB
00001aab: SWAP3
00001aac: SWAP1
00001aad: SWAP3
00001aae: AND
00001aaf: SWAP2
00001ab0: SWAP1
00001ab1: SWAP2
00001ab2: OR
00001ab3: SWAP1
00001ab4: SSTORE
00001ab5: JUMP
00001ab6: JUMPDEST
00001ab7: PUSH1 0x00
00001ab9: PUSH2 0x0db4
00001abc: DUP3
00001abd: PUSH2 0x2218
00001ac0: JUMP
00001ac1: JUMPDEST
00001ac2: PUSH1 0x60
00001ac4: DUP2
00001ac5: PUSH1 0x00
00001ac7: ADD
00001ac8: MLOAD
00001ac9: DUP3
00001aca: PUSH1 0x20
00001acc: ADD
00001acd: MLOAD
00001ace: DUP4
00001acf: PUSH1 0x40
00001ad1: ADD
00001ad2: MLOAD
00001ad3: DUP5
00001ad4: PUSH1 0x60
00001ad6: ADD
00001ad7: MLOAD
00001ad8: DUP6
00001ad9: PUSH1 0x80
00001adb: ADD
00001adc: MLOAD
00001add: DUP7
00001ade: PUSH1 0xa0
00001ae0: ADD
00001ae1: MLOAD
00001ae2: DUP8
00001ae3: PUSH1 0xc0
00001ae5: ADD
00001ae6: MLOAD
00001ae7: DUP9
00001ae8: PUSH1 0xe0
00001aea: ADD
00001aeb: MLOAD
00001aec: DUP10
00001aed: PUSH2 0x0100
00001af0: ADD
00001af1: MLOAD
00001af2: PUSH1 0x40
00001af4: MLOAD
00001af5: PUSH1 0x20
00001af7: ADD
00001af8: PUSH2 0x1b09
00001afb: SWAP10
00001afc: SWAP9
00001afd: SWAP8
00001afe: SWAP7
00001aff: SWAP6
00001b00: SWAP5
00001b01: SWAP4
00001b02: SWAP3
00001b03: SWAP2
00001b04: SWAP1
00001b05: PUSH2 0x31ea
00001b08: JUMP
00001b09: JUMPDEST
00001b0a: PUSH1 0x40
00001b0c: MLOAD
00001b0d: PUSH1 0x20
00001b0f: DUP2
00001b10: DUP4
00001b11: SUB
00001b12: SUB
00001b13: DUP2
00001b14: MSTORE
00001b15: SWAP1
00001b16: PUSH1 0x40
00001b18: MSTORE
00001b19: SWAP1
00001b1a: POP
00001b1b: SWAP2
00001b1c: SWAP1
00001b1d: POP
00001b1e: JUMP
00001b1f: JUMPDEST
00001b20: PUSH1 0x00
00001b22: SLOAD
00001b23: PUSH1 0x40
00001b25: DUP1
00001b26: MLOAD
00001b27: PUSH1 0xa0
00001b29: DUP2
00001b2a: ADD
00001b2b: DUP3
00001b2c: MSTORE
00001b2d: PUSH1 0x01
00001b2f: SLOAD
00001b30: PUSH1 0x01
00001b32: PUSH1 0x01
00001b34: PUSH1 0xa0
00001b36: SHL
00001b37: SUB
00001b38: SWAP1
00001b39: DUP2
00001b3a: AND
00001b3b: PUSH1 0x60
00001b3d: DUP4
00001b3e: ADD
00001b3f: SWAP1
00001b40: DUP2
00001b41: MSTORE
00001b42: PUSH1 0x80
00001b44: DUP4
00001b45: ADD
00001b46: DUP11
00001b47: SWAP1
00001b48: MSTORE
00001b49: DUP3
00001b4a: MSTORE
00001b4b: PUSH4 0xffffffff
00001b50: DUP8
00001b51: AND
00001b52: PUSH1 0x20
00001b54: DUP1
00001b55: DUP5
00001b56: ADD
00001b57: SWAP2
00001b58: SWAP1
00001b59: SWAP2
00001b5a: MSTORE
00001b5b: DUP3
00001b5c: DUP5
00001b5d: ADD
00001b5e: DUP10
00001b5f: SWAP1
00001b60: MSTORE
00001b61: DUP4
00001b62: MLOAD
00001b63: DUP1
00001b64: DUP6
00001b65: ADD
00001b66: DUP6
00001b67: MSTORE
00001b68: ADDRESS
00001b69: DUP2
00001b6a: MSTORE
00001b6b: SWAP1
00001b6c: DUP2
00001b6d: ADD
00001b6e: DUP11
00001b6f: SWAP1
00001b70: MSTORE
00001b71: SWAP3
00001b72: MLOAD
00001b73: PUSH4 0x187945bd
00001b78: PUSH1 0xe1
00001b7a: SHL
00001b7b: DUP2
00001b7c: MSTORE
00001b7d: SWAP4
00001b7e: AND
00001b7f: SWAP3
00001b80: PUSH4 0x30f28b7a
00001b85: SWAP3
00001b86: PUSH2 0x1b98
00001b89: SWAP3
00001b8a: SWAP2
00001b8b: CALLER
00001b8c: SWAP1
00001b8d: DUP9
00001b8e: SWAP1
00001b8f: DUP9
00001b90: SWAP1
00001b91: PUSH1 0x04
00001b93: ADD
00001b94: PUSH2 0x3268
00001b97: JUMP
00001b98: JUMPDEST
00001b99: PUSH1 0x00
00001b9b: PUSH1 0x40
00001b9d: MLOAD
00001b9e: DUP1
00001b9f: DUP4
00001ba0: SUB
00001ba1: DUP2
00001ba2: PUSH1 0x00
00001ba4: DUP8
00001ba5: DUP1
00001ba6: EXTCODESIZE
00001ba7: ISZERO
00001ba8: DUP1
00001ba9: ISZERO
00001baa: PUSH2 0x1bb2
00001bad: JUMPI
00001bae: PUSH1 0x00
00001bb0: DUP1
00001bb1: REVERT
00001bb2: JUMPDEST
00001bb3: POP
00001bb4: GAS
00001bb5: CALL
00001bb6: ISZERO
00001bb7: DUP1
00001bb8: ISZERO
00001bb9: PUSH2 0x1bc6
00001bbc: JUMPI
00001bbd: RETURNDATASIZE
00001bbe: PUSH1 0x00
00001bc0: DUP1
00001bc1: RETURNDATACOPY
00001bc2: RETURNDATASIZE
00001bc3: PUSH1 0x00
00001bc5: REVERT
00001bc6: JUMPDEST
00001bc7: POP
00001bc8: POP
00001bc9: POP
00001bca: POP
00001bcb: POP
00001bcc: POP
00001bcd: POP
00001bce: POP
00001bcf: POP
00001bd0: JUMP
00001bd1: JUMPDEST
00001bd2: PUSH2 0x1bd9
00001bd5: PUSH2 0x2231
00001bd8: JUMP
00001bd9: JUMPDEST
00001bda: PUSH2 0x1a89
00001bdd: DUP2
00001bde: PUSH2 0x227a
00001be1: JUMP
00001be2: JUMPDEST
00001be3: CALLER
00001be4: PUSH2 0x1c14
00001be7: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
00001c08: SLOAD
00001c09: PUSH1 0x01
00001c0b: PUSH1 0x01
00001c0d: PUSH1 0xa0
00001c0f: SHL
00001c10: SUB
00001c11: AND
00001c12: SWAP1
00001c13: JUMP
00001c14: JUMPDEST
00001c15: PUSH1 0x01
00001c17: PUSH1 0x01
00001c19: PUSH1 0xa0
00001c1b: SHL
00001c1c: SUB
00001c1d: AND
00001c1e: EQ
00001c1f: PUSH2 0x12b2
00001c22: JUMPI
00001c23: PUSH1 0x40
00001c25: MLOAD
00001c26: PUSH4 0x118cdaa7
00001c2b: PUSH1 0xe0
00001c2d: SHL
00001c2e: DUP2
00001c2f: MSTORE
00001c30: CALLER
00001c31: PUSH1 0x04
00001c33: DUP3
00001c34: ADD
00001c35: MSTORE
00001c36: PUSH1 0x24
00001c38: ADD
00001c39: PUSH2 0x069b
00001c3c: JUMP
00001c3d: JUMPDEST
00001c3e: PUSH1 0x00
00001c40: JUMPDEST
00001c41: DUP2
00001c42: MLOAD
00001c43: DUP2
00001c44: LT
00001c45: ISZERO
00001c46: PUSH2 0x0dd5
00001c49: JUMPI
00001c4a: PUSH1 0x00
00001c4c: DUP2
00001c4d: PUSH1 0x20
00001c4f: ADD
00001c50: DUP4
00001c51: ADD
00001c52: MLOAD
00001c53: SWAP1
00001c54: POP
00001c55: PUSH1 0x00
00001c57: DUP3
00001c58: PUSH1 0x20
00001c5a: PUSH2 0x1c63
00001c5d: SWAP2
00001c5e: SWAP1
00001c5f: PUSH2 0x2f94
00001c62: JUMP
00001c63: JUMPDEST
00001c64: SWAP1
00001c65: POP
00001c66: JUMPDEST
00001c67: DUP4
00001c68: MLOAD
00001c69: DUP2
00001c6a: LT
00001c6b: ISZERO
00001c6c: PUSH2 0x1ce4
00001c6f: JUMPI
00001c70: DUP4
00001c71: DUP2
00001c72: ADD
00001c73: PUSH1 0x20
00001c75: ADD
00001c76: MLOAD
00001c77: DUP3
00001c78: DUP2
00001c79: SUB
00001c7a: PUSH2 0x1cd1
00001c7d: JUMPI
00001c7e: PUSH1 0x40
00001c80: MLOAD
00001c81: PUSH3 0x461bcd
00001c85: PUSH1 0xe5
00001c87: SHL
00001c88: DUP2
00001c89: MSTORE
00001c8a: PUSH1 0x20
00001c8c: PUSH1 0x04
00001c8e: DUP3
00001c8f: ADD
00001c90: MSTORE
00001c91: PUSH1 0x24
00001c93: DUP1
00001c94: DUP3
00001c95: ADD
00001c96: MSTORE
00001c97: PUSH32 0x466173745472616e73666572476174657761793a206475706c6963617465206f
00001cb8: PUSH1 0x44
00001cba: DUP3
00001cbb: ADD
00001cbc: MSTORE
00001cbd: PUSH4 0x393232b9
00001cc2: PUSH1 0xe1
00001cc4: SHL
00001cc5: PUSH1 0x64
00001cc7: DUP3
00001cc8: ADD
00001cc9: MSTORE
00001cca: PUSH1 0x84
00001ccc: ADD
00001ccd: PUSH2 0x069b
00001cd0: JUMP
00001cd1: JUMPDEST
00001cd2: POP
00001cd3: PUSH2 0x1cdd
00001cd6: PUSH1 0x20
00001cd8: DUP3
00001cd9: PUSH2 0x2f94
00001cdc: JUMP
00001cdd: JUMPDEST
00001cde: SWAP1
00001cdf: POP
00001ce0: PUSH2 0x1c66
00001ce3: JUMP
00001ce4: JUMPDEST
00001ce5: POP
00001ce6: PUSH2 0x1cf2
00001ce9: SWAP1
00001cea: POP
00001ceb: PUSH1 0x20
00001ced: DUP3
00001cee: PUSH2 0x2f94
00001cf1: JUMP
00001cf2: JUMPDEST
00001cf3: SWAP1
00001cf4: POP
00001cf5: PUSH2 0x1c40
00001cf8: JUMP
00001cf9: JUMPDEST
00001cfa: PUSH1 0x40
00001cfc: DUP1
00001cfd: MLOAD
00001cfe: PUSH1 0x60
00001d00: DUP1
00001d01: DUP3
00001d02: ADD
00001d03: DUP4
00001d04: MSTORE
00001d05: PUSH1 0x00
00001d07: DUP1
00001d08: DUP4
00001d09: MSTORE
00001d0a: PUSH1 0x20
00001d0c: DUP1
00001d0d: DUP5
00001d0e: ADD
00001d0f: DUP3
00001d10: SWAP1
00001d11: MSTORE
00001d12: DUP4
00001d13: DUP6
00001d14: ADD
00001d15: DUP3
00001d16: SWAP1
00001d17: MSTORE
00001d18: DUP6
00001d19: DUP3
00001d1a: MSTORE
00001d1b: PUSH1 0x08
00001d1d: DUP2
00001d1e: MSTORE
00001d1f: SWAP1
00001d20: DUP5
00001d21: SWAP1
00001d22: KECCAK256
00001d23: DUP5
00001d24: MLOAD
00001d25: SWAP3
00001d26: DUP4
00001d27: ADD
00001d28: DUP6
00001d29: MSTORE
00001d2a: DUP1
00001d2b: SLOAD
00001d2c: DUP4
00001d2d: MSTORE
00001d2e: PUSH1 0x01
00001d30: ADD
00001d31: SLOAD
00001d32: PUSH1 0x01
00001d34: PUSH1 0x01
00001d36: PUSH1 0xa0
00001d38: SHL
00001d39: SUB
00001d3a: DUP2
00001d3b: AND
00001d3c: SWAP2
00001d3d: DUP4
00001d3e: ADD
00001d3f: DUP3
00001d40: SWAP1
00001d41: MSTORE
00001d42: PUSH1 0x01
00001d44: PUSH1 0xa0
00001d46: SHL
00001d47: SWAP1
00001d48: DIV
00001d49: PUSH4 0xffffffff
00001d4e: AND
00001d4f: SWAP4
00001d50: DUP3
00001d51: ADD
00001d52: SWAP4
00001d53: SWAP1
00001d54: SWAP4
00001d55: MSTORE
00001d56: SWAP1
00001d57: SWAP2
00001d58: PUSH2 0x0db4
00001d5b: JUMPI
00001d5c: PUSH1 0x40
00001d5e: MLOAD
00001d5f: PUSH3 0x461bcd
00001d63: PUSH1 0xe5
00001d65: SHL
00001d66: DUP2
00001d67: MSTORE
00001d68: PUSH1 0x20
00001d6a: PUSH1 0x04
00001d6c: DUP3
00001d6d: ADD
00001d6e: MSTORE
00001d6f: PUSH1 0x25
00001d71: PUSH1 0x24
00001d73: DUP3
00001d74: ADD
00001d75: MSTORE
00001d76: PUSH32 0x466173745472616e73666572476174657761793a206f72646572206e6f742066
00001d97: PUSH1 0x44
00001d99: DUP3
00001d9a: ADD
00001d9b: MSTORE
00001d9c: PUSH5 0x1a5b1b1959
00001da2: PUSH1 0xda
00001da4: SHL
00001da5: PUSH1 0x64
00001da7: DUP3
00001da8: ADD
00001da9: MSTORE
00001daa: PUSH1 0x84
00001dac: ADD
00001dad: PUSH2 0x069b
00001db0: JUMP
00001db1: JUMPDEST
00001db2: ADDRESS
00001db3: PUSH1 0x01
00001db5: PUSH1 0x01
00001db7: PUSH1 0xa0
00001db9: SHL
00001dba: SUB
00001dbb: PUSH32 0x0000000000000000000000005afdab84d684a057d359498e40f38f433390e711
00001ddc: AND
00001ddd: EQ
00001dde: DUP1
00001ddf: PUSH2 0x1e38
00001de2: JUMPI
00001de3: POP
00001de4: PUSH32 0x0000000000000000000000005afdab84d684a057d359498e40f38f433390e711
00001e05: PUSH1 0x01
00001e07: PUSH1 0x01
00001e09: PUSH1 0xa0
00001e0b: SHL
00001e0c: SUB
00001e0d: AND
00001e0e: PUSH2 0x1e2c
00001e11: PUSH1 0x00
00001e13: DUP1
00001e14: MLOAD
00001e15: PUSH1 0x20
00001e17: PUSH2 0x33bb
00001e1a: DUP4
00001e1b: CODECOPY
00001e1c: DUP2
00001e1d: MLOAD
00001e1e: SWAP2
00001e1f: MSTORE
00001e20: SLOAD
00001e21: PUSH1 0x01
00001e23: PUSH1 0x01
00001e25: PUSH1 0xa0
00001e27: SHL
00001e28: SUB
00001e29: AND
00001e2a: SWAP1
00001e2b: JUMP
00001e2c: JUMPDEST
00001e2d: PUSH1 0x01
00001e2f: PUSH1 0x01
00001e31: PUSH1 0xa0
00001e33: SHL
00001e34: SUB
00001e35: AND
00001e36: EQ
00001e37: ISZERO
00001e38: JUMPDEST
00001e39: ISZERO
00001e3a: PUSH2 0x12b2
00001e3d: JUMPI
00001e3e: PUSH1 0x40
00001e40: MLOAD
00001e41: PUSH4 0x703e46dd
00001e46: PUSH1 0xe1
00001e48: SHL
00001e49: DUP2
00001e4a: MSTORE
00001e4b: PUSH1 0x04
00001e4d: ADD
00001e4e: PUSH1 0x40
00001e50: MLOAD
00001e51: DUP1
00001e52: SWAP2
00001e53: SUB
00001e54: SWAP1
00001e55: REVERT
00001e56: JUMPDEST
00001e57: PUSH2 0x1a89
00001e5a: PUSH2 0x1be2
00001e5d: JUMP
00001e5e: JUMPDEST
00001e5f: DUP2
00001e60: PUSH1 0x01
00001e62: PUSH1 0x01
00001e64: PUSH1 0xa0
00001e66: SHL
00001e67: SUB
00001e68: AND
00001e69: PUSH4 0x52d1902d
00001e6e: PUSH1 0x40
00001e70: MLOAD
00001e71: DUP2
00001e72: PUSH4 0xffffffff
00001e77: AND
00001e78: PUSH1 0xe0
00001e7a: SHL
00001e7b: DUP2
00001e7c: MSTORE
00001e7d: PUSH1 0x04
00001e7f: ADD
00001e80: PUSH1 0x20
00001e82: PUSH1 0x40
00001e84: MLOAD
00001e85: DUP1
00001e86: DUP4
00001e87: SUB
00001e88: DUP2
00001e89: DUP7
00001e8a: GAS
00001e8b: STATICCALL
00001e8c: SWAP3
00001e8d: POP
00001e8e: POP
00001e8f: POP
00001e90: DUP1
00001e91: ISZERO
00001e92: PUSH2 0x1eb8
00001e95: JUMPI
00001e96: POP
00001e97: PUSH1 0x40
00001e99: DUP1
00001e9a: MLOAD
00001e9b: PUSH1 0x1f
00001e9d: RETURNDATASIZE
00001e9e: SWAP1
00001e9f: DUP2
00001ea0: ADD
00001ea1: PUSH1 0x1f
00001ea3: NOT
00001ea4: AND
00001ea5: DUP3
00001ea6: ADD
00001ea7: SWAP1
00001ea8: SWAP3
00001ea9: MSTORE
00001eaa: PUSH2 0x1eb5
00001ead: SWAP2
00001eae: DUP2
00001eaf: ADD
00001eb0: SWAP1
00001eb1: PUSH2 0x304c
00001eb4: JUMP
00001eb5: JUMPDEST
00001eb6: PUSH1 0x01
00001eb8: JUMPDEST
00001eb9: PUSH2 0x1ee0
00001ebc: JUMPI
00001ebd: PUSH1 0x40
00001ebf: MLOAD
00001ec0: PUSH4 0x4c9c8ce3
00001ec5: PUSH1 0xe0
00001ec7: SHL
00001ec8: DUP2
00001ec9: MSTORE
00001eca: PUSH1 0x01
00001ecc: PUSH1 0x01
00001ece: PUSH1 0xa0
00001ed0: SHL
00001ed1: SUB
00001ed2: DUP4
00001ed3: AND
00001ed4: PUSH1 0x04
00001ed6: DUP3
00001ed7: ADD
00001ed8: MSTORE
00001ed9: PUSH1 0x24
00001edb: ADD
00001edc: PUSH2 0x069b
00001edf: JUMP
00001ee0: JUMPDEST
00001ee1: PUSH1 0x00
00001ee3: DUP1
00001ee4: MLOAD
00001ee5: PUSH1 0x20
00001ee7: PUSH2 0x33bb
00001eea: DUP4
00001eeb: CODECOPY
00001eec: DUP2
00001eed: MLOAD
00001eee: SWAP2
00001eef: MSTORE
00001ef0: DUP2
00001ef1: EQ
00001ef2: PUSH2 0x1f11
00001ef5: JUMPI
00001ef6: PUSH1 0x40
00001ef8: MLOAD
00001ef9: PUSH4 0x2a875269
00001efe: PUSH1 0xe2
00001f00: SHL
00001f01: DUP2
00001f02: MSTORE
00001f03: PUSH1 0x04
00001f05: DUP2
00001f06: ADD
00001f07: DUP3
00001f08: SWAP1
00001f09: MSTORE
00001f0a: PUSH1 0x24
00001f0c: ADD
00001f0d: PUSH2 0x069b
00001f10: JUMP
00001f11: JUMPDEST
00001f12: PUSH2 0x1f1b
00001f15: DUP4
00001f16: DUP4
00001f17: PUSH2 0x2282
00001f1a: JUMP
00001f1b: JUMPDEST
00001f1c: POP
00001f1d: POP
00001f1e: POP
00001f1f: JUMP
00001f20: JUMPDEST
00001f21: ADDRESS
00001f22: PUSH1 0x01
00001f24: PUSH1 0x01
00001f26: PUSH1 0xa0
00001f28: SHL
00001f29: SUB
00001f2a: PUSH32 0x0000000000000000000000005afdab84d684a057d359498e40f38f433390e711
00001f4b: AND
00001f4c: EQ
00001f4d: PUSH2 0x12b2
00001f50: JUMPI
00001f51: PUSH1 0x40
00001f53: MLOAD
00001f54: PUSH4 0x703e46dd
00001f59: PUSH1 0xe1
00001f5b: SHL
00001f5c: DUP2
00001f5d: MSTORE
00001f5e: PUSH1 0x04
00001f60: ADD
00001f61: PUSH1 0x40
00001f63: MLOAD
00001f64: DUP1
00001f65: SWAP2
00001f66: SUB
00001f67: SWAP1
00001f68: REVERT
00001f69: JUMPDEST
00001f6a: SWAP1
00001f6b: JUMP
00001f6c: JUMPDEST
00001f6d: PUSH1 0x00
00001f6f: DUP1
00001f70: JUMPDEST
00001f71: DUP4
00001f72: MLOAD
00001f73: DUP2
00001f74: LT
00001f75: ISZERO
00001f76: PUSH2 0x20a8
00001f79: JUMPI
00001f7a: PUSH1 0x20
00001f7c: DUP2
00001f7d: DUP6
00001f7e: ADD
00001f7f: DUP2
00001f80: ADD
00001f81: MLOAD
00001f82: PUSH1 0x00
00001f84: DUP2
00001f85: DUP2
00001f86: MSTORE
00001f87: PUSH1 0x06
00001f89: DUP4
00001f8a: MSTORE
00001f8b: PUSH1 0x40
00001f8d: DUP1
00001f8e: DUP3
00001f8f: KECCAK256
00001f90: DUP2
00001f91: MLOAD
00001f92: PUSH1 0x80
00001f94: DUP2
00001f95: ADD
00001f96: DUP4
00001f97: MSTORE
00001f98: DUP2
00001f99: SLOAD
00001f9a: DUP2
00001f9b: MSTORE
00001f9c: PUSH1 0x01
00001f9e: DUP3
00001f9f: ADD
00001fa0: SLOAD
00001fa1: DUP2
00001fa2: DUP8
00001fa3: ADD
00001fa4: MSTORE
00001fa5: PUSH1 0x02
00001fa7: DUP1
00001fa8: DUP4
00001fa9: ADD
00001faa: SLOAD
00001fab: PUSH4 0xffffffff
00001fb0: AND
00001fb1: DUP3
00001fb2: DUP6
00001fb3: ADD
00001fb4: MSTORE
00001fb5: PUSH1 0x03
00001fb7: SWAP1
00001fb8: SWAP3
00001fb9: ADD
00001fba: SLOAD
00001fbb: PUSH1 0x60
00001fbd: DUP3
00001fbe: ADD
00001fbf: MSTORE
00001fc0: DUP5
00001fc1: DUP5
00001fc2: MSTORE
00001fc3: PUSH1 0x07
00001fc5: SWAP1
00001fc6: SWAP6
00001fc7: MSTORE
00001fc8: SWAP1
00001fc9: DUP3
00001fca: KECCAK256
00001fcb: SLOAD
00001fcc: SWAP3
00001fcd: SWAP4
00001fce: SWAP3
00001fcf: PUSH1 0xff
00001fd1: AND
00001fd2: SWAP1
00001fd3: DUP2
00001fd4: GT
00001fd5: ISZERO
00001fd6: PUSH2 0x1fe1
00001fd9: JUMPI
00001fda: PUSH2 0x1fe1
00001fdd: PUSH2 0x2cbe
00001fe0: JUMP
00001fe1: JUMPDEST
00001fe2: EQ
00001fe3: PUSH2 0x1fed
00001fe6: JUMPI
00001fe7: POP
00001fe8: POP
00001fe9: PUSH2 0x2096
00001fec: JUMP
00001fed: JUMPDEST
00001fee: PUSH1 0x00
00001ff0: DUP2
00001ff1: PUSH1 0x20
00001ff3: ADD
00001ff4: MLOAD
00001ff5: GT
00001ff6: PUSH2 0x2011
00001ff9: JUMPI
00001ffa: PUSH1 0x40
00001ffc: MLOAD
00001ffd: PUSH3 0x461bcd
00002001: PUSH1 0xe5
00002003: SHL
00002004: DUP2
00002005: MSTORE
00002006: PUSH1 0x04
00002008: ADD
00002009: PUSH2 0x069b
0000200c: SWAP1
0000200d: PUSH2 0x32eb
00002010: JUMP
00002011: JUMPDEST
00002012: DUP5
00002013: PUSH4 0xffffffff
00002018: AND
00002019: DUP2
0000201a: PUSH1 0x40
0000201c: ADD
0000201d: MLOAD
0000201e: PUSH4 0xffffffff
00002023: AND
00002024: EQ
00002025: PUSH2 0x2040
00002028: JUMPI
00002029: PUSH1 0x40
0000202b: MLOAD
0000202c: PUSH3 0x461bcd
00002030: PUSH1 0xe5
00002032: SHL
00002033: DUP2
00002034: MSTORE
00002035: PUSH1 0x04
00002037: ADD
00002038: PUSH2 0x069b
0000203b: SWAP1
0000203c: PUSH2 0x332f
0000203f: JUMP
00002040: JUMPDEST
00002041: PUSH1 0x60
00002043: DUP2
00002044: ADD
00002045: MLOAD
00002046: PUSH2 0x204f
00002049: SWAP1
0000204a: DUP6
0000204b: PUSH2 0x2f94
0000204e: JUMP
0000204f: JUMPDEST
00002050: PUSH1 0x00
00002052: DUP4
00002053: DUP2
00002054: MSTORE
00002055: PUSH1 0x07
00002057: PUSH1 0x20
00002059: MSTORE
0000205a: PUSH1 0x40
0000205c: DUP1
0000205d: DUP3
0000205e: KECCAK256
0000205f: DUP1
00002060: SLOAD
00002061: PUSH1 0xff
00002063: NOT
00002064: AND
00002065: PUSH1 0x01
00002067: OR
00002068: SWAP1
00002069: SSTORE
0000206a: MLOAD
0000206b: SWAP2
0000206c: SWAP6
0000206d: POP
0000206e: DUP4
0000206f: SWAP2
00002070: PUSH32 0xd4250d6114a611e75d68b1c6f14c61e967863d8ac20bc8ebfa4e5f28f6647366
00002091: SWAP2
00002092: SWAP1
00002093: LOG2
00002094: POP
00002095: POP
00002096: JUMPDEST
00002097: PUSH2 0x20a1
0000209a: PUSH1 0x20
0000209c: DUP3
0000209d: PUSH2 0x2f94
000020a0: JUMP
000020a1: JUMPDEST
000020a2: SWAP1
000020a3: POP
000020a4: PUSH2 0x1f70
000020a7: JUMP
000020a8: JUMPDEST
000020a9: POP
000020aa: PUSH1 0x01
000020ac: SLOAD
000020ad: PUSH2 0x20c0
000020b0: SWAP1
000020b1: PUSH1 0x01
000020b3: PUSH1 0x01
000020b5: PUSH1 0xa0
000020b7: SHL
000020b8: SUB
000020b9: AND
000020ba: DUP6
000020bb: DUP4
000020bc: PUSH2 0x22d8
000020bf: JUMP
000020c0: JUMPDEST
000020c1: POP
000020c2: POP
000020c3: POP
000020c4: POP
000020c5: JUMP
000020c6: JUMPDEST
000020c7: PUSH1 0x00
000020c9: JUMPDEST
000020ca: DUP3
000020cb: MLOAD
000020cc: DUP2
000020cd: LT
000020ce: ISZERO
000020cf: PUSH2 0x1f1b
000020d2: JUMPI
000020d3: DUP3
000020d4: DUP2
000020d5: ADD
000020d6: PUSH1 0x20
000020d8: ADD
000020d9: MLOAD
000020da: PUSH2 0x20e3
000020dd: DUP2
000020de: DUP5
000020df: PUSH2 0x2309
000020e2: JUMP
000020e3: JUMPDEST
000020e4: POP
000020e5: PUSH2 0x20ef
000020e8: PUSH1 0x20
000020ea: DUP3
000020eb: PUSH2 0x2f94
000020ee: JUMP
000020ef: JUMPDEST
000020f0: SWAP1
000020f1: POP
000020f2: PUSH2 0x20c9
000020f5: JUMP
000020f6: JUMPDEST
000020f7: PUSH1 0x40
000020f9: MLOAD
000020fa: PUSH1 0x01
000020fc: PUSH1 0x01
000020fe: PUSH1 0xa0
00002100: SHL
00002101: SUB
00002102: DUP5
00002103: DUP2
00002104: AND
00002105: PUSH1 0x24
00002107: DUP4
00002108: ADD
00002109: MSTORE
0000210a: DUP4
0000210b: DUP2
0000210c: AND
0000210d: PUSH1 0x44
0000210f: DUP4
00002110: ADD
00002111: MSTORE
00002112: PUSH1 0x64
00002114: DUP3
00002115: ADD
00002116: DUP4
00002117: SWAP1
00002118: MSTORE
00002119: PUSH2 0x20c0
0000211c: SWAP2
0000211d: DUP7
0000211e: SWAP2
0000211f: DUP3
00002120: AND
00002121: SWAP1
00002122: PUSH4 0x23b872dd
00002127: SWAP1
00002128: PUSH1 0x84
0000212a: ADD
0000212b: JUMPDEST
0000212c: PUSH1 0x40
0000212e: MLOAD
0000212f: PUSH1 0x20
00002131: DUP2
00002132: DUP4
00002133: SUB
00002134: SUB
00002135: DUP2
00002136: MSTORE
00002137: SWAP1
00002138: PUSH1 0x40
0000213a: MSTORE
0000213b: SWAP2
0000213c: POP
0000213d: PUSH1 0xe0
0000213f: SHL
00002140: PUSH1 0x20
00002142: DUP3
00002143: ADD
00002144: DUP1
00002145: MLOAD
00002146: PUSH1 0x01
00002148: PUSH1 0x01
0000214a: PUSH1 0xe0
0000214c: SHL
0000214d: SUB
0000214e: DUP4
0000214f: DUP2
00002150: DUP4
00002151: AND
00002152: OR
00002153: DUP4
00002154: MSTORE
00002155: POP
00002156: POP
00002157: POP
00002158: POP
00002159: PUSH2 0x242c
0000215c: JUMP
0000215d: JUMPDEST
0000215e: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
0000217f: DUP1
00002180: SLOAD
00002181: PUSH1 0x01
00002183: PUSH1 0x01
00002185: PUSH1 0xa0
00002187: SHL
00002188: SUB
00002189: NOT
0000218a: DUP2
0000218b: AND
0000218c: PUSH1 0x01
0000218e: PUSH1 0x01
00002190: PUSH1 0xa0
00002192: SHL
00002193: SUB
00002194: DUP5
00002195: DUP2
00002196: AND
00002197: SWAP2
00002198: DUP3
00002199: OR
0000219a: DUP5
0000219b: SSTORE
0000219c: PUSH1 0x40
0000219e: MLOAD
0000219f: SWAP3
000021a0: AND
000021a1: SWAP2
000021a2: DUP3
000021a3: SWAP1
000021a4: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000021c5: SWAP1
000021c6: PUSH1 0x00
000021c8: SWAP1
000021c9: LOG3
000021ca: POP
000021cb: POP
000021cc: POP
000021cd: JUMP
000021ce: JUMPDEST
000021cf: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
000021f0: DUP1
000021f1: SLOAD
000021f2: PUSH1 0x01
000021f4: NOT
000021f5: ADD
000021f6: PUSH2 0x2212
000021f9: JUMPI
000021fa: PUSH1 0x40
000021fc: MLOAD
000021fd: PUSH4 0x3ee5aeb5
00002202: PUSH1 0xe0
00002204: SHL
00002205: DUP2
00002206: MSTORE
00002207: PUSH1 0x04
00002209: ADD
0000220a: PUSH1 0x40
0000220c: MLOAD
0000220d: DUP1
0000220e: SWAP2
0000220f: SUB
00002210: SWAP1
00002211: REVERT
00002212: JUMPDEST
00002213: PUSH1 0x02
00002215: SWAP1
00002216: SSTORE
00002217: JUMP
00002218: JUMPDEST
00002219: PUSH1 0x00
0000221b: PUSH2 0x2223
0000221e: DUP3
0000221f: PUSH2 0x1ac1
00002222: JUMP
00002223: JUMPDEST
00002224: DUP1
00002225: MLOAD
00002226: SWAP1
00002227: PUSH1 0x20
00002229: ADD
0000222a: KECCAK256
0000222b: SWAP1
0000222c: POP
0000222d: SWAP2
0000222e: SWAP1
0000222f: POP
00002230: JUMP
00002231: JUMPDEST
00002232: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00002253: SLOAD
00002254: PUSH1 0x01
00002256: PUSH1 0x40
00002258: SHL
00002259: SWAP1
0000225a: DIV
0000225b: PUSH1 0xff
0000225d: AND
0000225e: PUSH2 0x12b2
00002261: JUMPI
00002262: PUSH1 0x40
00002264: MLOAD
00002265: PUSH4 0x1afcd79f
0000226a: PUSH1 0xe3
0000226c: SHL
0000226d: DUP2
0000226e: MSTORE
0000226f: PUSH1 0x04
00002271: ADD
00002272: PUSH1 0x40
00002274: MLOAD
00002275: DUP1
00002276: SWAP2
00002277: SUB
00002278: SWAP1
00002279: REVERT
0000227a: JUMPDEST
0000227b: PUSH2 0x1a56
0000227e: PUSH2 0x2231
00002281: JUMP
00002282: JUMPDEST
00002283: PUSH2 0x228b
00002286: DUP3
00002287: PUSH2 0x248f
0000228a: JUMP
0000228b: JUMPDEST
0000228c: PUSH1 0x40
0000228e: MLOAD
0000228f: PUSH1 0x01
00002291: PUSH1 0x01
00002293: PUSH1 0xa0
00002295: SHL
00002296: SUB
00002297: DUP4
00002298: AND
00002299: SWAP1
0000229a: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
000022bb: SWAP1
000022bc: PUSH1 0x00
000022be: SWAP1
000022bf: LOG2
000022c0: DUP1
000022c1: MLOAD
000022c2: ISZERO
000022c3: PUSH2 0x22d0
000022c6: JUMPI
000022c7: PUSH2 0x1f1b
000022ca: DUP3
000022cb: DUP3
000022cc: PUSH2 0x24f4
000022cf: JUMP
000022d0: JUMPDEST
000022d1: PUSH2 0x0dd5
000022d4: PUSH2 0x256a
000022d7: JUMP
000022d8: JUMPDEST
000022d9: PUSH1 0x40
000022db: MLOAD
000022dc: PUSH1 0x01
000022de: PUSH1 0x01
000022e0: PUSH1 0xa0
000022e2: SHL
000022e3: SUB
000022e4: DUP4
000022e5: DUP2
000022e6: AND
000022e7: PUSH1 0x24
000022e9: DUP4
000022ea: ADD
000022eb: MSTORE
000022ec: PUSH1 0x44
000022ee: DUP3
000022ef: ADD
000022f0: DUP4
000022f1: SWAP1
000022f2: MSTORE
000022f3: PUSH2 0x1f1b
000022f6: SWAP2
000022f7: DUP6
000022f8: SWAP2
000022f9: DUP3
000022fa: AND
000022fb: SWAP1
000022fc: PUSH4 0xa9059cbb
00002301: SWAP1
00002302: PUSH1 0x64
00002304: ADD
00002305: PUSH2 0x212b
00002308: JUMP
00002309: JUMPDEST
0000230a: PUSH1 0x00
0000230c: DUP3
0000230d: DUP2
0000230e: MSTORE
0000230f: PUSH1 0x06
00002311: PUSH1 0x20
00002313: SWAP1
00002314: DUP2
00002315: MSTORE
00002316: PUSH1 0x40
00002318: SWAP2
00002319: DUP3
0000231a: SWAP1
0000231b: KECCAK256
0000231c: DUP3
0000231d: MLOAD
0000231e: PUSH1 0x80
00002320: DUP2
00002321: ADD
00002322: DUP5
00002323: MSTORE
00002324: DUP2
00002325: SLOAD
00002326: DUP2
00002327: MSTORE
00002328: PUSH1 0x01
0000232a: DUP3
0000232b: ADD
0000232c: SLOAD
0000232d: SWAP3
0000232e: DUP2
0000232f: ADD
00002330: DUP4
00002331: SWAP1
00002332: MSTORE
00002333: PUSH1 0x02
00002335: DUP3
00002336: ADD
00002337: SLOAD
00002338: PUSH4 0xffffffff
0000233d: AND
0000233e: SWAP4
0000233f: DUP2
00002340: ADD
00002341: SWAP4
00002342: SWAP1
00002343: SWAP4
00002344: MSTORE
00002345: PUSH1 0x03
00002347: ADD
00002348: SLOAD
00002349: PUSH1 0x60
0000234b: DUP4
0000234c: ADD
0000234d: MSTORE
0000234e: PUSH2 0x2369
00002351: JUMPI
00002352: PUSH1 0x40
00002354: MLOAD
00002355: PUSH3 0x461bcd
00002359: PUSH1 0xe5
0000235b: SHL
0000235c: DUP2
0000235d: MSTORE
0000235e: PUSH1 0x04
00002360: ADD
00002361: PUSH2 0x069b
00002364: SWAP1
00002365: PUSH2 0x32eb
00002368: JUMP
00002369: JUMPDEST
0000236a: DUP2
0000236b: PUSH4 0xffffffff
00002370: AND
00002371: DUP2
00002372: PUSH1 0x40
00002374: ADD
00002375: MLOAD
00002376: PUSH4 0xffffffff
0000237b: AND
0000237c: EQ
0000237d: PUSH2 0x2398
00002380: JUMPI
00002381: PUSH1 0x40
00002383: MLOAD
00002384: PUSH3 0x461bcd
00002388: PUSH1 0xe5
0000238a: SHL
0000238b: DUP2
0000238c: MSTORE
0000238d: PUSH1 0x04
0000238f: ADD
00002390: PUSH2 0x069b
00002393: SWAP1
00002394: PUSH2 0x332f
00002397: JUMP
00002398: JUMPDEST
00002399: PUSH1 0x00
0000239b: DUP4
0000239c: DUP2
0000239d: MSTORE
0000239e: PUSH1 0x07
000023a0: PUSH1 0x20
000023a2: MSTORE
000023a3: PUSH1 0x40
000023a5: DUP2
000023a6: KECCAK256
000023a7: SLOAD
000023a8: PUSH1 0xff
000023aa: AND
000023ab: PUSH1 0x02
000023ad: DUP2
000023ae: GT
000023af: ISZERO
000023b0: PUSH2 0x23bb
000023b3: JUMPI
000023b4: PUSH2 0x23bb
000023b7: PUSH2 0x2cbe
000023ba: JUMP
000023bb: JUMPDEST
000023bc: EQ
000023bd: PUSH2 0x23c5
000023c0: JUMPI
000023c1: POP
000023c2: POP
000023c3: POP
000023c4: JUMP
000023c5: JUMPDEST
000023c6: PUSH1 0x00
000023c8: DUP4
000023c9: DUP2
000023ca: MSTORE
000023cb: PUSH1 0x07
000023cd: PUSH1 0x20
000023cf: MSTORE
000023d0: PUSH1 0x40
000023d2: SWAP1
000023d3: KECCAK256
000023d4: DUP1
000023d5: SLOAD
000023d6: PUSH1 0xff
000023d8: NOT
000023d9: AND
000023da: PUSH1 0x02
000023dc: OR
000023dd: SWAP1
000023de: SSTORE
000023df: PUSH1 0x01
000023e1: SLOAD
000023e2: DUP2
000023e3: MLOAD
000023e4: PUSH1 0x60
000023e6: DUP4
000023e7: ADD
000023e8: MLOAD
000023e9: PUSH2 0x23fc
000023ec: SWAP3
000023ed: PUSH1 0x01
000023ef: PUSH1 0x01
000023f1: PUSH1 0xa0
000023f3: SHL
000023f4: SUB
000023f5: AND
000023f6: SWAP2
000023f7: SWAP1
000023f8: PUSH2 0x22d8
000023fb: JUMP
000023fc: JUMPDEST
000023fd: PUSH1 0x40
000023ff: MLOAD
00002400: DUP4
00002401: SWAP1
00002402: PUSH32 0xa60671d8537ed193e567f86ddf28cf35dc67073b5ad80a2d41359cfa78db0a1e
00002423: SWAP1
00002424: PUSH1 0x00
00002426: SWAP1
00002427: LOG2
00002428: POP
00002429: POP
0000242a: POP
0000242b: JUMP
0000242c: JUMPDEST
0000242d: PUSH1 0x00
0000242f: PUSH2 0x2441
00002432: PUSH1 0x01
00002434: PUSH1 0x01
00002436: PUSH1 0xa0
00002438: SHL
00002439: SUB
0000243a: DUP5
0000243b: AND
0000243c: DUP4
0000243d: PUSH2 0x2589
00002440: JUMP
00002441: JUMPDEST
00002442: SWAP1
00002443: POP
00002444: DUP1
00002445: MLOAD
00002446: PUSH1 0x00
00002448: EQ
00002449: ISZERO
0000244a: DUP1
0000244b: ISZERO
0000244c: PUSH2 0x2466
0000244f: JUMPI
00002450: POP
00002451: DUP1
00002452: DUP1
00002453: PUSH1 0x20
00002455: ADD
00002456: SWAP1
00002457: MLOAD
00002458: DUP2
00002459: ADD
0000245a: SWAP1
0000245b: PUSH2 0x2464
0000245e: SWAP2
0000245f: SWAP1
00002460: PUSH2 0x3383
00002463: JUMP
00002464: JUMPDEST
00002465: ISZERO
00002466: JUMPDEST
00002467: ISZERO
00002468: PUSH2 0x1f1b
0000246b: JUMPI
0000246c: PUSH1 0x40
0000246e: MLOAD
0000246f: PUSH4 0x5274afe7
00002474: PUSH1 0xe0
00002476: SHL
00002477: DUP2
00002478: MSTORE
00002479: PUSH1 0x01
0000247b: PUSH1 0x01
0000247d: PUSH1 0xa0
0000247f: SHL
00002480: SUB
00002481: DUP5
00002482: AND
00002483: PUSH1 0x04
00002485: DUP3
00002486: ADD
00002487: MSTORE
00002488: PUSH1 0x24
0000248a: ADD
0000248b: PUSH2 0x069b
0000248e: JUMP
0000248f: JUMPDEST
00002490: DUP1
00002491: PUSH1 0x01
00002493: PUSH1 0x01
00002495: PUSH1 0xa0
00002497: SHL
00002498: SUB
00002499: AND
0000249a: EXTCODESIZE
0000249b: PUSH1 0x00
0000249d: SUB
0000249e: PUSH2 0x24c5
000024a1: JUMPI
000024a2: PUSH1 0x40
000024a4: MLOAD
000024a5: PUSH4 0x4c9c8ce3
000024aa: PUSH1 0xe0
000024ac: SHL
000024ad: DUP2
000024ae: MSTORE
000024af: PUSH1 0x01
000024b1: PUSH1 0x01
000024b3: PUSH1 0xa0
000024b5: SHL
000024b6: SUB
000024b7: DUP3
000024b8: AND
000024b9: PUSH1 0x04
000024bb: DUP3
000024bc: ADD
000024bd: MSTORE
000024be: PUSH1 0x24
000024c0: ADD
000024c1: PUSH2 0x069b
000024c4: JUMP
000024c5: JUMPDEST
000024c6: PUSH1 0x00
000024c8: DUP1
000024c9: MLOAD
000024ca: PUSH1 0x20
000024cc: PUSH2 0x33bb
000024cf: DUP4
000024d0: CODECOPY
000024d1: DUP2
000024d2: MLOAD
000024d3: SWAP2
000024d4: MSTORE
000024d5: DUP1
000024d6: SLOAD
000024d7: PUSH1 0x01
000024d9: PUSH1 0x01
000024db: PUSH1 0xa0
000024dd: SHL
000024de: SUB
000024df: NOT
000024e0: AND
000024e1: PUSH1 0x01
000024e3: PUSH1 0x01
000024e5: PUSH1 0xa0
000024e7: SHL
000024e8: SUB
000024e9: SWAP3
000024ea: SWAP1
000024eb: SWAP3
000024ec: AND
000024ed: SWAP2
000024ee: SWAP1
000024ef: SWAP2
000024f0: OR
000024f1: SWAP1
000024f2: SSTORE
000024f3: JUMP
000024f4: JUMPDEST
000024f5: PUSH1 0x60
000024f7: PUSH1 0x00
000024f9: DUP1
000024fa: DUP5
000024fb: PUSH1 0x01
000024fd: PUSH1 0x01
000024ff: PUSH1 0xa0
00002501: SHL
00002502: SUB
00002503: AND
00002504: DUP5
00002505: PUSH1 0x40
00002507: MLOAD
00002508: PUSH2 0x2511
0000250b: SWAP2
0000250c: SWAP1
0000250d: PUSH2 0x339e
00002510: JUMP
00002511: JUMPDEST
00002512: PUSH1 0x00
00002514: PUSH1 0x40
00002516: MLOAD
00002517: DUP1
00002518: DUP4
00002519: SUB
0000251a: DUP2
0000251b: DUP6
0000251c: GAS
0000251d: DELEGATECALL
0000251e: SWAP2
0000251f: POP
00002520: POP
00002521: RETURNDATASIZE
00002522: DUP1
00002523: PUSH1 0x00
00002525: DUP2
00002526: EQ
00002527: PUSH2 0x254c
0000252a: JUMPI
0000252b: PUSH1 0x40
0000252d: MLOAD
0000252e: SWAP2
0000252f: POP
00002530: PUSH1 0x1f
00002532: NOT
00002533: PUSH1 0x3f
00002535: RETURNDATASIZE
00002536: ADD
00002537: AND
00002538: DUP3
00002539: ADD
0000253a: PUSH1 0x40
0000253c: MSTORE
0000253d: RETURNDATASIZE
0000253e: DUP3
0000253f: MSTORE
00002540: RETURNDATASIZE
00002541: PUSH1 0x00
00002543: PUSH1 0x20
00002545: DUP5
00002546: ADD
00002547: RETURNDATACOPY
00002548: PUSH2 0x2551
0000254b: JUMP
0000254c: JUMPDEST
0000254d: PUSH1 0x60
0000254f: SWAP2
00002550: POP
00002551: JUMPDEST
00002552: POP
00002553: SWAP2
00002554: POP
00002555: SWAP2
00002556: POP
00002557: PUSH2 0x2561
0000255a: DUP6
0000255b: DUP4
0000255c: DUP4
0000255d: PUSH2 0x2597
00002560: JUMP
00002561: JUMPDEST
00002562: SWAP6
00002563: SWAP5
00002564: POP
00002565: POP
00002566: POP
00002567: POP
00002568: POP
00002569: JUMP
0000256a: JUMPDEST
0000256b: CALLVALUE
0000256c: ISZERO
0000256d: PUSH2 0x12b2
00002570: JUMPI
00002571: PUSH1 0x40
00002573: MLOAD
00002574: PUSH4 0xb398979f
00002579: PUSH1 0xe0
0000257b: SHL
0000257c: DUP2
0000257d: MSTORE
0000257e: PUSH1 0x04
00002580: ADD
00002581: PUSH1 0x40
00002583: MLOAD
00002584: DUP1
00002585: SWAP2
00002586: SUB
00002587: SWAP1
00002588: REVERT
00002589: JUMPDEST
0000258a: PUSH1 0x60
0000258c: PUSH2 0x1a47
0000258f: DUP4
00002590: DUP4
00002591: PUSH1 0x00
00002593: PUSH2 0x25f3
00002596: JUMP
00002597: JUMPDEST
00002598: PUSH1 0x60
0000259a: DUP3
0000259b: PUSH2 0x25ac
0000259e: JUMPI
0000259f: PUSH2 0x25a7
000025a2: DUP3
000025a3: PUSH2 0x2686
000025a6: JUMP
000025a7: JUMPDEST
000025a8: PUSH2 0x1a47
000025ab: JUMP
000025ac: JUMPDEST
000025ad: DUP2
000025ae: MLOAD
000025af: ISZERO
000025b0: DUP1
000025b1: ISZERO
000025b2: PUSH2 0x25c3
000025b5: JUMPI
000025b6: POP
000025b7: PUSH1 0x01
000025b9: PUSH1 0x01
000025bb: PUSH1 0xa0
000025bd: SHL
000025be: SUB
000025bf: DUP5
000025c0: AND
000025c1: EXTCODESIZE
000025c2: ISZERO
000025c3: JUMPDEST
000025c4: ISZERO
000025c5: PUSH2 0x25ec
000025c8: JUMPI
000025c9: PUSH1 0x40
000025cb: MLOAD
000025cc: PUSH4 0x9996b315
000025d1: PUSH1 0xe0
000025d3: SHL
000025d4: DUP2
000025d5: MSTORE
000025d6: PUSH1 0x01
000025d8: PUSH1 0x01
000025da: PUSH1 0xa0
000025dc: SHL
000025dd: SUB
000025de: DUP6
000025df: AND
000025e0: PUSH1 0x04
000025e2: DUP3
000025e3: ADD
000025e4: MSTORE
000025e5: PUSH1 0x24
000025e7: ADD
000025e8: PUSH2 0x069b
000025eb: JUMP
000025ec: JUMPDEST
000025ed: POP
000025ee: DUP1
000025ef: PUSH2 0x1a47
000025f2: JUMP
000025f3: JUMPDEST
000025f4: PUSH1 0x60
000025f6: DUP2
000025f7: SELFBALANCE
000025f8: LT
000025f9: ISZERO
000025fa: PUSH2 0x2618
000025fd: JUMPI
000025fe: PUSH1 0x40
00002600: MLOAD
00002601: PUSH4 0xcd786059
00002606: PUSH1 0xe0
00002608: SHL
00002609: DUP2
0000260a: MSTORE
0000260b: ADDRESS
0000260c: PUSH1 0x04
0000260e: DUP3
0000260f: ADD
00002610: MSTORE
00002611: PUSH1 0x24
00002613: ADD
00002614: PUSH2 0x069b
00002617: JUMP
00002618: JUMPDEST
00002619: PUSH1 0x00
0000261b: DUP1
0000261c: DUP6
0000261d: PUSH1 0x01
0000261f: PUSH1 0x01
00002621: PUSH1 0xa0
00002623: SHL
00002624: SUB
00002625: AND
00002626: DUP5
00002627: DUP7
00002628: PUSH1 0x40
0000262a: MLOAD
0000262b: PUSH2 0x2634
0000262e: SWAP2
0000262f: SWAP1
00002630: PUSH2 0x339e
00002633: JUMP
00002634: JUMPDEST
00002635: PUSH1 0x00
00002637: PUSH1 0x40
00002639: MLOAD
0000263a: DUP1
0000263b: DUP4
0000263c: SUB
0000263d: DUP2
0000263e: DUP6
0000263f: DUP8
00002640: GAS
00002641: CALL
00002642: SWAP3
00002643: POP
00002644: POP
00002645: POP
00002646: RETURNDATASIZE
00002647: DUP1
00002648: PUSH1 0x00
0000264a: DUP2
0000264b: EQ
0000264c: PUSH2 0x2671
0000264f: JUMPI
00002650: PUSH1 0x40
00002652: MLOAD
00002653: SWAP2
00002654: POP
00002655: PUSH1 0x1f
00002657: NOT
00002658: PUSH1 0x3f
0000265a: RETURNDATASIZE
0000265b: ADD
0000265c: AND
0000265d: DUP3
0000265e: ADD
0000265f: PUSH1 0x40
00002661: MSTORE
00002662: RETURNDATASIZE
00002663: DUP3
00002664: MSTORE
00002665: RETURNDATASIZE
00002666: PUSH1 0x00
00002668: PUSH1 0x20
0000266a: DUP5
0000266b: ADD
0000266c: RETURNDATACOPY
0000266d: PUSH2 0x2676
00002670: JUMP
00002671: JUMPDEST
00002672: PUSH1 0x60
00002674: SWAP2
00002675: POP
00002676: JUMPDEST
00002677: POP
00002678: SWAP2
00002679: POP
0000267a: SWAP2
0000267b: POP
0000267c: PUSH2 0x1a42
0000267f: DUP7
00002680: DUP4
00002681: DUP4
00002682: PUSH2 0x2597
00002685: JUMP
00002686: JUMPDEST
00002687: DUP1
00002688: MLOAD
00002689: ISZERO
0000268a: PUSH2 0x2696
0000268d: JUMPI
0000268e: DUP1
0000268f: MLOAD
00002690: DUP1
00002691: DUP3
00002692: PUSH1 0x20
00002694: ADD
00002695: REVERT
00002696: JUMPDEST
00002697: PUSH1 0x40
00002699: MLOAD
0000269a: PUSH4 0x0a12f521
0000269f: PUSH1 0xe1
000026a1: SHL
000026a2: DUP2
000026a3: MSTORE
000026a4: PUSH1 0x04
000026a6: ADD
000026a7: PUSH1 0x40
000026a9: MLOAD
000026aa: DUP1
000026ab: SWAP2
000026ac: SUB
000026ad: SWAP1
000026ae: REVERT
000026af: JUMPDEST
000026b0: DUP1
000026b1: CALLDATALOAD
000026b2: PUSH4 0xffffffff
000026b7: DUP2
000026b8: AND
000026b9: DUP2
000026ba: EQ
000026bb: PUSH2 0x26c3
000026be: JUMPI
000026bf: PUSH1 0x00
000026c1: DUP1
000026c2: REVERT
000026c3: JUMPDEST
000026c4: SWAP2
000026c5: SWAP1
000026c6: POP
000026c7: JUMP
000026c8: JUMPDEST
000026c9: DUP1
000026ca: CALLDATALOAD
000026cb: PUSH1 0x01
000026cd: PUSH1 0x01
000026cf: PUSH1 0x40
000026d1: SHL
000026d2: SUB
000026d3: DUP2
000026d4: AND
000026d5: DUP2
000026d6: EQ
000026d7: PUSH2 0x26c3
000026da: JUMPI
000026db: PUSH1 0x00
000026dd: DUP1
000026de: REVERT
000026df: JUMPDEST
000026e0: PUSH1 0x00
000026e2: DUP1
000026e3: DUP4
000026e4: PUSH1 0x1f
000026e6: DUP5
000026e7: ADD
000026e8: SLT
000026e9: PUSH2 0x26f1
000026ec: JUMPI
000026ed: PUSH1 0x00
000026ef: DUP1
000026f0: REVERT
000026f1: JUMPDEST
000026f2: POP
000026f3: DUP2
000026f4: CALLDATALOAD
000026f5: PUSH1 0x01
000026f7: PUSH1 0x01
000026f9: PUSH1 0x40
000026fb: SHL
000026fc: SUB
000026fd: DUP2
000026fe: GT
000026ff: ISZERO
00002700: PUSH2 0x2708
00002703: JUMPI
00002704: PUSH1 0x00
00002706: DUP1
00002707: REVERT
00002708: JUMPDEST
00002709: PUSH1 0x20
0000270b: DUP4
0000270c: ADD
0000270d: SWAP2
0000270e: POP
0000270f: DUP4
00002710: PUSH1 0x20
00002712: DUP3
00002713: DUP6
00002714: ADD
00002715: ADD
00002716: GT
00002717: ISZERO
00002718: PUSH2 0x2720
0000271b: JUMPI
0000271c: PUSH1 0x00
0000271e: DUP1
0000271f: REVERT
00002720: JUMPDEST
00002721: SWAP3
00002722: POP
00002723: SWAP3
00002724: SWAP1
00002725: POP
00002726: JUMP
00002727: JUMPDEST
00002728: PUSH1 0x00
0000272a: DUP1
0000272b: PUSH1 0x00
0000272d: DUP1
0000272e: PUSH1 0x00
00002730: DUP1
00002731: PUSH1 0x00
00002733: DUP1
00002734: PUSH1 0x00
00002736: DUP1
00002737: PUSH1 0x00
00002739: PUSH2 0x0120
0000273c: DUP13
0000273d: DUP15
0000273e: SUB
0000273f: SLT
00002740: ISZERO
00002741: PUSH2 0x2749
00002744: JUMPI
00002745: PUSH1 0x00
00002747: DUP1
00002748: REVERT
00002749: JUMPDEST
0000274a: DUP12
0000274b: CALLDATALOAD
0000274c: SWAP11
0000274d: POP
0000274e: PUSH1 0x20
00002750: DUP13
00002751: ADD
00002752: CALLDATALOAD
00002753: SWAP10
00002754: POP
00002755: PUSH1 0x40
00002757: DUP13
00002758: ADD
00002759: CALLDATALOAD
0000275a: SWAP9
0000275b: POP
0000275c: PUSH1 0x60
0000275e: DUP13
0000275f: ADD
00002760: CALLDATALOAD
00002761: SWAP8
00002762: POP
00002763: PUSH2 0x276e
00002766: PUSH1 0x80
00002768: DUP14
00002769: ADD
0000276a: PUSH2 0x26af
0000276d: JUMP
0000276e: JUMPDEST
0000276f: SWAP7
00002770: POP
00002771: PUSH2 0x277c
00002774: PUSH1 0xa0
00002776: DUP14
00002777: ADD
00002778: PUSH2 0x26c8
0000277b: JUMP
0000277c: JUMPDEST
0000277d: SWAP6
0000277e: POP
0000277f: PUSH1 0xc0
00002781: DUP13
00002782: ADD
00002783: CALLDATALOAD
00002784: SWAP5
00002785: POP
00002786: PUSH1 0x01
00002788: PUSH1 0x01
0000278a: PUSH1 0x40
0000278c: SHL
0000278d: SUB
0000278e: DUP1
0000278f: PUSH1 0xe0
00002791: DUP15
00002792: ADD
00002793: CALLDATALOAD
00002794: GT
00002795: ISZERO
00002796: PUSH2 0x279e
00002799: JUMPI
0000279a: PUSH1 0x00
0000279c: DUP1
0000279d: REVERT
0000279e: JUMPDEST
0000279f: PUSH2 0x27ae
000027a2: DUP15
000027a3: PUSH1 0xe0
000027a5: DUP16
000027a6: ADD
000027a7: CALLDATALOAD
000027a8: DUP16
000027a9: ADD
000027aa: PUSH2 0x26df
000027ad: JUMP
000027ae: JUMPDEST
000027af: SWAP1
000027b0: SWAP6
000027b1: POP
000027b2: SWAP4
000027b3: POP
000027b4: PUSH2 0x0100
000027b7: DUP14
000027b8: ADD
000027b9: CALLDATALOAD
000027ba: DUP2
000027bb: LT
000027bc: ISZERO
000027bd: PUSH2 0x27c5
000027c0: JUMPI
000027c1: PUSH1 0x00
000027c3: DUP1
000027c4: REVERT
000027c5: JUMPDEST
000027c6: POP
000027c7: PUSH2 0x27d7
000027ca: DUP14
000027cb: PUSH2 0x0100
000027ce: DUP15
000027cf: ADD
000027d0: CALLDATALOAD
000027d1: DUP15
000027d2: ADD
000027d3: PUSH2 0x26df
000027d6: JUMP
000027d7: JUMPDEST
000027d8: DUP2
000027d9: SWAP4
000027da: POP
000027db: DUP1
000027dc: SWAP3
000027dd: POP
000027de: POP
000027df: POP
000027e0: SWAP3
000027e1: SWAP6
000027e2: SWAP9
000027e3: SWAP12
000027e4: POP
000027e5: SWAP3
000027e6: SWAP6
000027e7: SWAP9
000027e8: SWAP12
000027e9: SWAP1
000027ea: SWAP4
000027eb: SWAP7
000027ec: SWAP10
000027ed: POP
000027ee: JUMP
000027ef: JUMPDEST
000027f0: DUP1
000027f1: CALLDATALOAD
000027f2: PUSH1 0x01
000027f4: PUSH1 0x01
000027f6: PUSH1 0xa0
000027f8: SHL
000027f9: SUB
000027fa: DUP2
000027fb: AND
000027fc: DUP2
000027fd: EQ
000027fe: PUSH2 0x26c3
00002801: JUMPI
00002802: PUSH1 0x00
00002804: DUP1
00002805: REVERT
00002806: JUMPDEST
00002807: PUSH1 0x00
00002809: DUP1
0000280a: PUSH1 0x00
0000280c: DUP1
0000280d: PUSH1 0x00
0000280f: DUP1
00002810: PUSH1 0x00
00002812: PUSH1 0xe0
00002814: DUP9
00002815: DUP11
00002816: SUB
00002817: SLT
00002818: ISZERO
00002819: PUSH2 0x2821
0000281c: JUMPI
0000281d: PUSH1 0x00
0000281f: DUP1
00002820: REVERT
00002821: JUMPDEST
00002822: PUSH2 0x282a
00002825: DUP9
00002826: PUSH2 0x26af
00002829: JUMP
0000282a: JUMPDEST
0000282b: SWAP7
0000282c: POP
0000282d: PUSH2 0x2838
00002830: PUSH1 0x20
00002832: DUP10
00002833: ADD
00002834: PUSH2 0x27ef
00002837: JUMP
00002838: JUMPDEST
00002839: SWAP6
0000283a: POP
0000283b: PUSH2 0x2846
0000283e: PUSH1 0x40
00002840: DUP10
00002841: ADD
00002842: PUSH2 0x27ef
00002845: JUMP
00002846: JUMPDEST
00002847: SWAP5
00002848: POP
00002849: PUSH2 0x2854
0000284c: PUSH1 0x60
0000284e: DUP10
0000284f: ADD
00002850: PUSH2 0x27ef
00002853: JUMP
00002854: JUMPDEST
00002855: SWAP4
00002856: POP
00002857: PUSH2 0x2862
0000285a: PUSH1 0x80
0000285c: DUP10
0000285d: ADD
0000285e: PUSH2 0x27ef
00002861: JUMP
00002862: JUMPDEST
00002863: SWAP3
00002864: POP
00002865: PUSH2 0x2870
00002868: PUSH1 0xa0
0000286a: DUP10
0000286b: ADD
0000286c: PUSH2 0x27ef
0000286f: JUMP
00002870: JUMPDEST
00002871: SWAP2
00002872: POP
00002873: PUSH2 0x287e
00002876: PUSH1 0xc0
00002878: DUP10
00002879: ADD
0000287a: PUSH2 0x27ef
0000287d: JUMP
0000287e: JUMPDEST
0000287f: SWAP1
00002880: POP
00002881: SWAP3
00002882: SWAP6
00002883: SWAP9
00002884: SWAP2
00002885: SWAP5
00002886: SWAP8
00002887: POP
00002888: SWAP3
00002889: SWAP6
0000288a: POP
0000288b: JUMP
0000288c: JUMPDEST
0000288d: PUSH1 0x00
0000288f: PUSH1 0x20
00002891: DUP3
00002892: DUP5
00002893: SUB
00002894: SLT
00002895: ISZERO
00002896: PUSH2 0x289e
00002899: JUMPI
0000289a: PUSH1 0x00
0000289c: DUP1
0000289d: REVERT
0000289e: JUMPDEST
0000289f: PUSH2 0x1a47
000028a2: DUP3
000028a3: PUSH2 0x27ef
000028a6: JUMP
000028a7: JUMPDEST
000028a8: PUSH1 0x00
000028aa: PUSH1 0x20
000028ac: DUP3
000028ad: DUP5
000028ae: SUB
000028af: SLT
000028b0: ISZERO
000028b1: PUSH2 0x28b9
000028b4: JUMPI
000028b5: PUSH1 0x00
000028b7: DUP1
000028b8: REVERT
000028b9: JUMPDEST
000028ba: PUSH2 0x1a47
000028bd: DUP3
000028be: PUSH2 0x26af
000028c1: JUMP
000028c2: JUMPDEST
000028c3: PUSH4 0x4e487b71
000028c8: PUSH1 0xe0
000028ca: SHL
000028cb: PUSH1 0x00
000028cd: MSTORE
000028ce: PUSH1 0x41
000028d0: PUSH1 0x04
000028d2: MSTORE
000028d3: PUSH1 0x24
000028d5: PUSH1 0x00
000028d7: REVERT
000028d8: JUMPDEST
000028d9: PUSH1 0x40
000028db: MLOAD
000028dc: PUSH2 0x0120
000028df: DUP2
000028e0: ADD
000028e1: PUSH1 0x01
000028e3: PUSH1 0x01
000028e5: PUSH1 0x40
000028e7: SHL
000028e8: SUB
000028e9: DUP2
000028ea: GT
000028eb: DUP3
000028ec: DUP3
000028ed: LT
000028ee: OR
000028ef: ISZERO
000028f0: PUSH2 0x28fb
000028f3: JUMPI
000028f4: PUSH2 0x28fb
000028f7: PUSH2 0x28c2
000028fa: JUMP
000028fb: JUMPDEST
000028fc: PUSH1 0x40
000028fe: MSTORE
000028ff: SWAP1
00002900: JUMP
00002901: JUMPDEST
00002902: PUSH1 0x40
00002904: MLOAD
00002905: PUSH1 0x1f
00002907: DUP3
00002908: ADD
00002909: PUSH1 0x1f
0000290b: NOT
0000290c: AND
0000290d: DUP2
0000290e: ADD
0000290f: PUSH1 0x01
00002911: PUSH1 0x01
00002913: PUSH1 0x40
00002915: SHL
00002916: SUB
00002917: DUP2
00002918: GT
00002919: DUP3
0000291a: DUP3
0000291b: LT
0000291c: OR
0000291d: ISZERO
0000291e: PUSH2 0x2929
00002921: JUMPI
00002922: PUSH2 0x2929
00002925: PUSH2 0x28c2
00002928: JUMP
00002929: JUMPDEST
0000292a: PUSH1 0x40
0000292c: MSTORE
0000292d: SWAP2
0000292e: SWAP1
0000292f: POP
00002930: JUMP
00002931: JUMPDEST
00002932: PUSH1 0x00
00002934: PUSH1 0x01
00002936: PUSH1 0x01
00002938: PUSH1 0x40
0000293a: SHL
0000293b: SUB
0000293c: DUP3
0000293d: GT
0000293e: ISZERO
0000293f: PUSH2 0x294a
00002942: JUMPI
00002943: PUSH2 0x294a
00002946: PUSH2 0x28c2
00002949: JUMP
0000294a: JUMPDEST
0000294b: POP
0000294c: PUSH1 0x1f
0000294e: ADD
0000294f: PUSH1 0x1f
00002951: NOT
00002952: AND
00002953: PUSH1 0x20
00002955: ADD
00002956: SWAP1
00002957: JUMP
00002958: JUMPDEST
00002959: PUSH1 0x00
0000295b: DUP3
0000295c: PUSH1 0x1f
0000295e: DUP4
0000295f: ADD
00002960: SLT
00002961: PUSH2 0x2969
00002964: JUMPI
00002965: PUSH1 0x00
00002967: DUP1
00002968: REVERT
00002969: JUMPDEST
0000296a: DUP2
0000296b: CALLDATALOAD
0000296c: PUSH2 0x297c
0000296f: PUSH2 0x2977
00002972: DUP3
00002973: PUSH2 0x2931
00002976: JUMP
00002977: JUMPDEST
00002978: PUSH2 0x2901
0000297b: JUMP
0000297c: JUMPDEST
0000297d: DUP2
0000297e: DUP2
0000297f: MSTORE
00002980: DUP5
00002981: PUSH1 0x20
00002983: DUP4
00002984: DUP7
00002985: ADD
00002986: ADD
00002987: GT
00002988: ISZERO
00002989: PUSH2 0x2991
0000298c: JUMPI
0000298d: PUSH1 0x00
0000298f: DUP1
00002990: REVERT
00002991: JUMPDEST
00002992: DUP2
00002993: PUSH1 0x20
00002995: DUP6
00002996: ADD
00002997: PUSH1 0x20
00002999: DUP4
0000299a: ADD
0000299b: CALLDATACOPY
0000299c: PUSH1 0x00
0000299e: SWAP2
0000299f: DUP2
000029a0: ADD
000029a1: PUSH1 0x20
000029a3: ADD
000029a4: SWAP2
000029a5: SWAP1
000029a6: SWAP2
000029a7: MSTORE
000029a8: SWAP4
000029a9: SWAP3
000029aa: POP
000029ab: POP
000029ac: POP
000029ad: JUMP
000029ae: JUMPDEST
000029af: PUSH1 0x00
000029b1: DUP1
000029b2: PUSH1 0x40
000029b4: DUP4
000029b5: DUP6
000029b6: SUB
000029b7: SLT
000029b8: ISZERO
000029b9: PUSH2 0x29c1
000029bc: JUMPI
000029bd: PUSH1 0x00
000029bf: DUP1
000029c0: REVERT
000029c1: JUMPDEST
000029c2: DUP3
000029c3: CALLDATALOAD
000029c4: SWAP2
000029c5: POP
000029c6: PUSH1 0x20
000029c8: DUP4
000029c9: ADD
000029ca: CALLDATALOAD
000029cb: PUSH1 0x01
000029cd: PUSH1 0x01
000029cf: PUSH1 0x40
000029d1: SHL
000029d2: SUB
000029d3: DUP2
000029d4: GT
000029d5: ISZERO
000029d6: PUSH2 0x29de
000029d9: JUMPI
000029da: PUSH1 0x00
000029dc: DUP1
000029dd: REVERT
000029de: JUMPDEST
000029df: PUSH2 0x29ea
000029e2: DUP6
000029e3: DUP3
000029e4: DUP7
000029e5: ADD
000029e6: PUSH2 0x2958
000029e9: JUMP
000029ea: JUMPDEST
000029eb: SWAP2
000029ec: POP
000029ed: POP
000029ee: SWAP3
000029ef: POP
000029f0: SWAP3
000029f1: SWAP1
000029f2: POP
000029f3: JUMP
000029f4: JUMPDEST
000029f5: PUSH1 0x00
000029f7: PUSH2 0x0120
000029fa: DUP3
000029fb: DUP5
000029fc: SUB
000029fd: SLT
000029fe: ISZERO
000029ff: PUSH2 0x2a07
00002a02: JUMPI
00002a03: PUSH1 0x00
00002a05: DUP1
00002a06: REVERT
00002a07: JUMPDEST
00002a08: PUSH2 0x2a0f
00002a0b: PUSH2 0x28d8
00002a0e: JUMP
00002a0f: JUMPDEST
00002a10: SWAP1
00002a11: POP
00002a12: DUP2
00002a13: CALLDATALOAD
00002a14: DUP2
00002a15: MSTORE
00002a16: PUSH1 0x20
00002a18: DUP3
00002a19: ADD
00002a1a: CALLDATALOAD
00002a1b: PUSH1 0x20
00002a1d: DUP3
00002a1e: ADD
00002a1f: MSTORE
00002a20: PUSH1 0x40
00002a22: DUP3
00002a23: ADD
00002a24: CALLDATALOAD
00002a25: PUSH1 0x40
00002a27: DUP3
00002a28: ADD
00002a29: MSTORE
00002a2a: PUSH1 0x60
00002a2c: DUP3
00002a2d: ADD
00002a2e: CALLDATALOAD
00002a2f: PUSH1 0x60
00002a31: DUP3
00002a32: ADD
00002a33: MSTORE
00002a34: PUSH2 0x2a3f
00002a37: PUSH1 0x80
00002a39: DUP4
00002a3a: ADD
00002a3b: PUSH2 0x26af
00002a3e: JUMP
00002a3f: JUMPDEST
00002a40: PUSH1 0x80
00002a42: DUP3
00002a43: ADD
00002a44: MSTORE
00002a45: PUSH2 0x2a50
00002a48: PUSH1 0xa0
00002a4a: DUP4
00002a4b: ADD
00002a4c: PUSH2 0x26af
00002a4f: JUMP
00002a50: JUMPDEST
00002a51: PUSH1 0xa0
00002a53: DUP3
00002a54: ADD
00002a55: MSTORE
00002a56: PUSH2 0x2a61
00002a59: PUSH1 0xc0
00002a5b: DUP4
00002a5c: ADD
00002a5d: PUSH2 0x26af
00002a60: JUMP
00002a61: JUMPDEST
00002a62: PUSH1 0xc0
00002a64: DUP3
00002a65: ADD
00002a66: MSTORE
00002a67: PUSH2 0x2a72
00002a6a: PUSH1 0xe0
00002a6c: DUP4
00002a6d: ADD
00002a6e: PUSH2 0x26c8
00002a71: JUMP
00002a72: JUMPDEST
00002a73: PUSH1 0xe0
00002a75: DUP3
00002a76: ADD
00002a77: MSTORE
00002a78: PUSH2 0x0100
00002a7b: DUP1
00002a7c: DUP4
00002a7d: ADD
00002a7e: CALLDATALOAD
00002a7f: PUSH1 0x01
00002a81: PUSH1 0x01
00002a83: PUSH1 0x40
00002a85: SHL
00002a86: SUB
00002a87: DUP2
00002a88: GT
00002a89: ISZERO
00002a8a: PUSH2 0x2a92
00002a8d: JUMPI
00002a8e: PUSH1 0x00
00002a90: DUP1
00002a91: REVERT
00002a92: JUMPDEST
00002a93: PUSH2 0x2a9e
00002a96: DUP6
00002a97: DUP3
00002a98: DUP7
00002a99: ADD
00002a9a: PUSH2 0x2958
00002a9d: JUMP
00002a9e: JUMPDEST
00002a9f: DUP3
00002aa0: DUP5
00002aa1: ADD
00002aa2: MSTORE
00002aa3: POP
00002aa4: POP
00002aa5: SWAP3
00002aa6: SWAP2
00002aa7: POP
00002aa8: POP
00002aa9: JUMP
00002aaa: JUMPDEST
00002aab: PUSH1 0x00
00002aad: DUP3
00002aae: PUSH1 0x1f
00002ab0: DUP4
00002ab1: ADD
00002ab2: SLT
00002ab3: PUSH2 0x2abb
00002ab6: JUMPI
00002ab7: PUSH1 0x00
00002ab9: DUP1
00002aba: REVERT
00002abb: JUMPDEST
00002abc: DUP2
00002abd: CALLDATALOAD
00002abe: PUSH1 0x20
00002ac0: PUSH1 0x01
00002ac2: PUSH1 0x01
00002ac4: PUSH1 0x40
00002ac6: SHL
00002ac7: SUB
00002ac8: DUP1
00002ac9: DUP4
00002aca: GT
00002acb: ISZERO
00002acc: PUSH2 0x2ad7
00002acf: JUMPI
00002ad0: PUSH2 0x2ad7
00002ad3: PUSH2 0x28c2
00002ad6: JUMP
00002ad7: JUMPDEST
00002ad8: DUP3
00002ad9: PUSH1 0x05
00002adb: SHL
00002adc: PUSH2 0x2ae6
00002adf: DUP4
00002ae0: DUP3
00002ae1: ADD
00002ae2: PUSH2 0x2901
00002ae5: JUMP
00002ae6: JUMPDEST
00002ae7: SWAP4
00002ae8: DUP5
00002ae9: MSTORE
00002aea: DUP6
00002aeb: DUP2
00002aec: ADD
00002aed: DUP4
00002aee: ADD
00002aef: SWAP4
00002af0: DUP4
00002af1: DUP2
00002af2: ADD
00002af3: SWAP1
00002af4: DUP9
00002af5: DUP7
00002af6: GT
00002af7: ISZERO
00002af8: PUSH2 0x2b00
00002afb: JUMPI
00002afc: PUSH1 0x00
00002afe: DUP1
00002aff: REVERT
00002b00: JUMPDEST
00002b01: DUP5
00002b02: DUP9
00002b03: ADD
00002b04: SWAP3
00002b05: POP
00002b06: JUMPDEST
00002b07: DUP6
00002b08: DUP4
00002b09: LT
00002b0a: ISZERO
00002b0b: PUSH2 0x2b3c
00002b0e: JUMPI
00002b0f: DUP3
00002b10: CALLDATALOAD
00002b11: DUP5
00002b12: DUP2
00002b13: GT
00002b14: ISZERO
00002b15: PUSH2 0x2b1e
00002b18: JUMPI
00002b19: PUSH1 0x00
00002b1b: DUP1
00002b1c: DUP2
00002b1d: REVERT
00002b1e: JUMPDEST
00002b1f: PUSH2 0x2b2c
00002b22: DUP11
00002b23: DUP8
00002b24: DUP4
00002b25: DUP13
00002b26: ADD
00002b27: ADD
00002b28: PUSH2 0x29f4
00002b2b: JUMP
00002b2c: JUMPDEST
00002b2d: DUP4
00002b2e: MSTORE
00002b2f: POP
00002b30: SWAP2
00002b31: DUP5
00002b32: ADD
00002b33: SWAP2
00002b34: SWAP1
00002b35: DUP5
00002b36: ADD
00002b37: SWAP1
00002b38: PUSH2 0x2b06
00002b3b: JUMP
00002b3c: JUMPDEST
00002b3d: SWAP9
00002b3e: SWAP8
00002b3f: POP
00002b40: POP
00002b41: POP
00002b42: POP
00002b43: POP
00002b44: POP
00002b45: POP
00002b46: POP
00002b47: JUMP
00002b48: JUMPDEST
00002b49: PUSH1 0x00
00002b4b: DUP1
00002b4c: PUSH1 0x40
00002b4e: DUP4
00002b4f: DUP6
00002b50: SUB
00002b51: SLT
00002b52: ISZERO
00002b53: PUSH2 0x2b5b
00002b56: JUMPI
00002b57: PUSH1 0x00
00002b59: DUP1
00002b5a: REVERT
00002b5b: JUMPDEST
00002b5c: PUSH2 0x2b64
00002b5f: DUP4
00002b60: PUSH2 0x26af
00002b63: JUMP
00002b64: JUMPDEST
00002b65: SWAP2
00002b66: POP
00002b67: PUSH1 0x20
00002b69: DUP4
00002b6a: ADD
00002b6b: CALLDATALOAD
00002b6c: PUSH1 0x01
00002b6e: PUSH1 0x01
00002b70: PUSH1 0x40
00002b72: SHL
00002b73: SUB
00002b74: DUP2
00002b75: GT
00002b76: ISZERO
00002b77: PUSH2 0x2b7f
00002b7a: JUMPI
00002b7b: PUSH1 0x00
00002b7d: DUP1
00002b7e: REVERT
00002b7f: JUMPDEST
00002b80: PUSH2 0x29ea
00002b83: DUP6
00002b84: DUP3
00002b85: DUP7
00002b86: ADD
00002b87: PUSH2 0x2aaa
00002b8a: JUMP
00002b8b: JUMPDEST
00002b8c: PUSH1 0x00
00002b8e: DUP1
00002b8f: PUSH1 0x40
00002b91: DUP4
00002b92: DUP6
00002b93: SUB
00002b94: SLT
00002b95: ISZERO
00002b96: PUSH2 0x2b9e
00002b99: JUMPI
00002b9a: PUSH1 0x00
00002b9c: DUP1
00002b9d: REVERT
00002b9e: JUMPDEST
00002b9f: PUSH2 0x2ba7
00002ba2: DUP4
00002ba3: PUSH2 0x27ef
00002ba6: JUMP
00002ba7: JUMPDEST
00002ba8: SWAP2
00002ba9: POP
00002baa: PUSH1 0x20
00002bac: DUP4
00002bad: ADD
00002bae: CALLDATALOAD
00002baf: PUSH1 0x01
00002bb1: PUSH1 0x01
00002bb3: PUSH1 0x40
00002bb5: SHL
00002bb6: SUB
00002bb7: DUP2
00002bb8: GT
00002bb9: ISZERO
00002bba: PUSH2 0x29de
00002bbd: JUMPI
00002bbe: PUSH1 0x00
00002bc0: DUP1
00002bc1: REVERT
00002bc2: JUMPDEST
00002bc3: PUSH1 0x00
00002bc5: DUP1
00002bc6: PUSH1 0x00
00002bc8: DUP1
00002bc9: PUSH1 0x60
00002bcb: DUP6
00002bcc: DUP8
00002bcd: SUB
00002bce: SLT
00002bcf: ISZERO
00002bd0: PUSH2 0x2bd8
00002bd3: JUMPI
00002bd4: PUSH1 0x00
00002bd6: DUP1
00002bd7: REVERT
00002bd8: JUMPDEST
00002bd9: PUSH2 0x2be1
00002bdc: DUP6
00002bdd: PUSH2 0x26af
00002be0: JUMP
00002be1: JUMPDEST
00002be2: SWAP4
00002be3: POP
00002be4: PUSH1 0x20
00002be6: DUP6
00002be7: ADD
00002be8: CALLDATALOAD
00002be9: SWAP3
00002bea: POP
00002beb: PUSH1 0x40
00002bed: DUP6
00002bee: ADD
00002bef: CALLDATALOAD
00002bf0: PUSH1 0x01
00002bf2: PUSH1 0x01
00002bf4: PUSH1 0x40
00002bf6: SHL
00002bf7: SUB
00002bf8: DUP2
00002bf9: GT
00002bfa: ISZERO
00002bfb: PUSH2 0x2c03
00002bfe: JUMPI
00002bff: PUSH1 0x00
00002c01: DUP1
00002c02: REVERT
00002c03: JUMPDEST
00002c04: PUSH2 0x2c0f
00002c07: DUP8
00002c08: DUP3
00002c09: DUP9
00002c0a: ADD
00002c0b: PUSH2 0x26df
00002c0e: JUMP
00002c0f: JUMPDEST
00002c10: SWAP6
00002c11: SWAP9
00002c12: SWAP5
00002c13: SWAP8
00002c14: POP
00002c15: SWAP6
00002c16: POP
00002c17: POP
00002c18: POP
00002c19: POP
00002c1a: JUMP
00002c1b: JUMPDEST
00002c1c: PUSH1 0x00
00002c1e: DUP1
00002c1f: PUSH1 0x00
00002c21: DUP1
00002c22: PUSH1 0x00
00002c24: DUP1
00002c25: PUSH1 0x00
00002c27: DUP1
00002c28: PUSH1 0xe0
00002c2a: DUP10
00002c2b: DUP12
00002c2c: SUB
00002c2d: SLT
00002c2e: ISZERO
00002c2f: PUSH2 0x2c37
00002c32: JUMPI
00002c33: PUSH1 0x00
00002c35: DUP1
00002c36: REVERT
00002c37: JUMPDEST
00002c38: DUP9
00002c39: CALLDATALOAD
00002c3a: SWAP8
00002c3b: POP
00002c3c: PUSH1 0x20
00002c3e: DUP10
00002c3f: ADD
00002c40: CALLDATALOAD
00002c41: SWAP7
00002c42: POP
00002c43: PUSH1 0x40
00002c45: DUP10
00002c46: ADD
00002c47: CALLDATALOAD
00002c48: SWAP6
00002c49: POP
00002c4a: PUSH1 0x60
00002c4c: DUP10
00002c4d: ADD
00002c4e: CALLDATALOAD
00002c4f: SWAP5
00002c50: POP
00002c51: PUSH2 0x2c5c
00002c54: PUSH1 0x80
00002c56: DUP11
00002c57: ADD
00002c58: PUSH2 0x26af
00002c5b: JUMP
00002c5c: JUMPDEST
00002c5d: SWAP4
00002c5e: POP
00002c5f: PUSH2 0x2c6a
00002c62: PUSH1 0xa0
00002c64: DUP11
00002c65: ADD
00002c66: PUSH2 0x26c8
00002c69: JUMP
00002c6a: JUMPDEST
00002c6b: SWAP3
00002c6c: POP
00002c6d: PUSH1 0xc0
00002c6f: DUP10
00002c70: ADD
00002c71: CALLDATALOAD
00002c72: PUSH1 0x01
00002c74: PUSH1 0x01
00002c76: PUSH1 0x40
00002c78: SHL
00002c79: SUB
00002c7a: DUP2
00002c7b: GT
00002c7c: ISZERO
00002c7d: PUSH2 0x2c85
00002c80: JUMPI
00002c81: PUSH1 0x00
00002c83: DUP1
00002c84: REVERT
00002c85: JUMPDEST
00002c86: PUSH2 0x2c91
00002c89: DUP12
00002c8a: DUP3
00002c8b: DUP13
00002c8c: ADD
00002c8d: PUSH2 0x26df
00002c90: JUMP
00002c91: JUMPDEST
00002c92: SWAP10
00002c93: SWAP13
00002c94: SWAP9
00002c95: SWAP12
00002c96: POP
00002c97: SWAP7
00002c98: SWAP10
00002c99: POP
00002c9a: SWAP5
00002c9b: SWAP8
00002c9c: SWAP4
00002c9d: SWAP7
00002c9e: SWAP3
00002c9f: SWAP6
00002ca0: SWAP5
00002ca1: POP
00002ca2: POP
00002ca3: POP
00002ca4: JUMP
00002ca5: JUMPDEST
00002ca6: PUSH1 0x00
00002ca8: PUSH1 0x20
00002caa: DUP3
00002cab: DUP5
00002cac: SUB
00002cad: SLT
00002cae: ISZERO
00002caf: PUSH2 0x2cb7
00002cb2: JUMPI
00002cb3: PUSH1 0x00
00002cb5: DUP1
00002cb6: REVERT
00002cb7: JUMPDEST
00002cb8: POP
00002cb9: CALLDATALOAD
00002cba: SWAP2
00002cbb: SWAP1
00002cbc: POP
00002cbd: JUMP
00002cbe: JUMPDEST
00002cbf: PUSH4 0x4e487b71
00002cc4: PUSH1 0xe0
00002cc6: SHL
00002cc7: PUSH1 0x00
00002cc9: MSTORE
00002cca: PUSH1 0x21
00002ccc: PUSH1 0x04
00002cce: MSTORE
00002ccf: PUSH1 0x24
00002cd1: PUSH1 0x00
00002cd3: REVERT
00002cd4: JUMPDEST
00002cd5: PUSH1 0x20
00002cd7: DUP2
00002cd8: ADD
00002cd9: PUSH1 0x03
00002cdb: DUP4
00002cdc: LT
00002cdd: PUSH2 0x2cf6
00002ce0: JUMPI
00002ce1: PUSH4 0x4e487b71
00002ce6: PUSH1 0xe0
00002ce8: SHL
00002ce9: PUSH1 0x00
00002ceb: MSTORE
00002cec: PUSH1 0x21
00002cee: PUSH1 0x04
00002cf0: MSTORE
00002cf1: PUSH1 0x24
00002cf3: PUSH1 0x00
00002cf5: REVERT
00002cf6: JUMPDEST
00002cf7: SWAP2
00002cf8: SWAP1
00002cf9: MSTORE
00002cfa: SWAP1
00002cfb: JUMP
00002cfc: JUMPDEST
00002cfd: PUSH1 0x00
00002cff: PUSH1 0x20
00002d01: DUP3
00002d02: DUP5
00002d03: SUB
00002d04: SLT
00002d05: ISZERO
00002d06: PUSH2 0x2d0e
00002d09: JUMPI
00002d0a: PUSH1 0x00
00002d0c: DUP1
00002d0d: REVERT
00002d0e: JUMPDEST
00002d0f: DUP2
00002d10: CALLDATALOAD
00002d11: PUSH1 0x01
00002d13: PUSH1 0x01
00002d15: PUSH1 0x40
00002d17: SHL
00002d18: SUB
00002d19: DUP2
00002d1a: GT
00002d1b: ISZERO
00002d1c: PUSH2 0x2d24
00002d1f: JUMPI
00002d20: PUSH1 0x00
00002d22: DUP1
00002d23: REVERT
00002d24: JUMPDEST
00002d25: PUSH2 0x2d30
00002d28: DUP5
00002d29: DUP3
00002d2a: DUP6
00002d2b: ADD
00002d2c: PUSH2 0x2aaa
00002d2f: JUMP
00002d30: JUMPDEST
00002d31: SWAP5
00002d32: SWAP4
00002d33: POP
00002d34: POP
00002d35: POP
00002d36: POP
00002d37: JUMP
00002d38: JUMPDEST
00002d39: PUSH1 0x00
00002d3b: JUMPDEST
00002d3c: DUP4
00002d3d: DUP2
00002d3e: LT
00002d3f: ISZERO
00002d40: PUSH2 0x2d53
00002d43: JUMPI
00002d44: DUP2
00002d45: DUP2
00002d46: ADD
00002d47: MLOAD
00002d48: DUP4
00002d49: DUP3
00002d4a: ADD
00002d4b: MSTORE
00002d4c: PUSH1 0x20
00002d4e: ADD
00002d4f: PUSH2 0x2d3b
00002d52: JUMP
00002d53: JUMPDEST
00002d54: POP
00002d55: POP
00002d56: PUSH1 0x00
00002d58: SWAP2
00002d59: ADD
00002d5a: MSTORE
00002d5b: JUMP
00002d5c: JUMPDEST
00002d5d: PUSH1 0x00
00002d5f: DUP2
00002d60: MLOAD
00002d61: DUP1
00002d62: DUP5
00002d63: MSTORE
00002d64: PUSH2 0x2d74
00002d67: DUP2
00002d68: PUSH1 0x20
00002d6a: DUP7
00002d6b: ADD
00002d6c: PUSH1 0x20
00002d6e: DUP7
00002d6f: ADD
00002d70: PUSH2 0x2d38
00002d73: JUMP
00002d74: JUMPDEST
00002d75: PUSH1 0x1f
00002d77: ADD
00002d78: PUSH1 0x1f
00002d7a: NOT
00002d7b: AND
00002d7c: SWAP3
00002d7d: SWAP1
00002d7e: SWAP3
00002d7f: ADD
00002d80: PUSH1 0x20
00002d82: ADD
00002d83: SWAP3
00002d84: SWAP2
00002d85: POP
00002d86: POP
00002d87: JUMP
00002d88: JUMPDEST
00002d89: PUSH1 0x20
00002d8b: DUP2
00002d8c: MSTORE
00002d8d: PUSH1 0x00
00002d8f: PUSH2 0x1a47
00002d92: PUSH1 0x20
00002d94: DUP4
00002d95: ADD
00002d96: DUP5
00002d97: PUSH2 0x2d5c
00002d9a: JUMP
00002d9b: JUMPDEST
00002d9c: PUSH1 0x00
00002d9e: DUP1
00002d9f: PUSH1 0x40
00002da1: DUP4
00002da2: DUP6
00002da3: SUB
00002da4: SLT
00002da5: ISZERO
00002da6: PUSH2 0x2dae
00002da9: JUMPI
00002daa: PUSH1 0x00
00002dac: DUP1
00002dad: REVERT
00002dae: JUMPDEST
00002daf: PUSH2 0x2db7
00002db2: DUP4
00002db3: PUSH2 0x27ef
00002db6: JUMP
00002db7: JUMPDEST
00002db8: SWAP2
00002db9: POP
00002dba: PUSH1 0x20
00002dbc: DUP4
00002dbd: ADD
00002dbe: CALLDATALOAD
00002dbf: PUSH1 0x01
00002dc1: PUSH1 0x01
00002dc3: PUSH1 0x40
00002dc5: SHL
00002dc6: SUB
00002dc7: DUP2
00002dc8: GT
00002dc9: ISZERO
00002dca: PUSH2 0x2dd2
00002dcd: JUMPI
00002dce: PUSH1 0x00
00002dd0: DUP1
00002dd1: REVERT
00002dd2: JUMPDEST
00002dd3: PUSH2 0x29ea
00002dd6: DUP6
00002dd7: DUP3
00002dd8: DUP7
00002dd9: ADD
00002dda: PUSH2 0x29f4
00002ddd: JUMP
00002dde: JUMPDEST
00002ddf: PUSH1 0x00
00002de1: DUP1
00002de2: PUSH1 0x40
00002de4: DUP4
00002de5: DUP6
00002de6: SUB
00002de7: SLT
00002de8: ISZERO
00002de9: PUSH2 0x2df1
00002dec: JUMPI
00002ded: PUSH1 0x00
00002def: DUP1
00002df0: REVERT
00002df1: JUMPDEST
00002df2: PUSH2 0x2dfa
00002df5: DUP4
00002df6: PUSH2 0x26af
00002df9: JUMP
00002dfa: JUMPDEST
00002dfb: SWAP5
00002dfc: PUSH1 0x20
00002dfe: SWAP4
00002dff: SWAP1
00002e00: SWAP4
00002e01: ADD
00002e02: CALLDATALOAD
00002e03: SWAP4
00002e04: POP
00002e05: POP
00002e06: POP
00002e07: JUMP
00002e08: JUMPDEST
00002e09: PUSH1 0x00
00002e0b: DUP1
00002e0c: PUSH1 0x00
00002e0e: PUSH1 0x60
00002e10: DUP5
00002e11: DUP7
00002e12: SUB
00002e13: SLT
00002e14: ISZERO
00002e15: PUSH2 0x2e1d
00002e18: JUMPI
00002e19: PUSH1 0x00
00002e1b: DUP1
00002e1c: REVERT
00002e1d: JUMPDEST
00002e1e: PUSH2 0x2e26
00002e21: DUP5
00002e22: PUSH2 0x26af
00002e25: JUMP
00002e26: JUMPDEST
00002e27: SWAP3
00002e28: POP
00002e29: PUSH1 0x20
00002e2b: DUP5
00002e2c: ADD
00002e2d: CALLDATALOAD
00002e2e: SWAP2
00002e2f: POP
00002e30: PUSH1 0x40
00002e32: DUP5
00002e33: ADD
00002e34: CALLDATALOAD
00002e35: PUSH1 0x01
00002e37: PUSH1 0x01
00002e39: PUSH1 0x40
00002e3b: SHL
00002e3c: SUB
00002e3d: DUP2
00002e3e: GT
00002e3f: ISZERO
00002e40: PUSH2 0x2e48
00002e43: JUMPI
00002e44: PUSH1 0x00
00002e46: DUP1
00002e47: REVERT
00002e48: JUMPDEST
00002e49: PUSH2 0x2e54
00002e4c: DUP7
00002e4d: DUP3
00002e4e: DUP8
00002e4f: ADD
00002e50: PUSH2 0x2958
00002e53: JUMP
00002e54: JUMPDEST
00002e55: SWAP2
00002e56: POP
00002e57: POP
00002e58: SWAP3
00002e59: POP
00002e5a: SWAP3
00002e5b: POP
00002e5c: SWAP3
00002e5d: JUMP
00002e5e: JUMPDEST
00002e5f: PUSH1 0x20
00002e61: DUP1
00002e62: DUP3
00002e63: MSTORE
00002e64: PUSH1 0x3c
00002e66: SWAP1
00002e67: DUP3
00002e68: ADD
00002e69: MSTORE
00002e6a: PUSH32 0x466173745472616e73666572476174657761793a2074696d656f75742074696d
00002e8b: PUSH1 0x40
00002e8d: DUP3
00002e8e: ADD
00002e8f: MSTORE
00002e90: PUSH32 0x657374616d70206d75737420626520696e207468652066757475726500000000
00002eb1: PUSH1 0x60
00002eb3: DUP3
00002eb4: ADD
00002eb5: MSTORE
00002eb6: PUSH1 0x80
00002eb8: ADD
00002eb9: SWAP1
00002eba: JUMP
00002ebb: JUMPDEST
00002ebc: PUSH1 0x20
00002ebe: DUP1
00002ebf: DUP3
00002ec0: MSTORE
00002ec1: PUSH1 0x31
00002ec3: SWAP1
00002ec4: DUP3
00002ec5: ADD
00002ec6: MSTORE
00002ec7: PUSH32 0x466173745472616e73666572476174657761793a2064657374696e6174696f6e
00002ee8: PUSH1 0x40
00002eea: DUP3
00002eeb: ADD
00002eec: MSTORE
00002eed: PUSH17 0x08191bdb585a5b881b9bdd08199bdd5b99
00002eff: PUSH1 0x7a
00002f01: SHL
00002f02: PUSH1 0x60
00002f04: DUP3
00002f05: ADD
00002f06: MSTORE
00002f07: PUSH1 0x80
00002f09: ADD
00002f0a: SWAP1
00002f0b: JUMP
00002f0c: JUMPDEST
00002f0d: PUSH4 0x4e487b71
00002f12: PUSH1 0xe0
00002f14: SHL
00002f15: PUSH1 0x00
00002f17: MSTORE
00002f18: PUSH1 0x11
00002f1a: PUSH1 0x04
00002f1c: MSTORE
00002f1d: PUSH1 0x24
00002f1f: PUSH1 0x00
00002f21: REVERT
00002f22: JUMPDEST
00002f23: PUSH4 0xffffffff
00002f28: DUP2
00002f29: DUP2
00002f2a: AND
00002f2b: DUP4
00002f2c: DUP3
00002f2d: AND
00002f2e: ADD
00002f2f: SWAP1
00002f30: DUP1
00002f31: DUP3
00002f32: GT
00002f33: ISZERO
00002f34: PUSH2 0x2f3f
00002f37: JUMPI
00002f38: PUSH2 0x2f3f
00002f3b: PUSH2 0x2f0c
00002f3e: JUMP
00002f3f: JUMPDEST
00002f40: POP
00002f41: SWAP3
00002f42: SWAP2
00002f43: POP
00002f44: POP
00002f45: JUMP
00002f46: JUMPDEST
00002f47: PUSH1 0x20
00002f49: DUP1
00002f4a: DUP3
00002f4b: MSTORE
00002f4c: PUSH1 0x2e
00002f4e: SWAP1
00002f4f: DUP3
00002f50: ADD
00002f51: MSTORE
00002f52: PUSH32 0x466173745472616e73666572476174657761793a20536f7572636520646f6d61
00002f73: PUSH1 0x40
00002f75: DUP3
00002f76: ADD
00002f77: MSTORE
00002f78: PUSH14 0x0d2dce640daeae6e840dac2e8c6d
00002f87: PUSH1 0x93
00002f89: SHL
00002f8a: PUSH1 0x60
00002f8c: DUP3
00002f8d: ADD
00002f8e: MSTORE
00002f8f: PUSH1 0x80
00002f91: ADD
00002f92: SWAP1
00002f93: JUMP
00002f94: JUMPDEST
00002f95: DUP1
00002f96: DUP3
00002f97: ADD
00002f98: DUP1
00002f99: DUP3
00002f9a: GT
00002f9b: ISZERO
00002f9c: PUSH2 0x0db4
00002f9f: JUMPI
00002fa0: PUSH2 0x0db4
00002fa3: PUSH2 0x2f0c
00002fa6: JUMP
00002fa7: JUMPDEST
00002fa8: PUSH1 0x20
00002faa: DUP1
00002fab: DUP3
00002fac: MSTORE
00002fad: PUSH1 0x2a
00002faf: SWAP1
00002fb0: DUP3
00002fb1: ADD
00002fb2: MSTORE
00002fb3: PUSH32 0x466173745472616e73666572476174657761793a20756e6b6e6f776e20736f75
00002fd4: PUSH1 0x40
00002fd6: DUP3
00002fd7: ADD
00002fd8: MSTORE
00002fd9: PUSH10 0x3931b2903237b6b0b4b7
00002fe4: PUSH1 0xb1
00002fe6: SHL
00002fe7: PUSH1 0x60
00002fe9: DUP3
00002fea: ADD
00002feb: MSTORE
00002fec: PUSH1 0x80
00002fee: ADD
00002fef: SWAP1
00002ff0: JUMP
00002ff1: JUMPDEST
00002ff2: PUSH1 0xff
00002ff4: PUSH1 0xf8
00002ff6: SHL
00002ff7: DUP5
00002ff8: PUSH1 0xf8
00002ffa: SHL
00002ffb: AND
00002ffc: DUP2
00002ffd: MSTORE
00002ffe: DUP3
00002fff: PUSH1 0x01
00003001: DUP3
00003002: ADD
00003003: MSTORE
00003004: PUSH1 0x00
00003006: DUP3
00003007: MLOAD
00003008: PUSH2 0x3018
0000300b: DUP2
0000300c: PUSH1 0x21
0000300e: DUP6
0000300f: ADD
00003010: PUSH1 0x20
00003012: DUP8
00003013: ADD
00003014: PUSH2 0x2d38
00003017: JUMP
00003018: JUMPDEST
00003019: SWAP2
0000301a: SWAP1
0000301b: SWAP2
0000301c: ADD
0000301d: PUSH1 0x21
0000301f: ADD
00003020: SWAP5
00003021: SWAP4
00003022: POP
00003023: POP
00003024: POP
00003025: POP
00003026: JUMP
00003027: JUMPDEST
00003028: PUSH4 0xffffffff
0000302d: DUP5
0000302e: AND
0000302f: DUP2
00003030: MSTORE
00003031: DUP3
00003032: PUSH1 0x20
00003034: DUP3
00003035: ADD
00003036: MSTORE
00003037: PUSH1 0x60
00003039: PUSH1 0x40
0000303b: DUP3
0000303c: ADD
0000303d: MSTORE
0000303e: PUSH1 0x00
00003040: PUSH2 0x2561
00003043: PUSH1 0x60
00003045: DUP4
00003046: ADD
00003047: DUP5
00003048: PUSH2 0x2d5c
0000304b: JUMP
0000304c: JUMPDEST
0000304d: PUSH1 0x00
0000304f: PUSH1 0x20
00003051: DUP3
00003052: DUP5
00003053: SUB
00003054: SLT
00003055: ISZERO
00003056: PUSH2 0x305e
00003059: JUMPI
0000305a: PUSH1 0x00
0000305c: DUP1
0000305d: REVERT
0000305e: JUMPDEST
0000305f: POP
00003060: MLOAD
00003061: SWAP2
00003062: SWAP1
00003063: POP
00003064: JUMP
00003065: JUMPDEST
00003066: PUSH4 0x4e487b71
0000306b: PUSH1 0xe0
0000306d: SHL
0000306e: PUSH1 0x00
00003070: MSTORE
00003071: PUSH1 0x32
00003073: PUSH1 0x04
00003075: MSTORE
00003076: PUSH1 0x24
00003078: PUSH1 0x00
0000307a: REVERT
0000307b: JUMPDEST
0000307c: PUSH1 0x00
0000307e: DUP4
0000307f: MLOAD
00003080: PUSH2 0x308d
00003083: DUP2
00003084: DUP5
00003085: PUSH1 0x20
00003087: DUP9
00003088: ADD
00003089: PUSH2 0x2d38
0000308c: JUMP
0000308d: JUMPDEST
0000308e: SWAP2
0000308f: SWAP1
00003090: SWAP2
00003091: ADD
00003092: SWAP2
00003093: DUP3
00003094: MSTORE
00003095: POP
00003096: PUSH1 0x20
00003098: ADD
00003099: SWAP2
0000309a: SWAP1
0000309b: POP
0000309c: JUMP
0000309d: JUMPDEST
0000309e: PUSH1 0xff
000030a0: PUSH1 0xf8
000030a2: SHL
000030a3: DUP4
000030a4: PUSH1 0xf8
000030a6: SHL
000030a7: AND
000030a8: DUP2
000030a9: MSTORE
000030aa: PUSH1 0x00
000030ac: DUP3
000030ad: MLOAD
000030ae: PUSH2 0x30be
000030b1: DUP2
000030b2: PUSH1 0x01
000030b4: DUP6
000030b5: ADD
000030b6: PUSH1 0x20
000030b8: DUP8
000030b9: ADD
000030ba: PUSH2 0x2d38
000030bd: JUMP
000030be: JUMPDEST
000030bf: SWAP2
000030c0: SWAP1
000030c1: SWAP2
000030c2: ADD
000030c3: PUSH1 0x01
000030c5: ADD
000030c6: SWAP4
000030c7: SWAP3
000030c8: POP
000030c9: POP
000030ca: POP
000030cb: JUMP
000030cc: JUMPDEST
000030cd: PUSH1 0x00
000030cf: DUP1
000030d0: DUP6
000030d1: DUP6
000030d2: GT
000030d3: ISZERO
000030d4: PUSH2 0x30dc
000030d7: JUMPI
000030d8: PUSH1 0x00
000030da: DUP1
000030db: REVERT
000030dc: JUMPDEST
000030dd: DUP4
000030de: DUP7
000030df: GT
000030e0: ISZERO
000030e1: PUSH2 0x30e9
000030e4: JUMPI
000030e5: PUSH1 0x00
000030e7: DUP1
000030e8: REVERT
000030e9: JUMPDEST
000030ea: POP
000030eb: POP
000030ec: DUP3
000030ed: ADD
000030ee: SWAP4
000030ef: SWAP2
000030f0: SWAP1
000030f1: SWAP3
000030f2: SUB
000030f3: SWAP2
000030f4: POP
000030f5: JUMP
000030f6: JUMPDEST
000030f7: DUP1
000030f8: CALLDATALOAD
000030f9: PUSH1 0x20
000030fb: DUP4
000030fc: LT
000030fd: ISZERO
000030fe: PUSH2 0x0db4
00003101: JUMPI
00003102: PUSH1 0x00
00003104: NOT
00003105: PUSH1 0x20
00003107: DUP5
00003108: SWAP1
00003109: SUB
0000310a: PUSH1 0x03
0000310c: SHL
0000310d: SHL
0000310e: AND
0000310f: SWAP3
00003110: SWAP2
00003111: POP
00003112: POP
00003113: JUMP
00003114: JUMPDEST
00003115: PUSH1 0x01
00003117: PUSH1 0x01
00003119: PUSH1 0xa0
0000311b: SHL
0000311c: SUB
0000311d: DUP6
0000311e: DUP2
0000311f: AND
00003120: DUP3
00003121: MSTORE
00003122: DUP5
00003123: AND
00003124: PUSH1 0x20
00003126: DUP3
00003127: ADD
00003128: MSTORE
00003129: PUSH1 0x40
0000312b: DUP2
0000312c: ADD
0000312d: DUP4
0000312e: SWAP1
0000312f: MSTORE
00003130: PUSH1 0x80
00003132: PUSH1 0x60
00003134: DUP3
00003135: ADD
00003136: DUP2
00003137: SWAP1
00003138: MSTORE
00003139: PUSH1 0x00
0000313b: SWAP1
0000313c: PUSH2 0x3147
0000313f: SWAP1
00003140: DUP4
00003141: ADD
00003142: DUP5
00003143: PUSH2 0x2d5c
00003146: JUMP
00003147: JUMPDEST
00003148: SWAP7
00003149: SWAP6
0000314a: POP
0000314b: POP
0000314c: POP
0000314d: POP
0000314e: POP
0000314f: POP
00003150: JUMP
00003151: JUMPDEST
00003152: DUP1
00003153: MLOAD
00003154: DUP1
00003155: ISZERO
00003156: ISZERO
00003157: DUP2
00003158: EQ
00003159: PUSH2 0x26c3
0000315c: JUMPI
0000315d: PUSH1 0x00
0000315f: DUP1
00003160: REVERT
00003161: JUMPDEST
00003162: PUSH1 0x00
00003164: DUP1
00003165: PUSH1 0x40
00003167: DUP4
00003168: DUP6
00003169: SUB
0000316a: SLT
0000316b: ISZERO
0000316c: PUSH2 0x3174
0000316f: JUMPI
00003170: PUSH1 0x00
00003172: DUP1
00003173: REVERT
00003174: JUMPDEST
00003175: PUSH2 0x317d
00003178: DUP4
00003179: PUSH2 0x3151
0000317c: JUMP
0000317d: JUMPDEST
0000317e: SWAP2
0000317f: POP
00003180: PUSH1 0x20
00003182: DUP4
00003183: ADD
00003184: MLOAD
00003185: PUSH1 0x01
00003187: PUSH1 0x01
00003189: PUSH1 0x40
0000318b: SHL
0000318c: SUB
0000318d: DUP2
0000318e: GT
0000318f: ISZERO
00003190: PUSH2 0x3198
00003193: JUMPI
00003194: PUSH1 0x00
00003196: DUP1
00003197: REVERT
00003198: JUMPDEST
00003199: DUP4
0000319a: ADD
0000319b: PUSH1 0x1f
0000319d: DUP2
0000319e: ADD
0000319f: DUP6
000031a0: SGT
000031a1: PUSH2 0x31a9
000031a4: JUMPI
000031a5: PUSH1 0x00
000031a7: DUP1
000031a8: REVERT
000031a9: JUMPDEST
000031aa: DUP1
000031ab: MLOAD
000031ac: PUSH2 0x31b7
000031af: PUSH2 0x2977
000031b2: DUP3
000031b3: PUSH2 0x2931
000031b6: JUMP
000031b7: JUMPDEST
000031b8: DUP2
000031b9: DUP2
000031ba: MSTORE
000031bb: DUP7
000031bc: PUSH1 0x20
000031be: DUP4
000031bf: DUP6
000031c0: ADD
000031c1: ADD
000031c2: GT
000031c3: ISZERO
000031c4: PUSH2 0x31cc
000031c7: JUMPI
000031c8: PUSH1 0x00
000031ca: DUP1
000031cb: REVERT
000031cc: JUMPDEST
000031cd: PUSH2 0x31dd
000031d0: DUP3
000031d1: PUSH1 0x20
000031d3: DUP4
000031d4: ADD
000031d5: PUSH1 0x20
000031d7: DUP7
000031d8: ADD
000031d9: PUSH2 0x2d38
000031dc: JUMP
000031dd: JUMPDEST
000031de: DUP1
000031df: SWAP4
000031e0: POP
000031e1: POP
000031e2: POP
000031e3: POP
000031e4: SWAP3
000031e5: POP
000031e6: SWAP3
000031e7: SWAP1
000031e8: POP
000031e9: JUMP
000031ea: JUMPDEST
000031eb: DUP10
000031ec: DUP2
000031ed: MSTORE
000031ee: DUP9
000031ef: PUSH1 0x20
000031f1: DUP3
000031f2: ADD
000031f3: MSTORE
000031f4: DUP8
000031f5: PUSH1 0x40
000031f7: DUP3
000031f8: ADD
000031f9: MSTORE
000031fa: DUP7
000031fb: PUSH1 0x60
000031fd: DUP3
000031fe: ADD
000031ff: MSTORE
00003200: PUSH1 0x00
00003202: PUSH4 0xffffffff
00003207: PUSH1 0xe0
00003209: SHL
0000320a: DUP1
0000320b: DUP9
0000320c: PUSH1 0xe0
0000320e: SHL
0000320f: AND
00003210: PUSH1 0x80
00003212: DUP5
00003213: ADD
00003214: MSTORE
00003215: DUP1
00003216: DUP8
00003217: PUSH1 0xe0
00003219: SHL
0000321a: AND
0000321b: PUSH1 0x84
0000321d: DUP5
0000321e: ADD
0000321f: MSTORE
00003220: DUP1
00003221: DUP7
00003222: PUSH1 0xe0
00003224: SHL
00003225: AND
00003226: PUSH1 0x88
00003228: DUP5
00003229: ADD
0000322a: MSTORE
0000322b: POP
0000322c: PUSH1 0x01
0000322e: PUSH1 0x01
00003230: PUSH1 0x40
00003232: SHL
00003233: SUB
00003234: PUSH1 0xc0
00003236: SHL
00003237: DUP5
00003238: PUSH1 0xc0
0000323a: SHL
0000323b: AND
0000323c: PUSH1 0x8c
0000323e: DUP4
0000323f: ADD
00003240: MSTORE
00003241: DUP3
00003242: MLOAD
00003243: PUSH2 0x3253
00003246: DUP2
00003247: PUSH1 0x94
00003249: DUP6
0000324a: ADD
0000324b: PUSH1 0x20
0000324d: DUP8
0000324e: ADD
0000324f: PUSH2 0x2d38
00003252: JUMP
00003253: JUMPDEST
00003254: SWAP2
00003255: SWAP1
00003256: SWAP2
00003257: ADD
00003258: PUSH1 0x94
0000325a: ADD
0000325b: SWAP11
0000325c: SWAP10
0000325d: POP
0000325e: POP
0000325f: POP
00003260: POP
00003261: POP
00003262: POP
00003263: POP
00003264: POP
00003265: POP
00003266: POP
00003267: JUMP
00003268: JUMPDEST
00003269: DUP6
0000326a: MLOAD
0000326b: DUP1
0000326c: MLOAD
0000326d: PUSH1 0x01
0000326f: PUSH1 0x01
00003271: PUSH1 0xa0
00003273: SHL
00003274: SUB
00003275: SWAP1
00003276: DUP2
00003277: AND
00003278: DUP4
00003279: MSTORE
0000327a: PUSH1 0x20
0000327c: SWAP2
0000327d: DUP3
0000327e: ADD
0000327f: MLOAD
00003280: DUP3
00003281: DUP5
00003282: ADD
00003283: MSTORE
00003284: DUP2
00003285: DUP9
00003286: ADD
00003287: MLOAD
00003288: PUSH1 0x40
0000328a: DUP1
0000328b: DUP6
0000328c: ADD
0000328d: SWAP2
0000328e: SWAP1
0000328f: SWAP2
00003290: MSTORE
00003291: DUP9
00003292: ADD
00003293: MLOAD
00003294: PUSH1 0x60
00003296: DUP5
00003297: ADD
00003298: MSTORE
00003299: DUP7
0000329a: MLOAD
0000329b: DUP2
0000329c: AND
0000329d: PUSH1 0x80
0000329f: DUP5
000032a0: ADD
000032a1: MSTORE
000032a2: SWAP1
000032a3: DUP7
000032a4: ADD
000032a5: MLOAD
000032a6: PUSH1 0xa0
000032a8: DUP4
000032a9: ADD
000032aa: MSTORE
000032ab: DUP5
000032ac: AND
000032ad: PUSH1 0xc0
000032af: DUP3
000032b0: ADD
000032b1: MSTORE
000032b2: PUSH2 0x0100
000032b5: PUSH1 0xe0
000032b7: DUP3
000032b8: ADD
000032b9: DUP2
000032ba: SWAP1
000032bb: MSTORE
000032bc: DUP2
000032bd: ADD
000032be: DUP3
000032bf: SWAP1
000032c0: MSTORE
000032c1: PUSH1 0x00
000032c3: PUSH2 0x0120
000032c6: DUP4
000032c7: DUP6
000032c8: DUP3
000032c9: DUP6
000032ca: ADD
000032cb: CALLDATACOPY
000032cc: PUSH1 0x00
000032ce: DUP4
000032cf: DUP6
000032d0: ADD
000032d1: DUP3
000032d2: ADD
000032d3: MSTORE
000032d4: PUSH1 0x1f
000032d6: SWAP1
000032d7: SWAP4
000032d8: ADD
000032d9: PUSH1 0x1f
000032db: NOT
000032dc: AND
000032dd: SWAP1
000032de: SWAP2
000032df: ADD
000032e0: SWAP1
000032e1: SWAP2
000032e2: ADD
000032e3: SWAP6
000032e4: SWAP5
000032e5: POP
000032e6: POP
000032e7: POP
000032e8: POP
000032e9: POP
000032ea: JUMP
000032eb: JUMPDEST
000032ec: PUSH1 0x20
000032ee: DUP1
000032ef: DUP3
000032f0: MSTORE
000032f1: PUSH1 0x24
000032f3: SWAP1
000032f4: DUP3
000032f5: ADD
000032f6: MSTORE
000032f7: PUSH32 0x466173745472616e73666572476174657761793a206f72646572206e6f742066
00003318: PUSH1 0x40
0000331a: DUP3
0000331b: ADD
0000331c: MSTORE
0000331d: PUSH4 0x1bdd5b99
00003322: PUSH1 0xe2
00003324: SHL
00003325: PUSH1 0x60
00003327: DUP3
00003328: ADD
00003329: MSTORE
0000332a: PUSH1 0x80
0000332c: ADD
0000332d: SWAP1
0000332e: JUMP
0000332f: JUMPDEST
00003330: PUSH1 0x20
00003332: DUP1
00003333: DUP3
00003334: MSTORE
00003335: PUSH1 0x34
00003337: SWAP1
00003338: DUP3
00003339: ADD
0000333a: MSTORE
0000333b: PUSH32 0x466173745472616e73666572476174657761793a20696e636f72726563742064
0000335c: PUSH1 0x40
0000335e: DUP3
0000335f: ADD
00003360: MSTORE
00003361: PUSH20 0x1bdb585a5b88199bdc881cd95d1d1b195b595b9d
00003376: PUSH1 0x62
00003378: SHL
00003379: PUSH1 0x60
0000337b: DUP3
0000337c: ADD
0000337d: MSTORE
0000337e: PUSH1 0x80
00003380: ADD
00003381: SWAP1
00003382: JUMP
00003383: JUMPDEST
00003384: PUSH1 0x00
00003386: PUSH1 0x20
00003388: DUP3
00003389: DUP5
0000338a: SUB
0000338b: SLT
0000338c: ISZERO
0000338d: PUSH2 0x3395
00003390: JUMPI
00003391: PUSH1 0x00
00003393: DUP1
00003394: REVERT
00003395: JUMPDEST
00003396: PUSH2 0x1a47
00003399: DUP3
0000339a: PUSH2 0x3151
0000339d: JUMP
0000339e: JUMPDEST
0000339f: PUSH1 0x00
000033a1: DUP3
000033a2: MLOAD
000033a3: PUSH2 0x33b0
000033a6: DUP2
000033a7: DUP5
000033a8: PUSH1 0x20
000033aa: DUP8
000033ab: ADD
000033ac: PUSH2 0x2d38
000033af: JUMP
000033b0: JUMPDEST
000033b1: SWAP2
000033b2: SWAP1
000033b3: SWAP2
000033b4: ADD
000033b5: SWAP3
000033b6: SWAP2
000033b7: POP
000033b8: POP
000033b9: JUMP
000033ba: INVALID
000033bb: CALLDATASIZE
000033bc: ADDMOD
000033bd: SWAP5
000033be: LOG1
000033bf: EXTCODESIZE
000033c0: LOG1
000033c1: LOG3
000033c2: UNKNOWN(0x21)
000033c3: MOD
000033c4: PUSH8 0xc828492db98dca3e
000033cd: KECCAK256
000033ce: PUSH23 0xcc3735a920a3ca505d382bbca2646970667358221220eb
000033e6: UNKNOWN(0xCC)
000033e7: RETURN
000033e8: RETURNDATASIZE
000033e9: BLOCKHASH
000033ea: PUSH28 0xe8f083a3554a8531703d101e75f965f4baee99bd51ee5234e18d6473
00003407: PUSH16

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0xa7d28def7259e989a528b6139d1952a224b61d90affa478df95718a9b0fdc249
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0xa7d28def7259e989a528b6139d1952a224b61d90affa478df95718a9b0fdc249",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3c61d6b",
            "selector": "0xf3c61d6b",
            "calldata_variants": [
                "0xf3c61d6b",
                "0xf3c61d6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7213db6",
            "selector": "0xf7213db6",
            "calldata_variants": [
                "0xf7213db6",
                "0xf7213db60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd5438eae",
            "selector": "0xd5438eae",
            "calldata_variants": [
                "0xd5438eae",
                "0xd5438eae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde523cf3",
            "selector": "0xde523cf3",
            "calldata_variants": [
                "0xde523cf3",
                "0xde523cf30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe5dc8496",
            "selector": "0xe5dc8496",
            "calldata_variants": [
                "0xe5dc8496",
                "0xe5dc84960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe88787c2",
            "selector": "0xe88787c2",
            "calldata_variants": [
                "0xe88787c2",
                "0xe88787c20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 9501,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xf554ba11daba23f6d6214f62334f66839d07420ac88d8ddbe4c1fa0a7256b196
call_targets: 0x5afdab84d684a057d359498e40f38f433390e711
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xf554ba11daba23f6d6214f62334f66839d07420ac88d8ddbe4c1fa0a7256b196",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5afdab84d684a057d359498e40f38f433390e711"
    ],
    "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": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3c61d6b",
            "selector": "0xf3c61d6b",
            "calldata_variants": [
                "0xf3c61d6b",
                "0xf3c61d6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7213db6",
            "selector": "0xf7213db6",
            "calldata_variants": [
                "0xf7213db6",
                "0xf7213db60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd5438eae",
            "selector": "0xd5438eae",
            "calldata_variants": [
                "0xd5438eae",
                "0xd5438eae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde523cf3",
            "selector": "0xde523cf3",
            "calldata_variants": [
                "0xde523cf3",
                "0xde523cf30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe5dc8496",
            "selector": "0xe5dc8496",
            "calldata_variants": [
                "0xe5dc8496",
                "0xe5dc84960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe88787c2",
            "selector": "0xe88787c2",
            "calldata_variants": [
                "0xe88787c2",
                "0xe88787c20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3142,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6328,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7093,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [],
    "untrusted_call_count": 4
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xf554ba11daba23f6d6214f62334f66839d07420ac88d8ddbe4c1fa0a7256b196
call_targets: 0x5afdab84d684a057d359498e40f38f433390e711
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xf554ba11daba23f6d6214f62334f66839d07420ac88d8ddbe4c1fa0a7256b196",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5afdab84d684a057d359498e40f38f433390e711"
    ],
    "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": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3c61d6b",
            "selector": "0xf3c61d6b",
            "calldata_variants": [
                "0xf3c61d6b",
                "0xf3c61d6b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7213db6",
            "selector": "0xf7213db6",
            "calldata_variants": [
                "0xf7213db6",
                "0xf7213db60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd5438eae",
            "selector": "0xd5438eae",
            "calldata_variants": [
                "0xd5438eae",
                "0xd5438eae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde523cf3",
            "selector": "0xde523cf3",
            "calldata_variants": [
                "0xde523cf3",
                "0xde523cf30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe5dc8496",
            "selector": "0xe5dc8496",
            "calldata_variants": [
                "0xe5dc8496",
                "0xe5dc84960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe88787c2",
            "selector": "0xe88787c2",
            "calldata_variants": [
                "0xe88787c2",
                "0xe88787c20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3142,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6328,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7093,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": []
}
medium other codex GoFastCaller leaves approvals in place, allowing previous recipients to drain future tokens 75 no
view
evidence_json
{
    "evidence": "`execute` approves `_target` for `_amount` and never revokes it, leaving residual allowances that persist across calls.",
    "locations": [
        "src/GoFastCaller.sol:25",
        "src/GoFastCaller.sol:30"
    ],
    "recommendation": "After the external call, reset allowance for `_target` back to 0 (or use a pattern that transfers tokens directly to the recipient before the call). Consider using `safeTransfer` + callback with no approval, or clear allowances per call to avoid cross-order token theft.",
    "exploit_scenario": "A malicious recipient contract is called via `fillOrder` with `order.data` and chooses not to pull tokens (or pulls less). The GoFastCaller approval to that recipient remains. Later, other users fill orders that route tokens through GoFastCaller, and the earlier recipient can call `transferFrom` using its leftover allowance to steal those tokens."
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
low auth codex Permit-based order submission uses a global nonce that can be cheaply griefed 65 no
view
evidence_json
{
    "evidence": "`submitOrderWithPermit` derives the permit nonce from the shared `nonce` state and increments it for every order, while `submitOrder` allows arbitrary amounts and also increments the same nonce.",
    "locations": [
        "src/FastTransferGateway.sol:160",
        "src/FastTransferGateway.sol:216",
        "src/FastTransferGateway.sol:226",
        "src/FastTransferGateway.sol:233"
    ],
    "recommendation": "Decouple order nonce from Permit2 nonce. Use per-user Permit2 nonces (provided by the signer) and keep a separate order ID nonce, or require the caller to supply a permit nonce and verify it without relying on the shared `nonce`. Also enforce `amountIn > 0` to raise the griefing cost.",
    "exploit_scenario": "Users must sign a Permit2 message using the gateway\u2019s current global `nonce`. Any account can submit a zero-amount (or tiny-amount) order to increment this nonce and invalidate a pre-signed permit, repeatedly griefing permit submissions."
}
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": 5
}