d70fc0c5-dc10-4c77-ae63-8958c3596fbc
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 |
|---|---|---|---|---|
| 30843 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 94069 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 94070 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 94071 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 94072 | capability.graph | complete | 1 / 3 | 1 week ago |
| 94073 | detector.run | complete | 1 / 3 | 1 week ago |
| 94074 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1372711] OpenAI Codex v0.77.0 (research preview)
[codex:1372711] --------
[codex:1372711] workdir: /tmp/codex-multi-fecz3ttf
[codex:1372711] model: gpt-5.2-codex
[codex:1372711] provider: openai
[codex:1372711] approval: never
[codex:1372711] sandbox: read-only
[codex:1372711] reasoning effort: xhigh
[codex:1372711] reasoning summaries: auto
[codex:1372711] session id: 019b74fb-26d1-7820-80b4-9eeb4ebc9bf4
[codex:1372711] --------
[codex:1372711] user
[codex:1372711] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1372711]
[codex:1372711] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1372711]
[codex:1372711] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1372711] - Gas inefficiency, code quality, naming, or best practices
[codex:1372711] - Theoretical vulnerabilities without a clear extraction path
[codex:1372711] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1372711] - Front-running unless it enables theft beyond MEV
[codex:1372711] - DoS, griefing, or issues that don't result in attacker profit
[codex:1372711] - Missing events, view function issues, or informational findings
[codex:1372711]
[codex:1372711] HIGH-VALUE PATTERNS TO HUNT:
[codex:1372711] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1372711] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1372711] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1372711] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1372711] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1372711] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1372711] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1372711] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1372711] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1372711]
[codex:1372711] For each finding, you MUST provide:
[codex:1372711] 1. Exact file and line numbers of vulnerable code
[codex:1372711] 2. Step-by-step exploit transaction sequence
[codex:1372711] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1372711]
[codex:1372711] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1372711]
[codex:1372711] Output MUST be valid JSON matching the provided schema.
[codex:1372711] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1372711] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1372711] mcp startup: no servers
[codex:1372711]
[codex:1372711] thinking
[codex:1372711] **Preparing to audit instructions**
[codex:1372711] exec
[codex:1372711] /bin/bash -lc ls in /tmp/codex-multi-fecz3ttf succeeded in 8ms:
[codex:1372711] AUDIT_BUNDLE.txt
[codex:1372711] codex-output-schema.json
[codex:1372711] contracts
[codex:1372711] exec
[codex:1372711] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-fecz3ttf succeeded in 7ms:
[codex:1372711] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1372711]
[codex:1372711] ================================================================================
[codex:1372711] FILE: contracts/@lib-keccak/LibKeccak.sol
[codex:1372711] ================================================================================
[codex:1372711] // SPDX-License-Identifier: MIT
[codex:1372711] pragma solidity ^0.8.0;
[codex:1372711]
[codex:1372711] /// @title LibKeccak
[codex:1372711] /// @notice An EVM implementation of the Keccak-f[1600] permutation.
[codex:1372711] /// @author clabby <https://github.com/clabby>
[codex:1372711] /// @custom:attribution geohot <https://github.com/geohot>
[codex:1372711] library LibKeccak {
[codex:1372711] /// @notice The block size of the Keccak-f[1600] permutation, 1088 bits (136 bytes).
[codex:1372711] uint256 internal constant BLOCK_SIZE_BYTES = 136;
[codex:1372711]
[codex:1372711] /// @notice The round constants for the keccak256 hash function. Packed in memory for efficient reading during the
[codex:1372711] /// permutation.
[codex:1372711] bytes internal constant ROUND_CONSTANTS = abi.encode(
[codex:1372711] 0x00000000000000010000000000008082800000000000808a8000000080008000, // r1,r2,r3,r4
[codex:1372711]
[codex:1372711] thinking
[codex:1372711] **Searching for contract functions**
[codex:1372711] exec
[codex:1372711] /bin/bash -lc 'rg -n "contract|library" contracts/src contracts/interfaces | head' in /tmp/codex-multi-fecz3ttf succeeded in 20ms:
[codex:1372711] contracts/interfaces/universal/ISemver.sol:5:/// @notice ISemver is a simple contract for ensuring that contracts are
[codex:1372711] contracts/interfaces/universal/ISemver.sol:8: /// @notice Getter for the semantic version of the contract. This is not
[codex:1372711] contracts/interfaces/universal/ISemver.sol:11: /// @return Semver contract version as a string.
[codex:1372711] contracts/src/L1/ProxyAdminOwnedBase.sol:12:/// @notice Base contract for ProxyAdmin-owned contracts. This contract is used to introspect
[codex:1372711] contracts/src/L1/ProxyAdminOwnedBase.sol:13:/// compatible Proxy contracts so that their ProxyAdmin and ProxyAdmin owner addresses can
[codex:1372711] contracts/src/L1/ProxyAdminOwnedBase.sol:14:/// be retrieved onchain. Existing Proxy contracts don't have these getters, so we need a
[codex:1372711] contracts/src/L1/ProxyAdminOwnedBase.sol:15:/// base contract instead.
[codex:1372711] contracts/src/L1/ProxyAdminOwnedBase.sol:16:/// @dev WARNING: This contract is ONLY designed to be used with either the Optimism Proxy
[codex:1372711] contracts/src/L1/ProxyAdminOwnedBase.sol:18:/// this contract with any other proxy implementation.
[codex:1372711] contracts/src/L1/ProxyAdminOwnedBase.sol:20:abstract contract ProxyAdminOwnedBase {
[codex:1372711]
[codex:1372711] thinking
[codex:1372711] **Searching for sensitive functions**
[codex:1372711] exec
[codex:1372711] /bin/bash -lc 'rg -n "withdraw|unlock|lock|mint|transfer|deposit|bridge|portal|lockbox" contracts/src contracts/interfaces | head -n 200' in /tmp/codex-multi-fecz3ttf succeeded in 19ms:
[codex:1372711] contracts/src/cannon/libraries/CannonTypes.sol:13:/// │ [128, 160) │ Blocks Processed (Inclusive of Padding) │
[codex:1372711] contracts/src/cannon/libraries/CannonTypes.sol:42: function setBlocksProcessed(LPPMetaData _self, uint32 _blocksProcessed) internal pure returns (LPPMetaData self_) {
[codex:1372711] contracts/src/cannon/libraries/CannonTypes.sol:44: self_ := or(shl(96, _blocksProcessed), and(_self, not(shl(96, U32_MASK))))
[codex:1372711] contracts/src/cannon/libraries/CannonTypes.sol:78: function blocksProcessed(LPPMetaData _self) internal pure returns (uint32 blocksProcessed_) {
[codex:1372711] contracts/src/cannon/libraries/CannonTypes.sol:80: blocksProcessed_ := and(shr(96, _self), U32_MASK)
[codex:1372711] contracts/interfaces/cannon/IPreimageOracle.sol:29: error WrongStartingBlock();
[codex:1372711] contracts/interfaces/cannon/IPreimageOracle.sol:37: uint256 _inputStartBlock,
[codex:1372711] contracts/interfaces/cannon/IPreimageOracle.sol:93: function proposalBlocks(address, uint256, uint256) external view returns (uint64);
[codex:1372711] contracts/interfaces/cannon/IPreimageOracle.sol:94: function proposalBlocksLen(address _claimant, uint256 _uuid) external view returns (uint256 len_);
[codex:1372711] contracts/src/libraries/Types.sol:11: /// @custom:field timestamp Timestamp of the L1 block that the output root was submitted in.
[codex:1372711] contracts/src/libraries/Types.sol:12: /// @custom:field l2BlockNumber L2 block number that the output corresponds to.
[codex:1372711] contracts/src/libraries/Types.sol:16: uint128 l2BlockNumber;
[codex:1372711] contracts/src/libraries/Types.sol:22: /// @custom:field stateRoot Root of the state trie at the block of this output.
[codex:1372711] contracts/src/libraries/Types.sol:24: /// @custom:field latestBlockhash Hash of the block this output was generated from.
[codex:1372711] contracts/src/libraries/Types.sol:29: bytes32 latestBlockhash;
[codex:1372711] contracts/src/libraries/Types.sol:50: /// @notice Struct representing a deposit transaction (L1 => L2 transaction) created by an end
[codex:1372711] contracts/src/libraries/Types.sol:51: /// user (as opposed to a system deposit transaction generated by the system).
[codex:1372711] contracts/src/libraries/Types.sol:56: /// @custom:field mint Amount of ETH to mint.
[codex:1372711] contracts/src/libraries/Types.sol:59: /// @custom:field l1BlockHash Hash of the block the transaction was submitted in.
[codex:1372711] contracts/src/libraries/Types.sol:60: /// @custom:field logIndex Index of the log in the block the transaction was submitted in.
[codex:1372711]
[codex:1372711] thinking
[codex:1372711] **Inspecting main contract ETHLockbox**
[codex:1372711] exec
[codex:1372711] /bin/bash -lc "sed -n '1,260p' contracts/src/L1/ETHLockbox.sol" in /tmp/codex-multi-fecz3ttf succeeded in 11ms:
[codex:1372711] // SPDX-License-Identifier: MIT
[codex:1372711] pragma solidity 0.8.15;
[codex:1372711]
[codex:1372711] // Contracts
[codex:1372711] import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
[codex:1372711] import { ProxyAdminOwnedBase } from "src/L1/ProxyAdminOwnedBase.sol";
[codex:1372711] import { ReinitializableBase } from "src/universal/ReinitializableBase.sol";
[codex:1372711]
[codex:1372711] // Libraries
[codex:1372711] import { Constants } from "src/libraries/Constants.sol";
[codex:1372711]
[codex:1372711] // Interfaces
[codex:1372711] import { ISemver } from "interfaces/universal/ISemver.sol";
[codex:1372711] import { IOptimismPortal2 as IOptimismPortal } from "interfaces/L1/IOptimismPortal2.sol";
[codex:1372711] import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol";
[codex:1372711] import { IETHLockbox } from "interfaces/L1/IETHLockbox.sol";
[codex:1372711] import { ISystemConfig } from "interfaces/L1/ISystemConfig.sol";
[codex:1372711]
[codex:1372711] /// @custom:proxied true
[codex:1372711] /// @title ETHLockbox
[codex:1372711]
[codex:1372711] thinking
[codex:1372711] **Examining potential contract vulnerabilities**
[codex:1372711] exec
[codex:1372711] /bin/bash -lc 'rg --files contracts/src | sort' in /tmp/codex-multi-fecz3ttf succeeded in 24ms:
[codex:1372711] contracts/src/cannon/libraries/CannonTypes.sol
[codex:1372711] contracts/src/dispute/lib/LibPosition.sol
[codex:1372711] contracts/src/dispute/lib/LibUDT.sol
[codex:1372711] contracts/src/dispute/lib/Types.sol
[codex:1372711] contracts/src/L1/ETHLockbox.sol
[codex:1372711] contracts/src/L1/ProxyAdminOwnedBase.sol
[codex:1372711] contracts/src/libraries/Constants.sol
[codex:1372711] contracts/src/libraries/Storage.sol
[codex:1372711] contracts/src/libraries/Types.sol
[codex:1372711] contracts/src/universal/ReinitializableBase.sol
[codex:1372711]
[codex:1372711] thinking
[codex:1372711] **Reviewing source files for vulnerabilities**
[codex:1372711] exec
[codex:1372711] /bin/bash -lc "sed -n '1,260p' contracts/src/L1/ProxyAdminOwnedBase.sol" in /tmp/codex-multi-fecz3ttf succeeded in 11ms:
[codex:1372711] // SPDX-License-Identifier: MIT
[codex:1372711] pragma solidity ^0.8.15;
[codex:1372711]
[codex:1372711] // Libraries
[codex:1372711] import { Storage } from "src/libraries/Storage.sol";
[codex:1372711] import { Constants } from "src/libraries/Constants.sol";
[codex:1372711]
[codex:1372711] // Interfaces
[codex:1372711] import { IProxyAdmin } from "interfaces/universal/IProxyAdmin.sol";
[codex:1372711] import { IAddressManager } from "interfaces/legacy/IAddressManager.sol";
[codex:1372711]
[codex:1372711] /// @notice Base contract for ProxyAdmin-owned contracts. This contract is used to introspect
[codex:1372711] /// compatible Proxy contracts so that their ProxyAdmin and ProxyAdmin owner addresses can
[codex:1372711] /// be retrieved onchain. Existing Proxy contracts don't have these getters, so we need a
[codex:1372711] /// base contract instead.
[codex:1372711] /// @dev WARNING: This contract is ONLY designed to be used with either the Optimism Proxy
[codex:1372711] /// implementation or the Optimism ResolvedDelegateProxy implementation. It is not safe to use
[codex:1372711] /// this contract with any other proxy implementation.
[codex:1372711] /// WARNING: Multiple OP Stack chains may share the same ProxyAdmin owner address.
[codex:1372711] abstract contract ProxyAdminOwnedBase {
[codex:1372711]
[codex:1372711] thinking
[codex:1372711] **Confirming security and finalizing JSON output**
[codex:1372711] codex
[codex:1372711] {"no_findings":true,"summary":"No concrete, exploitable profit path found in the provided contracts.","findings":[]}
[codex:1372711] tokens used
[codex:1372711] 31,830
[codex:1372711] {"no_findings":true,"summary":"No concrete, exploitable profit path found in the provided contracts.","findings":[]}
{
"codex": {
"ran_at": "2025-12-31T15:17:14.789463+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable profit path found in the provided contracts.",
"raw_final": {
"summary": "No concrete, exploitable profit path found in the provided contracts.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x00f3 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x438ab5ac 00000019: GT 0000001a: PUSH2 0x008a 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x8d445bd0 00000024: GT 00000025: PUSH2 0x0059 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x8d445bd0 0000002f: EQ 00000030: PUSH2 0x02e0 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0x946d9204 0000003a: EQ 0000003b: PUSH2 0x0300 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xb2db82f5 00000045: EQ 00000046: PUSH2 0x0320 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xdad544e0 00000050: EQ 00000051: PUSH2 0x0340 00000054: JUMPI 00000055: PUSH1 0x00 00000057: DUP1 00000058: REVERT 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0x438ab5ac 00000060: EQ 00000061: PUSH2 0x023f 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0x54fd4d50 0000006b: EQ 0000006c: PUSH2 0x025f 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0x5c975abb 00000076: EQ 00000077: PUSH2 0x02ab 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x5ec15d89 00000081: EQ 00000082: PUSH2 0x02c0 00000085: JUMPI 00000086: PUSH1 0x00 00000088: DUP1 00000089: REVERT 0000008a: JUMPDEST 0000008b: DUP1 0000008c: PUSH4 0x33d7e2bd 00000091: GT 00000092: PUSH2 0x00c6 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x33d7e2bd 0000009c: EQ 0000009d: PUSH2 0x017f 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x35e80ab3 000000a7: EQ 000000a8: PUSH2 0x01d7 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x38d38c97 000000b2: EQ 000000b3: PUSH2 0x01ec 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x3e47158c 000000bd: EQ 000000be: PUSH2 0x022a 000000c1: JUMPI 000000c2: PUSH1 0x00 000000c4: DUP1 000000c5: REVERT 000000c6: JUMPDEST 000000c7: DUP1 000000c8: PUSH4 0x0fd11077 000000cd: EQ 000000ce: PUSH2 0x00f8 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x1ee116bf 000000d8: EQ 000000d9: PUSH2 0x013d 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x225ce176 000000e3: EQ 000000e4: PUSH2 0x0147 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x30f9765d 000000ee: EQ 000000ef: PUSH2 0x0177 000000f2: JUMPI 000000f3: JUMPDEST 000000f4: PUSH1 0x00 000000f6: DUP1 000000f7: REVERT 000000f8: JUMPDEST 000000f9: CALLVALUE 000000fa: DUP1 000000fb: ISZERO 000000fc: PUSH2 0x0104 000000ff: JUMPI 00000100: PUSH1 0x00 00000102: DUP1 00000103: REVERT 00000104: JUMPDEST 00000105: POP 00000106: PUSH2 0x0128 00000109: PUSH2 0x0113 0000010c: CALLDATASIZE 0000010d: PUSH1 0x04 0000010f: PUSH2 0x10e0 00000112: JUMP 00000113: JUMPDEST 00000114: PUSH1 0x01 00000116: PUSH1 0x20 00000118: MSTORE 00000119: PUSH1 0x00 0000011b: SWAP1 0000011c: DUP2 0000011d: MSTORE 0000011e: PUSH1 0x40 00000120: SWAP1 00000121: KECCAK256 00000122: SLOAD 00000123: PUSH1 0xff 00000125: AND 00000126: DUP2 00000127: JUMP 00000128: JUMPDEST 00000129: PUSH1 0x40 0000012b: MLOAD 0000012c: SWAP1 0000012d: ISZERO 0000012e: ISZERO 0000012f: DUP2 00000130: MSTORE 00000131: PUSH1 0x20 00000133: ADD 00000134: JUMPDEST 00000135: PUSH1 0x40 00000137: MLOAD 00000138: DUP1 00000139: SWAP2 0000013a: SUB 0000013b: SWAP1 0000013c: RETURN 0000013d: JUMPDEST 0000013e: PUSH2 0x0145 00000141: PUSH2 0x0355 00000144: JUMP 00000145: JUMPDEST 00000146: STOP 00000147: JUMPDEST 00000148: CALLVALUE 00000149: DUP1 0000014a: ISZERO 0000014b: PUSH2 0x0153 0000014e: JUMPI 0000014f: PUSH1 0x00 00000151: DUP1 00000152: REVERT 00000153: JUMPDEST 00000154: POP 00000155: PUSH2 0x0128 00000158: PUSH2 0x0162 0000015b: CALLDATASIZE 0000015c: PUSH1 0x04 0000015e: PUSH2 0x10e0 00000161: JUMP 00000162: JUMPDEST 00000163: PUSH1 0x02 00000165: PUSH1 0x20 00000167: MSTORE 00000168: PUSH1 0x00 0000016a: SWAP1 0000016b: DUP2 0000016c: MSTORE 0000016d: PUSH1 0x40 0000016f: SWAP1 00000170: KECCAK256 00000171: SLOAD 00000172: PUSH1 0xff 00000174: AND 00000175: DUP2 00000176: JUMP 00000177: JUMPDEST 00000178: PUSH2 0x0145 0000017b: PUSH2 0x03f1 0000017e: JUMP 0000017f: JUMPDEST 00000180: CALLVALUE 00000181: DUP1 00000182: ISZERO 00000183: PUSH2 0x018b 00000186: JUMPI 00000187: PUSH1 0x00 00000189: DUP1 0000018a: REVERT 0000018b: JUMPDEST 0000018c: POP 0000018d: PUSH1 0x00 0000018f: SLOAD 00000190: PUSH2 0x01b2 00000193: SWAP1 00000194: PUSH3 0x010000 00000198: SWAP1 00000199: DIV 0000019a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001af: AND 000001b0: DUP2 000001b1: JUMP 000001b2: JUMPDEST 000001b3: PUSH1 0x40 000001b5: MLOAD 000001b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001cb: SWAP1 000001cc: SWAP2 000001cd: AND 000001ce: DUP2 000001cf: MSTORE 000001d0: PUSH1 0x20 000001d2: ADD 000001d3: PUSH2 0x0134 000001d6: JUMP 000001d7: JUMPDEST 000001d8: CALLVALUE 000001d9: DUP1 000001da: ISZERO 000001db: PUSH2 0x01e3 000001de: JUMPI 000001df: PUSH1 0x00 000001e1: DUP1 000001e2: REVERT 000001e3: JUMPDEST 000001e4: POP 000001e5: PUSH2 0x01b2 000001e8: PUSH2 0x0482 000001eb: JUMP 000001ec: JUMPDEST 000001ed: CALLVALUE 000001ee: DUP1 000001ef: ISZERO 000001f0: PUSH2 0x01f8 000001f3: JUMPI 000001f4: PUSH1 0x00 000001f6: DUP1 000001f7: REVERT 000001f8: JUMPDEST 000001f9: POP 000001fa: PUSH1 0x40 000001fc: MLOAD 000001fd: PUSH1 0xff 000001ff: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 00000220: AND 00000221: DUP2 00000222: MSTORE 00000223: PUSH1 0x20 00000225: ADD 00000226: PUSH2 0x0134 00000229: JUMP 0000022a: JUMPDEST 0000022b: CALLVALUE 0000022c: DUP1 0000022d: ISZERO 0000022e: PUSH2 0x0236 00000231: JUMPI 00000232: PUSH1 0x00 00000234: DUP1 00000235: REVERT 00000236: JUMPDEST 00000237: POP 00000238: PUSH2 0x01b2 0000023b: PUSH2 0x0519 0000023e: JUMP 0000023f: JUMPDEST 00000240: CALLVALUE 00000241: DUP1 00000242: ISZERO 00000243: PUSH2 0x024b 00000246: JUMPI 00000247: PUSH1 0x00 00000249: DUP1 0000024a: REVERT 0000024b: JUMPDEST 0000024c: POP 0000024d: PUSH2 0x0145 00000250: PUSH2 0x025a 00000253: CALLDATASIZE 00000254: PUSH1 0x04 00000256: PUSH2 0x10e0 00000259: JUMP 0000025a: JUMPDEST 0000025b: PUSH2 0x0724 0000025e: JUMP 0000025f: JUMPDEST 00000260: CALLVALUE 00000261: DUP1 00000262: ISZERO 00000263: PUSH2 0x026b 00000266: JUMPI 00000267: PUSH1 0x00 00000269: DUP1 0000026a: REVERT 0000026b: JUMPDEST 0000026c: POP 0000026d: PUSH1 0x40 0000026f: DUP1 00000270: MLOAD 00000271: DUP1 00000272: DUP3 00000273: ADD 00000274: DUP3 00000275: MSTORE 00000276: PUSH1 0x05 00000278: DUP2 00000279: MSTORE 0000027a: PUSH32 0x312e322e30000000000000000000000000000000000000000000000000000000 0000029b: PUSH1 0x20 0000029d: DUP3 0000029e: ADD 0000029f: MSTORE 000002a0: SWAP1 000002a1: MLOAD 000002a2: PUSH2 0x0134 000002a5: SWAP2 000002a6: SWAP1 000002a7: PUSH2 0x1104 000002aa: JUMP 000002ab: JUMPDEST 000002ac: CALLVALUE 000002ad: DUP1 000002ae: ISZERO 000002af: PUSH2 0x02b7 000002b2: JUMPI 000002b3: PUSH1 0x00 000002b5: DUP1 000002b6: REVERT 000002b7: JUMPDEST 000002b8: POP 000002b9: PUSH2 0x0128 000002bc: PUSH2 0x07ef 000002bf: JUMP 000002c0: JUMPDEST 000002c1: CALLVALUE 000002c2: DUP1 000002c3: ISZERO 000002c4: PUSH2 0x02cc 000002c7: JUMPI 000002c8: PUSH1 0x00 000002ca: DUP1 000002cb: REVERT 000002cc: JUMPDEST 000002cd: POP 000002ce: PUSH2 0x0145 000002d1: PUSH2 0x02db 000002d4: CALLDATASIZE 000002d5: PUSH1 0x04 000002d7: PUSH2 0x10e0 000002da: JUMP 000002db: JUMPDEST 000002dc: PUSH2 0x0881 000002df: JUMP 000002e0: JUMPDEST 000002e1: CALLVALUE 000002e2: DUP1 000002e3: ISZERO 000002e4: PUSH2 0x02ec 000002e7: JUMPI 000002e8: PUSH1 0x00 000002ea: DUP1 000002eb: REVERT 000002ec: JUMPDEST 000002ed: POP 000002ee: PUSH2 0x0145 000002f1: PUSH2 0x02fb 000002f4: CALLDATASIZE 000002f5: PUSH1 0x04 000002f7: PUSH2 0x1177 000002fa: JUMP 000002fb: JUMPDEST 000002fc: PUSH2 0x0909 000002ff: JUMP 00000300: JUMPDEST 00000301: CALLVALUE 00000302: DUP1 00000303: ISZERO 00000304: PUSH2 0x030c 00000307: JUMPI 00000308: PUSH1 0x00 0000030a: DUP1 0000030b: REVERT 0000030c: JUMPDEST 0000030d: POP 0000030e: PUSH2 0x0145 00000311: PUSH2 0x031b 00000314: CALLDATASIZE 00000315: PUSH1 0x04 00000317: PUSH2 0x1190 0000031a: JUMP 0000031b: JUMPDEST 0000031c: PUSH2 0x0b49 0000031f: JUMP 00000320: JUMPDEST 00000321: CALLVALUE 00000322: DUP1 00000323: ISZERO 00000324: PUSH2 0x032c 00000327: JUMPI 00000328: PUSH1 0x00 0000032a: DUP1 0000032b: REVERT 0000032c: JUMPDEST 0000032d: POP 0000032e: PUSH2 0x0145 00000331: PUSH2 0x033b 00000334: CALLDATASIZE 00000335: PUSH1 0x04 00000337: PUSH2 0x10e0 0000033a: JUMP 0000033b: JUMPDEST 0000033c: PUSH2 0x0d46 0000033f: JUMP 00000340: JUMPDEST 00000341: CALLVALUE 00000342: DUP1 00000343: ISZERO 00000344: PUSH2 0x034c 00000347: JUMPI 00000348: PUSH1 0x00 0000034a: DUP1 0000034b: REVERT 0000034c: JUMPDEST 0000034d: POP 0000034e: PUSH2 0x01b2 00000351: PUSH2 0x0d5a 00000354: JUMP 00000355: JUMPDEST 00000356: CALLER 00000357: PUSH1 0x00 00000359: DUP2 0000035a: DUP2 0000035b: MSTORE 0000035c: PUSH1 0x01 0000035e: PUSH1 0x20 00000360: MSTORE 00000361: PUSH1 0x40 00000363: SWAP1 00000364: KECCAK256 00000365: SLOAD 00000366: PUSH1 0xff 00000368: AND 00000369: PUSH2 0x039e 0000036c: JUMPI 0000036d: PUSH1 0x40 0000036f: MLOAD 00000370: PUSH32 0x665a1d1c00000000000000000000000000000000000000000000000000000000 00000391: DUP2 00000392: MSTORE 00000393: PUSH1 0x04 00000395: ADD 00000396: PUSH1 0x40 00000398: MLOAD 00000399: DUP1 0000039a: SWAP2 0000039b: SUB 0000039c: SWAP1 0000039d: REVERT 0000039e: JUMPDEST 0000039f: DUP1 000003a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003b5: AND 000003b6: PUSH32 0x97efc519b9020a140ffe13878e03d340b976676090bc7fe3e33191192df7c72c 000003d7: CALLVALUE 000003d8: PUSH1 0x40 000003da: MLOAD 000003db: PUSH2 0x03e6 000003de: SWAP2 000003df: DUP2 000003e0: MSTORE 000003e1: PUSH1 0x20 000003e3: ADD 000003e4: SWAP1 000003e5: JUMP 000003e6: JUMPDEST 000003e7: PUSH1 0x40 000003e9: MLOAD 000003ea: DUP1 000003eb: SWAP2 000003ec: SUB 000003ed: SWAP1 000003ee: LOG2 000003ef: POP 000003f0: JUMP 000003f1: JUMPDEST 000003f2: CALLER 000003f3: PUSH1 0x00 000003f5: DUP2 000003f6: DUP2 000003f7: MSTORE 000003f8: PUSH1 0x02 000003fa: PUSH1 0x20 000003fc: MSTORE 000003fd: PUSH1 0x40 000003ff: SWAP1 00000400: KECCAK256 00000401: SLOAD 00000402: PUSH1 0xff 00000404: AND 00000405: PUSH2 0x043a 00000408: JUMPI 00000409: PUSH1 0x40 0000040b: MLOAD 0000040c: PUSH32 0x665a1d1c00000000000000000000000000000000000000000000000000000000 0000042d: DUP2 0000042e: MSTORE 0000042f: PUSH1 0x04 00000431: ADD 00000432: PUSH1 0x40 00000434: MLOAD 00000435: DUP1 00000436: SWAP2 00000437: SUB 00000438: SWAP1 00000439: REVERT 0000043a: JUMPDEST 0000043b: DUP1 0000043c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000451: AND 00000452: PUSH32 0xb58278ed56aa79ad2e243963b44b165a8f76d629f61c01dd3649d658e0eacca4 00000473: CALLVALUE 00000474: PUSH1 0x40 00000476: MLOAD 00000477: PUSH2 0x03e6 0000047a: SWAP2 0000047b: DUP2 0000047c: MSTORE 0000047d: PUSH1 0x20 0000047f: ADD 00000480: SWAP1 00000481: JUMP 00000482: JUMPDEST 00000483: PUSH1 0x00 00000485: DUP1 00000486: PUSH1 0x02 00000488: SWAP1 00000489: SLOAD 0000048a: SWAP1 0000048b: PUSH2 0x0100 0000048e: EXP 0000048f: SWAP1 00000490: DIV 00000491: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004a6: AND 000004a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004bc: AND 000004bd: PUSH4 0x35e80ab3 000004c2: PUSH1 0x40 000004c4: MLOAD 000004c5: DUP2 000004c6: PUSH4 0xffffffff 000004cb: AND 000004cc: PUSH1 0xe0 000004ce: SHL 000004cf: DUP2 000004d0: MSTORE 000004d1: PUSH1 0x04 000004d3: ADD 000004d4: PUSH1 0x20 000004d6: PUSH1 0x40 000004d8: MLOAD 000004d9: DUP1 000004da: DUP4 000004db: SUB 000004dc: DUP2 000004dd: DUP7 000004de: GAS 000004df: STATICCALL 000004e0: ISZERO 000004e1: DUP1 000004e2: ISZERO 000004e3: PUSH2 0x04f0 000004e6: JUMPI 000004e7: RETURNDATASIZE 000004e8: PUSH1 0x00 000004ea: DUP1 000004eb: RETURNDATACOPY 000004ec: RETURNDATASIZE 000004ed: PUSH1 0x00 000004ef: REVERT 000004f0: JUMPDEST 000004f1: POP 000004f2: POP 000004f3: POP 000004f4: POP 000004f5: PUSH1 0x40 000004f7: MLOAD 000004f8: RETURNDATASIZE 000004f9: PUSH1 0x1f 000004fb: NOT 000004fc: PUSH1 0x1f 000004fe: DUP3 000004ff: ADD 00000500: AND 00000501: DUP3 00000502: ADD 00000503: DUP1 00000504: PUSH1 0x40 00000506: MSTORE 00000507: POP 00000508: DUP2 00000509: ADD 0000050a: SWAP1 0000050b: PUSH2 0x0514 0000050e: SWAP2 0000050f: SWAP1 00000510: PUSH2 0x1218 00000513: JUMP 00000514: JUMPDEST 00000515: SWAP1 00000516: POP 00000517: SWAP1 00000518: JUMP 00000519: JUMPDEST 0000051a: PUSH1 0x00 0000051c: DUP1 0000051d: PUSH2 0x0544 00000520: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 00000541: SLOAD 00000542: SWAP1 00000543: JUMP 00000544: JUMPDEST 00000545: SWAP1 00000546: POP 00000547: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000055c: DUP2 0000055d: AND 0000055e: ISZERO 0000055f: PUSH2 0x0567 00000562: JUMPI 00000563: SWAP2 00000564: SWAP1 00000565: POP 00000566: JUMP 00000567: JUMPDEST 00000568: PUSH1 0x40 0000056a: MLOAD 0000056b: DUP1 0000056c: PUSH1 0x40 0000056e: ADD 0000056f: PUSH1 0x40 00000571: MSTORE 00000572: DUP1 00000573: PUSH1 0x1a 00000575: DUP2 00000576: MSTORE 00000577: PUSH1 0x20 00000579: ADD 0000057a: PUSH32 0x4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000 0000059b: DUP2 0000059c: MSTORE 0000059d: POP 0000059e: MLOAD 0000059f: PUSH1 0x02 000005a1: PUSH2 0x05aa 000005a4: SWAP2 000005a5: SWAP1 000005a6: PUSH2 0x1264 000005a9: JUMP 000005aa: JUMPDEST 000005ab: PUSH1 0x40 000005ad: DUP1 000005ae: MLOAD 000005af: ADDRESS 000005b0: PUSH1 0x20 000005b2: DUP3 000005b3: ADD 000005b4: MSTORE 000005b5: PUSH1 0x00 000005b7: SWAP2 000005b8: DUP2 000005b9: ADD 000005ba: SWAP2 000005bb: SWAP1 000005bc: SWAP2 000005bd: MSTORE 000005be: PUSH32 0x4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000 000005df: SWAP2 000005e0: SWAP1 000005e1: SWAP2 000005e2: OR 000005e3: SWAP1 000005e4: PUSH2 0x0605 000005e7: SWAP1 000005e8: PUSH1 0x60 000005ea: ADD 000005eb: JUMPDEST 000005ec: PUSH1 0x40 000005ee: MLOAD 000005ef: PUSH1 0x20 000005f1: DUP2 000005f2: DUP4 000005f3: SUB 000005f4: SUB 000005f5: DUP2 000005f6: MSTORE 000005f7: SWAP1 000005f8: PUSH1 0x40 000005fa: MSTORE 000005fb: DUP1 000005fc: MLOAD 000005fd: SWAP1 000005fe: PUSH1 0x20 00000600: ADD 00000601: KECCAK256 00000602: SLOAD 00000603: SWAP1 00000604: JUMP 00000605: JUMPDEST 00000606: EQ 00000607: PUSH2 0x063c 0000060a: JUMPI 0000060b: PUSH1 0x40 0000060d: MLOAD 0000060e: PUSH32 0x54e433cd00000000000000000000000000000000000000000000000000000000 0000062f: DUP2 00000630: MSTORE 00000631: PUSH1 0x04 00000633: ADD 00000634: PUSH1 0x40 00000636: MLOAD 00000637: DUP1 00000638: SWAP2 00000639: SUB 0000063a: SWAP1 0000063b: REVERT 0000063c: JUMPDEST 0000063d: PUSH1 0x40 0000063f: DUP1 00000640: MLOAD 00000641: ADDRESS 00000642: PUSH1 0x20 00000644: DUP3 00000645: ADD 00000646: MSTORE 00000647: PUSH1 0x01 00000649: SWAP2 0000064a: DUP2 0000064b: ADD 0000064c: SWAP2 0000064d: SWAP1 0000064e: SWAP2 0000064f: MSTORE 00000650: PUSH1 0x00 00000652: SWAP1 00000653: PUSH2 0x065e 00000656: SWAP1 00000657: PUSH1 0x60 00000659: ADD 0000065a: PUSH2 0x05eb 0000065d: JUMP 0000065e: JUMPDEST 0000065f: SWAP1 00000660: POP 00000661: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000676: DUP2 00000677: AND 00000678: ISZERO 00000679: PUSH2 0x06f2 0000067c: JUMPI 0000067d: DUP1 0000067e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000693: AND 00000694: PUSH4 0x8da5cb5b 00000699: PUSH1 0x40 0000069b: MLOAD 0000069c: DUP2 0000069d: PUSH4 0xffffffff 000006a2: AND 000006a3: PUSH1 0xe0 000006a5: SHL 000006a6: DUP2 000006a7: MSTORE 000006a8: PUSH1 0x04 000006aa: ADD 000006ab: PUSH1 0x20 000006ad: PUSH1 0x40 000006af: MLOAD 000006b0: DUP1 000006b1: DUP4 000006b2: SUB 000006b3: DUP2 000006b4: DUP7 000006b5: GAS 000006b6: STATICCALL 000006b7: ISZERO 000006b8: DUP1 000006b9: ISZERO 000006ba: PUSH2 0x06c7 000006bd: JUMPI 000006be: RETURNDATASIZE 000006bf: PUSH1 0x00 000006c1: DUP1 000006c2: RETURNDATACOPY 000006c3: RETURNDATASIZE 000006c4: PUSH1 0x00 000006c6: REVERT 000006c7: JUMPDEST 000006c8: POP 000006c9: POP 000006ca: POP 000006cb: POP 000006cc: PUSH1 0x40 000006ce: MLOAD 000006cf: RETURNDATASIZE 000006d0: PUSH1 0x1f 000006d2: NOT 000006d3: PUSH1 0x1f 000006d5: DUP3 000006d6: ADD 000006d7: AND 000006d8: DUP3 000006d9: ADD 000006da: DUP1 000006db: PUSH1 0x40 000006dd: MSTORE 000006de: POP 000006df: DUP2 000006e0: ADD 000006e1: SWAP1 000006e2: PUSH2 0x06eb 000006e5: SWAP2 000006e6: SWAP1 000006e7: PUSH2 0x1218 000006ea: JUMP 000006eb: JUMPDEST 000006ec: SWAP3 000006ed: POP 000006ee: POP 000006ef: POP 000006f0: SWAP1 000006f1: JUMP 000006f2: JUMPDEST 000006f3: PUSH1 0x40 000006f5: MLOAD 000006f6: PUSH32 0x332144db00000000000000000000000000000000000000000000000000000000 00000717: DUP2 00000718: MSTORE 00000719: PUSH1 0x04 0000071b: ADD 0000071c: PUSH1 0x40 0000071e: MLOAD 0000071f: DUP1 00000720: SWAP2 00000721: SUB 00000722: SWAP1 00000723: REVERT 00000724: JUMPDEST 00000725: PUSH2 0x072c 00000728: PUSH2 0x0dae 0000072b: JUMP 0000072c: JUMPDEST 0000072d: PUSH2 0x0735 00000730: DUP2 00000731: PUSH2 0x0e06 00000734: JUMP 00000735: JUMPDEST 00000736: PUSH1 0x00 00000738: SELFBALANCE 00000739: SWAP1 0000073a: POP 0000073b: DUP2 0000073c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000751: AND 00000752: PUSH4 0x30f9765d 00000757: DUP3 00000758: PUSH1 0x40 0000075a: MLOAD 0000075b: DUP3 0000075c: PUSH4 0xffffffff 00000761: AND 00000762: PUSH1 0xe0 00000764: SHL 00000765: DUP2 00000766: MSTORE 00000767: PUSH1 0x04 00000769: ADD 0000076a: PUSH1 0x00 0000076c: PUSH1 0x40 0000076e: MLOAD 0000076f: DUP1 00000770: DUP4 00000771: SUB 00000772: DUP2 00000773: DUP6 00000774: DUP9 00000775: DUP1 00000776: EXTCODESIZE 00000777: ISZERO 00000778: DUP1 00000779: ISZERO 0000077a: PUSH2 0x0782 0000077d: JUMPI 0000077e: PUSH1 0x00 00000780: DUP1 00000781: REVERT 00000782: JUMPDEST 00000783: POP 00000784: GAS 00000785: CALL 00000786: ISZERO 00000787: DUP1 00000788: ISZERO 00000789: PUSH2 0x0796 0000078c: JUMPI 0000078d: RETURNDATASIZE 0000078e: PUSH1 0x00 00000790: DUP1 00000791: RETURNDATACOPY 00000792: RETURNDATASIZE 00000793: PUSH1 0x00 00000795: REVERT 00000796: JUMPDEST 00000797: POP 00000798: POP 00000799: POP 0000079a: POP 0000079b: POP 0000079c: DUP2 0000079d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007b2: AND 000007b3: PUSH32 0x87eb4064140fbec95a8de570e01b4c650c00ecd677560af9f298a975b636c22d 000007d4: DUP3 000007d5: PUSH1 0x40 000007d7: MLOAD 000007d8: PUSH2 0x07e3 000007db: SWAP2 000007dc: DUP2 000007dd: MSTORE 000007de: PUSH1 0x20 000007e0: ADD 000007e1: SWAP1 000007e2: JUMP 000007e3: JUMPDEST 000007e4: PUSH1 0x40 000007e6: MLOAD 000007e7: DUP1 000007e8: SWAP2 000007e9: SUB 000007ea: SWAP1 000007eb: LOG2 000007ec: POP 000007ed: POP 000007ee: JUMP 000007ef: JUMPDEST 000007f0: PUSH1 0x00 000007f2: DUP1 000007f3: PUSH1 0x02 000007f5: SWAP1 000007f6: SLOAD 000007f7: SWAP1 000007f8: PUSH2 0x0100 000007fb: EXP 000007fc: SWAP1 000007fd: DIV 000007fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000813: AND 00000814: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000829: AND 0000082a: PUSH4 0x5c975abb 0000082f: PUSH1 0x40 00000831: MLOAD 00000832: DUP2 00000833: PUSH4 0xffffffff 00000838: AND 00000839: PUSH1 0xe0 0000083b: SHL 0000083c: DUP2 0000083d: MSTORE 0000083e: PUSH1 0x04 00000840: ADD 00000841: PUSH1 0x20 00000843: PUSH1 0x40 00000845: MLOAD 00000846: DUP1 00000847: DUP4 00000848: SUB 00000849: DUP2 0000084a: DUP7 0000084b: GAS 0000084c: STATICCALL 0000084d: ISZERO 0000084e: DUP1 0000084f: ISZERO 00000850: PUSH2 0x085d 00000853: JUMPI 00000854: RETURNDATASIZE 00000855: PUSH1 0x00 00000857: DUP1 00000858: RETURNDATACOPY 00000859: RETURNDATASIZE 0000085a: PUSH1 0x00 0000085c: REVERT 0000085d: JUMPDEST 0000085e: POP 0000085f: POP 00000860: POP 00000861: POP 00000862: PUSH1 0x40 00000864: MLOAD 00000865: RETURNDATASIZE 00000866: PUSH1 0x1f 00000868: NOT 00000869: PUSH1 0x1f 0000086b: DUP3 0000086c: ADD 0000086d: AND 0000086e: DUP3 0000086f: ADD 00000870: DUP1 00000871: PUSH1 0x40 00000873: MSTORE 00000874: POP 00000875: DUP2 00000876: ADD 00000877: SWAP1 00000878: PUSH2 0x0514 0000087b: SWAP2 0000087c: SWAP1 0000087d: PUSH2 0x12a1 00000880: JUMP 00000881: JUMPDEST 00000882: PUSH2 0x0889 00000885: PUSH2 0x0dae 00000888: JUMP 00000889: JUMPDEST 0000088a: PUSH2 0x0892 0000088d: DUP2 0000088e: PUSH2 0x0e06 00000891: JUMP 00000892: JUMPDEST 00000893: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008a8: DUP2 000008a9: AND 000008aa: PUSH1 0x00 000008ac: DUP2 000008ad: DUP2 000008ae: MSTORE 000008af: PUSH1 0x02 000008b1: PUSH1 0x20 000008b3: MSTORE 000008b4: PUSH1 0x40 000008b6: DUP1 000008b7: DUP3 000008b8: KECCAK256 000008b9: DUP1 000008ba: SLOAD 000008bb: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000008dc: AND 000008dd: PUSH1 0x01 000008df: OR 000008e0: SWAP1 000008e1: SSTORE 000008e2: MLOAD 000008e3: PUSH32 0x5d2682e700a2146c8e2381e0b407003576a54e96dd08f40f3ea0d2b8706db106 00000904: SWAP2 00000905: SWAP1 00000906: LOG2 00000907: POP 00000908: JUMP 00000909: JUMPDEST 0000090a: PUSH2 0x0911 0000090d: PUSH2 0x07ef 00000910: JUMP 00000911: JUMPDEST 00000912: ISZERO 00000913: PUSH2 0x0948 00000916: JUMPI 00000917: PUSH1 0x40 00000919: MLOAD 0000091a: PUSH32 0x9e72994200000000000000000000000000000000000000000000000000000000 0000093b: DUP2 0000093c: MSTORE 0000093d: PUSH1 0x04 0000093f: ADD 00000940: PUSH1 0x40 00000942: MLOAD 00000943: DUP1 00000944: SWAP2 00000945: SUB 00000946: SWAP1 00000947: REVERT 00000948: JUMPDEST 00000949: CALLER 0000094a: PUSH1 0x00 0000094c: DUP2 0000094d: DUP2 0000094e: MSTORE 0000094f: PUSH1 0x01 00000951: PUSH1 0x20 00000953: MSTORE 00000954: PUSH1 0x40 00000956: SWAP1 00000957: KECCAK256 00000958: SLOAD 00000959: PUSH1 0xff 0000095b: AND 0000095c: PUSH2 0x0991 0000095f: JUMPI 00000960: PUSH1 0x40 00000962: MLOAD 00000963: PUSH32 0x665a1d1c00000000000000000000000000000000000000000000000000000000 00000984: DUP2 00000985: MSTORE 00000986: PUSH1 0x04 00000988: ADD 00000989: PUSH1 0x40 0000098b: MLOAD 0000098c: DUP1 0000098d: SWAP2 0000098e: SUB 0000098f: SWAP1 00000990: REVERT 00000991: JUMPDEST 00000992: SELFBALANCE 00000993: DUP3 00000994: GT 00000995: ISZERO 00000996: PUSH2 0x09cb 00000999: JUMPI 0000099a: PUSH1 0x40 0000099c: MLOAD 0000099d: PUSH32 0xe1ba922700000000000000000000000000000000000000000000000000000000 000009be: DUP2 000009bf: MSTORE 000009c0: PUSH1 0x04 000009c2: ADD 000009c3: PUSH1 0x40 000009c5: MLOAD 000009c6: DUP1 000009c7: SWAP2 000009c8: SUB 000009c9: SWAP1 000009ca: REVERT 000009cb: JUMPDEST 000009cc: PUSH2 0xdead 000009cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009e4: AND 000009e5: DUP2 000009e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009fb: AND 000009fc: PUSH4 0x9bf62d82 00000a01: PUSH1 0x40 00000a03: MLOAD 00000a04: DUP2 00000a05: PUSH4 0xffffffff 00000a0a: AND 00000a0b: PUSH1 0xe0 00000a0d: SHL 00000a0e: DUP2 00000a0f: MSTORE 00000a10: PUSH1 0x04 00000a12: ADD 00000a13: PUSH1 0x20 00000a15: PUSH1 0x40 00000a17: MLOAD 00000a18: DUP1 00000a19: DUP4 00000a1a: SUB 00000a1b: DUP2 00000a1c: DUP7 00000a1d: GAS 00000a1e: STATICCALL 00000a1f: ISZERO 00000a20: DUP1 00000a21: ISZERO 00000a22: PUSH2 0x0a2f 00000a25: JUMPI 00000a26: RETURNDATASIZE 00000a27: PUSH1 0x00 00000a29: DUP1 00000a2a: RETURNDATACOPY 00000a2b: RETURNDATASIZE 00000a2c: PUSH1 0x00 00000a2e: REVERT 00000a2f: JUMPDEST 00000a30: POP 00000a31: POP 00000a32: POP 00000a33: POP 00000a34: PUSH1 0x40 00000a36: MLOAD 00000a37: RETURNDATASIZE 00000a38: PUSH1 0x1f 00000a3a: NOT 00000a3b: PUSH1 0x1f 00000a3d: DUP3 00000a3e: ADD 00000a3f: AND 00000a40: DUP3 00000a41: ADD 00000a42: DUP1 00000a43: PUSH1 0x40 00000a45: MSTORE 00000a46: POP 00000a47: DUP2 00000a48: ADD 00000a49: SWAP1 00000a4a: PUSH2 0x0a53 00000a4d: SWAP2 00000a4e: SWAP1 00000a4f: PUSH2 0x1218 00000a52: JUMP 00000a53: JUMPDEST 00000a54: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a69: AND 00000a6a: EQ 00000a6b: PUSH2 0x0aa0 00000a6e: JUMPI 00000a6f: PUSH1 0x40 00000a71: MLOAD 00000a72: PUSH32 0xd6cbd5f900000000000000000000000000000000000000000000000000000000 00000a93: DUP2 00000a94: MSTORE 00000a95: PUSH1 0x04 00000a97: ADD 00000a98: PUSH1 0x40 00000a9a: MLOAD 00000a9b: DUP1 00000a9c: SWAP2 00000a9d: SUB 00000a9e: SWAP1 00000a9f: REVERT 00000aa0: JUMPDEST 00000aa1: DUP1 00000aa2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ab7: AND 00000ab8: PUSH4 0x8b4c40b0 00000abd: DUP4 00000abe: PUSH1 0x40 00000ac0: MLOAD 00000ac1: DUP3 00000ac2: PUSH4 0xffffffff 00000ac7: AND 00000ac8: PUSH1 0xe0 00000aca: SHL 00000acb: DUP2 00000acc: MSTORE 00000acd: PUSH1 0x04 00000acf: ADD 00000ad0: PUSH1 0x00 00000ad2: PUSH1 0x40 00000ad4: MLOAD 00000ad5: DUP1 00000ad6: DUP4 00000ad7: SUB 00000ad8: DUP2 00000ad9: DUP6 00000ada: DUP9 00000adb: DUP1 00000adc: EXTCODESIZE 00000add: ISZERO 00000ade: DUP1 00000adf: ISZERO 00000ae0: PUSH2 0x0ae8 00000ae3: JUMPI 00000ae4: PUSH1 0x00 00000ae6: DUP1 00000ae7: REVERT 00000ae8: JUMPDEST 00000ae9: POP 00000aea: GAS 00000aeb: CALL 00000aec: ISZERO 00000aed: DUP1 00000aee: ISZERO 00000aef: PUSH2 0x0afc 00000af2: JUMPI 00000af3: RETURNDATASIZE 00000af4: PUSH1 0x00 00000af6: DUP1 00000af7: RETURNDATACOPY 00000af8: RETURNDATASIZE 00000af9: PUSH1 0x00 00000afb: REVERT 00000afc: JUMPDEST 00000afd: POP 00000afe: POP 00000aff: POP 00000b00: POP 00000b01: POP 00000b02: DUP1 00000b03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b18: AND 00000b19: PUSH32 0xe9512d49448b580f3d29031e9243ee81bc8789a93d6f04ec8f03b694d623637b 00000b3a: DUP4 00000b3b: PUSH1 0x40 00000b3d: MLOAD 00000b3e: PUSH2 0x07e3 00000b41: SWAP2 00000b42: DUP2 00000b43: MSTORE 00000b44: PUSH1 0x20 00000b46: ADD 00000b47: SWAP1 00000b48: JUMP 00000b49: JUMPDEST 00000b4a: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 00000b6b: PUSH1 0x00 00000b6d: SLOAD 00000b6e: PUSH2 0x0100 00000b71: SWAP1 00000b72: DIV 00000b73: PUSH1 0xff 00000b75: AND 00000b76: ISZERO 00000b77: DUP1 00000b78: ISZERO 00000b79: PUSH2 0x0b89 00000b7c: JUMPI 00000b7d: POP 00000b7e: PUSH1 0x00 00000b80: SLOAD 00000b81: PUSH1 0xff 00000b83: DUP1 00000b84: DUP4 00000b85: AND 00000b86: SWAP2 00000b87: AND 00000b88: LT 00000b89: JUMPDEST 00000b8a: PUSH2 0x0c19 00000b8d: JUMPI 00000b8e: PUSH1 0x40 00000b90: MLOAD 00000b91: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000bb2: DUP2 00000bb3: MSTORE 00000bb4: PUSH1 0x20 00000bb6: PUSH1 0x04 00000bb8: DUP3 00000bb9: ADD 00000bba: MSTORE 00000bbb: PUSH1 0x2e 00000bbd: PUSH1 0x24 00000bbf: DUP3 00000bc0: ADD 00000bc1: MSTORE 00000bc2: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00000be3: PUSH1 0x44 00000be5: DUP3 00000be6: ADD 00000be7: MSTORE 00000be8: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 00000c09: PUSH1 0x64 00000c0b: DUP3 00000c0c: ADD 00000c0d: MSTORE 00000c0e: PUSH1 0x84 00000c10: ADD 00000c11: PUSH1 0x40 00000c13: MLOAD 00000c14: DUP1 00000c15: SWAP2 00000c16: SUB 00000c17: SWAP1 00000c18: REVERT 00000c19: JUMPDEST 00000c1a: PUSH1 0x00 00000c1c: DUP1 00000c1d: SLOAD 00000c1e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00000c3f: AND 00000c40: PUSH1 0xff 00000c42: DUP4 00000c43: AND 00000c44: OR 00000c45: PUSH2 0x0100 00000c48: OR 00000c49: SWAP1 00000c4a: SSTORE 00000c4b: PUSH2 0x0c52 00000c4e: PUSH2 0x0ee0 00000c51: JUMP 00000c52: JUMPDEST 00000c53: PUSH1 0x00 00000c55: DUP1 00000c56: SLOAD 00000c57: PUSH32 0xffffffffffffffffffff0000000000000000000000000000000000000000ffff 00000c78: AND 00000c79: PUSH3 0x010000 00000c7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c92: DUP8 00000c93: AND 00000c94: MUL 00000c95: OR 00000c96: DUP2 00000c97: SSTORE 00000c98: JUMPDEST 00000c99: DUP3 00000c9a: DUP2 00000c9b: LT 00000c9c: ISZERO 00000c9d: PUSH2 0x0ce1 00000ca0: JUMPI 00000ca1: PUSH2 0x0ccf 00000ca4: DUP5 00000ca5: DUP5 00000ca6: DUP4 00000ca7: DUP2 00000ca8: DUP2 00000ca9: LT 00000caa: PUSH2 0x0cb5 00000cad: JUMPI 00000cae: PUSH2 0x0cb5 00000cb1: PUSH2 0x12c3 00000cb4: JUMP 00000cb5: JUMPDEST 00000cb6: SWAP1 00000cb7: POP 00000cb8: PUSH1 0x20 00000cba: MUL 00000cbb: ADD 00000cbc: PUSH1 0x20 00000cbe: DUP2 00000cbf: ADD 00000cc0: SWAP1 00000cc1: PUSH2 0x0cca 00000cc4: SWAP2 00000cc5: SWAP1 00000cc6: PUSH2 0x10e0 00000cc9: JUMP 00000cca: JUMPDEST 00000ccb: PUSH2 0x0f61 00000cce: JUMP 00000ccf: JUMPDEST 00000cd0: DUP1 00000cd1: PUSH2 0x0cd9 00000cd4: DUP2 00000cd5: PUSH2 0x12f2 00000cd8: JUMP 00000cd9: JUMPDEST 00000cda: SWAP2 00000cdb: POP 00000cdc: POP 00000cdd: PUSH2 0x0c98 00000ce0: JUMP 00000ce1: JUMPDEST 00000ce2: POP 00000ce3: PUSH1 0x00 00000ce5: DUP1 00000ce6: SLOAD 00000ce7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 00000d08: AND 00000d09: SWAP1 00000d0a: SSTORE 00000d0b: PUSH1 0x40 00000d0d: MLOAD 00000d0e: PUSH1 0xff 00000d10: DUP3 00000d11: AND 00000d12: DUP2 00000d13: MSTORE 00000d14: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 00000d35: SWAP1 00000d36: PUSH1 0x20 00000d38: ADD 00000d39: PUSH1 0x40 00000d3b: MLOAD 00000d3c: DUP1 00000d3d: SWAP2 00000d3e: SUB 00000d3f: SWAP1 00000d40: LOG1 00000d41: POP 00000d42: POP 00000d43: POP 00000d44: POP 00000d45: JUMP 00000d46: JUMPDEST 00000d47: PUSH2 0x0d4e 00000d4a: PUSH2 0x0dae 00000d4d: JUMP 00000d4e: JUMPDEST 00000d4f: PUSH2 0x0d57 00000d52: DUP2 00000d53: PUSH2 0x0f61 00000d56: JUMP 00000d57: JUMPDEST 00000d58: POP 00000d59: JUMP 00000d5a: JUMPDEST 00000d5b: PUSH1 0x00 00000d5d: PUSH2 0x0d64 00000d60: PUSH2 0x0519 00000d63: JUMP 00000d64: JUMPDEST 00000d65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d7a: AND 00000d7b: PUSH4 0x8da5cb5b 00000d80: PUSH1 0x40 00000d82: MLOAD 00000d83: DUP2 00000d84: PUSH4 0xffffffff 00000d89: AND 00000d8a: PUSH1 0xe0 00000d8c: SHL 00000d8d: DUP2 00000d8e: MSTORE 00000d8f: PUSH1 0x04 00000d91: ADD 00000d92: PUSH1 0x20 00000d94: PUSH1 0x40 00000d96: MLOAD 00000d97: DUP1 00000d98: DUP4 00000d99: SUB 00000d9a: DUP2 00000d9b: DUP7 00000d9c: GAS 00000d9d: STATICCALL 00000d9e: ISZERO 00000d9f: DUP1 00000da0: ISZERO 00000da1: PUSH2 0x04f0 00000da4: JUMPI 00000da5: RETURNDATASIZE 00000da6: PUSH1 0x00 00000da8: DUP1 00000da9: RETURNDATACOPY 00000daa: RETURNDATASIZE 00000dab: PUSH1 0x00 00000dad: REVERT 00000dae: JUMPDEST 00000daf: CALLER 00000db0: PUSH2 0x0db7 00000db3: PUSH2 0x0d5a 00000db6: JUMP 00000db7: JUMPDEST 00000db8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dcd: AND 00000dce: EQ 00000dcf: PUSH2 0x0e04 00000dd2: JUMPI 00000dd3: PUSH1 0x40 00000dd5: MLOAD 00000dd6: PUSH32 0x7f12c64b00000000000000000000000000000000000000000000000000000000 00000df7: DUP2 00000df8: MSTORE 00000df9: PUSH1 0x04 00000dfb: ADD 00000dfc: PUSH1 0x40 00000dfe: MLOAD 00000dff: DUP1 00000e00: SWAP2 00000e01: SUB 00000e02: SWAP1 00000e03: REVERT 00000e04: JUMPDEST 00000e05: JUMP 00000e06: JUMPDEST 00000e07: DUP1 00000e08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e1d: AND 00000e1e: PUSH4 0xdad544e0 00000e23: PUSH1 0x40 00000e25: MLOAD 00000e26: DUP2 00000e27: PUSH4 0xffffffff 00000e2c: AND 00000e2d: PUSH1 0xe0 00000e2f: SHL 00000e30: DUP2 00000e31: MSTORE 00000e32: PUSH1 0x04 00000e34: ADD 00000e35: PUSH1 0x20 00000e37: PUSH1 0x40 00000e39: MLOAD 00000e3a: DUP1 00000e3b: DUP4 00000e3c: SUB 00000e3d: DUP2 00000e3e: DUP7 00000e3f: GAS 00000e40: STATICCALL 00000e41: ISZERO 00000e42: DUP1 00000e43: ISZERO 00000e44: PUSH2 0x0e51 00000e47: JUMPI 00000e48: RETURNDATASIZE 00000e49: PUSH1 0x00 00000e4b: DUP1 00000e4c: RETURNDATACOPY 00000e4d: RETURNDATASIZE 00000e4e: PUSH1 0x00 00000e50: REVERT 00000e51: JUMPDEST 00000e52: POP 00000e53: POP 00000e54: POP 00000e55: POP 00000e56: PUSH1 0x40 00000e58: MLOAD 00000e59: RETURNDATASIZE 00000e5a: PUSH1 0x1f 00000e5c: NOT 00000e5d: PUSH1 0x1f 00000e5f: DUP3 00000e60: ADD 00000e61: AND 00000e62: DUP3 00000e63: ADD 00000e64: DUP1 00000e65: PUSH1 0x40 00000e67: MSTORE 00000e68: POP 00000e69: DUP2 00000e6a: ADD 00000e6b: SWAP1 00000e6c: PUSH2 0x0e75 00000e6f: SWAP2 00000e70: SWAP1 00000e71: PUSH2 0x1218 00000e74: JUMP 00000e75: JUMPDEST 00000e76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e8b: AND 00000e8c: PUSH2 0x0e93 00000e8f: PUSH2 0x0d5a 00000e92: JUMP 00000e93: JUMPDEST 00000e94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ea9: AND 00000eaa: EQ 00000eab: PUSH2 0x0d57 00000eae: JUMPI 00000eaf: PUSH1 0x40 00000eb1: MLOAD 00000eb2: PUSH32 0x075c431400000000000000000000000000000000000000000000000000000000 00000ed3: DUP2 00000ed4: MSTORE 00000ed5: PUSH1 0x04 00000ed7: ADD 00000ed8: PUSH1 0x40 00000eda: MLOAD 00000edb: DUP1 00000edc: SWAP2 00000edd: SUB 00000ede: SWAP1 00000edf: REVERT 00000ee0: JUMPDEST 00000ee1: CALLER 00000ee2: PUSH2 0x0ee9 00000ee5: PUSH2 0x0519 00000ee8: JUMP 00000ee9: JUMPDEST 00000eea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000eff: AND 00000f00: EQ 00000f01: ISZERO 00000f02: DUP1 00000f03: ISZERO 00000f04: PUSH2 0x0f2a 00000f07: JUMPI 00000f08: POP 00000f09: CALLER 00000f0a: PUSH2 0x0f11 00000f0d: PUSH2 0x0d5a 00000f10: JUMP 00000f11: JUMPDEST 00000f12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f27: AND 00000f28: EQ 00000f29: ISZERO 00000f2a: JUMPDEST 00000f2b: ISZERO 00000f2c: PUSH2 0x0e04 00000f2f: JUMPI 00000f30: PUSH1 0x40 00000f32: MLOAD 00000f33: PUSH32 0xc4050a2600000000000000000000000000000000000000000000000000000000 00000f54: DUP2 00000f55: MSTORE 00000f56: PUSH1 0x04 00000f58: ADD 00000f59: PUSH1 0x40 00000f5b: MLOAD 00000f5c: DUP1 00000f5d: SWAP2 00000f5e: SUB 00000f5f: SWAP1 00000f60: REVERT 00000f61: JUMPDEST 00000f62: PUSH2 0x0f6a 00000f65: DUP2 00000f66: PUSH2 0x0e06 00000f69: JUMP 00000f6a: JUMPDEST 00000f6b: PUSH2 0x0f72 00000f6e: PUSH2 0x0482 00000f71: JUMP 00000f72: JUMPDEST 00000f73: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f88: AND 00000f89: DUP2 00000f8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f9f: AND 00000fa0: PUSH4 0x35e80ab3 00000fa5: PUSH1 0x40 00000fa7: MLOAD 00000fa8: DUP2 00000fa9: PUSH4 0xffffffff 00000fae: AND 00000faf: PUSH1 0xe0 00000fb1: SHL 00000fb2: DUP2 00000fb3: MSTORE 00000fb4: PUSH1 0x04 00000fb6: ADD 00000fb7: PUSH1 0x20 00000fb9: PUSH1 0x40 00000fbb: MLOAD 00000fbc: DUP1 00000fbd: DUP4 00000fbe: SUB 00000fbf: DUP2 00000fc0: DUP7 00000fc1: GAS 00000fc2: STATICCALL 00000fc3: ISZERO 00000fc4: DUP1 00000fc5: ISZERO 00000fc6: PUSH2 0x0fd3 00000fc9: JUMPI 00000fca: RETURNDATASIZE 00000fcb: PUSH1 0x00 00000fcd: DUP1 00000fce: RETURNDATACOPY 00000fcf: RETURNDATASIZE 00000fd0: PUSH1 0x00 00000fd2: REVERT 00000fd3: JUMPDEST 00000fd4: POP 00000fd5: POP 00000fd6: POP 00000fd7: POP 00000fd8: PUSH1 0x40 00000fda: MLOAD 00000fdb: RETURNDATASIZE 00000fdc: PUSH1 0x1f 00000fde: NOT 00000fdf: PUSH1 0x1f 00000fe1: DUP3 00000fe2: ADD 00000fe3: AND 00000fe4: DUP3 00000fe5: ADD 00000fe6: DUP1 00000fe7: PUSH1 0x40 00000fe9: MSTORE 00000fea: POP 00000feb: DUP2 00000fec: ADD 00000fed: SWAP1 00000fee: PUSH2 0x0ff7 00000ff1: SWAP2 00000ff2: SWAP1 00000ff3: PUSH2 0x1218 00000ff6: JUMP 00000ff7: JUMPDEST 00000ff8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000100d: AND 0000100e: EQ 0000100f: PUSH2 0x1044 00001012: JUMPI 00001013: PUSH1 0x40 00001015: MLOAD 00001016: PUSH32 0x84ab551500000000000000000000000000000000000000000000000000000000 00001037: DUP2 00001038: MSTORE 00001039: PUSH1 0x04 0000103b: ADD 0000103c: PUSH1 0x40 0000103e: MLOAD 0000103f: DUP1 00001040: SWAP2 00001041: SUB 00001042: SWAP1 00001043: REVERT 00001044: JUMPDEST 00001045: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000105a: DUP2 0000105b: AND 0000105c: PUSH1 0x00 0000105e: DUP2 0000105f: DUP2 00001060: MSTORE 00001061: PUSH1 0x01 00001063: PUSH1 0x20 00001065: DUP2 00001066: SWAP1 00001067: MSTORE 00001068: PUSH1 0x40 0000106a: DUP1 0000106b: DUP4 0000106c: KECCAK256 0000106d: DUP1 0000106e: SLOAD 0000106f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00001090: AND 00001091: SWAP1 00001092: SWAP3 00001093: OR 00001094: SWAP1 00001095: SWAP2 00001096: SSTORE 00001097: MLOAD 00001098: PUSH32 0x90a7fac2e56aebe4889351fb04eda5efb28b19dedf288bdbfd3cfd817c79630f 000010b9: SWAP2 000010ba: SWAP1 000010bb: LOG2 000010bc: POP 000010bd: JUMP 000010be: JUMPDEST 000010bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010d4: DUP2 000010d5: AND 000010d6: DUP2 000010d7: EQ 000010d8: PUSH2 0x0d57 000010db: JUMPI 000010dc: PUSH1 0x00 000010de: DUP1 000010df: REVERT 000010e0: JUMPDEST 000010e1: PUSH1 0x00 000010e3: PUSH1 0x20 000010e5: DUP3 000010e6: DUP5 000010e7: SUB 000010e8: SLT 000010e9: ISZERO 000010ea: PUSH2 0x10f2 000010ed: JUMPI 000010ee: PUSH1 0x00 000010f0: DUP1 000010f1: REVERT 000010f2: JUMPDEST 000010f3: DUP2 000010f4: CALLDATALOAD 000010f5: PUSH2 0x10fd 000010f8: DUP2 000010f9: PUSH2 0x10be 000010fc: JUMP 000010fd: JUMPDEST 000010fe: SWAP4 000010ff: SWAP3 00001100: POP 00001101: POP 00001102: POP 00001103: JUMP 00001104: JUMPDEST 00001105: PUSH1 0x00 00001107: PUSH1 0x20 00001109: DUP1 0000110a: DUP4 0000110b: MSTORE 0000110c: DUP4 0000110d: MLOAD 0000110e: DUP1 0000110f: DUP3 00001110: DUP6 00001111: ADD 00001112: MSTORE 00001113: PUSH1 0x00 00001115: JUMPDEST 00001116: DUP2 00001117: DUP2 00001118: LT 00001119: ISZERO 0000111a: PUSH2 0x1131 0000111d: JUMPI 0000111e: DUP6 0000111f: DUP2 00001120: ADD 00001121: DUP4 00001122: ADD 00001123: MLOAD 00001124: DUP6 00001125: DUP3 00001126: ADD 00001127: PUSH1 0x40 00001129: ADD 0000112a: MSTORE 0000112b: DUP3 0000112c: ADD 0000112d: PUSH2 0x1115 00001130: JUMP 00001131: JUMPDEST 00001132: DUP2 00001133: DUP2 00001134: GT 00001135: ISZERO 00001136: PUSH2 0x1143 00001139: JUMPI 0000113a: PUSH1 0x00 0000113c: PUSH1 0x40 0000113e: DUP4 0000113f: DUP8 00001140: ADD 00001141: ADD 00001142: MSTORE 00001143: JUMPDEST 00001144: POP 00001145: PUSH1 0x1f 00001147: ADD 00001148: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001169: AND 0000116a: SWAP3 0000116b: SWAP1 0000116c: SWAP3 0000116d: ADD 0000116e: PUSH1 0x40 00001170: ADD 00001171: SWAP4 00001172: SWAP3 00001173: POP 00001174: POP 00001175: POP 00001176: JUMP 00001177: JUMPDEST 00001178: PUSH1 0x00 0000117a: PUSH1 0x20 0000117c: DUP3 0000117d: DUP5 0000117e: SUB 0000117f: SLT 00001180: ISZERO 00001181: PUSH2 0x1189 00001184: JUMPI 00001185: PUSH1 0x00 00001187: DUP1 00001188: REVERT 00001189: JUMPDEST 0000118a: POP 0000118b: CALLDATALOAD 0000118c: SWAP2 0000118d: SWAP1 0000118e: POP 0000118f: JUMP 00001190: JUMPDEST 00001191: PUSH1 0x00 00001193: DUP1 00001194: PUSH1 0x00 00001196: PUSH1 0x40 00001198: DUP5 00001199: DUP7 0000119a: SUB 0000119b: SLT 0000119c: ISZERO 0000119d: PUSH2 0x11a5 000011a0: JUMPI 000011a1: PUSH1 0x00 000011a3: DUP1 000011a4: REVERT 000011a5: JUMPDEST 000011a6: DUP4 000011a7: CALLDATALOAD 000011a8: PUSH2 0x11b0 000011ab: DUP2 000011ac: PUSH2 0x10be 000011af: JUMP 000011b0: JUMPDEST 000011b1: SWAP3 000011b2: POP 000011b3: PUSH1 0x20 000011b5: DUP5 000011b6: ADD 000011b7: CALLDATALOAD 000011b8: PUSH8 0xffffffffffffffff 000011c1: DUP1 000011c2: DUP3 000011c3: GT 000011c4: ISZERO 000011c5: PUSH2 0x11cd 000011c8: JUMPI 000011c9: PUSH1 0x00 000011cb: DUP1 000011cc: REVERT 000011cd: JUMPDEST 000011ce: DUP2 000011cf: DUP7 000011d0: ADD 000011d1: SWAP2 000011d2: POP 000011d3: DUP7 000011d4: PUSH1 0x1f 000011d6: DUP4 000011d7: ADD 000011d8: SLT 000011d9: PUSH2 0x11e1 000011dc: JUMPI 000011dd: PUSH1 0x00 000011df: DUP1 000011e0: REVERT 000011e1: JUMPDEST 000011e2: DUP2 000011e3: CALLDATALOAD 000011e4: DUP2 000011e5: DUP2 000011e6: GT 000011e7: ISZERO 000011e8: PUSH2 0x11f0 000011eb: JUMPI 000011ec: PUSH1 0x00 000011ee: DUP1 000011ef: REVERT 000011f0: JUMPDEST 000011f1: DUP8 000011f2: PUSH1 0x20 000011f4: DUP3 000011f5: PUSH1 0x05 000011f7: SHL 000011f8: DUP6 000011f9: ADD 000011fa: ADD 000011fb: GT 000011fc: ISZERO 000011fd: PUSH2 0x1205 00001200: JUMPI 00001201: PUSH1 0x00 00001203: DUP1 00001204: REVERT 00001205: JUMPDEST 00001206: PUSH1 0x20 00001208: DUP4 00001209: ADD 0000120a: SWAP5 0000120b: POP 0000120c: DUP1 0000120d: SWAP4 0000120e: POP 0000120f: POP 00001210: POP 00001211: POP 00001212: SWAP3 00001213: POP 00001214: SWAP3 00001215: POP 00001216: SWAP3 00001217: JUMP 00001218: JUMPDEST 00001219: PUSH1 0x00 0000121b: PUSH1 0x20 0000121d: DUP3 0000121e: DUP5 0000121f: SUB 00001220: SLT 00001221: ISZERO 00001222: PUSH2 0x122a 00001225: JUMPI 00001226: PUSH1 0x00 00001228: DUP1 00001229: REVERT 0000122a: JUMPDEST 0000122b: DUP2 0000122c: MLOAD 0000122d: PUSH2 0x10fd 00001230: DUP2 00001231: PUSH2 0x10be 00001234: JUMP 00001235: JUMPDEST 00001236: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001257: PUSH1 0x00 00001259: MSTORE 0000125a: PUSH1 0x11 0000125c: PUSH1 0x04 0000125e: MSTORE 0000125f: PUSH1 0x24 00001261: PUSH1 0x00 00001263: REVERT 00001264: JUMPDEST 00001265: PUSH1 0x00 00001267: DUP2 00001268: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001289: DIV 0000128a: DUP4 0000128b: GT 0000128c: DUP3 0000128d: ISZERO 0000128e: ISZERO 0000128f: AND 00001290: ISZERO 00001291: PUSH2 0x129c 00001294: JUMPI 00001295: PUSH2 0x129c 00001298: PUSH2 0x1235 0000129b: JUMP 0000129c: JUMPDEST 0000129d: POP 0000129e: MUL 0000129f: SWAP1 000012a0: JUMP 000012a1: JUMPDEST 000012a2: PUSH1 0x00 000012a4: PUSH1 0x20 000012a6: DUP3 000012a7: DUP5 000012a8: SUB 000012a9: SLT 000012aa: ISZERO 000012ab: PUSH2 0x12b3 000012ae: JUMPI 000012af: PUSH1 0x00 000012b1: DUP1 000012b2: REVERT 000012b3: JUMPDEST 000012b4: DUP2 000012b5: MLOAD 000012b6: DUP1 000012b7: ISZERO 000012b8: ISZERO 000012b9: DUP2 000012ba: EQ 000012bb: PUSH2 0x10fd 000012be: JUMPI 000012bf: PUSH1 0x00 000012c1: DUP1 000012c2: REVERT 000012c3: JUMPDEST 000012c4: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000012e5: PUSH1 0x00 000012e7: MSTORE 000012e8: PUSH1 0x32 000012ea: PUSH1 0x04 000012ec: MSTORE 000012ed: PUSH1 0x24 000012ef: PUSH1 0x00 000012f1: REVERT 000012f2: JUMPDEST 000012f3: PUSH1 0x00 000012f5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001316: DUP3 00001317: SUB 00001318: PUSH2 0x1323 0000131b: JUMPI 0000131c: PUSH2 0x1323 0000131f: PUSH2 0x1235 00001322: JUMP 00001323: JUMPDEST 00001324: POP 00001325: PUSH1 0x01 00001327: ADD 00001328: SWAP1 00001329: JUMP 0000132a: INVALID 0000132b: LOG1 0000132c: PUSH5 0x736f6c6343 00001332: STOP 00001333: ADDMOD 00001334: UNKNOWN(0x0F) 00001335: STOP 00001336: EXP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x022428b7974397728c1775c511e7b98d1c556c69df0f387c83d1be1a956c1826
call_targets:
0x784d2f03593a42a6e4676a012762f18775ecbbe6
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x022428b7974397728c1775c511e7b98d1c556c69df0f387c83d1be1a956c1826",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x784d2f03593a42a6e4676a012762f18775ecbbe6"
],
"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": "0x8d445bd0",
"selector": "0x8d445bd0",
"calldata_variants": [
"0x8d445bd0",
"0x8d445bd00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x946d9204",
"selector": "0x946d9204",
"calldata_variants": [
"0x946d9204",
"0x946d92040000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb2db82f5",
"selector": "0xb2db82f5",
"calldata_variants": [
"0xb2db82f5",
"0xb2db82f50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdad544e0",
"selector": "0xdad544e0",
"calldata_variants": [
"0xdad544e0",
"0xdad544e00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x438ab5ac",
"selector": "0x438ab5ac",
"calldata_variants": [
"0x438ab5ac",
"0x438ab5ac0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x54fd4d50",
"selector": "0x54fd4d50",
"calldata_variants": [
"0x54fd4d50",
"0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c975abb",
"selector": "0x5c975abb",
"calldata_variants": [
"0x5c975abb",
"0x5c975abb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5ec15d89",
"selector": "0x5ec15d89",
"calldata_variants": [
"0x5ec15d89",
"0x5ec15d890000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1925,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2795,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x022428b7974397728c1775c511e7b98d1c556c69df0f387c83d1be1a956c1826
call_targets:
0x784d2f03593a42a6e4676a012762f18775ecbbe6
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x022428b7974397728c1775c511e7b98d1c556c69df0f387c83d1be1a956c1826",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x784d2f03593a42a6e4676a012762f18775ecbbe6"
],
"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": "0x8d445bd0",
"selector": "0x8d445bd0",
"calldata_variants": [
"0x8d445bd0",
"0x8d445bd00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x946d9204",
"selector": "0x946d9204",
"calldata_variants": [
"0x946d9204",
"0x946d92040000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb2db82f5",
"selector": "0xb2db82f5",
"calldata_variants": [
"0xb2db82f5",
"0xb2db82f50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdad544e0",
"selector": "0xdad544e0",
"calldata_variants": [
"0xdad544e0",
"0xdad544e00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x438ab5ac",
"selector": "0x438ab5ac",
"calldata_variants": [
"0x438ab5ac",
"0x438ab5ac0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x54fd4d50",
"selector": "0x54fd4d50",
"calldata_variants": [
"0x54fd4d50",
"0x54fd4d500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c975abb",
"selector": "0x5c975abb",
"calldata_variants": [
"0x5c975abb",
"0x5c975abb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5ec15d89",
"selector": "0x5ec15d89",
"calldata_variants": [
"0x5ec15d89",
"0x5ec15d890000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1925,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2795,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|