TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019c0ea9-0737-72a3-99e0-ec55ab3ddde2

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:28 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
SELFDESTRUCT present
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
41543 artifact.fetch complete 1 / 3 2 months ago
41544 proxy.resolve complete 1 / 3 2 months ago
41545 tool.cast_disasm complete 1 / 3 2 months ago
41546 analysis.bundle complete 1 / 3 2 months ago
41547 capability.graph complete 1 / 3 2 months ago
41548 detector.run complete 1 / 3 2 months ago
41549 validation.fork complete 1 / 3 2 months ago
42197 report.consolidate complete 1 / 6 2 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Found two issues: maker whitelist is not enforced at trade time, and order validation accepts invalid signatures when user is the zero address, which can enable unauthorized trades if 0x0 accumulates balances (e.g., via misconfigured feeAccount).
View stdout
{"no_findings":false,"summary":"Found two issues: maker whitelist is not enforced at trade time, and order validation accepts invalid signatures when user is the zero address, which can enable unauthorized trades if 0x0 accumulates balances (e.g., via misconfigured feeAccount).","findings":[{"severity":"medium","category":"auth","title":"Invalid signatures are accepted when `user` is the zero address","exploit_scenario":"An attacker calls `trade` with `user = 0x0` and any invalid `(v,r,s)`. `validateOrderHash` returns true because `ecrecover(...)` returns `0x0` for invalid signatures. If `tokens[<token>][0x0]` has any balance (e.g., fees accumulated because the constructor allowed `feeAccount = 0x0`), the attacker can drain those balances by choosing favorable `amountGive/amountGet` ratios.","recommendation":"Reject zero-address makers in `trade` (and in any helper that validates orders) and treat `ecrecover` returning `0x0` as invalid. Also validate `feeAccount != 0x0` in the constructor to avoid accumulating balances at the zero address.","evidence":"`trade` accepts a `user` parameter without a non-zero or whitelist check, and `validateOrderHash` treats `ecrecover(...) == user` as valid even when `user` is `0x0` (invalid signatures recover to `0x0`).","locations":["contracts/Contract.sol:462","contracts/Contract.sol:696"]},{"severity":"low","category":"access_control","title":"Maker whitelist is not enforced in `trade`","exploit_scenario":"A user who was previously whitelisted can continue to have their orders filled after being removed from the whitelist. A whitelisted taker can still execute trades against that maker’s signed orders, bypassing whitelist-based trading restrictions.","recommendation":"Require `whitelistedUsers[user]` in `trade` (and optionally reject `user == 0x0`) to ensure both maker and taker are authorized at execution time.","evidence":"`trade` only checks `whitelistedUsers[msg.sender]` but not `whitelistedUsers[user]`. In contrast, `testTrade`/`availableVolume` enforce both users.","locations":["contracts/Contract.sol:462","contracts/Contract.sol:539"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-jf0rr9ig
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0ebe-f1c1-7bf0-9b0c-0a03f077fdf6
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-jf0rr9ig succeeded in 7ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-jf0rr9ig succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/Contract.sol
================================================================================
pragma solidity ^0.4.18;

// File: contracts/AccountLevels.sol

contract AccountLevels {
  //given a user, returns an account level
  //0 = regular user (pays take fee and make fee)
  //1 = market maker silver (pays take fee, no make fee, gets rebate)
  //2 = market maker gold (pays take fee, no make fee, gets entire counterparty's take fee as rebate)
  function accountLevel(address user) public constant returns(uint);
}

// File: zeppelin-solidity/contracts/math/SafeMath.sol

exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '200,420p'" in /tmp/codex-jf0rr9ig succeeded in 14ms:
   200	  /**
   201	   * @dev Change the feeMake amount.
   202	   * @param _feeMake uint256 New fee make.
   203	   */
   204	  function changeFeeMake(uint256 _feeMake) public onlyAdmin {
   205	    // Store the new value.
   206	    feeMake = _feeMake;
   207	  }
   208	
   209	  /**
   210	   * @dev Change the feeTake amount.
   211	   * @param _feeTake uint256 New fee take.
   212	   */
   213	  function changeFeeTake(uint256 _feeTake) public onlyAdmin {
   214	    // The new feeTake should be greater than or equal to the feeRebate.
   215	    require(_feeTake >= feeRebate);
   216	
   217	    // Store the new value.
   218	    feeTake = _feeTake;
   219	  }
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '420,720p'" in /tmp/codex-jf0rr9ig succeeded in 7ms:
   420	   * @param s          bytes32
   421	   */
   422	  function cancelOrder(
   423	    address tokenGet,
   424	    uint256 amountGet,
   425	    address tokenGive,
   426	    uint256 amountGive,
   427	    uint256 expires,
   428	    uint256 nonce,
   429	    uint8 v,
   430	    bytes32 r,
   431	    bytes32 s
   432	  )
   433	    public
   434	  {
   435	    // Calculate the order hash.
   436	    bytes32 hash = keccak256(address(this), tokenGet, amountGet, tokenGive, amountGive, expires, nonce);
   437	    
   438	    // Ensure the message validity.
   439	    require(validateOrderHash(hash, msg.sender, v, r, s));
codex
{"no_findings":false,"summary":"Found two issues: maker whitelist is not enforced at trade time, and order validation accepts invalid signatures when user is the zero address, which can enable unauthorized trades if 0x0 accumulates balances (e.g., via misconfigured feeAccount).","findings":[{"severity":"medium","category":"auth","title":"Invalid signatures are accepted when `user` is the zero address","exploit_scenario":"An attacker calls `trade` with `user = 0x0` and any invalid `(v,r,s)`. `validateOrderHash` returns true because `ecrecover(...)` returns `0x0` for invalid signatures. If `tokens[<token>][0x0]` has any balance (e.g., fees accumulated because the constructor allowed `feeAccount = 0x0`), the attacker can drain those balances by choosing favorable `amountGive/amountGet` ratios.","recommendation":"Reject zero-address makers in `trade` (and in any helper that validates orders) and treat `ecrecover` returning `0x0` as invalid. Also validate `feeAccount != 0x0` in the constructor to avoid accumulating balances at the zero address.","evidence":"`trade` accepts a `user` parameter without a non-zero or whitelist check, and `validateOrderHash` treats `ecrecover(...) == user` as valid even when `user` is `0x0` (invalid signatures recover to `0x0`).","locations":["contracts/Contract.sol:462","contracts/Contract.sol:696"]},{"severity":"low","category":"access_control","title":"Maker whitelist is not enforced in `trade`","exploit_scenario":"A user who was previously whitelisted can continue to have their orders filled after being removed from the whitelist. A whitelisted taker can still execute trades against that maker’s signed orders, bypassing whitelist-based trading restrictions.","recommendation":"Require `whitelistedUsers[user]` in `trade` (and optionally reject `user == 0x0`) to ensure both maker and taker are authorized at execution time.","evidence":"`trade` only checks `whitelistedUsers[msg.sender]` but not `whitelistedUsers[user]`. In contrast, `testTrade`/`availableVolume` enforce both users.","locations":["contracts/Contract.sol:462","contracts/Contract.sol:539"]}]}
tokens used
27,374
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T11:56:30.861605+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "Found two issues: maker whitelist is not enforced at trade time, and order validation accepts invalid signatures when user is the zero address, which can enable unauthorized trades if 0x0 accumulates balances (e.g., via misconfigured feeAccount).",
    "raw_final": {
        "summary": "Found two issues: maker whitelist is not enforced at trade time, and order validation accepts invalid signatures when user is the zero address, which can enable unauthorized trades if 0x0 accumulates balances (e.g., via misconfigured feeAccount).",
        "findings": [
            {
                "title": "Invalid signatures are accepted when `user` is the zero address",
                "category": "auth",
                "evidence": "`trade` accepts a `user` parameter without a non-zero or whitelist check, and `validateOrderHash` treats `ecrecover(...) == user` as valid even when `user` is `0x0` (invalid signatures recover to `0x0`).",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:462",
                    "contracts/Contract.sol:696"
                ],
                "recommendation": "Reject zero-address makers in `trade` (and in any helper that validates orders) and treat `ecrecover` returning `0x0` as invalid. Also validate `feeAccount != 0x0` in the constructor to avoid accumulating balances at the zero address.",
                "exploit_scenario": "An attacker calls `trade` with `user = 0x0` and any invalid `(v,r,s)`. `validateOrderHash` returns true because `ecrecover(...)` returns `0x0` for invalid signatures. If `tokens[<token>][0x0]` has any balance (e.g., fees accumulated because the constructor allowed `feeAccount = 0x0`), the attacker can drain those balances by choosing favorable `amountGive/amountGet` ratios."
            },
            {
                "title": "Maker whitelist is not enforced in `trade`",
                "category": "access_control",
                "evidence": "`trade` only checks `whitelistedUsers[msg.sender]` but not `whitelistedUsers[user]`. In contrast, `testTrade`/`availableVolume` enforce both users.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:462",
                    "contracts/Contract.sol:539"
                ],
                "recommendation": "Require `whitelistedUsers[user]` in `trade` (and optionally reject `user == 0x0`) to ensure both maker and taker are authorized at execution time.",
                "exploit_scenario": "A user who was previously whitelisted can continue to have their orders filled after being removed from the whitelist. A whitelisted taker can still execute trades against that maker\u2019s signed orders, bypassing whitelist-based trading restrictions."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
5
EXT*/BALANCE
3
Total opcodes
7328
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0196
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: SWAP1
0000002f: DIV
00000030: PUSH4 0xffffffff
00000035: AND
00000036: DUP1
00000037: PUSH4 0x0a19b14a
0000003c: EQ
0000003d: PUSH2 0x019b
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0x0b927666
00000047: EQ
00000048: PUSH2 0x0279
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0x19774d43
00000052: EQ
00000053: PUSH2 0x0304
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0x278b8c0e
0000005d: EQ
0000005e: PUSH2 0x0369
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0x29b1ce4d
00000068: EQ
00000069: PUSH2 0x041d
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0x2d804ca2
00000073: EQ
00000074: PUSH2 0x0460
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0x2e1a7d4d
0000007e: EQ
0000007f: PUSH2 0x051f
00000082: JUMPI
00000083: DUP1
00000084: PUSH4 0x338b5dea
00000089: EQ
0000008a: PUSH2 0x054c
0000008d: JUMPI
0000008e: DUP1
0000008f: PUSH4 0x508493bc
00000094: EQ
00000095: PUSH2 0x0599
00000098: JUMPI
00000099: DUP1
0000009a: PUSH4 0x54d03b5c
0000009f: EQ
000000a0: PUSH2 0x0610
000000a3: JUMPI
000000a4: DUP1
000000a5: PUSH4 0x57786394
000000aa: EQ
000000ab: PUSH2 0x063d
000000ae: JUMPI
000000af: DUP1
000000b0: PUSH4 0x5e1d7ae4
000000b5: EQ
000000b6: PUSH2 0x0668
000000b9: JUMPI
000000ba: DUP1
000000bb: PUSH4 0x65e17c9d
000000c0: EQ
000000c1: PUSH2 0x0695
000000c4: JUMPI
000000c5: DUP1
000000c6: PUSH4 0x68df4dda
000000cb: EQ
000000cc: PUSH2 0x06ec
000000cf: JUMPI
000000d0: DUP1
000000d1: PUSH4 0x6c86888b
000000d6: EQ
000000d7: PUSH2 0x072f
000000da: JUMPI
000000db: DUP1
000000dc: PUSH4 0x71ffcb16
000000e1: EQ
000000e2: PUSH2 0x0845
000000e5: JUMPI
000000e6: DUP1
000000e7: PUSH4 0x731c2f81
000000ec: EQ
000000ed: PUSH2 0x0888
000000f0: JUMPI
000000f1: DUP1
000000f2: PUSH4 0x8823a9c0
000000f7: EQ
000000f8: PUSH2 0x08b3
000000fb: JUMPI
000000fc: DUP1
000000fd: PUSH4 0x8f283970
00000102: EQ
00000103: PUSH2 0x08e0
00000106: JUMPI
00000107: DUP1
00000108: PUSH4 0x9324dfff
0000010d: EQ
0000010e: PUSH2 0x0923
00000111: JUMPI
00000112: DUP1
00000113: PUSH4 0x9e281a98
00000118: EQ
00000119: PUSH2 0x0966
0000011c: JUMPI
0000011d: DUP1
0000011e: PUSH4 0xaaa6bc40
00000123: EQ
00000124: PUSH2 0x09b3
00000127: JUMPI
00000128: DUP1
00000129: PUSH4 0xbb5f4629
0000012e: EQ
0000012f: PUSH2 0x09f6
00000132: JUMPI
00000133: DUP1
00000134: PUSH4 0xc281309e
00000139: EQ
0000013a: PUSH2 0x0a5f
0000013d: JUMPI
0000013e: DUP1
0000013f: PUSH4 0xd0e30db0
00000144: EQ
00000145: PUSH2 0x0a8a
00000148: JUMPI
00000149: DUP1
0000014a: PUSH4 0xdaf9c210
0000014f: EQ
00000150: PUSH2 0x0a94
00000153: JUMPI
00000154: DUP1
00000155: PUSH4 0xe8f6bc2e
0000015a: EQ
0000015b: PUSH2 0x0aef
0000015e: JUMPI
0000015f: DUP1
00000160: PUSH4 0xf3412942
00000165: EQ
00000166: PUSH2 0x0b32
00000169: JUMPI
0000016a: DUP1
0000016b: PUSH4 0xf621cc48
00000170: EQ
00000171: PUSH2 0x0b89
00000174: JUMPI
00000175: DUP1
00000176: PUSH4 0xf7888aec
0000017b: EQ
0000017c: PUSH2 0x0be4
0000017f: JUMPI
00000180: DUP1
00000181: PUSH4 0xf851a440
00000186: EQ
00000187: PUSH2 0x0c5b
0000018a: JUMPI
0000018b: DUP1
0000018c: PUSH4 0xfb6e155f
00000191: EQ
00000192: PUSH2 0x0cb2
00000195: JUMPI
00000196: JUMPDEST
00000197: PUSH1 0x00
00000199: DUP1
0000019a: REVERT
0000019b: JUMPDEST
0000019c: CALLVALUE
0000019d: DUP1
0000019e: ISZERO
0000019f: PUSH2 0x01a7
000001a2: JUMPI
000001a3: PUSH1 0x00
000001a5: DUP1
000001a6: REVERT
000001a7: JUMPDEST
000001a8: POP
000001a9: PUSH2 0x0277
000001ac: PUSH1 0x04
000001ae: DUP1
000001af: CALLDATASIZE
000001b0: SUB
000001b1: DUP2
000001b2: ADD
000001b3: SWAP1
000001b4: DUP1
000001b5: DUP1
000001b6: CALLDATALOAD
000001b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001cc: AND
000001cd: SWAP1
000001ce: PUSH1 0x20
000001d0: ADD
000001d1: SWAP1
000001d2: SWAP3
000001d3: SWAP2
000001d4: SWAP1
000001d5: DUP1
000001d6: CALLDATALOAD
000001d7: SWAP1
000001d8: PUSH1 0x20
000001da: ADD
000001db: SWAP1
000001dc: SWAP3
000001dd: SWAP2
000001de: SWAP1
000001df: DUP1
000001e0: CALLDATALOAD
000001e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001f6: AND
000001f7: SWAP1
000001f8: PUSH1 0x20
000001fa: ADD
000001fb: SWAP1
000001fc: SWAP3
000001fd: SWAP2
000001fe: SWAP1
000001ff: DUP1
00000200: CALLDATALOAD
00000201: SWAP1
00000202: PUSH1 0x20
00000204: ADD
00000205: SWAP1
00000206: SWAP3
00000207: SWAP2
00000208: SWAP1
00000209: DUP1
0000020a: CALLDATALOAD
0000020b: SWAP1
0000020c: PUSH1 0x20
0000020e: ADD
0000020f: SWAP1
00000210: SWAP3
00000211: SWAP2
00000212: SWAP1
00000213: DUP1
00000214: CALLDATALOAD
00000215: SWAP1
00000216: PUSH1 0x20
00000218: ADD
00000219: SWAP1
0000021a: SWAP3
0000021b: SWAP2
0000021c: SWAP1
0000021d: DUP1
0000021e: CALLDATALOAD
0000021f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000234: AND
00000235: SWAP1
00000236: PUSH1 0x20
00000238: ADD
00000239: SWAP1
0000023a: SWAP3
0000023b: SWAP2
0000023c: SWAP1
0000023d: DUP1
0000023e: CALLDATALOAD
0000023f: PUSH1 0xff
00000241: AND
00000242: SWAP1
00000243: PUSH1 0x20
00000245: ADD
00000246: SWAP1
00000247: SWAP3
00000248: SWAP2
00000249: SWAP1
0000024a: DUP1
0000024b: CALLDATALOAD
0000024c: PUSH1 0x00
0000024e: NOT
0000024f: AND
00000250: SWAP1
00000251: PUSH1 0x20
00000253: ADD
00000254: SWAP1
00000255: SWAP3
00000256: SWAP2
00000257: SWAP1
00000258: DUP1
00000259: CALLDATALOAD
0000025a: PUSH1 0x00
0000025c: NOT
0000025d: AND
0000025e: SWAP1
0000025f: PUSH1 0x20
00000261: ADD
00000262: SWAP1
00000263: SWAP3
00000264: SWAP2
00000265: SWAP1
00000266: DUP1
00000267: CALLDATALOAD
00000268: SWAP1
00000269: PUSH1 0x20
0000026b: ADD
0000026c: SWAP1
0000026d: SWAP3
0000026e: SWAP2
0000026f: SWAP1
00000270: POP
00000271: POP
00000272: POP
00000273: PUSH2 0x0d9a
00000276: JUMP
00000277: JUMPDEST
00000278: STOP
00000279: JUMPDEST
0000027a: CALLVALUE
0000027b: DUP1
0000027c: ISZERO
0000027d: PUSH2 0x0285
00000280: JUMPI
00000281: PUSH1 0x00
00000283: DUP1
00000284: REVERT
00000285: JUMPDEST
00000286: POP
00000287: PUSH2 0x0302
0000028a: PUSH1 0x04
0000028c: DUP1
0000028d: CALLDATASIZE
0000028e: SUB
0000028f: DUP2
00000290: ADD
00000291: SWAP1
00000292: DUP1
00000293: DUP1
00000294: CALLDATALOAD
00000295: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002aa: AND
000002ab: SWAP1
000002ac: PUSH1 0x20
000002ae: ADD
000002af: SWAP1
000002b0: SWAP3
000002b1: SWAP2
000002b2: SWAP1
000002b3: DUP1
000002b4: CALLDATALOAD
000002b5: SWAP1
000002b6: PUSH1 0x20
000002b8: ADD
000002b9: SWAP1
000002ba: SWAP3
000002bb: SWAP2
000002bc: SWAP1
000002bd: DUP1
000002be: CALLDATALOAD
000002bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002d4: AND
000002d5: SWAP1
000002d6: PUSH1 0x20
000002d8: ADD
000002d9: SWAP1
000002da: SWAP3
000002db: SWAP2
000002dc: SWAP1
000002dd: DUP1
000002de: CALLDATALOAD
000002df: SWAP1
000002e0: PUSH1 0x20
000002e2: ADD
000002e3: SWAP1
000002e4: SWAP3
000002e5: SWAP2
000002e6: SWAP1
000002e7: DUP1
000002e8: CALLDATALOAD
000002e9: SWAP1
000002ea: PUSH1 0x20
000002ec: ADD
000002ed: SWAP1
000002ee: SWAP3
000002ef: SWAP2
000002f0: SWAP1
000002f1: DUP1
000002f2: CALLDATALOAD
000002f3: SWAP1
000002f4: PUSH1 0x20
000002f6: ADD
000002f7: SWAP1
000002f8: SWAP3
000002f9: SWAP2
000002fa: SWAP1
000002fb: POP
000002fc: POP
000002fd: POP
000002fe: PUSH2 0x123e
00000301: JUMP
00000302: JUMPDEST
00000303: STOP
00000304: JUMPDEST
00000305: CALLVALUE
00000306: DUP1
00000307: ISZERO
00000308: PUSH2 0x0310
0000030b: JUMPI
0000030c: PUSH1 0x00
0000030e: DUP1
0000030f: REVERT
00000310: JUMPDEST
00000311: POP
00000312: PUSH2 0x0353
00000315: PUSH1 0x04
00000317: DUP1
00000318: CALLDATASIZE
00000319: SUB
0000031a: DUP2
0000031b: ADD
0000031c: SWAP1
0000031d: DUP1
0000031e: DUP1
0000031f: CALLDATALOAD
00000320: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000335: AND
00000336: SWAP1
00000337: PUSH1 0x20
00000339: ADD
0000033a: SWAP1
0000033b: SWAP3
0000033c: SWAP2
0000033d: SWAP1
0000033e: DUP1
0000033f: CALLDATALOAD
00000340: PUSH1 0x00
00000342: NOT
00000343: AND
00000344: SWAP1
00000345: PUSH1 0x20
00000347: ADD
00000348: SWAP1
00000349: SWAP3
0000034a: SWAP2
0000034b: SWAP1
0000034c: POP
0000034d: POP
0000034e: POP
0000034f: PUSH2 0x15a3
00000352: JUMP
00000353: JUMPDEST
00000354: PUSH1 0x40
00000356: MLOAD
00000357: DUP1
00000358: DUP3
00000359: DUP2
0000035a: MSTORE
0000035b: PUSH1 0x20
0000035d: ADD
0000035e: SWAP2
0000035f: POP
00000360: POP
00000361: PUSH1 0x40
00000363: MLOAD
00000364: DUP1
00000365: SWAP2
00000366: SUB
00000367: SWAP1
00000368: RETURN
00000369: JUMPDEST
0000036a: CALLVALUE
0000036b: DUP1
0000036c: ISZERO
0000036d: PUSH2 0x0375
00000370: JUMPI
00000371: PUSH1 0x00
00000373: DUP1
00000374: REVERT
00000375: JUMPDEST
00000376: POP
00000377: PUSH2 0x041b
0000037a: PUSH1 0x04
0000037c: DUP1
0000037d: CALLDATASIZE
0000037e: SUB
0000037f: DUP2
00000380: ADD
00000381: SWAP1
00000382: DUP1
00000383: DUP1
00000384: CALLDATALOAD
00000385: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000039a: AND
0000039b: SWAP1
0000039c: PUSH1 0x20
0000039e: ADD
0000039f: SWAP1
000003a0: SWAP3
000003a1: SWAP2
000003a2: SWAP1
000003a3: DUP1
000003a4: CALLDATALOAD
000003a5: SWAP1
000003a6: PUSH1 0x20
000003a8: ADD
000003a9: SWAP1
000003aa: SWAP3
000003ab: SWAP2
000003ac: SWAP1
000003ad: DUP1
000003ae: CALLDATALOAD
000003af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003c4: AND
000003c5: SWAP1
000003c6: PUSH1 0x20
000003c8: ADD
000003c9: SWAP1
000003ca: SWAP3
000003cb: SWAP2
000003cc: SWAP1
000003cd: DUP1
000003ce: CALLDATALOAD
000003cf: SWAP1
000003d0: PUSH1 0x20
000003d2: ADD
000003d3: SWAP1
000003d4: SWAP3
000003d5: SWAP2
000003d6: SWAP1
000003d7: DUP1
000003d8: CALLDATALOAD
000003d9: SWAP1
000003da: PUSH1 0x20
000003dc: ADD
000003dd: SWAP1
000003de: SWAP3
000003df: SWAP2
000003e0: SWAP1
000003e1: DUP1
000003e2: CALLDATALOAD
000003e3: SWAP1
000003e4: PUSH1 0x20
000003e6: ADD
000003e7: SWAP1
000003e8: SWAP3
000003e9: SWAP2
000003ea: SWAP1
000003eb: DUP1
000003ec: CALLDATALOAD
000003ed: PUSH1 0xff
000003ef: AND
000003f0: SWAP1
000003f1: PUSH1 0x20
000003f3: ADD
000003f4: SWAP1
000003f5: SWAP3
000003f6: SWAP2
000003f7: SWAP1
000003f8: DUP1
000003f9: CALLDATALOAD
000003fa: PUSH1 0x00
000003fc: NOT
000003fd: AND
000003fe: SWAP1
000003ff: PUSH1 0x20
00000401: ADD
00000402: SWAP1
00000403: SWAP3
00000404: SWAP2
00000405: SWAP1
00000406: DUP1
00000407: CALLDATALOAD
00000408: PUSH1 0x00
0000040a: NOT
0000040b: AND
0000040c: SWAP1
0000040d: PUSH1 0x20
0000040f: ADD
00000410: SWAP1
00000411: SWAP3
00000412: SWAP2
00000413: SWAP1
00000414: POP
00000415: POP
00000416: POP
00000417: PUSH2 0x15c8
0000041a: JUMP
0000041b: JUMPDEST
0000041c: STOP
0000041d: JUMPDEST
0000041e: CALLVALUE
0000041f: DUP1
00000420: ISZERO
00000421: PUSH2 0x0429
00000424: JUMPI
00000425: PUSH1 0x00
00000427: DUP1
00000428: REVERT
00000429: JUMPDEST
0000042a: POP
0000042b: PUSH2 0x045e
0000042e: PUSH1 0x04
00000430: DUP1
00000431: CALLDATASIZE
00000432: SUB
00000433: DUP2
00000434: ADD
00000435: SWAP1
00000436: DUP1
00000437: DUP1
00000438: CALLDATALOAD
00000439: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000044e: AND
0000044f: SWAP1
00000450: PUSH1 0x20
00000452: ADD
00000453: SWAP1
00000454: SWAP3
00000455: SWAP2
00000456: SWAP1
00000457: POP
00000458: POP
00000459: POP
0000045a: PUSH2 0x185d
0000045d: JUMP
0000045e: JUMPDEST
0000045f: STOP
00000460: JUMPDEST
00000461: CALLVALUE
00000462: DUP1
00000463: ISZERO
00000464: PUSH2 0x046c
00000467: JUMPI
00000468: PUSH1 0x00
0000046a: DUP1
0000046b: REVERT
0000046c: JUMPDEST
0000046d: POP
0000046e: PUSH2 0x0509
00000471: PUSH1 0x04
00000473: DUP1
00000474: CALLDATASIZE
00000475: SUB
00000476: DUP2
00000477: ADD
00000478: SWAP1
00000479: DUP1
0000047a: DUP1
0000047b: CALLDATALOAD
0000047c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000491: AND
00000492: SWAP1
00000493: PUSH1 0x20
00000495: ADD
00000496: SWAP1
00000497: SWAP3
00000498: SWAP2
00000499: SWAP1
0000049a: DUP1
0000049b: CALLDATALOAD
0000049c: SWAP1
0000049d: PUSH1 0x20
0000049f: ADD
000004a0: SWAP1
000004a1: SWAP3
000004a2: SWAP2
000004a3: SWAP1
000004a4: DUP1
000004a5: CALLDATALOAD
000004a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004bb: AND
000004bc: SWAP1
000004bd: PUSH1 0x20
000004bf: ADD
000004c0: SWAP1
000004c1: SWAP3
000004c2: SWAP2
000004c3: SWAP1
000004c4: DUP1
000004c5: CALLDATALOAD
000004c6: SWAP1
000004c7: PUSH1 0x20
000004c9: ADD
000004ca: SWAP1
000004cb: SWAP3
000004cc: SWAP2
000004cd: SWAP1
000004ce: DUP1
000004cf: CALLDATALOAD
000004d0: SWAP1
000004d1: PUSH1 0x20
000004d3: ADD
000004d4: SWAP1
000004d5: SWAP3
000004d6: SWAP2
000004d7: SWAP1
000004d8: DUP1
000004d9: CALLDATALOAD
000004da: SWAP1
000004db: PUSH1 0x20
000004dd: ADD
000004de: SWAP1
000004df: SWAP3
000004e0: SWAP2
000004e1: SWAP1
000004e2: DUP1
000004e3: CALLDATALOAD
000004e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004f9: AND
000004fa: SWAP1
000004fb: PUSH1 0x20
000004fd: ADD
000004fe: SWAP1
000004ff: SWAP3
00000500: SWAP2
00000501: SWAP1
00000502: POP
00000503: POP
00000504: POP
00000505: PUSH2 0x198f
00000508: JUMP
00000509: JUMPDEST
0000050a: PUSH1 0x40
0000050c: MLOAD
0000050d: DUP1
0000050e: DUP3
0000050f: DUP2
00000510: MSTORE
00000511: PUSH1 0x20
00000513: ADD
00000514: SWAP2
00000515: POP
00000516: POP
00000517: PUSH1 0x40
00000519: MLOAD
0000051a: DUP1
0000051b: SWAP2
0000051c: SUB
0000051d: SWAP1
0000051e: RETURN
0000051f: JUMPDEST
00000520: CALLVALUE
00000521: DUP1
00000522: ISZERO
00000523: PUSH2 0x052b
00000526: JUMPI
00000527: PUSH1 0x00
00000529: DUP1
0000052a: REVERT
0000052b: JUMPDEST
0000052c: POP
0000052d: PUSH2 0x054a
00000530: PUSH1 0x04
00000532: DUP1
00000533: CALLDATASIZE
00000534: SUB
00000535: DUP2
00000536: ADD
00000537: SWAP1
00000538: DUP1
00000539: DUP1
0000053a: CALLDATALOAD
0000053b: SWAP1
0000053c: PUSH1 0x20
0000053e: ADD
0000053f: SWAP1
00000540: SWAP3
00000541: SWAP2
00000542: SWAP1
00000543: POP
00000544: POP
00000545: POP
00000546: PUSH2 0x1bf2
00000549: JUMP
0000054a: JUMPDEST
0000054b: STOP
0000054c: JUMPDEST
0000054d: CALLVALUE
0000054e: DUP1
0000054f: ISZERO
00000550: PUSH2 0x0558
00000553: JUMPI
00000554: PUSH1 0x00
00000556: DUP1
00000557: REVERT
00000558: JUMPDEST
00000559: POP
0000055a: PUSH2 0x0597
0000055d: PUSH1 0x04
0000055f: DUP1
00000560: CALLDATASIZE
00000561: SUB
00000562: DUP2
00000563: ADD
00000564: SWAP1
00000565: DUP1
00000566: DUP1
00000567: CALLDATALOAD
00000568: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000057d: AND
0000057e: SWAP1
0000057f: PUSH1 0x20
00000581: ADD
00000582: SWAP1
00000583: SWAP3
00000584: SWAP2
00000585: SWAP1
00000586: DUP1
00000587: CALLDATALOAD
00000588: SWAP1
00000589: PUSH1 0x20
0000058b: ADD
0000058c: SWAP1
0000058d: SWAP3
0000058e: SWAP2
0000058f: SWAP1
00000590: POP
00000591: POP
00000592: POP
00000593: PUSH2 0x1e8c
00000596: JUMP
00000597: JUMPDEST
00000598: STOP
00000599: JUMPDEST
0000059a: CALLVALUE
0000059b: DUP1
0000059c: ISZERO
0000059d: PUSH2 0x05a5
000005a0: JUMPI
000005a1: PUSH1 0x00
000005a3: DUP1
000005a4: REVERT
000005a5: JUMPDEST
000005a6: POP
000005a7: PUSH2 0x05fa
000005aa: PUSH1 0x04
000005ac: DUP1
000005ad: CALLDATASIZE
000005ae: SUB
000005af: DUP2
000005b0: ADD
000005b1: SWAP1
000005b2: DUP1
000005b3: DUP1
000005b4: CALLDATALOAD
000005b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005ca: AND
000005cb: SWAP1
000005cc: PUSH1 0x20
000005ce: ADD
000005cf: SWAP1
000005d0: SWAP3
000005d1: SWAP2
000005d2: SWAP1
000005d3: DUP1
000005d4: CALLDATALOAD
000005d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005ea: AND
000005eb: SWAP1
000005ec: PUSH1 0x20
000005ee: ADD
000005ef: SWAP1
000005f0: SWAP3
000005f1: SWAP2
000005f2: SWAP1
000005f3: POP
000005f4: POP
000005f5: POP
000005f6: PUSH2 0x22b2
000005f9: JUMP
000005fa: JUMPDEST
000005fb: PUSH1 0x40
000005fd: MLOAD
000005fe: DUP1
000005ff: DUP3
00000600: DUP2
00000601: MSTORE
00000602: PUSH1 0x20
00000604: ADD
00000605: SWAP2
00000606: POP
00000607: POP
00000608: PUSH1 0x40
0000060a: MLOAD
0000060b: DUP1
0000060c: SWAP2
0000060d: SUB
0000060e: SWAP1
0000060f: RETURN
00000610: JUMPDEST
00000611: CALLVALUE
00000612: DUP1
00000613: ISZERO
00000614: PUSH2 0x061c
00000617: JUMPI
00000618: PUSH1 0x00
0000061a: DUP1
0000061b: REVERT
0000061c: JUMPDEST
0000061d: POP
0000061e: PUSH2 0x063b
00000621: PUSH1 0x04
00000623: DUP1
00000624: CALLDATASIZE
00000625: SUB
00000626: DUP2
00000627: ADD
00000628: SWAP1
00000629: DUP1
0000062a: DUP1
0000062b: CALLDATALOAD
0000062c: SWAP1
0000062d: PUSH1 0x20
0000062f: ADD
00000630: SWAP1
00000631: SWAP3
00000632: SWAP2
00000633: SWAP1
00000634: POP
00000635: POP
00000636: POP
00000637: PUSH2 0x22d7
0000063a: JUMP
0000063b: JUMPDEST
0000063c: STOP
0000063d: JUMPDEST
0000063e: CALLVALUE
0000063f: DUP1
00000640: ISZERO
00000641: PUSH2 0x0649
00000644: JUMPI
00000645: PUSH1 0x00
00000647: DUP1
00000648: REVERT
00000649: JUMPDEST
0000064a: POP
0000064b: PUSH2 0x0652
0000064e: PUSH2 0x233c
00000651: JUMP
00000652: JUMPDEST
00000653: PUSH1 0x40
00000655: MLOAD
00000656: DUP1
00000657: DUP3
00000658: DUP2
00000659: MSTORE
0000065a: PUSH1 0x20
0000065c: ADD
0000065d: SWAP2
0000065e: POP
0000065f: POP
00000660: PUSH1 0x40
00000662: MLOAD
00000663: DUP1
00000664: SWAP2
00000665: SUB
00000666: SWAP1
00000667: RETURN
00000668: JUMPDEST
00000669: CALLVALUE
0000066a: DUP1
0000066b: ISZERO
0000066c: PUSH2 0x0674
0000066f: JUMPI
00000670: PUSH1 0x00
00000672: DUP1
00000673: REVERT
00000674: JUMPDEST
00000675: POP
00000676: PUSH2 0x0693
00000679: PUSH1 0x04
0000067b: DUP1
0000067c: CALLDATASIZE
0000067d: SUB
0000067e: DUP2
0000067f: ADD
00000680: SWAP1
00000681: DUP1
00000682: DUP1
00000683: CALLDATALOAD
00000684: SWAP1
00000685: PUSH1 0x20
00000687: ADD
00000688: SWAP1
00000689: SWAP3
0000068a: SWAP2
0000068b: SWAP1
0000068c: POP
0000068d: POP
0000068e: POP
0000068f: PUSH2 0x2342
00000692: JUMP
00000693: JUMPDEST
00000694: STOP
00000695: JUMPDEST
00000696: CALLVALUE
00000697: DUP1
00000698: ISZERO
00000699: PUSH2 0x06a1
0000069c: JUMPI
0000069d: PUSH1 0x00
0000069f: DUP1
000006a0: REVERT
000006a1: JUMPDEST
000006a2: POP
000006a3: PUSH2 0x06aa
000006a6: PUSH2 0x23b8
000006a9: JUMP
000006aa: JUMPDEST
000006ab: PUSH1 0x40
000006ad: MLOAD
000006ae: DUP1
000006af: DUP3
000006b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006c5: AND
000006c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006db: AND
000006dc: DUP2
000006dd: MSTORE
000006de: PUSH1 0x20
000006e0: ADD
000006e1: SWAP2
000006e2: POP
000006e3: POP
000006e4: PUSH1 0x40
000006e6: MLOAD
000006e7: DUP1
000006e8: SWAP2
000006e9: SUB
000006ea: SWAP1
000006eb: RETURN
000006ec: JUMPDEST
000006ed: CALLVALUE
000006ee: DUP1
000006ef: ISZERO
000006f0: PUSH2 0x06f8
000006f3: JUMPI
000006f4: PUSH1 0x00
000006f6: DUP1
000006f7: REVERT
000006f8: JUMPDEST
000006f9: POP
000006fa: PUSH2 0x072d
000006fd: PUSH1 0x04
000006ff: DUP1
00000700: CALLDATASIZE
00000701: SUB
00000702: DUP2
00000703: ADD
00000704: SWAP1
00000705: DUP1
00000706: DUP1
00000707: CALLDATALOAD
00000708: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000071d: AND
0000071e: SWAP1
0000071f: PUSH1 0x20
00000721: ADD
00000722: SWAP1
00000723: SWAP3
00000724: SWAP2
00000725: SWAP1
00000726: POP
00000727: POP
00000728: POP
00000729: PUSH2 0x23de
0000072c: JUMP
0000072d: JUMPDEST
0000072e: STOP
0000072f: JUMPDEST
00000730: CALLVALUE
00000731: DUP1
00000732: ISZERO
00000733: PUSH2 0x073b
00000736: JUMPI
00000737: PUSH1 0x00
00000739: DUP1
0000073a: REVERT
0000073b: JUMPDEST
0000073c: POP
0000073d: PUSH2 0x082b
00000740: PUSH1 0x04
00000742: DUP1
00000743: CALLDATASIZE
00000744: SUB
00000745: DUP2
00000746: ADD
00000747: SWAP1
00000748: DUP1
00000749: DUP1
0000074a: CALLDATALOAD
0000074b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000760: AND
00000761: SWAP1
00000762: PUSH1 0x20
00000764: ADD
00000765: SWAP1
00000766: SWAP3
00000767: SWAP2
00000768: SWAP1
00000769: DUP1
0000076a: CALLDATALOAD
0000076b: SWAP1
0000076c: PUSH1 0x20
0000076e: ADD
0000076f: SWAP1
00000770: SWAP3
00000771: SWAP2
00000772: SWAP1
00000773: DUP1
00000774: CALLDATALOAD
00000775: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000078a: AND
0000078b: SWAP1
0000078c: PUSH1 0x20
0000078e: ADD
0000078f: SWAP1
00000790: SWAP3
00000791: SWAP2
00000792: SWAP1
00000793: DUP1
00000794: CALLDATALOAD
00000795: SWAP1
00000796: PUSH1 0x20
00000798: ADD
00000799: SWAP1
0000079a: SWAP3
0000079b: SWAP2
0000079c: SWAP1
0000079d: DUP1
0000079e: CALLDATALOAD
0000079f: SWAP1
000007a0: PUSH1 0x20
000007a2: ADD
000007a3: SWAP1
000007a4: SWAP3
000007a5: SWAP2
000007a6: SWAP1
000007a7: DUP1
000007a8: CALLDATALOAD
000007a9: SWAP1
000007aa: PUSH1 0x20
000007ac: ADD
000007ad: SWAP1
000007ae: SWAP3
000007af: SWAP2
000007b0: SWAP1
000007b1: DUP1
000007b2: CALLDATALOAD
000007b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007c8: AND
000007c9: SWAP1
000007ca: PUSH1 0x20
000007cc: ADD
000007cd: SWAP1
000007ce: SWAP3
000007cf: SWAP2
000007d0: SWAP1
000007d1: DUP1
000007d2: CALLDATALOAD
000007d3: PUSH1 0xff
000007d5: AND
000007d6: SWAP1
000007d7: PUSH1 0x20
000007d9: ADD
000007da: SWAP1
000007db: SWAP3
000007dc: SWAP2
000007dd: SWAP1
000007de: DUP1
000007df: CALLDATALOAD
000007e0: PUSH1 0x00
000007e2: NOT
000007e3: AND
000007e4: SWAP1
000007e5: PUSH1 0x20
000007e7: ADD
000007e8: SWAP1
000007e9: SWAP3
000007ea: SWAP2
000007eb: SWAP1
000007ec: DUP1
000007ed: CALLDATALOAD
000007ee: PUSH1 0x00
000007f0: NOT
000007f1: AND
000007f2: SWAP1
000007f3: PUSH1 0x20
000007f5: ADD
000007f6: SWAP1
000007f7: SWAP3
000007f8: SWAP2
000007f9: SWAP1
000007fa: DUP1
000007fb: CALLDATALOAD
000007fc: SWAP1
000007fd: PUSH1 0x20
000007ff: ADD
00000800: SWAP1
00000801: SWAP3
00000802: SWAP2
00000803: SWAP1
00000804: DUP1
00000805: CALLDATALOAD
00000806: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000081b: AND
0000081c: SWAP1
0000081d: PUSH1 0x20
0000081f: ADD
00000820: SWAP1
00000821: SWAP3
00000822: SWAP2
00000823: SWAP1
00000824: POP
00000825: POP
00000826: POP
00000827: PUSH2 0x250f
0000082a: JUMP
0000082b: JUMPDEST
0000082c: PUSH1 0x40
0000082e: MLOAD
0000082f: DUP1
00000830: DUP3
00000831: ISZERO
00000832: ISZERO
00000833: ISZERO
00000834: ISZERO
00000835: DUP2
00000836: MSTORE
00000837: PUSH1 0x20
00000839: ADD
0000083a: SWAP2
0000083b: POP
0000083c: POP
0000083d: PUSH1 0x40
0000083f: MLOAD
00000840: DUP1
00000841: SWAP2
00000842: SUB
00000843: SWAP1
00000844: RETURN
00000845: JUMPDEST
00000846: CALLVALUE
00000847: DUP1
00000848: ISZERO
00000849: PUSH2 0x0851
0000084c: JUMPI
0000084d: PUSH1 0x00
0000084f: DUP1
00000850: REVERT
00000851: JUMPDEST
00000852: POP
00000853: PUSH2 0x0886
00000856: PUSH1 0x04
00000858: DUP1
00000859: CALLDATASIZE
0000085a: SUB
0000085b: DUP2
0000085c: ADD
0000085d: SWAP1
0000085e: DUP1
0000085f: DUP1
00000860: CALLDATALOAD
00000861: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000876: AND
00000877: SWAP1
00000878: PUSH1 0x20
0000087a: ADD
0000087b: SWAP1
0000087c: SWAP3
0000087d: SWAP2
0000087e: SWAP1
0000087f: POP
00000880: POP
00000881: POP
00000882: PUSH2 0x271d
00000885: JUMP
00000886: JUMPDEST
00000887: STOP
00000888: JUMPDEST
00000889: CALLVALUE
0000088a: DUP1
0000088b: ISZERO
0000088c: PUSH2 0x0894
0000088f: JUMPI
00000890: PUSH1 0x00
00000892: DUP1
00000893: REVERT
00000894: JUMPDEST
00000895: POP
00000896: PUSH2 0x089d
00000899: PUSH2 0x27e2
0000089c: JUMP
0000089d: JUMPDEST
0000089e: PUSH1 0x40
000008a0: MLOAD
000008a1: DUP1
000008a2: DUP3
000008a3: DUP2
000008a4: MSTORE
000008a5: PUSH1 0x20
000008a7: ADD
000008a8: SWAP2
000008a9: POP
000008aa: POP
000008ab: PUSH1 0x40
000008ad: MLOAD
000008ae: DUP1
000008af: SWAP2
000008b0: SUB
000008b1: SWAP1
000008b2: RETURN
000008b3: JUMPDEST
000008b4: CALLVALUE
000008b5: DUP1
000008b6: ISZERO
000008b7: PUSH2 0x08bf
000008ba: JUMPI
000008bb: PUSH1 0x00
000008bd: DUP1
000008be: REVERT
000008bf: JUMPDEST
000008c0: POP
000008c1: PUSH2 0x08de
000008c4: PUSH1 0x04
000008c6: DUP1
000008c7: CALLDATASIZE
000008c8: SUB
000008c9: DUP2
000008ca: ADD
000008cb: SWAP1
000008cc: DUP1
000008cd: DUP1
000008ce: CALLDATALOAD
000008cf: SWAP1
000008d0: PUSH1 0x20
000008d2: ADD
000008d3: SWAP1
000008d4: SWAP3
000008d5: SWAP2
000008d6: SWAP1
000008d7: POP
000008d8: POP
000008d9: POP
000008da: PUSH2 0x27e8
000008dd: JUMP
000008de: JUMPDEST
000008df: STOP
000008e0: JUMPDEST
000008e1: CALLVALUE
000008e2: DUP1
000008e3: ISZERO
000008e4: PUSH2 0x08ec
000008e7: JUMPI
000008e8: PUSH1 0x00
000008ea: DUP1
000008eb: REVERT
000008ec: JUMPDEST
000008ed: POP
000008ee: PUSH2 0x0921
000008f1: PUSH1 0x04
000008f3: DUP1
000008f4: CALLDATASIZE
000008f5: SUB
000008f6: DUP2
000008f7: ADD
000008f8: SWAP1
000008f9: DUP1
000008fa: DUP1
000008fb: CALLDATALOAD
000008fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000911: AND
00000912: SWAP1
00000913: PUSH1 0x20
00000915: ADD
00000916: SWAP1
00000917: SWAP3
00000918: SWAP2
00000919: SWAP1
0000091a: POP
0000091b: POP
0000091c: POP
0000091d: PUSH2 0x285e
00000920: JUMP
00000921: JUMPDEST
00000922: STOP
00000923: JUMPDEST
00000924: CALLVALUE
00000925: DUP1
00000926: ISZERO
00000927: PUSH2 0x092f
0000092a: JUMPI
0000092b: PUSH1 0x00
0000092d: DUP1
0000092e: REVERT
0000092f: JUMPDEST
00000930: POP
00000931: PUSH2 0x0964
00000934: PUSH1 0x04
00000936: DUP1
00000937: CALLDATASIZE
00000938: SUB
00000939: DUP2
0000093a: ADD
0000093b: SWAP1
0000093c: DUP1
0000093d: DUP1
0000093e: CALLDATALOAD
0000093f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000954: AND
00000955: SWAP1
00000956: PUSH1 0x20
00000958: ADD
00000959: SWAP1
0000095a: SWAP3
0000095b: SWAP2
0000095c: SWAP1
0000095d: POP
0000095e: POP
0000095f: POP
00000960: PUSH2 0x297b
00000963: JUMP
00000964: JUMPDEST
00000965: STOP
00000966: JUMPDEST
00000967: CALLVALUE
00000968: DUP1
00000969: ISZERO
0000096a: PUSH2 0x0972
0000096d: JUMPI
0000096e: PUSH1 0x00
00000970: DUP1
00000971: REVERT
00000972: JUMPDEST
00000973: POP
00000974: PUSH2 0x09b1
00000977: PUSH1 0x04
00000979: DUP1
0000097a: CALLDATASIZE
0000097b: SUB
0000097c: DUP2
0000097d: ADD
0000097e: SWAP1
0000097f: DUP1
00000980: DUP1
00000981: CALLDATALOAD
00000982: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000997: AND
00000998: SWAP1
00000999: PUSH1 0x20
0000099b: ADD
0000099c: SWAP1
0000099d: SWAP3
0000099e: SWAP2
0000099f: SWAP1
000009a0: DUP1
000009a1: CALLDATALOAD
000009a2: SWAP1
000009a3: PUSH1 0x20
000009a5: ADD
000009a6: SWAP1
000009a7: SWAP3
000009a8: SWAP2
000009a9: SWAP1
000009aa: POP
000009ab: POP
000009ac: POP
000009ad: PUSH2 0x2aad
000009b0: JUMP
000009b1: JUMPDEST
000009b2: STOP
000009b3: JUMPDEST
000009b4: CALLVALUE
000009b5: DUP1
000009b6: ISZERO
000009b7: PUSH2 0x09bf
000009ba: JUMPI
000009bb: PUSH1 0x00
000009bd: DUP1
000009be: REVERT
000009bf: JUMPDEST
000009c0: POP
000009c1: PUSH2 0x09f4
000009c4: PUSH1 0x04
000009c6: DUP1
000009c7: CALLDATASIZE
000009c8: SUB
000009c9: DUP2
000009ca: ADD
000009cb: SWAP1
000009cc: DUP1
000009cd: DUP1
000009ce: CALLDATALOAD
000009cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009e4: AND
000009e5: SWAP1
000009e6: PUSH1 0x20
000009e8: ADD
000009e9: SWAP1
000009ea: SWAP3
000009eb: SWAP2
000009ec: SWAP1
000009ed: POP
000009ee: POP
000009ef: POP
000009f0: PUSH2 0x2e7d
000009f3: JUMP
000009f4: JUMPDEST
000009f5: STOP
000009f6: JUMPDEST
000009f7: CALLVALUE
000009f8: DUP1
000009f9: ISZERO
000009fa: PUSH2 0x0a02
000009fd: JUMPI
000009fe: PUSH1 0x00
00000a00: DUP1
00000a01: REVERT
00000a02: JUMPDEST
00000a03: POP
00000a04: PUSH2 0x0a45
00000a07: PUSH1 0x04
00000a09: DUP1
00000a0a: CALLDATASIZE
00000a0b: SUB
00000a0c: DUP2
00000a0d: ADD
00000a0e: SWAP1
00000a0f: DUP1
00000a10: DUP1
00000a11: CALLDATALOAD
00000a12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a27: AND
00000a28: SWAP1
00000a29: PUSH1 0x20
00000a2b: ADD
00000a2c: SWAP1
00000a2d: SWAP3
00000a2e: SWAP2
00000a2f: SWAP1
00000a30: DUP1
00000a31: CALLDATALOAD
00000a32: PUSH1 0x00
00000a34: NOT
00000a35: AND
00000a36: SWAP1
00000a37: PUSH1 0x20
00000a39: ADD
00000a3a: SWAP1
00000a3b: SWAP3
00000a3c: SWAP2
00000a3d: SWAP1
00000a3e: POP
00000a3f: POP
00000a40: POP
00000a41: PUSH2 0x2fae
00000a44: JUMP
00000a45: JUMPDEST
00000a46: PUSH1 0x40
00000a48: MLOAD
00000a49: DUP1
00000a4a: DUP3
00000a4b: ISZERO
00000a4c: ISZERO
00000a4d: ISZERO
00000a4e: ISZERO
00000a4f: DUP2
00000a50: MSTORE
00000a51: PUSH1 0x20
00000a53: ADD
00000a54: SWAP2
00000a55: POP
00000a56: POP
00000a57: PUSH1 0x40
00000a59: MLOAD
00000a5a: DUP1
00000a5b: SWAP2
00000a5c: SUB
00000a5d: SWAP1
00000a5e: RETURN
00000a5f: JUMPDEST
00000a60: CALLVALUE
00000a61: DUP1
00000a62: ISZERO
00000a63: PUSH2 0x0a6b
00000a66: JUMPI
00000a67: PUSH1 0x00
00000a69: DUP1
00000a6a: REVERT
00000a6b: JUMPDEST
00000a6c: POP
00000a6d: PUSH2 0x0a74
00000a70: PUSH2 0x2fdd
00000a73: JUMP
00000a74: JUMPDEST
00000a75: PUSH1 0x40
00000a77: MLOAD
00000a78: DUP1
00000a79: DUP3
00000a7a: DUP2
00000a7b: MSTORE
00000a7c: PUSH1 0x20
00000a7e: ADD
00000a7f: SWAP2
00000a80: POP
00000a81: POP
00000a82: PUSH1 0x40
00000a84: MLOAD
00000a85: DUP1
00000a86: SWAP2
00000a87: SUB
00000a88: SWAP1
00000a89: RETURN
00000a8a: JUMPDEST
00000a8b: PUSH2 0x0a92
00000a8e: PUSH2 0x2fe3
00000a91: JUMP
00000a92: JUMPDEST
00000a93: STOP
00000a94: JUMPDEST
00000a95: CALLVALUE
00000a96: DUP1
00000a97: ISZERO
00000a98: PUSH2 0x0aa0
00000a9b: JUMPI
00000a9c: PUSH1 0x00
00000a9e: DUP1
00000a9f: REVERT
00000aa0: JUMPDEST
00000aa1: POP
00000aa2: PUSH2 0x0ad5
00000aa5: PUSH1 0x04
00000aa7: DUP1
00000aa8: CALLDATASIZE
00000aa9: SUB
00000aaa: DUP2
00000aab: ADD
00000aac: SWAP1
00000aad: DUP1
00000aae: DUP1
00000aaf: CALLDATALOAD
00000ab0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ac5: AND
00000ac6: SWAP1
00000ac7: PUSH1 0x20
00000ac9: ADD
00000aca: SWAP1
00000acb: SWAP3
00000acc: SWAP2
00000acd: SWAP1
00000ace: POP
00000acf: POP
00000ad0: POP
00000ad1: PUSH2 0x3218
00000ad4: JUMP
00000ad5: JUMPDEST
00000ad6: PUSH1 0x40
00000ad8: MLOAD
00000ad9: DUP1
00000ada: DUP3
00000adb: ISZERO
00000adc: ISZERO
00000add: ISZERO
00000ade: ISZERO
00000adf: DUP2
00000ae0: MSTORE
00000ae1: PUSH1 0x20
00000ae3: ADD
00000ae4: SWAP2
00000ae5: POP
00000ae6: POP
00000ae7: PUSH1 0x40
00000ae9: MLOAD
00000aea: DUP1
00000aeb: SWAP2
00000aec: SUB
00000aed: SWAP1
00000aee: RETURN
00000aef: JUMPDEST
00000af0: CALLVALUE
00000af1: DUP1
00000af2: ISZERO
00000af3: PUSH2 0x0afb
00000af6: JUMPI
00000af7: PUSH1 0x00
00000af9: DUP1
00000afa: REVERT
00000afb: JUMPDEST
00000afc: POP
00000afd: PUSH2 0x0b30
00000b00: PUSH1 0x04
00000b02: DUP1
00000b03: CALLDATASIZE
00000b04: SUB
00000b05: DUP2
00000b06: ADD
00000b07: SWAP1
00000b08: DUP1
00000b09: DUP1
00000b0a: CALLDATALOAD
00000b0b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b20: AND
00000b21: SWAP1
00000b22: PUSH1 0x20
00000b24: ADD
00000b25: SWAP1
00000b26: SWAP3
00000b27: SWAP2
00000b28: SWAP1
00000b29: POP
00000b2a: POP
00000b2b: POP
00000b2c: PUSH2 0x3238
00000b2f: JUMP
00000b30: JUMPDEST
00000b31: STOP
00000b32: JUMPDEST
00000b33: CALLVALUE
00000b34: DUP1
00000b35: ISZERO
00000b36: PUSH2 0x0b3e
00000b39: JUMPI
00000b3a: PUSH1 0x00
00000b3c: DUP1
00000b3d: REVERT
00000b3e: JUMPDEST
00000b3f: POP
00000b40: PUSH2 0x0b47
00000b43: PUSH2 0x32d7
00000b46: JUMP
00000b47: JUMPDEST
00000b48: PUSH1 0x40
00000b4a: MLOAD
00000b4b: DUP1
00000b4c: DUP3
00000b4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b62: AND
00000b63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b78: AND
00000b79: DUP2
00000b7a: MSTORE
00000b7b: PUSH1 0x20
00000b7d: ADD
00000b7e: SWAP2
00000b7f: POP
00000b80: POP
00000b81: PUSH1 0x40
00000b83: MLOAD
00000b84: DUP1
00000b85: SWAP2
00000b86: SUB
00000b87: SWAP1
00000b88: RETURN
00000b89: JUMPDEST
00000b8a: CALLVALUE
00000b8b: DUP1
00000b8c: ISZERO
00000b8d: PUSH2 0x0b95
00000b90: JUMPI
00000b91: PUSH1 0x00
00000b93: DUP1
00000b94: REVERT
00000b95: JUMPDEST
00000b96: POP
00000b97: PUSH2 0x0bca
00000b9a: PUSH1 0x04
00000b9c: DUP1
00000b9d: CALLDATASIZE
00000b9e: SUB
00000b9f: DUP2
00000ba0: ADD
00000ba1: SWAP1
00000ba2: DUP1
00000ba3: DUP1
00000ba4: CALLDATALOAD
00000ba5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bba: AND
00000bbb: SWAP1
00000bbc: PUSH1 0x20
00000bbe: ADD
00000bbf: SWAP1
00000bc0: SWAP3
00000bc1: SWAP2
00000bc2: SWAP1
00000bc3: POP
00000bc4: POP
00000bc5: POP
00000bc6: PUSH2 0x32fd
00000bc9: JUMP
00000bca: JUMPDEST
00000bcb: PUSH1 0x40
00000bcd: MLOAD
00000bce: DUP1
00000bcf: DUP3
00000bd0: ISZERO
00000bd1: ISZERO
00000bd2: ISZERO
00000bd3: ISZERO
00000bd4: DUP2
00000bd5: MSTORE
00000bd6: PUSH1 0x20
00000bd8: ADD
00000bd9: SWAP2
00000bda: POP
00000bdb: POP
00000bdc: PUSH1 0x40
00000bde: MLOAD
00000bdf: DUP1
00000be0: SWAP2
00000be1: SUB
00000be2: SWAP1
00000be3: RETURN
00000be4: JUMPDEST
00000be5: CALLVALUE
00000be6: DUP1
00000be7: ISZERO
00000be8: PUSH2 0x0bf0
00000beb: JUMPI
00000bec: PUSH1 0x00
00000bee: DUP1
00000bef: REVERT
00000bf0: JUMPDEST
00000bf1: POP
00000bf2: PUSH2 0x0c45
00000bf5: PUSH1 0x04
00000bf7: DUP1
00000bf8: CALLDATASIZE
00000bf9: SUB
00000bfa: DUP2
00000bfb: ADD
00000bfc: SWAP1
00000bfd: DUP1
00000bfe: DUP1
00000bff: CALLDATALOAD
00000c00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c15: AND
00000c16: SWAP1
00000c17: PUSH1 0x20
00000c19: ADD
00000c1a: SWAP1
00000c1b: SWAP3
00000c1c: SWAP2
00000c1d: SWAP1
00000c1e: DUP1
00000c1f: CALLDATALOAD
00000c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c35: AND
00000c36: SWAP1
00000c37: PUSH1 0x20
00000c39: ADD
00000c3a: SWAP1
00000c3b: SWAP3
00000c3c: SWAP2
00000c3d: SWAP1
00000c3e: POP
00000c3f: POP
00000c40: POP
00000c41: PUSH2 0x331d
00000c44: JUMP
00000c45: JUMPDEST
00000c46: PUSH1 0x40
00000c48: MLOAD
00000c49: DUP1
00000c4a: DUP3
00000c4b: DUP2
00000c4c: MSTORE
00000c4d: PUSH1 0x20
00000c4f: ADD
00000c50: SWAP2
00000c51: POP
00000c52: POP
00000c53: PUSH1 0x40
00000c55: MLOAD
00000c56: DUP1
00000c57: SWAP2
00000c58: SUB
00000c59: SWAP1
00000c5a: RETURN
00000c5b: JUMPDEST
00000c5c: CALLVALUE
00000c5d: DUP1
00000c5e: ISZERO
00000c5f: PUSH2 0x0c67
00000c62: JUMPI
00000c63: PUSH1 0x00
00000c65: DUP1
00000c66: REVERT
00000c67: JUMPDEST
00000c68: POP
00000c69: PUSH2 0x0c70
00000c6c: PUSH2 0x33a4
00000c6f: JUMP
00000c70: JUMPDEST
00000c71: PUSH1 0x40
00000c73: MLOAD
00000c74: DUP1
00000c75: DUP3
00000c76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c8b: AND
00000c8c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ca1: AND
00000ca2: DUP2
00000ca3: MSTORE
00000ca4: PUSH1 0x20
00000ca6: ADD
00000ca7: SWAP2
00000ca8: POP
00000ca9: POP
00000caa: PUSH1 0x40
00000cac: MLOAD
00000cad: DUP1
00000cae: SWAP2
00000caf: SUB
00000cb0: SWAP1
00000cb1: RETURN
00000cb2: JUMPDEST
00000cb3: CALLVALUE
00000cb4: DUP1
00000cb5: ISZERO
00000cb6: PUSH2 0x0cbe
00000cb9: JUMPI
00000cba: PUSH1 0x00
00000cbc: DUP1
00000cbd: REVERT
00000cbe: JUMPDEST
00000cbf: POP
00000cc0: PUSH2 0x0d84
00000cc3: PUSH1 0x04
00000cc5: DUP1
00000cc6: CALLDATASIZE
00000cc7: SUB
00000cc8: DUP2
00000cc9: ADD
00000cca: SWAP1
00000ccb: DUP1
00000ccc: DUP1
00000ccd: CALLDATALOAD
00000cce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ce3: AND
00000ce4: SWAP1
00000ce5: PUSH1 0x20
00000ce7: ADD
00000ce8: SWAP1
00000ce9: SWAP3
00000cea: SWAP2
00000ceb: SWAP1
00000cec: DUP1
00000ced: CALLDATALOAD
00000cee: SWAP1
00000cef: PUSH1 0x20
00000cf1: ADD
00000cf2: SWAP1
00000cf3: SWAP3
00000cf4: SWAP2
00000cf5: SWAP1
00000cf6: DUP1
00000cf7: CALLDATALOAD
00000cf8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d0d: AND
00000d0e: SWAP1
00000d0f: PUSH1 0x20
00000d11: ADD
00000d12: SWAP1
00000d13: SWAP3
00000d14: SWAP2
00000d15: SWAP1
00000d16: DUP1
00000d17: CALLDATALOAD
00000d18: SWAP1
00000d19: PUSH1 0x20
00000d1b: ADD
00000d1c: SWAP1
00000d1d: SWAP3
00000d1e: SWAP2
00000d1f: SWAP1
00000d20: DUP1
00000d21: CALLDATALOAD
00000d22: SWAP1
00000d23: PUSH1 0x20
00000d25: ADD
00000d26: SWAP1
00000d27: SWAP3
00000d28: SWAP2
00000d29: SWAP1
00000d2a: DUP1
00000d2b: CALLDATALOAD
00000d2c: SWAP1
00000d2d: PUSH1 0x20
00000d2f: ADD
00000d30: SWAP1
00000d31: SWAP3
00000d32: SWAP2
00000d33: SWAP1
00000d34: DUP1
00000d35: CALLDATALOAD
00000d36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d4b: AND
00000d4c: SWAP1
00000d4d: PUSH1 0x20
00000d4f: ADD
00000d50: SWAP1
00000d51: SWAP3
00000d52: SWAP2
00000d53: SWAP1
00000d54: DUP1
00000d55: CALLDATALOAD
00000d56: PUSH1 0xff
00000d58: AND
00000d59: SWAP1
00000d5a: PUSH1 0x20
00000d5c: ADD
00000d5d: SWAP1
00000d5e: SWAP3
00000d5f: SWAP2
00000d60: SWAP1
00000d61: DUP1
00000d62: CALLDATALOAD
00000d63: PUSH1 0x00
00000d65: NOT
00000d66: AND
00000d67: SWAP1
00000d68: PUSH1 0x20
00000d6a: ADD
00000d6b: SWAP1
00000d6c: SWAP3
00000d6d: SWAP2
00000d6e: SWAP1
00000d6f: DUP1
00000d70: CALLDATALOAD
00000d71: PUSH1 0x00
00000d73: NOT
00000d74: AND
00000d75: SWAP1
00000d76: PUSH1 0x20
00000d78: ADD
00000d79: SWAP1
00000d7a: SWAP3
00000d7b: SWAP2
00000d7c: SWAP1
00000d7d: POP
00000d7e: POP
00000d7f: POP
00000d80: PUSH2 0x33c9
00000d83: JUMP
00000d84: JUMPDEST
00000d85: PUSH1 0x40
00000d87: MLOAD
00000d88: DUP1
00000d89: DUP3
00000d8a: DUP2
00000d8b: MSTORE
00000d8c: PUSH1 0x20
00000d8e: ADD
00000d8f: SWAP2
00000d90: POP
00000d91: POP
00000d92: PUSH1 0x40
00000d94: MLOAD
00000d95: DUP1
00000d96: SWAP2
00000d97: SUB
00000d98: SWAP1
00000d99: RETURN
00000d9a: JUMPDEST
00000d9b: PUSH1 0x00
00000d9d: PUSH1 0x08
00000d9f: PUSH1 0x00
00000da1: CALLER
00000da2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000db7: AND
00000db8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dcd: AND
00000dce: DUP2
00000dcf: MSTORE
00000dd0: PUSH1 0x20
00000dd2: ADD
00000dd3: SWAP1
00000dd4: DUP2
00000dd5: MSTORE
00000dd6: PUSH1 0x20
00000dd8: ADD
00000dd9: PUSH1 0x00
00000ddb: KECCAK256
00000ddc: PUSH1 0x00
00000dde: SWAP1
00000ddf: SLOAD
00000de0: SWAP1
00000de1: PUSH2 0x0100
00000de4: EXP
00000de5: SWAP1
00000de6: DIV
00000de7: PUSH1 0xff
00000de9: AND
00000dea: ISZERO
00000deb: ISZERO
00000dec: PUSH2 0x0df4
00000def: JUMPI
00000df0: PUSH1 0x00
00000df2: DUP1
00000df3: REVERT
00000df4: JUMPDEST
00000df5: PUSH1 0x07
00000df7: PUSH1 0x00
00000df9: DUP14
00000dfa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e0f: AND
00000e10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e25: AND
00000e26: DUP2
00000e27: MSTORE
00000e28: PUSH1 0x20
00000e2a: ADD
00000e2b: SWAP1
00000e2c: DUP2
00000e2d: MSTORE
00000e2e: PUSH1 0x20
00000e30: ADD
00000e31: PUSH1 0x00
00000e33: KECCAK256
00000e34: PUSH1 0x00
00000e36: SWAP1
00000e37: SLOAD
00000e38: SWAP1
00000e39: PUSH2 0x0100
00000e3c: EXP
00000e3d: SWAP1
00000e3e: DIV
00000e3f: PUSH1 0xff
00000e41: AND
00000e42: DUP1
00000e43: ISZERO
00000e44: PUSH2 0x0e96
00000e47: JUMPI
00000e48: POP
00000e49: PUSH1 0x07
00000e4b: PUSH1 0x00
00000e4d: DUP12
00000e4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e63: AND
00000e64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e79: AND
00000e7a: DUP2
00000e7b: MSTORE
00000e7c: PUSH1 0x20
00000e7e: ADD
00000e7f: SWAP1
00000e80: DUP2
00000e81: MSTORE
00000e82: PUSH1 0x20
00000e84: ADD
00000e85: PUSH1 0x00
00000e87: KECCAK256
00000e88: PUSH1 0x00
00000e8a: SWAP1
00000e8b: SLOAD
00000e8c: SWAP1
00000e8d: PUSH2 0x0100
00000e90: EXP
00000e91: SWAP1
00000e92: DIV
00000e93: PUSH1 0xff
00000e95: AND
00000e96: JUMPDEST
00000e97: ISZERO
00000e98: ISZERO
00000e99: PUSH2 0x0ea1
00000e9c: JUMPI
00000e9d: PUSH1 0x00
00000e9f: DUP1
00000ea0: REVERT
00000ea1: JUMPDEST
00000ea2: DUP8
00000ea3: NUMBER
00000ea4: GT
00000ea5: ISZERO
00000ea6: ISZERO
00000ea7: ISZERO
00000ea8: PUSH2 0x0eb0
00000eab: JUMPI
00000eac: PUSH1 0x00
00000eae: DUP1
00000eaf: REVERT
00000eb0: JUMPDEST
00000eb1: ADDRESS
00000eb2: DUP13
00000eb3: DUP13
00000eb4: DUP13
00000eb5: DUP13
00000eb6: DUP13
00000eb7: DUP13
00000eb8: PUSH1 0x40
00000eba: MLOAD
00000ebb: DUP1
00000ebc: DUP9
00000ebd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ed2: AND
00000ed3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ee8: AND
00000ee9: PUSH13 0x01000000000000000000000000
00000ef7: MUL
00000ef8: DUP2
00000ef9: MSTORE
00000efa: PUSH1 0x14
00000efc: ADD
00000efd: DUP8
00000efe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f13: AND
00000f14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f29: AND
00000f2a: PUSH13 0x01000000000000000000000000
00000f38: MUL
00000f39: DUP2
00000f3a: MSTORE
00000f3b: PUSH1 0x14
00000f3d: ADD
00000f3e: DUP7
00000f3f: DUP2
00000f40: MSTORE
00000f41: PUSH1 0x20
00000f43: ADD
00000f44: DUP6
00000f45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f5a: AND
00000f5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f70: AND
00000f71: PUSH13 0x01000000000000000000000000
00000f7f: MUL
00000f80: DUP2
00000f81: MSTORE
00000f82: PUSH1 0x14
00000f84: ADD
00000f85: DUP5
00000f86: DUP2
00000f87: MSTORE
00000f88: PUSH1 0x20
00000f8a: ADD
00000f8b: DUP4
00000f8c: DUP2
00000f8d: MSTORE
00000f8e: PUSH1 0x20
00000f90: ADD
00000f91: DUP3
00000f92: DUP2
00000f93: MSTORE
00000f94: PUSH1 0x20
00000f96: ADD
00000f97: SWAP8
00000f98: POP
00000f99: POP
00000f9a: POP
00000f9b: POP
00000f9c: POP
00000f9d: POP
00000f9e: POP
00000f9f: POP
00000fa0: PUSH1 0x40
00000fa2: MLOAD
00000fa3: DUP1
00000fa4: SWAP2
00000fa5: SUB
00000fa6: SWAP1
00000fa7: KECCAK256
00000fa8: SWAP1
00000fa9: POP
00000faa: PUSH2 0x0fb6
00000fad: DUP2
00000fae: DUP8
00000faf: DUP8
00000fb0: DUP8
00000fb1: DUP8
00000fb2: PUSH2 0x3805
00000fb5: JUMP
00000fb6: JUMPDEST
00000fb7: ISZERO
00000fb8: ISZERO
00000fb9: PUSH2 0x0fc1
00000fbc: JUMPI
00000fbd: PUSH1 0x00
00000fbf: DUP1
00000fc0: REVERT
00000fc1: JUMPDEST
00000fc2: DUP11
00000fc3: PUSH2 0x1024
00000fc6: PUSH1 0x0a
00000fc8: PUSH1 0x00
00000fca: DUP10
00000fcb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fe0: AND
00000fe1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ff6: AND
00000ff7: DUP2
00000ff8: MSTORE
00000ff9: PUSH1 0x20
00000ffb: ADD
00000ffc: SWAP1
00000ffd: DUP2
00000ffe: MSTORE
00000fff: PUSH1 0x20
00001001: ADD
00001002: PUSH1 0x00
00001004: KECCAK256
00001005: PUSH1 0x00
00001007: DUP5
00001008: PUSH1 0x00
0000100a: NOT
0000100b: AND
0000100c: PUSH1 0x00
0000100e: NOT
0000100f: AND
00001010: DUP2
00001011: MSTORE
00001012: PUSH1 0x20
00001014: ADD
00001015: SWAP1
00001016: DUP2
00001017: MSTORE
00001018: PUSH1 0x20
0000101a: ADD
0000101b: PUSH1 0x00
0000101d: KECCAK256
0000101e: SLOAD
0000101f: DUP5
00001020: PUSH2 0x3973
00001023: JUMP
00001024: JUMPDEST
00001025: GT
00001026: ISZERO
00001027: ISZERO
00001028: ISZERO
00001029: PUSH2 0x1031
0000102c: JUMPI
0000102d: PUSH1 0x00
0000102f: DUP1
00001030: REVERT
00001031: JUMPDEST
00001032: PUSH2 0x109c
00001035: DUP3
00001036: PUSH1 0x0a
00001038: PUSH1 0x00
0000103a: DUP10
0000103b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001050: AND
00001051: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001066: AND
00001067: DUP2
00001068: MSTORE
00001069: PUSH1 0x20
0000106b: ADD
0000106c: SWAP1
0000106d: DUP2
0000106e: MSTORE
0000106f: PUSH1 0x20
00001071: ADD
00001072: PUSH1 0x00
00001074: KECCAK256
00001075: PUSH1 0x00
00001077: DUP5
00001078: PUSH1 0x00
0000107a: NOT
0000107b: AND
0000107c: PUSH1 0x00
0000107e: NOT
0000107f: AND
00001080: DUP2
00001081: MSTORE
00001082: PUSH1 0x20
00001084: ADD
00001085: SWAP1
00001086: DUP2
00001087: MSTORE
00001088: PUSH1 0x20
0000108a: ADD
0000108b: PUSH1 0x00
0000108d: KECCAK256
0000108e: SLOAD
0000108f: PUSH2 0x3973
00001092: SWAP1
00001093: SWAP2
00001094: SWAP1
00001095: PUSH4 0xffffffff
0000109a: AND
0000109b: JUMP
0000109c: JUMPDEST
0000109d: PUSH1 0x0a
0000109f: PUSH1 0x00
000010a1: DUP9
000010a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010b7: AND
000010b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010cd: AND
000010ce: DUP2
000010cf: MSTORE
000010d0: PUSH1 0x20
000010d2: ADD
000010d3: SWAP1
000010d4: DUP2
000010d5: MSTORE
000010d6: PUSH1 0x20
000010d8: ADD
000010d9: PUSH1 0x00
000010db: KECCAK256
000010dc: PUSH1 0x00
000010de: DUP4
000010df: PUSH1 0x00
000010e1: NOT
000010e2: AND
000010e3: PUSH1 0x00
000010e5: NOT
000010e6: AND
000010e7: DUP2
000010e8: MSTORE
000010e9: PUSH1 0x20
000010eb: ADD
000010ec: SWAP1
000010ed: DUP2
000010ee: MSTORE
000010ef: PUSH1 0x20
000010f1: ADD
000010f2: PUSH1 0x00
000010f4: KECCAK256
000010f5: DUP2
000010f6: SWAP1
000010f7: SSTORE
000010f8: POP
000010f9: PUSH2 0x1106
000010fc: DUP13
000010fd: DUP13
000010fe: DUP13
000010ff: DUP13
00001100: DUP11
00001101: DUP8
00001102: PUSH2 0x3991
00001105: JUMP
00001106: JUMPDEST
00001107: PUSH32 0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d
00001128: DUP13
00001129: DUP4
0000112a: DUP13
0000112b: PUSH2 0x1146
0000112e: DUP16
0000112f: PUSH2 0x1138
00001132: DUP16
00001133: DUP10
00001134: PUSH2 0x41c4
00001137: JUMP
00001138: JUMPDEST
00001139: PUSH2 0x41ff
0000113c: SWAP1
0000113d: SWAP2
0000113e: SWAP1
0000113f: PUSH4 0xffffffff
00001144: AND
00001145: JUMP
00001146: JUMPDEST
00001147: DUP11
00001148: CALLER
00001149: PUSH1 0x40
0000114b: MLOAD
0000114c: DUP1
0000114d: DUP8
0000114e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001163: AND
00001164: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001179: AND
0000117a: DUP2
0000117b: MSTORE
0000117c: PUSH1 0x20
0000117e: ADD
0000117f: DUP7
00001180: DUP2
00001181: MSTORE
00001182: PUSH1 0x20
00001184: ADD
00001185: DUP6
00001186: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000119b: AND
0000119c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011b1: AND
000011b2: DUP2
000011b3: MSTORE
000011b4: PUSH1 0x20
000011b6: ADD
000011b7: DUP5
000011b8: DUP2
000011b9: MSTORE
000011ba: PUSH1 0x20
000011bc: ADD
000011bd: DUP4
000011be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011d3: AND
000011d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011e9: AND
000011ea: DUP2
000011eb: MSTORE
000011ec: PUSH1 0x20
000011ee: ADD
000011ef: DUP3
000011f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001205: AND
00001206: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000121b: AND
0000121c: DUP2
0000121d: MSTORE
0000121e: PUSH1 0x20
00001220: ADD
00001221: SWAP7
00001222: POP
00001223: POP
00001224: POP
00001225: POP
00001226: POP
00001227: POP
00001228: POP
00001229: PUSH1 0x40
0000122b: MLOAD
0000122c: DUP1
0000122d: SWAP2
0000122e: SUB
0000122f: SWAP1
00001230: LOG1
00001231: POP
00001232: POP
00001233: POP
00001234: POP
00001235: POP
00001236: POP
00001237: POP
00001238: POP
00001239: POP
0000123a: POP
0000123b: POP
0000123c: POP
0000123d: JUMP
0000123e: JUMPDEST
0000123f: PUSH1 0x00
00001241: PUSH1 0x08
00001243: PUSH1 0x00
00001245: CALLER
00001246: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000125b: AND
0000125c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001271: AND
00001272: DUP2
00001273: MSTORE
00001274: PUSH1 0x20
00001276: ADD
00001277: SWAP1
00001278: DUP2
00001279: MSTORE
0000127a: PUSH1 0x20
0000127c: ADD
0000127d: PUSH1 0x00
0000127f: KECCAK256
00001280: PUSH1 0x00
00001282: SWAP1
00001283: SLOAD
00001284: SWAP1
00001285: PUSH2 0x0100
00001288: EXP
00001289: SWAP1
0000128a: DIV
0000128b: PUSH1 0xff
0000128d: AND
0000128e: ISZERO
0000128f: ISZERO
00001290: PUSH2 0x1298
00001293: JUMPI
00001294: PUSH1 0x00
00001296: DUP1
00001297: REVERT
00001298: JUMPDEST
00001299: PUSH1 0x07
0000129b: PUSH1 0x00
0000129d: DUP9
0000129e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012b3: AND
000012b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012c9: AND
000012ca: DUP2
000012cb: MSTORE
000012cc: PUSH1 0x20
000012ce: ADD
000012cf: SWAP1
000012d0: DUP2
000012d1: MSTORE
000012d2: PUSH1 0x20
000012d4: ADD
000012d5: PUSH1 0x00
000012d7: KECCAK256
000012d8: PUSH1 0x00
000012da: SWAP1
000012db: SLOAD
000012dc: SWAP1
000012dd: PUSH2 0x0100
000012e0: EXP
000012e1: SWAP1
000012e2: DIV
000012e3: PUSH1 0xff
000012e5: AND
000012e6: DUP1
000012e7: ISZERO
000012e8: PUSH2 0x133a
000012eb: JUMPI
000012ec: POP
000012ed: PUSH1 0x07
000012ef: PUSH1 0x00
000012f1: DUP7
000012f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001307: AND
00001308: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000131d: AND
0000131e: DUP2
0000131f: MSTORE
00001320: PUSH1 0x20
00001322: ADD
00001323: SWAP1
00001324: DUP2
00001325: MSTORE
00001326: PUSH1 0x20
00001328: ADD
00001329: PUSH1 0x00
0000132b: KECCAK256
0000132c: PUSH1 0x00
0000132e: SWAP1
0000132f: SLOAD
00001330: SWAP1
00001331: PUSH2 0x0100
00001334: EXP
00001335: SWAP1
00001336: DIV
00001337: PUSH1 0xff
00001339: AND
0000133a: JUMPDEST
0000133b: ISZERO
0000133c: ISZERO
0000133d: PUSH2 0x1345
00001340: JUMPI
00001341: PUSH1 0x00
00001343: DUP1
00001344: REVERT
00001345: JUMPDEST
00001346: ADDRESS
00001347: DUP8
00001348: DUP8
00001349: DUP8
0000134a: DUP8
0000134b: DUP8
0000134c: DUP8
0000134d: PUSH1 0x40
0000134f: MLOAD
00001350: DUP1
00001351: DUP9
00001352: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001367: AND
00001368: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000137d: AND
0000137e: PUSH13 0x01000000000000000000000000
0000138c: MUL
0000138d: DUP2
0000138e: MSTORE
0000138f: PUSH1 0x14
00001391: ADD
00001392: DUP8
00001393: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013a8: AND
000013a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013be: AND
000013bf: PUSH13 0x01000000000000000000000000
000013cd: MUL
000013ce: DUP2
000013cf: MSTORE
000013d0: PUSH1 0x14
000013d2: ADD
000013d3: DUP7
000013d4: DUP2
000013d5: MSTORE
000013d6: PUSH1 0x20
000013d8: ADD
000013d9: DUP6
000013da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013ef: AND
000013f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001405: AND
00001406: PUSH13 0x01000000000000000000000000
00001414: MUL
00001415: DUP2
00001416: MSTORE
00001417: PUSH1 0x14
00001419: ADD
0000141a: DUP5
0000141b: DUP2
0000141c: MSTORE
0000141d: PUSH1 0x20
0000141f: ADD
00001420: DUP4
00001421: DUP2
00001422: MSTORE
00001423: PUSH1 0x20
00001425: ADD
00001426: DUP3
00001427: DUP2
00001428: MSTORE
00001429: PUSH1 0x20
0000142b: ADD
0000142c: SWAP8
0000142d: POP
0000142e: POP
0000142f: POP
00001430: POP
00001431: POP
00001432: POP
00001433: POP
00001434: POP
00001435: PUSH1 0x40
00001437: MLOAD
00001438: DUP1
00001439: SWAP2
0000143a: SUB
0000143b: SWAP1
0000143c: KECCAK256
0000143d: SWAP1
0000143e: POP
0000143f: PUSH1 0x01
00001441: PUSH1 0x09
00001443: PUSH1 0x00
00001445: CALLER
00001446: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000145b: AND
0000145c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001471: AND
00001472: DUP2
00001473: MSTORE
00001474: PUSH1 0x20
00001476: ADD
00001477: SWAP1
00001478: DUP2
00001479: MSTORE
0000147a: PUSH1 0x20
0000147c: ADD
0000147d: PUSH1 0x00
0000147f: KECCAK256
00001480: PUSH1 0x00
00001482: DUP4
00001483: PUSH1 0x00
00001485: NOT
00001486: AND
00001487: PUSH1 0x00
00001489: NOT
0000148a: AND
0000148b: DUP2
0000148c: MSTORE
0000148d: PUSH1 0x20
0000148f: ADD
00001490: SWAP1
00001491: DUP2
00001492: MSTORE
00001493: PUSH1 0x20
00001495: ADD
00001496: PUSH1 0x00
00001498: KECCAK256
00001499: PUSH1 0x00
0000149b: PUSH2 0x0100
0000149e: EXP
0000149f: DUP2
000014a0: SLOAD
000014a1: DUP2
000014a2: PUSH1 0xff
000014a4: MUL
000014a5: NOT
000014a6: AND
000014a7: SWAP1
000014a8: DUP4
000014a9: ISZERO
000014aa: ISZERO
000014ab: MUL
000014ac: OR
000014ad: SWAP1
000014ae: SSTORE
000014af: POP
000014b0: PUSH32 0x3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85
000014d1: DUP8
000014d2: DUP8
000014d3: DUP8
000014d4: DUP8
000014d5: DUP8
000014d6: DUP8
000014d7: CALLER
000014d8: PUSH1 0x40
000014da: MLOAD
000014db: DUP1
000014dc: DUP9
000014dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014f2: AND
000014f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001508: AND
00001509: DUP2
0000150a: MSTORE
0000150b: PUSH1 0x20
0000150d: ADD
0000150e: DUP8
0000150f: DUP2
00001510: MSTORE
00001511: PUSH1 0x20
00001513: ADD
00001514: DUP7
00001515: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000152a: AND
0000152b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001540: AND
00001541: DUP2
00001542: MSTORE
00001543: PUSH1 0x20
00001545: ADD
00001546: DUP6
00001547: DUP2
00001548: MSTORE
00001549: PUSH1 0x20
0000154b: ADD
0000154c: DUP5
0000154d: DUP2
0000154e: MSTORE
0000154f: PUSH1 0x20
00001551: ADD
00001552: DUP4
00001553: DUP2
00001554: MSTORE
00001555: PUSH1 0x20
00001557: ADD
00001558: DUP3
00001559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000156e: AND
0000156f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001584: AND
00001585: DUP2
00001586: MSTORE
00001587: PUSH1 0x20
00001589: ADD
0000158a: SWAP8
0000158b: POP
0000158c: POP
0000158d: POP
0000158e: POP
0000158f: POP
00001590: POP
00001591: POP
00001592: POP
00001593: PUSH1 0x40
00001595: MLOAD
00001596: DUP1
00001597: SWAP2
00001598: SUB
00001599: SWAP1
0000159a: LOG1
0000159b: POP
0000159c: POP
0000159d: POP
0000159e: POP
0000159f: POP
000015a0: POP
000015a1: POP
000015a2: JUMP
000015a3: JUMPDEST
000015a4: PUSH1 0x0a
000015a6: PUSH1 0x20
000015a8: MSTORE
000015a9: DUP2
000015aa: PUSH1 0x00
000015ac: MSTORE
000015ad: PUSH1 0x40
000015af: PUSH1 0x00
000015b1: KECCAK256
000015b2: PUSH1 0x20
000015b4: MSTORE
000015b5: DUP1
000015b6: PUSH1 0x00
000015b8: MSTORE
000015b9: PUSH1 0x40
000015bb: PUSH1 0x00
000015bd: KECCAK256
000015be: PUSH1 0x00
000015c0: SWAP2
000015c1: POP
000015c2: SWAP2
000015c3: POP
000015c4: POP
000015c5: SLOAD
000015c6: DUP2
000015c7: JUMP
000015c8: JUMPDEST
000015c9: PUSH1 0x00
000015cb: ADDRESS
000015cc: DUP11
000015cd: DUP11
000015ce: DUP11
000015cf: DUP11
000015d0: DUP11
000015d1: DUP11
000015d2: PUSH1 0x40
000015d4: MLOAD
000015d5: DUP1
000015d6: DUP9
000015d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015ec: AND
000015ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001602: AND
00001603: PUSH13 0x01000000000000000000000000
00001611: MUL
00001612: DUP2
00001613: MSTORE
00001614: PUSH1 0x14
00001616: ADD
00001617: DUP8
00001618: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000162d: AND
0000162e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001643: AND
00001644: PUSH13 0x01000000000000000000000000
00001652: MUL
00001653: DUP2
00001654: MSTORE
00001655: PUSH1 0x14
00001657: ADD
00001658: DUP7
00001659: DUP2
0000165a: MSTORE
0000165b: PUSH1 0x20
0000165d: ADD
0000165e: DUP6
0000165f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001674: AND
00001675: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000168a: AND
0000168b: PUSH13 0x01000000000000000000000000
00001699: MUL
0000169a: DUP2
0000169b: MSTORE
0000169c: PUSH1 0x14
0000169e: ADD
0000169f: DUP5
000016a0: DUP2
000016a1: MSTORE
000016a2: PUSH1 0x20
000016a4: ADD
000016a5: DUP4
000016a6: DUP2
000016a7: MSTORE
000016a8: PUSH1 0x20
000016aa: ADD
000016ab: DUP3
000016ac: DUP2
000016ad: MSTORE
000016ae: PUSH1 0x20
000016b0: ADD
000016b1: SWAP8
000016b2: POP
000016b3: POP
000016b4: POP
000016b5: POP
000016b6: POP
000016b7: POP
000016b8: POP
000016b9: POP
000016ba: PUSH1 0x40
000016bc: MLOAD
000016bd: DUP1
000016be: SWAP2
000016bf: SUB
000016c0: SWAP1
000016c1: KECCAK256
000016c2: SWAP1
000016c3: POP
000016c4: PUSH2 0x16d0
000016c7: DUP2
000016c8: CALLER
000016c9: DUP7
000016ca: DUP7
000016cb: DUP7
000016cc: PUSH2 0x3805
000016cf: JUMP
000016d0: JUMPDEST
000016d1: ISZERO
000016d2: ISZERO
000016d3: PUSH2 0x16db
000016d6: JUMPI
000016d7: PUSH1 0x00
000016d9: DUP1
000016da: REVERT
000016db: JUMPDEST
000016dc: DUP9
000016dd: PUSH1 0x0a
000016df: PUSH1 0x00
000016e1: CALLER
000016e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016f7: AND
000016f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000170d: AND
0000170e: DUP2
0000170f: MSTORE
00001710: PUSH1 0x20
00001712: ADD
00001713: SWAP1
00001714: DUP2
00001715: MSTORE
00001716: PUSH1 0x20
00001718: ADD
00001719: PUSH1 0x00
0000171b: KECCAK256
0000171c: PUSH1 0x00
0000171e: DUP4
0000171f: PUSH1 0x00
00001721: NOT
00001722: AND
00001723: PUSH1 0x00
00001725: NOT
00001726: AND
00001727: DUP2
00001728: MSTORE
00001729: PUSH1 0x20
0000172b: ADD
0000172c: SWAP1
0000172d: DUP2
0000172e: MSTORE
0000172f: PUSH1 0x20
00001731: ADD
00001732: PUSH1 0x00
00001734: KECCAK256
00001735: DUP2
00001736: SWAP1
00001737: SSTORE
00001738: POP
00001739: PUSH32 0x1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0
0000175a: DUP11
0000175b: DUP11
0000175c: DUP11
0000175d: DUP11
0000175e: DUP11
0000175f: DUP11
00001760: CALLER
00001761: DUP12
00001762: DUP12
00001763: DUP12
00001764: PUSH1 0x40
00001766: MLOAD
00001767: DUP1
00001768: DUP12
00001769: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000177e: AND
0000177f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001794: AND
00001795: DUP2
00001796: MSTORE
00001797: PUSH1 0x20
00001799: ADD
0000179a: DUP11
0000179b: DUP2
0000179c: MSTORE
0000179d: PUSH1 0x20
0000179f: ADD
000017a0: DUP10
000017a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017b6: AND
000017b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017cc: AND
000017cd: DUP2
000017ce: MSTORE
000017cf: PUSH1 0x20
000017d1: ADD
000017d2: DUP9
000017d3: DUP2
000017d4: MSTORE
000017d5: PUSH1 0x20
000017d7: ADD
000017d8: DUP8
000017d9: DUP2
000017da: MSTORE
000017db: PUSH1 0x20
000017dd: ADD
000017de: DUP7
000017df: DUP2
000017e0: MSTORE
000017e1: PUSH1 0x20
000017e3: ADD
000017e4: DUP6
000017e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017fa: AND
000017fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001810: AND
00001811: DUP2
00001812: MSTORE
00001813: PUSH1 0x20
00001815: ADD
00001816: DUP5
00001817: PUSH1 0xff
00001819: AND
0000181a: PUSH1 0xff
0000181c: AND
0000181d: DUP2
0000181e: MSTORE
0000181f: PUSH1 0x20
00001821: ADD
00001822: DUP4
00001823: PUSH1 0x00
00001825: NOT
00001826: AND
00001827: PUSH1 0x00
00001829: NOT
0000182a: AND
0000182b: DUP2
0000182c: MSTORE
0000182d: PUSH1 0x20
0000182f: ADD
00001830: DUP3
00001831: PUSH1 0x00
00001833: NOT
00001834: AND
00001835: PUSH1 0x00
00001837: NOT
00001838: AND
00001839: DUP2
0000183a: MSTORE
0000183b: PUSH1 0x20
0000183d: ADD
0000183e: SWAP11
0000183f: POP
00001840: POP
00001841: POP
00001842: POP
00001843: POP
00001844: POP
00001845: POP
00001846: POP
00001847: POP
00001848: POP
00001849: POP
0000184a: PUSH1 0x40
0000184c: MLOAD
0000184d: DUP1
0000184e: SWAP2
0000184f: SUB
00001850: SWAP1
00001851: LOG1
00001852: POP
00001853: POP
00001854: POP
00001855: POP
00001856: POP
00001857: POP
00001858: POP
00001859: POP
0000185a: POP
0000185b: POP
0000185c: JUMP
0000185d: JUMPDEST
0000185e: PUSH1 0x00
00001860: DUP1
00001861: SWAP1
00001862: SLOAD
00001863: SWAP1
00001864: PUSH2 0x0100
00001867: EXP
00001868: SWAP1
00001869: DIV
0000186a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000187f: AND
00001880: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001895: AND
00001896: CALLER
00001897: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018ac: AND
000018ad: EQ
000018ae: ISZERO
000018af: ISZERO
000018b0: PUSH2 0x18b8
000018b3: JUMPI
000018b4: PUSH1 0x00
000018b6: DUP1
000018b7: REVERT
000018b8: JUMPDEST
000018b9: PUSH1 0x00
000018bb: DUP2
000018bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018d1: AND
000018d2: EQ
000018d3: ISZERO
000018d4: DUP1
000018d5: ISZERO
000018d6: PUSH2 0x1929
000018d9: JUMPI
000018da: POP
000018db: PUSH1 0x08
000018dd: PUSH1 0x00
000018df: DUP3
000018e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018f5: AND
000018f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000190b: AND
0000190c: DUP2
0000190d: MSTORE
0000190e: PUSH1 0x20
00001910: ADD
00001911: SWAP1
00001912: DUP2
00001913: MSTORE
00001914: PUSH1 0x20
00001916: ADD
00001917: PUSH1 0x00
00001919: KECCAK256
0000191a: PUSH1 0x00
0000191c: SWAP1
0000191d: SLOAD
0000191e: SWAP1
0000191f: PUSH2 0x0100
00001922: EXP
00001923: SWAP1
00001924: DIV
00001925: PUSH1 0xff
00001927: AND
00001928: ISZERO
00001929: JUMPDEST
0000192a: ISZERO
0000192b: ISZERO
0000192c: PUSH2 0x1934
0000192f: JUMPI
00001930: PUSH1 0x00
00001932: DUP1
00001933: REVERT
00001934: JUMPDEST
00001935: PUSH1 0x01
00001937: PUSH1 0x08
00001939: PUSH1 0x00
0000193b: DUP4
0000193c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001951: AND
00001952: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001967: AND
00001968: DUP2
00001969: MSTORE
0000196a: PUSH1 0x20
0000196c: ADD
0000196d: SWAP1
0000196e: DUP2
0000196f: MSTORE
00001970: PUSH1 0x20
00001972: ADD
00001973: PUSH1 0x00
00001975: KECCAK256
00001976: PUSH1 0x00
00001978: PUSH2 0x0100
0000197b: EXP
0000197c: DUP2
0000197d: SLOAD
0000197e: DUP2
0000197f: PUSH1 0xff
00001981: MUL
00001982: NOT
00001983: AND
00001984: SWAP1
00001985: DUP4
00001986: ISZERO
00001987: ISZERO
00001988: MUL
00001989: OR
0000198a: SWAP1
0000198b: SSTORE
0000198c: POP
0000198d: POP
0000198e: JUMP
0000198f: JUMPDEST
00001990: PUSH1 0x00
00001992: PUSH1 0x08
00001994: PUSH1 0x00
00001996: DUP4
00001997: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019ac: AND
000019ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019c2: AND
000019c3: DUP2
000019c4: MSTORE
000019c5: PUSH1 0x20
000019c7: ADD
000019c8: SWAP1
000019c9: DUP2
000019ca: MSTORE
000019cb: PUSH1 0x20
000019cd: ADD
000019ce: PUSH1 0x00
000019d0: KECCAK256
000019d1: PUSH1 0x00
000019d3: SWAP1
000019d4: SLOAD
000019d5: SWAP1
000019d6: PUSH2 0x0100
000019d9: EXP
000019da: SWAP1
000019db: DIV
000019dc: PUSH1 0xff
000019de: AND
000019df: ISZERO
000019e0: ISZERO
000019e1: PUSH2 0x19e9
000019e4: JUMPI
000019e5: PUSH1 0x00
000019e7: DUP1
000019e8: REVERT
000019e9: JUMPDEST
000019ea: PUSH1 0x07
000019ec: PUSH1 0x00
000019ee: DUP10
000019ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a04: AND
00001a05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a1a: AND
00001a1b: DUP2
00001a1c: MSTORE
00001a1d: PUSH1 0x20
00001a1f: ADD
00001a20: SWAP1
00001a21: DUP2
00001a22: MSTORE
00001a23: PUSH1 0x20
00001a25: ADD
00001a26: PUSH1 0x00
00001a28: KECCAK256
00001a29: PUSH1 0x00
00001a2b: SWAP1
00001a2c: SLOAD
00001a2d: SWAP1
00001a2e: PUSH2 0x0100
00001a31: EXP
00001a32: SWAP1
00001a33: DIV
00001a34: PUSH1 0xff
00001a36: AND
00001a37: DUP1
00001a38: ISZERO
00001a39: PUSH2 0x1a8b
00001a3c: JUMPI
00001a3d: POP
00001a3e: PUSH1 0x07
00001a40: PUSH1 0x00
00001a42: DUP8
00001a43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a58: AND
00001a59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a6e: AND
00001a6f: DUP2
00001a70: MSTORE
00001a71: PUSH1 0x20
00001a73: ADD
00001a74: SWAP1
00001a75: DUP2
00001a76: MSTORE
00001a77: PUSH1 0x20
00001a79: ADD
00001a7a: PUSH1 0x00
00001a7c: KECCAK256
00001a7d: PUSH1 0x00
00001a7f: SWAP1
00001a80: SLOAD
00001a81: SWAP1
00001a82: PUSH2 0x0100
00001a85: EXP
00001a86: SWAP1
00001a87: DIV
00001a88: PUSH1 0xff
00001a8a: AND
00001a8b: JUMPDEST
00001a8c: ISZERO
00001a8d: ISZERO
00001a8e: PUSH2 0x1a96
00001a91: JUMPI
00001a92: PUSH1 0x00
00001a94: DUP1
00001a95: REVERT
00001a96: JUMPDEST
00001a97: PUSH1 0x0a
00001a99: PUSH1 0x00
00001a9b: DUP4
00001a9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ab1: AND
00001ab2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ac7: AND
00001ac8: DUP2
00001ac9: MSTORE
00001aca: PUSH1 0x20
00001acc: ADD
00001acd: SWAP1
00001ace: DUP2
00001acf: MSTORE
00001ad0: PUSH1 0x20
00001ad2: ADD
00001ad3: PUSH1 0x00
00001ad5: KECCAK256
00001ad6: PUSH1 0x00
00001ad8: ADDRESS
00001ad9: DUP11
00001ada: DUP11
00001adb: DUP11
00001adc: DUP11
00001add: DUP11
00001ade: DUP11
00001adf: PUSH1 0x40
00001ae1: MLOAD
00001ae2: DUP1
00001ae3: DUP9
00001ae4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001af9: AND
00001afa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b0f: AND
00001b10: PUSH13 0x01000000000000000000000000
00001b1e: MUL
00001b1f: DUP2
00001b20: MSTORE
00001b21: PUSH1 0x14
00001b23: ADD
00001b24: DUP8
00001b25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b3a: AND
00001b3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b50: AND
00001b51: PUSH13 0x01000000000000000000000000
00001b5f: MUL
00001b60: DUP2
00001b61: MSTORE
00001b62: PUSH1 0x14
00001b64: ADD
00001b65: DUP7
00001b66: DUP2
00001b67: MSTORE
00001b68: PUSH1 0x20
00001b6a: ADD
00001b6b: DUP6
00001b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b81: AND
00001b82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b97: AND
00001b98: PUSH13 0x01000000000000000000000000
00001ba6: MUL
00001ba7: DUP2
00001ba8: MSTORE
00001ba9: PUSH1 0x14
00001bab: ADD
00001bac: DUP5
00001bad: DUP2
00001bae: MSTORE
00001baf: PUSH1 0x20
00001bb1: ADD
00001bb2: DUP4
00001bb3: DUP2
00001bb4: MSTORE
00001bb5: PUSH1 0x20
00001bb7: ADD
00001bb8: DUP3
00001bb9: DUP2
00001bba: MSTORE
00001bbb: PUSH1 0x20
00001bbd: ADD
00001bbe: SWAP8
00001bbf: POP
00001bc0: POP
00001bc1: POP
00001bc2: POP
00001bc3: POP
00001bc4: POP
00001bc5: POP
00001bc6: POP
00001bc7: PUSH1 0x40
00001bc9: MLOAD
00001bca: DUP1
00001bcb: SWAP2
00001bcc: SUB
00001bcd: SWAP1
00001bce: KECCAK256
00001bcf: PUSH1 0x00
00001bd1: NOT
00001bd2: AND
00001bd3: PUSH1 0x00
00001bd5: NOT
00001bd6: AND
00001bd7: DUP2
00001bd8: MSTORE
00001bd9: PUSH1 0x20
00001bdb: ADD
00001bdc: SWAP1
00001bdd: DUP2
00001bde: MSTORE
00001bdf: PUSH1 0x20
00001be1: ADD
00001be2: PUSH1 0x00
00001be4: KECCAK256
00001be5: SLOAD
00001be6: SWAP1
00001be7: POP
00001be8: SWAP8
00001be9: SWAP7
00001bea: POP
00001beb: POP
00001bec: POP
00001bed: POP
00001bee: POP
00001bef: POP
00001bf0: POP
00001bf1: JUMP
00001bf2: JUMPDEST
00001bf3: DUP1
00001bf4: PUSH1 0x06
00001bf6: PUSH1 0x00
00001bf8: DUP1
00001bf9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c0e: AND
00001c0f: DUP2
00001c10: MSTORE
00001c11: PUSH1 0x20
00001c13: ADD
00001c14: SWAP1
00001c15: DUP2
00001c16: MSTORE
00001c17: PUSH1 0x20
00001c19: ADD
00001c1a: PUSH1 0x00
00001c1c: KECCAK256
00001c1d: PUSH1 0x00
00001c1f: CALLER
00001c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c35: AND
00001c36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c4b: AND
00001c4c: DUP2
00001c4d: MSTORE
00001c4e: PUSH1 0x20
00001c50: ADD
00001c51: SWAP1
00001c52: DUP2
00001c53: MSTORE
00001c54: PUSH1 0x20
00001c56: ADD
00001c57: PUSH1 0x00
00001c59: KECCAK256
00001c5a: SLOAD
00001c5b: LT
00001c5c: ISZERO
00001c5d: ISZERO
00001c5e: ISZERO
00001c5f: PUSH2 0x1c67
00001c62: JUMPI
00001c63: PUSH1 0x00
00001c65: DUP1
00001c66: REVERT
00001c67: JUMPDEST
00001c68: PUSH2 0x1ce0
00001c6b: DUP2
00001c6c: PUSH1 0x06
00001c6e: PUSH1 0x00
00001c70: DUP1
00001c71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c86: AND
00001c87: DUP2
00001c88: MSTORE
00001c89: PUSH1 0x20
00001c8b: ADD
00001c8c: SWAP1
00001c8d: DUP2
00001c8e: MSTORE
00001c8f: PUSH1 0x20
00001c91: ADD
00001c92: PUSH1 0x00
00001c94: KECCAK256
00001c95: PUSH1 0x00
00001c97: CALLER
00001c98: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cad: AND
00001cae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cc3: AND
00001cc4: DUP2
00001cc5: MSTORE
00001cc6: PUSH1 0x20
00001cc8: ADD
00001cc9: SWAP1
00001cca: DUP2
00001ccb: MSTORE
00001ccc: PUSH1 0x20
00001cce: ADD
00001ccf: PUSH1 0x00
00001cd1: KECCAK256
00001cd2: SLOAD
00001cd3: PUSH2 0x421a
00001cd6: SWAP1
00001cd7: SWAP2
00001cd8: SWAP1
00001cd9: PUSH4 0xffffffff
00001cde: AND
00001cdf: JUMP
00001ce0: JUMPDEST
00001ce1: PUSH1 0x06
00001ce3: PUSH1 0x00
00001ce5: DUP1
00001ce6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cfb: AND
00001cfc: DUP2
00001cfd: MSTORE
00001cfe: PUSH1 0x20
00001d00: ADD
00001d01: SWAP1
00001d02: DUP2
00001d03: MSTORE
00001d04: PUSH1 0x20
00001d06: ADD
00001d07: PUSH1 0x00
00001d09: KECCAK256
00001d0a: PUSH1 0x00
00001d0c: CALLER
00001d0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d22: AND
00001d23: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d38: AND
00001d39: DUP2
00001d3a: MSTORE
00001d3b: PUSH1 0x20
00001d3d: ADD
00001d3e: SWAP1
00001d3f: DUP2
00001d40: MSTORE
00001d41: PUSH1 0x20
00001d43: ADD
00001d44: PUSH1 0x00
00001d46: KECCAK256
00001d47: DUP2
00001d48: SWAP1
00001d49: SSTORE
00001d4a: POP
00001d4b: CALLER
00001d4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d61: AND
00001d62: PUSH2 0x08fc
00001d65: DUP3
00001d66: SWAP1
00001d67: DUP2
00001d68: ISZERO
00001d69: MUL
00001d6a: SWAP1
00001d6b: PUSH1 0x40
00001d6d: MLOAD
00001d6e: PUSH1 0x00
00001d70: PUSH1 0x40
00001d72: MLOAD
00001d73: DUP1
00001d74: DUP4
00001d75: SUB
00001d76: DUP2
00001d77: DUP6
00001d78: DUP9
00001d79: DUP9
00001d7a: CALL
00001d7b: SWAP4
00001d7c: POP
00001d7d: POP
00001d7e: POP
00001d7f: POP
00001d80: ISZERO
00001d81: DUP1
00001d82: ISZERO
00001d83: PUSH2 0x1d90
00001d86: JUMPI
00001d87: RETURNDATASIZE
00001d88: PUSH1 0x00
00001d8a: DUP1
00001d8b: RETURNDATACOPY
00001d8c: RETURNDATASIZE
00001d8d: PUSH1 0x00
00001d8f: REVERT
00001d90: JUMPDEST
00001d91: POP
00001d92: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567
00001db3: PUSH1 0x00
00001db5: CALLER
00001db6: DUP4
00001db7: PUSH1 0x06
00001db9: PUSH1 0x00
00001dbb: DUP1
00001dbc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001dd1: AND
00001dd2: DUP2
00001dd3: MSTORE
00001dd4: PUSH1 0x20
00001dd6: ADD
00001dd7: SWAP1
00001dd8: DUP2
00001dd9: MSTORE
00001dda: PUSH1 0x20
00001ddc: ADD
00001ddd: PUSH1 0x00
00001ddf: KECCAK256
00001de0: PUSH1 0x00
00001de2: CALLER
00001de3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001df8: AND
00001df9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e0e: AND
00001e0f: DUP2
00001e10: MSTORE
00001e11: PUSH1 0x20
00001e13: ADD
00001e14: SWAP1
00001e15: DUP2
00001e16: MSTORE
00001e17: PUSH1 0x20
00001e19: ADD
00001e1a: PUSH1 0x00
00001e1c: KECCAK256
00001e1d: SLOAD
00001e1e: PUSH1 0x40
00001e20: MLOAD
00001e21: DUP1
00001e22: DUP6
00001e23: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e38: AND
00001e39: DUP2
00001e3a: MSTORE
00001e3b: PUSH1 0x20
00001e3d: ADD
00001e3e: DUP5
00001e3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e54: AND
00001e55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e6a: AND
00001e6b: DUP2
00001e6c: MSTORE
00001e6d: PUSH1 0x20
00001e6f: ADD
00001e70: DUP4
00001e71: DUP2
00001e72: MSTORE
00001e73: PUSH1 0x20
00001e75: ADD
00001e76: DUP3
00001e77: DUP2
00001e78: MSTORE
00001e79: PUSH1 0x20
00001e7b: ADD
00001e7c: SWAP5
00001e7d: POP
00001e7e: POP
00001e7f: POP
00001e80: POP
00001e81: POP
00001e82: PUSH1 0x40
00001e84: MLOAD
00001e85: DUP1
00001e86: SWAP2
00001e87: SUB
00001e88: SWAP1
00001e89: LOG1
00001e8a: POP
00001e8b: JUMP
00001e8c: JUMPDEST
00001e8d: PUSH1 0x00
00001e8f: DUP3
00001e90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ea5: AND
00001ea6: EQ
00001ea7: ISZERO
00001ea8: DUP1
00001ea9: ISZERO
00001eaa: PUSH2 0x1efc
00001ead: JUMPI
00001eae: POP
00001eaf: PUSH1 0x07
00001eb1: PUSH1 0x00
00001eb3: DUP4
00001eb4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ec9: AND
00001eca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001edf: AND
00001ee0: DUP2
00001ee1: MSTORE
00001ee2: PUSH1 0x20
00001ee4: ADD
00001ee5: SWAP1
00001ee6: DUP2
00001ee7: MSTORE
00001ee8: PUSH1 0x20
00001eea: ADD
00001eeb: PUSH1 0x00
00001eed: KECCAK256
00001eee: PUSH1 0x00
00001ef0: SWAP1
00001ef1: SLOAD
00001ef2: SWAP1
00001ef3: PUSH2 0x0100
00001ef6: EXP
00001ef7: SWAP1
00001ef8: DIV
00001ef9: PUSH1 0xff
00001efb: AND
00001efc: JUMPDEST
00001efd: ISZERO
00001efe: ISZERO
00001eff: PUSH2 0x1f07
00001f02: JUMPI
00001f03: PUSH1 0x00
00001f05: DUP1
00001f06: REVERT
00001f07: JUMPDEST
00001f08: PUSH1 0x08
00001f0a: PUSH1 0x00
00001f0c: CALLER
00001f0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f22: AND
00001f23: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f38: AND
00001f39: DUP2
00001f3a: MSTORE
00001f3b: PUSH1 0x20
00001f3d: ADD
00001f3e: SWAP1
00001f3f: DUP2
00001f40: MSTORE
00001f41: PUSH1 0x20
00001f43: ADD
00001f44: PUSH1 0x00
00001f46: KECCAK256
00001f47: PUSH1 0x00
00001f49: SWAP1
00001f4a: SLOAD
00001f4b: SWAP1
00001f4c: PUSH2 0x0100
00001f4f: EXP
00001f50: SWAP1
00001f51: DIV
00001f52: PUSH1 0xff
00001f54: AND
00001f55: ISZERO
00001f56: ISZERO
00001f57: PUSH2 0x1f5f
00001f5a: JUMPI
00001f5b: PUSH1 0x00
00001f5d: DUP1
00001f5e: REVERT
00001f5f: JUMPDEST
00001f60: PUSH2 0x1fee
00001f63: DUP2
00001f64: PUSH1 0x06
00001f66: PUSH1 0x00
00001f68: DUP6
00001f69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f7e: AND
00001f7f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f94: AND
00001f95: DUP2
00001f96: MSTORE
00001f97: PUSH1 0x20
00001f99: ADD
00001f9a: SWAP1
00001f9b: DUP2
00001f9c: MSTORE
00001f9d: PUSH1 0x20
00001f9f: ADD
00001fa0: PUSH1 0x00
00001fa2: KECCAK256
00001fa3: PUSH1 0x00
00001fa5: CALLER
00001fa6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fbb: AND
00001fbc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fd1: AND
00001fd2: DUP2
00001fd3: MSTORE
00001fd4: PUSH1 0x20
00001fd6: ADD
00001fd7: SWAP1
00001fd8: DUP2
00001fd9: MSTORE
00001fda: PUSH1 0x20
00001fdc: ADD
00001fdd: PUSH1 0x00
00001fdf: KECCAK256
00001fe0: SLOAD
00001fe1: PUSH2 0x3973
00001fe4: SWAP1
00001fe5: SWAP2
00001fe6: SWAP1
00001fe7: PUSH4 0xffffffff
00001fec: AND
00001fed: JUMP
00001fee: JUMPDEST
00001fef: PUSH1 0x06
00001ff1: PUSH1 0x00
00001ff3: DUP5
00001ff4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002009: AND
0000200a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000201f: AND
00002020: DUP2
00002021: MSTORE
00002022: PUSH1 0x20
00002024: ADD
00002025: SWAP1
00002026: DUP2
00002027: MSTORE
00002028: PUSH1 0x20
0000202a: ADD
0000202b: PUSH1 0x00
0000202d: KECCAK256
0000202e: PUSH1 0x00
00002030: CALLER
00002031: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002046: AND
00002047: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000205c: AND
0000205d: DUP2
0000205e: MSTORE
0000205f: PUSH1 0x20
00002061: ADD
00002062: SWAP1
00002063: DUP2
00002064: MSTORE
00002065: PUSH1 0x20
00002067: ADD
00002068: PUSH1 0x00
0000206a: KECCAK256
0000206b: DUP2
0000206c: SWAP1
0000206d: SSTORE
0000206e: POP
0000206f: DUP2
00002070: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002085: AND
00002086: PUSH4 0x23b872dd
0000208b: CALLER
0000208c: ADDRESS
0000208d: DUP5
0000208e: PUSH1 0x40
00002090: MLOAD
00002091: DUP5
00002092: PUSH4 0xffffffff
00002097: AND
00002098: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000020b6: MUL
000020b7: DUP2
000020b8: MSTORE
000020b9: PUSH1 0x04
000020bb: ADD
000020bc: DUP1
000020bd: DUP5
000020be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020d3: AND
000020d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020e9: AND
000020ea: DUP2
000020eb: MSTORE
000020ec: PUSH1 0x20
000020ee: ADD
000020ef: DUP4
000020f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002105: AND
00002106: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000211b: AND
0000211c: DUP2
0000211d: MSTORE
0000211e: PUSH1 0x20
00002120: ADD
00002121: DUP3
00002122: DUP2
00002123: MSTORE
00002124: PUSH1 0x20
00002126: ADD
00002127: SWAP4
00002128: POP
00002129: POP
0000212a: POP
0000212b: POP
0000212c: PUSH1 0x20
0000212e: PUSH1 0x40
00002130: MLOAD
00002131: DUP1
00002132: DUP4
00002133: SUB
00002134: DUP2
00002135: PUSH1 0x00
00002137: DUP8
00002138: DUP1
00002139: EXTCODESIZE
0000213a: ISZERO
0000213b: DUP1
0000213c: ISZERO
0000213d: PUSH2 0x2145
00002140: JUMPI
00002141: PUSH1 0x00
00002143: DUP1
00002144: REVERT
00002145: JUMPDEST
00002146: POP
00002147: GAS
00002148: CALL
00002149: ISZERO
0000214a: DUP1
0000214b: ISZERO
0000214c: PUSH2 0x2159
0000214f: JUMPI
00002150: RETURNDATASIZE
00002151: PUSH1 0x00
00002153: DUP1
00002154: RETURNDATACOPY
00002155: RETURNDATASIZE
00002156: PUSH1 0x00
00002158: REVERT
00002159: JUMPDEST
0000215a: POP
0000215b: POP
0000215c: POP
0000215d: POP
0000215e: PUSH1 0x40
00002160: MLOAD
00002161: RETURNDATASIZE
00002162: PUSH1 0x20
00002164: DUP2
00002165: LT
00002166: ISZERO
00002167: PUSH2 0x216f
0000216a: JUMPI
0000216b: PUSH1 0x00
0000216d: DUP1
0000216e: REVERT
0000216f: JUMPDEST
00002170: DUP2
00002171: ADD
00002172: SWAP1
00002173: DUP1
00002174: DUP1
00002175: MLOAD
00002176: SWAP1
00002177: PUSH1 0x20
00002179: ADD
0000217a: SWAP1
0000217b: SWAP3
0000217c: SWAP2
0000217d: SWAP1
0000217e: POP
0000217f: POP
00002180: POP
00002181: ISZERO
00002182: ISZERO
00002183: PUSH2 0x218b
00002186: JUMPI
00002187: PUSH1 0x00
00002189: DUP1
0000218a: REVERT
0000218b: JUMPDEST
0000218c: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
000021ad: DUP3
000021ae: CALLER
000021af: DUP4
000021b0: PUSH1 0x06
000021b2: PUSH1 0x00
000021b4: DUP8
000021b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021ca: AND
000021cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021e0: AND
000021e1: DUP2
000021e2: MSTORE
000021e3: PUSH1 0x20
000021e5: ADD
000021e6: SWAP1
000021e7: DUP2
000021e8: MSTORE
000021e9: PUSH1 0x20
000021eb: ADD
000021ec: PUSH1 0x00
000021ee: KECCAK256
000021ef: PUSH1 0x00
000021f1: CALLER
000021f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002207: AND
00002208: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000221d: AND
0000221e: DUP2
0000221f: MSTORE
00002220: PUSH1 0x20
00002222: ADD
00002223: SWAP1
00002224: DUP2
00002225: MSTORE
00002226: PUSH1 0x20
00002228: ADD
00002229: PUSH1 0x00
0000222b: KECCAK256
0000222c: SLOAD
0000222d: PUSH1 0x40
0000222f: MLOAD
00002230: DUP1
00002231: DUP6
00002232: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002247: AND
00002248: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000225d: AND
0000225e: DUP2
0000225f: MSTORE
00002260: PUSH1 0x20
00002262: ADD
00002263: DUP5
00002264: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002279: AND
0000227a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000228f: AND
00002290: DUP2
00002291: MSTORE
00002292: PUSH1 0x20
00002294: ADD
00002295: DUP4
00002296: DUP2
00002297: MSTORE
00002298: PUSH1 0x20
0000229a: ADD
0000229b: DUP3
0000229c: DUP2
0000229d: MSTORE
0000229e: PUSH1 0x20
000022a0: ADD
000022a1: SWAP5
000022a2: POP
000022a3: POP
000022a4: POP
000022a5: POP
000022a6: POP
000022a7: PUSH1 0x40
000022a9: MLOAD
000022aa: DUP1
000022ab: SWAP2
000022ac: SUB
000022ad: SWAP1
000022ae: LOG1
000022af: POP
000022b0: POP
000022b1: JUMP
000022b2: JUMPDEST
000022b3: PUSH1 0x06
000022b5: PUSH1 0x20
000022b7: MSTORE
000022b8: DUP2
000022b9: PUSH1 0x00
000022bb: MSTORE
000022bc: PUSH1 0x40
000022be: PUSH1 0x00
000022c0: KECCAK256
000022c1: PUSH1 0x20
000022c3: MSTORE
000022c4: DUP1
000022c5: PUSH1 0x00
000022c7: MSTORE
000022c8: PUSH1 0x40
000022ca: PUSH1 0x00
000022cc: KECCAK256
000022cd: PUSH1 0x00
000022cf: SWAP2
000022d0: POP
000022d1: SWAP2
000022d2: POP
000022d3: POP
000022d4: SLOAD
000022d5: DUP2
000022d6: JUMP
000022d7: JUMPDEST
000022d8: PUSH1 0x00
000022da: DUP1
000022db: SWAP1
000022dc: SLOAD
000022dd: SWAP1
000022de: PUSH2 0x0100
000022e1: EXP
000022e2: SWAP1
000022e3: DIV
000022e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022f9: AND
000022fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000230f: AND
00002310: CALLER
00002311: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002326: AND
00002327: EQ
00002328: ISZERO
00002329: ISZERO
0000232a: PUSH2 0x2332
0000232d: JUMPI
0000232e: PUSH1 0x00
00002330: DUP1
00002331: REVERT
00002332: JUMPDEST
00002333: DUP1
00002334: PUSH1 0x03
00002336: DUP2
00002337: SWAP1
00002338: SSTORE
00002339: POP
0000233a: POP
0000233b: JUMP
0000233c: JUMPDEST
0000233d: PUSH1 0x03
0000233f: SLOAD
00002340: DUP2
00002341: JUMP
00002342: JUMPDEST
00002343: PUSH1 0x00
00002345: DUP1
00002346: SWAP1
00002347: SLOAD
00002348: SWAP1
00002349: PUSH2 0x0100
0000234c: EXP
0000234d: SWAP1
0000234e: DIV
0000234f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002364: AND
00002365: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000237a: AND
0000237b: CALLER
0000237c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002391: AND
00002392: EQ
00002393: ISZERO
00002394: ISZERO
00002395: PUSH2 0x239d
00002398: JUMPI
00002399: PUSH1 0x00
0000239b: DUP1
0000239c: REVERT
0000239d: JUMPDEST
0000239e: PUSH1 0x04
000023a0: SLOAD
000023a1: DUP2
000023a2: GT
000023a3: ISZERO
000023a4: ISZERO
000023a5: ISZERO
000023a6: PUSH2 0x23ae
000023a9: JUMPI
000023aa: PUSH1 0x00
000023ac: DUP1
000023ad: REVERT
000023ae: JUMPDEST
000023af: DUP1
000023b0: PUSH1 0x05
000023b2: DUP2
000023b3: SWAP1
000023b4: SSTORE
000023b5: POP
000023b6: POP
000023b7: JUMP
000023b8: JUMPDEST
000023b9: PUSH1 0x01
000023bb: PUSH1 0x00
000023bd: SWAP1
000023be: SLOAD
000023bf: SWAP1
000023c0: PUSH2 0x0100
000023c3: EXP
000023c4: SWAP1
000023c5: DIV
000023c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023db: AND
000023dc: DUP2
000023dd: JUMP
000023de: JUMPDEST
000023df: PUSH1 0x00
000023e1: DUP1
000023e2: SWAP1
000023e3: SLOAD
000023e4: SWAP1
000023e5: PUSH2 0x0100
000023e8: EXP
000023e9: SWAP1
000023ea: DIV
000023eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002400: AND
00002401: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002416: AND
00002417: CALLER
00002418: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000242d: AND
0000242e: EQ
0000242f: ISZERO
00002430: ISZERO
00002431: PUSH2 0x2439
00002434: JUMPI
00002435: PUSH1 0x00
00002437: DUP1
00002438: REVERT
00002439: JUMPDEST
0000243a: PUSH1 0x00
0000243c: DUP2
0000243d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002452: AND
00002453: EQ
00002454: ISZERO
00002455: DUP1
00002456: ISZERO
00002457: PUSH2 0x24a9
0000245a: JUMPI
0000245b: POP
0000245c: PUSH1 0x07
0000245e: PUSH1 0x00
00002460: DUP3
00002461: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002476: AND
00002477: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000248c: AND
0000248d: DUP2
0000248e: MSTORE
0000248f: PUSH1 0x20
00002491: ADD
00002492: SWAP1
00002493: DUP2
00002494: MSTORE
00002495: PUSH1 0x20
00002497: ADD
00002498: PUSH1 0x00
0000249a: KECCAK256
0000249b: PUSH1 0x00
0000249d: SWAP1
0000249e: SLOAD
0000249f: SWAP1
000024a0: PUSH2 0x0100
000024a3: EXP
000024a4: SWAP1
000024a5: DIV
000024a6: PUSH1 0xff
000024a8: AND
000024a9: JUMPDEST
000024aa: ISZERO
000024ab: ISZERO
000024ac: PUSH2 0x24b4
000024af: JUMPI
000024b0: PUSH1 0x00
000024b2: DUP1
000024b3: REVERT
000024b4: JUMPDEST
000024b5: PUSH1 0x00
000024b7: PUSH1 0x07
000024b9: PUSH1 0x00
000024bb: DUP4
000024bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024d1: AND
000024d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024e7: AND
000024e8: DUP2
000024e9: MSTORE
000024ea: PUSH1 0x20
000024ec: ADD
000024ed: SWAP1
000024ee: DUP2
000024ef: MSTORE
000024f0: PUSH1 0x20
000024f2: ADD
000024f3: PUSH1 0x00
000024f5: KECCAK256
000024f6: PUSH1 0x00
000024f8: PUSH2 0x0100
000024fb: EXP
000024fc: DUP2
000024fd: SLOAD
000024fe: DUP2
000024ff: PUSH1 0xff
00002501: MUL
00002502: NOT
00002503: AND
00002504: SWAP1
00002505: DUP4
00002506: ISZERO
00002507: ISZERO
00002508: MUL
00002509: OR
0000250a: SWAP1
0000250b: SSTORE
0000250c: POP
0000250d: POP
0000250e: JUMP
0000250f: JUMPDEST
00002510: PUSH1 0x00
00002512: PUSH1 0x08
00002514: PUSH1 0x00
00002516: DUP9
00002517: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000252c: AND
0000252d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002542: AND
00002543: DUP2
00002544: MSTORE
00002545: PUSH1 0x20
00002547: ADD
00002548: SWAP1
00002549: DUP2
0000254a: MSTORE
0000254b: PUSH1 0x20
0000254d: ADD
0000254e: PUSH1 0x00
00002550: KECCAK256
00002551: PUSH1 0x00
00002553: SWAP1
00002554: SLOAD
00002555: SWAP1
00002556: PUSH2 0x0100
00002559: EXP
0000255a: SWAP1
0000255b: DIV
0000255c: PUSH1 0xff
0000255e: AND
0000255f: DUP1
00002560: ISZERO
00002561: PUSH2 0x25b3
00002564: JUMPI
00002565: POP
00002566: PUSH1 0x08
00002568: PUSH1 0x00
0000256a: DUP4
0000256b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002580: AND
00002581: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002596: AND
00002597: DUP2
00002598: MSTORE
00002599: PUSH1 0x20
0000259b: ADD
0000259c: SWAP1
0000259d: DUP2
0000259e: MSTORE
0000259f: PUSH1 0x20
000025a1: ADD
000025a2: PUSH1 0x00
000025a4: KECCAK256
000025a5: PUSH1 0x00
000025a7: SWAP1
000025a8: SLOAD
000025a9: SWAP1
000025aa: PUSH2 0x0100
000025ad: EXP
000025ae: SWAP1
000025af: DIV
000025b0: PUSH1 0xff
000025b2: AND
000025b3: JUMPDEST
000025b4: ISZERO
000025b5: ISZERO
000025b6: PUSH2 0x25be
000025b9: JUMPI
000025ba: PUSH1 0x00
000025bc: DUP1
000025bd: REVERT
000025be: JUMPDEST
000025bf: PUSH1 0x07
000025c1: PUSH1 0x00
000025c3: DUP15
000025c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025d9: AND
000025da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025ef: AND
000025f0: DUP2
000025f1: MSTORE
000025f2: PUSH1 0x20
000025f4: ADD
000025f5: SWAP1
000025f6: DUP2
000025f7: MSTORE
000025f8: PUSH1 0x20
000025fa: ADD
000025fb: PUSH1 0x00
000025fd: KECCAK256
000025fe: PUSH1 0x00
00002600: SWAP1
00002601: SLOAD
00002602: SWAP1
00002603: PUSH2 0x0100
00002606: EXP
00002607: SWAP1
00002608: DIV
00002609: PUSH1 0xff
0000260b: AND
0000260c: DUP1
0000260d: ISZERO
0000260e: PUSH2 0x2660
00002611: JUMPI
00002612: POP
00002613: PUSH1 0x07
00002615: PUSH1 0x00
00002617: DUP13
00002618: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000262d: AND
0000262e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002643: AND
00002644: DUP2
00002645: MSTORE
00002646: PUSH1 0x20
00002648: ADD
00002649: SWAP1
0000264a: DUP2
0000264b: MSTORE
0000264c: PUSH1 0x20
0000264e: ADD
0000264f: PUSH1 0x00
00002651: KECCAK256
00002652: PUSH1 0x00
00002654: SWAP1
00002655: SLOAD
00002656: SWAP1
00002657: PUSH2 0x0100
0000265a: EXP
0000265b: SWAP1
0000265c: DIV
0000265d: PUSH1 0xff
0000265f: AND
00002660: JUMPDEST
00002661: ISZERO
00002662: ISZERO
00002663: PUSH2 0x266b
00002666: JUMPI
00002667: PUSH1 0x00
00002669: DUP1
0000266a: REVERT
0000266b: JUMPDEST
0000266c: DUP3
0000266d: PUSH1 0x06
0000266f: PUSH1 0x00
00002671: DUP16
00002672: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002687: AND
00002688: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000269d: AND
0000269e: DUP2
0000269f: MSTORE
000026a0: PUSH1 0x20
000026a2: ADD
000026a3: SWAP1
000026a4: DUP2
000026a5: MSTORE
000026a6: PUSH1 0x20
000026a8: ADD
000026a9: PUSH1 0x00
000026ab: KECCAK256
000026ac: PUSH1 0x00
000026ae: DUP5
000026af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026c4: AND
000026c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026da: AND
000026db: DUP2
000026dc: MSTORE
000026dd: PUSH1 0x20
000026df: ADD
000026e0: SWAP1
000026e1: DUP2
000026e2: MSTORE
000026e3: PUSH1 0x20
000026e5: ADD
000026e6: PUSH1 0x00
000026e8: KECCAK256
000026e9: SLOAD
000026ea: LT
000026eb: ISZERO
000026ec: ISZERO
000026ed: ISZERO
000026ee: PUSH2 0x26f6
000026f1: JUMPI
000026f2: PUSH1 0x00
000026f4: DUP1
000026f5: REVERT
000026f6: JUMPDEST
000026f7: DUP3
000026f8: PUSH2 0x2709
000026fb: DUP15
000026fc: DUP15
000026fd: DUP15
000026fe: DUP15
000026ff: DUP15
00002700: DUP15
00002701: DUP15
00002702: DUP15
00002703: DUP15
00002704: DUP15
00002705: PUSH2 0x33c9
00002708: JUMP
00002709: JUMPDEST
0000270a: LT
0000270b: ISZERO
0000270c: SWAP1
0000270d: POP
0000270e: SWAP13
0000270f: SWAP12
00002710: POP
00002711: POP
00002712: POP
00002713: POP
00002714: POP
00002715: POP
00002716: POP
00002717: POP
00002718: POP
00002719: POP
0000271a: POP
0000271b: POP
0000271c: JUMP
0000271d: JUMPDEST
0000271e: PUSH1 0x00
00002720: DUP1
00002721: SWAP1
00002722: SLOAD
00002723: SWAP1
00002724: PUSH2 0x0100
00002727: EXP
00002728: SWAP1
00002729: DIV
0000272a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000273f: AND
00002740: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002755: AND
00002756: CALLER
00002757: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000276c: AND
0000276d: EQ
0000276e: ISZERO
0000276f: ISZERO
00002770: PUSH2 0x2778
00002773: JUMPI
00002774: PUSH1 0x00
00002776: DUP1
00002777: REVERT
00002778: JUMPDEST
00002779: PUSH1 0x00
0000277b: DUP2
0000277c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002791: AND
00002792: EQ
00002793: ISZERO
00002794: ISZERO
00002795: ISZERO
00002796: PUSH2 0x279e
00002799: JUMPI
0000279a: PUSH1 0x00
0000279c: DUP1
0000279d: REVERT
0000279e: JUMPDEST
0000279f: DUP1
000027a0: PUSH1 0x01
000027a2: PUSH1 0x00
000027a4: PUSH2 0x0100
000027a7: EXP
000027a8: DUP2
000027a9: SLOAD
000027aa: DUP2
000027ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027c0: MUL
000027c1: NOT
000027c2: AND
000027c3: SWAP1
000027c4: DUP4
000027c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027da: AND
000027db: MUL
000027dc: OR
000027dd: SWAP1
000027de: SSTORE
000027df: POP
000027e0: POP
000027e1: JUMP
000027e2: JUMPDEST
000027e3: PUSH1 0x05
000027e5: SLOAD
000027e6: DUP2
000027e7: JUMP
000027e8: JUMPDEST
000027e9: PUSH1 0x00
000027eb: DUP1
000027ec: SWAP1
000027ed: SLOAD
000027ee: SWAP1
000027ef: PUSH2 0x0100
000027f2: EXP
000027f3: SWAP1
000027f4: DIV
000027f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000280a: AND
0000280b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002820: AND
00002821: CALLER
00002822: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002837: AND
00002838: EQ
00002839: ISZERO
0000283a: ISZERO
0000283b: PUSH2 0x2843
0000283e: JUMPI
0000283f: PUSH1 0x00
00002841: DUP1
00002842: REVERT
00002843: JUMPDEST
00002844: PUSH1 0x05
00002846: SLOAD
00002847: DUP2
00002848: LT
00002849: ISZERO
0000284a: ISZERO
0000284b: ISZERO
0000284c: PUSH2 0x2854
0000284f: JUMPI
00002850: PUSH1 0x00
00002852: DUP1
00002853: REVERT
00002854: JUMPDEST
00002855: DUP1
00002856: PUSH1 0x04
00002858: DUP2
00002859: SWAP1
0000285a: SSTORE
0000285b: POP
0000285c: POP
0000285d: JUMP
0000285e: JUMPDEST
0000285f: PUSH1 0x00
00002861: DUP1
00002862: SWAP1
00002863: SLOAD
00002864: SWAP1
00002865: PUSH2 0x0100
00002868: EXP
00002869: SWAP1
0000286a: DIV
0000286b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002880: AND
00002881: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002896: AND
00002897: CALLER
00002898: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028ad: AND
000028ae: EQ
000028af: ISZERO
000028b0: ISZERO
000028b1: PUSH2 0x28b9
000028b4: JUMPI
000028b5: PUSH1 0x00
000028b7: DUP1
000028b8: REVERT
000028b9: JUMPDEST
000028ba: PUSH1 0x00
000028bc: DUP2
000028bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028d2: AND
000028d3: EQ
000028d4: ISZERO
000028d5: DUP1
000028d6: ISZERO
000028d7: PUSH2 0x292d
000028da: JUMPI
000028db: POP
000028dc: DUP1
000028dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028f2: AND
000028f3: PUSH1 0x00
000028f5: DUP1
000028f6: SWAP1
000028f7: SLOAD
000028f8: SWAP1
000028f9: PUSH2 0x0100
000028fc: EXP
000028fd: SWAP1
000028fe: DIV
000028ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002914: AND
00002915: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000292a: AND
0000292b: EQ
0000292c: ISZERO
0000292d: JUMPDEST
0000292e: ISZERO
0000292f: ISZERO
00002930: PUSH2 0x2938
00002933: JUMPI
00002934: PUSH1 0x00
00002936: DUP1
00002937: REVERT
00002938: JUMPDEST
00002939: DUP1
0000293a: PUSH1 0x00
0000293c: DUP1
0000293d: PUSH2 0x0100
00002940: EXP
00002941: DUP2
00002942: SLOAD
00002943: DUP2
00002944: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002959: MUL
0000295a: NOT
0000295b: AND
0000295c: SWAP1
0000295d: DUP4
0000295e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002973: AND
00002974: MUL
00002975: OR
00002976: SWAP1
00002977: SSTORE
00002978: POP
00002979: POP
0000297a: JUMP
0000297b: JUMPDEST
0000297c: PUSH1 0x00
0000297e: DUP1
0000297f: SWAP1
00002980: SLOAD
00002981: SWAP1
00002982: PUSH2 0x0100
00002985: EXP
00002986: SWAP1
00002987: DIV
00002988: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000299d: AND
0000299e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029b3: AND
000029b4: CALLER
000029b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029ca: AND
000029cb: EQ
000029cc: ISZERO
000029cd: ISZERO
000029ce: PUSH2 0x29d6
000029d1: JUMPI
000029d2: PUSH1 0x00
000029d4: DUP1
000029d5: REVERT
000029d6: JUMPDEST
000029d7: PUSH1 0x00
000029d9: DUP2
000029da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029ef: AND
000029f0: EQ
000029f1: ISZERO
000029f2: DUP1
000029f3: ISZERO
000029f4: PUSH2 0x2a47
000029f7: JUMPI
000029f8: POP
000029f9: PUSH1 0x07
000029fb: PUSH1 0x00
000029fd: DUP3
000029fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a13: AND
00002a14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a29: AND
00002a2a: DUP2
00002a2b: MSTORE
00002a2c: PUSH1 0x20
00002a2e: ADD
00002a2f: SWAP1
00002a30: DUP2
00002a31: MSTORE
00002a32: PUSH1 0x20
00002a34: ADD
00002a35: PUSH1 0x00
00002a37: KECCAK256
00002a38: PUSH1 0x00
00002a3a: SWAP1
00002a3b: SLOAD
00002a3c: SWAP1
00002a3d: PUSH2 0x0100
00002a40: EXP
00002a41: SWAP1
00002a42: DIV
00002a43: PUSH1 0xff
00002a45: AND
00002a46: ISZERO
00002a47: JUMPDEST
00002a48: ISZERO
00002a49: ISZERO
00002a4a: PUSH2 0x2a52
00002a4d: JUMPI
00002a4e: PUSH1 0x00
00002a50: DUP1
00002a51: REVERT
00002a52: JUMPDEST
00002a53: PUSH1 0x01
00002a55: PUSH1 0x07
00002a57: PUSH1 0x00
00002a59: DUP4
00002a5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a6f: AND
00002a70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a85: AND
00002a86: DUP2
00002a87: MSTORE
00002a88: PUSH1 0x20
00002a8a: ADD
00002a8b: SWAP1
00002a8c: DUP2
00002a8d: MSTORE
00002a8e: PUSH1 0x20
00002a90: ADD
00002a91: PUSH1 0x00
00002a93: KECCAK256
00002a94: PUSH1 0x00
00002a96: PUSH2 0x0100
00002a99: EXP
00002a9a: DUP2
00002a9b: SLOAD
00002a9c: DUP2
00002a9d: PUSH1 0xff
00002a9f: MUL
00002aa0: NOT
00002aa1: AND
00002aa2: SWAP1
00002aa3: DUP4
00002aa4: ISZERO
00002aa5: ISZERO
00002aa6: MUL
00002aa7: OR
00002aa8: SWAP1
00002aa9: SSTORE
00002aaa: POP
00002aab: POP
00002aac: JUMP
00002aad: JUMPDEST
00002aae: PUSH1 0x00
00002ab0: DUP3
00002ab1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ac6: AND
00002ac7: EQ
00002ac8: ISZERO
00002ac9: ISZERO
00002aca: ISZERO
00002acb: PUSH2 0x2ad3
00002ace: JUMPI
00002acf: PUSH1 0x00
00002ad1: DUP1
00002ad2: REVERT
00002ad3: JUMPDEST
00002ad4: DUP1
00002ad5: PUSH1 0x06
00002ad7: PUSH1 0x00
00002ad9: DUP5
00002ada: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002aef: AND
00002af0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b05: AND
00002b06: DUP2
00002b07: MSTORE
00002b08: PUSH1 0x20
00002b0a: ADD
00002b0b: SWAP1
00002b0c: DUP2
00002b0d: MSTORE
00002b0e: PUSH1 0x20
00002b10: ADD
00002b11: PUSH1 0x00
00002b13: KECCAK256
00002b14: PUSH1 0x00
00002b16: CALLER
00002b17: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b2c: AND
00002b2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b42: AND
00002b43: DUP2
00002b44: MSTORE
00002b45: PUSH1 0x20
00002b47: ADD
00002b48: SWAP1
00002b49: DUP2
00002b4a: MSTORE
00002b4b: PUSH1 0x20
00002b4d: ADD
00002b4e: PUSH1 0x00
00002b50: KECCAK256
00002b51: SLOAD
00002b52: LT
00002b53: ISZERO
00002b54: ISZERO
00002b55: ISZERO
00002b56: PUSH2 0x2b5e
00002b59: JUMPI
00002b5a: PUSH1 0x00
00002b5c: DUP1
00002b5d: REVERT
00002b5e: JUMPDEST
00002b5f: PUSH2 0x2bed
00002b62: DUP2
00002b63: PUSH1 0x06
00002b65: PUSH1 0x00
00002b67: DUP6
00002b68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b7d: AND
00002b7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b93: AND
00002b94: DUP2
00002b95: MSTORE
00002b96: PUSH1 0x20
00002b98: ADD
00002b99: SWAP1
00002b9a: DUP2
00002b9b: MSTORE
00002b9c: PUSH1 0x20
00002b9e: ADD
00002b9f: PUSH1 0x00
00002ba1: KECCAK256
00002ba2: PUSH1 0x00
00002ba4: CALLER
00002ba5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002bba: AND
00002bbb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002bd0: AND
00002bd1: DUP2
00002bd2: MSTORE
00002bd3: PUSH1 0x20
00002bd5: ADD
00002bd6: SWAP1
00002bd7: DUP2
00002bd8: MSTORE
00002bd9: PUSH1 0x20
00002bdb: ADD
00002bdc: PUSH1 0x00
00002bde: KECCAK256
00002bdf: SLOAD
00002be0: PUSH2 0x421a
00002be3: SWAP1
00002be4: SWAP2
00002be5: SWAP1
00002be6: PUSH4 0xffffffff
00002beb: AND
00002bec: JUMP
00002bed: JUMPDEST
00002bee: PUSH1 0x06
00002bf0: PUSH1 0x00
00002bf2: DUP5
00002bf3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c08: AND
00002c09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c1e: AND
00002c1f: DUP2
00002c20: MSTORE
00002c21: PUSH1 0x20
00002c23: ADD
00002c24: SWAP1
00002c25: DUP2
00002c26: MSTORE
00002c27: PUSH1 0x20
00002c29: ADD
00002c2a: PUSH1 0x00
00002c2c: KECCAK256
00002c2d: PUSH1 0x00
00002c2f: CALLER
00002c30: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c45: AND
00002c46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c5b: AND
00002c5c: DUP2
00002c5d: MSTORE
00002c5e: PUSH1 0x20
00002c60: ADD
00002c61: SWAP1
00002c62: DUP2
00002c63: MSTORE
00002c64: PUSH1 0x20
00002c66: ADD
00002c67: PUSH1 0x00
00002c69: KECCAK256
00002c6a: DUP2
00002c6b: SWAP1
00002c6c: SSTORE
00002c6d: POP
00002c6e: DUP2
00002c6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c84: AND
00002c85: PUSH4 0xa9059cbb
00002c8a: CALLER
00002c8b: DUP4
00002c8c: PUSH1 0x40
00002c8e: MLOAD
00002c8f: DUP4
00002c90: PUSH4 0xffffffff
00002c95: AND
00002c96: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00002cb4: MUL
00002cb5: DUP2
00002cb6: MSTORE
00002cb7: PUSH1 0x04
00002cb9: ADD
00002cba: DUP1
00002cbb: DUP4
00002cbc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002cd1: AND
00002cd2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ce7: AND
00002ce8: DUP2
00002ce9: MSTORE
00002cea: PUSH1 0x20
00002cec: ADD
00002ced: DUP3
00002cee: DUP2
00002cef: MSTORE
00002cf0: PUSH1 0x20
00002cf2: ADD
00002cf3: SWAP3
00002cf4: POP
00002cf5: POP
00002cf6: POP
00002cf7: PUSH1 0x20
00002cf9: PUSH1 0x40
00002cfb: MLOAD
00002cfc: DUP1
00002cfd: DUP4
00002cfe: SUB
00002cff: DUP2
00002d00: PUSH1 0x00
00002d02: DUP8
00002d03: DUP1
00002d04: EXTCODESIZE
00002d05: ISZERO
00002d06: DUP1
00002d07: ISZERO
00002d08: PUSH2 0x2d10
00002d0b: JUMPI
00002d0c: PUSH1 0x00
00002d0e: DUP1
00002d0f: REVERT
00002d10: JUMPDEST
00002d11: POP
00002d12: GAS
00002d13: CALL
00002d14: ISZERO
00002d15: DUP1
00002d16: ISZERO
00002d17: PUSH2 0x2d24
00002d1a: JUMPI
00002d1b: RETURNDATASIZE
00002d1c: PUSH1 0x00
00002d1e: DUP1
00002d1f: RETURNDATACOPY
00002d20: RETURNDATASIZE
00002d21: PUSH1 0x00
00002d23: REVERT
00002d24: JUMPDEST
00002d25: POP
00002d26: POP
00002d27: POP
00002d28: POP
00002d29: PUSH1 0x40
00002d2b: MLOAD
00002d2c: RETURNDATASIZE
00002d2d: PUSH1 0x20
00002d2f: DUP2
00002d30: LT
00002d31: ISZERO
00002d32: PUSH2 0x2d3a
00002d35: JUMPI
00002d36: PUSH1 0x00
00002d38: DUP1
00002d39: REVERT
00002d3a: JUMPDEST
00002d3b: DUP2
00002d3c: ADD
00002d3d: SWAP1
00002d3e: DUP1
00002d3f: DUP1
00002d40: MLOAD
00002d41: SWAP1
00002d42: PUSH1 0x20
00002d44: ADD
00002d45: SWAP1
00002d46: SWAP3
00002d47: SWAP2
00002d48: SWAP1
00002d49: POP
00002d4a: POP
00002d4b: POP
00002d4c: ISZERO
00002d4d: ISZERO
00002d4e: PUSH2 0x2d56
00002d51: JUMPI
00002d52: PUSH1 0x00
00002d54: DUP1
00002d55: REVERT
00002d56: JUMPDEST
00002d57: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567
00002d78: DUP3
00002d79: CALLER
00002d7a: DUP4
00002d7b: PUSH1 0x06
00002d7d: PUSH1 0x00
00002d7f: DUP8
00002d80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d95: AND
00002d96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002dab: AND
00002dac: DUP2
00002dad: MSTORE
00002dae: PUSH1 0x20
00002db0: ADD
00002db1: SWAP1
00002db2: DUP2
00002db3: MSTORE
00002db4: PUSH1 0x20
00002db6: ADD
00002db7: PUSH1 0x00
00002db9: KECCAK256
00002dba: PUSH1 0x00
00002dbc: CALLER
00002dbd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002dd2: AND
00002dd3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002de8: AND
00002de9: DUP2
00002dea: MSTORE
00002deb: PUSH1 0x20
00002ded: ADD
00002dee: SWAP1
00002def: DUP2
00002df0: MSTORE
00002df1: PUSH1 0x20
00002df3: ADD
00002df4: PUSH1 0x00
00002df6: KECCAK256
00002df7: SLOAD
00002df8: PUSH1 0x40
00002dfa: MLOAD
00002dfb: DUP1
00002dfc: DUP6
00002dfd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e12: AND
00002e13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e28: AND
00002e29: DUP2
00002e2a: MSTORE
00002e2b: PUSH1 0x20
00002e2d: ADD
00002e2e: DUP5
00002e2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e44: AND
00002e45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e5a: AND
00002e5b: DUP2
00002e5c: MSTORE
00002e5d: PUSH1 0x20
00002e5f: ADD
00002e60: DUP4
00002e61: DUP2
00002e62: MSTORE
00002e63: PUSH1 0x20
00002e65: ADD
00002e66: DUP3
00002e67: DUP2
00002e68: MSTORE
00002e69: PUSH1 0x20
00002e6b: ADD
00002e6c: SWAP5
00002e6d: POP
00002e6e: POP
00002e6f: POP
00002e70: POP
00002e71: POP
00002e72: PUSH1 0x40
00002e74: MLOAD
00002e75: DUP1
00002e76: SWAP2
00002e77: SUB
00002e78: SWAP1
00002e79: LOG1
00002e7a: POP
00002e7b: POP
00002e7c: JUMP
00002e7d: JUMPDEST
00002e7e: PUSH1 0x00
00002e80: DUP1
00002e81: SWAP1
00002e82: SLOAD
00002e83: SWAP1
00002e84: PUSH2 0x0100
00002e87: EXP
00002e88: SWAP1
00002e89: DIV
00002e8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e9f: AND
00002ea0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002eb5: AND
00002eb6: CALLER
00002eb7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ecc: AND
00002ecd: EQ
00002ece: ISZERO
00002ecf: ISZERO
00002ed0: PUSH2 0x2ed8
00002ed3: JUMPI
00002ed4: PUSH1 0x00
00002ed6: DUP1
00002ed7: REVERT
00002ed8: JUMPDEST
00002ed9: PUSH1 0x00
00002edb: DUP2
00002edc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ef1: AND
00002ef2: EQ
00002ef3: ISZERO
00002ef4: DUP1
00002ef5: ISZERO
00002ef6: PUSH2 0x2f48
00002ef9: JUMPI
00002efa: POP
00002efb: PUSH1 0x08
00002efd: PUSH1 0x00
00002eff: DUP3
00002f00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f15: AND
00002f16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f2b: AND
00002f2c: DUP2
00002f2d: MSTORE
00002f2e: PUSH1 0x20
00002f30: ADD
00002f31: SWAP1
00002f32: DUP2
00002f33: MSTORE
00002f34: PUSH1 0x20
00002f36: ADD
00002f37: PUSH1 0x00
00002f39: KECCAK256
00002f3a: PUSH1 0x00
00002f3c: SWAP1
00002f3d: SLOAD
00002f3e: SWAP1
00002f3f: PUSH2 0x0100
00002f42: EXP
00002f43: SWAP1
00002f44: DIV
00002f45: PUSH1 0xff
00002f47: AND
00002f48: JUMPDEST
00002f49: ISZERO
00002f4a: ISZERO
00002f4b: PUSH2 0x2f53
00002f4e: JUMPI
00002f4f: PUSH1 0x00
00002f51: DUP1
00002f52: REVERT
00002f53: JUMPDEST
00002f54: PUSH1 0x00
00002f56: PUSH1 0x08
00002f58: PUSH1 0x00
00002f5a: DUP4
00002f5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f70: AND
00002f71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f86: AND
00002f87: DUP2
00002f88: MSTORE
00002f89: PUSH1 0x20
00002f8b: ADD
00002f8c: SWAP1
00002f8d: DUP2
00002f8e: MSTORE
00002f8f: PUSH1 0x20
00002f91: ADD
00002f92: PUSH1 0x00
00002f94: KECCAK256
00002f95: PUSH1 0x00
00002f97: PUSH2 0x0100
00002f9a: EXP
00002f9b: DUP2
00002f9c: SLOAD
00002f9d: DUP2
00002f9e: PUSH1 0xff
00002fa0: MUL
00002fa1: NOT
00002fa2: AND
00002fa3: SWAP1
00002fa4: DUP4
00002fa5: ISZERO
00002fa6: ISZERO
00002fa7: MUL
00002fa8: OR
00002fa9: SWAP1
00002faa: SSTORE
00002fab: POP
00002fac: POP
00002fad: JUMP
00002fae: JUMPDEST
00002faf: PUSH1 0x09
00002fb1: PUSH1 0x20
00002fb3: MSTORE
00002fb4: DUP2
00002fb5: PUSH1 0x00
00002fb7: MSTORE
00002fb8: PUSH1 0x40
00002fba: PUSH1 0x00
00002fbc: KECCAK256
00002fbd: PUSH1 0x20
00002fbf: MSTORE
00002fc0: DUP1
00002fc1: PUSH1 0x00
00002fc3: MSTORE
00002fc4: PUSH1 0x40
00002fc6: PUSH1 0x00
00002fc8: KECCAK256
00002fc9: PUSH1 0x00
00002fcb: SWAP2
00002fcc: POP
00002fcd: SWAP2
00002fce: POP
00002fcf: SWAP1
00002fd0: SLOAD
00002fd1: SWAP1
00002fd2: PUSH2 0x0100
00002fd5: EXP
00002fd6: SWAP1
00002fd7: DIV
00002fd8: PUSH1 0xff
00002fda: AND
00002fdb: DUP2
00002fdc: JUMP
00002fdd: JUMPDEST
00002fde: PUSH1 0x04
00002fe0: SLOAD
00002fe1: DUP2
00002fe2: JUMP
00002fe3: JUMPDEST
00002fe4: PUSH1 0x08
00002fe6: PUSH1 0x00
00002fe8: CALLER
00002fe9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ffe: AND
00002fff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003014: AND
00003015: DUP2
00003016: MSTORE
00003017: PUSH1 0x20
00003019: ADD
0000301a: SWAP1
0000301b: DUP2
0000301c: MSTORE
0000301d: PUSH1 0x20
0000301f: ADD
00003020: PUSH1 0x00
00003022: KECCAK256
00003023: PUSH1 0x00
00003025: SWAP1
00003026: SLOAD
00003027: SWAP1
00003028: PUSH2 0x0100
0000302b: EXP
0000302c: SWAP1
0000302d: DIV
0000302e: PUSH1 0xff
00003030: AND
00003031: ISZERO
00003032: ISZERO
00003033: PUSH2 0x303b
00003036: JUMPI
00003037: PUSH1 0x00
00003039: DUP1
0000303a: REVERT
0000303b: JUMPDEST
0000303c: PUSH2 0x30b4
0000303f: CALLVALUE
00003040: PUSH1 0x06
00003042: PUSH1 0x00
00003044: DUP1
00003045: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000305a: AND
0000305b: DUP2
0000305c: MSTORE
0000305d: PUSH1 0x20
0000305f: ADD
00003060: SWAP1
00003061: DUP2
00003062: MSTORE
00003063: PUSH1 0x20
00003065: ADD
00003066: PUSH1 0x00
00003068: KECCAK256
00003069: PUSH1 0x00
0000306b: CALLER
0000306c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003081: AND
00003082: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003097: AND
00003098: DUP2
00003099: MSTORE
0000309a: PUSH1 0x20
0000309c: ADD
0000309d: SWAP1
0000309e: DUP2
0000309f: MSTORE
000030a0: PUSH1 0x20
000030a2: ADD
000030a3: PUSH1 0x00
000030a5: KECCAK256
000030a6: SLOAD
000030a7: PUSH2 0x3973
000030aa: SWAP1
000030ab: SWAP2
000030ac: SWAP1
000030ad: PUSH4 0xffffffff
000030b2: AND
000030b3: JUMP
000030b4: JUMPDEST
000030b5: PUSH1 0x06
000030b7: PUSH1 0x00
000030b9: DUP1
000030ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000030cf: AND
000030d0: DUP2
000030d1: MSTORE
000030d2: PUSH1 0x20
000030d4: ADD
000030d5: SWAP1
000030d6: DUP2
000030d7: MSTORE
000030d8: PUSH1 0x20
000030da: ADD
000030db: PUSH1 0x00
000030dd: KECCAK256
000030de: PUSH1 0x00
000030e0: CALLER
000030e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000030f6: AND
000030f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000310c: AND
0000310d: DUP2
0000310e: MSTORE
0000310f: PUSH1 0x20
00003111: ADD
00003112: SWAP1
00003113: DUP2
00003114: MSTORE
00003115: PUSH1 0x20
00003117: ADD
00003118: PUSH1 0x00
0000311a: KECCAK256
0000311b: DUP2
0000311c: SWAP1
0000311d: SSTORE
0000311e: POP
0000311f: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
00003140: PUSH1 0x00
00003142: CALLER
00003143: CALLVALUE
00003144: PUSH1 0x06
00003146: PUSH1 0x00
00003148: DUP1
00003149: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000315e: AND
0000315f: DUP2
00003160: MSTORE
00003161: PUSH1 0x20
00003163: ADD
00003164: SWAP1
00003165: DUP2
00003166: MSTORE
00003167: PUSH1 0x20
00003169: ADD
0000316a: PUSH1 0x00
0000316c: KECCAK256
0000316d: PUSH1 0x00
0000316f: CALLER
00003170: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003185: AND
00003186: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000319b: AND
0000319c: DUP2
0000319d: MSTORE
0000319e: PUSH1 0x20
000031a0: ADD
000031a1: SWAP1
000031a2: DUP2
000031a3: MSTORE
000031a4: PUSH1 0x20
000031a6: ADD
000031a7: PUSH1 0x00
000031a9: KECCAK256
000031aa: SLOAD
000031ab: PUSH1 0x40
000031ad: MLOAD
000031ae: DUP1
000031af: DUP6
000031b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031c5: AND
000031c6: DUP2
000031c7: MSTORE
000031c8: PUSH1 0x20
000031ca: ADD
000031cb: DUP5
000031cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031e1: AND
000031e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031f7: AND
000031f8: DUP2
000031f9: MSTORE
000031fa: PUSH1 0x20
000031fc: ADD
000031fd: DUP4
000031fe: DUP2
000031ff: MSTORE
00003200: PUSH1 0x20
00003202: ADD
00003203: DUP3
00003204: DUP2
00003205: MSTORE
00003206: PUSH1 0x20
00003208: ADD
00003209: SWAP5
0000320a: POP
0000320b: POP
0000320c: POP
0000320d: POP
0000320e: POP
0000320f: PUSH1 0x40
00003211: MLOAD
00003212: DUP1
00003213: SWAP2
00003214: SUB
00003215: SWAP1
00003216: LOG1
00003217: JUMP
00003218: JUMPDEST
00003219: PUSH1 0x07
0000321b: PUSH1 0x20
0000321d: MSTORE
0000321e: DUP1
0000321f: PUSH1 0x00
00003221: MSTORE
00003222: PUSH1 0x40
00003224: PUSH1 0x00
00003226: KECCAK256
00003227: PUSH1 0x00
00003229: SWAP2
0000322a: POP
0000322b: SLOAD
0000322c: SWAP1
0000322d: PUSH2 0x0100
00003230: EXP
00003231: SWAP1
00003232: DIV
00003233: PUSH1 0xff
00003235: AND
00003236: DUP2
00003237: JUMP
00003238: JUMPDEST
00003239: PUSH1 0x00
0000323b: DUP1
0000323c: SWAP1
0000323d: SLOAD
0000323e: SWAP1
0000323f: PUSH2 0x0100
00003242: EXP
00003243: SWAP1
00003244: DIV
00003245: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000325a: AND
0000325b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003270: AND
00003271: CALLER
00003272: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003287: AND
00003288: EQ
00003289: ISZERO
0000328a: ISZERO
0000328b: PUSH2 0x3293
0000328e: JUMPI
0000328f: PUSH1 0x00
00003291: DUP1
00003292: REVERT
00003293: JUMPDEST
00003294: DUP1
00003295: PUSH1 0x02
00003297: PUSH1 0x00
00003299: PUSH2 0x0100
0000329c: EXP
0000329d: DUP2
0000329e: SLOAD
0000329f: DUP2
000032a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000032b5: MUL
000032b6: NOT
000032b7: AND
000032b8: SWAP1
000032b9: DUP4
000032ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000032cf: AND
000032d0: MUL
000032d1: OR
000032d2: SWAP1
000032d3: SSTORE
000032d4: POP
000032d5: POP
000032d6: JUMP
000032d7: JUMPDEST
000032d8: PUSH1 0x02
000032da: PUSH1 0x00
000032dc: SWAP1
000032dd: SLOAD
000032de: SWAP1
000032df: PUSH2 0x0100
000032e2: EXP
000032e3: SWAP1
000032e4: DIV
000032e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000032fa: AND
000032fb: DUP2
000032fc: JUMP
000032fd: JUMPDEST
000032fe: PUSH1 0x08
00003300: PUSH1 0x20
00003302: MSTORE
00003303: DUP1
00003304: PUSH1 0x00
00003306: MSTORE
00003307: PUSH1 0x40
00003309: PUSH1 0x00
0000330b: KECCAK256
0000330c: PUSH1 0x00
0000330e: SWAP2
0000330f: POP
00003310: SLOAD
00003311: SWAP1
00003312: PUSH2 0x0100
00003315: EXP
00003316: SWAP1
00003317: DIV
00003318: PUSH1 0xff
0000331a: AND
0000331b: DUP2
0000331c: JUMP
0000331d: JUMPDEST
0000331e: PUSH1 0x00
00003320: PUSH1 0x06
00003322: PUSH1 0x00
00003324: DUP5
00003325: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000333a: AND
0000333b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003350: AND
00003351: DUP2
00003352: MSTORE
00003353: PUSH1 0x20
00003355: ADD
00003356: SWAP1
00003357: DUP2
00003358: MSTORE
00003359: PUSH1 0x20
0000335b: ADD
0000335c: PUSH1 0x00
0000335e: KECCAK256
0000335f: PUSH1 0x00
00003361: DUP4
00003362: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003377: AND
00003378: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000338d: AND
0000338e: DUP2
0000338f: MSTORE
00003390: PUSH1 0x20
00003392: ADD
00003393: SWAP1
00003394: DUP2
00003395: MSTORE
00003396: PUSH1 0x20
00003398: ADD
00003399: PUSH1 0x00
0000339b: KECCAK256
0000339c: SLOAD
0000339d: SWAP1
0000339e: POP
0000339f: SWAP3
000033a0: SWAP2
000033a1: POP
000033a2: POP
000033a3: JUMP
000033a4: JUMPDEST
000033a5: PUSH1 0x00
000033a7: DUP1
000033a8: SWAP1
000033a9: SLOAD
000033aa: SWAP1
000033ab: PUSH2 0x0100
000033ae: EXP
000033af: SWAP1
000033b0: DIV
000033b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000033c6: AND
000033c7: DUP2
000033c8: JUMP
000033c9: JUMPDEST
000033ca: PUSH1 0x00
000033cc: DUP1
000033cd: PUSH1 0x08
000033cf: PUSH1 0x00
000033d1: DUP8
000033d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000033e7: AND
000033e8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000033fd: AND
000033fe: DUP2
000033ff: MSTORE
00003400: PUSH1 0x20
00003402: ADD
00003403: SWAP1
00003404: DUP2
00003405: MSTORE
00003406: PUSH1 0x20
00003408: ADD
00003409: PUSH1 0x00
0000340b: KECCAK256
0000340c: PUSH1 0x00
0000340e: SWAP1
0000340f: SLOAD
00003410: SWAP1
00003411: PUSH2 0x0100
00003414: EXP
00003415: SWAP1
00003416: DIV
00003417: PUSH1 0xff
00003419: AND
0000341a: ISZERO
0000341b: ISZERO
0000341c: PUSH2 0x3424
0000341f: JUMPI
00003420: PUSH1 0x00
00003422: DUP1
00003423: REVERT
00003424: JUMPDEST
00003425: PUSH1 0x07
00003427: PUSH1 0x00
00003429: DUP14
0000342a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000343f: AND
00003440: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003455: AND
00003456: DUP2
00003457: MSTORE
00003458: PUSH1 0x20
0000345a: ADD
0000345b: SWAP1
0000345c: DUP2
0000345d: MSTORE
0000345e: PUSH1 0x20
00003460: ADD
00003461: PUSH1 0x00
00003463: KECCAK256
00003464: PUSH1 0x00
00003466: SWAP1
00003467: SLOAD
00003468: SWAP1
00003469: PUSH2 0x0100
0000346c: EXP
0000346d: SWAP1
0000346e: DIV
0000346f: PUSH1 0xff
00003471: AND
00003472: DUP1
00003473: ISZERO
00003474: PUSH2 0x34c6
00003477: JUMPI
00003478: POP
00003479: PUSH1 0x07
0000347b: PUSH1 0x00
0000347d: DUP12
0000347e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003493: AND
00003494: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034a9: AND
000034aa: DUP2
000034ab: MSTORE
000034ac: PUSH1 0x20
000034ae: ADD
000034af: SWAP1
000034b0: DUP2
000034b1: MSTORE
000034b2: PUSH1 0x20
000034b4: ADD
000034b5: PUSH1 0x00
000034b7: KECCAK256
000034b8: PUSH1 0x00
000034ba: SWAP1
000034bb: SLOAD
000034bc: SWAP1
000034bd: PUSH2 0x0100
000034c0: EXP
000034c1: SWAP1
000034c2: DIV
000034c3: PUSH1 0xff
000034c5: AND
000034c6: JUMPDEST
000034c7: ISZERO
000034c8: ISZERO
000034c9: PUSH2 0x34d1
000034cc: JUMPI
000034cd: PUSH1 0x00
000034cf: DUP1
000034d0: REVERT
000034d1: JUMPDEST
000034d2: ADDRESS
000034d3: DUP13
000034d4: DUP13
000034d5: DUP13
000034d6: DUP13
000034d7: DUP13
000034d8: DUP13
000034d9: PUSH1 0x40
000034db: MLOAD
000034dc: DUP1
000034dd: DUP9
000034de: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034f3: AND
000034f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003509: AND
0000350a: PUSH13 0x01000000000000000000000000
00003518: MUL
00003519: DUP2
0000351a: MSTORE
0000351b: PUSH1 0x14
0000351d: ADD
0000351e: DUP8
0000351f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003534: AND
00003535: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000354a: AND
0000354b: PUSH13 0x01000000000000000000000000
00003559: MUL
0000355a: DUP2
0000355b: MSTORE
0000355c: PUSH1 0x14
0000355e: ADD
0000355f: DUP7
00003560: DUP2
00003561: MSTORE
00003562: PUSH1 0x20
00003564: ADD
00003565: DUP6
00003566: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000357b: AND
0000357c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003591: AND
00003592: PUSH13 0x01000000000000000000000000
000035a0: MUL
000035a1: DUP2
000035a2: MSTORE
000035a3: PUSH1 0x14
000035a5: ADD
000035a6: DUP5
000035a7: DUP2
000035a8: MSTORE
000035a9: PUSH1 0x20
000035ab: ADD
000035ac: DUP4
000035ad: DUP2
000035ae: MSTORE
000035af: PUSH1 0x20
000035b1: ADD
000035b2: DUP3
000035b3: DUP2
000035b4: MSTORE
000035b5: PUSH1 0x20
000035b7: ADD
000035b8: SWAP8
000035b9: POP
000035ba: POP
000035bb: POP
000035bc: POP
000035bd: POP
000035be: POP
000035bf: POP
000035c0: POP
000035c1: PUSH1 0x40
000035c3: MLOAD
000035c4: DUP1
000035c5: SWAP2
000035c6: SUB
000035c7: SWAP1
000035c8: KECCAK256
000035c9: SWAP1
000035ca: POP
000035cb: PUSH2 0x35d7
000035ce: DUP2
000035cf: DUP8
000035d0: DUP8
000035d1: DUP8
000035d2: DUP8
000035d3: PUSH2 0x3805
000035d6: JUMP
000035d7: JUMPDEST
000035d8: DUP1
000035d9: ISZERO
000035da: PUSH2 0x35e3
000035dd: JUMPI
000035de: POP
000035df: DUP8
000035e0: NUMBER
000035e1: GT
000035e2: ISZERO
000035e3: JUMPDEST
000035e4: ISZERO
000035e5: ISZERO
000035e6: PUSH2 0x35f2
000035e9: JUMPI
000035ea: PUSH1 0x00
000035ec: SWAP2
000035ed: POP
000035ee: PUSH2 0x37f6
000035f1: JUMP
000035f2: JUMPDEST
000035f3: PUSH2 0x368a
000035f6: DUP10
000035f7: PUSH2 0x367c
000035fa: PUSH1 0x06
000035fc: PUSH1 0x00
000035fe: DUP15
000035ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003614: AND
00003615: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000362a: AND
0000362b: DUP2
0000362c: MSTORE
0000362d: PUSH1 0x20
0000362f: ADD
00003630: SWAP1
00003631: DUP2
00003632: MSTORE
00003633: PUSH1 0x20
00003635: ADD
00003636: PUSH1 0x00
00003638: KECCAK256
00003639: PUSH1 0x00
0000363b: DUP11
0000363c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003651: AND
00003652: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003667: AND
00003668: DUP2
00003669: MSTORE
0000366a: PUSH1 0x20
0000366c: ADD
0000366d: SWAP1
0000366e: DUP2
0000366f: MSTORE
00003670: PUSH1 0x20
00003672: ADD
00003673: PUSH1 0x00
00003675: KECCAK256
00003676: SLOAD
00003677: DUP15
00003678: PUSH2 0x41c4
0000367b: JUMP
0000367c: JUMPDEST
0000367d: PUSH2 0x41ff
00003680: SWAP1
00003681: SWAP2
00003682: SWAP1
00003683: PUSH4 0xffffffff
00003688: AND
00003689: JUMP
0000368a: JUMPDEST
0000368b: PUSH2 0x36ec
0000368e: DUP13
0000368f: PUSH1 0x0a
00003691: PUSH1 0x00
00003693: DUP11
00003694: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000036a9: AND
000036aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000036bf: AND
000036c0: DUP2
000036c1: MSTORE
000036c2: PUSH1 0x20
000036c4: ADD
000036c5: SWAP1
000036c6: DUP2
000036c7: MSTORE
000036c8: PUSH1 0x20
000036ca: ADD
000036cb: PUSH1 0x00
000036cd: KECCAK256
000036ce: PUSH1 0x00
000036d0: DUP6
000036d1: PUSH1 0x00
000036d3: NOT
000036d4: AND
000036d5: PUSH1 0x00
000036d7: NOT
000036d8: AND
000036d9: DUP2
000036da: MSTORE
000036db: PUSH1 0x20
000036dd: ADD
000036de: SWAP1
000036df: DUP2
000036e0: MSTORE
000036e1: PUSH1 0x20
000036e3: ADD
000036e4: PUSH1 0x00
000036e6: KECCAK256
000036e7: SLOAD
000036e8: PUSH2 0x421a
000036eb: JUMP
000036ec: JUMPDEST
000036ed: LT
000036ee: ISZERO
000036ef: PUSH2 0x375b
000036f2: JUMPI
000036f3: PUSH2 0x3754
000036f6: DUP12
000036f7: PUSH1 0x0a
000036f9: PUSH1 0x00
000036fb: DUP10
000036fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003711: AND
00003712: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003727: AND
00003728: DUP2
00003729: MSTORE
0000372a: PUSH1 0x20
0000372c: ADD
0000372d: SWAP1
0000372e: DUP2
0000372f: MSTORE
00003730: PUSH1 0x20
00003732: ADD
00003733: PUSH1 0x00
00003735: KECCAK256
00003736: PUSH1 0x00
00003738: DUP5
00003739: PUSH1 0x00
0000373b: NOT
0000373c: AND
0000373d: PUSH1 0x00
0000373f: NOT
00003740: AND
00003741: DUP2
00003742: MSTORE
00003743: PUSH1 0x20
00003745: ADD
00003746: SWAP1
00003747: DUP2
00003748: MSTORE
00003749: PUSH1 0x20
0000374b: ADD
0000374c: PUSH1 0x00
0000374e: KECCAK256
0000374f: SLOAD
00003750: PUSH2 0x421a
00003753: JUMP
00003754: JUMPDEST
00003755: SWAP2
00003756: POP
00003757: PUSH2 0x37f6
0000375a: JUMP
0000375b: JUMPDEST
0000375c: PUSH2 0x37f3
0000375f: DUP10
00003760: PUSH2 0x37e5
00003763: PUSH1 0x06
00003765: PUSH1 0x00
00003767: DUP15
00003768: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000377d: AND
0000377e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003793: AND
00003794: DUP2
00003795: MSTORE
00003796: PUSH1 0x20
00003798: ADD
00003799: SWAP1
0000379a: DUP2
0000379b: MSTORE
0000379c: PUSH1 0x20
0000379e: ADD
0000379f: PUSH1 0x00
000037a1: KECCAK256
000037a2: PUSH1 0x00
000037a4: DUP11
000037a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000037ba: AND
000037bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000037d0: AND
000037d1: DUP2
000037d2: MSTORE
000037d3: PUSH1 0x20
000037d5: ADD
000037d6: SWAP1
000037d7: DUP2
000037d8: MSTORE
000037d9: PUSH1 0x20
000037db: ADD
000037dc: PUSH1 0x00
000037de: KECCAK256
000037df: SLOAD
000037e0: DUP15
000037e1: PUSH2 0x41c4
000037e4: JUMP
000037e5: JUMPDEST
000037e6: PUSH2 0x41ff
000037e9: SWAP1
000037ea: SWAP2
000037eb: SWAP1
000037ec: PUSH4 0xffffffff
000037f1: AND
000037f2: JUMP
000037f3: JUMPDEST
000037f4: SWAP2
000037f5: POP
000037f6: JUMPDEST
000037f7: POP
000037f8: SWAP11
000037f9: SWAP10
000037fa: POP
000037fb: POP
000037fc: POP
000037fd: POP
000037fe: POP
000037ff: POP
00003800: POP
00003801: POP
00003802: POP
00003803: POP
00003804: JUMP
00003805: JUMPDEST
00003806: PUSH1 0x00
00003808: PUSH1 0x09
0000380a: PUSH1 0x00
0000380c: DUP7
0000380d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003822: AND
00003823: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003838: AND
00003839: DUP2
0000383a: MSTORE
0000383b: PUSH1 0x20
0000383d: ADD
0000383e: SWAP1
0000383f: DUP2
00003840: MSTORE
00003841: PUSH1 0x20
00003843: ADD
00003844: PUSH1 0x00
00003846: KECCAK256
00003847: PUSH1 0x00
00003849: DUP8
0000384a: PUSH1 0x00
0000384c: NOT
0000384d: AND
0000384e: PUSH1 0x00
00003850: NOT
00003851: AND
00003852: DUP2
00003853: MSTORE
00003854: PUSH1 0x20
00003856: ADD
00003857: SWAP1
00003858: DUP2
00003859: MSTORE
0000385a: PUSH1 0x20
0000385c: ADD
0000385d: PUSH1 0x00
0000385f: KECCAK256
00003860: PUSH1 0x00
00003862: SWAP1
00003863: SLOAD
00003864: SWAP1
00003865: PUSH2 0x0100
00003868: EXP
00003869: SWAP1
0000386a: DIV
0000386b: PUSH1 0xff
0000386d: AND
0000386e: DUP1
0000386f: PUSH2 0x3968
00003872: JUMPI
00003873: POP
00003874: DUP5
00003875: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000388a: AND
0000388b: PUSH1 0x01
0000388d: DUP8
0000388e: PUSH1 0x40
00003890: MLOAD
00003891: DUP1
00003892: DUP1
00003893: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
000038b4: DUP2
000038b5: MSTORE
000038b6: POP
000038b7: PUSH1 0x1c
000038b9: ADD
000038ba: DUP3
000038bb: PUSH1 0x00
000038bd: NOT
000038be: AND
000038bf: PUSH1 0x00
000038c1: NOT
000038c2: AND
000038c3: DUP2
000038c4: MSTORE
000038c5: PUSH1 0x20
000038c7: ADD
000038c8: SWAP2
000038c9: POP
000038ca: POP
000038cb: PUSH1 0x40
000038cd: MLOAD
000038ce: DUP1
000038cf: SWAP2
000038d0: SUB
000038d1: SWAP1
000038d2: KECCAK256
000038d3: DUP7
000038d4: DUP7
000038d5: DUP7
000038d6: PUSH1 0x40
000038d8: MLOAD
000038d9: PUSH1 0x00
000038db: DUP2
000038dc: MSTORE
000038dd: PUSH1 0x20
000038df: ADD
000038e0: PUSH1 0x40
000038e2: MSTORE
000038e3: PUSH1 0x40
000038e5: MLOAD
000038e6: DUP1
000038e7: DUP6
000038e8: PUSH1 0x00
000038ea: NOT
000038eb: AND
000038ec: PUSH1 0x00
000038ee: NOT
000038ef: AND
000038f0: DUP2
000038f1: MSTORE
000038f2: PUSH1 0x20
000038f4: ADD
000038f5: DUP5
000038f6: PUSH1 0xff
000038f8: AND
000038f9: PUSH1 0xff
000038fb: AND
000038fc: DUP2
000038fd: MSTORE
000038fe: PUSH1 0x20
00003900: ADD
00003901: DUP4
00003902: PUSH1 0x00
00003904: NOT
00003905: AND
00003906: PUSH1 0x00
00003908: NOT
00003909: AND
0000390a: DUP2
0000390b: MSTORE
0000390c: PUSH1 0x20
0000390e: ADD
0000390f: DUP3
00003910: PUSH1 0x00
00003912: NOT
00003913: AND
00003914: PUSH1 0x00
00003916: NOT
00003917: AND
00003918: DUP2
00003919: MSTORE
0000391a: PUSH1 0x20
0000391c: ADD
0000391d: SWAP5
0000391e: POP
0000391f: POP
00003920: POP
00003921: POP
00003922: POP
00003923: PUSH1 0x20
00003925: PUSH1 0x40
00003927: MLOAD
00003928: PUSH1 0x20
0000392a: DUP2
0000392b: SUB
0000392c: SWAP1
0000392d: DUP1
0000392e: DUP5
0000392f: SUB
00003930: SWAP1
00003931: PUSH1 0x00
00003933: DUP7
00003934: GAS
00003935: CALL
00003936: ISZERO
00003937: DUP1
00003938: ISZERO
00003939: PUSH2 0x3946
0000393c: JUMPI
0000393d: RETURNDATASIZE
0000393e: PUSH1 0x00
00003940: DUP1
00003941: RETURNDATACOPY
00003942: RETURNDATASIZE
00003943: PUSH1 0x00
00003945: REVERT
00003946: JUMPDEST
00003947: POP
00003948: POP
00003949: POP
0000394a: PUSH1 0x20
0000394c: PUSH1 0x40
0000394e: MLOAD
0000394f: SUB
00003950: MLOAD
00003951: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003966: AND
00003967: EQ
00003968: JUMPDEST
00003969: SWAP1
0000396a: POP
0000396b: SWAP6
0000396c: SWAP5
0000396d: POP
0000396e: POP
0000396f: POP
00003970: POP
00003971: POP
00003972: JUMP
00003973: JUMPDEST
00003974: PUSH1 0x00
00003976: DUP1
00003977: DUP3
00003978: DUP5
00003979: ADD
0000397a: SWAP1
0000397b: POP
0000397c: DUP4
0000397d: DUP2
0000397e: LT
0000397f: ISZERO
00003980: ISZERO
00003981: ISZERO
00003982: PUSH2 0x3987
00003985: JUMPI
00003986: INVALID
00003987: JUMPDEST
00003988: DUP1
00003989: SWAP2
0000398a: POP
0000398b: POP
0000398c: SWAP3
0000398d: SWAP2
0000398e: POP
0000398f: POP
00003990: JUMP
00003991: JUMPDEST
00003992: PUSH1 0x00
00003994: DUP1
00003995: PUSH1 0x00
00003997: DUP1
00003998: PUSH2 0x39c6
0000399b: PUSH8 0x0de0b6b3a7640000
000039a4: PUSH2 0x39b8
000039a7: PUSH1 0x03
000039a9: SLOAD
000039aa: DUP9
000039ab: PUSH2 0x41c4
000039ae: SWAP1
000039af: SWAP2
000039b0: SWAP1
000039b1: PUSH4 0xffffffff
000039b6: AND
000039b7: JUMP
000039b8: JUMPDEST
000039b9: PUSH2 0x41ff
000039bc: SWAP1
000039bd: SWAP2
000039be: SWAP1
000039bf: PUSH4 0xffffffff
000039c4: AND
000039c5: JUMP
000039c6: JUMPDEST
000039c7: SWAP4
000039c8: POP
000039c9: PUSH2 0x39f7
000039cc: PUSH8 0x0de0b6b3a7640000
000039d5: PUSH2 0x39e9
000039d8: PUSH1 0x04
000039da: SLOAD
000039db: DUP9
000039dc: PUSH2 0x41c4
000039df: SWAP1
000039e0: SWAP2
000039e1: SWAP1
000039e2: PUSH4 0xffffffff
000039e7: AND
000039e8: JUMP
000039e9: JUMPDEST
000039ea: PUSH2 0x41ff
000039ed: SWAP1
000039ee: SWAP2
000039ef: SWAP1
000039f0: PUSH4 0xffffffff
000039f5: AND
000039f6: JUMP
000039f7: JUMPDEST
000039f8: SWAP3
000039f9: POP
000039fa: PUSH1 0x00
000039fc: SWAP2
000039fd: POP
000039fe: PUSH1 0x00
00003a00: PUSH1 0x02
00003a02: PUSH1 0x00
00003a04: SWAP1
00003a05: SLOAD
00003a06: SWAP1
00003a07: PUSH2 0x0100
00003a0a: EXP
00003a0b: SWAP1
00003a0c: DIV
00003a0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003a22: AND
00003a23: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003a38: AND
00003a39: EQ
00003a3a: ISZERO
00003a3b: ISZERO
00003a3c: PUSH2 0x3b87
00003a3f: JUMPI
00003a40: PUSH1 0x02
00003a42: PUSH1 0x00
00003a44: SWAP1
00003a45: SLOAD
00003a46: SWAP1
00003a47: PUSH2 0x0100
00003a4a: EXP
00003a4b: SWAP1
00003a4c: DIV
00003a4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003a62: AND
00003a63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003a78: AND
00003a79: PUSH4 0x1cbd0519
00003a7e: DUP8
00003a7f: PUSH1 0x40
00003a81: MLOAD
00003a82: DUP3
00003a83: PUSH4 0xffffffff
00003a88: AND
00003a89: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00003aa7: MUL
00003aa8: DUP2
00003aa9: MSTORE
00003aaa: PUSH1 0x04
00003aac: ADD
00003aad: DUP1
00003aae: DUP3
00003aaf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003ac4: AND
00003ac5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003ada: AND
00003adb: DUP2
00003adc: MSTORE
00003add: PUSH1 0x20
00003adf: ADD
00003ae0: SWAP2
00003ae1: POP
00003ae2: POP
00003ae3: PUSH1 0x20
00003ae5: PUSH1 0x40
00003ae7: MLOAD
00003ae8: DUP1
00003ae9: DUP4
00003aea: SUB
00003aeb: DUP2
00003aec: PUSH1 0x00
00003aee: DUP8
00003aef: DUP1
00003af0: EXTCODESIZE
00003af1: ISZERO
00003af2: DUP1
00003af3: ISZERO
00003af4: PUSH2 0x3afc
00003af7: JUMPI
00003af8: PUSH1 0x00
00003afa: DUP1
00003afb: REVERT
00003afc: JUMPDEST
00003afd: POP
00003afe: GAS
00003aff: CALL
00003b00: ISZERO
00003b01: DUP1
00003b02: ISZERO
00003b03: PUSH2 0x3b10
00003b06: JUMPI
00003b07: RETURNDATASIZE
00003b08: PUSH1 0x00
00003b0a: DUP1
00003b0b: RETURNDATACOPY
00003b0c: RETURNDATASIZE
00003b0d: PUSH1 0x00
00003b0f: REVERT
00003b10: JUMPDEST
00003b11: POP
00003b12: POP
00003b13: POP
00003b14: POP
00003b15: PUSH1 0x40
00003b17: MLOAD
00003b18: RETURNDATASIZE
00003b19: PUSH1 0x20
00003b1b: DUP2
00003b1c: LT
00003b1d: ISZERO
00003b1e: PUSH2 0x3b26
00003b21: JUMPI
00003b22: PUSH1 0x00
00003b24: DUP1
00003b25: REVERT
00003b26: JUMPDEST
00003b27: DUP2
00003b28: ADD
00003b29: SWAP1
00003b2a: DUP1
00003b2b: DUP1
00003b2c: MLOAD
00003b2d: SWAP1
00003b2e: PUSH1 0x20
00003b30: ADD
00003b31: SWAP1
00003b32: SWAP3
00003b33: SWAP2
00003b34: SWAP1
00003b35: POP
00003b36: POP
00003b37: POP
00003b38: SWAP1
00003b39: POP
00003b3a: PUSH1 0x01
00003b3c: DUP2
00003b3d: EQ
00003b3e: ISZERO
00003b3f: PUSH2 0x3b78
00003b42: JUMPI
00003b43: PUSH2 0x3b71
00003b46: PUSH8 0x0de0b6b3a7640000
00003b4f: PUSH2 0x3b63
00003b52: PUSH1 0x05
00003b54: SLOAD
00003b55: DUP9
00003b56: PUSH2 0x41c4
00003b59: SWAP1
00003b5a: SWAP2
00003b5b: SWAP1
00003b5c: PUSH4 0xffffffff
00003b61: AND
00003b62: JUMP
00003b63: JUMPDEST
00003b64: PUSH2 0x41ff
00003b67: SWAP1
00003b68: SWAP2
00003b69: SWAP1
00003b6a: PUSH4 0xffffffff
00003b6f: AND
00003b70: JUMP
00003b71: JUMPDEST
00003b72: SWAP2
00003b73: POP
00003b74: PUSH2 0x3b86
00003b77: JUMP
00003b78: JUMPDEST
00003b79: PUSH1 0x02
00003b7b: DUP2
00003b7c: EQ
00003b7d: ISZERO
00003b7e: PUSH2 0x3b85
00003b81: JUMPI
00003b82: DUP3
00003b83: SWAP2
00003b84: POP
00003b85: JUMPDEST
00003b86: JUMPDEST
00003b87: JUMPDEST
00003b88: PUSH2 0x3c28
00003b8b: PUSH2 0x3b9d
00003b8e: DUP5
00003b8f: DUP8
00003b90: PUSH2 0x3973
00003b93: SWAP1
00003b94: SWAP2
00003b95: SWAP1
00003b96: PUSH4 0xffffffff
00003b9b: AND
00003b9c: JUMP
00003b9d: JUMPDEST
00003b9e: PUSH1 0x06
00003ba0: PUSH1 0x00
00003ba2: DUP14
00003ba3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003bb8: AND
00003bb9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003bce: AND
00003bcf: DUP2
00003bd0: MSTORE
00003bd1: PUSH1 0x20
00003bd3: ADD
00003bd4: SWAP1
00003bd5: DUP2
00003bd6: MSTORE
00003bd7: PUSH1 0x20
00003bd9: ADD
00003bda: PUSH1 0x00
00003bdc: KECCAK256
00003bdd: PUSH1 0x00
00003bdf: CALLER
00003be0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003bf5: AND
00003bf6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003c0b: AND
00003c0c: DUP2
00003c0d: MSTORE
00003c0e: PUSH1 0x20
00003c10: ADD
00003c11: SWAP1
00003c12: DUP2
00003c13: MSTORE
00003c14: PUSH1 0x20
00003c16: ADD
00003c17: PUSH1 0x00
00003c19: KECCAK256
00003c1a: SLOAD
00003c1b: PUSH2 0x421a
00003c1e: SWAP1
00003c1f: SWAP2
00003c20: SWAP1
00003c21: PUSH4 0xffffffff
00003c26: AND
00003c27: JUMP
00003c28: JUMPDEST
00003c29: PUSH1 0x06
00003c2b: PUSH1 0x00
00003c2d: DUP13
00003c2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003c43: AND
00003c44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003c59: AND
00003c5a: DUP2
00003c5b: MSTORE
00003c5c: PUSH1 0x20
00003c5e: ADD
00003c5f: SWAP1
00003c60: DUP2
00003c61: MSTORE
00003c62: PUSH1 0x20
00003c64: ADD
00003c65: PUSH1 0x00
00003c67: KECCAK256
00003c68: PUSH1 0x00
00003c6a: CALLER
00003c6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003c80: AND
00003c81: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003c96: AND
00003c97: DUP2
00003c98: MSTORE
00003c99: PUSH1 0x20
00003c9b: ADD
00003c9c: SWAP1
00003c9d: DUP2
00003c9e: MSTORE
00003c9f: PUSH1 0x20
00003ca1: ADD
00003ca2: PUSH1 0x00
00003ca4: KECCAK256
00003ca5: DUP2
00003ca6: SWAP1
00003ca7: SSTORE
00003ca8: POP
00003ca9: PUSH2 0x3d5b
00003cac: PUSH2 0x3cd0
00003caf: DUP6
00003cb0: PUSH2 0x3cc2
00003cb3: DUP6
00003cb4: DUP10
00003cb5: PUSH2 0x3973
00003cb8: SWAP1
00003cb9: SWAP2
00003cba: SWAP1
00003cbb: PUSH4 0xffffffff
00003cc0: AND
00003cc1: JUMP
00003cc2: JUMPDEST
00003cc3: PUSH2 0x421a
00003cc6: SWAP1
00003cc7: SWAP2
00003cc8: SWAP1
00003cc9: PUSH4 0xffffffff
00003cce: AND
00003ccf: JUMP
00003cd0: JUMPDEST
00003cd1: PUSH1 0x06
00003cd3: PUSH1 0x00
00003cd5: DUP14
00003cd6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003ceb: AND
00003cec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003d01: AND
00003d02: DUP2
00003d03: MSTORE
00003d04: PUSH1 0x20
00003d06: ADD
00003d07: SWAP1
00003d08: DUP2
00003d09: MSTORE
00003d0a: PUSH1 0x20
00003d0c: ADD
00003d0d: PUSH1 0x00
00003d0f: KECCAK256
00003d10: PUSH1 0x00
00003d12: DUP10
00003d13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003d28: AND
00003d29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003d3e: AND
00003d3f: DUP2
00003d40: MSTORE
00003d41: PUSH1 0x20
00003d43: ADD
00003d44: SWAP1
00003d45: DUP2
00003d46: MSTORE
00003d47: PUSH1 0x20
00003d49: ADD
00003d4a: PUSH1 0x00
00003d4c: KECCAK256
00003d4d: SLOAD
00003d4e: PUSH2 0x3973
00003d51: SWAP1
00003d52: SWAP2
00003d53: SWAP1
00003d54: PUSH4 0xffffffff
00003d59: AND
00003d5a: JUMP
00003d5b: JUMPDEST
00003d5c: PUSH1 0x06
00003d5e: PUSH1 0x00
00003d60: DUP13
00003d61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003d76: AND
00003d77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003d8c: AND
00003d8d: DUP2
00003d8e: MSTORE
00003d8f: PUSH1 0x20
00003d91: ADD
00003d92: SWAP1
00003d93: DUP2
00003d94: MSTORE
00003d95: PUSH1 0x20
00003d97: ADD
00003d98: PUSH1 0x00
00003d9a: KECCAK256
00003d9b: PUSH1 0x00
00003d9d: DUP9
00003d9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003db3: AND
00003db4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003dc9: AND
00003dca: DUP2
00003dcb: MSTORE
00003dcc: PUSH1 0x20
00003dce: ADD
00003dcf: SWAP1
00003dd0: DUP2
00003dd1: MSTORE
00003dd2: PUSH1 0x20
00003dd4: ADD
00003dd5: PUSH1 0x00
00003dd7: KECCAK256
00003dd8: DUP2
00003dd9: SWAP1
00003dda: SSTORE
00003ddb: POP
00003ddc: PUSH2 0x3eb0
00003ddf: PUSH2 0x3e03
00003de2: DUP4
00003de3: PUSH2 0x3df5
00003de6: DUP7
00003de7: DUP9
00003de8: PUSH2 0x3973
00003deb: SWAP1
00003dec: SWAP2
00003ded: SWAP1
00003dee: PUSH4 0xffffffff
00003df3: AND
00003df4: JUMP
00003df5: JUMPDEST
00003df6: PUSH2 0x421a
00003df9: SWAP1
00003dfa: SWAP2
00003dfb: SWAP1
00003dfc: PUSH4 0xffffffff
00003e01: AND
00003e02: JUMP
00003e03: JUMPDEST
00003e04: PUSH1 0x06
00003e06: PUSH1 0x00
00003e08: DUP14
00003e09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003e1e: AND
00003e1f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003e34: AND
00003e35: DUP2
00003e36: MSTORE
00003e37: PUSH1 0x20
00003e39: ADD
00003e3a: SWAP1
00003e3b: DUP2
00003e3c: MSTORE
00003e3d: PUSH1 0x20
00003e3f: ADD
00003e40: PUSH1 0x00
00003e42: KECCAK256
00003e43: PUSH1 0x00
00003e45: PUSH1 0x01
00003e47: PUSH1 0x00
00003e49: SWAP1
00003e4a: SLOAD
00003e4b: SWAP1
00003e4c: PUSH2 0x0100
00003e4f: EXP
00003e50: SWAP1
00003e51: DIV
00003e52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003e67: AND
00003e68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003e7d: AND
00003e7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003e93: AND
00003e94: DUP2
00003e95: MSTORE
00003e96: PUSH1 0x20
00003e98: ADD
00003e99: SWAP1
00003e9a: DUP2
00003e9b: MSTORE
00003e9c: PUSH1 0x20
00003e9e: ADD
00003e9f: PUSH1 0x00
00003ea1: KECCAK256
00003ea2: SLOAD
00003ea3: PUSH2 0x3973
00003ea6: SWAP1
00003ea7: SWAP2
00003ea8: SWAP1
00003ea9: PUSH4 0xffffffff
00003eae: AND
00003eaf: JUMP
00003eb0: JUMPDEST
00003eb1: PUSH1 0x06
00003eb3: PUSH1 0x00
00003eb5: DUP13
00003eb6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003ecb: AND
00003ecc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003ee1: AND
00003ee2: DUP2
00003ee3: MSTORE
00003ee4: PUSH1 0x20
00003ee6: ADD
00003ee7: SWAP1
00003ee8: DUP2
00003ee9: MSTORE
00003eea: PUSH1 0x20
00003eec: ADD
00003eed: PUSH1 0x00
00003eef: KECCAK256
00003ef0: PUSH1 0x00
00003ef2: PUSH1 0x01
00003ef4: PUSH1 0x00
00003ef6: SWAP1
00003ef7: SLOAD
00003ef8: SWAP1
00003ef9: PUSH2 0x0100
00003efc: EXP
00003efd: SWAP1
00003efe: DIV
00003eff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003f14: AND
00003f15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003f2a: AND
00003f2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003f40: AND
00003f41: DUP2
00003f42: MSTORE
00003f43: PUSH1 0x20
00003f45: ADD
00003f46: SWAP1
00003f47: DUP2
00003f48: MSTORE
00003f49: PUSH1 0x20
00003f4b: ADD
00003f4c: PUSH1 0x00
00003f4e: KECCAK256
00003f4f: DUP2
00003f50: SWAP1
00003f51: SSTORE
00003f52: POP
00003f53: PUSH2 0x4005
00003f56: PUSH2 0x3f7a
00003f59: DUP11
00003f5a: PUSH2 0x3f6c
00003f5d: DUP9
00003f5e: DUP12
00003f5f: PUSH2 0x41c4
00003f62: SWAP1
00003f63: SWAP2
00003f64: SWAP1
00003f65: PUSH4 0xffffffff
00003f6a: AND
00003f6b: JUMP
00003f6c: JUMPDEST
00003f6d: PUSH2 0x41ff
00003f70: SWAP1
00003f71: SWAP2
00003f72: SWAP1
00003f73: PUSH4 0xffffffff
00003f78: AND
00003f79: JUMP
00003f7a: JUMPDEST
00003f7b: PUSH1 0x06
00003f7d: PUSH1 0x00
00003f7f: DUP12
00003f80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003f95: AND
00003f96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003fab: AND
00003fac: DUP2
00003fad: MSTORE
00003fae: PUSH1 0x20
00003fb0: ADD
00003fb1: SWAP1
00003fb2: DUP2
00003fb3: MSTORE
00003fb4: PUSH1 0x20
00003fb6: ADD
00003fb7: PUSH1 0x00
00003fb9: KECCAK256
00003fba: PUSH1 0x00
00003fbc: DUP10
00003fbd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003fd2: AND
00003fd3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003fe8: AND
00003fe9: DUP2
00003fea: MSTORE
00003feb: PUSH1 0x20
00003fed: ADD
00003fee: SWAP1
00003fef: DUP2
00003ff0: MSTORE
00003ff1: PUSH1 0x20
00003ff3: ADD
00003ff4: PUSH1 0x00
00003ff6: KECCAK256
00003ff7: SLOAD
00003ff8: PUSH2 0x421a
00003ffb: SWAP1
00003ffc: SWAP2
00003ffd: SWAP1
00003ffe: PUSH4 0xffffffff
00004003: AND
00004004: JUMP
00004005: JUMPDEST
00004006: PUSH1 0x06
00004008: PUSH1 0x00
0000400a: DUP11
0000400b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004020: AND
00004021: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004036: AND
00004037: DUP2
00004038: MSTORE
00004039: PUSH1 0x20
0000403b: ADD
0000403c: SWAP1
0000403d: DUP2
0000403e: MSTORE
0000403f: PUSH1 0x20
00004041: ADD
00004042: PUSH1 0x00
00004044: KECCAK256
00004045: PUSH1 0x00
00004047: DUP9
00004048: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000405d: AND
0000405e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004073: AND
00004074: DUP2
00004075: MSTORE
00004076: PUSH1 0x20
00004078: ADD
00004079: SWAP1
0000407a: DUP2
0000407b: MSTORE
0000407c: PUSH1 0x20
0000407e: ADD
0000407f: PUSH1 0x00
00004081: KECCAK256
00004082: DUP2
00004083: SWAP1
00004084: SSTORE
00004085: POP
00004086: PUSH2 0x4138
00004089: PUSH2 0x40ad
0000408c: DUP11
0000408d: PUSH2 0x409f
00004090: DUP9
00004091: DUP12
00004092: PUSH2 0x41c4
00004095: SWAP1
00004096: SWAP2
00004097: SWAP1
00004098: PUSH4 0xffffffff
0000409d: AND
0000409e: JUMP
0000409f: JUMPDEST
000040a0: PUSH2 0x41ff
000040a3: SWAP1
000040a4: SWAP2
000040a5: SWAP1
000040a6: PUSH4 0xffffffff
000040ab: AND
000040ac: JUMP
000040ad: JUMPDEST
000040ae: PUSH1 0x06
000040b0: PUSH1 0x00
000040b2: DUP12
000040b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000040c8: AND
000040c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000040de: AND
000040df: DUP2
000040e0: MSTORE
000040e1: PUSH1 0x20
000040e3: ADD
000040e4: SWAP1
000040e5: DUP2
000040e6: MSTORE
000040e7: PUSH1 0x20
000040e9: ADD
000040ea: PUSH1 0x00
000040ec: KECCAK256
000040ed: PUSH1 0x00
000040ef: CALLER
000040f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004105: AND
00004106: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000411b: AND
0000411c: DUP2
0000411d: MSTORE
0000411e: PUSH1 0x20
00004120: ADD
00004121: SWAP1
00004122: DUP2
00004123: MSTORE
00004124: PUSH1 0x20
00004126: ADD
00004127: PUSH1 0x00
00004129: KECCAK256
0000412a: SLOAD
0000412b: PUSH2 0x3973
0000412e: SWAP1
0000412f: SWAP2
00004130: SWAP1
00004131: PUSH4 0xffffffff
00004136: AND
00004137: JUMP
00004138: JUMPDEST
00004139: PUSH1 0x06
0000413b: PUSH1 0x00
0000413d: DUP11
0000413e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004153: AND
00004154: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004169: AND
0000416a: DUP2
0000416b: MSTORE
0000416c: PUSH1 0x20
0000416e: ADD
0000416f: SWAP1
00004170: DUP2
00004171: MSTORE
00004172: PUSH1 0x20
00004174: ADD
00004175: PUSH1 0x00
00004177: KECCAK256
00004178: PUSH1 0x00
0000417a: CALLER
0000417b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004190: AND
00004191: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000041a6: AND
000041a7: DUP2
000041a8: MSTORE
000041a9: PUSH1 0x20
000041ab: ADD
000041ac: SWAP1
000041ad: DUP2
000041ae: MSTORE
000041af: PUSH1 0x20
000041b1: ADD
000041b2: PUSH1 0x00
000041b4: KECCAK256
000041b5: DUP2
000041b6: SWAP1
000041b7: SSTORE
000041b8: POP
000041b9: POP
000041ba: POP
000041bb: POP
000041bc: POP
000041bd: POP
000041be: POP
000041bf: POP
000041c0: POP
000041c1: POP
000041c2: POP
000041c3: JUMP
000041c4: JUMPDEST
000041c5: PUSH1 0x00
000041c7: DUP1
000041c8: PUSH1 0x00
000041ca: DUP5
000041cb: EQ
000041cc: ISZERO
000041cd: PUSH2 0x41d9
000041d0: JUMPI
000041d1: PUSH1 0x00
000041d3: SWAP2
000041d4: POP
000041d5: PUSH2 0x41f8
000041d8: JUMP
000041d9: JUMPDEST
000041da: DUP3
000041db: DUP5
000041dc: MUL
000041dd: SWAP1
000041de: POP
000041df: DUP3
000041e0: DUP5
000041e1: DUP3
000041e2: DUP2
000041e3: ISZERO
000041e4: ISZERO
000041e5: PUSH2 0x41ea
000041e8: JUMPI
000041e9: INVALID
000041ea: JUMPDEST
000041eb: DIV
000041ec: EQ
000041ed: ISZERO
000041ee: ISZERO
000041ef: PUSH2 0x41f4
000041f2: JUMPI
000041f3: INVALID
000041f4: JUMPDEST
000041f5: DUP1
000041f6: SWAP2
000041f7: POP
000041f8: JUMPDEST
000041f9: POP
000041fa: SWAP3
000041fb: SWAP2
000041fc: POP
000041fd: POP
000041fe: JUMP
000041ff: JUMPDEST
00004200: PUSH1 0x00
00004202: DUP1
00004203: DUP3
00004204: DUP5
00004205: DUP2
00004206: ISZERO
00004207: ISZERO
00004208: PUSH2 0x420d
0000420b: JUMPI
0000420c: INVALID
0000420d: JUMPDEST
0000420e: DIV
0000420f: SWAP1
00004210: POP
00004211: DUP1
00004212: SWAP2
00004213: POP
00004214: POP
00004215: SWAP3
00004216: SWAP2
00004217: POP
00004218: POP
00004219: JUMP
0000421a: JUMPDEST
0000421b: PUSH1 0x00
0000421d: DUP3
0000421e: DUP3
0000421f: GT
00004220: ISZERO
00004221: ISZERO
00004222: ISZERO
00004223: PUSH2 0x4228
00004226: JUMPI
00004227: INVALID
00004228: JUMPDEST
00004229: DUP2
0000422a: DUP4
0000422b: SUB
0000422c: SWAP1
0000422d: POP
0000422e: SWAP3
0000422f: SWAP2
00004230: POP
00004231: POP
00004232: JUMP
00004233: STOP
00004234: LOG1
00004235: PUSH6 0x627a7a723058
0000423c: KECCAK256
0000423d: UNKNOWN(0x23)
0000423e: DIFFICULTY
0000423f: PUSH24 0x659725ad38f361ac5a6b8b278da3ce8868b9cc541fd8eecc
00004258: UNKNOWN(0x28)
00004259: SELFDESTRUCT
0000425a: UNKNOWN(0xE4)
0000425b: PUSH12

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other cast SELFDESTRUCT present 85 no
view
evidence_json
{
    "notes": "selfdestruct can remove contract code and send funds; review reachability",
    "selfdestruct_count": 1
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xea4b495c41a2c60194b04193a15a7588866b38a7416c02ae299d49c773130c83
call_targets: 0xbeeb655808e3bdb83b6998f09dfe1e0f2c66a9be
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xea4b495c41a2c60194b04193a15a7588866b38a7416c02ae299d49c773130c83",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xbeeb655808e3bdb83b6998f09dfe1e0f2c66a9be"
    ],
    "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": "0x0a19b14a",
            "selector": "0x0a19b14a",
            "calldata_variants": [
                "0x0a19b14a",
                "0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0b927666",
            "selector": "0x0b927666",
            "calldata_variants": [
                "0x0b927666",
                "0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19774d43",
            "selector": "0x19774d43",
            "calldata_variants": [
                "0x19774d43",
                "0x19774d430000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x278b8c0e",
            "selector": "0x278b8c0e",
            "calldata_variants": [
                "0x278b8c0e",
                "0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x29b1ce4d",
            "selector": "0x29b1ce4d",
            "calldata_variants": [
                "0x29b1ce4d",
                "0x29b1ce4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2d804ca2",
            "selector": "0x2d804ca2",
            "calldata_variants": [
                "0x2d804ca2",
                "0x2d804ca20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7546,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8520,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 11539,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [
        {
            "pc": 6294,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 8976,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 9083,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 9239,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10070,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10273,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10391,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10676,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 11958,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 12913,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 5
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xea4b495c41a2c60194b04193a15a7588866b38a7416c02ae299d49c773130c83
call_targets: 0xbeeb655808e3bdb83b6998f09dfe1e0f2c66a9be
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xea4b495c41a2c60194b04193a15a7588866b38a7416c02ae299d49c773130c83",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xbeeb655808e3bdb83b6998f09dfe1e0f2c66a9be"
    ],
    "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": "0x0a19b14a",
            "selector": "0x0a19b14a",
            "calldata_variants": [
                "0x0a19b14a",
                "0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0b927666",
            "selector": "0x0b927666",
            "calldata_variants": [
                "0x0b927666",
                "0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19774d43",
            "selector": "0x19774d43",
            "calldata_variants": [
                "0x19774d43",
                "0x19774d430000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x278b8c0e",
            "selector": "0x278b8c0e",
            "calldata_variants": [
                "0x278b8c0e",
                "0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x29b1ce4d",
            "selector": "0x29b1ce4d",
            "calldata_variants": [
                "0x29b1ce4d",
                "0x29b1ce4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2d804ca2",
            "selector": "0x2d804ca2",
            "calldata_variants": [
                "0x2d804ca2",
                "0x2d804ca20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7546,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8520,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 11539,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": [
        {
            "pc": 6294,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 8976,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 9083,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 9239,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10070,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10273,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10391,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10676,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 11958,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 12913,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
medium other detector SELFDESTRUCT reachable 45 no no
view
trace_id: 0xb8ad7f7552d8aa4fb100bb930e5f2e2b8138dc2a80e3f9e6af90dde393cba07b
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xb8ad7f7552d8aa4fb100bb930e5f2e2b8138dc2a80e3f9e6af90dde393cba07b",
    "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": "0x0a19b14a",
            "selector": "0x0a19b14a",
            "calldata_variants": [
                "0x0a19b14a",
                "0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0b927666",
            "selector": "0x0b927666",
            "calldata_variants": [
                "0x0b927666",
                "0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x19774d43",
            "selector": "0x19774d43",
            "calldata_variants": [
                "0x19774d43",
                "0x19774d430000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x278b8c0e",
            "selector": "0x278b8c0e",
            "calldata_variants": [
                "0x278b8c0e",
                "0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x29b1ce4d",
            "selector": "0x29b1ce4d",
            "calldata_variants": [
                "0x29b1ce4d",
                "0x29b1ce4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2d804ca2",
            "selector": "0x2d804ca2",
            "calldata_variants": [
                "0x2d804ca2",
                "0x2d804ca20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2e1a7d4d",
            "selector": "0x2e1a7d4d",
            "calldata_variants": [
                "0x2e1a7d4d",
                "0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 6294,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 8976,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 9083,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 9239,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10070,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10273,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10391,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 10676,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 11958,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 12913,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "selfdestruct_count": 1
}
medium auth codex Invalid signatures are accepted when `user` is the zero address 75 no
view
evidence_json
{
    "evidence": "`trade` accepts a `user` parameter without a non-zero or whitelist check, and `validateOrderHash` treats `ecrecover(...) == user` as valid even when `user` is `0x0` (invalid signatures recover to `0x0`).",
    "locations": [
        "contracts/Contract.sol:462",
        "contracts/Contract.sol:696"
    ],
    "recommendation": "Reject zero-address makers in `trade` (and in any helper that validates orders) and treat `ecrecover` returning `0x0` as invalid. Also validate `feeAccount != 0x0` in the constructor to avoid accumulating balances at the zero address.",
    "exploit_scenario": "An attacker calls `trade` with `user = 0x0` and any invalid `(v,r,s)`. `validateOrderHash` returns true because `ecrecover(...)` returns `0x0` for invalid signatures. If `tokens[<token>][0x0]` has any balance (e.g., fees accumulated because the constructor allowed `feeAccount = 0x0`), the attacker can drain those balances by choosing favorable `amountGive/amountGet` ratios."
}
low access_control codex Maker whitelist is not enforced in `trade` 65 no
view
evidence_json
{
    "evidence": "`trade` only checks `whitelistedUsers[msg.sender]` but not `whitelistedUsers[user]`. In contrast, `testTrade`/`availableVolume` enforce both users.",
    "locations": [
        "contracts/Contract.sol:462",
        "contracts/Contract.sol:539"
    ],
    "recommendation": "Require `whitelistedUsers[user]` in `trade` (and optionally reject `user == 0x0`) to ensure both maker and taker are authorized at execution time.",
    "exploit_scenario": "A user who was previously whitelisted can continue to have their orders filled after being removed from the whitelist. A whitelisted taker can still execute trades against that maker\u2019s signed orders, bypassing whitelist-based trading restrictions."
}