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

Analysis Run

b3b26998-7224-4497-922f-149e2a3c3073

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 6:35 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
Untrusted CALL target/value reachable
crit 0 high 0 proxy context implementation known
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
30450 report.consolidate complete 1 / 1 3 months ago
110498 artifact.fetch failed 1 / 3 1 week ago
110499 tool.cast_disasm complete 1 / 3 1 week ago
110500 analysis.bundle complete 1 / 3 1 week ago
110501 capability.graph complete 1 / 3 1 week ago
110502 detector.run complete 1 / 3 1 week ago
110503 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
2 findings: signatures for bridge-out are replayable across same-chain bridge deployments due to missing contract domain separation, and ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize the bridge).
View stderr
[codex:1304167] OpenAI Codex v0.77.0 (research preview)
[codex:1304167] --------
[codex:1304167] workdir: /tmp/codex-multi-8yspaj5h
[codex:1304167] model: gpt-5.2-codex
[codex:1304167] provider: openai
[codex:1304167] approval: never
[codex:1304167] sandbox: read-only
[codex:1304167] reasoning effort: xhigh
[codex:1304167] reasoning summaries: auto
[codex:1304167] session id: 019b68ca-9a2b-7c20-ba7b-a14da3d4e8ad
[codex:1304167] --------
[codex:1304167] user
[codex:1304167] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1304167] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1304167] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1304167] 
[codex:1304167] Scope rules:
[codex:1304167] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1304167] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1304167] 
[codex:1304167] Output MUST be valid JSON matching the provided schema.
[codex:1304167] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1304167] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1304167] 
[codex:1304167] Output constraints (IMPORTANT):
[codex:1304167] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1304167] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1304167] mcp startup: no servers
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Preparing to read AUDIT_BUNDLE.txt**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc ls in /tmp/codex-multi-8yspaj5h succeeded in 5ms:
[codex:1304167] AUDIT_BUNDLE.txt
[codex:1304167] codex-output-schema.json
[codex:1304167] contracts
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 5ms:
[codex:1304167] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1304167] 
[codex:1304167] ================================================================================
[codex:1304167] FILE: contracts/@keep-network/bitcoin-spv-sol/contracts/BTCUtils.sol
[codex:1304167] ================================================================================
[codex:1304167] pragma solidity ^0.8.4;
[codex:1304167] 
[codex:1304167] /** @title BitcoinSPV */
[codex:1304167] /** @author Summa (https://summa.one) */
[codex:1304167] 
[codex:1304167] import {BytesLib} from "./BytesLib.sol";
[codex:1304167] import {SafeMath} from "./SafeMath.sol";
[codex:1304167] 
[codex:1304167] library BTCUtils {
[codex:1304167]     using BytesLib for bytes;
[codex:1304167]     using SafeMath for uint256;
[codex:1304167] 
[codex:1304167]     // The target at minimum Difficulty. Also the target of the genesis block
[codex:1304167]     uint256 public constant DIFF1_TARGET = 0xffff0000000000000000000000000000000000000000000000000000;
[codex:1304167] 
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Reading entire AUDIT_BUNDLE file**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]     /// @return          The digest
[codex:1304167]     function hash160(bytes memory _b) internal pure returns (bytes memory) {
[codex:1304167]         return abi.encodePacked(ripemd160(abi.encodePacked(sha256(_b))));
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /// @notice          Implements bitcoin's hash160 (sha2 + ripemd160)
[codex:1304167]     /// @dev             sha2 precompile at address(2), ripemd160 at address(3)
[codex:1304167]     /// @param _b        The pre-image
[codex:1304167]     /// @return res      The digest
[codex:1304167]     function hash160View(bytes memory _b) internal view returns (bytes20 res) {
[codex:1304167]         // solium-disable-next-line security/no-inline-assembly
[codex:1304167]         assembly {
[codex:1304167]             pop(staticcall(gas(), 2, add(_b, 32), mload(_b), 0x00, 32))
[codex:1304167]             pop(staticcall(gas(), 3, 0x00, 32, 0x00, 32))
[codex:1304167]             // read from position 12 = 0c
[codex:1304167]             res := mload(0x0c)
[codex:1304167]         }
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /// @notice          Implements bitcoin's hash256 (double sha2)
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Continuing to read large file**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]     /* Witness Input */
[codex:1304167]     /* ************* */
[codex:1304167] 
[codex:1304167]     /// @notice          Extracts the LE sequence bytes from an input
[codex:1304167]     /// @dev             Sequence is used for relative time locks
[codex:1304167]     /// @param _input    The WITNESS input
[codex:1304167]     /// @return          The sequence bytes (LE uint)
[codex:1304167]     function extractSequenceLEWitness(bytes memory _input) internal pure returns (bytes4) {
[codex:1304167]         return _input.slice4(37);
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /// @notice          Extracts the sequence from the input in a tx
[codex:1304167]     /// @dev             Sequence is a 4-byte little-endian number
[codex:1304167]     /// @param _input    The WITNESS input
[codex:1304167]     /// @return          The sequence number (big-endian uint)
[codex:1304167]     function extractSequenceWitness(bytes memory _input) internal pure returns (uint32) {
[codex:1304167]         uint32 _leSeqence = uint32(extractSequenceLEWitness(_input));
[codex:1304167]         uint32 _inputeSequence = reverseUint32(_leSeqence);
[codex:1304167]         return _inputeSequence;
[codex:1304167]     }
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Continuing task**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /// @notice          Concatenates and hashes two inputs for merkle proving
[codex:1304167]     /// @param _a        The first hash
[codex:1304167]     /// @param _b        The second hash
[codex:1304167]     /// @return          The double-sha256 of the concatenated hashes
[codex:1304167]     function _hash256MerkleStep(bytes memory _a, bytes memory _b) internal view returns (bytes32) {
[codex:1304167]         return hash256View(abi.encodePacked(_a, _b));
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /// @notice          Concatenates and hashes two inputs for merkle proving
[codex:1304167]     /// @param _a        The first hash
[codex:1304167]     /// @param _b        The second hash
[codex:1304167]     /// @return          The double-sha256 of the concatenated hashes
[codex:1304167]     function _hash256MerkleStep(bytes32 _a, bytes32 _b) internal view returns (bytes32) {
[codex:1304167]         return hash256Pair(_a, _b);
[codex:1304167]     }
[codex:1304167] 
[codex:1304167] 
[codex:1304167]     /// @notice          Verifies a Bitcoin-style merkle tree
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Continuing exploration**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 5ms:
[codex:1304167]     /// The length of the slice will equal the length of the destination array.
[codex:1304167]     /// @dev Make sure the destination array has afterspace if required.
[codex:1304167]     /// @param _bytes The source array
[codex:1304167]     /// @param _dest The destination array.
[codex:1304167]     /// @param _start The location to start in the source array.
[codex:1304167]     function sliceInPlace(
[codex:1304167]         bytes memory _bytes,
[codex:1304167]         bytes memory _dest,
[codex:1304167]         uint _start
[codex:1304167]     ) internal pure {
[codex:1304167]         uint _length = _dest.length;
[codex:1304167]         uint _end = _start + _length;
[codex:1304167]         require(_end > _start && _bytes.length >= _end, "Slice out of bounds");
[codex:1304167] 
[codex:1304167]         assembly {
[codex:1304167]             for {
[codex:1304167]                 let src := add(add(_bytes, 32), _start)
[codex:1304167]                 let res := add(_dest, 32)
[codex:1304167]                 let end := add(src, _length)
[codex:1304167]             } lt(src, end) {
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Continuing current task**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '1600,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]         address _tbtcVault
[codex:1304167]     ) internal {
[codex:1304167]         require(
[codex:1304167]             address(bridge) == address(0) && address(tbtcVault) == address(0),
[codex:1304167]             "AbstractTBTCDepositor already initialized"
[codex:1304167]         );
[codex:1304167] 
[codex:1304167]         require(_bridge != address(0), "Bridge address cannot be zero");
[codex:1304167]         require(_tbtcVault != address(0), "TBTCVault address cannot be zero");
[codex:1304167] 
[codex:1304167]         bridge = IBridge(_bridge);
[codex:1304167]         tbtcVault = ITBTCVault(_tbtcVault);
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /// @notice Initializes a deposit by revealing it to the Bridge.
[codex:1304167]     /// @param fundingTx Bitcoin funding transaction data, see `IBridgeTypes.BitcoinTxInfo`.
[codex:1304167]     /// @param reveal Deposit reveal data, see `IBridgeTypes.DepositRevealInfo` struct.
[codex:1304167]     /// @param extraData 32-byte deposit extra data.
[codex:1304167]     /// @return depositKey Deposit key computed as
[codex:1304167]     ///         `keccak256(fundingTxHash | reveal.fundingOutputIndex)`. This
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Clarifying dependency handling**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '2000,2400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]     function renounceOwnership() public virtual onlyOwner {
[codex:1304167]         _transferOwnership(address(0));
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /**
[codex:1304167]      * @dev Transfers ownership of the contract to a new account (`newOwner`).
[codex:1304167]      * Can only be called by the current owner.
[codex:1304167]      */
[codex:1304167]     function transferOwnership(address newOwner) public virtual onlyOwner {
[codex:1304167]         if (newOwner == address(0)) {
[codex:1304167]             revert OwnableInvalidOwner(address(0));
[codex:1304167]         }
[codex:1304167]         _transferOwnership(newOwner);
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /**
[codex:1304167]      * @dev Transfers ownership of the contract to a new account (`newOwner`).
[codex:1304167]      * Internal function without access restriction.
[codex:1304167]      */
[codex:1304167]     function _transferOwnership(address newOwner) internal virtual {
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Planning further code inspection**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] 4:FILE: contracts/@keep-network/bitcoin-spv-sol/contracts/BTCUtils.sol
[codex:1304167] 925:FILE: contracts/@keep-network/bitcoin-spv-sol/contracts/BytesLib.sol
[codex:1304167] 1414:FILE: contracts/@keep-network/bitcoin-spv-sol/contracts/SafeMath.sol
[codex:1304167] 1495:FILE: contracts/@keep-network/tbtc-v2/contracts/integrator/AbstractTBTCDepositor.sol
[codex:1304167] 1807:FILE: contracts/@keep-network/tbtc-v2/contracts/integrator/IBridge.sol
[codex:1304167] 1891:FILE: contracts/@keep-network/tbtc-v2/contracts/integrator/ITBTCVault.sol
[codex:1304167] 1923:FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:1304167] 2027:FILE: contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:1304167] 2110:FILE: contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol
[codex:1304167] 2204:FILE: contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1304167] 2326:FILE: contracts/@openzeppelin/contracts/utils/Address.sol
[codex:1304167] 2489:FILE: contracts/@openzeppelin/contracts/utils/Context.sol
[codex:1304167] 2521:FILE: contracts/@openzeppelin/contracts/utils/ReentrancyGuard.sol
[codex:1304167] 2609:FILE: contracts/@openzeppelin/contracts/utils/Strings.sol
[codex:1304167] 2707:FILE: contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol
[codex:1304167] 2885:FILE: contracts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol
[codex:1304167] 2975:FILE: contracts/@openzeppelin/contracts/utils/math/Math.sol
[codex:1304167] 3394:FILE: contracts/@openzeppelin/contracts/utils/math/SignedMath.sol
[codex:1304167] 3441:FILE: contracts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol
[codex:1304167] 3525:FILE: contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Planning audit bundle review**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '3980,4300p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]     function __ReentrancyGuard_init_unchained() internal onlyInitializing {
[codex:1304167]         ReentrancyGuardStorage storage $ = _getReentrancyGuardStorage();
[codex:1304167]         $._status = NOT_ENTERED;
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /**
[codex:1304167]      * @dev Prevents a contract from calling itself, directly or indirectly.
[codex:1304167]      * Calling a `nonReentrant` function from another `nonReentrant`
[codex:1304167]      * function is not supported. It is possible to prevent this from happening
[codex:1304167]      * by making the `nonReentrant` function external, and making it call a
[codex:1304167]      * `private` function that does the actual work.
[codex:1304167]      */
[codex:1304167]     modifier nonReentrant() {
[codex:1304167]         _nonReentrantBefore();
[codex:1304167]         _;
[codex:1304167]         _nonReentrantAfter();
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     function _nonReentrantBefore() private {
[codex:1304167]         ReentrancyGuardStorage storage $ = _getReentrancyGuardStorage();
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Continuing exploration**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '4300,4650p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 7ms:
[codex:1304167]                 r,
[codex:1304167]                 s
[codex:1304167]             );
[codex:1304167]         }
[codex:1304167] 
[codex:1304167]         _bridgeTBTC(amount, recipient);
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /// @notice Initializes the BTC deposit process after the Bitcoin P2(W)SH deposit
[codex:1304167]     ///         transaction is performed. Reveals the deposit to tBTC bridge and
[codex:1304167]     ///         marks the deposit as initialized internally. Once tBTC minting
[codex:1304167]     ///         is completed, this call should be followed by a call to
[codex:1304167]     ///         `finalizeBTCBridging`. The P2(W)SH Bitcoin script depositing
[codex:1304167]     ///         tokens should have the following format:
[codex:1304167]     ///
[codex:1304167]     ///         <bridge-address> DROP
[codex:1304167]     ///         <recipient-extra-data> DROP
[codex:1304167]     ///         <blinding-factor> DROP
[codex:1304167]     ///         DUP HASH160 <signingGroupPubkeyHash> EQUAL
[codex:1304167]     ///         IF
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Continuing process**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '4650,5200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]     function enableERC20Token(
[codex:1304167]         address ERC20Token,
[codex:1304167]         uint256 minERC20Amount
[codex:1304167]     ) external onlyOwner {
[codex:1304167]         if (ERC20Token == address(0)) {
[codex:1304167]             revert ERC20TokenIsZeroAddress();
[codex:1304167]         }
[codex:1304167] 
[codex:1304167]         if (minERC20Amount == 0) {
[codex:1304167]             revert MinERC20AmountIsZero();
[codex:1304167]         }
[codex:1304167] 
[codex:1304167]         if (ERC20Tokens[ERC20Token] != 0) {
[codex:1304167]             revert ERC20TokenAlreadyEnabled();
[codex:1304167]         }
[codex:1304167] 
[codex:1304167]         if (ERC20TokensCount >= MAX_ERC20_TOKENS) {
[codex:1304167]             revert MaxERC20TokensReached();
[codex:1304167]         }
[codex:1304167] 
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Continuing exploration**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '5200,5750p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 5ms:
[codex:1304167]         bytes calldata signatures
[codex:1304167]     ) external nonReentrant refundable(Refund(msg.sender, true, 13000)) {
[codex:1304167]         validateAssetsUnlocked(entry);
[codex:1304167] 
[codex:1304167]         if (signatures.length % SIGNATURE_BYTE_SIZE != 0) {
[codex:1304167]             revert MalformedSignaturesVector();
[codex:1304167]         }
[codex:1304167] 
[codex:1304167]         uint256 signaturesCount = signatures.length / SIGNATURE_BYTE_SIZE;
[codex:1304167] 
[codex:1304167]         // Require a strict number of signatures equal to the attestation threshold.
[codex:1304167]         // This simplifies the implementation of this method and is more gas efficient.
[codex:1304167]         if (signaturesCount != attestationThreshold()) {
[codex:1304167]             revert InvalidSignaturesCount(signaturesCount);
[codex:1304167]         }
[codex:1304167] 
[codex:1304167]         // Expect the following digest to be signed by the bridge validators:
[codex:1304167]         // keccak256("\x19Ethereum Signed Message:\n32" | keccak256(abi.encode(block.chainid, entry)))
[codex:1304167]         // Include chain ID to prevent replay attacks using the same entry signed for another chain.
[codex:1304167]         bytes32 digest = keccak256(abi.encode(block.chainid, entry))
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Continuing the process**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '5750,6200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]         uint256 gasPrice = tx.gasprice < maxGasPrice
[codex:1304167]             ? tx.gasprice
[codex:1304167]             : maxGasPrice;
[codex:1304167] 
[codex:1304167]         uint256 refundAmount = (gasSpent + staticGas) * gasPrice;
[codex:1304167] 
[codex:1304167]         /* solhint-disable avoid-low-level-calls */
[codex:1304167]         // slither-disable-next-line low-level-calls,unchecked-lowlevel
[codex:1304167]         (bool sent, ) = receiver.call{value: refundAmount}("");
[codex:1304167]         /* solhint-enable avoid-low-level-calls */
[codex:1304167]         if (!sent) {
[codex:1304167]             // slither-disable-next-line reentrancy-events
[codex:1304167]             emit SendingEtherFailed(refundAmount, receiver);
[codex:1304167]         }
[codex:1304167]     }
[codex:1304167] 
[codex:1304167]     /// @notice Authorize a contract that can interact with this reimbursement pool.
[codex:1304167]     ///         Can be authorized by the owner only.
[codex:1304167]     /// @param _contract Authorized contract.
[codex:1304167]     function authorize(address _contract) external onlyOwner {
[codex:1304167] 
[codex:1304167] 
[codex:1304167] 
[codex:1304167] 
[codex:1304167] 
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Concluding detailed vulnerability audit**
[codex:1304167] 
[codex:1304167] I'm summarizing an extensive security review of multiple bridge contracts and libraries, focusing on reentrancy, access control, upgradeability, and signature validation. I carefully analyze external calls, state updates, and upgradeable initialization to identify nuanced risks, including potential reentrancy paths from refunds and token callbacks, the effects of nonReentrant guards, signature uniqueness checks, and proxy initialization safety. This helps clarify where the current implementation is safe and highlights subtle design considerations relevant to upgradeable proxy patterns and cross-contract interactions.
[codex:1304167] thinking
[codex:1304167] **Examining nuanced contract behaviors and edge cases**
[codex:1304167] 
[codex:1304167] I'm carefully inspecting potential edge cases in bridge functions, focusing on token transfer ordering, signature enforcement, state updates, and initialization flows. I consider how events, external calls, and validations interplay to avoid mismatches or reentrancy risks, while also checking assumptions about trusted contracts and upgradeable patterns. This helps me understand subtle scenarios like batch attestations, fee exemptions, refund gas calculations, and initializer access, to tease out any hidden concerns in these complex flows.
[codex:1304167] thinking
[codex:1304167] **Analyzing inheritance and validator management complexities**
[codex:1304167] 
[codex:1304167] I’m reviewing how multiple inheritance affects storage layout and initialization, especially with Ownable and ReentrancyGuard bases. I also explore risks around validator removal and signature validation, focusing on how ID reassignment and threshold changes might impact attestations and potential governance pitfalls. Additionally, I weigh nuanced behaviors in script validation, rebasing, and reentrancy protections to understand where subtle issues could arise.
[codex:1304167] thinking
[codex:1304167] **Identifying signature replay and bridging risks**
[codex:1304167] 
[codex:1304167] I’m looking closely at how signatures are validated and spotted a key issue: the digest lacks the contract address, enabling signature replay across different bridge instances on the same chain. I’m also weighing subtle risks around token bridging with fee-on-transfer tokens and how validator set changes affect threshold and attestation validity.
[codex:1304167] thinking
[codex:1304167] **Summarizing critical contract vulnerabilities**
[codex:1304167] 
[codex:1304167] I’m pinpointing a core authentication flaw where signatures can be replayed across multiple bridge contracts on the same chain due to missing contract-specific domain separation in the signed digest. Additionally, I’m noting an accounting risk where fee-on-transfer ERC20 tokens can cause the bridge to misreport locked amounts, potentially leading to funds imbalance if such tokens are enabled. These stand out as the main actionable security concerns.
[codex:1304167] thinking
[codex:1304167] **Preparing to find line numbers**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "nl -ba contracts/contracts/MezoBridge.sol | sed -n '240,360p'" in /tmp/codex-multi-8yspaj5h succeeded in 9ms:
[codex:1304167]    240	    );
[codex:1304167]    241	
[codex:1304167]    242	    event PercentWithdrawalFeeExemptAdded(bytes recipient);
[codex:1304167]    243	    event PercentWithdrawalFeeExemptRemoved(bytes recipient);
[codex:1304167]    244	
[codex:1304167]    245	    /// @notice Emitted along `AssetsUnlockConfirmed` event, but with the
[codex:1304167]    246	    ///         `recipient` field not indexed. It allows to read the full value
[codex:1304167]    247	    ///         of `recipient` and not just its hash. It needs to be added as a
[codex:1304167]    248	    ///         separate event to preserve backward compatibility.
[codex:1304167]    249	    event AssetsUnlockConfirmedMetadata(
[codex:1304167]    250	        uint256 indexed unlockSequenceNumber,
[codex:1304167]    251	        bytes recipient
[codex:1304167]    252	    );
[codex:1304167]    253	
[codex:1304167]    254	    error AlreadyConfirmedUnlock(uint256 unlockSequenceNumber);
[codex:1304167]    255	    error InvalidAmount(uint256 amount);
[codex:1304167]    256	    error InvalidBitcoinRecipient();
[codex:1304167]    257	    error InvalidChain(uint8 chain);
[codex:1304167]    258	    error InvalidEthereumRecipient();
[codex:1304167]    259	    error AddressZeroEthereumRecipient();
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Locating signature digest lines**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "nl -ba contracts/contracts/MezoBridge.sol | sed -n '420,520p'" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]    420	        while (bitmap != 0) {
[codex:1304167]    421	            bitmap &= bitmap - 1; // Clear the lowest set bit
[codex:1304167]    422	            count++;
[codex:1304167]    423	        }
[codex:1304167]    424	    }
[codex:1304167]    425	
[codex:1304167]    426	    /// @notice Attests a bridge out action with a set of signatures issued by a super-majority (2/3 + 1) of bridge validators.
[codex:1304167]    427	    /// @param entry The AssetsUnlocked entry holding the details of the bridge out action.
[codex:1304167]    428	    /// @param signatures Concatenation of 65-byte signatures (EIP-191 personal-sign) issued by bridge validators attesting
[codex:1304167]    429	    ///        the bridge out action.
[codex:1304167]    430	    /// @dev Requirements:
[codex:1304167]    431	    ///      - The entry MUST be valid. See requirements of the `validateAssetsUnlocked` function for details.
[codex:1304167]    432	    ///      - The signatures vector MUST be properly formed (i.e. divisible by 65 bytes).
[codex:1304167]    433	    ///      - The number of signatures MUST be equal to the attestation threshold (see `attestationThreshold` function).
[codex:1304167]    434	    ///      - Each signature MUST be made over a digest built as `keccak256("\x19Ethereum Signed Message:\n32" | keccak256(abi.encode(block.chainid, entry)))`.
[codex:1304167]    435	    ///      - Each signature MUST be made by a bridge validator.
[codex:1304167]    436	    ///      - The signatures vector MUST be sorted by signer addresses in ascending order, without duplicates.
[codex:1304167]    437	    ///        For example, assuming signatures [0xAA, 0xBB, 0xCC] were produced by signers [0x22, 0x11, 0x33] respectively,
[codex:1304167]    438	    ///        the signatures vector MUST be built as 0xBBAACC.
[codex:1304167]    439	    /// @dev Refunds the gas paid by the caller, if the caller is authorized to receive refunds.
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Locating transferFrom calls in ERC20Bridge**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "nl -ba contracts/contracts/ERC20Bridge.sol | sed -n '120,220p'" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167]    120	            revert MinERC20AmountIsZero();
[codex:1304167]    121	        }
[codex:1304167]    122	
[codex:1304167]    123	        if (ERC20Tokens[ERC20Token] != 0) {
[codex:1304167]    124	            revert ERC20TokenAlreadyEnabled();
[codex:1304167]    125	        }
[codex:1304167]    126	
[codex:1304167]    127	        if (ERC20TokensCount >= MAX_ERC20_TOKENS) {
[codex:1304167]    128	            revert MaxERC20TokensReached();
[codex:1304167]    129	        }
[codex:1304167]    130	
[codex:1304167]    131	        ERC20TokensCount++;
[codex:1304167]    132	        ERC20Tokens[ERC20Token] = minERC20Amount;
[codex:1304167]    133	
[codex:1304167]    134	        emit ERC20TokenEnabled(ERC20Token, minERC20Amount);
[codex:1304167]    135	    }
[codex:1304167]    136	
[codex:1304167]    137	    /// @notice Disabled bridging support for the given ERC20 token.
[codex:1304167]    138	    /// @param ERC20Token Address of the ERC20 token to be disabled.
[codex:1304167]    139	    /// @dev Requirements:
[codex:1304167] 
[codex:1304167] thinking
[codex:1304167] **Summarizing bridge audit findings**
[codex:1304167] 
[codex:1304167] I'm compiling two main security findings: a medium-severity signature replay risk across bridge instances due to missing contract address in signature digests, and a low-severity accounting flaw when bridging fee-on-transfer ERC20 tokens that causes over-minting. I'll produce a JSON matching the schema, carefully detailing severity, category, exploit scenarios, recommendations, evidence snippets, and exact code locations to give a clear, structured report.
[codex:1304167] codex
[codex:1304167] {"no_findings":false,"summary":"2 findings: signatures for bridge-out are replayable across same-chain bridge deployments due to missing contract domain separation, and ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize the bridge).","findings":[{"severity":"medium","category":"auth","title":"Bridge-out signatures are not bound to a specific MezoBridge instance","exploit_scenario":"If multiple MezoBridge deployments exist on the same chain (e.g., an old bridge left funded alongside a new one), an attacker can reuse validator signatures collected for a legitimate unlock on one instance to execute `attestBridgeOutWithSignatures` on another instance. Because the signed digest omits `address(this)`, the signatures validate on any contract with the same validator set and chain ID, enabling unintended withdrawals from the other contract.","recommendation":"Include `address(this)` (and ideally a version or EIP-712 domain separator) in the signed digest, and update validators to sign the new domain. For example, sign `keccak256(abi.encode(block.chainid, address(this), entry))` or use EIP-712 typed data.","evidence":"Digest is computed as `keccak256(abi.encode(block.chainid, entry))` with no contract address/domain separation before `toEthSignedMessageHash()`.","locations":["contracts/contracts/MezoBridge.sol:458"]},{"severity":"low","category":"other","title":"ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize)","exploit_scenario":"If governance enables a fee-on-transfer/deflationary ERC20, a user can bridge `amount`, receive a full `AssetsLocked` event for `amount`, but the contract will receive less than `amount`. Validators may mint/unlock the full `amount` on Mezo, leaving the Ethereum-side bridge undercollateralized and allowing value extraction.","recommendation":"Either disallow fee-on-transfer tokens in `enableERC20Token` (document/enforce allowlist) or compute the actual received amount via balance-before/after and emit/bridge that amount instead.","evidence":"The bridge emits/records `amount` before calling `safeTransferFrom` and never checks the actual received balance delta.","locations":["contracts/contracts/ERC20Bridge.sol:191","contracts/contracts/ERC20Bridge.sol:211"]}]}
[codex:1304167] tokens used
[codex:1304167] 90,802
[codex:1304167] {"no_findings":false,"summary":"2 findings: signatures for bridge-out are replayable across same-chain bridge deployments due to missing contract domain separation, and ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize the bridge).","findings":[{"severity":"medium","category":"auth","title":"Bridge-out signatures are not bound to a specific MezoBridge instance","exploit_scenario":"If multiple MezoBridge deployments exist on the same chain (e.g., an old bridge left funded alongside a new one), an attacker can reuse validator signatures collected for a legitimate unlock on one instance to execute `attestBridgeOutWithSignatures` on another instance. Because the signed digest omits `address(this)`, the signatures validate on any contract with the same validator set and chain ID, enabling unintended withdrawals from the other contract.","recommendation":"Include `address(this)` (and ideally a version or EIP-712 domain separator) in the signed digest, and update validators to sign the new domain. For example, sign `keccak256(abi.encode(block.chainid, address(this), entry))` or use EIP-712 typed data.","evidence":"Digest is computed as `keccak256(abi.encode(block.chainid, entry))` with no contract address/domain separation before `toEthSignedMessageHash()`.","locations":["contracts/contracts/MezoBridge.sol:458"]},{"severity":"low","category":"other","title":"ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize)","exploit_scenario":"If governance enables a fee-on-transfer/deflationary ERC20, a user can bridge `amount`, receive a full `AssetsLocked` event for `amount`, but the contract will receive less than `amount`. Validators may mint/unlock the full `amount` on Mezo, leaving the Ethereum-side bridge undercollateralized and allowing value extraction.","recommendation":"Either disallow fee-on-transfer tokens in `enableERC20Token` (document/enforce allowlist) or compute the actual received amount via balance-before/after and emit/bridge that amount instead.","evidence":"The bridge emits/records `amount` before calling `safeTransferFrom` and never checks the actual received balance delta.","locations":["contracts/contracts/ERC20Bridge.sol:191","contracts/contracts/ERC20Bridge.sol:211"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T06:35:29.210317+00:00",
        "returncode": 0
    },
    "summary": "2 findings: signatures for bridge-out are replayable across same-chain bridge deployments due to missing contract domain separation, and ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize the bridge).",
    "raw_final": {
        "summary": "2 findings: signatures for bridge-out are replayable across same-chain bridge deployments due to missing contract domain separation, and ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize the bridge).",
        "findings": [
            {
                "title": "Bridge-out signatures are not bound to a specific MezoBridge instance",
                "category": "auth",
                "evidence": "Digest is computed as `keccak256(abi.encode(block.chainid, entry))` with no contract address/domain separation before `toEthSignedMessageHash()`.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/MezoBridge.sol:458"
                ],
                "recommendation": "Include `address(this)` (and ideally a version or EIP-712 domain separator) in the signed digest, and update validators to sign the new domain. For example, sign `keccak256(abi.encode(block.chainid, address(this), entry))` or use EIP-712 typed data.",
                "exploit_scenario": "If multiple MezoBridge deployments exist on the same chain (e.g., an old bridge left funded alongside a new one), an attacker can reuse validator signatures collected for a legitimate unlock on one instance to execute `attestBridgeOutWithSignatures` on another instance. Because the signed digest omits `address(this)`, the signatures validate on any contract with the same validator set and chain ID, enabling unintended withdrawals from the other contract."
            },
            {
                "title": "ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize)",
                "category": "other",
                "evidence": "The bridge emits/records `amount` before calling `safeTransferFrom` and never checks the actual received balance delta.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/ERC20Bridge.sol:191",
                    "contracts/contracts/ERC20Bridge.sol:211"
                ],
                "recommendation": "Either disallow fee-on-transfer tokens in `enableERC20Token` (document/enforce allowlist) or compute the actual received amount via balance-before/after and emit/bridge that amount instead.",
                "exploit_scenario": "If governance enables a fee-on-transfer/deflationary ERC20, a user can bridge `amount`, receive a full `AssetsLocked` event for `amount`, but the contract will receive less than `amount`. Validators may mint/unlock the full `amount` on Mezo, leaving the Ethereum-side bridge undercollateralized and allowing value extraction."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
16
EXT*/BALANCE
6
Total opcodes
11549
Flags
heavy_ext_balance_usage call_family_heavy
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 0x0399
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x8993b5f8
00000026: GT
00000027: PUSH2 0x01e9
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xc7ba0347
00000031: GT
00000032: PUSH2 0x010f
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xd80687ef
0000003c: GT
0000003d: PUSH2 0x00ad
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xe5d3d714
00000047: GT
00000048: PUSH2 0x007c
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xe5d3d714
00000052: EQ
00000053: PUSH2 0x07f4
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xe78cea92
0000005d: EQ
0000005e: PUSH2 0x0807
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xf2fde38b
00000068: EQ
00000069: PUSH2 0x081a
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0xf3407480
00000073: EQ
00000074: PUSH2 0x082d
00000077: JUMPI
00000078: PUSH1 0x00
0000007a: DUP1
0000007b: REVERT
0000007c: JUMPDEST
0000007d: DUP1
0000007e: PUSH4 0xd80687ef
00000083: EQ
00000084: PUSH2 0x07b0
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0xdab1b4bd
0000008e: EQ
0000008f: PUSH2 0x07d0
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0xdf4d4663
00000099: EQ
0000009a: PUSH2 0x07d9
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0xe30c3978
000000a4: EQ
000000a5: PUSH2 0x07ec
000000a8: JUMPI
000000a9: PUSH1 0x00
000000ab: DUP1
000000ac: REVERT
000000ad: JUMPDEST
000000ae: DUP1
000000af: PUSH4 0xcfa498a3
000000b4: GT
000000b5: PUSH2 0x00e9
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0xcfa498a3
000000bf: EQ
000000c0: PUSH2 0x0783
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0xd252bb2c
000000ca: EQ
000000cb: PUSH2 0x078c
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xd2c35ce8
000000d5: EQ
000000d6: PUSH2 0x0795
000000d9: JUMPI
000000da: DUP1
000000db: PUSH4 0xd781bd37
000000e0: EQ
000000e1: PUSH2 0x07a8
000000e4: JUMPI
000000e5: PUSH1 0x00
000000e7: DUP1
000000e8: REVERT
000000e9: JUMPDEST
000000ea: DUP1
000000eb: PUSH4 0xc7ba0347
000000f0: EQ
000000f1: PUSH2 0x0741
000000f4: JUMPI
000000f5: DUP1
000000f6: PUSH4 0xc88d47ba
000000fb: EQ
000000fc: PUSH2 0x074d
000000ff: JUMPI
00000100: DUP1
00000101: PUSH4 0xcf756fdf
00000106: EQ
00000107: PUSH2 0x0770
0000010a: JUMPI
0000010b: PUSH1 0x00
0000010d: DUP1
0000010e: REVERT
0000010f: JUMPDEST
00000110: DUP1
00000111: PUSH4 0x9a53b070
00000116: GT
00000117: PUSH2 0x0187
0000011a: JUMPI
0000011b: DUP1
0000011c: PUSH4 0xaebc3145
00000121: GT
00000122: PUSH2 0x0156
00000125: JUMPI
00000126: DUP1
00000127: PUSH4 0xaebc3145
0000012c: EQ
0000012d: PUSH2 0x06f5
00000130: JUMPI
00000131: DUP1
00000132: PUSH4 0xc09975cd
00000137: EQ
00000138: PUSH2 0x0708
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0xc415b95c
00000142: EQ
00000143: PUSH2 0x071b
00000146: JUMPI
00000147: DUP1
00000148: PUSH4 0xc49372d8
0000014d: EQ
0000014e: PUSH2 0x072e
00000151: JUMPI
00000152: PUSH1 0x00
00000154: DUP1
00000155: REVERT
00000156: JUMPDEST
00000157: DUP1
00000158: PUSH4 0x9a53b070
0000015d: EQ
0000015e: PUSH2 0x06a9
00000161: JUMPI
00000162: DUP1
00000163: PUSH4 0x9a6ac455
00000168: EQ
00000169: PUSH2 0x06bc
0000016c: JUMPI
0000016d: DUP1
0000016e: PUSH4 0x9df60d10
00000173: EQ
00000174: PUSH2 0x06cf
00000177: JUMPI
00000178: DUP1
00000179: PUSH4 0xace09eab
0000017e: EQ
0000017f: PUSH2 0x06e2
00000182: JUMPI
00000183: PUSH1 0x00
00000185: DUP1
00000186: REVERT
00000187: JUMPDEST
00000188: DUP1
00000189: PUSH4 0x8da5cb5b
0000018e: GT
0000018f: PUSH2 0x01c3
00000192: JUMPI
00000193: DUP1
00000194: PUSH4 0x8da5cb5b
00000199: EQ
0000019a: PUSH2 0x063e
0000019d: JUMPI
0000019e: DUP1
0000019f: PUSH4 0x908d272b
000001a4: EQ
000001a5: PUSH2 0x0646
000001a8: JUMPI
000001a9: DUP1
000001aa: PUSH4 0x940992a3
000001af: EQ
000001b0: PUSH2 0x0659
000001b3: JUMPI
000001b4: DUP1
000001b5: PUSH4 0x941b1f94
000001ba: EQ
000001bb: PUSH2 0x0679
000001be: JUMPI
000001bf: PUSH1 0x00
000001c1: DUP1
000001c2: REVERT
000001c3: JUMPDEST
000001c4: DUP1
000001c5: PUSH4 0x8993b5f8
000001ca: EQ
000001cb: PUSH2 0x05ff
000001ce: JUMPI
000001cf: DUP1
000001d0: PUSH4 0x8a82e3e3
000001d5: EQ
000001d6: PUSH2 0x0612
000001d9: JUMPI
000001da: DUP1
000001db: PUSH4 0x8bc7e8c4
000001e0: EQ
000001e1: PUSH2 0x0635
000001e4: JUMPI
000001e5: PUSH1 0x00
000001e7: DUP1
000001e8: REVERT
000001e9: JUMPDEST
000001ea: DUP1
000001eb: PUSH4 0x593e17e9
000001f0: GT
000001f1: PUSH2 0x02ce
000001f4: JUMPI
000001f5: DUP1
000001f6: PUSH4 0x6f64aca2
000001fb: GT
000001fc: PUSH2 0x026c
000001ff: JUMPI
00000200: DUP1
00000201: PUSH4 0x773573e2
00000206: GT
00000207: PUSH2 0x023b
0000020a: JUMPI
0000020b: DUP1
0000020c: PUSH4 0x773573e2
00000211: EQ
00000212: PUSH2 0x05be
00000215: JUMPI
00000216: DUP1
00000217: PUSH4 0x79ba5097
0000021c: EQ
0000021d: PUSH2 0x05d1
00000220: JUMPI
00000221: DUP1
00000222: PUSH4 0x7b35b4e6
00000227: EQ
00000228: PUSH2 0x05d9
0000022b: JUMPI
0000022c: DUP1
0000022d: PUSH4 0x817d00ae
00000232: EQ
00000233: PUSH2 0x05ec
00000236: JUMPI
00000237: PUSH1 0x00
00000239: DUP1
0000023a: REVERT
0000023b: JUMPDEST
0000023c: DUP1
0000023d: PUSH4 0x6f64aca2
00000242: EQ
00000243: PUSH2 0x057d
00000246: JUMPI
00000247: DUP1
00000248: PUSH4 0x715018a6
0000024d: EQ
0000024e: PUSH2 0x0590
00000251: JUMPI
00000252: DUP1
00000253: PUSH4 0x71fb661c
00000258: EQ
00000259: PUSH2 0x0598
0000025c: JUMPI
0000025d: DUP1
0000025e: PUSH4 0x74ca1279
00000263: EQ
00000264: PUSH2 0x05ab
00000267: JUMPI
00000268: PUSH1 0x00
0000026a: DUP1
0000026b: REVERT
0000026c: JUMPDEST
0000026d: DUP1
0000026e: PUSH4 0x61912174
00000273: GT
00000274: PUSH2 0x02a8
00000277: JUMPI
00000278: DUP1
00000279: PUSH4 0x61912174
0000027e: EQ
0000027f: PUSH2 0x0521
00000282: JUMPI
00000283: DUP1
00000284: PUSH4 0x61e20505
00000289: EQ
0000028a: PUSH2 0x0534
0000028d: JUMPI
0000028e: DUP1
0000028f: PUSH4 0x62fe53e1
00000294: EQ
00000295: PUSH2 0x0557
00000298: JUMPI
00000299: DUP1
0000029a: PUSH4 0x67a68320
0000029f: EQ
000002a0: PUSH2 0x056a
000002a3: JUMPI
000002a4: PUSH1 0x00
000002a6: DUP1
000002a7: REVERT
000002a8: JUMPDEST
000002a9: DUP1
000002aa: PUSH4 0x593e17e9
000002af: EQ
000002b0: PUSH2 0x04fe
000002b3: JUMPI
000002b4: DUP1
000002b5: PUSH4 0x5d7e10b0
000002ba: EQ
000002bb: PUSH2 0x0511
000002be: JUMPI
000002bf: DUP1
000002c0: PUSH4 0x5febd8eb
000002c5: EQ
000002c6: PUSH2 0x0519
000002c9: JUMPI
000002ca: PUSH1 0x00
000002cc: DUP1
000002cd: REVERT
000002ce: JUMPDEST
000002cf: DUP1
000002d0: PUSH4 0x2aa35226
000002d5: GT
000002d6: PUSH2 0x033b
000002d9: JUMPI
000002da: DUP1
000002db: PUSH4 0x50bb36c2
000002e0: GT
000002e1: PUSH2 0x0315
000002e4: JUMPI
000002e5: DUP1
000002e6: PUSH4 0x50bb36c2
000002eb: EQ
000002ec: PUSH2 0x04ba
000002ef: JUMPI
000002f0: DUP1
000002f1: PUSH4 0x529d15cc
000002f6: EQ
000002f7: PUSH2 0x04c2
000002fa: JUMPI
000002fb: DUP1
000002fc: PUSH4 0x54f190e3
00000301: EQ
00000302: PUSH2 0x04cb
00000305: JUMPI
00000306: DUP1
00000307: PUSH4 0x569b8e2c
0000030c: EQ
0000030d: PUSH2 0x04eb
00000310: JUMPI
00000311: PUSH1 0x00
00000313: DUP1
00000314: REVERT
00000315: JUMPDEST
00000316: DUP1
00000317: PUSH4 0x2aa35226
0000031c: EQ
0000031d: PUSH2 0x0487
00000320: JUMPI
00000321: DUP1
00000322: PUSH4 0x427f9568
00000327: EQ
00000328: PUSH2 0x049a
0000032b: JUMPI
0000032c: DUP1
0000032d: PUSH4 0x4835038a
00000332: EQ
00000333: PUSH2 0x04ad
00000336: JUMPI
00000337: PUSH1 0x00
00000339: DUP1
0000033a: REVERT
0000033b: JUMPDEST
0000033c: DUP1
0000033d: PUSH4 0x1d7133d6
00000342: GT
00000343: PUSH2 0x0377
00000346: JUMPI
00000347: DUP1
00000348: PUSH4 0x1d7133d6
0000034d: EQ
0000034e: PUSH2 0x0436
00000351: JUMPI
00000352: DUP1
00000353: PUSH4 0x225fbcc5
00000358: EQ
00000359: PUSH2 0x0449
0000035c: JUMPI
0000035d: DUP1
0000035e: PUSH4 0x24f90de9
00000363: EQ
00000364: PUSH2 0x045e
00000367: JUMPI
00000368: DUP1
00000369: PUSH4 0x25ed59d4
0000036e: EQ
0000036f: PUSH2 0x0471
00000372: JUMPI
00000373: PUSH1 0x00
00000375: DUP1
00000376: REVERT
00000377: JUMPDEST
00000378: DUP1
00000379: PUSH4 0x081ce969
0000037e: EQ
0000037f: PUSH2 0x039e
00000382: JUMPI
00000383: DUP1
00000384: PUSH4 0x0f36403a
00000389: EQ
0000038a: PUSH2 0x03d8
0000038d: JUMPI
0000038e: DUP1
0000038f: PUSH4 0x18b1e168
00000394: EQ
00000395: PUSH2 0x0403
00000398: JUMPI
00000399: JUMPDEST
0000039a: PUSH1 0x00
0000039c: DUP1
0000039d: REVERT
0000039e: JUMPDEST
0000039f: PUSH2 0x03c1
000003a2: PUSH2 0x03ac
000003a5: CALLDATASIZE
000003a6: PUSH1 0x04
000003a8: PUSH2 0x4567
000003ab: JUMP
000003ac: JUMPDEST
000003ad: PUSH1 0x97
000003af: PUSH1 0x20
000003b1: MSTORE
000003b2: PUSH1 0x00
000003b4: SWAP1
000003b5: DUP2
000003b6: MSTORE
000003b7: PUSH1 0x40
000003b9: SWAP1
000003ba: KECCAK256
000003bb: SLOAD
000003bc: PUSH1 0xff
000003be: AND
000003bf: DUP2
000003c0: JUMP
000003c1: JUMPDEST
000003c2: PUSH1 0x40
000003c4: MLOAD
000003c5: PUSH1 0xff
000003c7: SWAP1
000003c8: SWAP2
000003c9: AND
000003ca: DUP2
000003cb: MSTORE
000003cc: PUSH1 0x20
000003ce: ADD
000003cf: JUMPDEST
000003d0: PUSH1 0x40
000003d2: MLOAD
000003d3: DUP1
000003d4: SWAP2
000003d5: SUB
000003d6: SWAP1
000003d7: RETURN
000003d8: JUMPDEST
000003d9: PUSH1 0x01
000003db: SLOAD
000003dc: PUSH2 0x03eb
000003df: SWAP1
000003e0: PUSH1 0x01
000003e2: PUSH1 0x01
000003e4: PUSH1 0xa0
000003e6: SHL
000003e7: SUB
000003e8: AND
000003e9: DUP2
000003ea: JUMP
000003eb: JUMPDEST
000003ec: PUSH1 0x40
000003ee: MLOAD
000003ef: PUSH1 0x01
000003f1: PUSH1 0x01
000003f3: PUSH1 0xa0
000003f5: SHL
000003f6: SUB
000003f7: SWAP1
000003f8: SWAP2
000003f9: AND
000003fa: DUP2
000003fb: MSTORE
000003fc: PUSH1 0x20
000003fe: ADD
000003ff: PUSH2 0x03cf
00000402: JUMP
00000403: JUMPDEST
00000404: PUSH2 0x0426
00000407: PUSH2 0x0411
0000040a: CALLDATASIZE
0000040b: PUSH1 0x04
0000040d: PUSH2 0x4584
00000410: JUMP
00000411: JUMPDEST
00000412: PUSH1 0xa1
00000414: PUSH1 0x20
00000416: MSTORE
00000417: PUSH1 0x00
00000419: SWAP1
0000041a: DUP2
0000041b: MSTORE
0000041c: PUSH1 0x40
0000041e: SWAP1
0000041f: KECCAK256
00000420: SLOAD
00000421: PUSH1 0xff
00000423: AND
00000424: DUP2
00000425: JUMP
00000426: JUMPDEST
00000427: PUSH1 0x40
00000429: MLOAD
0000042a: SWAP1
0000042b: ISZERO
0000042c: ISZERO
0000042d: DUP2
0000042e: MSTORE
0000042f: PUSH1 0x20
00000431: ADD
00000432: PUSH2 0x03cf
00000435: JUMP
00000436: JUMPDEST
00000437: PUSH1 0x34
00000439: SLOAD
0000043a: PUSH2 0x03eb
0000043d: SWAP1
0000043e: PUSH1 0x01
00000440: PUSH1 0x01
00000442: PUSH1 0xa0
00000444: SHL
00000445: SUB
00000446: AND
00000447: DUP2
00000448: JUMP
00000449: JUMPDEST
0000044a: PUSH2 0x045c
0000044d: PUSH2 0x0457
00000450: CALLDATASIZE
00000451: PUSH1 0x04
00000453: PUSH2 0x4567
00000456: JUMP
00000457: JUMPDEST
00000458: PUSH2 0x0840
0000045b: JUMP
0000045c: JUMPDEST
0000045d: STOP
0000045e: JUMPDEST
0000045f: PUSH2 0x045c
00000462: PUSH2 0x046c
00000465: CALLDATASIZE
00000466: PUSH1 0x04
00000468: PUSH2 0x459d
0000046b: JUMP
0000046c: JUMPDEST
0000046d: PUSH2 0x0894
00000470: JUMP
00000471: JUMPDEST
00000472: PUSH2 0x0479
00000475: PUSH1 0x41
00000477: DUP2
00000478: JUMP
00000479: JUMPDEST
0000047a: PUSH1 0x40
0000047c: MLOAD
0000047d: SWAP1
0000047e: DUP2
0000047f: MSTORE
00000480: PUSH1 0x20
00000482: ADD
00000483: PUSH2 0x03cf
00000486: JUMP
00000487: JUMPDEST
00000488: PUSH2 0x03c1
0000048b: PUSH2 0x0495
0000048e: CALLDATASIZE
0000048f: PUSH1 0x04
00000491: PUSH2 0x4584
00000494: JUMP
00000495: JUMPDEST
00000496: PUSH2 0x0ace
00000499: JUMP
0000049a: JUMPDEST
0000049b: PUSH2 0x045c
0000049e: PUSH2 0x04a8
000004a1: CALLDATASIZE
000004a2: PUSH1 0x04
000004a4: PUSH2 0x45de
000004a7: JUMP
000004a8: JUMPDEST
000004a9: PUSH2 0x0aec
000004ac: JUMP
000004ad: JUMPDEST
000004ae: PUSH1 0x9f
000004b0: SLOAD
000004b1: PUSH2 0x0426
000004b4: SWAP1
000004b5: PUSH1 0xff
000004b7: AND
000004b8: DUP2
000004b9: JUMP
000004ba: JUMPDEST
000004bb: PUSH2 0x0479
000004be: PUSH2 0x0c5a
000004c1: JUMP
000004c2: JUMPDEST
000004c3: PUSH2 0x0479
000004c6: PUSH1 0x95
000004c8: SLOAD
000004c9: DUP2
000004ca: JUMP
000004cb: JUMPDEST
000004cc: PUSH2 0x0479
000004cf: PUSH2 0x04d9
000004d2: CALLDATASIZE
000004d3: PUSH1 0x04
000004d5: PUSH2 0x4567
000004d8: JUMP
000004d9: JUMPDEST
000004da: PUSH1 0xa0
000004dc: PUSH1 0x20
000004de: MSTORE
000004df: PUSH1 0x00
000004e1: SWAP1
000004e2: DUP2
000004e3: MSTORE
000004e4: PUSH1 0x40
000004e6: SWAP1
000004e7: KECCAK256
000004e8: SLOAD
000004e9: DUP2
000004ea: JUMP
000004eb: JUMPDEST
000004ec: PUSH2 0x045c
000004ef: PUSH2 0x04f9
000004f2: CALLDATASIZE
000004f3: PUSH1 0x04
000004f5: PUSH2 0x4584
000004f8: JUMP
000004f9: JUMPDEST
000004fa: PUSH2 0x0c88
000004fd: JUMP
000004fe: JUMPDEST
000004ff: PUSH2 0x045c
00000502: PUSH2 0x050c
00000505: CALLDATASIZE
00000506: PUSH1 0x04
00000508: PUSH2 0x4638
0000050b: JUMP
0000050c: JUMPDEST
0000050d: PUSH2 0x0d15
00000510: JUMP
00000511: JUMPDEST
00000512: PUSH2 0x045c
00000515: PUSH2 0x0dbc
00000518: JUMP
00000519: JUMPDEST
0000051a: PUSH2 0x0479
0000051d: PUSH1 0x14
0000051f: DUP2
00000520: JUMP
00000521: JUMPDEST
00000522: PUSH2 0x045c
00000525: PUSH2 0x052f
00000528: CALLDATASIZE
00000529: PUSH1 0x04
0000052b: PUSH2 0x4664
0000052e: JUMP
0000052f: JUMPDEST
00000530: PUSH2 0x0e39
00000533: JUMP
00000534: JUMPDEST
00000535: PUSH2 0x0426
00000538: PUSH2 0x0542
0000053b: CALLDATASIZE
0000053c: PUSH1 0x04
0000053e: PUSH2 0x4584
00000541: JUMP
00000542: JUMPDEST
00000543: PUSH1 0x9a
00000545: PUSH1 0x20
00000547: MSTORE
00000548: PUSH1 0x00
0000054a: SWAP1
0000054b: DUP2
0000054c: MSTORE
0000054d: PUSH1 0x40
0000054f: SWAP1
00000550: KECCAK256
00000551: SLOAD
00000552: PUSH1 0xff
00000554: AND
00000555: DUP2
00000556: JUMP
00000557: JUMPDEST
00000558: PUSH2 0x045c
0000055b: PUSH2 0x0565
0000055e: CALLDATASIZE
0000055f: PUSH1 0x04
00000561: PUSH2 0x4584
00000564: JUMP
00000565: JUMPDEST
00000566: PUSH2 0x0f5d
00000569: JUMP
0000056a: JUMPDEST
0000056b: PUSH2 0x045c
0000056e: PUSH2 0x0578
00000571: CALLDATASIZE
00000572: PUSH1 0x04
00000574: PUSH2 0x4638
00000577: JUMP
00000578: JUMPDEST
00000579: PUSH2 0x0fda
0000057c: JUMP
0000057d: JUMPDEST
0000057e: PUSH2 0x045c
00000581: PUSH2 0x058b
00000584: CALLDATASIZE
00000585: PUSH1 0x04
00000587: PUSH2 0x46a6
0000058a: JUMP
0000058b: JUMPDEST
0000058c: PUSH2 0x1156
0000058f: JUMP
00000590: JUMPDEST
00000591: PUSH2 0x045c
00000594: PUSH2 0x1296
00000597: JUMP
00000598: JUMPDEST
00000599: PUSH2 0x045c
0000059c: PUSH2 0x05a6
0000059f: CALLDATASIZE
000005a0: PUSH1 0x04
000005a2: PUSH2 0x4567
000005a5: JUMP
000005a6: JUMPDEST
000005a7: PUSH2 0x12aa
000005aa: JUMP
000005ab: JUMPDEST
000005ac: PUSH2 0x045c
000005af: PUSH2 0x05b9
000005b2: CALLDATASIZE
000005b3: PUSH1 0x04
000005b5: PUSH2 0x4567
000005b8: JUMP
000005b9: JUMPDEST
000005ba: PUSH2 0x1368
000005bd: JUMP
000005be: JUMPDEST
000005bf: PUSH2 0x045c
000005c2: PUSH2 0x05cc
000005c5: CALLDATASIZE
000005c6: PUSH1 0x04
000005c8: PUSH2 0x4808
000005cb: JUMP
000005cc: JUMPDEST
000005cd: PUSH2 0x141a
000005d0: JUMP
000005d1: JUMPDEST
000005d2: PUSH2 0x045c
000005d5: PUSH2 0x1669
000005d8: JUMP
000005d9: JUMPDEST
000005da: PUSH2 0x045c
000005dd: PUSH2 0x05e7
000005e0: CALLDATASIZE
000005e1: PUSH1 0x04
000005e3: PUSH2 0x4567
000005e6: JUMP
000005e7: JUMPDEST
000005e8: PUSH2 0x16ca
000005eb: JUMP
000005ec: JUMPDEST
000005ed: PUSH2 0x0426
000005f0: PUSH2 0x05fa
000005f3: CALLDATASIZE
000005f4: PUSH1 0x04
000005f6: PUSH2 0x49b2
000005f9: JUMP
000005fa: JUMPDEST
000005fb: PUSH2 0x173c
000005fe: JUMP
000005ff: JUMPDEST
00000600: PUSH2 0x045c
00000603: PUSH2 0x060d
00000606: CALLDATASIZE
00000607: PUSH1 0x04
00000609: PUSH2 0x49ef
0000060c: JUMP
0000060d: JUMPDEST
0000060e: PUSH2 0x1a75
00000611: JUMP
00000612: JUMPDEST
00000613: PUSH2 0x0426
00000616: PUSH2 0x0620
00000619: CALLDATASIZE
0000061a: PUSH1 0x04
0000061c: PUSH2 0x4584
0000061f: JUMP
00000620: JUMPDEST
00000621: PUSH1 0x99
00000623: PUSH1 0x20
00000625: MSTORE
00000626: PUSH1 0x00
00000628: SWAP1
00000629: DUP2
0000062a: MSTORE
0000062b: PUSH1 0x40
0000062d: SWAP1
0000062e: KECCAK256
0000062f: SLOAD
00000630: PUSH1 0xff
00000632: AND
00000633: DUP2
00000634: JUMP
00000635: JUMPDEST
00000636: PUSH2 0x0479
00000639: PUSH1 0x9b
0000063b: SLOAD
0000063c: DUP2
0000063d: JUMP
0000063e: JUMPDEST
0000063f: PUSH2 0x03eb
00000642: PUSH2 0x1eba
00000645: JUMP
00000646: JUMPDEST
00000647: PUSH2 0x045c
0000064a: PUSH2 0x0654
0000064d: CALLDATASIZE
0000064e: PUSH1 0x04
00000650: PUSH2 0x4638
00000653: JUMP
00000654: JUMPDEST
00000655: PUSH2 0x1eef
00000658: JUMP
00000659: JUMPDEST
0000065a: PUSH2 0x0479
0000065d: PUSH2 0x0667
00000660: CALLDATASIZE
00000661: PUSH1 0x04
00000663: PUSH2 0x4584
00000666: JUMP
00000667: JUMPDEST
00000668: PUSH1 0x98
0000066a: PUSH1 0x20
0000066c: MSTORE
0000066d: PUSH1 0x00
0000066f: SWAP1
00000670: DUP2
00000671: MSTORE
00000672: PUSH1 0x40
00000674: SWAP1
00000675: KECCAK256
00000676: SLOAD
00000677: DUP2
00000678: JUMP
00000679: JUMPDEST
0000067a: PUSH2 0x069c
0000067d: PUSH2 0x0687
00000680: CALLDATASIZE
00000681: PUSH1 0x04
00000683: PUSH2 0x4584
00000686: JUMP
00000687: JUMPDEST
00000688: PUSH1 0x32
0000068a: PUSH1 0x20
0000068c: MSTORE
0000068d: PUSH1 0x00
0000068f: SWAP1
00000690: DUP2
00000691: MSTORE
00000692: PUSH1 0x40
00000694: SWAP1
00000695: KECCAK256
00000696: SLOAD
00000697: PUSH1 0xff
00000699: AND
0000069a: DUP2
0000069b: JUMP
0000069c: JUMPDEST
0000069d: PUSH1 0x40
0000069f: MLOAD
000006a0: PUSH2 0x03cf
000006a3: SWAP2
000006a4: SWAP1
000006a5: PUSH2 0x4a8e
000006a8: JUMP
000006a9: JUMPDEST
000006aa: PUSH2 0x045c
000006ad: PUSH2 0x06b7
000006b0: CALLDATASIZE
000006b1: PUSH1 0x04
000006b3: PUSH2 0x4567
000006b6: JUMP
000006b7: JUMPDEST
000006b8: PUSH2 0x1fcf
000006bb: JUMP
000006bc: JUMPDEST
000006bd: PUSH2 0x045c
000006c0: PUSH2 0x06ca
000006c3: CALLDATASIZE
000006c4: PUSH1 0x04
000006c6: PUSH2 0x4567
000006c9: JUMP
000006ca: JUMPDEST
000006cb: PUSH2 0x2240
000006ce: JUMP
000006cf: JUMPDEST
000006d0: PUSH2 0x045c
000006d3: PUSH2 0x06dd
000006d6: CALLDATASIZE
000006d7: PUSH1 0x04
000006d9: PUSH2 0x4ae5
000006dc: JUMP
000006dd: JUMPDEST
000006de: PUSH2 0x2291
000006e1: JUMP
000006e2: JUMPDEST
000006e3: PUSH2 0x045c
000006e6: PUSH2 0x06f0
000006e9: CALLDATASIZE
000006ea: PUSH1 0x04
000006ec: PUSH2 0x4567
000006ef: JUMP
000006f0: JUMPDEST
000006f1: PUSH2 0x2617
000006f4: JUMP
000006f5: JUMPDEST
000006f6: PUSH2 0x03eb
000006f9: PUSH2 0x0703
000006fc: CALLDATASIZE
000006fd: PUSH1 0x04
000006ff: PUSH2 0x4584
00000702: JUMP
00000703: JUMPDEST
00000704: PUSH2 0x27a9
00000707: JUMP
00000708: JUMPDEST
00000709: PUSH1 0x9d
0000070b: SLOAD
0000070c: PUSH2 0x03eb
0000070f: SWAP1
00000710: PUSH1 0x01
00000712: PUSH1 0x01
00000714: PUSH1 0xa0
00000716: SHL
00000717: SUB
00000718: AND
00000719: DUP2
0000071a: JUMP
0000071b: JUMPDEST
0000071c: PUSH1 0x9c
0000071e: SLOAD
0000071f: PUSH2 0x03eb
00000722: SWAP1
00000723: PUSH1 0x01
00000725: PUSH1 0x01
00000727: PUSH1 0xa0
00000729: SHL
0000072a: SUB
0000072b: AND
0000072c: DUP2
0000072d: JUMP
0000072e: JUMPDEST
0000072f: PUSH2 0x045c
00000732: PUSH2 0x073c
00000735: CALLDATASIZE
00000736: PUSH1 0x04
00000738: PUSH2 0x4b4e
0000073b: JUMP
0000073c: JUMPDEST
0000073d: PUSH2 0x27d3
00000740: JUMP
00000741: JUMPDEST
00000742: PUSH2 0x0479
00000745: PUSH5 0x02540be400
0000074b: DUP2
0000074c: JUMP
0000074d: JUMPDEST
0000074e: PUSH2 0x0426
00000751: PUSH2 0x075b
00000754: CALLDATASIZE
00000755: PUSH1 0x04
00000757: PUSH2 0x4567
0000075a: JUMP
0000075b: JUMPDEST
0000075c: PUSH1 0x9e
0000075e: PUSH1 0x20
00000760: MSTORE
00000761: PUSH1 0x00
00000763: SWAP1
00000764: DUP2
00000765: MSTORE
00000766: PUSH1 0x40
00000768: SWAP1
00000769: KECCAK256
0000076a: SLOAD
0000076b: PUSH1 0xff
0000076d: AND
0000076e: DUP2
0000076f: JUMP
00000770: JUMPDEST
00000771: PUSH2 0x045c
00000774: PUSH2 0x077e
00000777: CALLDATASIZE
00000778: PUSH1 0x04
0000077a: PUSH2 0x4b90
0000077d: JUMP
0000077e: JUMPDEST
0000077f: PUSH2 0x288a
00000782: JUMP
00000783: JUMPDEST
00000784: PUSH2 0x0479
00000787: PUSH2 0x2710
0000078a: DUP2
0000078b: JUMP
0000078c: JUMPDEST
0000078d: PUSH2 0x0479
00000790: PUSH1 0x63
00000792: SLOAD
00000793: DUP2
00000794: JUMP
00000795: JUMPDEST
00000796: PUSH2 0x045c
00000799: PUSH2 0x07a3
0000079c: CALLDATASIZE
0000079d: PUSH1 0x04
0000079f: PUSH2 0x4567
000007a2: JUMP
000007a3: JUMPDEST
000007a4: PUSH2 0x2a1c
000007a7: JUMP
000007a8: JUMPDEST
000007a9: PUSH1 0x96
000007ab: SLOAD
000007ac: PUSH2 0x0479
000007af: JUMP
000007b0: JUMPDEST
000007b1: PUSH2 0x0479
000007b4: PUSH2 0x07be
000007b7: CALLDATASIZE
000007b8: PUSH1 0x04
000007ba: PUSH2 0x4567
000007bd: JUMP
000007be: JUMPDEST
000007bf: PUSH1 0x64
000007c1: PUSH1 0x20
000007c3: MSTORE
000007c4: PUSH1 0x00
000007c6: SWAP1
000007c7: DUP2
000007c8: MSTORE
000007c9: PUSH1 0x40
000007cb: SWAP1
000007cc: KECCAK256
000007cd: SLOAD
000007ce: DUP2
000007cf: JUMP
000007d0: JUMPDEST
000007d1: PUSH2 0x0479
000007d4: PUSH1 0x33
000007d6: SLOAD
000007d7: DUP2
000007d8: JUMP
000007d9: JUMPDEST
000007da: PUSH2 0x045c
000007dd: PUSH2 0x07e7
000007e0: CALLDATASIZE
000007e1: PUSH1 0x04
000007e3: PUSH2 0x459d
000007e6: JUMP
000007e7: JUMPDEST
000007e8: PUSH2 0x2a8e
000007eb: JUMP
000007ec: JUMPDEST
000007ed: PUSH2 0x03eb
000007f0: PUSH2 0x2acd
000007f3: JUMP
000007f4: JUMPDEST
000007f5: PUSH1 0x31
000007f7: SLOAD
000007f8: PUSH2 0x03eb
000007fb: SWAP1
000007fc: PUSH1 0x01
000007fe: PUSH1 0x01
00000800: PUSH1 0xa0
00000802: SHL
00000803: SUB
00000804: AND
00000805: DUP2
00000806: JUMP
00000807: JUMPDEST
00000808: PUSH1 0x00
0000080a: SLOAD
0000080b: PUSH2 0x03eb
0000080e: SWAP1
0000080f: PUSH1 0x01
00000811: PUSH1 0x01
00000813: PUSH1 0xa0
00000815: SHL
00000816: SUB
00000817: AND
00000818: DUP2
00000819: JUMP
0000081a: JUMPDEST
0000081b: PUSH2 0x045c
0000081e: PUSH2 0x0828
00000821: CALLDATASIZE
00000822: PUSH1 0x04
00000824: PUSH2 0x4567
00000827: JUMP
00000828: JUMPDEST
00000829: PUSH2 0x2af6
0000082c: JUMP
0000082d: JUMPDEST
0000082e: PUSH2 0x045c
00000831: PUSH2 0x083b
00000834: CALLDATASIZE
00000835: PUSH1 0x04
00000837: PUSH2 0x4b4e
0000083a: JUMP
0000083b: JUMPDEST
0000083c: PUSH2 0x2b93
0000083f: JUMP
00000840: JUMPDEST
00000841: PUSH2 0x0848
00000844: PUSH2 0x2c01
00000847: JUMP
00000848: JUMPDEST
00000849: PUSH1 0x01
0000084b: PUSH1 0x01
0000084d: PUSH1 0xa0
0000084f: SHL
00000850: SUB
00000851: DUP2
00000852: AND
00000853: PUSH1 0x00
00000855: DUP2
00000856: DUP2
00000857: MSTORE
00000858: PUSH1 0x9e
0000085a: PUSH1 0x20
0000085c: MSTORE
0000085d: PUSH1 0x40
0000085f: DUP1
00000860: DUP3
00000861: KECCAK256
00000862: DUP1
00000863: SLOAD
00000864: PUSH1 0xff
00000866: NOT
00000867: AND
00000868: PUSH1 0x01
0000086a: OR
0000086b: SWAP1
0000086c: SSTORE
0000086d: MLOAD
0000086e: PUSH32 0xc93ba6b98e36dd6aad0f4fafd13bf5befa3e2d1c3b15da811af870cb5a8e2d2d
0000088f: SWAP2
00000890: SWAP1
00000891: LOG2
00000892: POP
00000893: JUMP
00000894: JUMPDEST
00000895: PUSH1 0x01
00000897: PUSH1 0x00
00000899: DUP4
0000089a: DUP2
0000089b: MSTORE
0000089c: PUSH1 0x32
0000089e: PUSH1 0x20
000008a0: MSTORE
000008a1: PUSH1 0x40
000008a3: SWAP1
000008a4: KECCAK256
000008a5: SLOAD
000008a6: PUSH1 0xff
000008a8: AND
000008a9: PUSH1 0x02
000008ab: DUP2
000008ac: GT
000008ad: ISZERO
000008ae: PUSH2 0x08b9
000008b1: JUMPI
000008b2: PUSH2 0x08b9
000008b5: PUSH2 0x4a24
000008b8: JUMP
000008b9: JUMPDEST
000008ba: EQ
000008bb: PUSH2 0x0910
000008be: JUMPI
000008bf: PUSH1 0x00
000008c1: DUP3
000008c2: DUP2
000008c3: MSTORE
000008c4: PUSH1 0x32
000008c6: PUSH1 0x20
000008c8: MSTORE
000008c9: PUSH1 0x40
000008cb: SWAP1
000008cc: DUP2
000008cd: SWAP1
000008ce: KECCAK256
000008cf: SLOAD
000008d0: SWAP1
000008d1: MLOAD
000008d2: PUSH32 0xed33029f00000000000000000000000000000000000000000000000000000000
000008f3: DUP2
000008f4: MSTORE
000008f5: PUSH2 0x0907
000008f8: SWAP2
000008f9: PUSH1 0xff
000008fb: AND
000008fc: SWAP1
000008fd: PUSH1 0x01
000008ff: SWAP1
00000900: PUSH1 0x04
00000902: ADD
00000903: PUSH2 0x4be1
00000906: JUMP
00000907: JUMPDEST
00000908: PUSH1 0x40
0000090a: MLOAD
0000090b: DUP1
0000090c: SWAP2
0000090d: SUB
0000090e: SWAP1
0000090f: REVERT
00000910: JUMPDEST
00000911: PUSH1 0x00
00000913: DUP3
00000914: DUP2
00000915: MSTORE
00000916: PUSH1 0x32
00000918: PUSH1 0x20
0000091a: MSTORE
0000091b: PUSH1 0x40
0000091d: DUP2
0000091e: KECCAK256
0000091f: DUP1
00000920: SLOAD
00000921: PUSH1 0xff
00000923: NOT
00000924: AND
00000925: PUSH1 0x02
00000927: OR
00000928: SWAP1
00000929: SSTORE
0000092a: DUP1
0000092b: PUSH2 0x0933
0000092e: DUP5
0000092f: PUSH2 0x2c4c
00000932: JUMP
00000933: JUMPDEST
00000934: PUSH1 0x40
00000936: DUP1
00000937: MLOAD
00000938: PUSH1 0x01
0000093a: PUSH1 0x01
0000093c: PUSH1 0xa0
0000093e: SHL
0000093f: SUB
00000940: DUP9
00000941: AND
00000942: PUSH1 0x20
00000944: DUP1
00000945: DUP4
00000946: ADD
00000947: SWAP2
00000948: SWAP1
00000949: SWAP2
0000094a: MSTORE
0000094b: DUP3
0000094c: MLOAD
0000094d: DUP1
0000094e: DUP4
0000094f: SUB
00000950: DUP3
00000951: ADD
00000952: DUP2
00000953: MSTORE
00000954: SWAP2
00000955: DUP4
00000956: ADD
00000957: SWAP1
00000958: SWAP3
00000959: MSTORE
0000095a: DUP1
0000095b: MLOAD
0000095c: SWAP2
0000095d: ADD
0000095e: KECCAK256
0000095f: SWAP3
00000960: SWAP5
00000961: POP
00000962: SWAP3
00000963: POP
00000964: POP
00000965: DUP1
00000966: DUP3
00000967: EQ
00000968: PUSH2 0x09a7
0000096b: JUMPI
0000096c: PUSH1 0x40
0000096e: MLOAD
0000096f: PUSH32 0xd961e24c00000000000000000000000000000000000000000000000000000000
00000990: DUP2
00000991: MSTORE
00000992: PUSH1 0x04
00000994: DUP2
00000995: ADD
00000996: DUP3
00000997: SWAP1
00000998: MSTORE
00000999: PUSH1 0x24
0000099b: DUP2
0000099c: ADD
0000099d: DUP4
0000099e: SWAP1
0000099f: MSTORE
000009a0: PUSH1 0x44
000009a2: ADD
000009a3: PUSH2 0x0907
000009a6: JUMP
000009a7: JUMPDEST
000009a8: PUSH1 0x31
000009aa: SLOAD
000009ab: PUSH1 0x40
000009ad: MLOAD
000009ae: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
000009cf: DUP2
000009d0: MSTORE
000009d1: ADDRESS
000009d2: PUSH1 0x04
000009d4: DUP3
000009d5: ADD
000009d6: MSTORE
000009d7: PUSH1 0x00
000009d9: SWAP2
000009da: PUSH1 0x01
000009dc: PUSH1 0x01
000009de: PUSH1 0xa0
000009e0: SHL
000009e1: SUB
000009e2: AND
000009e3: SWAP1
000009e4: PUSH4 0x70a08231
000009e9: SWAP1
000009ea: PUSH1 0x24
000009ec: ADD
000009ed: PUSH1 0x20
000009ef: PUSH1 0x40
000009f1: MLOAD
000009f2: DUP1
000009f3: DUP4
000009f4: SUB
000009f5: DUP2
000009f6: DUP7
000009f7: GAS
000009f8: STATICCALL
000009f9: ISZERO
000009fa: DUP1
000009fb: ISZERO
000009fc: PUSH2 0x0a09
000009ff: JUMPI
00000a00: RETURNDATASIZE
00000a01: PUSH1 0x00
00000a03: DUP1
00000a04: RETURNDATACOPY
00000a05: RETURNDATASIZE
00000a06: PUSH1 0x00
00000a08: REVERT
00000a09: JUMPDEST
00000a0a: POP
00000a0b: POP
00000a0c: POP
00000a0d: POP
00000a0e: PUSH1 0x40
00000a10: MLOAD
00000a11: RETURNDATASIZE
00000a12: PUSH1 0x1f
00000a14: NOT
00000a15: PUSH1 0x1f
00000a17: DUP3
00000a18: ADD
00000a19: AND
00000a1a: DUP3
00000a1b: ADD
00000a1c: DUP1
00000a1d: PUSH1 0x40
00000a1f: MSTORE
00000a20: POP
00000a21: DUP2
00000a22: ADD
00000a23: SWAP1
00000a24: PUSH2 0x0a2d
00000a27: SWAP2
00000a28: SWAP1
00000a29: PUSH2 0x4bfc
00000a2c: JUMP
00000a2d: JUMPDEST
00000a2e: SWAP1
00000a2f: POP
00000a30: DUP4
00000a31: DUP2
00000a32: LT
00000a33: ISZERO
00000a34: PUSH2 0x0a73
00000a37: JUMPI
00000a38: PUSH1 0x40
00000a3a: MLOAD
00000a3b: PUSH32 0x17c7cec700000000000000000000000000000000000000000000000000000000
00000a5c: DUP2
00000a5d: MSTORE
00000a5e: PUSH1 0x04
00000a60: DUP2
00000a61: ADD
00000a62: DUP3
00000a63: SWAP1
00000a64: MSTORE
00000a65: PUSH1 0x24
00000a67: DUP2
00000a68: ADD
00000a69: DUP6
00000a6a: SWAP1
00000a6b: MSTORE
00000a6c: PUSH1 0x44
00000a6e: ADD
00000a6f: PUSH2 0x0907
00000a72: JUMP
00000a73: JUMPDEST
00000a74: PUSH1 0x40
00000a76: DUP1
00000a77: MLOAD
00000a78: DUP6
00000a79: DUP2
00000a7a: MSTORE
00000a7b: PUSH1 0x20
00000a7d: DUP2
00000a7e: ADD
00000a7f: DUP7
00000a80: SWAP1
00000a81: MSTORE
00000a82: DUP8
00000a83: SWAP2
00000a84: PUSH32 0xa81d3c9594b1f3363bfc07d9277c4624e0da8dae3b42d466f1edc0718c62ab53
00000aa5: SWAP2
00000aa6: ADD
00000aa7: PUSH1 0x40
00000aa9: MLOAD
00000aaa: DUP1
00000aab: SWAP2
00000aac: SUB
00000aad: SWAP1
00000aae: LOG2
00000aaf: PUSH1 0x31
00000ab1: SLOAD
00000ab2: PUSH2 0x0ac6
00000ab5: SWAP1
00000ab6: DUP7
00000ab7: SWAP1
00000ab8: PUSH1 0x01
00000aba: PUSH1 0x01
00000abc: PUSH1 0xa0
00000abe: SHL
00000abf: SUB
00000ac0: AND
00000ac1: DUP7
00000ac2: PUSH2 0x2ecc
00000ac5: JUMP
00000ac6: JUMPDEST
00000ac7: POP
00000ac8: POP
00000ac9: POP
00000aca: POP
00000acb: POP
00000acc: POP
00000acd: JUMP
00000ace: JUMPDEST
00000acf: PUSH1 0x00
00000ad1: DUP2
00000ad2: DUP2
00000ad3: MSTORE
00000ad4: PUSH1 0x98
00000ad6: PUSH1 0x20
00000ad8: MSTORE
00000ad9: PUSH1 0x40
00000adb: DUP2
00000adc: KECCAK256
00000add: SLOAD
00000ade: PUSH2 0x0ae6
00000ae1: SWAP1
00000ae2: PUSH2 0x2f2c
00000ae5: JUMP
00000ae6: JUMPDEST
00000ae7: SWAP3
00000ae8: SWAP2
00000ae9: POP
00000aea: POP
00000aeb: JUMP
00000aec: JUMPDEST
00000aed: PUSH2 0x0af4
00000af0: PUSH2 0x2f5b
00000af3: JUMP
00000af4: JUMPDEST
00000af5: PUSH1 0x31
00000af7: SLOAD
00000af8: PUSH1 0x40
00000afa: MLOAD
00000afb: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000
00000b1c: DUP2
00000b1d: MSTORE
00000b1e: CALLER
00000b1f: PUSH1 0x04
00000b21: DUP3
00000b22: ADD
00000b23: MSTORE
00000b24: ADDRESS
00000b25: PUSH1 0x24
00000b27: DUP3
00000b28: ADD
00000b29: MSTORE
00000b2a: DUP8
00000b2b: SWAP2
00000b2c: PUSH1 0x01
00000b2e: PUSH1 0x01
00000b30: PUSH1 0xa0
00000b32: SHL
00000b33: SUB
00000b34: AND
00000b35: SWAP1
00000b36: PUSH4 0xdd62ed3e
00000b3b: SWAP1
00000b3c: PUSH1 0x44
00000b3e: ADD
00000b3f: PUSH1 0x20
00000b41: PUSH1 0x40
00000b43: MLOAD
00000b44: DUP1
00000b45: DUP4
00000b46: SUB
00000b47: DUP2
00000b48: DUP7
00000b49: GAS
00000b4a: STATICCALL
00000b4b: ISZERO
00000b4c: DUP1
00000b4d: ISZERO
00000b4e: PUSH2 0x0b5b
00000b51: JUMPI
00000b52: RETURNDATASIZE
00000b53: PUSH1 0x00
00000b55: DUP1
00000b56: RETURNDATACOPY
00000b57: RETURNDATASIZE
00000b58: PUSH1 0x00
00000b5a: REVERT
00000b5b: JUMPDEST
00000b5c: POP
00000b5d: POP
00000b5e: POP
00000b5f: POP
00000b60: PUSH1 0x40
00000b62: MLOAD
00000b63: RETURNDATASIZE
00000b64: PUSH1 0x1f
00000b66: NOT
00000b67: PUSH1 0x1f
00000b69: DUP3
00000b6a: ADD
00000b6b: AND
00000b6c: DUP3
00000b6d: ADD
00000b6e: DUP1
00000b6f: PUSH1 0x40
00000b71: MSTORE
00000b72: POP
00000b73: DUP2
00000b74: ADD
00000b75: SWAP1
00000b76: PUSH2 0x0b7f
00000b79: SWAP2
00000b7a: SWAP1
00000b7b: PUSH2 0x4bfc
00000b7e: JUMP
00000b7f: JUMPDEST
00000b80: LT
00000b81: ISZERO
00000b82: PUSH2 0x0c27
00000b85: JUMPI
00000b86: PUSH1 0x31
00000b88: SLOAD
00000b89: PUSH1 0x40
00000b8b: MLOAD
00000b8c: PUSH32 0xd505accf00000000000000000000000000000000000000000000000000000000
00000bad: DUP2
00000bae: MSTORE
00000baf: CALLER
00000bb0: PUSH1 0x04
00000bb2: DUP3
00000bb3: ADD
00000bb4: MSTORE
00000bb5: ADDRESS
00000bb6: PUSH1 0x24
00000bb8: DUP3
00000bb9: ADD
00000bba: MSTORE
00000bbb: PUSH1 0x44
00000bbd: DUP2
00000bbe: ADD
00000bbf: DUP9
00000bc0: SWAP1
00000bc1: MSTORE
00000bc2: PUSH1 0x64
00000bc4: DUP2
00000bc5: ADD
00000bc6: DUP7
00000bc7: SWAP1
00000bc8: MSTORE
00000bc9: PUSH1 0xff
00000bcb: DUP6
00000bcc: AND
00000bcd: PUSH1 0x84
00000bcf: DUP3
00000bd0: ADD
00000bd1: MSTORE
00000bd2: PUSH1 0xa4
00000bd4: DUP2
00000bd5: ADD
00000bd6: DUP5
00000bd7: SWAP1
00000bd8: MSTORE
00000bd9: PUSH1 0xc4
00000bdb: DUP2
00000bdc: ADD
00000bdd: DUP4
00000bde: SWAP1
00000bdf: MSTORE
00000be0: PUSH1 0x01
00000be2: PUSH1 0x01
00000be4: PUSH1 0xa0
00000be6: SHL
00000be7: SUB
00000be8: SWAP1
00000be9: SWAP2
00000bea: AND
00000beb: SWAP1
00000bec: PUSH4 0xd505accf
00000bf1: SWAP1
00000bf2: PUSH1 0xe4
00000bf4: ADD
00000bf5: PUSH1 0x00
00000bf7: PUSH1 0x40
00000bf9: MLOAD
00000bfa: DUP1
00000bfb: DUP4
00000bfc: SUB
00000bfd: DUP2
00000bfe: PUSH1 0x00
00000c00: DUP8
00000c01: DUP1
00000c02: EXTCODESIZE
00000c03: ISZERO
00000c04: DUP1
00000c05: ISZERO
00000c06: PUSH2 0x0c0e
00000c09: JUMPI
00000c0a: PUSH1 0x00
00000c0c: DUP1
00000c0d: REVERT
00000c0e: JUMPDEST
00000c0f: POP
00000c10: GAS
00000c11: CALL
00000c12: ISZERO
00000c13: DUP1
00000c14: ISZERO
00000c15: PUSH2 0x0c22
00000c18: JUMPI
00000c19: RETURNDATASIZE
00000c1a: PUSH1 0x00
00000c1c: DUP1
00000c1d: RETURNDATACOPY
00000c1e: RETURNDATASIZE
00000c1f: PUSH1 0x00
00000c21: REVERT
00000c22: JUMPDEST
00000c23: POP
00000c24: POP
00000c25: POP
00000c26: POP
00000c27: JUMPDEST
00000c28: PUSH2 0x0c31
00000c2b: DUP7
00000c2c: DUP7
00000c2d: PUSH2 0x2fdc
00000c30: JUMP
00000c31: JUMPDEST
00000c32: PUSH2 0x0ac6
00000c35: PUSH1 0x01
00000c37: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
00000c58: SSTORE
00000c59: JUMP
00000c5a: JUMPDEST
00000c5b: PUSH1 0x96
00000c5d: SLOAD
00000c5e: PUSH1 0x00
00000c60: SWAP1
00000c61: PUSH1 0x03
00000c63: SWAP1
00000c64: PUSH2 0x0c6e
00000c67: SWAP1
00000c68: PUSH1 0x02
00000c6a: PUSH2 0x4c44
00000c6d: JUMP
00000c6e: JUMPDEST
00000c6f: PUSH2 0x0c78
00000c72: SWAP2
00000c73: SWAP1
00000c74: PUSH2 0x4c8a
00000c77: JUMP
00000c78: JUMPDEST
00000c79: PUSH2 0x0c83
00000c7c: SWAP1
00000c7d: PUSH1 0x01
00000c7f: PUSH2 0x4c9e
00000c82: JUMP
00000c83: JUMPDEST
00000c84: SWAP1
00000c85: POP
00000c86: SWAP1
00000c87: JUMP
00000c88: JUMPDEST
00000c89: PUSH2 0x0c90
00000c8c: PUSH2 0x2c01
00000c8f: JUMP
00000c90: JUMPDEST
00000c91: PUSH2 0x2710
00000c94: DUP2
00000c95: GT
00000c96: ISZERO
00000c97: PUSH2 0x0ccf
00000c9a: JUMPI
00000c9b: PUSH1 0x40
00000c9d: MLOAD
00000c9e: PUSH32 0xfef6049900000000000000000000000000000000000000000000000000000000
00000cbf: DUP2
00000cc0: MSTORE
00000cc1: PUSH1 0x04
00000cc3: DUP2
00000cc4: ADD
00000cc5: DUP3
00000cc6: SWAP1
00000cc7: MSTORE
00000cc8: PUSH1 0x24
00000cca: ADD
00000ccb: PUSH2 0x0907
00000cce: JUMP
00000ccf: JUMPDEST
00000cd0: PUSH1 0x9b
00000cd2: DUP1
00000cd3: SLOAD
00000cd4: SWAP1
00000cd5: DUP3
00000cd6: SWAP1
00000cd7: SSTORE
00000cd8: PUSH1 0x40
00000cda: DUP1
00000cdb: MLOAD
00000cdc: DUP3
00000cdd: DUP2
00000cde: MSTORE
00000cdf: PUSH1 0x20
00000ce1: DUP2
00000ce2: ADD
00000ce3: DUP5
00000ce4: SWAP1
00000ce5: MSTORE
00000ce6: PUSH32 0x72aa1ef4707dfa7defd1468e6ffc70bf9517ce19e3afad93fcf4be42f2d494f5
00000d07: SWAP2
00000d08: ADD
00000d09: JUMPDEST
00000d0a: PUSH1 0x40
00000d0c: MLOAD
00000d0d: DUP1
00000d0e: SWAP2
00000d0f: SUB
00000d10: SWAP1
00000d11: LOG1
00000d12: POP
00000d13: POP
00000d14: JUMP
00000d15: JUMPDEST
00000d16: PUSH2 0x0d1d
00000d19: PUSH2 0x2c01
00000d1c: JUMP
00000d1d: JUMPDEST
00000d1e: PUSH1 0x01
00000d20: PUSH1 0x01
00000d22: PUSH1 0xa0
00000d24: SHL
00000d25: SUB
00000d26: DUP3
00000d27: AND
00000d28: PUSH2 0x0d5d
00000d2b: JUMPI
00000d2c: PUSH1 0x40
00000d2e: MLOAD
00000d2f: PUSH32 0x09efa31000000000000000000000000000000000000000000000000000000000
00000d50: DUP2
00000d51: MSTORE
00000d52: PUSH1 0x04
00000d54: ADD
00000d55: PUSH1 0x40
00000d57: MLOAD
00000d58: DUP1
00000d59: SWAP2
00000d5a: SUB
00000d5b: SWAP1
00000d5c: REVERT
00000d5d: JUMPDEST
00000d5e: PUSH1 0x01
00000d60: PUSH1 0x01
00000d62: PUSH1 0xa0
00000d64: SHL
00000d65: SUB
00000d66: DUP3
00000d67: AND
00000d68: PUSH1 0x00
00000d6a: DUP2
00000d6b: DUP2
00000d6c: MSTORE
00000d6d: PUSH1 0xa0
00000d6f: PUSH1 0x20
00000d71: SWAP1
00000d72: DUP2
00000d73: MSTORE
00000d74: PUSH1 0x40
00000d76: SWAP2
00000d77: DUP3
00000d78: SWAP1
00000d79: KECCAK256
00000d7a: DUP1
00000d7b: SLOAD
00000d7c: SWAP1
00000d7d: DUP6
00000d7e: SWAP1
00000d7f: SSTORE
00000d80: DUP3
00000d81: MLOAD
00000d82: DUP2
00000d83: DUP2
00000d84: MSTORE
00000d85: SWAP2
00000d86: DUP3
00000d87: ADD
00000d88: DUP6
00000d89: SWAP1
00000d8a: MSTORE
00000d8b: SWAP3
00000d8c: SWAP2
00000d8d: PUSH32 0x7cf495d0721b90f9bc8526386d68044b3089d9bb4f7da168c43b6ef149d01f44
00000dae: SWAP2
00000daf: ADD
00000db0: PUSH1 0x40
00000db2: MLOAD
00000db3: DUP1
00000db4: SWAP2
00000db5: SUB
00000db6: SWAP1
00000db7: LOG2
00000db8: POP
00000db9: POP
00000dba: POP
00000dbb: JUMP
00000dbc: JUMPDEST
00000dbd: PUSH2 0x0dc4
00000dc0: PUSH2 0x2c01
00000dc3: JUMP
00000dc4: JUMPDEST
00000dc5: PUSH1 0x9f
00000dc7: SLOAD
00000dc8: PUSH1 0xff
00000dca: AND
00000dcb: ISZERO
00000dcc: PUSH2 0x0e01
00000dcf: JUMPI
00000dd0: PUSH1 0x40
00000dd2: MLOAD
00000dd3: PUSH32 0x4650e20200000000000000000000000000000000000000000000000000000000
00000df4: DUP2
00000df5: MSTORE
00000df6: PUSH1 0x04
00000df8: ADD
00000df9: PUSH1 0x40
00000dfb: MLOAD
00000dfc: DUP1
00000dfd: SWAP2
00000dfe: SUB
00000dff: SWAP1
00000e00: REVERT
00000e01: JUMPDEST
00000e02: PUSH1 0x40
00000e04: MLOAD
00000e05: PUSH32 0x5fdb6462f7e6c03fd91563abe4f995cd30b93a004808b757898a267f34770058
00000e26: SWAP1
00000e27: PUSH1 0x00
00000e29: SWAP1
00000e2a: LOG1
00000e2b: PUSH1 0x9f
00000e2d: DUP1
00000e2e: SLOAD
00000e2f: PUSH1 0xff
00000e31: NOT
00000e32: AND
00000e33: PUSH1 0x01
00000e35: OR
00000e36: SWAP1
00000e37: SSTORE
00000e38: JUMP
00000e39: JUMPDEST
00000e3a: PUSH2 0x0e41
00000e3d: PUSH2 0x2f5b
00000e40: JUMP
00000e41: JUMPDEST
00000e42: PUSH1 0x01
00000e44: PUSH1 0x01
00000e46: PUSH1 0xa0
00000e48: SHL
00000e49: SUB
00000e4a: DUP4
00000e4b: AND
00000e4c: PUSH1 0x00
00000e4e: SWAP1
00000e4f: DUP2
00000e50: MSTORE
00000e51: PUSH1 0x64
00000e53: PUSH1 0x20
00000e55: MSTORE
00000e56: PUSH1 0x40
00000e58: DUP2
00000e59: KECCAK256
00000e5a: SLOAD
00000e5b: SWAP1
00000e5c: DUP2
00000e5d: SWAP1
00000e5e: SUB
00000e5f: PUSH2 0x0e94
00000e62: JUMPI
00000e63: PUSH1 0x40
00000e65: MLOAD
00000e66: PUSH32 0x881b8d7c00000000000000000000000000000000000000000000000000000000
00000e87: DUP2
00000e88: MSTORE
00000e89: PUSH1 0x04
00000e8b: ADD
00000e8c: PUSH1 0x40
00000e8e: MLOAD
00000e8f: DUP1
00000e90: SWAP2
00000e91: SUB
00000e92: SWAP1
00000e93: REVERT
00000e94: JUMPDEST
00000e95: PUSH1 0x01
00000e97: PUSH1 0x01
00000e99: PUSH1 0xa0
00000e9b: SHL
00000e9c: SUB
00000e9d: DUP3
00000e9e: AND
00000e9f: PUSH2 0x0ed4
00000ea2: JUMPI
00000ea3: PUSH1 0x40
00000ea5: MLOAD
00000ea6: PUSH32 0x478b9dda00000000000000000000000000000000000000000000000000000000
00000ec7: DUP2
00000ec8: MSTORE
00000ec9: PUSH1 0x04
00000ecb: ADD
00000ecc: PUSH1 0x40
00000ece: MLOAD
00000ecf: DUP1
00000ed0: SWAP2
00000ed1: SUB
00000ed2: SWAP1
00000ed3: REVERT
00000ed4: JUMPDEST
00000ed5: DUP1
00000ed6: DUP4
00000ed7: LT
00000ed8: ISZERO
00000ed9: PUSH2 0x0f0e
00000edc: JUMPI
00000edd: PUSH1 0x40
00000edf: MLOAD
00000ee0: PUSH32 0x542f23f600000000000000000000000000000000000000000000000000000000
00000f01: DUP2
00000f02: MSTORE
00000f03: PUSH1 0x04
00000f05: ADD
00000f06: PUSH1 0x40
00000f08: MLOAD
00000f09: DUP1
00000f0a: SWAP2
00000f0b: SUB
00000f0c: SWAP1
00000f0d: REVERT
00000f0e: JUMPDEST
00000f0f: PUSH2 0x0f19
00000f12: DUP3
00000f13: DUP6
00000f14: DUP6
00000f15: PUSH2 0x2ecc
00000f18: JUMP
00000f19: JUMPDEST
00000f1a: PUSH2 0x0f2e
00000f1d: PUSH1 0x01
00000f1f: PUSH1 0x01
00000f21: PUSH1 0xa0
00000f23: SHL
00000f24: SUB
00000f25: DUP6
00000f26: AND
00000f27: CALLER
00000f28: ADDRESS
00000f29: DUP7
00000f2a: PUSH2 0x30aa
00000f2d: JUMP
00000f2e: JUMPDEST
00000f2f: POP
00000f30: PUSH2 0x0f58
00000f33: PUSH1 0x01
00000f35: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
00000f56: SSTORE
00000f57: JUMP
00000f58: JUMPDEST
00000f59: POP
00000f5a: POP
00000f5b: POP
00000f5c: JUMP
00000f5d: JUMPDEST
00000f5e: PUSH2 0x0f65
00000f61: PUSH2 0x2c01
00000f64: JUMP
00000f65: JUMPDEST
00000f66: DUP1
00000f67: PUSH1 0x00
00000f69: SUB
00000f6a: PUSH2 0x0f9f
00000f6d: JUMPI
00000f6e: PUSH1 0x40
00000f70: MLOAD
00000f71: PUSH32 0x4b81b6b900000000000000000000000000000000000000000000000000000000
00000f92: DUP2
00000f93: MSTORE
00000f94: PUSH1 0x04
00000f96: ADD
00000f97: PUSH1 0x40
00000f99: MLOAD
00000f9a: DUP1
00000f9b: SWAP2
00000f9c: SUB
00000f9d: SWAP1
00000f9e: REVERT
00000f9f: JUMPDEST
00000fa0: PUSH1 0x33
00000fa2: DUP2
00000fa3: SWAP1
00000fa4: SSTORE
00000fa5: PUSH1 0x40
00000fa7: MLOAD
00000fa8: DUP2
00000fa9: DUP2
00000faa: MSTORE
00000fab: PUSH32 0xe64dbc80c2152cea46e3b80ba80f3e8c125114dc79194e9c947b480cfc80e59c
00000fcc: SWAP1
00000fcd: PUSH1 0x20
00000fcf: ADD
00000fd0: PUSH1 0x40
00000fd2: MLOAD
00000fd3: DUP1
00000fd4: SWAP2
00000fd5: SUB
00000fd6: SWAP1
00000fd7: LOG1
00000fd8: POP
00000fd9: JUMP
00000fda: JUMPDEST
00000fdb: PUSH2 0x0fe2
00000fde: PUSH2 0x2c01
00000fe1: JUMP
00000fe2: JUMPDEST
00000fe3: PUSH1 0x01
00000fe5: PUSH1 0x01
00000fe7: PUSH1 0xa0
00000fe9: SHL
00000fea: SUB
00000feb: DUP3
00000fec: AND
00000fed: PUSH2 0x1022
00000ff0: JUMPI
00000ff1: PUSH1 0x40
00000ff3: MLOAD
00000ff4: PUSH32 0x09efa31000000000000000000000000000000000000000000000000000000000
00001015: DUP2
00001016: MSTORE
00001017: PUSH1 0x04
00001019: ADD
0000101a: PUSH1 0x40
0000101c: MLOAD
0000101d: DUP1
0000101e: SWAP2
0000101f: SUB
00001020: SWAP1
00001021: REVERT
00001022: JUMPDEST
00001023: DUP1
00001024: PUSH1 0x00
00001026: SUB
00001027: PUSH2 0x105c
0000102a: JUMPI
0000102b: PUSH1 0x40
0000102d: MLOAD
0000102e: PUSH32 0x47fba16a00000000000000000000000000000000000000000000000000000000
0000104f: DUP2
00001050: MSTORE
00001051: PUSH1 0x04
00001053: ADD
00001054: PUSH1 0x40
00001056: MLOAD
00001057: DUP1
00001058: SWAP2
00001059: SUB
0000105a: SWAP1
0000105b: REVERT
0000105c: JUMPDEST
0000105d: PUSH1 0x01
0000105f: PUSH1 0x01
00001061: PUSH1 0xa0
00001063: SHL
00001064: SUB
00001065: DUP3
00001066: AND
00001067: PUSH1 0x00
00001069: SWAP1
0000106a: DUP2
0000106b: MSTORE
0000106c: PUSH1 0x64
0000106e: PUSH1 0x20
00001070: MSTORE
00001071: PUSH1 0x40
00001073: SWAP1
00001074: KECCAK256
00001075: SLOAD
00001076: ISZERO
00001077: PUSH2 0x10ac
0000107a: JUMPI
0000107b: PUSH1 0x40
0000107d: MLOAD
0000107e: PUSH32 0x98f1758300000000000000000000000000000000000000000000000000000000
0000109f: DUP2
000010a0: MSTORE
000010a1: PUSH1 0x04
000010a3: ADD
000010a4: PUSH1 0x40
000010a6: MLOAD
000010a7: DUP1
000010a8: SWAP2
000010a9: SUB
000010aa: SWAP1
000010ab: REVERT
000010ac: JUMPDEST
000010ad: PUSH1 0x14
000010af: PUSH1 0x63
000010b1: SLOAD
000010b2: LT
000010b3: PUSH2 0x10e8
000010b6: JUMPI
000010b7: PUSH1 0x40
000010b9: MLOAD
000010ba: PUSH32 0x17dfdea400000000000000000000000000000000000000000000000000000000
000010db: DUP2
000010dc: MSTORE
000010dd: PUSH1 0x04
000010df: ADD
000010e0: PUSH1 0x40
000010e2: MLOAD
000010e3: DUP1
000010e4: SWAP2
000010e5: SUB
000010e6: SWAP1
000010e7: REVERT
000010e8: JUMPDEST
000010e9: PUSH1 0x63
000010eb: DUP1
000010ec: SLOAD
000010ed: SWAP1
000010ee: PUSH1 0x00
000010f0: PUSH2 0x10f8
000010f3: DUP4
000010f4: PUSH2 0x4cb1
000010f7: JUMP
000010f8: JUMPDEST
000010f9: SWAP1
000010fa: SWAP2
000010fb: SSTORE
000010fc: POP
000010fd: POP
000010fe: PUSH1 0x01
00001100: PUSH1 0x01
00001102: PUSH1 0xa0
00001104: SHL
00001105: SUB
00001106: DUP3
00001107: AND
00001108: PUSH1 0x00
0000110a: DUP2
0000110b: DUP2
0000110c: MSTORE
0000110d: PUSH1 0x64
0000110f: PUSH1 0x20
00001111: MSTORE
00001112: PUSH1 0x40
00001114: SWAP1
00001115: DUP2
00001116: SWAP1
00001117: KECCAK256
00001118: DUP4
00001119: SWAP1
0000111a: SSTORE
0000111b: MLOAD
0000111c: PUSH32 0xf17d094161c4f2776fc9caa30094c8ebe1b86cd6f2108db5d9f1d46d8f85494c
0000113d: SWAP1
0000113e: PUSH2 0x114a
00001141: SWAP1
00001142: DUP5
00001143: DUP2
00001144: MSTORE
00001145: PUSH1 0x20
00001147: ADD
00001148: SWAP1
00001149: JUMP
0000114a: JUMPDEST
0000114b: PUSH1 0x40
0000114d: MLOAD
0000114e: DUP1
0000114f: SWAP2
00001150: SUB
00001151: SWAP1
00001152: LOG2
00001153: POP
00001154: POP
00001155: JUMP
00001156: JUMPDEST
00001157: PUSH1 0x01
00001159: PUSH1 0x01
0000115b: PUSH1 0xa0
0000115d: SHL
0000115e: SUB
0000115f: DUP2
00001160: AND
00001161: PUSH2 0x1196
00001164: JUMPI
00001165: PUSH1 0x40
00001167: MLOAD
00001168: PUSH32 0xb9c50bfb00000000000000000000000000000000000000000000000000000000
00001189: DUP2
0000118a: MSTORE
0000118b: PUSH1 0x04
0000118d: ADD
0000118e: PUSH1 0x40
00001190: MLOAD
00001191: DUP1
00001192: SWAP2
00001193: SUB
00001194: SWAP1
00001195: REVERT
00001196: JUMPDEST
00001197: PUSH1 0x40
00001199: DUP1
0000119a: MLOAD
0000119b: PUSH1 0x01
0000119d: PUSH1 0x01
0000119f: PUSH1 0xa0
000011a1: SHL
000011a2: SUB
000011a3: DUP4
000011a4: AND
000011a5: PUSH1 0x20
000011a7: DUP3
000011a8: ADD
000011a9: MSTORE
000011aa: PUSH1 0x00
000011ac: SWAP2
000011ad: PUSH2 0x11d0
000011b0: SWAP2
000011b1: DUP7
000011b2: SWAP2
000011b3: DUP7
000011b4: SWAP2
000011b5: ADD
000011b6: PUSH1 0x40
000011b8: MLOAD
000011b9: PUSH1 0x20
000011bb: DUP2
000011bc: DUP4
000011bd: SUB
000011be: SUB
000011bf: DUP2
000011c0: MSTORE
000011c1: SWAP1
000011c2: PUSH1 0x40
000011c4: MSTORE
000011c5: DUP1
000011c6: MLOAD
000011c7: SWAP1
000011c8: PUSH1 0x20
000011ca: ADD
000011cb: KECCAK256
000011cc: PUSH2 0x312c
000011cf: JUMP
000011d0: JUMPDEST
000011d1: POP
000011d2: SWAP1
000011d3: POP
000011d4: PUSH1 0x00
000011d6: DUP1
000011d7: DUP3
000011d8: DUP2
000011d9: MSTORE
000011da: PUSH1 0x32
000011dc: PUSH1 0x20
000011de: MSTORE
000011df: PUSH1 0x40
000011e1: SWAP1
000011e2: KECCAK256
000011e3: SLOAD
000011e4: PUSH1 0xff
000011e6: AND
000011e7: PUSH1 0x02
000011e9: DUP2
000011ea: GT
000011eb: ISZERO
000011ec: PUSH2 0x11f7
000011ef: JUMPI
000011f0: PUSH2 0x11f7
000011f3: PUSH2 0x4a24
000011f6: JUMP
000011f7: JUMPDEST
000011f8: EQ
000011f9: PUSH2 0x1244
000011fc: JUMPI
000011fd: PUSH1 0x00
000011ff: DUP2
00001200: DUP2
00001201: MSTORE
00001202: PUSH1 0x32
00001204: PUSH1 0x20
00001206: MSTORE
00001207: PUSH1 0x40
00001209: DUP1
0000120a: DUP3
0000120b: KECCAK256
0000120c: SLOAD
0000120d: SWAP1
0000120e: MLOAD
0000120f: PUSH32 0xed33029f00000000000000000000000000000000000000000000000000000000
00001230: DUP2
00001231: MSTORE
00001232: PUSH2 0x0907
00001235: SWAP3
00001236: PUSH1 0xff
00001238: SWAP1
00001239: SWAP3
0000123a: AND
0000123b: SWAP2
0000123c: SWAP1
0000123d: PUSH1 0x04
0000123f: ADD
00001240: PUSH2 0x4be1
00001243: JUMP
00001244: JUMPDEST
00001245: PUSH1 0x00
00001247: DUP2
00001248: DUP2
00001249: MSTORE
0000124a: PUSH1 0x32
0000124c: PUSH1 0x20
0000124e: MSTORE
0000124f: PUSH1 0x40
00001251: DUP1
00001252: DUP3
00001253: KECCAK256
00001254: DUP1
00001255: SLOAD
00001256: PUSH1 0xff
00001258: NOT
00001259: AND
0000125a: PUSH1 0x01
0000125c: OR
0000125d: SWAP1
0000125e: SSTORE
0000125f: MLOAD
00001260: PUSH1 0x01
00001262: PUSH1 0x01
00001264: PUSH1 0xa0
00001266: SHL
00001267: SUB
00001268: DUP5
00001269: AND
0000126a: SWAP2
0000126b: DUP4
0000126c: SWAP2
0000126d: PUSH32 0x2fbc945bad45e66509bad2bda7b97993796881f9ac2543b827d2aaf69f186923
0000128e: SWAP2
0000128f: SWAP1
00001290: LOG3
00001291: POP
00001292: POP
00001293: POP
00001294: POP
00001295: JUMP
00001296: JUMPDEST
00001297: PUSH2 0x129e
0000129a: PUSH2 0x2c01
0000129d: JUMP
0000129e: JUMPDEST
0000129f: PUSH2 0x12a8
000012a2: PUSH1 0x00
000012a4: PUSH2 0x330a
000012a7: JUMP
000012a8: JUMPDEST
000012a9: JUMP
000012aa: JUMPDEST
000012ab: PUSH2 0x12b2
000012ae: PUSH2 0x2c01
000012b1: JUMP
000012b2: JUMPDEST
000012b3: PUSH1 0x01
000012b5: PUSH1 0x01
000012b7: PUSH1 0xa0
000012b9: SHL
000012ba: SUB
000012bb: DUP2
000012bc: AND
000012bd: PUSH2 0x12f2
000012c0: JUMPI
000012c1: PUSH1 0x40
000012c3: MLOAD
000012c4: PUSH32 0xa824775d00000000000000000000000000000000000000000000000000000000
000012e5: DUP2
000012e6: MSTORE
000012e7: PUSH1 0x04
000012e9: ADD
000012ea: PUSH1 0x40
000012ec: MLOAD
000012ed: DUP1
000012ee: SWAP2
000012ef: SUB
000012f0: SWAP1
000012f1: REVERT
000012f2: JUMPDEST
000012f3: PUSH1 0x40
000012f5: MLOAD
000012f6: PUSH1 0x01
000012f8: PUSH1 0x01
000012fa: PUSH1 0xa0
000012fc: SHL
000012fd: SUB
000012fe: DUP3
000012ff: AND
00001300: DUP2
00001301: MSTORE
00001302: PUSH32 0xddd1da2f7284499afb480d8077281643c55f73d47bf490047baf68a57c1fa450
00001323: SWAP1
00001324: PUSH1 0x20
00001326: ADD
00001327: PUSH1 0x40
00001329: MLOAD
0000132a: DUP1
0000132b: SWAP2
0000132c: SUB
0000132d: SWAP1
0000132e: LOG1
0000132f: PUSH1 0x34
00001331: DUP1
00001332: SLOAD
00001333: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001354: AND
00001355: PUSH1 0x01
00001357: PUSH1 0x01
00001359: PUSH1 0xa0
0000135b: SHL
0000135c: SUB
0000135d: SWAP3
0000135e: SWAP1
0000135f: SWAP3
00001360: AND
00001361: SWAP2
00001362: SWAP1
00001363: SWAP2
00001364: OR
00001365: SWAP1
00001366: SSTORE
00001367: JUMP
00001368: JUMPDEST
00001369: PUSH2 0x1370
0000136c: PUSH2 0x2c01
0000136f: JUMP
00001370: JUMPDEST
00001371: PUSH1 0x01
00001373: PUSH1 0x01
00001375: PUSH1 0xa0
00001377: SHL
00001378: SUB
00001379: DUP2
0000137a: AND
0000137b: PUSH1 0x00
0000137d: SWAP1
0000137e: DUP2
0000137f: MSTORE
00001380: PUSH1 0x64
00001382: PUSH1 0x20
00001384: MSTORE
00001385: PUSH1 0x40
00001387: DUP2
00001388: KECCAK256
00001389: SLOAD
0000138a: SWAP1
0000138b: SUB
0000138c: PUSH2 0x13c1
0000138f: JUMPI
00001390: PUSH1 0x40
00001392: MLOAD
00001393: PUSH32 0x881b8d7c00000000000000000000000000000000000000000000000000000000
000013b4: DUP2
000013b5: MSTORE
000013b6: PUSH1 0x04
000013b8: ADD
000013b9: PUSH1 0x40
000013bb: MLOAD
000013bc: DUP1
000013bd: SWAP2
000013be: SUB
000013bf: SWAP1
000013c0: REVERT
000013c1: JUMPDEST
000013c2: PUSH1 0x63
000013c4: DUP1
000013c5: SLOAD
000013c6: SWAP1
000013c7: PUSH1 0x00
000013c9: PUSH2 0x13d1
000013cc: DUP4
000013cd: PUSH2 0x4ce9
000013d0: JUMP
000013d1: JUMPDEST
000013d2: SWAP1
000013d3: SWAP2
000013d4: SSTORE
000013d5: POP
000013d6: POP
000013d7: PUSH1 0x01
000013d9: PUSH1 0x01
000013db: PUSH1 0xa0
000013dd: SHL
000013de: SUB
000013df: DUP2
000013e0: AND
000013e1: PUSH1 0x00
000013e3: DUP2
000013e4: DUP2
000013e5: MSTORE
000013e6: PUSH1 0x64
000013e8: PUSH1 0x20
000013ea: MSTORE
000013eb: PUSH1 0x40
000013ed: DUP1
000013ee: DUP3
000013ef: KECCAK256
000013f0: DUP3
000013f1: SWAP1
000013f2: SSTORE
000013f3: MLOAD
000013f4: PUSH32 0x9c4edffd5782d54d432f513a2a7d944aac6f743c7ef4a83d8c6189ba21dd4299
00001415: SWAP2
00001416: SWAP1
00001417: LOG2
00001418: POP
00001419: JUMP
0000141a: JUMPDEST
0000141b: PUSH2 0x1422
0000141e: PUSH2 0x2f5b
00001421: JUMP
00001422: JUMPDEST
00001423: PUSH1 0x40
00001425: DUP1
00001426: MLOAD
00001427: PUSH1 0x60
00001429: DUP2
0000142a: ADD
0000142b: DUP3
0000142c: MSTORE
0000142d: CALLER
0000142e: DUP2
0000142f: MSTORE
00001430: PUSH1 0x01
00001432: PUSH1 0x20
00001434: DUP3
00001435: ADD
00001436: MSTORE
00001437: PUSH1 0x00
00001439: SWAP2
0000143a: DUP2
0000143b: ADD
0000143c: DUP3
0000143d: SWAP1
0000143e: MSTORE
0000143f: SWAP1
00001440: GAS
00001441: SWAP1
00001442: POP
00001443: PUSH1 0x00
00001445: DUP6
00001446: PUSH1 0x40
00001448: MLOAD
00001449: PUSH1 0x20
0000144b: ADD
0000144c: PUSH2 0x1455
0000144f: SWAP2
00001450: SWAP1
00001451: PUSH2 0x4e1c
00001454: JUMP
00001455: JUMPDEST
00001456: PUSH1 0x40
00001458: DUP1
00001459: MLOAD
0000145a: PUSH1 0x1f
0000145c: NOT
0000145d: DUP2
0000145e: DUP5
0000145f: SUB
00001460: ADD
00001461: DUP2
00001462: MSTORE
00001463: SWAP2
00001464: DUP2
00001465: MSTORE
00001466: DUP2
00001467: MLOAD
00001468: PUSH1 0x20
0000146a: SWAP3
0000146b: DUP4
0000146c: ADD
0000146d: KECCAK256
0000146e: PUSH1 0x00
00001470: DUP2
00001471: DUP2
00001472: MSTORE
00001473: PUSH1 0x9a
00001475: SWAP1
00001476: SWAP4
00001477: MSTORE
00001478: SWAP2
00001479: KECCAK256
0000147a: SLOAD
0000147b: SWAP1
0000147c: SWAP2
0000147d: POP
0000147e: PUSH1 0xff
00001480: AND
00001481: PUSH2 0x14b9
00001484: JUMPI
00001485: PUSH1 0x40
00001487: MLOAD
00001488: PUSH32 0xe198d21d00000000000000000000000000000000000000000000000000000000
000014a9: DUP2
000014aa: MSTORE
000014ab: PUSH1 0x04
000014ad: DUP2
000014ae: ADD
000014af: DUP3
000014b0: SWAP1
000014b1: MSTORE
000014b2: PUSH1 0x24
000014b4: ADD
000014b5: PUSH2 0x0907
000014b8: JUMP
000014b9: JUMPDEST
000014ba: PUSH1 0x00
000014bc: DUP2
000014bd: DUP2
000014be: MSTORE
000014bf: PUSH1 0x9a
000014c1: PUSH1 0x20
000014c3: MSTORE
000014c4: PUSH1 0x40
000014c6: DUP1
000014c7: DUP3
000014c8: KECCAK256
000014c9: DUP1
000014ca: SLOAD
000014cb: PUSH1 0xff
000014cd: NOT
000014ce: AND
000014cf: SWAP1
000014d0: SSTORE
000014d1: PUSH2 0x1530
000014d4: SWAP1
000014d5: PUSH2 0x14e4
000014d8: SWAP1
000014d9: PUSH1 0x60
000014db: DUP11
000014dc: ADD
000014dd: SWAP1
000014de: DUP11
000014df: ADD
000014e0: PUSH2 0x4567
000014e3: JUMP
000014e4: JUMPDEST
000014e5: PUSH1 0x60
000014e7: DUP10
000014e8: ADD
000014e9: CALLDATALOAD
000014ea: PUSH2 0x14f6
000014ed: PUSH1 0x20
000014ef: DUP12
000014f0: ADD
000014f1: DUP12
000014f2: PUSH2 0x4e2f
000014f5: JUMP
000014f6: JUMPDEST
000014f7: DUP1
000014f8: DUP1
000014f9: PUSH1 0x1f
000014fb: ADD
000014fc: PUSH1 0x20
000014fe: DUP1
000014ff: SWAP2
00001500: DIV
00001501: MUL
00001502: PUSH1 0x20
00001504: ADD
00001505: PUSH1 0x40
00001507: MLOAD
00001508: SWAP1
00001509: DUP2
0000150a: ADD
0000150b: PUSH1 0x40
0000150d: MSTORE
0000150e: DUP1
0000150f: SWAP4
00001510: SWAP3
00001511: SWAP2
00001512: SWAP1
00001513: DUP2
00001514: DUP2
00001515: MSTORE
00001516: PUSH1 0x20
00001518: ADD
00001519: DUP4
0000151a: DUP4
0000151b: DUP1
0000151c: DUP3
0000151d: DUP5
0000151e: CALLDATACOPY
0000151f: PUSH1 0x00
00001521: SWAP3
00001522: ADD
00001523: SWAP2
00001524: SWAP1
00001525: SWAP2
00001526: MSTORE
00001527: POP
00001528: PUSH2 0x335a
0000152b: SWAP3
0000152c: POP
0000152d: POP
0000152e: POP
0000152f: JUMP
00001530: JUMPDEST
00001531: SWAP1
00001532: POP
00001533: PUSH2 0x154a
00001536: DUP7
00001537: DUP7
00001538: PUSH2 0x1544
0000153b: PUSH1 0x20
0000153d: DUP12
0000153e: ADD
0000153f: DUP12
00001540: PUSH2 0x4e2f
00001543: JUMP
00001544: JUMPDEST
00001545: DUP6
00001546: PUSH2 0x34b1
00001549: JUMP
0000154a: JUMPDEST
0000154b: POP
0000154c: POP
0000154d: PUSH1 0x9d
0000154f: SLOAD
00001550: PUSH1 0x01
00001552: PUSH1 0x01
00001554: PUSH1 0xa0
00001556: SHL
00001557: SUB
00001558: AND
00001559: DUP1
0000155a: PUSH2 0x1564
0000155d: JUMPI
0000155e: POP
0000155f: POP
00001560: PUSH2 0x0f2e
00001563: JUMP
00001564: JUMPDEST
00001565: DUP3
00001566: PUSH1 0x20
00001568: ADD
00001569: MLOAD
0000156a: DUP1
0000156b: ISZERO
0000156c: PUSH2 0x158f
0000156f: JUMPI
00001570: POP
00001571: DUP3
00001572: MLOAD
00001573: PUSH1 0x01
00001575: PUSH1 0x01
00001577: PUSH1 0xa0
00001579: SHL
0000157a: SUB
0000157b: AND
0000157c: PUSH1 0x00
0000157e: SWAP1
0000157f: DUP2
00001580: MSTORE
00001581: PUSH1 0x9e
00001583: PUSH1 0x20
00001585: MSTORE
00001586: PUSH1 0x40
00001588: SWAP1
00001589: KECCAK256
0000158a: SLOAD
0000158b: PUSH1 0xff
0000158d: AND
0000158e: ISZERO
0000158f: JUMPDEST
00001590: ISZERO
00001591: PUSH2 0x159b
00001594: JUMPI
00001595: POP
00001596: POP
00001597: PUSH2 0x0f2e
0000159a: JUMP
0000159b: JUMPDEST
0000159c: DUP1
0000159d: PUSH1 0x01
0000159f: PUSH1 0x01
000015a1: PUSH1 0xa0
000015a3: SHL
000015a4: SUB
000015a5: AND
000015a6: PUSH4 0x7ad226dc
000015ab: DUP5
000015ac: PUSH1 0x40
000015ae: ADD
000015af: MLOAD
000015b0: GAS
000015b1: PUSH2 0x15ba
000015b4: SWAP1
000015b5: DUP7
000015b6: PUSH2 0x4e94
000015b9: JUMP
000015ba: JUMPDEST
000015bb: PUSH2 0x15c4
000015be: SWAP2
000015bf: SWAP1
000015c0: PUSH2 0x4c9e
000015c3: JUMP
000015c4: JUMPDEST
000015c5: DUP6
000015c6: MLOAD
000015c7: PUSH1 0x40
000015c9: MLOAD
000015ca: PUSH1 0xe0
000015cc: DUP5
000015cd: SWAP1
000015ce: SHL
000015cf: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000015f0: AND
000015f1: DUP2
000015f2: MSTORE
000015f3: PUSH1 0x04
000015f5: DUP2
000015f6: ADD
000015f7: SWAP3
000015f8: SWAP1
000015f9: SWAP3
000015fa: MSTORE
000015fb: PUSH1 0x01
000015fd: PUSH1 0x01
000015ff: PUSH1 0xa0
00001601: SHL
00001602: SUB
00001603: AND
00001604: PUSH1 0x24
00001606: DUP3
00001607: ADD
00001608: MSTORE
00001609: PUSH1 0x44
0000160b: ADD
0000160c: PUSH1 0x00
0000160e: PUSH1 0x40
00001610: MLOAD
00001611: DUP1
00001612: DUP4
00001613: SUB
00001614: DUP2
00001615: PUSH1 0x00
00001617: DUP8
00001618: DUP1
00001619: EXTCODESIZE
0000161a: ISZERO
0000161b: DUP1
0000161c: ISZERO
0000161d: PUSH2 0x1625
00001620: JUMPI
00001621: PUSH1 0x00
00001623: DUP1
00001624: REVERT
00001625: JUMPDEST
00001626: POP
00001627: GAS
00001628: CALL
00001629: ISZERO
0000162a: DUP1
0000162b: ISZERO
0000162c: PUSH2 0x1639
0000162f: JUMPI
00001630: RETURNDATASIZE
00001631: PUSH1 0x00
00001633: DUP1
00001634: RETURNDATACOPY
00001635: RETURNDATASIZE
00001636: PUSH1 0x00
00001638: REVERT
00001639: JUMPDEST
0000163a: POP
0000163b: POP
0000163c: POP
0000163d: POP
0000163e: POP
0000163f: POP
00001640: POP
00001641: PUSH2 0x0f58
00001644: PUSH1 0x01
00001646: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
00001667: SSTORE
00001668: JUMP
00001669: JUMPDEST
0000166a: CALLER
0000166b: DUP1
0000166c: PUSH2 0x1673
0000166f: PUSH2 0x2acd
00001672: JUMP
00001673: JUMPDEST
00001674: PUSH1 0x01
00001676: PUSH1 0x01
00001678: PUSH1 0xa0
0000167a: SHL
0000167b: SUB
0000167c: AND
0000167d: EQ
0000167e: PUSH2 0x16be
00001681: JUMPI
00001682: PUSH1 0x40
00001684: MLOAD
00001685: PUSH32 0x118cdaa700000000000000000000000000000000000000000000000000000000
000016a6: DUP2
000016a7: MSTORE
000016a8: PUSH1 0x01
000016aa: PUSH1 0x01
000016ac: PUSH1 0xa0
000016ae: SHL
000016af: SUB
000016b0: DUP3
000016b1: AND
000016b2: PUSH1 0x04
000016b4: DUP3
000016b5: ADD
000016b6: MSTORE
000016b7: PUSH1 0x24
000016b9: ADD
000016ba: PUSH2 0x0907
000016bd: JUMP
000016be: JUMPDEST
000016bf: PUSH2 0x16c7
000016c2: DUP2
000016c3: PUSH2 0x330a
000016c6: JUMP
000016c7: JUMPDEST
000016c8: POP
000016c9: JUMP
000016ca: JUMPDEST
000016cb: PUSH2 0x16d2
000016ce: PUSH2 0x2c01
000016d1: JUMP
000016d2: JUMPDEST
000016d3: PUSH1 0x9d
000016d5: DUP1
000016d6: SLOAD
000016d7: PUSH1 0x01
000016d9: PUSH1 0x01
000016db: PUSH1 0xa0
000016dd: SHL
000016de: SUB
000016df: DUP4
000016e0: DUP2
000016e1: AND
000016e2: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00001703: DUP4
00001704: AND
00001705: DUP2
00001706: OR
00001707: SWAP1
00001708: SWAP4
00001709: SSTORE
0000170a: PUSH1 0x40
0000170c: MLOAD
0000170d: SWAP2
0000170e: AND
0000170f: SWAP2
00001710: SWAP1
00001711: DUP3
00001712: SWAP1
00001713: PUSH32 0x5bbcb3a116ba7a2cf2d8993632f77a782fb70b51720910c297a0e1261a4183a9
00001734: SWAP1
00001735: PUSH1 0x00
00001737: SWAP1
00001738: LOG3
00001739: POP
0000173a: POP
0000173b: JUMP
0000173c: JUMPDEST
0000173d: DUP1
0000173e: MLOAD
0000173f: PUSH1 0x00
00001741: SWAP1
00001742: DUP2
00001743: SUB
00001744: PUSH2 0x177f
00001747: JUMPI
00001748: DUP2
00001749: MLOAD
0000174a: PUSH1 0x40
0000174c: MLOAD
0000174d: PUSH32 0xcd5bd47300000000000000000000000000000000000000000000000000000000
0000176e: DUP2
0000176f: MSTORE
00001770: PUSH1 0x04
00001772: DUP2
00001773: ADD
00001774: SWAP2
00001775: SWAP1
00001776: SWAP2
00001777: MSTORE
00001778: PUSH1 0x24
0000177a: ADD
0000177b: PUSH2 0x0907
0000177e: JUMP
0000177f: JUMPDEST
00001780: DUP2
00001781: PUSH1 0x60
00001783: ADD
00001784: MLOAD
00001785: PUSH1 0x00
00001787: SUB
00001788: PUSH2 0x17c5
0000178b: JUMPI
0000178c: DUP2
0000178d: PUSH1 0x60
0000178f: ADD
00001790: MLOAD
00001791: PUSH1 0x40
00001793: MLOAD
00001794: PUSH32 0x3728b83d00000000000000000000000000000000000000000000000000000000
000017b5: DUP2
000017b6: MSTORE
000017b7: PUSH1 0x04
000017b9: ADD
000017ba: PUSH2 0x0907
000017bd: SWAP2
000017be: DUP2
000017bf: MSTORE
000017c0: PUSH1 0x20
000017c2: ADD
000017c3: SWAP1
000017c4: JUMP
000017c5: JUMPDEST
000017c6: PUSH1 0x31
000017c8: SLOAD
000017c9: PUSH1 0x80
000017cb: DUP4
000017cc: ADD
000017cd: MLOAD
000017ce: PUSH1 0x01
000017d0: PUSH1 0x01
000017d2: PUSH1 0xa0
000017d4: SHL
000017d5: SUB
000017d6: SWAP1
000017d7: SWAP2
000017d8: AND
000017d9: SWAP1
000017da: PUSH1 0xff
000017dc: AND
000017dd: PUSH2 0x1914
000017e0: JUMPI
000017e1: DUP3
000017e2: PUSH1 0x20
000017e4: ADD
000017e5: MLOAD
000017e6: MLOAD
000017e7: PUSH1 0x14
000017e9: EQ
000017ea: PUSH2 0x181f
000017ed: JUMPI
000017ee: PUSH1 0x40
000017f0: MLOAD
000017f1: PUSH32 0xb5ff4cea00000000000000000000000000000000000000000000000000000000
00001812: DUP2
00001813: MSTORE
00001814: PUSH1 0x04
00001816: ADD
00001817: PUSH1 0x40
00001819: MLOAD
0000181a: DUP1
0000181b: SWAP2
0000181c: SUB
0000181d: SWAP1
0000181e: REVERT
0000181f: JUMPDEST
00001820: PUSH1 0x20
00001822: DUP4
00001823: ADD
00001824: MLOAD
00001825: PUSH1 0x00
00001827: SWAP1
00001828: PUSH2 0x1830
0000182b: SWAP1
0000182c: PUSH2 0x4ea7
0000182f: JUMP
00001830: JUMPDEST
00001831: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00001852: AND
00001853: SUB
00001854: PUSH2 0x1889
00001857: JUMPI
00001858: PUSH1 0x40
0000185a: MLOAD
0000185b: PUSH32 0xfffaaa0500000000000000000000000000000000000000000000000000000000
0000187c: DUP2
0000187d: MSTORE
0000187e: PUSH1 0x04
00001880: ADD
00001881: PUSH1 0x40
00001883: MLOAD
00001884: DUP1
00001885: SWAP2
00001886: SUB
00001887: SWAP1
00001888: REVERT
00001889: JUMPDEST
0000188a: DUP1
0000188b: PUSH1 0x01
0000188d: PUSH1 0x01
0000188f: PUSH1 0xa0
00001891: SHL
00001892: SUB
00001893: AND
00001894: DUP4
00001895: PUSH1 0x40
00001897: ADD
00001898: MLOAD
00001899: PUSH1 0x01
0000189b: PUSH1 0x01
0000189d: PUSH1 0xa0
0000189f: SHL
000018a0: SUB
000018a1: AND
000018a2: EQ
000018a3: ISZERO
000018a4: DUP1
000018a5: ISZERO
000018a6: PUSH2 0x18c7
000018a9: JUMPI
000018aa: POP
000018ab: PUSH1 0x40
000018ad: DUP1
000018ae: DUP5
000018af: ADD
000018b0: MLOAD
000018b1: PUSH1 0x01
000018b3: PUSH1 0x01
000018b5: PUSH1 0xa0
000018b7: SHL
000018b8: SUB
000018b9: AND
000018ba: PUSH1 0x00
000018bc: SWAP1
000018bd: DUP2
000018be: MSTORE
000018bf: PUSH1 0x64
000018c1: PUSH1 0x20
000018c3: MSTORE
000018c4: KECCAK256
000018c5: SLOAD
000018c6: ISZERO
000018c7: JUMPDEST
000018c8: ISZERO
000018c9: PUSH2 0x190f
000018cc: JUMPI
000018cd: PUSH1 0x40
000018cf: DUP1
000018d0: DUP5
000018d1: ADD
000018d2: MLOAD
000018d3: SWAP1
000018d4: MLOAD
000018d5: PUSH32 0x961c9a4f00000000000000000000000000000000000000000000000000000000
000018f6: DUP2
000018f7: MSTORE
000018f8: PUSH1 0x01
000018fa: PUSH1 0x01
000018fc: PUSH1 0xa0
000018fe: SHL
000018ff: SUB
00001900: SWAP1
00001901: SWAP2
00001902: AND
00001903: PUSH1 0x04
00001905: DUP3
00001906: ADD
00001907: MSTORE
00001908: PUSH1 0x24
0000190a: ADD
0000190b: PUSH2 0x0907
0000190e: JUMP
0000190f: JUMPDEST
00001910: PUSH2 0x1a1b
00001913: JUMP
00001914: JUMPDEST
00001915: PUSH1 0x01
00001917: PUSH1 0xff
00001919: AND
0000191a: DUP4
0000191b: PUSH1 0x80
0000191d: ADD
0000191e: MLOAD
0000191f: PUSH1 0xff
00001921: AND
00001922: SUB
00001923: PUSH2 0x19de
00001926: JUMPI
00001927: PUSH1 0x20
00001929: DUP4
0000192a: ADD
0000192b: MLOAD
0000192c: DUP1
0000192d: MLOAD
0000192e: PUSH1 0x00
00001930: SWAP2
00001931: PUSH2 0x193b
00001934: SWAP2
00001935: DUP4
00001936: SWAP1
00001937: PUSH2 0x35c1
0000193a: JUMP
0000193b: JUMPDEST
0000193c: SWAP1
0000193d: POP
0000193e: DUP1
0000193f: MLOAD
00001940: PUSH1 0x00
00001942: SUB
00001943: PUSH2 0x1978
00001946: JUMPI
00001947: PUSH1 0x40
00001949: MLOAD
0000194a: PUSH32 0x8e4d13e100000000000000000000000000000000000000000000000000000000
0000196b: DUP2
0000196c: MSTORE
0000196d: PUSH1 0x04
0000196f: ADD
00001970: PUSH1 0x40
00001972: MLOAD
00001973: DUP1
00001974: SWAP2
00001975: SUB
00001976: SWAP1
00001977: REVERT
00001978: JUMPDEST
00001979: DUP2
0000197a: PUSH1 0x01
0000197c: PUSH1 0x01
0000197e: PUSH1 0xa0
00001980: SHL
00001981: SUB
00001982: AND
00001983: DUP5
00001984: PUSH1 0x40
00001986: ADD
00001987: MLOAD
00001988: PUSH1 0x01
0000198a: PUSH1 0x01
0000198c: PUSH1 0xa0
0000198e: SHL
0000198f: SUB
00001990: AND
00001991: EQ
00001992: PUSH2 0x19d8
00001995: JUMPI
00001996: PUSH1 0x40
00001998: DUP1
00001999: DUP6
0000199a: ADD
0000199b: MLOAD
0000199c: SWAP1
0000199d: MLOAD
0000199e: PUSH32 0x961c9a4f00000000000000000000000000000000000000000000000000000000
000019bf: DUP2
000019c0: MSTORE
000019c1: PUSH1 0x01
000019c3: PUSH1 0x01
000019c5: PUSH1 0xa0
000019c7: SHL
000019c8: SUB
000019c9: SWAP1
000019ca: SWAP2
000019cb: AND
000019cc: PUSH1 0x04
000019ce: DUP3
000019cf: ADD
000019d0: MSTORE
000019d1: PUSH1 0x24
000019d3: ADD
000019d4: PUSH2 0x0907
000019d7: JUMP
000019d8: JUMPDEST
000019d9: POP
000019da: PUSH2 0x1a1b
000019dd: JUMP
000019de: JUMPDEST
000019df: PUSH1 0x80
000019e1: DUP4
000019e2: ADD
000019e3: MLOAD
000019e4: PUSH1 0x40
000019e6: MLOAD
000019e7: PUSH32 0x4d1cb5b000000000000000000000000000000000000000000000000000000000
00001a08: DUP2
00001a09: MSTORE
00001a0a: PUSH1 0xff
00001a0c: SWAP1
00001a0d: SWAP2
00001a0e: AND
00001a0f: PUSH1 0x04
00001a11: DUP3
00001a12: ADD
00001a13: MSTORE
00001a14: PUSH1 0x24
00001a16: ADD
00001a17: PUSH2 0x0907
00001a1a: JUMP
00001a1b: JUMPDEST
00001a1c: DUP3
00001a1d: MLOAD
00001a1e: PUSH1 0x00
00001a20: SWAP1
00001a21: DUP2
00001a22: MSTORE
00001a23: PUSH1 0x99
00001a25: PUSH1 0x20
00001a27: MSTORE
00001a28: PUSH1 0x40
00001a2a: SWAP1
00001a2b: KECCAK256
00001a2c: SLOAD
00001a2d: PUSH1 0xff
00001a2f: AND
00001a30: ISZERO
00001a31: PUSH2 0x1a6c
00001a34: JUMPI
00001a35: DUP3
00001a36: MLOAD
00001a37: PUSH1 0x40
00001a39: MLOAD
00001a3a: PUSH32 0xae80077500000000000000000000000000000000000000000000000000000000
00001a5b: DUP2
00001a5c: MSTORE
00001a5d: PUSH1 0x04
00001a5f: DUP2
00001a60: ADD
00001a61: SWAP2
00001a62: SWAP1
00001a63: SWAP2
00001a64: MSTORE
00001a65: PUSH1 0x24
00001a67: ADD
00001a68: PUSH2 0x0907
00001a6b: JUMP
00001a6c: JUMPDEST
00001a6d: POP
00001a6e: PUSH1 0x01
00001a70: SWAP3
00001a71: SWAP2
00001a72: POP
00001a73: POP
00001a74: JUMP
00001a75: JUMPDEST
00001a76: PUSH2 0x1a7d
00001a79: PUSH2 0x2f5b
00001a7c: JUMP
00001a7d: JUMPDEST
00001a7e: PUSH1 0x40
00001a80: MLOAD
00001a81: DUP1
00001a82: PUSH1 0x60
00001a84: ADD
00001a85: PUSH1 0x40
00001a87: MSTORE
00001a88: DUP1
00001a89: CALLER
00001a8a: PUSH1 0x01
00001a8c: PUSH1 0x01
00001a8e: PUSH1 0xa0
00001a90: SHL
00001a91: SUB
00001a92: AND
00001a93: DUP2
00001a94: MSTORE
00001a95: PUSH1 0x20
00001a97: ADD
00001a98: PUSH1 0x00
00001a9a: ISZERO
00001a9b: ISZERO
00001a9c: DUP2
00001a9d: MSTORE
00001a9e: PUSH1 0x20
00001aa0: ADD
00001aa1: PUSH2 0x03e8
00001aa4: DUP2
00001aa5: MSTORE
00001aa6: POP
00001aa7: PUSH1 0x00
00001aa9: GAS
00001aaa: CALLER
00001aab: PUSH1 0x00
00001aad: SWAP1
00001aae: DUP2
00001aaf: MSTORE
00001ab0: PUSH1 0x97
00001ab2: PUSH1 0x20
00001ab4: MSTORE
00001ab5: PUSH1 0x40
00001ab7: DUP2
00001ab8: KECCAK256
00001ab9: SLOAD
00001aba: SWAP2
00001abb: SWAP3
00001abc: POP
00001abd: PUSH1 0xff
00001abf: SWAP1
00001ac0: SWAP2
00001ac1: AND
00001ac2: SWAP1
00001ac3: DUP2
00001ac4: SWAP1
00001ac5: SUB
00001ac6: PUSH2 0x1afd
00001ac9: JUMPI
00001aca: PUSH1 0x40
00001acc: MLOAD
00001acd: PUSH32 0x16254bd300000000000000000000000000000000000000000000000000000000
00001aee: DUP2
00001aef: MSTORE
00001af0: CALLER
00001af1: PUSH1 0x04
00001af3: DUP3
00001af4: ADD
00001af5: MSTORE
00001af6: PUSH1 0x24
00001af8: ADD
00001af9: PUSH2 0x0907
00001afc: JUMP
00001afd: JUMPDEST
00001afe: PUSH1 0x00
00001b00: DUP5
00001b01: PUSH1 0x40
00001b03: MLOAD
00001b04: PUSH1 0x20
00001b06: ADD
00001b07: PUSH2 0x1b10
00001b0a: SWAP2
00001b0b: SWAP1
00001b0c: PUSH2 0x4e1c
00001b0f: JUMP
00001b10: JUMPDEST
00001b11: PUSH1 0x40
00001b13: DUP1
00001b14: MLOAD
00001b15: PUSH1 0x1f
00001b17: NOT
00001b18: DUP2
00001b19: DUP5
00001b1a: SUB
00001b1b: ADD
00001b1c: DUP2
00001b1d: MSTORE
00001b1e: SWAP2
00001b1f: DUP2
00001b20: MSTORE
00001b21: DUP2
00001b22: MLOAD
00001b23: PUSH1 0x20
00001b25: SWAP3
00001b26: DUP4
00001b27: ADD
00001b28: KECCAK256
00001b29: PUSH1 0x00
00001b2b: DUP2
00001b2c: DUP2
00001b2d: MSTORE
00001b2e: PUSH1 0x98
00001b30: SWAP1
00001b31: SWAP4
00001b32: MSTORE
00001b33: SWAP2
00001b34: KECCAK256
00001b35: SLOAD
00001b36: SWAP1
00001b37: SWAP2
00001b38: POP
00001b39: DUP1
00001b3a: ISZERO
00001b3b: DUP1
00001b3c: ISZERO
00001b3d: PUSH2 0x1b48
00001b40: JUMPI
00001b41: POP
00001b42: PUSH1 0x9f
00001b44: SLOAD
00001b45: PUSH1 0xff
00001b47: AND
00001b48: JUMPDEST
00001b49: ISZERO
00001b4a: PUSH2 0x1b7f
00001b4d: JUMPI
00001b4e: PUSH1 0x40
00001b50: MLOAD
00001b51: PUSH32 0x4650e20200000000000000000000000000000000000000000000000000000000
00001b72: DUP2
00001b73: MSTORE
00001b74: PUSH1 0x04
00001b76: ADD
00001b77: PUSH1 0x40
00001b79: MLOAD
00001b7a: DUP1
00001b7b: SWAP2
00001b7c: SUB
00001b7d: SWAP1
00001b7e: REVERT
00001b7f: JUMPDEST
00001b80: PUSH1 0x01
00001b82: PUSH1 0xff
00001b84: DUP5
00001b85: AND
00001b86: SHL
00001b87: DUP2
00001b88: DUP2
00001b89: AND
00001b8a: ISZERO
00001b8b: PUSH2 0x1bc9
00001b8e: JUMPI
00001b8f: PUSH1 0x40
00001b91: MLOAD
00001b92: PUSH32 0xe970c16300000000000000000000000000000000000000000000000000000000
00001bb3: DUP2
00001bb4: MSTORE
00001bb5: CALLER
00001bb6: PUSH1 0x04
00001bb8: DUP3
00001bb9: ADD
00001bba: MSTORE
00001bbb: PUSH1 0x24
00001bbd: DUP2
00001bbe: ADD
00001bbf: DUP5
00001bc0: SWAP1
00001bc1: MSTORE
00001bc2: PUSH1 0x44
00001bc4: ADD
00001bc5: PUSH2 0x0907
00001bc8: JUMP
00001bc9: JUMPDEST
00001bca: PUSH1 0x00
00001bcc: DUP4
00001bcd: DUP2
00001bce: MSTORE
00001bcf: PUSH1 0x98
00001bd1: PUSH1 0x20
00001bd3: SWAP1
00001bd4: DUP2
00001bd5: MSTORE
00001bd6: PUSH1 0x40
00001bd8: SWAP1
00001bd9: SWAP2
00001bda: KECCAK256
00001bdb: DUP4
00001bdc: DUP4
00001bdd: OR
00001bde: SWAP1
00001bdf: DUP2
00001be0: SWAP1
00001be1: SSTORE
00001be2: SWAP1
00001be3: DUP9
00001be4: CALLDATALOAD
00001be5: SWAP1
00001be6: CALLER
00001be7: SWAP1
00001be8: PUSH32 0x67427a9ff7b7a8bc19eeb98172dd4c920e53f548a3854807bafd7de9c0814bb7
00001c09: SWAP1
00001c0a: PUSH2 0x1c15
00001c0d: SWAP1
00001c0e: DUP13
00001c0f: ADD
00001c10: DUP13
00001c11: PUSH2 0x4e2f
00001c14: JUMP
00001c15: JUMPDEST
00001c16: PUSH2 0x1c25
00001c19: PUSH1 0x60
00001c1b: DUP15
00001c1c: ADD
00001c1d: PUSH1 0x40
00001c1f: DUP16
00001c20: ADD
00001c21: PUSH2 0x4567
00001c24: JUMP
00001c25: JUMPDEST
00001c26: DUP14
00001c27: PUSH1 0x60
00001c29: ADD
00001c2a: CALLDATALOAD
00001c2b: DUP15
00001c2c: PUSH1 0x80
00001c2e: ADD
00001c2f: PUSH1 0x20
00001c31: DUP2
00001c32: ADD
00001c33: SWAP1
00001c34: PUSH2 0x1c3d
00001c37: SWAP2
00001c38: SWAP1
00001c39: PUSH2 0x4ef7
00001c3c: JUMP
00001c3d: JUMPDEST
00001c3e: PUSH1 0x40
00001c40: MLOAD
00001c41: PUSH2 0x1c4e
00001c44: SWAP6
00001c45: SWAP5
00001c46: SWAP4
00001c47: SWAP3
00001c48: SWAP2
00001c49: SWAP1
00001c4a: PUSH2 0x4f12
00001c4d: JUMP
00001c4e: JUMPDEST
00001c4f: PUSH1 0x40
00001c51: MLOAD
00001c52: DUP1
00001c53: SWAP2
00001c54: SUB
00001c55: SWAP1
00001c56: LOG3
00001c57: PUSH2 0x1c5e
00001c5a: PUSH2 0x0c5a
00001c5d: JUMP
00001c5e: JUMPDEST
00001c5f: PUSH2 0x1c67
00001c62: DUP3
00001c63: PUSH2 0x2f2c
00001c66: JUMP
00001c67: JUMPDEST
00001c68: PUSH1 0xff
00001c6a: AND
00001c6b: LT
00001c6c: ISZERO
00001c6d: PUSH2 0x1c7a
00001c70: JUMPI
00001c71: POP
00001c72: POP
00001c73: POP
00001c74: POP
00001c75: POP
00001c76: PUSH2 0x1d9c
00001c79: JUMP
00001c7a: JUMPDEST
00001c7b: PUSH2 0x1c86
00001c7e: PUSH2 0x05fa
00001c81: DUP10
00001c82: PUSH2 0x4f4f
00001c85: JUMP
00001c86: JUMPDEST
00001c87: POP
00001c88: PUSH2 0x1c97
00001c8b: PUSH1 0x60
00001c8d: DUP10
00001c8e: ADD
00001c8f: PUSH1 0x40
00001c91: DUP11
00001c92: ADD
00001c93: PUSH2 0x4567
00001c96: JUMP
00001c97: JUMPDEST
00001c98: PUSH1 0x01
00001c9a: PUSH1 0x01
00001c9c: PUSH1 0xa0
00001c9e: SHL
00001c9f: SUB
00001ca0: AND
00001ca1: PUSH2 0x1cad
00001ca4: PUSH1 0x20
00001ca6: DUP11
00001ca7: ADD
00001ca8: DUP11
00001ca9: PUSH2 0x4e2f
00001cac: JUMP
00001cad: JUMPDEST
00001cae: PUSH1 0x40
00001cb0: MLOAD
00001cb1: PUSH2 0x1cbb
00001cb4: SWAP3
00001cb5: SWAP2
00001cb6: SWAP1
00001cb7: PUSH2 0x4f5b
00001cba: JUMP
00001cbb: JUMPDEST
00001cbc: PUSH1 0x40
00001cbe: MLOAD
00001cbf: SWAP1
00001cc0: DUP2
00001cc1: SWAP1
00001cc2: SUB
00001cc3: SWAP1
00001cc4: KECCAK256
00001cc5: DUP10
00001cc6: CALLDATALOAD
00001cc7: PUSH32 0xf3c1d15f8136332d14fce7c55a0179e59c44cb75d928d363b05cb22a1c36e9fd
00001ce8: PUSH1 0x60
00001cea: DUP13
00001ceb: ADD
00001cec: CALLDATALOAD
00001ced: PUSH2 0x1cfc
00001cf0: PUSH1 0xa0
00001cf2: DUP15
00001cf3: ADD
00001cf4: PUSH1 0x80
00001cf6: DUP16
00001cf7: ADD
00001cf8: PUSH2 0x4ef7
00001cfb: JUMP
00001cfc: JUMPDEST
00001cfd: PUSH1 0x40
00001cff: DUP1
00001d00: MLOAD
00001d01: SWAP3
00001d02: DUP4
00001d03: MSTORE
00001d04: PUSH1 0xff
00001d06: SWAP1
00001d07: SWAP2
00001d08: AND
00001d09: PUSH1 0x20
00001d0b: DUP4
00001d0c: ADD
00001d0d: MSTORE
00001d0e: ADD
00001d0f: PUSH1 0x40
00001d11: MLOAD
00001d12: DUP1
00001d13: SWAP2
00001d14: SUB
00001d15: SWAP1
00001d16: LOG4
00001d17: DUP8
00001d18: CALLDATALOAD
00001d19: PUSH32 0x3a24d3c2a6b177a835cbf8f854944d6bd20ad08538f9d962cc63c5f59da69e73
00001d3a: PUSH2 0x1d46
00001d3d: PUSH1 0x20
00001d3f: DUP12
00001d40: ADD
00001d41: DUP12
00001d42: PUSH2 0x4e2f
00001d45: JUMP
00001d46: JUMPDEST
00001d47: PUSH1 0x40
00001d49: MLOAD
00001d4a: PUSH2 0x1d54
00001d4d: SWAP3
00001d4e: SWAP2
00001d4f: SWAP1
00001d50: PUSH2 0x4f6b
00001d53: JUMP
00001d54: JUMPDEST
00001d55: PUSH1 0x40
00001d57: MLOAD
00001d58: DUP1
00001d59: SWAP2
00001d5a: SUB
00001d5b: SWAP1
00001d5c: LOG2
00001d5d: DUP8
00001d5e: CALLDATALOAD
00001d5f: PUSH1 0x00
00001d61: SWAP1
00001d62: DUP2
00001d63: MSTORE
00001d64: PUSH1 0x99
00001d66: PUSH1 0x20
00001d68: SWAP1
00001d69: DUP2
00001d6a: MSTORE
00001d6b: PUSH1 0x40
00001d6d: DUP1
00001d6e: DUP4
00001d6f: KECCAK256
00001d70: DUP1
00001d71: SLOAD
00001d72: PUSH1 0xff
00001d74: NOT
00001d75: AND
00001d76: PUSH1 0x01
00001d78: OR
00001d79: SWAP1
00001d7a: SSTORE
00001d7b: DUP7
00001d7c: DUP4
00001d7d: MSTORE
00001d7e: PUSH1 0x98
00001d80: SWAP1
00001d81: SWAP2
00001d82: MSTORE
00001d83: DUP2
00001d84: KECCAK256
00001d85: SSTORE
00001d86: PUSH2 0x1d96
00001d89: PUSH2 0x1d91
00001d8c: DUP10
00001d8d: PUSH2 0x4f4f
00001d90: JUMP
00001d91: JUMPDEST
00001d92: PUSH2 0x38c6
00001d95: JUMP
00001d96: JUMPDEST
00001d97: POP
00001d98: POP
00001d99: POP
00001d9a: POP
00001d9b: POP
00001d9c: JUMPDEST
00001d9d: PUSH1 0x9d
00001d9f: SLOAD
00001da0: PUSH1 0x01
00001da2: PUSH1 0x01
00001da4: PUSH1 0xa0
00001da6: SHL
00001da7: SUB
00001da8: AND
00001da9: DUP1
00001daa: PUSH2 0x1db4
00001dad: JUMPI
00001dae: POP
00001daf: POP
00001db0: PUSH2 0x1e90
00001db3: JUMP
00001db4: JUMPDEST
00001db5: DUP3
00001db6: PUSH1 0x20
00001db8: ADD
00001db9: MLOAD
00001dba: DUP1
00001dbb: ISZERO
00001dbc: PUSH2 0x1ddf
00001dbf: JUMPI
00001dc0: POP
00001dc1: DUP3
00001dc2: MLOAD
00001dc3: PUSH1 0x01
00001dc5: PUSH1 0x01
00001dc7: PUSH1 0xa0
00001dc9: SHL
00001dca: SUB
00001dcb: AND
00001dcc: PUSH1 0x00
00001dce: SWAP1
00001dcf: DUP2
00001dd0: MSTORE
00001dd1: PUSH1 0x9e
00001dd3: PUSH1 0x20
00001dd5: MSTORE
00001dd6: PUSH1 0x40
00001dd8: SWAP1
00001dd9: KECCAK256
00001dda: SLOAD
00001ddb: PUSH1 0xff
00001ddd: AND
00001dde: ISZERO
00001ddf: JUMPDEST
00001de0: ISZERO
00001de1: PUSH2 0x1deb
00001de4: JUMPI
00001de5: POP
00001de6: POP
00001de7: PUSH2 0x1e90
00001dea: JUMP
00001deb: JUMPDEST
00001dec: DUP1
00001ded: PUSH1 0x01
00001def: PUSH1 0x01
00001df1: PUSH1 0xa0
00001df3: SHL
00001df4: SUB
00001df5: AND
00001df6: PUSH4 0x7ad226dc
00001dfb: DUP5
00001dfc: PUSH1 0x40
00001dfe: ADD
00001dff: MLOAD
00001e00: GAS
00001e01: PUSH2 0x1e0a
00001e04: SWAP1
00001e05: DUP7
00001e06: PUSH2 0x4e94
00001e09: JUMP
00001e0a: JUMPDEST
00001e0b: PUSH2 0x1e14
00001e0e: SWAP2
00001e0f: SWAP1
00001e10: PUSH2 0x4c9e
00001e13: JUMP
00001e14: JUMPDEST
00001e15: DUP6
00001e16: MLOAD
00001e17: PUSH1 0x40
00001e19: MLOAD
00001e1a: PUSH1 0xe0
00001e1c: DUP5
00001e1d: SWAP1
00001e1e: SHL
00001e1f: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001e40: AND
00001e41: DUP2
00001e42: MSTORE
00001e43: PUSH1 0x04
00001e45: DUP2
00001e46: ADD
00001e47: SWAP3
00001e48: SWAP1
00001e49: SWAP3
00001e4a: MSTORE
00001e4b: PUSH1 0x01
00001e4d: PUSH1 0x01
00001e4f: PUSH1 0xa0
00001e51: SHL
00001e52: SUB
00001e53: AND
00001e54: PUSH1 0x24
00001e56: DUP3
00001e57: ADD
00001e58: MSTORE
00001e59: PUSH1 0x44
00001e5b: ADD
00001e5c: PUSH1 0x00
00001e5e: PUSH1 0x40
00001e60: MLOAD
00001e61: DUP1
00001e62: DUP4
00001e63: SUB
00001e64: DUP2
00001e65: PUSH1 0x00
00001e67: DUP8
00001e68: DUP1
00001e69: EXTCODESIZE
00001e6a: ISZERO
00001e6b: DUP1
00001e6c: ISZERO
00001e6d: PUSH2 0x1e75
00001e70: JUMPI
00001e71: PUSH1 0x00
00001e73: DUP1
00001e74: REVERT
00001e75: JUMPDEST
00001e76: POP
00001e77: GAS
00001e78: CALL
00001e79: ISZERO
00001e7a: DUP1
00001e7b: ISZERO
00001e7c: PUSH2 0x1e89
00001e7f: JUMPI
00001e80: RETURNDATASIZE
00001e81: PUSH1 0x00
00001e83: DUP1
00001e84: RETURNDATACOPY
00001e85: RETURNDATASIZE
00001e86: PUSH1 0x00
00001e88: REVERT
00001e89: JUMPDEST
00001e8a: POP
00001e8b: POP
00001e8c: POP
00001e8d: POP
00001e8e: POP
00001e8f: POP
00001e90: JUMPDEST
00001e91: POP
00001e92: PUSH2 0x16c7
00001e95: PUSH1 0x01
00001e97: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
00001eb8: SSTORE
00001eb9: JUMP
00001eba: JUMPDEST
00001ebb: PUSH1 0x00
00001ebd: DUP1
00001ebe: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
00001edf: JUMPDEST
00001ee0: SLOAD
00001ee1: PUSH1 0x01
00001ee3: PUSH1 0x01
00001ee5: PUSH1 0xa0
00001ee7: SHL
00001ee8: SUB
00001ee9: AND
00001eea: SWAP3
00001eeb: SWAP2
00001eec: POP
00001eed: POP
00001eee: JUMP
00001eef: JUMPDEST
00001ef0: PUSH2 0x1ef7
00001ef3: PUSH2 0x2c01
00001ef6: JUMP
00001ef7: JUMPDEST
00001ef8: PUSH1 0x01
00001efa: PUSH1 0x01
00001efc: PUSH1 0xa0
00001efe: SHL
00001eff: SUB
00001f00: DUP3
00001f01: AND
00001f02: PUSH1 0x00
00001f04: SWAP1
00001f05: DUP2
00001f06: MSTORE
00001f07: PUSH1 0x64
00001f09: PUSH1 0x20
00001f0b: MSTORE
00001f0c: PUSH1 0x40
00001f0e: DUP2
00001f0f: KECCAK256
00001f10: SLOAD
00001f11: SWAP1
00001f12: SUB
00001f13: PUSH2 0x1f48
00001f16: JUMPI
00001f17: PUSH1 0x40
00001f19: MLOAD
00001f1a: PUSH32 0x881b8d7c00000000000000000000000000000000000000000000000000000000
00001f3b: DUP2
00001f3c: MSTORE
00001f3d: PUSH1 0x04
00001f3f: ADD
00001f40: PUSH1 0x40
00001f42: MLOAD
00001f43: DUP1
00001f44: SWAP2
00001f45: SUB
00001f46: SWAP1
00001f47: REVERT
00001f48: JUMPDEST
00001f49: DUP1
00001f4a: PUSH1 0x00
00001f4c: SUB
00001f4d: PUSH2 0x1f82
00001f50: JUMPI
00001f51: PUSH1 0x40
00001f53: MLOAD
00001f54: PUSH32 0x47fba16a00000000000000000000000000000000000000000000000000000000
00001f75: DUP2
00001f76: MSTORE
00001f77: PUSH1 0x04
00001f79: ADD
00001f7a: PUSH1 0x40
00001f7c: MLOAD
00001f7d: DUP1
00001f7e: SWAP2
00001f7f: SUB
00001f80: SWAP1
00001f81: REVERT
00001f82: JUMPDEST
00001f83: PUSH1 0x01
00001f85: PUSH1 0x01
00001f87: PUSH1 0xa0
00001f89: SHL
00001f8a: SUB
00001f8b: DUP3
00001f8c: AND
00001f8d: PUSH1 0x00
00001f8f: DUP2
00001f90: DUP2
00001f91: MSTORE
00001f92: PUSH1 0x64
00001f94: PUSH1 0x20
00001f96: MSTORE
00001f97: PUSH1 0x40
00001f99: SWAP1
00001f9a: DUP2
00001f9b: SWAP1
00001f9c: KECCAK256
00001f9d: DUP4
00001f9e: SWAP1
00001f9f: SSTORE
00001fa0: MLOAD
00001fa1: PUSH32 0x886950a2d9ce5c7d214261968375335366c8547e3e5eb5e1744c3cb581c4a672
00001fc2: SWAP1
00001fc3: PUSH2 0x114a
00001fc6: SWAP1
00001fc7: DUP5
00001fc8: DUP2
00001fc9: MSTORE
00001fca: PUSH1 0x20
00001fcc: ADD
00001fcd: SWAP1
00001fce: JUMP
00001fcf: JUMPDEST
00001fd0: PUSH2 0x1fd7
00001fd3: PUSH2 0x2c01
00001fd6: JUMP
00001fd7: JUMPDEST
00001fd8: PUSH1 0x9f
00001fda: SLOAD
00001fdb: PUSH1 0xff
00001fdd: AND
00001fde: PUSH2 0x2013
00001fe1: JUMPI
00001fe2: PUSH1 0x40
00001fe4: MLOAD
00001fe5: PUSH32 0x23951ebe00000000000000000000000000000000000000000000000000000000
00002006: DUP2
00002007: MSTORE
00002008: PUSH1 0x04
0000200a: ADD
0000200b: PUSH1 0x40
0000200d: MLOAD
0000200e: DUP1
0000200f: SWAP2
00002010: SUB
00002011: SWAP1
00002012: REVERT
00002013: JUMPDEST
00002014: PUSH1 0x01
00002016: PUSH1 0x01
00002018: PUSH1 0xa0
0000201a: SHL
0000201b: SUB
0000201c: DUP2
0000201d: AND
0000201e: PUSH1 0x00
00002020: SWAP1
00002021: DUP2
00002022: MSTORE
00002023: PUSH1 0x97
00002025: PUSH1 0x20
00002027: MSTORE
00002028: PUSH1 0x40
0000202a: DUP2
0000202b: KECCAK256
0000202c: SLOAD
0000202d: PUSH1 0xff
0000202f: AND
00002030: SWAP1
00002031: DUP2
00002032: SWAP1
00002033: SUB
00002034: PUSH2 0x2074
00002037: JUMPI
00002038: PUSH1 0x40
0000203a: MLOAD
0000203b: PUSH32 0x958b194b00000000000000000000000000000000000000000000000000000000
0000205c: DUP2
0000205d: MSTORE
0000205e: PUSH1 0x01
00002060: PUSH1 0x01
00002062: PUSH1 0xa0
00002064: SHL
00002065: SUB
00002066: DUP4
00002067: AND
00002068: PUSH1 0x04
0000206a: DUP3
0000206b: ADD
0000206c: MSTORE
0000206d: PUSH1 0x24
0000206f: ADD
00002070: PUSH2 0x0907
00002073: JUMP
00002074: JUMPDEST
00002075: PUSH1 0x00
00002077: PUSH2 0x2081
0000207a: PUSH1 0x01
0000207c: DUP4
0000207d: PUSH2 0x4f7f
00002080: JUMP
00002081: JUMPDEST
00002082: PUSH1 0xff
00002084: AND
00002085: SWAP1
00002086: POP
00002087: PUSH1 0x00
00002089: PUSH1 0x01
0000208b: PUSH1 0x96
0000208d: DUP1
0000208e: SLOAD
0000208f: SWAP1
00002090: POP
00002091: PUSH2 0x209a
00002094: SWAP2
00002095: SWAP1
00002096: PUSH2 0x4e94
00002099: JUMP
0000209a: JUMPDEST
0000209b: SWAP1
0000209c: POP
0000209d: DUP1
0000209e: DUP3
0000209f: EQ
000020a0: PUSH2 0x2144
000020a3: JUMPI
000020a4: PUSH1 0x00
000020a6: PUSH1 0x96
000020a8: DUP3
000020a9: DUP2
000020aa: SLOAD
000020ab: DUP2
000020ac: LT
000020ad: PUSH2 0x20b8
000020b0: JUMPI
000020b1: PUSH2 0x20b8
000020b4: PUSH2 0x4f98
000020b7: JUMP
000020b8: JUMPDEST
000020b9: PUSH1 0x00
000020bb: SWAP2
000020bc: DUP3
000020bd: MSTORE
000020be: PUSH1 0x20
000020c0: SWAP1
000020c1: SWAP2
000020c2: KECCAK256
000020c3: ADD
000020c4: SLOAD
000020c5: PUSH1 0x96
000020c7: DUP1
000020c8: SLOAD
000020c9: PUSH1 0x01
000020cb: PUSH1 0x01
000020cd: PUSH1 0xa0
000020cf: SHL
000020d0: SUB
000020d1: SWAP1
000020d2: SWAP3
000020d3: AND
000020d4: SWAP3
000020d5: POP
000020d6: DUP3
000020d7: SWAP2
000020d8: DUP6
000020d9: SWAP1
000020da: DUP2
000020db: LT
000020dc: PUSH2 0x20e7
000020df: JUMPI
000020e0: PUSH2 0x20e7
000020e3: PUSH2 0x4f98
000020e6: JUMP
000020e7: JUMPDEST
000020e8: PUSH1 0x00
000020ea: SWAP2
000020eb: DUP3
000020ec: MSTORE
000020ed: PUSH1 0x20
000020ef: DUP1
000020f0: DUP4
000020f1: KECCAK256
000020f2: SWAP2
000020f3: SWAP1
000020f4: SWAP2
000020f5: ADD
000020f6: DUP1
000020f7: SLOAD
000020f8: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002119: AND
0000211a: PUSH1 0x01
0000211c: PUSH1 0x01
0000211e: PUSH1 0xa0
00002120: SHL
00002121: SUB
00002122: SWAP5
00002123: DUP6
00002124: AND
00002125: OR
00002126: SWAP1
00002127: SSTORE
00002128: SWAP3
00002129: SWAP1
0000212a: SWAP2
0000212b: AND
0000212c: DUP2
0000212d: MSTORE
0000212e: PUSH1 0x97
00002130: SWAP1
00002131: SWAP2
00002132: MSTORE
00002133: PUSH1 0x40
00002135: SWAP1
00002136: KECCAK256
00002137: DUP1
00002138: SLOAD
00002139: PUSH1 0xff
0000213b: NOT
0000213c: AND
0000213d: PUSH1 0xff
0000213f: DUP6
00002140: AND
00002141: OR
00002142: SWAP1
00002143: SSTORE
00002144: JUMPDEST
00002145: PUSH1 0x01
00002147: PUSH1 0x01
00002149: PUSH1 0xa0
0000214b: SHL
0000214c: SUB
0000214d: DUP5
0000214e: AND
0000214f: PUSH1 0x00
00002151: SWAP1
00002152: DUP2
00002153: MSTORE
00002154: PUSH1 0x97
00002156: PUSH1 0x20
00002158: MSTORE
00002159: PUSH1 0x40
0000215b: SWAP1
0000215c: KECCAK256
0000215d: DUP1
0000215e: SLOAD
0000215f: PUSH1 0xff
00002161: NOT
00002162: AND
00002163: SWAP1
00002164: SSTORE
00002165: PUSH1 0x96
00002167: DUP1
00002168: SLOAD
00002169: DUP1
0000216a: PUSH2 0x2175
0000216d: JUMPI
0000216e: PUSH2 0x2175
00002171: PUSH2 0x4fc7
00002174: JUMP
00002175: JUMPDEST
00002176: PUSH1 0x00
00002178: DUP3
00002179: DUP2
0000217a: MSTORE
0000217b: PUSH1 0x20
0000217d: DUP2
0000217e: KECCAK256
0000217f: DUP3
00002180: ADD
00002181: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000021a2: SWAP1
000021a3: DUP2
000021a4: ADD
000021a5: DUP1
000021a6: SLOAD
000021a7: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000021c8: AND
000021c9: SWAP1
000021ca: SSTORE
000021cb: SWAP1
000021cc: SWAP2
000021cd: ADD
000021ce: SWAP1
000021cf: SWAP2
000021d0: SSTORE
000021d1: PUSH1 0x9f
000021d3: DUP1
000021d4: SLOAD
000021d5: PUSH1 0xff
000021d7: NOT
000021d8: AND
000021d9: SWAP1
000021da: SSTORE
000021db: PUSH1 0x40
000021dd: MLOAD
000021de: PUSH1 0xff
000021e0: DUP6
000021e1: AND
000021e2: SWAP2
000021e3: PUSH1 0x01
000021e5: PUSH1 0x01
000021e7: PUSH1 0xa0
000021e9: SHL
000021ea: SUB
000021eb: DUP8
000021ec: AND
000021ed: SWAP2
000021ee: PUSH32 0x554a8f601798186cfa197105ef51dde890562b8887e7f8f441c7e330f2346d6c
0000220f: SWAP2
00002210: SWAP1
00002211: LOG3
00002212: PUSH1 0x40
00002214: MLOAD
00002215: PUSH32 0x101528fcb7f3f4dfe132b7df0ba88bf1c2f0e0e6a13e518a40bac7b87f0846f6
00002236: SWAP1
00002237: PUSH1 0x00
00002239: SWAP1
0000223a: LOG1
0000223b: POP
0000223c: POP
0000223d: POP
0000223e: POP
0000223f: JUMP
00002240: JUMPDEST
00002241: PUSH2 0x2248
00002244: PUSH2 0x2c01
00002247: JUMP
00002248: JUMPDEST
00002249: PUSH1 0x01
0000224b: PUSH1 0x01
0000224d: PUSH1 0xa0
0000224f: SHL
00002250: SUB
00002251: DUP2
00002252: AND
00002253: PUSH1 0x00
00002255: DUP2
00002256: DUP2
00002257: MSTORE
00002258: PUSH1 0x9e
0000225a: PUSH1 0x20
0000225c: MSTORE
0000225d: PUSH1 0x40
0000225f: DUP1
00002260: DUP3
00002261: KECCAK256
00002262: DUP1
00002263: SLOAD
00002264: PUSH1 0xff
00002266: NOT
00002267: AND
00002268: SWAP1
00002269: SSTORE
0000226a: MLOAD
0000226b: PUSH32 0x2eed1c57963cce0faf8699139c3b5ba3114e419dd7b7655a8ebde907995a23f3
0000228c: SWAP2
0000228d: SWAP1
0000228e: LOG2
0000228f: POP
00002290: JUMP
00002291: JUMPDEST
00002292: PUSH2 0x2299
00002295: PUSH2 0x2f5b
00002298: JUMP
00002299: JUMPDEST
0000229a: PUSH1 0x40
0000229c: DUP1
0000229d: MLOAD
0000229e: PUSH1 0x60
000022a0: DUP2
000022a1: ADD
000022a2: DUP3
000022a3: MSTORE
000022a4: CALLER
000022a5: DUP2
000022a6: MSTORE
000022a7: PUSH1 0x01
000022a9: PUSH1 0x20
000022ab: DUP3
000022ac: ADD
000022ad: MSTORE
000022ae: PUSH2 0x32c8
000022b1: SWAP2
000022b2: DUP2
000022b3: ADD
000022b4: SWAP2
000022b5: SWAP1
000022b6: SWAP2
000022b7: MSTORE
000022b8: PUSH1 0x00
000022ba: GAS
000022bb: SWAP1
000022bc: POP
000022bd: PUSH2 0x22c8
000022c0: PUSH2 0x05fa
000022c3: DUP7
000022c4: PUSH2 0x4f4f
000022c7: JUMP
000022c8: JUMPDEST
000022c9: POP
000022ca: PUSH2 0x22d4
000022cd: PUSH1 0x41
000022cf: DUP5
000022d0: PUSH2 0x4ff6
000022d3: JUMP
000022d4: JUMPDEST
000022d5: ISZERO
000022d6: PUSH2 0x230b
000022d9: JUMPI
000022da: PUSH1 0x40
000022dc: MLOAD
000022dd: PUSH32 0xc32cb4d800000000000000000000000000000000000000000000000000000000
000022fe: DUP2
000022ff: MSTORE
00002300: PUSH1 0x04
00002302: ADD
00002303: PUSH1 0x40
00002305: MLOAD
00002306: DUP1
00002307: SWAP2
00002308: SUB
00002309: SWAP1
0000230a: REVERT
0000230b: JUMPDEST
0000230c: PUSH1 0x00
0000230e: PUSH2 0x2318
00002311: PUSH1 0x41
00002313: DUP6
00002314: PUSH2 0x4c8a
00002317: JUMP
00002318: JUMPDEST
00002319: SWAP1
0000231a: POP
0000231b: PUSH2 0x2322
0000231e: PUSH2 0x0c5a
00002321: JUMP
00002322: JUMPDEST
00002323: DUP2
00002324: EQ
00002325: PUSH2 0x235d
00002328: JUMPI
00002329: PUSH1 0x40
0000232b: MLOAD
0000232c: PUSH32 0x2b68e7bd00000000000000000000000000000000000000000000000000000000
0000234d: DUP2
0000234e: MSTORE
0000234f: PUSH1 0x04
00002351: DUP2
00002352: ADD
00002353: DUP3
00002354: SWAP1
00002355: MSTORE
00002356: PUSH1 0x24
00002358: ADD
00002359: PUSH2 0x0907
0000235c: JUMP
0000235d: JUMPDEST
0000235e: PUSH1 0x00
00002360: PUSH2 0x23be
00002363: CHAINID
00002364: DUP9
00002365: PUSH1 0x40
00002367: MLOAD
00002368: PUSH1 0x20
0000236a: ADD
0000236b: PUSH2 0x2375
0000236e: SWAP3
0000236f: SWAP2
00002370: SWAP1
00002371: PUSH2 0x500a
00002374: JUMP
00002375: JUMPDEST
00002376: PUSH1 0x40
00002378: MLOAD
00002379: PUSH1 0x20
0000237b: DUP2
0000237c: DUP4
0000237d: SUB
0000237e: SUB
0000237f: DUP2
00002380: MSTORE
00002381: SWAP1
00002382: PUSH1 0x40
00002384: MSTORE
00002385: DUP1
00002386: MLOAD
00002387: SWAP1
00002388: PUSH1 0x20
0000238a: ADD
0000238b: KECCAK256
0000238c: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
000023ad: PUSH1 0x00
000023af: SWAP1
000023b0: DUP2
000023b1: MSTORE
000023b2: PUSH1 0x1c
000023b4: SWAP2
000023b5: SWAP1
000023b6: SWAP2
000023b7: MSTORE
000023b8: PUSH1 0x3c
000023ba: SWAP1
000023bb: KECCAK256
000023bc: SWAP1
000023bd: JUMP
000023be: JUMPDEST
000023bf: SWAP1
000023c0: POP
000023c1: PUSH1 0x60
000023c3: PUSH1 0x00
000023c5: DUP1
000023c6: JUMPDEST
000023c7: DUP5
000023c8: DUP2
000023c9: LT
000023ca: ISZERO
000023cb: PUSH2 0x24f7
000023ce: JUMPI
000023cf: DUP9
000023d0: DUP9
000023d1: PUSH2 0x23db
000023d4: DUP4
000023d5: PUSH1 0x41
000023d7: PUSH2 0x4c44
000023da: JUMP
000023db: JUMPDEST
000023dc: SWAP1
000023dd: PUSH2 0x23e7
000023e0: DUP5
000023e1: PUSH1 0x01
000023e3: PUSH2 0x4c9e
000023e6: JUMP
000023e7: JUMPDEST
000023e8: PUSH2 0x23f2
000023eb: SWAP1
000023ec: PUSH1 0x41
000023ee: PUSH2 0x4c44
000023f1: JUMP
000023f2: JUMPDEST
000023f3: SWAP3
000023f4: PUSH2 0x23ff
000023f7: SWAP4
000023f8: SWAP3
000023f9: SWAP2
000023fa: SWAP1
000023fb: PUSH2 0x5023
000023fe: JUMP
000023ff: JUMPDEST
00002400: DUP1
00002401: DUP1
00002402: PUSH1 0x1f
00002404: ADD
00002405: PUSH1 0x20
00002407: DUP1
00002408: SWAP2
00002409: DIV
0000240a: MUL
0000240b: PUSH1 0x20
0000240d: ADD
0000240e: PUSH1 0x40
00002410: MLOAD
00002411: SWAP1
00002412: DUP2
00002413: ADD
00002414: PUSH1 0x40
00002416: MSTORE
00002417: DUP1
00002418: SWAP4
00002419: SWAP3
0000241a: SWAP2
0000241b: SWAP1
0000241c: DUP2
0000241d: DUP2
0000241e: MSTORE
0000241f: PUSH1 0x20
00002421: ADD
00002422: DUP4
00002423: DUP4
00002424: DUP1
00002425: DUP3
00002426: DUP5
00002427: CALLDATACOPY
00002428: PUSH1 0x00
0000242a: SWAP3
0000242b: ADD
0000242c: DUP3
0000242d: SWAP1
0000242e: MSTORE
0000242f: POP
00002430: SWAP4
00002431: SWAP7
00002432: POP
00002433: PUSH2 0x2442
00002436: SWAP3
00002437: POP
00002438: DUP8
00002439: SWAP2
0000243a: POP
0000243b: DUP7
0000243c: SWAP1
0000243d: POP
0000243e: PUSH2 0x397c
00002441: JUMP
00002442: JUMPDEST
00002443: PUSH1 0x01
00002445: PUSH1 0x01
00002447: PUSH1 0xa0
00002449: SHL
0000244a: SUB
0000244b: DUP2
0000244c: AND
0000244d: PUSH1 0x00
0000244f: SWAP1
00002450: DUP2
00002451: MSTORE
00002452: PUSH1 0x97
00002454: PUSH1 0x20
00002456: MSTORE
00002457: PUSH1 0x40
00002459: DUP2
0000245a: KECCAK256
0000245b: SLOAD
0000245c: SWAP2
0000245d: SWAP3
0000245e: POP
0000245f: PUSH1 0xff
00002461: SWAP1
00002462: SWAP2
00002463: AND
00002464: SWAP1
00002465: SUB
00002466: PUSH2 0x24a6
00002469: JUMPI
0000246a: PUSH1 0x40
0000246c: MLOAD
0000246d: PUSH32 0x16254bd300000000000000000000000000000000000000000000000000000000
0000248e: DUP2
0000248f: MSTORE
00002490: PUSH1 0x01
00002492: PUSH1 0x01
00002494: PUSH1 0xa0
00002496: SHL
00002497: SUB
00002498: DUP3
00002499: AND
0000249a: PUSH1 0x04
0000249c: DUP3
0000249d: ADD
0000249e: MSTORE
0000249f: PUSH1 0x24
000024a1: ADD
000024a2: PUSH2 0x0907
000024a5: JUMP
000024a6: JUMPDEST
000024a7: PUSH1 0x01
000024a9: PUSH1 0x01
000024ab: PUSH1 0xa0
000024ad: SHL
000024ae: SUB
000024af: DUP1
000024b0: DUP5
000024b1: AND
000024b2: SWAP1
000024b3: DUP3
000024b4: AND
000024b5: GT
000024b6: DUP1
000024b7: PUSH2 0x24ec
000024ba: JUMPI
000024bb: PUSH1 0x40
000024bd: MLOAD
000024be: PUSH32 0xd02ef0e500000000000000000000000000000000000000000000000000000000
000024df: DUP2
000024e0: MSTORE
000024e1: PUSH1 0x04
000024e3: ADD
000024e4: PUSH1 0x40
000024e6: MLOAD
000024e7: DUP1
000024e8: SWAP2
000024e9: SUB
000024ea: SWAP1
000024eb: REVERT
000024ec: JUMPDEST
000024ed: POP
000024ee: SWAP2
000024ef: POP
000024f0: PUSH1 0x01
000024f2: ADD
000024f3: PUSH2 0x23c6
000024f6: JUMP
000024f7: JUMPDEST
000024f8: POP
000024f9: PUSH2 0x2508
000024fc: PUSH1 0x60
000024fe: DUP11
000024ff: ADD
00002500: PUSH1 0x40
00002502: DUP12
00002503: ADD
00002504: PUSH2 0x4567
00002507: JUMP
00002508: JUMPDEST
00002509: PUSH1 0x01
0000250b: PUSH1 0x01
0000250d: PUSH1 0xa0
0000250f: SHL
00002510: SUB
00002511: AND
00002512: PUSH2 0x251e
00002515: PUSH1 0x20
00002517: DUP12
00002518: ADD
00002519: DUP12
0000251a: PUSH2 0x4e2f
0000251d: JUMP
0000251e: JUMPDEST
0000251f: PUSH1 0x40
00002521: MLOAD
00002522: PUSH2 0x252c
00002525: SWAP3
00002526: SWAP2
00002527: SWAP1
00002528: PUSH2 0x4f5b
0000252b: JUMP
0000252c: JUMPDEST
0000252d: PUSH1 0x40
0000252f: MLOAD
00002530: DUP1
00002531: SWAP2
00002532: SUB
00002533: SWAP1
00002534: KECCAK256
00002535: DUP11
00002536: PUSH1 0x00
00002538: ADD
00002539: CALLDATALOAD
0000253a: PUSH32 0xf3c1d15f8136332d14fce7c55a0179e59c44cb75d928d363b05cb22a1c36e9fd
0000255b: DUP13
0000255c: PUSH1 0x60
0000255e: ADD
0000255f: CALLDATALOAD
00002560: DUP14
00002561: PUSH1 0x80
00002563: ADD
00002564: PUSH1 0x20
00002566: DUP2
00002567: ADD
00002568: SWAP1
00002569: PUSH2 0x2572
0000256c: SWAP2
0000256d: SWAP1
0000256e: PUSH2 0x4ef7
00002571: JUMP
00002572: JUMPDEST
00002573: PUSH1 0x40
00002575: DUP1
00002576: MLOAD
00002577: SWAP3
00002578: DUP4
00002579: MSTORE
0000257a: PUSH1 0xff
0000257c: SWAP1
0000257d: SWAP2
0000257e: AND
0000257f: PUSH1 0x20
00002581: DUP4
00002582: ADD
00002583: MSTORE
00002584: ADD
00002585: PUSH1 0x40
00002587: MLOAD
00002588: DUP1
00002589: SWAP2
0000258a: SUB
0000258b: SWAP1
0000258c: LOG4
0000258d: DUP9
0000258e: CALLDATALOAD
0000258f: PUSH32 0x3a24d3c2a6b177a835cbf8f854944d6bd20ad08538f9d962cc63c5f59da69e73
000025b0: PUSH2 0x25bc
000025b3: PUSH1 0x20
000025b5: DUP13
000025b6: ADD
000025b7: DUP13
000025b8: PUSH2 0x4e2f
000025bb: JUMP
000025bc: JUMPDEST
000025bd: PUSH1 0x40
000025bf: MLOAD
000025c0: PUSH2 0x25ca
000025c3: SWAP3
000025c4: SWAP2
000025c5: SWAP1
000025c6: PUSH2 0x4f6b
000025c9: JUMP
000025ca: JUMPDEST
000025cb: PUSH1 0x40
000025cd: MLOAD
000025ce: DUP1
000025cf: SWAP2
000025d0: SUB
000025d1: SWAP1
000025d2: LOG2
000025d3: DUP9
000025d4: CALLDATALOAD
000025d5: PUSH1 0x00
000025d7: SWAP1
000025d8: DUP2
000025d9: MSTORE
000025da: PUSH1 0x99
000025dc: PUSH1 0x20
000025de: MSTORE
000025df: PUSH1 0x40
000025e1: SWAP1
000025e2: KECCAK256
000025e3: DUP1
000025e4: SLOAD
000025e5: PUSH1 0xff
000025e7: NOT
000025e8: AND
000025e9: PUSH1 0x01
000025eb: OR
000025ec: SWAP1
000025ed: SSTORE
000025ee: PUSH2 0x25f9
000025f1: PUSH2 0x1d91
000025f4: DUP11
000025f5: PUSH2 0x4f4f
000025f8: JUMP
000025f9: JUMPDEST
000025fa: POP
000025fb: POP
000025fc: PUSH1 0x9d
000025fe: SLOAD
000025ff: PUSH1 0x01
00002601: PUSH1 0x01
00002603: PUSH1 0xa0
00002605: SHL
00002606: SUB
00002607: AND
00002608: SWAP2
00002609: POP
0000260a: DUP2
0000260b: SWAP1
0000260c: POP
0000260d: PUSH2 0x1564
00002610: JUMPI
00002611: POP
00002612: POP
00002613: PUSH2 0x0f2e
00002616: JUMP
00002617: JUMPDEST
00002618: PUSH2 0x261f
0000261b: PUSH2 0x2c01
0000261e: JUMP
0000261f: JUMPDEST
00002620: PUSH1 0x01
00002622: PUSH1 0x01
00002624: PUSH1 0xa0
00002626: SHL
00002627: SUB
00002628: DUP2
00002629: AND
0000262a: PUSH2 0x265f
0000262d: JUMPI
0000262e: PUSH1 0x40
00002630: MLOAD
00002631: PUSH32 0x67170c8b00000000000000000000000000000000000000000000000000000000
00002652: DUP2
00002653: MSTORE
00002654: PUSH1 0x04
00002656: ADD
00002657: PUSH1 0x40
00002659: MLOAD
0000265a: DUP1
0000265b: SWAP2
0000265c: SUB
0000265d: SWAP1
0000265e: REVERT
0000265f: JUMPDEST
00002660: PUSH1 0x01
00002662: PUSH1 0x01
00002664: PUSH1 0xa0
00002666: SHL
00002667: SUB
00002668: DUP2
00002669: AND
0000266a: PUSH1 0x00
0000266c: SWAP1
0000266d: DUP2
0000266e: MSTORE
0000266f: PUSH1 0x97
00002671: PUSH1 0x20
00002673: MSTORE
00002674: PUSH1 0x40
00002676: SWAP1
00002677: KECCAK256
00002678: SLOAD
00002679: PUSH1 0xff
0000267b: AND
0000267c: ISZERO
0000267d: PUSH2 0x26bd
00002680: JUMPI
00002681: PUSH1 0x40
00002683: MLOAD
00002684: PUSH32 0x591a237c00000000000000000000000000000000000000000000000000000000
000026a5: DUP2
000026a6: MSTORE
000026a7: PUSH1 0x01
000026a9: PUSH1 0x01
000026ab: PUSH1 0xa0
000026ad: SHL
000026ae: SUB
000026af: DUP3
000026b0: AND
000026b1: PUSH1 0x04
000026b3: DUP3
000026b4: ADD
000026b5: MSTORE
000026b6: PUSH1 0x24
000026b8: ADD
000026b9: PUSH2 0x0907
000026bc: JUMP
000026bd: JUMPDEST
000026be: PUSH1 0x96
000026c0: SLOAD
000026c1: PUSH1 0xff
000026c3: GT
000026c4: PUSH2 0x26f9
000026c7: JUMPI
000026c8: PUSH1 0x40
000026ca: MLOAD
000026cb: PUSH32 0xed7948d600000000000000000000000000000000000000000000000000000000
000026ec: DUP2
000026ed: MSTORE
000026ee: PUSH1 0x04
000026f0: ADD
000026f1: PUSH1 0x40
000026f3: MLOAD
000026f4: DUP1
000026f5: SWAP2
000026f6: SUB
000026f7: SWAP1
000026f8: REVERT
000026f9: JUMPDEST
000026fa: PUSH1 0x96
000026fc: DUP1
000026fd: SLOAD
000026fe: PUSH1 0x01
00002700: DUP2
00002701: ADD
00002702: DUP3
00002703: SSTORE
00002704: PUSH32 0x6aa7ec8ac2a999a90ce6c78668dffe4e487e2576a97ca366ec81ecb335af90d0
00002725: ADD
00002726: DUP1
00002727: SLOAD
00002728: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002749: AND
0000274a: PUSH1 0x01
0000274c: PUSH1 0x01
0000274e: PUSH1 0xa0
00002750: SHL
00002751: SUB
00002752: DUP5
00002753: AND
00002754: SWAP1
00002755: DUP2
00002756: OR
00002757: SWAP1
00002758: SWAP2
00002759: SSTORE
0000275a: SWAP1
0000275b: SLOAD
0000275c: PUSH1 0x00
0000275e: DUP3
0000275f: DUP2
00002760: MSTORE
00002761: PUSH1 0x97
00002763: PUSH1 0x20
00002765: MSTORE
00002766: PUSH1 0x40
00002768: DUP1
00002769: DUP3
0000276a: KECCAK256
0000276b: DUP1
0000276c: SLOAD
0000276d: PUSH1 0xff
0000276f: NOT
00002770: AND
00002771: PUSH1 0xff
00002773: DUP6
00002774: AND
00002775: SWAP1
00002776: DUP2
00002777: OR
00002778: SWAP1
00002779: SWAP2
0000277a: SSTORE
0000277b: SWAP1
0000277c: MLOAD
0000277d: SWAP3
0000277e: SWAP4
0000277f: SWAP1
00002780: SWAP3
00002781: SWAP1
00002782: SWAP2
00002783: PUSH32 0xdde8f6ead332aad593653167d67449309db9bfb202d7d394e68fd3e1b7c16007
000027a4: SWAP2
000027a5: LOG3
000027a6: POP
000027a7: POP
000027a8: JUMP
000027a9: JUMPDEST
000027aa: PUSH1 0x96
000027ac: DUP2
000027ad: DUP2
000027ae: SLOAD
000027af: DUP2
000027b0: LT
000027b1: PUSH2 0x27b9
000027b4: JUMPI
000027b5: PUSH1 0x00
000027b7: DUP1
000027b8: REVERT
000027b9: JUMPDEST
000027ba: PUSH1 0x00
000027bc: SWAP2
000027bd: DUP3
000027be: MSTORE
000027bf: PUSH1 0x20
000027c1: SWAP1
000027c2: SWAP2
000027c3: KECCAK256
000027c4: ADD
000027c5: SLOAD
000027c6: PUSH1 0x01
000027c8: PUSH1 0x01
000027ca: PUSH1 0xa0
000027cc: SHL
000027cd: SUB
000027ce: AND
000027cf: SWAP1
000027d0: POP
000027d1: DUP2
000027d2: JUMP
000027d3: JUMPDEST
000027d4: PUSH2 0x27db
000027d7: PUSH2 0x2c01
000027da: JUMP
000027db: JUMPDEST
000027dc: PUSH1 0x00
000027de: DUP2
000027df: SWAP1
000027e0: SUB
000027e1: PUSH2 0x2816
000027e4: JUMPI
000027e5: PUSH1 0x40
000027e7: MLOAD
000027e8: PUSH32 0x9c8d2cd200000000000000000000000000000000000000000000000000000000
00002809: DUP2
0000280a: MSTORE
0000280b: PUSH1 0x04
0000280d: ADD
0000280e: PUSH1 0x40
00002810: MLOAD
00002811: DUP1
00002812: SWAP2
00002813: SUB
00002814: SWAP1
00002815: REVERT
00002816: JUMPDEST
00002817: PUSH1 0x01
00002819: PUSH1 0xa1
0000281b: PUSH1 0x00
0000281d: DUP5
0000281e: DUP5
0000281f: PUSH1 0x40
00002821: MLOAD
00002822: PUSH2 0x282c
00002825: SWAP3
00002826: SWAP2
00002827: SWAP1
00002828: PUSH2 0x4f5b
0000282b: JUMP
0000282c: JUMPDEST
0000282d: PUSH1 0x40
0000282f: MLOAD
00002830: DUP1
00002831: SWAP2
00002832: SUB
00002833: SWAP1
00002834: KECCAK256
00002835: DUP2
00002836: MSTORE
00002837: PUSH1 0x20
00002839: ADD
0000283a: SWAP1
0000283b: DUP2
0000283c: MSTORE
0000283d: PUSH1 0x20
0000283f: ADD
00002840: PUSH1 0x00
00002842: KECCAK256
00002843: PUSH1 0x00
00002845: PUSH2 0x0100
00002848: EXP
00002849: DUP2
0000284a: SLOAD
0000284b: DUP2
0000284c: PUSH1 0xff
0000284e: MUL
0000284f: NOT
00002850: AND
00002851: SWAP1
00002852: DUP4
00002853: ISZERO
00002854: ISZERO
00002855: MUL
00002856: OR
00002857: SWAP1
00002858: SSTORE
00002859: POP
0000285a: PUSH32 0x2a069e08db4526ad7f2fb1d6388a3b7292f940aa5216facd4680d8dfcb6a17fa
0000287b: DUP3
0000287c: DUP3
0000287d: PUSH1 0x40
0000287f: MLOAD
00002880: PUSH2 0x0d09
00002883: SWAP3
00002884: SWAP2
00002885: SWAP1
00002886: PUSH2 0x4f6b
00002889: JUMP
0000288a: JUMPDEST
0000288b: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
000028ac: DUP1
000028ad: SLOAD
000028ae: PUSH9 0x010000000000000000
000028b8: DUP2
000028b9: DIV
000028ba: PUSH1 0xff
000028bc: AND
000028bd: ISZERO
000028be: SWAP1
000028bf: PUSH8 0xffffffffffffffff
000028c8: AND
000028c9: PUSH1 0x00
000028cb: DUP2
000028cc: ISZERO
000028cd: DUP1
000028ce: ISZERO
000028cf: PUSH2 0x28d5
000028d2: JUMPI
000028d3: POP
000028d4: DUP3
000028d5: JUMPDEST
000028d6: SWAP1
000028d7: POP
000028d8: PUSH1 0x00
000028da: DUP3
000028db: PUSH8 0xffffffffffffffff
000028e4: AND
000028e5: PUSH1 0x01
000028e7: EQ
000028e8: DUP1
000028e9: ISZERO
000028ea: PUSH2 0x28f2
000028ed: JUMPI
000028ee: POP
000028ef: ADDRESS
000028f0: EXTCODESIZE
000028f1: ISZERO
000028f2: JUMPDEST
000028f3: SWAP1
000028f4: POP
000028f5: DUP2
000028f6: ISZERO
000028f7: DUP1
000028f8: ISZERO
000028f9: PUSH2 0x2900
000028fc: JUMPI
000028fd: POP
000028fe: DUP1
000028ff: ISZERO
00002900: JUMPDEST
00002901: ISZERO
00002902: PUSH2 0x2937
00002905: JUMPI
00002906: PUSH1 0x40
00002908: MLOAD
00002909: PUSH32 0xf92ee8a900000000000000000000000000000000000000000000000000000000
0000292a: DUP2
0000292b: MSTORE
0000292c: PUSH1 0x04
0000292e: ADD
0000292f: PUSH1 0x40
00002931: MLOAD
00002932: DUP1
00002933: SWAP2
00002934: SUB
00002935: SWAP1
00002936: REVERT
00002937: JUMPDEST
00002938: DUP5
00002939: SLOAD
0000293a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000
0000295b: AND
0000295c: PUSH1 0x01
0000295e: OR
0000295f: DUP6
00002960: SSTORE
00002961: DUP4
00002962: ISZERO
00002963: PUSH2 0x2998
00002966: JUMPI
00002967: DUP5
00002968: SLOAD
00002969: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
0000298a: AND
0000298b: PUSH9 0x010000000000000000
00002995: OR
00002996: DUP6
00002997: SSTORE
00002998: JUMPDEST
00002999: PUSH2 0x29a3
0000299c: DUP10
0000299d: DUP10
0000299e: DUP10
0000299f: PUSH2 0x39a6
000029a2: JUMP
000029a3: JUMPDEST
000029a4: PUSH2 0x29ab
000029a7: PUSH2 0x3a48
000029aa: JUMP
000029ab: JUMPDEST
000029ac: PUSH1 0x95
000029ae: DUP7
000029af: SWAP1
000029b0: SSTORE
000029b1: DUP4
000029b2: ISZERO
000029b3: PUSH2 0x2a11
000029b6: JUMPI
000029b7: DUP5
000029b8: SLOAD
000029b9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
000029da: AND
000029db: DUP6
000029dc: SSTORE
000029dd: PUSH1 0x40
000029df: MLOAD
000029e0: PUSH1 0x01
000029e2: DUP2
000029e3: MSTORE
000029e4: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00002a05: SWAP1
00002a06: PUSH1 0x20
00002a08: ADD
00002a09: PUSH1 0x40
00002a0b: MLOAD
00002a0c: DUP1
00002a0d: SWAP2
00002a0e: SUB
00002a0f: SWAP1
00002a10: LOG1
00002a11: JUMPDEST
00002a12: POP
00002a13: POP
00002a14: POP
00002a15: POP
00002a16: POP
00002a17: POP
00002a18: POP
00002a19: POP
00002a1a: POP
00002a1b: JUMP
00002a1c: JUMPDEST
00002a1d: PUSH2 0x2a24
00002a20: PUSH2 0x2c01
00002a23: JUMP
00002a24: JUMPDEST
00002a25: PUSH1 0x9c
00002a27: DUP1
00002a28: SLOAD
00002a29: PUSH1 0x01
00002a2b: PUSH1 0x01
00002a2d: PUSH1 0xa0
00002a2f: SHL
00002a30: SUB
00002a31: DUP4
00002a32: DUP2
00002a33: AND
00002a34: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002a55: DUP4
00002a56: AND
00002a57: DUP2
00002a58: OR
00002a59: SWAP1
00002a5a: SWAP4
00002a5b: SSTORE
00002a5c: PUSH1 0x40
00002a5e: MLOAD
00002a5f: SWAP2
00002a60: AND
00002a61: SWAP2
00002a62: SWAP1
00002a63: DUP3
00002a64: SWAP1
00002a65: PUSH32 0x5d16ad41baeb009cd23eb8f6c7cde5c2e0cd5acf4a33926ab488875c37c37f38
00002a86: SWAP1
00002a87: PUSH1 0x00
00002a89: SWAP1
00002a8a: LOG3
00002a8b: POP
00002a8c: POP
00002a8d: JUMP
00002a8e: JUMPDEST
00002a8f: PUSH2 0x2a96
00002a92: PUSH2 0x2f5b
00002a95: JUMP
00002a96: JUMPDEST
00002a97: PUSH2 0x2aa0
00002a9a: DUP3
00002a9b: DUP3
00002a9c: PUSH2 0x2fdc
00002a9f: JUMP
00002aa0: JUMPDEST
00002aa1: PUSH2 0x2ac9
00002aa4: PUSH1 0x01
00002aa6: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
00002ac7: SSTORE
00002ac8: JUMP
00002ac9: JUMPDEST
00002aca: POP
00002acb: POP
00002acc: JUMP
00002acd: JUMPDEST
00002ace: PUSH1 0x00
00002ad0: DUP1
00002ad1: PUSH32 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00
00002af2: PUSH2 0x1edf
00002af5: JUMP
00002af6: JUMPDEST
00002af7: PUSH2 0x2afe
00002afa: PUSH2 0x2c01
00002afd: JUMP
00002afe: JUMPDEST
00002aff: PUSH32 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00
00002b20: DUP1
00002b21: SLOAD
00002b22: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002b43: AND
00002b44: PUSH1 0x01
00002b46: PUSH1 0x01
00002b48: PUSH1 0xa0
00002b4a: SHL
00002b4b: SUB
00002b4c: DUP4
00002b4d: AND
00002b4e: SWAP1
00002b4f: DUP2
00002b50: OR
00002b51: DUP3
00002b52: SSTORE
00002b53: PUSH2 0x2b5a
00002b56: PUSH2 0x1eba
00002b59: JUMP
00002b5a: JUMPDEST
00002b5b: PUSH1 0x01
00002b5d: PUSH1 0x01
00002b5f: PUSH1 0xa0
00002b61: SHL
00002b62: SUB
00002b63: AND
00002b64: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700
00002b85: PUSH1 0x40
00002b87: MLOAD
00002b88: PUSH1 0x40
00002b8a: MLOAD
00002b8b: DUP1
00002b8c: SWAP2
00002b8d: SUB
00002b8e: SWAP1
00002b8f: LOG3
00002b90: POP
00002b91: POP
00002b92: JUMP
00002b93: JUMPDEST
00002b94: PUSH2 0x2b9b
00002b97: PUSH2 0x2c01
00002b9a: JUMP
00002b9b: JUMPDEST
00002b9c: PUSH1 0xa1
00002b9e: PUSH1 0x00
00002ba0: DUP4
00002ba1: DUP4
00002ba2: PUSH1 0x40
00002ba4: MLOAD
00002ba5: PUSH2 0x2baf
00002ba8: SWAP3
00002ba9: SWAP2
00002baa: SWAP1
00002bab: PUSH2 0x4f5b
00002bae: JUMP
00002baf: JUMPDEST
00002bb0: PUSH1 0x40
00002bb2: DUP1
00002bb3: MLOAD
00002bb4: SWAP2
00002bb5: DUP3
00002bb6: SWAP1
00002bb7: SUB
00002bb8: SWAP1
00002bb9: SWAP2
00002bba: KECCAK256
00002bbb: DUP3
00002bbc: MSTORE
00002bbd: PUSH1 0x20
00002bbf: DUP3
00002bc0: ADD
00002bc1: SWAP3
00002bc2: SWAP1
00002bc3: SWAP3
00002bc4: MSTORE
00002bc5: DUP2
00002bc6: ADD
00002bc7: PUSH1 0x00
00002bc9: KECCAK256
00002bca: DUP1
00002bcb: SLOAD
00002bcc: PUSH1 0xff
00002bce: NOT
00002bcf: AND
00002bd0: SWAP1
00002bd1: SSTORE
00002bd2: MLOAD
00002bd3: PUSH32 0x879f966987f4c630b5331c2485e6f1653598fbfe4c59652efe9dcceaaa651996
00002bf4: SWAP1
00002bf5: PUSH2 0x0d09
00002bf8: SWAP1
00002bf9: DUP5
00002bfa: SWAP1
00002bfb: DUP5
00002bfc: SWAP1
00002bfd: PUSH2 0x4f6b
00002c00: JUMP
00002c01: JUMPDEST
00002c02: CALLER
00002c03: PUSH2 0x2c0a
00002c06: PUSH2 0x1eba
00002c09: JUMP
00002c0a: JUMPDEST
00002c0b: PUSH1 0x01
00002c0d: PUSH1 0x01
00002c0f: PUSH1 0xa0
00002c11: SHL
00002c12: SUB
00002c13: AND
00002c14: EQ
00002c15: PUSH2 0x12a8
00002c18: JUMPI
00002c19: PUSH1 0x40
00002c1b: MLOAD
00002c1c: PUSH32 0x118cdaa700000000000000000000000000000000000000000000000000000000
00002c3d: DUP2
00002c3e: MSTORE
00002c3f: CALLER
00002c40: PUSH1 0x04
00002c42: DUP3
00002c43: ADD
00002c44: MSTORE
00002c45: PUSH1 0x24
00002c47: ADD
00002c48: PUSH2 0x0907
00002c4b: JUMP
00002c4c: JUMPDEST
00002c4d: PUSH1 0x00
00002c4f: DUP1
00002c50: SLOAD
00002c51: PUSH1 0x40
00002c53: MLOAD
00002c54: PUSH32 0xb02c43d000000000000000000000000000000000000000000000000000000000
00002c75: DUP2
00002c76: MSTORE
00002c77: PUSH1 0x04
00002c79: DUP2
00002c7a: ADD
00002c7b: DUP5
00002c7c: SWAP1
00002c7d: MSTORE
00002c7e: DUP3
00002c7f: SWAP2
00002c80: DUP3
00002c81: SWAP2
00002c82: DUP3
00002c83: SWAP2
00002c84: PUSH1 0x01
00002c86: PUSH1 0x01
00002c88: PUSH1 0xa0
00002c8a: SHL
00002c8b: SUB
00002c8c: AND
00002c8d: SWAP1
00002c8e: PUSH4 0xb02c43d0
00002c93: SWAP1
00002c94: PUSH1 0x24
00002c96: ADD
00002c97: PUSH1 0xe0
00002c99: PUSH1 0x40
00002c9b: MLOAD
00002c9c: DUP1
00002c9d: DUP4
00002c9e: SUB
00002c9f: DUP2
00002ca0: DUP7
00002ca1: GAS
00002ca2: STATICCALL
00002ca3: ISZERO
00002ca4: DUP1
00002ca5: ISZERO
00002ca6: PUSH2 0x2cb3
00002ca9: JUMPI
00002caa: RETURNDATASIZE
00002cab: PUSH1 0x00
00002cad: DUP1
00002cae: RETURNDATACOPY
00002caf: RETURNDATASIZE
00002cb0: PUSH1 0x00
00002cb2: REVERT
00002cb3: JUMPDEST
00002cb4: POP
00002cb5: POP
00002cb6: POP
00002cb7: POP
00002cb8: PUSH1 0x40
00002cba: MLOAD
00002cbb: RETURNDATASIZE
00002cbc: PUSH1 0x1f
00002cbe: NOT
00002cbf: PUSH1 0x1f
00002cc1: DUP3
00002cc2: ADD
00002cc3: AND
00002cc4: DUP3
00002cc5: ADD
00002cc6: DUP1
00002cc7: PUSH1 0x40
00002cc9: MSTORE
00002cca: POP
00002ccb: DUP2
00002ccc: ADD
00002ccd: SWAP1
00002cce: PUSH2 0x2cd7
00002cd1: SWAP2
00002cd2: SWAP1
00002cd3: PUSH2 0x5063
00002cd6: JUMP
00002cd7: JUMPDEST
00002cd8: SWAP1
00002cd9: POP
00002cda: DUP1
00002cdb: PUSH1 0x40
00002cdd: ADD
00002cde: MLOAD
00002cdf: PUSH4 0xffffffff
00002ce4: AND
00002ce5: PUSH1 0x00
00002ce7: SUB
00002ce8: PUSH2 0x2d4d
00002ceb: JUMPI
00002cec: PUSH1 0x40
00002cee: MLOAD
00002cef: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002d10: DUP2
00002d11: MSTORE
00002d12: PUSH1 0x20
00002d14: PUSH1 0x04
00002d16: DUP3
00002d17: ADD
00002d18: MSTORE
00002d19: PUSH1 0x17
00002d1b: PUSH1 0x24
00002d1d: DUP3
00002d1e: ADD
00002d1f: MSTORE
00002d20: PUSH32 0x4465706f736974206e6f7420696e697469616c697a6564000000000000000000
00002d41: PUSH1 0x44
00002d43: DUP3
00002d44: ADD
00002d45: MSTORE
00002d46: PUSH1 0x64
00002d48: ADD
00002d49: PUSH2 0x0907
00002d4c: JUMP
00002d4d: JUMPDEST
00002d4e: PUSH1 0x01
00002d50: SLOAD
00002d51: PUSH1 0x40
00002d53: MLOAD
00002d54: PUSH32 0x6c626aa400000000000000000000000000000000000000000000000000000000
00002d75: DUP2
00002d76: MSTORE
00002d77: PUSH1 0x04
00002d79: DUP2
00002d7a: ADD
00002d7b: DUP8
00002d7c: SWAP1
00002d7d: MSTORE
00002d7e: PUSH1 0x00
00002d80: SWAP2
00002d81: PUSH1 0x01
00002d83: PUSH1 0x01
00002d85: PUSH1 0xa0
00002d87: SHL
00002d88: SUB
00002d89: AND
00002d8a: SWAP1
00002d8b: PUSH4 0x6c626aa4
00002d90: SWAP1
00002d91: PUSH1 0x24
00002d93: ADD
00002d94: PUSH1 0x40
00002d96: DUP1
00002d97: MLOAD
00002d98: DUP1
00002d99: DUP4
00002d9a: SUB
00002d9b: DUP2
00002d9c: PUSH1 0x00
00002d9e: DUP8
00002d9f: GAS
00002da0: CALL
00002da1: ISZERO
00002da2: DUP1
00002da3: ISZERO
00002da4: PUSH2 0x2db1
00002da7: JUMPI
00002da8: RETURNDATASIZE
00002da9: PUSH1 0x00
00002dab: DUP1
00002dac: RETURNDATACOPY
00002dad: RETURNDATASIZE
00002dae: PUSH1 0x00
00002db0: REVERT
00002db1: JUMPDEST
00002db2: POP
00002db3: POP
00002db4: POP
00002db5: POP
00002db6: PUSH1 0x40
00002db8: MLOAD
00002db9: RETURNDATASIZE
00002dba: PUSH1 0x1f
00002dbc: NOT
00002dbd: PUSH1 0x1f
00002dbf: DUP3
00002dc0: ADD
00002dc1: AND
00002dc2: DUP3
00002dc3: ADD
00002dc4: DUP1
00002dc5: PUSH1 0x40
00002dc7: MSTORE
00002dc8: POP
00002dc9: DUP2
00002dca: ADD
00002dcb: SWAP1
00002dcc: PUSH2 0x2dd5
00002dcf: SWAP2
00002dd0: SWAP1
00002dd1: PUSH2 0x5117
00002dd4: JUMP
00002dd5: JUMPDEST
00002dd6: SWAP2
00002dd7: POP
00002dd8: POP
00002dd9: DUP2
00002dda: PUSH1 0xa0
00002ddc: ADD
00002ddd: MLOAD
00002dde: PUSH4 0xffffffff
00002de3: AND
00002de4: PUSH1 0x00
00002de6: EQ
00002de7: ISZERO
00002de8: DUP1
00002de9: PUSH2 0x2dfb
00002dec: JUMPI
00002ded: POP
00002dee: PUSH8 0xffffffffffffffff
00002df7: DUP2
00002df8: AND
00002df9: ISZERO
00002dfa: ISZERO
00002dfb: JUMPDEST
00002dfc: PUSH2 0x2e87
00002dff: JUMPI
00002e00: PUSH1 0x40
00002e02: MLOAD
00002e03: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002e24: DUP2
00002e25: MSTORE
00002e26: PUSH1 0x20
00002e28: PUSH1 0x04
00002e2a: DUP3
00002e2b: ADD
00002e2c: MSTORE
00002e2d: PUSH1 0x23
00002e2f: PUSH1 0x24
00002e31: DUP3
00002e32: ADD
00002e33: MSTORE
00002e34: PUSH32 0x4465706f736974206e6f742066696e616c697a65642062792074686520627269
00002e55: PUSH1 0x44
00002e57: DUP3
00002e58: ADD
00002e59: MSTORE
00002e5a: PUSH32 0x6467650000000000000000000000000000000000000000000000000000000000
00002e7b: PUSH1 0x64
00002e7d: DUP3
00002e7e: ADD
00002e7f: MSTORE
00002e80: PUSH1 0x84
00002e82: ADD
00002e83: PUSH2 0x0907
00002e86: JUMP
00002e87: JUMPDEST
00002e88: PUSH5 0x02540be400
00002e8e: DUP3
00002e8f: PUSH1 0x20
00002e91: ADD
00002e92: MLOAD
00002e93: PUSH8 0xffffffffffffffff
00002e9c: AND
00002e9d: PUSH2 0x2ea6
00002ea0: SWAP2
00002ea1: SWAP1
00002ea2: PUSH2 0x4c44
00002ea5: JUMP
00002ea6: JUMPDEST
00002ea7: SWAP5
00002ea8: POP
00002ea9: PUSH2 0x2eba
00002eac: DUP3
00002ead: PUSH1 0x20
00002eaf: ADD
00002eb0: MLOAD
00002eb1: DUP4
00002eb2: PUSH1 0x80
00002eb4: ADD
00002eb5: MLOAD
00002eb6: PUSH2 0x3a60
00002eb9: JUMP
00002eba: JUMPDEST
00002ebb: SWAP4
00002ebc: POP
00002ebd: DUP2
00002ebe: PUSH1 0xc0
00002ec0: ADD
00002ec1: MLOAD
00002ec2: SWAP3
00002ec3: POP
00002ec4: POP
00002ec5: POP
00002ec6: SWAP2
00002ec7: SWAP4
00002ec8: SWAP1
00002ec9: SWAP3
00002eca: POP
00002ecb: JUMP
00002ecc: JUMPDEST
00002ecd: DUP2
00002ece: PUSH1 0x01
00002ed0: PUSH1 0x01
00002ed2: PUSH1 0xa0
00002ed4: SHL
00002ed5: SUB
00002ed6: AND
00002ed7: DUP4
00002ed8: PUSH1 0x01
00002eda: PUSH1 0x01
00002edc: PUSH1 0xa0
00002ede: SHL
00002edf: SUB
00002ee0: AND
00002ee1: PUSH1 0x95
00002ee3: PUSH1 0x00
00002ee5: DUP2
00002ee6: SLOAD
00002ee7: PUSH2 0x2eef
00002eea: SWAP1
00002eeb: PUSH2 0x4cb1
00002eee: JUMP
00002eef: JUMPDEST
00002ef0: SWAP2
00002ef1: DUP3
00002ef2: SWAP1
00002ef3: SSTORE
00002ef4: POP
00002ef5: PUSH1 0x40
00002ef7: MLOAD
00002ef8: DUP5
00002ef9: DUP2
00002efa: MSTORE
00002efb: PUSH32 0x75aa5616721471b8ab0c49ce59500cbad2b7ef1ad10e5eb9449c693c0a5c8fd1
00002f1c: SWAP1
00002f1d: PUSH1 0x20
00002f1f: ADD
00002f20: PUSH1 0x40
00002f22: MLOAD
00002f23: DUP1
00002f24: SWAP2
00002f25: SUB
00002f26: SWAP1
00002f27: LOG4
00002f28: POP
00002f29: POP
00002f2a: POP
00002f2b: JUMP
00002f2c: JUMPDEST
00002f2d: PUSH1 0x00
00002f2f: JUMPDEST
00002f30: DUP2
00002f31: ISZERO
00002f32: PUSH2 0x2f56
00002f35: JUMPI
00002f36: PUSH2 0x2f40
00002f39: PUSH1 0x01
00002f3b: DUP4
00002f3c: PUSH2 0x4e94
00002f3f: JUMP
00002f40: JUMPDEST
00002f41: SWAP1
00002f42: SWAP2
00002f43: AND
00002f44: SWAP1
00002f45: DUP1
00002f46: PUSH2 0x2f4e
00002f49: DUP2
00002f4a: PUSH2 0x5146
00002f4d: JUMP
00002f4e: JUMPDEST
00002f4f: SWAP2
00002f50: POP
00002f51: POP
00002f52: PUSH2 0x2f2f
00002f55: JUMP
00002f56: JUMPDEST
00002f57: SWAP2
00002f58: SWAP1
00002f59: POP
00002f5a: JUMP
00002f5b: JUMPDEST
00002f5c: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
00002f7d: DUP1
00002f7e: SLOAD
00002f7f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
00002fa0: ADD
00002fa1: PUSH2 0x2fd6
00002fa4: JUMPI
00002fa5: PUSH1 0x40
00002fa7: MLOAD
00002fa8: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000
00002fc9: DUP2
00002fca: MSTORE
00002fcb: PUSH1 0x04
00002fcd: ADD
00002fce: PUSH1 0x40
00002fd0: MLOAD
00002fd1: DUP1
00002fd2: SWAP2
00002fd3: SUB
00002fd4: SWAP1
00002fd5: REVERT
00002fd6: JUMPDEST
00002fd7: PUSH1 0x02
00002fd9: SWAP1
00002fda: SSTORE
00002fdb: JUMP
00002fdc: JUMPDEST
00002fdd: PUSH1 0x01
00002fdf: PUSH1 0x01
00002fe1: PUSH1 0xa0
00002fe3: SHL
00002fe4: SUB
00002fe5: DUP2
00002fe6: AND
00002fe7: PUSH2 0x301c
00002fea: JUMPI
00002feb: PUSH1 0x40
00002fed: MLOAD
00002fee: PUSH32 0xb9c50bfb00000000000000000000000000000000000000000000000000000000
0000300f: DUP2
00003010: MSTORE
00003011: PUSH1 0x04
00003013: ADD
00003014: PUSH1 0x40
00003016: MLOAD
00003017: DUP1
00003018: SWAP2
00003019: SUB
0000301a: SWAP1
0000301b: REVERT
0000301c: JUMPDEST
0000301d: PUSH1 0x33
0000301f: SLOAD
00003020: DUP3
00003021: LT
00003022: ISZERO
00003023: PUSH2 0x3058
00003026: JUMPI
00003027: PUSH1 0x40
00003029: MLOAD
0000302a: PUSH32 0x0b84d72c00000000000000000000000000000000000000000000000000000000
0000304b: DUP2
0000304c: MSTORE
0000304d: PUSH1 0x04
0000304f: ADD
00003050: PUSH1 0x40
00003052: MLOAD
00003053: DUP1
00003054: SWAP2
00003055: SUB
00003056: SWAP1
00003057: REVERT
00003058: JUMPDEST
00003059: PUSH1 0x31
0000305b: SLOAD
0000305c: PUSH1 0x01
0000305e: PUSH1 0x01
00003060: PUSH1 0xa0
00003062: SHL
00003063: SUB
00003064: AND
00003065: PUSH2 0x306f
00003068: DUP3
00003069: DUP3
0000306a: DUP6
0000306b: PUSH2 0x2ecc
0000306e: JUMP
0000306f: JUMPDEST
00003070: PUSH2 0x0f58
00003073: PUSH1 0x01
00003075: PUSH1 0x01
00003077: PUSH1 0xa0
00003079: SHL
0000307a: SUB
0000307b: DUP3
0000307c: AND
0000307d: CALLER
0000307e: ADDRESS
0000307f: DUP7
00003080: PUSH2 0x30aa
00003083: JUMP
00003084: JUMPDEST
00003085: PUSH1 0x01
00003087: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
000030a8: SSTORE
000030a9: JUMP
000030aa: JUMPDEST
000030ab: PUSH1 0x40
000030ad: MLOAD
000030ae: PUSH1 0x01
000030b0: PUSH1 0x01
000030b2: PUSH1 0xa0
000030b4: SHL
000030b5: SUB
000030b6: DUP5
000030b7: DUP2
000030b8: AND
000030b9: PUSH1 0x24
000030bb: DUP4
000030bc: ADD
000030bd: MSTORE
000030be: DUP4
000030bf: DUP2
000030c0: AND
000030c1: PUSH1 0x44
000030c3: DUP4
000030c4: ADD
000030c5: MSTORE
000030c6: PUSH1 0x64
000030c8: DUP3
000030c9: ADD
000030ca: DUP4
000030cb: SWAP1
000030cc: MSTORE
000030cd: PUSH2 0x3126
000030d0: SWAP2
000030d1: DUP7
000030d2: SWAP2
000030d3: DUP3
000030d4: AND
000030d5: SWAP1
000030d6: PUSH4 0x23b872dd
000030db: SWAP1
000030dc: PUSH1 0x84
000030de: ADD
000030df: JUMPDEST
000030e0: PUSH1 0x40
000030e2: MLOAD
000030e3: PUSH1 0x20
000030e5: DUP2
000030e6: DUP4
000030e7: SUB
000030e8: SUB
000030e9: DUP2
000030ea: MSTORE
000030eb: SWAP1
000030ec: PUSH1 0x40
000030ee: MSTORE
000030ef: SWAP2
000030f0: POP
000030f1: PUSH1 0xe0
000030f3: SHL
000030f4: PUSH1 0x20
000030f6: DUP3
000030f7: ADD
000030f8: DUP1
000030f9: MLOAD
000030fa: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003117: DUP4
00003118: DUP2
00003119: DUP4
0000311a: AND
0000311b: OR
0000311c: DUP4
0000311d: MSTORE
0000311e: POP
0000311f: POP
00003120: POP
00003121: POP
00003122: PUSH2 0x3be3
00003125: JUMP
00003126: JUMPDEST
00003127: POP
00003128: POP
00003129: POP
0000312a: POP
0000312b: JUMP
0000312c: JUMPDEST
0000312d: PUSH1 0x01
0000312f: SLOAD
00003130: PUSH1 0x00
00003132: SWAP1
00003133: DUP2
00003134: SWAP1
00003135: PUSH1 0x01
00003137: PUSH1 0x01
00003139: PUSH1 0xa0
0000313b: SHL
0000313c: SUB
0000313d: AND
0000313e: PUSH2 0x314d
00003141: PUSH1 0xc0
00003143: DUP7
00003144: ADD
00003145: PUSH1 0xa0
00003147: DUP8
00003148: ADD
00003149: PUSH2 0x4567
0000314c: JUMP
0000314d: JUMPDEST
0000314e: PUSH1 0x01
00003150: PUSH1 0x01
00003152: PUSH1 0xa0
00003154: SHL
00003155: SUB
00003156: AND
00003157: EQ
00003158: PUSH2 0x31bd
0000315b: JUMPI
0000315c: PUSH1 0x40
0000315e: MLOAD
0000315f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003180: DUP2
00003181: MSTORE
00003182: PUSH1 0x20
00003184: PUSH1 0x04
00003186: DUP3
00003187: ADD
00003188: MSTORE
00003189: PUSH1 0x16
0000318b: PUSH1 0x24
0000318d: DUP3
0000318e: ADD
0000318f: MSTORE
00003190: PUSH32 0x5661756c742061646472657373206d69736d6174636800000000000000000000
000031b1: PUSH1 0x44
000031b3: DUP3
000031b4: ADD
000031b5: MSTORE
000031b6: PUSH1 0x64
000031b8: ADD
000031b9: PUSH2 0x0907
000031bc: JUMP
000031bd: JUMPDEST
000031be: PUSH2 0x31db
000031c1: PUSH2 0x31c9
000031c4: DUP7
000031c5: PUSH2 0x3c5f
000031c8: JUMP
000031c9: JUMPDEST
000031ca: PUSH2 0x31d6
000031cd: PUSH1 0x20
000031cf: DUP8
000031d0: ADD
000031d1: DUP8
000031d2: PUSH2 0x5165
000031d5: JUMP
000031d6: JUMPDEST
000031d7: PUSH2 0x3cc4
000031da: JUMP
000031db: JUMPDEST
000031dc: PUSH1 0x00
000031de: SLOAD
000031df: PUSH1 0x40
000031e1: MLOAD
000031e2: PUSH32 0x86f0143900000000000000000000000000000000000000000000000000000000
00003203: DUP2
00003204: MSTORE
00003205: SWAP2
00003206: SWAP4
00003207: POP
00003208: PUSH1 0x01
0000320a: PUSH1 0x01
0000320c: PUSH1 0xa0
0000320e: SHL
0000320f: SUB
00003210: AND
00003211: SWAP1
00003212: PUSH4 0x86f01439
00003217: SWAP1
00003218: PUSH2 0x3229
0000321b: SWAP1
0000321c: DUP9
0000321d: SWAP1
0000321e: DUP9
0000321f: SWAP1
00003220: DUP9
00003221: SWAP1
00003222: PUSH1 0x04
00003224: ADD
00003225: PUSH2 0x51b2
00003228: JUMP
00003229: JUMPDEST
0000322a: PUSH1 0x00
0000322c: PUSH1 0x40
0000322e: MLOAD
0000322f: DUP1
00003230: DUP4
00003231: SUB
00003232: DUP2
00003233: PUSH1 0x00
00003235: DUP8
00003236: DUP1
00003237: EXTCODESIZE
00003238: ISZERO
00003239: DUP1
0000323a: ISZERO
0000323b: PUSH2 0x3243
0000323e: JUMPI
0000323f: PUSH1 0x00
00003241: DUP1
00003242: REVERT
00003243: JUMPDEST
00003244: POP
00003245: GAS
00003246: CALL
00003247: ISZERO
00003248: DUP1
00003249: ISZERO
0000324a: PUSH2 0x3257
0000324d: JUMPI
0000324e: RETURNDATASIZE
0000324f: PUSH1 0x00
00003251: DUP1
00003252: RETURNDATACOPY
00003253: RETURNDATASIZE
00003254: PUSH1 0x00
00003256: REVERT
00003257: JUMPDEST
00003258: POP
00003259: POP
0000325a: PUSH1 0x00
0000325c: SLOAD
0000325d: PUSH1 0x40
0000325f: MLOAD
00003260: PUSH32 0xb02c43d000000000000000000000000000000000000000000000000000000000
00003281: DUP2
00003282: MSTORE
00003283: PUSH1 0x04
00003285: DUP2
00003286: ADD
00003287: DUP7
00003288: SWAP1
00003289: MSTORE
0000328a: PUSH5 0x02540be400
00003290: SWAP4
00003291: POP
00003292: PUSH1 0x01
00003294: PUSH1 0x01
00003296: PUSH1 0xa0
00003298: SHL
00003299: SUB
0000329a: SWAP1
0000329b: SWAP2
0000329c: AND
0000329d: SWAP2
0000329e: POP
0000329f: PUSH4 0xb02c43d0
000032a4: SWAP1
000032a5: PUSH1 0x24
000032a7: ADD
000032a8: PUSH1 0xe0
000032aa: PUSH1 0x40
000032ac: MLOAD
000032ad: DUP1
000032ae: DUP4
000032af: SUB
000032b0: DUP2
000032b1: DUP7
000032b2: GAS
000032b3: STATICCALL
000032b4: ISZERO
000032b5: DUP1
000032b6: ISZERO
000032b7: PUSH2 0x32c4
000032ba: JUMPI
000032bb: RETURNDATASIZE
000032bc: PUSH1 0x00
000032be: DUP1
000032bf: RETURNDATACOPY
000032c0: RETURNDATASIZE
000032c1: PUSH1 0x00
000032c3: REVERT
000032c4: JUMPDEST
000032c5: POP
000032c6: POP
000032c7: POP
000032c8: POP
000032c9: PUSH1 0x40
000032cb: MLOAD
000032cc: RETURNDATASIZE
000032cd: PUSH1 0x1f
000032cf: NOT
000032d0: PUSH1 0x1f
000032d2: DUP3
000032d3: ADD
000032d4: AND
000032d5: DUP3
000032d6: ADD
000032d7: DUP1
000032d8: PUSH1 0x40
000032da: MSTORE
000032db: POP
000032dc: DUP2
000032dd: ADD
000032de: SWAP1
000032df: PUSH2 0x32e8
000032e2: SWAP2
000032e3: SWAP1
000032e4: PUSH2 0x5063
000032e7: JUMP
000032e8: JUMPDEST
000032e9: PUSH1 0x20
000032eb: ADD
000032ec: MLOAD
000032ed: PUSH8 0xffffffffffffffff
000032f6: AND
000032f7: PUSH2 0x3300
000032fa: SWAP2
000032fb: SWAP1
000032fc: PUSH2 0x4c44
000032ff: JUMP
00003300: JUMPDEST
00003301: SWAP1
00003302: POP
00003303: SWAP4
00003304: POP
00003305: SWAP4
00003306: SWAP2
00003307: POP
00003308: POP
00003309: JUMP
0000330a: JUMPDEST
0000330b: PUSH32 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00
0000332c: DUP1
0000332d: SLOAD
0000332e: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
0000334f: AND
00003350: DUP2
00003351: SSTORE
00003352: PUSH2 0x2ac9
00003355: DUP3
00003356: PUSH2 0x3d26
00003359: JUMP
0000335a: JUMPDEST
0000335b: PUSH1 0x9c
0000335d: SLOAD
0000335e: PUSH1 0x00
00003360: SWAP1
00003361: PUSH1 0x01
00003363: PUSH1 0x01
00003365: PUSH1 0xa0
00003367: SHL
00003368: SUB
00003369: AND
0000336a: DUP1
0000336b: PUSH2 0x3377
0000336e: JUMPI
0000336f: DUP4
00003370: SWAP2
00003371: POP
00003372: POP
00003373: PUSH2 0x34aa
00003376: JUMP
00003377: JUMPDEST
00003378: DUP3
00003379: MLOAD
0000337a: PUSH1 0x20
0000337c: DUP1
0000337d: DUP6
0000337e: ADD
0000337f: SWAP2
00003380: SWAP1
00003381: SWAP2
00003382: KECCAK256
00003383: PUSH1 0x00
00003385: SWAP1
00003386: DUP2
00003387: MSTORE
00003388: PUSH1 0xa1
0000338a: SWAP1
0000338b: SWAP2
0000338c: MSTORE
0000338d: PUSH1 0x40
0000338f: DUP2
00003390: KECCAK256
00003391: SLOAD
00003392: PUSH1 0xff
00003394: AND
00003395: PUSH2 0x33a0
00003398: JUMPI
00003399: PUSH1 0x9b
0000339b: SLOAD
0000339c: PUSH2 0x33a3
0000339f: JUMP
000033a0: JUMPDEST
000033a1: PUSH1 0x00
000033a3: JUMPDEST
000033a4: PUSH1 0x01
000033a6: PUSH1 0x01
000033a8: PUSH1 0xa0
000033aa: SHL
000033ab: SUB
000033ac: DUP8
000033ad: AND
000033ae: PUSH1 0x00
000033b0: SWAP1
000033b1: DUP2
000033b2: MSTORE
000033b3: PUSH1 0xa0
000033b5: PUSH1 0x20
000033b7: MSTORE
000033b8: PUSH1 0x40
000033ba: DUP2
000033bb: KECCAK256
000033bc: SLOAD
000033bd: SWAP2
000033be: SWAP3
000033bf: POP
000033c0: SWAP1
000033c1: PUSH2 0x2710
000033c4: PUSH2 0x33cd
000033c7: DUP5
000033c8: DUP10
000033c9: PUSH2 0x4c44
000033cc: JUMP
000033cd: JUMPDEST
000033ce: PUSH2 0x33d7
000033d1: SWAP2
000033d2: SWAP1
000033d3: PUSH2 0x4c8a
000033d6: JUMP
000033d7: JUMPDEST
000033d8: PUSH2 0x33e1
000033db: SWAP2
000033dc: SWAP1
000033dd: PUSH2 0x4c9e
000033e0: JUMP
000033e1: JUMPDEST
000033e2: SWAP1
000033e3: POP
000033e4: DUP1
000033e5: PUSH1 0x00
000033e7: SUB
000033e8: PUSH2 0x33f6
000033eb: JUMPI
000033ec: DUP6
000033ed: SWAP4
000033ee: POP
000033ef: POP
000033f0: POP
000033f1: POP
000033f2: PUSH2 0x34aa
000033f5: JUMP
000033f6: JUMPDEST
000033f7: DUP6
000033f8: DUP2
000033f9: LT
000033fa: PUSH2 0x3439
000033fd: JUMPI
000033fe: PUSH1 0x40
00003400: MLOAD
00003401: PUSH32 0x2fb193ac00000000000000000000000000000000000000000000000000000000
00003422: DUP2
00003423: MSTORE
00003424: PUSH1 0x04
00003426: DUP2
00003427: ADD
00003428: DUP8
00003429: SWAP1
0000342a: MSTORE
0000342b: PUSH1 0x24
0000342d: DUP2
0000342e: ADD
0000342f: DUP3
00003430: SWAP1
00003431: MSTORE
00003432: PUSH1 0x44
00003434: ADD
00003435: PUSH2 0x0907
00003438: JUMP
00003439: JUMPDEST
0000343a: DUP3
0000343b: PUSH1 0x01
0000343d: PUSH1 0x01
0000343f: PUSH1 0xa0
00003441: SHL
00003442: SUB
00003443: AND
00003444: DUP8
00003445: PUSH1 0x01
00003447: PUSH1 0x01
00003449: PUSH1 0xa0
0000344b: SHL
0000344c: SUB
0000344d: AND
0000344e: PUSH32 0xe55980a387d8b6f11ede459bd7e71fe1e0dd649c3b4caa62db722cdcf386805a
0000346f: DUP4
00003470: PUSH1 0x40
00003472: MLOAD
00003473: PUSH2 0x347e
00003476: SWAP2
00003477: DUP2
00003478: MSTORE
00003479: PUSH1 0x20
0000347b: ADD
0000347c: SWAP1
0000347d: JUMP
0000347e: JUMPDEST
0000347f: PUSH1 0x40
00003481: MLOAD
00003482: DUP1
00003483: SWAP2
00003484: SUB
00003485: SWAP1
00003486: LOG3
00003487: PUSH2 0x349a
0000348a: PUSH1 0x01
0000348c: PUSH1 0x01
0000348e: PUSH1 0xa0
00003490: SHL
00003491: SUB
00003492: DUP9
00003493: AND
00003494: DUP5
00003495: DUP4
00003496: PUSH2 0x3daf
00003499: JUMP
0000349a: JUMPDEST
0000349b: PUSH2 0x34a4
0000349e: DUP2
0000349f: DUP8
000034a0: PUSH2 0x4e94
000034a3: JUMP
000034a4: JUMPDEST
000034a5: SWAP4
000034a6: POP
000034a7: POP
000034a8: POP
000034a9: POP
000034aa: JUMPDEST
000034ab: SWAP4
000034ac: SWAP3
000034ad: POP
000034ae: POP
000034af: POP
000034b0: JUMP
000034b1: JUMPDEST
000034b2: PUSH1 0x34
000034b4: SLOAD
000034b5: DUP5
000034b6: MLOAD
000034b7: PUSH1 0x20
000034b9: DUP1
000034ba: DUP8
000034bb: ADD
000034bc: MLOAD
000034bd: PUSH1 0x40
000034bf: DUP1
000034c0: DUP10
000034c1: ADD
000034c2: MLOAD
000034c3: SWAP1
000034c4: MLOAD
000034c5: PUSH1 0x00
000034c7: SWAP6
000034c8: PUSH2 0x34e7
000034cb: SWAP6
000034cc: PUSH1 0x01
000034ce: PUSH1 0x01
000034d0: PUSH1 0xa0
000034d2: SHL
000034d3: SUB
000034d4: SWAP1
000034d5: SWAP2
000034d6: AND
000034d7: SWAP5
000034d8: DUP13
000034d9: SWAP5
000034da: SWAP2
000034db: SWAP4
000034dc: SWAP2
000034dd: SWAP3
000034de: DUP12
000034df: SWAP2
000034e0: DUP12
000034e1: SWAP2
000034e2: ADD
000034e3: PUSH2 0x536d
000034e6: JUMP
000034e7: JUMPDEST
000034e8: PUSH1 0x40
000034ea: DUP1
000034eb: MLOAD
000034ec: PUSH1 0x1f
000034ee: NOT
000034ef: DUP2
000034f0: DUP5
000034f1: SUB
000034f2: ADD
000034f3: DUP2
000034f4: MSTORE
000034f5: SWAP1
000034f6: DUP3
000034f7: SWAP1
000034f8: MSTORE
000034f9: PUSH1 0x31
000034fb: SLOAD
000034fc: PUSH1 0x01
000034fe: SLOAD
000034ff: PUSH32 0xcae9ca5100000000000000000000000000000000000000000000000000000000
00003520: DUP5
00003521: MSTORE
00003522: SWAP2
00003523: SWAP4
00003524: POP
00003525: PUSH1 0x01
00003527: PUSH1 0x01
00003529: PUSH1 0xa0
0000352b: SHL
0000352c: SUB
0000352d: SWAP1
0000352e: DUP2
0000352f: AND
00003530: SWAP3
00003531: PUSH4 0xcae9ca51
00003536: SWAP3
00003537: PUSH2 0x3548
0000353a: SWAP3
0000353b: AND
0000353c: SWAP1
0000353d: DUP7
0000353e: SWAP1
0000353f: DUP7
00003540: SWAP1
00003541: PUSH1 0x04
00003543: ADD
00003544: PUSH2 0x5437
00003547: JUMP
00003548: JUMPDEST
00003549: PUSH1 0x20
0000354b: PUSH1 0x40
0000354d: MLOAD
0000354e: DUP1
0000354f: DUP4
00003550: SUB
00003551: DUP2
00003552: PUSH1 0x00
00003554: DUP8
00003555: GAS
00003556: CALL
00003557: ISZERO
00003558: DUP1
00003559: ISZERO
0000355a: PUSH2 0x3567
0000355d: JUMPI
0000355e: RETURNDATASIZE
0000355f: PUSH1 0x00
00003561: DUP1
00003562: RETURNDATACOPY
00003563: RETURNDATASIZE
00003564: PUSH1 0x00
00003566: REVERT
00003567: JUMPDEST
00003568: POP
00003569: POP
0000356a: POP
0000356b: POP
0000356c: PUSH1 0x40
0000356e: MLOAD
0000356f: RETURNDATASIZE
00003570: PUSH1 0x1f
00003572: NOT
00003573: PUSH1 0x1f
00003575: DUP3
00003576: ADD
00003577: AND
00003578: DUP3
00003579: ADD
0000357a: DUP1
0000357b: PUSH1 0x40
0000357d: MSTORE
0000357e: POP
0000357f: DUP2
00003580: ADD
00003581: SWAP1
00003582: PUSH2 0x358b
00003585: SWAP2
00003586: SWAP1
00003587: PUSH2 0x5468
0000358a: JUMP
0000358b: JUMPDEST
0000358c: PUSH2 0x0ac6
0000358f: JUMPI
00003590: PUSH1 0x40
00003592: MLOAD
00003593: PUSH32 0x6c85d7be00000000000000000000000000000000000000000000000000000000
000035b4: DUP2
000035b5: MSTORE
000035b6: PUSH1 0x04
000035b8: ADD
000035b9: PUSH1 0x40
000035bb: MLOAD
000035bc: DUP1
000035bd: SWAP2
000035be: SUB
000035bf: SWAP1
000035c0: REVERT
000035c1: JUMPDEST
000035c2: PUSH1 0x60
000035c4: PUSH1 0x00
000035c6: DUP5
000035c7: DUP5
000035c8: DUP2
000035c9: MLOAD
000035ca: DUP2
000035cb: LT
000035cc: PUSH2 0x35d7
000035cf: JUMPI
000035d0: PUSH2 0x35d7
000035d3: PUSH2 0x4f98
000035d6: JUMP
000035d7: JUMPDEST
000035d8: ADD
000035d9: PUSH1 0x20
000035db: ADD
000035dc: MLOAD
000035dd: PUSH1 0xf8
000035df: SHR
000035e0: SWAP1
000035e1: POP
000035e2: DUP3
000035e3: PUSH2 0x35ed
000035e6: DUP3
000035e7: PUSH1 0x01
000035e9: PUSH2 0x548a
000035ec: JUMP
000035ed: JUMPDEST
000035ee: PUSH1 0xff
000035f0: AND
000035f1: EQ
000035f2: PUSH2 0x360b
000035f5: JUMPI
000035f6: POP
000035f7: POP
000035f8: PUSH1 0x40
000035fa: DUP1
000035fb: MLOAD
000035fc: PUSH1 0x20
000035fe: DUP2
000035ff: ADD
00003600: SWAP1
00003601: SWAP2
00003602: MSTORE
00003603: PUSH1 0x00
00003605: DUP2
00003606: MSTORE
00003607: PUSH2 0x34aa
0000360a: JUMP
0000360b: JUMPDEST
0000360c: DUP5
0000360d: PUSH2 0x3617
00003610: DUP6
00003611: PUSH1 0x01
00003613: PUSH2 0x4c9e
00003616: JUMP
00003617: JUMPDEST
00003618: DUP2
00003619: MLOAD
0000361a: DUP2
0000361b: LT
0000361c: PUSH2 0x3627
0000361f: JUMPI
00003620: PUSH2 0x3627
00003623: PUSH2 0x4f98
00003626: JUMP
00003627: JUMPDEST
00003628: ADD
00003629: PUSH1 0x20
0000362b: ADD
0000362c: MLOAD
0000362d: PUSH1 0xf8
0000362f: SHR
00003630: PUSH1 0x00
00003632: SUB
00003633: PUSH2 0x36e6
00003636: JUMPI
00003637: PUSH1 0x02
00003639: DUP2
0000363a: PUSH1 0xff
0000363c: AND
0000363d: LT
0000363e: ISZERO
0000363f: PUSH2 0x3658
00003642: JUMPI
00003643: POP
00003644: POP
00003645: PUSH1 0x40
00003647: DUP1
00003648: MLOAD
00003649: PUSH1 0x20
0000364b: DUP2
0000364c: ADD
0000364d: SWAP1
0000364e: SWAP2
0000364f: MSTORE
00003650: PUSH1 0x00
00003652: DUP2
00003653: MSTORE
00003654: PUSH2 0x34aa
00003657: JUMP
00003658: JUMPDEST
00003659: PUSH1 0x00
0000365b: DUP6
0000365c: PUSH2 0x3666
0000365f: DUP7
00003660: PUSH1 0x02
00003662: PUSH2 0x4c9e
00003665: JUMP
00003666: JUMPDEST
00003667: DUP2
00003668: MLOAD
00003669: DUP2
0000366a: LT
0000366b: PUSH2 0x3676
0000366e: JUMPI
0000366f: PUSH2 0x3676
00003672: PUSH2 0x4f98
00003675: JUMP
00003676: JUMPDEST
00003677: ADD
00003678: PUSH1 0x20
0000367a: ADD
0000367b: MLOAD
0000367c: PUSH1 0xf8
0000367e: SHR
0000367f: SWAP1
00003680: POP
00003681: PUSH2 0x368b
00003684: PUSH1 0x02
00003686: DUP4
00003687: PUSH2 0x4f7f
0000368a: JUMP
0000368b: JUMPDEST
0000368c: PUSH1 0xff
0000368e: AND
0000368f: DUP2
00003690: EQ
00003691: ISZERO
00003692: DUP1
00003693: PUSH2 0x36a9
00003696: JUMPI
00003697: POP
00003698: DUP1
00003699: PUSH1 0x20
0000369b: EQ
0000369c: ISZERO
0000369d: DUP1
0000369e: ISZERO
0000369f: PUSH2 0x36a9
000036a2: JUMPI
000036a3: POP
000036a4: DUP1
000036a5: PUSH1 0x14
000036a7: EQ
000036a8: ISZERO
000036a9: JUMPDEST
000036aa: ISZERO
000036ab: PUSH2 0x36c7
000036ae: JUMPI
000036af: PUSH1 0x40
000036b1: MLOAD
000036b2: DUP1
000036b3: PUSH1 0x20
000036b5: ADD
000036b6: PUSH1 0x40
000036b8: MSTORE
000036b9: DUP1
000036ba: PUSH1 0x00
000036bc: DUP2
000036bd: MSTORE
000036be: POP
000036bf: SWAP3
000036c0: POP
000036c1: POP
000036c2: POP
000036c3: PUSH2 0x34aa
000036c6: JUMP
000036c7: JUMPDEST
000036c8: PUSH2 0x36dd
000036cb: PUSH2 0x36d5
000036ce: DUP7
000036cf: PUSH1 0x03
000036d1: PUSH2 0x4c9e
000036d4: JUMP
000036d5: JUMPDEST
000036d6: DUP8
000036d7: SWAP1
000036d8: DUP4
000036d9: PUSH2 0x3de0
000036dc: JUMP
000036dd: JUMPDEST
000036de: SWAP3
000036df: POP
000036e0: POP
000036e1: POP
000036e2: PUSH2 0x34aa
000036e5: JUMP
000036e6: JUMPDEST
000036e7: PUSH1 0x00
000036e9: PUSH2 0x36f2
000036ec: DUP7
000036ed: DUP7
000036ee: PUSH2 0x3ec7
000036f1: JUMP
000036f2: JUMPDEST
000036f3: SWAP1
000036f4: POP
000036f5: PUSH32 0xffffff0000000000000000000000000000000000000000000000000000000000
00003716: DUP2
00003717: AND
00003718: PUSH32 0x1976a90000000000000000000000000000000000000000000000000000000000
00003739: SUB
0000373a: PUSH2 0x3806
0000373d: JUMPI
0000373e: DUP6
0000373f: PUSH2 0x3749
00003742: DUP7
00003743: PUSH1 0x03
00003745: PUSH2 0x4c9e
00003748: JUMP
00003749: JUMPDEST
0000374a: DUP2
0000374b: MLOAD
0000374c: DUP2
0000374d: LT
0000374e: PUSH2 0x3759
00003751: JUMPI
00003752: PUSH2 0x3759
00003755: PUSH2 0x4f98
00003758: JUMP
00003759: JUMPDEST
0000375a: PUSH1 0x20
0000375c: SWAP2
0000375d: ADD
0000375e: ADD
0000375f: MLOAD
00003760: PUSH1 0xf8
00003762: SHR
00003763: PUSH1 0x14
00003765: EQ
00003766: ISZERO
00003767: DUP1
00003768: PUSH2 0x37d1
0000376b: JUMPI
0000376c: POP
0000376d: PUSH2 0x378c
00003770: PUSH1 0x02
00003772: PUSH2 0x377b
00003775: DUP7
00003776: DUP9
00003777: PUSH2 0x4c9e
0000377a: JUMP
0000377b: JUMPDEST
0000377c: PUSH2 0x3785
0000377f: SWAP2
00003780: SWAP1
00003781: PUSH2 0x4e94
00003784: JUMP
00003785: JUMPDEST
00003786: DUP8
00003787: SWAP1
00003788: PUSH2 0x3ec7
0000378b: JUMP
0000378c: JUMPDEST
0000378d: PUSH30 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000037ac: NOT
000037ad: AND
000037ae: PUSH32 0x88ac000000000000000000000000000000000000000000000000000000000000
000037cf: EQ
000037d0: ISZERO
000037d1: JUMPDEST
000037d2: ISZERO
000037d3: PUSH2 0x37ef
000037d6: JUMPI
000037d7: PUSH1 0x40
000037d9: MLOAD
000037da: DUP1
000037db: PUSH1 0x20
000037dd: ADD
000037de: PUSH1 0x40
000037e0: MSTORE
000037e1: DUP1
000037e2: PUSH1 0x00
000037e4: DUP2
000037e5: MSTORE
000037e6: POP
000037e7: SWAP3
000037e8: POP
000037e9: POP
000037ea: POP
000037eb: PUSH2 0x34aa
000037ee: JUMP
000037ef: JUMPDEST
000037f0: PUSH2 0x36dd
000037f3: PUSH2 0x37fd
000037f6: DUP7
000037f7: PUSH1 0x04
000037f9: PUSH2 0x4c9e
000037fc: JUMP
000037fd: JUMPDEST
000037fe: DUP8
000037ff: SWAP1
00003800: PUSH1 0x14
00003802: PUSH2 0x3de0
00003805: JUMP
00003806: JUMPDEST
00003807: PUSH32 0xffffff0000000000000000000000000000000000000000000000000000000000
00003828: DUP2
00003829: AND
0000382a: PUSH32 0x17a9140000000000000000000000000000000000000000000000000000000000
0000384b: SUB
0000384c: PUSH2 0x38ad
0000384f: JUMPI
00003850: DUP6
00003851: PUSH1 0x01
00003853: PUSH2 0x385c
00003856: DUP7
00003857: DUP9
00003858: PUSH2 0x4c9e
0000385b: JUMP
0000385c: JUMPDEST
0000385d: PUSH2 0x3866
00003860: SWAP2
00003861: SWAP1
00003862: PUSH2 0x4e94
00003865: JUMP
00003866: JUMPDEST
00003867: DUP2
00003868: MLOAD
00003869: DUP2
0000386a: LT
0000386b: PUSH2 0x3876
0000386e: JUMPI
0000386f: PUSH2 0x3876
00003872: PUSH2 0x4f98
00003875: JUMP
00003876: JUMPDEST
00003877: PUSH1 0x20
00003879: SWAP2
0000387a: ADD
0000387b: ADD
0000387c: MLOAD
0000387d: PUSH1 0xf8
0000387f: SHR
00003880: PUSH1 0x87
00003882: EQ
00003883: PUSH2 0x389f
00003886: JUMPI
00003887: PUSH1 0x40
00003889: MLOAD
0000388a: DUP1
0000388b: PUSH1 0x20
0000388d: ADD
0000388e: PUSH1 0x40
00003890: MSTORE
00003891: DUP1
00003892: PUSH1 0x00
00003894: DUP2
00003895: MSTORE
00003896: POP
00003897: SWAP3
00003898: POP
00003899: POP
0000389a: POP
0000389b: PUSH2 0x34aa
0000389e: JUMP
0000389f: JUMPDEST
000038a0: PUSH2 0x36dd
000038a3: PUSH2 0x37fd
000038a6: DUP7
000038a7: PUSH1 0x03
000038a9: PUSH2 0x4c9e
000038ac: JUMP
000038ad: JUMPDEST
000038ae: POP
000038af: POP
000038b0: POP
000038b1: PUSH1 0x40
000038b3: DUP1
000038b4: MLOAD
000038b5: PUSH1 0x20
000038b7: DUP2
000038b8: ADD
000038b9: SWAP1
000038ba: SWAP2
000038bb: MSTORE
000038bc: PUSH1 0x00
000038be: DUP2
000038bf: MSTORE
000038c0: SWAP4
000038c1: SWAP3
000038c2: POP
000038c3: POP
000038c4: POP
000038c5: JUMP
000038c6: JUMPDEST
000038c7: PUSH1 0x80
000038c9: DUP2
000038ca: ADD
000038cb: MLOAD
000038cc: PUSH1 0xff
000038ce: AND
000038cf: PUSH2 0x391c
000038d2: JUMPI
000038d3: PUSH1 0x00
000038d5: DUP2
000038d6: PUSH1 0x20
000038d8: ADD
000038d9: MLOAD
000038da: PUSH2 0x38e2
000038dd: SWAP1
000038de: PUSH2 0x4ea7
000038e1: JUMP
000038e2: JUMPDEST
000038e3: PUSH1 0x60
000038e5: SHR
000038e6: SWAP1
000038e7: POP
000038e8: PUSH1 0x00
000038ea: PUSH2 0x3900
000038ed: DUP4
000038ee: PUSH1 0x40
000038f0: ADD
000038f1: MLOAD
000038f2: DUP5
000038f3: PUSH1 0x60
000038f5: ADD
000038f6: MLOAD
000038f7: DUP6
000038f8: PUSH1 0x20
000038fa: ADD
000038fb: MLOAD
000038fc: PUSH2 0x335a
000038ff: JUMP
00003900: JUMPDEST
00003901: PUSH1 0x40
00003903: DUP5
00003904: ADD
00003905: MLOAD
00003906: SWAP1
00003907: SWAP2
00003908: POP
00003909: PUSH2 0x0f58
0000390c: SWAP1
0000390d: PUSH1 0x01
0000390f: PUSH1 0x01
00003911: PUSH1 0xa0
00003913: SHL
00003914: SUB
00003915: AND
00003916: DUP4
00003917: DUP4
00003918: PUSH2 0x3daf
0000391b: JUMP
0000391c: JUMPDEST
0000391d: PUSH1 0x01
0000391f: PUSH1 0xff
00003921: AND
00003922: DUP2
00003923: PUSH1 0x80
00003925: ADD
00003926: MLOAD
00003927: PUSH1 0xff
00003929: AND
0000392a: SUB
0000392b: PUSH2 0x16c7
0000392e: JUMPI
0000392f: PUSH1 0x01
00003931: PUSH1 0x9a
00003933: PUSH1 0x00
00003935: DUP4
00003936: PUSH1 0x40
00003938: MLOAD
00003939: PUSH1 0x20
0000393b: ADD
0000393c: PUSH2 0x3945
0000393f: SWAP2
00003940: SWAP1
00003941: PUSH2 0x54a3
00003944: JUMP
00003945: JUMPDEST
00003946: PUSH1 0x40
00003948: DUP1
00003949: MLOAD
0000394a: DUP1
0000394b: DUP4
0000394c: SUB
0000394d: PUSH1 0x1f
0000394f: NOT
00003950: ADD
00003951: DUP2
00003952: MSTORE
00003953: SWAP2
00003954: DUP2
00003955: MSTORE
00003956: DUP2
00003957: MLOAD
00003958: PUSH1 0x20
0000395a: SWAP3
0000395b: DUP4
0000395c: ADD
0000395d: KECCAK256
0000395e: DUP4
0000395f: MSTORE
00003960: SWAP1
00003961: DUP3
00003962: ADD
00003963: SWAP3
00003964: SWAP1
00003965: SWAP3
00003966: MSTORE
00003967: ADD
00003968: PUSH1 0x00
0000396a: KECCAK256
0000396b: DUP1
0000396c: SLOAD
0000396d: PUSH1 0xff
0000396f: NOT
00003970: AND
00003971: SWAP2
00003972: ISZERO
00003973: ISZERO
00003974: SWAP2
00003975: SWAP1
00003976: SWAP2
00003977: OR
00003978: SWAP1
00003979: SSTORE
0000397a: POP
0000397b: JUMP
0000397c: JUMPDEST
0000397d: PUSH1 0x00
0000397f: DUP1
00003980: PUSH1 0x00
00003982: DUP1
00003983: PUSH2 0x398c
00003986: DUP7
00003987: DUP7
00003988: PUSH2 0x3ed6
0000398b: JUMP
0000398c: JUMPDEST
0000398d: SWAP3
0000398e: POP
0000398f: SWAP3
00003990: POP
00003991: SWAP3
00003992: POP
00003993: PUSH2 0x399c
00003996: DUP3
00003997: DUP3
00003998: PUSH2 0x3f23
0000399b: JUMP
0000399c: JUMPDEST
0000399d: POP
0000399e: SWAP1
0000399f: SWAP5
000039a0: SWAP4
000039a1: POP
000039a2: POP
000039a3: POP
000039a4: POP
000039a5: JUMP
000039a6: JUMPDEST
000039a7: PUSH2 0x39b0
000039aa: DUP4
000039ab: DUP4
000039ac: PUSH2 0x4027
000039af: JUMP
000039b0: JUMPDEST
000039b1: PUSH2 0x39b9
000039b4: CALLER
000039b5: PUSH2 0x41fb
000039b8: JUMP
000039b9: JUMPDEST
000039ba: PUSH2 0x39c1
000039bd: PUSH2 0x420c
000039c0: JUMP
000039c1: JUMPDEST
000039c2: PUSH1 0x01
000039c4: PUSH1 0x01
000039c6: PUSH1 0xa0
000039c8: SHL
000039c9: SUB
000039ca: DUP2
000039cb: AND
000039cc: PUSH2 0x3a01
000039cf: JUMPI
000039d0: PUSH1 0x40
000039d2: MLOAD
000039d3: PUSH32 0xe747bdc200000000000000000000000000000000000000000000000000000000
000039f4: DUP2
000039f5: MSTORE
000039f6: PUSH1 0x04
000039f8: ADD
000039f9: PUSH1 0x40
000039fb: MLOAD
000039fc: DUP1
000039fd: SWAP2
000039fe: SUB
000039ff: SWAP1
00003a00: REVERT
00003a01: JUMPDEST
00003a02: PUSH1 0x31
00003a04: DUP1
00003a05: SLOAD
00003a06: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00003a27: AND
00003a28: PUSH1 0x01
00003a2a: PUSH1 0x01
00003a2c: PUSH1 0xa0
00003a2e: SHL
00003a2f: SUB
00003a30: SWAP3
00003a31: SWAP1
00003a32: SWAP3
00003a33: AND
00003a34: SWAP2
00003a35: SWAP1
00003a36: SWAP2
00003a37: OR
00003a38: SWAP1
00003a39: SSTORE
00003a3a: POP
00003a3b: POP
00003a3c: PUSH7 0x2386f26fc10000
00003a44: PUSH1 0x33
00003a46: SSTORE
00003a47: JUMP
00003a48: JUMPDEST
00003a49: PUSH2 0x3a51
00003a4c: CALLER
00003a4d: PUSH2 0x41fb
00003a50: JUMP
00003a51: JUMPDEST
00003a52: PUSH2 0x3a59
00003a55: PUSH2 0x420c
00003a58: JUMP
00003a59: JUMPDEST
00003a5a: PUSH1 0x00
00003a5c: PUSH1 0x63
00003a5e: SSTORE
00003a5f: JUMP
00003a60: JUMPDEST
00003a61: PUSH1 0x00
00003a63: DUP1
00003a64: PUSH5 0x02540be400
00003a6a: PUSH2 0x3a73
00003a6d: DUP5
00003a6e: DUP7
00003a6f: PUSH2 0x54ff
00003a72: JUMP
00003a73: JUMPDEST
00003a74: PUSH8 0xffffffffffffffff
00003a7d: AND
00003a7e: PUSH2 0x3a87
00003a81: SWAP2
00003a82: SWAP1
00003a83: PUSH2 0x4c44
00003a86: JUMP
00003a87: JUMPDEST
00003a88: SWAP1
00003a89: POP
00003a8a: PUSH1 0x00
00003a8c: PUSH1 0x01
00003a8e: PUSH1 0x00
00003a90: SWAP1
00003a91: SLOAD
00003a92: SWAP1
00003a93: PUSH2 0x0100
00003a96: EXP
00003a97: SWAP1
00003a98: DIV
00003a99: PUSH1 0x01
00003a9b: PUSH1 0x01
00003a9d: PUSH1 0xa0
00003a9f: SHL
00003aa0: SUB
00003aa1: AND
00003aa2: PUSH1 0x01
00003aa4: PUSH1 0x01
00003aa6: PUSH1 0xa0
00003aa8: SHL
00003aa9: SUB
00003aaa: AND
00003aab: PUSH4 0x09b53f51
00003ab0: PUSH1 0x40
00003ab2: MLOAD
00003ab3: DUP2
00003ab4: PUSH4 0xffffffff
00003ab9: AND
00003aba: PUSH1 0xe0
00003abc: SHL
00003abd: DUP2
00003abe: MSTORE
00003abf: PUSH1 0x04
00003ac1: ADD
00003ac2: PUSH1 0x20
00003ac4: PUSH1 0x40
00003ac6: MLOAD
00003ac7: DUP1
00003ac8: DUP4
00003ac9: SUB
00003aca: DUP2
00003acb: DUP7
00003acc: GAS
00003acd: STATICCALL
00003ace: ISZERO
00003acf: DUP1
00003ad0: ISZERO
00003ad1: PUSH2 0x3ade
00003ad4: JUMPI
00003ad5: RETURNDATASIZE
00003ad6: PUSH1 0x00
00003ad8: DUP1
00003ad9: RETURNDATACOPY
00003ada: RETURNDATASIZE
00003adb: PUSH1 0x00
00003add: REVERT
00003ade: JUMPDEST
00003adf: POP
00003ae0: POP
00003ae1: POP
00003ae2: POP
00003ae3: PUSH1 0x40
00003ae5: MLOAD
00003ae6: RETURNDATASIZE
00003ae7: PUSH1 0x1f
00003ae9: NOT
00003aea: PUSH1 0x1f
00003aec: DUP3
00003aed: ADD
00003aee: AND
00003aef: DUP3
00003af0: ADD
00003af1: DUP1
00003af2: PUSH1 0x40
00003af4: MSTORE
00003af5: POP
00003af6: DUP2
00003af7: ADD
00003af8: SWAP1
00003af9: PUSH2 0x3b02
00003afc: SWAP2
00003afd: SWAP1
00003afe: PUSH2 0x5527
00003b01: JUMP
00003b02: JUMPDEST
00003b03: PUSH4 0xffffffff
00003b08: AND
00003b09: SWAP1
00003b0a: POP
00003b0b: PUSH1 0x00
00003b0d: DUP1
00003b0e: DUP3
00003b0f: GT
00003b10: PUSH2 0x3b1a
00003b13: JUMPI
00003b14: PUSH1 0x00
00003b16: PUSH2 0x3b24
00003b19: JUMP
00003b1a: JUMPDEST
00003b1b: PUSH2 0x3b24
00003b1e: DUP3
00003b1f: DUP5
00003b20: PUSH2 0x4c8a
00003b23: JUMP
00003b24: JUMPDEST
00003b25: SWAP1
00003b26: POP
00003b27: PUSH1 0x00
00003b29: DUP1
00003b2a: PUSH1 0x00
00003b2c: SWAP1
00003b2d: SLOAD
00003b2e: SWAP1
00003b2f: PUSH2 0x0100
00003b32: EXP
00003b33: SWAP1
00003b34: DIV
00003b35: PUSH1 0x01
00003b37: PUSH1 0x01
00003b39: PUSH1 0xa0
00003b3b: SHL
00003b3c: SUB
00003b3d: AND
00003b3e: PUSH1 0x01
00003b40: PUSH1 0x01
00003b42: PUSH1 0xa0
00003b44: SHL
00003b45: SUB
00003b46: AND
00003b47: PUSH4 0xc42b64d0
00003b4c: PUSH1 0x40
00003b4e: MLOAD
00003b4f: DUP2
00003b50: PUSH4 0xffffffff
00003b55: AND
00003b56: PUSH1 0xe0
00003b58: SHL
00003b59: DUP2
00003b5a: MSTORE
00003b5b: PUSH1 0x04
00003b5d: ADD
00003b5e: PUSH1 0x80
00003b60: PUSH1 0x40
00003b62: MLOAD
00003b63: DUP1
00003b64: DUP4
00003b65: SUB
00003b66: DUP2
00003b67: DUP7
00003b68: GAS
00003b69: STATICCALL
00003b6a: ISZERO
00003b6b: DUP1
00003b6c: ISZERO
00003b6d: PUSH2 0x3b7a
00003b70: JUMPI
00003b71: RETURNDATASIZE
00003b72: PUSH1 0x00
00003b74: DUP1
00003b75: RETURNDATACOPY
00003b76: RETURNDATASIZE
00003b77: PUSH1 0x00
00003b79: REVERT
00003b7a: JUMPDEST
00003b7b: POP
00003b7c: POP
00003b7d: POP
00003b7e: POP
00003b7f: PUSH1 0x40
00003b81: MLOAD
00003b82: RETURNDATASIZE
00003b83: PUSH1 0x1f
00003b85: NOT
00003b86: PUSH1 0x1f
00003b88: DUP3
00003b89: ADD
00003b8a: AND
00003b8b: DUP3
00003b8c: ADD
00003b8d: DUP1
00003b8e: PUSH1 0x40
00003b90: MSTORE
00003b91: POP
00003b92: DUP2
00003b93: ADD
00003b94: SWAP1
00003b95: PUSH2 0x3b9e
00003b98: SWAP2
00003b99: SWAP1
00003b9a: PUSH2 0x5544
00003b9d: JUMP
00003b9e: JUMPDEST
00003b9f: POP
00003ba0: SWAP3
00003ba1: POP
00003ba2: POP
00003ba3: POP
00003ba4: PUSH1 0x00
00003ba6: PUSH5 0x02540be400
00003bac: DUP3
00003bad: PUSH8 0xffffffffffffffff
00003bb6: AND
00003bb7: PUSH2 0x3bc0
00003bba: SWAP2
00003bbb: SWAP1
00003bbc: PUSH2 0x4c44
00003bbf: JUMP
00003bc0: JUMPDEST
00003bc1: SWAP1
00003bc2: POP
00003bc3: DUP1
00003bc4: PUSH2 0x3bcd
00003bc7: DUP5
00003bc8: DUP8
00003bc9: PUSH2 0x4e94
00003bcc: JUMP
00003bcd: JUMPDEST
00003bce: PUSH2 0x3bd7
00003bd1: SWAP2
00003bd2: SWAP1
00003bd3: PUSH2 0x4e94
00003bd6: JUMP
00003bd7: JUMPDEST
00003bd8: SWAP9
00003bd9: SWAP8
00003bda: POP
00003bdb: POP
00003bdc: POP
00003bdd: POP
00003bde: POP
00003bdf: POP
00003be0: POP
00003be1: POP
00003be2: JUMP
00003be3: JUMPDEST
00003be4: PUSH1 0x00
00003be6: PUSH2 0x3bf8
00003be9: PUSH1 0x01
00003beb: PUSH1 0x01
00003bed: PUSH1 0xa0
00003bef: SHL
00003bf0: SUB
00003bf1: DUP5
00003bf2: AND
00003bf3: DUP4
00003bf4: PUSH2 0x421c
00003bf7: JUMP
00003bf8: JUMPDEST
00003bf9: SWAP1
00003bfa: POP
00003bfb: DUP1
00003bfc: MLOAD
00003bfd: PUSH1 0x00
00003bff: EQ
00003c00: ISZERO
00003c01: DUP1
00003c02: ISZERO
00003c03: PUSH2 0x3c1d
00003c06: JUMPI
00003c07: POP
00003c08: DUP1
00003c09: DUP1
00003c0a: PUSH1 0x20
00003c0c: ADD
00003c0d: SWAP1
00003c0e: MLOAD
00003c0f: DUP2
00003c10: ADD
00003c11: SWAP1
00003c12: PUSH2 0x3c1b
00003c15: SWAP2
00003c16: SWAP1
00003c17: PUSH2 0x5468
00003c1a: JUMP
00003c1b: JUMPDEST
00003c1c: ISZERO
00003c1d: JUMPDEST
00003c1e: ISZERO
00003c1f: PUSH2 0x0f58
00003c22: JUMPI
00003c23: PUSH1 0x40
00003c25: MLOAD
00003c26: PUSH32 0x5274afe700000000000000000000000000000000000000000000000000000000
00003c47: DUP2
00003c48: MSTORE
00003c49: PUSH1 0x01
00003c4b: PUSH1 0x01
00003c4d: PUSH1 0xa0
00003c4f: SHL
00003c50: SUB
00003c51: DUP5
00003c52: AND
00003c53: PUSH1 0x04
00003c55: DUP3
00003c56: ADD
00003c57: MSTORE
00003c58: PUSH1 0x24
00003c5a: ADD
00003c5b: PUSH2 0x0907
00003c5e: JUMP
00003c5f: JUMPDEST
00003c60: PUSH1 0x00
00003c62: PUSH2 0x0ae6
00003c65: PUSH2 0x3c71
00003c68: PUSH1 0x20
00003c6a: DUP5
00003c6b: ADD
00003c6c: DUP5
00003c6d: PUSH2 0x55a3
00003c70: JUMP
00003c71: JUMPDEST
00003c72: PUSH2 0x3c7e
00003c75: PUSH1 0x20
00003c77: DUP6
00003c78: ADD
00003c79: DUP6
00003c7a: PUSH2 0x4e2f
00003c7d: JUMP
00003c7e: JUMPDEST
00003c7f: PUSH2 0x3c8b
00003c82: PUSH1 0x40
00003c84: DUP8
00003c85: ADD
00003c86: DUP8
00003c87: PUSH2 0x4e2f
00003c8a: JUMP
00003c8b: JUMPDEST
00003c8c: PUSH2 0x3c9b
00003c8f: PUSH1 0x80
00003c91: DUP10
00003c92: ADD
00003c93: PUSH1 0x60
00003c95: DUP11
00003c96: ADD
00003c97: PUSH2 0x55a3
00003c9a: JUMP
00003c9b: JUMPDEST
00003c9c: PUSH1 0x40
00003c9e: MLOAD
00003c9f: PUSH1 0x20
00003ca1: ADD
00003ca2: PUSH2 0x3cb0
00003ca5: SWAP7
00003ca6: SWAP6
00003ca7: SWAP5
00003ca8: SWAP4
00003ca9: SWAP3
00003caa: SWAP2
00003cab: SWAP1
00003cac: PUSH2 0x55be
00003caf: JUMP
00003cb0: JUMPDEST
00003cb1: PUSH1 0x40
00003cb3: MLOAD
00003cb4: PUSH1 0x20
00003cb6: DUP2
00003cb7: DUP4
00003cb8: SUB
00003cb9: SUB
00003cba: DUP2
00003cbb: MSTORE
00003cbc: SWAP1
00003cbd: PUSH1 0x40
00003cbf: MSTORE
00003cc0: PUSH2 0x422a
00003cc3: JUMP
00003cc4: JUMPDEST
00003cc5: PUSH1 0x00
00003cc7: DUP3
00003cc8: DUP3
00003cc9: PUSH1 0x40
00003ccb: MLOAD
00003ccc: PUSH1 0x20
00003cce: ADD
00003ccf: PUSH2 0x3d07
00003cd2: SWAP3
00003cd3: SWAP2
00003cd4: SWAP1
00003cd5: SWAP2
00003cd6: DUP3
00003cd7: MSTORE
00003cd8: PUSH1 0xe0
00003cda: SHL
00003cdb: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00003cfc: AND
00003cfd: PUSH1 0x20
00003cff: DUP3
00003d00: ADD
00003d01: MSTORE
00003d02: PUSH1 0x24
00003d04: ADD
00003d05: SWAP1
00003d06: JUMP
00003d07: JUMPDEST
00003d08: PUSH1 0x40
00003d0a: DUP1
00003d0b: MLOAD
00003d0c: PUSH1 0x1f
00003d0e: NOT
00003d0f: DUP2
00003d10: DUP5
00003d11: SUB
00003d12: ADD
00003d13: DUP2
00003d14: MSTORE
00003d15: SWAP2
00003d16: SWAP1
00003d17: MSTORE
00003d18: DUP1
00003d19: MLOAD
00003d1a: PUSH1 0x20
00003d1c: SWAP1
00003d1d: SWAP2
00003d1e: ADD
00003d1f: KECCAK256
00003d20: SWAP4
00003d21: SWAP3
00003d22: POP
00003d23: POP
00003d24: POP
00003d25: JUMP
00003d26: JUMPDEST
00003d27: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300
00003d48: DUP1
00003d49: SLOAD
00003d4a: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00003d6b: DUP2
00003d6c: AND
00003d6d: PUSH1 0x01
00003d6f: PUSH1 0x01
00003d71: PUSH1 0xa0
00003d73: SHL
00003d74: SUB
00003d75: DUP5
00003d76: DUP2
00003d77: AND
00003d78: SWAP2
00003d79: DUP3
00003d7a: OR
00003d7b: DUP5
00003d7c: SSTORE
00003d7d: PUSH1 0x40
00003d7f: MLOAD
00003d80: SWAP3
00003d81: AND
00003d82: SWAP2
00003d83: DUP3
00003d84: SWAP1
00003d85: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00003da6: SWAP1
00003da7: PUSH1 0x00
00003da9: SWAP1
00003daa: LOG3
00003dab: POP
00003dac: POP
00003dad: POP
00003dae: JUMP
00003daf: JUMPDEST
00003db0: PUSH1 0x40
00003db2: MLOAD
00003db3: PUSH1 0x01
00003db5: PUSH1 0x01
00003db7: PUSH1 0xa0
00003db9: SHL
00003dba: SUB
00003dbb: DUP4
00003dbc: DUP2
00003dbd: AND
00003dbe: PUSH1 0x24
00003dc0: DUP4
00003dc1: ADD
00003dc2: MSTORE
00003dc3: PUSH1 0x44
00003dc5: DUP3
00003dc6: ADD
00003dc7: DUP4
00003dc8: SWAP1
00003dc9: MSTORE
00003dca: PUSH2 0x0f58
00003dcd: SWAP2
00003dce: DUP6
00003dcf: SWAP2
00003dd0: DUP3
00003dd1: AND
00003dd2: SWAP1
00003dd3: PUSH4 0xa9059cbb
00003dd8: SWAP1
00003dd9: PUSH1 0x64
00003ddb: ADD
00003ddc: PUSH2 0x30df
00003ddf: JUMP
00003de0: JUMPDEST
00003de1: PUSH1 0x60
00003de3: DUP2
00003de4: PUSH1 0x00
00003de6: SUB
00003de7: PUSH2 0x3dff
00003dea: JUMPI
00003deb: POP
00003dec: PUSH1 0x40
00003dee: DUP1
00003def: MLOAD
00003df0: PUSH1 0x20
00003df2: DUP2
00003df3: ADD
00003df4: SWAP1
00003df5: SWAP2
00003df6: MSTORE
00003df7: PUSH1 0x00
00003df9: DUP2
00003dfa: MSTORE
00003dfb: PUSH2 0x34aa
00003dfe: JUMP
00003dff: JUMPDEST
00003e00: PUSH1 0x00
00003e02: PUSH2 0x3e0b
00003e05: DUP4
00003e06: DUP6
00003e07: PUSH2 0x4c9e
00003e0a: JUMP
00003e0b: JUMPDEST
00003e0c: SWAP1
00003e0d: POP
00003e0e: DUP4
00003e0f: DUP2
00003e10: GT
00003e11: DUP1
00003e12: ISZERO
00003e13: PUSH2 0x3e1d
00003e16: JUMPI
00003e17: POP
00003e18: DUP1
00003e19: DUP6
00003e1a: MLOAD
00003e1b: LT
00003e1c: ISZERO
00003e1d: JUMPDEST
00003e1e: PUSH2 0x3e83
00003e21: JUMPI
00003e22: PUSH1 0x40
00003e24: MLOAD
00003e25: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003e46: DUP2
00003e47: MSTORE
00003e48: PUSH1 0x20
00003e4a: PUSH1 0x04
00003e4c: DUP3
00003e4d: ADD
00003e4e: MSTORE
00003e4f: PUSH1 0x13
00003e51: PUSH1 0x24
00003e53: DUP3
00003e54: ADD
00003e55: MSTORE
00003e56: PUSH32 0x536c696365206f7574206f6620626f756e647300000000000000000000000000
00003e77: PUSH1 0x44
00003e79: DUP3
00003e7a: ADD
00003e7b: MSTORE
00003e7c: PUSH1 0x64
00003e7e: ADD
00003e7f: PUSH2 0x0907
00003e82: JUMP
00003e83: JUMPDEST
00003e84: PUSH1 0x40
00003e86: MLOAD
00003e87: SWAP2
00003e88: POP
00003e89: DUP3
00003e8a: PUSH1 0x40
00003e8c: DUP4
00003e8d: ADD
00003e8e: ADD
00003e8f: PUSH1 0x40
00003e91: MSTORE
00003e92: DUP3
00003e93: DUP3
00003e94: MSTORE
00003e95: DUP4
00003e96: DUP6
00003e97: ADD
00003e98: DUP3
00003e99: SUB
00003e9a: DUP5
00003e9b: PUSH1 0x20
00003e9d: DUP8
00003e9e: ADD
00003e9f: ADD
00003ea0: DUP5
00003ea1: DUP2
00003ea2: ADD
00003ea3: JUMPDEST
00003ea4: DUP1
00003ea5: DUP3
00003ea6: LT
00003ea7: ISZERO
00003ea8: PUSH2 0x3ebc
00003eab: JUMPI
00003eac: DUP2
00003ead: MLOAD
00003eae: DUP4
00003eaf: DUP4
00003eb0: ADD
00003eb1: MSTORE
00003eb2: PUSH1 0x20
00003eb4: DUP3
00003eb5: ADD
00003eb6: SWAP2
00003eb7: POP
00003eb8: PUSH2 0x3ea3
00003ebb: JUMP
00003ebc: JUMPDEST
00003ebd: POP
00003ebe: POP
00003ebf: POP
00003ec0: POP
00003ec1: SWAP4
00003ec2: SWAP3
00003ec3: POP
00003ec4: POP
00003ec5: POP
00003ec6: JUMP
00003ec7: JUMPDEST
00003ec8: PUSH1 0x00
00003eca: PUSH2 0x34aa
00003ecd: DUP4
00003ece: DUP4
00003ecf: ADD
00003ed0: PUSH1 0x20
00003ed2: ADD
00003ed3: MLOAD
00003ed4: SWAP1
00003ed5: JUMP
00003ed6: JUMPDEST
00003ed7: PUSH1 0x00
00003ed9: DUP1
00003eda: PUSH1 0x00
00003edc: DUP4
00003edd: MLOAD
00003ede: PUSH1 0x41
00003ee0: SUB
00003ee1: PUSH2 0x3f10
00003ee4: JUMPI
00003ee5: PUSH1 0x20
00003ee7: DUP5
00003ee8: ADD
00003ee9: MLOAD
00003eea: PUSH1 0x40
00003eec: DUP6
00003eed: ADD
00003eee: MLOAD
00003eef: PUSH1 0x60
00003ef1: DUP7
00003ef2: ADD
00003ef3: MLOAD
00003ef4: PUSH1 0x00
00003ef6: BYTE
00003ef7: PUSH2 0x3f02
00003efa: DUP9
00003efb: DUP3
00003efc: DUP6
00003efd: DUP6
00003efe: PUSH2 0x4251
00003f01: JUMP
00003f02: JUMPDEST
00003f03: SWAP6
00003f04: POP
00003f05: SWAP6
00003f06: POP
00003f07: SWAP6
00003f08: POP
00003f09: POP
00003f0a: POP
00003f0b: POP
00003f0c: PUSH2 0x3f1c
00003f0f: JUMP
00003f10: JUMPDEST
00003f11: POP
00003f12: POP
00003f13: DUP2
00003f14: MLOAD
00003f15: PUSH1 0x00
00003f17: SWAP2
00003f18: POP
00003f19: PUSH1 0x02
00003f1b: SWAP1
00003f1c: JUMPDEST
00003f1d: SWAP3
00003f1e: POP
00003f1f: SWAP3
00003f20: POP
00003f21: SWAP3
00003f22: JUMP
00003f23: JUMPDEST
00003f24: PUSH1 0x00
00003f26: DUP3
00003f27: PUSH1 0x03
00003f29: DUP2
00003f2a: GT
00003f2b: ISZERO
00003f2c: PUSH2 0x3f37
00003f2f: JUMPI
00003f30: PUSH2 0x3f37
00003f33: PUSH2 0x4a24
00003f36: JUMP
00003f37: JUMPDEST
00003f38: SUB
00003f39: PUSH2 0x3f40
00003f3c: JUMPI
00003f3d: POP
00003f3e: POP
00003f3f: JUMP
00003f40: JUMPDEST
00003f41: PUSH1 0x01
00003f43: DUP3
00003f44: PUSH1 0x03
00003f46: DUP2
00003f47: GT
00003f48: ISZERO
00003f49: PUSH2 0x3f54
00003f4c: JUMPI
00003f4d: PUSH2 0x3f54
00003f50: PUSH2 0x4a24
00003f53: JUMP
00003f54: JUMPDEST
00003f55: SUB
00003f56: PUSH2 0x3f8b
00003f59: JUMPI
00003f5a: PUSH1 0x40
00003f5c: MLOAD
00003f5d: PUSH32 0xf645eedf00000000000000000000000000000000000000000000000000000000
00003f7e: DUP2
00003f7f: MSTORE
00003f80: PUSH1 0x04
00003f82: ADD
00003f83: PUSH1 0x40
00003f85: MLOAD
00003f86: DUP1
00003f87: SWAP2
00003f88: SUB
00003f89: SWAP1
00003f8a: REVERT
00003f8b: JUMPDEST
00003f8c: PUSH1 0x02
00003f8e: DUP3
00003f8f: PUSH1 0x03
00003f91: DUP2
00003f92: GT
00003f93: ISZERO
00003f94: PUSH2 0x3f9f
00003f97: JUMPI
00003f98: PUSH2 0x3f9f
00003f9b: PUSH2 0x4a24
00003f9e: JUMP
00003f9f: JUMPDEST
00003fa0: SUB
00003fa1: PUSH2 0x3fd9
00003fa4: JUMPI
00003fa5: PUSH1 0x40
00003fa7: MLOAD
00003fa8: PUSH32 0xfce698f700000000000000000000000000000000000000000000000000000000
00003fc9: DUP2
00003fca: MSTORE
00003fcb: PUSH1 0x04
00003fcd: DUP2
00003fce: ADD
00003fcf: DUP3
00003fd0: SWAP1
00003fd1: MSTORE
00003fd2: PUSH1 0x24
00003fd4: ADD
00003fd5: PUSH2 0x0907
00003fd8: JUMP
00003fd9: JUMPDEST
00003fda: PUSH1 0x03
00003fdc: DUP3
00003fdd: PUSH1 0x03
00003fdf: DUP2
00003fe0: GT
00003fe1: ISZERO
00003fe2: PUSH2 0x3fed
00003fe5: JUMPI
00003fe6: PUSH2 0x3fed
00003fe9: PUSH2 0x4a24
00003fec: JUMP
00003fed: JUMPDEST
00003fee: SUB
00003fef: PUSH2 0x2ac9
00003ff2: JUMPI
00003ff3: PUSH1 0x40
00003ff5: MLOAD
00003ff6: PUSH32 0xd78bce0c00000000000000000000000000000000000000000000000000000000
00004017: DUP2
00004018: MSTORE
00004019: PUSH1 0x04
0000401b: DUP2
0000401c: ADD
0000401d: DUP3
0000401e: SWAP1
0000401f: MSTORE
00004020: PUSH1 0x24
00004022: ADD
00004023: PUSH2 0x0907
00004026: JUMP
00004027: JUMPDEST
00004028: PUSH1 0x00
0000402a: SLOAD
0000402b: PUSH1 0x01
0000402d: PUSH1 0x01
0000402f: PUSH1 0xa0
00004031: SHL
00004032: SUB
00004033: AND
00004034: ISZERO
00004035: DUP1
00004036: ISZERO
00004037: PUSH2 0x4049
0000403a: JUMPI
0000403b: POP
0000403c: PUSH1 0x01
0000403e: SLOAD
0000403f: PUSH1 0x01
00004041: PUSH1 0x01
00004043: PUSH1 0xa0
00004045: SHL
00004046: SUB
00004047: AND
00004048: ISZERO
00004049: JUMPDEST
0000404a: PUSH2 0x40d5
0000404d: JUMPI
0000404e: PUSH1 0x40
00004050: MLOAD
00004051: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00004072: DUP2
00004073: MSTORE
00004074: PUSH1 0x20
00004076: PUSH1 0x04
00004078: DUP3
00004079: ADD
0000407a: MSTORE
0000407b: PUSH1 0x29
0000407d: PUSH1 0x24
0000407f: DUP3
00004080: ADD
00004081: MSTORE
00004082: PUSH32 0x4162737472616374544254434465706f7369746f7220616c726561647920696e
000040a3: PUSH1 0x44
000040a5: DUP3
000040a6: ADD
000040a7: MSTORE
000040a8: PUSH32 0x697469616c697a65640000000000000000000000000000000000000000000000
000040c9: PUSH1 0x64
000040cb: DUP3
000040cc: ADD
000040cd: MSTORE
000040ce: PUSH1 0x84
000040d0: ADD
000040d1: PUSH2 0x0907
000040d4: JUMP
000040d5: JUMPDEST
000040d6: PUSH1 0x01
000040d8: PUSH1 0x01
000040da: PUSH1 0xa0
000040dc: SHL
000040dd: SUB
000040de: DUP3
000040df: AND
000040e0: PUSH2 0x4145
000040e3: JUMPI
000040e4: PUSH1 0x40
000040e6: MLOAD
000040e7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00004108: DUP2
00004109: MSTORE
0000410a: PUSH1 0x20
0000410c: PUSH1 0x04
0000410e: DUP3
0000410f: ADD
00004110: MSTORE
00004111: PUSH1 0x1d
00004113: PUSH1 0x24
00004115: DUP3
00004116: ADD
00004117: MSTORE
00004118: PUSH32 0x42726964676520616464726573732063616e6e6f74206265207a65726f000000
00004139: PUSH1 0x44
0000413b: DUP3
0000413c: ADD
0000413d: MSTORE
0000413e: PUSH1 0x64
00004140: ADD
00004141: PUSH2 0x0907
00004144: JUMP
00004145: JUMPDEST
00004146: PUSH1 0x01
00004148: PUSH1 0x01
0000414a: PUSH1 0xa0
0000414c: SHL
0000414d: SUB
0000414e: DUP2
0000414f: AND
00004150: PUSH2 0x41b5
00004153: JUMPI
00004154: PUSH1 0x40
00004156: MLOAD
00004157: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00004178: DUP2
00004179: MSTORE
0000417a: PUSH1 0x20
0000417c: PUSH1 0x04
0000417e: DUP3
0000417f: ADD
00004180: DUP2
00004181: SWAP1
00004182: MSTORE
00004183: PUSH1 0x24
00004185: DUP3
00004186: ADD
00004187: MSTORE
00004188: PUSH32 0x544254435661756c7420616464726573732063616e6e6f74206265207a65726f
000041a9: PUSH1 0x44
000041ab: DUP3
000041ac: ADD
000041ad: MSTORE
000041ae: PUSH1 0x64
000041b0: ADD
000041b1: PUSH2 0x0907
000041b4: JUMP
000041b5: JUMPDEST
000041b6: PUSH1 0x00
000041b8: DUP1
000041b9: SLOAD
000041ba: PUSH1 0x01
000041bc: PUSH1 0x01
000041be: PUSH1 0xa0
000041c0: SHL
000041c1: SUB
000041c2: SWAP4
000041c3: DUP5
000041c4: AND
000041c5: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000041e6: SWAP2
000041e7: DUP3
000041e8: AND
000041e9: OR
000041ea: SWAP1
000041eb: SWAP2
000041ec: SSTORE
000041ed: PUSH1 0x01
000041ef: DUP1
000041f0: SLOAD
000041f1: SWAP3
000041f2: SWAP1
000041f3: SWAP4
000041f4: AND
000041f5: SWAP2
000041f6: AND
000041f7: OR
000041f8: SWAP1
000041f9: SSTORE
000041fa: JUMP
000041fb: JUMPDEST
000041fc: PUSH2 0x4203
000041ff: PUSH2 0x4320
00004202: JUMP
00004203: JUMPDEST
00004204: PUSH2 0x16c7
00004207: DUP2
00004208: PUSH2 0x4387
0000420b: JUMP
0000420c: JUMPDEST
0000420d: PUSH2 0x4214
00004210: PUSH2 0x4320
00004213: JUMP
00004214: JUMPDEST
00004215: PUSH2 0x12a8
00004218: PUSH2 0x43d2
0000421b: JUMP
0000421c: JUMPDEST
0000421d: PUSH1 0x60
0000421f: PUSH2 0x34aa
00004222: DUP4
00004223: DUP4
00004224: PUSH1 0x00
00004226: PUSH2 0x43da
00004229: JUMP
0000422a: JUMPDEST
0000422b: PUSH1 0x00
0000422d: PUSH1 0x20
0000422f: PUSH1 0x00
00004231: DUP4
00004232: MLOAD
00004233: PUSH1 0x20
00004235: DUP6
00004236: ADD
00004237: PUSH1 0x02
00004239: GAS
0000423a: STATICCALL
0000423b: POP
0000423c: PUSH1 0x20
0000423e: PUSH1 0x00
00004240: PUSH1 0x20
00004242: PUSH1 0x00
00004244: PUSH1 0x02
00004246: GAS
00004247: STATICCALL
00004248: POP
00004249: POP
0000424a: PUSH1 0x00
0000424c: MLOAD
0000424d: SWAP2
0000424e: SWAP1
0000424f: POP
00004250: JUMP
00004251: JUMPDEST
00004252: PUSH1 0x00
00004254: DUP1
00004255: DUP1
00004256: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
00004277: DUP5
00004278: GT
00004279: ISZERO
0000427a: PUSH2 0x428c
0000427d: JUMPI
0000427e: POP
0000427f: PUSH1 0x00
00004281: SWAP2
00004282: POP
00004283: PUSH1 0x03
00004285: SWAP1
00004286: POP
00004287: DUP3
00004288: PUSH2 0x4316
0000428b: JUMP
0000428c: JUMPDEST
0000428d: PUSH1 0x40
0000428f: DUP1
00004290: MLOAD
00004291: PUSH1 0x00
00004293: DUP1
00004294: DUP3
00004295: MSTORE
00004296: PUSH1 0x20
00004298: DUP3
00004299: ADD
0000429a: DUP1
0000429b: DUP5
0000429c: MSTORE
0000429d: DUP11
0000429e: SWAP1
0000429f: MSTORE
000042a0: PUSH1 0xff
000042a2: DUP10
000042a3: AND
000042a4: SWAP3
000042a5: DUP3
000042a6: ADD
000042a7: SWAP3
000042a8: SWAP1
000042a9: SWAP3
000042aa: MSTORE
000042ab: PUSH1 0x60
000042ad: DUP2
000042ae: ADD
000042af: DUP8
000042b0: SWAP1
000042b1: MSTORE
000042b2: PUSH1 0x80
000042b4: DUP2
000042b5: ADD
000042b6: DUP7
000042b7: SWAP1
000042b8: MSTORE
000042b9: PUSH1 0x01
000042bb: SWAP1
000042bc: PUSH1 0xa0
000042be: ADD
000042bf: PUSH1 0x20
000042c1: PUSH1 0x40
000042c3: MLOAD
000042c4: PUSH1 0x20
000042c6: DUP2
000042c7: SUB
000042c8: SWAP1
000042c9: DUP1
000042ca: DUP5
000042cb: SUB
000042cc: SWAP1
000042cd: DUP6
000042ce: GAS
000042cf: STATICCALL
000042d0: ISZERO
000042d1: DUP1
000042d2: ISZERO
000042d3: PUSH2 0x42e0
000042d6: JUMPI
000042d7: RETURNDATASIZE
000042d8: PUSH1 0x00
000042da: DUP1
000042db: RETURNDATACOPY
000042dc: RETURNDATASIZE
000042dd: PUSH1 0x00
000042df: REVERT
000042e0: JUMPDEST
000042e1: POP
000042e2: POP
000042e3: PUSH1 0x40
000042e5: MLOAD
000042e6: PUSH1 0x1f
000042e8: NOT
000042e9: ADD
000042ea: MLOAD
000042eb: SWAP2
000042ec: POP
000042ed: POP
000042ee: PUSH1 0x01
000042f0: PUSH1 0x01
000042f2: PUSH1 0xa0
000042f4: SHL
000042f5: SUB
000042f6: DUP2
000042f7: AND
000042f8: PUSH2 0x430c
000042fb: JUMPI
000042fc: POP
000042fd: PUSH1 0x00
000042ff: SWAP3
00004300: POP
00004301: PUSH1 0x01
00004303: SWAP2
00004304: POP
00004305: DUP3
00004306: SWAP1
00004307: POP
00004308: PUSH2 0x4316
0000430b: JUMP
0000430c: JUMPDEST
0000430d: SWAP3
0000430e: POP
0000430f: PUSH1 0x00
00004311: SWAP2
00004312: POP
00004313: DUP2
00004314: SWAP1
00004315: POP
00004316: JUMPDEST
00004317: SWAP5
00004318: POP
00004319: SWAP5
0000431a: POP
0000431b: SWAP5
0000431c: SWAP2
0000431d: POP
0000431e: POP
0000431f: JUMP
00004320: JUMPDEST
00004321: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00004342: SLOAD
00004343: PUSH9 0x010000000000000000
0000434d: SWAP1
0000434e: DIV
0000434f: PUSH1 0xff
00004351: AND
00004352: PUSH2 0x12a8
00004355: JUMPI
00004356: PUSH1 0x40
00004358: MLOAD
00004359: PUSH32 0xd7e6bcf800000000000000000000000000000000000000000000000000000000
0000437a: DUP2
0000437b: MSTORE
0000437c: PUSH1 0x04
0000437e: ADD
0000437f: PUSH1 0x40
00004381: MLOAD
00004382: DUP1
00004383: SWAP2
00004384: SUB
00004385: SWAP1
00004386: REVERT
00004387: JUMPDEST
00004388: PUSH2 0x438f
0000438b: PUSH2 0x4320
0000438e: JUMP
0000438f: JUMPDEST
00004390: PUSH1 0x01
00004392: PUSH1 0x01
00004394: PUSH1 0xa0
00004396: SHL
00004397: SUB
00004398: DUP2
00004399: AND
0000439a: PUSH2 0x16be
0000439d: JUMPI
0000439e: PUSH1 0x40
000043a0: MLOAD
000043a1: PUSH32 0x1e4fbdf700000000000000000000000000000000000000000000000000000000
000043c2: DUP2
000043c3: MSTORE
000043c4: PUSH1 0x00
000043c6: PUSH1 0x04
000043c8: DUP3
000043c9: ADD
000043ca: MSTORE
000043cb: PUSH1 0x24
000043cd: ADD
000043ce: PUSH2 0x0907
000043d1: JUMP
000043d2: JUMPDEST
000043d3: PUSH2 0x3084
000043d6: PUSH2 0x4320
000043d9: JUMP
000043da: JUMPDEST
000043db: PUSH1 0x60
000043dd: DUP2
000043de: SELFBALANCE
000043df: LT
000043e0: ISZERO
000043e1: PUSH2 0x4418
000043e4: JUMPI
000043e5: PUSH1 0x40
000043e7: MLOAD
000043e8: PUSH32 0xcd78605900000000000000000000000000000000000000000000000000000000
00004409: DUP2
0000440a: MSTORE
0000440b: ADDRESS
0000440c: PUSH1 0x04
0000440e: DUP3
0000440f: ADD
00004410: MSTORE
00004411: PUSH1 0x24
00004413: ADD
00004414: PUSH2 0x0907
00004417: JUMP
00004418: JUMPDEST
00004419: PUSH1 0x00
0000441b: DUP1
0000441c: DUP6
0000441d: PUSH1 0x01
0000441f: PUSH1 0x01
00004421: PUSH1 0xa0
00004423: SHL
00004424: SUB
00004425: AND
00004426: DUP5
00004427: DUP7
00004428: PUSH1 0x40
0000442a: MLOAD
0000442b: PUSH2 0x4434
0000442e: SWAP2
0000442f: SWAP1
00004430: PUSH2 0x5618
00004433: JUMP
00004434: JUMPDEST
00004435: PUSH1 0x00
00004437: PUSH1 0x40
00004439: MLOAD
0000443a: DUP1
0000443b: DUP4
0000443c: SUB
0000443d: DUP2
0000443e: DUP6
0000443f: DUP8
00004440: GAS
00004441: CALL
00004442: SWAP3
00004443: POP
00004444: POP
00004445: POP
00004446: RETURNDATASIZE
00004447: DUP1
00004448: PUSH1 0x00
0000444a: DUP2
0000444b: EQ
0000444c: PUSH2 0x4471
0000444f: JUMPI
00004450: PUSH1 0x40
00004452: MLOAD
00004453: SWAP2
00004454: POP
00004455: PUSH1 0x1f
00004457: NOT
00004458: PUSH1 0x3f
0000445a: RETURNDATASIZE
0000445b: ADD
0000445c: AND
0000445d: DUP3
0000445e: ADD
0000445f: PUSH1 0x40
00004461: MSTORE
00004462: RETURNDATASIZE
00004463: DUP3
00004464: MSTORE
00004465: RETURNDATASIZE
00004466: PUSH1 0x00
00004468: PUSH1 0x20
0000446a: DUP5
0000446b: ADD
0000446c: RETURNDATACOPY
0000446d: PUSH2 0x4476
00004470: JUMP
00004471: JUMPDEST
00004472: PUSH1 0x60
00004474: SWAP2
00004475: POP
00004476: JUMPDEST
00004477: POP
00004478: SWAP2
00004479: POP
0000447a: SWAP2
0000447b: POP
0000447c: PUSH2 0x4486
0000447f: DUP7
00004480: DUP4
00004481: DUP4
00004482: PUSH2 0x4490
00004485: JUMP
00004486: JUMPDEST
00004487: SWAP7
00004488: SWAP6
00004489: POP
0000448a: POP
0000448b: POP
0000448c: POP
0000448d: POP
0000448e: POP
0000448f: JUMP
00004490: JUMPDEST
00004491: PUSH1 0x60
00004493: DUP3
00004494: PUSH2 0x44a5
00004497: JUMPI
00004498: PUSH2 0x44a0
0000449b: DUP3
0000449c: PUSH2 0x4505
0000449f: JUMP
000044a0: JUMPDEST
000044a1: PUSH2 0x34aa
000044a4: JUMP
000044a5: JUMPDEST
000044a6: DUP2
000044a7: MLOAD
000044a8: ISZERO
000044a9: DUP1
000044aa: ISZERO
000044ab: PUSH2 0x44bc
000044ae: JUMPI
000044af: POP
000044b0: PUSH1 0x01
000044b2: PUSH1 0x01
000044b4: PUSH1 0xa0
000044b6: SHL
000044b7: SUB
000044b8: DUP5
000044b9: AND
000044ba: EXTCODESIZE
000044bb: ISZERO
000044bc: JUMPDEST
000044bd: ISZERO
000044be: PUSH2 0x44fe
000044c1: JUMPI
000044c2: PUSH1 0x40
000044c4: MLOAD
000044c5: PUSH32 0x9996b31500000000000000000000000000000000000000000000000000000000
000044e6: DUP2
000044e7: MSTORE
000044e8: PUSH1 0x01
000044ea: PUSH1 0x01
000044ec: PUSH1 0xa0
000044ee: SHL
000044ef: SUB
000044f0: DUP6
000044f1: AND
000044f2: PUSH1 0x04
000044f4: DUP3
000044f5: ADD
000044f6: MSTORE
000044f7: PUSH1 0x24
000044f9: ADD
000044fa: PUSH2 0x0907
000044fd: JUMP
000044fe: JUMPDEST
000044ff: POP
00004500: DUP1
00004501: PUSH2 0x34aa
00004504: JUMP
00004505: JUMPDEST
00004506: DUP1
00004507: MLOAD
00004508: ISZERO
00004509: PUSH2 0x4515
0000450c: JUMPI
0000450d: DUP1
0000450e: MLOAD
0000450f: DUP1
00004510: DUP3
00004511: PUSH1 0x20
00004513: ADD
00004514: REVERT
00004515: JUMPDEST
00004516: PUSH1 0x40
00004518: MLOAD
00004519: PUSH32 0x1425ea4200000000000000000000000000000000000000000000000000000000
0000453a: DUP2
0000453b: MSTORE
0000453c: PUSH1 0x04
0000453e: ADD
0000453f: PUSH1 0x40
00004541: MLOAD
00004542: DUP1
00004543: SWAP2
00004544: SUB
00004545: SWAP1
00004546: REVERT
00004547: JUMPDEST
00004548: PUSH1 0x01
0000454a: PUSH1 0x01
0000454c: PUSH1 0xa0
0000454e: SHL
0000454f: SUB
00004550: DUP2
00004551: AND
00004552: DUP2
00004553: EQ
00004554: PUSH2 0x16c7
00004557: JUMPI
00004558: PUSH1 0x00
0000455a: DUP1
0000455b: REVERT
0000455c: JUMPDEST
0000455d: DUP1
0000455e: CALLDATALOAD
0000455f: PUSH2 0x2f56
00004562: DUP2
00004563: PUSH2 0x4547
00004566: JUMP
00004567: JUMPDEST
00004568: PUSH1 0x00
0000456a: PUSH1 0x20
0000456c: DUP3
0000456d: DUP5
0000456e: SUB
0000456f: SLT
00004570: ISZERO
00004571: PUSH2 0x4579
00004574: JUMPI
00004575: PUSH1 0x00
00004577: DUP1
00004578: REVERT
00004579: JUMPDEST
0000457a: DUP2
0000457b: CALLDATALOAD
0000457c: PUSH2 0x34aa
0000457f: DUP2
00004580: PUSH2 0x4547
00004583: JUMP
00004584: JUMPDEST
00004585: PUSH1 0x00
00004587: PUSH1 0x20
00004589: DUP3
0000458a: DUP5
0000458b: SUB
0000458c: SLT
0000458d: ISZERO
0000458e: PUSH2 0x4596
00004591: JUMPI
00004592: PUSH1 0x00
00004594: DUP1
00004595: REVERT
00004596: JUMPDEST
00004597: POP
00004598: CALLDATALOAD
00004599: SWAP2
0000459a: SWAP1
0000459b: POP
0000459c: JUMP
0000459d: JUMPDEST
0000459e: PUSH1 0x00
000045a0: DUP1
000045a1: PUSH1 0x40
000045a3: DUP4
000045a4: DUP6
000045a5: SUB
000045a6: SLT
000045a7: ISZERO
000045a8: PUSH2 0x45b0
000045ab: JUMPI
000045ac: PUSH1 0x00
000045ae: DUP1
000045af: REVERT
000045b0: JUMPDEST
000045b1: DUP3
000045b2: CALLDATALOAD
000045b3: SWAP2
000045b4: POP
000045b5: PUSH1 0x20
000045b7: DUP4
000045b8: ADD
000045b9: CALLDATALOAD
000045ba: PUSH2 0x45c2
000045bd: DUP2
000045be: PUSH2 0x4547
000045c1: JUMP
000045c2: JUMPDEST
000045c3: DUP1
000045c4: SWAP2
000045c5: POP
000045c6: POP
000045c7: SWAP3
000045c8: POP
000045c9: SWAP3
000045ca: SWAP1
000045cb: POP
000045cc: JUMP
000045cd: JUMPDEST
000045ce: DUP1
000045cf: CALLDATALOAD
000045d0: PUSH1 0xff
000045d2: DUP2
000045d3: AND
000045d4: DUP2
000045d5: EQ
000045d6: PUSH2 0x2f56
000045d9: JUMPI
000045da: PUSH1 0x00
000045dc: DUP1
000045dd: REVERT
000045de: JUMPDEST
000045df: PUSH1 0x00
000045e1: DUP1
000045e2: PUSH1 0x00
000045e4: DUP1
000045e5: PUSH1 0x00
000045e7: DUP1
000045e8: PUSH1 0xc0
000045ea: DUP8
000045eb: DUP10
000045ec: SUB
000045ed: SLT
000045ee: ISZERO
000045ef: PUSH2 0x45f7
000045f2: JUMPI
000045f3: PUSH1 0x00
000045f5: DUP1
000045f6: REVERT
000045f7: JUMPDEST
000045f8: DUP7
000045f9: CALLDATALOAD
000045fa: SWAP6
000045fb: POP
000045fc: PUSH1 0x20
000045fe: DUP8
000045ff: ADD
00004600: CALLDATALOAD
00004601: PUSH2 0x4609
00004604: DUP2
00004605: PUSH2 0x4547
00004608: JUMP
00004609: JUMPDEST
0000460a: SWAP5
0000460b: POP
0000460c: PUSH1 0x40
0000460e: DUP8
0000460f: ADD
00004610: CALLDATALOAD
00004611: SWAP4
00004612: POP
00004613: PUSH2 0x461e
00004616: PUSH1 0x60
00004618: DUP9
00004619: ADD
0000461a: PUSH2 0x45cd
0000461d: JUMP
0000461e: JUMPDEST
0000461f: SWAP3
00004620: POP
00004621: PUSH1 0x80
00004623: DUP8
00004624: ADD
00004625: CALLDATALOAD
00004626: SWAP2
00004627: POP
00004628: PUSH1 0xa0
0000462a: DUP8
0000462b: ADD
0000462c: CALLDATALOAD
0000462d: SWAP1
0000462e: POP
0000462f: SWAP3
00004630: SWAP6
00004631: POP
00004632: SWAP3
00004633: SWAP6
00004634: POP
00004635: SWAP3
00004636: SWAP6
00004637: JUMP
00004638: JUMPDEST
00004639: PUSH1 0x00
0000463b: DUP1
0000463c: PUSH1 0x40
0000463e: DUP4
0000463f: DUP6
00004640: SUB
00004641: SLT
00004642: ISZERO
00004643: PUSH2 0x464b
00004646: JUMPI
00004647: PUSH1 0x00
00004649: DUP1
0000464a: REVERT
0000464b: JUMPDEST
0000464c: DUP3
0000464d: CALLDATALOAD
0000464e: PUSH2 0x4656
00004651: DUP2
00004652: PUSH2 0x4547
00004655: JUMP
00004656: JUMPDEST
00004657: SWAP5
00004658: PUSH1 0x20
0000465a: SWAP4
0000465b: SWAP1
0000465c: SWAP4
0000465d: ADD
0000465e: CALLDATALOAD
0000465f: SWAP4
00004660: POP
00004661: POP
00004662: POP
00004663: JUMP
00004664: JUMPDEST
00004665: PUSH1 0x00
00004667: DUP1
00004668: PUSH1 0x00
0000466a: PUSH1 0x60
0000466c: DUP5
0000466d: DUP7
0000466e: SUB
0000466f: SLT
00004670: ISZERO
00004671: PUSH2 0x4679
00004674: JUMPI
00004675: PUSH1 0x00
00004677: DUP1
00004678: REVERT
00004679: JUMPDEST
0000467a: DUP4
0000467b: CALLDATALOAD
0000467c: PUSH2 0x4684
0000467f: DUP2
00004680: PUSH2 0x4547
00004683: JUMP
00004684: JUMPDEST
00004685: SWAP3
00004686: POP
00004687: PUSH1 0x20
00004689: DUP5
0000468a: ADD
0000468b: CALLDATALOAD
0000468c: SWAP2
0000468d: POP
0000468e: PUSH1 0x40
00004690: DUP5
00004691: ADD
00004692: CALLDATALOAD
00004693: PUSH2 0x469b
00004696: DUP2
00004697: PUSH2 0x4547
0000469a: JUMP
0000469b: JUMPDEST
0000469c: DUP1
0000469d: SWAP2
0000469e: POP
0000469f: POP
000046a0: SWAP3
000046a1: POP
000046a2: SWAP3
000046a3: POP
000046a4: SWAP3
000046a5: JUMP
000046a6: JUMPDEST
000046a7: PUSH1 0x00
000046a9: DUP1
000046aa: PUSH1 0x00
000046ac: DUP4
000046ad: DUP6
000046ae: SUB
000046af: PUSH2 0x0100
000046b2: DUP2
000046b3: SLT
000046b4: ISZERO
000046b5: PUSH2 0x46bd
000046b8: JUMPI
000046b9: PUSH1 0x00
000046bb: DUP1
000046bc: REVERT
000046bd: JUMPDEST
000046be: DUP5
000046bf: CALLDATALOAD
000046c0: PUSH8 0xffffffffffffffff
000046c9: DUP2
000046ca: GT
000046cb: ISZERO
000046cc: PUSH2 0x46d4
000046cf: JUMPI
000046d0: PUSH1 0x00
000046d2: DUP1
000046d3: REVERT
000046d4: JUMPDEST
000046d5: DUP6
000046d6: ADD
000046d7: PUSH1 0x80
000046d9: DUP2
000046da: DUP9
000046db: SUB
000046dc: SLT
000046dd: ISZERO
000046de: PUSH2 0x46e6
000046e1: JUMPI
000046e2: PUSH1 0x00
000046e4: DUP1
000046e5: REVERT
000046e6: JUMPDEST
000046e7: SWAP4
000046e8: POP
000046e9: PUSH1 0xc0
000046eb: PUSH1 0x1f
000046ed: NOT
000046ee: DUP3
000046ef: ADD
000046f0: SLT
000046f1: ISZERO
000046f2: PUSH2 0x46fa
000046f5: JUMPI
000046f6: PUSH1 0x00
000046f8: DUP1
000046f9: REVERT
000046fa: JUMPDEST
000046fb: POP
000046fc: PUSH1 0x20
000046fe: DUP5
000046ff: ADD
00004700: SWAP2
00004701: POP
00004702: PUSH1 0xe0
00004704: DUP5
00004705: ADD
00004706: CALLDATALOAD
00004707: PUSH2 0x469b
0000470a: DUP2
0000470b: PUSH2 0x4547
0000470e: JUMP
0000470f: JUMPDEST
00004710: PUSH1 0x00
00004712: PUSH1 0xa0
00004714: DUP3
00004715: DUP5
00004716: SUB
00004717: SLT
00004718: ISZERO
00004719: PUSH2 0x4721
0000471c: JUMPI
0000471d: PUSH1 0x00
0000471f: DUP1
00004720: REVERT
00004721: JUMPDEST
00004722: POP
00004723: SWAP2
00004724: SWAP1
00004725: POP
00004726: JUMP
00004727: JUMPDEST
00004728: DUP1
00004729: CALLDATALOAD
0000472a: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
0000474b: DUP2
0000474c: AND
0000474d: DUP2
0000474e: EQ
0000474f: PUSH2 0x2f56
00004752: JUMPI
00004753: PUSH1 0x00
00004755: DUP1
00004756: REVERT
00004757: JUMPDEST
00004758: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00004779: PUSH1 0x00
0000477b: MSTORE
0000477c: PUSH1 0x41
0000477e: PUSH1 0x04
00004780: MSTORE
00004781: PUSH1 0x24
00004783: PUSH1 0x00
00004785: REVERT
00004786: JUMPDEST
00004787: PUSH1 0x40
00004789: MLOAD
0000478a: PUSH1 0xa0
0000478c: DUP2
0000478d: ADD
0000478e: PUSH8 0xffffffffffffffff
00004797: DUP2
00004798: GT
00004799: DUP3
0000479a: DUP3
0000479b: LT
0000479c: OR
0000479d: ISZERO
0000479e: PUSH2 0x47a9
000047a1: JUMPI
000047a2: PUSH2 0x47a9
000047a5: PUSH2 0x4757
000047a8: JUMP
000047a9: JUMPDEST
000047aa: PUSH1 0x40
000047ac: MSTORE
000047ad: SWAP1
000047ae: JUMP
000047af: JUMPDEST
000047b0: PUSH1 0x40
000047b2: MLOAD
000047b3: PUSH1 0x1f
000047b5: DUP3
000047b6: ADD
000047b7: PUSH1 0x1f
000047b9: NOT
000047ba: AND
000047bb: DUP2
000047bc: ADD
000047bd: PUSH8 0xffffffffffffffff
000047c6: DUP2
000047c7: GT
000047c8: DUP3
000047c9: DUP3
000047ca: LT
000047cb: OR
000047cc: ISZERO
000047cd: PUSH2 0x47d8
000047d0: JUMPI
000047d1: PUSH2 0x47d8
000047d4: PUSH2 0x4757
000047d7: JUMP
000047d8: JUMPDEST
000047d9: PUSH1 0x40
000047db: MSTORE
000047dc: SWAP2
000047dd: SWAP1
000047de: POP
000047df: JUMP
000047e0: JUMPDEST
000047e1: PUSH4 0xffffffff
000047e6: DUP2
000047e7: AND
000047e8: DUP2
000047e9: EQ
000047ea: PUSH2 0x16c7
000047ed: JUMPI
000047ee: PUSH1 0x00
000047f0: DUP1
000047f1: REVERT
000047f2: JUMPDEST
000047f3: PUSH8 0xffffffffffffffff
000047fc: DUP2
000047fd: AND
000047fe: DUP2
000047ff: EQ
00004800: PUSH2 0x16c7
00004803: JUMPI
00004804: PUSH1 0x00
00004806: DUP1
00004807: REVERT
00004808: JUMPDEST
00004809: PUSH1 0x00
0000480b: DUP1
0000480c: PUSH1 0x00
0000480e: DUP4
0000480f: DUP6
00004810: SUB
00004811: PUSH1 0xa0
00004813: DUP2
00004814: SLT
00004815: ISZERO
00004816: PUSH2 0x481e
00004819: JUMPI
0000481a: PUSH1 0x00
0000481c: DUP1
0000481d: REVERT
0000481e: JUMPDEST
0000481f: DUP5
00004820: CALLDATALOAD
00004821: PUSH8 0xffffffffffffffff
0000482a: DUP1
0000482b: DUP3
0000482c: GT
0000482d: ISZERO
0000482e: PUSH2 0x4836
00004831: JUMPI
00004832: PUSH1 0x00
00004834: DUP1
00004835: REVERT
00004836: JUMPDEST
00004837: PUSH2 0x4842
0000483a: DUP9
0000483b: DUP4
0000483c: DUP10
0000483d: ADD
0000483e: PUSH2 0x470f
00004841: JUMP
00004842: JUMPDEST
00004843: SWAP6
00004844: POP
00004845: PUSH2 0x4850
00004848: PUSH1 0x20
0000484a: DUP9
0000484b: ADD
0000484c: PUSH2 0x4727
0000484f: JUMP
00004850: JUMPDEST
00004851: SWAP5
00004852: POP
00004853: PUSH1 0x60
00004855: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0
00004876: DUP5
00004877: ADD
00004878: SLT
00004879: ISZERO
0000487a: PUSH2 0x4882
0000487d: JUMPI
0000487e: PUSH1 0x00
00004880: DUP1
00004881: REVERT
00004882: JUMPDEST
00004883: PUSH1 0x40
00004885: MLOAD
00004886: SWAP3
00004887: POP
00004888: PUSH1 0x60
0000488a: DUP4
0000488b: ADD
0000488c: SWAP2
0000488d: POP
0000488e: DUP3
0000488f: DUP3
00004890: LT
00004891: DUP2
00004892: DUP4
00004893: GT
00004894: OR
00004895: ISZERO
00004896: PUSH2 0x48a1
00004899: JUMPI
0000489a: PUSH2 0x48a1
0000489d: PUSH2 0x4757
000048a0: JUMP
000048a1: JUMPDEST
000048a2: POP
000048a3: PUSH1 0x40
000048a5: SWAP1
000048a6: DUP2
000048a7: MSTORE
000048a8: DUP6
000048a9: ADD
000048aa: CALLDATALOAD
000048ab: DUP2
000048ac: MSTORE
000048ad: PUSH1 0x60
000048af: DUP6
000048b0: ADD
000048b1: CALLDATALOAD
000048b2: PUSH2 0x48ba
000048b5: DUP2
000048b6: PUSH2 0x47e0
000048b9: JUMP
000048ba: JUMPDEST
000048bb: PUSH1 0x20
000048bd: DUP3
000048be: ADD
000048bf: MSTORE
000048c0: PUSH1 0x80
000048c2: DUP6
000048c3: ADD
000048c4: CALLDATALOAD
000048c5: PUSH2 0x48cd
000048c8: DUP2
000048c9: PUSH2 0x47f2
000048cc: JUMP
000048cd: JUMPDEST
000048ce: PUSH1 0x40
000048d0: DUP3
000048d1: ADD
000048d2: MSTORE
000048d3: SWAP3
000048d4: SWAP6
000048d5: SWAP2
000048d6: SWAP5
000048d7: POP
000048d8: SWAP2
000048d9: SWAP3
000048da: POP
000048db: SWAP1
000048dc: POP
000048dd: JUMP
000048de: JUMPDEST
000048df: PUSH1 0x00
000048e1: PUSH1 0xa0
000048e3: DUP3
000048e4: DUP5
000048e5: SUB
000048e6: SLT
000048e7: ISZERO
000048e8: PUSH2 0x48f0
000048eb: JUMPI
000048ec: PUSH1 0x00
000048ee: DUP1
000048ef: REVERT
000048f0: JUMPDEST
000048f1: PUSH2 0x48f8
000048f4: PUSH2 0x4786
000048f7: JUMP
000048f8: JUMPDEST
000048f9: SWAP1
000048fa: POP
000048fb: DUP2
000048fc: CALLDATALOAD
000048fd: DUP2
000048fe: MSTORE
000048ff: PUSH1 0x20
00004901: DUP1
00004902: DUP4
00004903: ADD
00004904: CALLDATALOAD
00004905: PUSH8 0xffffffffffffffff
0000490e: DUP1
0000490f: DUP3
00004910: GT
00004911: ISZERO
00004912: PUSH2 0x491a
00004915: JUMPI
00004916: PUSH1 0x00
00004918: DUP1
00004919: REVERT
0000491a: JUMPDEST
0000491b: DUP2
0000491c: DUP6
0000491d: ADD
0000491e: SWAP2
0000491f: POP
00004920: DUP6
00004921: PUSH1 0x1f
00004923: DUP4
00004924: ADD
00004925: SLT
00004926: PUSH2 0x492e
00004929: JUMPI
0000492a: PUSH1 0x00
0000492c: DUP1
0000492d: REVERT
0000492e: JUMPDEST
0000492f: DUP2
00004930: CALLDATALOAD
00004931: DUP2
00004932: DUP2
00004933: GT
00004934: ISZERO
00004935: PUSH2 0x4940
00004938: JUMPI
00004939: PUSH2 0x4940
0000493c: PUSH2 0x4757
0000493f: JUMP
00004940: JUMPDEST
00004941: PUSH2 0x4952
00004944: DUP5
00004945: PUSH1 0x1f
00004947: NOT
00004948: PUSH1 0x1f
0000494a: DUP5
0000494b: ADD
0000494c: AND
0000494d: ADD
0000494e: PUSH2 0x47af
00004951: JUMP
00004952: JUMPDEST
00004953: SWAP2
00004954: POP
00004955: DUP1
00004956: DUP3
00004957: MSTORE
00004958: DUP7
00004959: DUP5
0000495a: DUP3
0000495b: DUP6
0000495c: ADD
0000495d: ADD
0000495e: GT
0000495f: ISZERO
00004960: PUSH2 0x4968
00004963: JUMPI
00004964: PUSH1 0x00
00004966: DUP1
00004967: REVERT
00004968: JUMPDEST
00004969: DUP1
0000496a: DUP5
0000496b: DUP5
0000496c: ADD
0000496d: DUP6
0000496e: DUP5
0000496f: ADD
00004970: CALLDATACOPY
00004971: PUSH1 0x00
00004973: SWAP1
00004974: DUP3
00004975: ADD
00004976: DUP5
00004977: ADD
00004978: MSTORE
00004979: SWAP2
0000497a: DUP4
0000497b: ADD
0000497c: SWAP2
0000497d: SWAP1
0000497e: SWAP2
0000497f: MSTORE
00004980: POP
00004981: PUSH2 0x498c
00004984: PUSH1 0x40
00004986: DUP4
00004987: ADD
00004988: PUSH2 0x455c
0000498b: JUMP
0000498c: JUMPDEST
0000498d: PUSH1 0x40
0000498f: DUP3
00004990: ADD
00004991: MSTORE
00004992: PUSH1 0x60
00004994: DUP3
00004995: ADD
00004996: CALLDATALOAD
00004997: PUSH1 0x60
00004999: DUP3
0000499a: ADD
0000499b: MSTORE
0000499c: PUSH2 0x49a7
0000499f: PUSH1 0x80
000049a1: DUP4
000049a2: ADD
000049a3: PUSH2 0x45cd
000049a6: JUMP
000049a7: JUMPDEST
000049a8: PUSH1 0x80
000049aa: DUP3
000049ab: ADD
000049ac: MSTORE
000049ad: SWAP3
000049ae: SWAP2
000049af: POP
000049b0: POP
000049b1: JUMP
000049b2: JUMPDEST
000049b3: PUSH1 0x00
000049b5: PUSH1 0x20
000049b7: DUP3
000049b8: DUP5
000049b9: SUB
000049ba: SLT
000049bb: ISZERO
000049bc: PUSH2 0x49c4
000049bf: JUMPI
000049c0: PUSH1 0x00
000049c2: DUP1
000049c3: REVERT
000049c4: JUMPDEST
000049c5: DUP2
000049c6: CALLDATALOAD
000049c7: PUSH8 0xffffffffffffffff
000049d0: DUP2
000049d1: GT
000049d2: ISZERO
000049d3: PUSH2 0x49db
000049d6: JUMPI
000049d7: PUSH1 0x00
000049d9: DUP1
000049da: REVERT
000049db: JUMPDEST
000049dc: PUSH2 0x49e7
000049df: DUP5
000049e0: DUP3
000049e1: DUP6
000049e2: ADD
000049e3: PUSH2 0x48de
000049e6: JUMP
000049e7: JUMPDEST
000049e8: SWAP5
000049e9: SWAP4
000049ea: POP
000049eb: POP
000049ec: POP
000049ed: POP
000049ee: JUMP
000049ef: JUMPDEST
000049f0: PUSH1 0x00
000049f2: PUSH1 0x20
000049f4: DUP3
000049f5: DUP5
000049f6: SUB
000049f7: SLT
000049f8: ISZERO
000049f9: PUSH2 0x4a01
000049fc: JUMPI
000049fd: PUSH1 0x00
000049ff: DUP1
00004a00: REVERT
00004a01: JUMPDEST
00004a02: DUP2
00004a03: CALLDATALOAD
00004a04: PUSH8 0xffffffffffffffff
00004a0d: DUP2
00004a0e: GT
00004a0f: ISZERO
00004a10: PUSH2 0x4a18
00004a13: JUMPI
00004a14: PUSH1 0x00
00004a16: DUP1
00004a17: REVERT
00004a18: JUMPDEST
00004a19: PUSH2 0x49e7
00004a1c: DUP5
00004a1d: DUP3
00004a1e: DUP6
00004a1f: ADD
00004a20: PUSH2 0x470f
00004a23: JUMP
00004a24: JUMPDEST
00004a25: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00004a46: PUSH1 0x00
00004a48: MSTORE
00004a49: PUSH1 0x21
00004a4b: PUSH1 0x04
00004a4d: MSTORE
00004a4e: PUSH1 0x24
00004a50: PUSH1 0x00
00004a52: REVERT
00004a53: JUMPDEST
00004a54: PUSH1 0x03
00004a56: DUP2
00004a57: LT
00004a58: PUSH2 0x4a8a
00004a5b: JUMPI
00004a5c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00004a7d: PUSH1 0x00
00004a7f: MSTORE
00004a80: PUSH1 0x21
00004a82: PUSH1 0x04
00004a84: MSTORE
00004a85: PUSH1 0x24
00004a87: PUSH1 0x00
00004a89: REVERT
00004a8a: JUMPDEST
00004a8b: SWAP1
00004a8c: MSTORE
00004a8d: JUMP
00004a8e: JUMPDEST
00004a8f: PUSH1 0x20
00004a91: DUP2
00004a92: ADD
00004a93: PUSH2 0x0ae6
00004a96: DUP3
00004a97: DUP5
00004a98: PUSH2 0x4a53
00004a9b: JUMP
00004a9c: JUMPDEST
00004a9d: PUSH1 0x00
00004a9f: DUP1
00004aa0: DUP4
00004aa1: PUSH1 0x1f
00004aa3: DUP5
00004aa4: ADD
00004aa5: SLT
00004aa6: PUSH2 0x4aae
00004aa9: JUMPI
00004aaa: PUSH1 0x00
00004aac: DUP1
00004aad: REVERT
00004aae: JUMPDEST
00004aaf: POP
00004ab0: DUP2
00004ab1: CALLDATALOAD
00004ab2: PUSH8 0xffffffffffffffff
00004abb: DUP2
00004abc: GT
00004abd: ISZERO
00004abe: PUSH2 0x4ac6
00004ac1: JUMPI
00004ac2: PUSH1 0x00
00004ac4: DUP1
00004ac5: REVERT
00004ac6: JUMPDEST
00004ac7: PUSH1 0x20
00004ac9: DUP4
00004aca: ADD
00004acb: SWAP2
00004acc: POP
00004acd: DUP4
00004ace: PUSH1 0x20
00004ad0: DUP3
00004ad1: DUP6
00004ad2: ADD
00004ad3: ADD
00004ad4: GT
00004ad5: ISZERO
00004ad6: PUSH2 0x4ade
00004ad9: JUMPI
00004ada: PUSH1 0x00
00004adc: DUP1
00004add: REVERT
00004ade: JUMPDEST
00004adf: SWAP3
00004ae0: POP
00004ae1: SWAP3
00004ae2: SWAP1
00004ae3: POP
00004ae4: JUMP
00004ae5: JUMPDEST
00004ae6: PUSH1 0x00
00004ae8: DUP1
00004ae9: PUSH1 0x00
00004aeb: PUSH1 0x40
00004aed: DUP5
00004aee: DUP7
00004aef: SUB
00004af0: SLT
00004af1: ISZERO
00004af2: PUSH2 0x4afa
00004af5: JUMPI
00004af6: PUSH1 0x00
00004af8: DUP1
00004af9: REVERT
00004afa: JUMPDEST
00004afb: DUP4
00004afc: CALLDATALOAD
00004afd: PUSH8 0xffffffffffffffff
00004b06: DUP1
00004b07: DUP3
00004b08: GT
00004b09: ISZERO
00004b0a: PUSH2 0x4b12
00004b0d: JUMPI
00004b0e: PUSH1 0x00
00004b10: DUP1
00004b11: REVERT
00004b12: JUMPDEST
00004b13: PUSH2 0x4b1e
00004b16: DUP8
00004b17: DUP4
00004b18: DUP9
00004b19: ADD
00004b1a: PUSH2 0x470f
00004b1d: JUMP
00004b1e: JUMPDEST
00004b1f: SWAP5
00004b20: POP
00004b21: PUSH1 0x20
00004b23: DUP7
00004b24: ADD
00004b25: CALLDATALOAD
00004b26: SWAP2
00004b27: POP
00004b28: DUP1
00004b29: DUP3
00004b2a: GT
00004b2b: ISZERO
00004b2c: PUSH2 0x4b34
00004b2f: JUMPI
00004b30: PUSH1 0x00
00004b32: DUP1
00004b33: REVERT
00004b34: JUMPDEST
00004b35: POP
00004b36: PUSH2 0x4b41
00004b39: DUP7
00004b3a: DUP3
00004b3b: DUP8
00004b3c: ADD
00004b3d: PUSH2 0x4a9c
00004b40: JUMP
00004b41: JUMPDEST
00004b42: SWAP5
00004b43: SWAP8
00004b44: SWAP1
00004b45: SWAP7
00004b46: POP
00004b47: SWAP4
00004b48: SWAP5
00004b49: POP
00004b4a: POP
00004b4b: POP
00004b4c: POP
00004b4d: JUMP
00004b4e: JUMPDEST
00004b4f: PUSH1 0x00
00004b51: DUP1
00004b52: PUSH1 0x20
00004b54: DUP4
00004b55: DUP6
00004b56: SUB
00004b57: SLT
00004b58: ISZERO
00004b59: PUSH2 0x4b61
00004b5c: JUMPI
00004b5d: PUSH1 0x00
00004b5f: DUP1
00004b60: REVERT
00004b61: JUMPDEST
00004b62: DUP3
00004b63: CALLDATALOAD
00004b64: PUSH8 0xffffffffffffffff
00004b6d: DUP2
00004b6e: GT
00004b6f: ISZERO
00004b70: PUSH2 0x4b78
00004b73: JUMPI
00004b74: PUSH1 0x00
00004b76: DUP1
00004b77: REVERT
00004b78: JUMPDEST
00004b79: PUSH2 0x4b84
00004b7c: DUP6
00004b7d: DUP3
00004b7e: DUP7
00004b7f: ADD
00004b80: PUSH2 0x4a9c
00004b83: JUMP
00004b84: JUMPDEST
00004b85: SWAP1
00004b86: SWAP7
00004b87: SWAP1
00004b88: SWAP6
00004b89: POP
00004b8a: SWAP4
00004b8b: POP
00004b8c: POP
00004b8d: POP
00004b8e: POP
00004b8f: JUMP
00004b90: JUMPDEST
00004b91: PUSH1 0x00
00004b93: DUP1
00004b94: PUSH1 0x00
00004b96: DUP1
00004b97: PUSH1 0x80
00004b99: DUP6
00004b9a: DUP8
00004b9b: SUB
00004b9c: SLT
00004b9d: ISZERO
00004b9e: PUSH2 0x4ba6
00004ba1: JUMPI
00004ba2: PUSH1 0x00
00004ba4: DUP1
00004ba5: REVERT
00004ba6: JUMPDEST
00004ba7: DUP5
00004ba8: CALLDATALOAD
00004ba9: PUSH2 0x4bb1
00004bac: DUP2
00004bad: PUSH2 0x4547
00004bb0: JUMP
00004bb1: JUMPDEST
00004bb2: SWAP4
00004bb3: POP
00004bb4: PUSH1 0x20
00004bb6: DUP6
00004bb7: ADD
00004bb8: CALLDATALOAD
00004bb9: PUSH2 0x4bc1
00004bbc: DUP2
00004bbd: PUSH2 0x4547
00004bc0: JUMP
00004bc1: JUMPDEST
00004bc2: SWAP3
00004bc3: POP
00004bc4: PUSH1 0x40
00004bc6: DUP6
00004bc7: ADD
00004bc8: CALLDATALOAD
00004bc9: PUSH2 0x4bd1
00004bcc: DUP2
00004bcd: PUSH2 0x4547
00004bd0: JUMP
00004bd1: JUMPDEST
00004bd2: SWAP4
00004bd3: SWAP7
00004bd4: SWAP3
00004bd5: SWAP6
00004bd6: POP
00004bd7: SWAP3
00004bd8: SWAP4
00004bd9: PUSH1 0x60
00004bdb: ADD
00004bdc: CALLDATALOAD
00004bdd: SWAP3
00004bde: POP
00004bdf: POP
00004be0: JUMP
00004be1: JUMPDEST
00004be2: PUSH1 0x40
00004be4: DUP2
00004be5: ADD
00004be6: PUSH2 0x4bef
00004be9: DUP3
00004bea: DUP6
00004beb: PUSH2 0x4a53
00004bee: JUMP
00004bef: JUMPDEST
00004bf0: PUSH2 0x34aa
00004bf3: PUSH1 0x20
00004bf5: DUP4
00004bf6: ADD
00004bf7: DUP5
00004bf8: PUSH2 0x4a53
00004bfb: JUMP
00004bfc: JUMPDEST
00004bfd: PUSH1 0x00
00004bff: PUSH1 0x20
00004c01: DUP3
00004c02: DUP5
00004c03: SUB
00004c04: SLT
00004c05: ISZERO
00004c06: PUSH2 0x4c0e
00004c09: JUMPI
00004c0a: PUSH1 0x00
00004c0c: DUP1
00004c0d: REVERT
00004c0e: JUMPDEST
00004c0f: POP
00004c10: MLOAD
00004c11: SWAP2
00004c12: SWAP1
00004c13: POP
00004c14: JUMP
00004c15: JUMPDEST
00004c16: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00004c37: PUSH1 0x00
00004c39: MSTORE
00004c3a: PUSH1 0x11
00004c3c: PUSH1 0x04
00004c3e: MSTORE
00004c3f: PUSH1 0x24
00004c41: PUSH1 0x00
00004c43: REVERT
00004c44: JUMPDEST
00004c45: DUP1
00004c46: DUP3
00004c47: MUL
00004c48: DUP2
00004c49: ISZERO
00004c4a: DUP3
00004c4b: DUP3
00004c4c: DIV
00004c4d: DUP5
00004c4e: EQ
00004c4f: OR
00004c50: PUSH2 0x0ae6
00004c53: JUMPI
00004c54: PUSH2 0x0ae6
00004c57: PUSH2 0x4c15
00004c5a: JUMP
00004c5b: JUMPDEST
00004c5c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00004c7d: PUSH1 0x00
00004c7f: MSTORE
00004c80: PUSH1 0x12
00004c82: PUSH1 0x04
00004c84: MSTORE
00004c85: PUSH1 0x24
00004c87: PUSH1 0x00
00004c89: REVERT
00004c8a: JUMPDEST
00004c8b: PUSH1 0x00
00004c8d: DUP3
00004c8e: PUSH2 0x4c99
00004c91: JUMPI
00004c92: PUSH2 0x4c99
00004c95: PUSH2 0x4c5b
00004c98: JUMP
00004c99: JUMPDEST
00004c9a: POP
00004c9b: DIV
00004c9c: SWAP1
00004c9d: JUMP
00004c9e: JUMPDEST
00004c9f: DUP1
00004ca0: DUP3
00004ca1: ADD
00004ca2: DUP1
00004ca3: DUP3
00004ca4: GT
00004ca5: ISZERO
00004ca6: PUSH2 0x0ae6
00004ca9: JUMPI
00004caa: PUSH2 0x0ae6
00004cad: PUSH2 0x4c15
00004cb0: JUMP
00004cb1: JUMPDEST
00004cb2: PUSH1 0x00
00004cb4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00004cd5: DUP3
00004cd6: SUB
00004cd7: PUSH2 0x4ce2
00004cda: JUMPI
00004cdb: PUSH2 0x4ce2
00004cde: PUSH2 0x4c15
00004ce1: JUMP
00004ce2: JUMPDEST
00004ce3: POP
00004ce4: PUSH1 0x01
00004ce6: ADD
00004ce7: SWAP1
00004ce8: JUMP
00004ce9: JUMPDEST
00004cea: PUSH1 0x00
00004cec: DUP2
00004ced: PUSH2 0x4cf8
00004cf0: JUMPI
00004cf1: PUSH2 0x4cf8
00004cf4: PUSH2 0x4c15
00004cf7: JUMP
00004cf8: JUMPDEST
00004cf9: POP
00004cfa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00004d1b: ADD
00004d1c: SWAP1
00004d1d: JUMP
00004d1e: JUMPDEST
00004d1f: PUSH1 0x00
00004d21: DUP1
00004d22: DUP4
00004d23: CALLDATALOAD
00004d24: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1
00004d45: DUP5
00004d46: CALLDATASIZE
00004d47: SUB
00004d48: ADD
00004d49: DUP2
00004d4a: SLT
00004d4b: PUSH2 0x4d53
00004d4e: JUMPI
00004d4f: PUSH1 0x00
00004d51: DUP1
00004d52: REVERT
00004d53: JUMPDEST
00004d54: DUP4
00004d55: ADD
00004d56: PUSH1 0x20
00004d58: DUP2
00004d59: ADD
00004d5a: SWAP3
00004d5b: POP
00004d5c: CALLDATALOAD
00004d5d: SWAP1
00004d5e: POP
00004d5f: PUSH8 0xffffffffffffffff
00004d68: DUP2
00004d69: GT
00004d6a: ISZERO
00004d6b: PUSH2 0x4d73
00004d6e: JUMPI
00004d6f: PUSH1 0x00
00004d71: DUP1
00004d72: REVERT
00004d73: JUMPDEST
00004d74: DUP1
00004d75: CALLDATASIZE
00004d76: SUB
00004d77: DUP3
00004d78: SGT
00004d79: ISZERO
00004d7a: PUSH2 0x4ade
00004d7d: JUMPI
00004d7e: PUSH1 0x00
00004d80: DUP1
00004d81: REVERT
00004d82: JUMPDEST
00004d83: DUP2
00004d84: DUP4
00004d85: MSTORE
00004d86: DUP2
00004d87: DUP2
00004d88: PUSH1 0x20
00004d8a: DUP6
00004d8b: ADD
00004d8c: CALLDATACOPY
00004d8d: POP
00004d8e: PUSH1 0x00
00004d90: PUSH1 0x20
00004d92: DUP3
00004d93: DUP5
00004d94: ADD
00004d95: ADD
00004d96: MSTORE
00004d97: PUSH1 0x00
00004d99: PUSH1 0x20
00004d9b: PUSH1 0x1f
00004d9d: NOT
00004d9e: PUSH1 0x1f
00004da0: DUP5
00004da1: ADD
00004da2: AND
00004da3: DUP5
00004da4: ADD
00004da5: ADD
00004da6: SWAP1
00004da7: POP
00004da8: SWAP3
00004da9: SWAP2
00004daa: POP
00004dab: POP
00004dac: JUMP
00004dad: JUMPDEST
00004dae: DUP1
00004daf: CALLDATALOAD
00004db0: DUP3
00004db1: MSTORE
00004db2: PUSH1 0x00
00004db4: PUSH2 0x4dc0
00004db7: PUSH1 0x20
00004db9: DUP4
00004dba: ADD
00004dbb: DUP4
00004dbc: PUSH2 0x4d1e
00004dbf: JUMP
00004dc0: JUMPDEST
00004dc1: PUSH1 0xa0
00004dc3: PUSH1 0x20
00004dc5: DUP7
00004dc6: ADD
00004dc7: MSTORE
00004dc8: PUSH2 0x4dd5
00004dcb: PUSH1 0xa0
00004dcd: DUP7
00004dce: ADD
00004dcf: DUP3
00004dd0: DUP5
00004dd1: PUSH2 0x4d82
00004dd4: JUMP
00004dd5: JUMPDEST
00004dd6: SWAP2
00004dd7: POP
00004dd8: POP
00004dd9: PUSH1 0x40
00004ddb: DUP4
00004ddc: ADD
00004ddd: CALLDATALOAD
00004dde: PUSH2 0x4de6
00004de1: DUP2
00004de2: PUSH2 0x4547
00004de5: JUMP
00004de6: JUMPDEST
00004de7: PUSH1 0x01
00004de9: PUSH1 0x01
00004deb: PUSH1 0xa0
00004ded: SHL
00004dee: SUB
00004def: AND
00004df0: PUSH1 0x40
00004df2: DUP6
00004df3: ADD
00004df4: MSTORE
00004df5: PUSH1 0x60
00004df7: DUP4
00004df8: DUP2
00004df9: ADD
00004dfa: CALLDATALOAD
00004dfb: SWAP1
00004dfc: DUP6
00004dfd: ADD
00004dfe: MSTORE
00004dff: PUSH1 0xff
00004e01: PUSH2 0x4e0c
00004e04: PUSH1 0x80
00004e06: DUP6
00004e07: ADD
00004e08: PUSH2 0x45cd
00004e0b: JUMP
00004e0c: JUMPDEST
00004e0d: AND
00004e0e: PUSH1 0x80
00004e10: DUP6
00004e11: ADD
00004e12: MSTORE
00004e13: DUP1
00004e14: SWAP2
00004e15: POP
00004e16: POP
00004e17: SWAP3
00004e18: SWAP2
00004e19: POP
00004e1a: POP
00004e1b: JUMP
00004e1c: JUMPDEST
00004e1d: PUSH1 0x20
00004e1f: DUP2
00004e20: MSTORE
00004e21: PUSH1 0x00
00004e23: PUSH2 0x34aa
00004e26: PUSH1 0x20
00004e28: DUP4
00004e29: ADD
00004e2a: DUP5
00004e2b: PUSH2 0x4dad
00004e2e: JUMP
00004e2f: JUMPDEST
00004e30: PUSH1 0x00
00004e32: DUP1
00004e33: DUP4
00004e34: CALLDATALOAD
00004e35: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1
00004e56: DUP5
00004e57: CALLDATASIZE
00004e58: SUB
00004e59: ADD
00004e5a: DUP2
00004e5b: SLT
00004e5c: PUSH2 0x4e64
00004e5f: JUMPI
00004e60: PUSH1 0x00
00004e62: DUP1
00004e63: REVERT
00004e64: JUMPDEST
00004e65: DUP4
00004e66: ADD
00004e67: DUP1
00004e68: CALLDATALOAD
00004e69: SWAP2
00004e6a: POP
00004e6b: PUSH8 0xffffffffffffffff
00004e74: DUP3
00004e75: GT
00004e76: ISZERO
00004e77: PUSH2 0x4e7f
00004e7a: JUMPI
00004e7b: PUSH1 0x00
00004e7d: DUP1
00004e7e: REVERT
00004e7f: JUMPDEST
00004e80: PUSH1 0x20
00004e82: ADD
00004e83: SWAP2
00004e84: POP
00004e85: CALLDATASIZE
00004e86: DUP2
00004e87: SWAP1
00004e88: SUB
00004e89: DUP3
00004e8a: SGT
00004e8b: ISZERO
00004e8c: PUSH2 0x4ade
00004e8f: JUMPI
00004e90: PUSH1 0x00
00004e92: DUP1
00004e93: REVERT
00004e94: JUMPDEST
00004e95: DUP2
00004e96: DUP2
00004e97: SUB
00004e98: DUP2
00004e99: DUP2
00004e9a: GT
00004e9b: ISZERO
00004e9c: PUSH2 0x0ae6
00004e9f: JUMPI
00004ea0: PUSH2 0x0ae6
00004ea3: PUSH2 0x4c15
00004ea6: JUMP
00004ea7: JUMPDEST
00004ea8: PUSH1 0x00
00004eaa: DUP2
00004eab: MLOAD
00004eac: PUSH1 0x20
00004eae: DUP4
00004eaf: ADD
00004eb0: MLOAD
00004eb1: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00004ed2: DUP1
00004ed3: DUP3
00004ed4: AND
00004ed5: SWAP4
00004ed6: POP
00004ed7: PUSH1 0x14
00004ed9: DUP4
00004eda: LT
00004edb: ISZERO
00004edc: PUSH2 0x4eef
00004edf: JUMPI
00004ee0: DUP1
00004ee1: DUP2
00004ee2: DUP5
00004ee3: PUSH1 0x14
00004ee5: SUB
00004ee6: PUSH1 0x03
00004ee8: SHL
00004ee9: SHL
00004eea: DUP4
00004eeb: AND
00004eec: AND
00004eed: SWAP4
00004eee: POP
00004eef: JUMPDEST
00004ef0: POP
00004ef1: POP
00004ef2: POP
00004ef3: SWAP2
00004ef4: SWAP1
00004ef5: POP
00004ef6: JUMP
00004ef7: JUMPDEST
00004ef8: PUSH1 0x00
00004efa: PUSH1 0x20
00004efc: DUP3
00004efd: DUP5
00004efe: SUB
00004eff: SLT
00004f00: ISZERO
00004f01: PUSH2 0x4f09
00004f04: JUMPI
00004f05: PUSH1 0x00
00004f07: DUP1
00004f08: REVERT
00004f09: JUMPDEST
00004f0a: PUSH2 0x34aa
00004f0d: DUP3
00004f0e: PUSH2 0x45cd
00004f11: JUMP
00004f12: JUMPDEST
00004f13: PUSH1 0x80
00004f15: DUP2
00004f16: MSTORE
00004f17: PUSH1 0x00
00004f19: PUSH2 0x4f26
00004f1c: PUSH1 0x80
00004f1e: DUP4
00004f1f: ADD
00004f20: DUP8
00004f21: DUP10
00004f22: PUSH2 0x4d82
00004f25: JUMP
00004f26: JUMPDEST
00004f27: PUSH1 0x01
00004f29: PUSH1 0x01
00004f2b: PUSH1 0xa0
00004f2d: SHL
00004f2e: SUB
00004f2f: SWAP6
00004f30: SWAP1
00004f31: SWAP6
00004f32: AND
00004f33: PUSH1 0x20
00004f35: DUP4
00004f36: ADD
00004f37: MSTORE
00004f38: POP
00004f39: PUSH1 0x40
00004f3b: DUP2
00004f3c: ADD
00004f3d: SWAP3
00004f3e: SWAP1
00004f3f: SWAP3
00004f40: MSTORE
00004f41: PUSH1 0xff
00004f43: AND
00004f44: PUSH1 0x60
00004f46: SWAP1
00004f47: SWAP2
00004f48: ADD
00004f49: MSTORE
00004f4a: SWAP3
00004f4b: SWAP2
00004f4c: POP
00004f4d: POP
00004f4e: JUMP
00004f4f: JUMPDEST
00004f50: PUSH1 0x00
00004f52: PUSH2 0x0ae6
00004f55: CALLDATASIZE
00004f56: DUP4
00004f57: PUSH2 0x48de
00004f5a: JUMP
00004f5b: JUMPDEST
00004f5c: DUP2
00004f5d: DUP4
00004f5e: DUP3
00004f5f: CALLDATACOPY
00004f60: PUSH1 0x00
00004f62: SWAP2
00004f63: ADD
00004f64: SWAP1
00004f65: DUP2
00004f66: MSTORE
00004f67: SWAP2
00004f68: SWAP1
00004f69: POP
00004f6a: JUMP
00004f6b: JUMPDEST
00004f6c: PUSH1 0x20
00004f6e: DUP2
00004f6f: MSTORE
00004f70: PUSH1 0x00
00004f72: PUSH2 0x49e7
00004f75: PUSH1 0x20
00004f77: DUP4
00004f78: ADD
00004f79: DUP5
00004f7a: DUP7
00004f7b: PUSH2 0x4d82
00004f7e: JUMP
00004f7f: JUMPDEST
00004f80: PUSH1 0xff
00004f82: DUP3
00004f83: DUP2
00004f84: AND
00004f85: DUP3
00004f86: DUP3
00004f87: AND
00004f88: SUB
00004f89: SWAP1
00004f8a: DUP2
00004f8b: GT
00004f8c: ISZERO
00004f8d: PUSH2 0x0ae6
00004f90: JUMPI
00004f91: PUSH2 0x0ae6
00004f94: PUSH2 0x4c15
00004f97: JUMP
00004f98: JUMPDEST
00004f99: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00004fba: PUSH1 0x00
00004fbc: MSTORE
00004fbd: PUSH1 0x32
00004fbf: PUSH1 0x04
00004fc1: MSTORE
00004fc2: PUSH1 0x24
00004fc4: PUSH1 0x00
00004fc6: REVERT
00004fc7: JUMPDEST
00004fc8: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00004fe9: PUSH1 0x00
00004feb: MSTORE
00004fec: PUSH1 0x31
00004fee: PUSH1 0x04
00004ff0: MSTORE
00004ff1: PUSH1 0x24
00004ff3: PUSH1 0x00
00004ff5: REVERT
00004ff6: JUMPDEST
00004ff7: PUSH1 0x00
00004ff9: DUP3
00004ffa: PUSH2 0x5005
00004ffd: JUMPI
00004ffe: PUSH2 0x5005
00005001: PUSH2 0x4c5b
00005004: JUMP
00005005: JUMPDEST
00005006: POP
00005007: MOD
00005008: SWAP1
00005009: JUMP
0000500a: JUMPDEST
0000500b: DUP3
0000500c: DUP2
0000500d: MSTORE
0000500e: PUSH1 0x40
00005010: PUSH1 0x20
00005012: DUP3
00005013: ADD
00005014: MSTORE
00005015: PUSH1 0x00
00005017: PUSH2 0x49e7
0000501a: PUSH1 0x40
0000501c: DUP4
0000501d: ADD
0000501e: DUP5
0000501f: PUSH2 0x4dad
00005022: JUMP
00005023: JUMPDEST
00005024: PUSH1 0x00
00005026: DUP1
00005027: DUP6
00005028: DUP6
00005029: GT
0000502a: ISZERO
0000502b: PUSH2 0x5033
0000502e: JUMPI
0000502f: PUSH1 0x00
00005031: DUP1
00005032: REVERT
00005033: JUMPDEST
00005034: DUP4
00005035: DUP7
00005036: GT
00005037: ISZERO
00005038: PUSH2 0x5040
0000503b: JUMPI
0000503c: PUSH1 0x00
0000503e: DUP1
0000503f: REVERT
00005040: JUMPDEST
00005041: POP
00005042: POP
00005043: DUP3
00005044: ADD
00005045: SWAP4
00005046: SWAP2
00005047: SWAP1
00005048: SWAP3
00005049: SUB
0000504a: SWAP2
0000504b: POP
0000504c: JUMP
0000504d: JUMPDEST
0000504e: DUP1
0000504f: MLOAD
00005050: PUSH2 0x2f56
00005053: DUP2
00005054: PUSH2 0x47f2
00005057: JUMP
00005058: JUMPDEST
00005059: DUP1
0000505a: MLOAD
0000505b: PUSH2 0x2f56
0000505e: DUP2
0000505f: PUSH2 0x47e0
00005062: JUMP
00005063: JUMPDEST
00005064: PUSH1 0x00
00005066: PUSH1 0xe0
00005068: DUP3
00005069: DUP5
0000506a: SUB
0000506b: SLT
0000506c: ISZERO
0000506d: PUSH2 0x5075
00005070: JUMPI
00005071: PUSH1 0x00
00005073: DUP1
00005074: REVERT
00005075: JUMPDEST
00005076: PUSH1 0x40
00005078: MLOAD
00005079: PUSH1 0xe0
0000507b: DUP2
0000507c: ADD
0000507d: DUP2
0000507e: DUP2
0000507f: LT
00005080: PUSH8 0xffffffffffffffff
00005089: DUP3
0000508a: GT
0000508b: OR
0000508c: ISZERO
0000508d: PUSH2 0x5098
00005090: JUMPI
00005091: PUSH2 0x5098
00005094: PUSH2 0x4757
00005097: JUMP
00005098: JUMPDEST
00005099: PUSH1 0x40
0000509b: MSTORE
0000509c: DUP3
0000509d: MLOAD
0000509e: PUSH2 0x50a6
000050a1: DUP2
000050a2: PUSH2 0x4547
000050a5: JUMP
000050a6: JUMPDEST
000050a7: DUP2
000050a8: MSTORE
000050a9: PUSH1 0x20
000050ab: DUP4
000050ac: ADD
000050ad: MLOAD
000050ae: PUSH2 0x50b6
000050b1: DUP2
000050b2: PUSH2 0x47f2
000050b5: JUMP
000050b6: JUMPDEST
000050b7: PUSH1 0x20
000050b9: DUP3
000050ba: ADD
000050bb: MSTORE
000050bc: PUSH1 0x40
000050be: DUP4
000050bf: ADD
000050c0: MLOAD
000050c1: PUSH2 0x50c9
000050c4: DUP2
000050c5: PUSH2 0x47e0
000050c8: JUMP
000050c9: JUMPDEST
000050ca: PUSH1 0x40
000050cc: DUP3
000050cd: ADD
000050ce: MSTORE
000050cf: PUSH1 0x60
000050d1: DUP4
000050d2: ADD
000050d3: MLOAD
000050d4: PUSH2 0x50dc
000050d7: DUP2
000050d8: PUSH2 0x4547
000050db: JUMP
000050dc: JUMPDEST
000050dd: PUSH1 0x60
000050df: DUP3
000050e0: ADD
000050e1: MSTORE
000050e2: PUSH2 0x50ed
000050e5: PUSH1 0x80
000050e7: DUP5
000050e8: ADD
000050e9: PUSH2 0x504d
000050ec: JUMP
000050ed: JUMPDEST
000050ee: PUSH1 0x80
000050f0: DUP3
000050f1: ADD
000050f2: MSTORE
000050f3: PUSH2 0x50fe
000050f6: PUSH1 0xa0
000050f8: DUP5
000050f9: ADD
000050fa: PUSH2 0x5058
000050fd: JUMP
000050fe: JUMPDEST
000050ff: PUSH1 0xa0
00005101: DUP3
00005102: ADD
00005103: MSTORE
00005104: PUSH1 0xc0
00005106: DUP4
00005107: ADD
00005108: MLOAD
00005109: PUSH1 0xc0
0000510b: DUP3
0000510c: ADD
0000510d: MSTORE
0000510e: DUP1
0000510f: SWAP2
00005110: POP
00005111: POP
00005112: SWAP3
00005113: SWAP2
00005114: POP
00005115: POP
00005116: JUMP
00005117: JUMPDEST
00005118: PUSH1 0x00
0000511a: DUP1
0000511b: PUSH1 0x40
0000511d: DUP4
0000511e: DUP6
0000511f: SUB
00005120: SLT
00005121: ISZERO
00005122: PUSH2 0x512a
00005125: JUMPI
00005126: PUSH1 0x00
00005128: DUP1
00005129: REVERT
0000512a: JUMPDEST
0000512b: DUP3
0000512c: MLOAD
0000512d: PUSH2 0x5135
00005130: DUP2
00005131: PUSH2 0x47f2
00005134: JUMP
00005135: JUMPDEST
00005136: PUSH1 0x20
00005138: DUP5
00005139: ADD
0000513a: MLOAD
0000513b: SWAP1
0000513c: SWAP3
0000513d: POP
0000513e: PUSH2 0x45c2
00005141: DUP2
00005142: PUSH2 0x47f2
00005145: JUMP
00005146: JUMPDEST
00005147: PUSH1 0x00
00005149: PUSH1 0xff
0000514b: DUP3
0000514c: AND
0000514d: PUSH1 0xff
0000514f: DUP2
00005150: SUB
00005151: PUSH2 0x515c
00005154: JUMPI
00005155: PUSH2 0x515c
00005158: PUSH2 0x4c15
0000515b: JUMP
0000515c: JUMPDEST
0000515d: PUSH1 0x01
0000515f: ADD
00005160: SWAP3
00005161: SWAP2
00005162: POP
00005163: POP
00005164: JUMP
00005165: JUMPDEST
00005166: PUSH1 0x00
00005168: PUSH1 0x20
0000516a: DUP3
0000516b: DUP5
0000516c: SUB
0000516d: SLT
0000516e: ISZERO
0000516f: PUSH2 0x5177
00005172: JUMPI
00005173: PUSH1 0x00
00005175: DUP1
00005176: REVERT
00005177: JUMPDEST
00005178: DUP2
00005179: CALLDATALOAD
0000517a: PUSH2 0x34aa
0000517d: DUP2
0000517e: PUSH2 0x47e0
00005181: JUMP
00005182: JUMPDEST
00005183: DUP1
00005184: CALLDATALOAD
00005185: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000051a6: DUP2
000051a7: AND
000051a8: DUP2
000051a9: EQ
000051aa: PUSH2 0x2f56
000051ad: JUMPI
000051ae: PUSH1 0x00
000051b0: DUP1
000051b1: REVERT
000051b2: JUMPDEST
000051b3: PUSH1 0x00
000051b5: PUSH2 0x0100
000051b8: DUP1
000051b9: DUP4
000051ba: MSTORE
000051bb: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000051dc: DUP1
000051dd: PUSH2 0x51e5
000051e0: DUP9
000051e1: PUSH2 0x5182
000051e4: JUMP
000051e5: JUMPDEST
000051e6: AND
000051e7: DUP3
000051e8: DUP6
000051e9: ADD
000051ea: MSTORE
000051eb: PUSH2 0x51f7
000051ee: PUSH1 0x20
000051f0: DUP9
000051f1: ADD
000051f2: DUP9
000051f3: PUSH2 0x4d1e
000051f6: JUMP
000051f7: JUMPDEST
000051f8: SWAP3
000051f9: POP
000051fa: PUSH1 0x80
000051fc: PUSH2 0x0120
000051ff: DUP7
00005200: ADD
00005201: MSTORE
00005202: PUSH2 0x5210
00005205: PUSH2 0x0180
00005208: DUP7
00005209: ADD
0000520a: DUP5
0000520b: DUP4
0000520c: PUSH2 0x4d82
0000520f: JUMP
00005210: JUMPDEST
00005211: SWAP3
00005212: POP
00005213: POP
00005214: PUSH2 0x5220
00005217: PUSH1 0x40
00005219: DUP9
0000521a: ADD
0000521b: DUP9
0000521c: PUSH2 0x4d1e
0000521f: JUMP
00005220: JUMPDEST
00005221: PUSH1 0xff
00005223: NOT
00005224: DUP7
00005225: DUP6
00005226: SUB
00005227: ADD
00005228: PUSH2 0x0140
0000522b: DUP8
0000522c: ADD
0000522d: MSTORE
0000522e: PUSH2 0x5238
00005231: DUP5
00005232: DUP3
00005233: DUP5
00005234: PUSH2 0x4d82
00005237: JUMP
00005238: JUMPDEST
00005239: SWAP4
0000523a: POP
0000523b: POP
0000523c: POP
0000523d: DUP1
0000523e: PUSH2 0x5249
00005241: PUSH1 0x60
00005243: DUP10
00005244: ADD
00005245: PUSH2 0x5182
00005248: JUMP
00005249: JUMPDEST
0000524a: AND
0000524b: PUSH2 0x0160
0000524e: DUP6
0000524f: ADD
00005250: MSTORE
00005251: POP
00005252: SWAP1
00005253: POP
00005254: DUP4
00005255: CALLDATALOAD
00005256: PUSH2 0x525e
00005259: DUP2
0000525a: PUSH2 0x47e0
0000525d: JUMP
0000525e: JUMPDEST
0000525f: PUSH4 0xffffffff
00005264: DUP2
00005265: AND
00005266: PUSH1 0x20
00005268: DUP5
00005269: ADD
0000526a: MSTORE
0000526b: POP
0000526c: PUSH1 0x20
0000526e: DUP5
0000526f: ADD
00005270: CALLDATALOAD
00005271: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00005292: DUP2
00005293: AND
00005294: DUP1
00005295: DUP3
00005296: EQ
00005297: PUSH2 0x529f
0000529a: JUMPI
0000529b: PUSH1 0x00
0000529d: DUP1
0000529e: REVERT
0000529f: JUMPDEST
000052a0: DUP1
000052a1: PUSH1 0x40
000052a3: DUP6
000052a4: ADD
000052a5: MSTORE
000052a6: POP
000052a7: POP
000052a8: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
000052c9: PUSH2 0x52d4
000052cc: PUSH1 0x40
000052ce: DUP7
000052cf: ADD
000052d0: PUSH2 0x4727
000052d3: JUMP
000052d4: JUMPDEST
000052d5: AND
000052d6: PUSH1 0x60
000052d8: DUP4
000052d9: ADD
000052da: MSTORE
000052db: PUSH2 0x52e6
000052de: PUSH1 0x60
000052e0: DUP6
000052e1: ADD
000052e2: PUSH2 0x4727
000052e5: JUMP
000052e6: JUMPDEST
000052e7: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00005308: DUP2
00005309: AND
0000530a: PUSH1 0x80
0000530c: DUP5
0000530d: ADD
0000530e: MSTORE
0000530f: POP
00005310: PUSH2 0x531b
00005313: PUSH1 0x80
00005315: DUP6
00005316: ADD
00005317: PUSH2 0x5182
0000531a: JUMP
0000531b: JUMPDEST
0000531c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000533d: DUP2
0000533e: AND
0000533f: PUSH1 0xa0
00005341: DUP5
00005342: ADD
00005343: MSTORE
00005344: POP
00005345: PUSH2 0x5350
00005348: PUSH1 0xa0
0000534a: DUP6
0000534b: ADD
0000534c: PUSH2 0x455c
0000534f: JUMP
00005350: JUMPDEST
00005351: PUSH1 0x01
00005353: PUSH1 0x01
00005355: PUSH1 0xa0
00005357: SHL
00005358: SUB
00005359: AND
0000535a: PUSH1 0xc0
0000535c: DUP4
0000535d: ADD
0000535e: MSTORE
0000535f: PUSH1 0xe0
00005361: SWAP1
00005362: SWAP2
00005363: ADD
00005364: SWAP2
00005365: SWAP1
00005366: SWAP2
00005367: MSTORE
00005368: SWAP3
00005369: SWAP2
0000536a: POP
0000536b: POP
0000536c: JUMP
0000536d: JUMPDEST
0000536e: PUSH1 0x01
00005370: PUSH1 0x01
00005372: PUSH1 0xa0
00005374: SHL
00005375: SUB
00005376: DUP9
00005377: AND
00005378: DUP2
00005379: MSTORE
0000537a: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
0000539b: DUP8
0000539c: AND
0000539d: PUSH1 0x20
0000539f: DUP3
000053a0: ADD
000053a1: MSTORE
000053a2: DUP6
000053a3: PUSH1 0x40
000053a5: DUP3
000053a6: ADD
000053a7: MSTORE
000053a8: PUSH4 0xffffffff
000053ad: DUP6
000053ae: AND
000053af: PUSH1 0x60
000053b1: DUP3
000053b2: ADD
000053b3: MSTORE
000053b4: PUSH8 0xffffffffffffffff
000053bd: DUP5
000053be: AND
000053bf: PUSH1 0x80
000053c1: DUP3
000053c2: ADD
000053c3: MSTORE
000053c4: PUSH1 0xc0
000053c6: PUSH1 0xa0
000053c8: DUP3
000053c9: ADD
000053ca: MSTORE
000053cb: PUSH1 0x00
000053cd: PUSH2 0x53da
000053d0: PUSH1 0xc0
000053d2: DUP4
000053d3: ADD
000053d4: DUP5
000053d5: DUP7
000053d6: PUSH2 0x4d82
000053d9: JUMP
000053da: JUMPDEST
000053db: SWAP10
000053dc: SWAP9
000053dd: POP
000053de: POP
000053df: POP
000053e0: POP
000053e1: POP
000053e2: POP
000053e3: POP
000053e4: POP
000053e5: POP
000053e6: JUMP
000053e7: JUMPDEST
000053e8: PUSH1 0x00
000053ea: JUMPDEST
000053eb: DUP4
000053ec: DUP2
000053ed: LT
000053ee: ISZERO
000053ef: PUSH2 0x5402
000053f2: JUMPI
000053f3: DUP2
000053f4: DUP2
000053f5: ADD
000053f6: MLOAD
000053f7: DUP4
000053f8: DUP3
000053f9: ADD
000053fa: MSTORE
000053fb: PUSH1 0x20
000053fd: ADD
000053fe: PUSH2 0x53ea
00005401: JUMP
00005402: JUMPDEST
00005403: POP
00005404: POP
00005405: PUSH1 0x00
00005407: SWAP2
00005408: ADD
00005409: MSTORE
0000540a: JUMP
0000540b: JUMPDEST
0000540c: PUSH1 0x00
0000540e: DUP2
0000540f: MLOAD
00005410: DUP1
00005411: DUP5
00005412: MSTORE
00005413: PUSH2 0x5423
00005416: DUP2
00005417: PUSH1 0x20
00005419: DUP7
0000541a: ADD
0000541b: PUSH1 0x20
0000541d: DUP7
0000541e: ADD
0000541f: PUSH2 0x53e7
00005422: JUMP
00005423: JUMPDEST
00005424: PUSH1 0x1f
00005426: ADD
00005427: PUSH1 0x1f
00005429: NOT
0000542a: AND
0000542b: SWAP3
0000542c: SWAP1
0000542d: SWAP3
0000542e: ADD
0000542f: PUSH1 0x20
00005431: ADD
00005432: SWAP3
00005433: SWAP2
00005434: POP
00005435: POP
00005436: JUMP
00005437: JUMPDEST
00005438: PUSH1 0x01
0000543a: PUSH1 0x01
0000543c: PUSH1 0xa0
0000543e: SHL
0000543f: SUB
00005440: DUP5
00005441: AND
00005442: DUP2
00005443: MSTORE
00005444: DUP3
00005445: PUSH1 0x20
00005447: DUP3
00005448: ADD
00005449: MSTORE
0000544a: PUSH1 0x60
0000544c: PUSH1 0x40
0000544e: DUP3
0000544f: ADD
00005450: MSTORE
00005451: PUSH1 0x00
00005453: PUSH2 0x545f
00005456: PUSH1 0x60
00005458: DUP4
00005459: ADD
0000545a: DUP5
0000545b: PUSH2 0x540b
0000545e: JUMP
0000545f: JUMPDEST
00005460: SWAP6
00005461: SWAP5
00005462: POP
00005463: POP
00005464: POP
00005465: POP
00005466: POP
00005467: JUMP
00005468: JUMPDEST
00005469: PUSH1 0x00
0000546b: PUSH1 0x20
0000546d: DUP3
0000546e: DUP5
0000546f: SUB
00005470: SLT
00005471: ISZERO
00005472: PUSH2 0x547a
00005475: JUMPI
00005476: PUSH1 0x00
00005478: DUP1
00005479: REVERT
0000547a: JUMPDEST
0000547b: DUP2
0000547c: MLOAD
0000547d: DUP1
0000547e: ISZERO
0000547f: ISZERO
00005480: DUP2
00005481: EQ
00005482: PUSH2 0x34aa
00005485: JUMPI
00005486: PUSH1 0x00
00005488: DUP1
00005489: REVERT
0000548a: JUMPDEST
0000548b: PUSH1 0xff
0000548d: DUP2
0000548e: DUP2
0000548f: AND
00005490: DUP4
00005491: DUP3
00005492: AND
00005493: ADD
00005494: SWAP1
00005495: DUP2
00005496: GT
00005497: ISZERO
00005498: PUSH2 0x0ae6
0000549b: JUMPI
0000549c: PUSH2 0x0ae6
0000549f: PUSH2 0x4c15
000054a2: JUMP
000054a3: JUMPDEST
000054a4: PUSH1 0x20
000054a6: DUP2
000054a7: MSTORE
000054a8: DUP2
000054a9: MLOAD
000054aa: PUSH1 0x20
000054ac: DUP3
000054ad: ADD
000054ae: MSTORE
000054af: PUSH1 0x00
000054b1: PUSH1 0x20
000054b3: DUP4
000054b4: ADD
000054b5: MLOAD
000054b6: PUSH1 0xa0
000054b8: PUSH1 0x40
000054ba: DUP5
000054bb: ADD
000054bc: MSTORE
000054bd: PUSH2 0x54c9
000054c0: PUSH1 0xc0
000054c2: DUP5
000054c3: ADD
000054c4: DUP3
000054c5: PUSH2 0x540b
000054c8: JUMP
000054c9: JUMPDEST
000054ca: SWAP1
000054cb: POP
000054cc: PUSH1 0x01
000054ce: PUSH1 0x01
000054d0: PUSH1 0xa0
000054d2: SHL
000054d3: SUB
000054d4: PUSH1 0x40
000054d6: DUP6
000054d7: ADD
000054d8: MLOAD
000054d9: AND
000054da: PUSH1 0x60
000054dc: DUP5
000054dd: ADD
000054de: MSTORE
000054df: PUSH1 0x60
000054e1: DUP5
000054e2: ADD
000054e3: MLOAD
000054e4: PUSH1 0x80
000054e6: DUP5
000054e7: ADD
000054e8: MSTORE
000054e9: PUSH1 0xff
000054eb: PUSH1 0x80
000054ed: DUP6
000054ee: ADD
000054ef: MLOAD
000054f0: AND
000054f1: PUSH1 0xa0
000054f3: DUP5
000054f4: ADD
000054f5: MSTORE
000054f6: DUP1
000054f7: SWAP2
000054f8: POP
000054f9: POP
000054fa: SWAP3
000054fb: SWAP2
000054fc: POP
000054fd: POP
000054fe: JUMP
000054ff: JUMPDEST
00005500: PUSH8 0xffffffffffffffff
00005509: DUP3
0000550a: DUP2
0000550b: AND
0000550c: DUP3
0000550d: DUP3
0000550e: AND
0000550f: SUB
00005510: SWAP1
00005511: DUP1
00005512: DUP3
00005513: GT
00005514: ISZERO
00005515: PUSH2 0x5520
00005518: JUMPI
00005519: PUSH2 0x5520
0000551c: PUSH2 0x4c15
0000551f: JUMP
00005520: JUMPDEST
00005521: POP
00005522: SWAP3
00005523: SWAP2
00005524: POP
00005525: POP
00005526: JUMP
00005527: JUMPDEST
00005528: PUSH1 0x00
0000552a: PUSH1 0x20
0000552c: DUP3
0000552d: DUP5
0000552e: SUB
0000552f: SLT
00005530: ISZERO
00005531: PUSH2 0x5539
00005534: JUMPI
00005535: PUSH1 0x00
00005537: DUP1
00005538: REVERT
00005539: JUMPDEST
0000553a: DUP2
0000553b: MLOAD
0000553c: PUSH2 0x34aa
0000553f: DUP2
00005540: PUSH2 0x47e0
00005543: JUMP
00005544: JUMPDEST
00005545: PUSH1 0x00
00005547: DUP1
00005548: PUSH1 0x00
0000554a: DUP1
0000554b: PUSH1 0x80
0000554d: DUP6
0000554e: DUP8
0000554f: SUB
00005550: SLT
00005551: ISZERO
00005552: PUSH2 0x555a
00005555: JUMPI
00005556: PUSH1 0x00
00005558: DUP1
00005559: REVERT
0000555a: JUMPDEST
0000555b: DUP5
0000555c: MLOAD
0000555d: PUSH2 0x5565
00005560: DUP2
00005561: PUSH2 0x47f2
00005564: JUMP
00005565: JUMPDEST
00005566: PUSH1 0x20
00005568: DUP7
00005569: ADD
0000556a: MLOAD
0000556b: SWAP1
0000556c: SWAP5
0000556d: POP
0000556e: PUSH2 0x5576
00005571: DUP2
00005572: PUSH2 0x47f2
00005575: JUMP
00005576: JUMPDEST
00005577: PUSH1 0x40
00005579: DUP7
0000557a: ADD
0000557b: MLOAD
0000557c: SWAP1
0000557d: SWAP4
0000557e: POP
0000557f: PUSH2 0x5587
00005582: DUP2
00005583: PUSH2 0x47f2
00005586: JUMP
00005587: JUMPDEST
00005588: PUSH1 0x60
0000558a: DUP7
0000558b: ADD
0000558c: MLOAD
0000558d: SWAP1
0000558e: SWAP3
0000558f: POP
00005590: PUSH2 0x5598
00005593: DUP2
00005594: PUSH2 0x47e0
00005597: JUMP
00005598: JUMPDEST
00005599: SWAP4
0000559a: SWAP7
0000559b: SWAP3
0000559c: SWAP6
0000559d: POP
0000559e: SWAP1
0000559f: SWAP4
000055a0: POP
000055a1: POP
000055a2: JUMP
000055a3: JUMPDEST
000055a4: PUSH1 0x00
000055a6: PUSH1 0x20
000055a8: DUP3
000055a9: DUP5
000055aa: SUB
000055ab: SLT
000055ac: ISZERO
000055ad: PUSH2 0x55b5
000055b0: JUMPI
000055b1: PUSH1 0x00
000055b3: DUP1
000055b4: REVERT
000055b5: JUMPDEST
000055b6: PUSH2 0x34aa
000055b9: DUP3
000055ba: PUSH2 0x5182
000055bd: JUMP
000055be: JUMPDEST
000055bf: PUSH1 0x00
000055c1: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000055e2: DUP1
000055e3: DUP10
000055e4: AND
000055e5: DUP4
000055e6: MSTORE
000055e7: DUP7
000055e8: DUP9
000055e9: PUSH1 0x04
000055eb: DUP6
000055ec: ADD
000055ed: CALLDATACOPY
000055ee: DUP7
000055ef: DUP4
000055f0: ADD
000055f1: PUSH1 0x04
000055f3: DUP2
000055f4: ADD
000055f5: PUSH1 0x00
000055f7: DUP2
000055f8: MSTORE
000055f9: DUP7
000055fa: DUP9
000055fb: DUP3
000055fc: CALLDATACOPY
000055fd: POP
000055fe: SWAP4
000055ff: AND
00005600: SWAP4
00005601: SWAP1
00005602: SWAP3
00005603: ADD
00005604: PUSH1 0x04
00005606: DUP2
00005607: ADD
00005608: SWAP4
00005609: SWAP1
0000560a: SWAP4
0000560b: MSTORE
0000560c: POP
0000560d: POP
0000560e: PUSH1 0x08
00005610: ADD
00005611: SWAP5
00005612: SWAP4
00005613: POP
00005614: POP
00005615: POP
00005616: POP
00005617: JUMP
00005618: JUMPDEST
00005619: PUSH1 0x00
0000561b: DUP3
0000561c: MLOAD
0000561d: PUSH2 0x562a
00005620: DUP2
00005621: DUP5
00005622: PUSH1 0x20
00005624: DUP8
00005625: ADD
00005626: PUSH2 0x53e7
00005629: JUMP
0000562a: JUMPDEST
0000562b: SWAP2
0000562c: SWAP1
0000562d: SWAP2
0000562e: ADD
0000562f: SWAP3
00005630: SWAP2
00005631: POP
00005632: POP
00005633: JUMP
00005634: INVALID
00005635: LOG2
00005636: PUSH5 0x6970667358
0000563c: UNKNOWN(0x22)
0000563d: SLT
0000563e: KECCAK256
0000563f: MUL
00005640: POP
00005641: UNKNOWN(0xA9)
00005642: PUSH22 0x903d028feccceeafc933f36096a5a0107b364b170dad
00005659: UNKNOWN(0xEE)
0000565a: UNKNOWN(0x25)
0000565b: UNKNOWN(0xDE)
0000565c: UNKNOWN(0xBD)
0000565d: SWAP12
0000565e: SAR
0000565f: PUSH5 0x736f6c6343
00005665: STOP
00005666: ADDMOD
00005667: XOR
00005668: STOP
00005669: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xaa0ed95964a76aa56f483615901de10db75e7fdbaef25cf742091af63ad8d2cc
call_targets: 0x7e994d7fc7a2c3cad2331dadb07902f3a46b6cd9
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xaa0ed95964a76aa56f483615901de10db75e7fdbaef25cf742091af63ad8d2cc",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7e994d7fc7a2c3cad2331dadb07902f3a46b6cd9"
    ],
    "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": "0xe5d3d714",
            "selector": "0xe5d3d714",
            "calldata_variants": [
                "0xe5d3d714",
                "0xe5d3d7140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe78cea92",
            "selector": "0xe78cea92",
            "calldata_variants": [
                "0xe78cea92",
                "0xe78cea920000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3407480",
            "selector": "0xf3407480",
            "calldata_variants": [
                "0xf3407480",
                "0xf34074800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd80687ef",
            "selector": "0xd80687ef",
            "calldata_variants": [
                "0xd80687ef",
                "0xd80687ef0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdab1b4bd",
            "selector": "0xdab1b4bd",
            "calldata_variants": [
                "0xdab1b4bd",
                "0xdab1b4bd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf4d4663",
            "selector": "0xdf4d4663",
            "calldata_variants": [
                "0xdf4d4663",
                "0xdf4d46630000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3089,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5672,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7800,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 7,
    "guards_detected": [],
    "untrusted_call_count": 7
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xaa0ed95964a76aa56f483615901de10db75e7fdbaef25cf742091af63ad8d2cc
call_targets: 0x7e994d7fc7a2c3cad2331dadb07902f3a46b6cd9
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xaa0ed95964a76aa56f483615901de10db75e7fdbaef25cf742091af63ad8d2cc",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7e994d7fc7a2c3cad2331dadb07902f3a46b6cd9"
    ],
    "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": "0xe5d3d714",
            "selector": "0xe5d3d714",
            "calldata_variants": [
                "0xe5d3d714",
                "0xe5d3d7140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe78cea92",
            "selector": "0xe78cea92",
            "calldata_variants": [
                "0xe78cea92",
                "0xe78cea920000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3407480",
            "selector": "0xf3407480",
            "calldata_variants": [
                "0xf3407480",
                "0xf34074800000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd80687ef",
            "selector": "0xd80687ef",
            "calldata_variants": [
                "0xd80687ef",
                "0xd80687ef0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdab1b4bd",
            "selector": "0xdab1b4bd",
            "calldata_variants": [
                "0xdab1b4bd",
                "0xdab1b4bd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf4d4663",
            "selector": "0xdf4d4663",
            "calldata_variants": [
                "0xdf4d4663",
                "0xdf4d46630000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe30c3978",
            "selector": "0xe30c3978",
            "calldata_variants": [
                "0xe30c3978",
                "0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3089,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5672,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7800,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 7,
    "guards_detected": []
}
medium auth codex Bridge-out signatures are not bound to a specific MezoBridge instance 75 no
view
evidence_json
{
    "evidence": "Digest is computed as `keccak256(abi.encode(block.chainid, entry))` with no contract address/domain separation before `toEthSignedMessageHash()`.",
    "locations": [
        "contracts/contracts/MezoBridge.sol:458"
    ],
    "recommendation": "Include `address(this)` (and ideally a version or EIP-712 domain separator) in the signed digest, and update validators to sign the new domain. For example, sign `keccak256(abi.encode(block.chainid, address(this), entry))` or use EIP-712 typed data.",
    "exploit_scenario": "If multiple MezoBridge deployments exist on the same chain (e.g., an old bridge left funded alongside a new one), an attacker can reuse validator signatures collected for a legitimate unlock on one instance to execute `attestBridgeOutWithSignatures` on another instance. Because the signed digest omits `address(this)`, the signatures validate on any contract with the same validator set and chain ID, enabling unintended withdrawals from the other contract."
}
low other codex ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize) 65 no
view
evidence_json
{
    "evidence": "The bridge emits/records `amount` before calling `safeTransferFrom` and never checks the actual received balance delta.",
    "locations": [
        "contracts/contracts/ERC20Bridge.sol:191",
        "contracts/contracts/ERC20Bridge.sol:211"
    ],
    "recommendation": "Either disallow fee-on-transfer tokens in `enableERC20Token` (document/enforce allowlist) or compute the actual received amount via balance-before/after and emit/bridge that amount instead.",
    "exploit_scenario": "If governance enables a fee-on-transfer/deflationary ERC20, a user can bridge `amount`, receive a full `AssetsLocked` event for `amount`, but the contract will receive less than `amount`. Validators may mint/unlock the full `amount` on Mezo, leaving the Ethereum-side bridge undercollateralized and allowing value extraction."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 6
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 16
}