019bb377-69ea-706f-8a9f-4e6b23cf77a4
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 |
|---|---|---|---|---|
| 39888 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 39889 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 39890 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 39891 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 39892 | capability.graph | complete | 1 / 3 | 3 months ago |
| 39893 | detector.run | complete | 1 / 3 | 3 months ago |
| 39894 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39980 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 39981 | tool.slither | failed | 2 / 2 | 3 months ago |
{
"status": "not_proxy"
}
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 198, in main
payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 1056, in run
solc_path, solc_meta = _prepare_solc(chosen_version, workspace)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 190, in _prepare_solc
raise RuntimeError(f"solc version {default_version} is too old for supported toolchain")
RuntimeError: solc version 0.4.6 is too old for supported toolchain
{"no_findings":false,"summary":"One low-severity issue found: low-level calls ignore failures, which can consume daily limits or clear pending transactions without transferring funds.","findings":[{"severity":"low","category":"other","title":"Unchecked low-level call results can desync accounting and clear pending txs","exploit_scenario":"A recipient contract that reverts can make `execute`/`confirm` treat a failed call as successful. In the daily-limit path, `_value` is counted as spent even though no funds were transferred, blocking further spending for the day. In the multisig path, the pending transaction is deleted after a failed call, forcing owners to recreate and re-approve the transaction.","recommendation":"Check the return value of low-level calls and revert on failure, or only delete `m_txs[_h]` after a successful call. In Solidity 0.4.x, use `if(!_to.call.value(_value)(_data)) throw;` (or equivalent) to ensure accounting and pending state only update on success.","evidence":"`_to.call.value(_value)(_data);` and `m_txs[_h].to.call.value(m_txs[_h].value)(m_txs[_h].data);` are invoked without checking the return value; state changes (daily spend update or `m_txs` deletion) proceed regardless of call success.","locations":["contracts/Contract.sol:346","contracts/Contract.sol:366"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-5y0c04dv
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb39e-c0d8-71b3-adf8-f94ad2f6e270
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Reading AUDIT_BUNDLE file**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-5y0c04dv succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
//sol Wallet
// Multi-sig, daily-limited account proxy/wallet.
// @authors:
// Gav Wood <g@ethdev.com>
// inheritable "property" contract that enables methods to be protected by requiring the acquiescence of either a
// single, or, crucially, each of a number of, designated owners.
// usage:
// use modifiers onlyowner (just own owned) or onlymanyowners(hash), whereby the same hash must be provided by
// some number (specified in constructor) of the set of owners (specified in the constructor, modifiable) before the
// interior is executed.
pragma solidity ^0.4.6;
contract multiowned {
thinking
**Analyzing Solidity multisig vulnerabilities**
thinking
**Clarifying operator precedence and reentrancy risks**
I’m sorting through how Solidity’s operator precedence impacts critical conditions, confirming bitwise AND likely has higher precedence than equality, so no parsing bugs there. I’m also weighing how unchecked low-level calls combined with external calls before state updates introduce real reentrancy risks—especially if the wallet’s required confirmations are set to one—potentially allowing repeated transaction execution before cleanup. These subtle issues highlight areas where older multisig logic could cause stuck funds or unintended multiple sends.
thinking
**Summarizing transaction handling and potential low-severity flaws**
I’m reviewing how execute’s use of block number in operation hashes affects transaction tracking and confirming that owner misconfiguration risks exist but aren’t exploitable. The main finding is unchecked low-level call return values causing transactions to be removed despite failed sends, which can lock funds and cause denial-of-service-like issues. Other potential issues like reentrancy and access control seem limited or mitigated by the contract’s logic and owner requirements.
exec
/bin/bash -lc 'solc --version' in /tmp/codex-5y0c04dv succeeded in 187ms:
solc, the solidity compiler commandline interface
Version: 0.8.20+commit.a1b79de6.Linux.g++
thinking
**Testing operator precedence with solc 0.8.20**
exec
/bin/bash -lc "cat <<'SOL' | solc --ast-compact-json -
// SPDX-License-Identifier: UNLICENSED
pragma solidity "'^0.8.20;
contract T {
function f(uint a, uint b) external pure returns (bool) {
return a & b == 0;
}
}
SOL' in /tmp/codex-5y0c04dv succeeded in 162ms:
JSON AST (compact format):
======= <stdin> =======
{"absolutePath":"<stdin>","exportedSymbols":{"T":[18]},"id":19,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"39:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"T","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":18,"linearizedBaseContracts":[18],"name":"T","nameLocation":"73:1:0","nodeType":"ContractDefinition","nodes":[{"body":{"id":16,"nodeType":"Block","src":"137:34:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"154:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":11,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"158:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"154:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":13,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"163:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"154:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9,"id":15,"nodeType":"Return","src":"147:17:0"}]},"functionSelector":"13d1aa2e","id":17,"implemented":true,"kind":"function","modifiers":[],"name":"f","nameLocation":"90:1:0","nodeType":"FunctionDefinition","parameters":{"id":6,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3,"mutability":"mutable","name":"a","nameLocation":"97:1:0","nodeType":"VariableDeclaration","scope":17,"src":"92:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2,"name":"uint","nodeType":"ElementaryTypeName","src":"92:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5,"mutability":"mutable","name":"b","nameLocation":"105:1:0","nodeType":"VariableDeclaration","scope":17,"src":"100:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4,"name":"uint","nodeType":"ElementaryTypeName","src":"100:4:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"91:16:0"},"returnParameters":{"id":9,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17,"src":"131:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7,"name":"bool","nodeType":"ElementaryTypeName","src":"131:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"130:6:0"},"scope":18,"src":"81:90:0","stateMutability":"pure","virtual":false,"visibility":"external"}],"scope":19,"src":"64:109:0","usedErrors":[],"usedEvents":[]}],"src":"39:135:0"}
thinking
**Analyzing Solidity code correctness and risks**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '160,260p'" in /tmp/codex-5y0c04dv succeeded in 29ms:
160 // reset count of confirmations needed.
161 pending.yetNeeded = m_required;
162 // reset which owners have confirmed (none) - set our bitmap to 0.
163 pending.ownersDone = 0;
164 pending.index = m_pendingIndex.length++;
165 m_pendingIndex[pending.index] = _operation;
166 }
167 // determine the bit to set for this owner.
168 uint ownerIndexBit = 2**ownerIndex;
169 // make sure we (the message sender) haven't confirmed this operation previously.
170 if (pending.ownersDone & ownerIndexBit == 0) {
171 Confirmation(msg.sender, _operation);
172 // ok - check if count is enough to go ahead.
173 if (pending.yetNeeded <= 1) {
174 // enough confirmations: reset and run interior.
175 delete m_pendingIndex[m_pending[_operation].index];
176 delete m_pending[_operation];
177 return true;
178 }
179 else
thinking
**Requesting execution confirmation**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '300,420p'" in /tmp/codex-5y0c04dv succeeded in 9ms:
300 // FUNCTIONS
301
302 // TODO: document
303 function changeOwner(address _from, address _to) external;
304 function execute(address _to, uint _value, bytes _data) external returns (bytes32);
305 function confirm(bytes32 _h) returns (bool);
306 }
307
308 // usage:
309 // bytes32 h = Wallet(w).from(oneOwner).execute(to, value, data);
310 // Wallet(w).from(anotherOwner).confirm(h);
311 contract Wallet is multisig, multiowned, daylimit {
312
313 // TYPES
314
315 // Transaction structure to remember details of transaction lest it need be saved for a later call.
316 struct Transaction {
317 address to;
318 uint value;
319 bytes data;
thinking
**Summarizing low-level call issues and risks**
I’m gathering details to highlight a low-severity issue where unchecked returns from low-level `.call` calls cause silent failures and inconsistent accounting, like consuming daily limits or removing pending transactions without funds transferring. I’m carefully weighing how much impact this has given the context and compiling a clear JSON report with severity, category, titles, exploit scenarios, recommendations, evidence, and file locations.
codex
{"no_findings":false,"summary":"One low-severity issue found: low-level calls ignore failures, which can consume daily limits or clear pending transactions without transferring funds.","findings":[{"severity":"low","category":"other","title":"Unchecked low-level call results can desync accounting and clear pending txs","exploit_scenario":"A recipient contract that reverts can make `execute`/`confirm` treat a failed call as successful. In the daily-limit path, `_value` is counted as spent even though no funds were transferred, blocking further spending for the day. In the multisig path, the pending transaction is deleted after a failed call, forcing owners to recreate and re-approve the transaction.","recommendation":"Check the return value of low-level calls and revert on failure, or only delete `m_txs[_h]` after a successful call. In Solidity 0.4.x, use `if(!_to.call.value(_value)(_data)) throw;` (or equivalent) to ensure accounting and pending state only update on success.","evidence":"`_to.call.value(_value)(_data);` and `m_txs[_h].to.call.value(m_txs[_h].value)(m_txs[_h].data);` are invoked without checking the return value; state changes (daily spend update or `m_txs` deletion) proceed regardless of call success.","locations":["contracts/Contract.sol:346","contracts/Contract.sol:366"]}]}
tokens used
29,165
{
"codex": {
"ran_at": "2026-01-12T19:15:37.537070+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "One low-severity issue found: low-level calls ignore failures, which can consume daily limits or clear pending transactions without transferring funds.",
"raw_final": {
"summary": "One low-severity issue found: low-level calls ignore failures, which can consume daily limits or clear pending transactions without transferring funds.",
"findings": [
{
"title": "Unchecked low-level call results can desync accounting and clear pending txs",
"category": "other",
"evidence": "`_to.call.value(_value)(_data);` and `m_txs[_h].to.call.value(m_txs[_h].value)(m_txs[_h].data);` are invoked without checking the return value; state changes (daily spend update or `m_txs` deletion) proceed regardless of call success.",
"severity": "low",
"locations": [
"contracts/Contract.sol:346",
"contracts/Contract.sol:366"
],
"recommendation": "Check the return value of low-level calls and revert on failure, or only delete `m_txs[_h]` after a successful call. In Solidity 0.4.x, use `if(!_to.call.value(_value)(_data)) throw;` (or equivalent) to ensure accounting and pending state only update on success.",
"exploit_scenario": "A recipient contract that reverts can make `execute`/`confirm` treat a failed call as successful. In the daily-limit path, `_value` is counted as spent even though no funds were transferred, blocking further spending for the day. In the multisig path, the pending transaction is deleted after a failed call, forcing owners to recreate and re-approve the transaction."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x60 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLDATASIZE 00000006: ISZERO 00000007: PUSH2 0x00da 0000000a: JUMPI 0000000b: PUSH1 0xe0 0000000d: PUSH1 0x02 0000000f: EXP 00000010: PUSH1 0x00 00000012: CALLDATALOAD 00000013: DIV 00000014: PUSH4 0x173825d9 00000019: DUP2 0000001a: EQ 0000001b: PUSH2 0x0130 0000001e: JUMPI 0000001f: DUP1 00000020: PUSH4 0x2f54bf6e 00000025: EQ 00000026: PUSH2 0x0142 00000029: JUMPI 0000002a: DUP1 0000002b: PUSH4 0x4123cb6b 00000030: EQ 00000031: PUSH2 0x0166 00000034: JUMPI 00000035: DUP1 00000036: PUSH4 0x52375093 0000003b: EQ 0000003c: PUSH2 0x0185 0000003f: JUMPI 00000040: DUP1 00000041: PUSH4 0x5c52c2f5 00000046: EQ 00000047: PUSH2 0x01a4 0000004a: JUMPI 0000004b: DUP1 0000004c: PUSH4 0x659010e7 00000051: EQ 00000052: PUSH2 0x01b3 00000055: JUMPI 00000056: DUP1 00000057: PUSH4 0x7065cb48 0000005c: EQ 0000005d: PUSH2 0x01d2 00000060: JUMPI 00000061: DUP1 00000062: PUSH4 0x746c9171 00000067: EQ 00000068: PUSH2 0x01e4 0000006b: JUMPI 0000006c: DUP1 0000006d: PUSH4 0x797af627 00000072: EQ 00000073: PUSH2 0x0203 00000076: JUMPI 00000077: DUP1 00000078: PUSH4 0xb20d30a9 0000007d: EQ 0000007e: PUSH2 0x0227 00000081: JUMPI 00000082: DUP1 00000083: PUSH4 0xb61d27f6 00000088: EQ 00000089: PUSH2 0x0239 0000008c: JUMPI 0000008d: DUP1 0000008e: PUSH4 0xb75c7dc6 00000093: EQ 00000094: PUSH2 0x026b 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0xba51a6df 0000009e: EQ 0000009f: PUSH2 0x027d 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0xc2cf7326 000000a9: EQ 000000aa: PUSH2 0x028f 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0xc41a360a 000000b4: EQ 000000b5: PUSH2 0x02b6 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0xcbf0b0c0 000000bf: EQ 000000c0: PUSH2 0x02e2 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0xf00d4b5d 000000ca: EQ 000000cb: PUSH2 0x02f4 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0xf1736d86 000000d5: EQ 000000d6: PUSH2 0x0309 000000d9: JUMPI 000000da: JUMPDEST 000000db: PUSH2 0x012e 000000de: JUMPDEST 000000df: PUSH1 0x00 000000e1: CALLVALUE 000000e2: GT 000000e3: ISZERO 000000e4: PUSH2 0x012b 000000e7: JUMPI 000000e8: PUSH1 0x40 000000ea: DUP1 000000eb: MLOAD 000000ec: PUSH1 0x01 000000ee: PUSH1 0xa0 000000f0: PUSH1 0x02 000000f2: EXP 000000f3: SUB 000000f4: CALLER 000000f5: AND 000000f6: DUP2 000000f7: MSTORE 000000f8: CALLVALUE 000000f9: PUSH1 0x20 000000fb: DUP3 000000fc: ADD 000000fd: MSTORE 000000fe: DUP2 000000ff: MLOAD 00000100: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c 00000121: SWAP3 00000122: SWAP2 00000123: DUP2 00000124: SWAP1 00000125: SUB 00000126: SWAP1 00000127: SWAP2 00000128: ADD 00000129: SWAP1 0000012a: LOG1 0000012b: JUMPDEST 0000012c: JUMPDEST 0000012d: JUMP 0000012e: JUMPDEST 0000012f: STOP 00000130: JUMPDEST 00000131: CALLVALUE 00000132: PUSH2 0x0000 00000135: JUMPI 00000136: PUSH2 0x012e 00000139: PUSH1 0x04 0000013b: CALLDATALOAD 0000013c: PUSH2 0x0328 0000013f: JUMP 00000140: JUMPDEST 00000141: STOP 00000142: JUMPDEST 00000143: CALLVALUE 00000144: PUSH2 0x0000 00000147: JUMPI 00000148: PUSH2 0x0152 0000014b: PUSH1 0x04 0000014d: CALLDATALOAD 0000014e: PUSH2 0x0415 00000151: JUMP 00000152: JUMPDEST 00000153: PUSH1 0x40 00000155: DUP1 00000156: MLOAD 00000157: SWAP2 00000158: ISZERO 00000159: ISZERO 0000015a: DUP3 0000015b: MSTORE 0000015c: MLOAD 0000015d: SWAP1 0000015e: DUP2 0000015f: SWAP1 00000160: SUB 00000161: PUSH1 0x20 00000163: ADD 00000164: SWAP1 00000165: RETURN 00000166: JUMPDEST 00000167: CALLVALUE 00000168: PUSH2 0x0000 0000016b: JUMPI 0000016c: PUSH2 0x0173 0000016f: PUSH2 0x0436 00000172: JUMP 00000173: JUMPDEST 00000174: PUSH1 0x40 00000176: DUP1 00000177: MLOAD 00000178: SWAP2 00000179: DUP3 0000017a: MSTORE 0000017b: MLOAD 0000017c: SWAP1 0000017d: DUP2 0000017e: SWAP1 0000017f: SUB 00000180: PUSH1 0x20 00000182: ADD 00000183: SWAP1 00000184: RETURN 00000185: JUMPDEST 00000186: CALLVALUE 00000187: PUSH2 0x0000 0000018a: JUMPI 0000018b: PUSH2 0x0173 0000018e: PUSH2 0x043c 00000191: JUMP 00000192: JUMPDEST 00000193: PUSH1 0x40 00000195: DUP1 00000196: MLOAD 00000197: SWAP2 00000198: DUP3 00000199: MSTORE 0000019a: MLOAD 0000019b: SWAP1 0000019c: DUP2 0000019d: SWAP1 0000019e: SUB 0000019f: PUSH1 0x20 000001a1: ADD 000001a2: SWAP1 000001a3: RETURN 000001a4: JUMPDEST 000001a5: CALLVALUE 000001a6: PUSH2 0x0000 000001a9: JUMPI 000001aa: PUSH2 0x012e 000001ad: PUSH2 0x0443 000001b0: JUMP 000001b1: JUMPDEST 000001b2: STOP 000001b3: JUMPDEST 000001b4: CALLVALUE 000001b5: PUSH2 0x0000 000001b8: JUMPI 000001b9: PUSH2 0x0173 000001bc: PUSH2 0x047b 000001bf: JUMP 000001c0: JUMPDEST 000001c1: PUSH1 0x40 000001c3: DUP1 000001c4: MLOAD 000001c5: SWAP2 000001c6: DUP3 000001c7: MSTORE 000001c8: MLOAD 000001c9: SWAP1 000001ca: DUP2 000001cb: SWAP1 000001cc: SUB 000001cd: PUSH1 0x20 000001cf: ADD 000001d0: SWAP1 000001d1: RETURN 000001d2: JUMPDEST 000001d3: CALLVALUE 000001d4: PUSH2 0x0000 000001d7: JUMPI 000001d8: PUSH2 0x012e 000001db: PUSH1 0x04 000001dd: CALLDATALOAD 000001de: PUSH2 0x0482 000001e1: JUMP 000001e2: JUMPDEST 000001e3: STOP 000001e4: JUMPDEST 000001e5: CALLVALUE 000001e6: PUSH2 0x0000 000001e9: JUMPI 000001ea: PUSH2 0x0173 000001ed: PUSH2 0x0571 000001f0: JUMP 000001f1: JUMPDEST 000001f2: PUSH1 0x40 000001f4: DUP1 000001f5: MLOAD 000001f6: SWAP2 000001f7: DUP3 000001f8: MSTORE 000001f9: MLOAD 000001fa: SWAP1 000001fb: DUP2 000001fc: SWAP1 000001fd: SUB 000001fe: PUSH1 0x20 00000200: ADD 00000201: SWAP1 00000202: RETURN 00000203: JUMPDEST 00000204: CALLVALUE 00000205: PUSH2 0x0000 00000208: JUMPI 00000209: PUSH2 0x0152 0000020c: PUSH1 0x04 0000020e: CALLDATALOAD 0000020f: PUSH2 0x0577 00000212: JUMP 00000213: JUMPDEST 00000214: PUSH1 0x40 00000216: DUP1 00000217: MLOAD 00000218: SWAP2 00000219: ISZERO 0000021a: ISZERO 0000021b: DUP3 0000021c: MSTORE 0000021d: MLOAD 0000021e: SWAP1 0000021f: DUP2 00000220: SWAP1 00000221: SUB 00000222: PUSH1 0x20 00000224: ADD 00000225: SWAP1 00000226: RETURN 00000227: JUMPDEST 00000228: CALLVALUE 00000229: PUSH2 0x0000 0000022c: JUMPI 0000022d: PUSH2 0x012e 00000230: PUSH1 0x04 00000232: CALLDATALOAD 00000233: PUSH2 0x07e3 00000236: JUMP 00000237: JUMPDEST 00000238: STOP 00000239: JUMPDEST 0000023a: CALLVALUE 0000023b: PUSH2 0x0000 0000023e: JUMPI 0000023f: PUSH2 0x0173 00000242: PUSH1 0x04 00000244: DUP1 00000245: CALLDATALOAD 00000246: SWAP1 00000247: PUSH1 0x24 00000249: DUP1 0000024a: CALLDATALOAD 0000024b: SWAP2 0000024c: PUSH1 0x44 0000024e: CALLDATALOAD 0000024f: SWAP2 00000250: DUP3 00000251: ADD 00000252: SWAP2 00000253: ADD 00000254: CALLDATALOAD 00000255: PUSH2 0x081c 00000258: JUMP 00000259: JUMPDEST 0000025a: PUSH1 0x40 0000025c: DUP1 0000025d: MLOAD 0000025e: SWAP2 0000025f: DUP3 00000260: MSTORE 00000261: MLOAD 00000262: SWAP1 00000263: DUP2 00000264: SWAP1 00000265: SUB 00000266: PUSH1 0x20 00000268: ADD 00000269: SWAP1 0000026a: RETURN 0000026b: JUMPDEST 0000026c: CALLVALUE 0000026d: PUSH2 0x0000 00000270: JUMPI 00000271: PUSH2 0x012e 00000274: PUSH1 0x04 00000276: CALLDATALOAD 00000277: PUSH2 0x0ab3 0000027a: JUMP 0000027b: JUMPDEST 0000027c: STOP 0000027d: JUMPDEST 0000027e: CALLVALUE 0000027f: PUSH2 0x0000 00000282: JUMPI 00000283: PUSH2 0x012e 00000286: PUSH1 0x04 00000288: CALLDATALOAD 00000289: PUSH2 0x0b5e 0000028c: JUMP 0000028d: JUMPDEST 0000028e: STOP 0000028f: JUMPDEST 00000290: CALLVALUE 00000291: PUSH2 0x0000 00000294: JUMPI 00000295: PUSH2 0x0152 00000298: PUSH1 0x04 0000029a: CALLDATALOAD 0000029b: PUSH1 0x24 0000029d: CALLDATALOAD 0000029e: PUSH2 0x0be0 000002a1: JUMP 000002a2: JUMPDEST 000002a3: PUSH1 0x40 000002a5: DUP1 000002a6: MLOAD 000002a7: SWAP2 000002a8: ISZERO 000002a9: ISZERO 000002aa: DUP3 000002ab: MSTORE 000002ac: MLOAD 000002ad: SWAP1 000002ae: DUP2 000002af: SWAP1 000002b0: SUB 000002b1: PUSH1 0x20 000002b3: ADD 000002b4: SWAP1 000002b5: RETURN 000002b6: JUMPDEST 000002b7: CALLVALUE 000002b8: PUSH2 0x0000 000002bb: JUMPI 000002bc: PUSH2 0x02c6 000002bf: PUSH1 0x04 000002c1: CALLDATALOAD 000002c2: PUSH2 0x0c35 000002c5: JUMP 000002c6: JUMPDEST 000002c7: PUSH1 0x40 000002c9: DUP1 000002ca: MLOAD 000002cb: PUSH1 0x01 000002cd: PUSH1 0xa0 000002cf: PUSH1 0x02 000002d1: EXP 000002d2: SUB 000002d3: SWAP1 000002d4: SWAP3 000002d5: AND 000002d6: DUP3 000002d7: MSTORE 000002d8: MLOAD 000002d9: SWAP1 000002da: DUP2 000002db: SWAP1 000002dc: SUB 000002dd: PUSH1 0x20 000002df: ADD 000002e0: SWAP1 000002e1: RETURN 000002e2: JUMPDEST 000002e3: CALLVALUE 000002e4: PUSH2 0x0000 000002e7: JUMPI 000002e8: PUSH2 0x012e 000002eb: PUSH1 0x04 000002ed: CALLDATALOAD 000002ee: PUSH2 0x0c55 000002f1: JUMP 000002f2: JUMPDEST 000002f3: STOP 000002f4: JUMPDEST 000002f5: CALLVALUE 000002f6: PUSH2 0x0000 000002f9: JUMPI 000002fa: PUSH2 0x012e 000002fd: PUSH1 0x04 000002ff: CALLDATALOAD 00000300: PUSH1 0x24 00000302: CALLDATALOAD 00000303: PUSH2 0x0c93 00000306: JUMP 00000307: JUMPDEST 00000308: STOP 00000309: JUMPDEST 0000030a: CALLVALUE 0000030b: PUSH2 0x0000 0000030e: JUMPI 0000030f: PUSH2 0x0173 00000312: PUSH2 0x0d8c 00000315: JUMP 00000316: JUMPDEST 00000317: PUSH1 0x40 00000319: DUP1 0000031a: MLOAD 0000031b: SWAP2 0000031c: DUP3 0000031d: MSTORE 0000031e: MLOAD 0000031f: SWAP1 00000320: DUP2 00000321: SWAP1 00000322: SUB 00000323: PUSH1 0x20 00000325: ADD 00000326: SWAP1 00000327: RETURN 00000328: JUMPDEST 00000329: PUSH1 0x00 0000032b: PUSH1 0x00 0000032d: CALLDATASIZE 0000032e: PUSH1 0x40 00000330: MLOAD 00000331: DUP1 00000332: DUP4 00000333: DUP4 00000334: DUP1 00000335: DUP3 00000336: DUP5 00000337: CALLDATACOPY 00000338: DUP3 00000339: ADD 0000033a: SWAP2 0000033b: POP 0000033c: POP 0000033d: SWAP3 0000033e: POP 0000033f: POP 00000340: POP 00000341: PUSH1 0x40 00000343: MLOAD 00000344: DUP1 00000345: SWAP2 00000346: SUB 00000347: SWAP1 00000348: KECCAK256 00000349: PUSH2 0x0351 0000034c: DUP2 0000034d: PUSH2 0x0d93 00000350: JUMP 00000351: JUMPDEST 00000352: ISZERO 00000353: PUSH2 0x040e 00000356: JUMPI 00000357: PUSH1 0x01 00000359: PUSH1 0xa0 0000035b: PUSH1 0x02 0000035d: EXP 0000035e: SUB 0000035f: DUP4 00000360: AND 00000361: PUSH1 0x00 00000363: SWAP1 00000364: DUP2 00000365: MSTORE 00000366: PUSH2 0x0102 00000369: PUSH1 0x20 0000036b: MSTORE 0000036c: PUSH1 0x40 0000036e: SWAP1 0000036f: KECCAK256 00000370: SLOAD 00000371: SWAP2 00000372: POP 00000373: DUP2 00000374: ISZERO 00000375: ISZERO 00000376: PUSH2 0x037e 00000379: JUMPI 0000037a: PUSH2 0x040e 0000037d: JUMP 0000037e: JUMPDEST 0000037f: PUSH1 0x01 00000381: PUSH1 0x01 00000383: SLOAD 00000384: SUB 00000385: PUSH1 0x00 00000387: SLOAD 00000388: GT 00000389: ISZERO 0000038a: PUSH2 0x0392 0000038d: JUMPI 0000038e: PUSH2 0x040e 00000391: JUMP 00000392: JUMPDEST 00000393: PUSH1 0x00 00000395: PUSH1 0x02 00000397: DUP4 00000398: PUSH2 0x0100 0000039b: DUP2 0000039c: LT 0000039d: ISZERO 0000039e: PUSH2 0x0000 000003a1: JUMPI 000003a2: ADD 000003a3: PUSH1 0x00 000003a5: JUMPDEST 000003a6: POP 000003a7: SSTORE 000003a8: PUSH1 0x01 000003aa: PUSH1 0xa0 000003ac: PUSH1 0x02 000003ae: EXP 000003af: SUB 000003b0: DUP4 000003b1: AND 000003b2: PUSH1 0x00 000003b4: SWAP1 000003b5: DUP2 000003b6: MSTORE 000003b7: PUSH2 0x0102 000003ba: PUSH1 0x20 000003bc: MSTORE 000003bd: PUSH1 0x40 000003bf: DUP2 000003c0: KECCAK256 000003c1: SSTORE 000003c2: PUSH2 0x03c9 000003c5: PUSH2 0x0f32 000003c8: JUMP 000003c9: JUMPDEST 000003ca: PUSH2 0x03d1 000003cd: PUSH2 0x1002 000003d0: JUMP 000003d1: JUMPDEST 000003d2: PUSH1 0x40 000003d4: DUP1 000003d5: MLOAD 000003d6: PUSH1 0x01 000003d8: PUSH1 0xa0 000003da: PUSH1 0x02 000003dc: EXP 000003dd: SUB 000003de: DUP6 000003df: AND 000003e0: DUP2 000003e1: MSTORE 000003e2: SWAP1 000003e3: MLOAD 000003e4: PUSH32 0x58619076adf5bb0943d100ef88d52d7c3fd691b19d3a9071b555b651fbf418da 00000405: SWAP2 00000406: DUP2 00000407: SWAP1 00000408: SUB 00000409: PUSH1 0x20 0000040b: ADD 0000040c: SWAP1 0000040d: LOG1 0000040e: JUMPDEST 0000040f: JUMPDEST 00000410: JUMPDEST 00000411: POP 00000412: POP 00000413: POP 00000414: JUMP 00000415: JUMPDEST 00000416: PUSH1 0x01 00000418: PUSH1 0xa0 0000041a: PUSH1 0x02 0000041c: EXP 0000041d: SUB 0000041e: DUP2 0000041f: AND 00000420: PUSH1 0x00 00000422: SWAP1 00000423: DUP2 00000424: MSTORE 00000425: PUSH2 0x0102 00000428: PUSH1 0x20 0000042a: MSTORE 0000042b: PUSH1 0x40 0000042d: DUP2 0000042e: KECCAK256 0000042f: SLOAD 00000430: GT 00000431: JUMPDEST 00000432: SWAP2 00000433: SWAP1 00000434: POP 00000435: JUMP 00000436: JUMPDEST 00000437: PUSH1 0x01 00000439: SLOAD 0000043a: DUP2 0000043b: JUMP 0000043c: JUMPDEST 0000043d: PUSH2 0x0107 00000440: SLOAD 00000441: DUP2 00000442: JUMP 00000443: JUMPDEST 00000444: PUSH1 0x00 00000446: CALLDATASIZE 00000447: PUSH1 0x40 00000449: MLOAD 0000044a: DUP1 0000044b: DUP4 0000044c: DUP4 0000044d: DUP1 0000044e: DUP3 0000044f: DUP5 00000450: CALLDATACOPY 00000451: DUP3 00000452: ADD 00000453: SWAP2 00000454: POP 00000455: POP 00000456: SWAP3 00000457: POP 00000458: POP 00000459: POP 0000045a: PUSH1 0x40 0000045c: MLOAD 0000045d: DUP1 0000045e: SWAP2 0000045f: SUB 00000460: SWAP1 00000461: KECCAK256 00000462: PUSH2 0x046a 00000465: DUP2 00000466: PUSH2 0x0d93 00000469: JUMP 0000046a: JUMPDEST 0000046b: ISZERO 0000046c: PUSH2 0x0476 0000046f: JUMPI 00000470: PUSH1 0x00 00000472: PUSH2 0x0106 00000475: SSTORE 00000476: JUMPDEST 00000477: JUMPDEST 00000478: JUMPDEST 00000479: POP 0000047a: JUMP 0000047b: JUMPDEST 0000047c: PUSH2 0x0106 0000047f: SLOAD 00000480: DUP2 00000481: JUMP 00000482: JUMPDEST 00000483: PUSH1 0x00 00000485: CALLDATASIZE 00000486: PUSH1 0x40 00000488: MLOAD 00000489: DUP1 0000048a: DUP4 0000048b: DUP4 0000048c: DUP1 0000048d: DUP3 0000048e: DUP5 0000048f: CALLDATACOPY 00000490: DUP3 00000491: ADD 00000492: SWAP2 00000493: POP 00000494: POP 00000495: SWAP3 00000496: POP 00000497: POP 00000498: POP 00000499: PUSH1 0x40 0000049b: MLOAD 0000049c: DUP1 0000049d: SWAP2 0000049e: SUB 0000049f: SWAP1 000004a0: KECCAK256 000004a1: PUSH2 0x04a9 000004a4: DUP2 000004a5: PUSH2 0x0d93 000004a8: JUMP 000004a9: JUMPDEST 000004aa: ISZERO 000004ab: PUSH2 0x056b 000004ae: JUMPI 000004af: PUSH2 0x04b7 000004b2: DUP3 000004b3: PUSH2 0x0415 000004b6: JUMP 000004b7: JUMPDEST 000004b8: ISZERO 000004b9: PUSH2 0x04c1 000004bc: JUMPI 000004bd: PUSH2 0x056b 000004c0: JUMP 000004c1: JUMPDEST 000004c2: PUSH2 0x04c9 000004c5: PUSH2 0x0f32 000004c8: JUMP 000004c9: JUMPDEST 000004ca: PUSH1 0x01 000004cc: SLOAD 000004cd: PUSH1 0xfa 000004cf: SWAP1 000004d0: LT 000004d1: PUSH2 0x04dc 000004d4: JUMPI 000004d5: PUSH2 0x04dc 000004d8: PUSH2 0x1002 000004db: JUMP 000004dc: JUMPDEST 000004dd: JUMPDEST 000004de: PUSH1 0x01 000004e0: SLOAD 000004e1: PUSH1 0xfa 000004e3: SWAP1 000004e4: LT 000004e5: PUSH2 0x04ed 000004e8: JUMPI 000004e9: PUSH2 0x056b 000004ec: JUMP 000004ed: JUMPDEST 000004ee: PUSH1 0x01 000004f0: DUP1 000004f1: SLOAD 000004f2: DUP2 000004f3: ADD 000004f4: SWAP1 000004f5: DUP2 000004f6: SWAP1 000004f7: SSTORE 000004f8: PUSH1 0x01 000004fa: PUSH1 0xa0 000004fc: PUSH1 0x02 000004fe: EXP 000004ff: SUB 00000500: DUP4 00000501: AND 00000502: SWAP1 00000503: PUSH1 0x02 00000505: SWAP1 00000506: PUSH2 0x0100 00000509: DUP2 0000050a: LT 0000050b: ISZERO 0000050c: PUSH2 0x0000 0000050f: JUMPI 00000510: ADD 00000511: PUSH1 0x00 00000513: JUMPDEST 00000514: POP 00000515: SSTORE 00000516: PUSH1 0x01 00000518: SLOAD 00000519: PUSH1 0x01 0000051b: PUSH1 0xa0 0000051d: PUSH1 0x02 0000051f: EXP 00000520: SUB 00000521: DUP4 00000522: AND 00000523: PUSH1 0x00 00000525: DUP2 00000526: DUP2 00000527: MSTORE 00000528: PUSH2 0x0102 0000052b: PUSH1 0x20 0000052d: SWAP1 0000052e: DUP2 0000052f: MSTORE 00000530: PUSH1 0x40 00000532: SWAP2 00000533: DUP3 00000534: SWAP1 00000535: KECCAK256 00000536: SWAP4 00000537: SWAP1 00000538: SWAP4 00000539: SSTORE 0000053a: DUP1 0000053b: MLOAD 0000053c: SWAP2 0000053d: DUP3 0000053e: MSTORE 0000053f: MLOAD 00000540: PUSH32 0x994a936646fe87ffe4f1e469d3d6aa417d6b855598397f323de5b449f765f0c3 00000561: SWAP3 00000562: SWAP2 00000563: DUP2 00000564: SWAP1 00000565: SUB 00000566: SWAP1 00000567: SWAP2 00000568: ADD 00000569: SWAP1 0000056a: LOG1 0000056b: JUMPDEST 0000056c: JUMPDEST 0000056d: JUMPDEST 0000056e: POP 0000056f: POP 00000570: JUMP 00000571: JUMPDEST 00000572: PUSH1 0x00 00000574: SLOAD 00000575: DUP2 00000576: JUMP 00000577: JUMPDEST 00000578: PUSH1 0x00 0000057a: DUP2 0000057b: PUSH2 0x0583 0000057e: DUP2 0000057f: PUSH2 0x0d93 00000582: JUMP 00000583: JUMPDEST 00000584: ISZERO 00000585: PUSH2 0x07da 00000588: JUMPI 00000589: PUSH1 0x00 0000058b: DUP4 0000058c: DUP2 0000058d: MSTORE 0000058e: PUSH2 0x0108 00000591: PUSH1 0x20 00000593: MSTORE 00000594: PUSH1 0x40 00000596: SWAP1 00000597: KECCAK256 00000598: SLOAD 00000599: PUSH1 0x01 0000059b: PUSH1 0xa0 0000059d: PUSH1 0x02 0000059f: EXP 000005a0: SUB 000005a1: AND 000005a2: ISZERO 000005a3: PUSH2 0x07da 000005a6: JUMPI 000005a7: PUSH1 0x00 000005a9: DUP4 000005aa: DUP2 000005ab: MSTORE 000005ac: PUSH2 0x0108 000005af: PUSH1 0x20 000005b1: MSTORE 000005b2: PUSH1 0x40 000005b4: SWAP1 000005b5: DUP2 000005b6: SWAP1 000005b7: KECCAK256 000005b8: DUP1 000005b9: SLOAD 000005ba: PUSH1 0x01 000005bc: DUP1 000005bd: DUP4 000005be: ADD 000005bf: SLOAD 000005c0: SWAP4 000005c1: MLOAD 000005c2: PUSH1 0x02 000005c4: SWAP4 000005c5: DUP5 000005c6: ADD 000005c7: DUP1 000005c8: SLOAD 000005c9: PUSH1 0x01 000005cb: PUSH1 0xa0 000005cd: PUSH1 0x02 000005cf: EXP 000005d0: SUB 000005d1: SWAP1 000005d2: SWAP5 000005d3: AND 000005d4: SWAP6 000005d5: SWAP5 000005d6: SWAP1 000005d7: SWAP4 000005d8: SWAP2 000005d9: SWAP3 000005da: DUP4 000005db: SWAP3 000005dc: DUP6 000005dd: SWAP3 000005de: SWAP2 000005df: DUP2 000005e0: AND 000005e1: ISZERO 000005e2: PUSH2 0x0100 000005e5: MUL 000005e6: PUSH1 0x00 000005e8: NOT 000005e9: ADD 000005ea: AND 000005eb: DIV 000005ec: DUP1 000005ed: ISZERO 000005ee: PUSH2 0x0638 000005f1: JUMPI 000005f2: DUP1 000005f3: PUSH1 0x1f 000005f5: LT 000005f6: PUSH2 0x060d 000005f9: JUMPI 000005fa: PUSH2 0x0100 000005fd: DUP1 000005fe: DUP4 000005ff: SLOAD 00000600: DIV 00000601: MUL 00000602: DUP4 00000603: MSTORE 00000604: SWAP2 00000605: PUSH1 0x20 00000607: ADD 00000608: SWAP2 00000609: PUSH2 0x0638 0000060c: JUMP 0000060d: JUMPDEST 0000060e: DUP3 0000060f: ADD 00000610: SWAP2 00000611: SWAP1 00000612: PUSH1 0x00 00000614: MSTORE 00000615: PUSH1 0x20 00000617: PUSH1 0x00 00000619: KECCAK256 0000061a: SWAP1 0000061b: JUMPDEST 0000061c: DUP2 0000061d: SLOAD 0000061e: DUP2 0000061f: MSTORE 00000620: SWAP1 00000621: PUSH1 0x01 00000623: ADD 00000624: SWAP1 00000625: PUSH1 0x20 00000627: ADD 00000628: DUP1 00000629: DUP4 0000062a: GT 0000062b: PUSH2 0x061b 0000062e: JUMPI 0000062f: DUP3 00000630: SWAP1 00000631: SUB 00000632: PUSH1 0x1f 00000634: AND 00000635: DUP3 00000636: ADD 00000637: SWAP2 00000638: JUMPDEST 00000639: POP 0000063a: POP 0000063b: SWAP2 0000063c: POP 0000063d: POP 0000063e: PUSH1 0x00 00000640: PUSH1 0x40 00000642: MLOAD 00000643: DUP1 00000644: DUP4 00000645: SUB 00000646: DUP2 00000647: DUP6 00000648: DUP8 00000649: PUSH2 0x8502 0000064c: GAS 0000064d: SUB 0000064e: CALL 0000064f: POP 00000650: POP 00000651: POP 00000652: PUSH1 0x00 00000654: DUP5 00000655: DUP2 00000656: MSTORE 00000657: PUSH2 0x0108 0000065a: PUSH1 0x20 0000065c: SWAP1 0000065d: DUP2 0000065e: MSTORE 0000065f: PUSH1 0x40 00000661: SWAP2 00000662: DUP3 00000663: SWAP1 00000664: KECCAK256 00000665: PUSH1 0x01 00000667: DUP1 00000668: DUP3 00000669: ADD 0000066a: SLOAD 0000066b: DUP3 0000066c: SLOAD 0000066d: DUP6 0000066e: MLOAD 0000066f: PUSH1 0x01 00000671: PUSH1 0xa0 00000673: PUSH1 0x02 00000675: EXP 00000676: SUB 00000677: CALLER 00000678: DUP2 00000679: DUP2 0000067a: AND 0000067b: DUP4 0000067c: MSTORE 0000067d: SWAP7 0000067e: DUP3 0000067f: ADD 00000680: DUP13 00000681: SWAP1 00000682: MSTORE 00000683: SWAP7 00000684: DUP2 00000685: ADD 00000686: DUP4 00000687: SWAP1 00000688: MSTORE 00000689: SWAP6 0000068a: AND 0000068b: PUSH1 0x60 0000068d: DUP7 0000068e: ADD 0000068f: DUP2 00000690: SWAP1 00000691: MSTORE 00000692: PUSH1 0xa0 00000694: PUSH1 0x80 00000696: DUP8 00000697: ADD 00000698: DUP2 00000699: DUP2 0000069a: MSTORE 0000069b: PUSH1 0x02 0000069d: SWAP6 0000069e: DUP7 0000069f: ADD 000006a0: DUP1 000006a1: SLOAD 000006a2: SWAP6 000006a3: DUP7 000006a4: AND 000006a5: ISZERO 000006a6: PUSH2 0x0100 000006a9: MUL 000006aa: PUSH1 0x00 000006ac: NOT 000006ad: ADD 000006ae: SWAP1 000006af: SWAP6 000006b0: AND 000006b1: SWAP6 000006b2: SWAP1 000006b3: SWAP6 000006b4: DIV 000006b5: SWAP1 000006b6: DUP8 000006b7: ADD 000006b8: DUP2 000006b9: SWAP1 000006ba: MSTORE 000006bb: PUSH32 0xe7c957c06e9a662c1a6c77366179f5b702b97651dc28eee7d5bf1dff6e40bb4a 000006dc: SWAP8 000006dd: POP 000006de: SWAP5 000006df: SWAP6 000006e0: DUP11 000006e1: SWAP6 000006e2: SWAP3 000006e3: SWAP5 000006e4: SWAP2 000006e5: SWAP4 000006e6: SWAP3 000006e7: SWAP1 000006e8: SWAP2 000006e9: SWAP1 000006ea: PUSH1 0xc0 000006ec: DUP4 000006ed: ADD 000006ee: SWAP1 000006ef: DUP5 000006f0: SWAP1 000006f1: DUP1 000006f2: ISZERO 000006f3: PUSH2 0x073d 000006f6: JUMPI 000006f7: DUP1 000006f8: PUSH1 0x1f 000006fa: LT 000006fb: PUSH2 0x0712 000006fe: JUMPI 000006ff: PUSH2 0x0100 00000702: DUP1 00000703: DUP4 00000704: SLOAD 00000705: DIV 00000706: MUL 00000707: DUP4 00000708: MSTORE 00000709: SWAP2 0000070a: PUSH1 0x20 0000070c: ADD 0000070d: SWAP2 0000070e: PUSH2 0x073d 00000711: JUMP 00000712: JUMPDEST 00000713: DUP3 00000714: ADD 00000715: SWAP2 00000716: SWAP1 00000717: PUSH1 0x00 00000719: MSTORE 0000071a: PUSH1 0x20 0000071c: PUSH1 0x00 0000071e: KECCAK256 0000071f: SWAP1 00000720: JUMPDEST 00000721: DUP2 00000722: SLOAD 00000723: DUP2 00000724: MSTORE 00000725: SWAP1 00000726: PUSH1 0x01 00000728: ADD 00000729: SWAP1 0000072a: PUSH1 0x20 0000072c: ADD 0000072d: DUP1 0000072e: DUP4 0000072f: GT 00000730: PUSH2 0x0720 00000733: JUMPI 00000734: DUP3 00000735: SWAP1 00000736: SUB 00000737: PUSH1 0x1f 00000739: AND 0000073a: DUP3 0000073b: ADD 0000073c: SWAP2 0000073d: JUMPDEST 0000073e: POP 0000073f: POP 00000740: SWAP7 00000741: POP 00000742: POP 00000743: POP 00000744: POP 00000745: POP 00000746: POP 00000747: POP 00000748: PUSH1 0x40 0000074a: MLOAD 0000074b: DUP1 0000074c: SWAP2 0000074d: SUB 0000074e: SWAP1 0000074f: LOG1 00000750: PUSH1 0x00 00000752: DUP4 00000753: DUP2 00000754: MSTORE 00000755: PUSH2 0x0108 00000758: PUSH1 0x20 0000075a: MSTORE 0000075b: PUSH1 0x40 0000075d: DUP2 0000075e: KECCAK256 0000075f: DUP1 00000760: SLOAD 00000761: PUSH1 0x01 00000763: PUSH1 0xa0 00000765: PUSH1 0x02 00000767: EXP 00000768: SUB 00000769: NOT 0000076a: AND 0000076b: DUP2 0000076c: SSTORE 0000076d: PUSH1 0x01 0000076f: DUP1 00000770: DUP3 00000771: ADD 00000772: DUP4 00000773: SWAP1 00000774: SSTORE 00000775: PUSH1 0x02 00000777: DUP1 00000778: DUP4 00000779: ADD 0000077a: DUP1 0000077b: SLOAD 0000077c: DUP6 0000077d: DUP3 0000077e: SSTORE 0000077f: SWAP4 00000780: SWAP5 00000781: SWAP4 00000782: SWAP1 00000783: SWAP3 00000784: DUP2 00000785: AND 00000786: ISZERO 00000787: PUSH2 0x0100 0000078a: MUL 0000078b: PUSH1 0x00 0000078d: NOT 0000078e: ADD 0000078f: AND 00000790: DIV 00000791: PUSH1 0x1f 00000793: DUP2 00000794: SWAP1 00000795: LT 00000796: PUSH2 0x079f 00000799: JUMPI 0000079a: POP 0000079b: PUSH2 0x07d1 0000079e: JUMP 0000079f: JUMPDEST 000007a0: PUSH1 0x1f 000007a2: ADD 000007a3: PUSH1 0x20 000007a5: SWAP1 000007a6: DIV 000007a7: SWAP1 000007a8: PUSH1 0x00 000007aa: MSTORE 000007ab: PUSH1 0x20 000007ad: PUSH1 0x00 000007af: KECCAK256 000007b0: SWAP1 000007b1: DUP2 000007b2: ADD 000007b3: SWAP1 000007b4: PUSH2 0x07d1 000007b7: SWAP2 000007b8: SWAP1 000007b9: JUMPDEST 000007ba: DUP1 000007bb: DUP3 000007bc: GT 000007bd: ISZERO 000007be: PUSH2 0x07cd 000007c1: JUMPI 000007c2: PUSH1 0x00 000007c4: DUP2 000007c5: SSTORE 000007c6: PUSH1 0x01 000007c8: ADD 000007c9: PUSH2 0x07b9 000007cc: JUMP 000007cd: JUMPDEST 000007ce: POP 000007cf: SWAP1 000007d0: JUMP 000007d1: JUMPDEST 000007d2: JUMPDEST 000007d3: POP 000007d4: POP 000007d5: POP 000007d6: PUSH1 0x01 000007d8: SWAP2 000007d9: POP 000007da: JUMPDEST 000007db: JUMPDEST 000007dc: JUMPDEST 000007dd: JUMPDEST 000007de: POP 000007df: SWAP2 000007e0: SWAP1 000007e1: POP 000007e2: JUMP 000007e3: JUMPDEST 000007e4: PUSH1 0x00 000007e6: CALLDATASIZE 000007e7: PUSH1 0x40 000007e9: MLOAD 000007ea: DUP1 000007eb: DUP4 000007ec: DUP4 000007ed: DUP1 000007ee: DUP3 000007ef: DUP5 000007f0: CALLDATACOPY 000007f1: DUP3 000007f2: ADD 000007f3: SWAP2 000007f4: POP 000007f5: POP 000007f6: SWAP3 000007f7: POP 000007f8: POP 000007f9: POP 000007fa: PUSH1 0x40 000007fc: MLOAD 000007fd: DUP1 000007fe: SWAP2 000007ff: SUB 00000800: SWAP1 00000801: KECCAK256 00000802: PUSH2 0x080a 00000805: DUP2 00000806: PUSH2 0x0d93 00000809: JUMP 0000080a: JUMPDEST 0000080b: ISZERO 0000080c: PUSH2 0x056b 0000080f: JUMPI 00000810: PUSH2 0x0105 00000813: DUP3 00000814: SWAP1 00000815: SSTORE 00000816: JUMPDEST 00000817: JUMPDEST 00000818: JUMPDEST 00000819: POP 0000081a: POP 0000081b: JUMP 0000081c: JUMPDEST 0000081d: PUSH1 0x00 0000081f: PUSH2 0x0827 00000822: CALLER 00000823: PUSH2 0x0415 00000826: JUMP 00000827: JUMPDEST 00000828: ISZERO 00000829: PUSH2 0x0aa8 0000082c: JUMPI 0000082d: PUSH2 0x0835 00000830: DUP5 00000831: PUSH2 0x1131 00000834: JUMP 00000835: JUMPDEST 00000836: ISZERO 00000837: PUSH2 0x08f3 0000083a: JUMPI 0000083b: PUSH32 0x92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004 0000085c: CALLER 0000085d: DUP6 0000085e: DUP8 0000085f: DUP7 00000860: DUP7 00000861: PUSH1 0x40 00000863: MLOAD 00000864: DUP1 00000865: DUP7 00000866: PUSH1 0x01 00000868: PUSH1 0xa0 0000086a: PUSH1 0x02 0000086c: EXP 0000086d: SUB 0000086e: AND 0000086f: DUP2 00000870: MSTORE 00000871: PUSH1 0x20 00000873: ADD 00000874: DUP6 00000875: DUP2 00000876: MSTORE 00000877: PUSH1 0x20 00000879: ADD 0000087a: DUP5 0000087b: PUSH1 0x01 0000087d: PUSH1 0xa0 0000087f: PUSH1 0x02 00000881: EXP 00000882: SUB 00000883: AND 00000884: DUP2 00000885: MSTORE 00000886: PUSH1 0x20 00000888: ADD 00000889: DUP1 0000088a: PUSH1 0x20 0000088c: ADD 0000088d: DUP3 0000088e: DUP2 0000088f: SUB 00000890: DUP3 00000891: MSTORE 00000892: DUP5 00000893: DUP5 00000894: DUP3 00000895: DUP2 00000896: DUP2 00000897: MSTORE 00000898: PUSH1 0x20 0000089a: ADD 0000089b: SWAP3 0000089c: POP 0000089d: DUP1 0000089e: DUP3 0000089f: DUP5 000008a0: CALLDATACOPY 000008a1: PUSH1 0x40 000008a3: MLOAD 000008a4: SWAP3 000008a5: ADD 000008a6: DUP3 000008a7: SWAP1 000008a8: SUB 000008a9: SWAP9 000008aa: POP 000008ab: SWAP1 000008ac: SWAP7 000008ad: POP 000008ae: POP 000008af: POP 000008b0: POP 000008b1: POP 000008b2: POP 000008b3: POP 000008b4: LOG1 000008b5: DUP5 000008b6: PUSH1 0x01 000008b8: PUSH1 0xa0 000008ba: PUSH1 0x02 000008bc: EXP 000008bd: SUB 000008be: AND 000008bf: DUP5 000008c0: DUP5 000008c1: DUP5 000008c2: PUSH1 0x40 000008c4: MLOAD 000008c5: DUP1 000008c6: DUP4 000008c7: DUP4 000008c8: DUP1 000008c9: DUP3 000008ca: DUP5 000008cb: CALLDATACOPY 000008cc: DUP3 000008cd: ADD 000008ce: SWAP2 000008cf: POP 000008d0: POP 000008d1: SWAP3 000008d2: POP 000008d3: POP 000008d4: POP 000008d5: PUSH1 0x00 000008d7: PUSH1 0x40 000008d9: MLOAD 000008da: DUP1 000008db: DUP4 000008dc: SUB 000008dd: DUP2 000008de: DUP6 000008df: DUP8 000008e0: PUSH2 0x8502 000008e3: GAS 000008e4: SUB 000008e5: CALL 000008e6: POP 000008e7: PUSH1 0x00 000008e9: SWAP4 000008ea: POP 000008eb: PUSH2 0x0aa8 000008ee: SWAP3 000008ef: POP 000008f0: POP 000008f1: POP 000008f2: JUMP 000008f3: JUMPDEST 000008f4: PUSH1 0x00 000008f6: CALLDATASIZE 000008f7: NUMBER 000008f8: PUSH1 0x40 000008fa: MLOAD 000008fb: DUP1 000008fc: DUP5 000008fd: DUP5 000008fe: DUP1 000008ff: DUP3 00000900: DUP5 00000901: CALLDATACOPY 00000902: DUP3 00000903: ADD 00000904: SWAP2 00000905: POP 00000906: POP 00000907: DUP3 00000908: DUP2 00000909: MSTORE 0000090a: PUSH1 0x20 0000090c: ADD 0000090d: SWAP4 0000090e: POP 0000090f: POP 00000910: POP 00000911: POP 00000912: PUSH1 0x40 00000914: MLOAD 00000915: DUP1 00000916: SWAP2 00000917: SUB 00000918: SWAP1 00000919: KECCAK256 0000091a: SWAP1 0000091b: POP 0000091c: PUSH2 0x0924 0000091f: DUP2 00000920: PUSH2 0x0577 00000923: JUMP 00000924: JUMPDEST 00000925: ISZERO 00000926: DUP1 00000927: ISZERO 00000928: PUSH2 0x0947 0000092b: JUMPI 0000092c: POP 0000092d: PUSH1 0x00 0000092f: DUP2 00000930: DUP2 00000931: MSTORE 00000932: PUSH2 0x0108 00000935: PUSH1 0x20 00000937: MSTORE 00000938: PUSH1 0x40 0000093a: SWAP1 0000093b: KECCAK256 0000093c: SLOAD 0000093d: PUSH1 0x01 0000093f: PUSH1 0xa0 00000941: PUSH1 0x02 00000943: EXP 00000944: SUB 00000945: AND 00000946: ISZERO 00000947: JUMPDEST 00000948: ISZERO 00000949: PUSH2 0x0aa8 0000094c: JUMPI 0000094d: PUSH1 0x00 0000094f: DUP2 00000950: DUP2 00000951: MSTORE 00000952: PUSH2 0x0108 00000955: PUSH1 0x20 00000957: SWAP1 00000958: DUP2 00000959: MSTORE 0000095a: PUSH1 0x40 0000095c: DUP3 0000095d: KECCAK256 0000095e: DUP1 0000095f: SLOAD 00000960: PUSH13 0x01000000000000000000000000 0000096e: DUP1 0000096f: DUP11 00000970: MUL 00000971: DIV 00000972: PUSH1 0x01 00000974: PUSH1 0xa0 00000976: PUSH1 0x02 00000978: EXP 00000979: SUB 0000097a: NOT 0000097b: SWAP1 0000097c: SWAP2 0000097d: AND 0000097e: OR 0000097f: DUP2 00000980: SSTORE 00000981: PUSH1 0x01 00000983: DUP1 00000984: DUP3 00000985: ADD 00000986: DUP9 00000987: SWAP1 00000988: SSTORE 00000989: PUSH1 0x02 0000098b: SWAP2 0000098c: DUP3 0000098d: ADD 0000098e: DUP1 0000098f: SLOAD 00000990: DUP2 00000991: DUP7 00000992: MSTORE 00000993: SWAP5 00000994: DUP5 00000995: SWAP1 00000996: KECCAK256 00000997: SWAP1 00000998: SWAP5 00000999: PUSH1 0x1f 0000099b: SWAP3 0000099c: DUP2 0000099d: AND 0000099e: ISZERO 0000099f: PUSH2 0x0100 000009a2: MUL 000009a3: PUSH1 0x00 000009a5: NOT 000009a6: ADD 000009a7: AND 000009a8: SWAP3 000009a9: SWAP1 000009aa: SWAP3 000009ab: DIV 000009ac: DUP2 000009ad: ADD 000009ae: SWAP3 000009af: SWAP1 000009b0: SWAP3 000009b1: DIV 000009b2: DUP2 000009b3: ADD 000009b4: SWAP2 000009b5: DUP6 000009b6: SWAP2 000009b7: SWAP1 000009b8: DUP8 000009b9: SWAP1 000009ba: DUP4 000009bb: SWAP1 000009bc: LT 000009bd: PUSH2 0x09d1 000009c0: JUMPI 000009c1: DUP3 000009c2: DUP1 000009c3: ADD 000009c4: PUSH1 0xff 000009c6: NOT 000009c7: DUP3 000009c8: CALLDATALOAD 000009c9: AND 000009ca: OR 000009cb: DUP6 000009cc: SSTORE 000009cd: PUSH2 0x09fe 000009d0: JUMP 000009d1: JUMPDEST 000009d2: DUP3 000009d3: DUP1 000009d4: ADD 000009d5: PUSH1 0x01 000009d7: ADD 000009d8: DUP6 000009d9: SSTORE 000009da: DUP3 000009db: ISZERO 000009dc: PUSH2 0x09fe 000009df: JUMPI 000009e0: SWAP2 000009e1: DUP3 000009e2: ADD 000009e3: JUMPDEST 000009e4: DUP3 000009e5: DUP2 000009e6: GT 000009e7: ISZERO 000009e8: PUSH2 0x09fe 000009eb: JUMPI 000009ec: DUP3 000009ed: CALLDATALOAD 000009ee: DUP3 000009ef: SSTORE 000009f0: SWAP2 000009f1: PUSH1 0x20 000009f3: ADD 000009f4: SWAP2 000009f5: SWAP1 000009f6: PUSH1 0x01 000009f8: ADD 000009f9: SWAP1 000009fa: PUSH2 0x09e3 000009fd: JUMP 000009fe: JUMPDEST 000009ff: JUMPDEST 00000a00: POP 00000a01: PUSH2 0x0a1f 00000a04: SWAP3 00000a05: SWAP2 00000a06: POP 00000a07: JUMPDEST 00000a08: DUP1 00000a09: DUP3 00000a0a: GT 00000a0b: ISZERO 00000a0c: PUSH2 0x07cd 00000a0f: JUMPI 00000a10: PUSH1 0x00 00000a12: DUP2 00000a13: SSTORE 00000a14: PUSH1 0x01 00000a16: ADD 00000a17: PUSH2 0x07b9 00000a1a: JUMP 00000a1b: JUMPDEST 00000a1c: POP 00000a1d: SWAP1 00000a1e: JUMP 00000a1f: JUMPDEST 00000a20: POP 00000a21: POP 00000a22: PUSH32 0x1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32 00000a43: DUP2 00000a44: CALLER 00000a45: DUP7 00000a46: DUP9 00000a47: DUP8 00000a48: DUP8 00000a49: PUSH1 0x40 00000a4b: MLOAD 00000a4c: DUP1 00000a4d: DUP8 00000a4e: PUSH1 0x00 00000a50: NOT 00000a51: AND 00000a52: DUP2 00000a53: MSTORE 00000a54: PUSH1 0x20 00000a56: ADD 00000a57: DUP7 00000a58: PUSH1 0x01 00000a5a: PUSH1 0xa0 00000a5c: PUSH1 0x02 00000a5e: EXP 00000a5f: SUB 00000a60: AND 00000a61: DUP2 00000a62: MSTORE 00000a63: PUSH1 0x20 00000a65: ADD 00000a66: DUP6 00000a67: DUP2 00000a68: MSTORE 00000a69: PUSH1 0x20 00000a6b: ADD 00000a6c: DUP5 00000a6d: PUSH1 0x01 00000a6f: PUSH1 0xa0 00000a71: PUSH1 0x02 00000a73: EXP 00000a74: SUB 00000a75: AND 00000a76: DUP2 00000a77: MSTORE 00000a78: PUSH1 0x20 00000a7a: ADD 00000a7b: DUP1 00000a7c: PUSH1 0x20 00000a7e: ADD 00000a7f: DUP3 00000a80: DUP2 00000a81: SUB 00000a82: DUP3 00000a83: MSTORE 00000a84: DUP5 00000a85: DUP5 00000a86: DUP3 00000a87: DUP2 00000a88: DUP2 00000a89: MSTORE 00000a8a: PUSH1 0x20 00000a8c: ADD 00000a8d: SWAP3 00000a8e: POP 00000a8f: DUP1 00000a90: DUP3 00000a91: DUP5 00000a92: CALLDATACOPY 00000a93: PUSH1 0x40 00000a95: MLOAD 00000a96: SWAP3 00000a97: ADD 00000a98: DUP3 00000a99: SWAP1 00000a9a: SUB 00000a9b: SWAP10 00000a9c: POP 00000a9d: SWAP1 00000a9e: SWAP8 00000a9f: POP 00000aa0: POP 00000aa1: POP 00000aa2: POP 00000aa3: POP 00000aa4: POP 00000aa5: POP 00000aa6: POP 00000aa7: LOG1 00000aa8: JUMPDEST 00000aa9: JUMPDEST 00000aaa: JUMPDEST 00000aab: JUMPDEST 00000aac: SWAP5 00000aad: SWAP4 00000aae: POP 00000aaf: POP 00000ab0: POP 00000ab1: POP 00000ab2: JUMP 00000ab3: JUMPDEST 00000ab4: PUSH1 0x01 00000ab6: PUSH1 0xa0 00000ab8: PUSH1 0x02 00000aba: EXP 00000abb: SUB 00000abc: CALLER 00000abd: AND 00000abe: PUSH1 0x00 00000ac0: SWAP1 00000ac1: DUP2 00000ac2: MSTORE 00000ac3: PUSH2 0x0102 00000ac6: PUSH1 0x20 00000ac8: MSTORE 00000ac9: PUSH1 0x40 00000acb: DUP2 00000acc: KECCAK256 00000acd: SLOAD 00000ace: SWAP1 00000acf: DUP1 00000ad0: DUP3 00000ad1: ISZERO 00000ad2: ISZERO 00000ad3: PUSH2 0x0adb 00000ad6: JUMPI 00000ad7: PUSH2 0x0b57 00000ada: JUMP 00000adb: JUMPDEST 00000adc: POP 00000add: POP 00000ade: PUSH1 0x00 00000ae0: DUP3 00000ae1: DUP2 00000ae2: MSTORE 00000ae3: PUSH2 0x0103 00000ae6: PUSH1 0x20 00000ae8: MSTORE 00000ae9: PUSH1 0x40 00000aeb: DUP2 00000aec: KECCAK256 00000aed: PUSH1 0x01 00000aef: DUP2 00000af0: ADD 00000af1: SLOAD 00000af2: PUSH1 0x02 00000af4: DUP5 00000af5: SWAP1 00000af6: EXP 00000af7: SWAP3 00000af8: SWAP1 00000af9: DUP4 00000afa: AND 00000afb: GT 00000afc: ISZERO 00000afd: PUSH2 0x0b57 00000b00: JUMPI 00000b01: DUP1 00000b02: SLOAD 00000b03: PUSH1 0x01 00000b05: SWAP1 00000b06: DUP2 00000b07: ADD 00000b08: DUP3 00000b09: SSTORE 00000b0a: DUP2 00000b0b: ADD 00000b0c: DUP1 00000b0d: SLOAD 00000b0e: DUP4 00000b0f: SWAP1 00000b10: SUB 00000b11: SWAP1 00000b12: SSTORE 00000b13: PUSH1 0x40 00000b15: DUP1 00000b16: MLOAD 00000b17: PUSH1 0x01 00000b19: PUSH1 0xa0 00000b1b: PUSH1 0x02 00000b1d: EXP 00000b1e: SUB 00000b1f: CALLER 00000b20: AND 00000b21: DUP2 00000b22: MSTORE 00000b23: PUSH1 0x20 00000b25: DUP2 00000b26: ADD 00000b27: DUP7 00000b28: SWAP1 00000b29: MSTORE 00000b2a: DUP2 00000b2b: MLOAD 00000b2c: PUSH32 0xc7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b 00000b4d: SWAP3 00000b4e: SWAP2 00000b4f: DUP2 00000b50: SWAP1 00000b51: SUB 00000b52: SWAP1 00000b53: SWAP2 00000b54: ADD 00000b55: SWAP1 00000b56: LOG1 00000b57: JUMPDEST 00000b58: JUMPDEST 00000b59: POP 00000b5a: POP 00000b5b: POP 00000b5c: POP 00000b5d: JUMP 00000b5e: JUMPDEST 00000b5f: PUSH1 0x00 00000b61: CALLDATASIZE 00000b62: PUSH1 0x40 00000b64: MLOAD 00000b65: DUP1 00000b66: DUP4 00000b67: DUP4 00000b68: DUP1 00000b69: DUP3 00000b6a: DUP5 00000b6b: CALLDATACOPY 00000b6c: DUP3 00000b6d: ADD 00000b6e: SWAP2 00000b6f: POP 00000b70: POP 00000b71: SWAP3 00000b72: POP 00000b73: POP 00000b74: POP 00000b75: PUSH1 0x40 00000b77: MLOAD 00000b78: DUP1 00000b79: SWAP2 00000b7a: SUB 00000b7b: SWAP1 00000b7c: KECCAK256 00000b7d: PUSH2 0x0b85 00000b80: DUP2 00000b81: PUSH2 0x0d93 00000b84: JUMP 00000b85: JUMPDEST 00000b86: ISZERO 00000b87: PUSH2 0x056b 00000b8a: JUMPI 00000b8b: PUSH1 0x01 00000b8d: SLOAD 00000b8e: DUP3 00000b8f: GT 00000b90: ISZERO 00000b91: PUSH2 0x0b99 00000b94: JUMPI 00000b95: PUSH2 0x056b 00000b98: JUMP 00000b99: JUMPDEST 00000b9a: PUSH1 0x00 00000b9c: DUP3 00000b9d: SWAP1 00000b9e: SSTORE 00000b9f: PUSH2 0x0ba6 00000ba2: PUSH2 0x0f32 00000ba5: JUMP 00000ba6: JUMPDEST 00000ba7: PUSH1 0x40 00000ba9: DUP1 00000baa: MLOAD 00000bab: DUP4 00000bac: DUP2 00000bad: MSTORE 00000bae: SWAP1 00000baf: MLOAD 00000bb0: PUSH32 0xacbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da 00000bd1: SWAP2 00000bd2: DUP2 00000bd3: SWAP1 00000bd4: SUB 00000bd5: PUSH1 0x20 00000bd7: ADD 00000bd8: SWAP1 00000bd9: LOG1 00000bda: JUMPDEST 00000bdb: JUMPDEST 00000bdc: JUMPDEST 00000bdd: POP 00000bde: POP 00000bdf: JUMP 00000be0: JUMPDEST 00000be1: PUSH1 0x00 00000be3: DUP3 00000be4: DUP2 00000be5: MSTORE 00000be6: PUSH2 0x0103 00000be9: PUSH1 0x20 00000beb: SWAP1 00000bec: DUP2 00000bed: MSTORE 00000bee: PUSH1 0x40 00000bf0: DUP1 00000bf1: DUP4 00000bf2: KECCAK256 00000bf3: PUSH1 0x01 00000bf5: PUSH1 0xa0 00000bf7: PUSH1 0x02 00000bf9: EXP 00000bfa: SUB 00000bfb: DUP6 00000bfc: AND 00000bfd: DUP5 00000bfe: MSTORE 00000bff: PUSH2 0x0102 00000c02: SWAP1 00000c03: SWAP3 00000c04: MSTORE 00000c05: DUP3 00000c06: KECCAK256 00000c07: SLOAD 00000c08: DUP3 00000c09: DUP2 00000c0a: ISZERO 00000c0b: ISZERO 00000c0c: PUSH2 0x0c18 00000c0f: JUMPI 00000c10: PUSH1 0x00 00000c12: SWAP4 00000c13: POP 00000c14: PUSH2 0x0c2c 00000c17: JUMP 00000c18: JUMPDEST 00000c19: DUP2 00000c1a: PUSH1 0x02 00000c1c: EXP 00000c1d: SWAP1 00000c1e: POP 00000c1f: DUP1 00000c20: DUP4 00000c21: PUSH1 0x01 00000c23: ADD 00000c24: SLOAD 00000c25: AND 00000c26: PUSH1 0x00 00000c28: EQ 00000c29: ISZERO 00000c2a: SWAP4 00000c2b: POP 00000c2c: JUMPDEST 00000c2d: POP 00000c2e: POP 00000c2f: POP 00000c30: SWAP3 00000c31: SWAP2 00000c32: POP 00000c33: POP 00000c34: JUMP 00000c35: JUMPDEST 00000c36: PUSH1 0x00 00000c38: PUSH1 0x02 00000c3a: DUP3 00000c3b: PUSH1 0x01 00000c3d: ADD 00000c3e: PUSH2 0x0100 00000c41: DUP2 00000c42: LT 00000c43: ISZERO 00000c44: PUSH2 0x0000 00000c47: JUMPI 00000c48: ADD 00000c49: PUSH1 0x00 00000c4b: JUMPDEST 00000c4c: POP 00000c4d: SLOAD 00000c4e: SWAP1 00000c4f: POP 00000c50: JUMPDEST 00000c51: SWAP2 00000c52: SWAP1 00000c53: POP 00000c54: JUMP 00000c55: JUMPDEST 00000c56: PUSH1 0x00 00000c58: CALLDATASIZE 00000c59: PUSH1 0x40 00000c5b: MLOAD 00000c5c: DUP1 00000c5d: DUP4 00000c5e: DUP4 00000c5f: DUP1 00000c60: DUP3 00000c61: DUP5 00000c62: CALLDATACOPY 00000c63: DUP3 00000c64: ADD 00000c65: SWAP2 00000c66: POP 00000c67: POP 00000c68: SWAP3 00000c69: POP 00000c6a: POP 00000c6b: POP 00000c6c: PUSH1 0x40 00000c6e: MLOAD 00000c6f: DUP1 00000c70: SWAP2 00000c71: SUB 00000c72: SWAP1 00000c73: KECCAK256 00000c74: PUSH2 0x0c7c 00000c77: DUP2 00000c78: PUSH2 0x0d93 00000c7b: JUMP 00000c7c: JUMPDEST 00000c7d: ISZERO 00000c7e: PUSH2 0x056b 00000c81: JUMPI 00000c82: DUP2 00000c83: PUSH1 0x01 00000c85: PUSH1 0xa0 00000c87: PUSH1 0x02 00000c89: EXP 00000c8a: SUB 00000c8b: AND 00000c8c: SELFDESTRUCT 00000c8d: JUMPDEST 00000c8e: JUMPDEST 00000c8f: JUMPDEST 00000c90: POP 00000c91: POP 00000c92: JUMP 00000c93: JUMPDEST 00000c94: PUSH1 0x00 00000c96: PUSH1 0x00 00000c98: CALLDATASIZE 00000c99: PUSH1 0x40 00000c9b: MLOAD 00000c9c: DUP1 00000c9d: DUP4 00000c9e: DUP4 00000c9f: DUP1 00000ca0: DUP3 00000ca1: DUP5 00000ca2: CALLDATACOPY 00000ca3: DUP3 00000ca4: ADD 00000ca5: SWAP2 00000ca6: POP 00000ca7: POP 00000ca8: SWAP3 00000ca9: POP 00000caa: POP 00000cab: POP 00000cac: PUSH1 0x40 00000cae: MLOAD 00000caf: DUP1 00000cb0: SWAP2 00000cb1: SUB 00000cb2: SWAP1 00000cb3: KECCAK256 00000cb4: PUSH2 0x0cbc 00000cb7: DUP2 00000cb8: PUSH2 0x0d93 00000cbb: JUMP 00000cbc: JUMPDEST 00000cbd: ISZERO 00000cbe: PUSH2 0x0b57 00000cc1: JUMPI 00000cc2: PUSH2 0x0cca 00000cc5: DUP4 00000cc6: PUSH2 0x0415 00000cc9: JUMP 00000cca: JUMPDEST 00000ccb: ISZERO 00000ccc: PUSH2 0x0cd4 00000ccf: JUMPI 00000cd0: PUSH2 0x0b57 00000cd3: JUMP 00000cd4: JUMPDEST 00000cd5: PUSH1 0x01 00000cd7: PUSH1 0xa0 00000cd9: PUSH1 0x02 00000cdb: EXP 00000cdc: SUB 00000cdd: DUP5 00000cde: AND 00000cdf: PUSH1 0x00 00000ce1: SWAP1 00000ce2: DUP2 00000ce3: MSTORE 00000ce4: PUSH2 0x0102 00000ce7: PUSH1 0x20 00000ce9: MSTORE 00000cea: PUSH1 0x40 00000cec: SWAP1 00000ced: KECCAK256 00000cee: SLOAD 00000cef: SWAP2 00000cf0: POP 00000cf1: DUP2 00000cf2: ISZERO 00000cf3: ISZERO 00000cf4: PUSH2 0x0cfc 00000cf7: JUMPI 00000cf8: PUSH2 0x0b57 00000cfb: JUMP 00000cfc: JUMPDEST 00000cfd: PUSH2 0x0d04 00000d00: PUSH2 0x0f32 00000d03: JUMP 00000d04: JUMPDEST 00000d05: DUP3 00000d06: PUSH1 0x01 00000d08: PUSH1 0xa0 00000d0a: PUSH1 0x02 00000d0c: EXP 00000d0d: SUB 00000d0e: AND 00000d0f: PUSH1 0x02 00000d11: DUP4 00000d12: PUSH2 0x0100 00000d15: DUP2 00000d16: LT 00000d17: ISZERO 00000d18: PUSH2 0x0000 00000d1b: JUMPI 00000d1c: ADD 00000d1d: PUSH1 0x00 00000d1f: JUMPDEST 00000d20: POP 00000d21: SSTORE 00000d22: PUSH1 0x01 00000d24: PUSH1 0xa0 00000d26: PUSH1 0x02 00000d28: EXP 00000d29: SUB 00000d2a: DUP1 00000d2b: DUP6 00000d2c: AND 00000d2d: PUSH1 0x00 00000d2f: DUP2 00000d30: DUP2 00000d31: MSTORE 00000d32: PUSH2 0x0102 00000d35: PUSH1 0x20 00000d37: SWAP1 00000d38: DUP2 00000d39: MSTORE 00000d3a: PUSH1 0x40 00000d3c: DUP1 00000d3d: DUP4 00000d3e: KECCAK256 00000d3f: DUP4 00000d40: SWAP1 00000d41: SSTORE 00000d42: SWAP4 00000d43: DUP8 00000d44: AND 00000d45: DUP1 00000d46: DUP4 00000d47: MSTORE 00000d48: SWAP2 00000d49: DUP5 00000d4a: SWAP1 00000d4b: KECCAK256 00000d4c: DUP7 00000d4d: SWAP1 00000d4e: SSTORE 00000d4f: DUP4 00000d50: MLOAD 00000d51: SWAP3 00000d52: DUP4 00000d53: MSTORE 00000d54: DUP3 00000d55: ADD 00000d56: MSTORE 00000d57: DUP2 00000d58: MLOAD 00000d59: PUSH32 0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c 00000d7a: SWAP3 00000d7b: SWAP2 00000d7c: DUP2 00000d7d: SWAP1 00000d7e: SUB 00000d7f: SWAP1 00000d80: SWAP2 00000d81: ADD 00000d82: SWAP1 00000d83: LOG1 00000d84: JUMPDEST 00000d85: JUMPDEST 00000d86: JUMPDEST 00000d87: POP 00000d88: POP 00000d89: POP 00000d8a: POP 00000d8b: JUMP 00000d8c: JUMPDEST 00000d8d: PUSH2 0x0105 00000d90: SLOAD 00000d91: DUP2 00000d92: JUMP 00000d93: JUMPDEST 00000d94: PUSH1 0x01 00000d96: PUSH1 0xa0 00000d98: PUSH1 0x02 00000d9a: EXP 00000d9b: SUB 00000d9c: CALLER 00000d9d: AND 00000d9e: PUSH1 0x00 00000da0: SWAP1 00000da1: DUP2 00000da2: MSTORE 00000da3: PUSH2 0x0102 00000da6: PUSH1 0x20 00000da8: MSTORE 00000da9: PUSH1 0x40 00000dab: DUP2 00000dac: KECCAK256 00000dad: SLOAD 00000dae: DUP2 00000daf: DUP1 00000db0: DUP3 00000db1: ISZERO 00000db2: ISZERO 00000db3: PUSH2 0x0dbb 00000db6: JUMPI 00000db7: PUSH2 0x0f28 00000dba: JUMP 00000dbb: JUMPDEST 00000dbc: PUSH1 0x00 00000dbe: DUP6 00000dbf: DUP2 00000dc0: MSTORE 00000dc1: PUSH2 0x0103 00000dc4: PUSH1 0x20 00000dc6: MSTORE 00000dc7: PUSH1 0x40 00000dc9: SWAP1 00000dca: KECCAK256 00000dcb: DUP1 00000dcc: SLOAD 00000dcd: SWAP1 00000dce: SWAP3 00000dcf: POP 00000dd0: ISZERO 00000dd1: ISZERO 00000dd2: PUSH2 0x0e4f 00000dd5: JUMPI 00000dd6: PUSH1 0x00 00000dd8: DUP1 00000dd9: SLOAD 00000dda: DUP4 00000ddb: SSTORE 00000ddc: PUSH1 0x01 00000dde: DUP1 00000ddf: DUP5 00000de0: ADD 00000de1: SWAP2 00000de2: SWAP1 00000de3: SWAP2 00000de4: SSTORE 00000de5: PUSH2 0x0104 00000de8: DUP1 00000de9: SLOAD 00000dea: SWAP2 00000deb: DUP3 00000dec: ADD 00000ded: DUP1 00000dee: DUP3 00000def: SSTORE 00000df0: DUP3 00000df1: DUP1 00000df2: ISZERO 00000df3: DUP3 00000df4: SWAP1 00000df5: GT 00000df6: PUSH2 0x0e24 00000df9: JUMPI 00000dfa: PUSH1 0x00 00000dfc: DUP4 00000dfd: DUP2 00000dfe: MSTORE 00000dff: PUSH1 0x20 00000e01: SWAP1 00000e02: KECCAK256 00000e03: PUSH2 0x0e24 00000e06: SWAP2 00000e07: DUP2 00000e08: ADD 00000e09: SWAP1 00000e0a: DUP4 00000e0b: ADD 00000e0c: JUMPDEST 00000e0d: DUP1 00000e0e: DUP3 00000e0f: GT 00000e10: ISZERO 00000e11: PUSH2 0x07cd 00000e14: JUMPI 00000e15: PUSH1 0x00 00000e17: DUP2 00000e18: SSTORE 00000e19: PUSH1 0x01 00000e1b: ADD 00000e1c: PUSH2 0x07b9 00000e1f: JUMP 00000e20: JUMPDEST 00000e21: POP 00000e22: SWAP1 00000e23: JUMP 00000e24: JUMPDEST 00000e25: JUMPDEST 00000e26: POP 00000e27: POP 00000e28: POP 00000e29: PUSH1 0x02 00000e2b: DUP4 00000e2c: ADD 00000e2d: DUP2 00000e2e: SWAP1 00000e2f: SSTORE 00000e30: PUSH2 0x0104 00000e33: DUP1 00000e34: SLOAD 00000e35: DUP8 00000e36: SWAP3 00000e37: SWAP1 00000e38: DUP2 00000e39: LT 00000e3a: ISZERO 00000e3b: PUSH2 0x0000 00000e3e: JUMPI 00000e3f: SWAP1 00000e40: PUSH1 0x00 00000e42: MSTORE 00000e43: PUSH1 0x20 00000e45: PUSH1 0x00 00000e47: KECCAK256 00000e48: SWAP1 00000e49: ADD 00000e4a: PUSH1 0x00 00000e4c: JUMPDEST 00000e4d: POP 00000e4e: SSTORE 00000e4f: JUMPDEST 00000e50: DUP3 00000e51: PUSH1 0x02 00000e53: EXP 00000e54: SWAP1 00000e55: POP 00000e56: DUP1 00000e57: DUP3 00000e58: PUSH1 0x01 00000e5a: ADD 00000e5b: SLOAD 00000e5c: AND 00000e5d: PUSH1 0x00 00000e5f: EQ 00000e60: ISZERO 00000e61: PUSH2 0x0f28 00000e64: JUMPI 00000e65: PUSH1 0x40 00000e67: DUP1 00000e68: MLOAD 00000e69: PUSH1 0x01 00000e6b: PUSH1 0xa0 00000e6d: PUSH1 0x02 00000e6f: EXP 00000e70: SUB 00000e71: CALLER 00000e72: AND 00000e73: DUP2 00000e74: MSTORE 00000e75: PUSH1 0x20 00000e77: DUP2 00000e78: ADD 00000e79: DUP8 00000e7a: SWAP1 00000e7b: MSTORE 00000e7c: DUP2 00000e7d: MLOAD 00000e7e: PUSH32 0xe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda 00000e9f: SWAP3 00000ea0: SWAP2 00000ea1: DUP2 00000ea2: SWAP1 00000ea3: SUB 00000ea4: SWAP1 00000ea5: SWAP2 00000ea6: ADD 00000ea7: SWAP1 00000ea8: LOG1 00000ea9: DUP2 00000eaa: SLOAD 00000eab: PUSH1 0x01 00000ead: SWAP1 00000eae: GT 00000eaf: PUSH2 0x0f15 00000eb2: JUMPI 00000eb3: PUSH1 0x00 00000eb5: DUP6 00000eb6: DUP2 00000eb7: MSTORE 00000eb8: PUSH2 0x0103 00000ebb: PUSH1 0x20 00000ebd: MSTORE 00000ebe: PUSH1 0x40 00000ec0: SWAP1 00000ec1: KECCAK256 00000ec2: PUSH1 0x02 00000ec4: ADD 00000ec5: SLOAD 00000ec6: PUSH2 0x0104 00000ec9: DUP1 00000eca: SLOAD 00000ecb: SWAP1 00000ecc: SWAP2 00000ecd: SWAP1 00000ece: DUP2 00000ecf: LT 00000ed0: ISZERO 00000ed1: PUSH2 0x0000 00000ed4: JUMPI 00000ed5: SWAP1 00000ed6: PUSH1 0x00 00000ed8: MSTORE 00000ed9: PUSH1 0x20 00000edb: PUSH1 0x00 00000edd: KECCAK256 00000ede: SWAP1 00000edf: ADD 00000ee0: PUSH1 0x00 00000ee2: JUMPDEST 00000ee3: POP 00000ee4: PUSH1 0x00 00000ee6: SWAP1 00000ee7: DUP2 00000ee8: SWAP1 00000ee9: SSTORE 00000eea: DUP6 00000eeb: DUP2 00000eec: MSTORE 00000eed: PUSH2 0x0103 00000ef0: PUSH1 0x20 00000ef2: MSTORE 00000ef3: PUSH1 0x40 00000ef5: DUP2 00000ef6: KECCAK256 00000ef7: DUP2 00000ef8: DUP2 00000ef9: SSTORE 00000efa: PUSH1 0x01 00000efc: DUP1 00000efd: DUP3 00000efe: ADD 00000eff: DUP4 00000f00: SWAP1 00000f01: SSTORE 00000f02: PUSH1 0x02 00000f04: SWAP1 00000f05: SWAP2 00000f06: ADD 00000f07: SWAP2 00000f08: SWAP1 00000f09: SWAP2 00000f0a: SSTORE 00000f0b: SWAP4 00000f0c: POP 00000f0d: PUSH2 0x0f28 00000f10: JUMP 00000f11: PUSH2 0x0f28 00000f14: JUMP 00000f15: JUMPDEST 00000f16: DUP2 00000f17: SLOAD 00000f18: PUSH1 0x00 00000f1a: NOT 00000f1b: ADD 00000f1c: DUP3 00000f1d: SSTORE 00000f1e: PUSH1 0x01 00000f20: DUP3 00000f21: ADD 00000f22: DUP1 00000f23: SLOAD 00000f24: DUP3 00000f25: OR 00000f26: SWAP1 00000f27: SSTORE 00000f28: JUMPDEST 00000f29: JUMPDEST 00000f2a: JUMPDEST 00000f2b: POP 00000f2c: POP 00000f2d: POP 00000f2e: SWAP2 00000f2f: SWAP1 00000f30: POP 00000f31: JUMP 00000f32: JUMPDEST 00000f33: PUSH2 0x0104 00000f36: SLOAD 00000f37: PUSH1 0x00 00000f39: JUMPDEST 00000f3a: DUP2 00000f3b: DUP2 00000f3c: LT 00000f3d: ISZERO 00000f3e: PUSH2 0x0ff5 00000f41: JUMPI 00000f42: PUSH2 0x0108 00000f45: PUSH1 0x00 00000f47: PUSH2 0x0104 00000f4a: DUP4 00000f4b: DUP2 00000f4c: SLOAD 00000f4d: DUP2 00000f4e: LT 00000f4f: ISZERO 00000f50: PUSH2 0x0000 00000f53: JUMPI 00000f54: SWAP1 00000f55: PUSH1 0x00 00000f57: MSTORE 00000f58: PUSH1 0x20 00000f5a: PUSH1 0x00 00000f5c: KECCAK256 00000f5d: SWAP1 00000f5e: ADD 00000f5f: PUSH1 0x00 00000f61: JUMPDEST 00000f62: POP 00000f63: SLOAD 00000f64: DUP2 00000f65: MSTORE 00000f66: PUSH1 0x20 00000f68: DUP2 00000f69: ADD 00000f6a: SWAP2 00000f6b: SWAP1 00000f6c: SWAP2 00000f6d: MSTORE 00000f6e: PUSH1 0x40 00000f70: ADD 00000f71: PUSH1 0x00 00000f73: SWAP1 00000f74: DUP2 00000f75: KECCAK256 00000f76: DUP1 00000f77: SLOAD 00000f78: PUSH1 0x01 00000f7a: PUSH1 0xa0 00000f7c: PUSH1 0x02 00000f7e: EXP 00000f7f: SUB 00000f80: NOT 00000f81: AND 00000f82: DUP2 00000f83: SSTORE 00000f84: PUSH1 0x01 00000f86: DUP1 00000f87: DUP3 00000f88: ADD 00000f89: DUP4 00000f8a: SWAP1 00000f8b: SSTORE 00000f8c: PUSH1 0x02 00000f8e: DUP1 00000f8f: DUP4 00000f90: ADD 00000f91: DUP1 00000f92: SLOAD 00000f93: DUP6 00000f94: DUP3 00000f95: SSTORE 00000f96: SWAP4 00000f97: SWAP5 00000f98: SWAP4 00000f99: SWAP1 00000f9a: SWAP3 00000f9b: DUP2 00000f9c: AND 00000f9d: ISZERO 00000f9e: PUSH2 0x0100 00000fa1: MUL 00000fa2: PUSH1 0x00 00000fa4: NOT 00000fa5: ADD 00000fa6: AND 00000fa7: DIV 00000fa8: PUSH1 0x1f 00000faa: DUP2 00000fab: SWAP1 00000fac: LT 00000fad: PUSH2 0x0fb6 00000fb0: JUMPI 00000fb1: POP 00000fb2: PUSH2 0x0fe8 00000fb5: JUMP 00000fb6: JUMPDEST 00000fb7: PUSH1 0x1f 00000fb9: ADD 00000fba: PUSH1 0x20 00000fbc: SWAP1 00000fbd: DIV 00000fbe: SWAP1 00000fbf: PUSH1 0x00 00000fc1: MSTORE 00000fc2: PUSH1 0x20 00000fc4: PUSH1 0x00 00000fc6: KECCAK256 00000fc7: SWAP1 00000fc8: DUP2 00000fc9: ADD 00000fca: SWAP1 00000fcb: PUSH2 0x0fe8 00000fce: SWAP2 00000fcf: SWAP1 00000fd0: JUMPDEST 00000fd1: DUP1 00000fd2: DUP3 00000fd3: GT 00000fd4: ISZERO 00000fd5: PUSH2 0x07cd 00000fd8: JUMPI 00000fd9: PUSH1 0x00 00000fdb: DUP2 00000fdc: SSTORE 00000fdd: PUSH1 0x01 00000fdf: ADD 00000fe0: PUSH2 0x07b9 00000fe3: JUMP 00000fe4: JUMPDEST 00000fe5: POP 00000fe6: SWAP1 00000fe7: JUMP 00000fe8: JUMPDEST 00000fe9: JUMPDEST 00000fea: POP 00000feb: POP 00000fec: POP 00000fed: JUMPDEST 00000fee: PUSH1 0x01 00000ff0: ADD 00000ff1: PUSH2 0x0f39 00000ff4: JUMP 00000ff5: JUMPDEST 00000ff6: PUSH2 0x056b 00000ff9: PUSH2 0x11a4 00000ffc: JUMP 00000ffd: JUMPDEST 00000ffe: JUMPDEST 00000fff: POP 00001000: POP 00001001: JUMP 00001002: JUMPDEST 00001003: PUSH1 0x01 00001005: JUMPDEST 00001006: PUSH1 0x01 00001008: SLOAD 00001009: DUP2 0000100a: LT 0000100b: ISZERO 0000100c: PUSH2 0x0476 0000100f: JUMPI 00001010: JUMPDEST 00001011: PUSH1 0x01 00001013: SLOAD 00001014: DUP2 00001015: LT 00001016: DUP1 00001017: ISZERO 00001018: PUSH2 0x1032 0000101b: JUMPI 0000101c: POP 0000101d: PUSH1 0x02 0000101f: DUP2 00001020: PUSH2 0x0100 00001023: DUP2 00001024: LT 00001025: ISZERO 00001026: PUSH2 0x0000 00001029: JUMPI 0000102a: ADD 0000102b: PUSH1 0x00 0000102d: JUMPDEST 0000102e: POP 0000102f: SLOAD 00001030: ISZERO 00001031: ISZERO 00001032: JUMPDEST 00001033: ISZERO 00001034: PUSH2 0x103f 00001037: JUMPI 00001038: PUSH1 0x01 0000103a: ADD 0000103b: PUSH2 0x1010 0000103e: JUMP 0000103f: JUMPDEST 00001040: JUMPDEST 00001041: PUSH1 0x01 00001043: PUSH1 0x01 00001045: SLOAD 00001046: GT 00001047: DUP1 00001048: ISZERO 00001049: PUSH2 0x1064 0000104c: JUMPI 0000104d: POP 0000104e: PUSH1 0x02 00001050: PUSH1 0x01 00001052: SLOAD 00001053: PUSH2 0x0100 00001056: DUP2 00001057: LT 00001058: ISZERO 00001059: PUSH2 0x0000 0000105c: JUMPI 0000105d: ADD 0000105e: PUSH1 0x00 00001060: JUMPDEST 00001061: POP 00001062: SLOAD 00001063: ISZERO 00001064: JUMPDEST 00001065: ISZERO 00001066: PUSH2 0x1078 00001069: JUMPI 0000106a: PUSH1 0x01 0000106c: DUP1 0000106d: SLOAD 0000106e: PUSH1 0x00 00001070: NOT 00001071: ADD 00001072: SWAP1 00001073: SSTORE 00001074: PUSH2 0x1040 00001077: JUMP 00001078: JUMPDEST 00001079: PUSH1 0x01 0000107b: SLOAD 0000107c: DUP2 0000107d: LT 0000107e: DUP1 0000107f: ISZERO 00001080: PUSH2 0x109c 00001083: JUMPI 00001084: POP 00001085: PUSH1 0x02 00001087: PUSH1 0x01 00001089: SLOAD 0000108a: PUSH2 0x0100 0000108d: DUP2 0000108e: LT 0000108f: ISZERO 00001090: PUSH2 0x0000 00001093: JUMPI 00001094: ADD 00001095: PUSH1 0x00 00001097: JUMPDEST 00001098: POP 00001099: SLOAD 0000109a: ISZERO 0000109b: ISZERO 0000109c: JUMPDEST 0000109d: DUP1 0000109e: ISZERO 0000109f: PUSH2 0x10b8 000010a2: JUMPI 000010a3: POP 000010a4: PUSH1 0x02 000010a6: DUP2 000010a7: PUSH2 0x0100 000010aa: DUP2 000010ab: LT 000010ac: ISZERO 000010ad: PUSH2 0x0000 000010b0: JUMPI 000010b1: ADD 000010b2: PUSH1 0x00 000010b4: JUMPDEST 000010b5: POP 000010b6: SLOAD 000010b7: ISZERO 000010b8: JUMPDEST 000010b9: ISZERO 000010ba: PUSH2 0x1128 000010bd: JUMPI 000010be: PUSH1 0x02 000010c0: PUSH1 0x01 000010c2: SLOAD 000010c3: PUSH2 0x0100 000010c6: DUP2 000010c7: LT 000010c8: ISZERO 000010c9: PUSH2 0x0000 000010cc: JUMPI 000010cd: ADD 000010ce: PUSH1 0x00 000010d0: JUMPDEST 000010d1: POP 000010d2: SLOAD 000010d3: PUSH1 0x02 000010d5: DUP3 000010d6: PUSH2 0x0100 000010d9: DUP2 000010da: LT 000010db: ISZERO 000010dc: PUSH2 0x0000 000010df: JUMPI 000010e0: ADD 000010e1: PUSH1 0x00 000010e3: JUMPDEST 000010e4: POP 000010e5: SSTORE 000010e6: DUP1 000010e7: PUSH2 0x0102 000010ea: PUSH1 0x00 000010ec: PUSH1 0x02 000010ee: DUP4 000010ef: PUSH2 0x0100 000010f2: DUP2 000010f3: LT 000010f4: ISZERO 000010f5: PUSH2 0x0000 000010f8: JUMPI 000010f9: ADD 000010fa: PUSH1 0x00 000010fc: JUMPDEST 000010fd: POP 000010fe: SLOAD 000010ff: DUP2 00001100: MSTORE 00001101: PUSH1 0x20 00001103: ADD 00001104: SWAP1 00001105: DUP2 00001106: MSTORE 00001107: PUSH1 0x20 00001109: ADD 0000110a: PUSH1 0x00 0000110c: KECCAK256 0000110d: DUP2 0000110e: SWAP1 0000110f: SSTORE 00001110: POP 00001111: PUSH1 0x00 00001113: PUSH1 0x02 00001115: PUSH1 0x01 00001117: SLOAD 00001118: PUSH2 0x0100 0000111b: DUP2 0000111c: LT 0000111d: ISZERO 0000111e: PUSH2 0x0000 00001121: JUMPI 00001122: ADD 00001123: PUSH1 0x00 00001125: JUMPDEST 00001126: POP 00001127: SSTORE 00001128: JUMPDEST 00001129: PUSH2 0x1005 0000112c: JUMP 0000112d: JUMPDEST 0000112e: JUMPDEST 0000112f: POP 00001130: JUMP 00001131: JUMPDEST 00001132: PUSH1 0x00 00001134: PUSH2 0x113c 00001137: CALLER 00001138: PUSH2 0x0415 0000113b: JUMP 0000113c: JUMPDEST 0000113d: ISZERO 0000113e: PUSH2 0x0431 00001141: JUMPI 00001142: PUSH2 0x0107 00001145: SLOAD 00001146: PUSH2 0x114d 00001149: PUSH2 0x1278 0000114c: JUMP 0000114d: JUMPDEST 0000114e: GT 0000114f: ISZERO 00001150: PUSH2 0x1166 00001153: JUMPI 00001154: PUSH1 0x00 00001156: PUSH2 0x0106 00001159: SSTORE 0000115a: PUSH2 0x1161 0000115d: PUSH2 0x1278 00001160: JUMP 00001161: JUMPDEST 00001162: PUSH2 0x0107 00001165: SSTORE 00001166: JUMPDEST 00001167: PUSH2 0x0106 0000116a: SLOAD 0000116b: DUP3 0000116c: DUP2 0000116d: ADD 0000116e: LT 0000116f: DUP1 00001170: ISZERO 00001171: SWAP1 00001172: PUSH2 0x1183 00001175: JUMPI 00001176: POP 00001177: PUSH2 0x0105 0000117a: SLOAD 0000117b: DUP3 0000117c: PUSH2 0x0106 0000117f: SLOAD 00001180: ADD 00001181: GT 00001182: ISZERO 00001183: JUMPDEST 00001184: ISZERO 00001185: PUSH2 0x1199 00001188: JUMPI 00001189: POP 0000118a: PUSH2 0x0106 0000118d: DUP1 0000118e: SLOAD 0000118f: DUP3 00001190: ADD 00001191: SWAP1 00001192: SSTORE 00001193: PUSH1 0x01 00001195: PUSH2 0x0431 00001198: JUMP 00001199: JUMPDEST 0000119a: POP 0000119b: PUSH1 0x00 0000119d: JUMPDEST 0000119e: JUMPDEST 0000119f: JUMPDEST 000011a0: SWAP2 000011a1: SWAP1 000011a2: POP 000011a3: JUMP 000011a4: JUMPDEST 000011a5: PUSH2 0x0104 000011a8: SLOAD 000011a9: PUSH1 0x00 000011ab: JUMPDEST 000011ac: DUP2 000011ad: DUP2 000011ae: LT 000011af: ISZERO 000011b0: PUSH2 0x1221 000011b3: JUMPI 000011b4: PUSH2 0x0104 000011b7: DUP2 000011b8: DUP2 000011b9: SLOAD 000011ba: DUP2 000011bb: LT 000011bc: ISZERO 000011bd: PUSH2 0x0000 000011c0: JUMPI 000011c1: SWAP1 000011c2: PUSH1 0x00 000011c4: MSTORE 000011c5: PUSH1 0x20 000011c7: PUSH1 0x00 000011c9: KECCAK256 000011ca: SWAP1 000011cb: ADD 000011cc: PUSH1 0x00 000011ce: JUMPDEST 000011cf: POP 000011d0: SLOAD 000011d1: ISZERO 000011d2: PUSH2 0x1218 000011d5: JUMPI 000011d6: PUSH2 0x0103 000011d9: PUSH1 0x00 000011db: PUSH2 0x0104 000011de: DUP4 000011df: DUP2 000011e0: SLOAD 000011e1: DUP2 000011e2: LT 000011e3: ISZERO 000011e4: PUSH2 0x0000 000011e7: JUMPI 000011e8: SWAP1 000011e9: PUSH1 0x00 000011eb: MSTORE 000011ec: PUSH1 0x20 000011ee: PUSH1 0x00 000011f0: KECCAK256 000011f1: SWAP1 000011f2: ADD 000011f3: PUSH1 0x00 000011f5: JUMPDEST 000011f6: POP 000011f7: SLOAD 000011f8: DUP2 000011f9: MSTORE 000011fa: PUSH1 0x20 000011fc: DUP2 000011fd: ADD 000011fe: SWAP2 000011ff: SWAP1 00001200: SWAP2 00001201: MSTORE 00001202: PUSH1 0x40 00001204: ADD 00001205: PUSH1 0x00 00001207: SWAP1 00001208: DUP2 00001209: KECCAK256 0000120a: DUP2 0000120b: DUP2 0000120c: SSTORE 0000120d: PUSH1 0x01 0000120f: DUP2 00001210: ADD 00001211: DUP3 00001212: SWAP1 00001213: SSTORE 00001214: PUSH1 0x02 00001216: ADD 00001217: SSTORE 00001218: JUMPDEST 00001219: JUMPDEST 0000121a: PUSH1 0x01 0000121c: ADD 0000121d: PUSH2 0x11ab 00001220: JUMP 00001221: JUMPDEST 00001222: PUSH2 0x0104 00001225: DUP1 00001226: SLOAD 00001227: PUSH1 0x00 00001229: DUP1 0000122a: DUP4 0000122b: SSTORE 0000122c: SWAP2 0000122d: SWAP1 0000122e: SWAP2 0000122f: MSTORE 00001230: PUSH2 0x040e 00001233: SWAP1 00001234: PUSH32 0x4c0be60200faa20559308cb7b5a1bb3255c16cb1cab91f525b5ae7a03d02fabe 00001255: SWAP1 00001256: DUP2 00001257: ADD 00001258: SWAP1 00001259: JUMPDEST 0000125a: DUP1 0000125b: DUP3 0000125c: GT 0000125d: ISZERO 0000125e: PUSH2 0x07cd 00001261: JUMPI 00001262: PUSH1 0x00 00001264: DUP2 00001265: SSTORE 00001266: PUSH1 0x01 00001268: ADD 00001269: PUSH2 0x07b9 0000126c: JUMP 0000126d: JUMPDEST 0000126e: POP 0000126f: SWAP1 00001270: JUMP 00001271: JUMPDEST 00001272: JUMPDEST 00001273: POP 00001274: JUMPDEST 00001275: POP 00001276: POP 00001277: JUMP 00001278: JUMPDEST 00001279: PUSH3 0x015180 0000127d: TIMESTAMP 0000127e: DIV 0000127f: JUMPDEST 00001280: SWAP1 00001281: JUMP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | cast | SELFDESTRUCT present | 85 | no | — |
viewevidence_json{
"notes": "selfdestruct can remove contract code and send funds; review reachability",
"selfdestruct_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xd31bd398a7d639fd944f4d94f90b134ab486fd64757898374a6821a82eb82f10
call_targets:
0x0c2665b200de022b98bf77492eb1dbea99c80e89
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd31bd398a7d639fd944f4d94f90b134ab486fd64757898374a6821a82eb82f10",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0c2665b200de022b98bf77492eb1dbea99c80e89"
],
"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": "0x173825d9",
"selector": "0x173825d9",
"calldata_variants": [
"0x173825d9",
"0x173825d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2f54bf6e",
"selector": "0x2f54bf6e",
"calldata_variants": [
"0x2f54bf6e",
"0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4123cb6b",
"selector": "0x4123cb6b",
"calldata_variants": [
"0x4123cb6b",
"0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x52375093",
"selector": "0x52375093",
"calldata_variants": [
"0x52375093",
"0x523750930000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c52c2f5",
"selector": "0x5c52c2f5",
"calldata_variants": [
"0x5c52c2f5",
"0x5c52c2f50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x659010e7",
"selector": "0x659010e7",
"calldata_variants": [
"0x659010e7",
"0x659010e70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7065cb48",
"selector": "0x7065cb48",
"calldata_variants": [
"0x7065cb48",
"0x7065cb480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x746c9171",
"selector": "0x746c9171",
"calldata_variants": [
"0x746c9171",
"0x746c91710000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1614,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2277,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xd31bd398a7d639fd944f4d94f90b134ab486fd64757898374a6821a82eb82f10
call_targets:
0x0c2665b200de022b98bf77492eb1dbea99c80e89
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd31bd398a7d639fd944f4d94f90b134ab486fd64757898374a6821a82eb82f10",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0c2665b200de022b98bf77492eb1dbea99c80e89"
],
"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": "0x173825d9",
"selector": "0x173825d9",
"calldata_variants": [
"0x173825d9",
"0x173825d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2f54bf6e",
"selector": "0x2f54bf6e",
"calldata_variants": [
"0x2f54bf6e",
"0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4123cb6b",
"selector": "0x4123cb6b",
"calldata_variants": [
"0x4123cb6b",
"0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x52375093",
"selector": "0x52375093",
"calldata_variants": [
"0x52375093",
"0x523750930000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c52c2f5",
"selector": "0x5c52c2f5",
"calldata_variants": [
"0x5c52c2f5",
"0x5c52c2f50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x659010e7",
"selector": "0x659010e7",
"calldata_variants": [
"0x659010e7",
"0x659010e70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7065cb48",
"selector": "0x7065cb48",
"calldata_variants": [
"0x7065cb48",
"0x7065cb480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x746c9171",
"selector": "0x746c9171",
"calldata_variants": [
"0x746c9171",
"0x746c91710000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1614,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2277,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| high | other | detector | SELFDESTRUCT reachable | 65 | no | no |
viewtrace_id: 0x22d77ec735b1fcfbd826ee8a25c0671a58fdeb6ae14ab273bf6fceec519dca80
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x22d77ec735b1fcfbd826ee8a25c0671a58fdeb6ae14ab273bf6fceec519dca80",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x173825d9",
"selector": "0x173825d9",
"calldata_variants": [
"0x173825d9",
"0x173825d90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2f54bf6e",
"selector": "0x2f54bf6e",
"calldata_variants": [
"0x2f54bf6e",
"0x2f54bf6e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4123cb6b",
"selector": "0x4123cb6b",
"calldata_variants": [
"0x4123cb6b",
"0x4123cb6b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x52375093",
"selector": "0x52375093",
"calldata_variants": [
"0x52375093",
"0x523750930000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5c52c2f5",
"selector": "0x5c52c2f5",
"calldata_variants": [
"0x5c52c2f5",
"0x5c52c2f50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x659010e7",
"selector": "0x659010e7",
"calldata_variants": [
"0x659010e7",
"0x659010e70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7065cb48",
"selector": "0x7065cb48",
"calldata_variants": [
"0x7065cb48",
"0x7065cb480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x746c9171",
"selector": "0x746c9171",
"calldata_variants": [
"0x746c9171",
"0x746c91710000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [],
"selfdestruct_count": 1
}
|
| low | other | codex | Unchecked low-level call results can desync accounting and clear pending txs | 65 | no | — |
viewevidence_json{
"evidence": "`_to.call.value(_value)(_data);` and `m_txs[_h].to.call.value(m_txs[_h].value)(m_txs[_h].data);` are invoked without checking the return value; state changes (daily spend update or `m_txs` deletion) proceed regardless of call success.",
"locations": [
"contracts/Contract.sol:346",
"contracts/Contract.sol:366"
],
"recommendation": "Check the return value of low-level calls and revert on failure, or only delete `m_txs[_h]` after a successful call. In Solidity 0.4.x, use `if(!_to.call.value(_value)(_data)) throw;` (or equivalent) to ensure accounting and pending state only update on success.",
"exploit_scenario": "A recipient contract that reverts can make `execute`/`confirm` treat a failed call as successful. In the daily-limit path, `_value` is counted as spent even though no funds were transferred, blocking further spending for the day. In the multisig path, the pending transaction is deleted after a failed call, forcing owners to recreate and re-approve the transaction."
}
|