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

Analysis Run

ce4d273e-c903-4f23-ab6a-43ad55bdeb64

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 6:03 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Public initializer can be front-run to hijack gateway configuration
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30440 report.consolidate complete 1 / 1 3 months ago
94039 artifact.fetch failed 1 / 3 1 week ago
94040 tool.cast_disasm complete 1 / 3 1 week ago
94041 analysis.bundle complete 1 / 3 1 week ago
94042 capability.graph complete 1 / 3 1 week ago
94043 detector.run complete 1 / 3 1 week ago
94044 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Found 2 issues: a high-risk unprotected initializer that can hijack gateway configuration, and a low-risk exit-callback spoofing vector via transferExitAndCall.
View stderr
[codex:695221] OpenAI Codex v0.77.0 (research preview)
[codex:695221] --------
[codex:695221] workdir: /tmp/codex-multi-i0hpis03
[codex:695221] model: gpt-5.2-codex
[codex:695221] provider: openai
[codex:695221] approval: never
[codex:695221] sandbox: read-only
[codex:695221] reasoning effort: xhigh
[codex:695221] reasoning summaries: auto
[codex:695221] session id: 019b68ae-70f0-7281-b9eb-eea2d2258320
[codex:695221] --------
[codex:695221] user
[codex:695221] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:695221] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:695221] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:695221] 
[codex:695221] Scope rules:
[codex:695221] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:695221] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:695221] 
[codex:695221] Output MUST be valid JSON matching the provided schema.
[codex:695221] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:695221] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:695221] 
[codex:695221] Output constraints (IMPORTANT):
[codex:695221] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:695221] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:695221] mcp startup: no servers
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Preparing to read audit instructions**
[codex:695221] exec
[codex:695221] /bin/bash -lc ls in /tmp/codex-multi-i0hpis03 succeeded in 5ms:
[codex:695221] AUDIT_BUNDLE.txt
[codex:695221] codex-output-schema.json
[codex:695221] contracts
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Reading AUDIT_BUNDLE.txt**
[codex:695221] exec
[codex:695221] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-i0hpis03 succeeded in 5ms:
[codex:695221] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:695221] 
[codex:695221] ================================================================================
[codex:695221] FILE: contracts/@openzeppelin/contracts/math/SafeMath.sol
[codex:695221] ================================================================================
[codex:695221] // SPDX-License-Identifier: MIT
[codex:695221] 
[codex:695221] pragma solidity >=0.6.0 <0.8.0;
[codex:695221] 
[codex:695221] /**
[codex:695221]  * @dev Wrappers over Solidity's arithmetic operations with added overflow
[codex:695221]  * checks.
[codex:695221]  *
[codex:695221]  * Arithmetic operations in Solidity wrap on overflow. This can easily result
[codex:695221]  * in bugs, because programmers usually assume that an overflow raises an
[codex:695221]  * error, which is the standard behavior in high level programming languages.
[codex:695221]  * `SafeMath` restores this intuition by reverting the transaction when an
[codex:695221]  * operation overflows.
[codex:695221]  *
[codex:695221]  * Using this library instead of the unchecked operations eliminates an entire
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Planning focused analysis of AUDIT_BUNDLE**
[codex:695221] exec
[codex:695221] /bin/bash -lc 'rg "''^FILE:" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-i0hpis03 succeeded in 7ms:
[codex:695221] 4:FILE: contracts/@openzeppelin/contracts/math/SafeMath.sol
[codex:695221] 222:FILE: contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol
[codex:695221] 532:FILE: contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:695221] 613:FILE: contracts/@openzeppelin/contracts/token/ERC20/SafeERC20.sol
[codex:695221] 692:FILE: contracts/@openzeppelin/contracts/utils/Address.sol
[codex:695221] 885:FILE: contracts/@openzeppelin/contracts/utils/Context.sol
[codex:695221] 913:FILE: contracts/@openzeppelin/contracts/utils/Create2.sol
[codex:695221] 976:FILE: contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol
[codex:695221] 1057:FILE: contracts/arb-bridge-eth/contracts/bridge/interfaces/IBridge.sol
[codex:695221] 1132:FILE: contracts/arb-bridge-eth/contracts/bridge/interfaces/IInbox.sol
[codex:695221] 1229:FILE: contracts/arb-bridge-eth/contracts/bridge/interfaces/IMessageProvider.sol
[codex:695221] 1259:FILE: contracts/arb-bridge-eth/contracts/bridge/interfaces/IOutbox.sol
[codex:695221] 1315:FILE: contracts/arb-bridge-eth/contracts/libraries/ProxyUtil.sol
[codex:695221] 1350:FILE: contracts/arb-bridge-eth/contracts/libraries/Whitelist.sol
[codex:695221] 1430:FILE: contracts/contracts/tokenbridge/ethereum/L1ArbitrumMessenger.sol
[codex:695221] 1583:FILE: contracts/contracts/tokenbridge/ethereum/gateway/IL1ArbitrumGateway.sol
[codex:695221] 1645:FILE: contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol
[codex:695221] 1787:FILE: contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumGateway.sol
[codex:695221] 2136:FILE: contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol
[codex:695221] 2301:FILE: contracts/contracts/tokenbridge/libraries/ERC165.sol
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Distinguishing first-party and third-party code**
[codex:695221] exec
[codex:695221] /bin/bash -lc "sed -n '1430,1582p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-i0hpis03 succeeded in 6ms:
[codex:695221] FILE: contracts/contracts/tokenbridge/ethereum/L1ArbitrumMessenger.sol
[codex:695221] ================================================================================
[codex:695221] // SPDX-License-Identifier: Apache-2.0
[codex:695221] 
[codex:695221] /*
[codex:695221]  * Copyright 2020, Offchain Labs, Inc.
[codex:695221]  *
[codex:695221]  * Licensed under the Apache License, Version 2.0 (the "License");
[codex:695221]  * you may not use this file except in compliance with the License.
[codex:695221]  * You may obtain a copy of the License at
[codex:695221]  *
[codex:695221]  *    http://www.apache.org/licenses/LICENSE-2.0
[codex:695221]  *
[codex:695221]  * Unless required by applicable law or agreed to in writing, software
[codex:695221]  * distributed under the License is distributed on an "AS IS" BASIS,
[codex:695221]  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:695221]  * See the License for the specific language governing permissions and
[codex:695221]  * limitations under the License.
[codex:695221]  */
[codex:695221] 
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Proceeding to IL1ArbitrumGateway**
[codex:695221] exec
[codex:695221] /bin/bash -lc "sed -n '1583,1644p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-i0hpis03 succeeded in 6ms:
[codex:695221] FILE: contracts/contracts/tokenbridge/ethereum/gateway/IL1ArbitrumGateway.sol
[codex:695221] ================================================================================
[codex:695221] // SPDX-License-Identifier: Apache-2.0
[codex:695221] 
[codex:695221] /*
[codex:695221]  * Copyright 2020, Offchain Labs, Inc.
[codex:695221]  *
[codex:695221]  * Licensed under the Apache License, Version 2.0 (the "License");
[codex:695221]  * you may not use this file except in compliance with the License.
[codex:695221]  * You may obtain a copy of the License at
[codex:695221]  *
[codex:695221]  *    http://www.apache.org/licenses/LICENSE-2.0
[codex:695221]  *
[codex:695221]  * Unless required by applicable law or agreed to in writing, software
[codex:695221]  * distributed under the License is distributed on an "AS IS" BASIS,
[codex:695221]  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:695221]  * See the License for the specific language governing permissions and
[codex:695221]  * limitations under the License.
[codex:695221]  */
[codex:695221] 
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Inspecting L1ArbitrumExtendedGateway**
[codex:695221] exec
[codex:695221] /bin/bash -lc "sed -n '1645,1786p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-i0hpis03 succeeded in 5ms:
[codex:695221] FILE: contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol
[codex:695221] ================================================================================
[codex:695221] // SPDX-License-Identifier: Apache-2.0
[codex:695221] 
[codex:695221] /*
[codex:695221]  * Copyright 2020, Offchain Labs, Inc.
[codex:695221]  *
[codex:695221]  * Licensed under the Apache License, Version 2.0 (the "License");
[codex:695221]  * you may not use this file except in compliance with the License.
[codex:695221]  * You may obtain a copy of the License at
[codex:695221]  *
[codex:695221]  *    http://www.apache.org/licenses/LICENSE-2.0
[codex:695221]  *
[codex:695221]  * Unless required by applicable law or agreed to in writing, software
[codex:695221]  * distributed under the License is distributed on an "AS IS" BASIS,
[codex:695221]  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:695221]  * See the License for the specific language governing permissions and
[codex:695221]  * limitations under the License.
[codex:695221]  */
[codex:695221] 
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Preparing to handle L1ArbitrumGateway**
[codex:695221] exec
[codex:695221] /bin/bash -lc "sed -n '1787,2135p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-i0hpis03 succeeded in 6ms:
[codex:695221] FILE: contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumGateway.sol
[codex:695221] ================================================================================
[codex:695221] // SPDX-License-Identifier: Apache-2.0
[codex:695221] 
[codex:695221] /*
[codex:695221]  * Copyright 2020, Offchain Labs, Inc.
[codex:695221]  *
[codex:695221]  * Licensed under the Apache License, Version 2.0 (the "License");
[codex:695221]  * you may not use this file except in compliance with the License.
[codex:695221]  * You may obtain a copy of the License at
[codex:695221]  *
[codex:695221]  *    http://www.apache.org/licenses/LICENSE-2.0
[codex:695221]  *
[codex:695221]  * Unless required by applicable law or agreed to in writing, software
[codex:695221]  * distributed under the License is distributed on an "AS IS" BASIS,
[codex:695221]  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:695221]  * See the License for the specific language governing permissions and
[codex:695221]  * limitations under the License.
[codex:695221]  */
[codex:695221] 
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Reviewing L1ERC20Gateway code segment**
[codex:695221] exec
[codex:695221] /bin/bash -lc "sed -n '2136,2300p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-i0hpis03 succeeded in 6ms:
[codex:695221] FILE: contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol
[codex:695221] ================================================================================
[codex:695221] // SPDX-License-Identifier: Apache-2.0
[codex:695221] 
[codex:695221] /*
[codex:695221]  * Copyright 2020, Offchain Labs, Inc.
[codex:695221]  *
[codex:695221]  * Licensed under the Apache License, Version 2.0 (the "License");
[codex:695221]  * you may not use this file except in compliance with the License.
[codex:695221]  * You may obtain a copy of the License at
[codex:695221]  *
[codex:695221]  *    http://www.apache.org/licenses/LICENSE-2.0
[codex:695221]  *
[codex:695221]  * Unless required by applicable law or agreed to in writing, software
[codex:695221]  * distributed under the License is distributed on an "AS IS" BASIS,
[codex:695221]  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:695221]  * See the License for the specific language governing permissions and
[codex:695221]  * limitations under the License.
[codex:695221]  */
[codex:695221] 
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Inspecting arb-bridge-eth interfaces**
[codex:695221] exec
[codex:695221] /bin/bash -lc "sed -n '1057,1430p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-i0hpis03 succeeded in 6ms:
[codex:695221] FILE: contracts/arb-bridge-eth/contracts/bridge/interfaces/IBridge.sol
[codex:695221] ================================================================================
[codex:695221] // SPDX-License-Identifier: Apache-2.0
[codex:695221] 
[codex:695221] /*
[codex:695221]  * Copyright 2021, Offchain Labs, Inc.
[codex:695221]  *
[codex:695221]  * Licensed under the Apache License, Version 2.0 (the "License");
[codex:695221]  * you may not use this file except in compliance with the License.
[codex:695221]  * You may obtain a copy of the License at
[codex:695221]  *
[codex:695221]  *    http://www.apache.org/licenses/LICENSE-2.0
[codex:695221]  *
[codex:695221]  * Unless required by applicable law or agreed to in writing, software
[codex:695221]  * distributed under the License is distributed on an "AS IS" BASIS,
[codex:695221]  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:695221]  * See the License for the specific language governing permissions and
[codex:695221]  * limitations under the License.
[codex:695221]  */
[codex:695221] 
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Analyzing potential vulnerabilities and initialization risks**
[codex:695221] exec
[codex:695221] /bin/bash -lc 'rg "delegatecall" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-i0hpis03 succeeded in 7ms:
[codex:695221] 860:        (bool success, bytes memory returndata) = target.delegatecall(data);
[codex:695221] 
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Analyzing gateway contract risks**
[codex:695221] thinking
[codex:695221] **Investigating token bridging edge cases and initialization flaws**
[codex:695221] 
[codex:695221] I'm examining potential issues with rebasing or fee-on-transfer tokens affecting escrow balances and minted amounts on L2, noting these arise from token mechanics rather than vulnerabilities. The main concern remains the unprotected initialization in upgradeable proxies, which I plan to confirm with precise file and line references by inspecting the actual contract source files.
[codex:695221] exec
[codex:695221] /bin/bash -lc "nl -ba contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol | sed -n '60,170p'" in /tmp/codex-multi-i0hpis03 succeeded in 8ms:
[codex:695221]     60	        address _to,
[codex:695221]     61	        uint256 _amount,
[codex:695221]     62	        uint256 _maxGas,
[codex:695221]     63	        uint256 _gasPriceBid,
[codex:695221]     64	        bytes calldata _data
[codex:695221]     65	    ) public payable override nonReentrant returns (bytes memory res) {
[codex:695221]     66	        return
[codex:695221]     67	            super.outboundTransferCustomRefund(
[codex:695221]     68	                _l1Token,
[codex:695221]     69	                _refundTo,
[codex:695221]     70	                _to,
[codex:695221]     71	                _amount,
[codex:695221]     72	                _maxGas,
[codex:695221]     73	                _gasPriceBid,
[codex:695221]     74	                _data
[codex:695221]     75	            );
[codex:695221]     76	    }
[codex:695221]     77	
[codex:695221]     78	    function finalizeInboundTransfer(
[codex:695221]     79	        address _token,
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Inspecting initialization around line 89**
[codex:695221] exec
[codex:695221] /bin/bash -lc "nl -ba contracts/contracts/tokenbridge/libraries/gateway/TokenGateway.sol | sed -n '1,120p'" in /tmp/codex-multi-i0hpis03 succeeded in 6ms:
[codex:695221]      1	// SPDX-License-Identifier: Apache-2.0
[codex:695221]      2	
[codex:695221]      3	/*
[codex:695221]      4	 * Copyright 2020, Offchain Labs, Inc.
[codex:695221]      5	 *
[codex:695221]      6	 * Licensed under the Apache License, Version 2.0 (the "License");
[codex:695221]      7	 * you may not use this file except in compliance with the License.
[codex:695221]      8	 * You may obtain a copy of the License at
[codex:695221]      9	 *
[codex:695221]     10	 *    http://www.apache.org/licenses/LICENSE-2.0
[codex:695221]     11	 *
[codex:695221]     12	 * Unless required by applicable law or agreed to in writing, software
[codex:695221]     13	 * distributed under the License is distributed on an "AS IS" BASIS,
[codex:695221]     14	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:695221]     15	 * See the License for the specific language governing permissions and
[codex:695221]     16	 * limitations under the License.
[codex:695221]     17	 */
[codex:695221]     18	
[codex:695221]     19	pragma solidity ^0.6.11;
[codex:695221]     20	
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Checking L1ArbitrumGateway initialization**
[codex:695221] exec
[codex:695221] /bin/bash -lc "nl -ba contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumGateway.sol | sed -n '70,200p'" in /tmp/codex-multi-i0hpis03 succeeded in 6ms:
[codex:695221]     70	        // a message coming from the counterpart gateway was executed by the bridge
[codex:695221]     71	        address bridge = address(super.getBridge(_inbox));
[codex:695221]     72	        require(msg.sender == bridge, "NOT_FROM_BRIDGE");
[codex:695221]     73	
[codex:695221]     74	        // and the outbox reports that the L2 address of the sender is the counterpart gateway
[codex:695221]     75	        address l2ToL1Sender = super.getL2ToL1Sender(_inbox);
[codex:695221]     76	        require(l2ToL1Sender == counterpartGateway, "ONLY_COUNTERPART_GATEWAY");
[codex:695221]     77	        _;
[codex:695221]     78	    }
[codex:695221]     79	
[codex:695221]     80	    function postUpgradeInit() external {
[codex:695221]     81	        // it is assumed the L1 Arbitrum Gateway contract is behind a Proxy controlled by a proxy admin
[codex:695221]     82	        // this function can only be called by the proxy admin contract
[codex:695221]     83	        address proxyAdmin = ProxyUtil.getProxyAdmin();
[codex:695221]     84	        require(msg.sender == proxyAdmin, "NOT_FROM_ADMIN");
[codex:695221]     85	        // this has no other logic since the current upgrade doesn't require this logic
[codex:695221]     86	    }
[codex:695221]     87	
[codex:695221]     88	    function _initialize(
[codex:695221]     89	        address _l2Counterpart,
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Analyzing gateway initialization and external call risks**
[codex:695221] exec
[codex:695221] /bin/bash -lc "nl -ba contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol | sed -n '1,200p'" in /tmp/codex-multi-i0hpis03 succeeded in 6ms:
[codex:695221]      1	// SPDX-License-Identifier: Apache-2.0
[codex:695221]      2	
[codex:695221]      3	/*
[codex:695221]      4	 * Copyright 2020, Offchain Labs, Inc.
[codex:695221]      5	 *
[codex:695221]      6	 * Licensed under the Apache License, Version 2.0 (the "License");
[codex:695221]      7	 * you may not use this file except in compliance with the License.
[codex:695221]      8	 * You may obtain a copy of the License at
[codex:695221]      9	 *
[codex:695221]     10	 *    http://www.apache.org/licenses/LICENSE-2.0
[codex:695221]     11	 *
[codex:695221]     12	 * Unless required by applicable law or agreed to in writing, software
[codex:695221]     13	 * distributed under the License is distributed on an "AS IS" BASIS,
[codex:695221]     14	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:695221]     15	 * See the License for the specific language governing permissions and
[codex:695221]     16	 * limitations under the License.
[codex:695221]     17	 */
[codex:695221]     18	
[codex:695221]     19	pragma solidity ^0.6.11;
[codex:695221]     20	
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Analyzing external call risks and integration vulnerabilities**
[codex:695221] 
[codex:695221] I'm closely examining how transferExitAndCall permits user-controlled external calls via onExitTransfer, enabling spoofing risks if downstream contracts rely solely on this for authorization. While the gateway itself remains safe, this pattern could let attackers manipulate or drain funds in contracts that trust the gateway caller without proper exit validation. I'm also considering reentrancy concerns, token behaviors that affect escrow balances, and proper use of nonReentrant guards to assess whether these represent true vulnerabilities or just integration pitfalls. This comprehensive review helps me weigh how to categorize these issues per the instructions—likely as low or informational—but I'll keep an eye on anything that could materially impact security.
[codex:695221] exec
[codex:695221] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-i0hpis03 succeeded in 5ms:
[codex:695221] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:695221] 
[codex:695221] thinking
[codex:695221] **Summarizing audit findings and preparing JSON output**
[codex:695221] 
[codex:695221] I'll compile two findings: a high-severity unprotected initializer allowing gateway hijack, and a low-severity call allowing exit callback spoofing without verifying exit existence. Next, I'll produce a JSON report including evidence, exploit scenarios, recommendations, and source locations for each.
[codex:695221] codex
[codex:695221] {"no_findings":false,"summary":"Found 2 issues: a high-risk unprotected initializer that can hijack gateway configuration, and a low-risk exit-callback spoofing vector via transferExitAndCall.","findings":[{"severity":"high","category":"upgradeability","title":"Public initializer can be front-run to hijack gateway configuration","exploit_scenario":"If the proxy is deployed without calling initialize in the same transaction, any external account can call initialize first, set inbox/router/counterpart to attacker-controlled contracts, and then impersonate the L2 gateway to call finalizeInboundTransfer and drain escrowed tokens or permanently block legitimate deposits/withdrawals.","recommendation":"Protect initialize with an initializer modifier and access control (e.g., onlyProxy/onlyAdmin), deploy the proxy with an atomic initializer call, and disable initializers in the implementation contract to prevent direct initialization.","evidence":"L1ERC20Gateway.initialize is public and sets critical addresses (counterpart, router, inbox, beacon factory) without access control; the only guard is that counterpartGateway was not set yet, so the first caller wins.","locations":["contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol:89","contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumGateway.sol:88","contracts/contracts/tokenbridge/libraries/gateway/TokenGateway.sol:36"]},{"severity":"low","category":"other","title":"transferExitAndCall can invoke onExitTransfer without proving an exit exists","exploit_scenario":"An attacker can call transferExitAndCall with any _exitNum and _initialDestination set to themselves, then supply arbitrary _data and _newDestination. The gateway will call onExitTransfer on the target contract even if no corresponding exit exists; any receiver that relies only on msg.sender == gateway could be tricked into releasing assets or state changes.","recommendation":"Add on-chain exit validation before calling onExitTransfer (e.g., verify existence via bridge/outbox data) or remove/limit external call hooks; at minimum, document that receivers must validate exit ownership/existence independently.","evidence":"transferExitAndCall explicitly notes it does not validate exits, sets redirectedExits, and conditionally performs an external call to ITradeableExitReceiver.onExitTransfer with user-controlled data.","locations":["contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol:62","contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol:100"]}]}
[codex:695221] tokens used
[codex:695221] 66,792
[codex:695221] {"no_findings":false,"summary":"Found 2 issues: a high-risk unprotected initializer that can hijack gateway configuration, and a low-risk exit-callback spoofing vector via transferExitAndCall.","findings":[{"severity":"high","category":"upgradeability","title":"Public initializer can be front-run to hijack gateway configuration","exploit_scenario":"If the proxy is deployed without calling initialize in the same transaction, any external account can call initialize first, set inbox/router/counterpart to attacker-controlled contracts, and then impersonate the L2 gateway to call finalizeInboundTransfer and drain escrowed tokens or permanently block legitimate deposits/withdrawals.","recommendation":"Protect initialize with an initializer modifier and access control (e.g., onlyProxy/onlyAdmin), deploy the proxy with an atomic initializer call, and disable initializers in the implementation contract to prevent direct initialization.","evidence":"L1ERC20Gateway.initialize is public and sets critical addresses (counterpart, router, inbox, beacon factory) without access control; the only guard is that counterpartGateway was not set yet, so the first caller wins.","locations":["contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol:89","contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumGateway.sol:88","contracts/contracts/tokenbridge/libraries/gateway/TokenGateway.sol:36"]},{"severity":"low","category":"other","title":"transferExitAndCall can invoke onExitTransfer without proving an exit exists","exploit_scenario":"An attacker can call transferExitAndCall with any _exitNum and _initialDestination set to themselves, then supply arbitrary _data and _newDestination. The gateway will call onExitTransfer on the target contract even if no corresponding exit exists; any receiver that relies only on msg.sender == gateway could be tricked into releasing assets or state changes.","recommendation":"Add on-chain exit validation before calling onExitTransfer (e.g., verify existence via bridge/outbox data) or remove/limit external call hooks; at minimum, document that receivers must validate exit ownership/existence independently.","evidence":"transferExitAndCall explicitly notes it does not validate exits, sets redirectedExits, and conditionally performs an external call to ITradeableExitReceiver.onExitTransfer with user-controlled data.","locations":["contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol:62","contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol:100"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T06:03:02.768055+00:00",
        "returncode": 0
    },
    "summary": "Found 2 issues: a high-risk unprotected initializer that can hijack gateway configuration, and a low-risk exit-callback spoofing vector via transferExitAndCall.",
    "raw_final": {
        "summary": "Found 2 issues: a high-risk unprotected initializer that can hijack gateway configuration, and a low-risk exit-callback spoofing vector via transferExitAndCall.",
        "findings": [
            {
                "title": "Public initializer can be front-run to hijack gateway configuration",
                "category": "upgradeability",
                "evidence": "L1ERC20Gateway.initialize is public and sets critical addresses (counterpart, router, inbox, beacon factory) without access control; the only guard is that counterpartGateway was not set yet, so the first caller wins.",
                "severity": "high",
                "locations": [
                    "contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol:89",
                    "contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumGateway.sol:88",
                    "contracts/contracts/tokenbridge/libraries/gateway/TokenGateway.sol:36"
                ],
                "recommendation": "Protect initialize with an initializer modifier and access control (e.g., onlyProxy/onlyAdmin), deploy the proxy with an atomic initializer call, and disable initializers in the implementation contract to prevent direct initialization.",
                "exploit_scenario": "If the proxy is deployed without calling initialize in the same transaction, any external account can call initialize first, set inbox/router/counterpart to attacker-controlled contracts, and then impersonate the L2 gateway to call finalizeInboundTransfer and drain escrowed tokens or permanently block legitimate deposits/withdrawals."
            },
            {
                "title": "transferExitAndCall can invoke onExitTransfer without proving an exit exists",
                "category": "other",
                "evidence": "transferExitAndCall explicitly notes it does not validate exits, sets redirectedExits, and conditionally performs an external call to ITradeableExitReceiver.onExitTransfer with user-controlled data.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol:62",
                    "contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol:100"
                ],
                "recommendation": "Add on-chain exit validation before calling onExitTransfer (e.g., verify existence via bridge/outbox data) or remove/limit external call hooks; at minimum, document that receivers must validate exit ownership/existence independently.",
                "exploit_scenario": "An attacker can call transferExitAndCall with any _exitNum and _initialDestination set to themselves, then supply arbitrary _data and _newDestination. The gateway will call onExitTransfer on the target contract even if no corresponding exit exists; any receiver that relies only on msg.sender == gateway could be tricked into releasing assets or state changes."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
9
EXT*/BALANCE
8
Total opcodes
7432
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00e9
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0xa01893bf
00000019: GT
0000001a: PUSH2 0x0085
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xa01893bf
00000024: EQ
00000025: PUSH2 0x03b5
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xa0c76a96
0000002f: EQ
00000030: PUSH2 0x0408
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xa7e28d48
0000003a: EQ
0000003b: PUSH2 0x04e1
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xbcf2e6eb
00000045: EQ
00000046: PUSH2 0x0514
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xbd5f3e7d
00000050: EQ
00000051: PUSH2 0x05da
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xd2ce7d65
0000005b: EQ
0000005c: PUSH2 0x06c5
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf68a9082
00000066: EQ
00000067: PUSH2 0x075f
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0xf887ea40
00000071: EQ
00000072: PUSH2 0x08b6
00000075: JUMPI
00000076: DUP1
00000077: PUSH4 0xfb0e722b
0000007c: EQ
0000007d: PUSH2 0x08cb
00000080: JUMPI
00000081: PUSH2 0x00e9
00000084: JUMP
00000085: JUMPDEST
00000086: DUP1
00000087: PUSH4 0x01ffc9a7
0000008c: EQ
0000008d: PUSH2 0x00ee
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0x020a6058
00000097: EQ
00000098: PUSH2 0x0136
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0x2db09c1c
000000a2: EQ
000000a3: PUSH2 0x0181
000000a6: JUMPI
000000a7: DUP1
000000a8: PUSH4 0x2e567b36
000000ad: EQ
000000ae: PUSH2 0x01b2
000000b1: JUMPI
000000b2: DUP1
000000b3: PUSH4 0x4fb1a07b
000000b8: EQ
000000b9: PUSH2 0x024a
000000bc: JUMPI
000000bd: DUP1
000000be: PUSH4 0x70fc045f
000000c3: EQ
000000c4: PUSH2 0x0361
000000c7: JUMPI
000000c8: DUP1
000000c9: PUSH4 0x93e59dc1
000000ce: EQ
000000cf: PUSH2 0x0376
000000d2: JUMPI
000000d3: DUP1
000000d4: PUSH4 0x95fcea78
000000d9: EQ
000000da: PUSH2 0x038b
000000dd: JUMPI
000000de: DUP1
000000df: PUSH4 0x97881f8d
000000e4: EQ
000000e5: PUSH2 0x03a0
000000e8: JUMPI
000000e9: JUMPDEST
000000ea: PUSH1 0x00
000000ec: DUP1
000000ed: REVERT
000000ee: JUMPDEST
000000ef: CALLVALUE
000000f0: DUP1
000000f1: ISZERO
000000f2: PUSH2 0x00fa
000000f5: JUMPI
000000f6: PUSH1 0x00
000000f8: DUP1
000000f9: REVERT
000000fa: JUMPDEST
000000fb: POP
000000fc: PUSH2 0x0122
000000ff: PUSH1 0x04
00000101: DUP1
00000102: CALLDATASIZE
00000103: SUB
00000104: PUSH1 0x20
00000106: DUP2
00000107: LT
00000108: ISZERO
00000109: PUSH2 0x0111
0000010c: JUMPI
0000010d: PUSH1 0x00
0000010f: DUP1
00000110: REVERT
00000111: JUMPDEST
00000112: POP
00000113: CALLDATALOAD
00000114: PUSH1 0x01
00000116: PUSH1 0x01
00000118: PUSH1 0xe0
0000011a: SHL
0000011b: SUB
0000011c: NOT
0000011d: AND
0000011e: PUSH2 0x08e0
00000121: JUMP
00000122: JUMPDEST
00000123: PUSH1 0x40
00000125: DUP1
00000126: MLOAD
00000127: SWAP2
00000128: ISZERO
00000129: ISZERO
0000012a: DUP3
0000012b: MSTORE
0000012c: MLOAD
0000012d: SWAP1
0000012e: DUP2
0000012f: SWAP1
00000130: SUB
00000131: PUSH1 0x20
00000133: ADD
00000134: SWAP1
00000135: RETURN
00000136: JUMPDEST
00000137: CALLVALUE
00000138: DUP1
00000139: ISZERO
0000013a: PUSH2 0x0142
0000013d: JUMPI
0000013e: PUSH1 0x00
00000140: DUP1
00000141: REVERT
00000142: JUMPDEST
00000143: POP
00000144: PUSH2 0x016f
00000147: PUSH1 0x04
00000149: DUP1
0000014a: CALLDATASIZE
0000014b: SUB
0000014c: PUSH1 0x40
0000014e: DUP2
0000014f: LT
00000150: ISZERO
00000151: PUSH2 0x0159
00000154: JUMPI
00000155: PUSH1 0x00
00000157: DUP1
00000158: REVERT
00000159: JUMPDEST
0000015a: POP
0000015b: DUP1
0000015c: CALLDATALOAD
0000015d: SWAP1
0000015e: PUSH1 0x20
00000160: ADD
00000161: CALLDATALOAD
00000162: PUSH1 0x01
00000164: PUSH1 0x01
00000166: PUSH1 0xa0
00000168: SHL
00000169: SUB
0000016a: AND
0000016b: PUSH2 0x090b
0000016e: JUMP
0000016f: JUMPDEST
00000170: PUSH1 0x40
00000172: DUP1
00000173: MLOAD
00000174: SWAP2
00000175: DUP3
00000176: MSTORE
00000177: MLOAD
00000178: SWAP1
00000179: DUP2
0000017a: SWAP1
0000017b: SUB
0000017c: PUSH1 0x20
0000017e: ADD
0000017f: SWAP1
00000180: RETURN
00000181: JUMPDEST
00000182: CALLVALUE
00000183: DUP1
00000184: ISZERO
00000185: PUSH2 0x018d
00000188: JUMPI
00000189: PUSH1 0x00
0000018b: DUP1
0000018c: REVERT
0000018d: JUMPDEST
0000018e: POP
0000018f: PUSH2 0x0196
00000192: PUSH2 0x0940
00000195: JUMP
00000196: JUMPDEST
00000197: PUSH1 0x40
00000199: DUP1
0000019a: MLOAD
0000019b: PUSH1 0x01
0000019d: PUSH1 0x01
0000019f: PUSH1 0xa0
000001a1: SHL
000001a2: SUB
000001a3: SWAP1
000001a4: SWAP3
000001a5: AND
000001a6: DUP3
000001a7: MSTORE
000001a8: MLOAD
000001a9: SWAP1
000001aa: DUP2
000001ab: SWAP1
000001ac: SUB
000001ad: PUSH1 0x20
000001af: ADD
000001b0: SWAP1
000001b1: RETURN
000001b2: JUMPDEST
000001b3: PUSH2 0x0248
000001b6: PUSH1 0x04
000001b8: DUP1
000001b9: CALLDATASIZE
000001ba: SUB
000001bb: PUSH1 0xa0
000001bd: DUP2
000001be: LT
000001bf: ISZERO
000001c0: PUSH2 0x01c8
000001c3: JUMPI
000001c4: PUSH1 0x00
000001c6: DUP1
000001c7: REVERT
000001c8: JUMPDEST
000001c9: PUSH1 0x01
000001cb: PUSH1 0x01
000001cd: PUSH1 0xa0
000001cf: SHL
000001d0: SUB
000001d1: DUP3
000001d2: CALLDATALOAD
000001d3: DUP2
000001d4: AND
000001d5: SWAP3
000001d6: PUSH1 0x20
000001d8: DUP2
000001d9: ADD
000001da: CALLDATALOAD
000001db: DUP3
000001dc: AND
000001dd: SWAP3
000001de: PUSH1 0x40
000001e0: DUP3
000001e1: ADD
000001e2: CALLDATALOAD
000001e3: SWAP1
000001e4: SWAP3
000001e5: AND
000001e6: SWAP2
000001e7: PUSH1 0x60
000001e9: DUP3
000001ea: ADD
000001eb: CALLDATALOAD
000001ec: SWAP2
000001ed: SWAP1
000001ee: DUP2
000001ef: ADD
000001f0: SWAP1
000001f1: PUSH1 0xa0
000001f3: DUP2
000001f4: ADD
000001f5: PUSH1 0x80
000001f7: DUP3
000001f8: ADD
000001f9: CALLDATALOAD
000001fa: PUSH1 0x01
000001fc: PUSH1 0x20
000001fe: SHL
000001ff: DUP2
00000200: GT
00000201: ISZERO
00000202: PUSH2 0x020a
00000205: JUMPI
00000206: PUSH1 0x00
00000208: DUP1
00000209: REVERT
0000020a: JUMPDEST
0000020b: DUP3
0000020c: ADD
0000020d: DUP4
0000020e: PUSH1 0x20
00000210: DUP3
00000211: ADD
00000212: GT
00000213: ISZERO
00000214: PUSH2 0x021c
00000217: JUMPI
00000218: PUSH1 0x00
0000021a: DUP1
0000021b: REVERT
0000021c: JUMPDEST
0000021d: DUP1
0000021e: CALLDATALOAD
0000021f: SWAP1
00000220: PUSH1 0x20
00000222: ADD
00000223: SWAP2
00000224: DUP5
00000225: PUSH1 0x01
00000227: DUP4
00000228: MUL
00000229: DUP5
0000022a: ADD
0000022b: GT
0000022c: PUSH1 0x01
0000022e: PUSH1 0x20
00000230: SHL
00000231: DUP4
00000232: GT
00000233: OR
00000234: ISZERO
00000235: PUSH2 0x023d
00000238: JUMPI
00000239: PUSH1 0x00
0000023b: DUP1
0000023c: REVERT
0000023d: JUMPDEST
0000023e: POP
0000023f: SWAP1
00000240: SWAP3
00000241: POP
00000242: SWAP1
00000243: POP
00000244: PUSH2 0x094f
00000247: JUMP
00000248: JUMPDEST
00000249: STOP
0000024a: JUMPDEST
0000024b: PUSH2 0x02ec
0000024e: PUSH1 0x04
00000250: DUP1
00000251: CALLDATASIZE
00000252: SUB
00000253: PUSH1 0xe0
00000255: DUP2
00000256: LT
00000257: ISZERO
00000258: PUSH2 0x0260
0000025b: JUMPI
0000025c: PUSH1 0x00
0000025e: DUP1
0000025f: REVERT
00000260: JUMPDEST
00000261: PUSH1 0x01
00000263: PUSH1 0x01
00000265: PUSH1 0xa0
00000267: SHL
00000268: SUB
00000269: DUP3
0000026a: CALLDATALOAD
0000026b: DUP2
0000026c: AND
0000026d: SWAP3
0000026e: PUSH1 0x20
00000270: DUP2
00000271: ADD
00000272: CALLDATALOAD
00000273: DUP3
00000274: AND
00000275: SWAP3
00000276: PUSH1 0x40
00000278: DUP3
00000279: ADD
0000027a: CALLDATALOAD
0000027b: SWAP1
0000027c: SWAP3
0000027d: AND
0000027e: SWAP2
0000027f: PUSH1 0x60
00000281: DUP3
00000282: ADD
00000283: CALLDATALOAD
00000284: SWAP2
00000285: PUSH1 0x80
00000287: DUP2
00000288: ADD
00000289: CALLDATALOAD
0000028a: SWAP2
0000028b: PUSH1 0xa0
0000028d: DUP3
0000028e: ADD
0000028f: CALLDATALOAD
00000290: SWAP2
00000291: SWAP1
00000292: DUP2
00000293: ADD
00000294: SWAP1
00000295: PUSH1 0xe0
00000297: DUP2
00000298: ADD
00000299: PUSH1 0xc0
0000029b: DUP3
0000029c: ADD
0000029d: CALLDATALOAD
0000029e: PUSH1 0x01
000002a0: PUSH1 0x20
000002a2: SHL
000002a3: DUP2
000002a4: GT
000002a5: ISZERO
000002a6: PUSH2 0x02ae
000002a9: JUMPI
000002aa: PUSH1 0x00
000002ac: DUP1
000002ad: REVERT
000002ae: JUMPDEST
000002af: DUP3
000002b0: ADD
000002b1: DUP4
000002b2: PUSH1 0x20
000002b4: DUP3
000002b5: ADD
000002b6: GT
000002b7: ISZERO
000002b8: PUSH2 0x02c0
000002bb: JUMPI
000002bc: PUSH1 0x00
000002be: DUP1
000002bf: REVERT
000002c0: JUMPDEST
000002c1: DUP1
000002c2: CALLDATALOAD
000002c3: SWAP1
000002c4: PUSH1 0x20
000002c6: ADD
000002c7: SWAP2
000002c8: DUP5
000002c9: PUSH1 0x01
000002cb: DUP4
000002cc: MUL
000002cd: DUP5
000002ce: ADD
000002cf: GT
000002d0: PUSH1 0x01
000002d2: PUSH1 0x20
000002d4: SHL
000002d5: DUP4
000002d6: GT
000002d7: OR
000002d8: ISZERO
000002d9: PUSH2 0x02e1
000002dc: JUMPI
000002dd: PUSH1 0x00
000002df: DUP1
000002e0: REVERT
000002e1: JUMPDEST
000002e2: POP
000002e3: SWAP1
000002e4: SWAP3
000002e5: POP
000002e6: SWAP1
000002e7: POP
000002e8: PUSH2 0x09c7
000002eb: JUMP
000002ec: JUMPDEST
000002ed: PUSH1 0x40
000002ef: DUP1
000002f0: MLOAD
000002f1: PUSH1 0x20
000002f3: DUP1
000002f4: DUP3
000002f5: MSTORE
000002f6: DUP4
000002f7: MLOAD
000002f8: DUP2
000002f9: DUP4
000002fa: ADD
000002fb: MSTORE
000002fc: DUP4
000002fd: MLOAD
000002fe: SWAP2
000002ff: SWAP3
00000300: DUP4
00000301: SWAP3
00000302: SWAP1
00000303: DUP4
00000304: ADD
00000305: SWAP2
00000306: DUP6
00000307: ADD
00000308: SWAP1
00000309: DUP1
0000030a: DUP4
0000030b: DUP4
0000030c: PUSH1 0x00
0000030e: JUMPDEST
0000030f: DUP4
00000310: DUP2
00000311: LT
00000312: ISZERO
00000313: PUSH2 0x0326
00000316: JUMPI
00000317: DUP2
00000318: DUP2
00000319: ADD
0000031a: MLOAD
0000031b: DUP4
0000031c: DUP3
0000031d: ADD
0000031e: MSTORE
0000031f: PUSH1 0x20
00000321: ADD
00000322: PUSH2 0x030e
00000325: JUMP
00000326: JUMPDEST
00000327: POP
00000328: POP
00000329: POP
0000032a: POP
0000032b: SWAP1
0000032c: POP
0000032d: SWAP1
0000032e: DUP2
0000032f: ADD
00000330: SWAP1
00000331: PUSH1 0x1f
00000333: AND
00000334: DUP1
00000335: ISZERO
00000336: PUSH2 0x0353
00000339: JUMPI
0000033a: DUP1
0000033b: DUP3
0000033c: SUB
0000033d: DUP1
0000033e: MLOAD
0000033f: PUSH1 0x01
00000341: DUP4
00000342: PUSH1 0x20
00000344: SUB
00000345: PUSH2 0x0100
00000348: EXP
00000349: SUB
0000034a: NOT
0000034b: AND
0000034c: DUP2
0000034d: MSTORE
0000034e: PUSH1 0x20
00000350: ADD
00000351: SWAP2
00000352: POP
00000353: JUMPDEST
00000354: POP
00000355: SWAP3
00000356: POP
00000357: POP
00000358: POP
00000359: PUSH1 0x40
0000035b: MLOAD
0000035c: DUP1
0000035d: SWAP2
0000035e: SUB
0000035f: SWAP1
00000360: RETURN
00000361: JUMPDEST
00000362: CALLVALUE
00000363: DUP1
00000364: ISZERO
00000365: PUSH2 0x036d
00000368: JUMPI
00000369: PUSH1 0x00
0000036b: DUP1
0000036c: REVERT
0000036d: JUMPDEST
0000036e: POP
0000036f: PUSH2 0x0196
00000372: PUSH2 0x0a48
00000375: JUMP
00000376: JUMPDEST
00000377: CALLVALUE
00000378: DUP1
00000379: ISZERO
0000037a: PUSH2 0x0382
0000037d: JUMPI
0000037e: PUSH1 0x00
00000380: DUP1
00000381: REVERT
00000382: JUMPDEST
00000383: POP
00000384: PUSH2 0x0196
00000387: PUSH2 0x0a57
0000038a: JUMP
0000038b: JUMPDEST
0000038c: CALLVALUE
0000038d: DUP1
0000038e: ISZERO
0000038f: PUSH2 0x0397
00000392: JUMPI
00000393: PUSH1 0x00
00000395: DUP1
00000396: REVERT
00000397: JUMPDEST
00000398: POP
00000399: PUSH2 0x0248
0000039c: PUSH2 0x0a66
0000039f: JUMP
000003a0: JUMPDEST
000003a1: CALLVALUE
000003a2: DUP1
000003a3: ISZERO
000003a4: PUSH2 0x03ac
000003a7: JUMPI
000003a8: PUSH1 0x00
000003aa: DUP1
000003ab: REVERT
000003ac: JUMPDEST
000003ad: POP
000003ae: PUSH2 0x016f
000003b1: PUSH2 0x0ac3
000003b4: JUMP
000003b5: JUMPDEST
000003b6: CALLVALUE
000003b7: DUP1
000003b8: ISZERO
000003b9: PUSH2 0x03c1
000003bc: JUMPI
000003bd: PUSH1 0x00
000003bf: DUP1
000003c0: REVERT
000003c1: JUMPDEST
000003c2: POP
000003c3: PUSH2 0x0248
000003c6: PUSH1 0x04
000003c8: DUP1
000003c9: CALLDATASIZE
000003ca: SUB
000003cb: PUSH1 0xa0
000003cd: DUP2
000003ce: LT
000003cf: ISZERO
000003d0: PUSH2 0x03d8
000003d3: JUMPI
000003d4: PUSH1 0x00
000003d6: DUP1
000003d7: REVERT
000003d8: JUMPDEST
000003d9: POP
000003da: PUSH1 0x01
000003dc: PUSH1 0x01
000003de: PUSH1 0xa0
000003e0: SHL
000003e1: SUB
000003e2: DUP2
000003e3: CALLDATALOAD
000003e4: DUP2
000003e5: AND
000003e6: SWAP2
000003e7: PUSH1 0x20
000003e9: DUP2
000003ea: ADD
000003eb: CALLDATALOAD
000003ec: DUP3
000003ed: AND
000003ee: SWAP2
000003ef: PUSH1 0x40
000003f1: DUP3
000003f2: ADD
000003f3: CALLDATALOAD
000003f4: DUP2
000003f5: AND
000003f6: SWAP2
000003f7: PUSH1 0x60
000003f9: DUP2
000003fa: ADD
000003fb: CALLDATALOAD
000003fc: SWAP2
000003fd: PUSH1 0x80
000003ff: SWAP1
00000400: SWAP2
00000401: ADD
00000402: CALLDATALOAD
00000403: AND
00000404: PUSH2 0x0ac9
00000407: JUMP
00000408: JUMPDEST
00000409: CALLVALUE
0000040a: DUP1
0000040b: ISZERO
0000040c: PUSH2 0x0414
0000040f: JUMPI
00000410: PUSH1 0x00
00000412: DUP1
00000413: REVERT
00000414: JUMPDEST
00000415: POP
00000416: PUSH2 0x02ec
00000419: PUSH1 0x04
0000041b: DUP1
0000041c: CALLDATASIZE
0000041d: SUB
0000041e: PUSH1 0xa0
00000420: DUP2
00000421: LT
00000422: ISZERO
00000423: PUSH2 0x042b
00000426: JUMPI
00000427: PUSH1 0x00
00000429: DUP1
0000042a: REVERT
0000042b: JUMPDEST
0000042c: PUSH1 0x01
0000042e: PUSH1 0x01
00000430: PUSH1 0xa0
00000432: SHL
00000433: SUB
00000434: DUP3
00000435: CALLDATALOAD
00000436: DUP2
00000437: AND
00000438: SWAP3
00000439: PUSH1 0x20
0000043b: DUP2
0000043c: ADD
0000043d: CALLDATALOAD
0000043e: DUP3
0000043f: AND
00000440: SWAP3
00000441: PUSH1 0x40
00000443: DUP3
00000444: ADD
00000445: CALLDATALOAD
00000446: SWAP1
00000447: SWAP3
00000448: AND
00000449: SWAP2
0000044a: PUSH1 0x60
0000044c: DUP3
0000044d: ADD
0000044e: CALLDATALOAD
0000044f: SWAP2
00000450: SWAP1
00000451: DUP2
00000452: ADD
00000453: SWAP1
00000454: PUSH1 0xa0
00000456: DUP2
00000457: ADD
00000458: PUSH1 0x80
0000045a: DUP3
0000045b: ADD
0000045c: CALLDATALOAD
0000045d: PUSH1 0x01
0000045f: PUSH1 0x20
00000461: SHL
00000462: DUP2
00000463: GT
00000464: ISZERO
00000465: PUSH2 0x046d
00000468: JUMPI
00000469: PUSH1 0x00
0000046b: DUP1
0000046c: REVERT
0000046d: JUMPDEST
0000046e: DUP3
0000046f: ADD
00000470: DUP4
00000471: PUSH1 0x20
00000473: DUP3
00000474: ADD
00000475: GT
00000476: ISZERO
00000477: PUSH2 0x047f
0000047a: JUMPI
0000047b: PUSH1 0x00
0000047d: DUP1
0000047e: REVERT
0000047f: JUMPDEST
00000480: DUP1
00000481: CALLDATALOAD
00000482: SWAP1
00000483: PUSH1 0x20
00000485: ADD
00000486: SWAP2
00000487: DUP5
00000488: PUSH1 0x01
0000048a: DUP4
0000048b: MUL
0000048c: DUP5
0000048d: ADD
0000048e: GT
0000048f: PUSH1 0x01
00000491: PUSH1 0x20
00000493: SHL
00000494: DUP4
00000495: GT
00000496: OR
00000497: ISZERO
00000498: PUSH2 0x04a0
0000049b: JUMPI
0000049c: PUSH1 0x00
0000049e: DUP1
0000049f: REVERT
000004a0: JUMPDEST
000004a1: SWAP2
000004a2: SWAP1
000004a3: DUP1
000004a4: DUP1
000004a5: PUSH1 0x1f
000004a7: ADD
000004a8: PUSH1 0x20
000004aa: DUP1
000004ab: SWAP2
000004ac: DIV
000004ad: MUL
000004ae: PUSH1 0x20
000004b0: ADD
000004b1: PUSH1 0x40
000004b3: MLOAD
000004b4: SWAP1
000004b5: DUP2
000004b6: ADD
000004b7: PUSH1 0x40
000004b9: MSTORE
000004ba: DUP1
000004bb: SWAP4
000004bc: SWAP3
000004bd: SWAP2
000004be: SWAP1
000004bf: DUP2
000004c0: DUP2
000004c1: MSTORE
000004c2: PUSH1 0x20
000004c4: ADD
000004c5: DUP4
000004c6: DUP4
000004c7: DUP1
000004c8: DUP3
000004c9: DUP5
000004ca: CALLDATACOPY
000004cb: PUSH1 0x00
000004cd: SWAP3
000004ce: ADD
000004cf: SWAP2
000004d0: SWAP1
000004d1: SWAP2
000004d2: MSTORE
000004d3: POP
000004d4: SWAP3
000004d5: SWAP6
000004d6: POP
000004d7: PUSH2 0x0b9d
000004da: SWAP5
000004db: POP
000004dc: POP
000004dd: POP
000004de: POP
000004df: POP
000004e0: JUMP
000004e1: JUMPDEST
000004e2: CALLVALUE
000004e3: DUP1
000004e4: ISZERO
000004e5: PUSH2 0x04ed
000004e8: JUMPI
000004e9: PUSH1 0x00
000004eb: DUP1
000004ec: REVERT
000004ed: JUMPDEST
000004ee: POP
000004ef: PUSH2 0x0196
000004f2: PUSH1 0x04
000004f4: DUP1
000004f5: CALLDATASIZE
000004f6: SUB
000004f7: PUSH1 0x20
000004f9: DUP2
000004fa: LT
000004fb: ISZERO
000004fc: PUSH2 0x0504
000004ff: JUMPI
00000500: PUSH1 0x00
00000502: DUP1
00000503: REVERT
00000504: JUMPDEST
00000505: POP
00000506: CALLDATALOAD
00000507: PUSH1 0x01
00000509: PUSH1 0x01
0000050b: PUSH1 0xa0
0000050d: SHL
0000050e: SUB
0000050f: AND
00000510: PUSH2 0x0e17
00000513: JUMP
00000514: JUMPDEST
00000515: CALLVALUE
00000516: DUP1
00000517: ISZERO
00000518: PUSH2 0x0520
0000051b: JUMPI
0000051c: PUSH1 0x00
0000051e: DUP1
0000051f: REVERT
00000520: JUMPDEST
00000521: POP
00000522: PUSH2 0x053e
00000525: PUSH1 0x04
00000527: DUP1
00000528: CALLDATASIZE
00000529: SUB
0000052a: PUSH1 0x20
0000052c: DUP2
0000052d: LT
0000052e: ISZERO
0000052f: PUSH2 0x0537
00000532: JUMPI
00000533: PUSH1 0x00
00000535: DUP1
00000536: REVERT
00000537: JUMPDEST
00000538: POP
00000539: CALLDATALOAD
0000053a: PUSH2 0x0e48
0000053d: JUMP
0000053e: JUMPDEST
0000053f: PUSH1 0x40
00000541: MLOAD
00000542: DUP1
00000543: DUP5
00000544: ISZERO
00000545: ISZERO
00000546: ISZERO
00000547: ISZERO
00000548: DUP2
00000549: MSTORE
0000054a: PUSH1 0x20
0000054c: ADD
0000054d: DUP4
0000054e: PUSH1 0x01
00000550: PUSH1 0x01
00000552: PUSH1 0xa0
00000554: SHL
00000555: SUB
00000556: AND
00000557: PUSH1 0x01
00000559: PUSH1 0x01
0000055b: PUSH1 0xa0
0000055d: SHL
0000055e: SUB
0000055f: AND
00000560: DUP2
00000561: MSTORE
00000562: PUSH1 0x20
00000564: ADD
00000565: DUP1
00000566: PUSH1 0x20
00000568: ADD
00000569: DUP3
0000056a: DUP2
0000056b: SUB
0000056c: DUP3
0000056d: MSTORE
0000056e: DUP4
0000056f: DUP2
00000570: DUP2
00000571: MLOAD
00000572: DUP2
00000573: MSTORE
00000574: PUSH1 0x20
00000576: ADD
00000577: SWAP2
00000578: POP
00000579: DUP1
0000057a: MLOAD
0000057b: SWAP1
0000057c: PUSH1 0x20
0000057e: ADD
0000057f: SWAP1
00000580: DUP1
00000581: DUP4
00000582: DUP4
00000583: PUSH1 0x00
00000585: JUMPDEST
00000586: DUP4
00000587: DUP2
00000588: LT
00000589: ISZERO
0000058a: PUSH2 0x059d
0000058d: JUMPI
0000058e: DUP2
0000058f: DUP2
00000590: ADD
00000591: MLOAD
00000592: DUP4
00000593: DUP3
00000594: ADD
00000595: MSTORE
00000596: PUSH1 0x20
00000598: ADD
00000599: PUSH2 0x0585
0000059c: JUMP
0000059d: JUMPDEST
0000059e: POP
0000059f: POP
000005a0: POP
000005a1: POP
000005a2: SWAP1
000005a3: POP
000005a4: SWAP1
000005a5: DUP2
000005a6: ADD
000005a7: SWAP1
000005a8: PUSH1 0x1f
000005aa: AND
000005ab: DUP1
000005ac: ISZERO
000005ad: PUSH2 0x05ca
000005b0: JUMPI
000005b1: DUP1
000005b2: DUP3
000005b3: SUB
000005b4: DUP1
000005b5: MLOAD
000005b6: PUSH1 0x01
000005b8: DUP4
000005b9: PUSH1 0x20
000005bb: SUB
000005bc: PUSH2 0x0100
000005bf: EXP
000005c0: SUB
000005c1: NOT
000005c2: AND
000005c3: DUP2
000005c4: MSTORE
000005c5: PUSH1 0x20
000005c7: ADD
000005c8: SWAP2
000005c9: POP
000005ca: JUMPDEST
000005cb: POP
000005cc: SWAP5
000005cd: POP
000005ce: POP
000005cf: POP
000005d0: POP
000005d1: POP
000005d2: PUSH1 0x40
000005d4: MLOAD
000005d5: DUP1
000005d6: SWAP2
000005d7: SUB
000005d8: SWAP1
000005d9: RETURN
000005da: JUMPDEST
000005db: CALLVALUE
000005dc: DUP1
000005dd: ISZERO
000005de: PUSH2 0x05e6
000005e1: JUMPI
000005e2: PUSH1 0x00
000005e4: DUP1
000005e5: REVERT
000005e6: JUMPDEST
000005e7: POP
000005e8: PUSH2 0x0248
000005eb: PUSH1 0x04
000005ed: DUP1
000005ee: CALLDATASIZE
000005ef: SUB
000005f0: PUSH1 0xa0
000005f2: DUP2
000005f3: LT
000005f4: ISZERO
000005f5: PUSH2 0x05fd
000005f8: JUMPI
000005f9: PUSH1 0x00
000005fb: DUP1
000005fc: REVERT
000005fd: JUMPDEST
000005fe: DUP2
000005ff: CALLDATALOAD
00000600: SWAP2
00000601: PUSH1 0x01
00000603: PUSH1 0x01
00000605: PUSH1 0xa0
00000607: SHL
00000608: SUB
00000609: PUSH1 0x20
0000060b: DUP3
0000060c: ADD
0000060d: CALLDATALOAD
0000060e: DUP2
0000060f: AND
00000610: SWAP3
00000611: PUSH1 0x40
00000613: DUP4
00000614: ADD
00000615: CALLDATALOAD
00000616: SWAP1
00000617: SWAP2
00000618: AND
00000619: SWAP2
0000061a: SWAP1
0000061b: DUP2
0000061c: ADD
0000061d: SWAP1
0000061e: PUSH1 0x80
00000620: DUP2
00000621: ADD
00000622: PUSH1 0x60
00000624: DUP3
00000625: ADD
00000626: CALLDATALOAD
00000627: PUSH1 0x01
00000629: PUSH1 0x20
0000062b: SHL
0000062c: DUP2
0000062d: GT
0000062e: ISZERO
0000062f: PUSH2 0x0637
00000632: JUMPI
00000633: PUSH1 0x00
00000635: DUP1
00000636: REVERT
00000637: JUMPDEST
00000638: DUP3
00000639: ADD
0000063a: DUP4
0000063b: PUSH1 0x20
0000063d: DUP3
0000063e: ADD
0000063f: GT
00000640: ISZERO
00000641: PUSH2 0x0649
00000644: JUMPI
00000645: PUSH1 0x00
00000647: DUP1
00000648: REVERT
00000649: JUMPDEST
0000064a: DUP1
0000064b: CALLDATALOAD
0000064c: SWAP1
0000064d: PUSH1 0x20
0000064f: ADD
00000650: SWAP2
00000651: DUP5
00000652: PUSH1 0x01
00000654: DUP4
00000655: MUL
00000656: DUP5
00000657: ADD
00000658: GT
00000659: PUSH1 0x01
0000065b: PUSH1 0x20
0000065d: SHL
0000065e: DUP4
0000065f: GT
00000660: OR
00000661: ISZERO
00000662: PUSH2 0x066a
00000665: JUMPI
00000666: PUSH1 0x00
00000668: DUP1
00000669: REVERT
0000066a: JUMPDEST
0000066b: SWAP2
0000066c: SWAP4
0000066d: SWAP1
0000066e: SWAP3
0000066f: SWAP1
00000670: SWAP2
00000671: PUSH1 0x20
00000673: DUP2
00000674: ADD
00000675: SWAP1
00000676: CALLDATALOAD
00000677: PUSH1 0x01
00000679: PUSH1 0x20
0000067b: SHL
0000067c: DUP2
0000067d: GT
0000067e: ISZERO
0000067f: PUSH2 0x0687
00000682: JUMPI
00000683: PUSH1 0x00
00000685: DUP1
00000686: REVERT
00000687: JUMPDEST
00000688: DUP3
00000689: ADD
0000068a: DUP4
0000068b: PUSH1 0x20
0000068d: DUP3
0000068e: ADD
0000068f: GT
00000690: ISZERO
00000691: PUSH2 0x0699
00000694: JUMPI
00000695: PUSH1 0x00
00000697: DUP1
00000698: REVERT
00000699: JUMPDEST
0000069a: DUP1
0000069b: CALLDATALOAD
0000069c: SWAP1
0000069d: PUSH1 0x20
0000069f: ADD
000006a0: SWAP2
000006a1: DUP5
000006a2: PUSH1 0x01
000006a4: DUP4
000006a5: MUL
000006a6: DUP5
000006a7: ADD
000006a8: GT
000006a9: PUSH1 0x01
000006ab: PUSH1 0x20
000006ad: SHL
000006ae: DUP4
000006af: GT
000006b0: OR
000006b1: ISZERO
000006b2: PUSH2 0x06ba
000006b5: JUMPI
000006b6: PUSH1 0x00
000006b8: DUP1
000006b9: REVERT
000006ba: JUMPDEST
000006bb: POP
000006bc: SWAP1
000006bd: SWAP3
000006be: POP
000006bf: SWAP1
000006c0: POP
000006c1: PUSH2 0x0eff
000006c4: JUMP
000006c5: JUMPDEST
000006c6: PUSH2 0x02ec
000006c9: PUSH1 0x04
000006cb: DUP1
000006cc: CALLDATASIZE
000006cd: SUB
000006ce: PUSH1 0xc0
000006d0: DUP2
000006d1: LT
000006d2: ISZERO
000006d3: PUSH2 0x06db
000006d6: JUMPI
000006d7: PUSH1 0x00
000006d9: DUP1
000006da: REVERT
000006db: JUMPDEST
000006dc: PUSH1 0x01
000006de: PUSH1 0x01
000006e0: PUSH1 0xa0
000006e2: SHL
000006e3: SUB
000006e4: DUP3
000006e5: CALLDATALOAD
000006e6: DUP2
000006e7: AND
000006e8: SWAP3
000006e9: PUSH1 0x20
000006eb: DUP2
000006ec: ADD
000006ed: CALLDATALOAD
000006ee: SWAP1
000006ef: SWAP2
000006f0: AND
000006f1: SWAP2
000006f2: PUSH1 0x40
000006f4: DUP3
000006f5: ADD
000006f6: CALLDATALOAD
000006f7: SWAP2
000006f8: PUSH1 0x60
000006fa: DUP2
000006fb: ADD
000006fc: CALLDATALOAD
000006fd: SWAP2
000006fe: PUSH1 0x80
00000700: DUP3
00000701: ADD
00000702: CALLDATALOAD
00000703: SWAP2
00000704: SWAP1
00000705: DUP2
00000706: ADD
00000707: SWAP1
00000708: PUSH1 0xc0
0000070a: DUP2
0000070b: ADD
0000070c: PUSH1 0xa0
0000070e: DUP3
0000070f: ADD
00000710: CALLDATALOAD
00000711: PUSH1 0x01
00000713: PUSH1 0x20
00000715: SHL
00000716: DUP2
00000717: GT
00000718: ISZERO
00000719: PUSH2 0x0721
0000071c: JUMPI
0000071d: PUSH1 0x00
0000071f: DUP1
00000720: REVERT
00000721: JUMPDEST
00000722: DUP3
00000723: ADD
00000724: DUP4
00000725: PUSH1 0x20
00000727: DUP3
00000728: ADD
00000729: GT
0000072a: ISZERO
0000072b: PUSH2 0x0733
0000072e: JUMPI
0000072f: PUSH1 0x00
00000731: DUP1
00000732: REVERT
00000733: JUMPDEST
00000734: DUP1
00000735: CALLDATALOAD
00000736: SWAP1
00000737: PUSH1 0x20
00000739: ADD
0000073a: SWAP2
0000073b: DUP5
0000073c: PUSH1 0x01
0000073e: DUP4
0000073f: MUL
00000740: DUP5
00000741: ADD
00000742: GT
00000743: PUSH1 0x01
00000745: PUSH1 0x20
00000747: SHL
00000748: DUP4
00000749: GT
0000074a: OR
0000074b: ISZERO
0000074c: PUSH2 0x0754
0000074f: JUMPI
00000750: PUSH1 0x00
00000752: DUP1
00000753: REVERT
00000754: JUMPDEST
00000755: POP
00000756: SWAP1
00000757: SWAP3
00000758: POP
00000759: SWAP1
0000075a: POP
0000075b: PUSH2 0x121d
0000075e: JUMP
0000075f: JUMPDEST
00000760: CALLVALUE
00000761: DUP1
00000762: ISZERO
00000763: PUSH2 0x076b
00000766: JUMPI
00000767: PUSH1 0x00
00000769: DUP1
0000076a: REVERT
0000076b: JUMPDEST
0000076c: POP
0000076d: PUSH2 0x0825
00000770: PUSH1 0x04
00000772: DUP1
00000773: CALLDATASIZE
00000774: SUB
00000775: PUSH1 0x60
00000777: DUP2
00000778: LT
00000779: ISZERO
0000077a: PUSH2 0x0782
0000077d: JUMPI
0000077e: PUSH1 0x00
00000780: DUP1
00000781: REVERT
00000782: JUMPDEST
00000783: DUP2
00000784: CALLDATALOAD
00000785: SWAP2
00000786: PUSH1 0x01
00000788: PUSH1 0x01
0000078a: PUSH1 0xa0
0000078c: SHL
0000078d: SUB
0000078e: PUSH1 0x20
00000790: DUP3
00000791: ADD
00000792: CALLDATALOAD
00000793: AND
00000794: SWAP2
00000795: DUP2
00000796: ADD
00000797: SWAP1
00000798: PUSH1 0x60
0000079a: DUP2
0000079b: ADD
0000079c: PUSH1 0x40
0000079e: DUP3
0000079f: ADD
000007a0: CALLDATALOAD
000007a1: PUSH1 0x01
000007a3: PUSH1 0x20
000007a5: SHL
000007a6: DUP2
000007a7: GT
000007a8: ISZERO
000007a9: PUSH2 0x07b1
000007ac: JUMPI
000007ad: PUSH1 0x00
000007af: DUP1
000007b0: REVERT
000007b1: JUMPDEST
000007b2: DUP3
000007b3: ADD
000007b4: DUP4
000007b5: PUSH1 0x20
000007b7: DUP3
000007b8: ADD
000007b9: GT
000007ba: ISZERO
000007bb: PUSH2 0x07c3
000007be: JUMPI
000007bf: PUSH1 0x00
000007c1: DUP1
000007c2: REVERT
000007c3: JUMPDEST
000007c4: DUP1
000007c5: CALLDATALOAD
000007c6: SWAP1
000007c7: PUSH1 0x20
000007c9: ADD
000007ca: SWAP2
000007cb: DUP5
000007cc: PUSH1 0x01
000007ce: DUP4
000007cf: MUL
000007d0: DUP5
000007d1: ADD
000007d2: GT
000007d3: PUSH1 0x01
000007d5: PUSH1 0x20
000007d7: SHL
000007d8: DUP4
000007d9: GT
000007da: OR
000007db: ISZERO
000007dc: PUSH2 0x07e4
000007df: JUMPI
000007e0: PUSH1 0x00
000007e2: DUP1
000007e3: REVERT
000007e4: JUMPDEST
000007e5: SWAP2
000007e6: SWAP1
000007e7: DUP1
000007e8: DUP1
000007e9: PUSH1 0x1f
000007eb: ADD
000007ec: PUSH1 0x20
000007ee: DUP1
000007ef: SWAP2
000007f0: DIV
000007f1: MUL
000007f2: PUSH1 0x20
000007f4: ADD
000007f5: PUSH1 0x40
000007f7: MLOAD
000007f8: SWAP1
000007f9: DUP2
000007fa: ADD
000007fb: PUSH1 0x40
000007fd: MSTORE
000007fe: DUP1
000007ff: SWAP4
00000800: SWAP3
00000801: SWAP2
00000802: SWAP1
00000803: DUP2
00000804: DUP2
00000805: MSTORE
00000806: PUSH1 0x20
00000808: ADD
00000809: DUP4
0000080a: DUP4
0000080b: DUP1
0000080c: DUP3
0000080d: DUP5
0000080e: CALLDATACOPY
0000080f: PUSH1 0x00
00000811: SWAP3
00000812: ADD
00000813: SWAP2
00000814: SWAP1
00000815: SWAP2
00000816: MSTORE
00000817: POP
00000818: SWAP3
00000819: SWAP6
0000081a: POP
0000081b: PUSH2 0x123b
0000081e: SWAP5
0000081f: POP
00000820: POP
00000821: POP
00000822: POP
00000823: POP
00000824: JUMP
00000825: JUMPDEST
00000826: PUSH1 0x40
00000828: MLOAD
00000829: DUP1
0000082a: DUP4
0000082b: PUSH1 0x01
0000082d: PUSH1 0x01
0000082f: PUSH1 0xa0
00000831: SHL
00000832: SUB
00000833: AND
00000834: PUSH1 0x01
00000836: PUSH1 0x01
00000838: PUSH1 0xa0
0000083a: SHL
0000083b: SUB
0000083c: AND
0000083d: DUP2
0000083e: MSTORE
0000083f: PUSH1 0x20
00000841: ADD
00000842: DUP1
00000843: PUSH1 0x20
00000845: ADD
00000846: DUP3
00000847: DUP2
00000848: SUB
00000849: DUP3
0000084a: MSTORE
0000084b: DUP4
0000084c: DUP2
0000084d: DUP2
0000084e: MLOAD
0000084f: DUP2
00000850: MSTORE
00000851: PUSH1 0x20
00000853: ADD
00000854: SWAP2
00000855: POP
00000856: DUP1
00000857: MLOAD
00000858: SWAP1
00000859: PUSH1 0x20
0000085b: ADD
0000085c: SWAP1
0000085d: DUP1
0000085e: DUP4
0000085f: DUP4
00000860: PUSH1 0x00
00000862: JUMPDEST
00000863: DUP4
00000864: DUP2
00000865: LT
00000866: ISZERO
00000867: PUSH2 0x087a
0000086a: JUMPI
0000086b: DUP2
0000086c: DUP2
0000086d: ADD
0000086e: MLOAD
0000086f: DUP4
00000870: DUP3
00000871: ADD
00000872: MSTORE
00000873: PUSH1 0x20
00000875: ADD
00000876: PUSH2 0x0862
00000879: JUMP
0000087a: JUMPDEST
0000087b: POP
0000087c: POP
0000087d: POP
0000087e: POP
0000087f: SWAP1
00000880: POP
00000881: SWAP1
00000882: DUP2
00000883: ADD
00000884: SWAP1
00000885: PUSH1 0x1f
00000887: AND
00000888: DUP1
00000889: ISZERO
0000088a: PUSH2 0x08a7
0000088d: JUMPI
0000088e: DUP1
0000088f: DUP3
00000890: SUB
00000891: DUP1
00000892: MLOAD
00000893: PUSH1 0x01
00000895: DUP4
00000896: PUSH1 0x20
00000898: SUB
00000899: PUSH2 0x0100
0000089c: EXP
0000089d: SUB
0000089e: NOT
0000089f: AND
000008a0: DUP2
000008a1: MSTORE
000008a2: PUSH1 0x20
000008a4: ADD
000008a5: SWAP2
000008a6: POP
000008a7: JUMPDEST
000008a8: POP
000008a9: SWAP4
000008aa: POP
000008ab: POP
000008ac: POP
000008ad: POP
000008ae: PUSH1 0x40
000008b0: MLOAD
000008b1: DUP1
000008b2: SWAP2
000008b3: SUB
000008b4: SWAP1
000008b5: RETURN
000008b6: JUMPDEST
000008b7: CALLVALUE
000008b8: DUP1
000008b9: ISZERO
000008ba: PUSH2 0x08c2
000008bd: JUMPI
000008be: PUSH1 0x00
000008c0: DUP1
000008c1: REVERT
000008c2: JUMPDEST
000008c3: POP
000008c4: PUSH2 0x0196
000008c7: PUSH2 0x1326
000008ca: JUMP
000008cb: JUMPDEST
000008cc: CALLVALUE
000008cd: DUP1
000008ce: ISZERO
000008cf: PUSH2 0x08d7
000008d2: JUMPI
000008d3: PUSH1 0x00
000008d5: DUP1
000008d6: REVERT
000008d7: JUMPDEST
000008d8: POP
000008d9: PUSH2 0x0196
000008dc: PUSH2 0x1335
000008df: JUMP
000008e0: JUMPDEST
000008e1: PUSH1 0x00
000008e3: PUSH1 0x01
000008e5: PUSH1 0x01
000008e7: PUSH1 0xe0
000008e9: SHL
000008ea: SUB
000008eb: NOT
000008ec: DUP3
000008ed: AND
000008ee: PUSH4 0x4fb1a07b
000008f3: PUSH1 0xe0
000008f5: SHL
000008f6: EQ
000008f7: DUP1
000008f8: PUSH2 0x0905
000008fb: JUMPI
000008fc: POP
000008fd: PUSH2 0x0905
00000900: DUP3
00000901: PUSH2 0x1344
00000904: JUMP
00000905: JUMPDEST
00000906: SWAP3
00000907: SWAP2
00000908: POP
00000909: POP
0000090a: JUMP
0000090b: JUMPDEST
0000090c: PUSH1 0x40
0000090e: DUP1
0000090f: MLOAD
00000910: PUSH1 0x20
00000912: DUP1
00000913: DUP3
00000914: ADD
00000915: SWAP5
00000916: SWAP1
00000917: SWAP5
00000918: MSTORE
00000919: PUSH1 0x01
0000091b: PUSH1 0x01
0000091d: PUSH1 0xa0
0000091f: SHL
00000920: SUB
00000921: SWAP3
00000922: SWAP1
00000923: SWAP3
00000924: AND
00000925: DUP3
00000926: DUP3
00000927: ADD
00000928: MSTORE
00000929: DUP1
0000092a: MLOAD
0000092b: DUP1
0000092c: DUP4
0000092d: SUB
0000092e: DUP3
0000092f: ADD
00000930: DUP2
00000931: MSTORE
00000932: PUSH1 0x60
00000934: SWAP1
00000935: SWAP3
00000936: ADD
00000937: SWAP1
00000938: MSTORE
00000939: DUP1
0000093a: MLOAD
0000093b: SWAP2
0000093c: ADD
0000093d: KECCAK256
0000093e: SWAP1
0000093f: JUMP
00000940: JUMPDEST
00000941: PUSH1 0x00
00000943: SLOAD
00000944: PUSH1 0x01
00000946: PUSH1 0x01
00000948: PUSH1 0xa0
0000094a: SHL
0000094b: SUB
0000094c: AND
0000094d: DUP2
0000094e: JUMP
0000094f: JUMPDEST
00000950: PUSH1 0x02
00000952: PUSH1 0x07
00000954: SLOAD
00000955: EQ
00000956: ISZERO
00000957: PUSH2 0x09a7
0000095a: JUMPI
0000095b: PUSH1 0x40
0000095d: DUP1
0000095e: MLOAD
0000095f: PUSH3 0x461bcd
00000963: PUSH1 0xe5
00000965: SHL
00000966: DUP2
00000967: MSTORE
00000968: PUSH1 0x20
0000096a: PUSH1 0x04
0000096c: DUP3
0000096d: ADD
0000096e: MSTORE
0000096f: PUSH1 0x1f
00000971: PUSH1 0x24
00000973: DUP3
00000974: ADD
00000975: MSTORE
00000976: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00
00000997: PUSH1 0x44
00000999: DUP3
0000099a: ADD
0000099b: MSTORE
0000099c: SWAP1
0000099d: MLOAD
0000099e: SWAP1
0000099f: DUP2
000009a0: SWAP1
000009a1: SUB
000009a2: PUSH1 0x64
000009a4: ADD
000009a5: SWAP1
000009a6: REVERT
000009a7: JUMPDEST
000009a8: PUSH1 0x02
000009aa: PUSH1 0x07
000009ac: SSTORE
000009ad: PUSH2 0x09ba
000009b0: DUP7
000009b1: DUP7
000009b2: DUP7
000009b3: DUP7
000009b4: DUP7
000009b5: DUP7
000009b6: PUSH2 0x135d
000009b9: JUMP
000009ba: JUMPDEST
000009bb: POP
000009bc: POP
000009bd: PUSH1 0x01
000009bf: PUSH1 0x07
000009c1: SSTORE
000009c2: POP
000009c3: POP
000009c4: POP
000009c5: POP
000009c6: JUMP
000009c7: JUMPDEST
000009c8: PUSH1 0x60
000009ca: PUSH1 0x02
000009cc: PUSH1 0x07
000009ce: SLOAD
000009cf: EQ
000009d0: ISZERO
000009d1: PUSH2 0x0a21
000009d4: JUMPI
000009d5: PUSH1 0x40
000009d7: DUP1
000009d8: MLOAD
000009d9: PUSH3 0x461bcd
000009dd: PUSH1 0xe5
000009df: SHL
000009e0: DUP2
000009e1: MSTORE
000009e2: PUSH1 0x20
000009e4: PUSH1 0x04
000009e6: DUP3
000009e7: ADD
000009e8: MSTORE
000009e9: PUSH1 0x1f
000009eb: PUSH1 0x24
000009ed: DUP3
000009ee: ADD
000009ef: MSTORE
000009f0: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00
00000a11: PUSH1 0x44
00000a13: DUP3
00000a14: ADD
00000a15: MSTORE
00000a16: SWAP1
00000a17: MLOAD
00000a18: SWAP1
00000a19: DUP2
00000a1a: SWAP1
00000a1b: SUB
00000a1c: PUSH1 0x64
00000a1e: ADD
00000a1f: SWAP1
00000a20: REVERT
00000a21: JUMPDEST
00000a22: PUSH1 0x02
00000a24: PUSH1 0x07
00000a26: SSTORE
00000a27: PUSH2 0x0a36
00000a2a: DUP10
00000a2b: DUP10
00000a2c: DUP10
00000a2d: DUP10
00000a2e: DUP10
00000a2f: DUP10
00000a30: DUP10
00000a31: DUP10
00000a32: PUSH2 0x14e8
00000a35: JUMP
00000a36: JUMPDEST
00000a37: PUSH1 0x01
00000a39: PUSH1 0x07
00000a3b: SSTORE
00000a3c: SWAP10
00000a3d: SWAP9
00000a3e: POP
00000a3f: POP
00000a40: POP
00000a41: POP
00000a42: POP
00000a43: POP
00000a44: POP
00000a45: POP
00000a46: POP
00000a47: JUMP
00000a48: JUMPDEST
00000a49: PUSH1 0x05
00000a4b: SLOAD
00000a4c: PUSH1 0x01
00000a4e: PUSH1 0x01
00000a50: PUSH1 0xa0
00000a52: SHL
00000a53: SUB
00000a54: AND
00000a55: DUP2
00000a56: JUMP
00000a57: JUMPDEST
00000a58: PUSH1 0x06
00000a5a: SLOAD
00000a5b: PUSH1 0x01
00000a5d: PUSH1 0x01
00000a5f: PUSH1 0xa0
00000a61: SHL
00000a62: SUB
00000a63: AND
00000a64: DUP2
00000a65: JUMP
00000a66: JUMPDEST
00000a67: PUSH1 0x00
00000a69: PUSH2 0x0a70
00000a6c: PUSH2 0x1825
00000a6f: JUMP
00000a70: JUMPDEST
00000a71: SWAP1
00000a72: POP
00000a73: CALLER
00000a74: PUSH1 0x01
00000a76: PUSH1 0x01
00000a78: PUSH1 0xa0
00000a7a: SHL
00000a7b: SUB
00000a7c: DUP3
00000a7d: AND
00000a7e: EQ
00000a7f: PUSH2 0x0ac0
00000a82: JUMPI
00000a83: PUSH1 0x40
00000a85: DUP1
00000a86: MLOAD
00000a87: PUSH3 0x461bcd
00000a8b: PUSH1 0xe5
00000a8d: SHL
00000a8e: DUP2
00000a8f: MSTORE
00000a90: PUSH1 0x20
00000a92: PUSH1 0x04
00000a94: DUP3
00000a95: ADD
00000a96: MSTORE
00000a97: PUSH1 0x0e
00000a99: PUSH1 0x24
00000a9b: DUP3
00000a9c: ADD
00000a9d: MSTORE
00000a9e: PUSH14 0x2727aa2fa32927a6afa0a226a4a7
00000aad: PUSH1 0x91
00000aaf: SHL
00000ab0: PUSH1 0x44
00000ab2: DUP3
00000ab3: ADD
00000ab4: MSTORE
00000ab5: SWAP1
00000ab6: MLOAD
00000ab7: SWAP1
00000ab8: DUP2
00000ab9: SWAP1
00000aba: SUB
00000abb: PUSH1 0x64
00000abd: ADD
00000abe: SWAP1
00000abf: REVERT
00000ac0: JUMPDEST
00000ac1: POP
00000ac2: JUMP
00000ac3: JUMPDEST
00000ac4: PUSH1 0x04
00000ac6: SLOAD
00000ac7: DUP2
00000ac8: JUMP
00000ac9: JUMPDEST
00000aca: PUSH2 0x0ad4
00000acd: DUP6
00000ace: DUP6
00000acf: DUP6
00000ad0: PUSH2 0x184a
00000ad3: JUMP
00000ad4: JUMPDEST
00000ad5: DUP2
00000ad6: PUSH2 0x0b1a
00000ad9: JUMPI
00000ada: PUSH1 0x40
00000adc: DUP1
00000add: MLOAD
00000ade: PUSH3 0x461bcd
00000ae2: PUSH1 0xe5
00000ae4: SHL
00000ae5: DUP2
00000ae6: MSTORE
00000ae7: PUSH1 0x20
00000ae9: PUSH1 0x04
00000aeb: DUP3
00000aec: ADD
00000aed: MSTORE
00000aee: PUSH1 0x11
00000af0: PUSH1 0x24
00000af2: DUP3
00000af3: ADD
00000af4: MSTORE
00000af5: PUSH17 0x0929cac82989288bea0a49eb0b29082a69
00000b07: PUSH1 0x7b
00000b09: SHL
00000b0a: PUSH1 0x44
00000b0c: DUP3
00000b0d: ADD
00000b0e: MSTORE
00000b0f: SWAP1
00000b10: MLOAD
00000b11: SWAP1
00000b12: DUP2
00000b13: SWAP1
00000b14: SUB
00000b15: PUSH1 0x64
00000b17: ADD
00000b18: SWAP1
00000b19: REVERT
00000b1a: JUMPDEST
00000b1b: PUSH1 0x01
00000b1d: PUSH1 0x01
00000b1f: PUSH1 0xa0
00000b21: SHL
00000b22: SUB
00000b23: DUP2
00000b24: AND
00000b25: PUSH2 0x0b66
00000b28: JUMPI
00000b29: PUSH1 0x40
00000b2b: DUP1
00000b2c: MLOAD
00000b2d: PUSH3 0x461bcd
00000b31: PUSH1 0xe5
00000b33: SHL
00000b34: DUP2
00000b35: MSTORE
00000b36: PUSH1 0x20
00000b38: PUSH1 0x04
00000b3a: DUP3
00000b3b: ADD
00000b3c: MSTORE
00000b3d: PUSH1 0x0e
00000b3f: PUSH1 0x24
00000b41: DUP3
00000b42: ADD
00000b43: MSTORE
00000b44: PUSH14 0x24a72b20a624a22fa122a0a1a7a7
00000b53: PUSH1 0x91
00000b55: SHL
00000b56: PUSH1 0x44
00000b58: DUP3
00000b59: ADD
00000b5a: MSTORE
00000b5b: SWAP1
00000b5c: MLOAD
00000b5d: SWAP1
00000b5e: DUP2
00000b5f: SWAP1
00000b60: SUB
00000b61: PUSH1 0x64
00000b63: ADD
00000b64: SWAP1
00000b65: REVERT
00000b66: JUMPDEST
00000b67: PUSH1 0x04
00000b69: SWAP2
00000b6a: SWAP1
00000b6b: SWAP2
00000b6c: SSTORE
00000b6d: PUSH1 0x05
00000b6f: DUP1
00000b70: SLOAD
00000b71: PUSH1 0x01
00000b73: PUSH1 0x01
00000b75: PUSH1 0xa0
00000b77: SHL
00000b78: SUB
00000b79: SWAP1
00000b7a: SWAP3
00000b7b: AND
00000b7c: PUSH1 0x01
00000b7e: PUSH1 0x01
00000b80: PUSH1 0xa0
00000b82: SHL
00000b83: SUB
00000b84: NOT
00000b85: SWAP3
00000b86: DUP4
00000b87: AND
00000b88: OR
00000b89: SWAP1
00000b8a: SSTORE
00000b8b: PUSH1 0x06
00000b8d: DUP1
00000b8e: SLOAD
00000b8f: SWAP1
00000b90: SWAP2
00000b91: AND
00000b92: SWAP1
00000b93: SSTORE
00000b94: POP
00000b95: POP
00000b96: PUSH1 0x01
00000b98: PUSH1 0x07
00000b9a: SSTORE
00000b9b: POP
00000b9c: JUMP
00000b9d: JUMPDEST
00000b9e: PUSH1 0x60
00000ba0: DUP1
00000ba1: PUSH2 0x0bb1
00000ba4: DUP8
00000ba5: PUSH4 0x06fdde03
00000baa: PUSH1 0xe0
00000bac: SHL
00000bad: PUSH2 0x1907
00000bb0: JUMP
00000bb1: JUMPDEST
00000bb2: PUSH2 0x0bc2
00000bb5: DUP9
00000bb6: PUSH4 0x95d89b41
00000bbb: PUSH1 0xe0
00000bbd: SHL
00000bbe: PUSH2 0x1907
00000bc1: JUMP
00000bc2: JUMPDEST
00000bc3: PUSH2 0x0bd3
00000bc6: DUP10
00000bc7: PUSH4 0x313ce567
00000bcc: PUSH1 0xe0
00000bce: SHL
00000bcf: PUSH2 0x1907
00000bd2: JUMP
00000bd3: JUMPDEST
00000bd4: PUSH1 0x40
00000bd6: MLOAD
00000bd7: PUSH1 0x20
00000bd9: ADD
00000bda: DUP1
00000bdb: DUP1
00000bdc: PUSH1 0x20
00000bde: ADD
00000bdf: DUP1
00000be0: PUSH1 0x20
00000be2: ADD
00000be3: DUP1
00000be4: PUSH1 0x20
00000be6: ADD
00000be7: DUP5
00000be8: DUP2
00000be9: SUB
00000bea: DUP5
00000beb: MSTORE
00000bec: DUP8
00000bed: DUP2
00000bee: DUP2
00000bef: MLOAD
00000bf0: DUP2
00000bf1: MSTORE
00000bf2: PUSH1 0x20
00000bf4: ADD
00000bf5: SWAP2
00000bf6: POP
00000bf7: DUP1
00000bf8: MLOAD
00000bf9: SWAP1
00000bfa: PUSH1 0x20
00000bfc: ADD
00000bfd: SWAP1
00000bfe: DUP1
00000bff: DUP4
00000c00: DUP4
00000c01: PUSH1 0x00
00000c03: JUMPDEST
00000c04: DUP4
00000c05: DUP2
00000c06: LT
00000c07: ISZERO
00000c08: PUSH2 0x0c1b
00000c0b: JUMPI
00000c0c: DUP2
00000c0d: DUP2
00000c0e: ADD
00000c0f: MLOAD
00000c10: DUP4
00000c11: DUP3
00000c12: ADD
00000c13: MSTORE
00000c14: PUSH1 0x20
00000c16: ADD
00000c17: PUSH2 0x0c03
00000c1a: JUMP
00000c1b: JUMPDEST
00000c1c: POP
00000c1d: POP
00000c1e: POP
00000c1f: POP
00000c20: SWAP1
00000c21: POP
00000c22: SWAP1
00000c23: DUP2
00000c24: ADD
00000c25: SWAP1
00000c26: PUSH1 0x1f
00000c28: AND
00000c29: DUP1
00000c2a: ISZERO
00000c2b: PUSH2 0x0c48
00000c2e: JUMPI
00000c2f: DUP1
00000c30: DUP3
00000c31: SUB
00000c32: DUP1
00000c33: MLOAD
00000c34: PUSH1 0x01
00000c36: DUP4
00000c37: PUSH1 0x20
00000c39: SUB
00000c3a: PUSH2 0x0100
00000c3d: EXP
00000c3e: SUB
00000c3f: NOT
00000c40: AND
00000c41: DUP2
00000c42: MSTORE
00000c43: PUSH1 0x20
00000c45: ADD
00000c46: SWAP2
00000c47: POP
00000c48: JUMPDEST
00000c49: POP
00000c4a: DUP5
00000c4b: DUP2
00000c4c: SUB
00000c4d: DUP4
00000c4e: MSTORE
00000c4f: DUP7
00000c50: MLOAD
00000c51: DUP2
00000c52: MSTORE
00000c53: DUP7
00000c54: MLOAD
00000c55: PUSH1 0x20
00000c57: SWAP2
00000c58: DUP3
00000c59: ADD
00000c5a: SWAP2
00000c5b: DUP9
00000c5c: ADD
00000c5d: SWAP1
00000c5e: DUP1
00000c5f: DUP4
00000c60: DUP4
00000c61: PUSH1 0x00
00000c63: JUMPDEST
00000c64: DUP4
00000c65: DUP2
00000c66: LT
00000c67: ISZERO
00000c68: PUSH2 0x0c7b
00000c6b: JUMPI
00000c6c: DUP2
00000c6d: DUP2
00000c6e: ADD
00000c6f: MLOAD
00000c70: DUP4
00000c71: DUP3
00000c72: ADD
00000c73: MSTORE
00000c74: PUSH1 0x20
00000c76: ADD
00000c77: PUSH2 0x0c63
00000c7a: JUMP
00000c7b: JUMPDEST
00000c7c: POP
00000c7d: POP
00000c7e: POP
00000c7f: POP
00000c80: SWAP1
00000c81: POP
00000c82: SWAP1
00000c83: DUP2
00000c84: ADD
00000c85: SWAP1
00000c86: PUSH1 0x1f
00000c88: AND
00000c89: DUP1
00000c8a: ISZERO
00000c8b: PUSH2 0x0ca8
00000c8e: JUMPI
00000c8f: DUP1
00000c90: DUP3
00000c91: SUB
00000c92: DUP1
00000c93: MLOAD
00000c94: PUSH1 0x01
00000c96: DUP4
00000c97: PUSH1 0x20
00000c99: SUB
00000c9a: PUSH2 0x0100
00000c9d: EXP
00000c9e: SUB
00000c9f: NOT
00000ca0: AND
00000ca1: DUP2
00000ca2: MSTORE
00000ca3: PUSH1 0x20
00000ca5: ADD
00000ca6: SWAP2
00000ca7: POP
00000ca8: JUMPDEST
00000ca9: POP
00000caa: DUP5
00000cab: DUP2
00000cac: SUB
00000cad: DUP3
00000cae: MSTORE
00000caf: DUP6
00000cb0: MLOAD
00000cb1: DUP2
00000cb2: MSTORE
00000cb3: DUP6
00000cb4: MLOAD
00000cb5: PUSH1 0x20
00000cb7: SWAP2
00000cb8: DUP3
00000cb9: ADD
00000cba: SWAP2
00000cbb: DUP8
00000cbc: ADD
00000cbd: SWAP1
00000cbe: DUP1
00000cbf: DUP4
00000cc0: DUP4
00000cc1: PUSH1 0x00
00000cc3: JUMPDEST
00000cc4: DUP4
00000cc5: DUP2
00000cc6: LT
00000cc7: ISZERO
00000cc8: PUSH2 0x0cdb
00000ccb: JUMPI
00000ccc: DUP2
00000ccd: DUP2
00000cce: ADD
00000ccf: MLOAD
00000cd0: DUP4
00000cd1: DUP3
00000cd2: ADD
00000cd3: MSTORE
00000cd4: PUSH1 0x20
00000cd6: ADD
00000cd7: PUSH2 0x0cc3
00000cda: JUMP
00000cdb: JUMPDEST
00000cdc: POP
00000cdd: POP
00000cde: POP
00000cdf: POP
00000ce0: SWAP1
00000ce1: POP
00000ce2: SWAP1
00000ce3: DUP2
00000ce4: ADD
00000ce5: SWAP1
00000ce6: PUSH1 0x1f
00000ce8: AND
00000ce9: DUP1
00000cea: ISZERO
00000ceb: PUSH2 0x0d08
00000cee: JUMPI
00000cef: DUP1
00000cf0: DUP3
00000cf1: SUB
00000cf2: DUP1
00000cf3: MLOAD
00000cf4: PUSH1 0x01
00000cf6: DUP4
00000cf7: PUSH1 0x20
00000cf9: SUB
00000cfa: PUSH2 0x0100
00000cfd: EXP
00000cfe: SUB
00000cff: NOT
00000d00: AND
00000d01: DUP2
00000d02: MSTORE
00000d03: PUSH1 0x20
00000d05: ADD
00000d06: SWAP2
00000d07: POP
00000d08: JUMPDEST
00000d09: POP
00000d0a: SWAP7
00000d0b: POP
00000d0c: POP
00000d0d: POP
00000d0e: POP
00000d0f: POP
00000d10: POP
00000d11: POP
00000d12: PUSH1 0x40
00000d14: MLOAD
00000d15: PUSH1 0x20
00000d17: DUP2
00000d18: DUP4
00000d19: SUB
00000d1a: SUB
00000d1b: DUP2
00000d1c: MSTORE
00000d1d: SWAP1
00000d1e: PUSH1 0x40
00000d20: MSTORE
00000d21: SWAP1
00000d22: POP
00000d23: PUSH4 0x2e567b36
00000d28: PUSH1 0xe0
00000d2a: SHL
00000d2b: DUP8
00000d2c: DUP8
00000d2d: DUP8
00000d2e: DUP8
00000d2f: PUSH2 0x0d38
00000d32: DUP7
00000d33: DUP10
00000d34: PUSH2 0x19de
00000d37: JUMP
00000d38: JUMPDEST
00000d39: PUSH1 0x40
00000d3b: MLOAD
00000d3c: PUSH1 0x01
00000d3e: PUSH1 0x01
00000d40: PUSH1 0xa0
00000d42: SHL
00000d43: SUB
00000d44: DUP1
00000d45: DUP8
00000d46: AND
00000d47: PUSH1 0x24
00000d49: DUP4
00000d4a: ADD
00000d4b: SWAP1
00000d4c: DUP2
00000d4d: MSTORE
00000d4e: DUP7
00000d4f: DUP3
00000d50: AND
00000d51: PUSH1 0x44
00000d53: DUP5
00000d54: ADD
00000d55: MSTORE
00000d56: SWAP1
00000d57: DUP6
00000d58: AND
00000d59: PUSH1 0x64
00000d5b: DUP4
00000d5c: ADD
00000d5d: MSTORE
00000d5e: PUSH1 0x84
00000d60: DUP3
00000d61: ADD
00000d62: DUP5
00000d63: SWAP1
00000d64: MSTORE
00000d65: PUSH1 0xa0
00000d67: PUSH1 0xa4
00000d69: DUP4
00000d6a: ADD
00000d6b: SWAP1
00000d6c: DUP2
00000d6d: MSTORE
00000d6e: DUP4
00000d6f: MLOAD
00000d70: PUSH1 0xc4
00000d72: DUP5
00000d73: ADD
00000d74: MSTORE
00000d75: DUP4
00000d76: MLOAD
00000d77: SWAP2
00000d78: SWAP3
00000d79: SWAP1
00000d7a: SWAP2
00000d7b: PUSH1 0xe4
00000d7d: SWAP1
00000d7e: SWAP2
00000d7f: ADD
00000d80: SWAP1
00000d81: PUSH1 0x20
00000d83: DUP6
00000d84: ADD
00000d85: SWAP1
00000d86: DUP1
00000d87: DUP4
00000d88: DUP4
00000d89: PUSH1 0x00
00000d8b: JUMPDEST
00000d8c: DUP4
00000d8d: DUP2
00000d8e: LT
00000d8f: ISZERO
00000d90: PUSH2 0x0da3
00000d93: JUMPI
00000d94: DUP2
00000d95: DUP2
00000d96: ADD
00000d97: MLOAD
00000d98: DUP4
00000d99: DUP3
00000d9a: ADD
00000d9b: MSTORE
00000d9c: PUSH1 0x20
00000d9e: ADD
00000d9f: PUSH2 0x0d8b
00000da2: JUMP
00000da3: JUMPDEST
00000da4: POP
00000da5: POP
00000da6: POP
00000da7: POP
00000da8: SWAP1
00000da9: POP
00000daa: SWAP1
00000dab: DUP2
00000dac: ADD
00000dad: SWAP1
00000dae: PUSH1 0x1f
00000db0: AND
00000db1: DUP1
00000db2: ISZERO
00000db3: PUSH2 0x0dd0
00000db6: JUMPI
00000db7: DUP1
00000db8: DUP3
00000db9: SUB
00000dba: DUP1
00000dbb: MLOAD
00000dbc: PUSH1 0x01
00000dbe: DUP4
00000dbf: PUSH1 0x20
00000dc1: SUB
00000dc2: PUSH2 0x0100
00000dc5: EXP
00000dc6: SUB
00000dc7: NOT
00000dc8: AND
00000dc9: DUP2
00000dca: MSTORE
00000dcb: PUSH1 0x20
00000dcd: ADD
00000dce: SWAP2
00000dcf: POP
00000dd0: JUMPDEST
00000dd1: POP
00000dd2: PUSH1 0x40
00000dd4: DUP1
00000dd5: MLOAD
00000dd6: PUSH1 0x1f
00000dd8: NOT
00000dd9: DUP2
00000dda: DUP5
00000ddb: SUB
00000ddc: ADD
00000ddd: DUP2
00000dde: MSTORE
00000ddf: SWAP2
00000de0: SWAP1
00000de1: MSTORE
00000de2: PUSH1 0x20
00000de4: DUP2
00000de5: ADD
00000de6: DUP1
00000de7: MLOAD
00000de8: PUSH1 0x01
00000dea: PUSH1 0x01
00000dec: PUSH1 0xe0
00000dee: SHL
00000def: SUB
00000df0: AND
00000df1: PUSH1 0x01
00000df3: PUSH1 0x01
00000df5: PUSH1 0xe0
00000df7: SHL
00000df8: SUB
00000df9: NOT
00000dfa: SWAP1
00000dfb: SWAP11
00000dfc: AND
00000dfd: SWAP10
00000dfe: SWAP1
00000dff: SWAP10
00000e00: OR
00000e01: SWAP1
00000e02: SWAP9
00000e03: MSTORE
00000e04: POP
00000e05: SWAP6
00000e06: SWAP8
00000e07: POP
00000e08: POP
00000e09: POP
00000e0a: POP
00000e0b: POP
00000e0c: POP
00000e0d: POP
00000e0e: POP
00000e0f: SWAP6
00000e10: SWAP5
00000e11: POP
00000e12: POP
00000e13: POP
00000e14: POP
00000e15: POP
00000e16: JUMP
00000e17: JUMPDEST
00000e18: PUSH1 0x00
00000e1a: DUP1
00000e1b: PUSH2 0x0e23
00000e1e: DUP4
00000e1f: PUSH2 0x1ad0
00000e22: JUMP
00000e23: JUMPDEST
00000e24: PUSH1 0x04
00000e26: SLOAD
00000e27: PUSH1 0x05
00000e29: SLOAD
00000e2a: SWAP2
00000e2b: SWAP3
00000e2c: POP
00000e2d: PUSH2 0x0e41
00000e30: SWAP2
00000e31: DUP4
00000e32: SWAP2
00000e33: SWAP1
00000e34: PUSH1 0x01
00000e36: PUSH1 0x01
00000e38: PUSH1 0xa0
00000e3a: SHL
00000e3b: SUB
00000e3c: AND
00000e3d: PUSH2 0x1b28
00000e40: JUMP
00000e41: JUMPDEST
00000e42: SWAP4
00000e43: SWAP3
00000e44: POP
00000e45: POP
00000e46: POP
00000e47: JUMP
00000e48: JUMPDEST
00000e49: PUSH1 0x03
00000e4b: PUSH1 0x20
00000e4d: SWAP1
00000e4e: DUP2
00000e4f: MSTORE
00000e50: PUSH1 0x00
00000e52: SWAP2
00000e53: DUP3
00000e54: MSTORE
00000e55: PUSH1 0x40
00000e57: SWAP2
00000e58: DUP3
00000e59: SWAP1
00000e5a: KECCAK256
00000e5b: DUP1
00000e5c: SLOAD
00000e5d: PUSH1 0x01
00000e5f: DUP1
00000e60: DUP4
00000e61: ADD
00000e62: DUP1
00000e63: SLOAD
00000e64: DUP7
00000e65: MLOAD
00000e66: PUSH1 0x02
00000e68: PUSH2 0x0100
00000e6b: SWAP5
00000e6c: DUP4
00000e6d: AND
00000e6e: ISZERO
00000e6f: DUP6
00000e70: MUL
00000e71: PUSH1 0x00
00000e73: NOT
00000e74: ADD
00000e75: SWAP1
00000e76: SWAP3
00000e77: AND
00000e78: SWAP2
00000e79: SWAP1
00000e7a: SWAP2
00000e7b: DIV
00000e7c: PUSH1 0x1f
00000e7e: DUP2
00000e7f: ADD
00000e80: DUP8
00000e81: SWAP1
00000e82: DIV
00000e83: DUP8
00000e84: MUL
00000e85: DUP3
00000e86: ADD
00000e87: DUP8
00000e88: ADD
00000e89: SWAP1
00000e8a: SWAP8
00000e8b: MSTORE
00000e8c: DUP7
00000e8d: DUP2
00000e8e: MSTORE
00000e8f: PUSH1 0xff
00000e91: DUP5
00000e92: AND
00000e93: SWAP7
00000e94: SWAP3
00000e95: SWAP1
00000e96: SWAP4
00000e97: DIV
00000e98: PUSH1 0x01
00000e9a: PUSH1 0x01
00000e9c: PUSH1 0xa0
00000e9e: SHL
00000e9f: SUB
00000ea0: AND
00000ea1: SWAP5
00000ea2: SWAP1
00000ea3: SWAP2
00000ea4: SWAP1
00000ea5: DUP4
00000ea6: ADD
00000ea7: DUP3
00000ea8: DUP3
00000ea9: DUP1
00000eaa: ISZERO
00000eab: PUSH2 0x0ef5
00000eae: JUMPI
00000eaf: DUP1
00000eb0: PUSH1 0x1f
00000eb2: LT
00000eb3: PUSH2 0x0eca
00000eb6: JUMPI
00000eb7: PUSH2 0x0100
00000eba: DUP1
00000ebb: DUP4
00000ebc: SLOAD
00000ebd: DIV
00000ebe: MUL
00000ebf: DUP4
00000ec0: MSTORE
00000ec1: SWAP2
00000ec2: PUSH1 0x20
00000ec4: ADD
00000ec5: SWAP2
00000ec6: PUSH2 0x0ef5
00000ec9: JUMP
00000eca: JUMPDEST
00000ecb: DUP3
00000ecc: ADD
00000ecd: SWAP2
00000ece: SWAP1
00000ecf: PUSH1 0x00
00000ed1: MSTORE
00000ed2: PUSH1 0x20
00000ed4: PUSH1 0x00
00000ed6: KECCAK256
00000ed7: SWAP1
00000ed8: JUMPDEST
00000ed9: DUP2
00000eda: SLOAD
00000edb: DUP2
00000edc: MSTORE
00000edd: SWAP1
00000ede: PUSH1 0x01
00000ee0: ADD
00000ee1: SWAP1
00000ee2: PUSH1 0x20
00000ee4: ADD
00000ee5: DUP1
00000ee6: DUP4
00000ee7: GT
00000ee8: PUSH2 0x0ed8
00000eeb: JUMPI
00000eec: DUP3
00000eed: SWAP1
00000eee: SUB
00000eef: PUSH1 0x1f
00000ef1: AND
00000ef2: DUP3
00000ef3: ADD
00000ef4: SWAP2
00000ef5: JUMPDEST
00000ef6: POP
00000ef7: POP
00000ef8: POP
00000ef9: POP
00000efa: POP
00000efb: SWAP1
00000efc: POP
00000efd: DUP4
00000efe: JUMP
00000eff: JUMPDEST
00000f00: PUSH1 0x00
00000f02: PUSH2 0x0f1b
00000f05: DUP9
00000f06: DUP9
00000f07: PUSH1 0x40
00000f09: MLOAD
00000f0a: DUP1
00000f0b: PUSH1 0x20
00000f0d: ADD
00000f0e: PUSH1 0x40
00000f10: MSTORE
00000f11: DUP1
00000f12: PUSH1 0x00
00000f14: DUP2
00000f15: MSTORE
00000f16: POP
00000f17: PUSH2 0x123b
00000f1a: JUMP
00000f1b: JUMPDEST
00000f1c: POP
00000f1d: SWAP1
00000f1e: POP
00000f1f: CALLER
00000f20: PUSH1 0x01
00000f22: PUSH1 0x01
00000f24: PUSH1 0xa0
00000f26: SHL
00000f27: SUB
00000f28: DUP3
00000f29: AND
00000f2a: EQ
00000f2b: PUSH2 0x0f71
00000f2e: JUMPI
00000f2f: PUSH1 0x40
00000f31: DUP1
00000f32: MLOAD
00000f33: PUSH3 0x461bcd
00000f37: PUSH1 0xe5
00000f39: SHL
00000f3a: DUP2
00000f3b: MSTORE
00000f3c: PUSH1 0x20
00000f3e: PUSH1 0x04
00000f40: DUP3
00000f41: ADD
00000f42: MSTORE
00000f43: PUSH1 0x13
00000f45: PUSH1 0x24
00000f47: DUP3
00000f48: ADD
00000f49: MSTORE
00000f4a: PUSH19 0x2727aa2fa2ac2822a1aa22a22fa9a2a72222a9
00000f5e: PUSH1 0x69
00000f60: SHL
00000f61: PUSH1 0x44
00000f63: DUP3
00000f64: ADD
00000f65: MSTORE
00000f66: SWAP1
00000f67: MLOAD
00000f68: SWAP1
00000f69: DUP2
00000f6a: SWAP1
00000f6b: SUB
00000f6c: PUSH1 0x64
00000f6e: ADD
00000f6f: SWAP1
00000f70: REVERT
00000f71: JUMPDEST
00000f72: DUP4
00000f73: ISZERO
00000f74: PUSH2 0x0fb6
00000f77: JUMPI
00000f78: PUSH1 0x40
00000f7a: DUP1
00000f7b: MLOAD
00000f7c: PUSH3 0x461bcd
00000f80: PUSH1 0xe5
00000f82: SHL
00000f83: DUP2
00000f84: MSTORE
00000f85: PUSH1 0x20
00000f87: PUSH1 0x04
00000f89: DUP3
00000f8a: ADD
00000f8b: MSTORE
00000f8c: PUSH1 0x0f
00000f8e: PUSH1 0x24
00000f90: DUP3
00000f91: ADD
00000f92: MSTORE
00000f93: PUSH15 0x1393d7d110551057d0531313d5d151
00000fa3: PUSH1 0x8a
00000fa5: SHL
00000fa6: PUSH1 0x44
00000fa8: DUP3
00000fa9: ADD
00000faa: MSTORE
00000fab: SWAP1
00000fac: MLOAD
00000fad: SWAP1
00000fae: DUP2
00000faf: SWAP1
00000fb0: SUB
00000fb1: PUSH1 0x64
00000fb3: ADD
00000fb4: SWAP1
00000fb5: REVERT
00000fb6: JUMPDEST
00000fb7: PUSH2 0x0ff8
00000fba: DUP9
00000fbb: DUP9
00000fbc: DUP9
00000fbd: DUP9
00000fbe: DUP9
00000fbf: DUP1
00000fc0: DUP1
00000fc1: PUSH1 0x1f
00000fc3: ADD
00000fc4: PUSH1 0x20
00000fc6: DUP1
00000fc7: SWAP2
00000fc8: DIV
00000fc9: MUL
00000fca: PUSH1 0x20
00000fcc: ADD
00000fcd: PUSH1 0x40
00000fcf: MLOAD
00000fd0: SWAP1
00000fd1: DUP2
00000fd2: ADD
00000fd3: PUSH1 0x40
00000fd5: MSTORE
00000fd6: DUP1
00000fd7: SWAP4
00000fd8: SWAP3
00000fd9: SWAP2
00000fda: SWAP1
00000fdb: DUP2
00000fdc: DUP2
00000fdd: MSTORE
00000fde: PUSH1 0x20
00000fe0: ADD
00000fe1: DUP4
00000fe2: DUP4
00000fe3: DUP1
00000fe4: DUP3
00000fe5: DUP5
00000fe6: CALLDATACOPY
00000fe7: PUSH1 0x00
00000fe9: SWAP3
00000fea: ADD
00000feb: SWAP2
00000fec: SWAP1
00000fed: SWAP2
00000fee: MSTORE
00000fef: POP
00000ff0: PUSH2 0x1b83
00000ff3: SWAP3
00000ff4: POP
00000ff5: POP
00000ff6: POP
00000ff7: JUMP
00000ff8: JUMPDEST
00000ff9: DUP2
00000ffa: ISZERO
00000ffb: PUSH2 0x1160
00000ffe: JUMPI
00000fff: PUSH2 0x1010
00001002: DUP7
00001003: PUSH1 0x01
00001005: PUSH1 0x01
00001007: PUSH1 0xa0
00001009: SHL
0000100a: SUB
0000100b: AND
0000100c: PUSH2 0x1c14
0000100f: JUMP
00001010: JUMPDEST
00001011: PUSH2 0x1053
00001014: JUMPI
00001015: PUSH1 0x40
00001017: DUP1
00001018: MLOAD
00001019: PUSH3 0x461bcd
0000101d: PUSH1 0xe5
0000101f: SHL
00001020: DUP2
00001021: MSTORE
00001022: PUSH1 0x20
00001024: PUSH1 0x04
00001026: DUP3
00001027: ADD
00001028: MSTORE
00001029: PUSH1 0x0f
0000102b: PUSH1 0x24
0000102d: DUP3
0000102e: ADD
0000102f: MSTORE
00001030: PUSH15 0x1513d7d393d517d0d3d395149050d5
00001040: PUSH1 0x8a
00001042: SHL
00001043: PUSH1 0x44
00001045: DUP3
00001046: ADD
00001047: MSTORE
00001048: SWAP1
00001049: MLOAD
0000104a: SWAP1
0000104b: DUP2
0000104c: SWAP1
0000104d: SUB
0000104e: PUSH1 0x64
00001050: ADD
00001051: SWAP1
00001052: REVERT
00001053: JUMPDEST
00001054: PUSH1 0x00
00001056: DUP7
00001057: PUSH1 0x01
00001059: PUSH1 0x01
0000105b: PUSH1 0xa0
0000105d: SHL
0000105e: SUB
0000105f: AND
00001060: PUSH4 0x592e2070
00001065: DUP4
00001066: DUP12
00001067: DUP8
00001068: DUP8
00001069: PUSH1 0x40
0000106b: MLOAD
0000106c: DUP6
0000106d: PUSH4 0xffffffff
00001072: AND
00001073: PUSH1 0xe0
00001075: SHL
00001076: DUP2
00001077: MSTORE
00001078: PUSH1 0x04
0000107a: ADD
0000107b: DUP1
0000107c: DUP6
0000107d: PUSH1 0x01
0000107f: PUSH1 0x01
00001081: PUSH1 0xa0
00001083: SHL
00001084: SUB
00001085: AND
00001086: PUSH1 0x01
00001088: PUSH1 0x01
0000108a: PUSH1 0xa0
0000108c: SHL
0000108d: SUB
0000108e: AND
0000108f: DUP2
00001090: MSTORE
00001091: PUSH1 0x20
00001093: ADD
00001094: DUP5
00001095: DUP2
00001096: MSTORE
00001097: PUSH1 0x20
00001099: ADD
0000109a: DUP1
0000109b: PUSH1 0x20
0000109d: ADD
0000109e: DUP3
0000109f: DUP2
000010a0: SUB
000010a1: DUP3
000010a2: MSTORE
000010a3: DUP5
000010a4: DUP5
000010a5: DUP3
000010a6: DUP2
000010a7: DUP2
000010a8: MSTORE
000010a9: PUSH1 0x20
000010ab: ADD
000010ac: SWAP3
000010ad: POP
000010ae: DUP1
000010af: DUP3
000010b0: DUP5
000010b1: CALLDATACOPY
000010b2: PUSH1 0x00
000010b4: DUP2
000010b5: DUP5
000010b6: ADD
000010b7: MSTORE
000010b8: PUSH1 0x1f
000010ba: NOT
000010bb: PUSH1 0x1f
000010bd: DUP3
000010be: ADD
000010bf: AND
000010c0: SWAP1
000010c1: POP
000010c2: DUP1
000010c3: DUP4
000010c4: ADD
000010c5: SWAP3
000010c6: POP
000010c7: POP
000010c8: POP
000010c9: SWAP6
000010ca: POP
000010cb: POP
000010cc: POP
000010cd: POP
000010ce: POP
000010cf: POP
000010d0: PUSH1 0x20
000010d2: PUSH1 0x40
000010d4: MLOAD
000010d5: DUP1
000010d6: DUP4
000010d7: SUB
000010d8: DUP2
000010d9: PUSH1 0x00
000010db: DUP8
000010dc: DUP1
000010dd: EXTCODESIZE
000010de: ISZERO
000010df: DUP1
000010e0: ISZERO
000010e1: PUSH2 0x10e9
000010e4: JUMPI
000010e5: PUSH1 0x00
000010e7: DUP1
000010e8: REVERT
000010e9: JUMPDEST
000010ea: POP
000010eb: GAS
000010ec: CALL
000010ed: ISZERO
000010ee: DUP1
000010ef: ISZERO
000010f0: PUSH2 0x10fd
000010f3: JUMPI
000010f4: RETURNDATASIZE
000010f5: PUSH1 0x00
000010f7: DUP1
000010f8: RETURNDATACOPY
000010f9: RETURNDATASIZE
000010fa: PUSH1 0x00
000010fc: REVERT
000010fd: JUMPDEST
000010fe: POP
000010ff: POP
00001100: POP
00001101: POP
00001102: PUSH1 0x40
00001104: MLOAD
00001105: RETURNDATASIZE
00001106: PUSH1 0x20
00001108: DUP2
00001109: LT
0000110a: ISZERO
0000110b: PUSH2 0x1113
0000110e: JUMPI
0000110f: PUSH1 0x00
00001111: DUP1
00001112: REVERT
00001113: JUMPDEST
00001114: POP
00001115: MLOAD
00001116: SWAP1
00001117: POP
00001118: DUP1
00001119: PUSH2 0x115e
0000111c: JUMPI
0000111d: PUSH1 0x40
0000111f: DUP1
00001120: MLOAD
00001121: PUSH3 0x461bcd
00001125: PUSH1 0xe5
00001127: SHL
00001128: DUP2
00001129: MSTORE
0000112a: PUSH1 0x20
0000112c: PUSH1 0x04
0000112e: DUP3
0000112f: ADD
00001130: MSTORE
00001131: PUSH1 0x12
00001133: PUSH1 0x24
00001135: DUP3
00001136: ADD
00001137: MSTORE
00001138: PUSH18 0x1514905394d1915497d213d3d2d7d1905253
0000114b: PUSH1 0x72
0000114d: SHL
0000114e: PUSH1 0x44
00001150: DUP3
00001151: ADD
00001152: MSTORE
00001153: SWAP1
00001154: MLOAD
00001155: SWAP1
00001156: DUP2
00001157: SWAP1
00001158: SUB
00001159: PUSH1 0x64
0000115b: ADD
0000115c: SWAP1
0000115d: REVERT
0000115e: JUMPDEST
0000115f: POP
00001160: JUMPDEST
00001161: DUP8
00001162: DUP7
00001163: PUSH1 0x01
00001165: PUSH1 0x01
00001167: PUSH1 0xa0
00001169: SHL
0000116a: SUB
0000116b: AND
0000116c: DUP3
0000116d: PUSH1 0x01
0000116f: PUSH1 0x01
00001171: PUSH1 0xa0
00001173: SHL
00001174: SUB
00001175: AND
00001176: PUSH32 0x56735ccb9dc7d2222ce4177fc3aea44c33882e2a2c73e0fb1c6b93c9c13a04d4
00001197: DUP9
00001198: DUP9
00001199: DUP9
0000119a: DUP9
0000119b: PUSH1 0x00
0000119d: DUP12
0000119e: DUP12
0000119f: SWAP1
000011a0: POP
000011a1: GT
000011a2: PUSH1 0x40
000011a4: MLOAD
000011a5: DUP1
000011a6: DUP1
000011a7: PUSH1 0x20
000011a9: ADD
000011aa: DUP1
000011ab: PUSH1 0x20
000011ad: ADD
000011ae: DUP5
000011af: ISZERO
000011b0: ISZERO
000011b1: ISZERO
000011b2: ISZERO
000011b3: DUP2
000011b4: MSTORE
000011b5: PUSH1 0x20
000011b7: ADD
000011b8: DUP4
000011b9: DUP2
000011ba: SUB
000011bb: DUP4
000011bc: MSTORE
000011bd: DUP9
000011be: DUP9
000011bf: DUP3
000011c0: DUP2
000011c1: DUP2
000011c2: MSTORE
000011c3: PUSH1 0x20
000011c5: ADD
000011c6: SWAP3
000011c7: POP
000011c8: DUP1
000011c9: DUP3
000011ca: DUP5
000011cb: CALLDATACOPY
000011cc: PUSH1 0x00
000011ce: DUP4
000011cf: DUP3
000011d0: ADD
000011d1: MSTORE
000011d2: PUSH1 0x1f
000011d4: ADD
000011d5: PUSH1 0x1f
000011d7: NOT
000011d8: AND
000011d9: SWAP1
000011da: SWAP2
000011db: ADD
000011dc: DUP5
000011dd: DUP2
000011de: SUB
000011df: DUP4
000011e0: MSTORE
000011e1: DUP7
000011e2: DUP2
000011e3: MSTORE
000011e4: PUSH1 0x20
000011e6: ADD
000011e7: SWAP1
000011e8: POP
000011e9: DUP7
000011ea: DUP7
000011eb: DUP1
000011ec: DUP3
000011ed: DUP5
000011ee: CALLDATACOPY
000011ef: PUSH1 0x00
000011f1: DUP4
000011f2: DUP3
000011f3: ADD
000011f4: MSTORE
000011f5: PUSH1 0x40
000011f7: MLOAD
000011f8: PUSH1 0x1f
000011fa: SWAP1
000011fb: SWAP2
000011fc: ADD
000011fd: PUSH1 0x1f
000011ff: NOT
00001200: AND
00001201: SWAP1
00001202: SWAP3
00001203: ADD
00001204: DUP3
00001205: SWAP1
00001206: SUB
00001207: SWAP10
00001208: POP
00001209: SWAP1
0000120a: SWAP8
0000120b: POP
0000120c: POP
0000120d: POP
0000120e: POP
0000120f: POP
00001210: POP
00001211: POP
00001212: POP
00001213: LOG4
00001214: POP
00001215: POP
00001216: POP
00001217: POP
00001218: POP
00001219: POP
0000121a: POP
0000121b: POP
0000121c: JUMP
0000121d: JUMPDEST
0000121e: PUSH1 0x60
00001220: PUSH2 0x122f
00001223: DUP9
00001224: DUP9
00001225: DUP10
00001226: DUP10
00001227: DUP10
00001228: DUP10
00001229: DUP10
0000122a: DUP10
0000122b: PUSH2 0x09c7
0000122e: JUMP
0000122f: JUMPDEST
00001230: SWAP9
00001231: SWAP8
00001232: POP
00001233: POP
00001234: POP
00001235: POP
00001236: POP
00001237: POP
00001238: POP
00001239: POP
0000123a: JUMP
0000123b: JUMPDEST
0000123c: PUSH1 0x00
0000123e: PUSH1 0x60
00001240: PUSH1 0x00
00001242: PUSH2 0x124b
00001245: DUP7
00001246: DUP7
00001247: PUSH2 0x090b
0000124a: JUMP
0000124b: JUMPDEST
0000124c: PUSH1 0x00
0000124e: DUP2
0000124f: DUP2
00001250: MSTORE
00001251: PUSH1 0x03
00001253: PUSH1 0x20
00001255: MSTORE
00001256: PUSH1 0x40
00001258: SWAP1
00001259: KECCAK256
0000125a: DUP1
0000125b: SLOAD
0000125c: SWAP2
0000125d: SWAP3
0000125e: POP
0000125f: SWAP1
00001260: PUSH1 0xff
00001262: AND
00001263: ISZERO
00001264: PUSH2 0x1315
00001267: JUMPI
00001268: DUP1
00001269: SLOAD
0000126a: PUSH1 0x01
0000126c: DUP1
0000126d: DUP4
0000126e: ADD
0000126f: DUP1
00001270: SLOAD
00001271: PUSH1 0x40
00001273: DUP1
00001274: MLOAD
00001275: PUSH1 0x20
00001277: PUSH1 0x02
00001279: PUSH2 0x0100
0000127c: SWAP7
0000127d: DUP6
0000127e: AND
0000127f: ISZERO
00001280: DUP8
00001281: MUL
00001282: PUSH1 0x00
00001284: NOT
00001285: ADD
00001286: SWAP1
00001287: SWAP5
00001288: AND
00001289: SWAP4
0000128a: SWAP1
0000128b: SWAP4
0000128c: DIV
0000128d: PUSH1 0x1f
0000128f: DUP2
00001290: ADD
00001291: DUP5
00001292: SWAP1
00001293: DIV
00001294: DUP5
00001295: MUL
00001296: DUP3
00001297: ADD
00001298: DUP5
00001299: ADD
0000129a: SWAP1
0000129b: SWAP3
0000129c: MSTORE
0000129d: DUP2
0000129e: DUP2
0000129f: MSTORE
000012a0: SWAP4
000012a1: SWAP1
000012a2: SWAP5
000012a3: DIV
000012a4: PUSH1 0x01
000012a6: PUSH1 0x01
000012a8: PUSH1 0xa0
000012aa: SHL
000012ab: SUB
000012ac: AND
000012ad: SWAP4
000012ae: SWAP2
000012af: SWAP3
000012b0: SWAP2
000012b1: DUP4
000012b2: SWAP2
000012b3: DUP4
000012b4: ADD
000012b5: DUP3
000012b6: DUP3
000012b7: DUP1
000012b8: ISZERO
000012b9: PUSH2 0x1303
000012bc: JUMPI
000012bd: DUP1
000012be: PUSH1 0x1f
000012c0: LT
000012c1: PUSH2 0x12d8
000012c4: JUMPI
000012c5: PUSH2 0x0100
000012c8: DUP1
000012c9: DUP4
000012ca: SLOAD
000012cb: DIV
000012cc: MUL
000012cd: DUP4
000012ce: MSTORE
000012cf: SWAP2
000012d0: PUSH1 0x20
000012d2: ADD
000012d3: SWAP2
000012d4: PUSH2 0x1303
000012d7: JUMP
000012d8: JUMPDEST
000012d9: DUP3
000012da: ADD
000012db: SWAP2
000012dc: SWAP1
000012dd: PUSH1 0x00
000012df: MSTORE
000012e0: PUSH1 0x20
000012e2: PUSH1 0x00
000012e4: KECCAK256
000012e5: SWAP1
000012e6: JUMPDEST
000012e7: DUP2
000012e8: SLOAD
000012e9: DUP2
000012ea: MSTORE
000012eb: SWAP1
000012ec: PUSH1 0x01
000012ee: ADD
000012ef: SWAP1
000012f0: PUSH1 0x20
000012f2: ADD
000012f3: DUP1
000012f4: DUP4
000012f5: GT
000012f6: PUSH2 0x12e6
000012f9: JUMPI
000012fa: DUP3
000012fb: SWAP1
000012fc: SUB
000012fd: PUSH1 0x1f
000012ff: AND
00001300: DUP3
00001301: ADD
00001302: SWAP2
00001303: JUMPDEST
00001304: POP
00001305: POP
00001306: POP
00001307: POP
00001308: POP
00001309: SWAP1
0000130a: POP
0000130b: SWAP4
0000130c: POP
0000130d: SWAP4
0000130e: POP
0000130f: POP
00001310: POP
00001311: PUSH2 0x131e
00001314: JUMP
00001315: JUMPDEST
00001316: DUP6
00001317: DUP6
00001318: SWAP4
00001319: POP
0000131a: SWAP4
0000131b: POP
0000131c: POP
0000131d: POP
0000131e: JUMPDEST
0000131f: SWAP4
00001320: POP
00001321: SWAP4
00001322: SWAP2
00001323: POP
00001324: POP
00001325: JUMP
00001326: JUMPDEST
00001327: PUSH1 0x01
00001329: SLOAD
0000132a: PUSH1 0x01
0000132c: PUSH1 0x01
0000132e: PUSH1 0xa0
00001330: SHL
00001331: SUB
00001332: AND
00001333: DUP2
00001334: JUMP
00001335: JUMPDEST
00001336: PUSH1 0x02
00001338: SLOAD
00001339: PUSH1 0x01
0000133b: PUSH1 0x01
0000133d: PUSH1 0xa0
0000133f: SHL
00001340: SUB
00001341: AND
00001342: DUP2
00001343: JUMP
00001344: JUMPDEST
00001345: PUSH1 0x01
00001347: PUSH1 0x01
00001349: PUSH1 0xe0
0000134b: SHL
0000134c: SUB
0000134d: NOT
0000134e: DUP2
0000134f: AND
00001350: PUSH4 0x01ffc9a7
00001355: PUSH1 0xe0
00001357: SHL
00001358: EQ
00001359: SWAP2
0000135a: SWAP1
0000135b: POP
0000135c: JUMP
0000135d: JUMPDEST
0000135e: PUSH1 0x02
00001360: SLOAD
00001361: PUSH1 0x01
00001363: PUSH1 0x01
00001365: PUSH1 0xa0
00001367: SHL
00001368: SUB
00001369: AND
0000136a: PUSH1 0x00
0000136c: PUSH2 0x1374
0000136f: DUP3
00001370: PUSH2 0x1c1a
00001373: JUMP
00001374: JUMPDEST
00001375: SWAP1
00001376: POP
00001377: CALLER
00001378: PUSH1 0x01
0000137a: PUSH1 0x01
0000137c: PUSH1 0xa0
0000137e: SHL
0000137f: SUB
00001380: DUP3
00001381: AND
00001382: EQ
00001383: PUSH2 0x13c5
00001386: JUMPI
00001387: PUSH1 0x40
00001389: DUP1
0000138a: MLOAD
0000138b: PUSH3 0x461bcd
0000138f: PUSH1 0xe5
00001391: SHL
00001392: DUP2
00001393: MSTORE
00001394: PUSH1 0x20
00001396: PUSH1 0x04
00001398: DUP3
00001399: ADD
0000139a: MSTORE
0000139b: PUSH1 0x0f
0000139d: PUSH1 0x24
0000139f: DUP3
000013a0: ADD
000013a1: MSTORE
000013a2: PUSH15 0x4e4f545f46524f4d5f425249444745
000013b2: PUSH1 0x88
000013b4: SHL
000013b5: PUSH1 0x44
000013b7: DUP3
000013b8: ADD
000013b9: MSTORE
000013ba: SWAP1
000013bb: MLOAD
000013bc: SWAP1
000013bd: DUP2
000013be: SWAP1
000013bf: SUB
000013c0: PUSH1 0x64
000013c2: ADD
000013c3: SWAP1
000013c4: REVERT
000013c5: JUMPDEST
000013c6: PUSH1 0x00
000013c8: PUSH2 0x13d0
000013cb: DUP4
000013cc: PUSH2 0x1c87
000013cf: JUMP
000013d0: JUMPDEST
000013d1: PUSH1 0x00
000013d3: SLOAD
000013d4: SWAP1
000013d5: SWAP2
000013d6: POP
000013d7: PUSH1 0x01
000013d9: PUSH1 0x01
000013db: PUSH1 0xa0
000013dd: SHL
000013de: SUB
000013df: DUP1
000013e0: DUP4
000013e1: AND
000013e2: SWAP2
000013e3: AND
000013e4: EQ
000013e5: PUSH2 0x1430
000013e8: JUMPI
000013e9: PUSH1 0x40
000013eb: DUP1
000013ec: MLOAD
000013ed: PUSH3 0x461bcd
000013f1: PUSH1 0xe5
000013f3: SHL
000013f4: DUP2
000013f5: MSTORE
000013f6: PUSH1 0x20
000013f8: PUSH1 0x04
000013fa: DUP3
000013fb: ADD
000013fc: MSTORE
000013fd: PUSH1 0x18
000013ff: PUSH1 0x24
00001401: DUP3
00001402: ADD
00001403: MSTORE
00001404: PUSH24 0x4f4e4c595f434f554e544552504152545f47415445574159
0000141d: PUSH1 0x40
0000141f: SHL
00001420: PUSH1 0x44
00001422: DUP3
00001423: ADD
00001424: MSTORE
00001425: SWAP1
00001426: MLOAD
00001427: SWAP1
00001428: DUP2
00001429: SWAP1
0000142a: SUB
0000142b: PUSH1 0x64
0000142d: ADD
0000142e: SWAP1
0000142f: REVERT
00001430: JUMPDEST
00001431: PUSH1 0x00
00001433: PUSH1 0x60
00001435: PUSH2 0x143e
00001438: DUP8
00001439: DUP8
0000143a: PUSH2 0x1db2
0000143d: JUMP
0000143e: JUMPDEST
0000143f: SWAP2
00001440: POP
00001441: SWAP2
00001442: POP
00001443: DUP1
00001444: MLOAD
00001445: PUSH1 0x00
00001447: EQ
00001448: PUSH2 0x145c
0000144b: JUMPI
0000144c: POP
0000144d: PUSH1 0x40
0000144f: DUP1
00001450: MLOAD
00001451: PUSH1 0x20
00001453: DUP2
00001454: ADD
00001455: SWAP1
00001456: SWAP2
00001457: MSTORE
00001458: PUSH1 0x00
0000145a: DUP2
0000145b: MSTORE
0000145c: JUMPDEST
0000145d: PUSH2 0x1467
00001460: DUP3
00001461: DUP11
00001462: DUP4
00001463: PUSH2 0x123b
00001466: JUMP
00001467: JUMPDEST
00001468: POP
00001469: SWAP9
0000146a: POP
0000146b: PUSH2 0x1475
0000146e: DUP12
0000146f: DUP11
00001470: DUP11
00001471: PUSH2 0x1e5f
00001474: JUMP
00001475: JUMPDEST
00001476: DUP2
00001477: DUP10
00001478: PUSH1 0x01
0000147a: PUSH1 0x01
0000147c: PUSH1 0xa0
0000147e: SHL
0000147f: SUB
00001480: AND
00001481: DUP12
00001482: PUSH1 0x01
00001484: PUSH1 0x01
00001486: PUSH1 0xa0
00001488: SHL
00001489: SUB
0000148a: AND
0000148b: PUSH32 0x891afe029c75c4f8c5855fc3480598bc5a53739344f6ae575bdb7ea2a79f56b3
000014ac: DUP15
000014ad: DUP13
000014ae: PUSH1 0x40
000014b0: MLOAD
000014b1: DUP1
000014b2: DUP4
000014b3: PUSH1 0x01
000014b5: PUSH1 0x01
000014b7: PUSH1 0xa0
000014b9: SHL
000014ba: SUB
000014bb: AND
000014bc: PUSH1 0x01
000014be: PUSH1 0x01
000014c0: PUSH1 0xa0
000014c2: SHL
000014c3: SUB
000014c4: AND
000014c5: DUP2
000014c6: MSTORE
000014c7: PUSH1 0x20
000014c9: ADD
000014ca: DUP3
000014cb: DUP2
000014cc: MSTORE
000014cd: PUSH1 0x20
000014cf: ADD
000014d0: SWAP3
000014d1: POP
000014d2: POP
000014d3: POP
000014d4: PUSH1 0x40
000014d6: MLOAD
000014d7: DUP1
000014d8: SWAP2
000014d9: SUB
000014da: SWAP1
000014db: LOG4
000014dc: POP
000014dd: POP
000014de: POP
000014df: POP
000014e0: POP
000014e1: POP
000014e2: POP
000014e3: POP
000014e4: POP
000014e5: POP
000014e6: POP
000014e7: JUMP
000014e8: JUMPDEST
000014e9: PUSH1 0x60
000014eb: PUSH2 0x14f3
000014ee: CALLER
000014ef: PUSH2 0x1e7e
000014f2: JUMP
000014f3: JUMPDEST
000014f4: PUSH2 0x1536
000014f7: JUMPI
000014f8: PUSH1 0x40
000014fa: DUP1
000014fb: MLOAD
000014fc: PUSH3 0x461bcd
00001500: PUSH1 0xe5
00001502: SHL
00001503: DUP2
00001504: MSTORE
00001505: PUSH1 0x20
00001507: PUSH1 0x04
00001509: DUP3
0000150a: ADD
0000150b: MSTORE
0000150c: PUSH1 0x0f
0000150e: PUSH1 0x24
00001510: DUP3
00001511: ADD
00001512: MSTORE
00001513: PUSH15 0x2727aa2fa32927a6afa927aaaa22a9
00001523: PUSH1 0x89
00001525: SHL
00001526: PUSH1 0x44
00001528: DUP3
00001529: ADD
0000152a: MSTORE
0000152b: SWAP1
0000152c: MLOAD
0000152d: SWAP1
0000152e: DUP2
0000152f: SWAP1
00001530: SUB
00001531: PUSH1 0x64
00001533: ADD
00001534: SWAP1
00001535: REVERT
00001536: JUMPDEST
00001537: PUSH1 0x00
00001539: DUP1
0000153a: PUSH1 0x60
0000153c: PUSH1 0x00
0000153e: PUSH2 0x1546
00001541: CALLER
00001542: PUSH2 0x1e7e
00001545: JUMP
00001546: JUMPDEST
00001547: ISZERO
00001548: PUSH2 0x155f
0000154b: JUMPI
0000154c: PUSH2 0x1555
0000154f: DUP8
00001550: DUP8
00001551: PUSH2 0x1e92
00001554: JUMP
00001555: JUMPDEST
00001556: SWAP1
00001557: SWAP5
00001558: POP
00001559: SWAP2
0000155a: POP
0000155b: PUSH2 0x159c
0000155e: JUMP
0000155f: JUMPDEST
00001560: CALLER
00001561: SWAP4
00001562: POP
00001563: DUP7
00001564: DUP7
00001565: DUP1
00001566: DUP1
00001567: PUSH1 0x1f
00001569: ADD
0000156a: PUSH1 0x20
0000156c: DUP1
0000156d: SWAP2
0000156e: DIV
0000156f: MUL
00001570: PUSH1 0x20
00001572: ADD
00001573: PUSH1 0x40
00001575: MLOAD
00001576: SWAP1
00001577: DUP2
00001578: ADD
00001579: PUSH1 0x40
0000157b: MSTORE
0000157c: DUP1
0000157d: SWAP4
0000157e: SWAP3
0000157f: SWAP2
00001580: SWAP1
00001581: DUP2
00001582: DUP2
00001583: MSTORE
00001584: PUSH1 0x20
00001586: ADD
00001587: DUP4
00001588: DUP4
00001589: DUP1
0000158a: DUP3
0000158b: DUP5
0000158c: CALLDATACOPY
0000158d: PUSH1 0x00
0000158f: SWAP3
00001590: ADD
00001591: SWAP2
00001592: SWAP1
00001593: SWAP2
00001594: MSTORE
00001595: POP
00001596: SWAP3
00001597: SWAP5
00001598: POP
00001599: POP
0000159a: POP
0000159b: POP
0000159c: JUMPDEST
0000159d: DUP2
0000159e: DUP1
0000159f: PUSH1 0x20
000015a1: ADD
000015a2: SWAP1
000015a3: MLOAD
000015a4: PUSH1 0x40
000015a6: DUP2
000015a7: LT
000015a8: ISZERO
000015a9: PUSH2 0x15b1
000015ac: JUMPI
000015ad: PUSH1 0x00
000015af: DUP1
000015b0: REVERT
000015b1: JUMPDEST
000015b2: DUP2
000015b3: MLOAD
000015b4: PUSH1 0x20
000015b6: DUP4
000015b7: ADD
000015b8: DUP1
000015b9: MLOAD
000015ba: PUSH1 0x40
000015bc: MLOAD
000015bd: SWAP3
000015be: SWAP5
000015bf: SWAP3
000015c0: SWAP4
000015c1: DUP4
000015c2: ADD
000015c3: SWAP3
000015c4: SWAP2
000015c5: SWAP1
000015c6: DUP5
000015c7: PUSH1 0x01
000015c9: PUSH1 0x20
000015cb: SHL
000015cc: DUP3
000015cd: GT
000015ce: ISZERO
000015cf: PUSH2 0x15d7
000015d2: JUMPI
000015d3: PUSH1 0x00
000015d5: DUP1
000015d6: REVERT
000015d7: JUMPDEST
000015d8: SWAP1
000015d9: DUP4
000015da: ADD
000015db: SWAP1
000015dc: PUSH1 0x20
000015de: DUP3
000015df: ADD
000015e0: DUP6
000015e1: DUP2
000015e2: GT
000015e3: ISZERO
000015e4: PUSH2 0x15ec
000015e7: JUMPI
000015e8: PUSH1 0x00
000015ea: DUP1
000015eb: REVERT
000015ec: JUMPDEST
000015ed: DUP3
000015ee: MLOAD
000015ef: PUSH1 0x01
000015f1: PUSH1 0x20
000015f3: SHL
000015f4: DUP2
000015f5: GT
000015f6: DUP3
000015f7: DUP3
000015f8: ADD
000015f9: DUP9
000015fa: LT
000015fb: OR
000015fc: ISZERO
000015fd: PUSH2 0x1605
00001600: JUMPI
00001601: PUSH1 0x00
00001603: DUP1
00001604: REVERT
00001605: JUMPDEST
00001606: DUP3
00001607: MSTORE
00001608: POP
00001609: DUP2
0000160a: MLOAD
0000160b: PUSH1 0x20
0000160d: SWAP2
0000160e: DUP3
0000160f: ADD
00001610: SWAP3
00001611: SWAP1
00001612: SWAP2
00001613: ADD
00001614: SWAP1
00001615: DUP1
00001616: DUP4
00001617: DUP4
00001618: PUSH1 0x00
0000161a: JUMPDEST
0000161b: DUP4
0000161c: DUP2
0000161d: LT
0000161e: ISZERO
0000161f: PUSH2 0x1632
00001622: JUMPI
00001623: DUP2
00001624: DUP2
00001625: ADD
00001626: MLOAD
00001627: DUP4
00001628: DUP3
00001629: ADD
0000162a: MSTORE
0000162b: PUSH1 0x20
0000162d: ADD
0000162e: PUSH2 0x161a
00001631: JUMP
00001632: JUMPDEST
00001633: POP
00001634: POP
00001635: POP
00001636: POP
00001637: SWAP1
00001638: POP
00001639: SWAP1
0000163a: DUP2
0000163b: ADD
0000163c: SWAP1
0000163d: PUSH1 0x1f
0000163f: AND
00001640: DUP1
00001641: ISZERO
00001642: PUSH2 0x165f
00001645: JUMPI
00001646: DUP1
00001647: DUP3
00001648: SUB
00001649: DUP1
0000164a: MLOAD
0000164b: PUSH1 0x01
0000164d: DUP4
0000164e: PUSH1 0x20
00001650: SUB
00001651: PUSH2 0x0100
00001654: EXP
00001655: SUB
00001656: NOT
00001657: AND
00001658: DUP2
00001659: MSTORE
0000165a: PUSH1 0x20
0000165c: ADD
0000165d: SWAP2
0000165e: POP
0000165f: JUMPDEST
00001660: POP
00001661: PUSH1 0x40
00001663: MSTORE
00001664: POP
00001665: POP
00001666: DUP2
00001667: MLOAD
00001668: SWAP2
00001669: SWAP5
0000166a: POP
0000166b: SWAP2
0000166c: SWAP3
0000166d: POP
0000166e: ISZERO
0000166f: SWAP1
00001670: POP
00001671: PUSH2 0x16b7
00001674: JUMPI
00001675: PUSH1 0x40
00001677: DUP1
00001678: MLOAD
00001679: PUSH3 0x461bcd
0000167d: PUSH1 0xe5
0000167f: SHL
00001680: DUP2
00001681: MSTORE
00001682: PUSH1 0x20
00001684: PUSH1 0x04
00001686: DUP3
00001687: ADD
00001688: MSTORE
00001689: PUSH1 0x13
0000168b: PUSH1 0x24
0000168d: DUP3
0000168e: ADD
0000168f: MSTORE
00001690: PUSH19 0x115615149057d110551057d11254d050931151
000016a4: PUSH1 0x6a
000016a6: SHL
000016a7: PUSH1 0x44
000016a9: DUP3
000016aa: ADD
000016ab: MSTORE
000016ac: SWAP1
000016ad: MLOAD
000016ae: SWAP1
000016af: DUP2
000016b0: SWAP1
000016b1: SUB
000016b2: PUSH1 0x64
000016b4: ADD
000016b5: SWAP1
000016b6: REVERT
000016b7: JUMPDEST
000016b8: PUSH2 0x16c9
000016bb: DUP14
000016bc: PUSH1 0x01
000016be: PUSH1 0x01
000016c0: PUSH1 0xa0
000016c2: SHL
000016c3: SUB
000016c4: AND
000016c5: PUSH2 0x1c14
000016c8: JUMP
000016c9: JUMPDEST
000016ca: PUSH2 0x170c
000016cd: JUMPI
000016ce: PUSH1 0x40
000016d0: DUP1
000016d1: MLOAD
000016d2: PUSH3 0x461bcd
000016d6: PUSH1 0xe5
000016d8: SHL
000016d9: DUP2
000016da: MSTORE
000016db: PUSH1 0x20
000016dd: PUSH1 0x04
000016df: DUP3
000016e0: ADD
000016e1: MSTORE
000016e2: PUSH1 0x0f
000016e4: PUSH1 0x24
000016e6: DUP3
000016e7: ADD
000016e8: MSTORE
000016e9: PUSH15 0x130c57d393d517d0d3d395149050d5
000016f9: PUSH1 0x8a
000016fb: SHL
000016fc: PUSH1 0x44
000016fe: DUP3
000016ff: ADD
00001700: MSTORE
00001701: SWAP1
00001702: MLOAD
00001703: SWAP1
00001704: DUP2
00001705: SWAP1
00001706: SUB
00001707: PUSH1 0x64
00001709: ADD
0000170a: SWAP1
0000170b: REVERT
0000170c: JUMPDEST
0000170d: PUSH1 0x00
0000170f: PUSH2 0x1717
00001712: DUP15
00001713: PUSH2 0x0e17
00001716: JUMP
00001717: JUMPDEST
00001718: SWAP1
00001719: POP
0000171a: PUSH1 0x01
0000171c: PUSH1 0x01
0000171e: PUSH1 0xa0
00001720: SHL
00001721: SUB
00001722: DUP2
00001723: AND
00001724: PUSH2 0x1766
00001727: JUMPI
00001728: PUSH1 0x40
0000172a: DUP1
0000172b: MLOAD
0000172c: PUSH3 0x461bcd
00001730: PUSH1 0xe5
00001732: SHL
00001733: DUP2
00001734: MSTORE
00001735: PUSH1 0x20
00001737: PUSH1 0x04
00001739: DUP3
0000173a: ADD
0000173b: MSTORE
0000173c: PUSH1 0x0f
0000173e: PUSH1 0x24
00001740: DUP3
00001741: ADD
00001742: MSTORE
00001743: PUSH15 0x1393d7d30c97d513d2d15397d4d155
00001753: PUSH1 0x8a
00001755: SHL
00001756: PUSH1 0x44
00001758: DUP3
00001759: ADD
0000175a: MSTORE
0000175b: SWAP1
0000175c: MLOAD
0000175d: SWAP1
0000175e: DUP2
0000175f: SWAP1
00001760: SUB
00001761: PUSH1 0x64
00001763: ADD
00001764: SWAP1
00001765: REVERT
00001766: JUMPDEST
00001767: PUSH2 0x1771
0000176a: DUP15
0000176b: DUP7
0000176c: DUP14
0000176d: PUSH2 0x1ed0
00001770: JUMP
00001771: JUMPDEST
00001772: SWAP11
00001773: POP
00001774: PUSH2 0x1780
00001777: DUP15
00001778: DUP7
00001779: DUP15
0000177a: DUP15
0000177b: DUP8
0000177c: PUSH2 0x0b9d
0000177f: JUMP
00001780: JUMPDEST
00001781: SWAP6
00001782: POP
00001783: PUSH2 0x1791
00001786: DUP14
00001787: DUP7
00001788: DUP14
00001789: DUP14
0000178a: DUP14
0000178b: DUP8
0000178c: DUP13
0000178d: PUSH2 0x1ff0
00001790: JUMP
00001791: JUMPDEST
00001792: SWAP4
00001793: POP
00001794: POP
00001795: POP
00001796: DUP2
00001797: DUP11
00001798: PUSH1 0x01
0000179a: PUSH1 0x01
0000179c: PUSH1 0xa0
0000179e: SHL
0000179f: SUB
000017a0: AND
000017a1: DUP5
000017a2: PUSH1 0x01
000017a4: PUSH1 0x01
000017a6: PUSH1 0xa0
000017a8: SHL
000017a9: SUB
000017aa: AND
000017ab: PUSH32 0xb8910b9960c443aac3240b98585384e3a6f109fbf6969e264c3f183d69aba7e1
000017cc: DUP16
000017cd: DUP14
000017ce: PUSH1 0x40
000017d0: MLOAD
000017d1: DUP1
000017d2: DUP4
000017d3: PUSH1 0x01
000017d5: PUSH1 0x01
000017d7: PUSH1 0xa0
000017d9: SHL
000017da: SUB
000017db: AND
000017dc: PUSH1 0x01
000017de: PUSH1 0x01
000017e0: PUSH1 0xa0
000017e2: SHL
000017e3: SUB
000017e4: AND
000017e5: DUP2
000017e6: MSTORE
000017e7: PUSH1 0x20
000017e9: ADD
000017ea: DUP3
000017eb: DUP2
000017ec: MSTORE
000017ed: PUSH1 0x20
000017ef: ADD
000017f0: SWAP3
000017f1: POP
000017f2: POP
000017f3: POP
000017f4: PUSH1 0x40
000017f6: MLOAD
000017f7: DUP1
000017f8: SWAP2
000017f9: SUB
000017fa: SWAP1
000017fb: LOG4
000017fc: POP
000017fd: PUSH1 0x40
000017ff: DUP1
00001800: MLOAD
00001801: PUSH1 0x20
00001803: DUP1
00001804: DUP3
00001805: ADD
00001806: SWAP4
00001807: SWAP1
00001808: SWAP4
00001809: MSTORE
0000180a: DUP2
0000180b: MLOAD
0000180c: DUP1
0000180d: DUP3
0000180e: SUB
0000180f: SWAP1
00001810: SWAP4
00001811: ADD
00001812: DUP4
00001813: MSTORE
00001814: DUP2
00001815: ADD
00001816: SWAP1
00001817: MSTORE
00001818: SWAP11
00001819: SWAP10
0000181a: POP
0000181b: POP
0000181c: POP
0000181d: POP
0000181e: POP
0000181f: POP
00001820: POP
00001821: POP
00001822: POP
00001823: POP
00001824: JUMP
00001825: JUMPDEST
00001826: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
00001847: SLOAD
00001848: SWAP1
00001849: JUMP
0000184a: JUMPDEST
0000184b: PUSH2 0x1854
0000184e: DUP4
0000184f: DUP4
00001850: PUSH2 0x2035
00001853: JUMP
00001854: JUMPDEST
00001855: PUSH1 0x01
00001857: PUSH1 0x01
00001859: PUSH1 0xa0
0000185b: SHL
0000185c: SUB
0000185d: DUP3
0000185e: AND
0000185f: PUSH2 0x189c
00001862: JUMPI
00001863: PUSH1 0x40
00001865: DUP1
00001866: MLOAD
00001867: PUSH3 0x461bcd
0000186b: PUSH1 0xe5
0000186d: SHL
0000186e: DUP2
0000186f: MSTORE
00001870: PUSH1 0x20
00001872: PUSH1 0x04
00001874: DUP3
00001875: ADD
00001876: MSTORE
00001877: PUSH1 0x0a
00001879: PUSH1 0x24
0000187b: DUP3
0000187c: ADD
0000187d: MSTORE
0000187e: PUSH10 0x2120a22fa927aaaa22a9
00001889: PUSH1 0xb1
0000188b: SHL
0000188c: PUSH1 0x44
0000188e: DUP3
0000188f: ADD
00001890: MSTORE
00001891: SWAP1
00001892: MLOAD
00001893: SWAP1
00001894: DUP2
00001895: SWAP1
00001896: SUB
00001897: PUSH1 0x64
00001899: ADD
0000189a: SWAP1
0000189b: REVERT
0000189c: JUMPDEST
0000189d: PUSH1 0x01
0000189f: PUSH1 0x01
000018a1: PUSH1 0xa0
000018a3: SHL
000018a4: SUB
000018a5: DUP2
000018a6: AND
000018a7: PUSH2 0x18e3
000018aa: JUMPI
000018ab: PUSH1 0x40
000018ad: DUP1
000018ae: MLOAD
000018af: PUSH3 0x461bcd
000018b3: PUSH1 0xe5
000018b5: SHL
000018b6: DUP2
000018b7: MSTORE
000018b8: PUSH1 0x20
000018ba: PUSH1 0x04
000018bc: DUP3
000018bd: ADD
000018be: MSTORE
000018bf: PUSH1 0x09
000018c1: PUSH1 0x24
000018c3: DUP3
000018c4: ADD
000018c5: MSTORE
000018c6: PUSH9 0x0848288be929c849eb
000018d0: PUSH1 0xbb
000018d2: SHL
000018d3: PUSH1 0x44
000018d5: DUP3
000018d6: ADD
000018d7: MSTORE
000018d8: SWAP1
000018d9: MLOAD
000018da: SWAP1
000018db: DUP2
000018dc: SWAP1
000018dd: SUB
000018de: PUSH1 0x64
000018e0: ADD
000018e1: SWAP1
000018e2: REVERT
000018e3: JUMPDEST
000018e4: PUSH1 0x02
000018e6: DUP1
000018e7: SLOAD
000018e8: PUSH1 0x01
000018ea: PUSH1 0x01
000018ec: PUSH1 0xa0
000018ee: SHL
000018ef: SUB
000018f0: NOT
000018f1: AND
000018f2: PUSH1 0x01
000018f4: PUSH1 0x01
000018f6: PUSH1 0xa0
000018f8: SHL
000018f9: SUB
000018fa: SWAP3
000018fb: SWAP1
000018fc: SWAP3
000018fd: AND
000018fe: SWAP2
000018ff: SWAP1
00001900: SWAP2
00001901: OR
00001902: SWAP1
00001903: SSTORE
00001904: POP
00001905: POP
00001906: JUMP
00001907: JUMPDEST
00001908: PUSH1 0x40
0000190a: DUP1
0000190b: MLOAD
0000190c: PUSH1 0x04
0000190e: DUP2
0000190f: MSTORE
00001910: PUSH1 0x24
00001912: DUP2
00001913: ADD
00001914: DUP3
00001915: MSTORE
00001916: PUSH1 0x20
00001918: DUP2
00001919: ADD
0000191a: DUP1
0000191b: MLOAD
0000191c: PUSH1 0x01
0000191e: PUSH1 0x01
00001920: PUSH1 0xe0
00001922: SHL
00001923: SUB
00001924: AND
00001925: PUSH1 0x01
00001927: PUSH1 0x01
00001929: PUSH1 0xe0
0000192b: SHL
0000192c: SUB
0000192d: NOT
0000192e: DUP6
0000192f: AND
00001930: OR
00001931: DUP2
00001932: MSTORE
00001933: SWAP2
00001934: MLOAD
00001935: DUP2
00001936: MLOAD
00001937: PUSH1 0x60
00001939: SWAP4
0000193a: DUP5
0000193b: SWAP4
0000193c: PUSH1 0x01
0000193e: PUSH1 0x01
00001940: PUSH1 0xa0
00001942: SHL
00001943: SUB
00001944: DUP9
00001945: AND
00001946: SWAP4
00001947: SWAP1
00001948: SWAP3
00001949: SWAP1
0000194a: SWAP2
0000194b: DUP3
0000194c: SWAP2
0000194d: DUP1
0000194e: DUP4
0000194f: DUP4
00001950: JUMPDEST
00001951: PUSH1 0x20
00001953: DUP4
00001954: LT
00001955: PUSH2 0x196f
00001958: JUMPI
00001959: DUP1
0000195a: MLOAD
0000195b: DUP3
0000195c: MSTORE
0000195d: PUSH1 0x1f
0000195f: NOT
00001960: SWAP1
00001961: SWAP3
00001962: ADD
00001963: SWAP2
00001964: PUSH1 0x20
00001966: SWAP2
00001967: DUP3
00001968: ADD
00001969: SWAP2
0000196a: ADD
0000196b: PUSH2 0x1950
0000196e: JUMP
0000196f: JUMPDEST
00001970: PUSH1 0x01
00001972: DUP4
00001973: PUSH1 0x20
00001975: SUB
00001976: PUSH2 0x0100
00001979: EXP
0000197a: SUB
0000197b: DUP1
0000197c: NOT
0000197d: DUP3
0000197e: MLOAD
0000197f: AND
00001980: DUP2
00001981: DUP5
00001982: MLOAD
00001983: AND
00001984: DUP1
00001985: DUP3
00001986: OR
00001987: DUP6
00001988: MSTORE
00001989: POP
0000198a: POP
0000198b: POP
0000198c: POP
0000198d: POP
0000198e: POP
0000198f: SWAP1
00001990: POP
00001991: ADD
00001992: SWAP2
00001993: POP
00001994: POP
00001995: PUSH1 0x00
00001997: PUSH1 0x40
00001999: MLOAD
0000199a: DUP1
0000199b: DUP4
0000199c: SUB
0000199d: DUP2
0000199e: DUP6
0000199f: GAS
000019a0: STATICCALL
000019a1: SWAP2
000019a2: POP
000019a3: POP
000019a4: RETURNDATASIZE
000019a5: DUP1
000019a6: PUSH1 0x00
000019a8: DUP2
000019a9: EQ
000019aa: PUSH2 0x19cf
000019ad: JUMPI
000019ae: PUSH1 0x40
000019b0: MLOAD
000019b1: SWAP2
000019b2: POP
000019b3: PUSH1 0x1f
000019b5: NOT
000019b6: PUSH1 0x3f
000019b8: RETURNDATASIZE
000019b9: ADD
000019ba: AND
000019bb: DUP3
000019bc: ADD
000019bd: PUSH1 0x40
000019bf: MSTORE
000019c0: RETURNDATASIZE
000019c1: DUP3
000019c2: MSTORE
000019c3: RETURNDATASIZE
000019c4: PUSH1 0x00
000019c6: PUSH1 0x20
000019c8: DUP5
000019c9: ADD
000019ca: RETURNDATACOPY
000019cb: PUSH2 0x19d4
000019ce: JUMP
000019cf: JUMPDEST
000019d0: PUSH1 0x60
000019d2: SWAP2
000019d3: POP
000019d4: JUMPDEST
000019d5: POP
000019d6: SWAP6
000019d7: SWAP5
000019d8: POP
000019d9: POP
000019da: POP
000019db: POP
000019dc: POP
000019dd: JUMP
000019de: JUMPDEST
000019df: PUSH1 0x60
000019e1: DUP3
000019e2: DUP3
000019e3: PUSH1 0x40
000019e5: MLOAD
000019e6: PUSH1 0x20
000019e8: ADD
000019e9: DUP1
000019ea: DUP1
000019eb: PUSH1 0x20
000019ed: ADD
000019ee: DUP1
000019ef: PUSH1 0x20
000019f1: ADD
000019f2: DUP4
000019f3: DUP2
000019f4: SUB
000019f5: DUP4
000019f6: MSTORE
000019f7: DUP6
000019f8: DUP2
000019f9: DUP2
000019fa: MLOAD
000019fb: DUP2
000019fc: MSTORE
000019fd: PUSH1 0x20
000019ff: ADD
00001a00: SWAP2
00001a01: POP
00001a02: DUP1
00001a03: MLOAD
00001a04: SWAP1
00001a05: PUSH1 0x20
00001a07: ADD
00001a08: SWAP1
00001a09: DUP1
00001a0a: DUP4
00001a0b: DUP4
00001a0c: PUSH1 0x00
00001a0e: JUMPDEST
00001a0f: DUP4
00001a10: DUP2
00001a11: LT
00001a12: ISZERO
00001a13: PUSH2 0x1a26
00001a16: JUMPI
00001a17: DUP2
00001a18: DUP2
00001a19: ADD
00001a1a: MLOAD
00001a1b: DUP4
00001a1c: DUP3
00001a1d: ADD
00001a1e: MSTORE
00001a1f: PUSH1 0x20
00001a21: ADD
00001a22: PUSH2 0x1a0e
00001a25: JUMP
00001a26: JUMPDEST
00001a27: POP
00001a28: POP
00001a29: POP
00001a2a: POP
00001a2b: SWAP1
00001a2c: POP
00001a2d: SWAP1
00001a2e: DUP2
00001a2f: ADD
00001a30: SWAP1
00001a31: PUSH1 0x1f
00001a33: AND
00001a34: DUP1
00001a35: ISZERO
00001a36: PUSH2 0x1a53
00001a39: JUMPI
00001a3a: DUP1
00001a3b: DUP3
00001a3c: SUB
00001a3d: DUP1
00001a3e: MLOAD
00001a3f: PUSH1 0x01
00001a41: DUP4
00001a42: PUSH1 0x20
00001a44: SUB
00001a45: PUSH2 0x0100
00001a48: EXP
00001a49: SUB
00001a4a: NOT
00001a4b: AND
00001a4c: DUP2
00001a4d: MSTORE
00001a4e: PUSH1 0x20
00001a50: ADD
00001a51: SWAP2
00001a52: POP
00001a53: JUMPDEST
00001a54: POP
00001a55: DUP4
00001a56: DUP2
00001a57: SUB
00001a58: DUP3
00001a59: MSTORE
00001a5a: DUP5
00001a5b: MLOAD
00001a5c: DUP2
00001a5d: MSTORE
00001a5e: DUP5
00001a5f: MLOAD
00001a60: PUSH1 0x20
00001a62: SWAP2
00001a63: DUP3
00001a64: ADD
00001a65: SWAP2
00001a66: DUP7
00001a67: ADD
00001a68: SWAP1
00001a69: DUP1
00001a6a: DUP4
00001a6b: DUP4
00001a6c: PUSH1 0x00
00001a6e: JUMPDEST
00001a6f: DUP4
00001a70: DUP2
00001a71: LT
00001a72: ISZERO
00001a73: PUSH2 0x1a86
00001a76: JUMPI
00001a77: DUP2
00001a78: DUP2
00001a79: ADD
00001a7a: MLOAD
00001a7b: DUP4
00001a7c: DUP3
00001a7d: ADD
00001a7e: MSTORE
00001a7f: PUSH1 0x20
00001a81: ADD
00001a82: PUSH2 0x1a6e
00001a85: JUMP
00001a86: JUMPDEST
00001a87: POP
00001a88: POP
00001a89: POP
00001a8a: POP
00001a8b: SWAP1
00001a8c: POP
00001a8d: SWAP1
00001a8e: DUP2
00001a8f: ADD
00001a90: SWAP1
00001a91: PUSH1 0x1f
00001a93: AND
00001a94: DUP1
00001a95: ISZERO
00001a96: PUSH2 0x1ab3
00001a99: JUMPI
00001a9a: DUP1
00001a9b: DUP3
00001a9c: SUB
00001a9d: DUP1
00001a9e: MLOAD
00001a9f: PUSH1 0x01
00001aa1: DUP4
00001aa2: PUSH1 0x20
00001aa4: SUB
00001aa5: PUSH2 0x0100
00001aa8: EXP
00001aa9: SUB
00001aaa: NOT
00001aab: AND
00001aac: DUP2
00001aad: MSTORE
00001aae: PUSH1 0x20
00001ab0: ADD
00001ab1: SWAP2
00001ab2: POP
00001ab3: JUMPDEST
00001ab4: POP
00001ab5: PUSH1 0x40
00001ab7: DUP1
00001ab8: MLOAD
00001ab9: PUSH1 0x1f
00001abb: NOT
00001abc: DUP2
00001abd: DUP5
00001abe: SUB
00001abf: ADD
00001ac0: DUP2
00001ac1: MSTORE
00001ac2: SWAP2
00001ac3: SWAP1
00001ac4: MSTORE
00001ac5: SWAP9
00001ac6: SWAP8
00001ac7: POP
00001ac8: POP
00001ac9: POP
00001aca: POP
00001acb: POP
00001acc: POP
00001acd: POP
00001ace: POP
00001acf: JUMP
00001ad0: JUMPDEST
00001ad1: PUSH1 0x00
00001ad3: SLOAD
00001ad4: PUSH1 0x40
00001ad6: DUP1
00001ad7: MLOAD
00001ad8: PUSH1 0x01
00001ada: PUSH1 0x01
00001adc: PUSH1 0xa0
00001ade: SHL
00001adf: SUB
00001ae0: SWAP4
00001ae1: DUP5
00001ae2: AND
00001ae3: PUSH1 0x20
00001ae5: DUP1
00001ae6: DUP4
00001ae7: ADD
00001ae8: SWAP2
00001ae9: SWAP1
00001aea: SWAP2
00001aeb: MSTORE
00001aec: DUP3
00001aed: MLOAD
00001aee: DUP1
00001aef: DUP4
00001af0: SUB
00001af1: DUP3
00001af2: ADD
00001af3: DUP2
00001af4: MSTORE
00001af5: DUP3
00001af6: DUP5
00001af7: ADD
00001af8: DUP5
00001af9: MSTORE
00001afa: DUP1
00001afb: MLOAD
00001afc: SWAP1
00001afd: DUP3
00001afe: ADD
00001aff: KECCAK256
00001b00: SWAP5
00001b01: SWAP1
00001b02: SWAP4
00001b03: AND
00001b04: PUSH1 0x60
00001b06: DUP3
00001b07: ADD
00001b08: MSTORE
00001b09: PUSH1 0x80
00001b0b: DUP1
00001b0c: DUP3
00001b0d: ADD
00001b0e: SWAP5
00001b0f: SWAP1
00001b10: SWAP5
00001b11: MSTORE
00001b12: DUP2
00001b13: MLOAD
00001b14: DUP1
00001b15: DUP3
00001b16: SUB
00001b17: SWAP1
00001b18: SWAP5
00001b19: ADD
00001b1a: DUP5
00001b1b: MSTORE
00001b1c: PUSH1 0xa0
00001b1e: ADD
00001b1f: SWAP1
00001b20: MSTORE
00001b21: DUP2
00001b22: MLOAD
00001b23: SWAP2
00001b24: ADD
00001b25: KECCAK256
00001b26: SWAP1
00001b27: JUMP
00001b28: JUMPDEST
00001b29: PUSH1 0x40
00001b2b: DUP1
00001b2c: MLOAD
00001b2d: PUSH1 0x01
00001b2f: PUSH1 0x01
00001b31: PUSH1 0xf8
00001b33: SHL
00001b34: SUB
00001b35: NOT
00001b36: PUSH1 0x20
00001b38: DUP1
00001b39: DUP4
00001b3a: ADD
00001b3b: SWAP2
00001b3c: SWAP1
00001b3d: SWAP2
00001b3e: MSTORE
00001b3f: PUSH1 0x60
00001b41: SWAP4
00001b42: SWAP1
00001b43: SWAP4
00001b44: SHL
00001b45: PUSH12 0xffffffffffffffffffffffff
00001b52: NOT
00001b53: AND
00001b54: PUSH1 0x21
00001b56: DUP3
00001b57: ADD
00001b58: MSTORE
00001b59: PUSH1 0x35
00001b5b: DUP2
00001b5c: ADD
00001b5d: SWAP5
00001b5e: SWAP1
00001b5f: SWAP5
00001b60: MSTORE
00001b61: PUSH1 0x55
00001b63: DUP1
00001b64: DUP6
00001b65: ADD
00001b66: SWAP4
00001b67: SWAP1
00001b68: SWAP4
00001b69: MSTORE
00001b6a: DUP1
00001b6b: MLOAD
00001b6c: DUP1
00001b6d: DUP6
00001b6e: SUB
00001b6f: SWAP1
00001b70: SWAP4
00001b71: ADD
00001b72: DUP4
00001b73: MSTORE
00001b74: PUSH1 0x75
00001b76: SWAP1
00001b77: SWAP4
00001b78: ADD
00001b79: SWAP1
00001b7a: SWAP3
00001b7b: MSTORE
00001b7c: DUP1
00001b7d: MLOAD
00001b7e: SWAP2
00001b7f: ADD
00001b80: KECCAK256
00001b81: SWAP1
00001b82: JUMP
00001b83: JUMPDEST
00001b84: PUSH1 0x00
00001b86: PUSH2 0x1b8f
00001b89: DUP6
00001b8a: DUP6
00001b8b: PUSH2 0x090b
00001b8e: JUMP
00001b8f: JUMPDEST
00001b90: PUSH1 0x40
00001b92: DUP1
00001b93: MLOAD
00001b94: PUSH1 0x60
00001b96: DUP2
00001b97: ADD
00001b98: DUP3
00001b99: MSTORE
00001b9a: PUSH1 0x01
00001b9c: DUP1
00001b9d: DUP3
00001b9e: MSTORE
00001b9f: PUSH1 0x01
00001ba1: PUSH1 0x01
00001ba3: PUSH1 0xa0
00001ba5: SHL
00001ba6: SUB
00001ba7: DUP8
00001ba8: DUP2
00001ba9: AND
00001baa: PUSH1 0x20
00001bac: DUP1
00001bad: DUP6
00001bae: ADD
00001baf: SWAP2
00001bb0: DUP3
00001bb1: MSTORE
00001bb2: DUP5
00001bb3: DUP7
00001bb4: ADD
00001bb5: DUP10
00001bb6: DUP2
00001bb7: MSTORE
00001bb8: PUSH1 0x00
00001bba: DUP9
00001bbb: DUP2
00001bbc: MSTORE
00001bbd: PUSH1 0x03
00001bbf: DUP4
00001bc0: MSTORE
00001bc1: SWAP7
00001bc2: SWAP1
00001bc3: SWAP7
00001bc4: KECCAK256
00001bc5: DUP6
00001bc6: MLOAD
00001bc7: DUP2
00001bc8: SLOAD
00001bc9: SWAP4
00001bca: MLOAD
00001bcb: PUSH1 0xff
00001bcd: NOT
00001bce: SWAP1
00001bcf: SWAP5
00001bd0: AND
00001bd1: SWAP1
00001bd2: ISZERO
00001bd3: ISZERO
00001bd4: OR
00001bd5: PUSH2 0x0100
00001bd8: PUSH1 0x01
00001bda: PUSH1 0xa8
00001bdc: SHL
00001bdd: SUB
00001bde: NOT
00001bdf: AND
00001be0: PUSH2 0x0100
00001be3: SWAP4
00001be4: SWAP1
00001be5: SWAP5
00001be6: AND
00001be7: SWAP3
00001be8: SWAP1
00001be9: SWAP3
00001bea: MUL
00001beb: SWAP3
00001bec: SWAP1
00001bed: SWAP3
00001bee: OR
00001bef: DUP2
00001bf0: SSTORE
00001bf1: SWAP4
00001bf2: MLOAD
00001bf3: DUP1
00001bf4: MLOAD
00001bf5: SWAP6
00001bf6: SWAP7
00001bf7: POP
00001bf8: SWAP3
00001bf9: SWAP5
00001bfa: PUSH2 0x1c0a
00001bfd: SWAP4
00001bfe: SWAP3
00001bff: DUP6
00001c00: ADD
00001c01: SWAP3
00001c02: SWAP1
00001c03: SWAP2
00001c04: ADD
00001c05: SWAP1
00001c06: PUSH2 0x2719
00001c09: JUMP
00001c0a: JUMPDEST
00001c0b: POP
00001c0c: POP
00001c0d: POP
00001c0e: POP
00001c0f: POP
00001c10: POP
00001c11: POP
00001c12: POP
00001c13: JUMP
00001c14: JUMPDEST
00001c15: EXTCODESIZE
00001c16: ISZERO
00001c17: ISZERO
00001c18: SWAP1
00001c19: JUMP
00001c1a: JUMPDEST
00001c1b: PUSH1 0x00
00001c1d: DUP2
00001c1e: PUSH1 0x01
00001c20: PUSH1 0x01
00001c22: PUSH1 0xa0
00001c24: SHL
00001c25: SUB
00001c26: AND
00001c27: PUSH4 0xe78cea92
00001c2c: PUSH1 0x40
00001c2e: MLOAD
00001c2f: DUP2
00001c30: PUSH4 0xffffffff
00001c35: AND
00001c36: PUSH1 0xe0
00001c38: SHL
00001c39: DUP2
00001c3a: MSTORE
00001c3b: PUSH1 0x04
00001c3d: ADD
00001c3e: PUSH1 0x20
00001c40: PUSH1 0x40
00001c42: MLOAD
00001c43: DUP1
00001c44: DUP4
00001c45: SUB
00001c46: DUP2
00001c47: DUP7
00001c48: DUP1
00001c49: EXTCODESIZE
00001c4a: ISZERO
00001c4b: DUP1
00001c4c: ISZERO
00001c4d: PUSH2 0x1c55
00001c50: JUMPI
00001c51: PUSH1 0x00
00001c53: DUP1
00001c54: REVERT
00001c55: JUMPDEST
00001c56: POP
00001c57: GAS
00001c58: STATICCALL
00001c59: ISZERO
00001c5a: DUP1
00001c5b: ISZERO
00001c5c: PUSH2 0x1c69
00001c5f: JUMPI
00001c60: RETURNDATASIZE
00001c61: PUSH1 0x00
00001c63: DUP1
00001c64: RETURNDATACOPY
00001c65: RETURNDATASIZE
00001c66: PUSH1 0x00
00001c68: REVERT
00001c69: JUMPDEST
00001c6a: POP
00001c6b: POP
00001c6c: POP
00001c6d: POP
00001c6e: PUSH1 0x40
00001c70: MLOAD
00001c71: RETURNDATASIZE
00001c72: PUSH1 0x20
00001c74: DUP2
00001c75: LT
00001c76: ISZERO
00001c77: PUSH2 0x1c7f
00001c7a: JUMPI
00001c7b: PUSH1 0x00
00001c7d: DUP1
00001c7e: REVERT
00001c7f: JUMPDEST
00001c80: POP
00001c81: MLOAD
00001c82: SWAP3
00001c83: SWAP2
00001c84: POP
00001c85: POP
00001c86: JUMP
00001c87: JUMPDEST
00001c88: PUSH1 0x00
00001c8a: DUP1
00001c8b: PUSH2 0x1c93
00001c8e: DUP4
00001c8f: PUSH2 0x1c1a
00001c92: JUMP
00001c93: JUMPDEST
00001c94: PUSH1 0x01
00001c96: PUSH1 0x01
00001c98: PUSH1 0xa0
00001c9a: SHL
00001c9b: SUB
00001c9c: AND
00001c9d: PUSH4 0xab5d8943
00001ca2: PUSH1 0x40
00001ca4: MLOAD
00001ca5: DUP2
00001ca6: PUSH4 0xffffffff
00001cab: AND
00001cac: PUSH1 0xe0
00001cae: SHL
00001caf: DUP2
00001cb0: MSTORE
00001cb1: PUSH1 0x04
00001cb3: ADD
00001cb4: PUSH1 0x20
00001cb6: PUSH1 0x40
00001cb8: MLOAD
00001cb9: DUP1
00001cba: DUP4
00001cbb: SUB
00001cbc: DUP2
00001cbd: DUP7
00001cbe: DUP1
00001cbf: EXTCODESIZE
00001cc0: ISZERO
00001cc1: DUP1
00001cc2: ISZERO
00001cc3: PUSH2 0x1ccb
00001cc6: JUMPI
00001cc7: PUSH1 0x00
00001cc9: DUP1
00001cca: REVERT
00001ccb: JUMPDEST
00001ccc: POP
00001ccd: GAS
00001cce: STATICCALL
00001ccf: ISZERO
00001cd0: DUP1
00001cd1: ISZERO
00001cd2: PUSH2 0x1cdf
00001cd5: JUMPI
00001cd6: RETURNDATASIZE
00001cd7: PUSH1 0x00
00001cd9: DUP1
00001cda: RETURNDATACOPY
00001cdb: RETURNDATASIZE
00001cdc: PUSH1 0x00
00001cde: REVERT
00001cdf: JUMPDEST
00001ce0: POP
00001ce1: POP
00001ce2: POP
00001ce3: POP
00001ce4: PUSH1 0x40
00001ce6: MLOAD
00001ce7: RETURNDATASIZE
00001ce8: PUSH1 0x20
00001cea: DUP2
00001ceb: LT
00001cec: ISZERO
00001ced: PUSH2 0x1cf5
00001cf0: JUMPI
00001cf1: PUSH1 0x00
00001cf3: DUP1
00001cf4: REVERT
00001cf5: JUMPDEST
00001cf6: POP
00001cf7: MLOAD
00001cf8: PUSH1 0x40
00001cfa: DUP1
00001cfb: MLOAD
00001cfc: PUSH4 0x40324581
00001d01: PUSH1 0xe1
00001d03: SHL
00001d04: DUP2
00001d05: MSTORE
00001d06: SWAP1
00001d07: MLOAD
00001d08: SWAP2
00001d09: SWAP3
00001d0a: POP
00001d0b: PUSH1 0x00
00001d0d: SWAP2
00001d0e: PUSH1 0x01
00001d10: PUSH1 0x01
00001d12: PUSH1 0xa0
00001d14: SHL
00001d15: SUB
00001d16: DUP5
00001d17: AND
00001d18: SWAP2
00001d19: PUSH4 0x80648b02
00001d1e: SWAP2
00001d1f: PUSH1 0x04
00001d21: DUP1
00001d22: DUP4
00001d23: ADD
00001d24: SWAP3
00001d25: PUSH1 0x20
00001d27: SWAP3
00001d28: SWAP2
00001d29: SWAP1
00001d2a: DUP3
00001d2b: SWAP1
00001d2c: SUB
00001d2d: ADD
00001d2e: DUP2
00001d2f: DUP7
00001d30: DUP1
00001d31: EXTCODESIZE
00001d32: ISZERO
00001d33: DUP1
00001d34: ISZERO
00001d35: PUSH2 0x1d3d
00001d38: JUMPI
00001d39: PUSH1 0x00
00001d3b: DUP1
00001d3c: REVERT
00001d3d: JUMPDEST
00001d3e: POP
00001d3f: GAS
00001d40: STATICCALL
00001d41: ISZERO
00001d42: DUP1
00001d43: ISZERO
00001d44: PUSH2 0x1d51
00001d47: JUMPI
00001d48: RETURNDATASIZE
00001d49: PUSH1 0x00
00001d4b: DUP1
00001d4c: RETURNDATACOPY
00001d4d: RETURNDATASIZE
00001d4e: PUSH1 0x00
00001d50: REVERT
00001d51: JUMPDEST
00001d52: POP
00001d53: POP
00001d54: POP
00001d55: POP
00001d56: PUSH1 0x40
00001d58: MLOAD
00001d59: RETURNDATASIZE
00001d5a: PUSH1 0x20
00001d5c: DUP2
00001d5d: LT
00001d5e: ISZERO
00001d5f: PUSH2 0x1d67
00001d62: JUMPI
00001d63: PUSH1 0x00
00001d65: DUP1
00001d66: REVERT
00001d67: JUMPDEST
00001d68: POP
00001d69: MLOAD
00001d6a: SWAP1
00001d6b: POP
00001d6c: PUSH1 0x01
00001d6e: PUSH1 0x01
00001d70: PUSH1 0xa0
00001d72: SHL
00001d73: SUB
00001d74: DUP2
00001d75: AND
00001d76: PUSH2 0x0e41
00001d79: JUMPI
00001d7a: PUSH1 0x40
00001d7c: DUP1
00001d7d: MLOAD
00001d7e: PUSH3 0x461bcd
00001d82: PUSH1 0xe5
00001d84: SHL
00001d85: DUP2
00001d86: MSTORE
00001d87: PUSH1 0x20
00001d89: PUSH1 0x04
00001d8b: DUP3
00001d8c: ADD
00001d8d: MSTORE
00001d8e: PUSH1 0x09
00001d90: PUSH1 0x24
00001d92: DUP3
00001d93: ADD
00001d94: MSTORE
00001d95: PUSH9 0x2727afa9a2a72222a9
00001d9f: PUSH1 0xb9
00001da1: SHL
00001da2: PUSH1 0x44
00001da4: DUP3
00001da5: ADD
00001da6: MSTORE
00001da7: SWAP1
00001da8: MLOAD
00001da9: SWAP1
00001daa: DUP2
00001dab: SWAP1
00001dac: SUB
00001dad: PUSH1 0x64
00001daf: ADD
00001db0: SWAP1
00001db1: REVERT
00001db2: JUMPDEST
00001db3: PUSH1 0x00
00001db5: PUSH1 0x60
00001db7: DUP4
00001db8: DUP4
00001db9: PUSH1 0x40
00001dbb: DUP2
00001dbc: LT
00001dbd: ISZERO
00001dbe: PUSH2 0x1dc6
00001dc1: JUMPI
00001dc2: PUSH1 0x00
00001dc4: DUP1
00001dc5: REVERT
00001dc6: JUMPDEST
00001dc7: DUP2
00001dc8: CALLDATALOAD
00001dc9: SWAP2
00001dca: SWAP1
00001dcb: DUP2
00001dcc: ADD
00001dcd: SWAP1
00001dce: PUSH1 0x40
00001dd0: DUP2
00001dd1: ADD
00001dd2: PUSH1 0x20
00001dd4: DUP3
00001dd5: ADD
00001dd6: CALLDATALOAD
00001dd7: PUSH1 0x01
00001dd9: PUSH1 0x20
00001ddb: SHL
00001ddc: DUP2
00001ddd: GT
00001dde: ISZERO
00001ddf: PUSH2 0x1de7
00001de2: JUMPI
00001de3: PUSH1 0x00
00001de5: DUP1
00001de6: REVERT
00001de7: JUMPDEST
00001de8: DUP3
00001de9: ADD
00001dea: DUP4
00001deb: PUSH1 0x20
00001ded: DUP3
00001dee: ADD
00001def: GT
00001df0: ISZERO
00001df1: PUSH2 0x1df9
00001df4: JUMPI
00001df5: PUSH1 0x00
00001df7: DUP1
00001df8: REVERT
00001df9: JUMPDEST
00001dfa: DUP1
00001dfb: CALLDATALOAD
00001dfc: SWAP1
00001dfd: PUSH1 0x20
00001dff: ADD
00001e00: SWAP2
00001e01: DUP5
00001e02: PUSH1 0x01
00001e04: DUP4
00001e05: MUL
00001e06: DUP5
00001e07: ADD
00001e08: GT
00001e09: PUSH1 0x01
00001e0b: PUSH1 0x20
00001e0d: SHL
00001e0e: DUP4
00001e0f: GT
00001e10: OR
00001e11: ISZERO
00001e12: PUSH2 0x1e1a
00001e15: JUMPI
00001e16: PUSH1 0x00
00001e18: DUP1
00001e19: REVERT
00001e1a: JUMPDEST
00001e1b: SWAP2
00001e1c: SWAP1
00001e1d: DUP1
00001e1e: DUP1
00001e1f: PUSH1 0x1f
00001e21: ADD
00001e22: PUSH1 0x20
00001e24: DUP1
00001e25: SWAP2
00001e26: DIV
00001e27: MUL
00001e28: PUSH1 0x20
00001e2a: ADD
00001e2b: PUSH1 0x40
00001e2d: MLOAD
00001e2e: SWAP1
00001e2f: DUP2
00001e30: ADD
00001e31: PUSH1 0x40
00001e33: MSTORE
00001e34: DUP1
00001e35: SWAP4
00001e36: SWAP3
00001e37: SWAP2
00001e38: SWAP1
00001e39: DUP2
00001e3a: DUP2
00001e3b: MSTORE
00001e3c: PUSH1 0x20
00001e3e: ADD
00001e3f: DUP4
00001e40: DUP4
00001e41: DUP1
00001e42: DUP3
00001e43: DUP5
00001e44: CALLDATACOPY
00001e45: PUSH1 0x00
00001e47: SWAP3
00001e48: ADD
00001e49: SWAP2
00001e4a: SWAP1
00001e4b: SWAP2
00001e4c: MSTORE
00001e4d: POP
00001e4e: SWAP7
00001e4f: SWAP12
00001e50: SWAP3
00001e51: SWAP11
00001e52: POP
00001e53: SWAP2
00001e54: SWAP9
00001e55: POP
00001e56: POP
00001e57: POP
00001e58: POP
00001e59: POP
00001e5a: POP
00001e5b: POP
00001e5c: POP
00001e5d: POP
00001e5e: JUMP
00001e5f: JUMPDEST
00001e60: PUSH2 0x1e79
00001e63: PUSH1 0x01
00001e65: PUSH1 0x01
00001e67: PUSH1 0xa0
00001e69: SHL
00001e6a: SUB
00001e6b: DUP5
00001e6c: AND
00001e6d: DUP4
00001e6e: DUP4
00001e6f: PUSH4 0xffffffff
00001e74: PUSH2 0x2101
00001e77: AND
00001e78: JUMP
00001e79: JUMPDEST
00001e7a: POP
00001e7b: POP
00001e7c: POP
00001e7d: JUMP
00001e7e: JUMPDEST
00001e7f: PUSH1 0x01
00001e81: SLOAD
00001e82: PUSH1 0x01
00001e84: PUSH1 0x01
00001e86: PUSH1 0xa0
00001e88: SHL
00001e89: SUB
00001e8a: SWAP1
00001e8b: DUP2
00001e8c: AND
00001e8d: SWAP2
00001e8e: AND
00001e8f: EQ
00001e90: SWAP1
00001e91: JUMP
00001e92: JUMPDEST
00001e93: PUSH1 0x00
00001e95: PUSH1 0x60
00001e97: DUP4
00001e98: DUP4
00001e99: PUSH1 0x40
00001e9b: DUP2
00001e9c: LT
00001e9d: ISZERO
00001e9e: PUSH2 0x1ea6
00001ea1: JUMPI
00001ea2: PUSH1 0x00
00001ea4: DUP1
00001ea5: REVERT
00001ea6: JUMPDEST
00001ea7: PUSH1 0x01
00001ea9: PUSH1 0x01
00001eab: PUSH1 0xa0
00001ead: SHL
00001eae: SUB
00001eaf: DUP3
00001eb0: CALLDATALOAD
00001eb1: AND
00001eb2: SWAP2
00001eb3: SWAP1
00001eb4: DUP2
00001eb5: ADD
00001eb6: SWAP1
00001eb7: PUSH1 0x40
00001eb9: DUP2
00001eba: ADD
00001ebb: PUSH1 0x20
00001ebd: DUP3
00001ebe: ADD
00001ebf: CALLDATALOAD
00001ec0: PUSH1 0x01
00001ec2: PUSH1 0x20
00001ec4: SHL
00001ec5: DUP2
00001ec6: GT
00001ec7: ISZERO
00001ec8: PUSH2 0x1de7
00001ecb: JUMPI
00001ecc: PUSH1 0x00
00001ece: DUP1
00001ecf: REVERT
00001ed0: JUMPDEST
00001ed1: PUSH1 0x40
00001ed3: DUP1
00001ed4: MLOAD
00001ed5: PUSH4 0x70a08231
00001eda: PUSH1 0xe0
00001edc: SHL
00001edd: DUP2
00001ede: MSTORE
00001edf: ADDRESS
00001ee0: PUSH1 0x04
00001ee2: DUP3
00001ee3: ADD
00001ee4: MSTORE
00001ee5: SWAP1
00001ee6: MLOAD
00001ee7: PUSH1 0x00
00001ee9: SWAP2
00001eea: DUP3
00001eeb: SWAP2
00001eec: PUSH1 0x01
00001eee: PUSH1 0x01
00001ef0: PUSH1 0xa0
00001ef2: SHL
00001ef3: SUB
00001ef4: DUP8
00001ef5: AND
00001ef6: SWAP2
00001ef7: PUSH4 0x70a08231
00001efc: SWAP2
00001efd: PUSH1 0x24
00001eff: DUP1
00001f00: DUP4
00001f01: ADD
00001f02: SWAP3
00001f03: PUSH1 0x20
00001f05: SWAP3
00001f06: SWAP2
00001f07: SWAP1
00001f08: DUP3
00001f09: SWAP1
00001f0a: SUB
00001f0b: ADD
00001f0c: DUP2
00001f0d: DUP7
00001f0e: DUP1
00001f0f: EXTCODESIZE
00001f10: ISZERO
00001f11: DUP1
00001f12: ISZERO
00001f13: PUSH2 0x1f1b
00001f16: JUMPI
00001f17: PUSH1 0x00
00001f19: DUP1
00001f1a: REVERT
00001f1b: JUMPDEST
00001f1c: POP
00001f1d: GAS
00001f1e: STATICCALL
00001f1f: ISZERO
00001f20: DUP1
00001f21: ISZERO
00001f22: PUSH2 0x1f2f
00001f25: JUMPI
00001f26: RETURNDATASIZE
00001f27: PUSH1 0x00
00001f29: DUP1
00001f2a: RETURNDATACOPY
00001f2b: RETURNDATASIZE
00001f2c: PUSH1 0x00
00001f2e: REVERT
00001f2f: JUMPDEST
00001f30: POP
00001f31: POP
00001f32: POP
00001f33: POP
00001f34: PUSH1 0x40
00001f36: MLOAD
00001f37: RETURNDATASIZE
00001f38: PUSH1 0x20
00001f3a: DUP2
00001f3b: LT
00001f3c: ISZERO
00001f3d: PUSH2 0x1f45
00001f40: JUMPI
00001f41: PUSH1 0x00
00001f43: DUP1
00001f44: REVERT
00001f45: JUMPDEST
00001f46: POP
00001f47: MLOAD
00001f48: SWAP1
00001f49: POP
00001f4a: PUSH2 0x1f64
00001f4d: PUSH1 0x01
00001f4f: PUSH1 0x01
00001f51: PUSH1 0xa0
00001f53: SHL
00001f54: SUB
00001f55: DUP7
00001f56: AND
00001f57: DUP6
00001f58: ADDRESS
00001f59: DUP7
00001f5a: PUSH4 0xffffffff
00001f5f: PUSH2 0x2153
00001f62: AND
00001f63: JUMP
00001f64: JUMPDEST
00001f65: PUSH1 0x40
00001f67: DUP1
00001f68: MLOAD
00001f69: PUSH4 0x70a08231
00001f6e: PUSH1 0xe0
00001f70: SHL
00001f71: DUP2
00001f72: MSTORE
00001f73: ADDRESS
00001f74: PUSH1 0x04
00001f76: DUP3
00001f77: ADD
00001f78: MSTORE
00001f79: SWAP1
00001f7a: MLOAD
00001f7b: PUSH1 0x00
00001f7d: SWAP2
00001f7e: PUSH1 0x01
00001f80: PUSH1 0x01
00001f82: PUSH1 0xa0
00001f84: SHL
00001f85: SUB
00001f86: DUP9
00001f87: AND
00001f88: SWAP2
00001f89: PUSH4 0x70a08231
00001f8e: SWAP2
00001f8f: PUSH1 0x24
00001f91: DUP1
00001f92: DUP3
00001f93: ADD
00001f94: SWAP3
00001f95: PUSH1 0x20
00001f97: SWAP3
00001f98: SWAP1
00001f99: SWAP2
00001f9a: SWAP1
00001f9b: DUP3
00001f9c: SWAP1
00001f9d: SUB
00001f9e: ADD
00001f9f: DUP2
00001fa0: DUP7
00001fa1: DUP1
00001fa2: EXTCODESIZE
00001fa3: ISZERO
00001fa4: DUP1
00001fa5: ISZERO
00001fa6: PUSH2 0x1fae
00001fa9: JUMPI
00001faa: PUSH1 0x00
00001fac: DUP1
00001fad: REVERT
00001fae: JUMPDEST
00001faf: POP
00001fb0: GAS
00001fb1: STATICCALL
00001fb2: ISZERO
00001fb3: DUP1
00001fb4: ISZERO
00001fb5: PUSH2 0x1fc2
00001fb8: JUMPI
00001fb9: RETURNDATASIZE
00001fba: PUSH1 0x00
00001fbc: DUP1
00001fbd: RETURNDATACOPY
00001fbe: RETURNDATASIZE
00001fbf: PUSH1 0x00
00001fc1: REVERT
00001fc2: JUMPDEST
00001fc3: POP
00001fc4: POP
00001fc5: POP
00001fc6: POP
00001fc7: PUSH1 0x40
00001fc9: MLOAD
00001fca: RETURNDATASIZE
00001fcb: PUSH1 0x20
00001fcd: DUP2
00001fce: LT
00001fcf: ISZERO
00001fd0: PUSH2 0x1fd8
00001fd3: JUMPI
00001fd4: PUSH1 0x00
00001fd6: DUP1
00001fd7: REVERT
00001fd8: JUMPDEST
00001fd9: POP
00001fda: MLOAD
00001fdb: SWAP1
00001fdc: POP
00001fdd: PUSH2 0x1fe6
00001fe0: DUP2
00001fe1: DUP4
00001fe2: PUSH2 0x21b3
00001fe5: JUMP
00001fe6: JUMPDEST
00001fe7: SWAP7
00001fe8: SWAP6
00001fe9: POP
00001fea: POP
00001feb: POP
00001fec: POP
00001fed: POP
00001fee: POP
00001fef: JUMP
00001ff0: JUMPDEST
00001ff1: PUSH1 0x02
00001ff3: SLOAD
00001ff4: PUSH1 0x00
00001ff6: DUP1
00001ff7: SLOAD
00001ff8: PUSH1 0x40
00001ffa: DUP1
00001ffb: MLOAD
00001ffc: PUSH1 0x60
00001ffe: DUP2
00001fff: ADD
00002000: DUP3
00002001: MSTORE
00002002: DUP7
00002003: DUP2
00002004: MSTORE
00002005: PUSH1 0x20
00002007: DUP2
00002008: ADD
00002009: DUP10
0000200a: SWAP1
0000200b: MSTORE
0000200c: SWAP1
0000200d: DUP2
0000200e: ADD
0000200f: DUP8
00002010: SWAP1
00002011: MSTORE
00002012: SWAP2
00002013: SWAP3
00002014: PUSH2 0x122f
00002017: SWAP3
00002018: PUSH1 0x01
0000201a: PUSH1 0x01
0000201c: PUSH1 0xa0
0000201e: SHL
0000201f: SUB
00002020: SWAP2
00002021: DUP3
00002022: AND
00002023: SWAP3
00002024: SWAP1
00002025: SWAP2
00002026: AND
00002027: SWAP1
00002028: DUP12
00002029: SWAP1
0000202a: DUP12
0000202b: SWAP1
0000202c: CALLVALUE
0000202d: SWAP1
0000202e: DUP8
0000202f: SWAP1
00002030: DUP10
00002031: PUSH2 0x2210
00002034: JUMP
00002035: JUMPDEST
00002036: PUSH1 0x01
00002038: PUSH1 0x01
0000203a: PUSH1 0xa0
0000203c: SHL
0000203d: SUB
0000203e: DUP3
0000203f: AND
00002040: PUSH2 0x2086
00002043: JUMPI
00002044: PUSH1 0x40
00002046: DUP1
00002047: MLOAD
00002048: PUSH3 0x461bcd
0000204c: PUSH1 0xe5
0000204e: SHL
0000204f: DUP2
00002050: MSTORE
00002051: PUSH1 0x20
00002053: PUSH1 0x04
00002055: DUP3
00002056: ADD
00002057: MSTORE
00002058: PUSH1 0x13
0000205a: PUSH1 0x24
0000205c: DUP3
0000205d: ADD
0000205e: MSTORE
0000205f: PUSH19 0x1253959053125117d0d3d55395115494105495
00002073: PUSH1 0x6a
00002075: SHL
00002076: PUSH1 0x44
00002078: DUP3
00002079: ADD
0000207a: MSTORE
0000207b: SWAP1
0000207c: MLOAD
0000207d: SWAP1
0000207e: DUP2
0000207f: SWAP1
00002080: SUB
00002081: PUSH1 0x64
00002083: ADD
00002084: SWAP1
00002085: REVERT
00002086: JUMPDEST
00002087: PUSH1 0x00
00002089: SLOAD
0000208a: PUSH1 0x01
0000208c: PUSH1 0x01
0000208e: PUSH1 0xa0
00002090: SHL
00002091: SUB
00002092: AND
00002093: ISZERO
00002094: PUSH2 0x20d3
00002097: JUMPI
00002098: PUSH1 0x40
0000209a: DUP1
0000209b: MLOAD
0000209c: PUSH3 0x461bcd
000020a0: PUSH1 0xe5
000020a2: SHL
000020a3: DUP2
000020a4: MSTORE
000020a5: PUSH1 0x20
000020a7: PUSH1 0x04
000020a9: DUP3
000020aa: ADD
000020ab: MSTORE
000020ac: PUSH1 0x0c
000020ae: PUSH1 0x24
000020b0: DUP3
000020b1: ADD
000020b2: MSTORE
000020b3: PUSH12 0x1053149150511657d2539255
000020c0: PUSH1 0xa2
000020c2: SHL
000020c3: PUSH1 0x44
000020c5: DUP3
000020c6: ADD
000020c7: MSTORE
000020c8: SWAP1
000020c9: MLOAD
000020ca: SWAP1
000020cb: DUP2
000020cc: SWAP1
000020cd: SUB
000020ce: PUSH1 0x64
000020d0: ADD
000020d1: SWAP1
000020d2: REVERT
000020d3: JUMPDEST
000020d4: PUSH1 0x00
000020d6: DUP1
000020d7: SLOAD
000020d8: PUSH1 0x01
000020da: PUSH1 0x01
000020dc: PUSH1 0xa0
000020de: SHL
000020df: SUB
000020e0: SWAP4
000020e1: DUP5
000020e2: AND
000020e3: PUSH1 0x01
000020e5: PUSH1 0x01
000020e7: PUSH1 0xa0
000020e9: SHL
000020ea: SUB
000020eb: NOT
000020ec: SWAP2
000020ed: DUP3
000020ee: AND
000020ef: OR
000020f0: SWAP1
000020f1: SWAP2
000020f2: SSTORE
000020f3: PUSH1 0x01
000020f5: DUP1
000020f6: SLOAD
000020f7: SWAP3
000020f8: SWAP1
000020f9: SWAP4
000020fa: AND
000020fb: SWAP2
000020fc: AND
000020fd: OR
000020fe: SWAP1
000020ff: SSTORE
00002100: JUMP
00002101: JUMPDEST
00002102: PUSH1 0x40
00002104: DUP1
00002105: MLOAD
00002106: PUSH1 0x01
00002108: PUSH1 0x01
0000210a: PUSH1 0xa0
0000210c: SHL
0000210d: SUB
0000210e: DUP5
0000210f: AND
00002110: PUSH1 0x24
00002112: DUP3
00002113: ADD
00002114: MSTORE
00002115: PUSH1 0x44
00002117: DUP1
00002118: DUP3
00002119: ADD
0000211a: DUP5
0000211b: SWAP1
0000211c: MSTORE
0000211d: DUP3
0000211e: MLOAD
0000211f: DUP1
00002120: DUP4
00002121: SUB
00002122: SWAP1
00002123: SWAP2
00002124: ADD
00002125: DUP2
00002126: MSTORE
00002127: PUSH1 0x64
00002129: SWAP1
0000212a: SWAP2
0000212b: ADD
0000212c: SWAP1
0000212d: SWAP2
0000212e: MSTORE
0000212f: PUSH1 0x20
00002131: DUP2
00002132: ADD
00002133: DUP1
00002134: MLOAD
00002135: PUSH1 0x01
00002137: PUSH1 0x01
00002139: PUSH1 0xe0
0000213b: SHL
0000213c: SUB
0000213d: AND
0000213e: PUSH4 0xa9059cbb
00002143: PUSH1 0xe0
00002145: SHL
00002146: OR
00002147: SWAP1
00002148: MSTORE
00002149: PUSH2 0x1e79
0000214c: SWAP1
0000214d: DUP5
0000214e: SWAP1
0000214f: PUSH2 0x223d
00002152: JUMP
00002153: JUMPDEST
00002154: PUSH1 0x40
00002156: DUP1
00002157: MLOAD
00002158: PUSH1 0x01
0000215a: PUSH1 0x01
0000215c: PUSH1 0xa0
0000215e: SHL
0000215f: SUB
00002160: DUP1
00002161: DUP7
00002162: AND
00002163: PUSH1 0x24
00002165: DUP4
00002166: ADD
00002167: MSTORE
00002168: DUP5
00002169: AND
0000216a: PUSH1 0x44
0000216c: DUP3
0000216d: ADD
0000216e: MSTORE
0000216f: PUSH1 0x64
00002171: DUP1
00002172: DUP3
00002173: ADD
00002174: DUP5
00002175: SWAP1
00002176: MSTORE
00002177: DUP3
00002178: MLOAD
00002179: DUP1
0000217a: DUP4
0000217b: SUB
0000217c: SWAP1
0000217d: SWAP2
0000217e: ADD
0000217f: DUP2
00002180: MSTORE
00002181: PUSH1 0x84
00002183: SWAP1
00002184: SWAP2
00002185: ADD
00002186: SWAP1
00002187: SWAP2
00002188: MSTORE
00002189: PUSH1 0x20
0000218b: DUP2
0000218c: ADD
0000218d: DUP1
0000218e: MLOAD
0000218f: PUSH1 0x01
00002191: PUSH1 0x01
00002193: PUSH1 0xe0
00002195: SHL
00002196: SUB
00002197: AND
00002198: PUSH4 0x23b872dd
0000219d: PUSH1 0xe0
0000219f: SHL
000021a0: OR
000021a1: SWAP1
000021a2: MSTORE
000021a3: PUSH2 0x21ad
000021a6: SWAP1
000021a7: DUP6
000021a8: SWAP1
000021a9: PUSH2 0x223d
000021ac: JUMP
000021ad: JUMPDEST
000021ae: POP
000021af: POP
000021b0: POP
000021b1: POP
000021b2: JUMP
000021b3: JUMPDEST
000021b4: PUSH1 0x00
000021b6: DUP3
000021b7: DUP3
000021b8: GT
000021b9: ISZERO
000021ba: PUSH2 0x220a
000021bd: JUMPI
000021be: PUSH1 0x40
000021c0: DUP1
000021c1: MLOAD
000021c2: PUSH3 0x461bcd
000021c6: PUSH1 0xe5
000021c8: SHL
000021c9: DUP2
000021ca: MSTORE
000021cb: PUSH1 0x20
000021cd: PUSH1 0x04
000021cf: DUP3
000021d0: ADD
000021d1: MSTORE
000021d2: PUSH1 0x1e
000021d4: PUSH1 0x24
000021d6: DUP3
000021d7: ADD
000021d8: MSTORE
000021d9: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
000021fa: PUSH1 0x44
000021fc: DUP3
000021fd: ADD
000021fe: MSTORE
000021ff: SWAP1
00002200: MLOAD
00002201: SWAP1
00002202: DUP2
00002203: SWAP1
00002204: SUB
00002205: PUSH1 0x64
00002207: ADD
00002208: SWAP1
00002209: REVERT
0000220a: JUMPDEST
0000220b: POP
0000220c: SWAP1
0000220d: SUB
0000220e: SWAP1
0000220f: JUMP
00002210: JUMPDEST
00002211: PUSH1 0x00
00002213: PUSH2 0x2230
00002216: DUP10
00002217: DUP10
00002218: DUP10
00002219: DUP10
0000221a: DUP10
0000221b: DUP10
0000221c: DUP10
0000221d: PUSH1 0x00
0000221f: ADD
00002220: MLOAD
00002221: DUP11
00002222: PUSH1 0x20
00002224: ADD
00002225: MLOAD
00002226: DUP12
00002227: PUSH1 0x40
00002229: ADD
0000222a: MLOAD
0000222b: DUP12
0000222c: PUSH2 0x22ee
0000222f: JUMP
00002230: JUMPDEST
00002231: SWAP10
00002232: SWAP9
00002233: POP
00002234: POP
00002235: POP
00002236: POP
00002237: POP
00002238: POP
00002239: POP
0000223a: POP
0000223b: POP
0000223c: JUMP
0000223d: JUMPDEST
0000223e: PUSH1 0x60
00002240: PUSH2 0x2292
00002243: DUP3
00002244: PUSH1 0x40
00002246: MLOAD
00002247: DUP1
00002248: PUSH1 0x40
0000224a: ADD
0000224b: PUSH1 0x40
0000224d: MSTORE
0000224e: DUP1
0000224f: PUSH1 0x20
00002251: DUP2
00002252: MSTORE
00002253: PUSH1 0x20
00002255: ADD
00002256: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00002277: DUP2
00002278: MSTORE
00002279: POP
0000227a: DUP6
0000227b: PUSH1 0x01
0000227d: PUSH1 0x01
0000227f: PUSH1 0xa0
00002281: SHL
00002282: SUB
00002283: AND
00002284: PUSH2 0x2502
00002287: SWAP1
00002288: SWAP3
00002289: SWAP2
0000228a: SWAP1
0000228b: PUSH4 0xffffffff
00002290: AND
00002291: JUMP
00002292: JUMPDEST
00002293: DUP1
00002294: MLOAD
00002295: SWAP1
00002296: SWAP2
00002297: POP
00002298: ISZERO
00002299: PUSH2 0x1e79
0000229c: JUMPI
0000229d: DUP1
0000229e: DUP1
0000229f: PUSH1 0x20
000022a1: ADD
000022a2: SWAP1
000022a3: MLOAD
000022a4: PUSH1 0x20
000022a6: DUP2
000022a7: LT
000022a8: ISZERO
000022a9: PUSH2 0x22b1
000022ac: JUMPI
000022ad: PUSH1 0x00
000022af: DUP1
000022b0: REVERT
000022b1: JUMPDEST
000022b2: POP
000022b3: MLOAD
000022b4: PUSH2 0x1e79
000022b7: JUMPI
000022b8: PUSH1 0x40
000022ba: MLOAD
000022bb: PUSH3 0x461bcd
000022bf: PUSH1 0xe5
000022c1: SHL
000022c2: DUP2
000022c3: MSTORE
000022c4: PUSH1 0x04
000022c6: ADD
000022c7: DUP1
000022c8: DUP1
000022c9: PUSH1 0x20
000022cb: ADD
000022cc: DUP3
000022cd: DUP2
000022ce: SUB
000022cf: DUP3
000022d0: MSTORE
000022d1: PUSH1 0x2a
000022d3: DUP2
000022d4: MSTORE
000022d5: PUSH1 0x20
000022d7: ADD
000022d8: DUP1
000022d9: PUSH2 0x27db
000022dc: PUSH1 0x2a
000022de: SWAP2
000022df: CODECOPY
000022e0: PUSH1 0x40
000022e2: ADD
000022e3: SWAP2
000022e4: POP
000022e5: POP
000022e6: PUSH1 0x40
000022e8: MLOAD
000022e9: DUP1
000022ea: SWAP2
000022eb: SUB
000022ec: SWAP1
000022ed: REVERT
000022ee: JUMPDEST
000022ef: PUSH1 0x00
000022f1: DUP1
000022f2: DUP12
000022f3: PUSH1 0x01
000022f5: PUSH1 0x01
000022f7: PUSH1 0xa0
000022f9: SHL
000022fa: SUB
000022fb: AND
000022fc: PUSH4 0x679b6ded
00002301: DUP10
00002302: DUP14
00002303: DUP11
00002304: DUP11
00002305: DUP16
00002306: DUP16
00002307: DUP13
00002308: DUP13
00002309: DUP13
0000230a: PUSH1 0x40
0000230c: MLOAD
0000230d: DUP11
0000230e: PUSH4 0xffffffff
00002313: AND
00002314: PUSH1 0xe0
00002316: SHL
00002317: DUP2
00002318: MSTORE
00002319: PUSH1 0x04
0000231b: ADD
0000231c: DUP1
0000231d: DUP10
0000231e: PUSH1 0x01
00002320: PUSH1 0x01
00002322: PUSH1 0xa0
00002324: SHL
00002325: SUB
00002326: AND
00002327: PUSH1 0x01
00002329: PUSH1 0x01
0000232b: PUSH1 0xa0
0000232d: SHL
0000232e: SUB
0000232f: AND
00002330: DUP2
00002331: MSTORE
00002332: PUSH1 0x20
00002334: ADD
00002335: DUP9
00002336: DUP2
00002337: MSTORE
00002338: PUSH1 0x20
0000233a: ADD
0000233b: DUP8
0000233c: DUP2
0000233d: MSTORE
0000233e: PUSH1 0x20
00002340: ADD
00002341: DUP7
00002342: PUSH1 0x01
00002344: PUSH1 0x01
00002346: PUSH1 0xa0
00002348: SHL
00002349: SUB
0000234a: AND
0000234b: PUSH1 0x01
0000234d: PUSH1 0x01
0000234f: PUSH1 0xa0
00002351: SHL
00002352: SUB
00002353: AND
00002354: DUP2
00002355: MSTORE
00002356: PUSH1 0x20
00002358: ADD
00002359: DUP6
0000235a: PUSH1 0x01
0000235c: PUSH1 0x01
0000235e: PUSH1 0xa0
00002360: SHL
00002361: SUB
00002362: AND
00002363: PUSH1 0x01
00002365: PUSH1 0x01
00002367: PUSH1 0xa0
00002369: SHL
0000236a: SUB
0000236b: AND
0000236c: DUP2
0000236d: MSTORE
0000236e: PUSH1 0x20
00002370: ADD
00002371: DUP5
00002372: DUP2
00002373: MSTORE
00002374: PUSH1 0x20
00002376: ADD
00002377: DUP4
00002378: DUP2
00002379: MSTORE
0000237a: PUSH1 0x20
0000237c: ADD
0000237d: DUP1
0000237e: PUSH1 0x20
00002380: ADD
00002381: DUP3
00002382: DUP2
00002383: SUB
00002384: DUP3
00002385: MSTORE
00002386: DUP4
00002387: DUP2
00002388: DUP2
00002389: MLOAD
0000238a: DUP2
0000238b: MSTORE
0000238c: PUSH1 0x20
0000238e: ADD
0000238f: SWAP2
00002390: POP
00002391: DUP1
00002392: MLOAD
00002393: SWAP1
00002394: PUSH1 0x20
00002396: ADD
00002397: SWAP1
00002398: DUP1
00002399: DUP4
0000239a: DUP4
0000239b: PUSH1 0x00
0000239d: JUMPDEST
0000239e: DUP4
0000239f: DUP2
000023a0: LT
000023a1: ISZERO
000023a2: PUSH2 0x23b5
000023a5: JUMPI
000023a6: DUP2
000023a7: DUP2
000023a8: ADD
000023a9: MLOAD
000023aa: DUP4
000023ab: DUP3
000023ac: ADD
000023ad: MSTORE
000023ae: PUSH1 0x20
000023b0: ADD
000023b1: PUSH2 0x239d
000023b4: JUMP
000023b5: JUMPDEST
000023b6: POP
000023b7: POP
000023b8: POP
000023b9: POP
000023ba: SWAP1
000023bb: POP
000023bc: SWAP1
000023bd: DUP2
000023be: ADD
000023bf: SWAP1
000023c0: PUSH1 0x1f
000023c2: AND
000023c3: DUP1
000023c4: ISZERO
000023c5: PUSH2 0x23e2
000023c8: JUMPI
000023c9: DUP1
000023ca: DUP3
000023cb: SUB
000023cc: DUP1
000023cd: MLOAD
000023ce: PUSH1 0x01
000023d0: DUP4
000023d1: PUSH1 0x20
000023d3: SUB
000023d4: PUSH2 0x0100
000023d7: EXP
000023d8: SUB
000023d9: NOT
000023da: AND
000023db: DUP2
000023dc: MSTORE
000023dd: PUSH1 0x20
000023df: ADD
000023e0: SWAP2
000023e1: POP
000023e2: JUMPDEST
000023e3: POP
000023e4: SWAP10
000023e5: POP
000023e6: POP
000023e7: POP
000023e8: POP
000023e9: POP
000023ea: POP
000023eb: POP
000023ec: POP
000023ed: POP
000023ee: POP
000023ef: PUSH1 0x20
000023f1: PUSH1 0x40
000023f3: MLOAD
000023f4: DUP1
000023f5: DUP4
000023f6: SUB
000023f7: DUP2
000023f8: DUP6
000023f9: DUP9
000023fa: DUP1
000023fb: EXTCODESIZE
000023fc: ISZERO
000023fd: DUP1
000023fe: ISZERO
000023ff: PUSH2 0x2407
00002402: JUMPI
00002403: PUSH1 0x00
00002405: DUP1
00002406: REVERT
00002407: JUMPDEST
00002408: POP
00002409: GAS
0000240a: CALL
0000240b: ISZERO
0000240c: DUP1
0000240d: ISZERO
0000240e: PUSH2 0x241b
00002411: JUMPI
00002412: RETURNDATASIZE
00002413: PUSH1 0x00
00002415: DUP1
00002416: RETURNDATACOPY
00002417: RETURNDATASIZE
00002418: PUSH1 0x00
0000241a: REVERT
0000241b: JUMPDEST
0000241c: POP
0000241d: POP
0000241e: POP
0000241f: POP
00002420: POP
00002421: PUSH1 0x40
00002423: MLOAD
00002424: RETURNDATASIZE
00002425: PUSH1 0x20
00002427: DUP2
00002428: LT
00002429: ISZERO
0000242a: PUSH2 0x2432
0000242d: JUMPI
0000242e: PUSH1 0x00
00002430: DUP1
00002431: REVERT
00002432: JUMPDEST
00002433: DUP2
00002434: ADD
00002435: SWAP1
00002436: DUP1
00002437: DUP1
00002438: MLOAD
00002439: SWAP1
0000243a: PUSH1 0x20
0000243c: ADD
0000243d: SWAP1
0000243e: SWAP3
0000243f: SWAP2
00002440: SWAP1
00002441: POP
00002442: POP
00002443: POP
00002444: SWAP1
00002445: POP
00002446: DUP1
00002447: DUP12
00002448: PUSH1 0x01
0000244a: PUSH1 0x01
0000244c: PUSH1 0xa0
0000244e: SHL
0000244f: SUB
00002450: AND
00002451: DUP11
00002452: PUSH1 0x01
00002454: PUSH1 0x01
00002456: PUSH1 0xa0
00002458: SHL
00002459: SUB
0000245a: AND
0000245b: PUSH32 0xc1d1490cf25c3b40d600dfb27c7680340ed1ab901b7e8f3551280968a3b372b0
0000247c: DUP7
0000247d: PUSH1 0x40
0000247f: MLOAD
00002480: DUP1
00002481: DUP1
00002482: PUSH1 0x20
00002484: ADD
00002485: DUP3
00002486: DUP2
00002487: SUB
00002488: DUP3
00002489: MSTORE
0000248a: DUP4
0000248b: DUP2
0000248c: DUP2
0000248d: MLOAD
0000248e: DUP2
0000248f: MSTORE
00002490: PUSH1 0x20
00002492: ADD
00002493: SWAP2
00002494: POP
00002495: DUP1
00002496: MLOAD
00002497: SWAP1
00002498: PUSH1 0x20
0000249a: ADD
0000249b: SWAP1
0000249c: DUP1
0000249d: DUP4
0000249e: DUP4
0000249f: PUSH1 0x00
000024a1: JUMPDEST
000024a2: DUP4
000024a3: DUP2
000024a4: LT
000024a5: ISZERO
000024a6: PUSH2 0x24b9
000024a9: JUMPI
000024aa: DUP2
000024ab: DUP2
000024ac: ADD
000024ad: MLOAD
000024ae: DUP4
000024af: DUP3
000024b0: ADD
000024b1: MSTORE
000024b2: PUSH1 0x20
000024b4: ADD
000024b5: PUSH2 0x24a1
000024b8: JUMP
000024b9: JUMPDEST
000024ba: POP
000024bb: POP
000024bc: POP
000024bd: POP
000024be: SWAP1
000024bf: POP
000024c0: SWAP1
000024c1: DUP2
000024c2: ADD
000024c3: SWAP1
000024c4: PUSH1 0x1f
000024c6: AND
000024c7: DUP1
000024c8: ISZERO
000024c9: PUSH2 0x24e6
000024cc: JUMPI
000024cd: DUP1
000024ce: DUP3
000024cf: SUB
000024d0: DUP1
000024d1: MLOAD
000024d2: PUSH1 0x01
000024d4: DUP4
000024d5: PUSH1 0x20
000024d7: SUB
000024d8: PUSH2 0x0100
000024db: EXP
000024dc: SUB
000024dd: NOT
000024de: AND
000024df: DUP2
000024e0: MSTORE
000024e1: PUSH1 0x20
000024e3: ADD
000024e4: SWAP2
000024e5: POP
000024e6: JUMPDEST
000024e7: POP
000024e8: SWAP3
000024e9: POP
000024ea: POP
000024eb: POP
000024ec: PUSH1 0x40
000024ee: MLOAD
000024ef: DUP1
000024f0: SWAP2
000024f1: SUB
000024f2: SWAP1
000024f3: LOG4
000024f4: SWAP12
000024f5: SWAP11
000024f6: POP
000024f7: POP
000024f8: POP
000024f9: POP
000024fa: POP
000024fb: POP
000024fc: POP
000024fd: POP
000024fe: POP
000024ff: POP
00002500: POP
00002501: JUMP
00002502: JUMPDEST
00002503: PUSH1 0x60
00002505: PUSH2 0x2511
00002508: DUP5
00002509: DUP5
0000250a: PUSH1 0x00
0000250c: DUP6
0000250d: PUSH2 0x2519
00002510: JUMP
00002511: JUMPDEST
00002512: SWAP5
00002513: SWAP4
00002514: POP
00002515: POP
00002516: POP
00002517: POP
00002518: JUMP
00002519: JUMPDEST
0000251a: PUSH1 0x60
0000251c: DUP3
0000251d: SELFBALANCE
0000251e: LT
0000251f: ISZERO
00002520: PUSH2 0x255a
00002523: JUMPI
00002524: PUSH1 0x40
00002526: MLOAD
00002527: PUSH3 0x461bcd
0000252b: PUSH1 0xe5
0000252d: SHL
0000252e: DUP2
0000252f: MSTORE
00002530: PUSH1 0x04
00002532: ADD
00002533: DUP1
00002534: DUP1
00002535: PUSH1 0x20
00002537: ADD
00002538: DUP3
00002539: DUP2
0000253a: SUB
0000253b: DUP3
0000253c: MSTORE
0000253d: PUSH1 0x26
0000253f: DUP2
00002540: MSTORE
00002541: PUSH1 0x20
00002543: ADD
00002544: DUP1
00002545: PUSH2 0x27b5
00002548: PUSH1 0x26
0000254a: SWAP2
0000254b: CODECOPY
0000254c: PUSH1 0x40
0000254e: ADD
0000254f: SWAP2
00002550: POP
00002551: POP
00002552: PUSH1 0x40
00002554: MLOAD
00002555: DUP1
00002556: SWAP2
00002557: SUB
00002558: SWAP1
00002559: REVERT
0000255a: JUMPDEST
0000255b: PUSH2 0x2563
0000255e: DUP6
0000255f: PUSH2 0x1c14
00002562: JUMP
00002563: JUMPDEST
00002564: PUSH2 0x25b4
00002567: JUMPI
00002568: PUSH1 0x40
0000256a: DUP1
0000256b: MLOAD
0000256c: PUSH3 0x461bcd
00002570: PUSH1 0xe5
00002572: SHL
00002573: DUP2
00002574: MSTORE
00002575: PUSH1 0x20
00002577: PUSH1 0x04
00002579: DUP3
0000257a: ADD
0000257b: MSTORE
0000257c: PUSH1 0x1d
0000257e: PUSH1 0x24
00002580: DUP3
00002581: ADD
00002582: MSTORE
00002583: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
000025a4: PUSH1 0x44
000025a6: DUP3
000025a7: ADD
000025a8: MSTORE
000025a9: SWAP1
000025aa: MLOAD
000025ab: SWAP1
000025ac: DUP2
000025ad: SWAP1
000025ae: SUB
000025af: PUSH1 0x64
000025b1: ADD
000025b2: SWAP1
000025b3: REVERT
000025b4: JUMPDEST
000025b5: PUSH1 0x00
000025b7: PUSH1 0x60
000025b9: DUP7
000025ba: PUSH1 0x01
000025bc: PUSH1 0x01
000025be: PUSH1 0xa0
000025c0: SHL
000025c1: SUB
000025c2: AND
000025c3: DUP6
000025c4: DUP8
000025c5: PUSH1 0x40
000025c7: MLOAD
000025c8: DUP1
000025c9: DUP3
000025ca: DUP1
000025cb: MLOAD
000025cc: SWAP1
000025cd: PUSH1 0x20
000025cf: ADD
000025d0: SWAP1
000025d1: DUP1
000025d2: DUP4
000025d3: DUP4
000025d4: JUMPDEST
000025d5: PUSH1 0x20
000025d7: DUP4
000025d8: LT
000025d9: PUSH2 0x25f3
000025dc: JUMPI
000025dd: DUP1
000025de: MLOAD
000025df: DUP3
000025e0: MSTORE
000025e1: PUSH1 0x1f
000025e3: NOT
000025e4: SWAP1
000025e5: SWAP3
000025e6: ADD
000025e7: SWAP2
000025e8: PUSH1 0x20
000025ea: SWAP2
000025eb: DUP3
000025ec: ADD
000025ed: SWAP2
000025ee: ADD
000025ef: PUSH2 0x25d4
000025f2: JUMP
000025f3: JUMPDEST
000025f4: PUSH1 0x01
000025f6: DUP4
000025f7: PUSH1 0x20
000025f9: SUB
000025fa: PUSH2 0x0100
000025fd: EXP
000025fe: SUB
000025ff: DUP1
00002600: NOT
00002601: DUP3
00002602: MLOAD
00002603: AND
00002604: DUP2
00002605: DUP5
00002606: MLOAD
00002607: AND
00002608: DUP1
00002609: DUP3
0000260a: OR
0000260b: DUP6
0000260c: MSTORE
0000260d: POP
0000260e: POP
0000260f: POP
00002610: POP
00002611: POP
00002612: POP
00002613: SWAP1
00002614: POP
00002615: ADD
00002616: SWAP2
00002617: POP
00002618: POP
00002619: PUSH1 0x00
0000261b: PUSH1 0x40
0000261d: MLOAD
0000261e: DUP1
0000261f: DUP4
00002620: SUB
00002621: DUP2
00002622: DUP6
00002623: DUP8
00002624: GAS
00002625: CALL
00002626: SWAP3
00002627: POP
00002628: POP
00002629: POP
0000262a: RETURNDATASIZE
0000262b: DUP1
0000262c: PUSH1 0x00
0000262e: DUP2
0000262f: EQ
00002630: PUSH2 0x2655
00002633: JUMPI
00002634: PUSH1 0x40
00002636: MLOAD
00002637: SWAP2
00002638: POP
00002639: PUSH1 0x1f
0000263b: NOT
0000263c: PUSH1 0x3f
0000263e: RETURNDATASIZE
0000263f: ADD
00002640: AND
00002641: DUP3
00002642: ADD
00002643: PUSH1 0x40
00002645: MSTORE
00002646: RETURNDATASIZE
00002647: DUP3
00002648: MSTORE
00002649: RETURNDATASIZE
0000264a: PUSH1 0x00
0000264c: PUSH1 0x20
0000264e: DUP5
0000264f: ADD
00002650: RETURNDATACOPY
00002651: PUSH2 0x265a
00002654: JUMP
00002655: JUMPDEST
00002656: PUSH1 0x60
00002658: SWAP2
00002659: POP
0000265a: JUMPDEST
0000265b: POP
0000265c: SWAP2
0000265d: POP
0000265e: SWAP2
0000265f: POP
00002660: PUSH2 0x266a
00002663: DUP3
00002664: DUP3
00002665: DUP7
00002666: PUSH2 0x2675
00002669: JUMP
0000266a: JUMPDEST
0000266b: SWAP8
0000266c: SWAP7
0000266d: POP
0000266e: POP
0000266f: POP
00002670: POP
00002671: POP
00002672: POP
00002673: POP
00002674: JUMP
00002675: JUMPDEST
00002676: PUSH1 0x60
00002678: DUP4
00002679: ISZERO
0000267a: PUSH2 0x2684
0000267d: JUMPI
0000267e: POP
0000267f: DUP2
00002680: PUSH2 0x0e41
00002683: JUMP
00002684: JUMPDEST
00002685: DUP3
00002686: MLOAD
00002687: ISZERO
00002688: PUSH2 0x2694
0000268b: JUMPI
0000268c: DUP3
0000268d: MLOAD
0000268e: DUP1
0000268f: DUP5
00002690: PUSH1 0x20
00002692: ADD
00002693: REVERT
00002694: JUMPDEST
00002695: DUP2
00002696: PUSH1 0x40
00002698: MLOAD
00002699: PUSH3 0x461bcd
0000269d: PUSH1 0xe5
0000269f: SHL
000026a0: DUP2
000026a1: MSTORE
000026a2: PUSH1 0x04
000026a4: ADD
000026a5: DUP1
000026a6: DUP1
000026a7: PUSH1 0x20
000026a9: ADD
000026aa: DUP3
000026ab: DUP2
000026ac: SUB
000026ad: DUP3
000026ae: MSTORE
000026af: DUP4
000026b0: DUP2
000026b1: DUP2
000026b2: MLOAD
000026b3: DUP2
000026b4: MSTORE
000026b5: PUSH1 0x20
000026b7: ADD
000026b8: SWAP2
000026b9: POP
000026ba: DUP1
000026bb: MLOAD
000026bc: SWAP1
000026bd: PUSH1 0x20
000026bf: ADD
000026c0: SWAP1
000026c1: DUP1
000026c2: DUP4
000026c3: DUP4
000026c4: PUSH1 0x00
000026c6: JUMPDEST
000026c7: DUP4
000026c8: DUP2
000026c9: LT
000026ca: ISZERO
000026cb: PUSH2 0x26de
000026ce: JUMPI
000026cf: DUP2
000026d0: DUP2
000026d1: ADD
000026d2: MLOAD
000026d3: DUP4
000026d4: DUP3
000026d5: ADD
000026d6: MSTORE
000026d7: PUSH1 0x20
000026d9: ADD
000026da: PUSH2 0x26c6
000026dd: JUMP
000026de: JUMPDEST
000026df: POP
000026e0: POP
000026e1: POP
000026e2: POP
000026e3: SWAP1
000026e4: POP
000026e5: SWAP1
000026e6: DUP2
000026e7: ADD
000026e8: SWAP1
000026e9: PUSH1 0x1f
000026eb: AND
000026ec: DUP1
000026ed: ISZERO
000026ee: PUSH2 0x270b
000026f1: JUMPI
000026f2: DUP1
000026f3: DUP3
000026f4: SUB
000026f5: DUP1
000026f6: MLOAD
000026f7: PUSH1 0x01
000026f9: DUP4
000026fa: PUSH1 0x20
000026fc: SUB
000026fd: PUSH2 0x0100
00002700: EXP
00002701: SUB
00002702: NOT
00002703: AND
00002704: DUP2
00002705: MSTORE
00002706: PUSH1 0x20
00002708: ADD
00002709: SWAP2
0000270a: POP
0000270b: JUMPDEST
0000270c: POP
0000270d: SWAP3
0000270e: POP
0000270f: POP
00002710: POP
00002711: PUSH1 0x40
00002713: MLOAD
00002714: DUP1
00002715: SWAP2
00002716: SUB
00002717: SWAP1
00002718: REVERT
00002719: JUMPDEST
0000271a: DUP3
0000271b: DUP1
0000271c: SLOAD
0000271d: PUSH1 0x01
0000271f: DUP2
00002720: PUSH1 0x01
00002722: AND
00002723: ISZERO
00002724: PUSH2 0x0100
00002727: MUL
00002728: SUB
00002729: AND
0000272a: PUSH1 0x02
0000272c: SWAP1
0000272d: DIV
0000272e: SWAP1
0000272f: PUSH1 0x00
00002731: MSTORE
00002732: PUSH1 0x20
00002734: PUSH1 0x00
00002736: KECCAK256
00002737: SWAP1
00002738: PUSH1 0x1f
0000273a: ADD
0000273b: PUSH1 0x20
0000273d: SWAP1
0000273e: DIV
0000273f: DUP2
00002740: ADD
00002741: SWAP3
00002742: DUP3
00002743: PUSH1 0x1f
00002745: LT
00002746: PUSH2 0x275a
00002749: JUMPI
0000274a: DUP1
0000274b: MLOAD
0000274c: PUSH1 0xff
0000274e: NOT
0000274f: AND
00002750: DUP4
00002751: DUP1
00002752: ADD
00002753: OR
00002754: DUP6
00002755: SSTORE
00002756: PUSH2 0x2787
00002759: JUMP
0000275a: JUMPDEST
0000275b: DUP3
0000275c: DUP1
0000275d: ADD
0000275e: PUSH1 0x01
00002760: ADD
00002761: DUP6
00002762: SSTORE
00002763: DUP3
00002764: ISZERO
00002765: PUSH2 0x2787
00002768: JUMPI
00002769: SWAP2
0000276a: DUP3
0000276b: ADD
0000276c: JUMPDEST
0000276d: DUP3
0000276e: DUP2
0000276f: GT
00002770: ISZERO
00002771: PUSH2 0x2787
00002774: JUMPI
00002775: DUP3
00002776: MLOAD
00002777: DUP3
00002778: SSTORE
00002779: SWAP2
0000277a: PUSH1 0x20
0000277c: ADD
0000277d: SWAP2
0000277e: SWAP1
0000277f: PUSH1 0x01
00002781: ADD
00002782: SWAP1
00002783: PUSH2 0x276c
00002786: JUMP
00002787: JUMPDEST
00002788: POP
00002789: PUSH2 0x2793
0000278c: SWAP3
0000278d: SWAP2
0000278e: POP
0000278f: PUSH2 0x2797
00002792: JUMP
00002793: JUMPDEST
00002794: POP
00002795: SWAP1
00002796: JUMP
00002797: JUMPDEST
00002798: PUSH2 0x27b1
0000279b: SWAP2
0000279c: SWAP1
0000279d: JUMPDEST
0000279e: DUP1
0000279f: DUP3
000027a0: GT
000027a1: ISZERO
000027a2: PUSH2 0x2793
000027a5: JUMPI
000027a6: PUSH1 0x00
000027a8: DUP2
000027a9: SSTORE
000027aa: PUSH1 0x01
000027ac: ADD
000027ad: PUSH2 0x279d
000027b0: JUMP
000027b1: JUMPDEST
000027b2: SWAP1
000027b3: JUMP
000027b4: INVALID
000027b5: COINBASE
000027b6: PUSH5 0x6472657373
000027bc: GASPRICE
000027bd: KECCAK256
000027be: PUSH10 0x6e73756666696369656e
000027c9: PUSH21 0x2062616c616e636520666f722063616c6c53616665
000027df: GASLIMIT
000027e0: MSTORE
000027e1: NUMBER
000027e2: ORIGIN
000027e3: ADDRESS
000027e4: GASPRICE
000027e5: KECCAK256
000027e6: GASLIMIT
000027e7: MSTORE
000027e8: NUMBER
000027e9: ORIGIN
000027ea: ADDRESS
000027eb: KECCAK256
000027ec: PUSH16 0x7065726174696f6e20646964206e6f74
000027fd: KECCAK256
000027fe: PUSH20 0x756363656564a26469706673582212209bd593ed
00002813: UNKNOWN(0xBD)
00002814: SLT
00002815: LOG1
00002816: UNKNOWN(0xDD)
00002817: UNKNOWN(0xCC)
00002818: OR
00002819: UNKNOWN(0x4E)
0000281a: TLOAD
0000281b: SWAP12
0000281c: PUSH3 0xcc5680
00002820: DUP2
00002821: CLZ
00002822: PC
00002823: UNKNOWN(0xB1)
00002824: PUSH25

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability codex Public initializer can be front-run to hijack gateway configuration 85 no
view
evidence_json
{
    "evidence": "L1ERC20Gateway.initialize is public and sets critical addresses (counterpart, router, inbox, beacon factory) without access control; the only guard is that counterpartGateway was not set yet, so the first caller wins.",
    "locations": [
        "contracts/contracts/tokenbridge/ethereum/gateway/L1ERC20Gateway.sol:89",
        "contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumGateway.sol:88",
        "contracts/contracts/tokenbridge/libraries/gateway/TokenGateway.sol:36"
    ],
    "recommendation": "Protect initialize with an initializer modifier and access control (e.g., onlyProxy/onlyAdmin), deploy the proxy with an atomic initializer call, and disable initializers in the implementation contract to prevent direct initialization.",
    "exploit_scenario": "If the proxy is deployed without calling initialize in the same transaction, any external account can call initialize first, set inbox/router/counterpart to attacker-controlled contracts, and then impersonate the L2 gateway to call finalizeInboundTransfer and drain escrowed tokens or permanently block legitimate deposits/withdrawals."
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xa01893bf",
            "selector": "0xa01893bf",
            "calldata_variants": [
                "0xa01893bf",
                "0xa01893bf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0c76a96",
            "selector": "0xa0c76a96",
            "calldata_variants": [
                "0xa0c76a96",
                "0xa0c76a960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa7e28d48",
            "selector": "0xa7e28d48",
            "calldata_variants": [
                "0xa7e28d48",
                "0xa7e28d480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbcf2e6eb",
            "selector": "0xbcf2e6eb",
            "calldata_variants": [
                "0xbcf2e6eb",
                "0xbcf2e6eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbd5f3e7d",
            "selector": "0xbd5f3e7d",
            "calldata_variants": [
                "0xbd5f3e7d",
                "0xbd5f3e7d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2ce7d65",
            "selector": "0xd2ce7d65",
            "calldata_variants": [
                "0xd2ce7d65",
                "0xd2ce7d650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf68a9082",
            "selector": "0xf68a9082",
            "calldata_variants": [
                "0xf68a9082",
                "0xf68a90820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf887ea40",
            "selector": "0xf887ea40",
            "calldata_variants": [
                "0xf887ea40",
                "0xf887ea400000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 10210,
            "type": "tx_origin_used"
        },
        {
            "pc": 10217,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x13d29f42d61b6d5f3792b65e04fdbc9e6bf0a576a7fc30b1358548fefe19076b
call_targets: 0xb4299a1f5f26ff6a98b7ba35572290c359fde900
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x13d29f42d61b6d5f3792b65e04fdbc9e6bf0a576a7fc30b1358548fefe19076b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb4299a1f5f26ff6a98b7ba35572290c359fde900"
    ],
    "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": "0xa01893bf",
            "selector": "0xa01893bf",
            "calldata_variants": [
                "0xa01893bf",
                "0xa01893bf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0c76a96",
            "selector": "0xa0c76a96",
            "calldata_variants": [
                "0xa0c76a96",
                "0xa0c76a960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa7e28d48",
            "selector": "0xa7e28d48",
            "calldata_variants": [
                "0xa7e28d48",
                "0xa7e28d480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbcf2e6eb",
            "selector": "0xbcf2e6eb",
            "calldata_variants": [
                "0xbcf2e6eb",
                "0xbcf2e6eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbd5f3e7d",
            "selector": "0xbd5f3e7d",
            "calldata_variants": [
                "0xbd5f3e7d",
                "0xbd5f3e7d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2ce7d65",
            "selector": "0xd2ce7d65",
            "calldata_variants": [
                "0xd2ce7d65",
                "0xd2ce7d650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf68a9082",
            "selector": "0xf68a9082",
            "calldata_variants": [
                "0xf68a9082",
                "0xf68a90820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf887ea40",
            "selector": "0xf887ea40",
            "calldata_variants": [
                "0xf887ea40",
                "0xf887ea400000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4332,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9226,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9765,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 10210,
            "type": "tx_origin_used"
        },
        {
            "pc": 10217,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x13d29f42d61b6d5f3792b65e04fdbc9e6bf0a576a7fc30b1358548fefe19076b
call_targets: 0xb4299a1f5f26ff6a98b7ba35572290c359fde900
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x13d29f42d61b6d5f3792b65e04fdbc9e6bf0a576a7fc30b1358548fefe19076b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb4299a1f5f26ff6a98b7ba35572290c359fde900"
    ],
    "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": "0xa01893bf",
            "selector": "0xa01893bf",
            "calldata_variants": [
                "0xa01893bf",
                "0xa01893bf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa0c76a96",
            "selector": "0xa0c76a96",
            "calldata_variants": [
                "0xa0c76a96",
                "0xa0c76a960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa7e28d48",
            "selector": "0xa7e28d48",
            "calldata_variants": [
                "0xa7e28d48",
                "0xa7e28d480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbcf2e6eb",
            "selector": "0xbcf2e6eb",
            "calldata_variants": [
                "0xbcf2e6eb",
                "0xbcf2e6eb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbd5f3e7d",
            "selector": "0xbd5f3e7d",
            "calldata_variants": [
                "0xbd5f3e7d",
                "0xbd5f3e7d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd2ce7d65",
            "selector": "0xd2ce7d65",
            "calldata_variants": [
                "0xd2ce7d65",
                "0xd2ce7d650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf68a9082",
            "selector": "0xf68a9082",
            "calldata_variants": [
                "0xf68a9082",
                "0xf68a90820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf887ea40",
            "selector": "0xf887ea40",
            "calldata_variants": [
                "0xf887ea40",
                "0xf887ea400000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4332,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9226,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9765,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 10210,
            "type": "tx_origin_used"
        },
        {
            "pc": 10217,
            "type": "tx_origin_used"
        }
    ]
}
low other codex transferExitAndCall can invoke onExitTransfer without proving an exit exists 65 no
view
evidence_json
{
    "evidence": "transferExitAndCall explicitly notes it does not validate exits, sets redirectedExits, and conditionally performs an external call to ITradeableExitReceiver.onExitTransfer with user-controlled data.",
    "locations": [
        "contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol:62",
        "contracts/contracts/tokenbridge/ethereum/gateway/L1ArbitrumExtendedGateway.sol:100"
    ],
    "recommendation": "Add on-chain exit validation before calling onExitTransfer (e.g., verify existence via bridge/outbox data) or remove/limit external call hooks; at minimum, document that receivers must validate exit ownership/existence independently.",
    "exploit_scenario": "An attacker can call transferExitAndCall with any _exitNum and _initialDestination set to themselves, then supply arbitrary _data and _newDestination. The gateway will call onExitTransfer on the target contract even if no corresponding exit exists; any receiver that relies only on msg.sender == gateway could be tricked into releasing assets or state changes."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 8
}