019be3d6-8480-72cd-9e22-b654093a3ebf
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 |
|---|---|---|---|---|
| 41065 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 41066 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 41067 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 41068 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 41069 | capability.graph | complete | 1 / 3 | 2 months ago |
| 41070 | detector.run | complete | 1 / 3 | 2 months ago |
| 41071 | validation.fork | complete | 1 / 3 | 2 months ago |
| 41417 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 41418 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-n78zzqrt)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-n78zzqrt)
PharaGoddess._withdraw(address,uint256) (contracts/Contract.sol#2005-2007) sends eth to arbitrary user
Dangerous calls:
- (sent,None) = account.call{value: amount}() (contracts/Contract.sol#2006)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations
PharaGoddess.tokenURI(uint256) (contracts/Contract.sol#1980-1986) calls abi.encodePacked() with multiple dynamic arguments:
- string(abi.encodePacked(baseURI,tokenId_.toString(),.json)) (contracts/Contract.sol#1984-1986)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#abi-encodePacked-collision
Reentrancy in PharaGoddess.withdrawFund() (contracts/Contract.sol#1996-2004):
External calls:
- _withdraw(address(0xd7DDfE7233D872d3600549b570b3631604aA5ffF),ethFund) (contracts/Contract.sol#2002-2003)
- (sent,None) = account.call{value: amount}() (contracts/Contract.sol#2006)
State variables written after the call(s):
- ethFund = 0 (contracts/Contract.sol#2003-2004)
PharaGoddess.ethFund (contracts/Contract.sol#1839) can be used in cross function reentrancies:
- PharaGoddess.withdrawFund() (contracts/Contract.sol#1996-2004)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities
Reentrancy in ERC721A._mint(address,uint256,bytes,bool) (contracts/Contract.sol#1386-1438):
External calls:
- require(bool,string)(_checkOnERC721Received(address(0),to,updatedIndex,_data),ERC721A: transfer to non ERC721Receiver implementer) (contracts/Contract.sol#1422-1431)
- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
State variables written after the call(s):
- currentIndex = updatedIndex (contracts/Contract.sol#1433-1434)
ERC721A.currentIndex (contracts/Contract.sol#1122) can be used in cross function reentrancies:
- ERC721A._exists(uint256) (contracts/Contract.sol#1348-1351)
- ERC721A.totalSupply() (contracts/Contract.sol#1146-1150)
Reentrancy in PharaGoddess.presaleMint(uint256,uint8,bytes32,bytes32) (contracts/Contract.sol#1924-1964):
External calls:
- _safeMint(msg.sender,number) (contracts/Contract.sol#1954-1955)
- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
State variables written after the call(s):
- mintedAmountPreSale1 += number (contracts/Contract.sol#1959)
PharaGoddess.mintedAmountPreSale1 (contracts/Contract.sol#1794-1796) can be used in cross function reentrancies:
- PharaGoddess.mintedAmountPreSale1 (contracts/Contract.sol#1794-1796)
- mintedAmountPreSale2 += number (contracts/Contract.sol#1959-1961)
PharaGoddess.mintedAmountPreSale2 (contracts/Contract.sol#1796-1798) can be used in cross function reentrancies:
- PharaGoddess.mintedAmountPreSale2 (contracts/Contract.sol#1796-1798)
- mintsPerAddressPreSale[msg.sender] += number (contracts/Contract.sol#1955-1958)
PharaGoddess.mintsPerAddressPreSale (contracts/Contract.sol#1822-1825) can be used in cross function reentrancies:
- PharaGoddess.mintsPerAddressPreSale (contracts/Contract.sol#1822-1825)
Reentrancy in PharaGoddess.publicSaleMint(uint256) (contracts/Contract.sol#1964-1980):
External calls:
- _safeMint(msg.sender,number) (contracts/Contract.sol#1978)
- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
State variables written after the call(s):
- mintedAmountPublicSale += number (contracts/Contract.sol#1978-1979)
PharaGoddess.mintedAmountPublicSale (contracts/Contract.sol#1798-1800) can be used in cross function reentrancies:
- PharaGoddess.mintedAmountPublicSale (contracts/Contract.sol#1798-1800)
- mintsPerAddressPublicSale[msg.sender] += number (contracts/Contract.sol#1978)
PharaGoddess.mintsPerAddressPublicSale (contracts/Contract.sol#1825-1826) can be used in cross function reentrancies:
- PharaGoddess.mintsPerAddressPublicSale (contracts/Contract.sol#1825-1826)
Reentrancy in PharaGoddess.reservedMint(uint256,address) (contracts/Contract.sol#1986-1990):
External calls:
- _safeMint(recipient,number) (contracts/Contract.sol#1988)
- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
State variables written after the call(s):
- _reservedMints += number (contracts/Contract.sol#1988-1989)
PharaGoddess._reservedMints (contracts/Contract.sol#1808-1809) can be used in cross function reentrancies:
- PharaGoddess.reservedMint(uint256,address) (contracts/Contract.sol#1986-1990)
- PharaGoddess.reservedMintsLeft() (contracts/Contract.sol#2008-2009)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
ERC721A.ownershipOf(uint256) (contracts/Contract.sol#1225-1239) contains a tautology or contradiction:
- curr >= 0 (contracts/Contract.sol#1234)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#tautology-or-contradiction
ERC721A.tokenOfOwnerByIndex(address,uint256).tokenIdsIdx (contracts/Contract.sol#1178) is a local variable never initialized
ERC721A.tokenOfOwnerByIndex(address,uint256).currOwnershipAddr (contracts/Contract.sol#1179) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
PharaGoddess.switchToPreSale1(uint256,uint256) (contracts/Contract.sol#1869-1873) should emit an event for:
- mintCostPreSale1 = price (contracts/Contract.sol#1870-1872)
PharaGoddess.switchToPreSale2(uint256,uint256) (contracts/Contract.sol#1873-1881) should emit an event for:
- mintCostPreSale2 = price (contracts/Contract.sol#1879-1881)
PharaGoddess.switchToPublicSale(uint256,uint256) (contracts/Contract.sol#1881-1886) should emit an event for:
- mintCostPublicSale = price (contracts/Contract.sol#1883-1885)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-events-arithmetic
PharaGoddess.changeDummy(address)._dummy (contracts/Contract.sol#2007-2008) lacks a zero-check on :
- dummy = _dummy (contracts/Contract.sol#2008)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
ERC721A._checkOnERC721Received(address,address,uint256,bytes) (contracts/Contract.sol#1519-1538) has external calls inside a loop: retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
Calls stack containing the loop:
PharaGoddess.presaleMint(uint256,uint8,bytes32,bytes32)
ERC721A._safeMint(address,uint256)
ERC721A._safeMint(address,uint256,bytes)
ERC721A._mint(address,uint256,bytes,bool)
ERC721A._checkOnERC721Received(address,address,uint256,bytes) (contracts/Contract.sol#1519-1538) has external calls inside a loop: retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
Calls stack containing the loop:
PharaGoddess.publicSaleMint(uint256)
ERC721A._safeMint(address,uint256)
ERC721A._safeMint(address,uint256,bytes)
ERC721A._mint(address,uint256,bytes,bool)
ERC721A._checkOnERC721Received(address,address,uint256,bytes) (contracts/Contract.sol#1519-1538) has external calls inside a loop: retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
Calls stack containing the loop:
PharaGoddess.reservedMint(uint256,address)
ERC721A._safeMint(address,uint256)
ERC721A._safeMint(address,uint256,bytes)
ERC721A._mint(address,uint256,bytes,bool)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop
Reentrancy in PharaGoddess.presaleMint(uint256,uint8,bytes32,bytes32) (contracts/Contract.sol#1924-1964):
External calls:
- _safeMint(msg.sender,number) (contracts/Contract.sol#1954-1955)
- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
State variables written after the call(s):
- ethFund += msg.value (contracts/Contract.sol#1964)
Reentrancy in PharaGoddess.publicSaleMint(uint256) (contracts/Contract.sol#1964-1980):
External calls:
- _safeMint(msg.sender,number) (contracts/Contract.sol#1978)
- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
State variables written after the call(s):
- ethFund += msg.value (contracts/Contract.sol#1979)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2
Reentrancy in ERC721A._mint(address,uint256,bytes,bool) (contracts/Contract.sol#1386-1438):
External calls:
- require(bool,string)(_checkOnERC721Received(address(0),to,updatedIndex,_data),ERC721A: transfer to non ERC721Receiver implementer) (contracts/Contract.sol#1422-1431)
- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)
Event emitted after the call(s):
- Transfer(address(0),to,updatedIndex) (contracts/Contract.sol#1418-1420)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
Address.isContract(address) (contracts/Contract.sol#189-197) uses assembly
- INLINE ASM (contracts/Contract.sol#196-197)
Address.verifyCallResult(bool,bytes,string) (contracts/Contract.sol#354-373) uses assembly
- INLINE ASM (contracts/Contract.sol#367-371)
ERC721._checkOnERC721Received(address,address,uint256,bytes) (contracts/Contract.sol#973-996) uses assembly
- INLINE ASM (contracts/Contract.sol#992-994)
ERC721A._checkOnERC721Received(address,address,uint256,bytes) (contracts/Contract.sol#1519-1538) uses assembly
- INLINE ASM (contracts/Contract.sol#1530-1535)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
PharaGoddess.tokenURI(uint256) (contracts/Contract.sol#1980-1986) compares to a boolean constant:
-revealed == false (contracts/Contract.sol#1982)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#boolean-equality
2 different versions of Solidity are used:
- Version constraint ^0.8.9 is used by:
-^0.8.9 (contracts/Contract.sol#2-4)
-^0.8.9 (contracts/Contract.sol#65-69)
-^0.8.9 (contracts/Contract.sol#90-91)
-^0.8.9 (contracts/Contract.sol#162-163)
-^0.8.9 (contracts/Contract.sol#374)
-^0.8.9 (contracts/Contract.sol#402)
-^0.8.9 (contracts/Contract.sol#431-432)
-^0.8.9 (contracts/Contract.sol#456-457)
-^0.8.9 (contracts/Contract.sol#600-601)
-^0.8.9 (contracts/Contract.sol#1010-1011)
-^0.8.9 (contracts/Contract.sol#1073)
-^0.8.9 (contracts/Contract.sol#1095-1097)
- Version constraint >=0.8.9 is used by:
->=0.8.9 (contracts/Contract.sol#619-622)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used
Context._msgData() (contracts/Contract.sol#86-90) is never used and should be removed
ERC721._baseURI() (contracts/Contract.sol#712-714) is never used and should be removed
ERC721._burn(uint256) (contracts/Contract.sol#902-913) is never used and should be removed
ERC721._mint(address,uint256) (contracts/Contract.sol#882-893) is never used and should be removed
ERC721._safeMint(address,uint256) (contracts/Contract.sol#855-860) is never used and should be removed
ERC721._safeMint(address,uint256,bytes) (contracts/Contract.sol#866-874) is never used and should be removed
ERC721A._baseURI() (contracts/Contract.sol#1266-1271) is never used and should be removed
ERC721A._numberMinted(address) (contracts/Contract.sol#1214-1219) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
Version constraint ^0.8.9 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- VerbatimInvalidDeduplication
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation.
It is used by:
- ^0.8.9 (contracts/Contract.sol#2-4)
- ^0.8.9 (contracts/Contract.sol#65-69)
- ^0.8.9 (contracts/Contract.sol#90-91)
- ^0.8.9 (contracts/Contract.sol#162-163)
- ^0.8.9 (contracts/Contract.sol#374)
- ^0.8.9 (contracts/Contract.sol#402)
- ^0.8.9 (contracts/Contract.sol#431-432)
- ^0.8.9 (contracts/Contract.sol#456-457)
- ^0.8.9 (contracts/Contract.sol#600-601)
- ^0.8.9 (contracts/Contract.sol#1010-1011)
- ^0.8.9 (contracts/Contract.sol#1073)
- ^0.8.9 (contracts/Contract.sol#1095-1097)
Version constraint >=0.8.9 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- VerbatimInvalidDeduplication
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation.
It is used by:
- >=0.8.9 (contracts/Contract.sol#619-622)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in Address.sendValue(address,uint256) (contracts/Contract.sol#219-224):
- (success,None) = recipient.call{value: amount}() (contracts/Contract.sol#221-222)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (contracts/Contract.sol#282-297):
- (success,returndata) = target.call{value: value}(data) (contracts/Contract.sol#293-295)
Low level call in Address.functionStaticCall(address,bytes,string) (contracts/Contract.sol#310-322):
- (success,returndata) = target.staticcall(data) (contracts/Contract.sol#316-319)
Low level call in Address.functionDelegateCall(address,bytes,string) (contracts/Contract.sol#337-348):
- (success,returndata) = target.delegatecall(data) (contracts/Contract.sol#342-345)
Low level call in PharaGoddess._withdraw(address,uint256) (contracts/Contract.sol#2005-2007):
- (sent,None) = account.call{value: amount}() (contracts/Contract.sol#2006)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Parameter ERC721.safeTransferFrom(address,address,uint256,bytes)._data (contracts/Contract.sol#781) is not in mixedCase
Variable ERC721.id_to_URI (contracts/Contract.sol#649-651) is not in mixedCase
Parameter ERC721A.safeTransferFrom(address,address,uint256,bytes)._data (contracts/Contract.sol#1333) is not in mixedCase
Parameter PharaGoddess.isValidAccessMessage(address,uint8,bytes32,bytes32)._add (contracts/Contract.sol#1914-1915) is not in mixedCase
Parameter PharaGoddess.isValidAccessMessage(address,uint8,bytes32,bytes32)._v (contracts/Contract.sol#1915) is not in mixedCase
Parameter PharaGoddess.isValidAccessMessage(address,uint8,bytes32,bytes32)._r (contracts/Contract.sol#1915) is not in mixedCase
Parameter PharaGoddess.isValidAccessMessage(address,uint8,bytes32,bytes32)._s (contracts/Contract.sol#1916-1917) is not in mixedCase
Parameter PharaGoddess.presaleMint(uint256,uint8,bytes32,bytes32)._v (contracts/Contract.sol#1928) is not in mixedCase
Parameter PharaGoddess.presaleMint(uint256,uint8,bytes32,bytes32)._r (contracts/Contract.sol#1928) is not in mixedCase
Parameter PharaGoddess.presaleMint(uint256,uint8,bytes32,bytes32)._s (contracts/Contract.sol#1928) is not in mixedCase
Parameter PharaGoddess.changeDummy(address)._dummy (contracts/Contract.sol#2007-2008) is not in mixedCase
Variable PharaGoddess.PRECISION_FACTOR (contracts/Contract.sol#1842) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
ERC721.id_to_URI (contracts/Contract.sol#649-651) is never used in ERC721 (contracts/Contract.sol#623-1010)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable
PharaGoddess.PRECISION_FACTOR (contracts/Contract.sol#1842) should be constant
PharaGoddess.maxReservedMints (contracts/Contract.sol#1811) should be constant
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant
. analyzed (15 contracts with 100 detectors), 56 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.8.9",
"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.9",
"install_stderr": null,
"install_stdout": "Installing solc '0.8.9'...\nVersion '0.8.9' installed."
},
"solc_args": "--base-path /tmp/slither-n78zzqrt --allow-paths /tmp/slither-n78zzqrt,/tmp/slither-n78zzqrt/lib,/tmp/slither-n78zzqrt/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 56,
"workspace_hash": "a4c72bb4636afe10244729641bfcd87ce13130dcce929c0d6348e5371cdf4c1a",
"duration_seconds": 2.041903495788574,
"solc_version_requested": "0.8.9"
}
{"no_findings":false,"summary":"Found a royalty accounting bug that lets newly minted tokens claim past rewards, diluting or stealing payouts from existing holders.","findings":[{"severity":"high","category":"other","title":"Royalty accounting lets newly minted tokens claim past rewards","exploit_scenario":"A reward is added when totalSupply is 100 (e.g., 10 ETH). accEthPerShare increases, but newly minted tokens have royaltyDebt defaulting to 0. An attacker mints after the reward is added and immediately calls claimRoyaltyReward, receiving ~0.1 ETH per new token even though they did not hold at the time of payout. This dilutes or steals rewards from existing holders.","recommendation":"Initialize royaltyDebt for newly minted tokens to the current accEthPerShare (scaled) at mint time (e.g., in the mint functions or in an overridden _afterTokenTransfers hook when from == address(0)). Consider storing debt in the same precision as accEthPerShare to avoid repeated divs.","evidence":"Mint functions call _safeMint without setting royaltyDebt for new token IDs, while claimRoyaltyReward bases payouts on royaltyDebt defaults to 0.","locations":["contracts/Contract.sol:1978","contracts/Contract.sol:1990","contracts/Contract.sol:2003","contracts/Contract.sol:2011","contracts/Contract.sol:2031","contracts/Contract.sol:2033","contracts/Contract.sol:2081","contracts/Contract.sol:2096"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-lj9jdat6
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be47e-fcfe-7423-a7bf-ff26120e11c6
--------
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
**Choosing simple read method**
I'm opting to use `cat` to read AUDIT_BUNDLE.txt since it's a straightforward read operation and the sandbox is read-only, avoiding the complexity of ripgrep.
exec
/bin/bash -lc ls in /tmp/codex-lj9jdat6 succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-lj9jdat6 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/Contract.sol
================================================================================
// SPDX-License-Identifier: GPL-3.0
// File: @openzeppelin/contracts/utils/Strings.sol
pragma solidity ^0.8.9;
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
/**
* @dev Converts a `uint256` to its ASCII `string` decimal representation.
*/
thinking
**Auditing contract security risks**
Found replay risk limited to same address due to lack of nonce/expiration in signature, but signature tied to msg.sender makes unauthorized use unlikely. Noted absence of ECDSA malleability checks, though unlikely a major issue. Identified potential division by zero in a public payable function if called before any minting, which could cause reverts but not exploitable.
thinking
**Identifying high-severity royalty accounting bug**
Discovered that newly minted tokens lack initialization of royalty debt, allowing minters to claim all past accrued royalties improperly, causing financial dilution of earlier holders. Also noted potential reentrancy risk in owner-only withdrawal due to state update after external call, enabling owner-controlled double withdrawal of mint proceeds plus possible royalty funds.
exec
/bin/bash -lc "rg -n \"addRewardForRoyalty|claimRoyaltyReward|_safeMint\\(\" contracts/Contract.sol" in /tmp/codex-lj9jdat6 succeeded in 11ms:
881: function _safeMint(address to, uint256 tokenId) internal virtual {
882: _safeMint(to, tokenId, "");
889: function _safeMint(
1404: function _safeMint(address to, uint256 quantity) internal {
1405: _safeMint(to, quantity, '');
1418: function _safeMint(
1990: _safeMint(msg.sender, number);
2011: _safeMint(msg.sender, number);
2033: _safeMint(recipient, number);
2081: function addRewardForRoyalty() payable public {
2096: function claimRoyaltyReward() public nonReentrant{
thinking
**Locating missing royaltyDebt initialization**
I'm focusing on mint functions around lines 1980–2035 and 2070–2105 to identify where _safeMint is called without initializing royaltyDebt, targeting presaleMint, publicSaleMint, and reservedMint implementations.
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1970,2055p'" in /tmp/codex-lj9jdat6 succeeded in 9ms:
1970 * @return Validity of access message for a given address.
1971 */
1972 function isValidAccessMessage(address _add, uint8 _v, bytes32 _r, bytes32 _s) view public returns (bool) {
1973 bytes32 hash = keccak256(abi.encodePacked(address(this), _add));
1974 return dummy == ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)), _v, _r, _s);
1975 }
1976
1977 //mint a @param number of NFTs in presale
1978 function presaleMint(uint256 number, uint8 _v, bytes32 _r, bytes32 _s) onlyValidAccess(_v, _r, _s) public payable nonReentrant{
1979 require(!paused, "Sale is paused!");
1980 require(saleState == State.PreSale1 || saleState == State.PreSale2, "PreSale in not open yet!");
1981 if(saleState == State.PreSale1){
1982 require(mintedAmountPreSale1 + number <= amountForPreSale1, "Not enough NFTs for PreSale1 left to mint..");
1983 }else{
1984 require(mintedAmountPreSale2 + number <= amountForPreSale2, "Not enough NFTs for PreSale2 left to mint..");
1985 }
1986 require(totalSupply() + number <= maxTotalTokens - (maxReservedMints - _reservedMints), "Not enough NFTs left to mint..");
1987 require(mintsPerAddressPreSale[msg.sender] + number <= maxMintPreSalePerWallet, "Maximum Mints per Address exceeded!");
1988 require(msg.value >= mintCost() * number, "Not sufficient Ether to mint this amount of NFTs");
1989
thinking
**Requesting additional lines for royalty functions**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '2065,2125p'" in /tmp/codex-lj9jdat6 succeeded in 10ms:
2065 }
2066
2067
2068 //gets the cost of current mint
2069 function mintCost() public view returns(uint) {
2070 if (saleState == State.NoSale || saleState == State.PreSale1) {
2071 return mintCostPreSale1;
2072 }
2073 else if(saleState == State.PreSale2){
2074 return mintCostPreSale2;
2075 }
2076 else {
2077 return mintCostPublicSale;
2078 }
2079 }
2080
2081 function addRewardForRoyalty() payable public {
2082 totalEthRoyaltyPayout += msg.value;
2083 accEthPerShare = accEthPerShare.add(msg.value.mul(PRECISION_FACTOR).div(totalSupply()));
2084 }
thinking
**Identifying mint and signature nuances**
Noting that royaltyDebt isn't set during minting per the mint functions; also observed whitelist signatures lack nonce and don't specify sale stage, allowing reuse across presales but seemingly by design. Checked that presaleMint enforces saleState correctly, guarding pricing logic. Flagged changeDummy's effect on signature validity and potential totalSupply zero-divide in addRewardForRoyalty as points to verify further.
thinking
**Highlighting royaltyDebt accounting flaw**
Found a critical issue where minted tokens lack initial royaltyDebt, allowing new minters to claim past rewards and effectively steal from existing holders, leading to financial loss. Recommended initializing royaltyDebt on mint (e.g., in _afterTokenTransfers) to align with current rewards state and prevent this exploit.
codex
{"no_findings":false,"summary":"Found a royalty accounting bug that lets newly minted tokens claim past rewards, diluting or stealing payouts from existing holders.","findings":[{"severity":"high","category":"other","title":"Royalty accounting lets newly minted tokens claim past rewards","exploit_scenario":"A reward is added when totalSupply is 100 (e.g., 10 ETH). accEthPerShare increases, but newly minted tokens have royaltyDebt defaulting to 0. An attacker mints after the reward is added and immediately calls claimRoyaltyReward, receiving ~0.1 ETH per new token even though they did not hold at the time of payout. This dilutes or steals rewards from existing holders.","recommendation":"Initialize royaltyDebt for newly minted tokens to the current accEthPerShare (scaled) at mint time (e.g., in the mint functions or in an overridden _afterTokenTransfers hook when from == address(0)). Consider storing debt in the same precision as accEthPerShare to avoid repeated divs.","evidence":"Mint functions call _safeMint without setting royaltyDebt for new token IDs, while claimRoyaltyReward bases payouts on royaltyDebt defaults to 0.","locations":["contracts/Contract.sol:1978","contracts/Contract.sol:1990","contracts/Contract.sol:2003","contracts/Contract.sol:2011","contracts/Contract.sol:2031","contracts/Contract.sol:2033","contracts/Contract.sol:2081","contracts/Contract.sol:2096"]}]}
tokens used
27,793
{
"codex": {
"ran_at": "2026-01-22T07:00:08.010963+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Found a royalty accounting bug that lets newly minted tokens claim past rewards, diluting or stealing payouts from existing holders.",
"raw_final": {
"summary": "Found a royalty accounting bug that lets newly minted tokens claim past rewards, diluting or stealing payouts from existing holders.",
"findings": [
{
"title": "Royalty accounting lets newly minted tokens claim past rewards",
"category": "other",
"evidence": "Mint functions call _safeMint without setting royaltyDebt for new token IDs, while claimRoyaltyReward bases payouts on royaltyDebt defaults to 0.",
"severity": "high",
"locations": [
"contracts/Contract.sol:1978",
"contracts/Contract.sol:1990",
"contracts/Contract.sol:2003",
"contracts/Contract.sol:2011",
"contracts/Contract.sol:2031",
"contracts/Contract.sol:2033",
"contracts/Contract.sol:2081",
"contracts/Contract.sol:2096"
],
"recommendation": "Initialize royaltyDebt for newly minted tokens to the current accEthPerShare (scaled) at mint time (e.g., in the mint functions or in an overridden _afterTokenTransfers hook when from == address(0)). Consider storing debt in the same precision as accEthPerShare to avoid repeated divs.",
"exploit_scenario": "A reward is added when totalSupply is 100 (e.g., 10 ETH). accEthPerShare increases, but newly minted tokens have royaltyDebt defaulting to 0. An attacker mints after the reward is added and immediately calls claimRoyaltyReward, receiving ~0.1 ETH per new token even though they did not hold at the time of payout. This dilutes or steals rewards from existing holders."
}
],
"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 0x0338 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x715018a6 00000019: GT 0000001a: PUSH2 0x01ab 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xbdb4b848 00000024: GT 00000025: PUSH2 0x00f7 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xdcd4e732 0000002f: GT 00000030: PUSH2 0x0095 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xe3b18253 0000003a: GT 0000003b: PUSH2 0x006f 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe3b18253 00000045: EQ 00000046: PUSH2 0x08fe 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xe985e9c5 00000050: EQ 00000051: PUSH2 0x0914 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf2fde38b 0000005b: EQ 0000005c: PUSH2 0x095d 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf71e13a8 00000066: EQ 00000067: PUSH2 0x097d 0000006a: JUMPI 0000006b: PUSH1 0x00 0000006d: DUP1 0000006e: REVERT 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0xdcd4e732 00000076: EQ 00000077: PUSH2 0x08b6 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xe07fa3c1 00000081: EQ 00000082: PUSH2 0x08c9 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xe282327e 0000008c: EQ 0000008d: PUSH2 0x08de 00000090: JUMPI 00000091: PUSH1 0x00 00000093: DUP1 00000094: REVERT 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0xcb155f96 0000009c: GT 0000009d: PUSH2 0x00d1 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xcb155f96 000000a7: EQ 000000a8: PUSH2 0x0849 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xcec4ab9c 000000b2: EQ 000000b3: PUSH2 0x0869 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xd47513de 000000bd: EQ 000000be: PUSH2 0x088a 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xdc9e206f 000000c8: EQ 000000c9: PUSH2 0x08a0 000000cc: JUMPI 000000cd: PUSH1 0x00 000000cf: DUP1 000000d0: REVERT 000000d1: JUMPDEST 000000d2: DUP1 000000d3: PUSH4 0xbdb4b848 000000d8: EQ 000000d9: PUSH2 0x07f4 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0xc4d8b9df 000000e3: EQ 000000e4: PUSH2 0x0809 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0xc87b56dd 000000ee: EQ 000000ef: PUSH2 0x0829 000000f2: JUMPI 000000f3: PUSH1 0x00 000000f5: DUP1 000000f6: REVERT 000000f7: JUMPDEST 000000f8: DUP1 000000f9: PUSH4 0xa22cb465 000000fe: GT 000000ff: PUSH2 0x0164 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0xb3ab66b0 00000109: GT 0000010a: PUSH2 0x013e 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0xb3ab66b0 00000114: EQ 00000115: PUSH2 0x0774 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0xb3b9b8b1 0000011f: EQ 00000120: PUSH2 0x0787 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0xb56d2f67 0000012a: EQ 0000012b: PUSH2 0x07b4 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0xb88d4fde 00000135: EQ 00000136: PUSH2 0x07d4 00000139: JUMPI 0000013a: PUSH1 0x00 0000013c: DUP1 0000013d: REVERT 0000013e: JUMPDEST 0000013f: DUP1 00000140: PUSH4 0xa22cb465 00000145: EQ 00000146: PUSH2 0x0729 00000149: JUMPI 0000014a: DUP1 0000014b: PUSH4 0xa475b5dd 00000150: EQ 00000151: PUSH2 0x0749 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0xacef455e 0000015b: EQ 0000015c: PUSH2 0x075e 0000015f: JUMPI 00000160: PUSH1 0x00 00000162: DUP1 00000163: REVERT 00000164: JUMPDEST 00000165: DUP1 00000166: PUSH4 0x715018a6 0000016b: EQ 0000016c: PUSH2 0x068c 0000016f: JUMPI 00000170: DUP1 00000171: PUSH4 0x73a7a013 00000176: EQ 00000177: PUSH2 0x06a1 0000017a: JUMPI 0000017b: DUP1 0000017c: PUSH4 0x8da5cb5b 00000181: EQ 00000182: PUSH2 0x06c1 00000185: JUMPI 00000186: DUP1 00000187: PUSH4 0x940bb344 0000018c: EQ 0000018d: PUSH2 0x06df 00000190: JUMPI 00000191: DUP1 00000192: PUSH4 0x95d89b41 00000197: EQ 00000198: PUSH2 0x06f4 0000019b: JUMPI 0000019c: DUP1 0000019d: PUSH4 0x98fb0f0a 000001a2: EQ 000001a3: PUSH2 0x0709 000001a6: JUMPI 000001a7: PUSH1 0x00 000001a9: DUP1 000001aa: REVERT 000001ab: JUMPDEST 000001ac: DUP1 000001ad: PUSH4 0x32624114 000001b2: GT 000001b3: PUSH2 0x0285 000001b6: JUMPI 000001b7: DUP1 000001b8: PUSH4 0x5614e6dc 000001bd: GT 000001be: PUSH2 0x0223 000001c1: JUMPI 000001c2: DUP1 000001c3: PUSH4 0x67797bf6 000001c8: GT 000001c9: PUSH2 0x01fd 000001cc: JUMPI 000001cd: DUP1 000001ce: PUSH4 0x67797bf6 000001d3: EQ 000001d4: PUSH2 0x0621 000001d7: JUMPI 000001d8: DUP1 000001d9: PUSH4 0x702bceba 000001de: EQ 000001df: PUSH2 0x0641 000001e2: JUMPI 000001e3: DUP1 000001e4: PUSH4 0x7035bf18 000001e9: EQ 000001ea: PUSH2 0x0657 000001ed: JUMPI 000001ee: DUP1 000001ef: PUSH4 0x70a08231 000001f4: EQ 000001f5: PUSH2 0x066c 000001f8: JUMPI 000001f9: PUSH1 0x00 000001fb: DUP1 000001fc: REVERT 000001fd: JUMPDEST 000001fe: DUP1 000001ff: PUSH4 0x5614e6dc 00000204: EQ 00000205: PUSH2 0x05ad 00000208: JUMPI 00000209: DUP1 0000020a: PUSH4 0x603f4d52 0000020f: EQ 00000210: PUSH2 0x05da 00000213: JUMPI 00000214: DUP1 00000215: PUSH4 0x6352211e 0000021a: EQ 0000021b: PUSH2 0x0601 0000021e: JUMPI 0000021f: PUSH1 0x00 00000221: DUP1 00000222: REVERT 00000223: JUMPDEST 00000224: DUP1 00000225: PUSH4 0x42842e0e 0000022a: GT 0000022b: PUSH2 0x025f 0000022e: JUMPI 0000022f: DUP1 00000230: PUSH4 0x42842e0e 00000235: EQ 00000236: PUSH2 0x0537 00000239: JUMPI 0000023a: DUP1 0000023b: PUSH4 0x4520e916 00000240: EQ 00000241: PUSH2 0x0557 00000244: JUMPI 00000245: DUP1 00000246: PUSH4 0x4f6ccce7 0000024b: EQ 0000024c: PUSH2 0x056c 0000024f: JUMPI 00000250: DUP1 00000251: PUSH4 0x51830227 00000256: EQ 00000257: PUSH2 0x058c 0000025a: JUMPI 0000025b: PUSH1 0x00 0000025d: DUP1 0000025e: REVERT 0000025f: JUMPDEST 00000260: DUP1 00000261: PUSH4 0x32624114 00000266: EQ 00000267: PUSH2 0x04e2 0000026a: JUMPI 0000026b: DUP1 0000026c: PUSH4 0x39a0c6f9 00000271: EQ 00000272: PUSH2 0x0502 00000275: JUMPI 00000276: DUP1 00000277: PUSH4 0x39f5fd97 0000027c: EQ 0000027d: PUSH2 0x0522 00000280: JUMPI 00000281: PUSH1 0x00 00000283: DUP1 00000284: REVERT 00000285: JUMPDEST 00000286: DUP1 00000287: PUSH4 0x18160ddd 0000028c: GT 0000028d: PUSH2 0x02f2 00000290: JUMPI 00000291: DUP1 00000292: PUSH4 0x2545e9c4 00000297: GT 00000298: PUSH2 0x02cc 0000029b: JUMPI 0000029c: DUP1 0000029d: PUSH4 0x2545e9c4 000002a2: EQ 000002a3: PUSH2 0x048f 000002a6: JUMPI 000002a7: DUP1 000002a8: PUSH4 0x27e8a11a 000002ad: EQ 000002ae: PUSH2 0x0497 000002b1: JUMPI 000002b2: DUP1 000002b3: PUSH4 0x2c6ff0c7 000002b8: EQ 000002b9: PUSH2 0x04ac 000002bc: JUMPI 000002bd: DUP1 000002be: PUSH4 0x2f745c59 000002c3: EQ 000002c4: PUSH2 0x04c2 000002c7: JUMPI 000002c8: PUSH1 0x00 000002ca: DUP1 000002cb: REVERT 000002cc: JUMPDEST 000002cd: DUP1 000002ce: PUSH4 0x18160ddd 000002d3: EQ 000002d4: PUSH2 0x0430 000002d7: JUMPI 000002d8: DUP1 000002d9: PUSH4 0x18df6403 000002de: EQ 000002df: PUSH2 0x044f 000002e2: JUMPI 000002e3: DUP1 000002e4: PUSH4 0x23b872dd 000002e9: EQ 000002ea: PUSH2 0x046f 000002ed: JUMPI 000002ee: PUSH1 0x00 000002f0: DUP1 000002f1: REVERT 000002f2: JUMPDEST 000002f3: DUP1 000002f4: PUSH3 0x8ca816 000002f8: EQ 000002f9: PUSH2 0x0344 000002fc: JUMPI 000002fd: DUP1 000002fe: PUSH4 0x0191a657 00000303: EQ 00000304: PUSH2 0x0374 00000307: JUMPI 00000308: DUP1 00000309: PUSH4 0x01ffc9a7 0000030e: EQ 0000030f: PUSH2 0x0396 00000312: JUMPI 00000313: DUP1 00000314: PUSH4 0x06fdde03 00000319: EQ 0000031a: PUSH2 0x03b6 0000031d: JUMPI 0000031e: DUP1 0000031f: PUSH4 0x081812fc 00000324: EQ 00000325: PUSH2 0x03d8 00000328: JUMPI 00000329: DUP1 0000032a: PUSH4 0x095ea7b3 0000032f: EQ 00000330: PUSH2 0x0410 00000333: JUMPI 00000334: PUSH1 0x00 00000336: DUP1 00000337: REVERT 00000338: JUMPDEST 00000339: CALLDATASIZE 0000033a: PUSH2 0x033f 0000033d: JUMPI 0000033e: STOP 0000033f: JUMPDEST 00000340: PUSH1 0x00 00000342: DUP1 00000343: REVERT 00000344: JUMPDEST 00000345: CALLVALUE 00000346: DUP1 00000347: ISZERO 00000348: PUSH2 0x0350 0000034b: JUMPI 0000034c: PUSH1 0x00 0000034e: DUP1 0000034f: REVERT 00000350: JUMPDEST 00000351: POP 00000352: PUSH1 0x18 00000354: SLOAD 00000355: PUSH1 0x01 00000357: PUSH1 0xb0 00000359: SHL 0000035a: SWAP1 0000035b: DIV 0000035c: PUSH1 0xff 0000035e: AND 0000035f: JUMPDEST 00000360: PUSH1 0x40 00000362: MLOAD 00000363: SWAP1 00000364: ISZERO 00000365: ISZERO 00000366: DUP2 00000367: MSTORE 00000368: PUSH1 0x20 0000036a: ADD 0000036b: JUMPDEST 0000036c: PUSH1 0x40 0000036e: MLOAD 0000036f: DUP1 00000370: SWAP2 00000371: SUB 00000372: SWAP1 00000373: RETURN 00000374: JUMPDEST 00000375: CALLVALUE 00000376: DUP1 00000377: ISZERO 00000378: PUSH2 0x0380 0000037b: JUMPI 0000037c: PUSH1 0x00 0000037e: DUP1 0000037f: REVERT 00000380: JUMPDEST 00000381: POP 00000382: PUSH2 0x0394 00000385: PUSH2 0x038f 00000388: CALLDATASIZE 00000389: PUSH1 0x04 0000038b: PUSH2 0x2c3e 0000038e: JUMP 0000038f: JUMPDEST 00000390: PUSH2 0x099d 00000393: JUMP 00000394: JUMPDEST 00000395: STOP 00000396: JUMPDEST 00000397: CALLVALUE 00000398: DUP1 00000399: ISZERO 0000039a: PUSH2 0x03a2 0000039d: JUMPI 0000039e: PUSH1 0x00 000003a0: DUP1 000003a1: REVERT 000003a2: JUMPDEST 000003a3: POP 000003a4: PUSH2 0x035f 000003a7: PUSH2 0x03b1 000003aa: CALLDATASIZE 000003ab: PUSH1 0x04 000003ad: PUSH2 0x2c6f 000003b0: JUMP 000003b1: JUMPDEST 000003b2: PUSH2 0x09f2 000003b5: JUMP 000003b6: JUMPDEST 000003b7: CALLVALUE 000003b8: DUP1 000003b9: ISZERO 000003ba: PUSH2 0x03c2 000003bd: JUMPI 000003be: PUSH1 0x00 000003c0: DUP1 000003c1: REVERT 000003c2: JUMPDEST 000003c3: POP 000003c4: PUSH2 0x03cb 000003c7: PUSH2 0x0a5f 000003ca: JUMP 000003cb: JUMPDEST 000003cc: PUSH1 0x40 000003ce: MLOAD 000003cf: PUSH2 0x036b 000003d2: SWAP2 000003d3: SWAP1 000003d4: PUSH2 0x2ce4 000003d7: JUMP 000003d8: JUMPDEST 000003d9: CALLVALUE 000003da: DUP1 000003db: ISZERO 000003dc: PUSH2 0x03e4 000003df: JUMPI 000003e0: PUSH1 0x00 000003e2: DUP1 000003e3: REVERT 000003e4: JUMPDEST 000003e5: POP 000003e6: PUSH2 0x03f8 000003e9: PUSH2 0x03f3 000003ec: CALLDATASIZE 000003ed: PUSH1 0x04 000003ef: PUSH2 0x2cf7 000003f2: JUMP 000003f3: JUMPDEST 000003f4: PUSH2 0x0af1 000003f7: JUMP 000003f8: JUMPDEST 000003f9: PUSH1 0x40 000003fb: MLOAD 000003fc: PUSH1 0x01 000003fe: PUSH1 0x01 00000400: PUSH1 0xa0 00000402: SHL 00000403: SUB 00000404: SWAP1 00000405: SWAP2 00000406: AND 00000407: DUP2 00000408: MSTORE 00000409: PUSH1 0x20 0000040b: ADD 0000040c: PUSH2 0x036b 0000040f: JUMP 00000410: JUMPDEST 00000411: CALLVALUE 00000412: DUP1 00000413: ISZERO 00000414: PUSH2 0x041c 00000417: JUMPI 00000418: PUSH1 0x00 0000041a: DUP1 0000041b: REVERT 0000041c: JUMPDEST 0000041d: POP 0000041e: PUSH2 0x0394 00000421: PUSH2 0x042b 00000424: CALLDATASIZE 00000425: PUSH1 0x04 00000427: PUSH2 0x2d10 0000042a: JUMP 0000042b: JUMPDEST 0000042c: PUSH2 0x0b7c 0000042f: JUMP 00000430: JUMPDEST 00000431: CALLVALUE 00000432: DUP1 00000433: ISZERO 00000434: PUSH2 0x043c 00000437: JUMPI 00000438: PUSH1 0x00 0000043a: DUP1 0000043b: REVERT 0000043c: JUMPDEST 0000043d: POP 0000043e: PUSH1 0x00 00000440: SLOAD 00000441: JUMPDEST 00000442: PUSH1 0x40 00000444: MLOAD 00000445: SWAP1 00000446: DUP2 00000447: MSTORE 00000448: PUSH1 0x20 0000044a: ADD 0000044b: PUSH2 0x036b 0000044e: JUMP 0000044f: JUMPDEST 00000450: CALLVALUE 00000451: DUP1 00000452: ISZERO 00000453: PUSH2 0x045b 00000456: JUMPI 00000457: PUSH1 0x00 00000459: DUP1 0000045a: REVERT 0000045b: JUMPDEST 0000045c: POP 0000045d: PUSH2 0x0394 00000460: PUSH2 0x046a 00000463: CALLDATASIZE 00000464: PUSH1 0x04 00000466: PUSH2 0x2d3a 00000469: JUMP 0000046a: JUMPDEST 0000046b: PUSH2 0x0c94 0000046e: JUMP 0000046f: JUMPDEST 00000470: CALLVALUE 00000471: DUP1 00000472: ISZERO 00000473: PUSH2 0x047b 00000476: JUMPI 00000477: PUSH1 0x00 00000479: DUP1 0000047a: REVERT 0000047b: JUMPDEST 0000047c: POP 0000047d: PUSH2 0x0394 00000480: PUSH2 0x048a 00000483: CALLDATASIZE 00000484: PUSH1 0x04 00000486: PUSH2 0x2d66 00000489: JUMP 0000048a: JUMPDEST 0000048b: PUSH2 0x0d52 0000048e: JUMP 0000048f: JUMPDEST 00000490: PUSH2 0x0394 00000493: PUSH2 0x0d5d 00000496: JUMP 00000497: JUMPDEST 00000498: CALLVALUE 00000499: DUP1 0000049a: ISZERO 0000049b: PUSH2 0x04a3 0000049e: JUMPI 0000049f: PUSH1 0x00 000004a1: DUP1 000004a2: REVERT 000004a3: JUMPDEST 000004a4: POP 000004a5: PUSH2 0x0394 000004a8: PUSH2 0x0da6 000004ab: JUMP 000004ac: JUMPDEST 000004ad: CALLVALUE 000004ae: DUP1 000004af: ISZERO 000004b0: PUSH2 0x04b8 000004b3: JUMPI 000004b4: PUSH1 0x00 000004b6: DUP1 000004b7: REVERT 000004b8: JUMPDEST 000004b9: POP 000004ba: PUSH2 0x0441 000004bd: PUSH1 0x13 000004bf: SLOAD 000004c0: DUP2 000004c1: JUMP 000004c2: JUMPDEST 000004c3: CALLVALUE 000004c4: DUP1 000004c5: ISZERO 000004c6: PUSH2 0x04ce 000004c9: JUMPI 000004ca: PUSH1 0x00 000004cc: DUP1 000004cd: REVERT 000004ce: JUMPDEST 000004cf: POP 000004d0: PUSH2 0x0441 000004d3: PUSH2 0x04dd 000004d6: CALLDATASIZE 000004d7: PUSH1 0x04 000004d9: PUSH2 0x2d10 000004dc: JUMP 000004dd: JUMPDEST 000004de: PUSH2 0x0df1 000004e1: JUMP 000004e2: JUMPDEST 000004e3: CALLVALUE 000004e4: DUP1 000004e5: ISZERO 000004e6: PUSH2 0x04ee 000004e9: JUMPI 000004ea: PUSH1 0x00 000004ec: DUP1 000004ed: REVERT 000004ee: JUMPDEST 000004ef: POP 000004f0: PUSH2 0x035f 000004f3: PUSH2 0x04fd 000004f6: CALLDATASIZE 000004f7: PUSH1 0x04 000004f9: PUSH2 0x2db3 000004fc: JUMP 000004fd: JUMPDEST 000004fe: PUSH2 0x0f4e 00000501: JUMP 00000502: JUMPDEST 00000503: CALLVALUE 00000504: DUP1 00000505: ISZERO 00000506: PUSH2 0x050e 00000509: JUMPI 0000050a: PUSH1 0x00 0000050c: DUP1 0000050d: REVERT 0000050e: JUMPDEST 0000050f: POP 00000510: PUSH2 0x0394 00000513: PUSH2 0x051d 00000516: CALLDATASIZE 00000517: PUSH1 0x04 00000519: PUSH2 0x2e81 0000051c: JUMP 0000051d: JUMPDEST 0000051e: PUSH2 0x105a 00000521: JUMP 00000522: JUMPDEST 00000523: CALLVALUE 00000524: DUP1 00000525: ISZERO 00000526: PUSH2 0x052e 00000529: JUMPI 0000052a: PUSH1 0x00 0000052c: DUP1 0000052d: REVERT 0000052e: JUMPDEST 0000052f: POP 00000530: PUSH2 0x0394 00000533: PUSH2 0x109b 00000536: JUMP 00000537: JUMPDEST 00000538: CALLVALUE 00000539: DUP1 0000053a: ISZERO 0000053b: PUSH2 0x0543 0000053e: JUMPI 0000053f: PUSH1 0x00 00000541: DUP1 00000542: REVERT 00000543: JUMPDEST 00000544: POP 00000545: PUSH2 0x0394 00000548: PUSH2 0x0552 0000054b: CALLDATASIZE 0000054c: PUSH1 0x04 0000054e: PUSH2 0x2d66 00000551: JUMP 00000552: JUMPDEST 00000553: PUSH2 0x1177 00000556: JUMP 00000557: JUMPDEST 00000558: CALLVALUE 00000559: DUP1 0000055a: ISZERO 0000055b: PUSH2 0x0563 0000055e: JUMPI 0000055f: PUSH1 0x00 00000561: DUP1 00000562: REVERT 00000563: JUMPDEST 00000564: POP 00000565: PUSH2 0x0441 00000568: PUSH2 0x1192 0000056b: JUMP 0000056c: JUMPDEST 0000056d: CALLVALUE 0000056e: DUP1 0000056f: ISZERO 00000570: PUSH2 0x0578 00000573: JUMPI 00000574: PUSH1 0x00 00000576: DUP1 00000577: REVERT 00000578: JUMPDEST 00000579: POP 0000057a: PUSH2 0x0441 0000057d: PUSH2 0x0587 00000580: CALLDATASIZE 00000581: PUSH1 0x04 00000583: PUSH2 0x2cf7 00000586: JUMP 00000587: JUMPDEST 00000588: PUSH2 0x11d4 0000058b: JUMP 0000058c: JUMPDEST 0000058d: CALLVALUE 0000058e: DUP1 0000058f: ISZERO 00000590: PUSH2 0x0598 00000593: JUMPI 00000594: PUSH1 0x00 00000596: DUP1 00000597: REVERT 00000598: JUMPDEST 00000599: POP 0000059a: PUSH1 0x18 0000059c: SLOAD 0000059d: PUSH2 0x035f 000005a0: SWAP1 000005a1: PUSH1 0x01 000005a3: PUSH1 0xa0 000005a5: SHL 000005a6: SWAP1 000005a7: DIV 000005a8: PUSH1 0xff 000005aa: AND 000005ab: DUP2 000005ac: JUMP 000005ad: JUMPDEST 000005ae: CALLVALUE 000005af: DUP1 000005b0: ISZERO 000005b1: PUSH2 0x05b9 000005b4: JUMPI 000005b5: PUSH1 0x00 000005b7: DUP1 000005b8: REVERT 000005b9: JUMPDEST 000005ba: POP 000005bb: PUSH2 0x0441 000005be: PUSH2 0x05c8 000005c1: CALLDATASIZE 000005c2: PUSH1 0x04 000005c4: PUSH2 0x2c3e 000005c7: JUMP 000005c8: JUMPDEST 000005c9: PUSH1 0x1a 000005cb: PUSH1 0x20 000005cd: MSTORE 000005ce: PUSH1 0x00 000005d0: SWAP1 000005d1: DUP2 000005d2: MSTORE 000005d3: PUSH1 0x40 000005d5: SWAP1 000005d6: KECCAK256 000005d7: SLOAD 000005d8: DUP2 000005d9: JUMP 000005da: JUMPDEST 000005db: CALLVALUE 000005dc: DUP1 000005dd: ISZERO 000005de: PUSH2 0x05e6 000005e1: JUMPI 000005e2: PUSH1 0x00 000005e4: DUP1 000005e5: REVERT 000005e6: JUMPDEST 000005e7: POP 000005e8: PUSH1 0x1b 000005ea: SLOAD 000005eb: PUSH2 0x05f4 000005ee: SWAP1 000005ef: PUSH1 0xff 000005f1: AND 000005f2: DUP2 000005f3: JUMP 000005f4: JUMPDEST 000005f5: PUSH1 0x40 000005f7: MLOAD 000005f8: PUSH2 0x036b 000005fb: SWAP2 000005fc: SWAP1 000005fd: PUSH2 0x2ee0 00000600: JUMP 00000601: JUMPDEST 00000602: CALLVALUE 00000603: DUP1 00000604: ISZERO 00000605: PUSH2 0x060d 00000608: JUMPI 00000609: PUSH1 0x00 0000060b: DUP1 0000060c: REVERT 0000060d: JUMPDEST 0000060e: POP 0000060f: PUSH2 0x03f8 00000612: PUSH2 0x061c 00000615: CALLDATASIZE 00000616: PUSH1 0x04 00000618: PUSH2 0x2cf7 0000061b: JUMP 0000061c: JUMPDEST 0000061d: PUSH2 0x1236 00000620: JUMP 00000621: JUMPDEST 00000622: CALLVALUE 00000623: DUP1 00000624: ISZERO 00000625: PUSH2 0x062d 00000628: JUMPI 00000629: PUSH1 0x00 0000062b: DUP1 0000062c: REVERT 0000062d: JUMPDEST 0000062e: POP 0000062f: PUSH2 0x0394 00000632: PUSH2 0x063c 00000635: CALLDATASIZE 00000636: PUSH1 0x04 00000638: PUSH2 0x2cf7 0000063b: JUMP 0000063c: JUMPDEST 0000063d: PUSH2 0x1248 00000640: JUMP 00000641: JUMPDEST 00000642: CALLVALUE 00000643: DUP1 00000644: ISZERO 00000645: PUSH2 0x064d 00000648: JUMPI 00000649: PUSH1 0x00 0000064b: DUP1 0000064c: REVERT 0000064d: JUMPDEST 0000064e: POP 0000064f: PUSH2 0x0441 00000652: PUSH1 0x11 00000654: SLOAD 00000655: DUP2 00000656: JUMP 00000657: JUMPDEST 00000658: CALLVALUE 00000659: DUP1 0000065a: ISZERO 0000065b: PUSH2 0x0663 0000065e: JUMPI 0000065f: PUSH1 0x00 00000661: DUP1 00000662: REVERT 00000663: JUMPDEST 00000664: POP 00000665: PUSH2 0x03cb 00000668: PUSH2 0x1277 0000066b: JUMP 0000066c: JUMPDEST 0000066d: CALLVALUE 0000066e: DUP1 0000066f: ISZERO 00000670: PUSH2 0x0678 00000673: JUMPI 00000674: PUSH1 0x00 00000676: DUP1 00000677: REVERT 00000678: JUMPDEST 00000679: POP 0000067a: PUSH2 0x0441 0000067d: PUSH2 0x0687 00000680: CALLDATASIZE 00000681: PUSH1 0x04 00000683: PUSH2 0x2c3e 00000686: JUMP 00000687: JUMPDEST 00000688: PUSH2 0x1305 0000068b: JUMP 0000068c: JUMPDEST 0000068d: CALLVALUE 0000068e: DUP1 0000068f: ISZERO 00000690: PUSH2 0x0698 00000693: JUMPI 00000694: PUSH1 0x00 00000696: DUP1 00000697: REVERT 00000698: JUMPDEST 00000699: POP 0000069a: PUSH2 0x0394 0000069d: PUSH2 0x1396 000006a0: JUMP 000006a1: JUMPDEST 000006a2: CALLVALUE 000006a3: DUP1 000006a4: ISZERO 000006a5: PUSH2 0x06ad 000006a8: JUMPI 000006a9: PUSH1 0x00 000006ab: DUP1 000006ac: REVERT 000006ad: JUMPDEST 000006ae: POP 000006af: PUSH2 0x0441 000006b2: PUSH2 0x06bc 000006b5: CALLDATASIZE 000006b6: PUSH1 0x04 000006b8: PUSH2 0x2c3e 000006bb: JUMP 000006bc: JUMPDEST 000006bd: PUSH2 0x13cc 000006c0: JUMP 000006c1: JUMPDEST 000006c2: CALLVALUE 000006c3: DUP1 000006c4: ISZERO 000006c5: PUSH2 0x06cd 000006c8: JUMPI 000006c9: PUSH1 0x00 000006cb: DUP1 000006cc: REVERT 000006cd: JUMPDEST 000006ce: POP 000006cf: PUSH1 0x07 000006d1: SLOAD 000006d2: PUSH1 0x01 000006d4: PUSH1 0x01 000006d6: PUSH1 0xa0 000006d8: SHL 000006d9: SUB 000006da: AND 000006db: PUSH2 0x03f8 000006de: JUMP 000006df: JUMPDEST 000006e0: CALLVALUE 000006e1: DUP1 000006e2: ISZERO 000006e3: PUSH2 0x06eb 000006e6: JUMPI 000006e7: PUSH1 0x00 000006e9: DUP1 000006ea: REVERT 000006eb: JUMPDEST 000006ec: POP 000006ed: PUSH2 0x0394 000006f0: PUSH2 0x144a 000006f3: JUMP 000006f4: JUMPDEST 000006f5: CALLVALUE 000006f6: DUP1 000006f7: ISZERO 000006f8: PUSH2 0x0700 000006fb: JUMPI 000006fc: PUSH1 0x00 000006fe: DUP1 000006ff: REVERT 00000700: JUMPDEST 00000701: POP 00000702: PUSH2 0x03cb 00000705: PUSH2 0x147c 00000708: JUMP 00000709: JUMPDEST 0000070a: CALLVALUE 0000070b: DUP1 0000070c: ISZERO 0000070d: PUSH2 0x0715 00000710: JUMPI 00000711: PUSH1 0x00 00000713: DUP1 00000714: REVERT 00000715: JUMPDEST 00000716: POP 00000717: PUSH2 0x0394 0000071a: PUSH2 0x0724 0000071d: CALLDATASIZE 0000071e: PUSH1 0x04 00000720: PUSH2 0x2f08 00000723: JUMP 00000724: JUMPDEST 00000725: PUSH2 0x148b 00000728: JUMP 00000729: JUMPDEST 0000072a: CALLVALUE 0000072b: DUP1 0000072c: ISZERO 0000072d: PUSH2 0x0735 00000730: JUMPI 00000731: PUSH1 0x00 00000733: DUP1 00000734: REVERT 00000735: JUMPDEST 00000736: POP 00000737: PUSH2 0x0394 0000073a: PUSH2 0x0744 0000073d: CALLDATASIZE 0000073e: PUSH1 0x04 00000740: PUSH2 0x2f3a 00000743: JUMP 00000744: JUMPDEST 00000745: PUSH2 0x14cd 00000748: JUMP 00000749: JUMPDEST 0000074a: CALLVALUE 0000074b: DUP1 0000074c: ISZERO 0000074d: PUSH2 0x0755 00000750: JUMPI 00000751: PUSH1 0x00 00000753: DUP1 00000754: REVERT 00000755: JUMPDEST 00000756: POP 00000757: PUSH2 0x0394 0000075a: PUSH2 0x1592 0000075d: JUMP 0000075e: JUMPDEST 0000075f: CALLVALUE 00000760: DUP1 00000761: ISZERO 00000762: PUSH2 0x076a 00000765: JUMPI 00000766: PUSH1 0x00 00000768: DUP1 00000769: REVERT 0000076a: JUMPDEST 0000076b: POP 0000076c: PUSH2 0x0441 0000076f: PUSH1 0x1e 00000771: SLOAD 00000772: DUP2 00000773: JUMP 00000774: JUMPDEST 00000775: PUSH2 0x0394 00000778: PUSH2 0x0782 0000077b: CALLDATASIZE 0000077c: PUSH1 0x04 0000077e: PUSH2 0x2cf7 00000781: JUMP 00000782: JUMPDEST 00000783: PUSH2 0x15d1 00000786: JUMP 00000787: JUMPDEST 00000788: CALLVALUE 00000789: DUP1 0000078a: ISZERO 0000078b: PUSH2 0x0793 0000078e: JUMPI 0000078f: PUSH1 0x00 00000791: DUP1 00000792: REVERT 00000793: JUMPDEST 00000794: POP 00000795: PUSH2 0x0441 00000798: PUSH2 0x07a2 0000079b: CALLDATASIZE 0000079c: PUSH1 0x04 0000079e: PUSH2 0x2c3e 000007a1: JUMP 000007a2: JUMPDEST 000007a3: PUSH1 0x19 000007a5: PUSH1 0x20 000007a7: MSTORE 000007a8: PUSH1 0x00 000007aa: SWAP1 000007ab: DUP2 000007ac: MSTORE 000007ad: PUSH1 0x40 000007af: SWAP1 000007b0: KECCAK256 000007b1: SLOAD 000007b2: DUP2 000007b3: JUMP 000007b4: JUMPDEST 000007b5: CALLVALUE 000007b6: DUP1 000007b7: ISZERO 000007b8: PUSH2 0x07c0 000007bb: JUMPI 000007bc: PUSH1 0x00 000007be: DUP1 000007bf: REVERT 000007c0: JUMPDEST 000007c1: POP 000007c2: PUSH2 0x0394 000007c5: PUSH2 0x07cf 000007c8: CALLDATASIZE 000007c9: PUSH1 0x04 000007cb: PUSH2 0x2f64 000007ce: JUMP 000007cf: JUMPDEST 000007d0: PUSH2 0x1875 000007d3: JUMP 000007d4: JUMPDEST 000007d5: CALLVALUE 000007d6: DUP1 000007d7: ISZERO 000007d8: PUSH2 0x07e0 000007db: JUMPI 000007dc: PUSH1 0x00 000007de: DUP1 000007df: REVERT 000007e0: JUMPDEST 000007e1: POP 000007e2: PUSH2 0x0394 000007e5: PUSH2 0x07ef 000007e8: CALLDATASIZE 000007e9: PUSH1 0x04 000007eb: PUSH2 0x2f7f 000007ee: JUMP 000007ef: JUMPDEST 000007f0: PUSH2 0x18bd 000007f3: JUMP 000007f4: JUMPDEST 000007f5: CALLVALUE 000007f6: DUP1 000007f7: ISZERO 000007f8: PUSH2 0x0800 000007fb: JUMPI 000007fc: PUSH1 0x00 000007fe: DUP1 000007ff: REVERT 00000800: JUMPDEST 00000801: POP 00000802: PUSH2 0x0441 00000805: PUSH2 0x18f6 00000808: JUMP 00000809: JUMPDEST 0000080a: CALLVALUE 0000080b: DUP1 0000080c: ISZERO 0000080d: PUSH2 0x0815 00000810: JUMPI 00000811: PUSH1 0x00 00000813: DUP1 00000814: REVERT 00000815: JUMPDEST 00000816: POP 00000817: PUSH2 0x0394 0000081a: PUSH2 0x0824 0000081d: CALLDATASIZE 0000081e: PUSH1 0x04 00000820: PUSH2 0x2e81 00000823: JUMP 00000824: JUMPDEST 00000825: PUSH2 0x196b 00000828: JUMP 00000829: JUMPDEST 0000082a: CALLVALUE 0000082b: DUP1 0000082c: ISZERO 0000082d: PUSH2 0x0835 00000830: JUMPI 00000831: PUSH1 0x00 00000833: DUP1 00000834: REVERT 00000835: JUMPDEST 00000836: POP 00000837: PUSH2 0x03cb 0000083a: PUSH2 0x0844 0000083d: CALLDATASIZE 0000083e: PUSH1 0x04 00000840: PUSH2 0x2cf7 00000843: JUMP 00000844: JUMPDEST 00000845: PUSH2 0x19a8 00000848: JUMP 00000849: JUMPDEST 0000084a: CALLVALUE 0000084b: DUP1 0000084c: ISZERO 0000084d: PUSH2 0x0855 00000850: JUMPI 00000851: PUSH1 0x00 00000853: DUP1 00000854: REVERT 00000855: JUMPDEST 00000856: POP 00000857: PUSH2 0x0394 0000085a: PUSH2 0x0864 0000085d: CALLDATASIZE 0000085e: PUSH1 0x04 00000860: PUSH2 0x2f08 00000863: JUMP 00000864: JUMPDEST 00000865: PUSH2 0x1b1d 00000868: JUMP 00000869: JUMPDEST 0000086a: CALLVALUE 0000086b: DUP1 0000086c: ISZERO 0000086d: PUSH2 0x0875 00000870: JUMPI 00000871: PUSH1 0x00 00000873: DUP1 00000874: REVERT 00000875: JUMPDEST 00000876: POP 00000877: PUSH1 0x18 00000879: SLOAD 0000087a: PUSH2 0x035f 0000087d: SWAP1 0000087e: PUSH1 0x01 00000880: PUSH1 0xa8 00000882: SHL 00000883: SWAP1 00000884: DIV 00000885: PUSH1 0xff 00000887: AND 00000888: DUP2 00000889: JUMP 0000088a: JUMPDEST 0000088b: CALLVALUE 0000088c: DUP1 0000088d: ISZERO 0000088e: PUSH2 0x0896 00000891: JUMPI 00000892: PUSH1 0x00 00000894: DUP1 00000895: REVERT 00000896: JUMPDEST 00000897: POP 00000898: PUSH2 0x0441 0000089b: PUSH1 0x12 0000089d: SLOAD 0000089e: DUP2 0000089f: JUMP 000008a0: JUMPDEST 000008a1: CALLVALUE 000008a2: DUP1 000008a3: ISZERO 000008a4: PUSH2 0x08ac 000008a7: JUMPI 000008a8: PUSH1 0x00 000008aa: DUP1 000008ab: REVERT 000008ac: JUMPDEST 000008ad: POP 000008ae: PUSH2 0x0441 000008b1: PUSH1 0x15 000008b3: SLOAD 000008b4: DUP2 000008b5: JUMP 000008b6: JUMPDEST 000008b7: PUSH2 0x0394 000008ba: PUSH2 0x08c4 000008bd: CALLDATASIZE 000008be: PUSH1 0x04 000008c0: PUSH2 0x2ffb 000008c3: JUMP 000008c4: JUMPDEST 000008c5: PUSH2 0x1b5f 000008c8: JUMP 000008c9: JUMPDEST 000008ca: CALLVALUE 000008cb: DUP1 000008cc: ISZERO 000008cd: PUSH2 0x08d5 000008d0: JUMPI 000008d1: PUSH1 0x00 000008d3: DUP1 000008d4: REVERT 000008d5: JUMPDEST 000008d6: POP 000008d7: PUSH2 0x0394 000008da: PUSH2 0x1f48 000008dd: JUMP 000008de: JUMPDEST 000008df: CALLVALUE 000008e0: DUP1 000008e1: ISZERO 000008e2: PUSH2 0x08ea 000008e5: JUMPI 000008e6: PUSH1 0x00 000008e8: DUP1 000008e9: REVERT 000008ea: JUMPDEST 000008eb: POP 000008ec: PUSH2 0x0394 000008ef: PUSH2 0x08f9 000008f2: CALLDATASIZE 000008f3: PUSH1 0x04 000008f5: PUSH2 0x2cf7 000008f8: JUMP 000008f9: JUMPDEST 000008fa: PUSH2 0x1ff6 000008fd: JUMP 000008fe: JUMPDEST 000008ff: CALLVALUE 00000900: DUP1 00000901: ISZERO 00000902: PUSH2 0x090a 00000905: JUMPI 00000906: PUSH1 0x00 00000908: DUP1 00000909: REVERT 0000090a: JUMPDEST 0000090b: POP 0000090c: PUSH2 0x0441 0000090f: PUSH1 0x14 00000911: SLOAD 00000912: DUP2 00000913: JUMP 00000914: JUMPDEST 00000915: CALLVALUE 00000916: DUP1 00000917: ISZERO 00000918: PUSH2 0x0920 0000091b: JUMPI 0000091c: PUSH1 0x00 0000091e: DUP1 0000091f: REVERT 00000920: JUMPDEST 00000921: POP 00000922: PUSH2 0x035f 00000925: PUSH2 0x092f 00000928: CALLDATASIZE 00000929: PUSH1 0x04 0000092b: PUSH2 0x3021 0000092e: JUMP 0000092f: JUMPDEST 00000930: PUSH1 0x01 00000932: PUSH1 0x01 00000934: PUSH1 0xa0 00000936: SHL 00000937: SUB 00000938: SWAP2 00000939: DUP3 0000093a: AND 0000093b: PUSH1 0x00 0000093d: SWAP1 0000093e: DUP2 0000093f: MSTORE 00000940: PUSH1 0x06 00000942: PUSH1 0x20 00000944: SWAP1 00000945: DUP2 00000946: MSTORE 00000947: PUSH1 0x40 00000949: DUP1 0000094a: DUP4 0000094b: KECCAK256 0000094c: SWAP4 0000094d: SWAP1 0000094e: SWAP5 0000094f: AND 00000950: DUP3 00000951: MSTORE 00000952: SWAP2 00000953: SWAP1 00000954: SWAP2 00000955: MSTORE 00000956: KECCAK256 00000957: SLOAD 00000958: PUSH1 0xff 0000095a: AND 0000095b: SWAP1 0000095c: JUMP 0000095d: JUMPDEST 0000095e: CALLVALUE 0000095f: DUP1 00000960: ISZERO 00000961: PUSH2 0x0969 00000964: JUMPI 00000965: PUSH1 0x00 00000967: DUP1 00000968: REVERT 00000969: JUMPDEST 0000096a: POP 0000096b: PUSH2 0x0394 0000096e: PUSH2 0x0978 00000971: CALLDATASIZE 00000972: PUSH1 0x04 00000974: PUSH2 0x2c3e 00000977: JUMP 00000978: JUMPDEST 00000979: PUSH2 0x2025 0000097c: JUMP 0000097d: JUMPDEST 0000097e: CALLVALUE 0000097f: DUP1 00000980: ISZERO 00000981: PUSH2 0x0989 00000984: JUMPI 00000985: PUSH1 0x00 00000987: DUP1 00000988: REVERT 00000989: JUMPDEST 0000098a: POP 0000098b: PUSH2 0x0394 0000098e: PUSH2 0x0998 00000991: CALLDATASIZE 00000992: PUSH1 0x04 00000994: PUSH2 0x2f08 00000997: JUMP 00000998: JUMPDEST 00000999: PUSH2 0x20c0 0000099c: JUMP 0000099d: JUMPDEST 0000099e: PUSH1 0x07 000009a0: SLOAD 000009a1: PUSH1 0x01 000009a3: PUSH1 0x01 000009a5: PUSH1 0xa0 000009a7: SHL 000009a8: SUB 000009a9: AND 000009aa: CALLER 000009ab: EQ 000009ac: PUSH2 0x09d0 000009af: JUMPI 000009b0: PUSH1 0x40 000009b2: MLOAD 000009b3: PUSH3 0x461bcd 000009b7: PUSH1 0xe5 000009b9: SHL 000009ba: DUP2 000009bb: MSTORE 000009bc: PUSH1 0x04 000009be: ADD 000009bf: PUSH2 0x09c7 000009c2: SWAP1 000009c3: PUSH2 0x304b 000009c6: JUMP 000009c7: JUMPDEST 000009c8: PUSH1 0x40 000009ca: MLOAD 000009cb: DUP1 000009cc: SWAP2 000009cd: SUB 000009ce: SWAP1 000009cf: REVERT 000009d0: JUMPDEST 000009d1: PUSH1 0x18 000009d3: DUP1 000009d4: SLOAD 000009d5: PUSH1 0x01 000009d7: PUSH1 0x01 000009d9: PUSH1 0xa0 000009db: SHL 000009dc: SUB 000009dd: NOT 000009de: AND 000009df: PUSH1 0x01 000009e1: PUSH1 0x01 000009e3: PUSH1 0xa0 000009e5: SHL 000009e6: SUB 000009e7: SWAP3 000009e8: SWAP1 000009e9: SWAP3 000009ea: AND 000009eb: SWAP2 000009ec: SWAP1 000009ed: SWAP2 000009ee: OR 000009ef: SWAP1 000009f0: SSTORE 000009f1: JUMP 000009f2: JUMPDEST 000009f3: PUSH1 0x00 000009f5: PUSH1 0x01 000009f7: PUSH1 0x01 000009f9: PUSH1 0xe0 000009fb: SHL 000009fc: SUB 000009fd: NOT 000009fe: DUP3 000009ff: AND 00000a00: PUSH4 0x80ac58cd 00000a05: PUSH1 0xe0 00000a07: SHL 00000a08: EQ 00000a09: DUP1 00000a0a: PUSH2 0x0a23 00000a0d: JUMPI 00000a0e: POP 00000a0f: PUSH1 0x01 00000a11: PUSH1 0x01 00000a13: PUSH1 0xe0 00000a15: SHL 00000a16: SUB 00000a17: NOT 00000a18: DUP3 00000a19: AND 00000a1a: PUSH4 0x5b5e139f 00000a1f: PUSH1 0xe0 00000a21: SHL 00000a22: EQ 00000a23: JUMPDEST 00000a24: DUP1 00000a25: PUSH2 0x0a3e 00000a28: JUMPI 00000a29: POP 00000a2a: PUSH1 0x01 00000a2c: PUSH1 0x01 00000a2e: PUSH1 0xe0 00000a30: SHL 00000a31: SUB 00000a32: NOT 00000a33: DUP3 00000a34: AND 00000a35: PUSH4 0x780e9d63 00000a3a: PUSH1 0xe0 00000a3c: SHL 00000a3d: EQ 00000a3e: JUMPDEST 00000a3f: DUP1 00000a40: PUSH2 0x0a59 00000a43: JUMPI 00000a44: POP 00000a45: PUSH4 0x01ffc9a7 00000a4a: PUSH1 0xe0 00000a4c: SHL 00000a4d: PUSH1 0x01 00000a4f: PUSH1 0x01 00000a51: PUSH1 0xe0 00000a53: SHL 00000a54: SUB 00000a55: NOT 00000a56: DUP4 00000a57: AND 00000a58: EQ 00000a59: JUMPDEST 00000a5a: SWAP3 00000a5b: SWAP2 00000a5c: POP 00000a5d: POP 00000a5e: JUMP 00000a5f: JUMPDEST 00000a60: PUSH1 0x60 00000a62: PUSH1 0x01 00000a64: DUP1 00000a65: SLOAD 00000a66: PUSH2 0x0a6e 00000a69: SWAP1 00000a6a: PUSH2 0x3080 00000a6d: JUMP 00000a6e: JUMPDEST 00000a6f: DUP1 00000a70: PUSH1 0x1f 00000a72: ADD 00000a73: PUSH1 0x20 00000a75: DUP1 00000a76: SWAP2 00000a77: DIV 00000a78: MUL 00000a79: PUSH1 0x20 00000a7b: ADD 00000a7c: PUSH1 0x40 00000a7e: MLOAD 00000a7f: SWAP1 00000a80: DUP2 00000a81: ADD 00000a82: PUSH1 0x40 00000a84: MSTORE 00000a85: DUP1 00000a86: SWAP3 00000a87: SWAP2 00000a88: SWAP1 00000a89: DUP2 00000a8a: DUP2 00000a8b: MSTORE 00000a8c: PUSH1 0x20 00000a8e: ADD 00000a8f: DUP3 00000a90: DUP1 00000a91: SLOAD 00000a92: PUSH2 0x0a9a 00000a95: SWAP1 00000a96: PUSH2 0x3080 00000a99: JUMP 00000a9a: JUMPDEST 00000a9b: DUP1 00000a9c: ISZERO 00000a9d: PUSH2 0x0ae7 00000aa0: JUMPI 00000aa1: DUP1 00000aa2: PUSH1 0x1f 00000aa4: LT 00000aa5: PUSH2 0x0abc 00000aa8: JUMPI 00000aa9: PUSH2 0x0100 00000aac: DUP1 00000aad: DUP4 00000aae: SLOAD 00000aaf: DIV 00000ab0: MUL 00000ab1: DUP4 00000ab2: MSTORE 00000ab3: SWAP2 00000ab4: PUSH1 0x20 00000ab6: ADD 00000ab7: SWAP2 00000ab8: PUSH2 0x0ae7 00000abb: JUMP 00000abc: JUMPDEST 00000abd: DUP3 00000abe: ADD 00000abf: SWAP2 00000ac0: SWAP1 00000ac1: PUSH1 0x00 00000ac3: MSTORE 00000ac4: PUSH1 0x20 00000ac6: PUSH1 0x00 00000ac8: KECCAK256 00000ac9: SWAP1 00000aca: JUMPDEST 00000acb: DUP2 00000acc: SLOAD 00000acd: DUP2 00000ace: MSTORE 00000acf: SWAP1 00000ad0: PUSH1 0x01 00000ad2: ADD 00000ad3: SWAP1 00000ad4: PUSH1 0x20 00000ad6: ADD 00000ad7: DUP1 00000ad8: DUP4 00000ad9: GT 00000ada: PUSH2 0x0aca 00000add: JUMPI 00000ade: DUP3 00000adf: SWAP1 00000ae0: SUB 00000ae1: PUSH1 0x1f 00000ae3: AND 00000ae4: DUP3 00000ae5: ADD 00000ae6: SWAP2 00000ae7: JUMPDEST 00000ae8: POP 00000ae9: POP 00000aea: POP 00000aeb: POP 00000aec: POP 00000aed: SWAP1 00000aee: POP 00000aef: SWAP1 00000af0: JUMP 00000af1: JUMPDEST 00000af2: PUSH1 0x00 00000af4: PUSH2 0x0afe 00000af7: DUP3 00000af8: PUSH1 0x00 00000afa: SLOAD 00000afb: GT 00000afc: SWAP1 00000afd: JUMP 00000afe: JUMPDEST 00000aff: PUSH2 0x0b60 00000b02: JUMPI 00000b03: PUSH1 0x40 00000b05: MLOAD 00000b06: PUSH3 0x461bcd 00000b0a: PUSH1 0xe5 00000b0c: SHL 00000b0d: DUP2 00000b0e: MSTORE 00000b0f: PUSH1 0x20 00000b11: PUSH1 0x04 00000b13: DUP3 00000b14: ADD 00000b15: MSTORE 00000b16: PUSH1 0x2d 00000b18: PUSH1 0x24 00000b1a: DUP3 00000b1b: ADD 00000b1c: MSTORE 00000b1d: PUSH32 0x455243373231413a20617070726f76656420717565727920666f72206e6f6e65 00000b3e: PUSH1 0x44 00000b40: DUP3 00000b41: ADD 00000b42: MSTORE 00000b43: PUSH13 0x3c34b9ba32b73a103a37b5b2b7 00000b51: PUSH1 0x99 00000b53: SHL 00000b54: PUSH1 0x64 00000b56: DUP3 00000b57: ADD 00000b58: MSTORE 00000b59: PUSH1 0x84 00000b5b: ADD 00000b5c: PUSH2 0x09c7 00000b5f: JUMP 00000b60: JUMPDEST 00000b61: POP 00000b62: PUSH1 0x00 00000b64: SWAP1 00000b65: DUP2 00000b66: MSTORE 00000b67: PUSH1 0x05 00000b69: PUSH1 0x20 00000b6b: MSTORE 00000b6c: PUSH1 0x40 00000b6e: SWAP1 00000b6f: KECCAK256 00000b70: SLOAD 00000b71: PUSH1 0x01 00000b73: PUSH1 0x01 00000b75: PUSH1 0xa0 00000b77: SHL 00000b78: SUB 00000b79: AND 00000b7a: SWAP1 00000b7b: JUMP 00000b7c: JUMPDEST 00000b7d: PUSH1 0x00 00000b7f: PUSH2 0x0b87 00000b82: DUP3 00000b83: PUSH2 0x1236 00000b86: JUMP 00000b87: JUMPDEST 00000b88: SWAP1 00000b89: POP 00000b8a: DUP1 00000b8b: PUSH1 0x01 00000b8d: PUSH1 0x01 00000b8f: PUSH1 0xa0 00000b91: SHL 00000b92: SUB 00000b93: AND 00000b94: DUP4 00000b95: PUSH1 0x01 00000b97: PUSH1 0x01 00000b99: PUSH1 0xa0 00000b9b: SHL 00000b9c: SUB 00000b9d: AND 00000b9e: EQ 00000b9f: ISZERO 00000ba0: PUSH2 0x0bf6 00000ba3: JUMPI 00000ba4: PUSH1 0x40 00000ba6: MLOAD 00000ba7: PUSH3 0x461bcd 00000bab: PUSH1 0xe5 00000bad: SHL 00000bae: DUP2 00000baf: MSTORE 00000bb0: PUSH1 0x20 00000bb2: PUSH1 0x04 00000bb4: DUP3 00000bb5: ADD 00000bb6: MSTORE 00000bb7: PUSH1 0x22 00000bb9: PUSH1 0x24 00000bbb: DUP3 00000bbc: ADD 00000bbd: MSTORE 00000bbe: PUSH32 0x455243373231413a20617070726f76616c20746f2063757272656e74206f776e 00000bdf: PUSH1 0x44 00000be1: DUP3 00000be2: ADD 00000be3: MSTORE 00000be4: PUSH2 0x32b9 00000be7: PUSH1 0xf1 00000be9: SHL 00000bea: PUSH1 0x64 00000bec: DUP3 00000bed: ADD 00000bee: MSTORE 00000bef: PUSH1 0x84 00000bf1: ADD 00000bf2: PUSH2 0x09c7 00000bf5: JUMP 00000bf6: JUMPDEST 00000bf7: CALLER 00000bf8: PUSH1 0x01 00000bfa: PUSH1 0x01 00000bfc: PUSH1 0xa0 00000bfe: SHL 00000bff: SUB 00000c00: DUP3 00000c01: AND 00000c02: EQ 00000c03: DUP1 00000c04: PUSH2 0x0c12 00000c07: JUMPI 00000c08: POP 00000c09: PUSH2 0x0c12 00000c0c: DUP2 00000c0d: CALLER 00000c0e: PUSH2 0x092f 00000c11: JUMP 00000c12: JUMPDEST 00000c13: PUSH2 0x0c84 00000c16: JUMPI 00000c17: PUSH1 0x40 00000c19: MLOAD 00000c1a: PUSH3 0x461bcd 00000c1e: PUSH1 0xe5 00000c20: SHL 00000c21: DUP2 00000c22: MSTORE 00000c23: PUSH1 0x20 00000c25: PUSH1 0x04 00000c27: DUP3 00000c28: ADD 00000c29: MSTORE 00000c2a: PUSH1 0x39 00000c2c: PUSH1 0x24 00000c2e: DUP3 00000c2f: ADD 00000c30: MSTORE 00000c31: PUSH32 0x455243373231413a20617070726f76652063616c6c6572206973206e6f74206f 00000c52: PUSH1 0x44 00000c54: DUP3 00000c55: ADD 00000c56: MSTORE 00000c57: PUSH32 0x776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000 00000c78: PUSH1 0x64 00000c7a: DUP3 00000c7b: ADD 00000c7c: MSTORE 00000c7d: PUSH1 0x84 00000c7f: ADD 00000c80: PUSH2 0x09c7 00000c83: JUMP 00000c84: JUMPDEST 00000c85: PUSH2 0x0c8f 00000c88: DUP4 00000c89: DUP4 00000c8a: DUP4 00000c8b: PUSH2 0x2102 00000c8e: JUMP 00000c8f: JUMPDEST 00000c90: POP 00000c91: POP 00000c92: POP 00000c93: JUMP 00000c94: JUMPDEST 00000c95: PUSH1 0x07 00000c97: SLOAD 00000c98: PUSH1 0x01 00000c9a: PUSH1 0x01 00000c9c: PUSH1 0xa0 00000c9e: SHL 00000c9f: SUB 00000ca0: AND 00000ca1: CALLER 00000ca2: EQ 00000ca3: PUSH2 0x0cbe 00000ca6: JUMPI 00000ca7: PUSH1 0x40 00000ca9: MLOAD 00000caa: PUSH3 0x461bcd 00000cae: PUSH1 0xe5 00000cb0: SHL 00000cb1: DUP2 00000cb2: MSTORE 00000cb3: PUSH1 0x04 00000cb5: ADD 00000cb6: PUSH2 0x09c7 00000cb9: SWAP1 00000cba: PUSH2 0x304b 00000cbd: JUMP 00000cbe: JUMPDEST 00000cbf: PUSH1 0x17 00000cc1: SLOAD 00000cc2: DUP3 00000cc3: PUSH1 0x16 00000cc5: SLOAD 00000cc6: PUSH2 0x0ccf 00000cc9: SWAP2 00000cca: SWAP1 00000ccb: PUSH2 0x30d1 00000cce: JUMP 00000ccf: JUMPDEST 00000cd0: GT 00000cd1: ISZERO 00000cd2: PUSH2 0x0d2d 00000cd5: JUMPI 00000cd6: PUSH1 0x40 00000cd8: MLOAD 00000cd9: PUSH3 0x461bcd 00000cdd: PUSH1 0xe5 00000cdf: SHL 00000ce0: DUP2 00000ce1: MSTORE 00000ce2: PUSH1 0x20 00000ce4: PUSH1 0x04 00000ce6: DUP3 00000ce7: ADD 00000ce8: MSTORE 00000ce9: PUSH1 0x27 00000ceb: PUSH1 0x24 00000ced: DUP3 00000cee: ADD 00000cef: MSTORE 00000cf0: PUSH32 0x4e6f7420656e6f756768205265736572766564204e465473206c65667420746f 00000d11: PUSH1 0x44 00000d13: DUP3 00000d14: ADD 00000d15: MSTORE 00000d16: PUSH7 0x1036b4b73a1717 00000d1e: PUSH1 0xc9 00000d20: SHL 00000d21: PUSH1 0x64 00000d23: DUP3 00000d24: ADD 00000d25: MSTORE 00000d26: PUSH1 0x84 00000d28: ADD 00000d29: PUSH2 0x09c7 00000d2c: JUMP 00000d2d: JUMPDEST 00000d2e: PUSH2 0x0d37 00000d31: DUP2 00000d32: DUP4 00000d33: PUSH2 0x215e 00000d36: JUMP 00000d37: JUMPDEST 00000d38: DUP2 00000d39: PUSH1 0x16 00000d3b: PUSH1 0x00 00000d3d: DUP3 00000d3e: DUP3 00000d3f: SLOAD 00000d40: PUSH2 0x0d49 00000d43: SWAP2 00000d44: SWAP1 00000d45: PUSH2 0x30d1 00000d48: JUMP 00000d49: JUMPDEST 00000d4a: SWAP1 00000d4b: SWAP2 00000d4c: SSTORE 00000d4d: POP 00000d4e: POP 00000d4f: POP 00000d50: POP 00000d51: JUMP 00000d52: JUMPDEST 00000d53: PUSH2 0x0c8f 00000d56: DUP4 00000d57: DUP4 00000d58: DUP4 00000d59: PUSH2 0x2178 00000d5c: JUMP 00000d5d: JUMPDEST 00000d5e: CALLVALUE 00000d5f: PUSH1 0x1e 00000d61: PUSH1 0x00 00000d63: DUP3 00000d64: DUP3 00000d65: SLOAD 00000d66: PUSH2 0x0d6f 00000d69: SWAP2 00000d6a: SWAP1 00000d6b: PUSH2 0x30d1 00000d6e: JUMP 00000d6f: JUMPDEST 00000d70: SWAP1 00000d71: SWAP2 00000d72: SSTORE 00000d73: POP 00000d74: PUSH2 0x0da1 00000d77: SWAP1 00000d78: POP 00000d79: PUSH2 0x0d98 00000d7c: PUSH2 0x0d84 00000d7f: PUSH1 0x00 00000d81: SLOAD 00000d82: SWAP1 00000d83: JUMP 00000d84: JUMPDEST 00000d85: PUSH1 0x1f 00000d87: SLOAD 00000d88: PUSH2 0x0d92 00000d8b: SWAP1 00000d8c: CALLVALUE 00000d8d: SWAP1 00000d8e: PUSH2 0x245d 00000d91: JUMP 00000d92: JUMPDEST 00000d93: SWAP1 00000d94: PUSH2 0x24dc 00000d97: JUMP 00000d98: JUMPDEST 00000d99: PUSH1 0x20 00000d9b: SLOAD 00000d9c: SWAP1 00000d9d: PUSH2 0x2537 00000da0: JUMP 00000da1: JUMPDEST 00000da2: PUSH1 0x20 00000da4: SSTORE 00000da5: JUMP 00000da6: JUMPDEST 00000da7: PUSH1 0x07 00000da9: SLOAD 00000daa: PUSH1 0x01 00000dac: PUSH1 0x01 00000dae: PUSH1 0xa0 00000db0: SHL 00000db1: SUB 00000db2: AND 00000db3: CALLER 00000db4: EQ 00000db5: PUSH2 0x0dd0 00000db8: JUMPI 00000db9: PUSH1 0x40 00000dbb: MLOAD 00000dbc: PUSH3 0x461bcd 00000dc0: PUSH1 0xe5 00000dc2: SHL 00000dc3: DUP2 00000dc4: MSTORE 00000dc5: PUSH1 0x04 00000dc7: ADD 00000dc8: PUSH2 0x09c7 00000dcb: SWAP1 00000dcc: PUSH2 0x304b 00000dcf: JUMP 00000dd0: JUMPDEST 00000dd1: PUSH1 0x18 00000dd3: DUP1 00000dd4: SLOAD 00000dd5: PUSH1 0xff 00000dd7: PUSH1 0xb0 00000dd9: SHL 00000dda: NOT 00000ddb: DUP2 00000ddc: AND 00000ddd: PUSH1 0x01 00000ddf: PUSH1 0xb0 00000de1: SHL 00000de2: SWAP2 00000de3: DUP3 00000de4: SWAP1 00000de5: DIV 00000de6: PUSH1 0xff 00000de8: AND 00000de9: ISZERO 00000dea: SWAP1 00000deb: SWAP2 00000dec: MUL 00000ded: OR 00000dee: SWAP1 00000def: SSTORE 00000df0: JUMP 00000df1: JUMPDEST 00000df2: PUSH1 0x00 00000df4: PUSH2 0x0dfc 00000df7: DUP4 00000df8: PUSH2 0x1305 00000dfb: JUMP 00000dfc: JUMPDEST 00000dfd: DUP3 00000dfe: LT 00000dff: PUSH2 0x0e55 00000e02: JUMPI 00000e03: PUSH1 0x40 00000e05: MLOAD 00000e06: PUSH3 0x461bcd 00000e0a: PUSH1 0xe5 00000e0c: SHL 00000e0d: DUP2 00000e0e: MSTORE 00000e0f: PUSH1 0x20 00000e11: PUSH1 0x04 00000e13: DUP3 00000e14: ADD 00000e15: MSTORE 00000e16: PUSH1 0x22 00000e18: PUSH1 0x24 00000e1a: DUP3 00000e1b: ADD 00000e1c: MSTORE 00000e1d: PUSH32 0x455243373231413a206f776e657220696e646578206f7574206f6620626f756e 00000e3e: PUSH1 0x44 00000e40: DUP3 00000e41: ADD 00000e42: MSTORE 00000e43: PUSH2 0x6473 00000e46: PUSH1 0xf0 00000e48: SHL 00000e49: PUSH1 0x64 00000e4b: DUP3 00000e4c: ADD 00000e4d: MSTORE 00000e4e: PUSH1 0x84 00000e50: ADD 00000e51: PUSH2 0x09c7 00000e54: JUMP 00000e55: JUMPDEST 00000e56: PUSH1 0x00 00000e58: DUP1 00000e59: SLOAD 00000e5a: SWAP1 00000e5b: DUP1 00000e5c: DUP1 00000e5d: JUMPDEST 00000e5e: DUP4 00000e5f: DUP2 00000e60: LT 00000e61: ISZERO 00000e62: PUSH2 0x0eee 00000e65: JUMPI 00000e66: PUSH1 0x00 00000e68: DUP2 00000e69: DUP2 00000e6a: MSTORE 00000e6b: PUSH1 0x03 00000e6d: PUSH1 0x20 00000e6f: SWAP1 00000e70: DUP2 00000e71: MSTORE 00000e72: PUSH1 0x40 00000e74: SWAP2 00000e75: DUP3 00000e76: SWAP1 00000e77: KECCAK256 00000e78: DUP3 00000e79: MLOAD 00000e7a: DUP1 00000e7b: DUP5 00000e7c: ADD 00000e7d: SWAP1 00000e7e: SWAP4 00000e7f: MSTORE 00000e80: SLOAD 00000e81: PUSH1 0x01 00000e83: PUSH1 0x01 00000e85: PUSH1 0xa0 00000e87: SHL 00000e88: SUB 00000e89: DUP2 00000e8a: AND 00000e8b: DUP1 00000e8c: DUP5 00000e8d: MSTORE 00000e8e: PUSH1 0x01 00000e90: PUSH1 0xa0 00000e92: SHL 00000e93: SWAP1 00000e94: SWAP2 00000e95: DIV 00000e96: PUSH8 0xffffffffffffffff 00000e9f: AND 00000ea0: SWAP2 00000ea1: DUP4 00000ea2: ADD 00000ea3: SWAP2 00000ea4: SWAP1 00000ea5: SWAP2 00000ea6: MSTORE 00000ea7: ISZERO 00000ea8: PUSH2 0x0eb0 00000eab: JUMPI 00000eac: DUP1 00000ead: MLOAD 00000eae: SWAP3 00000eaf: POP 00000eb0: JUMPDEST 00000eb1: DUP8 00000eb2: PUSH1 0x01 00000eb4: PUSH1 0x01 00000eb6: PUSH1 0xa0 00000eb8: SHL 00000eb9: SUB 00000eba: AND 00000ebb: DUP4 00000ebc: PUSH1 0x01 00000ebe: PUSH1 0x01 00000ec0: PUSH1 0xa0 00000ec2: SHL 00000ec3: SUB 00000ec4: AND 00000ec5: EQ 00000ec6: ISZERO 00000ec7: PUSH2 0x0ee5 00000eca: JUMPI 00000ecb: DUP7 00000ecc: DUP5 00000ecd: EQ 00000ece: ISZERO 00000ecf: PUSH2 0x0ede 00000ed2: JUMPI 00000ed3: POP 00000ed4: SWAP4 00000ed5: POP 00000ed6: PUSH2 0x0a59 00000ed9: SWAP3 00000eda: POP 00000edb: POP 00000edc: POP 00000edd: JUMP 00000ede: JUMPDEST 00000edf: PUSH1 0x01 00000ee1: SWAP1 00000ee2: SWAP4 00000ee3: ADD 00000ee4: SWAP3 00000ee5: JUMPDEST 00000ee6: POP 00000ee7: PUSH1 0x01 00000ee9: ADD 00000eea: PUSH2 0x0e5d 00000eed: JUMP 00000eee: JUMPDEST 00000eef: POP 00000ef0: PUSH1 0x40 00000ef2: MLOAD 00000ef3: PUSH3 0x461bcd 00000ef7: PUSH1 0xe5 00000ef9: SHL 00000efa: DUP2 00000efb: MSTORE 00000efc: PUSH1 0x20 00000efe: PUSH1 0x04 00000f00: DUP3 00000f01: ADD 00000f02: MSTORE 00000f03: PUSH1 0x2e 00000f05: PUSH1 0x24 00000f07: DUP3 00000f08: ADD 00000f09: MSTORE 00000f0a: PUSH32 0x455243373231413a20756e61626c6520746f2067657420746f6b656e206f6620 00000f2b: PUSH1 0x44 00000f2d: DUP3 00000f2e: ADD 00000f2f: MSTORE 00000f30: PUSH14 0x0deeedccae440c4f240d2dcc8caf 00000f3f: PUSH1 0x93 00000f41: SHL 00000f42: PUSH1 0x64 00000f44: DUP3 00000f45: ADD 00000f46: MSTORE 00000f47: PUSH1 0x84 00000f49: ADD 00000f4a: PUSH2 0x09c7 00000f4d: JUMP 00000f4e: JUMPDEST 00000f4f: PUSH1 0x40 00000f51: MLOAD 00000f52: PUSH12 0xffffffffffffffffffffffff 00000f5f: NOT 00000f60: ADDRESS 00000f61: PUSH1 0x60 00000f63: SWAP1 00000f64: DUP2 00000f65: SHL 00000f66: DUP3 00000f67: AND 00000f68: PUSH1 0x20 00000f6a: DUP5 00000f6b: ADD 00000f6c: MSTORE 00000f6d: DUP7 00000f6e: SWAP1 00000f6f: SHL 00000f70: AND 00000f71: PUSH1 0x34 00000f73: DUP3 00000f74: ADD 00000f75: MSTORE 00000f76: PUSH1 0x00 00000f78: SWAP1 00000f79: DUP2 00000f7a: SWAP1 00000f7b: PUSH1 0x48 00000f7d: ADD 00000f7e: PUSH1 0x40 00000f80: MLOAD 00000f81: PUSH1 0x20 00000f83: DUP2 00000f84: DUP4 00000f85: SUB 00000f86: SUB 00000f87: DUP2 00000f88: MSTORE 00000f89: SWAP1 00000f8a: PUSH1 0x40 00000f8c: MSTORE 00000f8d: DUP1 00000f8e: MLOAD 00000f8f: SWAP1 00000f90: PUSH1 0x20 00000f92: ADD 00000f93: KECCAK256 00000f94: SWAP1 00000f95: POP 00000f96: PUSH1 0x01 00000f98: DUP2 00000f99: PUSH1 0x40 00000f9b: MLOAD 00000f9c: PUSH1 0x20 00000f9e: ADD 00000f9f: PUSH2 0x0fd4 00000fa2: SWAP2 00000fa3: SWAP1 00000fa4: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00000fc5: DUP2 00000fc6: MSTORE 00000fc7: PUSH1 0x1c 00000fc9: DUP2 00000fca: ADD 00000fcb: SWAP2 00000fcc: SWAP1 00000fcd: SWAP2 00000fce: MSTORE 00000fcf: PUSH1 0x3c 00000fd1: ADD 00000fd2: SWAP1 00000fd3: JUMP 00000fd4: JUMPDEST 00000fd5: PUSH1 0x40 00000fd7: DUP1 00000fd8: MLOAD 00000fd9: PUSH1 0x1f 00000fdb: NOT 00000fdc: DUP2 00000fdd: DUP5 00000fde: SUB 00000fdf: ADD 00000fe0: DUP2 00000fe1: MSTORE 00000fe2: DUP3 00000fe3: DUP3 00000fe4: MSTORE 00000fe5: DUP1 00000fe6: MLOAD 00000fe7: PUSH1 0x20 00000fe9: SWAP2 00000fea: DUP3 00000feb: ADD 00000fec: KECCAK256 00000fed: PUSH1 0x00 00000fef: DUP5 00000ff0: MSTORE 00000ff1: SWAP1 00000ff2: DUP4 00000ff3: ADD 00000ff4: DUP1 00000ff5: DUP4 00000ff6: MSTORE 00000ff7: MSTORE 00000ff8: PUSH1 0xff 00000ffa: DUP9 00000ffb: AND 00000ffc: SWAP1 00000ffd: DUP3 00000ffe: ADD 00000fff: MSTORE 00001000: PUSH1 0x60 00001002: DUP2 00001003: ADD 00001004: DUP7 00001005: SWAP1 00001006: MSTORE 00001007: PUSH1 0x80 00001009: DUP2 0000100a: ADD 0000100b: DUP6 0000100c: SWAP1 0000100d: MSTORE 0000100e: PUSH1 0xa0 00001010: ADD 00001011: PUSH1 0x20 00001013: PUSH1 0x40 00001015: MLOAD 00001016: PUSH1 0x20 00001018: DUP2 00001019: SUB 0000101a: SWAP1 0000101b: DUP1 0000101c: DUP5 0000101d: SUB 0000101e: SWAP1 0000101f: DUP6 00001020: GAS 00001021: STATICCALL 00001022: ISZERO 00001023: DUP1 00001024: ISZERO 00001025: PUSH2 0x1032 00001028: JUMPI 00001029: RETURNDATASIZE 0000102a: PUSH1 0x00 0000102c: DUP1 0000102d: RETURNDATACOPY 0000102e: RETURNDATASIZE 0000102f: PUSH1 0x00 00001031: REVERT 00001032: JUMPDEST 00001033: POP 00001034: POP 00001035: PUSH1 0x40 00001037: MLOAD 00001038: PUSH1 0x1f 0000103a: NOT 0000103b: ADD 0000103c: MLOAD 0000103d: PUSH1 0x18 0000103f: SLOAD 00001040: PUSH1 0x01 00001042: PUSH1 0x01 00001044: PUSH1 0xa0 00001046: SHL 00001047: SUB 00001048: SWAP1 00001049: DUP2 0000104a: AND 0000104b: SWAP2 0000104c: AND 0000104d: EQ 0000104e: SWAP3 0000104f: POP 00001050: POP 00001051: POP 00001052: JUMPDEST 00001053: SWAP5 00001054: SWAP4 00001055: POP 00001056: POP 00001057: POP 00001058: POP 00001059: JUMP 0000105a: JUMPDEST 0000105b: PUSH1 0x07 0000105d: SLOAD 0000105e: PUSH1 0x01 00001060: PUSH1 0x01 00001062: PUSH1 0xa0 00001064: SHL 00001065: SUB 00001066: AND 00001067: CALLER 00001068: EQ 00001069: PUSH2 0x1084 0000106c: JUMPI 0000106d: PUSH1 0x40 0000106f: MLOAD 00001070: PUSH3 0x461bcd 00001074: PUSH1 0xe5 00001076: SHL 00001077: DUP2 00001078: MSTORE 00001079: PUSH1 0x04 0000107b: ADD 0000107c: PUSH2 0x09c7 0000107f: SWAP1 00001080: PUSH2 0x304b 00001083: JUMP 00001084: JUMPDEST 00001085: DUP1 00001086: MLOAD 00001087: PUSH2 0x1097 0000108a: SWAP1 0000108b: PUSH1 0x0a 0000108d: SWAP1 0000108e: PUSH1 0x20 00001090: DUP5 00001091: ADD 00001092: SWAP1 00001093: PUSH2 0x2b97 00001096: JUMP 00001097: JUMPDEST 00001098: POP 00001099: POP 0000109a: JUMP 0000109b: JUMPDEST 0000109c: PUSH1 0x02 0000109e: PUSH1 0x08 000010a0: SLOAD 000010a1: EQ 000010a2: ISZERO 000010a3: PUSH2 0x10be 000010a6: JUMPI 000010a7: PUSH1 0x40 000010a9: MLOAD 000010aa: PUSH3 0x461bcd 000010ae: PUSH1 0xe5 000010b0: SHL 000010b1: DUP2 000010b2: MSTORE 000010b3: PUSH1 0x04 000010b5: ADD 000010b6: PUSH2 0x09c7 000010b9: SWAP1 000010ba: PUSH2 0x30e9 000010bd: JUMP 000010be: JUMPDEST 000010bf: PUSH1 0x02 000010c1: PUSH1 0x08 000010c3: SSTORE 000010c4: PUSH1 0x00 000010c6: PUSH2 0x10ce 000010c9: CALLER 000010ca: PUSH2 0x1305 000010cd: JUMP 000010ce: JUMPDEST 000010cf: SWAP1 000010d0: POP 000010d1: PUSH1 0x00 000010d3: DUP1 000010d4: JUMPDEST 000010d5: DUP3 000010d6: DUP2 000010d7: LT 000010d8: ISZERO 000010d9: PUSH2 0x1163 000010dc: JUMPI 000010dd: PUSH1 0x00 000010df: PUSH2 0x10e8 000010e2: CALLER 000010e3: DUP4 000010e4: PUSH2 0x0df1 000010e7: JUMP 000010e8: JUMPDEST 000010e9: SWAP1 000010ea: POP 000010eb: PUSH2 0x111e 000010ee: PUSH1 0x21 000010f0: PUSH1 0x00 000010f2: DUP4 000010f3: DUP2 000010f4: MSTORE 000010f5: PUSH1 0x20 000010f7: ADD 000010f8: SWAP1 000010f9: DUP2 000010fa: MSTORE 000010fb: PUSH1 0x20 000010fd: ADD 000010fe: PUSH1 0x00 00001100: KECCAK256 00001101: SLOAD 00001102: PUSH2 0x1118 00001105: PUSH1 0x1f 00001107: SLOAD 00001108: PUSH1 0x20 0000110a: SLOAD 0000110b: PUSH2 0x24dc 0000110e: SWAP1 0000110f: SWAP2 00001110: SWAP1 00001111: PUSH4 0xffffffff 00001116: AND 00001117: JUMP 00001118: JUMPDEST 00001119: SWAP1 0000111a: PUSH2 0x2596 0000111d: JUMP 0000111e: JUMPDEST 0000111f: PUSH2 0x1128 00001122: SWAP1 00001123: DUP5 00001124: PUSH2 0x30d1 00001127: JUMP 00001128: JUMPDEST 00001129: SWAP3 0000112a: POP 0000112b: PUSH2 0x1141 0000112e: PUSH1 0x1f 00001130: SLOAD 00001131: PUSH1 0x20 00001133: SLOAD 00001134: PUSH2 0x24dc 00001137: SWAP1 00001138: SWAP2 00001139: SWAP1 0000113a: PUSH4 0xffffffff 0000113f: AND 00001140: JUMP 00001141: JUMPDEST 00001142: PUSH1 0x00 00001144: SWAP2 00001145: DUP3 00001146: MSTORE 00001147: PUSH1 0x21 00001149: PUSH1 0x20 0000114b: MSTORE 0000114c: PUSH1 0x40 0000114e: SWAP1 0000114f: SWAP2 00001150: KECCAK256 00001151: SSTORE 00001152: DUP1 00001153: PUSH2 0x115b 00001156: DUP2 00001157: PUSH2 0x3120 0000115a: JUMP 0000115b: JUMPDEST 0000115c: SWAP2 0000115d: POP 0000115e: POP 0000115f: PUSH2 0x10d4 00001162: JUMP 00001163: JUMPDEST 00001164: POP 00001165: PUSH2 0x116e 00001168: CALLER 00001169: DUP3 0000116a: PUSH2 0x25f2 0000116d: JUMP 0000116e: JUMPDEST 0000116f: POP 00001170: POP 00001171: PUSH1 0x01 00001173: PUSH1 0x08 00001175: SSTORE 00001176: JUMP 00001177: JUMPDEST 00001178: PUSH2 0x0c8f 0000117b: DUP4 0000117c: DUP4 0000117d: DUP4 0000117e: PUSH1 0x40 00001180: MLOAD 00001181: DUP1 00001182: PUSH1 0x20 00001184: ADD 00001185: PUSH1 0x40 00001187: MSTORE 00001188: DUP1 00001189: PUSH1 0x00 0000118b: DUP2 0000118c: MSTORE 0000118d: POP 0000118e: PUSH2 0x18bd 00001191: JUMP 00001192: JUMPDEST 00001193: PUSH1 0x07 00001195: SLOAD 00001196: PUSH1 0x00 00001198: SWAP1 00001199: PUSH1 0x01 0000119b: PUSH1 0x01 0000119d: PUSH1 0xa0 0000119f: SHL 000011a0: SUB 000011a1: AND 000011a2: CALLER 000011a3: EQ 000011a4: PUSH2 0x11bf 000011a7: JUMPI 000011a8: PUSH1 0x40 000011aa: MLOAD 000011ab: PUSH3 0x461bcd 000011af: PUSH1 0xe5 000011b1: SHL 000011b2: DUP2 000011b3: MSTORE 000011b4: PUSH1 0x04 000011b6: ADD 000011b7: PUSH2 0x09c7 000011ba: SWAP1 000011bb: PUSH2 0x304b 000011be: JUMP 000011bf: JUMPDEST 000011c0: PUSH1 0x16 000011c2: SLOAD 000011c3: PUSH1 0x17 000011c5: SLOAD 000011c6: PUSH2 0x11cf 000011c9: SWAP2 000011ca: SWAP1 000011cb: PUSH2 0x313b 000011ce: JUMP 000011cf: JUMPDEST 000011d0: SWAP1 000011d1: POP 000011d2: SWAP1 000011d3: JUMP 000011d4: JUMPDEST 000011d5: PUSH1 0x00 000011d7: DUP1 000011d8: SLOAD 000011d9: DUP3 000011da: LT 000011db: PUSH2 0x1232 000011de: JUMPI 000011df: PUSH1 0x40 000011e1: MLOAD 000011e2: PUSH3 0x461bcd 000011e6: PUSH1 0xe5 000011e8: SHL 000011e9: DUP2 000011ea: MSTORE 000011eb: PUSH1 0x20 000011ed: PUSH1 0x04 000011ef: DUP3 000011f0: ADD 000011f1: MSTORE 000011f2: PUSH1 0x23 000011f4: PUSH1 0x24 000011f6: DUP3 000011f7: ADD 000011f8: MSTORE 000011f9: PUSH32 0x455243373231413a20676c6f62616c20696e646578206f7574206f6620626f75 0000121a: PUSH1 0x44 0000121c: DUP3 0000121d: ADD 0000121e: MSTORE 0000121f: PUSH3 0x6e6473 00001223: PUSH1 0xe8 00001225: SHL 00001226: PUSH1 0x64 00001228: DUP3 00001229: ADD 0000122a: MSTORE 0000122b: PUSH1 0x84 0000122d: ADD 0000122e: PUSH2 0x09c7 00001231: JUMP 00001232: JUMPDEST 00001233: POP 00001234: SWAP1 00001235: JUMP 00001236: JUMPDEST 00001237: PUSH1 0x00 00001239: PUSH2 0x1241 0000123c: DUP3 0000123d: PUSH2 0x268c 00001240: JUMP 00001241: JUMPDEST 00001242: MLOAD 00001243: SWAP3 00001244: SWAP2 00001245: POP 00001246: POP 00001247: JUMP 00001248: JUMPDEST 00001249: PUSH1 0x07 0000124b: SLOAD 0000124c: PUSH1 0x01 0000124e: PUSH1 0x01 00001250: PUSH1 0xa0 00001252: SHL 00001253: SUB 00001254: AND 00001255: CALLER 00001256: EQ 00001257: PUSH2 0x1272 0000125a: JUMPI 0000125b: PUSH1 0x40 0000125d: MLOAD 0000125e: PUSH3 0x461bcd 00001262: PUSH1 0xe5 00001264: SHL 00001265: DUP2 00001266: MSTORE 00001267: PUSH1 0x04 00001269: ADD 0000126a: PUSH2 0x09c7 0000126d: SWAP1 0000126e: PUSH2 0x304b 00001271: JUMP 00001272: JUMPDEST 00001273: PUSH1 0x14 00001275: SSTORE 00001276: JUMP 00001277: JUMPDEST 00001278: PUSH1 0x1c 0000127a: DUP1 0000127b: SLOAD 0000127c: PUSH2 0x1284 0000127f: SWAP1 00001280: PUSH2 0x3080 00001283: JUMP 00001284: JUMPDEST 00001285: DUP1 00001286: PUSH1 0x1f 00001288: ADD 00001289: PUSH1 0x20 0000128b: DUP1 0000128c: SWAP2 0000128d: DIV 0000128e: MUL 0000128f: PUSH1 0x20 00001291: ADD 00001292: PUSH1 0x40 00001294: MLOAD 00001295: SWAP1 00001296: DUP2 00001297: ADD 00001298: PUSH1 0x40 0000129a: MSTORE 0000129b: DUP1 0000129c: SWAP3 0000129d: SWAP2 0000129e: SWAP1 0000129f: DUP2 000012a0: DUP2 000012a1: MSTORE 000012a2: PUSH1 0x20 000012a4: ADD 000012a5: DUP3 000012a6: DUP1 000012a7: SLOAD 000012a8: PUSH2 0x12b0 000012ab: SWAP1 000012ac: PUSH2 0x3080 000012af: JUMP 000012b0: JUMPDEST 000012b1: DUP1 000012b2: ISZERO 000012b3: PUSH2 0x12fd 000012b6: JUMPI 000012b7: DUP1 000012b8: PUSH1 0x1f 000012ba: LT 000012bb: PUSH2 0x12d2 000012be: JUMPI 000012bf: PUSH2 0x0100 000012c2: DUP1 000012c3: DUP4 000012c4: SLOAD 000012c5: DIV 000012c6: MUL 000012c7: DUP4 000012c8: MSTORE 000012c9: SWAP2 000012ca: PUSH1 0x20 000012cc: ADD 000012cd: SWAP2 000012ce: PUSH2 0x12fd 000012d1: JUMP 000012d2: JUMPDEST 000012d3: DUP3 000012d4: ADD 000012d5: SWAP2 000012d6: SWAP1 000012d7: PUSH1 0x00 000012d9: MSTORE 000012da: PUSH1 0x20 000012dc: PUSH1 0x00 000012de: KECCAK256 000012df: SWAP1 000012e0: JUMPDEST 000012e1: DUP2 000012e2: SLOAD 000012e3: DUP2 000012e4: MSTORE 000012e5: SWAP1 000012e6: PUSH1 0x01 000012e8: ADD 000012e9: SWAP1 000012ea: PUSH1 0x20 000012ec: ADD 000012ed: DUP1 000012ee: DUP4 000012ef: GT 000012f0: PUSH2 0x12e0 000012f3: JUMPI 000012f4: DUP3 000012f5: SWAP1 000012f6: SUB 000012f7: PUSH1 0x1f 000012f9: AND 000012fa: DUP3 000012fb: ADD 000012fc: SWAP2 000012fd: JUMPDEST 000012fe: POP 000012ff: POP 00001300: POP 00001301: POP 00001302: POP 00001303: DUP2 00001304: JUMP 00001305: JUMPDEST 00001306: PUSH1 0x00 00001308: PUSH1 0x01 0000130a: PUSH1 0x01 0000130c: PUSH1 0xa0 0000130e: SHL 0000130f: SUB 00001310: DUP3 00001311: AND 00001312: PUSH2 0x1371 00001315: JUMPI 00001316: PUSH1 0x40 00001318: MLOAD 00001319: PUSH3 0x461bcd 0000131d: PUSH1 0xe5 0000131f: SHL 00001320: DUP2 00001321: MSTORE 00001322: PUSH1 0x20 00001324: PUSH1 0x04 00001326: DUP3 00001327: ADD 00001328: MSTORE 00001329: PUSH1 0x2b 0000132b: PUSH1 0x24 0000132d: DUP3 0000132e: ADD 0000132f: MSTORE 00001330: PUSH32 0x455243373231413a2062616c616e636520717565727920666f7220746865207a 00001351: PUSH1 0x44 00001353: DUP3 00001354: ADD 00001355: MSTORE 00001356: PUSH11 0x65726f2061646472657373 00001362: PUSH1 0xa8 00001364: SHL 00001365: PUSH1 0x64 00001367: DUP3 00001368: ADD 00001369: MSTORE 0000136a: PUSH1 0x84 0000136c: ADD 0000136d: PUSH2 0x09c7 00001370: JUMP 00001371: JUMPDEST 00001372: POP 00001373: PUSH1 0x01 00001375: PUSH1 0x01 00001377: PUSH1 0xa0 00001379: SHL 0000137a: SUB 0000137b: AND 0000137c: PUSH1 0x00 0000137e: SWAP1 0000137f: DUP2 00001380: MSTORE 00001381: PUSH1 0x04 00001383: PUSH1 0x20 00001385: MSTORE 00001386: PUSH1 0x40 00001388: SWAP1 00001389: KECCAK256 0000138a: SLOAD 0000138b: PUSH1 0x01 0000138d: PUSH1 0x01 0000138f: PUSH1 0x80 00001391: SHL 00001392: SUB 00001393: AND 00001394: SWAP1 00001395: JUMP 00001396: JUMPDEST 00001397: PUSH1 0x07 00001399: SLOAD 0000139a: PUSH1 0x01 0000139c: PUSH1 0x01 0000139e: PUSH1 0xa0 000013a0: SHL 000013a1: SUB 000013a2: AND 000013a3: CALLER 000013a4: EQ 000013a5: PUSH2 0x13c0 000013a8: JUMPI 000013a9: PUSH1 0x40 000013ab: MLOAD 000013ac: PUSH3 0x461bcd 000013b0: PUSH1 0xe5 000013b2: SHL 000013b3: DUP2 000013b4: MSTORE 000013b5: PUSH1 0x04 000013b7: ADD 000013b8: PUSH2 0x09c7 000013bb: SWAP1 000013bc: PUSH2 0x304b 000013bf: JUMP 000013c0: JUMPDEST 000013c1: PUSH2 0x13ca 000013c4: PUSH1 0x00 000013c6: PUSH2 0x2763 000013c9: JUMP 000013ca: JUMPDEST 000013cb: JUMP 000013cc: JUMPDEST 000013cd: PUSH1 0x00 000013cf: DUP1 000013d0: PUSH2 0x13d8 000013d3: DUP4 000013d4: PUSH2 0x1305 000013d7: JUMP 000013d8: JUMPDEST 000013d9: SWAP1 000013da: POP 000013db: PUSH1 0x00 000013dd: DUP1 000013de: JUMPDEST 000013df: DUP3 000013e0: DUP2 000013e1: LT 000013e2: ISZERO 000013e3: PUSH2 0x1442 000013e6: JUMPI 000013e7: PUSH1 0x00 000013e9: PUSH2 0x13f2 000013ec: DUP7 000013ed: DUP4 000013ee: PUSH2 0x0df1 000013f1: JUMP 000013f2: JUMPDEST 000013f3: SWAP1 000013f4: POP 000013f5: PUSH2 0x1422 000013f8: PUSH1 0x21 000013fa: PUSH1 0x00 000013fc: DUP4 000013fd: DUP2 000013fe: MSTORE 000013ff: PUSH1 0x20 00001401: ADD 00001402: SWAP1 00001403: DUP2 00001404: MSTORE 00001405: PUSH1 0x20 00001407: ADD 00001408: PUSH1 0x00 0000140a: KECCAK256 0000140b: SLOAD 0000140c: PUSH2 0x1118 0000140f: PUSH1 0x1f 00001411: SLOAD 00001412: PUSH1 0x20 00001414: SLOAD 00001415: PUSH2 0x24dc 00001418: SWAP1 00001419: SWAP2 0000141a: SWAP1 0000141b: PUSH4 0xffffffff 00001420: AND 00001421: JUMP 00001422: JUMPDEST 00001423: PUSH2 0x142c 00001426: SWAP1 00001427: DUP5 00001428: PUSH2 0x30d1 0000142b: JUMP 0000142c: JUMPDEST 0000142d: SWAP3 0000142e: POP 0000142f: POP 00001430: DUP1 00001431: DUP1 00001432: PUSH2 0x143a 00001435: SWAP1 00001436: PUSH2 0x3120 00001439: JUMP 0000143a: JUMPDEST 0000143b: SWAP2 0000143c: POP 0000143d: POP 0000143e: PUSH2 0x13de 00001441: JUMP 00001442: JUMPDEST 00001443: POP 00001444: SWAP4 00001445: SWAP3 00001446: POP 00001447: POP 00001448: POP 00001449: JUMP 0000144a: JUMPDEST 0000144b: PUSH1 0x07 0000144d: SLOAD 0000144e: PUSH1 0x01 00001450: PUSH1 0x01 00001452: PUSH1 0xa0 00001454: SHL 00001455: SUB 00001456: AND 00001457: CALLER 00001458: EQ 00001459: PUSH2 0x1474 0000145c: JUMPI 0000145d: PUSH1 0x40 0000145f: MLOAD 00001460: PUSH3 0x461bcd 00001464: PUSH1 0xe5 00001466: SHL 00001467: DUP2 00001468: MSTORE 00001469: PUSH1 0x04 0000146b: ADD 0000146c: PUSH2 0x09c7 0000146f: SWAP1 00001470: PUSH2 0x304b 00001473: JUMP 00001474: JUMPDEST 00001475: PUSH1 0x00 00001477: SLOAD 00001478: PUSH1 0x09 0000147a: SSTORE 0000147b: JUMP 0000147c: JUMPDEST 0000147d: PUSH1 0x60 0000147f: PUSH1 0x02 00001481: DUP1 00001482: SLOAD 00001483: PUSH2 0x0a6e 00001486: SWAP1 00001487: PUSH2 0x3080 0000148a: JUMP 0000148b: JUMPDEST 0000148c: PUSH1 0x07 0000148e: SLOAD 0000148f: PUSH1 0x01 00001491: PUSH1 0x01 00001493: PUSH1 0xa0 00001495: SHL 00001496: SUB 00001497: AND 00001498: CALLER 00001499: EQ 0000149a: PUSH2 0x14b5 0000149d: JUMPI 0000149e: PUSH1 0x40 000014a0: MLOAD 000014a1: PUSH3 0x461bcd 000014a5: PUSH1 0xe5 000014a7: SHL 000014a8: DUP2 000014a9: MSTORE 000014aa: PUSH1 0x04 000014ac: ADD 000014ad: PUSH2 0x09c7 000014b0: SWAP1 000014b1: PUSH2 0x304b 000014b4: JUMP 000014b5: JUMPDEST 000014b6: PUSH1 0x1b 000014b8: DUP1 000014b9: SLOAD 000014ba: PUSH1 0xff 000014bc: NOT 000014bd: AND 000014be: PUSH1 0x03 000014c0: OR 000014c1: SWAP1 000014c2: SSTORE 000014c3: PUSH1 0x0d 000014c5: SWAP2 000014c6: SWAP1 000014c7: SWAP2 000014c8: SSTORE 000014c9: PUSH1 0x10 000014cb: SSTORE 000014cc: JUMP 000014cd: JUMPDEST 000014ce: PUSH1 0x01 000014d0: PUSH1 0x01 000014d2: PUSH1 0xa0 000014d4: SHL 000014d5: SUB 000014d6: DUP3 000014d7: AND 000014d8: CALLER 000014d9: EQ 000014da: ISZERO 000014db: PUSH2 0x1526 000014de: JUMPI 000014df: PUSH1 0x40 000014e1: MLOAD 000014e2: PUSH3 0x461bcd 000014e6: PUSH1 0xe5 000014e8: SHL 000014e9: DUP2 000014ea: MSTORE 000014eb: PUSH1 0x20 000014ed: PUSH1 0x04 000014ef: DUP3 000014f0: ADD 000014f1: MSTORE 000014f2: PUSH1 0x1a 000014f4: PUSH1 0x24 000014f6: DUP3 000014f7: ADD 000014f8: MSTORE 000014f9: PUSH32 0x455243373231413a20617070726f766520746f2063616c6c6572000000000000 0000151a: PUSH1 0x44 0000151c: DUP3 0000151d: ADD 0000151e: MSTORE 0000151f: PUSH1 0x64 00001521: ADD 00001522: PUSH2 0x09c7 00001525: JUMP 00001526: JUMPDEST 00001527: CALLER 00001528: PUSH1 0x00 0000152a: DUP2 0000152b: DUP2 0000152c: MSTORE 0000152d: PUSH1 0x06 0000152f: PUSH1 0x20 00001531: SWAP1 00001532: DUP2 00001533: MSTORE 00001534: PUSH1 0x40 00001536: DUP1 00001537: DUP4 00001538: KECCAK256 00001539: PUSH1 0x01 0000153b: PUSH1 0x01 0000153d: PUSH1 0xa0 0000153f: SHL 00001540: SUB 00001541: DUP8 00001542: AND 00001543: DUP1 00001544: DUP6 00001545: MSTORE 00001546: SWAP1 00001547: DUP4 00001548: MSTORE 00001549: SWAP3 0000154a: DUP2 0000154b: SWAP1 0000154c: KECCAK256 0000154d: DUP1 0000154e: SLOAD 0000154f: PUSH1 0xff 00001551: NOT 00001552: AND 00001553: DUP7 00001554: ISZERO 00001555: ISZERO 00001556: SWAP1 00001557: DUP2 00001558: OR 00001559: SWAP1 0000155a: SWAP2 0000155b: SSTORE 0000155c: SWAP1 0000155d: MLOAD 0000155e: SWAP1 0000155f: DUP2 00001560: MSTORE 00001561: SWAP2 00001562: SWAP3 00001563: SWAP2 00001564: PUSH32 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31 00001585: SWAP2 00001586: ADD 00001587: PUSH1 0x40 00001589: MLOAD 0000158a: DUP1 0000158b: SWAP2 0000158c: SUB 0000158d: SWAP1 0000158e: LOG3 0000158f: POP 00001590: POP 00001591: JUMP 00001592: JUMPDEST 00001593: PUSH1 0x07 00001595: SLOAD 00001596: PUSH1 0x01 00001598: PUSH1 0x01 0000159a: PUSH1 0xa0 0000159c: SHL 0000159d: SUB 0000159e: AND 0000159f: CALLER 000015a0: EQ 000015a1: PUSH2 0x15bc 000015a4: JUMPI 000015a5: PUSH1 0x40 000015a7: MLOAD 000015a8: PUSH3 0x461bcd 000015ac: PUSH1 0xe5 000015ae: SHL 000015af: DUP2 000015b0: MSTORE 000015b1: PUSH1 0x04 000015b3: ADD 000015b4: PUSH2 0x09c7 000015b7: SWAP1 000015b8: PUSH2 0x304b 000015bb: JUMP 000015bc: JUMPDEST 000015bd: PUSH1 0x18 000015bf: DUP1 000015c0: SLOAD 000015c1: PUSH1 0xff 000015c3: PUSH1 0xa0 000015c5: SHL 000015c6: NOT 000015c7: AND 000015c8: PUSH1 0x01 000015ca: PUSH1 0xa0 000015cc: SHL 000015cd: OR 000015ce: SWAP1 000015cf: SSTORE 000015d0: JUMP 000015d1: JUMPDEST 000015d2: PUSH1 0x02 000015d4: PUSH1 0x08 000015d6: SLOAD 000015d7: EQ 000015d8: ISZERO 000015d9: PUSH2 0x15f4 000015dc: JUMPI 000015dd: PUSH1 0x40 000015df: MLOAD 000015e0: PUSH3 0x461bcd 000015e4: PUSH1 0xe5 000015e6: SHL 000015e7: DUP2 000015e8: MSTORE 000015e9: PUSH1 0x04 000015eb: ADD 000015ec: PUSH2 0x09c7 000015ef: SWAP1 000015f0: PUSH2 0x30e9 000015f3: JUMP 000015f4: JUMPDEST 000015f5: PUSH1 0x02 000015f7: PUSH1 0x08 000015f9: SSTORE 000015fa: PUSH1 0x18 000015fc: SLOAD 000015fd: PUSH1 0x01 000015ff: PUSH1 0xb0 00001601: SHL 00001602: SWAP1 00001603: DIV 00001604: PUSH1 0xff 00001606: AND 00001607: ISZERO 00001608: PUSH2 0x1645 0000160b: JUMPI 0000160c: PUSH1 0x40 0000160e: MLOAD 0000160f: PUSH3 0x461bcd 00001613: PUSH1 0xe5 00001615: SHL 00001616: DUP2 00001617: MSTORE 00001618: PUSH1 0x20 0000161a: PUSH1 0x04 0000161c: DUP3 0000161d: ADD 0000161e: MSTORE 0000161f: PUSH1 0x0f 00001621: PUSH1 0x24 00001623: DUP3 00001624: ADD 00001625: MSTORE 00001626: PUSH15 0x53616c652069732070617573656421 00001636: PUSH1 0x88 00001638: SHL 00001639: PUSH1 0x44 0000163b: DUP3 0000163c: ADD 0000163d: MSTORE 0000163e: PUSH1 0x64 00001640: ADD 00001641: PUSH2 0x09c7 00001644: JUMP 00001645: JUMPDEST 00001646: PUSH1 0x03 00001648: PUSH1 0x1b 0000164a: SLOAD 0000164b: PUSH1 0xff 0000164d: AND 0000164e: PUSH1 0x03 00001650: DUP2 00001651: GT 00001652: ISZERO 00001653: PUSH2 0x165e 00001656: JUMPI 00001657: PUSH2 0x165e 0000165a: PUSH2 0x2eca 0000165d: JUMP 0000165e: JUMPDEST 0000165f: EQ 00001660: PUSH2 0x16ab 00001663: JUMPI 00001664: PUSH1 0x40 00001666: MLOAD 00001667: PUSH3 0x461bcd 0000166b: PUSH1 0xe5 0000166d: SHL 0000166e: DUP2 0000166f: MSTORE 00001670: PUSH1 0x20 00001672: PUSH1 0x04 00001674: DUP3 00001675: ADD 00001676: MSTORE 00001677: PUSH1 0x1c 00001679: PUSH1 0x24 0000167b: DUP3 0000167c: ADD 0000167d: MSTORE 0000167e: PUSH32 0x5075626c69632053616c6520696e206e6f74206f70656e207965742100000000 0000169f: PUSH1 0x44 000016a1: DUP3 000016a2: ADD 000016a3: MSTORE 000016a4: PUSH1 0x64 000016a6: ADD 000016a7: PUSH2 0x09c7 000016aa: JUMP 000016ab: JUMPDEST 000016ac: PUSH1 0x10 000016ae: SLOAD 000016af: DUP2 000016b0: PUSH1 0x13 000016b2: SLOAD 000016b3: PUSH2 0x16bc 000016b6: SWAP2 000016b7: SWAP1 000016b8: PUSH2 0x30d1 000016bb: JUMP 000016bc: JUMPDEST 000016bd: GT 000016be: ISZERO 000016bf: PUSH2 0x1720 000016c2: JUMPI 000016c3: PUSH1 0x40 000016c5: MLOAD 000016c6: PUSH3 0x461bcd 000016ca: PUSH1 0xe5 000016cc: SHL 000016cd: DUP2 000016ce: MSTORE 000016cf: PUSH1 0x20 000016d1: PUSH1 0x04 000016d3: DUP3 000016d4: ADD 000016d5: MSTORE 000016d6: PUSH1 0x2d 000016d8: PUSH1 0x24 000016da: DUP3 000016db: ADD 000016dc: MSTORE 000016dd: PUSH32 0x4e6f7420656e6f756768204e46547320666f72205075626c696353616c65206c 000016fe: PUSH1 0x44 00001700: DUP3 00001701: ADD 00001702: MSTORE 00001703: PUSH13 0x32b33a103a379036b4b73a1717 00001711: PUSH1 0x99 00001713: SHL 00001714: PUSH1 0x64 00001716: DUP3 00001717: ADD 00001718: MSTORE 00001719: PUSH1 0x84 0000171b: ADD 0000171c: PUSH2 0x09c7 0000171f: JUMP 00001720: JUMPDEST 00001721: PUSH1 0x16 00001723: SLOAD 00001724: PUSH1 0x17 00001726: SLOAD 00001727: PUSH2 0x1730 0000172a: SWAP2 0000172b: SWAP1 0000172c: PUSH2 0x313b 0000172f: JUMP 00001730: JUMPDEST 00001731: PUSH1 0x09 00001733: SLOAD 00001734: PUSH2 0x173d 00001737: SWAP2 00001738: SWAP1 00001739: PUSH2 0x313b 0000173c: JUMP 0000173d: JUMPDEST 0000173e: DUP2 0000173f: PUSH2 0x1747 00001742: PUSH1 0x00 00001744: SLOAD 00001745: SWAP1 00001746: JUMP 00001747: JUMPDEST 00001748: PUSH2 0x1751 0000174b: SWAP2 0000174c: SWAP1 0000174d: PUSH2 0x30d1 00001750: JUMP 00001751: JUMPDEST 00001752: GT 00001753: ISZERO 00001754: PUSH2 0x179f 00001757: JUMPI 00001758: PUSH1 0x40 0000175a: MLOAD 0000175b: PUSH3 0x461bcd 0000175f: PUSH1 0xe5 00001761: SHL 00001762: DUP2 00001763: MSTORE 00001764: PUSH1 0x20 00001766: PUSH1 0x04 00001768: DUP3 00001769: ADD 0000176a: MSTORE 0000176b: PUSH1 0x1e 0000176d: PUSH1 0x24 0000176f: DUP3 00001770: ADD 00001771: MSTORE 00001772: PUSH32 0x4e6f7420656e6f756768204e465473206c65667420746f206d696e742e2e0000 00001793: PUSH1 0x44 00001795: DUP3 00001796: ADD 00001797: MSTORE 00001798: PUSH1 0x64 0000179a: ADD 0000179b: PUSH2 0x09c7 0000179e: JUMP 0000179f: JUMPDEST 000017a0: PUSH1 0x15 000017a2: SLOAD 000017a3: CALLER 000017a4: PUSH1 0x00 000017a6: SWAP1 000017a7: DUP2 000017a8: MSTORE 000017a9: PUSH1 0x1a 000017ab: PUSH1 0x20 000017ad: MSTORE 000017ae: PUSH1 0x40 000017b0: SWAP1 000017b1: KECCAK256 000017b2: SLOAD 000017b3: PUSH2 0x17bd 000017b6: SWAP1 000017b7: DUP4 000017b8: SWAP1 000017b9: PUSH2 0x30d1 000017bc: JUMP 000017bd: JUMPDEST 000017be: GT 000017bf: ISZERO 000017c0: PUSH2 0x17db 000017c3: JUMPI 000017c4: PUSH1 0x40 000017c6: MLOAD 000017c7: PUSH3 0x461bcd 000017cb: PUSH1 0xe5 000017cd: SHL 000017ce: DUP2 000017cf: MSTORE 000017d0: PUSH1 0x04 000017d2: ADD 000017d3: PUSH2 0x09c7 000017d6: SWAP1 000017d7: PUSH2 0x3152 000017da: JUMP 000017db: JUMPDEST 000017dc: DUP1 000017dd: PUSH2 0x17e4 000017e0: PUSH2 0x18f6 000017e3: JUMP 000017e4: JUMPDEST 000017e5: PUSH2 0x17ee 000017e8: SWAP2 000017e9: SWAP1 000017ea: PUSH2 0x3195 000017ed: JUMP 000017ee: JUMPDEST 000017ef: CALLVALUE 000017f0: LT 000017f1: ISZERO 000017f2: PUSH2 0x180d 000017f5: JUMPI 000017f6: PUSH1 0x40 000017f8: MLOAD 000017f9: PUSH3 0x461bcd 000017fd: PUSH1 0xe5 000017ff: SHL 00001800: DUP2 00001801: MSTORE 00001802: PUSH1 0x04 00001804: ADD 00001805: PUSH2 0x09c7 00001808: SWAP1 00001809: PUSH2 0x31b4 0000180c: JUMP 0000180d: JUMPDEST 0000180e: PUSH2 0x1817 00001811: CALLER 00001812: DUP3 00001813: PUSH2 0x215e 00001816: JUMP 00001817: JUMPDEST 00001818: CALLER 00001819: PUSH1 0x00 0000181b: SWAP1 0000181c: DUP2 0000181d: MSTORE 0000181e: PUSH1 0x1a 00001820: PUSH1 0x20 00001822: MSTORE 00001823: PUSH1 0x40 00001825: DUP2 00001826: KECCAK256 00001827: DUP1 00001828: SLOAD 00001829: DUP4 0000182a: SWAP3 0000182b: SWAP1 0000182c: PUSH2 0x1836 0000182f: SWAP1 00001830: DUP5 00001831: SWAP1 00001832: PUSH2 0x30d1 00001835: JUMP 00001836: JUMPDEST 00001837: SWAP3 00001838: POP 00001839: POP 0000183a: DUP2 0000183b: SWAP1 0000183c: SSTORE 0000183d: POP 0000183e: DUP1 0000183f: PUSH1 0x13 00001841: PUSH1 0x00 00001843: DUP3 00001844: DUP3 00001845: SLOAD 00001846: PUSH2 0x184f 00001849: SWAP2 0000184a: SWAP1 0000184b: PUSH2 0x30d1 0000184e: JUMP 0000184f: JUMPDEST 00001850: SWAP3 00001851: POP 00001852: POP 00001853: DUP2 00001854: SWAP1 00001855: SSTORE 00001856: POP 00001857: CALLVALUE 00001858: PUSH1 0x1d 0000185a: PUSH1 0x00 0000185c: DUP3 0000185d: DUP3 0000185e: SLOAD 0000185f: PUSH2 0x1868 00001862: SWAP2 00001863: SWAP1 00001864: PUSH2 0x30d1 00001867: JUMP 00001868: JUMPDEST 00001869: SWAP1 0000186a: SWAP2 0000186b: SSTORE 0000186c: POP 0000186d: POP 0000186e: PUSH1 0x01 00001870: PUSH1 0x08 00001872: SSTORE 00001873: POP 00001874: JUMP 00001875: JUMPDEST 00001876: PUSH1 0x07 00001878: SLOAD 00001879: PUSH1 0x01 0000187b: PUSH1 0x01 0000187d: PUSH1 0xa0 0000187f: SHL 00001880: SUB 00001881: AND 00001882: CALLER 00001883: EQ 00001884: PUSH2 0x189f 00001887: JUMPI 00001888: PUSH1 0x40 0000188a: MLOAD 0000188b: PUSH3 0x461bcd 0000188f: PUSH1 0xe5 00001891: SHL 00001892: DUP2 00001893: MSTORE 00001894: PUSH1 0x04 00001896: ADD 00001897: PUSH2 0x09c7 0000189a: SWAP1 0000189b: PUSH2 0x304b 0000189e: JUMP 0000189f: JUMPDEST 000018a0: PUSH1 0x18 000018a2: DUP1 000018a3: SLOAD 000018a4: SWAP2 000018a5: ISZERO 000018a6: ISZERO 000018a7: PUSH1 0x01 000018a9: PUSH1 0xa8 000018ab: SHL 000018ac: MUL 000018ad: PUSH1 0xff 000018af: PUSH1 0xa8 000018b1: SHL 000018b2: NOT 000018b3: SWAP1 000018b4: SWAP3 000018b5: AND 000018b6: SWAP2 000018b7: SWAP1 000018b8: SWAP2 000018b9: OR 000018ba: SWAP1 000018bb: SSTORE 000018bc: JUMP 000018bd: JUMPDEST 000018be: PUSH2 0x18c8 000018c1: DUP5 000018c2: DUP5 000018c3: DUP5 000018c4: PUSH2 0x2178 000018c7: JUMP 000018c8: JUMPDEST 000018c9: PUSH2 0x18d4 000018cc: DUP5 000018cd: DUP5 000018ce: DUP5 000018cf: DUP5 000018d0: PUSH2 0x27b5 000018d3: JUMP 000018d4: JUMPDEST 000018d5: PUSH2 0x18f0 000018d8: JUMPI 000018d9: PUSH1 0x40 000018db: MLOAD 000018dc: PUSH3 0x461bcd 000018e0: PUSH1 0xe5 000018e2: SHL 000018e3: DUP2 000018e4: MSTORE 000018e5: PUSH1 0x04 000018e7: ADD 000018e8: PUSH2 0x09c7 000018eb: SWAP1 000018ec: PUSH2 0x3204 000018ef: JUMP 000018f0: JUMPDEST 000018f1: POP 000018f2: POP 000018f3: POP 000018f4: POP 000018f5: JUMP 000018f6: JUMPDEST 000018f7: PUSH1 0x00 000018f9: DUP1 000018fa: PUSH1 0x1b 000018fc: SLOAD 000018fd: PUSH1 0xff 000018ff: AND 00001900: PUSH1 0x03 00001902: DUP2 00001903: GT 00001904: ISZERO 00001905: PUSH2 0x1910 00001908: JUMPI 00001909: PUSH2 0x1910 0000190c: PUSH2 0x2eca 0000190f: JUMP 00001910: JUMPDEST 00001911: EQ 00001912: DUP1 00001913: PUSH2 0x1932 00001916: JUMPI 00001917: POP 00001918: PUSH1 0x01 0000191a: PUSH1 0x1b 0000191c: SLOAD 0000191d: PUSH1 0xff 0000191f: AND 00001920: PUSH1 0x03 00001922: DUP2 00001923: GT 00001924: ISZERO 00001925: PUSH2 0x1930 00001928: JUMPI 00001929: PUSH2 0x1930 0000192c: PUSH2 0x2eca 0000192f: JUMP 00001930: JUMPDEST 00001931: EQ 00001932: JUMPDEST 00001933: ISZERO 00001934: PUSH2 0x193e 00001937: JUMPI 00001938: POP 00001939: PUSH1 0x0b 0000193b: SLOAD 0000193c: SWAP1 0000193d: JUMP 0000193e: JUMPDEST 0000193f: PUSH1 0x02 00001941: PUSH1 0x1b 00001943: SLOAD 00001944: PUSH1 0xff 00001946: AND 00001947: PUSH1 0x03 00001949: DUP2 0000194a: GT 0000194b: ISZERO 0000194c: PUSH2 0x1957 0000194f: JUMPI 00001950: PUSH2 0x1957 00001953: PUSH2 0x2eca 00001956: JUMP 00001957: JUMPDEST 00001958: EQ 00001959: ISZERO 0000195a: PUSH2 0x1964 0000195d: JUMPI 0000195e: POP 0000195f: PUSH1 0x0c 00001961: SLOAD 00001962: SWAP1 00001963: JUMP 00001964: JUMPDEST 00001965: POP 00001966: PUSH1 0x0d 00001968: SLOAD 00001969: SWAP1 0000196a: JUMP 0000196b: JUMPDEST 0000196c: PUSH1 0x07 0000196e: SLOAD 0000196f: PUSH1 0x01 00001971: PUSH1 0x01 00001973: PUSH1 0xa0 00001975: SHL 00001976: SUB 00001977: AND 00001978: CALLER 00001979: EQ 0000197a: PUSH2 0x1995 0000197d: JUMPI 0000197e: PUSH1 0x40 00001980: MLOAD 00001981: PUSH3 0x461bcd 00001985: PUSH1 0xe5 00001987: SHL 00001988: DUP2 00001989: MSTORE 0000198a: PUSH1 0x04 0000198c: ADD 0000198d: PUSH2 0x09c7 00001990: SWAP1 00001991: PUSH2 0x304b 00001994: JUMP 00001995: JUMPDEST 00001996: DUP1 00001997: MLOAD 00001998: PUSH2 0x1097 0000199b: SWAP1 0000199c: PUSH1 0x1c 0000199e: SWAP1 0000199f: PUSH1 0x20 000019a1: DUP5 000019a2: ADD 000019a3: SWAP1 000019a4: PUSH2 0x2b97 000019a7: JUMP 000019a8: JUMPDEST 000019a9: PUSH1 0x60 000019ab: PUSH2 0x19b5 000019ae: DUP3 000019af: PUSH1 0x00 000019b1: SLOAD 000019b2: GT 000019b3: SWAP1 000019b4: JUMP 000019b5: JUMPDEST 000019b6: PUSH2 0x1a19 000019b9: JUMPI 000019ba: PUSH1 0x40 000019bc: MLOAD 000019bd: PUSH3 0x461bcd 000019c1: PUSH1 0xe5 000019c3: SHL 000019c4: DUP2 000019c5: MSTORE 000019c6: PUSH1 0x20 000019c8: PUSH1 0x04 000019ca: DUP3 000019cb: ADD 000019cc: MSTORE 000019cd: PUSH1 0x2f 000019cf: PUSH1 0x24 000019d1: DUP3 000019d2: ADD 000019d3: MSTORE 000019d4: PUSH32 0x4552433732314d657461646174613a2055524920717565727920666f72206e6f 000019f5: PUSH1 0x44 000019f7: DUP3 000019f8: ADD 000019f9: MSTORE 000019fa: PUSH15 0x3732bc34b9ba32b73a103a37b5b2b7 00001a0a: PUSH1 0x89 00001a0c: SHL 00001a0d: PUSH1 0x64 00001a0f: DUP3 00001a10: ADD 00001a11: MSTORE 00001a12: PUSH1 0x84 00001a14: ADD 00001a15: PUSH2 0x09c7 00001a18: JUMP 00001a19: JUMPDEST 00001a1a: PUSH1 0x18 00001a1c: SLOAD 00001a1d: PUSH1 0x01 00001a1f: PUSH1 0xa0 00001a21: SHL 00001a22: SWAP1 00001a23: DIV 00001a24: PUSH1 0xff 00001a26: AND 00001a27: PUSH2 0x1abc 00001a2a: JUMPI 00001a2b: PUSH1 0x1c 00001a2d: DUP1 00001a2e: SLOAD 00001a2f: PUSH2 0x1a37 00001a32: SWAP1 00001a33: PUSH2 0x3080 00001a36: JUMP 00001a37: JUMPDEST 00001a38: DUP1 00001a39: PUSH1 0x1f 00001a3b: ADD 00001a3c: PUSH1 0x20 00001a3e: DUP1 00001a3f: SWAP2 00001a40: DIV 00001a41: MUL 00001a42: PUSH1 0x20 00001a44: ADD 00001a45: PUSH1 0x40 00001a47: MLOAD 00001a48: SWAP1 00001a49: DUP2 00001a4a: ADD 00001a4b: PUSH1 0x40 00001a4d: MSTORE 00001a4e: DUP1 00001a4f: SWAP3 00001a50: SWAP2 00001a51: SWAP1 00001a52: DUP2 00001a53: DUP2 00001a54: MSTORE 00001a55: PUSH1 0x20 00001a57: ADD 00001a58: DUP3 00001a59: DUP1 00001a5a: SLOAD 00001a5b: PUSH2 0x1a63 00001a5e: SWAP1 00001a5f: PUSH2 0x3080 00001a62: JUMP 00001a63: JUMPDEST 00001a64: DUP1 00001a65: ISZERO 00001a66: PUSH2 0x1ab0 00001a69: JUMPI 00001a6a: DUP1 00001a6b: PUSH1 0x1f 00001a6d: LT 00001a6e: PUSH2 0x1a85 00001a71: JUMPI 00001a72: PUSH2 0x0100 00001a75: DUP1 00001a76: DUP4 00001a77: SLOAD 00001a78: DIV 00001a79: MUL 00001a7a: DUP4 00001a7b: MSTORE 00001a7c: SWAP2 00001a7d: PUSH1 0x20 00001a7f: ADD 00001a80: SWAP2 00001a81: PUSH2 0x1ab0 00001a84: JUMP 00001a85: JUMPDEST 00001a86: DUP3 00001a87: ADD 00001a88: SWAP2 00001a89: SWAP1 00001a8a: PUSH1 0x00 00001a8c: MSTORE 00001a8d: PUSH1 0x20 00001a8f: PUSH1 0x00 00001a91: KECCAK256 00001a92: SWAP1 00001a93: JUMPDEST 00001a94: DUP2 00001a95: SLOAD 00001a96: DUP2 00001a97: MSTORE 00001a98: SWAP1 00001a99: PUSH1 0x01 00001a9b: ADD 00001a9c: SWAP1 00001a9d: PUSH1 0x20 00001a9f: ADD 00001aa0: DUP1 00001aa1: DUP4 00001aa2: GT 00001aa3: PUSH2 0x1a93 00001aa6: JUMPI 00001aa7: DUP3 00001aa8: SWAP1 00001aa9: SUB 00001aaa: PUSH1 0x1f 00001aac: AND 00001aad: DUP3 00001aae: ADD 00001aaf: SWAP2 00001ab0: JUMPDEST 00001ab1: POP 00001ab2: POP 00001ab3: POP 00001ab4: POP 00001ab5: POP 00001ab6: SWAP1 00001ab7: POP 00001ab8: SWAP2 00001ab9: SWAP1 00001aba: POP 00001abb: JUMP 00001abc: JUMPDEST 00001abd: PUSH1 0x00 00001abf: PUSH2 0x1ac6 00001ac2: PUSH2 0x28bf 00001ac5: JUMP 00001ac6: JUMPDEST 00001ac7: SWAP1 00001ac8: POP 00001ac9: PUSH1 0x00 00001acb: DUP2 00001acc: MLOAD 00001acd: GT 00001ace: PUSH2 0x1ae6 00001ad1: JUMPI 00001ad2: PUSH1 0x40 00001ad4: MLOAD 00001ad5: DUP1 00001ad6: PUSH1 0x20 00001ad8: ADD 00001ad9: PUSH1 0x40 00001adb: MSTORE 00001adc: DUP1 00001add: PUSH1 0x00 00001adf: DUP2 00001ae0: MSTORE 00001ae1: POP 00001ae2: PUSH2 0x1b11 00001ae5: JUMP 00001ae6: JUMPDEST 00001ae7: DUP1 00001ae8: PUSH2 0x1af0 00001aeb: DUP5 00001aec: PUSH2 0x28ce 00001aef: JUMP 00001af0: JUMPDEST 00001af1: PUSH1 0x40 00001af3: MLOAD 00001af4: PUSH1 0x20 00001af6: ADD 00001af7: PUSH2 0x1b01 00001afa: SWAP3 00001afb: SWAP2 00001afc: SWAP1 00001afd: PUSH2 0x3257 00001b00: JUMP 00001b01: JUMPDEST 00001b02: PUSH1 0x40 00001b04: MLOAD 00001b05: PUSH1 0x20 00001b07: DUP2 00001b08: DUP4 00001b09: SUB 00001b0a: SUB 00001b0b: DUP2 00001b0c: MSTORE 00001b0d: SWAP1 00001b0e: PUSH1 0x40 00001b10: MSTORE 00001b11: JUMPDEST 00001b12: SWAP4 00001b13: SWAP3 00001b14: POP 00001b15: POP 00001b16: POP 00001b17: JUMP 00001b18: JUMPDEST 00001b19: SWAP2 00001b1a: SWAP1 00001b1b: POP 00001b1c: JUMP 00001b1d: JUMPDEST 00001b1e: PUSH1 0x07 00001b20: SLOAD 00001b21: PUSH1 0x01 00001b23: PUSH1 0x01 00001b25: PUSH1 0xa0 00001b27: SHL 00001b28: SUB 00001b29: AND 00001b2a: CALLER 00001b2b: EQ 00001b2c: PUSH2 0x1b47 00001b2f: JUMPI 00001b30: PUSH1 0x40 00001b32: MLOAD 00001b33: PUSH3 0x461bcd 00001b37: PUSH1 0xe5 00001b39: SHL 00001b3a: DUP2 00001b3b: MSTORE 00001b3c: PUSH1 0x04 00001b3e: ADD 00001b3f: PUSH2 0x09c7 00001b42: SWAP1 00001b43: PUSH2 0x304b 00001b46: JUMP 00001b47: JUMPDEST 00001b48: PUSH1 0x1b 00001b4a: DUP1 00001b4b: SLOAD 00001b4c: PUSH1 0xff 00001b4e: NOT 00001b4f: AND 00001b50: PUSH1 0x02 00001b52: OR 00001b53: SWAP1 00001b54: SSTORE 00001b55: PUSH1 0x0c 00001b57: SWAP2 00001b58: SWAP1 00001b59: SWAP2 00001b5a: SSTORE 00001b5b: PUSH1 0x0f 00001b5d: SSTORE 00001b5e: JUMP 00001b5f: JUMPDEST 00001b60: DUP3 00001b61: DUP3 00001b62: DUP3 00001b63: PUSH2 0x1b6e 00001b66: CALLER 00001b67: DUP5 00001b68: DUP5 00001b69: DUP5 00001b6a: PUSH2 0x0f4e 00001b6d: JUMP 00001b6e: JUMPDEST 00001b6f: PUSH2 0x1bae 00001b72: JUMPI 00001b73: PUSH1 0x40 00001b75: MLOAD 00001b76: PUSH3 0x461bcd 00001b7a: PUSH1 0xe5 00001b7c: SHL 00001b7d: DUP2 00001b7e: MSTORE 00001b7f: PUSH1 0x20 00001b81: PUSH1 0x04 00001b83: DUP3 00001b84: ADD 00001b85: MSTORE 00001b86: PUSH1 0x11 00001b88: PUSH1 0x24 00001b8a: DUP3 00001b8b: ADD 00001b8c: MSTORE 00001b8d: PUSH17 0x496e76616c6964205369676e6174757265 00001b9f: PUSH1 0x78 00001ba1: SHL 00001ba2: PUSH1 0x44 00001ba4: DUP3 00001ba5: ADD 00001ba6: MSTORE 00001ba7: PUSH1 0x64 00001ba9: ADD 00001baa: PUSH2 0x09c7 00001bad: JUMP 00001bae: JUMPDEST 00001baf: PUSH1 0x02 00001bb1: PUSH1 0x08 00001bb3: SLOAD 00001bb4: EQ 00001bb5: ISZERO 00001bb6: PUSH2 0x1bd1 00001bb9: JUMPI 00001bba: PUSH1 0x40 00001bbc: MLOAD 00001bbd: PUSH3 0x461bcd 00001bc1: PUSH1 0xe5 00001bc3: SHL 00001bc4: DUP2 00001bc5: MSTORE 00001bc6: PUSH1 0x04 00001bc8: ADD 00001bc9: PUSH2 0x09c7 00001bcc: SWAP1 00001bcd: PUSH2 0x30e9 00001bd0: JUMP 00001bd1: JUMPDEST 00001bd2: PUSH1 0x02 00001bd4: PUSH1 0x08 00001bd6: SSTORE 00001bd7: PUSH1 0x18 00001bd9: SLOAD 00001bda: PUSH1 0x01 00001bdc: PUSH1 0xb0 00001bde: SHL 00001bdf: SWAP1 00001be0: DIV 00001be1: PUSH1 0xff 00001be3: AND 00001be4: ISZERO 00001be5: PUSH2 0x1c22 00001be8: JUMPI 00001be9: PUSH1 0x40 00001beb: MLOAD 00001bec: PUSH3 0x461bcd 00001bf0: PUSH1 0xe5 00001bf2: SHL 00001bf3: DUP2 00001bf4: MSTORE 00001bf5: PUSH1 0x20 00001bf7: PUSH1 0x04 00001bf9: DUP3 00001bfa: ADD 00001bfb: MSTORE 00001bfc: PUSH1 0x0f 00001bfe: PUSH1 0x24 00001c00: DUP3 00001c01: ADD 00001c02: MSTORE 00001c03: PUSH15 0x53616c652069732070617573656421 00001c13: PUSH1 0x88 00001c15: SHL 00001c16: PUSH1 0x44 00001c18: DUP3 00001c19: ADD 00001c1a: MSTORE 00001c1b: PUSH1 0x64 00001c1d: ADD 00001c1e: PUSH2 0x09c7 00001c21: JUMP 00001c22: JUMPDEST 00001c23: PUSH1 0x01 00001c25: PUSH1 0x1b 00001c27: SLOAD 00001c28: PUSH1 0xff 00001c2a: AND 00001c2b: PUSH1 0x03 00001c2d: DUP2 00001c2e: GT 00001c2f: ISZERO 00001c30: PUSH2 0x1c3b 00001c33: JUMPI 00001c34: PUSH2 0x1c3b 00001c37: PUSH2 0x2eca 00001c3a: JUMP 00001c3b: JUMPDEST 00001c3c: EQ 00001c3d: DUP1 00001c3e: PUSH2 0x1c5d 00001c41: JUMPI 00001c42: POP 00001c43: PUSH1 0x02 00001c45: PUSH1 0x1b 00001c47: SLOAD 00001c48: PUSH1 0xff 00001c4a: AND 00001c4b: PUSH1 0x03 00001c4d: DUP2 00001c4e: GT 00001c4f: ISZERO 00001c50: PUSH2 0x1c5b 00001c53: JUMPI 00001c54: PUSH2 0x1c5b 00001c57: PUSH2 0x2eca 00001c5a: JUMP 00001c5b: JUMPDEST 00001c5c: EQ 00001c5d: JUMPDEST 00001c5e: PUSH2 0x1ca9 00001c61: JUMPI 00001c62: PUSH1 0x40 00001c64: MLOAD 00001c65: PUSH3 0x461bcd 00001c69: PUSH1 0xe5 00001c6b: SHL 00001c6c: DUP2 00001c6d: MSTORE 00001c6e: PUSH1 0x20 00001c70: PUSH1 0x04 00001c72: DUP3 00001c73: ADD 00001c74: MSTORE 00001c75: PUSH1 0x18 00001c77: PUSH1 0x24 00001c79: DUP3 00001c7a: ADD 00001c7b: MSTORE 00001c7c: PUSH32 0x50726553616c6520696e206e6f74206f70656e20796574210000000000000000 00001c9d: PUSH1 0x44 00001c9f: DUP3 00001ca0: ADD 00001ca1: MSTORE 00001ca2: PUSH1 0x64 00001ca4: ADD 00001ca5: PUSH2 0x09c7 00001ca8: JUMP 00001ca9: JUMPDEST 00001caa: PUSH1 0x01 00001cac: PUSH1 0x1b 00001cae: SLOAD 00001caf: PUSH1 0xff 00001cb1: AND 00001cb2: PUSH1 0x03 00001cb4: DUP2 00001cb5: GT 00001cb6: ISZERO 00001cb7: PUSH2 0x1cc2 00001cba: JUMPI 00001cbb: PUSH2 0x1cc2 00001cbe: PUSH2 0x2eca 00001cc1: JUMP 00001cc2: JUMPDEST 00001cc3: EQ 00001cc4: ISZERO 00001cc5: PUSH2 0x1d40 00001cc8: JUMPI 00001cc9: PUSH1 0x0e 00001ccb: SLOAD 00001ccc: DUP8 00001ccd: PUSH1 0x11 00001ccf: SLOAD 00001cd0: PUSH2 0x1cd9 00001cd3: SWAP2 00001cd4: SWAP1 00001cd5: PUSH2 0x30d1 00001cd8: JUMP 00001cd9: JUMPDEST 00001cda: GT 00001cdb: ISZERO 00001cdc: PUSH2 0x1d3b 00001cdf: JUMPI 00001ce0: PUSH1 0x40 00001ce2: MLOAD 00001ce3: PUSH3 0x461bcd 00001ce7: PUSH1 0xe5 00001ce9: SHL 00001cea: DUP2 00001ceb: MSTORE 00001cec: PUSH1 0x20 00001cee: PUSH1 0x04 00001cf0: DUP3 00001cf1: ADD 00001cf2: MSTORE 00001cf3: PUSH1 0x2b 00001cf5: PUSH1 0x24 00001cf7: DUP3 00001cf8: ADD 00001cf9: MSTORE 00001cfa: PUSH32 0x4e6f7420656e6f756768204e46547320666f722050726553616c6531206c6566 00001d1b: PUSH1 0x44 00001d1d: DUP3 00001d1e: ADD 00001d1f: MSTORE 00001d20: PUSH11 0x3a103a379036b4b73a1717 00001d2c: PUSH1 0xa9 00001d2e: SHL 00001d2f: PUSH1 0x64 00001d31: DUP3 00001d32: ADD 00001d33: MSTORE 00001d34: PUSH1 0x84 00001d36: ADD 00001d37: PUSH2 0x09c7 00001d3a: JUMP 00001d3b: JUMPDEST 00001d3c: PUSH2 0x1db3 00001d3f: JUMP 00001d40: JUMPDEST 00001d41: PUSH1 0x0f 00001d43: SLOAD 00001d44: DUP8 00001d45: PUSH1 0x12 00001d47: SLOAD 00001d48: PUSH2 0x1d51 00001d4b: SWAP2 00001d4c: SWAP1 00001d4d: PUSH2 0x30d1 00001d50: JUMP 00001d51: JUMPDEST 00001d52: GT 00001d53: ISZERO 00001d54: PUSH2 0x1db3 00001d57: JUMPI 00001d58: PUSH1 0x40 00001d5a: MLOAD 00001d5b: PUSH3 0x461bcd 00001d5f: PUSH1 0xe5 00001d61: SHL 00001d62: DUP2 00001d63: MSTORE 00001d64: PUSH1 0x20 00001d66: PUSH1 0x04 00001d68: DUP3 00001d69: ADD 00001d6a: MSTORE 00001d6b: PUSH1 0x2b 00001d6d: PUSH1 0x24 00001d6f: DUP3 00001d70: ADD 00001d71: MSTORE 00001d72: PUSH32 0x4e6f7420656e6f756768204e46547320666f722050726553616c6532206c6566 00001d93: PUSH1 0x44 00001d95: DUP3 00001d96: ADD 00001d97: MSTORE 00001d98: PUSH11 0x3a103a379036b4b73a1717 00001da4: PUSH1 0xa9 00001da6: SHL 00001da7: PUSH1 0x64 00001da9: DUP3 00001daa: ADD 00001dab: MSTORE 00001dac: PUSH1 0x84 00001dae: ADD 00001daf: PUSH2 0x09c7 00001db2: JUMP 00001db3: JUMPDEST 00001db4: PUSH1 0x16 00001db6: SLOAD 00001db7: PUSH1 0x17 00001db9: SLOAD 00001dba: PUSH2 0x1dc3 00001dbd: SWAP2 00001dbe: SWAP1 00001dbf: PUSH2 0x313b 00001dc2: JUMP 00001dc3: JUMPDEST 00001dc4: PUSH1 0x09 00001dc6: SLOAD 00001dc7: PUSH2 0x1dd0 00001dca: SWAP2 00001dcb: SWAP1 00001dcc: PUSH2 0x313b 00001dcf: JUMP 00001dd0: JUMPDEST 00001dd1: DUP8 00001dd2: PUSH2 0x1dda 00001dd5: PUSH1 0x00 00001dd7: SLOAD 00001dd8: SWAP1 00001dd9: JUMP 00001dda: JUMPDEST 00001ddb: PUSH2 0x1de4 00001dde: SWAP2 00001ddf: SWAP1 00001de0: PUSH2 0x30d1 00001de3: JUMP 00001de4: JUMPDEST 00001de5: GT 00001de6: ISZERO 00001de7: PUSH2 0x1e32 00001dea: JUMPI 00001deb: PUSH1 0x40 00001ded: MLOAD 00001dee: PUSH3 0x461bcd 00001df2: PUSH1 0xe5 00001df4: SHL 00001df5: DUP2 00001df6: MSTORE 00001df7: PUSH1 0x20 00001df9: PUSH1 0x04 00001dfb: DUP3 00001dfc: ADD 00001dfd: MSTORE 00001dfe: PUSH1 0x1e 00001e00: PUSH1 0x24 00001e02: DUP3 00001e03: ADD 00001e04: MSTORE 00001e05: PUSH32 0x4e6f7420656e6f756768204e465473206c65667420746f206d696e742e2e0000 00001e26: PUSH1 0x44 00001e28: DUP3 00001e29: ADD 00001e2a: MSTORE 00001e2b: PUSH1 0x64 00001e2d: ADD 00001e2e: PUSH2 0x09c7 00001e31: JUMP 00001e32: JUMPDEST 00001e33: PUSH1 0x14 00001e35: SLOAD 00001e36: CALLER 00001e37: PUSH1 0x00 00001e39: SWAP1 00001e3a: DUP2 00001e3b: MSTORE 00001e3c: PUSH1 0x19 00001e3e: PUSH1 0x20 00001e40: MSTORE 00001e41: PUSH1 0x40 00001e43: SWAP1 00001e44: KECCAK256 00001e45: SLOAD 00001e46: PUSH2 0x1e50 00001e49: SWAP1 00001e4a: DUP10 00001e4b: SWAP1 00001e4c: PUSH2 0x30d1 00001e4f: JUMP 00001e50: JUMPDEST 00001e51: GT 00001e52: ISZERO 00001e53: PUSH2 0x1e6e 00001e56: JUMPI 00001e57: PUSH1 0x40 00001e59: MLOAD 00001e5a: PUSH3 0x461bcd 00001e5e: PUSH1 0xe5 00001e60: SHL 00001e61: DUP2 00001e62: MSTORE 00001e63: PUSH1 0x04 00001e65: ADD 00001e66: PUSH2 0x09c7 00001e69: SWAP1 00001e6a: PUSH2 0x3152 00001e6d: JUMP 00001e6e: JUMPDEST 00001e6f: DUP7 00001e70: PUSH2 0x1e77 00001e73: PUSH2 0x18f6 00001e76: JUMP 00001e77: JUMPDEST 00001e78: PUSH2 0x1e81 00001e7b: SWAP2 00001e7c: SWAP1 00001e7d: PUSH2 0x3195 00001e80: JUMP 00001e81: JUMPDEST 00001e82: CALLVALUE 00001e83: LT 00001e84: ISZERO 00001e85: PUSH2 0x1ea0 00001e88: JUMPI 00001e89: PUSH1 0x40 00001e8b: MLOAD 00001e8c: PUSH3 0x461bcd 00001e90: PUSH1 0xe5 00001e92: SHL 00001e93: DUP2 00001e94: MSTORE 00001e95: PUSH1 0x04 00001e97: ADD 00001e98: PUSH2 0x09c7 00001e9b: SWAP1 00001e9c: PUSH2 0x31b4 00001e9f: JUMP 00001ea0: JUMPDEST 00001ea1: PUSH2 0x1eaa 00001ea4: CALLER 00001ea5: DUP9 00001ea6: PUSH2 0x215e 00001ea9: JUMP 00001eaa: JUMPDEST 00001eab: CALLER 00001eac: PUSH1 0x00 00001eae: SWAP1 00001eaf: DUP2 00001eb0: MSTORE 00001eb1: PUSH1 0x19 00001eb3: PUSH1 0x20 00001eb5: MSTORE 00001eb6: PUSH1 0x40 00001eb8: DUP2 00001eb9: KECCAK256 00001eba: DUP1 00001ebb: SLOAD 00001ebc: DUP10 00001ebd: SWAP3 00001ebe: SWAP1 00001ebf: PUSH2 0x1ec9 00001ec2: SWAP1 00001ec3: DUP5 00001ec4: SWAP1 00001ec5: PUSH2 0x30d1 00001ec8: JUMP 00001ec9: JUMPDEST 00001eca: SWAP1 00001ecb: SWAP2 00001ecc: SSTORE 00001ecd: POP 00001ece: PUSH1 0x01 00001ed0: SWAP1 00001ed1: POP 00001ed2: PUSH1 0x1b 00001ed4: SLOAD 00001ed5: PUSH1 0xff 00001ed7: AND 00001ed8: PUSH1 0x03 00001eda: DUP2 00001edb: GT 00001edc: ISZERO 00001edd: PUSH2 0x1ee8 00001ee0: JUMPI 00001ee1: PUSH2 0x1ee8 00001ee4: PUSH2 0x2eca 00001ee7: JUMP 00001ee8: JUMPDEST 00001ee9: EQ 00001eea: ISZERO 00001eeb: PUSH2 0x1f0b 00001eee: JUMPI 00001eef: DUP7 00001ef0: PUSH1 0x11 00001ef2: PUSH1 0x00 00001ef4: DUP3 00001ef5: DUP3 00001ef6: SLOAD 00001ef7: PUSH2 0x1f00 00001efa: SWAP2 00001efb: SWAP1 00001efc: PUSH2 0x30d1 00001eff: JUMP 00001f00: JUMPDEST 00001f01: SWAP1 00001f02: SWAP2 00001f03: SSTORE 00001f04: POP 00001f05: PUSH2 0x1f23 00001f08: SWAP1 00001f09: POP 00001f0a: JUMP 00001f0b: JUMPDEST 00001f0c: DUP7 00001f0d: PUSH1 0x12 00001f0f: PUSH1 0x00 00001f11: DUP3 00001f12: DUP3 00001f13: SLOAD 00001f14: PUSH2 0x1f1d 00001f17: SWAP2 00001f18: SWAP1 00001f19: PUSH2 0x30d1 00001f1c: JUMP 00001f1d: JUMPDEST 00001f1e: SWAP1 00001f1f: SWAP2 00001f20: SSTORE 00001f21: POP 00001f22: POP 00001f23: JUMPDEST 00001f24: CALLVALUE 00001f25: PUSH1 0x1d 00001f27: PUSH1 0x00 00001f29: DUP3 00001f2a: DUP3 00001f2b: SLOAD 00001f2c: PUSH2 0x1f35 00001f2f: SWAP2 00001f30: SWAP1 00001f31: PUSH2 0x30d1 00001f34: JUMP 00001f35: JUMPDEST 00001f36: SWAP1 00001f37: SWAP2 00001f38: SSTORE 00001f39: POP 00001f3a: POP 00001f3b: PUSH1 0x01 00001f3d: PUSH1 0x08 00001f3f: SSTORE 00001f40: POP 00001f41: POP 00001f42: POP 00001f43: POP 00001f44: POP 00001f45: POP 00001f46: POP 00001f47: JUMP 00001f48: JUMPDEST 00001f49: PUSH1 0x07 00001f4b: SLOAD 00001f4c: PUSH1 0x01 00001f4e: PUSH1 0x01 00001f50: PUSH1 0xa0 00001f52: SHL 00001f53: SUB 00001f54: AND 00001f55: CALLER 00001f56: EQ 00001f57: PUSH2 0x1f72 00001f5a: JUMPI 00001f5b: PUSH1 0x40 00001f5d: MLOAD 00001f5e: PUSH3 0x461bcd 00001f62: PUSH1 0xe5 00001f64: SHL 00001f65: DUP2 00001f66: MSTORE 00001f67: PUSH1 0x04 00001f69: ADD 00001f6a: PUSH2 0x09c7 00001f6d: SWAP1 00001f6e: PUSH2 0x304b 00001f71: JUMP 00001f72: JUMPDEST 00001f73: PUSH1 0x00 00001f75: PUSH1 0x1d 00001f77: SLOAD 00001f78: GT 00001f79: PUSH2 0x1fcf 00001f7c: JUMPI 00001f7d: PUSH1 0x40 00001f7f: MLOAD 00001f80: PUSH3 0x461bcd 00001f84: PUSH1 0xe5 00001f86: SHL 00001f87: DUP2 00001f88: MSTORE 00001f89: PUSH1 0x20 00001f8b: PUSH1 0x04 00001f8d: DUP3 00001f8e: ADD 00001f8f: MSTORE 00001f90: PUSH1 0x22 00001f92: PUSH1 0x24 00001f94: DUP3 00001f95: ADD 00001f96: MSTORE 00001f97: PUSH32 0x4e6f2046756e647320746f2077697468647261772c2042616c616e6365206973 00001fb8: PUSH1 0x44 00001fba: DUP3 00001fbb: ADD 00001fbc: MSTORE 00001fbd: PUSH2 0x0203 00001fc0: PUSH1 0xf4 00001fc2: SHL 00001fc3: PUSH1 0x64 00001fc5: DUP3 00001fc6: ADD 00001fc7: MSTORE 00001fc8: PUSH1 0x84 00001fca: ADD 00001fcb: PUSH2 0x09c7 00001fce: JUMP 00001fcf: JUMPDEST 00001fd0: PUSH2 0x1fef 00001fd3: PUSH20 0xd7ddfe7233d872d3600549b570b3631604aa5fff 00001fe8: PUSH1 0x1d 00001fea: SLOAD 00001feb: PUSH2 0x25f2 00001fee: JUMP 00001fef: JUMPDEST 00001ff0: PUSH1 0x00 00001ff2: PUSH1 0x1d 00001ff4: SSTORE 00001ff5: JUMP 00001ff6: JUMPDEST 00001ff7: PUSH1 0x07 00001ff9: SLOAD 00001ffa: PUSH1 0x01 00001ffc: PUSH1 0x01 00001ffe: PUSH1 0xa0 00002000: SHL 00002001: SUB 00002002: AND 00002003: CALLER 00002004: EQ 00002005: PUSH2 0x2020 00002008: JUMPI 00002009: PUSH1 0x40 0000200b: MLOAD 0000200c: PUSH3 0x461bcd 00002010: PUSH1 0xe5 00002012: SHL 00002013: DUP2 00002014: MSTORE 00002015: PUSH1 0x04 00002017: ADD 00002018: PUSH2 0x09c7 0000201b: SWAP1 0000201c: PUSH2 0x304b 0000201f: JUMP 00002020: JUMPDEST 00002021: PUSH1 0x15 00002023: SSTORE 00002024: JUMP 00002025: JUMPDEST 00002026: PUSH1 0x07 00002028: SLOAD 00002029: PUSH1 0x01 0000202b: PUSH1 0x01 0000202d: PUSH1 0xa0 0000202f: SHL 00002030: SUB 00002031: AND 00002032: CALLER 00002033: EQ 00002034: PUSH2 0x204f 00002037: JUMPI 00002038: PUSH1 0x40 0000203a: MLOAD 0000203b: PUSH3 0x461bcd 0000203f: PUSH1 0xe5 00002041: SHL 00002042: DUP2 00002043: MSTORE 00002044: PUSH1 0x04 00002046: ADD 00002047: PUSH2 0x09c7 0000204a: SWAP1 0000204b: PUSH2 0x304b 0000204e: JUMP 0000204f: JUMPDEST 00002050: PUSH1 0x01 00002052: PUSH1 0x01 00002054: PUSH1 0xa0 00002056: SHL 00002057: SUB 00002058: DUP2 00002059: AND 0000205a: PUSH2 0x20b4 0000205d: JUMPI 0000205e: PUSH1 0x40 00002060: MLOAD 00002061: PUSH3 0x461bcd 00002065: PUSH1 0xe5 00002067: SHL 00002068: DUP2 00002069: MSTORE 0000206a: PUSH1 0x20 0000206c: PUSH1 0x04 0000206e: DUP3 0000206f: ADD 00002070: MSTORE 00002071: PUSH1 0x26 00002073: PUSH1 0x24 00002075: DUP3 00002076: ADD 00002077: MSTORE 00002078: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00002099: PUSH1 0x44 0000209b: DUP3 0000209c: ADD 0000209d: MSTORE 0000209e: PUSH6 0x646472657373 000020a5: PUSH1 0xd0 000020a7: SHL 000020a8: PUSH1 0x64 000020aa: DUP3 000020ab: ADD 000020ac: MSTORE 000020ad: PUSH1 0x84 000020af: ADD 000020b0: PUSH2 0x09c7 000020b3: JUMP 000020b4: JUMPDEST 000020b5: PUSH2 0x20bd 000020b8: DUP2 000020b9: PUSH2 0x2763 000020bc: JUMP 000020bd: JUMPDEST 000020be: POP 000020bf: JUMP 000020c0: JUMPDEST 000020c1: PUSH1 0x07 000020c3: SLOAD 000020c4: PUSH1 0x01 000020c6: PUSH1 0x01 000020c8: PUSH1 0xa0 000020ca: SHL 000020cb: SUB 000020cc: AND 000020cd: CALLER 000020ce: EQ 000020cf: PUSH2 0x20ea 000020d2: JUMPI 000020d3: PUSH1 0x40 000020d5: MLOAD 000020d6: PUSH3 0x461bcd 000020da: PUSH1 0xe5 000020dc: SHL 000020dd: DUP2 000020de: MSTORE 000020df: PUSH1 0x04 000020e1: ADD 000020e2: PUSH2 0x09c7 000020e5: SWAP1 000020e6: PUSH2 0x304b 000020e9: JUMP 000020ea: JUMPDEST 000020eb: PUSH1 0x1b 000020ed: DUP1 000020ee: SLOAD 000020ef: PUSH1 0xff 000020f1: NOT 000020f2: AND 000020f3: PUSH1 0x01 000020f5: OR 000020f6: SWAP1 000020f7: SSTORE 000020f8: PUSH1 0x0b 000020fa: SWAP2 000020fb: SWAP1 000020fc: SWAP2 000020fd: SSTORE 000020fe: PUSH1 0x0e 00002100: SSTORE 00002101: JUMP 00002102: JUMPDEST 00002103: PUSH1 0x00 00002105: DUP3 00002106: DUP2 00002107: MSTORE 00002108: PUSH1 0x05 0000210a: PUSH1 0x20 0000210c: MSTORE 0000210d: PUSH1 0x40 0000210f: DUP1 00002110: DUP3 00002111: KECCAK256 00002112: DUP1 00002113: SLOAD 00002114: PUSH1 0x01 00002116: PUSH1 0x01 00002118: PUSH1 0xa0 0000211a: SHL 0000211b: SUB 0000211c: NOT 0000211d: AND 0000211e: PUSH1 0x01 00002120: PUSH1 0x01 00002122: PUSH1 0xa0 00002124: SHL 00002125: SUB 00002126: DUP8 00002127: DUP2 00002128: AND 00002129: SWAP2 0000212a: DUP3 0000212b: OR 0000212c: SWAP1 0000212d: SWAP3 0000212e: SSTORE 0000212f: SWAP2 00002130: MLOAD 00002131: DUP6 00002132: SWAP4 00002133: SWAP2 00002134: DUP6 00002135: AND 00002136: SWAP2 00002137: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00002158: SWAP2 00002159: LOG4 0000215a: POP 0000215b: POP 0000215c: POP 0000215d: JUMP 0000215e: JUMPDEST 0000215f: PUSH2 0x1097 00002162: DUP3 00002163: DUP3 00002164: PUSH1 0x40 00002166: MLOAD 00002167: DUP1 00002168: PUSH1 0x20 0000216a: ADD 0000216b: PUSH1 0x40 0000216d: MSTORE 0000216e: DUP1 0000216f: PUSH1 0x00 00002171: DUP2 00002172: MSTORE 00002173: POP 00002174: PUSH2 0x29cc 00002177: JUMP 00002178: JUMPDEST 00002179: PUSH1 0x00 0000217b: PUSH2 0x2183 0000217e: DUP3 0000217f: PUSH2 0x268c 00002182: JUMP 00002183: JUMPDEST 00002184: DUP1 00002185: MLOAD 00002186: SWAP1 00002187: SWAP2 00002188: POP 00002189: PUSH1 0x00 0000218b: SWAP1 0000218c: PUSH1 0x01 0000218e: PUSH1 0x01 00002190: PUSH1 0xa0 00002192: SHL 00002193: SUB 00002194: AND 00002195: CALLER 00002196: PUSH1 0x01 00002198: PUSH1 0x01 0000219a: PUSH1 0xa0 0000219c: SHL 0000219d: SUB 0000219e: AND 0000219f: EQ 000021a0: DUP1 000021a1: PUSH2 0x21ba 000021a4: JUMPI 000021a5: POP 000021a6: CALLER 000021a7: PUSH2 0x21af 000021aa: DUP5 000021ab: PUSH2 0x0af1 000021ae: JUMP 000021af: JUMPDEST 000021b0: PUSH1 0x01 000021b2: PUSH1 0x01 000021b4: PUSH1 0xa0 000021b6: SHL 000021b7: SUB 000021b8: AND 000021b9: EQ 000021ba: JUMPDEST 000021bb: DUP1 000021bc: PUSH2 0x21cc 000021bf: JUMPI 000021c0: POP 000021c1: DUP2 000021c2: MLOAD 000021c3: PUSH2 0x21cc 000021c6: SWAP1 000021c7: CALLER 000021c8: PUSH2 0x092f 000021cb: JUMP 000021cc: JUMPDEST 000021cd: SWAP1 000021ce: POP 000021cf: DUP1 000021d0: PUSH2 0x2236 000021d3: JUMPI 000021d4: PUSH1 0x40 000021d6: MLOAD 000021d7: PUSH3 0x461bcd 000021db: PUSH1 0xe5 000021dd: SHL 000021de: DUP2 000021df: MSTORE 000021e0: PUSH1 0x20 000021e2: PUSH1 0x04 000021e4: DUP3 000021e5: ADD 000021e6: MSTORE 000021e7: PUSH1 0x32 000021e9: PUSH1 0x24 000021eb: DUP3 000021ec: ADD 000021ed: MSTORE 000021ee: PUSH32 0x455243373231413a207472616e736665722063616c6c6572206973206e6f7420 0000220f: PUSH1 0x44 00002211: DUP3 00002212: ADD 00002213: MSTORE 00002214: PUSH18 0x1bdddb995c881b9bdc88185c1c1c9bdd9959 00002227: PUSH1 0x72 00002229: SHL 0000222a: PUSH1 0x64 0000222c: DUP3 0000222d: ADD 0000222e: MSTORE 0000222f: PUSH1 0x84 00002231: ADD 00002232: PUSH2 0x09c7 00002235: JUMP 00002236: JUMPDEST 00002237: DUP5 00002238: PUSH1 0x01 0000223a: PUSH1 0x01 0000223c: PUSH1 0xa0 0000223e: SHL 0000223f: SUB 00002240: AND 00002241: DUP3 00002242: PUSH1 0x00 00002244: ADD 00002245: MLOAD 00002246: PUSH1 0x01 00002248: PUSH1 0x01 0000224a: PUSH1 0xa0 0000224c: SHL 0000224d: SUB 0000224e: AND 0000224f: EQ 00002250: PUSH2 0x22aa 00002253: JUMPI 00002254: PUSH1 0x40 00002256: MLOAD 00002257: PUSH3 0x461bcd 0000225b: PUSH1 0xe5 0000225d: SHL 0000225e: DUP2 0000225f: MSTORE 00002260: PUSH1 0x20 00002262: PUSH1 0x04 00002264: DUP3 00002265: ADD 00002266: MSTORE 00002267: PUSH1 0x26 00002269: PUSH1 0x24 0000226b: DUP3 0000226c: ADD 0000226d: MSTORE 0000226e: PUSH32 0x455243373231413a207472616e736665722066726f6d20696e636f7272656374 0000228f: PUSH1 0x44 00002291: DUP3 00002292: ADD 00002293: MSTORE 00002294: PUSH6 0x1037bbb732b9 0000229b: PUSH1 0xd1 0000229d: SHL 0000229e: PUSH1 0x64 000022a0: DUP3 000022a1: ADD 000022a2: MSTORE 000022a3: PUSH1 0x84 000022a5: ADD 000022a6: PUSH2 0x09c7 000022a9: JUMP 000022aa: JUMPDEST 000022ab: PUSH1 0x01 000022ad: PUSH1 0x01 000022af: PUSH1 0xa0 000022b1: SHL 000022b2: SUB 000022b3: DUP5 000022b4: AND 000022b5: PUSH2 0x230e 000022b8: JUMPI 000022b9: PUSH1 0x40 000022bb: MLOAD 000022bc: PUSH3 0x461bcd 000022c0: PUSH1 0xe5 000022c2: SHL 000022c3: DUP2 000022c4: MSTORE 000022c5: PUSH1 0x20 000022c7: PUSH1 0x04 000022c9: DUP3 000022ca: ADD 000022cb: MSTORE 000022cc: PUSH1 0x25 000022ce: PUSH1 0x24 000022d0: DUP3 000022d1: ADD 000022d2: MSTORE 000022d3: PUSH32 0x455243373231413a207472616e7366657220746f20746865207a65726f206164 000022f4: PUSH1 0x44 000022f6: DUP3 000022f7: ADD 000022f8: MSTORE 000022f9: PUSH5 0x6472657373 000022ff: PUSH1 0xd8 00002301: SHL 00002302: PUSH1 0x64 00002304: DUP3 00002305: ADD 00002306: MSTORE 00002307: PUSH1 0x84 00002309: ADD 0000230a: PUSH2 0x09c7 0000230d: JUMP 0000230e: JUMPDEST 0000230f: PUSH2 0x231e 00002312: PUSH1 0x00 00002314: DUP5 00002315: DUP5 00002316: PUSH1 0x00 00002318: ADD 00002319: MLOAD 0000231a: PUSH2 0x2102 0000231d: JUMP 0000231e: JUMPDEST 0000231f: PUSH1 0x01 00002321: PUSH1 0x01 00002323: PUSH1 0xa0 00002325: SHL 00002326: SUB 00002327: DUP6 00002328: DUP2 00002329: AND 0000232a: PUSH1 0x00 0000232c: SWAP1 0000232d: DUP2 0000232e: MSTORE 0000232f: PUSH1 0x04 00002331: PUSH1 0x20 00002333: SWAP1 00002334: DUP2 00002335: MSTORE 00002336: PUSH1 0x40 00002338: DUP1 00002339: DUP4 0000233a: KECCAK256 0000233b: DUP1 0000233c: SLOAD 0000233d: PUSH1 0x01 0000233f: PUSH1 0x01 00002341: PUSH1 0x80 00002343: SHL 00002344: SUB 00002345: NOT 00002346: DUP1 00002347: DUP3 00002348: AND 00002349: PUSH1 0x01 0000234b: PUSH1 0x01 0000234d: PUSH1 0x80 0000234f: SHL 00002350: SUB 00002351: SWAP3 00002352: DUP4 00002353: AND 00002354: PUSH1 0x00 00002356: NOT 00002357: ADD 00002358: DUP4 00002359: AND 0000235a: OR 0000235b: SWAP1 0000235c: SWAP3 0000235d: SSTORE 0000235e: DUP10 0000235f: DUP7 00002360: AND 00002361: DUP1 00002362: DUP7 00002363: MSTORE 00002364: DUP4 00002365: DUP7 00002366: KECCAK256 00002367: DUP1 00002368: SLOAD 00002369: SWAP4 0000236a: DUP5 0000236b: AND 0000236c: SWAP4 0000236d: DUP4 0000236e: AND 0000236f: PUSH1 0x01 00002371: SWAP1 00002372: DUP2 00002373: ADD 00002374: SWAP1 00002375: SWAP4 00002376: AND 00002377: SWAP4 00002378: SWAP1 00002379: SWAP4 0000237a: OR 0000237b: SWAP1 0000237c: SWAP3 0000237d: SSTORE 0000237e: DUP9 0000237f: DUP6 00002380: MSTORE 00002381: PUSH1 0x03 00002383: SWAP1 00002384: SWAP4 00002385: MSTORE 00002386: DUP2 00002387: DUP5 00002388: KECCAK256 00002389: DUP1 0000238a: SLOAD 0000238b: PUSH1 0x01 0000238d: PUSH1 0x01 0000238f: PUSH1 0xe0 00002391: SHL 00002392: SUB 00002393: NOT 00002394: AND 00002395: SWAP1 00002396: SWAP2 00002397: OR 00002398: PUSH1 0x01 0000239a: PUSH1 0xa0 0000239c: SHL 0000239d: TIMESTAMP 0000239e: PUSH8 0xffffffffffffffff 000023a7: AND 000023a8: MUL 000023a9: OR 000023aa: SWAP1 000023ab: SSTORE 000023ac: SWAP1 000023ad: DUP7 000023ae: ADD 000023af: DUP1 000023b0: DUP4 000023b1: MSTORE 000023b2: SWAP2 000023b3: KECCAK256 000023b4: SLOAD 000023b5: SWAP1 000023b6: SWAP2 000023b7: AND 000023b8: PUSH2 0x2413 000023bb: JUMPI 000023bc: PUSH2 0x23c6 000023bf: DUP2 000023c0: PUSH1 0x00 000023c2: SLOAD 000023c3: GT 000023c4: SWAP1 000023c5: JUMP 000023c6: JUMPDEST 000023c7: ISZERO 000023c8: PUSH2 0x2413 000023cb: JUMPI 000023cc: DUP3 000023cd: MLOAD 000023ce: PUSH1 0x00 000023d0: DUP3 000023d1: DUP2 000023d2: MSTORE 000023d3: PUSH1 0x03 000023d5: PUSH1 0x20 000023d7: SWAP1 000023d8: DUP2 000023d9: MSTORE 000023da: PUSH1 0x40 000023dc: SWAP1 000023dd: SWAP2 000023de: KECCAK256 000023df: DUP1 000023e0: SLOAD 000023e1: SWAP2 000023e2: DUP7 000023e3: ADD 000023e4: MLOAD 000023e5: PUSH8 0xffffffffffffffff 000023ee: AND 000023ef: PUSH1 0x01 000023f1: PUSH1 0xa0 000023f3: SHL 000023f4: MUL 000023f5: PUSH1 0x01 000023f7: PUSH1 0x01 000023f9: PUSH1 0xe0 000023fb: SHL 000023fc: SUB 000023fd: NOT 000023fe: SWAP1 000023ff: SWAP3 00002400: AND 00002401: PUSH1 0x01 00002403: PUSH1 0x01 00002405: PUSH1 0xa0 00002407: SHL 00002408: SUB 00002409: SWAP1 0000240a: SWAP4 0000240b: AND 0000240c: SWAP3 0000240d: SWAP1 0000240e: SWAP3 0000240f: OR 00002410: OR 00002411: SWAP1 00002412: SSTORE 00002413: JUMPDEST 00002414: POP 00002415: DUP3 00002416: DUP5 00002417: PUSH1 0x01 00002419: PUSH1 0x01 0000241b: PUSH1 0xa0 0000241d: SHL 0000241e: SUB 0000241f: AND 00002420: DUP7 00002421: PUSH1 0x01 00002423: PUSH1 0x01 00002425: PUSH1 0xa0 00002427: SHL 00002428: SUB 00002429: AND 0000242a: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000244b: PUSH1 0x40 0000244d: MLOAD 0000244e: PUSH1 0x40 00002450: MLOAD 00002451: DUP1 00002452: SWAP2 00002453: SUB 00002454: SWAP1 00002455: LOG4 00002456: JUMPDEST 00002457: POP 00002458: POP 00002459: POP 0000245a: POP 0000245b: POP 0000245c: JUMP 0000245d: JUMPDEST 0000245e: PUSH1 0x00 00002460: DUP3 00002461: PUSH2 0x246c 00002464: JUMPI 00002465: POP 00002466: PUSH1 0x00 00002468: PUSH2 0x0a59 0000246b: JUMP 0000246c: JUMPDEST 0000246d: PUSH1 0x00 0000246f: PUSH2 0x2478 00002472: DUP4 00002473: DUP6 00002474: PUSH2 0x3195 00002477: JUMP 00002478: JUMPDEST 00002479: SWAP1 0000247a: POP 0000247b: DUP3 0000247c: PUSH2 0x2485 0000247f: DUP6 00002480: DUP4 00002481: PUSH2 0x32ac 00002484: JUMP 00002485: JUMPDEST 00002486: EQ 00002487: PUSH2 0x1b11 0000248a: JUMPI 0000248b: PUSH1 0x40 0000248d: MLOAD 0000248e: PUSH3 0x461bcd 00002492: PUSH1 0xe5 00002494: SHL 00002495: DUP2 00002496: MSTORE 00002497: PUSH1 0x20 00002499: PUSH1 0x04 0000249b: DUP3 0000249c: ADD 0000249d: MSTORE 0000249e: PUSH1 0x21 000024a0: PUSH1 0x24 000024a2: DUP3 000024a3: ADD 000024a4: MSTORE 000024a5: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f 000024c6: PUSH1 0x44 000024c8: DUP3 000024c9: ADD 000024ca: MSTORE 000024cb: PUSH1 0x77 000024cd: PUSH1 0xf8 000024cf: SHL 000024d0: PUSH1 0x64 000024d2: DUP3 000024d3: ADD 000024d4: MSTORE 000024d5: PUSH1 0x84 000024d7: ADD 000024d8: PUSH2 0x09c7 000024db: JUMP 000024dc: JUMPDEST 000024dd: PUSH1 0x00 000024df: DUP1 000024e0: DUP3 000024e1: GT 000024e2: PUSH2 0x252d 000024e5: JUMPI 000024e6: PUSH1 0x40 000024e8: MLOAD 000024e9: PUSH3 0x461bcd 000024ed: PUSH1 0xe5 000024ef: SHL 000024f0: DUP2 000024f1: MSTORE 000024f2: PUSH1 0x20 000024f4: PUSH1 0x04 000024f6: DUP3 000024f7: ADD 000024f8: MSTORE 000024f9: PUSH1 0x1a 000024fb: PUSH1 0x24 000024fd: DUP3 000024fe: ADD 000024ff: MSTORE 00002500: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 00002521: PUSH1 0x44 00002523: DUP3 00002524: ADD 00002525: MSTORE 00002526: PUSH1 0x64 00002528: ADD 00002529: PUSH2 0x09c7 0000252c: JUMP 0000252d: JUMPDEST 0000252e: PUSH2 0x1b11 00002531: DUP3 00002532: DUP5 00002533: PUSH2 0x32ac 00002536: JUMP 00002537: JUMPDEST 00002538: PUSH1 0x00 0000253a: DUP1 0000253b: PUSH2 0x2544 0000253e: DUP4 0000253f: DUP6 00002540: PUSH2 0x30d1 00002543: JUMP 00002544: JUMPDEST 00002545: SWAP1 00002546: POP 00002547: DUP4 00002548: DUP2 00002549: LT 0000254a: ISZERO 0000254b: PUSH2 0x1b11 0000254e: JUMPI 0000254f: PUSH1 0x40 00002551: MLOAD 00002552: PUSH3 0x461bcd 00002556: PUSH1 0xe5 00002558: SHL 00002559: DUP2 0000255a: MSTORE 0000255b: PUSH1 0x20 0000255d: PUSH1 0x04 0000255f: DUP3 00002560: ADD 00002561: MSTORE 00002562: PUSH1 0x1b 00002564: PUSH1 0x24 00002566: DUP3 00002567: ADD 00002568: MSTORE 00002569: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 0000258a: PUSH1 0x44 0000258c: DUP3 0000258d: ADD 0000258e: MSTORE 0000258f: PUSH1 0x64 00002591: ADD 00002592: PUSH2 0x09c7 00002595: JUMP 00002596: JUMPDEST 00002597: PUSH1 0x00 00002599: DUP3 0000259a: DUP3 0000259b: GT 0000259c: ISZERO 0000259d: PUSH2 0x25e8 000025a0: JUMPI 000025a1: PUSH1 0x40 000025a3: MLOAD 000025a4: PUSH3 0x461bcd 000025a8: PUSH1 0xe5 000025aa: SHL 000025ab: DUP2 000025ac: MSTORE 000025ad: PUSH1 0x20 000025af: PUSH1 0x04 000025b1: DUP3 000025b2: ADD 000025b3: MSTORE 000025b4: PUSH1 0x1e 000025b6: PUSH1 0x24 000025b8: DUP3 000025b9: ADD 000025ba: MSTORE 000025bb: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 000025dc: PUSH1 0x44 000025de: DUP3 000025df: ADD 000025e0: MSTORE 000025e1: PUSH1 0x64 000025e3: ADD 000025e4: PUSH2 0x09c7 000025e7: JUMP 000025e8: JUMPDEST 000025e9: PUSH2 0x1b11 000025ec: DUP3 000025ed: DUP5 000025ee: PUSH2 0x313b 000025f1: JUMP 000025f2: JUMPDEST 000025f3: PUSH1 0x00 000025f5: DUP3 000025f6: PUSH1 0x01 000025f8: PUSH1 0x01 000025fa: PUSH1 0xa0 000025fc: SHL 000025fd: SUB 000025fe: AND 000025ff: DUP3 00002600: PUSH1 0x40 00002602: MLOAD 00002603: PUSH1 0x00 00002605: PUSH1 0x40 00002607: MLOAD 00002608: DUP1 00002609: DUP4 0000260a: SUB 0000260b: DUP2 0000260c: DUP6 0000260d: DUP8 0000260e: GAS 0000260f: CALL 00002610: SWAP3 00002611: POP 00002612: POP 00002613: POP 00002614: RETURNDATASIZE 00002615: DUP1 00002616: PUSH1 0x00 00002618: DUP2 00002619: EQ 0000261a: PUSH2 0x263f 0000261d: JUMPI 0000261e: PUSH1 0x40 00002620: MLOAD 00002621: SWAP2 00002622: POP 00002623: PUSH1 0x1f 00002625: NOT 00002626: PUSH1 0x3f 00002628: RETURNDATASIZE 00002629: ADD 0000262a: AND 0000262b: DUP3 0000262c: ADD 0000262d: PUSH1 0x40 0000262f: MSTORE 00002630: RETURNDATASIZE 00002631: DUP3 00002632: MSTORE 00002633: RETURNDATASIZE 00002634: PUSH1 0x00 00002636: PUSH1 0x20 00002638: DUP5 00002639: ADD 0000263a: RETURNDATACOPY 0000263b: PUSH2 0x2644 0000263e: JUMP 0000263f: JUMPDEST 00002640: PUSH1 0x60 00002642: SWAP2 00002643: POP 00002644: JUMPDEST 00002645: POP 00002646: POP 00002647: SWAP1 00002648: POP 00002649: DUP1 0000264a: PUSH2 0x0c8f 0000264d: JUMPI 0000264e: PUSH1 0x40 00002650: MLOAD 00002651: PUSH3 0x461bcd 00002655: PUSH1 0xe5 00002657: SHL 00002658: DUP2 00002659: MSTORE 0000265a: PUSH1 0x20 0000265c: PUSH1 0x04 0000265e: DUP3 0000265f: ADD 00002660: MSTORE 00002661: PUSH1 0x14 00002663: PUSH1 0x24 00002665: DUP3 00002666: ADD 00002667: MSTORE 00002668: PUSH20 0x2330b4b632b2103a379039b2b7321022ba3432b9 0000267d: PUSH1 0x61 0000267f: SHL 00002680: PUSH1 0x44 00002682: DUP3 00002683: ADD 00002684: MSTORE 00002685: PUSH1 0x64 00002687: ADD 00002688: PUSH2 0x09c7 0000268b: JUMP 0000268c: JUMPDEST 0000268d: PUSH1 0x40 0000268f: DUP1 00002690: MLOAD 00002691: DUP1 00002692: DUP3 00002693: ADD 00002694: SWAP1 00002695: SWAP2 00002696: MSTORE 00002697: PUSH1 0x00 00002699: DUP1 0000269a: DUP3 0000269b: MSTORE 0000269c: PUSH1 0x20 0000269e: DUP3 0000269f: ADD 000026a0: MSTORE 000026a1: PUSH2 0x26ab 000026a4: DUP3 000026a5: PUSH1 0x00 000026a7: SLOAD 000026a8: GT 000026a9: SWAP1 000026aa: JUMP 000026ab: JUMPDEST 000026ac: PUSH2 0x270a 000026af: JUMPI 000026b0: PUSH1 0x40 000026b2: MLOAD 000026b3: PUSH3 0x461bcd 000026b7: PUSH1 0xe5 000026b9: SHL 000026ba: DUP2 000026bb: MSTORE 000026bc: PUSH1 0x20 000026be: PUSH1 0x04 000026c0: DUP3 000026c1: ADD 000026c2: MSTORE 000026c3: PUSH1 0x2a 000026c5: PUSH1 0x24 000026c7: DUP3 000026c8: ADD 000026c9: MSTORE 000026ca: PUSH32 0x455243373231413a206f776e657220717565727920666f72206e6f6e65786973 000026eb: PUSH1 0x44 000026ed: DUP3 000026ee: ADD 000026ef: MSTORE 000026f0: PUSH10 0x3a32b73a103a37b5b2b7 000026fb: PUSH1 0xb1 000026fd: SHL 000026fe: PUSH1 0x64 00002700: DUP3 00002701: ADD 00002702: MSTORE 00002703: PUSH1 0x84 00002705: ADD 00002706: PUSH2 0x09c7 00002709: JUMP 0000270a: JUMPDEST 0000270b: DUP2 0000270c: JUMPDEST 0000270d: PUSH1 0x00 0000270f: DUP2 00002710: DUP2 00002711: MSTORE 00002712: PUSH1 0x03 00002714: PUSH1 0x20 00002716: SWAP1 00002717: DUP2 00002718: MSTORE 00002719: PUSH1 0x40 0000271b: SWAP2 0000271c: DUP3 0000271d: SWAP1 0000271e: KECCAK256 0000271f: DUP3 00002720: MLOAD 00002721: DUP1 00002722: DUP5 00002723: ADD 00002724: SWAP1 00002725: SWAP4 00002726: MSTORE 00002727: SLOAD 00002728: PUSH1 0x01 0000272a: PUSH1 0x01 0000272c: PUSH1 0xa0 0000272e: SHL 0000272f: SUB 00002730: DUP2 00002731: AND 00002732: DUP1 00002733: DUP5 00002734: MSTORE 00002735: PUSH1 0x01 00002737: PUSH1 0xa0 00002739: SHL 0000273a: SWAP1 0000273b: SWAP2 0000273c: DIV 0000273d: PUSH8 0xffffffffffffffff 00002746: AND 00002747: SWAP2 00002748: DUP4 00002749: ADD 0000274a: SWAP2 0000274b: SWAP1 0000274c: SWAP2 0000274d: MSTORE 0000274e: ISZERO 0000274f: PUSH2 0x2759 00002752: JUMPI 00002753: SWAP4 00002754: SWAP3 00002755: POP 00002756: POP 00002757: POP 00002758: JUMP 00002759: JUMPDEST 0000275a: POP 0000275b: PUSH1 0x00 0000275d: NOT 0000275e: ADD 0000275f: PUSH2 0x270c 00002762: JUMP 00002763: JUMPDEST 00002764: PUSH1 0x07 00002766: DUP1 00002767: SLOAD 00002768: PUSH1 0x01 0000276a: PUSH1 0x01 0000276c: PUSH1 0xa0 0000276e: SHL 0000276f: SUB 00002770: DUP4 00002771: DUP2 00002772: AND 00002773: PUSH1 0x01 00002775: PUSH1 0x01 00002777: PUSH1 0xa0 00002779: SHL 0000277a: SUB 0000277b: NOT 0000277c: DUP4 0000277d: AND 0000277e: DUP2 0000277f: OR 00002780: SWAP1 00002781: SWAP4 00002782: SSTORE 00002783: PUSH1 0x40 00002785: MLOAD 00002786: SWAP2 00002787: AND 00002788: SWAP2 00002789: SWAP1 0000278a: DUP3 0000278b: SWAP1 0000278c: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000027ad: SWAP1 000027ae: PUSH1 0x00 000027b0: SWAP1 000027b1: LOG3 000027b2: POP 000027b3: POP 000027b4: JUMP 000027b5: JUMPDEST 000027b6: PUSH1 0x00 000027b8: PUSH1 0x01 000027ba: PUSH1 0x01 000027bc: PUSH1 0xa0 000027be: SHL 000027bf: SUB 000027c0: DUP5 000027c1: AND 000027c2: EXTCODESIZE 000027c3: ISZERO 000027c4: PUSH2 0x28b7 000027c7: JUMPI 000027c8: PUSH1 0x40 000027ca: MLOAD 000027cb: PUSH4 0x0a85bd01 000027d0: PUSH1 0xe1 000027d2: SHL 000027d3: DUP2 000027d4: MSTORE 000027d5: PUSH1 0x01 000027d7: PUSH1 0x01 000027d9: PUSH1 0xa0 000027db: SHL 000027dc: SUB 000027dd: DUP6 000027de: AND 000027df: SWAP1 000027e0: PUSH4 0x150b7a02 000027e5: SWAP1 000027e6: PUSH2 0x27f9 000027e9: SWAP1 000027ea: CALLER 000027eb: SWAP1 000027ec: DUP10 000027ed: SWAP1 000027ee: DUP9 000027ef: SWAP1 000027f0: DUP9 000027f1: SWAP1 000027f2: PUSH1 0x04 000027f4: ADD 000027f5: PUSH2 0x32c0 000027f8: JUMP 000027f9: JUMPDEST 000027fa: PUSH1 0x20 000027fc: PUSH1 0x40 000027fe: MLOAD 000027ff: DUP1 00002800: DUP4 00002801: SUB 00002802: DUP2 00002803: PUSH1 0x00 00002805: DUP8 00002806: DUP1 00002807: EXTCODESIZE 00002808: ISZERO 00002809: DUP1 0000280a: ISZERO 0000280b: PUSH2 0x2813 0000280e: JUMPI 0000280f: PUSH1 0x00 00002811: DUP1 00002812: REVERT 00002813: JUMPDEST 00002814: POP 00002815: GAS 00002816: CALL 00002817: SWAP3 00002818: POP 00002819: POP 0000281a: POP 0000281b: DUP1 0000281c: ISZERO 0000281d: PUSH2 0x2843 00002820: JUMPI 00002821: POP 00002822: PUSH1 0x40 00002824: DUP1 00002825: MLOAD 00002826: PUSH1 0x1f 00002828: RETURNDATASIZE 00002829: SWAP1 0000282a: DUP2 0000282b: ADD 0000282c: PUSH1 0x1f 0000282e: NOT 0000282f: AND 00002830: DUP3 00002831: ADD 00002832: SWAP1 00002833: SWAP3 00002834: MSTORE 00002835: PUSH2 0x2840 00002838: SWAP2 00002839: DUP2 0000283a: ADD 0000283b: SWAP1 0000283c: PUSH2 0x32fd 0000283f: JUMP 00002840: JUMPDEST 00002841: PUSH1 0x01 00002843: JUMPDEST 00002844: PUSH2 0x289d 00002847: JUMPI 00002848: RETURNDATASIZE 00002849: DUP1 0000284a: DUP1 0000284b: ISZERO 0000284c: PUSH2 0x2871 0000284f: JUMPI 00002850: PUSH1 0x40 00002852: MLOAD 00002853: SWAP2 00002854: POP 00002855: PUSH1 0x1f 00002857: NOT 00002858: PUSH1 0x3f 0000285a: RETURNDATASIZE 0000285b: ADD 0000285c: AND 0000285d: DUP3 0000285e: ADD 0000285f: PUSH1 0x40 00002861: MSTORE 00002862: RETURNDATASIZE 00002863: DUP3 00002864: MSTORE 00002865: RETURNDATASIZE 00002866: PUSH1 0x00 00002868: PUSH1 0x20 0000286a: DUP5 0000286b: ADD 0000286c: RETURNDATACOPY 0000286d: PUSH2 0x2876 00002870: JUMP 00002871: JUMPDEST 00002872: PUSH1 0x60 00002874: SWAP2 00002875: POP 00002876: JUMPDEST 00002877: POP 00002878: DUP1 00002879: MLOAD 0000287a: PUSH2 0x2895 0000287d: JUMPI 0000287e: PUSH1 0x40 00002880: MLOAD 00002881: PUSH3 0x461bcd 00002885: PUSH1 0xe5 00002887: SHL 00002888: DUP2 00002889: MSTORE 0000288a: PUSH1 0x04 0000288c: ADD 0000288d: PUSH2 0x09c7 00002890: SWAP1 00002891: PUSH2 0x3204 00002894: JUMP 00002895: JUMPDEST 00002896: DUP1 00002897: MLOAD 00002898: DUP2 00002899: PUSH1 0x20 0000289b: ADD 0000289c: REVERT 0000289d: JUMPDEST 0000289e: PUSH1 0x01 000028a0: PUSH1 0x01 000028a2: PUSH1 0xe0 000028a4: SHL 000028a5: SUB 000028a6: NOT 000028a7: AND 000028a8: PUSH4 0x0a85bd01 000028ad: PUSH1 0xe1 000028af: SHL 000028b0: EQ 000028b1: SWAP1 000028b2: POP 000028b3: PUSH2 0x1052 000028b6: JUMP 000028b7: JUMPDEST 000028b8: POP 000028b9: PUSH1 0x01 000028bb: PUSH2 0x1052 000028be: JUMP 000028bf: JUMPDEST 000028c0: PUSH1 0x60 000028c2: PUSH1 0x0a 000028c4: DUP1 000028c5: SLOAD 000028c6: PUSH2 0x0a6e 000028c9: SWAP1 000028ca: PUSH2 0x3080 000028cd: JUMP 000028ce: JUMPDEST 000028cf: PUSH1 0x60 000028d1: DUP2 000028d2: PUSH2 0x28f2 000028d5: JUMPI 000028d6: POP 000028d7: POP 000028d8: PUSH1 0x40 000028da: DUP1 000028db: MLOAD 000028dc: DUP1 000028dd: DUP3 000028de: ADD 000028df: SWAP1 000028e0: SWAP2 000028e1: MSTORE 000028e2: PUSH1 0x01 000028e4: DUP2 000028e5: MSTORE 000028e6: PUSH1 0x03 000028e8: PUSH1 0xfc 000028ea: SHL 000028eb: PUSH1 0x20 000028ed: DUP3 000028ee: ADD 000028ef: MSTORE 000028f0: SWAP1 000028f1: JUMP 000028f2: JUMPDEST 000028f3: DUP2 000028f4: PUSH1 0x00 000028f6: JUMPDEST 000028f7: DUP2 000028f8: ISZERO 000028f9: PUSH2 0x291c 000028fc: JUMPI 000028fd: DUP1 000028fe: PUSH2 0x2906 00002901: DUP2 00002902: PUSH2 0x3120 00002905: JUMP 00002906: JUMPDEST 00002907: SWAP2 00002908: POP 00002909: PUSH2 0x2915 0000290c: SWAP1 0000290d: POP 0000290e: PUSH1 0x0a 00002910: DUP4 00002911: PUSH2 0x32ac 00002914: JUMP 00002915: JUMPDEST 00002916: SWAP2 00002917: POP 00002918: PUSH2 0x28f6 0000291b: JUMP 0000291c: JUMPDEST 0000291d: PUSH1 0x00 0000291f: DUP2 00002920: PUSH8 0xffffffffffffffff 00002929: DUP2 0000292a: GT 0000292b: ISZERO 0000292c: PUSH2 0x2937 0000292f: JUMPI 00002930: PUSH2 0x2937 00002933: PUSH2 0x2df5 00002936: JUMP 00002937: JUMPDEST 00002938: PUSH1 0x40 0000293a: MLOAD 0000293b: SWAP1 0000293c: DUP1 0000293d: DUP3 0000293e: MSTORE 0000293f: DUP1 00002940: PUSH1 0x1f 00002942: ADD 00002943: PUSH1 0x1f 00002945: NOT 00002946: AND 00002947: PUSH1 0x20 00002949: ADD 0000294a: DUP3 0000294b: ADD 0000294c: PUSH1 0x40 0000294e: MSTORE 0000294f: DUP1 00002950: ISZERO 00002951: PUSH2 0x2961 00002954: JUMPI 00002955: PUSH1 0x20 00002957: DUP3 00002958: ADD 00002959: DUP2 0000295a: DUP1 0000295b: CALLDATASIZE 0000295c: DUP4 0000295d: CALLDATACOPY 0000295e: ADD 0000295f: SWAP1 00002960: POP 00002961: JUMPDEST 00002962: POP 00002963: SWAP1 00002964: POP 00002965: JUMPDEST 00002966: DUP5 00002967: ISZERO 00002968: PUSH2 0x1052 0000296b: JUMPI 0000296c: PUSH2 0x2976 0000296f: PUSH1 0x01 00002971: DUP4 00002972: PUSH2 0x313b 00002975: JUMP 00002976: JUMPDEST 00002977: SWAP2 00002978: POP 00002979: PUSH2 0x2983 0000297c: PUSH1 0x0a 0000297e: DUP7 0000297f: PUSH2 0x331a 00002982: JUMP 00002983: JUMPDEST 00002984: PUSH2 0x298e 00002987: SWAP1 00002988: PUSH1 0x30 0000298a: PUSH2 0x30d1 0000298d: JUMP 0000298e: JUMPDEST 0000298f: PUSH1 0xf8 00002991: SHL 00002992: DUP2 00002993: DUP4 00002994: DUP2 00002995: MLOAD 00002996: DUP2 00002997: LT 00002998: PUSH2 0x29a3 0000299b: JUMPI 0000299c: PUSH2 0x29a3 0000299f: PUSH2 0x332e 000029a2: JUMP 000029a3: JUMPDEST 000029a4: PUSH1 0x20 000029a6: ADD 000029a7: ADD 000029a8: SWAP1 000029a9: PUSH1 0x01 000029ab: PUSH1 0x01 000029ad: PUSH1 0xf8 000029af: SHL 000029b0: SUB 000029b1: NOT 000029b2: AND 000029b3: SWAP1 000029b4: DUP2 000029b5: PUSH1 0x00 000029b7: BYTE 000029b8: SWAP1 000029b9: MSTORE8 000029ba: POP 000029bb: PUSH2 0x29c5 000029be: PUSH1 0x0a 000029c0: DUP7 000029c1: PUSH2 0x32ac 000029c4: JUMP 000029c5: JUMPDEST 000029c6: SWAP5 000029c7: POP 000029c8: PUSH2 0x2965 000029cb: JUMP 000029cc: JUMPDEST 000029cd: PUSH2 0x0c8f 000029d0: DUP4 000029d1: DUP4 000029d2: DUP4 000029d3: PUSH1 0x01 000029d5: PUSH1 0x00 000029d7: SLOAD 000029d8: PUSH1 0x01 000029da: PUSH1 0x01 000029dc: PUSH1 0xa0 000029de: SHL 000029df: SUB 000029e0: DUP6 000029e1: AND 000029e2: PUSH2 0x2a37 000029e5: JUMPI 000029e6: PUSH1 0x40 000029e8: MLOAD 000029e9: PUSH3 0x461bcd 000029ed: PUSH1 0xe5 000029ef: SHL 000029f0: DUP2 000029f1: MSTORE 000029f2: PUSH1 0x20 000029f4: PUSH1 0x04 000029f6: DUP3 000029f7: ADD 000029f8: MSTORE 000029f9: PUSH1 0x21 000029fb: PUSH1 0x24 000029fd: DUP3 000029fe: ADD 000029ff: MSTORE 00002a00: PUSH32 0x455243373231413a206d696e7420746f20746865207a65726f20616464726573 00002a21: PUSH1 0x44 00002a23: DUP3 00002a24: ADD 00002a25: MSTORE 00002a26: PUSH1 0x73 00002a28: PUSH1 0xf8 00002a2a: SHL 00002a2b: PUSH1 0x64 00002a2d: DUP3 00002a2e: ADD 00002a2f: MSTORE 00002a30: PUSH1 0x84 00002a32: ADD 00002a33: PUSH2 0x09c7 00002a36: JUMP 00002a37: JUMPDEST 00002a38: DUP4 00002a39: PUSH2 0x2a95 00002a3c: JUMPI 00002a3d: PUSH1 0x40 00002a3f: MLOAD 00002a40: PUSH3 0x461bcd 00002a44: PUSH1 0xe5 00002a46: SHL 00002a47: DUP2 00002a48: MSTORE 00002a49: PUSH1 0x20 00002a4b: PUSH1 0x04 00002a4d: DUP3 00002a4e: ADD 00002a4f: MSTORE 00002a50: PUSH1 0x28 00002a52: PUSH1 0x24 00002a54: DUP3 00002a55: ADD 00002a56: MSTORE 00002a57: PUSH32 0x455243373231413a207175616e74697479206d75737420626520677265617465 00002a78: PUSH1 0x44 00002a7a: DUP3 00002a7b: ADD 00002a7c: MSTORE 00002a7d: PUSH8 0x072207468616e203 00002a86: PUSH1 0xc4 00002a88: SHL 00002a89: PUSH1 0x64 00002a8b: DUP3 00002a8c: ADD 00002a8d: MSTORE 00002a8e: PUSH1 0x84 00002a90: ADD 00002a91: PUSH2 0x09c7 00002a94: JUMP 00002a95: JUMPDEST 00002a96: PUSH1 0x01 00002a98: PUSH1 0x01 00002a9a: PUSH1 0xa0 00002a9c: SHL 00002a9d: SUB 00002a9e: DUP6 00002a9f: AND 00002aa0: PUSH1 0x00 00002aa2: DUP2 00002aa3: DUP2 00002aa4: MSTORE 00002aa5: PUSH1 0x04 00002aa7: PUSH1 0x20 00002aa9: SWAP1 00002aaa: DUP2 00002aab: MSTORE 00002aac: PUSH1 0x40 00002aae: DUP1 00002aaf: DUP4 00002ab0: KECCAK256 00002ab1: DUP1 00002ab2: SLOAD 00002ab3: PUSH1 0x01 00002ab5: PUSH1 0x80 00002ab7: SHL 00002ab8: PUSH1 0x01 00002aba: PUSH1 0x01 00002abc: PUSH1 0x80 00002abe: SHL 00002abf: SUB 00002ac0: NOT 00002ac1: DUP3 00002ac2: AND 00002ac3: PUSH1 0x01 00002ac5: PUSH1 0x01 00002ac7: PUSH1 0x80 00002ac9: SHL 00002aca: SUB 00002acb: SWAP3 00002acc: DUP4 00002acd: AND 00002ace: DUP13 00002acf: ADD 00002ad0: DUP4 00002ad1: AND 00002ad2: SWAP1 00002ad3: DUP2 00002ad4: OR 00002ad5: DUP3 00002ad6: SWAP1 00002ad7: DIV 00002ad8: DUP4 00002ad9: AND 00002ada: DUP13 00002adb: ADD 00002adc: SWAP1 00002add: SWAP3 00002ade: AND 00002adf: MUL 00002ae0: OR 00002ae1: SWAP1 00002ae2: SSTORE 00002ae3: DUP5 00002ae4: DUP4 00002ae5: MSTORE 00002ae6: PUSH1 0x03 00002ae8: SWAP1 00002ae9: SWAP2 00002aea: MSTORE 00002aeb: DUP2 00002aec: KECCAK256 00002aed: DUP1 00002aee: SLOAD 00002aef: PUSH1 0x01 00002af1: PUSH1 0x01 00002af3: PUSH1 0xe0 00002af5: SHL 00002af6: SUB 00002af7: NOT 00002af8: AND 00002af9: SWAP1 00002afa: SWAP3 00002afb: OR 00002afc: PUSH1 0x01 00002afe: PUSH1 0xa0 00002b00: SHL 00002b01: TIMESTAMP 00002b02: PUSH8 0xffffffffffffffff 00002b0b: AND 00002b0c: MUL 00002b0d: OR 00002b0e: SWAP1 00002b0f: SWAP2 00002b10: SSTORE 00002b11: DUP2 00002b12: SWAP1 00002b13: JUMPDEST 00002b14: DUP6 00002b15: DUP2 00002b16: LT 00002b17: ISZERO 00002b18: PUSH2 0x2b8e 00002b1b: JUMPI 00002b1c: PUSH1 0x40 00002b1e: MLOAD 00002b1f: DUP3 00002b20: SWAP1 00002b21: PUSH1 0x01 00002b23: PUSH1 0x01 00002b25: PUSH1 0xa0 00002b27: SHL 00002b28: SUB 00002b29: DUP10 00002b2a: AND 00002b2b: SWAP1 00002b2c: PUSH1 0x00 00002b2e: SWAP1 00002b2f: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00002b50: SWAP1 00002b51: DUP3 00002b52: SWAP1 00002b53: LOG4 00002b54: DUP4 00002b55: ISZERO 00002b56: PUSH2 0x2b82 00002b59: JUMPI 00002b5a: PUSH2 0x2b66 00002b5d: PUSH1 0x00 00002b5f: DUP9 00002b60: DUP5 00002b61: DUP9 00002b62: PUSH2 0x27b5 00002b65: JUMP 00002b66: JUMPDEST 00002b67: PUSH2 0x2b82 00002b6a: JUMPI 00002b6b: PUSH1 0x40 00002b6d: MLOAD 00002b6e: PUSH3 0x461bcd 00002b72: PUSH1 0xe5 00002b74: SHL 00002b75: DUP2 00002b76: MSTORE 00002b77: PUSH1 0x04 00002b79: ADD 00002b7a: PUSH2 0x09c7 00002b7d: SWAP1 00002b7e: PUSH2 0x3204 00002b81: JUMP 00002b82: JUMPDEST 00002b83: PUSH1 0x01 00002b85: SWAP2 00002b86: DUP3 00002b87: ADD 00002b88: SWAP2 00002b89: ADD 00002b8a: PUSH2 0x2b13 00002b8d: JUMP 00002b8e: JUMPDEST 00002b8f: POP 00002b90: PUSH1 0x00 00002b92: SSTORE 00002b93: PUSH2 0x2456 00002b96: JUMP 00002b97: JUMPDEST 00002b98: DUP3 00002b99: DUP1 00002b9a: SLOAD 00002b9b: PUSH2 0x2ba3 00002b9e: SWAP1 00002b9f: PUSH2 0x3080 00002ba2: JUMP 00002ba3: JUMPDEST 00002ba4: SWAP1 00002ba5: PUSH1 0x00 00002ba7: MSTORE 00002ba8: PUSH1 0x20 00002baa: PUSH1 0x00 00002bac: KECCAK256 00002bad: SWAP1 00002bae: PUSH1 0x1f 00002bb0: ADD 00002bb1: PUSH1 0x20 00002bb3: SWAP1 00002bb4: DIV 00002bb5: DUP2 00002bb6: ADD 00002bb7: SWAP3 00002bb8: DUP3 00002bb9: PUSH2 0x2bc5 00002bbc: JUMPI 00002bbd: PUSH1 0x00 00002bbf: DUP6 00002bc0: SSTORE 00002bc1: PUSH2 0x2c0b 00002bc4: JUMP 00002bc5: JUMPDEST 00002bc6: DUP3 00002bc7: PUSH1 0x1f 00002bc9: LT 00002bca: PUSH2 0x2bde 00002bcd: JUMPI 00002bce: DUP1 00002bcf: MLOAD 00002bd0: PUSH1 0xff 00002bd2: NOT 00002bd3: AND 00002bd4: DUP4 00002bd5: DUP1 00002bd6: ADD 00002bd7: OR 00002bd8: DUP6 00002bd9: SSTORE 00002bda: PUSH2 0x2c0b 00002bdd: JUMP 00002bde: JUMPDEST 00002bdf: DUP3 00002be0: DUP1 00002be1: ADD 00002be2: PUSH1 0x01 00002be4: ADD 00002be5: DUP6 00002be6: SSTORE 00002be7: DUP3 00002be8: ISZERO 00002be9: PUSH2 0x2c0b 00002bec: JUMPI 00002bed: SWAP2 00002bee: DUP3 00002bef: ADD 00002bf0: JUMPDEST 00002bf1: DUP3 00002bf2: DUP2 00002bf3: GT 00002bf4: ISZERO 00002bf5: PUSH2 0x2c0b 00002bf8: JUMPI 00002bf9: DUP3 00002bfa: MLOAD 00002bfb: DUP3 00002bfc: SSTORE 00002bfd: SWAP2 00002bfe: PUSH1 0x20 00002c00: ADD 00002c01: SWAP2 00002c02: SWAP1 00002c03: PUSH1 0x01 00002c05: ADD 00002c06: SWAP1 00002c07: PUSH2 0x2bf0 00002c0a: JUMP 00002c0b: JUMPDEST 00002c0c: POP 00002c0d: PUSH2 0x1232 00002c10: SWAP3 00002c11: SWAP2 00002c12: POP 00002c13: JUMPDEST 00002c14: DUP1 00002c15: DUP3 00002c16: GT 00002c17: ISZERO 00002c18: PUSH2 0x1232 00002c1b: JUMPI 00002c1c: PUSH1 0x00 00002c1e: DUP2 00002c1f: SSTORE 00002c20: PUSH1 0x01 00002c22: ADD 00002c23: PUSH2 0x2c13 00002c26: JUMP 00002c27: JUMPDEST 00002c28: DUP1 00002c29: CALLDATALOAD 00002c2a: PUSH1 0x01 00002c2c: PUSH1 0x01 00002c2e: PUSH1 0xa0 00002c30: SHL 00002c31: SUB 00002c32: DUP2 00002c33: AND 00002c34: DUP2 00002c35: EQ 00002c36: PUSH2 0x1b18 00002c39: JUMPI 00002c3a: PUSH1 0x00 00002c3c: DUP1 00002c3d: REVERT 00002c3e: JUMPDEST 00002c3f: PUSH1 0x00 00002c41: PUSH1 0x20 00002c43: DUP3 00002c44: DUP5 00002c45: SUB 00002c46: SLT 00002c47: ISZERO 00002c48: PUSH2 0x2c50 00002c4b: JUMPI 00002c4c: PUSH1 0x00 00002c4e: DUP1 00002c4f: REVERT 00002c50: JUMPDEST 00002c51: PUSH2 0x1b11 00002c54: DUP3 00002c55: PUSH2 0x2c27 00002c58: JUMP 00002c59: JUMPDEST 00002c5a: PUSH1 0x01 00002c5c: PUSH1 0x01 00002c5e: PUSH1 0xe0 00002c60: SHL 00002c61: SUB 00002c62: NOT 00002c63: DUP2 00002c64: AND 00002c65: DUP2 00002c66: EQ 00002c67: PUSH2 0x20bd 00002c6a: JUMPI 00002c6b: PUSH1 0x00 00002c6d: DUP1 00002c6e: REVERT 00002c6f: JUMPDEST 00002c70: PUSH1 0x00 00002c72: PUSH1 0x20 00002c74: DUP3 00002c75: DUP5 00002c76: SUB 00002c77: SLT 00002c78: ISZERO 00002c79: PUSH2 0x2c81 00002c7c: JUMPI 00002c7d: PUSH1 0x00 00002c7f: DUP1 00002c80: REVERT 00002c81: JUMPDEST 00002c82: DUP2 00002c83: CALLDATALOAD 00002c84: PUSH2 0x1b11 00002c87: DUP2 00002c88: PUSH2 0x2c59 00002c8b: JUMP 00002c8c: JUMPDEST 00002c8d: PUSH1 0x00 00002c8f: JUMPDEST 00002c90: DUP4 00002c91: DUP2 00002c92: LT 00002c93: ISZERO 00002c94: PUSH2 0x2ca7 00002c97: JUMPI 00002c98: DUP2 00002c99: DUP2 00002c9a: ADD 00002c9b: MLOAD 00002c9c: DUP4 00002c9d: DUP3 00002c9e: ADD 00002c9f: MSTORE 00002ca0: PUSH1 0x20 00002ca2: ADD 00002ca3: PUSH2 0x2c8f 00002ca6: JUMP 00002ca7: JUMPDEST 00002ca8: DUP4 00002ca9: DUP2 00002caa: GT 00002cab: ISZERO 00002cac: PUSH2 0x18f0 00002caf: JUMPI 00002cb0: POP 00002cb1: POP 00002cb2: PUSH1 0x00 00002cb4: SWAP2 00002cb5: ADD 00002cb6: MSTORE 00002cb7: JUMP 00002cb8: JUMPDEST 00002cb9: PUSH1 0x00 00002cbb: DUP2 00002cbc: MLOAD 00002cbd: DUP1 00002cbe: DUP5 00002cbf: MSTORE 00002cc0: PUSH2 0x2cd0 00002cc3: DUP2 00002cc4: PUSH1 0x20 00002cc6: DUP7 00002cc7: ADD 00002cc8: PUSH1 0x20 00002cca: DUP7 00002ccb: ADD 00002ccc: PUSH2 0x2c8c 00002ccf: JUMP 00002cd0: JUMPDEST 00002cd1: PUSH1 0x1f 00002cd3: ADD 00002cd4: PUSH1 0x1f 00002cd6: NOT 00002cd7: AND 00002cd8: SWAP3 00002cd9: SWAP1 00002cda: SWAP3 00002cdb: ADD 00002cdc: PUSH1 0x20 00002cde: ADD 00002cdf: SWAP3 00002ce0: SWAP2 00002ce1: POP 00002ce2: POP 00002ce3: JUMP 00002ce4: JUMPDEST 00002ce5: PUSH1 0x20 00002ce7: DUP2 00002ce8: MSTORE 00002ce9: PUSH1 0x00 00002ceb: PUSH2 0x1b11 00002cee: PUSH1 0x20 00002cf0: DUP4 00002cf1: ADD 00002cf2: DUP5 00002cf3: PUSH2 0x2cb8 00002cf6: JUMP 00002cf7: JUMPDEST 00002cf8: PUSH1 0x00 00002cfa: PUSH1 0x20 00002cfc: DUP3 00002cfd: DUP5 00002cfe: SUB 00002cff: SLT 00002d00: ISZERO 00002d01: PUSH2 0x2d09 00002d04: JUMPI 00002d05: PUSH1 0x00 00002d07: DUP1 00002d08: REVERT 00002d09: JUMPDEST 00002d0a: POP 00002d0b: CALLDATALOAD 00002d0c: SWAP2 00002d0d: SWAP1 00002d0e: POP 00002d0f: JUMP 00002d10: JUMPDEST 00002d11: PUSH1 0x00 00002d13: DUP1 00002d14: PUSH1 0x40 00002d16: DUP4 00002d17: DUP6 00002d18: SUB 00002d19: SLT 00002d1a: ISZERO 00002d1b: PUSH2 0x2d23 00002d1e: JUMPI 00002d1f: PUSH1 0x00 00002d21: DUP1 00002d22: REVERT 00002d23: JUMPDEST 00002d24: PUSH2 0x2d2c 00002d27: DUP4 00002d28: PUSH2 0x2c27 00002d2b: JUMP 00002d2c: JUMPDEST 00002d2d: SWAP5 00002d2e: PUSH1 0x20 00002d30: SWAP4 00002d31: SWAP1 00002d32: SWAP4 00002d33: ADD 00002d34: CALLDATALOAD 00002d35: SWAP4 00002d36: POP 00002d37: POP 00002d38: POP 00002d39: JUMP 00002d3a: JUMPDEST 00002d3b: PUSH1 0x00 00002d3d: DUP1 00002d3e: PUSH1 0x40 00002d40: DUP4 00002d41: DUP6 00002d42: SUB 00002d43: SLT 00002d44: ISZERO 00002d45: PUSH2 0x2d4d 00002d48: JUMPI 00002d49: PUSH1 0x00 00002d4b: DUP1 00002d4c: REVERT 00002d4d: JUMPDEST 00002d4e: DUP3 00002d4f: CALLDATALOAD 00002d50: SWAP2 00002d51: POP 00002d52: PUSH2 0x2d5d 00002d55: PUSH1 0x20 00002d57: DUP5 00002d58: ADD 00002d59: PUSH2 0x2c27 00002d5c: JUMP 00002d5d: JUMPDEST 00002d5e: SWAP1 00002d5f: POP 00002d60: SWAP3 00002d61: POP 00002d62: SWAP3 00002d63: SWAP1 00002d64: POP 00002d65: JUMP 00002d66: JUMPDEST 00002d67: PUSH1 0x00 00002d69: DUP1 00002d6a: PUSH1 0x00 00002d6c: PUSH1 0x60 00002d6e: DUP5 00002d6f: DUP7 00002d70: SUB 00002d71: SLT 00002d72: ISZERO 00002d73: PUSH2 0x2d7b 00002d76: JUMPI 00002d77: PUSH1 0x00 00002d79: DUP1 00002d7a: REVERT 00002d7b: JUMPDEST 00002d7c: PUSH2 0x2d84 00002d7f: DUP5 00002d80: PUSH2 0x2c27 00002d83: JUMP 00002d84: JUMPDEST 00002d85: SWAP3 00002d86: POP 00002d87: PUSH2 0x2d92 00002d8a: PUSH1 0x20 00002d8c: DUP6 00002d8d: ADD 00002d8e: PUSH2 0x2c27 00002d91: JUMP 00002d92: JUMPDEST 00002d93: SWAP2 00002d94: POP 00002d95: PUSH1 0x40 00002d97: DUP5 00002d98: ADD 00002d99: CALLDATALOAD 00002d9a: SWAP1 00002d9b: POP 00002d9c: SWAP3 00002d9d: POP 00002d9e: SWAP3 00002d9f: POP 00002da0: SWAP3 00002da1: JUMP 00002da2: JUMPDEST 00002da3: DUP1 00002da4: CALLDATALOAD 00002da5: PUSH1 0xff 00002da7: DUP2 00002da8: AND 00002da9: DUP2 00002daa: EQ 00002dab: PUSH2 0x1b18 00002dae: JUMPI 00002daf: PUSH1 0x00 00002db1: DUP1 00002db2: REVERT 00002db3: JUMPDEST 00002db4: PUSH1 0x00 00002db6: DUP1 00002db7: PUSH1 0x00 00002db9: DUP1 00002dba: PUSH1 0x80 00002dbc: DUP6 00002dbd: DUP8 00002dbe: SUB 00002dbf: SLT 00002dc0: ISZERO 00002dc1: PUSH2 0x2dc9 00002dc4: JUMPI 00002dc5: PUSH1 0x00 00002dc7: DUP1 00002dc8: REVERT 00002dc9: JUMPDEST 00002dca: PUSH2 0x2dd2 00002dcd: DUP6 00002dce: PUSH2 0x2c27 00002dd1: JUMP 00002dd2: JUMPDEST 00002dd3: SWAP4 00002dd4: POP 00002dd5: PUSH2 0x2de0 00002dd8: PUSH1 0x20 00002dda: DUP7 00002ddb: ADD 00002ddc: PUSH2 0x2da2 00002ddf: JUMP 00002de0: JUMPDEST 00002de1: SWAP4 00002de2: SWAP7 00002de3: SWAP4 00002de4: SWAP6 00002de5: POP 00002de6: POP 00002de7: POP 00002de8: POP 00002de9: PUSH1 0x40 00002deb: DUP3 00002dec: ADD 00002ded: CALLDATALOAD 00002dee: SWAP2 00002def: PUSH1 0x60 00002df1: ADD 00002df2: CALLDATALOAD 00002df3: SWAP1 00002df4: JUMP 00002df5: JUMPDEST 00002df6: PUSH4 0x4e487b71 00002dfb: PUSH1 0xe0 00002dfd: SHL 00002dfe: PUSH1 0x00 00002e00: MSTORE 00002e01: PUSH1 0x41 00002e03: PUSH1 0x04 00002e05: MSTORE 00002e06: PUSH1 0x24 00002e08: PUSH1 0x00 00002e0a: REVERT 00002e0b: JUMPDEST 00002e0c: PUSH1 0x00 00002e0e: PUSH8 0xffffffffffffffff 00002e17: DUP1 00002e18: DUP5 00002e19: GT 00002e1a: ISZERO 00002e1b: PUSH2 0x2e26 00002e1e: JUMPI 00002e1f: PUSH2 0x2e26 00002e22: PUSH2 0x2df5 00002e25: JUMP 00002e26: JUMPDEST 00002e27: PUSH1 0x40 00002e29: MLOAD 00002e2a: PUSH1 0x1f 00002e2c: DUP6 00002e2d: ADD 00002e2e: PUSH1 0x1f 00002e30: NOT 00002e31: SWAP1 00002e32: DUP2 00002e33: AND 00002e34: PUSH1 0x3f 00002e36: ADD 00002e37: AND 00002e38: DUP2 00002e39: ADD 00002e3a: SWAP1 00002e3b: DUP3 00002e3c: DUP3 00002e3d: GT 00002e3e: DUP2 00002e3f: DUP4 00002e40: LT 00002e41: OR 00002e42: ISZERO 00002e43: PUSH2 0x2e4e 00002e46: JUMPI 00002e47: PUSH2 0x2e4e 00002e4a: PUSH2 0x2df5 00002e4d: JUMP 00002e4e: JUMPDEST 00002e4f: DUP2 00002e50: PUSH1 0x40 00002e52: MSTORE 00002e53: DUP1 00002e54: SWAP4 00002e55: POP 00002e56: DUP6 00002e57: DUP2 00002e58: MSTORE 00002e59: DUP7 00002e5a: DUP7 00002e5b: DUP7 00002e5c: ADD 00002e5d: GT 00002e5e: ISZERO 00002e5f: PUSH2 0x2e67 00002e62: JUMPI 00002e63: PUSH1 0x00 00002e65: DUP1 00002e66: REVERT 00002e67: JUMPDEST 00002e68: DUP6 00002e69: DUP6 00002e6a: PUSH1 0x20 00002e6c: DUP4 00002e6d: ADD 00002e6e: CALLDATACOPY 00002e6f: PUSH1 0x00 00002e71: PUSH1 0x20 00002e73: DUP8 00002e74: DUP4 00002e75: ADD 00002e76: ADD 00002e77: MSTORE 00002e78: POP 00002e79: POP 00002e7a: POP 00002e7b: SWAP4 00002e7c: SWAP3 00002e7d: POP 00002e7e: POP 00002e7f: POP 00002e80: JUMP 00002e81: JUMPDEST 00002e82: PUSH1 0x00 00002e84: PUSH1 0x20 00002e86: DUP3 00002e87: DUP5 00002e88: SUB 00002e89: SLT 00002e8a: ISZERO 00002e8b: PUSH2 0x2e93 00002e8e: JUMPI 00002e8f: PUSH1 0x00 00002e91: DUP1 00002e92: REVERT 00002e93: JUMPDEST 00002e94: DUP2 00002e95: CALLDATALOAD 00002e96: PUSH8 0xffffffffffffffff 00002e9f: DUP2 00002ea0: GT 00002ea1: ISZERO 00002ea2: PUSH2 0x2eaa 00002ea5: JUMPI 00002ea6: PUSH1 0x00 00002ea8: DUP1 00002ea9: REVERT 00002eaa: JUMPDEST 00002eab: DUP3 00002eac: ADD 00002ead: PUSH1 0x1f 00002eaf: DUP2 00002eb0: ADD 00002eb1: DUP5 00002eb2: SGT 00002eb3: PUSH2 0x2ebb 00002eb6: JUMPI 00002eb7: PUSH1 0x00 00002eb9: DUP1 00002eba: REVERT 00002ebb: JUMPDEST 00002ebc: PUSH2 0x1052 00002ebf: DUP5 00002ec0: DUP3 00002ec1: CALLDATALOAD 00002ec2: PUSH1 0x20 00002ec4: DUP5 00002ec5: ADD 00002ec6: PUSH2 0x2e0b 00002ec9: JUMP 00002eca: JUMPDEST 00002ecb: PUSH4 0x4e487b71 00002ed0: PUSH1 0xe0 00002ed2: SHL 00002ed3: PUSH1 0x00 00002ed5: MSTORE 00002ed6: PUSH1 0x21 00002ed8: PUSH1 0x04 00002eda: MSTORE 00002edb: PUSH1 0x24 00002edd: PUSH1 0x00 00002edf: REVERT 00002ee0: JUMPDEST 00002ee1: PUSH1 0x20 00002ee3: DUP2 00002ee4: ADD 00002ee5: PUSH1 0x04 00002ee7: DUP4 00002ee8: LT 00002ee9: PUSH2 0x2f02 00002eec: JUMPI 00002eed: PUSH4 0x4e487b71 00002ef2: PUSH1 0xe0 00002ef4: SHL 00002ef5: PUSH1 0x00 00002ef7: MSTORE 00002ef8: PUSH1 0x21 00002efa: PUSH1 0x04 00002efc: MSTORE 00002efd: PUSH1 0x24 00002eff: PUSH1 0x00 00002f01: REVERT 00002f02: JUMPDEST 00002f03: SWAP2 00002f04: SWAP1 00002f05: MSTORE 00002f06: SWAP1 00002f07: JUMP 00002f08: JUMPDEST 00002f09: PUSH1 0x00 00002f0b: DUP1 00002f0c: PUSH1 0x40 00002f0e: DUP4 00002f0f: DUP6 00002f10: SUB 00002f11: SLT 00002f12: ISZERO 00002f13: PUSH2 0x2f1b 00002f16: JUMPI 00002f17: PUSH1 0x00 00002f19: DUP1 00002f1a: REVERT 00002f1b: JUMPDEST 00002f1c: POP 00002f1d: POP 00002f1e: DUP1 00002f1f: CALLDATALOAD 00002f20: SWAP3 00002f21: PUSH1 0x20 00002f23: SWAP1 00002f24: SWAP2 00002f25: ADD 00002f26: CALLDATALOAD 00002f27: SWAP2 00002f28: POP 00002f29: JUMP 00002f2a: JUMPDEST 00002f2b: DUP1 00002f2c: CALLDATALOAD 00002f2d: DUP1 00002f2e: ISZERO 00002f2f: ISZERO 00002f30: DUP2 00002f31: EQ 00002f32: PUSH2 0x1b18 00002f35: JUMPI 00002f36: PUSH1 0x00 00002f38: DUP1 00002f39: REVERT 00002f3a: JUMPDEST 00002f3b: PUSH1 0x00 00002f3d: DUP1 00002f3e: PUSH1 0x40 00002f40: DUP4 00002f41: DUP6 00002f42: SUB 00002f43: SLT 00002f44: ISZERO 00002f45: PUSH2 0x2f4d 00002f48: JUMPI 00002f49: PUSH1 0x00 00002f4b: DUP1 00002f4c: REVERT 00002f4d: JUMPDEST 00002f4e: PUSH2 0x2f56 00002f51: DUP4 00002f52: PUSH2 0x2c27 00002f55: JUMP 00002f56: JUMPDEST 00002f57: SWAP2 00002f58: POP 00002f59: PUSH2 0x2d5d 00002f5c: PUSH1 0x20 00002f5e: DUP5 00002f5f: ADD 00002f60: PUSH2 0x2f2a 00002f63: JUMP 00002f64: JUMPDEST 00002f65: PUSH1 0x00 00002f67: PUSH1 0x20 00002f69: DUP3 00002f6a: DUP5 00002f6b: SUB 00002f6c: SLT 00002f6d: ISZERO 00002f6e: PUSH2 0x2f76 00002f71: JUMPI 00002f72: PUSH1 0x00 00002f74: DUP1 00002f75: REVERT 00002f76: JUMPDEST 00002f77: PUSH2 0x1b11 00002f7a: DUP3 00002f7b: PUSH2 0x2f2a 00002f7e: JUMP 00002f7f: JUMPDEST 00002f80: PUSH1 0x00 00002f82: DUP1 00002f83: PUSH1 0x00 00002f85: DUP1 00002f86: PUSH1 0x80 00002f88: DUP6 00002f89: DUP8 00002f8a: SUB 00002f8b: SLT 00002f8c: ISZERO 00002f8d: PUSH2 0x2f95 00002f90: JUMPI 00002f91: PUSH1 0x00 00002f93: DUP1 00002f94: REVERT 00002f95: JUMPDEST 00002f96: PUSH2 0x2f9e 00002f99: DUP6 00002f9a: PUSH2 0x2c27 00002f9d: JUMP 00002f9e: JUMPDEST 00002f9f: SWAP4 00002fa0: POP 00002fa1: PUSH2 0x2fac 00002fa4: PUSH1 0x20 00002fa6: DUP7 00002fa7: ADD 00002fa8: PUSH2 0x2c27 00002fab: JUMP 00002fac: JUMPDEST 00002fad: SWAP3 00002fae: POP 00002faf: PUSH1 0x40 00002fb1: DUP6 00002fb2: ADD 00002fb3: CALLDATALOAD 00002fb4: SWAP2 00002fb5: POP 00002fb6: PUSH1 0x60 00002fb8: DUP6 00002fb9: ADD 00002fba: CALLDATALOAD 00002fbb: PUSH8 0xffffffffffffffff 00002fc4: DUP2 00002fc5: GT 00002fc6: ISZERO 00002fc7: PUSH2 0x2fcf 00002fca: JUMPI 00002fcb: PUSH1 0x00 00002fcd: DUP1 00002fce: REVERT 00002fcf: JUMPDEST 00002fd0: DUP6 00002fd1: ADD 00002fd2: PUSH1 0x1f 00002fd4: DUP2 00002fd5: ADD 00002fd6: DUP8 00002fd7: SGT 00002fd8: PUSH2 0x2fe0 00002fdb: JUMPI 00002fdc: PUSH1 0x00 00002fde: DUP1 00002fdf: REVERT 00002fe0: JUMPDEST 00002fe1: PUSH2 0x2fef 00002fe4: DUP8 00002fe5: DUP3 00002fe6: CALLDATALOAD 00002fe7: PUSH1 0x20 00002fe9: DUP5 00002fea: ADD 00002feb: PUSH2 0x2e0b 00002fee: JUMP 00002fef: JUMPDEST 00002ff0: SWAP2 00002ff1: POP 00002ff2: POP 00002ff3: SWAP3 00002ff4: SWAP6 00002ff5: SWAP2 00002ff6: SWAP5 00002ff7: POP 00002ff8: SWAP3 00002ff9: POP 00002ffa: JUMP 00002ffb: JUMPDEST 00002ffc: PUSH1 0x00 00002ffe: DUP1 00002fff: PUSH1 0x00 00003001: DUP1 00003002: PUSH1 0x80 00003004: DUP6 00003005: DUP8 00003006: SUB 00003007: SLT 00003008: ISZERO 00003009: PUSH2 0x3011 0000300c: JUMPI 0000300d: PUSH1 0x00 0000300f: DUP1 00003010: REVERT 00003011: JUMPDEST 00003012: DUP5 00003013: CALLDATALOAD 00003014: SWAP4 00003015: POP 00003016: PUSH2 0x2de0 00003019: PUSH1 0x20 0000301b: DUP7 0000301c: ADD 0000301d: PUSH2 0x2da2 00003020: JUMP 00003021: JUMPDEST 00003022: PUSH1 0x00 00003024: DUP1 00003025: PUSH1 0x40 00003027: DUP4 00003028: DUP6 00003029: SUB 0000302a: SLT 0000302b: ISZERO 0000302c: PUSH2 0x3034 0000302f: JUMPI 00003030: PUSH1 0x00 00003032: DUP1 00003033: REVERT 00003034: JUMPDEST 00003035: PUSH2 0x303d 00003038: DUP4 00003039: PUSH2 0x2c27 0000303c: JUMP 0000303d: JUMPDEST 0000303e: SWAP2 0000303f: POP 00003040: PUSH2 0x2d5d 00003043: PUSH1 0x20 00003045: DUP5 00003046: ADD 00003047: PUSH2 0x2c27 0000304a: JUMP 0000304b: JUMPDEST 0000304c: PUSH1 0x20 0000304e: DUP1 0000304f: DUP3 00003050: MSTORE 00003051: DUP2 00003052: DUP2 00003053: ADD 00003054: MSTORE 00003055: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00003076: PUSH1 0x40 00003078: DUP3 00003079: ADD 0000307a: MSTORE 0000307b: PUSH1 0x60 0000307d: ADD 0000307e: SWAP1 0000307f: JUMP 00003080: JUMPDEST 00003081: PUSH1 0x01 00003083: DUP2 00003084: DUP2 00003085: SHR 00003086: SWAP1 00003087: DUP3 00003088: AND 00003089: DUP1 0000308a: PUSH2 0x3094 0000308d: JUMPI 0000308e: PUSH1 0x7f 00003090: DUP3 00003091: AND 00003092: SWAP2 00003093: POP 00003094: JUMPDEST 00003095: PUSH1 0x20 00003097: DUP3 00003098: LT 00003099: DUP2 0000309a: EQ 0000309b: ISZERO 0000309c: PUSH2 0x30b5 0000309f: JUMPI 000030a0: PUSH4 0x4e487b71 000030a5: PUSH1 0xe0 000030a7: SHL 000030a8: PUSH1 0x00 000030aa: MSTORE 000030ab: PUSH1 0x22 000030ad: PUSH1 0x04 000030af: MSTORE 000030b0: PUSH1 0x24 000030b2: PUSH1 0x00 000030b4: REVERT 000030b5: JUMPDEST 000030b6: POP 000030b7: SWAP2 000030b8: SWAP1 000030b9: POP 000030ba: JUMP 000030bb: JUMPDEST 000030bc: PUSH4 0x4e487b71 000030c1: PUSH1 0xe0 000030c3: SHL 000030c4: PUSH1 0x00 000030c6: MSTORE 000030c7: PUSH1 0x11 000030c9: PUSH1 0x04 000030cb: MSTORE 000030cc: PUSH1 0x24 000030ce: PUSH1 0x00 000030d0: REVERT 000030d1: JUMPDEST 000030d2: PUSH1 0x00 000030d4: DUP3 000030d5: NOT 000030d6: DUP3 000030d7: GT 000030d8: ISZERO 000030d9: PUSH2 0x30e4 000030dc: JUMPI 000030dd: PUSH2 0x30e4 000030e0: PUSH2 0x30bb 000030e3: JUMP 000030e4: JUMPDEST 000030e5: POP 000030e6: ADD 000030e7: SWAP1 000030e8: JUMP 000030e9: JUMPDEST 000030ea: PUSH1 0x20 000030ec: DUP1 000030ed: DUP3 000030ee: MSTORE 000030ef: PUSH1 0x1f 000030f1: SWAP1 000030f2: DUP3 000030f3: ADD 000030f4: MSTORE 000030f5: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 00003116: PUSH1 0x40 00003118: DUP3 00003119: ADD 0000311a: MSTORE 0000311b: PUSH1 0x60 0000311d: ADD 0000311e: SWAP1 0000311f: JUMP 00003120: JUMPDEST 00003121: PUSH1 0x00 00003123: PUSH1 0x00 00003125: NOT 00003126: DUP3 00003127: EQ 00003128: ISZERO 00003129: PUSH2 0x3134 0000312c: JUMPI 0000312d: PUSH2 0x3134 00003130: PUSH2 0x30bb 00003133: JUMP 00003134: JUMPDEST 00003135: POP 00003136: PUSH1 0x01 00003138: ADD 00003139: SWAP1 0000313a: JUMP 0000313b: JUMPDEST 0000313c: PUSH1 0x00 0000313e: DUP3 0000313f: DUP3 00003140: LT 00003141: ISZERO 00003142: PUSH2 0x314d 00003145: JUMPI 00003146: PUSH2 0x314d 00003149: PUSH2 0x30bb 0000314c: JUMP 0000314d: JUMPDEST 0000314e: POP 0000314f: SUB 00003150: SWAP1 00003151: JUMP 00003152: JUMPDEST 00003153: PUSH1 0x20 00003155: DUP1 00003156: DUP3 00003157: MSTORE 00003158: PUSH1 0x23 0000315a: SWAP1 0000315b: DUP3 0000315c: ADD 0000315d: MSTORE 0000315e: PUSH32 0x4d6178696d756d204d696e747320706572204164647265737320657863656564 0000317f: PUSH1 0x40 00003181: DUP3 00003182: ADD 00003183: MSTORE 00003184: PUSH3 0x656421 00003188: PUSH1 0xe8 0000318a: SHL 0000318b: PUSH1 0x60 0000318d: DUP3 0000318e: ADD 0000318f: MSTORE 00003190: PUSH1 0x80 00003192: ADD 00003193: SWAP1 00003194: JUMP 00003195: JUMPDEST 00003196: PUSH1 0x00 00003198: DUP2 00003199: PUSH1 0x00 0000319b: NOT 0000319c: DIV 0000319d: DUP4 0000319e: GT 0000319f: DUP3 000031a0: ISZERO 000031a1: ISZERO 000031a2: AND 000031a3: ISZERO 000031a4: PUSH2 0x31af 000031a7: JUMPI 000031a8: PUSH2 0x31af 000031ab: PUSH2 0x30bb 000031ae: JUMP 000031af: JUMPDEST 000031b0: POP 000031b1: MUL 000031b2: SWAP1 000031b3: JUMP 000031b4: JUMPDEST 000031b5: PUSH1 0x20 000031b7: DUP1 000031b8: DUP3 000031b9: MSTORE 000031ba: PUSH1 0x30 000031bc: SWAP1 000031bd: DUP3 000031be: ADD 000031bf: MSTORE 000031c0: PUSH32 0x4e6f742073756666696369656e7420457468657220746f206d696e7420746869 000031e1: PUSH1 0x40 000031e3: DUP3 000031e4: ADD 000031e5: MSTORE 000031e6: PUSH16 0x7320616d6f756e74206f66204e465473 000031f7: PUSH1 0x80 000031f9: SHL 000031fa: PUSH1 0x60 000031fc: DUP3 000031fd: ADD 000031fe: MSTORE 000031ff: PUSH1 0x80 00003201: ADD 00003202: SWAP1 00003203: JUMP 00003204: JUMPDEST 00003205: PUSH1 0x20 00003207: DUP1 00003208: DUP3 00003209: MSTORE 0000320a: PUSH1 0x33 0000320c: SWAP1 0000320d: DUP3 0000320e: ADD 0000320f: MSTORE 00003210: PUSH32 0x455243373231413a207472616e7366657220746f206e6f6e2045524337323152 00003231: PUSH1 0x40 00003233: DUP3 00003234: ADD 00003235: MSTORE 00003236: PUSH19 0x32b1b2b4bb32b91034b6b83632b6b2b73a32b9 0000324a: PUSH1 0x69 0000324c: SHL 0000324d: PUSH1 0x60 0000324f: DUP3 00003250: ADD 00003251: MSTORE 00003252: PUSH1 0x80 00003254: ADD 00003255: SWAP1 00003256: JUMP 00003257: JUMPDEST 00003258: PUSH1 0x00 0000325a: DUP4 0000325b: MLOAD 0000325c: PUSH2 0x3269 0000325f: DUP2 00003260: DUP5 00003261: PUSH1 0x20 00003263: DUP9 00003264: ADD 00003265: PUSH2 0x2c8c 00003268: JUMP 00003269: JUMPDEST 0000326a: DUP4 0000326b: MLOAD 0000326c: SWAP1 0000326d: DUP4 0000326e: ADD 0000326f: SWAP1 00003270: PUSH2 0x327d 00003273: DUP2 00003274: DUP4 00003275: PUSH1 0x20 00003277: DUP9 00003278: ADD 00003279: PUSH2 0x2c8c 0000327c: JUMP 0000327d: JUMPDEST 0000327e: PUSH5 0x173539b7b7 00003284: PUSH1 0xd9 00003286: SHL 00003287: SWAP2 00003288: ADD 00003289: SWAP1 0000328a: DUP2 0000328b: MSTORE 0000328c: PUSH1 0x05 0000328e: ADD 0000328f: SWAP5 00003290: SWAP4 00003291: POP 00003292: POP 00003293: POP 00003294: POP 00003295: JUMP 00003296: JUMPDEST 00003297: PUSH4 0x4e487b71 0000329c: PUSH1 0xe0 0000329e: SHL 0000329f: PUSH1 0x00 000032a1: MSTORE 000032a2: PUSH1 0x12 000032a4: PUSH1 0x04 000032a6: MSTORE 000032a7: PUSH1 0x24 000032a9: PUSH1 0x00 000032ab: REVERT 000032ac: JUMPDEST 000032ad: PUSH1 0x00 000032af: DUP3 000032b0: PUSH2 0x32bb 000032b3: JUMPI 000032b4: PUSH2 0x32bb 000032b7: PUSH2 0x3296 000032ba: JUMP 000032bb: JUMPDEST 000032bc: POP 000032bd: DIV 000032be: SWAP1 000032bf: JUMP 000032c0: JUMPDEST 000032c1: PUSH1 0x01 000032c3: PUSH1 0x01 000032c5: PUSH1 0xa0 000032c7: SHL 000032c8: SUB 000032c9: DUP6 000032ca: DUP2 000032cb: AND 000032cc: DUP3 000032cd: MSTORE 000032ce: DUP5 000032cf: AND 000032d0: PUSH1 0x20 000032d2: DUP3 000032d3: ADD 000032d4: MSTORE 000032d5: PUSH1 0x40 000032d7: DUP2 000032d8: ADD 000032d9: DUP4 000032da: SWAP1 000032db: MSTORE 000032dc: PUSH1 0x80 000032de: PUSH1 0x60 000032e0: DUP3 000032e1: ADD 000032e2: DUP2 000032e3: SWAP1 000032e4: MSTORE 000032e5: PUSH1 0x00 000032e7: SWAP1 000032e8: PUSH2 0x32f3 000032eb: SWAP1 000032ec: DUP4 000032ed: ADD 000032ee: DUP5 000032ef: PUSH2 0x2cb8 000032f2: JUMP 000032f3: JUMPDEST 000032f4: SWAP7 000032f5: SWAP6 000032f6: POP 000032f7: POP 000032f8: POP 000032f9: POP 000032fa: POP 000032fb: POP 000032fc: JUMP 000032fd: JUMPDEST 000032fe: PUSH1 0x00 00003300: PUSH1 0x20 00003302: DUP3 00003303: DUP5 00003304: SUB 00003305: SLT 00003306: ISZERO 00003307: PUSH2 0x330f 0000330a: JUMPI 0000330b: PUSH1 0x00 0000330d: DUP1 0000330e: REVERT 0000330f: JUMPDEST 00003310: DUP2 00003311: MLOAD 00003312: PUSH2 0x1b11 00003315: DUP2 00003316: PUSH2 0x2c59 00003319: JUMP 0000331a: JUMPDEST 0000331b: PUSH1 0x00 0000331d: DUP3 0000331e: PUSH2 0x3329 00003321: JUMPI 00003322: PUSH2 0x3329 00003325: PUSH2 0x3296 00003328: JUMP 00003329: JUMPDEST 0000332a: POP 0000332b: MOD 0000332c: SWAP1 0000332d: JUMP 0000332e: JUMPDEST 0000332f: PUSH4 0x4e487b71 00003334: PUSH1 0xe0 00003336: SHL 00003337: PUSH1 0x00 00003339: MSTORE 0000333a: PUSH1 0x32 0000333c: PUSH1 0x04 0000333e: MSTORE 0000333f: PUSH1 0x24 00003341: PUSH1 0x00 00003343: REVERT 00003344: INVALID 00003345: LOG2 00003346: PUSH5 0x6970667358 0000334c: UNKNOWN(0x22) 0000334d: SLT 0000334e: KECCAK256 0000334f: UNKNOWN(0xF8) 00003350: UNKNOWN(0xB9) 00003351: NUMBER 00003352: UNKNOWN(0x23) 00003353: TSTORE 00003354: PUSH19 0xfafe3941b043e00397fdfd22e59846b61b8f97 00003368: UNKNOWN(0xB3) 00003369: UNKNOWN(0xDE) 0000336a: PUSH13 0x3dfaba1564736f6c6343000809 00003378: STOP 00003379: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | slither | PharaGoddess._withdraw(address,uint256) (contracts/Contract.sol#2005-2007) sends eth to arbitrary user | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "arbitrary-send-eth",
"elements": [
{
"name": "_withdraw",
"type": "function",
"source_mapping": {
"lines": [
2005,
2006,
2007
],
"start": 68380,
"length": 180,
"ending_column": 28,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 52,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_withdraw(address,uint256)"
}
},
{
"name": "(sent,None) = account.call{value: amount}()",
"type": "node",
"source_mapping": {
"lines": [
2006
],
"start": 68459,
"length": 47,
"ending_column": 97,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 50,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "_withdraw",
"type": "function",
"source_mapping": {
"lines": [
2005,
2006,
2007
],
"start": 68380,
"length": 180,
"ending_column": 28,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 52,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_withdraw(address,uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "_withdraw",
"type": "function",
"lines": [
2005,
2006,
2007
]
},
{
"file": "contracts/Contract.sol",
"name": "(sent,None) = account.call{value: amount}()",
"type": "node",
"lines": [
2006
]
}
],
"description": "PharaGoddess._withdraw(address,uint256) (contracts/Contract.sol#2005-2007) sends eth to arbitrary user\n\tDangerous calls:\n\t- (sent,None) = account.call{value: amount}() (contracts/Contract.sol#2006)"
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x95909265b383ae55f000df2d08887abeca8757c1a584d99033a92f33d63c6c10
call_targets:
0x147aa9ada01b70c4c8c8b89b06afe767908aced7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x95909265b383ae55f000df2d08887abeca8757c1a584d99033a92f33d63c6c10",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x147aa9ada01b70c4c8c8b89b06afe767908aced7"
],
"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": "0xe3b18253",
"selector": "0xe3b18253",
"calldata_variants": [
"0xe3b18253",
"0xe3b182530000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe985e9c5",
"selector": "0xe985e9c5",
"calldata_variants": [
"0xe985e9c5",
"0xe985e9c50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf71e13a8",
"selector": "0xf71e13a8",
"calldata_variants": [
"0xf71e13a8",
"0xf71e13a80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdcd4e732",
"selector": "0xdcd4e732",
"calldata_variants": [
"0xdcd4e732",
"0xdcd4e7320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe07fa3c1",
"selector": "0xe07fa3c1",
"calldata_variants": [
"0xe07fa3c1",
"0xe07fa3c10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe282327e",
"selector": "0xe282327e",
"calldata_variants": [
"0xe282327e",
"0xe282327e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcb155f96",
"selector": "0xcb155f96",
"calldata_variants": [
"0xcb155f96",
"0xcb155f960000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 9743,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10262,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x95909265b383ae55f000df2d08887abeca8757c1a584d99033a92f33d63c6c10
call_targets:
0x147aa9ada01b70c4c8c8b89b06afe767908aced7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x95909265b383ae55f000df2d08887abeca8757c1a584d99033a92f33d63c6c10",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x147aa9ada01b70c4c8c8b89b06afe767908aced7"
],
"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": "0xe3b18253",
"selector": "0xe3b18253",
"calldata_variants": [
"0xe3b18253",
"0xe3b182530000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe985e9c5",
"selector": "0xe985e9c5",
"calldata_variants": [
"0xe985e9c5",
"0xe985e9c50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf71e13a8",
"selector": "0xf71e13a8",
"calldata_variants": [
"0xf71e13a8",
"0xf71e13a80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdcd4e732",
"selector": "0xdcd4e732",
"calldata_variants": [
"0xdcd4e732",
"0xdcd4e7320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe07fa3c1",
"selector": "0xe07fa3c1",
"calldata_variants": [
"0xe07fa3c1",
"0xe07fa3c10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe282327e",
"selector": "0xe282327e",
"calldata_variants": [
"0xe282327e",
"0xe282327e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcb155f96",
"selector": "0xcb155f96",
"calldata_variants": [
"0xcb155f96",
"0xcb155f960000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 9743,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10262,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| high | other | codex | Royalty accounting lets newly minted tokens claim past rewards | 85 | no | — |
viewevidence_json{
"evidence": "Mint functions call _safeMint without setting royaltyDebt for new token IDs, while claimRoyaltyReward bases payouts on royaltyDebt defaults to 0.",
"locations": [
"contracts/Contract.sol:1978",
"contracts/Contract.sol:1990",
"contracts/Contract.sol:2003",
"contracts/Contract.sol:2011",
"contracts/Contract.sol:2031",
"contracts/Contract.sol:2033",
"contracts/Contract.sol:2081",
"contracts/Contract.sol:2096"
],
"recommendation": "Initialize royaltyDebt for newly minted tokens to the current accEthPerShare (scaled) at mint time (e.g., in the mint functions or in an overridden _afterTokenTransfers hook when from == address(0)). Consider storing debt in the same precision as accEthPerShare to avoid repeated divs.",
"exploit_scenario": "A reward is added when totalSupply is 100 (e.g., 10 ETH). accEthPerShare increases, but newly minted tokens have royaltyDebt defaulting to 0. An attacker mints after the reward is added and immediately calls claimRoyaltyReward, receiving ~0.1 ETH per new token even though they did not hold at the time of payout. This dilutes or steals rewards from existing holders."
}
|
| high | reentrancy | slither | Reentrancy in PharaGoddess.withdrawFund() (contracts/Contract.sol#1996-2004): | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "reentrancy-eth",
"elements": [
{
"name": "withdrawFund",
"type": "function",
"source_mapping": {
"lines": [
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004
],
"start": 68079,
"length": 229,
"ending_column": 26,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 20,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "withdrawFund()"
}
},
{
"name": "_withdraw(address(0xd7DDfE7233D872d3600549b570b3631604aA5ffF),ethFund)",
"type": "node",
"source_mapping": {
"lines": [
2002,
2003
],
"start": 68199,
"length": 71,
"ending_column": 62,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 42,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "withdrawFund",
"type": "function",
"source_mapping": {
"lines": [
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004
],
"start": 68079,
"length": 229,
"ending_column": 26,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 20,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "withdrawFund()"
}
}
}
},
{
"name": "(sent,None) = account.call{value: amount}()",
"type": "node",
"source_mapping": {
"lines": [
2006
],
"start": 68459,
"length": 47,
"ending_column": 97,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 50,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_withdraw",
"type": "function",
"source_mapping": {
"lines": [
2005,
2006,
2007
],
"start": 68380,
"length": 180,
"ending_column": 28,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 52,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_withdraw(address,uint256)"
}
}
}
},
{
"name": "ethFund = 0",
"type": "node",
"source_mapping": {
"lines": [
2003,
2004
],
"start": 68281,
"length": 11,
"ending_column": 10,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 73,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "ethFund",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "withdrawFund",
"type": "function",
"source_mapping": {
"lines": [
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004
],
"start": 68079,
"length": 229,
"ending_column": 26,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 20,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "withdrawFund()"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "withdrawFund",
"type": "function",
"lines": [
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004
]
},
{
"file": "contracts/Contract.sol",
"name": "_withdraw(address(0xd7DDfE7233D872d3600549b570b3631604aA5ffF),ethFund)",
"type": "node",
"lines": [
2002,
2003
]
},
{
"file": "contracts/Contract.sol",
"name": "(sent,None) = account.call{value: amount}()",
"type": "node",
"lines": [
2006
]
},
{
"file": "contracts/Contract.sol",
"name": "ethFund = 0",
"type": "node",
"lines": [
2003,
2004
]
}
],
"description": "Reentrancy in PharaGoddess.withdrawFund() (contracts/Contract.sol#1996-2004):\n\tExternal calls:\n\t- _withdraw(address(0xd7DDfE7233D872d3600549b570b3631604aA5ffF),ethFund) (contracts/Contract.sol#2002-2003)\n\t\t- (sent,None) = account.call{value: amount}() (contracts/Contract.sol#2006)\n\tState variables written after the call(s):\n\t- ethFund = 0 (contracts/Contract.sol#2003-2004)\n\tPharaGoddess.ethFund (contracts/Contract.sol#1839) can be used in cross function reentrancies:\n\t- PharaGoddess.withdrawFund() (contracts/Contract.sol#1996-2004)"
}
|
| medium | reentrancy | slither | Reentrancy in PharaGoddess.publicSaleMint(uint256) (contracts/Contract.sol#1964-1980): | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "reentrancy-no-eth",
"elements": [
{
"name": "publicSaleMint",
"type": "function",
"source_mapping": {
"lines": [
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980
],
"start": 66211,
"length": 859,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 88,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "publicSaleMint(uint256)"
}
},
{
"name": "_safeMint(msg.sender,number)",
"type": "node",
"source_mapping": {
"lines": [
1978
],
"start": 66904,
"length": 29,
"ending_column": 49,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 20,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "publicSaleMint",
"type": "function",
"source_mapping": {
"lines": [
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980
],
"start": 66211,
"length": 859,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 88,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "publicSaleMint(uint256)"
}
}
}
},
{
"name": "retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data)",
"type": "node",
"source_mapping": {
"lines": [
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535
],
"start": 51466,
"length": 524,
"ending_column": 35,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 113,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_checkOnERC721Received",
"type": "function",
"source_mapping": {
"lines": [
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538
],
"start": 51265,
"length": 783,
"ending_column": 1,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 29,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC721A",
"type": "contract",
"source_mapping": {
"lines": [
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136,
1137,
1138,
1139,
1140,
1141,
1142,
1143,
1144,
1145,
1146,
1147,
1148,
1149,
1150,
1151,
1152,
1153,
1154,
1155,
1156,
1157,
1158,
1159,
1160,
1161,
1162,
1163,
1164,
1165,
1166,
1167,
1168,
1169,
1170,
1171,
1172,
1173,
1174,
1175,
1176,
1177,
1178,
1179,
1180,
1181,
1182,
1183,
1184,
1185,
1186,
1187,
1188,
1189,
1190,
1191,
1192,
1193,
1194,
1195,
1196,
1197,
1198,
1199,
1200,
1201,
1202,
1203,
1204,
1205,
1206,
1207,
1208,
1209,
1210,
1211,
1212,
1213,
1214,
1215,
1216,
1217,
1218,
1219,
1220,
1221,
1222,
1223,
1224,
1225,
1226,
1227,
1228,
1229,
1230,
1231,
1232,
1233,
1234,
1235,
1236,
1237,
1238,
1239,
1240,
1241,
1242,
1243,
1244,
1245,
1246,
1247,
1248,
1249,
1250,
1251,
1252,
1253,
1254,
1255,
1256,
1257,
1258,
1259,
1260,
1261,
1262,
1263,
1264,
1265,
1266,
1267,
1268,
1269,
1270,
1271,
1272,
1273,
1274,
1275,
1276,
1277,
1278,
1279,
1280,
1281,
1282,
1283,
1284,
1285,
1286,
1287,
1288,
1289,
1290,
1291,
1292,
1293,
1294,
1295,
1296,
1297,
1298,
1299,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348,
1349,
1350,
1351,
1352,
1353,
1354,
1355,
1356,
1357,
1358,
1359,
1360,
1361,
1362,
1363,
1364,
1365,
1366,
1367,
1368,
1369,
1370,
1371,
1372,
1373,
1374,
1375,
1376,
1377,
1378,
1379,
1380,
1381,
1382,
1383,
1384,
1385,
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509,
1510,
1511,
1512,
1513,
1514,
1515,
1516,
1517,
1518,
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538,
1539,
1540,
1541,
1542,
1543,
1544,
1545,
1546,
1547,
1548,
1549,
1550,
1551,
1552,
1553,
1554,
1555,
1556,
1557,
1558,
1559,
1560,
1561,
1562,
1563,
1564,
1565,
1566,
1567
],
"start": 37562,
"length": 15667,
"ending_column": 15,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 43,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_checkOnERC721Received(address,address,uint256,bytes)"
}
}
}
},
{
"name": "mintedAmountPublicSale += number",
"type": "node",
"source_mapping": {
"lines": [
1978,
1979
],
"start": 67000,
"length": 32,
"ending_column": 14,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 116,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "mintedAmountPublicSale",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "publicSaleMint",
"type": "function",
"source_mapping": {
"lines": [
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980
],
"start": 66211,
"length": 859,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 88,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "publicSaleMint(uint256)"
}
}
}
},
{
"name": "mintsPerAddressPublicSale[msg.sender] += number",
"type": "node",
"source_mapping": {
"lines": [
1978
],
"start": 66943,
"length": 47,
"ending_column": 106,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 59,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "mintsPerAddressPublicSale",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "publicSaleMint",
"type": "function",
"source_mapping": {
"lines": [
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980
],
"start": 66211,
"length": 859,
"ending_column": 6,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 88,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "publicSaleMint(uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "publicSaleMint",
"type": "function",
"lines": [
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980
]
},
{
"file": "contracts/Contract.sol",
"name": "_safeMint(msg.sender,number)",
"type": "node",
"lines": [
1978
]
},
{
"file": "contracts/Contract.sol",
"name": "retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data)",
"type": "node",
"lines": [
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535
]
},
{
"file": "contracts/Contract.sol",
"name": "mintedAmountPublicSale += number",
"type": "node",
"lines": [
1978,
1979
]
},
{
"file": "contracts/Contract.sol",
"name": "mintsPerAddressPublicSale[msg.sender] += number",
"type": "node",
"lines": [
1978
]
}
],
"description": "Reentrancy in PharaGoddess.publicSaleMint(uint256) (contracts/Contract.sol#1964-1980):\n\tExternal calls:\n\t- _safeMint(msg.sender,number) (contracts/Contract.sol#1978)\n\t\t- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)\n\tState variables written after the call(s):\n\t- mintedAmountPublicSale += number (contracts/Contract.sol#1978-1979)\n\tPharaGoddess.mintedAmountPublicSale (contracts/Contract.sol#1798-1800) can be used in cross function reentrancies:\n\t- PharaGoddess.mintedAmountPublicSale (contracts/Contract.sol#1798-1800)\n\t- mintsPerAddressPublicSale[msg.sender] += number (contracts/Contract.sol#1978)\n\tPharaGoddess.mintsPerAddressPublicSale (contracts/Contract.sol#1825-1826) can be used in cross function reentrancies:\n\t- PharaGoddess.mintsPerAddressPublicSale (contracts/Contract.sol#1825-1826)"
}
|
| medium | reentrancy | slither | Reentrancy in PharaGoddess.reservedMint(uint256,address) (contracts/Contract.sol#1986-1990): | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "reentrancy-no-eth",
"elements": [
{
"name": "reservedMint",
"type": "function",
"source_mapping": {
"lines": [
1986,
1987,
1988,
1989,
1990
],
"start": 67605,
"length": 265,
"ending_column": 12,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 123,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "reservedMint(uint256,address)"
}
},
{
"name": "_safeMint(recipient,number)",
"type": "node",
"source_mapping": {
"lines": [
1988
],
"start": 67791,
"length": 28,
"ending_column": 75,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 47,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "reservedMint",
"type": "function",
"source_mapping": {
"lines": [
1986,
1987,
1988,
1989,
1990
],
"start": 67605,
"length": 265,
"ending_column": 12,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 123,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "reservedMint(uint256,address)"
}
}
}
},
{
"name": "retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data)",
"type": "node",
"source_mapping": {
"lines": [
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535
],
"start": 51466,
"length": 524,
"ending_column": 35,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 113,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_checkOnERC721Received",
"type": "function",
"source_mapping": {
"lines": [
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538
],
"start": 51265,
"length": 783,
"ending_column": 1,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 29,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC721A",
"type": "contract",
"source_mapping": {
"lines": [
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136,
1137,
1138,
1139,
1140,
1141,
1142,
1143,
1144,
1145,
1146,
1147,
1148,
1149,
1150,
1151,
1152,
1153,
1154,
1155,
1156,
1157,
1158,
1159,
1160,
1161,
1162,
1163,
1164,
1165,
1166,
1167,
1168,
1169,
1170,
1171,
1172,
1173,
1174,
1175,
1176,
1177,
1178,
1179,
1180,
1181,
1182,
1183,
1184,
1185,
1186,
1187,
1188,
1189,
1190,
1191,
1192,
1193,
1194,
1195,
1196,
1197,
1198,
1199,
1200,
1201,
1202,
1203,
1204,
1205,
1206,
1207,
1208,
1209,
1210,
1211,
1212,
1213,
1214,
1215,
1216,
1217,
1218,
1219,
1220,
1221,
1222,
1223,
1224,
1225,
1226,
1227,
1228,
1229,
1230,
1231,
1232,
1233,
1234,
1235,
1236,
1237,
1238,
1239,
1240,
1241,
1242,
1243,
1244,
1245,
1246,
1247,
1248,
1249,
1250,
1251,
1252,
1253,
1254,
1255,
1256,
1257,
1258,
1259,
1260,
1261,
1262,
1263,
1264,
1265,
1266,
1267,
1268,
1269,
1270,
1271,
1272,
1273,
1274,
1275,
1276,
1277,
1278,
1279,
1280,
1281,
1282,
1283,
1284,
1285,
1286,
1287,
1288,
1289,
1290,
1291,
1292,
1293,
1294,
1295,
1296,
1297,
1298,
1299,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348,
1349,
1350,
1351,
1352,
1353,
1354,
1355,
1356,
1357,
1358,
1359,
1360,
1361,
1362,
1363,
1364,
1365,
1366,
1367,
1368,
1369,
1370,
1371,
1372,
1373,
1374,
1375,
1376,
1377,
1378,
1379,
1380,
1381,
1382,
1383,
1384,
1385,
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509,
1510,
1511,
1512,
1513,
1514,
1515,
1516,
1517,
1518,
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538,
1539,
1540,
1541,
1542,
1543,
1544,
1545,
1546,
1547,
1548,
1549,
1550,
1551,
1552,
1553,
1554,
1555,
1556,
1557,
1558,
1559,
1560,
1561,
1562,
1563,
1564,
1565,
1566,
1567
],
"start": 37562,
"length": 15667,
"ending_column": 15,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 43,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_checkOnERC721Received(address,address,uint256,bytes)"
}
}
}
},
{
"name": "_reservedMints += number",
"type": "node",
"source_mapping": {
"lines": [
1988,
1989
],
"start": 67829,
"length": 24,
"ending_column": 5,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 85,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "_reservedMints",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "reservedMint",
"type": "function",
"source_mapping": {
"lines": [
1986,
1987,
1988,
1989,
1990
],
"start": 67605,
"length": 265,
"ending_column": 12,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 123,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "reservedMint(uint256,address)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "reservedMint",
"type": "function",
"lines": [
1986,
1987,
1988,
1989,
1990
]
},
{
"file": "contracts/Contract.sol",
"name": "_safeMint(recipient,number)",
"type": "node",
"lines": [
1988
]
},
{
"file": "contracts/Contract.sol",
"name": "retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data)",
"type": "node",
"lines": [
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535
]
},
{
"file": "contracts/Contract.sol",
"name": "_reservedMints += number",
"type": "node",
"lines": [
1988,
1989
]
}
],
"description": "Reentrancy in PharaGoddess.reservedMint(uint256,address) (contracts/Contract.sol#1986-1990):\n\tExternal calls:\n\t- _safeMint(recipient,number) (contracts/Contract.sol#1988)\n\t\t- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)\n\tState variables written after the call(s):\n\t- _reservedMints += number (contracts/Contract.sol#1988-1989)\n\tPharaGoddess._reservedMints (contracts/Contract.sol#1808-1809) can be used in cross function reentrancies:\n\t- PharaGoddess.reservedMint(uint256,address) (contracts/Contract.sol#1986-1990)\n\t- PharaGoddess.reservedMintsLeft() (contracts/Contract.sol#2008-2009)"
}
|
| medium | reentrancy | slither | Reentrancy in ERC721A._mint(address,uint256,bytes,bool) (contracts/Contract.sol#1386-1438): | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "reentrancy-no-eth",
"elements": [
{
"name": "_mint",
"type": "function",
"source_mapping": {
"lines": [
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438
],
"start": 46714,
"length": 1498,
"ending_column": 26,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 33,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC721A",
"type": "contract",
"source_mapping": {
"lines": [
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136,
1137,
1138,
1139,
1140,
1141,
1142,
1143,
1144,
1145,
1146,
1147,
1148,
1149,
1150,
1151,
1152,
1153,
1154,
1155,
1156,
1157,
1158,
1159,
1160,
1161,
1162,
1163,
1164,
1165,
1166,
1167,
1168,
1169,
1170,
1171,
1172,
1173,
1174,
1175,
1176,
1177,
1178,
1179,
1180,
1181,
1182,
1183,
1184,
1185,
1186,
1187,
1188,
1189,
1190,
1191,
1192,
1193,
1194,
1195,
1196,
1197,
1198,
1199,
1200,
1201,
1202,
1203,
1204,
1205,
1206,
1207,
1208,
1209,
1210,
1211,
1212,
1213,
1214,
1215,
1216,
1217,
1218,
1219,
1220,
1221,
1222,
1223,
1224,
1225,
1226,
1227,
1228,
1229,
1230,
1231,
1232,
1233,
1234,
1235,
1236,
1237,
1238,
1239,
1240,
1241,
1242,
1243,
1244,
1245,
1246,
1247,
1248,
1249,
1250,
1251,
1252,
1253,
1254,
1255,
1256,
1257,
1258,
1259,
1260,
1261,
1262,
1263,
1264,
1265,
1266,
1267,
1268,
1269,
1270,
1271,
1272,
1273,
1274,
1275,
1276,
1277,
1278,
1279,
1280,
1281,
1282,
1283,
1284,
1285,
1286,
1287,
1288,
1289,
1290,
1291,
1292,
1293,
1294,
1295,
1296,
1297,
1298,
1299,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348,
1349,
1350,
1351,
1352,
1353,
1354,
1355,
1356,
1357,
1358,
1359,
1360,
1361,
1362,
1363,
1364,
1365,
1366,
1367,
1368,
1369,
1370,
1371,
1372,
1373,
1374,
1375,
1376,
1377,
1378,
1379,
1380,
1381,
1382,
1383,
1384,
1385,
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509,
1510,
1511,
1512,
1513,
1514,
1515,
1516,
1517,
1518,
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538,
1539,
1540,
1541,
1542,
1543,
1544,
1545,
1546,
1547,
1548,
1549,
1550,
1551,
1552,
1553,
1554,
1555,
1556,
1557,
1558,
1559,
1560,
1561,
1562,
1563,
1564,
1565,
1566,
1567
],
"start": 37562,
"length": 15667,
"ending_column": 15,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 43,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_mint(address,uint256,bytes,bool)"
}
},
{
"name": "require(bool,string)(_checkOnERC721Received(address(0),to,updatedIndex,_data),ERC721A: transfer to non ERC721Receiver implementer)",
"type": "node",
"source_mapping": {
"lines": [
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431
],
"start": 47824,
"length": 193,
"ending_column": 12,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "_mint",
"type": "function",
"source_mapping": {
"lines": [
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438
],
"start": 46714,
"length": 1498,
"ending_column": 26,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 33,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC721A",
"type": "contract",
"source_mapping": {
"lines": [
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136,
1137,
1138,
1139,
1140,
1141,
1142,
1143,
1144,
1145,
1146,
1147,
1148,
1149,
1150,
1151,
1152,
1153,
1154,
1155,
1156,
1157,
1158,
1159,
1160,
1161,
1162,
1163,
1164,
1165,
1166,
1167,
1168,
1169,
1170,
1171,
1172,
1173,
1174,
1175,
1176,
1177,
1178,
1179,
1180,
1181,
1182,
1183,
1184,
1185,
1186,
1187,
1188,
1189,
1190,
1191,
1192,
1193,
1194,
1195,
1196,
1197,
1198,
1199,
1200,
1201,
1202,
1203,
1204,
1205,
1206,
1207,
1208,
1209,
1210,
1211,
1212,
1213,
1214,
1215,
1216,
1217,
1218,
1219,
1220,
1221,
1222,
1223,
1224,
1225,
1226,
1227,
1228,
1229,
1230,
1231,
1232,
1233,
1234,
1235,
1236,
1237,
1238,
1239,
1240,
1241,
1242,
1243,
1244,
1245,
1246,
1247,
1248,
1249,
1250,
1251,
1252,
1253,
1254,
1255,
1256,
1257,
1258,
1259,
1260,
1261,
1262,
1263,
1264,
1265,
1266,
1267,
1268,
1269,
1270,
1271,
1272,
1273,
1274,
1275,
1276,
1277,
1278,
1279,
1280,
1281,
1282,
1283,
1284,
1285,
1286,
1287,
1288,
1289,
1290,
1291,
1292,
1293,
1294,
1295,
1296,
1297,
1298,
1299,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348,
1349,
1350,
1351,
1352,
1353,
1354,
1355,
1356,
1357,
1358,
1359,
1360,
1361,
1362,
1363,
1364,
1365,
1366,
1367,
1368,
1369,
1370,
1371,
1372,
1373,
1374,
1375,
1376,
1377,
1378,
1379,
1380,
1381,
1382,
1383,
1384,
1385,
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509,
1510,
1511,
1512,
1513,
1514,
1515,
1516,
1517,
1518,
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538,
1539,
1540,
1541,
1542,
1543,
1544,
1545,
1546,
1547,
1548,
1549,
1550,
1551,
1552,
1553,
1554,
1555,
1556,
1557,
1558,
1559,
1560,
1561,
1562,
1563,
1564,
1565,
1566,
1567
],
"start": 37562,
"length": 15667,
"ending_column": 15,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 43,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_mint(address,uint256,bytes,bool)"
}
}
}
},
{
"name": "retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data)",
"type": "node",
"source_mapping": {
"lines": [
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535
],
"start": 51466,
"length": 524,
"ending_column": 35,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 113,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_checkOnERC721Received",
"type": "function",
"source_mapping": {
"lines": [
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538
],
"start": 51265,
"length": 783,
"ending_column": 1,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 29,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC721A",
"type": "contract",
"source_mapping": {
"lines": [
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136,
1137,
1138,
1139,
1140,
1141,
1142,
1143,
1144,
1145,
1146,
1147,
1148,
1149,
1150,
1151,
1152,
1153,
1154,
1155,
1156,
1157,
1158,
1159,
1160,
1161,
1162,
1163,
1164,
1165,
1166,
1167,
1168,
1169,
1170,
1171,
1172,
1173,
1174,
1175,
1176,
1177,
1178,
1179,
1180,
1181,
1182,
1183,
1184,
1185,
1186,
1187,
1188,
1189,
1190,
1191,
1192,
1193,
1194,
1195,
1196,
1197,
1198,
1199,
1200,
1201,
1202,
1203,
1204,
1205,
1206,
1207,
1208,
1209,
1210,
1211,
1212,
1213,
1214,
1215,
1216,
1217,
1218,
1219,
1220,
1221,
1222,
1223,
1224,
1225,
1226,
1227,
1228,
1229,
1230,
1231,
1232,
1233,
1234,
1235,
1236,
1237,
1238,
1239,
1240,
1241,
1242,
1243,
1244,
1245,
1246,
1247,
1248,
1249,
1250,
1251,
1252,
1253,
1254,
1255,
1256,
1257,
1258,
1259,
1260,
1261,
1262,
1263,
1264,
1265,
1266,
1267,
1268,
1269,
1270,
1271,
1272,
1273,
1274,
1275,
1276,
1277,
1278,
1279,
1280,
1281,
1282,
1283,
1284,
1285,
1286,
1287,
1288,
1289,
1290,
1291,
1292,
1293,
1294,
1295,
1296,
1297,
1298,
1299,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348,
1349,
1350,
1351,
1352,
1353,
1354,
1355,
1356,
1357,
1358,
1359,
1360,
1361,
1362,
1363,
1364,
1365,
1366,
1367,
1368,
1369,
1370,
1371,
1372,
1373,
1374,
1375,
1376,
1377,
1378,
1379,
1380,
1381,
1382,
1383,
1384,
1385,
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509,
1510,
1511,
1512,
1513,
1514,
1515,
1516,
1517,
1518,
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538,
1539,
1540,
1541,
1542,
1543,
1544,
1545,
1546,
1547,
1548,
1549,
1550,
1551,
1552,
1553,
1554,
1555,
1556,
1557,
1558,
1559,
1560,
1561,
1562,
1563,
1564,
1565,
1566,
1567
],
"start": 37562,
"length": 15667,
"ending_column": 15,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 43,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_checkOnERC721Received(address,address,uint256,bytes)"
}
}
}
},
{
"name": "currentIndex = updatedIndex",
"type": "node",
"source_mapping": {
"lines": [
1433,
1434
],
"start": 48097,
"length": 27,
"ending_column": 23,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 4,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "currentIndex",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "_mint",
"type": "function",
"source_mapping": {
"lines": [
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438
],
"start": 46714,
"length": 1498,
"ending_column": 26,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 33,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC721A",
"type": "contract",
"source_mapping": {
"lines": [
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136,
1137,
1138,
1139,
1140,
1141,
1142,
1143,
1144,
1145,
1146,
1147,
1148,
1149,
1150,
1151,
1152,
1153,
1154,
1155,
1156,
1157,
1158,
1159,
1160,
1161,
1162,
1163,
1164,
1165,
1166,
1167,
1168,
1169,
1170,
1171,
1172,
1173,
1174,
1175,
1176,
1177,
1178,
1179,
1180,
1181,
1182,
1183,
1184,
1185,
1186,
1187,
1188,
1189,
1190,
1191,
1192,
1193,
1194,
1195,
1196,
1197,
1198,
1199,
1200,
1201,
1202,
1203,
1204,
1205,
1206,
1207,
1208,
1209,
1210,
1211,
1212,
1213,
1214,
1215,
1216,
1217,
1218,
1219,
1220,
1221,
1222,
1223,
1224,
1225,
1226,
1227,
1228,
1229,
1230,
1231,
1232,
1233,
1234,
1235,
1236,
1237,
1238,
1239,
1240,
1241,
1242,
1243,
1244,
1245,
1246,
1247,
1248,
1249,
1250,
1251,
1252,
1253,
1254,
1255,
1256,
1257,
1258,
1259,
1260,
1261,
1262,
1263,
1264,
1265,
1266,
1267,
1268,
1269,
1270,
1271,
1272,
1273,
1274,
1275,
1276,
1277,
1278,
1279,
1280,
1281,
1282,
1283,
1284,
1285,
1286,
1287,
1288,
1289,
1290,
1291,
1292,
1293,
1294,
1295,
1296,
1297,
1298,
1299,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348,
1349,
1350,
1351,
1352,
1353,
1354,
1355,
1356,
1357,
1358,
1359,
1360,
1361,
1362,
1363,
1364,
1365,
1366,
1367,
1368,
1369,
1370,
1371,
1372,
1373,
1374,
1375,
1376,
1377,
1378,
1379,
1380,
1381,
1382,
1383,
1384,
1385,
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509,
1510,
1511,
1512,
1513,
1514,
1515,
1516,
1517,
1518,
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538,
1539,
1540,
1541,
1542,
1543,
1544,
1545,
1546,
1547,
1548,
1549,
1550,
1551,
1552,
1553,
1554,
1555,
1556,
1557,
1558,
1559,
1560,
1561,
1562,
1563,
1564,
1565,
1566,
1567
],
"start": 37562,
"length": 15667,
"ending_column": 15,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 43,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_mint(address,uint256,bytes,bool)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "_mint",
"type": "function",
"lines": [
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438
]
},
{
"file": "contracts/Contract.sol",
"name": "require(bool,string)(_checkOnERC721Received(address(0),to,updatedIndex,_data),ERC721A: transfer to non ERC721Receiver implementer)",
"type": "node",
"lines": [
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431
]
},
{
"file": "contracts/Contract.sol",
"name": "retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data)",
"type": "node",
"lines": [
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535
]
},
{
"file": "contracts/Contract.sol",
"name": "currentIndex = updatedIndex",
"type": "node",
"lines": [
1433,
1434
]
}
],
"description": "Reentrancy in ERC721A._mint(address,uint256,bytes,bool) (contracts/Contract.sol#1386-1438):\n\tExternal calls:\n\t- require(bool,string)(_checkOnERC721Received(address(0),to,updatedIndex,_data),ERC721A: transfer to non ERC721Receiver implementer) (contracts/Contract.sol#1422-1431)\n\t\t- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)\n\tState variables written after the call(s):\n\t- currentIndex = updatedIndex (contracts/Contract.sol#1433-1434)\n\tERC721A.currentIndex (contracts/Contract.sol#1122) can be used in cross function reentrancies:\n\t- ERC721A._exists(uint256) (contracts/Contract.sol#1348-1351)\n\t- ERC721A.totalSupply() (contracts/Contract.sol#1146-1150)"
}
|
| medium | reentrancy | slither | Reentrancy in PharaGoddess.presaleMint(uint256,uint8,bytes32,bytes32) (contracts/Contract.sol#1924-1964): | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "reentrancy-no-eth",
"elements": [
{
"name": "presaleMint",
"type": "function",
"source_mapping": {
"lines": [
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964
],
"start": 64912,
"length": 1243,
"ending_column": 32,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 36,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "presaleMint(uint256,uint8,bytes32,bytes32)"
}
},
{
"name": "_safeMint(msg.sender,number)",
"type": "node",
"source_mapping": {
"lines": [
1954,
1955
],
"start": 65878,
"length": 29,
"ending_column": 23,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 73,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "presaleMint",
"type": "function",
"source_mapping": {
"lines": [
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964
],
"start": 64912,
"length": 1243,
"ending_column": 32,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 36,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "presaleMint(uint256,uint8,bytes32,bytes32)"
}
}
}
},
{
"name": "retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data)",
"type": "node",
"source_mapping": {
"lines": [
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535
],
"start": 51466,
"length": 524,
"ending_column": 35,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 113,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_checkOnERC721Received",
"type": "function",
"source_mapping": {
"lines": [
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538
],
"start": 51265,
"length": 783,
"ending_column": 1,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 29,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC721A",
"type": "contract",
"source_mapping": {
"lines": [
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136,
1137,
1138,
1139,
1140,
1141,
1142,
1143,
1144,
1145,
1146,
1147,
1148,
1149,
1150,
1151,
1152,
1153,
1154,
1155,
1156,
1157,
1158,
1159,
1160,
1161,
1162,
1163,
1164,
1165,
1166,
1167,
1168,
1169,
1170,
1171,
1172,
1173,
1174,
1175,
1176,
1177,
1178,
1179,
1180,
1181,
1182,
1183,
1184,
1185,
1186,
1187,
1188,
1189,
1190,
1191,
1192,
1193,
1194,
1195,
1196,
1197,
1198,
1199,
1200,
1201,
1202,
1203,
1204,
1205,
1206,
1207,
1208,
1209,
1210,
1211,
1212,
1213,
1214,
1215,
1216,
1217,
1218,
1219,
1220,
1221,
1222,
1223,
1224,
1225,
1226,
1227,
1228,
1229,
1230,
1231,
1232,
1233,
1234,
1235,
1236,
1237,
1238,
1239,
1240,
1241,
1242,
1243,
1244,
1245,
1246,
1247,
1248,
1249,
1250,
1251,
1252,
1253,
1254,
1255,
1256,
1257,
1258,
1259,
1260,
1261,
1262,
1263,
1264,
1265,
1266,
1267,
1268,
1269,
1270,
1271,
1272,
1273,
1274,
1275,
1276,
1277,
1278,
1279,
1280,
1281,
1282,
1283,
1284,
1285,
1286,
1287,
1288,
1289,
1290,
1291,
1292,
1293,
1294,
1295,
1296,
1297,
1298,
1299,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348,
1349,
1350,
1351,
1352,
1353,
1354,
1355,
1356,
1357,
1358,
1359,
1360,
1361,
1362,
1363,
1364,
1365,
1366,
1367,
1368,
1369,
1370,
1371,
1372,
1373,
1374,
1375,
1376,
1377,
1378,
1379,
1380,
1381,
1382,
1383,
1384,
1385,
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509,
1510,
1511,
1512,
1513,
1514,
1515,
1516,
1517,
1518,
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538,
1539,
1540,
1541,
1542,
1543,
1544,
1545,
1546,
1547,
1548,
1549,
1550,
1551,
1552,
1553,
1554,
1555,
1556,
1557,
1558,
1559,
1560,
1561,
1562,
1563,
1564,
1565,
1566,
1567
],
"start": 37562,
"length": 15667,
"ending_column": 15,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 43,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_checkOnERC721Received(address,address,uint256,bytes)"
}
}
}
},
{
"name": "mintedAmountPreSale1 += number",
"type": "node",
"source_mapping": {
"lines": [
1959
],
"start": 66017,
"length": 30,
"ending_column": 39,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 9,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "mintedAmountPreSale1",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "presaleMint",
"type": "function",
"source_mapping": {
"lines": [
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964
],
"start": 64912,
"length": 1243,
"ending_column": 32,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 36,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "presaleMint(uint256,uint8,bytes32,bytes32)"
}
}
}
},
{
"name": "mintedAmountPreSale2 += number",
"type": "node",
"source_mapping": {
"lines": [
1959,
1960,
1961
],
"start": 66077,
"length": 30,
"ending_column": 3,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 69,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "mintedAmountPreSale2",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "presaleMint",
"type": "function",
"source_mapping": {
"lines": [
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964
],
"start": 64912,
"length": 1243,
"ending_column": 32,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 36,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "PharaGoddess",
"type": "contract",
"source_mapping": {
"lines": [
1778,
1779,
1780,
1781,
1782,
1783,
1784,
1785,
1786,
1787,
1788,
1789,
1790,
1791,
1792,
1793,
1794,
1795,
1796,
1797,
1798,
1799,
1800,
1801,
1802,
1803,
1804,
1805,
1806,
1807,
1808,
1809,
1810,
1811,
1812,
1813,
1814,
1815,
1816,
1817,
1818,
1819,
1820,
1821,
1822,
1823,
1824,
1825,
1826,
1827,
1828,
1829,
1830,
1831,
1832,
1833,
1834,
1835,
1836,
1837,
1838,
1839,
1840,
1841,
1842,
1843,
1844,
1845,
1846,
1847,
1848,
1849,
1850,
1851,
1852,
1853,
1854,
1855,
1856,
1857,
1858,
1859,
1860,
1861,
1862,
1863,
1864,
1865,
1866,
1867,
1868,
1869,
1870,
1871,
1872,
1873,
1874,
1875,
1876,
1877,
1878,
1879,
1880,
1881,
1882,
1883,
1884,
1885,
1886,
1887,
1888,
1889,
1890,
1891,
1892,
1893,
1894,
1895,
1896,
1897,
1898,
1899,
1900,
1901,
1902,
1903,
1904,
1905,
1906,
1907,
1908,
1909,
1910,
1911,
1912,
1913,
1914,
1915,
1916,
1917,
1918,
1919,
1920,
1921,
1922,
1923,
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964,
1965,
1966,
1967,
1968,
1969,
1970,
1971,
1972,
1973,
1974,
1975,
1976,
1977,
1978,
1979,
1980,
1981,
1982,
1983,
1984,
1985,
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999,
2000,
2001,
2002,
2003,
2004,
2005,
2006,
2007,
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024,
2025,
2026,
2027,
2028,
2029,
2030,
2031,
2032,
2033,
2034,
2035,
2036,
2037,
2038,
2039,
2040,
2041,
2042,
2043,
2044,
2045,
2046,
2047,
2048,
2049,
2050,
2051,
2052,
2053,
2054,
2055,
2056,
2057
],
"start": 60016,
"length": 10634,
"ending_column": 29,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 23,
"filename_absolute": "/tmp/slither-n78zzqrt/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "presaleMint(uint256,uint8,bytes32,bytes32)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "presaleMint",
"type": "function",
"lines": [
1924,
1925,
1926,
1927,
1928,
1929,
1930,
1931,
1932,
1933,
1934,
1935,
1936,
1937,
1938,
1939,
1940,
1941,
1942,
1943,
1944,
1945,
1946,
1947,
1948,
1949,
1950,
1951,
1952,
1953,
1954,
1955,
1956,
1957,
1958,
1959,
1960,
1961,
1962,
1963,
1964
]
},
{
"file": "contracts/Contract.sol",
"name": "_safeMint(msg.sender,number)",
"type": "node",
"lines": [
1954,
1955
]
},
{
"file": "contracts/Contract.sol",
"name": "retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data)",
"type": "node",
"lines": [
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535
]
},
{
"file": "contracts/Contract.sol",
"name": "mintedAmountPreSale1 += number",
"type": "node",
"lines": [
1959
]
},
{
"file": "contracts/Contract.sol",
"name": "mintedAmountPreSale2 += number",
"type": "node",
"lines": [
1959,
1960,
1961
]
},
{
"file": "contracts/Contract.sol",
"name": "mintsPerAddressPreSale[msg.sender] += number",
"type": "node",
"lines": [
1955,
1956,
1957,
1958
]
}
],
"description": "Reentrancy in PharaGoddess.presaleMint(uint256,uint8,bytes32,bytes32) (contracts/Contract.sol#1924-1964):\n\tExternal calls:\n\t- _safeMint(msg.sender,number) (contracts/Contract.sol#1954-1955)\n\t\t- retval = IERC721Receiver(to).onERC721Received(_msgSender(),from,tokenId,_data) (contracts/Contract.sol#1520-1535)\n\tState variables written after the call(s):\n\t- mintedAmountPreSale1 += number (contracts/Contract.sol#1959)\n\tPharaGoddess.mintedAmountPreSale1 (contracts/Contract.sol#1794-1796) can be used in cross function reentrancies:\n\t- PharaGoddess.mintedAmountPreSale1 (contracts/Contract.sol#1794-1796)\n\t- mintedAmountPreSale2 += number (contracts/Contract.sol#1959-1961)\n\tPharaGoddess.mintedAmountPreSale2 (contracts/Contract.sol#1796-1798) can be used in cross function reentrancies:\n\t- PharaGoddess.mintedAmountPreSale2 (contracts/Contract.sol#1796-1798)\n\t- mintsPerAddressPreSale[msg.sender] += number (contracts/Contract.sol#1955-1958)\n\tPharaGoddess.mintsPerAddressPreSale (contracts/Contract.sol#1822-1825) can be used in cross function reentrancies:\n\t- PharaGoddess.mintsPerAddressPreSale (contracts/Contract.sol#1822-1825)"
}
|