019bab3b-aab8-7367-9218-8babaed6813f
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 |
|---|---|---|---|---|
| 38380 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38381 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38382 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38383 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38384 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38385 | detector.run | complete | 1 / 3 | 3 months ago |
| 38386 | validation.fork | complete | 1 / 3 | 3 months ago |
| 38977 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode analysis shows potentially dangerous opcodes (SELFDESTRUCT, CREATE/CREATE2) with unclear access control and several computed CALLs with value and unchecked returndata; evidence is heuristic-only so confidence is low to medium.","findings":[{"severity":"medium","category":"access_control","title":"SELFDESTRUCT reachable with unclear access control","exploit_scenario":"If the SELFDESTRUCT path is callable by an unprivileged user (e.g., via a fallback or unguarded selector), an attacker could permanently destroy the contract and force-send its ETH balance to a beneficiary address. Guard detection is heuristic only and shows a suspicious msg.sender == 0xffff... pattern, so access control cannot be confirmed from bytecode.","recommendation":"Locate the function that leads to SELFDESTRUCT and ensure it is protected by a robust authorization check (e.g., owner/admin in storage), and consider removing SELFDESTRUCT entirely if not strictly required.","evidence":"Detector flagged SELFDESTRUCT reachable; basic block contains SELFDESTRUCT at pc 12151. Guards reported are heuristic and compare msg.sender to 0xffff... which may be a false positive.","locations":["pc:0x2f77"]},{"severity":"low","category":"access_control","title":"CREATE/CREATE2 opcodes reachable; deployment control unclear","exploit_scenario":"If the CREATE/CREATE2 path is accessible to arbitrary callers, they could deploy arbitrary contracts through this contract (potentially using its balance), or abuse metamorphic deployment patterns. This may be intended if the contract is a factory, but access control cannot be confirmed from bytecode alone.","recommendation":"Confirm that contract creation is gated to trusted roles or constrained by fixed init code and salt; if not intended, remove CREATE/CREATE2 usage.","evidence":"Heuristics report CREATE and CREATE2 present; basic block shows CREATE2 then CREATE at pc 12164 with no obvious local guard in the same block.","locations":["pc:0x2f84"]},{"severity":"low","category":"reentrancy","title":"Computed CALLs with value and unchecked returndata","exploit_scenario":"Multiple CALL sites use computed targets and values with no visible returndata checks. If any of these targets are user-controlled and state updates occur after the CALL, this could enable reentrancy or silent failures. A validation trace observed the target as the contract itself, but this was not confirmed across all paths.","recommendation":"Audit each CALL site to ensure targets are trusted, consider using checks-effects-interactions ordering or reentrancy guards, and verify return values where appropriate.","evidence":"Eight CALL sites have computed target/value and returndata_checked=null; detector flagged untrusted CALL and ETH value transfer as reachable, but not confirmed across all paths.","locations":["pc:0x0e26","pc:0x1307","pc:0x14c2","pc:0x19d7","pc:0x1c44","pc:0x2053","pc:0x282e","pc:0x2d72"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-k3l70mss
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bab75-b0c3-7f81-a1d0-e69bb3fc456e
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
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.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-k3l70mss succeeded in 11ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-k3l70mss succeeded in 19ms:
{
"analysis_artifact": {
"address": "0xd1901bd2063d2c8f649bf31b6df6d0f853a6bda3",
"artifact_hash": "0xa50a24ec28307579c2fc0f51c5507681e3539c212b87c65f17118fcbac30b73d",
"artifact_json": {
"auth": {
"guards": [
{
"pc": 2979,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4552,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5416,
"type": "msg_sender_eq_const",
thinking
**Analyzing callsites and access control heuristics**
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json' in /tmp/codex-k3l70mss succeeded in 31ms:
12588: "storage": {
13003: "storage": {
13418: "storage": {
13833: "storage": {
14248: "storage": {
14663: "storage": {
15078: "storage": {
15493: "storage": {
15908: "storage": {
16323: "storage": {
16738: "storage": {
17153: "storage": {
17568: "storage": {
17983: "storage": {
18398: "storage": {
18813: "storage": {
19228: "storage": {
19643: "storage": {
20058: "storage": {
20473: "storage": {
thinking
**Investigating storage structure in JSON**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print(data.keys())
print(data['analysis_artifact'].keys())
print(data['analysis_artifact']['artifact_json'].keys())
PY" in /tmp/codex-k3l70mss succeeded in 30ms:
dict_keys(['analysis_artifact', 'analysis_run', 'artifact', 'capability_graph', 'detector_findings', 'heuristics_summary'])
dict_keys(['address', 'artifact_hash', 'artifact_json', 'block_number', 'chain_id', 'codehash', 'created_at', 'id', 'updated_at', 'version'])
dict_keys(['auth', 'basic_blocks', 'callsites', 'cfg_edges', 'cfg_hash', 'dispatcher_type', 'function_entries', 'functions', 'selectors', 'sinks', 'storage', 'version'])
thinking
**Inspecting artifact_json.storage details**
exec
/bin/bash -lc "python - <<'PY'
import json, textwrap
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
storage=data['analysis_artifact']['artifact_json'].get('storage')
print(type(storage))
if isinstance(storage, dict):
print(storage.keys())
# show small subset
for k in list(storage.keys())[:10]:
print(k, storage[k])
PY" in /tmp/codex-k3l70mss succeeded in 34ms:
<class 'dict'>
dict_keys(['keccak_count', 'reads', 'slots', 'writes'])
keccak_count 20
reads 119
slots [{'op': 'SLOAD', 'pc': 2927, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3108, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3138, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3347, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3376, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3939, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 4333, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000003'}, {'op': 'SLOAD', 'pc': 4422, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000100'}, {'op': 'SLOAD', 'pc': 4490, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 4500, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4592, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4653, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 4899, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 5356, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 5364, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5456, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5626, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5656, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5795, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 5820, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 5877, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 5947, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 5973, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 6059, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 6120, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 6190, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 6216, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 6302, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 6381, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 6445, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 6722, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 6752, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 6961, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 6990, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7553, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 7946, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7956, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 8048, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 8109, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 8311, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 8331, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 8436, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000a'}, {'op': 'SLOAD', 'pc': 8444, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 8536, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 8636, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 9296, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 9326, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 9465, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 9491, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 9548, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 9618, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 9644, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 9730, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 9791, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 9861, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 9887, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 9973, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 10052, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 10116, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 10732, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 10985, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000b'}, {'op': 'SLOAD', 'pc': 10988, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 11029, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000a'}, {'op': 'SLOAD', 'pc': 11089, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 11305, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000b'}, {'op': 'SLOAD', 'pc': 11315, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 11407, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 11468, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 11662, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SSTORE', 'pc': 12134, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}]
writes 50
thinking
**Analyzing function selectors and callsites**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
cs=data['analysis_artifact']['artifact_json'].get('callsites', [])
print('callsites', len(cs))
for c in cs:
print(c)
PY" in /tmp/codex-k3l70mss succeeded in 32ms:
callsites 8
{'opcode': 'CALL', 'pc': 3622, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 4871, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 5314, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 6615, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 7236, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 8275, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 10286, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
{'opcode': 'CALL', 'pc': 11634, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
thinking
**Analyzing potential contract vulnerabilities**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print(data['analysis_artifact']['artifact_json'].get('sinks'))
PY" in /tmp/codex-k3l70mss succeeded in 54ms:
{'call': 8, 'create': 1, 'create2': 1, 'delegatecall': 0, 'selfdestruct': 1, 'staticcall': 0, 'upgrade_slot_write_suspected': False}
thinking
**Scanning basic blocks for SELFDESTRUCT**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json'].get('basic_blocks', [])
locs=[]
for b in blocks:
if any(op=='SELFDESTRUCT' for op in b.get('opcodes', [])):
locs.append((b['start_pc'], b['end_pc']))
print(locs)
PY" in /tmp/codex-k3l70mss succeeded in 29ms:
[(12151, 12163)]
thinking
**Converting decimal to hex**
exec
/bin/bash -lc "python - <<'PY'
print(hex(12151))
print(hex(12163))
PY" in /tmp/codex-k3l70mss succeeded in 17ms:
0x2f77
0x2f83
thinking
**Searching for CREATE/CREATE2 opcodes**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json'].get('basic_blocks', [])
locs=[]
for b in blocks:
if any(op in ('CREATE','CREATE2') for op in b.get('opcodes', [])):
locs.append((b['start_pc'], b['end_pc'], [op for op in b.get('opcodes', []) if op in ('CREATE','CREATE2')]))
print(locs)
PY" in /tmp/codex-k3l70mss succeeded in 62ms:
[(12164, 12168, ['CREATE2', 'CREATE'])]
thinking
**Converting addresses to hex notation**
exec
/bin/bash -lc "python - <<'PY'
pcs=[3622,4871,5314,6615,7236,8275,10286,11634]
print([hex(p) for p in pcs])
PY" in /tmp/codex-k3l70mss succeeded in 17ms:
['0xe26', '0x1307', '0x14c2', '0x19d7', '0x1c44', '0x2053', '0x282e', '0x2d72']
thinking
**Evaluating access control and external calls**
I'm analyzing the presence of access control, ownership functions, and external call patterns. The guard detection looks unreliable, so I remain cautious about access control coverage. I’m also reviewing low-level CALLs with value transfers lacking return-data checks, potential selfdestruct and create opcodes, and upgradeability indicators, aiming to identify any security risks or findings with appropriate severity.
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
func_entries=data['analysis_artifact']['artifact_json'].get('function_entries')
print('function_entries', type(func_entries), len(func_entries))
print(func_entries[:5])
PY" in /tmp/codex-k3l70mss succeeded in 45ms:
function_entries <class 'list'> 28
[{'entry_pc': 356, 'selector': '0xffffffff'}, {'entry_pc': 112116998, 'selector': '0x02bb744c'}, {'entry_pc': 117300739, 'selector': '0x06aec506'}, {'entry_pc': 207978160, 'selector': '0x06fdde03'}, {'entry_pc': 374979563, 'selector': '0x0c657eb0'}]
thinking
**Analyzing entry points and guards**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
blocks=data['analysis_artifact']['artifact_json'].get('basic_blocks', [])
for b in blocks:
if b.get('start_pc')==12151:
print(b)
if b.get('start_pc')==12164:
print(b)
PY" in /tmp/codex-k3l70mss succeeded in 33ms:
{'end_pc': 12163, 'hash': '0x76a55669ae1edecef07b2ce6cd69362b3bd6ef3c2edb39f2bcb31792346c3f8b', 'opcodes': ['OP_A1', 'PUSH6', 'SHA3', 'OP_96', 'OP_81', 'MSTORE8', 'SELFDESTRUCT'], 'start_pc': 12151}
{'end_pc': 12168, 'hash': '0x93a968ce761009b7f996f4e90fe2929b3d655a1add52daf243f540182c3dddb8', 'opcodes': ['CREATE2', 'EXTCODECOPY', 'SUB', 'CREATE', 'REVERT'], 'start_pc': 12164}
thinking
**Analyzing potential bytecode vulnerabilities**
I'm gathering potential findings about selfdestruct, create opcodes, and computed calls in bytecode with unclear access control. I’ll emphasize uncertainties, possible exploit scenarios, severities, and evidence, then prepare a structured JSON response summarizing these risks.
codex
{"no_findings":false,"summary":"Bytecode analysis shows potentially dangerous opcodes (SELFDESTRUCT, CREATE/CREATE2) with unclear access control and several computed CALLs with value and unchecked returndata; evidence is heuristic-only so confidence is low to medium.","findings":[{"severity":"medium","category":"access_control","title":"SELFDESTRUCT reachable with unclear access control","exploit_scenario":"If the SELFDESTRUCT path is callable by an unprivileged user (e.g., via a fallback or unguarded selector), an attacker could permanently destroy the contract and force-send its ETH balance to a beneficiary address. Guard detection is heuristic only and shows a suspicious msg.sender == 0xffff... pattern, so access control cannot be confirmed from bytecode.","recommendation":"Locate the function that leads to SELFDESTRUCT and ensure it is protected by a robust authorization check (e.g., owner/admin in storage), and consider removing SELFDESTRUCT entirely if not strictly required.","evidence":"Detector flagged SELFDESTRUCT reachable; basic block contains SELFDESTRUCT at pc 12151. Guards reported are heuristic and compare msg.sender to 0xffff... which may be a false positive.","locations":["pc:0x2f77"]},{"severity":"low","category":"access_control","title":"CREATE/CREATE2 opcodes reachable; deployment control unclear","exploit_scenario":"If the CREATE/CREATE2 path is accessible to arbitrary callers, they could deploy arbitrary contracts through this contract (potentially using its balance), or abuse metamorphic deployment patterns. This may be intended if the contract is a factory, but access control cannot be confirmed from bytecode alone.","recommendation":"Confirm that contract creation is gated to trusted roles or constrained by fixed init code and salt; if not intended, remove CREATE/CREATE2 usage.","evidence":"Heuristics report CREATE and CREATE2 present; basic block shows CREATE2 then CREATE at pc 12164 with no obvious local guard in the same block.","locations":["pc:0x2f84"]},{"severity":"low","category":"reentrancy","title":"Computed CALLs with value and unchecked returndata","exploit_scenario":"Multiple CALL sites use computed targets and values with no visible returndata checks. If any of these targets are user-controlled and state updates occur after the CALL, this could enable reentrancy or silent failures. A validation trace observed the target as the contract itself, but this was not confirmed across all paths.","recommendation":"Audit each CALL site to ensure targets are trusted, consider using checks-effects-interactions ordering or reentrancy guards, and verify return values where appropriate.","evidence":"Eight CALL sites have computed target/value and returndata_checked=null; detector flagged untrusted CALL and ETH value transfer as reachable, but not confirmed across all paths.","locations":["pc:0x0e26","pc:0x1307","pc:0x14c2","pc:0x19d7","pc:0x1c44","pc:0x2053","pc:0x282e","pc:0x2d72"]}]}
tokens used
35,791
{
"codex": {
"ran_at": "2026-01-11T05:11:35.347032+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 24390,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode analysis shows potentially dangerous opcodes (SELFDESTRUCT, CREATE/CREATE2) with unclear access control and several computed CALLs with value and unchecked returndata; evidence is heuristic-only so confidence is low to medium.",
"raw_final": {
"summary": "Bytecode analysis shows potentially dangerous opcodes (SELFDESTRUCT, CREATE/CREATE2) with unclear access control and several computed CALLs with value and unchecked returndata; evidence is heuristic-only so confidence is low to medium.",
"findings": [
{
"title": "SELFDESTRUCT reachable with unclear access control",
"category": "access_control",
"evidence": "Detector flagged SELFDESTRUCT reachable; basic block contains SELFDESTRUCT at pc 12151. Guards reported are heuristic and compare msg.sender to 0xffff... which may be a false positive.",
"severity": "medium",
"locations": [
"pc:0x2f77"
],
"recommendation": "Locate the function that leads to SELFDESTRUCT and ensure it is protected by a robust authorization check (e.g., owner/admin in storage), and consider removing SELFDESTRUCT entirely if not strictly required.",
"exploit_scenario": "If the SELFDESTRUCT path is callable by an unprivileged user (e.g., via a fallback or unguarded selector), an attacker could permanently destroy the contract and force-send its ETH balance to a beneficiary address. Guard detection is heuristic only and shows a suspicious msg.sender == 0xffff... pattern, so access control cannot be confirmed from bytecode."
},
{
"title": "CREATE/CREATE2 opcodes reachable; deployment control unclear",
"category": "access_control",
"evidence": "Heuristics report CREATE and CREATE2 present; basic block shows CREATE2 then CREATE at pc 12164 with no obvious local guard in the same block.",
"severity": "low",
"locations": [
"pc:0x2f84"
],
"recommendation": "Confirm that contract creation is gated to trusted roles or constrained by fixed init code and salt; if not intended, remove CREATE/CREATE2 usage.",
"exploit_scenario": "If the CREATE/CREATE2 path is accessible to arbitrary callers, they could deploy arbitrary contracts through this contract (potentially using its balance), or abuse metamorphic deployment patterns. This may be intended if the contract is a factory, but access control cannot be confirmed from bytecode alone."
},
{
"title": "Computed CALLs with value and unchecked returndata",
"category": "reentrancy",
"evidence": "Eight CALL sites have computed target/value and returndata_checked=null; detector flagged untrusted CALL and ETH value transfer as reachable, but not confirmed across all paths.",
"severity": "low",
"locations": [
"pc:0x0e26",
"pc:0x1307",
"pc:0x14c2",
"pc:0x19d7",
"pc:0x1c44",
"pc:0x2053",
"pc:0x282e",
"pc:0x2d72"
],
"recommendation": "Audit each CALL site to ensure targets are trusted, consider using checks-effects-interactions ordering or reentrancy guards, and verify return values where appropriate.",
"exploit_scenario": "Multiple CALL sites use computed targets and values with no visible returndata checks. If any of these targets are user-controlled and state updates occur after the CALL, this could enable reentrancy or silent failures. A validation trace observed the target as the contract itself, but this was not confirmed across all paths."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x015f 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: SWAP1 0000002f: DIV 00000030: PUSH4 0xffffffff 00000035: AND 00000036: DUP1 00000037: PUSH4 0x02bb744c 0000003c: EQ 0000003d: PUSH2 0x0164 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x06aec506 00000047: EQ 00000048: PUSH2 0x01a9 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x06fdde03 00000052: EQ 00000053: PUSH2 0x02aa 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x0c657eb0 0000005d: EQ 0000005e: PUSH2 0x033a 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x1659bbeb 00000068: EQ 00000069: PUSH2 0x0365 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x19045a25 00000073: EQ 00000074: PUSH2 0x03aa 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x313ce567 0000007e: EQ 0000007f: PUSH2 0x0461 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0x3f4ba83a 00000089: EQ 0000008a: PUSH2 0x048c 0000008d: JUMPI 0000008e: DUP1 0000008f: PUSH4 0x460c79c1 00000094: EQ 00000095: PUSH2 0x04a3 00000098: JUMPI 00000099: DUP1 0000009a: PUSH4 0x4e0d6e18 0000009f: EQ 000000a0: PUSH2 0x0516 000000a3: JUMPI 000000a4: DUP1 000000a5: PUSH4 0x54fd4d50 000000aa: EQ 000000ab: PUSH2 0x0617 000000ae: JUMPI 000000af: DUP1 000000b0: PUSH4 0x560b65f7 000000b5: EQ 000000b6: PUSH2 0x0642 000000b9: JUMPI 000000ba: DUP1 000000bb: PUSH4 0x5c975abb 000000c0: EQ 000000c1: PUSH2 0x0687 000000c4: JUMPI 000000c5: DUP1 000000c6: PUSH4 0x71061b0e 000000cb: EQ 000000cc: PUSH2 0x06b6 000000cf: JUMPI 000000d0: DUP1 000000d1: PUSH4 0x736a3b64 000000d6: EQ 000000d7: PUSH2 0x06fb 000000da: JUMPI 000000db: DUP1 000000dc: PUSH4 0x8456cb59 000000e1: EQ 000000e2: PUSH2 0x0726 000000e5: JUMPI 000000e6: DUP1 000000e7: PUSH4 0x8da5cb5b 000000ec: EQ 000000ed: PUSH2 0x073d 000000f0: JUMPI 000000f1: DUP1 000000f2: PUSH4 0xabf163b5 000000f7: EQ 000000f8: PUSH2 0x0794 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0xb05345e4 00000102: EQ 00000103: PUSH2 0x07ef 00000106: JUMPI 00000107: DUP1 00000108: PUSH4 0xba7b33ad 0000010d: EQ 0000010e: PUSH2 0x0844 00000111: JUMPI 00000112: DUP1 00000113: PUSH4 0xd0038c71 00000118: EQ 00000119: PUSH2 0x08fb 0000011c: JUMPI 0000011d: DUP1 0000011e: PUSH4 0xd1c554ea 00000123: EQ 00000124: PUSH2 0x096e 00000127: JUMPI 00000128: DUP1 00000129: PUSH4 0xd1f8ad91 0000012e: EQ 0000012f: PUSH2 0x0a25 00000132: JUMPI 00000133: DUP1 00000134: PUSH4 0xea6579dc 00000139: EQ 0000013a: PUSH2 0x0a74 0000013d: JUMPI 0000013e: DUP1 0000013f: PUSH4 0xf2fde38b 00000144: EQ 00000145: PUSH2 0x0ab5 00000148: JUMPI 00000149: DUP1 0000014a: PUSH4 0xf3309707 0000014f: EQ 00000150: PUSH2 0x0af8 00000153: JUMPI 00000154: DUP1 00000155: PUSH4 0xfbfb122c 0000015a: EQ 0000015b: PUSH2 0x0b23 0000015e: JUMPI 0000015f: JUMPDEST 00000160: PUSH1 0x00 00000162: DUP1 00000163: REVERT 00000164: JUMPDEST 00000165: CALLVALUE 00000166: DUP1 00000167: ISZERO 00000168: PUSH2 0x0170 0000016b: JUMPI 0000016c: PUSH1 0x00 0000016e: DUP1 0000016f: REVERT 00000170: JUMPDEST 00000171: POP 00000172: PUSH2 0x018f 00000175: PUSH1 0x04 00000177: DUP1 00000178: CALLDATASIZE 00000179: SUB 0000017a: DUP2 0000017b: ADD 0000017c: SWAP1 0000017d: DUP1 0000017e: DUP1 0000017f: CALLDATALOAD 00000180: SWAP1 00000181: PUSH1 0x20 00000183: ADD 00000184: SWAP1 00000185: SWAP3 00000186: SWAP2 00000187: SWAP1 00000188: POP 00000189: POP 0000018a: POP 0000018b: PUSH2 0x0b68 0000018e: JUMP 0000018f: JUMPDEST 00000190: PUSH1 0x40 00000192: MLOAD 00000193: DUP1 00000194: DUP3 00000195: ISZERO 00000196: ISZERO 00000197: ISZERO 00000198: ISZERO 00000199: DUP2 0000019a: MSTORE 0000019b: PUSH1 0x20 0000019d: ADD 0000019e: SWAP2 0000019f: POP 000001a0: POP 000001a1: PUSH1 0x40 000001a3: MLOAD 000001a4: DUP1 000001a5: SWAP2 000001a6: SUB 000001a7: SWAP1 000001a8: RETURN 000001a9: JUMPDEST 000001aa: CALLVALUE 000001ab: DUP1 000001ac: ISZERO 000001ad: PUSH2 0x01b5 000001b0: JUMPI 000001b1: PUSH1 0x00 000001b3: DUP1 000001b4: REVERT 000001b5: JUMPDEST 000001b6: POP 000001b7: PUSH2 0x02a8 000001ba: PUSH1 0x04 000001bc: DUP1 000001bd: CALLDATASIZE 000001be: SUB 000001bf: DUP2 000001c0: ADD 000001c1: SWAP1 000001c2: DUP1 000001c3: DUP1 000001c4: CALLDATALOAD 000001c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001da: AND 000001db: SWAP1 000001dc: PUSH1 0x20 000001de: ADD 000001df: SWAP1 000001e0: SWAP3 000001e1: SWAP2 000001e2: SWAP1 000001e3: DUP1 000001e4: CALLDATALOAD 000001e5: SWAP1 000001e6: PUSH1 0x20 000001e8: ADD 000001e9: SWAP1 000001ea: DUP3 000001eb: ADD 000001ec: DUP1 000001ed: CALLDATALOAD 000001ee: SWAP1 000001ef: PUSH1 0x20 000001f1: ADD 000001f2: SWAP1 000001f3: DUP1 000001f4: DUP1 000001f5: PUSH1 0x1f 000001f7: ADD 000001f8: PUSH1 0x20 000001fa: DUP1 000001fb: SWAP2 000001fc: DIV 000001fd: MUL 000001fe: PUSH1 0x20 00000200: ADD 00000201: PUSH1 0x40 00000203: MLOAD 00000204: SWAP1 00000205: DUP2 00000206: ADD 00000207: PUSH1 0x40 00000209: MSTORE 0000020a: DUP1 0000020b: SWAP4 0000020c: SWAP3 0000020d: SWAP2 0000020e: SWAP1 0000020f: DUP2 00000210: DUP2 00000211: MSTORE 00000212: PUSH1 0x20 00000214: ADD 00000215: DUP4 00000216: DUP4 00000217: DUP1 00000218: DUP3 00000219: DUP5 0000021a: CALLDATACOPY 0000021b: DUP3 0000021c: ADD 0000021d: SWAP2 0000021e: POP 0000021f: POP 00000220: POP 00000221: POP 00000222: POP 00000223: POP 00000224: SWAP2 00000225: SWAP3 00000226: SWAP2 00000227: SWAP3 00000228: SWAP1 00000229: DUP1 0000022a: CALLDATALOAD 0000022b: SWAP1 0000022c: PUSH1 0x20 0000022e: ADD 0000022f: SWAP1 00000230: SWAP3 00000231: SWAP2 00000232: SWAP1 00000233: DUP1 00000234: CALLDATALOAD 00000235: SWAP1 00000236: PUSH1 0x20 00000238: ADD 00000239: SWAP1 0000023a: SWAP3 0000023b: SWAP2 0000023c: SWAP1 0000023d: DUP1 0000023e: CALLDATALOAD 0000023f: SWAP1 00000240: PUSH1 0x20 00000242: ADD 00000243: SWAP1 00000244: SWAP3 00000245: SWAP2 00000246: SWAP1 00000247: DUP1 00000248: CALLDATALOAD 00000249: SWAP1 0000024a: PUSH1 0x20 0000024c: ADD 0000024d: SWAP1 0000024e: SWAP3 0000024f: SWAP2 00000250: SWAP1 00000251: DUP1 00000252: CALLDATALOAD 00000253: SWAP1 00000254: PUSH1 0x20 00000256: ADD 00000257: SWAP1 00000258: SWAP3 00000259: SWAP2 0000025a: SWAP1 0000025b: DUP1 0000025c: CALLDATALOAD 0000025d: SWAP1 0000025e: PUSH1 0x20 00000260: ADD 00000261: SWAP1 00000262: DUP3 00000263: ADD 00000264: DUP1 00000265: CALLDATALOAD 00000266: SWAP1 00000267: PUSH1 0x20 00000269: ADD 0000026a: SWAP1 0000026b: DUP1 0000026c: DUP1 0000026d: PUSH1 0x1f 0000026f: ADD 00000270: PUSH1 0x20 00000272: DUP1 00000273: SWAP2 00000274: DIV 00000275: MUL 00000276: PUSH1 0x20 00000278: ADD 00000279: PUSH1 0x40 0000027b: MLOAD 0000027c: SWAP1 0000027d: DUP2 0000027e: ADD 0000027f: PUSH1 0x40 00000281: MSTORE 00000282: DUP1 00000283: SWAP4 00000284: SWAP3 00000285: SWAP2 00000286: SWAP1 00000287: DUP2 00000288: DUP2 00000289: MSTORE 0000028a: PUSH1 0x20 0000028c: ADD 0000028d: DUP4 0000028e: DUP4 0000028f: DUP1 00000290: DUP3 00000291: DUP5 00000292: CALLDATACOPY 00000293: DUP3 00000294: ADD 00000295: SWAP2 00000296: POP 00000297: POP 00000298: POP 00000299: POP 0000029a: POP 0000029b: POP 0000029c: SWAP2 0000029d: SWAP3 0000029e: SWAP2 0000029f: SWAP3 000002a0: SWAP1 000002a1: POP 000002a2: POP 000002a3: POP 000002a4: PUSH2 0x0bd5 000002a7: JUMP 000002a8: JUMPDEST 000002a9: STOP 000002aa: JUMPDEST 000002ab: CALLVALUE 000002ac: DUP1 000002ad: ISZERO 000002ae: PUSH2 0x02b6 000002b1: JUMPI 000002b2: PUSH1 0x00 000002b4: DUP1 000002b5: REVERT 000002b6: JUMPDEST 000002b7: POP 000002b8: PUSH2 0x02bf 000002bb: PUSH2 0x10e9 000002be: JUMP 000002bf: JUMPDEST 000002c0: PUSH1 0x40 000002c2: MLOAD 000002c3: DUP1 000002c4: DUP1 000002c5: PUSH1 0x20 000002c7: ADD 000002c8: DUP3 000002c9: DUP2 000002ca: SUB 000002cb: DUP3 000002cc: MSTORE 000002cd: DUP4 000002ce: DUP2 000002cf: DUP2 000002d0: MLOAD 000002d1: DUP2 000002d2: MSTORE 000002d3: PUSH1 0x20 000002d5: ADD 000002d6: SWAP2 000002d7: POP 000002d8: DUP1 000002d9: MLOAD 000002da: SWAP1 000002db: PUSH1 0x20 000002dd: ADD 000002de: SWAP1 000002df: DUP1 000002e0: DUP4 000002e1: DUP4 000002e2: PUSH1 0x00 000002e4: JUMPDEST 000002e5: DUP4 000002e6: DUP2 000002e7: LT 000002e8: ISZERO 000002e9: PUSH2 0x02ff 000002ec: JUMPI 000002ed: DUP1 000002ee: DUP3 000002ef: ADD 000002f0: MLOAD 000002f1: DUP2 000002f2: DUP5 000002f3: ADD 000002f4: MSTORE 000002f5: PUSH1 0x20 000002f7: DUP2 000002f8: ADD 000002f9: SWAP1 000002fa: POP 000002fb: PUSH2 0x02e4 000002fe: JUMP 000002ff: JUMPDEST 00000300: POP 00000301: POP 00000302: POP 00000303: POP 00000304: SWAP1 00000305: POP 00000306: SWAP1 00000307: DUP2 00000308: ADD 00000309: SWAP1 0000030a: PUSH1 0x1f 0000030c: AND 0000030d: DUP1 0000030e: ISZERO 0000030f: PUSH2 0x032c 00000312: JUMPI 00000313: DUP1 00000314: DUP3 00000315: SUB 00000316: DUP1 00000317: MLOAD 00000318: PUSH1 0x01 0000031a: DUP4 0000031b: PUSH1 0x20 0000031d: SUB 0000031e: PUSH2 0x0100 00000321: EXP 00000322: SUB 00000323: NOT 00000324: AND 00000325: DUP2 00000326: MSTORE 00000327: PUSH1 0x20 00000329: ADD 0000032a: SWAP2 0000032b: POP 0000032c: JUMPDEST 0000032d: POP 0000032e: SWAP3 0000032f: POP 00000330: POP 00000331: POP 00000332: PUSH1 0x40 00000334: MLOAD 00000335: DUP1 00000336: SWAP2 00000337: SUB 00000338: SWAP1 00000339: RETURN 0000033a: JUMPDEST 0000033b: CALLVALUE 0000033c: DUP1 0000033d: ISZERO 0000033e: PUSH2 0x0346 00000341: JUMPI 00000342: PUSH1 0x00 00000344: DUP1 00000345: REVERT 00000346: JUMPDEST 00000347: POP 00000348: PUSH2 0x034f 0000034b: PUSH2 0x1187 0000034e: JUMP 0000034f: JUMPDEST 00000350: PUSH1 0x40 00000352: MLOAD 00000353: DUP1 00000354: DUP3 00000355: DUP2 00000356: MSTORE 00000357: PUSH1 0x20 00000359: ADD 0000035a: SWAP2 0000035b: POP 0000035c: POP 0000035d: PUSH1 0x40 0000035f: MLOAD 00000360: DUP1 00000361: SWAP2 00000362: SUB 00000363: SWAP1 00000364: RETURN 00000365: JUMPDEST 00000366: CALLVALUE 00000367: DUP1 00000368: ISZERO 00000369: PUSH2 0x0371 0000036c: JUMPI 0000036d: PUSH1 0x00 0000036f: DUP1 00000370: REVERT 00000371: JUMPDEST 00000372: POP 00000373: PUSH2 0x0390 00000376: PUSH1 0x04 00000378: DUP1 00000379: CALLDATASIZE 0000037a: SUB 0000037b: DUP2 0000037c: ADD 0000037d: SWAP1 0000037e: DUP1 0000037f: DUP1 00000380: CALLDATALOAD 00000381: SWAP1 00000382: PUSH1 0x20 00000384: ADD 00000385: SWAP1 00000386: SWAP3 00000387: SWAP2 00000388: SWAP1 00000389: POP 0000038a: POP 0000038b: POP 0000038c: PUSH2 0x118d 0000038f: JUMP 00000390: JUMPDEST 00000391: PUSH1 0x40 00000393: MLOAD 00000394: DUP1 00000395: DUP3 00000396: ISZERO 00000397: ISZERO 00000398: ISZERO 00000399: ISZERO 0000039a: DUP2 0000039b: MSTORE 0000039c: PUSH1 0x20 0000039e: ADD 0000039f: SWAP2 000003a0: POP 000003a1: POP 000003a2: PUSH1 0x40 000003a4: MLOAD 000003a5: DUP1 000003a6: SWAP2 000003a7: SUB 000003a8: SWAP1 000003a9: RETURN 000003aa: JUMPDEST 000003ab: CALLVALUE 000003ac: DUP1 000003ad: ISZERO 000003ae: PUSH2 0x03b6 000003b1: JUMPI 000003b2: PUSH1 0x00 000003b4: DUP1 000003b5: REVERT 000003b6: JUMPDEST 000003b7: POP 000003b8: PUSH2 0x041f 000003bb: PUSH1 0x04 000003bd: DUP1 000003be: CALLDATASIZE 000003bf: SUB 000003c0: DUP2 000003c1: ADD 000003c2: SWAP1 000003c3: DUP1 000003c4: DUP1 000003c5: CALLDATALOAD 000003c6: PUSH1 0x00 000003c8: NOT 000003c9: AND 000003ca: SWAP1 000003cb: PUSH1 0x20 000003cd: ADD 000003ce: SWAP1 000003cf: SWAP3 000003d0: SWAP2 000003d1: SWAP1 000003d2: DUP1 000003d3: CALLDATALOAD 000003d4: SWAP1 000003d5: PUSH1 0x20 000003d7: ADD 000003d8: SWAP1 000003d9: DUP3 000003da: ADD 000003db: DUP1 000003dc: CALLDATALOAD 000003dd: SWAP1 000003de: PUSH1 0x20 000003e0: ADD 000003e1: SWAP1 000003e2: DUP1 000003e3: DUP1 000003e4: PUSH1 0x1f 000003e6: ADD 000003e7: PUSH1 0x20 000003e9: DUP1 000003ea: SWAP2 000003eb: DIV 000003ec: MUL 000003ed: PUSH1 0x20 000003ef: ADD 000003f0: PUSH1 0x40 000003f2: MLOAD 000003f3: SWAP1 000003f4: DUP2 000003f5: ADD 000003f6: PUSH1 0x40 000003f8: MSTORE 000003f9: DUP1 000003fa: SWAP4 000003fb: SWAP3 000003fc: SWAP2 000003fd: SWAP1 000003fe: DUP2 000003ff: DUP2 00000400: MSTORE 00000401: PUSH1 0x20 00000403: ADD 00000404: DUP4 00000405: DUP4 00000406: DUP1 00000407: DUP3 00000408: DUP5 00000409: CALLDATACOPY 0000040a: DUP3 0000040b: ADD 0000040c: SWAP2 0000040d: POP 0000040e: POP 0000040f: POP 00000410: POP 00000411: POP 00000412: POP 00000413: SWAP2 00000414: SWAP3 00000415: SWAP2 00000416: SWAP3 00000417: SWAP1 00000418: POP 00000419: POP 0000041a: POP 0000041b: PUSH2 0x1340 0000041e: JUMP 0000041f: JUMPDEST 00000420: PUSH1 0x40 00000422: MLOAD 00000423: DUP1 00000424: DUP3 00000425: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000043a: AND 0000043b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000450: AND 00000451: DUP2 00000452: MSTORE 00000453: PUSH1 0x20 00000455: ADD 00000456: SWAP2 00000457: POP 00000458: POP 00000459: PUSH1 0x40 0000045b: MLOAD 0000045c: DUP1 0000045d: SWAP2 0000045e: SUB 0000045f: SWAP1 00000460: RETURN 00000461: JUMPDEST 00000462: CALLVALUE 00000463: DUP1 00000464: ISZERO 00000465: PUSH2 0x046d 00000468: JUMPI 00000469: PUSH1 0x00 0000046b: DUP1 0000046c: REVERT 0000046d: JUMPDEST 0000046e: POP 0000046f: PUSH2 0x0476 00000472: PUSH2 0x14e9 00000475: JUMP 00000476: JUMPDEST 00000477: PUSH1 0x40 00000479: MLOAD 0000047a: DUP1 0000047b: DUP3 0000047c: DUP2 0000047d: MSTORE 0000047e: PUSH1 0x20 00000480: ADD 00000481: SWAP2 00000482: POP 00000483: POP 00000484: PUSH1 0x40 00000486: MLOAD 00000487: DUP1 00000488: SWAP2 00000489: SUB 0000048a: SWAP1 0000048b: RETURN 0000048c: JUMPDEST 0000048d: CALLVALUE 0000048e: DUP1 0000048f: ISZERO 00000490: PUSH2 0x0498 00000493: JUMPI 00000494: PUSH1 0x00 00000496: DUP1 00000497: REVERT 00000498: JUMPDEST 00000499: POP 0000049a: PUSH2 0x04a1 0000049d: PUSH2 0x14ef 000004a0: JUMP 000004a1: JUMPDEST 000004a2: STOP 000004a3: JUMPDEST 000004a4: CALLVALUE 000004a5: DUP1 000004a6: ISZERO 000004a7: PUSH2 0x04af 000004aa: JUMPI 000004ab: PUSH1 0x00 000004ad: DUP1 000004ae: REVERT 000004af: JUMPDEST 000004b0: POP 000004b1: PUSH2 0x0514 000004b4: PUSH1 0x04 000004b6: DUP1 000004b7: CALLDATASIZE 000004b8: SUB 000004b9: DUP2 000004ba: ADD 000004bb: SWAP1 000004bc: DUP1 000004bd: DUP1 000004be: CALLDATALOAD 000004bf: SWAP1 000004c0: PUSH1 0x20 000004c2: ADD 000004c3: SWAP1 000004c4: DUP3 000004c5: ADD 000004c6: DUP1 000004c7: CALLDATALOAD 000004c8: SWAP1 000004c9: PUSH1 0x20 000004cb: ADD 000004cc: SWAP1 000004cd: DUP1 000004ce: DUP1 000004cf: PUSH1 0x1f 000004d1: ADD 000004d2: PUSH1 0x20 000004d4: DUP1 000004d5: SWAP2 000004d6: DIV 000004d7: MUL 000004d8: PUSH1 0x20 000004da: ADD 000004db: PUSH1 0x40 000004dd: MLOAD 000004de: SWAP1 000004df: DUP2 000004e0: ADD 000004e1: PUSH1 0x40 000004e3: MSTORE 000004e4: DUP1 000004e5: SWAP4 000004e6: SWAP3 000004e7: SWAP2 000004e8: SWAP1 000004e9: DUP2 000004ea: DUP2 000004eb: MSTORE 000004ec: PUSH1 0x20 000004ee: ADD 000004ef: DUP4 000004f0: DUP4 000004f1: DUP1 000004f2: DUP3 000004f3: DUP5 000004f4: CALLDATACOPY 000004f5: DUP3 000004f6: ADD 000004f7: SWAP2 000004f8: POP 000004f9: POP 000004fa: POP 000004fb: POP 000004fc: POP 000004fd: POP 000004fe: SWAP2 000004ff: SWAP3 00000500: SWAP2 00000501: SWAP3 00000502: SWAP1 00000503: DUP1 00000504: CALLDATALOAD 00000505: SWAP1 00000506: PUSH1 0x20 00000508: ADD 00000509: SWAP1 0000050a: SWAP3 0000050b: SWAP2 0000050c: SWAP1 0000050d: POP 0000050e: POP 0000050f: POP 00000510: PUSH2 0x15ae 00000513: JUMP 00000514: JUMPDEST 00000515: STOP 00000516: JUMPDEST 00000517: CALLVALUE 00000518: DUP1 00000519: ISZERO 0000051a: PUSH2 0x0522 0000051d: JUMPI 0000051e: PUSH1 0x00 00000520: DUP1 00000521: REVERT 00000522: JUMPDEST 00000523: POP 00000524: PUSH2 0x0615 00000527: PUSH1 0x04 00000529: DUP1 0000052a: CALLDATASIZE 0000052b: SUB 0000052c: DUP2 0000052d: ADD 0000052e: SWAP1 0000052f: DUP1 00000530: DUP1 00000531: CALLDATALOAD 00000532: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000547: AND 00000548: SWAP1 00000549: PUSH1 0x20 0000054b: ADD 0000054c: SWAP1 0000054d: SWAP3 0000054e: SWAP2 0000054f: SWAP1 00000550: DUP1 00000551: CALLDATALOAD 00000552: SWAP1 00000553: PUSH1 0x20 00000555: ADD 00000556: SWAP1 00000557: DUP3 00000558: ADD 00000559: DUP1 0000055a: CALLDATALOAD 0000055b: SWAP1 0000055c: PUSH1 0x20 0000055e: ADD 0000055f: SWAP1 00000560: DUP1 00000561: DUP1 00000562: PUSH1 0x1f 00000564: ADD 00000565: PUSH1 0x20 00000567: DUP1 00000568: SWAP2 00000569: DIV 0000056a: MUL 0000056b: PUSH1 0x20 0000056d: ADD 0000056e: PUSH1 0x40 00000570: MLOAD 00000571: SWAP1 00000572: DUP2 00000573: ADD 00000574: PUSH1 0x40 00000576: MSTORE 00000577: DUP1 00000578: SWAP4 00000579: SWAP3 0000057a: SWAP2 0000057b: SWAP1 0000057c: DUP2 0000057d: DUP2 0000057e: MSTORE 0000057f: PUSH1 0x20 00000581: ADD 00000582: DUP4 00000583: DUP4 00000584: DUP1 00000585: DUP3 00000586: DUP5 00000587: CALLDATACOPY 00000588: DUP3 00000589: ADD 0000058a: SWAP2 0000058b: POP 0000058c: POP 0000058d: POP 0000058e: POP 0000058f: POP 00000590: POP 00000591: SWAP2 00000592: SWAP3 00000593: SWAP2 00000594: SWAP3 00000595: SWAP1 00000596: DUP1 00000597: CALLDATALOAD 00000598: SWAP1 00000599: PUSH1 0x20 0000059b: ADD 0000059c: SWAP1 0000059d: SWAP3 0000059e: SWAP2 0000059f: SWAP1 000005a0: DUP1 000005a1: CALLDATALOAD 000005a2: SWAP1 000005a3: PUSH1 0x20 000005a5: ADD 000005a6: SWAP1 000005a7: SWAP3 000005a8: SWAP2 000005a9: SWAP1 000005aa: DUP1 000005ab: CALLDATALOAD 000005ac: SWAP1 000005ad: PUSH1 0x20 000005af: ADD 000005b0: SWAP1 000005b1: SWAP3 000005b2: SWAP2 000005b3: SWAP1 000005b4: DUP1 000005b5: CALLDATALOAD 000005b6: SWAP1 000005b7: PUSH1 0x20 000005b9: ADD 000005ba: SWAP1 000005bb: SWAP3 000005bc: SWAP2 000005bd: SWAP1 000005be: DUP1 000005bf: CALLDATALOAD 000005c0: SWAP1 000005c1: PUSH1 0x20 000005c3: ADD 000005c4: SWAP1 000005c5: SWAP3 000005c6: SWAP2 000005c7: SWAP1 000005c8: DUP1 000005c9: CALLDATALOAD 000005ca: SWAP1 000005cb: PUSH1 0x20 000005cd: ADD 000005ce: SWAP1 000005cf: DUP3 000005d0: ADD 000005d1: DUP1 000005d2: CALLDATALOAD 000005d3: SWAP1 000005d4: PUSH1 0x20 000005d6: ADD 000005d7: SWAP1 000005d8: DUP1 000005d9: DUP1 000005da: PUSH1 0x1f 000005dc: ADD 000005dd: PUSH1 0x20 000005df: DUP1 000005e0: SWAP2 000005e1: DIV 000005e2: MUL 000005e3: PUSH1 0x20 000005e5: ADD 000005e6: PUSH1 0x40 000005e8: MLOAD 000005e9: SWAP1 000005ea: DUP2 000005eb: ADD 000005ec: PUSH1 0x40 000005ee: MSTORE 000005ef: DUP1 000005f0: SWAP4 000005f1: SWAP3 000005f2: SWAP2 000005f3: SWAP1 000005f4: DUP2 000005f5: DUP2 000005f6: MSTORE 000005f7: PUSH1 0x20 000005f9: ADD 000005fa: DUP4 000005fb: DUP4 000005fc: DUP1 000005fd: DUP3 000005fe: DUP5 000005ff: CALLDATACOPY 00000600: DUP3 00000601: ADD 00000602: SWAP2 00000603: POP 00000604: POP 00000605: POP 00000606: POP 00000607: POP 00000608: POP 00000609: SWAP2 0000060a: SWAP3 0000060b: SWAP2 0000060c: SWAP3 0000060d: SWAP1 0000060e: POP 0000060f: POP 00000610: POP 00000611: PUSH2 0x19f3 00000614: JUMP 00000615: JUMPDEST 00000616: STOP 00000617: JUMPDEST 00000618: CALLVALUE 00000619: DUP1 0000061a: ISZERO 0000061b: PUSH2 0x0623 0000061e: JUMPI 0000061f: PUSH1 0x00 00000621: DUP1 00000622: REVERT 00000623: JUMPDEST 00000624: POP 00000625: PUSH2 0x062c 00000628: PUSH2 0x1f07 0000062b: JUMP 0000062c: JUMPDEST 0000062d: PUSH1 0x40 0000062f: MLOAD 00000630: DUP1 00000631: DUP3 00000632: DUP2 00000633: MSTORE 00000634: PUSH1 0x20 00000636: ADD 00000637: SWAP2 00000638: POP 00000639: POP 0000063a: PUSH1 0x40 0000063c: MLOAD 0000063d: DUP1 0000063e: SWAP2 0000063f: SUB 00000640: SWAP1 00000641: RETURN 00000642: JUMPDEST 00000643: CALLVALUE 00000644: DUP1 00000645: ISZERO 00000646: PUSH2 0x064e 00000649: JUMPI 0000064a: PUSH1 0x00 0000064c: DUP1 0000064d: REVERT 0000064e: JUMPDEST 0000064f: POP 00000650: PUSH2 0x066d 00000653: PUSH1 0x04 00000655: DUP1 00000656: CALLDATASIZE 00000657: SUB 00000658: DUP2 00000659: ADD 0000065a: SWAP1 0000065b: DUP1 0000065c: DUP1 0000065d: CALLDATALOAD 0000065e: SWAP1 0000065f: PUSH1 0x20 00000661: ADD 00000662: SWAP1 00000663: SWAP3 00000664: SWAP2 00000665: SWAP1 00000666: POP 00000667: POP 00000668: POP 00000669: PUSH2 0x1f0d 0000066c: JUMP 0000066d: JUMPDEST 0000066e: PUSH1 0x40 00000670: MLOAD 00000671: DUP1 00000672: DUP3 00000673: ISZERO 00000674: ISZERO 00000675: ISZERO 00000676: ISZERO 00000677: DUP2 00000678: MSTORE 00000679: PUSH1 0x20 0000067b: ADD 0000067c: SWAP2 0000067d: POP 0000067e: POP 0000067f: PUSH1 0x40 00000681: MLOAD 00000682: DUP1 00000683: SWAP2 00000684: SUB 00000685: SWAP1 00000686: RETURN 00000687: JUMPDEST 00000688: CALLVALUE 00000689: DUP1 0000068a: ISZERO 0000068b: PUSH2 0x0693 0000068e: JUMPI 0000068f: PUSH1 0x00 00000691: DUP1 00000692: REVERT 00000693: JUMPDEST 00000694: POP 00000695: PUSH2 0x069c 00000698: PUSH2 0x2071 0000069b: JUMP 0000069c: JUMPDEST 0000069d: PUSH1 0x40 0000069f: MLOAD 000006a0: DUP1 000006a1: DUP3 000006a2: ISZERO 000006a3: ISZERO 000006a4: ISZERO 000006a5: ISZERO 000006a6: DUP2 000006a7: MSTORE 000006a8: PUSH1 0x20 000006aa: ADD 000006ab: SWAP2 000006ac: POP 000006ad: POP 000006ae: PUSH1 0x40 000006b0: MLOAD 000006b1: DUP1 000006b2: SWAP2 000006b3: SUB 000006b4: SWAP1 000006b5: RETURN 000006b6: JUMPDEST 000006b7: CALLVALUE 000006b8: DUP1 000006b9: ISZERO 000006ba: PUSH2 0x06c2 000006bd: JUMPI 000006be: PUSH1 0x00 000006c0: DUP1 000006c1: REVERT 000006c2: JUMPDEST 000006c3: POP 000006c4: PUSH2 0x06e1 000006c7: PUSH1 0x04 000006c9: DUP1 000006ca: CALLDATASIZE 000006cb: SUB 000006cc: DUP2 000006cd: ADD 000006ce: SWAP1 000006cf: DUP1 000006d0: DUP1 000006d1: CALLDATALOAD 000006d2: SWAP1 000006d3: PUSH1 0x20 000006d5: ADD 000006d6: SWAP1 000006d7: SWAP3 000006d8: SWAP2 000006d9: SWAP1 000006da: POP 000006db: POP 000006dc: POP 000006dd: PUSH2 0x2084 000006e0: JUMP 000006e1: JUMPDEST 000006e2: PUSH1 0x40 000006e4: MLOAD 000006e5: DUP1 000006e6: DUP3 000006e7: ISZERO 000006e8: ISZERO 000006e9: ISZERO 000006ea: ISZERO 000006eb: DUP2 000006ec: MSTORE 000006ed: PUSH1 0x20 000006ef: ADD 000006f0: SWAP2 000006f1: POP 000006f2: POP 000006f3: PUSH1 0x40 000006f5: MLOAD 000006f6: DUP1 000006f7: SWAP2 000006f8: SUB 000006f9: SWAP1 000006fa: RETURN 000006fb: JUMPDEST 000006fc: CALLVALUE 000006fd: DUP1 000006fe: ISZERO 000006ff: PUSH2 0x0707 00000702: JUMPI 00000703: PUSH1 0x00 00000705: DUP1 00000706: REVERT 00000707: JUMPDEST 00000708: POP 00000709: PUSH2 0x0710 0000070c: PUSH2 0x20f1 0000070f: JUMP 00000710: JUMPDEST 00000711: PUSH1 0x40 00000713: MLOAD 00000714: DUP1 00000715: DUP3 00000716: DUP2 00000717: MSTORE 00000718: PUSH1 0x20 0000071a: ADD 0000071b: SWAP2 0000071c: POP 0000071d: POP 0000071e: PUSH1 0x40 00000720: MLOAD 00000721: DUP1 00000722: SWAP2 00000723: SUB 00000724: SWAP1 00000725: RETURN 00000726: JUMPDEST 00000727: CALLVALUE 00000728: DUP1 00000729: ISZERO 0000072a: PUSH2 0x0732 0000072d: JUMPI 0000072e: PUSH1 0x00 00000730: DUP1 00000731: REVERT 00000732: JUMPDEST 00000733: POP 00000734: PUSH2 0x073b 00000737: PUSH2 0x20f7 0000073a: JUMP 0000073b: JUMPDEST 0000073c: STOP 0000073d: JUMPDEST 0000073e: CALLVALUE 0000073f: DUP1 00000740: ISZERO 00000741: PUSH2 0x0749 00000744: JUMPI 00000745: PUSH1 0x00 00000747: DUP1 00000748: REVERT 00000749: JUMPDEST 0000074a: POP 0000074b: PUSH2 0x0752 0000074e: PUSH2 0x21b7 00000751: JUMP 00000752: JUMPDEST 00000753: PUSH1 0x40 00000755: MLOAD 00000756: DUP1 00000757: DUP3 00000758: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000076d: AND 0000076e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000783: AND 00000784: DUP2 00000785: MSTORE 00000786: PUSH1 0x20 00000788: ADD 00000789: SWAP2 0000078a: POP 0000078b: POP 0000078c: PUSH1 0x40 0000078e: MLOAD 0000078f: DUP1 00000790: SWAP2 00000791: SUB 00000792: SWAP1 00000793: RETURN 00000794: JUMPDEST 00000795: CALLVALUE 00000796: DUP1 00000797: ISZERO 00000798: PUSH2 0x07a0 0000079b: JUMPI 0000079c: PUSH1 0x00 0000079e: DUP1 0000079f: REVERT 000007a0: JUMPDEST 000007a1: POP 000007a2: PUSH2 0x07d5 000007a5: PUSH1 0x04 000007a7: DUP1 000007a8: CALLDATASIZE 000007a9: SUB 000007aa: DUP2 000007ab: ADD 000007ac: SWAP1 000007ad: DUP1 000007ae: DUP1 000007af: CALLDATALOAD 000007b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007c5: AND 000007c6: SWAP1 000007c7: PUSH1 0x20 000007c9: ADD 000007ca: SWAP1 000007cb: SWAP3 000007cc: SWAP2 000007cd: SWAP1 000007ce: POP 000007cf: POP 000007d0: POP 000007d1: PUSH2 0x21dc 000007d4: JUMP 000007d5: JUMPDEST 000007d6: PUSH1 0x40 000007d8: MLOAD 000007d9: DUP1 000007da: DUP3 000007db: ISZERO 000007dc: ISZERO 000007dd: ISZERO 000007de: ISZERO 000007df: DUP2 000007e0: MSTORE 000007e1: PUSH1 0x20 000007e3: ADD 000007e4: SWAP2 000007e5: POP 000007e6: POP 000007e7: PUSH1 0x40 000007e9: MLOAD 000007ea: DUP1 000007eb: SWAP2 000007ec: SUB 000007ed: SWAP1 000007ee: RETURN 000007ef: JUMPDEST 000007f0: CALLVALUE 000007f1: DUP1 000007f2: ISZERO 000007f3: PUSH2 0x07fb 000007f6: JUMPI 000007f7: PUSH1 0x00 000007f9: DUP1 000007fa: REVERT 000007fb: JUMPDEST 000007fc: POP 000007fd: PUSH2 0x082e 00000800: PUSH1 0x04 00000802: DUP1 00000803: CALLDATASIZE 00000804: SUB 00000805: DUP2 00000806: ADD 00000807: SWAP1 00000808: DUP1 00000809: DUP1 0000080a: CALLDATALOAD 0000080b: SWAP1 0000080c: PUSH1 0x20 0000080e: ADD 0000080f: SWAP1 00000810: SWAP3 00000811: SWAP2 00000812: SWAP1 00000813: DUP1 00000814: CALLDATALOAD 00000815: SWAP1 00000816: PUSH1 0x20 00000818: ADD 00000819: SWAP1 0000081a: SWAP3 0000081b: SWAP2 0000081c: SWAP1 0000081d: DUP1 0000081e: CALLDATALOAD 0000081f: SWAP1 00000820: PUSH1 0x20 00000822: ADD 00000823: SWAP1 00000824: SWAP3 00000825: SWAP2 00000826: SWAP1 00000827: POP 00000828: POP 00000829: POP 0000082a: PUSH2 0x21fc 0000082d: JUMP 0000082e: JUMPDEST 0000082f: PUSH1 0x40 00000831: MLOAD 00000832: DUP1 00000833: DUP3 00000834: DUP2 00000835: MSTORE 00000836: PUSH1 0x20 00000838: ADD 00000839: SWAP2 0000083a: POP 0000083b: POP 0000083c: PUSH1 0x40 0000083e: MLOAD 0000083f: DUP1 00000840: SWAP2 00000841: SUB 00000842: SWAP1 00000843: RETURN 00000844: JUMPDEST 00000845: CALLVALUE 00000846: DUP1 00000847: ISZERO 00000848: PUSH2 0x0850 0000084b: JUMPI 0000084c: PUSH1 0x00 0000084e: DUP1 0000084f: REVERT 00000850: JUMPDEST 00000851: POP 00000852: PUSH2 0x08dd 00000855: PUSH1 0x04 00000857: DUP1 00000858: CALLDATASIZE 00000859: SUB 0000085a: DUP2 0000085b: ADD 0000085c: SWAP1 0000085d: DUP1 0000085e: DUP1 0000085f: CALLDATALOAD 00000860: SWAP1 00000861: PUSH1 0x20 00000863: ADD 00000864: SWAP1 00000865: DUP3 00000866: ADD 00000867: DUP1 00000868: CALLDATALOAD 00000869: SWAP1 0000086a: PUSH1 0x20 0000086c: ADD 0000086d: SWAP1 0000086e: DUP1 0000086f: DUP1 00000870: PUSH1 0x1f 00000872: ADD 00000873: PUSH1 0x20 00000875: DUP1 00000876: SWAP2 00000877: DIV 00000878: MUL 00000879: PUSH1 0x20 0000087b: ADD 0000087c: PUSH1 0x40 0000087e: MLOAD 0000087f: SWAP1 00000880: DUP2 00000881: ADD 00000882: PUSH1 0x40 00000884: MSTORE 00000885: DUP1 00000886: SWAP4 00000887: SWAP3 00000888: SWAP2 00000889: SWAP1 0000088a: DUP2 0000088b: DUP2 0000088c: MSTORE 0000088d: PUSH1 0x20 0000088f: ADD 00000890: DUP4 00000891: DUP4 00000892: DUP1 00000893: DUP3 00000894: DUP5 00000895: CALLDATACOPY 00000896: DUP3 00000897: ADD 00000898: SWAP2 00000899: POP 0000089a: POP 0000089b: POP 0000089c: POP 0000089d: POP 0000089e: POP 0000089f: SWAP2 000008a0: SWAP3 000008a1: SWAP2 000008a2: SWAP3 000008a3: SWAP1 000008a4: DUP1 000008a5: CALLDATALOAD 000008a6: SWAP1 000008a7: PUSH1 0x20 000008a9: ADD 000008aa: SWAP1 000008ab: SWAP3 000008ac: SWAP2 000008ad: SWAP1 000008ae: DUP1 000008af: CALLDATALOAD 000008b0: SWAP1 000008b1: PUSH1 0x20 000008b3: ADD 000008b4: SWAP1 000008b5: SWAP3 000008b6: SWAP2 000008b7: SWAP1 000008b8: DUP1 000008b9: CALLDATALOAD 000008ba: SWAP1 000008bb: PUSH1 0x20 000008bd: ADD 000008be: SWAP1 000008bf: SWAP3 000008c0: SWAP2 000008c1: SWAP1 000008c2: DUP1 000008c3: CALLDATALOAD 000008c4: SWAP1 000008c5: PUSH1 0x20 000008c7: ADD 000008c8: SWAP1 000008c9: SWAP3 000008ca: SWAP2 000008cb: SWAP1 000008cc: DUP1 000008cd: CALLDATALOAD 000008ce: SWAP1 000008cf: PUSH1 0x20 000008d1: ADD 000008d2: SWAP1 000008d3: SWAP3 000008d4: SWAP2 000008d5: SWAP1 000008d6: POP 000008d7: POP 000008d8: POP 000008d9: PUSH2 0x2267 000008dc: JUMP 000008dd: JUMPDEST 000008de: PUSH1 0x40 000008e0: MLOAD 000008e1: DUP1 000008e2: DUP3 000008e3: PUSH1 0x00 000008e5: NOT 000008e6: AND 000008e7: PUSH1 0x00 000008e9: NOT 000008ea: AND 000008eb: DUP2 000008ec: MSTORE 000008ed: PUSH1 0x20 000008ef: ADD 000008f0: SWAP2 000008f1: POP 000008f2: POP 000008f3: PUSH1 0x40 000008f5: MLOAD 000008f6: DUP1 000008f7: SWAP2 000008f8: SUB 000008f9: SWAP1 000008fa: RETURN 000008fb: JUMPDEST 000008fc: CALLVALUE 000008fd: DUP1 000008fe: ISZERO 000008ff: PUSH2 0x0907 00000902: JUMPI 00000903: PUSH1 0x00 00000905: DUP1 00000906: REVERT 00000907: JUMPDEST 00000908: POP 00000909: PUSH2 0x096c 0000090c: PUSH1 0x04 0000090e: DUP1 0000090f: CALLDATASIZE 00000910: SUB 00000911: DUP2 00000912: ADD 00000913: SWAP1 00000914: DUP1 00000915: DUP1 00000916: CALLDATALOAD 00000917: SWAP1 00000918: PUSH1 0x20 0000091a: ADD 0000091b: SWAP1 0000091c: DUP3 0000091d: ADD 0000091e: DUP1 0000091f: CALLDATALOAD 00000920: SWAP1 00000921: PUSH1 0x20 00000923: ADD 00000924: SWAP1 00000925: DUP1 00000926: DUP1 00000927: PUSH1 0x1f 00000929: ADD 0000092a: PUSH1 0x20 0000092c: DUP1 0000092d: SWAP2 0000092e: DIV 0000092f: MUL 00000930: PUSH1 0x20 00000932: ADD 00000933: PUSH1 0x40 00000935: MLOAD 00000936: SWAP1 00000937: DUP2 00000938: ADD 00000939: PUSH1 0x40 0000093b: MSTORE 0000093c: DUP1 0000093d: SWAP4 0000093e: SWAP3 0000093f: SWAP2 00000940: SWAP1 00000941: DUP2 00000942: DUP2 00000943: MSTORE 00000944: PUSH1 0x20 00000946: ADD 00000947: DUP4 00000948: DUP4 00000949: DUP1 0000094a: DUP3 0000094b: DUP5 0000094c: CALLDATACOPY 0000094d: DUP3 0000094e: ADD 0000094f: SWAP2 00000950: POP 00000951: POP 00000952: POP 00000953: POP 00000954: POP 00000955: POP 00000956: SWAP2 00000957: SWAP3 00000958: SWAP2 00000959: SWAP3 0000095a: SWAP1 0000095b: DUP1 0000095c: CALLDATALOAD 0000095d: SWAP1 0000095e: PUSH1 0x20 00000960: ADD 00000961: SWAP1 00000962: SWAP3 00000963: SWAP2 00000964: SWAP1 00000965: POP 00000966: POP 00000967: POP 00000968: PUSH2 0x2404 0000096b: JUMP 0000096c: JUMPDEST 0000096d: STOP 0000096e: JUMPDEST 0000096f: CALLVALUE 00000970: DUP1 00000971: ISZERO 00000972: PUSH2 0x097a 00000975: JUMPI 00000976: PUSH1 0x00 00000978: DUP1 00000979: REVERT 0000097a: JUMPDEST 0000097b: POP 0000097c: PUSH2 0x0a07 0000097f: PUSH1 0x04 00000981: DUP1 00000982: CALLDATASIZE 00000983: SUB 00000984: DUP2 00000985: ADD 00000986: SWAP1 00000987: DUP1 00000988: DUP1 00000989: CALLDATALOAD 0000098a: SWAP1 0000098b: PUSH1 0x20 0000098d: ADD 0000098e: SWAP1 0000098f: DUP3 00000990: ADD 00000991: DUP1 00000992: CALLDATALOAD 00000993: SWAP1 00000994: PUSH1 0x20 00000996: ADD 00000997: SWAP1 00000998: DUP1 00000999: DUP1 0000099a: PUSH1 0x1f 0000099c: ADD 0000099d: PUSH1 0x20 0000099f: DUP1 000009a0: SWAP2 000009a1: DIV 000009a2: MUL 000009a3: PUSH1 0x20 000009a5: ADD 000009a6: PUSH1 0x40 000009a8: MLOAD 000009a9: SWAP1 000009aa: DUP2 000009ab: ADD 000009ac: PUSH1 0x40 000009ae: MSTORE 000009af: DUP1 000009b0: SWAP4 000009b1: SWAP3 000009b2: SWAP2 000009b3: SWAP1 000009b4: DUP2 000009b5: DUP2 000009b6: MSTORE 000009b7: PUSH1 0x20 000009b9: ADD 000009ba: DUP4 000009bb: DUP4 000009bc: DUP1 000009bd: DUP3 000009be: DUP5 000009bf: CALLDATACOPY 000009c0: DUP3 000009c1: ADD 000009c2: SWAP2 000009c3: POP 000009c4: POP 000009c5: POP 000009c6: POP 000009c7: POP 000009c8: POP 000009c9: SWAP2 000009ca: SWAP3 000009cb: SWAP2 000009cc: SWAP3 000009cd: SWAP1 000009ce: DUP1 000009cf: CALLDATALOAD 000009d0: SWAP1 000009d1: PUSH1 0x20 000009d3: ADD 000009d4: SWAP1 000009d5: SWAP3 000009d6: SWAP2 000009d7: SWAP1 000009d8: DUP1 000009d9: CALLDATALOAD 000009da: SWAP1 000009db: PUSH1 0x20 000009dd: ADD 000009de: SWAP1 000009df: SWAP3 000009e0: SWAP2 000009e1: SWAP1 000009e2: DUP1 000009e3: CALLDATALOAD 000009e4: SWAP1 000009e5: PUSH1 0x20 000009e7: ADD 000009e8: SWAP1 000009e9: SWAP3 000009ea: SWAP2 000009eb: SWAP1 000009ec: DUP1 000009ed: CALLDATALOAD 000009ee: SWAP1 000009ef: PUSH1 0x20 000009f1: ADD 000009f2: SWAP1 000009f3: SWAP3 000009f4: SWAP2 000009f5: SWAP1 000009f6: DUP1 000009f7: CALLDATALOAD 000009f8: SWAP1 000009f9: PUSH1 0x20 000009fb: ADD 000009fc: SWAP1 000009fd: SWAP3 000009fe: SWAP2 000009ff: SWAP1 00000a00: POP 00000a01: POP 00000a02: POP 00000a03: PUSH2 0x284a 00000a06: JUMP 00000a07: JUMPDEST 00000a08: PUSH1 0x40 00000a0a: MLOAD 00000a0b: DUP1 00000a0c: DUP3 00000a0d: PUSH1 0x00 00000a0f: NOT 00000a10: AND 00000a11: PUSH1 0x00 00000a13: NOT 00000a14: AND 00000a15: DUP2 00000a16: MSTORE 00000a17: PUSH1 0x20 00000a19: ADD 00000a1a: SWAP2 00000a1b: POP 00000a1c: POP 00000a1d: PUSH1 0x40 00000a1f: MLOAD 00000a20: DUP1 00000a21: SWAP2 00000a22: SUB 00000a23: SWAP1 00000a24: RETURN 00000a25: JUMPDEST 00000a26: CALLVALUE 00000a27: DUP1 00000a28: ISZERO 00000a29: PUSH2 0x0a31 00000a2c: JUMPI 00000a2d: PUSH1 0x00 00000a2f: DUP1 00000a30: REVERT 00000a31: JUMPDEST 00000a32: POP 00000a33: PUSH2 0x0a72 00000a36: PUSH1 0x04 00000a38: DUP1 00000a39: CALLDATASIZE 00000a3a: SUB 00000a3b: DUP2 00000a3c: ADD 00000a3d: SWAP1 00000a3e: DUP1 00000a3f: DUP1 00000a40: CALLDATALOAD 00000a41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a56: AND 00000a57: SWAP1 00000a58: PUSH1 0x20 00000a5a: ADD 00000a5b: SWAP1 00000a5c: SWAP3 00000a5d: SWAP2 00000a5e: SWAP1 00000a5f: DUP1 00000a60: CALLDATALOAD 00000a61: ISZERO 00000a62: ISZERO 00000a63: SWAP1 00000a64: PUSH1 0x20 00000a66: ADD 00000a67: SWAP1 00000a68: SWAP3 00000a69: SWAP2 00000a6a: SWAP1 00000a6b: POP 00000a6c: POP 00000a6d: POP 00000a6e: PUSH2 0x29e7 00000a71: JUMP 00000a72: JUMPDEST 00000a73: STOP 00000a74: JUMPDEST 00000a75: CALLVALUE 00000a76: DUP1 00000a77: ISZERO 00000a78: PUSH2 0x0a80 00000a7b: JUMPI 00000a7c: PUSH1 0x00 00000a7e: DUP1 00000a7f: REVERT 00000a80: JUMPDEST 00000a81: POP 00000a82: PUSH2 0x0a9f 00000a85: PUSH1 0x04 00000a87: DUP1 00000a88: CALLDATASIZE 00000a89: SUB 00000a8a: DUP2 00000a8b: ADD 00000a8c: SWAP1 00000a8d: DUP1 00000a8e: DUP1 00000a8f: CALLDATALOAD 00000a90: SWAP1 00000a91: PUSH1 0x20 00000a93: ADD 00000a94: SWAP1 00000a95: SWAP3 00000a96: SWAP2 00000a97: SWAP1 00000a98: POP 00000a99: POP 00000a9a: POP 00000a9b: PUSH2 0x2ad9 00000a9e: JUMP 00000a9f: JUMPDEST 00000aa0: PUSH1 0x40 00000aa2: MLOAD 00000aa3: DUP1 00000aa4: DUP3 00000aa5: DUP2 00000aa6: MSTORE 00000aa7: PUSH1 0x20 00000aa9: ADD 00000aaa: SWAP2 00000aab: POP 00000aac: POP 00000aad: PUSH1 0x40 00000aaf: MLOAD 00000ab0: DUP1 00000ab1: SWAP2 00000ab2: SUB 00000ab3: SWAP1 00000ab4: RETURN 00000ab5: JUMPDEST 00000ab6: CALLVALUE 00000ab7: DUP1 00000ab8: ISZERO 00000ab9: PUSH2 0x0ac1 00000abc: JUMPI 00000abd: PUSH1 0x00 00000abf: DUP1 00000ac0: REVERT 00000ac1: JUMPDEST 00000ac2: POP 00000ac3: PUSH2 0x0af6 00000ac6: PUSH1 0x04 00000ac8: DUP1 00000ac9: CALLDATASIZE 00000aca: SUB 00000acb: DUP2 00000acc: ADD 00000acd: SWAP1 00000ace: DUP1 00000acf: DUP1 00000ad0: CALLDATALOAD 00000ad1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ae6: AND 00000ae7: SWAP1 00000ae8: PUSH1 0x20 00000aea: ADD 00000aeb: SWAP1 00000aec: SWAP3 00000aed: SWAP2 00000aee: SWAP1 00000aef: POP 00000af0: POP 00000af1: POP 00000af2: PUSH2 0x2b4c 00000af5: JUMP 00000af6: JUMPDEST 00000af7: STOP 00000af8: JUMPDEST 00000af9: CALLVALUE 00000afa: DUP1 00000afb: ISZERO 00000afc: PUSH2 0x0b04 00000aff: JUMPI 00000b00: PUSH1 0x00 00000b02: DUP1 00000b03: REVERT 00000b04: JUMPDEST 00000b05: POP 00000b06: PUSH2 0x0b0d 00000b09: PUSH2 0x2c26 00000b0c: JUMP 00000b0d: JUMPDEST 00000b0e: PUSH1 0x40 00000b10: MLOAD 00000b11: DUP1 00000b12: DUP3 00000b13: DUP2 00000b14: MSTORE 00000b15: PUSH1 0x20 00000b17: ADD 00000b18: SWAP2 00000b19: POP 00000b1a: POP 00000b1b: PUSH1 0x40 00000b1d: MLOAD 00000b1e: DUP1 00000b1f: SWAP2 00000b20: SUB 00000b21: SWAP1 00000b22: RETURN 00000b23: JUMPDEST 00000b24: CALLVALUE 00000b25: DUP1 00000b26: ISZERO 00000b27: PUSH2 0x0b2f 00000b2a: JUMPI 00000b2b: PUSH1 0x00 00000b2d: DUP1 00000b2e: REVERT 00000b2f: JUMPDEST 00000b30: POP 00000b31: PUSH2 0x0b4e 00000b34: PUSH1 0x04 00000b36: DUP1 00000b37: CALLDATASIZE 00000b38: SUB 00000b39: DUP2 00000b3a: ADD 00000b3b: SWAP1 00000b3c: DUP1 00000b3d: DUP1 00000b3e: CALLDATALOAD 00000b3f: SWAP1 00000b40: PUSH1 0x20 00000b42: ADD 00000b43: SWAP1 00000b44: SWAP3 00000b45: SWAP2 00000b46: SWAP1 00000b47: POP 00000b48: POP 00000b49: POP 00000b4a: PUSH2 0x2c2c 00000b4d: JUMP 00000b4e: JUMPDEST 00000b4f: PUSH1 0x40 00000b51: MLOAD 00000b52: DUP1 00000b53: DUP3 00000b54: ISZERO 00000b55: ISZERO 00000b56: ISZERO 00000b57: ISZERO 00000b58: DUP2 00000b59: MSTORE 00000b5a: PUSH1 0x20 00000b5c: ADD 00000b5d: SWAP2 00000b5e: POP 00000b5f: POP 00000b60: PUSH1 0x40 00000b62: MLOAD 00000b63: DUP1 00000b64: SWAP2 00000b65: SUB 00000b66: SWAP1 00000b67: RETURN 00000b68: JUMPDEST 00000b69: PUSH1 0x00 00000b6b: DUP1 00000b6c: PUSH1 0x00 00000b6e: SWAP1 00000b6f: SLOAD 00000b70: SWAP1 00000b71: PUSH2 0x0100 00000b74: EXP 00000b75: SWAP1 00000b76: DIV 00000b77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b8c: AND 00000b8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ba2: AND 00000ba3: CALLER 00000ba4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bb9: AND 00000bba: EQ 00000bbb: ISZERO 00000bbc: ISZERO 00000bbd: PUSH2 0x0bc5 00000bc0: JUMPI 00000bc1: PUSH1 0x00 00000bc3: DUP1 00000bc4: REVERT 00000bc5: JUMPDEST 00000bc6: DUP2 00000bc7: PUSH1 0x0a 00000bc9: DUP2 00000bca: SWAP1 00000bcb: SSTORE 00000bcc: POP 00000bcd: PUSH1 0x01 00000bcf: SWAP1 00000bd0: POP 00000bd1: SWAP2 00000bd2: SWAP1 00000bd3: POP 00000bd4: JUMP 00000bd5: JUMPDEST 00000bd6: PUSH2 0x0bdd 00000bd9: PUSH2 0x2e55 00000bdc: JUMP 00000bdd: JUMPDEST 00000bde: PUSH1 0x01 00000be0: ISZERO 00000be1: ISZERO 00000be2: PUSH1 0x01 00000be4: PUSH1 0x00 00000be6: CALLER 00000be7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bfc: AND 00000bfd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c12: AND 00000c13: DUP2 00000c14: MSTORE 00000c15: PUSH1 0x20 00000c17: ADD 00000c18: SWAP1 00000c19: DUP2 00000c1a: MSTORE 00000c1b: PUSH1 0x20 00000c1d: ADD 00000c1e: PUSH1 0x00 00000c20: KECCAK256 00000c21: PUSH1 0x00 00000c23: SWAP1 00000c24: SLOAD 00000c25: SWAP1 00000c26: PUSH2 0x0100 00000c29: EXP 00000c2a: SWAP1 00000c2b: DIV 00000c2c: PUSH1 0xff 00000c2e: AND 00000c2f: ISZERO 00000c30: ISZERO 00000c31: EQ 00000c32: ISZERO 00000c33: ISZERO 00000c34: PUSH2 0x0c3c 00000c37: JUMPI 00000c38: PUSH1 0x00 00000c3a: DUP1 00000c3b: REVERT 00000c3c: JUMPDEST 00000c3d: PUSH1 0x02 00000c3f: PUSH1 0x00 00000c41: SWAP1 00000c42: SLOAD 00000c43: SWAP1 00000c44: PUSH2 0x0100 00000c47: EXP 00000c48: SWAP1 00000c49: DIV 00000c4a: PUSH1 0xff 00000c4c: AND 00000c4d: ISZERO 00000c4e: ISZERO 00000c4f: ISZERO 00000c50: PUSH2 0x0c58 00000c53: JUMPI 00000c54: PUSH1 0x00 00000c56: DUP1 00000c57: REVERT 00000c58: JUMPDEST 00000c59: PUSH2 0x0c6f 00000c5c: PUSH2 0x0c69 00000c5f: DUP10 00000c60: DUP10 00000c61: DUP9 00000c62: DUP9 00000c63: DUP12 00000c64: DUP10 00000c65: PUSH2 0x2267 00000c68: JUMP 00000c69: JUMPDEST 00000c6a: DUP4 00000c6b: PUSH2 0x1340 00000c6e: JUMP 00000c6f: JUMPDEST 00000c70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c85: AND 00000c86: DUP10 00000c87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c9c: AND 00000c9d: EQ 00000c9e: DUP1 00000c9f: ISZERO 00000ca0: PUSH2 0x0d1f 00000ca3: JUMPI 00000ca4: POP 00000ca5: PUSH1 0x08 00000ca7: DUP3 00000ca8: PUSH1 0x40 00000caa: MLOAD 00000cab: DUP1 00000cac: DUP3 00000cad: DUP1 00000cae: MLOAD 00000caf: SWAP1 00000cb0: PUSH1 0x20 00000cb2: ADD 00000cb3: SWAP1 00000cb4: DUP1 00000cb5: DUP4 00000cb6: DUP4 00000cb7: JUMPDEST 00000cb8: PUSH1 0x20 00000cba: DUP4 00000cbb: LT 00000cbc: ISZERO 00000cbd: ISZERO 00000cbe: PUSH2 0x0cdc 00000cc1: JUMPI 00000cc2: DUP1 00000cc3: MLOAD 00000cc4: DUP3 00000cc5: MSTORE 00000cc6: PUSH1 0x20 00000cc8: DUP3 00000cc9: ADD 00000cca: SWAP2 00000ccb: POP 00000ccc: PUSH1 0x20 00000cce: DUP2 00000ccf: ADD 00000cd0: SWAP1 00000cd1: POP 00000cd2: PUSH1 0x20 00000cd4: DUP4 00000cd5: SUB 00000cd6: SWAP3 00000cd7: POP 00000cd8: PUSH2 0x0cb7 00000cdb: JUMP 00000cdc: JUMPDEST 00000cdd: PUSH1 0x01 00000cdf: DUP4 00000ce0: PUSH1 0x20 00000ce2: SUB 00000ce3: PUSH2 0x0100 00000ce6: EXP 00000ce7: SUB 00000ce8: DUP1 00000ce9: NOT 00000cea: DUP3 00000ceb: MLOAD 00000cec: AND 00000ced: DUP2 00000cee: DUP5 00000cef: MLOAD 00000cf0: AND 00000cf1: DUP1 00000cf2: DUP3 00000cf3: OR 00000cf4: DUP6 00000cf5: MSTORE 00000cf6: POP 00000cf7: POP 00000cf8: POP 00000cf9: POP 00000cfa: POP 00000cfb: POP 00000cfc: SWAP1 00000cfd: POP 00000cfe: ADD 00000cff: SWAP2 00000d00: POP 00000d01: POP 00000d02: SWAP1 00000d03: DUP2 00000d04: MSTORE 00000d05: PUSH1 0x20 00000d07: ADD 00000d08: PUSH1 0x40 00000d0a: MLOAD 00000d0b: DUP1 00000d0c: SWAP2 00000d0d: SUB 00000d0e: SWAP1 00000d0f: KECCAK256 00000d10: PUSH1 0x00 00000d12: SWAP1 00000d13: SLOAD 00000d14: SWAP1 00000d15: PUSH2 0x0100 00000d18: EXP 00000d19: SWAP1 00000d1a: DIV 00000d1b: PUSH1 0xff 00000d1d: AND 00000d1e: ISZERO 00000d1f: JUMPDEST 00000d20: ISZERO 00000d21: ISZERO 00000d22: PUSH2 0x0d2a 00000d25: JUMPI 00000d26: PUSH1 0x00 00000d28: DUP1 00000d29: REVERT 00000d2a: JUMPDEST 00000d2b: PUSH1 0x0c 00000d2d: PUSH1 0x00 00000d2f: SWAP1 00000d30: SLOAD 00000d31: SWAP1 00000d32: PUSH2 0x0100 00000d35: EXP 00000d36: SWAP1 00000d37: DIV 00000d38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d4d: AND 00000d4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d63: AND 00000d64: PUSH4 0x23b872dd 00000d69: DUP11 00000d6a: ADDRESS 00000d6b: DUP11 00000d6c: PUSH1 0x40 00000d6e: MLOAD 00000d6f: DUP5 00000d70: PUSH4 0xffffffff 00000d75: AND 00000d76: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000d94: MUL 00000d95: DUP2 00000d96: MSTORE 00000d97: PUSH1 0x04 00000d99: ADD 00000d9a: DUP1 00000d9b: DUP5 00000d9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000db1: AND 00000db2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dc7: AND 00000dc8: DUP2 00000dc9: MSTORE 00000dca: PUSH1 0x20 00000dcc: ADD 00000dcd: DUP4 00000dce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000de3: AND 00000de4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000df9: AND 00000dfa: DUP2 00000dfb: MSTORE 00000dfc: PUSH1 0x20 00000dfe: ADD 00000dff: DUP3 00000e00: DUP2 00000e01: MSTORE 00000e02: PUSH1 0x20 00000e04: ADD 00000e05: SWAP4 00000e06: POP 00000e07: POP 00000e08: POP 00000e09: POP 00000e0a: PUSH1 0x00 00000e0c: PUSH1 0x40 00000e0e: MLOAD 00000e0f: DUP1 00000e10: DUP4 00000e11: SUB 00000e12: DUP2 00000e13: PUSH1 0x00 00000e15: DUP8 00000e16: DUP1 00000e17: EXTCODESIZE 00000e18: ISZERO 00000e19: DUP1 00000e1a: ISZERO 00000e1b: PUSH2 0x0e23 00000e1e: JUMPI 00000e1f: PUSH1 0x00 00000e21: DUP1 00000e22: REVERT 00000e23: JUMPDEST 00000e24: POP 00000e25: GAS 00000e26: CALL 00000e27: ISZERO 00000e28: DUP1 00000e29: ISZERO 00000e2a: PUSH2 0x0e37 00000e2d: JUMPI 00000e2e: RETURNDATASIZE 00000e2f: PUSH1 0x00 00000e31: DUP1 00000e32: RETURNDATACOPY 00000e33: RETURNDATASIZE 00000e34: PUSH1 0x00 00000e36: REVERT 00000e37: JUMPDEST 00000e38: POP 00000e39: POP 00000e3a: POP 00000e3b: POP 00000e3c: DUP9 00000e3d: DUP2 00000e3e: PUSH1 0x00 00000e40: ADD 00000e41: SWAP1 00000e42: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e57: AND 00000e58: SWAP1 00000e59: DUP2 00000e5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e6f: AND 00000e70: DUP2 00000e71: MSTORE 00000e72: POP 00000e73: POP 00000e74: DUP8 00000e75: DUP2 00000e76: PUSH1 0x20 00000e78: ADD 00000e79: DUP2 00000e7a: SWAP1 00000e7b: MSTORE 00000e7c: POP 00000e7d: DUP6 00000e7e: DUP2 00000e7f: PUSH1 0x40 00000e81: ADD 00000e82: DUP2 00000e83: DUP2 00000e84: MSTORE 00000e85: POP 00000e86: POP 00000e87: DUP3 00000e88: DUP2 00000e89: PUSH1 0x60 00000e8b: ADD 00000e8c: DUP2 00000e8d: DUP2 00000e8e: MSTORE 00000e8f: POP 00000e90: POP 00000e91: DUP5 00000e92: DUP2 00000e93: PUSH2 0x0100 00000e96: ADD 00000e97: DUP2 00000e98: DUP2 00000e99: MSTORE 00000e9a: POP 00000e9b: POP 00000e9c: DUP4 00000e9d: DUP2 00000e9e: PUSH2 0x0120 00000ea1: ADD 00000ea2: DUP2 00000ea3: DUP2 00000ea4: MSTORE 00000ea5: POP 00000ea6: POP 00000ea7: DUP7 00000ea8: DUP2 00000ea9: PUSH1 0xa0 00000eab: ADD 00000eac: DUP2 00000ead: DUP2 00000eae: MSTORE 00000eaf: POP 00000eb0: POP 00000eb1: PUSH1 0x00 00000eb3: DUP2 00000eb4: PUSH2 0x0160 00000eb7: ADD 00000eb8: SWAP1 00000eb9: ISZERO 00000eba: ISZERO 00000ebb: SWAP1 00000ebc: DUP2 00000ebd: ISZERO 00000ebe: ISZERO 00000ebf: DUP2 00000ec0: MSTORE 00000ec1: POP 00000ec2: POP 00000ec3: PUSH2 0x0ecb 00000ec6: DUP8 00000ec7: PUSH2 0x2ad9 00000eca: JUMP 00000ecb: JUMPDEST 00000ecc: DUP2 00000ecd: PUSH1 0xe0 00000ecf: ADD 00000ed0: DUP2 00000ed1: DUP2 00000ed2: MSTORE 00000ed3: POP 00000ed4: POP 00000ed5: PUSH1 0x01 00000ed7: PUSH1 0x08 00000ed9: DUP4 00000eda: PUSH1 0x40 00000edc: MLOAD 00000edd: DUP1 00000ede: DUP3 00000edf: DUP1 00000ee0: MLOAD 00000ee1: SWAP1 00000ee2: PUSH1 0x20 00000ee4: ADD 00000ee5: SWAP1 00000ee6: DUP1 00000ee7: DUP4 00000ee8: DUP4 00000ee9: JUMPDEST 00000eea: PUSH1 0x20 00000eec: DUP4 00000eed: LT 00000eee: ISZERO 00000eef: ISZERO 00000ef0: PUSH2 0x0f0e 00000ef3: JUMPI 00000ef4: DUP1 00000ef5: MLOAD 00000ef6: DUP3 00000ef7: MSTORE 00000ef8: PUSH1 0x20 00000efa: DUP3 00000efb: ADD 00000efc: SWAP2 00000efd: POP 00000efe: PUSH1 0x20 00000f00: DUP2 00000f01: ADD 00000f02: SWAP1 00000f03: POP 00000f04: PUSH1 0x20 00000f06: DUP4 00000f07: SUB 00000f08: SWAP3 00000f09: POP 00000f0a: PUSH2 0x0ee9 00000f0d: JUMP 00000f0e: JUMPDEST 00000f0f: PUSH1 0x01 00000f11: DUP4 00000f12: PUSH1 0x20 00000f14: SUB 00000f15: PUSH2 0x0100 00000f18: EXP 00000f19: SUB 00000f1a: DUP1 00000f1b: NOT 00000f1c: DUP3 00000f1d: MLOAD 00000f1e: AND 00000f1f: DUP2 00000f20: DUP5 00000f21: MLOAD 00000f22: AND 00000f23: DUP1 00000f24: DUP3 00000f25: OR 00000f26: DUP6 00000f27: MSTORE 00000f28: POP 00000f29: POP 00000f2a: POP 00000f2b: POP 00000f2c: POP 00000f2d: POP 00000f2e: SWAP1 00000f2f: POP 00000f30: ADD 00000f31: SWAP2 00000f32: POP 00000f33: POP 00000f34: SWAP1 00000f35: DUP2 00000f36: MSTORE 00000f37: PUSH1 0x20 00000f39: ADD 00000f3a: PUSH1 0x40 00000f3c: MLOAD 00000f3d: DUP1 00000f3e: SWAP2 00000f3f: SUB 00000f40: SWAP1 00000f41: KECCAK256 00000f42: PUSH1 0x00 00000f44: PUSH2 0x0100 00000f47: EXP 00000f48: DUP2 00000f49: SLOAD 00000f4a: DUP2 00000f4b: PUSH1 0xff 00000f4d: MUL 00000f4e: NOT 00000f4f: AND 00000f50: SWAP1 00000f51: DUP4 00000f52: ISZERO 00000f53: ISZERO 00000f54: MUL 00000f55: OR 00000f56: SWAP1 00000f57: SSTORE 00000f58: POP 00000f59: PUSH2 0x0f71 00000f5c: DUP2 00000f5d: PUSH1 0xe0 00000f5f: ADD 00000f60: MLOAD 00000f61: PUSH1 0x09 00000f63: SLOAD 00000f64: PUSH2 0x2dab 00000f67: SWAP1 00000f68: SWAP2 00000f69: SWAP1 00000f6a: PUSH4 0xffffffff 00000f6f: AND 00000f70: JUMP 00000f71: JUMPDEST 00000f72: PUSH1 0x09 00000f74: DUP2 00000f75: SWAP1 00000f76: SSTORE 00000f77: POP 00000f78: DUP1 00000f79: PUSH1 0x07 00000f7b: DUP4 00000f7c: PUSH1 0x40 00000f7e: MLOAD 00000f7f: DUP1 00000f80: DUP3 00000f81: DUP1 00000f82: MLOAD 00000f83: SWAP1 00000f84: PUSH1 0x20 00000f86: ADD 00000f87: SWAP1 00000f88: DUP1 00000f89: DUP4 00000f8a: DUP4 00000f8b: JUMPDEST 00000f8c: PUSH1 0x20 00000f8e: DUP4 00000f8f: LT 00000f90: ISZERO 00000f91: ISZERO 00000f92: PUSH2 0x0fb0 00000f95: JUMPI 00000f96: DUP1 00000f97: MLOAD 00000f98: DUP3 00000f99: MSTORE 00000f9a: PUSH1 0x20 00000f9c: DUP3 00000f9d: ADD 00000f9e: SWAP2 00000f9f: POP 00000fa0: PUSH1 0x20 00000fa2: DUP2 00000fa3: ADD 00000fa4: SWAP1 00000fa5: POP 00000fa6: PUSH1 0x20 00000fa8: DUP4 00000fa9: SUB 00000faa: SWAP3 00000fab: POP 00000fac: PUSH2 0x0f8b 00000faf: JUMP 00000fb0: JUMPDEST 00000fb1: PUSH1 0x01 00000fb3: DUP4 00000fb4: PUSH1 0x20 00000fb6: SUB 00000fb7: PUSH2 0x0100 00000fba: EXP 00000fbb: SUB 00000fbc: DUP1 00000fbd: NOT 00000fbe: DUP3 00000fbf: MLOAD 00000fc0: AND 00000fc1: DUP2 00000fc2: DUP5 00000fc3: MLOAD 00000fc4: AND 00000fc5: DUP1 00000fc6: DUP3 00000fc7: OR 00000fc8: DUP6 00000fc9: MSTORE 00000fca: POP 00000fcb: POP 00000fcc: POP 00000fcd: POP 00000fce: POP 00000fcf: POP 00000fd0: SWAP1 00000fd1: POP 00000fd2: ADD 00000fd3: SWAP2 00000fd4: POP 00000fd5: POP 00000fd6: SWAP1 00000fd7: DUP2 00000fd8: MSTORE 00000fd9: PUSH1 0x20 00000fdb: ADD 00000fdc: PUSH1 0x40 00000fde: MLOAD 00000fdf: DUP1 00000fe0: SWAP2 00000fe1: SUB 00000fe2: SWAP1 00000fe3: KECCAK256 00000fe4: PUSH1 0x00 00000fe6: DUP3 00000fe7: ADD 00000fe8: MLOAD 00000fe9: DUP2 00000fea: PUSH1 0x00 00000fec: ADD 00000fed: PUSH1 0x00 00000fef: PUSH2 0x0100 00000ff2: EXP 00000ff3: DUP2 00000ff4: SLOAD 00000ff5: DUP2 00000ff6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000100b: MUL 0000100c: NOT 0000100d: AND 0000100e: SWAP1 0000100f: DUP4 00001010: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001025: AND 00001026: MUL 00001027: OR 00001028: SWAP1 00001029: SSTORE 0000102a: POP 0000102b: PUSH1 0x20 0000102d: DUP3 0000102e: ADD 0000102f: MLOAD 00001030: DUP2 00001031: PUSH1 0x01 00001033: ADD 00001034: SWAP1 00001035: DUP1 00001036: MLOAD 00001037: SWAP1 00001038: PUSH1 0x20 0000103a: ADD 0000103b: SWAP1 0000103c: PUSH2 0x1046 0000103f: SWAP3 00001040: SWAP2 00001041: SWAP1 00001042: PUSH2 0x2ed1 00001045: JUMP 00001046: JUMPDEST 00001047: POP 00001048: PUSH1 0x40 0000104a: DUP3 0000104b: ADD 0000104c: MLOAD 0000104d: DUP2 0000104e: PUSH1 0x02 00001050: ADD 00001051: SSTORE 00001052: PUSH1 0x60 00001054: DUP3 00001055: ADD 00001056: MLOAD 00001057: DUP2 00001058: PUSH1 0x03 0000105a: ADD 0000105b: SSTORE 0000105c: PUSH1 0x80 0000105e: DUP3 0000105f: ADD 00001060: MLOAD 00001061: DUP2 00001062: PUSH1 0x04 00001064: ADD 00001065: SSTORE 00001066: PUSH1 0xa0 00001068: DUP3 00001069: ADD 0000106a: MLOAD 0000106b: DUP2 0000106c: PUSH1 0x05 0000106e: ADD 0000106f: SSTORE 00001070: PUSH1 0xc0 00001072: DUP3 00001073: ADD 00001074: MLOAD 00001075: DUP2 00001076: PUSH1 0x06 00001078: ADD 00001079: SSTORE 0000107a: PUSH1 0xe0 0000107c: DUP3 0000107d: ADD 0000107e: MLOAD 0000107f: DUP2 00001080: PUSH1 0x07 00001082: ADD 00001083: SSTORE 00001084: PUSH2 0x0100 00001087: DUP3 00001088: ADD 00001089: MLOAD 0000108a: DUP2 0000108b: PUSH1 0x08 0000108d: ADD 0000108e: SSTORE 0000108f: PUSH2 0x0120 00001092: DUP3 00001093: ADD 00001094: MLOAD 00001095: DUP2 00001096: PUSH1 0x09 00001098: ADD 00001099: SSTORE 0000109a: PUSH2 0x0140 0000109d: DUP3 0000109e: ADD 0000109f: MLOAD 000010a0: DUP2 000010a1: PUSH1 0x0a 000010a3: ADD 000010a4: PUSH1 0x00 000010a6: PUSH2 0x0100 000010a9: EXP 000010aa: DUP2 000010ab: SLOAD 000010ac: DUP2 000010ad: PUSH1 0xff 000010af: MUL 000010b0: NOT 000010b1: AND 000010b2: SWAP1 000010b3: DUP4 000010b4: ISZERO 000010b5: ISZERO 000010b6: MUL 000010b7: OR 000010b8: SWAP1 000010b9: SSTORE 000010ba: POP 000010bb: PUSH2 0x0160 000010be: DUP3 000010bf: ADD 000010c0: MLOAD 000010c1: DUP2 000010c2: PUSH1 0x0a 000010c4: ADD 000010c5: PUSH1 0x01 000010c7: PUSH2 0x0100 000010ca: EXP 000010cb: DUP2 000010cc: SLOAD 000010cd: DUP2 000010ce: PUSH1 0xff 000010d0: MUL 000010d1: NOT 000010d2: AND 000010d3: SWAP1 000010d4: DUP4 000010d5: ISZERO 000010d6: ISZERO 000010d7: MUL 000010d8: OR 000010d9: SWAP1 000010da: SSTORE 000010db: POP 000010dc: SWAP1 000010dd: POP 000010de: POP 000010df: POP 000010e0: POP 000010e1: POP 000010e2: POP 000010e3: POP 000010e4: POP 000010e5: POP 000010e6: POP 000010e7: POP 000010e8: JUMP 000010e9: JUMPDEST 000010ea: PUSH1 0x03 000010ec: DUP1 000010ed: SLOAD 000010ee: PUSH1 0x01 000010f0: DUP2 000010f1: PUSH1 0x01 000010f3: AND 000010f4: ISZERO 000010f5: PUSH2 0x0100 000010f8: MUL 000010f9: SUB 000010fa: AND 000010fb: PUSH1 0x02 000010fd: SWAP1 000010fe: DIV 000010ff: DUP1 00001100: PUSH1 0x1f 00001102: ADD 00001103: PUSH1 0x20 00001105: DUP1 00001106: SWAP2 00001107: DIV 00001108: MUL 00001109: PUSH1 0x20 0000110b: ADD 0000110c: PUSH1 0x40 0000110e: MLOAD 0000110f: SWAP1 00001110: DUP2 00001111: ADD 00001112: PUSH1 0x40 00001114: MSTORE 00001115: DUP1 00001116: SWAP3 00001117: SWAP2 00001118: SWAP1 00001119: DUP2 0000111a: DUP2 0000111b: MSTORE 0000111c: PUSH1 0x20 0000111e: ADD 0000111f: DUP3 00001120: DUP1 00001121: SLOAD 00001122: PUSH1 0x01 00001124: DUP2 00001125: PUSH1 0x01 00001127: AND 00001128: ISZERO 00001129: PUSH2 0x0100 0000112c: MUL 0000112d: SUB 0000112e: AND 0000112f: PUSH1 0x02 00001131: SWAP1 00001132: DIV 00001133: DUP1 00001134: ISZERO 00001135: PUSH2 0x117f 00001138: JUMPI 00001139: DUP1 0000113a: PUSH1 0x1f 0000113c: LT 0000113d: PUSH2 0x1154 00001140: JUMPI 00001141: PUSH2 0x0100 00001144: DUP1 00001145: DUP4 00001146: SLOAD 00001147: DIV 00001148: MUL 00001149: DUP4 0000114a: MSTORE 0000114b: SWAP2 0000114c: PUSH1 0x20 0000114e: ADD 0000114f: SWAP2 00001150: PUSH2 0x117f 00001153: JUMP 00001154: JUMPDEST 00001155: DUP3 00001156: ADD 00001157: SWAP2 00001158: SWAP1 00001159: PUSH1 0x00 0000115b: MSTORE 0000115c: PUSH1 0x20 0000115e: PUSH1 0x00 00001160: KECCAK256 00001161: SWAP1 00001162: JUMPDEST 00001163: DUP2 00001164: SLOAD 00001165: DUP2 00001166: MSTORE 00001167: SWAP1 00001168: PUSH1 0x01 0000116a: ADD 0000116b: SWAP1 0000116c: PUSH1 0x20 0000116e: ADD 0000116f: DUP1 00001170: DUP4 00001171: GT 00001172: PUSH2 0x1162 00001175: JUMPI 00001176: DUP3 00001177: SWAP1 00001178: SUB 00001179: PUSH1 0x1f 0000117b: AND 0000117c: DUP3 0000117d: ADD 0000117e: SWAP2 0000117f: JUMPDEST 00001180: POP 00001181: POP 00001182: POP 00001183: POP 00001184: POP 00001185: DUP2 00001186: JUMP 00001187: JUMPDEST 00001188: PUSH1 0x09 0000118a: SLOAD 0000118b: DUP2 0000118c: JUMP 0000118d: JUMPDEST 0000118e: PUSH1 0x00 00001190: DUP1 00001191: PUSH1 0x00 00001193: SWAP1 00001194: SLOAD 00001195: SWAP1 00001196: PUSH2 0x0100 00001199: EXP 0000119a: SWAP1 0000119b: DIV 0000119c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011b1: AND 000011b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011c7: AND 000011c8: CALLER 000011c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011de: AND 000011df: EQ 000011e0: ISZERO 000011e1: ISZERO 000011e2: PUSH2 0x11ea 000011e5: JUMPI 000011e6: PUSH1 0x00 000011e8: DUP1 000011e9: REVERT 000011ea: JUMPDEST 000011eb: PUSH1 0x0c 000011ed: PUSH1 0x00 000011ef: SWAP1 000011f0: SLOAD 000011f1: SWAP1 000011f2: PUSH2 0x0100 000011f5: EXP 000011f6: SWAP1 000011f7: DIV 000011f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000120d: AND 0000120e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001223: AND 00001224: PUSH4 0x23b872dd 00001229: PUSH1 0x00 0000122b: DUP1 0000122c: SWAP1 0000122d: SLOAD 0000122e: SWAP1 0000122f: PUSH2 0x0100 00001232: EXP 00001233: SWAP1 00001234: DIV 00001235: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000124a: AND 0000124b: ADDRESS 0000124c: DUP6 0000124d: PUSH1 0x40 0000124f: MLOAD 00001250: DUP5 00001251: PUSH4 0xffffffff 00001256: AND 00001257: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00001275: MUL 00001276: DUP2 00001277: MSTORE 00001278: PUSH1 0x04 0000127a: ADD 0000127b: DUP1 0000127c: DUP5 0000127d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001292: AND 00001293: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012a8: AND 000012a9: DUP2 000012aa: MSTORE 000012ab: PUSH1 0x20 000012ad: ADD 000012ae: DUP4 000012af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012c4: AND 000012c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012da: AND 000012db: DUP2 000012dc: MSTORE 000012dd: PUSH1 0x20 000012df: ADD 000012e0: DUP3 000012e1: DUP2 000012e2: MSTORE 000012e3: PUSH1 0x20 000012e5: ADD 000012e6: SWAP4 000012e7: POP 000012e8: POP 000012e9: POP 000012ea: POP 000012eb: PUSH1 0x00 000012ed: PUSH1 0x40 000012ef: MLOAD 000012f0: DUP1 000012f1: DUP4 000012f2: SUB 000012f3: DUP2 000012f4: PUSH1 0x00 000012f6: DUP8 000012f7: DUP1 000012f8: EXTCODESIZE 000012f9: ISZERO 000012fa: DUP1 000012fb: ISZERO 000012fc: PUSH2 0x1304 000012ff: JUMPI 00001300: PUSH1 0x00 00001302: DUP1 00001303: REVERT 00001304: JUMPDEST 00001305: POP 00001306: GAS 00001307: CALL 00001308: ISZERO 00001309: DUP1 0000130a: ISZERO 0000130b: PUSH2 0x1318 0000130e: JUMPI 0000130f: RETURNDATASIZE 00001310: PUSH1 0x00 00001312: DUP1 00001313: RETURNDATACOPY 00001314: RETURNDATASIZE 00001315: PUSH1 0x00 00001317: REVERT 00001318: JUMPDEST 00001319: POP 0000131a: POP 0000131b: POP 0000131c: POP 0000131d: PUSH2 0x1331 00001320: DUP3 00001321: PUSH1 0x09 00001323: SLOAD 00001324: PUSH2 0x2dcc 00001327: SWAP1 00001328: SWAP2 00001329: SWAP1 0000132a: PUSH4 0xffffffff 0000132f: AND 00001330: JUMP 00001331: JUMPDEST 00001332: PUSH1 0x09 00001334: DUP2 00001335: SWAP1 00001336: SSTORE 00001337: POP 00001338: PUSH1 0x01 0000133a: SWAP1 0000133b: POP 0000133c: SWAP2 0000133d: SWAP1 0000133e: POP 0000133f: JUMP 00001340: JUMPDEST 00001341: PUSH1 0x00 00001343: DUP1 00001344: PUSH1 0x00 00001346: DUP1 00001347: PUSH1 0x41 00001349: DUP6 0000134a: MLOAD 0000134b: EQ 0000134c: ISZERO 0000134d: ISZERO 0000134e: PUSH2 0x135a 00001351: JUMPI 00001352: PUSH1 0x00 00001354: SWAP4 00001355: POP 00001356: PUSH2 0x14e0 00001359: JUMP 0000135a: JUMPDEST 0000135b: PUSH1 0x20 0000135d: DUP6 0000135e: ADD 0000135f: MLOAD 00001360: SWAP3 00001361: POP 00001362: PUSH1 0x40 00001364: DUP6 00001365: ADD 00001366: MLOAD 00001367: SWAP2 00001368: POP 00001369: PUSH1 0x60 0000136b: DUP6 0000136c: ADD 0000136d: MLOAD 0000136e: PUSH1 0x00 00001370: BYTE 00001371: SWAP1 00001372: POP 00001373: PUSH1 0x1b 00001375: DUP2 00001376: PUSH1 0xff 00001378: AND 00001379: LT 0000137a: ISZERO 0000137b: PUSH2 0x1385 0000137e: JUMPI 0000137f: PUSH1 0x1b 00001381: DUP2 00001382: ADD 00001383: SWAP1 00001384: POP 00001385: JUMPDEST 00001386: PUSH1 0x1b 00001388: DUP2 00001389: PUSH1 0xff 0000138b: AND 0000138c: EQ 0000138d: ISZERO 0000138e: DUP1 0000138f: ISZERO 00001390: PUSH2 0x139d 00001393: JUMPI 00001394: POP 00001395: PUSH1 0x1c 00001397: DUP2 00001398: PUSH1 0xff 0000139a: AND 0000139b: EQ 0000139c: ISZERO 0000139d: JUMPDEST 0000139e: ISZERO 0000139f: PUSH2 0x13ab 000013a2: JUMPI 000013a3: PUSH1 0x00 000013a5: SWAP4 000013a6: POP 000013a7: PUSH2 0x14e0 000013aa: JUMP 000013ab: JUMPDEST 000013ac: PUSH1 0x01 000013ae: DUP7 000013af: PUSH1 0x40 000013b1: MLOAD 000013b2: PUSH1 0x20 000013b4: ADD 000013b5: DUP1 000013b6: DUP1 000013b7: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 000013d8: DUP2 000013d9: MSTORE 000013da: POP 000013db: PUSH1 0x1c 000013dd: ADD 000013de: DUP3 000013df: PUSH1 0x00 000013e1: NOT 000013e2: AND 000013e3: PUSH1 0x00 000013e5: NOT 000013e6: AND 000013e7: DUP2 000013e8: MSTORE 000013e9: PUSH1 0x20 000013eb: ADD 000013ec: SWAP2 000013ed: POP 000013ee: POP 000013ef: PUSH1 0x40 000013f1: MLOAD 000013f2: PUSH1 0x20 000013f4: DUP2 000013f5: DUP4 000013f6: SUB 000013f7: SUB 000013f8: DUP2 000013f9: MSTORE 000013fa: SWAP1 000013fb: PUSH1 0x40 000013fd: MSTORE 000013fe: PUSH1 0x40 00001400: MLOAD 00001401: DUP1 00001402: DUP3 00001403: DUP1 00001404: MLOAD 00001405: SWAP1 00001406: PUSH1 0x20 00001408: ADD 00001409: SWAP1 0000140a: DUP1 0000140b: DUP4 0000140c: DUP4 0000140d: JUMPDEST 0000140e: PUSH1 0x20 00001410: DUP4 00001411: LT 00001412: ISZERO 00001413: ISZERO 00001414: PUSH2 0x1432 00001417: JUMPI 00001418: DUP1 00001419: MLOAD 0000141a: DUP3 0000141b: MSTORE 0000141c: PUSH1 0x20 0000141e: DUP3 0000141f: ADD 00001420: SWAP2 00001421: POP 00001422: PUSH1 0x20 00001424: DUP2 00001425: ADD 00001426: SWAP1 00001427: POP 00001428: PUSH1 0x20 0000142a: DUP4 0000142b: SUB 0000142c: SWAP3 0000142d: POP 0000142e: PUSH2 0x140d 00001431: JUMP 00001432: JUMPDEST 00001433: PUSH1 0x01 00001435: DUP4 00001436: PUSH1 0x20 00001438: SUB 00001439: PUSH2 0x0100 0000143c: EXP 0000143d: SUB 0000143e: DUP1 0000143f: NOT 00001440: DUP3 00001441: MLOAD 00001442: AND 00001443: DUP2 00001444: DUP5 00001445: MLOAD 00001446: AND 00001447: DUP1 00001448: DUP3 00001449: OR 0000144a: DUP6 0000144b: MSTORE 0000144c: POP 0000144d: POP 0000144e: POP 0000144f: POP 00001450: POP 00001451: POP 00001452: SWAP1 00001453: POP 00001454: ADD 00001455: SWAP2 00001456: POP 00001457: POP 00001458: PUSH1 0x40 0000145a: MLOAD 0000145b: DUP1 0000145c: SWAP2 0000145d: SUB 0000145e: SWAP1 0000145f: KECCAK256 00001460: DUP3 00001461: DUP6 00001462: DUP6 00001463: PUSH1 0x40 00001465: MLOAD 00001466: PUSH1 0x00 00001468: DUP2 00001469: MSTORE 0000146a: PUSH1 0x20 0000146c: ADD 0000146d: PUSH1 0x40 0000146f: MSTORE 00001470: PUSH1 0x40 00001472: MLOAD 00001473: DUP1 00001474: DUP6 00001475: PUSH1 0x00 00001477: NOT 00001478: AND 00001479: PUSH1 0x00 0000147b: NOT 0000147c: AND 0000147d: DUP2 0000147e: MSTORE 0000147f: PUSH1 0x20 00001481: ADD 00001482: DUP5 00001483: PUSH1 0xff 00001485: AND 00001486: PUSH1 0xff 00001488: AND 00001489: DUP2 0000148a: MSTORE 0000148b: PUSH1 0x20 0000148d: ADD 0000148e: DUP4 0000148f: PUSH1 0x00 00001491: NOT 00001492: AND 00001493: PUSH1 0x00 00001495: NOT 00001496: AND 00001497: DUP2 00001498: MSTORE 00001499: PUSH1 0x20 0000149b: ADD 0000149c: DUP3 0000149d: PUSH1 0x00 0000149f: NOT 000014a0: AND 000014a1: PUSH1 0x00 000014a3: NOT 000014a4: AND 000014a5: DUP2 000014a6: MSTORE 000014a7: PUSH1 0x20 000014a9: ADD 000014aa: SWAP5 000014ab: POP 000014ac: POP 000014ad: POP 000014ae: POP 000014af: POP 000014b0: PUSH1 0x20 000014b2: PUSH1 0x40 000014b4: MLOAD 000014b5: PUSH1 0x20 000014b7: DUP2 000014b8: SUB 000014b9: SWAP1 000014ba: DUP1 000014bb: DUP5 000014bc: SUB 000014bd: SWAP1 000014be: PUSH1 0x00 000014c0: DUP7 000014c1: GAS 000014c2: CALL 000014c3: ISZERO 000014c4: DUP1 000014c5: ISZERO 000014c6: PUSH2 0x14d3 000014c9: JUMPI 000014ca: RETURNDATASIZE 000014cb: PUSH1 0x00 000014cd: DUP1 000014ce: RETURNDATACOPY 000014cf: RETURNDATASIZE 000014d0: PUSH1 0x00 000014d2: REVERT 000014d3: JUMPDEST 000014d4: POP 000014d5: POP 000014d6: POP 000014d7: PUSH1 0x20 000014d9: PUSH1 0x40 000014db: MLOAD 000014dc: SUB 000014dd: MLOAD 000014de: SWAP4 000014df: POP 000014e0: JUMPDEST 000014e1: POP 000014e2: POP 000014e3: POP 000014e4: SWAP3 000014e5: SWAP2 000014e6: POP 000014e7: POP 000014e8: JUMP 000014e9: JUMPDEST 000014ea: PUSH1 0x05 000014ec: SLOAD 000014ed: DUP2 000014ee: JUMP 000014ef: JUMPDEST 000014f0: PUSH1 0x00 000014f2: DUP1 000014f3: SWAP1 000014f4: SLOAD 000014f5: SWAP1 000014f6: PUSH2 0x0100 000014f9: EXP 000014fa: SWAP1 000014fb: DIV 000014fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001511: AND 00001512: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001527: AND 00001528: CALLER 00001529: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000153e: AND 0000153f: EQ 00001540: ISZERO 00001541: ISZERO 00001542: PUSH2 0x154a 00001545: JUMPI 00001546: PUSH1 0x00 00001548: DUP1 00001549: REVERT 0000154a: JUMPDEST 0000154b: PUSH1 0x02 0000154d: PUSH1 0x00 0000154f: SWAP1 00001550: SLOAD 00001551: SWAP1 00001552: PUSH2 0x0100 00001555: EXP 00001556: SWAP1 00001557: DIV 00001558: PUSH1 0xff 0000155a: AND 0000155b: ISZERO 0000155c: ISZERO 0000155d: PUSH2 0x1565 00001560: JUMPI 00001561: PUSH1 0x00 00001563: DUP1 00001564: REVERT 00001565: JUMPDEST 00001566: PUSH1 0x00 00001568: PUSH1 0x02 0000156a: PUSH1 0x00 0000156c: PUSH2 0x0100 0000156f: EXP 00001570: DUP2 00001571: SLOAD 00001572: DUP2 00001573: PUSH1 0xff 00001575: MUL 00001576: NOT 00001577: AND 00001578: SWAP1 00001579: DUP4 0000157a: ISZERO 0000157b: ISZERO 0000157c: MUL 0000157d: OR 0000157e: SWAP1 0000157f: SSTORE 00001580: POP 00001581: PUSH32 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33 000015a2: PUSH1 0x40 000015a4: MLOAD 000015a5: PUSH1 0x40 000015a7: MLOAD 000015a8: DUP1 000015a9: SWAP2 000015aa: SUB 000015ab: SWAP1 000015ac: LOG1 000015ad: JUMP 000015ae: JUMPDEST 000015af: PUSH1 0x00 000015b1: DUP1 000015b2: PUSH1 0x00 000015b4: PUSH1 0x01 000015b6: ISZERO 000015b7: ISZERO 000015b8: PUSH1 0x01 000015ba: PUSH1 0x00 000015bc: CALLER 000015bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015d2: AND 000015d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015e8: AND 000015e9: DUP2 000015ea: MSTORE 000015eb: PUSH1 0x20 000015ed: ADD 000015ee: SWAP1 000015ef: DUP2 000015f0: MSTORE 000015f1: PUSH1 0x20 000015f3: ADD 000015f4: PUSH1 0x00 000015f6: KECCAK256 000015f7: PUSH1 0x00 000015f9: SWAP1 000015fa: SLOAD 000015fb: SWAP1 000015fc: PUSH2 0x0100 000015ff: EXP 00001600: SWAP1 00001601: DIV 00001602: PUSH1 0xff 00001604: AND 00001605: ISZERO 00001606: ISZERO 00001607: EQ 00001608: ISZERO 00001609: ISZERO 0000160a: PUSH2 0x1612 0000160d: JUMPI 0000160e: PUSH1 0x00 00001610: DUP1 00001611: REVERT 00001612: JUMPDEST 00001613: PUSH1 0x02 00001615: PUSH1 0x00 00001617: SWAP1 00001618: SLOAD 00001619: SWAP1 0000161a: PUSH2 0x0100 0000161d: EXP 0000161e: SWAP1 0000161f: DIV 00001620: PUSH1 0xff 00001622: AND 00001623: ISZERO 00001624: ISZERO 00001625: ISZERO 00001626: PUSH2 0x162e 00001629: JUMPI 0000162a: PUSH1 0x00 0000162c: DUP1 0000162d: REVERT 0000162e: JUMPDEST 0000162f: PUSH1 0x07 00001631: DUP6 00001632: PUSH1 0x40 00001634: MLOAD 00001635: DUP1 00001636: DUP3 00001637: DUP1 00001638: MLOAD 00001639: SWAP1 0000163a: PUSH1 0x20 0000163c: ADD 0000163d: SWAP1 0000163e: DUP1 0000163f: DUP4 00001640: DUP4 00001641: JUMPDEST 00001642: PUSH1 0x20 00001644: DUP4 00001645: LT 00001646: ISZERO 00001647: ISZERO 00001648: PUSH2 0x1666 0000164b: JUMPI 0000164c: DUP1 0000164d: MLOAD 0000164e: DUP3 0000164f: MSTORE 00001650: PUSH1 0x20 00001652: DUP3 00001653: ADD 00001654: SWAP2 00001655: POP 00001656: PUSH1 0x20 00001658: DUP2 00001659: ADD 0000165a: SWAP1 0000165b: POP 0000165c: PUSH1 0x20 0000165e: DUP4 0000165f: SUB 00001660: SWAP3 00001661: POP 00001662: PUSH2 0x1641 00001665: JUMP 00001666: JUMPDEST 00001667: PUSH1 0x01 00001669: DUP4 0000166a: PUSH1 0x20 0000166c: SUB 0000166d: PUSH2 0x0100 00001670: EXP 00001671: SUB 00001672: DUP1 00001673: NOT 00001674: DUP3 00001675: MLOAD 00001676: AND 00001677: DUP2 00001678: DUP5 00001679: MLOAD 0000167a: AND 0000167b: DUP1 0000167c: DUP3 0000167d: OR 0000167e: DUP6 0000167f: MSTORE 00001680: POP 00001681: POP 00001682: POP 00001683: POP 00001684: POP 00001685: POP 00001686: SWAP1 00001687: POP 00001688: ADD 00001689: SWAP2 0000168a: POP 0000168b: POP 0000168c: SWAP1 0000168d: DUP2 0000168e: MSTORE 0000168f: PUSH1 0x20 00001691: ADD 00001692: PUSH1 0x40 00001694: MLOAD 00001695: DUP1 00001696: SWAP2 00001697: SUB 00001698: SWAP1 00001699: KECCAK256 0000169a: SWAP3 0000169b: POP 0000169c: DUP3 0000169d: PUSH1 0x0a 0000169f: ADD 000016a0: PUSH1 0x01 000016a2: SWAP1 000016a3: SLOAD 000016a4: SWAP1 000016a5: PUSH2 0x0100 000016a8: EXP 000016a9: SWAP1 000016aa: DIV 000016ab: PUSH1 0xff 000016ad: AND 000016ae: DUP1 000016af: ISZERO 000016b0: PUSH2 0x16c8 000016b3: JUMPI 000016b4: POP 000016b5: DUP3 000016b6: PUSH1 0x0a 000016b8: ADD 000016b9: PUSH1 0x00 000016bb: SWAP1 000016bc: SLOAD 000016bd: SWAP1 000016be: PUSH2 0x0100 000016c1: EXP 000016c2: SWAP1 000016c3: DIV 000016c4: PUSH1 0xff 000016c6: AND 000016c7: ISZERO 000016c8: JUMPDEST 000016c9: ISZERO 000016ca: ISZERO 000016cb: PUSH2 0x16d3 000016ce: JUMPI 000016cf: PUSH1 0x00 000016d1: DUP1 000016d2: REVERT 000016d3: JUMPDEST 000016d4: DUP3 000016d5: PUSH1 0x03 000016d7: ADD 000016d8: SLOAD 000016d9: DUP5 000016da: GT 000016db: ISZERO 000016dc: PUSH2 0x17d2 000016df: JUMPI 000016e0: PUSH2 0x1736 000016e3: DUP4 000016e4: PUSH1 0x02 000016e6: ADD 000016e7: SLOAD 000016e8: PUSH2 0x1728 000016eb: DUP6 000016ec: PUSH1 0x03 000016ee: ADD 000016ef: SLOAD 000016f0: PUSH2 0x171a 000016f3: PUSH1 0x06 000016f5: SLOAD 000016f6: PUSH2 0x170c 000016f9: DUP10 000016fa: PUSH1 0x03 000016fc: ADD 000016fd: SLOAD 000016fe: DUP12 000016ff: PUSH2 0x2dab 00001702: SWAP1 00001703: SWAP2 00001704: SWAP1 00001705: PUSH4 0xffffffff 0000170a: AND 0000170b: JUMP 0000170c: JUMPDEST 0000170d: PUSH2 0x2ded 00001710: SWAP1 00001711: SWAP2 00001712: SWAP1 00001713: PUSH4 0xffffffff 00001718: AND 00001719: JUMP 0000171a: JUMPDEST 0000171b: PUSH2 0x2e2b 0000171e: SWAP1 0000171f: SWAP2 00001720: SWAP1 00001721: PUSH4 0xffffffff 00001726: AND 00001727: JUMP 00001728: JUMPDEST 00001729: PUSH2 0x2ded 0000172c: SWAP1 0000172d: SWAP2 0000172e: SWAP1 0000172f: PUSH4 0xffffffff 00001734: AND 00001735: JUMP 00001736: JUMPDEST 00001737: SWAP2 00001738: POP 00001739: PUSH1 0x06 0000173b: SLOAD 0000173c: DUP3 0000173d: LT 0000173e: ISZERO 0000173f: ISZERO 00001740: PUSH2 0x174f 00001743: JUMPI 00001744: DUP3 00001745: PUSH1 0x05 00001747: ADD 00001748: SLOAD 00001749: SWAP1 0000174a: POP 0000174b: PUSH2 0x177d 0000174e: JUMP 0000174f: JUMPDEST 00001750: PUSH2 0x177a 00001753: PUSH1 0x06 00001755: SLOAD 00001756: PUSH2 0x176c 00001759: DUP5 0000175a: DUP7 0000175b: PUSH1 0x05 0000175d: ADD 0000175e: SLOAD 0000175f: PUSH2 0x2ded 00001762: SWAP1 00001763: SWAP2 00001764: SWAP1 00001765: PUSH4 0xffffffff 0000176a: AND 0000176b: JUMP 0000176c: JUMPDEST 0000176d: PUSH2 0x2e2b 00001770: SWAP1 00001771: SWAP2 00001772: SWAP1 00001773: PUSH4 0xffffffff 00001778: AND 00001779: JUMP 0000177a: JUMPDEST 0000177b: SWAP1 0000177c: POP 0000177d: JUMPDEST 0000177e: PUSH2 0x1794 00001781: DUP2 00001782: DUP5 00001783: PUSH1 0x05 00001785: ADD 00001786: SLOAD 00001787: PUSH2 0x2dab 0000178a: SWAP1 0000178b: SWAP2 0000178c: SWAP1 0000178d: PUSH4 0xffffffff 00001792: AND 00001793: JUMP 00001794: JUMPDEST 00001795: DUP4 00001796: PUSH1 0x06 00001798: ADD 00001799: DUP2 0000179a: SWAP1 0000179b: SSTORE 0000179c: POP 0000179d: PUSH2 0x17c7 000017a0: DUP2 000017a1: PUSH2 0x17b9 000017a4: DUP6 000017a5: PUSH1 0x07 000017a7: ADD 000017a8: SLOAD 000017a9: PUSH1 0x09 000017ab: SLOAD 000017ac: PUSH2 0x2dcc 000017af: SWAP1 000017b0: SWAP2 000017b1: SWAP1 000017b2: PUSH4 0xffffffff 000017b7: AND 000017b8: JUMP 000017b9: JUMPDEST 000017ba: PUSH2 0x2dcc 000017bd: SWAP1 000017be: SWAP2 000017bf: SWAP1 000017c0: PUSH4 0xffffffff 000017c5: AND 000017c6: JUMP 000017c7: JUMPDEST 000017c8: PUSH1 0x09 000017ca: DUP2 000017cb: SWAP1 000017cc: SSTORE 000017cd: POP 000017ce: PUSH2 0x18c1 000017d1: JUMP 000017d2: JUMPDEST 000017d3: PUSH2 0x1829 000017d6: DUP4 000017d7: PUSH1 0x02 000017d9: ADD 000017da: SLOAD 000017db: PUSH2 0x181b 000017de: DUP6 000017df: PUSH1 0x03 000017e1: ADD 000017e2: SLOAD 000017e3: PUSH2 0x180d 000017e6: PUSH1 0x06 000017e8: SLOAD 000017e9: PUSH2 0x17ff 000017ec: DUP11 000017ed: DUP11 000017ee: PUSH1 0x03 000017f0: ADD 000017f1: SLOAD 000017f2: PUSH2 0x2dab 000017f5: SWAP1 000017f6: SWAP2 000017f7: SWAP1 000017f8: PUSH4 0xffffffff 000017fd: AND 000017fe: JUMP 000017ff: JUMPDEST 00001800: PUSH2 0x2ded 00001803: SWAP1 00001804: SWAP2 00001805: SWAP1 00001806: PUSH4 0xffffffff 0000180b: AND 0000180c: JUMP 0000180d: JUMPDEST 0000180e: PUSH2 0x2e2b 00001811: SWAP1 00001812: SWAP2 00001813: SWAP1 00001814: PUSH4 0xffffffff 00001819: AND 0000181a: JUMP 0000181b: JUMPDEST 0000181c: PUSH2 0x2ded 0000181f: SWAP1 00001820: SWAP2 00001821: SWAP1 00001822: PUSH4 0xffffffff 00001827: AND 00001828: JUMP 00001829: JUMPDEST 0000182a: SWAP2 0000182b: POP 0000182c: PUSH1 0x06 0000182e: SLOAD 0000182f: DUP3 00001830: LT 00001831: ISZERO 00001832: ISZERO 00001833: PUSH2 0x1842 00001836: JUMPI 00001837: DUP3 00001838: PUSH1 0x07 0000183a: ADD 0000183b: SLOAD 0000183c: SWAP1 0000183d: POP 0000183e: PUSH2 0x1870 00001841: JUMP 00001842: JUMPDEST 00001843: PUSH2 0x186d 00001846: PUSH1 0x06 00001848: SLOAD 00001849: PUSH2 0x185f 0000184c: DUP5 0000184d: DUP7 0000184e: PUSH1 0x07 00001850: ADD 00001851: SLOAD 00001852: PUSH2 0x2ded 00001855: SWAP1 00001856: SWAP2 00001857: SWAP1 00001858: PUSH4 0xffffffff 0000185d: AND 0000185e: JUMP 0000185f: JUMPDEST 00001860: PUSH2 0x2e2b 00001863: SWAP1 00001864: SWAP2 00001865: SWAP1 00001866: PUSH4 0xffffffff 0000186b: AND 0000186c: JUMP 0000186d: JUMPDEST 0000186e: SWAP1 0000186f: POP 00001870: JUMPDEST 00001871: PUSH2 0x1887 00001874: DUP2 00001875: DUP5 00001876: PUSH1 0x05 00001878: ADD 00001879: SLOAD 0000187a: PUSH2 0x2dcc 0000187d: SWAP1 0000187e: SWAP2 0000187f: SWAP1 00001880: PUSH4 0xffffffff 00001885: AND 00001886: JUMP 00001887: JUMPDEST 00001888: DUP4 00001889: PUSH1 0x06 0000188b: ADD 0000188c: DUP2 0000188d: SWAP1 0000188e: SSTORE 0000188f: POP 00001890: PUSH2 0x18ba 00001893: DUP2 00001894: PUSH2 0x18ac 00001897: DUP6 00001898: PUSH1 0x07 0000189a: ADD 0000189b: SLOAD 0000189c: PUSH1 0x09 0000189e: SLOAD 0000189f: PUSH2 0x2dcc 000018a2: SWAP1 000018a3: SWAP2 000018a4: SWAP1 000018a5: PUSH4 0xffffffff 000018aa: AND 000018ab: JUMP 000018ac: JUMPDEST 000018ad: PUSH2 0x2dab 000018b0: SWAP1 000018b1: SWAP2 000018b2: SWAP1 000018b3: PUSH4 0xffffffff 000018b8: AND 000018b9: JUMP 000018ba: JUMPDEST 000018bb: PUSH1 0x09 000018bd: DUP2 000018be: SWAP1 000018bf: SSTORE 000018c0: POP 000018c1: JUMPDEST 000018c2: PUSH1 0x01 000018c4: DUP4 000018c5: PUSH1 0x0a 000018c7: ADD 000018c8: PUSH1 0x00 000018ca: PUSH2 0x0100 000018cd: EXP 000018ce: DUP2 000018cf: SLOAD 000018d0: DUP2 000018d1: PUSH1 0xff 000018d3: MUL 000018d4: NOT 000018d5: AND 000018d6: SWAP1 000018d7: DUP4 000018d8: ISZERO 000018d9: ISZERO 000018da: MUL 000018db: OR 000018dc: SWAP1 000018dd: SSTORE 000018de: POP 000018df: DUP4 000018e0: DUP4 000018e1: PUSH1 0x04 000018e3: ADD 000018e4: DUP2 000018e5: SWAP1 000018e6: SSTORE 000018e7: POP 000018e8: PUSH1 0x0c 000018ea: PUSH1 0x00 000018ec: SWAP1 000018ed: SLOAD 000018ee: SWAP1 000018ef: PUSH2 0x0100 000018f2: EXP 000018f3: SWAP1 000018f4: DIV 000018f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000190a: AND 0000190b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001920: AND 00001921: PUSH4 0xa9059cbb 00001926: DUP5 00001927: PUSH1 0x00 00001929: ADD 0000192a: PUSH1 0x00 0000192c: SWAP1 0000192d: SLOAD 0000192e: SWAP1 0000192f: PUSH2 0x0100 00001932: EXP 00001933: SWAP1 00001934: DIV 00001935: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000194a: AND 0000194b: DUP6 0000194c: PUSH1 0x06 0000194e: ADD 0000194f: SLOAD 00001950: PUSH1 0x40 00001952: MLOAD 00001953: DUP4 00001954: PUSH4 0xffffffff 00001959: AND 0000195a: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00001978: MUL 00001979: DUP2 0000197a: MSTORE 0000197b: PUSH1 0x04 0000197d: ADD 0000197e: DUP1 0000197f: DUP4 00001980: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001995: AND 00001996: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019ab: AND 000019ac: DUP2 000019ad: MSTORE 000019ae: PUSH1 0x20 000019b0: ADD 000019b1: DUP3 000019b2: DUP2 000019b3: MSTORE 000019b4: PUSH1 0x20 000019b6: ADD 000019b7: SWAP3 000019b8: POP 000019b9: POP 000019ba: POP 000019bb: PUSH1 0x00 000019bd: PUSH1 0x40 000019bf: MLOAD 000019c0: DUP1 000019c1: DUP4 000019c2: SUB 000019c3: DUP2 000019c4: PUSH1 0x00 000019c6: DUP8 000019c7: DUP1 000019c8: EXTCODESIZE 000019c9: ISZERO 000019ca: DUP1 000019cb: ISZERO 000019cc: PUSH2 0x19d4 000019cf: JUMPI 000019d0: PUSH1 0x00 000019d2: DUP1 000019d3: REVERT 000019d4: JUMPDEST 000019d5: POP 000019d6: GAS 000019d7: CALL 000019d8: ISZERO 000019d9: DUP1 000019da: ISZERO 000019db: PUSH2 0x19e8 000019de: JUMPI 000019df: RETURNDATASIZE 000019e0: PUSH1 0x00 000019e2: DUP1 000019e3: RETURNDATACOPY 000019e4: RETURNDATASIZE 000019e5: PUSH1 0x00 000019e7: REVERT 000019e8: JUMPDEST 000019e9: POP 000019ea: POP 000019eb: POP 000019ec: POP 000019ed: POP 000019ee: POP 000019ef: POP 000019f0: POP 000019f1: POP 000019f2: JUMP 000019f3: JUMPDEST 000019f4: PUSH2 0x19fb 000019f7: PUSH2 0x2e55 000019fa: JUMP 000019fb: JUMPDEST 000019fc: PUSH1 0x01 000019fe: ISZERO 000019ff: ISZERO 00001a00: PUSH1 0x01 00001a02: PUSH1 0x00 00001a04: CALLER 00001a05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a1a: AND 00001a1b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a30: AND 00001a31: DUP2 00001a32: MSTORE 00001a33: PUSH1 0x20 00001a35: ADD 00001a36: SWAP1 00001a37: DUP2 00001a38: MSTORE 00001a39: PUSH1 0x20 00001a3b: ADD 00001a3c: PUSH1 0x00 00001a3e: KECCAK256 00001a3f: PUSH1 0x00 00001a41: SWAP1 00001a42: SLOAD 00001a43: SWAP1 00001a44: PUSH2 0x0100 00001a47: EXP 00001a48: SWAP1 00001a49: DIV 00001a4a: PUSH1 0xff 00001a4c: AND 00001a4d: ISZERO 00001a4e: ISZERO 00001a4f: EQ 00001a50: ISZERO 00001a51: ISZERO 00001a52: PUSH2 0x1a5a 00001a55: JUMPI 00001a56: PUSH1 0x00 00001a58: DUP1 00001a59: REVERT 00001a5a: JUMPDEST 00001a5b: PUSH1 0x02 00001a5d: PUSH1 0x00 00001a5f: SWAP1 00001a60: SLOAD 00001a61: SWAP1 00001a62: PUSH2 0x0100 00001a65: EXP 00001a66: SWAP1 00001a67: DIV 00001a68: PUSH1 0xff 00001a6a: AND 00001a6b: ISZERO 00001a6c: ISZERO 00001a6d: ISZERO 00001a6e: PUSH2 0x1a76 00001a71: JUMPI 00001a72: PUSH1 0x00 00001a74: DUP1 00001a75: REVERT 00001a76: JUMPDEST 00001a77: PUSH2 0x1a8d 00001a7a: PUSH2 0x1a87 00001a7d: DUP10 00001a7e: DUP10 00001a7f: DUP9 00001a80: DUP9 00001a81: DUP12 00001a82: DUP10 00001a83: PUSH2 0x284a 00001a86: JUMP 00001a87: JUMPDEST 00001a88: DUP4 00001a89: PUSH2 0x1340 00001a8c: JUMP 00001a8d: JUMPDEST 00001a8e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aa3: AND 00001aa4: DUP10 00001aa5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aba: AND 00001abb: EQ 00001abc: DUP1 00001abd: ISZERO 00001abe: PUSH2 0x1b3d 00001ac1: JUMPI 00001ac2: POP 00001ac3: PUSH1 0x08 00001ac5: DUP3 00001ac6: PUSH1 0x40 00001ac8: MLOAD 00001ac9: DUP1 00001aca: DUP3 00001acb: DUP1 00001acc: MLOAD 00001acd: SWAP1 00001ace: PUSH1 0x20 00001ad0: ADD 00001ad1: SWAP1 00001ad2: DUP1 00001ad3: DUP4 00001ad4: DUP4 00001ad5: JUMPDEST 00001ad6: PUSH1 0x20 00001ad8: DUP4 00001ad9: LT 00001ada: ISZERO 00001adb: ISZERO 00001adc: PUSH2 0x1afa 00001adf: JUMPI 00001ae0: DUP1 00001ae1: MLOAD 00001ae2: DUP3 00001ae3: MSTORE 00001ae4: PUSH1 0x20 00001ae6: DUP3 00001ae7: ADD 00001ae8: SWAP2 00001ae9: POP 00001aea: PUSH1 0x20 00001aec: DUP2 00001aed: ADD 00001aee: SWAP1 00001aef: POP 00001af0: PUSH1 0x20 00001af2: DUP4 00001af3: SUB 00001af4: SWAP3 00001af5: POP 00001af6: PUSH2 0x1ad5 00001af9: JUMP 00001afa: JUMPDEST 00001afb: PUSH1 0x01 00001afd: DUP4 00001afe: PUSH1 0x20 00001b00: SUB 00001b01: PUSH2 0x0100 00001b04: EXP 00001b05: SUB 00001b06: DUP1 00001b07: NOT 00001b08: DUP3 00001b09: MLOAD 00001b0a: AND 00001b0b: DUP2 00001b0c: DUP5 00001b0d: MLOAD 00001b0e: AND 00001b0f: DUP1 00001b10: DUP3 00001b11: OR 00001b12: DUP6 00001b13: MSTORE 00001b14: POP 00001b15: POP 00001b16: POP 00001b17: POP 00001b18: POP 00001b19: POP 00001b1a: SWAP1 00001b1b: POP 00001b1c: ADD 00001b1d: SWAP2 00001b1e: POP 00001b1f: POP 00001b20: SWAP1 00001b21: DUP2 00001b22: MSTORE 00001b23: PUSH1 0x20 00001b25: ADD 00001b26: PUSH1 0x40 00001b28: MLOAD 00001b29: DUP1 00001b2a: SWAP2 00001b2b: SUB 00001b2c: SWAP1 00001b2d: KECCAK256 00001b2e: PUSH1 0x00 00001b30: SWAP1 00001b31: SLOAD 00001b32: SWAP1 00001b33: PUSH2 0x0100 00001b36: EXP 00001b37: SWAP1 00001b38: DIV 00001b39: PUSH1 0xff 00001b3b: AND 00001b3c: ISZERO 00001b3d: JUMPDEST 00001b3e: ISZERO 00001b3f: ISZERO 00001b40: PUSH2 0x1b48 00001b43: JUMPI 00001b44: PUSH1 0x00 00001b46: DUP1 00001b47: REVERT 00001b48: JUMPDEST 00001b49: PUSH1 0x0c 00001b4b: PUSH1 0x00 00001b4d: SWAP1 00001b4e: SLOAD 00001b4f: SWAP1 00001b50: PUSH2 0x0100 00001b53: EXP 00001b54: SWAP1 00001b55: DIV 00001b56: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b6b: AND 00001b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b81: AND 00001b82: PUSH4 0x23b872dd 00001b87: DUP11 00001b88: ADDRESS 00001b89: DUP11 00001b8a: PUSH1 0x40 00001b8c: MLOAD 00001b8d: DUP5 00001b8e: PUSH4 0xffffffff 00001b93: AND 00001b94: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00001bb2: MUL 00001bb3: DUP2 00001bb4: MSTORE 00001bb5: PUSH1 0x04 00001bb7: ADD 00001bb8: DUP1 00001bb9: DUP5 00001bba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bcf: AND 00001bd0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001be5: AND 00001be6: DUP2 00001be7: MSTORE 00001be8: PUSH1 0x20 00001bea: ADD 00001beb: DUP4 00001bec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c01: AND 00001c02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c17: AND 00001c18: DUP2 00001c19: MSTORE 00001c1a: PUSH1 0x20 00001c1c: ADD 00001c1d: DUP3 00001c1e: DUP2 00001c1f: MSTORE 00001c20: PUSH1 0x20 00001c22: ADD 00001c23: SWAP4 00001c24: POP 00001c25: POP 00001c26: POP 00001c27: POP 00001c28: PUSH1 0x00 00001c2a: PUSH1 0x40 00001c2c: MLOAD 00001c2d: DUP1 00001c2e: DUP4 00001c2f: SUB 00001c30: DUP2 00001c31: PUSH1 0x00 00001c33: DUP8 00001c34: DUP1 00001c35: EXTCODESIZE 00001c36: ISZERO 00001c37: DUP1 00001c38: ISZERO 00001c39: PUSH2 0x1c41 00001c3c: JUMPI 00001c3d: PUSH1 0x00 00001c3f: DUP1 00001c40: REVERT 00001c41: JUMPDEST 00001c42: POP 00001c43: GAS 00001c44: CALL 00001c45: ISZERO 00001c46: DUP1 00001c47: ISZERO 00001c48: PUSH2 0x1c55 00001c4b: JUMPI 00001c4c: RETURNDATASIZE 00001c4d: PUSH1 0x00 00001c4f: DUP1 00001c50: RETURNDATACOPY 00001c51: RETURNDATASIZE 00001c52: PUSH1 0x00 00001c54: REVERT 00001c55: JUMPDEST 00001c56: POP 00001c57: POP 00001c58: POP 00001c59: POP 00001c5a: DUP9 00001c5b: DUP2 00001c5c: PUSH1 0x00 00001c5e: ADD 00001c5f: SWAP1 00001c60: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c75: AND 00001c76: SWAP1 00001c77: DUP2 00001c78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c8d: AND 00001c8e: DUP2 00001c8f: MSTORE 00001c90: POP 00001c91: POP 00001c92: DUP8 00001c93: DUP2 00001c94: PUSH1 0x20 00001c96: ADD 00001c97: DUP2 00001c98: SWAP1 00001c99: MSTORE 00001c9a: POP 00001c9b: DUP6 00001c9c: DUP2 00001c9d: PUSH1 0x40 00001c9f: ADD 00001ca0: DUP2 00001ca1: DUP2 00001ca2: MSTORE 00001ca3: POP 00001ca4: POP 00001ca5: DUP3 00001ca6: DUP2 00001ca7: PUSH1 0x60 00001ca9: ADD 00001caa: DUP2 00001cab: DUP2 00001cac: MSTORE 00001cad: POP 00001cae: POP 00001caf: DUP5 00001cb0: DUP2 00001cb1: PUSH2 0x0100 00001cb4: ADD 00001cb5: DUP2 00001cb6: DUP2 00001cb7: MSTORE 00001cb8: POP 00001cb9: POP 00001cba: DUP4 00001cbb: DUP2 00001cbc: PUSH2 0x0120 00001cbf: ADD 00001cc0: DUP2 00001cc1: DUP2 00001cc2: MSTORE 00001cc3: POP 00001cc4: POP 00001cc5: DUP7 00001cc6: DUP2 00001cc7: PUSH1 0xa0 00001cc9: ADD 00001cca: DUP2 00001ccb: DUP2 00001ccc: MSTORE 00001ccd: POP 00001cce: POP 00001ccf: PUSH1 0x01 00001cd1: DUP2 00001cd2: PUSH2 0x0160 00001cd5: ADD 00001cd6: SWAP1 00001cd7: ISZERO 00001cd8: ISZERO 00001cd9: SWAP1 00001cda: DUP2 00001cdb: ISZERO 00001cdc: ISZERO 00001cdd: DUP2 00001cde: MSTORE 00001cdf: POP 00001ce0: POP 00001ce1: PUSH2 0x1ce9 00001ce4: DUP8 00001ce5: PUSH2 0x2ad9 00001ce8: JUMP 00001ce9: JUMPDEST 00001cea: DUP2 00001ceb: PUSH1 0xe0 00001ced: ADD 00001cee: DUP2 00001cef: DUP2 00001cf0: MSTORE 00001cf1: POP 00001cf2: POP 00001cf3: PUSH1 0x01 00001cf5: PUSH1 0x08 00001cf7: DUP4 00001cf8: PUSH1 0x40 00001cfa: MLOAD 00001cfb: DUP1 00001cfc: DUP3 00001cfd: DUP1 00001cfe: MLOAD 00001cff: SWAP1 00001d00: PUSH1 0x20 00001d02: ADD 00001d03: SWAP1 00001d04: DUP1 00001d05: DUP4 00001d06: DUP4 00001d07: JUMPDEST 00001d08: PUSH1 0x20 00001d0a: DUP4 00001d0b: LT 00001d0c: ISZERO 00001d0d: ISZERO 00001d0e: PUSH2 0x1d2c 00001d11: JUMPI 00001d12: DUP1 00001d13: MLOAD 00001d14: DUP3 00001d15: MSTORE 00001d16: PUSH1 0x20 00001d18: DUP3 00001d19: ADD 00001d1a: SWAP2 00001d1b: POP 00001d1c: PUSH1 0x20 00001d1e: DUP2 00001d1f: ADD 00001d20: SWAP1 00001d21: POP 00001d22: PUSH1 0x20 00001d24: DUP4 00001d25: SUB 00001d26: SWAP3 00001d27: POP 00001d28: PUSH2 0x1d07 00001d2b: JUMP 00001d2c: JUMPDEST 00001d2d: PUSH1 0x01 00001d2f: DUP4 00001d30: PUSH1 0x20 00001d32: SUB 00001d33: PUSH2 0x0100 00001d36: EXP 00001d37: SUB 00001d38: DUP1 00001d39: NOT 00001d3a: DUP3 00001d3b: MLOAD 00001d3c: AND 00001d3d: DUP2 00001d3e: DUP5 00001d3f: MLOAD 00001d40: AND 00001d41: DUP1 00001d42: DUP3 00001d43: OR 00001d44: DUP6 00001d45: MSTORE 00001d46: POP 00001d47: POP 00001d48: POP 00001d49: POP 00001d4a: POP 00001d4b: POP 00001d4c: SWAP1 00001d4d: POP 00001d4e: ADD 00001d4f: SWAP2 00001d50: POP 00001d51: POP 00001d52: SWAP1 00001d53: DUP2 00001d54: MSTORE 00001d55: PUSH1 0x20 00001d57: ADD 00001d58: PUSH1 0x40 00001d5a: MLOAD 00001d5b: DUP1 00001d5c: SWAP2 00001d5d: SUB 00001d5e: SWAP1 00001d5f: KECCAK256 00001d60: PUSH1 0x00 00001d62: PUSH2 0x0100 00001d65: EXP 00001d66: DUP2 00001d67: SLOAD 00001d68: DUP2 00001d69: PUSH1 0xff 00001d6b: MUL 00001d6c: NOT 00001d6d: AND 00001d6e: SWAP1 00001d6f: DUP4 00001d70: ISZERO 00001d71: ISZERO 00001d72: MUL 00001d73: OR 00001d74: SWAP1 00001d75: SSTORE 00001d76: POP 00001d77: PUSH2 0x1d8f 00001d7a: DUP2 00001d7b: PUSH1 0xe0 00001d7d: ADD 00001d7e: MLOAD 00001d7f: PUSH1 0x09 00001d81: SLOAD 00001d82: PUSH2 0x2dab 00001d85: SWAP1 00001d86: SWAP2 00001d87: SWAP1 00001d88: PUSH4 0xffffffff 00001d8d: AND 00001d8e: JUMP 00001d8f: JUMPDEST 00001d90: PUSH1 0x09 00001d92: DUP2 00001d93: SWAP1 00001d94: SSTORE 00001d95: POP 00001d96: DUP1 00001d97: PUSH1 0x07 00001d99: DUP4 00001d9a: PUSH1 0x40 00001d9c: MLOAD 00001d9d: DUP1 00001d9e: DUP3 00001d9f: DUP1 00001da0: MLOAD 00001da1: SWAP1 00001da2: PUSH1 0x20 00001da4: ADD 00001da5: SWAP1 00001da6: DUP1 00001da7: DUP4 00001da8: DUP4 00001da9: JUMPDEST 00001daa: PUSH1 0x20 00001dac: DUP4 00001dad: LT 00001dae: ISZERO 00001daf: ISZERO 00001db0: PUSH2 0x1dce 00001db3: JUMPI 00001db4: DUP1 00001db5: MLOAD 00001db6: DUP3 00001db7: MSTORE 00001db8: PUSH1 0x20 00001dba: DUP3 00001dbb: ADD 00001dbc: SWAP2 00001dbd: POP 00001dbe: PUSH1 0x20 00001dc0: DUP2 00001dc1: ADD 00001dc2: SWAP1 00001dc3: POP 00001dc4: PUSH1 0x20 00001dc6: DUP4 00001dc7: SUB 00001dc8: SWAP3 00001dc9: POP 00001dca: PUSH2 0x1da9 00001dcd: JUMP 00001dce: JUMPDEST 00001dcf: PUSH1 0x01 00001dd1: DUP4 00001dd2: PUSH1 0x20 00001dd4: SUB 00001dd5: PUSH2 0x0100 00001dd8: EXP 00001dd9: SUB 00001dda: DUP1 00001ddb: NOT 00001ddc: DUP3 00001ddd: MLOAD 00001dde: AND 00001ddf: DUP2 00001de0: DUP5 00001de1: MLOAD 00001de2: AND 00001de3: DUP1 00001de4: DUP3 00001de5: OR 00001de6: DUP6 00001de7: MSTORE 00001de8: POP 00001de9: POP 00001dea: POP 00001deb: POP 00001dec: POP 00001ded: POP 00001dee: SWAP1 00001def: POP 00001df0: ADD 00001df1: SWAP2 00001df2: POP 00001df3: POP 00001df4: SWAP1 00001df5: DUP2 00001df6: MSTORE 00001df7: PUSH1 0x20 00001df9: ADD 00001dfa: PUSH1 0x40 00001dfc: MLOAD 00001dfd: DUP1 00001dfe: SWAP2 00001dff: SUB 00001e00: SWAP1 00001e01: KECCAK256 00001e02: PUSH1 0x00 00001e04: DUP3 00001e05: ADD 00001e06: MLOAD 00001e07: DUP2 00001e08: PUSH1 0x00 00001e0a: ADD 00001e0b: PUSH1 0x00 00001e0d: PUSH2 0x0100 00001e10: EXP 00001e11: DUP2 00001e12: SLOAD 00001e13: DUP2 00001e14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e29: MUL 00001e2a: NOT 00001e2b: AND 00001e2c: SWAP1 00001e2d: DUP4 00001e2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e43: AND 00001e44: MUL 00001e45: OR 00001e46: SWAP1 00001e47: SSTORE 00001e48: POP 00001e49: PUSH1 0x20 00001e4b: DUP3 00001e4c: ADD 00001e4d: MLOAD 00001e4e: DUP2 00001e4f: PUSH1 0x01 00001e51: ADD 00001e52: SWAP1 00001e53: DUP1 00001e54: MLOAD 00001e55: SWAP1 00001e56: PUSH1 0x20 00001e58: ADD 00001e59: SWAP1 00001e5a: PUSH2 0x1e64 00001e5d: SWAP3 00001e5e: SWAP2 00001e5f: SWAP1 00001e60: PUSH2 0x2ed1 00001e63: JUMP 00001e64: JUMPDEST 00001e65: POP 00001e66: PUSH1 0x40 00001e68: DUP3 00001e69: ADD 00001e6a: MLOAD 00001e6b: DUP2 00001e6c: PUSH1 0x02 00001e6e: ADD 00001e6f: SSTORE 00001e70: PUSH1 0x60 00001e72: DUP3 00001e73: ADD 00001e74: MLOAD 00001e75: DUP2 00001e76: PUSH1 0x03 00001e78: ADD 00001e79: SSTORE 00001e7a: PUSH1 0x80 00001e7c: DUP3 00001e7d: ADD 00001e7e: MLOAD 00001e7f: DUP2 00001e80: PUSH1 0x04 00001e82: ADD 00001e83: SSTORE 00001e84: PUSH1 0xa0 00001e86: DUP3 00001e87: ADD 00001e88: MLOAD 00001e89: DUP2 00001e8a: PUSH1 0x05 00001e8c: ADD 00001e8d: SSTORE 00001e8e: PUSH1 0xc0 00001e90: DUP3 00001e91: ADD 00001e92: MLOAD 00001e93: DUP2 00001e94: PUSH1 0x06 00001e96: ADD 00001e97: SSTORE 00001e98: PUSH1 0xe0 00001e9a: DUP3 00001e9b: ADD 00001e9c: MLOAD 00001e9d: DUP2 00001e9e: PUSH1 0x07 00001ea0: ADD 00001ea1: SSTORE 00001ea2: PUSH2 0x0100 00001ea5: DUP3 00001ea6: ADD 00001ea7: MLOAD 00001ea8: DUP2 00001ea9: PUSH1 0x08 00001eab: ADD 00001eac: SSTORE 00001ead: PUSH2 0x0120 00001eb0: DUP3 00001eb1: ADD 00001eb2: MLOAD 00001eb3: DUP2 00001eb4: PUSH1 0x09 00001eb6: ADD 00001eb7: SSTORE 00001eb8: PUSH2 0x0140 00001ebb: DUP3 00001ebc: ADD 00001ebd: MLOAD 00001ebe: DUP2 00001ebf: PUSH1 0x0a 00001ec1: ADD 00001ec2: PUSH1 0x00 00001ec4: PUSH2 0x0100 00001ec7: EXP 00001ec8: DUP2 00001ec9: SLOAD 00001eca: DUP2 00001ecb: PUSH1 0xff 00001ecd: MUL 00001ece: NOT 00001ecf: AND 00001ed0: SWAP1 00001ed1: DUP4 00001ed2: ISZERO 00001ed3: ISZERO 00001ed4: MUL 00001ed5: OR 00001ed6: SWAP1 00001ed7: SSTORE 00001ed8: POP 00001ed9: PUSH2 0x0160 00001edc: DUP3 00001edd: ADD 00001ede: MLOAD 00001edf: DUP2 00001ee0: PUSH1 0x0a 00001ee2: ADD 00001ee3: PUSH1 0x01 00001ee5: PUSH2 0x0100 00001ee8: EXP 00001ee9: DUP2 00001eea: SLOAD 00001eeb: DUP2 00001eec: PUSH1 0xff 00001eee: MUL 00001eef: NOT 00001ef0: AND 00001ef1: SWAP1 00001ef2: DUP4 00001ef3: ISZERO 00001ef4: ISZERO 00001ef5: MUL 00001ef6: OR 00001ef7: SWAP1 00001ef8: SSTORE 00001ef9: POP 00001efa: SWAP1 00001efb: POP 00001efc: POP 00001efd: POP 00001efe: POP 00001eff: POP 00001f00: POP 00001f01: POP 00001f02: POP 00001f03: POP 00001f04: POP 00001f05: POP 00001f06: JUMP 00001f07: JUMPDEST 00001f08: PUSH1 0x04 00001f0a: SLOAD 00001f0b: DUP2 00001f0c: JUMP 00001f0d: JUMPDEST 00001f0e: PUSH1 0x00 00001f10: DUP1 00001f11: PUSH1 0x00 00001f13: SWAP1 00001f14: SLOAD 00001f15: SWAP1 00001f16: PUSH2 0x0100 00001f19: EXP 00001f1a: SWAP1 00001f1b: DIV 00001f1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f31: AND 00001f32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f47: AND 00001f48: CALLER 00001f49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f5e: AND 00001f5f: EQ 00001f60: ISZERO 00001f61: ISZERO 00001f62: PUSH2 0x1f6a 00001f65: JUMPI 00001f66: PUSH1 0x00 00001f68: DUP1 00001f69: REVERT 00001f6a: JUMPDEST 00001f6b: PUSH1 0x0c 00001f6d: PUSH1 0x00 00001f6f: SWAP1 00001f70: SLOAD 00001f71: SWAP1 00001f72: PUSH2 0x0100 00001f75: EXP 00001f76: SWAP1 00001f77: DIV 00001f78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f8d: AND 00001f8e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fa3: AND 00001fa4: PUSH4 0xa9059cbb 00001fa9: PUSH1 0x00 00001fab: DUP1 00001fac: SWAP1 00001fad: SLOAD 00001fae: SWAP1 00001faf: PUSH2 0x0100 00001fb2: EXP 00001fb3: SWAP1 00001fb4: DIV 00001fb5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fca: AND 00001fcb: DUP5 00001fcc: PUSH1 0x40 00001fce: MLOAD 00001fcf: DUP4 00001fd0: PUSH4 0xffffffff 00001fd5: AND 00001fd6: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00001ff4: MUL 00001ff5: DUP2 00001ff6: MSTORE 00001ff7: PUSH1 0x04 00001ff9: ADD 00001ffa: DUP1 00001ffb: DUP4 00001ffc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002011: AND 00002012: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002027: AND 00002028: DUP2 00002029: MSTORE 0000202a: PUSH1 0x20 0000202c: ADD 0000202d: DUP3 0000202e: DUP2 0000202f: MSTORE 00002030: PUSH1 0x20 00002032: ADD 00002033: SWAP3 00002034: POP 00002035: POP 00002036: POP 00002037: PUSH1 0x00 00002039: PUSH1 0x40 0000203b: MLOAD 0000203c: DUP1 0000203d: DUP4 0000203e: SUB 0000203f: DUP2 00002040: PUSH1 0x00 00002042: DUP8 00002043: DUP1 00002044: EXTCODESIZE 00002045: ISZERO 00002046: DUP1 00002047: ISZERO 00002048: PUSH2 0x2050 0000204b: JUMPI 0000204c: PUSH1 0x00 0000204e: DUP1 0000204f: REVERT 00002050: JUMPDEST 00002051: POP 00002052: GAS 00002053: CALL 00002054: ISZERO 00002055: DUP1 00002056: ISZERO 00002057: PUSH2 0x2064 0000205a: JUMPI 0000205b: RETURNDATASIZE 0000205c: PUSH1 0x00 0000205e: DUP1 0000205f: RETURNDATACOPY 00002060: RETURNDATASIZE 00002061: PUSH1 0x00 00002063: REVERT 00002064: JUMPDEST 00002065: POP 00002066: POP 00002067: POP 00002068: POP 00002069: PUSH1 0x01 0000206b: SWAP1 0000206c: POP 0000206d: SWAP2 0000206e: SWAP1 0000206f: POP 00002070: JUMP 00002071: JUMPDEST 00002072: PUSH1 0x02 00002074: PUSH1 0x00 00002076: SWAP1 00002077: SLOAD 00002078: SWAP1 00002079: PUSH2 0x0100 0000207c: EXP 0000207d: SWAP1 0000207e: DIV 0000207f: PUSH1 0xff 00002081: AND 00002082: DUP2 00002083: JUMP 00002084: JUMPDEST 00002085: PUSH1 0x00 00002087: DUP1 00002088: PUSH1 0x00 0000208a: SWAP1 0000208b: SLOAD 0000208c: SWAP1 0000208d: PUSH2 0x0100 00002090: EXP 00002091: SWAP1 00002092: DIV 00002093: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020a8: AND 000020a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020be: AND 000020bf: CALLER 000020c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020d5: AND 000020d6: EQ 000020d7: ISZERO 000020d8: ISZERO 000020d9: PUSH2 0x20e1 000020dc: JUMPI 000020dd: PUSH1 0x00 000020df: DUP1 000020e0: REVERT 000020e1: JUMPDEST 000020e2: DUP2 000020e3: PUSH1 0x0b 000020e5: DUP2 000020e6: SWAP1 000020e7: SSTORE 000020e8: POP 000020e9: PUSH1 0x01 000020eb: SWAP1 000020ec: POP 000020ed: SWAP2 000020ee: SWAP1 000020ef: POP 000020f0: JUMP 000020f1: JUMPDEST 000020f2: PUSH1 0x0a 000020f4: SLOAD 000020f5: DUP2 000020f6: JUMP 000020f7: JUMPDEST 000020f8: PUSH1 0x00 000020fa: DUP1 000020fb: SWAP1 000020fc: SLOAD 000020fd: SWAP1 000020fe: PUSH2 0x0100 00002101: EXP 00002102: SWAP1 00002103: DIV 00002104: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002119: AND 0000211a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000212f: AND 00002130: CALLER 00002131: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002146: AND 00002147: EQ 00002148: ISZERO 00002149: ISZERO 0000214a: PUSH2 0x2152 0000214d: JUMPI 0000214e: PUSH1 0x00 00002150: DUP1 00002151: REVERT 00002152: JUMPDEST 00002153: PUSH1 0x02 00002155: PUSH1 0x00 00002157: SWAP1 00002158: SLOAD 00002159: SWAP1 0000215a: PUSH2 0x0100 0000215d: EXP 0000215e: SWAP1 0000215f: DIV 00002160: PUSH1 0xff 00002162: AND 00002163: ISZERO 00002164: ISZERO 00002165: ISZERO 00002166: PUSH2 0x216e 00002169: JUMPI 0000216a: PUSH1 0x00 0000216c: DUP1 0000216d: REVERT 0000216e: JUMPDEST 0000216f: PUSH1 0x01 00002171: PUSH1 0x02 00002173: PUSH1 0x00 00002175: PUSH2 0x0100 00002178: EXP 00002179: DUP2 0000217a: SLOAD 0000217b: DUP2 0000217c: PUSH1 0xff 0000217e: MUL 0000217f: NOT 00002180: AND 00002181: SWAP1 00002182: DUP4 00002183: ISZERO 00002184: ISZERO 00002185: MUL 00002186: OR 00002187: SWAP1 00002188: SSTORE 00002189: POP 0000218a: PUSH32 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625 000021ab: PUSH1 0x40 000021ad: MLOAD 000021ae: PUSH1 0x40 000021b0: MLOAD 000021b1: DUP1 000021b2: SWAP2 000021b3: SUB 000021b4: SWAP1 000021b5: LOG1 000021b6: JUMP 000021b7: JUMPDEST 000021b8: PUSH1 0x00 000021ba: DUP1 000021bb: SWAP1 000021bc: SLOAD 000021bd: SWAP1 000021be: PUSH2 0x0100 000021c1: EXP 000021c2: SWAP1 000021c3: DIV 000021c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021d9: AND 000021da: DUP2 000021db: JUMP 000021dc: JUMPDEST 000021dd: PUSH1 0x01 000021df: PUSH1 0x20 000021e1: MSTORE 000021e2: DUP1 000021e3: PUSH1 0x00 000021e5: MSTORE 000021e6: PUSH1 0x40 000021e8: PUSH1 0x00 000021ea: KECCAK256 000021eb: PUSH1 0x00 000021ed: SWAP2 000021ee: POP 000021ef: SLOAD 000021f0: SWAP1 000021f1: PUSH2 0x0100 000021f4: EXP 000021f5: SWAP1 000021f6: DIV 000021f7: PUSH1 0xff 000021f9: AND 000021fa: DUP2 000021fb: JUMP 000021fc: JUMPDEST 000021fd: PUSH1 0x00 000021ff: DUP2 00002200: DUP4 00002201: GT 00002202: ISZERO 00002203: PUSH2 0x2235 00002206: JUMPI 00002207: PUSH2 0x222e 0000220a: PUSH2 0x221c 0000220d: DUP4 0000220e: DUP6 0000220f: PUSH2 0x2dab 00002212: SWAP1 00002213: SWAP2 00002214: SWAP1 00002215: PUSH4 0xffffffff 0000221a: AND 0000221b: JUMP 0000221c: JUMPDEST 0000221d: PUSH1 0x0a 0000221f: EXP 00002220: DUP6 00002221: PUSH2 0x2e2b 00002224: SWAP1 00002225: SWAP2 00002226: SWAP1 00002227: PUSH4 0xffffffff 0000222c: AND 0000222d: JUMP 0000222e: JUMPDEST 0000222f: SWAP1 00002230: POP 00002231: PUSH2 0x2260 00002234: JUMP 00002235: JUMPDEST 00002236: PUSH2 0x225d 00002239: PUSH2 0x224b 0000223c: DUP5 0000223d: DUP5 0000223e: PUSH2 0x2dab 00002241: SWAP1 00002242: SWAP2 00002243: SWAP1 00002244: PUSH4 0xffffffff 00002249: AND 0000224a: JUMP 0000224b: JUMPDEST 0000224c: PUSH1 0x0a 0000224e: EXP 0000224f: DUP6 00002250: PUSH2 0x2ded 00002253: SWAP1 00002254: SWAP2 00002255: SWAP1 00002256: PUSH4 0xffffffff 0000225b: AND 0000225c: JUMP 0000225d: JUMPDEST 0000225e: SWAP1 0000225f: POP 00002260: JUMPDEST 00002261: SWAP4 00002262: SWAP3 00002263: POP 00002264: POP 00002265: POP 00002266: JUMP 00002267: JUMPDEST 00002268: PUSH1 0x00 0000226a: PUSH4 0xf9ac7c0e 0000226f: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000228d: MUL 0000228e: DUP8 0000228f: DUP8 00002290: PUSH1 0x00 00002292: DUP9 00002293: DUP9 00002294: DUP9 00002295: DUP9 00002296: PUSH1 0x40 00002298: MLOAD 00002299: PUSH1 0x20 0000229b: ADD 0000229c: DUP1 0000229d: DUP10 0000229e: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000022bb: NOT 000022bc: AND 000022bd: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000022da: NOT 000022db: AND 000022dc: DUP2 000022dd: MSTORE 000022de: PUSH1 0x04 000022e0: ADD 000022e1: DUP9 000022e2: DUP1 000022e3: MLOAD 000022e4: SWAP1 000022e5: PUSH1 0x20 000022e7: ADD 000022e8: SWAP1 000022e9: DUP1 000022ea: DUP4 000022eb: DUP4 000022ec: JUMPDEST 000022ed: PUSH1 0x20 000022ef: DUP4 000022f0: LT 000022f1: ISZERO 000022f2: ISZERO 000022f3: PUSH2 0x2311 000022f6: JUMPI 000022f7: DUP1 000022f8: MLOAD 000022f9: DUP3 000022fa: MSTORE 000022fb: PUSH1 0x20 000022fd: DUP3 000022fe: ADD 000022ff: SWAP2 00002300: POP 00002301: PUSH1 0x20 00002303: DUP2 00002304: ADD 00002305: SWAP1 00002306: POP 00002307: PUSH1 0x20 00002309: DUP4 0000230a: SUB 0000230b: SWAP3 0000230c: POP 0000230d: PUSH2 0x22ec 00002310: JUMP 00002311: JUMPDEST 00002312: PUSH1 0x01 00002314: DUP4 00002315: PUSH1 0x20 00002317: SUB 00002318: PUSH2 0x0100 0000231b: EXP 0000231c: SUB 0000231d: DUP1 0000231e: NOT 0000231f: DUP3 00002320: MLOAD 00002321: AND 00002322: DUP2 00002323: DUP5 00002324: MLOAD 00002325: AND 00002326: DUP1 00002327: DUP3 00002328: OR 00002329: DUP6 0000232a: MSTORE 0000232b: POP 0000232c: POP 0000232d: POP 0000232e: POP 0000232f: POP 00002330: POP 00002331: SWAP1 00002332: POP 00002333: ADD 00002334: DUP8 00002335: DUP2 00002336: MSTORE 00002337: PUSH1 0x20 00002339: ADD 0000233a: DUP7 0000233b: ISZERO 0000233c: ISZERO 0000233d: ISZERO 0000233e: ISZERO 0000233f: PUSH32 0x0100000000000000000000000000000000000000000000000000000000000000 00002360: MUL 00002361: DUP2 00002362: MSTORE 00002363: PUSH1 0x01 00002365: ADD 00002366: DUP6 00002367: DUP2 00002368: MSTORE 00002369: PUSH1 0x20 0000236b: ADD 0000236c: DUP5 0000236d: DUP2 0000236e: MSTORE 0000236f: PUSH1 0x20 00002371: ADD 00002372: DUP4 00002373: DUP2 00002374: MSTORE 00002375: PUSH1 0x20 00002377: ADD 00002378: DUP3 00002379: DUP2 0000237a: MSTORE 0000237b: PUSH1 0x20 0000237d: ADD 0000237e: SWAP9 0000237f: POP 00002380: POP 00002381: POP 00002382: POP 00002383: POP 00002384: POP 00002385: POP 00002386: POP 00002387: POP 00002388: PUSH1 0x40 0000238a: MLOAD 0000238b: PUSH1 0x20 0000238d: DUP2 0000238e: DUP4 0000238f: SUB 00002390: SUB 00002391: DUP2 00002392: MSTORE 00002393: SWAP1 00002394: PUSH1 0x40 00002396: MSTORE 00002397: PUSH1 0x40 00002399: MLOAD 0000239a: DUP1 0000239b: DUP3 0000239c: DUP1 0000239d: MLOAD 0000239e: SWAP1 0000239f: PUSH1 0x20 000023a1: ADD 000023a2: SWAP1 000023a3: DUP1 000023a4: DUP4 000023a5: DUP4 000023a6: JUMPDEST 000023a7: PUSH1 0x20 000023a9: DUP4 000023aa: LT 000023ab: ISZERO 000023ac: ISZERO 000023ad: PUSH2 0x23cb 000023b0: JUMPI 000023b1: DUP1 000023b2: MLOAD 000023b3: DUP3 000023b4: MSTORE 000023b5: PUSH1 0x20 000023b7: DUP3 000023b8: ADD 000023b9: SWAP2 000023ba: POP 000023bb: PUSH1 0x20 000023bd: DUP2 000023be: ADD 000023bf: SWAP1 000023c0: POP 000023c1: PUSH1 0x20 000023c3: DUP4 000023c4: SUB 000023c5: SWAP3 000023c6: POP 000023c7: PUSH2 0x23a6 000023ca: JUMP 000023cb: JUMPDEST 000023cc: PUSH1 0x01 000023ce: DUP4 000023cf: PUSH1 0x20 000023d1: SUB 000023d2: PUSH2 0x0100 000023d5: EXP 000023d6: SUB 000023d7: DUP1 000023d8: NOT 000023d9: DUP3 000023da: MLOAD 000023db: AND 000023dc: DUP2 000023dd: DUP5 000023de: MLOAD 000023df: AND 000023e0: DUP1 000023e1: DUP3 000023e2: OR 000023e3: DUP6 000023e4: MSTORE 000023e5: POP 000023e6: POP 000023e7: POP 000023e8: POP 000023e9: POP 000023ea: POP 000023eb: SWAP1 000023ec: POP 000023ed: ADD 000023ee: SWAP2 000023ef: POP 000023f0: POP 000023f1: PUSH1 0x40 000023f3: MLOAD 000023f4: DUP1 000023f5: SWAP2 000023f6: SUB 000023f7: SWAP1 000023f8: KECCAK256 000023f9: SWAP1 000023fa: POP 000023fb: SWAP7 000023fc: SWAP6 000023fd: POP 000023fe: POP 000023ff: POP 00002400: POP 00002401: POP 00002402: POP 00002403: JUMP 00002404: JUMPDEST 00002405: PUSH1 0x00 00002407: DUP1 00002408: PUSH1 0x00 0000240a: PUSH1 0x01 0000240c: ISZERO 0000240d: ISZERO 0000240e: PUSH1 0x01 00002410: PUSH1 0x00 00002412: CALLER 00002413: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002428: AND 00002429: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000243e: AND 0000243f: DUP2 00002440: MSTORE 00002441: PUSH1 0x20 00002443: ADD 00002444: SWAP1 00002445: DUP2 00002446: MSTORE 00002447: PUSH1 0x20 00002449: ADD 0000244a: PUSH1 0x00 0000244c: KECCAK256 0000244d: PUSH1 0x00 0000244f: SWAP1 00002450: SLOAD 00002451: SWAP1 00002452: PUSH2 0x0100 00002455: EXP 00002456: SWAP1 00002457: DIV 00002458: PUSH1 0xff 0000245a: AND 0000245b: ISZERO 0000245c: ISZERO 0000245d: EQ 0000245e: ISZERO 0000245f: ISZERO 00002460: PUSH2 0x2468 00002463: JUMPI 00002464: PUSH1 0x00 00002466: DUP1 00002467: REVERT 00002468: JUMPDEST 00002469: PUSH1 0x02 0000246b: PUSH1 0x00 0000246d: SWAP1 0000246e: SLOAD 0000246f: SWAP1 00002470: PUSH2 0x0100 00002473: EXP 00002474: SWAP1 00002475: DIV 00002476: PUSH1 0xff 00002478: AND 00002479: ISZERO 0000247a: ISZERO 0000247b: ISZERO 0000247c: PUSH2 0x2484 0000247f: JUMPI 00002480: PUSH1 0x00 00002482: DUP1 00002483: REVERT 00002484: JUMPDEST 00002485: PUSH1 0x07 00002487: DUP6 00002488: PUSH1 0x40 0000248a: MLOAD 0000248b: DUP1 0000248c: DUP3 0000248d: DUP1 0000248e: MLOAD 0000248f: SWAP1 00002490: PUSH1 0x20 00002492: ADD 00002493: SWAP1 00002494: DUP1 00002495: DUP4 00002496: DUP4 00002497: JUMPDEST 00002498: PUSH1 0x20 0000249a: DUP4 0000249b: LT 0000249c: ISZERO 0000249d: ISZERO 0000249e: PUSH2 0x24bc 000024a1: JUMPI 000024a2: DUP1 000024a3: MLOAD 000024a4: DUP3 000024a5: MSTORE 000024a6: PUSH1 0x20 000024a8: DUP3 000024a9: ADD 000024aa: SWAP2 000024ab: POP 000024ac: PUSH1 0x20 000024ae: DUP2 000024af: ADD 000024b0: SWAP1 000024b1: POP 000024b2: PUSH1 0x20 000024b4: DUP4 000024b5: SUB 000024b6: SWAP3 000024b7: POP 000024b8: PUSH2 0x2497 000024bb: JUMP 000024bc: JUMPDEST 000024bd: PUSH1 0x01 000024bf: DUP4 000024c0: PUSH1 0x20 000024c2: SUB 000024c3: PUSH2 0x0100 000024c6: EXP 000024c7: SUB 000024c8: DUP1 000024c9: NOT 000024ca: DUP3 000024cb: MLOAD 000024cc: AND 000024cd: DUP2 000024ce: DUP5 000024cf: MLOAD 000024d0: AND 000024d1: DUP1 000024d2: DUP3 000024d3: OR 000024d4: DUP6 000024d5: MSTORE 000024d6: POP 000024d7: POP 000024d8: POP 000024d9: POP 000024da: POP 000024db: POP 000024dc: SWAP1 000024dd: POP 000024de: ADD 000024df: SWAP2 000024e0: POP 000024e1: POP 000024e2: SWAP1 000024e3: DUP2 000024e4: MSTORE 000024e5: PUSH1 0x20 000024e7: ADD 000024e8: PUSH1 0x40 000024ea: MLOAD 000024eb: DUP1 000024ec: SWAP2 000024ed: SUB 000024ee: SWAP1 000024ef: KECCAK256 000024f0: SWAP3 000024f1: POP 000024f2: DUP3 000024f3: PUSH1 0x0a 000024f5: ADD 000024f6: PUSH1 0x01 000024f8: SWAP1 000024f9: SLOAD 000024fa: SWAP1 000024fb: PUSH2 0x0100 000024fe: EXP 000024ff: SWAP1 00002500: DIV 00002501: PUSH1 0xff 00002503: AND 00002504: ISZERO 00002505: DUP1 00002506: ISZERO 00002507: PUSH2 0x251f 0000250a: JUMPI 0000250b: POP 0000250c: DUP3 0000250d: PUSH1 0x0a 0000250f: ADD 00002510: PUSH1 0x00 00002512: SWAP1 00002513: SLOAD 00002514: SWAP1 00002515: PUSH2 0x0100 00002518: EXP 00002519: SWAP1 0000251a: DIV 0000251b: PUSH1 0xff 0000251d: AND 0000251e: ISZERO 0000251f: JUMPDEST 00002520: ISZERO 00002521: ISZERO 00002522: PUSH2 0x252a 00002525: JUMPI 00002526: PUSH1 0x00 00002528: DUP1 00002529: REVERT 0000252a: JUMPDEST 0000252b: DUP4 0000252c: DUP4 0000252d: PUSH1 0x03 0000252f: ADD 00002530: SLOAD 00002531: GT 00002532: ISZERO 00002533: PUSH2 0x2629 00002536: JUMPI 00002537: PUSH2 0x258d 0000253a: DUP4 0000253b: PUSH1 0x02 0000253d: ADD 0000253e: SLOAD 0000253f: PUSH2 0x257f 00002542: DUP6 00002543: PUSH1 0x03 00002545: ADD 00002546: SLOAD 00002547: PUSH2 0x2571 0000254a: PUSH1 0x06 0000254c: SLOAD 0000254d: PUSH2 0x2563 00002550: DUP11 00002551: DUP11 00002552: PUSH1 0x03 00002554: ADD 00002555: SLOAD 00002556: PUSH2 0x2dab 00002559: SWAP1 0000255a: SWAP2 0000255b: SWAP1 0000255c: PUSH4 0xffffffff 00002561: AND 00002562: JUMP 00002563: JUMPDEST 00002564: PUSH2 0x2ded 00002567: SWAP1 00002568: SWAP2 00002569: SWAP1 0000256a: PUSH4 0xffffffff 0000256f: AND 00002570: JUMP 00002571: JUMPDEST 00002572: PUSH2 0x2e2b 00002575: SWAP1 00002576: SWAP2 00002577: SWAP1 00002578: PUSH4 0xffffffff 0000257d: AND 0000257e: JUMP 0000257f: JUMPDEST 00002580: PUSH2 0x2ded 00002583: SWAP1 00002584: SWAP2 00002585: SWAP1 00002586: PUSH4 0xffffffff 0000258b: AND 0000258c: JUMP 0000258d: JUMPDEST 0000258e: SWAP2 0000258f: POP 00002590: PUSH1 0x06 00002592: SLOAD 00002593: DUP3 00002594: LT 00002595: ISZERO 00002596: ISZERO 00002597: PUSH2 0x25a6 0000259a: JUMPI 0000259b: DUP3 0000259c: PUSH1 0x05 0000259e: ADD 0000259f: SLOAD 000025a0: SWAP1 000025a1: POP 000025a2: PUSH2 0x25d4 000025a5: JUMP 000025a6: JUMPDEST 000025a7: PUSH2 0x25d1 000025aa: PUSH1 0x06 000025ac: SLOAD 000025ad: PUSH2 0x25c3 000025b0: DUP5 000025b1: DUP7 000025b2: PUSH1 0x05 000025b4: ADD 000025b5: SLOAD 000025b6: PUSH2 0x2ded 000025b9: SWAP1 000025ba: SWAP2 000025bb: SWAP1 000025bc: PUSH4 0xffffffff 000025c1: AND 000025c2: JUMP 000025c3: JUMPDEST 000025c4: PUSH2 0x2e2b 000025c7: SWAP1 000025c8: SWAP2 000025c9: SWAP1 000025ca: PUSH4 0xffffffff 000025cf: AND 000025d0: JUMP 000025d1: JUMPDEST 000025d2: SWAP1 000025d3: POP 000025d4: JUMPDEST 000025d5: PUSH2 0x25eb 000025d8: DUP2 000025d9: DUP5 000025da: PUSH1 0x05 000025dc: ADD 000025dd: SLOAD 000025de: PUSH2 0x2dab 000025e1: SWAP1 000025e2: SWAP2 000025e3: SWAP1 000025e4: PUSH4 0xffffffff 000025e9: AND 000025ea: JUMP 000025eb: JUMPDEST 000025ec: DUP4 000025ed: PUSH1 0x06 000025ef: ADD 000025f0: DUP2 000025f1: SWAP1 000025f2: SSTORE 000025f3: POP 000025f4: PUSH2 0x261e 000025f7: DUP2 000025f8: PUSH2 0x2610 000025fb: DUP6 000025fc: PUSH1 0x07 000025fe: ADD 000025ff: SLOAD 00002600: PUSH1 0x09 00002602: SLOAD 00002603: PUSH2 0x2dcc 00002606: SWAP1 00002607: SWAP2 00002608: SWAP1 00002609: PUSH4 0xffffffff 0000260e: AND 0000260f: JUMP 00002610: JUMPDEST 00002611: PUSH2 0x2dcc 00002614: SWAP1 00002615: SWAP2 00002616: SWAP1 00002617: PUSH4 0xffffffff 0000261c: AND 0000261d: JUMP 0000261e: JUMPDEST 0000261f: PUSH1 0x09 00002621: DUP2 00002622: SWAP1 00002623: SSTORE 00002624: POP 00002625: PUSH2 0x2718 00002628: JUMP 00002629: JUMPDEST 0000262a: PUSH2 0x2680 0000262d: DUP4 0000262e: PUSH1 0x02 00002630: ADD 00002631: SLOAD 00002632: PUSH2 0x2672 00002635: DUP6 00002636: PUSH1 0x03 00002638: ADD 00002639: SLOAD 0000263a: PUSH2 0x2664 0000263d: PUSH1 0x06 0000263f: SLOAD 00002640: PUSH2 0x2656 00002643: DUP10 00002644: PUSH1 0x03 00002646: ADD 00002647: SLOAD 00002648: DUP12 00002649: PUSH2 0x2dab 0000264c: SWAP1 0000264d: SWAP2 0000264e: SWAP1 0000264f: PUSH4 0xffffffff 00002654: AND 00002655: JUMP 00002656: JUMPDEST 00002657: PUSH2 0x2ded 0000265a: SWAP1 0000265b: SWAP2 0000265c: SWAP1 0000265d: PUSH4 0xffffffff 00002662: AND 00002663: JUMP 00002664: JUMPDEST 00002665: PUSH2 0x2e2b 00002668: SWAP1 00002669: SWAP2 0000266a: SWAP1 0000266b: PUSH4 0xffffffff 00002670: AND 00002671: JUMP 00002672: JUMPDEST 00002673: PUSH2 0x2ded 00002676: SWAP1 00002677: SWAP2 00002678: SWAP1 00002679: PUSH4 0xffffffff 0000267e: AND 0000267f: JUMP 00002680: JUMPDEST 00002681: SWAP2 00002682: POP 00002683: PUSH1 0x06 00002685: SLOAD 00002686: DUP3 00002687: LT 00002688: ISZERO 00002689: ISZERO 0000268a: PUSH2 0x2699 0000268d: JUMPI 0000268e: DUP3 0000268f: PUSH1 0x07 00002691: ADD 00002692: SLOAD 00002693: SWAP1 00002694: POP 00002695: PUSH2 0x26c7 00002698: JUMP 00002699: JUMPDEST 0000269a: PUSH2 0x26c4 0000269d: PUSH1 0x06 0000269f: SLOAD 000026a0: PUSH2 0x26b6 000026a3: DUP5 000026a4: DUP7 000026a5: PUSH1 0x07 000026a7: ADD 000026a8: SLOAD 000026a9: PUSH2 0x2ded 000026ac: SWAP1 000026ad: SWAP2 000026ae: SWAP1 000026af: PUSH4 0xffffffff 000026b4: AND 000026b5: JUMP 000026b6: JUMPDEST 000026b7: PUSH2 0x2e2b 000026ba: SWAP1 000026bb: SWAP2 000026bc: SWAP1 000026bd: PUSH4 0xffffffff 000026c2: AND 000026c3: JUMP 000026c4: JUMPDEST 000026c5: SWAP1 000026c6: POP 000026c7: JUMPDEST 000026c8: PUSH2 0x26de 000026cb: DUP2 000026cc: DUP5 000026cd: PUSH1 0x05 000026cf: ADD 000026d0: SLOAD 000026d1: PUSH2 0x2dcc 000026d4: SWAP1 000026d5: SWAP2 000026d6: SWAP1 000026d7: PUSH4 0xffffffff 000026dc: AND 000026dd: JUMP 000026de: JUMPDEST 000026df: DUP4 000026e0: PUSH1 0x06 000026e2: ADD 000026e3: DUP2 000026e4: SWAP1 000026e5: SSTORE 000026e6: POP 000026e7: PUSH2 0x2711 000026ea: DUP2 000026eb: PUSH2 0x2703 000026ee: DUP6 000026ef: PUSH1 0x07 000026f1: ADD 000026f2: SLOAD 000026f3: PUSH1 0x09 000026f5: SLOAD 000026f6: PUSH2 0x2dcc 000026f9: SWAP1 000026fa: SWAP2 000026fb: SWAP1 000026fc: PUSH4 0xffffffff 00002701: AND 00002702: JUMP 00002703: JUMPDEST 00002704: PUSH2 0x2dab 00002707: SWAP1 00002708: SWAP2 00002709: SWAP1 0000270a: PUSH4 0xffffffff 0000270f: AND 00002710: JUMP 00002711: JUMPDEST 00002712: PUSH1 0x09 00002714: DUP2 00002715: SWAP1 00002716: SSTORE 00002717: POP 00002718: JUMPDEST 00002719: PUSH1 0x01 0000271b: DUP4 0000271c: PUSH1 0x0a 0000271e: ADD 0000271f: PUSH1 0x00 00002721: PUSH2 0x0100 00002724: EXP 00002725: DUP2 00002726: SLOAD 00002727: DUP2 00002728: PUSH1 0xff 0000272a: MUL 0000272b: NOT 0000272c: AND 0000272d: SWAP1 0000272e: DUP4 0000272f: ISZERO 00002730: ISZERO 00002731: MUL 00002732: OR 00002733: SWAP1 00002734: SSTORE 00002735: POP 00002736: DUP4 00002737: DUP4 00002738: PUSH1 0x04 0000273a: ADD 0000273b: DUP2 0000273c: SWAP1 0000273d: SSTORE 0000273e: POP 0000273f: PUSH1 0x0c 00002741: PUSH1 0x00 00002743: SWAP1 00002744: SLOAD 00002745: SWAP1 00002746: PUSH2 0x0100 00002749: EXP 0000274a: SWAP1 0000274b: DIV 0000274c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002761: AND 00002762: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002777: AND 00002778: PUSH4 0xa9059cbb 0000277d: DUP5 0000277e: PUSH1 0x00 00002780: ADD 00002781: PUSH1 0x00 00002783: SWAP1 00002784: SLOAD 00002785: SWAP1 00002786: PUSH2 0x0100 00002789: EXP 0000278a: SWAP1 0000278b: DIV 0000278c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027a1: AND 000027a2: DUP6 000027a3: PUSH1 0x06 000027a5: ADD 000027a6: SLOAD 000027a7: PUSH1 0x40 000027a9: MLOAD 000027aa: DUP4 000027ab: PUSH4 0xffffffff 000027b0: AND 000027b1: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000027cf: MUL 000027d0: DUP2 000027d1: MSTORE 000027d2: PUSH1 0x04 000027d4: ADD 000027d5: DUP1 000027d6: DUP4 000027d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027ec: AND 000027ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002802: AND 00002803: DUP2 00002804: MSTORE 00002805: PUSH1 0x20 00002807: ADD 00002808: DUP3 00002809: DUP2 0000280a: MSTORE 0000280b: PUSH1 0x20 0000280d: ADD 0000280e: SWAP3 0000280f: POP 00002810: POP 00002811: POP 00002812: PUSH1 0x00 00002814: PUSH1 0x40 00002816: MLOAD 00002817: DUP1 00002818: DUP4 00002819: SUB 0000281a: DUP2 0000281b: PUSH1 0x00 0000281d: DUP8 0000281e: DUP1 0000281f: EXTCODESIZE 00002820: ISZERO 00002821: DUP1 00002822: ISZERO 00002823: PUSH2 0x282b 00002826: JUMPI 00002827: PUSH1 0x00 00002829: DUP1 0000282a: REVERT 0000282b: JUMPDEST 0000282c: POP 0000282d: GAS 0000282e: CALL 0000282f: ISZERO 00002830: DUP1 00002831: ISZERO 00002832: PUSH2 0x283f 00002835: JUMPI 00002836: RETURNDATASIZE 00002837: PUSH1 0x00 00002839: DUP1 0000283a: RETURNDATACOPY 0000283b: RETURNDATASIZE 0000283c: PUSH1 0x00 0000283e: REVERT 0000283f: JUMPDEST 00002840: POP 00002841: POP 00002842: POP 00002843: POP 00002844: POP 00002845: POP 00002846: POP 00002847: POP 00002848: POP 00002849: JUMP 0000284a: JUMPDEST 0000284b: PUSH1 0x00 0000284d: PUSH4 0xf9ac7c0e 00002852: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00002870: MUL 00002871: DUP8 00002872: DUP8 00002873: PUSH1 0x01 00002875: DUP9 00002876: DUP9 00002877: DUP9 00002878: DUP9 00002879: PUSH1 0x40 0000287b: MLOAD 0000287c: PUSH1 0x20 0000287e: ADD 0000287f: DUP1 00002880: DUP10 00002881: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000289e: NOT 0000289f: AND 000028a0: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000028bd: NOT 000028be: AND 000028bf: DUP2 000028c0: MSTORE 000028c1: PUSH1 0x04 000028c3: ADD 000028c4: DUP9 000028c5: DUP1 000028c6: MLOAD 000028c7: SWAP1 000028c8: PUSH1 0x20 000028ca: ADD 000028cb: SWAP1 000028cc: DUP1 000028cd: DUP4 000028ce: DUP4 000028cf: JUMPDEST 000028d0: PUSH1 0x20 000028d2: DUP4 000028d3: LT 000028d4: ISZERO 000028d5: ISZERO 000028d6: PUSH2 0x28f4 000028d9: JUMPI 000028da: DUP1 000028db: MLOAD 000028dc: DUP3 000028dd: MSTORE 000028de: PUSH1 0x20 000028e0: DUP3 000028e1: ADD 000028e2: SWAP2 000028e3: POP 000028e4: PUSH1 0x20 000028e6: DUP2 000028e7: ADD 000028e8: SWAP1 000028e9: POP 000028ea: PUSH1 0x20 000028ec: DUP4 000028ed: SUB 000028ee: SWAP3 000028ef: POP 000028f0: PUSH2 0x28cf 000028f3: JUMP 000028f4: JUMPDEST 000028f5: PUSH1 0x01 000028f7: DUP4 000028f8: PUSH1 0x20 000028fa: SUB 000028fb: PUSH2 0x0100 000028fe: EXP 000028ff: SUB 00002900: DUP1 00002901: NOT 00002902: DUP3 00002903: MLOAD 00002904: AND 00002905: DUP2 00002906: DUP5 00002907: MLOAD 00002908: AND 00002909: DUP1 0000290a: DUP3 0000290b: OR 0000290c: DUP6 0000290d: MSTORE 0000290e: POP 0000290f: POP 00002910: POP 00002911: POP 00002912: POP 00002913: POP 00002914: SWAP1 00002915: POP 00002916: ADD 00002917: DUP8 00002918: DUP2 00002919: MSTORE 0000291a: PUSH1 0x20 0000291c: ADD 0000291d: DUP7 0000291e: ISZERO 0000291f: ISZERO 00002920: ISZERO 00002921: ISZERO 00002922: PUSH32 0x0100000000000000000000000000000000000000000000000000000000000000 00002943: MUL 00002944: DUP2 00002945: MSTORE 00002946: PUSH1 0x01 00002948: ADD 00002949: DUP6 0000294a: DUP2 0000294b: MSTORE 0000294c: PUSH1 0x20 0000294e: ADD 0000294f: DUP5 00002950: DUP2 00002951: MSTORE 00002952: PUSH1 0x20 00002954: ADD 00002955: DUP4 00002956: DUP2 00002957: MSTORE 00002958: PUSH1 0x20 0000295a: ADD 0000295b: DUP3 0000295c: DUP2 0000295d: MSTORE 0000295e: PUSH1 0x20 00002960: ADD 00002961: SWAP9 00002962: POP 00002963: POP 00002964: POP 00002965: POP 00002966: POP 00002967: POP 00002968: POP 00002969: POP 0000296a: POP 0000296b: PUSH1 0x40 0000296d: MLOAD 0000296e: PUSH1 0x20 00002970: DUP2 00002971: DUP4 00002972: SUB 00002973: SUB 00002974: DUP2 00002975: MSTORE 00002976: SWAP1 00002977: PUSH1 0x40 00002979: MSTORE 0000297a: PUSH1 0x40 0000297c: MLOAD 0000297d: DUP1 0000297e: DUP3 0000297f: DUP1 00002980: MLOAD 00002981: SWAP1 00002982: PUSH1 0x20 00002984: ADD 00002985: SWAP1 00002986: DUP1 00002987: DUP4 00002988: DUP4 00002989: JUMPDEST 0000298a: PUSH1 0x20 0000298c: DUP4 0000298d: LT 0000298e: ISZERO 0000298f: ISZERO 00002990: PUSH2 0x29ae 00002993: JUMPI 00002994: DUP1 00002995: MLOAD 00002996: DUP3 00002997: MSTORE 00002998: PUSH1 0x20 0000299a: DUP3 0000299b: ADD 0000299c: SWAP2 0000299d: POP 0000299e: PUSH1 0x20 000029a0: DUP2 000029a1: ADD 000029a2: SWAP1 000029a3: POP 000029a4: PUSH1 0x20 000029a6: DUP4 000029a7: SUB 000029a8: SWAP3 000029a9: POP 000029aa: PUSH2 0x2989 000029ad: JUMP 000029ae: JUMPDEST 000029af: PUSH1 0x01 000029b1: DUP4 000029b2: PUSH1 0x20 000029b4: SUB 000029b5: PUSH2 0x0100 000029b8: EXP 000029b9: SUB 000029ba: DUP1 000029bb: NOT 000029bc: DUP3 000029bd: MLOAD 000029be: AND 000029bf: DUP2 000029c0: DUP5 000029c1: MLOAD 000029c2: AND 000029c3: DUP1 000029c4: DUP3 000029c5: OR 000029c6: DUP6 000029c7: MSTORE 000029c8: POP 000029c9: POP 000029ca: POP 000029cb: POP 000029cc: POP 000029cd: POP 000029ce: SWAP1 000029cf: POP 000029d0: ADD 000029d1: SWAP2 000029d2: POP 000029d3: POP 000029d4: PUSH1 0x40 000029d6: MLOAD 000029d7: DUP1 000029d8: SWAP2 000029d9: SUB 000029da: SWAP1 000029db: KECCAK256 000029dc: SWAP1 000029dd: POP 000029de: SWAP7 000029df: SWAP6 000029e0: POP 000029e1: POP 000029e2: POP 000029e3: POP 000029e4: POP 000029e5: POP 000029e6: JUMP 000029e7: JUMPDEST 000029e8: PUSH1 0x00 000029ea: DUP1 000029eb: SWAP1 000029ec: SLOAD 000029ed: SWAP1 000029ee: PUSH2 0x0100 000029f1: EXP 000029f2: SWAP1 000029f3: DIV 000029f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a09: AND 00002a0a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a1f: AND 00002a20: CALLER 00002a21: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a36: AND 00002a37: EQ 00002a38: ISZERO 00002a39: ISZERO 00002a3a: PUSH2 0x2a42 00002a3d: JUMPI 00002a3e: PUSH1 0x00 00002a40: DUP1 00002a41: REVERT 00002a42: JUMPDEST 00002a43: PUSH1 0x00 00002a45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a5a: AND 00002a5b: DUP3 00002a5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a71: AND 00002a72: EQ 00002a73: ISZERO 00002a74: ISZERO 00002a75: ISZERO 00002a76: PUSH2 0x2a7e 00002a79: JUMPI 00002a7a: PUSH1 0x00 00002a7c: DUP1 00002a7d: REVERT 00002a7e: JUMPDEST 00002a7f: DUP1 00002a80: PUSH1 0x01 00002a82: PUSH1 0x00 00002a84: DUP5 00002a85: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a9a: AND 00002a9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ab0: AND 00002ab1: DUP2 00002ab2: MSTORE 00002ab3: PUSH1 0x20 00002ab5: ADD 00002ab6: SWAP1 00002ab7: DUP2 00002ab8: MSTORE 00002ab9: PUSH1 0x20 00002abb: ADD 00002abc: PUSH1 0x00 00002abe: KECCAK256 00002abf: PUSH1 0x00 00002ac1: PUSH2 0x0100 00002ac4: EXP 00002ac5: DUP2 00002ac6: SLOAD 00002ac7: DUP2 00002ac8: PUSH1 0xff 00002aca: MUL 00002acb: NOT 00002acc: AND 00002acd: SWAP1 00002ace: DUP4 00002acf: ISZERO 00002ad0: ISZERO 00002ad1: MUL 00002ad2: OR 00002ad3: SWAP1 00002ad4: SSTORE 00002ad5: POP 00002ad6: POP 00002ad7: POP 00002ad8: JUMP 00002ad9: JUMPDEST 00002ada: PUSH1 0x00 00002adc: DUP1 00002add: PUSH1 0x00 00002adf: PUSH2 0x2b08 00002ae2: PUSH1 0x64 00002ae4: PUSH2 0x2afa 00002ae7: PUSH1 0x0b 00002ae9: SLOAD 00002aea: PUSH1 0x09 00002aec: SLOAD 00002aed: PUSH2 0x2ded 00002af0: SWAP1 00002af1: SWAP2 00002af2: SWAP1 00002af3: PUSH4 0xffffffff 00002af8: AND 00002af9: JUMP 00002afa: JUMPDEST 00002afb: PUSH2 0x2e2b 00002afe: SWAP1 00002aff: SWAP2 00002b00: SWAP1 00002b01: PUSH4 0xffffffff 00002b06: AND 00002b07: JUMP 00002b08: JUMPDEST 00002b09: SWAP2 00002b0a: POP 00002b0b: PUSH2 0x2b32 00002b0e: PUSH1 0x64 00002b10: PUSH2 0x2b24 00002b13: PUSH1 0x0a 00002b15: SLOAD 00002b16: DUP8 00002b17: PUSH2 0x2ded 00002b1a: SWAP1 00002b1b: SWAP2 00002b1c: SWAP1 00002b1d: PUSH4 0xffffffff 00002b22: AND 00002b23: JUMP 00002b24: JUMPDEST 00002b25: PUSH2 0x2e2b 00002b28: SWAP1 00002b29: SWAP2 00002b2a: SWAP1 00002b2b: PUSH4 0xffffffff 00002b30: AND 00002b31: JUMP 00002b32: JUMPDEST 00002b33: SWAP1 00002b34: POP 00002b35: DUP2 00002b36: DUP2 00002b37: GT 00002b38: PUSH2 0x2b41 00002b3b: JUMPI 00002b3c: DUP1 00002b3d: PUSH2 0x2b43 00002b40: JUMP 00002b41: JUMPDEST 00002b42: DUP2 00002b43: JUMPDEST 00002b44: SWAP3 00002b45: POP 00002b46: POP 00002b47: POP 00002b48: SWAP2 00002b49: SWAP1 00002b4a: POP 00002b4b: JUMP 00002b4c: JUMPDEST 00002b4d: PUSH1 0x00 00002b4f: DUP1 00002b50: SWAP1 00002b51: SLOAD 00002b52: SWAP1 00002b53: PUSH2 0x0100 00002b56: EXP 00002b57: SWAP1 00002b58: DIV 00002b59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b6e: AND 00002b6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b84: AND 00002b85: CALLER 00002b86: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b9b: AND 00002b9c: EQ 00002b9d: ISZERO 00002b9e: ISZERO 00002b9f: PUSH2 0x2ba7 00002ba2: JUMPI 00002ba3: PUSH1 0x00 00002ba5: DUP1 00002ba6: REVERT 00002ba7: JUMPDEST 00002ba8: PUSH1 0x00 00002baa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bbf: AND 00002bc0: DUP2 00002bc1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bd6: AND 00002bd7: EQ 00002bd8: ISZERO 00002bd9: ISZERO 00002bda: ISZERO 00002bdb: PUSH2 0x2be3 00002bde: JUMPI 00002bdf: PUSH1 0x00 00002be1: DUP1 00002be2: REVERT 00002be3: JUMPDEST 00002be4: DUP1 00002be5: PUSH1 0x00 00002be7: DUP1 00002be8: PUSH2 0x0100 00002beb: EXP 00002bec: DUP2 00002bed: SLOAD 00002bee: DUP2 00002bef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c04: MUL 00002c05: NOT 00002c06: AND 00002c07: SWAP1 00002c08: DUP4 00002c09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c1e: AND 00002c1f: MUL 00002c20: OR 00002c21: SWAP1 00002c22: SSTORE 00002c23: POP 00002c24: POP 00002c25: JUMP 00002c26: JUMPDEST 00002c27: PUSH1 0x0b 00002c29: SLOAD 00002c2a: DUP2 00002c2b: JUMP 00002c2c: JUMPDEST 00002c2d: PUSH1 0x00 00002c2f: DUP1 00002c30: PUSH1 0x00 00002c32: SWAP1 00002c33: SLOAD 00002c34: SWAP1 00002c35: PUSH2 0x0100 00002c38: EXP 00002c39: SWAP1 00002c3a: DIV 00002c3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c50: AND 00002c51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c66: AND 00002c67: CALLER 00002c68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c7d: AND 00002c7e: EQ 00002c7f: ISZERO 00002c80: ISZERO 00002c81: PUSH2 0x2c89 00002c84: JUMPI 00002c85: PUSH1 0x00 00002c87: DUP1 00002c88: REVERT 00002c89: JUMPDEST 00002c8a: PUSH1 0x0c 00002c8c: PUSH1 0x00 00002c8e: SWAP1 00002c8f: SLOAD 00002c90: SWAP1 00002c91: PUSH2 0x0100 00002c94: EXP 00002c95: SWAP1 00002c96: DIV 00002c97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cac: AND 00002cad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cc2: AND 00002cc3: PUSH4 0xa9059cbb 00002cc8: PUSH1 0x00 00002cca: DUP1 00002ccb: SWAP1 00002ccc: SLOAD 00002ccd: SWAP1 00002cce: PUSH2 0x0100 00002cd1: EXP 00002cd2: SWAP1 00002cd3: DIV 00002cd4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ce9: AND 00002cea: DUP5 00002ceb: PUSH1 0x40 00002ced: MLOAD 00002cee: DUP4 00002cef: PUSH4 0xffffffff 00002cf4: AND 00002cf5: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00002d13: MUL 00002d14: DUP2 00002d15: MSTORE 00002d16: PUSH1 0x04 00002d18: ADD 00002d19: DUP1 00002d1a: DUP4 00002d1b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d30: AND 00002d31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d46: AND 00002d47: DUP2 00002d48: MSTORE 00002d49: PUSH1 0x20 00002d4b: ADD 00002d4c: DUP3 00002d4d: DUP2 00002d4e: MSTORE 00002d4f: PUSH1 0x20 00002d51: ADD 00002d52: SWAP3 00002d53: POP 00002d54: POP 00002d55: POP 00002d56: PUSH1 0x00 00002d58: PUSH1 0x40 00002d5a: MLOAD 00002d5b: DUP1 00002d5c: DUP4 00002d5d: SUB 00002d5e: DUP2 00002d5f: PUSH1 0x00 00002d61: DUP8 00002d62: DUP1 00002d63: EXTCODESIZE 00002d64: ISZERO 00002d65: DUP1 00002d66: ISZERO 00002d67: PUSH2 0x2d6f 00002d6a: JUMPI 00002d6b: PUSH1 0x00 00002d6d: DUP1 00002d6e: REVERT 00002d6f: JUMPDEST 00002d70: POP 00002d71: GAS 00002d72: CALL 00002d73: ISZERO 00002d74: DUP1 00002d75: ISZERO 00002d76: PUSH2 0x2d83 00002d79: JUMPI 00002d7a: RETURNDATASIZE 00002d7b: PUSH1 0x00 00002d7d: DUP1 00002d7e: RETURNDATACOPY 00002d7f: RETURNDATASIZE 00002d80: PUSH1 0x00 00002d82: REVERT 00002d83: JUMPDEST 00002d84: POP 00002d85: POP 00002d86: POP 00002d87: POP 00002d88: PUSH2 0x2d9c 00002d8b: DUP3 00002d8c: PUSH1 0x09 00002d8e: SLOAD 00002d8f: PUSH2 0x2dab 00002d92: SWAP1 00002d93: SWAP2 00002d94: SWAP1 00002d95: PUSH4 0xffffffff 00002d9a: AND 00002d9b: JUMP 00002d9c: JUMPDEST 00002d9d: PUSH1 0x09 00002d9f: DUP2 00002da0: SWAP1 00002da1: SSTORE 00002da2: POP 00002da3: PUSH1 0x01 00002da5: SWAP1 00002da6: POP 00002da7: SWAP2 00002da8: SWAP1 00002da9: POP 00002daa: JUMP 00002dab: JUMPDEST 00002dac: PUSH1 0x00 00002dae: DUP1 00002daf: DUP4 00002db0: DUP4 00002db1: GT 00002db2: ISZERO 00002db3: ISZERO 00002db4: ISZERO 00002db5: PUSH2 0x2dbd 00002db8: JUMPI 00002db9: PUSH1 0x00 00002dbb: DUP1 00002dbc: REVERT 00002dbd: JUMPDEST 00002dbe: DUP3 00002dbf: DUP5 00002dc0: SUB 00002dc1: SWAP1 00002dc2: POP 00002dc3: DUP1 00002dc4: SWAP2 00002dc5: POP 00002dc6: POP 00002dc7: SWAP3 00002dc8: SWAP2 00002dc9: POP 00002dca: POP 00002dcb: JUMP 00002dcc: JUMPDEST 00002dcd: PUSH1 0x00 00002dcf: DUP1 00002dd0: DUP3 00002dd1: DUP5 00002dd2: ADD 00002dd3: SWAP1 00002dd4: POP 00002dd5: DUP4 00002dd6: DUP2 00002dd7: LT 00002dd8: ISZERO 00002dd9: ISZERO 00002dda: ISZERO 00002ddb: PUSH2 0x2de3 00002dde: JUMPI 00002ddf: PUSH1 0x00 00002de1: DUP1 00002de2: REVERT 00002de3: JUMPDEST 00002de4: DUP1 00002de5: SWAP2 00002de6: POP 00002de7: POP 00002de8: SWAP3 00002de9: SWAP2 00002dea: POP 00002deb: POP 00002dec: JUMP 00002ded: JUMPDEST 00002dee: PUSH1 0x00 00002df0: DUP1 00002df1: PUSH1 0x00 00002df3: DUP5 00002df4: EQ 00002df5: ISZERO 00002df6: PUSH2 0x2e02 00002df9: JUMPI 00002dfa: PUSH1 0x00 00002dfc: SWAP2 00002dfd: POP 00002dfe: PUSH2 0x2e24 00002e01: JUMP 00002e02: JUMPDEST 00002e03: DUP3 00002e04: DUP5 00002e05: MUL 00002e06: SWAP1 00002e07: POP 00002e08: DUP3 00002e09: DUP5 00002e0a: DUP3 00002e0b: DUP2 00002e0c: ISZERO 00002e0d: ISZERO 00002e0e: PUSH2 0x2e13 00002e11: JUMPI 00002e12: INVALID 00002e13: JUMPDEST 00002e14: DIV 00002e15: EQ 00002e16: ISZERO 00002e17: ISZERO 00002e18: PUSH2 0x2e20 00002e1b: JUMPI 00002e1c: PUSH1 0x00 00002e1e: DUP1 00002e1f: REVERT 00002e20: JUMPDEST 00002e21: DUP1 00002e22: SWAP2 00002e23: POP 00002e24: JUMPDEST 00002e25: POP 00002e26: SWAP3 00002e27: SWAP2 00002e28: POP 00002e29: POP 00002e2a: JUMP 00002e2b: JUMPDEST 00002e2c: PUSH1 0x00 00002e2e: DUP1 00002e2f: PUSH1 0x00 00002e31: DUP4 00002e32: GT 00002e33: ISZERO 00002e34: ISZERO 00002e35: PUSH2 0x2e3d 00002e38: JUMPI 00002e39: PUSH1 0x00 00002e3b: DUP1 00002e3c: REVERT 00002e3d: JUMPDEST 00002e3e: DUP3 00002e3f: DUP5 00002e40: DUP2 00002e41: ISZERO 00002e42: ISZERO 00002e43: PUSH2 0x2e48 00002e46: JUMPI 00002e47: INVALID 00002e48: JUMPDEST 00002e49: DIV 00002e4a: SWAP1 00002e4b: POP 00002e4c: DUP1 00002e4d: SWAP2 00002e4e: POP 00002e4f: POP 00002e50: SWAP3 00002e51: SWAP2 00002e52: POP 00002e53: POP 00002e54: JUMP 00002e55: JUMPDEST 00002e56: PUSH2 0x0180 00002e59: PUSH1 0x40 00002e5b: MLOAD 00002e5c: SWAP1 00002e5d: DUP2 00002e5e: ADD 00002e5f: PUSH1 0x40 00002e61: MSTORE 00002e62: DUP1 00002e63: PUSH1 0x00 00002e65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e7a: AND 00002e7b: DUP2 00002e7c: MSTORE 00002e7d: PUSH1 0x20 00002e7f: ADD 00002e80: PUSH1 0x60 00002e82: DUP2 00002e83: MSTORE 00002e84: PUSH1 0x20 00002e86: ADD 00002e87: PUSH1 0x00 00002e89: DUP2 00002e8a: MSTORE 00002e8b: PUSH1 0x20 00002e8d: ADD 00002e8e: PUSH1 0x00 00002e90: DUP2 00002e91: MSTORE 00002e92: PUSH1 0x20 00002e94: ADD 00002e95: PUSH1 0x00 00002e97: DUP2 00002e98: MSTORE 00002e99: PUSH1 0x20 00002e9b: ADD 00002e9c: PUSH1 0x00 00002e9e: DUP2 00002e9f: MSTORE 00002ea0: PUSH1 0x20 00002ea2: ADD 00002ea3: PUSH1 0x00 00002ea5: DUP2 00002ea6: MSTORE 00002ea7: PUSH1 0x20 00002ea9: ADD 00002eaa: PUSH1 0x00 00002eac: DUP2 00002ead: MSTORE 00002eae: PUSH1 0x20 00002eb0: ADD 00002eb1: PUSH1 0x00 00002eb3: DUP2 00002eb4: MSTORE 00002eb5: PUSH1 0x20 00002eb7: ADD 00002eb8: PUSH1 0x00 00002eba: DUP2 00002ebb: MSTORE 00002ebc: PUSH1 0x20 00002ebe: ADD 00002ebf: PUSH1 0x00 00002ec1: ISZERO 00002ec2: ISZERO 00002ec3: DUP2 00002ec4: MSTORE 00002ec5: PUSH1 0x20 00002ec7: ADD 00002ec8: PUSH1 0x00 00002eca: ISZERO 00002ecb: ISZERO 00002ecc: DUP2 00002ecd: MSTORE 00002ece: POP 00002ecf: SWAP1 00002ed0: JUMP 00002ed1: JUMPDEST 00002ed2: DUP3 00002ed3: DUP1 00002ed4: SLOAD 00002ed5: PUSH1 0x01 00002ed7: DUP2 00002ed8: PUSH1 0x01 00002eda: AND 00002edb: ISZERO 00002edc: PUSH2 0x0100 00002edf: MUL 00002ee0: SUB 00002ee1: AND 00002ee2: PUSH1 0x02 00002ee4: SWAP1 00002ee5: DIV 00002ee6: SWAP1 00002ee7: PUSH1 0x00 00002ee9: MSTORE 00002eea: PUSH1 0x20 00002eec: PUSH1 0x00 00002eee: KECCAK256 00002eef: SWAP1 00002ef0: PUSH1 0x1f 00002ef2: ADD 00002ef3: PUSH1 0x20 00002ef5: SWAP1 00002ef6: DIV 00002ef7: DUP2 00002ef8: ADD 00002ef9: SWAP3 00002efa: DUP3 00002efb: PUSH1 0x1f 00002efd: LT 00002efe: PUSH2 0x2f12 00002f01: JUMPI 00002f02: DUP1 00002f03: MLOAD 00002f04: PUSH1 0xff 00002f06: NOT 00002f07: AND 00002f08: DUP4 00002f09: DUP1 00002f0a: ADD 00002f0b: OR 00002f0c: DUP6 00002f0d: SSTORE 00002f0e: PUSH2 0x2f40 00002f11: JUMP 00002f12: JUMPDEST 00002f13: DUP3 00002f14: DUP1 00002f15: ADD 00002f16: PUSH1 0x01 00002f18: ADD 00002f19: DUP6 00002f1a: SSTORE 00002f1b: DUP3 00002f1c: ISZERO 00002f1d: PUSH2 0x2f40 00002f20: JUMPI 00002f21: SWAP2 00002f22: DUP3 00002f23: ADD 00002f24: JUMPDEST 00002f25: DUP3 00002f26: DUP2 00002f27: GT 00002f28: ISZERO 00002f29: PUSH2 0x2f3f 00002f2c: JUMPI 00002f2d: DUP3 00002f2e: MLOAD 00002f2f: DUP3 00002f30: SSTORE 00002f31: SWAP2 00002f32: PUSH1 0x20 00002f34: ADD 00002f35: SWAP2 00002f36: SWAP1 00002f37: PUSH1 0x01 00002f39: ADD 00002f3a: SWAP1 00002f3b: PUSH2 0x2f24 00002f3e: JUMP 00002f3f: JUMPDEST 00002f40: JUMPDEST 00002f41: POP 00002f42: SWAP1 00002f43: POP 00002f44: PUSH2 0x2f4d 00002f47: SWAP2 00002f48: SWAP1 00002f49: PUSH2 0x2f51 00002f4c: JUMP 00002f4d: JUMPDEST 00002f4e: POP 00002f4f: SWAP1 00002f50: JUMP 00002f51: JUMPDEST 00002f52: PUSH2 0x2f73 00002f55: SWAP2 00002f56: SWAP1 00002f57: JUMPDEST 00002f58: DUP1 00002f59: DUP3 00002f5a: GT 00002f5b: ISZERO 00002f5c: PUSH2 0x2f6f 00002f5f: JUMPI 00002f60: PUSH1 0x00 00002f62: DUP2 00002f63: PUSH1 0x00 00002f65: SWAP1 00002f66: SSTORE 00002f67: POP 00002f68: PUSH1 0x01 00002f6a: ADD 00002f6b: PUSH2 0x2f57 00002f6e: JUMP 00002f6f: JUMPDEST 00002f70: POP 00002f71: SWAP1 00002f72: JUMP 00002f73: JUMPDEST 00002f74: SWAP1 00002f75: JUMP 00002f76: STOP 00002f77: LOG1 00002f78: PUSH6 0x627a7a723058 00002f7f: KECCAK256 00002f80: SWAP7 00002f81: DUP2 00002f82: MSTORE8 00002f83: SELFDESTRUCT 00002f84: CREATE2 00002f85: EXTCODECOPY 00002f86: SUB 00002f87: CREATE 00002f88: REVERT 00002f89: GT 00002f8a: DUP10 00002f8b: DUP13 00002f8c: UNKNOWN(0xA9) 00002f8d: PUSH30
| 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
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x540c431809d09f4cb4b6a264de06687cdad03af3800e7cd74d4365c4cf52b37b
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x540c431809d09f4cb4b6a264de06687cdad03af3800e7cd74d4365c4cf52b37b",
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02bb744c",
"selector": "0x02bb744c",
"calldata_variants": [
"0x02bb744c",
"0x02bb744c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06aec506",
"selector": "0x06aec506",
"calldata_variants": [
"0x06aec506",
"0x06aec5060000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c657eb0",
"selector": "0x0c657eb0",
"calldata_variants": [
"0x0c657eb0",
"0x0c657eb00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1659bbeb",
"selector": "0x1659bbeb",
"calldata_variants": [
"0x1659bbeb",
"0x1659bbeb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19045a25",
"selector": "0x19045a25",
"calldata_variants": [
"0x19045a25",
"0x19045a250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 1
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x9b5b8d149b8d4d1f72a52dab6666e6c45b7a50cd01a419e3753471f22e53657d
call_targets:
0xd1901bd2063d2c8f649bf31b6df6d0f853a6bda3
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x9b5b8d149b8d4d1f72a52dab6666e6c45b7a50cd01a419e3753471f22e53657d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xd1901bd2063d2c8f649bf31b6df6d0f853a6bda3"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02bb744c",
"selector": "0x02bb744c",
"calldata_variants": [
"0x02bb744c",
"0x02bb744c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06aec506",
"selector": "0x06aec506",
"calldata_variants": [
"0x06aec506",
"0x06aec5060000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c657eb0",
"selector": "0x0c657eb0",
"calldata_variants": [
"0x0c657eb0",
"0x0c657eb00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1659bbeb",
"selector": "0x1659bbeb",
"calldata_variants": [
"0x1659bbeb",
"0x1659bbeb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19045a25",
"selector": "0x19045a25",
"calldata_variants": [
"0x19045a25",
"0x19045a250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3622,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4871,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5314,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 8,
"guards_detected": [
{
"pc": 2979,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4552,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5416,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8008,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8383,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8496,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10784,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 11141,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 11367,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 8
}
|
| medium | other | detector | SELFDESTRUCT reachable | 45 | no | no |
viewtrace_id: 0x540c431809d09f4cb4b6a264de06687cdad03af3800e7cd74d4365c4cf52b37b
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x540c431809d09f4cb4b6a264de06687cdad03af3800e7cd74d4365c4cf52b37b",
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02bb744c",
"selector": "0x02bb744c",
"calldata_variants": [
"0x02bb744c",
"0x02bb744c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06aec506",
"selector": "0x06aec506",
"calldata_variants": [
"0x06aec506",
"0x06aec5060000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c657eb0",
"selector": "0x0c657eb0",
"calldata_variants": [
"0x0c657eb0",
"0x0c657eb00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1659bbeb",
"selector": "0x1659bbeb",
"calldata_variants": [
"0x1659bbeb",
"0x1659bbeb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19045a25",
"selector": "0x19045a25",
"calldata_variants": [
"0x19045a25",
"0x19045a250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 2979,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4552,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5416,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8008,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8383,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8496,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10784,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 11141,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 11367,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"selfdestruct_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x9b5b8d149b8d4d1f72a52dab6666e6c45b7a50cd01a419e3753471f22e53657d
call_targets:
0xd1901bd2063d2c8f649bf31b6df6d0f853a6bda3
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x9b5b8d149b8d4d1f72a52dab6666e6c45b7a50cd01a419e3753471f22e53657d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xd1901bd2063d2c8f649bf31b6df6d0f853a6bda3"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02bb744c",
"selector": "0x02bb744c",
"calldata_variants": [
"0x02bb744c",
"0x02bb744c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06aec506",
"selector": "0x06aec506",
"calldata_variants": [
"0x06aec506",
"0x06aec5060000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c657eb0",
"selector": "0x0c657eb0",
"calldata_variants": [
"0x0c657eb0",
"0x0c657eb00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1659bbeb",
"selector": "0x1659bbeb",
"calldata_variants": [
"0x1659bbeb",
"0x1659bbeb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19045a25",
"selector": "0x19045a25",
"calldata_variants": [
"0x19045a25",
"0x19045a250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x313ce567",
"selector": "0x313ce567",
"calldata_variants": [
"0x313ce567",
"0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3622,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4871,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5314,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 8,
"guards_detected": [
{
"pc": 2979,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4552,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5416,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8008,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8383,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8496,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10784,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 11141,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 11367,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | access_control | codex | SELFDESTRUCT reachable with unclear access control | 75 | no | — |
viewevidence_json{
"evidence": "Detector flagged SELFDESTRUCT reachable; basic block contains SELFDESTRUCT at pc 12151. Guards reported are heuristic and compare msg.sender to 0xffff... which may be a false positive.",
"locations": [
"pc:0x2f77"
],
"recommendation": "Locate the function that leads to SELFDESTRUCT and ensure it is protected by a robust authorization check (e.g., owner/admin in storage), and consider removing SELFDESTRUCT entirely if not strictly required.",
"exploit_scenario": "If the SELFDESTRUCT path is callable by an unprivileged user (e.g., via a fallback or unguarded selector), an attacker could permanently destroy the contract and force-send its ETH balance to a beneficiary address. Guard detection is heuristic only and shows a suspicious msg.sender == 0xffff... pattern, so access control cannot be confirmed from bytecode."
}
|
| low | access_control | codex | CREATE/CREATE2 opcodes reachable; deployment control unclear | 65 | no | — |
viewevidence_json{
"evidence": "Heuristics report CREATE and CREATE2 present; basic block shows CREATE2 then CREATE at pc 12164 with no obvious local guard in the same block.",
"locations": [
"pc:0x2f84"
],
"recommendation": "Confirm that contract creation is gated to trusted roles or constrained by fixed init code and salt; if not intended, remove CREATE/CREATE2 usage.",
"exploit_scenario": "If the CREATE/CREATE2 path is accessible to arbitrary callers, they could deploy arbitrary contracts through this contract (potentially using its balance), or abuse metamorphic deployment patterns. This may be intended if the contract is a factory, but access control cannot be confirmed from bytecode alone."
}
|
| low | reentrancy | codex | Computed CALLs with value and unchecked returndata | 65 | no | — |
viewevidence_json{
"evidence": "Eight CALL sites have computed target/value and returndata_checked=null; detector flagged untrusted CALL and ETH value transfer as reachable, but not confirmed across all paths.",
"locations": [
"pc:0x0e26",
"pc:0x1307",
"pc:0x14c2",
"pc:0x19d7",
"pc:0x1c44",
"pc:0x2053",
"pc:0x282e",
"pc:0x2d72"
],
"recommendation": "Audit each CALL site to ensure targets are trusted, consider using checks-effects-interactions ordering or reentrancy guards, and verify return values where appropriate.",
"exploit_scenario": "Multiple CALL sites use computed targets and values with no visible returndata checks. If any of these targets are user-controlled and state updates occur after the CALL, this could enable reentrancy or silent failures. A validation trace observed the target as the contract itself, but this was not confirmed across all paths."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 1
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 8
}
|