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

Analysis Run

019bab3d-f2be-72f8-a06f-15a39da6a9c7

failed
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:08 AM
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
39159 artifact.fetch complete 1 / 3 3 months ago
39160 proxy.resolve complete 1 / 3 3 months ago
39161 tool.cast_disasm complete 1 / 3 3 months ago
39162 analysis.bundle complete 1 / 3 3 months ago
39163 capability.graph complete 1 / 3 3 months ago
39164 detector.run complete 1 / 3 3 months ago
39165 validation.fork complete 1 / 3 3 months ago
39256 report.consolidate complete 1 / 6 3 months ago
39257 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-y1i9ydah) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-y1i9ydah) 'forge' returned non-zero exit code 1 Error: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol: No solc version exists that matches the version requirement: ^0.8.21 stderr: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol: No solc version exists that matches the version requirement: ^0.8.21 stderr: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol: No solc version exists that matches the version requirement: ^0.8.21 stderr: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol: No solc version exists that matches the version requirement: ^0.8.21 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-y1i9ydah/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-y1i9ydah)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-y1i9ydah)
'forge' returned non-zero exit code 1
Error: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol: No solc version exists that matches the version requirement: ^0.8.21
stderr: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol: No solc version exists that matches the version requirement: ^0.8.21
stderr: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol: No solc version exists that matches the version requirement: ^0.8.21
stderr: Encountered invalid solc version in lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol: No solc version exists that matches the version requirement: ^0.8.21
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-y1i9ydah/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Found 3 issues: old committees remain authorized after rotation, oracle-based limits can fail open on invalid prices, and StableSwap accounting assumes exact token transfers.
View stdout
{"no_findings":false,"summary":"Found 3 issues: old committees remain authorized after rotation, oracle-based limits can fail open on invalid prices, and StableSwap accounting assumes exact token transfers.","findings":[{"severity":"high","category":"access_control","title":"Old committee members remain authorized after rotation","exploit_scenario":"After the owner rotates the committee, members of a previous committee can still call `receiveRequest` with their old `_committeeId` and arbitrary transfer parameters. Because the contract only checks membership for the supplied `_committeeId`, the old committee can reach its historical threshold and mint/unlock tokens without the current committee’s approval.","recommendation":"Gate `receiveRequest` to only accept the current `committeeId`, or maintain an explicit allowlist with expiry for previous committees and disable old ones on rotation. Consider clearing or marking old committee memberships as inactive.","evidence":"`setCommittee` increments `committeeId` and only adds new members, while `receiveRequest` accepts any `_committeeId` and checks membership/threshold for that id.","locations":["contracts/AbstractMost.sol:302","contracts/AbstractMost.sol:333","contracts/AbstractMost.sol:367"]},{"severity":"medium","category":"oracle","title":"Oracle price validation missing allows minimum limit bypass or revert","exploit_scenario":"If the Chainlink oracle returns 0 or a negative price, `minimumTransferAmount` divides by `uint256(usdPrice)` which can revert or underflow to a huge value. In `Most.checkTransferAllowed`, any revert is swallowed, so the transfer limit is effectively disabled during oracle outages or manipulations.","recommendation":"Validate `usdPrice > 0`, check `updatedAt`/`answeredInRound` for freshness, and avoid fail-open behavior on oracle errors (or make it configurable). If the intent is to enforce a minimum, consider `Math.max` instead of `Math.min`.","evidence":"`minimumTransferAmount` uses `latestRoundData()` without validating price or staleness and casts `usdPrice` to `uint256`; `Most.checkTransferAllowed` ignores errors and allows transfers.","locations":["contracts/TransferLimit.sol:67","contracts/TransferLimit.sol:70","contracts/Most.sol:41"]},{"severity":"low","category":"math","title":"StableSwap accounting assumes exact token transfers (fee-on-transfer breaks invariants)","exploit_scenario":"If a pool coin is fee-on-transfer or deflationary, the contract updates internal `balances` using the nominal `amounts`/`amount_in`, but fewer tokens are actually received. This can inflate pool accounting and allow LPs to mint/burn against overstated balances, potentially draining the pool.","recommendation":"Restrict pool coins to standard ERC20s with exact transfers (enforce in factory) or measure actual balances before/after transfers and update `balances` by the delta.","evidence":"`add_liquidity` and `exchange` update `balances` by the requested amount and then call `transfer_in`/`safeTransferFrom` without reconciling actual received amounts.","locations":["contracts/StableSwap/StableSwapTwoPool.sol:322","contracts/StableSwap/StableSwapTwoPool.sol:554","contracts/StableSwap/StableSwapTwoPool.sol:784"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-gdeltt8j
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bac43-4a9c-7012-93d9-66c372374c71
--------
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
**Searching for AUDIT_BUNDLE file**
exec
/bin/bash -lc ls in /tmp/codex-gdeltt8j succeeded in 6ms:
AUDIT_BUNDLE.txt
@chainlink
codex-output-schema.json
contracts
@openzeppelin
@openzeppelin-4.5.0
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-gdeltt8j 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: @chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// solhint-disable-next-line interface-starts-with-i
interface AggregatorV3Interface {
  function decimals() external view returns (uint8);

  function description() external view returns (string memory);

  function version() external view returns (uint256);

  function getRoundData(
    uint80 _roundId
  ) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);

thinking
**Identifying first-party code in audit bundle**
exec
/bin/bash -lc 'rg -n "''^FILE: contracts/" AUDIT_BUNDLE.txt' in /tmp/codex-gdeltt8j succeeded in 20ms:
1038:FILE: contracts/AbstractMost.sol
1507:FILE: contracts/ITransferLimit.sol
1523:FILE: contracts/IWETH9.sol
1538:FILE: contracts/IWrappedToken.sol
1556:FILE: contracts/MockOracle.sol
1586:FILE: contracts/Most.sol
1643:FILE: contracts/MostL2.sol
1983:FILE: contracts/StableSwap/IStableSwapLP.sol
2002:FILE: contracts/StableSwap/StableSwapLP.sol
2038:FILE: contracts/StableSwap/StableSwapTwoPool.sol
2998:FILE: contracts/Token.sol
3027:FILE: contracts/TransferLimit.sol
3118:FILE: contracts/WrappedToken.sol

thinking
**Reviewing key contract files**
exec
/bin/bash -lc "sed -n '1038,1506p' AUDIT_BUNDLE.txt" in /tmp/codex-gdeltt8j succeeded in 28ms:
FILE: contracts/AbstractMost.sol
================================================================================
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol";
import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
import {IWETH9} from "./IWETH9.sol";
import {IWrappedToken} from "./IWrappedToken.sol";

/// @title Most
/// @author Cardinal Cryptography
abstract contract AbstractMost is
    Initializable,
    UUPSUpgradeable,

thinking
**Requesting additional files**
exec
/bin/bash -lc "sed -n '1507,1982p' AUDIT_BUNDLE.txt" in /tmp/codex-gdeltt8j succeeded in 18ms:
FILE: contracts/ITransferLimit.sol
================================================================================
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";

interface ITransferLimit {
    function isRequestAllowed(
        address _token,
        uint256 _amount
    ) external view returns (bool);
}

================================================================================
FILE: contracts/IWETH9.sol
================================================================================
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.2;

thinking
**Searching for StableSwap files**
exec
/bin/bash -lc "sed -n '1983,2997p' AUDIT_BUNDLE.txt" in /tmp/codex-gdeltt8j succeeded in 6ms:
FILE: contracts/StableSwap/IStableSwapLP.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

interface IStableSwapLP {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    function mint(address _to, uint256 _amount) external;

    function burnFrom(address _to, uint256 _amount) external;

    function setMinter(address _newMinter) external;
}

================================================================================
FILE: contracts/StableSwap/StableSwapLP.sol



thinking
**Analyzing first-party contract vulnerabilities**
thinking
**Evaluating reentrancy and oracle manipulation risks**

I’m exploring edge cases where oracle failures let transfer limits be bypassed through fail-open behavior. I’m also checking StableSwapTwoPool’s reentrancy guards and token transfer flows, focusing on nuanced reentrancy paths and approval patterns. There’s a lot to unpack, especially around fallback calls, token fee-on-transfer assumptions, and fee handling in MostL2. Let’s keep tracking how state updates and external calls interplay to catch subtle vulnerabilities.
thinking
**Analyzing swap, committee, and oracle details**

I'm examining handling of low-level calls in MostL2 swaps, especially unchecked approval returns and fallback behaviors on call failures. The committee access control and signature threshold logic around committee rotation also draws attention. Oracle data usage in TransferLimit and fee handling in MostL2 show nuanced risks to explore, along with potential accounting breaks from fee-on-transfer tokens in StableSwap pools. There is a lot here that ties together cross-contract interactions and assumptions.
exec
/bin/bash -lc 'nl -ba contracts/AbstractMost.sol' in /tmp/codex-gdeltt8j succeeded in 13ms:
     1	// SPDX-License-Identifier: MIT
     2	
     3	pragma solidity ^0.8.20;
     4	
     5	import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
     6	import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
     7	import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
     8	import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
     9	import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol";
    10	import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
    11	import {IWETH9} from "./IWETH9.sol";
    12	import {IWrappedToken} from "./IWrappedToken.sol";
    13	
    14	/// @title Most
    15	/// @author Cardinal Cryptography
    16	abstract contract AbstractMost is
    17	    Initializable,
    18	    UUPSUpgradeable,
    19	    Ownable2StepUpgradeable,
    20	    PausableUpgradeable

thinking
**Transferring line numbers for TransferLimit**
exec
/bin/bash -lc 'nl -ba contracts/TransferLimit.sol' in /tmp/codex-gdeltt8j succeeded in 6ms:
     1	// SPDX-License-Identifier: MIT
     2	
     3	pragma solidity ^0.8.20;
     4	
     5	import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
     6	import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol";
     7	import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol";
     8	import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
     9	import {ITransferLimit} from "./ITransferLimit.sol";
    10	
    11	/// @title TransferLimit
    12	/// @author Cardinal Cryptography
    13	/// @notice Implements a transfer limit based on pricing data from Chainlink oracles
    14	contract TransferLimit is
    15	    ITransferLimit,
    16	    UUPSUpgradeable,
    17	    Ownable2StepUpgradeable
    18	{
    19	    mapping(address => uint256) public defaultMinima;
    20	

thinking
**Searching for checkTransferAllowed implementation**
exec
/bin/bash -lc 'nl -ba contracts/Most.sol' in /tmp/codex-gdeltt8j succeeded in 26ms:
     1	// SPDX-License-Identifier: MIT
     2	
     3	pragma solidity ^0.8.20;
     4	
     5	import {AbstractMost} from "./AbstractMost.sol";
     6	import {ITransferLimit} from "./ITransferLimit.sol";
     7	
     8	/// @title Most
     9	/// @author Cardinal Cryptography
    10	contract Most is AbstractMost {
    11	    ITransferLimit public transferLimit;
    12	
    13	    /// @custom:oz-upgrades-unsafe-allow constructor
    14	    constructor() {
    15	        _disableInitializers();
    16	    }
    17	
    18	    function setTransferLimitContract(
    19	        ITransferLimit _transferLimit
    20	    ) external onlyOwner {

thinking
**Locating line numbers for StableSwapTwoPool methods**
exec
/bin/bash -lc "nl -ba contracts/StableSwap/StableSwapTwoPool.sol | sed -n '250,520p'" in /tmp/codex-gdeltt8j succeeded in 12ms:
   250	                D_P = (D_P * D) / (xp[k] * N_COINS); // If division by 0, this will be borked: only withdrawal will work. And that is good
   251	            }
   252	            Dprev = D;
   253	            D =
   254	                ((Ann * S + D_P * N_COINS) * D) /
   255	                ((Ann - 1) * D + (N_COINS + 1) * D_P);
   256	            // Equality with the precision of 1
   257	            if (D > Dprev) {
   258	                if (D - Dprev <= 1) {
   259	                    break;
   260	                }
   261	            } else {
   262	                if (Dprev - D <= 1) {
   263	                    break;
   264	                }
   265	            }
   266	        }
   267	        return D;
   268	    }
   269	

thinking
**Planning to capture line numbers around transfer_in**
exec
/bin/bash -lc "nl -ba contracts/StableSwap/StableSwapTwoPool.sol | sed -n '520,760p'" in /tmp/codex-gdeltt8j succeeded in 30ms:
   520	    }
   521	
   522	    function exchange(
   523	        uint256 source_token,
   524	        uint256 dest_token,
   525	        uint256 amount_in,
   526	        uint256 amount_out
   527	    ) internal returns (uint256) {
   528	        require(!is_killed, "Killed");
   529	        if (!support_native) {
   530	            require(msg.value == 0, "Inconsistent quantity"); // Avoid sending native by mistake.
   531	        }
   532	
   533	        uint256[N_COINS] memory old_balances = balances;
   534	        uint256[N_COINS] memory xp = _xp_mem(old_balances);
   535	
   536	        uint256 x = xp[source_token] +
   537	            (amount_in * RATES[source_token]) /
   538	            PRECISION;
   539	        uint256 y = get_y(source_token, dest_token, x, xp);

thinking
**Considering adding line numbers**
exec
/bin/bash -lc "nl -ba contracts/StableSwap/StableSwapTwoPool.sol | sed -n '760,980p'" in /tmp/codex-gdeltt8j succeeded in 6ms:
   760	    ) external nonReentrant {
   761	        // Remove _amount of liquidity all in a form of coin i
   762	        require(!is_killed, "Killed");
   763	        (uint256 dy, uint256 dy_fee) = _calc_withdraw_one_coin(
   764	            _token_amount,
   765	            i
   766	        );
   767	        require(dy >= min_amount, "Not enough coins removed");
   768	
   769	        balances[i] -= (dy + (dy_fee * admin_fee) / FEE_DENOMINATOR);
   770	        token.burnFrom(msg.sender, _token_amount); // dev: insufficient funds
   771	        transfer_out(coins[i], dy);
   772	
   773	        emit RemoveLiquidityOne(msg.sender, i, _token_amount, dy);
   774	    }
   775	
   776	    function transfer_out(address coin_address, uint256 value) internal {
   777	        if (coin_address == NATIVE_ADDRESS) {
   778	            _safeTransferNative(msg.sender, value);
   779	        } else {

thinking
**Summarizing security issues for JSON report**

I've gathered detailed findings on three main issues: old committees staying authorized after rotation (high severity, access control), oracle price validation missing which allows bypassing transfer limits (medium severity, oracle), and StableSwap pool accounting assuming exact token transfers risking imbalance (low severity, math). I’m preparing a precise JSON report that covers severity, categories, exploit scenarios, recommendations, evidence, and file references per the codex output schema.
codex
{"no_findings":false,"summary":"Found 3 issues: old committees remain authorized after rotation, oracle-based limits can fail open on invalid prices, and StableSwap accounting assumes exact token transfers.","findings":[{"severity":"high","category":"access_control","title":"Old committee members remain authorized after rotation","exploit_scenario":"After the owner rotates the committee, members of a previous committee can still call `receiveRequest` with their old `_committeeId` and arbitrary transfer parameters. Because the contract only checks membership for the supplied `_committeeId`, the old committee can reach its historical threshold and mint/unlock tokens without the current committee’s approval.","recommendation":"Gate `receiveRequest` to only accept the current `committeeId`, or maintain an explicit allowlist with expiry for previous committees and disable old ones on rotation. Consider clearing or marking old committee memberships as inactive.","evidence":"`setCommittee` increments `committeeId` and only adds new members, while `receiveRequest` accepts any `_committeeId` and checks membership/threshold for that id.","locations":["contracts/AbstractMost.sol:302","contracts/AbstractMost.sol:333","contracts/AbstractMost.sol:367"]},{"severity":"medium","category":"oracle","title":"Oracle price validation missing allows minimum limit bypass or revert","exploit_scenario":"If the Chainlink oracle returns 0 or a negative price, `minimumTransferAmount` divides by `uint256(usdPrice)` which can revert or underflow to a huge value. In `Most.checkTransferAllowed`, any revert is swallowed, so the transfer limit is effectively disabled during oracle outages or manipulations.","recommendation":"Validate `usdPrice > 0`, check `updatedAt`/`answeredInRound` for freshness, and avoid fail-open behavior on oracle errors (or make it configurable). If the intent is to enforce a minimum, consider `Math.max` instead of `Math.min`.","evidence":"`minimumTransferAmount` uses `latestRoundData()` without validating price or staleness and casts `usdPrice` to `uint256`; `Most.checkTransferAllowed` ignores errors and allows transfers.","locations":["contracts/TransferLimit.sol:67","contracts/TransferLimit.sol:70","contracts/Most.sol:41"]},{"severity":"low","category":"math","title":"StableSwap accounting assumes exact token transfers (fee-on-transfer breaks invariants)","exploit_scenario":"If a pool coin is fee-on-transfer or deflationary, the contract updates internal `balances` using the nominal `amounts`/`amount_in`, but fewer tokens are actually received. This can inflate pool accounting and allow LPs to mint/burn against overstated balances, potentially draining the pool.","recommendation":"Restrict pool coins to standard ERC20s with exact transfers (enforce in factory) or measure actual balances before/after transfers and update `balances` by the delta.","evidence":"`add_liquidity` and `exchange` update `balances` by the requested amount and then call `transfer_in`/`safeTransferFrom` without reconciling actual received amounts.","locations":["contracts/StableSwap/StableSwapTwoPool.sol:322","contracts/StableSwap/StableSwapTwoPool.sol:554","contracts/StableSwap/StableSwapTwoPool.sol:784"]}]}
tokens used
59,385
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T08:58:58.113184+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 43,
        "import_count": 40,
        "first_party_contracts_count": 22
    },
    "summary": "Found 3 issues: old committees remain authorized after rotation, oracle-based limits can fail open on invalid prices, and StableSwap accounting assumes exact token transfers.",
    "raw_final": {
        "summary": "Found 3 issues: old committees remain authorized after rotation, oracle-based limits can fail open on invalid prices, and StableSwap accounting assumes exact token transfers.",
        "findings": [
            {
                "title": "Old committee members remain authorized after rotation",
                "category": "access_control",
                "evidence": "`setCommittee` increments `committeeId` and only adds new members, while `receiveRequest` accepts any `_committeeId` and checks membership/threshold for that id.",
                "severity": "high",
                "locations": [
                    "contracts/AbstractMost.sol:302",
                    "contracts/AbstractMost.sol:333",
                    "contracts/AbstractMost.sol:367"
                ],
                "recommendation": "Gate `receiveRequest` to only accept the current `committeeId`, or maintain an explicit allowlist with expiry for previous committees and disable old ones on rotation. Consider clearing or marking old committee memberships as inactive.",
                "exploit_scenario": "After the owner rotates the committee, members of a previous committee can still call `receiveRequest` with their old `_committeeId` and arbitrary transfer parameters. Because the contract only checks membership for the supplied `_committeeId`, the old committee can reach its historical threshold and mint/unlock tokens without the current committee\u2019s approval."
            },
            {
                "title": "Oracle price validation missing allows minimum limit bypass or revert",
                "category": "oracle",
                "evidence": "`minimumTransferAmount` uses `latestRoundData()` without validating price or staleness and casts `usdPrice` to `uint256`; `Most.checkTransferAllowed` ignores errors and allows transfers.",
                "severity": "medium",
                "locations": [
                    "contracts/TransferLimit.sol:67",
                    "contracts/TransferLimit.sol:70",
                    "contracts/Most.sol:41"
                ],
                "recommendation": "Validate `usdPrice > 0`, check `updatedAt`/`answeredInRound` for freshness, and avoid fail-open behavior on oracle errors (or make it configurable). If the intent is to enforce a minimum, consider `Math.max` instead of `Math.min`.",
                "exploit_scenario": "If the Chainlink oracle returns 0 or a negative price, `minimumTransferAmount` divides by `uint256(usdPrice)` which can revert or underflow to a huge value. In `Most.checkTransferAllowed`, any revert is swallowed, so the transfer limit is effectively disabled during oracle outages or manipulations."
            },
            {
                "title": "StableSwap accounting assumes exact token transfers (fee-on-transfer breaks invariants)",
                "category": "math",
                "evidence": "`add_liquidity` and `exchange` update `balances` by the requested amount and then call `transfer_in`/`safeTransferFrom` without reconciling actual received amounts.",
                "severity": "low",
                "locations": [
                    "contracts/StableSwap/StableSwapTwoPool.sol:322",
                    "contracts/StableSwap/StableSwapTwoPool.sol:554",
                    "contracts/StableSwap/StableSwapTwoPool.sol:784"
                ],
                "recommendation": "Restrict pool coins to standard ERC20s with exact transfers (enforce in factory) or measure actual balances before/after transfers and update `balances` by the delta.",
                "exploit_scenario": "If a pool coin is fee-on-transfer or deflationary, the contract updates internal `balances` using the nominal `amounts`/`amount_in`, but fewer tokens are actually received. This can inflate pool accounting and allow LPs to mint/burn against overstated balances, potentially draining the pool."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
11
EXT*/BALANCE
9
Total opcodes
6285
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 0x0233
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x790f3a47
00000019: GT
0000001a: PUSH2 0x012e
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xbe4865ec
00000024: GT
00000025: PUSH2 0x00ab
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xe30c3978
0000002f: GT
00000030: PUSH2 0x006f
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xe30c3978
0000003a: EQ
0000003b: PUSH2 0x06f7
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf20f5108
00000045: EQ
00000046: PUSH2 0x070c
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf2cda82e
00000050: EQ
00000051: PUSH2 0x072c
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf2fde38b
0000005b: EQ
0000005c: PUSH2 0x074c
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf9432517
00000066: EQ
00000067: PUSH2 0x076c
0000006a: JUMPI
0000006b: PUSH1 0x00
0000006d: DUP1
0000006e: REVERT
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0xbe4865ec
00000076: EQ
00000077: PUSH2 0x0647
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xbe8f909a
00000081: EQ
00000082: PUSH2 0x0667
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xc1b4a1e3
0000008c: EQ
0000008d: PUSH2 0x0687
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xce0fa5a9
00000097: EQ
00000098: PUSH2 0x06a7
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0xdfda7570
000000a2: EQ
000000a3: PUSH2 0x06d7
000000a6: JUMPI
000000a7: PUSH1 0x00
000000a9: DUP1
000000aa: REVERT
000000ab: JUMPDEST
000000ac: DUP1
000000ad: PUSH4 0x8da5cb5b
000000b2: GT
000000b3: PUSH2 0x00f2
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0x8da5cb5b
000000bd: EQ
000000be: PUSH2 0x055e
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0x905b502d
000000c8: EQ
000000c9: PUSH2 0x0573
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0xa6bec03f
000000d3: EQ
000000d4: PUSH2 0x0593
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0xa91e5554
000000de: EQ
000000df: PUSH2 0x05c0
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0xad3cb1cc
000000e9: EQ
000000ea: PUSH2 0x0609
000000ed: JUMPI
000000ee: PUSH1 0x00
000000f0: DUP1
000000f1: REVERT
000000f2: JUMPDEST
000000f3: DUP1
000000f4: PUSH4 0x790f3a47
000000f9: EQ
000000fa: PUSH2 0x04d1
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x79ba5097
00000104: EQ
00000105: PUSH2 0x04f1
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x7a6c5fc4
0000010f: EQ
00000110: PUSH2 0x0506
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0x7c1a0302
0000011a: EQ
0000011b: PUSH2 0x0533
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x8456cb59
00000125: EQ
00000126: PUSH2 0x0549
00000129: JUMPI
0000012a: PUSH1 0x00
0000012c: DUP1
0000012d: REVERT
0000012e: JUMPDEST
0000012f: DUP1
00000130: PUSH4 0x2795ad20
00000135: GT
00000136: PUSH2 0x01bc
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x4f1ef286
00000140: GT
00000141: PUSH2 0x0180
00000144: JUMPI
00000145: DUP1
00000146: PUSH4 0x4f1ef286
0000014b: EQ
0000014c: PUSH2 0x044f
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0x52d1902d
00000156: EQ
00000157: PUSH2 0x0462
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0x5adcaa7c
00000161: EQ
00000162: PUSH2 0x0477
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0x5c975abb
0000016c: EQ
0000016d: PUSH2 0x0497
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0x715018a6
00000177: EQ
00000178: PUSH2 0x04bc
0000017b: JUMPI
0000017c: PUSH1 0x00
0000017e: DUP1
0000017f: REVERT
00000180: JUMPDEST
00000181: DUP1
00000182: PUSH4 0x2795ad20
00000187: EQ
00000188: PUSH2 0x03b7
0000018b: JUMPI
0000018c: DUP1
0000018d: PUSH4 0x2ceb1b06
00000192: EQ
00000193: PUSH2 0x03e4
00000196: JUMPI
00000197: DUP1
00000198: PUSH4 0x3f4ba83a
0000019d: EQ
0000019e: PUSH2 0x03fa
000001a1: JUMPI
000001a2: DUP1
000001a3: PUSH4 0x41fbbb4b
000001a8: EQ
000001a9: PUSH2 0x040f
000001ac: JUMPI
000001ad: DUP1
000001ae: PUSH4 0x4f0e0ef3
000001b3: EQ
000001b4: PUSH2 0x042f
000001b7: JUMPI
000001b8: PUSH1 0x00
000001ba: DUP1
000001bb: REVERT
000001bc: JUMPDEST
000001bd: DUP1
000001be: PUSH4 0x0904bccd
000001c3: GT
000001c4: PUSH2 0x0203
000001c7: JUMPI
000001c8: DUP1
000001c9: PUSH4 0x0904bccd
000001ce: EQ
000001cf: PUSH2 0x0313
000001d2: JUMPI
000001d3: DUP1
000001d4: PUSH4 0x091d2788
000001d9: EQ
000001da: PUSH2 0x0326
000001dd: JUMPI
000001de: DUP1
000001df: PUSH4 0x0a6fc2d2
000001e4: EQ
000001e5: PUSH2 0x034a
000001e8: JUMPI
000001e9: DUP1
000001ea: PUSH4 0x1171bda9
000001ef: EQ
000001f0: PUSH2 0x036a
000001f3: JUMPI
000001f4: DUP1
000001f5: PUSH4 0x16975d16
000001fa: EQ
000001fb: PUSH2 0x038a
000001fe: JUMPI
000001ff: PUSH1 0x00
00000201: DUP1
00000202: REVERT
00000203: JUMPDEST
00000204: DUP1
00000205: PUSH3 0xdd78d3
00000209: EQ
0000020a: PUSH2 0x0256
0000020d: JUMPI
0000020e: DUP1
0000020f: PUSH4 0x0252028a
00000214: EQ
00000215: PUSH2 0x0276
00000218: JUMPI
00000219: DUP1
0000021a: PUSH4 0x0439ad41
0000021f: EQ
00000220: PUSH2 0x0296
00000223: JUMPI
00000224: DUP1
00000225: PUSH4 0x07f61473
0000022a: EQ
0000022b: PUSH2 0x02d3
0000022e: JUMPI
0000022f: PUSH1 0x00
00000231: DUP1
00000232: REVERT
00000233: JUMPDEST
00000234: CALLDATASIZE
00000235: PUSH2 0x0251
00000238: JUMPI
00000239: PUSH1 0x02
0000023b: SLOAD
0000023c: PUSH1 0x01
0000023e: PUSH1 0x01
00000240: PUSH1 0xa0
00000242: SHL
00000243: SUB
00000244: AND
00000245: CALLER
00000246: EQ
00000247: PUSH2 0x024f
0000024a: JUMPI
0000024b: PUSH1 0x00
0000024d: DUP1
0000024e: REVERT
0000024f: JUMPDEST
00000250: STOP
00000251: JUMPDEST
00000252: PUSH1 0x00
00000254: DUP1
00000255: REVERT
00000256: JUMPDEST
00000257: CALLVALUE
00000258: DUP1
00000259: ISZERO
0000025a: PUSH2 0x0262
0000025d: JUMPI
0000025e: PUSH1 0x00
00000260: DUP1
00000261: REVERT
00000262: JUMPDEST
00000263: POP
00000264: PUSH2 0x024f
00000267: PUSH2 0x0271
0000026a: CALLDATASIZE
0000026b: PUSH1 0x04
0000026d: PUSH2 0x215b
00000270: JUMP
00000271: JUMPDEST
00000272: PUSH2 0x078c
00000275: JUMP
00000276: JUMPDEST
00000277: CALLVALUE
00000278: DUP1
00000279: ISZERO
0000027a: PUSH2 0x0282
0000027d: JUMPI
0000027e: PUSH1 0x00
00000280: DUP1
00000281: REVERT
00000282: JUMPDEST
00000283: POP
00000284: PUSH2 0x024f
00000287: PUSH2 0x0291
0000028a: CALLDATASIZE
0000028b: PUSH1 0x04
0000028d: PUSH2 0x21e0
00000290: JUMP
00000291: JUMPDEST
00000292: PUSH2 0x07d6
00000295: JUMP
00000296: JUMPDEST
00000297: CALLVALUE
00000298: DUP1
00000299: ISZERO
0000029a: PUSH2 0x02a2
0000029d: JUMPI
0000029e: PUSH1 0x00
000002a0: DUP1
000002a1: REVERT
000002a2: JUMPDEST
000002a3: POP
000002a4: PUSH1 0x0a
000002a6: SLOAD
000002a7: PUSH2 0x02b6
000002aa: SWAP1
000002ab: PUSH1 0x01
000002ad: PUSH1 0x01
000002af: PUSH1 0xa0
000002b1: SHL
000002b2: SUB
000002b3: AND
000002b4: DUP2
000002b5: JUMP
000002b6: JUMPDEST
000002b7: PUSH1 0x40
000002b9: MLOAD
000002ba: PUSH1 0x01
000002bc: PUSH1 0x01
000002be: PUSH1 0xa0
000002c0: SHL
000002c1: SUB
000002c2: SWAP1
000002c3: SWAP2
000002c4: AND
000002c5: DUP2
000002c6: MSTORE
000002c7: PUSH1 0x20
000002c9: ADD
000002ca: JUMPDEST
000002cb: PUSH1 0x40
000002cd: MLOAD
000002ce: DUP1
000002cf: SWAP2
000002d0: SUB
000002d1: SWAP1
000002d2: RETURN
000002d3: JUMPDEST
000002d4: CALLVALUE
000002d5: DUP1
000002d6: ISZERO
000002d7: PUSH2 0x02df
000002da: JUMPI
000002db: PUSH1 0x00
000002dd: DUP1
000002de: REVERT
000002df: JUMPDEST
000002e0: POP
000002e1: PUSH2 0x0303
000002e4: PUSH2 0x02ee
000002e7: CALLDATASIZE
000002e8: PUSH1 0x04
000002ea: PUSH2 0x2241
000002ed: JUMP
000002ee: JUMPDEST
000002ef: PUSH1 0x09
000002f1: PUSH1 0x20
000002f3: MSTORE
000002f4: PUSH1 0x00
000002f6: SWAP1
000002f7: DUP2
000002f8: MSTORE
000002f9: PUSH1 0x40
000002fb: SWAP1
000002fc: KECCAK256
000002fd: SLOAD
000002fe: PUSH1 0xff
00000300: AND
00000301: DUP2
00000302: JUMP
00000303: JUMPDEST
00000304: PUSH1 0x40
00000306: MLOAD
00000307: SWAP1
00000308: ISZERO
00000309: ISZERO
0000030a: DUP2
0000030b: MSTORE
0000030c: PUSH1 0x20
0000030e: ADD
0000030f: PUSH2 0x02ca
00000312: JUMP
00000313: JUMPDEST
00000314: PUSH2 0x024f
00000317: PUSH2 0x0321
0000031a: CALLDATASIZE
0000031b: PUSH1 0x04
0000031d: PUSH2 0x225e
00000320: JUMP
00000321: JUMPDEST
00000322: PUSH2 0x0844
00000325: JUMP
00000326: JUMPDEST
00000327: CALLVALUE
00000328: DUP1
00000329: ISZERO
0000032a: PUSH2 0x0332
0000032d: JUMPI
0000032e: PUSH1 0x00
00000330: DUP1
00000331: REVERT
00000332: JUMPDEST
00000333: POP
00000334: PUSH2 0x033c
00000337: PUSH2 0x0dac
0000033a: DUP2
0000033b: JUMP
0000033c: JUMPDEST
0000033d: PUSH1 0x40
0000033f: MLOAD
00000340: SWAP1
00000341: DUP2
00000342: MSTORE
00000343: PUSH1 0x20
00000345: ADD
00000346: PUSH2 0x02ca
00000349: JUMP
0000034a: JUMPDEST
0000034b: CALLVALUE
0000034c: DUP1
0000034d: ISZERO
0000034e: PUSH2 0x0356
00000351: JUMPI
00000352: PUSH1 0x00
00000354: DUP1
00000355: REVERT
00000356: JUMPDEST
00000357: POP
00000358: PUSH2 0x0303
0000035b: PUSH2 0x0365
0000035e: CALLDATASIZE
0000035f: PUSH1 0x04
00000361: PUSH2 0x2277
00000364: JUMP
00000365: JUMPDEST
00000366: PUSH2 0x09ea
00000369: JUMP
0000036a: JUMPDEST
0000036b: CALLVALUE
0000036c: DUP1
0000036d: ISZERO
0000036e: PUSH2 0x0376
00000371: JUMPI
00000372: PUSH1 0x00
00000374: DUP1
00000375: REVERT
00000376: JUMPDEST
00000377: POP
00000378: PUSH2 0x024f
0000037b: PUSH2 0x0385
0000037e: CALLDATASIZE
0000037f: PUSH1 0x04
00000381: PUSH2 0x22a7
00000384: JUMP
00000385: JUMPDEST
00000386: PUSH2 0x0a4e
00000389: JUMP
0000038a: JUMPDEST
0000038b: CALLVALUE
0000038c: DUP1
0000038d: ISZERO
0000038e: PUSH2 0x0396
00000391: JUMPI
00000392: PUSH1 0x00
00000394: DUP1
00000395: REVERT
00000396: JUMPDEST
00000397: POP
00000398: PUSH2 0x033c
0000039b: PUSH2 0x03a5
0000039e: CALLDATASIZE
0000039f: PUSH1 0x04
000003a1: PUSH2 0x225e
000003a4: JUMP
000003a5: JUMPDEST
000003a6: PUSH1 0x08
000003a8: PUSH1 0x20
000003aa: MSTORE
000003ab: PUSH1 0x00
000003ad: SWAP1
000003ae: DUP2
000003af: MSTORE
000003b0: PUSH1 0x40
000003b2: SWAP1
000003b3: KECCAK256
000003b4: SLOAD
000003b5: DUP2
000003b6: JUMP
000003b7: JUMPDEST
000003b8: CALLVALUE
000003b9: DUP1
000003ba: ISZERO
000003bb: PUSH2 0x03c3
000003be: JUMPI
000003bf: PUSH1 0x00
000003c1: DUP1
000003c2: REVERT
000003c3: JUMPDEST
000003c4: POP
000003c5: PUSH2 0x033c
000003c8: PUSH2 0x03d2
000003cb: CALLDATASIZE
000003cc: PUSH1 0x04
000003ce: PUSH2 0x225e
000003d1: JUMP
000003d2: JUMPDEST
000003d3: PUSH1 0x04
000003d5: PUSH1 0x20
000003d7: MSTORE
000003d8: PUSH1 0x00
000003da: SWAP1
000003db: DUP2
000003dc: MSTORE
000003dd: PUSH1 0x40
000003df: SWAP1
000003e0: KECCAK256
000003e1: SLOAD
000003e2: DUP2
000003e3: JUMP
000003e4: JUMPDEST
000003e5: CALLVALUE
000003e6: DUP1
000003e7: ISZERO
000003e8: PUSH2 0x03f0
000003eb: JUMPI
000003ec: PUSH1 0x00
000003ee: DUP1
000003ef: REVERT
000003f0: JUMPDEST
000003f1: POP
000003f2: PUSH2 0x033c
000003f5: PUSH1 0x01
000003f7: SLOAD
000003f8: DUP2
000003f9: JUMP
000003fa: JUMPDEST
000003fb: CALLVALUE
000003fc: DUP1
000003fd: ISZERO
000003fe: PUSH2 0x0406
00000401: JUMPI
00000402: PUSH1 0x00
00000404: DUP1
00000405: REVERT
00000406: JUMPDEST
00000407: POP
00000408: PUSH2 0x024f
0000040b: PUSH2 0x0a6f
0000040e: JUMP
0000040f: JUMPDEST
00000410: CALLVALUE
00000411: DUP1
00000412: ISZERO
00000413: PUSH2 0x041b
00000416: JUMPI
00000417: PUSH1 0x00
00000419: DUP1
0000041a: REVERT
0000041b: JUMPDEST
0000041c: POP
0000041d: PUSH2 0x024f
00000420: PUSH2 0x042a
00000423: CALLDATASIZE
00000424: PUSH1 0x04
00000426: PUSH2 0x225e
00000429: JUMP
0000042a: JUMPDEST
0000042b: PUSH2 0x0a81
0000042e: JUMP
0000042f: JUMPDEST
00000430: CALLVALUE
00000431: DUP1
00000432: ISZERO
00000433: PUSH2 0x043b
00000436: JUMPI
00000437: PUSH1 0x00
00000439: DUP1
0000043a: REVERT
0000043b: JUMPDEST
0000043c: POP
0000043d: PUSH1 0x02
0000043f: SLOAD
00000440: PUSH2 0x02b6
00000443: SWAP1
00000444: PUSH1 0x01
00000446: PUSH1 0x01
00000448: PUSH1 0xa0
0000044a: SHL
0000044b: SUB
0000044c: AND
0000044d: DUP2
0000044e: JUMP
0000044f: JUMPDEST
00000450: PUSH2 0x024f
00000453: PUSH2 0x045d
00000456: CALLDATASIZE
00000457: PUSH1 0x04
00000459: PUSH2 0x22fe
0000045c: JUMP
0000045d: JUMPDEST
0000045e: PUSH2 0x0aa2
00000461: JUMP
00000462: JUMPDEST
00000463: CALLVALUE
00000464: DUP1
00000465: ISZERO
00000466: PUSH2 0x046e
00000469: JUMPI
0000046a: PUSH1 0x00
0000046c: DUP1
0000046d: REVERT
0000046e: JUMPDEST
0000046f: POP
00000470: PUSH2 0x033c
00000473: PUSH2 0x0ac1
00000476: JUMP
00000477: JUMPDEST
00000478: CALLVALUE
00000479: DUP1
0000047a: ISZERO
0000047b: PUSH2 0x0483
0000047e: JUMPI
0000047f: PUSH1 0x00
00000481: DUP1
00000482: REVERT
00000483: JUMPDEST
00000484: POP
00000485: PUSH2 0x024f
00000488: PUSH2 0x0492
0000048b: CALLDATASIZE
0000048c: PUSH1 0x04
0000048e: PUSH2 0x23c2
00000491: JUMP
00000492: JUMPDEST
00000493: PUSH2 0x0ade
00000496: JUMP
00000497: JUMPDEST
00000498: CALLVALUE
00000499: DUP1
0000049a: ISZERO
0000049b: PUSH2 0x04a3
0000049e: JUMPI
0000049f: PUSH1 0x00
000004a1: DUP1
000004a2: REVERT
000004a3: JUMPDEST
000004a4: POP
000004a5: PUSH1 0x00
000004a7: DUP1
000004a8: MLOAD
000004a9: PUSH1 0x20
000004ab: PUSH2 0x2646
000004ae: DUP4
000004af: CODECOPY
000004b0: DUP2
000004b1: MLOAD
000004b2: SWAP2
000004b3: MSTORE
000004b4: SLOAD
000004b5: PUSH1 0xff
000004b7: AND
000004b8: PUSH2 0x0303
000004bb: JUMP
000004bc: JUMPDEST
000004bd: CALLVALUE
000004be: DUP1
000004bf: ISZERO
000004c0: PUSH2 0x04c8
000004c3: JUMPI
000004c4: PUSH1 0x00
000004c6: DUP1
000004c7: REVERT
000004c8: JUMPDEST
000004c9: POP
000004ca: PUSH2 0x024f
000004cd: PUSH2 0x0c20
000004d0: JUMP
000004d1: JUMPDEST
000004d2: CALLVALUE
000004d3: DUP1
000004d4: ISZERO
000004d5: PUSH2 0x04dd
000004d8: JUMPI
000004d9: PUSH1 0x00
000004db: DUP1
000004dc: REVERT
000004dd: JUMPDEST
000004de: POP
000004df: PUSH2 0x024f
000004e2: PUSH2 0x04ec
000004e5: CALLDATASIZE
000004e6: PUSH1 0x04
000004e8: PUSH2 0x23e4
000004eb: JUMP
000004ec: JUMPDEST
000004ed: PUSH2 0x0c28
000004f0: JUMP
000004f1: JUMPDEST
000004f2: CALLVALUE
000004f3: DUP1
000004f4: ISZERO
000004f5: PUSH2 0x04fd
000004f8: JUMPI
000004f9: PUSH1 0x00
000004fb: DUP1
000004fc: REVERT
000004fd: JUMPDEST
000004fe: POP
000004ff: PUSH2 0x024f
00000502: PUSH2 0x0c63
00000505: JUMP
00000506: JUMPDEST
00000507: CALLVALUE
00000508: DUP1
00000509: ISZERO
0000050a: PUSH2 0x0512
0000050d: JUMPI
0000050e: PUSH1 0x00
00000510: DUP1
00000511: REVERT
00000512: JUMPDEST
00000513: POP
00000514: PUSH2 0x033c
00000517: PUSH2 0x0521
0000051a: CALLDATASIZE
0000051b: PUSH1 0x04
0000051d: PUSH2 0x225e
00000520: JUMP
00000521: JUMPDEST
00000522: PUSH1 0x03
00000524: PUSH1 0x20
00000526: MSTORE
00000527: PUSH1 0x00
00000529: SWAP1
0000052a: DUP2
0000052b: MSTORE
0000052c: PUSH1 0x40
0000052e: SWAP1
0000052f: KECCAK256
00000530: SLOAD
00000531: DUP2
00000532: JUMP
00000533: JUMPDEST
00000534: CALLVALUE
00000535: DUP1
00000536: ISZERO
00000537: PUSH2 0x053f
0000053a: JUMPI
0000053b: PUSH1 0x00
0000053d: DUP1
0000053e: REVERT
0000053f: JUMPDEST
00000540: POP
00000541: PUSH2 0x033c
00000544: PUSH1 0x00
00000546: SLOAD
00000547: DUP2
00000548: JUMP
00000549: JUMPDEST
0000054a: CALLVALUE
0000054b: DUP1
0000054c: ISZERO
0000054d: PUSH2 0x0555
00000550: JUMPI
00000551: PUSH1 0x00
00000553: DUP1
00000554: REVERT
00000555: JUMPDEST
00000556: POP
00000557: PUSH2 0x024f
0000055a: PUSH2 0x0cb0
0000055d: JUMP
0000055e: JUMPDEST
0000055f: CALLVALUE
00000560: DUP1
00000561: ISZERO
00000562: PUSH2 0x056a
00000565: JUMPI
00000566: PUSH1 0x00
00000568: DUP1
00000569: REVERT
0000056a: JUMPDEST
0000056b: POP
0000056c: PUSH2 0x02b6
0000056f: PUSH2 0x0cc0
00000572: JUMP
00000573: JUMPDEST
00000574: CALLVALUE
00000575: DUP1
00000576: ISZERO
00000577: PUSH2 0x057f
0000057a: JUMPI
0000057b: PUSH1 0x00
0000057d: DUP1
0000057e: REVERT
0000057f: JUMPDEST
00000580: POP
00000581: PUSH2 0x024f
00000584: PUSH2 0x058e
00000587: CALLDATASIZE
00000588: PUSH1 0x04
0000058a: PUSH2 0x2241
0000058d: JUMP
0000058e: JUMPDEST
0000058f: PUSH2 0x0cf5
00000592: JUMP
00000593: JUMPDEST
00000594: CALLVALUE
00000595: DUP1
00000596: ISZERO
00000597: PUSH2 0x059f
0000059a: JUMPI
0000059b: PUSH1 0x00
0000059d: DUP1
0000059e: REVERT
0000059f: JUMPDEST
000005a0: POP
000005a1: PUSH2 0x033c
000005a4: PUSH2 0x05ae
000005a7: CALLDATASIZE
000005a8: PUSH1 0x04
000005aa: PUSH2 0x225e
000005ad: JUMP
000005ae: JUMPDEST
000005af: PUSH1 0x07
000005b1: PUSH1 0x20
000005b3: MSTORE
000005b4: PUSH1 0x00
000005b6: SWAP1
000005b7: DUP2
000005b8: MSTORE
000005b9: PUSH1 0x40
000005bb: SWAP1
000005bc: KECCAK256
000005bd: SLOAD
000005be: DUP2
000005bf: JUMP
000005c0: JUMPDEST
000005c1: CALLVALUE
000005c2: DUP1
000005c3: ISZERO
000005c4: PUSH2 0x05cc
000005c7: JUMPI
000005c8: PUSH1 0x00
000005ca: DUP1
000005cb: REVERT
000005cc: JUMPDEST
000005cd: POP
000005ce: PUSH2 0x0303
000005d1: PUSH2 0x05db
000005d4: CALLDATASIZE
000005d5: PUSH1 0x04
000005d7: PUSH2 0x2409
000005da: JUMP
000005db: JUMPDEST
000005dc: PUSH1 0x00
000005de: SWAP1
000005df: DUP2
000005e0: MSTORE
000005e1: PUSH1 0x04
000005e3: PUSH1 0x20
000005e5: SWAP1
000005e6: DUP2
000005e7: MSTORE
000005e8: PUSH1 0x40
000005ea: DUP1
000005eb: DUP4
000005ec: KECCAK256
000005ed: PUSH1 0x01
000005ef: PUSH1 0x01
000005f1: PUSH1 0xa0
000005f3: SHL
000005f4: SUB
000005f5: SWAP5
000005f6: SWAP1
000005f7: SWAP5
000005f8: AND
000005f9: DUP4
000005fa: MSTORE
000005fb: PUSH1 0x01
000005fd: SWAP1
000005fe: SWAP4
000005ff: ADD
00000600: SWAP1
00000601: MSTORE
00000602: KECCAK256
00000603: SLOAD
00000604: PUSH1 0xff
00000606: AND
00000607: SWAP1
00000608: JUMP
00000609: JUMPDEST
0000060a: CALLVALUE
0000060b: DUP1
0000060c: ISZERO
0000060d: PUSH2 0x0615
00000610: JUMPI
00000611: PUSH1 0x00
00000613: DUP1
00000614: REVERT
00000615: JUMPDEST
00000616: POP
00000617: PUSH2 0x063a
0000061a: PUSH1 0x40
0000061c: MLOAD
0000061d: DUP1
0000061e: PUSH1 0x40
00000620: ADD
00000621: PUSH1 0x40
00000623: MSTORE
00000624: DUP1
00000625: PUSH1 0x05
00000627: DUP2
00000628: MSTORE
00000629: PUSH1 0x20
0000062b: ADD
0000062c: PUSH5 0x0352e302e3
00000632: PUSH1 0xdc
00000634: SHL
00000635: DUP2
00000636: MSTORE
00000637: POP
00000638: DUP2
00000639: JUMP
0000063a: JUMPDEST
0000063b: PUSH1 0x40
0000063d: MLOAD
0000063e: PUSH2 0x02ca
00000641: SWAP2
00000642: SWAP1
00000643: PUSH2 0x2459
00000646: JUMP
00000647: JUMPDEST
00000648: CALLVALUE
00000649: DUP1
0000064a: ISZERO
0000064b: PUSH2 0x0653
0000064e: JUMPI
0000064f: PUSH1 0x00
00000651: DUP1
00000652: REVERT
00000653: JUMPDEST
00000654: POP
00000655: PUSH2 0x024f
00000658: PUSH2 0x0662
0000065b: CALLDATASIZE
0000065c: PUSH1 0x04
0000065e: PUSH2 0x2241
00000661: JUMP
00000662: JUMPDEST
00000663: PUSH2 0x0d27
00000666: JUMP
00000667: JUMPDEST
00000668: CALLVALUE
00000669: DUP1
0000066a: ISZERO
0000066b: PUSH2 0x0673
0000066e: JUMPI
0000066f: PUSH1 0x00
00000671: DUP1
00000672: REVERT
00000673: JUMPDEST
00000674: POP
00000675: PUSH2 0x024f
00000678: PUSH2 0x0682
0000067b: CALLDATASIZE
0000067c: PUSH1 0x04
0000067e: PUSH2 0x248c
00000681: JUMP
00000682: JUMPDEST
00000683: PUSH2 0x0d51
00000686: JUMP
00000687: JUMPDEST
00000688: CALLVALUE
00000689: DUP1
0000068a: ISZERO
0000068b: PUSH2 0x0693
0000068e: JUMPI
0000068f: PUSH1 0x00
00000691: DUP1
00000692: REVERT
00000693: JUMPDEST
00000694: POP
00000695: PUSH2 0x024f
00000698: PUSH2 0x06a2
0000069b: CALLDATASIZE
0000069c: PUSH1 0x04
0000069e: PUSH2 0x24b8
000006a1: JUMP
000006a2: JUMPDEST
000006a3: PUSH2 0x0eca
000006a6: JUMP
000006a7: JUMPDEST
000006a8: CALLVALUE
000006a9: DUP1
000006aa: ISZERO
000006ab: PUSH2 0x06b3
000006ae: JUMPI
000006af: PUSH1 0x00
000006b1: DUP1
000006b2: REVERT
000006b3: JUMPDEST
000006b4: POP
000006b5: PUSH2 0x0303
000006b8: PUSH2 0x06c2
000006bb: CALLDATASIZE
000006bc: PUSH1 0x04
000006be: PUSH2 0x225e
000006c1: JUMP
000006c2: JUMPDEST
000006c3: PUSH1 0x05
000006c5: PUSH1 0x20
000006c7: MSTORE
000006c8: PUSH1 0x00
000006ca: SWAP1
000006cb: DUP2
000006cc: MSTORE
000006cd: PUSH1 0x40
000006cf: SWAP1
000006d0: KECCAK256
000006d1: SLOAD
000006d2: PUSH1 0xff
000006d4: AND
000006d5: DUP2
000006d6: JUMP
000006d7: JUMPDEST
000006d8: CALLVALUE
000006d9: DUP1
000006da: ISZERO
000006db: PUSH2 0x06e3
000006de: JUMPI
000006df: PUSH1 0x00
000006e1: DUP1
000006e2: REVERT
000006e3: JUMPDEST
000006e4: POP
000006e5: PUSH2 0x024f
000006e8: PUSH2 0x06f2
000006eb: CALLDATASIZE
000006ec: PUSH1 0x04
000006ee: PUSH2 0x252c
000006f1: JUMP
000006f2: JUMPDEST
000006f3: PUSH2 0x0ffa
000006f6: JUMP
000006f7: JUMPDEST
000006f8: CALLVALUE
000006f9: DUP1
000006fa: ISZERO
000006fb: PUSH2 0x0703
000006fe: JUMPI
000006ff: PUSH1 0x00
00000701: DUP1
00000702: REVERT
00000703: JUMPDEST
00000704: POP
00000705: PUSH2 0x02b6
00000708: PUSH2 0x11dc
0000070b: JUMP
0000070c: JUMPDEST
0000070d: CALLVALUE
0000070e: DUP1
0000070f: ISZERO
00000710: PUSH2 0x0718
00000713: JUMPI
00000714: PUSH1 0x00
00000716: DUP1
00000717: REVERT
00000718: JUMPDEST
00000719: POP
0000071a: PUSH2 0x0303
0000071d: PUSH2 0x0727
00000720: CALLDATASIZE
00000721: PUSH1 0x04
00000723: PUSH2 0x256f
00000726: JUMP
00000727: JUMPDEST
00000728: PUSH2 0x1205
0000072b: JUMP
0000072c: JUMPDEST
0000072d: CALLVALUE
0000072e: DUP1
0000072f: ISZERO
00000730: PUSH2 0x0738
00000733: JUMPI
00000734: PUSH1 0x00
00000736: DUP1
00000737: REVERT
00000738: JUMPDEST
00000739: POP
0000073a: PUSH2 0x024f
0000073d: PUSH2 0x0747
00000740: CALLDATASIZE
00000741: PUSH1 0x04
00000743: PUSH2 0x2409
00000746: JUMP
00000747: JUMPDEST
00000748: PUSH2 0x127d
0000074b: JUMP
0000074c: JUMPDEST
0000074d: CALLVALUE
0000074e: DUP1
0000074f: ISZERO
00000750: PUSH2 0x0758
00000753: JUMPI
00000754: PUSH1 0x00
00000756: DUP1
00000757: REVERT
00000758: JUMPDEST
00000759: POP
0000075a: PUSH2 0x024f
0000075d: PUSH2 0x0767
00000760: CALLDATASIZE
00000761: PUSH1 0x04
00000763: PUSH2 0x2241
00000766: JUMP
00000767: JUMPDEST
00000768: PUSH2 0x12fe
0000076b: JUMP
0000076c: JUMPDEST
0000076d: CALLVALUE
0000076e: DUP1
0000076f: ISZERO
00000770: PUSH2 0x0778
00000773: JUMPI
00000774: PUSH1 0x00
00000776: DUP1
00000777: REVERT
00000778: JUMPDEST
00000779: POP
0000077a: PUSH1 0x0b
0000077c: SLOAD
0000077d: PUSH2 0x02b6
00000780: SWAP1
00000781: PUSH1 0x01
00000783: PUSH1 0x01
00000785: PUSH1 0xa0
00000787: SHL
00000788: SUB
00000789: AND
0000078a: DUP2
0000078b: JUMP
0000078c: JUMPDEST
0000078d: PUSH2 0x0794
00000790: PUSH2 0x1383
00000793: JUMP
00000794: JUMPDEST
00000795: PUSH2 0x079c
00000798: PUSH2 0x13b5
0000079b: JUMP
0000079c: JUMPDEST
0000079d: PUSH1 0x00
0000079f: DUP4
000007a0: DUP2
000007a1: MSTORE
000007a2: PUSH1 0x03
000007a4: PUSH1 0x20
000007a6: SWAP1
000007a7: DUP2
000007a8: MSTORE
000007a9: PUSH1 0x40
000007ab: DUP1
000007ac: DUP4
000007ad: KECCAK256
000007ae: SWAP5
000007af: SWAP1
000007b0: SWAP5
000007b1: SSTORE
000007b2: PUSH1 0x01
000007b4: PUSH1 0x01
000007b6: PUSH1 0xa0
000007b8: SHL
000007b9: SUB
000007ba: SWAP1
000007bb: SWAP5
000007bc: AND
000007bd: DUP2
000007be: MSTORE
000007bf: PUSH1 0x09
000007c1: SWAP1
000007c2: SWAP4
000007c3: MSTORE
000007c4: SWAP2
000007c5: KECCAK256
000007c6: DUP1
000007c7: SLOAD
000007c8: PUSH1 0xff
000007ca: NOT
000007cb: AND
000007cc: SWAP2
000007cd: ISZERO
000007ce: ISZERO
000007cf: SWAP2
000007d0: SWAP1
000007d1: SWAP2
000007d2: OR
000007d3: SWAP1
000007d4: SSTORE
000007d5: JUMP
000007d6: JUMPDEST
000007d7: PUSH2 0x07de
000007da: PUSH2 0x1383
000007dd: JUMP
000007de: JUMPDEST
000007df: PUSH2 0x07e6
000007e2: PUSH2 0x13b5
000007e5: JUMP
000007e6: JUMPDEST
000007e7: PUSH1 0x01
000007e9: PUSH1 0x00
000007eb: DUP2
000007ec: SLOAD
000007ed: PUSH2 0x07f5
000007f0: SWAP1
000007f1: PUSH2 0x2596
000007f4: JUMP
000007f5: JUMPDEST
000007f6: SWAP1
000007f7: SWAP2
000007f8: SSTORE
000007f9: POP
000007fa: PUSH2 0x0804
000007fd: DUP4
000007fe: DUP4
000007ff: DUP4
00000800: PUSH2 0x13e5
00000803: JUMP
00000804: JUMPDEST
00000805: PUSH32 0xc87531a8794b7668ea5cd9c048cc263ca871d574d59447d962356dd34d5f8de7
00000826: PUSH1 0x01
00000828: SLOAD
00000829: PUSH1 0x40
0000082b: MLOAD
0000082c: PUSH2 0x0837
0000082f: SWAP2
00000830: DUP2
00000831: MSTORE
00000832: PUSH1 0x20
00000834: ADD
00000835: SWAP1
00000836: JUMP
00000837: JUMPDEST
00000838: PUSH1 0x40
0000083a: MLOAD
0000083b: DUP1
0000083c: SWAP2
0000083d: SUB
0000083e: SWAP1
0000083f: LOG1
00000840: POP
00000841: POP
00000842: POP
00000843: JUMP
00000844: JUMPDEST
00000845: PUSH2 0x084c
00000848: PUSH2 0x1577
0000084b: JUMP
0000084c: JUMPDEST
0000084d: CALLVALUE
0000084e: PUSH1 0x00
00000850: DUP2
00000851: SWAP1
00000852: SUB
00000853: PUSH2 0x086f
00000856: JUMPI
00000857: PUSH1 0x40
00000859: MLOAD
0000085a: PUSH4 0x1f2a2005
0000085f: PUSH1 0xe0
00000861: SHL
00000862: DUP2
00000863: MSTORE
00000864: PUSH1 0x04
00000866: ADD
00000867: PUSH1 0x40
00000869: MLOAD
0000086a: DUP1
0000086b: SWAP2
0000086c: SUB
0000086d: SWAP1
0000086e: REVERT
0000086f: JUMPDEST
00000870: DUP2
00000871: PUSH2 0x088d
00000874: JUMPI
00000875: PUSH1 0x40
00000877: MLOAD
00000878: PUSH4 0xd92e233d
0000087d: PUSH1 0xe0
0000087f: SHL
00000880: DUP2
00000881: MSTORE
00000882: PUSH1 0x04
00000884: ADD
00000885: PUSH1 0x40
00000887: MLOAD
00000888: DUP1
00000889: SWAP2
0000088a: SUB
0000088b: SWAP1
0000088c: REVERT
0000088d: JUMPDEST
0000088e: PUSH1 0x02
00000890: SLOAD
00000891: PUSH1 0x01
00000893: PUSH1 0x01
00000895: PUSH1 0xa0
00000897: SHL
00000898: SUB
00000899: AND
0000089a: PUSH1 0x00
0000089c: SWAP1
0000089d: DUP2
0000089e: MSTORE
0000089f: PUSH1 0x03
000008a1: PUSH1 0x20
000008a3: MSTORE
000008a4: PUSH1 0x40
000008a6: DUP2
000008a7: KECCAK256
000008a8: SLOAD
000008a9: SWAP1
000008aa: DUP2
000008ab: SWAP1
000008ac: SUB
000008ad: PUSH2 0x08c9
000008b0: JUMPI
000008b1: PUSH1 0x40
000008b3: MLOAD
000008b4: PUSH4 0x4617192b
000008b9: PUSH1 0xe0
000008bb: SHL
000008bc: DUP2
000008bd: MSTORE
000008be: PUSH1 0x04
000008c0: ADD
000008c1: PUSH1 0x40
000008c3: MLOAD
000008c4: DUP1
000008c5: SWAP2
000008c6: SUB
000008c7: SWAP1
000008c8: REVERT
000008c9: JUMPDEST
000008ca: PUSH1 0x02
000008cc: SLOAD
000008cd: PUSH2 0x08df
000008d0: SWAP1
000008d1: PUSH1 0x01
000008d3: PUSH1 0x01
000008d5: PUSH1 0xa0
000008d7: SHL
000008d8: SUB
000008d9: AND
000008da: DUP4
000008db: PUSH2 0x15a8
000008de: JUMP
000008df: JUMPDEST
000008e0: PUSH1 0x02
000008e2: SLOAD
000008e3: PUSH1 0x40
000008e5: DUP1
000008e6: MLOAD
000008e7: PUSH1 0x04
000008e9: DUP2
000008ea: MSTORE
000008eb: PUSH1 0x24
000008ed: DUP2
000008ee: ADD
000008ef: DUP3
000008f0: MSTORE
000008f1: PUSH1 0x20
000008f3: DUP2
000008f4: ADD
000008f5: DUP1
000008f6: MLOAD
000008f7: PUSH1 0x01
000008f9: PUSH1 0x01
000008fb: PUSH1 0xe0
000008fd: SHL
000008fe: SUB
000008ff: AND
00000900: PUSH4 0x0d0e30db
00000905: PUSH1 0xe4
00000907: SHL
00000908: OR
00000909: SWAP1
0000090a: MSTORE
0000090b: SWAP1
0000090c: MLOAD
0000090d: PUSH1 0x00
0000090f: SWAP3
00000910: PUSH1 0x01
00000912: PUSH1 0x01
00000914: PUSH1 0xa0
00000916: SHL
00000917: SUB
00000918: AND
00000919: SWAP2
0000091a: DUP6
0000091b: SWAP2
0000091c: PUSH2 0x0925
0000091f: SWAP2
00000920: SWAP1
00000921: PUSH2 0x25bd
00000924: JUMP
00000925: JUMPDEST
00000926: PUSH1 0x00
00000928: PUSH1 0x40
0000092a: MLOAD
0000092b: DUP1
0000092c: DUP4
0000092d: SUB
0000092e: DUP2
0000092f: DUP6
00000930: DUP8
00000931: GAS
00000932: CALL
00000933: SWAP3
00000934: POP
00000935: POP
00000936: POP
00000937: RETURNDATASIZE
00000938: DUP1
00000939: PUSH1 0x00
0000093b: DUP2
0000093c: EQ
0000093d: PUSH2 0x0962
00000940: JUMPI
00000941: PUSH1 0x40
00000943: MLOAD
00000944: SWAP2
00000945: POP
00000946: PUSH1 0x1f
00000948: NOT
00000949: PUSH1 0x3f
0000094b: RETURNDATASIZE
0000094c: ADD
0000094d: AND
0000094e: DUP3
0000094f: ADD
00000950: PUSH1 0x40
00000952: MSTORE
00000953: RETURNDATASIZE
00000954: DUP3
00000955: MSTORE
00000956: RETURNDATASIZE
00000957: PUSH1 0x00
00000959: PUSH1 0x20
0000095b: DUP5
0000095c: ADD
0000095d: RETURNDATACOPY
0000095e: PUSH2 0x0967
00000961: JUMP
00000962: JUMPDEST
00000963: PUSH1 0x60
00000965: SWAP2
00000966: POP
00000967: JUMPDEST
00000968: POP
00000969: POP
0000096a: SWAP1
0000096b: POP
0000096c: DUP1
0000096d: PUSH2 0x0989
00000970: JUMPI
00000971: PUSH1 0x40
00000973: MLOAD
00000974: PUSH4 0x1327200b
00000979: PUSH1 0xe1
0000097b: SHL
0000097c: DUP2
0000097d: MSTORE
0000097e: PUSH1 0x04
00000980: ADD
00000981: PUSH1 0x40
00000983: MLOAD
00000984: DUP1
00000985: SWAP2
00000986: SUB
00000987: SWAP1
00000988: REVERT
00000989: JUMPDEST
0000098a: DUP4
0000098b: DUP3
0000098c: PUSH1 0x01
0000098e: SLOAD
0000098f: PUSH32 0xfdf694002d1fd250bd203ab8546c215351d1ca210decb2b29d4e4496dab885f3
000009b0: DUP7
000009b1: PUSH1 0x00
000009b3: SLOAD
000009b4: PUSH1 0x40
000009b6: MLOAD
000009b7: PUSH2 0x09ca
000009ba: SWAP3
000009bb: SWAP2
000009bc: SWAP1
000009bd: SWAP2
000009be: DUP3
000009bf: MSTORE
000009c0: PUSH1 0x20
000009c2: DUP3
000009c3: ADD
000009c4: MSTORE
000009c5: PUSH1 0x40
000009c7: ADD
000009c8: SWAP1
000009c9: JUMP
000009ca: JUMPDEST
000009cb: PUSH1 0x40
000009cd: MLOAD
000009ce: DUP1
000009cf: SWAP2
000009d0: SUB
000009d1: SWAP1
000009d2: LOG4
000009d3: PUSH1 0x00
000009d5: DUP1
000009d6: DUP2
000009d7: SLOAD
000009d8: PUSH2 0x09e0
000009db: SWAP1
000009dc: PUSH2 0x2596
000009df: JUMP
000009e0: JUMPDEST
000009e1: SWAP1
000009e2: SWAP2
000009e3: SSTORE
000009e4: POP
000009e5: POP
000009e6: POP
000009e7: POP
000009e8: POP
000009e9: JUMP
000009ea: JUMPDEST
000009eb: PUSH1 0x00
000009ed: PUSH1 0x06
000009ef: PUSH1 0x00
000009f1: DUP5
000009f2: DUP5
000009f3: PUSH1 0x40
000009f5: MLOAD
000009f6: PUSH1 0x20
000009f8: ADD
000009f9: PUSH2 0x0a1e
000009fc: SWAP3
000009fd: SWAP2
000009fe: SWAP1
000009ff: SWAP2
00000a00: DUP3
00000a01: MSTORE
00000a02: PUSH1 0x60
00000a04: SHL
00000a05: PUSH12 0xffffffffffffffffffffffff
00000a12: NOT
00000a13: AND
00000a14: PUSH1 0x20
00000a16: DUP3
00000a17: ADD
00000a18: MSTORE
00000a19: PUSH1 0x34
00000a1b: ADD
00000a1c: SWAP1
00000a1d: JUMP
00000a1e: JUMPDEST
00000a1f: PUSH1 0x40
00000a21: DUP1
00000a22: MLOAD
00000a23: DUP1
00000a24: DUP4
00000a25: SUB
00000a26: PUSH1 0x1f
00000a28: NOT
00000a29: ADD
00000a2a: DUP2
00000a2b: MSTORE
00000a2c: SWAP2
00000a2d: DUP2
00000a2e: MSTORE
00000a2f: DUP2
00000a30: MLOAD
00000a31: PUSH1 0x20
00000a33: SWAP3
00000a34: DUP4
00000a35: ADD
00000a36: KECCAK256
00000a37: DUP4
00000a38: MSTORE
00000a39: SWAP1
00000a3a: DUP3
00000a3b: ADD
00000a3c: SWAP3
00000a3d: SWAP1
00000a3e: SWAP3
00000a3f: MSTORE
00000a40: ADD
00000a41: PUSH1 0x00
00000a43: KECCAK256
00000a44: SLOAD
00000a45: PUSH1 0xff
00000a47: AND
00000a48: SWAP4
00000a49: SWAP3
00000a4a: POP
00000a4b: POP
00000a4c: POP
00000a4d: JUMP
00000a4e: JUMPDEST
00000a4f: PUSH2 0x0a56
00000a52: PUSH2 0x1383
00000a55: JUMP
00000a56: JUMPDEST
00000a57: PUSH2 0x0a6a
00000a5a: PUSH1 0x01
00000a5c: PUSH1 0x01
00000a5e: PUSH1 0xa0
00000a60: SHL
00000a61: SUB
00000a62: DUP5
00000a63: AND
00000a64: DUP4
00000a65: DUP4
00000a66: PUSH2 0x1649
00000a69: JUMP
00000a6a: JUMPDEST
00000a6b: POP
00000a6c: POP
00000a6d: POP
00000a6e: JUMP
00000a6f: JUMPDEST
00000a70: PUSH2 0x0a77
00000a73: PUSH2 0x1383
00000a76: JUMP
00000a77: JUMPDEST
00000a78: PUSH2 0x0a7f
00000a7b: PUSH2 0x16a8
00000a7e: JUMP
00000a7f: JUMPDEST
00000a80: JUMP
00000a81: JUMPDEST
00000a82: PUSH2 0x0a89
00000a85: PUSH2 0x1383
00000a88: JUMP
00000a89: JUMPDEST
00000a8a: PUSH2 0x0a91
00000a8d: PUSH2 0x13b5
00000a90: JUMP
00000a91: JUMPDEST
00000a92: PUSH1 0x00
00000a94: SWAP1
00000a95: DUP2
00000a96: MSTORE
00000a97: PUSH1 0x03
00000a99: PUSH1 0x20
00000a9b: MSTORE
00000a9c: PUSH1 0x40
00000a9e: DUP2
00000a9f: KECCAK256
00000aa0: SSTORE
00000aa1: JUMP
00000aa2: JUMPDEST
00000aa3: PUSH2 0x0aaa
00000aa6: PUSH2 0x1708
00000aa9: JUMP
00000aaa: JUMPDEST
00000aab: PUSH2 0x0ab3
00000aae: DUP3
00000aaf: PUSH2 0x17ad
00000ab2: JUMP
00000ab3: JUMPDEST
00000ab4: PUSH2 0x0abd
00000ab7: DUP3
00000ab8: DUP3
00000ab9: PUSH2 0x17b5
00000abc: JUMP
00000abd: JUMPDEST
00000abe: POP
00000abf: POP
00000ac0: JUMP
00000ac1: JUMPDEST
00000ac2: PUSH1 0x00
00000ac4: PUSH2 0x0acb
00000ac7: PUSH2 0x1872
00000aca: JUMP
00000acb: JUMPDEST
00000acc: POP
00000acd: PUSH1 0x00
00000acf: DUP1
00000ad0: MLOAD
00000ad1: PUSH1 0x20
00000ad3: PUSH2 0x2626
00000ad6: DUP4
00000ad7: CODECOPY
00000ad8: DUP2
00000ad9: MLOAD
00000ada: SWAP2
00000adb: MSTORE
00000adc: SWAP1
00000add: JUMP
00000ade: JUMPDEST
00000adf: PUSH2 0x0ae6
00000ae2: PUSH2 0x1577
00000ae5: JUMP
00000ae6: JUMPDEST
00000ae7: DUP2
00000ae8: PUSH1 0x00
00000aea: SUB
00000aeb: PUSH2 0x0b07
00000aee: JUMPI
00000aef: PUSH1 0x40
00000af1: MLOAD
00000af2: PUSH4 0x1f2a2005
00000af7: PUSH1 0xe0
00000af9: SHL
00000afa: DUP2
00000afb: MSTORE
00000afc: PUSH1 0x04
00000afe: ADD
00000aff: PUSH1 0x40
00000b01: MLOAD
00000b02: DUP1
00000b03: SWAP2
00000b04: SUB
00000b05: SWAP1
00000b06: REVERT
00000b07: JUMPDEST
00000b08: DUP1
00000b09: PUSH2 0x0b25
00000b0c: JUMPI
00000b0d: PUSH1 0x40
00000b0f: MLOAD
00000b10: PUSH4 0xd92e233d
00000b15: PUSH1 0xe0
00000b17: SHL
00000b18: DUP2
00000b19: MSTORE
00000b1a: PUSH1 0x04
00000b1c: ADD
00000b1d: PUSH1 0x40
00000b1f: MLOAD
00000b20: DUP1
00000b21: SWAP2
00000b22: SUB
00000b23: SWAP1
00000b24: REVERT
00000b25: JUMPDEST
00000b26: PUSH1 0x0a
00000b28: SLOAD
00000b29: PUSH1 0x01
00000b2b: PUSH1 0x01
00000b2d: PUSH1 0xa0
00000b2f: SHL
00000b30: SUB
00000b31: AND
00000b32: PUSH2 0x0b4e
00000b35: JUMPI
00000b36: PUSH1 0x40
00000b38: MLOAD
00000b39: PUSH4 0x076b6cfd
00000b3e: PUSH1 0xe2
00000b40: SHL
00000b41: DUP2
00000b42: MSTORE
00000b43: PUSH1 0x04
00000b45: ADD
00000b46: PUSH1 0x40
00000b48: MLOAD
00000b49: DUP1
00000b4a: SWAP2
00000b4b: SUB
00000b4c: SWAP1
00000b4d: REVERT
00000b4e: JUMPDEST
00000b4f: PUSH1 0x0a
00000b51: SLOAD
00000b52: PUSH2 0x0b64
00000b55: SWAP1
00000b56: PUSH1 0x01
00000b58: PUSH1 0x01
00000b5a: PUSH1 0xa0
00000b5c: SHL
00000b5d: SUB
00000b5e: AND
00000b5f: DUP4
00000b60: PUSH2 0x15a8
00000b63: JUMP
00000b64: JUMPDEST
00000b65: PUSH1 0x0a
00000b67: SLOAD
00000b68: PUSH1 0x01
00000b6a: PUSH1 0x01
00000b6c: PUSH1 0xa0
00000b6e: SHL
00000b6f: SUB
00000b70: AND
00000b71: PUSH2 0x0b7c
00000b74: DUP2
00000b75: CALLER
00000b76: ADDRESS
00000b77: DUP7
00000b78: PUSH2 0x18bb
00000b7b: JUMP
00000b7c: JUMPDEST
00000b7d: PUSH1 0x0a
00000b7f: SLOAD
00000b80: PUSH1 0x40
00000b82: MLOAD
00000b83: PUSH4 0x0852cd8d
00000b88: PUSH1 0xe3
00000b8a: SHL
00000b8b: DUP2
00000b8c: MSTORE
00000b8d: PUSH1 0x04
00000b8f: DUP2
00000b90: ADD
00000b91: DUP6
00000b92: SWAP1
00000b93: MSTORE
00000b94: PUSH1 0x01
00000b96: PUSH1 0x01
00000b98: PUSH1 0xa0
00000b9a: SHL
00000b9b: SUB
00000b9c: SWAP1
00000b9d: SWAP2
00000b9e: AND
00000b9f: SWAP1
00000ba0: DUP2
00000ba1: SWAP1
00000ba2: PUSH4 0x42966c68
00000ba7: SWAP1
00000ba8: PUSH1 0x24
00000baa: ADD
00000bab: PUSH1 0x00
00000bad: PUSH1 0x40
00000baf: MLOAD
00000bb0: DUP1
00000bb1: DUP4
00000bb2: SUB
00000bb3: DUP2
00000bb4: PUSH1 0x00
00000bb6: DUP8
00000bb7: DUP1
00000bb8: EXTCODESIZE
00000bb9: ISZERO
00000bba: DUP1
00000bbb: ISZERO
00000bbc: PUSH2 0x0bc4
00000bbf: JUMPI
00000bc0: PUSH1 0x00
00000bc2: DUP1
00000bc3: REVERT
00000bc4: JUMPDEST
00000bc5: POP
00000bc6: GAS
00000bc7: CALL
00000bc8: ISZERO
00000bc9: DUP1
00000bca: ISZERO
00000bcb: PUSH2 0x0bd8
00000bce: JUMPI
00000bcf: RETURNDATASIZE
00000bd0: PUSH1 0x00
00000bd2: DUP1
00000bd3: RETURNDATACOPY
00000bd4: RETURNDATASIZE
00000bd5: PUSH1 0x00
00000bd7: REVERT
00000bd8: JUMPDEST
00000bd9: POP
00000bda: POP
00000bdb: POP
00000bdc: POP
00000bdd: DUP3
00000bde: PUSH1 0x00
00000be0: DUP1
00000be1: SHL
00000be2: PUSH1 0x01
00000be4: SLOAD
00000be5: PUSH32 0xfdf694002d1fd250bd203ab8546c215351d1ca210decb2b29d4e4496dab885f3
00000c06: DUP8
00000c07: PUSH1 0x00
00000c09: SLOAD
00000c0a: PUSH1 0x40
00000c0c: MLOAD
00000c0d: PUSH2 0x09ca
00000c10: SWAP3
00000c11: SWAP2
00000c12: SWAP1
00000c13: SWAP2
00000c14: DUP3
00000c15: MSTORE
00000c16: PUSH1 0x20
00000c18: DUP3
00000c19: ADD
00000c1a: MSTORE
00000c1b: PUSH1 0x40
00000c1d: ADD
00000c1e: SWAP1
00000c1f: JUMP
00000c20: JUMPDEST
00000c21: PUSH2 0x0a7f
00000c24: PUSH2 0x1383
00000c27: JUMP
00000c28: JUMPDEST
00000c29: PUSH2 0x0c30
00000c2c: PUSH2 0x1383
00000c2f: JUMP
00000c30: JUMPDEST
00000c31: PUSH2 0x0c38
00000c34: PUSH2 0x13b5
00000c37: JUMP
00000c38: JUMPDEST
00000c39: PUSH1 0x01
00000c3b: PUSH1 0x01
00000c3d: PUSH1 0xa0
00000c3f: SHL
00000c40: SUB
00000c41: SWAP2
00000c42: SWAP1
00000c43: SWAP2
00000c44: AND
00000c45: PUSH1 0x00
00000c47: SWAP1
00000c48: DUP2
00000c49: MSTORE
00000c4a: PUSH1 0x09
00000c4c: PUSH1 0x20
00000c4e: MSTORE
00000c4f: PUSH1 0x40
00000c51: SWAP1
00000c52: KECCAK256
00000c53: DUP1
00000c54: SLOAD
00000c55: PUSH1 0xff
00000c57: NOT
00000c58: AND
00000c59: SWAP2
00000c5a: ISZERO
00000c5b: ISZERO
00000c5c: SWAP2
00000c5d: SWAP1
00000c5e: SWAP2
00000c5f: OR
00000c60: SWAP1
00000c61: SSTORE
00000c62: JUMP
00000c63: JUMPDEST
00000c64: CALLER
00000c65: DUP1
00000c66: PUSH2 0x0c6d
00000c69: PUSH2 0x11dc
00000c6c: JUMP
00000c6d: JUMPDEST
00000c6e: PUSH1 0x01
00000c70: PUSH1 0x01
00000c72: PUSH1 0xa0
00000c74: SHL
00000c75: SUB
00000c76: AND
00000c77: EQ
00000c78: PUSH2 0x0ca4
00000c7b: JUMPI
00000c7c: PUSH1 0x40
00000c7e: MLOAD
00000c7f: PUSH4 0x118cdaa7
00000c84: PUSH1 0xe0
00000c86: SHL
00000c87: DUP2
00000c88: MSTORE
00000c89: PUSH1 0x01
00000c8b: PUSH1 0x01
00000c8d: PUSH1 0xa0
00000c8f: SHL
00000c90: SUB
00000c91: DUP3
00000c92: AND
00000c93: PUSH1 0x04
00000c95: DUP3
00000c96: ADD
00000c97: MSTORE
00000c98: PUSH1 0x24
00000c9a: ADD
00000c9b: JUMPDEST
00000c9c: PUSH1 0x40
00000c9e: MLOAD
00000c9f: DUP1
00000ca0: SWAP2
00000ca1: SUB
00000ca2: SWAP1
00000ca3: REVERT
00000ca4: JUMPDEST
00000ca5: PUSH2 0x0cad
00000ca8: DUP2
00000ca9: PUSH2 0x18fa
00000cac: JUMP
00000cad: JUMPDEST
00000cae: POP
00000caf: JUMP
00000cb0: JUMPDEST
00000cb1: PUSH2 0x0cb8
00000cb4: PUSH2 0x1383
00000cb7: JUMP
00000cb8: JUMPDEST
00000cb9: PUSH2 0x0a7f
00000cbc: PUSH2 0x1932
00000cbf: JUMP
00000cc0: JUMPDEST
00000cc1: PUSH1 0x00
00000cc3: DUP1
00000cc4: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
00000ce5: JUMPDEST
00000ce6: SLOAD
00000ce7: PUSH1 0x01
00000ce9: PUSH1 0x01
00000ceb: PUSH1 0xa0
00000ced: SHL
00000cee: SUB
00000cef: AND
00000cf0: SWAP3
00000cf1: SWAP2
00000cf2: POP
00000cf3: POP
00000cf4: JUMP
00000cf5: JUMPDEST
00000cf6: PUSH2 0x0cfd
00000cf9: PUSH2 0x1383
00000cfc: JUMP
00000cfd: JUMPDEST
00000cfe: PUSH2 0x0d05
00000d01: PUSH2 0x13b5
00000d04: JUMP
00000d05: JUMPDEST
00000d06: PUSH1 0x0a
00000d08: DUP1
00000d09: SLOAD
00000d0a: PUSH1 0x01
00000d0c: PUSH1 0x01
00000d0e: PUSH1 0xa0
00000d10: SHL
00000d11: SUB
00000d12: NOT
00000d13: AND
00000d14: PUSH1 0x01
00000d16: PUSH1 0x01
00000d18: PUSH1 0xa0
00000d1a: SHL
00000d1b: SUB
00000d1c: SWAP3
00000d1d: SWAP1
00000d1e: SWAP3
00000d1f: AND
00000d20: SWAP2
00000d21: SWAP1
00000d22: SWAP2
00000d23: OR
00000d24: SWAP1
00000d25: SSTORE
00000d26: JUMP
00000d27: JUMPDEST
00000d28: PUSH2 0x0d2f
00000d2b: PUSH2 0x1383
00000d2e: JUMP
00000d2f: JUMPDEST
00000d30: PUSH1 0x0b
00000d32: DUP1
00000d33: SLOAD
00000d34: PUSH1 0x01
00000d36: PUSH1 0x01
00000d38: PUSH1 0xa0
00000d3a: SHL
00000d3b: SUB
00000d3c: NOT
00000d3d: AND
00000d3e: PUSH1 0x01
00000d40: PUSH1 0x01
00000d42: PUSH1 0xa0
00000d44: SHL
00000d45: SUB
00000d46: SWAP3
00000d47: SWAP1
00000d48: SWAP3
00000d49: AND
00000d4a: SWAP2
00000d4b: SWAP1
00000d4c: SWAP2
00000d4d: OR
00000d4e: SWAP1
00000d4f: SSTORE
00000d50: JUMP
00000d51: JUMPDEST
00000d52: PUSH2 0x0d59
00000d55: PUSH2 0x1577
00000d58: JUMP
00000d59: JUMPDEST
00000d5a: DUP2
00000d5b: PUSH1 0x00
00000d5d: SUB
00000d5e: PUSH2 0x0d7a
00000d61: JUMPI
00000d62: PUSH1 0x40
00000d64: MLOAD
00000d65: PUSH4 0x1f2a2005
00000d6a: PUSH1 0xe0
00000d6c: SHL
00000d6d: DUP2
00000d6e: MSTORE
00000d6f: PUSH1 0x04
00000d71: ADD
00000d72: PUSH1 0x40
00000d74: MLOAD
00000d75: DUP1
00000d76: SWAP2
00000d77: SUB
00000d78: SWAP1
00000d79: REVERT
00000d7a: JUMPDEST
00000d7b: DUP1
00000d7c: PUSH2 0x0d98
00000d7f: JUMPI
00000d80: PUSH1 0x40
00000d82: MLOAD
00000d83: PUSH4 0xd92e233d
00000d88: PUSH1 0xe0
00000d8a: SHL
00000d8b: DUP2
00000d8c: MSTORE
00000d8d: PUSH1 0x04
00000d8f: ADD
00000d90: PUSH1 0x40
00000d92: MLOAD
00000d93: DUP1
00000d94: SWAP2
00000d95: SUB
00000d96: SWAP1
00000d97: REVERT
00000d98: JUMPDEST
00000d99: PUSH1 0x00
00000d9b: DUP4
00000d9c: DUP2
00000d9d: MSTORE
00000d9e: PUSH1 0x03
00000da0: PUSH1 0x20
00000da2: MSTORE
00000da3: PUSH1 0x40
00000da5: DUP2
00000da6: KECCAK256
00000da7: SLOAD
00000da8: SWAP1
00000da9: DUP2
00000daa: SWAP1
00000dab: SUB
00000dac: PUSH2 0x0dc8
00000daf: JUMPI
00000db0: PUSH1 0x40
00000db2: MLOAD
00000db3: PUSH4 0x4617192b
00000db8: PUSH1 0xe0
00000dba: SHL
00000dbb: DUP2
00000dbc: MSTORE
00000dbd: PUSH1 0x04
00000dbf: ADD
00000dc0: PUSH1 0x40
00000dc2: MLOAD
00000dc3: DUP1
00000dc4: SWAP2
00000dc5: SUB
00000dc6: SWAP1
00000dc7: REVERT
00000dc8: JUMPDEST
00000dc9: DUP4
00000dca: PUSH2 0x0dd3
00000dcd: DUP2
00000dce: DUP6
00000dcf: PUSH2 0x15a8
00000dd2: JUMP
00000dd3: JUMPDEST
00000dd4: DUP1
00000dd5: PUSH2 0x0de9
00000dd8: PUSH1 0x01
00000dda: PUSH1 0x01
00000ddc: PUSH1 0xa0
00000dde: SHL
00000ddf: SUB
00000de0: DUP3
00000de1: AND
00000de2: CALLER
00000de3: ADDRESS
00000de4: DUP9
00000de5: PUSH2 0x18bb
00000de8: JUMP
00000de9: JUMPDEST
00000dea: PUSH1 0x01
00000dec: PUSH1 0x01
00000dee: PUSH1 0xa0
00000df0: SHL
00000df1: SUB
00000df2: DUP3
00000df3: AND
00000df4: PUSH1 0x00
00000df6: SWAP1
00000df7: DUP2
00000df8: MSTORE
00000df9: PUSH1 0x09
00000dfb: PUSH1 0x20
00000dfd: MSTORE
00000dfe: PUSH1 0x40
00000e00: SWAP1
00000e01: KECCAK256
00000e02: SLOAD
00000e03: PUSH1 0xff
00000e05: AND
00000e06: PUSH2 0x0e67
00000e09: JUMPI
00000e0a: PUSH1 0x40
00000e0c: MLOAD
00000e0d: PUSH4 0x0852cd8d
00000e12: PUSH1 0xe3
00000e14: SHL
00000e15: DUP2
00000e16: MSTORE
00000e17: PUSH1 0x04
00000e19: DUP2
00000e1a: ADD
00000e1b: DUP7
00000e1c: SWAP1
00000e1d: MSTORE
00000e1e: DUP3
00000e1f: SWAP1
00000e20: PUSH1 0x01
00000e22: PUSH1 0x01
00000e24: PUSH1 0xa0
00000e26: SHL
00000e27: SUB
00000e28: DUP3
00000e29: AND
00000e2a: SWAP1
00000e2b: PUSH4 0x42966c68
00000e30: SWAP1
00000e31: PUSH1 0x24
00000e33: ADD
00000e34: PUSH1 0x00
00000e36: PUSH1 0x40
00000e38: MLOAD
00000e39: DUP1
00000e3a: DUP4
00000e3b: SUB
00000e3c: DUP2
00000e3d: PUSH1 0x00
00000e3f: DUP8
00000e40: DUP1
00000e41: EXTCODESIZE
00000e42: ISZERO
00000e43: DUP1
00000e44: ISZERO
00000e45: PUSH2 0x0e4d
00000e48: JUMPI
00000e49: PUSH1 0x00
00000e4b: DUP1
00000e4c: REVERT
00000e4d: JUMPDEST
00000e4e: POP
00000e4f: GAS
00000e50: CALL
00000e51: ISZERO
00000e52: DUP1
00000e53: ISZERO
00000e54: PUSH2 0x0e61
00000e57: JUMPI
00000e58: RETURNDATASIZE
00000e59: PUSH1 0x00
00000e5b: DUP1
00000e5c: RETURNDATACOPY
00000e5d: RETURNDATASIZE
00000e5e: PUSH1 0x00
00000e60: REVERT
00000e61: JUMPDEST
00000e62: POP
00000e63: POP
00000e64: POP
00000e65: POP
00000e66: POP
00000e67: JUMPDEST
00000e68: DUP4
00000e69: DUP4
00000e6a: PUSH1 0x01
00000e6c: SLOAD
00000e6d: PUSH32 0xfdf694002d1fd250bd203ab8546c215351d1ca210decb2b29d4e4496dab885f3
00000e8e: DUP9
00000e8f: PUSH1 0x00
00000e91: SLOAD
00000e92: PUSH1 0x40
00000e94: MLOAD
00000e95: PUSH2 0x0ea8
00000e98: SWAP3
00000e99: SWAP2
00000e9a: SWAP1
00000e9b: SWAP2
00000e9c: DUP3
00000e9d: MSTORE
00000e9e: PUSH1 0x20
00000ea0: DUP3
00000ea1: ADD
00000ea2: MSTORE
00000ea3: PUSH1 0x40
00000ea5: ADD
00000ea6: SWAP1
00000ea7: JUMP
00000ea8: JUMPDEST
00000ea9: PUSH1 0x40
00000eab: MLOAD
00000eac: DUP1
00000ead: SWAP2
00000eae: SUB
00000eaf: SWAP1
00000eb0: LOG4
00000eb1: PUSH1 0x00
00000eb3: DUP1
00000eb4: DUP2
00000eb5: SLOAD
00000eb6: PUSH2 0x0ebe
00000eb9: SWAP1
00000eba: PUSH2 0x2596
00000ebd: JUMP
00000ebe: JUMPDEST
00000ebf: SWAP1
00000ec0: SWAP2
00000ec1: SSTORE
00000ec2: POP
00000ec3: POP
00000ec4: POP
00000ec5: POP
00000ec6: POP
00000ec7: POP
00000ec8: POP
00000ec9: JUMP
00000eca: JUMPDEST
00000ecb: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00000eec: DUP1
00000eed: SLOAD
00000eee: PUSH1 0x01
00000ef0: PUSH1 0x40
00000ef2: SHL
00000ef3: DUP2
00000ef4: DIV
00000ef5: PUSH1 0xff
00000ef7: AND
00000ef8: ISZERO
00000ef9: SWAP1
00000efa: PUSH8 0xffffffffffffffff
00000f03: AND
00000f04: PUSH1 0x00
00000f06: DUP2
00000f07: ISZERO
00000f08: DUP1
00000f09: ISZERO
00000f0a: PUSH2 0x0f10
00000f0d: JUMPI
00000f0e: POP
00000f0f: DUP3
00000f10: JUMPDEST
00000f11: SWAP1
00000f12: POP
00000f13: PUSH1 0x00
00000f15: DUP3
00000f16: PUSH8 0xffffffffffffffff
00000f1f: AND
00000f20: PUSH1 0x01
00000f22: EQ
00000f23: DUP1
00000f24: ISZERO
00000f25: PUSH2 0x0f2d
00000f28: JUMPI
00000f29: POP
00000f2a: ADDRESS
00000f2b: EXTCODESIZE
00000f2c: ISZERO
00000f2d: JUMPDEST
00000f2e: SWAP1
00000f2f: POP
00000f30: DUP2
00000f31: ISZERO
00000f32: DUP1
00000f33: ISZERO
00000f34: PUSH2 0x0f3b
00000f37: JUMPI
00000f38: POP
00000f39: DUP1
00000f3a: ISZERO
00000f3b: JUMPDEST
00000f3c: ISZERO
00000f3d: PUSH2 0x0f59
00000f40: JUMPI
00000f41: PUSH1 0x40
00000f43: MLOAD
00000f44: PUSH4 0xf92ee8a9
00000f49: PUSH1 0xe0
00000f4b: SHL
00000f4c: DUP2
00000f4d: MSTORE
00000f4e: PUSH1 0x04
00000f50: ADD
00000f51: PUSH1 0x40
00000f53: MLOAD
00000f54: DUP1
00000f55: SWAP2
00000f56: SUB
00000f57: SWAP1
00000f58: REVERT
00000f59: JUMPDEST
00000f5a: DUP5
00000f5b: SLOAD
00000f5c: PUSH8 0xffffffffffffffff
00000f65: NOT
00000f66: AND
00000f67: PUSH1 0x01
00000f69: OR
00000f6a: DUP6
00000f6b: SSTORE
00000f6c: DUP4
00000f6d: ISZERO
00000f6e: PUSH2 0x0f83
00000f71: JUMPI
00000f72: DUP5
00000f73: SLOAD
00000f74: PUSH1 0xff
00000f76: PUSH1 0x40
00000f78: SHL
00000f79: NOT
00000f7a: AND
00000f7b: PUSH1 0x01
00000f7d: PUSH1 0x40
00000f7f: SHL
00000f80: OR
00000f81: DUP6
00000f82: SSTORE
00000f83: JUMPDEST
00000f84: PUSH2 0x0f8f
00000f87: DUP11
00000f88: DUP11
00000f89: DUP11
00000f8a: DUP10
00000f8b: PUSH2 0x197b
00000f8e: JUMP
00000f8f: JUMPDEST
00000f90: PUSH2 0x0f98
00000f93: DUP8
00000f94: PUSH2 0x198f
00000f97: JUMP
00000f98: JUMPDEST
00000f99: PUSH2 0x0fa0
00000f9c: PUSH2 0x19a0
00000f9f: JUMP
00000fa0: JUMPDEST
00000fa1: PUSH2 0x0fa8
00000fa4: PUSH2 0x1932
00000fa7: JUMP
00000fa8: JUMPDEST
00000fa9: DUP4
00000faa: ISZERO
00000fab: PUSH2 0x0fee
00000fae: JUMPI
00000faf: DUP5
00000fb0: SLOAD
00000fb1: PUSH1 0xff
00000fb3: PUSH1 0x40
00000fb5: SHL
00000fb6: NOT
00000fb7: AND
00000fb8: DUP6
00000fb9: SSTORE
00000fba: PUSH1 0x40
00000fbc: MLOAD
00000fbd: PUSH1 0x01
00000fbf: DUP2
00000fc0: MSTORE
00000fc1: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00000fe2: SWAP1
00000fe3: PUSH1 0x20
00000fe5: ADD
00000fe6: PUSH1 0x40
00000fe8: MLOAD
00000fe9: DUP1
00000fea: SWAP2
00000feb: SUB
00000fec: SWAP1
00000fed: LOG1
00000fee: JUMPDEST
00000fef: POP
00000ff0: POP
00000ff1: POP
00000ff2: POP
00000ff3: POP
00000ff4: POP
00000ff5: POP
00000ff6: POP
00000ff7: POP
00000ff8: POP
00000ff9: JUMP
00000ffa: JUMPDEST
00000ffb: PUSH2 0x1002
00000ffe: PUSH2 0x1577
00001001: JUMP
00001002: JUMPDEST
00001003: DUP5
00001004: PUSH2 0x100d
00001007: DUP2
00001008: CALLER
00001009: PUSH2 0x09ea
0000100c: JUMP
0000100d: JUMPDEST
0000100e: PUSH2 0x102a
00001011: JUMPI
00001012: PUSH1 0x40
00001014: MLOAD
00001015: PUSH4 0x01cf71d3
0000101a: PUSH1 0xe7
0000101c: SHL
0000101d: DUP2
0000101e: MSTORE
0000101f: PUSH1 0x04
00001021: ADD
00001022: PUSH1 0x40
00001024: MLOAD
00001025: DUP1
00001026: SWAP2
00001027: SUB
00001028: SWAP1
00001029: REVERT
0000102a: JUMPDEST
0000102b: PUSH1 0x00
0000102d: DUP8
0000102e: DUP2
0000102f: MSTORE
00001030: PUSH1 0x05
00001032: PUSH1 0x20
00001034: MSTORE
00001035: PUSH1 0x40
00001037: SWAP1
00001038: KECCAK256
00001039: SLOAD
0000103a: PUSH1 0xff
0000103c: AND
0000103d: ISZERO
0000103e: PUSH2 0x107e
00001041: JUMPI
00001042: PUSH1 0x40
00001044: DUP1
00001045: MLOAD
00001046: DUP9
00001047: DUP2
00001048: MSTORE
00001049: CALLER
0000104a: PUSH1 0x20
0000104c: DUP3
0000104d: ADD
0000104e: MSTORE
0000104f: PUSH32 0x663e7547ee89b163c8f15ccc1780c1097bb68e118283993865e5c86ceb23a312
00001070: SWAP2
00001071: ADD
00001072: PUSH1 0x40
00001074: MLOAD
00001075: DUP1
00001076: SWAP2
00001077: SUB
00001078: SWAP1
00001079: LOG1
0000107a: PUSH2 0x11d3
0000107d: JUMP
0000107e: JUMPDEST
0000107f: PUSH1 0x40
00001081: DUP1
00001082: MLOAD
00001083: PUSH1 0x20
00001085: DUP2
00001086: ADD
00001087: DUP9
00001088: SWAP1
00001089: MSTORE
0000108a: SWAP1
0000108b: DUP2
0000108c: ADD
0000108d: DUP7
0000108e: SWAP1
0000108f: MSTORE
00001090: PUSH1 0x60
00001092: DUP2
00001093: ADD
00001094: DUP6
00001095: SWAP1
00001096: MSTORE
00001097: PUSH1 0x80
00001099: DUP2
0000109a: ADD
0000109b: DUP5
0000109c: SWAP1
0000109d: MSTORE
0000109e: PUSH1 0xa0
000010a0: DUP2
000010a1: ADD
000010a2: DUP4
000010a3: SWAP1
000010a4: MSTORE
000010a5: PUSH1 0x00
000010a7: SWAP1
000010a8: PUSH1 0xc0
000010aa: ADD
000010ab: PUSH1 0x40
000010ad: DUP1
000010ae: MLOAD
000010af: PUSH1 0x1f
000010b1: NOT
000010b2: DUP2
000010b3: DUP5
000010b4: SUB
000010b5: ADD
000010b6: DUP2
000010b7: MSTORE
000010b8: SWAP2
000010b9: DUP2
000010ba: MSTORE
000010bb: DUP2
000010bc: MLOAD
000010bd: PUSH1 0x20
000010bf: SWAP3
000010c0: DUP4
000010c1: ADD
000010c2: KECCAK256
000010c3: PUSH1 0x00
000010c5: DUP2
000010c6: DUP2
000010c7: MSTORE
000010c8: PUSH1 0x04
000010ca: DUP5
000010cb: MSTORE
000010cc: DUP3
000010cd: DUP2
000010ce: KECCAK256
000010cf: CALLER
000010d0: DUP3
000010d1: MSTORE
000010d2: PUSH1 0x01
000010d4: DUP2
000010d5: ADD
000010d6: SWAP1
000010d7: SWAP5
000010d8: MSTORE
000010d9: SWAP2
000010da: SWAP1
000010db: SWAP2
000010dc: KECCAK256
000010dd: SLOAD
000010de: SWAP1
000010df: SWAP3
000010e0: POP
000010e1: PUSH1 0xff
000010e3: AND
000010e4: ISZERO
000010e5: PUSH2 0x1127
000010e8: JUMPI
000010e9: PUSH1 0x40
000010eb: DUP1
000010ec: MLOAD
000010ed: DUP4
000010ee: DUP2
000010ef: MSTORE
000010f0: CALLER
000010f1: PUSH1 0x20
000010f3: DUP3
000010f4: ADD
000010f5: MSTORE
000010f6: PUSH32 0x3f37b0b66f16a593807ce9ff98d50f7ba28c565bc6c79dcebe230748a771b768
00001117: SWAP2
00001118: ADD
00001119: PUSH1 0x40
0000111b: MLOAD
0000111c: DUP1
0000111d: SWAP2
0000111e: SUB
0000111f: SWAP1
00001120: LOG1
00001121: POP
00001122: POP
00001123: PUSH2 0x11d3
00001126: JUMP
00001127: JUMPDEST
00001128: DUP2
00001129: DUP10
0000112a: EQ
0000112b: PUSH2 0x1147
0000112e: JUMPI
0000112f: PUSH1 0x40
00001131: MLOAD
00001132: PUSH4 0xc357a9e7
00001137: PUSH1 0xe0
00001139: SHL
0000113a: DUP2
0000113b: MSTORE
0000113c: PUSH1 0x04
0000113e: ADD
0000113f: PUSH1 0x40
00001141: MLOAD
00001142: DUP1
00001143: SWAP2
00001144: SUB
00001145: SWAP1
00001146: REVERT
00001147: JUMPDEST
00001148: CALLER
00001149: PUSH1 0x00
0000114b: SWAP1
0000114c: DUP2
0000114d: MSTORE
0000114e: PUSH1 0x01
00001150: DUP3
00001151: DUP2
00001152: ADD
00001153: PUSH1 0x20
00001155: MSTORE
00001156: PUSH1 0x40
00001158: DUP3
00001159: KECCAK256
0000115a: DUP1
0000115b: SLOAD
0000115c: PUSH1 0xff
0000115e: NOT
0000115f: AND
00001160: SWAP1
00001161: SWAP2
00001162: OR
00001163: SWAP1
00001164: SSTORE
00001165: DUP2
00001166: SLOAD
00001167: DUP3
00001168: SWAP2
00001169: SWAP1
0000116a: PUSH2 0x1172
0000116d: SWAP1
0000116e: PUSH2 0x2596
00001171: JUMP
00001172: JUMPDEST
00001173: SWAP1
00001174: SWAP2
00001175: SSTORE
00001176: POP
00001177: PUSH1 0x40
00001179: DUP1
0000117a: MLOAD
0000117b: DUP4
0000117c: DUP2
0000117d: MSTORE
0000117e: CALLER
0000117f: PUSH1 0x20
00001181: DUP3
00001182: ADD
00001183: MSTORE
00001184: PUSH32 0x7356c99533fbaaf15c51aad6bd54bb9b2d540f55cc2b88ebbf4c5671e48c4f63
000011a5: SWAP2
000011a6: ADD
000011a7: PUSH1 0x40
000011a9: MLOAD
000011aa: DUP1
000011ab: SWAP2
000011ac: SUB
000011ad: SWAP1
000011ae: LOG1
000011af: PUSH1 0x00
000011b1: DUP9
000011b2: DUP2
000011b3: MSTORE
000011b4: PUSH1 0x08
000011b6: PUSH1 0x20
000011b8: MSTORE
000011b9: PUSH1 0x40
000011bb: SWAP1
000011bc: KECCAK256
000011bd: SLOAD
000011be: DUP2
000011bf: SLOAD
000011c0: LT
000011c1: PUSH2 0x11d0
000011c4: JUMPI
000011c5: PUSH2 0x11d0
000011c8: DUP3
000011c9: DUP9
000011ca: DUP9
000011cb: DUP9
000011cc: PUSH2 0x19b0
000011cf: JUMP
000011d0: JUMPDEST
000011d1: POP
000011d2: POP
000011d3: JUMPDEST
000011d4: POP
000011d5: POP
000011d6: POP
000011d7: POP
000011d8: POP
000011d9: POP
000011da: POP
000011db: JUMP
000011dc: JUMPDEST
000011dd: PUSH1 0x00
000011df: DUP1
000011e0: PUSH32 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00
00001201: PUSH2 0x0ce5
00001204: JUMP
00001205: JUMPDEST
00001206: PUSH1 0x00
00001208: PUSH2 0x1211
0000120b: DUP3
0000120c: DUP5
0000120d: PUSH2 0x09ea
00001210: JUMP
00001211: JUMPDEST
00001212: PUSH2 0x121d
00001215: JUMPI
00001216: POP
00001217: PUSH1 0x00
00001219: PUSH2 0x1276
0000121c: JUMP
0000121d: JUMPDEST
0000121e: PUSH1 0x00
00001220: DUP5
00001221: DUP2
00001222: MSTORE
00001223: PUSH1 0x05
00001225: PUSH1 0x20
00001227: MSTORE
00001228: PUSH1 0x40
0000122a: SWAP1
0000122b: KECCAK256
0000122c: SLOAD
0000122d: PUSH1 0xff
0000122f: AND
00001230: ISZERO
00001231: PUSH2 0x123c
00001234: JUMPI
00001235: POP
00001236: PUSH1 0x00
00001238: PUSH2 0x1276
0000123b: JUMP
0000123c: JUMPDEST
0000123d: PUSH1 0x00
0000123f: DUP5
00001240: DUP2
00001241: MSTORE
00001242: PUSH1 0x04
00001244: PUSH1 0x20
00001246: SWAP1
00001247: DUP2
00001248: MSTORE
00001249: PUSH1 0x40
0000124b: DUP1
0000124c: DUP4
0000124d: KECCAK256
0000124e: PUSH1 0x01
00001250: PUSH1 0x01
00001252: PUSH1 0xa0
00001254: SHL
00001255: SUB
00001256: DUP8
00001257: AND
00001258: DUP5
00001259: MSTORE
0000125a: PUSH1 0x01
0000125c: ADD
0000125d: SWAP1
0000125e: SWAP2
0000125f: MSTORE
00001260: SWAP1
00001261: KECCAK256
00001262: SLOAD
00001263: PUSH1 0xff
00001265: AND
00001266: ISZERO
00001267: PUSH2 0x1272
0000126a: JUMPI
0000126b: POP
0000126c: PUSH1 0x00
0000126e: PUSH2 0x1276
00001271: JUMP
00001272: JUMPDEST
00001273: POP
00001274: PUSH1 0x01
00001276: JUMPDEST
00001277: SWAP4
00001278: SWAP3
00001279: POP
0000127a: POP
0000127b: POP
0000127c: JUMP
0000127d: JUMPDEST
0000127e: PUSH2 0x1285
00001281: PUSH2 0x1383
00001284: JUMP
00001285: JUMPDEST
00001286: PUSH1 0x00
00001288: DUP3
00001289: PUSH1 0x01
0000128b: PUSH1 0x01
0000128d: PUSH1 0xa0
0000128f: SHL
00001290: SUB
00001291: AND
00001292: DUP3
00001293: PUSH2 0x0dac
00001296: SWAP1
00001297: PUSH1 0x40
00001299: MLOAD
0000129a: PUSH1 0x00
0000129c: PUSH1 0x40
0000129e: MLOAD
0000129f: DUP1
000012a0: DUP4
000012a1: SUB
000012a2: DUP2
000012a3: DUP6
000012a4: DUP9
000012a5: DUP9
000012a6: CALL
000012a7: SWAP4
000012a8: POP
000012a9: POP
000012aa: POP
000012ab: POP
000012ac: RETURNDATASIZE
000012ad: DUP1
000012ae: PUSH1 0x00
000012b0: DUP2
000012b1: EQ
000012b2: PUSH2 0x12d7
000012b5: JUMPI
000012b6: PUSH1 0x40
000012b8: MLOAD
000012b9: SWAP2
000012ba: POP
000012bb: PUSH1 0x1f
000012bd: NOT
000012be: PUSH1 0x3f
000012c0: RETURNDATASIZE
000012c1: ADD
000012c2: AND
000012c3: DUP3
000012c4: ADD
000012c5: PUSH1 0x40
000012c7: MSTORE
000012c8: RETURNDATASIZE
000012c9: DUP3
000012ca: MSTORE
000012cb: RETURNDATASIZE
000012cc: PUSH1 0x00
000012ce: PUSH1 0x20
000012d0: DUP5
000012d1: ADD
000012d2: RETURNDATACOPY
000012d3: PUSH2 0x12dc
000012d6: JUMP
000012d7: JUMPDEST
000012d8: PUSH1 0x60
000012da: SWAP2
000012db: POP
000012dc: JUMPDEST
000012dd: POP
000012de: POP
000012df: SWAP1
000012e0: POP
000012e1: DUP1
000012e2: PUSH2 0x0a6a
000012e5: JUMPI
000012e6: PUSH1 0x40
000012e8: MLOAD
000012e9: PUSH4 0x02a06efb
000012ee: PUSH1 0xe1
000012f0: SHL
000012f1: DUP2
000012f2: MSTORE
000012f3: PUSH1 0x04
000012f5: ADD
000012f6: PUSH1 0x40
000012f8: MLOAD
000012f9: DUP1
000012fa: SWAP2
000012fb: SUB
000012fc: SWAP1
000012fd: REVERT
000012fe: JUMPDEST
000012ff: PUSH2 0x1306
00001302: PUSH2 0x1383
00001305: JUMP
00001306: JUMPDEST
00001307: PUSH32 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00
00001328: DUP1
00001329: SLOAD
0000132a: PUSH1 0x01
0000132c: PUSH1 0x01
0000132e: PUSH1 0xa0
00001330: SHL
00001331: SUB
00001332: NOT
00001333: AND
00001334: PUSH1 0x01
00001336: PUSH1 0x01
00001338: PUSH1 0xa0
0000133a: SHL
0000133b: SUB
0000133c: DUP4
0000133d: AND
0000133e: SWAP1
0000133f: DUP2
00001340: OR
00001341: DUP3
00001342: SSTORE
00001343: PUSH2 0x134a
00001346: PUSH2 0x0cc0
00001349: JUMP
0000134a: JUMPDEST
0000134b: PUSH1 0x01
0000134d: PUSH1 0x01
0000134f: PUSH1 0xa0
00001351: SHL
00001352: SUB
00001353: AND
00001354: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700
00001375: PUSH1 0x40
00001377: MLOAD
00001378: PUSH1 0x40
0000137a: MLOAD
0000137b: DUP1
0000137c: SWAP2
0000137d: SUB
0000137e: SWAP1
0000137f: LOG3
00001380: POP
00001381: POP
00001382: JUMP
00001383: JUMPDEST
00001384: CALLER
00001385: PUSH2 0x138c
00001388: PUSH2 0x0cc0
0000138b: JUMP
0000138c: JUMPDEST
0000138d: PUSH1 0x01
0000138f: PUSH1 0x01
00001391: PUSH1 0xa0
00001393: SHL
00001394: SUB
00001395: AND
00001396: EQ
00001397: PUSH2 0x0a7f
0000139a: JUMPI
0000139b: PUSH1 0x40
0000139d: MLOAD
0000139e: PUSH4 0x118cdaa7
000013a3: PUSH1 0xe0
000013a5: SHL
000013a6: DUP2
000013a7: MSTORE
000013a8: CALLER
000013a9: PUSH1 0x04
000013ab: DUP3
000013ac: ADD
000013ad: MSTORE
000013ae: PUSH1 0x24
000013b0: ADD
000013b1: PUSH2 0x0c9b
000013b4: JUMP
000013b5: JUMPDEST
000013b6: PUSH1 0x00
000013b8: DUP1
000013b9: MLOAD
000013ba: PUSH1 0x20
000013bc: PUSH2 0x2646
000013bf: DUP4
000013c0: CODECOPY
000013c1: DUP2
000013c2: MLOAD
000013c3: SWAP2
000013c4: MSTORE
000013c5: SLOAD
000013c6: PUSH1 0xff
000013c8: AND
000013c9: PUSH2 0x0a7f
000013cc: JUMPI
000013cd: PUSH1 0x40
000013cf: MLOAD
000013d0: PUSH4 0x8dfc202b
000013d5: PUSH1 0xe0
000013d7: SHL
000013d8: DUP2
000013d9: MSTORE
000013da: PUSH1 0x04
000013dc: ADD
000013dd: PUSH1 0x40
000013df: MLOAD
000013e0: DUP1
000013e1: SWAP2
000013e2: SUB
000013e3: SWAP1
000013e4: REVERT
000013e5: JUMPDEST
000013e6: DUP1
000013e7: PUSH1 0x00
000013e9: SUB
000013ea: PUSH2 0x1406
000013ed: JUMPI
000013ee: PUSH1 0x40
000013f0: MLOAD
000013f1: PUSH4 0x3cc3e581
000013f6: PUSH1 0xe2
000013f8: SHL
000013f9: DUP2
000013fa: MSTORE
000013fb: PUSH1 0x04
000013fd: ADD
000013fe: PUSH1 0x40
00001400: MLOAD
00001401: DUP1
00001402: SWAP2
00001403: SUB
00001404: SWAP1
00001405: REVERT
00001406: JUMPDEST
00001407: DUP1
00001408: DUP3
00001409: LT
0000140a: ISZERO
0000140b: PUSH2 0x1427
0000140e: JUMPI
0000140f: PUSH1 0x40
00001411: MLOAD
00001412: PUSH4 0x6bb07db9
00001417: PUSH1 0xe1
00001419: SHL
0000141a: DUP2
0000141b: MSTORE
0000141c: PUSH1 0x04
0000141e: ADD
0000141f: PUSH1 0x40
00001421: MLOAD
00001422: DUP1
00001423: SWAP2
00001424: SUB
00001425: SWAP1
00001426: REVERT
00001427: JUMPDEST
00001428: PUSH1 0x00
0000142a: JUMPDEST
0000142b: DUP3
0000142c: DUP2
0000142d: LT
0000142e: ISZERO
0000142f: PUSH2 0x154c
00001432: JUMPI
00001433: PUSH1 0x00
00001435: DUP5
00001436: DUP5
00001437: DUP4
00001438: DUP2
00001439: DUP2
0000143a: LT
0000143b: PUSH2 0x1446
0000143e: JUMPI
0000143f: PUSH2 0x1446
00001442: PUSH2 0x25d9
00001445: JUMP
00001446: JUMPDEST
00001447: SWAP1
00001448: POP
00001449: PUSH1 0x20
0000144b: MUL
0000144c: ADD
0000144d: PUSH1 0x20
0000144f: DUP2
00001450: ADD
00001451: SWAP1
00001452: PUSH2 0x145b
00001455: SWAP2
00001456: SWAP1
00001457: PUSH2 0x2241
0000145a: JUMP
0000145b: JUMPDEST
0000145c: PUSH1 0x01
0000145e: PUSH1 0x01
00001460: PUSH1 0xa0
00001462: SHL
00001463: SUB
00001464: AND
00001465: SUB
00001466: PUSH2 0x1482
00001469: JUMPI
0000146a: PUSH1 0x40
0000146c: MLOAD
0000146d: PUSH4 0xd92e233d
00001472: PUSH1 0xe0
00001474: SHL
00001475: DUP2
00001476: MSTORE
00001477: PUSH1 0x04
00001479: ADD
0000147a: PUSH1 0x40
0000147c: MLOAD
0000147d: DUP1
0000147e: SWAP2
0000147f: SUB
00001480: SWAP1
00001481: REVERT
00001482: JUMPDEST
00001483: PUSH1 0x00
00001485: PUSH1 0x01
00001487: SLOAD
00001488: DUP6
00001489: DUP6
0000148a: DUP5
0000148b: DUP2
0000148c: DUP2
0000148d: LT
0000148e: PUSH2 0x1499
00001491: JUMPI
00001492: PUSH2 0x1499
00001495: PUSH2 0x25d9
00001498: JUMP
00001499: JUMPDEST
0000149a: SWAP1
0000149b: POP
0000149c: PUSH1 0x20
0000149e: MUL
0000149f: ADD
000014a0: PUSH1 0x20
000014a2: DUP2
000014a3: ADD
000014a4: SWAP1
000014a5: PUSH2 0x14ae
000014a8: SWAP2
000014a9: SWAP1
000014aa: PUSH2 0x2241
000014ad: JUMP
000014ae: JUMPDEST
000014af: PUSH1 0x40
000014b1: MLOAD
000014b2: PUSH1 0x20
000014b4: ADD
000014b5: PUSH2 0x14da
000014b8: SWAP3
000014b9: SWAP2
000014ba: SWAP1
000014bb: SWAP2
000014bc: DUP3
000014bd: MSTORE
000014be: PUSH1 0x60
000014c0: SHL
000014c1: PUSH12 0xffffffffffffffffffffffff
000014ce: NOT
000014cf: AND
000014d0: PUSH1 0x20
000014d2: DUP3
000014d3: ADD
000014d4: MSTORE
000014d5: PUSH1 0x34
000014d7: ADD
000014d8: SWAP1
000014d9: JUMP
000014da: JUMPDEST
000014db: PUSH1 0x40
000014dd: DUP1
000014de: MLOAD
000014df: PUSH1 0x1f
000014e1: NOT
000014e2: DUP2
000014e3: DUP5
000014e4: SUB
000014e5: ADD
000014e6: DUP2
000014e7: MSTORE
000014e8: SWAP2
000014e9: DUP2
000014ea: MSTORE
000014eb: DUP2
000014ec: MLOAD
000014ed: PUSH1 0x20
000014ef: SWAP3
000014f0: DUP4
000014f1: ADD
000014f2: KECCAK256
000014f3: PUSH1 0x00
000014f5: DUP2
000014f6: DUP2
000014f7: MSTORE
000014f8: PUSH1 0x06
000014fa: SWAP1
000014fb: SWAP4
000014fc: MSTORE
000014fd: SWAP2
000014fe: KECCAK256
000014ff: SLOAD
00001500: SWAP1
00001501: SWAP2
00001502: POP
00001503: PUSH1 0xff
00001505: AND
00001506: ISZERO
00001507: PUSH2 0x1523
0000150a: JUMPI
0000150b: PUSH1 0x40
0000150d: MLOAD
0000150e: PUSH4 0x120e00c9
00001513: PUSH1 0xe0
00001515: SHL
00001516: DUP2
00001517: MSTORE
00001518: PUSH1 0x04
0000151a: ADD
0000151b: PUSH1 0x40
0000151d: MLOAD
0000151e: DUP1
0000151f: SWAP2
00001520: SUB
00001521: SWAP1
00001522: REVERT
00001523: JUMPDEST
00001524: PUSH1 0x00
00001526: SWAP1
00001527: DUP2
00001528: MSTORE
00001529: PUSH1 0x06
0000152b: PUSH1 0x20
0000152d: MSTORE
0000152e: PUSH1 0x40
00001530: SWAP1
00001531: KECCAK256
00001532: DUP1
00001533: SLOAD
00001534: PUSH1 0xff
00001536: NOT
00001537: AND
00001538: PUSH1 0x01
0000153a: OR
0000153b: SWAP1
0000153c: SSTORE
0000153d: PUSH2 0x1545
00001540: DUP2
00001541: PUSH2 0x2596
00001544: JUMP
00001545: JUMPDEST
00001546: SWAP1
00001547: POP
00001548: PUSH2 0x142a
0000154b: JUMP
0000154c: JUMPDEST
0000154d: POP
0000154e: PUSH1 0x01
00001550: DUP1
00001551: SLOAD
00001552: PUSH1 0x00
00001554: SWAP1
00001555: DUP2
00001556: MSTORE
00001557: PUSH1 0x07
00001559: PUSH1 0x20
0000155b: SWAP1
0000155c: DUP2
0000155d: MSTORE
0000155e: PUSH1 0x40
00001560: DUP1
00001561: DUP4
00001562: KECCAK256
00001563: SWAP6
00001564: SWAP1
00001565: SWAP6
00001566: SSTORE
00001567: SWAP2
00001568: SLOAD
00001569: DUP2
0000156a: MSTORE
0000156b: PUSH1 0x08
0000156d: SWAP1
0000156e: SWAP2
0000156f: MSTORE
00001570: SWAP2
00001571: SWAP1
00001572: SWAP2
00001573: KECCAK256
00001574: SSTORE
00001575: POP
00001576: JUMP
00001577: JUMPDEST
00001578: PUSH1 0x00
0000157a: DUP1
0000157b: MLOAD
0000157c: PUSH1 0x20
0000157e: PUSH2 0x2646
00001581: DUP4
00001582: CODECOPY
00001583: DUP2
00001584: MLOAD
00001585: SWAP2
00001586: MSTORE
00001587: SLOAD
00001588: PUSH1 0xff
0000158a: AND
0000158b: ISZERO
0000158c: PUSH2 0x0a7f
0000158f: JUMPI
00001590: PUSH1 0x40
00001592: MLOAD
00001593: PUSH4 0xd93c0665
00001598: PUSH1 0xe0
0000159a: SHL
0000159b: DUP2
0000159c: MSTORE
0000159d: PUSH1 0x04
0000159f: ADD
000015a0: PUSH1 0x40
000015a2: MLOAD
000015a3: DUP1
000015a4: SWAP2
000015a5: SUB
000015a6: SWAP1
000015a7: REVERT
000015a8: JUMPDEST
000015a9: PUSH1 0x0b
000015ab: SLOAD
000015ac: PUSH1 0x01
000015ae: PUSH1 0x01
000015b0: PUSH1 0xa0
000015b2: SHL
000015b3: SUB
000015b4: AND
000015b5: ISZERO
000015b6: PUSH2 0x0abd
000015b9: JUMPI
000015ba: PUSH1 0x0b
000015bc: SLOAD
000015bd: PUSH1 0x40
000015bf: MLOAD
000015c0: PUSH4 0xdc7f9743
000015c5: PUSH1 0xe0
000015c7: SHL
000015c8: DUP2
000015c9: MSTORE
000015ca: PUSH1 0x01
000015cc: PUSH1 0x01
000015ce: PUSH1 0xa0
000015d0: SHL
000015d1: SUB
000015d2: DUP5
000015d3: DUP2
000015d4: AND
000015d5: PUSH1 0x04
000015d7: DUP4
000015d8: ADD
000015d9: MSTORE
000015da: PUSH1 0x24
000015dc: DUP3
000015dd: ADD
000015de: DUP5
000015df: SWAP1
000015e0: MSTORE
000015e1: SWAP1
000015e2: SWAP2
000015e3: AND
000015e4: SWAP1
000015e5: PUSH4 0xdc7f9743
000015ea: SWAP1
000015eb: PUSH1 0x44
000015ed: ADD
000015ee: PUSH1 0x20
000015f0: PUSH1 0x40
000015f2: MLOAD
000015f3: DUP1
000015f4: DUP4
000015f5: SUB
000015f6: DUP2
000015f7: DUP7
000015f8: GAS
000015f9: STATICCALL
000015fa: SWAP3
000015fb: POP
000015fc: POP
000015fd: POP
000015fe: DUP1
000015ff: ISZERO
00001600: PUSH2 0x1626
00001603: JUMPI
00001604: POP
00001605: PUSH1 0x40
00001607: DUP1
00001608: MLOAD
00001609: PUSH1 0x1f
0000160b: RETURNDATASIZE
0000160c: SWAP1
0000160d: DUP2
0000160e: ADD
0000160f: PUSH1 0x1f
00001611: NOT
00001612: AND
00001613: DUP3
00001614: ADD
00001615: SWAP1
00001616: SWAP3
00001617: MSTORE
00001618: PUSH2 0x1623
0000161b: SWAP2
0000161c: DUP2
0000161d: ADD
0000161e: SWAP1
0000161f: PUSH2 0x25ef
00001622: JUMP
00001623: JUMPDEST
00001624: PUSH1 0x01
00001626: JUMPDEST
00001627: ISZERO
00001628: PUSH2 0x0abd
0000162b: JUMPI
0000162c: DUP1
0000162d: PUSH2 0x0a6a
00001630: JUMPI
00001631: PUSH1 0x40
00001633: MLOAD
00001634: PUSH4 0x1930e3c9
00001639: PUSH1 0xe1
0000163b: SHL
0000163c: DUP2
0000163d: MSTORE
0000163e: PUSH1 0x04
00001640: ADD
00001641: PUSH1 0x40
00001643: MLOAD
00001644: DUP1
00001645: SWAP2
00001646: SUB
00001647: SWAP1
00001648: REVERT
00001649: JUMPDEST
0000164a: PUSH1 0x40
0000164c: MLOAD
0000164d: PUSH1 0x01
0000164f: PUSH1 0x01
00001651: PUSH1 0xa0
00001653: SHL
00001654: SUB
00001655: DUP4
00001656: DUP2
00001657: AND
00001658: PUSH1 0x24
0000165a: DUP4
0000165b: ADD
0000165c: MSTORE
0000165d: PUSH1 0x44
0000165f: DUP3
00001660: ADD
00001661: DUP4
00001662: SWAP1
00001663: MSTORE
00001664: PUSH2 0x0a6a
00001667: SWAP2
00001668: DUP6
00001669: SWAP2
0000166a: DUP3
0000166b: AND
0000166c: SWAP1
0000166d: PUSH4 0xa9059cbb
00001672: SWAP1
00001673: PUSH1 0x64
00001675: ADD
00001676: JUMPDEST
00001677: PUSH1 0x40
00001679: MLOAD
0000167a: PUSH1 0x20
0000167c: DUP2
0000167d: DUP4
0000167e: SUB
0000167f: SUB
00001680: DUP2
00001681: MSTORE
00001682: SWAP1
00001683: PUSH1 0x40
00001685: MSTORE
00001686: SWAP2
00001687: POP
00001688: PUSH1 0xe0
0000168a: SHL
0000168b: PUSH1 0x20
0000168d: DUP3
0000168e: ADD
0000168f: DUP1
00001690: MLOAD
00001691: PUSH1 0x01
00001693: PUSH1 0x01
00001695: PUSH1 0xe0
00001697: SHL
00001698: SUB
00001699: DUP4
0000169a: DUP2
0000169b: DUP4
0000169c: AND
0000169d: OR
0000169e: DUP4
0000169f: MSTORE
000016a0: POP
000016a1: POP
000016a2: POP
000016a3: POP
000016a4: PUSH2 0x1c4b
000016a7: JUMP
000016a8: JUMPDEST
000016a9: PUSH2 0x16b0
000016ac: PUSH2 0x13b5
000016af: JUMP
000016b0: JUMPDEST
000016b1: PUSH1 0x00
000016b3: DUP1
000016b4: MLOAD
000016b5: PUSH1 0x20
000016b7: PUSH2 0x2646
000016ba: DUP4
000016bb: CODECOPY
000016bc: DUP2
000016bd: MLOAD
000016be: SWAP2
000016bf: MSTORE
000016c0: DUP1
000016c1: SLOAD
000016c2: PUSH1 0xff
000016c4: NOT
000016c5: AND
000016c6: DUP2
000016c7: SSTORE
000016c8: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
000016e9: CALLER
000016ea: JUMPDEST
000016eb: PUSH1 0x40
000016ed: MLOAD
000016ee: PUSH1 0x01
000016f0: PUSH1 0x01
000016f2: PUSH1 0xa0
000016f4: SHL
000016f5: SUB
000016f6: SWAP1
000016f7: SWAP2
000016f8: AND
000016f9: DUP2
000016fa: MSTORE
000016fb: PUSH1 0x20
000016fd: ADD
000016fe: PUSH1 0x40
00001700: MLOAD
00001701: DUP1
00001702: SWAP2
00001703: SUB
00001704: SWAP1
00001705: LOG1
00001706: POP
00001707: JUMP
00001708: JUMPDEST
00001709: ADDRESS
0000170a: PUSH1 0x01
0000170c: PUSH1 0x01
0000170e: PUSH1 0xa0
00001710: SHL
00001711: SUB
00001712: PUSH32 0x00000000000000000000000049643fc85fb1f25b6775ebbbdc69295d45105abc
00001733: AND
00001734: EQ
00001735: DUP1
00001736: PUSH2 0x178f
00001739: JUMPI
0000173a: POP
0000173b: PUSH32 0x00000000000000000000000049643fc85fb1f25b6775ebbbdc69295d45105abc
0000175c: PUSH1 0x01
0000175e: PUSH1 0x01
00001760: PUSH1 0xa0
00001762: SHL
00001763: SUB
00001764: AND
00001765: PUSH2 0x1783
00001768: PUSH1 0x00
0000176a: DUP1
0000176b: MLOAD
0000176c: PUSH1 0x20
0000176e: PUSH2 0x2626
00001771: DUP4
00001772: CODECOPY
00001773: DUP2
00001774: MLOAD
00001775: SWAP2
00001776: MSTORE
00001777: SLOAD
00001778: PUSH1 0x01
0000177a: PUSH1 0x01
0000177c: PUSH1 0xa0
0000177e: SHL
0000177f: SUB
00001780: AND
00001781: SWAP1
00001782: JUMP
00001783: JUMPDEST
00001784: PUSH1 0x01
00001786: PUSH1 0x01
00001788: PUSH1 0xa0
0000178a: SHL
0000178b: SUB
0000178c: AND
0000178d: EQ
0000178e: ISZERO
0000178f: JUMPDEST
00001790: ISZERO
00001791: PUSH2 0x0a7f
00001794: JUMPI
00001795: PUSH1 0x40
00001797: MLOAD
00001798: PUSH4 0x703e46dd
0000179d: PUSH1 0xe1
0000179f: SHL
000017a0: DUP2
000017a1: MSTORE
000017a2: PUSH1 0x04
000017a4: ADD
000017a5: PUSH1 0x40
000017a7: MLOAD
000017a8: DUP1
000017a9: SWAP2
000017aa: SUB
000017ab: SWAP1
000017ac: REVERT
000017ad: JUMPDEST
000017ae: PUSH2 0x0cad
000017b1: PUSH2 0x1383
000017b4: JUMP
000017b5: JUMPDEST
000017b6: DUP2
000017b7: PUSH1 0x01
000017b9: PUSH1 0x01
000017bb: PUSH1 0xa0
000017bd: SHL
000017be: SUB
000017bf: AND
000017c0: PUSH4 0x52d1902d
000017c5: PUSH1 0x40
000017c7: MLOAD
000017c8: DUP2
000017c9: PUSH4 0xffffffff
000017ce: AND
000017cf: PUSH1 0xe0
000017d1: SHL
000017d2: DUP2
000017d3: MSTORE
000017d4: PUSH1 0x04
000017d6: ADD
000017d7: PUSH1 0x20
000017d9: PUSH1 0x40
000017db: MLOAD
000017dc: DUP1
000017dd: DUP4
000017de: SUB
000017df: DUP2
000017e0: DUP7
000017e1: GAS
000017e2: STATICCALL
000017e3: SWAP3
000017e4: POP
000017e5: POP
000017e6: POP
000017e7: DUP1
000017e8: ISZERO
000017e9: PUSH2 0x180f
000017ec: JUMPI
000017ed: POP
000017ee: PUSH1 0x40
000017f0: DUP1
000017f1: MLOAD
000017f2: PUSH1 0x1f
000017f4: RETURNDATASIZE
000017f5: SWAP1
000017f6: DUP2
000017f7: ADD
000017f8: PUSH1 0x1f
000017fa: NOT
000017fb: AND
000017fc: DUP3
000017fd: ADD
000017fe: SWAP1
000017ff: SWAP3
00001800: MSTORE
00001801: PUSH2 0x180c
00001804: SWAP2
00001805: DUP2
00001806: ADD
00001807: SWAP1
00001808: PUSH2 0x260c
0000180b: JUMP
0000180c: JUMPDEST
0000180d: PUSH1 0x01
0000180f: JUMPDEST
00001810: PUSH2 0x1837
00001813: JUMPI
00001814: PUSH1 0x40
00001816: MLOAD
00001817: PUSH4 0x4c9c8ce3
0000181c: PUSH1 0xe0
0000181e: SHL
0000181f: DUP2
00001820: MSTORE
00001821: PUSH1 0x01
00001823: PUSH1 0x01
00001825: PUSH1 0xa0
00001827: SHL
00001828: SUB
00001829: DUP4
0000182a: AND
0000182b: PUSH1 0x04
0000182d: DUP3
0000182e: ADD
0000182f: MSTORE
00001830: PUSH1 0x24
00001832: ADD
00001833: PUSH2 0x0c9b
00001836: JUMP
00001837: JUMPDEST
00001838: PUSH1 0x00
0000183a: DUP1
0000183b: MLOAD
0000183c: PUSH1 0x20
0000183e: PUSH2 0x2626
00001841: DUP4
00001842: CODECOPY
00001843: DUP2
00001844: MLOAD
00001845: SWAP2
00001846: MSTORE
00001847: DUP2
00001848: EQ
00001849: PUSH2 0x1868
0000184c: JUMPI
0000184d: PUSH1 0x40
0000184f: MLOAD
00001850: PUSH4 0x2a875269
00001855: PUSH1 0xe2
00001857: SHL
00001858: DUP2
00001859: MSTORE
0000185a: PUSH1 0x04
0000185c: DUP2
0000185d: ADD
0000185e: DUP3
0000185f: SWAP1
00001860: MSTORE
00001861: PUSH1 0x24
00001863: ADD
00001864: PUSH2 0x0c9b
00001867: JUMP
00001868: JUMPDEST
00001869: PUSH2 0x0a6a
0000186c: DUP4
0000186d: DUP4
0000186e: PUSH2 0x1cae
00001871: JUMP
00001872: JUMPDEST
00001873: ADDRESS
00001874: PUSH1 0x01
00001876: PUSH1 0x01
00001878: PUSH1 0xa0
0000187a: SHL
0000187b: SUB
0000187c: PUSH32 0x00000000000000000000000049643fc85fb1f25b6775ebbbdc69295d45105abc
0000189d: AND
0000189e: EQ
0000189f: PUSH2 0x0a7f
000018a2: JUMPI
000018a3: PUSH1 0x40
000018a5: MLOAD
000018a6: PUSH4 0x703e46dd
000018ab: PUSH1 0xe1
000018ad: SHL
000018ae: DUP2
000018af: MSTORE
000018b0: PUSH1 0x04
000018b2: ADD
000018b3: PUSH1 0x40
000018b5: MLOAD
000018b6: DUP1
000018b7: SWAP2
000018b8: SUB
000018b9: SWAP1
000018ba: REVERT
000018bb: JUMPDEST
000018bc: PUSH1 0x40
000018be: MLOAD
000018bf: PUSH1 0x01
000018c1: PUSH1 0x01
000018c3: PUSH1 0xa0
000018c5: SHL
000018c6: SUB
000018c7: DUP5
000018c8: DUP2
000018c9: AND
000018ca: PUSH1 0x24
000018cc: DUP4
000018cd: ADD
000018ce: MSTORE
000018cf: DUP4
000018d0: DUP2
000018d1: AND
000018d2: PUSH1 0x44
000018d4: DUP4
000018d5: ADD
000018d6: MSTORE
000018d7: PUSH1 0x64
000018d9: DUP3
000018da: ADD
000018db: DUP4
000018dc: SWAP1
000018dd: MSTORE
000018de: PUSH2 0x18f4
000018e1: SWAP2
000018e2: DUP7
000018e3: SWAP2
000018e4: DUP3
000018e5: AND
000018e6: SWAP1
000018e7: PUSH4 0x23b872dd
000018ec: SWAP1
000018ed: PUSH1 0x84
000018ef: ADD
000018f0: PUSH2 0x1676
000018f3: JUMP
000018f4: JUMPDEST
000018f5: POP
000018f6: POP
000018f7: POP
000018f8: POP
000018f9: JUMP
000018fa: JUMPDEST
000018fb: PUSH32 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00
0000191c: DUP1
0000191d: SLOAD
0000191e: PUSH1 0x01
00001920: PUSH1 0x01
00001922: PUSH1 0xa0
00001924: SHL
00001925: SUB
00001926: NOT
00001927: AND
00001928: DUP2
00001929: SSTORE
0000192a: PUSH2 0x0abd
0000192d: DUP3
0000192e: PUSH2 0x1d04
00001931: JUMP
00001932: JUMPDEST
00001933: PUSH2 0x193a
00001936: PUSH2 0x1577
00001939: JUMP
0000193a: JUMPDEST
0000193b: PUSH1 0x00
0000193d: DUP1
0000193e: MLOAD
0000193f: PUSH1 0x20
00001941: PUSH2 0x2646
00001944: DUP4
00001945: CODECOPY
00001946: DUP2
00001947: MLOAD
00001948: SWAP2
00001949: MSTORE
0000194a: DUP1
0000194b: SLOAD
0000194c: PUSH1 0xff
0000194e: NOT
0000194f: AND
00001950: PUSH1 0x01
00001952: OR
00001953: DUP2
00001954: SSTORE
00001955: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
00001976: CALLER
00001977: PUSH2 0x16ea
0000197a: JUMP
0000197b: JUMPDEST
0000197c: PUSH2 0x1983
0000197f: PUSH2 0x1d75
00001982: JUMP
00001983: JUMPDEST
00001984: PUSH2 0x18f4
00001987: DUP5
00001988: DUP5
00001989: DUP5
0000198a: DUP5
0000198b: PUSH2 0x1dbe
0000198e: JUMP
0000198f: JUMPDEST
00001990: PUSH2 0x1997
00001993: PUSH2 0x1d75
00001996: JUMP
00001997: JUMPDEST
00001998: PUSH2 0x0cad
0000199b: DUP2
0000199c: PUSH2 0x1df4
0000199f: JUMP
000019a0: JUMPDEST
000019a1: PUSH2 0x19a8
000019a4: PUSH2 0x1d75
000019a7: JUMP
000019a8: JUMPDEST
000019a9: PUSH2 0x0a7f
000019ac: PUSH2 0x1e26
000019af: JUMP
000019b0: JUMPDEST
000019b1: PUSH1 0x00
000019b3: DUP5
000019b4: DUP2
000019b5: MSTORE
000019b6: PUSH1 0x05
000019b8: PUSH1 0x20
000019ba: SWAP1
000019bb: DUP2
000019bc: MSTORE
000019bd: PUSH1 0x40
000019bf: DUP1
000019c0: DUP4
000019c1: KECCAK256
000019c2: DUP1
000019c3: SLOAD
000019c4: PUSH1 0xff
000019c6: NOT
000019c7: AND
000019c8: PUSH1 0x01
000019ca: OR
000019cb: SWAP1
000019cc: SSTORE
000019cd: PUSH1 0x04
000019cf: SWAP1
000019d0: SWAP2
000019d1: MSTORE
000019d2: DUP2
000019d3: KECCAK256
000019d4: DUP2
000019d5: SWAP1
000019d6: SSTORE
000019d7: PUSH2 0x19dd
000019da: DUP5
000019db: SWAP1
000019dc: JUMP
000019dd: JUMPDEST
000019de: SWAP1
000019df: POP
000019e0: DUP2
000019e1: PUSH1 0x01
000019e3: PUSH1 0x01
000019e5: PUSH1 0xa0
000019e7: SHL
000019e8: SUB
000019e9: DUP3
000019ea: AND
000019eb: PUSH2 0x1b3f
000019ee: JUMPI
000019ef: PUSH1 0x02
000019f1: SLOAD
000019f2: PUSH1 0x40
000019f4: MLOAD
000019f5: PUSH1 0x24
000019f7: DUP2
000019f8: ADD
000019f9: DUP7
000019fa: SWAP1
000019fb: MSTORE
000019fc: PUSH1 0x00
000019fe: SWAP2
000019ff: PUSH1 0x01
00001a01: PUSH1 0x01
00001a03: PUSH1 0xa0
00001a05: SHL
00001a06: SUB
00001a07: AND
00001a08: SWAP1
00001a09: PUSH1 0x44
00001a0b: ADD
00001a0c: PUSH1 0x40
00001a0e: DUP1
00001a0f: MLOAD
00001a10: PUSH1 0x1f
00001a12: NOT
00001a13: DUP2
00001a14: DUP5
00001a15: SUB
00001a16: ADD
00001a17: DUP2
00001a18: MSTORE
00001a19: SWAP2
00001a1a: DUP2
00001a1b: MSTORE
00001a1c: PUSH1 0x20
00001a1e: DUP3
00001a1f: ADD
00001a20: DUP1
00001a21: MLOAD
00001a22: PUSH1 0x01
00001a24: PUSH1 0x01
00001a26: PUSH1 0xe0
00001a28: SHL
00001a29: SUB
00001a2a: AND
00001a2b: PUSH4 0x2e1a7d4d
00001a30: PUSH1 0xe0
00001a32: SHL
00001a33: OR
00001a34: SWAP1
00001a35: MSTORE
00001a36: MLOAD
00001a37: PUSH2 0x1a40
00001a3a: SWAP2
00001a3b: SWAP1
00001a3c: PUSH2 0x25bd
00001a3f: JUMP
00001a40: JUMPDEST
00001a41: PUSH1 0x00
00001a43: PUSH1 0x40
00001a45: MLOAD
00001a46: DUP1
00001a47: DUP4
00001a48: SUB
00001a49: DUP2
00001a4a: PUSH1 0x00
00001a4c: DUP7
00001a4d: GAS
00001a4e: CALL
00001a4f: SWAP2
00001a50: POP
00001a51: POP
00001a52: RETURNDATASIZE
00001a53: DUP1
00001a54: PUSH1 0x00
00001a56: DUP2
00001a57: EQ
00001a58: PUSH2 0x1a7d
00001a5b: JUMPI
00001a5c: PUSH1 0x40
00001a5e: MLOAD
00001a5f: SWAP2
00001a60: POP
00001a61: PUSH1 0x1f
00001a63: NOT
00001a64: PUSH1 0x3f
00001a66: RETURNDATASIZE
00001a67: ADD
00001a68: AND
00001a69: DUP3
00001a6a: ADD
00001a6b: PUSH1 0x40
00001a6d: MSTORE
00001a6e: RETURNDATASIZE
00001a6f: DUP3
00001a70: MSTORE
00001a71: RETURNDATASIZE
00001a72: PUSH1 0x00
00001a74: PUSH1 0x20
00001a76: DUP5
00001a77: ADD
00001a78: RETURNDATACOPY
00001a79: PUSH2 0x1a82
00001a7c: JUMP
00001a7d: JUMPDEST
00001a7e: PUSH1 0x60
00001a80: SWAP2
00001a81: POP
00001a82: JUMPDEST
00001a83: POP
00001a84: POP
00001a85: SWAP1
00001a86: POP
00001a87: DUP1
00001a88: PUSH2 0x1aa4
00001a8b: JUMPI
00001a8c: PUSH1 0x40
00001a8e: MLOAD
00001a8f: PUSH4 0x5140f6bf
00001a94: PUSH1 0xe1
00001a96: SHL
00001a97: DUP2
00001a98: MSTORE
00001a99: PUSH1 0x04
00001a9b: ADD
00001a9c: PUSH1 0x40
00001a9e: MLOAD
00001a9f: DUP1
00001aa0: SWAP2
00001aa1: SUB
00001aa2: SWAP1
00001aa3: REVERT
00001aa4: JUMPDEST
00001aa5: PUSH1 0x00
00001aa7: DUP3
00001aa8: PUSH1 0x01
00001aaa: PUSH1 0x01
00001aac: PUSH1 0xa0
00001aae: SHL
00001aaf: SUB
00001ab0: AND
00001ab1: DUP7
00001ab2: PUSH2 0x0dac
00001ab5: SWAP1
00001ab6: PUSH1 0x40
00001ab8: MLOAD
00001ab9: PUSH1 0x00
00001abb: PUSH1 0x40
00001abd: MLOAD
00001abe: DUP1
00001abf: DUP4
00001ac0: SUB
00001ac1: DUP2
00001ac2: DUP6
00001ac3: DUP9
00001ac4: DUP9
00001ac5: CALL
00001ac6: SWAP4
00001ac7: POP
00001ac8: POP
00001ac9: POP
00001aca: POP
00001acb: RETURNDATASIZE
00001acc: DUP1
00001acd: PUSH1 0x00
00001acf: DUP2
00001ad0: EQ
00001ad1: PUSH2 0x1af6
00001ad4: JUMPI
00001ad5: PUSH1 0x40
00001ad7: MLOAD
00001ad8: SWAP2
00001ad9: POP
00001ada: PUSH1 0x1f
00001adc: NOT
00001add: PUSH1 0x3f
00001adf: RETURNDATASIZE
00001ae0: ADD
00001ae1: AND
00001ae2: DUP3
00001ae3: ADD
00001ae4: PUSH1 0x40
00001ae6: MSTORE
00001ae7: RETURNDATASIZE
00001ae8: DUP3
00001ae9: MSTORE
00001aea: RETURNDATASIZE
00001aeb: PUSH1 0x00
00001aed: PUSH1 0x20
00001aef: DUP5
00001af0: ADD
00001af1: RETURNDATACOPY
00001af2: PUSH2 0x1afb
00001af5: JUMP
00001af6: JUMPDEST
00001af7: PUSH1 0x60
00001af9: SWAP2
00001afa: POP
00001afb: JUMPDEST
00001afc: POP
00001afd: POP
00001afe: SWAP1
00001aff: POP
00001b00: DUP1
00001b01: PUSH2 0x1b38
00001b04: JUMPI
00001b05: PUSH1 0x40
00001b07: MLOAD
00001b08: DUP9
00001b09: DUP2
00001b0a: MSTORE
00001b0b: PUSH32 0xc8474031e7695217dfb277d2c9b53316979ff23d2b0a1d002e277510971be3c0
00001b2c: SWAP1
00001b2d: PUSH1 0x20
00001b2f: ADD
00001b30: PUSH1 0x40
00001b32: MLOAD
00001b33: DUP1
00001b34: SWAP2
00001b35: SUB
00001b36: SWAP1
00001b37: LOG1
00001b38: JUMPDEST
00001b39: POP
00001b3a: POP
00001b3b: PUSH2 0x1c10
00001b3e: JUMP
00001b3f: JUMPDEST
00001b40: PUSH1 0x01
00001b42: PUSH1 0x01
00001b44: PUSH1 0xa0
00001b46: SHL
00001b47: SUB
00001b48: DUP3
00001b49: AND
00001b4a: PUSH1 0x00
00001b4c: SWAP1
00001b4d: DUP2
00001b4e: MSTORE
00001b4f: PUSH1 0x09
00001b51: PUSH1 0x20
00001b53: MSTORE
00001b54: PUSH1 0x40
00001b56: SWAP1
00001b57: KECCAK256
00001b58: SLOAD
00001b59: PUSH1 0xff
00001b5b: AND
00001b5c: PUSH2 0x1bca
00001b5f: JUMPI
00001b60: PUSH1 0x40
00001b62: MLOAD
00001b63: PUSH4 0x40c10f19
00001b68: PUSH1 0xe0
00001b6a: SHL
00001b6b: DUP2
00001b6c: MSTORE
00001b6d: PUSH1 0x01
00001b6f: PUSH1 0x01
00001b71: PUSH1 0xa0
00001b73: SHL
00001b74: SUB
00001b75: DUP3
00001b76: DUP2
00001b77: AND
00001b78: PUSH1 0x04
00001b7a: DUP4
00001b7b: ADD
00001b7c: MSTORE
00001b7d: PUSH1 0x24
00001b7f: DUP3
00001b80: ADD
00001b81: DUP7
00001b82: SWAP1
00001b83: MSTORE
00001b84: DUP4
00001b85: SWAP2
00001b86: SWAP1
00001b87: DUP3
00001b88: AND
00001b89: SWAP1
00001b8a: PUSH4 0x40c10f19
00001b8f: SWAP1
00001b90: PUSH1 0x44
00001b92: ADD
00001b93: PUSH1 0x00
00001b95: PUSH1 0x40
00001b97: MLOAD
00001b98: DUP1
00001b99: DUP4
00001b9a: SUB
00001b9b: DUP2
00001b9c: PUSH1 0x00
00001b9e: DUP8
00001b9f: DUP1
00001ba0: EXTCODESIZE
00001ba1: ISZERO
00001ba2: DUP1
00001ba3: ISZERO
00001ba4: PUSH2 0x1bac
00001ba7: JUMPI
00001ba8: PUSH1 0x00
00001baa: DUP1
00001bab: REVERT
00001bac: JUMPDEST
00001bad: POP
00001bae: GAS
00001baf: CALL
00001bb0: ISZERO
00001bb1: DUP1
00001bb2: ISZERO
00001bb3: PUSH2 0x1bc0
00001bb6: JUMPI
00001bb7: RETURNDATASIZE
00001bb8: PUSH1 0x00
00001bba: DUP1
00001bbb: RETURNDATACOPY
00001bbc: RETURNDATASIZE
00001bbd: PUSH1 0x00
00001bbf: REVERT
00001bc0: JUMPDEST
00001bc1: POP
00001bc2: POP
00001bc3: POP
00001bc4: POP
00001bc5: POP
00001bc6: PUSH2 0x1c10
00001bc9: JUMP
00001bca: JUMPDEST
00001bcb: DUP2
00001bcc: PUSH2 0x1bd6
00001bcf: DUP2
00001bd0: DUP4
00001bd1: DUP8
00001bd2: PUSH2 0x1e47
00001bd5: JUMP
00001bd6: JUMPDEST
00001bd7: PUSH2 0x1c0e
00001bda: JUMPI
00001bdb: PUSH1 0x40
00001bdd: MLOAD
00001bde: DUP8
00001bdf: DUP2
00001be0: MSTORE
00001be1: PUSH32 0xe8c367fc923e93a5b6174b9e709e10ae2113089a40621f67c5da23e001ff50e0
00001c02: SWAP1
00001c03: PUSH1 0x20
00001c05: ADD
00001c06: PUSH1 0x40
00001c08: MLOAD
00001c09: DUP1
00001c0a: SWAP2
00001c0b: SUB
00001c0c: SWAP1
00001c0d: LOG1
00001c0e: JUMPDEST
00001c0f: POP
00001c10: JUMPDEST
00001c11: PUSH1 0x40
00001c13: MLOAD
00001c14: DUP7
00001c15: DUP2
00001c16: MSTORE
00001c17: PUSH32 0xed6b6ea75ec116db755ad82449230664750da9104c4450d6cd078879a65aed8e
00001c38: SWAP1
00001c39: PUSH1 0x20
00001c3b: ADD
00001c3c: PUSH1 0x40
00001c3e: MLOAD
00001c3f: DUP1
00001c40: SWAP2
00001c41: SUB
00001c42: SWAP1
00001c43: LOG1
00001c44: POP
00001c45: POP
00001c46: POP
00001c47: POP
00001c48: POP
00001c49: POP
00001c4a: JUMP
00001c4b: JUMPDEST
00001c4c: PUSH1 0x00
00001c4e: PUSH2 0x1c60
00001c51: PUSH1 0x01
00001c53: PUSH1 0x01
00001c55: PUSH1 0xa0
00001c57: SHL
00001c58: SUB
00001c59: DUP5
00001c5a: AND
00001c5b: DUP4
00001c5c: PUSH2 0x1f31
00001c5f: JUMP
00001c60: JUMPDEST
00001c61: SWAP1
00001c62: POP
00001c63: DUP1
00001c64: MLOAD
00001c65: PUSH1 0x00
00001c67: EQ
00001c68: ISZERO
00001c69: DUP1
00001c6a: ISZERO
00001c6b: PUSH2 0x1c85
00001c6e: JUMPI
00001c6f: POP
00001c70: DUP1
00001c71: DUP1
00001c72: PUSH1 0x20
00001c74: ADD
00001c75: SWAP1
00001c76: MLOAD
00001c77: DUP2
00001c78: ADD
00001c79: SWAP1
00001c7a: PUSH2 0x1c83
00001c7d: SWAP2
00001c7e: SWAP1
00001c7f: PUSH2 0x25ef
00001c82: JUMP
00001c83: JUMPDEST
00001c84: ISZERO
00001c85: JUMPDEST
00001c86: ISZERO
00001c87: PUSH2 0x0a6a
00001c8a: JUMPI
00001c8b: PUSH1 0x40
00001c8d: MLOAD
00001c8e: PUSH4 0x5274afe7
00001c93: PUSH1 0xe0
00001c95: SHL
00001c96: DUP2
00001c97: MSTORE
00001c98: PUSH1 0x01
00001c9a: PUSH1 0x01
00001c9c: PUSH1 0xa0
00001c9e: SHL
00001c9f: SUB
00001ca0: DUP5
00001ca1: AND
00001ca2: PUSH1 0x04
00001ca4: DUP3
00001ca5: ADD
00001ca6: MSTORE
00001ca7: PUSH1 0x24
00001ca9: ADD
00001caa: PUSH2 0x0c9b
00001cad: JUMP
00001cae: JUMPDEST
00001caf: PUSH2 0x1cb7
00001cb2: DUP3
00001cb3: PUSH2 0x1f3f
00001cb6: JUMP
00001cb7: JUMPDEST
00001cb8: PUSH1 0x40
00001cba: MLOAD
00001cbb: PUSH1 0x01
00001cbd: PUSH1 0x01
00001cbf: PUSH1 0xa0
00001cc1: SHL
00001cc2: SUB
00001cc3: DUP4
00001cc4: AND
00001cc5: SWAP1
00001cc6: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
00001ce7: SWAP1
00001ce8: PUSH1 0x00
00001cea: SWAP1
00001ceb: LOG2
00001cec: DUP1
00001ced: MLOAD
00001cee: ISZERO
00001cef: PUSH2 0x1cfc
00001cf2: JUMPI
00001cf3: PUSH2 0x0a6a
00001cf6: DUP3
00001cf7: DUP3
00001cf8: PUSH2 0x1fa4
00001cfb: JUMP
00001cfc: JUMPDEST
00001cfd: PUSH2 0x0abd
00001d00: PUSH2 0x201a
00001d03: JUMP
00001d04: JUMPDEST
00001d05: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
00001d26: DUP1
00001d27: SLOAD
00001d28: PUSH1 0x01
00001d2a: PUSH1 0x01
00001d2c: PUSH1 0xa0
00001d2e: SHL
00001d2f: SUB
00001d30: NOT
00001d31: DUP2
00001d32: AND
00001d33: PUSH1 0x01
00001d35: PUSH1 0x01
00001d37: PUSH1 0xa0
00001d39: SHL
00001d3a: SUB
00001d3b: DUP5
00001d3c: DUP2
00001d3d: AND
00001d3e: SWAP2
00001d3f: DUP3
00001d40: OR
00001d41: DUP5
00001d42: SSTORE
00001d43: PUSH1 0x40
00001d45: MLOAD
00001d46: SWAP3
00001d47: AND
00001d48: SWAP2
00001d49: DUP3
00001d4a: SWAP1
00001d4b: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001d6c: SWAP1
00001d6d: PUSH1 0x00
00001d6f: SWAP1
00001d70: LOG3
00001d71: POP
00001d72: POP
00001d73: POP
00001d74: JUMP
00001d75: JUMPDEST
00001d76: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00001d97: SLOAD
00001d98: PUSH1 0x01
00001d9a: PUSH1 0x40
00001d9c: SHL
00001d9d: SWAP1
00001d9e: DIV
00001d9f: PUSH1 0xff
00001da1: AND
00001da2: PUSH2 0x0a7f
00001da5: JUMPI
00001da6: PUSH1 0x40
00001da8: MLOAD
00001da9: PUSH4 0x1afcd79f
00001dae: PUSH1 0xe3
00001db0: SHL
00001db1: DUP2
00001db2: MSTORE
00001db3: PUSH1 0x04
00001db5: ADD
00001db6: PUSH1 0x40
00001db8: MLOAD
00001db9: DUP1
00001dba: SWAP2
00001dbb: SUB
00001dbc: SWAP1
00001dbd: REVERT
00001dbe: JUMPDEST
00001dbf: PUSH2 0x1dc6
00001dc2: PUSH2 0x1d75
00001dc5: JUMP
00001dc6: JUMPDEST
00001dc7: PUSH1 0x00
00001dc9: DUP1
00001dca: DUP1
00001dcb: SSTORE
00001dcc: PUSH1 0x01
00001dce: SSTORE
00001dcf: PUSH1 0x02
00001dd1: DUP1
00001dd2: SLOAD
00001dd3: PUSH1 0x01
00001dd5: PUSH1 0x01
00001dd7: PUSH1 0xa0
00001dd9: SHL
00001dda: SUB
00001ddb: NOT
00001ddc: AND
00001ddd: PUSH1 0x01
00001ddf: PUSH1 0x01
00001de1: PUSH1 0xa0
00001de3: SHL
00001de4: SUB
00001de5: DUP4
00001de6: AND
00001de7: OR
00001de8: SWAP1
00001de9: SSTORE
00001dea: PUSH2 0x18f4
00001ded: DUP5
00001dee: DUP5
00001def: DUP5
00001df0: PUSH2 0x13e5
00001df3: JUMP
00001df4: JUMPDEST
00001df5: PUSH2 0x1dfc
00001df8: PUSH2 0x1d75
00001dfb: JUMP
00001dfc: JUMPDEST
00001dfd: PUSH1 0x01
00001dff: PUSH1 0x01
00001e01: PUSH1 0xa0
00001e03: SHL
00001e04: SUB
00001e05: DUP2
00001e06: AND
00001e07: PUSH2 0x0ca4
00001e0a: JUMPI
00001e0b: PUSH1 0x40
00001e0d: MLOAD
00001e0e: PUSH4 0x1e4fbdf7
00001e13: PUSH1 0xe0
00001e15: SHL
00001e16: DUP2
00001e17: MSTORE
00001e18: PUSH1 0x00
00001e1a: PUSH1 0x04
00001e1c: DUP3
00001e1d: ADD
00001e1e: MSTORE
00001e1f: PUSH1 0x24
00001e21: ADD
00001e22: PUSH2 0x0c9b
00001e25: JUMP
00001e26: JUMPDEST
00001e27: PUSH2 0x1e2e
00001e2a: PUSH2 0x1d75
00001e2d: JUMP
00001e2e: JUMPDEST
00001e2f: PUSH1 0x00
00001e31: DUP1
00001e32: MLOAD
00001e33: PUSH1 0x20
00001e35: PUSH2 0x2646
00001e38: DUP4
00001e39: CODECOPY
00001e3a: DUP2
00001e3b: MLOAD
00001e3c: SWAP2
00001e3d: MSTORE
00001e3e: DUP1
00001e3f: SLOAD
00001e40: PUSH1 0xff
00001e42: NOT
00001e43: AND
00001e44: SWAP1
00001e45: SSTORE
00001e46: JUMP
00001e47: JUMPDEST
00001e48: PUSH1 0x40
00001e4a: DUP1
00001e4b: MLOAD
00001e4c: PUSH1 0x01
00001e4e: PUSH1 0x01
00001e50: PUSH1 0xa0
00001e52: SHL
00001e53: SUB
00001e54: DUP5
00001e55: DUP2
00001e56: AND
00001e57: PUSH1 0x24
00001e59: DUP4
00001e5a: ADD
00001e5b: MSTORE
00001e5c: PUSH1 0x44
00001e5e: DUP1
00001e5f: DUP4
00001e60: ADD
00001e61: DUP6
00001e62: SWAP1
00001e63: MSTORE
00001e64: DUP4
00001e65: MLOAD
00001e66: DUP1
00001e67: DUP5
00001e68: SUB
00001e69: SWAP1
00001e6a: SWAP2
00001e6b: ADD
00001e6c: DUP2
00001e6d: MSTORE
00001e6e: PUSH1 0x64
00001e70: SWAP1
00001e71: SWAP3
00001e72: ADD
00001e73: DUP4
00001e74: MSTORE
00001e75: PUSH1 0x20
00001e77: DUP3
00001e78: ADD
00001e79: DUP1
00001e7a: MLOAD
00001e7b: PUSH1 0x01
00001e7d: PUSH1 0x01
00001e7f: PUSH1 0xe0
00001e81: SHL
00001e82: SUB
00001e83: AND
00001e84: PUSH4 0xa9059cbb
00001e89: PUSH1 0xe0
00001e8b: SHL
00001e8c: OR
00001e8d: SWAP1
00001e8e: MSTORE
00001e8f: SWAP2
00001e90: MLOAD
00001e91: PUSH1 0x00
00001e93: SWAP3
00001e94: DUP4
00001e95: SWAP3
00001e96: DUP4
00001e97: SWAP3
00001e98: SWAP2
00001e99: DUP9
00001e9a: AND
00001e9b: SWAP2
00001e9c: PUSH2 0x1ea5
00001e9f: SWAP2
00001ea0: SWAP1
00001ea1: PUSH2 0x25bd
00001ea4: JUMP
00001ea5: JUMPDEST
00001ea6: PUSH1 0x00
00001ea8: PUSH1 0x40
00001eaa: MLOAD
00001eab: DUP1
00001eac: DUP4
00001ead: SUB
00001eae: DUP2
00001eaf: PUSH1 0x00
00001eb1: DUP7
00001eb2: GAS
00001eb3: CALL
00001eb4: SWAP2
00001eb5: POP
00001eb6: POP
00001eb7: RETURNDATASIZE
00001eb8: DUP1
00001eb9: PUSH1 0x00
00001ebb: DUP2
00001ebc: EQ
00001ebd: PUSH2 0x1ee2
00001ec0: JUMPI
00001ec1: PUSH1 0x40
00001ec3: MLOAD
00001ec4: SWAP2
00001ec5: POP
00001ec6: PUSH1 0x1f
00001ec8: NOT
00001ec9: PUSH1 0x3f
00001ecb: RETURNDATASIZE
00001ecc: ADD
00001ecd: AND
00001ece: DUP3
00001ecf: ADD
00001ed0: PUSH1 0x40
00001ed2: MSTORE
00001ed3: RETURNDATASIZE
00001ed4: DUP3
00001ed5: MSTORE
00001ed6: RETURNDATASIZE
00001ed7: PUSH1 0x00
00001ed9: PUSH1 0x20
00001edb: DUP5
00001edc: ADD
00001edd: RETURNDATACOPY
00001ede: PUSH2 0x1ee7
00001ee1: JUMP
00001ee2: JUMPDEST
00001ee3: PUSH1 0x60
00001ee5: SWAP2
00001ee6: POP
00001ee7: JUMPDEST
00001ee8: POP
00001ee9: SWAP2
00001eea: POP
00001eeb: SWAP2
00001eec: POP
00001eed: DUP2
00001eee: DUP1
00001eef: ISZERO
00001ef0: PUSH2 0x1f11
00001ef3: JUMPI
00001ef4: POP
00001ef5: DUP1
00001ef6: MLOAD
00001ef7: ISZERO
00001ef8: DUP1
00001ef9: PUSH2 0x1f11
00001efc: JUMPI
00001efd: POP
00001efe: DUP1
00001eff: DUP1
00001f00: PUSH1 0x20
00001f02: ADD
00001f03: SWAP1
00001f04: MLOAD
00001f05: DUP2
00001f06: ADD
00001f07: SWAP1
00001f08: PUSH2 0x1f11
00001f0b: SWAP2
00001f0c: SWAP1
00001f0d: PUSH2 0x25ef
00001f10: JUMP
00001f11: JUMPDEST
00001f12: DUP1
00001f13: ISZERO
00001f14: PUSH2 0x1f27
00001f17: JUMPI
00001f18: POP
00001f19: PUSH1 0x00
00001f1b: DUP7
00001f1c: PUSH1 0x01
00001f1e: PUSH1 0x01
00001f20: PUSH1 0xa0
00001f22: SHL
00001f23: SUB
00001f24: AND
00001f25: EXTCODESIZE
00001f26: GT
00001f27: JUMPDEST
00001f28: SWAP7
00001f29: SWAP6
00001f2a: POP
00001f2b: POP
00001f2c: POP
00001f2d: POP
00001f2e: POP
00001f2f: POP
00001f30: JUMP
00001f31: JUMPDEST
00001f32: PUSH1 0x60
00001f34: PUSH2 0x1276
00001f37: DUP4
00001f38: DUP4
00001f39: PUSH1 0x00
00001f3b: PUSH2 0x2039
00001f3e: JUMP
00001f3f: JUMPDEST
00001f40: DUP1
00001f41: PUSH1 0x01
00001f43: PUSH1 0x01
00001f45: PUSH1 0xa0
00001f47: SHL
00001f48: SUB
00001f49: AND
00001f4a: EXTCODESIZE
00001f4b: PUSH1 0x00
00001f4d: SUB
00001f4e: PUSH2 0x1f75
00001f51: JUMPI
00001f52: PUSH1 0x40
00001f54: MLOAD
00001f55: PUSH4 0x4c9c8ce3
00001f5a: PUSH1 0xe0
00001f5c: SHL
00001f5d: DUP2
00001f5e: MSTORE
00001f5f: PUSH1 0x01
00001f61: PUSH1 0x01
00001f63: PUSH1 0xa0
00001f65: SHL
00001f66: SUB
00001f67: DUP3
00001f68: AND
00001f69: PUSH1 0x04
00001f6b: DUP3
00001f6c: ADD
00001f6d: MSTORE
00001f6e: PUSH1 0x24
00001f70: ADD
00001f71: PUSH2 0x0c9b
00001f74: JUMP
00001f75: JUMPDEST
00001f76: PUSH1 0x00
00001f78: DUP1
00001f79: MLOAD
00001f7a: PUSH1 0x20
00001f7c: PUSH2 0x2626
00001f7f: DUP4
00001f80: CODECOPY
00001f81: DUP2
00001f82: MLOAD
00001f83: SWAP2
00001f84: MSTORE
00001f85: DUP1
00001f86: SLOAD
00001f87: PUSH1 0x01
00001f89: PUSH1 0x01
00001f8b: PUSH1 0xa0
00001f8d: SHL
00001f8e: SUB
00001f8f: NOT
00001f90: AND
00001f91: PUSH1 0x01
00001f93: PUSH1 0x01
00001f95: PUSH1 0xa0
00001f97: SHL
00001f98: SUB
00001f99: SWAP3
00001f9a: SWAP1
00001f9b: SWAP3
00001f9c: AND
00001f9d: SWAP2
00001f9e: SWAP1
00001f9f: SWAP2
00001fa0: OR
00001fa1: SWAP1
00001fa2: SSTORE
00001fa3: JUMP
00001fa4: JUMPDEST
00001fa5: PUSH1 0x60
00001fa7: PUSH1 0x00
00001fa9: DUP1
00001faa: DUP5
00001fab: PUSH1 0x01
00001fad: PUSH1 0x01
00001faf: PUSH1 0xa0
00001fb1: SHL
00001fb2: SUB
00001fb3: AND
00001fb4: DUP5
00001fb5: PUSH1 0x40
00001fb7: MLOAD
00001fb8: PUSH2 0x1fc1
00001fbb: SWAP2
00001fbc: SWAP1
00001fbd: PUSH2 0x25bd
00001fc0: JUMP
00001fc1: JUMPDEST
00001fc2: PUSH1 0x00
00001fc4: PUSH1 0x40
00001fc6: MLOAD
00001fc7: DUP1
00001fc8: DUP4
00001fc9: SUB
00001fca: DUP2
00001fcb: DUP6
00001fcc: GAS
00001fcd: DELEGATECALL
00001fce: SWAP2
00001fcf: POP
00001fd0: POP
00001fd1: RETURNDATASIZE
00001fd2: DUP1
00001fd3: PUSH1 0x00
00001fd5: DUP2
00001fd6: EQ
00001fd7: PUSH2 0x1ffc
00001fda: JUMPI
00001fdb: PUSH1 0x40
00001fdd: MLOAD
00001fde: SWAP2
00001fdf: POP
00001fe0: PUSH1 0x1f
00001fe2: NOT
00001fe3: PUSH1 0x3f
00001fe5: RETURNDATASIZE
00001fe6: ADD
00001fe7: AND
00001fe8: DUP3
00001fe9: ADD
00001fea: PUSH1 0x40
00001fec: MSTORE
00001fed: RETURNDATASIZE
00001fee: DUP3
00001fef: MSTORE
00001ff0: RETURNDATASIZE
00001ff1: PUSH1 0x00
00001ff3: PUSH1 0x20
00001ff5: DUP5
00001ff6: ADD
00001ff7: RETURNDATACOPY
00001ff8: PUSH2 0x2001
00001ffb: JUMP
00001ffc: JUMPDEST
00001ffd: PUSH1 0x60
00001fff: SWAP2
00002000: POP
00002001: JUMPDEST
00002002: POP
00002003: SWAP2
00002004: POP
00002005: SWAP2
00002006: POP
00002007: PUSH2 0x2011
0000200a: DUP6
0000200b: DUP4
0000200c: DUP4
0000200d: PUSH2 0x20c8
00002010: JUMP
00002011: JUMPDEST
00002012: SWAP6
00002013: SWAP5
00002014: POP
00002015: POP
00002016: POP
00002017: POP
00002018: POP
00002019: JUMP
0000201a: JUMPDEST
0000201b: CALLVALUE
0000201c: ISZERO
0000201d: PUSH2 0x0a7f
00002020: JUMPI
00002021: PUSH1 0x40
00002023: MLOAD
00002024: PUSH4 0xb398979f
00002029: PUSH1 0xe0
0000202b: SHL
0000202c: DUP2
0000202d: MSTORE
0000202e: PUSH1 0x04
00002030: ADD
00002031: PUSH1 0x40
00002033: MLOAD
00002034: DUP1
00002035: SWAP2
00002036: SUB
00002037: SWAP1
00002038: REVERT
00002039: JUMPDEST
0000203a: PUSH1 0x60
0000203c: DUP2
0000203d: SELFBALANCE
0000203e: LT
0000203f: ISZERO
00002040: PUSH2 0x205e
00002043: JUMPI
00002044: PUSH1 0x40
00002046: MLOAD
00002047: PUSH4 0xcd786059
0000204c: PUSH1 0xe0
0000204e: SHL
0000204f: DUP2
00002050: MSTORE
00002051: ADDRESS
00002052: PUSH1 0x04
00002054: DUP3
00002055: ADD
00002056: MSTORE
00002057: PUSH1 0x24
00002059: ADD
0000205a: PUSH2 0x0c9b
0000205d: JUMP
0000205e: JUMPDEST
0000205f: PUSH1 0x00
00002061: DUP1
00002062: DUP6
00002063: PUSH1 0x01
00002065: PUSH1 0x01
00002067: PUSH1 0xa0
00002069: SHL
0000206a: SUB
0000206b: AND
0000206c: DUP5
0000206d: DUP7
0000206e: PUSH1 0x40
00002070: MLOAD
00002071: PUSH2 0x207a
00002074: SWAP2
00002075: SWAP1
00002076: PUSH2 0x25bd
00002079: JUMP
0000207a: JUMPDEST
0000207b: PUSH1 0x00
0000207d: PUSH1 0x40
0000207f: MLOAD
00002080: DUP1
00002081: DUP4
00002082: SUB
00002083: DUP2
00002084: DUP6
00002085: DUP8
00002086: GAS
00002087: CALL
00002088: SWAP3
00002089: POP
0000208a: POP
0000208b: POP
0000208c: RETURNDATASIZE
0000208d: DUP1
0000208e: PUSH1 0x00
00002090: DUP2
00002091: EQ
00002092: PUSH2 0x20b7
00002095: JUMPI
00002096: PUSH1 0x40
00002098: MLOAD
00002099: SWAP2
0000209a: POP
0000209b: PUSH1 0x1f
0000209d: NOT
0000209e: PUSH1 0x3f
000020a0: RETURNDATASIZE
000020a1: ADD
000020a2: AND
000020a3: DUP3
000020a4: ADD
000020a5: PUSH1 0x40
000020a7: MSTORE
000020a8: RETURNDATASIZE
000020a9: DUP3
000020aa: MSTORE
000020ab: RETURNDATASIZE
000020ac: PUSH1 0x00
000020ae: PUSH1 0x20
000020b0: DUP5
000020b1: ADD
000020b2: RETURNDATACOPY
000020b3: PUSH2 0x20bc
000020b6: JUMP
000020b7: JUMPDEST
000020b8: PUSH1 0x60
000020ba: SWAP2
000020bb: POP
000020bc: JUMPDEST
000020bd: POP
000020be: SWAP2
000020bf: POP
000020c0: SWAP2
000020c1: POP
000020c2: PUSH2 0x1f27
000020c5: DUP7
000020c6: DUP4
000020c7: DUP4
000020c8: JUMPDEST
000020c9: PUSH1 0x60
000020cb: DUP3
000020cc: PUSH2 0x20dd
000020cf: JUMPI
000020d0: PUSH2 0x20d8
000020d3: DUP3
000020d4: PUSH2 0x2124
000020d7: JUMP
000020d8: JUMPDEST
000020d9: PUSH2 0x1276
000020dc: JUMP
000020dd: JUMPDEST
000020de: DUP2
000020df: MLOAD
000020e0: ISZERO
000020e1: DUP1
000020e2: ISZERO
000020e3: PUSH2 0x20f4
000020e6: JUMPI
000020e7: POP
000020e8: PUSH1 0x01
000020ea: PUSH1 0x01
000020ec: PUSH1 0xa0
000020ee: SHL
000020ef: SUB
000020f0: DUP5
000020f1: AND
000020f2: EXTCODESIZE
000020f3: ISZERO
000020f4: JUMPDEST
000020f5: ISZERO
000020f6: PUSH2 0x211d
000020f9: JUMPI
000020fa: PUSH1 0x40
000020fc: MLOAD
000020fd: PUSH4 0x9996b315
00002102: PUSH1 0xe0
00002104: SHL
00002105: DUP2
00002106: MSTORE
00002107: PUSH1 0x01
00002109: PUSH1 0x01
0000210b: PUSH1 0xa0
0000210d: SHL
0000210e: SUB
0000210f: DUP6
00002110: AND
00002111: PUSH1 0x04
00002113: DUP3
00002114: ADD
00002115: MSTORE
00002116: PUSH1 0x24
00002118: ADD
00002119: PUSH2 0x0c9b
0000211c: JUMP
0000211d: JUMPDEST
0000211e: POP
0000211f: DUP1
00002120: PUSH2 0x1276
00002123: JUMP
00002124: JUMPDEST
00002125: DUP1
00002126: MLOAD
00002127: ISZERO
00002128: PUSH2 0x2134
0000212b: JUMPI
0000212c: DUP1
0000212d: MLOAD
0000212e: DUP1
0000212f: DUP3
00002130: PUSH1 0x20
00002132: ADD
00002133: REVERT
00002134: JUMPDEST
00002135: PUSH1 0x40
00002137: MLOAD
00002138: PUSH4 0x0a12f521
0000213d: PUSH1 0xe1
0000213f: SHL
00002140: DUP2
00002141: MSTORE
00002142: PUSH1 0x04
00002144: ADD
00002145: PUSH1 0x40
00002147: MLOAD
00002148: DUP1
00002149: SWAP2
0000214a: SUB
0000214b: SWAP1
0000214c: REVERT
0000214d: JUMPDEST
0000214e: DUP1
0000214f: ISZERO
00002150: ISZERO
00002151: DUP2
00002152: EQ
00002153: PUSH2 0x0cad
00002156: JUMPI
00002157: PUSH1 0x00
00002159: DUP1
0000215a: REVERT
0000215b: JUMPDEST
0000215c: PUSH1 0x00
0000215e: DUP1
0000215f: PUSH1 0x00
00002161: PUSH1 0x60
00002163: DUP5
00002164: DUP7
00002165: SUB
00002166: SLT
00002167: ISZERO
00002168: PUSH2 0x2170
0000216b: JUMPI
0000216c: PUSH1 0x00
0000216e: DUP1
0000216f: REVERT
00002170: JUMPDEST
00002171: DUP4
00002172: CALLDATALOAD
00002173: SWAP3
00002174: POP
00002175: PUSH1 0x20
00002177: DUP5
00002178: ADD
00002179: CALLDATALOAD
0000217a: SWAP2
0000217b: POP
0000217c: PUSH1 0x40
0000217e: DUP5
0000217f: ADD
00002180: CALLDATALOAD
00002181: PUSH2 0x2189
00002184: DUP2
00002185: PUSH2 0x214d
00002188: JUMP
00002189: JUMPDEST
0000218a: DUP1
0000218b: SWAP2
0000218c: POP
0000218d: POP
0000218e: SWAP3
0000218f: POP
00002190: SWAP3
00002191: POP
00002192: SWAP3
00002193: JUMP
00002194: JUMPDEST
00002195: PUSH1 0x00
00002197: DUP1
00002198: DUP4
00002199: PUSH1 0x1f
0000219b: DUP5
0000219c: ADD
0000219d: SLT
0000219e: PUSH2 0x21a6
000021a1: JUMPI
000021a2: PUSH1 0x00
000021a4: DUP1
000021a5: REVERT
000021a6: JUMPDEST
000021a7: POP
000021a8: DUP2
000021a9: CALLDATALOAD
000021aa: PUSH8 0xffffffffffffffff
000021b3: DUP2
000021b4: GT
000021b5: ISZERO
000021b6: PUSH2 0x21be
000021b9: JUMPI
000021ba: PUSH1 0x00
000021bc: DUP1
000021bd: REVERT
000021be: JUMPDEST
000021bf: PUSH1 0x20
000021c1: DUP4
000021c2: ADD
000021c3: SWAP2
000021c4: POP
000021c5: DUP4
000021c6: PUSH1 0x20
000021c8: DUP3
000021c9: PUSH1 0x05
000021cb: SHL
000021cc: DUP6
000021cd: ADD
000021ce: ADD
000021cf: GT
000021d0: ISZERO
000021d1: PUSH2 0x21d9
000021d4: JUMPI
000021d5: PUSH1 0x00
000021d7: DUP1
000021d8: REVERT
000021d9: JUMPDEST
000021da: SWAP3
000021db: POP
000021dc: SWAP3
000021dd: SWAP1
000021de: POP
000021df: JUMP
000021e0: JUMPDEST
000021e1: PUSH1 0x00
000021e3: DUP1
000021e4: PUSH1 0x00
000021e6: PUSH1 0x40
000021e8: DUP5
000021e9: DUP7
000021ea: SUB
000021eb: SLT
000021ec: ISZERO
000021ed: PUSH2 0x21f5
000021f0: JUMPI
000021f1: PUSH1 0x00
000021f3: DUP1
000021f4: REVERT
000021f5: JUMPDEST
000021f6: DUP4
000021f7: CALLDATALOAD
000021f8: PUSH8 0xffffffffffffffff
00002201: DUP2
00002202: GT
00002203: ISZERO
00002204: PUSH2 0x220c
00002207: JUMPI
00002208: PUSH1 0x00
0000220a: DUP1
0000220b: REVERT
0000220c: JUMPDEST
0000220d: PUSH2 0x2218
00002210: DUP7
00002211: DUP3
00002212: DUP8
00002213: ADD
00002214: PUSH2 0x2194
00002217: JUMP
00002218: JUMPDEST
00002219: SWAP1
0000221a: SWAP8
0000221b: SWAP1
0000221c: SWAP7
0000221d: POP
0000221e: PUSH1 0x20
00002220: SWAP6
00002221: SWAP1
00002222: SWAP6
00002223: ADD
00002224: CALLDATALOAD
00002225: SWAP5
00002226: SWAP4
00002227: POP
00002228: POP
00002229: POP
0000222a: POP
0000222b: JUMP
0000222c: JUMPDEST
0000222d: PUSH1 0x01
0000222f: PUSH1 0x01
00002231: PUSH1 0xa0
00002233: SHL
00002234: SUB
00002235: DUP2
00002236: AND
00002237: DUP2
00002238: EQ
00002239: PUSH2 0x0cad
0000223c: JUMPI
0000223d: PUSH1 0x00
0000223f: DUP1
00002240: REVERT
00002241: JUMPDEST
00002242: PUSH1 0x00
00002244: PUSH1 0x20
00002246: DUP3
00002247: DUP5
00002248: SUB
00002249: SLT
0000224a: ISZERO
0000224b: PUSH2 0x2253
0000224e: JUMPI
0000224f: PUSH1 0x00
00002251: DUP1
00002252: REVERT
00002253: JUMPDEST
00002254: DUP2
00002255: CALLDATALOAD
00002256: PUSH2 0x1276
00002259: DUP2
0000225a: PUSH2 0x222c
0000225d: JUMP
0000225e: JUMPDEST
0000225f: PUSH1 0x00
00002261: PUSH1 0x20
00002263: DUP3
00002264: DUP5
00002265: SUB
00002266: SLT
00002267: ISZERO
00002268: PUSH2 0x2270
0000226b: JUMPI
0000226c: PUSH1 0x00
0000226e: DUP1
0000226f: REVERT
00002270: JUMPDEST
00002271: POP
00002272: CALLDATALOAD
00002273: SWAP2
00002274: SWAP1
00002275: POP
00002276: JUMP
00002277: JUMPDEST
00002278: PUSH1 0x00
0000227a: DUP1
0000227b: PUSH1 0x40
0000227d: DUP4
0000227e: DUP6
0000227f: SUB
00002280: SLT
00002281: ISZERO
00002282: PUSH2 0x228a
00002285: JUMPI
00002286: PUSH1 0x00
00002288: DUP1
00002289: REVERT
0000228a: JUMPDEST
0000228b: DUP3
0000228c: CALLDATALOAD
0000228d: SWAP2
0000228e: POP
0000228f: PUSH1 0x20
00002291: DUP4
00002292: ADD
00002293: CALLDATALOAD
00002294: PUSH2 0x229c
00002297: DUP2
00002298: PUSH2 0x222c
0000229b: JUMP
0000229c: JUMPDEST
0000229d: DUP1
0000229e: SWAP2
0000229f: POP
000022a0: POP
000022a1: SWAP3
000022a2: POP
000022a3: SWAP3
000022a4: SWAP1
000022a5: POP
000022a6: JUMP
000022a7: JUMPDEST
000022a8: PUSH1 0x00
000022aa: DUP1
000022ab: PUSH1 0x00
000022ad: PUSH1 0x60
000022af: DUP5
000022b0: DUP7
000022b1: SUB
000022b2: SLT
000022b3: ISZERO
000022b4: PUSH2 0x22bc
000022b7: JUMPI
000022b8: PUSH1 0x00
000022ba: DUP1
000022bb: REVERT
000022bc: JUMPDEST
000022bd: DUP4
000022be: CALLDATALOAD
000022bf: PUSH2 0x22c7
000022c2: DUP2
000022c3: PUSH2 0x222c
000022c6: JUMP
000022c7: JUMPDEST
000022c8: SWAP3
000022c9: POP
000022ca: PUSH1 0x20
000022cc: DUP5
000022cd: ADD
000022ce: CALLDATALOAD
000022cf: PUSH2 0x22d7
000022d2: DUP2
000022d3: PUSH2 0x222c
000022d6: JUMP
000022d7: JUMPDEST
000022d8: SWAP3
000022d9: SWAP6
000022da: SWAP3
000022db: SWAP5
000022dc: POP
000022dd: POP
000022de: POP
000022df: PUSH1 0x40
000022e1: SWAP2
000022e2: SWAP1
000022e3: SWAP2
000022e4: ADD
000022e5: CALLDATALOAD
000022e6: SWAP1
000022e7: JUMP
000022e8: JUMPDEST
000022e9: PUSH4 0x4e487b71
000022ee: PUSH1 0xe0
000022f0: SHL
000022f1: PUSH1 0x00
000022f3: MSTORE
000022f4: PUSH1 0x41
000022f6: PUSH1 0x04
000022f8: MSTORE
000022f9: PUSH1 0x24
000022fb: PUSH1 0x00
000022fd: REVERT
000022fe: JUMPDEST
000022ff: PUSH1 0x00
00002301: DUP1
00002302: PUSH1 0x40
00002304: DUP4
00002305: DUP6
00002306: SUB
00002307: SLT
00002308: ISZERO
00002309: PUSH2 0x2311
0000230c: JUMPI
0000230d: PUSH1 0x00
0000230f: DUP1
00002310: REVERT
00002311: JUMPDEST
00002312: DUP3
00002313: CALLDATALOAD
00002314: PUSH2 0x231c
00002317: DUP2
00002318: PUSH2 0x222c
0000231b: JUMP
0000231c: JUMPDEST
0000231d: SWAP2
0000231e: POP
0000231f: PUSH1 0x20
00002321: DUP4
00002322: ADD
00002323: CALLDATALOAD
00002324: PUSH8 0xffffffffffffffff
0000232d: DUP1
0000232e: DUP3
0000232f: GT
00002330: ISZERO
00002331: PUSH2 0x2339
00002334: JUMPI
00002335: PUSH1 0x00
00002337: DUP1
00002338: REVERT
00002339: JUMPDEST
0000233a: DUP2
0000233b: DUP6
0000233c: ADD
0000233d: SWAP2
0000233e: POP
0000233f: DUP6
00002340: PUSH1 0x1f
00002342: DUP4
00002343: ADD
00002344: SLT
00002345: PUSH2 0x234d
00002348: JUMPI
00002349: PUSH1 0x00
0000234b: DUP1
0000234c: REVERT
0000234d: JUMPDEST
0000234e: DUP2
0000234f: CALLDATALOAD
00002350: DUP2
00002351: DUP2
00002352: GT
00002353: ISZERO
00002354: PUSH2 0x235f
00002357: JUMPI
00002358: PUSH2 0x235f
0000235b: PUSH2 0x22e8
0000235e: JUMP
0000235f: JUMPDEST
00002360: PUSH1 0x40
00002362: MLOAD
00002363: PUSH1 0x1f
00002365: DUP3
00002366: ADD
00002367: PUSH1 0x1f
00002369: NOT
0000236a: SWAP1
0000236b: DUP2
0000236c: AND
0000236d: PUSH1 0x3f
0000236f: ADD
00002370: AND
00002371: DUP2
00002372: ADD
00002373: SWAP1
00002374: DUP4
00002375: DUP3
00002376: GT
00002377: DUP2
00002378: DUP4
00002379: LT
0000237a: OR
0000237b: ISZERO
0000237c: PUSH2 0x2387
0000237f: JUMPI
00002380: PUSH2 0x2387
00002383: PUSH2 0x22e8
00002386: JUMP
00002387: JUMPDEST
00002388: DUP2
00002389: PUSH1 0x40
0000238b: MSTORE
0000238c: DUP3
0000238d: DUP2
0000238e: MSTORE
0000238f: DUP9
00002390: PUSH1 0x20
00002392: DUP5
00002393: DUP8
00002394: ADD
00002395: ADD
00002396: GT
00002397: ISZERO
00002398: PUSH2 0x23a0
0000239b: JUMPI
0000239c: PUSH1 0x00
0000239e: DUP1
0000239f: REVERT
000023a0: JUMPDEST
000023a1: DUP3
000023a2: PUSH1 0x20
000023a4: DUP7
000023a5: ADD
000023a6: PUSH1 0x20
000023a8: DUP4
000023a9: ADD
000023aa: CALLDATACOPY
000023ab: PUSH1 0x00
000023ad: PUSH1 0x20
000023af: DUP5
000023b0: DUP4
000023b1: ADD
000023b2: ADD
000023b3: MSTORE
000023b4: DUP1
000023b5: SWAP6
000023b6: POP
000023b7: POP
000023b8: POP
000023b9: POP
000023ba: POP
000023bb: POP
000023bc: SWAP3
000023bd: POP
000023be: SWAP3
000023bf: SWAP1
000023c0: POP
000023c1: JUMP
000023c2: JUMPDEST
000023c3: PUSH1 0x00
000023c5: DUP1
000023c6: PUSH1 0x40
000023c8: DUP4
000023c9: DUP6
000023ca: SUB
000023cb: SLT
000023cc: ISZERO
000023cd: PUSH2 0x23d5
000023d0: JUMPI
000023d1: PUSH1 0x00
000023d3: DUP1
000023d4: REVERT
000023d5: JUMPDEST
000023d6: POP
000023d7: POP
000023d8: DUP1
000023d9: CALLDATALOAD
000023da: SWAP3
000023db: PUSH1 0x20
000023dd: SWAP1
000023de: SWAP2
000023df: ADD
000023e0: CALLDATALOAD
000023e1: SWAP2
000023e2: POP
000023e3: JUMP
000023e4: JUMPDEST
000023e5: PUSH1 0x00
000023e7: DUP1
000023e8: PUSH1 0x40
000023ea: DUP4
000023eb: DUP6
000023ec: SUB
000023ed: SLT
000023ee: ISZERO
000023ef: PUSH2 0x23f7
000023f2: JUMPI
000023f3: PUSH1 0x00
000023f5: DUP1
000023f6: REVERT
000023f7: JUMPDEST
000023f8: DUP3
000023f9: CALLDATALOAD
000023fa: SWAP2
000023fb: POP
000023fc: PUSH1 0x20
000023fe: DUP4
000023ff: ADD
00002400: CALLDATALOAD
00002401: PUSH2 0x229c
00002404: DUP2
00002405: PUSH2 0x214d
00002408: JUMP
00002409: JUMPDEST
0000240a: PUSH1 0x00
0000240c: DUP1
0000240d: PUSH1 0x40
0000240f: DUP4
00002410: DUP6
00002411: SUB
00002412: SLT
00002413: ISZERO
00002414: PUSH2 0x241c
00002417: JUMPI
00002418: PUSH1 0x00
0000241a: DUP1
0000241b: REVERT
0000241c: JUMPDEST
0000241d: DUP3
0000241e: CALLDATALOAD
0000241f: PUSH2 0x2427
00002422: DUP2
00002423: PUSH2 0x222c
00002426: JUMP
00002427: JUMPDEST
00002428: SWAP5
00002429: PUSH1 0x20
0000242b: SWAP4
0000242c: SWAP1
0000242d: SWAP4
0000242e: ADD
0000242f: CALLDATALOAD
00002430: SWAP4
00002431: POP
00002432: POP
00002433: POP
00002434: JUMP
00002435: JUMPDEST
00002436: PUSH1 0x00
00002438: JUMPDEST
00002439: DUP4
0000243a: DUP2
0000243b: LT
0000243c: ISZERO
0000243d: PUSH2 0x2450
00002440: JUMPI
00002441: DUP2
00002442: DUP2
00002443: ADD
00002444: MLOAD
00002445: DUP4
00002446: DUP3
00002447: ADD
00002448: MSTORE
00002449: PUSH1 0x20
0000244b: ADD
0000244c: PUSH2 0x2438
0000244f: JUMP
00002450: JUMPDEST
00002451: POP
00002452: POP
00002453: PUSH1 0x00
00002455: SWAP2
00002456: ADD
00002457: MSTORE
00002458: JUMP
00002459: JUMPDEST
0000245a: PUSH1 0x20
0000245c: DUP2
0000245d: MSTORE
0000245e: PUSH1 0x00
00002460: DUP3
00002461: MLOAD
00002462: DUP1
00002463: PUSH1 0x20
00002465: DUP5
00002466: ADD
00002467: MSTORE
00002468: PUSH2 0x2478
0000246b: DUP2
0000246c: PUSH1 0x40
0000246e: DUP6
0000246f: ADD
00002470: PUSH1 0x20
00002472: DUP8
00002473: ADD
00002474: PUSH2 0x2435
00002477: JUMP
00002478: JUMPDEST
00002479: PUSH1 0x1f
0000247b: ADD
0000247c: PUSH1 0x1f
0000247e: NOT
0000247f: AND
00002480: SWAP2
00002481: SWAP1
00002482: SWAP2
00002483: ADD
00002484: PUSH1 0x40
00002486: ADD
00002487: SWAP3
00002488: SWAP2
00002489: POP
0000248a: POP
0000248b: JUMP
0000248c: JUMPDEST
0000248d: PUSH1 0x00
0000248f: DUP1
00002490: PUSH1 0x00
00002492: PUSH1 0x60
00002494: DUP5
00002495: DUP7
00002496: SUB
00002497: SLT
00002498: ISZERO
00002499: PUSH2 0x24a1
0000249c: JUMPI
0000249d: PUSH1 0x00
0000249f: DUP1
000024a0: REVERT
000024a1: JUMPDEST
000024a2: POP
000024a3: POP
000024a4: DUP2
000024a5: CALLDATALOAD
000024a6: SWAP4
000024a7: PUSH1 0x20
000024a9: DUP4
000024aa: ADD
000024ab: CALLDATALOAD
000024ac: SWAP4
000024ad: POP
000024ae: PUSH1 0x40
000024b0: SWAP1
000024b1: SWAP3
000024b2: ADD
000024b3: CALLDATALOAD
000024b4: SWAP2
000024b5: SWAP1
000024b6: POP
000024b7: JUMP
000024b8: JUMPDEST
000024b9: PUSH1 0x00
000024bb: DUP1
000024bc: PUSH1 0x00
000024be: DUP1
000024bf: PUSH1 0x00
000024c1: PUSH1 0x80
000024c3: DUP7
000024c4: DUP9
000024c5: SUB
000024c6: SLT
000024c7: ISZERO
000024c8: PUSH2 0x24d0
000024cb: JUMPI
000024cc: PUSH1 0x00
000024ce: DUP1
000024cf: REVERT
000024d0: JUMPDEST
000024d1: DUP6
000024d2: CALLDATALOAD
000024d3: PUSH8 0xffffffffffffffff
000024dc: DUP2
000024dd: GT
000024de: ISZERO
000024df: PUSH2 0x24e7
000024e2: JUMPI
000024e3: PUSH1 0x00
000024e5: DUP1
000024e6: REVERT
000024e7: JUMPDEST
000024e8: PUSH2 0x24f3
000024eb: DUP9
000024ec: DUP3
000024ed: DUP10
000024ee: ADD
000024ef: PUSH2 0x2194
000024f2: JUMP
000024f3: JUMPDEST
000024f4: SWAP1
000024f5: SWAP7
000024f6: POP
000024f7: SWAP5
000024f8: POP
000024f9: POP
000024fa: PUSH1 0x20
000024fc: DUP7
000024fd: ADD
000024fe: CALLDATALOAD
000024ff: SWAP3
00002500: POP
00002501: PUSH1 0x40
00002503: DUP7
00002504: ADD
00002505: CALLDATALOAD
00002506: PUSH2 0x250e
00002509: DUP2
0000250a: PUSH2 0x222c
0000250d: JUMP
0000250e: JUMPDEST
0000250f: SWAP2
00002510: POP
00002511: PUSH1 0x60
00002513: DUP7
00002514: ADD
00002515: CALLDATALOAD
00002516: PUSH2 0x251e
00002519: DUP2
0000251a: PUSH2 0x222c
0000251d: JUMP
0000251e: JUMPDEST
0000251f: DUP1
00002520: SWAP2
00002521: POP
00002522: POP
00002523: SWAP3
00002524: SWAP6
00002525: POP
00002526: SWAP3
00002527: SWAP6
00002528: SWAP1
00002529: SWAP4
0000252a: POP
0000252b: JUMP
0000252c: JUMPDEST
0000252d: PUSH1 0x00
0000252f: DUP1
00002530: PUSH1 0x00
00002532: DUP1
00002533: PUSH1 0x00
00002535: DUP1
00002536: PUSH1 0xc0
00002538: DUP8
00002539: DUP10
0000253a: SUB
0000253b: SLT
0000253c: ISZERO
0000253d: PUSH2 0x2545
00002540: JUMPI
00002541: PUSH1 0x00
00002543: DUP1
00002544: REVERT
00002545: JUMPDEST
00002546: POP
00002547: POP
00002548: DUP5
00002549: CALLDATALOAD
0000254a: SWAP7
0000254b: PUSH1 0x20
0000254d: DUP7
0000254e: ADD
0000254f: CALLDATALOAD
00002550: SWAP7
00002551: POP
00002552: PUSH1 0x40
00002554: DUP7
00002555: ADD
00002556: CALLDATALOAD
00002557: SWAP6
00002558: PUSH1 0x60
0000255a: DUP2
0000255b: ADD
0000255c: CALLDATALOAD
0000255d: SWAP6
0000255e: POP
0000255f: PUSH1 0x80
00002561: DUP2
00002562: ADD
00002563: CALLDATALOAD
00002564: SWAP5
00002565: POP
00002566: PUSH1 0xa0
00002568: ADD
00002569: CALLDATALOAD
0000256a: SWAP3
0000256b: POP
0000256c: SWAP1
0000256d: POP
0000256e: JUMP
0000256f: JUMPDEST
00002570: PUSH1 0x00
00002572: DUP1
00002573: PUSH1 0x00
00002575: PUSH1 0x60
00002577: DUP5
00002578: DUP7
00002579: SUB
0000257a: SLT
0000257b: ISZERO
0000257c: PUSH2 0x2584
0000257f: JUMPI
00002580: PUSH1 0x00
00002582: DUP1
00002583: REVERT
00002584: JUMPDEST
00002585: DUP4
00002586: CALLDATALOAD
00002587: SWAP3
00002588: POP
00002589: PUSH1 0x20
0000258b: DUP5
0000258c: ADD
0000258d: CALLDATALOAD
0000258e: PUSH2 0x22d7
00002591: DUP2
00002592: PUSH2 0x222c
00002595: JUMP
00002596: JUMPDEST
00002597: PUSH1 0x00
00002599: PUSH1 0x01
0000259b: DUP3
0000259c: ADD
0000259d: PUSH2 0x25b6
000025a0: JUMPI
000025a1: PUSH4 0x4e487b71
000025a6: PUSH1 0xe0
000025a8: SHL
000025a9: PUSH1 0x00
000025ab: MSTORE
000025ac: PUSH1 0x11
000025ae: PUSH1 0x04
000025b0: MSTORE
000025b1: PUSH1 0x24
000025b3: PUSH1 0x00
000025b5: REVERT
000025b6: JUMPDEST
000025b7: POP
000025b8: PUSH1 0x01
000025ba: ADD
000025bb: SWAP1
000025bc: JUMP
000025bd: JUMPDEST
000025be: PUSH1 0x00
000025c0: DUP3
000025c1: MLOAD
000025c2: PUSH2 0x25cf
000025c5: DUP2
000025c6: DUP5
000025c7: PUSH1 0x20
000025c9: DUP8
000025ca: ADD
000025cb: PUSH2 0x2435
000025ce: JUMP
000025cf: JUMPDEST
000025d0: SWAP2
000025d1: SWAP1
000025d2: SWAP2
000025d3: ADD
000025d4: SWAP3
000025d5: SWAP2
000025d6: POP
000025d7: POP
000025d8: JUMP
000025d9: JUMPDEST
000025da: PUSH4 0x4e487b71
000025df: PUSH1 0xe0
000025e1: SHL
000025e2: PUSH1 0x00
000025e4: MSTORE
000025e5: PUSH1 0x32
000025e7: PUSH1 0x04
000025e9: MSTORE
000025ea: PUSH1 0x24
000025ec: PUSH1 0x00
000025ee: REVERT
000025ef: JUMPDEST
000025f0: PUSH1 0x00
000025f2: PUSH1 0x20
000025f4: DUP3
000025f5: DUP5
000025f6: SUB
000025f7: SLT
000025f8: ISZERO
000025f9: PUSH2 0x2601
000025fc: JUMPI
000025fd: PUSH1 0x00
000025ff: DUP1
00002600: REVERT
00002601: JUMPDEST
00002602: DUP2
00002603: MLOAD
00002604: PUSH2 0x1276
00002607: DUP2
00002608: PUSH2 0x214d
0000260b: JUMP
0000260c: JUMPDEST
0000260d: PUSH1 0x00
0000260f: PUSH1 0x20
00002611: DUP3
00002612: DUP5
00002613: SUB
00002614: SLT
00002615: ISZERO
00002616: PUSH2 0x261e
00002619: JUMPI
0000261a: PUSH1 0x00
0000261c: DUP1
0000261d: REVERT
0000261e: JUMPDEST
0000261f: POP
00002620: MLOAD
00002621: SWAP2
00002622: SWAP1
00002623: POP
00002624: JUMP
00002625: INVALID
00002626: CALLDATASIZE
00002627: ADDMOD
00002628: SWAP5
00002629: LOG1
0000262a: EXTCODESIZE
0000262b: LOG1
0000262c: LOG3
0000262d: UNKNOWN(0x21)
0000262e: MOD
0000262f: PUSH8 0xc828492db98dca3e
00002638: KECCAK256
00002639: PUSH23 0xcc3735a920a3ca505d382bbccd5ed15c6e187e77e9aee8
00002651: DUP2
00002652: DUP5
00002653: UNKNOWN(0xC2)
00002654: UNKNOWN(0x1F)
00002655: UNKNOWN(0x4F)
00002656: UNKNOWN(0x21)
00002657: DUP3
00002658: UNKNOWN(0xAB)
00002659: PC
0000265a: UNKNOWN(0x27)
0000265b: UNKNOWN(0xCB)
0000265c: EXTCODESIZE
0000265d: PUSH31 0x07fbedcd63f03300a26469706673582212209838e950c870b1d66c3069978a
0000267d: DUP8
0000267e: UNKNOWN(0xD1)
0000267f: POP
00002680: UNKNOWN(0x2F)
00002681: UNKNOWN(0xEC)
00002682: UNKNOWN(0xED)
00002683: UNKNOWN(0xEC)
00002684: SWAP16
00002685: PUSH0
00002686: GAS
00002687: PUSH7 0x28fcbac1a01af4
0000268f: SHL
00002690: PUSH5 0x736f6c6343
00002696: STOP
00002697: ADDMOD
00002698: EQ
00002699: STOP
0000269a: CALLER

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: 0x8d2aac5606e6701bb253abe374ba9d130c5da07aad50ffa8c7b56de42bcf37ce
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x8d2aac5606e6701bb253abe374ba9d130c5da07aad50ffa8c7b56de42bcf37ce",
    "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": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf20f5108",
            "selector": "0xf20f5108",
            "calldata_variants": [
                "0xf20f5108",
                "0xf20f51080000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2cda82e",
            "selector": "0xf2cda82e",
            "calldata_variants": [
                "0xf2cda82e",
                "0xf2cda82e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf9432517",
            "selector": "0xf9432517",
            "calldata_variants": [
                "0xf9432517",
                "0xf94325170000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe4865ec",
            "selector": "0xbe4865ec",
            "calldata_variants": [
                "0xbe4865ec",
                "0xbe4865ec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe8f909a",
            "selector": "0xbe8f909a",
            "calldata_variants": [
                "0xbe8f909a",
                "0xbe8f909a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc1b4a1e3",
            "selector": "0xc1b4a1e3",
            "calldata_variants": [
                "0xc1b4a1e3",
                "0xc1b4a1e30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 8141,
            "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: 0xcbac5acc95d6d44b578b197235a83facf9db2d4ea30df563f94bb84499b410fb
call_targets: 0x49643fc85fb1f25b6775ebbbdc69295d45105abc
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xcbac5acc95d6d44b578b197235a83facf9db2d4ea30df563f94bb84499b410fb",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x49643fc85fb1f25b6775ebbbdc69295d45105abc"
    ],
    "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": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf20f5108",
            "selector": "0xf20f5108",
            "calldata_variants": [
                "0xf20f5108",
                "0xf20f51080000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2cda82e",
            "selector": "0xf2cda82e",
            "calldata_variants": [
                "0xf2cda82e",
                "0xf2cda82e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf9432517",
            "selector": "0xf9432517",
            "calldata_variants": [
                "0xf9432517",
                "0xf94325170000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe4865ec",
            "selector": "0xbe4865ec",
            "calldata_variants": [
                "0xbe4865ec",
                "0xbe4865ec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe8f909a",
            "selector": "0xbe8f909a",
            "calldata_variants": [
                "0xbe8f909a",
                "0xbe8f909a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc1b4a1e3",
            "selector": "0xc1b4a1e3",
            "calldata_variants": [
                "0xc1b4a1e3",
                "0xc1b4a1e30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2354,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3015,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3664,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 9,
    "guards_detected": [],
    "untrusted_call_count": 9
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xcbac5acc95d6d44b578b197235a83facf9db2d4ea30df563f94bb84499b410fb
call_targets: 0x49643fc85fb1f25b6775ebbbdc69295d45105abc
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xcbac5acc95d6d44b578b197235a83facf9db2d4ea30df563f94bb84499b410fb",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x49643fc85fb1f25b6775ebbbdc69295d45105abc"
    ],
    "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": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf20f5108",
            "selector": "0xf20f5108",
            "calldata_variants": [
                "0xf20f5108",
                "0xf20f51080000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2cda82e",
            "selector": "0xf2cda82e",
            "calldata_variants": [
                "0xf2cda82e",
                "0xf2cda82e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf9432517",
            "selector": "0xf9432517",
            "calldata_variants": [
                "0xf9432517",
                "0xf94325170000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe4865ec",
            "selector": "0xbe4865ec",
            "calldata_variants": [
                "0xbe4865ec",
                "0xbe4865ec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe8f909a",
            "selector": "0xbe8f909a",
            "calldata_variants": [
                "0xbe8f909a",
                "0xbe8f909a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc1b4a1e3",
            "selector": "0xc1b4a1e3",
            "calldata_variants": [
                "0xc1b4a1e3",
                "0xc1b4a1e30000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2354,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3015,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3664,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 9,
    "guards_detected": []
}
high access_control codex Old committee members remain authorized after rotation 85 no
view
evidence_json
{
    "evidence": "`setCommittee` increments `committeeId` and only adds new members, while `receiveRequest` accepts any `_committeeId` and checks membership/threshold for that id.",
    "locations": [
        "contracts/AbstractMost.sol:302",
        "contracts/AbstractMost.sol:333",
        "contracts/AbstractMost.sol:367"
    ],
    "recommendation": "Gate `receiveRequest` to only accept the current `committeeId`, or maintain an explicit allowlist with expiry for previous committees and disable old ones on rotation. Consider clearing or marking old committee memberships as inactive.",
    "exploit_scenario": "After the owner rotates the committee, members of a previous committee can still call `receiveRequest` with their old `_committeeId` and arbitrary transfer parameters. Because the contract only checks membership for the supplied `_committeeId`, the old committee can reach its historical threshold and mint/unlock tokens without the current committee\u2019s approval."
}
medium oracle codex Oracle price validation missing allows minimum limit bypass or revert 75 no
view
evidence_json
{
    "evidence": "`minimumTransferAmount` uses `latestRoundData()` without validating price or staleness and casts `usdPrice` to `uint256`; `Most.checkTransferAllowed` ignores errors and allows transfers.",
    "locations": [
        "contracts/TransferLimit.sol:67",
        "contracts/TransferLimit.sol:70",
        "contracts/Most.sol:41"
    ],
    "recommendation": "Validate `usdPrice > 0`, check `updatedAt`/`answeredInRound` for freshness, and avoid fail-open behavior on oracle errors (or make it configurable). If the intent is to enforce a minimum, consider `Math.max` instead of `Math.min`.",
    "exploit_scenario": "If the Chainlink oracle returns 0 or a negative price, `minimumTransferAmount` divides by `uint256(usdPrice)` which can revert or underflow to a huge value. In `Most.checkTransferAllowed`, any revert is swallowed, so the transfer limit is effectively disabled during oracle outages or manipulations."
}
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 math codex StableSwap accounting assumes exact token transfers (fee-on-transfer breaks invariants) 65 no
view
evidence_json
{
    "evidence": "`add_liquidity` and `exchange` update `balances` by the requested amount and then call `transfer_in`/`safeTransferFrom` without reconciling actual received amounts.",
    "locations": [
        "contracts/StableSwap/StableSwapTwoPool.sol:322",
        "contracts/StableSwap/StableSwapTwoPool.sol:554",
        "contracts/StableSwap/StableSwapTwoPool.sol:784"
    ],
    "recommendation": "Restrict pool coins to standard ERC20s with exact transfers (enforce in factory) or measure actual balances before/after transfers and update `balances` by the delta.",
    "exploit_scenario": "If a pool coin is fee-on-transfer or deflationary, the contract updates internal `balances` using the nominal `amounts`/`amount_in`, but fewer tokens are actually received. This can inflate pool accounting and allow LPs to mint/burn against overstated balances, potentially draining the pool."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 9
}