ce4d273e-c903-4f23-ab6a-43ad55bdeb64
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 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 |
No slither job recorded yet.
[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"]}]}
{
"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
}
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
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | codex | Public initializer can be front-run to hijack gateway configuration | 85 | no | — |
viewevidence_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 | — |
viewvalidation_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 |
viewtrace_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 |
viewtrace_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 | — |
viewevidence_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 | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 8
}
|