c191f010-365b-43c1-9bc7-308c301fc4dd
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 |
|---|---|---|---|---|
| 31247 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 104741 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 104742 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 104743 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 104744 | capability.graph | complete | 1 / 3 | 1 week ago |
| 104745 | detector.run | complete | 1 / 3 | 1 week ago |
| 104746 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1287772] OpenAI Codex v0.77.0 (research preview)
[codex:1287772] --------
[codex:1287772] workdir: /tmp/codex-multi-5_p3czxk
[codex:1287772] model: gpt-5.2-codex
[codex:1287772] provider: openai
[codex:1287772] approval: never
[codex:1287772] sandbox: read-only
[codex:1287772] reasoning effort: xhigh
[codex:1287772] reasoning summaries: auto
[codex:1287772] session id: 019b7d54-3b3d-7251-ad83-c9f032eaaaa0
[codex:1287772] --------
[codex:1287772] user
[codex:1287772] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1287772]
[codex:1287772] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1287772]
[codex:1287772] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1287772] - Gas inefficiency, code quality, naming, or best practices
[codex:1287772] - Theoretical vulnerabilities without a clear extraction path
[codex:1287772] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1287772] - Front-running unless it enables theft beyond MEV
[codex:1287772] - DoS, griefing, or issues that don't result in attacker profit
[codex:1287772] - Missing events, view function issues, or informational findings
[codex:1287772]
[codex:1287772] HIGH-VALUE PATTERNS TO HUNT:
[codex:1287772] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1287772] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1287772] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1287772] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1287772] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1287772] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1287772] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1287772] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1287772] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1287772]
[codex:1287772] For each finding, you MUST provide:
[codex:1287772] 1. Exact file and line numbers of vulnerable code
[codex:1287772] 2. Step-by-step exploit transaction sequence
[codex:1287772] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1287772]
[codex:1287772] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1287772]
[codex:1287772] Output MUST be valid JSON matching the provided schema.
[codex:1287772] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1287772] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1287772] mcp startup: no servers
[codex:1287772]
[codex:1287772] thinking
[codex:1287772] **Checking instructions and files**
[codex:1287772] exec
[codex:1287772] /bin/bash -lc ls in /tmp/codex-multi-5_p3czxk succeeded in 5ms:
[codex:1287772] AUDIT_BUNDLE.txt
[codex:1287772] codex-output-schema.json
[codex:1287772] contracts
[codex:1287772] exec
[codex:1287772] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-5_p3czxk succeeded in 5ms:
[codex:1287772] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1287772]
[codex:1287772] ================================================================================
[codex:1287772] FILE: contracts/src/contracts/PrivacyPool.sol
[codex:1287772] ================================================================================
[codex:1287772] // SPDX-License-Identifier: Apache-2.0
[codex:1287772] pragma solidity 0.8.28;
[codex:1287772]
[codex:1287772] /*
[codex:1287772]
[codex:1287772] Made with ♥ for 0xBow by
[codex:1287772]
[codex:1287772] ░██╗░░░░░░░██╗░█████╗░███╗░░██╗██████╗░███████╗██████╗░██╗░░░░░░█████╗░███╗░░██╗██████╗░
[codex:1287772] ░██║░░██╗░░██║██╔══██╗████╗░██║██╔══██╗██╔════╝██╔══██╗██║░░░░░██╔══██╗████╗░██║██╔══██╗
[codex:1287772] ░╚██╗████╗██╔╝██║░░██║██╔██╗██║██║░░██║█████╗░░██████╔╝██║░░░░░███████║██╔██╗██║██║░░██║
[codex:1287772] ░░████╔═████║░██║░░██║██║╚████║██║░░██║██╔══╝░░██╔══██╗██║░░░░░██╔══██║██║╚████║██║░░██║
[codex:1287772] ░░╚██╔╝░╚██╔╝░╚█████╔╝██║░╚███║██████╔╝███████╗██║░░██║███████╗██║░░██║██║░╚███║██████╔╝
[codex:1287772] ░░░╚═╝░░░╚═╝░░░╚════╝░╚═╝░░╚══╝╚═════╝░╚══════╝╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚══╝╚═════╝░
[codex:1287772]
[codex:1287772] https://defi.sucks/
[codex:1287772]
[codex:1287772] thinking
[codex:1287772] **Searching for entrypoint in bundle**
[codex:1287772] exec
[codex:1287772] /bin/bash -lc 'rg -n "contract Entrypoint|Entrypoint" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-5_p3czxk succeeded in 7ms:
[codex:1287772] 37: * @dev Deposits can be irreversibly suspended by the Entrypoint, while withdrawals can't.
[codex:1287772] 70: * @param _entrypoint Address of the Entrypoint that operates this pool
[codex:1287772] 91: ) external payable onlyEntrypoint returns (uint256 _commitment) {
[codex:1287772] 162: function windDown() external onlyEntrypoint {
[codex:1287772] 217:import {IEntrypoint} from 'interfaces/IEntrypoint.sol';
[codex:1287772] 239: IEntrypoint public immutable ENTRYPOINT;
[codex:1287772] 264: * @notice Check the caller is the Entrypoint
[codex:1287772] 266: modifier onlyEntrypoint() {
[codex:1287772] 267: if (msg.sender != address(ENTRYPOINT)) revert OnlyEntrypoint();
[codex:1287772] 286: ENTRYPOINT = IEntrypoint(_entrypoint);
[codex:1287772] 442:FILE: contracts/src/interfaces/IEntrypoint.sol
[codex:1287772] 453: * @title IEntrypoint
[codex:1287772] 454: * @notice Interface for the Entrypoint contract
[codex:1287772] 456:interface IEntrypoint {
[codex:1287772] 522: * @notice Emitted when processing a withdrawal through the Entrypoint
[codex:1287772] 534: * @notice Emitted when withdrawing fees from the Entrypoint
[codex:1287772] 548: * @notice Emitted when registering a Privacy Pool in the Entrypoint registry
[codex:1287772] 556: * @notice Emitted when removing a Privacy Pool from the Entrypoint registry
[codex:1287772] 599: * @notice Thrown when trying to register a pool whose configured Entrypoint is not this one
[codex:1287772] 601: error InvalidEntrypointForPool();
[codex:1287772]
[codex:1287772] thinking
[codex:1287772] **Checking for Entrypoint implementation**
[codex:1287772] exec
[codex:1287772] /bin/bash -lc 'tail -n 200 AUDIT_BUNDLE.txt' in /tmp/codex-multi-5_p3czxk succeeded in 5ms:
[codex:1287772] */
[codex:1287772] interface IState {
[codex:1287772] /*///////////////////////////////////////////////////////////////
[codex:1287772] EVENTS
[codex:1287772] //////////////////////////////////////////////////////////////*/
[codex:1287772]
[codex:1287772] /**
[codex:1287772] * @notice Emitted when inserting a leaf into the Merkle Tree
[codex:1287772] * @param _index The index of the leaf in the tree
[codex:1287772] * @param _leaf The leaf value
[codex:1287772] * @param _root The updated root
[codex:1287772] */
[codex:1287772] event LeafInserted(uint256 _index, uint256 _leaf, uint256 _root);
[codex:1287772]
[codex:1287772] /*///////////////////////////////////////////////////////////////
[codex:1287772] ERRORS
[codex:1287772] //////////////////////////////////////////////////////////////*/
[codex:1287772]
[codex:1287772] /**
[codex:1287772] * @notice Thrown when trying to call a method only available to the Entrypoint
[codex:1287772]
[codex:1287772] thinking
[codex:1287772] **Analyzing potential reentrancy and proof verification issues**
[codex:1287772] exec
[codex:1287772] /bin/bash -lc 'rg -n "library ProofLib|ProofLib" AUDIT_BUNDLE.txt' in /tmp/codex-multi-5_p3czxk succeeded in 6ms:
[codex:1287772] 27:import {ProofLib} from './lib/ProofLib.sol';
[codex:1287772] 40: using ProofLib for ProofLib.WithdrawProof;
[codex:1287772] 41: using ProofLib for ProofLib.RagequitProof;
[codex:1287772] 48: modifier validWithdrawal(Withdrawal memory _withdrawal, ProofLib.WithdrawProof memory _proof) {
[codex:1287772] 117: ProofLib.WithdrawProof memory _proof
[codex:1287772] 137: function ragequit(ProofLib.RagequitProof memory _proof) external {
[codex:1287772] 449:import {ProofLib} from '../contracts/lib/ProofLib.sol';
[codex:1287772] 721: ProofLib.WithdrawProof calldata _proof,
[codex:1287772] 830:import {ProofLib} from '../contracts/lib/ProofLib.sol';
[codex:1287772] 969: function withdraw(Withdrawal memory _w, ProofLib.WithdrawProof memory _p) external;
[codex:1287772] 976: function ragequit(ProofLib.RagequitProof memory _p) external;
[codex:1287772]
[codex:1287772] thinking
[codex:1287772] **Checking for missing ProofLib.sol inclusion**
[codex:1287772] exec
[codex:1287772] /bin/bash -lc 'rg -n "ProofLib.sol" AUDIT_BUNDLE.txt' in /tmp/codex-multi-5_p3czxk succeeded in 7ms:
[codex:1287772] 27:import {ProofLib} from './lib/ProofLib.sol';
[codex:1287772] 449:import {ProofLib} from '../contracts/lib/ProofLib.sol';
[codex:1287772] 830:import {ProofLib} from '../contracts/lib/ProofLib.sol';
[codex:1287772]
[codex:1287772] thinking
[codex:1287772] **Checking for ProofLib files**
[codex:1287772] exec
[codex:1287772] /bin/bash -lc 'rg --files' in /tmp/codex-multi-5_p3czxk succeeded in 8ms:
[codex:1287772] codex-output-schema.json
[codex:1287772] AUDIT_BUNDLE.txt
[codex:1287772] contracts/src/interfaces/IEntrypoint.sol
[codex:1287772] contracts/src/interfaces/IState.sol
[codex:1287772] contracts/src/interfaces/IPrivacyPool.sol
[codex:1287772] contracts/src/interfaces/IVerifier.sol
[codex:1287772] contracts/src/contracts/State.sol
[codex:1287772] contracts/src/contracts/PrivacyPool.sol
[codex:1287772] contracts/src/contracts/lib/ProofLib.sol
[codex:1287772] contracts/src/contracts/lib/Constants.sol
[codex:1287772] contracts/src/contracts/implementations/PrivacyPoolSimple.sol
[codex:1287772]
[codex:1287772] thinking
[codex:1287772] **Reviewing ProofLib and Constants**
[codex:1287772] exec
[codex:1287772] /bin/bash -lc 'cat contracts/src/contracts/lib/ProofLib.sol' in /tmp/codex-multi-5_p3czxk succeeded in 5ms:
[codex:1287772] // SPDX-License-Identifier: Apache-2.0
[codex:1287772] pragma solidity 0.8.28;
[codex:1287772]
[codex:1287772] /**
[codex:1287772] * @title ProofLib
[codex:1287772] * @notice Facilitates accessing the public signals of a Groth16 proof.
[codex:1287772] * @custom:semver 0.1.0
[codex:1287772] */
[codex:1287772] library ProofLib {
[codex:1287772] /*///////////////////////////////////////////////////////////////
[codex:1287772] WITHDRAWAL PROOF
[codex:1287772] //////////////////////////////////////////////////////////////*/
[codex:1287772]
[codex:1287772] /**
[codex:1287772] * @notice Struct containing Groth16 proof elements and public signals for withdrawal verification
[codex:1287772] * @dev The public signals array must match the order of public inputs/outputs in the circuit
[codex:1287772] * @param pA First elliptic curve point (π_A) of the Groth16 proof, encoded as two field elements
[codex:1287772] * @param pB Second elliptic curve point (π_B) of the Groth16 proof, encoded as 2x2 matrix of field elements
[codex:1287772] * @param pC Third elliptic curve point (π_C) of the Groth16 proof, encoded as two field elements
[codex:1287772] * @param pubSignals Array of public inputs and outputs:
[codex:1287772]
[codex:1287772] thinking
[codex:1287772] **Identifying missing constants**
[codex:1287772] exec
[codex:1287772] /bin/bash -lc 'cat contracts/src/contracts/lib/Constants.sol' in /tmp/codex-multi-5_p3czxk succeeded in 5ms:
[codex:1287772] // SPDX-License-Identifier: Apache-2.0
[codex:1287772] pragma solidity 0.8.28;
[codex:1287772]
[codex:1287772] library Constants {
[codex:1287772] uint256 constant SNARK_SCALAR_FIELD =
[codex:1287772] 21_888_242_871_839_275_222_246_405_745_257_275_088_548_364_400_416_034_343_698_204_186_575_808_495_617;
[codex:1287772]
[codex:1287772] address constant NATIVE_ASSET = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
[codex:1287772] }
[codex:1287772]
[codex:1287772]
[codex:1287772] thinking
[codex:1287772] **Analyzing reentrancy and state consistency risks**
[codex:1287772]
[codex:1287772] I've carefully evaluated potential reentrancy vulnerabilities around _push and withdraw, particularly whether reentering withdraw could enable multiple spends of new commitments inserted in the same transaction. I considered the update of state roots, proof validity tied to roots, and external calls that might revert or allow reentry. While some edge cases appear complex—like chaining withdrawals by spending freshly inserted commitments within one transaction—no concrete exploitable profit path emerged under the current assumptions about proofs, entrypoint restrictions, and state handling.
[codex:1287772] thinking
[codex:1287772] **Preparing final audit JSON response**
[codex:1287772]
[codex:1287772] I'm wrapping up with a JSON summary indicating no exploitable vulnerabilities found, confirming all proofs and state checks appear sound, and ensuring the output matches the required schema exactly for clean validation.
[codex:1287772] codex
[codex:1287772] {"no_findings":true,"summary":"No concrete, exploitable path to extract value found in the provided contracts.","findings":[]}
[codex:1287772] tokens used
[codex:1287772] 23,984
[codex:1287772] {"no_findings":true,"summary":"No concrete, exploitable path to extract value found in the provided contracts.","findings":[]}
{
"codex": {
"ran_at": "2026-01-02T06:12:27.372290+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable path to extract value found in the provided contracts.",
"raw_final": {
"summary": "No concrete, exploitable path to extract value 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 0x0157 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0xa8f0f95a 00000018: GT 00000019: PUSH2 0x00bb 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xda662925 00000023: GT 00000024: PUSH2 0x0071 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xe4b2fb79 0000002e: GT 0000002f: PUSH2 0x0057 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xe4b2fb79 00000039: EQ 0000003a: PUSH2 0x03dd 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xe8eb3cc6 00000044: EQ 00000045: PUSH2 0x041e 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xfdab463d 0000004f: EQ 00000050: PUSH2 0x0451 00000053: JUMPI 00000054: PUSH0 00000055: PUSH0 00000056: REVERT 00000057: JUMPDEST 00000058: DUP1 00000059: PUSH4 0xda662925 0000005e: EQ 0000005f: PUSH2 0x0396 00000062: JUMPI 00000063: DUP1 00000064: PUSH4 0xe38df5f0 00000069: EQ 0000006a: PUSH2 0x03c9 0000006d: JUMPI 0000006e: PUSH0 0000006f: PUSH0 00000070: REVERT 00000071: JUMPDEST 00000072: DUP1 00000073: PUSH4 0xb85c5145 00000078: GT 00000079: PUSH2 0x00a1 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xb85c5145 00000083: EQ 00000084: PUSH2 0x0343 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0xc2b40ae4 0000008e: EQ 0000008f: PUSH2 0x0357 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xcd87a3b4 00000099: EQ 0000009a: PUSH2 0x0382 0000009d: JUMPI 0000009e: PUSH0 0000009f: PUSH0 000000a0: REVERT 000000a1: JUMPDEST 000000a2: DUP1 000000a3: PUSH4 0xa8f0f95a 000000a8: EQ 000000a9: PUSH2 0x031b 000000ac: JUMPI 000000ad: DUP1 000000ae: PUSH4 0xaffed0e0 000000b3: EQ 000000b4: PUSH2 0x032f 000000b7: JUMPI 000000b8: PUSH0 000000b9: PUSH0 000000ba: REVERT 000000bb: JUMPDEST 000000bc: DUP1 000000bd: PUSH4 0x4800d97f 000000c2: GT 000000c3: PUSH2 0x0110 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x71235b34 000000cd: GT 000000ce: PUSH2 0x00f6 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x71235b34 000000d8: EQ 000000d9: PUSH2 0x0298 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x8735eb2b 000000e3: EQ 000000e4: PUSH2 0x02b7 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x90eeb02b 000000ee: EQ 000000ef: PUSH2 0x02ea 000000f2: JUMPI 000000f3: PUSH0 000000f4: PUSH0 000000f5: REVERT 000000f6: JUMPDEST 000000f7: DUP1 000000f8: PUSH4 0x4800d97f 000000fd: EQ 000000fe: PUSH2 0x022c 00000101: JUMPI 00000102: DUP1 00000103: PUSH4 0x4a2b75c8 00000108: EQ 00000109: PUSH2 0x0284 0000010c: JUMPI 0000010d: PUSH0 0000010e: PUSH0 0000010f: REVERT 00000110: JUMPDEST 00000111: DUP1 00000112: PUSH4 0x30c0766d 00000117: GT 00000118: PUSH2 0x0140 0000011b: JUMPI 0000011c: DUP1 0000011d: PUSH4 0x30c0766d 00000122: EQ 00000123: PUSH2 0x01bf 00000126: JUMPI 00000127: DUP1 00000128: PUSH4 0x33d09200 0000012d: EQ 0000012e: PUSH2 0x01e0 00000131: JUMPI 00000132: DUP1 00000133: PUSH4 0x36cf7c87 00000138: EQ 00000139: PUSH2 0x0213 0000013c: JUMPI 0000013d: PUSH0 0000013e: PUSH0 0000013f: REVERT 00000140: JUMPDEST 00000141: DUP1 00000142: PUSH4 0x0efe6a8b 00000147: EQ 00000148: PUSH2 0x015b 0000014b: JUMPI 0000014c: DUP1 0000014d: PUSH4 0x1f79a1e9 00000152: EQ 00000153: PUSH2 0x0181 00000156: JUMPI 00000157: JUMPDEST 00000158: PUSH0 00000159: PUSH0 0000015a: REVERT 0000015b: JUMPDEST 0000015c: PUSH2 0x016e 0000015f: PUSH2 0x0169 00000162: CALLDATASIZE 00000163: PUSH1 0x04 00000165: PUSH2 0x1453 00000168: JUMP 00000169: JUMPDEST 0000016a: PUSH2 0x0473 0000016d: JUMP 0000016e: JUMPDEST 0000016f: PUSH1 0x40 00000171: MLOAD 00000172: SWAP1 00000173: DUP2 00000174: MSTORE 00000175: PUSH1 0x20 00000177: ADD 00000178: JUMPDEST 00000179: PUSH1 0x40 0000017b: MLOAD 0000017c: DUP1 0000017d: SWAP2 0000017e: SUB 0000017f: SWAP1 00000180: RETURN 00000181: JUMPDEST 00000182: CALLVALUE 00000183: DUP1 00000184: ISZERO 00000185: PUSH2 0x018c 00000188: JUMPI 00000189: PUSH0 0000018a: PUSH0 0000018b: REVERT 0000018c: JUMPDEST 0000018d: POP 0000018e: PUSH2 0x01af 00000191: PUSH2 0x019b 00000194: CALLDATASIZE 00000195: PUSH1 0x04 00000197: PUSH2 0x1483 0000019a: JUMP 0000019b: JUMPDEST 0000019c: PUSH1 0x08 0000019e: PUSH1 0x20 000001a0: MSTORE 000001a1: PUSH0 000001a2: SWAP1 000001a3: DUP2 000001a4: MSTORE 000001a5: PUSH1 0x40 000001a7: SWAP1 000001a8: KECCAK256 000001a9: SLOAD 000001aa: PUSH1 0xff 000001ac: AND 000001ad: DUP2 000001ae: JUMP 000001af: JUMPDEST 000001b0: PUSH1 0x40 000001b2: MLOAD 000001b3: SWAP1 000001b4: ISZERO 000001b5: ISZERO 000001b6: DUP2 000001b7: MSTORE 000001b8: PUSH1 0x20 000001ba: ADD 000001bb: PUSH2 0x0178 000001be: JUMP 000001bf: JUMPDEST 000001c0: CALLVALUE 000001c1: DUP1 000001c2: ISZERO 000001c3: PUSH2 0x01ca 000001c6: JUMPI 000001c7: PUSH0 000001c8: PUSH0 000001c9: REVERT 000001ca: JUMPDEST 000001cb: POP 000001cc: PUSH2 0x01de 000001cf: PUSH2 0x01d9 000001d2: CALLDATASIZE 000001d3: PUSH1 0x04 000001d5: PUSH2 0x16bc 000001d8: JUMP 000001d9: JUMPDEST 000001da: PUSH2 0x0765 000001dd: JUMP 000001de: JUMPDEST 000001df: STOP 000001e0: JUMPDEST 000001e1: CALLVALUE 000001e2: DUP1 000001e3: ISZERO 000001e4: PUSH2 0x01eb 000001e7: JUMPI 000001e8: PUSH0 000001e9: PUSH0 000001ea: REVERT 000001eb: JUMPDEST 000001ec: POP 000001ed: PUSH2 0x016e 000001f0: PUSH32 0x0adeaec0e1538a417bf70421cc25c90da5269c128097beb58d8cbc22dadfae43 00000211: DUP2 00000212: JUMP 00000213: JUMPDEST 00000214: CALLVALUE 00000215: DUP1 00000216: ISZERO 00000217: PUSH2 0x021e 0000021a: JUMPI 0000021b: PUSH0 0000021c: PUSH0 0000021d: REVERT 0000021e: JUMPDEST 0000021f: POP 00000220: PUSH1 0x01 00000222: SLOAD 00000223: PUSH2 0x01af 00000226: SWAP1 00000227: PUSH1 0xff 00000229: AND 0000022a: DUP2 0000022b: JUMP 0000022c: JUMPDEST 0000022d: CALLVALUE 0000022e: DUP1 0000022f: ISZERO 00000230: PUSH2 0x0237 00000233: JUMPI 00000234: PUSH0 00000235: PUSH0 00000236: REVERT 00000237: JUMPDEST 00000238: POP 00000239: PUSH2 0x025f 0000023c: PUSH32 0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0000025d: DUP2 0000025e: JUMP 0000025f: JUMPDEST 00000260: PUSH1 0x40 00000262: MLOAD 00000263: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000278: SWAP1 00000279: SWAP2 0000027a: AND 0000027b: DUP2 0000027c: MSTORE 0000027d: PUSH1 0x20 0000027f: ADD 00000280: PUSH2 0x0178 00000283: JUMP 00000284: JUMPDEST 00000285: CALLVALUE 00000286: DUP1 00000287: ISZERO 00000288: PUSH2 0x028f 0000028b: JUMPI 0000028c: PUSH0 0000028d: PUSH0 0000028e: REVERT 0000028f: JUMPDEST 00000290: POP 00000291: PUSH1 0x05 00000293: SLOAD 00000294: PUSH2 0x016e 00000297: JUMP 00000298: JUMPDEST 00000299: CALLVALUE 0000029a: DUP1 0000029b: ISZERO 0000029c: PUSH2 0x02a3 0000029f: JUMPI 000002a0: PUSH0 000002a1: PUSH0 000002a2: REVERT 000002a3: JUMPDEST 000002a4: POP 000002a5: PUSH2 0x01de 000002a8: PUSH2 0x02b2 000002ab: CALLDATASIZE 000002ac: PUSH1 0x04 000002ae: PUSH2 0x17c9 000002b1: JUMP 000002b2: JUMPDEST 000002b3: PUSH2 0x0b82 000002b6: JUMP 000002b7: JUMPDEST 000002b8: CALLVALUE 000002b9: DUP1 000002ba: ISZERO 000002bb: PUSH2 0x02c2 000002be: JUMPI 000002bf: PUSH0 000002c0: PUSH0 000002c1: REVERT 000002c2: JUMPDEST 000002c3: POP 000002c4: PUSH2 0x025f 000002c7: PUSH32 0x000000000000000000000000022891f938ae7fdc8ab9ead0fbf50aba8c897d6d 000002e8: DUP2 000002e9: JUMP 000002ea: JUMPDEST 000002eb: CALLVALUE 000002ec: DUP1 000002ed: ISZERO 000002ee: PUSH2 0x02f5 000002f1: JUMPI 000002f2: PUSH0 000002f3: PUSH0 000002f4: REVERT 000002f5: JUMPDEST 000002f6: POP 000002f7: PUSH1 0x03 000002f9: SLOAD 000002fa: PUSH2 0x0306 000002fd: SWAP1 000002fe: PUSH4 0xffffffff 00000303: AND 00000304: DUP2 00000305: JUMP 00000306: JUMPDEST 00000307: PUSH1 0x40 00000309: MLOAD 0000030a: PUSH4 0xffffffff 0000030f: SWAP1 00000310: SWAP2 00000311: AND 00000312: DUP2 00000313: MSTORE 00000314: PUSH1 0x20 00000316: ADD 00000317: PUSH2 0x0178 0000031a: JUMP 0000031b: JUMPDEST 0000031c: CALLVALUE 0000031d: DUP1 0000031e: ISZERO 0000031f: PUSH2 0x0326 00000322: JUMPI 00000323: PUSH0 00000324: PUSH0 00000325: REVERT 00000326: JUMPDEST 00000327: POP 00000328: PUSH1 0x04 0000032a: SLOAD 0000032b: PUSH2 0x016e 0000032e: JUMP 0000032f: JUMPDEST 00000330: CALLVALUE 00000331: DUP1 00000332: ISZERO 00000333: PUSH2 0x033a 00000336: JUMPI 00000337: PUSH0 00000338: PUSH0 00000339: REVERT 0000033a: JUMPDEST 0000033b: POP 0000033c: PUSH2 0x016e 0000033f: PUSH0 00000340: SLOAD 00000341: DUP2 00000342: JUMP 00000343: JUMPDEST 00000344: CALLVALUE 00000345: DUP1 00000346: ISZERO 00000347: PUSH2 0x034e 0000034a: JUMPI 0000034b: PUSH0 0000034c: PUSH0 0000034d: REVERT 0000034e: JUMPDEST 0000034f: POP 00000350: PUSH2 0x01de 00000353: PUSH2 0x0d8e 00000356: JUMP 00000357: JUMPDEST 00000358: CALLVALUE 00000359: DUP1 0000035a: ISZERO 0000035b: PUSH2 0x0362 0000035e: JUMPI 0000035f: PUSH0 00000360: PUSH0 00000361: REVERT 00000362: JUMPDEST 00000363: POP 00000364: PUSH2 0x016e 00000367: PUSH2 0x0371 0000036a: CALLDATASIZE 0000036b: PUSH1 0x04 0000036d: PUSH2 0x1483 00000370: JUMP 00000371: JUMPDEST 00000372: PUSH1 0x02 00000374: PUSH1 0x20 00000376: MSTORE 00000377: PUSH0 00000378: SWAP1 00000379: DUP2 0000037a: MSTORE 0000037b: PUSH1 0x40 0000037d: SWAP1 0000037e: KECCAK256 0000037f: SLOAD 00000380: DUP2 00000381: JUMP 00000382: JUMPDEST 00000383: CALLVALUE 00000384: DUP1 00000385: ISZERO 00000386: PUSH2 0x038d 00000389: JUMPI 0000038a: PUSH0 0000038b: PUSH0 0000038c: REVERT 0000038d: JUMPDEST 0000038e: POP 0000038f: PUSH2 0x0306 00000392: PUSH1 0x40 00000394: DUP2 00000395: JUMP 00000396: JUMPDEST 00000397: CALLVALUE 00000398: DUP1 00000399: ISZERO 0000039a: PUSH2 0x03a1 0000039d: JUMPI 0000039e: PUSH0 0000039f: PUSH0 000003a0: REVERT 000003a1: JUMPDEST 000003a2: POP 000003a3: PUSH2 0x025f 000003a6: PUSH32 0x000000000000000000000000a45aca8604a73d80c551faad6355a5c3a5565ec6 000003c7: DUP2 000003c8: JUMP 000003c9: JUMPDEST 000003ca: CALLVALUE 000003cb: DUP1 000003cc: ISZERO 000003cd: PUSH2 0x03d4 000003d0: JUMPI 000003d1: PUSH0 000003d2: PUSH0 000003d3: REVERT 000003d4: JUMPDEST 000003d5: POP 000003d6: PUSH2 0x0306 000003d9: PUSH1 0x20 000003db: DUP2 000003dc: JUMP 000003dd: JUMPDEST 000003de: CALLVALUE 000003df: DUP1 000003e0: ISZERO 000003e1: PUSH2 0x03e8 000003e4: JUMPI 000003e5: PUSH0 000003e6: PUSH0 000003e7: REVERT 000003e8: JUMPDEST 000003e9: POP 000003ea: PUSH2 0x025f 000003ed: PUSH2 0x03f7 000003f0: CALLDATASIZE 000003f1: PUSH1 0x04 000003f3: PUSH2 0x1483 000003f6: JUMP 000003f7: JUMPDEST 000003f8: PUSH1 0x09 000003fa: PUSH1 0x20 000003fc: MSTORE 000003fd: PUSH0 000003fe: SWAP1 000003ff: DUP2 00000400: MSTORE 00000401: PUSH1 0x40 00000403: SWAP1 00000404: KECCAK256 00000405: SLOAD 00000406: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000041b: AND 0000041c: DUP2 0000041d: JUMP 0000041e: JUMPDEST 0000041f: CALLVALUE 00000420: DUP1 00000421: ISZERO 00000422: PUSH2 0x0429 00000425: JUMPI 00000426: PUSH0 00000427: PUSH0 00000428: REVERT 00000429: JUMPDEST 0000042a: POP 0000042b: PUSH2 0x025f 0000042e: PUSH32 0x0000000000000000000000006818809eefce719e480a7526d76bd3e561526b46 0000044f: DUP2 00000450: JUMP 00000451: JUMPDEST 00000452: CALLVALUE 00000453: DUP1 00000454: ISZERO 00000455: PUSH2 0x045c 00000458: JUMPI 00000459: PUSH0 0000045a: PUSH0 0000045b: REVERT 0000045c: JUMPDEST 0000045d: POP 0000045e: PUSH1 0x05 00000460: SLOAD 00000461: PUSH0 00000462: SWAP1 00000463: DUP2 00000464: MSTORE 00000465: PUSH1 0x06 00000467: PUSH1 0x20 00000469: MSTORE 0000046a: PUSH1 0x40 0000046c: SWAP1 0000046d: KECCAK256 0000046e: SLOAD 0000046f: PUSH2 0x016e 00000472: JUMP 00000473: JUMPDEST 00000474: PUSH0 00000475: CALLER 00000476: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000048b: PUSH32 0x0000000000000000000000006818809eefce719e480a7526d76bd3e561526b46 000004ac: AND 000004ad: EQ 000004ae: PUSH2 0x04e3 000004b1: JUMPI 000004b2: PUSH1 0x40 000004b4: MLOAD 000004b5: PUSH32 0x8247bd8000000000000000000000000000000000000000000000000000000000 000004d6: DUP2 000004d7: MSTORE 000004d8: PUSH1 0x04 000004da: ADD 000004db: PUSH1 0x40 000004dd: MLOAD 000004de: DUP1 000004df: SWAP2 000004e0: SUB 000004e1: SWAP1 000004e2: REVERT 000004e3: JUMPDEST 000004e4: PUSH1 0x01 000004e6: SLOAD 000004e7: PUSH1 0xff 000004e9: AND 000004ea: ISZERO 000004eb: PUSH2 0x0520 000004ee: JUMPI 000004ef: PUSH1 0x40 000004f1: MLOAD 000004f2: PUSH32 0x924b372700000000000000000000000000000000000000000000000000000000 00000513: DUP2 00000514: MSTORE 00000515: PUSH1 0x04 00000517: ADD 00000518: PUSH1 0x40 0000051a: MLOAD 0000051b: DUP1 0000051c: SWAP2 0000051d: SUB 0000051e: SWAP1 0000051f: REVERT 00000520: JUMPDEST 00000521: PUSH16 0xffffffffffffffffffffffffffffffff 00000532: DUP4 00000533: LT 00000534: PUSH2 0x0569 00000537: JUMPI 00000538: PUSH1 0x40 0000053a: MLOAD 0000053b: PUSH32 0x428243e200000000000000000000000000000000000000000000000000000000 0000055c: DUP2 0000055d: MSTORE 0000055e: PUSH1 0x04 00000560: ADD 00000561: PUSH1 0x40 00000563: MLOAD 00000564: DUP1 00000565: SWAP2 00000566: SUB 00000567: SWAP1 00000568: REVERT 00000569: JUMPDEST 0000056a: PUSH0 0000056b: PUSH32 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001 0000058c: PUSH32 0x0adeaec0e1538a417bf70421cc25c90da5269c128097beb58d8cbc22dadfae43 000005ad: PUSH0 000005ae: PUSH0 000005af: DUP2 000005b0: SLOAD 000005b1: PUSH2 0x05b9 000005b4: SWAP1 000005b5: PUSH2 0x18a4 000005b8: JUMP 000005b9: JUMPDEST 000005ba: SWAP2 000005bb: DUP3 000005bc: SWAP1 000005bd: SSTORE 000005be: POP 000005bf: PUSH1 0x40 000005c1: DUP1 000005c2: MLOAD 000005c3: PUSH1 0x20 000005c5: DUP2 000005c6: ADD 000005c7: SWAP4 000005c8: SWAP1 000005c9: SWAP4 000005ca: MSTORE 000005cb: DUP3 000005cc: ADD 000005cd: MSTORE 000005ce: PUSH1 0x60 000005d0: ADD 000005d1: PUSH1 0x40 000005d3: MLOAD 000005d4: PUSH1 0x20 000005d6: DUP2 000005d7: DUP4 000005d8: SUB 000005d9: SUB 000005da: DUP2 000005db: MSTORE 000005dc: SWAP1 000005dd: PUSH1 0x40 000005df: MSTORE 000005e0: DUP1 000005e1: MLOAD 000005e2: SWAP1 000005e3: PUSH1 0x20 000005e5: ADD 000005e6: KECCAK256 000005e7: PUSH0 000005e8: SHR 000005e9: PUSH2 0x05f2 000005ec: SWAP2 000005ed: SWAP1 000005ee: PUSH2 0x1908 000005f1: JUMP 000005f2: JUMPDEST 000005f3: PUSH0 000005f4: DUP2 000005f5: DUP2 000005f6: MSTORE 000005f7: PUSH1 0x09 000005f9: PUSH1 0x20 000005fb: SWAP1 000005fc: DUP2 000005fd: MSTORE 000005fe: PUSH1 0x40 00000600: SWAP2 00000601: DUP3 00000602: SWAP1 00000603: KECCAK256 00000604: DUP1 00000605: SLOAD 00000606: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000627: AND 00000628: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000063d: DUP11 0000063e: AND 0000063f: OR 00000640: SWAP1 00000641: SSTORE 00000642: DUP2 00000643: MLOAD 00000644: PUSH1 0x60 00000646: DUP2 00000647: ADD 00000648: DUP4 00000649: MSTORE 0000064a: DUP8 0000064b: DUP2 0000064c: MSTORE 0000064d: SWAP1 0000064e: DUP2 0000064f: ADD 00000650: DUP4 00000651: SWAP1 00000652: MSTORE 00000653: DUP1 00000654: DUP3 00000655: ADD 00000656: DUP7 00000657: SWAP1 00000658: MSTORE 00000659: SWAP1 0000065a: MLOAD 0000065b: PUSH32 0x20cf0a3700000000000000000000000000000000000000000000000000000000 0000067c: DUP2 0000067d: MSTORE 0000067e: SWAP2 0000067f: SWAP3 00000680: POP 00000681: PUSH20 0xe393dd7287db9982e6f845824854baf8b8e823af 00000696: SWAP2 00000697: PUSH4 0x20cf0a37 0000069c: SWAP2 0000069d: PUSH2 0x06a8 000006a0: SWAP2 000006a1: PUSH1 0x04 000006a3: ADD 000006a4: PUSH2 0x191b 000006a7: JUMP 000006a8: JUMPDEST 000006a9: PUSH1 0x20 000006ab: PUSH1 0x40 000006ad: MLOAD 000006ae: DUP1 000006af: DUP4 000006b0: SUB 000006b1: DUP2 000006b2: DUP7 000006b3: GAS 000006b4: DELEGATECALL 000006b5: ISZERO 000006b6: DUP1 000006b7: ISZERO 000006b8: PUSH2 0x06c3 000006bb: JUMPI 000006bc: RETURNDATASIZE 000006bd: PUSH0 000006be: PUSH0 000006bf: RETURNDATACOPY 000006c0: RETURNDATASIZE 000006c1: PUSH0 000006c2: REVERT 000006c3: JUMPDEST 000006c4: POP 000006c5: POP 000006c6: POP 000006c7: POP 000006c8: PUSH1 0x40 000006ca: MLOAD 000006cb: RETURNDATASIZE 000006cc: PUSH1 0x1f 000006ce: NOT 000006cf: PUSH1 0x1f 000006d1: DUP3 000006d2: ADD 000006d3: AND 000006d4: DUP3 000006d5: ADD 000006d6: DUP1 000006d7: PUSH1 0x40 000006d9: MSTORE 000006da: POP 000006db: DUP2 000006dc: ADD 000006dd: SWAP1 000006de: PUSH2 0x06e7 000006e1: SWAP2 000006e2: SWAP1 000006e3: PUSH2 0x194b 000006e6: JUMP 000006e7: JUMPDEST 000006e8: SWAP2 000006e9: POP 000006ea: PUSH2 0x06f2 000006ed: DUP3 000006ee: PUSH2 0x0e8e 000006f1: JUMP 000006f2: JUMPDEST 000006f3: POP 000006f4: PUSH2 0x06fd 000006f7: CALLER 000006f8: DUP6 000006f9: PUSH2 0x0f8d 000006fc: JUMP 000006fd: JUMPDEST 000006fe: PUSH1 0x40 00000700: DUP1 00000701: MLOAD 00000702: DUP4 00000703: DUP2 00000704: MSTORE 00000705: PUSH1 0x20 00000707: DUP2 00000708: ADD 00000709: DUP4 0000070a: SWAP1 0000070b: MSTORE 0000070c: SWAP1 0000070d: DUP2 0000070e: ADD 0000070f: DUP6 00000710: SWAP1 00000711: MSTORE 00000712: PUSH1 0x60 00000714: DUP2 00000715: ADD 00000716: DUP5 00000717: SWAP1 00000718: MSTORE 00000719: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000072e: DUP7 0000072f: AND 00000730: SWAP1 00000731: PUSH32 0xe3b53cd1a44fbf11535e145d80b8ef1ed6d57a73bf5daa7e939b6b01657d6549 00000752: SWAP1 00000753: PUSH1 0x80 00000755: ADD 00000756: PUSH1 0x40 00000758: MLOAD 00000759: DUP1 0000075a: SWAP2 0000075b: SUB 0000075c: SWAP1 0000075d: LOG2 0000075e: POP 0000075f: SWAP4 00000760: SWAP3 00000761: POP 00000762: POP 00000763: POP 00000764: JUMP 00000765: JUMPDEST 00000766: DUP2 00000767: DUP2 00000768: DUP2 00000769: PUSH0 0000076a: ADD 0000076b: MLOAD 0000076c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000781: AND 00000782: CALLER 00000783: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000798: AND 00000799: EQ 0000079a: PUSH2 0x07cf 0000079d: JUMPI 0000079e: PUSH1 0x40 000007a0: MLOAD 000007a1: PUSH32 0x1a7c48e500000000000000000000000000000000000000000000000000000000 000007c2: DUP2 000007c3: MSTORE 000007c4: PUSH1 0x04 000007c6: ADD 000007c7: PUSH1 0x40 000007c9: MLOAD 000007ca: DUP1 000007cb: SWAP2 000007cc: SUB 000007cd: SWAP1 000007ce: REVERT 000007cf: JUMPDEST 000007d0: PUSH32 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001 000007f1: DUP3 000007f2: PUSH32 0x0adeaec0e1538a417bf70421cc25c90da5269c128097beb58d8cbc22dadfae43 00000813: PUSH1 0x40 00000815: MLOAD 00000816: PUSH1 0x20 00000818: ADD 00000819: PUSH2 0x0823 0000081c: SWAP3 0000081d: SWAP2 0000081e: SWAP1 0000081f: PUSH2 0x1962 00000822: JUMP 00000823: JUMPDEST 00000824: PUSH1 0x40 00000826: MLOAD 00000827: PUSH1 0x20 00000829: DUP2 0000082a: DUP4 0000082b: SUB 0000082c: SUB 0000082d: DUP2 0000082e: MSTORE 0000082f: SWAP1 00000830: PUSH1 0x40 00000832: MSTORE 00000833: DUP1 00000834: MLOAD 00000835: SWAP1 00000836: PUSH1 0x20 00000838: ADD 00000839: KECCAK256 0000083a: PUSH0 0000083b: SHR 0000083c: PUSH2 0x0845 0000083f: SWAP2 00000840: SWAP1 00000841: PUSH2 0x1908 00000844: JUMP 00000845: JUMPDEST 00000846: PUSH2 0x084e 00000849: DUP3 0000084a: PUSH2 0x0fca 0000084d: JUMP 0000084e: JUMPDEST 0000084f: EQ 00000850: PUSH2 0x0885 00000853: JUMPI 00000854: PUSH1 0x40 00000856: MLOAD 00000857: PUSH32 0xef6daeb000000000000000000000000000000000000000000000000000000000 00000878: DUP2 00000879: MSTORE 0000087a: PUSH1 0x04 0000087c: ADD 0000087d: PUSH1 0x40 0000087f: MLOAD 00000880: DUP1 00000881: SWAP2 00000882: SUB 00000883: SWAP1 00000884: REVERT 00000885: JUMPDEST 00000886: PUSH1 0x20 00000888: PUSH2 0x0890 0000088b: DUP3 0000088c: PUSH2 0x0fdf 0000088f: JUMP 00000890: JUMPDEST 00000891: GT 00000892: DUP1 00000893: PUSH2 0x08a4 00000896: JUMPI 00000897: POP 00000898: PUSH1 0x20 0000089a: PUSH2 0x08a2 0000089d: DUP3 0000089e: PUSH2 0x0fed 000008a1: JUMP 000008a2: JUMPDEST 000008a3: GT 000008a4: JUMPDEST 000008a5: ISZERO 000008a6: PUSH2 0x08db 000008a9: JUMPI 000008aa: PUSH1 0x40 000008ac: MLOAD 000008ad: PUSH32 0xc21cc8e200000000000000000000000000000000000000000000000000000000 000008ce: DUP2 000008cf: MSTORE 000008d0: PUSH1 0x04 000008d2: ADD 000008d3: PUSH1 0x40 000008d5: MLOAD 000008d6: DUP1 000008d7: SWAP2 000008d8: SUB 000008d9: SWAP1 000008da: REVERT 000008db: JUMPDEST 000008dc: PUSH2 0x08ec 000008df: PUSH2 0x08e7 000008e2: DUP3 000008e3: PUSH2 0x0ffb 000008e6: JUMP 000008e7: JUMPDEST 000008e8: PUSH2 0x1009 000008eb: JUMP 000008ec: JUMPDEST 000008ed: PUSH2 0x0922 000008f0: JUMPI 000008f1: PUSH1 0x40 000008f3: MLOAD 000008f4: PUSH32 0xfd3d3c4c00000000000000000000000000000000000000000000000000000000 00000915: DUP2 00000916: MSTORE 00000917: PUSH1 0x04 00000919: ADD 0000091a: PUSH1 0x40 0000091c: MLOAD 0000091d: DUP1 0000091e: SWAP2 0000091f: SUB 00000920: SWAP1 00000921: REVERT 00000922: JUMPDEST 00000923: PUSH32 0x0000000000000000000000006818809eefce719e480a7526d76bd3e561526b46 00000944: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000959: AND 0000095a: PUSH4 0xd7b0fef1 0000095f: PUSH1 0x40 00000961: MLOAD 00000962: DUP2 00000963: PUSH4 0xffffffff 00000968: AND 00000969: PUSH1 0xe0 0000096b: SHL 0000096c: DUP2 0000096d: MSTORE 0000096e: PUSH1 0x04 00000970: ADD 00000971: PUSH1 0x20 00000973: PUSH1 0x40 00000975: MLOAD 00000976: DUP1 00000977: DUP4 00000978: SUB 00000979: DUP2 0000097a: DUP7 0000097b: GAS 0000097c: STATICCALL 0000097d: ISZERO 0000097e: DUP1 0000097f: ISZERO 00000980: PUSH2 0x098b 00000983: JUMPI 00000984: RETURNDATASIZE 00000985: PUSH0 00000986: PUSH0 00000987: RETURNDATACOPY 00000988: RETURNDATASIZE 00000989: PUSH0 0000098a: REVERT 0000098b: JUMPDEST 0000098c: POP 0000098d: POP 0000098e: POP 0000098f: POP 00000990: PUSH1 0x40 00000992: MLOAD 00000993: RETURNDATASIZE 00000994: PUSH1 0x1f 00000996: NOT 00000997: PUSH1 0x1f 00000999: DUP3 0000099a: ADD 0000099b: AND 0000099c: DUP3 0000099d: ADD 0000099e: DUP1 0000099f: PUSH1 0x40 000009a1: MSTORE 000009a2: POP 000009a3: DUP2 000009a4: ADD 000009a5: SWAP1 000009a6: PUSH2 0x09af 000009a9: SWAP2 000009aa: SWAP1 000009ab: PUSH2 0x194b 000009ae: JUMP 000009af: JUMPDEST 000009b0: PUSH2 0x09b8 000009b3: DUP3 000009b4: PUSH2 0x108c 000009b7: JUMP 000009b8: JUMPDEST 000009b9: EQ 000009ba: PUSH2 0x09ef 000009bd: JUMPI 000009be: PUSH1 0x40 000009c0: MLOAD 000009c1: PUSH32 0xa6a7824400000000000000000000000000000000000000000000000000000000 000009e2: DUP2 000009e3: MSTORE 000009e4: PUSH1 0x04 000009e6: ADD 000009e7: PUSH1 0x40 000009e9: MLOAD 000009ea: DUP1 000009eb: SWAP2 000009ec: SUB 000009ed: SWAP1 000009ee: REVERT 000009ef: JUMPDEST 000009f0: PUSH32 0x000000000000000000000000022891f938ae7fdc8ab9ead0fbf50aba8c897d6d 00000a11: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a26: AND 00000a27: PUSH4 0xc9219a7a 00000a2c: DUP5 00000a2d: PUSH0 00000a2e: ADD 00000a2f: MLOAD 00000a30: DUP6 00000a31: PUSH1 0x20 00000a33: ADD 00000a34: MLOAD 00000a35: DUP7 00000a36: PUSH1 0x40 00000a38: ADD 00000a39: MLOAD 00000a3a: DUP8 00000a3b: PUSH1 0x60 00000a3d: ADD 00000a3e: MLOAD 00000a3f: PUSH1 0x40 00000a41: MLOAD 00000a42: DUP6 00000a43: PUSH4 0xffffffff 00000a48: AND 00000a49: PUSH1 0xe0 00000a4b: SHL 00000a4c: DUP2 00000a4d: MSTORE 00000a4e: PUSH1 0x04 00000a50: ADD 00000a51: PUSH2 0x0a5d 00000a54: SWAP5 00000a55: SWAP4 00000a56: SWAP3 00000a57: SWAP2 00000a58: SWAP1 00000a59: PUSH2 0x1a3b 00000a5c: JUMP 00000a5d: JUMPDEST 00000a5e: PUSH1 0x20 00000a60: PUSH1 0x40 00000a62: MLOAD 00000a63: DUP1 00000a64: DUP4 00000a65: SUB 00000a66: DUP2 00000a67: PUSH0 00000a68: DUP8 00000a69: GAS 00000a6a: CALL 00000a6b: ISZERO 00000a6c: DUP1 00000a6d: ISZERO 00000a6e: PUSH2 0x0a79 00000a71: JUMPI 00000a72: RETURNDATASIZE 00000a73: PUSH0 00000a74: PUSH0 00000a75: RETURNDATACOPY 00000a76: RETURNDATASIZE 00000a77: PUSH0 00000a78: REVERT 00000a79: JUMPDEST 00000a7a: POP 00000a7b: POP 00000a7c: POP 00000a7d: POP 00000a7e: PUSH1 0x40 00000a80: MLOAD 00000a81: RETURNDATASIZE 00000a82: PUSH1 0x1f 00000a84: NOT 00000a85: PUSH1 0x1f 00000a87: DUP3 00000a88: ADD 00000a89: AND 00000a8a: DUP3 00000a8b: ADD 00000a8c: DUP1 00000a8d: PUSH1 0x40 00000a8f: MSTORE 00000a90: POP 00000a91: DUP2 00000a92: ADD 00000a93: SWAP1 00000a94: PUSH2 0x0a9d 00000a97: SWAP2 00000a98: SWAP1 00000a99: PUSH2 0x1a97 00000a9c: JUMP 00000a9d: JUMPDEST 00000a9e: PUSH2 0x0ad3 00000aa1: JUMPI 00000aa2: PUSH1 0x40 00000aa4: MLOAD 00000aa5: PUSH32 0x09bde33900000000000000000000000000000000000000000000000000000000 00000ac6: DUP2 00000ac7: MSTORE 00000ac8: PUSH1 0x04 00000aca: ADD 00000acb: PUSH1 0x40 00000acd: MLOAD 00000ace: DUP1 00000acf: SWAP2 00000ad0: SUB 00000ad1: SWAP1 00000ad2: REVERT 00000ad3: JUMPDEST 00000ad4: PUSH2 0x0ae4 00000ad7: PUSH2 0x0adf 00000ada: DUP5 00000adb: PUSH2 0x109a 00000ade: JUMP 00000adf: JUMPDEST 00000ae0: PUSH2 0x10a8 00000ae3: JUMP 00000ae4: JUMPDEST 00000ae5: PUSH2 0x0af5 00000ae8: PUSH2 0x0af0 00000aeb: DUP5 00000aec: PUSH2 0x1128 00000aef: JUMP 00000af0: JUMPDEST 00000af1: PUSH2 0x0e8e 00000af4: JUMP 00000af5: JUMPDEST 00000af6: POP 00000af7: DUP4 00000af8: MLOAD 00000af9: PUSH2 0x0b0a 00000afc: SWAP1 00000afd: PUSH2 0x0b05 00000b00: DUP6 00000b01: PUSH2 0x1135 00000b04: JUMP 00000b05: JUMPDEST 00000b06: PUSH2 0x1143 00000b09: JUMP 00000b0a: JUMPDEST 00000b0b: DUP4 00000b0c: MLOAD 00000b0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b22: AND 00000b23: PUSH32 0x75e161b3e824b114fc1a33274bd7091918dd4e639cede50b78b15a4eea956a21 00000b44: PUSH2 0x0b4c 00000b47: DUP6 00000b48: PUSH2 0x1135 00000b4b: JUMP 00000b4c: JUMPDEST 00000b4d: PUSH2 0x0b55 00000b50: DUP7 00000b51: PUSH2 0x109a 00000b54: JUMP 00000b55: JUMPDEST 00000b56: PUSH2 0x0b5e 00000b59: DUP8 00000b5a: PUSH2 0x1128 00000b5d: JUMP 00000b5e: JUMPDEST 00000b5f: PUSH1 0x40 00000b61: DUP1 00000b62: MLOAD 00000b63: SWAP4 00000b64: DUP5 00000b65: MSTORE 00000b66: PUSH1 0x20 00000b68: DUP5 00000b69: ADD 00000b6a: SWAP3 00000b6b: SWAP1 00000b6c: SWAP3 00000b6d: MSTORE 00000b6e: SWAP1 00000b6f: DUP3 00000b70: ADD 00000b71: MSTORE 00000b72: PUSH1 0x60 00000b74: ADD 00000b75: PUSH1 0x40 00000b77: MLOAD 00000b78: DUP1 00000b79: SWAP2 00000b7a: SUB 00000b7b: SWAP1 00000b7c: LOG2 00000b7d: POP 00000b7e: POP 00000b7f: POP 00000b80: POP 00000b81: JUMP 00000b82: JUMPDEST 00000b83: PUSH0 00000b84: PUSH2 0x0b8c 00000b87: DUP3 00000b88: PUSH2 0x0ffb 00000b8b: JUMP 00000b8c: JUMPDEST 00000b8d: PUSH0 00000b8e: DUP2 00000b8f: DUP2 00000b90: MSTORE 00000b91: PUSH1 0x09 00000b93: PUSH1 0x20 00000b95: MSTORE 00000b96: PUSH1 0x40 00000b98: SWAP1 00000b99: KECCAK256 00000b9a: SLOAD 00000b9b: SWAP1 00000b9c: SWAP2 00000b9d: POP 00000b9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bb3: AND 00000bb4: CALLER 00000bb5: EQ 00000bb6: PUSH2 0x0beb 00000bb9: JUMPI 00000bba: PUSH1 0x40 00000bbc: MLOAD 00000bbd: PUSH32 0x0fb8e27800000000000000000000000000000000000000000000000000000000 00000bde: DUP2 00000bdf: MSTORE 00000be0: PUSH1 0x04 00000be2: ADD 00000be3: PUSH1 0x40 00000be5: MLOAD 00000be6: DUP1 00000be7: SWAP2 00000be8: SUB 00000be9: SWAP1 00000bea: REVERT 00000beb: JUMPDEST 00000bec: PUSH32 0x000000000000000000000000a45aca8604a73d80c551faad6355a5c3a5565ec6 00000c0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c22: AND 00000c23: PUSH4 0x5fe8c13b 00000c28: DUP4 00000c29: PUSH0 00000c2a: ADD 00000c2b: MLOAD 00000c2c: DUP5 00000c2d: PUSH1 0x20 00000c2f: ADD 00000c30: MLOAD 00000c31: DUP6 00000c32: PUSH1 0x40 00000c34: ADD 00000c35: MLOAD 00000c36: DUP7 00000c37: PUSH1 0x60 00000c39: ADD 00000c3a: MLOAD 00000c3b: PUSH1 0x40 00000c3d: MLOAD 00000c3e: DUP6 00000c3f: PUSH4 0xffffffff 00000c44: AND 00000c45: PUSH1 0xe0 00000c47: SHL 00000c48: DUP2 00000c49: MSTORE 00000c4a: PUSH1 0x04 00000c4c: ADD 00000c4d: PUSH2 0x0c59 00000c50: SWAP5 00000c51: SWAP4 00000c52: SWAP3 00000c53: SWAP2 00000c54: SWAP1 00000c55: PUSH2 0x1abd 00000c58: JUMP 00000c59: JUMPDEST 00000c5a: PUSH1 0x20 00000c5c: PUSH1 0x40 00000c5e: MLOAD 00000c5f: DUP1 00000c60: DUP4 00000c61: SUB 00000c62: DUP2 00000c63: PUSH0 00000c64: DUP8 00000c65: GAS 00000c66: CALL 00000c67: ISZERO 00000c68: DUP1 00000c69: ISZERO 00000c6a: PUSH2 0x0c75 00000c6d: JUMPI 00000c6e: RETURNDATASIZE 00000c6f: PUSH0 00000c70: PUSH0 00000c71: RETURNDATACOPY 00000c72: RETURNDATASIZE 00000c73: PUSH0 00000c74: REVERT 00000c75: JUMPDEST 00000c76: POP 00000c77: POP 00000c78: POP 00000c79: POP 00000c7a: PUSH1 0x40 00000c7c: MLOAD 00000c7d: RETURNDATASIZE 00000c7e: PUSH1 0x1f 00000c80: NOT 00000c81: PUSH1 0x1f 00000c83: DUP3 00000c84: ADD 00000c85: AND 00000c86: DUP3 00000c87: ADD 00000c88: DUP1 00000c89: PUSH1 0x40 00000c8b: MSTORE 00000c8c: POP 00000c8d: DUP2 00000c8e: ADD 00000c8f: SWAP1 00000c90: PUSH2 0x0c99 00000c93: SWAP2 00000c94: SWAP1 00000c95: PUSH2 0x1a97 00000c98: JUMP 00000c99: JUMPDEST 00000c9a: PUSH2 0x0ccf 00000c9d: JUMPI 00000c9e: PUSH1 0x40 00000ca0: MLOAD 00000ca1: PUSH32 0x09bde33900000000000000000000000000000000000000000000000000000000 00000cc2: DUP2 00000cc3: MSTORE 00000cc4: PUSH1 0x04 00000cc6: ADD 00000cc7: PUSH1 0x40 00000cc9: MLOAD 00000cca: DUP1 00000ccb: SWAP2 00000ccc: SUB 00000ccd: SWAP1 00000cce: REVERT 00000ccf: JUMPDEST 00000cd0: PUSH2 0x0ce0 00000cd3: PUSH2 0x0cdb 00000cd6: DUP4 00000cd7: PUSH2 0x1128 00000cda: JUMP 00000cdb: JUMPDEST 00000cdc: PUSH2 0x11de 00000cdf: JUMP 00000ce0: JUMPDEST 00000ce1: PUSH2 0x0d16 00000ce4: JUMPI 00000ce5: PUSH1 0x40 00000ce7: MLOAD 00000ce8: PUSH32 0xc06789fa00000000000000000000000000000000000000000000000000000000 00000d09: DUP2 00000d0a: MSTORE 00000d0b: PUSH1 0x04 00000d0d: ADD 00000d0e: PUSH1 0x40 00000d10: MLOAD 00000d11: DUP1 00000d12: SWAP2 00000d13: SUB 00000d14: SWAP1 00000d15: REVERT 00000d16: JUMPDEST 00000d17: PUSH2 0x0d22 00000d1a: PUSH2 0x0adf 00000d1d: DUP4 00000d1e: PUSH2 0x109a 00000d21: JUMP 00000d22: JUMPDEST 00000d23: PUSH2 0x0d2f 00000d26: CALLER 00000d27: PUSH2 0x0b05 00000d2a: DUP5 00000d2b: PUSH2 0x1135 00000d2e: JUMP 00000d2f: JUMPDEST 00000d30: CALLER 00000d31: PUSH32 0xd2b3e868ae101106371f2bd93abc8d5a4de488b9fe47ed122c23625aa7172f13 00000d52: PUSH2 0x0d5a 00000d55: DUP5 00000d56: PUSH2 0x1128 00000d59: JUMP 00000d5a: JUMPDEST 00000d5b: PUSH2 0x0d63 00000d5e: DUP6 00000d5f: PUSH2 0x0ffb 00000d62: JUMP 00000d63: JUMPDEST 00000d64: PUSH2 0x0d6c 00000d67: DUP7 00000d68: PUSH2 0x1135 00000d6b: JUMP 00000d6c: JUMPDEST 00000d6d: PUSH1 0x40 00000d6f: DUP1 00000d70: MLOAD 00000d71: SWAP4 00000d72: DUP5 00000d73: MSTORE 00000d74: PUSH1 0x20 00000d76: DUP5 00000d77: ADD 00000d78: SWAP3 00000d79: SWAP1 00000d7a: SWAP3 00000d7b: MSTORE 00000d7c: SWAP1 00000d7d: DUP3 00000d7e: ADD 00000d7f: MSTORE 00000d80: PUSH1 0x60 00000d82: ADD 00000d83: PUSH1 0x40 00000d85: MLOAD 00000d86: DUP1 00000d87: SWAP2 00000d88: SUB 00000d89: SWAP1 00000d8a: LOG2 00000d8b: POP 00000d8c: POP 00000d8d: JUMP 00000d8e: JUMPDEST 00000d8f: CALLER 00000d90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000da5: PUSH32 0x0000000000000000000000006818809eefce719e480a7526d76bd3e561526b46 00000dc6: AND 00000dc7: EQ 00000dc8: PUSH2 0x0dfd 00000dcb: JUMPI 00000dcc: PUSH1 0x40 00000dce: MLOAD 00000dcf: PUSH32 0x8247bd8000000000000000000000000000000000000000000000000000000000 00000df0: DUP2 00000df1: MSTORE 00000df2: PUSH1 0x04 00000df4: ADD 00000df5: PUSH1 0x40 00000df7: MLOAD 00000df8: DUP1 00000df9: SWAP2 00000dfa: SUB 00000dfb: SWAP1 00000dfc: REVERT 00000dfd: JUMPDEST 00000dfe: PUSH1 0x01 00000e00: SLOAD 00000e01: PUSH1 0xff 00000e03: AND 00000e04: ISZERO 00000e05: PUSH2 0x0e3a 00000e08: JUMPI 00000e09: PUSH1 0x40 00000e0b: MLOAD 00000e0c: PUSH32 0x924b372700000000000000000000000000000000000000000000000000000000 00000e2d: DUP2 00000e2e: MSTORE 00000e2f: PUSH1 0x04 00000e31: ADD 00000e32: PUSH1 0x40 00000e34: MLOAD 00000e35: DUP1 00000e36: SWAP2 00000e37: SUB 00000e38: SWAP1 00000e39: REVERT 00000e3a: JUMPDEST 00000e3b: PUSH1 0x01 00000e3d: DUP1 00000e3e: SLOAD 00000e3f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000e60: AND 00000e61: DUP2 00000e62: OR 00000e63: SWAP1 00000e64: SSTORE 00000e65: PUSH1 0x40 00000e67: MLOAD 00000e68: PUSH32 0xf9dc79d7254099fdf1f86b15c91deac3bf8883e4f340ebef6e3c6b870cc315b3 00000e89: SWAP1 00000e8a: PUSH0 00000e8b: SWAP1 00000e8c: LOG1 00000e8d: JUMP 00000e8e: JUMPDEST 00000e8f: PUSH0 00000e90: PUSH2 0x0e9a 00000e93: PUSH1 0x04 00000e95: DUP4 00000e96: PUSH2 0x11f5 00000e99: JUMP 00000e9a: JUMPDEST 00000e9b: PUSH1 0x05 00000e9d: SLOAD 00000e9e: SWAP1 00000e9f: SWAP2 00000ea0: POP 00000ea1: PUSH1 0x20 00000ea3: LT 00000ea4: ISZERO 00000ea5: PUSH2 0x0eda 00000ea8: JUMPI 00000ea9: PUSH1 0x40 00000eab: MLOAD 00000eac: PUSH32 0x221f404100000000000000000000000000000000000000000000000000000000 00000ecd: DUP2 00000ece: MSTORE 00000ecf: PUSH1 0x04 00000ed1: ADD 00000ed2: PUSH1 0x40 00000ed4: MLOAD 00000ed5: DUP1 00000ed6: SWAP2 00000ed7: SUB 00000ed8: SWAP1 00000ed9: REVERT 00000eda: JUMPDEST 00000edb: PUSH1 0x03 00000edd: SLOAD 00000ede: PUSH0 00000edf: SWAP1 00000ee0: PUSH1 0x40 00000ee2: SWAP1 00000ee3: PUSH2 0x0ef3 00000ee6: SWAP1 00000ee7: PUSH4 0xffffffff 00000eec: AND 00000eed: PUSH1 0x01 00000eef: PUSH2 0x1b0d 00000ef2: JUMP 00000ef3: JUMPDEST 00000ef4: PUSH2 0x0efd 00000ef7: SWAP2 00000ef8: SWAP1 00000ef9: PUSH2 0x1b29 00000efc: JUMP 00000efd: JUMPDEST 00000efe: PUSH4 0xffffffff 00000f03: DUP2 00000f04: AND 00000f05: PUSH0 00000f06: DUP2 00000f07: DUP2 00000f08: MSTORE 00000f09: PUSH1 0x02 00000f0b: PUSH1 0x20 00000f0d: SWAP1 00000f0e: DUP2 00000f0f: MSTORE 00000f10: PUSH1 0x40 00000f12: SWAP2 00000f13: DUP3 00000f14: SWAP1 00000f15: KECCAK256 00000f16: DUP7 00000f17: SWAP1 00000f18: SSTORE 00000f19: PUSH1 0x03 00000f1b: DUP1 00000f1c: SLOAD 00000f1d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 00000f3e: AND 00000f3f: SWAP1 00000f40: SWAP4 00000f41: OR 00000f42: SWAP1 00000f43: SWAP3 00000f44: SSTORE 00000f45: PUSH1 0x04 00000f47: SLOAD 00000f48: DUP2 00000f49: MLOAD 00000f4a: SWAP1 00000f4b: DUP2 00000f4c: MSTORE 00000f4d: SWAP2 00000f4e: DUP3 00000f4f: ADD 00000f50: DUP7 00000f51: SWAP1 00000f52: MSTORE 00000f53: DUP2 00000f54: ADD 00000f55: DUP5 00000f56: SWAP1 00000f57: MSTORE 00000f58: SWAP1 00000f59: SWAP2 00000f5a: POP 00000f5b: PUSH32 0xcb249c8292372bd11f567786635483fca9e635030baafca55ff1a8940141d221 00000f7c: SWAP1 00000f7d: PUSH1 0x60 00000f7f: ADD 00000f80: PUSH1 0x40 00000f82: MLOAD 00000f83: DUP1 00000f84: SWAP2 00000f85: SUB 00000f86: SWAP1 00000f87: LOG1 00000f88: POP 00000f89: SWAP2 00000f8a: SWAP1 00000f8b: POP 00000f8c: JUMP 00000f8d: JUMPDEST 00000f8e: DUP1 00000f8f: CALLVALUE 00000f90: EQ 00000f91: PUSH2 0x0fc6 00000f94: JUMPI 00000f95: PUSH1 0x40 00000f97: MLOAD 00000f98: PUSH32 0x1101129400000000000000000000000000000000000000000000000000000000 00000fb9: DUP2 00000fba: MSTORE 00000fbb: PUSH1 0x04 00000fbd: ADD 00000fbe: PUSH1 0x40 00000fc0: MLOAD 00000fc1: DUP1 00000fc2: SWAP2 00000fc3: SUB 00000fc4: SWAP1 00000fc5: REVERT 00000fc6: JUMPDEST 00000fc7: POP 00000fc8: POP 00000fc9: JUMP 00000fca: JUMPDEST 00000fcb: PUSH1 0x60 00000fcd: DUP2 00000fce: ADD 00000fcf: MLOAD 00000fd0: PUSH0 00000fd1: SWAP1 00000fd2: PUSH1 0x07 00000fd4: JUMPDEST 00000fd5: PUSH1 0x20 00000fd7: MUL 00000fd8: ADD 00000fd9: MLOAD 00000fda: SWAP3 00000fdb: SWAP2 00000fdc: POP 00000fdd: POP 00000fde: JUMP 00000fdf: JUMPDEST 00000fe0: PUSH1 0x60 00000fe2: DUP2 00000fe3: ADD 00000fe4: MLOAD 00000fe5: PUSH0 00000fe6: SWAP1 00000fe7: PUSH1 0x04 00000fe9: PUSH2 0x0fd4 00000fec: JUMP 00000fed: JUMPDEST 00000fee: PUSH1 0x60 00000ff0: DUP2 00000ff1: ADD 00000ff2: MLOAD 00000ff3: PUSH0 00000ff4: SWAP1 00000ff5: PUSH1 0x06 00000ff7: PUSH2 0x0fd4 00000ffa: JUMP 00000ffb: JUMPDEST 00000ffc: PUSH1 0x60 00000ffe: DUP2 00000fff: ADD 00001000: MLOAD 00001001: PUSH0 00001002: SWAP1 00001003: PUSH1 0x03 00001005: PUSH2 0x0fd4 00001008: JUMP 00001009: JUMPDEST 0000100a: PUSH0 0000100b: DUP2 0000100c: PUSH0 0000100d: SUB 0000100e: PUSH2 0x1018 00001011: JUMPI 00001012: POP 00001013: PUSH0 00001014: SWAP2 00001015: SWAP1 00001016: POP 00001017: JUMP 00001018: JUMPDEST 00001019: PUSH1 0x03 0000101b: SLOAD 0000101c: PUSH4 0xffffffff 00001021: AND 00001022: PUSH0 00001023: JUMPDEST 00001024: PUSH1 0x40 00001026: PUSH4 0xffffffff 0000102b: DUP3 0000102c: AND 0000102d: LT 0000102e: ISZERO 0000102f: PUSH2 0x1083 00001032: JUMPI 00001033: PUSH4 0xffffffff 00001038: DUP3 00001039: AND 0000103a: PUSH0 0000103b: SWAP1 0000103c: DUP2 0000103d: MSTORE 0000103e: PUSH1 0x02 00001040: PUSH1 0x20 00001042: MSTORE 00001043: PUSH1 0x40 00001045: SWAP1 00001046: KECCAK256 00001047: SLOAD 00001048: DUP5 00001049: SUB 0000104a: PUSH2 0x1057 0000104d: JUMPI 0000104e: POP 0000104f: PUSH1 0x01 00001051: SWAP4 00001052: SWAP3 00001053: POP 00001054: POP 00001055: POP 00001056: JUMP 00001057: JUMPDEST 00001058: PUSH1 0x40 0000105a: PUSH1 0x01 0000105c: PUSH2 0x1065 0000105f: DUP3 00001060: DUP6 00001061: PUSH2 0x1b0d 00001064: JUMP 00001065: JUMPDEST 00001066: PUSH2 0x106f 00001069: SWAP2 0000106a: SWAP1 0000106b: PUSH2 0x1b50 0000106e: JUMP 0000106f: JUMPDEST 00001070: PUSH2 0x1079 00001073: SWAP2 00001074: SWAP1 00001075: PUSH2 0x1b29 00001078: JUMP 00001079: JUMPDEST 0000107a: SWAP2 0000107b: POP 0000107c: PUSH1 0x01 0000107e: ADD 0000107f: PUSH2 0x1023 00001082: JUMP 00001083: JUMPDEST 00001084: POP 00001085: PUSH0 00001086: SWAP4 00001087: SWAP3 00001088: POP 00001089: POP 0000108a: POP 0000108b: JUMP 0000108c: JUMPDEST 0000108d: PUSH1 0x60 0000108f: DUP2 00001090: ADD 00001091: MLOAD 00001092: PUSH0 00001093: SWAP1 00001094: PUSH1 0x05 00001096: PUSH2 0x0fd4 00001099: JUMP 0000109a: JUMPDEST 0000109b: PUSH1 0x60 0000109d: DUP2 0000109e: ADD 0000109f: MLOAD 000010a0: PUSH0 000010a1: SWAP1 000010a2: PUSH1 0x01 000010a4: PUSH2 0x0fd4 000010a7: JUMP 000010a8: JUMPDEST 000010a9: PUSH0 000010aa: DUP2 000010ab: DUP2 000010ac: MSTORE 000010ad: PUSH1 0x08 000010af: PUSH1 0x20 000010b1: MSTORE 000010b2: PUSH1 0x40 000010b4: SWAP1 000010b5: KECCAK256 000010b6: SLOAD 000010b7: PUSH1 0xff 000010b9: AND 000010ba: ISZERO 000010bb: PUSH2 0x10f0 000010be: JUMPI 000010bf: PUSH1 0x40 000010c1: MLOAD 000010c2: PUSH32 0xb115d85700000000000000000000000000000000000000000000000000000000 000010e3: DUP2 000010e4: MSTORE 000010e5: PUSH1 0x04 000010e7: ADD 000010e8: PUSH1 0x40 000010ea: MLOAD 000010eb: DUP1 000010ec: SWAP2 000010ed: SUB 000010ee: SWAP1 000010ef: REVERT 000010f0: JUMPDEST 000010f1: PUSH0 000010f2: SWAP1 000010f3: DUP2 000010f4: MSTORE 000010f5: PUSH1 0x08 000010f7: PUSH1 0x20 000010f9: MSTORE 000010fa: PUSH1 0x40 000010fc: SWAP1 000010fd: KECCAK256 000010fe: DUP1 000010ff: SLOAD 00001100: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00001121: AND 00001122: PUSH1 0x01 00001124: OR 00001125: SWAP1 00001126: SSTORE 00001127: JUMP 00001128: JUMPDEST 00001129: PUSH1 0x60 0000112b: DUP2 0000112c: ADD 0000112d: MLOAD 0000112e: PUSH0 0000112f: SWAP1 00001130: DUP2 00001131: PUSH2 0x0fd4 00001134: JUMP 00001135: JUMPDEST 00001136: PUSH1 0x60 00001138: DUP2 00001139: ADD 0000113a: MLOAD 0000113b: PUSH0 0000113c: SWAP1 0000113d: PUSH1 0x02 0000113f: PUSH2 0x0fd4 00001142: JUMP 00001143: JUMPDEST 00001144: PUSH0 00001145: DUP3 00001146: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000115b: AND 0000115c: DUP3 0000115d: PUSH1 0x40 0000115f: MLOAD 00001160: PUSH0 00001161: PUSH1 0x40 00001163: MLOAD 00001164: DUP1 00001165: DUP4 00001166: SUB 00001167: DUP2 00001168: DUP6 00001169: DUP8 0000116a: GAS 0000116b: CALL 0000116c: SWAP3 0000116d: POP 0000116e: POP 0000116f: POP 00001170: RETURNDATASIZE 00001171: DUP1 00001172: PUSH0 00001173: DUP2 00001174: EQ 00001175: PUSH2 0x1199 00001178: JUMPI 00001179: PUSH1 0x40 0000117b: MLOAD 0000117c: SWAP2 0000117d: POP 0000117e: PUSH1 0x1f 00001180: NOT 00001181: PUSH1 0x3f 00001183: RETURNDATASIZE 00001184: ADD 00001185: AND 00001186: DUP3 00001187: ADD 00001188: PUSH1 0x40 0000118a: MSTORE 0000118b: RETURNDATASIZE 0000118c: DUP3 0000118d: MSTORE 0000118e: RETURNDATASIZE 0000118f: PUSH0 00001190: PUSH1 0x20 00001192: DUP5 00001193: ADD 00001194: RETURNDATACOPY 00001195: PUSH2 0x119e 00001198: JUMP 00001199: JUMPDEST 0000119a: PUSH1 0x60 0000119c: SWAP2 0000119d: POP 0000119e: JUMPDEST 0000119f: POP 000011a0: POP 000011a1: SWAP1 000011a2: POP 000011a3: DUP1 000011a4: PUSH2 0x11d9 000011a7: JUMPI 000011a8: PUSH1 0x40 000011aa: MLOAD 000011ab: PUSH32 0xd58db96200000000000000000000000000000000000000000000000000000000 000011cc: DUP2 000011cd: MSTORE 000011ce: PUSH1 0x04 000011d0: ADD 000011d1: PUSH1 0x40 000011d3: MLOAD 000011d4: DUP1 000011d5: SWAP2 000011d6: SUB 000011d7: SWAP1 000011d8: REVERT 000011d9: JUMPDEST 000011da: POP 000011db: POP 000011dc: POP 000011dd: JUMP 000011de: JUMPDEST 000011df: PUSH0 000011e0: DUP2 000011e1: DUP2 000011e2: MSTORE 000011e3: PUSH1 0x07 000011e5: PUSH1 0x20 000011e7: MSTORE 000011e8: PUSH1 0x40 000011ea: DUP2 000011eb: KECCAK256 000011ec: SLOAD 000011ed: ISZERO 000011ee: ISZERO 000011ef: JUMPDEST 000011f0: SWAP3 000011f1: SWAP2 000011f2: POP 000011f3: POP 000011f4: JUMP 000011f5: JUMPDEST 000011f6: PUSH0 000011f7: PUSH32 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001 00001218: DUP3 00001219: LT 0000121a: PUSH2 0x124f 0000121d: JUMPI 0000121e: PUSH1 0x40 00001220: MLOAD 00001221: PUSH32 0xc380a82e00000000000000000000000000000000000000000000000000000000 00001242: DUP2 00001243: MSTORE 00001244: PUSH1 0x04 00001246: ADD 00001247: PUSH1 0x40 00001249: MLOAD 0000124a: DUP1 0000124b: SWAP2 0000124c: SUB 0000124d: SWAP1 0000124e: REVERT 0000124f: JUMPDEST 00001250: DUP2 00001251: PUSH0 00001252: SUB 00001253: PUSH2 0x1288 00001256: JUMPI 00001257: PUSH1 0x40 00001259: MLOAD 0000125a: PUSH32 0x29691be200000000000000000000000000000000000000000000000000000000 0000127b: DUP2 0000127c: MSTORE 0000127d: PUSH1 0x04 0000127f: ADD 00001280: PUSH1 0x40 00001282: MLOAD 00001283: DUP1 00001284: SWAP2 00001285: SUB 00001286: SWAP1 00001287: REVERT 00001288: JUMPDEST 00001289: PUSH0 0000128a: DUP3 0000128b: DUP2 0000128c: MSTORE 0000128d: PUSH1 0x03 0000128f: DUP5 00001290: ADD 00001291: PUSH1 0x20 00001293: MSTORE 00001294: PUSH1 0x40 00001296: SWAP1 00001297: KECCAK256 00001298: SLOAD 00001299: ISZERO 0000129a: PUSH2 0x12cf 0000129d: JUMPI 0000129e: PUSH1 0x40 000012a0: MLOAD 000012a1: PUSH32 0x258a195a00000000000000000000000000000000000000000000000000000000 000012c2: DUP2 000012c3: MSTORE 000012c4: PUSH1 0x04 000012c6: ADD 000012c7: PUSH1 0x40 000012c9: MLOAD 000012ca: DUP1 000012cb: SWAP2 000012cc: SUB 000012cd: SWAP1 000012ce: REVERT 000012cf: JUMPDEST 000012d0: DUP3 000012d1: SLOAD 000012d2: PUSH1 0x01 000012d4: DUP1 000012d5: DUP6 000012d6: ADD 000012d7: SLOAD 000012d8: SWAP1 000012d9: PUSH2 0x12e3 000012dc: SWAP1 000012dd: DUP4 000012de: SWAP1 000012df: PUSH2 0x1b6c 000012e2: JUMP 000012e3: JUMPDEST 000012e4: PUSH2 0x12ee 000012e7: DUP3 000012e8: PUSH1 0x02 000012ea: PUSH2 0x1ca0 000012ed: JUMP 000012ee: JUMPDEST 000012ef: LT 000012f0: ISZERO 000012f1: PUSH2 0x1300 000012f4: JUMPI 000012f5: PUSH2 0x12fd 000012f8: DUP2 000012f9: PUSH2 0x18a4 000012fc: JUMP 000012fd: JUMPDEST 000012fe: SWAP1 000012ff: POP 00001300: JUMPDEST 00001301: PUSH1 0x01 00001303: DUP6 00001304: ADD 00001305: DUP2 00001306: SWAP1 00001307: SSTORE 00001308: DUP4 00001309: PUSH0 0000130a: JUMPDEST 0000130b: DUP3 0000130c: DUP2 0000130d: LT 0000130e: ISZERO 0000130f: PUSH2 0x13f1 00001312: JUMPI 00001313: DUP1 00001314: DUP5 00001315: SWAP1 00001316: SHR 00001317: PUSH1 0x01 00001319: AND 0000131a: PUSH1 0x01 0000131c: SUB 0000131d: PUSH2 0x13d6 00001320: JUMPI 00001321: PUSH1 0x40 00001323: DUP1 00001324: MLOAD 00001325: DUP1 00001326: DUP3 00001327: ADD 00001328: DUP3 00001329: MSTORE 0000132a: PUSH0 0000132b: DUP4 0000132c: DUP2 0000132d: MSTORE 0000132e: PUSH1 0x02 00001330: DUP11 00001331: ADD 00001332: PUSH1 0x20 00001334: SWAP1 00001335: DUP2 00001336: MSTORE 00001337: SWAP1 00001338: DUP4 00001339: SWAP1 0000133a: KECCAK256 0000133b: SLOAD 0000133c: DUP3 0000133d: MSTORE 0000133e: DUP2 0000133f: ADD 00001340: DUP5 00001341: SWAP1 00001342: MSTORE 00001343: SWAP1 00001344: MLOAD 00001345: PUSH32 0x561558fe00000000000000000000000000000000000000000000000000000000 00001366: DUP2 00001367: MSTORE 00001368: PUSH20 0x8ffda7ed8b4ad98c2c34f54b76821711f4a6f2c5 0000137d: SWAP2 0000137e: PUSH4 0x561558fe 00001383: SWAP2 00001384: PUSH2 0x1390 00001387: SWAP2 00001388: SWAP1 00001389: PUSH1 0x04 0000138b: ADD 0000138c: PUSH2 0x1cab 0000138f: JUMP 00001390: JUMPDEST 00001391: PUSH1 0x20 00001393: PUSH1 0x40 00001395: MLOAD 00001396: DUP1 00001397: DUP4 00001398: SUB 00001399: DUP2 0000139a: DUP7 0000139b: GAS 0000139c: DELEGATECALL 0000139d: ISZERO 0000139e: DUP1 0000139f: ISZERO 000013a0: PUSH2 0x13ab 000013a3: JUMPI 000013a4: RETURNDATASIZE 000013a5: PUSH0 000013a6: PUSH0 000013a7: RETURNDATACOPY 000013a8: RETURNDATASIZE 000013a9: PUSH0 000013aa: REVERT 000013ab: JUMPDEST 000013ac: POP 000013ad: POP 000013ae: POP 000013af: POP 000013b0: PUSH1 0x40 000013b2: MLOAD 000013b3: RETURNDATASIZE 000013b4: PUSH1 0x1f 000013b6: NOT 000013b7: PUSH1 0x1f 000013b9: DUP3 000013ba: ADD 000013bb: AND 000013bc: DUP3 000013bd: ADD 000013be: DUP1 000013bf: PUSH1 0x40 000013c1: MSTORE 000013c2: POP 000013c3: DUP2 000013c4: ADD 000013c5: SWAP1 000013c6: PUSH2 0x13cf 000013c9: SWAP2 000013ca: SWAP1 000013cb: PUSH2 0x194b 000013ce: JUMP 000013cf: JUMPDEST 000013d0: SWAP2 000013d1: POP 000013d2: PUSH2 0x13e9 000013d5: JUMP 000013d6: JUMPDEST 000013d7: PUSH0 000013d8: DUP2 000013d9: DUP2 000013da: MSTORE 000013db: PUSH1 0x02 000013dd: DUP9 000013de: ADD 000013df: PUSH1 0x20 000013e1: MSTORE 000013e2: PUSH1 0x40 000013e4: SWAP1 000013e5: KECCAK256 000013e6: DUP3 000013e7: SWAP1 000013e8: SSTORE 000013e9: JUMPDEST 000013ea: PUSH1 0x01 000013ec: ADD 000013ed: PUSH2 0x130a 000013f0: JUMP 000013f1: JUMPDEST 000013f2: POP 000013f3: PUSH2 0x13fb 000013f6: DUP4 000013f7: PUSH2 0x18a4 000013fa: JUMP 000013fb: JUMPDEST 000013fc: DUP1 000013fd: DUP8 000013fe: SSTORE 000013ff: PUSH0 00001400: SWAP3 00001401: DUP4 00001402: MSTORE 00001403: PUSH1 0x02 00001405: DUP8 00001406: ADD 00001407: PUSH1 0x20 00001409: SWAP1 0000140a: DUP2 0000140b: MSTORE 0000140c: PUSH1 0x40 0000140e: DUP1 0000140f: DUP6 00001410: KECCAK256 00001411: DUP5 00001412: SWAP1 00001413: SSTORE 00001414: SWAP7 00001415: DUP5 00001416: MSTORE 00001417: PUSH1 0x03 00001419: SWAP1 0000141a: SWAP8 0000141b: ADD 0000141c: SWAP1 0000141d: SWAP7 0000141e: MSTORE 0000141f: SWAP4 00001420: SWAP1 00001421: KECCAK256 00001422: SWAP4 00001423: SWAP1 00001424: SWAP4 00001425: SSTORE 00001426: POP 00001427: SWAP2 00001428: SWAP1 00001429: POP 0000142a: JUMP 0000142b: JUMPDEST 0000142c: DUP1 0000142d: CALLDATALOAD 0000142e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001443: DUP2 00001444: AND 00001445: DUP2 00001446: EQ 00001447: PUSH2 0x144e 0000144a: JUMPI 0000144b: PUSH0 0000144c: PUSH0 0000144d: REVERT 0000144e: JUMPDEST 0000144f: SWAP2 00001450: SWAP1 00001451: POP 00001452: JUMP 00001453: JUMPDEST 00001454: PUSH0 00001455: PUSH0 00001456: PUSH0 00001457: PUSH1 0x60 00001459: DUP5 0000145a: DUP7 0000145b: SUB 0000145c: SLT 0000145d: ISZERO 0000145e: PUSH2 0x1465 00001461: JUMPI 00001462: PUSH0 00001463: PUSH0 00001464: REVERT 00001465: JUMPDEST 00001466: PUSH2 0x146e 00001469: DUP5 0000146a: PUSH2 0x142b 0000146d: JUMP 0000146e: JUMPDEST 0000146f: SWAP6 00001470: PUSH1 0x20 00001472: DUP6 00001473: ADD 00001474: CALLDATALOAD 00001475: SWAP6 00001476: POP 00001477: PUSH1 0x40 00001479: SWAP1 0000147a: SWAP5 0000147b: ADD 0000147c: CALLDATALOAD 0000147d: SWAP4 0000147e: SWAP3 0000147f: POP 00001480: POP 00001481: POP 00001482: JUMP 00001483: JUMPDEST 00001484: PUSH0 00001485: PUSH1 0x20 00001487: DUP3 00001488: DUP5 00001489: SUB 0000148a: SLT 0000148b: ISZERO 0000148c: PUSH2 0x1493 0000148f: JUMPI 00001490: PUSH0 00001491: PUSH0 00001492: REVERT 00001493: JUMPDEST 00001494: POP 00001495: CALLDATALOAD 00001496: SWAP2 00001497: SWAP1 00001498: POP 00001499: JUMP 0000149a: JUMPDEST 0000149b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000014bc: PUSH0 000014bd: MSTORE 000014be: PUSH1 0x41 000014c0: PUSH1 0x04 000014c2: MSTORE 000014c3: PUSH1 0x24 000014c5: PUSH0 000014c6: REVERT 000014c7: JUMPDEST 000014c8: PUSH1 0x40 000014ca: MLOAD 000014cb: PUSH1 0x80 000014cd: DUP2 000014ce: ADD 000014cf: PUSH8 0xffffffffffffffff 000014d8: DUP2 000014d9: GT 000014da: DUP3 000014db: DUP3 000014dc: LT 000014dd: OR 000014de: ISZERO 000014df: PUSH2 0x14ea 000014e2: JUMPI 000014e3: PUSH2 0x14ea 000014e6: PUSH2 0x149a 000014e9: JUMP 000014ea: JUMPDEST 000014eb: PUSH1 0x40 000014ed: MSTORE 000014ee: SWAP1 000014ef: JUMP 000014f0: JUMPDEST 000014f1: PUSH1 0x40 000014f3: DUP1 000014f4: MLOAD 000014f5: SWAP1 000014f6: DUP2 000014f7: ADD 000014f8: PUSH8 0xffffffffffffffff 00001501: DUP2 00001502: GT 00001503: DUP3 00001504: DUP3 00001505: LT 00001506: OR 00001507: ISZERO 00001508: PUSH2 0x14ea 0000150b: JUMPI 0000150c: PUSH2 0x14ea 0000150f: PUSH2 0x149a 00001512: JUMP 00001513: JUMPDEST 00001514: PUSH1 0x40 00001516: MLOAD 00001517: PUSH1 0x1f 00001519: DUP3 0000151a: ADD 0000151b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000153c: AND 0000153d: DUP2 0000153e: ADD 0000153f: PUSH8 0xffffffffffffffff 00001548: DUP2 00001549: GT 0000154a: DUP3 0000154b: DUP3 0000154c: LT 0000154d: OR 0000154e: ISZERO 0000154f: PUSH2 0x155a 00001552: JUMPI 00001553: PUSH2 0x155a 00001556: PUSH2 0x149a 00001559: JUMP 0000155a: JUMPDEST 0000155b: PUSH1 0x40 0000155d: MSTORE 0000155e: SWAP2 0000155f: SWAP1 00001560: POP 00001561: JUMP 00001562: JUMPDEST 00001563: PUSH0 00001564: DUP3 00001565: PUSH1 0x1f 00001567: DUP4 00001568: ADD 00001569: SLT 0000156a: PUSH2 0x1571 0000156d: JUMPI 0000156e: PUSH0 0000156f: PUSH0 00001570: REVERT 00001571: JUMPDEST 00001572: PUSH0 00001573: PUSH2 0x157c 00001576: PUSH1 0x40 00001578: PUSH2 0x1513 0000157b: JUMP 0000157c: JUMPDEST 0000157d: SWAP1 0000157e: POP 0000157f: DUP1 00001580: PUSH1 0x40 00001582: DUP5 00001583: ADD 00001584: DUP6 00001585: DUP2 00001586: GT 00001587: ISZERO 00001588: PUSH2 0x158f 0000158b: JUMPI 0000158c: PUSH0 0000158d: PUSH0 0000158e: REVERT 0000158f: JUMPDEST 00001590: DUP5 00001591: JUMPDEST 00001592: DUP2 00001593: DUP2 00001594: LT 00001595: ISZERO 00001596: PUSH2 0x15a9 00001599: JUMPI 0000159a: DUP1 0000159b: CALLDATALOAD 0000159c: DUP4 0000159d: MSTORE 0000159e: PUSH1 0x20 000015a0: SWAP3 000015a1: DUP4 000015a2: ADD 000015a3: SWAP3 000015a4: ADD 000015a5: PUSH2 0x1591 000015a8: JUMP 000015a9: JUMPDEST 000015aa: POP 000015ab: SWAP2 000015ac: SWAP6 000015ad: SWAP5 000015ae: POP 000015af: POP 000015b0: POP 000015b1: POP 000015b2: POP 000015b3: JUMP 000015b4: JUMPDEST 000015b5: PUSH0 000015b6: DUP3 000015b7: PUSH1 0x1f 000015b9: DUP4 000015ba: ADD 000015bb: SLT 000015bc: PUSH2 0x15c3 000015bf: JUMPI 000015c0: PUSH0 000015c1: PUSH0 000015c2: REVERT 000015c3: JUMPDEST 000015c4: PUSH1 0x40 000015c6: PUSH2 0x15ce 000015c9: DUP2 000015ca: PUSH2 0x1513 000015cd: JUMP 000015ce: JUMPDEST 000015cf: DUP1 000015d0: PUSH1 0x80 000015d2: DUP6 000015d3: ADD 000015d4: DUP7 000015d5: DUP2 000015d6: GT 000015d7: ISZERO 000015d8: PUSH2 0x15df 000015db: JUMPI 000015dc: PUSH0 000015dd: PUSH0 000015de: REVERT 000015df: JUMPDEST 000015e0: DUP6 000015e1: JUMPDEST 000015e2: DUP2 000015e3: DUP2 000015e4: LT 000015e5: ISZERO 000015e6: PUSH2 0x1602 000015e9: JUMPI 000015ea: PUSH2 0x15f3 000015ed: DUP9 000015ee: DUP3 000015ef: PUSH2 0x1562 000015f2: JUMP 000015f3: JUMPDEST 000015f4: DUP5 000015f5: MSTORE 000015f6: PUSH1 0x20 000015f8: SWAP1 000015f9: SWAP4 000015fa: ADD 000015fb: SWAP3 000015fc: DUP5 000015fd: ADD 000015fe: PUSH2 0x15e1 00001601: JUMP 00001602: JUMPDEST 00001603: POP 00001604: SWAP1 00001605: SWAP7 00001606: SWAP6 00001607: POP 00001608: POP 00001609: POP 0000160a: POP 0000160b: POP 0000160c: POP 0000160d: JUMP 0000160e: JUMPDEST 0000160f: PUSH0 00001610: PUSH2 0x0200 00001613: DUP3 00001614: DUP5 00001615: SUB 00001616: SLT 00001617: ISZERO 00001618: PUSH2 0x161f 0000161b: JUMPI 0000161c: PUSH0 0000161d: PUSH0 0000161e: REVERT 0000161f: JUMPDEST 00001620: PUSH2 0x1627 00001623: PUSH2 0x14c7 00001626: JUMP 00001627: JUMPDEST 00001628: SWAP1 00001629: POP 0000162a: PUSH2 0x1633 0000162d: DUP4 0000162e: DUP4 0000162f: PUSH2 0x1562 00001632: JUMP 00001633: JUMPDEST 00001634: DUP2 00001635: MSTORE 00001636: PUSH2 0x1642 00001639: DUP4 0000163a: PUSH1 0x40 0000163c: DUP5 0000163d: ADD 0000163e: PUSH2 0x15b4 00001641: JUMP 00001642: JUMPDEST 00001643: PUSH1 0x20 00001645: DUP3 00001646: ADD 00001647: MSTORE 00001648: PUSH2 0x1654 0000164b: DUP4 0000164c: PUSH1 0xc0 0000164e: DUP5 0000164f: ADD 00001650: PUSH2 0x1562 00001653: JUMP 00001654: JUMPDEST 00001655: PUSH1 0x40 00001657: DUP3 00001658: ADD 00001659: MSTORE 0000165a: PUSH0 0000165b: DUP4 0000165c: PUSH2 0x011f 0000165f: DUP5 00001660: ADD 00001661: SLT 00001662: PUSH2 0x1669 00001665: JUMPI 00001666: PUSH0 00001667: PUSH0 00001668: REVERT 00001669: JUMPDEST 0000166a: POP 0000166b: PUSH0 0000166c: DUP1 0000166d: PUSH2 0x0100 00001670: PUSH2 0x1678 00001673: DUP2 00001674: PUSH2 0x1513 00001677: JUMP 00001678: JUMPDEST 00001679: SWAP2 0000167a: POP 0000167b: DUP2 0000167c: SWAP3 0000167d: POP 0000167e: PUSH2 0x0200 00001681: DUP6 00001682: ADD 00001683: DUP7 00001684: DUP2 00001685: GT 00001686: ISZERO 00001687: PUSH2 0x168e 0000168a: JUMPI 0000168b: PUSH0 0000168c: PUSH0 0000168d: REVERT 0000168e: JUMPDEST 0000168f: SWAP1 00001690: DUP6 00001691: ADD 00001692: SWAP1 00001693: JUMPDEST 00001694: DUP1 00001695: DUP3 00001696: LT 00001697: ISZERO 00001698: PUSH2 0x16ae 0000169b: JUMPI 0000169c: DUP2 0000169d: CALLDATALOAD 0000169e: DUP5 0000169f: MSTORE 000016a0: PUSH1 0x20 000016a2: SWAP4 000016a3: DUP5 000016a4: ADD 000016a5: SWAP4 000016a6: SWAP1 000016a7: SWAP2 000016a8: ADD 000016a9: SWAP1 000016aa: PUSH2 0x1693 000016ad: JUMP 000016ae: JUMPDEST 000016af: POP 000016b0: POP 000016b1: PUSH1 0x60 000016b3: DUP4 000016b4: ADD 000016b5: MSTORE 000016b6: POP 000016b7: SWAP3 000016b8: SWAP2 000016b9: POP 000016ba: POP 000016bb: JUMP 000016bc: JUMPDEST 000016bd: PUSH0 000016be: PUSH0 000016bf: PUSH2 0x0220 000016c2: DUP4 000016c3: DUP6 000016c4: SUB 000016c5: SLT 000016c6: ISZERO 000016c7: PUSH2 0x16ce 000016ca: JUMPI 000016cb: PUSH0 000016cc: PUSH0 000016cd: REVERT 000016ce: JUMPDEST 000016cf: DUP3 000016d0: CALLDATALOAD 000016d1: PUSH8 0xffffffffffffffff 000016da: DUP2 000016db: GT 000016dc: ISZERO 000016dd: PUSH2 0x16e4 000016e0: JUMPI 000016e1: PUSH0 000016e2: PUSH0 000016e3: REVERT 000016e4: JUMPDEST 000016e5: DUP4 000016e6: ADD 000016e7: PUSH1 0x40 000016e9: DUP2 000016ea: DUP7 000016eb: SUB 000016ec: SLT 000016ed: ISZERO 000016ee: PUSH2 0x16f5 000016f1: JUMPI 000016f2: PUSH0 000016f3: PUSH0 000016f4: REVERT 000016f5: JUMPDEST 000016f6: PUSH2 0x16fd 000016f9: PUSH2 0x14f0 000016fc: JUMP 000016fd: JUMPDEST 000016fe: PUSH2 0x1706 00001701: DUP3 00001702: PUSH2 0x142b 00001705: JUMP 00001706: JUMPDEST 00001707: DUP2 00001708: MSTORE 00001709: PUSH1 0x20 0000170b: DUP3 0000170c: ADD 0000170d: CALLDATALOAD 0000170e: PUSH8 0xffffffffffffffff 00001717: DUP2 00001718: GT 00001719: ISZERO 0000171a: PUSH2 0x1721 0000171d: JUMPI 0000171e: PUSH0 0000171f: PUSH0 00001720: REVERT 00001721: JUMPDEST 00001722: DUP1 00001723: DUP4 00001724: ADD 00001725: SWAP3 00001726: POP 00001727: POP 00001728: DUP6 00001729: PUSH1 0x1f 0000172b: DUP4 0000172c: ADD 0000172d: SLT 0000172e: PUSH2 0x1735 00001731: JUMPI 00001732: PUSH0 00001733: PUSH0 00001734: REVERT 00001735: JUMPDEST 00001736: DUP2 00001737: CALLDATALOAD 00001738: PUSH8 0xffffffffffffffff 00001741: DUP2 00001742: GT 00001743: ISZERO 00001744: PUSH2 0x174f 00001747: JUMPI 00001748: PUSH2 0x174f 0000174b: PUSH2 0x149a 0000174e: JUMP 0000174f: JUMPDEST 00001750: PUSH2 0x1780 00001753: PUSH1 0x20 00001755: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001776: PUSH1 0x1f 00001778: DUP5 00001779: ADD 0000177a: AND 0000177b: ADD 0000177c: PUSH2 0x1513 0000177f: JUMP 00001780: JUMPDEST 00001781: DUP2 00001782: DUP2 00001783: MSTORE 00001784: DUP8 00001785: PUSH1 0x20 00001787: DUP4 00001788: DUP7 00001789: ADD 0000178a: ADD 0000178b: GT 0000178c: ISZERO 0000178d: PUSH2 0x1794 00001790: JUMPI 00001791: PUSH0 00001792: PUSH0 00001793: REVERT 00001794: JUMPDEST 00001795: DUP2 00001796: PUSH1 0x20 00001798: DUP6 00001799: ADD 0000179a: PUSH1 0x20 0000179c: DUP4 0000179d: ADD 0000179e: CALLDATACOPY 0000179f: PUSH0 000017a0: PUSH1 0x20 000017a2: DUP4 000017a3: DUP4 000017a4: ADD 000017a5: ADD 000017a6: MSTORE 000017a7: DUP1 000017a8: PUSH1 0x20 000017aa: DUP5 000017ab: ADD 000017ac: MSTORE 000017ad: POP 000017ae: POP 000017af: DUP1 000017b0: SWAP4 000017b1: POP 000017b2: POP 000017b3: POP 000017b4: PUSH2 0x17c0 000017b7: DUP5 000017b8: PUSH1 0x20 000017ba: DUP6 000017bb: ADD 000017bc: PUSH2 0x160e 000017bf: JUMP 000017c0: JUMPDEST 000017c1: SWAP1 000017c2: POP 000017c3: SWAP3 000017c4: POP 000017c5: SWAP3 000017c6: SWAP1 000017c7: POP 000017c8: JUMP 000017c9: JUMPDEST 000017ca: PUSH0 000017cb: PUSH2 0x0180 000017ce: DUP3 000017cf: DUP5 000017d0: SUB 000017d1: SLT 000017d2: DUP1 000017d3: ISZERO 000017d4: PUSH2 0x17db 000017d7: JUMPI 000017d8: PUSH0 000017d9: PUSH0 000017da: REVERT 000017db: JUMPDEST 000017dc: POP 000017dd: PUSH0 000017de: DUP1 000017df: PUSH2 0x17e6 000017e2: PUSH2 0x14c7 000017e5: JUMP 000017e6: JUMPDEST 000017e7: SWAP2 000017e8: POP 000017e9: PUSH2 0x17f2 000017ec: DUP6 000017ed: DUP6 000017ee: PUSH2 0x1562 000017f1: JUMP 000017f2: JUMPDEST 000017f3: DUP3 000017f4: MSTORE 000017f5: PUSH2 0x1801 000017f8: DUP6 000017f9: PUSH1 0x40 000017fb: DUP7 000017fc: ADD 000017fd: PUSH2 0x15b4 00001800: JUMP 00001801: JUMPDEST 00001802: PUSH1 0x20 00001804: DUP4 00001805: ADD 00001806: MSTORE 00001807: PUSH2 0x1813 0000180a: DUP6 0000180b: PUSH1 0xc0 0000180d: DUP7 0000180e: ADD 0000180f: PUSH2 0x1562 00001812: JUMP 00001813: JUMPDEST 00001814: PUSH1 0x40 00001816: DUP4 00001817: ADD 00001818: MSTORE 00001819: DUP5 0000181a: PUSH2 0x011f 0000181d: DUP6 0000181e: ADD 0000181f: SLT 00001820: PUSH2 0x1827 00001823: JUMPI 00001824: PUSH0 00001825: PUSH0 00001826: REVERT 00001827: JUMPDEST 00001828: POP 00001829: PUSH0 0000182a: DUP1 0000182b: PUSH2 0x1834 0000182e: PUSH1 0x80 00001830: PUSH2 0x1513 00001833: JUMP 00001834: JUMPDEST 00001835: SWAP1 00001836: POP 00001837: DUP1 00001838: SWAP2 00001839: POP 0000183a: PUSH2 0x0180 0000183d: DUP6 0000183e: ADD 0000183f: DUP7 00001840: DUP2 00001841: GT 00001842: ISZERO 00001843: PUSH2 0x184a 00001846: JUMPI 00001847: PUSH0 00001848: PUSH0 00001849: REVERT 0000184a: JUMPDEST 0000184b: PUSH2 0x0100 0000184e: DUP7 0000184f: ADD 00001850: JUMPDEST 00001851: DUP2 00001852: DUP2 00001853: LT 00001854: ISZERO 00001855: PUSH2 0x1868 00001858: JUMPI 00001859: DUP1 0000185a: CALLDATALOAD 0000185b: DUP5 0000185c: MSTORE 0000185d: PUSH1 0x20 0000185f: SWAP4 00001860: DUP5 00001861: ADD 00001862: SWAP4 00001863: ADD 00001864: PUSH2 0x1850 00001867: JUMP 00001868: JUMPDEST 00001869: POP 0000186a: POP 0000186b: PUSH1 0x60 0000186d: DUP4 0000186e: ADD 0000186f: MSTORE 00001870: POP 00001871: SWAP4 00001872: SWAP3 00001873: POP 00001874: POP 00001875: POP 00001876: JUMP 00001877: JUMPDEST 00001878: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001899: PUSH0 0000189a: MSTORE 0000189b: PUSH1 0x11 0000189d: PUSH1 0x04 0000189f: MSTORE 000018a0: PUSH1 0x24 000018a2: PUSH0 000018a3: REVERT 000018a4: JUMPDEST 000018a5: PUSH0 000018a6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000018c7: DUP3 000018c8: SUB 000018c9: PUSH2 0x18d4 000018cc: JUMPI 000018cd: PUSH2 0x18d4 000018d0: PUSH2 0x1877 000018d3: JUMP 000018d4: JUMPDEST 000018d5: POP 000018d6: PUSH1 0x01 000018d8: ADD 000018d9: SWAP1 000018da: JUMP 000018db: JUMPDEST 000018dc: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000018fd: PUSH0 000018fe: MSTORE 000018ff: PUSH1 0x12 00001901: PUSH1 0x04 00001903: MSTORE 00001904: PUSH1 0x24 00001906: PUSH0 00001907: REVERT 00001908: JUMPDEST 00001909: PUSH0 0000190a: DUP3 0000190b: PUSH2 0x1916 0000190e: JUMPI 0000190f: PUSH2 0x1916 00001912: PUSH2 0x18db 00001915: JUMP 00001916: JUMPDEST 00001917: POP 00001918: MOD 00001919: SWAP1 0000191a: JUMP 0000191b: JUMPDEST 0000191c: PUSH1 0x60 0000191e: DUP2 0000191f: ADD 00001920: DUP2 00001921: DUP4 00001922: PUSH0 00001923: JUMPDEST 00001924: PUSH1 0x03 00001926: DUP2 00001927: LT 00001928: ISZERO 00001929: PUSH2 0x1942 0000192c: JUMPI 0000192d: DUP2 0000192e: MLOAD 0000192f: DUP4 00001930: MSTORE 00001931: PUSH1 0x20 00001933: SWAP3 00001934: DUP4 00001935: ADD 00001936: SWAP3 00001937: SWAP1 00001938: SWAP2 00001939: ADD 0000193a: SWAP1 0000193b: PUSH1 0x01 0000193d: ADD 0000193e: PUSH2 0x1923 00001941: JUMP 00001942: JUMPDEST 00001943: POP 00001944: POP 00001945: POP 00001946: SWAP3 00001947: SWAP2 00001948: POP 00001949: POP 0000194a: JUMP 0000194b: JUMPDEST 0000194c: PUSH0 0000194d: PUSH1 0x20 0000194f: DUP3 00001950: DUP5 00001951: SUB 00001952: SLT 00001953: ISZERO 00001954: PUSH2 0x195b 00001957: JUMPI 00001958: PUSH0 00001959: PUSH0 0000195a: REVERT 0000195b: JUMPDEST 0000195c: POP 0000195d: MLOAD 0000195e: SWAP2 0000195f: SWAP1 00001960: POP 00001961: JUMP 00001962: JUMPDEST 00001963: PUSH1 0x40 00001965: DUP2 00001966: MSTORE 00001967: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000197c: DUP4 0000197d: MLOAD 0000197e: AND 0000197f: PUSH1 0x40 00001981: DUP3 00001982: ADD 00001983: MSTORE 00001984: PUSH0 00001985: PUSH1 0x20 00001987: DUP5 00001988: ADD 00001989: MLOAD 0000198a: PUSH1 0x40 0000198c: PUSH1 0x60 0000198e: DUP5 0000198f: ADD 00001990: MSTORE 00001991: DUP1 00001992: MLOAD 00001993: DUP1 00001994: PUSH1 0x80 00001996: DUP6 00001997: ADD 00001998: MSTORE 00001999: DUP1 0000199a: PUSH1 0x20 0000199c: DUP4 0000199d: ADD 0000199e: PUSH1 0xa0 000019a0: DUP7 000019a1: ADD 000019a2: MCOPY 000019a3: PUSH0 000019a4: PUSH1 0xa0 000019a6: DUP3 000019a7: DUP7 000019a8: ADD 000019a9: ADD 000019aa: MSTORE 000019ab: PUSH1 0xa0 000019ad: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000019ce: PUSH1 0x1f 000019d0: DUP4 000019d1: ADD 000019d2: AND 000019d3: DUP6 000019d4: ADD 000019d5: ADD 000019d6: SWAP3 000019d7: POP 000019d8: POP 000019d9: POP 000019da: DUP3 000019db: PUSH1 0x20 000019dd: DUP4 000019de: ADD 000019df: MSTORE 000019e0: SWAP4 000019e1: SWAP3 000019e2: POP 000019e3: POP 000019e4: POP 000019e5: JUMP 000019e6: JUMPDEST 000019e7: DUP1 000019e8: PUSH0 000019e9: JUMPDEST 000019ea: PUSH1 0x02 000019ec: DUP2 000019ed: LT 000019ee: ISZERO 000019ef: PUSH2 0x1a08 000019f2: JUMPI 000019f3: DUP2 000019f4: MLOAD 000019f5: DUP5 000019f6: MSTORE 000019f7: PUSH1 0x20 000019f9: SWAP4 000019fa: DUP5 000019fb: ADD 000019fc: SWAP4 000019fd: SWAP1 000019fe: SWAP2 000019ff: ADD 00001a00: SWAP1 00001a01: PUSH1 0x01 00001a03: ADD 00001a04: PUSH2 0x19e9 00001a07: JUMP 00001a08: JUMPDEST 00001a09: POP 00001a0a: POP 00001a0b: POP 00001a0c: POP 00001a0d: JUMP 00001a0e: JUMPDEST 00001a0f: DUP1 00001a10: PUSH0 00001a11: JUMPDEST 00001a12: PUSH1 0x02 00001a14: DUP2 00001a15: LT 00001a16: ISZERO 00001a17: PUSH2 0x1a08 00001a1a: JUMPI 00001a1b: PUSH2 0x1a25 00001a1e: DUP5 00001a1f: DUP4 00001a20: MLOAD 00001a21: PUSH2 0x19e6 00001a24: JUMP 00001a25: JUMPDEST 00001a26: PUSH1 0x40 00001a28: SWAP4 00001a29: SWAP1 00001a2a: SWAP4 00001a2b: ADD 00001a2c: SWAP3 00001a2d: PUSH1 0x20 00001a2f: SWAP2 00001a30: SWAP1 00001a31: SWAP2 00001a32: ADD 00001a33: SWAP1 00001a34: PUSH1 0x01 00001a36: ADD 00001a37: PUSH2 0x1a11 00001a3a: JUMP 00001a3b: JUMPDEST 00001a3c: PUSH2 0x0200 00001a3f: DUP2 00001a40: ADD 00001a41: PUSH2 0x1a4a 00001a44: DUP3 00001a45: DUP8 00001a46: PUSH2 0x19e6 00001a49: JUMP 00001a4a: JUMPDEST 00001a4b: PUSH2 0x1a57 00001a4e: PUSH1 0x40 00001a50: DUP4 00001a51: ADD 00001a52: DUP7 00001a53: PUSH2 0x1a0e 00001a56: JUMP 00001a57: JUMPDEST 00001a58: PUSH2 0x1a64 00001a5b: PUSH1 0xc0 00001a5d: DUP4 00001a5e: ADD 00001a5f: DUP6 00001a60: PUSH2 0x19e6 00001a63: JUMP 00001a64: JUMPDEST 00001a65: PUSH2 0x0100 00001a68: DUP3 00001a69: ADD 00001a6a: DUP4 00001a6b: PUSH0 00001a6c: JUMPDEST 00001a6d: PUSH1 0x08 00001a6f: DUP2 00001a70: LT 00001a71: ISZERO 00001a72: PUSH2 0x1a8b 00001a75: JUMPI 00001a76: DUP2 00001a77: MLOAD 00001a78: DUP4 00001a79: MSTORE 00001a7a: PUSH1 0x20 00001a7c: SWAP3 00001a7d: DUP4 00001a7e: ADD 00001a7f: SWAP3 00001a80: SWAP1 00001a81: SWAP2 00001a82: ADD 00001a83: SWAP1 00001a84: PUSH1 0x01 00001a86: ADD 00001a87: PUSH2 0x1a6c 00001a8a: JUMP 00001a8b: JUMPDEST 00001a8c: POP 00001a8d: POP 00001a8e: POP 00001a8f: SWAP6 00001a90: SWAP5 00001a91: POP 00001a92: POP 00001a93: POP 00001a94: POP 00001a95: POP 00001a96: JUMP 00001a97: JUMPDEST 00001a98: PUSH0 00001a99: PUSH1 0x20 00001a9b: DUP3 00001a9c: DUP5 00001a9d: SUB 00001a9e: SLT 00001a9f: ISZERO 00001aa0: PUSH2 0x1aa7 00001aa3: JUMPI 00001aa4: PUSH0 00001aa5: PUSH0 00001aa6: REVERT 00001aa7: JUMPDEST 00001aa8: DUP2 00001aa9: MLOAD 00001aaa: DUP1 00001aab: ISZERO 00001aac: ISZERO 00001aad: DUP2 00001aae: EQ 00001aaf: PUSH2 0x1ab6 00001ab2: JUMPI 00001ab3: PUSH0 00001ab4: PUSH0 00001ab5: REVERT 00001ab6: JUMPDEST 00001ab7: SWAP4 00001ab8: SWAP3 00001ab9: POP 00001aba: POP 00001abb: POP 00001abc: JUMP 00001abd: JUMPDEST 00001abe: PUSH2 0x0180 00001ac1: DUP2 00001ac2: ADD 00001ac3: PUSH2 0x1acc 00001ac6: DUP3 00001ac7: DUP8 00001ac8: PUSH2 0x19e6 00001acb: JUMP 00001acc: JUMPDEST 00001acd: PUSH2 0x1ad9 00001ad0: PUSH1 0x40 00001ad2: DUP4 00001ad3: ADD 00001ad4: DUP7 00001ad5: PUSH2 0x1a0e 00001ad8: JUMP 00001ad9: JUMPDEST 00001ada: PUSH2 0x1ae6 00001add: PUSH1 0xc0 00001adf: DUP4 00001ae0: ADD 00001ae1: DUP6 00001ae2: PUSH2 0x19e6 00001ae5: JUMP 00001ae6: JUMPDEST 00001ae7: PUSH2 0x0100 00001aea: DUP3 00001aeb: ADD 00001aec: DUP4 00001aed: PUSH0 00001aee: JUMPDEST 00001aef: PUSH1 0x04 00001af1: DUP2 00001af2: LT 00001af3: ISZERO 00001af4: PUSH2 0x1a8b 00001af7: JUMPI 00001af8: DUP2 00001af9: MLOAD 00001afa: DUP4 00001afb: MSTORE 00001afc: PUSH1 0x20 00001afe: SWAP3 00001aff: DUP4 00001b00: ADD 00001b01: SWAP3 00001b02: SWAP1 00001b03: SWAP2 00001b04: ADD 00001b05: SWAP1 00001b06: PUSH1 0x01 00001b08: ADD 00001b09: PUSH2 0x1aee 00001b0c: JUMP 00001b0d: JUMPDEST 00001b0e: PUSH4 0xffffffff 00001b13: DUP2 00001b14: DUP2 00001b15: AND 00001b16: DUP4 00001b17: DUP3 00001b18: AND 00001b19: ADD 00001b1a: SWAP1 00001b1b: DUP2 00001b1c: GT 00001b1d: ISZERO 00001b1e: PUSH2 0x11ef 00001b21: JUMPI 00001b22: PUSH2 0x11ef 00001b25: PUSH2 0x1877 00001b28: JUMP 00001b29: JUMPDEST 00001b2a: PUSH0 00001b2b: PUSH4 0xffffffff 00001b30: DUP4 00001b31: AND 00001b32: DUP1 00001b33: PUSH2 0x1b3e 00001b36: JUMPI 00001b37: PUSH2 0x1b3e 00001b3a: PUSH2 0x18db 00001b3d: JUMP 00001b3e: JUMPDEST 00001b3f: DUP1 00001b40: PUSH4 0xffffffff 00001b45: DUP5 00001b46: AND 00001b47: MOD 00001b48: SWAP2 00001b49: POP 00001b4a: POP 00001b4b: SWAP3 00001b4c: SWAP2 00001b4d: POP 00001b4e: POP 00001b4f: JUMP 00001b50: JUMPDEST 00001b51: PUSH4 0xffffffff 00001b56: DUP3 00001b57: DUP2 00001b58: AND 00001b59: DUP3 00001b5a: DUP3 00001b5b: AND 00001b5c: SUB 00001b5d: SWAP1 00001b5e: DUP2 00001b5f: GT 00001b60: ISZERO 00001b61: PUSH2 0x11ef 00001b64: JUMPI 00001b65: PUSH2 0x11ef 00001b68: PUSH2 0x1877 00001b6b: JUMP 00001b6c: JUMPDEST 00001b6d: DUP1 00001b6e: DUP3 00001b6f: ADD 00001b70: DUP1 00001b71: DUP3 00001b72: GT 00001b73: ISZERO 00001b74: PUSH2 0x11ef 00001b77: JUMPI 00001b78: PUSH2 0x11ef 00001b7b: PUSH2 0x1877 00001b7e: JUMP 00001b7f: JUMPDEST 00001b80: PUSH1 0x01 00001b82: DUP2 00001b83: JUMPDEST 00001b84: PUSH1 0x01 00001b86: DUP5 00001b87: GT 00001b88: ISZERO 00001b89: PUSH2 0x1bba 00001b8c: JUMPI 00001b8d: DUP1 00001b8e: DUP6 00001b8f: DIV 00001b90: DUP2 00001b91: GT 00001b92: ISZERO 00001b93: PUSH2 0x1b9e 00001b96: JUMPI 00001b97: PUSH2 0x1b9e 00001b9a: PUSH2 0x1877 00001b9d: JUMP 00001b9e: JUMPDEST 00001b9f: PUSH1 0x01 00001ba1: DUP5 00001ba2: AND 00001ba3: ISZERO 00001ba4: PUSH2 0x1bac 00001ba7: JUMPI 00001ba8: SWAP1 00001ba9: DUP2 00001baa: MUL 00001bab: SWAP1 00001bac: JUMPDEST 00001bad: PUSH1 0x01 00001baf: SWAP4 00001bb0: SWAP1 00001bb1: SWAP4 00001bb2: SHR 00001bb3: SWAP3 00001bb4: DUP1 00001bb5: MUL 00001bb6: PUSH2 0x1b83 00001bb9: JUMP 00001bba: JUMPDEST 00001bbb: SWAP4 00001bbc: POP 00001bbd: SWAP4 00001bbe: SWAP2 00001bbf: POP 00001bc0: POP 00001bc1: JUMP 00001bc2: JUMPDEST 00001bc3: PUSH0 00001bc4: DUP3 00001bc5: PUSH2 0x1bd0 00001bc8: JUMPI 00001bc9: POP 00001bca: PUSH1 0x01 00001bcc: PUSH2 0x11ef 00001bcf: JUMP 00001bd0: JUMPDEST 00001bd1: DUP2 00001bd2: PUSH2 0x1bdc 00001bd5: JUMPI 00001bd6: POP 00001bd7: PUSH0 00001bd8: PUSH2 0x11ef 00001bdb: JUMP 00001bdc: JUMPDEST 00001bdd: DUP2 00001bde: PUSH1 0x01 00001be0: DUP2 00001be1: EQ 00001be2: PUSH2 0x1bf2 00001be5: JUMPI 00001be6: PUSH1 0x02 00001be8: DUP2 00001be9: EQ 00001bea: PUSH2 0x1bfc 00001bed: JUMPI 00001bee: PUSH2 0x1c18 00001bf1: JUMP 00001bf2: JUMPDEST 00001bf3: PUSH1 0x01 00001bf5: SWAP2 00001bf6: POP 00001bf7: POP 00001bf8: PUSH2 0x11ef 00001bfb: JUMP 00001bfc: JUMPDEST 00001bfd: PUSH1 0xff 00001bff: DUP5 00001c00: GT 00001c01: ISZERO 00001c02: PUSH2 0x1c0d 00001c05: JUMPI 00001c06: PUSH2 0x1c0d 00001c09: PUSH2 0x1877 00001c0c: JUMP 00001c0d: JUMPDEST 00001c0e: POP 00001c0f: POP 00001c10: PUSH1 0x01 00001c12: DUP3 00001c13: SHL 00001c14: PUSH2 0x11ef 00001c17: JUMP 00001c18: JUMPDEST 00001c19: POP 00001c1a: PUSH1 0x20 00001c1c: DUP4 00001c1d: LT 00001c1e: PUSH2 0x0133 00001c21: DUP4 00001c22: LT 00001c23: AND 00001c24: PUSH1 0x4e 00001c26: DUP5 00001c27: LT 00001c28: PUSH1 0x0b 00001c2a: DUP5 00001c2b: LT 00001c2c: AND 00001c2d: OR 00001c2e: ISZERO 00001c2f: PUSH2 0x1c3b 00001c32: JUMPI 00001c33: POP 00001c34: DUP2 00001c35: DUP2 00001c36: EXP 00001c37: PUSH2 0x11ef 00001c3a: JUMP 00001c3b: JUMPDEST 00001c3c: PUSH2 0x1c66 00001c3f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001c60: DUP5 00001c61: DUP5 00001c62: PUSH2 0x1b7f 00001c65: JUMP 00001c66: JUMPDEST 00001c67: DUP1 00001c68: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001c89: DIV 00001c8a: DUP3 00001c8b: GT 00001c8c: ISZERO 00001c8d: PUSH2 0x1c98 00001c90: JUMPI 00001c91: PUSH2 0x1c98 00001c94: PUSH2 0x1877 00001c97: JUMP 00001c98: JUMPDEST 00001c99: MUL 00001c9a: SWAP4 00001c9b: SWAP3 00001c9c: POP 00001c9d: POP 00001c9e: POP 00001c9f: JUMP 00001ca0: JUMPDEST 00001ca1: PUSH0 00001ca2: PUSH2 0x1ab6 00001ca5: DUP4 00001ca6: DUP4 00001ca7: PUSH2 0x1bc2 00001caa: JUMP 00001cab: JUMPDEST 00001cac: PUSH1 0x40 00001cae: DUP2 00001caf: ADD 00001cb0: DUP2 00001cb1: DUP4 00001cb2: PUSH0 00001cb3: JUMPDEST 00001cb4: PUSH1 0x02 00001cb6: DUP2 00001cb7: LT 00001cb8: ISZERO 00001cb9: PUSH2 0x1942 00001cbc: JUMPI 00001cbd: DUP2 00001cbe: MLOAD 00001cbf: DUP4 00001cc0: MSTORE 00001cc1: PUSH1 0x20 00001cc3: SWAP3 00001cc4: DUP4 00001cc5: ADD 00001cc6: SWAP3 00001cc7: SWAP1 00001cc8: SWAP2 00001cc9: ADD 00001cca: SWAP1 00001ccb: PUSH1 0x01 00001ccd: ADD 00001cce: PUSH2 0x1cb3 00001cd1: JUMP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x2261a49abfc2f82c5f32b98a05c0f00fdf5d6276cc9ed9d5603c30513b512217
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x2261a49abfc2f82c5f32b98a05c0f00fdf5d6276cc9ed9d5603c30513b512217",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xe4b2fb79",
"selector": "0xe4b2fb79",
"calldata_variants": [
"0xe4b2fb79",
"0xe4b2fb790000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe8eb3cc6",
"selector": "0xe8eb3cc6",
"calldata_variants": [
"0xe8eb3cc6",
"0xe8eb3cc60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfdab463d",
"selector": "0xfdab463d",
"calldata_variants": [
"0xfdab463d",
"0xfdab463d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda662925",
"selector": "0xda662925",
"calldata_variants": [
"0xda662925",
"0xda6629250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe38df5f0",
"selector": "0xe38df5f0",
"calldata_variants": [
"0xe38df5f0",
"0xe38df5f00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb85c5145",
"selector": "0xb85c5145",
"calldata_variants": [
"0xb85c5145",
"0xb85c51450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc2b40ae4",
"selector": "0xc2b40ae4",
"calldata_variants": [
"0xc2b40ae4",
"0xc2b40ae40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd87a3b4",
"selector": "0xcd87a3b4",
"calldata_variants": [
"0xcd87a3b4",
"0xcd87a3b40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1716,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 5020,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 1141,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1922,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3471,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"delegatecall_count": 2,
"untrusted_delegatecall_count": 2
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 2
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x85e3ebd6406f19671a84401bf0fbd811a0b5a2badf8b3c2a2276324e00f0a42c
call_targets:
0xf241d57c6debae225c0f2e6ea1529373c9a9c9fb
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x85e3ebd6406f19671a84401bf0fbd811a0b5a2badf8b3c2a2276324e00f0a42c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf241d57c6debae225c0f2e6ea1529373c9a9c9fb"
],
"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": "0xe4b2fb79",
"selector": "0xe4b2fb79",
"calldata_variants": [
"0xe4b2fb79",
"0xe4b2fb790000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe8eb3cc6",
"selector": "0xe8eb3cc6",
"calldata_variants": [
"0xe8eb3cc6",
"0xe8eb3cc60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfdab463d",
"selector": "0xfdab463d",
"calldata_variants": [
"0xfdab463d",
"0xfdab463d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda662925",
"selector": "0xda662925",
"calldata_variants": [
"0xda662925",
"0xda6629250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe38df5f0",
"selector": "0xe38df5f0",
"calldata_variants": [
"0xe38df5f0",
"0xe38df5f00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb85c5145",
"selector": "0xb85c5145",
"calldata_variants": [
"0xb85c5145",
"0xb85c51450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc2b40ae4",
"selector": "0xc2b40ae4",
"calldata_variants": [
"0xc2b40ae4",
"0xc2b40ae40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd87a3b4",
"selector": "0xcd87a3b4",
"calldata_variants": [
"0xcd87a3b4",
"0xcd87a3b40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2666,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3174,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4459,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [
{
"pc": 1141,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1922,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3471,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 3
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x85e3ebd6406f19671a84401bf0fbd811a0b5a2badf8b3c2a2276324e00f0a42c
call_targets:
0xf241d57c6debae225c0f2e6ea1529373c9a9c9fb
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x85e3ebd6406f19671a84401bf0fbd811a0b5a2badf8b3c2a2276324e00f0a42c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf241d57c6debae225c0f2e6ea1529373c9a9c9fb"
],
"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": "0xe4b2fb79",
"selector": "0xe4b2fb79",
"calldata_variants": [
"0xe4b2fb79",
"0xe4b2fb790000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe8eb3cc6",
"selector": "0xe8eb3cc6",
"calldata_variants": [
"0xe8eb3cc6",
"0xe8eb3cc60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfdab463d",
"selector": "0xfdab463d",
"calldata_variants": [
"0xfdab463d",
"0xfdab463d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda662925",
"selector": "0xda662925",
"calldata_variants": [
"0xda662925",
"0xda6629250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe38df5f0",
"selector": "0xe38df5f0",
"calldata_variants": [
"0xe38df5f0",
"0xe38df5f00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb85c5145",
"selector": "0xb85c5145",
"calldata_variants": [
"0xb85c5145",
"0xb85c51450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc2b40ae4",
"selector": "0xc2b40ae4",
"calldata_variants": [
"0xc2b40ae4",
"0xc2b40ae40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd87a3b4",
"selector": "0xcd87a3b4",
"calldata_variants": [
"0xcd87a3b4",
"0xcd87a3b40000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2666,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3174,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4459,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": [
{
"pc": 1141,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 1922,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3471,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|