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

Analysis Run

019bab3c-e9f9-72ab-84cf-abd0852573bf

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:07 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
39033 artifact.fetch complete 1 / 3 3 months ago
39034 proxy.resolve complete 1 / 3 3 months ago
39035 tool.cast_disasm complete 1 / 3 3 months ago
39036 analysis.bundle complete 1 / 3 3 months ago
39037 capability.graph complete 1 / 3 3 months ago
39038 detector.run complete 1 / 3 3 months ago
39039 validation.fork complete 1 / 3 3 months ago
39242 report.consolidate complete 1 / 6 3 months ago
39243 tool.slither complete 1 / 2 3 months ago

Artifact

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

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
0
Solc
0.8.23 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-qoo7ndg1)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-qoo7ndg1)

MrpcDeposit.deleteToken(address) (contracts/MrpcDeposit.sol#107-119) uses a dangerous strict equality:
	- require(bool,string)(IERC20(token).balanceOf(address(this)) == 0,MrpcDeposit: cannot delete token with positive balance) (contracts/MrpcDeposit.sol#109)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities

MrpcDeposit.collectPayment(address[],uint256[],address) (contracts/MrpcDeposit.sol#150-161) has external calls inside a loop: require(bool,string)(IERC20(tokens[i_scope_0]).balanceOf(address(this)) >= amounts[i_scope_0],MrpcDeposit: wrong amount) (contracts/MrpcDeposit.sol#157)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop

OwnableUpgradeable._getOwnableStorage() (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#30-34) uses assembly
	- INLINE ASM (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#31-33)
Initializable._getInitializableStorage() (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#223-227) uses assembly
	- INLINE ASM (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#224-226)
PausableUpgradeable._getPausableStorage() (@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#27-31) uses assembly
	- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#28-30)
ReentrancyGuardUpgradeable._getReentrancyGuardStorage() (@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol#46-50) uses assembly
	- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol#47-49)
SafeERC20._safeTransfer(IERC20,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#176-200) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#179-199)
SafeERC20._safeTransferFrom(IERC20,address,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#212-244) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#221-243)
SafeERC20._safeApprove(IERC20,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#255-279) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#258-278)
StorageSlot.getAddressSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#66-70) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#67-69)
StorageSlot.getBooleanSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#75-79) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#76-78)
StorageSlot.getBytes32Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#84-88) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#85-87)
StorageSlot.getUint256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#93-97) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#94-96)
StorageSlot.getInt256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#102-106) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#103-105)
StorageSlot.getStringSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#111-115) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#112-114)
StorageSlot.getStringSlot(string) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#120-124) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#121-123)
StorageSlot.getBytesSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#129-133) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#130-132)
StorageSlot.getBytesSlot(bytes) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#138-142) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#139-141)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

4 different versions of Solidity are used:
	- Version constraint ^0.8.20 is used by:
		-^0.8.20 (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#4)
		-^0.8.20 (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4)
		-^0.8.20 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#4)
		-^0.8.20 (@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#4)
		-^0.8.20 (@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
	- Version constraint ^0.8.23 is used by:
		-^0.8.23 (contracts/MrpcDeposit.sol#2)
		-^0.8.23 (contracts/interfaces/IMrpcDeposit.sol#2)
	- Version constraint >=0.6.2 is used by:
		->=0.6.2 (lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol#4)
	- Version constraint >=0.4.16 is used by:
		->=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

MrpcDeposit.deleteToken(address) (contracts/MrpcDeposit.sol#107-119) has costly operations inside a loop:
	- _acceptableTokens.pop() (contracts/MrpcDeposit.sol#113)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop

ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#18-19) is never used and should be removed
ContextUpgradeable.__Context_init_unchained() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is never used and should be removed
ContextUpgradeable._contextSuffixLength() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#31-33) is never used and should be removed
ContextUpgradeable._msgData() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#27-29) is never used and should be removed
Initializable._disableInitializers() (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#192-203) is never used and should be removed
Initializable._getInitializedVersion() (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#208-210) is never used and should be removed
ReentrancyGuardUpgradeable._reentrancyGuardEntered() (@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol#101-104) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess.
It is used by:
	- ^0.8.20 (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#4)
	- ^0.8.20 (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4)
	- ^0.8.20 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#4)
	- ^0.8.20 (@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#4)
	- ^0.8.20 (@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- NestedCalldataArrayAbiReencodingSizeValidation
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- MissingEscapingInFormatting
	- ArraySliceDynamicallyEncodedBaseType
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow.
It is used by:
	- >=0.6.2 (lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol#4)
Version constraint >=0.4.16 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor_0.4.x
	- IncorrectEventSignatureInLibraries_0.4.x
	- ExpExponentCleanup
	- NestedArrayFunctionCallDecoder
	- ZeroFunctionSelector.
It is used by:
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Function OwnableUpgradeable.__Ownable_init(address) (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#51-53) is not in mixedCase
Function OwnableUpgradeable.__Ownable_init_unchained(address) (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#55-60) is not in mixedCase
Constant OwnableUpgradeable.OwnableStorageLocation (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#28) is not in UPPER_CASE_WITH_UNDERSCORES
Function ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#18-19) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Function PausableUpgradeable.__Pausable_init() (@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#56-58) is not in mixedCase
Function PausableUpgradeable.__Pausable_init_unchained() (@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#60-63) is not in mixedCase
Constant PausableUpgradeable.PausableStorageLocation (@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#25) is not in UPPER_CASE_WITH_UNDERSCORES
Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init() (@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol#57-59) is not in mixedCase
Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init_unchained() (@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol#61-64) is not in mixedCase
Constant ReentrancyGuardUpgradeable.ReentrancyGuardStorageLocation (@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol#44) is not in UPPER_CASE_WITH_UNDERSCORES
Function MrpcDeposit.__Deposit_init(address,address,address,address[],uint256[]) (contracts/MrpcDeposit.sol#51-64) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

Loop condition i < _acceptableTokens.length (contracts/MrpcDeposit.sol#98) should use cached array length instead of referencing `length` member of the storage array.
 Loop condition i < _acceptableTokens.length (contracts/MrpcDeposit.sol#191) should use cached array length instead of referencing `length` member of the storage array.
 Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#cache-array-length
. analyzed (13 contracts with 100 detectors), 44 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.23",
        "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.23",
        "install_stderr": null,
        "install_stdout": "Version '0.8.23' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-qoo7ndg1 --include-path /tmp/slither-qoo7ndg1/lib --include-path /tmp/slither-qoo7ndg1/lib/openzeppelin-contracts --allow-paths /tmp/slither-qoo7ndg1,/tmp/slither-qoo7ndg1/lib,/tmp/slither-qoo7ndg1/lib/openzeppelin-contracts,/tmp/slither-qoo7ndg1/src",
    "remappings": [
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/"
    ],
    "source_files": [
        "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol",
        "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
        "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
        "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol",
        "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol",
        "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
        "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
        "@openzeppelin/contracts/utils/Address.sol",
        "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
        "contracts/interfaces/IMrpcDeposit.sol",
        "contracts/MrpcDeposit.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 44,
    "workspace_hash": "9c705e400ea2bb2da593975690f5444da3c1ae3077f83ff739d9d5874bee2d78",
    "duration_seconds": 0.8715434074401855,
    "solc_version_requested": "0.8.23"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Two upgradeability-related risks: potential proxy takeover if initialization is not atomic, and unprotected implementation initialization.
View stdout
{"no_findings":false,"summary":"Two upgradeability-related risks: potential proxy takeover if initialization is not atomic, and unprotected implementation initialization.","findings":[{"severity":"medium","category":"upgradeability","title":"Proxy can be hijacked if not initialized atomically","exploit_scenario":"If the proxy is deployed without calling `initialize` in the same transaction, an attacker can call `initialize` first and set themselves as consensus/governance/treasury, then drain deposits via `collectPayment` or change token controls.","recommendation":"Ensure the proxy is initialized atomically at deployment (e.g., constructor data on the proxy or a deployment script that calls `initialize` immediately). Consider deployment safeguards to prevent uninitialized proxies.","evidence":"`initialize` is external and only protected by `initializer`, so the first caller sets critical roles.","locations":["contracts/MrpcDeposit.sol:44"]},{"severity":"low","category":"upgradeability","title":"Implementation contract is left initializable","exploit_scenario":"Anyone can initialize the implementation contract itself and take control of it. If tokens are mistakenly sent to the implementation address, the attacker can call `collectPayment` to withdraw them.","recommendation":"Add a constructor that calls `_disableInitializers()` to lock the implementation, and avoid sending assets to the implementation address.","evidence":"No constructor disables initializers; `initialize` is publicly callable once on any deployment of the implementation.","locations":["contracts/MrpcDeposit.sol:13","contracts/MrpcDeposit.sol:44"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-u20ew16_
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bac2f-8645-7700-868d-28ea26d211eb
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

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

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

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

thinking
**Preparing to audit with AUDIT_BUNDLE.txt**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-u20ew16_ succeeded in 7ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/MrpcDeposit.sol
================================================================================
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity ^0.8.23;

import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";

import "./interfaces/IMrpcDeposit.sol";

contract MrpcDeposit is IMrpcDeposit, ReentrancyGuardUpgradeable, OwnableUpgradeable, PausableUpgradeable {


thinking
**Analyzing potential vulnerabilities and upgradeability risks**

I've examined the MrpcDeposit contract closely, identifying mostly low- to medium-risk issues like missing _disableInitializers on the implementation contract which could allow takeover if tokens are sent there, and some configuration risks such as allowing governance/treasury addresses to be zero. There are no clear exploitable access control bypasses or critical reentrancy flaws, but some edge cases around token deletion and stuck funds exist. Overall, vulnerabilities appear limited and largely relate to deployment practices and upgradeability precautions.
exec
/bin/bash -lc 'nl -ba contracts/MrpcDeposit.sol' in /tmp/codex-u20ew16_ succeeded in 20ms:
     1	// SPDX-License-Identifier: GPL-3.0-only
     2	pragma solidity ^0.8.23;
     3	
     4	import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
     5	import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
     6	import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
     7	import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
     8	import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
     9	import "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
    10	
    11	import "./interfaces/IMrpcDeposit.sol";
    12	
    13	contract MrpcDeposit is IMrpcDeposit, ReentrancyGuardUpgradeable, OwnableUpgradeable, PausableUpgradeable {
    14	
    15	    enum TokenListAlteration{ ADD, UPDATE, DISABLE, ENABLE, DELETE }
    16	
    17	    event PaymentCollected(address indexed treasury, address[] tokens, uint256[] amounts);
    18	    event ConsensusUpdated(address prevConsensus, address newConsensus);
    19	    event TreasuryUpdated(address prevTreasury, address newTreasury);
    20	    event GovernanceUpdated(address prevGovernance, address newGovernance);

thinking
**Summarizing security findings and preparing JSON output**

I'm analyzing potential low-severity upgradeability and configuration risks in the contract, focusing on uninitialized proxies and missing initializer locks that could let attackers seize control or withdraw tokens mistakenly sent to implementation. I'll produce a concise JSON with two findings covering these concerns, including evidence lines and deployment recommendations.
codex
{"no_findings":false,"summary":"Two upgradeability-related risks: potential proxy takeover if initialization is not atomic, and unprotected implementation initialization.","findings":[{"severity":"medium","category":"upgradeability","title":"Proxy can be hijacked if not initialized atomically","exploit_scenario":"If the proxy is deployed without calling `initialize` in the same transaction, an attacker can call `initialize` first and set themselves as consensus/governance/treasury, then drain deposits via `collectPayment` or change token controls.","recommendation":"Ensure the proxy is initialized atomically at deployment (e.g., constructor data on the proxy or a deployment script that calls `initialize` immediately). Consider deployment safeguards to prevent uninitialized proxies.","evidence":"`initialize` is external and only protected by `initializer`, so the first caller sets critical roles.","locations":["contracts/MrpcDeposit.sol:44"]},{"severity":"low","category":"upgradeability","title":"Implementation contract is left initializable","exploit_scenario":"Anyone can initialize the implementation contract itself and take control of it. If tokens are mistakenly sent to the implementation address, the attacker can call `collectPayment` to withdraw them.","recommendation":"Add a constructor that calls `_disableInitializers()` to lock the implementation, and avoid sending assets to the implementation address.","evidence":"No constructor disables initializers; `initialize` is publicly callable once on any deployment of the implementation.","locations":["contracts/MrpcDeposit.sol:13","contracts/MrpcDeposit.sol:44"]}]}
tokens used
15,408
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T08:34:07.350463+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 12,
        "import_count": 12,
        "first_party_contracts_count": 2
    },
    "summary": "Two upgradeability-related risks: potential proxy takeover if initialization is not atomic, and unprotected implementation initialization.",
    "raw_final": {
        "summary": "Two upgradeability-related risks: potential proxy takeover if initialization is not atomic, and unprotected implementation initialization.",
        "findings": [
            {
                "title": "Proxy can be hijacked if not initialized atomically",
                "category": "upgradeability",
                "evidence": "`initialize` is external and only protected by `initializer`, so the first caller sets critical roles.",
                "severity": "medium",
                "locations": [
                    "contracts/MrpcDeposit.sol:44"
                ],
                "recommendation": "Ensure the proxy is initialized atomically at deployment (e.g., constructor data on the proxy or a deployment script that calls `initialize` immediately). Consider deployment safeguards to prevent uninitialized proxies.",
                "exploit_scenario": "If the proxy is deployed without calling `initialize` in the same transaction, an attacker can call `initialize` first and set themselves as consensus/governance/treasury, then drain deposits via `collectPayment` or change token controls."
            },
            {
                "title": "Implementation contract is left initializable",
                "category": "upgradeability",
                "evidence": "No constructor disables initializers; `initialize` is publicly callable once on any deployment of the implementation.",
                "severity": "low",
                "locations": [
                    "contracts/MrpcDeposit.sol:13",
                    "contracts/MrpcDeposit.sol:44"
                ],
                "recommendation": "Add a constructor that calls `_disableInitializers()` to lock the implementation, and avoid sending assets to the implementation address.",
                "exploit_scenario": "Anyone can initialize the implementation contract itself and take control of it. If tokens are mistakenly sent to the implementation address, the attacker can call `collectPayment` to withdraw them."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
5
EXT*/BALANCE
3
Total opcodes
5416
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x0142
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x8456cb59
00000026: GT
00000027: PUSH2 0x00b8
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xd0965645
00000031: GT
00000032: PUSH2 0x007c
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xd0965645
0000003c: EQ
0000003d: PUSH2 0x0298
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xd3c7c2c7
00000047: EQ
00000048: PUSH2 0x02ab
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xe0149124
00000052: EQ
00000053: PUSH2 0x02c0
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xe12f3a61
0000005d: EQ
0000005e: PUSH2 0x02d3
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xf069f712
00000068: EQ
00000069: PUSH2 0x02f4
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0xf2fde38b
00000073: EQ
00000074: PUSH2 0x0307
00000077: JUMPI
00000078: PUSH1 0x00
0000007a: DUP1
0000007b: REVERT
0000007c: JUMPDEST
0000007d: DUP1
0000007e: PUSH4 0x8456cb59
00000083: EQ
00000084: PUSH2 0x0227
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0x8da5cb5b
0000008e: EQ
0000008f: PUSH2 0x022f
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0x99572d6f
00000099: EQ
0000009a: PUSH2 0x025f
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0xb14f2a39
000000a4: EQ
000000a5: PUSH2 0x0272
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0xc690908a
000000af: EQ
000000b0: PUSH2 0x0285
000000b3: JUMPI
000000b4: PUSH1 0x00
000000b6: DUP1
000000b7: REVERT
000000b8: JUMPDEST
000000b9: DUP1
000000ba: PUSH4 0x3b19e84a
000000bf: GT
000000c0: PUSH2 0x010a
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0x3b19e84a
000000ca: EQ
000000cb: PUSH2 0x01bd
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0x3f4ba83a
000000d5: EQ
000000d6: PUSH2 0x01ce
000000d9: JUMPI
000000da: DUP1
000000db: PUSH4 0x47e7ef24
000000e0: EQ
000000e1: PUSH2 0x01d6
000000e4: JUMPI
000000e5: DUP1
000000e6: PUSH4 0x5c975abb
000000eb: EQ
000000ec: PUSH2 0x01e9
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0x60e06010
000000f6: EQ
000000f7: PUSH2 0x020c
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0x715018a6
00000101: EQ
00000102: PUSH2 0x021f
00000105: JUMPI
00000106: PUSH1 0x00
00000108: DUP1
00000109: REVERT
0000010a: JUMPDEST
0000010b: DUP1
0000010c: PUSH4 0x1355a3ed
00000111: EQ
00000112: PUSH2 0x0147
00000115: JUMPI
00000116: DUP1
00000117: PUSH4 0x179e740b
0000011c: EQ
0000011d: PUSH2 0x015c
00000120: JUMPI
00000121: DUP1
00000122: PUSH4 0x23e27a64
00000127: EQ
00000128: PUSH2 0x0186
0000012b: JUMPI
0000012c: DUP1
0000012d: PUSH4 0x289b3c0d
00000132: EQ
00000133: PUSH2 0x0199
00000136: JUMPI
00000137: DUP1
00000138: PUSH4 0x2f0de139
0000013d: EQ
0000013e: PUSH2 0x01aa
00000141: JUMPI
00000142: JUMPDEST
00000143: PUSH1 0x00
00000145: DUP1
00000146: REVERT
00000147: JUMPDEST
00000148: PUSH2 0x015a
0000014b: PUSH2 0x0155
0000014e: CALLDATASIZE
0000014f: PUSH1 0x04
00000151: PUSH2 0x1e03
00000154: JUMP
00000155: JUMPDEST
00000156: PUSH2 0x031a
00000159: JUMP
0000015a: JUMPDEST
0000015b: STOP
0000015c: JUMPDEST
0000015d: PUSH1 0x00
0000015f: SLOAD
00000160: PUSH1 0x01
00000162: PUSH1 0x01
00000164: PUSH1 0xa0
00000166: SHL
00000167: SUB
00000168: AND
00000169: JUMPDEST
0000016a: PUSH1 0x40
0000016c: MLOAD
0000016d: PUSH1 0x01
0000016f: PUSH1 0x01
00000171: PUSH1 0xa0
00000173: SHL
00000174: SUB
00000175: SWAP1
00000176: SWAP2
00000177: AND
00000178: DUP2
00000179: MSTORE
0000017a: PUSH1 0x20
0000017c: ADD
0000017d: JUMPDEST
0000017e: PUSH1 0x40
00000180: MLOAD
00000181: DUP1
00000182: SWAP2
00000183: SUB
00000184: SWAP1
00000185: RETURN
00000186: JUMPDEST
00000187: PUSH2 0x015a
0000018a: PUSH2 0x0194
0000018d: CALLDATASIZE
0000018e: PUSH1 0x04
00000190: PUSH2 0x1ea5
00000193: JUMP
00000194: JUMPDEST
00000195: PUSH2 0x044f
00000198: JUMP
00000199: JUMPDEST
0000019a: PUSH1 0x02
0000019c: SLOAD
0000019d: PUSH1 0x01
0000019f: PUSH1 0x01
000001a1: PUSH1 0xa0
000001a3: SHL
000001a4: SUB
000001a5: AND
000001a6: PUSH2 0x0169
000001a9: JUMP
000001aa: JUMPDEST
000001ab: PUSH2 0x015a
000001ae: PUSH2 0x01b8
000001b1: CALLDATASIZE
000001b2: PUSH1 0x04
000001b4: PUSH2 0x1ea5
000001b7: JUMP
000001b8: JUMPDEST
000001b9: PUSH2 0x050b
000001bc: JUMP
000001bd: JUMPDEST
000001be: PUSH1 0x01
000001c0: SLOAD
000001c1: PUSH1 0x01
000001c3: PUSH1 0x01
000001c5: PUSH1 0xa0
000001c7: SHL
000001c8: SUB
000001c9: AND
000001ca: PUSH2 0x0169
000001cd: JUMP
000001ce: JUMPDEST
000001cf: PUSH2 0x015a
000001d2: PUSH2 0x05b3
000001d5: JUMP
000001d6: JUMPDEST
000001d7: PUSH2 0x015a
000001da: PUSH2 0x01e4
000001dd: CALLDATASIZE
000001de: PUSH1 0x04
000001e0: PUSH2 0x1ec0
000001e3: JUMP
000001e4: JUMPDEST
000001e5: PUSH2 0x05fc
000001e8: JUMP
000001e9: JUMPDEST
000001ea: PUSH1 0x00
000001ec: DUP1
000001ed: MLOAD
000001ee: PUSH1 0x20
000001f0: PUSH2 0x2286
000001f3: DUP4
000001f4: CODECOPY
000001f5: DUP2
000001f6: MLOAD
000001f7: SWAP2
000001f8: MSTORE
000001f9: SLOAD
000001fa: PUSH1 0xff
000001fc: AND
000001fd: PUSH1 0x40
000001ff: MLOAD
00000200: SWAP1
00000201: ISZERO
00000202: ISZERO
00000203: DUP2
00000204: MSTORE
00000205: PUSH1 0x20
00000207: ADD
00000208: PUSH2 0x017d
0000020b: JUMP
0000020c: JUMPDEST
0000020d: PUSH2 0x015a
00000210: PUSH2 0x021a
00000213: CALLDATASIZE
00000214: PUSH1 0x04
00000216: PUSH2 0x1eea
00000219: JUMP
0000021a: JUMPDEST
0000021b: PUSH2 0x0633
0000021e: JUMP
0000021f: JUMPDEST
00000220: PUSH2 0x015a
00000223: PUSH2 0x0955
00000226: JUMP
00000227: JUMPDEST
00000228: PUSH2 0x015a
0000022b: PUSH2 0x0967
0000022e: JUMP
0000022f: JUMPDEST
00000230: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
00000251: SLOAD
00000252: PUSH1 0x01
00000254: PUSH1 0x01
00000256: PUSH1 0xa0
00000258: SHL
00000259: SUB
0000025a: AND
0000025b: PUSH2 0x0169
0000025e: JUMP
0000025f: JUMPDEST
00000260: PUSH2 0x015a
00000263: PUSH2 0x026d
00000266: CALLDATASIZE
00000267: PUSH1 0x04
00000269: PUSH2 0x1ea5
0000026c: JUMP
0000026d: JUMPDEST
0000026e: PUSH2 0x09ae
00000271: JUMP
00000272: JUMPDEST
00000273: PUSH2 0x015a
00000276: PUSH2 0x0280
00000279: CALLDATASIZE
0000027a: PUSH1 0x04
0000027c: PUSH2 0x1ea5
0000027f: JUMP
00000280: JUMPDEST
00000281: PUSH2 0x0a71
00000284: JUMP
00000285: JUMPDEST
00000286: PUSH2 0x015a
00000289: PUSH2 0x0293
0000028c: CALLDATASIZE
0000028d: PUSH1 0x04
0000028f: PUSH2 0x1ea5
00000292: JUMP
00000293: JUMPDEST
00000294: PUSH2 0x0b5a
00000297: JUMP
00000298: JUMPDEST
00000299: PUSH2 0x015a
0000029c: PUSH2 0x02a6
0000029f: CALLDATASIZE
000002a0: PUSH1 0x04
000002a2: PUSH2 0x1f79
000002a5: JUMP
000002a6: JUMPDEST
000002a7: PUSH2 0x0c07
000002aa: JUMP
000002ab: JUMPDEST
000002ac: PUSH2 0x02b3
000002af: PUSH2 0x0dde
000002b2: JUMP
000002b3: JUMPDEST
000002b4: PUSH1 0x40
000002b6: MLOAD
000002b7: PUSH2 0x017d
000002ba: SWAP2
000002bb: SWAP1
000002bc: PUSH2 0x1fb9
000002bf: JUMP
000002c0: JUMPDEST
000002c1: PUSH2 0x015a
000002c4: PUSH2 0x02ce
000002c7: CALLDATASIZE
000002c8: PUSH1 0x04
000002ca: PUSH2 0x201d
000002cd: JUMP
000002ce: JUMPDEST
000002cf: PUSH2 0x0f4c
000002d2: JUMP
000002d3: JUMPDEST
000002d4: PUSH2 0x02e6
000002d7: PUSH2 0x02e1
000002da: CALLDATASIZE
000002db: PUSH1 0x04
000002dd: PUSH2 0x1ea5
000002e0: JUMP
000002e1: JUMPDEST
000002e2: PUSH2 0x0f7f
000002e5: JUMP
000002e6: JUMPDEST
000002e7: PUSH1 0x40
000002e9: MLOAD
000002ea: SWAP1
000002eb: DUP2
000002ec: MSTORE
000002ed: PUSH1 0x20
000002ef: ADD
000002f0: PUSH2 0x017d
000002f3: JUMP
000002f4: JUMPDEST
000002f5: PUSH2 0x015a
000002f8: PUSH2 0x0302
000002fb: CALLDATASIZE
000002fc: PUSH1 0x04
000002fe: PUSH2 0x1ea5
00000301: JUMP
00000302: JUMPDEST
00000303: PUSH2 0x1044
00000306: JUMP
00000307: JUMPDEST
00000308: PUSH2 0x015a
0000030b: PUSH2 0x0315
0000030e: CALLDATASIZE
0000030f: PUSH1 0x04
00000311: PUSH2 0x1ea5
00000314: JUMP
00000315: JUMPDEST
00000316: PUSH2 0x12c4
00000319: JUMP
0000031a: JUMPDEST
0000031b: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
0000033c: DUP1
0000033d: SLOAD
0000033e: PUSH1 0x01
00000340: PUSH1 0x40
00000342: SHL
00000343: DUP2
00000344: DIV
00000345: PUSH1 0xff
00000347: AND
00000348: ISZERO
00000349: SWAP1
0000034a: PUSH8 0xffffffffffffffff
00000353: AND
00000354: PUSH1 0x00
00000356: DUP2
00000357: ISZERO
00000358: DUP1
00000359: ISZERO
0000035a: PUSH2 0x0360
0000035d: JUMPI
0000035e: POP
0000035f: DUP3
00000360: JUMPDEST
00000361: SWAP1
00000362: POP
00000363: PUSH1 0x00
00000365: DUP3
00000366: PUSH8 0xffffffffffffffff
0000036f: AND
00000370: PUSH1 0x01
00000372: EQ
00000373: DUP1
00000374: ISZERO
00000375: PUSH2 0x037d
00000378: JUMPI
00000379: POP
0000037a: ADDRESS
0000037b: EXTCODESIZE
0000037c: ISZERO
0000037d: JUMPDEST
0000037e: SWAP1
0000037f: POP
00000380: DUP2
00000381: ISZERO
00000382: DUP1
00000383: ISZERO
00000384: PUSH2 0x038b
00000387: JUMPI
00000388: POP
00000389: DUP1
0000038a: ISZERO
0000038b: JUMPDEST
0000038c: ISZERO
0000038d: PUSH2 0x03a9
00000390: JUMPI
00000391: PUSH1 0x40
00000393: MLOAD
00000394: PUSH4 0xf92ee8a9
00000399: PUSH1 0xe0
0000039b: SHL
0000039c: DUP2
0000039d: MSTORE
0000039e: PUSH1 0x04
000003a0: ADD
000003a1: PUSH1 0x40
000003a3: MLOAD
000003a4: DUP1
000003a5: SWAP2
000003a6: SUB
000003a7: SWAP1
000003a8: REVERT
000003a9: JUMPDEST
000003aa: DUP5
000003ab: SLOAD
000003ac: PUSH8 0xffffffffffffffff
000003b5: NOT
000003b6: AND
000003b7: PUSH1 0x01
000003b9: OR
000003ba: DUP6
000003bb: SSTORE
000003bc: DUP4
000003bd: ISZERO
000003be: PUSH2 0x03d3
000003c1: JUMPI
000003c2: DUP5
000003c3: SLOAD
000003c4: PUSH1 0xff
000003c6: PUSH1 0x40
000003c8: SHL
000003c9: NOT
000003ca: AND
000003cb: PUSH1 0x01
000003cd: PUSH1 0x40
000003cf: SHL
000003d0: OR
000003d1: DUP6
000003d2: SSTORE
000003d3: JUMPDEST
000003d4: PUSH2 0x03db
000003d7: PUSH2 0x1302
000003da: JUMP
000003db: JUMPDEST
000003dc: PUSH2 0x03e3
000003df: PUSH2 0x1312
000003e2: JUMP
000003e3: JUMPDEST
000003e4: PUSH2 0x03ec
000003e7: CALLER
000003e8: PUSH2 0x1322
000003eb: JUMP
000003ec: JUMPDEST
000003ed: PUSH2 0x03fb
000003f0: DUP13
000003f1: DUP13
000003f2: DUP13
000003f3: DUP13
000003f4: DUP13
000003f5: DUP13
000003f6: DUP13
000003f7: PUSH2 0x1333
000003fa: JUMP
000003fb: JUMPDEST
000003fc: DUP4
000003fd: ISZERO
000003fe: PUSH2 0x0441
00000401: JUMPI
00000402: DUP5
00000403: SLOAD
00000404: PUSH1 0xff
00000406: PUSH1 0x40
00000408: SHL
00000409: NOT
0000040a: AND
0000040b: DUP6
0000040c: SSTORE
0000040d: PUSH1 0x40
0000040f: MLOAD
00000410: PUSH1 0x01
00000412: DUP2
00000413: MSTORE
00000414: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00000435: SWAP1
00000436: PUSH1 0x20
00000438: ADD
00000439: PUSH1 0x40
0000043b: MLOAD
0000043c: DUP1
0000043d: SWAP2
0000043e: SUB
0000043f: SWAP1
00000440: LOG1
00000441: JUMPDEST
00000442: POP
00000443: POP
00000444: POP
00000445: POP
00000446: POP
00000447: POP
00000448: POP
00000449: POP
0000044a: POP
0000044b: POP
0000044c: POP
0000044d: POP
0000044e: JUMP
0000044f: JUMPDEST
00000450: PUSH1 0x00
00000452: SLOAD
00000453: PUSH1 0x01
00000455: PUSH1 0x01
00000457: PUSH1 0xa0
00000459: SHL
0000045a: SUB
0000045b: AND
0000045c: CALLER
0000045d: EQ
0000045e: DUP1
0000045f: PUSH2 0x0472
00000462: JUMPI
00000463: POP
00000464: PUSH1 0x02
00000466: SLOAD
00000467: PUSH1 0x01
00000469: PUSH1 0x01
0000046b: PUSH1 0xa0
0000046d: SHL
0000046e: SUB
0000046f: AND
00000470: CALLER
00000471: EQ
00000472: JUMPDEST
00000473: PUSH2 0x0497
00000476: JUMPI
00000477: PUSH1 0x40
00000479: MLOAD
0000047a: PUSH3 0x461bcd
0000047e: PUSH1 0xe5
00000480: SHL
00000481: DUP2
00000482: MSTORE
00000483: PUSH1 0x04
00000485: ADD
00000486: PUSH2 0x048e
00000489: SWAP1
0000048a: PUSH2 0x2059
0000048d: JUMP
0000048e: JUMPDEST
0000048f: PUSH1 0x40
00000491: MLOAD
00000492: DUP1
00000493: SWAP2
00000494: SUB
00000495: SWAP1
00000496: REVERT
00000497: JUMPDEST
00000498: PUSH2 0x04a0
0000049b: DUP2
0000049c: PUSH2 0x16b6
0000049f: JUMP
000004a0: JUMPDEST
000004a1: PUSH2 0x04bc
000004a4: JUMPI
000004a5: PUSH1 0x40
000004a7: MLOAD
000004a8: PUSH3 0x461bcd
000004ac: PUSH1 0xe5
000004ae: SHL
000004af: DUP2
000004b0: MSTORE
000004b1: PUSH1 0x04
000004b3: ADD
000004b4: PUSH2 0x048e
000004b7: SWAP1
000004b8: PUSH2 0x20a2
000004bb: JUMP
000004bc: JUMPDEST
000004bd: PUSH1 0x01
000004bf: PUSH1 0x01
000004c1: PUSH1 0xa0
000004c3: SHL
000004c4: SUB
000004c5: DUP2
000004c6: AND
000004c7: PUSH1 0x00
000004c9: SWAP1
000004ca: DUP2
000004cb: MSTORE
000004cc: PUSH1 0x04
000004ce: PUSH1 0x20
000004d0: MSTORE
000004d1: PUSH1 0x40
000004d3: SWAP1
000004d4: DUP2
000004d5: SWAP1
000004d6: KECCAK256
000004d7: PUSH1 0x01
000004d9: ADD
000004da: DUP1
000004db: SLOAD
000004dc: PUSH1 0xff
000004de: NOT
000004df: AND
000004e0: SWAP1
000004e1: SSTORE
000004e2: MLOAD
000004e3: PUSH1 0x00
000004e5: DUP1
000004e6: MLOAD
000004e7: PUSH1 0x20
000004e9: PUSH2 0x2266
000004ec: DUP4
000004ed: CODECOPY
000004ee: DUP2
000004ef: MLOAD
000004f0: SWAP2
000004f1: MSTORE
000004f2: SWAP1
000004f3: PUSH2 0x0500
000004f6: SWAP1
000004f7: DUP4
000004f8: SWAP1
000004f9: PUSH1 0x02
000004fb: SWAP1
000004fc: PUSH2 0x20e6
000004ff: JUMP
00000500: JUMPDEST
00000501: PUSH1 0x40
00000503: MLOAD
00000504: DUP1
00000505: SWAP2
00000506: SUB
00000507: SWAP1
00000508: LOG1
00000509: POP
0000050a: JUMP
0000050b: JUMPDEST
0000050c: PUSH1 0x00
0000050e: SLOAD
0000050f: PUSH1 0x01
00000511: PUSH1 0x01
00000513: PUSH1 0xa0
00000515: SHL
00000516: SUB
00000517: AND
00000518: CALLER
00000519: EQ
0000051a: DUP1
0000051b: PUSH2 0x052e
0000051e: JUMPI
0000051f: POP
00000520: PUSH1 0x02
00000522: SLOAD
00000523: PUSH1 0x01
00000525: PUSH1 0x01
00000527: PUSH1 0xa0
00000529: SHL
0000052a: SUB
0000052b: AND
0000052c: CALLER
0000052d: EQ
0000052e: JUMPDEST
0000052f: PUSH2 0x054a
00000532: JUMPI
00000533: PUSH1 0x40
00000535: MLOAD
00000536: PUSH3 0x461bcd
0000053a: PUSH1 0xe5
0000053c: SHL
0000053d: DUP2
0000053e: MSTORE
0000053f: PUSH1 0x04
00000541: ADD
00000542: PUSH2 0x048e
00000545: SWAP1
00000546: PUSH2 0x2059
00000549: JUMP
0000054a: JUMPDEST
0000054b: PUSH1 0x00
0000054d: SLOAD
0000054e: PUSH1 0x40
00000550: DUP1
00000551: MLOAD
00000552: PUSH1 0x01
00000554: PUSH1 0x01
00000556: PUSH1 0xa0
00000558: SHL
00000559: SUB
0000055a: SWAP3
0000055b: DUP4
0000055c: AND
0000055d: DUP2
0000055e: MSTORE
0000055f: SWAP2
00000560: DUP4
00000561: AND
00000562: PUSH1 0x20
00000564: DUP4
00000565: ADD
00000566: MSTORE
00000567: PUSH32 0x91c5e352a8a46928a880c2b1e32829f7577693def1a565042a475c588f237f53
00000588: SWAP2
00000589: ADD
0000058a: PUSH1 0x40
0000058c: MLOAD
0000058d: DUP1
0000058e: SWAP2
0000058f: SUB
00000590: SWAP1
00000591: LOG1
00000592: PUSH1 0x00
00000594: DUP1
00000595: SLOAD
00000596: PUSH1 0x01
00000598: PUSH1 0x01
0000059a: PUSH1 0xa0
0000059c: SHL
0000059d: SUB
0000059e: NOT
0000059f: AND
000005a0: PUSH1 0x01
000005a2: PUSH1 0x01
000005a4: PUSH1 0xa0
000005a6: SHL
000005a7: SUB
000005a8: SWAP3
000005a9: SWAP1
000005aa: SWAP3
000005ab: AND
000005ac: SWAP2
000005ad: SWAP1
000005ae: SWAP2
000005af: OR
000005b0: SWAP1
000005b1: SSTORE
000005b2: JUMP
000005b3: JUMPDEST
000005b4: PUSH1 0x00
000005b6: SLOAD
000005b7: PUSH1 0x01
000005b9: PUSH1 0x01
000005bb: PUSH1 0xa0
000005bd: SHL
000005be: SUB
000005bf: AND
000005c0: CALLER
000005c1: EQ
000005c2: DUP1
000005c3: PUSH2 0x05d6
000005c6: JUMPI
000005c7: POP
000005c8: PUSH1 0x02
000005ca: SLOAD
000005cb: PUSH1 0x01
000005cd: PUSH1 0x01
000005cf: PUSH1 0xa0
000005d1: SHL
000005d2: SUB
000005d3: AND
000005d4: CALLER
000005d5: EQ
000005d6: JUMPDEST
000005d7: PUSH2 0x05f2
000005da: JUMPI
000005db: PUSH1 0x40
000005dd: MLOAD
000005de: PUSH3 0x461bcd
000005e2: PUSH1 0xe5
000005e4: SHL
000005e5: DUP2
000005e6: MSTORE
000005e7: PUSH1 0x04
000005e9: ADD
000005ea: PUSH2 0x048e
000005ed: SWAP1
000005ee: PUSH2 0x2059
000005f1: JUMP
000005f2: JUMPDEST
000005f3: PUSH2 0x05fa
000005f6: PUSH2 0x1715
000005f9: JUMP
000005fa: JUMPDEST
000005fb: JUMP
000005fc: JUMPDEST
000005fd: PUSH2 0x0604
00000600: PUSH2 0x176f
00000603: JUMP
00000604: JUMPDEST
00000605: PUSH2 0x060c
00000608: PUSH2 0x17a7
0000060b: JUMP
0000060c: JUMPDEST
0000060d: PUSH2 0x0618
00000610: DUP3
00000611: DUP3
00000612: CALLER
00000613: CALLER
00000614: PUSH2 0x17d8
00000617: JUMP
00000618: JUMPDEST
00000619: PUSH2 0x062f
0000061c: PUSH1 0x01
0000061e: PUSH1 0x00
00000620: DUP1
00000621: MLOAD
00000622: PUSH1 0x20
00000624: PUSH2 0x22a6
00000627: DUP4
00000628: CODECOPY
00000629: DUP2
0000062a: MLOAD
0000062b: SWAP2
0000062c: MSTORE
0000062d: SSTORE
0000062e: JUMP
0000062f: JUMPDEST
00000630: POP
00000631: POP
00000632: JUMP
00000633: JUMPDEST
00000634: PUSH1 0x00
00000636: SLOAD
00000637: PUSH1 0x01
00000639: PUSH1 0x01
0000063b: PUSH1 0xa0
0000063d: SHL
0000063e: SUB
0000063f: AND
00000640: CALLER
00000641: EQ
00000642: DUP1
00000643: PUSH2 0x0656
00000646: JUMPI
00000647: POP
00000648: PUSH1 0x02
0000064a: SLOAD
0000064b: PUSH1 0x01
0000064d: PUSH1 0x01
0000064f: PUSH1 0xa0
00000651: SHL
00000652: SUB
00000653: AND
00000654: CALLER
00000655: EQ
00000656: JUMPDEST
00000657: PUSH2 0x0672
0000065a: JUMPI
0000065b: PUSH1 0x40
0000065d: MLOAD
0000065e: PUSH3 0x461bcd
00000662: PUSH1 0xe5
00000664: SHL
00000665: DUP2
00000666: MSTORE
00000667: PUSH1 0x04
00000669: ADD
0000066a: PUSH2 0x048e
0000066d: SWAP1
0000066e: PUSH2 0x2059
00000671: JUMP
00000672: JUMPDEST
00000673: PUSH2 0x067a
00000676: PUSH2 0x17a7
00000679: JUMP
0000067a: JUMPDEST
0000067b: PUSH1 0x01
0000067d: SLOAD
0000067e: PUSH1 0x01
00000680: PUSH1 0x01
00000682: PUSH1 0xa0
00000684: SHL
00000685: SUB
00000686: DUP3
00000687: DUP2
00000688: AND
00000689: SWAP2
0000068a: AND
0000068b: EQ
0000068c: PUSH2 0x06e9
0000068f: JUMPI
00000690: PUSH1 0x40
00000692: MLOAD
00000693: PUSH3 0x461bcd
00000697: PUSH1 0xe5
00000699: SHL
0000069a: DUP2
0000069b: MSTORE
0000069c: PUSH1 0x20
0000069e: PUSH1 0x04
000006a0: DUP3
000006a1: ADD
000006a2: MSTORE
000006a3: PUSH1 0x29
000006a5: PUSH1 0x24
000006a7: DUP3
000006a8: ADD
000006a9: MSTORE
000006aa: PUSH32 0x4d7270634465706f7369743a2063616e6e6f7420636c61696d206f6e20746869
000006cb: PUSH1 0x44
000006cd: DUP3
000006ce: ADD
000006cf: MSTORE
000006d0: PUSH9 0x732061646472657373
000006da: PUSH1 0xb8
000006dc: SHL
000006dd: PUSH1 0x64
000006df: DUP3
000006e0: ADD
000006e1: MSTORE
000006e2: PUSH1 0x84
000006e4: ADD
000006e5: PUSH2 0x048e
000006e8: JUMP
000006e9: JUMPDEST
000006ea: DUP4
000006eb: DUP3
000006ec: EQ
000006ed: PUSH2 0x0753
000006f0: JUMPI
000006f1: PUSH1 0x40
000006f3: MLOAD
000006f4: PUSH3 0x461bcd
000006f8: PUSH1 0xe5
000006fa: SHL
000006fb: DUP2
000006fc: MSTORE
000006fd: PUSH1 0x20
000006ff: PUSH1 0x04
00000701: DUP3
00000702: ADD
00000703: MSTORE
00000704: PUSH1 0x32
00000706: PUSH1 0x24
00000708: DUP3
00000709: ADD
0000070a: MSTORE
0000070b: PUSH32 0x4d7270634465706f7369743a206d616c666f726d656420646174612c20617272
0000072c: PUSH1 0x44
0000072e: DUP3
0000072f: ADD
00000730: MSTORE
00000731: PUSH18 0x0c2f2e640c8decae640dcdee840dac2e8c6d
00000744: PUSH1 0x73
00000746: SHL
00000747: PUSH1 0x64
00000749: DUP3
0000074a: ADD
0000074b: MSTORE
0000074c: PUSH1 0x84
0000074e: ADD
0000074f: PUSH2 0x048e
00000752: JUMP
00000753: JUMPDEST
00000754: PUSH1 0x00
00000756: JUMPDEST
00000757: DUP5
00000758: DUP2
00000759: LT
0000075a: ISZERO
0000075b: PUSH2 0x07b1
0000075e: JUMPI
0000075f: PUSH2 0x078d
00000762: DUP7
00000763: DUP7
00000764: DUP4
00000765: DUP2
00000766: DUP2
00000767: LT
00000768: PUSH2 0x0773
0000076b: JUMPI
0000076c: PUSH2 0x0773
0000076f: PUSH2 0x2121
00000772: JUMP
00000773: JUMPDEST
00000774: SWAP1
00000775: POP
00000776: PUSH1 0x20
00000778: MUL
00000779: ADD
0000077a: PUSH1 0x20
0000077c: DUP2
0000077d: ADD
0000077e: SWAP1
0000077f: PUSH2 0x0788
00000782: SWAP2
00000783: SWAP1
00000784: PUSH2 0x1ea5
00000787: JUMP
00000788: JUMPDEST
00000789: PUSH2 0x1918
0000078c: JUMP
0000078d: JUMPDEST
0000078e: PUSH2 0x07a9
00000791: JUMPI
00000792: PUSH1 0x40
00000794: MLOAD
00000795: PUSH3 0x461bcd
00000799: PUSH1 0xe5
0000079b: SHL
0000079c: DUP2
0000079d: MSTORE
0000079e: PUSH1 0x04
000007a0: ADD
000007a1: PUSH2 0x048e
000007a4: SWAP1
000007a5: PUSH2 0x20a2
000007a8: JUMP
000007a9: JUMPDEST
000007aa: PUSH1 0x01
000007ac: ADD
000007ad: PUSH2 0x0756
000007b0: JUMP
000007b1: JUMPDEST
000007b2: POP
000007b3: PUSH1 0x00
000007b5: JUMPDEST
000007b6: DUP5
000007b7: DUP2
000007b8: LT
000007b9: ISZERO
000007ba: PUSH2 0x0906
000007bd: JUMPI
000007be: DUP4
000007bf: DUP4
000007c0: DUP3
000007c1: DUP2
000007c2: DUP2
000007c3: LT
000007c4: PUSH2 0x07cf
000007c7: JUMPI
000007c8: PUSH2 0x07cf
000007cb: PUSH2 0x2121
000007ce: JUMP
000007cf: JUMPDEST
000007d0: SWAP1
000007d1: POP
000007d2: PUSH1 0x20
000007d4: MUL
000007d5: ADD
000007d6: CALLDATALOAD
000007d7: DUP7
000007d8: DUP7
000007d9: DUP4
000007da: DUP2
000007db: DUP2
000007dc: LT
000007dd: PUSH2 0x07e8
000007e0: JUMPI
000007e1: PUSH2 0x07e8
000007e4: PUSH2 0x2121
000007e7: JUMP
000007e8: JUMPDEST
000007e9: SWAP1
000007ea: POP
000007eb: PUSH1 0x20
000007ed: MUL
000007ee: ADD
000007ef: PUSH1 0x20
000007f1: DUP2
000007f2: ADD
000007f3: SWAP1
000007f4: PUSH2 0x07fd
000007f7: SWAP2
000007f8: SWAP1
000007f9: PUSH2 0x1ea5
000007fc: JUMP
000007fd: JUMPDEST
000007fe: PUSH1 0x40
00000800: MLOAD
00000801: PUSH4 0x70a08231
00000806: PUSH1 0xe0
00000808: SHL
00000809: DUP2
0000080a: MSTORE
0000080b: ADDRESS
0000080c: PUSH1 0x04
0000080e: DUP3
0000080f: ADD
00000810: MSTORE
00000811: PUSH1 0x01
00000813: PUSH1 0x01
00000815: PUSH1 0xa0
00000817: SHL
00000818: SUB
00000819: SWAP2
0000081a: SWAP1
0000081b: SWAP2
0000081c: AND
0000081d: SWAP1
0000081e: PUSH4 0x70a08231
00000823: SWAP1
00000824: PUSH1 0x24
00000826: ADD
00000827: PUSH1 0x20
00000829: PUSH1 0x40
0000082b: MLOAD
0000082c: DUP1
0000082d: DUP4
0000082e: SUB
0000082f: DUP2
00000830: DUP7
00000831: GAS
00000832: STATICCALL
00000833: ISZERO
00000834: DUP1
00000835: ISZERO
00000836: PUSH2 0x0843
00000839: JUMPI
0000083a: RETURNDATASIZE
0000083b: PUSH1 0x00
0000083d: DUP1
0000083e: RETURNDATACOPY
0000083f: RETURNDATASIZE
00000840: PUSH1 0x00
00000842: REVERT
00000843: JUMPDEST
00000844: POP
00000845: POP
00000846: POP
00000847: POP
00000848: PUSH1 0x40
0000084a: MLOAD
0000084b: RETURNDATASIZE
0000084c: PUSH1 0x1f
0000084e: NOT
0000084f: PUSH1 0x1f
00000851: DUP3
00000852: ADD
00000853: AND
00000854: DUP3
00000855: ADD
00000856: DUP1
00000857: PUSH1 0x40
00000859: MSTORE
0000085a: POP
0000085b: DUP2
0000085c: ADD
0000085d: SWAP1
0000085e: PUSH2 0x0867
00000861: SWAP2
00000862: SWAP1
00000863: PUSH2 0x2137
00000866: JUMP
00000867: JUMPDEST
00000868: LT
00000869: ISZERO
0000086a: PUSH2 0x08b5
0000086d: JUMPI
0000086e: PUSH1 0x40
00000870: MLOAD
00000871: PUSH3 0x461bcd
00000875: PUSH1 0xe5
00000877: SHL
00000878: DUP2
00000879: MSTORE
0000087a: PUSH1 0x20
0000087c: PUSH1 0x04
0000087e: DUP3
0000087f: ADD
00000880: MSTORE
00000881: PUSH1 0x19
00000883: PUSH1 0x24
00000885: DUP3
00000886: ADD
00000887: MSTORE
00000888: PUSH32 0x4d7270634465706f7369743a2077726f6e6720616d6f756e7400000000000000
000008a9: PUSH1 0x44
000008ab: DUP3
000008ac: ADD
000008ad: MSTORE
000008ae: PUSH1 0x64
000008b0: ADD
000008b1: PUSH2 0x048e
000008b4: JUMP
000008b5: JUMPDEST
000008b6: PUSH2 0x08fe
000008b9: DUP7
000008ba: DUP7
000008bb: DUP4
000008bc: DUP2
000008bd: DUP2
000008be: LT
000008bf: PUSH2 0x08ca
000008c2: JUMPI
000008c3: PUSH2 0x08ca
000008c6: PUSH2 0x2121
000008c9: JUMP
000008ca: JUMPDEST
000008cb: SWAP1
000008cc: POP
000008cd: PUSH1 0x20
000008cf: MUL
000008d0: ADD
000008d1: PUSH1 0x20
000008d3: DUP2
000008d4: ADD
000008d5: SWAP1
000008d6: PUSH2 0x08df
000008d9: SWAP2
000008da: SWAP1
000008db: PUSH2 0x1ea5
000008de: JUMP
000008df: JUMPDEST
000008e0: DUP4
000008e1: DUP7
000008e2: DUP7
000008e3: DUP6
000008e4: DUP2
000008e5: DUP2
000008e6: LT
000008e7: PUSH2 0x08f2
000008ea: JUMPI
000008eb: PUSH2 0x08f2
000008ee: PUSH2 0x2121
000008f1: JUMP
000008f2: JUMPDEST
000008f3: SWAP1
000008f4: POP
000008f5: PUSH1 0x20
000008f7: MUL
000008f8: ADD
000008f9: CALLDATALOAD
000008fa: PUSH2 0x195b
000008fd: JUMP
000008fe: JUMPDEST
000008ff: PUSH1 0x01
00000901: ADD
00000902: PUSH2 0x07b5
00000905: JUMP
00000906: JUMPDEST
00000907: POP
00000908: DUP1
00000909: PUSH1 0x01
0000090b: PUSH1 0x01
0000090d: PUSH1 0xa0
0000090f: SHL
00000910: SUB
00000911: AND
00000912: PUSH32 0xbe524971d348b8b7715db769df0ba20b5e69acc429b30c959245ed5c74151732
00000933: DUP7
00000934: DUP7
00000935: DUP7
00000936: DUP7
00000937: PUSH1 0x40
00000939: MLOAD
0000093a: PUSH2 0x0946
0000093d: SWAP5
0000093e: SWAP4
0000093f: SWAP3
00000940: SWAP2
00000941: SWAP1
00000942: PUSH2 0x2150
00000945: JUMP
00000946: JUMPDEST
00000947: PUSH1 0x40
00000949: MLOAD
0000094a: DUP1
0000094b: SWAP2
0000094c: SUB
0000094d: SWAP1
0000094e: LOG2
0000094f: POP
00000950: POP
00000951: POP
00000952: POP
00000953: POP
00000954: JUMP
00000955: JUMPDEST
00000956: PUSH2 0x095d
00000959: PUSH2 0x19ba
0000095c: JUMP
0000095d: JUMPDEST
0000095e: PUSH2 0x05fa
00000961: PUSH1 0x00
00000963: PUSH2 0x1a15
00000966: JUMP
00000967: JUMPDEST
00000968: PUSH1 0x00
0000096a: SLOAD
0000096b: PUSH1 0x01
0000096d: PUSH1 0x01
0000096f: PUSH1 0xa0
00000971: SHL
00000972: SUB
00000973: AND
00000974: CALLER
00000975: EQ
00000976: DUP1
00000977: PUSH2 0x098a
0000097a: JUMPI
0000097b: POP
0000097c: PUSH1 0x02
0000097e: SLOAD
0000097f: PUSH1 0x01
00000981: PUSH1 0x01
00000983: PUSH1 0xa0
00000985: SHL
00000986: SUB
00000987: AND
00000988: CALLER
00000989: EQ
0000098a: JUMPDEST
0000098b: PUSH2 0x09a6
0000098e: JUMPI
0000098f: PUSH1 0x40
00000991: MLOAD
00000992: PUSH3 0x461bcd
00000996: PUSH1 0xe5
00000998: SHL
00000999: DUP2
0000099a: MSTORE
0000099b: PUSH1 0x04
0000099d: ADD
0000099e: PUSH2 0x048e
000009a1: SWAP1
000009a2: PUSH2 0x2059
000009a5: JUMP
000009a6: JUMPDEST
000009a7: PUSH2 0x05fa
000009aa: PUSH2 0x1a86
000009ad: JUMP
000009ae: JUMPDEST
000009af: PUSH1 0x02
000009b1: SLOAD
000009b2: PUSH1 0x01
000009b4: PUSH1 0x01
000009b6: PUSH1 0xa0
000009b8: SHL
000009b9: SUB
000009ba: AND
000009bb: CALLER
000009bc: EQ
000009bd: PUSH2 0x0a08
000009c0: JUMPI
000009c1: PUSH1 0x40
000009c3: MLOAD
000009c4: PUSH3 0x461bcd
000009c8: PUSH1 0xe5
000009ca: SHL
000009cb: DUP2
000009cc: MSTORE
000009cd: PUSH1 0x20
000009cf: PUSH1 0x04
000009d1: DUP3
000009d2: ADD
000009d3: MSTORE
000009d4: PUSH1 0x1c
000009d6: PUSH1 0x24
000009d8: DUP3
000009d9: ADD
000009da: MSTORE
000009db: PUSH32 0x4d7270634465706f7369743a206f6e6c7920676f7665726e616e636500000000
000009fc: PUSH1 0x44
000009fe: DUP3
000009ff: ADD
00000a00: MSTORE
00000a01: PUSH1 0x64
00000a03: ADD
00000a04: PUSH2 0x048e
00000a07: JUMP
00000a08: JUMPDEST
00000a09: PUSH1 0x02
00000a0b: SLOAD
00000a0c: PUSH1 0x40
00000a0e: DUP1
00000a0f: MLOAD
00000a10: PUSH1 0x01
00000a12: PUSH1 0x01
00000a14: PUSH1 0xa0
00000a16: SHL
00000a17: SUB
00000a18: SWAP3
00000a19: DUP4
00000a1a: AND
00000a1b: DUP2
00000a1c: MSTORE
00000a1d: SWAP2
00000a1e: DUP4
00000a1f: AND
00000a20: PUSH1 0x20
00000a22: DUP4
00000a23: ADD
00000a24: MSTORE
00000a25: PUSH32 0x434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d
00000a46: SWAP2
00000a47: ADD
00000a48: PUSH1 0x40
00000a4a: MLOAD
00000a4b: DUP1
00000a4c: SWAP2
00000a4d: SUB
00000a4e: SWAP1
00000a4f: LOG1
00000a50: PUSH1 0x02
00000a52: DUP1
00000a53: SLOAD
00000a54: PUSH1 0x01
00000a56: PUSH1 0x01
00000a58: PUSH1 0xa0
00000a5a: SHL
00000a5b: SUB
00000a5c: NOT
00000a5d: AND
00000a5e: PUSH1 0x01
00000a60: PUSH1 0x01
00000a62: PUSH1 0xa0
00000a64: SHL
00000a65: SUB
00000a66: SWAP3
00000a67: SWAP1
00000a68: SWAP3
00000a69: AND
00000a6a: SWAP2
00000a6b: SWAP1
00000a6c: SWAP2
00000a6d: OR
00000a6e: SWAP1
00000a6f: SSTORE
00000a70: JUMP
00000a71: JUMPDEST
00000a72: PUSH1 0x01
00000a74: SLOAD
00000a75: PUSH1 0x01
00000a77: PUSH1 0x01
00000a79: PUSH1 0xa0
00000a7b: SHL
00000a7c: SUB
00000a7d: AND
00000a7e: CALLER
00000a7f: EQ
00000a80: DUP1
00000a81: PUSH2 0x0a94
00000a84: JUMPI
00000a85: POP
00000a86: PUSH1 0x02
00000a88: SLOAD
00000a89: PUSH1 0x01
00000a8b: PUSH1 0x01
00000a8d: PUSH1 0xa0
00000a8f: SHL
00000a90: SUB
00000a91: AND
00000a92: CALLER
00000a93: EQ
00000a94: JUMPDEST
00000a95: PUSH2 0x0af1
00000a98: JUMPI
00000a99: PUSH1 0x40
00000a9b: MLOAD
00000a9c: PUSH3 0x461bcd
00000aa0: PUSH1 0xe5
00000aa2: SHL
00000aa3: DUP2
00000aa4: MSTORE
00000aa5: PUSH1 0x20
00000aa7: PUSH1 0x04
00000aa9: DUP3
00000aaa: ADD
00000aab: MSTORE
00000aac: PUSH1 0x28
00000aae: PUSH1 0x24
00000ab0: DUP3
00000ab1: ADD
00000ab2: MSTORE
00000ab3: PUSH32 0x4d7270634465706f7369743a206f6e6c79207472656173757279206f7220676f
00000ad4: PUSH1 0x44
00000ad6: DUP3
00000ad7: ADD
00000ad8: MSTORE
00000ad9: PUSH8 0x7665726e616e6365
00000ae2: PUSH1 0xc0
00000ae4: SHL
00000ae5: PUSH1 0x64
00000ae7: DUP3
00000ae8: ADD
00000ae9: MSTORE
00000aea: PUSH1 0x84
00000aec: ADD
00000aed: PUSH2 0x048e
00000af0: JUMP
00000af1: JUMPDEST
00000af2: PUSH1 0x01
00000af4: SLOAD
00000af5: PUSH1 0x40
00000af7: DUP1
00000af8: MLOAD
00000af9: PUSH1 0x01
00000afb: PUSH1 0x01
00000afd: PUSH1 0xa0
00000aff: SHL
00000b00: SUB
00000b01: SWAP3
00000b02: DUP4
00000b03: AND
00000b04: DUP2
00000b05: MSTORE
00000b06: SWAP2
00000b07: DUP4
00000b08: AND
00000b09: PUSH1 0x20
00000b0b: DUP4
00000b0c: ADD
00000b0d: MSTORE
00000b0e: PUSH32 0x4ab5be82436d353e61ca18726e984e561f5c1cc7c6d38b29d2553c790434705a
00000b2f: SWAP2
00000b30: ADD
00000b31: PUSH1 0x40
00000b33: MLOAD
00000b34: DUP1
00000b35: SWAP2
00000b36: SUB
00000b37: SWAP1
00000b38: LOG1
00000b39: PUSH1 0x01
00000b3b: DUP1
00000b3c: SLOAD
00000b3d: PUSH1 0x01
00000b3f: PUSH1 0x01
00000b41: PUSH1 0xa0
00000b43: SHL
00000b44: SUB
00000b45: NOT
00000b46: AND
00000b47: PUSH1 0x01
00000b49: PUSH1 0x01
00000b4b: PUSH1 0xa0
00000b4d: SHL
00000b4e: SUB
00000b4f: SWAP3
00000b50: SWAP1
00000b51: SWAP3
00000b52: AND
00000b53: SWAP2
00000b54: SWAP1
00000b55: SWAP2
00000b56: OR
00000b57: SWAP1
00000b58: SSTORE
00000b59: JUMP
00000b5a: JUMPDEST
00000b5b: PUSH1 0x00
00000b5d: SLOAD
00000b5e: PUSH1 0x01
00000b60: PUSH1 0x01
00000b62: PUSH1 0xa0
00000b64: SHL
00000b65: SUB
00000b66: AND
00000b67: CALLER
00000b68: EQ
00000b69: DUP1
00000b6a: PUSH2 0x0b7d
00000b6d: JUMPI
00000b6e: POP
00000b6f: PUSH1 0x02
00000b71: SLOAD
00000b72: PUSH1 0x01
00000b74: PUSH1 0x01
00000b76: PUSH1 0xa0
00000b78: SHL
00000b79: SUB
00000b7a: AND
00000b7b: CALLER
00000b7c: EQ
00000b7d: JUMPDEST
00000b7e: PUSH2 0x0b99
00000b81: JUMPI
00000b82: PUSH1 0x40
00000b84: MLOAD
00000b85: PUSH3 0x461bcd
00000b89: PUSH1 0xe5
00000b8b: SHL
00000b8c: DUP2
00000b8d: MSTORE
00000b8e: PUSH1 0x04
00000b90: ADD
00000b91: PUSH2 0x048e
00000b94: SWAP1
00000b95: PUSH2 0x2059
00000b98: JUMP
00000b99: JUMPDEST
00000b9a: PUSH2 0x0ba2
00000b9d: DUP2
00000b9e: PUSH2 0x16b6
00000ba1: JUMP
00000ba2: JUMPDEST
00000ba3: PUSH2 0x0bbe
00000ba6: JUMPI
00000ba7: PUSH1 0x40
00000ba9: MLOAD
00000baa: PUSH3 0x461bcd
00000bae: PUSH1 0xe5
00000bb0: SHL
00000bb1: DUP2
00000bb2: MSTORE
00000bb3: PUSH1 0x04
00000bb5: ADD
00000bb6: PUSH2 0x048e
00000bb9: SWAP1
00000bba: PUSH2 0x20a2
00000bbd: JUMP
00000bbe: JUMPDEST
00000bbf: PUSH1 0x01
00000bc1: PUSH1 0x01
00000bc3: PUSH1 0xa0
00000bc5: SHL
00000bc6: SUB
00000bc7: DUP2
00000bc8: AND
00000bc9: PUSH1 0x00
00000bcb: SWAP1
00000bcc: DUP2
00000bcd: MSTORE
00000bce: PUSH1 0x04
00000bd0: PUSH1 0x20
00000bd2: MSTORE
00000bd3: PUSH1 0x40
00000bd5: SWAP1
00000bd6: DUP2
00000bd7: SWAP1
00000bd8: KECCAK256
00000bd9: PUSH1 0x01
00000bdb: SWAP1
00000bdc: DUP2
00000bdd: ADD
00000bde: DUP1
00000bdf: SLOAD
00000be0: PUSH1 0xff
00000be2: NOT
00000be3: AND
00000be4: SWAP1
00000be5: SWAP2
00000be6: OR
00000be7: SWAP1
00000be8: SSTORE
00000be9: MLOAD
00000bea: PUSH1 0x00
00000bec: DUP1
00000bed: MLOAD
00000bee: PUSH1 0x20
00000bf0: PUSH2 0x2266
00000bf3: DUP4
00000bf4: CODECOPY
00000bf5: DUP2
00000bf6: MLOAD
00000bf7: SWAP2
00000bf8: MSTORE
00000bf9: SWAP1
00000bfa: PUSH2 0x0500
00000bfd: SWAP1
00000bfe: DUP4
00000bff: SWAP1
00000c00: PUSH1 0x03
00000c02: SWAP1
00000c03: PUSH2 0x20e6
00000c06: JUMP
00000c07: JUMPDEST
00000c08: PUSH1 0x00
00000c0a: SLOAD
00000c0b: PUSH1 0x01
00000c0d: PUSH1 0x01
00000c0f: PUSH1 0xa0
00000c11: SHL
00000c12: SUB
00000c13: AND
00000c14: CALLER
00000c15: EQ
00000c16: DUP1
00000c17: PUSH2 0x0c2a
00000c1a: JUMPI
00000c1b: POP
00000c1c: PUSH1 0x02
00000c1e: SLOAD
00000c1f: PUSH1 0x01
00000c21: PUSH1 0x01
00000c23: PUSH1 0xa0
00000c25: SHL
00000c26: SUB
00000c27: AND
00000c28: CALLER
00000c29: EQ
00000c2a: JUMPDEST
00000c2b: PUSH2 0x0c46
00000c2e: JUMPI
00000c2f: PUSH1 0x40
00000c31: MLOAD
00000c32: PUSH3 0x461bcd
00000c36: PUSH1 0xe5
00000c38: SHL
00000c39: DUP2
00000c3a: MSTORE
00000c3b: PUSH1 0x04
00000c3d: ADD
00000c3e: PUSH2 0x048e
00000c41: SWAP1
00000c42: PUSH2 0x2059
00000c45: JUMP
00000c46: JUMPDEST
00000c47: PUSH1 0x01
00000c49: PUSH1 0x01
00000c4b: PUSH1 0xa0
00000c4d: SHL
00000c4e: SUB
00000c4f: DUP4
00000c50: AND
00000c51: PUSH2 0x0c9c
00000c54: JUMPI
00000c55: PUSH1 0x40
00000c57: MLOAD
00000c58: PUSH3 0x461bcd
00000c5c: PUSH1 0xe5
00000c5e: SHL
00000c5f: DUP2
00000c60: MSTORE
00000c61: PUSH1 0x20
00000c63: PUSH1 0x04
00000c65: DUP3
00000c66: ADD
00000c67: DUP2
00000c68: SWAP1
00000c69: MSTORE
00000c6a: PUSH1 0x24
00000c6c: DUP3
00000c6d: ADD
00000c6e: MSTORE
00000c6f: PUSH32 0x4d7270634465706f7369743a2077726f6e6720746f6b656e2061646472657373
00000c90: PUSH1 0x44
00000c92: DUP3
00000c93: ADD
00000c94: MSTORE
00000c95: PUSH1 0x64
00000c97: ADD
00000c98: PUSH2 0x048e
00000c9b: JUMP
00000c9c: JUMPDEST
00000c9d: PUSH1 0x00
00000c9f: DUP3
00000ca0: GT
00000ca1: PUSH2 0x0cec
00000ca4: JUMPI
00000ca5: PUSH1 0x40
00000ca7: MLOAD
00000ca8: PUSH3 0x461bcd
00000cac: PUSH1 0xe5
00000cae: SHL
00000caf: DUP2
00000cb0: MSTORE
00000cb1: PUSH1 0x20
00000cb3: PUSH1 0x04
00000cb5: DUP3
00000cb6: ADD
00000cb7: MSTORE
00000cb8: PUSH1 0x1d
00000cba: PUSH1 0x24
00000cbc: DUP3
00000cbd: ADD
00000cbe: MSTORE
00000cbf: PUSH32 0x4d7270634465706f7369743a2077726f6e67206d696e20616d6f756e74000000
00000ce0: PUSH1 0x44
00000ce2: DUP3
00000ce3: ADD
00000ce4: MSTORE
00000ce5: PUSH1 0x64
00000ce7: ADD
00000ce8: PUSH2 0x048e
00000ceb: JUMP
00000cec: JUMPDEST
00000ced: PUSH1 0x40
00000cef: DUP1
00000cf0: MLOAD
00000cf1: DUP1
00000cf2: DUP3
00000cf3: ADD
00000cf4: DUP3
00000cf5: MSTORE
00000cf6: DUP4
00000cf7: DUP2
00000cf8: MSTORE
00000cf9: DUP3
00000cfa: ISZERO
00000cfb: ISZERO
00000cfc: PUSH1 0x20
00000cfe: DUP1
00000cff: DUP4
00000d00: ADD
00000d01: SWAP2
00000d02: DUP3
00000d03: MSTORE
00000d04: PUSH1 0x01
00000d06: PUSH1 0x01
00000d08: PUSH1 0xa0
00000d0a: SHL
00000d0b: SUB
00000d0c: DUP8
00000d0d: AND
00000d0e: PUSH1 0x00
00000d10: SWAP1
00000d11: DUP2
00000d12: MSTORE
00000d13: PUSH1 0x04
00000d15: SWAP1
00000d16: SWAP2
00000d17: MSTORE
00000d18: SWAP3
00000d19: SWAP1
00000d1a: SWAP3
00000d1b: KECCAK256
00000d1c: SWAP1
00000d1d: MLOAD
00000d1e: DUP2
00000d1f: SSTORE
00000d20: SWAP1
00000d21: MLOAD
00000d22: PUSH1 0x01
00000d24: SWAP1
00000d25: SWAP2
00000d26: ADD
00000d27: DUP1
00000d28: SLOAD
00000d29: PUSH1 0xff
00000d2b: NOT
00000d2c: AND
00000d2d: SWAP2
00000d2e: ISZERO
00000d2f: ISZERO
00000d30: SWAP2
00000d31: SWAP1
00000d32: SWAP2
00000d33: OR
00000d34: SWAP1
00000d35: SSTORE
00000d36: PUSH2 0x0d3e
00000d39: DUP4
00000d3a: PUSH2 0x16b6
00000d3d: JUMP
00000d3e: JUMPDEST
00000d3f: ISZERO
00000d40: PUSH2 0x0d70
00000d43: JUMPI
00000d44: PUSH1 0x00
00000d46: DUP1
00000d47: MLOAD
00000d48: PUSH1 0x20
00000d4a: PUSH2 0x2266
00000d4d: DUP4
00000d4e: CODECOPY
00000d4f: DUP2
00000d50: MLOAD
00000d51: SWAP2
00000d52: MSTORE
00000d53: DUP4
00000d54: PUSH1 0x01
00000d56: PUSH1 0x40
00000d58: MLOAD
00000d59: PUSH2 0x0d63
00000d5c: SWAP3
00000d5d: SWAP2
00000d5e: SWAP1
00000d5f: PUSH2 0x20e6
00000d62: JUMP
00000d63: JUMPDEST
00000d64: PUSH1 0x40
00000d66: MLOAD
00000d67: DUP1
00000d68: SWAP2
00000d69: SUB
00000d6a: SWAP1
00000d6b: LOG1
00000d6c: POP
00000d6d: POP
00000d6e: POP
00000d6f: JUMP
00000d70: JUMPDEST
00000d71: PUSH1 0x03
00000d73: DUP1
00000d74: SLOAD
00000d75: PUSH1 0x01
00000d77: DUP2
00000d78: ADD
00000d79: DUP3
00000d7a: SSTORE
00000d7b: PUSH1 0x00
00000d7d: SWAP2
00000d7e: DUP3
00000d7f: MSTORE
00000d80: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b
00000da1: ADD
00000da2: DUP1
00000da3: SLOAD
00000da4: PUSH1 0x01
00000da6: PUSH1 0x01
00000da8: PUSH1 0xa0
00000daa: SHL
00000dab: SUB
00000dac: NOT
00000dad: AND
00000dae: PUSH1 0x01
00000db0: PUSH1 0x01
00000db2: PUSH1 0xa0
00000db4: SHL
00000db5: SUB
00000db6: DUP7
00000db7: AND
00000db8: OR
00000db9: SWAP1
00000dba: SSTORE
00000dbb: PUSH1 0x40
00000dbd: MLOAD
00000dbe: PUSH1 0x00
00000dc0: DUP1
00000dc1: MLOAD
00000dc2: PUSH1 0x20
00000dc4: PUSH2 0x2266
00000dc7: DUP4
00000dc8: CODECOPY
00000dc9: DUP2
00000dca: MLOAD
00000dcb: SWAP2
00000dcc: MSTORE
00000dcd: SWAP2
00000dce: PUSH2 0x0d63
00000dd1: SWAP2
00000dd2: DUP7
00000dd3: SWAP2
00000dd4: SWAP1
00000dd5: PUSH2 0x20e6
00000dd8: JUMP
00000dd9: JUMPDEST
00000dda: POP
00000ddb: POP
00000ddc: POP
00000ddd: JUMP
00000dde: JUMPDEST
00000ddf: PUSH1 0x03
00000de1: SLOAD
00000de2: PUSH1 0x60
00000de4: SWAP1
00000de5: PUSH1 0x00
00000de7: SWAP1
00000de8: PUSH8 0xffffffffffffffff
00000df1: DUP2
00000df2: GT
00000df3: ISZERO
00000df4: PUSH2 0x0dff
00000df7: JUMPI
00000df8: PUSH2 0x0dff
00000dfb: PUSH2 0x21cc
00000dfe: JUMP
00000dff: JUMPDEST
00000e00: PUSH1 0x40
00000e02: MLOAD
00000e03: SWAP1
00000e04: DUP1
00000e05: DUP3
00000e06: MSTORE
00000e07: DUP1
00000e08: PUSH1 0x20
00000e0a: MUL
00000e0b: PUSH1 0x20
00000e0d: ADD
00000e0e: DUP3
00000e0f: ADD
00000e10: PUSH1 0x40
00000e12: MSTORE
00000e13: DUP1
00000e14: ISZERO
00000e15: PUSH2 0x0e4a
00000e18: JUMPI
00000e19: DUP2
00000e1a: PUSH1 0x20
00000e1c: ADD
00000e1d: JUMPDEST
00000e1e: PUSH1 0x40
00000e20: DUP1
00000e21: MLOAD
00000e22: PUSH1 0x60
00000e24: DUP2
00000e25: ADD
00000e26: DUP3
00000e27: MSTORE
00000e28: PUSH1 0x00
00000e2a: DUP1
00000e2b: DUP3
00000e2c: MSTORE
00000e2d: PUSH1 0x20
00000e2f: DUP1
00000e30: DUP4
00000e31: ADD
00000e32: DUP3
00000e33: SWAP1
00000e34: MSTORE
00000e35: SWAP3
00000e36: DUP3
00000e37: ADD
00000e38: MSTORE
00000e39: DUP3
00000e3a: MSTORE
00000e3b: PUSH1 0x00
00000e3d: NOT
00000e3e: SWAP1
00000e3f: SWAP3
00000e40: ADD
00000e41: SWAP2
00000e42: ADD
00000e43: DUP2
00000e44: PUSH2 0x0e1d
00000e47: JUMPI
00000e48: SWAP1
00000e49: POP
00000e4a: JUMPDEST
00000e4b: POP
00000e4c: SWAP1
00000e4d: POP
00000e4e: PUSH1 0x00
00000e50: JUMPDEST
00000e51: PUSH1 0x03
00000e53: SLOAD
00000e54: DUP2
00000e55: LT
00000e56: ISZERO
00000e57: PUSH2 0x0f46
00000e5a: JUMPI
00000e5b: PUSH1 0x00
00000e5d: PUSH1 0x03
00000e5f: DUP3
00000e60: DUP2
00000e61: SLOAD
00000e62: DUP2
00000e63: LT
00000e64: PUSH2 0x0e6f
00000e67: JUMPI
00000e68: PUSH2 0x0e6f
00000e6b: PUSH2 0x2121
00000e6e: JUMP
00000e6f: JUMPDEST
00000e70: SWAP1
00000e71: PUSH1 0x00
00000e73: MSTORE
00000e74: PUSH1 0x20
00000e76: PUSH1 0x00
00000e78: KECCAK256
00000e79: ADD
00000e7a: PUSH1 0x00
00000e7c: SWAP1
00000e7d: SLOAD
00000e7e: SWAP1
00000e7f: PUSH2 0x0100
00000e82: EXP
00000e83: SWAP1
00000e84: DIV
00000e85: PUSH1 0x01
00000e87: PUSH1 0x01
00000e89: PUSH1 0xa0
00000e8b: SHL
00000e8c: SUB
00000e8d: AND
00000e8e: SWAP1
00000e8f: POP
00000e90: DUP1
00000e91: DUP4
00000e92: DUP4
00000e93: DUP2
00000e94: MLOAD
00000e95: DUP2
00000e96: LT
00000e97: PUSH2 0x0ea2
00000e9a: JUMPI
00000e9b: PUSH2 0x0ea2
00000e9e: PUSH2 0x2121
00000ea1: JUMP
00000ea2: JUMPDEST
00000ea3: PUSH1 0x20
00000ea5: SWAP1
00000ea6: DUP2
00000ea7: MUL
00000ea8: SWAP2
00000ea9: SWAP1
00000eaa: SWAP2
00000eab: ADD
00000eac: DUP2
00000ead: ADD
00000eae: MLOAD
00000eaf: PUSH1 0x01
00000eb1: PUSH1 0x01
00000eb3: PUSH1 0xa0
00000eb5: SHL
00000eb6: SUB
00000eb7: SWAP3
00000eb8: DUP4
00000eb9: AND
00000eba: SWAP1
00000ebb: MSTORE
00000ebc: SWAP1
00000ebd: DUP3
00000ebe: AND
00000ebf: PUSH1 0x00
00000ec1: SWAP1
00000ec2: DUP2
00000ec3: MSTORE
00000ec4: PUSH1 0x04
00000ec6: SWAP1
00000ec7: SWAP2
00000ec8: MSTORE
00000ec9: PUSH1 0x40
00000ecb: SWAP1
00000ecc: KECCAK256
00000ecd: SLOAD
00000ece: DUP4
00000ecf: MLOAD
00000ed0: DUP5
00000ed1: SWAP1
00000ed2: DUP5
00000ed3: SWAP1
00000ed4: DUP2
00000ed5: LT
00000ed6: PUSH2 0x0ee1
00000ed9: JUMPI
00000eda: PUSH2 0x0ee1
00000edd: PUSH2 0x2121
00000ee0: JUMP
00000ee1: JUMPDEST
00000ee2: PUSH1 0x20
00000ee4: SWAP1
00000ee5: DUP2
00000ee6: MUL
00000ee7: SWAP2
00000ee8: SWAP1
00000ee9: SWAP2
00000eea: ADD
00000eeb: DUP2
00000eec: ADD
00000eed: MLOAD
00000eee: DUP2
00000eef: ADD
00000ef0: SWAP2
00000ef1: SWAP1
00000ef2: SWAP2
00000ef3: MSTORE
00000ef4: PUSH1 0x01
00000ef6: PUSH1 0x01
00000ef8: PUSH1 0xa0
00000efa: SHL
00000efb: SUB
00000efc: DUP3
00000efd: AND
00000efe: PUSH1 0x00
00000f00: SWAP1
00000f01: DUP2
00000f02: MSTORE
00000f03: PUSH1 0x04
00000f05: SWAP1
00000f06: SWAP2
00000f07: MSTORE
00000f08: PUSH1 0x40
00000f0a: SWAP1
00000f0b: KECCAK256
00000f0c: PUSH1 0x01
00000f0e: ADD
00000f0f: SLOAD
00000f10: DUP4
00000f11: MLOAD
00000f12: PUSH1 0xff
00000f14: SWAP1
00000f15: SWAP2
00000f16: AND
00000f17: SWAP1
00000f18: DUP5
00000f19: SWAP1
00000f1a: DUP5
00000f1b: SWAP1
00000f1c: DUP2
00000f1d: LT
00000f1e: PUSH2 0x0f29
00000f21: JUMPI
00000f22: PUSH2 0x0f29
00000f25: PUSH2 0x2121
00000f28: JUMP
00000f29: JUMPDEST
00000f2a: PUSH1 0x20
00000f2c: SWAP1
00000f2d: DUP2
00000f2e: MUL
00000f2f: SWAP2
00000f30: SWAP1
00000f31: SWAP2
00000f32: ADD
00000f33: ADD
00000f34: MLOAD
00000f35: SWAP1
00000f36: ISZERO
00000f37: ISZERO
00000f38: PUSH1 0x40
00000f3a: SWAP1
00000f3b: SWAP2
00000f3c: ADD
00000f3d: MSTORE
00000f3e: POP
00000f3f: PUSH1 0x01
00000f41: ADD
00000f42: PUSH2 0x0e50
00000f45: JUMP
00000f46: JUMPDEST
00000f47: POP
00000f48: SWAP2
00000f49: SWAP1
00000f4a: POP
00000f4b: JUMP
00000f4c: JUMPDEST
00000f4d: PUSH2 0x0f54
00000f50: PUSH2 0x176f
00000f53: JUMP
00000f54: JUMPDEST
00000f55: PUSH2 0x0f5c
00000f58: PUSH2 0x17a7
00000f5b: JUMP
00000f5c: JUMPDEST
00000f5d: PUSH2 0x0f68
00000f60: DUP4
00000f61: DUP4
00000f62: CALLER
00000f63: DUP5
00000f64: PUSH2 0x17d8
00000f67: JUMP
00000f68: JUMPDEST
00000f69: PUSH2 0x0dd9
00000f6c: PUSH1 0x01
00000f6e: PUSH1 0x00
00000f70: DUP1
00000f71: MLOAD
00000f72: PUSH1 0x20
00000f74: PUSH2 0x22a6
00000f77: DUP4
00000f78: CODECOPY
00000f79: DUP2
00000f7a: MLOAD
00000f7b: SWAP2
00000f7c: MSTORE
00000f7d: SSTORE
00000f7e: JUMP
00000f7f: JUMPDEST
00000f80: PUSH1 0x00
00000f82: PUSH2 0x0f8a
00000f85: DUP3
00000f86: PUSH2 0x1918
00000f89: JUMP
00000f8a: JUMPDEST
00000f8b: PUSH2 0x0fd6
00000f8e: JUMPI
00000f8f: PUSH1 0x40
00000f91: MLOAD
00000f92: PUSH3 0x461bcd
00000f96: PUSH1 0xe5
00000f98: SHL
00000f99: DUP2
00000f9a: MSTORE
00000f9b: PUSH1 0x20
00000f9d: PUSH1 0x04
00000f9f: DUP3
00000fa0: ADD
00000fa1: MSTORE
00000fa2: PUSH1 0x1b
00000fa4: PUSH1 0x24
00000fa6: DUP3
00000fa7: ADD
00000fa8: MSTORE
00000fa9: PUSH32 0x7468697320746f6b656e206973206e6f7420737570706f727465640000000000
00000fca: PUSH1 0x44
00000fcc: DUP3
00000fcd: ADD
00000fce: MSTORE
00000fcf: PUSH1 0x64
00000fd1: ADD
00000fd2: PUSH2 0x048e
00000fd5: JUMP
00000fd6: JUMPDEST
00000fd7: PUSH1 0x40
00000fd9: MLOAD
00000fda: PUSH4 0x70a08231
00000fdf: PUSH1 0xe0
00000fe1: SHL
00000fe2: DUP2
00000fe3: MSTORE
00000fe4: ADDRESS
00000fe5: PUSH1 0x04
00000fe7: DUP3
00000fe8: ADD
00000fe9: MSTORE
00000fea: PUSH1 0x01
00000fec: PUSH1 0x01
00000fee: PUSH1 0xa0
00000ff0: SHL
00000ff1: SUB
00000ff2: DUP4
00000ff3: AND
00000ff4: SWAP1
00000ff5: PUSH4 0x70a08231
00000ffa: SWAP1
00000ffb: PUSH1 0x24
00000ffd: ADD
00000ffe: PUSH1 0x20
00001000: PUSH1 0x40
00001002: MLOAD
00001003: DUP1
00001004: DUP4
00001005: SUB
00001006: DUP2
00001007: DUP7
00001008: GAS
00001009: STATICCALL
0000100a: ISZERO
0000100b: DUP1
0000100c: ISZERO
0000100d: PUSH2 0x101a
00001010: JUMPI
00001011: RETURNDATASIZE
00001012: PUSH1 0x00
00001014: DUP1
00001015: RETURNDATACOPY
00001016: RETURNDATASIZE
00001017: PUSH1 0x00
00001019: REVERT
0000101a: JUMPDEST
0000101b: POP
0000101c: POP
0000101d: POP
0000101e: POP
0000101f: PUSH1 0x40
00001021: MLOAD
00001022: RETURNDATASIZE
00001023: PUSH1 0x1f
00001025: NOT
00001026: PUSH1 0x1f
00001028: DUP3
00001029: ADD
0000102a: AND
0000102b: DUP3
0000102c: ADD
0000102d: DUP1
0000102e: PUSH1 0x40
00001030: MSTORE
00001031: POP
00001032: DUP2
00001033: ADD
00001034: SWAP1
00001035: PUSH2 0x103e
00001038: SWAP2
00001039: SWAP1
0000103a: PUSH2 0x2137
0000103d: JUMP
0000103e: JUMPDEST
0000103f: SWAP3
00001040: SWAP2
00001041: POP
00001042: POP
00001043: JUMP
00001044: JUMPDEST
00001045: PUSH1 0x00
00001047: SLOAD
00001048: PUSH1 0x01
0000104a: PUSH1 0x01
0000104c: PUSH1 0xa0
0000104e: SHL
0000104f: SUB
00001050: AND
00001051: CALLER
00001052: EQ
00001053: DUP1
00001054: PUSH2 0x1067
00001057: JUMPI
00001058: POP
00001059: PUSH1 0x02
0000105b: SLOAD
0000105c: PUSH1 0x01
0000105e: PUSH1 0x01
00001060: PUSH1 0xa0
00001062: SHL
00001063: SUB
00001064: AND
00001065: CALLER
00001066: EQ
00001067: JUMPDEST
00001068: PUSH2 0x1083
0000106b: JUMPI
0000106c: PUSH1 0x40
0000106e: MLOAD
0000106f: PUSH3 0x461bcd
00001073: PUSH1 0xe5
00001075: SHL
00001076: DUP2
00001077: MSTORE
00001078: PUSH1 0x04
0000107a: ADD
0000107b: PUSH2 0x048e
0000107e: SWAP1
0000107f: PUSH2 0x2059
00001082: JUMP
00001083: JUMPDEST
00001084: PUSH2 0x108c
00001087: DUP2
00001088: PUSH2 0x16b6
0000108b: JUMP
0000108c: JUMPDEST
0000108d: PUSH2 0x10a8
00001090: JUMPI
00001091: PUSH1 0x40
00001093: MLOAD
00001094: PUSH3 0x461bcd
00001098: PUSH1 0xe5
0000109a: SHL
0000109b: DUP2
0000109c: MSTORE
0000109d: PUSH1 0x04
0000109f: ADD
000010a0: PUSH2 0x048e
000010a3: SWAP1
000010a4: PUSH2 0x20a2
000010a7: JUMP
000010a8: JUMPDEST
000010a9: PUSH1 0x40
000010ab: MLOAD
000010ac: PUSH4 0x70a08231
000010b1: PUSH1 0xe0
000010b3: SHL
000010b4: DUP2
000010b5: MSTORE
000010b6: ADDRESS
000010b7: PUSH1 0x04
000010b9: DUP3
000010ba: ADD
000010bb: MSTORE
000010bc: PUSH1 0x01
000010be: PUSH1 0x01
000010c0: PUSH1 0xa0
000010c2: SHL
000010c3: SUB
000010c4: DUP3
000010c5: AND
000010c6: SWAP1
000010c7: PUSH4 0x70a08231
000010cc: SWAP1
000010cd: PUSH1 0x24
000010cf: ADD
000010d0: PUSH1 0x20
000010d2: PUSH1 0x40
000010d4: MLOAD
000010d5: DUP1
000010d6: DUP4
000010d7: SUB
000010d8: DUP2
000010d9: DUP7
000010da: GAS
000010db: STATICCALL
000010dc: ISZERO
000010dd: DUP1
000010de: ISZERO
000010df: PUSH2 0x10ec
000010e2: JUMPI
000010e3: RETURNDATASIZE
000010e4: PUSH1 0x00
000010e6: DUP1
000010e7: RETURNDATACOPY
000010e8: RETURNDATASIZE
000010e9: PUSH1 0x00
000010eb: REVERT
000010ec: JUMPDEST
000010ed: POP
000010ee: POP
000010ef: POP
000010f0: POP
000010f1: PUSH1 0x40
000010f3: MLOAD
000010f4: RETURNDATASIZE
000010f5: PUSH1 0x1f
000010f7: NOT
000010f8: PUSH1 0x1f
000010fa: DUP3
000010fb: ADD
000010fc: AND
000010fd: DUP3
000010fe: ADD
000010ff: DUP1
00001100: PUSH1 0x40
00001102: MSTORE
00001103: POP
00001104: DUP2
00001105: ADD
00001106: SWAP1
00001107: PUSH2 0x1110
0000110a: SWAP2
0000110b: SWAP1
0000110c: PUSH2 0x2137
0000110f: JUMP
00001110: JUMPDEST
00001111: ISZERO
00001112: PUSH2 0x117c
00001115: JUMPI
00001116: PUSH1 0x40
00001118: MLOAD
00001119: PUSH3 0x461bcd
0000111d: PUSH1 0xe5
0000111f: SHL
00001120: DUP2
00001121: MSTORE
00001122: PUSH1 0x20
00001124: PUSH1 0x04
00001126: DUP3
00001127: ADD
00001128: MSTORE
00001129: PUSH1 0x36
0000112b: PUSH1 0x24
0000112d: DUP3
0000112e: ADD
0000112f: MSTORE
00001130: PUSH32 0x4d7270634465706f7369743a2063616e6e6f742064656c65746520746f6b656e
00001151: PUSH1 0x44
00001153: DUP3
00001154: ADD
00001155: MSTORE
00001156: PUSH22 0x207769746820706f7369746976652062616c616e6365
0000116d: PUSH1 0x50
0000116f: SHL
00001170: PUSH1 0x64
00001172: DUP3
00001173: ADD
00001174: MSTORE
00001175: PUSH1 0x84
00001177: ADD
00001178: PUSH2 0x048e
0000117b: JUMP
0000117c: JUMPDEST
0000117d: PUSH1 0x00
0000117f: JUMPDEST
00001180: PUSH1 0x03
00001182: SLOAD
00001183: DUP2
00001184: LT
00001185: ISZERO
00001186: PUSH2 0x127a
00001189: JUMPI
0000118a: DUP2
0000118b: PUSH1 0x01
0000118d: PUSH1 0x01
0000118f: PUSH1 0xa0
00001191: SHL
00001192: SUB
00001193: AND
00001194: PUSH1 0x03
00001196: DUP3
00001197: DUP2
00001198: SLOAD
00001199: DUP2
0000119a: LT
0000119b: PUSH2 0x11a6
0000119e: JUMPI
0000119f: PUSH2 0x11a6
000011a2: PUSH2 0x2121
000011a5: JUMP
000011a6: JUMPDEST
000011a7: PUSH1 0x00
000011a9: SWAP2
000011aa: DUP3
000011ab: MSTORE
000011ac: PUSH1 0x20
000011ae: SWAP1
000011af: SWAP2
000011b0: KECCAK256
000011b1: ADD
000011b2: SLOAD
000011b3: PUSH1 0x01
000011b5: PUSH1 0x01
000011b7: PUSH1 0xa0
000011b9: SHL
000011ba: SUB
000011bb: AND
000011bc: SUB
000011bd: PUSH2 0x1272
000011c0: JUMPI
000011c1: PUSH1 0x03
000011c3: DUP1
000011c4: SLOAD
000011c5: PUSH2 0x11d0
000011c8: SWAP1
000011c9: PUSH1 0x01
000011cb: SWAP1
000011cc: PUSH2 0x21e2
000011cf: JUMP
000011d0: JUMPDEST
000011d1: DUP2
000011d2: SLOAD
000011d3: DUP2
000011d4: LT
000011d5: PUSH2 0x11e0
000011d8: JUMPI
000011d9: PUSH2 0x11e0
000011dc: PUSH2 0x2121
000011df: JUMP
000011e0: JUMPDEST
000011e1: PUSH1 0x00
000011e3: SWAP2
000011e4: DUP3
000011e5: MSTORE
000011e6: PUSH1 0x20
000011e8: SWAP1
000011e9: SWAP2
000011ea: KECCAK256
000011eb: ADD
000011ec: SLOAD
000011ed: PUSH1 0x03
000011ef: DUP1
000011f0: SLOAD
000011f1: PUSH1 0x01
000011f3: PUSH1 0x01
000011f5: PUSH1 0xa0
000011f7: SHL
000011f8: SUB
000011f9: SWAP1
000011fa: SWAP3
000011fb: AND
000011fc: SWAP2
000011fd: DUP4
000011fe: SWAP1
000011ff: DUP2
00001200: LT
00001201: PUSH2 0x120c
00001204: JUMPI
00001205: PUSH2 0x120c
00001208: PUSH2 0x2121
0000120b: JUMP
0000120c: JUMPDEST
0000120d: SWAP1
0000120e: PUSH1 0x00
00001210: MSTORE
00001211: PUSH1 0x20
00001213: PUSH1 0x00
00001215: KECCAK256
00001216: ADD
00001217: PUSH1 0x00
00001219: PUSH2 0x0100
0000121c: EXP
0000121d: DUP2
0000121e: SLOAD
0000121f: DUP2
00001220: PUSH1 0x01
00001222: PUSH1 0x01
00001224: PUSH1 0xa0
00001226: SHL
00001227: SUB
00001228: MUL
00001229: NOT
0000122a: AND
0000122b: SWAP1
0000122c: DUP4
0000122d: PUSH1 0x01
0000122f: PUSH1 0x01
00001231: PUSH1 0xa0
00001233: SHL
00001234: SUB
00001235: AND
00001236: MUL
00001237: OR
00001238: SWAP1
00001239: SSTORE
0000123a: POP
0000123b: PUSH1 0x03
0000123d: DUP1
0000123e: SLOAD
0000123f: DUP1
00001240: PUSH2 0x124b
00001243: JUMPI
00001244: PUSH2 0x124b
00001247: PUSH2 0x2203
0000124a: JUMP
0000124b: JUMPDEST
0000124c: PUSH1 0x00
0000124e: DUP3
0000124f: DUP2
00001250: MSTORE
00001251: PUSH1 0x20
00001253: SWAP1
00001254: KECCAK256
00001255: DUP2
00001256: ADD
00001257: PUSH1 0x00
00001259: NOT
0000125a: SWAP1
0000125b: DUP2
0000125c: ADD
0000125d: DUP1
0000125e: SLOAD
0000125f: PUSH1 0x01
00001261: PUSH1 0x01
00001263: PUSH1 0xa0
00001265: SHL
00001266: SUB
00001267: NOT
00001268: AND
00001269: SWAP1
0000126a: SSTORE
0000126b: ADD
0000126c: SWAP1
0000126d: SSTORE
0000126e: PUSH2 0x127a
00001271: JUMP
00001272: JUMPDEST
00001273: PUSH1 0x01
00001275: ADD
00001276: PUSH2 0x117f
00001279: JUMP
0000127a: JUMPDEST
0000127b: POP
0000127c: PUSH1 0x01
0000127e: PUSH1 0x01
00001280: PUSH1 0xa0
00001282: SHL
00001283: SUB
00001284: DUP2
00001285: AND
00001286: PUSH1 0x00
00001288: SWAP1
00001289: DUP2
0000128a: MSTORE
0000128b: PUSH1 0x04
0000128d: PUSH1 0x20
0000128f: DUP2
00001290: SWAP1
00001291: MSTORE
00001292: PUSH1 0x40
00001294: DUP1
00001295: DUP4
00001296: KECCAK256
00001297: SWAP3
00001298: DUP4
00001299: SSTORE
0000129a: PUSH1 0x01
0000129c: SWAP1
0000129d: SWAP3
0000129e: ADD
0000129f: DUP1
000012a0: SLOAD
000012a1: PUSH1 0xff
000012a3: NOT
000012a4: AND
000012a5: SWAP1
000012a6: SSTORE
000012a7: SWAP1
000012a8: MLOAD
000012a9: PUSH1 0x00
000012ab: DUP1
000012ac: MLOAD
000012ad: PUSH1 0x20
000012af: PUSH2 0x2266
000012b2: DUP4
000012b3: CODECOPY
000012b4: DUP2
000012b5: MLOAD
000012b6: SWAP2
000012b7: MSTORE
000012b8: SWAP2
000012b9: PUSH2 0x0500
000012bc: SWAP2
000012bd: DUP5
000012be: SWAP2
000012bf: SWAP1
000012c0: PUSH2 0x20e6
000012c3: JUMP
000012c4: JUMPDEST
000012c5: PUSH2 0x12cc
000012c8: PUSH2 0x19ba
000012cb: JUMP
000012cc: JUMPDEST
000012cd: PUSH1 0x01
000012cf: PUSH1 0x01
000012d1: PUSH1 0xa0
000012d3: SHL
000012d4: SUB
000012d5: DUP2
000012d6: AND
000012d7: PUSH2 0x12f6
000012da: JUMPI
000012db: PUSH1 0x40
000012dd: MLOAD
000012de: PUSH4 0x1e4fbdf7
000012e3: PUSH1 0xe0
000012e5: SHL
000012e6: DUP2
000012e7: MSTORE
000012e8: PUSH1 0x00
000012ea: PUSH1 0x04
000012ec: DUP3
000012ed: ADD
000012ee: MSTORE
000012ef: PUSH1 0x24
000012f1: ADD
000012f2: PUSH2 0x048e
000012f5: JUMP
000012f6: JUMPDEST
000012f7: PUSH2 0x12ff
000012fa: DUP2
000012fb: PUSH2 0x1a15
000012fe: JUMP
000012ff: JUMPDEST
00001300: POP
00001301: JUMP
00001302: JUMPDEST
00001303: PUSH2 0x130a
00001306: PUSH2 0x1acf
00001309: JUMP
0000130a: JUMPDEST
0000130b: PUSH2 0x05fa
0000130e: PUSH2 0x1b18
00001311: JUMP
00001312: JUMPDEST
00001313: PUSH2 0x131a
00001316: PUSH2 0x1acf
00001319: JUMP
0000131a: JUMPDEST
0000131b: PUSH2 0x05fa
0000131e: PUSH2 0x1b39
00001321: JUMP
00001322: JUMPDEST
00001323: PUSH2 0x132a
00001326: PUSH2 0x1acf
00001329: JUMP
0000132a: JUMPDEST
0000132b: PUSH2 0x12ff
0000132e: DUP2
0000132f: PUSH2 0x1b41
00001332: JUMP
00001333: JUMPDEST
00001334: DUP3
00001335: DUP2
00001336: EQ
00001337: PUSH2 0x139f
0000133a: JUMPI
0000133b: PUSH1 0x40
0000133d: MLOAD
0000133e: PUSH3 0x461bcd
00001342: PUSH1 0xe5
00001344: SHL
00001345: DUP2
00001346: MSTORE
00001347: PUSH1 0x20
00001349: PUSH1 0x04
0000134b: DUP3
0000134c: ADD
0000134d: MSTORE
0000134e: PUSH1 0x34
00001350: PUSH1 0x24
00001352: DUP3
00001353: ADD
00001354: MSTORE
00001355: PUSH32 0x4d7270634465706f7369743a20746f6b656e7320616e6420616d6f756e747320
00001376: PUSH1 0x44
00001378: DUP3
00001379: ADD
0000137a: MSTORE
0000137b: PUSH20 0x0d8d2e6e840d8cadccee8d040dad2e6dac2e8c6d
00001390: PUSH1 0x63
00001392: SHL
00001393: PUSH1 0x64
00001395: DUP3
00001396: ADD
00001397: MSTORE
00001398: PUSH1 0x84
0000139a: ADD
0000139b: PUSH2 0x048e
0000139e: JUMP
0000139f: JUMPDEST
000013a0: PUSH1 0x00
000013a2: DUP1
000013a3: SLOAD
000013a4: PUSH1 0x01
000013a6: PUSH1 0x01
000013a8: PUSH1 0xa0
000013aa: SHL
000013ab: SUB
000013ac: DUP1
000013ad: DUP11
000013ae: AND
000013af: PUSH1 0x01
000013b1: PUSH1 0x01
000013b3: PUSH1 0xa0
000013b5: SHL
000013b6: SUB
000013b7: NOT
000013b8: SWAP3
000013b9: DUP4
000013ba: AND
000013bb: OR
000013bc: DUP4
000013bd: SSTORE
000013be: PUSH1 0x01
000013c0: DUP1
000013c1: SLOAD
000013c2: DUP11
000013c3: DUP4
000013c4: AND
000013c5: SWAP1
000013c6: DUP5
000013c7: AND
000013c8: OR
000013c9: SWAP1
000013ca: SSTORE
000013cb: PUSH1 0x02
000013cd: DUP1
000013ce: SLOAD
000013cf: SWAP2
000013d0: DUP10
000013d1: AND
000013d2: SWAP2
000013d3: SWAP1
000013d4: SWAP3
000013d5: AND
000013d6: OR
000013d7: SWAP1
000013d8: SSTORE
000013d9: JUMPDEST
000013da: DUP4
000013db: DUP2
000013dc: LT
000013dd: ISZERO
000013de: PUSH2 0x16ac
000013e1: JUMPI
000013e2: PUSH1 0x00
000013e4: DUP6
000013e5: DUP6
000013e6: DUP4
000013e7: DUP2
000013e8: DUP2
000013e9: LT
000013ea: PUSH2 0x13f5
000013ed: JUMPI
000013ee: PUSH2 0x13f5
000013f1: PUSH2 0x2121
000013f4: JUMP
000013f5: JUMPDEST
000013f6: SWAP1
000013f7: POP
000013f8: PUSH1 0x20
000013fa: MUL
000013fb: ADD
000013fc: PUSH1 0x20
000013fe: DUP2
000013ff: ADD
00001400: SWAP1
00001401: PUSH2 0x140a
00001404: SWAP2
00001405: SWAP1
00001406: PUSH2 0x1ea5
00001409: JUMP
0000140a: JUMPDEST
0000140b: PUSH1 0x01
0000140d: PUSH1 0x01
0000140f: PUSH1 0xa0
00001411: SHL
00001412: SUB
00001413: AND
00001414: SUB
00001415: PUSH2 0x1460
00001418: JUMPI
00001419: PUSH1 0x40
0000141b: MLOAD
0000141c: PUSH3 0x461bcd
00001420: PUSH1 0xe5
00001422: SHL
00001423: DUP2
00001424: MSTORE
00001425: PUSH1 0x20
00001427: PUSH1 0x04
00001429: DUP3
0000142a: ADD
0000142b: DUP2
0000142c: SWAP1
0000142d: MSTORE
0000142e: PUSH1 0x24
00001430: DUP3
00001431: ADD
00001432: MSTORE
00001433: PUSH32 0x4d7270634465706f7369743a2077726f6e6720746f6b656e2061646472657373
00001454: PUSH1 0x44
00001456: DUP3
00001457: ADD
00001458: MSTORE
00001459: PUSH1 0x64
0000145b: ADD
0000145c: PUSH2 0x048e
0000145f: JUMP
00001460: JUMPDEST
00001461: PUSH1 0x04
00001463: PUSH1 0x00
00001465: DUP7
00001466: DUP7
00001467: DUP5
00001468: DUP2
00001469: DUP2
0000146a: LT
0000146b: PUSH2 0x1476
0000146e: JUMPI
0000146f: PUSH2 0x1476
00001472: PUSH2 0x2121
00001475: JUMP
00001476: JUMPDEST
00001477: SWAP1
00001478: POP
00001479: PUSH1 0x20
0000147b: MUL
0000147c: ADD
0000147d: PUSH1 0x20
0000147f: DUP2
00001480: ADD
00001481: SWAP1
00001482: PUSH2 0x148b
00001485: SWAP2
00001486: SWAP1
00001487: PUSH2 0x1ea5
0000148a: JUMP
0000148b: JUMPDEST
0000148c: PUSH1 0x01
0000148e: PUSH1 0x01
00001490: PUSH1 0xa0
00001492: SHL
00001493: SUB
00001494: AND
00001495: DUP2
00001496: MSTORE
00001497: PUSH1 0x20
00001499: DUP2
0000149a: ADD
0000149b: SWAP2
0000149c: SWAP1
0000149d: SWAP2
0000149e: MSTORE
0000149f: PUSH1 0x40
000014a1: ADD
000014a2: PUSH1 0x00
000014a4: KECCAK256
000014a5: PUSH1 0x01
000014a7: ADD
000014a8: SLOAD
000014a9: PUSH1 0xff
000014ab: AND
000014ac: ISZERO
000014ad: PUSH2 0x1503
000014b0: JUMPI
000014b1: PUSH1 0x40
000014b3: MLOAD
000014b4: PUSH3 0x461bcd
000014b8: PUSH1 0xe5
000014ba: SHL
000014bb: DUP2
000014bc: MSTORE
000014bd: PUSH1 0x20
000014bf: PUSH1 0x04
000014c1: DUP3
000014c2: ADD
000014c3: MSTORE
000014c4: PUSH1 0x22
000014c6: PUSH1 0x24
000014c8: DUP3
000014c9: ADD
000014ca: MSTORE
000014cb: PUSH32 0x4d7270634465706f7369743a20746f6b656e206475706c696361746520666f75
000014ec: PUSH1 0x44
000014ee: DUP3
000014ef: ADD
000014f0: MSTORE
000014f1: PUSH2 0x1b99
000014f4: PUSH1 0xf2
000014f6: SHL
000014f7: PUSH1 0x64
000014f9: DUP3
000014fa: ADD
000014fb: MSTORE
000014fc: PUSH1 0x84
000014fe: ADD
000014ff: PUSH2 0x048e
00001502: JUMP
00001503: JUMPDEST
00001504: PUSH1 0x00
00001506: DUP4
00001507: DUP4
00001508: DUP4
00001509: DUP2
0000150a: DUP2
0000150b: LT
0000150c: PUSH2 0x1517
0000150f: JUMPI
00001510: PUSH2 0x1517
00001513: PUSH2 0x2121
00001516: JUMP
00001517: JUMPDEST
00001518: SWAP1
00001519: POP
0000151a: PUSH1 0x20
0000151c: MUL
0000151d: ADD
0000151e: CALLDATALOAD
0000151f: GT
00001520: PUSH2 0x156b
00001523: JUMPI
00001524: PUSH1 0x40
00001526: MLOAD
00001527: PUSH3 0x461bcd
0000152b: PUSH1 0xe5
0000152d: SHL
0000152e: DUP2
0000152f: MSTORE
00001530: PUSH1 0x20
00001532: PUSH1 0x04
00001534: DUP3
00001535: ADD
00001536: MSTORE
00001537: PUSH1 0x1d
00001539: PUSH1 0x24
0000153b: DUP3
0000153c: ADD
0000153d: MSTORE
0000153e: PUSH32 0x4d7270634465706f7369743a2077726f6e67206d696e20616d6f756e74000000
0000155f: PUSH1 0x44
00001561: DUP3
00001562: ADD
00001563: MSTORE
00001564: PUSH1 0x64
00001566: ADD
00001567: PUSH2 0x048e
0000156a: JUMP
0000156b: JUMPDEST
0000156c: PUSH1 0x03
0000156e: DUP6
0000156f: DUP6
00001570: DUP4
00001571: DUP2
00001572: DUP2
00001573: LT
00001574: PUSH2 0x157f
00001577: JUMPI
00001578: PUSH2 0x157f
0000157b: PUSH2 0x2121
0000157e: JUMP
0000157f: JUMPDEST
00001580: SWAP1
00001581: POP
00001582: PUSH1 0x20
00001584: MUL
00001585: ADD
00001586: PUSH1 0x20
00001588: DUP2
00001589: ADD
0000158a: SWAP1
0000158b: PUSH2 0x1594
0000158e: SWAP2
0000158f: SWAP1
00001590: PUSH2 0x1ea5
00001593: JUMP
00001594: JUMPDEST
00001595: DUP2
00001596: SLOAD
00001597: PUSH1 0x01
00001599: DUP2
0000159a: ADD
0000159b: DUP4
0000159c: SSTORE
0000159d: PUSH1 0x00
0000159f: SWAP3
000015a0: DUP4
000015a1: MSTORE
000015a2: PUSH1 0x20
000015a4: SWAP1
000015a5: SWAP3
000015a6: KECCAK256
000015a7: SWAP1
000015a8: SWAP2
000015a9: ADD
000015aa: DUP1
000015ab: SLOAD
000015ac: PUSH1 0x01
000015ae: PUSH1 0x01
000015b0: PUSH1 0xa0
000015b2: SHL
000015b3: SUB
000015b4: NOT
000015b5: AND
000015b6: PUSH1 0x01
000015b8: PUSH1 0x01
000015ba: PUSH1 0xa0
000015bc: SHL
000015bd: SUB
000015be: SWAP1
000015bf: SWAP3
000015c0: AND
000015c1: SWAP2
000015c2: SWAP1
000015c3: SWAP2
000015c4: OR
000015c5: SWAP1
000015c6: SSTORE
000015c7: PUSH1 0x40
000015c9: DUP1
000015ca: MLOAD
000015cb: DUP1
000015cc: DUP3
000015cd: ADD
000015ce: SWAP1
000015cf: SWAP2
000015d0: MSTORE
000015d1: DUP1
000015d2: DUP5
000015d3: DUP5
000015d4: DUP5
000015d5: DUP2
000015d6: DUP2
000015d7: LT
000015d8: PUSH2 0x15e3
000015db: JUMPI
000015dc: PUSH2 0x15e3
000015df: PUSH2 0x2121
000015e2: JUMP
000015e3: JUMPDEST
000015e4: SWAP1
000015e5: POP
000015e6: PUSH1 0x20
000015e8: MUL
000015e9: ADD
000015ea: CALLDATALOAD
000015eb: DUP2
000015ec: MSTORE
000015ed: PUSH1 0x20
000015ef: ADD
000015f0: PUSH1 0x01
000015f2: ISZERO
000015f3: ISZERO
000015f4: DUP2
000015f5: MSTORE
000015f6: POP
000015f7: PUSH1 0x04
000015f9: PUSH1 0x00
000015fb: DUP8
000015fc: DUP8
000015fd: DUP6
000015fe: DUP2
000015ff: DUP2
00001600: LT
00001601: PUSH2 0x160c
00001604: JUMPI
00001605: PUSH2 0x160c
00001608: PUSH2 0x2121
0000160b: JUMP
0000160c: JUMPDEST
0000160d: SWAP1
0000160e: POP
0000160f: PUSH1 0x20
00001611: MUL
00001612: ADD
00001613: PUSH1 0x20
00001615: DUP2
00001616: ADD
00001617: SWAP1
00001618: PUSH2 0x1621
0000161b: SWAP2
0000161c: SWAP1
0000161d: PUSH2 0x1ea5
00001620: JUMP
00001621: JUMPDEST
00001622: PUSH1 0x01
00001624: PUSH1 0x01
00001626: PUSH1 0xa0
00001628: SHL
00001629: SUB
0000162a: AND
0000162b: DUP2
0000162c: MSTORE
0000162d: PUSH1 0x20
0000162f: DUP1
00001630: DUP3
00001631: ADD
00001632: SWAP3
00001633: SWAP1
00001634: SWAP3
00001635: MSTORE
00001636: PUSH1 0x40
00001638: ADD
00001639: PUSH1 0x00
0000163b: KECCAK256
0000163c: DUP3
0000163d: MLOAD
0000163e: DUP2
0000163f: SSTORE
00001640: SWAP2
00001641: ADD
00001642: MLOAD
00001643: PUSH1 0x01
00001645: SWAP1
00001646: SWAP2
00001647: ADD
00001648: DUP1
00001649: SLOAD
0000164a: PUSH1 0xff
0000164c: NOT
0000164d: AND
0000164e: SWAP2
0000164f: ISZERO
00001650: ISZERO
00001651: SWAP2
00001652: SWAP1
00001653: SWAP2
00001654: OR
00001655: SWAP1
00001656: SSTORE
00001657: PUSH1 0x00
00001659: DUP1
0000165a: MLOAD
0000165b: PUSH1 0x20
0000165d: PUSH2 0x2266
00001660: DUP4
00001661: CODECOPY
00001662: DUP2
00001663: MLOAD
00001664: SWAP2
00001665: MSTORE
00001666: DUP6
00001667: DUP6
00001668: DUP4
00001669: DUP2
0000166a: DUP2
0000166b: LT
0000166c: PUSH2 0x1677
0000166f: JUMPI
00001670: PUSH2 0x1677
00001673: PUSH2 0x2121
00001676: JUMP
00001677: JUMPDEST
00001678: SWAP1
00001679: POP
0000167a: PUSH1 0x20
0000167c: MUL
0000167d: ADD
0000167e: PUSH1 0x20
00001680: DUP2
00001681: ADD
00001682: SWAP1
00001683: PUSH2 0x168c
00001686: SWAP2
00001687: SWAP1
00001688: PUSH2 0x1ea5
0000168b: JUMP
0000168c: JUMPDEST
0000168d: PUSH1 0x00
0000168f: PUSH1 0x40
00001691: MLOAD
00001692: PUSH2 0x169c
00001695: SWAP3
00001696: SWAP2
00001697: SWAP1
00001698: PUSH2 0x20e6
0000169b: JUMP
0000169c: JUMPDEST
0000169d: PUSH1 0x40
0000169f: MLOAD
000016a0: DUP1
000016a1: SWAP2
000016a2: SUB
000016a3: SWAP1
000016a4: LOG1
000016a5: PUSH1 0x01
000016a7: ADD
000016a8: PUSH2 0x13d9
000016ab: JUMP
000016ac: JUMPDEST
000016ad: POP
000016ae: POP
000016af: POP
000016b0: POP
000016b1: POP
000016b2: POP
000016b3: POP
000016b4: POP
000016b5: JUMP
000016b6: JUMPDEST
000016b7: PUSH1 0x00
000016b9: DUP1
000016ba: JUMPDEST
000016bb: PUSH1 0x03
000016bd: SLOAD
000016be: DUP2
000016bf: LT
000016c0: ISZERO
000016c1: PUSH2 0x170c
000016c4: JUMPI
000016c5: DUP3
000016c6: PUSH1 0x01
000016c8: PUSH1 0x01
000016ca: PUSH1 0xa0
000016cc: SHL
000016cd: SUB
000016ce: AND
000016cf: PUSH1 0x03
000016d1: DUP3
000016d2: DUP2
000016d3: SLOAD
000016d4: DUP2
000016d5: LT
000016d6: PUSH2 0x16e1
000016d9: JUMPI
000016da: PUSH2 0x16e1
000016dd: PUSH2 0x2121
000016e0: JUMP
000016e1: JUMPDEST
000016e2: PUSH1 0x00
000016e4: SWAP2
000016e5: DUP3
000016e6: MSTORE
000016e7: PUSH1 0x20
000016e9: SWAP1
000016ea: SWAP2
000016eb: KECCAK256
000016ec: ADD
000016ed: SLOAD
000016ee: PUSH1 0x01
000016f0: PUSH1 0x01
000016f2: PUSH1 0xa0
000016f4: SHL
000016f5: SUB
000016f6: AND
000016f7: SUB
000016f8: PUSH2 0x1704
000016fb: JUMPI
000016fc: POP
000016fd: PUSH1 0x01
000016ff: SWAP3
00001700: SWAP2
00001701: POP
00001702: POP
00001703: JUMP
00001704: JUMPDEST
00001705: PUSH1 0x01
00001707: ADD
00001708: PUSH2 0x16ba
0000170b: JUMP
0000170c: JUMPDEST
0000170d: POP
0000170e: PUSH1 0x00
00001710: SWAP3
00001711: SWAP2
00001712: POP
00001713: POP
00001714: JUMP
00001715: JUMPDEST
00001716: PUSH2 0x171d
00001719: PUSH2 0x1b49
0000171c: JUMP
0000171d: JUMPDEST
0000171e: PUSH1 0x00
00001720: DUP1
00001721: MLOAD
00001722: PUSH1 0x20
00001724: PUSH2 0x2286
00001727: DUP4
00001728: CODECOPY
00001729: DUP2
0000172a: MLOAD
0000172b: SWAP2
0000172c: MSTORE
0000172d: DUP1
0000172e: SLOAD
0000172f: PUSH1 0xff
00001731: NOT
00001732: AND
00001733: DUP2
00001734: SSTORE
00001735: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
00001756: CALLER
00001757: JUMPDEST
00001758: PUSH1 0x40
0000175a: MLOAD
0000175b: PUSH1 0x01
0000175d: PUSH1 0x01
0000175f: PUSH1 0xa0
00001761: SHL
00001762: SUB
00001763: SWAP1
00001764: SWAP2
00001765: AND
00001766: DUP2
00001767: MSTORE
00001768: PUSH1 0x20
0000176a: ADD
0000176b: PUSH2 0x0500
0000176e: JUMP
0000176f: JUMPDEST
00001770: PUSH1 0x00
00001772: DUP1
00001773: MLOAD
00001774: PUSH1 0x20
00001776: PUSH2 0x22a6
00001779: DUP4
0000177a: CODECOPY
0000177b: DUP2
0000177c: MLOAD
0000177d: SWAP2
0000177e: MSTORE
0000177f: DUP1
00001780: SLOAD
00001781: PUSH1 0x01
00001783: NOT
00001784: ADD
00001785: PUSH2 0x17a1
00001788: JUMPI
00001789: PUSH1 0x40
0000178b: MLOAD
0000178c: PUSH4 0x3ee5aeb5
00001791: PUSH1 0xe0
00001793: SHL
00001794: DUP2
00001795: MSTORE
00001796: PUSH1 0x04
00001798: ADD
00001799: PUSH1 0x40
0000179b: MLOAD
0000179c: DUP1
0000179d: SWAP2
0000179e: SUB
0000179f: SWAP1
000017a0: REVERT
000017a1: JUMPDEST
000017a2: PUSH1 0x02
000017a4: SWAP1
000017a5: SSTORE
000017a6: JUMP
000017a7: JUMPDEST
000017a8: PUSH1 0x00
000017aa: DUP1
000017ab: MLOAD
000017ac: PUSH1 0x20
000017ae: PUSH2 0x2286
000017b1: DUP4
000017b2: CODECOPY
000017b3: DUP2
000017b4: MLOAD
000017b5: SWAP2
000017b6: MSTORE
000017b7: SLOAD
000017b8: PUSH1 0xff
000017ba: AND
000017bb: ISZERO
000017bc: PUSH2 0x05fa
000017bf: JUMPI
000017c0: PUSH1 0x40
000017c2: MLOAD
000017c3: PUSH4 0xd93c0665
000017c8: PUSH1 0xe0
000017ca: SHL
000017cb: DUP2
000017cc: MSTORE
000017cd: PUSH1 0x04
000017cf: ADD
000017d0: PUSH1 0x40
000017d2: MLOAD
000017d3: DUP1
000017d4: SWAP2
000017d5: SUB
000017d6: SWAP1
000017d7: REVERT
000017d8: JUMPDEST
000017d9: PUSH1 0x01
000017db: PUSH1 0x01
000017dd: PUSH1 0xa0
000017df: SHL
000017e0: SUB
000017e1: DUP5
000017e2: AND
000017e3: PUSH1 0x00
000017e5: SWAP1
000017e6: DUP2
000017e7: MSTORE
000017e8: PUSH1 0x04
000017ea: PUSH1 0x20
000017ec: MSTORE
000017ed: PUSH1 0x40
000017ef: SWAP1
000017f0: KECCAK256
000017f1: PUSH1 0x01
000017f3: ADD
000017f4: SLOAD
000017f5: PUSH1 0xff
000017f7: AND
000017f8: PUSH2 0x1854
000017fb: JUMPI
000017fc: PUSH1 0x40
000017fe: MLOAD
000017ff: PUSH3 0x461bcd
00001803: PUSH1 0xe5
00001805: SHL
00001806: DUP2
00001807: MSTORE
00001808: PUSH1 0x20
0000180a: PUSH1 0x04
0000180c: DUP3
0000180d: ADD
0000180e: MSTORE
0000180f: PUSH1 0x28
00001811: PUSH1 0x24
00001813: DUP3
00001814: ADD
00001815: MSTORE
00001816: PUSH32 0x4d7270634465706f7369743a207468697320746f6b656e206973206e6f742061
00001837: PUSH1 0x44
00001839: DUP3
0000183a: ADD
0000183b: MSTORE
0000183c: PUSH8 0x7661696c61626c65
00001845: PUSH1 0xc0
00001847: SHL
00001848: PUSH1 0x64
0000184a: DUP3
0000184b: ADD
0000184c: MSTORE
0000184d: PUSH1 0x84
0000184f: ADD
00001850: PUSH2 0x048e
00001853: JUMP
00001854: JUMPDEST
00001855: DUP3
00001856: PUSH2 0x185e
00001859: DUP6
0000185a: PUSH2 0x1b79
0000185d: JUMP
0000185e: JUMPDEST
0000185f: GT
00001860: ISZERO
00001861: PUSH2 0x18ac
00001864: JUMPI
00001865: PUSH1 0x40
00001867: MLOAD
00001868: PUSH3 0x461bcd
0000186c: PUSH1 0xe5
0000186e: SHL
0000186f: DUP2
00001870: MSTORE
00001871: PUSH1 0x20
00001873: PUSH1 0x04
00001875: DUP3
00001876: ADD
00001877: DUP2
00001878: SWAP1
00001879: MSTORE
0000187a: PUSH1 0x24
0000187c: DUP3
0000187d: ADD
0000187e: MSTORE
0000187f: PUSH32 0x4d7270634465706f7369743a20616d6f756e7420697320746f6f20736d616c6c
000018a0: PUSH1 0x44
000018a2: DUP3
000018a3: ADD
000018a4: MSTORE
000018a5: PUSH1 0x64
000018a7: ADD
000018a8: PUSH2 0x048e
000018ab: JUMP
000018ac: JUMPDEST
000018ad: PUSH2 0x18b8
000018b0: DUP5
000018b1: DUP4
000018b2: ADDRESS
000018b3: DUP7
000018b4: PUSH2 0x1bc2
000018b7: JUMP
000018b8: JUMPDEST
000018b9: PUSH1 0x40
000018bb: DUP1
000018bc: MLOAD
000018bd: PUSH1 0x01
000018bf: PUSH1 0x01
000018c1: PUSH1 0xa0
000018c3: SHL
000018c4: SUB
000018c5: DUP7
000018c6: DUP2
000018c7: AND
000018c8: DUP3
000018c9: MSTORE
000018ca: PUSH1 0x20
000018cc: DUP3
000018cd: ADD
000018ce: DUP7
000018cf: SWAP1
000018d0: MSTORE
000018d1: DUP4
000018d2: AND
000018d3: SWAP2
000018d4: PUSH32 0x54ef209e319f7d023f4f2c1d4b427c3844f7ef008d20a2104b1f20cb533a7fbf
000018f5: SWAP2
000018f6: ADD
000018f7: PUSH1 0x40
000018f9: MLOAD
000018fa: DUP1
000018fb: SWAP2
000018fc: SUB
000018fd: SWAP1
000018fe: LOG2
000018ff: POP
00001900: POP
00001901: POP
00001902: POP
00001903: JUMP
00001904: JUMPDEST
00001905: PUSH1 0x01
00001907: PUSH1 0x00
00001909: DUP1
0000190a: MLOAD
0000190b: PUSH1 0x20
0000190d: PUSH2 0x22a6
00001910: DUP4
00001911: CODECOPY
00001912: DUP2
00001913: MLOAD
00001914: SWAP2
00001915: MSTORE
00001916: SSTORE
00001917: JUMP
00001918: JUMPDEST
00001919: PUSH1 0x01
0000191b: PUSH1 0x01
0000191d: PUSH1 0xa0
0000191f: SHL
00001920: SUB
00001921: DUP2
00001922: AND
00001923: PUSH1 0x00
00001925: SWAP1
00001926: DUP2
00001927: MSTORE
00001928: PUSH1 0x04
0000192a: PUSH1 0x20
0000192c: MSTORE
0000192d: PUSH1 0x40
0000192f: DUP2
00001930: KECCAK256
00001931: PUSH1 0x01
00001933: ADD
00001934: SLOAD
00001935: PUSH1 0xff
00001937: AND
00001938: DUP1
00001939: PUSH2 0x103e
0000193c: JUMPI
0000193d: POP
0000193e: POP
0000193f: PUSH1 0x01
00001941: PUSH1 0x01
00001943: PUSH1 0xa0
00001945: SHL
00001946: SUB
00001947: AND
00001948: PUSH1 0x00
0000194a: SWAP1
0000194b: DUP2
0000194c: MSTORE
0000194d: PUSH1 0x04
0000194f: PUSH1 0x20
00001951: MSTORE
00001952: PUSH1 0x40
00001954: SWAP1
00001955: KECCAK256
00001956: SLOAD
00001957: ISZERO
00001958: ISZERO
00001959: SWAP1
0000195a: JUMP
0000195b: JUMPDEST
0000195c: PUSH1 0x40
0000195e: MLOAD
0000195f: PUSH1 0x01
00001961: PUSH1 0x01
00001963: PUSH1 0xa0
00001965: SHL
00001966: SUB
00001967: DUP4
00001968: DUP2
00001969: AND
0000196a: PUSH1 0x24
0000196c: DUP4
0000196d: ADD
0000196e: MSTORE
0000196f: PUSH1 0x44
00001971: DUP3
00001972: ADD
00001973: DUP4
00001974: SWAP1
00001975: MSTORE
00001976: PUSH2 0x0dd9
00001979: SWAP2
0000197a: DUP6
0000197b: SWAP2
0000197c: DUP3
0000197d: AND
0000197e: SWAP1
0000197f: PUSH4 0xa9059cbb
00001984: SWAP1
00001985: PUSH1 0x64
00001987: ADD
00001988: JUMPDEST
00001989: PUSH1 0x40
0000198b: MLOAD
0000198c: PUSH1 0x20
0000198e: DUP2
0000198f: DUP4
00001990: SUB
00001991: SUB
00001992: DUP2
00001993: MSTORE
00001994: SWAP1
00001995: PUSH1 0x40
00001997: MSTORE
00001998: SWAP2
00001999: POP
0000199a: PUSH1 0xe0
0000199c: SHL
0000199d: PUSH1 0x20
0000199f: DUP3
000019a0: ADD
000019a1: DUP1
000019a2: MLOAD
000019a3: PUSH1 0x01
000019a5: PUSH1 0x01
000019a7: PUSH1 0xe0
000019a9: SHL
000019aa: SUB
000019ab: DUP4
000019ac: DUP2
000019ad: DUP4
000019ae: AND
000019af: OR
000019b0: DUP4
000019b1: MSTORE
000019b2: POP
000019b3: POP
000019b4: POP
000019b5: POP
000019b6: PUSH2 0x1c01
000019b9: JUMP
000019ba: JUMPDEST
000019bb: CALLER
000019bc: PUSH2 0x19ec
000019bf: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
000019e0: SLOAD
000019e1: PUSH1 0x01
000019e3: PUSH1 0x01
000019e5: PUSH1 0xa0
000019e7: SHL
000019e8: SUB
000019e9: AND
000019ea: SWAP1
000019eb: JUMP
000019ec: JUMPDEST
000019ed: PUSH1 0x01
000019ef: PUSH1 0x01
000019f1: PUSH1 0xa0
000019f3: SHL
000019f4: SUB
000019f5: AND
000019f6: EQ
000019f7: PUSH2 0x05fa
000019fa: JUMPI
000019fb: PUSH1 0x40
000019fd: MLOAD
000019fe: PUSH4 0x118cdaa7
00001a03: PUSH1 0xe0
00001a05: SHL
00001a06: DUP2
00001a07: MSTORE
00001a08: CALLER
00001a09: PUSH1 0x04
00001a0b: DUP3
00001a0c: ADD
00001a0d: MSTORE
00001a0e: PUSH1 0x24
00001a10: ADD
00001a11: PUSH2 0x048e
00001a14: JUMP
00001a15: JUMPDEST
00001a16: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
00001a37: DUP1
00001a38: SLOAD
00001a39: PUSH1 0x01
00001a3b: PUSH1 0x01
00001a3d: PUSH1 0xa0
00001a3f: SHL
00001a40: SUB
00001a41: NOT
00001a42: DUP2
00001a43: AND
00001a44: PUSH1 0x01
00001a46: PUSH1 0x01
00001a48: PUSH1 0xa0
00001a4a: SHL
00001a4b: SUB
00001a4c: DUP5
00001a4d: DUP2
00001a4e: AND
00001a4f: SWAP2
00001a50: DUP3
00001a51: OR
00001a52: DUP5
00001a53: SSTORE
00001a54: PUSH1 0x40
00001a56: MLOAD
00001a57: SWAP3
00001a58: AND
00001a59: SWAP2
00001a5a: DUP3
00001a5b: SWAP1
00001a5c: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001a7d: SWAP1
00001a7e: PUSH1 0x00
00001a80: SWAP1
00001a81: LOG3
00001a82: POP
00001a83: POP
00001a84: POP
00001a85: JUMP
00001a86: JUMPDEST
00001a87: PUSH2 0x1a8e
00001a8a: PUSH2 0x17a7
00001a8d: JUMP
00001a8e: JUMPDEST
00001a8f: PUSH1 0x00
00001a91: DUP1
00001a92: MLOAD
00001a93: PUSH1 0x20
00001a95: PUSH2 0x2286
00001a98: DUP4
00001a99: CODECOPY
00001a9a: DUP2
00001a9b: MLOAD
00001a9c: SWAP2
00001a9d: MSTORE
00001a9e: DUP1
00001a9f: SLOAD
00001aa0: PUSH1 0xff
00001aa2: NOT
00001aa3: AND
00001aa4: PUSH1 0x01
00001aa6: OR
00001aa7: DUP2
00001aa8: SSTORE
00001aa9: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
00001aca: CALLER
00001acb: PUSH2 0x1757
00001ace: JUMP
00001acf: JUMPDEST
00001ad0: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00001af1: SLOAD
00001af2: PUSH1 0x01
00001af4: PUSH1 0x40
00001af6: SHL
00001af7: SWAP1
00001af8: DIV
00001af9: PUSH1 0xff
00001afb: AND
00001afc: PUSH2 0x05fa
00001aff: JUMPI
00001b00: PUSH1 0x40
00001b02: MLOAD
00001b03: PUSH4 0x1afcd79f
00001b08: PUSH1 0xe3
00001b0a: SHL
00001b0b: DUP2
00001b0c: MSTORE
00001b0d: PUSH1 0x04
00001b0f: ADD
00001b10: PUSH1 0x40
00001b12: MLOAD
00001b13: DUP1
00001b14: SWAP2
00001b15: SUB
00001b16: SWAP1
00001b17: REVERT
00001b18: JUMPDEST
00001b19: PUSH2 0x1b20
00001b1c: PUSH2 0x1acf
00001b1f: JUMP
00001b20: JUMPDEST
00001b21: PUSH1 0x00
00001b23: DUP1
00001b24: MLOAD
00001b25: PUSH1 0x20
00001b27: PUSH2 0x2286
00001b2a: DUP4
00001b2b: CODECOPY
00001b2c: DUP2
00001b2d: MLOAD
00001b2e: SWAP2
00001b2f: MSTORE
00001b30: DUP1
00001b31: SLOAD
00001b32: PUSH1 0xff
00001b34: NOT
00001b35: AND
00001b36: SWAP1
00001b37: SSTORE
00001b38: JUMP
00001b39: JUMPDEST
00001b3a: PUSH2 0x1904
00001b3d: PUSH2 0x1acf
00001b40: JUMP
00001b41: JUMPDEST
00001b42: PUSH2 0x12cc
00001b45: PUSH2 0x1acf
00001b48: JUMP
00001b49: JUMPDEST
00001b4a: PUSH1 0x00
00001b4c: DUP1
00001b4d: MLOAD
00001b4e: PUSH1 0x20
00001b50: PUSH2 0x2286
00001b53: DUP4
00001b54: CODECOPY
00001b55: DUP2
00001b56: MLOAD
00001b57: SWAP2
00001b58: MSTORE
00001b59: SLOAD
00001b5a: PUSH1 0xff
00001b5c: AND
00001b5d: PUSH2 0x05fa
00001b60: JUMPI
00001b61: PUSH1 0x40
00001b63: MLOAD
00001b64: PUSH4 0x8dfc202b
00001b69: PUSH1 0xe0
00001b6b: SHL
00001b6c: DUP2
00001b6d: MSTORE
00001b6e: PUSH1 0x04
00001b70: ADD
00001b71: PUSH1 0x40
00001b73: MLOAD
00001b74: DUP1
00001b75: SWAP2
00001b76: SUB
00001b77: SWAP1
00001b78: REVERT
00001b79: JUMPDEST
00001b7a: PUSH1 0x01
00001b7c: PUSH1 0x01
00001b7e: PUSH1 0xa0
00001b80: SHL
00001b81: SUB
00001b82: DUP2
00001b83: AND
00001b84: PUSH1 0x00
00001b86: SWAP1
00001b87: DUP2
00001b88: MSTORE
00001b89: PUSH1 0x04
00001b8b: PUSH1 0x20
00001b8d: MSTORE
00001b8e: PUSH1 0x40
00001b90: DUP2
00001b91: KECCAK256
00001b92: PUSH1 0x01
00001b94: ADD
00001b95: SLOAD
00001b96: PUSH1 0xff
00001b98: AND
00001b99: ISZERO
00001b9a: PUSH2 0x1bb9
00001b9d: JUMPI
00001b9e: POP
00001b9f: PUSH1 0x01
00001ba1: PUSH1 0x01
00001ba3: PUSH1 0xa0
00001ba5: SHL
00001ba6: SUB
00001ba7: AND
00001ba8: PUSH1 0x00
00001baa: SWAP1
00001bab: DUP2
00001bac: MSTORE
00001bad: PUSH1 0x04
00001baf: PUSH1 0x20
00001bb1: MSTORE
00001bb2: PUSH1 0x40
00001bb4: SWAP1
00001bb5: KECCAK256
00001bb6: SLOAD
00001bb7: SWAP1
00001bb8: JUMP
00001bb9: JUMPDEST
00001bba: POP
00001bbb: PUSH1 0x00
00001bbd: NOT
00001bbe: SWAP2
00001bbf: SWAP1
00001bc0: POP
00001bc1: JUMP
00001bc2: JUMPDEST
00001bc3: PUSH1 0x40
00001bc5: MLOAD
00001bc6: PUSH1 0x01
00001bc8: PUSH1 0x01
00001bca: PUSH1 0xa0
00001bcc: SHL
00001bcd: SUB
00001bce: DUP5
00001bcf: DUP2
00001bd0: AND
00001bd1: PUSH1 0x24
00001bd3: DUP4
00001bd4: ADD
00001bd5: MSTORE
00001bd6: DUP4
00001bd7: DUP2
00001bd8: AND
00001bd9: PUSH1 0x44
00001bdb: DUP4
00001bdc: ADD
00001bdd: MSTORE
00001bde: PUSH1 0x64
00001be0: DUP3
00001be1: ADD
00001be2: DUP4
00001be3: SWAP1
00001be4: MSTORE
00001be5: PUSH2 0x1bfb
00001be8: SWAP2
00001be9: DUP7
00001bea: SWAP2
00001beb: DUP3
00001bec: AND
00001bed: SWAP1
00001bee: PUSH4 0x23b872dd
00001bf3: SWAP1
00001bf4: PUSH1 0x84
00001bf6: ADD
00001bf7: PUSH2 0x1988
00001bfa: JUMP
00001bfb: JUMPDEST
00001bfc: POP
00001bfd: POP
00001bfe: POP
00001bff: POP
00001c00: JUMP
00001c01: JUMPDEST
00001c02: PUSH1 0x00
00001c04: PUSH2 0x1c16
00001c07: PUSH1 0x01
00001c09: PUSH1 0x01
00001c0b: PUSH1 0xa0
00001c0d: SHL
00001c0e: SUB
00001c0f: DUP5
00001c10: AND
00001c11: DUP4
00001c12: PUSH2 0x1c64
00001c15: JUMP
00001c16: JUMPDEST
00001c17: SWAP1
00001c18: POP
00001c19: DUP1
00001c1a: MLOAD
00001c1b: PUSH1 0x00
00001c1d: EQ
00001c1e: ISZERO
00001c1f: DUP1
00001c20: ISZERO
00001c21: PUSH2 0x1c3b
00001c24: JUMPI
00001c25: POP
00001c26: DUP1
00001c27: DUP1
00001c28: PUSH1 0x20
00001c2a: ADD
00001c2b: SWAP1
00001c2c: MLOAD
00001c2d: DUP2
00001c2e: ADD
00001c2f: SWAP1
00001c30: PUSH2 0x1c39
00001c33: SWAP2
00001c34: SWAP1
00001c35: PUSH2 0x2219
00001c38: JUMP
00001c39: JUMPDEST
00001c3a: ISZERO
00001c3b: JUMPDEST
00001c3c: ISZERO
00001c3d: PUSH2 0x0dd9
00001c40: JUMPI
00001c41: PUSH1 0x40
00001c43: MLOAD
00001c44: PUSH4 0x5274afe7
00001c49: PUSH1 0xe0
00001c4b: SHL
00001c4c: DUP2
00001c4d: MSTORE
00001c4e: PUSH1 0x01
00001c50: PUSH1 0x01
00001c52: PUSH1 0xa0
00001c54: SHL
00001c55: SUB
00001c56: DUP5
00001c57: AND
00001c58: PUSH1 0x04
00001c5a: DUP3
00001c5b: ADD
00001c5c: MSTORE
00001c5d: PUSH1 0x24
00001c5f: ADD
00001c60: PUSH2 0x048e
00001c63: JUMP
00001c64: JUMPDEST
00001c65: PUSH1 0x60
00001c67: PUSH2 0x1c72
00001c6a: DUP4
00001c6b: DUP4
00001c6c: PUSH1 0x00
00001c6e: PUSH2 0x1c79
00001c71: JUMP
00001c72: JUMPDEST
00001c73: SWAP4
00001c74: SWAP3
00001c75: POP
00001c76: POP
00001c77: POP
00001c78: JUMP
00001c79: JUMPDEST
00001c7a: PUSH1 0x60
00001c7c: DUP2
00001c7d: SELFBALANCE
00001c7e: LT
00001c7f: ISZERO
00001c80: PUSH2 0x1c9e
00001c83: JUMPI
00001c84: PUSH1 0x40
00001c86: MLOAD
00001c87: PUSH4 0xcd786059
00001c8c: PUSH1 0xe0
00001c8e: SHL
00001c8f: DUP2
00001c90: MSTORE
00001c91: ADDRESS
00001c92: PUSH1 0x04
00001c94: DUP3
00001c95: ADD
00001c96: MSTORE
00001c97: PUSH1 0x24
00001c99: ADD
00001c9a: PUSH2 0x048e
00001c9d: JUMP
00001c9e: JUMPDEST
00001c9f: PUSH1 0x00
00001ca1: DUP1
00001ca2: DUP6
00001ca3: PUSH1 0x01
00001ca5: PUSH1 0x01
00001ca7: PUSH1 0xa0
00001ca9: SHL
00001caa: SUB
00001cab: AND
00001cac: DUP5
00001cad: DUP7
00001cae: PUSH1 0x40
00001cb0: MLOAD
00001cb1: PUSH2 0x1cba
00001cb4: SWAP2
00001cb5: SWAP1
00001cb6: PUSH2 0x2236
00001cb9: JUMP
00001cba: JUMPDEST
00001cbb: PUSH1 0x00
00001cbd: PUSH1 0x40
00001cbf: MLOAD
00001cc0: DUP1
00001cc1: DUP4
00001cc2: SUB
00001cc3: DUP2
00001cc4: DUP6
00001cc5: DUP8
00001cc6: GAS
00001cc7: CALL
00001cc8: SWAP3
00001cc9: POP
00001cca: POP
00001ccb: POP
00001ccc: RETURNDATASIZE
00001ccd: DUP1
00001cce: PUSH1 0x00
00001cd0: DUP2
00001cd1: EQ
00001cd2: PUSH2 0x1cf7
00001cd5: JUMPI
00001cd6: PUSH1 0x40
00001cd8: MLOAD
00001cd9: SWAP2
00001cda: POP
00001cdb: PUSH1 0x1f
00001cdd: NOT
00001cde: PUSH1 0x3f
00001ce0: RETURNDATASIZE
00001ce1: ADD
00001ce2: AND
00001ce3: DUP3
00001ce4: ADD
00001ce5: PUSH1 0x40
00001ce7: MSTORE
00001ce8: RETURNDATASIZE
00001ce9: DUP3
00001cea: MSTORE
00001ceb: RETURNDATASIZE
00001cec: PUSH1 0x00
00001cee: PUSH1 0x20
00001cf0: DUP5
00001cf1: ADD
00001cf2: RETURNDATACOPY
00001cf3: PUSH2 0x1cfc
00001cf6: JUMP
00001cf7: JUMPDEST
00001cf8: PUSH1 0x60
00001cfa: SWAP2
00001cfb: POP
00001cfc: JUMPDEST
00001cfd: POP
00001cfe: SWAP2
00001cff: POP
00001d00: SWAP2
00001d01: POP
00001d02: PUSH2 0x1d0c
00001d05: DUP7
00001d06: DUP4
00001d07: DUP4
00001d08: PUSH2 0x1d16
00001d0b: JUMP
00001d0c: JUMPDEST
00001d0d: SWAP7
00001d0e: SWAP6
00001d0f: POP
00001d10: POP
00001d11: POP
00001d12: POP
00001d13: POP
00001d14: POP
00001d15: JUMP
00001d16: JUMPDEST
00001d17: PUSH1 0x60
00001d19: DUP3
00001d1a: PUSH2 0x1d2b
00001d1d: JUMPI
00001d1e: PUSH2 0x1d26
00001d21: DUP3
00001d22: PUSH2 0x1d72
00001d25: JUMP
00001d26: JUMPDEST
00001d27: PUSH2 0x1c72
00001d2a: JUMP
00001d2b: JUMPDEST
00001d2c: DUP2
00001d2d: MLOAD
00001d2e: ISZERO
00001d2f: DUP1
00001d30: ISZERO
00001d31: PUSH2 0x1d42
00001d34: JUMPI
00001d35: POP
00001d36: PUSH1 0x01
00001d38: PUSH1 0x01
00001d3a: PUSH1 0xa0
00001d3c: SHL
00001d3d: SUB
00001d3e: DUP5
00001d3f: AND
00001d40: EXTCODESIZE
00001d41: ISZERO
00001d42: JUMPDEST
00001d43: ISZERO
00001d44: PUSH2 0x1d6b
00001d47: JUMPI
00001d48: PUSH1 0x40
00001d4a: MLOAD
00001d4b: PUSH4 0x9996b315
00001d50: PUSH1 0xe0
00001d52: SHL
00001d53: DUP2
00001d54: MSTORE
00001d55: PUSH1 0x01
00001d57: PUSH1 0x01
00001d59: PUSH1 0xa0
00001d5b: SHL
00001d5c: SUB
00001d5d: DUP6
00001d5e: AND
00001d5f: PUSH1 0x04
00001d61: DUP3
00001d62: ADD
00001d63: MSTORE
00001d64: PUSH1 0x24
00001d66: ADD
00001d67: PUSH2 0x048e
00001d6a: JUMP
00001d6b: JUMPDEST
00001d6c: POP
00001d6d: DUP1
00001d6e: PUSH2 0x1c72
00001d71: JUMP
00001d72: JUMPDEST
00001d73: DUP1
00001d74: MLOAD
00001d75: ISZERO
00001d76: PUSH2 0x1d82
00001d79: JUMPI
00001d7a: DUP1
00001d7b: MLOAD
00001d7c: DUP1
00001d7d: DUP3
00001d7e: PUSH1 0x20
00001d80: ADD
00001d81: REVERT
00001d82: JUMPDEST
00001d83: PUSH1 0x40
00001d85: MLOAD
00001d86: PUSH4 0x0a12f521
00001d8b: PUSH1 0xe1
00001d8d: SHL
00001d8e: DUP2
00001d8f: MSTORE
00001d90: PUSH1 0x04
00001d92: ADD
00001d93: PUSH1 0x40
00001d95: MLOAD
00001d96: DUP1
00001d97: SWAP2
00001d98: SUB
00001d99: SWAP1
00001d9a: REVERT
00001d9b: JUMPDEST
00001d9c: DUP1
00001d9d: CALLDATALOAD
00001d9e: PUSH1 0x01
00001da0: PUSH1 0x01
00001da2: PUSH1 0xa0
00001da4: SHL
00001da5: SUB
00001da6: DUP2
00001da7: AND
00001da8: DUP2
00001da9: EQ
00001daa: PUSH2 0x1db2
00001dad: JUMPI
00001dae: PUSH1 0x00
00001db0: DUP1
00001db1: REVERT
00001db2: JUMPDEST
00001db3: SWAP2
00001db4: SWAP1
00001db5: POP
00001db6: JUMP
00001db7: JUMPDEST
00001db8: PUSH1 0x00
00001dba: DUP1
00001dbb: DUP4
00001dbc: PUSH1 0x1f
00001dbe: DUP5
00001dbf: ADD
00001dc0: SLT
00001dc1: PUSH2 0x1dc9
00001dc4: JUMPI
00001dc5: PUSH1 0x00
00001dc7: DUP1
00001dc8: REVERT
00001dc9: JUMPDEST
00001dca: POP
00001dcb: DUP2
00001dcc: CALLDATALOAD
00001dcd: PUSH8 0xffffffffffffffff
00001dd6: DUP2
00001dd7: GT
00001dd8: ISZERO
00001dd9: PUSH2 0x1de1
00001ddc: JUMPI
00001ddd: PUSH1 0x00
00001ddf: DUP1
00001de0: REVERT
00001de1: JUMPDEST
00001de2: PUSH1 0x20
00001de4: DUP4
00001de5: ADD
00001de6: SWAP2
00001de7: POP
00001de8: DUP4
00001de9: PUSH1 0x20
00001deb: DUP3
00001dec: PUSH1 0x05
00001dee: SHL
00001def: DUP6
00001df0: ADD
00001df1: ADD
00001df2: GT
00001df3: ISZERO
00001df4: PUSH2 0x1dfc
00001df7: JUMPI
00001df8: PUSH1 0x00
00001dfa: DUP1
00001dfb: REVERT
00001dfc: JUMPDEST
00001dfd: SWAP3
00001dfe: POP
00001dff: SWAP3
00001e00: SWAP1
00001e01: POP
00001e02: JUMP
00001e03: JUMPDEST
00001e04: PUSH1 0x00
00001e06: DUP1
00001e07: PUSH1 0x00
00001e09: DUP1
00001e0a: PUSH1 0x00
00001e0c: DUP1
00001e0d: PUSH1 0x00
00001e0f: PUSH1 0xa0
00001e11: DUP9
00001e12: DUP11
00001e13: SUB
00001e14: SLT
00001e15: ISZERO
00001e16: PUSH2 0x1e1e
00001e19: JUMPI
00001e1a: PUSH1 0x00
00001e1c: DUP1
00001e1d: REVERT
00001e1e: JUMPDEST
00001e1f: PUSH2 0x1e27
00001e22: DUP9
00001e23: PUSH2 0x1d9b
00001e26: JUMP
00001e27: JUMPDEST
00001e28: SWAP7
00001e29: POP
00001e2a: PUSH2 0x1e35
00001e2d: PUSH1 0x20
00001e2f: DUP10
00001e30: ADD
00001e31: PUSH2 0x1d9b
00001e34: JUMP
00001e35: JUMPDEST
00001e36: SWAP6
00001e37: POP
00001e38: PUSH2 0x1e43
00001e3b: PUSH1 0x40
00001e3d: DUP10
00001e3e: ADD
00001e3f: PUSH2 0x1d9b
00001e42: JUMP
00001e43: JUMPDEST
00001e44: SWAP5
00001e45: POP
00001e46: PUSH1 0x60
00001e48: DUP9
00001e49: ADD
00001e4a: CALLDATALOAD
00001e4b: PUSH8 0xffffffffffffffff
00001e54: DUP1
00001e55: DUP3
00001e56: GT
00001e57: ISZERO
00001e58: PUSH2 0x1e60
00001e5b: JUMPI
00001e5c: PUSH1 0x00
00001e5e: DUP1
00001e5f: REVERT
00001e60: JUMPDEST
00001e61: PUSH2 0x1e6c
00001e64: DUP12
00001e65: DUP4
00001e66: DUP13
00001e67: ADD
00001e68: PUSH2 0x1db7
00001e6b: JUMP
00001e6c: JUMPDEST
00001e6d: SWAP1
00001e6e: SWAP7
00001e6f: POP
00001e70: SWAP5
00001e71: POP
00001e72: PUSH1 0x80
00001e74: DUP11
00001e75: ADD
00001e76: CALLDATALOAD
00001e77: SWAP2
00001e78: POP
00001e79: DUP1
00001e7a: DUP3
00001e7b: GT
00001e7c: ISZERO
00001e7d: PUSH2 0x1e85
00001e80: JUMPI
00001e81: PUSH1 0x00
00001e83: DUP1
00001e84: REVERT
00001e85: JUMPDEST
00001e86: POP
00001e87: PUSH2 0x1e92
00001e8a: DUP11
00001e8b: DUP3
00001e8c: DUP12
00001e8d: ADD
00001e8e: PUSH2 0x1db7
00001e91: JUMP
00001e92: JUMPDEST
00001e93: SWAP9
00001e94: SWAP12
00001e95: SWAP8
00001e96: SWAP11
00001e97: POP
00001e98: SWAP6
00001e99: SWAP9
00001e9a: POP
00001e9b: SWAP4
00001e9c: SWAP7
00001e9d: SWAP3
00001e9e: SWAP6
00001e9f: SWAP3
00001ea0: SWAP4
00001ea1: POP
00001ea2: POP
00001ea3: POP
00001ea4: JUMP
00001ea5: JUMPDEST
00001ea6: PUSH1 0x00
00001ea8: PUSH1 0x20
00001eaa: DUP3
00001eab: DUP5
00001eac: SUB
00001ead: SLT
00001eae: ISZERO
00001eaf: PUSH2 0x1eb7
00001eb2: JUMPI
00001eb3: PUSH1 0x00
00001eb5: DUP1
00001eb6: REVERT
00001eb7: JUMPDEST
00001eb8: PUSH2 0x1c72
00001ebb: DUP3
00001ebc: PUSH2 0x1d9b
00001ebf: JUMP
00001ec0: JUMPDEST
00001ec1: PUSH1 0x00
00001ec3: DUP1
00001ec4: PUSH1 0x40
00001ec6: DUP4
00001ec7: DUP6
00001ec8: SUB
00001ec9: SLT
00001eca: ISZERO
00001ecb: PUSH2 0x1ed3
00001ece: JUMPI
00001ecf: PUSH1 0x00
00001ed1: DUP1
00001ed2: REVERT
00001ed3: JUMPDEST
00001ed4: PUSH2 0x1edc
00001ed7: DUP4
00001ed8: PUSH2 0x1d9b
00001edb: JUMP
00001edc: JUMPDEST
00001edd: SWAP5
00001ede: PUSH1 0x20
00001ee0: SWAP4
00001ee1: SWAP1
00001ee2: SWAP4
00001ee3: ADD
00001ee4: CALLDATALOAD
00001ee5: SWAP4
00001ee6: POP
00001ee7: POP
00001ee8: POP
00001ee9: JUMP
00001eea: JUMPDEST
00001eeb: PUSH1 0x00
00001eed: DUP1
00001eee: PUSH1 0x00
00001ef0: DUP1
00001ef1: PUSH1 0x00
00001ef3: PUSH1 0x60
00001ef5: DUP7
00001ef6: DUP9
00001ef7: SUB
00001ef8: SLT
00001ef9: ISZERO
00001efa: PUSH2 0x1f02
00001efd: JUMPI
00001efe: PUSH1 0x00
00001f00: DUP1
00001f01: REVERT
00001f02: JUMPDEST
00001f03: DUP6
00001f04: CALLDATALOAD
00001f05: PUSH8 0xffffffffffffffff
00001f0e: DUP1
00001f0f: DUP3
00001f10: GT
00001f11: ISZERO
00001f12: PUSH2 0x1f1a
00001f15: JUMPI
00001f16: PUSH1 0x00
00001f18: DUP1
00001f19: REVERT
00001f1a: JUMPDEST
00001f1b: PUSH2 0x1f26
00001f1e: DUP10
00001f1f: DUP4
00001f20: DUP11
00001f21: ADD
00001f22: PUSH2 0x1db7
00001f25: JUMP
00001f26: JUMPDEST
00001f27: SWAP1
00001f28: SWAP8
00001f29: POP
00001f2a: SWAP6
00001f2b: POP
00001f2c: PUSH1 0x20
00001f2e: DUP9
00001f2f: ADD
00001f30: CALLDATALOAD
00001f31: SWAP2
00001f32: POP
00001f33: DUP1
00001f34: DUP3
00001f35: GT
00001f36: ISZERO
00001f37: PUSH2 0x1f3f
00001f3a: JUMPI
00001f3b: PUSH1 0x00
00001f3d: DUP1
00001f3e: REVERT
00001f3f: JUMPDEST
00001f40: POP
00001f41: PUSH2 0x1f4c
00001f44: DUP9
00001f45: DUP3
00001f46: DUP10
00001f47: ADD
00001f48: PUSH2 0x1db7
00001f4b: JUMP
00001f4c: JUMPDEST
00001f4d: SWAP1
00001f4e: SWAP5
00001f4f: POP
00001f50: SWAP3
00001f51: POP
00001f52: PUSH2 0x1f5f
00001f55: SWAP1
00001f56: POP
00001f57: PUSH1 0x40
00001f59: DUP8
00001f5a: ADD
00001f5b: PUSH2 0x1d9b
00001f5e: JUMP
00001f5f: JUMPDEST
00001f60: SWAP1
00001f61: POP
00001f62: SWAP3
00001f63: SWAP6
00001f64: POP
00001f65: SWAP3
00001f66: SWAP6
00001f67: SWAP1
00001f68: SWAP4
00001f69: POP
00001f6a: JUMP
00001f6b: JUMPDEST
00001f6c: DUP1
00001f6d: ISZERO
00001f6e: ISZERO
00001f6f: DUP2
00001f70: EQ
00001f71: PUSH2 0x12ff
00001f74: JUMPI
00001f75: PUSH1 0x00
00001f77: DUP1
00001f78: REVERT
00001f79: JUMPDEST
00001f7a: PUSH1 0x00
00001f7c: DUP1
00001f7d: PUSH1 0x00
00001f7f: PUSH1 0x60
00001f81: DUP5
00001f82: DUP7
00001f83: SUB
00001f84: SLT
00001f85: ISZERO
00001f86: PUSH2 0x1f8e
00001f89: JUMPI
00001f8a: PUSH1 0x00
00001f8c: DUP1
00001f8d: REVERT
00001f8e: JUMPDEST
00001f8f: PUSH2 0x1f97
00001f92: DUP5
00001f93: PUSH2 0x1d9b
00001f96: JUMP
00001f97: JUMPDEST
00001f98: SWAP3
00001f99: POP
00001f9a: PUSH1 0x20
00001f9c: DUP5
00001f9d: ADD
00001f9e: CALLDATALOAD
00001f9f: SWAP2
00001fa0: POP
00001fa1: PUSH1 0x40
00001fa3: DUP5
00001fa4: ADD
00001fa5: CALLDATALOAD
00001fa6: PUSH2 0x1fae
00001fa9: DUP2
00001faa: PUSH2 0x1f6b
00001fad: JUMP
00001fae: JUMPDEST
00001faf: DUP1
00001fb0: SWAP2
00001fb1: POP
00001fb2: POP
00001fb3: SWAP3
00001fb4: POP
00001fb5: SWAP3
00001fb6: POP
00001fb7: SWAP3
00001fb8: JUMP
00001fb9: JUMPDEST
00001fba: PUSH1 0x20
00001fbc: DUP1
00001fbd: DUP3
00001fbe: MSTORE
00001fbf: DUP3
00001fc0: MLOAD
00001fc1: DUP3
00001fc2: DUP3
00001fc3: ADD
00001fc4: DUP2
00001fc5: SWAP1
00001fc6: MSTORE
00001fc7: PUSH1 0x00
00001fc9: SWAP2
00001fca: SWAP1
00001fcb: PUSH1 0x40
00001fcd: SWAP1
00001fce: DUP2
00001fcf: DUP6
00001fd0: ADD
00001fd1: SWAP1
00001fd2: DUP7
00001fd3: DUP5
00001fd4: ADD
00001fd5: DUP6
00001fd6: JUMPDEST
00001fd7: DUP3
00001fd8: DUP2
00001fd9: LT
00001fda: ISZERO
00001fdb: PUSH2 0x2010
00001fde: JUMPI
00001fdf: DUP2
00001fe0: MLOAD
00001fe1: DUP1
00001fe2: MLOAD
00001fe3: PUSH1 0x01
00001fe5: PUSH1 0x01
00001fe7: PUSH1 0xa0
00001fe9: SHL
00001fea: SUB
00001feb: AND
00001fec: DUP6
00001fed: MSTORE
00001fee: DUP7
00001fef: DUP2
00001ff0: ADD
00001ff1: MLOAD
00001ff2: DUP8
00001ff3: DUP7
00001ff4: ADD
00001ff5: MSTORE
00001ff6: DUP6
00001ff7: ADD
00001ff8: MLOAD
00001ff9: ISZERO
00001ffa: ISZERO
00001ffb: DUP6
00001ffc: DUP6
00001ffd: ADD
00001ffe: MSTORE
00001fff: PUSH1 0x60
00002001: SWAP1
00002002: SWAP4
00002003: ADD
00002004: SWAP3
00002005: SWAP1
00002006: DUP6
00002007: ADD
00002008: SWAP1
00002009: PUSH1 0x01
0000200b: ADD
0000200c: PUSH2 0x1fd6
0000200f: JUMP
00002010: JUMPDEST
00002011: POP
00002012: SWAP2
00002013: SWAP8
00002014: SWAP7
00002015: POP
00002016: POP
00002017: POP
00002018: POP
00002019: POP
0000201a: POP
0000201b: POP
0000201c: JUMP
0000201d: JUMPDEST
0000201e: PUSH1 0x00
00002020: DUP1
00002021: PUSH1 0x00
00002023: PUSH1 0x60
00002025: DUP5
00002026: DUP7
00002027: SUB
00002028: SLT
00002029: ISZERO
0000202a: PUSH2 0x2032
0000202d: JUMPI
0000202e: PUSH1 0x00
00002030: DUP1
00002031: REVERT
00002032: JUMPDEST
00002033: PUSH2 0x203b
00002036: DUP5
00002037: PUSH2 0x1d9b
0000203a: JUMP
0000203b: JUMPDEST
0000203c: SWAP3
0000203d: POP
0000203e: PUSH1 0x20
00002040: DUP5
00002041: ADD
00002042: CALLDATALOAD
00002043: SWAP2
00002044: POP
00002045: PUSH2 0x2050
00002048: PUSH1 0x40
0000204a: DUP6
0000204b: ADD
0000204c: PUSH2 0x1d9b
0000204f: JUMP
00002050: JUMPDEST
00002051: SWAP1
00002052: POP
00002053: SWAP3
00002054: POP
00002055: SWAP3
00002056: POP
00002057: SWAP3
00002058: JUMP
00002059: JUMPDEST
0000205a: PUSH1 0x20
0000205c: DUP1
0000205d: DUP3
0000205e: MSTORE
0000205f: PUSH1 0x29
00002061: SWAP1
00002062: DUP3
00002063: ADD
00002064: MSTORE
00002065: PUSH32 0x4d7270634465706f7369743a206f6e6c7920636f6e73656e737573206f722067
00002086: PUSH1 0x40
00002088: DUP3
00002089: ADD
0000208a: MSTORE
0000208b: PUSH9 0x6f7665726e616e6365
00002095: PUSH1 0xb8
00002097: SHL
00002098: PUSH1 0x60
0000209a: DUP3
0000209b: ADD
0000209c: MSTORE
0000209d: PUSH1 0x80
0000209f: ADD
000020a0: SWAP1
000020a1: JUMP
000020a2: JUMPDEST
000020a3: PUSH1 0x20
000020a5: DUP1
000020a6: DUP3
000020a7: MSTORE
000020a8: PUSH1 0x24
000020aa: SWAP1
000020ab: DUP3
000020ac: ADD
000020ad: MSTORE
000020ae: PUSH32 0x4d7270634465706f7369743a207468697320746f6b656e206973206e6f74206b
000020cf: PUSH1 0x40
000020d1: DUP3
000020d2: ADD
000020d3: MSTORE
000020d4: PUSH4 0x3737bbb7
000020d9: PUSH1 0xe1
000020db: SHL
000020dc: PUSH1 0x60
000020de: DUP3
000020df: ADD
000020e0: MSTORE
000020e1: PUSH1 0x80
000020e3: ADD
000020e4: SWAP1
000020e5: JUMP
000020e6: JUMPDEST
000020e7: PUSH1 0x01
000020e9: PUSH1 0x01
000020eb: PUSH1 0xa0
000020ed: SHL
000020ee: SUB
000020ef: DUP4
000020f0: AND
000020f1: DUP2
000020f2: MSTORE
000020f3: PUSH1 0x40
000020f5: DUP2
000020f6: ADD
000020f7: PUSH1 0x05
000020f9: DUP4
000020fa: LT
000020fb: PUSH2 0x2114
000020fe: JUMPI
000020ff: PUSH4 0x4e487b71
00002104: PUSH1 0xe0
00002106: SHL
00002107: PUSH1 0x00
00002109: MSTORE
0000210a: PUSH1 0x21
0000210c: PUSH1 0x04
0000210e: MSTORE
0000210f: PUSH1 0x24
00002111: PUSH1 0x00
00002113: REVERT
00002114: JUMPDEST
00002115: DUP3
00002116: PUSH1 0x20
00002118: DUP4
00002119: ADD
0000211a: MSTORE
0000211b: SWAP4
0000211c: SWAP3
0000211d: POP
0000211e: POP
0000211f: POP
00002120: JUMP
00002121: JUMPDEST
00002122: PUSH4 0x4e487b71
00002127: PUSH1 0xe0
00002129: SHL
0000212a: PUSH1 0x00
0000212c: MSTORE
0000212d: PUSH1 0x32
0000212f: PUSH1 0x04
00002131: MSTORE
00002132: PUSH1 0x24
00002134: PUSH1 0x00
00002136: REVERT
00002137: JUMPDEST
00002138: PUSH1 0x00
0000213a: PUSH1 0x20
0000213c: DUP3
0000213d: DUP5
0000213e: SUB
0000213f: SLT
00002140: ISZERO
00002141: PUSH2 0x2149
00002144: JUMPI
00002145: PUSH1 0x00
00002147: DUP1
00002148: REVERT
00002149: JUMPDEST
0000214a: POP
0000214b: MLOAD
0000214c: SWAP2
0000214d: SWAP1
0000214e: POP
0000214f: JUMP
00002150: JUMPDEST
00002151: PUSH1 0x40
00002153: DUP1
00002154: DUP3
00002155: MSTORE
00002156: DUP2
00002157: ADD
00002158: DUP5
00002159: SWAP1
0000215a: MSTORE
0000215b: PUSH1 0x00
0000215d: DUP6
0000215e: PUSH1 0x60
00002160: DUP4
00002161: ADD
00002162: DUP3
00002163: JUMPDEST
00002164: DUP8
00002165: DUP2
00002166: LT
00002167: ISZERO
00002168: PUSH2 0x2191
0000216b: JUMPI
0000216c: PUSH1 0x01
0000216e: PUSH1 0x01
00002170: PUSH1 0xa0
00002172: SHL
00002173: SUB
00002174: PUSH2 0x217c
00002177: DUP5
00002178: PUSH2 0x1d9b
0000217b: JUMP
0000217c: JUMPDEST
0000217d: AND
0000217e: DUP3
0000217f: MSTORE
00002180: PUSH1 0x20
00002182: SWAP3
00002183: DUP4
00002184: ADD
00002185: SWAP3
00002186: SWAP1
00002187: SWAP2
00002188: ADD
00002189: SWAP1
0000218a: PUSH1 0x01
0000218c: ADD
0000218d: PUSH2 0x2163
00002190: JUMP
00002191: JUMPDEST
00002192: POP
00002193: DUP4
00002194: DUP2
00002195: SUB
00002196: PUSH1 0x20
00002198: DUP6
00002199: ADD
0000219a: MSTORE
0000219b: DUP5
0000219c: DUP2
0000219d: MSTORE
0000219e: PUSH1 0x01
000021a0: PUSH1 0x01
000021a2: PUSH1 0xfb
000021a4: SHL
000021a5: SUB
000021a6: DUP6
000021a7: GT
000021a8: ISZERO
000021a9: PUSH2 0x21b1
000021ac: JUMPI
000021ad: PUSH1 0x00
000021af: DUP1
000021b0: REVERT
000021b1: JUMPDEST
000021b2: DUP5
000021b3: PUSH1 0x05
000021b5: SHL
000021b6: SWAP2
000021b7: POP
000021b8: DUP2
000021b9: DUP7
000021ba: PUSH1 0x20
000021bc: DUP4
000021bd: ADD
000021be: CALLDATACOPY
000021bf: ADD
000021c0: PUSH1 0x20
000021c2: ADD
000021c3: SWAP7
000021c4: SWAP6
000021c5: POP
000021c6: POP
000021c7: POP
000021c8: POP
000021c9: POP
000021ca: POP
000021cb: JUMP
000021cc: JUMPDEST
000021cd: PUSH4 0x4e487b71
000021d2: PUSH1 0xe0
000021d4: SHL
000021d5: PUSH1 0x00
000021d7: MSTORE
000021d8: PUSH1 0x41
000021da: PUSH1 0x04
000021dc: MSTORE
000021dd: PUSH1 0x24
000021df: PUSH1 0x00
000021e1: REVERT
000021e2: JUMPDEST
000021e3: DUP2
000021e4: DUP2
000021e5: SUB
000021e6: DUP2
000021e7: DUP2
000021e8: GT
000021e9: ISZERO
000021ea: PUSH2 0x103e
000021ed: JUMPI
000021ee: PUSH4 0x4e487b71
000021f3: PUSH1 0xe0
000021f5: SHL
000021f6: PUSH1 0x00
000021f8: MSTORE
000021f9: PUSH1 0x11
000021fb: PUSH1 0x04
000021fd: MSTORE
000021fe: PUSH1 0x24
00002200: PUSH1 0x00
00002202: REVERT
00002203: JUMPDEST
00002204: PUSH4 0x4e487b71
00002209: PUSH1 0xe0
0000220b: SHL
0000220c: PUSH1 0x00
0000220e: MSTORE
0000220f: PUSH1 0x31
00002211: PUSH1 0x04
00002213: MSTORE
00002214: PUSH1 0x24
00002216: PUSH1 0x00
00002218: REVERT
00002219: JUMPDEST
0000221a: PUSH1 0x00
0000221c: PUSH1 0x20
0000221e: DUP3
0000221f: DUP5
00002220: SUB
00002221: SLT
00002222: ISZERO
00002223: PUSH2 0x222b
00002226: JUMPI
00002227: PUSH1 0x00
00002229: DUP1
0000222a: REVERT
0000222b: JUMPDEST
0000222c: DUP2
0000222d: MLOAD
0000222e: PUSH2 0x1c72
00002231: DUP2
00002232: PUSH2 0x1f6b
00002235: JUMP
00002236: JUMPDEST
00002237: PUSH1 0x00
00002239: DUP3
0000223a: MLOAD
0000223b: PUSH1 0x00
0000223d: JUMPDEST
0000223e: DUP2
0000223f: DUP2
00002240: LT
00002241: ISZERO
00002242: PUSH2 0x2257
00002245: JUMPI
00002246: PUSH1 0x20
00002248: DUP2
00002249: DUP7
0000224a: ADD
0000224b: DUP2
0000224c: ADD
0000224d: MLOAD
0000224e: DUP6
0000224f: DUP4
00002250: ADD
00002251: MSTORE
00002252: ADD
00002253: PUSH2 0x223d
00002256: JUMP
00002257: JUMPDEST
00002258: POP
00002259: PUSH1 0x00
0000225b: SWAP3
0000225c: ADD
0000225d: SWAP2
0000225e: DUP3
0000225f: MSTORE
00002260: POP
00002261: SWAP2
00002262: SWAP1
00002263: POP
00002264: JUMP
00002265: INVALID
00002266: UNKNOWN(0xE2)
00002267: ADDRESS
00002268: UNKNOWN(0xCC)
00002269: SMOD
0000226a: UNKNOWN(0x2D)
0000226b: LOG0
0000226c: UNKNOWN(0xA6)
0000226d: PUSH30 0x5ba53161160a973bd0b5b0d350fffd7d990c56e428c46b46cd5ed15c6e18
0000228c: PUSH31 0x77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d
000022ac: UNKNOWN(0x0D)
000022ad: UNKNOWN(0xF9)
000022ae: UNKNOWN(0x22)
000022af: UNKNOWN(0x23)
000022b0: ADD
000022b1: DUP12
000022b2: ORIGIN
000022b3: UNKNOWN(0xB4)
000022b4: UNKNOWN(0xD1)
000022b5: STATICCALL
000022b6: CHAINID
000022b7: UNKNOWN(0xE0)
000022b8: PUSH18 0x723d6817e2486d003becc55f00a264697066
000022cb: PUSH20 0x58221220cedd3c655d963eb54ad6528ebd2c0257
000022e0: UNKNOWN(0xC8)
000022e1: UNKNOWN(0xB5)
000022e2: UNKNOWN(0x4C)
000022e3: CALLDATALOAD
000022e4: SWAP12
000022e5: UNKNOWN(0xCD)
000022e6: BLOBHASH
000022e7: UNKNOWN(0xD9)
000022e8: UNKNOWN(0xD2)
000022e9: STOP
000022ea: UNKNOWN(0x0D)
000022eb: UNKNOWN(0xD0)
000022ec: UNKNOWN(0xE4)
000022ed: BALANCE
000022ee: UNKNOWN(0x23)
000022ef: UNKNOWN(0xC4)
000022f0: PUSH5 0x736f6c6343
000022f6: STOP
000022f7: ADDMOD
000022f8: OR
000022f9: STOP
000022fa: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xd0965645",
            "selector": "0xd0965645",
            "calldata_variants": [
                "0xd0965645",
                "0xd09656450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd3c7c2c7",
            "selector": "0xd3c7c2c7",
            "calldata_variants": [
                "0xd3c7c2c7",
                "0xd3c7c2c70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe0149124",
            "selector": "0xe0149124",
            "calldata_variants": [
                "0xe0149124",
                "0xe01491240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe12f3a61",
            "selector": "0xe12f3a61",
            "calldata_variants": [
                "0xe12f3a61",
                "0xe12f3a610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf069f712",
            "selector": "0xf069f712",
            "calldata_variants": [
                "0xf069f712",
                "0xf069f7120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8456cb59",
            "selector": "0x8456cb59",
            "calldata_variants": [
                "0x8456cb59",
                "0x8456cb590000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 8882,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x4c4118d7f73ede8f27f7b2d17ea52352577100de8b08cf0a9e2b343a5fe9fa46
call_targets: 0x5e1e6dcf05fb49568aa66f40b9e3834c86008c8f
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4c4118d7f73ede8f27f7b2d17ea52352577100de8b08cf0a9e2b343a5fe9fa46",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5e1e6dcf05fb49568aa66f40b9e3834c86008c8f"
    ],
    "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": "0xd0965645",
            "selector": "0xd0965645",
            "calldata_variants": [
                "0xd0965645",
                "0xd09656450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd3c7c2c7",
            "selector": "0xd3c7c2c7",
            "calldata_variants": [
                "0xd3c7c2c7",
                "0xd3c7c2c70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe0149124",
            "selector": "0xe0149124",
            "calldata_variants": [
                "0xe0149124",
                "0xe01491240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe12f3a61",
            "selector": "0xe12f3a61",
            "calldata_variants": [
                "0xe12f3a61",
                "0xe12f3a610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf069f712",
            "selector": "0xf069f712",
            "calldata_variants": [
                "0xf069f712",
                "0xf069f7120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8456cb59",
            "selector": "0x8456cb59",
            "calldata_variants": [
                "0x8456cb59",
                "0x8456cb590000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7367,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [
        {
            "pc": 8882,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 1
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x4c4118d7f73ede8f27f7b2d17ea52352577100de8b08cf0a9e2b343a5fe9fa46
call_targets: 0x5e1e6dcf05fb49568aa66f40b9e3834c86008c8f
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4c4118d7f73ede8f27f7b2d17ea52352577100de8b08cf0a9e2b343a5fe9fa46",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x5e1e6dcf05fb49568aa66f40b9e3834c86008c8f"
    ],
    "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": "0xd0965645",
            "selector": "0xd0965645",
            "calldata_variants": [
                "0xd0965645",
                "0xd09656450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd3c7c2c7",
            "selector": "0xd3c7c2c7",
            "calldata_variants": [
                "0xd3c7c2c7",
                "0xd3c7c2c70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe0149124",
            "selector": "0xe0149124",
            "calldata_variants": [
                "0xe0149124",
                "0xe01491240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe12f3a61",
            "selector": "0xe12f3a61",
            "calldata_variants": [
                "0xe12f3a61",
                "0xe12f3a610000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf069f712",
            "selector": "0xf069f712",
            "calldata_variants": [
                "0xf069f712",
                "0xf069f7120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8456cb59",
            "selector": "0x8456cb59",
            "calldata_variants": [
                "0x8456cb59",
                "0x8456cb590000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7367,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": [
        {
            "pc": 8882,
            "type": "tx_origin_used"
        }
    ]
}
medium upgradeability codex Proxy can be hijacked if not initialized atomically 75 no
view
evidence_json
{
    "evidence": "`initialize` is external and only protected by `initializer`, so the first caller sets critical roles.",
    "locations": [
        "contracts/MrpcDeposit.sol:44"
    ],
    "recommendation": "Ensure the proxy is initialized atomically at deployment (e.g., constructor data on the proxy or a deployment script that calls `initialize` immediately). Consider deployment safeguards to prevent uninitialized proxies.",
    "exploit_scenario": "If the proxy is deployed without calling `initialize` in the same transaction, an attacker can call `initialize` first and set themselves as consensus/governance/treasury, then drain deposits via `collectPayment` or change token controls."
}
low upgradeability codex Implementation contract is left initializable 65 no
view
evidence_json
{
    "evidence": "No constructor disables initializers; `initialize` is publicly callable once on any deployment of the implementation.",
    "locations": [
        "contracts/MrpcDeposit.sol:13",
        "contracts/MrpcDeposit.sol:44"
    ],
    "recommendation": "Add a constructor that calls `_disableInitializers()` to lock the implementation, and avoid sending assets to the implementation address.",
    "exploit_scenario": "Anyone can initialize the implementation contract itself and take control of it. If tokens are mistakenly sent to the implementation address, the attacker can call `collectPayment` to withdraw them."
}