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

Analysis Run

bcdfa77d-89f0-4bd4-94b1-88110b7b2e0f

complete
Chain ID
1
Address
Block Number
Created
Sun, Dec 28, 2025 4:16 PM
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
Reentrancy via transfer-out before state updates in borrow/withdraw
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30326 report.consolidate complete 1 / 1 3 months ago
74140 artifact.fetch complete 1 / 3 1 week ago
74141 tool.cast_disasm complete 1 / 3 1 week ago
74142 analysis.bundle complete 1 / 3 1 week ago
74143 capability.graph complete 1 / 3 1 week ago
74144 detector.run complete 1 / 3 1 week ago
74145 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
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
Identified 2 issues: a reentrancy window on transfer-out in borrow/withdraw, and accounting mismatches for fee-on-transfer tokens in transfer-in paths.
View stderr
[codex:306256] OpenAI Codex v0.77.0 (research preview)
[codex:306256] --------
[codex:306256] workdir: /tmp/codex-multi-z9xjivxl
[codex:306256] model: gpt-5.2-codex
[codex:306256] provider: openai
[codex:306256] approval: never
[codex:306256] sandbox: read-only
[codex:306256] reasoning effort: xhigh
[codex:306256] reasoning summaries: auto
[codex:306256] session id: 019b65b8-633c-73f3-b4bd-2e3edf6bcab4
[codex:306256] --------
[codex:306256] user
[codex:306256] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:306256] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:306256] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:306256] 
[codex:306256] Scope rules:
[codex:306256] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:306256] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:306256] 
[codex:306256] Output MUST be valid JSON matching the provided schema.
[codex:306256] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:306256] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:306256] 
[codex:306256] Output constraints (IMPORTANT):
[codex:306256] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:306256] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:306256] mcp startup: no servers
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Preparing to read instructions**
[codex:306256] exec
[codex:306256] /bin/bash -lc ls in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] AUDIT_BUNDLE.txt
[codex:306256] codex-output-schema.json
[codex:306256] contracts
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Reading AUDIT_BUNDLE file**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:306256] 
[codex:306256] ================================================================================
[codex:306256] FILE: contracts/Contract.sol
[codex:306256] ================================================================================
[codex:306256] pragma solidity ^0.4.24;
[codex:306256] contract PriceOracleInterface {
[codex:306256] 
[codex:306256]     /**
[codex:306256]       * @notice Gets the price of a given asset
[codex:306256]       * @dev fetches the price of a given asset
[codex:306256]       * @param asset Asset to get the price of
[codex:306256]       * @return the price scaled by 10**18, or zero if the price is not available
[codex:306256]       */
[codex:306256]     function assetPrices(address asset) public view returns (uint);
[codex:306256] }
[codex:306256] contract ErrorReporter {
[codex:306256] 
[codex:306256]     /**
[codex:306256]       * @dev `error` corresponds to enum Error; `info` corresponds to enum FailureInfo, and `detail` is an arbitrary
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Preparing for vulnerability analysis**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg --no-line-number "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] FILE: contracts/Contract.sol
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Starting contract review**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg --no-line-number "''^contract " AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] contract PriceOracleInterface {
[codex:306256] contract ErrorReporter {
[codex:306256] contract InterestRateModel {
[codex:306256] contract EIP20Interface {
[codex:306256] contract EIP20NonStandardInterface {
[codex:306256] contract CarefulMath is ErrorReporter {
[codex:306256] contract SafeToken is ErrorReporter {
[codex:306256] contract Exponential is ErrorReporter, CarefulMath {
[codex:306256] contract MoneyMarket is Exponential, SafeToken {
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing MoneyMarket contract for vulnerabilities**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "function (supply|withdraw|borrow|repay|liquidate|set|support|suspend|pause|oracle|admin)" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256] 1509:    function supply(address asset, uint amount) public returns (uint) {
[codex:306256] 1635:    function withdraw(address asset, uint requestedAmount) public returns (uint) {
[codex:306256] 1950:    function repayBorrow(address asset, uint amount) public returns (uint) {
[codex:306256] 2144:    function liquidateBorrow(address targetAccount, address assetBorrow, address assetCollateral, uint requestedAmountClose) public returns (uint) {
[codex:306256] 2553:    function borrow(address asset, uint amount) public returns (uint) {
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Searching for admin-related functions**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "admin|owner|oracle|support|suspend|pause|set" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 8ms:
[codex:306256] 10:      * @notice Gets the price of a given asset
[codex:306256] 11:      * @dev fetches the price of a given asset
[codex:306256] 12:      * @param asset Asset to get the price of
[codex:306256] 15:    function assetPrices(address asset) public view returns (uint);
[codex:306256] 179:      * @notice Gets the current supply interest rate based on the given asset, total cash and total borrows
[codex:306256] 182:      * @param asset The asset to get the interest rate of
[codex:306256] 183:      * @param cash The total cash of the asset in the market
[codex:306256] 184:      * @param borrows The total borrows of the asset in the market
[codex:306256] 187:    function getSupplyRate(address asset, uint cash, uint borrows) public view returns (uint, uint);
[codex:306256] 190:      * @notice Gets the current borrow interest rate based on the given asset, total cash and total borrows
[codex:306256] 193:      * @param asset The asset to get the interest rate of
[codex:306256] 194:      * @param cash The total cash of the asset in the market
[codex:306256] 195:      * @param borrows The total borrows of the asset in the market
[codex:306256] 198:    function getBorrowRate(address asset, uint cash, uint borrows) public view returns (uint, uint);
[codex:306256] 213:    /// @param _owner The address from which the balance will be retrieved
[codex:306256] 215:    function balanceOf(address _owner) public view returns (uint256 balance);
[codex:306256] 236:    /// @param _owner The address of the account owning tokens
[codex:306256] 239:    function allowance(address _owner, address _spender) public view returns (uint256 remaining);
[codex:306256] 243:    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
[codex:306256] 259:    /// @param _owner The address from which the balance will be retrieved
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing reentrancy and external call risks**
[codex:306256] 
[codex:306256] I'm reviewing the MoneyMarket contract carefully for security issues, focusing on reentrancy vulnerabilities from external token calls, especially in borrow and withdraw functions where state updates happen after transfers. It's concerning that ERC777 tokens or malicious tokens with hooks could exploit this to reenter and drain funds before balances update. I'm also noting risks from untrusted oracle and interest rate model calls that admin controls, and planning to investigate other potential flaws like misuse of delegatecall next.
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl exited 1 in 7ms:
[codex:306256] 
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Inspecting transfer calls for safety**
[codex:306256] exec
[codex:306256] /bin/bash -lc "rg -n \"transfer\\(|transferFrom\\(\" AUDIT_BUNDLE.txt" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 221:    function transfer(address _to, uint256 _value) public returns (bool success);
[codex:306256] 228:    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
[codex:306256] 273:    function transfer(address _to, uint256 _value) public;
[codex:306256] 286:    function transferFrom(address _from, address _to, uint256 _value) public;
[codex:306256] 406:        token.transferFrom(from, address(this), amount);
[codex:306256] 461:        token.transfer(to, amount);
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing token transfer risks and parameter validations**
[codex:306256] 
[codex:306256] I'm exploring subtle issues in token transfer handling—especially fee-on-transfer tokens that might cause accounting mismatches due to missing balance checks—as well as reentrancy concerns with admin calls and risk parameter edge cases that could trigger division errors or denial of service if misconfigured by admin. Next, I'll inspect the MoneyMarket contract closely starting from the top.
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '620,900p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]    620	    function truncate(Exp memory exp) pure internal returns (uint) {
[codex:306256]    621	        // Note: We are not using careful math here as we're performing a division that cannot fail
[codex:306256]    622	        return exp.mantissa / 10**18;
[codex:306256]    623	    }
[codex:306256]    624	
[codex:306256]    625	    /**
[codex:306256]    626	      * @dev Checks if first Exp is less than second Exp.
[codex:306256]    627	      */
[codex:306256]    628	    function lessThanExp(Exp memory left, Exp memory right) pure internal returns (bool) {
[codex:306256]    629	        return left.mantissa < right.mantissa; //TODO: Add some simple tests and this in another PR yo.
[codex:306256]    630	    }
[codex:306256]    631	
[codex:306256]    632	    /**
[codex:306256]    633	      * @dev Checks if left Exp <= right Exp.
[codex:306256]    634	      */
[codex:306256]    635	    function lessThanOrEqualExp(Exp memory left, Exp memory right) pure internal returns (bool) {
[codex:306256]    636	        return left.mantissa <= right.mantissa;
[codex:306256]    637	    }
[codex:306256]    638	
[codex:306256]    639	    /**
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Inspecting calculateAccountLiquidity for vulnerabilities**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "calculateAccountLiquidity" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1204:        (Error err, Exp memory accountLiquidity, Exp memory accountShortfall) = calculateAccountLiquidity(account);
[codex:306256] 1648:        (err, localResults.accountLiquidity, localResults.accountShortfall) = calculateAccountLiquidity(msg.sender);
[codex:306256] 1785:    function calculateAccountLiquidity(address userAddress) internal view returns (Error, Exp memory, Exp memory) {
[codex:306256] 2425:        Exp memory _accountLiquidity; // unused return value from calculateAccountLiquidity
[codex:306256] 2433:        (err, _accountLiquidity, accountShortfall_TargetUser) = calculateAccountLiquidity(targetAccount);
[codex:306256] 2449:        // calculateAccountLiquidity multiplies underwaterAssetPrice by collateralRatio
[codex:306256] 2599:        (err, localResults.accountLiquidity, localResults.accountShortfall) = calculateAccountLiquidity(msg.sender);
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1760,1905p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256]   1760	
[codex:306256]   1761	        return uint(Error.NO_ERROR); // success
[codex:306256]   1762	    }
[codex:306256]   1763	
[codex:306256]   1764	    struct AccountValueLocalVars {
[codex:306256]   1765	        address assetAddress;
[codex:306256]   1766	        uint collateralMarketsLength;
[codex:306256]   1767	
[codex:306256]   1768	        uint newSupplyIndex;
[codex:306256]   1769	        uint userSupplyCurrent;
[codex:306256]   1770	        Exp supplyTotalValue;
[codex:306256]   1771	        Exp sumSupplies;
[codex:306256]   1772	
[codex:306256]   1773	        uint newBorrowIndex;
[codex:306256]   1774	        uint userBorrowCurrent;
[codex:306256]   1775	        Exp borrowTotalValue;
[codex:306256]   1776	        Exp sumBorrows;
[codex:306256]   1777	    }
[codex:306256]   1778	
[codex:306256]   1779	    /**
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing liquidity and potential DoS risks**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1488,1615p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]   1488	    struct SupplyLocalVars {
[codex:306256]   1489	        uint startingBalance;
[codex:306256]   1490	        uint newSupplyIndex;
[codex:306256]   1491	        uint userSupplyCurrent;
[codex:306256]   1492	        uint userSupplyUpdated;
[codex:306256]   1493	        uint newTotalSupply;
[codex:306256]   1494	        uint currentCash;
[codex:306256]   1495	        uint updatedCash;
[codex:306256]   1496	        uint newSupplyRateMantissa;
[codex:306256]   1497	        uint newBorrowIndex;
[codex:306256]   1498	        uint newBorrowRateMantissa;
[codex:306256]   1499	    }
[codex:306256]   1500	
[codex:306256]   1501	
[codex:306256]   1502	    /**
[codex:306256]   1503	      * @notice supply `amount` of `asset` (which must be supported) to `msg.sender` in the protocol
[codex:306256]   1504	      * @dev add amount of supported asset to msg.sender's account
[codex:306256]   1505	      * @param asset The market asset to supply
[codex:306256]   1506	      * @param amount The amount to supply
[codex:306256]   1507	      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Reviewing transferIn usage and reentrancy concerns**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1615,1765p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]   1615	        uint currentCash;
[codex:306256]   1616	        uint updatedCash;
[codex:306256]   1617	        uint newSupplyRateMantissa;
[codex:306256]   1618	        uint newBorrowIndex;
[codex:306256]   1619	        uint newBorrowRateMantissa;
[codex:306256]   1620	
[codex:306256]   1621	        Exp accountLiquidity;
[codex:306256]   1622	        Exp accountShortfall;
[codex:306256]   1623	        Exp ethValueOfWithdrawal;
[codex:306256]   1624	        uint withdrawCapacity;
[codex:306256]   1625	    }
[codex:306256]   1626	
[codex:306256]   1627	
[codex:306256]   1628	    /**
[codex:306256]   1629	      * @notice withdraw `amount` of `asset` from sender's account to sender's address
[codex:306256]   1630	      * @dev withdraw `amount` of `asset` from msg.sender's account to msg.sender
[codex:306256]   1631	      * @param asset The market asset to withdraw
[codex:306256]   1632	      * @param requestedAmount The amount to withdraw (or -1 for max)
[codex:306256]   1633	      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256]   1634	      */
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Assessing reentrancy risk in transfers**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1910,2085p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]   1910	      *         storage
[codex:306256]   1911	      * @dev Gets ETH values of accumulated supply and borrow balances
[codex:306256]   1912	      * @param userAddress account for which to sum values
[codex:306256]   1913	      * @return (uint 0=success; otherwise a failure (see ErrorReporter.sol for details),
[codex:306256]   1914	      *          sum ETH value of supplies scaled by 10e18,
[codex:306256]   1915	      *          sum ETH value of borrows scaled by 10e18)
[codex:306256]   1916	      */
[codex:306256]   1917	    function calculateAccountValues(address userAddress) public view returns (uint, uint, uint) {
[codex:306256]   1918	        (Error err, uint supplyValue, uint borrowValue) = calculateAccountValuesInternal(userAddress);
[codex:306256]   1919	        if (err != Error.NO_ERROR) {
[codex:306256]   1920	
[codex:306256]   1921	            return (uint(err), 0, 0);
[codex:306256]   1922	        }
[codex:306256]   1923	
[codex:306256]   1924	        return (0, supplyValue, borrowValue);
[codex:306256]   1925	    }
[codex:306256]   1926	
[codex:306256]   1927	    struct PayBorrowLocalVars {
[codex:306256]   1928	        uint newBorrowIndex;
[codex:306256]   1929	        uint userBorrowCurrent;
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing reentrancy and interest index concerns**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "calculateInterestIndex" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 926:    function calculateInterestIndex(uint startingInterestIndex, uint interestRateMantissa, uint blockStart, uint blockEnd) pure internal returns (Error, uint) {
[codex:306256] 1230:        (err, newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1256:        (err, newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1533:        (err, localResults.newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1569:        (err, localResults.newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1654:        (err, localResults.newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1725:        (err, localResults.newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 1855:                (err, localResults.newSupplyIndex) = calculateInterestIndex(currentMarket.supplyIndex, currentMarket.supplyRateMantissa, currentMarket.blockNumber, getBlockNumber());
[codex:306256] 1880:                (err, localResults.newBorrowIndex) = calculateInterestIndex(currentMarket.borrowIndex, currentMarket.borrowRateMantissa, currentMarket.blockNumber, getBlockNumber());
[codex:306256] 1961:        (err, localResults.newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 2012:        (err, localResults.newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 2177:        (err, localResults.newBorrowIndex_UnderwaterAsset) = calculateInterestIndex(borrowMarket.borrowIndex, borrowMarket.borrowRateMantissa, borrowMarket.blockNumber, getBlockNumber());
[codex:306256] 2188:        (err, localResults.newSupplyIndex_CollateralAsset) = calculateInterestIndex(collateralMarket.supplyIndex, collateralMarket.supplyRateMantissa, collateralMarket.blockNumber, getBlockNumber());
[codex:306256] 2314:        (err, localResults.newSupplyIndex_UnderwaterAsset) = calculateInterestIndex(borrowMarket.supplyIndex, borrowMarket.supplyRateMantissa, borrowMarket.blockNumber, getBlockNumber());
[codex:306256] 2334:        (err, localResults.newBorrowIndex_CollateralAsset) = calculateInterestIndex(collateralMarket.borrowIndex, collateralMarket.borrowRateMantissa, collateralMarket.blockNumber, getBlockNumber());
[codex:306256] 2570:        (err, localResults.newBorrowIndex) = calculateInterestIndex(market.borrowIndex, market.borrowRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] 2632:        (err, localResults.newSupplyIndex) = calculateInterestIndex(market.supplyIndex, market.supplyRateMantissa, market.blockNumber, getBlockNumber());
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '900,980p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]    900	      * @dev Adds a given asset to the list of collateral markets. This operation is impossible to reverse.
[codex:306256]    901	      *      Note: this will not add the asset if it already exists.
[codex:306256]    902	      */
[codex:306256]    903	    function addCollateralMarket(address asset) internal {
[codex:306256]    904	        for (uint i = 0; i < collateralMarkets.length; i++) {
[codex:306256]    905	            if (collateralMarkets[i] == asset) {
[codex:306256]    906	                return;
[codex:306256]    907	            }
[codex:306256]    908	        }
[codex:306256]    909	
[codex:306256]    910	        collateralMarkets.push(asset);
[codex:306256]    911	    }
[codex:306256]    912	
[codex:306256]    913	    /**
[codex:306256]    914	      * @notice return the number of elements in `collateralMarkets`
[codex:306256]    915	      * @dev you can then externally call `collateralMarkets(uint)` to pull each market address
[codex:306256]    916	      * @return the length of `collateralMarkets`
[codex:306256]    917	      */
[codex:306256]    918	    function getCollateralMarketsLength() public view returns (uint) {
[codex:306256]    919	        return collateralMarkets.length;
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing potential market and liquidity calculation issues**
[codex:306256] 
[codex:306256] I'm examining how suspended markets are handled in collateral and borrow calculations, noting that suspended assets still count toward collateral but disallow new supplies or borrows. I'm checking inconsistencies around supply, borrow, and withdraw functions' support checks, and spotting a few vulnerability risks related to interest index underflows, repeated collateralRatio multiplications, and potential division by zero during liquidation calculations. I'll verify how risk parameters safeguard this.
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1338,1425p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]   1338	
[codex:306256]   1339	        return uint(Error.NO_ERROR);
[codex:306256]   1340	    }
[codex:306256]   1341	
[codex:306256]   1342	    /**
[codex:306256]   1343	      * @notice Sets the risk parameters: collateral ratio and liquidation discount
[codex:306256]   1344	      * @dev Owner function to set the risk parameters
[codex:306256]   1345	      * @param collateralRatioMantissa rational collateral ratio, scaled by 1e18. The de-scaled value must be >= 1.1
[codex:306256]   1346	      * @param liquidationDiscountMantissa rational liquidation discount, scaled by 1e18. The de-scaled value must be <= 0.1 and must be less than (descaled collateral ratio minus 1)
[codex:306256]   1347	      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256]   1348	      */
[codex:306256]   1349	    function _setRiskParameters(uint collateralRatioMantissa, uint liquidationDiscountMantissa) public returns (uint) {
[codex:306256]   1350	        // Check caller = admin
[codex:306256]   1351	        if (msg.sender != admin) {
[codex:306256]   1352	            return fail(Error.UNAUTHORIZED, FailureInfo.SET_RISK_PARAMETERS_OWNER_CHECK);
[codex:306256]   1353	        }
[codex:306256]   1354	
[codex:306256]   1355	        Exp memory newCollateralRatio = Exp({mantissa: collateralRatioMantissa});
[codex:306256]   1356	        Exp memory newLiquidationDiscount = Exp({mantissa: liquidationDiscountMantissa});
[codex:306256]   1357	        Exp memory minimumCollateralRatio = Exp({mantissa: minimumCollateralRatioMantissa});
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Identifying potential vulnerabilities in borrowing and liquidation**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '2140,2415p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256]   2140	      * @param assetCollateral The borrower's market asset to receive in exchange
[codex:306256]   2141	      * @param requestedAmountClose The amount to repay (or -1 for max)
[codex:306256]   2142	      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256]   2143	      */
[codex:306256]   2144	    function liquidateBorrow(address targetAccount, address assetBorrow, address assetCollateral, uint requestedAmountClose) public returns (uint) {
[codex:306256]   2145	        if (paused) {
[codex:306256]   2146	            return fail(Error.CONTRACT_PAUSED, FailureInfo.LIQUIDATE_CONTRACT_PAUSED);
[codex:306256]   2147	        }
[codex:306256]   2148	        LiquidateLocalVars memory localResults;
[codex:306256]   2149	        // Copy these addresses into the struct for use with `emitLiquidationEvent`
[codex:306256]   2150	        // We'll use localResults.liquidator inside this function for clarity vs using msg.sender.
[codex:306256]   2151	        localResults.targetAccount = targetAccount;
[codex:306256]   2152	        localResults.assetBorrow = assetBorrow;
[codex:306256]   2153	        localResults.liquidator = msg.sender;
[codex:306256]   2154	        localResults.assetCollateral = assetCollateral;
[codex:306256]   2155	
[codex:306256]   2156	        Market storage borrowMarket = markets[assetBorrow];
[codex:306256]   2157	        Market storage collateralMarket = markets[assetCollateral];
[codex:306256]   2158	        Balance storage borrowBalance_TargeUnderwaterAsset = borrowBalances[targetAccount][assetBorrow];
[codex:306256]   2159	        Balance storage supplyBalance_TargetCollateralAsset = supplyBalances[targetAccount][assetCollateral];
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing liquidation and suspension logic**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1098,1185p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256]   1098	        return (Error.NO_ERROR, truncate(assetAmount));
[codex:306256]   1099	    }
[codex:306256]   1100	
[codex:306256]   1101	    /**
[codex:306256]   1102	      * @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
[codex:306256]   1103	      * @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
[codex:306256]   1104	      * @param newPendingAdmin New pending admin.
[codex:306256]   1105	      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256]   1106	      *
[codex:306256]   1107	      * TODO: Should we add a second arg to verify, like a checksum of `newAdmin` address?
[codex:306256]   1108	      */
[codex:306256]   1109	    function _setPendingAdmin(address newPendingAdmin) public returns (uint) {
[codex:306256]   1110	        // Check caller = admin
[codex:306256]   1111	        if (msg.sender != admin) {
[codex:306256]   1112	            return fail(Error.UNAUTHORIZED, FailureInfo.SET_PENDING_ADMIN_OWNER_CHECK);
[codex:306256]   1113	        }
[codex:306256]   1114	
[codex:306256]   1115	        // save current value, if any, for inclusion in log
[codex:306256]   1116	        address oldPendingAdmin = pendingAdmin;
[codex:306256]   1117	        // Store pendingAdmin = newPendingAdmin
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing potential divide-by-zero risk**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1200,1275p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]   1200	      * @param account the account to examine
[codex:306256]   1201	      * @return signed integer in terms of eth-wei (negative indicates a shortfall)
[codex:306256]   1202	      */
[codex:306256]   1203	    function getAccountLiquidity(address account) public view returns (int) {
[codex:306256]   1204	        (Error err, Exp memory accountLiquidity, Exp memory accountShortfall) = calculateAccountLiquidity(account);
[codex:306256]   1205	        require(err == Error.NO_ERROR);
[codex:306256]   1206	
[codex:306256]   1207	        if (isZeroExp(accountLiquidity)) {
[codex:306256]   1208	            return -1 * int(truncate(accountShortfall));
[codex:306256]   1209	        } else {
[codex:306256]   1210	            return int(truncate(accountLiquidity));
[codex:306256]   1211	        }
[codex:306256]   1212	    }
[codex:306256]   1213	
[codex:306256]   1214	    /**
[codex:306256]   1215	      * @notice return supply balance with any accumulated interest for `asset` belonging to `account`
[codex:306256]   1216	      * @dev returns supply balance with any accumulated interest for `asset` belonging to `account`
[codex:306256]   1217	      * @param account the account to examine
[codex:306256]   1218	      * @param asset the market asset whose supply balance belonging to `account` should be checked
[codex:306256]   1219	      * @return uint supply balance on success, throws on failed assertion otherwise
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing contract balance and oracle logic**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'rg -n "calculateBorrowAmountWithFee" AUDIT_BUNDLE.txt' in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256] 1029:    function calculateBorrowAmountWithFee(uint borrowAmount) view internal returns (Error, uint) {
[codex:306256] 2581:        (err, localResults.borrowAmountWithFee) = calculateBorrowAmountWithFee(amount);
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1018,1055p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256]   1018	
[codex:306256]   1019	        // Get the price for the given asset amount
[codex:306256]   1020	        return mulScalar(scaledPrice, assetAmount);
[codex:306256]   1021	    }
[codex:306256]   1022	
[codex:306256]   1023	    /**
[codex:306256]   1024	      * @dev Calculates the origination fee added to a given borrowAmount
[codex:306256]   1025	      *      This is simply `(1 + originationFee) * borrowAmount`
[codex:306256]   1026	      *
[codex:306256]   1027	      *      TODO: Track at what magnitude this fee rounds down to zero?
[codex:306256]   1028	      */
[codex:306256]   1029	    function calculateBorrowAmountWithFee(uint borrowAmount) view internal returns (Error, uint) {
[codex:306256]   1030	        // When origination fee is zero, the amount with fee is simply equal to the amount
[codex:306256]   1031	        if (isZeroExp(originationFee)) {
[codex:306256]   1032	            return (Error.NO_ERROR, borrowAmount);
[codex:306256]   1033	        }
[codex:306256]   1034	
[codex:306256]   1035	        (Error err0, Exp memory originationFeeFactor) = addExp(originationFee, Exp({mantissa: mantissaOne}));
[codex:306256]   1036	        if (err0 != Error.NO_ERROR) {
[codex:306256]   1037	            return (err0, 0);
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing potential vulnerabilities in lending contract**
[codex:306256] 
[codex:306256] I’m working through several technical aspects of the contract to identify exploitable weaknesses, focusing mainly on reentrancy risks in borrowing and withdrawal functions, handling of fee-on-transfer tokens that could inflate liabilities, and assumptions around token compliance and oracle pricing. The most critical is a high-severity reentrancy vulnerability where external calls happen before state updates, allowing attackers to drain liquidity by reentering within token callbacks. There are also medium risks related to inaccurate accounting with deflationary tokens and reliance on token behavior for safe transfers. I’m noting nuances about price zero handling, self-liquidation implications, and potential edge cases with collateral and interest index calculations. This thorough review feels like laying groundwork to prioritize vulnerabilities and guide next security steps!
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1425,1485p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]   1425	        // Check caller = admin
[codex:306256]   1426	        if (msg.sender != admin) {
[codex:306256]   1427	            return fail(Error.UNAUTHORIZED, FailureInfo.SET_MARKET_INTEREST_RATE_MODEL_OWNER_CHECK);
[codex:306256]   1428	        }
[codex:306256]   1429	
[codex:306256]   1430	        // Set the interest rate model to `modelAddress`
[codex:306256]   1431	        markets[asset].interestRateModel = interestRateModel;
[codex:306256]   1432	
[codex:306256]   1433	        emit SetMarketInterestRateModel(asset, interestRateModel);
[codex:306256]   1434	
[codex:306256]   1435	        return uint(Error.NO_ERROR);
[codex:306256]   1436	    }
[codex:306256]   1437	
[codex:306256]   1438	    /**
[codex:306256]   1439	      * @notice withdraws `amount` of `asset` from equity for asset, as long as `amount` <= equity. Equity= cash - (supply + borrows)
[codex:306256]   1440	      * @dev withdraws `amount` of `asset` from equity  for asset, enforcing amount <= cash - (supply + borrows)
[codex:306256]   1441	      * @param asset asset whose equity should be withdrawn
[codex:306256]   1442	      * @param amount amount of equity to withdraw; must not exceed equity available
[codex:306256]   1443	      * @return uint 0=success, otherwise a failure (see ErrorReporter.sol for details)
[codex:306256]   1444	      */
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing potential vulnerabilities and line mapping**
[codex:306256] exec
[codex:306256] /bin/bash -lc 'wc -l contracts/Contract.sol' in /tmp/codex-multi-z9xjivxl succeeded in 5ms:
[codex:306256] 2669 contracts/Contract.sol
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Extracting line numbers for vulnerabilities**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1728,1760p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]   1728	        }
[codex:306256]   1729	
[codex:306256]   1730	        /////////////////////////
[codex:306256]   1731	        // EFFECTS & INTERACTIONS
[codex:306256]   1732	        // (No safe failures beyond this point)
[codex:306256]   1733	
[codex:306256]   1734	        // We ERC-20 transfer the asset into the protocol (note: pre-conditions already checked above)
[codex:306256]   1735	        err = doTransferOut(asset, msg.sender, localResults.withdrawAmount);
[codex:306256]   1736	        if (err != Error.NO_ERROR) {
[codex:306256]   1737	            // This is safe since it's our first interaction and it didn't do anything if it failed
[codex:306256]   1738	            return fail(err, FailureInfo.WITHDRAW_TRANSFER_OUT_FAILED);
[codex:306256]   1739	        }
[codex:306256]   1740	
[codex:306256]   1741	        // Save market updates
[codex:306256]   1742	        market.blockNumber = getBlockNumber();
[codex:306256]   1743	        market.totalSupply =  localResults.newTotalSupply;
[codex:306256]   1744	        market.supplyRateMantissa = localResults.newSupplyRateMantissa;
[codex:306256]   1745	        market.supplyIndex = localResults.newSupplyIndex;
[codex:306256]   1746	        market.borrowRateMantissa = localResults.newBorrowRateMantissa;
[codex:306256]   1747	        market.borrowIndex = localResults.newBorrowIndex;
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Locating borrow usage**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '2638,2675p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]   2638	        if (rateCalculationResultCode != 0) {
[codex:306256]   2639	            return failOpaque(FailureInfo.BORROW_NEW_BORROW_RATE_CALCULATION_FAILED, rateCalculationResultCode);
[codex:306256]   2640	        }
[codex:306256]   2641	
[codex:306256]   2642	        /////////////////////////
[codex:306256]   2643	        // EFFECTS & INTERACTIONS
[codex:306256]   2644	        // (No safe failures beyond this point)
[codex:306256]   2645	
[codex:306256]   2646	        // We ERC-20 transfer the asset into the protocol (note: pre-conditions already checked above)
[codex:306256]   2647	        err = doTransferOut(asset, msg.sender, amount);
[codex:306256]   2648	        if (err != Error.NO_ERROR) {
[codex:306256]   2649	            // This is safe since it's our first interaction and it didn't do anything if it failed
[codex:306256]   2650	            return fail(err, FailureInfo.BORROW_TRANSFER_OUT_FAILED);
[codex:306256]   2651	        }
[codex:306256]   2652	
[codex:306256]   2653	        // Save market updates
[codex:306256]   2654	        market.blockNumber = getBlockNumber();
[codex:306256]   2655	        market.totalBorrows =  localResults.newTotalBorrows;
[codex:306256]   2656	        market.supplyRateMantissa = localResults.newSupplyRateMantissa;
[codex:306256]   2657	        market.supplyIndex = localResults.newSupplyIndex;
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Referencing fee-on-transfer token handling**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '380,445p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]    380	        if (token.balanceOf(from) < amount) {
[codex:306256]    381	            return Error.TOKEN_INSUFFICIENT_BALANCE;
[codex:306256]    382	        }
[codex:306256]    383	
[codex:306256]    384	        return Error.NO_ERROR;
[codex:306256]    385	    }
[codex:306256]    386	
[codex:306256]    387	    /**
[codex:306256]    388	      * @dev Similar to EIP20 transfer, except it handles a False result from `transferFrom` and returns an explanatory
[codex:306256]    389	      *      error code rather than reverting.  If caller has not called `checkTransferIn`, this may revert due to
[codex:306256]    390	      *      insufficient balance or insufficient allowance. If caller has called `checkTransferIn` prior to this call,
[codex:306256]    391	      *      and it returned Error.NO_ERROR, this should not revert in normal conditions.
[codex:306256]    392	      *
[codex:306256]    393	      *      Note: This wrapper safely handles non-standard ERC-20 tokens that do not return a value.
[codex:306256]    394	      *            See here: https://medium.com/coinmonks/missing-return-value-bug-at-least-130-tokens-affected-d67bf08521ca
[codex:306256]    395	      */
[codex:306256]    396	    function doTransferIn(address asset, address from, uint amount) internal returns (Error) {
[codex:306256]    397	        EIP20NonStandardInterface token = EIP20NonStandardInterface(asset);
[codex:306256]    398	
[codex:306256]    399	        bool result;
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Summarizing potential vulnerabilities and findings**
[codex:306256] 
[codex:306256] I'm going through a detailed audit of the contract's functions related to token transfers, interest calculations, and market support. There are several nuanced issues like missing balance checks after transfers, possible rounding effects on fees, discrepancies in interest rate calculations with fee-on-transfer tokens, and missing reentrancy guards on key functions. I also see risks related to market support resetting and liquidation logic. I plan to finalize 2-3 key findings with severity, evidence, and code locations to prepare a structured JSON report for the user.
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1538,1555p'" in /tmp/codex-multi-z9xjivxl succeeded in 6ms:
[codex:306256]   1538	        (err, localResults.userSupplyUpdated) = add(localResults.userSupplyCurrent, amount);
[codex:306256]   1539	        if (err != Error.NO_ERROR) {
[codex:306256]   1540	            return fail(err, FailureInfo.SUPPLY_NEW_TOTAL_BALANCE_CALCULATION_FAILED);
[codex:306256]   1541	        }
[codex:306256]   1542	
[codex:306256]   1543	        // We calculate the protocol's totalSupply by subtracting the user's prior checkpointed balance, adding user's updated supply
[codex:306256]   1544	        (err, localResults.newTotalSupply) = addThenSub(market.totalSupply, localResults.userSupplyUpdated, balance.principal);
[codex:306256]   1545	        if (err != Error.NO_ERROR) {
[codex:306256]   1546	            return fail(err, FailureInfo.SUPPLY_NEW_TOTAL_SUPPLY_CALCULATION_FAILED);
[codex:306256]   1547	        }
[codex:306256]   1548	
[codex:306256]   1549	        // We need to calculate what the updated cash will be after we transfer in from user
[codex:306256]   1550	        localResults.currentCash = getCash(asset);
[codex:306256]   1551	
[codex:306256]   1552	        (err, localResults.updatedCash) = add(localResults.currentCash, amount);
[codex:306256]   1553	        if (err != Error.NO_ERROR) {
[codex:306256]   1554	            return fail(err, FailureInfo.SUPPLY_NEW_TOTAL_CASH_CALCULATION_FAILED);
[codex:306256]   1555	        }
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing balance update methods**
[codex:306256] exec
[codex:306256] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1976,2008p'" in /tmp/codex-multi-z9xjivxl succeeded in 7ms:
[codex:306256]   1976	        (err, localResults.userBorrowUpdated) = sub(localResults.userBorrowCurrent, localResults.repayAmount);
[codex:306256]   1977	        if (err != Error.NO_ERROR) {
[codex:306256]   1978	            return fail(err, FailureInfo.REPAY_BORROW_NEW_TOTAL_BALANCE_CALCULATION_FAILED);
[codex:306256]   1979	        }
[codex:306256]   1980	
[codex:306256]   1981	        // Fail gracefully if asset is not approved or has insufficient balance
[codex:306256]   1982	        // Note: this checks that repayAmount is less than or equal to their ERC-20 balance
[codex:306256]   1983	        err = checkTransferIn(asset, msg.sender, localResults.repayAmount);
[codex:306256]   1984	        if (err != Error.NO_ERROR) {
[codex:306256]   1985	            return fail(err, FailureInfo.REPAY_BORROW_TRANSFER_IN_NOT_POSSIBLE);
[codex:306256]   1986	        }
[codex:306256]   1987	
[codex:306256]   1988	        // We calculate the protocol's totalBorrow by subtracting the user's prior checkpointed balance, adding user's updated borrow
[codex:306256]   1989	        // Note that, even though the customer is paying some of their borrow, if they've accumulated a lot of interest since their last
[codex:306256]   1990	        // action, the updated balance *could* be higher than the prior checkpointed balance.
[codex:306256]   1991	        (err, localResults.newTotalBorrows) = addThenSub(market.totalBorrows, localResults.userBorrowUpdated, borrowBalance.principal);
[codex:306256]   1992	        if (err != Error.NO_ERROR) {
[codex:306256]   1993	            return fail(err, FailureInfo.REPAY_BORROW_NEW_TOTAL_BORROW_CALCULATION_FAILED);
[codex:306256]   1994	        }
[codex:306256]   1995	
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Analyzing reentrancy and accounting vulnerabilities**
[codex:306256] 
[codex:306256] I’m reviewing risks from reentrancy due to transfer calls happening before state updates, which can let attackers double-borrow or withdraw funds. Also, I’m looking at accounting issues from tokens that charge transfer fees—this can inflate user balances and misstate protocol cash, enabling exploits. I’m noting exact file paths and line numbers to support these findings and preparing a concise JSON summary with two main findings.
[codex:306256] exec
[codex:306256] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-z9xjivxl succeeded in 5ms:
[codex:306256] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:306256] 
[codex:306256] thinking
[codex:306256] **Composing detailed JSON findings report**
[codex:306256] 
[codex:306256] I'm putting together a JSON report summarizing two main issues: a high-severity reentrancy vulnerability from token transfers happening before state updates in borrow/withdraw functions, and a medium-severity accounting problem with fee-on-transfer tokens causing balance mismatches. Each finding includes a clear exploit scenario, recommended fixes, evidence snippets, and relevant code locations to help the user understand and address these security risks.
[codex:306256] codex
[codex:306256] {"no_findings":false,"summary":"Identified 2 issues: a reentrancy window on transfer-out in borrow/withdraw, and accounting mismatches for fee-on-transfer tokens in transfer-in paths.","findings":[{"severity":"high","category":"reentrancy","title":"Reentrancy via transfer-out before state updates in borrow/withdraw","exploit_scenario":"An attacker contract borrows or withdraws an asset that triggers a callback on transfer (e.g., ERC777-style hooks). During `doTransferOut`, the token or recipient hook reenters `borrow`/`withdraw` before the protocol updates market and user balances. Because the checks still see the old balances, the attacker can repeatedly borrow/withdraw in a single transaction and drain available cash.","recommendation":"Apply checks-effects-interactions: update market/user balances before calling `doTransferOut`, or add a reentrancy guard around state-changing entry points. Alternatively, restrict supported assets to ERC20s without callbacks.","evidence":"`borrow` and `withdraw` perform `doTransferOut` and only update market/user storage afterwards, leaving a reentrancy window.","locations":["contracts/Contract.sol:1734","contracts/Contract.sol:2646"]},{"severity":"medium","category":"other","title":"Fee-on-transfer tokens can mint unbacked balances due to assuming full transfer-in amount","exploit_scenario":"If a supported asset charges a transfer fee, a user can supply or repay using `amount` while the protocol receives less. The contract credits the full `amount` to supply or reduces borrow by the full `amount`, creating unbacked balances. The attacker can then borrow other assets or withdraw more than the protocol actually holds, leading to insolvency.","recommendation":"Use balance-delta accounting for transfer-ins (record `cashBefore`, execute transfer, compute `cashAfter - cashBefore` and use that actual amount). Consider rejecting fee-on-transfer/deflationary tokens at listing time.","evidence":"`doTransferIn` only inspects return data and never checks the actual balance delta; supply/repay calculations use the requested `amount` before the transfer occurs.","locations":["contracts/Contract.sol:396","contracts/Contract.sol:401","contracts/Contract.sol:1538","contracts/Contract.sol:1552","contracts/Contract.sol:1976"]}]}
[codex:306256] tokens used
[codex:306256] 105,326
[codex:306256] {"no_findings":false,"summary":"Identified 2 issues: a reentrancy window on transfer-out in borrow/withdraw, and accounting mismatches for fee-on-transfer tokens in transfer-in paths.","findings":[{"severity":"high","category":"reentrancy","title":"Reentrancy via transfer-out before state updates in borrow/withdraw","exploit_scenario":"An attacker contract borrows or withdraws an asset that triggers a callback on transfer (e.g., ERC777-style hooks). During `doTransferOut`, the token or recipient hook reenters `borrow`/`withdraw` before the protocol updates market and user balances. Because the checks still see the old balances, the attacker can repeatedly borrow/withdraw in a single transaction and drain available cash.","recommendation":"Apply checks-effects-interactions: update market/user balances before calling `doTransferOut`, or add a reentrancy guard around state-changing entry points. Alternatively, restrict supported assets to ERC20s without callbacks.","evidence":"`borrow` and `withdraw` perform `doTransferOut` and only update market/user storage afterwards, leaving a reentrancy window.","locations":["contracts/Contract.sol:1734","contracts/Contract.sol:2646"]},{"severity":"medium","category":"other","title":"Fee-on-transfer tokens can mint unbacked balances due to assuming full transfer-in amount","exploit_scenario":"If a supported asset charges a transfer fee, a user can supply or repay using `amount` while the protocol receives less. The contract credits the full `amount` to supply or reduces borrow by the full `amount`, creating unbacked balances. The attacker can then borrow other assets or withdraw more than the protocol actually holds, leading to insolvency.","recommendation":"Use balance-delta accounting for transfer-ins (record `cashBefore`, execute transfer, compute `cashAfter - cashBefore` and use that actual amount). Consider rejecting fee-on-transfer/deflationary tokens at listing time.","evidence":"`doTransferIn` only inspects return data and never checks the actual balance delta; supply/repay calculations use the requested `amount` before the transfer occurs.","locations":["contracts/Contract.sol:396","contracts/Contract.sol:401","contracts/Contract.sol:1538","contracts/Contract.sol:1552","contracts/Contract.sol:1976"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-28T16:16:30.207842+00:00",
        "returncode": 0
    },
    "summary": "Identified 2 issues: a reentrancy window on transfer-out in borrow/withdraw, and accounting mismatches for fee-on-transfer tokens in transfer-in paths.",
    "raw_final": {
        "summary": "Identified 2 issues: a reentrancy window on transfer-out in borrow/withdraw, and accounting mismatches for fee-on-transfer tokens in transfer-in paths.",
        "findings": [
            {
                "title": "Reentrancy via transfer-out before state updates in borrow/withdraw",
                "category": "reentrancy",
                "evidence": "`borrow` and `withdraw` perform `doTransferOut` and only update market/user storage afterwards, leaving a reentrancy window.",
                "severity": "high",
                "locations": [
                    "contracts/Contract.sol:1734",
                    "contracts/Contract.sol:2646"
                ],
                "recommendation": "Apply checks-effects-interactions: update market/user balances before calling `doTransferOut`, or add a reentrancy guard around state-changing entry points. Alternatively, restrict supported assets to ERC20s without callbacks.",
                "exploit_scenario": "An attacker contract borrows or withdraws an asset that triggers a callback on transfer (e.g., ERC777-style hooks). During `doTransferOut`, the token or recipient hook reenters `borrow`/`withdraw` before the protocol updates market and user balances. Because the checks still see the old balances, the attacker can repeatedly borrow/withdraw in a single transaction and drain available cash."
            },
            {
                "title": "Fee-on-transfer tokens can mint unbacked balances due to assuming full transfer-in amount",
                "category": "other",
                "evidence": "`doTransferIn` only inspects return data and never checks the actual balance delta; supply/repay calculations use the requested `amount` before the transfer occurs.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:396",
                    "contracts/Contract.sol:401",
                    "contracts/Contract.sol:1538",
                    "contracts/Contract.sol:1552",
                    "contracts/Contract.sol:1976"
                ],
                "recommendation": "Use balance-delta accounting for transfer-ins (record `cashBefore`, execute transfer, compute `cashAfter - cashBefore` and use that actual amount). Consider rejecting fee-on-transfer/deflationary tokens at listing time.",
                "exploit_scenario": "If a supported asset charges a transfer fee, a user can supply or repay using `amount` while the protocol receives less. The contract credits the full `amount` to supply or reduces borrow by the full `amount`, creating unbacked balances. The attacker can then borrow other assets or withdraw more than the protocol actually holds, leading to insolvency."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
18
EXT*/BALANCE
20
Total opcodes
13245
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x017c
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH1 0xe0
00000014: PUSH1 0x02
00000016: EXP
00000017: PUSH1 0x00
00000019: CALLDATALOAD
0000001a: DIV
0000001b: AND
0000001c: PUSH4 0x118e31b7
00000021: DUP2
00000022: EQ
00000023: PUSH2 0x0181
00000026: JUMPI
00000027: DUP1
00000028: PUSH4 0x24021127
0000002d: EQ
0000002e: PUSH2 0x01ba
00000031: JUMPI
00000032: DUP1
00000033: PUSH4 0x26617c28
00000038: EQ
00000039: PUSH2 0x01d2
0000003c: JUMPI
0000003d: DUP1
0000003e: PUSH4 0x26782247
00000043: EQ
00000044: PUSH2 0x01ec
00000047: JUMPI
00000048: DUP1
00000049: PUSH4 0x3be59443
0000004e: EQ
0000004f: PUSH2 0x021d
00000052: JUMPI
00000053: DUP1
00000054: PUSH4 0x4706c375
00000059: EQ
0000005a: PUSH2 0x023e
0000005d: JUMPI
0000005e: DUP1
0000005f: PUSH4 0x4b8a3529
00000064: EQ
00000065: PUSH2 0x0262
00000068: JUMPI
00000069: DUP1
0000006a: PUSH4 0x5c975abb
0000006f: EQ
00000070: PUSH2 0x0286
00000073: JUMPI
00000074: DUP1
00000075: PUSH4 0x5cf756d2
0000007a: EQ
0000007b: PUSH2 0x02af
0000007e: JUMPI
0000007f: DUP1
00000080: PUSH4 0x5e9a523c
00000085: EQ
00000086: PUSH2 0x02d6
00000089: JUMPI
0000008a: DUP1
0000008b: PUSH4 0x5ec88c79
00000090: EQ
00000091: PUSH2 0x02f7
00000094: JUMPI
00000095: DUP1
00000096: PUSH4 0x6e2ede03
0000009b: EQ
0000009c: PUSH2 0x0318
0000009f: JUMPI
000000a0: DUP1
000000a1: PUSH4 0x7dc0d1d0
000000a6: EQ
000000a7: PUSH2 0x032d
000000aa: JUMPI
000000ab: DUP1
000000ac: PUSH4 0x8053fcbe
000000b1: EQ
000000b2: PUSH2 0x0342
000000b5: JUMPI
000000b6: DUP1
000000b7: PUSH4 0x8e8f294b
000000bc: EQ
000000bd: PUSH2 0x0357
000000c0: JUMPI
000000c1: DUP1
000000c2: PUSH4 0x9f180cf1
000000c7: EQ
000000c8: PUSH2 0x03c9
000000cb: JUMPI
000000cc: DUP1
000000cd: PUSH4 0xabdb5ea8
000000d2: EQ
000000d3: PUSH2 0x0408
000000d6: JUMPI
000000d7: DUP1
000000d8: PUSH4 0xb4eae1cb
000000dd: EQ
000000de: PUSH2 0x042c
000000e1: JUMPI
000000e2: DUP1
000000e3: PUSH4 0xb71d1a0c
000000e8: EQ
000000e9: PUSH2 0x0441
000000ec: JUMPI
000000ed: DUP1
000000ee: PUSH4 0xb7adddac
000000f3: EQ
000000f4: PUSH2 0x0462
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0xb8bb5c42
000000fe: EQ
000000ff: PUSH2 0x04a2
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0xba377731
00000109: EQ
0000010a: PUSH2 0x04b7
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0xbeb54615
00000114: EQ
00000115: PUSH2 0x04de
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0xc1abfaa3
0000011f: EQ
00000120: PUSH2 0x04f6
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0xc365a646
0000012a: EQ
0000012b: PUSH2 0x051d
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0xdbe2bc84
00000135: EQ
00000136: PUSH2 0x0538
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0xe61604cf
00000140: EQ
00000141: PUSH2 0x0559
00000144: JUMPI
00000145: DUP1
00000146: PUSH4 0xe9c714f2
0000014b: EQ
0000014c: PUSH2 0x0589
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0xf2b9fdb8
00000156: EQ
00000157: PUSH2 0x059e
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0xf3fef3a3
00000161: EQ
00000162: PUSH2 0x05c2
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0xf851a440
0000016c: EQ
0000016d: PUSH2 0x05e6
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0xfc7d42d7
00000177: EQ
00000178: PUSH2 0x05fb
0000017b: JUMPI
0000017c: JUMPDEST
0000017d: PUSH1 0x00
0000017f: DUP1
00000180: REVERT
00000181: JUMPDEST
00000182: CALLVALUE
00000183: DUP1
00000184: ISZERO
00000185: PUSH2 0x018d
00000188: JUMPI
00000189: PUSH1 0x00
0000018b: DUP1
0000018c: REVERT
0000018d: JUMPDEST
0000018e: POP
0000018f: PUSH2 0x01a8
00000192: PUSH1 0x01
00000194: PUSH1 0xa0
00000196: PUSH1 0x02
00000198: EXP
00000199: SUB
0000019a: PUSH1 0x04
0000019c: CALLDATALOAD
0000019d: DUP2
0000019e: AND
0000019f: SWAP1
000001a0: PUSH1 0x24
000001a2: CALLDATALOAD
000001a3: AND
000001a4: PUSH2 0x0622
000001a7: JUMP
000001a8: JUMPDEST
000001a9: PUSH1 0x40
000001ab: DUP1
000001ac: MLOAD
000001ad: SWAP2
000001ae: DUP3
000001af: MSTORE
000001b0: MLOAD
000001b1: SWAP1
000001b2: DUP2
000001b3: SWAP1
000001b4: SUB
000001b5: PUSH1 0x20
000001b7: ADD
000001b8: SWAP1
000001b9: RETURN
000001ba: JUMPDEST
000001bb: CALLVALUE
000001bc: DUP1
000001bd: ISZERO
000001be: PUSH2 0x01c6
000001c1: JUMPI
000001c2: PUSH1 0x00
000001c4: DUP1
000001c5: REVERT
000001c6: JUMPDEST
000001c7: POP
000001c8: PUSH2 0x01a8
000001cb: PUSH1 0x04
000001cd: CALLDATALOAD
000001ce: PUSH2 0x06de
000001d1: JUMP
000001d2: JUMPDEST
000001d3: CALLVALUE
000001d4: DUP1
000001d5: ISZERO
000001d6: PUSH2 0x01de
000001d9: JUMPI
000001da: PUSH1 0x00
000001dc: DUP1
000001dd: REVERT
000001de: JUMPDEST
000001df: POP
000001e0: PUSH2 0x01a8
000001e3: PUSH1 0x04
000001e5: CALLDATALOAD
000001e6: ISZERO
000001e7: ISZERO
000001e8: PUSH2 0x0772
000001eb: JUMP
000001ec: JUMPDEST
000001ed: CALLVALUE
000001ee: DUP1
000001ef: ISZERO
000001f0: PUSH2 0x01f8
000001f3: JUMPI
000001f4: PUSH1 0x00
000001f6: DUP1
000001f7: REVERT
000001f8: JUMPDEST
000001f9: POP
000001fa: PUSH2 0x0201
000001fd: PUSH2 0x07e9
00000200: JUMP
00000201: JUMPDEST
00000202: PUSH1 0x40
00000204: DUP1
00000205: MLOAD
00000206: PUSH1 0x01
00000208: PUSH1 0xa0
0000020a: PUSH1 0x02
0000020c: EXP
0000020d: SUB
0000020e: SWAP1
0000020f: SWAP3
00000210: AND
00000211: DUP3
00000212: MSTORE
00000213: MLOAD
00000214: SWAP1
00000215: DUP2
00000216: SWAP1
00000217: SUB
00000218: PUSH1 0x20
0000021a: ADD
0000021b: SWAP1
0000021c: RETURN
0000021d: JUMPDEST
0000021e: CALLVALUE
0000021f: DUP1
00000220: ISZERO
00000221: PUSH2 0x0229
00000224: JUMPI
00000225: PUSH1 0x00
00000227: DUP1
00000228: REVERT
00000229: JUMPDEST
0000022a: POP
0000022b: PUSH2 0x01a8
0000022e: PUSH1 0x01
00000230: PUSH1 0xa0
00000232: PUSH1 0x02
00000234: EXP
00000235: SUB
00000236: PUSH1 0x04
00000238: CALLDATALOAD
00000239: AND
0000023a: PUSH2 0x07f8
0000023d: JUMP
0000023e: JUMPDEST
0000023f: CALLVALUE
00000240: DUP1
00000241: ISZERO
00000242: PUSH2 0x024a
00000245: JUMPI
00000246: PUSH1 0x00
00000248: DUP1
00000249: REVERT
0000024a: JUMPDEST
0000024b: POP
0000024c: PUSH2 0x01a8
0000024f: PUSH1 0x01
00000251: PUSH1 0xa0
00000253: PUSH1 0x02
00000255: EXP
00000256: SUB
00000257: PUSH1 0x04
00000259: CALLDATALOAD
0000025a: AND
0000025b: PUSH1 0x24
0000025d: CALLDATALOAD
0000025e: PUSH2 0x092a
00000261: JUMP
00000262: JUMPDEST
00000263: CALLVALUE
00000264: DUP1
00000265: ISZERO
00000266: PUSH2 0x026e
00000269: JUMPI
0000026a: PUSH1 0x00
0000026c: DUP1
0000026d: REVERT
0000026e: JUMPDEST
0000026f: POP
00000270: PUSH2 0x01a8
00000273: PUSH1 0x01
00000275: PUSH1 0xa0
00000277: PUSH1 0x02
00000279: EXP
0000027a: SUB
0000027b: PUSH1 0x04
0000027d: CALLDATALOAD
0000027e: AND
0000027f: PUSH1 0x24
00000281: CALLDATALOAD
00000282: PUSH2 0x0a67
00000285: JUMP
00000286: JUMPDEST
00000287: CALLVALUE
00000288: DUP1
00000289: ISZERO
0000028a: PUSH2 0x0292
0000028d: JUMPI
0000028e: PUSH1 0x00
00000290: DUP1
00000291: REVERT
00000292: JUMPDEST
00000293: POP
00000294: PUSH2 0x029b
00000297: PUSH2 0x0f86
0000029a: JUMP
0000029b: JUMPDEST
0000029c: PUSH1 0x40
0000029e: DUP1
0000029f: MLOAD
000002a0: SWAP2
000002a1: ISZERO
000002a2: ISZERO
000002a3: DUP3
000002a4: MSTORE
000002a5: MLOAD
000002a6: SWAP1
000002a7: DUP2
000002a8: SWAP1
000002a9: SUB
000002aa: PUSH1 0x20
000002ac: ADD
000002ad: SWAP1
000002ae: RETURN
000002af: JUMPDEST
000002b0: CALLVALUE
000002b1: DUP1
000002b2: ISZERO
000002b3: PUSH2 0x02bb
000002b6: JUMPI
000002b7: PUSH1 0x00
000002b9: DUP1
000002ba: REVERT
000002bb: JUMPDEST
000002bc: POP
000002bd: PUSH2 0x01a8
000002c0: PUSH1 0x01
000002c2: PUSH1 0xa0
000002c4: PUSH1 0x02
000002c6: EXP
000002c7: SUB
000002c8: PUSH1 0x04
000002ca: CALLDATALOAD
000002cb: DUP2
000002cc: AND
000002cd: SWAP1
000002ce: PUSH1 0x24
000002d0: CALLDATALOAD
000002d1: AND
000002d2: PUSH2 0x0f8f
000002d5: JUMP
000002d6: JUMPDEST
000002d7: CALLVALUE
000002d8: DUP1
000002d9: ISZERO
000002da: PUSH2 0x02e2
000002dd: JUMPI
000002de: PUSH1 0x00
000002e0: DUP1
000002e1: REVERT
000002e2: JUMPDEST
000002e3: POP
000002e4: PUSH2 0x01a8
000002e7: PUSH1 0x01
000002e9: PUSH1 0xa0
000002eb: PUSH1 0x02
000002ed: EXP
000002ee: SUB
000002ef: PUSH1 0x04
000002f1: CALLDATALOAD
000002f2: AND
000002f3: PUSH2 0x103c
000002f6: JUMP
000002f7: JUMPDEST
000002f8: CALLVALUE
000002f9: DUP1
000002fa: ISZERO
000002fb: PUSH2 0x0303
000002fe: JUMPI
000002ff: PUSH1 0x00
00000301: DUP1
00000302: REVERT
00000303: JUMPDEST
00000304: POP
00000305: PUSH2 0x01a8
00000308: PUSH1 0x01
0000030a: PUSH1 0xa0
0000030c: PUSH1 0x02
0000030e: EXP
0000030f: SUB
00000310: PUSH1 0x04
00000312: CALLDATALOAD
00000313: AND
00000314: PUSH2 0x1079
00000317: JUMP
00000318: JUMPDEST
00000319: CALLVALUE
0000031a: DUP1
0000031b: ISZERO
0000031c: PUSH2 0x0324
0000031f: JUMPI
00000320: PUSH1 0x00
00000322: DUP1
00000323: REVERT
00000324: JUMPDEST
00000325: POP
00000326: PUSH2 0x01a8
00000329: PUSH2 0x10ea
0000032c: JUMP
0000032d: JUMPDEST
0000032e: CALLVALUE
0000032f: DUP1
00000330: ISZERO
00000331: PUSH2 0x0339
00000334: JUMPI
00000335: PUSH1 0x00
00000337: DUP1
00000338: REVERT
00000339: JUMPDEST
0000033a: POP
0000033b: PUSH2 0x0201
0000033e: PUSH2 0x10f0
00000341: JUMP
00000342: JUMPDEST
00000343: CALLVALUE
00000344: DUP1
00000345: ISZERO
00000346: PUSH2 0x034e
00000349: JUMPI
0000034a: PUSH1 0x00
0000034c: DUP1
0000034d: REVERT
0000034e: JUMPDEST
0000034f: POP
00000350: PUSH2 0x01a8
00000353: PUSH2 0x10ff
00000356: JUMP
00000357: JUMPDEST
00000358: CALLVALUE
00000359: DUP1
0000035a: ISZERO
0000035b: PUSH2 0x0363
0000035e: JUMPI
0000035f: PUSH1 0x00
00000361: DUP1
00000362: REVERT
00000363: JUMPDEST
00000364: POP
00000365: PUSH2 0x0378
00000368: PUSH1 0x01
0000036a: PUSH1 0xa0
0000036c: PUSH1 0x02
0000036e: EXP
0000036f: SUB
00000370: PUSH1 0x04
00000372: CALLDATALOAD
00000373: AND
00000374: PUSH2 0x1105
00000377: JUMP
00000378: JUMPDEST
00000379: PUSH1 0x40
0000037b: DUP1
0000037c: MLOAD
0000037d: SWAP10
0000037e: ISZERO
0000037f: ISZERO
00000380: DUP11
00000381: MSTORE
00000382: PUSH1 0x20
00000384: DUP11
00000385: ADD
00000386: SWAP9
00000387: SWAP1
00000388: SWAP9
00000389: MSTORE
0000038a: PUSH1 0x01
0000038c: PUSH1 0xa0
0000038e: PUSH1 0x02
00000390: EXP
00000391: SUB
00000392: SWAP1
00000393: SWAP7
00000394: AND
00000395: DUP9
00000396: DUP9
00000397: ADD
00000398: MSTORE
00000399: PUSH1 0x60
0000039b: DUP9
0000039c: ADD
0000039d: SWAP5
0000039e: SWAP1
0000039f: SWAP5
000003a0: MSTORE
000003a1: PUSH1 0x80
000003a3: DUP8
000003a4: ADD
000003a5: SWAP3
000003a6: SWAP1
000003a7: SWAP3
000003a8: MSTORE
000003a9: PUSH1 0xa0
000003ab: DUP7
000003ac: ADD
000003ad: MSTORE
000003ae: PUSH1 0xc0
000003b0: DUP6
000003b1: ADD
000003b2: MSTORE
000003b3: PUSH1 0xe0
000003b5: DUP5
000003b6: ADD
000003b7: MSTORE
000003b8: PUSH2 0x0100
000003bb: DUP4
000003bc: ADD
000003bd: MSTORE
000003be: MLOAD
000003bf: SWAP1
000003c0: DUP2
000003c1: SWAP1
000003c2: SUB
000003c3: PUSH2 0x0120
000003c6: ADD
000003c7: SWAP1
000003c8: RETURN
000003c9: JUMPDEST
000003ca: CALLVALUE
000003cb: DUP1
000003cc: ISZERO
000003cd: PUSH2 0x03d5
000003d0: JUMPI
000003d1: PUSH1 0x00
000003d3: DUP1
000003d4: REVERT
000003d5: JUMPDEST
000003d6: POP
000003d7: PUSH2 0x03ea
000003da: PUSH1 0x01
000003dc: PUSH1 0xa0
000003de: PUSH1 0x02
000003e0: EXP
000003e1: SUB
000003e2: PUSH1 0x04
000003e4: CALLDATALOAD
000003e5: AND
000003e6: PUSH2 0x115f
000003e9: JUMP
000003ea: JUMPDEST
000003eb: PUSH1 0x40
000003ed: DUP1
000003ee: MLOAD
000003ef: SWAP4
000003f0: DUP5
000003f1: MSTORE
000003f2: PUSH1 0x20
000003f4: DUP5
000003f5: ADD
000003f6: SWAP3
000003f7: SWAP1
000003f8: SWAP3
000003f9: MSTORE
000003fa: DUP3
000003fb: DUP3
000003fc: ADD
000003fd: MSTORE
000003fe: MLOAD
000003ff: SWAP1
00000400: DUP2
00000401: SWAP1
00000402: SUB
00000403: PUSH1 0x60
00000405: ADD
00000406: SWAP1
00000407: RETURN
00000408: JUMPDEST
00000409: CALLVALUE
0000040a: DUP1
0000040b: ISZERO
0000040c: PUSH2 0x0414
0000040f: JUMPI
00000410: PUSH1 0x00
00000412: DUP1
00000413: REVERT
00000414: JUMPDEST
00000415: POP
00000416: PUSH2 0x01a8
00000419: PUSH1 0x01
0000041b: PUSH1 0xa0
0000041d: PUSH1 0x02
0000041f: EXP
00000420: SUB
00000421: PUSH1 0x04
00000423: CALLDATALOAD
00000424: AND
00000425: PUSH1 0x24
00000427: CALLDATALOAD
00000428: PUSH2 0x11bb
0000042b: JUMP
0000042c: JUMPDEST
0000042d: CALLVALUE
0000042e: DUP1
0000042f: ISZERO
00000430: PUSH2 0x0438
00000433: JUMPI
00000434: PUSH1 0x00
00000436: DUP1
00000437: REVERT
00000438: JUMPDEST
00000439: POP
0000043a: PUSH2 0x01a8
0000043d: PUSH2 0x1643
00000440: JUMP
00000441: JUMPDEST
00000442: CALLVALUE
00000443: DUP1
00000444: ISZERO
00000445: PUSH2 0x044d
00000448: JUMPI
00000449: PUSH1 0x00
0000044b: DUP1
0000044c: REVERT
0000044d: JUMPDEST
0000044e: POP
0000044f: PUSH2 0x01a8
00000452: PUSH1 0x01
00000454: PUSH1 0xa0
00000456: PUSH1 0x02
00000458: EXP
00000459: SUB
0000045a: PUSH1 0x04
0000045c: CALLDATALOAD
0000045d: AND
0000045e: PUSH2 0x1649
00000461: JUMP
00000462: JUMPDEST
00000463: CALLVALUE
00000464: DUP1
00000465: ISZERO
00000466: PUSH2 0x046e
00000469: JUMPI
0000046a: PUSH1 0x00
0000046c: DUP1
0000046d: REVERT
0000046e: JUMPDEST
0000046f: POP
00000470: PUSH2 0x0489
00000473: PUSH1 0x01
00000475: PUSH1 0xa0
00000477: PUSH1 0x02
00000479: EXP
0000047a: SUB
0000047b: PUSH1 0x04
0000047d: CALLDATALOAD
0000047e: DUP2
0000047f: AND
00000480: SWAP1
00000481: PUSH1 0x24
00000483: CALLDATALOAD
00000484: AND
00000485: PUSH2 0x16e0
00000488: JUMP
00000489: JUMPDEST
0000048a: PUSH1 0x40
0000048c: DUP1
0000048d: MLOAD
0000048e: SWAP3
0000048f: DUP4
00000490: MSTORE
00000491: PUSH1 0x20
00000493: DUP4
00000494: ADD
00000495: SWAP2
00000496: SWAP1
00000497: SWAP2
00000498: MSTORE
00000499: DUP1
0000049a: MLOAD
0000049b: SWAP2
0000049c: DUP3
0000049d: SWAP1
0000049e: SUB
0000049f: ADD
000004a0: SWAP1
000004a1: RETURN
000004a2: JUMPDEST
000004a3: CALLVALUE
000004a4: DUP1
000004a5: ISZERO
000004a6: PUSH2 0x04ae
000004a9: JUMPI
000004aa: PUSH1 0x00
000004ac: DUP1
000004ad: REVERT
000004ae: JUMPDEST
000004af: POP
000004b0: PUSH2 0x01a8
000004b3: PUSH2 0x1704
000004b6: JUMP
000004b7: JUMPDEST
000004b8: CALLVALUE
000004b9: DUP1
000004ba: ISZERO
000004bb: PUSH2 0x04c3
000004be: JUMPI
000004bf: PUSH1 0x00
000004c1: DUP1
000004c2: REVERT
000004c3: JUMPDEST
000004c4: POP
000004c5: PUSH2 0x01a8
000004c8: PUSH1 0x01
000004ca: PUSH1 0xa0
000004cc: PUSH1 0x02
000004ce: EXP
000004cf: SUB
000004d0: PUSH1 0x04
000004d2: CALLDATALOAD
000004d3: DUP2
000004d4: AND
000004d5: SWAP1
000004d6: PUSH1 0x24
000004d8: CALLDATALOAD
000004d9: AND
000004da: PUSH2 0x170a
000004dd: JUMP
000004de: JUMPDEST
000004df: CALLVALUE
000004e0: DUP1
000004e1: ISZERO
000004e2: PUSH2 0x04ea
000004e5: JUMPI
000004e6: PUSH1 0x00
000004e8: DUP1
000004e9: REVERT
000004ea: JUMPDEST
000004eb: POP
000004ec: PUSH2 0x0201
000004ef: PUSH1 0x04
000004f1: CALLDATALOAD
000004f2: PUSH2 0x1763
000004f5: JUMP
000004f6: JUMPDEST
000004f7: CALLVALUE
000004f8: DUP1
000004f9: ISZERO
000004fa: PUSH2 0x0502
000004fd: JUMPI
000004fe: PUSH1 0x00
00000500: DUP1
00000501: REVERT
00000502: JUMPDEST
00000503: POP
00000504: PUSH2 0x01a8
00000507: PUSH1 0x01
00000509: PUSH1 0xa0
0000050b: PUSH1 0x02
0000050d: EXP
0000050e: SUB
0000050f: PUSH1 0x04
00000511: CALLDATALOAD
00000512: DUP2
00000513: AND
00000514: SWAP1
00000515: PUSH1 0x24
00000517: CALLDATALOAD
00000518: AND
00000519: PUSH2 0x178b
0000051c: JUMP
0000051d: JUMPDEST
0000051e: CALLVALUE
0000051f: DUP1
00000520: ISZERO
00000521: PUSH2 0x0529
00000524: JUMPI
00000525: PUSH1 0x00
00000527: DUP1
00000528: REVERT
00000529: JUMPDEST
0000052a: POP
0000052b: PUSH2 0x01a8
0000052e: PUSH1 0x04
00000530: CALLDATALOAD
00000531: PUSH1 0x24
00000533: CALLDATALOAD
00000534: PUSH2 0x193a
00000537: JUMP
00000538: JUMPDEST
00000539: CALLVALUE
0000053a: DUP1
0000053b: ISZERO
0000053c: PUSH2 0x0544
0000053f: JUMPI
00000540: PUSH1 0x00
00000542: DUP1
00000543: REVERT
00000544: JUMPDEST
00000545: POP
00000546: PUSH2 0x01a8
00000549: PUSH1 0x01
0000054b: PUSH1 0xa0
0000054d: PUSH1 0x02
0000054f: EXP
00000550: SUB
00000551: PUSH1 0x04
00000553: CALLDATALOAD
00000554: AND
00000555: PUSH2 0x1af6
00000558: JUMP
00000559: JUMPDEST
0000055a: CALLVALUE
0000055b: DUP1
0000055c: ISZERO
0000055d: PUSH2 0x0565
00000560: JUMPI
00000561: PUSH1 0x00
00000563: DUP1
00000564: REVERT
00000565: JUMPDEST
00000566: POP
00000567: PUSH2 0x01a8
0000056a: PUSH1 0x01
0000056c: PUSH1 0xa0
0000056e: PUSH1 0x02
00000570: EXP
00000571: SUB
00000572: PUSH1 0x04
00000574: CALLDATALOAD
00000575: DUP2
00000576: AND
00000577: SWAP1
00000578: PUSH1 0x24
0000057a: CALLDATALOAD
0000057b: DUP2
0000057c: AND
0000057d: SWAP1
0000057e: PUSH1 0x44
00000580: CALLDATALOAD
00000581: AND
00000582: PUSH1 0x64
00000584: CALLDATALOAD
00000585: PUSH2 0x1b9c
00000588: JUMP
00000589: JUMPDEST
0000058a: CALLVALUE
0000058b: DUP1
0000058c: ISZERO
0000058d: PUSH2 0x0595
00000590: JUMPI
00000591: PUSH1 0x00
00000593: DUP1
00000594: REVERT
00000595: JUMPDEST
00000596: POP
00000597: PUSH2 0x01a8
0000059a: PUSH2 0x255c
0000059d: JUMP
0000059e: JUMPDEST
0000059f: CALLVALUE
000005a0: DUP1
000005a1: ISZERO
000005a2: PUSH2 0x05aa
000005a5: JUMPI
000005a6: PUSH1 0x00
000005a8: DUP1
000005a9: REVERT
000005aa: JUMPDEST
000005ab: POP
000005ac: PUSH2 0x01a8
000005af: PUSH1 0x01
000005b1: PUSH1 0xa0
000005b3: PUSH1 0x02
000005b5: EXP
000005b6: SUB
000005b7: PUSH1 0x04
000005b9: CALLDATALOAD
000005ba: AND
000005bb: PUSH1 0x24
000005bd: CALLDATALOAD
000005be: PUSH2 0x2602
000005c1: JUMP
000005c2: JUMPDEST
000005c3: CALLVALUE
000005c4: DUP1
000005c5: ISZERO
000005c6: PUSH2 0x05ce
000005c9: JUMPI
000005ca: PUSH1 0x00
000005cc: DUP1
000005cd: REVERT
000005ce: JUMPDEST
000005cf: POP
000005d0: PUSH2 0x01a8
000005d3: PUSH1 0x01
000005d5: PUSH1 0xa0
000005d7: PUSH1 0x02
000005d9: EXP
000005da: SUB
000005db: PUSH1 0x04
000005dd: CALLDATALOAD
000005de: AND
000005df: PUSH1 0x24
000005e1: CALLDATALOAD
000005e2: PUSH2 0x2a56
000005e5: JUMP
000005e6: JUMPDEST
000005e7: CALLVALUE
000005e8: DUP1
000005e9: ISZERO
000005ea: PUSH2 0x05f2
000005ed: JUMPI
000005ee: PUSH1 0x00
000005f0: DUP1
000005f1: REVERT
000005f2: JUMPDEST
000005f3: POP
000005f4: PUSH2 0x0201
000005f7: PUSH2 0x2fd3
000005fa: JUMP
000005fb: JUMPDEST
000005fc: CALLVALUE
000005fd: DUP1
000005fe: ISZERO
000005ff: PUSH2 0x0607
00000602: JUMPI
00000603: PUSH1 0x00
00000605: DUP1
00000606: REVERT
00000607: JUMPDEST
00000608: POP
00000609: PUSH2 0x0489
0000060c: PUSH1 0x01
0000060e: PUSH1 0xa0
00000610: PUSH1 0x02
00000612: EXP
00000613: SUB
00000614: PUSH1 0x04
00000616: CALLDATALOAD
00000617: DUP2
00000618: AND
00000619: SWAP1
0000061a: PUSH1 0x24
0000061c: CALLDATALOAD
0000061d: AND
0000061e: PUSH2 0x2fe2
00000621: JUMP
00000622: JUMPDEST
00000623: PUSH1 0x01
00000625: PUSH1 0xa0
00000627: PUSH1 0x02
00000629: EXP
0000062a: SUB
0000062b: DUP1
0000062c: DUP3
0000062d: AND
0000062e: PUSH1 0x00
00000630: DUP2
00000631: DUP2
00000632: MSTORE
00000633: PUSH1 0x05
00000635: PUSH1 0x20
00000637: SWAP1
00000638: DUP2
00000639: MSTORE
0000063a: PUSH1 0x40
0000063c: DUP1
0000063d: DUP4
0000063e: KECCAK256
0000063f: SWAP5
00000640: DUP8
00000641: AND
00000642: DUP4
00000643: MSTORE
00000644: PUSH1 0x04
00000646: DUP3
00000647: MSTORE
00000648: DUP1
00000649: DUP4
0000064a: KECCAK256
0000064b: SWAP4
0000064c: DUP4
0000064d: MSTORE
0000064e: SWAP3
0000064f: SWAP1
00000650: MSTORE
00000651: SWAP1
00000652: DUP2
00000653: KECCAK256
00000654: PUSH1 0x08
00000656: DUP4
00000657: ADD
00000658: SLOAD
00000659: PUSH1 0x07
0000065b: DUP5
0000065c: ADD
0000065d: SLOAD
0000065e: PUSH1 0x01
00000660: DUP6
00000661: ADD
00000662: SLOAD
00000663: SWAP4
00000664: SWAP5
00000665: DUP6
00000666: SWAP5
00000667: DUP6
00000668: SWAP5
00000669: DUP6
0000066a: SWAP5
0000066b: SWAP3
0000066c: SWAP4
0000066d: SWAP1
0000066e: SWAP3
0000066f: PUSH2 0x0682
00000672: SWAP3
00000673: SWAP1
00000674: SWAP2
00000675: SWAP1
00000676: PUSH2 0x067d
00000679: PUSH2 0x3006
0000067c: JUMP
0000067d: JUMPDEST
0000067e: PUSH2 0x300a
00000681: JUMP
00000682: JUMPDEST
00000683: SWAP1
00000684: SWAP6
00000685: POP
00000686: SWAP4
00000687: POP
00000688: PUSH1 0x00
0000068a: DUP6
0000068b: PUSH1 0x19
0000068d: DUP2
0000068e: GT
0000068f: ISZERO
00000690: PUSH2 0x0695
00000693: JUMPI
00000694: INVALID
00000695: JUMPDEST
00000696: EQ
00000697: PUSH2 0x069f
0000069a: JUMPI
0000069b: PUSH1 0x00
0000069d: DUP1
0000069e: REVERT
0000069f: JUMPDEST
000006a0: PUSH2 0x06b2
000006a3: DUP2
000006a4: PUSH1 0x00
000006a6: ADD
000006a7: SLOAD
000006a8: DUP3
000006a9: PUSH1 0x01
000006ab: ADD
000006ac: SLOAD
000006ad: DUP7
000006ae: PUSH2 0x3135
000006b1: JUMP
000006b2: JUMPDEST
000006b3: SWAP1
000006b4: SWAP6
000006b5: POP
000006b6: SWAP3
000006b7: POP
000006b8: PUSH1 0x00
000006ba: DUP6
000006bb: PUSH1 0x19
000006bd: DUP2
000006be: GT
000006bf: ISZERO
000006c0: PUSH2 0x06c5
000006c3: JUMPI
000006c4: INVALID
000006c5: JUMPDEST
000006c6: EQ
000006c7: PUSH2 0x06cf
000006ca: JUMPI
000006cb: PUSH1 0x00
000006cd: DUP1
000006ce: REVERT
000006cf: JUMPDEST
000006d0: DUP3
000006d1: SWAP6
000006d2: POP
000006d3: JUMPDEST
000006d4: POP
000006d5: POP
000006d6: POP
000006d7: POP
000006d8: POP
000006d9: SWAP3
000006da: SWAP2
000006db: POP
000006dc: POP
000006dd: JUMP
000006de: JUMPDEST
000006df: PUSH1 0x00
000006e1: PUSH2 0x06e8
000006e4: PUSH2 0x47b0
000006e7: JUMP
000006e8: JUMPDEST
000006e9: PUSH1 0x01
000006eb: SLOAD
000006ec: PUSH1 0x01
000006ee: PUSH1 0xa0
000006f0: PUSH1 0x02
000006f2: EXP
000006f3: SUB
000006f4: AND
000006f5: CALLER
000006f6: EQ
000006f7: PUSH2 0x070d
000006fa: JUMPI
000006fb: PUSH2 0x0706
000006fe: PUSH1 0x02
00000700: PUSH1 0x38
00000702: PUSH2 0x3196
00000705: JUMP
00000706: JUMPDEST
00000707: SWAP2
00000708: POP
00000709: PUSH2 0x076c
0000070c: JUMP
0000070d: JUMPDEST
0000070e: POP
0000070f: PUSH1 0x40
00000711: DUP1
00000712: MLOAD
00000713: PUSH1 0x20
00000715: DUP2
00000716: DUP2
00000717: ADD
00000718: DUP4
00000719: MSTORE
0000071a: PUSH1 0x08
0000071c: DUP1
0000071d: SLOAD
0000071e: DUP4
0000071f: MSTORE
00000720: DUP4
00000721: MLOAD
00000722: DUP1
00000723: DUP4
00000724: ADD
00000725: DUP6
00000726: MSTORE
00000727: DUP7
00000728: SWAP1
00000729: MSTORE
0000072a: DUP6
0000072b: SWAP1
0000072c: SSTORE
0000072d: DUP2
0000072e: MLOAD
0000072f: DUP4
00000730: MLOAD
00000731: SWAP1
00000732: DUP2
00000733: MSTORE
00000734: SWAP1
00000735: DUP2
00000736: ADD
00000737: DUP6
00000738: SWAP1
00000739: MSTORE
0000073a: DUP3
0000073b: MLOAD
0000073c: SWAP2
0000073d: SWAP3
0000073e: PUSH32 0xddf0479a07b0178bbfb5faf3e59335c0824cba499a638f0a4c9909596721ae9c
0000075f: SWAP3
00000760: SWAP2
00000761: DUP3
00000762: SWAP1
00000763: SUB
00000764: ADD
00000765: SWAP1
00000766: LOG1
00000767: PUSH1 0x00
00000769: JUMPDEST
0000076a: SWAP2
0000076b: POP
0000076c: JUMPDEST
0000076d: POP
0000076e: SWAP2
0000076f: SWAP1
00000770: POP
00000771: JUMP
00000772: JUMPDEST
00000773: PUSH1 0x01
00000775: SLOAD
00000776: PUSH1 0x00
00000778: SWAP1
00000779: PUSH1 0x01
0000077b: PUSH1 0xa0
0000077d: PUSH1 0x02
0000077f: EXP
00000780: SUB
00000781: AND
00000782: CALLER
00000783: EQ
00000784: PUSH2 0x079a
00000787: JUMPI
00000788: PUSH2 0x0793
0000078b: PUSH1 0x02
0000078d: PUSH1 0x39
0000078f: PUSH2 0x3196
00000792: JUMP
00000793: JUMPDEST
00000794: SWAP1
00000795: POP
00000796: PUSH2 0x07e4
00000799: JUMP
0000079a: JUMPDEST
0000079b: PUSH1 0x0a
0000079d: DUP1
0000079e: SLOAD
0000079f: DUP4
000007a0: ISZERO
000007a1: ISZERO
000007a2: PUSH1 0xff
000007a4: NOT
000007a5: SWAP1
000007a6: SWAP2
000007a7: AND
000007a8: DUP2
000007a9: OR
000007aa: SWAP1
000007ab: SWAP2
000007ac: SSTORE
000007ad: PUSH1 0x40
000007af: DUP1
000007b0: MLOAD
000007b1: SWAP2
000007b2: DUP3
000007b3: MSTORE
000007b4: MLOAD
000007b5: PUSH32 0x3c70af01296aef045b2f5c9d3c30b05d4428fd257145b9c7fcd76418e65b5980
000007d6: SWAP2
000007d7: DUP2
000007d8: SWAP1
000007d9: SUB
000007da: PUSH1 0x20
000007dc: ADD
000007dd: SWAP1
000007de: LOG1
000007df: PUSH1 0x00
000007e1: JUMPDEST
000007e2: SWAP1
000007e3: POP
000007e4: JUMPDEST
000007e5: SWAP2
000007e6: SWAP1
000007e7: POP
000007e8: JUMP
000007e9: JUMPDEST
000007ea: PUSH1 0x00
000007ec: SLOAD
000007ed: PUSH1 0x01
000007ef: PUSH1 0xa0
000007f1: PUSH1 0x02
000007f3: EXP
000007f4: SUB
000007f5: AND
000007f6: DUP2
000007f7: JUMP
000007f8: JUMPDEST
000007f9: PUSH1 0x01
000007fb: SLOAD
000007fc: PUSH1 0x00
000007fe: SWAP1
000007ff: DUP2
00000800: SWAP1
00000801: DUP2
00000802: SWAP1
00000803: PUSH1 0x01
00000805: PUSH1 0xa0
00000807: PUSH1 0x02
00000809: EXP
0000080a: SUB
0000080b: AND
0000080c: CALLER
0000080d: EQ
0000080e: PUSH2 0x0824
00000811: JUMPI
00000812: PUSH2 0x081d
00000815: PUSH1 0x02
00000817: PUSH1 0x37
00000819: PUSH2 0x3196
0000081c: JUMP
0000081d: JUMPDEST
0000081e: SWAP3
0000081f: POP
00000820: PUSH2 0x0923
00000823: JUMP
00000824: JUMPDEST
00000825: DUP4
00000826: SWAP2
00000827: POP
00000828: DUP2
00000829: PUSH1 0x01
0000082b: PUSH1 0xa0
0000082d: PUSH1 0x02
0000082f: EXP
00000830: SUB
00000831: AND
00000832: PUSH4 0x5e9a523c
00000837: PUSH1 0x00
00000839: PUSH1 0x40
0000083b: MLOAD
0000083c: DUP3
0000083d: PUSH4 0xffffffff
00000842: AND
00000843: PUSH1 0xe0
00000845: PUSH1 0x02
00000847: EXP
00000848: MUL
00000849: DUP2
0000084a: MSTORE
0000084b: PUSH1 0x04
0000084d: ADD
0000084e: DUP1
0000084f: DUP3
00000850: PUSH1 0x01
00000852: PUSH1 0xa0
00000854: PUSH1 0x02
00000856: EXP
00000857: SUB
00000858: AND
00000859: PUSH1 0x01
0000085b: PUSH1 0xa0
0000085d: PUSH1 0x02
0000085f: EXP
00000860: SUB
00000861: AND
00000862: DUP2
00000863: MSTORE
00000864: PUSH1 0x20
00000866: ADD
00000867: SWAP2
00000868: POP
00000869: POP
0000086a: PUSH1 0x20
0000086c: PUSH1 0x40
0000086e: MLOAD
0000086f: DUP1
00000870: DUP4
00000871: SUB
00000872: DUP2
00000873: PUSH1 0x00
00000875: DUP8
00000876: DUP1
00000877: EXTCODESIZE
00000878: ISZERO
00000879: DUP1
0000087a: ISZERO
0000087b: PUSH2 0x0883
0000087e: JUMPI
0000087f: PUSH1 0x00
00000881: DUP1
00000882: REVERT
00000883: JUMPDEST
00000884: POP
00000885: GAS
00000886: CALL
00000887: ISZERO
00000888: DUP1
00000889: ISZERO
0000088a: PUSH2 0x0897
0000088d: JUMPI
0000088e: RETURNDATASIZE
0000088f: PUSH1 0x00
00000891: DUP1
00000892: RETURNDATACOPY
00000893: RETURNDATASIZE
00000894: PUSH1 0x00
00000896: REVERT
00000897: JUMPDEST
00000898: POP
00000899: POP
0000089a: POP
0000089b: POP
0000089c: PUSH1 0x40
0000089e: MLOAD
0000089f: RETURNDATASIZE
000008a0: PUSH1 0x20
000008a2: DUP2
000008a3: LT
000008a4: ISZERO
000008a5: PUSH2 0x08ad
000008a8: JUMPI
000008a9: PUSH1 0x00
000008ab: DUP1
000008ac: REVERT
000008ad: JUMPDEST
000008ae: POP
000008af: POP
000008b0: PUSH1 0x02
000008b2: DUP1
000008b3: SLOAD
000008b4: PUSH1 0x01
000008b6: PUSH1 0xa0
000008b8: PUSH1 0x02
000008ba: EXP
000008bb: SUB
000008bc: DUP7
000008bd: DUP2
000008be: AND
000008bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008d4: NOT
000008d5: DUP4
000008d6: AND
000008d7: DUP2
000008d8: OR
000008d9: SWAP1
000008da: SWAP4
000008db: SSTORE
000008dc: PUSH1 0x40
000008de: DUP1
000008df: MLOAD
000008e0: SWAP2
000008e1: SWAP1
000008e2: SWAP3
000008e3: AND
000008e4: DUP1
000008e5: DUP3
000008e6: MSTORE
000008e7: PUSH1 0x20
000008e9: DUP3
000008ea: ADD
000008eb: SWAP4
000008ec: SWAP1
000008ed: SWAP4
000008ee: MSTORE
000008ef: DUP2
000008f0: MLOAD
000008f1: SWAP3
000008f2: SWAP4
000008f3: POP
000008f4: PUSH32 0x08763b8c90c5db415d7b7f0e18ec87eda82e24e52e2ea8135d44e17db46d85bb
00000915: SWAP3
00000916: SWAP1
00000917: DUP2
00000918: SWAP1
00000919: SUB
0000091a: SWAP1
0000091b: SWAP2
0000091c: ADD
0000091d: SWAP1
0000091e: LOG1
0000091f: PUSH1 0x00
00000921: SWAP3
00000922: POP
00000923: JUMPDEST
00000924: POP
00000925: POP
00000926: SWAP2
00000927: SWAP1
00000928: POP
00000929: JUMP
0000092a: JUMPDEST
0000092b: PUSH1 0x01
0000092d: SLOAD
0000092e: PUSH1 0x00
00000930: SWAP1
00000931: DUP2
00000932: SWAP1
00000933: DUP2
00000934: SWAP1
00000935: DUP2
00000936: SWAP1
00000937: DUP2
00000938: SWAP1
00000939: PUSH1 0x01
0000093b: PUSH1 0xa0
0000093d: PUSH1 0x02
0000093f: EXP
00000940: SUB
00000941: AND
00000942: CALLER
00000943: EQ
00000944: PUSH2 0x095a
00000947: JUMPI
00000948: PUSH2 0x0953
0000094b: PUSH1 0x02
0000094d: PUSH1 0x13
0000094f: PUSH2 0x3196
00000952: JUMP
00000953: JUMPDEST
00000954: SWAP5
00000955: POP
00000956: PUSH2 0x0a5d
00000959: JUMP
0000095a: JUMPDEST
0000095b: PUSH2 0x0963
0000095e: DUP8
0000095f: PUSH2 0x31fc
00000962: JUMP
00000963: JUMPDEST
00000964: PUSH1 0x01
00000966: PUSH1 0xa0
00000968: PUSH1 0x02
0000096a: EXP
0000096b: SUB
0000096c: DUP9
0000096d: AND
0000096e: PUSH1 0x00
00000970: SWAP1
00000971: DUP2
00000972: MSTORE
00000973: PUSH1 0x05
00000975: PUSH1 0x20
00000977: MSTORE
00000978: PUSH1 0x40
0000097a: SWAP1
0000097b: KECCAK256
0000097c: PUSH1 0x06
0000097e: DUP2
0000097f: ADD
00000980: SLOAD
00000981: PUSH1 0x03
00000983: SWAP1
00000984: SWAP2
00000985: ADD
00000986: SLOAD
00000987: SWAP2
00000988: SWAP6
00000989: POP
0000098a: PUSH2 0x0995
0000098d: SWAP2
0000098e: DUP7
0000098f: SWAP2
00000990: SWAP1
00000991: PUSH2 0x3294
00000994: JUMP
00000995: JUMPDEST
00000996: SWAP1
00000997: SWAP4
00000998: POP
00000999: SWAP2
0000099a: POP
0000099b: PUSH1 0x00
0000099d: DUP4
0000099e: PUSH1 0x19
000009a0: DUP2
000009a1: GT
000009a2: ISZERO
000009a3: PUSH2 0x09a8
000009a6: JUMPI
000009a7: INVALID
000009a8: JUMPDEST
000009a9: EQ
000009aa: PUSH2 0x09b8
000009ad: JUMPI
000009ae: PUSH2 0x0953
000009b1: DUP4
000009b2: PUSH1 0x12
000009b4: PUSH2 0x3196
000009b7: JUMP
000009b8: JUMPDEST
000009b9: DUP2
000009ba: DUP7
000009bb: GT
000009bc: ISZERO
000009bd: PUSH2 0x09cc
000009c0: JUMPI
000009c1: PUSH2 0x0953
000009c4: PUSH1 0x13
000009c6: PUSH1 0x11
000009c8: PUSH2 0x3196
000009cb: JUMP
000009cc: JUMPDEST
000009cd: PUSH1 0x01
000009cf: SLOAD
000009d0: PUSH2 0x09e4
000009d3: SWAP1
000009d4: DUP9
000009d5: SWAP1
000009d6: PUSH1 0x01
000009d8: PUSH1 0xa0
000009da: PUSH1 0x02
000009dc: EXP
000009dd: SUB
000009de: AND
000009df: DUP9
000009e0: PUSH2 0x32d4
000009e3: JUMP
000009e4: JUMPDEST
000009e5: SWAP1
000009e6: POP
000009e7: PUSH1 0x00
000009e9: DUP2
000009ea: PUSH1 0x19
000009ec: DUP2
000009ed: GT
000009ee: ISZERO
000009ef: PUSH2 0x09f4
000009f2: JUMPI
000009f3: INVALID
000009f4: JUMPDEST
000009f5: EQ
000009f6: PUSH2 0x0a04
000009f9: JUMPI
000009fa: PUSH2 0x0953
000009fd: DUP2
000009fe: PUSH1 0x14
00000a00: PUSH2 0x3196
00000a03: JUMP
00000a04: JUMPDEST
00000a05: PUSH1 0x01
00000a07: SLOAD
00000a08: PUSH1 0x40
00000a0a: DUP1
00000a0b: MLOAD
00000a0c: PUSH1 0x01
00000a0e: PUSH1 0xa0
00000a10: PUSH1 0x02
00000a12: EXP
00000a13: SUB
00000a14: DUP1
00000a15: DUP12
00000a16: AND
00000a17: DUP3
00000a18: MSTORE
00000a19: PUSH1 0x20
00000a1b: DUP3
00000a1c: ADD
00000a1d: DUP7
00000a1e: SWAP1
00000a1f: MSTORE
00000a20: DUP2
00000a21: DUP4
00000a22: ADD
00000a23: DUP11
00000a24: SWAP1
00000a25: MSTORE
00000a26: SWAP1
00000a27: SWAP3
00000a28: AND
00000a29: PUSH1 0x60
00000a2b: DUP4
00000a2c: ADD
00000a2d: MSTORE
00000a2e: MLOAD
00000a2f: PUSH32 0xcb9f0cda23d6b563fc8e14d8fdada71d2ab7dadccc2e26dc353bf20ea8c5b852
00000a50: SWAP2
00000a51: DUP2
00000a52: SWAP1
00000a53: SUB
00000a54: PUSH1 0x80
00000a56: ADD
00000a57: SWAP1
00000a58: LOG1
00000a59: PUSH1 0x00
00000a5b: SWAP5
00000a5c: POP
00000a5d: JUMPDEST
00000a5e: POP
00000a5f: POP
00000a60: POP
00000a61: POP
00000a62: SWAP3
00000a63: SWAP2
00000a64: POP
00000a65: POP
00000a66: JUMP
00000a67: JUMPDEST
00000a68: PUSH1 0x00
00000a6a: PUSH2 0x0a71
00000a6d: PUSH2 0x47c2
00000a70: JUMP
00000a71: JUMPDEST
00000a72: PUSH1 0x0a
00000a74: SLOAD
00000a75: PUSH1 0x00
00000a77: SWAP1
00000a78: DUP2
00000a79: SWAP1
00000a7a: DUP2
00000a7b: SWAP1
00000a7c: DUP2
00000a7d: SWAP1
00000a7e: PUSH1 0xff
00000a80: AND
00000a81: ISZERO
00000a82: PUSH2 0x0a98
00000a85: JUMPI
00000a86: PUSH2 0x0a91
00000a89: PUSH1 0x19
00000a8b: PUSH1 0x06
00000a8d: PUSH2 0x3196
00000a90: JUMP
00000a91: JUMPDEST
00000a92: SWAP6
00000a93: POP
00000a94: PUSH2 0x06d3
00000a97: JUMP
00000a98: JUMPDEST
00000a99: PUSH1 0x01
00000a9b: PUSH1 0xa0
00000a9d: PUSH1 0x02
00000a9f: EXP
00000aa0: SUB
00000aa1: DUP9
00000aa2: AND
00000aa3: PUSH1 0x00
00000aa5: DUP2
00000aa6: DUP2
00000aa7: MSTORE
00000aa8: PUSH1 0x05
00000aaa: PUSH1 0x20
00000aac: SWAP1
00000aad: DUP2
00000aae: MSTORE
00000aaf: PUSH1 0x40
00000ab1: DUP1
00000ab2: DUP4
00000ab3: KECCAK256
00000ab4: CALLER
00000ab5: DUP5
00000ab6: MSTORE
00000ab7: PUSH1 0x04
00000ab9: DUP4
00000aba: MSTORE
00000abb: DUP2
00000abc: DUP5
00000abd: KECCAK256
00000abe: SWAP5
00000abf: DUP5
00000ac0: MSTORE
00000ac1: SWAP4
00000ac2: SWAP1
00000ac3: SWAP2
00000ac4: MSTORE
00000ac5: SWAP1
00000ac6: KECCAK256
00000ac7: DUP2
00000ac8: SLOAD
00000ac9: SWAP2
00000aca: SWAP6
00000acb: POP
00000acc: SWAP4
00000acd: POP
00000ace: PUSH1 0xff
00000ad0: AND
00000ad1: ISZERO
00000ad2: ISZERO
00000ad3: PUSH2 0x0ae2
00000ad6: JUMPI
00000ad7: PUSH2 0x0a91
00000ada: PUSH1 0x0a
00000adc: PUSH1 0x07
00000ade: PUSH2 0x3196
00000ae1: JUMP
00000ae2: JUMPDEST
00000ae3: PUSH2 0x0afc
00000ae6: DUP5
00000ae7: PUSH1 0x08
00000ae9: ADD
00000aea: SLOAD
00000aeb: DUP6
00000aec: PUSH1 0x07
00000aee: ADD
00000aef: SLOAD
00000af0: DUP7
00000af1: PUSH1 0x01
00000af3: ADD
00000af4: SLOAD
00000af5: PUSH2 0x067d
00000af8: PUSH2 0x3006
00000afb: JUMP
00000afc: JUMPDEST
00000afd: DUP7
00000afe: MSTORE
00000aff: SWAP2
00000b00: POP
00000b01: PUSH1 0x00
00000b03: DUP3
00000b04: PUSH1 0x19
00000b06: DUP2
00000b07: GT
00000b08: ISZERO
00000b09: PUSH2 0x0b0e
00000b0c: JUMPI
00000b0d: INVALID
00000b0e: JUMPDEST
00000b0f: EQ
00000b10: PUSH2 0x0b1e
00000b13: JUMPI
00000b14: PUSH2 0x0a91
00000b17: DUP3
00000b18: PUSH1 0x08
00000b1a: PUSH2 0x3196
00000b1d: JUMP
00000b1e: JUMPDEST
00000b1f: DUP3
00000b20: SLOAD
00000b21: PUSH1 0x01
00000b23: DUP5
00000b24: ADD
00000b25: SLOAD
00000b26: DUP7
00000b27: MLOAD
00000b28: PUSH2 0x0b32
00000b2b: SWAP3
00000b2c: SWAP2
00000b2d: SWAP1
00000b2e: PUSH2 0x3135
00000b31: JUMP
00000b32: JUMPDEST
00000b33: PUSH1 0x20
00000b35: DUP8
00000b36: ADD
00000b37: MSTORE
00000b38: SWAP2
00000b39: POP
00000b3a: PUSH1 0x00
00000b3c: DUP3
00000b3d: PUSH1 0x19
00000b3f: DUP2
00000b40: GT
00000b41: ISZERO
00000b42: PUSH2 0x0b47
00000b45: JUMPI
00000b46: INVALID
00000b47: JUMPDEST
00000b48: EQ
00000b49: PUSH2 0x0b57
00000b4c: JUMPI
00000b4d: PUSH2 0x0a91
00000b50: DUP3
00000b51: PUSH1 0x03
00000b53: PUSH2 0x3196
00000b56: JUMP
00000b57: JUMPDEST
00000b58: PUSH2 0x0b60
00000b5b: DUP8
00000b5c: PUSH2 0x33a2
00000b5f: JUMP
00000b60: JUMPDEST
00000b61: PUSH1 0x40
00000b63: DUP8
00000b64: ADD
00000b65: MSTORE
00000b66: SWAP2
00000b67: POP
00000b68: PUSH1 0x00
00000b6a: DUP3
00000b6b: PUSH1 0x19
00000b6d: DUP2
00000b6e: GT
00000b6f: ISZERO
00000b70: PUSH2 0x0b75
00000b73: JUMPI
00000b74: INVALID
00000b75: JUMPDEST
00000b76: EQ
00000b77: PUSH2 0x0b85
00000b7a: JUMPI
00000b7b: PUSH2 0x0a91
00000b7e: DUP3
00000b7f: PUSH1 0x0f
00000b81: PUSH2 0x3196
00000b84: JUMP
00000b85: JUMPDEST
00000b86: PUSH2 0x0b97
00000b89: DUP6
00000b8a: PUSH1 0x20
00000b8c: ADD
00000b8d: MLOAD
00000b8e: DUP7
00000b8f: PUSH1 0x40
00000b91: ADD
00000b92: MLOAD
00000b93: PUSH2 0x347e
00000b96: JUMP
00000b97: JUMPDEST
00000b98: PUSH1 0x60
00000b9a: DUP8
00000b9b: ADD
00000b9c: MSTORE
00000b9d: SWAP2
00000b9e: POP
00000b9f: PUSH1 0x00
00000ba1: DUP3
00000ba2: PUSH1 0x19
00000ba4: DUP2
00000ba5: GT
00000ba6: ISZERO
00000ba7: PUSH2 0x0bac
00000baa: JUMPI
00000bab: INVALID
00000bac: JUMPDEST
00000bad: EQ
00000bae: PUSH2 0x0bbc
00000bb1: JUMPI
00000bb2: PUSH2 0x0a91
00000bb5: DUP3
00000bb6: PUSH1 0x0c
00000bb8: PUSH2 0x3196
00000bbb: JUMP
00000bbc: JUMPDEST
00000bbd: PUSH2 0x0bd3
00000bc0: DUP5
00000bc1: PUSH1 0x06
00000bc3: ADD
00000bc4: SLOAD
00000bc5: DUP7
00000bc6: PUSH1 0x60
00000bc8: ADD
00000bc9: MLOAD
00000bca: DUP6
00000bcb: PUSH1 0x00
00000bcd: ADD
00000bce: SLOAD
00000bcf: PUSH2 0x3294
00000bd2: JUMP
00000bd3: JUMPDEST
00000bd4: PUSH1 0x80
00000bd6: DUP8
00000bd7: ADD
00000bd8: MSTORE
00000bd9: SWAP2
00000bda: POP
00000bdb: PUSH1 0x00
00000bdd: DUP3
00000bde: PUSH1 0x19
00000be0: DUP2
00000be1: GT
00000be2: ISZERO
00000be3: PUSH2 0x0be8
00000be6: JUMPI
00000be7: INVALID
00000be8: JUMPDEST
00000be9: EQ
00000bea: PUSH2 0x0bf8
00000bed: JUMPI
00000bee: PUSH2 0x0a91
00000bf1: DUP3
00000bf2: PUSH1 0x0d
00000bf4: PUSH2 0x3196
00000bf7: JUMP
00000bf8: JUMPDEST
00000bf9: PUSH2 0x0c01
00000bfc: CALLER
00000bfd: PUSH2 0x34a8
00000c00: JUMP
00000c01: JUMPDEST
00000c02: PUSH2 0x0180
00000c05: DUP9
00000c06: ADD
00000c07: MSTORE
00000c08: PUSH2 0x0160
00000c0b: DUP8
00000c0c: ADD
00000c0d: MSTORE
00000c0e: SWAP2
00000c0f: POP
00000c10: PUSH1 0x00
00000c12: DUP3
00000c13: PUSH1 0x19
00000c15: DUP2
00000c16: GT
00000c17: ISZERO
00000c18: PUSH2 0x0c1d
00000c1b: JUMPI
00000c1c: INVALID
00000c1d: JUMPDEST
00000c1e: EQ
00000c1f: PUSH2 0x0c2d
00000c22: JUMPI
00000c23: PUSH2 0x0a91
00000c26: DUP3
00000c27: PUSH1 0x01
00000c29: PUSH2 0x3196
00000c2c: JUMP
00000c2d: JUMPDEST
00000c2e: PUSH2 0x0c3b
00000c31: DUP6
00000c32: PUSH2 0x0180
00000c35: ADD
00000c36: MLOAD
00000c37: PUSH2 0x3637
00000c3a: JUMP
00000c3b: JUMPDEST
00000c3c: ISZERO
00000c3d: ISZERO
00000c3e: PUSH2 0x0c4d
00000c41: JUMPI
00000c42: PUSH2 0x0a91
00000c45: PUSH1 0x0f
00000c47: PUSH1 0x02
00000c49: PUSH2 0x3196
00000c4c: JUMP
00000c4d: JUMPDEST
00000c4e: PUSH2 0x0c5b
00000c51: DUP9
00000c52: DUP7
00000c53: PUSH1 0x40
00000c55: ADD
00000c56: MLOAD
00000c57: PUSH2 0x363c
00000c5a: JUMP
00000c5b: JUMPDEST
00000c5c: PUSH2 0x01a0
00000c5f: DUP8
00000c60: ADD
00000c61: MSTORE
00000c62: SWAP2
00000c63: POP
00000c64: PUSH1 0x00
00000c66: DUP3
00000c67: PUSH1 0x19
00000c69: DUP2
00000c6a: GT
00000c6b: ISZERO
00000c6c: PUSH2 0x0c71
00000c6f: JUMPI
00000c70: INVALID
00000c71: JUMPDEST
00000c72: EQ
00000c73: PUSH2 0x0c81
00000c76: JUMPI
00000c77: PUSH2 0x0a91
00000c7a: DUP3
00000c7b: PUSH1 0x05
00000c7d: PUSH2 0x3196
00000c80: JUMP
00000c81: JUMPDEST
00000c82: PUSH2 0x0c95
00000c85: DUP6
00000c86: PUSH2 0x0160
00000c89: ADD
00000c8a: MLOAD
00000c8b: DUP7
00000c8c: PUSH2 0x01a0
00000c8f: ADD
00000c90: MLOAD
00000c91: PUSH2 0x3724
00000c94: JUMP
00000c95: JUMPDEST
00000c96: ISZERO
00000c97: PUSH2 0x0ca6
00000c9a: JUMPI
00000c9b: PUSH2 0x0a91
00000c9e: PUSH1 0x0f
00000ca0: PUSH1 0x04
00000ca2: PUSH2 0x3196
00000ca5: JUMP
00000ca6: JUMPDEST
00000ca7: PUSH2 0x0caf
00000caa: DUP9
00000cab: PUSH2 0x31fc
00000cae: JUMP
00000caf: JUMPDEST
00000cb0: PUSH1 0xa0
00000cb2: DUP7
00000cb3: ADD
00000cb4: DUP2
00000cb5: SWAP1
00000cb6: MSTORE
00000cb7: PUSH2 0x0cc0
00000cba: SWAP1
00000cbb: DUP9
00000cbc: PUSH2 0x372b
00000cbf: JUMP
00000cc0: JUMPDEST
00000cc1: PUSH1 0xc0
00000cc3: DUP8
00000cc4: ADD
00000cc5: MSTORE
00000cc6: SWAP2
00000cc7: POP
00000cc8: PUSH1 0x00
00000cca: DUP3
00000ccb: PUSH1 0x19
00000ccd: DUP2
00000cce: GT
00000ccf: ISZERO
00000cd0: PUSH2 0x0cd5
00000cd3: JUMPI
00000cd4: INVALID
00000cd5: JUMPDEST
00000cd6: EQ
00000cd7: PUSH2 0x0ce6
00000cda: JUMPI
00000cdb: PUSH2 0x0a91
00000cde: PUSH1 0x0d
00000ce0: PUSH1 0x0e
00000ce2: PUSH2 0x3196
00000ce5: JUMP
00000ce6: JUMPDEST
00000ce7: PUSH2 0x0d00
00000cea: DUP5
00000ceb: PUSH1 0x05
00000ced: ADD
00000cee: SLOAD
00000cef: DUP6
00000cf0: PUSH1 0x04
00000cf2: ADD
00000cf3: SLOAD
00000cf4: DUP7
00000cf5: PUSH1 0x01
00000cf7: ADD
00000cf8: SLOAD
00000cf9: PUSH2 0x067d
00000cfc: PUSH2 0x3006
00000cff: JUMP
00000d00: JUMPDEST
00000d01: PUSH1 0xe0
00000d03: DUP8
00000d04: ADD
00000d05: MSTORE
00000d06: SWAP2
00000d07: POP
00000d08: PUSH1 0x00
00000d0a: DUP3
00000d0b: PUSH1 0x19
00000d0d: DUP2
00000d0e: GT
00000d0f: ISZERO
00000d10: PUSH2 0x0d15
00000d13: JUMPI
00000d14: INVALID
00000d15: JUMPDEST
00000d16: EQ
00000d17: PUSH2 0x0d25
00000d1a: JUMPI
00000d1b: PUSH2 0x0a91
00000d1e: DUP3
00000d1f: PUSH1 0x0a
00000d21: PUSH2 0x3196
00000d24: JUMP
00000d25: JUMPDEST
00000d26: PUSH1 0x02
00000d28: DUP5
00000d29: ADD
00000d2a: SLOAD
00000d2b: PUSH1 0xc0
00000d2d: DUP7
00000d2e: ADD
00000d2f: MLOAD
00000d30: PUSH1 0x80
00000d32: DUP8
00000d33: ADD
00000d34: MLOAD
00000d35: PUSH1 0x40
00000d37: DUP1
00000d38: MLOAD
00000d39: PUSH1 0xe1
00000d3b: PUSH1 0x02
00000d3d: EXP
00000d3e: PUSH4 0x28be7b9f
00000d43: MUL
00000d44: DUP2
00000d45: MSTORE
00000d46: PUSH1 0x01
00000d48: PUSH1 0xa0
00000d4a: PUSH1 0x02
00000d4c: EXP
00000d4d: SUB
00000d4e: DUP14
00000d4f: DUP2
00000d50: AND
00000d51: PUSH1 0x04
00000d53: DUP4
00000d54: ADD
00000d55: MSTORE
00000d56: PUSH1 0x24
00000d58: DUP3
00000d59: ADD
00000d5a: SWAP5
00000d5b: SWAP1
00000d5c: SWAP5
00000d5d: MSTORE
00000d5e: PUSH1 0x44
00000d60: DUP2
00000d61: ADD
00000d62: SWAP3
00000d63: SWAP1
00000d64: SWAP3
00000d65: MSTORE
00000d66: DUP1
00000d67: MLOAD
00000d68: SWAP3
00000d69: SWAP1
00000d6a: SWAP4
00000d6b: AND
00000d6c: SWAP3
00000d6d: PUSH4 0x517cf73e
00000d72: SWAP3
00000d73: PUSH1 0x64
00000d75: DUP1
00000d76: DUP5
00000d77: ADD
00000d78: SWAP4
00000d79: DUP3
00000d7a: SWAP1
00000d7b: SUB
00000d7c: ADD
00000d7d: DUP2
00000d7e: PUSH1 0x00
00000d80: DUP8
00000d81: DUP1
00000d82: EXTCODESIZE
00000d83: ISZERO
00000d84: DUP1
00000d85: ISZERO
00000d86: PUSH2 0x0d8e
00000d89: JUMPI
00000d8a: PUSH1 0x00
00000d8c: DUP1
00000d8d: REVERT
00000d8e: JUMPDEST
00000d8f: POP
00000d90: GAS
00000d91: CALL
00000d92: ISZERO
00000d93: DUP1
00000d94: ISZERO
00000d95: PUSH2 0x0da2
00000d98: JUMPI
00000d99: RETURNDATASIZE
00000d9a: PUSH1 0x00
00000d9c: DUP1
00000d9d: RETURNDATACOPY
00000d9e: RETURNDATASIZE
00000d9f: PUSH1 0x00
00000da1: REVERT
00000da2: JUMPDEST
00000da3: POP
00000da4: POP
00000da5: POP
00000da6: POP
00000da7: PUSH1 0x40
00000da9: MLOAD
00000daa: RETURNDATASIZE
00000dab: PUSH1 0x40
00000dad: DUP2
00000dae: LT
00000daf: ISZERO
00000db0: PUSH2 0x0db8
00000db3: JUMPI
00000db4: PUSH1 0x00
00000db6: DUP1
00000db7: REVERT
00000db8: JUMPDEST
00000db9: POP
00000dba: DUP1
00000dbb: MLOAD
00000dbc: PUSH1 0x20
00000dbe: SWAP1
00000dbf: SWAP2
00000dc0: ADD
00000dc1: MLOAD
00000dc2: PUSH2 0x0100
00000dc5: DUP8
00000dc6: ADD
00000dc7: MSTORE
00000dc8: SWAP1
00000dc9: POP
00000dca: DUP1
00000dcb: ISZERO
00000dcc: PUSH2 0x0dda
00000dcf: JUMPI
00000dd0: PUSH2 0x0a91
00000dd3: PUSH1 0x0b
00000dd5: DUP3
00000dd6: PUSH2 0x3751
00000dd9: JUMP
00000dda: JUMPDEST
00000ddb: PUSH1 0x02
00000ddd: DUP5
00000dde: ADD
00000ddf: SLOAD
00000de0: PUSH1 0xc0
00000de2: DUP7
00000de3: ADD
00000de4: MLOAD
00000de5: PUSH1 0x80
00000de7: DUP8
00000de8: ADD
00000de9: MLOAD
00000dea: PUSH1 0x40
00000dec: DUP1
00000ded: MLOAD
00000dee: PUSH1 0xe2
00000df0: PUSH1 0x02
00000df2: EXP
00000df3: PUSH4 0x3b4ad68f
00000df8: MUL
00000df9: DUP2
00000dfa: MSTORE
00000dfb: PUSH1 0x01
00000dfd: PUSH1 0xa0
00000dff: PUSH1 0x02
00000e01: EXP
00000e02: SUB
00000e03: DUP14
00000e04: DUP2
00000e05: AND
00000e06: PUSH1 0x04
00000e08: DUP4
00000e09: ADD
00000e0a: MSTORE
00000e0b: PUSH1 0x24
00000e0d: DUP3
00000e0e: ADD
00000e0f: SWAP5
00000e10: SWAP1
00000e11: SWAP5
00000e12: MSTORE
00000e13: PUSH1 0x44
00000e15: DUP2
00000e16: ADD
00000e17: SWAP3
00000e18: SWAP1
00000e19: SWAP3
00000e1a: MSTORE
00000e1b: DUP1
00000e1c: MLOAD
00000e1d: SWAP3
00000e1e: SWAP1
00000e1f: SWAP4
00000e20: AND
00000e21: SWAP3
00000e22: PUSH4 0xed2b5a3c
00000e27: SWAP3
00000e28: PUSH1 0x64
00000e2a: DUP1
00000e2b: DUP5
00000e2c: ADD
00000e2d: SWAP4
00000e2e: DUP3
00000e2f: SWAP1
00000e30: SUB
00000e31: ADD
00000e32: DUP2
00000e33: PUSH1 0x00
00000e35: DUP8
00000e36: DUP1
00000e37: EXTCODESIZE
00000e38: ISZERO
00000e39: DUP1
00000e3a: ISZERO
00000e3b: PUSH2 0x0e43
00000e3e: JUMPI
00000e3f: PUSH1 0x00
00000e41: DUP1
00000e42: REVERT
00000e43: JUMPDEST
00000e44: POP
00000e45: GAS
00000e46: CALL
00000e47: ISZERO
00000e48: DUP1
00000e49: ISZERO
00000e4a: PUSH2 0x0e57
00000e4d: JUMPI
00000e4e: RETURNDATASIZE
00000e4f: PUSH1 0x00
00000e51: DUP1
00000e52: RETURNDATACOPY
00000e53: RETURNDATASIZE
00000e54: PUSH1 0x00
00000e56: REVERT
00000e57: JUMPDEST
00000e58: POP
00000e59: POP
00000e5a: POP
00000e5b: POP
00000e5c: PUSH1 0x40
00000e5e: MLOAD
00000e5f: RETURNDATASIZE
00000e60: PUSH1 0x40
00000e62: DUP2
00000e63: LT
00000e64: ISZERO
00000e65: PUSH2 0x0e6d
00000e68: JUMPI
00000e69: PUSH1 0x00
00000e6b: DUP1
00000e6c: REVERT
00000e6d: JUMPDEST
00000e6e: POP
00000e6f: DUP1
00000e70: MLOAD
00000e71: PUSH1 0x20
00000e73: SWAP1
00000e74: SWAP2
00000e75: ADD
00000e76: MLOAD
00000e77: PUSH2 0x0120
00000e7a: DUP8
00000e7b: ADD
00000e7c: MSTORE
00000e7d: SWAP1
00000e7e: POP
00000e7f: DUP1
00000e80: ISZERO
00000e81: PUSH2 0x0e8f
00000e84: JUMPI
00000e85: PUSH2 0x0a91
00000e88: PUSH1 0x09
00000e8a: DUP3
00000e8b: PUSH2 0x3751
00000e8e: JUMP
00000e8f: JUMPDEST
00000e90: PUSH2 0x0e9a
00000e93: DUP9
00000e94: CALLER
00000e95: DUP10
00000e96: PUSH2 0x32d4
00000e99: JUMP
00000e9a: JUMPDEST
00000e9b: SWAP2
00000e9c: POP
00000e9d: PUSH1 0x00
00000e9f: DUP3
00000ea0: PUSH1 0x19
00000ea2: DUP2
00000ea3: GT
00000ea4: ISZERO
00000ea5: PUSH2 0x0eaa
00000ea8: JUMPI
00000ea9: INVALID
00000eaa: JUMPDEST
00000eab: EQ
00000eac: PUSH2 0x0eba
00000eaf: JUMPI
00000eb0: PUSH2 0x0a91
00000eb3: DUP3
00000eb4: PUSH1 0x10
00000eb6: PUSH2 0x3196
00000eb9: JUMP
00000eba: JUMPDEST
00000ebb: PUSH2 0x0ec2
00000ebe: PUSH2 0x3006
00000ec1: JUMP
00000ec2: JUMPDEST
00000ec3: PUSH1 0x01
00000ec5: DUP1
00000ec6: DUP7
00000ec7: ADD
00000ec8: SWAP2
00000ec9: SWAP1
00000eca: SWAP2
00000ecb: SSTORE
00000ecc: PUSH1 0x80
00000ece: DUP1
00000ecf: DUP8
00000ed0: ADD
00000ed1: MLOAD
00000ed2: PUSH1 0x06
00000ed4: DUP8
00000ed5: ADD
00000ed6: SSTORE
00000ed7: PUSH2 0x0100
00000eda: DUP8
00000edb: ADD
00000edc: MLOAD
00000edd: PUSH1 0x04
00000edf: DUP8
00000ee0: ADD
00000ee1: SSTORE
00000ee2: PUSH1 0xe0
00000ee4: DUP8
00000ee5: ADD
00000ee6: MLOAD
00000ee7: PUSH1 0x05
00000ee9: DUP8
00000eea: ADD
00000eeb: SSTORE
00000eec: PUSH2 0x0120
00000eef: DUP8
00000ef0: ADD
00000ef1: MLOAD
00000ef2: PUSH1 0x07
00000ef4: DUP8
00000ef5: ADD
00000ef6: SSTORE
00000ef7: DUP7
00000ef8: MLOAD
00000ef9: PUSH1 0x08
00000efb: DUP8
00000efc: ADD
00000efd: DUP2
00000efe: SWAP1
00000eff: SSTORE
00000f00: DUP6
00000f01: SLOAD
00000f02: PUSH2 0x0140
00000f05: DUP10
00000f06: ADD
00000f07: DUP2
00000f08: SWAP1
00000f09: MSTORE
00000f0a: PUSH1 0x60
00000f0c: DUP1
00000f0d: DUP11
00000f0e: ADD
00000f0f: MLOAD
00000f10: DUP1
00000f11: DUP10
00000f12: SSTORE
00000f13: SWAP5
00000f14: DUP9
00000f15: ADD
00000f16: SWAP3
00000f17: SWAP1
00000f18: SWAP3
00000f19: SSTORE
00000f1a: PUSH1 0x40
00000f1c: DUP1
00000f1d: DUP11
00000f1e: ADD
00000f1f: MLOAD
00000f20: DUP2
00000f21: MLOAD
00000f22: CALLER
00000f23: DUP2
00000f24: MSTORE
00000f25: PUSH1 0x01
00000f27: PUSH1 0xa0
00000f29: PUSH1 0x02
00000f2b: EXP
00000f2c: SUB
00000f2d: DUP16
00000f2e: AND
00000f2f: PUSH1 0x20
00000f31: DUP3
00000f32: ADD
00000f33: MSTORE
00000f34: DUP1
00000f35: DUP4
00000f36: ADD
00000f37: DUP15
00000f38: SWAP1
00000f39: MSTORE
00000f3a: SWAP4
00000f3b: DUP5
00000f3c: ADD
00000f3d: SWAP3
00000f3e: SWAP1
00000f3f: SWAP3
00000f40: MSTORE
00000f41: SWAP3
00000f42: DUP3
00000f43: ADD
00000f44: MSTORE
00000f45: PUSH1 0xa0
00000f47: DUP2
00000f48: ADD
00000f49: SWAP3
00000f4a: SWAP1
00000f4b: SWAP3
00000f4c: MSTORE
00000f4d: MLOAD
00000f4e: PUSH32 0x6b69190ebbb96f162b04dc222ef96416f9dca9a415b6dd183c79424501113e18
00000f6f: SWAP2
00000f70: DUP2
00000f71: SWAP1
00000f72: SUB
00000f73: PUSH1 0xc0
00000f75: ADD
00000f76: SWAP1
00000f77: LOG1
00000f78: PUSH1 0x00
00000f7a: JUMPDEST
00000f7b: SWAP9
00000f7c: SWAP8
00000f7d: POP
00000f7e: POP
00000f7f: POP
00000f80: POP
00000f81: POP
00000f82: POP
00000f83: POP
00000f84: POP
00000f85: JUMP
00000f86: JUMPDEST
00000f87: PUSH1 0x0a
00000f89: SLOAD
00000f8a: PUSH1 0xff
00000f8c: AND
00000f8d: DUP2
00000f8e: JUMP
00000f8f: JUMPDEST
00000f90: PUSH1 0x01
00000f92: SLOAD
00000f93: PUSH1 0x00
00000f95: SWAP1
00000f96: PUSH1 0x01
00000f98: PUSH1 0xa0
00000f9a: PUSH1 0x02
00000f9c: EXP
00000f9d: SUB
00000f9e: AND
00000f9f: CALLER
00000fa0: EQ
00000fa1: PUSH2 0x0fb7
00000fa4: JUMPI
00000fa5: PUSH2 0x0fb0
00000fa8: PUSH1 0x02
00000faa: PUSH1 0x36
00000fac: PUSH2 0x3196
00000faf: JUMP
00000fb0: JUMPDEST
00000fb1: SWAP1
00000fb2: POP
00000fb3: PUSH2 0x1036
00000fb6: JUMP
00000fb7: JUMPDEST
00000fb8: PUSH1 0x01
00000fba: PUSH1 0xa0
00000fbc: PUSH1 0x02
00000fbe: EXP
00000fbf: SUB
00000fc0: DUP4
00000fc1: DUP2
00000fc2: AND
00000fc3: PUSH1 0x00
00000fc5: DUP2
00000fc6: DUP2
00000fc7: MSTORE
00000fc8: PUSH1 0x05
00000fca: PUSH1 0x20
00000fcc: SWAP1
00000fcd: DUP2
00000fce: MSTORE
00000fcf: PUSH1 0x40
00000fd1: SWAP2
00000fd2: DUP3
00000fd3: SWAP1
00000fd4: KECCAK256
00000fd5: PUSH1 0x02
00000fd7: ADD
00000fd8: DUP1
00000fd9: SLOAD
00000fda: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fef: NOT
00000ff0: AND
00000ff1: SWAP5
00000ff2: DUP8
00000ff3: AND
00000ff4: SWAP5
00000ff5: DUP6
00000ff6: OR
00000ff7: SWAP1
00000ff8: SSTORE
00000ff9: DUP2
00000ffa: MLOAD
00000ffb: SWAP3
00000ffc: DUP4
00000ffd: MSTORE
00000ffe: DUP3
00000fff: ADD
00001000: SWAP3
00001001: SWAP1
00001002: SWAP3
00001003: MSTORE
00001004: DUP2
00001005: MLOAD
00001006: PUSH32 0xd3993418771a1083a564315767fe24b893cd870e40b00ed1866f7aee2847426d
00001027: SWAP3
00001028: SWAP2
00001029: DUP2
0000102a: SWAP1
0000102b: SUB
0000102c: SWAP1
0000102d: SWAP2
0000102e: ADD
0000102f: SWAP1
00001030: LOG1
00001031: PUSH1 0x00
00001033: JUMPDEST
00001034: SWAP1
00001035: POP
00001036: JUMPDEST
00001037: SWAP3
00001038: SWAP2
00001039: POP
0000103a: POP
0000103b: JUMP
0000103c: JUMPDEST
0000103d: PUSH1 0x00
0000103f: DUP1
00001040: PUSH2 0x1047
00001043: PUSH2 0x47b0
00001046: JUMP
00001047: JUMPDEST
00001048: PUSH2 0x1050
0000104b: DUP5
0000104c: PUSH2 0x37a8
0000104f: JUMP
00001050: JUMPDEST
00001051: SWAP1
00001052: SWAP3
00001053: POP
00001054: SWAP1
00001055: POP
00001056: PUSH1 0x00
00001058: DUP3
00001059: PUSH1 0x19
0000105b: DUP2
0000105c: GT
0000105d: ISZERO
0000105e: PUSH2 0x1063
00001061: JUMPI
00001062: INVALID
00001063: JUMPDEST
00001064: EQ
00001065: PUSH2 0x1071
00001068: JUMPI
00001069: PUSH1 0x00
0000106b: SWAP3
0000106c: POP
0000106d: PUSH2 0x0923
00001070: JUMP
00001071: JUMPDEST
00001072: MLOAD
00001073: SWAP4
00001074: SWAP3
00001075: POP
00001076: POP
00001077: POP
00001078: JUMP
00001079: JUMPDEST
0000107a: PUSH1 0x00
0000107c: DUP1
0000107d: PUSH2 0x1084
00001080: PUSH2 0x47b0
00001083: JUMP
00001084: JUMPDEST
00001085: PUSH2 0x108c
00001088: PUSH2 0x47b0
0000108b: JUMP
0000108c: JUMPDEST
0000108d: PUSH2 0x1095
00001090: DUP6
00001091: PUSH2 0x34a8
00001094: JUMP
00001095: JUMPDEST
00001096: SWAP2
00001097: SWAP5
00001098: POP
00001099: SWAP3
0000109a: POP
0000109b: SWAP1
0000109c: POP
0000109d: PUSH1 0x00
0000109f: DUP4
000010a0: PUSH1 0x19
000010a2: DUP2
000010a3: GT
000010a4: ISZERO
000010a5: PUSH2 0x10aa
000010a8: JUMPI
000010a9: INVALID
000010aa: JUMPDEST
000010ab: EQ
000010ac: PUSH2 0x10b4
000010af: JUMPI
000010b0: PUSH1 0x00
000010b2: DUP1
000010b3: REVERT
000010b4: JUMPDEST
000010b5: PUSH2 0x10bd
000010b8: DUP3
000010b9: PUSH2 0x3637
000010bc: JUMP
000010bd: JUMPDEST
000010be: ISZERO
000010bf: PUSH2 0x10d6
000010c2: JUMPI
000010c3: PUSH2 0x10cb
000010c6: DUP2
000010c7: PUSH2 0x3898
000010ca: JUMP
000010cb: JUMPDEST
000010cc: PUSH1 0x00
000010ce: NOT
000010cf: MUL
000010d0: SWAP4
000010d1: POP
000010d2: PUSH2 0x10e2
000010d5: JUMP
000010d6: JUMPDEST
000010d7: PUSH2 0x10df
000010da: DUP3
000010db: PUSH2 0x3898
000010de: JUMP
000010df: JUMPDEST
000010e0: SWAP4
000010e1: POP
000010e2: JUMPDEST
000010e3: POP
000010e4: POP
000010e5: POP
000010e6: SWAP2
000010e7: SWAP1
000010e8: POP
000010e9: JUMP
000010ea: JUMPDEST
000010eb: PUSH1 0x06
000010ed: SLOAD
000010ee: SWAP1
000010ef: JUMP
000010f0: JUMPDEST
000010f1: PUSH1 0x02
000010f3: SLOAD
000010f4: PUSH1 0x01
000010f6: PUSH1 0xa0
000010f8: PUSH1 0x02
000010fa: EXP
000010fb: SUB
000010fc: AND
000010fd: DUP2
000010fe: JUMP
000010ff: JUMPDEST
00001100: PUSH1 0x09
00001102: SLOAD
00001103: DUP2
00001104: JUMP
00001105: JUMPDEST
00001106: PUSH1 0x05
00001108: PUSH1 0x20
0000110a: DUP2
0000110b: SWAP1
0000110c: MSTORE
0000110d: PUSH1 0x00
0000110f: SWAP2
00001110: DUP3
00001111: MSTORE
00001112: PUSH1 0x40
00001114: SWAP1
00001115: SWAP2
00001116: KECCAK256
00001117: DUP1
00001118: SLOAD
00001119: PUSH1 0x01
0000111b: DUP3
0000111c: ADD
0000111d: SLOAD
0000111e: PUSH1 0x02
00001120: DUP4
00001121: ADD
00001122: SLOAD
00001123: PUSH1 0x03
00001125: DUP5
00001126: ADD
00001127: SLOAD
00001128: PUSH1 0x04
0000112a: DUP6
0000112b: ADD
0000112c: SLOAD
0000112d: SWAP6
0000112e: DUP6
0000112f: ADD
00001130: SLOAD
00001131: PUSH1 0x06
00001133: DUP7
00001134: ADD
00001135: SLOAD
00001136: PUSH1 0x07
00001138: DUP8
00001139: ADD
0000113a: SLOAD
0000113b: PUSH1 0x08
0000113d: SWAP1
0000113e: SWAP8
0000113f: ADD
00001140: SLOAD
00001141: PUSH1 0xff
00001143: SWAP1
00001144: SWAP7
00001145: AND
00001146: SWAP8
00001147: SWAP5
00001148: SWAP7
00001149: PUSH1 0x01
0000114b: PUSH1 0xa0
0000114d: PUSH1 0x02
0000114f: EXP
00001150: SUB
00001151: SWAP1
00001152: SWAP5
00001153: AND
00001154: SWAP6
00001155: SWAP3
00001156: SWAP5
00001157: SWAP4
00001158: SWAP2
00001159: SWAP3
0000115a: SWAP1
0000115b: SWAP2
0000115c: SWAP1
0000115d: DUP10
0000115e: JUMP
0000115f: JUMPDEST
00001160: PUSH1 0x00
00001162: DUP1
00001163: PUSH1 0x00
00001165: DUP1
00001166: PUSH1 0x00
00001168: DUP1
00001169: PUSH2 0x1171
0000116c: DUP8
0000116d: PUSH2 0x38a7
00001170: JUMP
00001171: JUMPDEST
00001172: SWAP2
00001173: SWAP5
00001174: POP
00001175: SWAP3
00001176: POP
00001177: SWAP1
00001178: POP
00001179: PUSH1 0x00
0000117b: DUP4
0000117c: PUSH1 0x19
0000117e: DUP2
0000117f: GT
00001180: ISZERO
00001181: PUSH2 0x1186
00001184: JUMPI
00001185: INVALID
00001186: JUMPDEST
00001187: EQ
00001188: PUSH2 0x11a5
0000118b: JUMPI
0000118c: DUP3
0000118d: PUSH1 0x19
0000118f: DUP2
00001190: GT
00001191: ISZERO
00001192: PUSH2 0x1197
00001195: JUMPI
00001196: INVALID
00001197: JUMPDEST
00001198: SWAP6
00001199: POP
0000119a: PUSH1 0x00
0000119c: SWAP5
0000119d: POP
0000119e: DUP5
0000119f: SWAP4
000011a0: POP
000011a1: PUSH2 0x11b1
000011a4: JUMP
000011a5: JUMPDEST
000011a6: PUSH1 0x00
000011a8: SWAP6
000011a9: POP
000011aa: SWAP1
000011ab: SWAP4
000011ac: POP
000011ad: SWAP2
000011ae: POP
000011af: DUP3
000011b0: DUP3
000011b1: JUMPDEST
000011b2: POP
000011b3: POP
000011b4: POP
000011b5: SWAP2
000011b6: SWAP4
000011b7: SWAP1
000011b8: SWAP3
000011b9: POP
000011ba: JUMP
000011bb: JUMPDEST
000011bc: PUSH1 0x00
000011be: PUSH2 0x11c5
000011c1: PUSH2 0x4843
000011c4: JUMP
000011c5: JUMPDEST
000011c6: PUSH1 0x0a
000011c8: SLOAD
000011c9: PUSH1 0x00
000011cb: SWAP1
000011cc: DUP2
000011cd: SWAP1
000011ce: DUP2
000011cf: SWAP1
000011d0: DUP2
000011d1: SWAP1
000011d2: PUSH1 0xff
000011d4: AND
000011d5: ISZERO
000011d6: PUSH2 0x11e5
000011d9: JUMPI
000011da: PUSH2 0x0a91
000011dd: PUSH1 0x19
000011df: PUSH1 0x2b
000011e1: PUSH2 0x3196
000011e4: JUMP
000011e5: JUMPDEST
000011e6: PUSH1 0x01
000011e8: PUSH1 0xa0
000011ea: PUSH1 0x02
000011ec: EXP
000011ed: SUB
000011ee: DUP9
000011ef: AND
000011f0: PUSH1 0x00
000011f2: DUP2
000011f3: DUP2
000011f4: MSTORE
000011f5: PUSH1 0x05
000011f7: PUSH1 0x20
000011f9: SWAP1
000011fa: DUP2
000011fb: MSTORE
000011fc: PUSH1 0x40
000011fe: DUP1
000011ff: DUP4
00001200: KECCAK256
00001201: CALLER
00001202: DUP5
00001203: MSTORE
00001204: PUSH1 0x04
00001206: DUP4
00001207: MSTORE
00001208: DUP2
00001209: DUP5
0000120a: KECCAK256
0000120b: SWAP5
0000120c: DUP5
0000120d: MSTORE
0000120e: SWAP4
0000120f: SWAP1
00001210: SWAP2
00001211: MSTORE
00001212: SWAP1
00001213: KECCAK256
00001214: PUSH1 0x08
00001216: DUP3
00001217: ADD
00001218: SLOAD
00001219: PUSH1 0x07
0000121b: DUP4
0000121c: ADD
0000121d: SLOAD
0000121e: PUSH1 0x01
00001220: DUP5
00001221: ADD
00001222: SLOAD
00001223: SWAP4
00001224: SWAP8
00001225: POP
00001226: SWAP2
00001227: SWAP6
00001228: POP
00001229: PUSH2 0x1237
0000122c: SWAP3
0000122d: SWAP1
0000122e: SWAP2
0000122f: SWAP1
00001230: PUSH2 0x067d
00001233: PUSH2 0x3006
00001236: JUMP
00001237: JUMPDEST
00001238: DUP7
00001239: MSTORE
0000123a: SWAP2
0000123b: POP
0000123c: PUSH1 0x00
0000123e: DUP3
0000123f: PUSH1 0x19
00001241: DUP2
00001242: GT
00001243: ISZERO
00001244: PUSH2 0x1249
00001247: JUMPI
00001248: INVALID
00001249: JUMPDEST
0000124a: EQ
0000124b: PUSH2 0x1259
0000124e: JUMPI
0000124f: PUSH2 0x0a91
00001252: DUP3
00001253: PUSH1 0x2c
00001255: PUSH2 0x3196
00001258: JUMP
00001259: JUMPDEST
0000125a: DUP3
0000125b: SLOAD
0000125c: PUSH1 0x01
0000125e: DUP5
0000125f: ADD
00001260: SLOAD
00001261: DUP7
00001262: MLOAD
00001263: PUSH2 0x126d
00001266: SWAP3
00001267: SWAP2
00001268: SWAP1
00001269: PUSH2 0x3135
0000126c: JUMP
0000126d: JUMPDEST
0000126e: PUSH1 0x20
00001270: DUP8
00001271: ADD
00001272: MSTORE
00001273: SWAP2
00001274: POP
00001275: PUSH1 0x00
00001277: DUP3
00001278: PUSH1 0x19
0000127a: DUP2
0000127b: GT
0000127c: ISZERO
0000127d: PUSH2 0x1282
00001280: JUMPI
00001281: INVALID
00001282: JUMPDEST
00001283: EQ
00001284: PUSH2 0x1292
00001287: JUMPI
00001288: PUSH2 0x0a91
0000128b: DUP3
0000128c: PUSH1 0x2a
0000128e: PUSH2 0x3196
00001291: JUMP
00001292: JUMPDEST
00001293: PUSH1 0x00
00001295: NOT
00001296: DUP8
00001297: EQ
00001298: ISZERO
00001299: PUSH2 0x12bd
0000129c: JUMPI
0000129d: PUSH2 0x12b3
000012a0: PUSH2 0x12a9
000012a3: DUP10
000012a4: CALLER
000012a5: PUSH2 0x3bab
000012a8: JUMP
000012a9: JUMPDEST
000012aa: DUP7
000012ab: PUSH1 0x20
000012ad: ADD
000012ae: MLOAD
000012af: PUSH2 0x3c40
000012b2: JUMP
000012b3: JUMPDEST
000012b4: PUSH1 0x40
000012b6: DUP7
000012b7: ADD
000012b8: MSTORE
000012b9: PUSH2 0x12c5
000012bc: JUMP
000012bd: JUMPDEST
000012be: PUSH1 0x40
000012c0: DUP6
000012c1: ADD
000012c2: DUP8
000012c3: SWAP1
000012c4: MSTORE
000012c5: JUMPDEST
000012c6: PUSH2 0x12d7
000012c9: DUP6
000012ca: PUSH1 0x20
000012cc: ADD
000012cd: MLOAD
000012ce: DUP7
000012cf: PUSH1 0x40
000012d1: ADD
000012d2: MLOAD
000012d3: PUSH2 0x372b
000012d6: JUMP
000012d7: JUMPDEST
000012d8: PUSH1 0x60
000012da: DUP8
000012db: ADD
000012dc: MSTORE
000012dd: SWAP2
000012de: POP
000012df: PUSH1 0x00
000012e1: DUP3
000012e2: PUSH1 0x19
000012e4: DUP2
000012e5: GT
000012e6: ISZERO
000012e7: PUSH2 0x12ec
000012ea: JUMPI
000012eb: INVALID
000012ec: JUMPDEST
000012ed: EQ
000012ee: PUSH2 0x12fc
000012f1: JUMPI
000012f2: PUSH2 0x0a91
000012f5: DUP3
000012f6: PUSH1 0x30
000012f8: PUSH2 0x3196
000012fb: JUMP
000012fc: JUMPDEST
000012fd: PUSH2 0x130b
00001300: DUP9
00001301: CALLER
00001302: DUP8
00001303: PUSH1 0x40
00001305: ADD
00001306: MLOAD
00001307: PUSH2 0x3c58
0000130a: JUMP
0000130b: JUMPDEST
0000130c: SWAP2
0000130d: POP
0000130e: PUSH1 0x00
00001310: DUP3
00001311: PUSH1 0x19
00001313: DUP2
00001314: GT
00001315: ISZERO
00001316: PUSH2 0x131b
00001319: JUMPI
0000131a: INVALID
0000131b: JUMPDEST
0000131c: EQ
0000131d: PUSH2 0x132b
00001320: JUMPI
00001321: PUSH2 0x0a91
00001324: DUP3
00001325: PUSH1 0x34
00001327: PUSH2 0x3196
0000132a: JUMP
0000132b: JUMPDEST
0000132c: PUSH2 0x1342
0000132f: DUP5
00001330: PUSH1 0x06
00001332: ADD
00001333: SLOAD
00001334: DUP7
00001335: PUSH1 0x60
00001337: ADD
00001338: MLOAD
00001339: DUP6
0000133a: PUSH1 0x00
0000133c: ADD
0000133d: SLOAD
0000133e: PUSH2 0x3294
00001341: JUMP
00001342: JUMPDEST
00001343: PUSH1 0x80
00001345: DUP8
00001346: ADD
00001347: MSTORE
00001348: SWAP2
00001349: POP
0000134a: PUSH1 0x00
0000134c: DUP3
0000134d: PUSH1 0x19
0000134f: DUP2
00001350: GT
00001351: ISZERO
00001352: PUSH2 0x1357
00001355: JUMPI
00001356: INVALID
00001357: JUMPDEST
00001358: EQ
00001359: PUSH2 0x1367
0000135c: JUMPI
0000135d: PUSH2 0x0a91
00001360: DUP3
00001361: PUSH1 0x31
00001363: PUSH2 0x3196
00001366: JUMP
00001367: JUMPDEST
00001368: PUSH2 0x1370
0000136b: DUP9
0000136c: PUSH2 0x31fc
0000136f: JUMP
00001370: JUMPDEST
00001371: PUSH1 0xa0
00001373: DUP7
00001374: ADD
00001375: DUP2
00001376: SWAP1
00001377: MSTORE
00001378: PUSH1 0x40
0000137a: DUP7
0000137b: ADD
0000137c: MLOAD
0000137d: PUSH2 0x1386
00001380: SWAP2
00001381: SWAP1
00001382: PUSH2 0x347e
00001385: JUMP
00001386: JUMPDEST
00001387: PUSH1 0xc0
00001389: DUP8
0000138a: ADD
0000138b: MSTORE
0000138c: SWAP2
0000138d: POP
0000138e: PUSH1 0x00
00001390: DUP3
00001391: PUSH1 0x19
00001393: DUP2
00001394: GT
00001395: ISZERO
00001396: PUSH2 0x139b
00001399: JUMPI
0000139a: INVALID
0000139b: JUMPDEST
0000139c: EQ
0000139d: PUSH2 0x13ab
000013a0: JUMPI
000013a1: PUSH2 0x0a91
000013a4: DUP3
000013a5: PUSH1 0x32
000013a7: PUSH2 0x3196
000013aa: JUMP
000013ab: JUMPDEST
000013ac: PUSH2 0x13c5
000013af: DUP5
000013b0: PUSH1 0x05
000013b2: ADD
000013b3: SLOAD
000013b4: DUP6
000013b5: PUSH1 0x04
000013b7: ADD
000013b8: SLOAD
000013b9: DUP7
000013ba: PUSH1 0x01
000013bc: ADD
000013bd: SLOAD
000013be: PUSH2 0x067d
000013c1: PUSH2 0x3006
000013c4: JUMP
000013c5: JUMPDEST
000013c6: PUSH1 0xe0
000013c8: DUP8
000013c9: ADD
000013ca: MSTORE
000013cb: SWAP2
000013cc: POP
000013cd: PUSH1 0x00
000013cf: DUP3
000013d0: PUSH1 0x19
000013d2: DUP2
000013d3: GT
000013d4: ISZERO
000013d5: PUSH2 0x13da
000013d8: JUMPI
000013d9: INVALID
000013da: JUMPDEST
000013db: EQ
000013dc: PUSH2 0x13ea
000013df: JUMPI
000013e0: PUSH2 0x0a91
000013e3: DUP3
000013e4: PUSH1 0x2e
000013e6: PUSH2 0x3196
000013e9: JUMP
000013ea: JUMPDEST
000013eb: PUSH1 0x02
000013ed: DUP5
000013ee: ADD
000013ef: SLOAD
000013f0: PUSH1 0xc0
000013f2: DUP7
000013f3: ADD
000013f4: MLOAD
000013f5: PUSH1 0x80
000013f7: DUP8
000013f8: ADD
000013f9: MLOAD
000013fa: PUSH1 0x40
000013fc: DUP1
000013fd: MLOAD
000013fe: PUSH1 0xe1
00001400: PUSH1 0x02
00001402: EXP
00001403: PUSH4 0x28be7b9f
00001408: MUL
00001409: DUP2
0000140a: MSTORE
0000140b: PUSH1 0x01
0000140d: PUSH1 0xa0
0000140f: PUSH1 0x02
00001411: EXP
00001412: SUB
00001413: DUP14
00001414: DUP2
00001415: AND
00001416: PUSH1 0x04
00001418: DUP4
00001419: ADD
0000141a: MSTORE
0000141b: PUSH1 0x24
0000141d: DUP3
0000141e: ADD
0000141f: SWAP5
00001420: SWAP1
00001421: SWAP5
00001422: MSTORE
00001423: PUSH1 0x44
00001425: DUP2
00001426: ADD
00001427: SWAP3
00001428: SWAP1
00001429: SWAP3
0000142a: MSTORE
0000142b: DUP1
0000142c: MLOAD
0000142d: SWAP3
0000142e: SWAP1
0000142f: SWAP4
00001430: AND
00001431: SWAP3
00001432: PUSH4 0x517cf73e
00001437: SWAP3
00001438: PUSH1 0x64
0000143a: DUP1
0000143b: DUP5
0000143c: ADD
0000143d: SWAP4
0000143e: DUP3
0000143f: SWAP1
00001440: SUB
00001441: ADD
00001442: DUP2
00001443: PUSH1 0x00
00001445: DUP8
00001446: DUP1
00001447: EXTCODESIZE
00001448: ISZERO
00001449: DUP1
0000144a: ISZERO
0000144b: PUSH2 0x1453
0000144e: JUMPI
0000144f: PUSH1 0x00
00001451: DUP1
00001452: REVERT
00001453: JUMPDEST
00001454: POP
00001455: GAS
00001456: CALL
00001457: ISZERO
00001458: DUP1
00001459: ISZERO
0000145a: PUSH2 0x1467
0000145d: JUMPI
0000145e: RETURNDATASIZE
0000145f: PUSH1 0x00
00001461: DUP1
00001462: RETURNDATACOPY
00001463: RETURNDATASIZE
00001464: PUSH1 0x00
00001466: REVERT
00001467: JUMPDEST
00001468: POP
00001469: POP
0000146a: POP
0000146b: POP
0000146c: PUSH1 0x40
0000146e: MLOAD
0000146f: RETURNDATASIZE
00001470: PUSH1 0x40
00001472: DUP2
00001473: LT
00001474: ISZERO
00001475: PUSH2 0x147d
00001478: JUMPI
00001479: PUSH1 0x00
0000147b: DUP1
0000147c: REVERT
0000147d: JUMPDEST
0000147e: POP
0000147f: DUP1
00001480: MLOAD
00001481: PUSH1 0x20
00001483: SWAP1
00001484: SWAP2
00001485: ADD
00001486: MLOAD
00001487: PUSH2 0x0100
0000148a: DUP8
0000148b: ADD
0000148c: MSTORE
0000148d: SWAP1
0000148e: POP
0000148f: DUP1
00001490: ISZERO
00001491: PUSH2 0x149f
00001494: JUMPI
00001495: PUSH2 0x0a91
00001498: PUSH1 0x2f
0000149a: DUP3
0000149b: PUSH2 0x3751
0000149e: JUMP
0000149f: JUMPDEST
000014a0: PUSH1 0x02
000014a2: DUP5
000014a3: ADD
000014a4: SLOAD
000014a5: PUSH1 0xc0
000014a7: DUP7
000014a8: ADD
000014a9: MLOAD
000014aa: PUSH1 0x80
000014ac: DUP8
000014ad: ADD
000014ae: MLOAD
000014af: PUSH1 0x40
000014b1: DUP1
000014b2: MLOAD
000014b3: PUSH1 0xe2
000014b5: PUSH1 0x02
000014b7: EXP
000014b8: PUSH4 0x3b4ad68f
000014bd: MUL
000014be: DUP2
000014bf: MSTORE
000014c0: PUSH1 0x01
000014c2: PUSH1 0xa0
000014c4: PUSH1 0x02
000014c6: EXP
000014c7: SUB
000014c8: DUP14
000014c9: DUP2
000014ca: AND
000014cb: PUSH1 0x04
000014cd: DUP4
000014ce: ADD
000014cf: MSTORE
000014d0: PUSH1 0x24
000014d2: DUP3
000014d3: ADD
000014d4: SWAP5
000014d5: SWAP1
000014d6: SWAP5
000014d7: MSTORE
000014d8: PUSH1 0x44
000014da: DUP2
000014db: ADD
000014dc: SWAP3
000014dd: SWAP1
000014de: SWAP3
000014df: MSTORE
000014e0: DUP1
000014e1: MLOAD
000014e2: SWAP3
000014e3: SWAP1
000014e4: SWAP4
000014e5: AND
000014e6: SWAP3
000014e7: PUSH4 0xed2b5a3c
000014ec: SWAP3
000014ed: PUSH1 0x64
000014ef: DUP1
000014f0: DUP5
000014f1: ADD
000014f2: SWAP4
000014f3: DUP3
000014f4: SWAP1
000014f5: SUB
000014f6: ADD
000014f7: DUP2
000014f8: PUSH1 0x00
000014fa: DUP8
000014fb: DUP1
000014fc: EXTCODESIZE
000014fd: ISZERO
000014fe: DUP1
000014ff: ISZERO
00001500: PUSH2 0x1508
00001503: JUMPI
00001504: PUSH1 0x00
00001506: DUP1
00001507: REVERT
00001508: JUMPDEST
00001509: POP
0000150a: GAS
0000150b: CALL
0000150c: ISZERO
0000150d: DUP1
0000150e: ISZERO
0000150f: PUSH2 0x151c
00001512: JUMPI
00001513: RETURNDATASIZE
00001514: PUSH1 0x00
00001516: DUP1
00001517: RETURNDATACOPY
00001518: RETURNDATASIZE
00001519: PUSH1 0x00
0000151b: REVERT
0000151c: JUMPDEST
0000151d: POP
0000151e: POP
0000151f: POP
00001520: POP
00001521: PUSH1 0x40
00001523: MLOAD
00001524: RETURNDATASIZE
00001525: PUSH1 0x40
00001527: DUP2
00001528: LT
00001529: ISZERO
0000152a: PUSH2 0x1532
0000152d: JUMPI
0000152e: PUSH1 0x00
00001530: DUP1
00001531: REVERT
00001532: JUMPDEST
00001533: POP
00001534: DUP1
00001535: MLOAD
00001536: PUSH1 0x20
00001538: SWAP1
00001539: SWAP2
0000153a: ADD
0000153b: MLOAD
0000153c: PUSH2 0x0120
0000153f: DUP8
00001540: ADD
00001541: MSTORE
00001542: SWAP1
00001543: POP
00001544: DUP1
00001545: ISZERO
00001546: PUSH2 0x1554
00001549: JUMPI
0000154a: PUSH2 0x0a91
0000154d: PUSH1 0x2d
0000154f: DUP3
00001550: PUSH2 0x3751
00001553: JUMP
00001554: JUMPDEST
00001555: PUSH2 0x1563
00001558: DUP9
00001559: CALLER
0000155a: DUP8
0000155b: PUSH1 0x40
0000155d: ADD
0000155e: MLOAD
0000155f: PUSH2 0x3da8
00001562: JUMP
00001563: JUMPDEST
00001564: SWAP2
00001565: POP
00001566: PUSH1 0x00
00001568: DUP3
00001569: PUSH1 0x19
0000156b: DUP2
0000156c: GT
0000156d: ISZERO
0000156e: PUSH2 0x1573
00001571: JUMPI
00001572: INVALID
00001573: JUMPDEST
00001574: EQ
00001575: PUSH2 0x1583
00001578: JUMPI
00001579: PUSH2 0x0a91
0000157c: DUP3
0000157d: PUSH1 0x33
0000157f: PUSH2 0x3196
00001582: JUMP
00001583: JUMPDEST
00001584: PUSH2 0x158b
00001587: PUSH2 0x3006
0000158a: JUMP
0000158b: JUMPDEST
0000158c: PUSH1 0x01
0000158e: DUP1
0000158f: DUP7
00001590: ADD
00001591: SWAP2
00001592: SWAP1
00001593: SWAP2
00001594: SSTORE
00001595: PUSH1 0x80
00001597: DUP1
00001598: DUP8
00001599: ADD
0000159a: MLOAD
0000159b: PUSH1 0x06
0000159d: DUP8
0000159e: ADD
0000159f: SSTORE
000015a0: PUSH2 0x0100
000015a3: DUP8
000015a4: ADD
000015a5: MLOAD
000015a6: PUSH1 0x04
000015a8: DUP8
000015a9: ADD
000015aa: SSTORE
000015ab: PUSH1 0xe0
000015ad: DUP8
000015ae: ADD
000015af: MLOAD
000015b0: PUSH1 0x05
000015b2: DUP8
000015b3: ADD
000015b4: SSTORE
000015b5: PUSH2 0x0120
000015b8: DUP8
000015b9: ADD
000015ba: MLOAD
000015bb: PUSH1 0x07
000015bd: DUP8
000015be: ADD
000015bf: SSTORE
000015c0: DUP7
000015c1: MLOAD
000015c2: PUSH1 0x08
000015c4: DUP8
000015c5: ADD
000015c6: DUP2
000015c7: SWAP1
000015c8: SSTORE
000015c9: DUP6
000015ca: SLOAD
000015cb: PUSH2 0x0140
000015ce: DUP10
000015cf: ADD
000015d0: DUP2
000015d1: SWAP1
000015d2: MSTORE
000015d3: PUSH1 0x60
000015d5: DUP1
000015d6: DUP11
000015d7: ADD
000015d8: MLOAD
000015d9: DUP1
000015da: DUP10
000015db: SSTORE
000015dc: SWAP5
000015dd: DUP9
000015de: ADD
000015df: SWAP3
000015e0: SWAP1
000015e1: SWAP3
000015e2: SSTORE
000015e3: PUSH1 0x40
000015e5: DUP1
000015e6: DUP11
000015e7: ADD
000015e8: MLOAD
000015e9: DUP2
000015ea: MLOAD
000015eb: CALLER
000015ec: DUP2
000015ed: MSTORE
000015ee: PUSH1 0x01
000015f0: PUSH1 0xa0
000015f2: PUSH1 0x02
000015f4: EXP
000015f5: SUB
000015f6: DUP16
000015f7: AND
000015f8: PUSH1 0x20
000015fa: DUP3
000015fb: ADD
000015fc: MSTORE
000015fd: DUP1
000015fe: DUP4
000015ff: ADD
00001600: SWAP2
00001601: SWAP1
00001602: SWAP2
00001603: MSTORE
00001604: SWAP3
00001605: DUP4
00001606: ADD
00001607: SWAP2
00001608: SWAP1
00001609: SWAP2
0000160a: MSTORE
0000160b: SWAP2
0000160c: DUP2
0000160d: ADD
0000160e: SWAP3
0000160f: SWAP1
00001610: SWAP3
00001611: MSTORE
00001612: MLOAD
00001613: PUSH32 0x550e7e464126359c6adc43831f011682856b177df6c49c0af6675dd2a063649d
00001634: SWAP2
00001635: DUP2
00001636: SWAP1
00001637: SUB
00001638: PUSH1 0xa0
0000163a: ADD
0000163b: SWAP1
0000163c: LOG1
0000163d: PUSH1 0x00
0000163f: PUSH2 0x0f7a
00001642: JUMP
00001643: JUMPDEST
00001644: PUSH1 0x07
00001646: SLOAD
00001647: DUP2
00001648: JUMP
00001649: JUMPDEST
0000164a: PUSH1 0x01
0000164c: SLOAD
0000164d: PUSH1 0x00
0000164f: SWAP1
00001650: DUP2
00001651: SWAP1
00001652: PUSH1 0x01
00001654: PUSH1 0xa0
00001656: PUSH1 0x02
00001658: EXP
00001659: SUB
0000165a: AND
0000165b: CALLER
0000165c: EQ
0000165d: PUSH2 0x166c
00001660: JUMPI
00001661: PUSH2 0x0706
00001664: PUSH1 0x02
00001666: PUSH1 0x3a
00001668: PUSH2 0x3196
0000166b: JUMP
0000166c: JUMPDEST
0000166d: POP
0000166e: PUSH1 0x00
00001670: DUP1
00001671: SLOAD
00001672: PUSH1 0x01
00001674: PUSH1 0xa0
00001676: PUSH1 0x02
00001678: EXP
00001679: SUB
0000167a: DUP5
0000167b: DUP2
0000167c: AND
0000167d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001692: NOT
00001693: DUP4
00001694: AND
00001695: DUP2
00001696: OR
00001697: SWAP1
00001698: SWAP4
00001699: SSTORE
0000169a: PUSH1 0x40
0000169c: DUP1
0000169d: MLOAD
0000169e: SWAP2
0000169f: SWAP1
000016a0: SWAP3
000016a1: AND
000016a2: DUP1
000016a3: DUP3
000016a4: MSTORE
000016a5: PUSH1 0x20
000016a7: DUP3
000016a8: ADD
000016a9: SWAP4
000016aa: SWAP1
000016ab: SWAP4
000016ac: MSTORE
000016ad: DUP2
000016ae: MLOAD
000016af: PUSH32 0xca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a9
000016d0: SWAP3
000016d1: SWAP2
000016d2: DUP2
000016d3: SWAP1
000016d4: SUB
000016d5: SWAP1
000016d6: SWAP2
000016d7: ADD
000016d8: SWAP1
000016d9: LOG1
000016da: PUSH1 0x00
000016dc: PUSH2 0x0769
000016df: JUMP
000016e0: JUMPDEST
000016e1: PUSH1 0x03
000016e3: PUSH1 0x20
000016e5: SWAP1
000016e6: DUP2
000016e7: MSTORE
000016e8: PUSH1 0x00
000016ea: SWAP3
000016eb: DUP4
000016ec: MSTORE
000016ed: PUSH1 0x40
000016ef: DUP1
000016f0: DUP5
000016f1: KECCAK256
000016f2: SWAP1
000016f3: SWAP2
000016f4: MSTORE
000016f5: SWAP1
000016f6: DUP3
000016f7: MSTORE
000016f8: SWAP1
000016f9: KECCAK256
000016fa: DUP1
000016fb: SLOAD
000016fc: PUSH1 0x01
000016fe: SWAP1
000016ff: SWAP2
00001700: ADD
00001701: SLOAD
00001702: DUP3
00001703: JUMP
00001704: JUMPDEST
00001705: PUSH1 0x08
00001707: SLOAD
00001708: DUP2
00001709: JUMP
0000170a: JUMPDEST
0000170b: PUSH1 0x01
0000170d: PUSH1 0xa0
0000170f: PUSH1 0x02
00001711: EXP
00001712: SUB
00001713: DUP1
00001714: DUP3
00001715: AND
00001716: PUSH1 0x00
00001718: DUP2
00001719: DUP2
0000171a: MSTORE
0000171b: PUSH1 0x05
0000171d: PUSH1 0x20
0000171f: DUP2
00001720: DUP2
00001721: MSTORE
00001722: PUSH1 0x40
00001724: DUP1
00001725: DUP5
00001726: KECCAK256
00001727: SWAP6
00001728: DUP9
00001729: AND
0000172a: DUP5
0000172b: MSTORE
0000172c: PUSH1 0x03
0000172e: DUP3
0000172f: MSTORE
00001730: DUP1
00001731: DUP5
00001732: KECCAK256
00001733: SWAP5
00001734: DUP5
00001735: MSTORE
00001736: SWAP4
00001737: SWAP1
00001738: MSTORE
00001739: SWAP2
0000173a: DUP2
0000173b: KECCAK256
0000173c: SWAP2
0000173d: DUP4
0000173e: ADD
0000173f: SLOAD
00001740: PUSH1 0x04
00001742: DUP5
00001743: ADD
00001744: SLOAD
00001745: PUSH1 0x01
00001747: DUP6
00001748: ADD
00001749: SLOAD
0000174a: SWAP3
0000174b: SWAP5
0000174c: DUP6
0000174d: SWAP5
0000174e: DUP6
0000174f: SWAP5
00001750: DUP6
00001751: SWAP5
00001752: SWAP3
00001753: SWAP4
00001754: SWAP2
00001755: SWAP3
00001756: PUSH2 0x0682
00001759: SWAP3
0000175a: SWAP1
0000175b: SWAP2
0000175c: PUSH2 0x067d
0000175f: PUSH2 0x3006
00001762: JUMP
00001763: JUMPDEST
00001764: PUSH1 0x06
00001766: DUP1
00001767: SLOAD
00001768: DUP3
00001769: SWAP1
0000176a: DUP2
0000176b: LT
0000176c: PUSH2 0x1771
0000176f: JUMPI
00001770: INVALID
00001771: JUMPDEST
00001772: PUSH1 0x00
00001774: SWAP2
00001775: DUP3
00001776: MSTORE
00001777: PUSH1 0x20
00001779: SWAP1
0000177a: SWAP2
0000177b: KECCAK256
0000177c: ADD
0000177d: SLOAD
0000177e: PUSH1 0x01
00001780: PUSH1 0xa0
00001782: PUSH1 0x02
00001784: EXP
00001785: SUB
00001786: AND
00001787: SWAP1
00001788: POP
00001789: DUP2
0000178a: JUMP
0000178b: JUMPDEST
0000178c: PUSH1 0x00
0000178e: DUP1
0000178f: PUSH2 0x1796
00001792: PUSH2 0x47b0
00001795: JUMP
00001796: JUMPDEST
00001797: PUSH1 0x01
00001799: SLOAD
0000179a: PUSH1 0x01
0000179c: PUSH1 0xa0
0000179e: PUSH1 0x02
000017a0: EXP
000017a1: SUB
000017a2: AND
000017a3: CALLER
000017a4: EQ
000017a5: PUSH2 0x17bb
000017a8: JUMPI
000017a9: PUSH2 0x17b4
000017ac: PUSH1 0x02
000017ae: PUSH1 0x4a
000017b0: PUSH2 0x3196
000017b3: JUMP
000017b4: JUMPDEST
000017b5: SWAP3
000017b6: POP
000017b7: PUSH2 0x1932
000017ba: JUMP
000017bb: JUMPDEST
000017bc: PUSH2 0x17c4
000017bf: DUP6
000017c0: PUSH2 0x37a8
000017c3: JUMP
000017c4: JUMPDEST
000017c5: SWAP1
000017c6: SWAP3
000017c7: POP
000017c8: SWAP1
000017c9: POP
000017ca: PUSH1 0x00
000017cc: DUP3
000017cd: PUSH1 0x19
000017cf: DUP2
000017d0: GT
000017d1: ISZERO
000017d2: PUSH2 0x17d7
000017d5: JUMPI
000017d6: INVALID
000017d7: JUMPDEST
000017d8: EQ
000017d9: PUSH2 0x17e7
000017dc: JUMPI
000017dd: PUSH2 0x17b4
000017e0: DUP3
000017e1: PUSH1 0x49
000017e3: PUSH2 0x3196
000017e6: JUMP
000017e7: JUMPDEST
000017e8: PUSH2 0x17f0
000017eb: DUP2
000017ec: PUSH2 0x3637
000017ef: JUMP
000017f0: JUMPDEST
000017f1: ISZERO
000017f2: PUSH2 0x1801
000017f5: JUMPI
000017f6: PUSH2 0x17b4
000017f9: PUSH1 0x15
000017fb: PUSH1 0x4b
000017fd: PUSH2 0x3196
00001800: JUMP
00001801: JUMPDEST
00001802: PUSH1 0x01
00001804: PUSH1 0xa0
00001806: PUSH1 0x02
00001808: EXP
00001809: SUB
0000180a: DUP6
0000180b: DUP2
0000180c: AND
0000180d: PUSH1 0x00
0000180f: SWAP1
00001810: DUP2
00001811: MSTORE
00001812: PUSH1 0x05
00001814: PUSH1 0x20
00001816: MSTORE
00001817: PUSH1 0x40
00001819: SWAP1
0000181a: KECCAK256
0000181b: PUSH1 0x02
0000181d: ADD
0000181e: DUP1
0000181f: SLOAD
00001820: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001835: NOT
00001836: AND
00001837: SWAP2
00001838: DUP7
00001839: AND
0000183a: SWAP2
0000183b: SWAP1
0000183c: SWAP2
0000183d: OR
0000183e: SWAP1
0000183f: SSTORE
00001840: PUSH2 0x1848
00001843: DUP6
00001844: PUSH2 0x3e74
00001847: JUMP
00001848: JUMPDEST
00001849: PUSH1 0x01
0000184b: PUSH1 0xa0
0000184d: PUSH1 0x02
0000184f: EXP
00001850: SUB
00001851: DUP6
00001852: AND
00001853: PUSH1 0x00
00001855: SWAP1
00001856: DUP2
00001857: MSTORE
00001858: PUSH1 0x05
0000185a: PUSH1 0x20
0000185c: DUP2
0000185d: SWAP1
0000185e: MSTORE
0000185f: PUSH1 0x40
00001861: SWAP1
00001862: SWAP2
00001863: KECCAK256
00001864: DUP1
00001865: SLOAD
00001866: PUSH1 0xff
00001868: NOT
00001869: AND
0000186a: PUSH1 0x01
0000186c: OR
0000186d: DUP2
0000186e: SSTORE
0000186f: ADD
00001870: SLOAD
00001871: ISZERO
00001872: ISZERO
00001873: PUSH2 0x189e
00001876: JUMPI
00001877: PUSH1 0x01
00001879: PUSH1 0xa0
0000187b: PUSH1 0x02
0000187d: EXP
0000187e: SUB
0000187f: DUP6
00001880: AND
00001881: PUSH1 0x00
00001883: SWAP1
00001884: DUP2
00001885: MSTORE
00001886: PUSH1 0x05
00001888: PUSH1 0x20
0000188a: DUP2
0000188b: SWAP1
0000188c: MSTORE
0000188d: PUSH1 0x40
0000188f: SWAP1
00001890: SWAP2
00001891: KECCAK256
00001892: PUSH8 0x0de0b6b3a7640000
0000189b: SWAP2
0000189c: ADD
0000189d: SSTORE
0000189e: JUMPDEST
0000189f: PUSH1 0x01
000018a1: PUSH1 0xa0
000018a3: PUSH1 0x02
000018a5: EXP
000018a6: SUB
000018a7: DUP6
000018a8: AND
000018a9: PUSH1 0x00
000018ab: SWAP1
000018ac: DUP2
000018ad: MSTORE
000018ae: PUSH1 0x05
000018b0: PUSH1 0x20
000018b2: MSTORE
000018b3: PUSH1 0x40
000018b5: SWAP1
000018b6: KECCAK256
000018b7: PUSH1 0x08
000018b9: ADD
000018ba: SLOAD
000018bb: ISZERO
000018bc: ISZERO
000018bd: PUSH2 0x18e8
000018c0: JUMPI
000018c1: PUSH1 0x01
000018c3: PUSH1 0xa0
000018c5: PUSH1 0x02
000018c7: EXP
000018c8: SUB
000018c9: DUP6
000018ca: AND
000018cb: PUSH1 0x00
000018cd: SWAP1
000018ce: DUP2
000018cf: MSTORE
000018d0: PUSH1 0x05
000018d2: PUSH1 0x20
000018d4: MSTORE
000018d5: PUSH1 0x40
000018d7: SWAP1
000018d8: KECCAK256
000018d9: PUSH8 0x0de0b6b3a7640000
000018e2: PUSH1 0x08
000018e4: SWAP1
000018e5: SWAP2
000018e6: ADD
000018e7: SSTORE
000018e8: JUMPDEST
000018e9: PUSH1 0x40
000018eb: DUP1
000018ec: MLOAD
000018ed: PUSH1 0x01
000018ef: PUSH1 0xa0
000018f1: PUSH1 0x02
000018f3: EXP
000018f4: SUB
000018f5: DUP1
000018f6: DUP9
000018f7: AND
000018f8: DUP3
000018f9: MSTORE
000018fa: DUP7
000018fb: AND
000018fc: PUSH1 0x20
000018fe: DUP3
000018ff: ADD
00001900: MSTORE
00001901: DUP2
00001902: MLOAD
00001903: PUSH32 0xb7a6a26f7de915e2ae44a232d6e630a10f686ae27227d2544238ade533117b7a
00001924: SWAP3
00001925: SWAP2
00001926: DUP2
00001927: SWAP1
00001928: SUB
00001929: SWAP1
0000192a: SWAP2
0000192b: ADD
0000192c: SWAP1
0000192d: LOG1
0000192e: PUSH1 0x00
00001930: SWAP3
00001931: POP
00001932: JUMPDEST
00001933: POP
00001934: POP
00001935: SWAP3
00001936: SWAP2
00001937: POP
00001938: POP
00001939: JUMP
0000193a: JUMPDEST
0000193b: PUSH1 0x00
0000193d: PUSH2 0x1944
00001940: PUSH2 0x47b0
00001943: JUMP
00001944: JUMPDEST
00001945: PUSH2 0x194c
00001948: PUSH2 0x47b0
0000194b: JUMP
0000194c: JUMPDEST
0000194d: PUSH2 0x1954
00001950: PUSH2 0x47b0
00001953: JUMP
00001954: JUMPDEST
00001955: PUSH2 0x195c
00001958: PUSH2 0x47b0
0000195b: JUMP
0000195c: JUMPDEST
0000195d: PUSH1 0x00
0000195f: PUSH2 0x1966
00001962: PUSH2 0x47b0
00001965: JUMP
00001966: JUMPDEST
00001967: PUSH2 0x196e
0000196a: PUSH2 0x47b0
0000196d: JUMP
0000196e: JUMPDEST
0000196f: PUSH2 0x1976
00001972: PUSH2 0x47b0
00001975: JUMP
00001976: JUMPDEST
00001977: PUSH1 0x01
00001979: SLOAD
0000197a: PUSH1 0x01
0000197c: PUSH1 0xa0
0000197e: PUSH1 0x02
00001980: EXP
00001981: SUB
00001982: AND
00001983: CALLER
00001984: EQ
00001985: PUSH2 0x199b
00001988: JUMPI
00001989: PUSH2 0x1994
0000198c: PUSH1 0x02
0000198e: PUSH1 0x3b
00001990: PUSH2 0x3196
00001993: JUMP
00001994: JUMPDEST
00001995: SWAP9
00001996: POP
00001997: PUSH2 0x1ae8
0000199a: JUMP
0000199b: JUMPDEST
0000199c: PUSH1 0x40
0000199e: DUP1
0000199f: MLOAD
000019a0: PUSH1 0x20
000019a2: DUP2
000019a3: DUP2
000019a4: ADD
000019a5: DUP4
000019a6: MSTORE
000019a7: DUP14
000019a8: DUP3
000019a9: MSTORE
000019aa: DUP3
000019ab: MLOAD
000019ac: DUP1
000019ad: DUP3
000019ae: ADD
000019af: DUP5
000019b0: MSTORE
000019b1: DUP14
000019b2: DUP2
000019b3: MSTORE
000019b4: DUP4
000019b5: MLOAD
000019b6: DUP1
000019b7: DUP4
000019b8: ADD
000019b9: DUP6
000019ba: MSTORE
000019bb: PUSH8 0x0f43fc2c04ee0000
000019c4: DUP2
000019c5: MSTORE
000019c6: DUP5
000019c7: MLOAD
000019c8: SWAP3
000019c9: DUP4
000019ca: ADD
000019cb: SWAP1
000019cc: SWAP5
000019cd: MSTORE
000019ce: PUSH8 0x016345785d8a0000
000019d7: DUP3
000019d8: MSTORE
000019d9: SWAP2
000019da: SWAP11
000019db: POP
000019dc: SWAP1
000019dd: SWAP9
000019de: POP
000019df: SWAP1
000019e0: SWAP7
000019e1: POP
000019e2: SWAP5
000019e3: POP
000019e4: PUSH2 0x19ed
000019e7: DUP9
000019e8: DUP8
000019e9: PUSH2 0x3724
000019ec: JUMP
000019ed: JUMPDEST
000019ee: ISZERO
000019ef: PUSH2 0x19fe
000019f2: JUMPI
000019f3: PUSH2 0x1994
000019f6: PUSH1 0x11
000019f8: PUSH1 0x3c
000019fa: PUSH2 0x3196
000019fd: JUMP
000019fe: JUMPDEST
000019ff: PUSH2 0x1a08
00001a02: DUP6
00001a03: DUP9
00001a04: PUSH2 0x3724
00001a07: JUMP
00001a08: JUMPDEST
00001a09: ISZERO
00001a0a: PUSH2 0x1a19
00001a0d: JUMPI
00001a0e: PUSH2 0x1994
00001a11: PUSH1 0x16
00001a13: PUSH1 0x3c
00001a15: PUSH2 0x3196
00001a18: JUMP
00001a19: JUMPDEST
00001a1a: PUSH2 0x1a3a
00001a1d: DUP8
00001a1e: PUSH1 0x20
00001a20: PUSH1 0x40
00001a22: MLOAD
00001a23: SWAP1
00001a24: DUP2
00001a25: ADD
00001a26: PUSH1 0x40
00001a28: MSTORE
00001a29: DUP1
00001a2a: PUSH8 0x0de0b6b3a7640000
00001a33: DUP2
00001a34: MSTORE
00001a35: POP
00001a36: PUSH2 0x3f1f
00001a39: JUMP
00001a3a: JUMPDEST
00001a3b: SWAP1
00001a3c: SWAP5
00001a3d: POP
00001a3e: SWAP3
00001a3f: POP
00001a40: PUSH1 0x00
00001a42: DUP5
00001a43: PUSH1 0x19
00001a45: DUP2
00001a46: GT
00001a47: ISZERO
00001a48: PUSH2 0x1a4d
00001a4b: JUMPI
00001a4c: INVALID
00001a4d: JUMPDEST
00001a4e: EQ
00001a4f: PUSH2 0x1a54
00001a52: JUMPI
00001a53: INVALID
00001a54: JUMPDEST
00001a55: PUSH2 0x1a5e
00001a58: DUP9
00001a59: DUP5
00001a5a: PUSH2 0x3f61
00001a5d: JUMP
00001a5e: JUMPDEST
00001a5f: ISZERO
00001a60: PUSH2 0x1a6f
00001a63: JUMPI
00001a64: PUSH2 0x1994
00001a67: PUSH1 0x17
00001a69: PUSH1 0x3c
00001a6b: PUSH2 0x3196
00001a6e: JUMP
00001a6f: JUMPDEST
00001a70: POP
00001a71: POP
00001a72: PUSH1 0x40
00001a74: DUP1
00001a75: MLOAD
00001a76: PUSH1 0x20
00001a78: DUP2
00001a79: DUP2
00001a7a: ADD
00001a7b: DUP4
00001a7c: MSTORE
00001a7d: PUSH1 0x07
00001a7f: DUP1
00001a80: SLOAD
00001a81: DUP4
00001a82: MSTORE
00001a83: DUP4
00001a84: MLOAD
00001a85: DUP1
00001a86: DUP4
00001a87: ADD
00001a88: DUP6
00001a89: MSTORE
00001a8a: PUSH1 0x09
00001a8c: DUP1
00001a8d: SLOAD
00001a8e: DUP1
00001a8f: DUP4
00001a90: MSTORE
00001a91: DUP13
00001a92: MLOAD
00001a93: SWAP1
00001a94: SWAP4
00001a95: SSTORE
00001a96: DUP11
00001a97: MLOAD
00001a98: SWAP1
00001a99: SSTORE
00001a9a: DUP4
00001a9b: MLOAD
00001a9c: DUP6
00001a9d: MLOAD
00001a9e: SWAP1
00001a9f: DUP2
00001aa0: MSTORE
00001aa1: SWAP3
00001aa2: DUP4
00001aa3: ADD
00001aa4: DUP15
00001aa5: SWAP1
00001aa6: MSTORE
00001aa7: DUP3
00001aa8: DUP6
00001aa9: ADD
00001aaa: SWAP2
00001aab: SWAP1
00001aac: SWAP2
00001aad: MSTORE
00001aae: PUSH1 0x60
00001ab0: DUP3
00001ab1: ADD
00001ab2: DUP13
00001ab3: SWAP1
00001ab4: MSTORE
00001ab5: SWAP3
00001ab6: MLOAD
00001ab7: SWAP2
00001ab8: SWAP3
00001ab9: SWAP2
00001aba: PUSH32 0x1f77882929f3fe7461ce3dc42e93ec44215d80313ef2e688d3716e3f29b6552f
00001adb: SWAP2
00001adc: DUP2
00001add: SWAP1
00001ade: SUB
00001adf: PUSH1 0x80
00001ae1: ADD
00001ae2: SWAP1
00001ae3: LOG1
00001ae4: PUSH1 0x00
00001ae6: SWAP9
00001ae7: POP
00001ae8: JUMPDEST
00001ae9: POP
00001aea: POP
00001aeb: POP
00001aec: POP
00001aed: POP
00001aee: POP
00001aef: POP
00001af0: POP
00001af1: SWAP3
00001af2: SWAP2
00001af3: POP
00001af4: POP
00001af5: JUMP
00001af6: JUMPDEST
00001af7: PUSH1 0x01
00001af9: SLOAD
00001afa: PUSH1 0x00
00001afc: SWAP1
00001afd: PUSH1 0x01
00001aff: PUSH1 0xa0
00001b01: PUSH1 0x02
00001b03: EXP
00001b04: SUB
00001b05: AND
00001b06: CALLER
00001b07: EQ
00001b08: PUSH2 0x1b17
00001b0b: JUMPI
00001b0c: PUSH2 0x0793
00001b0f: PUSH1 0x02
00001b11: PUSH1 0x4c
00001b13: PUSH2 0x3196
00001b16: JUMP
00001b17: JUMPDEST
00001b18: PUSH1 0x01
00001b1a: PUSH1 0xa0
00001b1c: PUSH1 0x02
00001b1e: EXP
00001b1f: SUB
00001b20: DUP3
00001b21: AND
00001b22: PUSH1 0x00
00001b24: SWAP1
00001b25: DUP2
00001b26: MSTORE
00001b27: PUSH1 0x05
00001b29: PUSH1 0x20
00001b2b: MSTORE
00001b2c: PUSH1 0x40
00001b2e: SWAP1
00001b2f: KECCAK256
00001b30: SLOAD
00001b31: PUSH1 0xff
00001b33: AND
00001b34: ISZERO
00001b35: ISZERO
00001b36: PUSH2 0x1b40
00001b39: JUMPI
00001b3a: PUSH1 0x00
00001b3c: PUSH2 0x0793
00001b3f: JUMP
00001b40: JUMPDEST
00001b41: PUSH1 0x01
00001b43: PUSH1 0xa0
00001b45: PUSH1 0x02
00001b47: EXP
00001b48: SUB
00001b49: DUP3
00001b4a: AND
00001b4b: PUSH1 0x00
00001b4d: DUP2
00001b4e: DUP2
00001b4f: MSTORE
00001b50: PUSH1 0x05
00001b52: PUSH1 0x20
00001b54: SWAP1
00001b55: DUP2
00001b56: MSTORE
00001b57: PUSH1 0x40
00001b59: SWAP2
00001b5a: DUP3
00001b5b: SWAP1
00001b5c: KECCAK256
00001b5d: DUP1
00001b5e: SLOAD
00001b5f: PUSH1 0xff
00001b61: NOT
00001b62: AND
00001b63: SWAP1
00001b64: SSTORE
00001b65: DUP2
00001b66: MLOAD
00001b67: SWAP3
00001b68: DUP4
00001b69: MSTORE
00001b6a: SWAP1
00001b6b: MLOAD
00001b6c: PUSH32 0xe2de4d3f16716b96488257bbb951590474ed394a5e6e31a67989f89ecaced919
00001b8d: SWAP3
00001b8e: DUP2
00001b8f: SWAP1
00001b90: SUB
00001b91: SWAP1
00001b92: SWAP2
00001b93: ADD
00001b94: SWAP1
00001b95: LOG1
00001b96: PUSH1 0x00
00001b98: PUSH2 0x07e1
00001b9b: JUMP
00001b9c: JUMPDEST
00001b9d: PUSH1 0x00
00001b9f: PUSH2 0x1ba6
00001ba2: PUSH2 0x489e
00001ba5: JUMP
00001ba6: JUMPDEST
00001ba7: PUSH1 0x00
00001ba9: DUP1
00001baa: PUSH1 0x00
00001bac: DUP1
00001bad: PUSH1 0x00
00001baf: DUP1
00001bb0: PUSH1 0x00
00001bb2: PUSH1 0x0a
00001bb4: PUSH1 0x00
00001bb6: SWAP1
00001bb7: SLOAD
00001bb8: SWAP1
00001bb9: PUSH2 0x0100
00001bbc: EXP
00001bbd: SWAP1
00001bbe: DIV
00001bbf: PUSH1 0xff
00001bc1: AND
00001bc2: ISZERO
00001bc3: PUSH2 0x1bd9
00001bc6: JUMPI
00001bc7: PUSH2 0x1bd2
00001bca: PUSH1 0x19
00001bcc: PUSH1 0x1b
00001bce: PUSH2 0x3196
00001bd1: JUMP
00001bd2: JUMPDEST
00001bd3: SWAP9
00001bd4: POP
00001bd5: PUSH2 0x254c
00001bd8: JUMP
00001bd9: JUMPDEST
00001bda: DUP13
00001bdb: DUP9
00001bdc: PUSH1 0x00
00001bde: ADD
00001bdf: SWAP1
00001be0: PUSH1 0x01
00001be2: PUSH1 0xa0
00001be4: PUSH1 0x02
00001be6: EXP
00001be7: SUB
00001be8: AND
00001be9: SWAP1
00001bea: DUP2
00001beb: PUSH1 0x01
00001bed: PUSH1 0xa0
00001bef: PUSH1 0x02
00001bf1: EXP
00001bf2: SUB
00001bf3: AND
00001bf4: DUP2
00001bf5: MSTORE
00001bf6: POP
00001bf7: POP
00001bf8: DUP12
00001bf9: DUP9
00001bfa: PUSH1 0x20
00001bfc: ADD
00001bfd: SWAP1
00001bfe: PUSH1 0x01
00001c00: PUSH1 0xa0
00001c02: PUSH1 0x02
00001c04: EXP
00001c05: SUB
00001c06: AND
00001c07: SWAP1
00001c08: DUP2
00001c09: PUSH1 0x01
00001c0b: PUSH1 0xa0
00001c0d: PUSH1 0x02
00001c0f: EXP
00001c10: SUB
00001c11: AND
00001c12: DUP2
00001c13: MSTORE
00001c14: POP
00001c15: POP
00001c16: CALLER
00001c17: DUP9
00001c18: PUSH1 0x40
00001c1a: ADD
00001c1b: SWAP1
00001c1c: PUSH1 0x01
00001c1e: PUSH1 0xa0
00001c20: PUSH1 0x02
00001c22: EXP
00001c23: SUB
00001c24: AND
00001c25: SWAP1
00001c26: DUP2
00001c27: PUSH1 0x01
00001c29: PUSH1 0xa0
00001c2b: PUSH1 0x02
00001c2d: EXP
00001c2e: SUB
00001c2f: AND
00001c30: DUP2
00001c31: MSTORE
00001c32: POP
00001c33: POP
00001c34: DUP11
00001c35: DUP9
00001c36: PUSH1 0x60
00001c38: ADD
00001c39: SWAP1
00001c3a: PUSH1 0x01
00001c3c: PUSH1 0xa0
00001c3e: PUSH1 0x02
00001c40: EXP
00001c41: SUB
00001c42: AND
00001c43: SWAP1
00001c44: DUP2
00001c45: PUSH1 0x01
00001c47: PUSH1 0xa0
00001c49: PUSH1 0x02
00001c4b: EXP
00001c4c: SUB
00001c4d: AND
00001c4e: DUP2
00001c4f: MSTORE
00001c50: POP
00001c51: POP
00001c52: PUSH1 0x05
00001c54: PUSH1 0x00
00001c56: DUP14
00001c57: PUSH1 0x01
00001c59: PUSH1 0xa0
00001c5b: PUSH1 0x02
00001c5d: EXP
00001c5e: SUB
00001c5f: AND
00001c60: PUSH1 0x01
00001c62: PUSH1 0xa0
00001c64: PUSH1 0x02
00001c66: EXP
00001c67: SUB
00001c68: AND
00001c69: DUP2
00001c6a: MSTORE
00001c6b: PUSH1 0x20
00001c6d: ADD
00001c6e: SWAP1
00001c6f: DUP2
00001c70: MSTORE
00001c71: PUSH1 0x20
00001c73: ADD
00001c74: PUSH1 0x00
00001c76: KECCAK256
00001c77: SWAP7
00001c78: POP
00001c79: PUSH1 0x05
00001c7b: PUSH1 0x00
00001c7d: DUP13
00001c7e: PUSH1 0x01
00001c80: PUSH1 0xa0
00001c82: PUSH1 0x02
00001c84: EXP
00001c85: SUB
00001c86: AND
00001c87: PUSH1 0x01
00001c89: PUSH1 0xa0
00001c8b: PUSH1 0x02
00001c8d: EXP
00001c8e: SUB
00001c8f: AND
00001c90: DUP2
00001c91: MSTORE
00001c92: PUSH1 0x20
00001c94: ADD
00001c95: SWAP1
00001c96: DUP2
00001c97: MSTORE
00001c98: PUSH1 0x20
00001c9a: ADD
00001c9b: PUSH1 0x00
00001c9d: KECCAK256
00001c9e: SWAP6
00001c9f: POP
00001ca0: PUSH1 0x04
00001ca2: PUSH1 0x00
00001ca4: DUP15
00001ca5: PUSH1 0x01
00001ca7: PUSH1 0xa0
00001ca9: PUSH1 0x02
00001cab: EXP
00001cac: SUB
00001cad: AND
00001cae: PUSH1 0x01
00001cb0: PUSH1 0xa0
00001cb2: PUSH1 0x02
00001cb4: EXP
00001cb5: SUB
00001cb6: AND
00001cb7: DUP2
00001cb8: MSTORE
00001cb9: PUSH1 0x20
00001cbb: ADD
00001cbc: SWAP1
00001cbd: DUP2
00001cbe: MSTORE
00001cbf: PUSH1 0x20
00001cc1: ADD
00001cc2: PUSH1 0x00
00001cc4: KECCAK256
00001cc5: PUSH1 0x00
00001cc7: DUP14
00001cc8: PUSH1 0x01
00001cca: PUSH1 0xa0
00001ccc: PUSH1 0x02
00001cce: EXP
00001ccf: SUB
00001cd0: AND
00001cd1: PUSH1 0x01
00001cd3: PUSH1 0xa0
00001cd5: PUSH1 0x02
00001cd7: EXP
00001cd8: SUB
00001cd9: AND
00001cda: DUP2
00001cdb: MSTORE
00001cdc: PUSH1 0x20
00001cde: ADD
00001cdf: SWAP1
00001ce0: DUP2
00001ce1: MSTORE
00001ce2: PUSH1 0x20
00001ce4: ADD
00001ce5: PUSH1 0x00
00001ce7: KECCAK256
00001ce8: SWAP5
00001ce9: POP
00001cea: PUSH1 0x03
00001cec: PUSH1 0x00
00001cee: DUP15
00001cef: PUSH1 0x01
00001cf1: PUSH1 0xa0
00001cf3: PUSH1 0x02
00001cf5: EXP
00001cf6: SUB
00001cf7: AND
00001cf8: PUSH1 0x01
00001cfa: PUSH1 0xa0
00001cfc: PUSH1 0x02
00001cfe: EXP
00001cff: SUB
00001d00: AND
00001d01: DUP2
00001d02: MSTORE
00001d03: PUSH1 0x20
00001d05: ADD
00001d06: SWAP1
00001d07: DUP2
00001d08: MSTORE
00001d09: PUSH1 0x20
00001d0b: ADD
00001d0c: PUSH1 0x00
00001d0e: KECCAK256
00001d0f: PUSH1 0x00
00001d11: DUP13
00001d12: PUSH1 0x01
00001d14: PUSH1 0xa0
00001d16: PUSH1 0x02
00001d18: EXP
00001d19: SUB
00001d1a: AND
00001d1b: PUSH1 0x01
00001d1d: PUSH1 0xa0
00001d1f: PUSH1 0x02
00001d21: EXP
00001d22: SUB
00001d23: AND
00001d24: DUP2
00001d25: MSTORE
00001d26: PUSH1 0x20
00001d28: ADD
00001d29: SWAP1
00001d2a: DUP2
00001d2b: MSTORE
00001d2c: PUSH1 0x20
00001d2e: ADD
00001d2f: PUSH1 0x00
00001d31: KECCAK256
00001d32: SWAP4
00001d33: POP
00001d34: PUSH1 0x03
00001d36: PUSH1 0x00
00001d38: DUP10
00001d39: PUSH1 0x40
00001d3b: ADD
00001d3c: MLOAD
00001d3d: PUSH1 0x01
00001d3f: PUSH1 0xa0
00001d41: PUSH1 0x02
00001d43: EXP
00001d44: SUB
00001d45: AND
00001d46: PUSH1 0x01
00001d48: PUSH1 0xa0
00001d4a: PUSH1 0x02
00001d4c: EXP
00001d4d: SUB
00001d4e: AND
00001d4f: DUP2
00001d50: MSTORE
00001d51: PUSH1 0x20
00001d53: ADD
00001d54: SWAP1
00001d55: DUP2
00001d56: MSTORE
00001d57: PUSH1 0x20
00001d59: ADD
00001d5a: PUSH1 0x00
00001d5c: KECCAK256
00001d5d: PUSH1 0x00
00001d5f: DUP13
00001d60: PUSH1 0x01
00001d62: PUSH1 0xa0
00001d64: PUSH1 0x02
00001d66: EXP
00001d67: SUB
00001d68: AND
00001d69: PUSH1 0x01
00001d6b: PUSH1 0xa0
00001d6d: PUSH1 0x02
00001d6f: EXP
00001d70: SUB
00001d71: AND
00001d72: DUP2
00001d73: MSTORE
00001d74: PUSH1 0x20
00001d76: ADD
00001d77: SWAP1
00001d78: DUP2
00001d79: MSTORE
00001d7a: PUSH1 0x20
00001d7c: ADD
00001d7d: PUSH1 0x00
00001d7f: KECCAK256
00001d80: SWAP3
00001d81: POP
00001d82: PUSH2 0x1d8a
00001d85: DUP12
00001d86: PUSH2 0x37a8
00001d89: JUMP
00001d8a: JUMPDEST
00001d8b: PUSH2 0x0380
00001d8e: DUP11
00001d8f: ADD
00001d90: MSTORE
00001d91: SWAP1
00001d92: POP
00001d93: PUSH1 0x00
00001d95: DUP2
00001d96: PUSH1 0x19
00001d98: DUP2
00001d99: GT
00001d9a: ISZERO
00001d9b: PUSH2 0x1da0
00001d9e: JUMPI
00001d9f: INVALID
00001da0: JUMPDEST
00001da1: EQ
00001da2: PUSH2 0x1db0
00001da5: JUMPI
00001da6: PUSH2 0x1bd2
00001da9: DUP2
00001daa: PUSH1 0x27
00001dac: PUSH2 0x3196
00001daf: JUMP
00001db0: JUMPDEST
00001db1: PUSH2 0x1db9
00001db4: DUP13
00001db5: PUSH2 0x37a8
00001db8: JUMP
00001db9: JUMPDEST
00001dba: PUSH2 0x03a0
00001dbd: DUP11
00001dbe: ADD
00001dbf: MSTORE
00001dc0: SWAP1
00001dc1: POP
00001dc2: PUSH1 0x00
00001dc4: DUP2
00001dc5: PUSH1 0x19
00001dc7: DUP2
00001dc8: GT
00001dc9: ISZERO
00001dca: PUSH2 0x1dcf
00001dcd: JUMPI
00001dce: INVALID
00001dcf: JUMPDEST
00001dd0: EQ
00001dd1: PUSH2 0x1dd6
00001dd4: JUMPI
00001dd5: INVALID
00001dd6: JUMPDEST
00001dd7: PUSH2 0x1df0
00001dda: DUP8
00001ddb: PUSH1 0x08
00001ddd: ADD
00001dde: SLOAD
00001ddf: DUP9
00001de0: PUSH1 0x07
00001de2: ADD
00001de3: SLOAD
00001de4: DUP10
00001de5: PUSH1 0x01
00001de7: ADD
00001de8: SLOAD
00001de9: PUSH2 0x067d
00001dec: PUSH2 0x3006
00001def: JUMP
00001df0: JUMPDEST
00001df1: PUSH1 0x80
00001df3: DUP11
00001df4: ADD
00001df5: MSTORE
00001df6: SWAP1
00001df7: POP
00001df8: PUSH1 0x00
00001dfa: DUP2
00001dfb: PUSH1 0x19
00001dfd: DUP2
00001dfe: GT
00001dff: ISZERO
00001e00: PUSH2 0x1e05
00001e03: JUMPI
00001e04: INVALID
00001e05: JUMPDEST
00001e06: EQ
00001e07: PUSH2 0x1e15
00001e0a: JUMPI
00001e0b: PUSH2 0x1bd2
00001e0e: DUP2
00001e0f: PUSH1 0x1d
00001e11: PUSH2 0x3196
00001e14: JUMP
00001e15: JUMPDEST
00001e16: PUSH2 0x1e2c
00001e19: DUP6
00001e1a: PUSH1 0x00
00001e1c: ADD
00001e1d: SLOAD
00001e1e: DUP7
00001e1f: PUSH1 0x01
00001e21: ADD
00001e22: SLOAD
00001e23: DUP11
00001e24: PUSH1 0x80
00001e26: ADD
00001e27: MLOAD
00001e28: PUSH2 0x3135
00001e2b: JUMP
00001e2c: JUMPDEST
00001e2d: PUSH2 0x0100
00001e30: DUP11
00001e31: ADD
00001e32: MSTORE
00001e33: SWAP1
00001e34: POP
00001e35: PUSH1 0x00
00001e37: DUP2
00001e38: PUSH1 0x19
00001e3a: DUP2
00001e3b: GT
00001e3c: ISZERO
00001e3d: PUSH2 0x1e42
00001e40: JUMPI
00001e41: INVALID
00001e42: JUMPDEST
00001e43: EQ
00001e44: PUSH2 0x1e52
00001e47: JUMPI
00001e48: PUSH2 0x1bd2
00001e4b: DUP2
00001e4c: PUSH1 0x15
00001e4e: PUSH2 0x3196
00001e51: JUMP
00001e52: JUMPDEST
00001e53: PUSH2 0x1e6c
00001e56: DUP7
00001e57: PUSH1 0x05
00001e59: ADD
00001e5a: SLOAD
00001e5b: DUP8
00001e5c: PUSH1 0x04
00001e5e: ADD
00001e5f: SLOAD
00001e60: DUP9
00001e61: PUSH1 0x01
00001e63: ADD
00001e64: SLOAD
00001e65: PUSH2 0x067d
00001e68: PUSH2 0x3006
00001e6b: JUMP
00001e6c: JUMPDEST
00001e6d: PUSH1 0xe0
00001e6f: DUP11
00001e70: ADD
00001e71: MSTORE
00001e72: SWAP1
00001e73: POP
00001e74: PUSH1 0x00
00001e76: DUP2
00001e77: PUSH1 0x19
00001e79: DUP2
00001e7a: GT
00001e7b: ISZERO
00001e7c: PUSH2 0x1e81
00001e7f: JUMPI
00001e80: INVALID
00001e81: JUMPDEST
00001e82: EQ
00001e83: PUSH2 0x1e91
00001e86: JUMPI
00001e87: PUSH2 0x1bd2
00001e8a: DUP2
00001e8b: PUSH1 0x21
00001e8d: PUSH2 0x3196
00001e90: JUMP
00001e91: JUMPDEST
00001e92: PUSH2 0x1ea8
00001e95: DUP5
00001e96: PUSH1 0x00
00001e98: ADD
00001e99: SLOAD
00001e9a: DUP6
00001e9b: PUSH1 0x01
00001e9d: ADD
00001e9e: SLOAD
00001e9f: DUP11
00001ea0: PUSH1 0xe0
00001ea2: ADD
00001ea3: MLOAD
00001ea4: PUSH2 0x3135
00001ea7: JUMP
00001ea8: JUMPDEST
00001ea9: PUSH2 0x01c0
00001eac: DUP11
00001ead: ADD
00001eae: MSTORE
00001eaf: SWAP1
00001eb0: POP
00001eb1: PUSH1 0x00
00001eb3: DUP2
00001eb4: PUSH1 0x19
00001eb6: DUP2
00001eb7: GT
00001eb8: ISZERO
00001eb9: PUSH2 0x1ebe
00001ebc: JUMPI
00001ebd: INVALID
00001ebe: JUMPDEST
00001ebf: EQ
00001ec0: PUSH2 0x1ece
00001ec3: JUMPI
00001ec4: PUSH2 0x1bd2
00001ec7: DUP2
00001ec8: PUSH1 0x16
00001eca: PUSH2 0x3196
00001ecd: JUMP
00001ece: JUMPDEST
00001ecf: PUSH2 0x1ee5
00001ed2: DUP4
00001ed3: PUSH1 0x00
00001ed5: ADD
00001ed6: SLOAD
00001ed7: DUP5
00001ed8: PUSH1 0x01
00001eda: ADD
00001edb: SLOAD
00001edc: DUP11
00001edd: PUSH1 0xe0
00001edf: ADD
00001ee0: MLOAD
00001ee1: PUSH2 0x3135
00001ee4: JUMP
00001ee5: JUMPDEST
00001ee6: PUSH2 0x0200
00001ee9: DUP11
00001eea: ADD
00001eeb: MSTORE
00001eec: SWAP1
00001eed: POP
00001eee: PUSH1 0x00
00001ef0: DUP2
00001ef1: PUSH1 0x19
00001ef3: DUP2
00001ef4: GT
00001ef5: ISZERO
00001ef6: PUSH2 0x1efb
00001ef9: JUMPI
00001efa: INVALID
00001efb: JUMPDEST
00001efc: EQ
00001efd: PUSH2 0x1f0b
00001f00: JUMPI
00001f01: PUSH2 0x1bd2
00001f04: DUP2
00001f05: PUSH1 0x17
00001f07: PUSH2 0x3196
00001f0a: JUMP
00001f0b: JUMPDEST
00001f0c: PUSH2 0x1f23
00001f0f: DUP7
00001f10: PUSH1 0x03
00001f12: ADD
00001f13: SLOAD
00001f14: DUP10
00001f15: PUSH2 0x01c0
00001f18: ADD
00001f19: MLOAD
00001f1a: DUP7
00001f1b: PUSH1 0x00
00001f1d: ADD
00001f1e: SLOAD
00001f1f: PUSH2 0x3294
00001f22: JUMP
00001f23: JUMPDEST
00001f24: PUSH2 0x0240
00001f27: DUP11
00001f28: ADD
00001f29: MSTORE
00001f2a: SWAP1
00001f2b: POP
00001f2c: PUSH1 0x00
00001f2e: DUP2
00001f2f: PUSH1 0x19
00001f31: DUP2
00001f32: GT
00001f33: ISZERO
00001f34: PUSH2 0x1f39
00001f37: JUMPI
00001f38: INVALID
00001f39: JUMPDEST
00001f3a: EQ
00001f3b: PUSH2 0x1f49
00001f3e: JUMPI
00001f3f: PUSH2 0x1bd2
00001f42: DUP2
00001f43: PUSH1 0x25
00001f45: PUSH2 0x3196
00001f48: JUMP
00001f49: JUMPDEST
00001f4a: PUSH2 0x1f62
00001f4d: DUP9
00001f4e: PUSH2 0x0240
00001f51: ADD
00001f52: MLOAD
00001f53: DUP10
00001f54: PUSH2 0x0200
00001f57: ADD
00001f58: MLOAD
00001f59: DUP6
00001f5a: PUSH1 0x00
00001f5c: ADD
00001f5d: SLOAD
00001f5e: PUSH2 0x3294
00001f61: JUMP
00001f62: JUMPDEST
00001f63: PUSH2 0x0240
00001f66: DUP11
00001f67: ADD
00001f68: MSTORE
00001f69: SWAP1
00001f6a: POP
00001f6b: PUSH1 0x00
00001f6d: DUP2
00001f6e: PUSH1 0x19
00001f70: DUP2
00001f71: GT
00001f72: ISZERO
00001f73: PUSH2 0x1f78
00001f76: JUMPI
00001f77: INVALID
00001f78: JUMPDEST
00001f79: EQ
00001f7a: PUSH2 0x1f88
00001f7d: JUMPI
00001f7e: PUSH2 0x1bd2
00001f81: DUP2
00001f82: PUSH1 0x26
00001f84: PUSH2 0x3196
00001f87: JUMP
00001f88: JUMPDEST
00001f89: PUSH2 0x1fa2
00001f8c: DUP9
00001f8d: PUSH2 0x03a0
00001f90: ADD
00001f91: MLOAD
00001f92: DUP10
00001f93: PUSH2 0x0380
00001f96: ADD
00001f97: MLOAD
00001f98: DUP11
00001f99: PUSH2 0x01c0
00001f9c: ADD
00001f9d: MLOAD
00001f9e: PUSH2 0x3f69
00001fa1: JUMP
00001fa2: JUMPDEST
00001fa3: PUSH2 0x0300
00001fa6: DUP11
00001fa7: ADD
00001fa8: MSTORE
00001fa9: SWAP1
00001faa: POP
00001fab: PUSH1 0x00
00001fad: DUP2
00001fae: PUSH1 0x19
00001fb0: DUP2
00001fb1: GT
00001fb2: ISZERO
00001fb3: PUSH2 0x1fb8
00001fb6: JUMPI
00001fb7: INVALID
00001fb8: JUMPDEST
00001fb9: EQ
00001fba: PUSH2 0x1fc8
00001fbd: JUMPI
00001fbe: PUSH2 0x1bd2
00001fc1: DUP2
00001fc2: PUSH1 0x19
00001fc4: PUSH2 0x3196
00001fc7: JUMP
00001fc8: JUMPDEST
00001fc9: DUP7
00001fca: SLOAD
00001fcb: PUSH1 0xff
00001fcd: AND
00001fce: ISZERO
00001fcf: PUSH2 0x203e
00001fd2: JUMPI
00001fd3: PUSH2 0x1fe1
00001fd6: DUP14
00001fd7: DUP10
00001fd8: PUSH2 0x03a0
00001fdb: ADD
00001fdc: MLOAD
00001fdd: PUSH2 0x408d
00001fe0: JUMP
00001fe1: JUMPDEST
00001fe2: PUSH2 0x02e0
00001fe5: DUP11
00001fe6: ADD
00001fe7: MSTORE
00001fe8: SWAP1
00001fe9: POP
00001fea: PUSH1 0x00
00001fec: DUP2
00001fed: PUSH1 0x19
00001fef: DUP2
00001ff0: GT
00001ff1: ISZERO
00001ff2: PUSH2 0x1ff7
00001ff5: JUMPI
00001ff6: INVALID
00001ff7: JUMPDEST
00001ff8: EQ
00001ff9: PUSH2 0x2007
00001ffc: JUMPI
00001ffd: PUSH2 0x1bd2
00002000: DUP2
00002001: PUSH1 0x1c
00002003: PUSH2 0x3196
00002006: JUMP
00002007: JUMPDEST
00002008: PUSH2 0x201b
0000200b: DUP9
0000200c: PUSH2 0x0100
0000200f: ADD
00002010: MLOAD
00002011: DUP10
00002012: PUSH2 0x0300
00002015: ADD
00002016: MLOAD
00002017: PUSH2 0x3c40
0000201a: JUMP
0000201b: JUMPDEST
0000201c: PUSH2 0x0320
0000201f: DUP10
00002020: ADD
00002021: DUP2
00002022: SWAP1
00002023: MSTORE
00002024: PUSH2 0x02e0
00002027: DUP10
00002028: ADD
00002029: MLOAD
0000202a: PUSH2 0x2033
0000202d: SWAP2
0000202e: SWAP1
0000202f: PUSH2 0x3c40
00002032: JUMP
00002033: JUMPDEST
00002034: PUSH2 0x0320
00002037: DUP10
00002038: ADD
00002039: MSTORE
0000203a: PUSH2 0x2059
0000203d: JUMP
0000203e: JUMPDEST
0000203f: PUSH2 0x2052
00002042: DUP9
00002043: PUSH2 0x0100
00002046: ADD
00002047: MLOAD
00002048: DUP10
00002049: PUSH2 0x0300
0000204c: ADD
0000204d: MLOAD
0000204e: PUSH2 0x3c40
00002051: JUMP
00002052: JUMPDEST
00002053: PUSH2 0x0320
00002056: DUP10
00002057: ADD
00002058: MSTORE
00002059: JUMPDEST
0000205a: PUSH1 0x00
0000205c: NOT
0000205d: DUP11
0000205e: EQ
0000205f: ISZERO
00002060: PUSH2 0x2074
00002063: JUMPI
00002064: PUSH2 0x0320
00002067: DUP9
00002068: ADD
00002069: MLOAD
0000206a: PUSH2 0x0340
0000206d: DUP10
0000206e: ADD
0000206f: MSTORE
00002070: PUSH2 0x207d
00002073: JUMP
00002074: JUMPDEST
00002075: PUSH2 0x0340
00002078: DUP9
00002079: ADD
0000207a: DUP11
0000207b: SWAP1
0000207c: MSTORE
0000207d: JUMPDEST
0000207e: DUP8
0000207f: PUSH2 0x0320
00002082: ADD
00002083: MLOAD
00002084: DUP9
00002085: PUSH2 0x0340
00002088: ADD
00002089: MLOAD
0000208a: GT
0000208b: ISZERO
0000208c: PUSH2 0x209b
0000208f: JUMPI
00002090: PUSH2 0x1bd2
00002093: PUSH1 0x14
00002095: PUSH1 0x1a
00002097: PUSH2 0x3196
0000209a: JUMP
0000209b: JUMPDEST
0000209c: PUSH2 0x20b5
0000209f: DUP9
000020a0: PUSH2 0x03a0
000020a3: ADD
000020a4: MLOAD
000020a5: DUP10
000020a6: PUSH2 0x0380
000020a9: ADD
000020aa: MLOAD
000020ab: DUP11
000020ac: PUSH2 0x0340
000020af: ADD
000020b0: MLOAD
000020b1: PUSH2 0x41f8
000020b4: JUMP
000020b5: JUMPDEST
000020b6: PUSH2 0x0360
000020b9: DUP11
000020ba: ADD
000020bb: MSTORE
000020bc: SWAP1
000020bd: POP
000020be: PUSH1 0x00
000020c0: DUP2
000020c1: PUSH1 0x19
000020c3: DUP2
000020c4: GT
000020c5: ISZERO
000020c6: PUSH2 0x20cb
000020c9: JUMPI
000020ca: INVALID
000020cb: JUMPDEST
000020cc: EQ
000020cd: PUSH2 0x20db
000020d0: JUMPI
000020d1: PUSH2 0x1bd2
000020d4: DUP2
000020d5: PUSH1 0x18
000020d7: PUSH2 0x3196
000020da: JUMP
000020db: JUMPDEST
000020dc: PUSH2 0x20ef
000020df: DUP13
000020e0: DUP10
000020e1: PUSH1 0x40
000020e3: ADD
000020e4: MLOAD
000020e5: DUP11
000020e6: PUSH2 0x0340
000020e9: ADD
000020ea: MLOAD
000020eb: PUSH2 0x3c58
000020ee: JUMP
000020ef: JUMPDEST
000020f0: SWAP1
000020f1: POP
000020f2: PUSH1 0x00
000020f4: DUP2
000020f5: PUSH1 0x19
000020f7: DUP2
000020f8: GT
000020f9: ISZERO
000020fa: PUSH2 0x20ff
000020fd: JUMPI
000020fe: INVALID
000020ff: JUMPDEST
00002100: EQ
00002101: PUSH2 0x210f
00002104: JUMPI
00002105: PUSH2 0x1bd2
00002108: DUP2
00002109: PUSH1 0x29
0000210b: PUSH2 0x3196
0000210e: JUMP
0000210f: JUMPDEST
00002110: PUSH2 0x2123
00002113: DUP9
00002114: PUSH2 0x0100
00002117: ADD
00002118: MLOAD
00002119: DUP10
0000211a: PUSH2 0x0340
0000211d: ADD
0000211e: MLOAD
0000211f: PUSH2 0x372b
00002122: JUMP
00002123: JUMPDEST
00002124: PUSH2 0x0120
00002127: DUP11
00002128: ADD
00002129: MSTORE
0000212a: SWAP1
0000212b: POP
0000212c: PUSH1 0x00
0000212e: DUP2
0000212f: PUSH1 0x19
00002131: DUP2
00002132: GT
00002133: ISZERO
00002134: PUSH2 0x2139
00002137: JUMPI
00002138: INVALID
00002139: JUMPDEST
0000213a: EQ
0000213b: PUSH2 0x2140
0000213e: JUMPI
0000213f: INVALID
00002140: JUMPDEST
00002141: PUSH2 0x2158
00002144: DUP8
00002145: PUSH1 0x06
00002147: ADD
00002148: SLOAD
00002149: DUP10
0000214a: PUSH2 0x0120
0000214d: ADD
0000214e: MLOAD
0000214f: DUP8
00002150: PUSH1 0x00
00002152: ADD
00002153: SLOAD
00002154: PUSH2 0x3294
00002157: JUMP
00002158: JUMPDEST
00002159: PUSH2 0x0140
0000215c: DUP11
0000215d: ADD
0000215e: MSTORE
0000215f: SWAP1
00002160: POP
00002161: PUSH1 0x00
00002163: DUP2
00002164: PUSH1 0x19
00002166: DUP2
00002167: GT
00002168: ISZERO
00002169: PUSH2 0x216e
0000216c: JUMPI
0000216d: INVALID
0000216e: JUMPDEST
0000216f: EQ
00002170: PUSH2 0x217e
00002173: JUMPI
00002174: PUSH2 0x1bd2
00002177: DUP2
00002178: PUSH1 0x23
0000217a: PUSH2 0x3196
0000217d: JUMP
0000217e: JUMPDEST
0000217f: PUSH2 0x2187
00002182: DUP13
00002183: PUSH2 0x31fc
00002186: JUMP
00002187: JUMPDEST
00002188: PUSH2 0x0260
0000218b: DUP10
0000218c: ADD
0000218d: DUP2
0000218e: SWAP1
0000218f: MSTORE
00002190: PUSH2 0x0340
00002193: DUP10
00002194: ADD
00002195: MLOAD
00002196: PUSH2 0x219f
00002199: SWAP2
0000219a: SWAP1
0000219b: PUSH2 0x347e
0000219e: JUMP
0000219f: JUMPDEST
000021a0: PUSH2 0x0280
000021a3: DUP11
000021a4: ADD
000021a5: MSTORE
000021a6: SWAP1
000021a7: POP
000021a8: PUSH1 0x00
000021aa: DUP2
000021ab: PUSH1 0x19
000021ad: DUP2
000021ae: GT
000021af: ISZERO
000021b0: PUSH2 0x21b5
000021b3: JUMPI
000021b4: INVALID
000021b5: JUMPDEST
000021b6: EQ
000021b7: PUSH2 0x21c5
000021ba: JUMPI
000021bb: PUSH2 0x1bd2
000021be: DUP2
000021bf: PUSH1 0x24
000021c1: PUSH2 0x3196
000021c4: JUMP
000021c5: JUMPDEST
000021c6: PUSH2 0x21df
000021c9: DUP8
000021ca: PUSH1 0x05
000021cc: ADD
000021cd: SLOAD
000021ce: DUP9
000021cf: PUSH1 0x04
000021d1: ADD
000021d2: SLOAD
000021d3: DUP10
000021d4: PUSH1 0x01
000021d6: ADD
000021d7: SLOAD
000021d8: PUSH2 0x067d
000021db: PUSH2 0x3006
000021de: JUMP
000021df: JUMPDEST
000021e0: PUSH1 0xa0
000021e2: DUP11
000021e3: ADD
000021e4: MSTORE
000021e5: SWAP1
000021e6: POP
000021e7: PUSH1 0x00
000021e9: DUP2
000021ea: PUSH1 0x19
000021ec: DUP2
000021ed: GT
000021ee: ISZERO
000021ef: PUSH2 0x21f4
000021f2: JUMPI
000021f3: INVALID
000021f4: JUMPDEST
000021f5: EQ
000021f6: PUSH2 0x2204
000021f9: JUMPI
000021fa: PUSH2 0x1bd2
000021fd: DUP2
000021fe: PUSH1 0x20
00002200: PUSH2 0x3196
00002203: JUMP
00002204: JUMPDEST
00002205: DUP7
00002206: PUSH1 0x02
00002208: ADD
00002209: PUSH1 0x00
0000220b: SWAP1
0000220c: SLOAD
0000220d: SWAP1
0000220e: PUSH2 0x0100
00002211: EXP
00002212: SWAP1
00002213: DIV
00002214: PUSH1 0x01
00002216: PUSH1 0xa0
00002218: PUSH1 0x02
0000221a: EXP
0000221b: SUB
0000221c: AND
0000221d: PUSH1 0x01
0000221f: PUSH1 0xa0
00002221: PUSH1 0x02
00002223: EXP
00002224: SUB
00002225: AND
00002226: PUSH4 0x517cf73e
0000222b: DUP14
0000222c: DUP11
0000222d: PUSH2 0x0280
00002230: ADD
00002231: MLOAD
00002232: DUP12
00002233: PUSH2 0x0140
00002236: ADD
00002237: MLOAD
00002238: PUSH1 0x40
0000223a: MLOAD
0000223b: DUP5
0000223c: PUSH4 0xffffffff
00002241: AND
00002242: PUSH1 0xe0
00002244: PUSH1 0x02
00002246: EXP
00002247: MUL
00002248: DUP2
00002249: MSTORE
0000224a: PUSH1 0x04
0000224c: ADD
0000224d: DUP1
0000224e: DUP5
0000224f: PUSH1 0x01
00002251: PUSH1 0xa0
00002253: PUSH1 0x02
00002255: EXP
00002256: SUB
00002257: AND
00002258: PUSH1 0x01
0000225a: PUSH1 0xa0
0000225c: PUSH1 0x02
0000225e: EXP
0000225f: SUB
00002260: AND
00002261: DUP2
00002262: MSTORE
00002263: PUSH1 0x20
00002265: ADD
00002266: DUP4
00002267: DUP2
00002268: MSTORE
00002269: PUSH1 0x20
0000226b: ADD
0000226c: DUP3
0000226d: DUP2
0000226e: MSTORE
0000226f: PUSH1 0x20
00002271: ADD
00002272: SWAP4
00002273: POP
00002274: POP
00002275: POP
00002276: POP
00002277: PUSH1 0x40
00002279: DUP1
0000227a: MLOAD
0000227b: DUP1
0000227c: DUP4
0000227d: SUB
0000227e: DUP2
0000227f: PUSH1 0x00
00002281: DUP8
00002282: DUP1
00002283: EXTCODESIZE
00002284: ISZERO
00002285: DUP1
00002286: ISZERO
00002287: PUSH2 0x228f
0000228a: JUMPI
0000228b: PUSH1 0x00
0000228d: DUP1
0000228e: REVERT
0000228f: JUMPDEST
00002290: POP
00002291: GAS
00002292: CALL
00002293: ISZERO
00002294: DUP1
00002295: ISZERO
00002296: PUSH2 0x22a3
00002299: JUMPI
0000229a: RETURNDATASIZE
0000229b: PUSH1 0x00
0000229d: DUP1
0000229e: RETURNDATACOPY
0000229f: RETURNDATASIZE
000022a0: PUSH1 0x00
000022a2: REVERT
000022a3: JUMPDEST
000022a4: POP
000022a5: POP
000022a6: POP
000022a7: POP
000022a8: PUSH1 0x40
000022aa: MLOAD
000022ab: RETURNDATASIZE
000022ac: PUSH1 0x40
000022ae: DUP2
000022af: LT
000022b0: ISZERO
000022b1: PUSH2 0x22b9
000022b4: JUMPI
000022b5: PUSH1 0x00
000022b7: DUP1
000022b8: REVERT
000022b9: JUMPDEST
000022ba: POP
000022bb: DUP1
000022bc: MLOAD
000022bd: PUSH1 0x20
000022bf: SWAP1
000022c0: SWAP2
000022c1: ADD
000022c2: MLOAD
000022c3: PUSH2 0x02a0
000022c6: DUP11
000022c7: ADD
000022c8: MSTORE
000022c9: SWAP2
000022ca: POP
000022cb: DUP2
000022cc: ISZERO
000022cd: PUSH2 0x22db
000022d0: JUMPI
000022d1: PUSH2 0x1bd2
000022d4: PUSH1 0x22
000022d6: DUP4
000022d7: PUSH2 0x3751
000022da: JUMP
000022db: JUMPDEST
000022dc: DUP7
000022dd: PUSH1 0x02
000022df: ADD
000022e0: PUSH1 0x00
000022e2: SWAP1
000022e3: SLOAD
000022e4: SWAP1
000022e5: PUSH2 0x0100
000022e8: EXP
000022e9: SWAP1
000022ea: DIV
000022eb: PUSH1 0x01
000022ed: PUSH1 0xa0
000022ef: PUSH1 0x02
000022f1: EXP
000022f2: SUB
000022f3: AND
000022f4: PUSH1 0x01
000022f6: PUSH1 0xa0
000022f8: PUSH1 0x02
000022fa: EXP
000022fb: SUB
000022fc: AND
000022fd: PUSH4 0xed2b5a3c
00002302: DUP14
00002303: DUP11
00002304: PUSH2 0x0280
00002307: ADD
00002308: MLOAD
00002309: DUP12
0000230a: PUSH2 0x0140
0000230d: ADD
0000230e: MLOAD
0000230f: PUSH1 0x40
00002311: MLOAD
00002312: DUP5
00002313: PUSH4 0xffffffff
00002318: AND
00002319: PUSH1 0xe0
0000231b: PUSH1 0x02
0000231d: EXP
0000231e: MUL
0000231f: DUP2
00002320: MSTORE
00002321: PUSH1 0x04
00002323: ADD
00002324: DUP1
00002325: DUP5
00002326: PUSH1 0x01
00002328: PUSH1 0xa0
0000232a: PUSH1 0x02
0000232c: EXP
0000232d: SUB
0000232e: AND
0000232f: PUSH1 0x01
00002331: PUSH1 0xa0
00002333: PUSH1 0x02
00002335: EXP
00002336: SUB
00002337: AND
00002338: DUP2
00002339: MSTORE
0000233a: PUSH1 0x20
0000233c: ADD
0000233d: DUP4
0000233e: DUP2
0000233f: MSTORE
00002340: PUSH1 0x20
00002342: ADD
00002343: DUP3
00002344: DUP2
00002345: MSTORE
00002346: PUSH1 0x20
00002348: ADD
00002349: SWAP4
0000234a: POP
0000234b: POP
0000234c: POP
0000234d: POP
0000234e: PUSH1 0x40
00002350: DUP1
00002351: MLOAD
00002352: DUP1
00002353: DUP4
00002354: SUB
00002355: DUP2
00002356: PUSH1 0x00
00002358: DUP8
00002359: DUP1
0000235a: EXTCODESIZE
0000235b: ISZERO
0000235c: DUP1
0000235d: ISZERO
0000235e: PUSH2 0x2366
00002361: JUMPI
00002362: PUSH1 0x00
00002364: DUP1
00002365: REVERT
00002366: JUMPDEST
00002367: POP
00002368: GAS
00002369: CALL
0000236a: ISZERO
0000236b: DUP1
0000236c: ISZERO
0000236d: PUSH2 0x237a
00002370: JUMPI
00002371: RETURNDATASIZE
00002372: PUSH1 0x00
00002374: DUP1
00002375: RETURNDATACOPY
00002376: RETURNDATASIZE
00002377: PUSH1 0x00
00002379: REVERT
0000237a: JUMPDEST
0000237b: POP
0000237c: POP
0000237d: POP
0000237e: POP
0000237f: PUSH1 0x40
00002381: MLOAD
00002382: RETURNDATASIZE
00002383: PUSH1 0x40
00002385: DUP2
00002386: LT
00002387: ISZERO
00002388: PUSH2 0x2390
0000238b: JUMPI
0000238c: PUSH1 0x00
0000238e: DUP1
0000238f: REVERT
00002390: JUMPDEST
00002391: POP
00002392: DUP1
00002393: MLOAD
00002394: PUSH1 0x20
00002396: SWAP1
00002397: SWAP2
00002398: ADD
00002399: MLOAD
0000239a: PUSH2 0x02c0
0000239d: DUP11
0000239e: ADD
0000239f: MSTORE
000023a0: SWAP2
000023a1: POP
000023a2: DUP2
000023a3: ISZERO
000023a4: PUSH2 0x23b2
000023a7: JUMPI
000023a8: PUSH2 0x1bd2
000023ab: PUSH1 0x1f
000023ad: DUP4
000023ae: PUSH2 0x3751
000023b1: JUMP
000023b2: JUMPDEST
000023b3: PUSH2 0x23cc
000023b6: DUP7
000023b7: PUSH1 0x08
000023b9: ADD
000023ba: SLOAD
000023bb: DUP8
000023bc: PUSH1 0x07
000023be: ADD
000023bf: SLOAD
000023c0: DUP9
000023c1: PUSH1 0x01
000023c3: ADD
000023c4: SLOAD
000023c5: PUSH2 0x067d
000023c8: PUSH2 0x3006
000023cb: JUMP
000023cc: JUMPDEST
000023cd: PUSH1 0xc0
000023cf: DUP11
000023d0: ADD
000023d1: MSTORE
000023d2: SWAP1
000023d3: POP
000023d4: PUSH1 0x00
000023d6: DUP2
000023d7: PUSH1 0x19
000023d9: DUP2
000023da: GT
000023db: ISZERO
000023dc: PUSH2 0x23e1
000023df: JUMPI
000023e0: INVALID
000023e1: JUMPDEST
000023e2: EQ
000023e3: PUSH2 0x23f1
000023e6: JUMPI
000023e7: PUSH2 0x1bd2
000023ea: DUP2
000023eb: PUSH1 0x1e
000023ed: PUSH2 0x3196
000023f0: JUMP
000023f1: JUMPDEST
000023f2: PUSH2 0x2405
000023f5: DUP9
000023f6: PUSH2 0x01c0
000023f9: ADD
000023fa: MLOAD
000023fb: DUP10
000023fc: PUSH2 0x0360
000023ff: ADD
00002400: MLOAD
00002401: PUSH2 0x372b
00002404: JUMP
00002405: JUMPDEST
00002406: PUSH2 0x01e0
00002409: DUP11
0000240a: ADD
0000240b: MSTORE
0000240c: SWAP1
0000240d: POP
0000240e: PUSH1 0x00
00002410: DUP2
00002411: PUSH1 0x19
00002413: DUP2
00002414: GT
00002415: ISZERO
00002416: PUSH2 0x241b
00002419: JUMPI
0000241a: INVALID
0000241b: JUMPDEST
0000241c: EQ
0000241d: PUSH2 0x2422
00002420: JUMPI
00002421: INVALID
00002422: JUMPDEST
00002423: PUSH2 0x2436
00002426: DUP9
00002427: PUSH2 0x0200
0000242a: ADD
0000242b: MLOAD
0000242c: DUP10
0000242d: PUSH2 0x0360
00002430: ADD
00002431: MLOAD
00002432: PUSH2 0x347e
00002435: JUMP
00002436: JUMPDEST
00002437: PUSH2 0x0220
0000243a: DUP11
0000243b: ADD
0000243c: MSTORE
0000243d: SWAP1
0000243e: POP
0000243f: PUSH1 0x00
00002441: DUP2
00002442: PUSH1 0x19
00002444: DUP2
00002445: GT
00002446: ISZERO
00002447: PUSH2 0x244c
0000244a: JUMPI
0000244b: INVALID
0000244c: JUMPDEST
0000244d: EQ
0000244e: PUSH2 0x2453
00002451: JUMPI
00002452: INVALID
00002453: JUMPDEST
00002454: PUSH2 0x2467
00002457: DUP13
00002458: DUP10
00002459: PUSH1 0x40
0000245b: ADD
0000245c: MLOAD
0000245d: DUP11
0000245e: PUSH2 0x0340
00002461: ADD
00002462: MLOAD
00002463: PUSH2 0x3da8
00002466: JUMP
00002467: JUMPDEST
00002468: SWAP1
00002469: POP
0000246a: PUSH1 0x00
0000246c: DUP2
0000246d: PUSH1 0x19
0000246f: DUP2
00002470: GT
00002471: ISZERO
00002472: PUSH2 0x2477
00002475: JUMPI
00002476: INVALID
00002477: JUMPDEST
00002478: EQ
00002479: PUSH2 0x2487
0000247c: JUMPI
0000247d: PUSH2 0x1bd2
00002480: DUP2
00002481: PUSH1 0x28
00002483: PUSH2 0x3196
00002486: JUMP
00002487: JUMPDEST
00002488: PUSH2 0x248f
0000248b: PUSH2 0x3006
0000248e: JUMP
0000248f: JUMPDEST
00002490: PUSH1 0x01
00002492: DUP9
00002493: ADD
00002494: SSTORE
00002495: PUSH2 0x0140
00002498: DUP9
00002499: ADD
0000249a: MLOAD
0000249b: PUSH1 0x06
0000249d: DUP9
0000249e: ADD
0000249f: SSTORE
000024a0: PUSH2 0x02a0
000024a3: DUP9
000024a4: ADD
000024a5: MLOAD
000024a6: PUSH1 0x04
000024a8: DUP9
000024a9: ADD
000024aa: SSTORE
000024ab: PUSH1 0xa0
000024ad: DUP9
000024ae: ADD
000024af: MLOAD
000024b0: PUSH1 0x05
000024b2: DUP9
000024b3: ADD
000024b4: SSTORE
000024b5: PUSH2 0x02c0
000024b8: DUP9
000024b9: ADD
000024ba: MLOAD
000024bb: PUSH1 0x07
000024bd: DUP9
000024be: ADD
000024bf: SSTORE
000024c0: PUSH1 0x80
000024c2: DUP9
000024c3: ADD
000024c4: MLOAD
000024c5: PUSH1 0x08
000024c7: DUP9
000024c8: ADD
000024c9: SSTORE
000024ca: PUSH2 0x24d1
000024cd: PUSH2 0x3006
000024d0: JUMP
000024d1: JUMPDEST
000024d2: PUSH1 0x01
000024d4: DUP1
000024d5: DUP9
000024d6: ADD
000024d7: SWAP2
000024d8: SWAP1
000024d9: SWAP2
000024da: SSTORE
000024db: PUSH2 0x0240
000024de: DUP10
000024df: ADD
000024e0: MLOAD
000024e1: PUSH1 0x03
000024e3: DUP9
000024e4: ADD
000024e5: SSTORE
000024e6: PUSH1 0xe0
000024e8: DUP10
000024e9: ADD
000024ea: MLOAD
000024eb: PUSH1 0x05
000024ed: DUP9
000024ee: ADD
000024ef: DUP2
000024f0: SWAP1
000024f1: SSTORE
000024f2: PUSH1 0xc0
000024f4: DUP11
000024f5: ADD
000024f6: MLOAD
000024f7: PUSH1 0x08
000024f9: DUP10
000024fa: ADD
000024fb: SSTORE
000024fc: DUP7
000024fd: SLOAD
000024fe: PUSH2 0x0160
00002501: DUP12
00002502: ADD
00002503: MSTORE
00002504: PUSH2 0x0120
00002507: DUP11
00002508: ADD
00002509: MLOAD
0000250a: DUP8
0000250b: SSTORE
0000250c: PUSH1 0x80
0000250e: DUP11
0000250f: ADD
00002510: MLOAD
00002511: DUP8
00002512: DUP4
00002513: ADD
00002514: SSTORE
00002515: DUP6
00002516: SLOAD
00002517: PUSH2 0x0180
0000251a: DUP12
0000251b: ADD
0000251c: MSTORE
0000251d: PUSH2 0x01e0
00002520: DUP11
00002521: ADD
00002522: MLOAD
00002523: DUP7
00002524: SSTORE
00002525: DUP6
00002526: DUP3
00002527: ADD
00002528: DUP2
00002529: SWAP1
0000252a: SSTORE
0000252b: DUP5
0000252c: SLOAD
0000252d: PUSH2 0x01a0
00002530: DUP12
00002531: ADD
00002532: MSTORE
00002533: PUSH2 0x0220
00002536: DUP11
00002537: ADD
00002538: MLOAD
00002539: DUP6
0000253a: SSTORE
0000253b: SWAP1
0000253c: DUP5
0000253d: ADD
0000253e: SSTORE
0000253f: PUSH2 0x2547
00002542: DUP9
00002543: PUSH2 0x42cd
00002546: JUMP
00002547: JUMPDEST
00002548: PUSH1 0x00
0000254a: SWAP9
0000254b: POP
0000254c: JUMPDEST
0000254d: POP
0000254e: POP
0000254f: POP
00002550: POP
00002551: POP
00002552: POP
00002553: POP
00002554: POP
00002555: SWAP5
00002556: SWAP4
00002557: POP
00002558: POP
00002559: POP
0000255a: POP
0000255b: JUMP
0000255c: JUMPDEST
0000255d: PUSH1 0x00
0000255f: DUP1
00002560: SLOAD
00002561: DUP2
00002562: SWAP1
00002563: PUSH1 0x01
00002565: PUSH1 0xa0
00002567: PUSH1 0x02
00002569: EXP
0000256a: SUB
0000256b: AND
0000256c: CALLER
0000256d: EQ
0000256e: PUSH2 0x2584
00002571: JUMPI
00002572: PUSH2 0x257d
00002575: PUSH1 0x02
00002577: PUSH1 0x00
00002579: PUSH2 0x3196
0000257c: JUMP
0000257d: JUMPDEST
0000257e: SWAP2
0000257f: POP
00002580: PUSH2 0x25fe
00002583: JUMP
00002584: JUMPDEST
00002585: POP
00002586: PUSH1 0x01
00002588: DUP1
00002589: SLOAD
0000258a: PUSH1 0x00
0000258c: DUP1
0000258d: SLOAD
0000258e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025a3: NOT
000025a4: DUP1
000025a5: DUP5
000025a6: AND
000025a7: PUSH1 0x01
000025a9: PUSH1 0xa0
000025ab: PUSH1 0x02
000025ad: EXP
000025ae: SUB
000025af: DUP4
000025b0: DUP2
000025b1: AND
000025b2: SWAP2
000025b3: SWAP1
000025b4: SWAP2
000025b5: OR
000025b6: SWAP1
000025b7: SWAP6
000025b8: SSTORE
000025b9: AND
000025ba: SWAP1
000025bb: SSTORE
000025bc: PUSH1 0x40
000025be: DUP1
000025bf: MLOAD
000025c0: SWAP3
000025c1: SWAP1
000025c2: SWAP2
000025c3: AND
000025c4: DUP1
000025c5: DUP4
000025c6: MSTORE
000025c7: CALLER
000025c8: PUSH1 0x20
000025ca: DUP5
000025cb: ADD
000025cc: MSTORE
000025cd: DUP2
000025ce: MLOAD
000025cf: SWAP1
000025d0: SWAP3
000025d1: PUSH32 0xf9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc
000025f2: SWAP3
000025f3: SWAP1
000025f4: DUP3
000025f5: SWAP1
000025f6: SUB
000025f7: ADD
000025f8: SWAP1
000025f9: LOG1
000025fa: PUSH1 0x00
000025fc: SWAP2
000025fd: POP
000025fe: JUMPDEST
000025ff: POP
00002600: SWAP1
00002601: JUMP
00002602: JUMPDEST
00002603: PUSH1 0x00
00002605: DUP1
00002606: PUSH1 0x00
00002608: PUSH2 0x260f
0000260b: PUSH2 0x499b
0000260e: JUMP
0000260f: JUMPDEST
00002610: PUSH1 0x0a
00002612: SLOAD
00002613: PUSH1 0x00
00002615: SWAP1
00002616: DUP2
00002617: SWAP1
00002618: PUSH1 0xff
0000261a: AND
0000261b: ISZERO
0000261c: PUSH2 0x262b
0000261f: JUMPI
00002620: PUSH2 0x0a91
00002623: PUSH1 0x19
00002625: PUSH1 0x3e
00002627: PUSH2 0x3196
0000262a: JUMP
0000262b: JUMPDEST
0000262c: PUSH1 0x01
0000262e: PUSH1 0xa0
00002630: PUSH1 0x02
00002632: EXP
00002633: SUB
00002634: DUP9
00002635: AND
00002636: PUSH1 0x00
00002638: DUP2
00002639: DUP2
0000263a: MSTORE
0000263b: PUSH1 0x05
0000263d: PUSH1 0x20
0000263f: SWAP1
00002640: DUP2
00002641: MSTORE
00002642: PUSH1 0x40
00002644: DUP1
00002645: DUP4
00002646: KECCAK256
00002647: CALLER
00002648: DUP5
00002649: MSTORE
0000264a: PUSH1 0x03
0000264c: DUP4
0000264d: MSTORE
0000264e: DUP2
0000264f: DUP5
00002650: KECCAK256
00002651: SWAP5
00002652: DUP5
00002653: MSTORE
00002654: SWAP4
00002655: SWAP1
00002656: SWAP2
00002657: MSTORE
00002658: SWAP1
00002659: KECCAK256
0000265a: DUP2
0000265b: SLOAD
0000265c: SWAP2
0000265d: SWAP7
0000265e: POP
0000265f: SWAP5
00002660: POP
00002661: PUSH1 0xff
00002663: AND
00002664: ISZERO
00002665: ISZERO
00002666: PUSH2 0x2675
00002669: JUMPI
0000266a: PUSH2 0x0a91
0000266d: PUSH1 0x0a
0000266f: PUSH1 0x3f
00002671: PUSH2 0x3196
00002674: JUMP
00002675: JUMPDEST
00002676: PUSH2 0x2680
00002679: DUP9
0000267a: CALLER
0000267b: DUP10
0000267c: PUSH2 0x3c58
0000267f: JUMP
00002680: JUMPDEST
00002681: SWAP2
00002682: POP
00002683: PUSH1 0x00
00002685: DUP3
00002686: PUSH1 0x19
00002688: DUP2
00002689: GT
0000268a: ISZERO
0000268b: PUSH2 0x2690
0000268e: JUMPI
0000268f: INVALID
00002690: JUMPDEST
00002691: EQ
00002692: PUSH2 0x26a0
00002695: JUMPI
00002696: PUSH2 0x0a91
00002699: DUP3
0000269a: PUSH1 0x48
0000269c: PUSH2 0x3196
0000269f: JUMP
000026a0: JUMPDEST
000026a1: PUSH2 0x26ba
000026a4: DUP6
000026a5: PUSH1 0x05
000026a7: ADD
000026a8: SLOAD
000026a9: DUP7
000026aa: PUSH1 0x04
000026ac: ADD
000026ad: SLOAD
000026ae: DUP8
000026af: PUSH1 0x01
000026b1: ADD
000026b2: SLOAD
000026b3: PUSH2 0x067d
000026b6: PUSH2 0x3006
000026b9: JUMP
000026ba: JUMPDEST
000026bb: PUSH1 0x20
000026bd: DUP6
000026be: ADD
000026bf: MSTORE
000026c0: SWAP2
000026c1: POP
000026c2: PUSH1 0x00
000026c4: DUP3
000026c5: PUSH1 0x19
000026c7: DUP2
000026c8: GT
000026c9: ISZERO
000026ca: PUSH2 0x26cf
000026cd: JUMPI
000026ce: INVALID
000026cf: JUMPDEST
000026d0: EQ
000026d1: PUSH2 0x26df
000026d4: JUMPI
000026d5: PUSH2 0x0a91
000026d8: DUP3
000026d9: PUSH1 0x42
000026db: PUSH2 0x3196
000026de: JUMP
000026df: JUMPDEST
000026e0: PUSH2 0x26f6
000026e3: DUP5
000026e4: PUSH1 0x00
000026e6: ADD
000026e7: SLOAD
000026e8: DUP6
000026e9: PUSH1 0x01
000026eb: ADD
000026ec: SLOAD
000026ed: DUP6
000026ee: PUSH1 0x20
000026f0: ADD
000026f1: MLOAD
000026f2: PUSH2 0x3135
000026f5: JUMP
000026f6: JUMPDEST
000026f7: PUSH1 0x40
000026f9: DUP6
000026fa: ADD
000026fb: MSTORE
000026fc: SWAP2
000026fd: POP
000026fe: PUSH1 0x00
00002700: DUP3
00002701: PUSH1 0x19
00002703: DUP2
00002704: GT
00002705: ISZERO
00002706: PUSH2 0x270b
00002709: JUMPI
0000270a: INVALID
0000270b: JUMPDEST
0000270c: EQ
0000270d: PUSH2 0x271b
00002710: JUMPI
00002711: PUSH2 0x0a91
00002714: DUP3
00002715: PUSH1 0x3d
00002717: PUSH2 0x3196
0000271a: JUMP
0000271b: JUMPDEST
0000271c: PUSH2 0x2729
0000271f: DUP4
00002720: PUSH1 0x40
00002722: ADD
00002723: MLOAD
00002724: DUP9
00002725: PUSH2 0x347e
00002728: JUMP
00002729: JUMPDEST
0000272a: PUSH1 0x60
0000272c: DUP6
0000272d: ADD
0000272e: MSTORE
0000272f: SWAP2
00002730: POP
00002731: PUSH1 0x00
00002733: DUP3
00002734: PUSH1 0x19
00002736: DUP2
00002737: GT
00002738: ISZERO
00002739: PUSH2 0x273e
0000273c: JUMPI
0000273d: INVALID
0000273e: JUMPDEST
0000273f: EQ
00002740: PUSH2 0x274e
00002743: JUMPI
00002744: PUSH2 0x0a91
00002747: DUP3
00002748: PUSH1 0x44
0000274a: PUSH2 0x3196
0000274d: JUMP
0000274e: JUMPDEST
0000274f: PUSH2 0x2765
00002752: DUP6
00002753: PUSH1 0x03
00002755: ADD
00002756: SLOAD
00002757: DUP5
00002758: PUSH1 0x60
0000275a: ADD
0000275b: MLOAD
0000275c: DUP7
0000275d: PUSH1 0x00
0000275f: ADD
00002760: SLOAD
00002761: PUSH2 0x3294
00002764: JUMP
00002765: JUMPDEST
00002766: PUSH1 0x80
00002768: DUP6
00002769: ADD
0000276a: MSTORE
0000276b: SWAP2
0000276c: POP
0000276d: PUSH1 0x00
0000276f: DUP3
00002770: PUSH1 0x19
00002772: DUP2
00002773: GT
00002774: ISZERO
00002775: PUSH2 0x277a
00002778: JUMPI
00002779: INVALID
0000277a: JUMPDEST
0000277b: EQ
0000277c: PUSH2 0x278a
0000277f: JUMPI
00002780: PUSH2 0x0a91
00002783: DUP3
00002784: PUSH1 0x46
00002786: PUSH2 0x3196
00002789: JUMP
0000278a: JUMPDEST
0000278b: PUSH2 0x2793
0000278e: DUP9
0000278f: PUSH2 0x31fc
00002792: JUMP
00002793: JUMPDEST
00002794: PUSH1 0xa0
00002796: DUP5
00002797: ADD
00002798: DUP2
00002799: SWAP1
0000279a: MSTORE
0000279b: PUSH2 0x27a4
0000279e: SWAP1
0000279f: DUP9
000027a0: PUSH2 0x347e
000027a3: JUMP
000027a4: JUMPDEST
000027a5: PUSH1 0xc0
000027a7: DUP6
000027a8: ADD
000027a9: MSTORE
000027aa: SWAP2
000027ab: POP
000027ac: PUSH1 0x00
000027ae: DUP3
000027af: PUSH1 0x19
000027b1: DUP2
000027b2: GT
000027b3: ISZERO
000027b4: PUSH2 0x27b9
000027b7: JUMPI
000027b8: INVALID
000027b9: JUMPDEST
000027ba: EQ
000027bb: PUSH2 0x27c9
000027be: JUMPI
000027bf: PUSH2 0x0a91
000027c2: DUP3
000027c3: PUSH1 0x45
000027c5: PUSH2 0x3196
000027c8: JUMP
000027c9: JUMPDEST
000027ca: PUSH1 0x02
000027cc: DUP6
000027cd: ADD
000027ce: SLOAD
000027cf: PUSH1 0xc0
000027d1: DUP5
000027d2: ADD
000027d3: MLOAD
000027d4: PUSH1 0x06
000027d6: DUP8
000027d7: ADD
000027d8: SLOAD
000027d9: PUSH1 0x40
000027db: DUP1
000027dc: MLOAD
000027dd: PUSH1 0xe1
000027df: PUSH1 0x02
000027e1: EXP
000027e2: PUSH4 0x28be7b9f
000027e7: MUL
000027e8: DUP2
000027e9: MSTORE
000027ea: PUSH1 0x01
000027ec: PUSH1 0xa0
000027ee: PUSH1 0x02
000027f0: EXP
000027f1: SUB
000027f2: DUP14
000027f3: DUP2
000027f4: AND
000027f5: PUSH1 0x04
000027f7: DUP4
000027f8: ADD
000027f9: MSTORE
000027fa: PUSH1 0x24
000027fc: DUP3
000027fd: ADD
000027fe: SWAP5
000027ff: SWAP1
00002800: SWAP5
00002801: MSTORE
00002802: PUSH1 0x44
00002804: DUP2
00002805: ADD
00002806: SWAP3
00002807: SWAP1
00002808: SWAP3
00002809: MSTORE
0000280a: DUP1
0000280b: MLOAD
0000280c: SWAP3
0000280d: SWAP1
0000280e: SWAP4
0000280f: AND
00002810: SWAP3
00002811: PUSH4 0x517cf73e
00002816: SWAP3
00002817: PUSH1 0x64
00002819: DUP1
0000281a: DUP5
0000281b: ADD
0000281c: SWAP4
0000281d: DUP3
0000281e: SWAP1
0000281f: SUB
00002820: ADD
00002821: DUP2
00002822: PUSH1 0x00
00002824: DUP8
00002825: DUP1
00002826: EXTCODESIZE
00002827: ISZERO
00002828: DUP1
00002829: ISZERO
0000282a: PUSH2 0x2832
0000282d: JUMPI
0000282e: PUSH1 0x00
00002830: DUP1
00002831: REVERT
00002832: JUMPDEST
00002833: POP
00002834: GAS
00002835: CALL
00002836: ISZERO
00002837: DUP1
00002838: ISZERO
00002839: PUSH2 0x2846
0000283c: JUMPI
0000283d: RETURNDATASIZE
0000283e: PUSH1 0x00
00002840: DUP1
00002841: RETURNDATACOPY
00002842: RETURNDATASIZE
00002843: PUSH1 0x00
00002845: REVERT
00002846: JUMPDEST
00002847: POP
00002848: POP
00002849: POP
0000284a: POP
0000284b: PUSH1 0x40
0000284d: MLOAD
0000284e: RETURNDATASIZE
0000284f: PUSH1 0x40
00002851: DUP2
00002852: LT
00002853: ISZERO
00002854: PUSH2 0x285c
00002857: JUMPI
00002858: PUSH1 0x00
0000285a: DUP1
0000285b: REVERT
0000285c: JUMPDEST
0000285d: POP
0000285e: DUP1
0000285f: MLOAD
00002860: PUSH1 0x20
00002862: SWAP1
00002863: SWAP2
00002864: ADD
00002865: MLOAD
00002866: PUSH1 0xe0
00002868: DUP6
00002869: ADD
0000286a: MSTORE
0000286b: SWAP1
0000286c: POP
0000286d: DUP1
0000286e: ISZERO
0000286f: PUSH2 0x287d
00002872: JUMPI
00002873: PUSH2 0x0a91
00002876: PUSH1 0x43
00002878: DUP3
00002879: PUSH2 0x3751
0000287c: JUMP
0000287d: JUMPDEST
0000287e: PUSH2 0x2897
00002881: DUP6
00002882: PUSH1 0x08
00002884: ADD
00002885: SLOAD
00002886: DUP7
00002887: PUSH1 0x07
00002889: ADD
0000288a: SLOAD
0000288b: DUP8
0000288c: PUSH1 0x01
0000288e: ADD
0000288f: SLOAD
00002890: PUSH2 0x067d
00002893: PUSH2 0x3006
00002896: JUMP
00002897: JUMPDEST
00002898: PUSH2 0x0100
0000289b: DUP6
0000289c: ADD
0000289d: MSTORE
0000289e: SWAP2
0000289f: POP
000028a0: PUSH1 0x00
000028a2: DUP3
000028a3: PUSH1 0x19
000028a5: DUP2
000028a6: GT
000028a7: ISZERO
000028a8: PUSH2 0x28ad
000028ab: JUMPI
000028ac: INVALID
000028ad: JUMPDEST
000028ae: EQ
000028af: PUSH2 0x28bd
000028b2: JUMPI
000028b3: PUSH2 0x0a91
000028b6: DUP3
000028b7: PUSH1 0x40
000028b9: PUSH2 0x3196
000028bc: JUMP
000028bd: JUMPDEST
000028be: PUSH1 0x02
000028c0: DUP6
000028c1: ADD
000028c2: SLOAD
000028c3: PUSH1 0xc0
000028c5: DUP5
000028c6: ADD
000028c7: MLOAD
000028c8: PUSH1 0x06
000028ca: DUP8
000028cb: ADD
000028cc: SLOAD
000028cd: PUSH1 0x40
000028cf: DUP1
000028d0: MLOAD
000028d1: PUSH1 0xe2
000028d3: PUSH1 0x02
000028d5: EXP
000028d6: PUSH4 0x3b4ad68f
000028db: MUL
000028dc: DUP2
000028dd: MSTORE
000028de: PUSH1 0x01
000028e0: PUSH1 0xa0
000028e2: PUSH1 0x02
000028e4: EXP
000028e5: SUB
000028e6: DUP14
000028e7: DUP2
000028e8: AND
000028e9: PUSH1 0x04
000028eb: DUP4
000028ec: ADD
000028ed: MSTORE
000028ee: PUSH1 0x24
000028f0: DUP3
000028f1: ADD
000028f2: SWAP5
000028f3: SWAP1
000028f4: SWAP5
000028f5: MSTORE
000028f6: PUSH1 0x44
000028f8: DUP2
000028f9: ADD
000028fa: SWAP3
000028fb: SWAP1
000028fc: SWAP3
000028fd: MSTORE
000028fe: DUP1
000028ff: MLOAD
00002900: SWAP3
00002901: SWAP1
00002902: SWAP4
00002903: AND
00002904: SWAP3
00002905: PUSH4 0xed2b5a3c
0000290a: SWAP3
0000290b: PUSH1 0x64
0000290d: DUP1
0000290e: DUP5
0000290f: ADD
00002910: SWAP4
00002911: DUP3
00002912: SWAP1
00002913: SUB
00002914: ADD
00002915: DUP2
00002916: PUSH1 0x00
00002918: DUP8
00002919: DUP1
0000291a: EXTCODESIZE
0000291b: ISZERO
0000291c: DUP1
0000291d: ISZERO
0000291e: PUSH2 0x2926
00002921: JUMPI
00002922: PUSH1 0x00
00002924: DUP1
00002925: REVERT
00002926: JUMPDEST
00002927: POP
00002928: GAS
00002929: CALL
0000292a: ISZERO
0000292b: DUP1
0000292c: ISZERO
0000292d: PUSH2 0x293a
00002930: JUMPI
00002931: RETURNDATASIZE
00002932: PUSH1 0x00
00002934: DUP1
00002935: RETURNDATACOPY
00002936: RETURNDATASIZE
00002937: PUSH1 0x00
00002939: REVERT
0000293a: JUMPDEST
0000293b: POP
0000293c: POP
0000293d: POP
0000293e: POP
0000293f: PUSH1 0x40
00002941: MLOAD
00002942: RETURNDATASIZE
00002943: PUSH1 0x40
00002945: DUP2
00002946: LT
00002947: ISZERO
00002948: PUSH2 0x2950
0000294b: JUMPI
0000294c: PUSH1 0x00
0000294e: DUP1
0000294f: REVERT
00002950: JUMPDEST
00002951: POP
00002952: DUP1
00002953: MLOAD
00002954: PUSH1 0x20
00002956: SWAP1
00002957: SWAP2
00002958: ADD
00002959: MLOAD
0000295a: PUSH2 0x0120
0000295d: DUP6
0000295e: ADD
0000295f: MSTORE
00002960: SWAP1
00002961: POP
00002962: DUP1
00002963: ISZERO
00002964: PUSH2 0x2972
00002967: JUMPI
00002968: PUSH2 0x0a91
0000296b: PUSH1 0x41
0000296d: DUP3
0000296e: PUSH2 0x3751
00002971: JUMP
00002972: JUMPDEST
00002973: PUSH2 0x297d
00002976: DUP9
00002977: CALLER
00002978: DUP10
00002979: PUSH2 0x3da8
0000297c: JUMP
0000297d: JUMPDEST
0000297e: SWAP2
0000297f: POP
00002980: PUSH1 0x00
00002982: DUP3
00002983: PUSH1 0x19
00002985: DUP2
00002986: GT
00002987: ISZERO
00002988: PUSH2 0x298d
0000298b: JUMPI
0000298c: INVALID
0000298d: JUMPDEST
0000298e: EQ
0000298f: PUSH2 0x299d
00002992: JUMPI
00002993: PUSH2 0x0a91
00002996: DUP3
00002997: PUSH1 0x47
00002999: PUSH2 0x3196
0000299c: JUMP
0000299d: JUMPDEST
0000299e: PUSH2 0x29a5
000029a1: PUSH2 0x3006
000029a4: JUMP
000029a5: JUMPDEST
000029a6: PUSH1 0x01
000029a8: DUP1
000029a9: DUP8
000029aa: ADD
000029ab: SWAP2
000029ac: SWAP1
000029ad: SWAP2
000029ae: SSTORE
000029af: PUSH1 0x80
000029b1: DUP1
000029b2: DUP6
000029b3: ADD
000029b4: MLOAD
000029b5: PUSH1 0x03
000029b7: DUP9
000029b8: ADD
000029b9: SSTORE
000029ba: PUSH1 0xe0
000029bc: DUP6
000029bd: ADD
000029be: MLOAD
000029bf: PUSH1 0x04
000029c1: DUP9
000029c2: ADD
000029c3: SSTORE
000029c4: PUSH1 0x20
000029c6: DUP1
000029c7: DUP7
000029c8: ADD
000029c9: MLOAD
000029ca: PUSH1 0x05
000029cc: DUP10
000029cd: ADD
000029ce: DUP2
000029cf: SWAP1
000029d0: SSTORE
000029d1: PUSH2 0x0120
000029d4: DUP8
000029d5: ADD
000029d6: MLOAD
000029d7: PUSH1 0x07
000029d9: DUP11
000029da: ADD
000029db: SSTORE
000029dc: PUSH2 0x0100
000029df: DUP8
000029e0: ADD
000029e1: MLOAD
000029e2: PUSH1 0x08
000029e4: DUP11
000029e5: ADD
000029e6: SSTORE
000029e7: DUP8
000029e8: SLOAD
000029e9: DUP1
000029ea: DUP9
000029eb: MSTORE
000029ec: PUSH1 0x60
000029ee: DUP1
000029ef: DUP10
000029f0: ADD
000029f1: MLOAD
000029f2: DUP1
000029f3: DUP12
000029f4: SSTORE
000029f5: SWAP6
000029f6: DUP11
000029f7: ADD
000029f8: SWAP3
000029f9: SWAP1
000029fa: SWAP3
000029fb: SSTORE
000029fc: PUSH1 0x40
000029fe: DUP1
000029ff: MLOAD
00002a00: CALLER
00002a01: DUP2
00002a02: MSTORE
00002a03: PUSH1 0x01
00002a05: PUSH1 0xa0
00002a07: PUSH1 0x02
00002a09: EXP
00002a0a: SUB
00002a0b: DUP16
00002a0c: AND
00002a0d: SWAP5
00002a0e: DUP2
00002a0f: ADD
00002a10: SWAP5
00002a11: SWAP1
00002a12: SWAP5
00002a13: MSTORE
00002a14: DUP4
00002a15: DUP2
00002a16: ADD
00002a17: DUP14
00002a18: SWAP1
00002a19: MSTORE
00002a1a: SWAP2
00002a1b: DUP4
00002a1c: ADD
00002a1d: MSTORE
00002a1e: SWAP2
00002a1f: DUP2
00002a20: ADD
00002a21: SWAP3
00002a22: SWAP1
00002a23: SWAP3
00002a24: MSTORE
00002a25: MLOAD
00002a26: PUSH32 0x4ea5606ff36959d6c1a24f693661d800a98dd80c0fb8469a665d2ec7e8313c21
00002a47: SWAP2
00002a48: DUP2
00002a49: SWAP1
00002a4a: SUB
00002a4b: PUSH1 0xa0
00002a4d: ADD
00002a4e: SWAP1
00002a4f: LOG1
00002a50: PUSH1 0x00
00002a52: PUSH2 0x0f7a
00002a55: JUMP
00002a56: JUMPDEST
00002a57: PUSH1 0x00
00002a59: DUP1
00002a5a: PUSH1 0x00
00002a5c: PUSH2 0x2a63
00002a5f: PUSH2 0x49ef
00002a62: JUMP
00002a63: JUMPDEST
00002a64: PUSH1 0x0a
00002a66: SLOAD
00002a67: PUSH1 0x00
00002a69: SWAP1
00002a6a: DUP2
00002a6b: SWAP1
00002a6c: PUSH1 0xff
00002a6e: AND
00002a6f: ISZERO
00002a70: PUSH2 0x2a7f
00002a73: JUMPI
00002a74: PUSH2 0x0a91
00002a77: PUSH1 0x19
00002a79: PUSH1 0x53
00002a7b: PUSH2 0x3196
00002a7e: JUMP
00002a7f: JUMPDEST
00002a80: PUSH1 0x01
00002a82: PUSH1 0xa0
00002a84: PUSH1 0x02
00002a86: EXP
00002a87: SUB
00002a88: DUP9
00002a89: AND
00002a8a: PUSH1 0x00
00002a8c: DUP2
00002a8d: DUP2
00002a8e: MSTORE
00002a8f: PUSH1 0x05
00002a91: PUSH1 0x20
00002a93: SWAP1
00002a94: DUP2
00002a95: MSTORE
00002a96: PUSH1 0x40
00002a98: DUP1
00002a99: DUP4
00002a9a: KECCAK256
00002a9b: CALLER
00002a9c: DUP1
00002a9d: DUP6
00002a9e: MSTORE
00002a9f: PUSH1 0x03
00002aa1: DUP5
00002aa2: MSTORE
00002aa3: DUP3
00002aa4: DUP6
00002aa5: KECCAK256
00002aa6: SWAP6
00002aa7: DUP6
00002aa8: MSTORE
00002aa9: SWAP5
00002aaa: SWAP1
00002aab: SWAP3
00002aac: MSTORE
00002aad: SWAP1
00002aae: SWAP2
00002aaf: KECCAK256
00002ab0: SWAP1
00002ab1: SWAP7
00002ab2: POP
00002ab3: SWAP5
00002ab4: POP
00002ab5: PUSH2 0x2abd
00002ab8: SWAP1
00002ab9: PUSH2 0x34a8
00002abc: JUMP
00002abd: JUMPDEST
00002abe: PUSH2 0x0180
00002ac1: DUP7
00002ac2: ADD
00002ac3: MSTORE
00002ac4: PUSH2 0x0160
00002ac7: DUP6
00002ac8: ADD
00002ac9: MSTORE
00002aca: SWAP2
00002acb: POP
00002acc: PUSH1 0x00
00002ace: DUP3
00002acf: PUSH1 0x19
00002ad1: DUP2
00002ad2: GT
00002ad3: ISZERO
00002ad4: PUSH2 0x2ad9
00002ad7: JUMPI
00002ad8: INVALID
00002ad9: JUMPDEST
00002ada: EQ
00002adb: PUSH2 0x2ae9
00002ade: JUMPI
00002adf: PUSH2 0x0a91
00002ae2: DUP3
00002ae3: PUSH1 0x4d
00002ae5: PUSH2 0x3196
00002ae8: JUMP
00002ae9: JUMPDEST
00002aea: PUSH2 0x2b03
00002aed: DUP6
00002aee: PUSH1 0x05
00002af0: ADD
00002af1: SLOAD
00002af2: DUP7
00002af3: PUSH1 0x04
00002af5: ADD
00002af6: SLOAD
00002af7: DUP8
00002af8: PUSH1 0x01
00002afa: ADD
00002afb: SLOAD
00002afc: PUSH2 0x067d
00002aff: PUSH2 0x3006
00002b02: JUMP
00002b03: JUMPDEST
00002b04: PUSH1 0x40
00002b06: DUP6
00002b07: ADD
00002b08: MSTORE
00002b09: SWAP2
00002b0a: POP
00002b0b: PUSH1 0x00
00002b0d: DUP3
00002b0e: PUSH1 0x19
00002b10: DUP2
00002b11: GT
00002b12: ISZERO
00002b13: PUSH2 0x2b18
00002b16: JUMPI
00002b17: INVALID
00002b18: JUMPDEST
00002b19: EQ
00002b1a: PUSH2 0x2b28
00002b1d: JUMPI
00002b1e: PUSH2 0x0a91
00002b21: DUP3
00002b22: PUSH1 0x56
00002b24: PUSH2 0x3196
00002b27: JUMP
00002b28: JUMPDEST
00002b29: PUSH2 0x2b3f
00002b2c: DUP5
00002b2d: PUSH1 0x00
00002b2f: ADD
00002b30: SLOAD
00002b31: DUP6
00002b32: PUSH1 0x01
00002b34: ADD
00002b35: SLOAD
00002b36: DUP6
00002b37: PUSH1 0x40
00002b39: ADD
00002b3a: MLOAD
00002b3b: PUSH2 0x3135
00002b3e: JUMP
00002b3f: JUMPDEST
00002b40: PUSH1 0x60
00002b42: DUP6
00002b43: ADD
00002b44: MSTORE
00002b45: SWAP2
00002b46: POP
00002b47: PUSH1 0x00
00002b49: DUP3
00002b4a: PUSH1 0x19
00002b4c: DUP2
00002b4d: GT
00002b4e: ISZERO
00002b4f: PUSH2 0x2b54
00002b52: JUMPI
00002b53: INVALID
00002b54: JUMPDEST
00002b55: EQ
00002b56: PUSH2 0x2b64
00002b59: JUMPI
00002b5a: PUSH2 0x0a91
00002b5d: DUP3
00002b5e: PUSH1 0x4f
00002b60: PUSH2 0x3196
00002b63: JUMP
00002b64: JUMPDEST
00002b65: PUSH1 0x00
00002b67: NOT
00002b68: DUP8
00002b69: EQ
00002b6a: ISZERO
00002b6b: PUSH2 0x2bbd
00002b6e: JUMPI
00002b6f: PUSH2 0x2b7d
00002b72: DUP9
00002b73: DUP5
00002b74: PUSH2 0x0160
00002b77: ADD
00002b78: MLOAD
00002b79: PUSH2 0x43df
00002b7c: JUMP
00002b7d: JUMPDEST
00002b7e: PUSH2 0x01c0
00002b81: DUP6
00002b82: ADD
00002b83: MSTORE
00002b84: SWAP2
00002b85: POP
00002b86: PUSH1 0x00
00002b88: DUP3
00002b89: PUSH1 0x19
00002b8b: DUP2
00002b8c: GT
00002b8d: ISZERO
00002b8e: PUSH2 0x2b93
00002b91: JUMPI
00002b92: INVALID
00002b93: JUMPDEST
00002b94: EQ
00002b95: PUSH2 0x2ba3
00002b98: JUMPI
00002b99: PUSH2 0x0a91
00002b9c: DUP3
00002b9d: PUSH1 0x52
00002b9f: PUSH2 0x3196
00002ba2: JUMP
00002ba3: JUMPDEST
00002ba4: PUSH2 0x2bb6
00002ba7: DUP4
00002ba8: PUSH2 0x01c0
00002bab: ADD
00002bac: MLOAD
00002bad: DUP5
00002bae: PUSH1 0x60
00002bb0: ADD
00002bb1: MLOAD
00002bb2: PUSH2 0x3c40
00002bb5: JUMP
00002bb6: JUMPDEST
00002bb7: DUP4
00002bb8: MSTORE
00002bb9: PUSH2 0x2bc1
00002bbc: JUMP
00002bbd: JUMPDEST
00002bbe: DUP7
00002bbf: DUP4
00002bc0: MSTORE
00002bc1: JUMPDEST
00002bc2: PUSH2 0x2bca
00002bc5: DUP9
00002bc6: PUSH2 0x31fc
00002bc9: JUMP
00002bca: JUMPDEST
00002bcb: PUSH1 0xc0
00002bcd: DUP5
00002bce: ADD
00002bcf: DUP2
00002bd0: SWAP1
00002bd1: MSTORE
00002bd2: DUP4
00002bd3: MLOAD
00002bd4: PUSH2 0x2bdd
00002bd7: SWAP2
00002bd8: SWAP1
00002bd9: PUSH2 0x372b
00002bdc: JUMP
00002bdd: JUMPDEST
00002bde: PUSH1 0xe0
00002be0: DUP6
00002be1: ADD
00002be2: MSTORE
00002be3: SWAP2
00002be4: POP
00002be5: PUSH1 0x00
00002be7: DUP3
00002be8: PUSH1 0x19
00002bea: DUP2
00002beb: GT
00002bec: ISZERO
00002bed: PUSH2 0x2bf2
00002bf0: JUMPI
00002bf1: INVALID
00002bf2: JUMPDEST
00002bf3: EQ
00002bf4: PUSH2 0x2c03
00002bf7: JUMPI
00002bf8: PUSH2 0x0a91
00002bfb: PUSH1 0x0d
00002bfd: PUSH1 0x5b
00002bff: PUSH2 0x3196
00002c02: JUMP
00002c03: JUMPDEST
00002c04: PUSH2 0x2c15
00002c07: DUP4
00002c08: PUSH1 0x60
00002c0a: ADD
00002c0b: MLOAD
00002c0c: DUP5
00002c0d: PUSH1 0x00
00002c0f: ADD
00002c10: MLOAD
00002c11: PUSH2 0x372b
00002c14: JUMP
00002c15: JUMPDEST
00002c16: PUSH1 0x80
00002c18: DUP6
00002c19: ADD
00002c1a: MSTORE
00002c1b: SWAP2
00002c1c: POP
00002c1d: PUSH1 0x00
00002c1f: DUP3
00002c20: PUSH1 0x19
00002c22: DUP2
00002c23: GT
00002c24: ISZERO
00002c25: PUSH2 0x2c2a
00002c28: JUMPI
00002c29: INVALID
00002c2a: JUMPDEST
00002c2b: EQ
00002c2c: PUSH2 0x2c3b
00002c2f: JUMPI
00002c30: PUSH2 0x0a91
00002c33: PUSH1 0x10
00002c35: PUSH1 0x58
00002c37: PUSH2 0x3196
00002c3a: JUMP
00002c3b: JUMPDEST
00002c3c: PUSH2 0x2c49
00002c3f: DUP4
00002c40: PUSH2 0x0180
00002c43: ADD
00002c44: MLOAD
00002c45: PUSH2 0x3637
00002c48: JUMP
00002c49: JUMPDEST
00002c4a: ISZERO
00002c4b: ISZERO
00002c4c: PUSH2 0x2c5b
00002c4f: JUMPI
00002c50: PUSH2 0x0a91
00002c53: PUSH1 0x0f
00002c55: PUSH1 0x4e
00002c57: PUSH2 0x3196
00002c5a: JUMP
00002c5b: JUMPDEST
00002c5c: PUSH2 0x2c69
00002c5f: DUP9
00002c60: DUP5
00002c61: PUSH1 0x00
00002c63: ADD
00002c64: MLOAD
00002c65: PUSH2 0x445e
00002c68: JUMP
00002c69: JUMPDEST
00002c6a: PUSH2 0x01a0
00002c6d: DUP6
00002c6e: ADD
00002c6f: MSTORE
00002c70: SWAP2
00002c71: POP
00002c72: PUSH1 0x00
00002c74: DUP3
00002c75: PUSH1 0x19
00002c77: DUP2
00002c78: GT
00002c79: ISZERO
00002c7a: PUSH2 0x2c7f
00002c7d: JUMPI
00002c7e: INVALID
00002c7f: JUMPDEST
00002c80: EQ
00002c81: PUSH2 0x2c8f
00002c84: JUMPI
00002c85: PUSH2 0x0a91
00002c88: DUP3
00002c89: PUSH1 0x51
00002c8b: PUSH2 0x3196
00002c8e: JUMP
00002c8f: JUMPDEST
00002c90: PUSH2 0x2ca3
00002c93: DUP4
00002c94: PUSH2 0x0160
00002c97: ADD
00002c98: MLOAD
00002c99: DUP5
00002c9a: PUSH2 0x01a0
00002c9d: ADD
00002c9e: MLOAD
00002c9f: PUSH2 0x3724
00002ca2: JUMP
00002ca3: JUMPDEST
00002ca4: ISZERO
00002ca5: PUSH2 0x2cb4
00002ca8: JUMPI
00002ca9: PUSH2 0x0a91
00002cac: PUSH1 0x0f
00002cae: PUSH1 0x50
00002cb0: PUSH2 0x3196
00002cb3: JUMP
00002cb4: JUMPDEST
00002cb5: PUSH2 0x2ccb
00002cb8: DUP6
00002cb9: PUSH1 0x03
00002cbb: ADD
00002cbc: SLOAD
00002cbd: DUP5
00002cbe: PUSH1 0x80
00002cc0: ADD
00002cc1: MLOAD
00002cc2: DUP7
00002cc3: PUSH1 0x00
00002cc5: ADD
00002cc6: SLOAD
00002cc7: PUSH2 0x3294
00002cca: JUMP
00002ccb: JUMPDEST
00002ccc: PUSH1 0xa0
00002cce: DUP6
00002ccf: ADD
00002cd0: MSTORE
00002cd1: SWAP2
00002cd2: POP
00002cd3: PUSH1 0x00
00002cd5: DUP3
00002cd6: PUSH1 0x19
00002cd8: DUP2
00002cd9: GT
00002cda: ISZERO
00002cdb: PUSH2 0x2ce0
00002cde: JUMPI
00002cdf: INVALID
00002ce0: JUMPDEST
00002ce1: EQ
00002ce2: PUSH2 0x2cf0
00002ce5: JUMPI
00002ce6: PUSH2 0x0a91
00002ce9: DUP3
00002cea: PUSH1 0x59
00002cec: PUSH2 0x3196
00002cef: JUMP
00002cf0: JUMPDEST
00002cf1: PUSH1 0x02
00002cf3: DUP6
00002cf4: ADD
00002cf5: SLOAD
00002cf6: PUSH1 0xe0
00002cf8: DUP5
00002cf9: ADD
00002cfa: MLOAD
00002cfb: PUSH1 0x06
00002cfd: DUP8
00002cfe: ADD
00002cff: SLOAD
00002d00: PUSH1 0x40
00002d02: DUP1
00002d03: MLOAD
00002d04: PUSH1 0xe1
00002d06: PUSH1 0x02
00002d08: EXP
00002d09: PUSH4 0x28be7b9f
00002d0e: MUL
00002d0f: DUP2
00002d10: MSTORE
00002d11: PUSH1 0x01
00002d13: PUSH1 0xa0
00002d15: PUSH1 0x02
00002d17: EXP
00002d18: SUB
00002d19: DUP14
00002d1a: DUP2
00002d1b: AND
00002d1c: PUSH1 0x04
00002d1e: DUP4
00002d1f: ADD
00002d20: MSTORE
00002d21: PUSH1 0x24
00002d23: DUP3
00002d24: ADD
00002d25: SWAP5
00002d26: SWAP1
00002d27: SWAP5
00002d28: MSTORE
00002d29: PUSH1 0x44
00002d2b: DUP2
00002d2c: ADD
00002d2d: SWAP3
00002d2e: SWAP1
00002d2f: SWAP3
00002d30: MSTORE
00002d31: DUP1
00002d32: MLOAD
00002d33: SWAP3
00002d34: SWAP1
00002d35: SWAP4
00002d36: AND
00002d37: SWAP3
00002d38: PUSH4 0x517cf73e
00002d3d: SWAP3
00002d3e: PUSH1 0x64
00002d40: DUP1
00002d41: DUP5
00002d42: ADD
00002d43: SWAP4
00002d44: DUP3
00002d45: SWAP1
00002d46: SUB
00002d47: ADD
00002d48: DUP2
00002d49: PUSH1 0x00
00002d4b: DUP8
00002d4c: DUP1
00002d4d: EXTCODESIZE
00002d4e: ISZERO
00002d4f: DUP1
00002d50: ISZERO
00002d51: PUSH2 0x2d59
00002d54: JUMPI
00002d55: PUSH1 0x00
00002d57: DUP1
00002d58: REVERT
00002d59: JUMPDEST
00002d5a: POP
00002d5b: GAS
00002d5c: CALL
00002d5d: ISZERO
00002d5e: DUP1
00002d5f: ISZERO
00002d60: PUSH2 0x2d6d
00002d63: JUMPI
00002d64: RETURNDATASIZE
00002d65: PUSH1 0x00
00002d67: DUP1
00002d68: RETURNDATACOPY
00002d69: RETURNDATASIZE
00002d6a: PUSH1 0x00
00002d6c: REVERT
00002d6d: JUMPDEST
00002d6e: POP
00002d6f: POP
00002d70: POP
00002d71: POP
00002d72: PUSH1 0x40
00002d74: MLOAD
00002d75: RETURNDATASIZE
00002d76: PUSH1 0x40
00002d78: DUP2
00002d79: LT
00002d7a: ISZERO
00002d7b: PUSH2 0x2d83
00002d7e: JUMPI
00002d7f: PUSH1 0x00
00002d81: DUP1
00002d82: REVERT
00002d83: JUMPDEST
00002d84: POP
00002d85: DUP1
00002d86: MLOAD
00002d87: PUSH1 0x20
00002d89: SWAP1
00002d8a: SWAP2
00002d8b: ADD
00002d8c: MLOAD
00002d8d: PUSH2 0x0100
00002d90: DUP6
00002d91: ADD
00002d92: MSTORE
00002d93: SWAP1
00002d94: POP
00002d95: DUP1
00002d96: ISZERO
00002d97: PUSH2 0x2da5
00002d9a: JUMPI
00002d9b: PUSH2 0x0a91
00002d9e: PUSH1 0x57
00002da0: DUP3
00002da1: PUSH2 0x3751
00002da4: JUMP
00002da5: JUMPDEST
00002da6: PUSH2 0x2dbf
00002da9: DUP6
00002daa: PUSH1 0x08
00002dac: ADD
00002dad: SLOAD
00002dae: DUP7
00002daf: PUSH1 0x07
00002db1: ADD
00002db2: SLOAD
00002db3: DUP8
00002db4: PUSH1 0x01
00002db6: ADD
00002db7: SLOAD
00002db8: PUSH2 0x067d
00002dbb: PUSH2 0x3006
00002dbe: JUMP
00002dbf: JUMPDEST
00002dc0: PUSH2 0x0120
00002dc3: DUP6
00002dc4: ADD
00002dc5: MSTORE
00002dc6: SWAP2
00002dc7: POP
00002dc8: PUSH1 0x00
00002dca: DUP3
00002dcb: PUSH1 0x19
00002dcd: DUP2
00002dce: GT
00002dcf: ISZERO
00002dd0: PUSH2 0x2dd5
00002dd3: JUMPI
00002dd4: INVALID
00002dd5: JUMPDEST
00002dd6: EQ
00002dd7: PUSH2 0x2de5
00002dda: JUMPI
00002ddb: PUSH2 0x0a91
00002dde: DUP3
00002ddf: PUSH1 0x54
00002de1: PUSH2 0x3196
00002de4: JUMP
00002de5: JUMPDEST
00002de6: PUSH1 0x02
00002de8: DUP6
00002de9: ADD
00002dea: SLOAD
00002deb: PUSH1 0xe0
00002ded: DUP5
00002dee: ADD
00002def: MLOAD
00002df0: PUSH1 0x06
00002df2: DUP8
00002df3: ADD
00002df4: SLOAD
00002df5: PUSH1 0x40
00002df7: DUP1
00002df8: MLOAD
00002df9: PUSH1 0xe2
00002dfb: PUSH1 0x02
00002dfd: EXP
00002dfe: PUSH4 0x3b4ad68f
00002e03: MUL
00002e04: DUP2
00002e05: MSTORE
00002e06: PUSH1 0x01
00002e08: PUSH1 0xa0
00002e0a: PUSH1 0x02
00002e0c: EXP
00002e0d: SUB
00002e0e: DUP14
00002e0f: DUP2
00002e10: AND
00002e11: PUSH1 0x04
00002e13: DUP4
00002e14: ADD
00002e15: MSTORE
00002e16: PUSH1 0x24
00002e18: DUP3
00002e19: ADD
00002e1a: SWAP5
00002e1b: SWAP1
00002e1c: SWAP5
00002e1d: MSTORE
00002e1e: PUSH1 0x44
00002e20: DUP2
00002e21: ADD
00002e22: SWAP3
00002e23: SWAP1
00002e24: SWAP3
00002e25: MSTORE
00002e26: DUP1
00002e27: MLOAD
00002e28: SWAP3
00002e29: SWAP1
00002e2a: SWAP4
00002e2b: AND
00002e2c: SWAP3
00002e2d: PUSH4 0xed2b5a3c
00002e32: SWAP3
00002e33: PUSH1 0x64
00002e35: DUP1
00002e36: DUP5
00002e37: ADD
00002e38: SWAP4
00002e39: DUP3
00002e3a: SWAP1
00002e3b: SUB
00002e3c: ADD
00002e3d: DUP2
00002e3e: PUSH1 0x00
00002e40: DUP8
00002e41: DUP1
00002e42: EXTCODESIZE
00002e43: ISZERO
00002e44: DUP1
00002e45: ISZERO
00002e46: PUSH2 0x2e4e
00002e49: JUMPI
00002e4a: PUSH1 0x00
00002e4c: DUP1
00002e4d: REVERT
00002e4e: JUMPDEST
00002e4f: POP
00002e50: GAS
00002e51: CALL
00002e52: ISZERO
00002e53: DUP1
00002e54: ISZERO
00002e55: PUSH2 0x2e62
00002e58: JUMPI
00002e59: RETURNDATASIZE
00002e5a: PUSH1 0x00
00002e5c: DUP1
00002e5d: RETURNDATACOPY
00002e5e: RETURNDATASIZE
00002e5f: PUSH1 0x00
00002e61: REVERT
00002e62: JUMPDEST
00002e63: POP
00002e64: POP
00002e65: POP
00002e66: POP
00002e67: PUSH1 0x40
00002e69: MLOAD
00002e6a: RETURNDATASIZE
00002e6b: PUSH1 0x40
00002e6d: DUP2
00002e6e: LT
00002e6f: ISZERO
00002e70: PUSH2 0x2e78
00002e73: JUMPI
00002e74: PUSH1 0x00
00002e76: DUP1
00002e77: REVERT
00002e78: JUMPDEST
00002e79: POP
00002e7a: DUP1
00002e7b: MLOAD
00002e7c: PUSH1 0x20
00002e7e: SWAP1
00002e7f: SWAP2
00002e80: ADD
00002e81: MLOAD
00002e82: PUSH2 0x0140
00002e85: DUP6
00002e86: ADD
00002e87: MSTORE
00002e88: SWAP1
00002e89: POP
00002e8a: DUP1
00002e8b: ISZERO
00002e8c: PUSH2 0x2e9a
00002e8f: JUMPI
00002e90: PUSH2 0x0a91
00002e93: PUSH1 0x55
00002e95: DUP3
00002e96: PUSH2 0x3751
00002e99: JUMP
00002e9a: JUMPDEST
00002e9b: PUSH2 0x2ea9
00002e9e: DUP9
00002e9f: CALLER
00002ea0: DUP6
00002ea1: PUSH1 0x00
00002ea3: ADD
00002ea4: MLOAD
00002ea5: PUSH2 0x32d4
00002ea8: JUMP
00002ea9: JUMPDEST
00002eaa: SWAP2
00002eab: POP
00002eac: PUSH1 0x00
00002eae: DUP3
00002eaf: PUSH1 0x19
00002eb1: DUP2
00002eb2: GT
00002eb3: ISZERO
00002eb4: PUSH2 0x2eb9
00002eb7: JUMPI
00002eb8: INVALID
00002eb9: JUMPDEST
00002eba: EQ
00002ebb: PUSH2 0x2ec9
00002ebe: JUMPI
00002ebf: PUSH2 0x0a91
00002ec2: DUP3
00002ec3: PUSH1 0x5a
00002ec5: PUSH2 0x3196
00002ec8: JUMP
00002ec9: JUMPDEST
00002eca: PUSH2 0x2ed1
00002ecd: PUSH2 0x3006
00002ed0: JUMP
00002ed1: JUMPDEST
00002ed2: DUP6
00002ed3: PUSH1 0x01
00002ed5: ADD
00002ed6: DUP2
00002ed7: SWAP1
00002ed8: SSTORE
00002ed9: POP
00002eda: DUP3
00002edb: PUSH1 0xa0
00002edd: ADD
00002ede: MLOAD
00002edf: DUP6
00002ee0: PUSH1 0x03
00002ee2: ADD
00002ee3: DUP2
00002ee4: SWAP1
00002ee5: SSTORE
00002ee6: POP
00002ee7: DUP3
00002ee8: PUSH2 0x0100
00002eeb: ADD
00002eec: MLOAD
00002eed: DUP6
00002eee: PUSH1 0x04
00002ef0: ADD
00002ef1: DUP2
00002ef2: SWAP1
00002ef3: SSTORE
00002ef4: POP
00002ef5: DUP3
00002ef6: PUSH1 0x40
00002ef8: ADD
00002ef9: MLOAD
00002efa: DUP6
00002efb: PUSH1 0x05
00002efd: ADD
00002efe: DUP2
00002eff: SWAP1
00002f00: SSTORE
00002f01: POP
00002f02: DUP3
00002f03: PUSH2 0x0140
00002f06: ADD
00002f07: MLOAD
00002f08: DUP6
00002f09: PUSH1 0x07
00002f0b: ADD
00002f0c: DUP2
00002f0d: SWAP1
00002f0e: SSTORE
00002f0f: POP
00002f10: DUP3
00002f11: PUSH2 0x0120
00002f14: ADD
00002f15: MLOAD
00002f16: DUP6
00002f17: PUSH1 0x08
00002f19: ADD
00002f1a: DUP2
00002f1b: SWAP1
00002f1c: SSTORE
00002f1d: POP
00002f1e: DUP4
00002f1f: PUSH1 0x00
00002f21: ADD
00002f22: SLOAD
00002f23: DUP4
00002f24: PUSH1 0x20
00002f26: ADD
00002f27: DUP2
00002f28: DUP2
00002f29: MSTORE
00002f2a: POP
00002f2b: POP
00002f2c: DUP3
00002f2d: PUSH1 0x80
00002f2f: ADD
00002f30: MLOAD
00002f31: DUP5
00002f32: PUSH1 0x00
00002f34: ADD
00002f35: DUP2
00002f36: SWAP1
00002f37: SSTORE
00002f38: POP
00002f39: DUP3
00002f3a: PUSH1 0x40
00002f3c: ADD
00002f3d: MLOAD
00002f3e: DUP5
00002f3f: PUSH1 0x01
00002f41: ADD
00002f42: DUP2
00002f43: SWAP1
00002f44: SSTORE
00002f45: POP
00002f46: PUSH32 0x56559a17e3aa8ea4b05036eaf31aeaf9fb71fc1b8865b6389647639940bed030
00002f67: CALLER
00002f68: DUP10
00002f69: DUP6
00002f6a: PUSH1 0x00
00002f6c: ADD
00002f6d: MLOAD
00002f6e: DUP7
00002f6f: PUSH1 0x20
00002f71: ADD
00002f72: MLOAD
00002f73: DUP8
00002f74: PUSH1 0x80
00002f76: ADD
00002f77: MLOAD
00002f78: PUSH1 0x40
00002f7a: MLOAD
00002f7b: DUP1
00002f7c: DUP7
00002f7d: PUSH1 0x01
00002f7f: PUSH1 0xa0
00002f81: PUSH1 0x02
00002f83: EXP
00002f84: SUB
00002f85: AND
00002f86: PUSH1 0x01
00002f88: PUSH1 0xa0
00002f8a: PUSH1 0x02
00002f8c: EXP
00002f8d: SUB
00002f8e: AND
00002f8f: DUP2
00002f90: MSTORE
00002f91: PUSH1 0x20
00002f93: ADD
00002f94: DUP6
00002f95: PUSH1 0x01
00002f97: PUSH1 0xa0
00002f99: PUSH1 0x02
00002f9b: EXP
00002f9c: SUB
00002f9d: AND
00002f9e: PUSH1 0x01
00002fa0: PUSH1 0xa0
00002fa2: PUSH1 0x02
00002fa4: EXP
00002fa5: SUB
00002fa6: AND
00002fa7: DUP2
00002fa8: MSTORE
00002fa9: PUSH1 0x20
00002fab: ADD
00002fac: DUP5
00002fad: DUP2
00002fae: MSTORE
00002faf: PUSH1 0x20
00002fb1: ADD
00002fb2: DUP4
00002fb3: DUP2
00002fb4: MSTORE
00002fb5: PUSH1 0x20
00002fb7: ADD
00002fb8: DUP3
00002fb9: DUP2
00002fba: MSTORE
00002fbb: PUSH1 0x20
00002fbd: ADD
00002fbe: SWAP6
00002fbf: POP
00002fc0: POP
00002fc1: POP
00002fc2: POP
00002fc3: POP
00002fc4: POP
00002fc5: PUSH1 0x40
00002fc7: MLOAD
00002fc8: DUP1
00002fc9: SWAP2
00002fca: SUB
00002fcb: SWAP1
00002fcc: LOG1
00002fcd: PUSH1 0x00
00002fcf: PUSH2 0x0f7a
00002fd2: JUMP
00002fd3: JUMPDEST
00002fd4: PUSH1 0x01
00002fd6: SLOAD
00002fd7: PUSH1 0x01
00002fd9: PUSH1 0xa0
00002fdb: PUSH1 0x02
00002fdd: EXP
00002fde: SUB
00002fdf: AND
00002fe0: DUP2
00002fe1: JUMP
00002fe2: JUMPDEST
00002fe3: PUSH1 0x04
00002fe5: PUSH1 0x20
00002fe7: SWAP1
00002fe8: DUP2
00002fe9: MSTORE
00002fea: PUSH1 0x00
00002fec: SWAP3
00002fed: DUP4
00002fee: MSTORE
00002fef: PUSH1 0x40
00002ff1: DUP1
00002ff2: DUP5
00002ff3: KECCAK256
00002ff4: SWAP1
00002ff5: SWAP2
00002ff6: MSTORE
00002ff7: SWAP1
00002ff8: DUP3
00002ff9: MSTORE
00002ffa: SWAP1
00002ffb: KECCAK256
00002ffc: DUP1
00002ffd: SLOAD
00002ffe: PUSH1 0x01
00003000: SWAP1
00003001: SWAP2
00003002: ADD
00003003: SLOAD
00003004: DUP3
00003005: JUMP
00003006: JUMPDEST
00003007: NUMBER
00003008: SWAP1
00003009: JUMP
0000300a: JUMPDEST
0000300b: PUSH1 0x00
0000300d: DUP1
0000300e: PUSH1 0x00
00003010: DUP1
00003011: PUSH1 0x00
00003013: PUSH2 0x301a
00003016: PUSH2 0x47b0
00003019: JUMP
0000301a: JUMPDEST
0000301b: PUSH1 0x00
0000301d: PUSH2 0x3024
00003020: PUSH2 0x47b0
00003023: JUMP
00003024: JUMPDEST
00003025: PUSH1 0x00
00003027: PUSH2 0x302e
0000302a: PUSH2 0x47b0
0000302d: JUMP
0000302e: JUMPDEST
0000302f: PUSH2 0x3038
00003032: DUP12
00003033: DUP14
00003034: PUSH2 0x372b
00003037: JUMP
00003038: JUMPDEST
00003039: SWAP1
0000303a: SWAP9
0000303b: POP
0000303c: SWAP7
0000303d: POP
0000303e: PUSH1 0x00
00003040: DUP9
00003041: PUSH1 0x19
00003043: DUP2
00003044: GT
00003045: ISZERO
00003046: PUSH2 0x304b
00003049: JUMPI
0000304a: INVALID
0000304b: JUMPDEST
0000304c: EQ
0000304d: PUSH2 0x305e
00003050: JUMPI
00003051: SWAP7
00003052: SWAP9
00003053: POP
00003054: PUSH1 0x00
00003056: SWAP8
00003057: POP
00003058: DUP9
00003059: SWAP7
0000305a: PUSH2 0x3124
0000305d: JUMP
0000305e: JUMPDEST
0000305f: PUSH2 0x3077
00003062: PUSH1 0x20
00003064: PUSH1 0x40
00003066: MLOAD
00003067: SWAP1
00003068: DUP2
00003069: ADD
0000306a: PUSH1 0x40
0000306c: MSTORE
0000306d: DUP1
0000306e: DUP16
0000306f: DUP2
00003070: MSTORE
00003071: POP
00003072: DUP9
00003073: PUSH2 0x44ee
00003076: JUMP
00003077: JUMPDEST
00003078: SWAP1
00003079: SWAP7
0000307a: POP
0000307b: SWAP5
0000307c: POP
0000307d: PUSH1 0x00
0000307f: DUP7
00003080: PUSH1 0x19
00003082: DUP2
00003083: GT
00003084: ISZERO
00003085: PUSH2 0x308a
00003088: JUMPI
00003089: INVALID
0000308a: JUMPDEST
0000308b: EQ
0000308c: PUSH2 0x309d
0000308f: JUMPI
00003090: SWAP5
00003091: SWAP9
00003092: POP
00003093: PUSH1 0x00
00003095: SWAP8
00003096: POP
00003097: DUP9
00003098: SWAP5
00003099: PUSH2 0x3124
0000309c: JUMP
0000309d: JUMPDEST
0000309e: PUSH2 0x30be
000030a1: DUP6
000030a2: PUSH1 0x20
000030a4: PUSH1 0x40
000030a6: MLOAD
000030a7: SWAP1
000030a8: DUP2
000030a9: ADD
000030aa: PUSH1 0x40
000030ac: MSTORE
000030ad: DUP1
000030ae: PUSH8 0x0de0b6b3a7640000
000030b7: DUP2
000030b8: MSTORE
000030b9: POP
000030ba: PUSH2 0x3f1f
000030bd: JUMP
000030be: JUMPDEST
000030bf: SWAP1
000030c0: SWAP5
000030c1: POP
000030c2: SWAP3
000030c3: POP
000030c4: PUSH1 0x00
000030c6: DUP5
000030c7: PUSH1 0x19
000030c9: DUP2
000030ca: GT
000030cb: ISZERO
000030cc: PUSH2 0x30d1
000030cf: JUMPI
000030d0: INVALID
000030d1: JUMPDEST
000030d2: EQ
000030d3: PUSH2 0x30e4
000030d6: JUMPI
000030d7: SWAP3
000030d8: SWAP9
000030d9: POP
000030da: PUSH1 0x00
000030dc: SWAP8
000030dd: POP
000030de: DUP9
000030df: SWAP3
000030e0: PUSH2 0x3124
000030e3: JUMP
000030e4: JUMPDEST
000030e5: PUSH2 0x30ee
000030e8: DUP4
000030e9: DUP16
000030ea: PUSH2 0x44ee
000030ed: JUMP
000030ee: JUMPDEST
000030ef: SWAP1
000030f0: SWAP3
000030f1: POP
000030f2: SWAP1
000030f3: POP
000030f4: PUSH1 0x00
000030f6: DUP3
000030f7: PUSH1 0x19
000030f9: DUP2
000030fa: GT
000030fb: ISZERO
000030fc: PUSH2 0x3101
000030ff: JUMPI
00003100: INVALID
00003101: JUMPDEST
00003102: EQ
00003103: PUSH2 0x3114
00003106: JUMPI
00003107: SWAP1
00003108: SWAP9
00003109: POP
0000310a: PUSH1 0x00
0000310c: SWAP8
0000310d: POP
0000310e: DUP9
0000310f: SWAP1
00003110: PUSH2 0x3124
00003113: JUMP
00003114: JUMPDEST
00003115: PUSH1 0x00
00003117: PUSH2 0x311f
0000311a: DUP3
0000311b: PUSH2 0x3898
0000311e: JUMP
0000311f: JUMPDEST
00003120: SWAP10
00003121: POP
00003122: SWAP10
00003123: POP
00003124: JUMPDEST
00003125: POP
00003126: POP
00003127: POP
00003128: POP
00003129: POP
0000312a: POP
0000312b: POP
0000312c: POP
0000312d: SWAP5
0000312e: POP
0000312f: SWAP5
00003130: SWAP3
00003131: POP
00003132: POP
00003133: POP
00003134: JUMP
00003135: JUMPDEST
00003136: PUSH1 0x00
00003138: DUP1
00003139: DUP1
0000313a: DUP1
0000313b: DUP7
0000313c: ISZERO
0000313d: ISZERO
0000313e: PUSH2 0x314d
00003141: JUMPI
00003142: PUSH1 0x00
00003144: SWAP4
00003145: POP
00003146: DUP4
00003147: SWAP3
00003148: POP
00003149: PUSH2 0x318c
0000314c: JUMP
0000314d: JUMPDEST
0000314e: PUSH2 0x3157
00003151: DUP8
00003152: DUP7
00003153: PUSH2 0x4558
00003156: JUMP
00003157: JUMPDEST
00003158: SWAP1
00003159: SWAP3
0000315a: POP
0000315b: SWAP1
0000315c: POP
0000315d: PUSH1 0x00
0000315f: DUP3
00003160: PUSH1 0x19
00003162: DUP2
00003163: GT
00003164: ISZERO
00003165: PUSH2 0x316a
00003168: JUMPI
00003169: INVALID
0000316a: JUMPDEST
0000316b: EQ
0000316c: PUSH2 0x317d
0000316f: JUMPI
00003170: SWAP1
00003171: SWAP3
00003172: POP
00003173: PUSH1 0x00
00003175: SWAP2
00003176: POP
00003177: DUP3
00003178: SWAP1
00003179: PUSH2 0x318c
0000317c: JUMP
0000317d: JUMPDEST
0000317e: PUSH2 0x3187
00003181: DUP2
00003182: DUP8
00003183: PUSH2 0x459e
00003186: JUMP
00003187: JUMPDEST
00003188: SWAP4
00003189: POP
0000318a: SWAP4
0000318b: POP
0000318c: JUMPDEST
0000318d: POP
0000318e: POP
0000318f: SWAP4
00003190: POP
00003191: SWAP4
00003192: SWAP2
00003193: POP
00003194: POP
00003195: JUMP
00003196: JUMPDEST
00003197: PUSH1 0x00
00003199: PUSH32 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0
000031ba: DUP4
000031bb: PUSH1 0x19
000031bd: DUP2
000031be: GT
000031bf: ISZERO
000031c0: PUSH2 0x31c5
000031c3: JUMPI
000031c4: INVALID
000031c5: JUMPDEST
000031c6: DUP4
000031c7: PUSH1 0x5b
000031c9: DUP2
000031ca: GT
000031cb: ISZERO
000031cc: PUSH2 0x31d1
000031cf: JUMPI
000031d0: INVALID
000031d1: JUMPDEST
000031d2: PUSH1 0x40
000031d4: DUP1
000031d5: MLOAD
000031d6: SWAP3
000031d7: DUP4
000031d8: MSTORE
000031d9: PUSH1 0x20
000031db: DUP4
000031dc: ADD
000031dd: SWAP2
000031de: SWAP1
000031df: SWAP2
000031e0: MSTORE
000031e1: PUSH1 0x00
000031e3: DUP3
000031e4: DUP3
000031e5: ADD
000031e6: MSTORE
000031e7: MLOAD
000031e8: SWAP1
000031e9: DUP2
000031ea: SWAP1
000031eb: SUB
000031ec: PUSH1 0x60
000031ee: ADD
000031ef: SWAP1
000031f0: LOG1
000031f1: DUP3
000031f2: PUSH1 0x19
000031f4: DUP2
000031f5: GT
000031f6: ISZERO
000031f7: PUSH2 0x1033
000031fa: JUMPI
000031fb: INVALID
000031fc: JUMPDEST
000031fd: PUSH1 0x40
000031ff: DUP1
00003200: MLOAD
00003201: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00003222: DUP2
00003223: MSTORE
00003224: ADDRESS
00003225: PUSH1 0x04
00003227: DUP3
00003228: ADD
00003229: MSTORE
0000322a: SWAP1
0000322b: MLOAD
0000322c: PUSH1 0x00
0000322e: SWAP2
0000322f: DUP4
00003230: SWAP2
00003231: PUSH1 0x01
00003233: PUSH1 0xa0
00003235: PUSH1 0x02
00003237: EXP
00003238: SUB
00003239: DUP4
0000323a: AND
0000323b: SWAP2
0000323c: PUSH4 0x70a08231
00003241: SWAP2
00003242: PUSH1 0x24
00003244: DUP1
00003245: DUP4
00003246: ADD
00003247: SWAP3
00003248: PUSH1 0x20
0000324a: SWAP3
0000324b: SWAP2
0000324c: SWAP1
0000324d: DUP3
0000324e: SWAP1
0000324f: SUB
00003250: ADD
00003251: DUP2
00003252: DUP9
00003253: DUP8
00003254: DUP1
00003255: EXTCODESIZE
00003256: ISZERO
00003257: DUP1
00003258: ISZERO
00003259: PUSH2 0x3261
0000325c: JUMPI
0000325d: PUSH1 0x00
0000325f: DUP1
00003260: REVERT
00003261: JUMPDEST
00003262: POP
00003263: GAS
00003264: CALL
00003265: ISZERO
00003266: DUP1
00003267: ISZERO
00003268: PUSH2 0x3275
0000326b: JUMPI
0000326c: RETURNDATASIZE
0000326d: PUSH1 0x00
0000326f: DUP1
00003270: RETURNDATACOPY
00003271: RETURNDATASIZE
00003272: PUSH1 0x00
00003274: REVERT
00003275: JUMPDEST
00003276: POP
00003277: POP
00003278: POP
00003279: POP
0000327a: PUSH1 0x40
0000327c: MLOAD
0000327d: RETURNDATASIZE
0000327e: PUSH1 0x20
00003280: DUP2
00003281: LT
00003282: ISZERO
00003283: PUSH2 0x328b
00003286: JUMPI
00003287: PUSH1 0x00
00003289: DUP1
0000328a: REVERT
0000328b: JUMPDEST
0000328c: POP
0000328d: MLOAD
0000328e: SWAP4
0000328f: SWAP3
00003290: POP
00003291: POP
00003292: POP
00003293: JUMP
00003294: JUMPDEST
00003295: PUSH1 0x00
00003297: DUP1
00003298: PUSH1 0x00
0000329a: DUP1
0000329b: PUSH2 0x32a4
0000329e: DUP8
0000329f: DUP8
000032a0: PUSH2 0x347e
000032a3: JUMP
000032a4: JUMPDEST
000032a5: SWAP1
000032a6: SWAP3
000032a7: POP
000032a8: SWAP1
000032a9: POP
000032aa: PUSH1 0x00
000032ac: DUP3
000032ad: PUSH1 0x19
000032af: DUP2
000032b0: GT
000032b1: ISZERO
000032b2: PUSH2 0x32b7
000032b5: JUMPI
000032b6: INVALID
000032b7: JUMPDEST
000032b8: EQ
000032b9: PUSH2 0x32ca
000032bc: JUMPI
000032bd: SWAP1
000032be: SWAP3
000032bf: POP
000032c0: PUSH1 0x00
000032c2: SWAP2
000032c3: POP
000032c4: DUP3
000032c5: SWAP1
000032c6: PUSH2 0x318c
000032c9: JUMP
000032ca: JUMPDEST
000032cb: PUSH2 0x3187
000032ce: DUP2
000032cf: DUP7
000032d0: PUSH2 0x372b
000032d3: JUMP
000032d4: JUMPDEST
000032d5: PUSH1 0x00
000032d7: DUP1
000032d8: PUSH1 0x00
000032da: DUP6
000032db: SWAP2
000032dc: POP
000032dd: DUP2
000032de: PUSH1 0x01
000032e0: PUSH1 0xa0
000032e2: PUSH1 0x02
000032e4: EXP
000032e5: SUB
000032e6: AND
000032e7: PUSH4 0xa9059cbb
000032ec: DUP7
000032ed: DUP7
000032ee: PUSH1 0x40
000032f0: MLOAD
000032f1: DUP4
000032f2: PUSH4 0xffffffff
000032f7: AND
000032f8: PUSH1 0xe0
000032fa: PUSH1 0x02
000032fc: EXP
000032fd: MUL
000032fe: DUP2
000032ff: MSTORE
00003300: PUSH1 0x04
00003302: ADD
00003303: DUP1
00003304: DUP4
00003305: PUSH1 0x01
00003307: PUSH1 0xa0
00003309: PUSH1 0x02
0000330b: EXP
0000330c: SUB
0000330d: AND
0000330e: PUSH1 0x01
00003310: PUSH1 0xa0
00003312: PUSH1 0x02
00003314: EXP
00003315: SUB
00003316: AND
00003317: DUP2
00003318: MSTORE
00003319: PUSH1 0x20
0000331b: ADD
0000331c: DUP3
0000331d: DUP2
0000331e: MSTORE
0000331f: PUSH1 0x20
00003321: ADD
00003322: SWAP3
00003323: POP
00003324: POP
00003325: POP
00003326: PUSH1 0x00
00003328: PUSH1 0x40
0000332a: MLOAD
0000332b: DUP1
0000332c: DUP4
0000332d: SUB
0000332e: DUP2
0000332f: PUSH1 0x00
00003331: DUP8
00003332: DUP1
00003333: EXTCODESIZE
00003334: ISZERO
00003335: DUP1
00003336: ISZERO
00003337: PUSH2 0x333f
0000333a: JUMPI
0000333b: PUSH1 0x00
0000333d: DUP1
0000333e: REVERT
0000333f: JUMPDEST
00003340: POP
00003341: GAS
00003342: CALL
00003343: ISZERO
00003344: DUP1
00003345: ISZERO
00003346: PUSH2 0x3353
00003349: JUMPI
0000334a: RETURNDATASIZE
0000334b: PUSH1 0x00
0000334d: DUP1
0000334e: RETURNDATACOPY
0000334f: RETURNDATASIZE
00003350: PUSH1 0x00
00003352: REVERT
00003353: JUMPDEST
00003354: POP
00003355: POP
00003356: POP
00003357: POP
00003358: RETURNDATASIZE
00003359: PUSH1 0x00
0000335b: DUP2
0000335c: EQ
0000335d: PUSH2 0x336d
00003360: JUMPI
00003361: PUSH1 0x20
00003363: DUP2
00003364: EQ
00003365: PUSH2 0x3377
00003368: JUMPI
00003369: PUSH1 0x00
0000336b: DUP1
0000336c: REVERT
0000336d: JUMPDEST
0000336e: PUSH1 0x00
00003370: NOT
00003371: SWAP2
00003372: POP
00003373: PUSH2 0x3383
00003376: JUMP
00003377: JUMPDEST
00003378: PUSH1 0x20
0000337a: PUSH1 0x00
0000337c: DUP1
0000337d: RETURNDATACOPY
0000337e: PUSH1 0x00
00003380: MLOAD
00003381: SWAP2
00003382: POP
00003383: JUMPDEST
00003384: POP
00003385: DUP1
00003386: ISZERO
00003387: ISZERO
00003388: PUSH2 0x3394
0000338b: JUMPI
0000338c: PUSH1 0x0e
0000338e: SWAP3
0000338f: POP
00003390: PUSH2 0x3399
00003393: JUMP
00003394: JUMPDEST
00003395: PUSH1 0x00
00003397: SWAP3
00003398: POP
00003399: JUMPDEST
0000339a: POP
0000339b: POP
0000339c: SWAP4
0000339d: SWAP3
0000339e: POP
0000339f: POP
000033a0: POP
000033a1: JUMP
000033a2: JUMPDEST
000033a3: PUSH1 0x00
000033a5: DUP1
000033a6: PUSH1 0x00
000033a8: PUSH2 0x33af
000033ab: PUSH2 0x47b0
000033ae: JUMP
000033af: JUMPDEST
000033b0: PUSH1 0x00
000033b2: PUSH2 0x33b9
000033b5: PUSH2 0x47b0
000033b8: JUMP
000033b9: JUMPDEST
000033ba: PUSH1 0x40
000033bc: DUP1
000033bd: MLOAD
000033be: PUSH1 0x20
000033c0: DUP2
000033c1: ADD
000033c2: SWAP1
000033c3: SWAP2
000033c4: MSTORE
000033c5: PUSH1 0x08
000033c7: SLOAD
000033c8: DUP2
000033c9: MSTORE
000033ca: PUSH2 0x33d2
000033cd: SWAP1
000033ce: PUSH2 0x3637
000033d1: JUMP
000033d2: JUMPDEST
000033d3: ISZERO
000033d4: PUSH2 0x33e3
000033d7: JUMPI
000033d8: PUSH1 0x00
000033da: DUP8
000033db: SWAP6
000033dc: POP
000033dd: SWAP6
000033de: POP
000033df: PUSH2 0x3475
000033e2: JUMP
000033e3: JUMPDEST
000033e4: PUSH1 0x40
000033e6: DUP1
000033e7: MLOAD
000033e8: PUSH1 0x20
000033ea: DUP2
000033eb: DUP2
000033ec: ADD
000033ed: DUP4
000033ee: MSTORE
000033ef: PUSH1 0x08
000033f1: SLOAD
000033f2: DUP3
000033f3: MSTORE
000033f4: DUP3
000033f5: MLOAD
000033f6: SWAP1
000033f7: DUP2
000033f8: ADD
000033f9: SWAP1
000033fa: SWAP3
000033fb: MSTORE
000033fc: PUSH8 0x0de0b6b3a7640000
00003405: DUP3
00003406: MSTORE
00003407: PUSH2 0x340f
0000340a: SWAP2
0000340b: PUSH2 0x3f1f
0000340e: JUMP
0000340f: JUMPDEST
00003410: SWAP1
00003411: SWAP5
00003412: POP
00003413: SWAP3
00003414: POP
00003415: PUSH1 0x00
00003417: DUP5
00003418: PUSH1 0x19
0000341a: DUP2
0000341b: GT
0000341c: ISZERO
0000341d: PUSH2 0x3422
00003420: JUMPI
00003421: INVALID
00003422: JUMPDEST
00003423: EQ
00003424: PUSH2 0x3435
00003427: JUMPI
00003428: SWAP3
00003429: SWAP5
0000342a: POP
0000342b: PUSH1 0x00
0000342d: SWAP4
0000342e: POP
0000342f: DUP5
00003430: SWAP3
00003431: PUSH2 0x3475
00003434: JUMP
00003435: JUMPDEST
00003436: PUSH2 0x343f
00003439: DUP4
0000343a: DUP9
0000343b: PUSH2 0x44ee
0000343e: JUMP
0000343f: JUMPDEST
00003440: SWAP1
00003441: SWAP3
00003442: POP
00003443: SWAP1
00003444: POP
00003445: PUSH1 0x00
00003447: DUP3
00003448: PUSH1 0x19
0000344a: DUP2
0000344b: GT
0000344c: ISZERO
0000344d: PUSH2 0x3452
00003450: JUMPI
00003451: INVALID
00003452: JUMPDEST
00003453: EQ
00003454: PUSH2 0x3465
00003457: JUMPI
00003458: SWAP1
00003459: SWAP5
0000345a: POP
0000345b: PUSH1 0x00
0000345d: SWAP4
0000345e: POP
0000345f: DUP5
00003460: SWAP1
00003461: PUSH2 0x3475
00003464: JUMP
00003465: JUMPDEST
00003466: PUSH1 0x00
00003468: PUSH2 0x3470
0000346b: DUP3
0000346c: PUSH2 0x3898
0000346f: JUMP
00003470: JUMPDEST
00003471: SWAP6
00003472: POP
00003473: SWAP6
00003474: POP
00003475: JUMPDEST
00003476: POP
00003477: POP
00003478: POP
00003479: POP
0000347a: SWAP2
0000347b: POP
0000347c: SWAP2
0000347d: JUMP
0000347e: JUMPDEST
0000347f: PUSH1 0x00
00003481: DUP1
00003482: DUP4
00003483: DUP4
00003484: ADD
00003485: DUP5
00003486: DUP2
00003487: LT
00003488: PUSH2 0x3497
0000348b: JUMPI
0000348c: PUSH1 0x00
0000348e: DUP2
0000348f: SWAP3
00003490: POP
00003491: SWAP3
00003492: POP
00003493: PUSH2 0x34a0
00003496: JUMP
00003497: JUMPDEST
00003498: PUSH1 0x03
0000349a: SWAP3
0000349b: POP
0000349c: PUSH1 0x00
0000349e: SWAP2
0000349f: POP
000034a0: JUMPDEST
000034a1: POP
000034a2: SWAP3
000034a3: POP
000034a4: SWAP3
000034a5: SWAP1
000034a6: POP
000034a7: JUMP
000034a8: JUMPDEST
000034a9: PUSH1 0x00
000034ab: PUSH2 0x34b2
000034ae: PUSH2 0x47b0
000034b1: JUMP
000034b2: JUMPDEST
000034b3: PUSH2 0x34ba
000034b6: PUSH2 0x47b0
000034b9: JUMP
000034ba: JUMPDEST
000034bb: PUSH1 0x00
000034bd: DUP1
000034be: PUSH1 0x00
000034c0: PUSH2 0x34c7
000034c3: PUSH2 0x47b0
000034c6: JUMP
000034c7: JUMPDEST
000034c8: PUSH2 0x34cf
000034cb: PUSH2 0x47b0
000034ce: JUMP
000034cf: JUMPDEST
000034d0: PUSH2 0x34d7
000034d3: PUSH2 0x47b0
000034d6: JUMP
000034d7: JUMPDEST
000034d8: PUSH2 0x34e0
000034db: DUP11
000034dc: PUSH2 0x38a7
000034df: JUMP
000034e0: JUMPDEST
000034e1: SWAP2
000034e2: SWAP8
000034e3: POP
000034e4: SWAP6
000034e5: POP
000034e6: SWAP4
000034e7: POP
000034e8: PUSH1 0x00
000034ea: DUP7
000034eb: PUSH1 0x19
000034ed: DUP2
000034ee: GT
000034ef: ISZERO
000034f0: PUSH2 0x34f5
000034f3: JUMPI
000034f4: INVALID
000034f5: JUMPDEST
000034f6: EQ
000034f7: PUSH2 0x3525
000034fa: JUMPI
000034fb: PUSH1 0x40
000034fd: DUP1
000034fe: MLOAD
000034ff: PUSH1 0x20
00003501: DUP2
00003502: DUP2
00003503: ADD
00003504: DUP4
00003505: MSTORE
00003506: PUSH1 0x00
00003508: DUP1
00003509: DUP4
0000350a: MSTORE
0000350b: DUP4
0000350c: MLOAD
0000350d: SWAP2
0000350e: DUP3
0000350f: ADD
00003510: SWAP1
00003511: SWAP4
00003512: MSTORE
00003513: SWAP2
00003514: DUP3
00003515: MSTORE
00003516: SWAP7
00003517: SWAP10
00003518: POP
00003519: SWAP6
0000351a: SWAP8
0000351b: POP
0000351c: SWAP5
0000351d: SWAP6
0000351e: POP
0000351f: DUP8
00003520: SWAP5
00003521: PUSH2 0x362a
00003524: JUMP
00003525: JUMPDEST
00003526: PUSH1 0x40
00003528: DUP1
00003529: MLOAD
0000352a: PUSH1 0x20
0000352c: DUP2
0000352d: DUP2
0000352e: ADD
0000352f: DUP4
00003530: MSTORE
00003531: DUP8
00003532: DUP3
00003533: MSTORE
00003534: DUP3
00003535: MLOAD
00003536: DUP1
00003537: DUP3
00003538: ADD
00003539: DUP5
0000353a: MSTORE
0000353b: PUSH1 0x07
0000353d: SLOAD
0000353e: DUP2
0000353f: MSTORE
00003540: DUP4
00003541: MLOAD
00003542: SWAP2
00003543: DUP3
00003544: ADD
00003545: SWAP1
00003546: SWAP4
00003547: MSTORE
00003548: DUP7
00003549: DUP2
0000354a: MSTORE
0000354b: SWAP1
0000354c: SWAP4
0000354d: POP
0000354e: PUSH2 0x3557
00003551: SWAP2
00003552: SWAP1
00003553: PUSH2 0x45cd
00003556: JUMP
00003557: JUMPDEST
00003558: SWAP1
00003559: SWAP7
0000355a: POP
0000355b: SWAP1
0000355c: POP
0000355d: PUSH1 0x00
0000355f: DUP7
00003560: PUSH1 0x19
00003562: DUP2
00003563: GT
00003564: ISZERO
00003565: PUSH2 0x356a
00003568: JUMPI
00003569: INVALID
0000356a: JUMPDEST
0000356b: EQ
0000356c: PUSH2 0x359a
0000356f: JUMPI
00003570: PUSH1 0x40
00003572: DUP1
00003573: MLOAD
00003574: PUSH1 0x20
00003576: DUP2
00003577: DUP2
00003578: ADD
00003579: DUP4
0000357a: MSTORE
0000357b: PUSH1 0x00
0000357d: DUP1
0000357e: DUP4
0000357f: MSTORE
00003580: DUP4
00003581: MLOAD
00003582: SWAP2
00003583: DUP3
00003584: ADD
00003585: SWAP1
00003586: SWAP4
00003587: MSTORE
00003588: SWAP2
00003589: DUP3
0000358a: MSTORE
0000358b: SWAP7
0000358c: SWAP10
0000358d: POP
0000358e: SWAP6
0000358f: SWAP8
00003590: POP
00003591: SWAP5
00003592: SWAP6
00003593: POP
00003594: DUP8
00003595: SWAP5
00003596: PUSH2 0x362a
00003599: JUMP
0000359a: JUMPDEST
0000359b: PUSH2 0x35a4
0000359e: DUP3
0000359f: DUP3
000035a0: PUSH2 0x3724
000035a3: JUMP
000035a4: JUMPDEST
000035a5: ISZERO
000035a6: PUSH2 0x35eb
000035a9: JUMPI
000035aa: PUSH2 0x35b3
000035ad: DUP2
000035ae: DUP4
000035af: PUSH2 0x46ba
000035b2: JUMP
000035b3: JUMPDEST
000035b4: SWAP1
000035b5: SWAP7
000035b6: POP
000035b7: SWAP3
000035b8: POP
000035b9: PUSH1 0x00
000035bb: DUP7
000035bc: PUSH1 0x19
000035be: DUP2
000035bf: GT
000035c0: ISZERO
000035c1: PUSH2 0x35c6
000035c4: JUMPI
000035c5: INVALID
000035c6: JUMPDEST
000035c7: EQ
000035c8: PUSH2 0x35cd
000035cb: JUMPI
000035cc: INVALID
000035cd: JUMPDEST
000035ce: PUSH1 0x40
000035d0: DUP1
000035d1: MLOAD
000035d2: PUSH1 0x20
000035d4: DUP2
000035d5: ADD
000035d6: SWAP1
000035d7: SWAP2
000035d8: MSTORE
000035d9: PUSH1 0x00
000035db: DUP1
000035dc: DUP3
000035dd: MSTORE
000035de: SWAP10
000035df: POP
000035e0: SWAP8
000035e1: POP
000035e2: SWAP2
000035e3: SWAP6
000035e4: POP
000035e5: DUP6
000035e6: SWAP2
000035e7: PUSH2 0x362a
000035ea: JUMP
000035eb: JUMPDEST
000035ec: PUSH2 0x35f5
000035ef: DUP3
000035f0: DUP3
000035f1: PUSH2 0x46ba
000035f4: JUMP
000035f5: JUMPDEST
000035f6: SWAP1
000035f7: SWAP7
000035f8: POP
000035f9: SWAP3
000035fa: POP
000035fb: PUSH1 0x00
000035fd: DUP7
000035fe: PUSH1 0x19
00003600: DUP2
00003601: GT
00003602: ISZERO
00003603: PUSH2 0x3608
00003606: JUMPI
00003607: INVALID
00003608: JUMPDEST
00003609: EQ
0000360a: PUSH2 0x360f
0000360d: JUMPI
0000360e: INVALID
0000360f: JUMPDEST
00003610: PUSH1 0x40
00003612: DUP1
00003613: MLOAD
00003614: PUSH1 0x20
00003616: DUP2
00003617: ADD
00003618: SWAP1
00003619: SWAP2
0000361a: MSTORE
0000361b: PUSH1 0x00
0000361d: DUP1
0000361e: DUP3
0000361f: MSTORE
00003620: SWAP10
00003621: POP
00003622: SWAP3
00003623: SWAP8
00003624: POP
00003625: SWAP2
00003626: SWAP6
00003627: POP
00003628: DUP7
00003629: SWAP2
0000362a: JUMPDEST
0000362b: POP
0000362c: POP
0000362d: POP
0000362e: POP
0000362f: POP
00003630: POP
00003631: SWAP2
00003632: SWAP4
00003633: SWAP1
00003634: SWAP3
00003635: POP
00003636: JUMP
00003637: JUMPDEST
00003638: MLOAD
00003639: ISZERO
0000363a: SWAP1
0000363b: JUMP
0000363c: JUMPDEST
0000363d: PUSH1 0x00
0000363f: PUSH2 0x3646
00003642: PUSH2 0x47b0
00003645: JUMP
00003646: JUMPDEST
00003647: PUSH1 0x00
00003649: PUSH2 0x3650
0000364c: PUSH2 0x47b0
0000364f: JUMP
00003650: JUMPDEST
00003651: PUSH2 0x3658
00003654: PUSH2 0x47b0
00003657: JUMP
00003658: JUMPDEST
00003659: PUSH2 0x3661
0000365c: DUP8
0000365d: PUSH2 0x37a8
00003660: JUMP
00003661: JUMPDEST
00003662: SWAP1
00003663: SWAP4
00003664: POP
00003665: SWAP2
00003666: POP
00003667: PUSH1 0x00
00003669: DUP4
0000366a: PUSH1 0x19
0000366c: DUP2
0000366d: GT
0000366e: ISZERO
0000366f: PUSH2 0x3674
00003672: JUMPI
00003673: INVALID
00003674: JUMPDEST
00003675: EQ
00003676: PUSH2 0x3695
00003679: JUMPI
0000367a: PUSH1 0x40
0000367c: DUP1
0000367d: MLOAD
0000367e: PUSH1 0x20
00003680: DUP2
00003681: ADD
00003682: SWAP1
00003683: SWAP2
00003684: MSTORE
00003685: PUSH1 0x00
00003687: DUP2
00003688: MSTORE
00003689: SWAP3
0000368a: SWAP5
0000368b: POP
0000368c: SWAP2
0000368d: SWAP3
0000368e: POP
0000368f: DUP4
00003690: SWAP2
00003691: PUSH2 0x371a
00003694: JUMP
00003695: JUMPDEST
00003696: PUSH2 0x369e
00003699: DUP3
0000369a: PUSH2 0x3637
0000369d: JUMP
0000369e: JUMPDEST
0000369f: ISZERO
000036a0: PUSH2 0x36bd
000036a3: JUMPI
000036a4: PUSH1 0x40
000036a6: DUP1
000036a7: MLOAD
000036a8: PUSH1 0x20
000036aa: DUP2
000036ab: ADD
000036ac: SWAP1
000036ad: SWAP2
000036ae: MSTORE
000036af: PUSH1 0x00
000036b1: DUP2
000036b2: MSTORE
000036b3: PUSH1 0x12
000036b5: SWAP6
000036b6: POP
000036b7: SWAP4
000036b8: POP
000036b9: PUSH2 0x371a
000036bc: JUMP
000036bd: JUMPDEST
000036be: PUSH1 0x40
000036c0: DUP1
000036c1: MLOAD
000036c2: PUSH1 0x20
000036c4: DUP2
000036c5: ADD
000036c6: SWAP1
000036c7: SWAP2
000036c8: MSTORE
000036c9: PUSH1 0x07
000036cb: SLOAD
000036cc: DUP2
000036cd: MSTORE
000036ce: PUSH2 0x36d7
000036d1: SWAP1
000036d2: DUP4
000036d3: PUSH2 0x45cd
000036d6: JUMP
000036d7: JUMPDEST
000036d8: SWAP1
000036d9: SWAP4
000036da: POP
000036db: SWAP1
000036dc: POP
000036dd: PUSH1 0x00
000036df: DUP4
000036e0: PUSH1 0x19
000036e2: DUP2
000036e3: GT
000036e4: ISZERO
000036e5: PUSH2 0x36ea
000036e8: JUMPI
000036e9: INVALID
000036ea: JUMPDEST
000036eb: EQ
000036ec: PUSH2 0x370b
000036ef: JUMPI
000036f0: PUSH1 0x40
000036f2: DUP1
000036f3: MLOAD
000036f4: PUSH1 0x20
000036f6: DUP2
000036f7: ADD
000036f8: SWAP1
000036f9: SWAP2
000036fa: MSTORE
000036fb: PUSH1 0x00
000036fd: DUP2
000036fe: MSTORE
000036ff: SWAP3
00003700: SWAP5
00003701: POP
00003702: SWAP2
00003703: SWAP3
00003704: POP
00003705: DUP4
00003706: SWAP2
00003707: PUSH2 0x371a
0000370a: JUMP
0000370b: JUMPDEST
0000370c: PUSH2 0x3715
0000370f: DUP2
00003710: DUP8
00003711: PUSH2 0x44ee
00003714: JUMP
00003715: JUMPDEST
00003716: SWAP5
00003717: POP
00003718: SWAP5
00003719: POP
0000371a: JUMPDEST
0000371b: POP
0000371c: POP
0000371d: POP
0000371e: SWAP3
0000371f: POP
00003720: SWAP3
00003721: SWAP1
00003722: POP
00003723: JUMP
00003724: JUMPDEST
00003725: MLOAD
00003726: SWAP1
00003727: MLOAD
00003728: LT
00003729: SWAP1
0000372a: JUMP
0000372b: JUMPDEST
0000372c: PUSH1 0x00
0000372e: DUP1
0000372f: DUP4
00003730: DUP4
00003731: GT
00003732: PUSH2 0x3742
00003735: JUMPI
00003736: POP
00003737: PUSH1 0x00
00003739: SWAP1
0000373a: POP
0000373b: DUP2
0000373c: DUP4
0000373d: SUB
0000373e: PUSH2 0x374a
00003741: JUMP
00003742: JUMPDEST
00003743: POP
00003744: PUSH1 0x04
00003746: SWAP1
00003747: POP
00003748: PUSH1 0x00
0000374a: JUMPDEST
0000374b: SWAP3
0000374c: POP
0000374d: SWAP3
0000374e: SWAP1
0000374f: POP
00003750: JUMP
00003751: JUMPDEST
00003752: PUSH1 0x00
00003754: PUSH32 0x45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0
00003775: PUSH1 0x01
00003777: DUP5
00003778: PUSH1 0x5b
0000377a: DUP2
0000377b: GT
0000377c: ISZERO
0000377d: PUSH2 0x3782
00003780: JUMPI
00003781: INVALID
00003782: JUMPDEST
00003783: PUSH1 0x40
00003785: DUP1
00003786: MLOAD
00003787: SWAP3
00003788: DUP4
00003789: MSTORE
0000378a: PUSH1 0x20
0000378c: DUP4
0000378d: ADD
0000378e: SWAP2
0000378f: SWAP1
00003790: SWAP2
00003791: MSTORE
00003792: DUP2
00003793: DUP2
00003794: ADD
00003795: DUP6
00003796: SWAP1
00003797: MSTORE
00003798: MLOAD
00003799: SWAP1
0000379a: DUP2
0000379b: SWAP1
0000379c: SUB
0000379d: PUSH1 0x60
0000379f: ADD
000037a0: SWAP1
000037a1: LOG1
000037a2: PUSH1 0x01
000037a4: PUSH2 0x1033
000037a7: JUMP
000037a8: JUMPDEST
000037a9: PUSH1 0x00
000037ab: PUSH2 0x37b2
000037ae: PUSH2 0x47b0
000037b1: JUMP
000037b2: JUMPDEST
000037b3: PUSH1 0x02
000037b5: SLOAD
000037b6: PUSH1 0x00
000037b8: SWAP1
000037b9: DUP2
000037ba: SWAP1
000037bb: PUSH1 0x01
000037bd: PUSH1 0xa0
000037bf: PUSH1 0x02
000037c1: EXP
000037c2: SUB
000037c3: AND
000037c4: ISZERO
000037c5: ISZERO
000037c6: PUSH2 0x37e3
000037c9: JUMPI
000037ca: PUSH1 0x40
000037cc: DUP1
000037cd: MLOAD
000037ce: PUSH1 0x20
000037d0: DUP2
000037d1: ADD
000037d2: SWAP1
000037d3: SWAP2
000037d4: MSTORE
000037d5: PUSH1 0x00
000037d7: DUP2
000037d8: MSTORE
000037d9: PUSH1 0x18
000037db: SWAP5
000037dc: POP
000037dd: SWAP3
000037de: POP
000037df: PUSH2 0x3891
000037e2: JUMP
000037e3: JUMPDEST
000037e4: PUSH1 0x02
000037e6: SLOAD
000037e7: PUSH1 0x40
000037e9: DUP1
000037ea: MLOAD
000037eb: PUSH32 0x5e9a523c00000000000000000000000000000000000000000000000000000000
0000380c: DUP2
0000380d: MSTORE
0000380e: PUSH1 0x01
00003810: PUSH1 0xa0
00003812: PUSH1 0x02
00003814: EXP
00003815: SUB
00003816: DUP9
00003817: DUP2
00003818: AND
00003819: PUSH1 0x04
0000381b: DUP4
0000381c: ADD
0000381d: MSTORE
0000381e: SWAP2
0000381f: MLOAD
00003820: SWAP2
00003821: SWAP1
00003822: SWAP3
00003823: AND
00003824: SWAP4
00003825: POP
00003826: DUP4
00003827: SWAP2
00003828: PUSH4 0x5e9a523c
0000382d: SWAP2
0000382e: PUSH1 0x24
00003830: DUP1
00003831: DUP4
00003832: ADD
00003833: SWAP3
00003834: PUSH1 0x20
00003836: SWAP3
00003837: SWAP2
00003838: SWAP1
00003839: DUP3
0000383a: SWAP1
0000383b: SUB
0000383c: ADD
0000383d: DUP2
0000383e: PUSH1 0x00
00003840: DUP8
00003841: DUP1
00003842: EXTCODESIZE
00003843: ISZERO
00003844: DUP1
00003845: ISZERO
00003846: PUSH2 0x384e
00003849: JUMPI
0000384a: PUSH1 0x00
0000384c: DUP1
0000384d: REVERT
0000384e: JUMPDEST
0000384f: POP
00003850: GAS
00003851: CALL
00003852: ISZERO
00003853: DUP1
00003854: ISZERO
00003855: PUSH2 0x3862
00003858: JUMPI
00003859: RETURNDATASIZE
0000385a: PUSH1 0x00
0000385c: DUP1
0000385d: RETURNDATACOPY
0000385e: RETURNDATASIZE
0000385f: PUSH1 0x00
00003861: REVERT
00003862: JUMPDEST
00003863: POP
00003864: POP
00003865: POP
00003866: POP
00003867: PUSH1 0x40
00003869: MLOAD
0000386a: RETURNDATASIZE
0000386b: PUSH1 0x20
0000386d: DUP2
0000386e: LT
0000386f: ISZERO
00003870: PUSH2 0x3878
00003873: JUMPI
00003874: PUSH1 0x00
00003876: DUP1
00003877: REVERT
00003878: JUMPDEST
00003879: POP
0000387a: MLOAD
0000387b: PUSH1 0x40
0000387d: DUP1
0000387e: MLOAD
0000387f: PUSH1 0x20
00003881: DUP2
00003882: ADD
00003883: SWAP1
00003884: SWAP2
00003885: MSTORE
00003886: DUP2
00003887: DUP2
00003888: MSTORE
00003889: PUSH1 0x00
0000388b: SWAP6
0000388c: POP
0000388d: SWAP4
0000388e: POP
0000388f: SWAP1
00003890: POP
00003891: JUMPDEST
00003892: POP
00003893: POP
00003894: SWAP2
00003895: POP
00003896: SWAP2
00003897: JUMP
00003898: JUMPDEST
00003899: MLOAD
0000389a: PUSH8 0x0de0b6b3a7640000
000038a3: SWAP1
000038a4: DIV
000038a5: SWAP1
000038a6: JUMP
000038a7: JUMPDEST
000038a8: PUSH1 0x00
000038aa: DUP1
000038ab: PUSH1 0x00
000038ad: PUSH2 0x38b4
000038b0: PUSH2 0x4a78
000038b3: JUMP
000038b4: JUMPDEST
000038b5: PUSH1 0x40
000038b7: DUP1
000038b8: MLOAD
000038b9: PUSH1 0x20
000038bb: DUP2
000038bc: DUP2
000038bd: ADD
000038be: DUP4
000038bf: MSTORE
000038c0: PUSH1 0x00
000038c2: DUP1
000038c3: DUP4
000038c4: MSTORE
000038c5: PUSH1 0xa0
000038c7: DUP6
000038c8: ADD
000038c9: SWAP3
000038ca: SWAP1
000038cb: SWAP3
000038cc: MSTORE
000038cd: DUP3
000038ce: MLOAD
000038cf: DUP1
000038d0: DUP3
000038d1: ADD
000038d2: SWAP1
000038d3: SWAP4
000038d4: MSTORE
000038d5: DUP2
000038d6: DUP4
000038d7: MSTORE
000038d8: PUSH2 0x0120
000038db: DUP5
000038dc: ADD
000038dd: SWAP3
000038de: SWAP1
000038df: SWAP3
000038e0: MSTORE
000038e1: PUSH1 0x06
000038e3: SLOAD
000038e4: SWAP2
000038e5: DUP4
000038e6: ADD
000038e7: SWAP2
000038e8: SWAP1
000038e9: SWAP2
000038ea: MSTORE
000038eb: DUP1
000038ec: DUP1
000038ed: DUP1
000038ee: DUP1
000038ef: JUMPDEST
000038f0: DUP6
000038f1: PUSH1 0x20
000038f3: ADD
000038f4: MLOAD
000038f5: DUP5
000038f6: LT
000038f7: ISZERO
000038f8: PUSH2 0x3b8a
000038fb: JUMPI
000038fc: PUSH1 0x06
000038fe: DUP1
000038ff: SLOAD
00003900: DUP6
00003901: SWAP1
00003902: DUP2
00003903: LT
00003904: PUSH2 0x3909
00003907: JUMPI
00003908: INVALID
00003909: JUMPDEST
0000390a: PUSH1 0x00
0000390c: SWAP2
0000390d: DUP3
0000390e: MSTORE
0000390f: PUSH1 0x20
00003911: DUP1
00003912: DUP4
00003913: KECCAK256
00003914: SWAP1
00003915: SWAP2
00003916: ADD
00003917: SLOAD
00003918: PUSH1 0x01
0000391a: PUSH1 0xa0
0000391c: PUSH1 0x02
0000391e: EXP
0000391f: SUB
00003920: SWAP1
00003921: DUP2
00003922: AND
00003923: DUP1
00003924: DUP11
00003925: MSTORE
00003926: DUP4
00003927: MSTORE
00003928: PUSH1 0x05
0000392a: DUP3
0000392b: MSTORE
0000392c: PUSH1 0x40
0000392e: DUP1
0000392f: DUP5
00003930: KECCAK256
00003931: DUP15
00003932: DUP4
00003933: AND
00003934: DUP1
00003935: DUP7
00003936: MSTORE
00003937: PUSH1 0x03
00003939: DUP6
0000393a: MSTORE
0000393b: DUP3
0000393c: DUP7
0000393d: KECCAK256
0000393e: DUP13
0000393f: MLOAD
00003940: DUP6
00003941: AND
00003942: DUP8
00003943: MSTORE
00003944: DUP6
00003945: MSTORE
00003946: DUP3
00003947: DUP7
00003948: KECCAK256
00003949: SWAP1
0000394a: DUP7
0000394b: MSTORE
0000394c: PUSH1 0x04
0000394e: DUP6
0000394f: MSTORE
00003950: DUP3
00003951: DUP7
00003952: KECCAK256
00003953: DUP13
00003954: MLOAD
00003955: SWAP1
00003956: SWAP5
00003957: AND
00003958: DUP7
00003959: MSTORE
0000395a: SWAP3
0000395b: SWAP1
0000395c: SWAP4
0000395d: MSTORE
0000395e: DUP4
0000395f: KECCAK256
00003960: DUP2
00003961: SLOAD
00003962: SWAP3
00003963: SWAP7
00003964: POP
00003965: SWAP1
00003966: SWAP5
00003967: POP
00003968: SWAP3
00003969: POP
0000396a: GT
0000396b: ISZERO
0000396c: PUSH2 0x3a70
0000396f: JUMPI
00003970: PUSH2 0x3989
00003973: DUP4
00003974: PUSH1 0x05
00003976: ADD
00003977: SLOAD
00003978: DUP5
00003979: PUSH1 0x04
0000397b: ADD
0000397c: SLOAD
0000397d: DUP6
0000397e: PUSH1 0x01
00003980: ADD
00003981: SLOAD
00003982: PUSH2 0x067d
00003985: PUSH2 0x3006
00003988: JUMP
00003989: JUMPDEST
0000398a: PUSH1 0x40
0000398c: DUP9
0000398d: ADD
0000398e: MSTORE
0000398f: SWAP5
00003990: POP
00003991: PUSH1 0x00
00003993: DUP6
00003994: PUSH1 0x19
00003996: DUP2
00003997: GT
00003998: ISZERO
00003999: PUSH2 0x399e
0000399c: JUMPI
0000399d: INVALID
0000399e: JUMPDEST
0000399f: EQ
000039a0: PUSH2 0x39b4
000039a3: JUMPI
000039a4: SWAP4
000039a5: SWAP8
000039a6: POP
000039a7: PUSH1 0x00
000039a9: SWAP7
000039aa: POP
000039ab: DUP7
000039ac: SWAP6
000039ad: POP
000039ae: DUP8
000039af: SWAP4
000039b0: PUSH2 0x362a
000039b3: JUMP
000039b4: JUMPDEST
000039b5: PUSH2 0x39cb
000039b8: DUP3
000039b9: PUSH1 0x00
000039bb: ADD
000039bc: SLOAD
000039bd: DUP4
000039be: PUSH1 0x01
000039c0: ADD
000039c1: SLOAD
000039c2: DUP9
000039c3: PUSH1 0x40
000039c5: ADD
000039c6: MLOAD
000039c7: PUSH2 0x3135
000039ca: JUMP
000039cb: JUMPDEST
000039cc: PUSH1 0x60
000039ce: DUP9
000039cf: ADD
000039d0: MSTORE
000039d1: SWAP5
000039d2: POP
000039d3: PUSH1 0x00
000039d5: DUP6
000039d6: PUSH1 0x19
000039d8: DUP2
000039d9: GT
000039da: ISZERO
000039db: PUSH2 0x39e0
000039de: JUMPI
000039df: INVALID
000039e0: JUMPDEST
000039e1: EQ
000039e2: PUSH2 0x39f6
000039e5: JUMPI
000039e6: SWAP4
000039e7: SWAP8
000039e8: POP
000039e9: PUSH1 0x00
000039eb: SWAP7
000039ec: POP
000039ed: DUP7
000039ee: SWAP6
000039ef: POP
000039f0: DUP8
000039f1: SWAP4
000039f2: PUSH2 0x362a
000039f5: JUMP
000039f6: JUMPDEST
000039f7: PUSH2 0x3a08
000039fa: DUP7
000039fb: PUSH1 0x00
000039fd: ADD
000039fe: MLOAD
000039ff: DUP8
00003a00: PUSH1 0x60
00003a02: ADD
00003a03: MLOAD
00003a04: PUSH2 0x445e
00003a07: JUMP
00003a08: JUMPDEST
00003a09: PUSH1 0x80
00003a0b: DUP9
00003a0c: ADD
00003a0d: MSTORE
00003a0e: SWAP5
00003a0f: POP
00003a10: PUSH1 0x00
00003a12: DUP6
00003a13: PUSH1 0x19
00003a15: DUP2
00003a16: GT
00003a17: ISZERO
00003a18: PUSH2 0x3a1d
00003a1b: JUMPI
00003a1c: INVALID
00003a1d: JUMPDEST
00003a1e: EQ
00003a1f: PUSH2 0x3a33
00003a22: JUMPI
00003a23: SWAP4
00003a24: SWAP8
00003a25: POP
00003a26: PUSH1 0x00
00003a28: SWAP7
00003a29: POP
00003a2a: DUP7
00003a2b: SWAP6
00003a2c: POP
00003a2d: DUP8
00003a2e: SWAP4
00003a2f: PUSH2 0x362a
00003a32: JUMP
00003a33: JUMPDEST
00003a34: PUSH2 0x3a45
00003a37: DUP7
00003a38: PUSH1 0x80
00003a3a: ADD
00003a3b: MLOAD
00003a3c: DUP8
00003a3d: PUSH1 0xa0
00003a3f: ADD
00003a40: MLOAD
00003a41: PUSH2 0x3f1f
00003a44: JUMP
00003a45: JUMPDEST
00003a46: PUSH1 0xa0
00003a48: DUP9
00003a49: ADD
00003a4a: MSTORE
00003a4b: SWAP5
00003a4c: POP
00003a4d: PUSH1 0x00
00003a4f: DUP6
00003a50: PUSH1 0x19
00003a52: DUP2
00003a53: GT
00003a54: ISZERO
00003a55: PUSH2 0x3a5a
00003a58: JUMPI
00003a59: INVALID
00003a5a: JUMPDEST
00003a5b: EQ
00003a5c: PUSH2 0x3a70
00003a5f: JUMPI
00003a60: SWAP4
00003a61: SWAP8
00003a62: POP
00003a63: PUSH1 0x00
00003a65: SWAP7
00003a66: POP
00003a67: DUP7
00003a68: SWAP6
00003a69: POP
00003a6a: DUP8
00003a6b: SWAP4
00003a6c: PUSH2 0x362a
00003a6f: JUMP
00003a70: JUMPDEST
00003a71: DUP1
00003a72: SLOAD
00003a73: PUSH1 0x00
00003a75: LT
00003a76: ISZERO
00003a77: PUSH2 0x3b7f
00003a7a: JUMPI
00003a7b: PUSH2 0x3a94
00003a7e: DUP4
00003a7f: PUSH1 0x08
00003a81: ADD
00003a82: SLOAD
00003a83: DUP5
00003a84: PUSH1 0x07
00003a86: ADD
00003a87: SLOAD
00003a88: DUP6
00003a89: PUSH1 0x01
00003a8b: ADD
00003a8c: SLOAD
00003a8d: PUSH2 0x067d
00003a90: PUSH2 0x3006
00003a93: JUMP
00003a94: JUMPDEST
00003a95: PUSH1 0xc0
00003a97: DUP9
00003a98: ADD
00003a99: MSTORE
00003a9a: SWAP5
00003a9b: POP
00003a9c: PUSH1 0x00
00003a9e: DUP6
00003a9f: PUSH1 0x19
00003aa1: DUP2
00003aa2: GT
00003aa3: ISZERO
00003aa4: PUSH2 0x3aa9
00003aa7: JUMPI
00003aa8: INVALID
00003aa9: JUMPDEST
00003aaa: EQ
00003aab: PUSH2 0x3abf
00003aae: JUMPI
00003aaf: SWAP4
00003ab0: SWAP8
00003ab1: POP
00003ab2: PUSH1 0x00
00003ab4: SWAP7
00003ab5: POP
00003ab6: DUP7
00003ab7: SWAP6
00003ab8: POP
00003ab9: DUP8
00003aba: SWAP4
00003abb: PUSH2 0x362a
00003abe: JUMP
00003abf: JUMPDEST
00003ac0: PUSH2 0x3ad6
00003ac3: DUP2
00003ac4: PUSH1 0x00
00003ac6: ADD
00003ac7: SLOAD
00003ac8: DUP3
00003ac9: PUSH1 0x01
00003acb: ADD
00003acc: SLOAD
00003acd: DUP9
00003ace: PUSH1 0xc0
00003ad0: ADD
00003ad1: MLOAD
00003ad2: PUSH2 0x3135
00003ad5: JUMP
00003ad6: JUMPDEST
00003ad7: PUSH1 0xe0
00003ad9: DUP9
00003ada: ADD
00003adb: MSTORE
00003adc: SWAP5
00003add: POP
00003ade: PUSH1 0x00
00003ae0: DUP6
00003ae1: PUSH1 0x19
00003ae3: DUP2
00003ae4: GT
00003ae5: ISZERO
00003ae6: PUSH2 0x3aeb
00003ae9: JUMPI
00003aea: INVALID
00003aeb: JUMPDEST
00003aec: EQ
00003aed: PUSH2 0x3b01
00003af0: JUMPI
00003af1: SWAP4
00003af2: SWAP8
00003af3: POP
00003af4: PUSH1 0x00
00003af6: SWAP7
00003af7: POP
00003af8: DUP7
00003af9: SWAP6
00003afa: POP
00003afb: DUP8
00003afc: SWAP4
00003afd: PUSH2 0x362a
00003b00: JUMP
00003b01: JUMPDEST
00003b02: PUSH2 0x3b13
00003b05: DUP7
00003b06: PUSH1 0x00
00003b08: ADD
00003b09: MLOAD
00003b0a: DUP8
00003b0b: PUSH1 0xe0
00003b0d: ADD
00003b0e: MLOAD
00003b0f: PUSH2 0x445e
00003b12: JUMP
00003b13: JUMPDEST
00003b14: PUSH2 0x0100
00003b17: DUP9
00003b18: ADD
00003b19: MSTORE
00003b1a: SWAP5
00003b1b: POP
00003b1c: PUSH1 0x00
00003b1e: DUP6
00003b1f: PUSH1 0x19
00003b21: DUP2
00003b22: GT
00003b23: ISZERO
00003b24: PUSH2 0x3b29
00003b27: JUMPI
00003b28: INVALID
00003b29: JUMPDEST
00003b2a: EQ
00003b2b: PUSH2 0x3b3f
00003b2e: JUMPI
00003b2f: SWAP4
00003b30: SWAP8
00003b31: POP
00003b32: PUSH1 0x00
00003b34: SWAP7
00003b35: POP
00003b36: DUP7
00003b37: SWAP6
00003b38: POP
00003b39: DUP8
00003b3a: SWAP4
00003b3b: PUSH2 0x362a
00003b3e: JUMP
00003b3f: JUMPDEST
00003b40: PUSH2 0x3b53
00003b43: DUP7
00003b44: PUSH2 0x0100
00003b47: ADD
00003b48: MLOAD
00003b49: DUP8
00003b4a: PUSH2 0x0120
00003b4d: ADD
00003b4e: MLOAD
00003b4f: PUSH2 0x3f1f
00003b52: JUMP
00003b53: JUMPDEST
00003b54: PUSH2 0x0120
00003b57: DUP9
00003b58: ADD
00003b59: MSTORE
00003b5a: SWAP5
00003b5b: POP
00003b5c: PUSH1 0x00
00003b5e: DUP6
00003b5f: PUSH1 0x19
00003b61: DUP2
00003b62: GT
00003b63: ISZERO
00003b64: PUSH2 0x3b69
00003b67: JUMPI
00003b68: INVALID
00003b69: JUMPDEST
00003b6a: EQ
00003b6b: PUSH2 0x3b7f
00003b6e: JUMPI
00003b6f: SWAP4
00003b70: SWAP8
00003b71: POP
00003b72: PUSH1 0x00
00003b74: SWAP7
00003b75: POP
00003b76: DUP7
00003b77: SWAP6
00003b78: POP
00003b79: DUP8
00003b7a: SWAP4
00003b7b: PUSH2 0x362a
00003b7e: JUMP
00003b7f: JUMPDEST
00003b80: PUSH1 0x01
00003b82: SWAP1
00003b83: SWAP4
00003b84: ADD
00003b85: SWAP3
00003b86: PUSH2 0x38ef
00003b89: JUMP
00003b8a: JUMPDEST
00003b8b: POP
00003b8c: POP
00003b8d: POP
00003b8e: POP
00003b8f: PUSH1 0xa0
00003b91: DUP3
00003b92: ADD
00003b93: MLOAD
00003b94: MLOAD
00003b95: PUSH2 0x0120
00003b98: SWAP1
00003b99: SWAP3
00003b9a: ADD
00003b9b: MLOAD
00003b9c: MLOAD
00003b9d: PUSH1 0x00
00003b9f: SWAP8
00003ba0: SWAP3
00003ba1: SWAP7
00003ba2: POP
00003ba3: SWAP5
00003ba4: POP
00003ba5: SWAP1
00003ba6: SWAP3
00003ba7: POP
00003ba8: POP
00003ba9: POP
00003baa: JUMP
00003bab: JUMPDEST
00003bac: PUSH1 0x00
00003bae: DUP1
00003baf: DUP4
00003bb0: SWAP1
00003bb1: POP
00003bb2: DUP1
00003bb3: PUSH1 0x01
00003bb5: PUSH1 0xa0
00003bb7: PUSH1 0x02
00003bb9: EXP
00003bba: SUB
00003bbb: AND
00003bbc: PUSH4 0x70a08231
00003bc1: DUP5
00003bc2: PUSH1 0x40
00003bc4: MLOAD
00003bc5: DUP3
00003bc6: PUSH4 0xffffffff
00003bcb: AND
00003bcc: PUSH1 0xe0
00003bce: PUSH1 0x02
00003bd0: EXP
00003bd1: MUL
00003bd2: DUP2
00003bd3: MSTORE
00003bd4: PUSH1 0x04
00003bd6: ADD
00003bd7: DUP1
00003bd8: DUP3
00003bd9: PUSH1 0x01
00003bdb: PUSH1 0xa0
00003bdd: PUSH1 0x02
00003bdf: EXP
00003be0: SUB
00003be1: AND
00003be2: PUSH1 0x01
00003be4: PUSH1 0xa0
00003be6: PUSH1 0x02
00003be8: EXP
00003be9: SUB
00003bea: AND
00003beb: DUP2
00003bec: MSTORE
00003bed: PUSH1 0x20
00003bef: ADD
00003bf0: SWAP2
00003bf1: POP
00003bf2: POP
00003bf3: PUSH1 0x20
00003bf5: PUSH1 0x40
00003bf7: MLOAD
00003bf8: DUP1
00003bf9: DUP4
00003bfa: SUB
00003bfb: DUP2
00003bfc: PUSH1 0x00
00003bfe: DUP8
00003bff: DUP1
00003c00: EXTCODESIZE
00003c01: ISZERO
00003c02: DUP1
00003c03: ISZERO
00003c04: PUSH2 0x3c0c
00003c07: JUMPI
00003c08: PUSH1 0x00
00003c0a: DUP1
00003c0b: REVERT
00003c0c: JUMPDEST
00003c0d: POP
00003c0e: GAS
00003c0f: CALL
00003c10: ISZERO
00003c11: DUP1
00003c12: ISZERO
00003c13: PUSH2 0x3c20
00003c16: JUMPI
00003c17: RETURNDATASIZE
00003c18: PUSH1 0x00
00003c1a: DUP1
00003c1b: RETURNDATACOPY
00003c1c: RETURNDATASIZE
00003c1d: PUSH1 0x00
00003c1f: REVERT
00003c20: JUMPDEST
00003c21: POP
00003c22: POP
00003c23: POP
00003c24: POP
00003c25: PUSH1 0x40
00003c27: MLOAD
00003c28: RETURNDATASIZE
00003c29: PUSH1 0x20
00003c2b: DUP2
00003c2c: LT
00003c2d: ISZERO
00003c2e: PUSH2 0x3c36
00003c31: JUMPI
00003c32: PUSH1 0x00
00003c34: DUP1
00003c35: REVERT
00003c36: JUMPDEST
00003c37: POP
00003c38: MLOAD
00003c39: SWAP5
00003c3a: SWAP4
00003c3b: POP
00003c3c: POP
00003c3d: POP
00003c3e: POP
00003c3f: JUMP
00003c40: JUMPDEST
00003c41: PUSH1 0x00
00003c43: DUP2
00003c44: DUP4
00003c45: LT
00003c46: ISZERO
00003c47: PUSH2 0x3c51
00003c4a: JUMPI
00003c4b: POP
00003c4c: DUP2
00003c4d: PUSH2 0x1036
00003c50: JUMP
00003c51: JUMPDEST
00003c52: POP
00003c53: DUP1
00003c54: PUSH2 0x1036
00003c57: JUMP
00003c58: JUMPDEST
00003c59: PUSH1 0x40
00003c5b: DUP1
00003c5c: MLOAD
00003c5d: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000
00003c7e: DUP2
00003c7f: MSTORE
00003c80: PUSH1 0x01
00003c82: PUSH1 0xa0
00003c84: PUSH1 0x02
00003c86: EXP
00003c87: SUB
00003c88: DUP5
00003c89: DUP2
00003c8a: AND
00003c8b: PUSH1 0x04
00003c8d: DUP4
00003c8e: ADD
00003c8f: MSTORE
00003c90: ADDRESS
00003c91: PUSH1 0x24
00003c93: DUP4
00003c94: ADD
00003c95: MSTORE
00003c96: SWAP2
00003c97: MLOAD
00003c98: PUSH1 0x00
00003c9a: SWAP3
00003c9b: DUP7
00003c9c: SWAP3
00003c9d: DUP6
00003c9e: SWAP3
00003c9f: SWAP2
00003ca0: DUP5
00003ca1: AND
00003ca2: SWAP2
00003ca3: PUSH4 0xdd62ed3e
00003ca8: SWAP2
00003ca9: PUSH1 0x44
00003cab: DUP1
00003cac: DUP3
00003cad: ADD
00003cae: SWAP3
00003caf: PUSH1 0x20
00003cb1: SWAP3
00003cb2: SWAP1
00003cb3: SWAP2
00003cb4: SWAP1
00003cb5: DUP3
00003cb6: SWAP1
00003cb7: SUB
00003cb8: ADD
00003cb9: DUP2
00003cba: DUP10
00003cbb: DUP8
00003cbc: DUP1
00003cbd: EXTCODESIZE
00003cbe: ISZERO
00003cbf: DUP1
00003cc0: ISZERO
00003cc1: PUSH2 0x3cc9
00003cc4: JUMPI
00003cc5: PUSH1 0x00
00003cc7: DUP1
00003cc8: REVERT
00003cc9: JUMPDEST
00003cca: POP
00003ccb: GAS
00003ccc: CALL
00003ccd: ISZERO
00003cce: DUP1
00003ccf: ISZERO
00003cd0: PUSH2 0x3cdd
00003cd3: JUMPI
00003cd4: RETURNDATASIZE
00003cd5: PUSH1 0x00
00003cd7: DUP1
00003cd8: RETURNDATACOPY
00003cd9: RETURNDATASIZE
00003cda: PUSH1 0x00
00003cdc: REVERT
00003cdd: JUMPDEST
00003cde: POP
00003cdf: POP
00003ce0: POP
00003ce1: POP
00003ce2: PUSH1 0x40
00003ce4: MLOAD
00003ce5: RETURNDATASIZE
00003ce6: PUSH1 0x20
00003ce8: DUP2
00003ce9: LT
00003cea: ISZERO
00003ceb: PUSH2 0x3cf3
00003cee: JUMPI
00003cef: PUSH1 0x00
00003cf1: DUP1
00003cf2: REVERT
00003cf3: JUMPDEST
00003cf4: POP
00003cf5: MLOAD
00003cf6: LT
00003cf7: ISZERO
00003cf8: PUSH2 0x3d04
00003cfb: JUMPI
00003cfc: PUSH1 0x07
00003cfe: SWAP2
00003cff: POP
00003d00: PUSH2 0x3da0
00003d03: JUMP
00003d04: JUMPDEST
00003d05: DUP3
00003d06: DUP2
00003d07: PUSH1 0x01
00003d09: PUSH1 0xa0
00003d0b: PUSH1 0x02
00003d0d: EXP
00003d0e: SUB
00003d0f: AND
00003d10: PUSH4 0x70a08231
00003d15: DUP7
00003d16: PUSH1 0x40
00003d18: MLOAD
00003d19: DUP3
00003d1a: PUSH4 0xffffffff
00003d1f: AND
00003d20: PUSH1 0xe0
00003d22: PUSH1 0x02
00003d24: EXP
00003d25: MUL
00003d26: DUP2
00003d27: MSTORE
00003d28: PUSH1 0x04
00003d2a: ADD
00003d2b: DUP1
00003d2c: DUP3
00003d2d: PUSH1 0x01
00003d2f: PUSH1 0xa0
00003d31: PUSH1 0x02
00003d33: EXP
00003d34: SUB
00003d35: AND
00003d36: PUSH1 0x01
00003d38: PUSH1 0xa0
00003d3a: PUSH1 0x02
00003d3c: EXP
00003d3d: SUB
00003d3e: AND
00003d3f: DUP2
00003d40: MSTORE
00003d41: PUSH1 0x20
00003d43: ADD
00003d44: SWAP2
00003d45: POP
00003d46: POP
00003d47: PUSH1 0x20
00003d49: PUSH1 0x40
00003d4b: MLOAD
00003d4c: DUP1
00003d4d: DUP4
00003d4e: SUB
00003d4f: DUP2
00003d50: PUSH1 0x00
00003d52: DUP8
00003d53: DUP1
00003d54: EXTCODESIZE
00003d55: ISZERO
00003d56: DUP1
00003d57: ISZERO
00003d58: PUSH2 0x3d60
00003d5b: JUMPI
00003d5c: PUSH1 0x00
00003d5e: DUP1
00003d5f: REVERT
00003d60: JUMPDEST
00003d61: POP
00003d62: GAS
00003d63: CALL
00003d64: ISZERO
00003d65: DUP1
00003d66: ISZERO
00003d67: PUSH2 0x3d74
00003d6a: JUMPI
00003d6b: RETURNDATASIZE
00003d6c: PUSH1 0x00
00003d6e: DUP1
00003d6f: RETURNDATACOPY
00003d70: RETURNDATASIZE
00003d71: PUSH1 0x00
00003d73: REVERT
00003d74: JUMPDEST
00003d75: POP
00003d76: POP
00003d77: POP
00003d78: POP
00003d79: PUSH1 0x40
00003d7b: MLOAD
00003d7c: RETURNDATASIZE
00003d7d: PUSH1 0x20
00003d7f: DUP2
00003d80: LT
00003d81: ISZERO
00003d82: PUSH2 0x3d8a
00003d85: JUMPI
00003d86: PUSH1 0x00
00003d88: DUP1
00003d89: REVERT
00003d8a: JUMPDEST
00003d8b: POP
00003d8c: MLOAD
00003d8d: LT
00003d8e: ISZERO
00003d8f: PUSH2 0x3d9b
00003d92: JUMPI
00003d93: PUSH1 0x08
00003d95: SWAP2
00003d96: POP
00003d97: PUSH2 0x3da0
00003d9a: JUMP
00003d9b: JUMPDEST
00003d9c: PUSH1 0x00
00003d9e: SWAP2
00003d9f: POP
00003da0: JUMPDEST
00003da1: POP
00003da2: SWAP4
00003da3: SWAP3
00003da4: POP
00003da5: POP
00003da6: POP
00003da7: JUMP
00003da8: JUMPDEST
00003da9: PUSH1 0x40
00003dab: DUP1
00003dac: MLOAD
00003dad: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
00003dce: DUP2
00003dcf: MSTORE
00003dd0: PUSH1 0x01
00003dd2: PUSH1 0xa0
00003dd4: PUSH1 0x02
00003dd6: EXP
00003dd7: SUB
00003dd8: DUP5
00003dd9: DUP2
00003dda: AND
00003ddb: PUSH1 0x04
00003ddd: DUP4
00003dde: ADD
00003ddf: MSTORE
00003de0: ADDRESS
00003de1: PUSH1 0x24
00003de3: DUP4
00003de4: ADD
00003de5: MSTORE
00003de6: PUSH1 0x44
00003de8: DUP3
00003de9: ADD
00003dea: DUP5
00003deb: SWAP1
00003dec: MSTORE
00003ded: SWAP2
00003dee: MLOAD
00003def: PUSH1 0x00
00003df1: SWAP3
00003df2: DUP7
00003df3: SWAP3
00003df4: DUP5
00003df5: SWAP3
00003df6: SWAP2
00003df7: DUP5
00003df8: AND
00003df9: SWAP2
00003dfa: PUSH4 0x23b872dd
00003dff: SWAP2
00003e00: PUSH1 0x64
00003e02: DUP1
00003e03: DUP3
00003e04: ADD
00003e05: SWAP3
00003e06: DUP7
00003e07: SWAP3
00003e08: SWAP1
00003e09: SWAP2
00003e0a: SWAP1
00003e0b: DUP3
00003e0c: SWAP1
00003e0d: SUB
00003e0e: ADD
00003e0f: DUP2
00003e10: DUP4
00003e11: DUP8
00003e12: DUP1
00003e13: EXTCODESIZE
00003e14: ISZERO
00003e15: DUP1
00003e16: ISZERO
00003e17: PUSH2 0x3e1f
00003e1a: JUMPI
00003e1b: PUSH1 0x00
00003e1d: DUP1
00003e1e: REVERT
00003e1f: JUMPDEST
00003e20: POP
00003e21: GAS
00003e22: CALL
00003e23: ISZERO
00003e24: DUP1
00003e25: ISZERO
00003e26: PUSH2 0x3e33
00003e29: JUMPI
00003e2a: RETURNDATASIZE
00003e2b: PUSH1 0x00
00003e2d: DUP1
00003e2e: RETURNDATACOPY
00003e2f: RETURNDATASIZE
00003e30: PUSH1 0x00
00003e32: REVERT
00003e33: JUMPDEST
00003e34: POP
00003e35: POP
00003e36: POP
00003e37: POP
00003e38: RETURNDATASIZE
00003e39: PUSH1 0x00
00003e3b: DUP2
00003e3c: EQ
00003e3d: PUSH2 0x3e4d
00003e40: JUMPI
00003e41: PUSH1 0x20
00003e43: DUP2
00003e44: EQ
00003e45: PUSH2 0x3e57
00003e48: JUMPI
00003e49: PUSH1 0x00
00003e4b: DUP1
00003e4c: REVERT
00003e4d: JUMPDEST
00003e4e: PUSH1 0x00
00003e50: NOT
00003e51: SWAP2
00003e52: POP
00003e53: PUSH2 0x3e63
00003e56: JUMP
00003e57: JUMPDEST
00003e58: PUSH1 0x20
00003e5a: PUSH1 0x00
00003e5c: DUP1
00003e5d: RETURNDATACOPY
00003e5e: PUSH1 0x00
00003e60: MLOAD
00003e61: SWAP2
00003e62: POP
00003e63: JUMPDEST
00003e64: POP
00003e65: DUP1
00003e66: ISZERO
00003e67: ISZERO
00003e68: PUSH2 0x3394
00003e6b: JUMPI
00003e6c: PUSH1 0x09
00003e6e: SWAP3
00003e6f: POP
00003e70: PUSH2 0x3399
00003e73: JUMP
00003e74: JUMPDEST
00003e75: PUSH1 0x00
00003e77: JUMPDEST
00003e78: PUSH1 0x06
00003e7a: SLOAD
00003e7b: DUP2
00003e7c: LT
00003e7d: ISZERO
00003e7e: PUSH2 0x3ec2
00003e81: JUMPI
00003e82: DUP2
00003e83: PUSH1 0x01
00003e85: PUSH1 0xa0
00003e87: PUSH1 0x02
00003e89: EXP
00003e8a: SUB
00003e8b: AND
00003e8c: PUSH1 0x06
00003e8e: DUP3
00003e8f: DUP2
00003e90: SLOAD
00003e91: DUP2
00003e92: LT
00003e93: ISZERO
00003e94: ISZERO
00003e95: PUSH2 0x3e9a
00003e98: JUMPI
00003e99: INVALID
00003e9a: JUMPDEST
00003e9b: PUSH1 0x00
00003e9d: SWAP2
00003e9e: DUP3
00003e9f: MSTORE
00003ea0: PUSH1 0x20
00003ea2: SWAP1
00003ea3: SWAP2
00003ea4: KECCAK256
00003ea5: ADD
00003ea6: SLOAD
00003ea7: PUSH1 0x01
00003ea9: PUSH1 0xa0
00003eab: PUSH1 0x02
00003ead: EXP
00003eae: SUB
00003eaf: AND
00003eb0: EQ
00003eb1: ISZERO
00003eb2: PUSH2 0x3eba
00003eb5: JUMPI
00003eb6: PUSH2 0x3f1b
00003eb9: JUMP
00003eba: JUMPDEST
00003ebb: PUSH1 0x01
00003ebd: ADD
00003ebe: PUSH2 0x3e77
00003ec1: JUMP
00003ec2: JUMPDEST
00003ec3: PUSH1 0x06
00003ec5: DUP1
00003ec6: SLOAD
00003ec7: PUSH1 0x01
00003ec9: DUP2
00003eca: ADD
00003ecb: DUP3
00003ecc: SSTORE
00003ecd: PUSH1 0x00
00003ecf: SWAP2
00003ed0: SWAP1
00003ed1: SWAP2
00003ed2: MSTORE
00003ed3: PUSH32 0xf652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f
00003ef4: ADD
00003ef5: DUP1
00003ef6: SLOAD
00003ef7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003f0c: NOT
00003f0d: AND
00003f0e: PUSH1 0x01
00003f10: PUSH1 0xa0
00003f12: PUSH1 0x02
00003f14: EXP
00003f15: SUB
00003f16: DUP5
00003f17: AND
00003f18: OR
00003f19: SWAP1
00003f1a: SSTORE
00003f1b: JUMPDEST
00003f1c: POP
00003f1d: POP
00003f1e: JUMP
00003f1f: JUMPDEST
00003f20: PUSH1 0x00
00003f22: PUSH2 0x3f29
00003f25: PUSH2 0x47b0
00003f28: JUMP
00003f29: JUMPDEST
00003f2a: PUSH1 0x00
00003f2c: DUP1
00003f2d: PUSH2 0x3f3e
00003f30: DUP7
00003f31: PUSH1 0x00
00003f33: ADD
00003f34: MLOAD
00003f35: DUP7
00003f36: PUSH1 0x00
00003f38: ADD
00003f39: MLOAD
00003f3a: PUSH2 0x347e
00003f3d: JUMP
00003f3e: JUMPDEST
00003f3f: PUSH1 0x40
00003f41: DUP1
00003f42: MLOAD
00003f43: PUSH1 0x20
00003f45: DUP2
00003f46: ADD
00003f47: SWAP1
00003f48: SWAP2
00003f49: MSTORE
00003f4a: DUP2
00003f4b: DUP2
00003f4c: MSTORE
00003f4d: SWAP2
00003f4e: SWAP6
00003f4f: POP
00003f50: SWAP1
00003f51: SWAP4
00003f52: POP
00003f53: DUP5
00003f54: SWAP3
00003f55: POP
00003f56: SWAP1
00003f57: POP
00003f58: JUMPDEST
00003f59: POP
00003f5a: POP
00003f5b: SWAP3
00003f5c: POP
00003f5d: SWAP3
00003f5e: SWAP1
00003f5f: POP
00003f60: JUMP
00003f61: JUMPDEST
00003f62: MLOAD
00003f63: SWAP1
00003f64: MLOAD
00003f65: GT
00003f66: ISZERO
00003f67: SWAP1
00003f68: JUMP
00003f69: JUMPDEST
00003f6a: PUSH1 0x00
00003f6c: DUP1
00003f6d: PUSH1 0x00
00003f6f: PUSH2 0x3f76
00003f72: PUSH2 0x47b0
00003f75: JUMP
00003f76: JUMPDEST
00003f77: PUSH2 0x3f7e
00003f7a: PUSH2 0x47b0
00003f7d: JUMP
00003f7e: JUMPDEST
00003f7f: PUSH2 0x3f86
00003f82: PUSH2 0x47b0
00003f85: JUMP
00003f86: JUMPDEST
00003f87: PUSH2 0x3f8e
00003f8a: PUSH2 0x47b0
00003f8d: JUMP
00003f8e: JUMPDEST
00003f8f: PUSH1 0x40
00003f91: DUP1
00003f92: MLOAD
00003f93: PUSH1 0x20
00003f95: DUP2
00003f96: DUP2
00003f97: ADD
00003f98: DUP4
00003f99: MSTORE
00003f9a: PUSH8 0x0de0b6b3a7640000
00003fa3: DUP3
00003fa4: MSTORE
00003fa5: DUP3
00003fa6: MLOAD
00003fa7: SWAP1
00003fa8: DUP2
00003fa9: ADD
00003faa: SWAP1
00003fab: SWAP3
00003fac: MSTORE
00003fad: PUSH1 0x09
00003faf: SLOAD
00003fb0: DUP3
00003fb1: MSTORE
00003fb2: PUSH2 0x3fba
00003fb5: SWAP2
00003fb6: PUSH2 0x3f1f
00003fb9: JUMP
00003fba: JUMPDEST
00003fbb: SWAP1
00003fbc: SWAP6
00003fbd: POP
00003fbe: SWAP4
00003fbf: POP
00003fc0: PUSH1 0x00
00003fc2: DUP6
00003fc3: PUSH1 0x19
00003fc5: DUP2
00003fc6: GT
00003fc7: ISZERO
00003fc8: PUSH2 0x3fcd
00003fcb: JUMPI
00003fcc: INVALID
00003fcd: JUMPDEST
00003fce: EQ
00003fcf: PUSH2 0x3fe0
00003fd2: JUMPI
00003fd3: SWAP4
00003fd4: SWAP6
00003fd5: POP
00003fd6: PUSH1 0x00
00003fd8: SWAP5
00003fd9: POP
00003fda: DUP6
00003fdb: SWAP4
00003fdc: PUSH2 0x4080
00003fdf: JUMP
00003fe0: JUMPDEST
00003fe1: PUSH2 0x3fea
00003fe4: DUP10
00003fe5: DUP10
00003fe6: PUSH2 0x44ee
00003fe9: JUMP
00003fea: JUMPDEST
00003feb: SWAP1
00003fec: SWAP6
00003fed: POP
00003fee: SWAP3
00003fef: POP
00003ff0: PUSH1 0x00
00003ff2: DUP6
00003ff3: PUSH1 0x19
00003ff5: DUP2
00003ff6: GT
00003ff7: ISZERO
00003ff8: PUSH2 0x3ffd
00003ffb: JUMPI
00003ffc: INVALID
00003ffd: JUMPDEST
00003ffe: EQ
00003fff: PUSH2 0x4010
00004002: JUMPI
00004003: SWAP4
00004004: SWAP6
00004005: POP
00004006: PUSH1 0x00
00004008: SWAP5
00004009: POP
0000400a: DUP6
0000400b: SWAP4
0000400c: PUSH2 0x4080
0000400f: JUMP
00004010: JUMPDEST
00004011: PUSH2 0x401a
00004014: DUP5
00004015: DUP12
00004016: PUSH2 0x45cd
00004019: JUMP
0000401a: JUMPDEST
0000401b: SWAP1
0000401c: SWAP6
0000401d: POP
0000401e: SWAP2
0000401f: POP
00004020: PUSH1 0x00
00004022: DUP6
00004023: PUSH1 0x19
00004025: DUP2
00004026: GT
00004027: ISZERO
00004028: PUSH2 0x402d
0000402b: JUMPI
0000402c: INVALID
0000402d: JUMPDEST
0000402e: EQ
0000402f: PUSH2 0x4040
00004032: JUMPI
00004033: SWAP4
00004034: SWAP6
00004035: POP
00004036: PUSH1 0x00
00004038: SWAP5
00004039: POP
0000403a: DUP6
0000403b: SWAP4
0000403c: PUSH2 0x4080
0000403f: JUMP
00004040: JUMPDEST
00004041: PUSH2 0x404a
00004044: DUP4
00004045: DUP4
00004046: PUSH2 0x46d9
00004049: JUMP
0000404a: JUMPDEST
0000404b: SWAP1
0000404c: SWAP6
0000404d: POP
0000404e: SWAP1
0000404f: POP
00004050: PUSH1 0x00
00004052: DUP6
00004053: PUSH1 0x19
00004055: DUP2
00004056: GT
00004057: ISZERO
00004058: PUSH2 0x405d
0000405b: JUMPI
0000405c: INVALID
0000405d: JUMPDEST
0000405e: EQ
0000405f: PUSH2 0x4070
00004062: JUMPI
00004063: SWAP4
00004064: SWAP6
00004065: POP
00004066: PUSH1 0x00
00004068: SWAP5
00004069: POP
0000406a: DUP6
0000406b: SWAP4
0000406c: PUSH2 0x4080
0000406f: JUMP
00004070: JUMPDEST
00004071: PUSH1 0x00
00004073: PUSH2 0x407b
00004076: DUP3
00004077: PUSH2 0x3898
0000407a: JUMP
0000407b: JUMPDEST
0000407c: SWAP7
0000407d: POP
0000407e: SWAP7
0000407f: POP
00004080: JUMPDEST
00004081: POP
00004082: POP
00004083: POP
00004084: POP
00004085: POP
00004086: SWAP4
00004087: POP
00004088: SWAP4
00004089: SWAP2
0000408a: POP
0000408b: POP
0000408c: JUMP
0000408d: JUMPDEST
0000408e: PUSH1 0x00
00004090: DUP1
00004091: PUSH1 0x00
00004093: PUSH2 0x409a
00004096: PUSH2 0x47b0
00004099: JUMP
0000409a: JUMPDEST
0000409b: PUSH2 0x40a2
0000409e: PUSH2 0x47b0
000040a1: JUMP
000040a2: JUMPDEST
000040a3: PUSH2 0x40aa
000040a6: PUSH2 0x47b0
000040a9: JUMP
000040aa: JUMPDEST
000040ab: PUSH2 0x40b2
000040ae: PUSH2 0x47b0
000040b1: JUMP
000040b2: JUMPDEST
000040b3: PUSH2 0x40ba
000040b6: PUSH2 0x47b0
000040b9: JUMP
000040ba: JUMPDEST
000040bb: PUSH2 0x40c2
000040be: PUSH2 0x47b0
000040c1: JUMP
000040c2: JUMPDEST
000040c3: PUSH2 0x40cb
000040c6: DUP12
000040c7: PUSH2 0x34a8
000040ca: JUMP
000040cb: JUMPDEST
000040cc: SWAP2
000040cd: SWAP9
000040ce: POP
000040cf: SWAP7
000040d0: POP
000040d1: SWAP5
000040d2: POP
000040d3: PUSH1 0x00
000040d5: DUP8
000040d6: PUSH1 0x19
000040d8: DUP2
000040d9: GT
000040da: ISZERO
000040db: PUSH2 0x40e0
000040de: JUMPI
000040df: INVALID
000040e0: JUMPDEST
000040e1: EQ
000040e2: PUSH2 0x40f3
000040e5: JUMPI
000040e6: SWAP6
000040e7: SWAP8
000040e8: POP
000040e9: PUSH1 0x00
000040eb: SWAP7
000040ec: POP
000040ed: DUP8
000040ee: SWAP6
000040ef: PUSH2 0x41ea
000040f2: JUMP
000040f3: JUMPDEST
000040f4: PUSH1 0x40
000040f6: DUP1
000040f7: MLOAD
000040f8: PUSH1 0x20
000040fa: DUP2
000040fb: DUP2
000040fc: ADD
000040fd: DUP4
000040fe: MSTORE
000040ff: PUSH1 0x07
00004101: SLOAD
00004102: DUP3
00004103: MSTORE
00004104: DUP3
00004105: MLOAD
00004106: SWAP1
00004107: DUP2
00004108: ADD
00004109: SWAP1
0000410a: SWAP3
0000410b: MSTORE
0000410c: PUSH1 0x09
0000410e: SLOAD
0000410f: DUP3
00004110: MSTORE
00004111: PUSH2 0x4119
00004114: SWAP2
00004115: PUSH2 0x46ba
00004118: JUMP
00004119: JUMPDEST
0000411a: SWAP1
0000411b: SWAP8
0000411c: POP
0000411d: SWAP4
0000411e: POP
0000411f: PUSH1 0x00
00004121: DUP8
00004122: PUSH1 0x19
00004124: DUP2
00004125: GT
00004126: ISZERO
00004127: PUSH2 0x412c
0000412a: JUMPI
0000412b: INVALID
0000412c: JUMPDEST
0000412d: EQ
0000412e: PUSH2 0x413f
00004131: JUMPI
00004132: SWAP6
00004133: SWAP8
00004134: POP
00004135: PUSH1 0x00
00004137: SWAP7
00004138: POP
00004139: DUP8
0000413a: SWAP6
0000413b: PUSH2 0x41ea
0000413e: JUMP
0000413f: JUMPDEST
00004140: PUSH2 0x4160
00004143: DUP5
00004144: PUSH1 0x20
00004146: PUSH1 0x40
00004148: MLOAD
00004149: SWAP1
0000414a: DUP2
0000414b: ADD
0000414c: PUSH1 0x40
0000414e: MSTORE
0000414f: DUP1
00004150: PUSH8 0x0de0b6b3a7640000
00004159: DUP2
0000415a: MSTORE
0000415b: POP
0000415c: PUSH2 0x46ba
0000415f: JUMP
00004160: JUMPDEST
00004161: SWAP1
00004162: SWAP8
00004163: POP
00004164: SWAP3
00004165: POP
00004166: PUSH1 0x00
00004168: DUP8
00004169: PUSH1 0x19
0000416b: DUP2
0000416c: GT
0000416d: ISZERO
0000416e: PUSH2 0x4173
00004171: JUMPI
00004172: INVALID
00004173: JUMPDEST
00004174: EQ
00004175: PUSH2 0x4186
00004178: JUMPI
00004179: SWAP6
0000417a: SWAP8
0000417b: POP
0000417c: PUSH1 0x00
0000417e: SWAP7
0000417f: POP
00004180: DUP8
00004181: SWAP6
00004182: PUSH2 0x41ea
00004185: JUMP
00004186: JUMPDEST
00004187: PUSH2 0x4190
0000418a: DUP11
0000418b: DUP5
0000418c: PUSH2 0x45cd
0000418f: JUMP
00004190: JUMPDEST
00004191: SWAP1
00004192: SWAP8
00004193: POP
00004194: SWAP2
00004195: POP
00004196: PUSH1 0x00
00004198: DUP8
00004199: PUSH1 0x19
0000419b: DUP2
0000419c: GT
0000419d: ISZERO
0000419e: PUSH2 0x41a3
000041a1: JUMPI
000041a2: INVALID
000041a3: JUMPDEST
000041a4: EQ
000041a5: PUSH2 0x41aa
000041a8: JUMPI
000041a9: INVALID
000041aa: JUMPDEST
000041ab: PUSH2 0x41b4
000041ae: DUP6
000041af: DUP4
000041b0: PUSH2 0x46d9
000041b3: JUMP
000041b4: JUMPDEST
000041b5: SWAP1
000041b6: SWAP8
000041b7: POP
000041b8: SWAP1
000041b9: POP
000041ba: PUSH1 0x00
000041bc: DUP8
000041bd: PUSH1 0x19
000041bf: DUP2
000041c0: GT
000041c1: ISZERO
000041c2: PUSH2 0x41c7
000041c5: JUMPI
000041c6: INVALID
000041c7: JUMPDEST
000041c8: EQ
000041c9: PUSH2 0x41da
000041cc: JUMPI
000041cd: SWAP6
000041ce: SWAP8
000041cf: POP
000041d0: PUSH1 0x00
000041d2: SWAP7
000041d3: POP
000041d4: DUP8
000041d5: SWAP6
000041d6: PUSH2 0x41ea
000041d9: JUMP
000041da: JUMPDEST
000041db: PUSH1 0x00
000041dd: PUSH2 0x41e5
000041e0: DUP3
000041e1: PUSH2 0x3898
000041e4: JUMP
000041e5: JUMPDEST
000041e6: SWAP9
000041e7: POP
000041e8: SWAP9
000041e9: POP
000041ea: JUMPDEST
000041eb: POP
000041ec: POP
000041ed: POP
000041ee: POP
000041ef: POP
000041f0: POP
000041f1: POP
000041f2: SWAP3
000041f3: POP
000041f4: SWAP3
000041f5: SWAP1
000041f6: POP
000041f7: JUMP
000041f8: JUMPDEST
000041f9: PUSH1 0x00
000041fb: DUP1
000041fc: PUSH1 0x00
000041fe: PUSH2 0x4205
00004201: PUSH2 0x47b0
00004204: JUMP
00004205: JUMPDEST
00004206: PUSH2 0x420d
00004209: PUSH2 0x47b0
0000420c: JUMP
0000420d: JUMPDEST
0000420e: PUSH2 0x4215
00004211: PUSH2 0x47b0
00004214: JUMP
00004215: JUMPDEST
00004216: PUSH2 0x421d
00004219: PUSH2 0x47b0
0000421c: JUMP
0000421d: JUMPDEST
0000421e: PUSH1 0x40
00004220: DUP1
00004221: MLOAD
00004222: PUSH1 0x20
00004224: DUP2
00004225: DUP2
00004226: ADD
00004227: DUP4
00004228: MSTORE
00004229: PUSH8 0x0de0b6b3a7640000
00004232: DUP3
00004233: MSTORE
00004234: DUP3
00004235: MLOAD
00004236: SWAP1
00004237: DUP2
00004238: ADD
00004239: SWAP1
0000423a: SWAP3
0000423b: MSTORE
0000423c: PUSH1 0x09
0000423e: SLOAD
0000423f: DUP3
00004240: MSTORE
00004241: PUSH2 0x4249
00004244: SWAP2
00004245: PUSH2 0x3f1f
00004248: JUMP
00004249: JUMPDEST
0000424a: SWAP1
0000424b: SWAP6
0000424c: POP
0000424d: SWAP4
0000424e: POP
0000424f: PUSH1 0x00
00004251: DUP6
00004252: PUSH1 0x19
00004254: DUP2
00004255: GT
00004256: ISZERO
00004257: PUSH2 0x425c
0000425a: JUMPI
0000425b: INVALID
0000425c: JUMPDEST
0000425d: EQ
0000425e: PUSH2 0x4263
00004261: JUMPI
00004262: INVALID
00004263: JUMPDEST
00004264: PUSH2 0x426d
00004267: DUP11
00004268: DUP6
00004269: PUSH2 0x45cd
0000426c: JUMP
0000426d: JUMPDEST
0000426e: SWAP1
0000426f: SWAP6
00004270: POP
00004271: SWAP3
00004272: POP
00004273: PUSH1 0x00
00004275: DUP6
00004276: PUSH1 0x19
00004278: DUP2
00004279: GT
0000427a: ISZERO
0000427b: PUSH2 0x4280
0000427e: JUMPI
0000427f: INVALID
00004280: JUMPDEST
00004281: EQ
00004282: PUSH2 0x4293
00004285: JUMPI
00004286: SWAP4
00004287: SWAP6
00004288: POP
00004289: PUSH1 0x00
0000428b: SWAP5
0000428c: POP
0000428d: DUP6
0000428e: SWAP4
0000428f: PUSH2 0x4080
00004292: JUMP
00004293: JUMPDEST
00004294: PUSH2 0x429d
00004297: DUP4
00004298: DUP10
00004299: PUSH2 0x44ee
0000429c: JUMP
0000429d: JUMPDEST
0000429e: SWAP1
0000429f: SWAP6
000042a0: POP
000042a1: SWAP2
000042a2: POP
000042a3: PUSH1 0x00
000042a5: DUP6
000042a6: PUSH1 0x19
000042a8: DUP2
000042a9: GT
000042aa: ISZERO
000042ab: PUSH2 0x42b0
000042ae: JUMPI
000042af: INVALID
000042b0: JUMPDEST
000042b1: EQ
000042b2: PUSH2 0x42c3
000042b5: JUMPI
000042b6: SWAP4
000042b7: SWAP6
000042b8: POP
000042b9: PUSH1 0x00
000042bb: SWAP5
000042bc: POP
000042bd: DUP6
000042be: SWAP4
000042bf: PUSH2 0x4080
000042c2: JUMP
000042c3: JUMPDEST
000042c4: PUSH2 0x404a
000042c7: DUP3
000042c8: DUP11
000042c9: PUSH2 0x46d9
000042cc: JUMP
000042cd: JUMPDEST
000042ce: PUSH32 0x0938b1e79e1fd5816573487e5bd6a1e1329ec26f94f401a7b49d4b71d479657a
000042ef: DUP2
000042f0: PUSH1 0x00
000042f2: ADD
000042f3: MLOAD
000042f4: DUP3
000042f5: PUSH1 0x20
000042f7: ADD
000042f8: MLOAD
000042f9: DUP4
000042fa: PUSH2 0x0160
000042fd: ADD
000042fe: MLOAD
000042ff: DUP5
00004300: PUSH2 0x0100
00004303: ADD
00004304: MLOAD
00004305: DUP6
00004306: PUSH2 0x0340
00004309: ADD
0000430a: MLOAD
0000430b: DUP7
0000430c: PUSH2 0x0120
0000430f: ADD
00004310: MLOAD
00004311: DUP8
00004312: PUSH1 0x40
00004314: ADD
00004315: MLOAD
00004316: DUP9
00004317: PUSH1 0x60
00004319: ADD
0000431a: MLOAD
0000431b: DUP10
0000431c: PUSH2 0x0180
0000431f: ADD
00004320: MLOAD
00004321: DUP11
00004322: PUSH2 0x01c0
00004325: ADD
00004326: MLOAD
00004327: DUP12
00004328: PUSH2 0x0360
0000432b: ADD
0000432c: MLOAD
0000432d: DUP13
0000432e: PUSH2 0x01e0
00004331: ADD
00004332: MLOAD
00004333: PUSH1 0x40
00004335: MLOAD
00004336: DUP1
00004337: DUP14
00004338: PUSH1 0x01
0000433a: PUSH1 0xa0
0000433c: PUSH1 0x02
0000433e: EXP
0000433f: SUB
00004340: AND
00004341: PUSH1 0x01
00004343: PUSH1 0xa0
00004345: PUSH1 0x02
00004347: EXP
00004348: SUB
00004349: AND
0000434a: DUP2
0000434b: MSTORE
0000434c: PUSH1 0x20
0000434e: ADD
0000434f: DUP13
00004350: PUSH1 0x01
00004352: PUSH1 0xa0
00004354: PUSH1 0x02
00004356: EXP
00004357: SUB
00004358: AND
00004359: PUSH1 0x01
0000435b: PUSH1 0xa0
0000435d: PUSH1 0x02
0000435f: EXP
00004360: SUB
00004361: AND
00004362: DUP2
00004363: MSTORE
00004364: PUSH1 0x20
00004366: ADD
00004367: DUP12
00004368: DUP2
00004369: MSTORE
0000436a: PUSH1 0x20
0000436c: ADD
0000436d: DUP11
0000436e: DUP2
0000436f: MSTORE
00004370: PUSH1 0x20
00004372: ADD
00004373: DUP10
00004374: DUP2
00004375: MSTORE
00004376: PUSH1 0x20
00004378: ADD
00004379: DUP9
0000437a: DUP2
0000437b: MSTORE
0000437c: PUSH1 0x20
0000437e: ADD
0000437f: DUP8
00004380: PUSH1 0x01
00004382: PUSH1 0xa0
00004384: PUSH1 0x02
00004386: EXP
00004387: SUB
00004388: AND
00004389: PUSH1 0x01
0000438b: PUSH1 0xa0
0000438d: PUSH1 0x02
0000438f: EXP
00004390: SUB
00004391: AND
00004392: DUP2
00004393: MSTORE
00004394: PUSH1 0x20
00004396: ADD
00004397: DUP7
00004398: PUSH1 0x01
0000439a: PUSH1 0xa0
0000439c: PUSH1 0x02
0000439e: EXP
0000439f: SUB
000043a0: AND
000043a1: PUSH1 0x01
000043a3: PUSH1 0xa0
000043a5: PUSH1 0x02
000043a7: EXP
000043a8: SUB
000043a9: AND
000043aa: DUP2
000043ab: MSTORE
000043ac: PUSH1 0x20
000043ae: ADD
000043af: DUP6
000043b0: DUP2
000043b1: MSTORE
000043b2: PUSH1 0x20
000043b4: ADD
000043b5: DUP5
000043b6: DUP2
000043b7: MSTORE
000043b8: PUSH1 0x20
000043ba: ADD
000043bb: DUP4
000043bc: DUP2
000043bd: MSTORE
000043be: PUSH1 0x20
000043c0: ADD
000043c1: DUP3
000043c2: DUP2
000043c3: MSTORE
000043c4: PUSH1 0x20
000043c6: ADD
000043c7: SWAP13
000043c8: POP
000043c9: POP
000043ca: POP
000043cb: POP
000043cc: POP
000043cd: POP
000043ce: POP
000043cf: POP
000043d0: POP
000043d1: POP
000043d2: POP
000043d3: POP
000043d4: POP
000043d5: PUSH1 0x40
000043d7: MLOAD
000043d8: DUP1
000043d9: SWAP2
000043da: SUB
000043db: SWAP1
000043dc: LOG1
000043dd: POP
000043de: JUMP
000043df: JUMPDEST
000043e0: PUSH1 0x00
000043e2: DUP1
000043e3: PUSH1 0x00
000043e5: PUSH2 0x43ec
000043e8: PUSH2 0x47b0
000043eb: JUMP
000043ec: JUMPDEST
000043ed: PUSH2 0x43f4
000043f0: PUSH2 0x47b0
000043f3: JUMP
000043f4: JUMPDEST
000043f5: PUSH2 0x43fd
000043f8: DUP8
000043f9: PUSH2 0x37a8
000043fc: JUMP
000043fd: JUMPDEST
000043fe: SWAP1
000043ff: SWAP4
00004400: POP
00004401: SWAP2
00004402: POP
00004403: PUSH1 0x00
00004405: DUP4
00004406: PUSH1 0x19
00004408: DUP2
00004409: GT
0000440a: ISZERO
0000440b: PUSH2 0x4410
0000440e: JUMPI
0000440f: INVALID
00004410: JUMPDEST
00004411: EQ
00004412: PUSH2 0x4423
00004415: JUMPI
00004416: SWAP2
00004417: SWAP4
00004418: POP
00004419: PUSH1 0x00
0000441b: SWAP3
0000441c: POP
0000441d: DUP4
0000441e: SWAP2
0000441f: PUSH2 0x371a
00004422: JUMP
00004423: JUMPDEST
00004424: PUSH2 0x442d
00004427: DUP7
00004428: DUP4
00004429: PUSH2 0x46d9
0000442c: JUMP
0000442d: JUMPDEST
0000442e: SWAP1
0000442f: SWAP4
00004430: POP
00004431: SWAP1
00004432: POP
00004433: PUSH1 0x00
00004435: DUP4
00004436: PUSH1 0x19
00004438: DUP2
00004439: GT
0000443a: ISZERO
0000443b: PUSH2 0x4440
0000443e: JUMPI
0000443f: INVALID
00004440: JUMPDEST
00004441: EQ
00004442: PUSH2 0x4453
00004445: JUMPI
00004446: SWAP2
00004447: SWAP4
00004448: POP
00004449: PUSH1 0x00
0000444b: SWAP3
0000444c: POP
0000444d: DUP4
0000444e: SWAP2
0000444f: PUSH2 0x371a
00004452: JUMP
00004453: JUMPDEST
00004454: PUSH1 0x00
00004456: PUSH2 0x3715
00004459: DUP3
0000445a: PUSH2 0x3898
0000445d: JUMP
0000445e: JUMPDEST
0000445f: PUSH1 0x00
00004461: PUSH2 0x4468
00004464: PUSH2 0x47b0
00004467: JUMP
00004468: JUMPDEST
00004469: PUSH1 0x00
0000446b: PUSH2 0x4472
0000446e: PUSH2 0x47b0
00004471: JUMP
00004472: JUMPDEST
00004473: PUSH2 0x447b
00004476: DUP7
00004477: PUSH2 0x37a8
0000447a: JUMP
0000447b: JUMPDEST
0000447c: SWAP1
0000447d: SWAP3
0000447e: POP
0000447f: SWAP1
00004480: POP
00004481: PUSH1 0x00
00004483: DUP3
00004484: PUSH1 0x19
00004486: DUP2
00004487: GT
00004488: ISZERO
00004489: PUSH2 0x448e
0000448c: JUMPI
0000448d: INVALID
0000448e: JUMPDEST
0000448f: EQ
00004490: PUSH2 0x44af
00004493: JUMPI
00004494: PUSH1 0x40
00004496: DUP1
00004497: MLOAD
00004498: PUSH1 0x20
0000449a: DUP2
0000449b: ADD
0000449c: SWAP1
0000449d: SWAP2
0000449e: MSTORE
0000449f: PUSH1 0x00
000044a1: DUP2
000044a2: MSTORE
000044a3: SWAP2
000044a4: SWAP4
000044a5: POP
000044a6: SWAP1
000044a7: SWAP2
000044a8: POP
000044a9: DUP3
000044aa: SWAP1
000044ab: PUSH2 0x3f58
000044ae: JUMP
000044af: JUMPDEST
000044b0: PUSH2 0x44b8
000044b3: DUP2
000044b4: PUSH2 0x3637
000044b7: JUMP
000044b8: JUMPDEST
000044b9: ISZERO
000044ba: PUSH2 0x44d7
000044bd: JUMPI
000044be: PUSH1 0x40
000044c0: DUP1
000044c1: MLOAD
000044c2: PUSH1 0x20
000044c4: DUP2
000044c5: ADD
000044c6: SWAP1
000044c7: SWAP2
000044c8: MSTORE
000044c9: PUSH1 0x00
000044cb: DUP2
000044cc: MSTORE
000044cd: PUSH1 0x12
000044cf: SWAP5
000044d0: POP
000044d1: SWAP3
000044d2: POP
000044d3: PUSH2 0x3f58
000044d6: JUMP
000044d7: JUMPDEST
000044d8: PUSH2 0x44e1
000044db: DUP2
000044dc: DUP7
000044dd: PUSH2 0x44ee
000044e0: JUMP
000044e1: JUMPDEST
000044e2: SWAP4
000044e3: POP
000044e4: SWAP4
000044e5: POP
000044e6: POP
000044e7: POP
000044e8: SWAP3
000044e9: POP
000044ea: SWAP3
000044eb: SWAP1
000044ec: POP
000044ed: JUMP
000044ee: JUMPDEST
000044ef: PUSH1 0x00
000044f1: PUSH2 0x44f8
000044f4: PUSH2 0x47b0
000044f7: JUMP
000044f8: JUMPDEST
000044f9: PUSH1 0x00
000044fb: DUP1
000044fc: PUSH2 0x4509
000044ff: DUP7
00004500: PUSH1 0x00
00004502: ADD
00004503: MLOAD
00004504: DUP7
00004505: PUSH2 0x4558
00004508: JUMP
00004509: JUMPDEST
0000450a: SWAP1
0000450b: SWAP3
0000450c: POP
0000450d: SWAP1
0000450e: POP
0000450f: PUSH1 0x00
00004511: DUP3
00004512: PUSH1 0x19
00004514: DUP2
00004515: GT
00004516: ISZERO
00004517: PUSH2 0x451c
0000451a: JUMPI
0000451b: INVALID
0000451c: JUMPDEST
0000451d: EQ
0000451e: PUSH2 0x453d
00004521: JUMPI
00004522: PUSH1 0x40
00004524: DUP1
00004525: MLOAD
00004526: PUSH1 0x20
00004528: DUP2
00004529: ADD
0000452a: SWAP1
0000452b: SWAP2
0000452c: MSTORE
0000452d: PUSH1 0x00
0000452f: DUP2
00004530: MSTORE
00004531: SWAP2
00004532: SWAP4
00004533: POP
00004534: SWAP1
00004535: SWAP2
00004536: POP
00004537: DUP3
00004538: SWAP1
00004539: PUSH2 0x3f58
0000453c: JUMP
0000453d: JUMPDEST
0000453e: PUSH1 0x40
00004540: DUP1
00004541: MLOAD
00004542: PUSH1 0x20
00004544: DUP2
00004545: ADD
00004546: SWAP1
00004547: SWAP2
00004548: MSTORE
00004549: SWAP1
0000454a: DUP2
0000454b: MSTORE
0000454c: PUSH1 0x00
0000454e: SWAP7
0000454f: SWAP1
00004550: SWAP6
00004551: POP
00004552: SWAP4
00004553: POP
00004554: POP
00004555: POP
00004556: POP
00004557: JUMP
00004558: JUMPDEST
00004559: PUSH1 0x00
0000455b: DUP1
0000455c: DUP1
0000455d: DUP5
0000455e: ISZERO
0000455f: ISZERO
00004560: PUSH2 0x456f
00004563: JUMPI
00004564: PUSH1 0x00
00004566: SWAP3
00004567: POP
00004568: DUP3
00004569: SWAP2
0000456a: POP
0000456b: PUSH2 0x34a0
0000456e: JUMP
0000456f: JUMPDEST
00004570: POP
00004571: DUP4
00004572: DUP4
00004573: MUL
00004574: DUP4
00004575: DUP6
00004576: DUP3
00004577: DUP2
00004578: ISZERO
00004579: ISZERO
0000457a: PUSH2 0x457f
0000457d: JUMPI
0000457e: INVALID
0000457f: JUMPDEST
00004580: DIV
00004581: EQ
00004582: PUSH2 0x4592
00004585: JUMPI
00004586: PUSH1 0x03
00004588: SWAP3
00004589: POP
0000458a: PUSH1 0x00
0000458c: SWAP2
0000458d: POP
0000458e: PUSH2 0x34a0
00004591: JUMP
00004592: JUMPDEST
00004593: PUSH1 0x00
00004595: DUP2
00004596: SWAP3
00004597: POP
00004598: SWAP3
00004599: POP
0000459a: PUSH2 0x34a0
0000459d: JUMP
0000459e: JUMPDEST
0000459f: PUSH1 0x00
000045a1: DUP1
000045a2: DUP3
000045a3: ISZERO
000045a4: ISZERO
000045a5: PUSH2 0x45b4
000045a8: JUMPI
000045a9: POP
000045aa: PUSH1 0x05
000045ac: SWAP1
000045ad: POP
000045ae: PUSH1 0x00
000045b0: PUSH2 0x374a
000045b3: JUMP
000045b4: JUMPDEST
000045b5: PUSH1 0x00
000045b7: DUP4
000045b8: DUP6
000045b9: DUP2
000045ba: ISZERO
000045bb: ISZERO
000045bc: PUSH2 0x45c1
000045bf: JUMPI
000045c0: INVALID
000045c1: JUMPDEST
000045c2: DIV
000045c3: SWAP2
000045c4: POP
000045c5: SWAP2
000045c6: POP
000045c7: SWAP3
000045c8: POP
000045c9: SWAP3
000045ca: SWAP1
000045cb: POP
000045cc: JUMP
000045cd: JUMPDEST
000045ce: PUSH1 0x00
000045d0: PUSH2 0x45d7
000045d3: PUSH2 0x47b0
000045d6: JUMP
000045d7: JUMPDEST
000045d8: PUSH1 0x00
000045da: DUP1
000045db: PUSH1 0x00
000045dd: DUP1
000045de: PUSH1 0x00
000045e0: DUP1
000045e1: PUSH2 0x45f2
000045e4: DUP11
000045e5: PUSH1 0x00
000045e7: ADD
000045e8: MLOAD
000045e9: DUP11
000045ea: PUSH1 0x00
000045ec: ADD
000045ed: MLOAD
000045ee: PUSH2 0x4558
000045f1: JUMP
000045f2: JUMPDEST
000045f3: SWAP1
000045f4: SWAP7
000045f5: POP
000045f6: SWAP5
000045f7: POP
000045f8: PUSH1 0x00
000045fa: DUP7
000045fb: PUSH1 0x19
000045fd: DUP2
000045fe: GT
000045ff: ISZERO
00004600: PUSH2 0x4605
00004603: JUMPI
00004604: INVALID
00004605: JUMPDEST
00004606: EQ
00004607: PUSH2 0x4626
0000460a: JUMPI
0000460b: PUSH1 0x40
0000460d: DUP1
0000460e: MLOAD
0000460f: PUSH1 0x20
00004611: DUP2
00004612: ADD
00004613: SWAP1
00004614: SWAP2
00004615: MSTORE
00004616: PUSH1 0x00
00004618: DUP2
00004619: MSTORE
0000461a: SWAP6
0000461b: SWAP8
0000461c: POP
0000461d: SWAP5
0000461e: SWAP6
0000461f: POP
00004620: DUP7
00004621: SWAP5
00004622: PUSH2 0x46ad
00004625: JUMP
00004626: JUMPDEST
00004627: PUSH2 0x4638
0000462a: PUSH8 0x06f05b59d3b20000
00004633: DUP7
00004634: PUSH2 0x347e
00004637: JUMP
00004638: JUMPDEST
00004639: SWAP1
0000463a: SWAP5
0000463b: POP
0000463c: SWAP3
0000463d: POP
0000463e: PUSH1 0x00
00004640: DUP5
00004641: PUSH1 0x19
00004643: DUP2
00004644: GT
00004645: ISZERO
00004646: PUSH2 0x464b
00004649: JUMPI
0000464a: INVALID
0000464b: JUMPDEST
0000464c: EQ
0000464d: PUSH2 0x466c
00004650: JUMPI
00004651: PUSH1 0x40
00004653: DUP1
00004654: MLOAD
00004655: PUSH1 0x20
00004657: DUP2
00004658: ADD
00004659: SWAP1
0000465a: SWAP2
0000465b: MSTORE
0000465c: PUSH1 0x00
0000465e: DUP2
0000465f: MSTORE
00004660: SWAP4
00004661: SWAP8
00004662: POP
00004663: SWAP3
00004664: SWAP6
00004665: POP
00004666: DUP7
00004667: SWAP3
00004668: PUSH2 0x46ad
0000466b: JUMP
0000466c: JUMPDEST
0000466d: PUSH2 0x467e
00004670: DUP4
00004671: PUSH8 0x0de0b6b3a7640000
0000467a: PUSH2 0x459e
0000467d: JUMP
0000467e: JUMPDEST
0000467f: SWAP1
00004680: SWAP3
00004681: POP
00004682: SWAP1
00004683: POP
00004684: PUSH1 0x00
00004686: DUP3
00004687: PUSH1 0x19
00004689: DUP2
0000468a: GT
0000468b: ISZERO
0000468c: PUSH2 0x4691
0000468f: JUMPI
00004690: INVALID
00004691: JUMPDEST
00004692: EQ
00004693: PUSH2 0x4698
00004696: JUMPI
00004697: INVALID
00004698: JUMPDEST
00004699: PUSH1 0x40
0000469b: DUP1
0000469c: MLOAD
0000469d: PUSH1 0x20
0000469f: DUP2
000046a0: ADD
000046a1: SWAP1
000046a2: SWAP2
000046a3: MSTORE
000046a4: DUP2
000046a5: DUP2
000046a6: MSTORE
000046a7: PUSH1 0x00
000046a9: SWAP9
000046aa: POP
000046ab: SWAP7
000046ac: POP
000046ad: JUMPDEST
000046ae: POP
000046af: POP
000046b0: POP
000046b1: POP
000046b2: POP
000046b3: POP
000046b4: SWAP3
000046b5: POP
000046b6: SWAP3
000046b7: SWAP1
000046b8: POP
000046b9: JUMP
000046ba: JUMPDEST
000046bb: PUSH1 0x00
000046bd: PUSH2 0x46c4
000046c0: PUSH2 0x47b0
000046c3: JUMP
000046c4: JUMPDEST
000046c5: PUSH1 0x00
000046c7: DUP1
000046c8: PUSH2 0x3f3e
000046cb: DUP7
000046cc: PUSH1 0x00
000046ce: ADD
000046cf: MLOAD
000046d0: DUP7
000046d1: PUSH1 0x00
000046d3: ADD
000046d4: MLOAD
000046d5: PUSH2 0x372b
000046d8: JUMP
000046d9: JUMPDEST
000046da: PUSH1 0x00
000046dc: PUSH2 0x46e3
000046df: PUSH2 0x47b0
000046e2: JUMP
000046e3: JUMPDEST
000046e4: DUP4
000046e5: MLOAD
000046e6: DUP4
000046e7: MLOAD
000046e8: PUSH2 0x46f1
000046eb: SWAP2
000046ec: SWAP1
000046ed: PUSH2 0x46fc
000046f0: JUMP
000046f1: JUMPDEST
000046f2: SWAP2
000046f3: POP
000046f4: SWAP2
000046f5: POP
000046f6: SWAP3
000046f7: POP
000046f8: SWAP3
000046f9: SWAP1
000046fa: POP
000046fb: JUMP
000046fc: JUMPDEST
000046fd: PUSH1 0x00
000046ff: PUSH2 0x4706
00004702: PUSH2 0x47b0
00004705: JUMP
00004706: JUMPDEST
00004707: PUSH1 0x00
00004709: DUP1
0000470a: PUSH1 0x00
0000470c: DUP1
0000470d: PUSH2 0x471e
00004710: DUP9
00004711: PUSH8 0x0de0b6b3a7640000
0000471a: PUSH2 0x4558
0000471d: JUMP
0000471e: JUMPDEST
0000471f: SWAP1
00004720: SWAP5
00004721: POP
00004722: SWAP3
00004723: POP
00004724: PUSH1 0x00
00004726: DUP5
00004727: PUSH1 0x19
00004729: DUP2
0000472a: GT
0000472b: ISZERO
0000472c: PUSH2 0x4731
0000472f: JUMPI
00004730: INVALID
00004731: JUMPDEST
00004732: EQ
00004733: PUSH2 0x4752
00004736: JUMPI
00004737: PUSH1 0x40
00004739: DUP1
0000473a: MLOAD
0000473b: PUSH1 0x20
0000473d: DUP2
0000473e: ADD
0000473f: SWAP1
00004740: SWAP2
00004741: MSTORE
00004742: PUSH1 0x00
00004744: DUP2
00004745: MSTORE
00004746: SWAP4
00004747: SWAP6
00004748: POP
00004749: SWAP3
0000474a: SWAP4
0000474b: POP
0000474c: DUP5
0000474d: SWAP3
0000474e: PUSH2 0x47a5
00004751: JUMP
00004752: JUMPDEST
00004753: PUSH2 0x475c
00004756: DUP4
00004757: DUP9
00004758: PUSH2 0x459e
0000475b: JUMP
0000475c: JUMPDEST
0000475d: SWAP1
0000475e: SWAP3
0000475f: POP
00004760: SWAP1
00004761: POP
00004762: PUSH1 0x00
00004764: DUP3
00004765: PUSH1 0x19
00004767: DUP2
00004768: GT
00004769: ISZERO
0000476a: PUSH2 0x476f
0000476d: JUMPI
0000476e: INVALID
0000476f: JUMPDEST
00004770: EQ
00004771: PUSH2 0x4790
00004774: JUMPI
00004775: PUSH1 0x40
00004777: DUP1
00004778: MLOAD
00004779: PUSH1 0x20
0000477b: DUP2
0000477c: ADD
0000477d: SWAP1
0000477e: SWAP2
0000477f: MSTORE
00004780: PUSH1 0x00
00004782: DUP2
00004783: MSTORE
00004784: SWAP2
00004785: SWAP6
00004786: POP
00004787: SWAP1
00004788: SWAP4
00004789: POP
0000478a: DUP5
0000478b: SWAP1
0000478c: PUSH2 0x47a5
0000478f: JUMP
00004790: JUMPDEST
00004791: PUSH1 0x40
00004793: DUP1
00004794: MLOAD
00004795: PUSH1 0x20
00004797: DUP2
00004798: ADD
00004799: SWAP1
0000479a: SWAP2
0000479b: MSTORE
0000479c: DUP2
0000479d: DUP2
0000479e: MSTORE
0000479f: PUSH1 0x00
000047a1: SWAP7
000047a2: POP
000047a3: SWAP5
000047a4: POP
000047a5: JUMPDEST
000047a6: POP
000047a7: POP
000047a8: POP
000047a9: POP
000047aa: SWAP3
000047ab: POP
000047ac: SWAP3
000047ad: SWAP1
000047ae: POP
000047af: JUMP
000047b0: JUMPDEST
000047b1: PUSH1 0x40
000047b3: DUP1
000047b4: MLOAD
000047b5: PUSH1 0x20
000047b7: DUP2
000047b8: ADD
000047b9: SWAP1
000047ba: SWAP2
000047bb: MSTORE
000047bc: PUSH1 0x00
000047be: DUP2
000047bf: MSTORE
000047c0: SWAP1
000047c1: JUMP
000047c2: JUMPDEST
000047c3: PUSH2 0x01c0
000047c6: PUSH1 0x40
000047c8: MLOAD
000047c9: SWAP1
000047ca: DUP2
000047cb: ADD
000047cc: PUSH1 0x40
000047ce: MSTORE
000047cf: DUP1
000047d0: PUSH1 0x00
000047d2: DUP2
000047d3: MSTORE
000047d4: PUSH1 0x20
000047d6: ADD
000047d7: PUSH1 0x00
000047d9: DUP2
000047da: MSTORE
000047db: PUSH1 0x20
000047dd: ADD
000047de: PUSH1 0x00
000047e0: DUP2
000047e1: MSTORE
000047e2: PUSH1 0x20
000047e4: ADD
000047e5: PUSH1 0x00
000047e7: DUP2
000047e8: MSTORE
000047e9: PUSH1 0x20
000047eb: ADD
000047ec: PUSH1 0x00
000047ee: DUP2
000047ef: MSTORE
000047f0: PUSH1 0x20
000047f2: ADD
000047f3: PUSH1 0x00
000047f5: DUP2
000047f6: MSTORE
000047f7: PUSH1 0x20
000047f9: ADD
000047fa: PUSH1 0x00
000047fc: DUP2
000047fd: MSTORE
000047fe: PUSH1 0x20
00004800: ADD
00004801: PUSH1 0x00
00004803: DUP2
00004804: MSTORE
00004805: PUSH1 0x20
00004807: ADD
00004808: PUSH1 0x00
0000480a: DUP2
0000480b: MSTORE
0000480c: PUSH1 0x20
0000480e: ADD
0000480f: PUSH1 0x00
00004811: DUP2
00004812: MSTORE
00004813: PUSH1 0x20
00004815: ADD
00004816: PUSH1 0x00
00004818: DUP2
00004819: MSTORE
0000481a: PUSH1 0x20
0000481c: ADD
0000481d: PUSH2 0x4824
00004820: PUSH2 0x47b0
00004823: JUMP
00004824: JUMPDEST
00004825: DUP2
00004826: MSTORE
00004827: PUSH1 0x20
00004829: ADD
0000482a: PUSH2 0x4831
0000482d: PUSH2 0x47b0
00004830: JUMP
00004831: JUMPDEST
00004832: DUP2
00004833: MSTORE
00004834: PUSH1 0x20
00004836: ADD
00004837: PUSH2 0x483e
0000483a: PUSH2 0x47b0
0000483d: JUMP
0000483e: JUMPDEST
0000483f: SWAP1
00004840: MSTORE
00004841: SWAP1
00004842: JUMP
00004843: JUMPDEST
00004844: PUSH2 0x0160
00004847: PUSH1 0x40
00004849: MLOAD
0000484a: SWAP1
0000484b: DUP2
0000484c: ADD
0000484d: PUSH1 0x40
0000484f: MSTORE
00004850: DUP1
00004851: PUSH1 0x00
00004853: DUP2
00004854: MSTORE
00004855: PUSH1 0x20
00004857: ADD
00004858: PUSH1 0x00
0000485a: DUP2
0000485b: MSTORE
0000485c: PUSH1 0x20
0000485e: ADD
0000485f: PUSH1 0x00
00004861: DUP2
00004862: MSTORE
00004863: PUSH1 0x20
00004865: ADD
00004866: PUSH1 0x00
00004868: DUP2
00004869: MSTORE
0000486a: PUSH1 0x20
0000486c: ADD
0000486d: PUSH1 0x00
0000486f: DUP2
00004870: MSTORE
00004871: PUSH1 0x20
00004873: ADD
00004874: PUSH1 0x00
00004876: DUP2
00004877: MSTORE
00004878: PUSH1 0x20
0000487a: ADD
0000487b: PUSH1 0x00
0000487d: DUP2
0000487e: MSTORE
0000487f: PUSH1 0x20
00004881: ADD
00004882: PUSH1 0x00
00004884: DUP2
00004885: MSTORE
00004886: PUSH1 0x20
00004888: ADD
00004889: PUSH1 0x00
0000488b: DUP2
0000488c: MSTORE
0000488d: PUSH1 0x20
0000488f: ADD
00004890: PUSH1 0x00
00004892: DUP2
00004893: MSTORE
00004894: PUSH1 0x20
00004896: ADD
00004897: PUSH1 0x00
00004899: DUP2
0000489a: MSTORE
0000489b: POP
0000489c: SWAP1
0000489d: JUMP
0000489e: JUMPDEST
0000489f: PUSH2 0x03c0
000048a2: PUSH1 0x40
000048a4: MLOAD
000048a5: SWAP1
000048a6: DUP2
000048a7: ADD
000048a8: PUSH1 0x40
000048aa: MSTORE
000048ab: DUP1
000048ac: PUSH1 0x00
000048ae: PUSH1 0x01
000048b0: PUSH1 0xa0
000048b2: PUSH1 0x02
000048b4: EXP
000048b5: SUB
000048b6: AND
000048b7: DUP2
000048b8: MSTORE
000048b9: PUSH1 0x20
000048bb: ADD
000048bc: PUSH1 0x00
000048be: PUSH1 0x01
000048c0: PUSH1 0xa0
000048c2: PUSH1 0x02
000048c4: EXP
000048c5: SUB
000048c6: AND
000048c7: DUP2
000048c8: MSTORE
000048c9: PUSH1 0x20
000048cb: ADD
000048cc: PUSH1 0x00
000048ce: PUSH1 0x01
000048d0: PUSH1 0xa0
000048d2: PUSH1 0x02
000048d4: EXP
000048d5: SUB
000048d6: AND
000048d7: DUP2
000048d8: MSTORE
000048d9: PUSH1 0x20
000048db: ADD
000048dc: PUSH1 0x00
000048de: PUSH1 0x01
000048e0: PUSH1 0xa0
000048e2: PUSH1 0x02
000048e4: EXP
000048e5: SUB
000048e6: AND
000048e7: DUP2
000048e8: MSTORE
000048e9: PUSH1 0x20
000048eb: ADD
000048ec: PUSH1 0x00
000048ee: DUP2
000048ef: MSTORE
000048f0: PUSH1 0x20
000048f2: ADD
000048f3: PUSH1 0x00
000048f5: DUP2
000048f6: MSTORE
000048f7: PUSH1 0x20
000048f9: ADD
000048fa: PUSH1 0x00
000048fc: DUP2
000048fd: MSTORE
000048fe: PUSH1 0x20
00004900: ADD
00004901: PUSH1 0x00
00004903: DUP2
00004904: MSTORE
00004905: PUSH1 0x20
00004907: ADD
00004908: PUSH1 0x00
0000490a: DUP2
0000490b: MSTORE
0000490c: PUSH1 0x20
0000490e: ADD
0000490f: PUSH1 0x00
00004911: DUP2
00004912: MSTORE
00004913: PUSH1 0x20
00004915: ADD
00004916: PUSH1 0x00
00004918: DUP2
00004919: MSTORE
0000491a: PUSH1 0x20
0000491c: ADD
0000491d: PUSH1 0x00
0000491f: DUP2
00004920: MSTORE
00004921: PUSH1 0x20
00004923: ADD
00004924: PUSH1 0x00
00004926: DUP2
00004927: MSTORE
00004928: PUSH1 0x20
0000492a: ADD
0000492b: PUSH1 0x00
0000492d: DUP2
0000492e: MSTORE
0000492f: PUSH1 0x20
00004931: ADD
00004932: PUSH1 0x00
00004934: DUP2
00004935: MSTORE
00004936: PUSH1 0x20
00004938: ADD
00004939: PUSH1 0x00
0000493b: DUP2
0000493c: MSTORE
0000493d: PUSH1 0x20
0000493f: ADD
00004940: PUSH1 0x00
00004942: DUP2
00004943: MSTORE
00004944: PUSH1 0x20
00004946: ADD
00004947: PUSH1 0x00
00004949: DUP2
0000494a: MSTORE
0000494b: PUSH1 0x20
0000494d: ADD
0000494e: PUSH1 0x00
00004950: DUP2
00004951: MSTORE
00004952: PUSH1 0x20
00004954: ADD
00004955: PUSH1 0x00
00004957: DUP2
00004958: MSTORE
00004959: PUSH1 0x20
0000495b: ADD
0000495c: PUSH1 0x00
0000495e: DUP2
0000495f: MSTORE
00004960: PUSH1 0x20
00004962: ADD
00004963: PUSH1 0x00
00004965: DUP2
00004966: MSTORE
00004967: PUSH1 0x20
00004969: ADD
0000496a: PUSH1 0x00
0000496c: DUP2
0000496d: MSTORE
0000496e: PUSH1 0x20
00004970: ADD
00004971: PUSH1 0x00
00004973: DUP2
00004974: MSTORE
00004975: PUSH1 0x20
00004977: ADD
00004978: PUSH1 0x00
0000497a: DUP2
0000497b: MSTORE
0000497c: PUSH1 0x20
0000497e: ADD
0000497f: PUSH1 0x00
00004981: DUP2
00004982: MSTORE
00004983: PUSH1 0x20
00004985: ADD
00004986: PUSH1 0x00
00004988: DUP2
00004989: MSTORE
0000498a: PUSH1 0x20
0000498c: ADD
0000498d: PUSH1 0x00
0000498f: DUP2
00004990: MSTORE
00004991: PUSH1 0x20
00004993: ADD
00004994: PUSH2 0x4831
00004997: PUSH2 0x47b0
0000499a: JUMP
0000499b: JUMPDEST
0000499c: PUSH2 0x0140
0000499f: PUSH1 0x40
000049a1: MLOAD
000049a2: SWAP1
000049a3: DUP2
000049a4: ADD
000049a5: PUSH1 0x40
000049a7: MSTORE
000049a8: DUP1
000049a9: PUSH1 0x00
000049ab: DUP2
000049ac: MSTORE
000049ad: PUSH1 0x20
000049af: ADD
000049b0: PUSH1 0x00
000049b2: DUP2
000049b3: MSTORE
000049b4: PUSH1 0x20
000049b6: ADD
000049b7: PUSH1 0x00
000049b9: DUP2
000049ba: MSTORE
000049bb: PUSH1 0x20
000049bd: ADD
000049be: PUSH1 0x00
000049c0: DUP2
000049c1: MSTORE
000049c2: PUSH1 0x20
000049c4: ADD
000049c5: PUSH1 0x00
000049c7: DUP2
000049c8: MSTORE
000049c9: PUSH1 0x20
000049cb: ADD
000049cc: PUSH1 0x00
000049ce: DUP2
000049cf: MSTORE
000049d0: PUSH1 0x20
000049d2: ADD
000049d3: PUSH1 0x00
000049d5: DUP2
000049d6: MSTORE
000049d7: PUSH1 0x20
000049d9: ADD
000049da: PUSH1 0x00
000049dc: DUP2
000049dd: MSTORE
000049de: PUSH1 0x20
000049e0: ADD
000049e1: PUSH1 0x00
000049e3: DUP2
000049e4: MSTORE
000049e5: PUSH1 0x20
000049e7: ADD
000049e8: PUSH1 0x00
000049ea: DUP2
000049eb: MSTORE
000049ec: POP
000049ed: SWAP1
000049ee: JUMP
000049ef: JUMPDEST
000049f0: PUSH2 0x01e0
000049f3: PUSH1 0x40
000049f5: MLOAD
000049f6: SWAP1
000049f7: DUP2
000049f8: ADD
000049f9: PUSH1 0x40
000049fb: MSTORE
000049fc: DUP1
000049fd: PUSH1 0x00
000049ff: DUP2
00004a00: MSTORE
00004a01: PUSH1 0x20
00004a03: ADD
00004a04: PUSH1 0x00
00004a06: DUP2
00004a07: MSTORE
00004a08: PUSH1 0x20
00004a0a: ADD
00004a0b: PUSH1 0x00
00004a0d: DUP2
00004a0e: MSTORE
00004a0f: PUSH1 0x20
00004a11: ADD
00004a12: PUSH1 0x00
00004a14: DUP2
00004a15: MSTORE
00004a16: PUSH1 0x20
00004a18: ADD
00004a19: PUSH1 0x00
00004a1b: DUP2
00004a1c: MSTORE
00004a1d: PUSH1 0x20
00004a1f: ADD
00004a20: PUSH1 0x00
00004a22: DUP2
00004a23: MSTORE
00004a24: PUSH1 0x20
00004a26: ADD
00004a27: PUSH1 0x00
00004a29: DUP2
00004a2a: MSTORE
00004a2b: PUSH1 0x20
00004a2d: ADD
00004a2e: PUSH1 0x00
00004a30: DUP2
00004a31: MSTORE
00004a32: PUSH1 0x20
00004a34: ADD
00004a35: PUSH1 0x00
00004a37: DUP2
00004a38: MSTORE
00004a39: PUSH1 0x20
00004a3b: ADD
00004a3c: PUSH1 0x00
00004a3e: DUP2
00004a3f: MSTORE
00004a40: PUSH1 0x20
00004a42: ADD
00004a43: PUSH1 0x00
00004a45: DUP2
00004a46: MSTORE
00004a47: PUSH1 0x20
00004a49: ADD
00004a4a: PUSH2 0x4a51
00004a4d: PUSH2 0x47b0
00004a50: JUMP
00004a51: JUMPDEST
00004a52: DUP2
00004a53: MSTORE
00004a54: PUSH1 0x20
00004a56: ADD
00004a57: PUSH2 0x4a5e
00004a5a: PUSH2 0x47b0
00004a5d: JUMP
00004a5e: JUMPDEST
00004a5f: DUP2
00004a60: MSTORE
00004a61: PUSH1 0x20
00004a63: ADD
00004a64: PUSH2 0x4a6b
00004a67: PUSH2 0x47b0
00004a6a: JUMP
00004a6b: JUMPDEST
00004a6c: DUP2
00004a6d: MSTORE
00004a6e: PUSH1 0x20
00004a70: ADD
00004a71: PUSH1 0x00
00004a73: DUP2
00004a74: MSTORE
00004a75: POP
00004a76: SWAP1
00004a77: JUMP
00004a78: JUMPDEST
00004a79: PUSH2 0x0140
00004a7c: PUSH1 0x40
00004a7e: MLOAD
00004a7f: SWAP1
00004a80: DUP2
00004a81: ADD
00004a82: PUSH1 0x40
00004a84: MSTORE
00004a85: DUP1
00004a86: PUSH1 0x00
00004a88: PUSH1 0x01
00004a8a: PUSH1 0xa0
00004a8c: PUSH1 0x02
00004a8e: EXP
00004a8f: SUB
00004a90: AND
00004a91: DUP2
00004a92: MSTORE
00004a93: PUSH1 0x20
00004a95: ADD
00004a96: PUSH1 0x00
00004a98: DUP2
00004a99: MSTORE
00004a9a: PUSH1 0x20
00004a9c: ADD
00004a9d: PUSH1 0x00
00004a9f: DUP2
00004aa0: MSTORE
00004aa1: PUSH1 0x20
00004aa3: ADD
00004aa4: PUSH1 0x00
00004aa6: DUP2
00004aa7: MSTORE
00004aa8: PUSH1 0x20
00004aaa: ADD
00004aab: PUSH2 0x4ab2
00004aae: PUSH2 0x47b0
00004ab1: JUMP
00004ab2: JUMPDEST
00004ab3: DUP2
00004ab4: MSTORE
00004ab5: PUSH1 0x20
00004ab7: ADD
00004ab8: PUSH2 0x4abf
00004abb: PUSH2 0x47b0
00004abe: JUMP
00004abf: JUMPDEST
00004ac0: DUP2
00004ac1: MSTORE
00004ac2: PUSH1 0x20
00004ac4: ADD
00004ac5: PUSH1 0x00
00004ac7: DUP2
00004ac8: MSTORE
00004ac9: PUSH1 0x20
00004acb: ADD
00004acc: PUSH1 0x00
00004ace: DUP2
00004acf: MSTORE
00004ad0: PUSH1 0x20
00004ad2: ADD
00004ad3: PUSH2 0x4831
00004ad6: PUSH2 0x47b0
00004ad9: JUMP
00004ada: STOP
00004adb: LOG1
00004adc: PUSH6 0x627a7a723058
00004ae3: KECCAK256
00004ae4: CALLDATACOPY
00004ae5: SSTORE
00004ae6: SWAP7
00004ae7: UNKNOWN(0xF6)
00004ae8: GASLIMIT
00004ae9: UNKNOWN(0xAB)
00004aea: ISZERO
00004aeb: UNKNOWN(0xB0)
00004aec: UNKNOWN(0x0F)
00004aed: UNKNOWN(0xC8)
00004aee: NOT
00004aef: DUP13
00004af0: SUB
00004af1: DIV
00004af2: UNKNOWN(0xAF)
00004af3: UNKNOWN(0xD3)
00004af4: SLOAD
00004af5: EXP
00004af6: GAS
00004af7: UNKNOWN(0xCE)
00004af8: CALLDATALOAD
00004af9: EXTCODECOPY
00004afa: UNKNOWN(0x4F)
00004afb: JUMP
00004afc: SWAP13
00004afd: MSTORE
00004afe: EXTCODESIZE
00004aff: UNKNOWN(0xD0)
00004b00: INVALID
00004b01: DUP7
00004b02: SWAP8
00004b03: ADDRESS
00004b04: STOP
00004b05: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high reentrancy codex Reentrancy via transfer-out before state updates in borrow/withdraw 85 no
view
evidence_json
{
    "evidence": "`borrow` and `withdraw` perform `doTransferOut` and only update market/user storage afterwards, leaving a reentrancy window.",
    "locations": [
        "contracts/Contract.sol:1734",
        "contracts/Contract.sol:2646"
    ],
    "recommendation": "Apply checks-effects-interactions: update market/user balances before calling `doTransferOut`, or add a reentrancy guard around state-changing entry points. Alternatively, restrict supported assets to ERC20s without callbacks.",
    "exploit_scenario": "An attacker contract borrows or withdraws an asset that triggers a callback on transfer (e.g., ERC777-style hooks). During `doTransferOut`, the token or recipient hook reenters `borrow`/`withdraw` before the protocol updates market and user balances. Because the checks still see the old balances, the attacker can repeatedly borrow/withdraw in a single transaction and drain available cash."
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x280a3d8a1db78e1d6444b74eec2e9624438081c33959a263a62e43163561d0b9
call_targets: 0x3fda67f7583380e67ef93072294a7fac882fd7e7
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x280a3d8a1db78e1d6444b74eec2e9624438081c33959a263a62e43163561d0b9",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x3fda67f7583380e67ef93072294a7fac882fd7e7"
    ],
    "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": "0x118e31b7",
            "selector": "0x118e31b7",
            "calldata_variants": [
                "0x118e31b7",
                "0x118e31b70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x24021127",
            "selector": "0x24021127",
            "calldata_variants": [
                "0x24021127",
                "0x240211270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x26617c28",
            "selector": "0x26617c28",
            "calldata_variants": [
                "0x26617c28",
                "0x26617c280000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x26782247",
            "selector": "0x26782247",
            "calldata_variants": [
                "0x26782247",
                "0x267822470000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3be59443",
            "selector": "0x3be59443",
            "calldata_variants": [
                "0x3be59443",
                "0x3be594430000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4706c375",
            "selector": "0x4706c375",
            "calldata_variants": [
                "0x4706c375",
                "0x4706c3750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4b8a3529",
            "selector": "0x4b8a3529",
            "calldata_variants": [
                "0x4b8a3529",
                "0x4b8a35290000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5c975abb",
            "selector": "0x5c975abb",
            "calldata_variants": [
                "0x5c975abb",
                "0x5c975abb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2182,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3473,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3654,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 18,
    "guards_detected": [],
    "untrusted_call_count": 18
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x280a3d8a1db78e1d6444b74eec2e9624438081c33959a263a62e43163561d0b9
call_targets: 0x3fda67f7583380e67ef93072294a7fac882fd7e7
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x280a3d8a1db78e1d6444b74eec2e9624438081c33959a263a62e43163561d0b9",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x3fda67f7583380e67ef93072294a7fac882fd7e7"
    ],
    "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": "0x118e31b7",
            "selector": "0x118e31b7",
            "calldata_variants": [
                "0x118e31b7",
                "0x118e31b70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x24021127",
            "selector": "0x24021127",
            "calldata_variants": [
                "0x24021127",
                "0x240211270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x26617c28",
            "selector": "0x26617c28",
            "calldata_variants": [
                "0x26617c28",
                "0x26617c280000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x26782247",
            "selector": "0x26782247",
            "calldata_variants": [
                "0x26782247",
                "0x267822470000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3be59443",
            "selector": "0x3be59443",
            "calldata_variants": [
                "0x3be59443",
                "0x3be594430000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4706c375",
            "selector": "0x4706c375",
            "calldata_variants": [
                "0x4706c375",
                "0x4706c3750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x4b8a3529",
            "selector": "0x4b8a3529",
            "calldata_variants": [
                "0x4b8a3529",
                "0x4b8a35290000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x5c975abb",
            "selector": "0x5c975abb",
            "calldata_variants": [
                "0x5c975abb",
                "0x5c975abb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2182,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3473,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3654,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 18,
    "guards_detected": []
}
medium other codex Fee-on-transfer tokens can mint unbacked balances due to assuming full transfer-in amount 75 no
view
evidence_json
{
    "evidence": "`doTransferIn` only inspects return data and never checks the actual balance delta; supply/repay calculations use the requested `amount` before the transfer occurs.",
    "locations": [
        "contracts/Contract.sol:396",
        "contracts/Contract.sol:401",
        "contracts/Contract.sol:1538",
        "contracts/Contract.sol:1552",
        "contracts/Contract.sol:1976"
    ],
    "recommendation": "Use balance-delta accounting for transfer-ins (record `cashBefore`, execute transfer, compute `cashAfter - cashBefore` and use that actual amount). Consider rejecting fee-on-transfer/deflationary tokens at listing time.",
    "exploit_scenario": "If a supported asset charges a transfer fee, a user can supply or repay using `amount` while the protocol receives less. The contract credits the full `amount` to supply or reduces borrow by the full `amount`, creating unbacked balances. The attacker can then borrow other assets or withdraw more than the protocol actually holds, leading to insolvency."
}
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": 20
}
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": 18
}