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

Analysis Run

50bc5866-a202-48b6-a7cd-e3e4d18a6a4c

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 4, 2026 3:05 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
Refund logic never consumes PANDA or enforces refundMap, enabling unlimited ETH redemptions
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
31536 report.consolidate complete 1 / 1 3 months ago
77843 artifact.fetch complete 1 / 3 1 week ago
77844 tool.cast_disasm complete 1 / 3 1 week ago
77845 analysis.bundle complete 1 / 3 1 week ago
77846 capability.graph complete 1 / 3 1 week ago
77847 detector.run complete 1 / 3 1 week ago
77848 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
1 exploitable issue found that allows repeated refunds without spending PANDA, enabling a full ETH balance drain.
View stderr
[codex:744910] OpenAI Codex v0.77.0 (research preview)
[codex:744910] --------
[codex:744910] workdir: /tmp/codex-multi-_xzaj1jf
[codex:744910] model: gpt-5.2-codex
[codex:744910] provider: openai
[codex:744910] approval: never
[codex:744910] sandbox: read-only
[codex:744910] reasoning effort: xhigh
[codex:744910] reasoning summaries: auto
[codex:744910] session id: 019b86f5-3b13-7563-93d3-12e298f0eb0d
[codex:744910] --------
[codex:744910] user
[codex:744910] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:744910] 
[codex:744910] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:744910] 
[codex:744910] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:744910] - Gas inefficiency, code quality, naming, or best practices
[codex:744910] - Theoretical vulnerabilities without a clear extraction path
[codex:744910] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:744910] - Front-running unless it enables theft beyond MEV
[codex:744910] - DoS, griefing, or issues that don't result in attacker profit
[codex:744910] - Missing events, view function issues, or informational findings
[codex:744910] 
[codex:744910] HIGH-VALUE PATTERNS TO HUNT:
[codex:744910] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:744910] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:744910] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:744910] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:744910] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:744910] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:744910] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:744910] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:744910] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:744910] 
[codex:744910] For each finding, you MUST provide:
[codex:744910] 1. Exact file and line numbers of vulnerable code
[codex:744910] 2. Step-by-step exploit transaction sequence
[codex:744910] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:744910] 
[codex:744910] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:744910] 
[codex:744910] Output MUST be valid JSON matching the provided schema.
[codex:744910] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:744910] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:744910] mcp startup: no servers
[codex:744910] 
[codex:744910] thinking
[codex:744910] **Preparing to read instructions**
[codex:744910] exec
[codex:744910] /bin/bash -lc ls in /tmp/codex-multi-_xzaj1jf succeeded in 6ms:
[codex:744910] AUDIT_BUNDLE.txt
[codex:744910] codex-output-schema.json
[codex:744910] contracts
[codex:744910] exec
[codex:744910] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-_xzaj1jf succeeded in 6ms:
[codex:744910] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:744910] 
[codex:744910] ================================================================================
[codex:744910] FILE: contracts/contracts/ITerminalV1_1.sol
[codex:744910] ================================================================================
[codex:744910] /*
[codex:744910]  **                                                                                                                                                              
[codex:744910]  **                                                                   dddddddd                                                                                   
[codex:744910]  **  PPPPPPPPPPPPPPPPP                                                d::::::d                  DDDDDDDDDDDDD                  AAA                 OOOOOOOOO     
[codex:744910]  **  P::::::::::::::::P                                               d::::::d                  D::::::::::::DDD              A:::A              OO:::::::::OO   
[codex:744910]  **  P::::::PPPPPP:::::P                                              d::::::d                  D:::::::::::::::DD           A:::::A           OO:::::::::::::OO 
[codex:744910]  **  PP:::::P     P:::::P                                             d:::::d                   DDD:::::DDDDD:::::D         A:::::::A         O:::::::OOO:::::::O
[codex:744910]  **    P::::P     P:::::Paaaaaaaaaaaaa  nnnn  nnnnnnnn        ddddddddd:::::d   aaaaaaaaaaaaa     D:::::D    D:::::D       A:::::::::A        O::::::O   O::::::O
[codex:744910]  **    P::::P     P:::::Pa::::::::::::a n:::nn::::::::nn    dd::::::::::::::d   a::::::::::::a    D:::::D     D:::::D     A:::::A:::::A       O:::::O     O:::::O
[codex:744910]  **    P::::PPPPPP:::::P aaaaaaaaa:::::an::::::::::::::nn  d::::::::::::::::d   aaaaaaaaa:::::a   D:::::D     D:::::D    A:::::A A:::::A      O:::::O     O:::::O
[codex:744910]  **    P:::::::::::::PP           a::::ann:::::::::::::::nd:::::::ddddd:::::d            a::::a   D:::::D     D:::::D   A:::::A   A:::::A     O:::::O     O:::::O
[codex:744910]  **    P::::PPPPPPPPP      aaaaaaa:::::a  n:::::nnnn:::::nd::::::d    d:::::d     aaaaaaa:::::a   D:::::D     D:::::D  A:::::A     A:::::A    O:::::O     O:::::O
[codex:744910]  **    P::::P            aa::::::::::::a  n::::n    n::::nd:::::d     d:::::d   aa::::::::::::a   D:::::D     D:::::D A:::::AAAAAAAAA:::::A   O:::::O     O:::::O
[codex:744910]  **    P::::P           a::::aaaa::::::a  n::::n    n::::nd:::::d     d:::::d  a::::aaaa::::::a   D:::::D     D:::::DA:::::::::::::::::::::A  O:::::O     O:::::O
[codex:744910]  **    P::::P          a::::a    a:::::a  n::::n    n::::nd:::::d     d:::::d a::::a    a:::::a   D:::::D    D:::::DA:::::AAAAAAAAAAAAA:::::A O::::::O   O::::::O
[codex:744910] 
[codex:744910] thinking
[codex:744910] **Analyzing potential token redemption exploit**
[codex:744910] exec
[codex:744910] /bin/bash -lc 'rg -n "pandaToken|PANDA|Farewell|PandaDAO" -S contracts/contracts' in /tmp/codex-multi-_xzaj1jf succeeded in 17ms:
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:35:contract PandaDAOFarewell is Ownable, ReentrancyGuard {
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:39:    IERC20 public pandaToken;
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:44:    uint256 public constant PANDADAO_PROJECT_ID = 409;
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:54:        require(openRefund, "PandaDAO: refund close.");
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:71:        address pandaToken_,
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:75:        pandaToken = IERC20(pandaToken_);
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:81:     * @dev redeem $PANDA  tokens.
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:82:     * @param amount The amount of the $PANDA.
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:85:        require(amount > 0, "PandaDAO: Invalid amount required.");
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:86:        require(pandaToken.balanceOf(msg.sender) >= amount, "PandaDAO: you do not have enough PandaToken.");
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:89:        uint256 etherAmount = amount.mulDiv(etherBalance, pandaToken.totalSupply());
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:90:        require(etherBalance >= etherAmount, "PandaDAO: Refund Contract dont have enough ether!");
[codex:744910] contracts/contracts/PandaDAOFarewell.sol:94:        terminalv1_1.redeem(msg.sender, PANDADAO_PROJECT_ID, amount, 0, payable(msg.sender), false);
[codex:744910] 
[codex:744910] 
[codex:744910] thinking
[codex:744910] **Analyzing token burn and redemption risks**
[codex:744910] thinking
[codex:744910] **Confirming repeated redemption vulnerability**
[codex:744910] exec
[codex:744910] /bin/bash -lc "nl -ba contracts/contracts/PandaDAOFarewell.sol | sed -n '80,140p'" in /tmp/codex-multi-_xzaj1jf succeeded in 7ms:
[codex:744910]     80	    /**
[codex:744910]     81	     * @dev redeem $PANDA  tokens.
[codex:744910]     82	     * @param amount The amount of the $PANDA.
[codex:744910]     83	     */
[codex:744910]     84	    function redeem(uint256 amount) external assertNotContract(msg.sender) nonReentrant refundOpenning {
[codex:744910]     85	        require(amount > 0, "PandaDAO: Invalid amount required.");
[codex:744910]     86	        require(pandaToken.balanceOf(msg.sender) >= amount, "PandaDAO: you do not have enough PandaToken.");
[codex:744910]     87	
[codex:744910]     88	        uint256 etherBalance = address(this).balance;
[codex:744910]     89	        uint256 etherAmount = amount.mulDiv(etherBalance, pandaToken.totalSupply());
[codex:744910]     90	        require(etherBalance >= etherAmount, "PandaDAO: Refund Contract dont have enough ether!");
[codex:744910]     91	
[codex:744910]     92	        refundMap[msg.sender] = refundMap[msg.sender] + amount;
[codex:744910]     93	
[codex:744910]     94	        terminalv1_1.redeem(msg.sender, PANDADAO_PROJECT_ID, amount, 0, payable(msg.sender), false);
[codex:744910]     95	
[codex:744910]     96	        
[codex:744910]     97	        (bool success,) = msg.sender.call{value:etherAmount}("");
[codex:744910]     98	        require(success, "redeem ether fail!");
[codex:744910]     99	        emit Redeem(msg.sender, amount, etherAmount);
[codex:744910] 
[codex:744910] 
[codex:744910] thinking
[codex:744910] **Identifying unlimited redeem vulnerability**
[codex:744910] thinking
[codex:744910] **Detailing refundMap misuse and exploit JSON**
[codex:744910] 
[codex:744910] I've gathered enough detail to generate a JSON report highlighting the critical issue: the refund logic never consumes PANDA tokens or enforces the refundMap, allowing unlimited ETH redemptions. I’m ready to produce the final structured JSON outlining severity, exploit steps, recommendations, and code locations.
[codex:744910] codex
[codex:744910] {"no_findings":false,"summary":"1 exploitable issue found that allows repeated refunds without spending PANDA, enabling a full ETH balance drain.","findings":[{"severity":"critical","category":"other","title":"Refund logic never consumes PANDA or enforces refundMap, enabling unlimited ETH redemptions","exploit_scenario":"1) Attacker acquires any amount of PANDA tokens (or temporarily borrows them). 2) Calls redeem(amount). The contract only checks balance and does not transfer/burn PANDA, then pays etherAmount. 3) Attacker retains the same PANDA balance and calls redeem(amount) again. 4) Repeat to drain essentially the entire contract ETH balance (geometric series), since refundMap is never enforced.","recommendation":"Require PANDA to be transferred/burned before payout or enforce per-account redeemed caps using refundMap; if relying on terminal burn, explicitly verify the same ERC20 balance is reduced or remove the redundant balance check and use a trusted burn/transferFrom.","evidence":"redeem() checks pandaToken.balanceOf but never transfers/burns PANDA and refundMap is only incremented, never read, before ETH is sent.","locations":["contracts/contracts/PandaDAOFarewell.sol:84","contracts/contracts/PandaDAOFarewell.sol:86","contracts/contracts/PandaDAOFarewell.sol:92","contracts/contracts/PandaDAOFarewell.sol:97"]}]}
[codex:744910] tokens used
[codex:744910] 22,809
[codex:744910] {"no_findings":false,"summary":"1 exploitable issue found that allows repeated refunds without spending PANDA, enabling a full ETH balance drain.","findings":[{"severity":"critical","category":"other","title":"Refund logic never consumes PANDA or enforces refundMap, enabling unlimited ETH redemptions","exploit_scenario":"1) Attacker acquires any amount of PANDA tokens (or temporarily borrows them). 2) Calls redeem(amount). The contract only checks balance and does not transfer/burn PANDA, then pays etherAmount. 3) Attacker retains the same PANDA balance and calls redeem(amount) again. 4) Repeat to drain essentially the entire contract ETH balance (geometric series), since refundMap is never enforced.","recommendation":"Require PANDA to be transferred/burned before payout or enforce per-account redeemed caps using refundMap; if relying on terminal burn, explicitly verify the same ERC20 balance is reduced or remove the redundant balance check and use a trusted burn/transferFrom.","evidence":"redeem() checks pandaToken.balanceOf but never transfers/burns PANDA and refundMap is only incremented, never read, before ETH is sent.","locations":["contracts/contracts/PandaDAOFarewell.sol:84","contracts/contracts/PandaDAOFarewell.sol:86","contracts/contracts/PandaDAOFarewell.sol:92","contracts/contracts/PandaDAOFarewell.sol:97"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-04T03:05:58.806622+00:00",
        "returncode": 0
    },
    "summary": "1 exploitable issue found that allows repeated refunds without spending PANDA, enabling a full ETH balance drain.",
    "raw_final": {
        "summary": "1 exploitable issue found that allows repeated refunds without spending PANDA, enabling a full ETH balance drain.",
        "findings": [
            {
                "title": "Refund logic never consumes PANDA or enforces refundMap, enabling unlimited ETH redemptions",
                "category": "other",
                "evidence": "redeem() checks pandaToken.balanceOf but never transfers/burns PANDA and refundMap is only incremented, never read, before ETH is sent.",
                "severity": "critical",
                "locations": [
                    "contracts/contracts/PandaDAOFarewell.sol:84",
                    "contracts/contracts/PandaDAOFarewell.sol:86",
                    "contracts/contracts/PandaDAOFarewell.sol:92",
                    "contracts/contracts/PandaDAOFarewell.sol:97"
                ],
                "recommendation": "Require PANDA to be transferred/burned before payout or enforce per-account redeemed caps using refundMap; if relying on terminal burn, explicitly verify the same ERC20 balance is reduced or remove the redundant balance check and use a trusted burn/transferFrom.",
                "exploit_scenario": "1) Attacker acquires any amount of PANDA tokens (or temporarily borrows them). 2) Calls redeem(amount). The contract only checks balance and does not transfer/burn PANDA, then pays etherAmount. 3) Attacker retains the same PANDA balance and calls redeem(amount) again. 4) Repeat to drain essentially the entire contract ETH balance (geometric series), since refundMap is never enforced."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
1
CALL-family (heavy)
6
EXT*/BALANCE
4
Total opcodes
2352
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00bf
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x8da5cb5b
00000019: GT
0000001a: PUSH2 0x006e
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xdb006a75
00000024: GT
00000025: PUSH2 0x004b
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xdb006a75
0000002f: EQ
00000030: PUSH2 0x0216
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xe7caf3ae
0000003a: EQ
0000003b: PUSH2 0x0236
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf2fde38b
00000045: EQ
00000046: PUSH2 0x0256
00000049: JUMPI
0000004a: STOP
0000004b: JUMPDEST
0000004c: DUP1
0000004d: PUSH4 0x8da5cb5b
00000052: EQ
00000053: PUSH2 0x01a4
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xa1db9782
0000005d: EQ
0000005e: PUSH2 0x01d6
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xa75480af
00000068: EQ
00000069: PUSH2 0x01f6
0000006c: JUMPI
0000006d: STOP
0000006e: JUMPDEST
0000006f: DUP1
00000070: PUSH4 0x4a15a144
00000075: GT
00000076: PUSH2 0x009c
00000079: JUMPI
0000007a: DUP1
0000007b: PUSH4 0x4a15a144
00000080: EQ
00000081: PUSH2 0x0159
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0x715018a6
0000008b: EQ
0000008c: PUSH2 0x016f
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0x89222d3b
00000096: EQ
00000097: PUSH2 0x0184
0000009a: JUMPI
0000009b: STOP
0000009c: JUMPDEST
0000009d: DUP1
0000009e: PUSH4 0x22d11ab9
000000a3: EQ
000000a4: PUSH2 0x00c8
000000a7: JUMPI
000000a8: DUP1
000000a9: PUSH4 0x392aa4d5
000000ae: EQ
000000af: PUSH2 0x0108
000000b2: JUMPI
000000b3: DUP1
000000b4: PUSH4 0x3bed33ce
000000b9: EQ
000000ba: PUSH2 0x0139
000000bd: JUMPI
000000be: STOP
000000bf: JUMPDEST
000000c0: CALLDATASIZE
000000c1: PUSH2 0x00c6
000000c4: JUMPI
000000c5: STOP
000000c6: JUMPDEST
000000c7: STOP
000000c8: JUMPDEST
000000c9: CALLVALUE
000000ca: DUP1
000000cb: ISZERO
000000cc: PUSH2 0x00d4
000000cf: JUMPI
000000d0: PUSH1 0x00
000000d2: DUP1
000000d3: REVERT
000000d4: JUMPDEST
000000d5: POP
000000d6: PUSH2 0x00f5
000000d9: PUSH2 0x00e3
000000dc: CALLDATASIZE
000000dd: PUSH1 0x04
000000df: PUSH2 0x0f50
000000e2: JUMP
000000e3: JUMPDEST
000000e4: PUSH1 0x05
000000e6: PUSH1 0x20
000000e8: MSTORE
000000e9: PUSH1 0x00
000000eb: SWAP1
000000ec: DUP2
000000ed: MSTORE
000000ee: PUSH1 0x40
000000f0: SWAP1
000000f1: KECCAK256
000000f2: SLOAD
000000f3: DUP2
000000f4: JUMP
000000f5: JUMPDEST
000000f6: PUSH1 0x40
000000f8: MLOAD
000000f9: SWAP1
000000fa: DUP2
000000fb: MSTORE
000000fc: PUSH1 0x20
000000fe: ADD
000000ff: JUMPDEST
00000100: PUSH1 0x40
00000102: MLOAD
00000103: DUP1
00000104: SWAP2
00000105: SUB
00000106: SWAP1
00000107: RETURN
00000108: JUMPDEST
00000109: CALLVALUE
0000010a: DUP1
0000010b: ISZERO
0000010c: PUSH2 0x0114
0000010f: JUMPI
00000110: PUSH1 0x00
00000112: DUP1
00000113: REVERT
00000114: JUMPDEST
00000115: POP
00000116: PUSH1 0x03
00000118: SLOAD
00000119: PUSH2 0x0129
0000011c: SWAP1
0000011d: PUSH1 0x01
0000011f: PUSH1 0xa0
00000121: SHL
00000122: SWAP1
00000123: DIV
00000124: PUSH1 0xff
00000126: AND
00000127: DUP2
00000128: JUMP
00000129: JUMPDEST
0000012a: PUSH1 0x40
0000012c: MLOAD
0000012d: SWAP1
0000012e: ISZERO
0000012f: ISZERO
00000130: DUP2
00000131: MSTORE
00000132: PUSH1 0x20
00000134: ADD
00000135: PUSH2 0x00ff
00000138: JUMP
00000139: JUMPDEST
0000013a: CALLVALUE
0000013b: DUP1
0000013c: ISZERO
0000013d: PUSH2 0x0145
00000140: JUMPI
00000141: PUSH1 0x00
00000143: DUP1
00000144: REVERT
00000145: JUMPDEST
00000146: POP
00000147: PUSH2 0x00c6
0000014a: PUSH2 0x0154
0000014d: CALLDATASIZE
0000014e: PUSH1 0x04
00000150: PUSH2 0x0fcf
00000153: JUMP
00000154: JUMPDEST
00000155: PUSH2 0x0276
00000158: JUMP
00000159: JUMPDEST
0000015a: CALLVALUE
0000015b: DUP1
0000015c: ISZERO
0000015d: PUSH2 0x0165
00000160: JUMPI
00000161: PUSH1 0x00
00000163: DUP1
00000164: REVERT
00000165: JUMPDEST
00000166: POP
00000167: PUSH2 0x00f5
0000016a: PUSH2 0x0199
0000016d: DUP2
0000016e: JUMP
0000016f: JUMPDEST
00000170: CALLVALUE
00000171: DUP1
00000172: ISZERO
00000173: PUSH2 0x017b
00000176: JUMPI
00000177: PUSH1 0x00
00000179: DUP1
0000017a: REVERT
0000017b: JUMPDEST
0000017c: POP
0000017d: PUSH2 0x00c6
00000180: PUSH2 0x0359
00000183: JUMP
00000184: JUMPDEST
00000185: CALLVALUE
00000186: DUP1
00000187: ISZERO
00000188: PUSH2 0x0190
0000018b: JUMPI
0000018c: PUSH1 0x00
0000018e: DUP1
0000018f: REVERT
00000190: JUMPDEST
00000191: POP
00000192: PUSH2 0x00c6
00000195: PUSH2 0x019f
00000198: CALLDATASIZE
00000199: PUSH1 0x04
0000019b: PUSH2 0x0f95
0000019e: JUMP
0000019f: JUMPDEST
000001a0: PUSH2 0x036d
000001a3: JUMP
000001a4: JUMPDEST
000001a5: CALLVALUE
000001a6: DUP1
000001a7: ISZERO
000001a8: PUSH2 0x01b0
000001ab: JUMPI
000001ac: PUSH1 0x00
000001ae: DUP1
000001af: REVERT
000001b0: JUMPDEST
000001b1: POP
000001b2: PUSH1 0x00
000001b4: SLOAD
000001b5: PUSH1 0x01
000001b7: PUSH1 0x01
000001b9: PUSH1 0xa0
000001bb: SHL
000001bc: SUB
000001bd: AND
000001be: JUMPDEST
000001bf: PUSH1 0x40
000001c1: MLOAD
000001c2: PUSH1 0x01
000001c4: PUSH1 0x01
000001c6: PUSH1 0xa0
000001c8: SHL
000001c9: SUB
000001ca: SWAP1
000001cb: SWAP2
000001cc: AND
000001cd: DUP2
000001ce: MSTORE
000001cf: PUSH1 0x20
000001d1: ADD
000001d2: PUSH2 0x00ff
000001d5: JUMP
000001d6: JUMPDEST
000001d7: CALLVALUE
000001d8: DUP1
000001d9: ISZERO
000001da: PUSH2 0x01e2
000001dd: JUMPI
000001de: PUSH1 0x00
000001e0: DUP1
000001e1: REVERT
000001e2: JUMPDEST
000001e3: POP
000001e4: PUSH2 0x00c6
000001e7: PUSH2 0x01f1
000001ea: CALLDATASIZE
000001eb: PUSH1 0x04
000001ed: PUSH2 0x0f6b
000001f0: JUMP
000001f1: JUMPDEST
000001f2: PUSH2 0x03e8
000001f5: JUMP
000001f6: JUMPDEST
000001f7: CALLVALUE
000001f8: DUP1
000001f9: ISZERO
000001fa: PUSH2 0x0202
000001fd: JUMPI
000001fe: PUSH1 0x00
00000200: DUP1
00000201: REVERT
00000202: JUMPDEST
00000203: POP
00000204: PUSH1 0x03
00000206: SLOAD
00000207: PUSH2 0x01be
0000020a: SWAP1
0000020b: PUSH1 0x01
0000020d: PUSH1 0x01
0000020f: PUSH1 0xa0
00000211: SHL
00000212: SUB
00000213: AND
00000214: DUP2
00000215: JUMP
00000216: JUMPDEST
00000217: CALLVALUE
00000218: DUP1
00000219: ISZERO
0000021a: PUSH2 0x0222
0000021d: JUMPI
0000021e: PUSH1 0x00
00000220: DUP1
00000221: REVERT
00000222: JUMPDEST
00000223: POP
00000224: PUSH2 0x00c6
00000227: PUSH2 0x0231
0000022a: CALLDATASIZE
0000022b: PUSH1 0x04
0000022d: PUSH2 0x0fcf
00000230: JUMP
00000231: JUMPDEST
00000232: PUSH2 0x04a0
00000235: JUMP
00000236: JUMPDEST
00000237: CALLVALUE
00000238: DUP1
00000239: ISZERO
0000023a: PUSH2 0x0242
0000023d: JUMPI
0000023e: PUSH1 0x00
00000240: DUP1
00000241: REVERT
00000242: JUMPDEST
00000243: POP
00000244: PUSH1 0x02
00000246: SLOAD
00000247: PUSH2 0x01be
0000024a: SWAP1
0000024b: PUSH1 0x01
0000024d: PUSH1 0x01
0000024f: PUSH1 0xa0
00000251: SHL
00000252: SUB
00000253: AND
00000254: DUP2
00000255: JUMP
00000256: JUMPDEST
00000257: CALLVALUE
00000258: DUP1
00000259: ISZERO
0000025a: PUSH2 0x0262
0000025d: JUMPI
0000025e: PUSH1 0x00
00000260: DUP1
00000261: REVERT
00000262: JUMPDEST
00000263: POP
00000264: PUSH2 0x00c6
00000267: PUSH2 0x0271
0000026a: CALLDATASIZE
0000026b: PUSH1 0x04
0000026d: PUSH2 0x0f50
00000270: JUMP
00000271: JUMPDEST
00000272: PUSH2 0x0a2a
00000275: JUMP
00000276: JUMPDEST
00000277: PUSH2 0x027e
0000027a: PUSH2 0x0aba
0000027d: JUMP
0000027e: JUMPDEST
0000027f: PUSH1 0x40
00000281: MLOAD
00000282: PUSH1 0x00
00000284: SWAP1
00000285: CALLER
00000286: SWAP1
00000287: DUP4
00000288: SWAP1
00000289: DUP4
0000028a: DUP2
0000028b: DUP2
0000028c: DUP2
0000028d: DUP6
0000028e: DUP8
0000028f: GAS
00000290: CALL
00000291: SWAP3
00000292: POP
00000293: POP
00000294: POP
00000295: RETURNDATASIZE
00000296: DUP1
00000297: PUSH1 0x00
00000299: DUP2
0000029a: EQ
0000029b: PUSH2 0x02c0
0000029e: JUMPI
0000029f: PUSH1 0x40
000002a1: MLOAD
000002a2: SWAP2
000002a3: POP
000002a4: PUSH1 0x1f
000002a6: NOT
000002a7: PUSH1 0x3f
000002a9: RETURNDATASIZE
000002aa: ADD
000002ab: AND
000002ac: DUP3
000002ad: ADD
000002ae: PUSH1 0x40
000002b0: MSTORE
000002b1: RETURNDATASIZE
000002b2: DUP3
000002b3: MSTORE
000002b4: RETURNDATASIZE
000002b5: PUSH1 0x00
000002b7: PUSH1 0x20
000002b9: DUP5
000002ba: ADD
000002bb: RETURNDATACOPY
000002bc: PUSH2 0x02c5
000002bf: JUMP
000002c0: JUMPDEST
000002c1: PUSH1 0x60
000002c3: SWAP2
000002c4: POP
000002c5: JUMPDEST
000002c6: POP
000002c7: POP
000002c8: SWAP1
000002c9: POP
000002ca: DUP1
000002cb: PUSH2 0x031b
000002ce: JUMPI
000002cf: PUSH1 0x40
000002d1: MLOAD
000002d2: PUSH3 0x461bcd
000002d6: PUSH1 0xe5
000002d8: SHL
000002d9: DUP2
000002da: MSTORE
000002db: PUSH1 0x20
000002dd: PUSH1 0x04
000002df: DUP3
000002e0: ADD
000002e1: MSTORE
000002e2: PUSH1 0x13
000002e4: PUSH1 0x24
000002e6: DUP3
000002e7: ADD
000002e8: MSTORE
000002e9: PUSH32 0x77697468647261774574686572206661696c2100000000000000000000000000
0000030a: PUSH1 0x44
0000030c: DUP3
0000030d: ADD
0000030e: MSTORE
0000030f: PUSH1 0x64
00000311: ADD
00000312: JUMPDEST
00000313: PUSH1 0x40
00000315: MLOAD
00000316: DUP1
00000317: SWAP2
00000318: SUB
00000319: SWAP1
0000031a: REVERT
0000031b: JUMPDEST
0000031c: PUSH1 0x40
0000031e: DUP1
0000031f: MLOAD
00000320: CALLER
00000321: DUP2
00000322: MSTORE
00000323: PUSH1 0x20
00000325: DUP2
00000326: ADD
00000327: DUP5
00000328: SWAP1
00000329: MSTORE
0000032a: PUSH32 0xdb35132c111efe920cede025e819975671cfd1b8fcc1174762c8670c4e94c211
0000034b: SWAP2
0000034c: ADD
0000034d: JUMPDEST
0000034e: PUSH1 0x40
00000350: MLOAD
00000351: DUP1
00000352: SWAP2
00000353: SUB
00000354: SWAP1
00000355: LOG1
00000356: POP
00000357: POP
00000358: JUMP
00000359: JUMPDEST
0000035a: PUSH2 0x0361
0000035d: PUSH2 0x0aba
00000360: JUMP
00000361: JUMPDEST
00000362: PUSH2 0x036b
00000365: PUSH1 0x00
00000367: PUSH2 0x0b14
0000036a: JUMP
0000036b: JUMPDEST
0000036c: JUMP
0000036d: JUMPDEST
0000036e: PUSH2 0x0375
00000371: PUSH2 0x0aba
00000374: JUMP
00000375: JUMPDEST
00000376: PUSH1 0x03
00000378: DUP1
00000379: SLOAD
0000037a: DUP3
0000037b: ISZERO
0000037c: ISZERO
0000037d: PUSH1 0x01
0000037f: PUSH1 0xa0
00000381: SHL
00000382: MUL
00000383: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
000003a4: SWAP1
000003a5: SWAP2
000003a6: AND
000003a7: OR
000003a8: SWAP1
000003a9: SSTORE
000003aa: PUSH1 0x40
000003ac: MLOAD
000003ad: PUSH32 0x63ee57679f1c64954986da6b53d0654425016aa0a50a01e8845168d786a8cac6
000003ce: SWAP1
000003cf: PUSH2 0x03dd
000003d2: SWAP1
000003d3: DUP4
000003d4: ISZERO
000003d5: ISZERO
000003d6: DUP2
000003d7: MSTORE
000003d8: PUSH1 0x20
000003da: ADD
000003db: SWAP1
000003dc: JUMP
000003dd: JUMPDEST
000003de: PUSH1 0x40
000003e0: MLOAD
000003e1: DUP1
000003e2: SWAP2
000003e3: SUB
000003e4: SWAP1
000003e5: LOG1
000003e6: POP
000003e7: JUMP
000003e8: JUMPDEST
000003e9: PUSH2 0x03f0
000003ec: PUSH2 0x0aba
000003ef: JUMP
000003f0: JUMPDEST
000003f1: PUSH1 0x01
000003f3: PUSH1 0x01
000003f5: PUSH1 0xa0
000003f7: SHL
000003f8: SUB
000003f9: DUP3
000003fa: AND
000003fb: PUSH2 0x0446
000003fe: JUMPI
000003ff: PUSH1 0x40
00000401: MLOAD
00000402: PUSH3 0x461bcd
00000406: PUSH1 0xe5
00000408: SHL
00000409: DUP2
0000040a: MSTORE
0000040b: PUSH1 0x20
0000040d: PUSH1 0x04
0000040f: DUP3
00000410: ADD
00000411: MSTORE
00000412: PUSH1 0x13
00000414: PUSH1 0x24
00000416: DUP3
00000417: ADD
00000418: MSTORE
00000419: PUSH32 0x5a65726f20546f6b656e20616464726573732100000000000000000000000000
0000043a: PUSH1 0x44
0000043c: DUP3
0000043d: ADD
0000043e: MSTORE
0000043f: PUSH1 0x64
00000441: ADD
00000442: PUSH2 0x0312
00000445: JUMP
00000446: JUMPDEST
00000447: PUSH2 0x045a
0000044a: PUSH1 0x01
0000044c: PUSH1 0x01
0000044e: PUSH1 0xa0
00000450: SHL
00000451: SUB
00000452: DUP4
00000453: AND
00000454: CALLER
00000455: DUP4
00000456: PUSH2 0x0b7c
00000459: JUMP
0000045a: JUMPDEST
0000045b: PUSH1 0x40
0000045d: DUP1
0000045e: MLOAD
0000045f: CALLER
00000460: DUP2
00000461: MSTORE
00000462: PUSH1 0x01
00000464: PUSH1 0x01
00000466: PUSH1 0xa0
00000468: SHL
00000469: SUB
0000046a: DUP5
0000046b: AND
0000046c: PUSH1 0x20
0000046e: DUP3
0000046f: ADD
00000470: MSTORE
00000471: SWAP1
00000472: DUP2
00000473: ADD
00000474: DUP3
00000475: SWAP1
00000476: MSTORE
00000477: PUSH32 0x33c35f9541201e342d5e7467016e65a0a06182eb12a5f17103f71cec95b6cb29
00000498: SWAP1
00000499: PUSH1 0x60
0000049b: ADD
0000049c: PUSH2 0x034d
0000049f: JUMP
000004a0: JUMPDEST
000004a1: CALLER
000004a2: ORIGIN
000004a3: DUP2
000004a4: EQ
000004a5: PUSH2 0x0516
000004a8: JUMPI
000004a9: PUSH1 0x40
000004ab: MLOAD
000004ac: PUSH3 0x461bcd
000004b0: PUSH1 0xe5
000004b2: SHL
000004b3: DUP2
000004b4: MSTORE
000004b5: PUSH1 0x20
000004b7: PUSH1 0x04
000004b9: DUP3
000004ba: ADD
000004bb: MSTORE
000004bc: PUSH1 0x21
000004be: PUSH1 0x24
000004c0: DUP3
000004c1: ADD
000004c2: MSTORE
000004c3: PUSH32 0x536d61727420636f6e74726163742063616c6c6572206e6f7420616c6c6f7765
000004e4: PUSH1 0x44
000004e6: DUP3
000004e7: ADD
000004e8: MSTORE
000004e9: PUSH32 0x6400000000000000000000000000000000000000000000000000000000000000
0000050a: PUSH1 0x64
0000050c: DUP3
0000050d: ADD
0000050e: MSTORE
0000050f: PUSH1 0x84
00000511: ADD
00000512: PUSH2 0x0312
00000515: JUMP
00000516: JUMPDEST
00000517: PUSH1 0x02
00000519: PUSH1 0x01
0000051b: SLOAD
0000051c: EQ
0000051d: ISZERO
0000051e: PUSH2 0x0569
00000521: JUMPI
00000522: PUSH1 0x40
00000524: MLOAD
00000525: PUSH3 0x461bcd
00000529: PUSH1 0xe5
0000052b: SHL
0000052c: DUP2
0000052d: MSTORE
0000052e: PUSH1 0x20
00000530: PUSH1 0x04
00000532: DUP3
00000533: ADD
00000534: MSTORE
00000535: PUSH1 0x1f
00000537: PUSH1 0x24
00000539: DUP3
0000053a: ADD
0000053b: MSTORE
0000053c: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00
0000055d: PUSH1 0x44
0000055f: DUP3
00000560: ADD
00000561: MSTORE
00000562: PUSH1 0x64
00000564: ADD
00000565: PUSH2 0x0312
00000568: JUMP
00000569: JUMPDEST
0000056a: PUSH1 0x02
0000056c: PUSH1 0x01
0000056e: SSTORE
0000056f: PUSH1 0x03
00000571: SLOAD
00000572: PUSH1 0x01
00000574: PUSH1 0xa0
00000576: SHL
00000577: SWAP1
00000578: DIV
00000579: PUSH1 0xff
0000057b: AND
0000057c: PUSH2 0x05c7
0000057f: JUMPI
00000580: PUSH1 0x40
00000582: MLOAD
00000583: PUSH3 0x461bcd
00000587: PUSH1 0xe5
00000589: SHL
0000058a: DUP2
0000058b: MSTORE
0000058c: PUSH1 0x20
0000058e: PUSH1 0x04
00000590: DUP3
00000591: ADD
00000592: MSTORE
00000593: PUSH1 0x17
00000595: PUSH1 0x24
00000597: DUP3
00000598: ADD
00000599: MSTORE
0000059a: PUSH32 0x50616e646144414f3a20726566756e6420636c6f73652e000000000000000000
000005bb: PUSH1 0x44
000005bd: DUP3
000005be: ADD
000005bf: MSTORE
000005c0: PUSH1 0x64
000005c2: ADD
000005c3: PUSH2 0x0312
000005c6: JUMP
000005c7: JUMPDEST
000005c8: PUSH1 0x00
000005ca: DUP3
000005cb: GT
000005cc: PUSH2 0x063d
000005cf: JUMPI
000005d0: PUSH1 0x40
000005d2: MLOAD
000005d3: PUSH3 0x461bcd
000005d7: PUSH1 0xe5
000005d9: SHL
000005da: DUP2
000005db: MSTORE
000005dc: PUSH1 0x20
000005de: PUSH1 0x04
000005e0: DUP3
000005e1: ADD
000005e2: MSTORE
000005e3: PUSH1 0x22
000005e5: PUSH1 0x24
000005e7: DUP3
000005e8: ADD
000005e9: MSTORE
000005ea: PUSH32 0x50616e646144414f3a20496e76616c696420616d6f756e742072657175697265
0000060b: PUSH1 0x44
0000060d: DUP3
0000060e: ADD
0000060f: MSTORE
00000610: PUSH32 0x642e000000000000000000000000000000000000000000000000000000000000
00000631: PUSH1 0x64
00000633: DUP3
00000634: ADD
00000635: MSTORE
00000636: PUSH1 0x84
00000638: ADD
00000639: PUSH2 0x0312
0000063c: JUMP
0000063d: JUMPDEST
0000063e: PUSH1 0x02
00000640: SLOAD
00000641: PUSH1 0x40
00000643: MLOAD
00000644: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00000665: DUP2
00000666: MSTORE
00000667: CALLER
00000668: PUSH1 0x04
0000066a: DUP3
0000066b: ADD
0000066c: MSTORE
0000066d: DUP4
0000066e: SWAP2
0000066f: PUSH1 0x01
00000671: PUSH1 0x01
00000673: PUSH1 0xa0
00000675: SHL
00000676: SUB
00000677: AND
00000678: SWAP1
00000679: PUSH4 0x70a08231
0000067e: SWAP1
0000067f: PUSH1 0x24
00000681: ADD
00000682: PUSH1 0x20
00000684: PUSH1 0x40
00000686: MLOAD
00000687: DUP1
00000688: DUP4
00000689: SUB
0000068a: DUP2
0000068b: DUP7
0000068c: DUP1
0000068d: EXTCODESIZE
0000068e: ISZERO
0000068f: DUP1
00000690: ISZERO
00000691: PUSH2 0x0699
00000694: JUMPI
00000695: PUSH1 0x00
00000697: DUP1
00000698: REVERT
00000699: JUMPDEST
0000069a: POP
0000069b: GAS
0000069c: STATICCALL
0000069d: ISZERO
0000069e: DUP1
0000069f: ISZERO
000006a0: PUSH2 0x06ad
000006a3: JUMPI
000006a4: RETURNDATASIZE
000006a5: PUSH1 0x00
000006a7: DUP1
000006a8: RETURNDATACOPY
000006a9: RETURNDATASIZE
000006aa: PUSH1 0x00
000006ac: REVERT
000006ad: JUMPDEST
000006ae: POP
000006af: POP
000006b0: POP
000006b1: POP
000006b2: PUSH1 0x40
000006b4: MLOAD
000006b5: RETURNDATASIZE
000006b6: PUSH1 0x1f
000006b8: NOT
000006b9: PUSH1 0x1f
000006bb: DUP3
000006bc: ADD
000006bd: AND
000006be: DUP3
000006bf: ADD
000006c0: DUP1
000006c1: PUSH1 0x40
000006c3: MSTORE
000006c4: POP
000006c5: DUP2
000006c6: ADD
000006c7: SWAP1
000006c8: PUSH2 0x06d1
000006cb: SWAP2
000006cc: SWAP1
000006cd: PUSH2 0x0fe8
000006d0: JUMP
000006d1: JUMPDEST
000006d2: LT
000006d3: ISZERO
000006d4: PUSH2 0x0745
000006d7: JUMPI
000006d8: PUSH1 0x40
000006da: MLOAD
000006db: PUSH3 0x461bcd
000006df: PUSH1 0xe5
000006e1: SHL
000006e2: DUP2
000006e3: MSTORE
000006e4: PUSH1 0x20
000006e6: PUSH1 0x04
000006e8: DUP3
000006e9: ADD
000006ea: MSTORE
000006eb: PUSH1 0x2c
000006ed: PUSH1 0x24
000006ef: DUP3
000006f0: ADD
000006f1: MSTORE
000006f2: PUSH32 0x50616e646144414f3a20796f7520646f206e6f74206861766520656e6f756768
00000713: PUSH1 0x44
00000715: DUP3
00000716: ADD
00000717: MSTORE
00000718: PUSH32 0x2050616e6461546f6b656e2e0000000000000000000000000000000000000000
00000739: PUSH1 0x64
0000073b: DUP3
0000073c: ADD
0000073d: MSTORE
0000073e: PUSH1 0x84
00000740: ADD
00000741: PUSH2 0x0312
00000744: JUMP
00000745: JUMPDEST
00000746: PUSH1 0x02
00000748: SLOAD
00000749: PUSH1 0x40
0000074b: DUP1
0000074c: MLOAD
0000074d: PUSH32 0x18160ddd00000000000000000000000000000000000000000000000000000000
0000076e: DUP2
0000076f: MSTORE
00000770: SWAP1
00000771: MLOAD
00000772: SELFBALANCE
00000773: SWAP3
00000774: PUSH1 0x00
00000776: SWAP3
00000777: PUSH2 0x07eb
0000077a: SWAP3
0000077b: DUP6
0000077c: SWAP3
0000077d: PUSH1 0x01
0000077f: PUSH1 0x01
00000781: PUSH1 0xa0
00000783: SHL
00000784: SUB
00000785: AND
00000786: SWAP2
00000787: PUSH4 0x18160ddd
0000078c: SWAP2
0000078d: PUSH1 0x04
0000078f: DUP1
00000790: DUP4
00000791: ADD
00000792: SWAP3
00000793: PUSH1 0x20
00000795: SWAP3
00000796: SWAP2
00000797: SWAP1
00000798: DUP3
00000799: SWAP1
0000079a: SUB
0000079b: ADD
0000079c: DUP2
0000079d: DUP7
0000079e: DUP1
0000079f: EXTCODESIZE
000007a0: ISZERO
000007a1: DUP1
000007a2: ISZERO
000007a3: PUSH2 0x07ab
000007a6: JUMPI
000007a7: PUSH1 0x00
000007a9: DUP1
000007aa: REVERT
000007ab: JUMPDEST
000007ac: POP
000007ad: GAS
000007ae: STATICCALL
000007af: ISZERO
000007b0: DUP1
000007b1: ISZERO
000007b2: PUSH2 0x07bf
000007b5: JUMPI
000007b6: RETURNDATASIZE
000007b7: PUSH1 0x00
000007b9: DUP1
000007ba: RETURNDATACOPY
000007bb: RETURNDATASIZE
000007bc: PUSH1 0x00
000007be: REVERT
000007bf: JUMPDEST
000007c0: POP
000007c1: POP
000007c2: POP
000007c3: POP
000007c4: PUSH1 0x40
000007c6: MLOAD
000007c7: RETURNDATASIZE
000007c8: PUSH1 0x1f
000007ca: NOT
000007cb: PUSH1 0x1f
000007cd: DUP3
000007ce: ADD
000007cf: AND
000007d0: DUP3
000007d1: ADD
000007d2: DUP1
000007d3: PUSH1 0x40
000007d5: MSTORE
000007d6: POP
000007d7: DUP2
000007d8: ADD
000007d9: SWAP1
000007da: PUSH2 0x07e3
000007dd: SWAP2
000007de: SWAP1
000007df: PUSH2 0x0fe8
000007e2: JUMP
000007e3: JUMPDEST
000007e4: DUP7
000007e5: SWAP2
000007e6: SWAP1
000007e7: PUSH2 0x0c01
000007ea: JUMP
000007eb: JUMPDEST
000007ec: SWAP1
000007ed: POP
000007ee: DUP1
000007ef: DUP3
000007f0: LT
000007f1: ISZERO
000007f2: PUSH2 0x0863
000007f5: JUMPI
000007f6: PUSH1 0x40
000007f8: MLOAD
000007f9: PUSH3 0x461bcd
000007fd: PUSH1 0xe5
000007ff: SHL
00000800: DUP2
00000801: MSTORE
00000802: PUSH1 0x20
00000804: PUSH1 0x04
00000806: DUP3
00000807: ADD
00000808: MSTORE
00000809: PUSH1 0x31
0000080b: PUSH1 0x24
0000080d: DUP3
0000080e: ADD
0000080f: MSTORE
00000810: PUSH32 0x50616e646144414f3a20526566756e6420436f6e747261637420646f6e742068
00000831: PUSH1 0x44
00000833: DUP3
00000834: ADD
00000835: MSTORE
00000836: PUSH32 0x61766520656e6f75676820657468657221000000000000000000000000000000
00000857: PUSH1 0x64
00000859: DUP3
0000085a: ADD
0000085b: MSTORE
0000085c: PUSH1 0x84
0000085e: ADD
0000085f: PUSH2 0x0312
00000862: JUMP
00000863: JUMPDEST
00000864: CALLER
00000865: PUSH1 0x00
00000867: SWAP1
00000868: DUP2
00000869: MSTORE
0000086a: PUSH1 0x05
0000086c: PUSH1 0x20
0000086e: MSTORE
0000086f: PUSH1 0x40
00000871: SWAP1
00000872: KECCAK256
00000873: SLOAD
00000874: PUSH2 0x087e
00000877: SWAP1
00000878: DUP6
00000879: SWAP1
0000087a: PUSH2 0x1050
0000087d: JUMP
0000087e: JUMPDEST
0000087f: CALLER
00000880: PUSH1 0x00
00000882: DUP2
00000883: DUP2
00000884: MSTORE
00000885: PUSH1 0x05
00000887: PUSH1 0x20
00000889: MSTORE
0000088a: PUSH1 0x40
0000088c: DUP1
0000088d: DUP3
0000088e: KECCAK256
0000088f: SWAP4
00000890: SWAP1
00000891: SWAP4
00000892: SSTORE
00000893: PUSH1 0x03
00000895: SLOAD
00000896: SWAP3
00000897: MLOAD
00000898: PUSH32 0x3015a5b500000000000000000000000000000000000000000000000000000000
000008b9: DUP2
000008ba: MSTORE
000008bb: PUSH1 0x04
000008bd: DUP2
000008be: ADD
000008bf: DUP4
000008c0: SWAP1
000008c1: MSTORE
000008c2: PUSH2 0x0199
000008c5: PUSH1 0x24
000008c7: DUP3
000008c8: ADD
000008c9: MSTORE
000008ca: PUSH1 0x44
000008cc: DUP2
000008cd: ADD
000008ce: DUP9
000008cf: SWAP1
000008d0: MSTORE
000008d1: PUSH1 0x64
000008d3: DUP2
000008d4: ADD
000008d5: DUP3
000008d6: SWAP1
000008d7: MSTORE
000008d8: PUSH1 0x84
000008da: DUP2
000008db: ADD
000008dc: SWAP3
000008dd: SWAP1
000008de: SWAP3
000008df: MSTORE
000008e0: PUSH1 0xa4
000008e2: DUP3
000008e3: ADD
000008e4: MSTORE
000008e5: PUSH1 0x01
000008e7: PUSH1 0x01
000008e9: PUSH1 0xa0
000008eb: SHL
000008ec: SUB
000008ed: SWAP1
000008ee: SWAP2
000008ef: AND
000008f0: SWAP1
000008f1: PUSH4 0x3015a5b5
000008f6: SWAP1
000008f7: PUSH1 0xc4
000008f9: ADD
000008fa: PUSH1 0x20
000008fc: PUSH1 0x40
000008fe: MLOAD
000008ff: DUP1
00000900: DUP4
00000901: SUB
00000902: DUP2
00000903: PUSH1 0x00
00000905: DUP8
00000906: DUP1
00000907: EXTCODESIZE
00000908: ISZERO
00000909: DUP1
0000090a: ISZERO
0000090b: PUSH2 0x0913
0000090e: JUMPI
0000090f: PUSH1 0x00
00000911: DUP1
00000912: REVERT
00000913: JUMPDEST
00000914: POP
00000915: GAS
00000916: CALL
00000917: ISZERO
00000918: DUP1
00000919: ISZERO
0000091a: PUSH2 0x0927
0000091d: JUMPI
0000091e: RETURNDATASIZE
0000091f: PUSH1 0x00
00000921: DUP1
00000922: RETURNDATACOPY
00000923: RETURNDATASIZE
00000924: PUSH1 0x00
00000926: REVERT
00000927: JUMPDEST
00000928: POP
00000929: POP
0000092a: POP
0000092b: POP
0000092c: PUSH1 0x40
0000092e: MLOAD
0000092f: RETURNDATASIZE
00000930: PUSH1 0x1f
00000932: NOT
00000933: PUSH1 0x1f
00000935: DUP3
00000936: ADD
00000937: AND
00000938: DUP3
00000939: ADD
0000093a: DUP1
0000093b: PUSH1 0x40
0000093d: MSTORE
0000093e: POP
0000093f: DUP2
00000940: ADD
00000941: SWAP1
00000942: PUSH2 0x094b
00000945: SWAP2
00000946: SWAP1
00000947: PUSH2 0x0fe8
0000094a: JUMP
0000094b: JUMPDEST
0000094c: POP
0000094d: PUSH1 0x40
0000094f: MLOAD
00000950: PUSH1 0x00
00000952: SWAP1
00000953: CALLER
00000954: SWAP1
00000955: DUP4
00000956: SWAP1
00000957: DUP4
00000958: DUP2
00000959: DUP2
0000095a: DUP2
0000095b: DUP6
0000095c: DUP8
0000095d: GAS
0000095e: CALL
0000095f: SWAP3
00000960: POP
00000961: POP
00000962: POP
00000963: RETURNDATASIZE
00000964: DUP1
00000965: PUSH1 0x00
00000967: DUP2
00000968: EQ
00000969: PUSH2 0x098e
0000096c: JUMPI
0000096d: PUSH1 0x40
0000096f: MLOAD
00000970: SWAP2
00000971: POP
00000972: PUSH1 0x1f
00000974: NOT
00000975: PUSH1 0x3f
00000977: RETURNDATASIZE
00000978: ADD
00000979: AND
0000097a: DUP3
0000097b: ADD
0000097c: PUSH1 0x40
0000097e: MSTORE
0000097f: RETURNDATASIZE
00000980: DUP3
00000981: MSTORE
00000982: RETURNDATASIZE
00000983: PUSH1 0x00
00000985: PUSH1 0x20
00000987: DUP5
00000988: ADD
00000989: RETURNDATACOPY
0000098a: PUSH2 0x0993
0000098d: JUMP
0000098e: JUMPDEST
0000098f: PUSH1 0x60
00000991: SWAP2
00000992: POP
00000993: JUMPDEST
00000994: POP
00000995: POP
00000996: SWAP1
00000997: POP
00000998: DUP1
00000999: PUSH2 0x09e4
0000099c: JUMPI
0000099d: PUSH1 0x40
0000099f: MLOAD
000009a0: PUSH3 0x461bcd
000009a4: PUSH1 0xe5
000009a6: SHL
000009a7: DUP2
000009a8: MSTORE
000009a9: PUSH1 0x20
000009ab: PUSH1 0x04
000009ad: DUP3
000009ae: ADD
000009af: MSTORE
000009b0: PUSH1 0x12
000009b2: PUSH1 0x24
000009b4: DUP3
000009b5: ADD
000009b6: MSTORE
000009b7: PUSH32 0x72656465656d206574686572206661696c210000000000000000000000000000
000009d8: PUSH1 0x44
000009da: DUP3
000009db: ADD
000009dc: MSTORE
000009dd: PUSH1 0x64
000009df: ADD
000009e0: PUSH2 0x0312
000009e3: JUMP
000009e4: JUMPDEST
000009e5: PUSH1 0x40
000009e7: DUP1
000009e8: MLOAD
000009e9: DUP7
000009ea: DUP2
000009eb: MSTORE
000009ec: PUSH1 0x20
000009ee: DUP2
000009ef: ADD
000009f0: DUP5
000009f1: SWAP1
000009f2: MSTORE
000009f3: CALLER
000009f4: SWAP2
000009f5: PUSH32 0xe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929
00000a16: SWAP2
00000a17: ADD
00000a18: PUSH1 0x40
00000a1a: MLOAD
00000a1b: DUP1
00000a1c: SWAP2
00000a1d: SUB
00000a1e: SWAP1
00000a1f: LOG2
00000a20: POP
00000a21: POP
00000a22: PUSH1 0x01
00000a24: DUP1
00000a25: SSTORE
00000a26: POP
00000a27: POP
00000a28: POP
00000a29: JUMP
00000a2a: JUMPDEST
00000a2b: PUSH2 0x0a32
00000a2e: PUSH2 0x0aba
00000a31: JUMP
00000a32: JUMPDEST
00000a33: PUSH1 0x01
00000a35: PUSH1 0x01
00000a37: PUSH1 0xa0
00000a39: SHL
00000a3a: SUB
00000a3b: DUP2
00000a3c: AND
00000a3d: PUSH2 0x0aae
00000a40: JUMPI
00000a41: PUSH1 0x40
00000a43: MLOAD
00000a44: PUSH3 0x461bcd
00000a48: PUSH1 0xe5
00000a4a: SHL
00000a4b: DUP2
00000a4c: MSTORE
00000a4d: PUSH1 0x20
00000a4f: PUSH1 0x04
00000a51: DUP3
00000a52: ADD
00000a53: MSTORE
00000a54: PUSH1 0x26
00000a56: PUSH1 0x24
00000a58: DUP3
00000a59: ADD
00000a5a: MSTORE
00000a5b: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
00000a7c: PUSH1 0x44
00000a7e: DUP3
00000a7f: ADD
00000a80: MSTORE
00000a81: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000
00000aa2: PUSH1 0x64
00000aa4: DUP3
00000aa5: ADD
00000aa6: MSTORE
00000aa7: PUSH1 0x84
00000aa9: ADD
00000aaa: PUSH2 0x0312
00000aad: JUMP
00000aae: JUMPDEST
00000aaf: PUSH2 0x0ab7
00000ab2: DUP2
00000ab3: PUSH2 0x0b14
00000ab6: JUMP
00000ab7: JUMPDEST
00000ab8: POP
00000ab9: JUMP
00000aba: JUMPDEST
00000abb: PUSH1 0x00
00000abd: SLOAD
00000abe: PUSH1 0x01
00000ac0: PUSH1 0x01
00000ac2: PUSH1 0xa0
00000ac4: SHL
00000ac5: SUB
00000ac6: AND
00000ac7: CALLER
00000ac8: EQ
00000ac9: PUSH2 0x036b
00000acc: JUMPI
00000acd: PUSH1 0x40
00000acf: MLOAD
00000ad0: PUSH3 0x461bcd
00000ad4: PUSH1 0xe5
00000ad6: SHL
00000ad7: DUP2
00000ad8: MSTORE
00000ad9: PUSH1 0x20
00000adb: PUSH1 0x04
00000add: DUP3
00000ade: ADD
00000adf: DUP2
00000ae0: SWAP1
00000ae1: MSTORE
00000ae2: PUSH1 0x24
00000ae4: DUP3
00000ae5: ADD
00000ae6: MSTORE
00000ae7: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00000b08: PUSH1 0x44
00000b0a: DUP3
00000b0b: ADD
00000b0c: MSTORE
00000b0d: PUSH1 0x64
00000b0f: ADD
00000b10: PUSH2 0x0312
00000b13: JUMP
00000b14: JUMPDEST
00000b15: PUSH1 0x00
00000b17: DUP1
00000b18: SLOAD
00000b19: PUSH1 0x01
00000b1b: PUSH1 0x01
00000b1d: PUSH1 0xa0
00000b1f: SHL
00000b20: SUB
00000b21: DUP4
00000b22: DUP2
00000b23: AND
00000b24: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000b45: DUP4
00000b46: AND
00000b47: DUP2
00000b48: OR
00000b49: DUP5
00000b4a: SSTORE
00000b4b: PUSH1 0x40
00000b4d: MLOAD
00000b4e: SWAP2
00000b4f: SWAP1
00000b50: SWAP3
00000b51: AND
00000b52: SWAP3
00000b53: DUP4
00000b54: SWAP2
00000b55: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00000b76: SWAP2
00000b77: SWAP1
00000b78: LOG3
00000b79: POP
00000b7a: POP
00000b7b: JUMP
00000b7c: JUMPDEST
00000b7d: PUSH1 0x40
00000b7f: DUP1
00000b80: MLOAD
00000b81: PUSH1 0x01
00000b83: PUSH1 0x01
00000b85: PUSH1 0xa0
00000b87: SHL
00000b88: SUB
00000b89: DUP5
00000b8a: AND
00000b8b: PUSH1 0x24
00000b8d: DUP3
00000b8e: ADD
00000b8f: MSTORE
00000b90: PUSH1 0x44
00000b92: DUP1
00000b93: DUP3
00000b94: ADD
00000b95: DUP5
00000b96: SWAP1
00000b97: MSTORE
00000b98: DUP3
00000b99: MLOAD
00000b9a: DUP1
00000b9b: DUP4
00000b9c: SUB
00000b9d: SWAP1
00000b9e: SWAP2
00000b9f: ADD
00000ba0: DUP2
00000ba1: MSTORE
00000ba2: PUSH1 0x64
00000ba4: SWAP1
00000ba5: SWAP2
00000ba6: ADD
00000ba7: SWAP1
00000ba8: SWAP2
00000ba9: MSTORE
00000baa: PUSH1 0x20
00000bac: DUP2
00000bad: ADD
00000bae: DUP1
00000baf: MLOAD
00000bb0: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000bcd: AND
00000bce: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00000bef: OR
00000bf0: SWAP1
00000bf1: MSTORE
00000bf2: PUSH2 0x0bfc
00000bf5: SWAP1
00000bf6: DUP5
00000bf7: SWAP1
00000bf8: PUSH2 0x0cb7
00000bfb: JUMP
00000bfc: JUMPDEST
00000bfd: POP
00000bfe: POP
00000bff: POP
00000c00: JUMP
00000c01: JUMPDEST
00000c02: PUSH1 0x00
00000c04: DUP1
00000c05: DUP1
00000c06: PUSH1 0x00
00000c08: NOT
00000c09: DUP6
00000c0a: DUP8
00000c0b: MULMOD
00000c0c: DUP6
00000c0d: DUP8
00000c0e: MUL
00000c0f: SWAP3
00000c10: POP
00000c11: DUP3
00000c12: DUP2
00000c13: LT
00000c14: DUP4
00000c15: DUP3
00000c16: SUB
00000c17: SUB
00000c18: SWAP2
00000c19: POP
00000c1a: POP
00000c1b: DUP1
00000c1c: PUSH1 0x00
00000c1e: EQ
00000c1f: ISZERO
00000c20: PUSH2 0x0c3c
00000c23: JUMPI
00000c24: DUP4
00000c25: DUP3
00000c26: DUP2
00000c27: PUSH2 0x0c32
00000c2a: JUMPI
00000c2b: PUSH2 0x0c32
00000c2e: PUSH2 0x10a6
00000c31: JUMP
00000c32: JUMPDEST
00000c33: DIV
00000c34: SWAP3
00000c35: POP
00000c36: POP
00000c37: POP
00000c38: PUSH2 0x0cb0
00000c3b: JUMP
00000c3c: JUMPDEST
00000c3d: DUP1
00000c3e: DUP5
00000c3f: GT
00000c40: PUSH2 0x0c48
00000c43: JUMPI
00000c44: PUSH1 0x00
00000c46: DUP1
00000c47: REVERT
00000c48: JUMPDEST
00000c49: PUSH1 0x00
00000c4b: DUP5
00000c4c: DUP7
00000c4d: DUP9
00000c4e: MULMOD
00000c4f: DUP6
00000c50: NOT
00000c51: PUSH1 0x01
00000c53: SWAP1
00000c54: DUP2
00000c55: ADD
00000c56: DUP8
00000c57: AND
00000c58: SWAP7
00000c59: DUP8
00000c5a: SWAP1
00000c5b: DIV
00000c5c: SWAP7
00000c5d: DUP3
00000c5e: DUP7
00000c5f: SUB
00000c60: DUP2
00000c61: SWAP1
00000c62: DIV
00000c63: SWAP6
00000c64: SWAP1
00000c65: SWAP3
00000c66: GT
00000c67: SWAP1
00000c68: SWAP4
00000c69: SUB
00000c6a: PUSH1 0x00
00000c6c: DUP3
00000c6d: SWAP1
00000c6e: SUB
00000c6f: SWAP2
00000c70: SWAP1
00000c71: SWAP2
00000c72: DIV
00000c73: SWAP1
00000c74: SWAP3
00000c75: ADD
00000c76: SWAP2
00000c77: SWAP1
00000c78: SWAP2
00000c79: MUL
00000c7a: SWAP2
00000c7b: SWAP1
00000c7c: SWAP2
00000c7d: OR
00000c7e: PUSH1 0x03
00000c80: DUP5
00000c81: MUL
00000c82: PUSH1 0x02
00000c84: SWAP1
00000c85: DUP2
00000c86: XOR
00000c87: DUP1
00000c88: DUP7
00000c89: MUL
00000c8a: DUP3
00000c8b: SUB
00000c8c: MUL
00000c8d: DUP1
00000c8e: DUP7
00000c8f: MUL
00000c90: DUP3
00000c91: SUB
00000c92: MUL
00000c93: DUP1
00000c94: DUP7
00000c95: MUL
00000c96: DUP3
00000c97: SUB
00000c98: MUL
00000c99: DUP1
00000c9a: DUP7
00000c9b: MUL
00000c9c: DUP3
00000c9d: SUB
00000c9e: MUL
00000c9f: DUP1
00000ca0: DUP7
00000ca1: MUL
00000ca2: DUP3
00000ca3: SUB
00000ca4: MUL
00000ca5: DUP1
00000ca6: DUP7
00000ca7: MUL
00000ca8: SWAP1
00000ca9: SWAP2
00000caa: SUB
00000cab: MUL
00000cac: MUL
00000cad: SWAP2
00000cae: POP
00000caf: POP
00000cb0: JUMPDEST
00000cb1: SWAP4
00000cb2: SWAP3
00000cb3: POP
00000cb4: POP
00000cb5: POP
00000cb6: JUMP
00000cb7: JUMPDEST
00000cb8: PUSH1 0x00
00000cba: PUSH2 0x0d0c
00000cbd: DUP3
00000cbe: PUSH1 0x40
00000cc0: MLOAD
00000cc1: DUP1
00000cc2: PUSH1 0x40
00000cc4: ADD
00000cc5: PUSH1 0x40
00000cc7: MSTORE
00000cc8: DUP1
00000cc9: PUSH1 0x20
00000ccb: DUP2
00000ccc: MSTORE
00000ccd: PUSH1 0x20
00000ccf: ADD
00000cd0: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00000cf1: DUP2
00000cf2: MSTORE
00000cf3: POP
00000cf4: DUP6
00000cf5: PUSH1 0x01
00000cf7: PUSH1 0x01
00000cf9: PUSH1 0xa0
00000cfb: SHL
00000cfc: SUB
00000cfd: AND
00000cfe: PUSH2 0x0d9c
00000d01: SWAP1
00000d02: SWAP3
00000d03: SWAP2
00000d04: SWAP1
00000d05: PUSH4 0xffffffff
00000d0a: AND
00000d0b: JUMP
00000d0c: JUMPDEST
00000d0d: DUP1
00000d0e: MLOAD
00000d0f: SWAP1
00000d10: SWAP2
00000d11: POP
00000d12: ISZERO
00000d13: PUSH2 0x0bfc
00000d16: JUMPI
00000d17: DUP1
00000d18: DUP1
00000d19: PUSH1 0x20
00000d1b: ADD
00000d1c: SWAP1
00000d1d: MLOAD
00000d1e: DUP2
00000d1f: ADD
00000d20: SWAP1
00000d21: PUSH2 0x0d2a
00000d24: SWAP2
00000d25: SWAP1
00000d26: PUSH2 0x0fb2
00000d29: JUMP
00000d2a: JUMPDEST
00000d2b: PUSH2 0x0bfc
00000d2e: JUMPI
00000d2f: PUSH1 0x40
00000d31: MLOAD
00000d32: PUSH3 0x461bcd
00000d36: PUSH1 0xe5
00000d38: SHL
00000d39: DUP2
00000d3a: MSTORE
00000d3b: PUSH1 0x20
00000d3d: PUSH1 0x04
00000d3f: DUP3
00000d40: ADD
00000d41: MSTORE
00000d42: PUSH1 0x2a
00000d44: PUSH1 0x24
00000d46: DUP3
00000d47: ADD
00000d48: MSTORE
00000d49: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00000d6a: PUSH1 0x44
00000d6c: DUP3
00000d6d: ADD
00000d6e: MSTORE
00000d6f: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000
00000d90: PUSH1 0x64
00000d92: DUP3
00000d93: ADD
00000d94: MSTORE
00000d95: PUSH1 0x84
00000d97: ADD
00000d98: PUSH2 0x0312
00000d9b: JUMP
00000d9c: JUMPDEST
00000d9d: PUSH1 0x60
00000d9f: PUSH2 0x0dab
00000da2: DUP5
00000da3: DUP5
00000da4: PUSH1 0x00
00000da6: DUP6
00000da7: PUSH2 0x0db3
00000daa: JUMP
00000dab: JUMPDEST
00000dac: SWAP5
00000dad: SWAP4
00000dae: POP
00000daf: POP
00000db0: POP
00000db1: POP
00000db2: JUMP
00000db3: JUMPDEST
00000db4: PUSH1 0x60
00000db6: DUP3
00000db7: SELFBALANCE
00000db8: LT
00000db9: ISZERO
00000dba: PUSH2 0x0e2b
00000dbd: JUMPI
00000dbe: PUSH1 0x40
00000dc0: MLOAD
00000dc1: PUSH3 0x461bcd
00000dc5: PUSH1 0xe5
00000dc7: SHL
00000dc8: DUP2
00000dc9: MSTORE
00000dca: PUSH1 0x20
00000dcc: PUSH1 0x04
00000dce: DUP3
00000dcf: ADD
00000dd0: MSTORE
00000dd1: PUSH1 0x26
00000dd3: PUSH1 0x24
00000dd5: DUP3
00000dd6: ADD
00000dd7: MSTORE
00000dd8: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
00000df9: PUSH1 0x44
00000dfb: DUP3
00000dfc: ADD
00000dfd: MSTORE
00000dfe: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000
00000e1f: PUSH1 0x64
00000e21: DUP3
00000e22: ADD
00000e23: MSTORE
00000e24: PUSH1 0x84
00000e26: ADD
00000e27: PUSH2 0x0312
00000e2a: JUMP
00000e2b: JUMPDEST
00000e2c: PUSH1 0x01
00000e2e: PUSH1 0x01
00000e30: PUSH1 0xa0
00000e32: SHL
00000e33: SUB
00000e34: DUP6
00000e35: AND
00000e36: EXTCODESIZE
00000e37: PUSH2 0x0e82
00000e3a: JUMPI
00000e3b: PUSH1 0x40
00000e3d: MLOAD
00000e3e: PUSH3 0x461bcd
00000e42: PUSH1 0xe5
00000e44: SHL
00000e45: DUP2
00000e46: MSTORE
00000e47: PUSH1 0x20
00000e49: PUSH1 0x04
00000e4b: DUP3
00000e4c: ADD
00000e4d: MSTORE
00000e4e: PUSH1 0x1d
00000e50: PUSH1 0x24
00000e52: DUP3
00000e53: ADD
00000e54: MSTORE
00000e55: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00000e76: PUSH1 0x44
00000e78: DUP3
00000e79: ADD
00000e7a: MSTORE
00000e7b: PUSH1 0x64
00000e7d: ADD
00000e7e: PUSH2 0x0312
00000e81: JUMP
00000e82: JUMPDEST
00000e83: PUSH1 0x00
00000e85: DUP1
00000e86: DUP7
00000e87: PUSH1 0x01
00000e89: PUSH1 0x01
00000e8b: PUSH1 0xa0
00000e8d: SHL
00000e8e: SUB
00000e8f: AND
00000e90: DUP6
00000e91: DUP8
00000e92: PUSH1 0x40
00000e94: MLOAD
00000e95: PUSH2 0x0e9e
00000e98: SWAP2
00000e99: SWAP1
00000e9a: PUSH2 0x1001
00000e9d: JUMP
00000e9e: JUMPDEST
00000e9f: PUSH1 0x00
00000ea1: PUSH1 0x40
00000ea3: MLOAD
00000ea4: DUP1
00000ea5: DUP4
00000ea6: SUB
00000ea7: DUP2
00000ea8: DUP6
00000ea9: DUP8
00000eaa: GAS
00000eab: CALL
00000eac: SWAP3
00000ead: POP
00000eae: POP
00000eaf: POP
00000eb0: RETURNDATASIZE
00000eb1: DUP1
00000eb2: PUSH1 0x00
00000eb4: DUP2
00000eb5: EQ
00000eb6: PUSH2 0x0edb
00000eb9: JUMPI
00000eba: PUSH1 0x40
00000ebc: MLOAD
00000ebd: SWAP2
00000ebe: POP
00000ebf: PUSH1 0x1f
00000ec1: NOT
00000ec2: PUSH1 0x3f
00000ec4: RETURNDATASIZE
00000ec5: ADD
00000ec6: AND
00000ec7: DUP3
00000ec8: ADD
00000ec9: PUSH1 0x40
00000ecb: MSTORE
00000ecc: RETURNDATASIZE
00000ecd: DUP3
00000ece: MSTORE
00000ecf: RETURNDATASIZE
00000ed0: PUSH1 0x00
00000ed2: PUSH1 0x20
00000ed4: DUP5
00000ed5: ADD
00000ed6: RETURNDATACOPY
00000ed7: PUSH2 0x0ee0
00000eda: JUMP
00000edb: JUMPDEST
00000edc: PUSH1 0x60
00000ede: SWAP2
00000edf: POP
00000ee0: JUMPDEST
00000ee1: POP
00000ee2: SWAP2
00000ee3: POP
00000ee4: SWAP2
00000ee5: POP
00000ee6: PUSH2 0x0ef0
00000ee9: DUP3
00000eea: DUP3
00000eeb: DUP7
00000eec: PUSH2 0x0efb
00000eef: JUMP
00000ef0: JUMPDEST
00000ef1: SWAP8
00000ef2: SWAP7
00000ef3: POP
00000ef4: POP
00000ef5: POP
00000ef6: POP
00000ef7: POP
00000ef8: POP
00000ef9: POP
00000efa: JUMP
00000efb: JUMPDEST
00000efc: PUSH1 0x60
00000efe: DUP4
00000eff: ISZERO
00000f00: PUSH2 0x0f0a
00000f03: JUMPI
00000f04: POP
00000f05: DUP2
00000f06: PUSH2 0x0cb0
00000f09: JUMP
00000f0a: JUMPDEST
00000f0b: DUP3
00000f0c: MLOAD
00000f0d: ISZERO
00000f0e: PUSH2 0x0f1a
00000f11: JUMPI
00000f12: DUP3
00000f13: MLOAD
00000f14: DUP1
00000f15: DUP5
00000f16: PUSH1 0x20
00000f18: ADD
00000f19: REVERT
00000f1a: JUMPDEST
00000f1b: DUP2
00000f1c: PUSH1 0x40
00000f1e: MLOAD
00000f1f: PUSH3 0x461bcd
00000f23: PUSH1 0xe5
00000f25: SHL
00000f26: DUP2
00000f27: MSTORE
00000f28: PUSH1 0x04
00000f2a: ADD
00000f2b: PUSH2 0x0312
00000f2e: SWAP2
00000f2f: SWAP1
00000f30: PUSH2 0x101d
00000f33: JUMP
00000f34: JUMPDEST
00000f35: DUP1
00000f36: CALLDATALOAD
00000f37: PUSH1 0x01
00000f39: PUSH1 0x01
00000f3b: PUSH1 0xa0
00000f3d: SHL
00000f3e: SUB
00000f3f: DUP2
00000f40: AND
00000f41: DUP2
00000f42: EQ
00000f43: PUSH2 0x0f4b
00000f46: JUMPI
00000f47: PUSH1 0x00
00000f49: DUP1
00000f4a: REVERT
00000f4b: JUMPDEST
00000f4c: SWAP2
00000f4d: SWAP1
00000f4e: POP
00000f4f: JUMP
00000f50: JUMPDEST
00000f51: PUSH1 0x00
00000f53: PUSH1 0x20
00000f55: DUP3
00000f56: DUP5
00000f57: SUB
00000f58: SLT
00000f59: ISZERO
00000f5a: PUSH2 0x0f62
00000f5d: JUMPI
00000f5e: PUSH1 0x00
00000f60: DUP1
00000f61: REVERT
00000f62: JUMPDEST
00000f63: PUSH2 0x0cb0
00000f66: DUP3
00000f67: PUSH2 0x0f34
00000f6a: JUMP
00000f6b: JUMPDEST
00000f6c: PUSH1 0x00
00000f6e: DUP1
00000f6f: PUSH1 0x40
00000f71: DUP4
00000f72: DUP6
00000f73: SUB
00000f74: SLT
00000f75: ISZERO
00000f76: PUSH2 0x0f7e
00000f79: JUMPI
00000f7a: PUSH1 0x00
00000f7c: DUP1
00000f7d: REVERT
00000f7e: JUMPDEST
00000f7f: PUSH2 0x0f87
00000f82: DUP4
00000f83: PUSH2 0x0f34
00000f86: JUMP
00000f87: JUMPDEST
00000f88: SWAP5
00000f89: PUSH1 0x20
00000f8b: SWAP4
00000f8c: SWAP1
00000f8d: SWAP4
00000f8e: ADD
00000f8f: CALLDATALOAD
00000f90: SWAP4
00000f91: POP
00000f92: POP
00000f93: POP
00000f94: JUMP
00000f95: JUMPDEST
00000f96: PUSH1 0x00
00000f98: PUSH1 0x20
00000f9a: DUP3
00000f9b: DUP5
00000f9c: SUB
00000f9d: SLT
00000f9e: ISZERO
00000f9f: PUSH2 0x0fa7
00000fa2: JUMPI
00000fa3: PUSH1 0x00
00000fa5: DUP1
00000fa6: REVERT
00000fa7: JUMPDEST
00000fa8: DUP2
00000fa9: CALLDATALOAD
00000faa: PUSH2 0x0cb0
00000fad: DUP2
00000fae: PUSH2 0x10bc
00000fb1: JUMP
00000fb2: JUMPDEST
00000fb3: PUSH1 0x00
00000fb5: PUSH1 0x20
00000fb7: DUP3
00000fb8: DUP5
00000fb9: SUB
00000fba: SLT
00000fbb: ISZERO
00000fbc: PUSH2 0x0fc4
00000fbf: JUMPI
00000fc0: PUSH1 0x00
00000fc2: DUP1
00000fc3: REVERT
00000fc4: JUMPDEST
00000fc5: DUP2
00000fc6: MLOAD
00000fc7: PUSH2 0x0cb0
00000fca: DUP2
00000fcb: PUSH2 0x10bc
00000fce: JUMP
00000fcf: JUMPDEST
00000fd0: PUSH1 0x00
00000fd2: PUSH1 0x20
00000fd4: DUP3
00000fd5: DUP5
00000fd6: SUB
00000fd7: SLT
00000fd8: ISZERO
00000fd9: PUSH2 0x0fe1
00000fdc: JUMPI
00000fdd: PUSH1 0x00
00000fdf: DUP1
00000fe0: REVERT
00000fe1: JUMPDEST
00000fe2: POP
00000fe3: CALLDATALOAD
00000fe4: SWAP2
00000fe5: SWAP1
00000fe6: POP
00000fe7: JUMP
00000fe8: JUMPDEST
00000fe9: PUSH1 0x00
00000feb: PUSH1 0x20
00000fed: DUP3
00000fee: DUP5
00000fef: SUB
00000ff0: SLT
00000ff1: ISZERO
00000ff2: PUSH2 0x0ffa
00000ff5: JUMPI
00000ff6: PUSH1 0x00
00000ff8: DUP1
00000ff9: REVERT
00000ffa: JUMPDEST
00000ffb: POP
00000ffc: MLOAD
00000ffd: SWAP2
00000ffe: SWAP1
00000fff: POP
00001000: JUMP
00001001: JUMPDEST
00001002: PUSH1 0x00
00001004: DUP3
00001005: MLOAD
00001006: PUSH2 0x1013
00001009: DUP2
0000100a: DUP5
0000100b: PUSH1 0x20
0000100d: DUP8
0000100e: ADD
0000100f: PUSH2 0x1076
00001012: JUMP
00001013: JUMPDEST
00001014: SWAP2
00001015: SWAP1
00001016: SWAP2
00001017: ADD
00001018: SWAP3
00001019: SWAP2
0000101a: POP
0000101b: POP
0000101c: JUMP
0000101d: JUMPDEST
0000101e: PUSH1 0x20
00001020: DUP2
00001021: MSTORE
00001022: PUSH1 0x00
00001024: DUP3
00001025: MLOAD
00001026: DUP1
00001027: PUSH1 0x20
00001029: DUP5
0000102a: ADD
0000102b: MSTORE
0000102c: PUSH2 0x103c
0000102f: DUP2
00001030: PUSH1 0x40
00001032: DUP6
00001033: ADD
00001034: PUSH1 0x20
00001036: DUP8
00001037: ADD
00001038: PUSH2 0x1076
0000103b: JUMP
0000103c: JUMPDEST
0000103d: PUSH1 0x1f
0000103f: ADD
00001040: PUSH1 0x1f
00001042: NOT
00001043: AND
00001044: SWAP2
00001045: SWAP1
00001046: SWAP2
00001047: ADD
00001048: PUSH1 0x40
0000104a: ADD
0000104b: SWAP3
0000104c: SWAP2
0000104d: POP
0000104e: POP
0000104f: JUMP
00001050: JUMPDEST
00001051: PUSH1 0x00
00001053: DUP3
00001054: NOT
00001055: DUP3
00001056: GT
00001057: ISZERO
00001058: PUSH2 0x1071
0000105b: JUMPI
0000105c: PUSH4 0x4e487b71
00001061: PUSH1 0xe0
00001063: SHL
00001064: PUSH1 0x00
00001066: MSTORE
00001067: PUSH1 0x11
00001069: PUSH1 0x04
0000106b: MSTORE
0000106c: PUSH1 0x24
0000106e: PUSH1 0x00
00001070: REVERT
00001071: JUMPDEST
00001072: POP
00001073: ADD
00001074: SWAP1
00001075: JUMP
00001076: JUMPDEST
00001077: PUSH1 0x00
00001079: JUMPDEST
0000107a: DUP4
0000107b: DUP2
0000107c: LT
0000107d: ISZERO
0000107e: PUSH2 0x1091
00001081: JUMPI
00001082: DUP2
00001083: DUP2
00001084: ADD
00001085: MLOAD
00001086: DUP4
00001087: DUP3
00001088: ADD
00001089: MSTORE
0000108a: PUSH1 0x20
0000108c: ADD
0000108d: PUSH2 0x1079
00001090: JUMP
00001091: JUMPDEST
00001092: DUP4
00001093: DUP2
00001094: GT
00001095: ISZERO
00001096: PUSH2 0x10a0
00001099: JUMPI
0000109a: PUSH1 0x00
0000109c: DUP5
0000109d: DUP5
0000109e: ADD
0000109f: MSTORE
000010a0: JUMPDEST
000010a1: POP
000010a2: POP
000010a3: POP
000010a4: POP
000010a5: JUMP
000010a6: JUMPDEST
000010a7: PUSH4 0x4e487b71
000010ac: PUSH1 0xe0
000010ae: SHL
000010af: PUSH1 0x00
000010b1: MSTORE
000010b2: PUSH1 0x12
000010b4: PUSH1 0x04
000010b6: MSTORE
000010b7: PUSH1 0x24
000010b9: PUSH1 0x00
000010bb: REVERT
000010bc: JUMPDEST
000010bd: DUP1
000010be: ISZERO
000010bf: ISZERO
000010c0: DUP2
000010c1: EQ
000010c2: PUSH2 0x0ab7
000010c5: JUMPI
000010c6: PUSH1 0x00
000010c8: DUP1
000010c9: REVERT
000010ca: INVALID
000010cb: LOG2
000010cc: PUSH5 0x6970667358
000010d2: UNKNOWN(0x22)
000010d3: SLT
000010d4: KECCAK256
000010d5: SAR
000010d6: SWAP5
000010d7: PUSH1 0xab
000010d9: MUL
000010da: UNKNOWN(0xAF)
000010db: SWAP5
000010dc: LOG0
000010dd: CREATE2
000010de: SMOD
000010df: PUSH20 0xcefcc0d13ed84f7b0f3270c0f80b9b62884d4561
000010f4: UNKNOWN(0xAF)
000010f5: PUSH5 0x736f6c6343
000010fb: STOP
000010fc: ADDMOD
000010fd: MOD
000010fe: STOP
000010ff: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical other codex Refund logic never consumes PANDA or enforces refundMap, enabling unlimited ETH redemptions 90 no
view
evidence_json
{
    "evidence": "redeem() checks pandaToken.balanceOf but never transfers/burns PANDA and refundMap is only incremented, never read, before ETH is sent.",
    "locations": [
        "contracts/contracts/PandaDAOFarewell.sol:84",
        "contracts/contracts/PandaDAOFarewell.sol:86",
        "contracts/contracts/PandaDAOFarewell.sol:92",
        "contracts/contracts/PandaDAOFarewell.sol:97"
    ],
    "recommendation": "Require PANDA to be transferred/burned before payout or enforce per-account redeemed caps using refundMap; if relying on terminal burn, explicitly verify the same ERC20 balance is reduced or remove the redundant balance check and use a trusted burn/transferFrom.",
    "exploit_scenario": "1) Attacker acquires any amount of PANDA tokens (or temporarily borrows them). 2) Calls redeem(amount). The contract only checks balance and does not transfer/burn PANDA, then pays etherAmount. 3) Attacker retains the same PANDA balance and calls redeem(amount) again. 4) Repeat to drain essentially the entire contract ETH balance (geometric series), since refundMap is never enforced."
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xdb006a75",
            "selector": "0xdb006a75",
            "calldata_variants": [
                "0xdb006a75",
                "0xdb006a750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe7caf3ae",
            "selector": "0xe7caf3ae",
            "calldata_variants": [
                "0xe7caf3ae",
                "0xe7caf3ae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa1db9782",
            "selector": "0xa1db9782",
            "calldata_variants": [
                "0xa1db9782",
                "0xa1db97820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa75480af",
            "selector": "0xa75480af",
            "calldata_variants": [
                "0xa75480af",
                "0xa75480af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a15a144",
            "selector": "0x4a15a144",
            "calldata_variants": [
                "0x4a15a144",
                "0x4a15a1440000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 1188,
            "type": "tx_origin_used"
        },
        {
            "pc": 1186,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xb81b32ad5737af575170b607dbee129dad1192eacb7066cd248a7d0f98b41ece
call_targets: 0x229cc0a81a1d6b4a2fc1452b3bd166462216e3f3
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb81b32ad5737af575170b607dbee129dad1192eacb7066cd248a7d0f98b41ece",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x229cc0a81a1d6b4a2fc1452b3bd166462216e3f3"
    ],
    "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": "0xdb006a75",
            "selector": "0xdb006a75",
            "calldata_variants": [
                "0xdb006a75",
                "0xdb006a750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe7caf3ae",
            "selector": "0xe7caf3ae",
            "calldata_variants": [
                "0xe7caf3ae",
                "0xe7caf3ae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa1db9782",
            "selector": "0xa1db9782",
            "calldata_variants": [
                "0xa1db9782",
                "0xa1db97820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa75480af",
            "selector": "0xa75480af",
            "calldata_variants": [
                "0xa75480af",
                "0xa75480af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a15a144",
            "selector": "0x4a15a144",
            "calldata_variants": [
                "0x4a15a144",
                "0x4a15a1440000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 656,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2326,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2398,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [
        {
            "pc": 1188,
            "type": "tx_origin_used"
        },
        {
            "pc": 1186,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 4
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xb81b32ad5737af575170b607dbee129dad1192eacb7066cd248a7d0f98b41ece
call_targets: 0x229cc0a81a1d6b4a2fc1452b3bd166462216e3f3
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb81b32ad5737af575170b607dbee129dad1192eacb7066cd248a7d0f98b41ece",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x229cc0a81a1d6b4a2fc1452b3bd166462216e3f3"
    ],
    "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": "0xdb006a75",
            "selector": "0xdb006a75",
            "calldata_variants": [
                "0xdb006a75",
                "0xdb006a750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe7caf3ae",
            "selector": "0xe7caf3ae",
            "calldata_variants": [
                "0xe7caf3ae",
                "0xe7caf3ae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa1db9782",
            "selector": "0xa1db9782",
            "calldata_variants": [
                "0xa1db9782",
                "0xa1db97820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa75480af",
            "selector": "0xa75480af",
            "calldata_variants": [
                "0xa75480af",
                "0xa75480af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a15a144",
            "selector": "0x4a15a144",
            "calldata_variants": [
                "0x4a15a144",
                "0x4a15a1440000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 656,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2326,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2398,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": [
        {
            "pc": 1188,
            "type": "tx_origin_used"
        },
        {
            "pc": 1186,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x1e88330a48ddc18a7c3d19ef843ae0ef835bbf596edee0cea9565929d3912646
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 24,
    "trace_id": "0x1e88330a48ddc18a7c3d19ef843ae0ef835bbf596edee0cea9565929d3912646",
    "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": "0xdb006a75",
            "selector": "0xdb006a75",
            "calldata_variants": [
                "0xdb006a75",
                "0xdb006a750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe7caf3ae",
            "selector": "0xe7caf3ae",
            "calldata_variants": [
                "0xe7caf3ae",
                "0xe7caf3ae0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa1db9782",
            "selector": "0xa1db9782",
            "calldata_variants": [
                "0xa1db9782",
                "0xa1db97820000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa75480af",
            "selector": "0xa75480af",
            "calldata_variants": [
                "0xa75480af",
                "0xa75480af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4a15a144",
            "selector": "0x4a15a144",
            "calldata_variants": [
                "0x4a15a144",
                "0x4a15a1440000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x715018a6",
            "selector": "0x715018a6",
            "calldata_variants": [
                "0x715018a6",
                "0x715018a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 1
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 1
}