019bb004-9839-71fb-bf53-cdb271c42b17
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 39441 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 39442 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 39443 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 39444 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 39445 | capability.graph | complete | 1 / 3 | 3 months ago |
| 39446 | detector.run | complete | 1 / 3 | 3 months ago |
| 39447 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39522 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 39523 | tool.slither | complete | 1 / 2 | 3 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-q7j49dkq)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-q7j49dkq)
CrowdfundWithEditionsLogic.sendValue(address,uint256) (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#165-177) sends eth to arbitrary user
Dangerous calls:
- (success,None) = recipient.call{value: amount}() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#172)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations
CrowdfundWithEditionsStorage.operator (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#33) is never initialized. It is used in:
- CrowdfundWithEditionsLogic.closeFunding() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#127-139)
CrowdfundWithEditionsStorage.treasuryConfig (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#39) is never initialized. It is used in:
- CrowdfundWithEditionsLogic._withdraw() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#254-269)
CrowdfundWithEditionsStorage.fundingCap (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#42) is never initialized. It is used in:
- CrowdfundWithEditionsLogic._contribute(address,uint256,uint256) (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#199-252)
CrowdfundWithEditionsStorage.feePercentage (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#45) is never initialized. It is used in:
- CrowdfundWithEditionsLogic._withdraw() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#254-269)
CrowdfundWithEditionsStorage.operatorPercent (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#48) is never initialized. It is used in:
- CrowdfundWithEditionsLogic.closeFunding() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#127-139)
CrowdfundWithEditionsStorage.editions (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#58) is never initialized. It is used in:
- CrowdfundWithEditionsLogic.buyEdition(uint256,uint256,address) (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#181-196)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-state-variables
CrowdfundWithEditionsLogic.changeFundingRecipient(address).newFundingRecipient (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#144) lacks a zero-check on :
- fundingRecipient = newFundingRecipient (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#148)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
ERC20.initialize(uint256,address) (contracts/external/ERC20.sol#38-49) uses assembly
- INLINE ASM (contracts/external/ERC20.sol#40-44)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
CrowdfundWithEditionsLogic.tokensToValue(uint256) (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#112-118) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
Version constraint 0.8.6 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- VerbatimInvalidDeduplication
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables.
It is used by:
- 0.8.6 (contracts/external/ERC20.sol#2)
- 0.8.6 (contracts/external/interface/IERC20.sol#2)
- 0.8.6 (contracts/interface/ITreasuryConfig.sol#2)
- 0.8.6 (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#2)
- 0.8.6 (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#2)
- 0.8.6 (contracts/producers/crowdfunds/crowdfund-with-editions/interface/ICrowdfundWithEditions.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in CrowdfundWithEditionsLogic.sendValue(address,uint256) (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#165-177):
- (success,None) = recipient.call{value: amount}() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#172)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Variable CrowdfundWithEditionsStorage.reentrancy_status (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#30) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
CrowdfundWithEditionsStorage.editions (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#58) should be constant
CrowdfundWithEditionsStorage.feePercentage (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#45) should be constant
CrowdfundWithEditionsStorage.fundingCap (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#42) should be constant
CrowdfundWithEditionsStorage.operator (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#33) should be constant
CrowdfundWithEditionsStorage.operatorPercent (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#48) should be constant
CrowdfundWithEditionsStorage.treasuryConfig (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#39) should be constant
ERC20.name (contracts/external/ERC20.sol#14) should be constant
ERC20.symbol (contracts/external/ERC20.sol#17) should be constant
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant
. analyzed (7 contracts with 100 detectors), 21 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.8.6",
"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.6",
"install_stderr": null,
"install_stdout": "Version '0.8.6' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-q7j49dkq --allow-paths /tmp/slither-q7j49dkq,/tmp/slither-q7j49dkq/lib,/tmp/slither-q7j49dkq/src",
"remappings": [],
"source_files": [
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"contracts/external/ERC20.sol",
"contracts/producers/crowdfunds/crowdfund-with-editions/interface/ICrowdfundWithEditions.sol",
"contracts/interface/ITreasuryConfig.sol",
"contracts/external/interface/IERC20.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 21,
"workspace_hash": "eb0bb0657ec2646ac70bd8dc42b9badd4102c76c8fb1f090ffe7489fd40ccc9b",
"duration_seconds": 0.5230109691619873,
"solc_version_requested": "0.8.6"
}
{"no_findings":false,"summary":"Found 2 issues: unrestricted withdraw allows premature fund distribution and a reentrancy window in _withdraw lets a malicious treasury over-collect fees.","findings":[{"severity":"medium","category":"access_control","title":"Anyone can trigger withdrawals at any time, breaking funding cap and redemption backing","exploit_scenario":"An attacker (or any user) calls withdraw() during FUNDING or before closeFunding. This drains all ETH to treasury/fundingRecipient even while fundraising is still open. Because fundingCap checks rely on address(this).balance, the balance drop allows further contributions beyond the cap and mints additional tokens that are no longer backed by ETH, effectively breaking redemption expectations.","recommendation":"Restrict withdraw() to the operator and/or require status == TRADING (or a dedicated finalized state). Consider tracking totalRaised separately from contract balance so withdrawals cannot reset the cap logic.","evidence":"withdraw() is public and unguarded, and _withdraw() transfers the entire contract balance to treasury and fundingRecipient without checking status or access control.","locations":["contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:151","contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:254"]},{"severity":"low","category":"reentrancy","title":"Reentrancy in _withdraw allows treasury to collect multiple fees","exploit_scenario":"If the treasury address is a contract, it can reenter withdraw() from its fallback during the first fee transfer. Each reentrant call recomputes the fee on the remaining balance and transfers another fee before the fundingRecipient is paid, resulting in the treasury receiving more than the configured fee percentage.","recommendation":"Add nonReentrant to withdraw/_withdraw or restructure to use a checks-effects-interactions pattern with a stored payout amount, and avoid external calls before locking withdrawals.","evidence":"_withdraw() performs an external call to the treasury via sendValue() before finishing the withdrawal and has no reentrancy guard.","locations":["contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:254","contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:263"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-0gxkj6__
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb03f-e0ba-7f53-9ad0-d734039e3ad2
--------
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
**Preparing to read AUDIT_BUNDLE.txt**
exec
/bin/bash -lc ls in /tmp/codex-0gxkj6__ succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-0gxkj6__ succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/external/ERC20.sol
================================================================================
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
// import {ERC20Storage} from "./ERC20Storage.sol";
import {IERC20, IERC20Events} from "./interface/IERC20.sol";
/**
* @title ERC20 Implementation.
* @author MirrorXYZ
*/
contract ERC20 is IERC20, IERC20Events {
// ============ ERC20 Attributes ============
/// @notice EIP-20 token name for this token
string public override name;
thinking
**Identifying reentrancy and access control risks**
I’m analyzing the contract’s withdrawal logic, focusing on missing reentrancy guards and the public withdraw function lacking access or status checks, which can let anyone prematurely drain funds to fundingRecipient and treasury. This breaks fund caps and redemption guarantees, and enables griefing though not direct theft. I also see risks from reentrancy inside withdraw via external calls, and potential issues with uninitialized storage and proxy upgrade patterns.
thinking
**Evaluating contribution and redemption logic intricacies**
I’m reviewing how over-cap contributions interact with edition purchases and token minting, noting that failed edition buys revert contributions gracefully. I see that redeem is properly guarded against reentrancy, but withdraw is not, allowing reentrant drains during redemption or contribution via external calls. The public, unrestricted withdraw permits premature fund draining that breaks funding caps and redemption guarantees, though funds go only to configured recipients. I’m also inspecting upgradeability limits due to constructor-only initialization and subtle nuances in fee computation under reentrancy.
thinking
**Summarizing key access control and reentrancy issues**
I’m organizing findings around withdraw’s missing access control allowing premature draining and griefing, plus reentrancy enabling treasury to overcollect fees by reentering withdraw. I also note configuration risks like unchecked fee percentage causing potential withdraw failures, but no immediate exploits. These highlight medium-severity concerns mainly around accounting and external call patterns.
exec
/bin/bash -lc 'nl -ba contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol' in /tmp/codex-0gxkj6__ succeeded in 27ms:
1 // SPDX-License-Identifier: GPL-3.0-or-later
2 pragma solidity 0.8.6;
3
4 import {CrowdfundWithEditionsStorage} from "./CrowdfundWithEditionsStorage.sol";
5 import {ERC20} from "../../../external/ERC20.sol";
6 import {ICrowdfundWithEditions} from "./interface/ICrowdfundWithEditions.sol";
7 import {ITreasuryConfig} from "../../../interface/ITreasuryConfig.sol";
8
9 /**
10 * @title CrowdfundWithEditionsLogic
11 * @author MirrorXYZ
12 *
13 * Crowdfund the creation of NFTs by issuing ERC20 tokens that
14 * can be redeemed for the underlying value of the NFT once sold.
15 */
16 contract CrowdfundWithEditionsLogic is CrowdfundWithEditionsStorage, ERC20 {
17 // ============ Events ============
18
19 event ReceivedERC721(uint256 tokenId, address sender);
20 event Contribution(address contributor, uint256 amount);
thinking
**Preparing vulnerability summary JSON**
codex
{"no_findings":false,"summary":"Found 2 issues: unrestricted withdraw allows premature fund distribution and a reentrancy window in _withdraw lets a malicious treasury over-collect fees.","findings":[{"severity":"medium","category":"access_control","title":"Anyone can trigger withdrawals at any time, breaking funding cap and redemption backing","exploit_scenario":"An attacker (or any user) calls withdraw() during FUNDING or before closeFunding. This drains all ETH to treasury/fundingRecipient even while fundraising is still open. Because fundingCap checks rely on address(this).balance, the balance drop allows further contributions beyond the cap and mints additional tokens that are no longer backed by ETH, effectively breaking redemption expectations.","recommendation":"Restrict withdraw() to the operator and/or require status == TRADING (or a dedicated finalized state). Consider tracking totalRaised separately from contract balance so withdrawals cannot reset the cap logic.","evidence":"withdraw() is public and unguarded, and _withdraw() transfers the entire contract balance to treasury and fundingRecipient without checking status or access control.","locations":["contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:151","contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:254"]},{"severity":"low","category":"reentrancy","title":"Reentrancy in _withdraw allows treasury to collect multiple fees","exploit_scenario":"If the treasury address is a contract, it can reenter withdraw() from its fallback during the first fee transfer. Each reentrant call recomputes the fee on the remaining balance and transfers another fee before the fundingRecipient is paid, resulting in the treasury receiving more than the configured fee percentage.","recommendation":"Add nonReentrant to withdraw/_withdraw or restructure to use a checks-effects-interactions pattern with a stored payout amount, and avoid external calls before locking withdrawals.","evidence":"_withdraw() performs an external call to the treasury via sendValue() before finishing the withdrawal and has no reentrancy guard.","locations":["contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:254","contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:263"]}]}
tokens used
23,163
{
"codex": {
"ran_at": "2026-01-12T03:32:45.274611+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 6,
"import_count": 6,
"first_party_contracts_count": 6
},
"summary": "Found 2 issues: unrestricted withdraw allows premature fund distribution and a reentrancy window in _withdraw lets a malicious treasury over-collect fees.",
"raw_final": {
"summary": "Found 2 issues: unrestricted withdraw allows premature fund distribution and a reentrancy window in _withdraw lets a malicious treasury over-collect fees.",
"findings": [
{
"title": "Anyone can trigger withdrawals at any time, breaking funding cap and redemption backing",
"category": "access_control",
"evidence": "withdraw() is public and unguarded, and _withdraw() transfers the entire contract balance to treasury and fundingRecipient without checking status or access control.",
"severity": "medium",
"locations": [
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:151",
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:254"
],
"recommendation": "Restrict withdraw() to the operator and/or require status == TRADING (or a dedicated finalized state). Consider tracking totalRaised separately from contract balance so withdrawals cannot reset the cap logic.",
"exploit_scenario": "An attacker (or any user) calls withdraw() during FUNDING or before closeFunding. This drains all ETH to treasury/fundingRecipient even while fundraising is still open. Because fundingCap checks rely on address(this).balance, the balance drop allows further contributions beyond the cap and mints additional tokens that are no longer backed by ETH, effectively breaking redemption expectations."
},
{
"title": "Reentrancy in _withdraw allows treasury to collect multiple fees",
"category": "reentrancy",
"evidence": "_withdraw() performs an external call to the treasury via sendValue() before finishing the withdrawal and has no reentrancy guard.",
"severity": "low",
"locations": [
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:254",
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:263"
],
"recommendation": "Add nonReentrant to withdraw/_withdraw or restructure to use a checks-effects-interactions pattern with a stored payout amount, and avoid external calls before locking withdrawals.",
"exploit_scenario": "If the treasury address is a contract, it can reenter withdraw() from its fallback during the first fee transfer. Each reentrant call recomputes the fee on the remaining balance and transfers another fee before the fundingRecipient is paid, resulting in the treasury receiving more than the configured fee percentage."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x01a1 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x7b4044a0 00000019: GT 0000001a: PUSH2 0x00e1 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xb8ddbcb3 00000024: GT 00000025: PUSH2 0x008a 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xda35a26f 0000002f: GT 00000030: PUSH2 0x0064 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xda35a26f 0000003a: EQ 0000003b: PUSH2 0x047d 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xdb006a75 00000045: EQ 00000046: PUSH2 0x049d 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xdd62ed3e 00000050: EQ 00000051: PUSH2 0x04bd 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xe3b2594f 0000005b: EQ 0000005c: PUSH2 0x04f5 0000005f: JUMPI 00000060: PUSH1 0x00 00000062: DUP1 00000063: REVERT 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xb8ddbcb3 0000006b: EQ 0000006c: PUSH2 0x0418 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xcfd7b0df 00000076: EQ 00000077: PUSH2 0x043d 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xda046b67 00000081: EQ 00000082: PUSH2 0x045d 00000085: JUMPI 00000086: PUSH1 0x00 00000088: DUP1 00000089: REVERT 0000008a: JUMPDEST 0000008b: DUP1 0000008c: PUSH4 0xa001ecdd 00000091: GT 00000092: PUSH2 0x00bb 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xa001ecdd 0000009c: EQ 0000009d: PUSH2 0x03cf 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xa08f793c 000000a7: EQ 000000a8: PUSH2 0x03e5 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xa9059cbb 000000b2: EQ 000000b3: PUSH2 0x03f8 000000b6: JUMPI 000000b7: PUSH1 0x00 000000b9: DUP1 000000ba: REVERT 000000bb: JUMPDEST 000000bc: DUP1 000000bd: PUSH4 0x7b4044a0 000000c2: EQ 000000c3: PUSH2 0x0384 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x95d89b41 000000cd: EQ 000000ce: PUSH2 0x039a 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x9744b8dc 000000d8: EQ 000000d9: PUSH2 0x03af 000000dc: JUMPI 000000dd: PUSH1 0x00 000000df: DUP1 000000e0: REVERT 000000e1: JUMPDEST 000000e2: DUP1 000000e3: PUSH4 0x2f87e4be 000000e8: GT 000000e9: PUSH2 0x014e 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0x31a3a506 000000f3: GT 000000f4: PUSH2 0x0128 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0x31a3a506 000000fe: EQ 000000ff: PUSH2 0x030b 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x3ccfd60b 00000109: EQ 0000010a: PUSH2 0x0322 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x570ca735 00000114: EQ 00000115: PUSH2 0x0337 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x70a08231 0000011f: EQ 00000120: PUSH2 0x0357 00000123: JUMPI 00000124: PUSH1 0x00 00000126: DUP1 00000127: REVERT 00000128: JUMPDEST 00000129: DUP1 0000012a: PUSH4 0x2f87e4be 0000012f: EQ 00000130: PUSH2 0x02a4 00000133: JUMPI 00000134: DUP1 00000135: PUSH4 0x2ff284c2 0000013a: EQ 0000013b: PUSH2 0x02c4 0000013e: JUMPI 0000013f: DUP1 00000140: PUSH4 0x313ce567 00000145: EQ 00000146: PUSH2 0x02e4 00000149: JUMPI 0000014a: PUSH1 0x00 0000014c: DUP1 0000014d: REVERT 0000014e: JUMPDEST 0000014f: DUP1 00000150: PUSH4 0x1bb534ba 00000155: GT 00000156: PUSH2 0x017f 00000159: JUMPI 0000015a: DUP1 0000015b: PUSH4 0x1bb534ba 00000160: EQ 00000161: PUSH2 0x0225 00000164: JUMPI 00000165: DUP1 00000166: PUSH4 0x200d2ed2 0000016b: EQ 0000016c: PUSH2 0x025d 0000016f: JUMPI 00000170: DUP1 00000171: PUSH4 0x23b872dd 00000176: EQ 00000177: PUSH2 0x0284 0000017a: JUMPI 0000017b: PUSH1 0x00 0000017d: DUP1 0000017e: REVERT 0000017f: JUMPDEST 00000180: DUP1 00000181: PUSH4 0x06fdde03 00000186: EQ 00000187: PUSH2 0x01a6 0000018a: JUMPI 0000018b: DUP1 0000018c: PUSH4 0x095ea7b3 00000191: EQ 00000192: PUSH2 0x01d1 00000195: JUMPI 00000196: DUP1 00000197: PUSH4 0x18160ddd 0000019c: EQ 0000019d: PUSH2 0x0201 000001a0: JUMPI 000001a1: JUMPDEST 000001a2: PUSH1 0x00 000001a4: DUP1 000001a5: REVERT 000001a6: JUMPDEST 000001a7: CALLVALUE 000001a8: DUP1 000001a9: ISZERO 000001aa: PUSH2 0x01b2 000001ad: JUMPI 000001ae: PUSH1 0x00 000001b0: DUP1 000001b1: REVERT 000001b2: JUMPDEST 000001b3: POP 000001b4: PUSH2 0x01bb 000001b7: PUSH2 0x050b 000001ba: JUMP 000001bb: JUMPDEST 000001bc: PUSH1 0x40 000001be: MLOAD 000001bf: PUSH2 0x01c8 000001c2: SWAP2 000001c3: SWAP1 000001c4: PUSH2 0x1707 000001c7: JUMP 000001c8: JUMPDEST 000001c9: PUSH1 0x40 000001cb: MLOAD 000001cc: DUP1 000001cd: SWAP2 000001ce: SUB 000001cf: SWAP1 000001d0: RETURN 000001d1: JUMPDEST 000001d2: CALLVALUE 000001d3: DUP1 000001d4: ISZERO 000001d5: PUSH2 0x01dd 000001d8: JUMPI 000001d9: PUSH1 0x00 000001db: DUP1 000001dc: REVERT 000001dd: JUMPDEST 000001de: POP 000001df: PUSH2 0x01f1 000001e2: PUSH2 0x01ec 000001e5: CALLDATASIZE 000001e6: PUSH1 0x04 000001e8: PUSH2 0x163a 000001eb: JUMP 000001ec: JUMPDEST 000001ed: PUSH2 0x0599 000001f0: JUMP 000001f1: JUMPDEST 000001f2: PUSH1 0x40 000001f4: MLOAD 000001f5: SWAP1 000001f6: ISZERO 000001f7: ISZERO 000001f8: DUP2 000001f9: MSTORE 000001fa: PUSH1 0x20 000001fc: ADD 000001fd: PUSH2 0x01c8 00000200: JUMP 00000201: JUMPDEST 00000202: CALLVALUE 00000203: DUP1 00000204: ISZERO 00000205: PUSH2 0x020d 00000208: JUMPI 00000209: PUSH1 0x00 0000020b: DUP1 0000020c: REVERT 0000020d: JUMPDEST 0000020e: POP 0000020f: PUSH2 0x0217 00000212: PUSH1 0x0a 00000214: SLOAD 00000215: DUP2 00000216: JUMP 00000217: JUMPDEST 00000218: PUSH1 0x40 0000021a: MLOAD 0000021b: SWAP1 0000021c: DUP2 0000021d: MSTORE 0000021e: PUSH1 0x20 00000220: ADD 00000221: PUSH2 0x01c8 00000224: JUMP 00000225: JUMPDEST 00000226: CALLVALUE 00000227: DUP1 00000228: ISZERO 00000229: PUSH2 0x0231 0000022c: JUMPI 0000022d: PUSH1 0x00 0000022f: DUP1 00000230: REVERT 00000231: JUMPDEST 00000232: POP 00000233: PUSH1 0x02 00000235: SLOAD 00000236: PUSH2 0x0245 00000239: SWAP1 0000023a: PUSH1 0x01 0000023c: PUSH1 0x01 0000023e: PUSH1 0xa0 00000240: SHL 00000241: SUB 00000242: AND 00000243: DUP2 00000244: JUMP 00000245: JUMPDEST 00000246: PUSH1 0x40 00000248: MLOAD 00000249: PUSH1 0x01 0000024b: PUSH1 0x01 0000024d: PUSH1 0xa0 0000024f: SHL 00000250: SUB 00000251: SWAP1 00000252: SWAP2 00000253: AND 00000254: DUP2 00000255: MSTORE 00000256: PUSH1 0x20 00000258: ADD 00000259: PUSH2 0x01c8 0000025c: JUMP 0000025d: JUMPDEST 0000025e: CALLVALUE 0000025f: DUP1 00000260: ISZERO 00000261: PUSH2 0x0269 00000264: JUMPI 00000265: PUSH1 0x00 00000267: DUP1 00000268: REVERT 00000269: JUMPDEST 0000026a: POP 0000026b: PUSH1 0x07 0000026d: SLOAD 0000026e: PUSH2 0x0277 00000271: SWAP1 00000272: PUSH1 0xff 00000274: AND 00000275: DUP2 00000276: JUMP 00000277: JUMPDEST 00000278: PUSH1 0x40 0000027a: MLOAD 0000027b: PUSH2 0x01c8 0000027e: SWAP2 0000027f: SWAP1 00000280: PUSH2 0x16df 00000283: JUMP 00000284: JUMPDEST 00000285: CALLVALUE 00000286: DUP1 00000287: ISZERO 00000288: PUSH2 0x0290 0000028b: JUMPI 0000028c: PUSH1 0x00 0000028e: DUP1 0000028f: REVERT 00000290: JUMPDEST 00000291: POP 00000292: PUSH2 0x01f1 00000295: PUSH2 0x029f 00000298: CALLDATASIZE 00000299: PUSH1 0x04 0000029b: PUSH2 0x15f9 0000029e: JUMP 0000029f: JUMPDEST 000002a0: PUSH2 0x05af 000002a3: JUMP 000002a4: JUMPDEST 000002a5: CALLVALUE 000002a6: DUP1 000002a7: ISZERO 000002a8: PUSH2 0x02b0 000002ab: JUMPI 000002ac: PUSH1 0x00 000002ae: DUP1 000002af: REVERT 000002b0: JUMPDEST 000002b1: POP 000002b2: PUSH2 0x0217 000002b5: PUSH2 0x02bf 000002b8: CALLDATASIZE 000002b9: PUSH1 0x04 000002bb: PUSH2 0x1666 000002be: JUMP 000002bf: JUMPDEST 000002c0: PUSH2 0x06b5 000002c3: JUMP 000002c4: JUMPDEST 000002c5: CALLVALUE 000002c6: DUP1 000002c7: ISZERO 000002c8: PUSH2 0x02d0 000002cb: JUMPI 000002cc: PUSH1 0x00 000002ce: DUP1 000002cf: REVERT 000002d0: JUMPDEST 000002d1: POP 000002d2: PUSH2 0x0217 000002d5: PUSH2 0x02df 000002d8: CALLDATASIZE 000002d9: PUSH1 0x04 000002db: PUSH2 0x16bd 000002de: JUMP 000002df: JUMPDEST 000002e0: PUSH2 0x06d5 000002e3: JUMP 000002e4: JUMPDEST 000002e5: CALLVALUE 000002e6: DUP1 000002e7: ISZERO 000002e8: PUSH2 0x02f0 000002eb: JUMPI 000002ec: PUSH1 0x00 000002ee: DUP1 000002ef: REVERT 000002f0: JUMPDEST 000002f1: POP 000002f2: PUSH2 0x02f9 000002f5: PUSH1 0x12 000002f7: DUP2 000002f8: JUMP 000002f9: JUMPDEST 000002fa: PUSH1 0x40 000002fc: MLOAD 000002fd: PUSH1 0xff 000002ff: SWAP1 00000300: SWAP2 00000301: AND 00000302: DUP2 00000303: MSTORE 00000304: PUSH1 0x20 00000306: ADD 00000307: PUSH2 0x01c8 0000030a: JUMP 0000030b: JUMPDEST 0000030c: CALLVALUE 0000030d: DUP1 0000030e: ISZERO 0000030f: PUSH2 0x0317 00000312: JUMPI 00000313: PUSH1 0x00 00000315: DUP1 00000316: REVERT 00000317: JUMPDEST 00000318: POP 00000319: PUSH2 0x0320 0000031c: PUSH2 0x06f5 0000031f: JUMP 00000320: JUMPDEST 00000321: STOP 00000322: JUMPDEST 00000323: CALLVALUE 00000324: DUP1 00000325: ISZERO 00000326: PUSH2 0x032e 00000329: JUMPI 0000032a: PUSH1 0x00 0000032c: DUP1 0000032d: REVERT 0000032e: JUMPDEST 0000032f: POP 00000330: PUSH2 0x0320 00000333: PUSH2 0x0882 00000336: JUMP 00000337: JUMPDEST 00000338: CALLVALUE 00000339: DUP1 0000033a: ISZERO 0000033b: PUSH2 0x0343 0000033e: JUMPI 0000033f: PUSH1 0x00 00000341: DUP1 00000342: REVERT 00000343: JUMPDEST 00000344: POP 00000345: PUSH1 0x01 00000347: SLOAD 00000348: PUSH2 0x0245 0000034b: SWAP1 0000034c: PUSH1 0x01 0000034e: PUSH1 0x01 00000350: PUSH1 0xa0 00000352: SHL 00000353: SUB 00000354: AND 00000355: DUP2 00000356: JUMP 00000357: JUMPDEST 00000358: CALLVALUE 00000359: DUP1 0000035a: ISZERO 0000035b: PUSH2 0x0363 0000035e: JUMPI 0000035f: PUSH1 0x00 00000361: DUP1 00000362: REVERT 00000363: JUMPDEST 00000364: POP 00000365: PUSH2 0x0217 00000368: PUSH2 0x0372 0000036b: CALLDATASIZE 0000036c: PUSH1 0x04 0000036e: PUSH2 0x1551 00000371: JUMP 00000372: JUMPDEST 00000373: PUSH1 0x0b 00000375: PUSH1 0x20 00000377: MSTORE 00000378: PUSH1 0x00 0000037a: SWAP1 0000037b: DUP2 0000037c: MSTORE 0000037d: PUSH1 0x40 0000037f: SWAP1 00000380: KECCAK256 00000381: SLOAD 00000382: DUP2 00000383: JUMP 00000384: JUMPDEST 00000385: CALLVALUE 00000386: DUP1 00000387: ISZERO 00000388: PUSH2 0x0390 0000038b: JUMPI 0000038c: PUSH1 0x00 0000038e: DUP1 0000038f: REVERT 00000390: JUMPDEST 00000391: POP 00000392: PUSH2 0x0217 00000395: PUSH1 0x06 00000397: SLOAD 00000398: DUP2 00000399: JUMP 0000039a: JUMPDEST 0000039b: CALLVALUE 0000039c: DUP1 0000039d: ISZERO 0000039e: PUSH2 0x03a6 000003a1: JUMPI 000003a2: PUSH1 0x00 000003a4: DUP1 000003a5: REVERT 000003a6: JUMPDEST 000003a7: POP 000003a8: PUSH2 0x01bb 000003ab: PUSH2 0x088c 000003ae: JUMP 000003af: JUMPDEST 000003b0: CALLVALUE 000003b1: DUP1 000003b2: ISZERO 000003b3: PUSH2 0x03bb 000003b6: JUMPI 000003b7: PUSH1 0x00 000003b9: DUP1 000003ba: REVERT 000003bb: JUMPDEST 000003bc: POP 000003bd: PUSH2 0x0217 000003c0: PUSH2 0x03ca 000003c3: CALLDATASIZE 000003c4: PUSH1 0x04 000003c6: PUSH2 0x1666 000003c9: JUMP 000003ca: JUMPDEST 000003cb: PUSH2 0x0899 000003ce: JUMP 000003cf: JUMPDEST 000003d0: CALLVALUE 000003d1: DUP1 000003d2: ISZERO 000003d3: PUSH2 0x03db 000003d6: JUMPI 000003d7: PUSH1 0x00 000003d9: DUP1 000003da: REVERT 000003db: JUMPDEST 000003dc: POP 000003dd: PUSH2 0x0217 000003e0: PUSH1 0x05 000003e2: SLOAD 000003e3: DUP2 000003e4: JUMP 000003e5: JUMPDEST 000003e6: PUSH2 0x0320 000003e9: PUSH2 0x03f3 000003ec: CALLDATASIZE 000003ed: PUSH1 0x04 000003ef: PUSH2 0x158b 000003f2: JUMP 000003f3: JUMPDEST 000003f4: PUSH2 0x08a7 000003f7: JUMP 000003f8: JUMPDEST 000003f9: CALLVALUE 000003fa: DUP1 000003fb: ISZERO 000003fc: PUSH2 0x0404 000003ff: JUMPI 00000400: PUSH1 0x00 00000402: DUP1 00000403: REVERT 00000404: JUMPDEST 00000405: POP 00000406: PUSH2 0x01f1 00000409: PUSH2 0x0413 0000040c: CALLDATASIZE 0000040d: PUSH1 0x04 0000040f: PUSH2 0x163a 00000412: JUMP 00000413: JUMPDEST 00000414: PUSH2 0x0914 00000417: JUMP 00000418: JUMPDEST 00000419: CALLVALUE 0000041a: DUP1 0000041b: ISZERO 0000041c: PUSH2 0x0424 0000041f: JUMPI 00000420: PUSH1 0x00 00000422: DUP1 00000423: REVERT 00000424: JUMPDEST 00000425: POP 00000426: PUSH1 0x07 00000428: SLOAD 00000429: PUSH2 0x0245 0000042c: SWAP1 0000042d: PUSH2 0x0100 00000430: SWAP1 00000431: DIV 00000432: PUSH1 0x01 00000434: PUSH1 0x01 00000436: PUSH1 0xa0 00000438: SHL 00000439: SUB 0000043a: AND 0000043b: DUP2 0000043c: JUMP 0000043d: JUMPDEST 0000043e: CALLVALUE 0000043f: DUP1 00000440: ISZERO 00000441: PUSH2 0x0449 00000444: JUMPI 00000445: PUSH1 0x00 00000447: DUP1 00000448: REVERT 00000449: JUMPDEST 0000044a: POP 0000044b: PUSH1 0x03 0000044d: SLOAD 0000044e: PUSH2 0x0245 00000451: SWAP1 00000452: PUSH1 0x01 00000454: PUSH1 0x01 00000456: PUSH1 0xa0 00000458: SHL 00000459: SUB 0000045a: AND 0000045b: DUP2 0000045c: JUMP 0000045d: JUMPDEST 0000045e: CALLVALUE 0000045f: DUP1 00000460: ISZERO 00000461: PUSH2 0x0469 00000464: JUMPI 00000465: PUSH1 0x00 00000467: DUP1 00000468: REVERT 00000469: JUMPDEST 0000046a: POP 0000046b: PUSH2 0x0320 0000046e: PUSH2 0x0478 00000471: CALLDATASIZE 00000472: PUSH1 0x04 00000474: PUSH2 0x1551 00000477: JUMP 00000478: JUMPDEST 00000479: PUSH2 0x0921 0000047c: JUMP 0000047d: JUMPDEST 0000047e: CALLVALUE 0000047f: DUP1 00000480: ISZERO 00000481: PUSH2 0x0489 00000484: JUMPI 00000485: PUSH1 0x00 00000487: DUP1 00000488: REVERT 00000489: JUMPDEST 0000048a: POP 0000048b: PUSH2 0x0320 0000048e: PUSH2 0x0498 00000491: CALLDATASIZE 00000492: PUSH1 0x04 00000494: PUSH2 0x1698 00000497: JUMP 00000498: JUMPDEST 00000499: PUSH2 0x0972 0000049c: JUMP 0000049d: JUMPDEST 0000049e: CALLVALUE 0000049f: DUP1 000004a0: ISZERO 000004a1: PUSH2 0x04a9 000004a4: JUMPI 000004a5: PUSH1 0x00 000004a7: DUP1 000004a8: REVERT 000004a9: JUMPDEST 000004aa: POP 000004ab: PUSH2 0x0320 000004ae: PUSH2 0x04b8 000004b1: CALLDATASIZE 000004b2: PUSH1 0x04 000004b4: PUSH2 0x1666 000004b7: JUMP 000004b8: JUMPDEST 000004b9: PUSH2 0x09d5 000004bc: JUMP 000004bd: JUMPDEST 000004be: CALLVALUE 000004bf: DUP1 000004c0: ISZERO 000004c1: PUSH2 0x04c9 000004c4: JUMPI 000004c5: PUSH1 0x00 000004c7: DUP1 000004c8: REVERT 000004c9: JUMPDEST 000004ca: POP 000004cb: PUSH2 0x0217 000004ce: PUSH2 0x04d8 000004d1: CALLDATASIZE 000004d2: PUSH1 0x04 000004d4: PUSH2 0x15c0 000004d7: JUMP 000004d8: JUMPDEST 000004d9: PUSH1 0x0c 000004db: PUSH1 0x20 000004dd: SWAP1 000004de: DUP2 000004df: MSTORE 000004e0: PUSH1 0x00 000004e2: SWAP3 000004e3: DUP4 000004e4: MSTORE 000004e5: PUSH1 0x40 000004e7: DUP1 000004e8: DUP5 000004e9: KECCAK256 000004ea: SWAP1 000004eb: SWAP2 000004ec: MSTORE 000004ed: SWAP1 000004ee: DUP3 000004ef: MSTORE 000004f0: SWAP1 000004f1: KECCAK256 000004f2: SLOAD 000004f3: DUP2 000004f4: JUMP 000004f5: JUMPDEST 000004f6: CALLVALUE 000004f7: DUP1 000004f8: ISZERO 000004f9: PUSH2 0x0501 000004fc: JUMPI 000004fd: PUSH1 0x00 000004ff: DUP1 00000500: REVERT 00000501: JUMPDEST 00000502: POP 00000503: PUSH2 0x0217 00000506: PUSH1 0x04 00000508: SLOAD 00000509: DUP2 0000050a: JUMP 0000050b: JUMPDEST 0000050c: PUSH1 0x08 0000050e: DUP1 0000050f: SLOAD 00000510: PUSH2 0x0518 00000513: SWAP1 00000514: PUSH2 0x1808 00000517: JUMP 00000518: JUMPDEST 00000519: DUP1 0000051a: PUSH1 0x1f 0000051c: ADD 0000051d: PUSH1 0x20 0000051f: DUP1 00000520: SWAP2 00000521: DIV 00000522: MUL 00000523: PUSH1 0x20 00000525: ADD 00000526: PUSH1 0x40 00000528: MLOAD 00000529: SWAP1 0000052a: DUP2 0000052b: ADD 0000052c: PUSH1 0x40 0000052e: MSTORE 0000052f: DUP1 00000530: SWAP3 00000531: SWAP2 00000532: SWAP1 00000533: DUP2 00000534: DUP2 00000535: MSTORE 00000536: PUSH1 0x20 00000538: ADD 00000539: DUP3 0000053a: DUP1 0000053b: SLOAD 0000053c: PUSH2 0x0544 0000053f: SWAP1 00000540: PUSH2 0x1808 00000543: JUMP 00000544: JUMPDEST 00000545: DUP1 00000546: ISZERO 00000547: PUSH2 0x0591 0000054a: JUMPI 0000054b: DUP1 0000054c: PUSH1 0x1f 0000054e: LT 0000054f: PUSH2 0x0566 00000552: JUMPI 00000553: PUSH2 0x0100 00000556: DUP1 00000557: DUP4 00000558: SLOAD 00000559: DIV 0000055a: MUL 0000055b: DUP4 0000055c: MSTORE 0000055d: SWAP2 0000055e: PUSH1 0x20 00000560: ADD 00000561: SWAP2 00000562: PUSH2 0x0591 00000565: JUMP 00000566: JUMPDEST 00000567: DUP3 00000568: ADD 00000569: SWAP2 0000056a: SWAP1 0000056b: PUSH1 0x00 0000056d: MSTORE 0000056e: PUSH1 0x20 00000570: PUSH1 0x00 00000572: KECCAK256 00000573: SWAP1 00000574: JUMPDEST 00000575: DUP2 00000576: SLOAD 00000577: DUP2 00000578: MSTORE 00000579: SWAP1 0000057a: PUSH1 0x01 0000057c: ADD 0000057d: SWAP1 0000057e: PUSH1 0x20 00000580: ADD 00000581: DUP1 00000582: DUP4 00000583: GT 00000584: PUSH2 0x0574 00000587: JUMPI 00000588: DUP3 00000589: SWAP1 0000058a: SUB 0000058b: PUSH1 0x1f 0000058d: AND 0000058e: DUP3 0000058f: ADD 00000590: SWAP2 00000591: JUMPDEST 00000592: POP 00000593: POP 00000594: POP 00000595: POP 00000596: POP 00000597: DUP2 00000598: JUMP 00000599: JUMPDEST 0000059a: PUSH1 0x00 0000059c: PUSH2 0x05a6 0000059f: CALLER 000005a0: DUP5 000005a1: DUP5 000005a2: PUSH2 0x0bee 000005a5: JUMP 000005a6: JUMPDEST 000005a7: POP 000005a8: PUSH1 0x01 000005aa: SWAP3 000005ab: SWAP2 000005ac: POP 000005ad: POP 000005ae: JUMP 000005af: JUMPDEST 000005b0: PUSH1 0x01 000005b2: PUSH1 0x01 000005b4: PUSH1 0xa0 000005b6: SHL 000005b7: SUB 000005b8: DUP4 000005b9: AND 000005ba: PUSH1 0x00 000005bc: SWAP1 000005bd: DUP2 000005be: MSTORE 000005bf: PUSH1 0x0c 000005c1: PUSH1 0x20 000005c3: SWAP1 000005c4: DUP2 000005c5: MSTORE 000005c6: PUSH1 0x40 000005c8: DUP1 000005c9: DUP4 000005ca: KECCAK256 000005cb: CALLER 000005cc: DUP5 000005cd: MSTORE 000005ce: SWAP1 000005cf: SWAP2 000005d0: MSTORE 000005d1: DUP2 000005d2: KECCAK256 000005d3: SLOAD 000005d4: DUP3 000005d5: GT 000005d6: ISZERO 000005d7: PUSH2 0x064d 000005da: JUMPI 000005db: PUSH1 0x40 000005dd: MLOAD 000005de: PUSH3 0x461bcd 000005e2: PUSH1 0xe5 000005e4: SHL 000005e5: DUP2 000005e6: MSTORE 000005e7: PUSH1 0x20 000005e9: PUSH1 0x04 000005eb: DUP3 000005ec: ADD 000005ed: MSTORE 000005ee: PUSH1 0x29 000005f0: PUSH1 0x24 000005f2: DUP3 000005f3: ADD 000005f4: MSTORE 000005f5: PUSH32 0x7472616e7366657220616d6f756e742065786365656473207370656e64657220 00000616: PUSH1 0x44 00000618: DUP3 00000619: ADD 0000061a: MSTORE 0000061b: PUSH32 0x616c6c6f77616e63650000000000000000000000000000000000000000000000 0000063c: PUSH1 0x64 0000063e: DUP3 0000063f: ADD 00000640: MSTORE 00000641: PUSH1 0x84 00000643: ADD 00000644: JUMPDEST 00000645: PUSH1 0x40 00000647: MLOAD 00000648: DUP1 00000649: SWAP2 0000064a: SUB 0000064b: SWAP1 0000064c: REVERT 0000064d: JUMPDEST 0000064e: PUSH1 0x01 00000650: PUSH1 0x01 00000652: PUSH1 0xa0 00000654: SHL 00000655: SUB 00000656: DUP5 00000657: AND 00000658: PUSH1 0x00 0000065a: SWAP1 0000065b: DUP2 0000065c: MSTORE 0000065d: PUSH1 0x0c 0000065f: PUSH1 0x20 00000661: SWAP1 00000662: DUP2 00000663: MSTORE 00000664: PUSH1 0x40 00000666: DUP1 00000667: DUP4 00000668: KECCAK256 00000669: CALLER 0000066a: DUP5 0000066b: MSTORE 0000066c: SWAP1 0000066d: SWAP2 0000066e: MSTORE 0000066f: SWAP1 00000670: KECCAK256 00000671: SLOAD 00000672: PUSH2 0x067c 00000675: SWAP1 00000676: DUP4 00000677: SWAP1 00000678: PUSH2 0x17f1 0000067b: JUMP 0000067c: JUMPDEST 0000067d: PUSH1 0x01 0000067f: PUSH1 0x01 00000681: PUSH1 0xa0 00000683: SHL 00000684: SUB 00000685: DUP6 00000686: AND 00000687: PUSH1 0x00 00000689: SWAP1 0000068a: DUP2 0000068b: MSTORE 0000068c: PUSH1 0x0c 0000068e: PUSH1 0x20 00000690: SWAP1 00000691: DUP2 00000692: MSTORE 00000693: PUSH1 0x40 00000695: DUP1 00000696: DUP4 00000697: KECCAK256 00000698: CALLER 00000699: DUP5 0000069a: MSTORE 0000069b: SWAP1 0000069c: SWAP2 0000069d: MSTORE 0000069e: SWAP1 0000069f: KECCAK256 000006a0: SSTORE 000006a1: PUSH2 0x06ab 000006a4: DUP5 000006a5: DUP5 000006a6: DUP5 000006a7: PUSH2 0x0c50 000006aa: JUMP 000006ab: JUMPDEST 000006ac: POP 000006ad: PUSH1 0x01 000006af: SWAP4 000006b0: SWAP3 000006b1: POP 000006b2: POP 000006b3: POP 000006b4: JUMP 000006b5: JUMPDEST 000006b6: PUSH1 0x0a 000006b8: SLOAD 000006b9: PUSH1 0x00 000006bb: SWAP1 000006bc: PUSH2 0x06c5 000006bf: SELFBALANCE 000006c0: DUP5 000006c1: PUSH2 0x17b4 000006c4: JUMP 000006c5: JUMPDEST 000006c6: PUSH2 0x06cf 000006c9: SWAP2 000006ca: SWAP1 000006cb: PUSH2 0x1792 000006ce: JUMP 000006cf: JUMPDEST 000006d0: SWAP3 000006d1: SWAP2 000006d2: POP 000006d3: POP 000006d4: JUMP 000006d5: JUMPDEST 000006d6: PUSH1 0x00 000006d8: PUSH2 0x2710 000006db: PUSH2 0x06e4 000006de: DUP5 000006df: DUP5 000006e0: PUSH2 0x17b4 000006e3: JUMP 000006e4: JUMPDEST 000006e5: PUSH2 0x06ee 000006e8: SWAP2 000006e9: SWAP1 000006ea: PUSH2 0x1792 000006ed: JUMP 000006ee: JUMPDEST 000006ef: SWAP4 000006f0: SWAP3 000006f1: POP 000006f2: POP 000006f3: POP 000006f4: JUMP 000006f5: JUMPDEST 000006f6: PUSH1 0x01 000006f8: SLOAD 000006f9: PUSH1 0x01 000006fb: PUSH1 0x01 000006fd: PUSH1 0xa0 000006ff: SHL 00000700: SUB 00000701: AND 00000702: CALLER 00000703: EQ 00000704: PUSH2 0x070c 00000707: JUMPI 00000708: PUSH1 0x00 0000070a: DUP1 0000070b: REVERT 0000070c: JUMPDEST 0000070d: PUSH1 0x02 0000070f: PUSH1 0x00 00000711: SLOAD 00000712: EQ 00000713: ISZERO 00000714: PUSH2 0x075f 00000717: JUMPI 00000718: PUSH1 0x40 0000071a: MLOAD 0000071b: PUSH3 0x461bcd 0000071f: PUSH1 0xe5 00000721: SHL 00000722: DUP2 00000723: MSTORE 00000724: PUSH1 0x20 00000726: PUSH1 0x04 00000728: DUP3 00000729: ADD 0000072a: MSTORE 0000072b: PUSH1 0x0e 0000072d: PUSH1 0x24 0000072f: DUP3 00000730: ADD 00000731: MSTORE 00000732: PUSH32 0x5265656e7472616e742063616c6c000000000000000000000000000000000000 00000753: PUSH1 0x44 00000755: DUP3 00000756: ADD 00000757: MSTORE 00000758: PUSH1 0x64 0000075a: ADD 0000075b: PUSH2 0x0644 0000075e: JUMP 0000075f: JUMPDEST 00000760: PUSH1 0x02 00000762: PUSH1 0x00 00000764: SWAP1 00000765: DUP2 00000766: SSTORE 00000767: PUSH1 0x07 00000769: SLOAD 0000076a: PUSH1 0xff 0000076c: AND 0000076d: PUSH1 0x01 0000076f: DUP2 00000770: GT 00000771: ISZERO 00000772: PUSH2 0x077d 00000775: JUMPI 00000776: PUSH2 0x077d 00000779: PUSH2 0x1859 0000077c: JUMP 0000077d: JUMPDEST 0000077e: EQ 0000077f: PUSH2 0x07ca 00000782: JUMPI 00000783: PUSH1 0x40 00000785: MLOAD 00000786: PUSH3 0x461bcd 0000078a: PUSH1 0xe5 0000078c: SHL 0000078d: DUP2 0000078e: MSTORE 0000078f: PUSH1 0x20 00000791: PUSH1 0x04 00000793: DUP3 00000794: ADD 00000795: MSTORE 00000796: PUSH1 0x1f 00000798: PUSH1 0x24 0000079a: DUP3 0000079b: ADD 0000079c: MSTORE 0000079d: PUSH32 0x43726f776466756e643a2046756e64696e67206d757374206265206f70656e00 000007be: PUSH1 0x44 000007c0: DUP3 000007c1: ADD 000007c2: MSTORE 000007c3: PUSH1 0x64 000007c5: ADD 000007c6: PUSH2 0x0644 000007c9: JUMP 000007ca: JUMPDEST 000007cb: PUSH1 0x07 000007cd: DUP1 000007ce: SLOAD 000007cf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000007f0: AND 000007f1: PUSH1 0x01 000007f3: OR 000007f4: SWAP1 000007f5: SSTORE 000007f6: PUSH1 0x06 000007f8: SLOAD 000007f9: PUSH1 0x00 000007fb: SWAP1 000007fc: PUSH2 0x0806 000007ff: SWAP1 00000800: PUSH1 0x64 00000802: PUSH2 0x17f1 00000805: JUMP 00000806: JUMPDEST 00000807: PUSH1 0x0a 00000809: SLOAD 0000080a: PUSH1 0x06 0000080c: SLOAD 0000080d: PUSH2 0x0816 00000810: SWAP2 00000811: SWAP1 00000812: PUSH2 0x17b4 00000815: JUMP 00000816: JUMPDEST 00000817: PUSH2 0x0820 0000081a: SWAP2 0000081b: SWAP1 0000081c: PUSH2 0x1792 0000081f: JUMP 00000820: JUMPDEST 00000821: PUSH1 0x01 00000823: SLOAD 00000824: SWAP1 00000825: SWAP2 00000826: POP 00000827: PUSH2 0x0839 0000082a: SWAP1 0000082b: PUSH1 0x01 0000082d: PUSH1 0x01 0000082f: PUSH1 0xa0 00000831: SHL 00000832: SUB 00000833: AND 00000834: DUP3 00000835: PUSH2 0x0d60 00000838: JUMP 00000839: JUMPDEST 0000083a: PUSH1 0x40 0000083c: DUP1 0000083d: MLOAD 0000083e: SELFBALANCE 0000083f: DUP2 00000840: MSTORE 00000841: PUSH1 0x20 00000843: DUP2 00000844: ADD 00000845: DUP4 00000846: SWAP1 00000847: MSTORE 00000848: PUSH32 0x352ce94da8e3109dc06c05ed84e8a0aaf9ce2c4329dfd10ad1190cf620048972 00000869: SWAP2 0000086a: ADD 0000086b: PUSH1 0x40 0000086d: MLOAD 0000086e: DUP1 0000086f: SWAP2 00000870: SUB 00000871: SWAP1 00000872: LOG1 00000873: PUSH2 0x087a 00000876: PUSH2 0x0de6 00000879: JUMP 0000087a: JUMPDEST 0000087b: POP 0000087c: PUSH1 0x01 0000087e: PUSH1 0x00 00000880: SSTORE 00000881: JUMP 00000882: JUMPDEST 00000883: PUSH2 0x088a 00000886: PUSH2 0x0de6 00000889: JUMP 0000088a: JUMPDEST 0000088b: JUMP 0000088c: JUMPDEST 0000088d: PUSH1 0x09 0000088f: DUP1 00000890: SLOAD 00000891: PUSH2 0x0518 00000894: SWAP1 00000895: PUSH2 0x1808 00000898: JUMP 00000899: JUMPDEST 0000089a: PUSH1 0x00 0000089c: PUSH2 0x06cf 0000089f: PUSH2 0x03e8 000008a2: DUP4 000008a3: PUSH2 0x17b4 000008a6: JUMP 000008a7: JUMPDEST 000008a8: PUSH1 0x02 000008aa: PUSH1 0x00 000008ac: SLOAD 000008ad: EQ 000008ae: ISZERO 000008af: PUSH2 0x08fa 000008b2: JUMPI 000008b3: PUSH1 0x40 000008b5: MLOAD 000008b6: PUSH3 0x461bcd 000008ba: PUSH1 0xe5 000008bc: SHL 000008bd: DUP2 000008be: MSTORE 000008bf: PUSH1 0x20 000008c1: PUSH1 0x04 000008c3: DUP3 000008c4: ADD 000008c5: MSTORE 000008c6: PUSH1 0x0e 000008c8: PUSH1 0x24 000008ca: DUP3 000008cb: ADD 000008cc: MSTORE 000008cd: PUSH32 0x5265656e7472616e742063616c6c000000000000000000000000000000000000 000008ee: PUSH1 0x44 000008f0: DUP3 000008f1: ADD 000008f2: MSTORE 000008f3: PUSH1 0x64 000008f5: ADD 000008f6: PUSH2 0x0644 000008f9: JUMP 000008fa: JUMPDEST 000008fb: PUSH1 0x02 000008fd: PUSH1 0x00 000008ff: SSTORE 00000900: PUSH2 0x090a 00000903: DUP4 00000904: DUP4 00000905: DUP4 00000906: PUSH2 0x0eee 00000909: JUMP 0000090a: JUMPDEST 0000090b: POP 0000090c: POP 0000090d: PUSH1 0x01 0000090f: PUSH1 0x00 00000911: SSTORE 00000912: POP 00000913: JUMP 00000914: JUMPDEST 00000915: PUSH1 0x00 00000917: PUSH2 0x05a6 0000091a: CALLER 0000091b: DUP5 0000091c: DUP5 0000091d: PUSH2 0x0c50 00000920: JUMP 00000921: JUMPDEST 00000922: PUSH1 0x01 00000924: SLOAD 00000925: PUSH1 0x01 00000927: PUSH1 0x01 00000929: PUSH1 0xa0 0000092b: SHL 0000092c: SUB 0000092d: AND 0000092e: CALLER 0000092f: EQ 00000930: PUSH2 0x0938 00000933: JUMPI 00000934: PUSH1 0x00 00000936: DUP1 00000937: REVERT 00000938: JUMPDEST 00000939: PUSH1 0x02 0000093b: DUP1 0000093c: SLOAD 0000093d: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 0000095e: AND 0000095f: PUSH1 0x01 00000961: PUSH1 0x01 00000963: PUSH1 0xa0 00000965: SHL 00000966: SUB 00000967: SWAP3 00000968: SWAP1 00000969: SWAP3 0000096a: AND 0000096b: SWAP2 0000096c: SWAP1 0000096d: SWAP2 0000096e: OR 0000096f: SWAP1 00000970: SSTORE 00000971: JUMP 00000972: JUMPDEST 00000973: ADDRESS 00000974: EXTCODESIZE 00000975: ISZERO 00000976: PUSH2 0x097e 00000979: JUMPI 0000097a: PUSH1 0x00 0000097c: DUP1 0000097d: REVERT 0000097e: JUMPDEST 0000097f: PUSH1 0x0a 00000981: DUP3 00000982: SWAP1 00000983: SSTORE 00000984: PUSH1 0x01 00000986: PUSH1 0x01 00000988: PUSH1 0xa0 0000098a: SHL 0000098b: SUB 0000098c: DUP2 0000098d: AND 0000098e: PUSH1 0x00 00000990: DUP2 00000991: DUP2 00000992: MSTORE 00000993: PUSH1 0x0b 00000995: PUSH1 0x20 00000997: SWAP1 00000998: DUP2 00000999: MSTORE 0000099a: PUSH1 0x40 0000099c: DUP1 0000099d: DUP4 0000099e: KECCAK256 0000099f: DUP7 000009a0: SWAP1 000009a1: SSTORE 000009a2: MLOAD 000009a3: DUP6 000009a4: DUP2 000009a5: MSTORE 000009a6: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000009c7: SWAP2 000009c8: ADD 000009c9: JUMPDEST 000009ca: PUSH1 0x40 000009cc: MLOAD 000009cd: DUP1 000009ce: SWAP2 000009cf: SUB 000009d0: SWAP1 000009d1: LOG3 000009d2: POP 000009d3: POP 000009d4: JUMP 000009d5: JUMPDEST 000009d6: PUSH1 0x02 000009d8: PUSH1 0x00 000009da: SLOAD 000009db: EQ 000009dc: ISZERO 000009dd: PUSH2 0x0a28 000009e0: JUMPI 000009e1: PUSH1 0x40 000009e3: MLOAD 000009e4: PUSH3 0x461bcd 000009e8: PUSH1 0xe5 000009ea: SHL 000009eb: DUP2 000009ec: MSTORE 000009ed: PUSH1 0x20 000009ef: PUSH1 0x04 000009f1: DUP3 000009f2: ADD 000009f3: MSTORE 000009f4: PUSH1 0x0e 000009f6: PUSH1 0x24 000009f8: DUP3 000009f9: ADD 000009fa: MSTORE 000009fb: PUSH32 0x5265656e7472616e742063616c6c000000000000000000000000000000000000 00000a1c: PUSH1 0x44 00000a1e: DUP3 00000a1f: ADD 00000a20: MSTORE 00000a21: PUSH1 0x64 00000a23: ADD 00000a24: PUSH2 0x0644 00000a27: JUMP 00000a28: JUMPDEST 00000a29: PUSH1 0x02 00000a2b: PUSH1 0x00 00000a2d: SSTORE 00000a2e: SELFBALANCE 00000a2f: PUSH2 0x0aa0 00000a32: JUMPI 00000a33: PUSH1 0x40 00000a35: MLOAD 00000a36: PUSH3 0x461bcd 00000a3a: PUSH1 0xe5 00000a3c: SHL 00000a3d: DUP2 00000a3e: MSTORE 00000a3f: PUSH1 0x20 00000a41: PUSH1 0x04 00000a43: DUP3 00000a44: ADD 00000a45: MSTORE 00000a46: PUSH1 0x25 00000a48: PUSH1 0x24 00000a4a: DUP3 00000a4b: ADD 00000a4c: MSTORE 00000a4d: PUSH32 0x43726f776466756e643a204e6f2045544820617661696c61626c6520746f2072 00000a6e: PUSH1 0x44 00000a70: DUP3 00000a71: ADD 00000a72: MSTORE 00000a73: PUSH32 0x656465656d000000000000000000000000000000000000000000000000000000 00000a94: PUSH1 0x64 00000a96: DUP3 00000a97: ADD 00000a98: MSTORE 00000a99: PUSH1 0x84 00000a9b: ADD 00000a9c: PUSH2 0x0644 00000a9f: JUMP 00000aa0: JUMPDEST 00000aa1: CALLER 00000aa2: PUSH1 0x00 00000aa4: SWAP1 00000aa5: DUP2 00000aa6: MSTORE 00000aa7: PUSH1 0x0b 00000aa9: PUSH1 0x20 00000aab: MSTORE 00000aac: PUSH1 0x40 00000aae: SWAP1 00000aaf: KECCAK256 00000ab0: SLOAD 00000ab1: DUP2 00000ab2: GT 00000ab3: ISZERO 00000ab4: PUSH2 0x0aff 00000ab7: JUMPI 00000ab8: PUSH1 0x40 00000aba: MLOAD 00000abb: PUSH3 0x461bcd 00000abf: PUSH1 0xe5 00000ac1: SHL 00000ac2: DUP2 00000ac3: MSTORE 00000ac4: PUSH1 0x20 00000ac6: PUSH1 0x04 00000ac8: DUP3 00000ac9: ADD 00000aca: MSTORE 00000acb: PUSH1 0x1f 00000acd: PUSH1 0x24 00000acf: DUP3 00000ad0: ADD 00000ad1: MSTORE 00000ad2: PUSH32 0x43726f776466756e643a20496e73756666696369656e742062616c616e636500 00000af3: PUSH1 0x44 00000af5: DUP3 00000af6: ADD 00000af7: MSTORE 00000af8: PUSH1 0x64 00000afa: ADD 00000afb: PUSH2 0x0644 00000afe: JUMP 00000aff: JUMPDEST 00000b00: PUSH1 0x01 00000b02: PUSH1 0x07 00000b04: SLOAD 00000b05: PUSH1 0xff 00000b07: AND 00000b08: PUSH1 0x01 00000b0a: DUP2 00000b0b: GT 00000b0c: ISZERO 00000b0d: PUSH2 0x0b18 00000b10: JUMPI 00000b11: PUSH2 0x0b18 00000b14: PUSH2 0x1859 00000b17: JUMP 00000b18: JUMPDEST 00000b19: EQ 00000b1a: PUSH2 0x0b8b 00000b1d: JUMPI 00000b1e: PUSH1 0x40 00000b20: MLOAD 00000b21: PUSH3 0x461bcd 00000b25: PUSH1 0xe5 00000b27: SHL 00000b28: DUP2 00000b29: MSTORE 00000b2a: PUSH1 0x20 00000b2c: PUSH1 0x04 00000b2e: DUP3 00000b2f: ADD 00000b30: MSTORE 00000b31: PUSH1 0x22 00000b33: PUSH1 0x24 00000b35: DUP3 00000b36: ADD 00000b37: MSTORE 00000b38: PUSH32 0x43726f776466756e643a2046756e64696e67206d757374206265207472616469 00000b59: PUSH1 0x44 00000b5b: DUP3 00000b5c: ADD 00000b5d: MSTORE 00000b5e: PUSH32 0x6e67000000000000000000000000000000000000000000000000000000000000 00000b7f: PUSH1 0x64 00000b81: DUP3 00000b82: ADD 00000b83: MSTORE 00000b84: PUSH1 0x84 00000b86: ADD 00000b87: PUSH2 0x0644 00000b8a: JUMP 00000b8b: JUMPDEST 00000b8c: PUSH1 0x00 00000b8e: PUSH2 0x0b96 00000b91: DUP3 00000b92: PUSH2 0x06b5 00000b95: JUMP 00000b96: JUMPDEST 00000b97: SWAP1 00000b98: POP 00000b99: PUSH2 0x0ba2 00000b9c: CALLER 00000b9d: DUP4 00000b9e: PUSH2 0x11ef 00000ba1: JUMP 00000ba2: JUMPDEST 00000ba3: PUSH2 0x0bac 00000ba6: CALLER 00000ba7: DUP3 00000ba8: PUSH2 0x127b 00000bab: JUMP 00000bac: JUMPDEST 00000bad: PUSH1 0x40 00000baf: DUP1 00000bb0: MLOAD 00000bb1: CALLER 00000bb2: DUP2 00000bb3: MSTORE 00000bb4: PUSH1 0x20 00000bb6: DUP2 00000bb7: ADD 00000bb8: DUP4 00000bb9: SWAP1 00000bba: MSTORE 00000bbb: PUSH32 0x4896181ff8f4543cc00db9fe9b6fb7e6f032b7eb772c72ab1ec1b4d2e03b9369 00000bdc: SWAP2 00000bdd: ADD 00000bde: PUSH1 0x40 00000be0: MLOAD 00000be1: DUP1 00000be2: SWAP2 00000be3: SUB 00000be4: SWAP1 00000be5: LOG1 00000be6: POP 00000be7: POP 00000be8: PUSH1 0x01 00000bea: PUSH1 0x00 00000bec: SSTORE 00000bed: JUMP 00000bee: JUMPDEST 00000bef: PUSH1 0x01 00000bf1: PUSH1 0x01 00000bf3: PUSH1 0xa0 00000bf5: SHL 00000bf6: SUB 00000bf7: DUP4 00000bf8: DUP2 00000bf9: AND 00000bfa: PUSH1 0x00 00000bfc: DUP2 00000bfd: DUP2 00000bfe: MSTORE 00000bff: PUSH1 0x0c 00000c01: PUSH1 0x20 00000c03: SWAP1 00000c04: DUP2 00000c05: MSTORE 00000c06: PUSH1 0x40 00000c08: DUP1 00000c09: DUP4 00000c0a: KECCAK256 00000c0b: SWAP5 00000c0c: DUP8 00000c0d: AND 00000c0e: DUP1 00000c0f: DUP5 00000c10: MSTORE 00000c11: SWAP5 00000c12: DUP3 00000c13: MSTORE 00000c14: SWAP2 00000c15: DUP3 00000c16: SWAP1 00000c17: KECCAK256 00000c18: DUP6 00000c19: SWAP1 00000c1a: SSTORE 00000c1b: SWAP1 00000c1c: MLOAD 00000c1d: DUP5 00000c1e: DUP2 00000c1f: MSTORE 00000c20: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00000c41: SWAP2 00000c42: ADD 00000c43: JUMPDEST 00000c44: PUSH1 0x40 00000c46: MLOAD 00000c47: DUP1 00000c48: SWAP2 00000c49: SUB 00000c4a: SWAP1 00000c4b: LOG3 00000c4c: POP 00000c4d: POP 00000c4e: POP 00000c4f: JUMP 00000c50: JUMPDEST 00000c51: PUSH1 0x01 00000c53: PUSH1 0x01 00000c55: PUSH1 0xa0 00000c57: SHL 00000c58: SUB 00000c59: DUP4 00000c5a: AND 00000c5b: PUSH1 0x00 00000c5d: SWAP1 00000c5e: DUP2 00000c5f: MSTORE 00000c60: PUSH1 0x0b 00000c62: PUSH1 0x20 00000c64: MSTORE 00000c65: PUSH1 0x40 00000c67: SWAP1 00000c68: KECCAK256 00000c69: SLOAD 00000c6a: DUP2 00000c6b: GT 00000c6c: ISZERO 00000c6d: PUSH2 0x0cb8 00000c70: JUMPI 00000c71: PUSH1 0x40 00000c73: MLOAD 00000c74: PUSH3 0x461bcd 00000c78: PUSH1 0xe5 00000c7a: SHL 00000c7b: DUP2 00000c7c: MSTORE 00000c7d: PUSH1 0x20 00000c7f: PUSH1 0x04 00000c81: DUP3 00000c82: ADD 00000c83: MSTORE 00000c84: PUSH1 0x1f 00000c86: PUSH1 0x24 00000c88: DUP3 00000c89: ADD 00000c8a: MSTORE 00000c8b: PUSH32 0x7472616e7366657220616d6f756e7420657863656564732062616c616e636500 00000cac: PUSH1 0x44 00000cae: DUP3 00000caf: ADD 00000cb0: MSTORE 00000cb1: PUSH1 0x64 00000cb3: ADD 00000cb4: PUSH2 0x0644 00000cb7: JUMP 00000cb8: JUMPDEST 00000cb9: PUSH1 0x01 00000cbb: PUSH1 0x01 00000cbd: PUSH1 0xa0 00000cbf: SHL 00000cc0: SUB 00000cc1: DUP4 00000cc2: AND 00000cc3: PUSH1 0x00 00000cc5: SWAP1 00000cc6: DUP2 00000cc7: MSTORE 00000cc8: PUSH1 0x0b 00000cca: PUSH1 0x20 00000ccc: MSTORE 00000ccd: PUSH1 0x40 00000ccf: SWAP1 00000cd0: KECCAK256 00000cd1: SLOAD 00000cd2: PUSH2 0x0cdc 00000cd5: SWAP1 00000cd6: DUP3 00000cd7: SWAP1 00000cd8: PUSH2 0x17f1 00000cdb: JUMP 00000cdc: JUMPDEST 00000cdd: PUSH1 0x01 00000cdf: PUSH1 0x01 00000ce1: PUSH1 0xa0 00000ce3: SHL 00000ce4: SUB 00000ce5: DUP1 00000ce6: DUP6 00000ce7: AND 00000ce8: PUSH1 0x00 00000cea: SWAP1 00000ceb: DUP2 00000cec: MSTORE 00000ced: PUSH1 0x0b 00000cef: PUSH1 0x20 00000cf1: MSTORE 00000cf2: PUSH1 0x40 00000cf4: DUP1 00000cf5: DUP3 00000cf6: KECCAK256 00000cf7: SWAP4 00000cf8: SWAP1 00000cf9: SWAP4 00000cfa: SSTORE 00000cfb: SWAP1 00000cfc: DUP5 00000cfd: AND 00000cfe: DUP2 00000cff: MSTORE 00000d00: KECCAK256 00000d01: SLOAD 00000d02: PUSH2 0x0d0c 00000d05: SWAP1 00000d06: DUP3 00000d07: SWAP1 00000d08: PUSH2 0x177a 00000d0b: JUMP 00000d0c: JUMPDEST 00000d0d: PUSH1 0x01 00000d0f: PUSH1 0x01 00000d11: PUSH1 0xa0 00000d13: SHL 00000d14: SUB 00000d15: DUP1 00000d16: DUP5 00000d17: AND 00000d18: PUSH1 0x00 00000d1a: DUP2 00000d1b: DUP2 00000d1c: MSTORE 00000d1d: PUSH1 0x0b 00000d1f: PUSH1 0x20 00000d21: MSTORE 00000d22: PUSH1 0x40 00000d24: SWAP1 00000d25: DUP2 00000d26: SWAP1 00000d27: KECCAK256 00000d28: SWAP4 00000d29: SWAP1 00000d2a: SWAP4 00000d2b: SSTORE 00000d2c: SWAP2 00000d2d: MLOAD 00000d2e: SWAP1 00000d2f: DUP6 00000d30: AND 00000d31: SWAP1 00000d32: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00000d53: SWAP1 00000d54: PUSH2 0x0c43 00000d57: SWAP1 00000d58: DUP6 00000d59: DUP2 00000d5a: MSTORE 00000d5b: PUSH1 0x20 00000d5d: ADD 00000d5e: SWAP1 00000d5f: JUMP 00000d60: JUMPDEST 00000d61: DUP1 00000d62: PUSH1 0x0a 00000d64: SLOAD 00000d65: PUSH2 0x0d6e 00000d68: SWAP2 00000d69: SWAP1 00000d6a: PUSH2 0x177a 00000d6d: JUMP 00000d6e: JUMPDEST 00000d6f: PUSH1 0x0a 00000d71: SSTORE 00000d72: PUSH1 0x01 00000d74: PUSH1 0x01 00000d76: PUSH1 0xa0 00000d78: SHL 00000d79: SUB 00000d7a: DUP3 00000d7b: AND 00000d7c: PUSH1 0x00 00000d7e: SWAP1 00000d7f: DUP2 00000d80: MSTORE 00000d81: PUSH1 0x0b 00000d83: PUSH1 0x20 00000d85: MSTORE 00000d86: PUSH1 0x40 00000d88: SWAP1 00000d89: KECCAK256 00000d8a: SLOAD 00000d8b: PUSH2 0x0d95 00000d8e: SWAP1 00000d8f: DUP3 00000d90: SWAP1 00000d91: PUSH2 0x177a 00000d94: JUMP 00000d95: JUMPDEST 00000d96: PUSH1 0x01 00000d98: PUSH1 0x01 00000d9a: PUSH1 0xa0 00000d9c: SHL 00000d9d: SUB 00000d9e: DUP4 00000d9f: AND 00000da0: PUSH1 0x00 00000da2: DUP2 00000da3: DUP2 00000da4: MSTORE 00000da5: PUSH1 0x0b 00000da7: PUSH1 0x20 00000da9: MSTORE 00000daa: PUSH1 0x40 00000dac: DUP1 00000dad: DUP3 00000dae: KECCAK256 00000daf: SWAP4 00000db0: SWAP1 00000db1: SWAP4 00000db2: SSTORE 00000db3: SWAP2 00000db4: MLOAD 00000db5: SWAP1 00000db6: SWAP2 00000db7: SWAP1 00000db8: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00000dd9: SWAP1 00000dda: PUSH2 0x09c9 00000ddd: SWAP1 00000dde: DUP6 00000ddf: DUP2 00000de0: MSTORE 00000de1: PUSH1 0x20 00000de3: ADD 00000de4: SWAP1 00000de5: JUMP 00000de6: JUMPDEST 00000de7: PUSH1 0x05 00000de9: SLOAD 00000dea: PUSH32 0xbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b93 00000e0b: SELFBALANCE 00000e0c: PUSH2 0x0e15 00000e0f: SELFBALANCE 00000e10: DUP5 00000e11: PUSH2 0x06d5 00000e14: JUMP 00000e15: JUMPDEST 00000e16: PUSH1 0x40 00000e18: DUP1 00000e19: MLOAD 00000e1a: SWAP3 00000e1b: DUP4 00000e1c: MSTORE 00000e1d: PUSH1 0x20 00000e1f: DUP4 00000e20: ADD 00000e21: SWAP2 00000e22: SWAP1 00000e23: SWAP2 00000e24: MSTORE 00000e25: ADD 00000e26: PUSH1 0x40 00000e28: MLOAD 00000e29: DUP1 00000e2a: SWAP2 00000e2b: SUB 00000e2c: SWAP1 00000e2d: LOG1 00000e2e: PUSH1 0x03 00000e30: SLOAD 00000e31: PUSH1 0x40 00000e33: DUP1 00000e34: MLOAD 00000e35: PUSH32 0x61d027b300000000000000000000000000000000000000000000000000000000 00000e56: DUP2 00000e57: MSTORE 00000e58: SWAP1 00000e59: MLOAD 00000e5a: PUSH2 0x0ed5 00000e5d: SWAP3 00000e5e: PUSH1 0x01 00000e60: PUSH1 0x01 00000e62: PUSH1 0xa0 00000e64: SHL 00000e65: SUB 00000e66: AND 00000e67: SWAP2 00000e68: PUSH4 0x61d027b3 00000e6d: SWAP2 00000e6e: PUSH1 0x04 00000e70: DUP1 00000e71: DUP4 00000e72: ADD 00000e73: SWAP3 00000e74: PUSH1 0x20 00000e76: SWAP3 00000e77: SWAP2 00000e78: SWAP1 00000e79: DUP3 00000e7a: SWAP1 00000e7b: SUB 00000e7c: ADD 00000e7d: DUP2 00000e7e: PUSH1 0x00 00000e80: DUP8 00000e81: DUP1 00000e82: EXTCODESIZE 00000e83: ISZERO 00000e84: DUP1 00000e85: ISZERO 00000e86: PUSH2 0x0e8e 00000e89: JUMPI 00000e8a: PUSH1 0x00 00000e8c: DUP1 00000e8d: REVERT 00000e8e: JUMPDEST 00000e8f: POP 00000e90: GAS 00000e91: CALL 00000e92: ISZERO 00000e93: DUP1 00000e94: ISZERO 00000e95: PUSH2 0x0ea2 00000e98: JUMPI 00000e99: RETURNDATASIZE 00000e9a: PUSH1 0x00 00000e9c: DUP1 00000e9d: RETURNDATACOPY 00000e9e: RETURNDATASIZE 00000e9f: PUSH1 0x00 00000ea1: REVERT 00000ea2: JUMPDEST 00000ea3: POP 00000ea4: POP 00000ea5: POP 00000ea6: POP 00000ea7: PUSH1 0x40 00000ea9: MLOAD 00000eaa: RETURNDATASIZE 00000eab: PUSH1 0x1f 00000ead: NOT 00000eae: PUSH1 0x1f 00000eb0: DUP3 00000eb1: ADD 00000eb2: AND 00000eb3: DUP3 00000eb4: ADD 00000eb5: DUP1 00000eb6: PUSH1 0x40 00000eb8: MSTORE 00000eb9: POP 00000eba: DUP2 00000ebb: ADD 00000ebc: SWAP1 00000ebd: PUSH2 0x0ec6 00000ec0: SWAP2 00000ec1: SWAP1 00000ec2: PUSH2 0x156e 00000ec5: JUMP 00000ec6: JUMPDEST 00000ec7: PUSH2 0x0ed0 00000eca: SELFBALANCE 00000ecb: DUP5 00000ecc: PUSH2 0x06d5 00000ecf: JUMP 00000ed0: JUMPDEST 00000ed1: PUSH2 0x127b 00000ed4: JUMP 00000ed5: JUMPDEST 00000ed6: PUSH1 0x02 00000ed8: SLOAD 00000ed9: PUSH2 0x0eeb 00000edc: SWAP1 00000edd: PUSH1 0x01 00000edf: PUSH1 0x01 00000ee1: PUSH1 0xa0 00000ee3: SHL 00000ee4: SUB 00000ee5: AND 00000ee6: SELFBALANCE 00000ee7: PUSH2 0x127b 00000eea: JUMP 00000eeb: JUMPDEST 00000eec: POP 00000eed: JUMP 00000eee: JUMPDEST 00000eef: PUSH1 0x00 00000ef1: PUSH1 0x07 00000ef3: SLOAD 00000ef4: PUSH1 0xff 00000ef6: AND 00000ef7: PUSH1 0x01 00000ef9: DUP2 00000efa: GT 00000efb: ISZERO 00000efc: PUSH2 0x0f07 00000eff: JUMPI 00000f00: PUSH2 0x0f07 00000f03: PUSH2 0x1859 00000f06: JUMP 00000f07: JUMPDEST 00000f08: EQ 00000f09: PUSH2 0x0f54 00000f0c: JUMPI 00000f0d: PUSH1 0x40 00000f0f: MLOAD 00000f10: PUSH3 0x461bcd 00000f14: PUSH1 0xe5 00000f16: SHL 00000f17: DUP2 00000f18: MSTORE 00000f19: PUSH1 0x20 00000f1b: PUSH1 0x04 00000f1d: DUP3 00000f1e: ADD 00000f1f: MSTORE 00000f20: PUSH1 0x1f 00000f22: PUSH1 0x24 00000f24: DUP3 00000f25: ADD 00000f26: MSTORE 00000f27: PUSH32 0x43726f776466756e643a2046756e64696e67206d757374206265206f70656e00 00000f48: PUSH1 0x44 00000f4a: DUP3 00000f4b: ADD 00000f4c: MSTORE 00000f4d: PUSH1 0x64 00000f4f: ADD 00000f50: PUSH2 0x0644 00000f53: JUMP 00000f54: JUMPDEST 00000f55: CALLVALUE 00000f56: DUP2 00000f57: EQ 00000f58: PUSH2 0x0fc9 00000f5b: JUMPI 00000f5c: PUSH1 0x40 00000f5e: MLOAD 00000f5f: PUSH3 0x461bcd 00000f63: PUSH1 0xe5 00000f65: SHL 00000f66: DUP2 00000f67: MSTORE 00000f68: PUSH1 0x20 00000f6a: PUSH1 0x04 00000f6c: DUP3 00000f6d: ADD 00000f6e: MSTORE 00000f6f: PUSH1 0x23 00000f71: PUSH1 0x24 00000f73: DUP3 00000f74: ADD 00000f75: MSTORE 00000f76: PUSH32 0x43726f776466756e643a20416d6f756e74206973206e6f742076616c75652073 00000f97: PUSH1 0x44 00000f99: DUP3 00000f9a: ADD 00000f9b: MSTORE 00000f9c: PUSH32 0x656e740000000000000000000000000000000000000000000000000000000000 00000fbd: PUSH1 0x64 00000fbf: DUP3 00000fc0: ADD 00000fc1: MSTORE 00000fc2: PUSH1 0x84 00000fc4: ADD 00000fc5: PUSH2 0x0644 00000fc8: JUMP 00000fc9: JUMPDEST 00000fca: PUSH1 0x04 00000fcc: SLOAD 00000fcd: SELFBALANCE 00000fce: GT 00000fcf: PUSH2 0x108b 00000fd2: JUMPI 00000fd3: PUSH2 0x0fe4 00000fd6: DUP4 00000fd7: PUSH2 0x0fdf 00000fda: DUP4 00000fdb: PUSH2 0x0899 00000fde: JUMP 00000fdf: JUMPDEST 00000fe0: PUSH2 0x0d60 00000fe3: JUMP 00000fe4: JUMPDEST 00000fe5: DUP2 00000fe6: ISZERO 00000fe7: PUSH2 0x104c 00000fea: JUMPI 00000feb: PUSH32 0xfb7955a99240dbf0dd35c467144fb9661fbf7a19839f7d8220400c0dc52e70ae 0000100c: DUP4 0000100d: DUP3 0000100e: DUP5 0000100f: PUSH2 0x1019 00001012: DUP6 00001013: DUP8 00001014: DUP10 00001015: PUSH2 0x1394 00001018: JUMP 00001019: JUMPDEST 0000101a: PUSH1 0x40 0000101c: DUP1 0000101d: MLOAD 0000101e: PUSH1 0x01 00001020: PUSH1 0x01 00001022: PUSH1 0xa0 00001024: SHL 00001025: SUB 00001026: SWAP1 00001027: SWAP6 00001028: AND 00001029: DUP6 0000102a: MSTORE 0000102b: PUSH1 0x20 0000102d: DUP6 0000102e: ADD 0000102f: SWAP4 00001030: SWAP1 00001031: SWAP4 00001032: MSTORE 00001033: SWAP2 00001034: DUP4 00001035: ADD 00001036: MSTORE 00001037: PUSH1 0x60 00001039: DUP3 0000103a: ADD 0000103b: MSTORE 0000103c: PUSH1 0x80 0000103e: ADD 0000103f: JUMPDEST 00001040: PUSH1 0x40 00001042: MLOAD 00001043: DUP1 00001044: SWAP2 00001045: SUB 00001046: SWAP1 00001047: LOG1 00001048: POP 00001049: POP 0000104a: POP 0000104b: JUMP 0000104c: JUMPDEST 0000104d: PUSH1 0x40 0000104f: DUP1 00001050: MLOAD 00001051: PUSH1 0x01 00001053: PUSH1 0x01 00001055: PUSH1 0xa0 00001057: SHL 00001058: SUB 00001059: DUP6 0000105a: AND 0000105b: DUP2 0000105c: MSTORE 0000105d: PUSH1 0x20 0000105f: DUP2 00001060: ADD 00001061: DUP4 00001062: SWAP1 00001063: MSTORE 00001064: PUSH32 0x4d154d4aae216bed6d0926db77c00df2b57c6b5ba4eee05775de20facede3a7b 00001085: SWAP2 00001086: ADD 00001087: PUSH2 0x103f 0000108a: JUMP 0000108b: JUMPDEST 0000108c: PUSH1 0x00 0000108e: PUSH2 0x1097 00001091: DUP3 00001092: SELFBALANCE 00001093: PUSH2 0x17f1 00001096: JUMP 00001097: JUMPDEST 00001098: SWAP1 00001099: POP 0000109a: PUSH1 0x04 0000109c: SLOAD 0000109d: DUP2 0000109e: LT 0000109f: PUSH2 0x1110 000010a2: JUMPI 000010a3: PUSH1 0x40 000010a5: MLOAD 000010a6: PUSH3 0x461bcd 000010aa: PUSH1 0xe5 000010ac: SHL 000010ad: DUP2 000010ae: MSTORE 000010af: PUSH1 0x20 000010b1: PUSH1 0x04 000010b3: DUP3 000010b4: ADD 000010b5: MSTORE 000010b6: PUSH1 0x26 000010b8: PUSH1 0x24 000010ba: DUP3 000010bb: ADD 000010bc: MSTORE 000010bd: PUSH32 0x43726f776466756e643a2046756e64696e672063617020616c72656164792072 000010de: PUSH1 0x44 000010e0: DUP3 000010e1: ADD 000010e2: MSTORE 000010e3: PUSH32 0x6561636865640000000000000000000000000000000000000000000000000000 00001104: PUSH1 0x64 00001106: DUP3 00001107: ADD 00001108: MSTORE 00001109: PUSH1 0x84 0000110b: ADD 0000110c: PUSH2 0x0644 0000110f: JUMP 00001110: JUMPDEST 00001111: PUSH1 0x00 00001113: DUP2 00001114: PUSH1 0x04 00001116: SLOAD 00001117: PUSH2 0x1120 0000111a: SWAP2 0000111b: SWAP1 0000111c: PUSH2 0x17f1 0000111f: JUMP 00001120: JUMPDEST 00001121: SWAP1 00001122: POP 00001123: PUSH2 0x112f 00001126: DUP6 00001127: PUSH2 0x0fdf 0000112a: DUP4 0000112b: PUSH2 0x0899 0000112e: JUMP 0000112f: JUMPDEST 00001130: DUP4 00001131: ISZERO 00001132: PUSH2 0x1196 00001135: JUMPI 00001136: PUSH32 0xfb7955a99240dbf0dd35c467144fb9661fbf7a19839f7d8220400c0dc52e70ae 00001157: DUP6 00001158: DUP3 00001159: DUP7 0000115a: PUSH2 0x1164 0000115d: DUP6 0000115e: DUP10 0000115f: DUP12 00001160: PUSH2 0x1394 00001163: JUMP 00001164: JUMPDEST 00001165: PUSH1 0x40 00001167: DUP1 00001168: MLOAD 00001169: PUSH1 0x01 0000116b: PUSH1 0x01 0000116d: PUSH1 0xa0 0000116f: SHL 00001170: SUB 00001171: SWAP1 00001172: SWAP6 00001173: AND 00001174: DUP6 00001175: MSTORE 00001176: PUSH1 0x20 00001178: DUP6 00001179: ADD 0000117a: SWAP4 0000117b: SWAP1 0000117c: SWAP4 0000117d: MSTORE 0000117e: SWAP2 0000117f: DUP4 00001180: ADD 00001181: MSTORE 00001182: PUSH1 0x60 00001184: DUP3 00001185: ADD 00001186: MSTORE 00001187: PUSH1 0x80 00001189: ADD 0000118a: PUSH1 0x40 0000118c: MLOAD 0000118d: DUP1 0000118e: SWAP2 0000118f: SUB 00001190: SWAP1 00001191: LOG1 00001192: PUSH2 0x11d9 00001195: JUMP 00001196: JUMPDEST 00001197: PUSH1 0x40 00001199: DUP1 0000119a: MLOAD 0000119b: PUSH1 0x01 0000119d: PUSH1 0x01 0000119f: PUSH1 0xa0 000011a1: SHL 000011a2: SUB 000011a3: DUP8 000011a4: AND 000011a5: DUP2 000011a6: MSTORE 000011a7: PUSH1 0x20 000011a9: DUP2 000011aa: ADD 000011ab: DUP4 000011ac: SWAP1 000011ad: MSTORE 000011ae: PUSH32 0x4d154d4aae216bed6d0926db77c00df2b57c6b5ba4eee05775de20facede3a7b 000011cf: SWAP2 000011d0: ADD 000011d1: PUSH1 0x40 000011d3: MLOAD 000011d4: DUP1 000011d5: SWAP2 000011d6: SUB 000011d7: SWAP1 000011d8: LOG1 000011d9: JUMPDEST 000011da: PUSH2 0x11e7 000011dd: DUP6 000011de: PUSH2 0x0ed0 000011e1: DUP4 000011e2: DUP7 000011e3: PUSH2 0x17f1 000011e6: JUMP 000011e7: JUMPDEST 000011e8: POP 000011e9: POP 000011ea: JUMPDEST 000011eb: POP 000011ec: POP 000011ed: POP 000011ee: JUMP 000011ef: JUMPDEST 000011f0: PUSH1 0x01 000011f2: PUSH1 0x01 000011f4: PUSH1 0xa0 000011f6: SHL 000011f7: SUB 000011f8: DUP3 000011f9: AND 000011fa: PUSH1 0x00 000011fc: SWAP1 000011fd: DUP2 000011fe: MSTORE 000011ff: PUSH1 0x0b 00001201: PUSH1 0x20 00001203: MSTORE 00001204: PUSH1 0x40 00001206: SWAP1 00001207: KECCAK256 00001208: SLOAD 00001209: PUSH2 0x1213 0000120c: SWAP1 0000120d: DUP3 0000120e: SWAP1 0000120f: PUSH2 0x17f1 00001212: JUMP 00001213: JUMPDEST 00001214: PUSH1 0x01 00001216: PUSH1 0x01 00001218: PUSH1 0xa0 0000121a: SHL 0000121b: SUB 0000121c: DUP4 0000121d: AND 0000121e: PUSH1 0x00 00001220: SWAP1 00001221: DUP2 00001222: MSTORE 00001223: PUSH1 0x0b 00001225: PUSH1 0x20 00001227: MSTORE 00001228: PUSH1 0x40 0000122a: SWAP1 0000122b: KECCAK256 0000122c: SSTORE 0000122d: PUSH1 0x0a 0000122f: SLOAD 00001230: PUSH2 0x123a 00001233: SWAP1 00001234: DUP3 00001235: SWAP1 00001236: PUSH2 0x17f1 00001239: JUMP 0000123a: JUMPDEST 0000123b: PUSH1 0x0a 0000123d: SSTORE 0000123e: PUSH1 0x40 00001240: MLOAD 00001241: DUP2 00001242: DUP2 00001243: MSTORE 00001244: PUSH1 0x00 00001246: SWAP1 00001247: PUSH1 0x01 00001249: PUSH1 0x01 0000124b: PUSH1 0xa0 0000124d: SHL 0000124e: SUB 0000124f: DUP5 00001250: AND 00001251: SWAP1 00001252: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001273: SWAP1 00001274: PUSH1 0x20 00001276: ADD 00001277: PUSH2 0x09c9 0000127a: JUMP 0000127b: JUMPDEST 0000127c: DUP1 0000127d: SELFBALANCE 0000127e: LT 0000127f: ISZERO 00001280: PUSH2 0x12cb 00001283: JUMPI 00001284: PUSH1 0x40 00001286: MLOAD 00001287: PUSH3 0x461bcd 0000128b: PUSH1 0xe5 0000128d: SHL 0000128e: DUP2 0000128f: MSTORE 00001290: PUSH1 0x20 00001292: PUSH1 0x04 00001294: DUP3 00001295: ADD 00001296: MSTORE 00001297: PUSH1 0x1d 00001299: PUSH1 0x24 0000129b: DUP3 0000129c: ADD 0000129d: MSTORE 0000129e: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e6365000000 000012bf: PUSH1 0x44 000012c1: DUP3 000012c2: ADD 000012c3: MSTORE 000012c4: PUSH1 0x64 000012c6: ADD 000012c7: PUSH2 0x0644 000012ca: JUMP 000012cb: JUMPDEST 000012cc: PUSH1 0x00 000012ce: DUP3 000012cf: PUSH1 0x01 000012d1: PUSH1 0x01 000012d3: PUSH1 0xa0 000012d5: SHL 000012d6: SUB 000012d7: AND 000012d8: DUP3 000012d9: PUSH1 0x40 000012db: MLOAD 000012dc: PUSH1 0x00 000012de: PUSH1 0x40 000012e0: MLOAD 000012e1: DUP1 000012e2: DUP4 000012e3: SUB 000012e4: DUP2 000012e5: DUP6 000012e6: DUP8 000012e7: GAS 000012e8: CALL 000012e9: SWAP3 000012ea: POP 000012eb: POP 000012ec: POP 000012ed: RETURNDATASIZE 000012ee: DUP1 000012ef: PUSH1 0x00 000012f1: DUP2 000012f2: EQ 000012f3: PUSH2 0x1318 000012f6: JUMPI 000012f7: PUSH1 0x40 000012f9: MLOAD 000012fa: SWAP2 000012fb: POP 000012fc: PUSH1 0x1f 000012fe: NOT 000012ff: PUSH1 0x3f 00001301: RETURNDATASIZE 00001302: ADD 00001303: AND 00001304: DUP3 00001305: ADD 00001306: PUSH1 0x40 00001308: MSTORE 00001309: RETURNDATASIZE 0000130a: DUP3 0000130b: MSTORE 0000130c: RETURNDATASIZE 0000130d: PUSH1 0x00 0000130f: PUSH1 0x20 00001311: DUP5 00001312: ADD 00001313: RETURNDATACOPY 00001314: PUSH2 0x131d 00001317: JUMP 00001318: JUMPDEST 00001319: PUSH1 0x60 0000131b: SWAP2 0000131c: POP 0000131d: JUMPDEST 0000131e: POP 0000131f: POP 00001320: SWAP1 00001321: POP 00001322: DUP1 00001323: PUSH2 0x11ea 00001326: JUMPI 00001327: PUSH1 0x40 00001329: MLOAD 0000132a: PUSH3 0x461bcd 0000132e: PUSH1 0xe5 00001330: SHL 00001331: DUP2 00001332: MSTORE 00001333: PUSH1 0x20 00001335: PUSH1 0x04 00001337: DUP3 00001338: ADD 00001339: MSTORE 0000133a: PUSH1 0x3a 0000133c: PUSH1 0x24 0000133e: DUP3 0000133f: ADD 00001340: MSTORE 00001341: PUSH32 0x416464726573733a20756e61626c6520746f2073656e642076616c75652c2072 00001362: PUSH1 0x44 00001364: DUP3 00001365: ADD 00001366: MSTORE 00001367: PUSH32 0x6563697069656e74206d61792068617665207265766572746564000000000000 00001388: PUSH1 0x64 0000138a: DUP3 0000138b: ADD 0000138c: MSTORE 0000138d: PUSH1 0x84 0000138f: ADD 00001390: PUSH2 0x0644 00001393: JUMP 00001394: JUMPDEST 00001395: PUSH1 0x07 00001397: SLOAD 00001398: PUSH1 0x40 0000139a: MLOAD 0000139b: PUSH32 0x38d37b9b00000000000000000000000000000000000000000000000000000000 000013bc: DUP2 000013bd: MSTORE 000013be: PUSH1 0x04 000013c0: DUP2 000013c1: ADD 000013c2: DUP5 000013c3: SWAP1 000013c4: MSTORE 000013c5: PUSH1 0x00 000013c7: SWAP2 000013c8: PUSH2 0x0100 000013cb: SWAP1 000013cc: DIV 000013cd: PUSH1 0x01 000013cf: PUSH1 0x01 000013d1: PUSH1 0xa0 000013d3: SHL 000013d4: SUB 000013d5: AND 000013d6: SWAP1 000013d7: PUSH4 0x38d37b9b 000013dc: SWAP1 000013dd: PUSH1 0x24 000013df: ADD 000013e0: PUSH1 0x20 000013e2: PUSH1 0x40 000013e4: MLOAD 000013e5: DUP1 000013e6: DUP4 000013e7: SUB 000013e8: DUP2 000013e9: DUP7 000013ea: DUP1 000013eb: EXTCODESIZE 000013ec: ISZERO 000013ed: DUP1 000013ee: ISZERO 000013ef: PUSH2 0x13f7 000013f2: JUMPI 000013f3: PUSH1 0x00 000013f5: DUP1 000013f6: REVERT 000013f7: JUMPDEST 000013f8: POP 000013f9: GAS 000013fa: STATICCALL 000013fb: ISZERO 000013fc: DUP1 000013fd: ISZERO 000013fe: PUSH2 0x140b 00001401: JUMPI 00001402: RETURNDATASIZE 00001403: PUSH1 0x00 00001405: DUP1 00001406: RETURNDATACOPY 00001407: RETURNDATASIZE 00001408: PUSH1 0x00 0000140a: REVERT 0000140b: JUMPDEST 0000140c: POP 0000140d: POP 0000140e: POP 0000140f: POP 00001410: PUSH1 0x40 00001412: MLOAD 00001413: RETURNDATASIZE 00001414: PUSH1 0x1f 00001416: NOT 00001417: PUSH1 0x1f 00001419: DUP3 0000141a: ADD 0000141b: AND 0000141c: DUP3 0000141d: ADD 0000141e: DUP1 0000141f: PUSH1 0x40 00001421: MSTORE 00001422: POP 00001423: DUP2 00001424: ADD 00001425: SWAP1 00001426: PUSH2 0x142f 00001429: SWAP2 0000142a: SWAP1 0000142b: PUSH2 0x167f 0000142e: JUMP 0000142f: JUMPDEST 00001430: DUP5 00001431: LT 00001432: ISZERO 00001433: PUSH2 0x14a4 00001436: JUMPI 00001437: PUSH1 0x40 00001439: MLOAD 0000143a: PUSH3 0x461bcd 0000143e: PUSH1 0xe5 00001440: SHL 00001441: DUP2 00001442: MSTORE 00001443: PUSH1 0x20 00001445: PUSH1 0x04 00001447: DUP3 00001448: ADD 00001449: MSTORE 0000144a: PUSH1 0x2d 0000144c: PUSH1 0x24 0000144e: DUP3 0000144f: ADD 00001450: MSTORE 00001451: PUSH32 0x556e61626c652070757263686173652065646974696f6e207769746820617661 00001472: PUSH1 0x44 00001474: DUP3 00001475: ADD 00001476: MSTORE 00001477: PUSH32 0x696c61626c6520616d6f756e7400000000000000000000000000000000000000 00001498: PUSH1 0x64 0000149a: DUP3 0000149b: ADD 0000149c: MSTORE 0000149d: PUSH1 0x84 0000149f: ADD 000014a0: PUSH2 0x0644 000014a3: JUMP 000014a4: JUMPDEST 000014a5: PUSH1 0x07 000014a7: SLOAD 000014a8: PUSH1 0x40 000014aa: MLOAD 000014ab: PUSH32 0x121e498400000000000000000000000000000000000000000000000000000000 000014cc: DUP2 000014cd: MSTORE 000014ce: PUSH1 0x04 000014d0: DUP2 000014d1: ADD 000014d2: DUP6 000014d3: SWAP1 000014d4: MSTORE 000014d5: PUSH1 0x01 000014d7: PUSH1 0x01 000014d9: PUSH1 0xa0 000014db: SHL 000014dc: SUB 000014dd: DUP5 000014de: DUP2 000014df: AND 000014e0: PUSH1 0x24 000014e2: DUP4 000014e3: ADD 000014e4: MSTORE 000014e5: PUSH2 0x0100 000014e8: SWAP1 000014e9: SWAP3 000014ea: DIV 000014eb: SWAP1 000014ec: SWAP2 000014ed: AND 000014ee: SWAP1 000014ef: PUSH4 0x121e4984 000014f4: SWAP1 000014f5: PUSH1 0x44 000014f7: ADD 000014f8: PUSH1 0x20 000014fa: PUSH1 0x40 000014fc: MLOAD 000014fd: DUP1 000014fe: DUP4 000014ff: SUB 00001500: DUP2 00001501: PUSH1 0x00 00001503: DUP8 00001504: DUP1 00001505: EXTCODESIZE 00001506: ISZERO 00001507: DUP1 00001508: ISZERO 00001509: PUSH2 0x1511 0000150c: JUMPI 0000150d: PUSH1 0x00 0000150f: DUP1 00001510: REVERT 00001511: JUMPDEST 00001512: POP 00001513: GAS 00001514: CALL 00001515: ISZERO 00001516: DUP1 00001517: ISZERO 00001518: PUSH2 0x1525 0000151b: JUMPI 0000151c: RETURNDATASIZE 0000151d: PUSH1 0x00 0000151f: DUP1 00001520: RETURNDATACOPY 00001521: RETURNDATASIZE 00001522: PUSH1 0x00 00001524: REVERT 00001525: JUMPDEST 00001526: POP 00001527: POP 00001528: POP 00001529: POP 0000152a: PUSH1 0x40 0000152c: MLOAD 0000152d: RETURNDATASIZE 0000152e: PUSH1 0x1f 00001530: NOT 00001531: PUSH1 0x1f 00001533: DUP3 00001534: ADD 00001535: AND 00001536: DUP3 00001537: ADD 00001538: DUP1 00001539: PUSH1 0x40 0000153b: MSTORE 0000153c: POP 0000153d: DUP2 0000153e: ADD 0000153f: SWAP1 00001540: PUSH2 0x1549 00001543: SWAP2 00001544: SWAP1 00001545: PUSH2 0x167f 00001548: JUMP 00001549: JUMPDEST 0000154a: SWAP5 0000154b: SWAP4 0000154c: POP 0000154d: POP 0000154e: POP 0000154f: POP 00001550: JUMP 00001551: JUMPDEST 00001552: PUSH1 0x00 00001554: PUSH1 0x20 00001556: DUP3 00001557: DUP5 00001558: SUB 00001559: SLT 0000155a: ISZERO 0000155b: PUSH2 0x1563 0000155e: JUMPI 0000155f: PUSH1 0x00 00001561: DUP1 00001562: REVERT 00001563: JUMPDEST 00001564: DUP2 00001565: CALLDATALOAD 00001566: PUSH2 0x06ee 00001569: DUP2 0000156a: PUSH2 0x186f 0000156d: JUMP 0000156e: JUMPDEST 0000156f: PUSH1 0x00 00001571: PUSH1 0x20 00001573: DUP3 00001574: DUP5 00001575: SUB 00001576: SLT 00001577: ISZERO 00001578: PUSH2 0x1580 0000157b: JUMPI 0000157c: PUSH1 0x00 0000157e: DUP1 0000157f: REVERT 00001580: JUMPDEST 00001581: DUP2 00001582: MLOAD 00001583: PUSH2 0x06ee 00001586: DUP2 00001587: PUSH2 0x186f 0000158a: JUMP 0000158b: JUMPDEST 0000158c: PUSH1 0x00 0000158e: DUP1 0000158f: PUSH1 0x00 00001591: PUSH1 0x60 00001593: DUP5 00001594: DUP7 00001595: SUB 00001596: SLT 00001597: ISZERO 00001598: PUSH2 0x15a0 0000159b: JUMPI 0000159c: PUSH1 0x00 0000159e: DUP1 0000159f: REVERT 000015a0: JUMPDEST 000015a1: DUP4 000015a2: CALLDATALOAD 000015a3: PUSH2 0x15ab 000015a6: DUP2 000015a7: PUSH2 0x186f 000015aa: JUMP 000015ab: JUMPDEST 000015ac: SWAP6 000015ad: PUSH1 0x20 000015af: DUP6 000015b0: ADD 000015b1: CALLDATALOAD 000015b2: SWAP6 000015b3: POP 000015b4: PUSH1 0x40 000015b6: SWAP1 000015b7: SWAP5 000015b8: ADD 000015b9: CALLDATALOAD 000015ba: SWAP4 000015bb: SWAP3 000015bc: POP 000015bd: POP 000015be: POP 000015bf: JUMP 000015c0: JUMPDEST 000015c1: PUSH1 0x00 000015c3: DUP1 000015c4: PUSH1 0x40 000015c6: DUP4 000015c7: DUP6 000015c8: SUB 000015c9: SLT 000015ca: ISZERO 000015cb: PUSH2 0x15d3 000015ce: JUMPI 000015cf: PUSH1 0x00 000015d1: DUP1 000015d2: REVERT 000015d3: JUMPDEST 000015d4: DUP3 000015d5: CALLDATALOAD 000015d6: PUSH2 0x15de 000015d9: DUP2 000015da: PUSH2 0x186f 000015dd: JUMP 000015de: JUMPDEST 000015df: SWAP2 000015e0: POP 000015e1: PUSH1 0x20 000015e3: DUP4 000015e4: ADD 000015e5: CALLDATALOAD 000015e6: PUSH2 0x15ee 000015e9: DUP2 000015ea: PUSH2 0x186f 000015ed: JUMP 000015ee: JUMPDEST 000015ef: DUP1 000015f0: SWAP2 000015f1: POP 000015f2: POP 000015f3: SWAP3 000015f4: POP 000015f5: SWAP3 000015f6: SWAP1 000015f7: POP 000015f8: JUMP 000015f9: JUMPDEST 000015fa: PUSH1 0x00 000015fc: DUP1 000015fd: PUSH1 0x00 000015ff: PUSH1 0x60 00001601: DUP5 00001602: DUP7 00001603: SUB 00001604: SLT 00001605: ISZERO 00001606: PUSH2 0x160e 00001609: JUMPI 0000160a: PUSH1 0x00 0000160c: DUP1 0000160d: REVERT 0000160e: JUMPDEST 0000160f: DUP4 00001610: CALLDATALOAD 00001611: PUSH2 0x1619 00001614: DUP2 00001615: PUSH2 0x186f 00001618: JUMP 00001619: JUMPDEST 0000161a: SWAP3 0000161b: POP 0000161c: PUSH1 0x20 0000161e: DUP5 0000161f: ADD 00001620: CALLDATALOAD 00001621: PUSH2 0x1629 00001624: DUP2 00001625: PUSH2 0x186f 00001628: JUMP 00001629: JUMPDEST 0000162a: SWAP3 0000162b: SWAP6 0000162c: SWAP3 0000162d: SWAP5 0000162e: POP 0000162f: POP 00001630: POP 00001631: PUSH1 0x40 00001633: SWAP2 00001634: SWAP1 00001635: SWAP2 00001636: ADD 00001637: CALLDATALOAD 00001638: SWAP1 00001639: JUMP 0000163a: JUMPDEST 0000163b: PUSH1 0x00 0000163d: DUP1 0000163e: PUSH1 0x40 00001640: DUP4 00001641: DUP6 00001642: SUB 00001643: SLT 00001644: ISZERO 00001645: PUSH2 0x164d 00001648: JUMPI 00001649: PUSH1 0x00 0000164b: DUP1 0000164c: REVERT 0000164d: JUMPDEST 0000164e: DUP3 0000164f: CALLDATALOAD 00001650: PUSH2 0x1658 00001653: DUP2 00001654: PUSH2 0x186f 00001657: JUMP 00001658: JUMPDEST 00001659: SWAP5 0000165a: PUSH1 0x20 0000165c: SWAP4 0000165d: SWAP1 0000165e: SWAP4 0000165f: ADD 00001660: CALLDATALOAD 00001661: SWAP4 00001662: POP 00001663: POP 00001664: POP 00001665: JUMP 00001666: JUMPDEST 00001667: PUSH1 0x00 00001669: PUSH1 0x20 0000166b: DUP3 0000166c: DUP5 0000166d: SUB 0000166e: SLT 0000166f: ISZERO 00001670: PUSH2 0x1678 00001673: JUMPI 00001674: PUSH1 0x00 00001676: DUP1 00001677: REVERT 00001678: JUMPDEST 00001679: POP 0000167a: CALLDATALOAD 0000167b: SWAP2 0000167c: SWAP1 0000167d: POP 0000167e: JUMP 0000167f: JUMPDEST 00001680: PUSH1 0x00 00001682: PUSH1 0x20 00001684: DUP3 00001685: DUP5 00001686: SUB 00001687: SLT 00001688: ISZERO 00001689: PUSH2 0x1691 0000168c: JUMPI 0000168d: PUSH1 0x00 0000168f: DUP1 00001690: REVERT 00001691: JUMPDEST 00001692: POP 00001693: MLOAD 00001694: SWAP2 00001695: SWAP1 00001696: POP 00001697: JUMP 00001698: JUMPDEST 00001699: PUSH1 0x00 0000169b: DUP1 0000169c: PUSH1 0x40 0000169e: DUP4 0000169f: DUP6 000016a0: SUB 000016a1: SLT 000016a2: ISZERO 000016a3: PUSH2 0x16ab 000016a6: JUMPI 000016a7: PUSH1 0x00 000016a9: DUP1 000016aa: REVERT 000016ab: JUMPDEST 000016ac: DUP3 000016ad: CALLDATALOAD 000016ae: SWAP2 000016af: POP 000016b0: PUSH1 0x20 000016b2: DUP4 000016b3: ADD 000016b4: CALLDATALOAD 000016b5: PUSH2 0x15ee 000016b8: DUP2 000016b9: PUSH2 0x186f 000016bc: JUMP 000016bd: JUMPDEST 000016be: PUSH1 0x00 000016c0: DUP1 000016c1: PUSH1 0x40 000016c3: DUP4 000016c4: DUP6 000016c5: SUB 000016c6: SLT 000016c7: ISZERO 000016c8: PUSH2 0x16d0 000016cb: JUMPI 000016cc: PUSH1 0x00 000016ce: DUP1 000016cf: REVERT 000016d0: JUMPDEST 000016d1: POP 000016d2: POP 000016d3: DUP1 000016d4: CALLDATALOAD 000016d5: SWAP3 000016d6: PUSH1 0x20 000016d8: SWAP1 000016d9: SWAP2 000016da: ADD 000016db: CALLDATALOAD 000016dc: SWAP2 000016dd: POP 000016de: JUMP 000016df: JUMPDEST 000016e0: PUSH1 0x20 000016e2: DUP2 000016e3: ADD 000016e4: PUSH1 0x02 000016e6: DUP4 000016e7: LT 000016e8: PUSH2 0x1701 000016eb: JUMPI 000016ec: PUSH4 0x4e487b71 000016f1: PUSH1 0xe0 000016f3: SHL 000016f4: PUSH1 0x00 000016f6: MSTORE 000016f7: PUSH1 0x21 000016f9: PUSH1 0x04 000016fb: MSTORE 000016fc: PUSH1 0x24 000016fe: PUSH1 0x00 00001700: REVERT 00001701: JUMPDEST 00001702: SWAP2 00001703: SWAP1 00001704: MSTORE 00001705: SWAP1 00001706: JUMP 00001707: JUMPDEST 00001708: PUSH1 0x00 0000170a: PUSH1 0x20 0000170c: DUP1 0000170d: DUP4 0000170e: MSTORE 0000170f: DUP4 00001710: MLOAD 00001711: DUP1 00001712: DUP3 00001713: DUP6 00001714: ADD 00001715: MSTORE 00001716: PUSH1 0x00 00001718: JUMPDEST 00001719: DUP2 0000171a: DUP2 0000171b: LT 0000171c: ISZERO 0000171d: PUSH2 0x1734 00001720: JUMPI 00001721: DUP6 00001722: DUP2 00001723: ADD 00001724: DUP4 00001725: ADD 00001726: MLOAD 00001727: DUP6 00001728: DUP3 00001729: ADD 0000172a: PUSH1 0x40 0000172c: ADD 0000172d: MSTORE 0000172e: DUP3 0000172f: ADD 00001730: PUSH2 0x1718 00001733: JUMP 00001734: JUMPDEST 00001735: DUP2 00001736: DUP2 00001737: GT 00001738: ISZERO 00001739: PUSH2 0x1746 0000173c: JUMPI 0000173d: PUSH1 0x00 0000173f: PUSH1 0x40 00001741: DUP4 00001742: DUP8 00001743: ADD 00001744: ADD 00001745: MSTORE 00001746: JUMPDEST 00001747: POP 00001748: PUSH1 0x1f 0000174a: ADD 0000174b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000176c: AND 0000176d: SWAP3 0000176e: SWAP1 0000176f: SWAP3 00001770: ADD 00001771: PUSH1 0x40 00001773: ADD 00001774: SWAP4 00001775: SWAP3 00001776: POP 00001777: POP 00001778: POP 00001779: JUMP 0000177a: JUMPDEST 0000177b: PUSH1 0x00 0000177d: DUP3 0000177e: NOT 0000177f: DUP3 00001780: GT 00001781: ISZERO 00001782: PUSH2 0x178d 00001785: JUMPI 00001786: PUSH2 0x178d 00001789: PUSH2 0x1843 0000178c: JUMP 0000178d: JUMPDEST 0000178e: POP 0000178f: ADD 00001790: SWAP1 00001791: JUMP 00001792: JUMPDEST 00001793: PUSH1 0x00 00001795: DUP3 00001796: PUSH2 0x17af 00001799: JUMPI 0000179a: PUSH4 0x4e487b71 0000179f: PUSH1 0xe0 000017a1: SHL 000017a2: PUSH1 0x00 000017a4: MSTORE 000017a5: PUSH1 0x12 000017a7: PUSH1 0x04 000017a9: MSTORE 000017aa: PUSH1 0x24 000017ac: PUSH1 0x00 000017ae: REVERT 000017af: JUMPDEST 000017b0: POP 000017b1: DIV 000017b2: SWAP1 000017b3: JUMP 000017b4: JUMPDEST 000017b5: PUSH1 0x00 000017b7: DUP2 000017b8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000017d9: DIV 000017da: DUP4 000017db: GT 000017dc: DUP3 000017dd: ISZERO 000017de: ISZERO 000017df: AND 000017e0: ISZERO 000017e1: PUSH2 0x17ec 000017e4: JUMPI 000017e5: PUSH2 0x17ec 000017e8: PUSH2 0x1843 000017eb: JUMP 000017ec: JUMPDEST 000017ed: POP 000017ee: MUL 000017ef: SWAP1 000017f0: JUMP 000017f1: JUMPDEST 000017f2: PUSH1 0x00 000017f4: DUP3 000017f5: DUP3 000017f6: LT 000017f7: ISZERO 000017f8: PUSH2 0x1803 000017fb: JUMPI 000017fc: PUSH2 0x1803 000017ff: PUSH2 0x1843 00001802: JUMP 00001803: JUMPDEST 00001804: POP 00001805: SUB 00001806: SWAP1 00001807: JUMP 00001808: JUMPDEST 00001809: PUSH1 0x01 0000180b: DUP2 0000180c: DUP2 0000180d: SHR 0000180e: SWAP1 0000180f: DUP3 00001810: AND 00001811: DUP1 00001812: PUSH2 0x181c 00001815: JUMPI 00001816: PUSH1 0x7f 00001818: DUP3 00001819: AND 0000181a: SWAP2 0000181b: POP 0000181c: JUMPDEST 0000181d: PUSH1 0x20 0000181f: DUP3 00001820: LT 00001821: DUP2 00001822: EQ 00001823: ISZERO 00001824: PUSH2 0x183d 00001827: JUMPI 00001828: PUSH4 0x4e487b71 0000182d: PUSH1 0xe0 0000182f: SHL 00001830: PUSH1 0x00 00001832: MSTORE 00001833: PUSH1 0x22 00001835: PUSH1 0x04 00001837: MSTORE 00001838: PUSH1 0x24 0000183a: PUSH1 0x00 0000183c: REVERT 0000183d: JUMPDEST 0000183e: POP 0000183f: SWAP2 00001840: SWAP1 00001841: POP 00001842: JUMP 00001843: JUMPDEST 00001844: PUSH4 0x4e487b71 00001849: PUSH1 0xe0 0000184b: SHL 0000184c: PUSH1 0x00 0000184e: MSTORE 0000184f: PUSH1 0x11 00001851: PUSH1 0x04 00001853: MSTORE 00001854: PUSH1 0x24 00001856: PUSH1 0x00 00001858: REVERT 00001859: JUMPDEST 0000185a: PUSH4 0x4e487b71 0000185f: PUSH1 0xe0 00001861: SHL 00001862: PUSH1 0x00 00001864: MSTORE 00001865: PUSH1 0x21 00001867: PUSH1 0x04 00001869: MSTORE 0000186a: PUSH1 0x24 0000186c: PUSH1 0x00 0000186e: REVERT 0000186f: JUMPDEST 00001870: PUSH1 0x01 00001872: PUSH1 0x01 00001874: PUSH1 0xa0 00001876: SHL 00001877: SUB 00001878: DUP2 00001879: AND 0000187a: DUP2 0000187b: EQ 0000187c: PUSH2 0x0eeb 0000187f: JUMPI 00001880: PUSH1 0x00 00001882: DUP1 00001883: REVERT 00001884: INVALID 00001885: LOG2 00001886: PUSH5 0x6970667358 0000188c: UNKNOWN(0x22) 0000188d: SLT 0000188e: KECCAK256 0000188f: EXP 00001890: SWAP11 00001891: UNKNOWN(0xB3) 00001892: UNKNOWN(0xEA) 00001893: UNKNOWN(0xCE) 00001894: UNKNOWN(0xC5) 00001895: DUP7 00001896: UNKNOWN(0xBE) 00001897: UNKNOWN(0xCF) 00001898: SWAP15 00001899: DUP6 0000189a: UNKNOWN(0xC3) 0000189b: KECCAK256 0000189c: PUSH1 0x42 0000189e: BALANCE 0000189f: UNKNOWN(0xEA) 000018a0: UNKNOWN(0x2E) 000018a1: XOR 000018a2: UNKNOWN(0x0E) 000018a3: PUSH1 0xe1 000018a5: AND 000018a6: UNKNOWN(0x2E) 000018a7: PUSH0 000018a8: PUSH32
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | slither | CrowdfundWithEditionsLogic.sendValue(address,uint256) (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#165-177) sends eth to arbitrary user | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "arbitrary-send-eth",
"elements": [
{
"name": "sendValue",
"type": "function",
"source_mapping": {
"lines": [
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177
],
"start": 5160,
"length": 457,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsLogic",
"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
],
"start": 551,
"length": 8799,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
}
},
"signature": "sendValue(address,uint256)"
}
},
{
"name": "(success,None) = recipient.call{value: amount}()",
"type": "node",
"source_mapping": {
"lines": [
172
],
"start": 5436,
"length": 52,
"ending_column": 61,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 9,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
},
"type_specific_fields": {
"parent": {
"name": "sendValue",
"type": "function",
"source_mapping": {
"lines": [
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177
],
"start": 5160,
"length": 457,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsLogic",
"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
],
"start": 551,
"length": 8799,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
}
},
"signature": "sendValue(address,uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"name": "sendValue",
"type": "function",
"lines": [
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177
]
},
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"name": "(success,None) = recipient.call{value: amount}()",
"type": "node",
"lines": [
172
]
}
],
"description": "CrowdfundWithEditionsLogic.sendValue(address,uint256) (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#165-177) sends eth to arbitrary user\n\tDangerous calls:\n\t- (success,None) = recipient.call{value: amount}() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#172)"
}
|
| high | other | slither | CrowdfundWithEditionsStorage.fundingCap (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#42) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "fundingCap",
"type": "variable",
"source_mapping": {
"lines": [
42
],
"start": 1263,
"length": 25,
"ending_column": 30,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsStorage",
"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
],
"start": 137,
"length": 1676,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
}
}
}
},
{
"name": "_contribute",
"type": "function",
"source_mapping": {
"lines": [
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
],
"start": 6392,
"length": 2447,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsLogic",
"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
],
"start": 551,
"length": 8799,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
}
},
"signature": "_contribute(address,uint256,uint256)"
}
}
],
"locations": [
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"name": "fundingCap",
"type": "variable",
"lines": [
42
]
},
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"name": "_contribute",
"type": "function",
"lines": [
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
]
}
],
"description": "CrowdfundWithEditionsStorage.fundingCap (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#42) is never initialized. It is used in:\n\t- CrowdfundWithEditionsLogic._contribute(address,uint256,uint256) (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#199-252)"
}
|
| high | other | slither | CrowdfundWithEditionsStorage.operatorPercent (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#48) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "operatorPercent",
"type": "variable",
"source_mapping": {
"lines": [
48
],
"start": 1493,
"length": 30,
"ending_column": 35,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsStorage",
"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
],
"start": 137,
"length": 1676,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
}
}
}
},
{
"name": "closeFunding",
"type": "function",
"source_mapping": {
"lines": [
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139
],
"start": 4037,
"length": 572,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsLogic",
"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
],
"start": 551,
"length": 8799,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
}
},
"signature": "closeFunding()"
}
}
],
"locations": [
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"name": "operatorPercent",
"type": "variable",
"lines": [
48
]
},
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"name": "closeFunding",
"type": "function",
"lines": [
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139
]
}
],
"description": "CrowdfundWithEditionsStorage.operatorPercent (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#48) is never initialized. It is used in:\n\t- CrowdfundWithEditionsLogic.closeFunding() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#127-139)"
}
|
| high | other | slither | CrowdfundWithEditionsStorage.treasuryConfig (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#39) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "treasuryConfig",
"type": "variable",
"source_mapping": {
"lines": [
39
],
"start": 1139,
"length": 29,
"ending_column": 34,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsStorage",
"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
],
"start": 137,
"length": 1676,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
}
}
}
},
{
"name": "_withdraw",
"type": "function",
"source_mapping": {
"lines": [
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269
],
"start": 8845,
"length": 503,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsLogic",
"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
],
"start": 551,
"length": 8799,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
}
},
"signature": "_withdraw()"
}
}
],
"locations": [
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"name": "treasuryConfig",
"type": "variable",
"lines": [
39
]
},
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"name": "_withdraw",
"type": "function",
"lines": [
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269
]
}
],
"description": "CrowdfundWithEditionsStorage.treasuryConfig (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#39) is never initialized. It is used in:\n\t- CrowdfundWithEditionsLogic._withdraw() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#254-269)"
}
|
| high | other | slither | CrowdfundWithEditionsStorage.feePercentage (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#45) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "feePercentage",
"type": "variable",
"source_mapping": {
"lines": [
45
],
"start": 1367,
"length": 28,
"ending_column": 33,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsStorage",
"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
],
"start": 137,
"length": 1676,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
}
}
}
},
{
"name": "_withdraw",
"type": "function",
"source_mapping": {
"lines": [
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269
],
"start": 8845,
"length": 503,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsLogic",
"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
],
"start": 551,
"length": 8799,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
}
},
"signature": "_withdraw()"
}
}
],
"locations": [
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"name": "feePercentage",
"type": "variable",
"lines": [
45
]
},
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"name": "_withdraw",
"type": "function",
"lines": [
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269
]
}
],
"description": "CrowdfundWithEditionsStorage.feePercentage (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#45) is never initialized. It is used in:\n\t- CrowdfundWithEditionsLogic._withdraw() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#254-269)"
}
|
| high | other | slither | CrowdfundWithEditionsStorage.operator (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#33) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "operator",
"type": "variable",
"source_mapping": {
"lines": [
33
],
"start": 933,
"length": 31,
"ending_column": 36,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsStorage",
"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
],
"start": 137,
"length": 1676,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
}
}
}
},
{
"name": "closeFunding",
"type": "function",
"source_mapping": {
"lines": [
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139
],
"start": 4037,
"length": 572,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsLogic",
"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
],
"start": 551,
"length": 8799,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
}
},
"signature": "closeFunding()"
}
}
],
"locations": [
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"name": "operator",
"type": "variable",
"lines": [
33
]
},
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"name": "closeFunding",
"type": "function",
"lines": [
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139
]
}
],
"description": "CrowdfundWithEditionsStorage.operator (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#33) is never initialized. It is used in:\n\t- CrowdfundWithEditionsLogic.closeFunding() (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#127-139)"
}
|
| high | other | slither | CrowdfundWithEditionsStorage.editions (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#58) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "editions",
"type": "variable",
"source_mapping": {
"lines": [
58
],
"start": 1787,
"length": 23,
"ending_column": 28,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsStorage",
"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
],
"start": 137,
"length": 1676,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol"
}
}
}
},
{
"name": "buyEdition",
"type": "function",
"source_mapping": {
"lines": [
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196
],
"start": 5673,
"length": 662,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
},
"type_specific_fields": {
"parent": {
"name": "CrowdfundWithEditionsLogic",
"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
],
"start": 551,
"length": 8799,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-q7j49dkq/contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"filename_relative": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol"
}
},
"signature": "buyEdition(uint256,uint256,address)"
}
}
],
"locations": [
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol",
"name": "editions",
"type": "variable",
"lines": [
58
]
},
{
"file": "contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol",
"name": "buyEdition",
"type": "function",
"lines": [
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196
]
}
],
"description": "CrowdfundWithEditionsStorage.editions (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsStorage.sol#58) is never initialized. It is used in:\n\t- CrowdfundWithEditionsLogic.buyEdition(uint256,uint256,address) (contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol#181-196)"
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x0996d66144b666a24518f1e125bf91c18ed81e74b00c5f53599e26424cbe0df1
call_targets:
0x0e41862deeca185f784b96a0bc44de21f0436306
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0996d66144b666a24518f1e125bf91c18ed81e74b00c5f53599e26424cbe0df1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0e41862deeca185f784b96a0bc44de21f0436306"
],
"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": "0xda35a26f",
"selector": "0xda35a26f",
"calldata_variants": [
"0xda35a26f",
"0xda35a26f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdb006a75",
"selector": "0xdb006a75",
"calldata_variants": [
"0xdb006a75",
"0xdb006a750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3b2594f",
"selector": "0xe3b2594f",
"calldata_variants": [
"0xe3b2594f",
"0xe3b2594f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb8ddbcb3",
"selector": "0xb8ddbcb3",
"calldata_variants": [
"0xb8ddbcb3",
"0xb8ddbcb30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcfd7b0df",
"selector": "0xcfd7b0df",
"calldata_variants": [
"0xcfd7b0df",
"0xcfd7b0df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda046b67",
"selector": "0xda046b67",
"calldata_variants": [
"0xda046b67",
"0xda046b670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa001ecdd",
"selector": "0xa001ecdd",
"calldata_variants": [
"0xa001ecdd",
"0xa001ecdd0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3729,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4840,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5396,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x0996d66144b666a24518f1e125bf91c18ed81e74b00c5f53599e26424cbe0df1
call_targets:
0x0e41862deeca185f784b96a0bc44de21f0436306
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0996d66144b666a24518f1e125bf91c18ed81e74b00c5f53599e26424cbe0df1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0e41862deeca185f784b96a0bc44de21f0436306"
],
"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": "0xda35a26f",
"selector": "0xda35a26f",
"calldata_variants": [
"0xda35a26f",
"0xda35a26f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdb006a75",
"selector": "0xdb006a75",
"calldata_variants": [
"0xdb006a75",
"0xdb006a750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe3b2594f",
"selector": "0xe3b2594f",
"calldata_variants": [
"0xe3b2594f",
"0xe3b2594f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb8ddbcb3",
"selector": "0xb8ddbcb3",
"calldata_variants": [
"0xb8ddbcb3",
"0xb8ddbcb30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcfd7b0df",
"selector": "0xcfd7b0df",
"calldata_variants": [
"0xcfd7b0df",
"0xcfd7b0df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda046b67",
"selector": "0xda046b67",
"calldata_variants": [
"0xda046b67",
"0xda046b670000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa001ecdd",
"selector": "0xa001ecdd",
"calldata_variants": [
"0xa001ecdd",
"0xa001ecdd0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3729,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4840,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5396,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| medium | access_control | codex | Anyone can trigger withdrawals at any time, breaking funding cap and redemption backing | 75 | no | — |
viewevidence_json{
"evidence": "withdraw() is public and unguarded, and _withdraw() transfers the entire contract balance to treasury and fundingRecipient without checking status or access control.",
"locations": [
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:151",
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:254"
],
"recommendation": "Restrict withdraw() to the operator and/or require status == TRADING (or a dedicated finalized state). Consider tracking totalRaised separately from contract balance so withdrawals cannot reset the cap logic.",
"exploit_scenario": "An attacker (or any user) calls withdraw() during FUNDING or before closeFunding. This drains all ETH to treasury/fundingRecipient even while fundraising is still open. Because fundingCap checks rely on address(this).balance, the balance drop allows further contributions beyond the cap and mints additional tokens that are no longer backed by ETH, effectively breaking redemption expectations."
}
|
| low | reentrancy | codex | Reentrancy in _withdraw allows treasury to collect multiple fees | 65 | no | — |
viewevidence_json{
"evidence": "_withdraw() performs an external call to the treasury via sendValue() before finishing the withdrawal and has no reentrancy guard.",
"locations": [
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:254",
"contracts/producers/crowdfunds/crowdfund-with-editions/CrowdfundWithEditionsLogic.sol:263"
],
"recommendation": "Add nonReentrant to withdraw/_withdraw or restructure to use a checks-effects-interactions pattern with a stored payout amount, and avoid external calls before locking withdrawals.",
"exploit_scenario": "If the treasury address is a contract, it can reenter withdraw() from its fallback during the first fee transfer. Each reentrant call recomputes the fee on the remaining balance and transfers another fee before the fundingRecipient is paid, resulting in the treasury receiving more than the configured fee percentage."
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 5
}
|