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

Analysis Run

019bab3b-ab92-73e3-a078-3ec5304af404

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:06 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
DragonCurve.refundFrom(address,uint256) (src/DragonCurve.sol#162-172) sends eth to arbitrary user
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
38583 artifact.fetch complete 1 / 3 3 months ago
38584 proxy.resolve complete 1 / 3 3 months ago
38585 tool.cast_disasm complete 1 / 3 3 months ago
38586 analysis.bundle complete 1 / 3 3 months ago
38587 capability.graph complete 1 / 3 3 months ago
38588 detector.run complete 1 / 3 3 months ago
38589 validation.fork complete 1 / 3 3 months ago
39081 report.consolidate complete 1 / 6 3 months ago
39082 tool.slither complete 1 / 2 3 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
Status
complete
Attempts
1 / 2
Findings
3
Solc
0.8.19 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-56kd38pa)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-56kd38pa)

DragonCurve.refund(uint256) (src/DragonCurve.sol#156-161) sends eth to arbitrary user
	Dangerous calls:
	- (success,None) = msg.sender.call{value: publicPrice}() (src/DragonCurve.sol#157-158)
DragonCurve.refundFrom(address,uint256) (src/DragonCurve.sol#162-172) sends eth to arbitrary user
	Dangerous calls:
	- (success,None) = msg.sender.call{value: publicPrice}() (src/DragonCurve.sol#168-169)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations

ERC721AB._initializeOwnershipAt(uint256) (src/ERC721AB.sol#355-360) uses a dangerous strict equality:
	- _packedOwnerships[index] == 0 (src/ERC721AB.sol#357-358)
ERC721AB._setExtraDataAt(uint256,uint64) (src/ERC721AB.sol#1061-1072) uses a dangerous strict equality:
	- packed == 0 (src/ERC721AB.sol#1062)
DragonCurve.getRandSourceBlock(uint256) (src/DragonCurve.sol#101-121) uses a dangerous strict equality:
	- extra == uint64(0) (src/DragonCurve.sol#116)
DragonCurve.reroll(uint256) (src/DragonCurve.sol#188-208) uses a dangerous strict equality:
	- nextOwn.extraData == 0 (src/DragonCurve.sol#205)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities

ERC721ABQueryable.tokensOfOwner(address).tokenIdsIdx (src/ERC721ABQueryable.sol#165) is a local variable never initialized
ERC721ABQueryable.tokensOfOwner(address).currOwnershipAddr (src/ERC721ABQueryable.sol#166) is a local variable never initialized
ERC721ABQueryable.explicitOwnershipOf(uint256).ownership (src/ERC721ABQueryable.sol#44) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables

OperatorFilterer._registerForOperatorFiltering(address,bool).functionSelector__registerForOperatorFiltering_asm_0 (lib/closedsea/src/OperatorFilterer.sol#30-31) is written in both
	functionSelector__registerForOperatorFiltering_asm_0 = 0x4420e486 (lib/closedsea/src/OperatorFilterer.sol#37-38)
	functionSelector__registerForOperatorFiltering_asm_0 = 0xa0af2903 (lib/closedsea/src/OperatorFilterer.sol#39-41)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#write-after-write

ERC721Refund.refundDeadlineOf(uint256).block (src/IERC721R.sol#49) (local variable) shadows built-in symbol"
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#builtin-symbol-shadowing

DragonCurve.setRerollPrice(uint256) (src/DragonCurve.sol#232-234) should emit an event for: 
	- rerollPrice = price (src/DragonCurve.sol#234) 
DragonCurve.setRerollStatus(uint256) (src/DragonCurve.sol#234-237) should emit an event for: 
	- rerollStatus = status (src/DragonCurve.sol#237) 
DragonCurve.setBlockOffset(uint256) (src/DragonCurve.sol#257-258) should emit an event for: 
	- _offset = val (src/DragonCurve.sol#258) 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-events-arithmetic

Reentrancy in DragonCurve.refund(uint256) (src/DragonCurve.sol#156-161):
	External calls:
	- (success,None) = msg.sender.call{value: publicPrice}() (src/DragonCurve.sol#157-158)
	Event emitted after the call(s):
	- Refund(msg.sender,tokenId) (src/DragonCurve.sol#160-161)
Reentrancy in DragonCurve.refundFrom(address,uint256) (src/DragonCurve.sol#162-172):
	External calls:
	- (success,None) = msg.sender.call{value: publicPrice}() (src/DragonCurve.sol#168-169)
	Event emitted after the call(s):
	- Refund(msg.sender,tokenId) (src/DragonCurve.sol#171-172)
Reentrancy in DragonCurve.reroll(uint256) (src/DragonCurve.sol#188-208):
	External calls:
	- refundIfOver(rerollPrice) (src/DragonCurve.sol#207-208)
		- (success,None) = address(msg.sender).call{value: msg.value - price}() (src/DragonCurve.sol#142-145)
	Event emitted after the call(s):
	- Reroll(tokenId,newBlock) (src/DragonCurve.sol#208)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

OperatorFilterer._registerForOperatorFiltering(address,bool) (lib/closedsea/src/OperatorFilterer.sol#24-60) uses assembly
	- INLINE ASM (lib/closedsea/src/OperatorFilterer.sol#29-60)
OperatorFilterer._revertIfBlocked(address) (lib/closedsea/src/OperatorFilterer.sol#83-108) uses assembly
	- INLINE ASM (lib/closedsea/src/OperatorFilterer.sol#84-108)
ERC721AB._setAux(address,uint64) (src/ERC721AB.sol#240-250) uses assembly
	- INLINE ASM (src/ERC721AB.sol#245-247)
ERC721AB._packOwnershipData(address,uint256) (src/ERC721AB.sol#409-418) uses assembly
	- INLINE ASM (src/ERC721AB.sol#412-418)
ERC721AB._nextInitializedFlag(uint256) (src/ERC721AB.sol#421-430) uses assembly
	- INLINE ASM (src/ERC721AB.sol#425-429)
ERC721AB._isSenderApprovedOrOwner(address,address,address) (src/ERC721AB.sol#527-544) uses assembly
	- INLINE ASM (src/ERC721AB.sol#531-544)
ERC721AB._getApprovedSlotAndAddress(uint256) (src/ERC721AB.sol#547-557) uses assembly
	- INLINE ASM (src/ERC721AB.sol#552-557)
ERC721AB.transferFrom(address,address,uint256) (src/ERC721AB.sol#574-649) uses assembly
	- INLINE ASM (src/ERC721AB.sol#603-608)
ERC721AB._checkContractOnERC721Received(address,address,uint256,bytes) (src/ERC721AB.sol#739-761) uses assembly
	- INLINE ASM (src/ERC721AB.sol#758-760)
ERC721AB._mint(address,uint256) (src/ERC721AB.sol#776-848) uses assembly
	- INLINE ASM (src/ERC721AB.sol#819-844)
ERC721AB._burn(uint256,bool) (src/ERC721AB.sol#966-1055) uses assembly
	- INLINE ASM (src/ERC721AB.sol#998-1004)
ERC721AB._setExtraDataAt(uint256,uint64) (src/ERC721AB.sol#1061-1072) uses assembly
	- INLINE ASM (src/ERC721AB.sol#1065)
ERC721AB._toString(uint256) (src/ERC721AB.sol#1118-1160) uses assembly
	- INLINE ASM (src/ERC721AB.sol#1122-1160)
ERC721ABQueryable.tokensOfOwnerIn(address,uint256,uint256) (src/ERC721ABQueryable.sol#86-149) uses assembly
	- INLINE ASM (src/ERC721ABQueryable.sol#144-146)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

3 different versions of Solidity are used:
	- Version constraint ^0.8.4 is used by:
		-^0.8.4 (lib/closedsea/src/OperatorFilterer.sol#1-2)
		-^0.8.4 (src/ERC721AB.sol#4-6)
		-^0.8.4 (src/ERC721ABQueryable.sol#5)
		-^0.8.4 (src/IERC721AB.sol#5)
		-^0.8.4 (src/IERC721ABQueryable.sol#5)
	- Version constraint ^0.8.0 is used by:
		-^0.8.0 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#2-4)
		-^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol#2-4)
		-^0.8.0 (lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol#2-4)
		-^0.8.0 (lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol#2-4)
		-^0.8.0 (lib/openzeppelin-contracts/contracts/utils/Context.sol#2-4)
		-^0.8.0 (lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#2-4)
		-^0.8.0 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#2-4)
	- Version constraint ^0.8.19 is used by:
		-^0.8.19 (src/DragonCurve.sol#3-5)
		-^0.8.19 (src/IERC721R.sol#2-4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

ERC721AB._baseURI() (src/ERC721AB.sol#314-319) is never used and should be removed
ERC721AB._burn(uint256) (src/ERC721AB.sol#958-960) is never used and should be removed
ERC721AB._extraData(address,address,uint64) (src/ERC721AB.sol#1088-1090) is never used and should be removed
ERC721AB._getAux(address) (src/ERC721AB.sol#231-237) is never used and should be removed
ERC721AB._mintERC2309(address,uint256) (src/ERC721AB.sol#867-904) is never used and should be removed
ERC721AB._numberBurned(address) (src/ERC721AB.sol#222-228) is never used and should be removed
ERC721AB._safeMint(address,uint256) (src/ERC721AB.sol#945-950) is never used and should be removed
ERC721AB._safeMint(address,uint256,bytes) (src/ERC721AB.sol#915-941) is never used and should be removed
ERC721AB._setAux(address,uint64) (src/ERC721AB.sol#240-250) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Version constraint ^0.8.4 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables.
It is used by:
	- ^0.8.4 (lib/closedsea/src/OperatorFilterer.sol#1-2)
	- ^0.8.4 (src/ERC721AB.sol#4-6)
	- ^0.8.4 (src/ERC721ABQueryable.sol#5)
	- ^0.8.4 (src/IERC721AB.sol#5)
	- ^0.8.4 (src/IERC721ABQueryable.sol#5)
Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching.
It is used by:
	- ^0.8.0 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#2-4)
	- ^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol#2-4)
	- ^0.8.0 (lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol#2-4)
	- ^0.8.0 (lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol#2-4)
	- ^0.8.0 (lib/openzeppelin-contracts/contracts/utils/Context.sol#2-4)
	- ^0.8.0 (lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#2-4)
	- ^0.8.0 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#2-4)
Version constraint ^0.8.19 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess.
It is used by:
	- ^0.8.19 (src/DragonCurve.sol#3-5)
	- ^0.8.19 (src/IERC721R.sol#2-4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in DragonCurve.refundIfOver(uint256) (src/DragonCurve.sol#135-147):
	- (success,None) = address(msg.sender).call{value: msg.value - price}() (src/DragonCurve.sol#142-145)
Low level call in DragonCurve.refund(uint256) (src/DragonCurve.sol#156-161):
	- (success,None) = msg.sender.call{value: publicPrice}() (src/DragonCurve.sol#157-158)
Low level call in DragonCurve.refundFrom(address,uint256) (src/DragonCurve.sol#162-172):
	- (success,None) = msg.sender.call{value: publicPrice}() (src/DragonCurve.sol#168-169)
Low level call in DragonCurve.withdrawMoney() (src/DragonCurve.sol#227-232):
	- (success,None) = msg.sender.call{value: address(this).balance - publicPrice * totalSupply()}() (src/DragonCurve.sol#228-231)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Variable DragonCurve._image_generation_js (src/DragonCurve.sol#39) is not in mixedCase
Contract ERC721A__IERC721Receiver (src/ERC721AB.sol#13-21) is not in CapWords
Parameter ERC721AB.safeTransferFrom(address,address,uint256,bytes)._data (src/ERC721AB.sol#676-677) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

DragonCurve._image_generation_js (src/DragonCurve.sol#39) should be constant 
DragonCurve.dragoncurvejsVersion (src/DragonCurve.sol#35-36) should be constant 
DragonCurve.p5jsVersion (src/DragonCurve.sol#36-37) should be constant 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant
. analyzed (16 contracts with 100 detectors), 54 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.19",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.8.19",
        "install_stderr": null,
        "install_stdout": "Version '0.8.19' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-56kd38pa --include-path /tmp/slither-56kd38pa/lib --include-path /tmp/slither-56kd38pa/lib/closedsea --include-path /tmp/slither-56kd38pa/lib/openzeppelin-contracts --allow-paths /tmp/slither-56kd38pa,/tmp/slither-56kd38pa/lib,/tmp/slither-56kd38pa/lib/closedsea,/tmp/slither-56kd38pa/lib/openzeppelin-contracts,/tmp/slither-56kd38pa/src",
    "remappings": [
        "0xsequence/sstore2/=/lib/sstore2/",
        "closedsea/=lib/closedsea/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
        "erc721a-upgradeable/=lib/closedsea/lib/erc721a-upgradeable/contracts/",
        "erc721a/=lib/closedsea/lib/erc721a/contracts/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "operator-filter-registry/=lib/closedsea/lib/operator-filter-registry/",
        "solady/=lib/closedsea/lib/solady/",
        "sstore2/=lib/sstore2/contracts/",
        "lib/closedsea:ds-test/=lib/closedsea/lib/forge-std/lib/ds-test/src/",
        "lib/closedsea:erc4626-tests/=lib/closedsea/lib/openzeppelin-contracts/lib/erc4626-tests/",
        "lib/closedsea:erc721a-upgradeable/=lib/closedsea/lib/erc721a-upgradeable/contracts/",
        "lib/closedsea:erc721a/=lib/closedsea/lib/erc721a/contracts/",
        "lib/closedsea:forge-std/=lib/closedsea/lib/forge-std/src/",
        "lib/closedsea:openzeppelin-contracts-upgradeable/=lib/closedsea/lib/openzeppelin-contracts-upgradeable/contracts/",
        "lib/closedsea:openzeppelin-contracts/=lib/closedsea/lib/openzeppelin-contracts/contracts/",
        "lib/closedsea:operator-filter-registry/=lib/closedsea/lib/operator-filter-registry/src/",
        "lib/closedsea:solady/=lib/closedsea/lib/solady/src/",
        "lib/forge-std:ds-test/=lib/forge-std/lib/ds-test/src/",
        "lib/openzeppelin-contracts:ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
        "lib/openzeppelin-contracts:erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
        "lib/openzeppelin-contracts:forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/",
        "lib/openzeppelin-contracts:openzeppelin/=lib/openzeppelin-contracts/contracts/",
        "lib/openzeppelin-contracts-upgradeable:ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/",
        "lib/openzeppelin-contracts-upgradeable:erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
        "lib/openzeppelin-contracts-upgradeable:forge-std/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/src/",
        "lib/openzeppelin-contracts-upgradeable:openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/",
        "src/=src/"
    ],
    "source_files": [
        "src/DragonCurve.sol",
        "src/ERC721ABQueryable.sol",
        "src/IERC721R.sol",
        "lib/openzeppelin-contracts/contracts/access/Ownable.sol",
        "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol",
        "lib/openzeppelin-contracts/contracts/token/common/ERC2981.sol",
        "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol",
        "lib/closedsea/src/OperatorFilterer.sol",
        "src/IERC721ABQueryable.sol",
        "src/ERC721AB.sol",
        "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol",
        "lib/openzeppelin-contracts/contracts/utils/Context.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC2981.sol",
        "src/IERC721AB.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 54,
    "workspace_hash": "094577ca94863f8b5f628dae90df9bb589878730b51df60d7bb7677490841dd7",
    "duration_seconds": 2.015181064605713,
    "solc_version_requested": "0.8.21"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
yes
Summary
Reviewed first-party Solidity sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the requested categories.
View stdout
{"no_findings":true,"summary":"Reviewed first-party Solidity sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the requested categories.","findings":[]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-i0htvhu9
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019babb6-5052-7152-899d-c90116905838
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

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

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

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Listing files for audit investigation**
exec
/bin/bash -lc ls in /tmp/codex-i0htvhu9 succeeded in 11ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
lib
src

thinking
**Reading AUDIT_BUNDLE.txt**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-i0htvhu9 succeeded in 7ms:
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: src/DragonCurve.sol
================================================================================
// SPDX-License-Identifier: MIT
// DragonCurve Contract v1.0.0
// Creator: LiemNFT

pragma solidity ^0.8.19;

import "./ERC721ABQueryable.sol";
import "./IERC721R.sol";
import "openzeppelin-contracts/contracts/access/Ownable.sol";
import "openzeppelin-contracts/contracts/security/ReentrancyGuard.sol";
import "openzeppelin-contracts/contracts/token/common/ERC2981.sol";
import "openzeppelin-contracts/contracts/utils/introspection/ERC165.sol";
import "closedsea/src/OperatorFilterer.sol";


thinking
**Analyzing contract refund and reentrancy risks**

I'm auditing the DragonCurve contract with a focus on refund functions and reentrancy vulnerabilities. I'm carefully examining how refund and refundFrom handle ownership, approvals, and external calls, noting that refundFrom ignores its ‘from’ parameter but relies on approval checks from _burn. There’s potential for approved operators to claim refunds, which might be intended but could surprise users. I'm also inspecting whether reentrancy in refund or withdrawMoney could cause issues, considering the sequence of state changes and external calls, and reviewing randomness and access control patterns for subtle risks.
exec
/bin/bash -lc "rg -n \"delegatecall|call\\{|call\\s*\\(|transfer\\(|send\\(\" -S AUDIT_BUNDLE.txt" in /tmp/codex-i0htvhu9 succeeded in 40ms:
54:    error RefundFailedToTransfer();
55:    error WithdrawFailedToTransfer();
152:            (bool success, ) = payable(msg.sender).call{
167:        (bool success, ) = msg.sender.call{value: publicPrice}("");
169:            revert RefundFailedToTransfer();
178:        (bool success, ) = msg.sender.call{value: publicPrice}("");
180:            revert RefundFailedToTransfer();
239:        (bool success, ) = msg.sender.call{
243:            revert WithdrawFailedToTransfer();
451:    // `keccak256(bytes("Transfer(address,address,uint256)"))`.
1020:        emit Transfer(from, to, tokenId);
1280:            emit ConsecutiveTransfer(
1431:        emit Transfer(from, address(0), tokenId);
1869:    event Transfer(
2043:    event ConsecutiveTransfer(

thinking
**Checking for _burn usage**
exec
/bin/bash -lc "rg -n \"function _burn|_burn\\(\" -n src/ERC721AB.sol" in /tmp/codex-i0htvhu9 succeeded in 10ms:
987:     * @dev Equivalent to `_burn(tokenId, false)`.
989:    function _burn(uint256 tokenId) internal virtual {
990:        _burn(tokenId, false);
1003:    function _burn(uint256 tokenId, bool approvalCheck) internal virtual {
exec
/bin/bash -lc "sed -n '1000,1060p' src/ERC721AB.sol" in /tmp/codex-i0htvhu9 succeeded in 5ms:
     *
     * Emits a {Transfer} event.
     */
    function _burn(uint256 tokenId, bool approvalCheck) internal virtual {
        uint256 prevOwnershipPacked = _packedOwnershipOf(tokenId);

        address from = address(uint160(prevOwnershipPacked));

        (
            uint256 approvedAddressSlot,
            address approvedAddress
        ) = _getApprovedSlotAndAddress(tokenId);

        if (approvalCheck) {
            // The nested ifs save around 20+ gas over a compound boolean condition.
            if (
                !_isSenderApprovedOrOwner(
                    approvedAddress,
                    from,
                    _msgSenderERC721A()

thinking
**Reviewing refund and reentrancy logic**

I’m carefully analyzing refund, burn, and withdrawal mechanics, focusing on access control and potential reentrancy concerns. Although some minor issues like event naming inconsistencies and use of tx.origin for caller checks are noted, I find no exploitable vulnerabilities or breakdowns in accounting invariants. The refund and reroll flows appear safe given current constraints, and the owner’s withdrawal logic aligns with token supply changes. My best conclusion is to report no significant findings while documenting the considered nuances.
codex
{"no_findings":true,"summary":"Reviewed first-party Solidity sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the requested categories.","findings":[]}
tokens used
20,043
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T06:21:42.899978+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 14,
        "import_count": 18,
        "first_party_contracts_count": 6
    },
    "summary": "Reviewed first-party Solidity sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the requested categories.",
    "raw_final": {
        "summary": "Reviewed first-party Solidity sources in AUDIT_BUNDLE.txt; no exploitable vulnerabilities found in the requested categories.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
2
CALL-family (heavy)
9
EXT*/BALANCE
1
Total opcodes
7420
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 0x0293
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x8462151c
00000019: GT
0000001a: PUSH2 0x015a
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xb55cd04b
00000024: GT
00000025: PUSH2 0x00c1
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xc87b56dd
0000002f: GT
00000030: PUSH2 0x007a
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xc87b56dd
0000003a: EQ
0000003b: PUSH2 0x07b4
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xe985e9c5
00000045: EQ
00000046: PUSH2 0x07d4
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf2fde38b
00000050: EQ
00000051: PUSH2 0x081d
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf489e496
0000005b: EQ
0000005c: PUSH2 0x083d
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xfb796e6c
00000066: EQ
00000067: PUSH2 0x085d
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0xfc776f6d
00000071: EQ
00000072: PUSH2 0x0877
00000075: JUMPI
00000076: PUSH1 0x00
00000078: DUP1
00000079: REVERT
0000007a: JUMPDEST
0000007b: DUP1
0000007c: PUSH4 0xb55cd04b
00000081: EQ
00000082: PUSH2 0x06ff
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xb7c0b8e8
0000008c: EQ
0000008d: PUSH2 0x0714
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xb88d4fde
00000097: EQ
00000098: PUSH2 0x0734
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0xbdde6dc6
000000a2: EQ
000000a3: PUSH2 0x0747
000000a6: JUMPI
000000a7: DUP1
000000a8: PUSH4 0xc0b507c3
000000ad: EQ
000000ae: PUSH2 0x0767
000000b1: JUMPI
000000b2: DUP1
000000b3: PUSH4 0xc23dc68f
000000b8: EQ
000000b9: PUSH2 0x0787
000000bc: JUMPI
000000bd: PUSH1 0x00
000000bf: DUP1
000000c0: REVERT
000000c1: JUMPDEST
000000c2: DUP1
000000c3: PUSH4 0x99c7bb49
000000c8: GT
000000c9: PUSH2 0x0113
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0x99c7bb49
000000d3: EQ
000000d4: PUSH2 0x064d
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0x9d980bd2
000000de: EQ
000000df: PUSH2 0x0685
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0xa0712d68
000000e9: EQ
000000ea: PUSH2 0x069b
000000ed: JUMPI
000000ee: DUP1
000000ef: PUSH4 0xa22cb465
000000f4: EQ
000000f5: PUSH2 0x06ae
000000f8: JUMPI
000000f9: DUP1
000000fa: PUSH4 0xa945bf80
000000ff: EQ
00000100: PUSH2 0x06ce
00000103: JUMPI
00000104: DUP1
00000105: PUSH4 0xac446002
0000010a: EQ
0000010b: PUSH2 0x06ea
0000010e: JUMPI
0000010f: PUSH1 0x00
00000111: DUP1
00000112: REVERT
00000113: JUMPDEST
00000114: DUP1
00000115: PUSH4 0x8462151c
0000011a: EQ
0000011b: PUSH2 0x05a3
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x884b67a5
00000125: EQ
00000126: PUSH2 0x05d0
00000129: JUMPI
0000012a: DUP1
0000012b: PUSH4 0x8da5cb5b
00000130: EQ
00000131: PUSH2 0x05e5
00000134: JUMPI
00000135: DUP1
00000136: PUSH4 0x924f4208
0000013b: EQ
0000013c: PUSH2 0x0603
0000013f: JUMPI
00000140: DUP1
00000141: PUSH4 0x95d89b41
00000146: EQ
00000147: PUSH2 0x0618
0000014a: JUMPI
0000014b: DUP1
0000014c: PUSH4 0x99a2557a
00000151: EQ
00000152: PUSH2 0x062d
00000155: JUMPI
00000156: PUSH1 0x00
00000158: DUP1
00000159: REVERT
0000015a: JUMPDEST
0000015b: DUP1
0000015c: PUSH4 0x498143d3
00000161: GT
00000162: PUSH2 0x01fe
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0x6276e5e7
0000016c: GT
0000016d: PUSH2 0x01b7
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0x6276e5e7
00000177: EQ
00000178: PUSH2 0x04fb
0000017b: JUMPI
0000017c: DUP1
0000017d: PUSH4 0x62fe9602
00000182: EQ
00000183: PUSH2 0x0510
00000186: JUMPI
00000187: DUP1
00000188: PUSH4 0x6352211e
0000018d: EQ
0000018e: PUSH2 0x0526
00000191: JUMPI
00000192: DUP1
00000193: PUSH4 0x70a08231
00000198: EQ
00000199: PUSH2 0x0546
0000019c: JUMPI
0000019d: DUP1
0000019e: PUSH4 0x715018a6
000001a3: EQ
000001a4: PUSH2 0x0566
000001a7: JUMPI
000001a8: DUP1
000001a9: PUSH4 0x81a49174
000001ae: EQ
000001af: PUSH2 0x057b
000001b2: JUMPI
000001b3: PUSH1 0x00
000001b5: DUP1
000001b6: REVERT
000001b7: JUMPDEST
000001b8: DUP1
000001b9: PUSH4 0x498143d3
000001be: EQ
000001bf: PUSH2 0x0437
000001c2: JUMPI
000001c3: DUP1
000001c4: PUSH4 0x4ea0d2fa
000001c9: EQ
000001ca: PUSH2 0x044c
000001cd: JUMPI
000001ce: DUP1
000001cf: PUSH4 0x4f556016
000001d4: EQ
000001d5: PUSH2 0x046c
000001d8: JUMPI
000001d9: DUP1
000001da: PUSH4 0x55f804b3
000001df: EQ
000001e0: PUSH2 0x048e
000001e3: JUMPI
000001e4: DUP1
000001e5: PUSH4 0x56ef2ac9
000001ea: EQ
000001eb: PUSH2 0x04ae
000001ee: JUMPI
000001ef: DUP1
000001f0: PUSH4 0x5bbb2177
000001f5: EQ
000001f6: PUSH2 0x04ce
000001f9: JUMPI
000001fa: PUSH1 0x00
000001fc: DUP1
000001fd: REVERT
000001fe: JUMPDEST
000001ff: DUP1
00000200: PUSH4 0x1c19c215
00000205: GT
00000206: PUSH2 0x0250
00000209: JUMPI
0000020a: DUP1
0000020b: PUSH4 0x1c19c215
00000210: EQ
00000211: PUSH2 0x037f
00000214: JUMPI
00000215: DUP1
00000216: PUSH4 0x23b872dd
0000021b: EQ
0000021c: PUSH2 0x0392
0000021f: JUMPI
00000220: DUP1
00000221: PUSH4 0x278ecde1
00000226: EQ
00000227: PUSH2 0x03a5
0000022a: JUMPI
0000022b: DUP1
0000022c: PUSH4 0x2a55205a
00000231: EQ
00000232: PUSH2 0x03c5
00000235: JUMPI
00000236: DUP1
00000237: PUSH4 0x33ab5d05
0000023c: EQ
0000023d: PUSH2 0x0404
00000240: JUMPI
00000241: DUP1
00000242: PUSH4 0x42842e0e
00000247: EQ
00000248: PUSH2 0x0424
0000024b: JUMPI
0000024c: PUSH1 0x00
0000024e: DUP1
0000024f: REVERT
00000250: JUMPDEST
00000251: DUP1
00000252: PUSH4 0x01ffc9a7
00000257: EQ
00000258: PUSH2 0x0298
0000025b: JUMPI
0000025c: DUP1
0000025d: PUSH4 0x04634d8d
00000262: EQ
00000263: PUSH2 0x02cd
00000266: JUMPI
00000267: DUP1
00000268: PUSH4 0x06fdde03
0000026d: EQ
0000026e: PUSH2 0x02ef
00000271: JUMPI
00000272: DUP1
00000273: PUSH4 0x081812fc
00000278: EQ
00000279: PUSH2 0x0311
0000027c: JUMPI
0000027d: DUP1
0000027e: PUSH4 0x095ea7b3
00000283: EQ
00000284: PUSH2 0x0349
00000287: JUMPI
00000288: DUP1
00000289: PUSH4 0x18160ddd
0000028e: EQ
0000028f: PUSH2 0x035c
00000292: JUMPI
00000293: JUMPDEST
00000294: PUSH1 0x00
00000296: DUP1
00000297: REVERT
00000298: JUMPDEST
00000299: CALLVALUE
0000029a: DUP1
0000029b: ISZERO
0000029c: PUSH2 0x02a4
0000029f: JUMPI
000002a0: PUSH1 0x00
000002a2: DUP1
000002a3: REVERT
000002a4: JUMPDEST
000002a5: POP
000002a6: PUSH2 0x02b8
000002a9: PUSH2 0x02b3
000002ac: CALLDATASIZE
000002ad: PUSH1 0x04
000002af: PUSH2 0x22f3
000002b2: JUMP
000002b3: JUMPDEST
000002b4: PUSH2 0x088c
000002b7: JUMP
000002b8: JUMPDEST
000002b9: PUSH1 0x40
000002bb: MLOAD
000002bc: SWAP1
000002bd: ISZERO
000002be: ISZERO
000002bf: DUP2
000002c0: MSTORE
000002c1: PUSH1 0x20
000002c3: ADD
000002c4: JUMPDEST
000002c5: PUSH1 0x40
000002c7: MLOAD
000002c8: DUP1
000002c9: SWAP2
000002ca: SUB
000002cb: SWAP1
000002cc: RETURN
000002cd: JUMPDEST
000002ce: CALLVALUE
000002cf: DUP1
000002d0: ISZERO
000002d1: PUSH2 0x02d9
000002d4: JUMPI
000002d5: PUSH1 0x00
000002d7: DUP1
000002d8: REVERT
000002d9: JUMPDEST
000002da: POP
000002db: PUSH2 0x02ed
000002de: PUSH2 0x02e8
000002e1: CALLDATASIZE
000002e2: PUSH1 0x04
000002e4: PUSH2 0x232c
000002e7: JUMP
000002e8: JUMPDEST
000002e9: PUSH2 0x08c7
000002ec: JUMP
000002ed: JUMPDEST
000002ee: STOP
000002ef: JUMPDEST
000002f0: CALLVALUE
000002f1: DUP1
000002f2: ISZERO
000002f3: PUSH2 0x02fb
000002f6: JUMPI
000002f7: PUSH1 0x00
000002f9: DUP1
000002fa: REVERT
000002fb: JUMPDEST
000002fc: POP
000002fd: PUSH2 0x0304
00000300: PUSH2 0x08dd
00000303: JUMP
00000304: JUMPDEST
00000305: PUSH1 0x40
00000307: MLOAD
00000308: PUSH2 0x02c4
0000030b: SWAP2
0000030c: SWAP1
0000030d: PUSH2 0x23bf
00000310: JUMP
00000311: JUMPDEST
00000312: CALLVALUE
00000313: DUP1
00000314: ISZERO
00000315: PUSH2 0x031d
00000318: JUMPI
00000319: PUSH1 0x00
0000031b: DUP1
0000031c: REVERT
0000031d: JUMPDEST
0000031e: POP
0000031f: PUSH2 0x0331
00000322: PUSH2 0x032c
00000325: CALLDATASIZE
00000326: PUSH1 0x04
00000328: PUSH2 0x23d2
0000032b: JUMP
0000032c: JUMPDEST
0000032d: PUSH2 0x096f
00000330: JUMP
00000331: JUMPDEST
00000332: PUSH1 0x40
00000334: MLOAD
00000335: PUSH1 0x01
00000337: PUSH1 0x01
00000339: PUSH1 0xa0
0000033b: SHL
0000033c: SUB
0000033d: SWAP1
0000033e: SWAP2
0000033f: AND
00000340: DUP2
00000341: MSTORE
00000342: PUSH1 0x20
00000344: ADD
00000345: PUSH2 0x02c4
00000348: JUMP
00000349: JUMPDEST
0000034a: PUSH2 0x02ed
0000034d: PUSH2 0x0357
00000350: CALLDATASIZE
00000351: PUSH1 0x04
00000353: PUSH2 0x23eb
00000356: JUMP
00000357: JUMPDEST
00000358: PUSH2 0x09b3
0000035b: JUMP
0000035c: JUMPDEST
0000035d: CALLVALUE
0000035e: DUP1
0000035f: ISZERO
00000360: PUSH2 0x0368
00000363: JUMPI
00000364: PUSH1 0x00
00000366: DUP1
00000367: REVERT
00000368: JUMPDEST
00000369: POP
0000036a: PUSH1 0x05
0000036c: SLOAD
0000036d: PUSH1 0x04
0000036f: SLOAD
00000370: SUB
00000371: JUMPDEST
00000372: PUSH1 0x40
00000374: MLOAD
00000375: SWAP1
00000376: DUP2
00000377: MSTORE
00000378: PUSH1 0x20
0000037a: ADD
0000037b: PUSH2 0x02c4
0000037e: JUMP
0000037f: JUMPDEST
00000380: PUSH2 0x02ed
00000383: PUSH2 0x038d
00000386: CALLDATASIZE
00000387: PUSH1 0x04
00000389: PUSH2 0x23d2
0000038c: JUMP
0000038d: JUMPDEST
0000038e: PUSH2 0x09fb
00000391: JUMP
00000392: JUMPDEST
00000393: PUSH2 0x02ed
00000396: PUSH2 0x03a0
00000399: CALLDATASIZE
0000039a: PUSH1 0x04
0000039c: PUSH2 0x2415
0000039f: JUMP
000003a0: JUMPDEST
000003a1: PUSH2 0x0b3e
000003a4: JUMP
000003a5: JUMPDEST
000003a6: CALLVALUE
000003a7: DUP1
000003a8: ISZERO
000003a9: PUSH2 0x03b1
000003ac: JUMPI
000003ad: PUSH1 0x00
000003af: DUP1
000003b0: REVERT
000003b1: JUMPDEST
000003b2: POP
000003b3: PUSH2 0x02ed
000003b6: PUSH2 0x03c0
000003b9: CALLDATASIZE
000003ba: PUSH1 0x04
000003bc: PUSH2 0x23d2
000003bf: JUMP
000003c0: JUMPDEST
000003c1: PUSH2 0x0b8f
000003c4: JUMP
000003c5: JUMPDEST
000003c6: CALLVALUE
000003c7: DUP1
000003c8: ISZERO
000003c9: PUSH2 0x03d1
000003cc: JUMPI
000003cd: PUSH1 0x00
000003cf: DUP1
000003d0: REVERT
000003d1: JUMPDEST
000003d2: POP
000003d3: PUSH2 0x03e5
000003d6: PUSH2 0x03e0
000003d9: CALLDATASIZE
000003da: PUSH1 0x04
000003dc: PUSH2 0x2451
000003df: JUMP
000003e0: JUMPDEST
000003e1: PUSH2 0x0c3c
000003e4: JUMP
000003e5: JUMPDEST
000003e6: PUSH1 0x40
000003e8: DUP1
000003e9: MLOAD
000003ea: PUSH1 0x01
000003ec: PUSH1 0x01
000003ee: PUSH1 0xa0
000003f0: SHL
000003f1: SUB
000003f2: SWAP1
000003f3: SWAP4
000003f4: AND
000003f5: DUP4
000003f6: MSTORE
000003f7: PUSH1 0x20
000003f9: DUP4
000003fa: ADD
000003fb: SWAP2
000003fc: SWAP1
000003fd: SWAP2
000003fe: MSTORE
000003ff: ADD
00000400: PUSH2 0x02c4
00000403: JUMP
00000404: JUMPDEST
00000405: CALLVALUE
00000406: DUP1
00000407: ISZERO
00000408: PUSH2 0x0410
0000040b: JUMPI
0000040c: PUSH1 0x00
0000040e: DUP1
0000040f: REVERT
00000410: JUMPDEST
00000411: POP
00000412: PUSH2 0x02ed
00000415: PUSH2 0x041f
00000418: CALLDATASIZE
00000419: PUSH1 0x04
0000041b: PUSH2 0x2473
0000041e: JUMP
0000041f: JUMPDEST
00000420: PUSH2 0x0ce8
00000423: JUMP
00000424: JUMPDEST
00000425: PUSH2 0x02ed
00000428: PUSH2 0x0432
0000042b: CALLDATASIZE
0000042c: PUSH1 0x04
0000042e: PUSH2 0x2415
00000431: JUMP
00000432: JUMPDEST
00000433: PUSH2 0x0d12
00000436: JUMP
00000437: JUMPDEST
00000438: CALLVALUE
00000439: DUP1
0000043a: ISZERO
0000043b: PUSH2 0x0443
0000043e: JUMPI
0000043f: PUSH1 0x00
00000441: DUP1
00000442: REVERT
00000443: JUMPDEST
00000444: POP
00000445: PUSH2 0x0304
00000448: PUSH2 0x0d2d
0000044b: JUMP
0000044c: JUMPDEST
0000044d: CALLVALUE
0000044e: DUP1
0000044f: ISZERO
00000450: PUSH2 0x0458
00000453: JUMPI
00000454: PUSH1 0x00
00000456: DUP1
00000457: REVERT
00000458: JUMPDEST
00000459: POP
0000045a: PUSH2 0x02ed
0000045d: PUSH2 0x0467
00000460: CALLDATASIZE
00000461: PUSH1 0x04
00000463: PUSH2 0x2473
00000466: JUMP
00000467: JUMPDEST
00000468: PUSH2 0x0da9
0000046b: JUMP
0000046c: JUMPDEST
0000046d: CALLVALUE
0000046e: DUP1
0000046f: ISZERO
00000470: PUSH2 0x0478
00000473: JUMPI
00000474: PUSH1 0x00
00000476: DUP1
00000477: REVERT
00000478: JUMPDEST
00000479: POP
0000047a: PUSH2 0x0371
0000047d: PUSH2 0x0487
00000480: CALLDATASIZE
00000481: PUSH1 0x04
00000483: PUSH2 0x23d2
00000486: JUMP
00000487: JUMPDEST
00000488: POP
00000489: PUSH1 0x00
0000048b: NOT
0000048c: SWAP1
0000048d: JUMP
0000048e: JUMPDEST
0000048f: CALLVALUE
00000490: DUP1
00000491: ISZERO
00000492: PUSH2 0x049a
00000495: JUMPI
00000496: PUSH1 0x00
00000498: DUP1
00000499: REVERT
0000049a: JUMPDEST
0000049b: POP
0000049c: PUSH2 0x02ed
0000049f: PUSH2 0x04a9
000004a2: CALLDATASIZE
000004a3: PUSH1 0x04
000004a5: PUSH2 0x248e
000004a8: JUMP
000004a9: JUMPDEST
000004aa: PUSH2 0x0dd3
000004ad: JUMP
000004ae: JUMPDEST
000004af: CALLVALUE
000004b0: DUP1
000004b1: ISZERO
000004b2: PUSH2 0x04ba
000004b5: JUMPI
000004b6: PUSH1 0x00
000004b8: DUP1
000004b9: REVERT
000004ba: JUMPDEST
000004bb: POP
000004bc: PUSH2 0x02ed
000004bf: PUSH2 0x04c9
000004c2: CALLDATASIZE
000004c3: PUSH1 0x04
000004c5: PUSH2 0x23d2
000004c8: JUMP
000004c9: JUMPDEST
000004ca: PUSH2 0x0de8
000004cd: JUMP
000004ce: JUMPDEST
000004cf: CALLVALUE
000004d0: DUP1
000004d1: ISZERO
000004d2: PUSH2 0x04da
000004d5: JUMPI
000004d6: PUSH1 0x00
000004d8: DUP1
000004d9: REVERT
000004da: JUMPDEST
000004db: POP
000004dc: PUSH2 0x04ee
000004df: PUSH2 0x04e9
000004e2: CALLDATASIZE
000004e3: PUSH1 0x04
000004e5: PUSH2 0x24ff
000004e8: JUMP
000004e9: JUMPDEST
000004ea: PUSH2 0x0df5
000004ed: JUMP
000004ee: JUMPDEST
000004ef: PUSH1 0x40
000004f1: MLOAD
000004f2: PUSH2 0x02c4
000004f5: SWAP2
000004f6: SWAP1
000004f7: PUSH2 0x2561
000004fa: JUMP
000004fb: JUMPDEST
000004fc: CALLVALUE
000004fd: DUP1
000004fe: ISZERO
000004ff: PUSH2 0x0507
00000502: JUMPI
00000503: PUSH1 0x00
00000505: DUP1
00000506: REVERT
00000507: JUMPDEST
00000508: POP
00000509: PUSH2 0x0304
0000050c: PUSH2 0x0eb9
0000050f: JUMP
00000510: JUMPDEST
00000511: CALLVALUE
00000512: DUP1
00000513: ISZERO
00000514: PUSH2 0x051c
00000517: JUMPI
00000518: PUSH1 0x00
0000051a: DUP1
0000051b: REVERT
0000051c: JUMPDEST
0000051d: POP
0000051e: PUSH2 0x0371
00000521: PUSH1 0x0d
00000523: SLOAD
00000524: DUP2
00000525: JUMP
00000526: JUMPDEST
00000527: CALLVALUE
00000528: DUP1
00000529: ISZERO
0000052a: PUSH2 0x0532
0000052d: JUMPI
0000052e: PUSH1 0x00
00000530: DUP1
00000531: REVERT
00000532: JUMPDEST
00000533: POP
00000534: PUSH2 0x0331
00000537: PUSH2 0x0541
0000053a: CALLDATASIZE
0000053b: PUSH1 0x04
0000053d: PUSH2 0x23d2
00000540: JUMP
00000541: JUMPDEST
00000542: PUSH2 0x0eeb
00000545: JUMP
00000546: JUMPDEST
00000547: CALLVALUE
00000548: DUP1
00000549: ISZERO
0000054a: PUSH2 0x0552
0000054d: JUMPI
0000054e: PUSH1 0x00
00000550: DUP1
00000551: REVERT
00000552: JUMPDEST
00000553: POP
00000554: PUSH2 0x0371
00000557: PUSH2 0x0561
0000055a: CALLDATASIZE
0000055b: PUSH1 0x04
0000055d: PUSH2 0x2473
00000560: JUMP
00000561: JUMPDEST
00000562: PUSH2 0x0ef6
00000565: JUMP
00000566: JUMPDEST
00000567: CALLVALUE
00000568: DUP1
00000569: ISZERO
0000056a: PUSH2 0x0572
0000056d: JUMPI
0000056e: PUSH1 0x00
00000570: DUP1
00000571: REVERT
00000572: JUMPDEST
00000573: POP
00000574: PUSH2 0x02ed
00000577: PUSH2 0x0f44
0000057a: JUMP
0000057b: JUMPDEST
0000057c: CALLVALUE
0000057d: DUP1
0000057e: ISZERO
0000057f: PUSH2 0x0587
00000582: JUMPI
00000583: PUSH1 0x00
00000585: DUP1
00000586: REVERT
00000587: JUMPDEST
00000588: POP
00000589: PUSH2 0x0371
0000058c: PUSH2 0x0596
0000058f: CALLDATASIZE
00000590: PUSH1 0x04
00000592: PUSH2 0x23d2
00000595: JUMP
00000596: JUMPDEST
00000597: POP
00000598: PUSH8 0x038d7ea4c6800000
000005a1: SWAP1
000005a2: JUMP
000005a3: JUMPDEST
000005a4: CALLVALUE
000005a5: DUP1
000005a6: ISZERO
000005a7: PUSH2 0x05af
000005aa: JUMPI
000005ab: PUSH1 0x00
000005ad: DUP1
000005ae: REVERT
000005af: JUMPDEST
000005b0: POP
000005b1: PUSH2 0x05c3
000005b4: PUSH2 0x05be
000005b7: CALLDATASIZE
000005b8: PUSH1 0x04
000005ba: PUSH2 0x2473
000005bd: JUMP
000005be: JUMPDEST
000005bf: PUSH2 0x0f58
000005c2: JUMP
000005c3: JUMPDEST
000005c4: PUSH1 0x40
000005c6: MLOAD
000005c7: PUSH2 0x02c4
000005ca: SWAP2
000005cb: SWAP1
000005cc: PUSH2 0x25cb
000005cf: JUMP
000005d0: JUMPDEST
000005d1: CALLVALUE
000005d2: DUP1
000005d3: ISZERO
000005d4: PUSH2 0x05dc
000005d7: JUMPI
000005d8: PUSH1 0x00
000005da: DUP1
000005db: REVERT
000005dc: JUMPDEST
000005dd: POP
000005de: PUSH2 0x0304
000005e1: PUSH2 0x1059
000005e4: JUMP
000005e5: JUMPDEST
000005e6: CALLVALUE
000005e7: DUP1
000005e8: ISZERO
000005e9: PUSH2 0x05f1
000005ec: JUMPI
000005ed: PUSH1 0x00
000005ef: DUP1
000005f0: REVERT
000005f1: JUMPDEST
000005f2: POP
000005f3: PUSH1 0x00
000005f5: SLOAD
000005f6: PUSH1 0x01
000005f8: PUSH1 0x01
000005fa: PUSH1 0xa0
000005fc: SHL
000005fd: SUB
000005fe: AND
000005ff: PUSH2 0x0331
00000602: JUMP
00000603: JUMPDEST
00000604: CALLVALUE
00000605: DUP1
00000606: ISZERO
00000607: PUSH2 0x060f
0000060a: JUMPI
0000060b: PUSH1 0x00
0000060d: DUP1
0000060e: REVERT
0000060f: JUMPDEST
00000610: POP
00000611: PUSH2 0x0304
00000614: PUSH2 0x10e7
00000617: JUMP
00000618: JUMPDEST
00000619: CALLVALUE
0000061a: DUP1
0000061b: ISZERO
0000061c: PUSH2 0x0624
0000061f: JUMPI
00000620: PUSH1 0x00
00000622: DUP1
00000623: REVERT
00000624: JUMPDEST
00000625: POP
00000626: PUSH2 0x0304
00000629: PUSH2 0x10f4
0000062c: JUMP
0000062d: JUMPDEST
0000062e: CALLVALUE
0000062f: DUP1
00000630: ISZERO
00000631: PUSH2 0x0639
00000634: JUMPI
00000635: PUSH1 0x00
00000637: DUP1
00000638: REVERT
00000639: JUMPDEST
0000063a: POP
0000063b: PUSH2 0x05c3
0000063e: PUSH2 0x0648
00000641: CALLDATASIZE
00000642: PUSH1 0x04
00000644: PUSH2 0x2603
00000647: JUMP
00000648: JUMPDEST
00000649: PUSH2 0x1103
0000064c: JUMP
0000064d: JUMPDEST
0000064e: CALLVALUE
0000064f: DUP1
00000650: ISZERO
00000651: PUSH2 0x0659
00000654: JUMPI
00000655: PUSH1 0x00
00000657: DUP1
00000658: REVERT
00000659: JUMPDEST
0000065a: POP
0000065b: PUSH2 0x066d
0000065e: PUSH2 0x0668
00000661: CALLDATASIZE
00000662: PUSH1 0x04
00000664: PUSH2 0x23d2
00000667: JUMP
00000668: JUMPDEST
00000669: PUSH2 0x127c
0000066c: JUMP
0000066d: JUMPDEST
0000066e: PUSH1 0x40
00000670: MLOAD
00000671: PUSH1 0x01
00000673: PUSH1 0x01
00000675: PUSH1 0x40
00000677: SHL
00000678: SUB
00000679: SWAP1
0000067a: SWAP2
0000067b: AND
0000067c: DUP2
0000067d: MSTORE
0000067e: PUSH1 0x20
00000680: ADD
00000681: PUSH2 0x02c4
00000684: JUMP
00000685: JUMPDEST
00000686: CALLVALUE
00000687: DUP1
00000688: ISZERO
00000689: PUSH2 0x0691
0000068c: JUMPI
0000068d: PUSH1 0x00
0000068f: DUP1
00000690: REVERT
00000691: JUMPDEST
00000692: POP
00000693: PUSH2 0x0371
00000696: PUSH1 0x0c
00000698: SLOAD
00000699: DUP2
0000069a: JUMP
0000069b: JUMPDEST
0000069c: PUSH2 0x02ed
0000069f: PUSH2 0x06a9
000006a2: CALLDATASIZE
000006a3: PUSH1 0x04
000006a5: PUSH2 0x23d2
000006a8: JUMP
000006a9: JUMPDEST
000006aa: PUSH2 0x12dd
000006ad: JUMP
000006ae: JUMPDEST
000006af: CALLVALUE
000006b0: DUP1
000006b1: ISZERO
000006b2: PUSH2 0x06ba
000006b5: JUMPI
000006b6: PUSH1 0x00
000006b8: DUP1
000006b9: REVERT
000006ba: JUMPDEST
000006bb: POP
000006bc: PUSH2 0x02ed
000006bf: PUSH2 0x06c9
000006c2: CALLDATASIZE
000006c3: PUSH1 0x04
000006c5: PUSH2 0x2646
000006c8: JUMP
000006c9: JUMPDEST
000006ca: PUSH2 0x13f9
000006cd: JUMP
000006ce: JUMPDEST
000006cf: CALLVALUE
000006d0: DUP1
000006d1: ISZERO
000006d2: PUSH2 0x06da
000006d5: JUMPI
000006d6: PUSH1 0x00
000006d8: DUP1
000006d9: REVERT
000006da: JUMPDEST
000006db: POP
000006dc: PUSH2 0x0371
000006df: PUSH8 0x038d7ea4c6800000
000006e8: DUP2
000006e9: JUMP
000006ea: JUMPDEST
000006eb: CALLVALUE
000006ec: DUP1
000006ed: ISZERO
000006ee: PUSH2 0x06f6
000006f1: JUMPI
000006f2: PUSH1 0x00
000006f4: DUP1
000006f5: REVERT
000006f6: JUMPDEST
000006f7: POP
000006f8: PUSH2 0x02ed
000006fb: PUSH2 0x143c
000006fe: JUMP
000006ff: JUMPDEST
00000700: CALLVALUE
00000701: DUP1
00000702: ISZERO
00000703: PUSH2 0x070b
00000706: JUMPI
00000707: PUSH1 0x00
00000709: DUP1
0000070a: REVERT
0000070b: JUMPDEST
0000070c: POP
0000070d: PUSH2 0x0371
00000710: PUSH2 0x14e5
00000713: JUMP
00000714: JUMPDEST
00000715: CALLVALUE
00000716: DUP1
00000717: ISZERO
00000718: PUSH2 0x0720
0000071b: JUMPI
0000071c: PUSH1 0x00
0000071e: DUP1
0000071f: REVERT
00000720: JUMPDEST
00000721: POP
00000722: PUSH2 0x02ed
00000725: PUSH2 0x072f
00000728: CALLDATASIZE
00000729: PUSH1 0x04
0000072b: PUSH2 0x2679
0000072e: JUMP
0000072f: JUMPDEST
00000730: PUSH2 0x14f0
00000733: JUMP
00000734: JUMPDEST
00000735: PUSH2 0x02ed
00000738: PUSH2 0x0742
0000073b: CALLDATASIZE
0000073c: PUSH1 0x04
0000073e: PUSH2 0x2701
00000741: JUMP
00000742: JUMPDEST
00000743: PUSH2 0x150b
00000746: JUMP
00000747: JUMPDEST
00000748: CALLVALUE
00000749: DUP1
0000074a: ISZERO
0000074b: PUSH2 0x0753
0000074e: JUMPI
0000074f: PUSH1 0x00
00000751: DUP1
00000752: REVERT
00000753: JUMPDEST
00000754: POP
00000755: PUSH2 0x02ed
00000758: PUSH2 0x0762
0000075b: CALLDATASIZE
0000075c: PUSH1 0x04
0000075e: PUSH2 0x23eb
00000761: JUMP
00000762: JUMPDEST
00000763: PUSH2 0x154f
00000766: JUMP
00000767: JUMPDEST
00000768: CALLVALUE
00000769: DUP1
0000076a: ISZERO
0000076b: PUSH2 0x0773
0000076e: JUMPI
0000076f: PUSH1 0x00
00000771: DUP1
00000772: REVERT
00000773: JUMPDEST
00000774: POP
00000775: PUSH2 0x02ed
00000778: PUSH2 0x0782
0000077b: CALLDATASIZE
0000077c: PUSH1 0x04
0000077e: PUSH2 0x23d2
00000781: JUMP
00000782: JUMPDEST
00000783: PUSH2 0x15fd
00000786: JUMP
00000787: JUMPDEST
00000788: CALLVALUE
00000789: DUP1
0000078a: ISZERO
0000078b: PUSH2 0x0793
0000078e: JUMPI
0000078f: PUSH1 0x00
00000791: DUP1
00000792: REVERT
00000793: JUMPDEST
00000794: POP
00000795: PUSH2 0x07a7
00000798: PUSH2 0x07a2
0000079b: CALLDATASIZE
0000079c: PUSH1 0x04
0000079e: PUSH2 0x23d2
000007a1: JUMP
000007a2: JUMPDEST
000007a3: PUSH2 0x160a
000007a6: JUMP
000007a7: JUMPDEST
000007a8: PUSH1 0x40
000007aa: MLOAD
000007ab: PUSH2 0x02c4
000007ae: SWAP2
000007af: SWAP1
000007b0: PUSH2 0x27ab
000007b3: JUMP
000007b4: JUMPDEST
000007b5: CALLVALUE
000007b6: DUP1
000007b7: ISZERO
000007b8: PUSH2 0x07c0
000007bb: JUMPI
000007bc: PUSH1 0x00
000007be: DUP1
000007bf: REVERT
000007c0: JUMPDEST
000007c1: POP
000007c2: PUSH2 0x0304
000007c5: PUSH2 0x07cf
000007c8: CALLDATASIZE
000007c9: PUSH1 0x04
000007cb: PUSH2 0x23d2
000007ce: JUMP
000007cf: JUMPDEST
000007d0: PUSH2 0x1673
000007d3: JUMP
000007d4: JUMPDEST
000007d5: CALLVALUE
000007d6: DUP1
000007d7: ISZERO
000007d8: PUSH2 0x07e0
000007db: JUMPI
000007dc: PUSH1 0x00
000007de: DUP1
000007df: REVERT
000007e0: JUMPDEST
000007e1: POP
000007e2: PUSH2 0x02b8
000007e5: PUSH2 0x07ef
000007e8: CALLDATASIZE
000007e9: PUSH1 0x04
000007eb: PUSH2 0x27e0
000007ee: JUMP
000007ef: JUMPDEST
000007f0: PUSH1 0x01
000007f2: PUSH1 0x01
000007f4: PUSH1 0xa0
000007f6: SHL
000007f7: SUB
000007f8: SWAP2
000007f9: DUP3
000007fa: AND
000007fb: PUSH1 0x00
000007fd: SWAP1
000007fe: DUP2
000007ff: MSTORE
00000800: PUSH1 0x0b
00000802: PUSH1 0x20
00000804: SWAP1
00000805: DUP2
00000806: MSTORE
00000807: PUSH1 0x40
00000809: DUP1
0000080a: DUP4
0000080b: KECCAK256
0000080c: SWAP4
0000080d: SWAP1
0000080e: SWAP5
0000080f: AND
00000810: DUP3
00000811: MSTORE
00000812: SWAP2
00000813: SWAP1
00000814: SWAP2
00000815: MSTORE
00000816: KECCAK256
00000817: SLOAD
00000818: PUSH1 0xff
0000081a: AND
0000081b: SWAP1
0000081c: JUMP
0000081d: JUMPDEST
0000081e: CALLVALUE
0000081f: DUP1
00000820: ISZERO
00000821: PUSH2 0x0829
00000824: JUMPI
00000825: PUSH1 0x00
00000827: DUP1
00000828: REVERT
00000829: JUMPDEST
0000082a: POP
0000082b: PUSH2 0x02ed
0000082e: PUSH2 0x0838
00000831: CALLDATASIZE
00000832: PUSH1 0x04
00000834: PUSH2 0x2473
00000837: JUMP
00000838: JUMPDEST
00000839: PUSH2 0x16f6
0000083c: JUMP
0000083d: JUMPDEST
0000083e: CALLVALUE
0000083f: DUP1
00000840: ISZERO
00000841: PUSH2 0x0849
00000844: JUMPI
00000845: PUSH1 0x00
00000847: DUP1
00000848: REVERT
00000849: JUMPDEST
0000084a: POP
0000084b: PUSH2 0x02ed
0000084e: PUSH2 0x0858
00000851: CALLDATASIZE
00000852: PUSH1 0x04
00000854: PUSH2 0x23d2
00000857: JUMP
00000858: JUMPDEST
00000859: PUSH2 0x1774
0000085c: JUMP
0000085d: JUMPDEST
0000085e: CALLVALUE
0000085f: DUP1
00000860: ISZERO
00000861: PUSH2 0x0869
00000864: JUMPI
00000865: PUSH1 0x00
00000867: DUP1
00000868: REVERT
00000869: JUMPDEST
0000086a: POP
0000086b: PUSH1 0x14
0000086d: SLOAD
0000086e: PUSH2 0x02b8
00000871: SWAP1
00000872: PUSH1 0xff
00000874: AND
00000875: DUP2
00000876: JUMP
00000877: JUMPDEST
00000878: CALLVALUE
00000879: DUP1
0000087a: ISZERO
0000087b: PUSH2 0x0883
0000087e: JUMPI
0000087f: PUSH1 0x00
00000881: DUP1
00000882: REVERT
00000883: JUMPDEST
00000884: POP
00000885: PUSH2 0x0304
00000888: PUSH2 0x1781
0000088b: JUMP
0000088c: JUMPDEST
0000088d: PUSH1 0x00
0000088f: PUSH2 0x0897
00000892: DUP3
00000893: PUSH2 0x178e
00000896: JUMP
00000897: JUMPDEST
00000898: DUP1
00000899: PUSH2 0x08b2
0000089c: JUMPI
0000089d: POP
0000089e: PUSH1 0x01
000008a0: PUSH1 0x01
000008a2: PUSH1 0xe0
000008a4: SHL
000008a5: SUB
000008a6: NOT
000008a7: DUP3
000008a8: AND
000008a9: PUSH4 0x54a15145
000008ae: PUSH1 0xe0
000008b0: SHL
000008b1: EQ
000008b2: JUMPDEST
000008b3: DUP1
000008b4: PUSH2 0x08c1
000008b7: JUMPI
000008b8: POP
000008b9: PUSH2 0x08c1
000008bc: DUP3
000008bd: PUSH2 0x17c3
000008c0: JUMP
000008c1: JUMPDEST
000008c2: SWAP3
000008c3: SWAP2
000008c4: POP
000008c5: POP
000008c6: JUMP
000008c7: JUMPDEST
000008c8: PUSH2 0x08cf
000008cb: PUSH2 0x1811
000008ce: JUMP
000008cf: JUMPDEST
000008d0: PUSH2 0x08d9
000008d3: DUP3
000008d4: DUP3
000008d5: PUSH2 0x186b
000008d8: JUMP
000008d9: JUMPDEST
000008da: POP
000008db: POP
000008dc: JUMP
000008dd: JUMPDEST
000008de: PUSH1 0x60
000008e0: PUSH1 0x06
000008e2: DUP1
000008e3: SLOAD
000008e4: PUSH2 0x08ec
000008e7: SWAP1
000008e8: PUSH2 0x280a
000008eb: JUMP
000008ec: JUMPDEST
000008ed: DUP1
000008ee: PUSH1 0x1f
000008f0: ADD
000008f1: PUSH1 0x20
000008f3: DUP1
000008f4: SWAP2
000008f5: DIV
000008f6: MUL
000008f7: PUSH1 0x20
000008f9: ADD
000008fa: PUSH1 0x40
000008fc: MLOAD
000008fd: SWAP1
000008fe: DUP2
000008ff: ADD
00000900: PUSH1 0x40
00000902: MSTORE
00000903: DUP1
00000904: SWAP3
00000905: SWAP2
00000906: SWAP1
00000907: DUP2
00000908: DUP2
00000909: MSTORE
0000090a: PUSH1 0x20
0000090c: ADD
0000090d: DUP3
0000090e: DUP1
0000090f: SLOAD
00000910: PUSH2 0x0918
00000913: SWAP1
00000914: PUSH2 0x280a
00000917: JUMP
00000918: JUMPDEST
00000919: DUP1
0000091a: ISZERO
0000091b: PUSH2 0x0965
0000091e: JUMPI
0000091f: DUP1
00000920: PUSH1 0x1f
00000922: LT
00000923: PUSH2 0x093a
00000926: JUMPI
00000927: PUSH2 0x0100
0000092a: DUP1
0000092b: DUP4
0000092c: SLOAD
0000092d: DIV
0000092e: MUL
0000092f: DUP4
00000930: MSTORE
00000931: SWAP2
00000932: PUSH1 0x20
00000934: ADD
00000935: SWAP2
00000936: PUSH2 0x0965
00000939: JUMP
0000093a: JUMPDEST
0000093b: DUP3
0000093c: ADD
0000093d: SWAP2
0000093e: SWAP1
0000093f: PUSH1 0x00
00000941: MSTORE
00000942: PUSH1 0x20
00000944: PUSH1 0x00
00000946: KECCAK256
00000947: SWAP1
00000948: JUMPDEST
00000949: DUP2
0000094a: SLOAD
0000094b: DUP2
0000094c: MSTORE
0000094d: SWAP1
0000094e: PUSH1 0x01
00000950: ADD
00000951: SWAP1
00000952: PUSH1 0x20
00000954: ADD
00000955: DUP1
00000956: DUP4
00000957: GT
00000958: PUSH2 0x0948
0000095b: JUMPI
0000095c: DUP3
0000095d: SWAP1
0000095e: SUB
0000095f: PUSH1 0x1f
00000961: AND
00000962: DUP3
00000963: ADD
00000964: SWAP2
00000965: JUMPDEST
00000966: POP
00000967: POP
00000968: POP
00000969: POP
0000096a: POP
0000096b: SWAP1
0000096c: POP
0000096d: SWAP1
0000096e: JUMP
0000096f: JUMPDEST
00000970: PUSH1 0x00
00000972: PUSH2 0x097a
00000975: DUP3
00000976: PUSH2 0x1968
00000979: JUMP
0000097a: JUMPDEST
0000097b: PUSH2 0x0997
0000097e: JUMPI
0000097f: PUSH1 0x40
00000981: MLOAD
00000982: PUSH4 0x33d1c039
00000987: PUSH1 0xe2
00000989: SHL
0000098a: DUP2
0000098b: MSTORE
0000098c: PUSH1 0x04
0000098e: ADD
0000098f: PUSH1 0x40
00000991: MLOAD
00000992: DUP1
00000993: SWAP2
00000994: SUB
00000995: SWAP1
00000996: REVERT
00000997: JUMPDEST
00000998: POP
00000999: PUSH1 0x00
0000099b: SWAP1
0000099c: DUP2
0000099d: MSTORE
0000099e: PUSH1 0x0a
000009a0: PUSH1 0x20
000009a2: MSTORE
000009a3: PUSH1 0x40
000009a5: SWAP1
000009a6: KECCAK256
000009a7: SLOAD
000009a8: PUSH1 0x01
000009aa: PUSH1 0x01
000009ac: PUSH1 0xa0
000009ae: SHL
000009af: SUB
000009b0: AND
000009b1: SWAP1
000009b2: JUMP
000009b3: JUMPDEST
000009b4: DUP2
000009b5: PUSH20 0x1e0049783f008a0085193e00003d00cd54003c71
000009ca: PUSH1 0x01
000009cc: PUSH1 0x01
000009ce: PUSH1 0xa0
000009d0: SHL
000009d1: SUB
000009d2: DUP3
000009d3: AND
000009d4: EQ
000009d5: PUSH2 0x09ec
000009d8: JUMPI
000009d9: PUSH1 0x14
000009db: SLOAD
000009dc: PUSH1 0xff
000009de: AND
000009df: ISZERO
000009e0: PUSH2 0x09ec
000009e3: JUMPI
000009e4: PUSH2 0x09ec
000009e7: DUP2
000009e8: PUSH2 0x1990
000009eb: JUMP
000009ec: JUMPDEST
000009ed: PUSH2 0x09f6
000009f0: DUP4
000009f1: DUP4
000009f2: PUSH2 0x19d4
000009f5: JUMP
000009f6: JUMPDEST
000009f7: POP
000009f8: POP
000009f9: POP
000009fa: JUMP
000009fb: JUMPDEST
000009fc: PUSH1 0x00
000009fe: PUSH2 0x0a06
00000a01: DUP3
00000a02: PUSH2 0x0eeb
00000a05: JUMP
00000a06: JUMPDEST
00000a07: SWAP1
00000a08: POP
00000a09: PUSH1 0x00
00000a0b: CALLER
00000a0c: PUSH1 0x01
00000a0e: PUSH1 0x01
00000a10: PUSH1 0xa0
00000a12: SHL
00000a13: SUB
00000a14: DUP4
00000a15: AND
00000a16: EQ
00000a17: DUP1
00000a18: PUSH2 0x0a31
00000a1b: JUMPI
00000a1c: POP
00000a1d: CALLER
00000a1e: PUSH2 0x0a26
00000a21: DUP5
00000a22: PUSH2 0x096f
00000a25: JUMP
00000a26: JUMPDEST
00000a27: PUSH1 0x01
00000a29: PUSH1 0x01
00000a2b: PUSH1 0xa0
00000a2d: SHL
00000a2e: SUB
00000a2f: AND
00000a30: EQ
00000a31: JUMPDEST
00000a32: DUP1
00000a33: PUSH2 0x0a41
00000a36: JUMPI
00000a37: POP
00000a38: PUSH2 0x0a41
00000a3b: DUP3
00000a3c: CALLER
00000a3d: PUSH2 0x07ef
00000a40: JUMP
00000a41: JUMPDEST
00000a42: SWAP1
00000a43: POP
00000a44: DUP1
00000a45: PUSH2 0x0a61
00000a48: JUMPI
00000a49: PUSH1 0x40
00000a4b: MLOAD
00000a4c: PUSH4 0x0edefebd
00000a51: PUSH1 0xe4
00000a53: SHL
00000a54: DUP2
00000a55: MSTORE
00000a56: PUSH1 0x04
00000a58: ADD
00000a59: PUSH1 0x40
00000a5b: MLOAD
00000a5c: DUP1
00000a5d: SWAP2
00000a5e: SUB
00000a5f: SWAP1
00000a60: REVERT
00000a61: JUMPDEST
00000a62: PUSH1 0x01
00000a64: PUSH1 0x0d
00000a66: SLOAD
00000a67: EQ
00000a68: PUSH2 0x0a84
00000a6b: JUMPI
00000a6c: PUSH1 0x40
00000a6e: MLOAD
00000a6f: PUSH4 0xeb021a09
00000a74: PUSH1 0xe0
00000a76: SHL
00000a77: DUP2
00000a78: MSTORE
00000a79: PUSH1 0x04
00000a7b: ADD
00000a7c: PUSH1 0x40
00000a7e: MLOAD
00000a7f: DUP1
00000a80: SWAP2
00000a81: SUB
00000a82: SWAP1
00000a83: REVERT
00000a84: JUMPDEST
00000a85: PUSH1 0x00
00000a87: PUSH2 0x0a8f
00000a8a: DUP5
00000a8b: PUSH2 0x127c
00000a8e: JUMP
00000a8f: JUMPDEST
00000a90: SWAP1
00000a91: POP
00000a92: PUSH1 0x00
00000a94: PUSH2 0x0a9c
00000a97: DUP6
00000a98: PUSH2 0x1a74
00000a9b: JUMP
00000a9c: JUMPDEST
00000a9d: SWAP1
00000a9e: POP
00000a9f: PUSH1 0x00
00000aa1: PUSH2 0x0aab
00000aa4: DUP7
00000aa5: PUSH1 0x01
00000aa7: PUSH2 0x2854
00000aaa: JUMP
00000aab: JUMPDEST
00000aac: SWAP1
00000aad: POP
00000aae: PUSH2 0x0ab6
00000ab1: PUSH1 0x04
00000ab3: SLOAD
00000ab4: SWAP1
00000ab5: JUMP
00000ab6: JUMPDEST
00000ab7: DUP2
00000ab8: LT
00000ab9: ISZERO
00000aba: PUSH2 0x0aed
00000abd: JUMPI
00000abe: PUSH1 0x00
00000ac0: PUSH2 0x0ac8
00000ac3: DUP3
00000ac4: PUSH2 0x1a91
00000ac7: JUMP
00000ac8: JUMPDEST
00000ac9: SWAP1
00000aca: POP
00000acb: DUP1
00000acc: PUSH1 0x40
00000ace: ADD
00000acf: MLOAD
00000ad0: PUSH1 0x01
00000ad2: PUSH1 0x01
00000ad4: PUSH1 0x40
00000ad6: SHL
00000ad7: SUB
00000ad8: AND
00000ad9: PUSH1 0x00
00000adb: SUB
00000adc: PUSH2 0x0aeb
00000adf: JUMPI
00000ae0: PUSH2 0x0ae9
00000ae3: DUP3
00000ae4: DUP6
00000ae5: PUSH2 0x1ac6
00000ae8: JUMP
00000ae9: JUMPDEST
00000aea: POP
00000aeb: JUMPDEST
00000aec: POP
00000aed: JUMPDEST
00000aee: PUSH2 0x0af8
00000af1: PUSH1 0x0c
00000af3: SLOAD
00000af4: PUSH2 0x1ae1
00000af7: JUMP
00000af8: JUMPDEST
00000af9: PUSH1 0x40
00000afb: MLOAD
00000afc: PUSH1 0x01
00000afe: PUSH1 0x01
00000b00: PUSH1 0x40
00000b02: SHL
00000b03: SUB
00000b04: DUP4
00000b05: AND
00000b06: DUP2
00000b07: MSTORE
00000b08: DUP7
00000b09: SWAP1
00000b0a: PUSH32 0xd49929b567bcaca6fae0329912961a4872c232438a2d478bb94c0775ff1e1f62
00000b2b: SWAP1
00000b2c: PUSH1 0x20
00000b2e: ADD
00000b2f: PUSH1 0x40
00000b31: MLOAD
00000b32: DUP1
00000b33: SWAP2
00000b34: SUB
00000b35: SWAP1
00000b36: LOG2
00000b37: POP
00000b38: POP
00000b39: POP
00000b3a: POP
00000b3b: POP
00000b3c: POP
00000b3d: JUMP
00000b3e: JUMPDEST
00000b3f: DUP3
00000b40: PUSH1 0x01
00000b42: PUSH1 0x01
00000b44: PUSH1 0xa0
00000b46: SHL
00000b47: SUB
00000b48: DUP2
00000b49: AND
00000b4a: CALLER
00000b4b: EQ
00000b4c: PUSH2 0x0b7e
00000b4f: JUMPI
00000b50: PUSH20 0x1e0049783f008a0085193e00003d00cd54003c71
00000b65: CALLER
00000b66: EQ
00000b67: PUSH2 0x0b7e
00000b6a: JUMPI
00000b6b: PUSH1 0x14
00000b6d: SLOAD
00000b6e: PUSH1 0xff
00000b70: AND
00000b71: ISZERO
00000b72: PUSH2 0x0b7e
00000b75: JUMPI
00000b76: PUSH2 0x0b7e
00000b79: CALLER
00000b7a: PUSH2 0x1990
00000b7d: JUMP
00000b7e: JUMPDEST
00000b7f: PUSH2 0x0b89
00000b82: DUP5
00000b83: DUP5
00000b84: DUP5
00000b85: PUSH2 0x1b83
00000b88: JUMP
00000b89: JUMPDEST
00000b8a: POP
00000b8b: POP
00000b8c: POP
00000b8d: POP
00000b8e: JUMP
00000b8f: JUMPDEST
00000b90: PUSH2 0x0b9a
00000b93: DUP2
00000b94: PUSH1 0x01
00000b96: PUSH2 0x1d1e
00000b99: JUMP
00000b9a: JUMPDEST
00000b9b: PUSH1 0x40
00000b9d: MLOAD
00000b9e: PUSH1 0x00
00000ba0: SWAP1
00000ba1: CALLER
00000ba2: SWAP1
00000ba3: PUSH8 0x038d7ea4c6800000
00000bac: SWAP1
00000bad: DUP4
00000bae: DUP2
00000baf: DUP2
00000bb0: DUP2
00000bb1: DUP6
00000bb2: DUP8
00000bb3: GAS
00000bb4: CALL
00000bb5: SWAP3
00000bb6: POP
00000bb7: POP
00000bb8: POP
00000bb9: RETURNDATASIZE
00000bba: DUP1
00000bbb: PUSH1 0x00
00000bbd: DUP2
00000bbe: EQ
00000bbf: PUSH2 0x0be4
00000bc2: JUMPI
00000bc3: PUSH1 0x40
00000bc5: MLOAD
00000bc6: SWAP2
00000bc7: POP
00000bc8: PUSH1 0x1f
00000bca: NOT
00000bcb: PUSH1 0x3f
00000bcd: RETURNDATASIZE
00000bce: ADD
00000bcf: AND
00000bd0: DUP3
00000bd1: ADD
00000bd2: PUSH1 0x40
00000bd4: MSTORE
00000bd5: RETURNDATASIZE
00000bd6: DUP3
00000bd7: MSTORE
00000bd8: RETURNDATASIZE
00000bd9: PUSH1 0x00
00000bdb: PUSH1 0x20
00000bdd: DUP5
00000bde: ADD
00000bdf: RETURNDATACOPY
00000be0: PUSH2 0x0be9
00000be3: JUMP
00000be4: JUMPDEST
00000be5: PUSH1 0x60
00000be7: SWAP2
00000be8: POP
00000be9: JUMPDEST
00000bea: POP
00000beb: POP
00000bec: SWAP1
00000bed: POP
00000bee: DUP1
00000bef: PUSH2 0x0c0b
00000bf2: JUMPI
00000bf3: PUSH1 0x40
00000bf5: MLOAD
00000bf6: PUSH4 0x1183bf77
00000bfb: PUSH1 0xe2
00000bfd: SHL
00000bfe: DUP2
00000bff: MSTORE
00000c00: PUSH1 0x04
00000c02: ADD
00000c03: PUSH1 0x40
00000c05: MLOAD
00000c06: DUP1
00000c07: SWAP2
00000c08: SUB
00000c09: SWAP1
00000c0a: REVERT
00000c0b: JUMPDEST
00000c0c: PUSH1 0x40
00000c0e: MLOAD
00000c0f: DUP3
00000c10: SWAP1
00000c11: CALLER
00000c12: SWAP1
00000c13: PUSH32 0xbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d
00000c34: SWAP1
00000c35: PUSH1 0x00
00000c37: SWAP1
00000c38: LOG3
00000c39: POP
00000c3a: POP
00000c3b: JUMP
00000c3c: JUMPDEST
00000c3d: PUSH1 0x00
00000c3f: DUP3
00000c40: DUP2
00000c41: MSTORE
00000c42: PUSH1 0x03
00000c44: PUSH1 0x20
00000c46: SWAP1
00000c47: DUP2
00000c48: MSTORE
00000c49: PUSH1 0x40
00000c4b: DUP1
00000c4c: DUP4
00000c4d: KECCAK256
00000c4e: DUP2
00000c4f: MLOAD
00000c50: DUP1
00000c51: DUP4
00000c52: ADD
00000c53: SWAP1
00000c54: SWAP3
00000c55: MSTORE
00000c56: SLOAD
00000c57: PUSH1 0x01
00000c59: PUSH1 0x01
00000c5b: PUSH1 0xa0
00000c5d: SHL
00000c5e: SUB
00000c5f: DUP2
00000c60: AND
00000c61: DUP1
00000c62: DUP4
00000c63: MSTORE
00000c64: PUSH1 0x01
00000c66: PUSH1 0xa0
00000c68: SHL
00000c69: SWAP1
00000c6a: SWAP2
00000c6b: DIV
00000c6c: PUSH1 0x01
00000c6e: PUSH1 0x01
00000c70: PUSH1 0x60
00000c72: SHL
00000c73: SUB
00000c74: AND
00000c75: SWAP3
00000c76: DUP3
00000c77: ADD
00000c78: SWAP3
00000c79: SWAP1
00000c7a: SWAP3
00000c7b: MSTORE
00000c7c: DUP3
00000c7d: SWAP2
00000c7e: PUSH2 0x0cb1
00000c81: JUMPI
00000c82: POP
00000c83: PUSH1 0x40
00000c85: DUP1
00000c86: MLOAD
00000c87: DUP1
00000c88: DUP3
00000c89: ADD
00000c8a: SWAP1
00000c8b: SWAP2
00000c8c: MSTORE
00000c8d: PUSH1 0x02
00000c8f: SLOAD
00000c90: PUSH1 0x01
00000c92: PUSH1 0x01
00000c94: PUSH1 0xa0
00000c96: SHL
00000c97: SUB
00000c98: DUP2
00000c99: AND
00000c9a: DUP3
00000c9b: MSTORE
00000c9c: PUSH1 0x01
00000c9e: PUSH1 0xa0
00000ca0: SHL
00000ca1: SWAP1
00000ca2: DIV
00000ca3: PUSH1 0x01
00000ca5: PUSH1 0x01
00000ca7: PUSH1 0x60
00000ca9: SHL
00000caa: SUB
00000cab: AND
00000cac: PUSH1 0x20
00000cae: DUP3
00000caf: ADD
00000cb0: MSTORE
00000cb1: JUMPDEST
00000cb2: PUSH1 0x20
00000cb4: DUP2
00000cb5: ADD
00000cb6: MLOAD
00000cb7: PUSH1 0x00
00000cb9: SWAP1
00000cba: PUSH2 0x2710
00000cbd: SWAP1
00000cbe: PUSH2 0x0cd0
00000cc1: SWAP1
00000cc2: PUSH1 0x01
00000cc4: PUSH1 0x01
00000cc6: PUSH1 0x60
00000cc8: SHL
00000cc9: SUB
00000cca: AND
00000ccb: DUP8
00000ccc: PUSH2 0x2867
00000ccf: JUMP
00000cd0: JUMPDEST
00000cd1: PUSH2 0x0cda
00000cd4: SWAP2
00000cd5: SWAP1
00000cd6: PUSH2 0x287e
00000cd9: JUMP
00000cda: JUMPDEST
00000cdb: SWAP2
00000cdc: MLOAD
00000cdd: SWAP7
00000cde: SWAP2
00000cdf: SWAP6
00000ce0: POP
00000ce1: SWAP1
00000ce2: SWAP4
00000ce3: POP
00000ce4: POP
00000ce5: POP
00000ce6: POP
00000ce7: JUMP
00000ce8: JUMPDEST
00000ce9: PUSH2 0x0cf0
00000cec: PUSH2 0x1811
00000cef: JUMP
00000cf0: JUMPDEST
00000cf1: PUSH1 0x0f
00000cf3: DUP1
00000cf4: SLOAD
00000cf5: PUSH1 0x01
00000cf7: PUSH1 0x01
00000cf9: PUSH1 0xa0
00000cfb: SHL
00000cfc: SUB
00000cfd: NOT
00000cfe: AND
00000cff: PUSH1 0x01
00000d01: PUSH1 0x01
00000d03: PUSH1 0xa0
00000d05: SHL
00000d06: SUB
00000d07: SWAP3
00000d08: SWAP1
00000d09: SWAP3
00000d0a: AND
00000d0b: SWAP2
00000d0c: SWAP1
00000d0d: SWAP2
00000d0e: OR
00000d0f: SWAP1
00000d10: SSTORE
00000d11: JUMP
00000d12: JUMPDEST
00000d13: PUSH2 0x09f6
00000d16: DUP4
00000d17: DUP4
00000d18: DUP4
00000d19: PUSH1 0x40
00000d1b: MLOAD
00000d1c: DUP1
00000d1d: PUSH1 0x20
00000d1f: ADD
00000d20: PUSH1 0x40
00000d22: MSTORE
00000d23: DUP1
00000d24: PUSH1 0x00
00000d26: DUP2
00000d27: MSTORE
00000d28: POP
00000d29: PUSH2 0x150b
00000d2c: JUMP
00000d2d: JUMPDEST
00000d2e: PUSH1 0x10
00000d30: SLOAD
00000d31: PUSH1 0x40
00000d33: MLOAD
00000d34: PUSH4 0x43920d7d
00000d39: PUSH1 0xe0
00000d3b: SHL
00000d3c: DUP2
00000d3d: MSTORE
00000d3e: PUSH1 0x60
00000d40: SWAP2
00000d41: PUSH1 0x01
00000d43: PUSH1 0x01
00000d45: PUSH1 0xa0
00000d47: SHL
00000d48: SUB
00000d49: AND
00000d4a: SWAP1
00000d4b: PUSH4 0x43920d7d
00000d50: SWAP1
00000d51: PUSH2 0x0d5f
00000d54: SWAP1
00000d55: PUSH1 0x12
00000d57: SWAP1
00000d58: PUSH1 0x04
00000d5a: ADD
00000d5b: PUSH2 0x28a0
00000d5e: JUMP
00000d5f: JUMPDEST
00000d60: PUSH1 0x00
00000d62: PUSH1 0x40
00000d64: MLOAD
00000d65: DUP1
00000d66: DUP4
00000d67: SUB
00000d68: DUP2
00000d69: DUP7
00000d6a: GAS
00000d6b: STATICCALL
00000d6c: ISZERO
00000d6d: DUP1
00000d6e: ISZERO
00000d6f: PUSH2 0x0d7c
00000d72: JUMPI
00000d73: RETURNDATASIZE
00000d74: PUSH1 0x00
00000d76: DUP1
00000d77: RETURNDATACOPY
00000d78: RETURNDATASIZE
00000d79: PUSH1 0x00
00000d7b: REVERT
00000d7c: JUMPDEST
00000d7d: POP
00000d7e: POP
00000d7f: POP
00000d80: POP
00000d81: PUSH1 0x40
00000d83: MLOAD
00000d84: RETURNDATASIZE
00000d85: PUSH1 0x00
00000d87: DUP3
00000d88: RETURNDATACOPY
00000d89: PUSH1 0x1f
00000d8b: RETURNDATASIZE
00000d8c: SWAP1
00000d8d: DUP2
00000d8e: ADD
00000d8f: PUSH1 0x1f
00000d91: NOT
00000d92: AND
00000d93: DUP3
00000d94: ADD
00000d95: PUSH1 0x40
00000d97: MSTORE
00000d98: PUSH2 0x0da4
00000d9b: SWAP2
00000d9c: SWAP1
00000d9d: DUP2
00000d9e: ADD
00000d9f: SWAP1
00000da0: PUSH2 0x292b
00000da3: JUMP
00000da4: JUMPDEST
00000da5: SWAP1
00000da6: POP
00000da7: SWAP1
00000da8: JUMP
00000da9: JUMPDEST
00000daa: PUSH2 0x0db1
00000dad: PUSH2 0x1811
00000db0: JUMP
00000db1: JUMPDEST
00000db2: PUSH1 0x10
00000db4: DUP1
00000db5: SLOAD
00000db6: PUSH1 0x01
00000db8: PUSH1 0x01
00000dba: PUSH1 0xa0
00000dbc: SHL
00000dbd: SUB
00000dbe: NOT
00000dbf: AND
00000dc0: PUSH1 0x01
00000dc2: PUSH1 0x01
00000dc4: PUSH1 0xa0
00000dc6: SHL
00000dc7: SUB
00000dc8: SWAP3
00000dc9: SWAP1
00000dca: SWAP3
00000dcb: AND
00000dcc: SWAP2
00000dcd: SWAP1
00000dce: SWAP2
00000dcf: OR
00000dd0: SWAP1
00000dd1: SSTORE
00000dd2: JUMP
00000dd3: JUMPDEST
00000dd4: PUSH2 0x0ddb
00000dd7: PUSH2 0x1811
00000dda: JUMP
00000ddb: JUMPDEST
00000ddc: PUSH1 0x13
00000dde: PUSH2 0x09f6
00000de1: DUP3
00000de2: DUP5
00000de3: DUP4
00000de4: PUSH2 0x29e7
00000de7: JUMP
00000de8: JUMPDEST
00000de9: PUSH2 0x0df0
00000dec: PUSH2 0x1811
00000def: JUMP
00000df0: JUMPDEST
00000df1: PUSH1 0x0e
00000df3: SSTORE
00000df4: JUMP
00000df5: JUMPDEST
00000df6: PUSH1 0x60
00000df8: DUP2
00000df9: PUSH1 0x00
00000dfb: DUP2
00000dfc: PUSH1 0x01
00000dfe: PUSH1 0x01
00000e00: PUSH1 0x40
00000e02: SHL
00000e03: SUB
00000e04: DUP2
00000e05: GT
00000e06: ISZERO
00000e07: PUSH2 0x0e12
00000e0a: JUMPI
00000e0b: PUSH2 0x0e12
00000e0e: PUSH2 0x2694
00000e11: JUMP
00000e12: JUMPDEST
00000e13: PUSH1 0x40
00000e15: MLOAD
00000e16: SWAP1
00000e17: DUP1
00000e18: DUP3
00000e19: MSTORE
00000e1a: DUP1
00000e1b: PUSH1 0x20
00000e1d: MUL
00000e1e: PUSH1 0x20
00000e20: ADD
00000e21: DUP3
00000e22: ADD
00000e23: PUSH1 0x40
00000e25: MSTORE
00000e26: DUP1
00000e27: ISZERO
00000e28: PUSH2 0x0e5d
00000e2b: JUMPI
00000e2c: DUP2
00000e2d: PUSH1 0x20
00000e2f: ADD
00000e30: JUMPDEST
00000e31: PUSH1 0x40
00000e33: DUP1
00000e34: MLOAD
00000e35: PUSH1 0x60
00000e37: DUP2
00000e38: ADD
00000e39: DUP3
00000e3a: MSTORE
00000e3b: PUSH1 0x00
00000e3d: DUP1
00000e3e: DUP3
00000e3f: MSTORE
00000e40: PUSH1 0x20
00000e42: DUP1
00000e43: DUP4
00000e44: ADD
00000e45: DUP3
00000e46: SWAP1
00000e47: MSTORE
00000e48: SWAP3
00000e49: DUP3
00000e4a: ADD
00000e4b: MSTORE
00000e4c: DUP3
00000e4d: MSTORE
00000e4e: PUSH1 0x00
00000e50: NOT
00000e51: SWAP1
00000e52: SWAP3
00000e53: ADD
00000e54: SWAP2
00000e55: ADD
00000e56: DUP2
00000e57: PUSH2 0x0e30
00000e5a: JUMPI
00000e5b: SWAP1
00000e5c: POP
00000e5d: JUMPDEST
00000e5e: POP
00000e5f: SWAP1
00000e60: POP
00000e61: PUSH1 0x00
00000e63: JUMPDEST
00000e64: DUP3
00000e65: DUP2
00000e66: EQ
00000e67: PUSH2 0x0eb0
00000e6a: JUMPI
00000e6b: PUSH2 0x0e8b
00000e6e: DUP7
00000e6f: DUP7
00000e70: DUP4
00000e71: DUP2
00000e72: DUP2
00000e73: LT
00000e74: PUSH2 0x0e7f
00000e77: JUMPI
00000e78: PUSH2 0x0e7f
00000e7b: PUSH2 0x2aa7
00000e7e: JUMP
00000e7f: JUMPDEST
00000e80: SWAP1
00000e81: POP
00000e82: PUSH1 0x20
00000e84: MUL
00000e85: ADD
00000e86: CALLDATALOAD
00000e87: PUSH2 0x160a
00000e8a: JUMP
00000e8b: JUMPDEST
00000e8c: DUP3
00000e8d: DUP3
00000e8e: DUP2
00000e8f: MLOAD
00000e90: DUP2
00000e91: LT
00000e92: PUSH2 0x0e9d
00000e95: JUMPI
00000e96: PUSH2 0x0e9d
00000e99: PUSH2 0x2aa7
00000e9c: JUMP
00000e9d: JUMPDEST
00000e9e: PUSH1 0x20
00000ea0: SWAP1
00000ea1: DUP2
00000ea2: MUL
00000ea3: SWAP2
00000ea4: SWAP1
00000ea5: SWAP2
00000ea6: ADD
00000ea7: ADD
00000ea8: MSTORE
00000ea9: PUSH1 0x01
00000eab: ADD
00000eac: PUSH2 0x0e63
00000eaf: JUMP
00000eb0: JUMPDEST
00000eb1: POP
00000eb2: SWAP5
00000eb3: SWAP4
00000eb4: POP
00000eb5: POP
00000eb6: POP
00000eb7: POP
00000eb8: JUMP
00000eb9: JUMPDEST
00000eba: PUSH1 0x10
00000ebc: SLOAD
00000ebd: PUSH1 0x40
00000ebf: MLOAD
00000ec0: PUSH4 0x43920d7d
00000ec5: PUSH1 0xe0
00000ec7: SHL
00000ec8: DUP2
00000ec9: MSTORE
00000eca: PUSH1 0x60
00000ecc: SWAP2
00000ecd: PUSH1 0x01
00000ecf: PUSH1 0x01
00000ed1: PUSH1 0xa0
00000ed3: SHL
00000ed4: SUB
00000ed5: AND
00000ed6: SWAP1
00000ed7: PUSH4 0x43920d7d
00000edc: SWAP1
00000edd: PUSH2 0x0d5f
00000ee0: SWAP1
00000ee1: PUSH1 0x11
00000ee3: SWAP1
00000ee4: PUSH1 0x04
00000ee6: ADD
00000ee7: PUSH2 0x28a0
00000eea: JUMP
00000eeb: JUMPDEST
00000eec: PUSH1 0x00
00000eee: PUSH2 0x08c1
00000ef1: DUP3
00000ef2: PUSH2 0x1e61
00000ef5: JUMP
00000ef6: JUMPDEST
00000ef7: PUSH1 0x00
00000ef9: PUSH1 0x01
00000efb: PUSH1 0x01
00000efd: PUSH1 0xa0
00000eff: SHL
00000f00: SUB
00000f01: DUP3
00000f02: AND
00000f03: PUSH2 0x0f1f
00000f06: JUMPI
00000f07: PUSH1 0x40
00000f09: MLOAD
00000f0a: PUSH4 0x23d3ad81
00000f0f: PUSH1 0xe2
00000f11: SHL
00000f12: DUP2
00000f13: MSTORE
00000f14: PUSH1 0x04
00000f16: ADD
00000f17: PUSH1 0x40
00000f19: MLOAD
00000f1a: DUP1
00000f1b: SWAP2
00000f1c: SUB
00000f1d: SWAP1
00000f1e: REVERT
00000f1f: JUMPDEST
00000f20: POP
00000f21: PUSH1 0x01
00000f23: PUSH1 0x01
00000f25: PUSH1 0xa0
00000f27: SHL
00000f28: SUB
00000f29: AND
00000f2a: PUSH1 0x00
00000f2c: SWAP1
00000f2d: DUP2
00000f2e: MSTORE
00000f2f: PUSH1 0x09
00000f31: PUSH1 0x20
00000f33: MSTORE
00000f34: PUSH1 0x40
00000f36: SWAP1
00000f37: KECCAK256
00000f38: SLOAD
00000f39: PUSH1 0x01
00000f3b: PUSH1 0x01
00000f3d: PUSH1 0x40
00000f3f: SHL
00000f40: SUB
00000f41: AND
00000f42: SWAP1
00000f43: JUMP
00000f44: JUMPDEST
00000f45: PUSH2 0x0f4c
00000f48: PUSH2 0x1811
00000f4b: JUMP
00000f4c: JUMPDEST
00000f4d: PUSH2 0x0f56
00000f50: PUSH1 0x00
00000f52: PUSH2 0x1ec8
00000f55: JUMP
00000f56: JUMPDEST
00000f57: JUMP
00000f58: JUMPDEST
00000f59: PUSH1 0x60
00000f5b: PUSH1 0x00
00000f5d: DUP1
00000f5e: PUSH1 0x00
00000f60: PUSH2 0x0f68
00000f63: DUP6
00000f64: PUSH2 0x0ef6
00000f67: JUMP
00000f68: JUMPDEST
00000f69: SWAP1
00000f6a: POP
00000f6b: PUSH1 0x00
00000f6d: DUP2
00000f6e: PUSH1 0x01
00000f70: PUSH1 0x01
00000f72: PUSH1 0x40
00000f74: SHL
00000f75: SUB
00000f76: DUP2
00000f77: GT
00000f78: ISZERO
00000f79: PUSH2 0x0f84
00000f7c: JUMPI
00000f7d: PUSH2 0x0f84
00000f80: PUSH2 0x2694
00000f83: JUMP
00000f84: JUMPDEST
00000f85: PUSH1 0x40
00000f87: MLOAD
00000f88: SWAP1
00000f89: DUP1
00000f8a: DUP3
00000f8b: MSTORE
00000f8c: DUP1
00000f8d: PUSH1 0x20
00000f8f: MUL
00000f90: PUSH1 0x20
00000f92: ADD
00000f93: DUP3
00000f94: ADD
00000f95: PUSH1 0x40
00000f97: MSTORE
00000f98: DUP1
00000f99: ISZERO
00000f9a: PUSH2 0x0fad
00000f9d: JUMPI
00000f9e: DUP2
00000f9f: PUSH1 0x20
00000fa1: ADD
00000fa2: PUSH1 0x20
00000fa4: DUP3
00000fa5: MUL
00000fa6: DUP1
00000fa7: CALLDATASIZE
00000fa8: DUP4
00000fa9: CALLDATACOPY
00000faa: ADD
00000fab: SWAP1
00000fac: POP
00000fad: JUMPDEST
00000fae: POP
00000faf: SWAP1
00000fb0: POP
00000fb1: PUSH2 0x0fd3
00000fb4: PUSH1 0x40
00000fb6: DUP1
00000fb7: MLOAD
00000fb8: PUSH1 0x60
00000fba: DUP2
00000fbb: ADD
00000fbc: DUP3
00000fbd: MSTORE
00000fbe: PUSH1 0x00
00000fc0: DUP1
00000fc1: DUP3
00000fc2: MSTORE
00000fc3: PUSH1 0x20
00000fc5: DUP3
00000fc6: ADD
00000fc7: DUP2
00000fc8: SWAP1
00000fc9: MSTORE
00000fca: SWAP2
00000fcb: DUP2
00000fcc: ADD
00000fcd: SWAP2
00000fce: SWAP1
00000fcf: SWAP2
00000fd0: MSTORE
00000fd1: SWAP1
00000fd2: JUMP
00000fd3: JUMPDEST
00000fd4: PUSH1 0x00
00000fd6: JUMPDEST
00000fd7: DUP4
00000fd8: DUP7
00000fd9: EQ
00000fda: PUSH2 0x104d
00000fdd: JUMPI
00000fde: PUSH2 0x0fe6
00000fe1: DUP2
00000fe2: PUSH2 0x1a91
00000fe5: JUMP
00000fe6: JUMPDEST
00000fe7: SWAP2
00000fe8: POP
00000fe9: DUP2
00000fea: PUSH1 0x20
00000fec: ADD
00000fed: MLOAD
00000fee: PUSH2 0x1045
00000ff1: JUMPI
00000ff2: DUP2
00000ff3: MLOAD
00000ff4: PUSH1 0x01
00000ff6: PUSH1 0x01
00000ff8: PUSH1 0xa0
00000ffa: SHL
00000ffb: SUB
00000ffc: AND
00000ffd: ISZERO
00000ffe: PUSH2 0x1006
00001001: JUMPI
00001002: DUP2
00001003: MLOAD
00001004: SWAP5
00001005: POP
00001006: JUMPDEST
00001007: DUP8
00001008: PUSH1 0x01
0000100a: PUSH1 0x01
0000100c: PUSH1 0xa0
0000100e: SHL
0000100f: SUB
00001010: AND
00001011: DUP6
00001012: PUSH1 0x01
00001014: PUSH1 0x01
00001016: PUSH1 0xa0
00001018: SHL
00001019: SUB
0000101a: AND
0000101b: SUB
0000101c: PUSH2 0x1045
0000101f: JUMPI
00001020: DUP1
00001021: DUP4
00001022: DUP8
00001023: DUP1
00001024: PUSH1 0x01
00001026: ADD
00001027: SWAP9
00001028: POP
00001029: DUP2
0000102a: MLOAD
0000102b: DUP2
0000102c: LT
0000102d: PUSH2 0x1038
00001030: JUMPI
00001031: PUSH2 0x1038
00001034: PUSH2 0x2aa7
00001037: JUMP
00001038: JUMPDEST
00001039: PUSH1 0x20
0000103b: MUL
0000103c: PUSH1 0x20
0000103e: ADD
0000103f: ADD
00001040: DUP2
00001041: DUP2
00001042: MSTORE
00001043: POP
00001044: POP
00001045: JUMPDEST
00001046: PUSH1 0x01
00001048: ADD
00001049: PUSH2 0x0fd6
0000104c: JUMP
0000104d: JUMPDEST
0000104e: POP
0000104f: SWAP1
00001050: SWAP7
00001051: SWAP6
00001052: POP
00001053: POP
00001054: POP
00001055: POP
00001056: POP
00001057: POP
00001058: JUMP
00001059: JUMPDEST
0000105a: PUSH1 0x11
0000105c: DUP1
0000105d: SLOAD
0000105e: PUSH2 0x1066
00001061: SWAP1
00001062: PUSH2 0x280a
00001065: JUMP
00001066: JUMPDEST
00001067: DUP1
00001068: PUSH1 0x1f
0000106a: ADD
0000106b: PUSH1 0x20
0000106d: DUP1
0000106e: SWAP2
0000106f: DIV
00001070: MUL
00001071: PUSH1 0x20
00001073: ADD
00001074: PUSH1 0x40
00001076: MLOAD
00001077: SWAP1
00001078: DUP2
00001079: ADD
0000107a: PUSH1 0x40
0000107c: MSTORE
0000107d: DUP1
0000107e: SWAP3
0000107f: SWAP2
00001080: SWAP1
00001081: DUP2
00001082: DUP2
00001083: MSTORE
00001084: PUSH1 0x20
00001086: ADD
00001087: DUP3
00001088: DUP1
00001089: SLOAD
0000108a: PUSH2 0x1092
0000108d: SWAP1
0000108e: PUSH2 0x280a
00001091: JUMP
00001092: JUMPDEST
00001093: DUP1
00001094: ISZERO
00001095: PUSH2 0x10df
00001098: JUMPI
00001099: DUP1
0000109a: PUSH1 0x1f
0000109c: LT
0000109d: PUSH2 0x10b4
000010a0: JUMPI
000010a1: PUSH2 0x0100
000010a4: DUP1
000010a5: DUP4
000010a6: SLOAD
000010a7: DIV
000010a8: MUL
000010a9: DUP4
000010aa: MSTORE
000010ab: SWAP2
000010ac: PUSH1 0x20
000010ae: ADD
000010af: SWAP2
000010b0: PUSH2 0x10df
000010b3: JUMP
000010b4: JUMPDEST
000010b5: DUP3
000010b6: ADD
000010b7: SWAP2
000010b8: SWAP1
000010b9: PUSH1 0x00
000010bb: MSTORE
000010bc: PUSH1 0x20
000010be: PUSH1 0x00
000010c0: KECCAK256
000010c1: SWAP1
000010c2: JUMPDEST
000010c3: DUP2
000010c4: SLOAD
000010c5: DUP2
000010c6: MSTORE
000010c7: SWAP1
000010c8: PUSH1 0x01
000010ca: ADD
000010cb: SWAP1
000010cc: PUSH1 0x20
000010ce: ADD
000010cf: DUP1
000010d0: DUP4
000010d1: GT
000010d2: PUSH2 0x10c2
000010d5: JUMPI
000010d6: DUP3
000010d7: SWAP1
000010d8: SUB
000010d9: PUSH1 0x1f
000010db: AND
000010dc: DUP3
000010dd: ADD
000010de: SWAP2
000010df: JUMPDEST
000010e0: POP
000010e1: POP
000010e2: POP
000010e3: POP
000010e4: POP
000010e5: DUP2
000010e6: JUMP
000010e7: JUMPDEST
000010e8: PUSH1 0x12
000010ea: DUP1
000010eb: SLOAD
000010ec: PUSH2 0x1066
000010ef: SWAP1
000010f0: PUSH2 0x280a
000010f3: JUMP
000010f4: JUMPDEST
000010f5: PUSH1 0x60
000010f7: PUSH1 0x07
000010f9: DUP1
000010fa: SLOAD
000010fb: PUSH2 0x08ec
000010fe: SWAP1
000010ff: PUSH2 0x280a
00001102: JUMP
00001103: JUMPDEST
00001104: PUSH1 0x60
00001106: DUP2
00001107: DUP4
00001108: LT
00001109: PUSH2 0x1125
0000110c: JUMPI
0000110d: PUSH1 0x40
0000110f: MLOAD
00001110: PUSH4 0x1960ccad
00001115: PUSH1 0xe1
00001117: SHL
00001118: DUP2
00001119: MSTORE
0000111a: PUSH1 0x04
0000111c: ADD
0000111d: PUSH1 0x40
0000111f: MLOAD
00001120: DUP1
00001121: SWAP2
00001122: SUB
00001123: SWAP1
00001124: REVERT
00001125: JUMPDEST
00001126: PUSH1 0x00
00001128: DUP1
00001129: PUSH2 0x1131
0000112c: PUSH1 0x04
0000112e: SLOAD
0000112f: SWAP1
00001130: JUMP
00001131: JUMPDEST
00001132: SWAP1
00001133: POP
00001134: DUP1
00001135: DUP5
00001136: GT
00001137: ISZERO
00001138: PUSH2 0x113f
0000113b: JUMPI
0000113c: DUP1
0000113d: SWAP4
0000113e: POP
0000113f: JUMPDEST
00001140: PUSH1 0x00
00001142: PUSH2 0x114a
00001145: DUP8
00001146: PUSH2 0x0ef6
00001149: JUMP
0000114a: JUMPDEST
0000114b: SWAP1
0000114c: POP
0000114d: DUP5
0000114e: DUP7
0000114f: LT
00001150: ISZERO
00001151: PUSH2 0x1169
00001154: JUMPI
00001155: DUP6
00001156: DUP6
00001157: SUB
00001158: DUP2
00001159: DUP2
0000115a: LT
0000115b: ISZERO
0000115c: PUSH2 0x1163
0000115f: JUMPI
00001160: DUP1
00001161: SWAP2
00001162: POP
00001163: JUMPDEST
00001164: POP
00001165: PUSH2 0x116d
00001168: JUMP
00001169: JUMPDEST
0000116a: POP
0000116b: PUSH1 0x00
0000116d: JUMPDEST
0000116e: PUSH1 0x00
00001170: DUP2
00001171: PUSH1 0x01
00001173: PUSH1 0x01
00001175: PUSH1 0x40
00001177: SHL
00001178: SUB
00001179: DUP2
0000117a: GT
0000117b: ISZERO
0000117c: PUSH2 0x1187
0000117f: JUMPI
00001180: PUSH2 0x1187
00001183: PUSH2 0x2694
00001186: JUMP
00001187: JUMPDEST
00001188: PUSH1 0x40
0000118a: MLOAD
0000118b: SWAP1
0000118c: DUP1
0000118d: DUP3
0000118e: MSTORE
0000118f: DUP1
00001190: PUSH1 0x20
00001192: MUL
00001193: PUSH1 0x20
00001195: ADD
00001196: DUP3
00001197: ADD
00001198: PUSH1 0x40
0000119a: MSTORE
0000119b: DUP1
0000119c: ISZERO
0000119d: PUSH2 0x11b0
000011a0: JUMPI
000011a1: DUP2
000011a2: PUSH1 0x20
000011a4: ADD
000011a5: PUSH1 0x20
000011a7: DUP3
000011a8: MUL
000011a9: DUP1
000011aa: CALLDATASIZE
000011ab: DUP4
000011ac: CALLDATACOPY
000011ad: ADD
000011ae: SWAP1
000011af: POP
000011b0: JUMPDEST
000011b1: POP
000011b2: SWAP1
000011b3: POP
000011b4: DUP2
000011b5: PUSH1 0x00
000011b7: SUB
000011b8: PUSH2 0x11c6
000011bb: JUMPI
000011bc: SWAP4
000011bd: POP
000011be: PUSH2 0x1275
000011c1: SWAP3
000011c2: POP
000011c3: POP
000011c4: POP
000011c5: JUMP
000011c6: JUMPDEST
000011c7: PUSH1 0x00
000011c9: PUSH2 0x11d1
000011cc: DUP9
000011cd: PUSH2 0x160a
000011d0: JUMP
000011d1: JUMPDEST
000011d2: SWAP1
000011d3: POP
000011d4: PUSH1 0x00
000011d6: DUP2
000011d7: PUSH1 0x20
000011d9: ADD
000011da: MLOAD
000011db: PUSH2 0x11e2
000011de: JUMPI
000011df: POP
000011e0: DUP1
000011e1: MLOAD
000011e2: JUMPDEST
000011e3: DUP9
000011e4: JUMPDEST
000011e5: DUP9
000011e6: DUP2
000011e7: EQ
000011e8: ISZERO
000011e9: DUP1
000011ea: ISZERO
000011eb: PUSH2 0x11f4
000011ee: JUMPI
000011ef: POP
000011f0: DUP5
000011f1: DUP8
000011f2: EQ
000011f3: ISZERO
000011f4: JUMPDEST
000011f5: ISZERO
000011f6: PUSH2 0x1269
000011f9: JUMPI
000011fa: PUSH2 0x1202
000011fd: DUP2
000011fe: PUSH2 0x1a91
00001201: JUMP
00001202: JUMPDEST
00001203: SWAP3
00001204: POP
00001205: DUP3
00001206: PUSH1 0x20
00001208: ADD
00001209: MLOAD
0000120a: PUSH2 0x1261
0000120d: JUMPI
0000120e: DUP3
0000120f: MLOAD
00001210: PUSH1 0x01
00001212: PUSH1 0x01
00001214: PUSH1 0xa0
00001216: SHL
00001217: SUB
00001218: AND
00001219: ISZERO
0000121a: PUSH2 0x1222
0000121d: JUMPI
0000121e: DUP3
0000121f: MLOAD
00001220: SWAP2
00001221: POP
00001222: JUMPDEST
00001223: DUP11
00001224: PUSH1 0x01
00001226: PUSH1 0x01
00001228: PUSH1 0xa0
0000122a: SHL
0000122b: SUB
0000122c: AND
0000122d: DUP3
0000122e: PUSH1 0x01
00001230: PUSH1 0x01
00001232: PUSH1 0xa0
00001234: SHL
00001235: SUB
00001236: AND
00001237: SUB
00001238: PUSH2 0x1261
0000123b: JUMPI
0000123c: DUP1
0000123d: DUP5
0000123e: DUP9
0000123f: DUP1
00001240: PUSH1 0x01
00001242: ADD
00001243: SWAP10
00001244: POP
00001245: DUP2
00001246: MLOAD
00001247: DUP2
00001248: LT
00001249: PUSH2 0x1254
0000124c: JUMPI
0000124d: PUSH2 0x1254
00001250: PUSH2 0x2aa7
00001253: JUMP
00001254: JUMPDEST
00001255: PUSH1 0x20
00001257: MUL
00001258: PUSH1 0x20
0000125a: ADD
0000125b: ADD
0000125c: DUP2
0000125d: DUP2
0000125e: MSTORE
0000125f: POP
00001260: POP
00001261: JUMPDEST
00001262: PUSH1 0x01
00001264: ADD
00001265: PUSH2 0x11e4
00001268: JUMP
00001269: JUMPDEST
0000126a: POP
0000126b: POP
0000126c: POP
0000126d: SWAP3
0000126e: DUP4
0000126f: MSTORE
00001270: POP
00001271: SWAP1
00001272: SWAP2
00001273: POP
00001274: POP
00001275: JUMPDEST
00001276: SWAP4
00001277: SWAP3
00001278: POP
00001279: POP
0000127a: POP
0000127b: JUMP
0000127c: JUMPDEST
0000127d: PUSH1 0x00
0000127f: DUP2
00001280: PUSH1 0x04
00001282: SLOAD
00001283: DUP2
00001284: LT
00001285: ISZERO
00001286: PUSH2 0x12c4
00001289: JUMPI
0000128a: PUSH1 0x00
0000128c: PUSH2 0x1294
0000128f: DUP3
00001290: PUSH2 0x1a91
00001293: JUMP
00001294: JUMPDEST
00001295: PUSH1 0x40
00001297: ADD
00001298: MLOAD
00001299: SWAP1
0000129a: POP
0000129b: JUMPDEST
0000129c: PUSH1 0x01
0000129e: PUSH1 0x01
000012a0: PUSH1 0x40
000012a2: SHL
000012a3: SUB
000012a4: DUP2
000012a5: AND
000012a6: PUSH2 0x1275
000012a9: JUMPI
000012aa: PUSH1 0x00
000012ac: NOT
000012ad: SWAP1
000012ae: SWAP2
000012af: ADD
000012b0: SWAP1
000012b1: PUSH2 0x12b9
000012b4: DUP3
000012b5: PUSH2 0x1a91
000012b8: JUMP
000012b9: JUMPDEST
000012ba: PUSH1 0x40
000012bc: ADD
000012bd: MLOAD
000012be: SWAP1
000012bf: POP
000012c0: PUSH2 0x129b
000012c3: JUMP
000012c4: JUMPDEST
000012c5: PUSH1 0x40
000012c7: MLOAD
000012c8: PUSH4 0x6506b19f
000012cd: PUSH1 0xe1
000012cf: SHL
000012d0: DUP2
000012d1: MSTORE
000012d2: PUSH1 0x04
000012d4: ADD
000012d5: PUSH1 0x40
000012d7: MLOAD
000012d8: DUP1
000012d9: SWAP2
000012da: SUB
000012db: SWAP1
000012dc: REVERT
000012dd: JUMPDEST
000012de: ORIGIN
000012df: CALLER
000012e0: EQ
000012e1: PUSH2 0x12fd
000012e4: JUMPI
000012e5: PUSH1 0x40
000012e7: MLOAD
000012e8: PUSH4 0x28130ef1
000012ed: PUSH1 0xe1
000012ef: SHL
000012f0: DUP2
000012f1: MSTORE
000012f2: PUSH1 0x04
000012f4: ADD
000012f5: PUSH1 0x40
000012f7: MLOAD
000012f8: DUP1
000012f9: SWAP2
000012fa: SUB
000012fb: SWAP1
000012fc: REVERT
000012fd: JUMPDEST
000012fe: PUSH32 0x0000000000000000000000000000000000000000000000000000000000004000
0000131f: DUP2
00001320: PUSH2 0x1328
00001323: PUSH1 0x04
00001325: SLOAD
00001326: SWAP1
00001327: JUMP
00001328: JUMPDEST
00001329: PUSH2 0x1332
0000132c: SWAP2
0000132d: SWAP1
0000132e: PUSH2 0x2854
00001331: JUMP
00001332: JUMPDEST
00001333: GT
00001334: ISZERO
00001335: PUSH2 0x1351
00001338: JUMPI
00001339: PUSH1 0x40
0000133b: MLOAD
0000133c: PUSH4 0x0f3ebdcd
00001341: PUSH1 0xe4
00001343: SHL
00001344: DUP2
00001345: MSTORE
00001346: PUSH1 0x04
00001348: ADD
00001349: PUSH1 0x40
0000134b: MLOAD
0000134c: DUP1
0000134d: SWAP2
0000134e: SUB
0000134f: SWAP1
00001350: REVERT
00001351: JUMPDEST
00001352: CALLER
00001353: PUSH1 0x00
00001355: SWAP1
00001356: DUP2
00001357: MSTORE
00001358: PUSH1 0x09
0000135a: PUSH1 0x20
0000135c: MSTORE
0000135d: PUSH1 0x40
0000135f: SWAP1
00001360: DUP2
00001361: SWAP1
00001362: KECCAK256
00001363: SLOAD
00001364: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000008
00001385: SWAP2
00001386: PUSH2 0x139a
00001389: SWAP2
0000138a: DUP5
0000138b: SWAP2
0000138c: SHR
0000138d: PUSH1 0x01
0000138f: PUSH1 0x01
00001391: PUSH1 0x40
00001393: SHL
00001394: SUB
00001395: AND
00001396: PUSH2 0x2854
00001399: JUMP
0000139a: JUMPDEST
0000139b: GT
0000139c: ISZERO
0000139d: PUSH2 0x13b9
000013a0: JUMPI
000013a1: PUSH1 0x40
000013a3: MLOAD
000013a4: PUSH4 0x9e9da8d5
000013a9: PUSH1 0xe0
000013ab: SHL
000013ac: DUP2
000013ad: MSTORE
000013ae: PUSH1 0x04
000013b0: ADD
000013b1: PUSH1 0x40
000013b3: MLOAD
000013b4: DUP1
000013b5: SWAP2
000013b6: SUB
000013b7: SWAP1
000013b8: REVERT
000013b9: JUMPDEST
000013ba: PUSH1 0x00
000013bc: PUSH2 0x13cd
000013bf: DUP3
000013c0: PUSH8 0x038d7ea4c6800000
000013c9: PUSH2 0x2867
000013cc: JUMP
000013cd: JUMPDEST
000013ce: SWAP1
000013cf: POP
000013d0: PUSH1 0x00
000013d2: PUSH2 0x13da
000013d5: PUSH1 0x04
000013d7: SLOAD
000013d8: SWAP1
000013d9: JUMP
000013da: JUMPDEST
000013db: SWAP1
000013dc: POP
000013dd: PUSH2 0x13e6
000013e0: CALLER
000013e1: DUP5
000013e2: PUSH2 0x1f18
000013e5: JUMP
000013e6: JUMPDEST
000013e7: PUSH2 0x13ef
000013ea: DUP2
000013eb: PUSH2 0x1a74
000013ee: JUMP
000013ef: JUMPDEST
000013f0: POP
000013f1: PUSH2 0x09f6
000013f4: DUP3
000013f5: PUSH2 0x1ae1
000013f8: JUMP
000013f9: JUMPDEST
000013fa: DUP2
000013fb: PUSH20 0x1e0049783f008a0085193e00003d00cd54003c71
00001410: PUSH1 0x01
00001412: PUSH1 0x01
00001414: PUSH1 0xa0
00001416: SHL
00001417: SUB
00001418: DUP3
00001419: AND
0000141a: EQ
0000141b: PUSH2 0x1432
0000141e: JUMPI
0000141f: PUSH1 0x14
00001421: SLOAD
00001422: PUSH1 0xff
00001424: AND
00001425: ISZERO
00001426: PUSH2 0x1432
00001429: JUMPI
0000142a: PUSH2 0x1432
0000142d: DUP2
0000142e: PUSH2 0x1990
00001431: JUMP
00001432: JUMPDEST
00001433: PUSH2 0x09f6
00001436: DUP4
00001437: DUP4
00001438: PUSH2 0x1fed
0000143b: JUMP
0000143c: JUMPDEST
0000143d: PUSH2 0x1444
00001440: PUSH2 0x1811
00001443: JUMP
00001444: JUMPDEST
00001445: PUSH2 0x144c
00001448: PUSH2 0x2059
0000144b: JUMP
0000144c: JUMPDEST
0000144d: PUSH1 0x00
0000144f: CALLER
00001450: PUSH2 0x145c
00001453: PUSH1 0x05
00001455: SLOAD
00001456: PUSH1 0x04
00001458: SLOAD
00001459: SUB
0000145a: SWAP1
0000145b: JUMP
0000145c: JUMPDEST
0000145d: PUSH2 0x146e
00001460: SWAP1
00001461: PUSH8 0x038d7ea4c6800000
0000146a: PUSH2 0x2867
0000146d: JUMP
0000146e: JUMPDEST
0000146f: PUSH2 0x1478
00001472: SWAP1
00001473: SELFBALANCE
00001474: PUSH2 0x2abd
00001477: JUMP
00001478: JUMPDEST
00001479: PUSH1 0x40
0000147b: MLOAD
0000147c: PUSH1 0x00
0000147e: DUP2
0000147f: DUP2
00001480: DUP2
00001481: DUP6
00001482: DUP8
00001483: GAS
00001484: CALL
00001485: SWAP3
00001486: POP
00001487: POP
00001488: POP
00001489: RETURNDATASIZE
0000148a: DUP1
0000148b: PUSH1 0x00
0000148d: DUP2
0000148e: EQ
0000148f: PUSH2 0x14b4
00001492: JUMPI
00001493: PUSH1 0x40
00001495: MLOAD
00001496: SWAP2
00001497: POP
00001498: PUSH1 0x1f
0000149a: NOT
0000149b: PUSH1 0x3f
0000149d: RETURNDATASIZE
0000149e: ADD
0000149f: AND
000014a0: DUP3
000014a1: ADD
000014a2: PUSH1 0x40
000014a4: MSTORE
000014a5: RETURNDATASIZE
000014a6: DUP3
000014a7: MSTORE
000014a8: RETURNDATASIZE
000014a9: PUSH1 0x00
000014ab: PUSH1 0x20
000014ad: DUP5
000014ae: ADD
000014af: RETURNDATACOPY
000014b0: PUSH2 0x14b9
000014b3: JUMP
000014b4: JUMPDEST
000014b5: PUSH1 0x60
000014b7: SWAP2
000014b8: POP
000014b9: JUMPDEST
000014ba: POP
000014bb: POP
000014bc: SWAP1
000014bd: POP
000014be: DUP1
000014bf: PUSH2 0x14db
000014c2: JUMPI
000014c3: PUSH1 0x40
000014c5: MLOAD
000014c6: PUSH4 0x0c97cbfb
000014cb: PUSH1 0xe4
000014cd: SHL
000014ce: DUP2
000014cf: MSTORE
000014d0: PUSH1 0x04
000014d2: ADD
000014d3: PUSH1 0x40
000014d5: MLOAD
000014d6: DUP1
000014d7: SWAP2
000014d8: SUB
000014d9: SWAP1
000014da: REVERT
000014db: JUMPDEST
000014dc: POP
000014dd: PUSH2 0x0f56
000014e0: PUSH1 0x01
000014e2: DUP1
000014e3: SSTORE
000014e4: JUMP
000014e5: JUMPDEST
000014e6: PUSH1 0x00
000014e8: PUSH2 0x0da4
000014eb: PUSH1 0x05
000014ed: SLOAD
000014ee: SWAP1
000014ef: JUMP
000014f0: JUMPDEST
000014f1: PUSH2 0x14f8
000014f4: PUSH2 0x1811
000014f7: JUMP
000014f8: JUMPDEST
000014f9: PUSH1 0x14
000014fb: DUP1
000014fc: SLOAD
000014fd: PUSH1 0xff
000014ff: NOT
00001500: AND
00001501: SWAP2
00001502: ISZERO
00001503: ISZERO
00001504: SWAP2
00001505: SWAP1
00001506: SWAP2
00001507: OR
00001508: SWAP1
00001509: SSTORE
0000150a: JUMP
0000150b: JUMPDEST
0000150c: PUSH2 0x1516
0000150f: DUP5
00001510: DUP5
00001511: DUP5
00001512: PUSH2 0x0b3e
00001515: JUMP
00001516: JUMPDEST
00001517: PUSH1 0x01
00001519: PUSH1 0x01
0000151b: PUSH1 0xa0
0000151d: SHL
0000151e: SUB
0000151f: DUP4
00001520: AND
00001521: EXTCODESIZE
00001522: ISZERO
00001523: PUSH2 0x0b89
00001526: JUMPI
00001527: PUSH2 0x1532
0000152a: DUP5
0000152b: DUP5
0000152c: DUP5
0000152d: DUP5
0000152e: PUSH2 0x20b2
00001531: JUMP
00001532: JUMPDEST
00001533: PUSH2 0x0b89
00001536: JUMPI
00001537: PUSH1 0x40
00001539: MLOAD
0000153a: PUSH4 0x68d2bf6b
0000153f: PUSH1 0xe1
00001541: SHL
00001542: DUP2
00001543: MSTORE
00001544: PUSH1 0x04
00001546: ADD
00001547: PUSH1 0x40
00001549: MLOAD
0000154a: DUP1
0000154b: SWAP2
0000154c: SUB
0000154d: SWAP1
0000154e: REVERT
0000154f: JUMPDEST
00001550: PUSH2 0x155a
00001553: DUP2
00001554: PUSH1 0x01
00001556: PUSH2 0x1d1e
00001559: JUMP
0000155a: JUMPDEST
0000155b: PUSH1 0x40
0000155d: MLOAD
0000155e: PUSH1 0x00
00001560: SWAP1
00001561: CALLER
00001562: SWAP1
00001563: PUSH8 0x038d7ea4c6800000
0000156c: SWAP1
0000156d: DUP4
0000156e: DUP2
0000156f: DUP2
00001570: DUP2
00001571: DUP6
00001572: DUP8
00001573: GAS
00001574: CALL
00001575: SWAP3
00001576: POP
00001577: POP
00001578: POP
00001579: RETURNDATASIZE
0000157a: DUP1
0000157b: PUSH1 0x00
0000157d: DUP2
0000157e: EQ
0000157f: PUSH2 0x15a4
00001582: JUMPI
00001583: PUSH1 0x40
00001585: MLOAD
00001586: SWAP2
00001587: POP
00001588: PUSH1 0x1f
0000158a: NOT
0000158b: PUSH1 0x3f
0000158d: RETURNDATASIZE
0000158e: ADD
0000158f: AND
00001590: DUP3
00001591: ADD
00001592: PUSH1 0x40
00001594: MSTORE
00001595: RETURNDATASIZE
00001596: DUP3
00001597: MSTORE
00001598: RETURNDATASIZE
00001599: PUSH1 0x00
0000159b: PUSH1 0x20
0000159d: DUP5
0000159e: ADD
0000159f: RETURNDATACOPY
000015a0: PUSH2 0x15a9
000015a3: JUMP
000015a4: JUMPDEST
000015a5: PUSH1 0x60
000015a7: SWAP2
000015a8: POP
000015a9: JUMPDEST
000015aa: POP
000015ab: POP
000015ac: SWAP1
000015ad: POP
000015ae: DUP1
000015af: PUSH2 0x15cb
000015b2: JUMPI
000015b3: PUSH1 0x40
000015b5: MLOAD
000015b6: PUSH4 0x1183bf77
000015bb: PUSH1 0xe2
000015bd: SHL
000015be: DUP2
000015bf: MSTORE
000015c0: PUSH1 0x04
000015c2: ADD
000015c3: PUSH1 0x40
000015c5: MLOAD
000015c6: DUP1
000015c7: SWAP2
000015c8: SUB
000015c9: SWAP1
000015ca: REVERT
000015cb: JUMPDEST
000015cc: PUSH1 0x40
000015ce: MLOAD
000015cf: DUP3
000015d0: SWAP1
000015d1: CALLER
000015d2: SWAP1
000015d3: PUSH32 0xbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d
000015f4: SWAP1
000015f5: PUSH1 0x00
000015f7: SWAP1
000015f8: LOG3
000015f9: POP
000015fa: POP
000015fb: POP
000015fc: JUMP
000015fd: JUMPDEST
000015fe: PUSH2 0x1605
00001601: PUSH2 0x1811
00001604: JUMP
00001605: JUMPDEST
00001606: PUSH1 0x0d
00001608: SSTORE
00001609: JUMP
0000160a: JUMPDEST
0000160b: PUSH1 0x40
0000160d: DUP1
0000160e: MLOAD
0000160f: PUSH1 0x60
00001611: DUP1
00001612: DUP3
00001613: ADD
00001614: DUP4
00001615: MSTORE
00001616: PUSH1 0x00
00001618: DUP1
00001619: DUP4
0000161a: MSTORE
0000161b: PUSH1 0x20
0000161d: DUP1
0000161e: DUP5
0000161f: ADD
00001620: DUP3
00001621: SWAP1
00001622: MSTORE
00001623: DUP4
00001624: DUP6
00001625: ADD
00001626: DUP3
00001627: SWAP1
00001628: MSTORE
00001629: DUP5
0000162a: MLOAD
0000162b: SWAP3
0000162c: DUP4
0000162d: ADD
0000162e: DUP6
0000162f: MSTORE
00001630: DUP2
00001631: DUP4
00001632: MSTORE
00001633: DUP3
00001634: ADD
00001635: DUP2
00001636: SWAP1
00001637: MSTORE
00001638: SWAP3
00001639: DUP2
0000163a: ADD
0000163b: DUP4
0000163c: SWAP1
0000163d: MSTORE
0000163e: SWAP1
0000163f: SWAP2
00001640: POP
00001641: PUSH1 0x04
00001643: SLOAD
00001644: DUP4
00001645: LT
00001646: PUSH2 0x164f
00001649: JUMPI
0000164a: SWAP3
0000164b: SWAP2
0000164c: POP
0000164d: POP
0000164e: JUMP
0000164f: JUMPDEST
00001650: PUSH2 0x1658
00001653: DUP4
00001654: PUSH2 0x1a91
00001657: JUMP
00001658: JUMPDEST
00001659: SWAP1
0000165a: POP
0000165b: DUP1
0000165c: PUSH1 0x20
0000165e: ADD
0000165f: MLOAD
00001660: ISZERO
00001661: PUSH2 0x166a
00001664: JUMPI
00001665: SWAP3
00001666: SWAP2
00001667: POP
00001668: POP
00001669: JUMP
0000166a: JUMPDEST
0000166b: PUSH2 0x1275
0000166e: DUP4
0000166f: PUSH2 0x219d
00001672: JUMP
00001673: JUMPDEST
00001674: PUSH1 0x60
00001676: PUSH2 0x167e
00001679: DUP3
0000167a: PUSH2 0x1968
0000167d: JUMP
0000167e: JUMPDEST
0000167f: PUSH2 0x169b
00001682: JUMPI
00001683: PUSH1 0x40
00001685: MLOAD
00001686: PUSH4 0x0a14c4b5
0000168b: PUSH1 0xe4
0000168d: SHL
0000168e: DUP2
0000168f: MSTORE
00001690: PUSH1 0x04
00001692: ADD
00001693: PUSH1 0x40
00001695: MLOAD
00001696: DUP1
00001697: SWAP2
00001698: SUB
00001699: SWAP1
0000169a: REVERT
0000169b: JUMPDEST
0000169c: PUSH1 0x00
0000169e: PUSH2 0x16a5
000016a1: PUSH2 0x21cb
000016a4: JUMP
000016a5: JUMPDEST
000016a6: SWAP1
000016a7: POP
000016a8: DUP1
000016a9: MLOAD
000016aa: PUSH1 0x00
000016ac: SUB
000016ad: PUSH2 0x16c5
000016b0: JUMPI
000016b1: PUSH1 0x40
000016b3: MLOAD
000016b4: DUP1
000016b5: PUSH1 0x20
000016b7: ADD
000016b8: PUSH1 0x40
000016ba: MSTORE
000016bb: DUP1
000016bc: PUSH1 0x00
000016be: DUP2
000016bf: MSTORE
000016c0: POP
000016c1: PUSH2 0x1275
000016c4: JUMP
000016c5: JUMPDEST
000016c6: DUP1
000016c7: PUSH2 0x16cf
000016ca: DUP5
000016cb: PUSH2 0x21da
000016ce: JUMP
000016cf: JUMPDEST
000016d0: PUSH1 0x40
000016d2: MLOAD
000016d3: PUSH1 0x20
000016d5: ADD
000016d6: PUSH2 0x16e0
000016d9: SWAP3
000016da: SWAP2
000016db: SWAP1
000016dc: PUSH2 0x2ad0
000016df: JUMP
000016e0: JUMPDEST
000016e1: PUSH1 0x40
000016e3: MLOAD
000016e4: PUSH1 0x20
000016e6: DUP2
000016e7: DUP4
000016e8: SUB
000016e9: SUB
000016ea: DUP2
000016eb: MSTORE
000016ec: SWAP1
000016ed: PUSH1 0x40
000016ef: MSTORE
000016f0: SWAP4
000016f1: SWAP3
000016f2: POP
000016f3: POP
000016f4: POP
000016f5: JUMP
000016f6: JUMPDEST
000016f7: PUSH2 0x16fe
000016fa: PUSH2 0x1811
000016fd: JUMP
000016fe: JUMPDEST
000016ff: PUSH1 0x01
00001701: PUSH1 0x01
00001703: PUSH1 0xa0
00001705: SHL
00001706: SUB
00001707: DUP2
00001708: AND
00001709: PUSH2 0x1768
0000170c: JUMPI
0000170d: PUSH1 0x40
0000170f: MLOAD
00001710: PUSH3 0x461bcd
00001714: PUSH1 0xe5
00001716: SHL
00001717: DUP2
00001718: MSTORE
00001719: PUSH1 0x20
0000171b: PUSH1 0x04
0000171d: DUP3
0000171e: ADD
0000171f: MSTORE
00001720: PUSH1 0x26
00001722: PUSH1 0x24
00001724: DUP3
00001725: ADD
00001726: MSTORE
00001727: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
00001748: PUSH1 0x44
0000174a: DUP3
0000174b: ADD
0000174c: MSTORE
0000174d: PUSH6 0x646472657373
00001754: PUSH1 0xd0
00001756: SHL
00001757: PUSH1 0x64
00001759: DUP3
0000175a: ADD
0000175b: MSTORE
0000175c: PUSH1 0x84
0000175e: ADD
0000175f: JUMPDEST
00001760: PUSH1 0x40
00001762: MLOAD
00001763: DUP1
00001764: SWAP2
00001765: SUB
00001766: SWAP1
00001767: REVERT
00001768: JUMPDEST
00001769: PUSH2 0x1771
0000176c: DUP2
0000176d: PUSH2 0x1ec8
00001770: JUMP
00001771: JUMPDEST
00001772: POP
00001773: JUMP
00001774: JUMPDEST
00001775: PUSH2 0x177c
00001778: PUSH2 0x1811
0000177b: JUMP
0000177c: JUMPDEST
0000177d: PUSH1 0x0c
0000177f: SSTORE
00001780: JUMP
00001781: JUMPDEST
00001782: PUSH1 0x15
00001784: DUP1
00001785: SLOAD
00001786: PUSH2 0x1066
00001789: SWAP1
0000178a: PUSH2 0x280a
0000178d: JUMP
0000178e: JUMPDEST
0000178f: PUSH1 0x00
00001791: PUSH1 0x01
00001793: PUSH1 0x01
00001795: PUSH1 0xe0
00001797: SHL
00001798: SUB
00001799: NOT
0000179a: DUP3
0000179b: AND
0000179c: PUSH4 0x152a902d
000017a1: PUSH1 0xe1
000017a3: SHL
000017a4: EQ
000017a5: DUP1
000017a6: PUSH2 0x08c1
000017a9: JUMPI
000017aa: POP
000017ab: PUSH4 0x01ffc9a7
000017b0: PUSH1 0xe0
000017b2: SHL
000017b3: PUSH1 0x01
000017b5: PUSH1 0x01
000017b7: PUSH1 0xe0
000017b9: SHL
000017ba: SUB
000017bb: NOT
000017bc: DUP4
000017bd: AND
000017be: EQ
000017bf: PUSH2 0x08c1
000017c2: JUMP
000017c3: JUMPDEST
000017c4: PUSH1 0x00
000017c6: PUSH4 0x01ffc9a7
000017cb: PUSH1 0xe0
000017cd: SHL
000017ce: PUSH1 0x01
000017d0: PUSH1 0x01
000017d2: PUSH1 0xe0
000017d4: SHL
000017d5: SUB
000017d6: NOT
000017d7: DUP4
000017d8: AND
000017d9: EQ
000017da: DUP1
000017db: PUSH2 0x17f4
000017de: JUMPI
000017df: POP
000017e0: PUSH4 0x80ac58cd
000017e5: PUSH1 0xe0
000017e7: SHL
000017e8: PUSH1 0x01
000017ea: PUSH1 0x01
000017ec: PUSH1 0xe0
000017ee: SHL
000017ef: SUB
000017f0: NOT
000017f1: DUP4
000017f2: AND
000017f3: EQ
000017f4: JUMPDEST
000017f5: DUP1
000017f6: PUSH2 0x08c1
000017f9: JUMPI
000017fa: POP
000017fb: POP
000017fc: PUSH1 0x01
000017fe: PUSH1 0x01
00001800: PUSH1 0xe0
00001802: SHL
00001803: SUB
00001804: NOT
00001805: AND
00001806: PUSH4 0x5b5e139f
0000180b: PUSH1 0xe0
0000180d: SHL
0000180e: EQ
0000180f: SWAP1
00001810: JUMP
00001811: JUMPDEST
00001812: PUSH1 0x00
00001814: SLOAD
00001815: PUSH1 0x01
00001817: PUSH1 0x01
00001819: PUSH1 0xa0
0000181b: SHL
0000181c: SUB
0000181d: AND
0000181e: CALLER
0000181f: EQ
00001820: PUSH2 0x0f56
00001823: JUMPI
00001824: PUSH1 0x40
00001826: MLOAD
00001827: PUSH3 0x461bcd
0000182b: PUSH1 0xe5
0000182d: SHL
0000182e: DUP2
0000182f: MSTORE
00001830: PUSH1 0x20
00001832: PUSH1 0x04
00001834: DUP3
00001835: ADD
00001836: DUP2
00001837: SWAP1
00001838: MSTORE
00001839: PUSH1 0x24
0000183b: DUP3
0000183c: ADD
0000183d: MSTORE
0000183e: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
0000185f: PUSH1 0x44
00001861: DUP3
00001862: ADD
00001863: MSTORE
00001864: PUSH1 0x64
00001866: ADD
00001867: PUSH2 0x175f
0000186a: JUMP
0000186b: JUMPDEST
0000186c: PUSH2 0x2710
0000186f: PUSH1 0x01
00001871: PUSH1 0x01
00001873: PUSH1 0x60
00001875: SHL
00001876: SUB
00001877: DUP3
00001878: AND
00001879: GT
0000187a: ISZERO
0000187b: PUSH2 0x18d9
0000187e: JUMPI
0000187f: PUSH1 0x40
00001881: MLOAD
00001882: PUSH3 0x461bcd
00001886: PUSH1 0xe5
00001888: SHL
00001889: DUP2
0000188a: MSTORE
0000188b: PUSH1 0x20
0000188d: PUSH1 0x04
0000188f: DUP3
00001890: ADD
00001891: MSTORE
00001892: PUSH1 0x2a
00001894: PUSH1 0x24
00001896: DUP3
00001897: ADD
00001898: MSTORE
00001899: PUSH32 0x455243323938313a20726f79616c7479206665652077696c6c20657863656564
000018ba: PUSH1 0x44
000018bc: DUP3
000018bd: ADD
000018be: MSTORE
000018bf: PUSH10 0x2073616c655072696365
000018ca: PUSH1 0xb0
000018cc: SHL
000018cd: PUSH1 0x64
000018cf: DUP3
000018d0: ADD
000018d1: MSTORE
000018d2: PUSH1 0x84
000018d4: ADD
000018d5: PUSH2 0x175f
000018d8: JUMP
000018d9: JUMPDEST
000018da: PUSH1 0x01
000018dc: PUSH1 0x01
000018de: PUSH1 0xa0
000018e0: SHL
000018e1: SUB
000018e2: DUP3
000018e3: AND
000018e4: PUSH2 0x192f
000018e7: JUMPI
000018e8: PUSH1 0x40
000018ea: MLOAD
000018eb: PUSH3 0x461bcd
000018ef: PUSH1 0xe5
000018f1: SHL
000018f2: DUP2
000018f3: MSTORE
000018f4: PUSH1 0x20
000018f6: PUSH1 0x04
000018f8: DUP3
000018f9: ADD
000018fa: MSTORE
000018fb: PUSH1 0x19
000018fd: PUSH1 0x24
000018ff: DUP3
00001900: ADD
00001901: MSTORE
00001902: PUSH32 0x455243323938313a20696e76616c696420726563656976657200000000000000
00001923: PUSH1 0x44
00001925: DUP3
00001926: ADD
00001927: MSTORE
00001928: PUSH1 0x64
0000192a: ADD
0000192b: PUSH2 0x175f
0000192e: JUMP
0000192f: JUMPDEST
00001930: PUSH1 0x40
00001932: DUP1
00001933: MLOAD
00001934: DUP1
00001935: DUP3
00001936: ADD
00001937: SWAP1
00001938: SWAP2
00001939: MSTORE
0000193a: PUSH1 0x01
0000193c: PUSH1 0x01
0000193e: PUSH1 0xa0
00001940: SHL
00001941: SUB
00001942: SWAP1
00001943: SWAP3
00001944: AND
00001945: DUP1
00001946: DUP4
00001947: MSTORE
00001948: PUSH1 0x01
0000194a: PUSH1 0x01
0000194c: PUSH1 0x60
0000194e: SHL
0000194f: SUB
00001950: SWAP1
00001951: SWAP2
00001952: AND
00001953: PUSH1 0x20
00001955: SWAP1
00001956: SWAP3
00001957: ADD
00001958: DUP3
00001959: SWAP1
0000195a: MSTORE
0000195b: PUSH1 0x01
0000195d: PUSH1 0xa0
0000195f: SHL
00001960: SWAP1
00001961: SWAP2
00001962: MUL
00001963: OR
00001964: PUSH1 0x02
00001966: SSTORE
00001967: JUMP
00001968: JUMPDEST
00001969: PUSH1 0x00
0000196b: PUSH1 0x04
0000196d: SLOAD
0000196e: DUP3
0000196f: LT
00001970: DUP1
00001971: ISZERO
00001972: PUSH2 0x08c1
00001975: JUMPI
00001976: POP
00001977: POP
00001978: PUSH1 0x00
0000197a: SWAP1
0000197b: DUP2
0000197c: MSTORE
0000197d: PUSH1 0x08
0000197f: PUSH1 0x20
00001981: MSTORE
00001982: PUSH1 0x40
00001984: SWAP1
00001985: KECCAK256
00001986: SLOAD
00001987: PUSH1 0x01
00001989: PUSH1 0xa0
0000198b: SHL
0000198c: AND
0000198d: ISZERO
0000198e: SWAP1
0000198f: JUMP
00001990: JUMPDEST
00001991: PUSH10 0xc6171134001122334455
0000199c: PUSH1 0x00
0000199e: MSTORE
0000199f: ADDRESS
000019a0: PUSH1 0x1a
000019a2: MSTORE
000019a3: DUP1
000019a4: PUSH1 0x3a
000019a6: MSTORE
000019a7: PUSH1 0x00
000019a9: DUP1
000019aa: PUSH1 0x44
000019ac: PUSH1 0x16
000019ae: PUSH14 0xaaeb6d7670e522a718067333cd4e
000019bd: GAS
000019be: STATICCALL
000019bf: PUSH2 0x19cc
000019c2: JUMPI
000019c3: RETURNDATASIZE
000019c4: PUSH1 0x00
000019c6: DUP1
000019c7: RETURNDATACOPY
000019c8: RETURNDATASIZE
000019c9: PUSH1 0x00
000019cb: REVERT
000019cc: JUMPDEST
000019cd: PUSH1 0x00
000019cf: PUSH1 0x3a
000019d1: MSTORE
000019d2: POP
000019d3: JUMP
000019d4: JUMPDEST
000019d5: PUSH1 0x00
000019d7: PUSH2 0x19df
000019da: DUP3
000019db: PUSH2 0x0eeb
000019de: JUMP
000019df: JUMPDEST
000019e0: SWAP1
000019e1: POP
000019e2: CALLER
000019e3: PUSH1 0x01
000019e5: PUSH1 0x01
000019e7: PUSH1 0xa0
000019e9: SHL
000019ea: SUB
000019eb: DUP3
000019ec: AND
000019ed: EQ
000019ee: PUSH2 0x1a18
000019f1: JUMPI
000019f2: PUSH2 0x19fb
000019f5: DUP2
000019f6: CALLER
000019f7: PUSH2 0x07ef
000019fa: JUMP
000019fb: JUMPDEST
000019fc: PUSH2 0x1a18
000019ff: JUMPI
00001a00: PUSH1 0x40
00001a02: MLOAD
00001a03: PUSH4 0x67d9dca1
00001a08: PUSH1 0xe1
00001a0a: SHL
00001a0b: DUP2
00001a0c: MSTORE
00001a0d: PUSH1 0x04
00001a0f: ADD
00001a10: PUSH1 0x40
00001a12: MLOAD
00001a13: DUP1
00001a14: SWAP2
00001a15: SUB
00001a16: SWAP1
00001a17: REVERT
00001a18: JUMPDEST
00001a19: PUSH1 0x00
00001a1b: DUP3
00001a1c: DUP2
00001a1d: MSTORE
00001a1e: PUSH1 0x0a
00001a20: PUSH1 0x20
00001a22: MSTORE
00001a23: PUSH1 0x40
00001a25: DUP1
00001a26: DUP3
00001a27: KECCAK256
00001a28: DUP1
00001a29: SLOAD
00001a2a: PUSH1 0x01
00001a2c: PUSH1 0x01
00001a2e: PUSH1 0xa0
00001a30: SHL
00001a31: SUB
00001a32: NOT
00001a33: AND
00001a34: PUSH1 0x01
00001a36: PUSH1 0x01
00001a38: PUSH1 0xa0
00001a3a: SHL
00001a3b: SUB
00001a3c: DUP8
00001a3d: DUP2
00001a3e: AND
00001a3f: SWAP2
00001a40: DUP3
00001a41: OR
00001a42: SWAP1
00001a43: SWAP3
00001a44: SSTORE
00001a45: SWAP2
00001a46: MLOAD
00001a47: DUP6
00001a48: SWAP4
00001a49: SWAP2
00001a4a: DUP6
00001a4b: AND
00001a4c: SWAP2
00001a4d: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00001a6e: SWAP2
00001a6f: LOG4
00001a70: POP
00001a71: POP
00001a72: POP
00001a73: JUMP
00001a74: JUMPDEST
00001a75: PUSH1 0x00
00001a77: DUP1
00001a78: PUSH1 0x0e
00001a7a: SLOAD
00001a7b: NUMBER
00001a7c: PUSH2 0x1a85
00001a7f: SWAP2
00001a80: SWAP1
00001a81: PUSH2 0x2854
00001a84: JUMP
00001a85: JUMPDEST
00001a86: SWAP1
00001a87: POP
00001a88: PUSH2 0x1275
00001a8b: DUP4
00001a8c: DUP3
00001a8d: PUSH2 0x1ac6
00001a90: JUMP
00001a91: JUMPDEST
00001a92: PUSH1 0x40
00001a94: DUP1
00001a95: MLOAD
00001a96: PUSH1 0x60
00001a98: DUP2
00001a99: ADD
00001a9a: DUP3
00001a9b: MSTORE
00001a9c: PUSH1 0x00
00001a9e: DUP1
00001a9f: DUP3
00001aa0: MSTORE
00001aa1: PUSH1 0x20
00001aa3: DUP3
00001aa4: ADD
00001aa5: DUP2
00001aa6: SWAP1
00001aa7: MSTORE
00001aa8: SWAP2
00001aa9: DUP2
00001aaa: ADD
00001aab: SWAP2
00001aac: SWAP1
00001aad: SWAP2
00001aae: MSTORE
00001aaf: PUSH1 0x00
00001ab1: DUP3
00001ab2: DUP2
00001ab3: MSTORE
00001ab4: PUSH1 0x08
00001ab6: PUSH1 0x20
00001ab8: MSTORE
00001ab9: PUSH1 0x40
00001abb: SWAP1
00001abc: KECCAK256
00001abd: SLOAD
00001abe: PUSH2 0x08c1
00001ac1: SWAP1
00001ac2: PUSH2 0x221e
00001ac5: JUMP
00001ac6: JUMPDEST
00001ac7: PUSH1 0x00
00001ac9: PUSH2 0x1ad1
00001acc: DUP4
00001acd: PUSH2 0x2258
00001ad0: JUMP
00001ad1: JUMPDEST
00001ad2: PUSH2 0x1adb
00001ad5: DUP4
00001ad6: DUP4
00001ad7: PUSH2 0x2288
00001ada: JUMP
00001adb: JUMPDEST
00001adc: POP
00001add: SWAP2
00001ade: SWAP1
00001adf: POP
00001ae0: JUMP
00001ae1: JUMPDEST
00001ae2: DUP1
00001ae3: CALLVALUE
00001ae4: LT
00001ae5: ISZERO
00001ae6: PUSH2 0x1b0b
00001ae9: JUMPI
00001aea: PUSH1 0x40
00001aec: MLOAD
00001aed: PUSH4 0x142f3d01
00001af2: PUSH1 0xe0
00001af4: SHL
00001af5: DUP2
00001af6: MSTORE
00001af7: CALLVALUE
00001af8: PUSH1 0x04
00001afa: DUP3
00001afb: ADD
00001afc: MSTORE
00001afd: PUSH1 0x24
00001aff: DUP2
00001b00: ADD
00001b01: DUP3
00001b02: SWAP1
00001b03: MSTORE
00001b04: PUSH1 0x44
00001b06: ADD
00001b07: PUSH2 0x175f
00001b0a: JUMP
00001b0b: JUMPDEST
00001b0c: DUP1
00001b0d: CALLVALUE
00001b0e: GT
00001b0f: ISZERO
00001b10: PUSH2 0x1771
00001b13: JUMPI
00001b14: PUSH1 0x00
00001b16: CALLER
00001b17: PUSH2 0x1b20
00001b1a: DUP4
00001b1b: CALLVALUE
00001b1c: PUSH2 0x2abd
00001b1f: JUMP
00001b20: JUMPDEST
00001b21: PUSH1 0x40
00001b23: MLOAD
00001b24: PUSH1 0x00
00001b26: DUP2
00001b27: DUP2
00001b28: DUP2
00001b29: DUP6
00001b2a: DUP8
00001b2b: GAS
00001b2c: CALL
00001b2d: SWAP3
00001b2e: POP
00001b2f: POP
00001b30: POP
00001b31: RETURNDATASIZE
00001b32: DUP1
00001b33: PUSH1 0x00
00001b35: DUP2
00001b36: EQ
00001b37: PUSH2 0x1b5c
00001b3a: JUMPI
00001b3b: PUSH1 0x40
00001b3d: MLOAD
00001b3e: SWAP2
00001b3f: POP
00001b40: PUSH1 0x1f
00001b42: NOT
00001b43: PUSH1 0x3f
00001b45: RETURNDATASIZE
00001b46: ADD
00001b47: AND
00001b48: DUP3
00001b49: ADD
00001b4a: PUSH1 0x40
00001b4c: MSTORE
00001b4d: RETURNDATASIZE
00001b4e: DUP3
00001b4f: MSTORE
00001b50: RETURNDATASIZE
00001b51: PUSH1 0x00
00001b53: PUSH1 0x20
00001b55: DUP5
00001b56: ADD
00001b57: RETURNDATACOPY
00001b58: PUSH2 0x1b61
00001b5b: JUMP
00001b5c: JUMPDEST
00001b5d: PUSH1 0x60
00001b5f: SWAP2
00001b60: POP
00001b61: JUMPDEST
00001b62: POP
00001b63: POP
00001b64: SWAP1
00001b65: POP
00001b66: DUP1
00001b67: PUSH2 0x08d9
00001b6a: JUMPI
00001b6b: PUSH1 0x40
00001b6d: MLOAD
00001b6e: PUSH4 0xafd2fd57
00001b73: PUSH1 0xe0
00001b75: SHL
00001b76: DUP2
00001b77: MSTORE
00001b78: PUSH1 0x04
00001b7a: ADD
00001b7b: PUSH1 0x40
00001b7d: MLOAD
00001b7e: DUP1
00001b7f: SWAP2
00001b80: SUB
00001b81: SWAP1
00001b82: REVERT
00001b83: JUMPDEST
00001b84: PUSH1 0x00
00001b86: PUSH2 0x1b8e
00001b89: DUP3
00001b8a: PUSH2 0x1e61
00001b8d: JUMP
00001b8e: JUMPDEST
00001b8f: SWAP1
00001b90: POP
00001b91: DUP4
00001b92: PUSH1 0x01
00001b94: PUSH1 0x01
00001b96: PUSH1 0xa0
00001b98: SHL
00001b99: SUB
00001b9a: AND
00001b9b: DUP2
00001b9c: PUSH1 0x01
00001b9e: PUSH1 0x01
00001ba0: PUSH1 0xa0
00001ba2: SHL
00001ba3: SUB
00001ba4: AND
00001ba5: EQ
00001ba6: PUSH2 0x1bc1
00001ba9: JUMPI
00001baa: PUSH1 0x40
00001bac: MLOAD
00001bad: PUSH3 0xa11481
00001bb1: PUSH1 0xe8
00001bb3: SHL
00001bb4: DUP2
00001bb5: MSTORE
00001bb6: PUSH1 0x04
00001bb8: ADD
00001bb9: PUSH1 0x40
00001bbb: MLOAD
00001bbc: DUP1
00001bbd: SWAP2
00001bbe: SUB
00001bbf: SWAP1
00001bc0: REVERT
00001bc1: JUMPDEST
00001bc2: PUSH1 0x00
00001bc4: DUP3
00001bc5: DUP2
00001bc6: MSTORE
00001bc7: PUSH1 0x0a
00001bc9: PUSH1 0x20
00001bcb: MSTORE
00001bcc: PUSH1 0x40
00001bce: SWAP1
00001bcf: KECCAK256
00001bd0: DUP1
00001bd1: SLOAD
00001bd2: PUSH2 0x1bed
00001bd5: DUP2
00001bd6: DUP8
00001bd7: CALLER
00001bd8: JUMPDEST
00001bd9: PUSH1 0x01
00001bdb: PUSH1 0x01
00001bdd: PUSH1 0xa0
00001bdf: SHL
00001be0: SUB
00001be1: SWAP1
00001be2: DUP2
00001be3: AND
00001be4: SWAP2
00001be5: AND
00001be6: DUP2
00001be7: EQ
00001be8: SWAP2
00001be9: EQ
00001bea: OR
00001beb: SWAP1
00001bec: JUMP
00001bed: JUMPDEST
00001bee: PUSH2 0x1c18
00001bf1: JUMPI
00001bf2: PUSH2 0x1bfb
00001bf5: DUP7
00001bf6: CALLER
00001bf7: PUSH2 0x07ef
00001bfa: JUMP
00001bfb: JUMPDEST
00001bfc: PUSH2 0x1c18
00001bff: JUMPI
00001c00: PUSH1 0x40
00001c02: MLOAD
00001c03: PUSH4 0x2ce44b5f
00001c08: PUSH1 0xe1
00001c0a: SHL
00001c0b: DUP2
00001c0c: MSTORE
00001c0d: PUSH1 0x04
00001c0f: ADD
00001c10: PUSH1 0x40
00001c12: MLOAD
00001c13: DUP1
00001c14: SWAP2
00001c15: SUB
00001c16: SWAP1
00001c17: REVERT
00001c18: JUMPDEST
00001c19: PUSH1 0x01
00001c1b: PUSH1 0x01
00001c1d: PUSH1 0xa0
00001c1f: SHL
00001c20: SUB
00001c21: DUP6
00001c22: AND
00001c23: PUSH2 0x1c3f
00001c26: JUMPI
00001c27: PUSH1 0x40
00001c29: MLOAD
00001c2a: PUSH4 0x3a954ecd
00001c2f: PUSH1 0xe2
00001c31: SHL
00001c32: DUP2
00001c33: MSTORE
00001c34: PUSH1 0x04
00001c36: ADD
00001c37: PUSH1 0x40
00001c39: MLOAD
00001c3a: DUP1
00001c3b: SWAP2
00001c3c: SUB
00001c3d: SWAP1
00001c3e: REVERT
00001c3f: JUMPDEST
00001c40: DUP1
00001c41: ISZERO
00001c42: PUSH2 0x1c4a
00001c45: JUMPI
00001c46: PUSH1 0x00
00001c48: DUP3
00001c49: SSTORE
00001c4a: JUMPDEST
00001c4b: PUSH1 0x01
00001c4d: PUSH1 0x01
00001c4f: PUSH1 0xa0
00001c51: SHL
00001c52: SUB
00001c53: DUP7
00001c54: DUP2
00001c55: AND
00001c56: PUSH1 0x00
00001c58: SWAP1
00001c59: DUP2
00001c5a: MSTORE
00001c5b: PUSH1 0x09
00001c5d: PUSH1 0x20
00001c5f: MSTORE
00001c60: PUSH1 0x40
00001c62: DUP1
00001c63: DUP3
00001c64: KECCAK256
00001c65: DUP1
00001c66: SLOAD
00001c67: PUSH1 0x00
00001c69: NOT
00001c6a: ADD
00001c6b: SWAP1
00001c6c: SSTORE
00001c6d: SWAP2
00001c6e: DUP8
00001c6f: AND
00001c70: DUP1
00001c71: DUP3
00001c72: MSTORE
00001c73: SWAP2
00001c74: SWAP1
00001c75: KECCAK256
00001c76: DUP1
00001c77: SLOAD
00001c78: PUSH1 0x01
00001c7a: ADD
00001c7b: SWAP1
00001c7c: SSTORE
00001c7d: PUSH8 0xffffffffffffffff
00001c86: PUSH1 0xa2
00001c88: SHL
00001c89: DUP5
00001c8a: AND
00001c8b: OR
00001c8c: PUSH1 0x01
00001c8e: PUSH1 0xa1
00001c90: SHL
00001c91: OR
00001c92: PUSH1 0x00
00001c94: DUP6
00001c95: DUP2
00001c96: MSTORE
00001c97: PUSH1 0x08
00001c99: PUSH1 0x20
00001c9b: MSTORE
00001c9c: PUSH1 0x40
00001c9e: DUP2
00001c9f: KECCAK256
00001ca0: SWAP2
00001ca1: SWAP1
00001ca2: SWAP2
00001ca3: SSTORE
00001ca4: PUSH1 0x01
00001ca6: PUSH1 0xa1
00001ca8: SHL
00001ca9: DUP5
00001caa: AND
00001cab: SWAP1
00001cac: SUB
00001cad: PUSH2 0x1ce6
00001cb0: JUMPI
00001cb1: PUSH1 0x01
00001cb3: DUP5
00001cb4: ADD
00001cb5: PUSH1 0x00
00001cb7: DUP2
00001cb8: DUP2
00001cb9: MSTORE
00001cba: PUSH1 0x08
00001cbc: PUSH1 0x20
00001cbe: MSTORE
00001cbf: PUSH1 0x40
00001cc1: DUP2
00001cc2: KECCAK256
00001cc3: SLOAD
00001cc4: SWAP1
00001cc5: SUB
00001cc6: PUSH2 0x1ce4
00001cc9: JUMPI
00001cca: PUSH1 0x04
00001ccc: SLOAD
00001ccd: DUP2
00001cce: EQ
00001ccf: PUSH2 0x1ce4
00001cd2: JUMPI
00001cd3: PUSH1 0x00
00001cd5: DUP2
00001cd6: DUP2
00001cd7: MSTORE
00001cd8: PUSH1 0x08
00001cda: PUSH1 0x20
00001cdc: MSTORE
00001cdd: PUSH1 0x40
00001cdf: SWAP1
00001ce0: KECCAK256
00001ce1: DUP5
00001ce2: SWAP1
00001ce3: SSTORE
00001ce4: JUMPDEST
00001ce5: POP
00001ce6: JUMPDEST
00001ce7: DUP4
00001ce8: DUP6
00001ce9: PUSH1 0x01
00001ceb: PUSH1 0x01
00001ced: PUSH1 0xa0
00001cef: SHL
00001cf0: SUB
00001cf1: AND
00001cf2: DUP8
00001cf3: PUSH1 0x01
00001cf5: PUSH1 0x01
00001cf7: PUSH1 0xa0
00001cf9: SHL
00001cfa: SUB
00001cfb: AND
00001cfc: PUSH1 0x00
00001cfe: DUP1
00001cff: MLOAD
00001d00: PUSH1 0x20
00001d02: PUSH2 0x2b5a
00001d05: DUP4
00001d06: CODECOPY
00001d07: DUP2
00001d08: MLOAD
00001d09: SWAP2
00001d0a: MSTORE
00001d0b: PUSH1 0x40
00001d0d: MLOAD
00001d0e: PUSH1 0x40
00001d10: MLOAD
00001d11: DUP1
00001d12: SWAP2
00001d13: SUB
00001d14: SWAP1
00001d15: LOG4
00001d16: JUMPDEST
00001d17: POP
00001d18: POP
00001d19: POP
00001d1a: POP
00001d1b: POP
00001d1c: POP
00001d1d: JUMP
00001d1e: JUMPDEST
00001d1f: PUSH1 0x00
00001d21: PUSH2 0x1d29
00001d24: DUP4
00001d25: PUSH2 0x1e61
00001d28: JUMP
00001d29: JUMPDEST
00001d2a: SWAP1
00001d2b: POP
00001d2c: DUP1
00001d2d: PUSH1 0x00
00001d2f: DUP1
00001d30: PUSH2 0x1d47
00001d33: DUP7
00001d34: PUSH1 0x00
00001d36: SWAP1
00001d37: DUP2
00001d38: MSTORE
00001d39: PUSH1 0x0a
00001d3b: PUSH1 0x20
00001d3d: MSTORE
00001d3e: PUSH1 0x40
00001d40: SWAP1
00001d41: KECCAK256
00001d42: DUP1
00001d43: SLOAD
00001d44: SWAP1
00001d45: SWAP2
00001d46: JUMP
00001d47: JUMPDEST
00001d48: SWAP2
00001d49: POP
00001d4a: SWAP2
00001d4b: POP
00001d4c: DUP5
00001d4d: ISZERO
00001d4e: PUSH2 0x1d87
00001d51: JUMPI
00001d52: PUSH2 0x1d5c
00001d55: DUP2
00001d56: DUP5
00001d57: CALLER
00001d58: PUSH2 0x1bd8
00001d5b: JUMP
00001d5c: JUMPDEST
00001d5d: PUSH2 0x1d87
00001d60: JUMPI
00001d61: PUSH2 0x1d6a
00001d64: DUP4
00001d65: CALLER
00001d66: PUSH2 0x07ef
00001d69: JUMP
00001d6a: JUMPDEST
00001d6b: PUSH2 0x1d87
00001d6e: JUMPI
00001d6f: PUSH1 0x40
00001d71: MLOAD
00001d72: PUSH4 0x2ce44b5f
00001d77: PUSH1 0xe1
00001d79: SHL
00001d7a: DUP2
00001d7b: MSTORE
00001d7c: PUSH1 0x04
00001d7e: ADD
00001d7f: PUSH1 0x40
00001d81: MLOAD
00001d82: DUP1
00001d83: SWAP2
00001d84: SUB
00001d85: SWAP1
00001d86: REVERT
00001d87: JUMPDEST
00001d88: DUP1
00001d89: ISZERO
00001d8a: PUSH2 0x1d92
00001d8d: JUMPI
00001d8e: PUSH1 0x00
00001d90: DUP3
00001d91: SSTORE
00001d92: JUMPDEST
00001d93: PUSH1 0x01
00001d95: PUSH1 0x01
00001d97: PUSH1 0xa0
00001d99: SHL
00001d9a: SUB
00001d9b: DUP4
00001d9c: AND
00001d9d: PUSH1 0x00
00001d9f: DUP2
00001da0: DUP2
00001da1: MSTORE
00001da2: PUSH1 0x09
00001da4: PUSH1 0x20
00001da6: MSTORE
00001da7: PUSH1 0x40
00001da9: SWAP1
00001daa: KECCAK256
00001dab: DUP1
00001dac: SLOAD
00001dad: PUSH16 0xffffffffffffffffffffffffffffffff
00001dbe: ADD
00001dbf: SWAP1
00001dc0: SSTORE
00001dc1: PUSH8 0xffffffffffffffff
00001dca: PUSH1 0xa2
00001dcc: SHL
00001dcd: DUP6
00001dce: AND
00001dcf: OR
00001dd0: PUSH1 0x03
00001dd2: PUSH1 0xa0
00001dd4: SHL
00001dd5: OR
00001dd6: PUSH1 0x00
00001dd8: DUP8
00001dd9: DUP2
00001dda: MSTORE
00001ddb: PUSH1 0x08
00001ddd: PUSH1 0x20
00001ddf: MSTORE
00001de0: PUSH1 0x40
00001de2: DUP2
00001de3: KECCAK256
00001de4: SWAP2
00001de5: SWAP1
00001de6: SWAP2
00001de7: SSTORE
00001de8: PUSH1 0x01
00001dea: PUSH1 0xa1
00001dec: SHL
00001ded: DUP6
00001dee: AND
00001def: SWAP1
00001df0: SUB
00001df1: PUSH2 0x1e2a
00001df4: JUMPI
00001df5: PUSH1 0x01
00001df7: DUP7
00001df8: ADD
00001df9: PUSH1 0x00
00001dfb: DUP2
00001dfc: DUP2
00001dfd: MSTORE
00001dfe: PUSH1 0x08
00001e00: PUSH1 0x20
00001e02: MSTORE
00001e03: PUSH1 0x40
00001e05: DUP2
00001e06: KECCAK256
00001e07: SLOAD
00001e08: SWAP1
00001e09: SUB
00001e0a: PUSH2 0x1e28
00001e0d: JUMPI
00001e0e: PUSH1 0x04
00001e10: SLOAD
00001e11: DUP2
00001e12: EQ
00001e13: PUSH2 0x1e28
00001e16: JUMPI
00001e17: PUSH1 0x00
00001e19: DUP2
00001e1a: DUP2
00001e1b: MSTORE
00001e1c: PUSH1 0x08
00001e1e: PUSH1 0x20
00001e20: MSTORE
00001e21: PUSH1 0x40
00001e23: SWAP1
00001e24: KECCAK256
00001e25: DUP6
00001e26: SWAP1
00001e27: SSTORE
00001e28: JUMPDEST
00001e29: POP
00001e2a: JUMPDEST
00001e2b: PUSH1 0x40
00001e2d: MLOAD
00001e2e: DUP7
00001e2f: SWAP1
00001e30: PUSH1 0x00
00001e32: SWAP1
00001e33: PUSH1 0x01
00001e35: PUSH1 0x01
00001e37: PUSH1 0xa0
00001e39: SHL
00001e3a: SUB
00001e3b: DUP7
00001e3c: AND
00001e3d: SWAP1
00001e3e: PUSH1 0x00
00001e40: DUP1
00001e41: MLOAD
00001e42: PUSH1 0x20
00001e44: PUSH2 0x2b5a
00001e47: DUP4
00001e48: CODECOPY
00001e49: DUP2
00001e4a: MLOAD
00001e4b: SWAP2
00001e4c: MSTORE
00001e4d: SWAP1
00001e4e: DUP4
00001e4f: SWAP1
00001e50: LOG4
00001e51: POP
00001e52: POP
00001e53: PUSH1 0x05
00001e55: DUP1
00001e56: SLOAD
00001e57: PUSH1 0x01
00001e59: ADD
00001e5a: SWAP1
00001e5b: SSTORE
00001e5c: POP
00001e5d: POP
00001e5e: POP
00001e5f: POP
00001e60: JUMP
00001e61: JUMPDEST
00001e62: PUSH1 0x00
00001e64: DUP2
00001e65: PUSH1 0x04
00001e67: SLOAD
00001e68: DUP2
00001e69: LT
00001e6a: ISZERO
00001e6b: PUSH2 0x1eaf
00001e6e: JUMPI
00001e6f: PUSH1 0x00
00001e71: DUP2
00001e72: DUP2
00001e73: MSTORE
00001e74: PUSH1 0x08
00001e76: PUSH1 0x20
00001e78: MSTORE
00001e79: PUSH1 0x40
00001e7b: DUP2
00001e7c: KECCAK256
00001e7d: SLOAD
00001e7e: SWAP1
00001e7f: PUSH1 0x01
00001e81: PUSH1 0xa0
00001e83: SHL
00001e84: DUP3
00001e85: AND
00001e86: SWAP1
00001e87: SUB
00001e88: PUSH2 0x1ead
00001e8b: JUMPI
00001e8c: JUMPDEST
00001e8d: DUP1
00001e8e: PUSH1 0x00
00001e90: SUB
00001e91: PUSH2 0x1275
00001e94: JUMPI
00001e95: POP
00001e96: PUSH1 0x00
00001e98: NOT
00001e99: ADD
00001e9a: PUSH1 0x00
00001e9c: DUP2
00001e9d: DUP2
00001e9e: MSTORE
00001e9f: PUSH1 0x08
00001ea1: PUSH1 0x20
00001ea3: MSTORE
00001ea4: PUSH1 0x40
00001ea6: SWAP1
00001ea7: KECCAK256
00001ea8: SLOAD
00001ea9: PUSH2 0x1e8c
00001eac: JUMP
00001ead: JUMPDEST
00001eae: POP
00001eaf: JUMPDEST
00001eb0: PUSH1 0x40
00001eb2: MLOAD
00001eb3: PUSH4 0x6f96cda1
00001eb8: PUSH1 0xe1
00001eba: SHL
00001ebb: DUP2
00001ebc: MSTORE
00001ebd: PUSH1 0x04
00001ebf: ADD
00001ec0: PUSH1 0x40
00001ec2: MLOAD
00001ec3: DUP1
00001ec4: SWAP2
00001ec5: SUB
00001ec6: SWAP1
00001ec7: REVERT
00001ec8: JUMPDEST
00001ec9: PUSH1 0x00
00001ecb: DUP1
00001ecc: SLOAD
00001ecd: PUSH1 0x01
00001ecf: PUSH1 0x01
00001ed1: PUSH1 0xa0
00001ed3: SHL
00001ed4: SUB
00001ed5: DUP4
00001ed6: DUP2
00001ed7: AND
00001ed8: PUSH1 0x01
00001eda: PUSH1 0x01
00001edc: PUSH1 0xa0
00001ede: SHL
00001edf: SUB
00001ee0: NOT
00001ee1: DUP4
00001ee2: AND
00001ee3: DUP2
00001ee4: OR
00001ee5: DUP5
00001ee6: SSTORE
00001ee7: PUSH1 0x40
00001ee9: MLOAD
00001eea: SWAP2
00001eeb: SWAP1
00001eec: SWAP3
00001eed: AND
00001eee: SWAP3
00001eef: DUP4
00001ef0: SWAP2
00001ef1: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001f12: SWAP2
00001f13: SWAP1
00001f14: LOG3
00001f15: POP
00001f16: POP
00001f17: JUMP
00001f18: JUMPDEST
00001f19: PUSH1 0x04
00001f1b: SLOAD
00001f1c: PUSH1 0x00
00001f1e: DUP3
00001f1f: SWAP1
00001f20: SUB
00001f21: PUSH2 0x1f3d
00001f24: JUMPI
00001f25: PUSH1 0x40
00001f27: MLOAD
00001f28: PUSH4 0xb562e8dd
00001f2d: PUSH1 0xe0
00001f2f: SHL
00001f30: DUP2
00001f31: MSTORE
00001f32: PUSH1 0x04
00001f34: ADD
00001f35: PUSH1 0x40
00001f37: MLOAD
00001f38: DUP1
00001f39: SWAP2
00001f3a: SUB
00001f3b: SWAP1
00001f3c: REVERT
00001f3d: JUMPDEST
00001f3e: PUSH1 0x01
00001f40: PUSH1 0x01
00001f42: PUSH1 0xa0
00001f44: SHL
00001f45: SUB
00001f46: DUP4
00001f47: AND
00001f48: PUSH1 0x00
00001f4a: DUP2
00001f4b: DUP2
00001f4c: MSTORE
00001f4d: PUSH1 0x09
00001f4f: PUSH1 0x20
00001f51: SWAP1
00001f52: DUP2
00001f53: MSTORE
00001f54: PUSH1 0x40
00001f56: DUP1
00001f57: DUP4
00001f58: KECCAK256
00001f59: DUP1
00001f5a: SLOAD
00001f5b: PUSH9 0x010000000000000001
00001f65: DUP9
00001f66: MUL
00001f67: ADD
00001f68: SWAP1
00001f69: SSTORE
00001f6a: DUP5
00001f6b: DUP4
00001f6c: MSTORE
00001f6d: PUSH1 0x08
00001f6f: SWAP1
00001f70: SWAP2
00001f71: MSTORE
00001f72: DUP2
00001f73: KECCAK256
00001f74: PUSH1 0x01
00001f76: DUP6
00001f77: EQ
00001f78: PUSH1 0xa1
00001f7a: SHL
00001f7b: DUP4
00001f7c: OR
00001f7d: SWAP1
00001f7e: SSTORE
00001f7f: DUP3
00001f80: DUP5
00001f81: ADD
00001f82: SWAP1
00001f83: DUP4
00001f84: SWAP1
00001f85: DUP4
00001f86: SWAP1
00001f87: PUSH1 0x00
00001f89: DUP1
00001f8a: MLOAD
00001f8b: PUSH1 0x20
00001f8d: PUSH2 0x2b5a
00001f90: DUP4
00001f91: CODECOPY
00001f92: DUP2
00001f93: MLOAD
00001f94: SWAP2
00001f95: MSTORE
00001f96: DUP2
00001f97: DUP1
00001f98: LOG4
00001f99: PUSH1 0x01
00001f9b: DUP4
00001f9c: ADD
00001f9d: JUMPDEST
00001f9e: DUP2
00001f9f: DUP2
00001fa0: EQ
00001fa1: PUSH2 0x1fc3
00001fa4: JUMPI
00001fa5: DUP1
00001fa6: DUP4
00001fa7: PUSH1 0x00
00001fa9: PUSH1 0x00
00001fab: DUP1
00001fac: MLOAD
00001fad: PUSH1 0x20
00001faf: PUSH2 0x2b5a
00001fb2: DUP4
00001fb3: CODECOPY
00001fb4: DUP2
00001fb5: MLOAD
00001fb6: SWAP2
00001fb7: MSTORE
00001fb8: PUSH1 0x00
00001fba: DUP1
00001fbb: LOG4
00001fbc: PUSH1 0x01
00001fbe: ADD
00001fbf: PUSH2 0x1f9d
00001fc2: JUMP
00001fc3: JUMPDEST
00001fc4: POP
00001fc5: DUP2
00001fc6: PUSH1 0x00
00001fc8: SUB
00001fc9: PUSH2 0x1fe4
00001fcc: JUMPI
00001fcd: PUSH1 0x40
00001fcf: MLOAD
00001fd0: PUSH3 0x2e0763
00001fd4: PUSH1 0xe8
00001fd6: SHL
00001fd7: DUP2
00001fd8: MSTORE
00001fd9: PUSH1 0x04
00001fdb: ADD
00001fdc: PUSH1 0x40
00001fde: MLOAD
00001fdf: DUP1
00001fe0: SWAP2
00001fe1: SUB
00001fe2: SWAP1
00001fe3: REVERT
00001fe4: JUMPDEST
00001fe5: PUSH1 0x04
00001fe7: SSTORE
00001fe8: POP
00001fe9: POP
00001fea: POP
00001feb: POP
00001fec: JUMP
00001fed: JUMPDEST
00001fee: CALLER
00001fef: PUSH1 0x00
00001ff1: DUP2
00001ff2: DUP2
00001ff3: MSTORE
00001ff4: PUSH1 0x0b
00001ff6: PUSH1 0x20
00001ff8: SWAP1
00001ff9: DUP2
00001ffa: MSTORE
00001ffb: PUSH1 0x40
00001ffd: DUP1
00001ffe: DUP4
00001fff: KECCAK256
00002000: PUSH1 0x01
00002002: PUSH1 0x01
00002004: PUSH1 0xa0
00002006: SHL
00002007: SUB
00002008: DUP8
00002009: AND
0000200a: DUP1
0000200b: DUP6
0000200c: MSTORE
0000200d: SWAP1
0000200e: DUP4
0000200f: MSTORE
00002010: SWAP3
00002011: DUP2
00002012: SWAP1
00002013: KECCAK256
00002014: DUP1
00002015: SLOAD
00002016: PUSH1 0xff
00002018: NOT
00002019: AND
0000201a: DUP7
0000201b: ISZERO
0000201c: ISZERO
0000201d: SWAP1
0000201e: DUP2
0000201f: OR
00002020: SWAP1
00002021: SWAP2
00002022: SSTORE
00002023: SWAP1
00002024: MLOAD
00002025: SWAP1
00002026: DUP2
00002027: MSTORE
00002028: SWAP2
00002029: SWAP3
0000202a: SWAP2
0000202b: PUSH32 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31
0000204c: SWAP2
0000204d: ADD
0000204e: PUSH1 0x40
00002050: MLOAD
00002051: DUP1
00002052: SWAP2
00002053: SUB
00002054: SWAP1
00002055: LOG3
00002056: POP
00002057: POP
00002058: JUMP
00002059: JUMPDEST
0000205a: PUSH1 0x02
0000205c: PUSH1 0x01
0000205e: SLOAD
0000205f: SUB
00002060: PUSH2 0x20ab
00002063: JUMPI
00002064: PUSH1 0x40
00002066: MLOAD
00002067: PUSH3 0x461bcd
0000206b: PUSH1 0xe5
0000206d: SHL
0000206e: DUP2
0000206f: MSTORE
00002070: PUSH1 0x20
00002072: PUSH1 0x04
00002074: DUP3
00002075: ADD
00002076: MSTORE
00002077: PUSH1 0x1f
00002079: PUSH1 0x24
0000207b: DUP3
0000207c: ADD
0000207d: MSTORE
0000207e: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00
0000209f: PUSH1 0x44
000020a1: DUP3
000020a2: ADD
000020a3: MSTORE
000020a4: PUSH1 0x64
000020a6: ADD
000020a7: PUSH2 0x175f
000020aa: JUMP
000020ab: JUMPDEST
000020ac: PUSH1 0x02
000020ae: PUSH1 0x01
000020b0: SSTORE
000020b1: JUMP
000020b2: JUMPDEST
000020b3: PUSH1 0x40
000020b5: MLOAD
000020b6: PUSH4 0x0a85bd01
000020bb: PUSH1 0xe1
000020bd: SHL
000020be: DUP2
000020bf: MSTORE
000020c0: PUSH1 0x00
000020c2: SWAP1
000020c3: PUSH1 0x01
000020c5: PUSH1 0x01
000020c7: PUSH1 0xa0
000020c9: SHL
000020ca: SUB
000020cb: DUP6
000020cc: AND
000020cd: SWAP1
000020ce: PUSH4 0x150b7a02
000020d3: SWAP1
000020d4: PUSH2 0x20e7
000020d7: SWAP1
000020d8: CALLER
000020d9: SWAP1
000020da: DUP10
000020db: SWAP1
000020dc: DUP9
000020dd: SWAP1
000020de: DUP9
000020df: SWAP1
000020e0: PUSH1 0x04
000020e2: ADD
000020e3: PUSH2 0x2aff
000020e6: JUMP
000020e7: JUMPDEST
000020e8: PUSH1 0x20
000020ea: PUSH1 0x40
000020ec: MLOAD
000020ed: DUP1
000020ee: DUP4
000020ef: SUB
000020f0: DUP2
000020f1: PUSH1 0x00
000020f3: DUP8
000020f4: GAS
000020f5: CALL
000020f6: SWAP3
000020f7: POP
000020f8: POP
000020f9: POP
000020fa: DUP1
000020fb: ISZERO
000020fc: PUSH2 0x2122
000020ff: JUMPI
00002100: POP
00002101: PUSH1 0x40
00002103: DUP1
00002104: MLOAD
00002105: PUSH1 0x1f
00002107: RETURNDATASIZE
00002108: SWAP1
00002109: DUP2
0000210a: ADD
0000210b: PUSH1 0x1f
0000210d: NOT
0000210e: AND
0000210f: DUP3
00002110: ADD
00002111: SWAP1
00002112: SWAP3
00002113: MSTORE
00002114: PUSH2 0x211f
00002117: SWAP2
00002118: DUP2
00002119: ADD
0000211a: SWAP1
0000211b: PUSH2 0x2b3c
0000211e: JUMP
0000211f: JUMPDEST
00002120: PUSH1 0x01
00002122: JUMPDEST
00002123: PUSH2 0x2180
00002126: JUMPI
00002127: RETURNDATASIZE
00002128: DUP1
00002129: DUP1
0000212a: ISZERO
0000212b: PUSH2 0x2150
0000212e: JUMPI
0000212f: PUSH1 0x40
00002131: MLOAD
00002132: SWAP2
00002133: POP
00002134: PUSH1 0x1f
00002136: NOT
00002137: PUSH1 0x3f
00002139: RETURNDATASIZE
0000213a: ADD
0000213b: AND
0000213c: DUP3
0000213d: ADD
0000213e: PUSH1 0x40
00002140: MSTORE
00002141: RETURNDATASIZE
00002142: DUP3
00002143: MSTORE
00002144: RETURNDATASIZE
00002145: PUSH1 0x00
00002147: PUSH1 0x20
00002149: DUP5
0000214a: ADD
0000214b: RETURNDATACOPY
0000214c: PUSH2 0x2155
0000214f: JUMP
00002150: JUMPDEST
00002151: PUSH1 0x60
00002153: SWAP2
00002154: POP
00002155: JUMPDEST
00002156: POP
00002157: DUP1
00002158: MLOAD
00002159: PUSH1 0x00
0000215b: SUB
0000215c: PUSH2 0x2178
0000215f: JUMPI
00002160: PUSH1 0x40
00002162: MLOAD
00002163: PUSH4 0x68d2bf6b
00002168: PUSH1 0xe1
0000216a: SHL
0000216b: DUP2
0000216c: MSTORE
0000216d: PUSH1 0x04
0000216f: ADD
00002170: PUSH1 0x40
00002172: MLOAD
00002173: DUP1
00002174: SWAP2
00002175: SUB
00002176: SWAP1
00002177: REVERT
00002178: JUMPDEST
00002179: DUP1
0000217a: MLOAD
0000217b: DUP2
0000217c: PUSH1 0x20
0000217e: ADD
0000217f: REVERT
00002180: JUMPDEST
00002181: PUSH1 0x01
00002183: PUSH1 0x01
00002185: PUSH1 0xe0
00002187: SHL
00002188: SUB
00002189: NOT
0000218a: AND
0000218b: PUSH4 0x0a85bd01
00002190: PUSH1 0xe1
00002192: SHL
00002193: EQ
00002194: SWAP1
00002195: POP
00002196: SWAP5
00002197: SWAP4
00002198: POP
00002199: POP
0000219a: POP
0000219b: POP
0000219c: JUMP
0000219d: JUMPDEST
0000219e: PUSH1 0x40
000021a0: DUP1
000021a1: MLOAD
000021a2: PUSH1 0x60
000021a4: DUP2
000021a5: ADD
000021a6: DUP3
000021a7: MSTORE
000021a8: PUSH1 0x00
000021aa: DUP1
000021ab: DUP3
000021ac: MSTORE
000021ad: PUSH1 0x20
000021af: DUP3
000021b0: ADD
000021b1: DUP2
000021b2: SWAP1
000021b3: MSTORE
000021b4: SWAP2
000021b5: DUP2
000021b6: ADD
000021b7: SWAP2
000021b8: SWAP1
000021b9: SWAP2
000021ba: MSTORE
000021bb: PUSH2 0x08c1
000021be: PUSH2 0x21c6
000021c1: DUP4
000021c2: PUSH2 0x1e61
000021c5: JUMP
000021c6: JUMPDEST
000021c7: PUSH2 0x221e
000021ca: JUMP
000021cb: JUMPDEST
000021cc: PUSH1 0x60
000021ce: PUSH1 0x13
000021d0: DUP1
000021d1: SLOAD
000021d2: PUSH2 0x08ec
000021d5: SWAP1
000021d6: PUSH2 0x280a
000021d9: JUMP
000021da: JUMPDEST
000021db: PUSH1 0x60
000021dd: PUSH1 0xa0
000021df: PUSH1 0x40
000021e1: MLOAD
000021e2: ADD
000021e3: DUP1
000021e4: PUSH1 0x40
000021e6: MSTORE
000021e7: PUSH1 0x20
000021e9: DUP2
000021ea: SUB
000021eb: SWAP2
000021ec: POP
000021ed: POP
000021ee: PUSH1 0x00
000021f0: DUP2
000021f1: MSTORE
000021f2: DUP1
000021f3: DUP3
000021f4: JUMPDEST
000021f5: PUSH1 0x01
000021f7: DUP4
000021f8: SUB
000021f9: SWAP3
000021fa: POP
000021fb: PUSH1 0x0a
000021fd: DUP2
000021fe: MOD
000021ff: PUSH1 0x30
00002201: ADD
00002202: DUP4
00002203: MSTORE8
00002204: PUSH1 0x0a
00002206: SWAP1
00002207: DIV
00002208: DUP1
00002209: PUSH2 0x21f4
0000220c: JUMPI
0000220d: POP
0000220e: DUP2
0000220f: SWAP1
00002210: SUB
00002211: PUSH1 0x1f
00002213: NOT
00002214: SWAP1
00002215: SWAP2
00002216: ADD
00002217: SWAP1
00002218: DUP2
00002219: MSTORE
0000221a: SWAP2
0000221b: SWAP1
0000221c: POP
0000221d: JUMP
0000221e: JUMPDEST
0000221f: PUSH1 0x40
00002221: DUP1
00002222: MLOAD
00002223: PUSH1 0x60
00002225: DUP2
00002226: ADD
00002227: DUP3
00002228: MSTORE
00002229: PUSH1 0x01
0000222b: PUSH1 0x01
0000222d: PUSH1 0xa0
0000222f: SHL
00002230: SUB
00002231: DUP4
00002232: AND
00002233: DUP2
00002234: MSTORE
00002235: PUSH1 0x01
00002237: PUSH1 0xa0
00002239: SHL
0000223a: DUP4
0000223b: AND
0000223c: ISZERO
0000223d: ISZERO
0000223e: PUSH1 0x20
00002240: DUP3
00002241: ADD
00002242: MSTORE
00002243: PUSH1 0xa2
00002245: SWAP3
00002246: SWAP1
00002247: SWAP3
00002248: SHR
00002249: PUSH1 0x01
0000224b: PUSH1 0x01
0000224d: PUSH1 0x40
0000224f: SHL
00002250: SUB
00002251: AND
00002252: SWAP1
00002253: DUP3
00002254: ADD
00002255: MSTORE
00002256: SWAP1
00002257: JUMP
00002258: JUMPDEST
00002259: PUSH1 0x00
0000225b: DUP2
0000225c: DUP2
0000225d: MSTORE
0000225e: PUSH1 0x08
00002260: PUSH1 0x20
00002262: MSTORE
00002263: PUSH1 0x40
00002265: DUP2
00002266: KECCAK256
00002267: SLOAD
00002268: SWAP1
00002269: SUB
0000226a: PUSH2 0x1771
0000226d: JUMPI
0000226e: PUSH2 0x2276
00002271: DUP2
00002272: PUSH2 0x1e61
00002275: JUMP
00002276: JUMPDEST
00002277: PUSH1 0x00
00002279: DUP3
0000227a: DUP2
0000227b: MSTORE
0000227c: PUSH1 0x08
0000227e: PUSH1 0x20
00002280: MSTORE
00002281: PUSH1 0x40
00002283: SWAP1
00002284: KECCAK256
00002285: SSTORE
00002286: POP
00002287: JUMP
00002288: JUMPDEST
00002289: PUSH1 0x00
0000228b: DUP3
0000228c: DUP2
0000228d: MSTORE
0000228e: PUSH1 0x08
00002290: PUSH1 0x20
00002292: MSTORE
00002293: PUSH1 0x40
00002295: DUP2
00002296: KECCAK256
00002297: SLOAD
00002298: SWAP1
00002299: DUP2
0000229a: SWAP1
0000229b: SUB
0000229c: PUSH2 0x22b7
0000229f: JUMPI
000022a0: PUSH1 0x40
000022a2: MLOAD
000022a3: PUSH3 0xd58153
000022a7: PUSH1 0xe0
000022a9: SHL
000022aa: DUP2
000022ab: MSTORE
000022ac: PUSH1 0x04
000022ae: ADD
000022af: PUSH1 0x40
000022b1: MLOAD
000022b2: DUP1
000022b3: SWAP2
000022b4: SUB
000022b5: SWAP1
000022b6: REVERT
000022b7: JUMPDEST
000022b8: PUSH1 0x00
000022ba: SWAP3
000022bb: DUP4
000022bc: MSTORE
000022bd: PUSH1 0x08
000022bf: PUSH1 0x20
000022c1: MSTORE
000022c2: PUSH1 0x40
000022c4: SWAP1
000022c5: SWAP3
000022c6: KECCAK256
000022c7: PUSH1 0x01
000022c9: PUSH1 0x01
000022cb: PUSH1 0xa2
000022cd: SHL
000022ce: SUB
000022cf: SWAP3
000022d0: SWAP1
000022d1: SWAP3
000022d2: AND
000022d3: PUSH1 0xa2
000022d5: SWAP2
000022d6: SWAP1
000022d7: SWAP2
000022d8: SHL
000022d9: OR
000022da: SWAP1
000022db: SSTORE
000022dc: JUMP
000022dd: JUMPDEST
000022de: PUSH1 0x01
000022e0: PUSH1 0x01
000022e2: PUSH1 0xe0
000022e4: SHL
000022e5: SUB
000022e6: NOT
000022e7: DUP2
000022e8: AND
000022e9: DUP2
000022ea: EQ
000022eb: PUSH2 0x1771
000022ee: JUMPI
000022ef: PUSH1 0x00
000022f1: DUP1
000022f2: REVERT
000022f3: JUMPDEST
000022f4: PUSH1 0x00
000022f6: PUSH1 0x20
000022f8: DUP3
000022f9: DUP5
000022fa: SUB
000022fb: SLT
000022fc: ISZERO
000022fd: PUSH2 0x2305
00002300: JUMPI
00002301: PUSH1 0x00
00002303: DUP1
00002304: REVERT
00002305: JUMPDEST
00002306: DUP2
00002307: CALLDATALOAD
00002308: PUSH2 0x1275
0000230b: DUP2
0000230c: PUSH2 0x22dd
0000230f: JUMP
00002310: JUMPDEST
00002311: DUP1
00002312: CALLDATALOAD
00002313: PUSH1 0x01
00002315: PUSH1 0x01
00002317: PUSH1 0xa0
00002319: SHL
0000231a: SUB
0000231b: DUP2
0000231c: AND
0000231d: DUP2
0000231e: EQ
0000231f: PUSH2 0x2327
00002322: JUMPI
00002323: PUSH1 0x00
00002325: DUP1
00002326: REVERT
00002327: JUMPDEST
00002328: SWAP2
00002329: SWAP1
0000232a: POP
0000232b: JUMP
0000232c: JUMPDEST
0000232d: PUSH1 0x00
0000232f: DUP1
00002330: PUSH1 0x40
00002332: DUP4
00002333: DUP6
00002334: SUB
00002335: SLT
00002336: ISZERO
00002337: PUSH2 0x233f
0000233a: JUMPI
0000233b: PUSH1 0x00
0000233d: DUP1
0000233e: REVERT
0000233f: JUMPDEST
00002340: PUSH2 0x2348
00002343: DUP4
00002344: PUSH2 0x2310
00002347: JUMP
00002348: JUMPDEST
00002349: SWAP2
0000234a: POP
0000234b: PUSH1 0x20
0000234d: DUP4
0000234e: ADD
0000234f: CALLDATALOAD
00002350: PUSH1 0x01
00002352: PUSH1 0x01
00002354: PUSH1 0x60
00002356: SHL
00002357: SUB
00002358: DUP2
00002359: AND
0000235a: DUP2
0000235b: EQ
0000235c: PUSH2 0x2364
0000235f: JUMPI
00002360: PUSH1 0x00
00002362: DUP1
00002363: REVERT
00002364: JUMPDEST
00002365: DUP1
00002366: SWAP2
00002367: POP
00002368: POP
00002369: SWAP3
0000236a: POP
0000236b: SWAP3
0000236c: SWAP1
0000236d: POP
0000236e: JUMP
0000236f: JUMPDEST
00002370: PUSH1 0x00
00002372: JUMPDEST
00002373: DUP4
00002374: DUP2
00002375: LT
00002376: ISZERO
00002377: PUSH2 0x238a
0000237a: JUMPI
0000237b: DUP2
0000237c: DUP2
0000237d: ADD
0000237e: MLOAD
0000237f: DUP4
00002380: DUP3
00002381: ADD
00002382: MSTORE
00002383: PUSH1 0x20
00002385: ADD
00002386: PUSH2 0x2372
00002389: JUMP
0000238a: JUMPDEST
0000238b: POP
0000238c: POP
0000238d: PUSH1 0x00
0000238f: SWAP2
00002390: ADD
00002391: MSTORE
00002392: JUMP
00002393: JUMPDEST
00002394: PUSH1 0x00
00002396: DUP2
00002397: MLOAD
00002398: DUP1
00002399: DUP5
0000239a: MSTORE
0000239b: PUSH2 0x23ab
0000239e: DUP2
0000239f: PUSH1 0x20
000023a1: DUP7
000023a2: ADD
000023a3: PUSH1 0x20
000023a5: DUP7
000023a6: ADD
000023a7: PUSH2 0x236f
000023aa: JUMP
000023ab: JUMPDEST
000023ac: PUSH1 0x1f
000023ae: ADD
000023af: PUSH1 0x1f
000023b1: NOT
000023b2: AND
000023b3: SWAP3
000023b4: SWAP1
000023b5: SWAP3
000023b6: ADD
000023b7: PUSH1 0x20
000023b9: ADD
000023ba: SWAP3
000023bb: SWAP2
000023bc: POP
000023bd: POP
000023be: JUMP
000023bf: JUMPDEST
000023c0: PUSH1 0x20
000023c2: DUP2
000023c3: MSTORE
000023c4: PUSH1 0x00
000023c6: PUSH2 0x1275
000023c9: PUSH1 0x20
000023cb: DUP4
000023cc: ADD
000023cd: DUP5
000023ce: PUSH2 0x2393
000023d1: JUMP
000023d2: JUMPDEST
000023d3: PUSH1 0x00
000023d5: PUSH1 0x20
000023d7: DUP3
000023d8: DUP5
000023d9: SUB
000023da: SLT
000023db: ISZERO
000023dc: PUSH2 0x23e4
000023df: JUMPI
000023e0: PUSH1 0x00
000023e2: DUP1
000023e3: REVERT
000023e4: JUMPDEST
000023e5: POP
000023e6: CALLDATALOAD
000023e7: SWAP2
000023e8: SWAP1
000023e9: POP
000023ea: JUMP
000023eb: JUMPDEST
000023ec: PUSH1 0x00
000023ee: DUP1
000023ef: PUSH1 0x40
000023f1: DUP4
000023f2: DUP6
000023f3: SUB
000023f4: SLT
000023f5: ISZERO
000023f6: PUSH2 0x23fe
000023f9: JUMPI
000023fa: PUSH1 0x00
000023fc: DUP1
000023fd: REVERT
000023fe: JUMPDEST
000023ff: PUSH2 0x2407
00002402: DUP4
00002403: PUSH2 0x2310
00002406: JUMP
00002407: JUMPDEST
00002408: SWAP5
00002409: PUSH1 0x20
0000240b: SWAP4
0000240c: SWAP1
0000240d: SWAP4
0000240e: ADD
0000240f: CALLDATALOAD
00002410: SWAP4
00002411: POP
00002412: POP
00002413: POP
00002414: JUMP
00002415: JUMPDEST
00002416: PUSH1 0x00
00002418: DUP1
00002419: PUSH1 0x00
0000241b: PUSH1 0x60
0000241d: DUP5
0000241e: DUP7
0000241f: SUB
00002420: SLT
00002421: ISZERO
00002422: PUSH2 0x242a
00002425: JUMPI
00002426: PUSH1 0x00
00002428: DUP1
00002429: REVERT
0000242a: JUMPDEST
0000242b: PUSH2 0x2433
0000242e: DUP5
0000242f: PUSH2 0x2310
00002432: JUMP
00002433: JUMPDEST
00002434: SWAP3
00002435: POP
00002436: PUSH2 0x2441
00002439: PUSH1 0x20
0000243b: DUP6
0000243c: ADD
0000243d: PUSH2 0x2310
00002440: JUMP
00002441: JUMPDEST
00002442: SWAP2
00002443: POP
00002444: PUSH1 0x40
00002446: DUP5
00002447: ADD
00002448: CALLDATALOAD
00002449: SWAP1
0000244a: POP
0000244b: SWAP3
0000244c: POP
0000244d: SWAP3
0000244e: POP
0000244f: SWAP3
00002450: JUMP
00002451: JUMPDEST
00002452: PUSH1 0x00
00002454: DUP1
00002455: PUSH1 0x40
00002457: DUP4
00002458: DUP6
00002459: SUB
0000245a: SLT
0000245b: ISZERO
0000245c: PUSH2 0x2464
0000245f: JUMPI
00002460: PUSH1 0x00
00002462: DUP1
00002463: REVERT
00002464: JUMPDEST
00002465: POP
00002466: POP
00002467: DUP1
00002468: CALLDATALOAD
00002469: SWAP3
0000246a: PUSH1 0x20
0000246c: SWAP1
0000246d: SWAP2
0000246e: ADD
0000246f: CALLDATALOAD
00002470: SWAP2
00002471: POP
00002472: JUMP
00002473: JUMPDEST
00002474: PUSH1 0x00
00002476: PUSH1 0x20
00002478: DUP3
00002479: DUP5
0000247a: SUB
0000247b: SLT
0000247c: ISZERO
0000247d: PUSH2 0x2485
00002480: JUMPI
00002481: PUSH1 0x00
00002483: DUP1
00002484: REVERT
00002485: JUMPDEST
00002486: PUSH2 0x1275
00002489: DUP3
0000248a: PUSH2 0x2310
0000248d: JUMP
0000248e: JUMPDEST
0000248f: PUSH1 0x00
00002491: DUP1
00002492: PUSH1 0x20
00002494: DUP4
00002495: DUP6
00002496: SUB
00002497: SLT
00002498: ISZERO
00002499: PUSH2 0x24a1
0000249c: JUMPI
0000249d: PUSH1 0x00
0000249f: DUP1
000024a0: REVERT
000024a1: JUMPDEST
000024a2: DUP3
000024a3: CALLDATALOAD
000024a4: PUSH1 0x01
000024a6: PUSH1 0x01
000024a8: PUSH1 0x40
000024aa: SHL
000024ab: SUB
000024ac: DUP1
000024ad: DUP3
000024ae: GT
000024af: ISZERO
000024b0: PUSH2 0x24b8
000024b3: JUMPI
000024b4: PUSH1 0x00
000024b6: DUP1
000024b7: REVERT
000024b8: JUMPDEST
000024b9: DUP2
000024ba: DUP6
000024bb: ADD
000024bc: SWAP2
000024bd: POP
000024be: DUP6
000024bf: PUSH1 0x1f
000024c1: DUP4
000024c2: ADD
000024c3: SLT
000024c4: PUSH2 0x24cc
000024c7: JUMPI
000024c8: PUSH1 0x00
000024ca: DUP1
000024cb: REVERT
000024cc: JUMPDEST
000024cd: DUP2
000024ce: CALLDATALOAD
000024cf: DUP2
000024d0: DUP2
000024d1: GT
000024d2: ISZERO
000024d3: PUSH2 0x24db
000024d6: JUMPI
000024d7: PUSH1 0x00
000024d9: DUP1
000024da: REVERT
000024db: JUMPDEST
000024dc: DUP7
000024dd: PUSH1 0x20
000024df: DUP3
000024e0: DUP6
000024e1: ADD
000024e2: ADD
000024e3: GT
000024e4: ISZERO
000024e5: PUSH2 0x24ed
000024e8: JUMPI
000024e9: PUSH1 0x00
000024eb: DUP1
000024ec: REVERT
000024ed: JUMPDEST
000024ee: PUSH1 0x20
000024f0: SWAP3
000024f1: SWAP1
000024f2: SWAP3
000024f3: ADD
000024f4: SWAP7
000024f5: SWAP2
000024f6: SWAP6
000024f7: POP
000024f8: SWAP1
000024f9: SWAP4
000024fa: POP
000024fb: POP
000024fc: POP
000024fd: POP
000024fe: JUMP
000024ff: JUMPDEST
00002500: PUSH1 0x00
00002502: DUP1
00002503: PUSH1 0x20
00002505: DUP4
00002506: DUP6
00002507: SUB
00002508: SLT
00002509: ISZERO
0000250a: PUSH2 0x2512
0000250d: JUMPI
0000250e: PUSH1 0x00
00002510: DUP1
00002511: REVERT
00002512: JUMPDEST
00002513: DUP3
00002514: CALLDATALOAD
00002515: PUSH1 0x01
00002517: PUSH1 0x01
00002519: PUSH1 0x40
0000251b: SHL
0000251c: SUB
0000251d: DUP1
0000251e: DUP3
0000251f: GT
00002520: ISZERO
00002521: PUSH2 0x2529
00002524: JUMPI
00002525: PUSH1 0x00
00002527: DUP1
00002528: REVERT
00002529: JUMPDEST
0000252a: DUP2
0000252b: DUP6
0000252c: ADD
0000252d: SWAP2
0000252e: POP
0000252f: DUP6
00002530: PUSH1 0x1f
00002532: DUP4
00002533: ADD
00002534: SLT
00002535: PUSH2 0x253d
00002538: JUMPI
00002539: PUSH1 0x00
0000253b: DUP1
0000253c: REVERT
0000253d: JUMPDEST
0000253e: DUP2
0000253f: CALLDATALOAD
00002540: DUP2
00002541: DUP2
00002542: GT
00002543: ISZERO
00002544: PUSH2 0x254c
00002547: JUMPI
00002548: PUSH1 0x00
0000254a: DUP1
0000254b: REVERT
0000254c: JUMPDEST
0000254d: DUP7
0000254e: PUSH1 0x20
00002550: DUP3
00002551: PUSH1 0x05
00002553: SHL
00002554: DUP6
00002555: ADD
00002556: ADD
00002557: GT
00002558: ISZERO
00002559: PUSH2 0x24ed
0000255c: JUMPI
0000255d: PUSH1 0x00
0000255f: DUP1
00002560: REVERT
00002561: JUMPDEST
00002562: PUSH1 0x20
00002564: DUP1
00002565: DUP3
00002566: MSTORE
00002567: DUP3
00002568: MLOAD
00002569: DUP3
0000256a: DUP3
0000256b: ADD
0000256c: DUP2
0000256d: SWAP1
0000256e: MSTORE
0000256f: PUSH1 0x00
00002571: SWAP2
00002572: SWAP1
00002573: DUP5
00002574: DUP3
00002575: ADD
00002576: SWAP1
00002577: PUSH1 0x40
00002579: DUP6
0000257a: ADD
0000257b: SWAP1
0000257c: DUP5
0000257d: JUMPDEST
0000257e: DUP2
0000257f: DUP2
00002580: LT
00002581: ISZERO
00002582: PUSH2 0x104d
00002585: JUMPI
00002586: PUSH2 0x25b8
00002589: DUP4
0000258a: DUP6
0000258b: MLOAD
0000258c: DUP1
0000258d: MLOAD
0000258e: PUSH1 0x01
00002590: PUSH1 0x01
00002592: PUSH1 0xa0
00002594: SHL
00002595: SUB
00002596: AND
00002597: DUP3
00002598: MSTORE
00002599: PUSH1 0x20
0000259b: DUP1
0000259c: DUP3
0000259d: ADD
0000259e: MLOAD
0000259f: ISZERO
000025a0: ISZERO
000025a1: SWAP1
000025a2: DUP4
000025a3: ADD
000025a4: MSTORE
000025a5: PUSH1 0x40
000025a7: SWAP1
000025a8: DUP2
000025a9: ADD
000025aa: MLOAD
000025ab: PUSH1 0x01
000025ad: PUSH1 0x01
000025af: PUSH1 0x40
000025b1: SHL
000025b2: SUB
000025b3: AND
000025b4: SWAP2
000025b5: ADD
000025b6: MSTORE
000025b7: JUMP
000025b8: JUMPDEST
000025b9: SWAP3
000025ba: DUP5
000025bb: ADD
000025bc: SWAP3
000025bd: PUSH1 0x60
000025bf: SWAP3
000025c0: SWAP1
000025c1: SWAP3
000025c2: ADD
000025c3: SWAP2
000025c4: PUSH1 0x01
000025c6: ADD
000025c7: PUSH2 0x257d
000025ca: JUMP
000025cb: JUMPDEST
000025cc: PUSH1 0x20
000025ce: DUP1
000025cf: DUP3
000025d0: MSTORE
000025d1: DUP3
000025d2: MLOAD
000025d3: DUP3
000025d4: DUP3
000025d5: ADD
000025d6: DUP2
000025d7: SWAP1
000025d8: MSTORE
000025d9: PUSH1 0x00
000025db: SWAP2
000025dc: SWAP1
000025dd: DUP5
000025de: DUP3
000025df: ADD
000025e0: SWAP1
000025e1: PUSH1 0x40
000025e3: DUP6
000025e4: ADD
000025e5: SWAP1
000025e6: DUP5
000025e7: JUMPDEST
000025e8: DUP2
000025e9: DUP2
000025ea: LT
000025eb: ISZERO
000025ec: PUSH2 0x104d
000025ef: JUMPI
000025f0: DUP4
000025f1: MLOAD
000025f2: DUP4
000025f3: MSTORE
000025f4: SWAP3
000025f5: DUP5
000025f6: ADD
000025f7: SWAP3
000025f8: SWAP2
000025f9: DUP5
000025fa: ADD
000025fb: SWAP2
000025fc: PUSH1 0x01
000025fe: ADD
000025ff: PUSH2 0x25e7
00002602: JUMP
00002603: JUMPDEST
00002604: PUSH1 0x00
00002606: DUP1
00002607: PUSH1 0x00
00002609: PUSH1 0x60
0000260b: DUP5
0000260c: DUP7
0000260d: SUB
0000260e: SLT
0000260f: ISZERO
00002610: PUSH2 0x2618
00002613: JUMPI
00002614: PUSH1 0x00
00002616: DUP1
00002617: REVERT
00002618: JUMPDEST
00002619: PUSH2 0x2621
0000261c: DUP5
0000261d: PUSH2 0x2310
00002620: JUMP
00002621: JUMPDEST
00002622: SWAP6
00002623: PUSH1 0x20
00002625: DUP6
00002626: ADD
00002627: CALLDATALOAD
00002628: SWAP6
00002629: POP
0000262a: PUSH1 0x40
0000262c: SWAP1
0000262d: SWAP5
0000262e: ADD
0000262f: CALLDATALOAD
00002630: SWAP4
00002631: SWAP3
00002632: POP
00002633: POP
00002634: POP
00002635: JUMP
00002636: JUMPDEST
00002637: DUP1
00002638: CALLDATALOAD
00002639: DUP1
0000263a: ISZERO
0000263b: ISZERO
0000263c: DUP2
0000263d: EQ
0000263e: PUSH2 0x2327
00002641: JUMPI
00002642: PUSH1 0x00
00002644: DUP1
00002645: REVERT
00002646: JUMPDEST
00002647: PUSH1 0x00
00002649: DUP1
0000264a: PUSH1 0x40
0000264c: DUP4
0000264d: DUP6
0000264e: SUB
0000264f: SLT
00002650: ISZERO
00002651: PUSH2 0x2659
00002654: JUMPI
00002655: PUSH1 0x00
00002657: DUP1
00002658: REVERT
00002659: JUMPDEST
0000265a: PUSH2 0x2662
0000265d: DUP4
0000265e: PUSH2 0x2310
00002661: JUMP
00002662: JUMPDEST
00002663: SWAP2
00002664: POP
00002665: PUSH2 0x2670
00002668: PUSH1 0x20
0000266a: DUP5
0000266b: ADD
0000266c: PUSH2 0x2636
0000266f: JUMP
00002670: JUMPDEST
00002671: SWAP1
00002672: POP
00002673: SWAP3
00002674: POP
00002675: SWAP3
00002676: SWAP1
00002677: POP
00002678: JUMP
00002679: JUMPDEST
0000267a: PUSH1 0x00
0000267c: PUSH1 0x20
0000267e: DUP3
0000267f: DUP5
00002680: SUB
00002681: SLT
00002682: ISZERO
00002683: PUSH2 0x268b
00002686: JUMPI
00002687: PUSH1 0x00
00002689: DUP1
0000268a: REVERT
0000268b: JUMPDEST
0000268c: PUSH2 0x1275
0000268f: DUP3
00002690: PUSH2 0x2636
00002693: JUMP
00002694: JUMPDEST
00002695: PUSH4 0x4e487b71
0000269a: PUSH1 0xe0
0000269c: SHL
0000269d: PUSH1 0x00
0000269f: MSTORE
000026a0: PUSH1 0x41
000026a2: PUSH1 0x04
000026a4: MSTORE
000026a5: PUSH1 0x24
000026a7: PUSH1 0x00
000026a9: REVERT
000026aa: JUMPDEST
000026ab: PUSH1 0x40
000026ad: MLOAD
000026ae: PUSH1 0x1f
000026b0: DUP3
000026b1: ADD
000026b2: PUSH1 0x1f
000026b4: NOT
000026b5: AND
000026b6: DUP2
000026b7: ADD
000026b8: PUSH1 0x01
000026ba: PUSH1 0x01
000026bc: PUSH1 0x40
000026be: SHL
000026bf: SUB
000026c0: DUP2
000026c1: GT
000026c2: DUP3
000026c3: DUP3
000026c4: LT
000026c5: OR
000026c6: ISZERO
000026c7: PUSH2 0x26d2
000026ca: JUMPI
000026cb: PUSH2 0x26d2
000026ce: PUSH2 0x2694
000026d1: JUMP
000026d2: JUMPDEST
000026d3: PUSH1 0x40
000026d5: MSTORE
000026d6: SWAP2
000026d7: SWAP1
000026d8: POP
000026d9: JUMP
000026da: JUMPDEST
000026db: PUSH1 0x00
000026dd: PUSH1 0x01
000026df: PUSH1 0x01
000026e1: PUSH1 0x40
000026e3: SHL
000026e4: SUB
000026e5: DUP3
000026e6: GT
000026e7: ISZERO
000026e8: PUSH2 0x26f3
000026eb: JUMPI
000026ec: PUSH2 0x26f3
000026ef: PUSH2 0x2694
000026f2: JUMP
000026f3: JUMPDEST
000026f4: POP
000026f5: PUSH1 0x1f
000026f7: ADD
000026f8: PUSH1 0x1f
000026fa: NOT
000026fb: AND
000026fc: PUSH1 0x20
000026fe: ADD
000026ff: SWAP1
00002700: JUMP
00002701: JUMPDEST
00002702: PUSH1 0x00
00002704: DUP1
00002705: PUSH1 0x00
00002707: DUP1
00002708: PUSH1 0x80
0000270a: DUP6
0000270b: DUP8
0000270c: SUB
0000270d: SLT
0000270e: ISZERO
0000270f: PUSH2 0x2717
00002712: JUMPI
00002713: PUSH1 0x00
00002715: DUP1
00002716: REVERT
00002717: JUMPDEST
00002718: PUSH2 0x2720
0000271b: DUP6
0000271c: PUSH2 0x2310
0000271f: JUMP
00002720: JUMPDEST
00002721: SWAP4
00002722: POP
00002723: PUSH2 0x272e
00002726: PUSH1 0x20
00002728: DUP7
00002729: ADD
0000272a: PUSH2 0x2310
0000272d: JUMP
0000272e: JUMPDEST
0000272f: SWAP3
00002730: POP
00002731: PUSH1 0x40
00002733: DUP6
00002734: ADD
00002735: CALLDATALOAD
00002736: SWAP2
00002737: POP
00002738: PUSH1 0x60
0000273a: DUP6
0000273b: ADD
0000273c: CALLDATALOAD
0000273d: PUSH1 0x01
0000273f: PUSH1 0x01
00002741: PUSH1 0x40
00002743: SHL
00002744: SUB
00002745: DUP2
00002746: GT
00002747: ISZERO
00002748: PUSH2 0x2750
0000274b: JUMPI
0000274c: PUSH1 0x00
0000274e: DUP1
0000274f: REVERT
00002750: JUMPDEST
00002751: DUP6
00002752: ADD
00002753: PUSH1 0x1f
00002755: DUP2
00002756: ADD
00002757: DUP8
00002758: SGT
00002759: PUSH2 0x2761
0000275c: JUMPI
0000275d: PUSH1 0x00
0000275f: DUP1
00002760: REVERT
00002761: JUMPDEST
00002762: DUP1
00002763: CALLDATALOAD
00002764: PUSH2 0x2774
00002767: PUSH2 0x276f
0000276a: DUP3
0000276b: PUSH2 0x26da
0000276e: JUMP
0000276f: JUMPDEST
00002770: PUSH2 0x26aa
00002773: JUMP
00002774: JUMPDEST
00002775: DUP2
00002776: DUP2
00002777: MSTORE
00002778: DUP9
00002779: PUSH1 0x20
0000277b: DUP4
0000277c: DUP6
0000277d: ADD
0000277e: ADD
0000277f: GT
00002780: ISZERO
00002781: PUSH2 0x2789
00002784: JUMPI
00002785: PUSH1 0x00
00002787: DUP1
00002788: REVERT
00002789: JUMPDEST
0000278a: DUP2
0000278b: PUSH1 0x20
0000278d: DUP5
0000278e: ADD
0000278f: PUSH1 0x20
00002791: DUP4
00002792: ADD
00002793: CALLDATACOPY
00002794: PUSH1 0x00
00002796: PUSH1 0x20
00002798: DUP4
00002799: DUP4
0000279a: ADD
0000279b: ADD
0000279c: MSTORE
0000279d: DUP1
0000279e: SWAP4
0000279f: POP
000027a0: POP
000027a1: POP
000027a2: POP
000027a3: SWAP3
000027a4: SWAP6
000027a5: SWAP2
000027a6: SWAP5
000027a7: POP
000027a8: SWAP3
000027a9: POP
000027aa: JUMP
000027ab: JUMPDEST
000027ac: DUP2
000027ad: MLOAD
000027ae: PUSH1 0x01
000027b0: PUSH1 0x01
000027b2: PUSH1 0xa0
000027b4: SHL
000027b5: SUB
000027b6: AND
000027b7: DUP2
000027b8: MSTORE
000027b9: PUSH1 0x20
000027bb: DUP1
000027bc: DUP4
000027bd: ADD
000027be: MLOAD
000027bf: ISZERO
000027c0: ISZERO
000027c1: SWAP1
000027c2: DUP3
000027c3: ADD
000027c4: MSTORE
000027c5: PUSH1 0x40
000027c7: DUP1
000027c8: DUP4
000027c9: ADD
000027ca: MLOAD
000027cb: PUSH1 0x01
000027cd: PUSH1 0x01
000027cf: PUSH1 0x40
000027d1: SHL
000027d2: SUB
000027d3: AND
000027d4: SWAP1
000027d5: DUP3
000027d6: ADD
000027d7: MSTORE
000027d8: PUSH1 0x60
000027da: DUP2
000027db: ADD
000027dc: PUSH2 0x08c1
000027df: JUMP
000027e0: JUMPDEST
000027e1: PUSH1 0x00
000027e3: DUP1
000027e4: PUSH1 0x40
000027e6: DUP4
000027e7: DUP6
000027e8: SUB
000027e9: SLT
000027ea: ISZERO
000027eb: PUSH2 0x27f3
000027ee: JUMPI
000027ef: PUSH1 0x00
000027f1: DUP1
000027f2: REVERT
000027f3: JUMPDEST
000027f4: PUSH2 0x27fc
000027f7: DUP4
000027f8: PUSH2 0x2310
000027fb: JUMP
000027fc: JUMPDEST
000027fd: SWAP2
000027fe: POP
000027ff: PUSH2 0x2670
00002802: PUSH1 0x20
00002804: DUP5
00002805: ADD
00002806: PUSH2 0x2310
00002809: JUMP
0000280a: JUMPDEST
0000280b: PUSH1 0x01
0000280d: DUP2
0000280e: DUP2
0000280f: SHR
00002810: SWAP1
00002811: DUP3
00002812: AND
00002813: DUP1
00002814: PUSH2 0x281e
00002817: JUMPI
00002818: PUSH1 0x7f
0000281a: DUP3
0000281b: AND
0000281c: SWAP2
0000281d: POP
0000281e: JUMPDEST
0000281f: PUSH1 0x20
00002821: DUP3
00002822: LT
00002823: DUP2
00002824: SUB
00002825: PUSH2 0x1adb
00002828: JUMPI
00002829: PUSH4 0x4e487b71
0000282e: PUSH1 0xe0
00002830: SHL
00002831: PUSH1 0x00
00002833: MSTORE
00002834: PUSH1 0x22
00002836: PUSH1 0x04
00002838: MSTORE
00002839: PUSH1 0x24
0000283b: PUSH1 0x00
0000283d: REVERT
0000283e: JUMPDEST
0000283f: PUSH4 0x4e487b71
00002844: PUSH1 0xe0
00002846: SHL
00002847: PUSH1 0x00
00002849: MSTORE
0000284a: PUSH1 0x11
0000284c: PUSH1 0x04
0000284e: MSTORE
0000284f: PUSH1 0x24
00002851: PUSH1 0x00
00002853: REVERT
00002854: JUMPDEST
00002855: DUP1
00002856: DUP3
00002857: ADD
00002858: DUP1
00002859: DUP3
0000285a: GT
0000285b: ISZERO
0000285c: PUSH2 0x08c1
0000285f: JUMPI
00002860: PUSH2 0x08c1
00002863: PUSH2 0x283e
00002866: JUMP
00002867: JUMPDEST
00002868: DUP1
00002869: DUP3
0000286a: MUL
0000286b: DUP2
0000286c: ISZERO
0000286d: DUP3
0000286e: DUP3
0000286f: DIV
00002870: DUP5
00002871: EQ
00002872: OR
00002873: PUSH2 0x08c1
00002876: JUMPI
00002877: PUSH2 0x08c1
0000287a: PUSH2 0x283e
0000287d: JUMP
0000287e: JUMPDEST
0000287f: PUSH1 0x00
00002881: DUP3
00002882: PUSH2 0x289b
00002885: JUMPI
00002886: PUSH4 0x4e487b71
0000288b: PUSH1 0xe0
0000288d: SHL
0000288e: PUSH1 0x00
00002890: MSTORE
00002891: PUSH1 0x12
00002893: PUSH1 0x04
00002895: MSTORE
00002896: PUSH1 0x24
00002898: PUSH1 0x00
0000289a: REVERT
0000289b: JUMPDEST
0000289c: POP
0000289d: DIV
0000289e: SWAP1
0000289f: JUMP
000028a0: JUMPDEST
000028a1: PUSH1 0x00
000028a3: PUSH1 0x20
000028a5: DUP1
000028a6: DUP4
000028a7: MSTORE
000028a8: PUSH1 0x00
000028aa: DUP5
000028ab: SLOAD
000028ac: PUSH2 0x28b4
000028af: DUP2
000028b0: PUSH2 0x280a
000028b3: JUMP
000028b4: JUMPDEST
000028b5: DUP1
000028b6: DUP5
000028b7: DUP8
000028b8: ADD
000028b9: MSTORE
000028ba: PUSH1 0x40
000028bc: PUSH1 0x01
000028be: DUP1
000028bf: DUP5
000028c0: AND
000028c1: PUSH1 0x00
000028c3: DUP2
000028c4: EQ
000028c5: PUSH2 0x28d5
000028c8: JUMPI
000028c9: PUSH1 0x01
000028cb: DUP2
000028cc: EQ
000028cd: PUSH2 0x28ef
000028d0: JUMPI
000028d1: PUSH2 0x291d
000028d4: JUMP
000028d5: JUMPDEST
000028d6: PUSH1 0xff
000028d8: NOT
000028d9: DUP6
000028da: AND
000028db: DUP10
000028dc: DUP5
000028dd: ADD
000028de: MSTORE
000028df: DUP4
000028e0: ISZERO
000028e1: ISZERO
000028e2: PUSH1 0x05
000028e4: SHL
000028e5: DUP10
000028e6: ADD
000028e7: DUP4
000028e8: ADD
000028e9: SWAP6
000028ea: POP
000028eb: PUSH2 0x291d
000028ee: JUMP
000028ef: JUMPDEST
000028f0: DUP10
000028f1: PUSH1 0x00
000028f3: MSTORE
000028f4: DUP7
000028f5: PUSH1 0x00
000028f7: KECCAK256
000028f8: PUSH1 0x00
000028fa: JUMPDEST
000028fb: DUP6
000028fc: DUP2
000028fd: LT
000028fe: ISZERO
000028ff: PUSH2 0x2915
00002902: JUMPI
00002903: DUP2
00002904: SLOAD
00002905: DUP12
00002906: DUP3
00002907: ADD
00002908: DUP7
00002909: ADD
0000290a: MSTORE
0000290b: SWAP1
0000290c: DUP4
0000290d: ADD
0000290e: SWAP1
0000290f: DUP9
00002910: ADD
00002911: PUSH2 0x28fa
00002914: JUMP
00002915: JUMPDEST
00002916: DUP11
00002917: ADD
00002918: DUP5
00002919: ADD
0000291a: SWAP7
0000291b: POP
0000291c: POP
0000291d: JUMPDEST
0000291e: POP
0000291f: SWAP4
00002920: SWAP9
00002921: SWAP8
00002922: POP
00002923: POP
00002924: POP
00002925: POP
00002926: POP
00002927: POP
00002928: POP
00002929: POP
0000292a: JUMP
0000292b: JUMPDEST
0000292c: PUSH1 0x00
0000292e: PUSH1 0x20
00002930: DUP3
00002931: DUP5
00002932: SUB
00002933: SLT
00002934: ISZERO
00002935: PUSH2 0x293d
00002938: JUMPI
00002939: PUSH1 0x00
0000293b: DUP1
0000293c: REVERT
0000293d: JUMPDEST
0000293e: DUP2
0000293f: MLOAD
00002940: PUSH1 0x01
00002942: PUSH1 0x01
00002944: PUSH1 0x40
00002946: SHL
00002947: SUB
00002948: DUP2
00002949: GT
0000294a: ISZERO
0000294b: PUSH2 0x2953
0000294e: JUMPI
0000294f: PUSH1 0x00
00002951: DUP1
00002952: REVERT
00002953: JUMPDEST
00002954: DUP3
00002955: ADD
00002956: PUSH1 0x1f
00002958: DUP2
00002959: ADD
0000295a: DUP5
0000295b: SGT
0000295c: PUSH2 0x2964
0000295f: JUMPI
00002960: PUSH1 0x00
00002962: DUP1
00002963: REVERT
00002964: JUMPDEST
00002965: DUP1
00002966: MLOAD
00002967: PUSH2 0x2972
0000296a: PUSH2 0x276f
0000296d: DUP3
0000296e: PUSH2 0x26da
00002971: JUMP
00002972: JUMPDEST
00002973: DUP2
00002974: DUP2
00002975: MSTORE
00002976: DUP6
00002977: PUSH1 0x20
00002979: DUP4
0000297a: DUP6
0000297b: ADD
0000297c: ADD
0000297d: GT
0000297e: ISZERO
0000297f: PUSH2 0x2987
00002982: JUMPI
00002983: PUSH1 0x00
00002985: DUP1
00002986: REVERT
00002987: JUMPDEST
00002988: PUSH2 0x2998
0000298b: DUP3
0000298c: PUSH1 0x20
0000298e: DUP4
0000298f: ADD
00002990: PUSH1 0x20
00002992: DUP7
00002993: ADD
00002994: PUSH2 0x236f
00002997: JUMP
00002998: JUMPDEST
00002999: SWAP6
0000299a: SWAP5
0000299b: POP
0000299c: POP
0000299d: POP
0000299e: POP
0000299f: POP
000029a0: JUMP
000029a1: JUMPDEST
000029a2: PUSH1 0x1f
000029a4: DUP3
000029a5: GT
000029a6: ISZERO
000029a7: PUSH2 0x09f6
000029aa: JUMPI
000029ab: PUSH1 0x00
000029ad: DUP2
000029ae: DUP2
000029af: MSTORE
000029b0: PUSH1 0x20
000029b2: DUP2
000029b3: KECCAK256
000029b4: PUSH1 0x1f
000029b6: DUP6
000029b7: ADD
000029b8: PUSH1 0x05
000029ba: SHR
000029bb: DUP2
000029bc: ADD
000029bd: PUSH1 0x20
000029bf: DUP7
000029c0: LT
000029c1: ISZERO
000029c2: PUSH2 0x29c8
000029c5: JUMPI
000029c6: POP
000029c7: DUP1
000029c8: JUMPDEST
000029c9: PUSH1 0x1f
000029cb: DUP6
000029cc: ADD
000029cd: PUSH1 0x05
000029cf: SHR
000029d0: DUP3
000029d1: ADD
000029d2: SWAP2
000029d3: POP
000029d4: JUMPDEST
000029d5: DUP2
000029d6: DUP2
000029d7: LT
000029d8: ISZERO
000029d9: PUSH2 0x1d16
000029dc: JUMPI
000029dd: DUP3
000029de: DUP2
000029df: SSTORE
000029e0: PUSH1 0x01
000029e2: ADD
000029e3: PUSH2 0x29d4
000029e6: JUMP
000029e7: JUMPDEST
000029e8: PUSH1 0x01
000029ea: PUSH1 0x01
000029ec: PUSH1 0x40
000029ee: SHL
000029ef: SUB
000029f0: DUP4
000029f1: GT
000029f2: ISZERO
000029f3: PUSH2 0x29fe
000029f6: JUMPI
000029f7: PUSH2 0x29fe
000029fa: PUSH2 0x2694
000029fd: JUMP
000029fe: JUMPDEST
000029ff: PUSH2 0x2a12
00002a02: DUP4
00002a03: PUSH2 0x2a0c
00002a06: DUP4
00002a07: SLOAD
00002a08: PUSH2 0x280a
00002a0b: JUMP
00002a0c: JUMPDEST
00002a0d: DUP4
00002a0e: PUSH2 0x29a1
00002a11: JUMP
00002a12: JUMPDEST
00002a13: PUSH1 0x00
00002a15: PUSH1 0x1f
00002a17: DUP5
00002a18: GT
00002a19: PUSH1 0x01
00002a1b: DUP2
00002a1c: EQ
00002a1d: PUSH2 0x2a46
00002a20: JUMPI
00002a21: PUSH1 0x00
00002a23: DUP6
00002a24: ISZERO
00002a25: PUSH2 0x2a2e
00002a28: JUMPI
00002a29: POP
00002a2a: DUP4
00002a2b: DUP3
00002a2c: ADD
00002a2d: CALLDATALOAD
00002a2e: JUMPDEST
00002a2f: PUSH1 0x00
00002a31: NOT
00002a32: PUSH1 0x03
00002a34: DUP8
00002a35: SWAP1
00002a36: SHL
00002a37: SHR
00002a38: NOT
00002a39: AND
00002a3a: PUSH1 0x01
00002a3c: DUP7
00002a3d: SWAP1
00002a3e: SHL
00002a3f: OR
00002a40: DUP4
00002a41: SSTORE
00002a42: PUSH2 0x2aa0
00002a45: JUMP
00002a46: JUMPDEST
00002a47: PUSH1 0x00
00002a49: DUP4
00002a4a: DUP2
00002a4b: MSTORE
00002a4c: PUSH1 0x20
00002a4e: SWAP1
00002a4f: KECCAK256
00002a50: PUSH1 0x1f
00002a52: NOT
00002a53: DUP7
00002a54: AND
00002a55: SWAP1
00002a56: DUP4
00002a57: JUMPDEST
00002a58: DUP3
00002a59: DUP2
00002a5a: LT
00002a5b: ISZERO
00002a5c: PUSH2 0x2a77
00002a5f: JUMPI
00002a60: DUP7
00002a61: DUP6
00002a62: ADD
00002a63: CALLDATALOAD
00002a64: DUP3
00002a65: SSTORE
00002a66: PUSH1 0x20
00002a68: SWAP5
00002a69: DUP6
00002a6a: ADD
00002a6b: SWAP5
00002a6c: PUSH1 0x01
00002a6e: SWAP1
00002a6f: SWAP3
00002a70: ADD
00002a71: SWAP2
00002a72: ADD
00002a73: PUSH2 0x2a57
00002a76: JUMP
00002a77: JUMPDEST
00002a78: POP
00002a79: DUP7
00002a7a: DUP3
00002a7b: LT
00002a7c: ISZERO
00002a7d: PUSH2 0x2a94
00002a80: JUMPI
00002a81: PUSH1 0x00
00002a83: NOT
00002a84: PUSH1 0xf8
00002a86: DUP9
00002a87: PUSH1 0x03
00002a89: SHL
00002a8a: AND
00002a8b: SHR
00002a8c: NOT
00002a8d: DUP5
00002a8e: DUP8
00002a8f: ADD
00002a90: CALLDATALOAD
00002a91: AND
00002a92: DUP2
00002a93: SSTORE
00002a94: JUMPDEST
00002a95: POP
00002a96: POP
00002a97: PUSH1 0x01
00002a99: DUP6
00002a9a: PUSH1 0x01
00002a9c: SHL
00002a9d: ADD
00002a9e: DUP4
00002a9f: SSTORE
00002aa0: JUMPDEST
00002aa1: POP
00002aa2: POP
00002aa3: POP
00002aa4: POP
00002aa5: POP
00002aa6: JUMP
00002aa7: JUMPDEST
00002aa8: PUSH4 0x4e487b71
00002aad: PUSH1 0xe0
00002aaf: SHL
00002ab0: PUSH1 0x00
00002ab2: MSTORE
00002ab3: PUSH1 0x32
00002ab5: PUSH1 0x04
00002ab7: MSTORE
00002ab8: PUSH1 0x24
00002aba: PUSH1 0x00
00002abc: REVERT
00002abd: JUMPDEST
00002abe: DUP2
00002abf: DUP2
00002ac0: SUB
00002ac1: DUP2
00002ac2: DUP2
00002ac3: GT
00002ac4: ISZERO
00002ac5: PUSH2 0x08c1
00002ac8: JUMPI
00002ac9: PUSH2 0x08c1
00002acc: PUSH2 0x283e
00002acf: JUMP
00002ad0: JUMPDEST
00002ad1: PUSH1 0x00
00002ad3: DUP4
00002ad4: MLOAD
00002ad5: PUSH2 0x2ae2
00002ad8: DUP2
00002ad9: DUP5
00002ada: PUSH1 0x20
00002adc: DUP9
00002add: ADD
00002ade: PUSH2 0x236f
00002ae1: JUMP
00002ae2: JUMPDEST
00002ae3: DUP4
00002ae4: MLOAD
00002ae5: SWAP1
00002ae6: DUP4
00002ae7: ADD
00002ae8: SWAP1
00002ae9: PUSH2 0x2af6
00002aec: DUP2
00002aed: DUP4
00002aee: PUSH1 0x20
00002af0: DUP9
00002af1: ADD
00002af2: PUSH2 0x236f
00002af5: JUMP
00002af6: JUMPDEST
00002af7: ADD
00002af8: SWAP5
00002af9: SWAP4
00002afa: POP
00002afb: POP
00002afc: POP
00002afd: POP
00002afe: JUMP
00002aff: JUMPDEST
00002b00: PUSH1 0x01
00002b02: PUSH1 0x01
00002b04: PUSH1 0xa0
00002b06: SHL
00002b07: SUB
00002b08: DUP6
00002b09: DUP2
00002b0a: AND
00002b0b: DUP3
00002b0c: MSTORE
00002b0d: DUP5
00002b0e: AND
00002b0f: PUSH1 0x20
00002b11: DUP3
00002b12: ADD
00002b13: MSTORE
00002b14: PUSH1 0x40
00002b16: DUP2
00002b17: ADD
00002b18: DUP4
00002b19: SWAP1
00002b1a: MSTORE
00002b1b: PUSH1 0x80
00002b1d: PUSH1 0x60
00002b1f: DUP3
00002b20: ADD
00002b21: DUP2
00002b22: SWAP1
00002b23: MSTORE
00002b24: PUSH1 0x00
00002b26: SWAP1
00002b27: PUSH2 0x2b32
00002b2a: SWAP1
00002b2b: DUP4
00002b2c: ADD
00002b2d: DUP5
00002b2e: PUSH2 0x2393
00002b31: JUMP
00002b32: JUMPDEST
00002b33: SWAP7
00002b34: SWAP6
00002b35: POP
00002b36: POP
00002b37: POP
00002b38: POP
00002b39: POP
00002b3a: POP
00002b3b: JUMP
00002b3c: JUMPDEST
00002b3d: PUSH1 0x00
00002b3f: PUSH1 0x20
00002b41: DUP3
00002b42: DUP5
00002b43: SUB
00002b44: SLT
00002b45: ISZERO
00002b46: PUSH2 0x2b4e
00002b49: JUMPI
00002b4a: PUSH1 0x00
00002b4c: DUP1
00002b4d: REVERT
00002b4e: JUMPDEST
00002b4f: DUP2
00002b50: MLOAD
00002b51: PUSH2 0x1275
00002b54: DUP2
00002b55: PUSH2 0x22dd
00002b58: JUMP
00002b59: INVALID
00002b5a: UNKNOWN(0xDD)
00002b5b: CALLCODE
00002b5c: MSTORE
00002b5d: UNKNOWN(0xAD)
00002b5e: SHL
00002b5f: UNKNOWN(0xE2)
00002b60: UNKNOWN(0xC8)
00002b61: SWAP12
00002b62: PUSH10 0xc2b068fc378daa952ba7
00002b6d: CALL
00002b6e: PUSH4 0xc4a11628
00002b73: CREATE2
00002b74: GAS
00002b75: UNKNOWN(0x4D)
00002b76: CREATE2
00002b77: UNKNOWN(0x23)
00002b78: UNKNOWN(0xB3)
00002b79: UNKNOWN(0xEF)
00002b7a: LOG2
00002b7b: PUSH5 0x6970667358
00002b81: UNKNOWN(0x22)
00002b82: SLT
00002b83: KECCAK256
00002b84: CODECOPY
00002b85: UNKNOWN(0xBD)
00002b86: UNKNOWN(0x4C)
00002b87: UNKNOWN(0x2A)
00002b88: UNKNOWN(0xBC)
00002b89: PUSH6 0xe9caefc6faab
00002b90: LOG2
00002b91: JUMPI
00002b92: DIV
00002b93: PUSH7 0x698f8fddf3dfee
00002b9b: UNKNOWN(0xB5)
00002b9c: MLOAD
00002b9d: UNKNOWN(0xDA)
00002b9e: AND
00002b9f: ADD
00002ba0: SHL
00002ba1: UNKNOWN(0xBE)
00002ba2: SWAP1
00002ba3: UNKNOWN(0x2A)
00002ba4: PUSH5 0x736f6c6343
00002baa: STOP
00002bab: ADDMOD
00002bac: ISZERO
00002bad: STOP
00002bae: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other slither DragonCurve.refundFrom(address,uint256) (src/DragonCurve.sol#162-172) sends eth to arbitrary user 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "arbitrary-send-eth",
    "elements": [
        {
            "name": "refundFrom",
            "type": "function",
            "source_mapping": {
                "lines": [
                    162,
                    163,
                    164,
                    165,
                    166,
                    167,
                    168,
                    169,
                    170,
                    171,
                    172
                ],
                "start": 6123,
                "length": 329,
                "ending_column": 24,
                "is_dependency": false,
                "filename_short": "src/DragonCurve.sol",
                "starting_column": 13,
                "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                "filename_relative": "src/DragonCurve.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "DragonCurve",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            16,
                            17,
                            18,
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60,
                            61,
                            62,
                            63,
                            64,
                            65,
                            66,
                            67,
                            68,
                            69,
                            70,
                            71,
                            72,
                            73,
                            74,
                            75,
                            76,
                            77,
                            78,
                            79,
                            80,
                            81,
                            82,
                            83,
                            84,
                            85,
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95,
                            96,
                            97,
                            98,
                            99,
                            100,
                            101,
                            102,
                            103,
                            104,
                            105,
                            106,
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137,
                            138,
                            139,
                            140,
                            141,
                            142,
                            143,
                            144,
                            145,
                            146,
                            147,
                            148,
                            149,
                            150,
                            151,
                            152,
                            153,
                            154,
                            155,
                            156,
                            157,
                            158,
                            159,
                            160,
                            161,
                            162,
                            163,
                            164,
                            165,
                            166,
                            167,
                            168,
                            169,
                            170,
                            171,
                            172,
                            173,
                            174,
                            175,
                            176,
                            177,
                            178,
                            179,
                            180,
                            181,
                            182,
                            183,
                            184,
                            185,
                            186,
                            187,
                            188,
                            189,
                            190,
                            191,
                            192,
                            193,
                            194,
                            195,
                            196,
                            197,
                            198,
                            199,
                            200,
                            201,
                            202,
                            203,
                            204,
                            205,
                            206,
                            207,
                            208,
                            209,
                            210,
                            211,
                            212,
                            213,
                            214,
                            215,
                            216,
                            217,
                            218,
                            219,
                            220,
                            221,
                            222,
                            223,
                            224,
                            225,
                            226,
                            227,
                            228,
                            229,
                            230,
                            231,
                            232,
                            233,
                            234,
                            235,
                            236,
                            237,
                            238,
                            239,
                            240,
                            241,
                            242,
                            243,
                            244,
                            245,
                            246,
                            247,
                            248,
                            249,
                            250,
                            251,
                            252,
                            253,
                            254,
                            255,
                            256,
                            257,
                            258,
                            259,
                            260,
                            261,
                            262,
                            263,
                            264,
                            265,
                            266,
                            267,
                            268,
                            269,
                            270,
                            271,
                            272,
                            273,
                            274,
                            275,
                            276,
                            277,
                            278,
                            279,
                            280,
                            281,
                            282,
                            283,
                            284,
                            285,
                            286,
                            287,
                            288,
                            289,
                            290,
                            291,
                            292,
                            293,
                            294,
                            295,
                            296,
                            297,
                            298,
                            299,
                            300,
                            301,
                            302,
                            303,
                            304,
                            305,
                            306,
                            307,
                            308,
                            309,
                            310,
                            311,
                            312,
                            313,
                            314,
                            315,
                            316,
                            317,
                            318,
                            319,
                            320,
                            321,
                            322,
                            323,
                            324,
                            325,
                            326,
                            327,
                            328,
                            329,
                            330,
                            331,
                            332,
                            333,
                            334,
                            335,
                            336,
                            337,
                            338,
                            339,
                            340,
                            341,
                            342,
                            343
                        ],
                        "start": 601,
                        "length": 11469,
                        "ending_column": 1,
                        "is_dependency": false,
                        "filename_short": "src/DragonCurve.sol",
                        "starting_column": 70,
                        "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                        "filename_relative": "src/DragonCurve.sol"
                    }
                },
                "signature": "refundFrom(address,uint256)"
            }
        },
        {
            "name": "(success,None) = msg.sender.call{value: publicPrice}()",
            "type": "node",
            "source_mapping": {
                "lines": [
                    168,
                    169
                ],
                "start": 6266,
                "length": 58,
                "ending_column": 38,
                "is_dependency": false,
                "filename_short": "src/DragonCurve.sol",
                "starting_column": 22,
                "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                "filename_relative": "src/DragonCurve.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "refundFrom",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            162,
                            163,
                            164,
                            165,
                            166,
                            167,
                            168,
                            169,
                            170,
                            171,
                            172
                        ],
                        "start": 6123,
                        "length": 329,
                        "ending_column": 24,
                        "is_dependency": false,
                        "filename_short": "src/DragonCurve.sol",
                        "starting_column": 13,
                        "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                        "filename_relative": "src/DragonCurve.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "DragonCurve",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    16,
                                    17,
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131,
                                    132,
                                    133,
                                    134,
                                    135,
                                    136,
                                    137,
                                    138,
                                    139,
                                    140,
                                    141,
                                    142,
                                    143,
                                    144,
                                    145,
                                    146,
                                    147,
                                    148,
                                    149,
                                    150,
                                    151,
                                    152,
                                    153,
                                    154,
                                    155,
                                    156,
                                    157,
                                    158,
                                    159,
                                    160,
                                    161,
                                    162,
                                    163,
                                    164,
                                    165,
                                    166,
                                    167,
                                    168,
                                    169,
                                    170,
                                    171,
                                    172,
                                    173,
                                    174,
                                    175,
                                    176,
                                    177,
                                    178,
                                    179,
                                    180,
                                    181,
                                    182,
                                    183,
                                    184,
                                    185,
                                    186,
                                    187,
                                    188,
                                    189,
                                    190,
                                    191,
                                    192,
                                    193,
                                    194,
                                    195,
                                    196,
                                    197,
                                    198,
                                    199,
                                    200,
                                    201,
                                    202,
                                    203,
                                    204,
                                    205,
                                    206,
                                    207,
                                    208,
                                    209,
                                    210,
                                    211,
                                    212,
                                    213,
                                    214,
                                    215,
                                    216,
                                    217,
                                    218,
                                    219,
                                    220,
                                    221,
                                    222,
                                    223,
                                    224,
                                    225,
                                    226,
                                    227,
                                    228,
                                    229,
                                    230,
                                    231,
                                    232,
                                    233,
                                    234,
                                    235,
                                    236,
                                    237,
                                    238,
                                    239,
                                    240,
                                    241,
                                    242,
                                    243,
                                    244,
                                    245,
                                    246,
                                    247,
                                    248,
                                    249,
                                    250,
                                    251,
                                    252,
                                    253,
                                    254,
                                    255,
                                    256,
                                    257,
                                    258,
                                    259,
                                    260,
                                    261,
                                    262,
                                    263,
                                    264,
                                    265,
                                    266,
                                    267,
                                    268,
                                    269,
                                    270,
                                    271,
                                    272,
                                    273,
                                    274,
                                    275,
                                    276,
                                    277,
                                    278,
                                    279,
                                    280,
                                    281,
                                    282,
                                    283,
                                    284,
                                    285,
                                    286,
                                    287,
                                    288,
                                    289,
                                    290,
                                    291,
                                    292,
                                    293,
                                    294,
                                    295,
                                    296,
                                    297,
                                    298,
                                    299,
                                    300,
                                    301,
                                    302,
                                    303,
                                    304,
                                    305,
                                    306,
                                    307,
                                    308,
                                    309,
                                    310,
                                    311,
                                    312,
                                    313,
                                    314,
                                    315,
                                    316,
                                    317,
                                    318,
                                    319,
                                    320,
                                    321,
                                    322,
                                    323,
                                    324,
                                    325,
                                    326,
                                    327,
                                    328,
                                    329,
                                    330,
                                    331,
                                    332,
                                    333,
                                    334,
                                    335,
                                    336,
                                    337,
                                    338,
                                    339,
                                    340,
                                    341,
                                    342,
                                    343
                                ],
                                "start": 601,
                                "length": 11469,
                                "ending_column": 1,
                                "is_dependency": false,
                                "filename_short": "src/DragonCurve.sol",
                                "starting_column": 70,
                                "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                                "filename_relative": "src/DragonCurve.sol"
                            }
                        },
                        "signature": "refundFrom(address,uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "src/DragonCurve.sol",
            "name": "refundFrom",
            "type": "function",
            "lines": [
                162,
                163,
                164,
                165,
                166,
                167,
                168,
                169,
                170,
                171,
                172
            ]
        },
        {
            "file": "src/DragonCurve.sol",
            "name": "(success,None) = msg.sender.call{value: publicPrice}()",
            "type": "node",
            "lines": [
                168,
                169
            ]
        }
    ],
    "description": "DragonCurve.refundFrom(address,uint256) (src/DragonCurve.sol#162-172) sends eth to arbitrary user\n\tDangerous calls:\n\t- (success,None) = msg.sender.call{value: publicPrice}() (src/DragonCurve.sol#168-169)"
}
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": "0xc87b56dd",
            "selector": "0xc87b56dd",
            "calldata_variants": [
                "0xc87b56dd",
                "0xc87b56dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe985e9c5",
            "selector": "0xe985e9c5",
            "calldata_variants": [
                "0xe985e9c5",
                "0xe985e9c50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf489e496",
            "selector": "0xf489e496",
            "calldata_variants": [
                "0xf489e496",
                "0xf489e4960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfb796e6c",
            "selector": "0xfb796e6c",
            "calldata_variants": [
                "0xfb796e6c",
                "0xfb796e6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc776f6d",
            "selector": "0xfc776f6d",
            "calldata_variants": [
                "0xfc776f6d",
                "0xfc776f6d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb55cd04b",
            "selector": "0xb55cd04b",
            "calldata_variants": [
                "0xb55cd04b",
                "0xb55cd04b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb7c0b8e8",
            "selector": "0xb7c0b8e8",
            "calldata_variants": [
                "0xb7c0b8e8",
                "0xb7c0b8e80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 2918,
            "type": "msg_sender_eq_const",
            "value": 1.712761232392164e+47
        },
        {
            "pc": 4832,
            "type": "tx_origin_used"
        },
        {
            "pc": 2890,
            "type": "msg_sender_eq_const",
            "value": "0x1e0049783f008a0085193e00003d00cd54003c71"
        },
        {
            "pc": 4830,
            "type": "tx_origin_used"
        }
    ]
}
high other slither DragonCurve.refund(uint256) (src/DragonCurve.sol#156-161) sends eth to arbitrary user 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "arbitrary-send-eth",
    "elements": [
        {
            "name": "refund",
            "type": "function",
            "source_mapping": {
                "lines": [
                    156,
                    157,
                    158,
                    159,
                    160,
                    161
                ],
                "start": 5760,
                "length": 316,
                "ending_column": 35,
                "is_dependency": false,
                "filename_short": "src/DragonCurve.sol",
                "starting_column": 16,
                "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                "filename_relative": "src/DragonCurve.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "DragonCurve",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            16,
                            17,
                            18,
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60,
                            61,
                            62,
                            63,
                            64,
                            65,
                            66,
                            67,
                            68,
                            69,
                            70,
                            71,
                            72,
                            73,
                            74,
                            75,
                            76,
                            77,
                            78,
                            79,
                            80,
                            81,
                            82,
                            83,
                            84,
                            85,
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95,
                            96,
                            97,
                            98,
                            99,
                            100,
                            101,
                            102,
                            103,
                            104,
                            105,
                            106,
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137,
                            138,
                            139,
                            140,
                            141,
                            142,
                            143,
                            144,
                            145,
                            146,
                            147,
                            148,
                            149,
                            150,
                            151,
                            152,
                            153,
                            154,
                            155,
                            156,
                            157,
                            158,
                            159,
                            160,
                            161,
                            162,
                            163,
                            164,
                            165,
                            166,
                            167,
                            168,
                            169,
                            170,
                            171,
                            172,
                            173,
                            174,
                            175,
                            176,
                            177,
                            178,
                            179,
                            180,
                            181,
                            182,
                            183,
                            184,
                            185,
                            186,
                            187,
                            188,
                            189,
                            190,
                            191,
                            192,
                            193,
                            194,
                            195,
                            196,
                            197,
                            198,
                            199,
                            200,
                            201,
                            202,
                            203,
                            204,
                            205,
                            206,
                            207,
                            208,
                            209,
                            210,
                            211,
                            212,
                            213,
                            214,
                            215,
                            216,
                            217,
                            218,
                            219,
                            220,
                            221,
                            222,
                            223,
                            224,
                            225,
                            226,
                            227,
                            228,
                            229,
                            230,
                            231,
                            232,
                            233,
                            234,
                            235,
                            236,
                            237,
                            238,
                            239,
                            240,
                            241,
                            242,
                            243,
                            244,
                            245,
                            246,
                            247,
                            248,
                            249,
                            250,
                            251,
                            252,
                            253,
                            254,
                            255,
                            256,
                            257,
                            258,
                            259,
                            260,
                            261,
                            262,
                            263,
                            264,
                            265,
                            266,
                            267,
                            268,
                            269,
                            270,
                            271,
                            272,
                            273,
                            274,
                            275,
                            276,
                            277,
                            278,
                            279,
                            280,
                            281,
                            282,
                            283,
                            284,
                            285,
                            286,
                            287,
                            288,
                            289,
                            290,
                            291,
                            292,
                            293,
                            294,
                            295,
                            296,
                            297,
                            298,
                            299,
                            300,
                            301,
                            302,
                            303,
                            304,
                            305,
                            306,
                            307,
                            308,
                            309,
                            310,
                            311,
                            312,
                            313,
                            314,
                            315,
                            316,
                            317,
                            318,
                            319,
                            320,
                            321,
                            322,
                            323,
                            324,
                            325,
                            326,
                            327,
                            328,
                            329,
                            330,
                            331,
                            332,
                            333,
                            334,
                            335,
                            336,
                            337,
                            338,
                            339,
                            340,
                            341,
                            342,
                            343
                        ],
                        "start": 601,
                        "length": 11469,
                        "ending_column": 1,
                        "is_dependency": false,
                        "filename_short": "src/DragonCurve.sol",
                        "starting_column": 70,
                        "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                        "filename_relative": "src/DragonCurve.sol"
                    }
                },
                "signature": "refund(uint256)"
            }
        },
        {
            "name": "(success,None) = msg.sender.call{value: publicPrice}()",
            "type": "node",
            "source_mapping": {
                "lines": [
                    157,
                    158
                ],
                "start": 5890,
                "length": 58,
                "ending_column": 36,
                "is_dependency": false,
                "filename_short": "src/DragonCurve.sol",
                "starting_column": 27,
                "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                "filename_relative": "src/DragonCurve.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "refund",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            156,
                            157,
                            158,
                            159,
                            160,
                            161
                        ],
                        "start": 5760,
                        "length": 316,
                        "ending_column": 35,
                        "is_dependency": false,
                        "filename_short": "src/DragonCurve.sol",
                        "starting_column": 16,
                        "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                        "filename_relative": "src/DragonCurve.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "DragonCurve",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    16,
                                    17,
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131,
                                    132,
                                    133,
                                    134,
                                    135,
                                    136,
                                    137,
                                    138,
                                    139,
                                    140,
                                    141,
                                    142,
                                    143,
                                    144,
                                    145,
                                    146,
                                    147,
                                    148,
                                    149,
                                    150,
                                    151,
                                    152,
                                    153,
                                    154,
                                    155,
                                    156,
                                    157,
                                    158,
                                    159,
                                    160,
                                    161,
                                    162,
                                    163,
                                    164,
                                    165,
                                    166,
                                    167,
                                    168,
                                    169,
                                    170,
                                    171,
                                    172,
                                    173,
                                    174,
                                    175,
                                    176,
                                    177,
                                    178,
                                    179,
                                    180,
                                    181,
                                    182,
                                    183,
                                    184,
                                    185,
                                    186,
                                    187,
                                    188,
                                    189,
                                    190,
                                    191,
                                    192,
                                    193,
                                    194,
                                    195,
                                    196,
                                    197,
                                    198,
                                    199,
                                    200,
                                    201,
                                    202,
                                    203,
                                    204,
                                    205,
                                    206,
                                    207,
                                    208,
                                    209,
                                    210,
                                    211,
                                    212,
                                    213,
                                    214,
                                    215,
                                    216,
                                    217,
                                    218,
                                    219,
                                    220,
                                    221,
                                    222,
                                    223,
                                    224,
                                    225,
                                    226,
                                    227,
                                    228,
                                    229,
                                    230,
                                    231,
                                    232,
                                    233,
                                    234,
                                    235,
                                    236,
                                    237,
                                    238,
                                    239,
                                    240,
                                    241,
                                    242,
                                    243,
                                    244,
                                    245,
                                    246,
                                    247,
                                    248,
                                    249,
                                    250,
                                    251,
                                    252,
                                    253,
                                    254,
                                    255,
                                    256,
                                    257,
                                    258,
                                    259,
                                    260,
                                    261,
                                    262,
                                    263,
                                    264,
                                    265,
                                    266,
                                    267,
                                    268,
                                    269,
                                    270,
                                    271,
                                    272,
                                    273,
                                    274,
                                    275,
                                    276,
                                    277,
                                    278,
                                    279,
                                    280,
                                    281,
                                    282,
                                    283,
                                    284,
                                    285,
                                    286,
                                    287,
                                    288,
                                    289,
                                    290,
                                    291,
                                    292,
                                    293,
                                    294,
                                    295,
                                    296,
                                    297,
                                    298,
                                    299,
                                    300,
                                    301,
                                    302,
                                    303,
                                    304,
                                    305,
                                    306,
                                    307,
                                    308,
                                    309,
                                    310,
                                    311,
                                    312,
                                    313,
                                    314,
                                    315,
                                    316,
                                    317,
                                    318,
                                    319,
                                    320,
                                    321,
                                    322,
                                    323,
                                    324,
                                    325,
                                    326,
                                    327,
                                    328,
                                    329,
                                    330,
                                    331,
                                    332,
                                    333,
                                    334,
                                    335,
                                    336,
                                    337,
                                    338,
                                    339,
                                    340,
                                    341,
                                    342,
                                    343
                                ],
                                "start": 601,
                                "length": 11469,
                                "ending_column": 1,
                                "is_dependency": false,
                                "filename_short": "src/DragonCurve.sol",
                                "starting_column": 70,
                                "filename_absolute": "/tmp/slither-56kd38pa/src/DragonCurve.sol",
                                "filename_relative": "src/DragonCurve.sol"
                            }
                        },
                        "signature": "refund(uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "src/DragonCurve.sol",
            "name": "refund",
            "type": "function",
            "lines": [
                156,
                157,
                158,
                159,
                160,
                161
            ]
        },
        {
            "file": "src/DragonCurve.sol",
            "name": "(success,None) = msg.sender.call{value: publicPrice}()",
            "type": "node",
            "lines": [
                157,
                158
            ]
        }
    ],
    "description": "DragonCurve.refund(uint256) (src/DragonCurve.sol#156-161) sends eth to arbitrary user\n\tDangerous calls:\n\t- (success,None) = msg.sender.call{value: publicPrice}() (src/DragonCurve.sol#157-158)"
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xb283fa5cf841128eeda6cbefebdef91a9322f5c7dabd9247be3d6198b185d931
call_targets: 0x000000000000c94ed90488d3ac687a2673c2b6fb
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb283fa5cf841128eeda6cbefebdef91a9322f5c7dabd9247be3d6198b185d931",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x000000000000c94ed90488d3ac687a2673c2b6fb"
    ],
    "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": "0xc87b56dd",
            "selector": "0xc87b56dd",
            "calldata_variants": [
                "0xc87b56dd",
                "0xc87b56dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe985e9c5",
            "selector": "0xe985e9c5",
            "calldata_variants": [
                "0xe985e9c5",
                "0xe985e9c50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf489e496",
            "selector": "0xf489e496",
            "calldata_variants": [
                "0xf489e496",
                "0xf489e4960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfb796e6c",
            "selector": "0xfb796e6c",
            "calldata_variants": [
                "0xfb796e6c",
                "0xfb796e6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc776f6d",
            "selector": "0xfc776f6d",
            "calldata_variants": [
                "0xfc776f6d",
                "0xfc776f6d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb55cd04b",
            "selector": "0xb55cd04b",
            "calldata_variants": [
                "0xb55cd04b",
                "0xb55cd04b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb7c0b8e8",
            "selector": "0xb7c0b8e8",
            "calldata_variants": [
                "0xb7c0b8e8",
                "0xb7c0b8e80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2996,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5252,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5492,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 7,
    "guards_detected": [
        {
            "pc": 2918,
            "type": "msg_sender_eq_const",
            "value": 1.712761232392164e+47
        },
        {
            "pc": 4832,
            "type": "tx_origin_used"
        },
        {
            "pc": 2890,
            "type": "msg_sender_eq_const",
            "value": "0x1e0049783f008a0085193e00003d00cd54003c71"
        },
        {
            "pc": 4830,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x5f5e517fefa19375d80828106a842c08c2eb92977267dd6c0b92474fd4e8eec3
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x5f5e517fefa19375d80828106a842c08c2eb92977267dd6c0b92474fd4e8eec3",
    "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": "0xc87b56dd",
            "selector": "0xc87b56dd",
            "calldata_variants": [
                "0xc87b56dd",
                "0xc87b56dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe985e9c5",
            "selector": "0xe985e9c5",
            "calldata_variants": [
                "0xe985e9c5",
                "0xe985e9c50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf489e496",
            "selector": "0xf489e496",
            "calldata_variants": [
                "0xf489e496",
                "0xf489e4960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfb796e6c",
            "selector": "0xfb796e6c",
            "calldata_variants": [
                "0xfb796e6c",
                "0xfb796e6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc776f6d",
            "selector": "0xfc776f6d",
            "calldata_variants": [
                "0xfc776f6d",
                "0xfc776f6d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb55cd04b",
            "selector": "0xb55cd04b",
            "calldata_variants": [
                "0xb55cd04b",
                "0xb55cd04b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb7c0b8e8",
            "selector": "0xb7c0b8e8",
            "calldata_variants": [
                "0xb7c0b8e8",
                "0xb7c0b8e80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 2
}
medium other slither OperatorFilterer._registerForOperatorFiltering(address,bool).functionSelector__registerForOperatorFiltering_asm_0 (lib/closedsea/src/OperatorFilterer.sol#30-31) is written in both 75 no
view
evidence_json
{
    "impact": "Medium",
    "detector": "write-after-write",
    "elements": [
        {
            "name": "functionSelector__registerForOperatorFiltering_asm_0",
            "type": "variable",
            "source_mapping": {
                "lines": [
                    30,
                    31
                ],
                "start": 1425,
                "length": 16,
                "ending_column": 3,
                "is_dependency": true,
                "filename_short": "lib/closedsea/src/OperatorFilterer.sol",
                "starting_column": 7,
                "filename_absolute": "/tmp/slither-56kd38pa/lib/closedsea/src/OperatorFilterer.sol",
                "filename_relative": "lib/closedsea/src/OperatorFilterer.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "_registerForOperatorFiltering",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60
                        ],
                        "start": 1213,
                        "length": 1773,
                        "ending_column": 74,
                        "is_dependency": true,
                        "filename_short": "lib/closedsea/src/OperatorFilterer.sol",
                        "starting_column": 68,
                        "filename_absolute": "/tmp/slither-56kd38pa/lib/closedsea/src/OperatorFilterer.sol",
                        "filename_relative": "lib/closedsea/src/OperatorFilterer.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "OperatorFilterer",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    8,
                                    9,
                                    10,
                                    11,
                                    12,
                                    13,
                                    14,
                                    15,
                                    16,
                                    17,
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122
                                ],
                                "start": 329,
                                "length": 5282,
                                "ending_column": 39,
                                "is_dependency": true,
                                "filename_short": "lib/closedsea/src/OperatorFilterer.sol",
                                "starting_column": 62,
                                "filename_absolute": "/tmp/slither-56kd38pa/lib/closedsea/src/OperatorFilterer.sol",
                                "filename_relative": "lib/closedsea/src/OperatorFilterer.sol"
                            }
                        },
                        "signature": "_registerForOperatorFiltering(address,bool)"
                    }
                }
            }
        },
        {
            "name": "functionSelector__registerForOperatorFiltering_asm_0 = 0x4420e486",
            "type": "node",
            "source_mapping": {
                "lines": [
                    37,
                    38
                ],
                "start": 1818,
                "length": 30,
                "ending_column": 14,
                "is_dependency": true,
                "filename_short": "lib/closedsea/src/OperatorFilterer.sol",
                "starting_column": 45,
                "filename_absolute": "/tmp/slither-56kd38pa/lib/closedsea/src/OperatorFilterer.sol",
                "filename_relative": "lib/closedsea/src/OperatorFilterer.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "_registerForOperatorFiltering",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60
                        ],
                        "start": 1213,
                        "length": 1773,
                        "ending_column": 74,
                        "is_dependency": true,
                        "filename_short": "lib/closedsea/src/OperatorFilterer.sol",
                        "starting_column": 68,
                        "filename_absolute": "/tmp/slither-56kd38pa/lib/closedsea/src/OperatorFilterer.sol",
                        "filename_relative": "lib/closedsea/src/OperatorFilterer.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "OperatorFilterer",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    8,
                                    9,
                                    10,
                                    11,
                                    12,
                                    13,
                                    14,
                                    15,
                                    16,
                                    17,
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122
                                ],
                                "start": 329,
                                "length": 5282,
                                "ending_column": 39,
                                "is_dependency": true,
                                "filename_short": "lib/closedsea/src/OperatorFilterer.sol",
                                "starting_column": 62,
                                "filename_absolute": "/tmp/slither-56kd38pa/lib/closedsea/src/OperatorFilterer.sol",
                                "filename_relative": "lib/closedsea/src/OperatorFilterer.sol"
                            }
                        },
                        "signature": "_registerForOperatorFiltering(address,bool)"
                    }
                }
            }
        },
        {
            "name": "functionSelector__registerForOperatorFiltering_asm_0 = 0xa0af2903",
            "type": "node",
            "source_mapping": {
                "lines": [
                    39,
                    40,
                    41
                ],
                "start": 1933,
                "length": 30,
                "ending_column": 7,
                "is_dependency": true,
                "filename_short": "lib/closedsea/src/OperatorFilterer.sol",
                "starting_column": 23,
                "filename_absolute": "/tmp/slither-56kd38pa/lib/closedsea/src/OperatorFilterer.sol",
                "filename_relative": "lib/closedsea/src/OperatorFilterer.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "_registerForOperatorFiltering",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60
                        ],
                        "start": 1213,
                        "length": 1773,
                        "ending_column": 74,
                        "is_dependency": true,
                        "filename_short": "lib/closedsea/src/OperatorFilterer.sol",
                        "starting_column": 68,
                        "filename_absolute": "/tmp/slither-56kd38pa/lib/closedsea/src/OperatorFilterer.sol",
                        "filename_relative": "lib/closedsea/src/OperatorFilterer.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "OperatorFilterer",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    8,
                                    9,
                                    10,
                                    11,
                                    12,
                                    13,
                                    14,
                                    15,
                                    16,
                                    17,
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122
                                ],
                                "start": 329,
                                "length": 5282,
                                "ending_column": 39,
                                "is_dependency": true,
                                "filename_short": "lib/closedsea/src/OperatorFilterer.sol",
                                "starting_column": 62,
                                "filename_absolute": "/tmp/slither-56kd38pa/lib/closedsea/src/OperatorFilterer.sol",
                                "filename_relative": "lib/closedsea/src/OperatorFilterer.sol"
                            }
                        },
                        "signature": "_registerForOperatorFiltering(address,bool)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "lib/closedsea/src/OperatorFilterer.sol",
            "name": "functionSelector__registerForOperatorFiltering_asm_0",
            "type": "variable",
            "lines": [
                30,
                31
            ]
        },
        {
            "file": "lib/closedsea/src/OperatorFilterer.sol",
            "name": "functionSelector__registerForOperatorFiltering_asm_0 = 0x4420e486",
            "type": "node",
            "lines": [
                37,
                38
            ]
        },
        {
            "file": "lib/closedsea/src/OperatorFilterer.sol",
            "name": "functionSelector__registerForOperatorFiltering_asm_0 = 0xa0af2903",
            "type": "node",
            "lines": [
                39,
                40,
                41
            ]
        }
    ],
    "description": "OperatorFilterer._registerForOperatorFiltering(address,bool).functionSelector__registerForOperatorFiltering_asm_0 (lib/closedsea/src/OperatorFilterer.sol#30-31) is written in both\n\tfunctionSelector__registerForOperatorFiltering_asm_0 = 0x4420e486 (lib/closedsea/src/OperatorFilterer.sol#37-38)\n\tfunctionSelector__registerForOperatorFiltering_asm_0 = 0xa0af2903 (lib/closedsea/src/OperatorFilterer.sol#39-41)"
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xb283fa5cf841128eeda6cbefebdef91a9322f5c7dabd9247be3d6198b185d931
call_targets: 0x000000000000c94ed90488d3ac687a2673c2b6fb
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb283fa5cf841128eeda6cbefebdef91a9322f5c7dabd9247be3d6198b185d931",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x000000000000c94ed90488d3ac687a2673c2b6fb"
    ],
    "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": "0xc87b56dd",
            "selector": "0xc87b56dd",
            "calldata_variants": [
                "0xc87b56dd",
                "0xc87b56dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe985e9c5",
            "selector": "0xe985e9c5",
            "calldata_variants": [
                "0xe985e9c5",
                "0xe985e9c50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf489e496",
            "selector": "0xf489e496",
            "calldata_variants": [
                "0xf489e496",
                "0xf489e4960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfb796e6c",
            "selector": "0xfb796e6c",
            "calldata_variants": [
                "0xfb796e6c",
                "0xfb796e6c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc776f6d",
            "selector": "0xfc776f6d",
            "calldata_variants": [
                "0xfc776f6d",
                "0xfc776f6d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb55cd04b",
            "selector": "0xb55cd04b",
            "calldata_variants": [
                "0xb55cd04b",
                "0xb55cd04b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb7c0b8e8",
            "selector": "0xb7c0b8e8",
            "calldata_variants": [
                "0xb7c0b8e8",
                "0xb7c0b8e80000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2996,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5252,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5492,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 7,
    "guards_detected": [
        {
            "pc": 2918,
            "type": "msg_sender_eq_const",
            "value": 1.712761232392164e+47
        },
        {
            "pc": 4832,
            "type": "tx_origin_used"
        },
        {
            "pc": 2890,
            "type": "msg_sender_eq_const",
            "value": "0x1e0049783f008a0085193e00003d00cd54003c71"
        },
        {
            "pc": 4830,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 7
}
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": 2
}