019c0eab-c14a-7068-a5b7-e9885803d0b8
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 42441 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 42442 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 42443 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 42444 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 42445 | capability.graph | complete | 1 / 3 | 2 months ago |
| 42446 | detector.run | complete | 1 / 3 | 2 months ago |
| 42447 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42505 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42506 | tool.slither | failed | 2 / 2 | 2 months ago |
{
"status": "not_proxy"
}
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-l8qdmsx2)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-l8qdmsx2)
'forge' returned non-zero exit code 1
[2m2026-01-30T17:04:38.427935Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol": No such file or directory (os error 2)
stdout: [2m2026-01-30T17:04:38.428058Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/proxy/ProxyAdmin.sol": No such file or directory (os error 2)
stdout: [2m2026-01-30T17:04:38.428105Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol": No such file or directory (os error 2)
stdout: [2m2026-01-30T17:04:38.428139Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/math/SafeMath.sol": No such file or directory (os error 2)
stdout: [2m2026-01-30T17:04:38.428171Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/math/SafeMath.sol": No such file or directory (os error 2)
stdout: [2m2026-01-30T17:04:38.428199Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/math/SafeMath.sol": No such file or directory (os error 2)
stdout: [2m2026-01-30T17:04:38.428225Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol": No such file or directory (os error 2)
stdout: [2m2026-01-30T17:04:38.428234Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol": No such file or directory (os error 2)
stdout: Unable to resolve imports:
stdout: "@openzeppelin/contracts/math/SafeMath.sol" in "/tmp/slither-l8qdmsx2/contracts/libs/LibGas.sol"
stdout: "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol" in "/tmp/slither-l8qdmsx2/contracts/testing/TokenB.sol"
stdout: "@openzeppelin/contracts/math/SafeMath.sol" in "/tmp/slither-l8qdmsx2/contracts/swapper/uniswap/Uniswapper.sol"
stdout: "@openzeppelin/contracts/token/ERC20/SafeERC20.sol" in "/tmp/slither-l8qdmsx2/contracts/libs/LibGas.sol"
stdout: "@openzeppelin/contracts/math/SafeMath.sol" in "/tmp/slither-l8qdmsx2/contracts/swapper/uniswapRouting/RoutedSwap.sol"
stdout: "@openzeppelin/contracts/token/ERC20/SafeERC20.sol" in "/tmp/slither-l8qdmsx2/contracts/SwapSettlement.sol"
stdout: "@openzeppelin/contracts/proxy/ProxyAdmin.sol" in "/tmp/slither-l8qdmsx2/contracts/deployment/DeploymentAdmin.sol"
stdout: "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol" in "/tmp/slither-l8qdmsx2/contracts/testing/TokenA.sol"
stdout: with remappings:
stdout: openzeppelin-contracts/=/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/
stdout: @openzeppelin/contracts/=/tmp/slither-l8qdmsx2/lib/openzeppelin-contracts/contracts/
stdout: Compiling 20 files with Solc 0.6.8
stdout: Solc 0.6.8 finished in 20.86ms
Error: Compiler run failed:
stderr: Error: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found.
stderr: contracts/SwapSettlement.sol:7:1: ParserError: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
stderr: ^---------------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/proxy/ProxyAdmin.sol" not found: File not found.
stderr: contracts/deployment/DeploymentAdmin.sol:4:1: ParserError: Source "lib/openzeppelin-contracts/contracts/proxy/ProxyAdmin.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/proxy/ProxyAdmin.sol";
stderr: ^----------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found.
stderr: contracts/libs/LibGas.sol:5:1: ParserError: Source "lib/openzeppelin-contracts/contracts/token/ERC20/SafeERC20.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
stderr: ^---------------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: contracts/libs/LibGas.sol:6:1: ParserError: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/math/SafeMath.sol";
stderr: ^-------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: contracts/swapper/uniswap/Uniswapper.sol:6:1: ParserError: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/math/SafeMath.sol";
stderr: ^-------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: contracts/swapper/uniswapRouting/RoutedSwap.sol:6:1: ParserError: Source "lib/openzeppelin-contracts/contracts/math/SafeMath.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/math/SafeMath.sol";
stderr: ^-------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found.
stderr: contracts/testing/TokenA.sol:4:1: ParserError: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol";
stderr: ^-------------------------------------------------------------------^
stderr: Error: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found.
stderr: contracts/testing/TokenB.sol:4:1: ParserError: Source "lib/openzeppelin-contracts/contracts/presets/ERC20PresetMinterPauser.sol" not found: File not found.
stderr: import "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol";
stderr: ^-------------------------------------------------------------------^
Traceback (most recent call last):
File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
sys.exit(main())
~~~~^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
main_impl(all_detector_classes=detectors, all_printer_classes=printers)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
compilations = compile_all(target, **vars(args))
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
compilations.append(CryticCompile(target, **kwargs))
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
self._compile(**kwargs)
~~~~~~~~~~~~~^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
self._platform.compile(self, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
hardhat_like_parsing(
~~~~~~~~~~~~~~~~~~~~^
crytic_compile, str(self._target), build_directory, str(self._project_root)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-l8qdmsx2/out/build-info is not a directory.
{"no_findings":false,"summary":"Missing on-chain order authorization allows relays to execute arbitrary swaps, public initializers can be seized if not initialized atomically, and several ERC20 interactions ignore return values.","findings":[{"severity":"medium","category":"auth","title":"Orders lack trader authorization; relays can execute arbitrary swaps","exploit_scenario":"Any address with RELAY_ROLE can call fill with a crafted order for any trader who has granted allowance and deposited gas. Because no signature/nonce is verified, a malicious or compromised relay can swap the trader’s tokens into unwanted assets or at unfavorable rates while charging gas/fees.","recommendation":"Require an EIP-712 signature from the trader (including nonce and deadline) and verify it in fill before executing. Alternatively require order.trader == msg.sender for direct execution and add explicit order approval logic.","evidence":"fill accepts an order from the relayer and only checks balances/allowances; Types.Order contains no signature/nonce fields.","locations":["contracts/SwapSettlement.sol:95","contracts/SwapSettlement.sol:103","contracts/Types.sol:33"]},{"severity":"medium","category":"upgradeability","title":"Public initializers can be seized if deployment is not atomic","exploit_scenario":"If any of these contracts/proxies are deployed without calling initialize in the same transaction, an attacker can call initialize first, gaining admin/relay roles and configuring malicious scripts or parameters.","recommendation":"Call initialize atomically during deployment, and/or add a constructor to disable initializers on implementations. Consider restricting initialize with a deployer/admin check when not using a proxy.","evidence":"initialize functions are public and only guarded by the initializer flag.","locations":["contracts/SwapSettlement.sol:61","contracts/swapper/uniswap/Uniswapper.sol:25","contracts/swapper/uniswapRouting/RoutedSwap.sol:27"]},{"severity":"low","category":"other","title":"ERC20 transfer/approve return values are not checked in swap scripts","exploit_scenario":"For non-standard ERC20s that return false instead of reverting, these calls may silently fail, leading to swaps executing under incorrect assumptions or refunds failing, potentially leaving funds stuck until manual recovery.","recommendation":"Use SafeERC20’s safeTransfer/safeTransferFrom/safeApprove (or check return values explicitly). For approve, consider resetting to 0 before setting a new allowance.","evidence":"Uniswapper uses raw transfer without checking return values; RoutedSwap uses approve without checking return values.","locations":["contracts/swapper/uniswap/Uniswapper.sol:92","contracts/swapper/uniswap/Uniswapper.sol:152","contracts/swapper/uniswap/Uniswapper.sol:183","contracts/swapper/uniswapRouting/RoutedSwap.sol:34","contracts/swapper/uniswapRouting/RoutedSwap.sol:84"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-u0lv_h_5
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0fcf-783c-7cd1-ade8-0700212ade7d
--------
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
exec
/bin/bash -lc 'cat /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt' in /tmp/codex-u0lv_h_5 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: @nomiclabs/buidler/console.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity >= 0.4.22 <0.8.0;
library console {
address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);
function _sendLogPayload(bytes memory payload) private view {
uint256 payloadLength = payload.length;
address consoleAddress = CONSOLE_ADDRESS;
assembly {
let payloadStart := add(payload, 32)
let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
}
}
exec
/bin/bash -lc 'wc -l /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt' in /tmp/codex-u0lv_h_5 succeeded in 7ms:
2878 /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt
exec
/bin/bash -lc 'rg "''^FILE:" -n /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt' in /tmp/codex-u0lv_h_5 succeeded in 19ms:
5:FILE: @nomiclabs/buidler/console.sol
1545:FILE: contracts/BaseAccess.sol
1638:FILE: contracts/BaseConfig.sol
1765:FILE: contracts/GasTank.sol
1820:FILE: contracts/SwapSettlement.sol
2076:FILE: contracts/Types.sol
2174:FILE: contracts/deployment/DeploymentAdmin.sol
2186:FILE: contracts/interfaces/ISwapAction.sol
2203:FILE: contracts/interfaces/uniswap/IPair.sol
2215:FILE: contracts/interfaces/uniswap/IPairFactory.sol
2227:FILE: contracts/interfaces/uniswap/IV2Router.sol
2268:FILE: contracts/libs/LibAccess.sol
2292:FILE: contracts/libs/LibConfig.sol
2419:FILE: contracts/libs/LibGas.sol
2523:FILE: contracts/libs/LibStorage.sol
2566:FILE: contracts/swapper/uniswap/Uniswapper.sol
2761:FILE: contracts/swapper/uniswapRouting/RoutedSwap.sol
2852:FILE: contracts/testing/TokenA.sol
2866:FILE: contracts/testing/TokenB.sol
exec
/bin/bash -lc "sed -n '1545,1637p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 6ms:
FILE: contracts/BaseAccess.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
import "./libs/LibAccess.sol";
import "./libs/LibStorage.sol";
import "./Types.sol";
import "@nomiclabs/buidler/console.sol";
abstract contract BaseAccess {
using LibAccess for Types.AccessControl;
//bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE");
bytes32 public constant ADMIN_ROLE = 0xa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775;
//bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
bytes32 public constant PAUSER_ROLE = 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a;
//bytes32 public constant RELAY_ROLE = keccak256("RELAY_ROLE");
exec
/bin/bash -lc "sed -n '1638,1764p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/BaseConfig.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;
import "./Types.sol";
import "./libs/LibStorage.sol";
import "./libs/LibConfig.sol";
import "./BaseAccess.sol";
abstract contract BaseConfig is BaseAccess {
using LibConfig for Types.Config;
function initConfig(Types.Config memory config) internal {
LibStorage.getConfigStorage().store(config);
BaseAccess.initAccess();
}
function getConfig() external view returns (Types.Config memory) {
exec
/bin/bash -lc "sed -n '1765,1820p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/GasTank.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;
import "./BaseConfig.sol";
import "./libs/LibGas.sol";
abstract contract GasTank is BaseConfig {
using LibGas for Types.GasBalances;
//========== VIEWS =============/
function availableGasForWithdraw(address owner) external view returns (uint256) {
return LibStorage.getGasStorage().availableForWithdraw(owner);
}
function totalGasDeposited(address owner) external view returns (uint256) {
return LibStorage.getGasStorage().total(owner);
}
exec
/bin/bash -lc "sed -n '1820,2075p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 6ms:
FILE: contracts/SwapSettlement.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;
import "./GasTank.sol";
import "./Types.sol";
import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
import "./interfaces/ISwapAction.sol";
contract SwapSettlement is GasTank {
using SafeMath for uint256;
using SafeMath for uint112;
using SafeMath for uint128;
using SafeMath for uint;
using SafeERC20 for IERC20;
//============= EVENT DEFS =================/
exec
/bin/bash -lc "sed -n '2076,2173p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/Types.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
library Types {
struct TokenAmount {
IERC20 token;
uint112 amount;
}
struct GasAllowance {
uint112 maxGas;
uint8 percentGasPaid;
}
exec
/bin/bash -lc "sed -n '2174,2267p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/deployment/DeploymentAdmin.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
import "@openzeppelin/contracts/proxy/ProxyAdmin.sol";
contract DeploymentAdmin is ProxyAdmin {
}
================================================================================
FILE: contracts/interfaces/ISwapAction.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
pragma experimental ABIEncoderV2;
import "../Types.sol";
exec
/bin/bash -lc "sed -n '2268,2418p' /tmp/codex-u0lv_h_5/AUDIT_BUNDLE.txt" in /tmp/codex-u0lv_h_5 succeeded in 7ms:
FILE: contracts/libs/LibAccess.sol
================================================================================
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.6.8;
import "../Types.sol";
library LibAccess {
function hasRole(Types.AccessControl storage ac, bytes32 role, address actor) external view returns (bool) {
return ac.roles[role][actor];
}
function _addRole(Types.AccessControl storage ac, bytes32 role, address actor) internal {
ac.roles[role][actor] = true;
}
function _revokeRole(Types.AccessControl storage ac, bytes32 role, address actor) internal {
delete ac.roles[role][actor];
exec
/bin/bash -lc "nl -ba /tmp/codex-u0lv_h_5/contracts/SwapSettlement.sol | sed -n '1,220p'" in /tmp/codex-u0lv_h_5 succeeded in 9ms:
1 //SPDX-License-Identifier: Unlicense
2 pragma solidity ^0.6.8;
3 pragma experimental ABIEncoderV2;
4
5 import "./GasTank.sol";
6 import "./Types.sol";
7 import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
8 import "./interfaces/ISwapAction.sol";
9
10 contract SwapSettlement is GasTank {
11
12 using SafeMath for uint256;
13 using SafeMath for uint112;
14 using SafeMath for uint128;
15 using SafeMath for uint;
16 using SafeERC20 for IERC20;
17
18 //============= EVENT DEFS =================/
19 event TraderPenalized(address indexed trader, uint256 penalty, uint256 gasPaid, string reason);
20 event SwapFailed(address indexed trader, uint gasPaid, string reason);
thinking
**Extending coverage to trySwap and _penalize**
exec
/bin/bash -lc "nl -ba /tmp/codex-u0lv_h_5/contracts/SwapSettlement.sol | sed -n '220,340p'" in /tmp/codex-u0lv_h_5 succeeded in 10ms:
220
221 function trySwap(Types.Order calldata order, ISwapAction script, bytes calldata data) external {
222 require(msg.sender == address(this), "Can only be called by settlement contract");
223 order.input.token.safeTransferFrom(order.trader, address(script), order.input.amount);
224
225 (bool success, string memory failReason) = script.swap(order, data);
226 if(!success) {
227 revert(failReason);
228 }
229 }
230
231 // @dev penalize the user due to missing funds or allowances
232 function _penalize(Types.Order memory order, uint256 startGas, string memory reason) internal {
233 uint128 fee = LibStorage.getConfigStorage().penaltyFee;
234
235
236
237 //add additional gas for transfers and emit
238 uint256 totalGasUsed = startGas.sub(gasleft()).add(GAS_OVERHEAD);
239 uint256 gasFee = totalGasUsed.mul(tx.gasprice);
thinking
**Listing line numbers**
exec
/bin/bash -lc 'nl -ba /tmp/codex-u0lv_h_5/contracts/swapper/uniswap/Uniswapper.sol' in /tmp/codex-u0lv_h_5 succeeded in 6ms:
1 //SPDX-License-Identifier: Unlicense
2 pragma solidity ^0.6.8;
3 pragma experimental ABIEncoderV2;
4
5
6 import "@openzeppelin/contracts/math/SafeMath.sol";
7 import "../../Types.sol";
8 import "../../interfaces/ISwapAction.sol";
9 import "../../BaseAccess.sol";
10
11 import "../../interfaces/uniswap/IPair.sol";
12 import "../../interfaces/uniswap/IPairFactory.sol";
13 import "../../interfaces/uniswap/IV2Router.sol";
14
15 import "@nomiclabs/buidler/console.sol";
16
17 contract Uniswapper is BaseAccess, ISwapAction {
18 using SafeMath for uint256;
19 using SafeMath for uint112;
20 using SafeMath for uint;
thinking
**Noting line numbers for RoutedSwap**
exec
/bin/bash -lc 'nl -ba /tmp/codex-u0lv_h_5/contracts/swapper/uniswapRouting/RoutedSwap.sol' in /tmp/codex-u0lv_h_5 succeeded in 5ms:
1 //SPDX-License-Identifier: Unlicense
2 pragma solidity ^0.6.8;
3 pragma experimental ABIEncoderV2;
4
5
6 import "@openzeppelin/contracts/math/SafeMath.sol";
7 import "../../Types.sol";
8 import "../../interfaces/ISwapAction.sol";
9 import "../../BaseAccess.sol";
10
11 import "../../interfaces/uniswap/IPair.sol";
12 import "../../interfaces/uniswap/IPairFactory.sol";
13 import "../../interfaces/uniswap/IV2Router.sol";
14
15 import "@nomiclabs/buidler/console.sol";
16
17 contract RoutedSwap is BaseAccess, ISwapAction{
18 using SafeMath for uint256;
19 using SafeMath for uint112;
20 using SafeMath for uint;
thinking
**Noting upgradeability risks and missing authorization**
Identified unprotected initializers in key contracts pose a risk if deployed uninitialized, allowing anyone to take admin roles via reinitialization. Also found missing order signature validation, risking unauthorized trades via relays; recommending off-chain signature checks and nonce enforcement.
thinking
**Classifying findings with severity and crafting detailed exploit scenarios**
I'm setting medium severity for missing order authorization due to relay risks, medium for initializer exposure as conditional upgradeability risk, and low for unchecked ERC20 returns. I'll include evidence with file paths and precise line numbers, elaborate exploit scenarios, and targeted recommendations for each finding.
exec
/bin/bash -lc "nl -ba /tmp/codex-u0lv_h_5/contracts/Types.sol | sed -n '20,80p'" in /tmp/codex-u0lv_h_5 succeeded in 6ms:
20 EXACT_IN,
21 EXACT_OUT
22 }
23
24 //status of order. Only tracked on action from user/miners
25 enum OrderStatus {
26 UNDEFINED,
27 PENDING,
28 FILLED,
29 CANCELLED,
30 PENALIZED
31 }
32
33 struct Order {
34 //trader that owns the order
35 address trader;
36
37 //fee offered (120+128 = 248)
38 uint128 fee;
39
thinking
**Summarizing audit findings and preparing JSON**
I'm consolidating key audit issues like initializer risks and unchecked ERC20 returns, assigning severity levels cautiously, and ensuring all sections of the audit bundle are fully covered before producing a valid JSON summary.
thinking
**Structuring detailed findings for JSON output**
I'm framing each audit finding with clear titles, exploit scenarios, recommendations, severities, and precise code locations, preparing concise evidence strings to create a clean, comment-free JSON summary matching the defined schema.
codex
{"no_findings":false,"summary":"Missing on-chain order authorization allows relays to execute arbitrary swaps, public initializers can be seized if not initialized atomically, and several ERC20 interactions ignore return values.","findings":[{"severity":"medium","category":"auth","title":"Orders lack trader authorization; relays can execute arbitrary swaps","exploit_scenario":"Any address with RELAY_ROLE can call fill with a crafted order for any trader who has granted allowance and deposited gas. Because no signature/nonce is verified, a malicious or compromised relay can swap the trader’s tokens into unwanted assets or at unfavorable rates while charging gas/fees.","recommendation":"Require an EIP-712 signature from the trader (including nonce and deadline) and verify it in fill before executing. Alternatively require order.trader == msg.sender for direct execution and add explicit order approval logic.","evidence":"fill accepts an order from the relayer and only checks balances/allowances; Types.Order contains no signature/nonce fields.","locations":["contracts/SwapSettlement.sol:95","contracts/SwapSettlement.sol:103","contracts/Types.sol:33"]},{"severity":"medium","category":"upgradeability","title":"Public initializers can be seized if deployment is not atomic","exploit_scenario":"If any of these contracts/proxies are deployed without calling initialize in the same transaction, an attacker can call initialize first, gaining admin/relay roles and configuring malicious scripts or parameters.","recommendation":"Call initialize atomically during deployment, and/or add a constructor to disable initializers on implementations. Consider restricting initialize with a deployer/admin check when not using a proxy.","evidence":"initialize functions are public and only guarded by the initializer flag.","locations":["contracts/SwapSettlement.sol:61","contracts/swapper/uniswap/Uniswapper.sol:25","contracts/swapper/uniswapRouting/RoutedSwap.sol:27"]},{"severity":"low","category":"other","title":"ERC20 transfer/approve return values are not checked in swap scripts","exploit_scenario":"For non-standard ERC20s that return false instead of reverting, these calls may silently fail, leading to swaps executing under incorrect assumptions or refunds failing, potentially leaving funds stuck until manual recovery.","recommendation":"Use SafeERC20’s safeTransfer/safeTransferFrom/safeApprove (or check return values explicitly). For approve, consider resetting to 0 before setting a new allowance.","evidence":"Uniswapper uses raw transfer without checking return values; RoutedSwap uses approve without checking return values.","locations":["contracts/swapper/uniswap/Uniswapper.sol:92","contracts/swapper/uniswap/Uniswapper.sol:152","contracts/swapper/uniswap/Uniswapper.sol:183","contracts/swapper/uniswapRouting/RoutedSwap.sol:34","contracts/swapper/uniswapRouting/RoutedSwap.sol:84"]}]}
tokens used
68,446
{
"codex": {
"ran_at": "2026-01-30T16:57:25.316087+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 36,
"import_count": 40,
"first_party_contracts_count": 19
},
"summary": "Missing on-chain order authorization allows relays to execute arbitrary swaps, public initializers can be seized if not initialized atomically, and several ERC20 interactions ignore return values.",
"raw_final": {
"summary": "Missing on-chain order authorization allows relays to execute arbitrary swaps, public initializers can be seized if not initialized atomically, and several ERC20 interactions ignore return values.",
"findings": [
{
"title": "Orders lack trader authorization; relays can execute arbitrary swaps",
"category": "auth",
"evidence": "fill accepts an order from the relayer and only checks balances/allowances; Types.Order contains no signature/nonce fields.",
"severity": "medium",
"locations": [
"contracts/SwapSettlement.sol:95",
"contracts/SwapSettlement.sol:103",
"contracts/Types.sol:33"
],
"recommendation": "Require an EIP-712 signature from the trader (including nonce and deadline) and verify it in fill before executing. Alternatively require order.trader == msg.sender for direct execution and add explicit order approval logic.",
"exploit_scenario": "Any address with RELAY_ROLE can call fill with a crafted order for any trader who has granted allowance and deposited gas. Because no signature/nonce is verified, a malicious or compromised relay can swap the trader\u2019s tokens into unwanted assets or at unfavorable rates while charging gas/fees."
},
{
"title": "Public initializers can be seized if deployment is not atomic",
"category": "upgradeability",
"evidence": "initialize functions are public and only guarded by the initializer flag.",
"severity": "medium",
"locations": [
"contracts/SwapSettlement.sol:61",
"contracts/swapper/uniswap/Uniswapper.sol:25",
"contracts/swapper/uniswapRouting/RoutedSwap.sol:27"
],
"recommendation": "Call initialize atomically during deployment, and/or add a constructor to disable initializers on implementations. Consider restricting initialize with a deployer/admin check when not using a proxy.",
"exploit_scenario": "If any of these contracts/proxies are deployed without calling initialize in the same transaction, an attacker can call initialize first, gaining admin/relay roles and configuring malicious scripts or parameters."
},
{
"title": "ERC20 transfer/approve return values are not checked in swap scripts",
"category": "other",
"evidence": "Uniswapper uses raw transfer without checking return values; RoutedSwap uses approve without checking return values.",
"severity": "low",
"locations": [
"contracts/swapper/uniswap/Uniswapper.sol:92",
"contracts/swapper/uniswap/Uniswapper.sol:152",
"contracts/swapper/uniswap/Uniswapper.sol:183",
"contracts/swapper/uniswapRouting/RoutedSwap.sol:34",
"contracts/swapper/uniswapRouting/RoutedSwap.sol:84"
],
"recommendation": "Use SafeERC20\u2019s safeTransfer/safeTransferFrom/safeApprove (or check return values explicitly). For approve, consider resetting to 0 before setting a new allowance.",
"exploit_scenario": "For non-standard ERC20s that return false instead of reverting, these calls may silently fail, leading to swaps executing under incorrect assumptions or refunds failing, potentially leaving funds stuck until manual recovery."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x012a 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x75e9aac8 00000019: GT 0000001a: PUSH2 0x00ab 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xc3f909d4 00000024: GT 00000025: PUSH2 0x006f 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xc3f909d4 0000002f: EQ 00000030: PUSH2 0x02fb 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xd547741f 0000003a: EQ 0000003b: PUSH2 0x031d 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe63ab1e9 00000045: EQ 00000046: PUSH2 0x033d 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xe959b38a 00000050: EQ 00000051: PUSH2 0x0352 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xea9c727b 0000005b: EQ 0000005c: PUSH2 0x0372 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xfc8926d3 00000066: EQ 00000067: PUSH2 0x0392 0000006a: JUMPI 0000006b: PUSH2 0x012a 0000006e: JUMP 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0x75e9aac8 00000076: EQ 00000077: PUSH2 0x0266 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x8d0b303d 00000081: EQ 00000082: PUSH2 0x0293 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0x91d14854 0000008c: EQ 0000008d: PUSH2 0x02b3 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xa6e1700c 00000097: EQ 00000098: PUSH2 0x02d3 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0xae9bb692 000000a2: EQ 000000a3: PUSH2 0x02f3 000000a6: JUMPI 000000a7: PUSH2 0x012a 000000aa: JUMP 000000ab: JUMPDEST 000000ac: DUP1 000000ad: PUSH4 0x334c3c65 000000b2: GT 000000b3: PUSH2 0x00f2 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x334c3c65 000000bd: EQ 000000be: PUSH2 0x01d1 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x3f51e182 000000c8: EQ 000000c9: PUSH2 0x01f1 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x4ed6d948 000000d3: EQ 000000d4: PUSH2 0x0211 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x6947d38f 000000de: EQ 000000df: PUSH2 0x0231 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0x75b238fc 000000e9: EQ 000000ea: PUSH2 0x0251 000000ed: JUMPI 000000ee: PUSH2 0x012a 000000f1: JUMP 000000f2: JUMPDEST 000000f3: DUP1 000000f4: PUSH4 0x04421823 000000f9: EQ 000000fa: PUSH2 0x012f 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x12d20441 00000104: EQ 00000105: PUSH2 0x015a 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x27054df6 0000010f: EQ 00000110: PUSH2 0x017a 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x2f0dee6e 0000011a: EQ 0000011b: PUSH2 0x018f 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x30f205d0 00000125: EQ 00000126: PUSH2 0x01b1 00000129: JUMPI 0000012a: JUMPDEST 0000012b: PUSH1 0x00 0000012d: DUP1 0000012e: REVERT 0000012f: JUMPDEST 00000130: CALLVALUE 00000131: DUP1 00000132: ISZERO 00000133: PUSH2 0x013b 00000136: JUMPI 00000137: PUSH1 0x00 00000139: DUP1 0000013a: REVERT 0000013b: JUMPDEST 0000013c: POP 0000013d: PUSH2 0x0144 00000140: PUSH2 0x03b2 00000143: JUMP 00000144: JUMPDEST 00000145: PUSH1 0x40 00000147: MLOAD 00000148: PUSH2 0x0151 0000014b: SWAP2 0000014c: SWAP1 0000014d: PUSH2 0x2643 00000150: JUMP 00000151: JUMPDEST 00000152: PUSH1 0x40 00000154: MLOAD 00000155: DUP1 00000156: SWAP2 00000157: SUB 00000158: SWAP1 00000159: RETURN 0000015a: JUMPDEST 0000015b: CALLVALUE 0000015c: DUP1 0000015d: ISZERO 0000015e: PUSH2 0x0166 00000161: JUMPI 00000162: PUSH1 0x00 00000164: DUP1 00000165: REVERT 00000166: JUMPDEST 00000167: POP 00000168: PUSH2 0x0144 0000016b: PUSH2 0x0175 0000016e: CALLDATASIZE 0000016f: PUSH1 0x04 00000171: PUSH2 0x2161 00000174: JUMP 00000175: JUMPDEST 00000176: PUSH2 0x03d6 00000179: JUMP 0000017a: JUMPDEST 0000017b: CALLVALUE 0000017c: DUP1 0000017d: ISZERO 0000017e: PUSH2 0x0186 00000181: JUMPI 00000182: PUSH1 0x00 00000184: DUP1 00000185: REVERT 00000186: JUMPDEST 00000187: POP 00000188: PUSH2 0x0144 0000018b: PUSH2 0x046e 0000018e: JUMP 0000018f: JUMPDEST 00000190: CALLVALUE 00000191: DUP1 00000192: ISZERO 00000193: PUSH2 0x019b 00000196: JUMPI 00000197: PUSH1 0x00 00000199: DUP1 0000019a: REVERT 0000019b: JUMPDEST 0000019c: POP 0000019d: PUSH2 0x01af 000001a0: PUSH2 0x01aa 000001a3: CALLDATASIZE 000001a4: PUSH1 0x04 000001a6: PUSH2 0x2348 000001a9: JUMP 000001aa: JUMPDEST 000001ab: PUSH2 0x0492 000001ae: JUMP 000001af: JUMPDEST 000001b0: STOP 000001b1: JUMPDEST 000001b2: CALLVALUE 000001b3: DUP1 000001b4: ISZERO 000001b5: PUSH2 0x01bd 000001b8: JUMPI 000001b9: PUSH1 0x00 000001bb: DUP1 000001bc: REVERT 000001bd: JUMPDEST 000001be: POP 000001bf: PUSH2 0x01af 000001c2: PUSH2 0x01cc 000001c5: CALLDATASIZE 000001c6: PUSH1 0x04 000001c8: PUSH2 0x24ab 000001cb: JUMP 000001cc: JUMPDEST 000001cd: PUSH2 0x05c0 000001d0: JUMP 000001d1: JUMPDEST 000001d2: CALLVALUE 000001d3: DUP1 000001d4: ISZERO 000001d5: PUSH2 0x01dd 000001d8: JUMPI 000001d9: PUSH1 0x00 000001db: DUP1 000001dc: REVERT 000001dd: JUMPDEST 000001de: POP 000001df: PUSH2 0x01af 000001e2: PUSH2 0x01ec 000001e5: CALLDATASIZE 000001e6: PUSH1 0x04 000001e8: PUSH2 0x2284 000001eb: JUMP 000001ec: JUMPDEST 000001ed: PUSH2 0x060d 000001f0: JUMP 000001f1: JUMPDEST 000001f2: CALLVALUE 000001f3: DUP1 000001f4: ISZERO 000001f5: PUSH2 0x01fd 000001f8: JUMPI 000001f9: PUSH1 0x00 000001fb: DUP1 000001fc: REVERT 000001fd: JUMPDEST 000001fe: POP 000001ff: PUSH2 0x01af 00000202: PUSH2 0x020c 00000205: CALLDATASIZE 00000206: PUSH1 0x04 00000208: PUSH2 0x2284 0000020b: JUMP 0000020c: JUMPDEST 0000020d: PUSH2 0x06b6 00000210: JUMP 00000211: JUMPDEST 00000212: CALLVALUE 00000213: DUP1 00000214: ISZERO 00000215: PUSH2 0x021d 00000218: JUMPI 00000219: PUSH1 0x00 0000021b: DUP1 0000021c: REVERT 0000021d: JUMPDEST 0000021e: POP 0000021f: PUSH2 0x0144 00000222: PUSH2 0x022c 00000225: CALLDATASIZE 00000226: PUSH1 0x04 00000228: PUSH2 0x2161 0000022b: JUMP 0000022c: JUMPDEST 0000022d: PUSH2 0x073c 00000230: JUMP 00000231: JUMPDEST 00000232: CALLVALUE 00000233: DUP1 00000234: ISZERO 00000235: PUSH2 0x023d 00000238: JUMPI 00000239: PUSH1 0x00 0000023b: DUP1 0000023c: REVERT 0000023d: JUMPDEST 0000023e: POP 0000023f: PUSH2 0x0144 00000242: PUSH2 0x024c 00000245: CALLDATASIZE 00000246: PUSH1 0x04 00000248: PUSH2 0x217d 0000024b: JUMP 0000024c: JUMPDEST 0000024d: PUSH2 0x0756 00000250: JUMP 00000251: JUMPDEST 00000252: CALLVALUE 00000253: DUP1 00000254: ISZERO 00000255: PUSH2 0x025d 00000258: JUMPI 00000259: PUSH1 0x00 0000025b: DUP1 0000025c: REVERT 0000025d: JUMPDEST 0000025e: POP 0000025f: PUSH2 0x0144 00000262: PUSH2 0x07bd 00000265: JUMP 00000266: JUMPDEST 00000267: CALLVALUE 00000268: DUP1 00000269: ISZERO 0000026a: PUSH2 0x0272 0000026d: JUMPI 0000026e: PUSH1 0x00 00000270: DUP1 00000271: REVERT 00000272: JUMPDEST 00000273: POP 00000274: PUSH2 0x0286 00000277: PUSH2 0x0281 0000027a: CALLDATASIZE 0000027b: PUSH1 0x04 0000027d: PUSH2 0x217d 00000280: JUMP 00000281: JUMPDEST 00000282: PUSH2 0x07cf 00000285: JUMP 00000286: JUMPDEST 00000287: PUSH1 0x40 00000289: MLOAD 0000028a: PUSH2 0x0151 0000028d: SWAP2 0000028e: SWAP1 0000028f: PUSH2 0x2638 00000292: JUMP 00000293: JUMPDEST 00000294: CALLVALUE 00000295: DUP1 00000296: ISZERO 00000297: PUSH2 0x029f 0000029a: JUMPI 0000029b: PUSH1 0x00 0000029d: DUP1 0000029e: REVERT 0000029f: JUMPDEST 000002a0: POP 000002a1: PUSH2 0x01af 000002a4: PUSH2 0x02ae 000002a7: CALLDATASIZE 000002a8: PUSH1 0x04 000002aa: PUSH2 0x23df 000002ad: JUMP 000002ae: JUMPDEST 000002af: PUSH2 0x07e7 000002b2: JUMP 000002b3: JUMPDEST 000002b4: CALLVALUE 000002b5: DUP1 000002b6: ISZERO 000002b7: PUSH2 0x02bf 000002ba: JUMPI 000002bb: PUSH1 0x00 000002bd: DUP1 000002be: REVERT 000002bf: JUMPDEST 000002c0: POP 000002c1: PUSH2 0x0286 000002c4: PUSH2 0x02ce 000002c7: CALLDATASIZE 000002c8: PUSH1 0x04 000002ca: PUSH2 0x2255 000002cd: JUMP 000002ce: JUMPDEST 000002cf: PUSH2 0x097f 000002d2: JUMP 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 0x0144 000002e4: PUSH2 0x02ee 000002e7: CALLDATASIZE 000002e8: PUSH1 0x04 000002ea: PUSH2 0x2161 000002ed: JUMP 000002ee: JUMPDEST 000002ef: PUSH2 0x0a1a 000002f2: JUMP 000002f3: JUMPDEST 000002f4: PUSH2 0x01af 000002f7: PUSH2 0x0a34 000002fa: JUMP 000002fb: JUMPDEST 000002fc: CALLVALUE 000002fd: DUP1 000002fe: ISZERO 000002ff: PUSH2 0x0307 00000302: JUMPI 00000303: PUSH1 0x00 00000305: DUP1 00000306: REVERT 00000307: JUMPDEST 00000308: POP 00000309: PUSH2 0x0310 0000030c: PUSH2 0x0a77 0000030f: JUMP 00000310: JUMPDEST 00000311: PUSH1 0x40 00000313: MLOAD 00000314: PUSH2 0x0151 00000317: SWAP2 00000318: SWAP1 00000319: PUSH2 0x2b29 0000031c: JUMP 0000031d: JUMPDEST 0000031e: CALLVALUE 0000031f: DUP1 00000320: ISZERO 00000321: PUSH2 0x0329 00000324: JUMPI 00000325: PUSH1 0x00 00000327: DUP1 00000328: REVERT 00000329: JUMPDEST 0000032a: POP 0000032b: PUSH2 0x01af 0000032e: PUSH2 0x0338 00000331: CALLDATASIZE 00000332: PUSH1 0x04 00000334: PUSH2 0x2255 00000337: JUMP 00000338: JUMPDEST 00000339: PUSH2 0x0b13 0000033c: JUMP 0000033d: JUMPDEST 0000033e: CALLVALUE 0000033f: DUP1 00000340: ISZERO 00000341: PUSH2 0x0349 00000344: JUMPI 00000345: PUSH1 0x00 00000347: DUP1 00000348: REVERT 00000349: JUMPDEST 0000034a: POP 0000034b: PUSH2 0x0144 0000034e: PUSH2 0x0b67 00000351: JUMP 00000352: JUMPDEST 00000353: CALLVALUE 00000354: DUP1 00000355: ISZERO 00000356: PUSH2 0x035e 00000359: JUMPI 0000035a: PUSH1 0x00 0000035c: DUP1 0000035d: REVERT 0000035e: JUMPDEST 0000035f: POP 00000360: PUSH2 0x01af 00000363: PUSH2 0x036d 00000366: CALLDATASIZE 00000367: PUSH1 0x04 00000369: PUSH2 0x2255 0000036c: JUMP 0000036d: JUMPDEST 0000036e: PUSH2 0x0b8b 00000371: JUMP 00000372: JUMPDEST 00000373: CALLVALUE 00000374: DUP1 00000375: ISZERO 00000376: PUSH2 0x037e 00000379: JUMPI 0000037a: PUSH1 0x00 0000037c: DUP1 0000037d: REVERT 0000037e: JUMPDEST 0000037f: POP 00000380: PUSH2 0x0286 00000383: PUSH2 0x038d 00000386: CALLDATASIZE 00000387: PUSH1 0x04 00000389: PUSH2 0x247f 0000038c: JUMP 0000038d: JUMPDEST 0000038e: PUSH2 0x0bdb 00000391: JUMP 00000392: JUMPDEST 00000393: CALLVALUE 00000394: DUP1 00000395: ISZERO 00000396: PUSH2 0x039e 00000399: JUMPI 0000039a: PUSH1 0x00 0000039c: DUP1 0000039d: REVERT 0000039e: JUMPDEST 0000039f: POP 000003a0: PUSH2 0x01af 000003a3: PUSH2 0x03ad 000003a6: CALLDATASIZE 000003a7: PUSH1 0x04 000003a9: PUSH2 0x24ab 000003ac: JUMP 000003ad: JUMPDEST 000003ae: PUSH2 0x0c07 000003b1: JUMP 000003b2: JUMPDEST 000003b3: PUSH32 0x077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7 000003d4: DUP2 000003d5: JUMP 000003d6: JUMPDEST 000003d7: PUSH1 0x00 000003d9: PUSH2 0x03e0 000003dc: PUSH2 0x0cf6 000003df: JUMP 000003e0: JUMPDEST 000003e1: PUSH1 0x40 000003e3: MLOAD 000003e4: PUSH4 0x46661413 000003e9: PUSH1 0xe1 000003eb: SHL 000003ec: DUP2 000003ed: MSTORE 000003ee: PUSH20 0x8b63fe889718cf3cec5d6bd67b17baabb3da2412 00000403: SWAP2 00000404: PUSH4 0x8ccc2826 00000409: SWAP2 0000040a: PUSH2 0x0418 0000040d: SWAP2 0000040e: SWAP1 0000040f: DUP7 00000410: SWAP1 00000411: PUSH1 0x04 00000413: ADD 00000414: PUSH2 0x2b4b 00000417: JUMP 00000418: JUMPDEST 00000419: PUSH1 0x20 0000041b: PUSH1 0x40 0000041d: MLOAD 0000041e: DUP1 0000041f: DUP4 00000420: SUB 00000421: DUP2 00000422: DUP7 00000423: DUP1 00000424: EXTCODESIZE 00000425: ISZERO 00000426: DUP1 00000427: ISZERO 00000428: PUSH2 0x0430 0000042b: JUMPI 0000042c: PUSH1 0x00 0000042e: DUP1 0000042f: REVERT 00000430: JUMPDEST 00000431: POP 00000432: GAS 00000433: DELEGATECALL 00000434: ISZERO 00000435: DUP1 00000436: ISZERO 00000437: PUSH2 0x0444 0000043a: JUMPI 0000043b: RETURNDATASIZE 0000043c: PUSH1 0x00 0000043e: DUP1 0000043f: RETURNDATACOPY 00000440: RETURNDATASIZE 00000441: PUSH1 0x00 00000443: REVERT 00000444: JUMPDEST 00000445: POP 00000446: POP 00000447: POP 00000448: POP 00000449: PUSH1 0x40 0000044b: MLOAD 0000044c: RETURNDATASIZE 0000044d: PUSH1 0x1f 0000044f: NOT 00000450: PUSH1 0x1f 00000452: DUP3 00000453: ADD 00000454: AND 00000455: DUP3 00000456: ADD 00000457: DUP1 00000458: PUSH1 0x40 0000045a: MSTORE 0000045b: POP 0000045c: DUP2 0000045d: ADD 0000045e: SWAP1 0000045f: PUSH2 0x0468 00000462: SWAP2 00000463: SWAP1 00000464: PUSH2 0x24c6 00000467: JUMP 00000468: JUMPDEST 00000469: SWAP3 0000046a: SWAP2 0000046b: POP 0000046c: POP 0000046d: JUMP 0000046e: JUMPDEST 0000046f: PUSH32 0xd95061bdf0c43d77b6cbe1c15072292976244ec8d5012de75baa36e42da4625e 00000490: DUP2 00000491: JUMP 00000492: JUMPDEST 00000493: CALLER 00000494: ADDRESS 00000495: EQ 00000496: PUSH2 0x04ba 00000499: JUMPI 0000049a: PUSH1 0x40 0000049c: MLOAD 0000049d: PUSH3 0x461bcd 000004a1: PUSH1 0xe5 000004a3: SHL 000004a4: DUP2 000004a5: MSTORE 000004a6: PUSH1 0x04 000004a8: ADD 000004a9: PUSH2 0x04b1 000004ac: SWAP1 000004ad: PUSH2 0x2949 000004b0: JUMP 000004b1: JUMPDEST 000004b2: PUSH1 0x40 000004b4: MLOAD 000004b5: DUP1 000004b6: SWAP2 000004b7: SUB 000004b8: SWAP1 000004b9: REVERT 000004ba: JUMPDEST 000004bb: PUSH2 0x050b 000004be: PUSH2 0x04ca 000004c1: PUSH1 0x20 000004c3: DUP7 000004c4: ADD 000004c5: DUP7 000004c6: PUSH2 0x2161 000004c9: JUMP 000004ca: JUMPDEST 000004cb: DUP5 000004cc: PUSH2 0x04db 000004cf: PUSH1 0xe0 000004d1: DUP9 000004d2: ADD 000004d3: PUSH1 0xc0 000004d5: DUP10 000004d6: ADD 000004d7: PUSH2 0x24ab 000004da: JUMP 000004db: JUMPDEST 000004dc: PUSH1 0x01 000004de: PUSH1 0x01 000004e0: PUSH1 0x70 000004e2: SHL 000004e3: SUB 000004e4: AND 000004e5: PUSH2 0x04f4 000004e8: PUSH1 0xc0 000004ea: DUP10 000004eb: ADD 000004ec: PUSH1 0xa0 000004ee: DUP11 000004ef: ADD 000004f0: PUSH2 0x2161 000004f3: JUMP 000004f4: JUMPDEST 000004f5: PUSH1 0x01 000004f7: PUSH1 0x01 000004f9: PUSH1 0xa0 000004fb: SHL 000004fc: SUB 000004fd: AND 000004fe: SWAP3 000004ff: SWAP2 00000500: SWAP1 00000501: PUSH4 0xffffffff 00000506: PUSH2 0x0d1a 00000509: AND 0000050a: JUMP 0000050b: JUMPDEST 0000050c: PUSH1 0x00 0000050e: PUSH1 0x60 00000510: DUP5 00000511: PUSH1 0x01 00000513: PUSH1 0x01 00000515: PUSH1 0xa0 00000517: SHL 00000518: SUB 00000519: AND 0000051a: PUSH4 0x48b9e38f 0000051f: DUP8 00000520: DUP7 00000521: DUP7 00000522: PUSH1 0x40 00000524: MLOAD 00000525: DUP5 00000526: PUSH4 0xffffffff 0000052b: AND 0000052c: PUSH1 0xe0 0000052e: SHL 0000052f: DUP2 00000530: MSTORE 00000531: PUSH1 0x04 00000533: ADD 00000534: PUSH2 0x053f 00000537: SWAP4 00000538: SWAP3 00000539: SWAP2 0000053a: SWAP1 0000053b: PUSH2 0x2b62 0000053e: JUMP 0000053f: JUMPDEST 00000540: PUSH1 0x00 00000542: PUSH1 0x40 00000544: MLOAD 00000545: DUP1 00000546: DUP4 00000547: SUB 00000548: DUP2 00000549: PUSH1 0x00 0000054b: DUP8 0000054c: DUP1 0000054d: EXTCODESIZE 0000054e: ISZERO 0000054f: DUP1 00000550: ISZERO 00000551: PUSH2 0x0559 00000554: JUMPI 00000555: PUSH1 0x00 00000557: DUP1 00000558: REVERT 00000559: JUMPDEST 0000055a: POP 0000055b: GAS 0000055c: CALL 0000055d: ISZERO 0000055e: DUP1 0000055f: ISZERO 00000560: PUSH2 0x056d 00000563: JUMPI 00000564: RETURNDATASIZE 00000565: PUSH1 0x00 00000567: DUP1 00000568: RETURNDATACOPY 00000569: RETURNDATASIZE 0000056a: PUSH1 0x00 0000056c: REVERT 0000056d: JUMPDEST 0000056e: POP 0000056f: POP 00000570: POP 00000571: POP 00000572: PUSH1 0x40 00000574: MLOAD 00000575: RETURNDATASIZE 00000576: PUSH1 0x00 00000578: DUP3 00000579: RETURNDATACOPY 0000057a: PUSH1 0x1f 0000057c: RETURNDATASIZE 0000057d: SWAP1 0000057e: DUP2 0000057f: ADD 00000580: PUSH1 0x1f 00000582: NOT 00000583: AND 00000584: DUP3 00000585: ADD 00000586: PUSH1 0x40 00000588: MSTORE 00000589: PUSH2 0x0595 0000058c: SWAP2 0000058d: SWAP1 0000058e: DUP2 0000058f: ADD 00000590: SWAP1 00000591: PUSH2 0x21c4 00000594: JUMP 00000595: JUMPDEST 00000596: SWAP2 00000597: POP 00000598: SWAP2 00000599: POP 0000059a: DUP2 0000059b: PUSH2 0x05b8 0000059e: JUMPI 0000059f: DUP1 000005a0: PUSH1 0x40 000005a2: MLOAD 000005a3: PUSH3 0x461bcd 000005a7: PUSH1 0xe5 000005a9: SHL 000005aa: DUP2 000005ab: MSTORE 000005ac: PUSH1 0x04 000005ae: ADD 000005af: PUSH2 0x04b1 000005b2: SWAP2 000005b3: SWAP1 000005b4: PUSH2 0x264c 000005b7: JUMP 000005b8: JUMPDEST 000005b9: POP 000005ba: POP 000005bb: POP 000005bc: POP 000005bd: POP 000005be: POP 000005bf: JUMP 000005c0: JUMPDEST 000005c1: PUSH1 0x00 000005c3: DUP2 000005c4: PUSH1 0x01 000005c6: PUSH1 0x01 000005c8: PUSH1 0x70 000005ca: SHL 000005cb: SUB 000005cc: AND 000005cd: GT 000005ce: PUSH2 0x05e9 000005d1: JUMPI 000005d2: PUSH1 0x40 000005d4: MLOAD 000005d5: PUSH3 0x461bcd 000005d9: PUSH1 0xe5 000005db: SHL 000005dc: DUP2 000005dd: MSTORE 000005de: PUSH1 0x04 000005e0: ADD 000005e1: PUSH2 0x04b1 000005e4: SWAP1 000005e5: PUSH2 0x2a19 000005e8: JUMP 000005e9: JUMPDEST 000005ea: PUSH2 0x060a 000005ed: PUSH2 0x05f4 000005f0: PUSH2 0x0d78 000005f3: JUMP 000005f4: JUMPDEST 000005f5: DUP3 000005f6: PUSH2 0x05fd 000005f9: PUSH2 0x0cf6 000005fc: JUMP 000005fd: JUMPDEST 000005fe: SWAP2 000005ff: SWAP1 00000600: PUSH4 0xffffffff 00000605: PUSH2 0x0d7c 00000608: AND 00000609: JUMP 0000060a: JUMPDEST 0000060b: POP 0000060c: JUMP 0000060d: JUMPDEST 0000060e: PUSH2 0x0627 00000611: PUSH1 0x00 00000613: DUP1 00000614: MLOAD 00000615: PUSH1 0x20 00000617: PUSH2 0x2f1f 0000061a: DUP4 0000061b: CODECOPY 0000061c: DUP2 0000061d: MLOAD 0000061e: SWAP2 0000061f: MSTORE 00000620: PUSH2 0x02ce 00000623: PUSH2 0x0d78 00000626: JUMP 00000627: JUMPDEST 00000628: PUSH2 0x0643 0000062b: JUMPI 0000062c: PUSH1 0x40 0000062e: MLOAD 0000062f: PUSH3 0x461bcd 00000633: PUSH1 0xe5 00000635: SHL 00000636: DUP2 00000637: MSTORE 00000638: PUSH1 0x04 0000063a: ADD 0000063b: PUSH2 0x04b1 0000063e: SWAP1 0000063f: PUSH2 0x2ae7 00000642: JUMP 00000643: JUMPDEST 00000644: PUSH2 0x064b 00000647: PUSH2 0x0e34 0000064a: JUMP 0000064b: JUMPDEST 0000064c: PUSH1 0x40 0000064e: MLOAD 0000064f: PUSH4 0x21cab0c7 00000654: PUSH1 0xe0 00000656: SHL 00000657: DUP2 00000658: MSTORE 00000659: PUSH20 0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf 0000066e: SWAP2 0000066f: PUSH4 0x21cab0c7 00000674: SWAP2 00000675: PUSH2 0x0683 00000678: SWAP2 00000679: SWAP1 0000067a: DUP6 0000067b: SWAP1 0000067c: PUSH1 0x04 0000067e: ADD 0000067f: PUSH2 0x2b37 00000682: JUMP 00000683: JUMPDEST 00000684: PUSH1 0x00 00000686: PUSH1 0x40 00000688: MLOAD 00000689: DUP1 0000068a: DUP4 0000068b: SUB 0000068c: DUP2 0000068d: DUP7 0000068e: DUP1 0000068f: EXTCODESIZE 00000690: ISZERO 00000691: DUP1 00000692: ISZERO 00000693: PUSH2 0x069b 00000696: JUMPI 00000697: PUSH1 0x00 00000699: DUP1 0000069a: REVERT 0000069b: JUMPDEST 0000069c: POP 0000069d: GAS 0000069e: DELEGATECALL 0000069f: ISZERO 000006a0: DUP1 000006a1: ISZERO 000006a2: PUSH2 0x06af 000006a5: JUMPI 000006a6: RETURNDATASIZE 000006a7: PUSH1 0x00 000006a9: DUP1 000006aa: RETURNDATACOPY 000006ab: RETURNDATASIZE 000006ac: PUSH1 0x00 000006ae: REVERT 000006af: JUMPDEST 000006b0: POP 000006b1: POP 000006b2: POP 000006b3: POP 000006b4: POP 000006b5: JUMP 000006b6: JUMPDEST 000006b7: PUSH1 0x00 000006b9: PUSH2 0x06c0 000006bc: PUSH2 0x0e58 000006bf: JUMP 000006c0: JUMPDEST 000006c1: DUP1 000006c2: SLOAD 000006c3: SWAP1 000006c4: SWAP2 000006c5: POP 000006c6: PUSH2 0x0100 000006c9: SWAP1 000006ca: DIV 000006cb: PUSH1 0xff 000006cd: AND 000006ce: DUP1 000006cf: PUSH2 0x06da 000006d2: JUMPI 000006d3: POP 000006d4: DUP1 000006d5: SLOAD 000006d6: PUSH1 0xff 000006d8: AND 000006d9: ISZERO 000006da: JUMPDEST 000006db: PUSH2 0x06f6 000006de: JUMPI 000006df: PUSH1 0x40 000006e1: MLOAD 000006e2: PUSH3 0x461bcd 000006e6: PUSH1 0xe5 000006e8: SHL 000006e9: DUP2 000006ea: MSTORE 000006eb: PUSH1 0x04 000006ed: ADD 000006ee: PUSH2 0x04b1 000006f1: SWAP1 000006f2: PUSH2 0x29ec 000006f5: JUMP 000006f6: JUMPDEST 000006f7: DUP1 000006f8: SLOAD 000006f9: PUSH2 0x0100 000006fc: SWAP1 000006fd: DIV 000006fe: PUSH1 0xff 00000700: AND 00000701: ISZERO 00000702: DUP1 00000703: ISZERO 00000704: PUSH2 0x071e 00000707: JUMPI 00000708: DUP2 00000709: SLOAD 0000070a: PUSH1 0xff 0000070c: NOT 0000070d: PUSH2 0xff00 00000710: NOT 00000711: SWAP1 00000712: SWAP2 00000713: AND 00000714: PUSH2 0x0100 00000717: OR 00000718: AND 00000719: PUSH1 0x01 0000071b: OR 0000071c: DUP3 0000071d: SSTORE 0000071e: JUMPDEST 0000071f: PUSH2 0x0727 00000722: DUP4 00000723: PUSH2 0x0e7c 00000726: JUMP 00000727: JUMPDEST 00000728: DUP1 00000729: ISZERO 0000072a: PUSH2 0x0737 0000072d: JUMPI 0000072e: DUP2 0000072f: SLOAD 00000730: PUSH2 0xff00 00000733: NOT 00000734: AND 00000735: DUP3 00000736: SSTORE 00000737: JUMPDEST 00000738: POP 00000739: POP 0000073a: POP 0000073b: JUMP 0000073c: JUMPDEST 0000073d: PUSH1 0x00 0000073f: PUSH2 0x0468 00000742: DUP3 00000743: PUSH2 0x074a 00000746: PUSH2 0x0cf6 00000749: JUMP 0000074a: JUMPDEST 0000074b: SWAP1 0000074c: PUSH4 0xffffffff 00000751: PUSH2 0x0ef4 00000754: AND 00000755: JUMP 00000756: JUMPDEST 00000757: PUSH1 0x00 00000759: DUP1 0000075a: PUSH2 0x0761 0000075d: PUSH2 0x0cf6 00000760: JUMP 00000761: JUMPDEST 00000762: PUSH1 0x01 00000764: PUSH1 0x01 00000766: PUSH1 0xa0 00000768: SHL 00000769: SUB 0000076a: DUP6 0000076b: AND 0000076c: PUSH1 0x00 0000076e: SWAP1 0000076f: DUP2 00000770: MSTORE 00000771: PUSH1 0x20 00000773: SWAP2 00000774: SWAP1 00000775: SWAP2 00000776: MSTORE 00000777: PUSH1 0x40 00000779: DUP2 0000077a: KECCAK256 0000077b: SLOAD 0000077c: PUSH1 0x01 0000077e: PUSH1 0x01 00000780: PUSH1 0x70 00000782: SHL 00000783: SUB 00000784: AND 00000785: SWAP2 00000786: POP 00000787: PUSH2 0x0799 0000078a: DUP5 0000078b: PUSH3 0x06ddd0 0000078f: PUSH4 0xffffffff 00000794: PUSH2 0x0f65 00000797: AND 00000798: JUMP 00000799: JUMPDEST 0000079a: SWAP1 0000079b: POP 0000079c: PUSH2 0x07b4 0000079f: PUSH1 0x01 000007a1: PUSH1 0x01 000007a3: PUSH1 0x70 000007a5: SHL 000007a6: SUB 000007a7: DUP4 000007a8: AND 000007a9: DUP3 000007aa: PUSH4 0xffffffff 000007af: PUSH2 0x0f9f 000007b2: AND 000007b3: JUMP 000007b4: JUMPDEST 000007b5: SWAP6 000007b6: SWAP5 000007b7: POP 000007b8: POP 000007b9: POP 000007ba: POP 000007bb: POP 000007bc: JUMP 000007bd: JUMPDEST 000007be: PUSH1 0x00 000007c0: DUP1 000007c1: MLOAD 000007c2: PUSH1 0x20 000007c4: PUSH2 0x2f1f 000007c7: DUP4 000007c8: CODECOPY 000007c9: DUP2 000007ca: MLOAD 000007cb: SWAP2 000007cc: MSTORE 000007cd: DUP2 000007ce: JUMP 000007cf: JUMPDEST 000007d0: PUSH1 0x00 000007d2: DUP2 000007d3: PUSH2 0x07de 000007d6: DUP5 000007d7: PUSH2 0x074a 000007da: PUSH2 0x0cf6 000007dd: JUMP 000007de: JUMPDEST 000007df: LT 000007e0: ISZERO 000007e1: SWAP4 000007e2: SWAP3 000007e3: POP 000007e4: POP 000007e5: POP 000007e6: JUMP 000007e7: JUMPDEST 000007e8: PUSH2 0x0813 000007eb: PUSH32 0x077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7 0000080c: PUSH2 0x02ce 0000080f: PUSH2 0x0d78 00000812: JUMP 00000813: JUMPDEST 00000814: PUSH2 0x082f 00000817: JUMPI 00000818: PUSH1 0x40 0000081a: MLOAD 0000081b: PUSH3 0x461bcd 0000081f: PUSH1 0xe5 00000821: SHL 00000822: DUP2 00000823: MSTORE 00000824: PUSH1 0x04 00000826: ADD 00000827: PUSH2 0x04b1 0000082a: SWAP1 0000082b: PUSH2 0x2992 0000082e: JUMP 0000082f: JUMPDEST 00000830: PUSH2 0x0837 00000833: PUSH2 0x0fe1 00000836: JUMP 00000837: JUMPDEST 00000838: SLOAD 00000839: PUSH1 0xff 0000083b: AND 0000083c: ISZERO 0000083d: PUSH2 0x0858 00000840: JUMPI 00000841: PUSH1 0x40 00000843: MLOAD 00000844: PUSH3 0x461bcd 00000848: PUSH1 0xe5 0000084a: SHL 0000084b: DUP2 0000084c: MSTORE 0000084d: PUSH1 0x04 0000084f: ADD 00000850: PUSH2 0x04b1 00000853: SWAP1 00000854: PUSH2 0x2696 00000857: JUMP 00000858: JUMPDEST 00000859: PUSH1 0x01 0000085b: PUSH2 0x0862 0000085e: PUSH2 0x0fe1 00000861: JUMP 00000862: JUMPDEST 00000863: DUP1 00000864: SLOAD 00000865: PUSH1 0xff 00000867: NOT 00000868: AND 00000869: SWAP2 0000086a: ISZERO 0000086b: ISZERO 0000086c: SWAP2 0000086d: SWAP1 0000086e: SWAP2 0000086f: OR 00000870: SWAP1 00000871: SSTORE 00000872: PUSH1 0x00 00000874: GAS 00000875: SWAP1 00000876: POP 00000877: PUSH2 0x0880 0000087a: DUP5 0000087b: GASPRICE 0000087c: PUSH2 0x1005 0000087f: JUMP 00000880: JUMPDEST 00000881: PUSH2 0x089c 00000884: JUMPI 00000885: PUSH1 0x40 00000887: MLOAD 00000888: PUSH3 0x461bcd 0000088c: PUSH1 0xe5 0000088e: SHL 0000088f: DUP2 00000890: MSTORE 00000891: PUSH1 0x04 00000893: ADD 00000894: PUSH2 0x04b1 00000897: SWAP1 00000898: PUSH2 0x2886 0000089b: JUMP 0000089c: JUMPDEST 0000089d: PUSH2 0x08c6 000008a0: PUSH32 0xd95061bdf0c43d77b6cbe1c15072292976244ec8d5012de75baa36e42da4625e 000008c1: DUP5 000008c2: PUSH2 0x097f 000008c5: JUMP 000008c6: JUMPDEST 000008c7: PUSH2 0x08f3 000008ca: JUMPI 000008cb: PUSH2 0x08ed 000008ce: DUP5 000008cf: DUP3 000008d0: PUSH1 0x40 000008d2: MLOAD 000008d3: DUP1 000008d4: PUSH1 0x60 000008d6: ADD 000008d7: PUSH1 0x40 000008d9: MSTORE 000008da: DUP1 000008db: PUSH1 0x2b 000008dd: DUP2 000008de: MSTORE 000008df: PUSH1 0x20 000008e1: ADD 000008e2: PUSH2 0x2ed0 000008e5: PUSH1 0x2b 000008e7: SWAP2 000008e8: CODECOPY 000008e9: PUSH2 0x10ea 000008ec: JUMP 000008ed: JUMPDEST 000008ee: POP 000008ef: PUSH2 0x0961 000008f2: JUMP 000008f3: JUMPDEST 000008f4: PUSH2 0x08fc 000008f7: DUP5 000008f8: PUSH2 0x1242 000008fb: JUMP 000008fc: JUMPDEST 000008fd: PUSH2 0x0923 00000900: JUMPI 00000901: PUSH2 0x08ed 00000904: DUP5 00000905: DUP3 00000906: PUSH1 0x40 00000908: MLOAD 00000909: DUP1 0000090a: PUSH1 0x60 0000090c: ADD 0000090d: PUSH1 0x40 0000090f: MSTORE 00000910: DUP1 00000911: PUSH1 0x24 00000913: DUP2 00000914: MSTORE 00000915: PUSH1 0x20 00000917: ADD 00000918: PUSH2 0x2efb 0000091b: PUSH1 0x24 0000091d: SWAP2 0000091e: CODECOPY 0000091f: PUSH2 0x10ea 00000922: JUMP 00000923: JUMPDEST 00000924: PUSH2 0x092c 00000927: DUP5 00000928: PUSH2 0x12dc 0000092b: JUMP 0000092c: JUMPDEST 0000092d: PUSH2 0x0953 00000930: JUMPI 00000931: PUSH2 0x08ed 00000934: DUP5 00000935: DUP3 00000936: PUSH1 0x40 00000938: MLOAD 00000939: DUP1 0000093a: PUSH1 0x60 0000093c: ADD 0000093d: PUSH1 0x40 0000093f: MSTORE 00000940: DUP1 00000941: PUSH1 0x26 00000943: DUP2 00000944: MSTORE 00000945: PUSH1 0x20 00000947: ADD 00000948: PUSH2 0x2f3f 0000094b: PUSH1 0x26 0000094d: SWAP2 0000094e: CODECOPY 0000094f: PUSH2 0x10ea 00000952: JUMP 00000953: JUMPDEST 00000954: PUSH2 0x095f 00000957: DUP5 00000958: DUP5 00000959: DUP5 0000095a: DUP5 0000095b: PUSH2 0x1328 0000095e: JUMP 0000095f: JUMPDEST 00000960: POP 00000961: JUMPDEST 00000962: PUSH1 0x00 00000964: PUSH2 0x096b 00000967: PUSH2 0x0fe1 0000096a: JUMP 0000096b: JUMPDEST 0000096c: DUP1 0000096d: SLOAD 0000096e: PUSH1 0xff 00000970: NOT 00000971: AND 00000972: SWAP2 00000973: ISZERO 00000974: ISZERO 00000975: SWAP2 00000976: SWAP1 00000977: SWAP2 00000978: OR 00000979: SWAP1 0000097a: SSTORE 0000097b: POP 0000097c: POP 0000097d: POP 0000097e: JUMP 0000097f: JUMPDEST 00000980: PUSH1 0x00 00000982: PUSH2 0x0989 00000985: PUSH2 0x0fe1 00000988: JUMP 00000989: JUMPDEST 0000098a: PUSH1 0x40 0000098c: MLOAD 0000098d: PUSH4 0x0f40931b 00000992: PUSH1 0xe4 00000994: SHL 00000995: DUP2 00000996: MSTORE 00000997: PUSH20 0x855d82ddd7ad46ea4fb8ae2f611f376f8a9a22b7 000009ac: SWAP2 000009ad: PUSH4 0xf40931b0 000009b2: SWAP2 000009b3: PUSH2 0x09c3 000009b6: SWAP2 000009b7: SWAP1 000009b8: DUP8 000009b9: SWAP1 000009ba: DUP8 000009bb: SWAP1 000009bc: PUSH1 0x04 000009be: ADD 000009bf: PUSH2 0x2b0a 000009c2: JUMP 000009c3: JUMPDEST 000009c4: PUSH1 0x20 000009c6: PUSH1 0x40 000009c8: MLOAD 000009c9: DUP1 000009ca: DUP4 000009cb: SUB 000009cc: DUP2 000009cd: DUP7 000009ce: DUP1 000009cf: EXTCODESIZE 000009d0: ISZERO 000009d1: DUP1 000009d2: ISZERO 000009d3: PUSH2 0x09db 000009d6: JUMPI 000009d7: PUSH1 0x00 000009d9: DUP1 000009da: REVERT 000009db: JUMPDEST 000009dc: POP 000009dd: GAS 000009de: DELEGATECALL 000009df: ISZERO 000009e0: DUP1 000009e1: ISZERO 000009e2: PUSH2 0x09ef 000009e5: JUMPI 000009e6: RETURNDATASIZE 000009e7: PUSH1 0x00 000009e9: DUP1 000009ea: RETURNDATACOPY 000009eb: RETURNDATASIZE 000009ec: PUSH1 0x00 000009ee: REVERT 000009ef: JUMPDEST 000009f0: POP 000009f1: POP 000009f2: POP 000009f3: POP 000009f4: PUSH1 0x40 000009f6: MLOAD 000009f7: RETURNDATASIZE 000009f8: PUSH1 0x1f 000009fa: NOT 000009fb: PUSH1 0x1f 000009fd: DUP3 000009fe: ADD 000009ff: AND 00000a00: DUP3 00000a01: ADD 00000a02: DUP1 00000a03: PUSH1 0x40 00000a05: MSTORE 00000a06: POP 00000a07: DUP2 00000a08: ADD 00000a09: SWAP1 00000a0a: PUSH2 0x0a13 00000a0d: SWAP2 00000a0e: SWAP1 00000a0f: PUSH2 0x21a8 00000a12: JUMP 00000a13: JUMPDEST 00000a14: SWAP4 00000a15: SWAP3 00000a16: POP 00000a17: POP 00000a18: POP 00000a19: JUMP 00000a1a: JUMPDEST 00000a1b: PUSH1 0x00 00000a1d: PUSH2 0x0468 00000a20: DUP3 00000a21: PUSH2 0x0a28 00000a24: PUSH2 0x0cf6 00000a27: JUMP 00000a28: JUMPDEST 00000a29: SWAP1 00000a2a: PUSH4 0xffffffff 00000a2f: PUSH2 0x1993 00000a32: AND 00000a33: JUMP 00000a34: JUMPDEST 00000a35: PUSH1 0x00 00000a37: CALLVALUE 00000a38: GT 00000a39: PUSH2 0x0a54 00000a3c: JUMPI 00000a3d: PUSH1 0x40 00000a3f: MLOAD 00000a40: PUSH3 0x461bcd 00000a44: PUSH1 0xe5 00000a46: SHL 00000a47: DUP2 00000a48: MSTORE 00000a49: PUSH1 0x04 00000a4b: ADD 00000a4c: PUSH2 0x04b1 00000a4f: SWAP1 00000a50: PUSH2 0x2908 00000a53: JUMP 00000a54: JUMPDEST 00000a55: PUSH2 0x0a75 00000a58: PUSH2 0x0a5f 00000a5b: PUSH2 0x0d78 00000a5e: JUMP 00000a5f: JUMPDEST 00000a60: CALLVALUE 00000a61: PUSH2 0x0a68 00000a64: PUSH2 0x0cf6 00000a67: JUMP 00000a68: JUMPDEST 00000a69: SWAP2 00000a6a: SWAP1 00000a6b: PUSH4 0xffffffff 00000a70: PUSH2 0x19e8 00000a73: AND 00000a74: JUMP 00000a75: JUMPDEST 00000a76: JUMP 00000a77: JUMPDEST 00000a78: PUSH2 0x0a7f 00000a7b: PUSH2 0x1fe0 00000a7e: JUMP 00000a7f: JUMPDEST 00000a80: PUSH2 0x0a87 00000a83: PUSH2 0x0e34 00000a86: JUMP 00000a87: JUMPDEST 00000a88: PUSH1 0x40 00000a8a: MLOAD 00000a8b: PUSH4 0x6d73f0db 00000a90: PUSH1 0xe0 00000a92: SHL 00000a93: DUP2 00000a94: MSTORE 00000a95: PUSH20 0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf 00000aaa: SWAP2 00000aab: PUSH4 0x6d73f0db 00000ab0: SWAP2 00000ab1: PUSH2 0x0abd 00000ab4: SWAP2 00000ab5: SWAP1 00000ab6: PUSH1 0x04 00000ab8: ADD 00000ab9: PUSH2 0x2643 00000abc: JUMP 00000abd: JUMPDEST 00000abe: PUSH1 0x80 00000ac0: PUSH1 0x40 00000ac2: MLOAD 00000ac3: DUP1 00000ac4: DUP4 00000ac5: SUB 00000ac6: DUP2 00000ac7: DUP7 00000ac8: DUP1 00000ac9: EXTCODESIZE 00000aca: ISZERO 00000acb: DUP1 00000acc: ISZERO 00000acd: PUSH2 0x0ad5 00000ad0: JUMPI 00000ad1: PUSH1 0x00 00000ad3: DUP1 00000ad4: REVERT 00000ad5: JUMPDEST 00000ad6: POP 00000ad7: GAS 00000ad8: DELEGATECALL 00000ad9: ISZERO 00000ada: DUP1 00000adb: ISZERO 00000adc: PUSH2 0x0ae9 00000adf: JUMPI 00000ae0: RETURNDATASIZE 00000ae1: PUSH1 0x00 00000ae3: DUP1 00000ae4: RETURNDATACOPY 00000ae5: RETURNDATASIZE 00000ae6: PUSH1 0x00 00000ae8: REVERT 00000ae9: JUMPDEST 00000aea: POP 00000aeb: POP 00000aec: POP 00000aed: POP 00000aee: PUSH1 0x40 00000af0: MLOAD 00000af1: RETURNDATASIZE 00000af2: PUSH1 0x1f 00000af4: NOT 00000af5: PUSH1 0x1f 00000af7: DUP3 00000af8: ADD 00000af9: AND 00000afa: DUP3 00000afb: ADD 00000afc: DUP1 00000afd: PUSH1 0x40 00000aff: MSTORE 00000b00: POP 00000b01: DUP2 00000b02: ADD 00000b03: SWAP1 00000b04: PUSH2 0x0b0d 00000b07: SWAP2 00000b08: SWAP1 00000b09: PUSH2 0x22ec 00000b0c: JUMP 00000b0d: JUMPDEST 00000b0e: SWAP1 00000b0f: POP 00000b10: JUMPDEST 00000b11: SWAP1 00000b12: JUMP 00000b13: JUMPDEST 00000b14: PUSH2 0x0b2d 00000b17: PUSH1 0x00 00000b19: DUP1 00000b1a: MLOAD 00000b1b: PUSH1 0x20 00000b1d: PUSH2 0x2f1f 00000b20: DUP4 00000b21: CODECOPY 00000b22: DUP2 00000b23: MLOAD 00000b24: SWAP2 00000b25: MSTORE 00000b26: PUSH2 0x02ce 00000b29: PUSH2 0x0d78 00000b2c: JUMP 00000b2d: JUMPDEST 00000b2e: PUSH2 0x0b49 00000b31: JUMPI 00000b32: PUSH1 0x40 00000b34: MLOAD 00000b35: PUSH3 0x461bcd 00000b39: PUSH1 0xe5 00000b3b: SHL 00000b3c: DUP2 00000b3d: MSTORE 00000b3e: PUSH1 0x04 00000b40: ADD 00000b41: PUSH2 0x04b1 00000b44: SWAP1 00000b45: PUSH2 0x2ae7 00000b48: JUMP 00000b49: JUMPDEST 00000b4a: PUSH2 0x0b63 00000b4d: DUP3 00000b4e: DUP3 00000b4f: PUSH2 0x0b56 00000b52: PUSH2 0x0fe1 00000b55: JUMP 00000b56: JUMPDEST 00000b57: SWAP2 00000b58: SWAP1 00000b59: PUSH4 0xffffffff 00000b5e: PUSH2 0x1a3f 00000b61: AND 00000b62: JUMP 00000b63: JUMPDEST 00000b64: POP 00000b65: POP 00000b66: JUMP 00000b67: JUMPDEST 00000b68: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a 00000b89: DUP2 00000b8a: JUMP 00000b8b: JUMPDEST 00000b8c: PUSH2 0x0ba5 00000b8f: PUSH1 0x00 00000b91: DUP1 00000b92: MLOAD 00000b93: PUSH1 0x20 00000b95: PUSH2 0x2f1f 00000b98: DUP4 00000b99: CODECOPY 00000b9a: DUP2 00000b9b: MLOAD 00000b9c: SWAP2 00000b9d: MSTORE 00000b9e: PUSH2 0x02ce 00000ba1: PUSH2 0x0d78 00000ba4: JUMP 00000ba5: JUMPDEST 00000ba6: PUSH2 0x0bc1 00000ba9: JUMPI 00000baa: PUSH1 0x40 00000bac: MLOAD 00000bad: PUSH3 0x461bcd 00000bb1: PUSH1 0xe5 00000bb3: SHL 00000bb4: DUP2 00000bb5: MSTORE 00000bb6: PUSH1 0x04 00000bb8: ADD 00000bb9: PUSH2 0x04b1 00000bbc: SWAP1 00000bbd: PUSH2 0x2ae7 00000bc0: JUMP 00000bc1: JUMPDEST 00000bc2: PUSH2 0x0b63 00000bc5: DUP3 00000bc6: DUP3 00000bc7: PUSH2 0x0bce 00000bca: PUSH2 0x0fe1 00000bcd: JUMP 00000bce: JUMPDEST 00000bcf: SWAP2 00000bd0: SWAP1 00000bd1: PUSH4 0xffffffff 00000bd6: PUSH2 0x1a6e 00000bd9: AND 00000bda: JUMP 00000bdb: JUMPDEST 00000bdc: PUSH1 0x00 00000bde: PUSH2 0x0be7 00000be1: DUP4 00000be2: DUP4 00000be3: PUSH2 0x1005 00000be6: JUMP 00000be7: JUMPDEST 00000be8: DUP1 00000be9: ISZERO 00000bea: PUSH2 0x0bf7 00000bed: JUMPI 00000bee: POP 00000bef: PUSH2 0x0bf7 00000bf2: DUP4 00000bf3: PUSH2 0x1242 00000bf6: JUMP 00000bf7: JUMPDEST 00000bf8: DUP1 00000bf9: ISZERO 00000bfa: PUSH2 0x0a13 00000bfd: JUMPI 00000bfe: POP 00000bff: PUSH2 0x0a13 00000c02: DUP4 00000c03: PUSH2 0x12dc 00000c06: JUMP 00000c07: JUMPDEST 00000c08: PUSH2 0x0c0f 00000c0b: PUSH2 0x0fe1 00000c0e: JUMP 00000c0f: JUMPDEST 00000c10: SLOAD 00000c11: PUSH1 0xff 00000c13: AND 00000c14: ISZERO 00000c15: PUSH2 0x0c30 00000c18: JUMPI 00000c19: PUSH1 0x40 00000c1b: MLOAD 00000c1c: PUSH3 0x461bcd 00000c20: PUSH1 0xe5 00000c22: SHL 00000c23: DUP2 00000c24: MSTORE 00000c25: PUSH1 0x04 00000c27: ADD 00000c28: PUSH2 0x04b1 00000c2b: SWAP1 00000c2c: PUSH2 0x2696 00000c2f: JUMP 00000c30: JUMPDEST 00000c31: PUSH1 0x01 00000c33: PUSH2 0x0c3a 00000c36: PUSH2 0x0fe1 00000c39: JUMP 00000c3a: JUMPDEST 00000c3b: DUP1 00000c3c: SLOAD 00000c3d: PUSH1 0xff 00000c3f: NOT 00000c40: AND 00000c41: SWAP2 00000c42: ISZERO 00000c43: ISZERO 00000c44: SWAP2 00000c45: SWAP1 00000c46: SWAP2 00000c47: OR 00000c48: SWAP1 00000c49: SSTORE 00000c4a: PUSH1 0x01 00000c4c: PUSH1 0x01 00000c4e: PUSH1 0x70 00000c50: SHL 00000c51: SUB 00000c52: DUP2 00000c53: AND 00000c54: PUSH2 0x0c6f 00000c57: JUMPI 00000c58: PUSH1 0x40 00000c5a: MLOAD 00000c5b: PUSH3 0x461bcd 00000c5f: PUSH1 0xe5 00000c61: SHL 00000c62: DUP2 00000c63: MSTORE 00000c64: PUSH1 0x04 00000c66: ADD 00000c67: PUSH2 0x04b1 00000c6a: SWAP1 00000c6b: PUSH2 0x2a19 00000c6e: JUMP 00000c6f: JUMPDEST 00000c70: PUSH2 0x0c90 00000c73: PUSH2 0x0c7a 00000c76: PUSH2 0x0d78 00000c79: JUMP 00000c7a: JUMPDEST 00000c7b: DUP3 00000c7c: PUSH2 0x0c83 00000c7f: PUSH2 0x0cf6 00000c82: JUMP 00000c83: JUMPDEST 00000c84: SWAP2 00000c85: SWAP1 00000c86: PUSH4 0xffffffff 00000c8b: PUSH2 0x1aa1 00000c8e: AND 00000c8f: JUMP 00000c90: JUMPDEST 00000c91: PUSH2 0x0c98 00000c94: PUSH2 0x0d78 00000c97: JUMP 00000c98: JUMPDEST 00000c99: PUSH1 0x01 00000c9b: PUSH1 0x01 00000c9d: PUSH1 0xa0 00000c9f: SHL 00000ca0: SUB 00000ca1: AND 00000ca2: PUSH2 0x08fc 00000ca5: DUP3 00000ca6: PUSH1 0x01 00000ca8: PUSH1 0x01 00000caa: PUSH1 0x70 00000cac: SHL 00000cad: SUB 00000cae: AND 00000caf: SWAP1 00000cb0: DUP2 00000cb1: ISZERO 00000cb2: MUL 00000cb3: SWAP1 00000cb4: PUSH1 0x40 00000cb6: MLOAD 00000cb7: PUSH1 0x00 00000cb9: PUSH1 0x40 00000cbb: MLOAD 00000cbc: DUP1 00000cbd: DUP4 00000cbe: SUB 00000cbf: DUP2 00000cc0: DUP6 00000cc1: DUP9 00000cc2: DUP9 00000cc3: CALL 00000cc4: SWAP4 00000cc5: POP 00000cc6: POP 00000cc7: POP 00000cc8: POP 00000cc9: ISZERO 00000cca: DUP1 00000ccb: ISZERO 00000ccc: PUSH2 0x0cd9 00000ccf: JUMPI 00000cd0: RETURNDATASIZE 00000cd1: PUSH1 0x00 00000cd3: DUP1 00000cd4: RETURNDATACOPY 00000cd5: RETURNDATASIZE 00000cd6: PUSH1 0x00 00000cd8: REVERT 00000cd9: JUMPDEST 00000cda: POP 00000cdb: PUSH1 0x00 00000cdd: PUSH2 0x0ce4 00000ce0: PUSH2 0x0fe1 00000ce3: JUMP 00000ce4: JUMPDEST 00000ce5: DUP1 00000ce6: SLOAD 00000ce7: PUSH1 0xff 00000ce9: NOT 00000cea: AND 00000ceb: SWAP2 00000cec: ISZERO 00000ced: ISZERO 00000cee: SWAP2 00000cef: SWAP1 00000cf0: SWAP2 00000cf1: OR 00000cf2: SWAP1 00000cf3: SSTORE 00000cf4: POP 00000cf5: JUMP 00000cf6: JUMPDEST 00000cf7: PUSH32 0x8c89fc81d9ea4103ca01a6b8674fdaec22ec47acad49dcba52ad9c3d556ea075 00000d18: SWAP1 00000d19: JUMP 00000d1a: JUMPDEST 00000d1b: PUSH2 0x0d72 00000d1e: DUP5 00000d1f: PUSH4 0x23b872dd 00000d24: PUSH1 0xe0 00000d26: SHL 00000d27: DUP6 00000d28: DUP6 00000d29: DUP6 00000d2a: PUSH1 0x40 00000d2c: MLOAD 00000d2d: PUSH1 0x24 00000d2f: ADD 00000d30: PUSH2 0x0d3b 00000d33: SWAP4 00000d34: SWAP3 00000d35: SWAP2 00000d36: SWAP1 00000d37: PUSH2 0x25fb 00000d3a: JUMP 00000d3b: JUMPDEST 00000d3c: PUSH1 0x40 00000d3e: DUP1 00000d3f: MLOAD 00000d40: PUSH1 0x1f 00000d42: NOT 00000d43: DUP2 00000d44: DUP5 00000d45: SUB 00000d46: ADD 00000d47: DUP2 00000d48: MSTORE 00000d49: SWAP2 00000d4a: SWAP1 00000d4b: MSTORE 00000d4c: PUSH1 0x20 00000d4e: DUP2 00000d4f: ADD 00000d50: DUP1 00000d51: MLOAD 00000d52: PUSH1 0x01 00000d54: PUSH1 0x01 00000d56: PUSH1 0xe0 00000d58: SHL 00000d59: SUB 00000d5a: AND 00000d5b: PUSH1 0x01 00000d5d: PUSH1 0x01 00000d5f: PUSH1 0xe0 00000d61: SHL 00000d62: SUB 00000d63: NOT 00000d64: SWAP1 00000d65: SWAP4 00000d66: AND 00000d67: SWAP3 00000d68: SWAP1 00000d69: SWAP3 00000d6a: OR 00000d6b: SWAP1 00000d6c: SWAP2 00000d6d: MSTORE 00000d6e: PUSH2 0x1b4e 00000d71: JUMP 00000d72: JUMPDEST 00000d73: POP 00000d74: POP 00000d75: POP 00000d76: POP 00000d77: JUMP 00000d78: JUMPDEST 00000d79: CALLER 00000d7a: SWAP1 00000d7b: JUMP 00000d7c: JUMPDEST 00000d7d: PUSH1 0x01 00000d7f: PUSH1 0x01 00000d81: PUSH1 0xa0 00000d83: SHL 00000d84: SUB 00000d85: DUP3 00000d86: AND 00000d87: PUSH1 0x00 00000d89: SWAP1 00000d8a: DUP2 00000d8b: MSTORE 00000d8c: PUSH1 0x20 00000d8e: DUP5 00000d8f: SWAP1 00000d90: MSTORE 00000d91: PUSH1 0x40 00000d93: SWAP1 00000d94: KECCAK256 00000d95: DUP1 00000d96: SLOAD 00000d97: PUSH2 0x0db3 00000d9a: SWAP1 00000d9b: PUSH1 0x01 00000d9d: PUSH1 0x01 00000d9f: PUSH1 0x70 00000da1: SHL 00000da2: SUB 00000da3: SWAP1 00000da4: DUP2 00000da5: AND 00000da6: SWAP1 00000da7: DUP5 00000da8: AND 00000da9: PUSH4 0xffffffff 00000dae: PUSH2 0x1bdd 00000db1: AND 00000db2: JUMP 00000db3: JUMPDEST 00000db4: DUP2 00000db5: SLOAD 00000db6: PUSH1 0x01 00000db8: PUSH1 0x01 00000dba: PUSH1 0x70 00000dbc: SHL 00000dbd: SUB 00000dbe: NOT 00000dbf: AND 00000dc0: PUSH1 0x01 00000dc2: PUSH1 0x01 00000dc4: PUSH1 0x70 00000dc6: SHL 00000dc7: SUB 00000dc8: SWAP2 00000dc9: DUP3 00000dca: AND 00000dcb: OR 00000dcc: DUP1 00000dcd: DUP4 00000dce: SSTORE 00000dcf: PUSH2 0x0de4 00000dd2: SWAP2 00000dd3: PUSH1 0x01 00000dd5: PUSH1 0x70 00000dd7: SHL 00000dd8: SWAP1 00000dd9: SWAP2 00000dda: DIV 00000ddb: DUP2 00000ddc: AND 00000ddd: SWAP1 00000dde: DUP5 00000ddf: AND 00000de0: PUSH2 0x1c1f 00000de3: JUMP 00000de4: JUMPDEST 00000de5: DUP2 00000de6: SLOAD 00000de7: PUSH1 0x01 00000de9: PUSH1 0x01 00000deb: PUSH1 0x70 00000ded: SHL 00000dee: SUB 00000def: SWAP2 00000df0: SWAP1 00000df1: SWAP2 00000df2: AND 00000df3: PUSH1 0x01 00000df5: PUSH1 0x70 00000df7: SHL 00000df8: MUL 00000df9: PUSH1 0x01 00000dfb: PUSH1 0x70 00000dfd: SHL 00000dfe: PUSH1 0x01 00000e00: PUSH1 0xe0 00000e02: SHL 00000e03: SUB 00000e04: NOT 00000e05: SWAP1 00000e06: SWAP2 00000e07: AND 00000e08: OR 00000e09: DUP2 00000e0a: SSTORE 00000e0b: PUSH2 0x0e29 00000e0e: PUSH2 0x0e15 00000e11: PUSH2 0x0e34 00000e14: JUMP 00000e15: JUMPDEST 00000e16: PUSH1 0x02 00000e18: ADD 00000e19: SLOAD 00000e1a: NUMBER 00000e1b: SWAP1 00000e1c: PUSH1 0xff 00000e1e: AND 00000e1f: PUSH4 0xffffffff 00000e24: PUSH2 0x1c1f 00000e27: AND 00000e28: JUMP 00000e29: JUMPDEST 00000e2a: PUSH1 0x01 00000e2c: SWAP1 00000e2d: SWAP2 00000e2e: ADD 00000e2f: SSTORE 00000e30: POP 00000e31: POP 00000e32: POP 00000e33: JUMP 00000e34: JUMPDEST 00000e35: PUSH32 0xf5b4be0a744c821d14f78bf26d55a308f420d78cebbfac103f2618fba32917b9 00000e56: SWAP1 00000e57: JUMP 00000e58: JUMPDEST 00000e59: PUSH32 0xd59dd79cfd4373c6c6547848d91fc2ea67c8aec9053f7028828216c5af1d4741 00000e7a: SWAP1 00000e7b: JUMP 00000e7c: JUMPDEST 00000e7d: PUSH2 0x0e84 00000e80: PUSH2 0x0e34 00000e83: JUMP 00000e84: JUMPDEST 00000e85: PUSH1 0x40 00000e87: MLOAD 00000e88: PUSH4 0x21cab0c7 00000e8d: PUSH1 0xe0 00000e8f: SHL 00000e90: DUP2 00000e91: MSTORE 00000e92: PUSH20 0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf 00000ea7: SWAP2 00000ea8: PUSH4 0x21cab0c7 00000ead: SWAP2 00000eae: PUSH2 0x0ebc 00000eb1: SWAP2 00000eb2: SWAP1 00000eb3: DUP6 00000eb4: SWAP1 00000eb5: PUSH1 0x04 00000eb7: ADD 00000eb8: PUSH2 0x2b37 00000ebb: JUMP 00000ebc: JUMPDEST 00000ebd: PUSH1 0x00 00000ebf: PUSH1 0x40 00000ec1: MLOAD 00000ec2: DUP1 00000ec3: DUP4 00000ec4: SUB 00000ec5: DUP2 00000ec6: DUP7 00000ec7: DUP1 00000ec8: EXTCODESIZE 00000ec9: ISZERO 00000eca: DUP1 00000ecb: ISZERO 00000ecc: PUSH2 0x0ed4 00000ecf: JUMPI 00000ed0: PUSH1 0x00 00000ed2: DUP1 00000ed3: REVERT 00000ed4: JUMPDEST 00000ed5: POP 00000ed6: GAS 00000ed7: DELEGATECALL 00000ed8: ISZERO 00000ed9: DUP1 00000eda: ISZERO 00000edb: PUSH2 0x0ee8 00000ede: JUMPI 00000edf: RETURNDATASIZE 00000ee0: PUSH1 0x00 00000ee2: DUP1 00000ee3: RETURNDATACOPY 00000ee4: RETURNDATASIZE 00000ee5: PUSH1 0x00 00000ee7: REVERT 00000ee8: JUMPDEST 00000ee9: POP 00000eea: POP 00000eeb: POP 00000eec: POP 00000eed: PUSH2 0x060a 00000ef0: PUSH2 0x1c44 00000ef3: JUMP 00000ef4: JUMPDEST 00000ef5: PUSH1 0x01 00000ef7: PUSH1 0x01 00000ef9: PUSH1 0xa0 00000efb: SHL 00000efc: SUB 00000efd: DUP2 00000efe: AND 00000eff: PUSH1 0x00 00000f01: SWAP1 00000f02: DUP2 00000f03: MSTORE 00000f04: PUSH1 0x20 00000f06: DUP4 00000f07: SWAP1 00000f08: MSTORE 00000f09: PUSH1 0x40 00000f0b: DUP2 00000f0c: KECCAK256 00000f0d: PUSH1 0x01 00000f0f: DUP2 00000f10: ADD 00000f11: SLOAD 00000f12: ISZERO 00000f13: DUP1 00000f14: ISZERO 00000f15: SWAP1 00000f16: PUSH2 0x0f22 00000f19: JUMPI 00000f1a: POP 00000f1b: NUMBER 00000f1c: DUP2 00000f1d: PUSH1 0x01 00000f1f: ADD 00000f20: SLOAD 00000f21: LT 00000f22: JUMPDEST 00000f23: ISZERO 00000f24: PUSH2 0x0f54 00000f27: JUMPI 00000f28: DUP1 00000f29: SLOAD 00000f2a: PUSH2 0x0f4c 00000f2d: SWAP1 00000f2e: PUSH1 0x01 00000f30: PUSH1 0x01 00000f32: PUSH1 0x70 00000f34: SHL 00000f35: SUB 00000f36: DUP1 00000f37: DUP3 00000f38: AND 00000f39: SWAP2 00000f3a: PUSH1 0x01 00000f3c: PUSH1 0x70 00000f3e: SHL 00000f3f: SWAP1 00000f40: DIV 00000f41: AND 00000f42: PUSH4 0xffffffff 00000f47: PUSH2 0x1c1f 00000f4a: AND 00000f4b: JUMP 00000f4c: JUMPDEST 00000f4d: SWAP2 00000f4e: POP 00000f4f: POP 00000f50: PUSH2 0x0468 00000f53: JUMP 00000f54: JUMPDEST 00000f55: SLOAD 00000f56: PUSH1 0x01 00000f58: PUSH1 0x01 00000f5a: PUSH1 0x70 00000f5c: SHL 00000f5d: SUB 00000f5e: AND 00000f5f: SWAP4 00000f60: SWAP3 00000f61: POP 00000f62: POP 00000f63: POP 00000f64: JUMP 00000f65: JUMPDEST 00000f66: PUSH1 0x00 00000f68: DUP3 00000f69: PUSH2 0x0f74 00000f6c: JUMPI 00000f6d: POP 00000f6e: PUSH1 0x00 00000f70: PUSH2 0x0468 00000f73: JUMP 00000f74: JUMPDEST 00000f75: DUP3 00000f76: DUP3 00000f77: MUL 00000f78: DUP3 00000f79: DUP5 00000f7a: DUP3 00000f7b: DUP2 00000f7c: PUSH2 0x0f81 00000f7f: JUMPI 00000f80: INVALID 00000f81: JUMPDEST 00000f82: DIV 00000f83: EQ 00000f84: PUSH2 0x0a13 00000f87: JUMPI 00000f88: PUSH1 0x40 00000f8a: MLOAD 00000f8b: PUSH3 0x461bcd 00000f8f: PUSH1 0xe5 00000f91: SHL 00000f92: DUP2 00000f93: MSTORE 00000f94: PUSH1 0x04 00000f96: ADD 00000f97: PUSH2 0x04b1 00000f9a: SWAP1 00000f9b: PUSH2 0x28c7 00000f9e: JUMP 00000f9f: JUMPDEST 00000fa0: PUSH1 0x00 00000fa2: PUSH2 0x0a13 00000fa5: DUP4 00000fa6: DUP4 00000fa7: PUSH1 0x40 00000fa9: MLOAD 00000faa: DUP1 00000fab: PUSH1 0x40 00000fad: ADD 00000fae: PUSH1 0x40 00000fb0: MSTORE 00000fb1: DUP1 00000fb2: PUSH1 0x1a 00000fb4: DUP2 00000fb5: MSTORE 00000fb6: PUSH1 0x20 00000fb8: ADD 00000fb9: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 00000fda: DUP2 00000fdb: MSTORE 00000fdc: POP 00000fdd: PUSH2 0x1d37 00000fe0: JUMP 00000fe1: JUMPDEST 00000fe2: PUSH32 0x3a83b1278d351a40f18bb9e8e77896e8c1dc812ffaed5ea63e0e837a6dae57e9 00001003: SWAP1 00001004: JUMP 00001005: JUMPDEST 00001006: PUSH1 0x00 00001008: DUP1 00001009: PUSH2 0x101b 0000100c: PUSH3 0x06ddd0 00001010: DUP5 00001011: PUSH4 0xffffffff 00001016: PUSH2 0x0f65 00001019: AND 0000101a: JUMP 0000101b: JUMPDEST 0000101c: SWAP1 0000101d: POP 0000101e: PUSH1 0x00 00001020: PUSH2 0x1064 00001023: PUSH2 0x102a 00001026: PUSH2 0x0e34 00001029: JUMP 0000102a: JUMPDEST 0000102b: PUSH1 0x01 0000102d: ADD 0000102e: SLOAD 0000102f: PUSH1 0x20 00001031: DUP8 00001032: ADD 00001033: MLOAD 00001034: PUSH1 0x01 00001036: PUSH1 0x01 00001038: PUSH1 0x80 0000103a: SHL 0000103b: SUB 0000103c: PUSH1 0x01 0000103e: PUSH1 0x80 00001040: SHL 00001041: SWAP1 00001042: SWAP3 00001043: DIV 00001044: DUP3 00001045: AND 00001046: SWAP2 00001047: PUSH2 0x1058 0000104a: SWAP2 0000104b: DUP7 0000104c: SWAP2 0000104d: AND 0000104e: PUSH4 0xffffffff 00001053: PUSH2 0x1c1f 00001056: AND 00001057: JUMP 00001058: JUMPDEST 00001059: SWAP1 0000105a: PUSH4 0xffffffff 0000105f: PUSH2 0x1c1f 00001062: AND 00001063: JUMP 00001064: JUMPDEST 00001065: DUP6 00001066: MLOAD 00001067: PUSH1 0x40 00001069: MLOAD 0000106a: PUSH4 0x0ebd3559 0000106f: PUSH1 0xe3 00001071: SHL 00001072: DUP2 00001073: MSTORE 00001074: SWAP2 00001075: SWAP3 00001076: POP 00001077: PUSH1 0x00 00001079: SWAP2 0000107a: ADDRESS 0000107b: SWAP2 0000107c: PUSH4 0x75e9aac8 00001081: SWAP2 00001082: PUSH2 0x1090 00001085: SWAP2 00001086: SWAP1 00001087: DUP7 00001088: SWAP1 00001089: PUSH1 0x04 0000108b: ADD 0000108c: PUSH2 0x261f 0000108f: JUMP 00001090: JUMPDEST 00001091: PUSH1 0x20 00001093: PUSH1 0x40 00001095: MLOAD 00001096: DUP1 00001097: DUP4 00001098: SUB 00001099: DUP2 0000109a: DUP7 0000109b: DUP1 0000109c: EXTCODESIZE 0000109d: ISZERO 0000109e: DUP1 0000109f: ISZERO 000010a0: PUSH2 0x10a8 000010a3: JUMPI 000010a4: PUSH1 0x00 000010a6: DUP1 000010a7: REVERT 000010a8: JUMPDEST 000010a9: POP 000010aa: GAS 000010ab: STATICCALL 000010ac: ISZERO 000010ad: DUP1 000010ae: ISZERO 000010af: PUSH2 0x10bc 000010b2: JUMPI 000010b3: RETURNDATASIZE 000010b4: PUSH1 0x00 000010b6: DUP1 000010b7: RETURNDATACOPY 000010b8: RETURNDATASIZE 000010b9: PUSH1 0x00 000010bb: REVERT 000010bc: JUMPDEST 000010bd: POP 000010be: POP 000010bf: POP 000010c0: POP 000010c1: PUSH1 0x40 000010c3: MLOAD 000010c4: RETURNDATASIZE 000010c5: PUSH1 0x1f 000010c7: NOT 000010c8: PUSH1 0x1f 000010ca: DUP3 000010cb: ADD 000010cc: AND 000010cd: DUP3 000010ce: ADD 000010cf: DUP1 000010d0: PUSH1 0x40 000010d2: MSTORE 000010d3: POP 000010d4: DUP2 000010d5: ADD 000010d6: SWAP1 000010d7: PUSH2 0x10e0 000010da: SWAP2 000010db: SWAP1 000010dc: PUSH2 0x21a8 000010df: JUMP 000010e0: JUMPDEST 000010e1: SWAP7 000010e2: SWAP6 000010e3: POP 000010e4: POP 000010e5: POP 000010e6: POP 000010e7: POP 000010e8: POP 000010e9: JUMP 000010ea: JUMPDEST 000010eb: PUSH1 0x00 000010ed: PUSH2 0x10f4 000010f0: PUSH2 0x0e34 000010f3: JUMP 000010f4: JUMPDEST 000010f5: PUSH1 0x01 000010f7: ADD 000010f8: SLOAD 000010f9: PUSH1 0x01 000010fb: PUSH1 0x80 000010fd: SHL 000010fe: SWAP1 000010ff: DIV 00001100: PUSH1 0x01 00001102: PUSH1 0x01 00001104: PUSH1 0x80 00001106: SHL 00001107: SUB 00001108: AND 00001109: SWAP1 0000110a: POP 0000110b: PUSH1 0x00 0000110d: PUSH2 0x1123 00001110: PUSH2 0xea60 00001113: PUSH2 0x1058 00001116: GAS 00001117: DUP8 00001118: SWAP1 00001119: PUSH4 0xffffffff 0000111e: PUSH2 0x1bdd 00001121: AND 00001122: JUMP 00001123: JUMPDEST 00001124: SWAP1 00001125: POP 00001126: PUSH1 0x00 00001128: PUSH2 0x1137 0000112b: DUP3 0000112c: GASPRICE 0000112d: PUSH4 0xffffffff 00001132: PUSH2 0x0f65 00001135: AND 00001136: JUMP 00001137: JUMPDEST 00001138: DUP7 00001139: MLOAD 0000113a: SWAP1 0000113b: SWAP2 0000113c: POP 0000113d: PUSH2 0x115e 00001140: SWAP1 00001141: PUSH2 0x1159 00001144: PUSH1 0x01 00001146: PUSH1 0x01 00001148: PUSH1 0x80 0000114a: SHL 0000114b: SUB 0000114c: DUP7 0000114d: AND 0000114e: DUP5 0000114f: PUSH4 0xffffffff 00001154: PUSH2 0x1c1f 00001157: AND 00001158: JUMP 00001159: JUMPDEST 0000115a: PUSH2 0x1d6e 0000115d: JUMP 0000115e: JUMPDEST 0000115f: DUP6 00001160: PUSH1 0x00 00001162: ADD 00001163: MLOAD 00001164: PUSH1 0x01 00001166: PUSH1 0x01 00001168: PUSH1 0xa0 0000116a: SHL 0000116b: SUB 0000116c: AND 0000116d: PUSH32 0x7f90208f4b1dbe35087f2dd428fb2ba1ad82c57f759d55c1967dab7ea0a9a771 0000118e: DUP5 0000118f: PUSH1 0x01 00001191: PUSH1 0x01 00001193: PUSH1 0x80 00001195: SHL 00001196: SUB 00001197: AND 00001198: DUP4 00001199: DUP8 0000119a: PUSH1 0x40 0000119c: MLOAD 0000119d: PUSH2 0x11a8 000011a0: SWAP4 000011a1: SWAP3 000011a2: SWAP2 000011a3: SWAP1 000011a4: PUSH2 0x2cf0 000011a7: JUMP 000011a8: JUMPDEST 000011a9: PUSH1 0x40 000011ab: MLOAD 000011ac: DUP1 000011ad: SWAP2 000011ae: SUB 000011af: SWAP1 000011b0: LOG2 000011b1: PUSH2 0x11b8 000011b4: PUSH2 0x0e34 000011b7: JUMP 000011b8: JUMPDEST 000011b9: SLOAD 000011ba: PUSH1 0x40 000011bc: MLOAD 000011bd: PUSH1 0x01 000011bf: PUSH1 0x01 000011c1: PUSH1 0xa0 000011c3: SHL 000011c4: SUB 000011c5: SWAP1 000011c6: SWAP2 000011c7: AND 000011c8: SWAP1 000011c9: PUSH1 0x01 000011cb: PUSH1 0x01 000011cd: PUSH1 0x80 000011cf: SHL 000011d0: SUB 000011d1: DUP6 000011d2: AND 000011d3: DUP1 000011d4: ISZERO 000011d5: PUSH2 0x08fc 000011d8: MUL 000011d9: SWAP2 000011da: PUSH1 0x00 000011dc: DUP2 000011dd: DUP2 000011de: DUP2 000011df: DUP6 000011e0: DUP9 000011e1: DUP9 000011e2: CALL 000011e3: SWAP4 000011e4: POP 000011e5: POP 000011e6: POP 000011e7: POP 000011e8: ISZERO 000011e9: DUP1 000011ea: ISZERO 000011eb: PUSH2 0x11f8 000011ee: JUMPI 000011ef: RETURNDATASIZE 000011f0: PUSH1 0x00 000011f2: DUP1 000011f3: RETURNDATACOPY 000011f4: RETURNDATASIZE 000011f5: PUSH1 0x00 000011f7: REVERT 000011f8: JUMPDEST 000011f9: POP 000011fa: PUSH2 0x1201 000011fd: PUSH2 0x0d78 00001200: JUMP 00001201: JUMPDEST 00001202: PUSH1 0x01 00001204: PUSH1 0x01 00001206: PUSH1 0xa0 00001208: SHL 00001209: SUB 0000120a: AND 0000120b: PUSH2 0x08fc 0000120e: DUP3 0000120f: SWAP1 00001210: DUP2 00001211: ISZERO 00001212: MUL 00001213: SWAP1 00001214: PUSH1 0x40 00001216: MLOAD 00001217: PUSH1 0x00 00001219: PUSH1 0x40 0000121b: MLOAD 0000121c: DUP1 0000121d: DUP4 0000121e: SUB 0000121f: DUP2 00001220: DUP6 00001221: DUP9 00001222: DUP9 00001223: CALL 00001224: SWAP4 00001225: POP 00001226: POP 00001227: POP 00001228: POP 00001229: ISZERO 0000122a: DUP1 0000122b: ISZERO 0000122c: PUSH2 0x1239 0000122f: JUMPI 00001230: RETURNDATASIZE 00001231: PUSH1 0x00 00001233: DUP1 00001234: RETURNDATACOPY 00001235: RETURNDATASIZE 00001236: PUSH1 0x00 00001238: REVERT 00001239: JUMPDEST 0000123a: POP 0000123b: POP 0000123c: POP 0000123d: POP 0000123e: POP 0000123f: POP 00001240: POP 00001241: JUMP 00001242: JUMPDEST 00001243: PUSH1 0x80 00001245: DUP2 00001246: ADD 00001247: MLOAD 00001248: PUSH1 0x20 0000124a: DUP2 0000124b: ADD 0000124c: MLOAD 0000124d: SWAP1 0000124e: MLOAD 0000124f: DUP3 00001250: MLOAD 00001251: PUSH1 0x40 00001253: MLOAD 00001254: PUSH4 0x70a08231 00001259: PUSH1 0xe0 0000125b: SHL 0000125c: DUP2 0000125d: MSTORE 0000125e: PUSH1 0x00 00001260: SWAP4 00001261: DUP5 00001262: SWAP4 00001263: PUSH1 0x01 00001265: PUSH1 0x01 00001267: PUSH1 0x70 00001269: SHL 0000126a: SUB 0000126b: SWAP1 0000126c: SWAP2 0000126d: AND 0000126e: SWAP3 0000126f: PUSH1 0x01 00001271: PUSH1 0x01 00001273: PUSH1 0xa0 00001275: SHL 00001276: SUB 00001277: SWAP1 00001278: SWAP2 00001279: AND 0000127a: SWAP2 0000127b: PUSH4 0x70a08231 00001280: SWAP2 00001281: PUSH2 0x128c 00001284: SWAP2 00001285: PUSH1 0x04 00001287: ADD 00001288: PUSH2 0x25cd 0000128b: JUMP 0000128c: JUMPDEST 0000128d: PUSH1 0x20 0000128f: PUSH1 0x40 00001291: MLOAD 00001292: DUP1 00001293: DUP4 00001294: SUB 00001295: DUP2 00001296: DUP7 00001297: DUP1 00001298: EXTCODESIZE 00001299: ISZERO 0000129a: DUP1 0000129b: ISZERO 0000129c: PUSH2 0x12a4 0000129f: JUMPI 000012a0: PUSH1 0x00 000012a2: DUP1 000012a3: REVERT 000012a4: JUMPDEST 000012a5: POP 000012a6: GAS 000012a7: STATICCALL 000012a8: ISZERO 000012a9: DUP1 000012aa: ISZERO 000012ab: PUSH2 0x12b8 000012ae: JUMPI 000012af: RETURNDATASIZE 000012b0: PUSH1 0x00 000012b2: DUP1 000012b3: RETURNDATACOPY 000012b4: RETURNDATASIZE 000012b5: PUSH1 0x00 000012b7: REVERT 000012b8: JUMPDEST 000012b9: POP 000012ba: POP 000012bb: POP 000012bc: POP 000012bd: PUSH1 0x40 000012bf: MLOAD 000012c0: RETURNDATASIZE 000012c1: PUSH1 0x1f 000012c3: NOT 000012c4: PUSH1 0x1f 000012c6: DUP3 000012c7: ADD 000012c8: AND 000012c9: DUP3 000012ca: ADD 000012cb: DUP1 000012cc: PUSH1 0x40 000012ce: MSTORE 000012cf: POP 000012d0: DUP2 000012d1: ADD 000012d2: SWAP1 000012d3: PUSH2 0x07de 000012d6: SWAP2 000012d7: SWAP1 000012d8: PUSH2 0x24c6 000012db: JUMP 000012dc: JUMPDEST 000012dd: PUSH1 0x80 000012df: DUP2 000012e0: ADD 000012e1: MLOAD 000012e2: PUSH1 0x20 000012e4: DUP2 000012e5: ADD 000012e6: MLOAD 000012e7: SWAP1 000012e8: MLOAD 000012e9: DUP3 000012ea: MLOAD 000012eb: PUSH1 0x40 000012ed: MLOAD 000012ee: PUSH4 0x6eb1769f 000012f3: PUSH1 0xe1 000012f5: SHL 000012f6: DUP2 000012f7: MSTORE 000012f8: PUSH1 0x00 000012fa: SWAP4 000012fb: DUP5 000012fc: SWAP4 000012fd: PUSH1 0x01 000012ff: PUSH1 0x01 00001301: PUSH1 0x70 00001303: SHL 00001304: SUB 00001305: SWAP1 00001306: SWAP2 00001307: AND 00001308: SWAP3 00001309: PUSH1 0x01 0000130b: PUSH1 0x01 0000130d: PUSH1 0xa0 0000130f: SHL 00001310: SUB 00001311: SWAP1 00001312: SWAP2 00001313: AND 00001314: SWAP2 00001315: PUSH4 0xdd62ed3e 0000131a: SWAP2 0000131b: PUSH2 0x128c 0000131e: SWAP2 0000131f: ADDRESS 00001320: SWAP1 00001321: PUSH1 0x04 00001323: ADD 00001324: PUSH2 0x25e1 00001327: JUMP 00001328: JUMPDEST 00001329: PUSH2 0x1330 0000132c: PUSH2 0x2007 0000132f: JUMP 00001330: JUMPDEST 00001331: PUSH1 0x40 00001333: DUP1 00001334: MLOAD 00001335: PUSH1 0x80 00001337: DUP1 00001338: DUP3 00001339: ADD 0000133a: SWAP3 0000133b: DUP4 0000133c: SWAP1 0000133d: MSTORE 0000133e: DUP8 0000133f: ADD 00001340: MLOAD 00001341: MLOAD 00001342: DUP8 00001343: MLOAD 00001344: PUSH4 0x70a08231 00001349: PUSH1 0xe0 0000134b: SHL 0000134c: SWAP1 0000134d: SWAP4 0000134e: MSTORE 0000134f: SWAP1 00001350: SWAP2 00001351: DUP3 00001352: SWAP2 00001353: PUSH1 0x01 00001355: PUSH1 0x01 00001357: PUSH1 0xa0 00001359: SHL 0000135a: SUB 0000135b: AND 0000135c: SWAP1 0000135d: PUSH4 0x70a08231 00001362: SWAP1 00001363: PUSH2 0x136f 00001366: SWAP1 00001367: PUSH1 0x84 00001369: DUP6 0000136a: ADD 0000136b: PUSH2 0x25cd 0000136e: JUMP 0000136f: JUMPDEST 00001370: PUSH1 0x20 00001372: PUSH1 0x40 00001374: MLOAD 00001375: DUP1 00001376: DUP4 00001377: SUB 00001378: DUP2 00001379: DUP7 0000137a: DUP1 0000137b: EXTCODESIZE 0000137c: ISZERO 0000137d: DUP1 0000137e: ISZERO 0000137f: PUSH2 0x1387 00001382: JUMPI 00001383: PUSH1 0x00 00001385: DUP1 00001386: REVERT 00001387: JUMPDEST 00001388: POP 00001389: GAS 0000138a: STATICCALL 0000138b: ISZERO 0000138c: DUP1 0000138d: ISZERO 0000138e: PUSH2 0x139b 00001391: JUMPI 00001392: RETURNDATASIZE 00001393: PUSH1 0x00 00001395: DUP1 00001396: RETURNDATACOPY 00001397: RETURNDATASIZE 00001398: PUSH1 0x00 0000139a: REVERT 0000139b: JUMPDEST 0000139c: POP 0000139d: POP 0000139e: POP 0000139f: POP 000013a0: PUSH1 0x40 000013a2: MLOAD 000013a3: RETURNDATASIZE 000013a4: PUSH1 0x1f 000013a6: NOT 000013a7: PUSH1 0x1f 000013a9: DUP3 000013aa: ADD 000013ab: AND 000013ac: DUP3 000013ad: ADD 000013ae: DUP1 000013af: PUSH1 0x40 000013b1: MSTORE 000013b2: POP 000013b3: DUP2 000013b4: ADD 000013b5: SWAP1 000013b6: PUSH2 0x13bf 000013b9: SWAP2 000013ba: SWAP1 000013bb: PUSH2 0x24c6 000013be: JUMP 000013bf: JUMPDEST 000013c0: DUP2 000013c1: MSTORE 000013c2: PUSH1 0xa0 000013c4: DUP8 000013c5: ADD 000013c6: MLOAD 000013c7: MLOAD 000013c8: DUP8 000013c9: MLOAD 000013ca: PUSH1 0x40 000013cc: MLOAD 000013cd: PUSH4 0x70a08231 000013d2: PUSH1 0xe0 000013d4: SHL 000013d5: DUP2 000013d6: MSTORE 000013d7: PUSH1 0x20 000013d9: SWAP1 000013da: SWAP4 000013db: ADD 000013dc: SWAP3 000013dd: PUSH1 0x01 000013df: PUSH1 0x01 000013e1: PUSH1 0xa0 000013e3: SHL 000013e4: SUB 000013e5: SWAP1 000013e6: SWAP3 000013e7: AND 000013e8: SWAP2 000013e9: PUSH4 0x70a08231 000013ee: SWAP2 000013ef: PUSH2 0x13fa 000013f2: SWAP2 000013f3: PUSH1 0x04 000013f5: ADD 000013f6: PUSH2 0x25cd 000013f9: JUMP 000013fa: JUMPDEST 000013fb: PUSH1 0x20 000013fd: PUSH1 0x40 000013ff: MLOAD 00001400: DUP1 00001401: DUP4 00001402: SUB 00001403: DUP2 00001404: DUP7 00001405: DUP1 00001406: EXTCODESIZE 00001407: ISZERO 00001408: DUP1 00001409: ISZERO 0000140a: PUSH2 0x1412 0000140d: JUMPI 0000140e: PUSH1 0x00 00001410: DUP1 00001411: REVERT 00001412: JUMPDEST 00001413: POP 00001414: GAS 00001415: STATICCALL 00001416: ISZERO 00001417: DUP1 00001418: ISZERO 00001419: PUSH2 0x1426 0000141c: JUMPI 0000141d: RETURNDATASIZE 0000141e: PUSH1 0x00 00001420: DUP1 00001421: RETURNDATACOPY 00001422: RETURNDATASIZE 00001423: PUSH1 0x00 00001425: REVERT 00001426: JUMPDEST 00001427: POP 00001428: POP 00001429: POP 0000142a: POP 0000142b: PUSH1 0x40 0000142d: MLOAD 0000142e: RETURNDATASIZE 0000142f: PUSH1 0x1f 00001431: NOT 00001432: PUSH1 0x1f 00001434: DUP3 00001435: ADD 00001436: AND 00001437: DUP3 00001438: ADD 00001439: DUP1 0000143a: PUSH1 0x40 0000143c: MSTORE 0000143d: POP 0000143e: DUP2 0000143f: ADD 00001440: SWAP1 00001441: PUSH2 0x144a 00001444: SWAP2 00001445: SWAP1 00001446: PUSH2 0x24c6 00001449: JUMP 0000144a: JUMPDEST 0000144b: DUP2 0000144c: MSTORE 0000144d: PUSH1 0x20 0000144f: ADD 00001450: PUSH1 0x00 00001452: DUP2 00001453: MSTORE 00001454: PUSH1 0x20 00001456: ADD 00001457: PUSH1 0x00 00001459: DUP2 0000145a: MSTORE 0000145b: POP 0000145c: SWAP1 0000145d: POP 0000145e: PUSH1 0x00 00001460: PUSH1 0x60 00001462: ADDRESS 00001463: PUSH1 0x01 00001465: PUSH1 0x01 00001467: PUSH1 0xa0 00001469: SHL 0000146a: SUB 0000146b: AND 0000146c: PUSH4 0x2f0dee6e 00001471: PUSH2 0x1484 00001474: PUSH3 0x013880 00001478: GAS 00001479: SWAP1 0000147a: PUSH4 0xffffffff 0000147f: PUSH2 0x1bdd 00001482: AND 00001483: JUMP 00001484: JUMPDEST 00001485: DUP10 00001486: DUP10 00001487: DUP10 00001488: PUSH1 0x40 0000148a: MLOAD 0000148b: DUP6 0000148c: PUSH4 0xffffffff 00001491: AND 00001492: PUSH1 0xe0 00001494: SHL 00001495: DUP2 00001496: MSTORE 00001497: PUSH1 0x04 00001499: ADD 0000149a: PUSH2 0x14a5 0000149d: SWAP4 0000149e: SWAP3 0000149f: SWAP2 000014a0: SWAP1 000014a1: PUSH2 0x2c3a 000014a4: JUMP 000014a5: JUMPDEST 000014a6: PUSH1 0x00 000014a8: PUSH1 0x40 000014aa: MLOAD 000014ab: DUP1 000014ac: DUP4 000014ad: SUB 000014ae: DUP2 000014af: PUSH1 0x00 000014b1: DUP9 000014b2: DUP1 000014b3: EXTCODESIZE 000014b4: ISZERO 000014b5: DUP1 000014b6: ISZERO 000014b7: PUSH2 0x14bf 000014ba: JUMPI 000014bb: PUSH1 0x00 000014bd: DUP1 000014be: REVERT 000014bf: JUMPDEST 000014c0: POP 000014c1: DUP8 000014c2: CALL 000014c3: SWAP4 000014c4: POP 000014c5: POP 000014c6: POP 000014c7: POP 000014c8: DUP1 000014c9: ISZERO 000014ca: PUSH2 0x14d1 000014cd: JUMPI 000014ce: POP 000014cf: PUSH1 0x01 000014d1: JUMPDEST 000014d2: PUSH2 0x1528 000014d5: JUMPI 000014d6: PUSH2 0x14dd 000014d9: PUSH2 0x2dcb 000014dc: JUMP 000014dd: JUMPDEST 000014de: DUP1 000014df: PUSH2 0x14e8 000014e2: JUMPI 000014e3: POP 000014e4: PUSH2 0x14f3 000014e7: JUMP 000014e8: JUMPDEST 000014e9: PUSH1 0x00 000014eb: SWAP3 000014ec: POP 000014ed: SWAP1 000014ee: POP 000014ef: PUSH2 0x1523 000014f2: JUMP 000014f3: JUMPDEST 000014f4: POP 000014f5: POP 000014f6: PUSH1 0x40 000014f8: DUP1 000014f9: MLOAD 000014fa: DUP1 000014fb: DUP3 000014fc: ADD 000014fd: SWAP1 000014fe: SWAP2 000014ff: MSTORE 00001500: PUSH1 0x13 00001502: DUP2 00001503: MSTORE 00001504: PUSH19 0x2ab735b737bbb7103330b4b6103932b0b9b7b7 00001518: PUSH1 0x69 0000151a: SHL 0000151b: PUSH1 0x20 0000151d: DUP3 0000151e: ADD 0000151f: MSTORE 00001520: PUSH1 0x00 00001522: SWAP1 00001523: JUMPDEST 00001524: PUSH2 0x152d 00001527: JUMP 00001528: JUMPDEST 00001529: PUSH1 0x01 0000152b: SWAP2 0000152c: POP 0000152d: JUMPDEST 0000152e: PUSH1 0x80 00001530: DUP8 00001531: ADD 00001532: MLOAD 00001533: MLOAD 00001534: DUP8 00001535: MLOAD 00001536: PUSH1 0x40 00001538: MLOAD 00001539: PUSH4 0x70a08231 0000153e: PUSH1 0xe0 00001540: SHL 00001541: DUP2 00001542: MSTORE 00001543: PUSH1 0x01 00001545: PUSH1 0x01 00001547: PUSH1 0xa0 00001549: SHL 0000154a: SUB 0000154b: SWAP1 0000154c: SWAP3 0000154d: AND 0000154e: SWAP2 0000154f: PUSH4 0x70a08231 00001554: SWAP2 00001555: PUSH2 0x1560 00001558: SWAP2 00001559: PUSH1 0x04 0000155b: ADD 0000155c: PUSH2 0x25cd 0000155f: JUMP 00001560: JUMPDEST 00001561: PUSH1 0x20 00001563: PUSH1 0x40 00001565: MLOAD 00001566: DUP1 00001567: DUP4 00001568: SUB 00001569: DUP2 0000156a: DUP7 0000156b: DUP1 0000156c: EXTCODESIZE 0000156d: ISZERO 0000156e: DUP1 0000156f: ISZERO 00001570: PUSH2 0x1578 00001573: JUMPI 00001574: PUSH1 0x00 00001576: DUP1 00001577: REVERT 00001578: JUMPDEST 00001579: POP 0000157a: GAS 0000157b: STATICCALL 0000157c: ISZERO 0000157d: DUP1 0000157e: ISZERO 0000157f: PUSH2 0x158c 00001582: JUMPI 00001583: RETURNDATASIZE 00001584: PUSH1 0x00 00001586: DUP1 00001587: RETURNDATACOPY 00001588: RETURNDATASIZE 00001589: PUSH1 0x00 0000158b: REVERT 0000158c: JUMPDEST 0000158d: POP 0000158e: POP 0000158f: POP 00001590: POP 00001591: PUSH1 0x40 00001593: MLOAD 00001594: RETURNDATASIZE 00001595: PUSH1 0x1f 00001597: NOT 00001598: PUSH1 0x1f 0000159a: DUP3 0000159b: ADD 0000159c: AND 0000159d: DUP3 0000159e: ADD 0000159f: DUP1 000015a0: PUSH1 0x40 000015a2: MSTORE 000015a3: POP 000015a4: DUP2 000015a5: ADD 000015a6: SWAP1 000015a7: PUSH2 0x15b0 000015aa: SWAP2 000015ab: SWAP1 000015ac: PUSH2 0x24c6 000015af: JUMP 000015b0: JUMPDEST 000015b1: PUSH1 0x40 000015b3: DUP5 000015b4: ADD 000015b5: MSTORE 000015b6: DUP2 000015b7: PUSH2 0x16ad 000015ba: JUMPI 000015bb: DUP3 000015bc: MLOAD 000015bd: PUSH1 0x40 000015bf: DUP5 000015c0: ADD 000015c1: MLOAD 000015c2: EQ 000015c3: PUSH2 0x15de 000015c6: JUMPI 000015c7: PUSH1 0x40 000015c9: MLOAD 000015ca: PUSH3 0x461bcd 000015ce: PUSH1 0xe5 000015d0: SHL 000015d1: DUP2 000015d2: MSTORE 000015d3: PUSH1 0x04 000015d5: ADD 000015d6: PUSH2 0x04b1 000015d9: SWAP1 000015da: PUSH2 0x2a9a 000015dd: JUMP 000015de: JUMPDEST 000015df: PUSH1 0x00 000015e1: PUSH2 0x15f7 000015e4: PUSH2 0xea60 000015e7: PUSH2 0x1058 000015ea: GAS 000015eb: DUP9 000015ec: SWAP1 000015ed: PUSH4 0xffffffff 000015f2: PUSH2 0x1bdd 000015f5: AND 000015f6: JUMP 000015f7: JUMPDEST 000015f8: SWAP1 000015f9: POP 000015fa: PUSH1 0x00 000015fc: PUSH2 0x160b 000015ff: DUP3 00001600: GASPRICE 00001601: PUSH4 0xffffffff 00001606: PUSH2 0x0f65 00001609: AND 0000160a: JUMP 0000160b: JUMPDEST 0000160c: SWAP1 0000160d: POP 0000160e: PUSH2 0x161b 00001611: DUP10 00001612: PUSH1 0x00 00001614: ADD 00001615: MLOAD 00001616: DUP3 00001617: PUSH2 0x1d6e 0000161a: JUMP 0000161b: JUMPDEST 0000161c: DUP9 0000161d: PUSH1 0x00 0000161f: ADD 00001620: MLOAD 00001621: PUSH1 0x01 00001623: PUSH1 0x01 00001625: PUSH1 0xa0 00001627: SHL 00001628: SUB 00001629: AND 0000162a: PUSH32 0x25e268b6e417ca50f83f2b95db36dfd7e9d897f9b0b714668524e848e8635347 0000164b: DUP3 0000164c: DUP6 0000164d: PUSH1 0x40 0000164f: MLOAD 00001650: PUSH2 0x165a 00001653: SWAP3 00001654: SWAP2 00001655: SWAP1 00001656: PUSH2 0x2cd7 00001659: JUMP 0000165a: JUMPDEST 0000165b: PUSH1 0x40 0000165d: MLOAD 0000165e: DUP1 0000165f: SWAP2 00001660: SUB 00001661: SWAP1 00001662: LOG2 00001663: PUSH2 0x166a 00001666: PUSH2 0x0d78 00001669: JUMP 0000166a: JUMPDEST 0000166b: PUSH1 0x01 0000166d: PUSH1 0x01 0000166f: PUSH1 0xa0 00001671: SHL 00001672: SUB 00001673: AND 00001674: PUSH2 0x08fc 00001677: DUP3 00001678: SWAP1 00001679: DUP2 0000167a: ISZERO 0000167b: MUL 0000167c: SWAP1 0000167d: PUSH1 0x40 0000167f: MLOAD 00001680: PUSH1 0x00 00001682: PUSH1 0x40 00001684: MLOAD 00001685: DUP1 00001686: DUP4 00001687: SUB 00001688: DUP2 00001689: DUP6 0000168a: DUP9 0000168b: DUP9 0000168c: CALL 0000168d: SWAP4 0000168e: POP 0000168f: POP 00001690: POP 00001691: POP 00001692: ISZERO 00001693: DUP1 00001694: ISZERO 00001695: PUSH2 0x16a2 00001698: JUMPI 00001699: RETURNDATASIZE 0000169a: PUSH1 0x00 0000169c: DUP1 0000169d: RETURNDATACOPY 0000169e: RETURNDATASIZE 0000169f: PUSH1 0x00 000016a1: REVERT 000016a2: JUMPDEST 000016a3: POP 000016a4: POP 000016a5: POP 000016a6: POP 000016a7: POP 000016a8: POP 000016a9: PUSH2 0x0d72 000016ac: JUMP 000016ad: JUMPDEST 000016ae: PUSH1 0xa0 000016b0: DUP8 000016b1: ADD 000016b2: MLOAD 000016b3: MLOAD 000016b4: DUP8 000016b5: MLOAD 000016b6: PUSH1 0x40 000016b8: MLOAD 000016b9: PUSH4 0x70a08231 000016be: PUSH1 0xe0 000016c0: SHL 000016c1: DUP2 000016c2: MSTORE 000016c3: PUSH1 0x01 000016c5: PUSH1 0x01 000016c7: PUSH1 0xa0 000016c9: SHL 000016ca: SUB 000016cb: SWAP1 000016cc: SWAP3 000016cd: AND 000016ce: SWAP2 000016cf: PUSH4 0x70a08231 000016d4: SWAP2 000016d5: PUSH2 0x16e0 000016d8: SWAP2 000016d9: PUSH1 0x04 000016db: ADD 000016dc: PUSH2 0x25cd 000016df: JUMP 000016e0: JUMPDEST 000016e1: PUSH1 0x20 000016e3: PUSH1 0x40 000016e5: MLOAD 000016e6: DUP1 000016e7: DUP4 000016e8: SUB 000016e9: DUP2 000016ea: DUP7 000016eb: DUP1 000016ec: EXTCODESIZE 000016ed: ISZERO 000016ee: DUP1 000016ef: ISZERO 000016f0: PUSH2 0x16f8 000016f3: JUMPI 000016f4: PUSH1 0x00 000016f6: DUP1 000016f7: REVERT 000016f8: JUMPDEST 000016f9: POP 000016fa: GAS 000016fb: STATICCALL 000016fc: ISZERO 000016fd: DUP1 000016fe: ISZERO 000016ff: PUSH2 0x170c 00001702: JUMPI 00001703: RETURNDATASIZE 00001704: PUSH1 0x00 00001706: DUP1 00001707: RETURNDATACOPY 00001708: RETURNDATASIZE 00001709: PUSH1 0x00 0000170b: REVERT 0000170c: JUMPDEST 0000170d: POP 0000170e: POP 0000170f: POP 00001710: POP 00001711: PUSH1 0x40 00001713: MLOAD 00001714: RETURNDATASIZE 00001715: PUSH1 0x1f 00001717: NOT 00001718: PUSH1 0x1f 0000171a: DUP3 0000171b: ADD 0000171c: AND 0000171d: DUP3 0000171e: ADD 0000171f: DUP1 00001720: PUSH1 0x40 00001722: MSTORE 00001723: POP 00001724: DUP2 00001725: ADD 00001726: SWAP1 00001727: PUSH2 0x1730 0000172a: SWAP2 0000172b: SWAP1 0000172c: PUSH2 0x24c6 0000172f: JUMP 00001730: JUMPDEST 00001731: PUSH1 0x60 00001733: DUP5 00001734: ADD 00001735: DUP2 00001736: SWAP1 00001737: MSTORE 00001738: PUSH1 0x20 0000173a: DUP5 0000173b: ADD 0000173c: MLOAD 0000173d: LT 0000173e: PUSH2 0x1759 00001741: JUMPI 00001742: PUSH1 0x40 00001744: MLOAD 00001745: PUSH3 0x461bcd 00001749: PUSH1 0xe5 0000174b: SHL 0000174c: DUP2 0000174d: MSTORE 0000174e: PUSH1 0x04 00001750: ADD 00001751: PUSH2 0x04b1 00001754: SWAP1 00001755: PUSH2 0x265f 00001758: JUMP 00001759: JUMPDEST 0000175a: DUP7 0000175b: PUSH1 0xa0 0000175d: ADD 0000175e: MLOAD 0000175f: PUSH1 0x20 00001761: ADD 00001762: MLOAD 00001763: PUSH1 0x01 00001765: PUSH1 0x01 00001767: PUSH1 0x70 00001769: SHL 0000176a: SUB 0000176b: AND 0000176c: PUSH2 0x1786 0000176f: DUP5 00001770: PUSH1 0x20 00001772: ADD 00001773: MLOAD 00001774: DUP6 00001775: PUSH1 0x60 00001777: ADD 00001778: MLOAD 00001779: PUSH2 0x1bdd 0000177c: SWAP1 0000177d: SWAP2 0000177e: SWAP1 0000177f: PUSH4 0xffffffff 00001784: AND 00001785: JUMP 00001786: JUMPDEST 00001787: LT 00001788: ISZERO 00001789: PUSH2 0x17a4 0000178c: JUMPI 0000178d: PUSH1 0x40 0000178f: MLOAD 00001790: PUSH3 0x461bcd 00001794: PUSH1 0xe5 00001796: SHL 00001797: DUP2 00001798: MSTORE 00001799: PUSH1 0x04 0000179b: ADD 0000179c: PUSH2 0x04b1 0000179f: SWAP1 000017a0: PUSH2 0x27fb 000017a3: JUMP 000017a4: JUMPDEST 000017a5: DUP3 000017a6: MLOAD 000017a7: PUSH1 0x40 000017a9: DUP5 000017aa: ADD 000017ab: MLOAD 000017ac: LT 000017ad: PUSH2 0x17c8 000017b0: JUMPI 000017b1: PUSH1 0x40 000017b3: MLOAD 000017b4: PUSH3 0x461bcd 000017b8: PUSH1 0xe5 000017ba: SHL 000017bb: DUP2 000017bc: MSTORE 000017bd: PUSH1 0x04 000017bf: ADD 000017c0: PUSH2 0x04b1 000017c3: SWAP1 000017c4: PUSH2 0x2786 000017c7: JUMP 000017c8: JUMPDEST 000017c9: PUSH1 0x80 000017cb: DUP8 000017cc: ADD 000017cd: MLOAD 000017ce: PUSH1 0x20 000017d0: ADD 000017d1: MLOAD 000017d2: PUSH1 0x40 000017d4: DUP5 000017d5: ADD 000017d6: MLOAD 000017d7: DUP5 000017d8: MLOAD 000017d9: PUSH1 0x01 000017db: PUSH1 0x01 000017dd: PUSH1 0x70 000017df: SHL 000017e0: SUB 000017e1: SWAP1 000017e2: SWAP3 000017e3: AND 000017e4: SWAP2 000017e5: PUSH2 0x17f3 000017e8: SWAP2 000017e9: PUSH4 0xffffffff 000017ee: PUSH2 0x1bdd 000017f1: AND 000017f2: JUMP 000017f3: JUMPDEST 000017f4: GT 000017f5: ISZERO 000017f6: PUSH2 0x1811 000017f9: JUMPI 000017fa: PUSH1 0x40 000017fc: MLOAD 000017fd: PUSH3 0x461bcd 00001801: PUSH1 0xe5 00001803: SHL 00001804: DUP2 00001805: MSTORE 00001806: PUSH1 0x04 00001808: ADD 00001809: PUSH2 0x04b1 0000180c: SWAP1 0000180d: PUSH2 0x284f 00001810: JUMP 00001811: JUMPDEST 00001812: PUSH1 0x00 00001814: PUSH2 0x182a 00001817: PUSH2 0xea60 0000181a: PUSH2 0x1058 0000181d: GAS 0000181e: DUP9 0000181f: SWAP1 00001820: PUSH4 0xffffffff 00001825: PUSH2 0x1bdd 00001828: AND 00001829: JUMP 0000182a: JUMPDEST 0000182b: SWAP1 0000182c: POP 0000182d: PUSH1 0x00 0000182f: PUSH2 0x183e 00001832: DUP3 00001833: GASPRICE 00001834: PUSH4 0xffffffff 00001839: PUSH2 0x0f65 0000183c: AND 0000183d: JUMP 0000183e: JUMPDEST 0000183f: DUP10 00001840: MLOAD 00001841: PUSH1 0x20 00001843: DUP12 00001844: ADD 00001845: MLOAD 00001846: SWAP2 00001847: SWAP3 00001848: POP 00001849: PUSH2 0x1866 0000184c: SWAP2 0000184d: PUSH2 0x1159 00001850: SWAP1 00001851: DUP5 00001852: SWAP1 00001853: PUSH1 0x01 00001855: PUSH1 0x01 00001857: PUSH1 0x80 00001859: SHL 0000185a: SUB 0000185b: AND 0000185c: PUSH4 0xffffffff 00001861: PUSH2 0x1c1f 00001864: AND 00001865: JUMP 00001866: JUMPDEST 00001867: PUSH2 0x186e 0000186a: PUSH2 0x0d78 0000186d: JUMP 0000186e: JUMPDEST 0000186f: PUSH1 0x01 00001871: PUSH1 0x01 00001873: PUSH1 0xa0 00001875: SHL 00001876: SUB 00001877: AND 00001878: PUSH2 0x08fc 0000187b: DUP3 0000187c: SWAP1 0000187d: DUP2 0000187e: ISZERO 0000187f: MUL 00001880: SWAP1 00001881: PUSH1 0x40 00001883: MLOAD 00001884: PUSH1 0x00 00001886: PUSH1 0x40 00001888: MLOAD 00001889: DUP1 0000188a: DUP4 0000188b: SUB 0000188c: DUP2 0000188d: DUP6 0000188e: DUP9 0000188f: DUP9 00001890: CALL 00001891: SWAP4 00001892: POP 00001893: POP 00001894: POP 00001895: POP 00001896: ISZERO 00001897: DUP1 00001898: ISZERO 00001899: PUSH2 0x18a6 0000189c: JUMPI 0000189d: RETURNDATASIZE 0000189e: PUSH1 0x00 000018a0: DUP1 000018a1: RETURNDATACOPY 000018a2: RETURNDATASIZE 000018a3: PUSH1 0x00 000018a5: REVERT 000018a6: JUMPDEST 000018a7: POP 000018a8: PUSH2 0x18af 000018ab: PUSH2 0x0e34 000018ae: JUMP 000018af: JUMPDEST 000018b0: SLOAD 000018b1: PUSH1 0x20 000018b3: DUP11 000018b4: ADD 000018b5: MLOAD 000018b6: PUSH1 0x40 000018b8: MLOAD 000018b9: PUSH1 0x01 000018bb: PUSH1 0x01 000018bd: PUSH1 0xa0 000018bf: SHL 000018c0: SUB 000018c1: SWAP1 000018c2: SWAP3 000018c3: AND 000018c4: SWAP2 000018c5: PUSH1 0x01 000018c7: PUSH1 0x01 000018c9: PUSH1 0x80 000018cb: SHL 000018cc: SUB 000018cd: SWAP1 000018ce: SWAP2 000018cf: AND 000018d0: DUP1 000018d1: ISZERO 000018d2: PUSH2 0x08fc 000018d5: MUL 000018d6: SWAP2 000018d7: PUSH1 0x00 000018d9: DUP2 000018da: DUP2 000018db: DUP2 000018dc: DUP6 000018dd: DUP9 000018de: DUP9 000018df: CALL 000018e0: SWAP4 000018e1: POP 000018e2: POP 000018e3: POP 000018e4: POP 000018e5: ISZERO 000018e6: DUP1 000018e7: ISZERO 000018e8: PUSH2 0x18f5 000018eb: JUMPI 000018ec: RETURNDATASIZE 000018ed: PUSH1 0x00 000018ef: DUP1 000018f0: RETURNDATACOPY 000018f1: RETURNDATASIZE 000018f2: PUSH1 0x00 000018f4: REVERT 000018f5: JUMPDEST 000018f6: POP 000018f7: PUSH2 0x18fe 000018fa: PUSH2 0x0d78 000018fd: JUMP 000018fe: JUMPDEST 000018ff: PUSH1 0x01 00001901: PUSH1 0x01 00001903: PUSH1 0xa0 00001905: SHL 00001906: SUB 00001907: AND 00001908: DUP10 00001909: PUSH1 0x00 0000190b: ADD 0000190c: MLOAD 0000190d: PUSH1 0x01 0000190f: PUSH1 0x01 00001911: PUSH1 0xa0 00001913: SHL 00001914: SUB 00001915: AND 00001916: PUSH32 0x5ac72b858888990bb2049431a88689d4792e4f81276a67205492ba0e430812ae 00001937: PUSH2 0x1951 0000193a: DUP9 0000193b: PUSH1 0x40 0000193d: ADD 0000193e: MLOAD 0000193f: DUP10 00001940: PUSH1 0x00 00001942: ADD 00001943: MLOAD 00001944: PUSH2 0x1bdd 00001947: SWAP1 00001948: SWAP2 00001949: SWAP1 0000194a: PUSH4 0xffffffff 0000194f: AND 00001950: JUMP 00001951: JUMPDEST 00001952: PUSH1 0x20 00001954: DUP10 00001955: ADD 00001956: MLOAD 00001957: PUSH1 0x60 00001959: DUP11 0000195a: ADD 0000195b: MLOAD 0000195c: PUSH2 0x196a 0000195f: SWAP2 00001960: PUSH4 0xffffffff 00001965: PUSH2 0x1bdd 00001968: AND 00001969: JUMP 0000196a: JUMPDEST 0000196b: DUP14 0000196c: PUSH1 0x20 0000196e: ADD 0000196f: MLOAD 00001970: DUP7 00001971: PUSH1 0x40 00001973: MLOAD 00001974: PUSH2 0x1980 00001977: SWAP5 00001978: SWAP4 00001979: SWAP3 0000197a: SWAP2 0000197b: SWAP1 0000197c: PUSH2 0x2d0f 0000197f: JUMP 00001980: JUMPDEST 00001981: PUSH1 0x40 00001983: MLOAD 00001984: DUP1 00001985: SWAP2 00001986: SUB 00001987: SWAP1 00001988: LOG3 00001989: POP 0000198a: POP 0000198b: POP 0000198c: POP 0000198d: POP 0000198e: POP 0000198f: POP 00001990: POP 00001991: POP 00001992: JUMP 00001993: JUMPDEST 00001994: PUSH1 0x01 00001996: PUSH1 0x01 00001998: PUSH1 0xa0 0000199a: SHL 0000199b: SUB 0000199c: DUP2 0000199d: AND 0000199e: PUSH1 0x00 000019a0: SWAP1 000019a1: DUP2 000019a2: MSTORE 000019a3: PUSH1 0x20 000019a5: DUP4 000019a6: SWAP1 000019a7: MSTORE 000019a8: PUSH1 0x40 000019aa: DUP2 000019ab: KECCAK256 000019ac: PUSH1 0x01 000019ae: DUP2 000019af: ADD 000019b0: SLOAD 000019b1: ISZERO 000019b2: DUP1 000019b3: ISZERO 000019b4: SWAP1 000019b5: PUSH2 0x19c1 000019b8: JUMPI 000019b9: POP 000019ba: NUMBER 000019bb: DUP2 000019bc: PUSH1 0x01 000019be: ADD 000019bf: SLOAD 000019c0: GT 000019c1: JUMPDEST 000019c2: ISZERO 000019c3: PUSH2 0x19de 000019c6: JUMPI 000019c7: SLOAD 000019c8: PUSH1 0x01 000019ca: PUSH1 0x70 000019cc: SHL 000019cd: SWAP1 000019ce: DIV 000019cf: PUSH1 0x01 000019d1: PUSH1 0x01 000019d3: PUSH1 0x70 000019d5: SHL 000019d6: SUB 000019d7: AND 000019d8: SWAP1 000019d9: POP 000019da: PUSH2 0x0468 000019dd: JUMP 000019de: JUMPDEST 000019df: POP 000019e0: PUSH1 0x00 000019e2: SWAP4 000019e3: SWAP3 000019e4: POP 000019e5: POP 000019e6: POP 000019e7: JUMP 000019e8: JUMPDEST 000019e9: PUSH1 0x01 000019eb: PUSH1 0x01 000019ed: PUSH1 0xa0 000019ef: SHL 000019f0: SUB 000019f1: DUP3 000019f2: AND 000019f3: PUSH1 0x00 000019f5: SWAP1 000019f6: DUP2 000019f7: MSTORE 000019f8: PUSH1 0x20 000019fa: DUP5 000019fb: SWAP1 000019fc: MSTORE 000019fd: PUSH1 0x40 000019ff: SWAP1 00001a00: KECCAK256 00001a01: DUP1 00001a02: SLOAD 00001a03: PUSH2 0x1a1f 00001a06: SWAP1 00001a07: PUSH1 0x01 00001a09: PUSH1 0x01 00001a0b: PUSH1 0x70 00001a0d: SHL 00001a0e: SUB 00001a0f: SWAP1 00001a10: DUP2 00001a11: AND 00001a12: SWAP1 00001a13: DUP5 00001a14: AND 00001a15: PUSH4 0xffffffff 00001a1a: PUSH2 0x1c1f 00001a1d: AND 00001a1e: JUMP 00001a1f: JUMPDEST 00001a20: DUP2 00001a21: SLOAD 00001a22: PUSH1 0x01 00001a24: PUSH1 0x01 00001a26: PUSH1 0x70 00001a28: SHL 00001a29: SUB 00001a2a: NOT 00001a2b: AND 00001a2c: PUSH1 0x01 00001a2e: PUSH1 0x01 00001a30: PUSH1 0x70 00001a32: SHL 00001a33: SUB 00001a34: SWAP2 00001a35: SWAP1 00001a36: SWAP2 00001a37: AND 00001a38: OR 00001a39: SWAP1 00001a3a: SSTORE 00001a3b: POP 00001a3c: POP 00001a3d: POP 00001a3e: JUMP 00001a3f: JUMPDEST 00001a40: PUSH1 0x00 00001a42: SWAP2 00001a43: DUP3 00001a44: MSTORE 00001a45: PUSH1 0x01 00001a47: SWAP1 00001a48: SWAP3 00001a49: ADD 00001a4a: PUSH1 0x20 00001a4c: SWAP1 00001a4d: DUP2 00001a4e: MSTORE 00001a4f: PUSH1 0x40 00001a51: DUP1 00001a52: DUP4 00001a53: KECCAK256 00001a54: PUSH1 0x01 00001a56: PUSH1 0x01 00001a58: PUSH1 0xa0 00001a5a: SHL 00001a5b: SUB 00001a5c: SWAP1 00001a5d: SWAP5 00001a5e: AND 00001a5f: DUP4 00001a60: MSTORE 00001a61: SWAP3 00001a62: SWAP1 00001a63: MSTORE 00001a64: KECCAK256 00001a65: DUP1 00001a66: SLOAD 00001a67: PUSH1 0xff 00001a69: NOT 00001a6a: AND 00001a6b: SWAP1 00001a6c: SSTORE 00001a6d: JUMP 00001a6e: JUMPDEST 00001a6f: PUSH1 0x00 00001a71: SWAP2 00001a72: DUP3 00001a73: MSTORE 00001a74: PUSH1 0x01 00001a76: SWAP3 00001a77: DUP4 00001a78: ADD 00001a79: PUSH1 0x20 00001a7b: SWAP1 00001a7c: DUP2 00001a7d: MSTORE 00001a7e: PUSH1 0x40 00001a80: DUP1 00001a81: DUP5 00001a82: KECCAK256 00001a83: PUSH1 0x01 00001a85: PUSH1 0x01 00001a87: PUSH1 0xa0 00001a89: SHL 00001a8a: SUB 00001a8b: SWAP1 00001a8c: SWAP4 00001a8d: AND 00001a8e: DUP5 00001a8f: MSTORE 00001a90: SWAP2 00001a91: SWAP1 00001a92: MSTORE 00001a93: SWAP1 00001a94: KECCAK256 00001a95: DUP1 00001a96: SLOAD 00001a97: PUSH1 0xff 00001a99: NOT 00001a9a: AND 00001a9b: SWAP1 00001a9c: SWAP2 00001a9d: OR 00001a9e: SWAP1 00001a9f: SSTORE 00001aa0: JUMP 00001aa1: JUMPDEST 00001aa2: PUSH1 0x01 00001aa4: PUSH1 0x01 00001aa6: PUSH1 0xa0 00001aa8: SHL 00001aa9: SUB 00001aaa: DUP3 00001aab: AND 00001aac: PUSH1 0x00 00001aae: SWAP1 00001aaf: DUP2 00001ab0: MSTORE 00001ab1: PUSH1 0x20 00001ab3: DUP5 00001ab4: SWAP1 00001ab5: MSTORE 00001ab6: PUSH1 0x40 00001ab8: SWAP1 00001ab9: KECCAK256 00001aba: PUSH1 0x01 00001abc: DUP2 00001abd: ADD 00001abe: SLOAD 00001abf: PUSH2 0x1ada 00001ac2: JUMPI 00001ac3: PUSH1 0x40 00001ac5: MLOAD 00001ac6: PUSH3 0x461bcd 00001aca: PUSH1 0xe5 00001acc: SHL 00001acd: DUP2 00001ace: MSTORE 00001acf: PUSH1 0x04 00001ad1: ADD 00001ad2: PUSH2 0x04b1 00001ad5: SWAP1 00001ad6: PUSH2 0x26e1 00001ad9: JUMP 00001ada: JUMPDEST 00001adb: NUMBER 00001adc: DUP2 00001add: PUSH1 0x01 00001adf: ADD 00001ae0: SLOAD 00001ae1: LT 00001ae2: PUSH2 0x1afd 00001ae5: JUMPI 00001ae6: PUSH1 0x40 00001ae8: MLOAD 00001ae9: PUSH3 0x461bcd 00001aed: PUSH1 0xe5 00001aef: SHL 00001af0: DUP2 00001af1: MSTORE 00001af2: PUSH1 0x04 00001af4: ADD 00001af5: PUSH2 0x04b1 00001af8: SWAP1 00001af9: PUSH2 0x27b6 00001afc: JUMP 00001afd: JUMPDEST 00001afe: DUP1 00001aff: SLOAD 00001b00: PUSH2 0x1b23 00001b03: SWAP1 00001b04: PUSH1 0x01 00001b06: PUSH1 0x70 00001b08: SHL 00001b09: SWAP1 00001b0a: DIV 00001b0b: PUSH1 0x01 00001b0d: PUSH1 0x01 00001b0f: PUSH1 0x70 00001b11: SHL 00001b12: SUB 00001b13: SWAP1 00001b14: DUP2 00001b15: AND 00001b16: SWAP1 00001b17: DUP5 00001b18: AND 00001b19: PUSH4 0xffffffff 00001b1e: PUSH2 0x1bdd 00001b21: AND 00001b22: JUMP 00001b23: JUMPDEST 00001b24: DUP2 00001b25: SLOAD 00001b26: PUSH1 0x01 00001b28: PUSH1 0x01 00001b2a: PUSH1 0x70 00001b2c: SHL 00001b2d: SUB 00001b2e: SWAP2 00001b2f: SWAP1 00001b30: SWAP2 00001b31: AND 00001b32: PUSH1 0x01 00001b34: PUSH1 0x70 00001b36: SHL 00001b37: MUL 00001b38: PUSH1 0x01 00001b3a: PUSH1 0x70 00001b3c: SHL 00001b3d: PUSH1 0x01 00001b3f: PUSH1 0xe0 00001b41: SHL 00001b42: SUB 00001b43: NOT 00001b44: SWAP1 00001b45: SWAP2 00001b46: AND 00001b47: OR 00001b48: SWAP1 00001b49: SSTORE 00001b4a: POP 00001b4b: POP 00001b4c: POP 00001b4d: JUMP 00001b4e: JUMPDEST 00001b4f: PUSH1 0x60 00001b51: PUSH2 0x1ba3 00001b54: DUP3 00001b55: PUSH1 0x40 00001b57: MLOAD 00001b58: DUP1 00001b59: PUSH1 0x40 00001b5b: ADD 00001b5c: PUSH1 0x40 00001b5e: MSTORE 00001b5f: DUP1 00001b60: PUSH1 0x20 00001b62: DUP2 00001b63: MSTORE 00001b64: PUSH1 0x20 00001b66: ADD 00001b67: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00001b88: DUP2 00001b89: MSTORE 00001b8a: POP 00001b8b: DUP6 00001b8c: PUSH1 0x01 00001b8e: PUSH1 0x01 00001b90: PUSH1 0xa0 00001b92: SHL 00001b93: SUB 00001b94: AND 00001b95: PUSH2 0x1d88 00001b98: SWAP1 00001b99: SWAP3 00001b9a: SWAP2 00001b9b: SWAP1 00001b9c: PUSH4 0xffffffff 00001ba1: AND 00001ba2: JUMP 00001ba3: JUMPDEST 00001ba4: DUP1 00001ba5: MLOAD 00001ba6: SWAP1 00001ba7: SWAP2 00001ba8: POP 00001ba9: ISZERO 00001baa: PUSH2 0x0737 00001bad: JUMPI 00001bae: DUP1 00001baf: DUP1 00001bb0: PUSH1 0x20 00001bb2: ADD 00001bb3: SWAP1 00001bb4: MLOAD 00001bb5: DUP2 00001bb6: ADD 00001bb7: SWAP1 00001bb8: PUSH2 0x1bc1 00001bbb: SWAP2 00001bbc: SWAP1 00001bbd: PUSH2 0x21a8 00001bc0: JUMP 00001bc1: JUMPDEST 00001bc2: PUSH2 0x0737 00001bc5: JUMPI 00001bc6: PUSH1 0x40 00001bc8: MLOAD 00001bc9: PUSH3 0x461bcd 00001bcd: PUSH1 0xe5 00001bcf: SHL 00001bd0: DUP2 00001bd1: MSTORE 00001bd2: PUSH1 0x04 00001bd4: ADD 00001bd5: PUSH2 0x04b1 00001bd8: SWAP1 00001bd9: PUSH2 0x2a50 00001bdc: JUMP 00001bdd: JUMPDEST 00001bde: PUSH1 0x00 00001be0: PUSH2 0x0a13 00001be3: DUP4 00001be4: DUP4 00001be5: PUSH1 0x40 00001be7: MLOAD 00001be8: DUP1 00001be9: PUSH1 0x40 00001beb: ADD 00001bec: PUSH1 0x40 00001bee: MSTORE 00001bef: DUP1 00001bf0: PUSH1 0x1e 00001bf2: DUP2 00001bf3: MSTORE 00001bf4: PUSH1 0x20 00001bf6: ADD 00001bf7: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 00001c18: DUP2 00001c19: MSTORE 00001c1a: POP 00001c1b: PUSH2 0x1d9f 00001c1e: JUMP 00001c1f: JUMPDEST 00001c20: PUSH1 0x00 00001c22: DUP3 00001c23: DUP3 00001c24: ADD 00001c25: DUP4 00001c26: DUP2 00001c27: LT 00001c28: ISZERO 00001c29: PUSH2 0x0a13 00001c2c: JUMPI 00001c2d: PUSH1 0x40 00001c2f: MLOAD 00001c30: PUSH3 0x461bcd 00001c34: PUSH1 0xe5 00001c36: SHL 00001c37: DUP2 00001c38: MSTORE 00001c39: PUSH1 0x04 00001c3b: ADD 00001c3c: PUSH2 0x04b1 00001c3f: SWAP1 00001c40: PUSH2 0x2718 00001c43: JUMP 00001c44: JUMPDEST 00001c45: PUSH1 0x00 00001c47: PUSH2 0x1c4e 00001c4a: PUSH2 0x0e58 00001c4d: JUMP 00001c4e: JUMPDEST 00001c4f: DUP1 00001c50: SLOAD 00001c51: SWAP1 00001c52: SWAP2 00001c53: POP 00001c54: PUSH2 0x0100 00001c57: SWAP1 00001c58: DIV 00001c59: PUSH1 0xff 00001c5b: AND 00001c5c: DUP1 00001c5d: PUSH2 0x1c68 00001c60: JUMPI 00001c61: POP 00001c62: DUP1 00001c63: SLOAD 00001c64: PUSH1 0xff 00001c66: AND 00001c67: ISZERO 00001c68: JUMPDEST 00001c69: PUSH2 0x1c84 00001c6c: JUMPI 00001c6d: PUSH1 0x40 00001c6f: MLOAD 00001c70: PUSH3 0x461bcd 00001c74: PUSH1 0xe5 00001c76: SHL 00001c77: DUP2 00001c78: MSTORE 00001c79: PUSH1 0x04 00001c7b: ADD 00001c7c: PUSH2 0x04b1 00001c7f: SWAP1 00001c80: PUSH2 0x29ec 00001c83: JUMP 00001c84: JUMPDEST 00001c85: DUP1 00001c86: SLOAD 00001c87: PUSH2 0x0100 00001c8a: SWAP1 00001c8b: DIV 00001c8c: PUSH1 0xff 00001c8e: AND 00001c8f: ISZERO 00001c90: DUP1 00001c91: ISZERO 00001c92: PUSH2 0x1cac 00001c95: JUMPI 00001c96: DUP2 00001c97: SLOAD 00001c98: PUSH1 0xff 00001c9a: NOT 00001c9b: PUSH2 0xff00 00001c9e: NOT 00001c9f: SWAP1 00001ca0: SWAP2 00001ca1: AND 00001ca2: PUSH2 0x0100 00001ca5: OR 00001ca6: AND 00001ca7: PUSH1 0x01 00001ca9: OR 00001caa: DUP3 00001cab: SSTORE 00001cac: JUMPDEST 00001cad: PUSH1 0x00 00001caf: PUSH2 0x1cb6 00001cb2: PUSH2 0x0d78 00001cb5: JUMP 00001cb6: JUMPDEST 00001cb7: SWAP1 00001cb8: POP 00001cb9: PUSH2 0x1cd0 00001cbc: PUSH1 0x00 00001cbe: DUP1 00001cbf: MLOAD 00001cc0: PUSH1 0x20 00001cc2: PUSH2 0x2f1f 00001cc5: DUP4 00001cc6: CODECOPY 00001cc7: DUP2 00001cc8: MLOAD 00001cc9: SWAP2 00001cca: MSTORE 00001ccb: DUP3 00001ccc: PUSH2 0x0bc1 00001ccf: JUMP 00001cd0: JUMPDEST 00001cd1: PUSH2 0x1cfa 00001cd4: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a 00001cf5: DUP3 00001cf6: PUSH2 0x0bc1 00001cf9: JUMP 00001cfa: JUMPDEST 00001cfb: PUSH2 0x1d24 00001cfe: PUSH32 0x077a1d526a4ce8a773632ab13b4fbbf1fcc954c3dab26cd27ea0e2a6750da5d7 00001d1f: DUP3 00001d20: PUSH2 0x0bc1 00001d23: JUMP 00001d24: JUMPDEST 00001d25: POP 00001d26: DUP1 00001d27: ISZERO 00001d28: PUSH2 0x0b63 00001d2b: JUMPI 00001d2c: POP 00001d2d: DUP1 00001d2e: SLOAD 00001d2f: PUSH2 0xff00 00001d32: NOT 00001d33: AND 00001d34: SWAP1 00001d35: SSTORE 00001d36: JUMP 00001d37: JUMPDEST 00001d38: PUSH1 0x00 00001d3a: DUP2 00001d3b: DUP4 00001d3c: PUSH2 0x1d58 00001d3f: JUMPI 00001d40: PUSH1 0x40 00001d42: MLOAD 00001d43: PUSH3 0x461bcd 00001d47: PUSH1 0xe5 00001d49: SHL 00001d4a: DUP2 00001d4b: MSTORE 00001d4c: PUSH1 0x04 00001d4e: ADD 00001d4f: PUSH2 0x04b1 00001d52: SWAP2 00001d53: SWAP1 00001d54: PUSH2 0x264c 00001d57: JUMP 00001d58: JUMPDEST 00001d59: POP 00001d5a: PUSH1 0x00 00001d5c: DUP4 00001d5d: DUP6 00001d5e: DUP2 00001d5f: PUSH2 0x1d64 00001d62: JUMPI 00001d63: INVALID 00001d64: JUMPDEST 00001d65: DIV 00001d66: SWAP6 00001d67: SWAP5 00001d68: POP 00001d69: POP 00001d6a: POP 00001d6b: POP 00001d6c: POP 00001d6d: JUMP 00001d6e: JUMPDEST 00001d6f: PUSH2 0x0b63 00001d72: DUP3 00001d73: DUP3 00001d74: PUSH2 0x1d7b 00001d77: PUSH2 0x0cf6 00001d7a: JUMP 00001d7b: JUMPDEST 00001d7c: SWAP2 00001d7d: SWAP1 00001d7e: PUSH4 0xffffffff 00001d83: PUSH2 0x1dcb 00001d86: AND 00001d87: JUMP 00001d88: JUMPDEST 00001d89: PUSH1 0x60 00001d8b: PUSH2 0x1d97 00001d8e: DUP5 00001d8f: DUP5 00001d90: PUSH1 0x00 00001d92: DUP6 00001d93: PUSH2 0x1f16 00001d96: JUMP 00001d97: JUMPDEST 00001d98: SWAP5 00001d99: SWAP4 00001d9a: POP 00001d9b: POP 00001d9c: POP 00001d9d: POP 00001d9e: JUMP 00001d9f: JUMPDEST 00001da0: PUSH1 0x00 00001da2: DUP2 00001da3: DUP5 00001da4: DUP5 00001da5: GT 00001da6: ISZERO 00001da7: PUSH2 0x1dc3 00001daa: JUMPI 00001dab: PUSH1 0x40 00001dad: MLOAD 00001dae: PUSH3 0x461bcd 00001db2: PUSH1 0xe5 00001db4: SHL 00001db5: DUP2 00001db6: MSTORE 00001db7: PUSH1 0x04 00001db9: ADD 00001dba: PUSH2 0x04b1 00001dbd: SWAP2 00001dbe: SWAP1 00001dbf: PUSH2 0x264c 00001dc2: JUMP 00001dc3: JUMPDEST 00001dc4: POP 00001dc5: POP 00001dc6: POP 00001dc7: SWAP1 00001dc8: SUB 00001dc9: SWAP1 00001dca: JUMP 00001dcb: JUMPDEST 00001dcc: PUSH1 0x01 00001dce: PUSH1 0x01 00001dd0: PUSH1 0xa0 00001dd2: SHL 00001dd3: SUB 00001dd4: DUP3 00001dd5: AND 00001dd6: PUSH1 0x00 00001dd8: SWAP1 00001dd9: DUP2 00001dda: MSTORE 00001ddb: PUSH1 0x20 00001ddd: DUP5 00001dde: SWAP1 00001ddf: MSTORE 00001de0: PUSH1 0x40 00001de2: SWAP1 00001de3: KECCAK256 00001de4: PUSH1 0x01 00001de6: PUSH1 0x01 00001de8: PUSH1 0x70 00001dea: SHL 00001deb: SUB 00001dec: DUP3 00001ded: AND 00001dee: PUSH2 0x1df7 00001df1: JUMPI 00001df2: POP 00001df3: PUSH2 0x0737 00001df6: JUMP 00001df7: JUMPDEST 00001df8: DUP1 00001df9: SLOAD 00001dfa: PUSH1 0x00 00001dfc: SWAP1 00001dfd: PUSH2 0x1e1f 00001e00: SWAP1 00001e01: PUSH1 0x01 00001e03: PUSH1 0x01 00001e05: PUSH1 0x70 00001e07: SHL 00001e08: SUB 00001e09: DUP1 00001e0a: DUP3 00001e0b: AND 00001e0c: SWAP2 00001e0d: PUSH1 0x01 00001e0f: PUSH1 0x70 00001e11: SHL 00001e12: SWAP1 00001e13: DIV 00001e14: AND 00001e15: PUSH4 0xffffffff 00001e1a: PUSH2 0x1c1f 00001e1d: AND 00001e1e: JUMP 00001e1f: JUMPDEST 00001e20: SWAP1 00001e21: POP 00001e22: DUP3 00001e23: PUSH1 0x01 00001e25: PUSH1 0x01 00001e27: PUSH1 0x70 00001e29: SHL 00001e2a: SUB 00001e2b: AND 00001e2c: DUP2 00001e2d: PUSH1 0x01 00001e2f: PUSH1 0x01 00001e31: PUSH1 0x70 00001e33: SHL 00001e34: SUB 00001e35: AND 00001e36: GT 00001e37: PUSH2 0x1e52 00001e3a: JUMPI 00001e3b: PUSH1 0x40 00001e3d: MLOAD 00001e3e: PUSH3 0x461bcd 00001e42: PUSH1 0xe5 00001e44: SHL 00001e45: DUP2 00001e46: MSTORE 00001e47: PUSH1 0x04 00001e49: ADD 00001e4a: PUSH2 0x04b1 00001e4d: SWAP1 00001e4e: PUSH2 0x274f 00001e51: JUMP 00001e52: JUMPDEST 00001e53: DUP2 00001e54: SLOAD 00001e55: PUSH1 0x01 00001e57: PUSH1 0x01 00001e59: PUSH1 0x70 00001e5b: SHL 00001e5c: SUB 00001e5d: DUP1 00001e5e: DUP6 00001e5f: AND 00001e60: SWAP2 00001e61: AND 00001e62: LT 00001e63: PUSH2 0x1ea5 00001e66: JUMPI 00001e67: DUP2 00001e68: SLOAD 00001e69: PUSH2 0x1e85 00001e6c: SWAP1 00001e6d: PUSH1 0x01 00001e6f: PUSH1 0x01 00001e71: PUSH1 0x70 00001e73: SHL 00001e74: SUB 00001e75: SWAP1 00001e76: DUP2 00001e77: AND 00001e78: SWAP1 00001e79: DUP6 00001e7a: AND 00001e7b: PUSH4 0xffffffff 00001e80: PUSH2 0x1bdd 00001e83: AND 00001e84: JUMP 00001e85: JUMPDEST 00001e86: DUP3 00001e87: SLOAD 00001e88: PUSH1 0x01 00001e8a: PUSH1 0x01 00001e8c: PUSH1 0x70 00001e8e: SHL 00001e8f: SUB 00001e90: NOT 00001e91: AND 00001e92: PUSH1 0x01 00001e94: PUSH1 0x01 00001e96: PUSH1 0x70 00001e98: SHL 00001e99: SUB 00001e9a: SWAP2 00001e9b: SWAP1 00001e9c: SWAP2 00001e9d: AND 00001e9e: OR 00001e9f: DUP3 00001ea0: SSTORE 00001ea1: PUSH2 0x06af 00001ea4: JUMP 00001ea5: JUMPDEST 00001ea6: DUP2 00001ea7: SLOAD 00001ea8: PUSH2 0x1edf 00001eab: SWAP1 00001eac: PUSH2 0x1ec7 00001eaf: SWAP1 00001eb0: PUSH1 0x01 00001eb2: PUSH1 0x01 00001eb4: PUSH1 0x70 00001eb6: SHL 00001eb7: SUB 00001eb8: DUP7 00001eb9: DUP2 00001eba: AND 00001ebb: SWAP2 00001ebc: AND 00001ebd: PUSH4 0xffffffff 00001ec2: PUSH2 0x1bdd 00001ec5: AND 00001ec6: JUMP 00001ec7: JUMPDEST 00001ec8: DUP4 00001ec9: SLOAD 00001eca: PUSH1 0x01 00001ecc: PUSH1 0x70 00001ece: SHL 00001ecf: SWAP1 00001ed0: DIV 00001ed1: PUSH1 0x01 00001ed3: PUSH1 0x01 00001ed5: PUSH1 0x70 00001ed7: SHL 00001ed8: SUB 00001ed9: AND 00001eda: SWAP1 00001edb: PUSH2 0x1bdd 00001ede: JUMP 00001edf: JUMPDEST 00001ee0: DUP3 00001ee1: SLOAD 00001ee2: PUSH1 0x01 00001ee4: PUSH1 0x01 00001ee6: PUSH1 0x70 00001ee8: SHL 00001ee9: SUB 00001eea: NOT 00001eeb: PUSH1 0x01 00001eed: PUSH1 0x01 00001eef: PUSH1 0x70 00001ef1: SHL 00001ef2: SUB 00001ef3: SWAP3 00001ef4: SWAP1 00001ef5: SWAP3 00001ef6: AND 00001ef7: PUSH1 0x01 00001ef9: PUSH1 0x70 00001efb: SHL 00001efc: MUL 00001efd: PUSH1 0x01 00001eff: PUSH1 0x70 00001f01: SHL 00001f02: PUSH1 0x01 00001f04: PUSH1 0xe0 00001f06: SHL 00001f07: SUB 00001f08: NOT 00001f09: SWAP1 00001f0a: SWAP2 00001f0b: AND 00001f0c: OR 00001f0d: AND 00001f0e: DUP3 00001f0f: SSTORE 00001f10: POP 00001f11: POP 00001f12: POP 00001f13: POP 00001f14: POP 00001f15: JUMP 00001f16: JUMPDEST 00001f17: PUSH1 0x60 00001f19: PUSH2 0x1f21 00001f1c: DUP6 00001f1d: PUSH2 0x1fda 00001f20: JUMP 00001f21: JUMPDEST 00001f22: PUSH2 0x1f3d 00001f25: JUMPI 00001f26: PUSH1 0x40 00001f28: MLOAD 00001f29: PUSH3 0x461bcd 00001f2d: PUSH1 0xe5 00001f2f: SHL 00001f30: DUP2 00001f31: MSTORE 00001f32: PUSH1 0x04 00001f34: ADD 00001f35: PUSH2 0x04b1 00001f38: SWAP1 00001f39: PUSH2 0x29b5 00001f3c: JUMP 00001f3d: JUMPDEST 00001f3e: PUSH1 0x00 00001f40: PUSH1 0x60 00001f42: DUP7 00001f43: PUSH1 0x01 00001f45: PUSH1 0x01 00001f47: PUSH1 0xa0 00001f49: SHL 00001f4a: SUB 00001f4b: AND 00001f4c: DUP6 00001f4d: DUP8 00001f4e: PUSH1 0x40 00001f50: MLOAD 00001f51: PUSH2 0x1f5a 00001f54: SWAP2 00001f55: SWAP1 00001f56: PUSH2 0x25b1 00001f59: JUMP 00001f5a: JUMPDEST 00001f5b: PUSH1 0x00 00001f5d: PUSH1 0x40 00001f5f: MLOAD 00001f60: DUP1 00001f61: DUP4 00001f62: SUB 00001f63: DUP2 00001f64: DUP6 00001f65: DUP8 00001f66: GAS 00001f67: CALL 00001f68: SWAP3 00001f69: POP 00001f6a: POP 00001f6b: POP 00001f6c: RETURNDATASIZE 00001f6d: DUP1 00001f6e: PUSH1 0x00 00001f70: DUP2 00001f71: EQ 00001f72: PUSH2 0x1f97 00001f75: JUMPI 00001f76: PUSH1 0x40 00001f78: MLOAD 00001f79: SWAP2 00001f7a: POP 00001f7b: PUSH1 0x1f 00001f7d: NOT 00001f7e: PUSH1 0x3f 00001f80: RETURNDATASIZE 00001f81: ADD 00001f82: AND 00001f83: DUP3 00001f84: ADD 00001f85: PUSH1 0x40 00001f87: MSTORE 00001f88: RETURNDATASIZE 00001f89: DUP3 00001f8a: MSTORE 00001f8b: RETURNDATASIZE 00001f8c: PUSH1 0x00 00001f8e: PUSH1 0x20 00001f90: DUP5 00001f91: ADD 00001f92: RETURNDATACOPY 00001f93: PUSH2 0x1f9c 00001f96: JUMP 00001f97: JUMPDEST 00001f98: PUSH1 0x60 00001f9a: SWAP2 00001f9b: POP 00001f9c: JUMPDEST 00001f9d: POP 00001f9e: SWAP2 00001f9f: POP 00001fa0: SWAP2 00001fa1: POP 00001fa2: DUP2 00001fa3: ISZERO 00001fa4: PUSH2 0x1fb0 00001fa7: JUMPI 00001fa8: SWAP2 00001fa9: POP 00001faa: PUSH2 0x1d97 00001fad: SWAP1 00001fae: POP 00001faf: JUMP 00001fb0: JUMPDEST 00001fb1: DUP1 00001fb2: MLOAD 00001fb3: ISZERO 00001fb4: PUSH2 0x1fc0 00001fb7: JUMPI 00001fb8: DUP1 00001fb9: MLOAD 00001fba: DUP1 00001fbb: DUP3 00001fbc: PUSH1 0x20 00001fbe: ADD 00001fbf: REVERT 00001fc0: JUMPDEST 00001fc1: DUP4 00001fc2: PUSH1 0x40 00001fc4: MLOAD 00001fc5: PUSH3 0x461bcd 00001fc9: PUSH1 0xe5 00001fcb: SHL 00001fcc: DUP2 00001fcd: MSTORE 00001fce: PUSH1 0x04 00001fd0: ADD 00001fd1: PUSH2 0x04b1 00001fd4: SWAP2 00001fd5: SWAP1 00001fd6: PUSH2 0x264c 00001fd9: JUMP 00001fda: JUMPDEST 00001fdb: EXTCODESIZE 00001fdc: ISZERO 00001fdd: ISZERO 00001fde: SWAP1 00001fdf: JUMP 00001fe0: JUMPDEST 00001fe1: PUSH1 0x40 00001fe3: DUP1 00001fe4: MLOAD 00001fe5: PUSH1 0x80 00001fe7: DUP2 00001fe8: ADD 00001fe9: DUP3 00001fea: MSTORE 00001feb: PUSH1 0x00 00001fed: DUP1 00001fee: DUP3 00001fef: MSTORE 00001ff0: PUSH1 0x20 00001ff2: DUP3 00001ff3: ADD 00001ff4: DUP2 00001ff5: SWAP1 00001ff6: MSTORE 00001ff7: SWAP2 00001ff8: DUP2 00001ff9: ADD 00001ffa: DUP3 00001ffb: SWAP1 00001ffc: MSTORE 00001ffd: PUSH1 0x60 00001fff: DUP2 00002000: ADD 00002001: SWAP2 00002002: SWAP1 00002003: SWAP2 00002004: MSTORE 00002005: SWAP1 00002006: JUMP 00002007: JUMPDEST 00002008: PUSH1 0x40 0000200a: MLOAD 0000200b: DUP1 0000200c: PUSH1 0x80 0000200e: ADD 0000200f: PUSH1 0x40 00002011: MSTORE 00002012: DUP1 00002013: PUSH1 0x00 00002015: DUP2 00002016: MSTORE 00002017: PUSH1 0x20 00002019: ADD 0000201a: PUSH1 0x00 0000201c: DUP2 0000201d: MSTORE 0000201e: PUSH1 0x20 00002020: ADD 00002021: PUSH1 0x00 00002023: DUP2 00002024: MSTORE 00002025: PUSH1 0x20 00002027: ADD 00002028: PUSH1 0x00 0000202a: DUP2 0000202b: MSTORE 0000202c: POP 0000202d: SWAP1 0000202e: JUMP 0000202f: JUMPDEST 00002030: DUP1 00002031: CALLDATALOAD 00002032: PUSH1 0x02 00002034: DUP2 00002035: LT 00002036: PUSH2 0x0468 00002039: JUMPI 0000203a: PUSH1 0x00 0000203c: DUP1 0000203d: REVERT 0000203e: JUMPDEST 0000203f: PUSH1 0x00 00002041: DUP2 00002042: DUP4 00002043: SUB 00002044: PUSH2 0x0120 00002047: DUP2 00002048: SLT 00002049: ISZERO 0000204a: PUSH2 0x2051 0000204d: JUMPI 0000204e: DUP2 0000204f: DUP3 00002050: REVERT 00002051: JUMPDEST 00002052: PUSH2 0x205b 00002055: PUSH1 0xc0 00002057: PUSH2 0x2d33 0000205a: JUMP 0000205b: JUMPDEST 0000205c: SWAP2 0000205d: POP 0000205e: DUP3 0000205f: CALLDATALOAD 00002060: PUSH2 0x2068 00002063: DUP2 00002064: PUSH2 0x2e73 00002067: JUMP 00002068: JUMPDEST 00002069: DUP3 0000206a: MSTORE 0000206b: PUSH1 0x20 0000206d: DUP4 0000206e: ADD 0000206f: CALLDATALOAD 00002070: PUSH2 0x2078 00002073: DUP2 00002074: PUSH2 0x2eab 00002077: JUMP 00002078: JUMPDEST 00002079: PUSH1 0x20 0000207b: DUP4 0000207c: ADD 0000207d: MSTORE 0000207e: PUSH1 0x40 00002080: PUSH1 0x3f 00002082: NOT 00002083: DUP3 00002084: ADD 00002085: SLT 00002086: ISZERO 00002087: PUSH2 0x208f 0000208a: JUMPI 0000208b: PUSH1 0x00 0000208d: DUP1 0000208e: REVERT 0000208f: JUMPDEST 00002090: POP 00002091: PUSH2 0x209a 00002094: PUSH1 0x40 00002096: PUSH2 0x2d33 00002099: JUMP 0000209a: JUMPDEST 0000209b: PUSH2 0x20a7 0000209e: DUP5 0000209f: PUSH1 0x40 000020a1: DUP6 000020a2: ADD 000020a3: PUSH2 0x213f 000020a6: JUMP 000020a7: JUMPDEST 000020a8: DUP2 000020a9: MSTORE 000020aa: PUSH2 0x20b6 000020ad: DUP5 000020ae: PUSH1 0x60 000020b0: DUP6 000020b1: ADD 000020b2: PUSH2 0x2156 000020b5: JUMP 000020b6: JUMPDEST 000020b7: PUSH1 0x20 000020b9: DUP3 000020ba: ADD 000020bb: MSTORE 000020bc: PUSH1 0x40 000020be: DUP3 000020bf: ADD 000020c0: MSTORE 000020c1: PUSH2 0x20cd 000020c4: DUP4 000020c5: PUSH1 0x80 000020c7: DUP5 000020c8: ADD 000020c9: PUSH2 0x202f 000020cc: JUMP 000020cd: JUMPDEST 000020ce: PUSH1 0x60 000020d0: DUP3 000020d1: ADD 000020d2: MSTORE 000020d3: PUSH2 0x20df 000020d6: DUP4 000020d7: PUSH1 0xa0 000020d9: DUP5 000020da: ADD 000020db: PUSH2 0x20fc 000020de: JUMP 000020df: JUMPDEST 000020e0: PUSH1 0x80 000020e2: DUP3 000020e3: ADD 000020e4: MSTORE 000020e5: PUSH2 0x20f1 000020e8: DUP4 000020e9: PUSH1 0xe0 000020eb: DUP5 000020ec: ADD 000020ed: PUSH2 0x20fc 000020f0: JUMP 000020f1: JUMPDEST 000020f2: PUSH1 0xa0 000020f4: DUP3 000020f5: ADD 000020f6: MSTORE 000020f7: SWAP3 000020f8: SWAP2 000020f9: POP 000020fa: POP 000020fb: JUMP 000020fc: JUMPDEST 000020fd: PUSH1 0x00 000020ff: PUSH1 0x40 00002101: DUP3 00002102: DUP5 00002103: SUB 00002104: SLT 00002105: ISZERO 00002106: PUSH2 0x210d 00002109: JUMPI 0000210a: DUP1 0000210b: DUP2 0000210c: REVERT 0000210d: JUMPDEST 0000210e: PUSH2 0x2117 00002111: PUSH1 0x40 00002113: PUSH2 0x2d33 00002116: JUMP 00002117: JUMPDEST 00002118: SWAP1 00002119: POP 0000211a: DUP2 0000211b: CALLDATALOAD 0000211c: PUSH2 0x2124 0000211f: DUP2 00002120: PUSH2 0x2e73 00002123: JUMP 00002124: JUMPDEST 00002125: DUP2 00002126: MSTORE 00002127: PUSH1 0x20 00002129: DUP3 0000212a: ADD 0000212b: CALLDATALOAD 0000212c: PUSH2 0x2134 0000212f: DUP2 00002130: PUSH2 0x2e96 00002133: JUMP 00002134: JUMPDEST 00002135: PUSH1 0x20 00002137: DUP3 00002138: ADD 00002139: MSTORE 0000213a: SWAP3 0000213b: SWAP2 0000213c: POP 0000213d: POP 0000213e: JUMP 0000213f: JUMPDEST 00002140: DUP1 00002141: CALLDATALOAD 00002142: PUSH1 0x01 00002144: PUSH1 0x01 00002146: PUSH1 0x70 00002148: SHL 00002149: SUB 0000214a: DUP2 0000214b: AND 0000214c: DUP2 0000214d: EQ 0000214e: PUSH2 0x0468 00002151: JUMPI 00002152: PUSH1 0x00 00002154: DUP1 00002155: REVERT 00002156: JUMPDEST 00002157: DUP1 00002158: CALLDATALOAD 00002159: PUSH2 0x0468 0000215c: DUP2 0000215d: PUSH2 0x2ec0 00002160: JUMP 00002161: JUMPDEST 00002162: PUSH1 0x00 00002164: PUSH1 0x20 00002166: DUP3 00002167: DUP5 00002168: SUB 00002169: SLT 0000216a: ISZERO 0000216b: PUSH2 0x2172 0000216e: JUMPI 0000216f: DUP1 00002170: DUP2 00002171: REVERT 00002172: JUMPDEST 00002173: DUP2 00002174: CALLDATALOAD 00002175: PUSH2 0x0a13 00002178: DUP2 00002179: PUSH2 0x2e73 0000217c: JUMP 0000217d: JUMPDEST 0000217e: PUSH1 0x00 00002180: DUP1 00002181: PUSH1 0x40 00002183: DUP4 00002184: DUP6 00002185: SUB 00002186: SLT 00002187: ISZERO 00002188: PUSH2 0x218f 0000218b: JUMPI 0000218c: DUP1 0000218d: DUP2 0000218e: REVERT 0000218f: JUMPDEST 00002190: DUP3 00002191: CALLDATALOAD 00002192: PUSH2 0x219a 00002195: DUP2 00002196: PUSH2 0x2e73 00002199: JUMP 0000219a: JUMPDEST 0000219b: SWAP5 0000219c: PUSH1 0x20 0000219e: SWAP4 0000219f: SWAP1 000021a0: SWAP4 000021a1: ADD 000021a2: CALLDATALOAD 000021a3: SWAP4 000021a4: POP 000021a5: POP 000021a6: POP 000021a7: JUMP 000021a8: JUMPDEST 000021a9: PUSH1 0x00 000021ab: PUSH1 0x20 000021ad: DUP3 000021ae: DUP5 000021af: SUB 000021b0: SLT 000021b1: ISZERO 000021b2: PUSH2 0x21b9 000021b5: JUMPI 000021b6: DUP1 000021b7: DUP2 000021b8: REVERT 000021b9: JUMPDEST 000021ba: DUP2 000021bb: MLOAD 000021bc: PUSH2 0x0a13 000021bf: DUP2 000021c0: PUSH2 0x2e88 000021c3: JUMP 000021c4: JUMPDEST 000021c5: PUSH1 0x00 000021c7: DUP1 000021c8: PUSH1 0x40 000021ca: DUP4 000021cb: DUP6 000021cc: SUB 000021cd: SLT 000021ce: ISZERO 000021cf: PUSH2 0x21d6 000021d2: JUMPI 000021d3: DUP1 000021d4: DUP2 000021d5: REVERT 000021d6: JUMPDEST 000021d7: DUP3 000021d8: MLOAD 000021d9: PUSH2 0x21e1 000021dc: DUP2 000021dd: PUSH2 0x2e88 000021e0: JUMP 000021e1: JUMPDEST 000021e2: PUSH1 0x20 000021e4: DUP5 000021e5: ADD 000021e6: MLOAD 000021e7: SWAP1 000021e8: SWAP3 000021e9: POP 000021ea: PUSH8 0xffffffffffffffff 000021f3: DUP2 000021f4: GT 000021f5: ISZERO 000021f6: PUSH2 0x21fd 000021f9: JUMPI 000021fa: DUP2 000021fb: DUP3 000021fc: REVERT 000021fd: JUMPDEST 000021fe: DUP1 000021ff: DUP5 00002200: ADD 00002201: DUP6 00002202: PUSH1 0x1f 00002204: DUP3 00002205: ADD 00002206: SLT 00002207: PUSH2 0x220e 0000220a: JUMPI 0000220b: DUP3 0000220c: DUP4 0000220d: REVERT 0000220e: JUMPDEST 0000220f: DUP1 00002210: MLOAD 00002211: SWAP2 00002212: POP 00002213: PUSH2 0x2223 00002216: PUSH2 0x221e 00002219: DUP4 0000221a: PUSH2 0x2d5a 0000221d: JUMP 0000221e: JUMPDEST 0000221f: PUSH2 0x2d33 00002222: JUMP 00002223: JUMPDEST 00002224: DUP3 00002225: DUP2 00002226: MSTORE 00002227: DUP7 00002228: PUSH1 0x20 0000222a: DUP5 0000222b: DUP5 0000222c: ADD 0000222d: ADD 0000222e: GT 0000222f: ISZERO 00002230: PUSH2 0x2237 00002233: JUMPI 00002234: DUP4 00002235: DUP5 00002236: REVERT 00002237: JUMPDEST 00002238: PUSH2 0x2248 0000223b: DUP4 0000223c: PUSH1 0x20 0000223e: DUP4 0000223f: ADD 00002240: PUSH1 0x20 00002242: DUP6 00002243: ADD 00002244: PUSH2 0x2d99 00002247: JUMP 00002248: JUMPDEST 00002249: DUP1 0000224a: SWAP4 0000224b: POP 0000224c: POP 0000224d: POP 0000224e: POP 0000224f: SWAP3 00002250: POP 00002251: SWAP3 00002252: SWAP1 00002253: POP 00002254: JUMP 00002255: JUMPDEST 00002256: PUSH1 0x00 00002258: DUP1 00002259: PUSH1 0x40 0000225b: DUP4 0000225c: DUP6 0000225d: SUB 0000225e: SLT 0000225f: ISZERO 00002260: PUSH2 0x2267 00002263: JUMPI 00002264: DUP2 00002265: DUP3 00002266: REVERT 00002267: JUMPDEST 00002268: DUP3 00002269: CALLDATALOAD 0000226a: SWAP2 0000226b: POP 0000226c: PUSH1 0x20 0000226e: DUP4 0000226f: ADD 00002270: CALLDATALOAD 00002271: PUSH2 0x2279 00002274: DUP2 00002275: PUSH2 0x2e73 00002278: JUMP 00002279: JUMPDEST 0000227a: DUP1 0000227b: SWAP2 0000227c: POP 0000227d: POP 0000227e: SWAP3 0000227f: POP 00002280: SWAP3 00002281: SWAP1 00002282: POP 00002283: JUMP 00002284: JUMPDEST 00002285: PUSH1 0x00 00002287: PUSH1 0x80 00002289: DUP3 0000228a: DUP5 0000228b: SUB 0000228c: SLT 0000228d: ISZERO 0000228e: PUSH2 0x2295 00002291: JUMPI 00002292: DUP1 00002293: DUP2 00002294: REVERT 00002295: JUMPDEST 00002296: PUSH2 0x229f 00002299: PUSH1 0x80 0000229b: PUSH2 0x2d33 0000229e: JUMP 0000229f: JUMPDEST 000022a0: DUP3 000022a1: CALLDATALOAD 000022a2: PUSH2 0x22aa 000022a5: DUP2 000022a6: PUSH2 0x2e73 000022a9: JUMP 000022aa: JUMPDEST 000022ab: DUP2 000022ac: MSTORE 000022ad: PUSH1 0x20 000022af: DUP4 000022b0: ADD 000022b1: CALLDATALOAD 000022b2: PUSH2 0x22ba 000022b5: DUP2 000022b6: PUSH2 0x2eab 000022b9: JUMP 000022ba: JUMPDEST 000022bb: PUSH1 0x20 000022bd: DUP3 000022be: ADD 000022bf: MSTORE 000022c0: PUSH1 0x40 000022c2: DUP4 000022c3: ADD 000022c4: CALLDATALOAD 000022c5: PUSH2 0x22cd 000022c8: DUP2 000022c9: PUSH2 0x2eab 000022cc: JUMP 000022cd: JUMPDEST 000022ce: PUSH1 0x40 000022d0: DUP3 000022d1: ADD 000022d2: MSTORE 000022d3: PUSH1 0x60 000022d5: DUP4 000022d6: ADD 000022d7: CALLDATALOAD 000022d8: PUSH2 0x22e0 000022db: DUP2 000022dc: PUSH2 0x2ec0 000022df: JUMP 000022e0: JUMPDEST 000022e1: PUSH1 0x60 000022e3: DUP3 000022e4: ADD 000022e5: MSTORE 000022e6: SWAP4 000022e7: SWAP3 000022e8: POP 000022e9: POP 000022ea: POP 000022eb: JUMP 000022ec: JUMPDEST 000022ed: PUSH1 0x00 000022ef: PUSH1 0x80 000022f1: DUP3 000022f2: DUP5 000022f3: SUB 000022f4: SLT 000022f5: ISZERO 000022f6: PUSH2 0x22fd 000022f9: JUMPI 000022fa: DUP1 000022fb: DUP2 000022fc: REVERT 000022fd: JUMPDEST 000022fe: PUSH2 0x2307 00002301: PUSH1 0x80 00002303: PUSH2 0x2d33 00002306: JUMP 00002307: JUMPDEST 00002308: DUP3 00002309: MLOAD 0000230a: PUSH2 0x2312 0000230d: DUP2 0000230e: PUSH2 0x2e73 00002311: JUMP 00002312: JUMPDEST 00002313: DUP2 00002314: MSTORE 00002315: PUSH1 0x20 00002317: DUP4 00002318: ADD 00002319: MLOAD 0000231a: PUSH2 0x2322 0000231d: DUP2 0000231e: PUSH2 0x2eab 00002321: JUMP 00002322: JUMPDEST 00002323: PUSH1 0x20 00002325: DUP3 00002326: ADD 00002327: MSTORE 00002328: PUSH1 0x40 0000232a: DUP4 0000232b: ADD 0000232c: MLOAD 0000232d: PUSH2 0x2335 00002330: DUP2 00002331: PUSH2 0x2eab 00002334: JUMP 00002335: JUMPDEST 00002336: PUSH1 0x40 00002338: DUP3 00002339: ADD 0000233a: MSTORE 0000233b: PUSH1 0x60 0000233d: DUP4 0000233e: ADD 0000233f: MLOAD 00002340: PUSH2 0x22e0 00002343: DUP2 00002344: PUSH2 0x2ec0 00002347: JUMP 00002348: JUMPDEST 00002349: PUSH1 0x00 0000234b: DUP1 0000234c: PUSH1 0x00 0000234e: DUP1 0000234f: DUP5 00002350: DUP7 00002351: SUB 00002352: PUSH2 0x0160 00002355: DUP2 00002356: SLT 00002357: ISZERO 00002358: PUSH2 0x235f 0000235b: JUMPI 0000235c: DUP3 0000235d: DUP4 0000235e: REVERT 0000235f: JUMPDEST 00002360: PUSH2 0x0120 00002363: DUP1 00002364: DUP3 00002365: SLT 00002366: ISZERO 00002367: PUSH2 0x236e 0000236a: JUMPI 0000236b: DUP4 0000236c: DUP5 0000236d: REVERT 0000236e: JUMPDEST 0000236f: DUP7 00002370: SWAP6 00002371: POP 00002372: DUP6 00002373: ADD 00002374: CALLDATALOAD 00002375: SWAP1 00002376: POP 00002377: PUSH2 0x237f 0000237a: DUP2 0000237b: PUSH2 0x2e73 0000237e: JUMP 0000237f: JUMPDEST 00002380: SWAP3 00002381: POP 00002382: PUSH2 0x0140 00002385: DUP6 00002386: ADD 00002387: CALLDATALOAD 00002388: PUSH8 0xffffffffffffffff 00002391: DUP1 00002392: DUP3 00002393: GT 00002394: ISZERO 00002395: PUSH2 0x239c 00002398: JUMPI 00002399: DUP4 0000239a: DUP5 0000239b: REVERT 0000239c: JUMPDEST 0000239d: DUP2 0000239e: DUP8 0000239f: ADD 000023a0: DUP9 000023a1: PUSH1 0x1f 000023a3: DUP3 000023a4: ADD 000023a5: SLT 000023a6: PUSH2 0x23ad 000023a9: JUMPI 000023aa: DUP5 000023ab: DUP6 000023ac: REVERT 000023ad: JUMPDEST 000023ae: DUP1 000023af: CALLDATALOAD 000023b0: SWAP3 000023b1: POP 000023b2: DUP2 000023b3: DUP4 000023b4: GT 000023b5: ISZERO 000023b6: PUSH2 0x23bd 000023b9: JUMPI 000023ba: DUP5 000023bb: DUP6 000023bc: REVERT 000023bd: JUMPDEST 000023be: DUP9 000023bf: PUSH1 0x20 000023c1: DUP5 000023c2: DUP4 000023c3: ADD 000023c4: ADD 000023c5: GT 000023c6: ISZERO 000023c7: PUSH2 0x23ce 000023ca: JUMPI 000023cb: DUP5 000023cc: DUP6 000023cd: REVERT 000023ce: JUMPDEST 000023cf: SWAP6 000023d0: SWAP9 000023d1: SWAP5 000023d2: SWAP8 000023d3: POP 000023d4: POP 000023d5: PUSH1 0x20 000023d7: SWAP1 000023d8: SWAP5 000023d9: ADD 000023da: SWAP5 000023db: POP 000023dc: POP 000023dd: POP 000023de: JUMP 000023df: JUMPDEST 000023e0: PUSH1 0x00 000023e2: DUP1 000023e3: PUSH1 0x00 000023e5: PUSH2 0x0160 000023e8: DUP5 000023e9: DUP7 000023ea: SUB 000023eb: SLT 000023ec: ISZERO 000023ed: PUSH2 0x23f4 000023f0: JUMPI 000023f1: DUP1 000023f2: DUP2 000023f3: REVERT 000023f4: JUMPDEST 000023f5: PUSH2 0x23fe 000023f8: DUP6 000023f9: DUP6 000023fa: PUSH2 0x203e 000023fd: JUMP 000023fe: JUMPDEST 000023ff: SWAP3 00002400: POP 00002401: PUSH2 0x0120 00002404: DUP5 00002405: ADD 00002406: CALLDATALOAD 00002407: PUSH2 0x240f 0000240a: DUP2 0000240b: PUSH2 0x2e73 0000240e: JUMP 0000240f: JUMPDEST 00002410: SWAP2 00002411: POP 00002412: PUSH2 0x0140 00002415: DUP5 00002416: ADD 00002417: CALLDATALOAD 00002418: PUSH8 0xffffffffffffffff 00002421: DUP2 00002422: GT 00002423: ISZERO 00002424: PUSH2 0x242b 00002427: JUMPI 00002428: DUP2 00002429: DUP3 0000242a: REVERT 0000242b: JUMPDEST 0000242c: DUP1 0000242d: DUP6 0000242e: ADD 0000242f: DUP7 00002430: PUSH1 0x1f 00002432: DUP3 00002433: ADD 00002434: SLT 00002435: PUSH2 0x243c 00002438: JUMPI 00002439: DUP3 0000243a: DUP4 0000243b: REVERT 0000243c: JUMPDEST 0000243d: DUP1 0000243e: CALLDATALOAD 0000243f: SWAP2 00002440: POP 00002441: PUSH2 0x244c 00002444: PUSH2 0x221e 00002447: DUP4 00002448: PUSH2 0x2d5a 0000244b: JUMP 0000244c: JUMPDEST 0000244d: DUP3 0000244e: DUP2 0000244f: MSTORE 00002450: DUP8 00002451: PUSH1 0x20 00002453: DUP5 00002454: DUP5 00002455: ADD 00002456: ADD 00002457: GT 00002458: ISZERO 00002459: PUSH2 0x2460 0000245c: JUMPI 0000245d: DUP4 0000245e: DUP5 0000245f: REVERT 00002460: JUMPDEST 00002461: DUP3 00002462: PUSH1 0x20 00002464: DUP4 00002465: ADD 00002466: PUSH1 0x20 00002468: DUP4 00002469: ADD 0000246a: CALLDATACOPY 0000246b: DUP4 0000246c: PUSH1 0x20 0000246e: DUP5 0000246f: DUP4 00002470: ADD 00002471: ADD 00002472: MSTORE 00002473: DUP1 00002474: SWAP4 00002475: POP 00002476: POP 00002477: POP 00002478: POP 00002479: SWAP3 0000247a: POP 0000247b: SWAP3 0000247c: POP 0000247d: SWAP3 0000247e: JUMP 0000247f: JUMPDEST 00002480: PUSH1 0x00 00002482: DUP1 00002483: PUSH2 0x0140 00002486: DUP4 00002487: DUP6 00002488: SUB 00002489: SLT 0000248a: ISZERO 0000248b: PUSH2 0x2492 0000248e: JUMPI 0000248f: DUP2 00002490: DUP3 00002491: REVERT 00002492: JUMPDEST 00002493: PUSH2 0x249c 00002496: DUP5 00002497: DUP5 00002498: PUSH2 0x203e 0000249b: JUMP 0000249c: JUMPDEST 0000249d: SWAP5 0000249e: PUSH2 0x0120 000024a1: SWAP4 000024a2: SWAP1 000024a3: SWAP4 000024a4: ADD 000024a5: CALLDATALOAD 000024a6: SWAP4 000024a7: POP 000024a8: POP 000024a9: POP 000024aa: JUMP 000024ab: JUMPDEST 000024ac: PUSH1 0x00 000024ae: PUSH1 0x20 000024b0: DUP3 000024b1: DUP5 000024b2: SUB 000024b3: SLT 000024b4: ISZERO 000024b5: PUSH2 0x24bc 000024b8: JUMPI 000024b9: DUP1 000024ba: DUP2 000024bb: REVERT 000024bc: JUMPDEST 000024bd: PUSH2 0x0a13 000024c0: DUP4 000024c1: DUP4 000024c2: PUSH2 0x213f 000024c5: JUMP 000024c6: JUMPDEST 000024c7: PUSH1 0x00 000024c9: PUSH1 0x20 000024cb: DUP3 000024cc: DUP5 000024cd: SUB 000024ce: SLT 000024cf: ISZERO 000024d0: PUSH2 0x24d7 000024d3: JUMPI 000024d4: DUP1 000024d5: DUP2 000024d6: REVERT 000024d7: JUMPDEST 000024d8: POP 000024d9: MLOAD 000024da: SWAP2 000024db: SWAP1 000024dc: POP 000024dd: JUMP 000024de: JUMPDEST 000024df: PUSH1 0x00 000024e1: DUP2 000024e2: MLOAD 000024e3: DUP1 000024e4: DUP5 000024e5: MSTORE 000024e6: PUSH2 0x24f6 000024e9: DUP2 000024ea: PUSH1 0x20 000024ec: DUP7 000024ed: ADD 000024ee: PUSH1 0x20 000024f0: DUP7 000024f1: ADD 000024f2: PUSH2 0x2d99 000024f5: JUMP 000024f6: JUMPDEST 000024f7: PUSH1 0x1f 000024f9: ADD 000024fa: PUSH1 0x1f 000024fc: NOT 000024fd: AND 000024fe: SWAP3 000024ff: SWAP1 00002500: SWAP3 00002501: ADD 00002502: PUSH1 0x20 00002504: ADD 00002505: SWAP3 00002506: SWAP2 00002507: POP 00002508: POP 00002509: JUMP 0000250a: JUMPDEST 0000250b: PUSH1 0x02 0000250d: DUP2 0000250e: LT 0000250f: PUSH2 0x2514 00002512: JUMPI 00002513: INVALID 00002514: JUMPDEST 00002515: SWAP1 00002516: MSTORE 00002517: JUMP 00002518: JUMPDEST 00002519: DUP1 0000251a: MLOAD 0000251b: PUSH1 0x01 0000251d: PUSH1 0x01 0000251f: PUSH1 0xa0 00002521: SHL 00002522: SUB 00002523: AND 00002524: DUP3 00002525: MSTORE 00002526: PUSH1 0x20 00002528: DUP1 00002529: DUP3 0000252a: ADD 0000252b: MLOAD 0000252c: PUSH1 0x01 0000252e: PUSH1 0x01 00002530: PUSH1 0x80 00002532: SHL 00002533: SUB 00002534: SWAP1 00002535: DUP2 00002536: AND 00002537: SWAP2 00002538: DUP5 00002539: ADD 0000253a: SWAP2 0000253b: SWAP1 0000253c: SWAP2 0000253d: MSTORE 0000253e: PUSH1 0x40 00002540: DUP1 00002541: DUP4 00002542: ADD 00002543: MLOAD 00002544: SWAP1 00002545: SWAP2 00002546: AND 00002547: SWAP1 00002548: DUP4 00002549: ADD 0000254a: MSTORE 0000254b: PUSH1 0x60 0000254d: SWAP1 0000254e: DUP2 0000254f: ADD 00002550: MLOAD 00002551: PUSH1 0xff 00002553: AND 00002554: SWAP2 00002555: ADD 00002556: MSTORE 00002557: JUMP 00002558: JUMPDEST 00002559: DUP1 0000255a: CALLDATALOAD 0000255b: PUSH2 0x2563 0000255e: DUP2 0000255f: PUSH2 0x2e73 00002562: JUMP 00002563: JUMPDEST 00002564: PUSH1 0x01 00002566: PUSH1 0x01 00002568: PUSH1 0xa0 0000256a: SHL 0000256b: SUB 0000256c: AND 0000256d: DUP3 0000256e: MSTORE 0000256f: PUSH1 0x20 00002571: DUP2 00002572: ADD 00002573: CALLDATALOAD 00002574: PUSH2 0x257c 00002577: DUP2 00002578: PUSH2 0x2e96 0000257b: JUMP 0000257c: JUMPDEST 0000257d: PUSH1 0x01 0000257f: PUSH1 0x01 00002581: PUSH1 0x70 00002583: SHL 00002584: SUB 00002585: DUP2 00002586: AND 00002587: PUSH1 0x20 00002589: DUP5 0000258a: ADD 0000258b: MSTORE 0000258c: POP 0000258d: POP 0000258e: POP 0000258f: JUMP 00002590: JUMPDEST 00002591: DUP1 00002592: MLOAD 00002593: PUSH1 0x01 00002595: PUSH1 0x01 00002597: PUSH1 0xa0 00002599: SHL 0000259a: SUB 0000259b: AND 0000259c: DUP3 0000259d: MSTORE 0000259e: PUSH1 0x20 000025a0: SWAP1 000025a1: DUP2 000025a2: ADD 000025a3: MLOAD 000025a4: PUSH1 0x01 000025a6: PUSH1 0x01 000025a8: PUSH1 0x70 000025aa: SHL 000025ab: SUB 000025ac: AND 000025ad: SWAP2 000025ae: ADD 000025af: MSTORE 000025b0: JUMP 000025b1: JUMPDEST 000025b2: PUSH1 0x00 000025b4: DUP3 000025b5: MLOAD 000025b6: PUSH2 0x25c3 000025b9: DUP2 000025ba: DUP5 000025bb: PUSH1 0x20 000025bd: DUP8 000025be: ADD 000025bf: PUSH2 0x2d99 000025c2: JUMP 000025c3: JUMPDEST 000025c4: SWAP2 000025c5: SWAP1 000025c6: SWAP2 000025c7: ADD 000025c8: SWAP3 000025c9: SWAP2 000025ca: POP 000025cb: POP 000025cc: JUMP 000025cd: JUMPDEST 000025ce: PUSH1 0x01 000025d0: PUSH1 0x01 000025d2: PUSH1 0xa0 000025d4: SHL 000025d5: SUB 000025d6: SWAP2 000025d7: SWAP1 000025d8: SWAP2 000025d9: AND 000025da: DUP2 000025db: MSTORE 000025dc: PUSH1 0x20 000025de: ADD 000025df: SWAP1 000025e0: JUMP 000025e1: JUMPDEST 000025e2: PUSH1 0x01 000025e4: PUSH1 0x01 000025e6: PUSH1 0xa0 000025e8: SHL 000025e9: SUB 000025ea: SWAP3 000025eb: DUP4 000025ec: AND 000025ed: DUP2 000025ee: MSTORE 000025ef: SWAP2 000025f0: AND 000025f1: PUSH1 0x20 000025f3: DUP3 000025f4: ADD 000025f5: MSTORE 000025f6: PUSH1 0x40 000025f8: ADD 000025f9: SWAP1 000025fa: JUMP 000025fb: JUMPDEST 000025fc: PUSH1 0x01 000025fe: PUSH1 0x01 00002600: PUSH1 0xa0 00002602: SHL 00002603: SUB 00002604: SWAP4 00002605: DUP5 00002606: AND 00002607: DUP2 00002608: MSTORE 00002609: SWAP2 0000260a: SWAP1 0000260b: SWAP3 0000260c: AND 0000260d: PUSH1 0x20 0000260f: DUP3 00002610: ADD 00002611: MSTORE 00002612: PUSH1 0x40 00002614: DUP2 00002615: ADD 00002616: SWAP2 00002617: SWAP1 00002618: SWAP2 00002619: MSTORE 0000261a: PUSH1 0x60 0000261c: ADD 0000261d: SWAP1 0000261e: JUMP 0000261f: JUMPDEST 00002620: PUSH1 0x01 00002622: PUSH1 0x01 00002624: PUSH1 0xa0 00002626: SHL 00002627: SUB 00002628: SWAP3 00002629: SWAP1 0000262a: SWAP3 0000262b: AND 0000262c: DUP3 0000262d: MSTORE 0000262e: PUSH1 0x20 00002630: DUP3 00002631: ADD 00002632: MSTORE 00002633: PUSH1 0x40 00002635: ADD 00002636: SWAP1 00002637: JUMP 00002638: JUMPDEST 00002639: SWAP1 0000263a: ISZERO 0000263b: ISZERO 0000263c: DUP2 0000263d: MSTORE 0000263e: PUSH1 0x20 00002640: ADD 00002641: SWAP1 00002642: JUMP 00002643: JUMPDEST 00002644: SWAP1 00002645: DUP2 00002646: MSTORE 00002647: PUSH1 0x20 00002649: ADD 0000264a: SWAP1 0000264b: JUMP 0000264c: JUMPDEST 0000264d: PUSH1 0x00 0000264f: PUSH1 0x20 00002651: DUP3 00002652: MSTORE 00002653: PUSH2 0x0a13 00002656: PUSH1 0x20 00002658: DUP4 00002659: ADD 0000265a: DUP5 0000265b: PUSH2 0x24de 0000265e: JUMP 0000265f: JUMPDEST 00002660: PUSH1 0x20 00002662: DUP1 00002663: DUP3 00002664: MSTORE 00002665: PUSH1 0x1c 00002667: SWAP1 00002668: DUP3 00002669: ADD 0000266a: MSTORE 0000266b: PUSH32 0x496e73756666696369656e74206f75747075742070726f647563656400000000 0000268c: PUSH1 0x40 0000268e: DUP3 0000268f: ADD 00002690: MSTORE 00002691: PUSH1 0x60 00002693: ADD 00002694: SWAP1 00002695: JUMP 00002696: JUMPDEST 00002697: PUSH1 0x20 00002699: DUP1 0000269a: DUP3 0000269b: MSTORE 0000269c: PUSH1 0x2b 0000269e: SWAP1 0000269f: DUP3 000026a0: ADD 000026a1: MSTORE 000026a2: PUSH32 0x417474656d7074696e6720746f2072652d656e7465722066756e6374696f6e20 000026c3: PUSH1 0x40 000026c5: DUP3 000026c6: ADD 000026c7: MSTORE 000026c8: PUSH11 0x7265637572736976656c79 000026d4: PUSH1 0xa8 000026d6: SHL 000026d7: PUSH1 0x60 000026d9: DUP3 000026da: ADD 000026db: MSTORE 000026dc: PUSH1 0x80 000026de: ADD 000026df: SWAP1 000026e0: JUMP 000026e1: JUMPDEST 000026e2: PUSH1 0x20 000026e4: DUP1 000026e5: DUP3 000026e6: MSTORE 000026e7: PUSH1 0x1d 000026e9: SWAP1 000026ea: DUP3 000026eb: ADD 000026ec: MSTORE 000026ed: PUSH32 0x4d75737420666972737420726571756573742061207769746864726177000000 0000270e: PUSH1 0x40 00002710: DUP3 00002711: ADD 00002712: MSTORE 00002713: PUSH1 0x60 00002715: ADD 00002716: SWAP1 00002717: JUMP 00002718: JUMPDEST 00002719: PUSH1 0x20 0000271b: DUP1 0000271c: DUP3 0000271d: MSTORE 0000271e: PUSH1 0x1b 00002720: SWAP1 00002721: DUP3 00002722: ADD 00002723: MSTORE 00002724: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 00002745: PUSH1 0x40 00002747: DUP3 00002748: ADD 00002749: MSTORE 0000274a: PUSH1 0x60 0000274c: ADD 0000274d: SWAP1 0000274e: JUMP 0000274f: JUMPDEST 00002750: PUSH1 0x20 00002752: DUP1 00002753: DUP3 00002754: MSTORE 00002755: PUSH1 0x1e 00002757: SWAP1 00002758: DUP3 00002759: ADD 0000275a: MSTORE 0000275b: PUSH32 0x496e73756666696369656e742067617320746f2070617920616d6f756e740000 0000277c: PUSH1 0x40 0000277e: DUP3 0000277f: ADD 00002780: MSTORE 00002781: PUSH1 0x60 00002783: ADD 00002784: SWAP1 00002785: JUMP 00002786: JUMPDEST 00002787: PUSH1 0x20 00002789: DUP1 0000278a: DUP3 0000278b: MSTORE 0000278c: PUSH1 0x16 0000278e: SWAP1 0000278f: DUP3 00002790: ADD 00002791: MSTORE 00002792: PUSH22 0x496e70757420746f6b656e73206e6f74207573656421 000027a9: PUSH1 0x50 000027ab: SHL 000027ac: PUSH1 0x40 000027ae: DUP3 000027af: ADD 000027b0: MSTORE 000027b1: PUSH1 0x60 000027b3: ADD 000027b4: SWAP1 000027b5: JUMP 000027b6: JUMPDEST 000027b7: PUSH1 0x20 000027b9: DUP1 000027ba: DUP3 000027bb: MSTORE 000027bc: PUSH1 0x25 000027be: SWAP1 000027bf: DUP3 000027c0: ADD 000027c1: MSTORE 000027c2: PUSH32 0x43616e6e6f7420776974686472617720696e73696465206c6f636b6f75742070 000027e3: PUSH1 0x40 000027e5: DUP3 000027e6: ADD 000027e7: MSTORE 000027e8: PUSH5 0x195c9a5bd9 000027ee: PUSH1 0xda 000027f0: SHL 000027f1: PUSH1 0x60 000027f3: DUP3 000027f4: ADD 000027f5: MSTORE 000027f6: PUSH1 0x80 000027f8: ADD 000027f9: SWAP1 000027fa: JUMP 000027fb: JUMPDEST 000027fc: PUSH1 0x20 000027fe: DUP1 000027ff: DUP3 00002800: MSTORE 00002801: PUSH1 0x34 00002803: SWAP1 00002804: DUP3 00002805: ADD 00002806: MSTORE 00002807: PUSH32 0x5377617020616374696f6e20646964206e6f74207472616e73666572206f7574 00002828: PUSH1 0x40 0000282a: DUP3 0000282b: ADD 0000282c: MSTORE 0000282d: PUSH20 0x383aba103a37b5b2b739903a37903a3930b232b9 00002842: PUSH1 0x61 00002844: SHL 00002845: PUSH1 0x60 00002847: DUP3 00002848: ADD 00002849: MSTORE 0000284a: PUSH1 0x80 0000284c: ADD 0000284d: SWAP1 0000284e: JUMP 0000284f: JUMPDEST 00002850: PUSH1 0x20 00002852: DUP1 00002853: DUP3 00002854: MSTORE 00002855: PUSH1 0x1a 00002857: SWAP1 00002858: DUP3 00002859: ADD 0000285a: MSTORE 0000285b: PUSH32 0x5573656420746f6f206d616e7920696e70757420746f6b656e73000000000000 0000287c: PUSH1 0x40 0000287e: DUP3 0000287f: ADD 00002880: MSTORE 00002881: PUSH1 0x60 00002883: ADD 00002884: SWAP1 00002885: JUMP 00002886: JUMPDEST 00002887: PUSH1 0x20 00002889: DUP1 0000288a: DUP3 0000288b: MSTORE 0000288c: PUSH1 0x21 0000288e: SWAP1 0000288f: DUP3 00002890: ADD 00002891: MSTORE 00002892: PUSH32 0x496e73756666696369656e742066756e647320746f2070617920666f72207478 000028b3: PUSH1 0x40 000028b5: DUP3 000028b6: ADD 000028b7: MSTORE 000028b8: PUSH1 0x37 000028ba: PUSH1 0xf9 000028bc: SHL 000028bd: PUSH1 0x60 000028bf: DUP3 000028c0: ADD 000028c1: MSTORE 000028c2: PUSH1 0x80 000028c4: ADD 000028c5: SWAP1 000028c6: JUMP 000028c7: JUMPDEST 000028c8: PUSH1 0x20 000028ca: DUP1 000028cb: DUP3 000028cc: MSTORE 000028cd: PUSH1 0x21 000028cf: SWAP1 000028d0: DUP3 000028d1: ADD 000028d2: MSTORE 000028d3: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f 000028f4: PUSH1 0x40 000028f6: DUP3 000028f7: ADD 000028f8: MSTORE 000028f9: PUSH1 0x77 000028fb: PUSH1 0xf8 000028fd: SHL 000028fe: PUSH1 0x60 00002900: DUP3 00002901: ADD 00002902: MSTORE 00002903: PUSH1 0x80 00002905: ADD 00002906: SWAP1 00002907: JUMP 00002908: JUMPDEST 00002909: PUSH1 0x20 0000290b: DUP1 0000290c: DUP3 0000290d: MSTORE 0000290e: PUSH1 0x21 00002910: SWAP1 00002911: DUP3 00002912: ADD 00002913: MSTORE 00002914: PUSH32 0x4e6f2066756e64732070726f766964656420666f7220676173206465706f7369 00002935: PUSH1 0x40 00002937: DUP3 00002938: ADD 00002939: MSTORE 0000293a: PUSH1 0x1d 0000293c: PUSH1 0xfa 0000293e: SHL 0000293f: PUSH1 0x60 00002941: DUP3 00002942: ADD 00002943: MSTORE 00002944: PUSH1 0x80 00002946: ADD 00002947: SWAP1 00002948: JUMP 00002949: JUMPDEST 0000294a: PUSH1 0x20 0000294c: DUP1 0000294d: DUP3 0000294e: MSTORE 0000294f: PUSH1 0x29 00002951: SWAP1 00002952: DUP3 00002953: ADD 00002954: MSTORE 00002955: PUSH32 0x43616e206f6e6c792062652063616c6c656420627920736574746c656d656e74 00002976: PUSH1 0x40 00002978: DUP3 00002979: ADD 0000297a: MSTORE 0000297b: PUSH9 0x0818dbdb9d1c9858dd 00002985: PUSH1 0xba 00002987: SHL 00002988: PUSH1 0x60 0000298a: DUP3 0000298b: ADD 0000298c: MSTORE 0000298d: PUSH1 0x80 0000298f: ADD 00002990: SWAP1 00002991: JUMP 00002992: JUMPDEST 00002993: PUSH1 0x20 00002995: DUP1 00002996: DUP3 00002997: MSTORE 00002998: PUSH1 0x09 0000299a: SWAP1 0000299b: DUP3 0000299c: ADD 0000299d: MSTORE 0000299e: PUSH9 0x4e6f742072656c6179 000029a8: PUSH1 0xb8 000029aa: SHL 000029ab: PUSH1 0x40 000029ad: DUP3 000029ae: ADD 000029af: MSTORE 000029b0: PUSH1 0x60 000029b2: ADD 000029b3: SWAP1 000029b4: JUMP 000029b5: JUMPDEST 000029b6: PUSH1 0x20 000029b8: DUP1 000029b9: DUP3 000029ba: MSTORE 000029bb: PUSH1 0x1d 000029bd: SWAP1 000029be: DUP3 000029bf: ADD 000029c0: MSTORE 000029c1: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 000029e2: PUSH1 0x40 000029e4: DUP3 000029e5: ADD 000029e6: MSTORE 000029e7: PUSH1 0x60 000029e9: ADD 000029ea: SWAP1 000029eb: JUMP 000029ec: JUMPDEST 000029ed: PUSH1 0x20 000029ef: DUP1 000029f0: DUP3 000029f1: MSTORE 000029f2: PUSH1 0x13 000029f4: SWAP1 000029f5: DUP3 000029f6: ADD 000029f7: MSTORE 000029f8: PUSH19 0x105b1c9958591e481a5b9a5d1a585b1a5e9959 00002a0c: PUSH1 0x6a 00002a0e: SHL 00002a0f: PUSH1 0x40 00002a11: DUP3 00002a12: ADD 00002a13: MSTORE 00002a14: PUSH1 0x60 00002a16: ADD 00002a17: SWAP1 00002a18: JUMP 00002a19: JUMPDEST 00002a1a: PUSH1 0x20 00002a1c: DUP1 00002a1d: DUP3 00002a1e: MSTORE 00002a1f: PUSH1 0x18 00002a21: SWAP1 00002a22: DUP3 00002a23: ADD 00002a24: MSTORE 00002a25: PUSH32 0x43616e6e6f74207769746864726177203020616d6f756e740000000000000000 00002a46: PUSH1 0x40 00002a48: DUP3 00002a49: ADD 00002a4a: MSTORE 00002a4b: PUSH1 0x60 00002a4d: ADD 00002a4e: SWAP1 00002a4f: JUMP 00002a50: JUMPDEST 00002a51: PUSH1 0x20 00002a53: DUP1 00002a54: DUP3 00002a55: MSTORE 00002a56: PUSH1 0x2a 00002a58: SWAP1 00002a59: DUP3 00002a5a: ADD 00002a5b: MSTORE 00002a5c: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00002a7d: PUSH1 0x40 00002a7f: DUP3 00002a80: ADD 00002a81: MSTORE 00002a82: PUSH10 0x1bdd081cdd58d8d95959 00002a8d: PUSH1 0xb2 00002a8f: SHL 00002a90: PUSH1 0x60 00002a92: DUP3 00002a93: ADD 00002a94: MSTORE 00002a95: PUSH1 0x80 00002a97: ADD 00002a98: SWAP1 00002a99: JUMP 00002a9a: JUMPDEST 00002a9b: PUSH1 0x20 00002a9d: DUP1 00002a9e: DUP3 00002a9f: MSTORE 00002aa0: PUSH1 0x2d 00002aa2: SWAP1 00002aa3: DUP3 00002aa4: ADD 00002aa5: MSTORE 00002aa6: PUSH32 0x6661696c6564207377617020616374696f6e20646964206e6f7420726566756e 00002ac7: PUSH1 0x40 00002ac9: DUP3 00002aca: ADD 00002acb: MSTORE 00002acc: PUSH13 0x6420696e7075742066756e6473 00002ada: PUSH1 0x98 00002adc: SHL 00002add: PUSH1 0x60 00002adf: DUP3 00002ae0: ADD 00002ae1: MSTORE 00002ae2: PUSH1 0x80 00002ae4: ADD 00002ae5: SWAP1 00002ae6: JUMP 00002ae7: JUMPDEST 00002ae8: PUSH1 0x20 00002aea: DUP1 00002aeb: DUP3 00002aec: MSTORE 00002aed: PUSH1 0x09 00002aef: SWAP1 00002af0: DUP3 00002af1: ADD 00002af2: MSTORE 00002af3: PUSH9 0x2737ba1030b236b4b7 00002afd: PUSH1 0xb9 00002aff: SHL 00002b00: PUSH1 0x40 00002b02: DUP3 00002b03: ADD 00002b04: MSTORE 00002b05: PUSH1 0x60 00002b07: ADD 00002b08: SWAP1 00002b09: JUMP 00002b0a: JUMPDEST 00002b0b: SWAP3 00002b0c: DUP4 00002b0d: MSTORE 00002b0e: PUSH1 0x20 00002b10: DUP4 00002b11: ADD 00002b12: SWAP2 00002b13: SWAP1 00002b14: SWAP2 00002b15: MSTORE 00002b16: PUSH1 0x01 00002b18: PUSH1 0x01 00002b1a: PUSH1 0xa0 00002b1c: SHL 00002b1d: SUB 00002b1e: AND 00002b1f: PUSH1 0x40 00002b21: DUP3 00002b22: ADD 00002b23: MSTORE 00002b24: PUSH1 0x60 00002b26: ADD 00002b27: SWAP1 00002b28: JUMP 00002b29: JUMPDEST 00002b2a: PUSH1 0x80 00002b2c: DUP2 00002b2d: ADD 00002b2e: PUSH2 0x0468 00002b31: DUP3 00002b32: DUP5 00002b33: PUSH2 0x2518 00002b36: JUMP 00002b37: JUMPDEST 00002b38: DUP3 00002b39: DUP2 00002b3a: MSTORE 00002b3b: PUSH1 0xa0 00002b3d: DUP2 00002b3e: ADD 00002b3f: PUSH2 0x0a13 00002b42: PUSH1 0x20 00002b44: DUP4 00002b45: ADD 00002b46: DUP5 00002b47: PUSH2 0x2518 00002b4a: JUMP 00002b4b: JUMPDEST 00002b4c: SWAP2 00002b4d: DUP3 00002b4e: MSTORE 00002b4f: PUSH1 0x01 00002b51: PUSH1 0x01 00002b53: PUSH1 0xa0 00002b55: SHL 00002b56: SUB 00002b57: AND 00002b58: PUSH1 0x20 00002b5a: DUP3 00002b5b: ADD 00002b5c: MSTORE 00002b5d: PUSH1 0x40 00002b5f: ADD 00002b60: SWAP1 00002b61: JUMP 00002b62: JUMPDEST 00002b63: PUSH1 0x00 00002b65: PUSH2 0x0140 00002b68: DUP6 00002b69: CALLDATALOAD 00002b6a: PUSH2 0x2b72 00002b6d: DUP2 00002b6e: PUSH2 0x2e73 00002b71: JUMP 00002b72: JUMPDEST 00002b73: PUSH1 0x01 00002b75: PUSH1 0x01 00002b77: PUSH1 0xa0 00002b79: SHL 00002b7a: SUB 00002b7b: AND 00002b7c: DUP4 00002b7d: MSTORE 00002b7e: PUSH1 0x20 00002b80: DUP7 00002b81: ADD 00002b82: CALLDATALOAD 00002b83: PUSH2 0x2b8b 00002b86: DUP2 00002b87: PUSH2 0x2eab 00002b8a: JUMP 00002b8b: JUMPDEST 00002b8c: PUSH1 0x01 00002b8e: PUSH1 0x01 00002b90: PUSH1 0x80 00002b92: SHL 00002b93: SUB 00002b94: AND 00002b95: PUSH1 0x20 00002b97: DUP5 00002b98: ADD 00002b99: MSTORE 00002b9a: PUSH1 0x40 00002b9c: DUP7 00002b9d: ADD 00002b9e: CALLDATALOAD 00002b9f: PUSH2 0x2ba7 00002ba2: DUP2 00002ba3: PUSH2 0x2e96 00002ba6: JUMP 00002ba7: JUMPDEST 00002ba8: PUSH1 0x01 00002baa: PUSH1 0x01 00002bac: PUSH1 0x70 00002bae: SHL 00002baf: SUB 00002bb0: AND 00002bb1: PUSH1 0x40 00002bb3: DUP5 00002bb4: ADD 00002bb5: MSTORE 00002bb6: PUSH1 0x60 00002bb8: DUP7 00002bb9: ADD 00002bba: CALLDATALOAD 00002bbb: PUSH2 0x2bc3 00002bbe: DUP2 00002bbf: PUSH2 0x2ec0 00002bc2: JUMP 00002bc3: JUMPDEST 00002bc4: PUSH1 0xff 00002bc6: AND 00002bc7: PUSH1 0x60 00002bc9: DUP5 00002bca: ADD 00002bcb: MSTORE 00002bcc: PUSH2 0x2bd8 00002bcf: PUSH1 0x80 00002bd1: DUP8 00002bd2: ADD 00002bd3: DUP8 00002bd4: PUSH2 0x2d7e 00002bd7: JUMP 00002bd8: JUMPDEST 00002bd9: PUSH2 0x2be5 00002bdc: PUSH1 0x80 00002bde: DUP6 00002bdf: ADD 00002be0: DUP3 00002be1: PUSH2 0x250a 00002be4: JUMP 00002be5: JUMPDEST 00002be6: POP 00002be7: PUSH2 0x2bf6 00002bea: PUSH1 0xa0 00002bec: DUP5 00002bed: ADD 00002bee: PUSH1 0xa0 00002bf0: DUP9 00002bf1: ADD 00002bf2: PUSH2 0x2558 00002bf5: JUMP 00002bf6: JUMPDEST 00002bf7: PUSH2 0x2c06 00002bfa: PUSH1 0xe0 00002bfc: DUP5 00002bfd: ADD 00002bfe: PUSH1 0xe0 00002c00: DUP9 00002c01: ADD 00002c02: PUSH2 0x2558 00002c05: JUMP 00002c06: JUMPDEST 00002c07: DUP1 00002c08: PUSH2 0x0120 00002c0b: DUP5 00002c0c: ADD 00002c0d: MSTORE 00002c0e: PUSH2 0x2c19 00002c11: DUP5 00002c12: DUP3 00002c13: DUP6 00002c14: ADD 00002c15: PUSH2 0x2643 00002c18: JUMP 00002c19: JUMPDEST 00002c1a: PUSH2 0x2c24 00002c1d: DUP6 00002c1e: DUP3 00002c1f: DUP9 00002c20: PUSH2 0x2d8d 00002c23: JUMP 00002c24: JUMPDEST 00002c25: PUSH1 0x1f 00002c27: NOT 00002c28: PUSH1 0x1f 00002c2a: DUP7 00002c2b: ADD 00002c2c: AND 00002c2d: DUP2 00002c2e: ADD 00002c2f: SWAP3 00002c30: POP 00002c31: POP 00002c32: POP 00002c33: SWAP5 00002c34: SWAP4 00002c35: POP 00002c36: POP 00002c37: POP 00002c38: POP 00002c39: JUMP 00002c3a: JUMPDEST 00002c3b: PUSH1 0x00 00002c3d: PUSH2 0x0160 00002c40: PUSH1 0x01 00002c42: DUP1 00002c43: PUSH1 0xa0 00002c45: SHL 00002c46: SUB 00002c47: DUP1 00002c48: DUP8 00002c49: MLOAD 00002c4a: AND 00002c4b: DUP5 00002c4c: MSTORE 00002c4d: PUSH1 0x01 00002c4f: PUSH1 0x01 00002c51: PUSH1 0x80 00002c53: SHL 00002c54: SUB 00002c55: PUSH1 0x20 00002c57: DUP9 00002c58: ADD 00002c59: MLOAD 00002c5a: AND 00002c5b: PUSH1 0x20 00002c5d: DUP6 00002c5e: ADD 00002c5f: MSTORE 00002c60: PUSH1 0x40 00002c62: DUP8 00002c63: ADD 00002c64: MLOAD 00002c65: PUSH1 0x01 00002c67: PUSH1 0x01 00002c69: PUSH1 0x70 00002c6b: SHL 00002c6c: SUB 00002c6d: DUP2 00002c6e: MLOAD 00002c6f: AND 00002c70: PUSH1 0x40 00002c72: DUP7 00002c73: ADD 00002c74: MSTORE 00002c75: PUSH1 0xff 00002c77: PUSH1 0x20 00002c79: DUP3 00002c7a: ADD 00002c7b: MLOAD 00002c7c: AND 00002c7d: PUSH1 0x60 00002c7f: DUP7 00002c80: ADD 00002c81: MSTORE 00002c82: POP 00002c83: PUSH1 0x60 00002c85: DUP8 00002c86: ADD 00002c87: MLOAD 00002c88: PUSH2 0x2c94 00002c8b: PUSH1 0x80 00002c8d: DUP7 00002c8e: ADD 00002c8f: DUP3 00002c90: PUSH2 0x250a 00002c93: JUMP 00002c94: JUMPDEST 00002c95: POP 00002c96: PUSH1 0x80 00002c98: DUP8 00002c99: ADD 00002c9a: MLOAD 00002c9b: PUSH2 0x2ca7 00002c9e: PUSH1 0xa0 00002ca0: DUP7 00002ca1: ADD 00002ca2: DUP3 00002ca3: PUSH2 0x2590 00002ca6: JUMP 00002ca7: JUMPDEST 00002ca8: POP 00002ca9: PUSH1 0xa0 00002cab: DUP8 00002cac: ADD 00002cad: MLOAD 00002cae: PUSH2 0x2cba 00002cb1: PUSH1 0xe0 00002cb3: DUP7 00002cb4: ADD 00002cb5: DUP3 00002cb6: PUSH2 0x2590 00002cb9: JUMP 00002cba: JUMPDEST 00002cbb: POP 00002cbc: DUP6 00002cbd: AND 00002cbe: PUSH2 0x0120 00002cc1: DUP5 00002cc2: ADD 00002cc3: MSTORE 00002cc4: PUSH2 0x0140 00002cc7: DUP4 00002cc8: ADD 00002cc9: DUP2 00002cca: SWAP1 00002ccb: MSTORE 00002ccc: PUSH2 0x10e0 00002ccf: DUP2 00002cd0: DUP5 00002cd1: ADD 00002cd2: DUP6 00002cd3: PUSH2 0x24de 00002cd6: JUMP 00002cd7: JUMPDEST 00002cd8: PUSH1 0x00 00002cda: DUP4 00002cdb: DUP3 00002cdc: MSTORE 00002cdd: PUSH1 0x40 00002cdf: PUSH1 0x20 00002ce1: DUP4 00002ce2: ADD 00002ce3: MSTORE 00002ce4: PUSH2 0x1d97 00002ce7: PUSH1 0x40 00002ce9: DUP4 00002cea: ADD 00002ceb: DUP5 00002cec: PUSH2 0x24de 00002cef: JUMP 00002cf0: JUMPDEST 00002cf1: PUSH1 0x00 00002cf3: DUP5 00002cf4: DUP3 00002cf5: MSTORE 00002cf6: DUP4 00002cf7: PUSH1 0x20 00002cf9: DUP4 00002cfa: ADD 00002cfb: MSTORE 00002cfc: PUSH1 0x60 00002cfe: PUSH1 0x40 00002d00: DUP4 00002d01: ADD 00002d02: MSTORE 00002d03: PUSH2 0x07b4 00002d06: PUSH1 0x60 00002d08: DUP4 00002d09: ADD 00002d0a: DUP5 00002d0b: PUSH2 0x24de 00002d0e: JUMP 00002d0f: JUMPDEST 00002d10: SWAP4 00002d11: DUP5 00002d12: MSTORE 00002d13: PUSH1 0x20 00002d15: DUP5 00002d16: ADD 00002d17: SWAP3 00002d18: SWAP1 00002d19: SWAP3 00002d1a: MSTORE 00002d1b: PUSH1 0x01 00002d1d: PUSH1 0x01 00002d1f: PUSH1 0x80 00002d21: SHL 00002d22: SUB 00002d23: AND 00002d24: PUSH1 0x40 00002d26: DUP4 00002d27: ADD 00002d28: MSTORE 00002d29: PUSH1 0x60 00002d2b: DUP3 00002d2c: ADD 00002d2d: MSTORE 00002d2e: PUSH1 0x80 00002d30: ADD 00002d31: SWAP1 00002d32: JUMP 00002d33: JUMPDEST 00002d34: PUSH1 0x40 00002d36: MLOAD 00002d37: DUP2 00002d38: DUP2 00002d39: ADD 00002d3a: PUSH8 0xffffffffffffffff 00002d43: DUP2 00002d44: GT 00002d45: DUP3 00002d46: DUP3 00002d47: LT 00002d48: OR 00002d49: ISZERO 00002d4a: PUSH2 0x2d52 00002d4d: JUMPI 00002d4e: PUSH1 0x00 00002d50: DUP1 00002d51: REVERT 00002d52: JUMPDEST 00002d53: PUSH1 0x40 00002d55: MSTORE 00002d56: SWAP2 00002d57: SWAP1 00002d58: POP 00002d59: JUMP 00002d5a: JUMPDEST 00002d5b: PUSH1 0x00 00002d5d: PUSH8 0xffffffffffffffff 00002d66: DUP3 00002d67: GT 00002d68: ISZERO 00002d69: PUSH2 0x2d70 00002d6c: JUMPI 00002d6d: DUP1 00002d6e: DUP2 00002d6f: REVERT 00002d70: JUMPDEST 00002d71: POP 00002d72: PUSH1 0x1f 00002d74: ADD 00002d75: PUSH1 0x1f 00002d77: NOT 00002d78: AND 00002d79: PUSH1 0x20 00002d7b: ADD 00002d7c: SWAP1 00002d7d: JUMP 00002d7e: JUMPDEST 00002d7f: PUSH1 0x00 00002d81: PUSH2 0x0a13 00002d84: PUSH1 0x20 00002d86: DUP5 00002d87: ADD 00002d88: DUP5 00002d89: PUSH2 0x202f 00002d8c: JUMP 00002d8d: JUMPDEST 00002d8e: DUP3 00002d8f: DUP2 00002d90: DUP4 00002d91: CALLDATACOPY 00002d92: POP 00002d93: PUSH1 0x00 00002d95: SWAP2 00002d96: ADD 00002d97: MSTORE 00002d98: JUMP 00002d99: JUMPDEST 00002d9a: PUSH1 0x00 00002d9c: JUMPDEST 00002d9d: DUP4 00002d9e: DUP2 00002d9f: LT 00002da0: ISZERO 00002da1: PUSH2 0x2db4 00002da4: JUMPI 00002da5: DUP2 00002da6: DUP2 00002da7: ADD 00002da8: MLOAD 00002da9: DUP4 00002daa: DUP3 00002dab: ADD 00002dac: MSTORE 00002dad: PUSH1 0x20 00002daf: ADD 00002db0: PUSH2 0x2d9c 00002db3: JUMP 00002db4: JUMPDEST 00002db5: DUP4 00002db6: DUP2 00002db7: GT 00002db8: ISZERO 00002db9: PUSH2 0x0d72 00002dbc: JUMPI 00002dbd: POP 00002dbe: POP 00002dbf: PUSH1 0x00 00002dc1: SWAP2 00002dc2: ADD 00002dc3: MSTORE 00002dc4: JUMP 00002dc5: JUMPDEST 00002dc6: PUSH1 0xe0 00002dc8: SHR 00002dc9: SWAP1 00002dca: JUMP 00002dcb: JUMPDEST 00002dcc: PUSH1 0x00 00002dce: PUSH1 0x44 00002dd0: RETURNDATASIZE 00002dd1: LT 00002dd2: ISZERO 00002dd3: PUSH2 0x2ddb 00002dd6: JUMPI 00002dd7: PUSH2 0x0b10 00002dda: JUMP 00002ddb: JUMPDEST 00002ddc: PUSH1 0x04 00002dde: DUP2 00002ddf: DUP3 00002de0: RETURNDATACOPY 00002de1: PUSH4 0x08c379a0 00002de6: PUSH2 0x2def 00002de9: DUP3 00002dea: MLOAD 00002deb: PUSH2 0x2dc5 00002dee: JUMP 00002def: JUMPDEST 00002df0: EQ 00002df1: PUSH2 0x2df9 00002df4: JUMPI 00002df5: PUSH2 0x0b10 00002df8: JUMP 00002df9: JUMPDEST 00002dfa: PUSH1 0x40 00002dfc: MLOAD 00002dfd: RETURNDATASIZE 00002dfe: PUSH1 0x03 00002e00: NOT 00002e01: ADD 00002e02: PUSH1 0x04 00002e04: DUP3 00002e05: RETURNDATACOPY 00002e06: DUP1 00002e07: MLOAD 00002e08: RETURNDATASIZE 00002e09: PUSH8 0xffffffffffffffff 00002e12: DUP2 00002e13: PUSH1 0x24 00002e15: DUP5 00002e16: ADD 00002e17: GT 00002e18: DUP2 00002e19: DUP5 00002e1a: GT 00002e1b: OR 00002e1c: ISZERO 00002e1d: PUSH2 0x2e29 00002e20: JUMPI 00002e21: POP 00002e22: POP 00002e23: POP 00002e24: POP 00002e25: PUSH2 0x0b10 00002e28: JUMP 00002e29: JUMPDEST 00002e2a: DUP3 00002e2b: DUP5 00002e2c: ADD 00002e2d: SWAP2 00002e2e: POP 00002e2f: DUP2 00002e30: MLOAD 00002e31: SWAP3 00002e32: POP 00002e33: DUP1 00002e34: DUP4 00002e35: GT 00002e36: ISZERO 00002e37: PUSH2 0x2e43 00002e3a: JUMPI 00002e3b: POP 00002e3c: POP 00002e3d: POP 00002e3e: POP 00002e3f: PUSH2 0x0b10 00002e42: JUMP 00002e43: JUMPDEST 00002e44: POP 00002e45: RETURNDATASIZE 00002e46: DUP4 00002e47: ADD 00002e48: PUSH1 0x20 00002e4a: DUP4 00002e4b: DUP4 00002e4c: ADD 00002e4d: ADD 00002e4e: GT 00002e4f: ISZERO 00002e50: PUSH2 0x2e5b 00002e53: JUMPI 00002e54: POP 00002e55: POP 00002e56: POP 00002e57: PUSH2 0x0b10 00002e5a: JUMP 00002e5b: JUMPDEST 00002e5c: PUSH1 0x1f 00002e5e: SWAP2 00002e5f: SWAP1 00002e60: SWAP2 00002e61: ADD 00002e62: PUSH1 0x1f 00002e64: NOT 00002e65: AND 00002e66: DUP2 00002e67: ADD 00002e68: PUSH1 0x20 00002e6a: ADD 00002e6b: PUSH1 0x40 00002e6d: MSTORE 00002e6e: SWAP2 00002e6f: POP 00002e70: POP 00002e71: SWAP1 00002e72: JUMP 00002e73: JUMPDEST 00002e74: PUSH1 0x01 00002e76: PUSH1 0x01 00002e78: PUSH1 0xa0 00002e7a: SHL 00002e7b: SUB 00002e7c: DUP2 00002e7d: AND 00002e7e: DUP2 00002e7f: EQ 00002e80: PUSH2 0x060a 00002e83: JUMPI 00002e84: PUSH1 0x00 00002e86: DUP1 00002e87: REVERT 00002e88: JUMPDEST 00002e89: DUP1 00002e8a: ISZERO 00002e8b: ISZERO 00002e8c: DUP2 00002e8d: EQ 00002e8e: PUSH2 0x060a 00002e91: JUMPI 00002e92: PUSH1 0x00 00002e94: DUP1 00002e95: REVERT 00002e96: JUMPDEST 00002e97: PUSH1 0x01 00002e99: PUSH1 0x01 00002e9b: PUSH1 0x70 00002e9d: SHL 00002e9e: SUB 00002e9f: DUP2 00002ea0: AND 00002ea1: DUP2 00002ea2: EQ 00002ea3: PUSH2 0x060a 00002ea6: JUMPI 00002ea7: PUSH1 0x00 00002ea9: DUP1 00002eaa: REVERT 00002eab: JUMPDEST 00002eac: PUSH1 0x01 00002eae: PUSH1 0x01 00002eb0: PUSH1 0x80 00002eb2: SHL 00002eb3: SUB 00002eb4: DUP2 00002eb5: AND 00002eb6: DUP2 00002eb7: EQ 00002eb8: PUSH2 0x060a 00002ebb: JUMPI 00002ebc: PUSH1 0x00 00002ebe: DUP1 00002ebf: REVERT 00002ec0: JUMPDEST 00002ec1: PUSH1 0xff 00002ec3: DUP2 00002ec4: AND 00002ec5: DUP2 00002ec6: EQ 00002ec7: PUSH2 0x060a 00002eca: JUMPI 00002ecb: PUSH1 0x00 00002ecd: DUP1 00002ece: REVERT 00002ecf: INVALID 00002ed0: COINBASE 00002ed1: PUSH21 0x74656d7074696e6720746f2063616c6c20756e6170 00002ee7: PUSH17 0x726f76656420616374696f6e2073637269 00002ef9: PUSH17 0x74496e73756666696369656e7420746f6b 00002f0b: PUSH6 0x6e2062616c61 00002f12: PUSH15 0x636520666f72207472616465a49807 00002f22: KECCAK256 00002f23: TLOAD 00002f24: UNKNOWN(0xE4) 00002f25: UNKNOWN(0xD3) 00002f26: SSTORE 00002f27: MULMOD 00002f28: UNKNOWN(0x2E) 00002f29: CREATE2 00002f2a: UNKNOWN(0xA8) 00002f2b: LOG1 00002f2c: DUP16 00002f2d: JUMP 00002f2e: UNKNOWN(0xE8) 00002f2f: SWAP2 00002f30: EXTCODECOPY 00002f31: DELEGATECALL 00002f32: LOG2 00002f33: ADD 00002f34: UNKNOWN(0xFB) 00002f35: UNKNOWN(0xE2) 00002f36: DUP8 00002f37: DUP3 00002f38: JUMPDEST 00002f39: MULMOD 00002f3a: JUMP 00002f3b: SWAP4 00002f3c: UNKNOWN(0xC2) 00002f3d: OR 00002f3e: PUSH22 0x496e73756666696369656e74207370656e6420616c6c 00002f55: PUSH16 0x77616e636520666f72207472616465a2 00002f66: PUSH5 0x6970667358 00002f6c: UNKNOWN(0x22) 00002f6d: SLT 00002f6e: KECCAK256 00002f6f: UNKNOWN(0xCD) 00002f70: UNKNOWN(0x26) 00002f71: PUSH20 0x7037a4034b1884ec1d23b9838c5fb744950e9800 00002f86: SSTORE 00002f87: DUP2 00002f88: UNKNOWN(0xCF) 00002f89: CLZ 00002f8a: DIV 00002f8b: LOG2 00002f8c: CALLCODE 00002f8d: UNKNOWN(0xF9) 00002f8e: UNKNOWN(0x1F) 00002f8f: PUSH5 0x736f6c6343 00002f95: STOP 00002f96: MOD 00002f97: ADDMOD 00002f98: STOP 00002f99: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b
call_targets:
0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf
target_varies:
no
classification:
constant_target
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x6ee56fb19b8ef9b2d336c55cc9e1b8fb79472ecf"
],
"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": "0xc3f909d4",
"selector": "0xc3f909d4",
"calldata_variants": [
"0xc3f909d4",
"0xc3f909d40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe63ab1e9",
"selector": "0xe63ab1e9",
"calldata_variants": [
"0xe63ab1e9",
"0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe959b38a",
"selector": "0xe959b38a",
"calldata_variants": [
"0xe959b38a",
"0xe959b38a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea9c727b",
"selector": "0xea9c727b",
"calldata_variants": [
"0xea9c727b",
"0xea9c727b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc8926d3",
"selector": "0xfc8926d3",
"calldata_variants": [
"0xfc8926d3",
"0xfc8926d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x75e9aac8",
"selector": "0x75e9aac8",
"calldata_variants": [
"0x75e9aac8",
"0x75e9aac80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8d0b303d",
"selector": "0x8d0b303d",
"calldata_variants": [
"0x8d0b303d",
"0x8d0b303d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1075,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 1694,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 2526,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 6,
"untrusted_delegatecall_count": 6
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b
call_targets:
0x4a1dc57d949db46a456d0104f437ed87ee24422f
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x4a1dc57d949db46a456d0104f437ed87ee24422f"
],
"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": "0xc3f909d4",
"selector": "0xc3f909d4",
"calldata_variants": [
"0xc3f909d4",
"0xc3f909d40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe63ab1e9",
"selector": "0xe63ab1e9",
"calldata_variants": [
"0xe63ab1e9",
"0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe959b38a",
"selector": "0xe959b38a",
"calldata_variants": [
"0xe959b38a",
"0xe959b38a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea9c727b",
"selector": "0xea9c727b",
"calldata_variants": [
"0xea9c727b",
"0xea9c727b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc8926d3",
"selector": "0xfc8926d3",
"calldata_variants": [
"0xfc8926d3",
"0xfc8926d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x75e9aac8",
"selector": "0x75e9aac8",
"calldata_variants": [
"0x75e9aac8",
"0x75e9aac80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8d0b303d",
"selector": "0x8d0b303d",
"calldata_variants": [
"0x8d0b303d",
"0x8d0b303d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1372,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3267,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4578,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 10,
"guards_detected": []
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b
call_targets:
0x4a1dc57d949db46a456d0104f437ed87ee24422f
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xfc70eddedd80a1cbba6112547646ff978e48c789b46ed62470f9d8f7a17b684b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x4a1dc57d949db46a456d0104f437ed87ee24422f"
],
"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": "0xc3f909d4",
"selector": "0xc3f909d4",
"calldata_variants": [
"0xc3f909d4",
"0xc3f909d40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe63ab1e9",
"selector": "0xe63ab1e9",
"calldata_variants": [
"0xe63ab1e9",
"0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe959b38a",
"selector": "0xe959b38a",
"calldata_variants": [
"0xe959b38a",
"0xe959b38a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea9c727b",
"selector": "0xea9c727b",
"calldata_variants": [
"0xea9c727b",
"0xea9c727b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc8926d3",
"selector": "0xfc8926d3",
"calldata_variants": [
"0xfc8926d3",
"0xfc8926d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x75e9aac8",
"selector": "0x75e9aac8",
"calldata_variants": [
"0x75e9aac8",
"0x75e9aac80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8d0b303d",
"selector": "0x8d0b303d",
"calldata_variants": [
"0x8d0b303d",
"0x8d0b303d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1372,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3267,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4578,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 10,
"guards_detected": [],
"untrusted_call_count": 10
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 6
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x8b6fb4c0b31562f5ca5e6bb8494af85b85278290f8939a74f38c726e0164e06e
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x8b6fb4c0b31562f5ca5e6bb8494af85b85278290f8939a74f38c726e0164e06e",
"confirmed": false,
"trace_mode": "structLogs",
"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": "0xc3f909d4",
"selector": "0xc3f909d4",
"calldata_variants": [
"0xc3f909d4",
"0xc3f909d40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe63ab1e9",
"selector": "0xe63ab1e9",
"calldata_variants": [
"0xe63ab1e9",
"0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe959b38a",
"selector": "0xe959b38a",
"calldata_variants": [
"0xe959b38a",
"0xe959b38a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea9c727b",
"selector": "0xea9c727b",
"calldata_variants": [
"0xea9c727b",
"0xea9c727b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfc8926d3",
"selector": "0xfc8926d3",
"calldata_variants": [
"0xfc8926d3",
"0xfc8926d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x75e9aac8",
"selector": "0x75e9aac8",
"calldata_variants": [
"0x75e9aac8",
"0x75e9aac80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8d0b303d",
"selector": "0x8d0b303d",
"calldata_variants": [
"0x8d0b303d",
"0x8d0b303d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 1
}
|
| medium | auth | codex | Orders lack trader authorization; relays can execute arbitrary swaps | 75 | no | — |
viewevidence_json{
"evidence": "fill accepts an order from the relayer and only checks balances/allowances; Types.Order contains no signature/nonce fields.",
"locations": [
"contracts/SwapSettlement.sol:95",
"contracts/SwapSettlement.sol:103",
"contracts/Types.sol:33"
],
"recommendation": "Require an EIP-712 signature from the trader (including nonce and deadline) and verify it in fill before executing. Alternatively require order.trader == msg.sender for direct execution and add explicit order approval logic.",
"exploit_scenario": "Any address with RELAY_ROLE can call fill with a crafted order for any trader who has granted allowance and deposited gas. Because no signature/nonce is verified, a malicious or compromised relay can swap the trader\u2019s tokens into unwanted assets or at unfavorable rates while charging gas/fees."
}
|
| medium | upgradeability | codex | Public initializers can be seized if deployment is not atomic | 75 | no | — |
viewevidence_json{
"evidence": "initialize functions are public and only guarded by the initializer flag.",
"locations": [
"contracts/SwapSettlement.sol:61",
"contracts/swapper/uniswap/Uniswapper.sol:25",
"contracts/swapper/uniswapRouting/RoutedSwap.sol:27"
],
"recommendation": "Call initialize atomically during deployment, and/or add a constructor to disable initializers on implementations. Consider restricting initialize with a deployer/admin check when not using a proxy.",
"exploit_scenario": "If any of these contracts/proxies are deployed without calling initialize in the same transaction, an attacker can call initialize first, gaining admin/relay roles and configuring malicious scripts or parameters."
}
|
| low | other | codex | ERC20 transfer/approve return values are not checked in swap scripts | 65 | no | — |
viewevidence_json{
"evidence": "Uniswapper uses raw transfer without checking return values; RoutedSwap uses approve without checking return values.",
"locations": [
"contracts/swapper/uniswap/Uniswapper.sol:92",
"contracts/swapper/uniswap/Uniswapper.sol:152",
"contracts/swapper/uniswap/Uniswapper.sol:183",
"contracts/swapper/uniswapRouting/RoutedSwap.sol:34",
"contracts/swapper/uniswapRouting/RoutedSwap.sol:84"
],
"recommendation": "Use SafeERC20\u2019s safeTransfer/safeTransferFrom/safeApprove (or check return values explicitly). For approve, consider resetting to 0 before setting a new allowance.",
"exploit_scenario": "For non-standard ERC20s that return false instead of reverting, these calls may silently fail, leading to swaps executing under incorrect assumptions or refunds failing, potentially leaving funds stuck until manual recovery."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 1
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 16
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 15
}
|