0a6278ba-607e-4d02-85a2-07c9e6c4c2a7
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31381 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 111284 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 111285 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 111286 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 111287 | capability.graph | complete | 1 / 3 | 1 week ago |
| 111288 | detector.run | complete | 1 / 3 | 1 week ago |
| 111289 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:881785] OpenAI Codex v0.77.0 (research preview)
[codex:881785] --------
[codex:881785] workdir: /tmp/codex-multi-klbv7d97
[codex:881785] model: gpt-5.2-codex
[codex:881785] provider: openai
[codex:881785] approval: never
[codex:881785] sandbox: read-only
[codex:881785] reasoning effort: xhigh
[codex:881785] reasoning summaries: auto
[codex:881785] session id: 019b80f9-7bff-7500-9985-12f2983d6db4
[codex:881785] --------
[codex:881785] user
[codex:881785] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:881785]
[codex:881785] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:881785]
[codex:881785] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:881785] - Gas inefficiency, code quality, naming, or best practices
[codex:881785] - Theoretical vulnerabilities without a clear extraction path
[codex:881785] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:881785] - Front-running unless it enables theft beyond MEV
[codex:881785] - DoS, griefing, or issues that don't result in attacker profit
[codex:881785] - Missing events, view function issues, or informational findings
[codex:881785]
[codex:881785] HIGH-VALUE PATTERNS TO HUNT:
[codex:881785] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:881785] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:881785] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:881785] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:881785] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:881785] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:881785] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:881785] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:881785] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:881785]
[codex:881785] For each finding, you MUST provide:
[codex:881785] 1. Exact file and line numbers of vulnerable code
[codex:881785] 2. Step-by-step exploit transaction sequence
[codex:881785] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:881785]
[codex:881785] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:881785]
[codex:881785] Output MUST be valid JSON matching the provided schema.
[codex:881785] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:881785] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:881785] mcp startup: no servers
[codex:881785]
[codex:881785] thinking
[codex:881785] **Preparing to audit by reading files**
[codex:881785] exec
[codex:881785] /bin/bash -lc ls in /tmp/codex-multi-klbv7d97 succeeded in 8ms:
[codex:881785] AUDIT_BUNDLE.txt
[codex:881785] codex-output-schema.json
[codex:881785] contracts
[codex:881785] exec
[codex:881785] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-klbv7d97 succeeded in 7ms:
[codex:881785] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:881785]
[codex:881785] ================================================================================
[codex:881785] FILE: contracts/contracts/CrocEvents.sol
[codex:881785] ================================================================================
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785]
[codex:881785] pragma solidity 0.8.19;
[codex:881785]
[codex:881785] library CrocEvents {
[codex:881785]
[codex:881785]
[codex:881785] /* @notice Emitted when governance authority for CrocSwapDex is transfered.
[codex:881785] * @param The authority being transfered to. */
[codex:881785] event AuthorityTransfer (address indexed authority);
[codex:881785]
[codex:881785] /* @notice Indicates a new pool liquidity initialization value is set.
[codex:881785] * @param liq The pool initialization value. */
[codex:881785] event SetNewPoolLiq (uint128 liq);
[codex:881785]
[codex:881785]
[codex:881785] thinking
[codex:881785] **Scanning for vulnerabilities**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "withdraw|claim|collect|surplus|deposit|mint|burn|transfer" contracts/contracts | head -n 200' in /tmp/codex-multi-klbv7d97 succeeded in 9ms:
[codex:881785] contracts/contracts/interfaces/ICrocMinion.sol:19: * authority transfers or upgrades.) The ability to call with sudo
[codex:881785] contracts/contracts/interfaces/ICrocMinion.sol:28: /* @notice Used to validate governance contract to prevent authority transfer to an
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:10: * pool initialization, swaps, mints and burns for all liquidity types (ambient,
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:13: * Note that permit oracles do *not* have the ability to restrict claims or recovers
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:14: * on post-knockout liquidity. An order is eligible to be claimed/recovered only after
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:17: * oracles have no economic reason to restrict knockout claims/recovers. */
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:74: /* @notice Verifies whether a given user is permissioned to mint liquidity
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:84: * @param liq The total amount of liquidity being minted. Denominated as
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:94: /* @notice Verifies whether a given user is permissioned to burn liquidity
[codex:881785] contracts/contracts/interfaces/ICrocPermitOracle.sol:104: * @param liq The total amount of liquidity being minted. Denominated as
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:12: /* @notice Called anytime a user mints liquidity against the conduit instance. To
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:13: * utilize the user would call a mint operation on the dex with the address
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:18: * @param sender The address of the user that owns the newly minted position.
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:20: * minted on.
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:23: * @param liq The amount of liquidity being minted. If ambient liquidity this
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:25: * sqrt(X*Y) liquidity of the liquidity minted.
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:27: * concentrated liquidity at mint time. If ambient, this is zero.
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:30: * deposit. Reverts the transaction. */
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:31: function depositCrocLiq (address sender, bytes32 poolHash,
[codex:881785] contracts/contracts/interfaces/ICrocLpConduit.sol:35: function withdrawCrocLiq (address sender, bytes32 poolHash,
[codex:881785]
[codex:881785] thinking
[codex:881785] **Searching for transfer surplus exploit**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "transferSurplus|depositSurplus|depositSurplusPermit|surplus" contracts/contracts/mixins -S' in /tmp/codex-multi-klbv7d97 succeeded in 8ms:
[codex:881785] contracts/contracts/mixins/StorageLayout.sol:141: uint128 surplusCollateral_;
[codex:881785] contracts/contracts/mixins/ProtocolAccount.sol:45: userBals_[payoutKey].surplusCollateral_ += collected;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:124: * should be settled from caller's surplus collateral */
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:218: return userBals_[key].surplusCollateral_;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:241: * @para useReserves If true, any settlement is first done against the user's surplus
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:264: * @para useReserves If true, any settlement is first done against the user's surplus
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:297: /* @notice Collects the remaining debit (if any) after the user's surplus collateral
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:321: * surplus collateral balance. */
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:389: /* @notice Credits a user's surplus collateral account at the exchange (instead of
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:393: userBals_[key].surplusCollateral_ += value;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:396: /* @notice Debits the tokens owed from the user's pre-existing surplus collateral
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:398: * @return remainder The amount of the debit that cannot be satisfied by surplus
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:404: uint128 balance = bal.surplusCollateral_;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:407: bal.surplusCollateral_ -= value;
[codex:881785] contracts/contracts/mixins/SettleLayer.sol:409: bal.surplusCollateral_ = 0;
[codex:881785] contracts/contracts/mixins/AgentMask.sol:10: * @notice Maps and manages surplus balances, nonces, and external router approvals
[codex:881785] contracts/contracts/mixins/AgentMask.sol:286: * have sufficient balance in their surplus collateral to cover the tip by the
[codex:881785] contracts/contracts/mixins/AgentMask.sol:290: * user's surplus collateral balance.
[codex:881785] contracts/contracts/mixins/AgentMask.sol:294: * of the client's surplus collateral balance.
[codex:881785] contracts/contracts/mixins/AgentMask.sol:296: * surplus collateral balance. Also supports generic magic values for
[codex:881785]
[codex:881785] thinking
[codex:881785] **Reviewing DepositDesk for authentication**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,200p' contracts/contracts/mixins/DepositDesk.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] pragma solidity 0.8.19;
[codex:881785] pragma experimental ABIEncoderV2;
[codex:881785]
[codex:881785] import './StorageLayout.sol';
[codex:881785] import './SettleLayer.sol';
[codex:881785] import '../interfaces/IERC20Minimal.sol';
[codex:881785]
[codex:881785] contract DepositDesk is SettleLayer {
[codex:881785] using SafeCast for uint256;
[codex:881785]
[codex:881785] /* @notice Directly deposits a certain amount of surplus collateral to a user's
[codex:881785] * account.
[codex:881785] *
[codex:881785] * @dev This call can be used both for token and native Ether collateral. For
[codex:881785] * tokens, each call initiates a token transfer call to the ERC20 contract,
[codex:881785] * and it's safe to call repeatedly in the same transaction even for the same
[codex:881785] * token.
[codex:881785] *
[codex:881785] * For native Ether deposits, the call consumes the value in msg.value using the
[codex:881785]
[codex:881785] thinking
[codex:881785] **Investigating lockHolder_ usage in disburseSurplus**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '200,360p' contracts/contracts/callpaths/ColdPath.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] abi.decode(cmd, (uint8,address,address,uint256,uint16,uint16,uint8,uint8));
[codex:881785] setPoolSpecs(base, quote, poolIdx, feeRate, tickSize, jitThresh, knockout);
[codex:881785] }
[codex:881785]
[codex:881785] /* @notice Set off-grid price improvement.
[codex:881785] * @param token The token the settings apply to.
[codex:881785] * @param unitTickCollateral The collateral threshold for off-grid price improvement.
[codex:881785] * @param awayTickTol The maximum tick distance from current price that off-grid
[codex:881785] * quotes are allowed for. */
[codex:881785] function pegPriceImprove (bytes calldata cmd) private {
[codex:881785] (, address token, uint128 unitTickCollateral, uint16 awayTickTol) =
[codex:881785] abi.decode(cmd, (uint8, address, uint128, uint16));
[codex:881785] emit CrocEvents.PriceImproveThresh(token, unitTickCollateral, awayTickTol);
[codex:881785] setPriceImprove(token, unitTickCollateral, awayTickTol);
[codex:881785] }
[codex:881785]
[codex:881785] function setHotPathOpen (bytes calldata cmd) private {
[codex:881785] (, bool open) = abi.decode(cmd, (uint8, bool));
[codex:881785] emit CrocEvents.HotPathOpen(open);
[codex:881785] hotPathOpen_ = open;
[codex:881785]
[codex:881785] thinking
[codex:881785] **Investigating ColdPath command structure**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,140p' contracts/contracts/callpaths/ColdPath.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785]
[codex:881785] pragma solidity 0.8.19;
[codex:881785]
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/Encoding.sol';
[codex:881785] import '../libraries/TokenFlow.sol';
[codex:881785] import '../libraries/PriceGrid.sol';
[codex:881785] import '../libraries/ProtocolCmd.sol';
[codex:881785] import '../mixins/SettleLayer.sol';
[codex:881785] import '../mixins/PoolRegistry.sol';
[codex:881785] import '../mixins/MarketSequencer.sol';
[codex:881785] import '../mixins/StorageLayout.sol';
[codex:881785] import '../mixins/ProtocolAccount.sol';
[codex:881785] import '../mixins/DepositDesk.sol';
[codex:881785] import '../interfaces/ICrocMinion.sol';
[codex:881785] import '../CrocEvents.sol';
[codex:881785]
[codex:881785] /* @title Cold path callpath sidecar.
[codex:881785] * @notice Defines a proxy sidecar contract that's used to move code outside the
[codex:881785]
[codex:881785] thinking
[codex:881785] **Investigating lockHolder_ usage across modules**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,220p' contracts/contracts/mixins/MarketSequencer.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785]
[codex:881785] pragma solidity 0.8.19;
[codex:881785]
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/PoolSpecs.sol';
[codex:881785] import '../libraries/PriceGrid.sol';
[codex:881785] import '../libraries/SwapCurve.sol';
[codex:881785] import '../libraries/CurveMath.sol';
[codex:881785] import '../libraries/CurveRoll.sol';
[codex:881785] import '../libraries/CurveCache.sol';
[codex:881785] import '../libraries/Chaining.sol';
[codex:881785] import './PositionRegistrar.sol';
[codex:881785] import './LiquidityCurve.sol';
[codex:881785] import './LevelBook.sol';
[codex:881785] import './TradeMatcher.sol';
[codex:881785]
[codex:881785] /* @title Market sequencer.
[codex:881785] * @notice Mixin class that's responsibile for coordinating one or multiple sequetial
[codex:881785] * trade actions within a single liqudity pool. */
[codex:881785]
[codex:881785] thinking
[codex:881785] **Searching for lockHolder_ definition**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "lockHolder_" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 8ms:
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:55: if (lpConduit == address(0)) { lpConduit = lockHolder_; }
[codex:881785] contracts/contracts/callpaths/LongPath.sol:104: roll.prePairBal_ -= querySurplus(lockHolder_, token).toInt128Sign();
[codex:881785] contracts/contracts/callpaths/MicroPaths.sol:61: liq, poolHash, lockHolder_);
[codex:881785] contracts/contracts/callpaths/MicroPaths.sol:102: poolHash, lockHolder_);
[codex:881785] contracts/contracts/callpaths/MicroPaths.sol:136: (baseFlow, quoteFlow) = burnAmbient(curve, liq, poolHash, lockHolder_);
[codex:881785] contracts/contracts/callpaths/MicroPaths.sol:169: (baseFlow, quoteFlow) = mintAmbient(curve, liq, poolHash, lockHolder_);
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:127: settleInitFlow(lockHolder_, base, baseFlow, quote, quoteFlow);
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:31: debitTransfer(lockHolder_, value, token, popMsgVal());
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:68: bytes32 key = tokenKey(lockHolder_, token);
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:87: bytes32 fromKey = tokenKey(lockHolder_, token);
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:111: address from = virtualizeUser(lockHolder_, fromSalt);
[codex:881785] contracts/contracts/mixins/DepositDesk.sol:112: address to = virtualizeUser(lockHolder_, toSalt);
[codex:881785] contracts/contracts/mixins/TradeMatcher.sol:194: if (lpConduit != lockHolder_) {
[codex:881785] contracts/contracts/mixins/TradeMatcher.sol:196: depositCrocLiq(lockHolder_, poolHash, lowTick, highTick, liq, mileage);
[codex:881785] contracts/contracts/mixins/TradeMatcher.sol:212: if (lpConduit != lockHolder_) {
[codex:881785] contracts/contracts/mixins/TradeMatcher.sol:214: withdrawCrocLiq(lockHolder_, poolHash, lowTick, highTick, liq, mileage);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:231: bytes32 posKey = loc.encodePosKey(pool, lockHolder_, pivotTime);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:253: bytes32 posKey = loc.encodePosKey(pool, lockHolder_, pivotTime);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:283: bytes32 posKey = loc.encodePosKey(pool, lockHolder_, pivotTime);
[codex:881785] contracts/contracts/mixins/PoolRegistry.sol:32: .checkApprovedForCrocSwap(lockHolder_, msg.sender, base, quote,
[codex:881785]
[codex:881785] thinking
[codex:881785] **Analyzing lockHolder_ assignment and approval checks**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,220p' contracts/contracts/mixins/AgentMask.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785]
[codex:881785] pragma solidity 0.8.19;
[codex:881785] pragma experimental ABIEncoderV2;
[codex:881785]
[codex:881785] import "./StorageLayout.sol";
[codex:881785] import "../interfaces/ICrocCondOracle.sol";
[codex:881785]
[codex:881785] /* @title Agent mask mixin.
[codex:881785] * @notice Maps and manages surplus balances, nonces, and external router approvals
[codex:881785] * based on the wallet addresses of end-users. */
[codex:881785] contract AgentMask is StorageLayout {
[codex:881785] using SafeCast for uint256;
[codex:881785]
[codex:881785] /* @notice Standard re-entrant gate for an unprivileged order called directly
[codex:881785] * by the user.
[codex:881785] *
[codex:881785] * @dev lockHolder_ account is set to msg.sender, and therefore this call will
[codex:881785] * touch the positions, tokens, and liquidity owned by msg.sender. */
[codex:881785] modifier reEntrantLock() {
[codex:881785]
[codex:881785] thinking
[codex:881785] **Verifying stepAgentNonce usage**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "stepAgentNonce|agentKey|approveAgent|nonce" -n contracts/contracts/mixins/AgentMask.sol' in /tmp/codex-multi-klbv7d97 succeeded in 7ms:
[codex:881785] 10: * @notice Maps and manages surplus balances, nonces, and external router approvals
[codex:881785] 51: stepAgentNonce(client, msg.sender, callPath);
[codex:881785] 109: * and if necessary increments the nonce.
[codex:881785] 115: * @param salt A salt to apply when checking the nonce. Allows users to sign
[codex:881785] 116: * an arbitrary number of multiple nonce tracks, so they don't have
[codex:881785] 118: * @param nonce The replay-attack prevention nonce. Two orders with the same salt
[codex:881785] 119: * and nonce cannot be evaluated (unless the user explicitly resets
[codex:881785] 120: * the nonce). A nonce cannot be evaluated until prior orders at
[codex:881785] 121: * lower nonces haven been successfully evaluated.
[codex:881785] 126: (uint48 deadline, uint48 alive, bytes32 salt, uint32 nonce,
[codex:881785] 133: stepNonce(client, salt, nonce);
[codex:881785] 140: * index or nonce in any form. A malicious attacker *could* change the signature, but
[codex:881785] 146: * used an expired nonce. In no state of the world does a malleable signature make a
[codex:881785] 204: function approveAgent (address router, uint32 nCalls, uint16 callPath) internal {
[codex:881785] 205: bytes32 key = agentKey(lockHolder_, router, callPath);
[codex:881785] 210: /* @notice Sets the nonce index related to EIP-712 off-chain calls.
[codex:881785] 211: * @param nonceSalt The nonce system is multi-dimensional, which allows relayers to
[codex:881785] 213: * unrelated streams. This value corresponds to the specific nonce
[codex:881785] 215: * @param nonce The nonce index value the nonce will be reset to. */
[codex:881785] 216: function resetNonce (bytes32 nonceSalt, uint32 nonce) internal {
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '220,320p' contracts/contracts/mixins/AgentMask.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] }
[codex:881785]
[codex:881785] /* @notice Same as resetNonce but conditions on the successful call return to an
[codex:881785] * external oracle. Useful for certain times that a user wants to pre-sign
[codex:881785] * a transaction, but not let it be executable unless an arbitrary condition
[codex:881785] * is met.
[codex:881785] * @param nonceSalt The nonce system is multi-dimensional, which allows relayers to
[codex:881785] * pass along arbitrary ordered messages when they come from
[codex:881785] * unrelated streams. This value corresponds to the specific nonce
[codex:881785] * dimension.
[codex:881785] * @param nonce The nonce index value the nonce will be reset to.
[codex:881785] * @param oracle The address of the external oracle (must conform to ICrocNonceOracle
[codex:881785] * interface.
[codex:881785] * @param args Arbitrary calldata passed to the oracle condition call. */
[codex:881785] function resetNonceCond (bytes32 salt, uint32 nonce, address oracle,
[codex:881785] bytes memory args) internal {
[codex:881785] bool canProceed = ICrocNonceOracle(oracle).checkCrocNonceSet
[codex:881785] (lockHolder_, salt, nonce, args);
[codex:881785] require(canProceed, "ON");
[codex:881785] resetNonce(salt, nonce);
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '320,420p' contracts/contracts/mixins/AgentMask.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] if (protoFee > 0) {
[codex:881785] feesAccum_[token] += protoFee;
[codex:881785] }
[codex:881785] }
[codex:881785]
[codex:881785] address constant MAGIC_SENDER_TIP = address(256);
[codex:881785] address constant MAGIC_ORIGIN_TIP = address(512);
[codex:881785]
[codex:881785] /* @notice Converts the user's tip recv argument to the actual address to be paid.
[codex:881785] * In practice this means that the magic values for msg.sender and tx.origin
[codex:881785] * are converted to those value's actual address for the transaction. */
[codex:881785] function maskTipRecv (address recv) view private returns (address) {
[codex:881785] if (recv == MAGIC_SENDER_TIP) {
[codex:881785] recv = msg.sender;
[codex:881785] } else if (recv == MAGIC_ORIGIN_TIP) {
[codex:881785] recv = tx.origin;
[codex:881785] }
[codex:881785] return recv;
[codex:881785] }
[codex:881785]
[codex:881785]
[codex:881785] thinking
[codex:881785] **Analyzing potential reentrancy and approval vulnerabilities**
[codex:881785]
[codex:881785] I'm reviewing the router approval logic and reentrancy protections, considering edge cases like uninitialized storage, permit interactions, and internal calls bypassing locks. The use of lockHolder_ seems to prevent most reentrant exploits, but I'm curious if delegatecalls to sidecar proxies or debitTransfer in SettleLayer might introduce issues. I'll need to dig into SettleLayer next to verify.
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,240p' contracts/contracts/mixins/SettleLayer.sol" in /tmp/codex-multi-klbv7d97 succeeded in 7ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785] pragma solidity 0.8.19;
[codex:881785] pragma experimental ABIEncoderV2;
[codex:881785]
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/TransferHelper.sol';
[codex:881785] import '../libraries/TokenFlow.sol';
[codex:881785] import './StorageLayout.sol';
[codex:881785] import './AgentMask.sol';
[codex:881785]
[codex:881785] /* @title Settle layer mixin
[codex:881785] * @notice Provides facilities for settling, previously determined, collateral flows
[codex:881785] * between the user and the exchange. Supports both ERC20 tokens as well as
[codex:881785] * native Ethereum as asset collateral. */
[codex:881785] contract SettleLayer is AgentMask {
[codex:881785] using SafeCast for uint256;
[codex:881785] using SafeCast for uint128;
[codex:881785] using TokenFlow for address;
[codex:881785]
[codex:881785] /* @notice Completes the user<->exchange collateral settlement at the final hop
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '240,520p' contracts/contracts/mixins/SettleLayer.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] * user. Positive debit to the exchange.
[codex:881785] * @para useReserves If true, any settlement is first done against the user's surplus
[codex:881785] * collateral account at the exchange rather than sending Ether. */
[codex:881785] function transactEther (address debitor, address creditor,
[codex:881785] int128 flow, bool useReserves)
[codex:881785] private {
[codex:881785] // This is the only point in a standard transaction where msg.value is accessed.
[codex:881785] uint128 recvEth = popMsgVal();
[codex:881785] if (flow != 0) {
[codex:881785] transactFlow(debitor, creditor, flow, address(0), recvEth, useReserves);
[codex:881785] } else {
[codex:881785] refundEther(creditor, recvEth);
[codex:881785] }
[codex:881785] }
[codex:881785]
[codex:881785] /* @notice Called to settle a net balance of ERC20 tokens
[codex:881785] * @dev transactEther Unlike transactEther this can be called multiple times, even
[codex:881785] * on the same token.
[codex:881785] *
[codex:881785] * @param debitor The address to collect any net debit from.
[codex:881785]
[codex:881785] thinking
[codex:881785] **Analyzing fee-on-transfer token risks**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "TODO|FIXME|HACK|BUG|unsafe|unchecked" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 11ms:
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:14: unchecked { // Arithmetic checks done explicitly
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:28: unchecked { // Arithmetic checks done explicitly
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:38: unchecked { // Arithmetic checks done explicitly
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:112: unchecked {
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:131: unchecked {
[codex:881785] contracts/contracts/libraries/LiquidityMath.sol:171: unchecked { // Intermediate results will always fit in 256-bits
[codex:881785] contracts/contracts/libraries/BitMath.sol:14: // Set to unchecked, but the original UniV3 library was written in a pre-checked version of Solidity
[codex:881785] contracts/contracts/libraries/BitMath.sol:15: unchecked{
[codex:881785] contracts/contracts/libraries/BitMath.sol:57: // Set to unchecked, but the original UniV3 library was written in a pre-checked version of Solidity
[codex:881785] contracts/contracts/libraries/BitMath.sol:58: unchecked {
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:68: unchecked {
[codex:881785] contracts/contracts/libraries/CurveAssimilate.sol:136: unchecked {
[codex:881785] contracts/contracts/mixins/TickCensus.sol:267: unchecked {
[codex:881785] contracts/contracts/mixins/TickCensus.sol:281: unchecked {
[codex:881785] contracts/contracts/libraries/Encoding.sol:21: * functions are unchecked/unsanitized. The only use of this function is to
[codex:881785] contracts/contracts/libraries/Encoding.sol:34: unchecked { // 0 + 32*6 is well with bounds of 256 bits
[codex:881785] contracts/contracts/libraries/Encoding.sol:41: unchecked {
[codex:881785] contracts/contracts/libraries/Encoding.sol:58: unchecked {
[codex:881785] contracts/contracts/libraries/Encoding.sol:64: unchecked {
[codex:881785] contracts/contracts/libraries/Encoding.sol:81: unchecked {
[codex:881785]
[codex:881785] thinking
[codex:881785] **Analyzing potential reentrancy and pool initialization issues**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "initLiq|setNewPoolLiq|initCurve|initPool" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 9ms:
[codex:881785] contracts/contracts/mixins/PoolRegistry.sol:187: function setNewPoolLiq (uint128 liqAnte) internal {
[codex:881785] contracts/contracts/mixins/PoolRegistry.sol:242: * lock to create the pool. (See setNewPoolLiq() above) */
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:53: setNewPoolLiq(cmd);
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:86: initPool(cmd);
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:117: function initPool (bytes calldata cmd) private {
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:121: (PoolSpecs.PoolCursor memory pool, uint128 initLiq) =
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:126: (int128 baseFlow, int128 quoteFlow) = initCurve(pool, price, initLiq);
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:172: function setNewPoolLiq (bytes calldata input) private {
[codex:881785] contracts/contracts/callpaths/ColdPath.sol:177: setNewPoolLiq(liq);
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:230: * @param initLiq The initial ambient liquidity commitment that will be permanetely
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:239: function initCurve (PoolSpecs.PoolCursor memory pool,
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:240: uint128 price, uint128 initLiq)
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:244: if (initLiq == 0) { initLiq = 1; }
[codex:881785] contracts/contracts/mixins/MarketSequencer.sol:245: (baseFlow, quoteFlow) = lockAmbient(curve, initLiq);
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '160,260p' contracts/contracts/mixins/PoolRegistry.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] * @param jitThresh The minimum time (in seconds) a concentrated LP position must
[codex:881785] * rest before it can be burned.
[codex:881785] * @param knockoutBits The knockout liquiidity parameter bit flags for the pool. */
[codex:881785] function setPoolSpecs (address base, address quote, uint256 poolIdx,
[codex:881785] uint16 feeRate, uint16 tickSize, uint8 jitThresh,
[codex:881785] uint8 knockoutBits) internal {
[codex:881785] PoolSpecs.Pool storage pool = selectPool(base, quote, poolIdx);
[codex:881785] pool.feeRate_ = feeRate;
[codex:881785] pool.tickSize_ = tickSize;
[codex:881785] pool.jitThresh_ = jitThresh;
[codex:881785] pool.knockoutBits_ = knockoutBits;
[codex:881785] }
[codex:881785]
[codex:881785] // 10 million represents a sensible upper bound on initial pool, considering that the highest
[codex:881785] // price token per wei is USDC and similar 6-digit stablecoins. So 10 million in that context
[codex:881785] // represents about $10 worth of burned value. Considering that the initial liquidity commitment
[codex:881785] // should be economic de minims, because it's permenately locked, we wouldn't want to be much
[codex:881785] // higher than this.
[codex:881785] uint128 constant MAX_INIT_POOL_LIQ = 10_000_000;
[codex:881785]
[codex:881785]
[codex:881785] thinking
[codex:881785] **Checking initCurve liquidity handling**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '220,300p' contracts/contracts/mixins/MarketSequencer.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785]
[codex:881785] /* @notice Initializes a new liquidity curve for the pool.
[codex:881785]
[codex:881785] * @dev This does *not* check whether the curve was previously initialized. It's
[codex:881785] * the caller's responsibility to make sure this is never called on an already
[codex:881785] * initialized pool.
[codex:881785] *
[codex:881785] * @param pool The pre-loaded speciication and hash of the pool to be swapped against.
[codex:881785] * @param price The initial price to set the curve at. Represented as the square root
[codex:881785] * of price in Q64.64 fixed point.
[codex:881785] * @param initLiq The initial ambient liquidity commitment that will be permanetely
[codex:881785] * locked in the pool. Represeted as sqrt(X*Y) constant-product AMM
[codex:881785] * liquidity.
[codex:881785] *
[codex:881785] * @return baseFlow The total amount of base-side token collateral that must be
[codex:881785] * committed to the pool as part of the mint. Will always be
[codex:881785] * positive as it's paid to the pool from the user.
[codex:881785] * @return quoteFlow The total amount of quote-side token collateral that must be
[codex:881785] * committed to the pool as part of the mint. */
[codex:881785] function initCurve (PoolSpecs.PoolCursor memory pool,
[codex:881785]
[codex:881785] thinking
[codex:881785] **Checking initialization and ProtocolAccount**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,200p' contracts/contracts/mixins/ProtocolAccount.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785]
[codex:881785] pragma solidity 0.8.19;
[codex:881785]
[codex:881785] import '../libraries/TransferHelper.sol';
[codex:881785] import '../libraries/TokenFlow.sol';
[codex:881785] import '../libraries/SafeCast.sol';
[codex:881785] import './StorageLayout.sol';
[codex:881785]
[codex:881785] /* @title Protocol Account Mixin
[codex:881785] * @notice Tracks and pays out the accumulated protocol fees across the entire exchange
[codex:881785] * These are the fees belonging to the CrocSwap protocol, not the liquidity
[codex:881785] * miners.
[codex:881785] * @dev Unlike liquidity fees, protocol fees are accumulated as resting tokens
[codex:881785] * instead of ambient liquidity. */
[codex:881785] contract ProtocolAccount is StorageLayout {
[codex:881785] using SafeCast for uint256;
[codex:881785] using TokenFlow for address;
[codex:881785]
[codex:881785] /* @notice Called at the completion of a swap event, incrementing any protocol
[codex:881785]
[codex:881785] thinking
[codex:881785] **Analyzing potential protocol vulnerabilities**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "callUserCmd|callProtocolCmd" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 10ms:
[codex:881785] contracts/contracts/CrocSwapDex.sol:105: callProtocolCmd(callpath, cmd);
[codex:881785] contracts/contracts/CrocSwapDex.sol:117: return callUserCmd(callpath, cmd);
[codex:881785] contracts/contracts/CrocSwapDex.sol:141: output = callUserCmd(callpath, cmd);
[codex:881785] contracts/contracts/CrocSwapDex.sol:158: return callUserCmd(callpath, cmd);
[codex:881785] contracts/contracts/mixins/ProxyCaller.sol:22: function callProtocolCmd (uint16 proxyIdx, bytes calldata input) internal
[codex:881785] contracts/contracts/mixins/ProxyCaller.sol:31: function callUserCmd (uint16 proxyIdx, bytes calldata input)
[codex:881785] contracts/contracts/mixins/ProxyCaller.sol:39: function callUserCmdMem (uint16 proxyIdx, bytes memory input)
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,120p' contracts/contracts/mixins/ProxyCaller.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785]
[codex:881785] pragma solidity 0.8.19;
[codex:881785]
[codex:881785] import './StorageLayout.sol';
[codex:881785] import '../libraries/CurveCache.sol';
[codex:881785] import '../libraries/Chaining.sol';
[codex:881785] import '../libraries/Directives.sol';
[codex:881785]
[codex:881785] /* @title Proxy Caller
[codex:881785] * @notice Because of the Ethereum contract limit, much of the CrocSwap code is pushed
[codex:881785] * into sidecar proxy contracts, which is involed with DELEGATECALLs. The code
[codex:881785] * moved to these sidecars is less gas critical than the code in the core contract.
[codex:881785] * This provides a facility for invoking proxy conjtracts in a consistent way by
[codex:881785] * setting up the DELEGATECALLs in a standard and safe manner. */
[codex:881785] contract ProxyCaller is StorageLayout {
[codex:881785] using CurveCache for CurveCache.Cache;
[codex:881785] using CurveMath for CurveMath.CurveState;
[codex:881785] using Chaining for Chaining.PairFlow;
[codex:881785]
[codex:881785]
[codex:881785] thinking
[codex:881785] **Analyzing reentrancy and permission safeguards**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,160p' contracts/contracts/mixins/PoolRegistry.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785]
[codex:881785] pragma solidity 0.8.19;
[codex:881785]
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/PoolSpecs.sol';
[codex:881785] import '../libraries/PriceGrid.sol';
[codex:881785] import '../interfaces/ICrocPermitOracle.sol';
[codex:881785] import './StorageLayout.sol';
[codex:881785]
[codex:881785] /* @title Pool registry mixin
[codex:881785] * @notice Provides a facility for registering and querying pool types on pairs and
[codex:881785] * generalized pool templates for pools yet to be initialized. */
[codex:881785] contract PoolRegistry is StorageLayout {
[codex:881785] using PoolSpecs for uint8;
[codex:881785] using PoolSpecs for PoolSpecs.Pool;
[codex:881785]
[codex:881785] uint8 constant SWAP_ACT_CODE = 1;
[codex:881785] uint8 constant MINT_ACT_CODE = 2;
[codex:881785] uint8 constant BURN_ACT_CODE = 3;
[codex:881785]
[codex:881785] thinking
[codex:881785] **Analyzing potential reentrancy risk**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '150,240p' contracts/contracts/mixins/TradeMatcher.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] * @param lowTick The tick index of the lower boundary of the range order.
[codex:881785] * @param highTick The tick index of the upper boundary of the range order.
[codex:881785] * @param liqAdded The amount of ambient liquidity being minted represented as
[codex:881785] * sqrt(X*Y) where X,Y are the collateral reserves in a constant-
[codex:881785] * product AMM
[codex:881785] * @param poolHash The hash indexing the pool this liquidity curve applies to.
[codex:881785] *
[codex:881785] * @return baseFlow The amount of base-side token collateral returned by this
[codex:881785] * operations. Will always be negative indicating, a credit from
[codex:881785] * the pool to the user.
[codex:881785] * @return quoteFlow The amount of quote-side token collateral returned by this
[codex:881785] * operation. */
[codex:881785] function burnRange (CurveMath.CurveState memory curve, int24 priceTick,
[codex:881785] int24 lowTick, int24 highTick, uint128 liquidity,
[codex:881785] bytes32 poolHash, address lpOwner)
[codex:881785] internal returns (int128, int128) {
[codex:881785] uint64 feeMileage = removeBookLiq(poolHash, priceTick, lowTick, highTick,
[codex:881785] liquidity.liquidityToLots(),
[codex:881785] curve.concGrowth_);
[codex:881785] uint64 rewards = burnPosLiq(lpOwner, poolHash, lowTick, highTick, liquidity,
[codex:881785]
[codex:881785]
[codex:881785] thinking
[codex:881785] **Analyzing security and reentrancy risks**
[codex:881785]
[codex:881785] I'm carefully reviewing contract functions and flows for potential reentrancy vulnerabilities, authorization issues, signature mismatches, and overflow risks. I'm focusing on how external calls interact with state changes, the correctness of signature encoding in EIP-712, relayer condition checks, and whether any unusual edge cases might allow exploits or fund misappropriation. So far, no clear exploits emerge, but I want to be sure no subtle gaps remain.
[codex:881785] thinking
[codex:881785] **Reviewing token flow and command handling intricacies**
[codex:881785]
[codex:881785] There is detailed exploration of edge cases involving ETH and token flows, deflationary tokens, surplus handling, nonce resets, upgrade gating, and subtle ABI encoding nuances in command decoding. I’m weighing if any of these create real exploits, especially around token transfers, surplus collateral usage, or userCmd vs protocolCmd crossover, but no concrete profit paths are apparent so far.
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "UserCmd" contracts/contracts -S' in /tmp/codex-multi-klbv7d97 succeeded in 9ms:
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:69: if (code == UserCmd.MINT_RANGE_LIQ_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:72: } else if (code == UserCmd.MINT_RANGE_BASE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:75: } else if (code == UserCmd.MINT_RANGE_QUOTE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:79: } else if (code == UserCmd.BURN_RANGE_LIQ_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:82: } else if (code == UserCmd.BURN_RANGE_BASE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:85: } else if (code == UserCmd.BURN_RANGE_QUOTE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:89: } else if (code == UserCmd.MINT_AMBIENT_LIQ_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:91: } else if (code == UserCmd.MINT_AMBIENT_BASE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:94: } else if (code == UserCmd.MINT_AMBIENT_QUOTE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:98: } else if (code == UserCmd.BURN_AMBIENT_LIQ_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:100: } else if (code == UserCmd.BURN_AMBIENT_BASE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:103: } else if (code == UserCmd.BURN_AMBIENT_QUOTE_LP) {
[codex:881785] contracts/contracts/callpaths/WarmPath.sol:107: } else if (code == UserCmd.HARVEST_LP) {
[codex:881785] contracts/contracts/libraries/ProtocolCmd.sol:70:library UserCmd {
[codex:881785] contracts/contracts/callpaths/KnockoutPath.sol:95: if (code == UserCmd.MINT_KNOCKOUT) {
[codex:881785] contracts/contracts/callpaths/KnockoutPath.sol:97: } else if (code == UserCmd.BURN_KNOCKOUT) {
[codex:881785] contracts/contracts/callpaths/KnockoutPath.sol:99: } else if (code == UserCmd.CLAIM_KNOCKOUT) {
[codex:881785] contracts/contracts/callpaths/KnockoutPath.sol:101: } else if (code == UserCmd.RECOVER_KNOCKOUT) {
[codex:881785] contracts/contracts/CrocSwapDex.sol:117: return callUserCmd(callpath, cmd);
[codex:881785] contracts/contracts/CrocSwapDex.sol:141: output = callUserCmd(callpath, cmd);
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,160p' contracts/contracts/libraries/ProtocolCmd.sol" in /tmp/codex-multi-klbv7d97 succeeded in 6ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785]
[codex:881785] pragma solidity 0.8.19;
[codex:881785]
[codex:881785] import './SafeCast.sol';
[codex:881785]
[codex:881785] /* @title Protocol Command library.
[codex:881785] *
[codex:881785] * @notice To allow for flexibility and upgradeability the top-level interface to the Croc
[codex:881785] * dex contract contains a general purpose encoding scheme. User commands specify a
[codex:881785] * proxy contract index, and input is passed raw and unformatted. Each proxy contract
[codex:881785] * is free to specify its own input format, but by convention many proxy contracts
[codex:881785] * adhere to a specification where the first 32 bytes of the input encodes a sub-command
[codex:881785] * code. This library contains all of these sub-command codes in a single location for
[codex:881785] * easy lookup. */
[codex:881785] library ProtocolCmd {
[codex:881785]
[codex:881785]
[codex:881785] ////////////////////////////////////////////////////////////////////////////
[codex:881785] // Privileged commands invokable by direct governance only.
[codex:881785]
[codex:881785] thinking
[codex:881785] **Analyzing potential protocol vulnerabilities**
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '1,260p' contracts/contracts/callpaths/KnockoutPath.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] // SPDX-License-Identifier: GPL-3
[codex:881785]
[codex:881785] pragma solidity 0.8.19;
[codex:881785]
[codex:881785] import '../libraries/Directives.sol';
[codex:881785] import '../libraries/Encoding.sol';
[codex:881785] import '../libraries/TokenFlow.sol';
[codex:881785] import '../libraries/PriceGrid.sol';
[codex:881785] import '../libraries/ProtocolCmd.sol';
[codex:881785] import '../mixins/SettleLayer.sol';
[codex:881785] import '../mixins/PoolRegistry.sol';
[codex:881785] import '../mixins/TradeMatcher.sol';
[codex:881785]
[codex:881785] /* @title Knockout Flag Proxy
[codex:881785] * @notice This is an internal library callpath that's called when a swap triggers a
[codex:881785] * knockout liquidity event by crossing a given bump point.
[codex:881785] * @dev It exists as a separate callpath from the normal swap() code path because crossing
[codex:881785] * a knockout pivot is a relatively rare event and the code won't fully fit into the
[codex:881785] * hot path contract. */
[codex:881785] contract KnockoutFlagPath is KnockoutCounter {
[codex:881785]
[codex:881785] thinking
[codex:881785] **Investigating KnockoutLiq usage**
[codex:881785] exec
[codex:881785] /bin/bash -lc 'rg -n "claimKnockout|recoverKnockout|Knockout" contracts/contracts/mixins/KnockoutCounter.sol contracts/contracts/libraries/KnockoutLiq.sol -S' in /tmp/codex-multi-klbv7d97 succeeded in 9ms:
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:6:import '../libraries/KnockoutLiq.sol';
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:11:/* @title Knockout Counter
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:15: * the curve or debiting/creditiing collateral. Knockout liquidity positions
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:18:contract KnockoutCounter is LevelBook, PoolRegistry, AgentMask {
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:23: using KnockoutLiq for KnockoutLiq.KnockoutMerkle;
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:24: using KnockoutLiq for KnockoutLiq.KnockoutPivot;
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:25: using KnockoutLiq for KnockoutLiq.KnockoutPosLoc;
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:30: event CrocKnockoutCross (bytes32 indexed pool, int24 indexed tick, bool isBid,
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:47: function crossKnockout (bytes32 pool, bool isBid, int24 tick,
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:49: bytes32 lvlKey = KnockoutLiq.encodePivotKey(pool, isBid, tick);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:50: KnockoutLiq.KnockoutPivot storage pivot = knockoutPivots_[lvlKey];
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:51: KnockoutLiq.KnockoutMerkle storage merkle = knockoutMerkles_[lvlKey];
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:56: merkle.commitKnockout(pivot, feeRange);
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:57: emit CrocKnockoutCross(pool, tick, isBid, merkle.pivotTime_, merkle.feeMileage_,
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:58: KnockoutLiq.commitEntropySalt());
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:64: function knockoutRangeLiq (bytes32 pool, KnockoutLiq.KnockoutPivot memory pivot,
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:95: function addKnockoutLiq (bytes32 pool, uint8 knockoutBits,
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:97: KnockoutLiq.KnockoutPosLoc memory loc, uint96 lots)
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:109: * alive. (Knocked out positions should use claimKnockout() instead).
[codex:881785] contracts/contracts/mixins/KnockoutCounter.sol:127: function rmKnockoutLiq (bytes32 pool, int24 curveTick, uint64 feeGlobal,
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '180,260p' contracts/contracts/mixins/KnockoutCounter.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] * from. (See comments for struct for full explanation of fields)
[codex:881785] * @param merkleRoot The root of the Merkle proof to recover the accumulted fees.
[codex:881785] * @param merkleProof The user-supplied proof for the accumulated fees earned by
[codex:881785] * the knockout pivot. (Transaction will revert if proof is bad)
[codex:881785] *
[codex:881785] * @return lots The liquidity (in 1024-unit lots) claimable by the underlying
[codex:881785] * position. Note that this liquidity should be converted to
[codex:881785] * collateral at the knockout price *not* the current curve price).
[codex:881785] * @return rewards The in-range concentrated liquidity rewards earned by the position.
[codex:881785] */
[codex:881785] function claimPostKnockout (bytes32 pool, KnockoutLiq.KnockoutPosLoc memory loc,
[codex:881785] uint160 merkleRoot, uint256[] memory merkleProof)
[codex:881785] internal returns (uint96 lots, uint64 rewards) {
[codex:881785] (uint32 pivotTime, uint64 feeSnap) =
[codex:881785] proveKnockout(pool, loc, merkleRoot, merkleProof);
[codex:881785] (lots, rewards) = claimPosition(pool, loc, feeSnap, pivotTime);
[codex:881785] }
[codex:881785]
[codex:881785] /* @notice Like claimKnockout(), but avoids the need for Merkle proof altogether.
[codex:881785] * This means the underlying collateral is recoverable, but user renounces
[codex:881785] exec
[codex:881785] /bin/bash -lc "sed -n '260,340p' contracts/contracts/mixins/KnockoutCounter.sol" in /tmp/codex-multi-klbv7d97 succeeded in 5ms:
[codex:881785] if (lots == pos.lots_) {
[codex:881785] // Get SSTORE refund on full burn
[codex:881785] pos.lots_ = 0;
[codex:881785] pos.feeMileage_ = 0;
[codex:881785] pos.timestamp_ = 0;
[codex:881785] } else {
[codex:881785] pos.lots_ -= lots;
[codex:881785] }
[codex:881785] }
[codex:881785]
[codex:881785] /* @notice Removes the tracking data for an individual knockout liquidity position
[codex:881785] * that's being claimed post knockout.
[codex:881785] * @dev Should only be called *after* the underlying pivot is knocked out.
[codex:881785] * @param pool The hash of the pool the liquidity applies to.
[codex:881785] * @param loc The context/location data of the knockout liquidity position.
[codex:881785] * @param feeRange The cumulative fee mileage for the concentrated liquidity range
[codex:881785] * at current mint time.
[codex:881785] * @param pivotTime The time corresponding to the underlying pivot creation.
[codex:881785] * @return lots The amount of liquidity lots in the underlying position.
[codex:881785] * @return feeRewards The accumulated fee rewards rate on the position. */
[codex:881785]
[codex:881785] thinking
[codex:881785] **Preparing audit findings response**
[codex:881785] codex
[codex:881785] {"no_findings":true,"summary":"No concrete, exploitable paths to extract value were identified after reviewing the provided sources.","findings":[]}
[codex:881785] tokens used
[codex:881785] 76,990
[codex:881785] {"no_findings":true,"summary":"No concrete, exploitable paths to extract value were identified after reviewing the provided sources.","findings":[]}
{
"codex": {
"ran_at": "2026-01-02T23:14:42.608740+00:00",
"returncode": 0
},
"summary": "No concrete, exploitable paths to extract value were identified after reviewing the provided sources.",
"raw_final": {
"summary": "No concrete, exploitable paths to extract value were identified after reviewing the provided sources.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0070 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x3d719cd9 00000019: GT 0000001a: PUSH2 0x004e 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x3d719cd9 00000024: EQ 00000025: PUSH2 0x00dc 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x7c519625 0000002f: EQ 00000030: PUSH2 0x0109 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0x90b33ce5 0000003a: EQ 0000003b: PUSH2 0x0125 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xa15112f9 00000045: EQ 00000046: PUSH2 0x0138 00000049: JUMPI 0000004a: PUSH1 0x00 0000004c: DUP1 0000004d: REVERT 0000004e: JUMPDEST 0000004f: DUP1 00000050: PUSH4 0x02ce8af3 00000055: EQ 00000056: PUSH2 0x0075 00000059: JUMPI 0000005a: DUP1 0000005b: PUSH4 0x08719070 00000060: EQ 00000061: PUSH2 0x00a7 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0x13fd34f4 0000006b: EQ 0000006c: PUSH2 0x00c7 0000006f: JUMPI 00000070: JUMPDEST 00000071: PUSH1 0x00 00000073: DUP1 00000074: REVERT 00000075: JUMPDEST 00000076: CALLVALUE 00000077: DUP1 00000078: ISZERO 00000079: PUSH2 0x0081 0000007c: JUMPI 0000007d: PUSH1 0x00 0000007f: DUP1 00000080: REVERT 00000081: JUMPDEST 00000082: POP 00000083: PUSH2 0x0094 00000086: PUSH2 0x0090 00000089: CALLDATASIZE 0000008a: PUSH1 0x04 0000008c: PUSH2 0x54f4 0000008f: JUMP 00000090: JUMPDEST 00000091: SLOAD 00000092: SWAP1 00000093: JUMP 00000094: JUMPDEST 00000095: PUSH1 0x40 00000097: MLOAD 00000098: SWAP1 00000099: DUP2 0000009a: MSTORE 0000009b: PUSH1 0x20 0000009d: ADD 0000009e: JUMPDEST 0000009f: PUSH1 0x40 000000a1: MLOAD 000000a2: DUP1 000000a3: SWAP2 000000a4: SUB 000000a5: SWAP1 000000a6: RETURN 000000a7: JUMPDEST 000000a8: PUSH2 0x00ba 000000ab: PUSH2 0x00b5 000000ae: CALLDATASIZE 000000af: PUSH1 0x04 000000b1: PUSH2 0x5566 000000b4: JUMP 000000b5: JUMPDEST 000000b6: PUSH2 0x014b 000000b9: JUMP 000000ba: JUMPDEST 000000bb: PUSH1 0x40 000000bd: MLOAD 000000be: PUSH2 0x009e 000000c1: SWAP2 000000c2: SWAP1 000000c3: PUSH2 0x5663 000000c6: JUMP 000000c7: JUMPDEST 000000c8: PUSH2 0x00da 000000cb: PUSH2 0x00d5 000000ce: CALLDATASIZE 000000cf: PUSH1 0x04 000000d1: PUSH2 0x56c2 000000d4: JUMP 000000d5: JUMPDEST 000000d6: PUSH2 0x030a 000000d9: JUMP 000000da: JUMPDEST 000000db: STOP 000000dc: JUMPDEST 000000dd: PUSH2 0x00ef 000000e0: PUSH2 0x00ea 000000e3: CALLDATASIZE 000000e4: PUSH1 0x04 000000e6: PUSH2 0x577b 000000e9: JUMP 000000ea: JUMPDEST 000000eb: PUSH2 0x03f7 000000ee: JUMP 000000ef: JUMPDEST 000000f0: PUSH1 0x40 000000f2: DUP1 000000f3: MLOAD 000000f4: PUSH1 0x0f 000000f6: SWAP4 000000f7: DUP5 000000f8: SIGNEXTEND 000000f9: DUP2 000000fa: MSTORE 000000fb: SWAP2 000000fc: SWAP1 000000fd: SWAP3 000000fe: SIGNEXTEND 000000ff: PUSH1 0x20 00000101: DUP3 00000102: ADD 00000103: MSTORE 00000104: ADD 00000105: PUSH2 0x009e 00000108: JUMP 00000109: JUMPDEST 0000010a: CALLVALUE 0000010b: DUP1 0000010c: ISZERO 0000010d: PUSH2 0x0115 00000110: JUMPI 00000111: PUSH1 0x00 00000113: DUP1 00000114: REVERT 00000115: JUMPDEST 00000116: POP 00000117: PUSH1 0x40 00000119: MLOAD 0000011a: PUSH1 0x01 0000011c: DUP2 0000011d: MSTORE 0000011e: PUSH1 0x20 00000120: ADD 00000121: PUSH2 0x009e 00000124: JUMP 00000125: JUMPDEST 00000126: PUSH2 0x00ba 00000129: PUSH2 0x0133 0000012c: CALLDATASIZE 0000012d: PUSH1 0x04 0000012f: PUSH2 0x583e 00000132: JUMP 00000133: JUMPDEST 00000134: PUSH2 0x04bd 00000137: JUMP 00000138: JUMPDEST 00000139: PUSH2 0x00ba 0000013c: PUSH2 0x0146 0000013f: CALLDATASIZE 00000140: PUSH1 0x04 00000142: PUSH2 0x589b 00000145: JUMP 00000146: JUMPDEST 00000147: PUSH2 0x056f 0000014a: JUMP 0000014b: JUMPDEST 0000014c: PUSH1 0x60 0000014e: PUSH1 0x40 00000150: MLOAD 00000151: DUP1 00000152: PUSH1 0x80 00000154: ADD 00000155: PUSH1 0x40 00000157: MSTORE 00000158: DUP1 00000159: DUP12 0000015a: PUSH2 0xffff 0000015d: AND 0000015e: DUP2 0000015f: MSTORE 00000160: PUSH1 0x20 00000162: ADD 00000163: DUP11 00000164: DUP11 00000165: DUP1 00000166: DUP1 00000167: PUSH1 0x1f 00000169: ADD 0000016a: PUSH1 0x20 0000016c: DUP1 0000016d: SWAP2 0000016e: DIV 0000016f: MUL 00000170: PUSH1 0x20 00000172: ADD 00000173: PUSH1 0x40 00000175: MLOAD 00000176: SWAP1 00000177: DUP2 00000178: ADD 00000179: PUSH1 0x40 0000017b: MSTORE 0000017c: DUP1 0000017d: SWAP4 0000017e: SWAP3 0000017f: SWAP2 00000180: SWAP1 00000181: DUP2 00000182: DUP2 00000183: MSTORE 00000184: PUSH1 0x20 00000186: ADD 00000187: DUP4 00000188: DUP4 00000189: DUP1 0000018a: DUP3 0000018b: DUP5 0000018c: CALLDATACOPY 0000018d: PUSH1 0x00 0000018f: SWAP3 00000190: ADD 00000191: SWAP2 00000192: SWAP1 00000193: SWAP2 00000194: MSTORE 00000195: POP 00000196: POP 00000197: POP 00000198: SWAP1 00000199: DUP3 0000019a: MSTORE 0000019b: POP 0000019c: PUSH1 0x40 0000019e: DUP1 0000019f: MLOAD 000001a0: PUSH1 0x20 000001a2: PUSH1 0x1f 000001a4: DUP12 000001a5: ADD 000001a6: DUP2 000001a7: SWAP1 000001a8: DIV 000001a9: DUP2 000001aa: MUL 000001ab: DUP3 000001ac: ADD 000001ad: DUP2 000001ae: ADD 000001af: SWAP1 000001b0: SWAP3 000001b1: MSTORE 000001b2: DUP10 000001b3: DUP2 000001b4: MSTORE 000001b5: SWAP2 000001b6: DUP2 000001b7: ADD 000001b8: SWAP2 000001b9: SWAP1 000001ba: DUP11 000001bb: SWAP1 000001bc: DUP11 000001bd: SWAP1 000001be: DUP2 000001bf: SWAP1 000001c0: DUP5 000001c1: ADD 000001c2: DUP4 000001c3: DUP3 000001c4: DUP1 000001c5: DUP3 000001c6: DUP5 000001c7: CALLDATACOPY 000001c8: PUSH1 0x00 000001ca: SWAP3 000001cb: ADD 000001cc: SWAP2 000001cd: SWAP1 000001ce: SWAP2 000001cf: MSTORE 000001d0: POP 000001d1: POP 000001d2: POP 000001d3: SWAP1 000001d4: DUP3 000001d5: MSTORE 000001d6: POP 000001d7: PUSH1 0x40 000001d9: DUP1 000001da: MLOAD 000001db: PUSH1 0x20 000001dd: PUSH1 0x1f 000001df: DUP10 000001e0: ADD 000001e1: DUP2 000001e2: SWAP1 000001e3: DIV 000001e4: DUP2 000001e5: MUL 000001e6: DUP3 000001e7: ADD 000001e8: DUP2 000001e9: ADD 000001ea: SWAP1 000001eb: SWAP3 000001ec: MSTORE 000001ed: DUP8 000001ee: DUP2 000001ef: MSTORE 000001f0: SWAP2 000001f1: DUP2 000001f2: ADD 000001f3: SWAP2 000001f4: SWAP1 000001f5: DUP9 000001f6: SWAP1 000001f7: DUP9 000001f8: SWAP1 000001f9: DUP2 000001fa: SWAP1 000001fb: DUP5 000001fc: ADD 000001fd: DUP4 000001fe: DUP3 000001ff: DUP1 00000200: DUP3 00000201: DUP5 00000202: CALLDATACOPY 00000203: PUSH1 0x00 00000205: SWAP3 00000206: ADD 00000207: DUP3 00000208: SWAP1 00000209: MSTORE 0000020a: POP 0000020b: SWAP4 0000020c: SWAP1 0000020d: SWAP5 0000020e: MSTORE 0000020f: POP 00000210: POP 00000211: SLOAD 00000212: DUP6 00000213: SWAP2 00000214: POP 00000215: DUP5 00000216: SWAP1 00000217: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000022c: AND 0000022d: ISZERO 0000022e: PUSH2 0x0236 00000231: JUMPI 00000232: PUSH1 0x00 00000234: DUP1 00000235: REVERT 00000236: JUMPDEST 00000237: PUSH2 0x0241 0000023a: DUP4 0000023b: DUP4 0000023c: DUP4 0000023d: PUSH2 0x05fc 00000240: JUMP 00000241: JUMPDEST 00000242: PUSH1 0x00 00000244: DUP1 00000245: SLOAD 00000246: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000267: AND 00000268: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000027d: SWAP3 0000027e: SWAP1 0000027f: SWAP3 00000280: AND 00000281: SWAP2 00000282: SWAP1 00000283: SWAP2 00000284: OR 00000285: SWAP1 00000286: SSTORE 00000287: PUSH2 0x0291 0000028a: DUP14 0000028b: DUP14 0000028c: DUP14 0000028d: PUSH2 0x0619 00000290: JUMP 00000291: JUMPDEST 00000292: SWAP4 00000293: POP 00000294: PUSH2 0x02d2 00000297: DUP9 00000298: DUP9 00000299: DUP1 0000029a: DUP1 0000029b: PUSH1 0x1f 0000029d: ADD 0000029e: PUSH1 0x20 000002a0: DUP1 000002a1: SWAP2 000002a2: DIV 000002a3: MUL 000002a4: PUSH1 0x20 000002a6: ADD 000002a7: PUSH1 0x40 000002a9: MLOAD 000002aa: SWAP1 000002ab: DUP2 000002ac: ADD 000002ad: PUSH1 0x40 000002af: MSTORE 000002b0: DUP1 000002b1: SWAP4 000002b2: SWAP3 000002b3: SWAP2 000002b4: SWAP1 000002b5: DUP2 000002b6: DUP2 000002b7: MSTORE 000002b8: PUSH1 0x20 000002ba: ADD 000002bb: DUP4 000002bc: DUP4 000002bd: DUP1 000002be: DUP3 000002bf: DUP5 000002c0: CALLDATACOPY 000002c1: PUSH1 0x00 000002c3: SWAP3 000002c4: ADD 000002c5: SWAP2 000002c6: SWAP1 000002c7: SWAP2 000002c8: MSTORE 000002c9: POP 000002ca: PUSH2 0x0748 000002cd: SWAP3 000002ce: POP 000002cf: POP 000002d0: POP 000002d1: JUMP 000002d2: JUMPDEST 000002d3: PUSH1 0x00 000002d5: DUP1 000002d6: SLOAD 000002d7: PUSH32 0xffffffffffffffffffff00ff0000000000000000000000000000000000000000 000002f8: AND 000002f9: SWAP1 000002fa: SSTORE 000002fb: POP 000002fc: POP 000002fd: POP 000002fe: SWAP10 000002ff: SWAP9 00000300: POP 00000301: POP 00000302: POP 00000303: POP 00000304: POP 00000305: POP 00000306: POP 00000307: POP 00000308: POP 00000309: JUMP 0000030a: JUMPDEST 0000030b: PUSH3 0x010001 0000030f: SLOAD 00000310: DUP2 00000311: SWAP1 00000312: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000327: AND 00000328: CALLER 00000329: EQ 0000032a: DUP1 0000032b: ISZERO 0000032c: PUSH2 0x034b 0000032f: JUMPI 00000330: POP 00000331: PUSH1 0x00 00000333: SLOAD 00000334: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000349: AND 0000034a: ISZERO 0000034b: JUMPDEST 0000034c: PUSH2 0x0354 0000034f: JUMPI 00000350: PUSH1 0x00 00000352: DUP1 00000353: REVERT 00000354: JUMPDEST 00000355: PUSH1 0x00 00000357: DUP1 00000358: SLOAD 00000359: PUSH32 0xffffffffffffffffffffff000000000000000000000000000000000000000000 0000037a: AND 0000037b: CALLER 0000037c: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff 0000039d: AND 0000039e: OR 0000039f: PUSH21 0x010000000000000000000000000000000000000000 000003b5: DUP4 000003b6: ISZERO 000003b7: ISZERO 000003b8: MUL 000003b9: OR 000003ba: SWAP1 000003bb: SSTORE 000003bc: PUSH2 0x03c6 000003bf: DUP6 000003c0: DUP6 000003c1: DUP6 000003c2: PUSH2 0x09ec 000003c5: JUMP 000003c6: JUMPDEST 000003c7: POP 000003c8: PUSH1 0x00 000003ca: DUP1 000003cb: SLOAD 000003cc: PUSH32 0xffffffffffffffffffff00000000000000000000000000000000000000000000 000003ed: AND 000003ee: SWAP1 000003ef: SSTORE 000003f0: JUMPDEST 000003f1: POP 000003f2: POP 000003f3: POP 000003f4: POP 000003f5: POP 000003f6: JUMP 000003f7: JUMPDEST 000003f8: PUSH1 0x00 000003fa: DUP1 000003fb: SLOAD 000003fc: DUP2 000003fd: SWAP1 000003fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000413: AND 00000414: ISZERO 00000415: PUSH2 0x041d 00000418: JUMPI 00000419: PUSH1 0x00 0000041b: DUP1 0000041c: REVERT 0000041d: JUMPDEST 0000041e: PUSH1 0x00 00000420: DUP1 00000421: SLOAD 00000422: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000443: AND 00000444: CALLER 00000445: OR 00000446: SWAP1 00000447: DUP2 00000448: SWAP1 00000449: SSTORE 0000044a: PUSH1 0xff 0000044c: PUSH23 0x0100000000000000000000000000000000000000000000 00000464: SWAP1 00000465: SWAP2 00000466: DIV 00000467: AND 00000468: PUSH2 0x0470 0000046b: JUMPI 0000046c: PUSH1 0x00 0000046e: DUP1 0000046f: REVERT 00000470: JUMPDEST 00000471: PUSH2 0x0482 00000474: DUP13 00000475: DUP13 00000476: DUP13 00000477: DUP13 00000478: DUP13 00000479: DUP13 0000047a: DUP13 0000047b: DUP13 0000047c: DUP13 0000047d: DUP13 0000047e: PUSH2 0x0ac2 00000481: JUMP 00000482: JUMPDEST 00000483: PUSH1 0x00 00000485: DUP1 00000486: SLOAD 00000487: PUSH32 0xffffffffffffffffffff00ff0000000000000000000000000000000000000000 000004a8: AND 000004a9: SWAP1 000004aa: SSTORE 000004ab: SWAP1 000004ac: SWAP14 000004ad: SWAP1 000004ae: SWAP13 000004af: POP 000004b0: SWAP11 000004b1: POP 000004b2: POP 000004b3: POP 000004b4: POP 000004b5: POP 000004b6: POP 000004b7: POP 000004b8: POP 000004b9: POP 000004ba: POP 000004bb: POP 000004bc: JUMP 000004bd: JUMPDEST 000004be: PUSH1 0x60 000004c0: DUP2 000004c1: DUP6 000004c2: PUSH2 0x04cc 000004c5: DUP3 000004c6: CALLER 000004c7: DUP4 000004c8: PUSH2 0x0b33 000004cb: JUMP 000004cc: JUMPDEST 000004cd: PUSH1 0x00 000004cf: SLOAD 000004d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004e5: AND 000004e6: ISZERO 000004e7: PUSH2 0x04ef 000004ea: JUMPI 000004eb: PUSH1 0x00 000004ed: DUP1 000004ee: REVERT 000004ef: JUMPDEST 000004f0: PUSH1 0x00 000004f2: DUP1 000004f3: SLOAD 000004f4: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000515: AND 00000516: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000052b: DUP5 0000052c: AND 0000052d: OR 0000052e: SWAP1 0000052f: SSTORE 00000530: PUSH2 0x053a 00000533: DUP8 00000534: DUP8 00000535: DUP8 00000536: PUSH2 0x0619 00000539: JUMP 0000053a: JUMPDEST 0000053b: PUSH1 0x00 0000053d: DUP1 0000053e: SLOAD 0000053f: PUSH32 0xffffffffffffffffffff00ff0000000000000000000000000000000000000000 00000560: AND 00000561: SWAP1 00000562: SSTORE 00000563: SWAP3 00000564: POP 00000565: JUMPDEST 00000566: POP 00000567: POP 00000568: SWAP5 00000569: SWAP4 0000056a: POP 0000056b: POP 0000056c: POP 0000056d: POP 0000056e: JUMP 0000056f: JUMPDEST 00000570: PUSH1 0x00 00000572: SLOAD 00000573: PUSH1 0x60 00000575: SWAP1 00000576: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000058b: AND 0000058c: ISZERO 0000058d: PUSH2 0x0595 00000590: JUMPI 00000591: PUSH1 0x00 00000593: DUP1 00000594: REVERT 00000595: JUMPDEST 00000596: PUSH1 0x00 00000598: DUP1 00000599: SLOAD 0000059a: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000005bb: AND 000005bc: CALLER 000005bd: OR 000005be: SWAP1 000005bf: SSTORE 000005c0: PUSH2 0x05ca 000005c3: DUP5 000005c4: DUP5 000005c5: DUP5 000005c6: PUSH2 0x0619 000005c9: JUMP 000005ca: JUMPDEST 000005cb: PUSH1 0x00 000005cd: DUP1 000005ce: SLOAD 000005cf: PUSH32 0xffffffffffffffffffff00ff0000000000000000000000000000000000000000 000005f0: AND 000005f1: SWAP1 000005f2: SSTORE 000005f3: SWAP1 000005f4: POP 000005f5: JUMPDEST 000005f6: SWAP4 000005f7: SWAP3 000005f8: POP 000005f9: POP 000005fa: POP 000005fb: JUMP 000005fc: JUMPDEST 000005fd: PUSH1 0x00 000005ff: PUSH2 0x0609 00000602: DUP5 00000603: DUP5 00000604: DUP5 00000605: PUSH2 0x0bfd 00000608: JUMP 00000609: JUMPDEST 0000060a: SWAP1 0000060b: POP 0000060c: PUSH2 0x05f5 0000060f: DUP2 00000610: DUP6 00000611: PUSH1 0x40 00000613: ADD 00000614: MLOAD 00000615: PUSH2 0x0ccb 00000618: JUMP 00000619: JUMPDEST 0000061a: PUSH1 0x60 0000061c: PUSH2 0x0624 0000061f: DUP5 00000620: PUSH2 0x0d90 00000623: JUMP 00000624: JUMPDEST 00000625: PUSH1 0x00 00000627: DUP1 00000628: PUSH1 0x01 0000062a: DUP7 0000062b: PUSH2 0xffff 0000062e: AND 0000062f: PUSH3 0x010000 00000633: DUP2 00000634: LT 00000635: PUSH2 0x0640 00000638: JUMPI 00000639: PUSH2 0x0640 0000063c: PUSH2 0x58f0 0000063f: JUMP 00000640: JUMPDEST 00000641: ADD 00000642: SLOAD 00000643: PUSH1 0x40 00000645: MLOAD 00000646: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000065b: SWAP1 0000065c: SWAP2 0000065d: AND 0000065e: SWAP1 0000065f: PUSH2 0x066e 00000662: SWAP1 00000663: DUP8 00000664: SWAP1 00000665: DUP8 00000666: SWAP1 00000667: PUSH1 0x24 00000669: ADD 0000066a: PUSH2 0x591f 0000066d: JUMP 0000066e: JUMPDEST 0000066f: PUSH1 0x40 00000671: DUP1 00000672: MLOAD 00000673: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000694: DUP2 00000695: DUP5 00000696: SUB 00000697: ADD 00000698: DUP2 00000699: MSTORE 0000069a: SWAP2 0000069b: DUP2 0000069c: MSTORE 0000069d: PUSH1 0x20 0000069f: DUP3 000006a0: ADD 000006a1: DUP1 000006a2: MLOAD 000006a3: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000006c0: AND 000006c1: PUSH32 0xf96dc78800000000000000000000000000000000000000000000000000000000 000006e2: OR 000006e3: SWAP1 000006e4: MSTORE 000006e5: MLOAD 000006e6: PUSH2 0x06ef 000006e9: SWAP2 000006ea: SWAP1 000006eb: PUSH2 0x596c 000006ee: JUMP 000006ef: JUMPDEST 000006f0: PUSH1 0x00 000006f2: PUSH1 0x40 000006f4: MLOAD 000006f5: DUP1 000006f6: DUP4 000006f7: SUB 000006f8: DUP2 000006f9: DUP6 000006fa: GAS 000006fb: DELEGATECALL 000006fc: SWAP2 000006fd: POP 000006fe: POP 000006ff: RETURNDATASIZE 00000700: DUP1 00000701: PUSH1 0x00 00000703: DUP2 00000704: EQ 00000705: PUSH2 0x072a 00000708: JUMPI 00000709: PUSH1 0x40 0000070b: MLOAD 0000070c: SWAP2 0000070d: POP 0000070e: PUSH1 0x1f 00000710: NOT 00000711: PUSH1 0x3f 00000713: RETURNDATASIZE 00000714: ADD 00000715: AND 00000716: DUP3 00000717: ADD 00000718: PUSH1 0x40 0000071a: MSTORE 0000071b: RETURNDATASIZE 0000071c: DUP3 0000071d: MSTORE 0000071e: RETURNDATASIZE 0000071f: PUSH1 0x00 00000721: PUSH1 0x20 00000723: DUP5 00000724: ADD 00000725: RETURNDATACOPY 00000726: PUSH2 0x072f 00000729: JUMP 0000072a: JUMPDEST 0000072b: PUSH1 0x60 0000072d: SWAP2 0000072e: POP 0000072f: JUMPDEST 00000730: POP 00000731: SWAP2 00000732: POP 00000733: SWAP2 00000734: POP 00000735: PUSH2 0x073e 00000738: DUP3 00000739: DUP3 0000073a: PUSH2 0x0e18 0000073d: JUMP 0000073e: JUMPDEST 0000073f: SWAP7 00000740: SWAP6 00000741: POP 00000742: POP 00000743: POP 00000744: POP 00000745: POP 00000746: POP 00000747: JUMP 00000748: JUMPDEST 00000749: DUP1 0000074a: MLOAD 0000074b: PUSH1 0x00 0000074d: SUB 0000074e: PUSH2 0x0754 00000751: JUMPI 00000752: POP 00000753: JUMP 00000754: JUMPDEST 00000755: PUSH1 0x00 00000757: DUP1 00000758: PUSH1 0x00 0000075a: DUP4 0000075b: DUP1 0000075c: PUSH1 0x20 0000075e: ADD 0000075f: SWAP1 00000760: MLOAD 00000761: DUP2 00000762: ADD 00000763: SWAP1 00000764: PUSH2 0x076d 00000767: SWAP2 00000768: SWAP1 00000769: PUSH2 0x5988 0000076c: JUMP 0000076d: JUMPDEST 0000076e: SWAP3 0000076f: POP 00000770: SWAP3 00000771: POP 00000772: SWAP3 00000773: POP 00000774: PUSH2 0x077c 00000777: DUP2 00000778: PUSH2 0x0e3d 0000077b: JUMP 0000077c: JUMPDEST 0000077d: PUSH1 0x00 0000077f: DUP1 00000780: SLOAD 00000781: SWAP2 00000782: SWAP3 00000783: POP 00000784: SWAP1 00000785: PUSH2 0x07a4 00000788: SWAP1 00000789: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000079e: AND 0000079f: DUP6 000007a0: PUSH2 0x0ec8 000007a3: JUMP 000007a4: JUMPDEST 000007a5: SWAP1 000007a6: POP 000007a7: PUSH1 0x00 000007a9: PUSH2 0x07b2 000007ac: DUP4 000007ad: DUP7 000007ae: PUSH2 0x0ec8 000007b1: JUMP 000007b2: JUMPDEST 000007b3: SWAP1 000007b4: POP 000007b5: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001 000007d6: PUSH16 0xffffffffffffffffffffffffffffffff 000007e7: DUP6 000007e8: AND 000007e9: ADD 000007ea: PUSH2 0x0813 000007ed: JUMPI 000007ee: PUSH1 0x00 000007f0: DUP3 000007f1: DUP2 000007f2: MSTORE 000007f3: PUSH3 0x010010 000007f7: PUSH1 0x20 000007f9: MSTORE 000007fa: PUSH1 0x40 000007fc: SWAP1 000007fd: KECCAK256 000007fe: SLOAD 000007ff: PUSH16 0xffffffffffffffffffffffffffffffff 00000810: AND 00000811: SWAP4 00000812: POP 00000813: JUMPDEST 00000814: PUSH1 0x00 00000816: DUP3 00000817: DUP2 00000818: MSTORE 00000819: PUSH3 0x010010 0000081d: PUSH1 0x20 0000081f: MSTORE 00000820: PUSH1 0x40 00000822: SWAP1 00000823: KECCAK256 00000824: SLOAD 00000825: PUSH16 0xffffffffffffffffffffffffffffffff 00000836: DUP1 00000837: DUP7 00000838: AND 00000839: SWAP2 0000083a: AND 0000083b: LT 0000083c: ISZERO 0000083d: PUSH2 0x0845 00000840: JUMPI 00000841: PUSH1 0x00 00000843: DUP1 00000844: REVERT 00000845: JUMPDEST 00000846: PUSH1 0x00 00000848: DUP1 00000849: SLOAD 0000084a: PUSH2 0x0100 0000084d: SWAP1 0000084e: PUSH2 0x0876 00000851: SWAP1 00000852: PUSH25 0x01000000000000000000000000000000000000000000000000 0000086c: SWAP1 0000086d: DIV 0000086e: PUSH1 0xff 00000870: AND 00000871: DUP8 00000872: PUSH2 0x5a04 00000875: JUMP 00000876: JUMPDEST 00000877: PUSH2 0x0880 0000087a: SWAP2 0000087b: SWAP1 0000087c: PUSH2 0x5a5f 0000087f: JUMP 00000880: JUMPDEST 00000881: SWAP1 00000882: POP 00000883: PUSH1 0x00 00000885: PUSH2 0x088e 00000888: DUP3 00000889: DUP8 0000088a: PUSH2 0x5a8e 0000088d: JUMP 0000088e: JUMPDEST 0000088f: PUSH1 0x00 00000891: DUP6 00000892: DUP2 00000893: MSTORE 00000894: PUSH3 0x010010 00000898: PUSH1 0x20 0000089a: MSTORE 0000089b: PUSH1 0x40 0000089d: DUP2 0000089e: KECCAK256 0000089f: DUP1 000008a0: SLOAD 000008a1: SWAP3 000008a2: SWAP4 000008a3: POP 000008a4: DUP9 000008a5: SWAP3 000008a6: SWAP1 000008a7: SWAP2 000008a8: SWAP1 000008a9: PUSH2 0x08c5 000008ac: SWAP1 000008ad: DUP5 000008ae: SWAP1 000008af: PUSH16 0xffffffffffffffffffffffffffffffff 000008c0: AND 000008c1: PUSH2 0x5a8e 000008c4: JUMP 000008c5: JUMPDEST 000008c6: DUP3 000008c7: SLOAD 000008c8: PUSH2 0x0100 000008cb: SWAP3 000008cc: SWAP1 000008cd: SWAP3 000008ce: EXP 000008cf: PUSH16 0xffffffffffffffffffffffffffffffff 000008e0: DUP2 000008e1: DUP2 000008e2: MUL 000008e3: NOT 000008e4: SWAP1 000008e5: SWAP4 000008e6: AND 000008e7: SWAP2 000008e8: DUP4 000008e9: AND 000008ea: MUL 000008eb: OR 000008ec: SWAP1 000008ed: SWAP2 000008ee: SSTORE 000008ef: PUSH1 0x00 000008f1: DUP6 000008f2: DUP2 000008f3: MSTORE 000008f4: PUSH3 0x010010 000008f8: PUSH1 0x20 000008fa: MSTORE 000008fb: PUSH1 0x40 000008fd: DUP2 000008fe: KECCAK256 000008ff: DUP1 00000900: SLOAD 00000901: DUP6 00000902: SWAP5 00000903: POP 00000904: SWAP1 00000905: SWAP3 00000906: PUSH2 0x0911 00000909: SWAP2 0000090a: DUP6 0000090b: SWAP2 0000090c: AND 0000090d: PUSH2 0x5ab7 00000910: JUMP 00000911: JUMPDEST 00000912: SWAP3 00000913: POP 00000914: PUSH2 0x0100 00000917: EXP 00000918: DUP2 00000919: SLOAD 0000091a: DUP2 0000091b: PUSH16 0xffffffffffffffffffffffffffffffff 0000092c: MUL 0000092d: NOT 0000092e: AND 0000092f: SWAP1 00000930: DUP4 00000931: PUSH16 0xffffffffffffffffffffffffffffffff 00000942: AND 00000943: MUL 00000944: OR 00000945: SWAP1 00000946: SSTORE 00000947: POP 00000948: PUSH1 0x00 0000094a: DUP3 0000094b: PUSH16 0xffffffffffffffffffffffffffffffff 0000095c: AND 0000095d: GT 0000095e: ISZERO 0000095f: PUSH2 0x09e2 00000962: JUMPI 00000963: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000978: DUP8 00000979: AND 0000097a: PUSH1 0x00 0000097c: SWAP1 0000097d: DUP2 0000097e: MSTORE 0000097f: PUSH3 0x01000c 00000983: PUSH1 0x20 00000985: MSTORE 00000986: PUSH1 0x40 00000988: DUP2 00000989: KECCAK256 0000098a: DUP1 0000098b: SLOAD 0000098c: DUP5 0000098d: SWAP3 0000098e: SWAP1 0000098f: PUSH2 0x09ab 00000992: SWAP1 00000993: DUP5 00000994: SWAP1 00000995: PUSH16 0xffffffffffffffffffffffffffffffff 000009a6: AND 000009a7: PUSH2 0x5ab7 000009aa: JUMP 000009ab: JUMPDEST 000009ac: SWAP3 000009ad: POP 000009ae: PUSH2 0x0100 000009b1: EXP 000009b2: DUP2 000009b3: SLOAD 000009b4: DUP2 000009b5: PUSH16 0xffffffffffffffffffffffffffffffff 000009c6: MUL 000009c7: NOT 000009c8: AND 000009c9: SWAP1 000009ca: DUP4 000009cb: PUSH16 0xffffffffffffffffffffffffffffffff 000009dc: AND 000009dd: MUL 000009de: OR 000009df: SWAP1 000009e0: SSTORE 000009e1: POP 000009e2: JUMPDEST 000009e3: POP 000009e4: POP 000009e5: POP 000009e6: POP 000009e7: POP 000009e8: POP 000009e9: POP 000009ea: POP 000009eb: JUMP 000009ec: JUMPDEST 000009ed: PUSH1 0x60 000009ef: PUSH2 0x09f7 000009f2: DUP5 000009f3: PUSH2 0x0d90 000009f6: JUMP 000009f7: JUMPDEST 000009f8: PUSH1 0x00 000009fa: DUP1 000009fb: PUSH1 0x01 000009fd: DUP7 000009fe: PUSH2 0xffff 00000a01: AND 00000a02: PUSH3 0x010000 00000a06: DUP2 00000a07: LT 00000a08: PUSH2 0x0a13 00000a0b: JUMPI 00000a0c: PUSH2 0x0a13 00000a0f: PUSH2 0x58f0 00000a12: JUMP 00000a13: JUMPDEST 00000a14: ADD 00000a15: SLOAD 00000a16: PUSH1 0x40 00000a18: MLOAD 00000a19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a2e: SWAP1 00000a2f: SWAP2 00000a30: AND 00000a31: SWAP1 00000a32: PUSH2 0x0a41 00000a35: SWAP1 00000a36: DUP8 00000a37: SWAP1 00000a38: DUP8 00000a39: SWAP1 00000a3a: PUSH1 0x24 00000a3c: ADD 00000a3d: PUSH2 0x591f 00000a40: JUMP 00000a41: JUMPDEST 00000a42: PUSH1 0x40 00000a44: DUP1 00000a45: MLOAD 00000a46: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000a67: DUP2 00000a68: DUP5 00000a69: SUB 00000a6a: ADD 00000a6b: DUP2 00000a6c: MSTORE 00000a6d: SWAP2 00000a6e: DUP2 00000a6f: MSTORE 00000a70: PUSH1 0x20 00000a72: DUP3 00000a73: ADD 00000a74: DUP1 00000a75: MLOAD 00000a76: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000a93: AND 00000a94: PUSH32 0xb670198000000000000000000000000000000000000000000000000000000000 00000ab5: OR 00000ab6: SWAP1 00000ab7: MSTORE 00000ab8: MLOAD 00000ab9: PUSH2 0x06ef 00000abc: SWAP2 00000abd: SWAP1 00000abe: PUSH2 0x596c 00000ac1: JUMP 00000ac2: JUMPDEST 00000ac3: PUSH1 0x00 00000ac5: DUP1 00000ac6: PUSH1 0x00 00000ac8: PUSH2 0x0ad6 00000acb: DUP14 00000acc: DUP14 00000acd: DUP14 00000ace: DUP11 00000acf: DUP15 00000ad0: DUP15 00000ad1: DUP15 00000ad2: PUSH2 0x0f17 00000ad5: JUMP 00000ad6: JUMPDEST 00000ad7: SWAP1 00000ad8: POP 00000ad9: PUSH1 0x00 00000adb: PUSH2 0x0ae7 00000ade: DUP3 00000adf: DUP13 00000ae0: DUP13 00000ae1: DUP13 00000ae2: DUP12 00000ae3: PUSH2 0x0fb4 00000ae6: JUMP 00000ae7: JUMPDEST 00000ae8: DUP1 00000ae9: MLOAD 00000aea: PUSH1 0x20 00000aec: DUP3 00000aed: ADD 00000aee: MLOAD 00000aef: SWAP1 00000af0: SWAP6 00000af1: POP 00000af2: SWAP4 00000af3: POP 00000af4: SWAP1 00000af5: POP 00000af6: PUSH2 0x0b01 00000af9: DUP2 00000afa: DUP8 00000afb: DUP14 00000afc: DUP14 00000afd: PUSH2 0x102e 00000b00: JUMP 00000b01: JUMPDEST 00000b02: POP 00000b03: PUSH2 0x0b17 00000b06: DUP15 00000b07: DUP15 00000b08: DUP4 00000b09: PUSH1 0x00 00000b0b: ADD 00000b0c: MLOAD 00000b0d: DUP5 00000b0e: PUSH1 0x20 00000b10: ADD 00000b11: MLOAD 00000b12: DUP10 00000b13: PUSH2 0x10f3 00000b16: JUMP 00000b17: JUMPDEST 00000b18: PUSH2 0x0b22 00000b1b: DUP2 00000b1c: DUP16 00000b1d: DUP16 00000b1e: PUSH2 0x111c 00000b21: JUMP 00000b22: JUMPDEST 00000b23: POP 00000b24: POP 00000b25: SWAP11 00000b26: POP 00000b27: SWAP11 00000b28: SWAP9 00000b29: POP 00000b2a: POP 00000b2b: POP 00000b2c: POP 00000b2d: POP 00000b2e: POP 00000b2f: POP 00000b30: POP 00000b31: POP 00000b32: JUMP 00000b33: JUMPDEST 00000b34: PUSH1 0x00 00000b36: PUSH3 0x010010 00000b3a: PUSH1 0x00 00000b3c: PUSH2 0x0b46 00000b3f: DUP7 00000b40: DUP7 00000b41: DUP7 00000b42: PUSH2 0x1264 00000b45: JUMP 00000b46: JUMPDEST 00000b47: DUP2 00000b48: MSTORE 00000b49: PUSH1 0x20 00000b4b: DUP2 00000b4c: ADD 00000b4d: SWAP2 00000b4e: SWAP1 00000b4f: SWAP2 00000b50: MSTORE 00000b51: PUSH1 0x40 00000b53: ADD 00000b54: PUSH1 0x00 00000b56: KECCAK256 00000b57: DUP1 00000b58: SLOAD 00000b59: SWAP1 00000b5a: SWAP2 00000b5b: POP 00000b5c: PUSH4 0xffffffff 00000b61: PUSH21 0x010000000000000000000000000000000000000000 00000b77: SWAP1 00000b78: SWAP2 00000b79: DIV 00000b7a: DUP2 00000b7b: AND 00000b7c: LT 00000b7d: ISZERO 00000b7e: PUSH2 0x0bf7 00000b81: JUMPI 00000b82: DUP1 00000b83: SLOAD 00000b84: PUSH21 0x010000000000000000000000000000000000000000 00000b9a: SWAP1 00000b9b: DIV 00000b9c: PUSH4 0xffffffff 00000ba1: AND 00000ba2: PUSH2 0x0baa 00000ba5: JUMPI 00000ba6: PUSH1 0x00 00000ba8: DUP1 00000ba9: REVERT 00000baa: JUMPDEST 00000bab: DUP1 00000bac: SLOAD 00000bad: DUP2 00000bae: SWAP1 00000baf: PUSH1 0x14 00000bb1: SWAP1 00000bb2: PUSH2 0x0bd8 00000bb5: SWAP1 00000bb6: PUSH21 0x010000000000000000000000000000000000000000 00000bcc: SWAP1 00000bcd: DIV 00000bce: PUSH4 0xffffffff 00000bd3: AND 00000bd4: PUSH2 0x5ae0 00000bd7: JUMP 00000bd8: JUMPDEST 00000bd9: SWAP2 00000bda: SWAP1 00000bdb: PUSH2 0x0100 00000bde: EXP 00000bdf: DUP2 00000be0: SLOAD 00000be1: DUP2 00000be2: PUSH4 0xffffffff 00000be7: MUL 00000be8: NOT 00000be9: AND 00000bea: SWAP1 00000beb: DUP4 00000bec: PUSH4 0xffffffff 00000bf1: AND 00000bf2: MUL 00000bf3: OR 00000bf4: SWAP1 00000bf5: SSTORE 00000bf6: POP 00000bf7: JUMPDEST 00000bf8: POP 00000bf9: POP 00000bfa: POP 00000bfb: POP 00000bfc: JUMP 00000bfd: JUMPDEST 00000bfe: PUSH1 0x00 00000c00: DUP1 00000c01: DUP1 00000c02: DUP1 00000c03: PUSH2 0x0c0e 00000c06: DUP6 00000c07: DUP8 00000c08: ADD 00000c09: DUP8 00000c0a: PUSH2 0x5b1e 00000c0d: JUMP 00000c0e: JUMPDEST 00000c0f: SWAP3 00000c10: POP 00000c11: SWAP3 00000c12: POP 00000c13: SWAP3 00000c14: POP 00000c15: PUSH1 0x00 00000c17: PUSH2 0x0c1f 00000c1a: DUP9 00000c1b: PUSH2 0x12be 00000c1e: JUMP 00000c1f: JUMPDEST 00000c20: PUSH1 0x40 00000c22: DUP1 00000c23: MLOAD 00000c24: PUSH1 0x00 00000c26: DUP2 00000c27: MSTORE 00000c28: PUSH1 0x20 00000c2a: DUP2 00000c2b: ADD 00000c2c: DUP1 00000c2d: DUP4 00000c2e: MSTORE 00000c2f: DUP4 00000c30: SWAP1 00000c31: MSTORE 00000c32: PUSH1 0xff 00000c34: DUP8 00000c35: AND 00000c36: SWAP2 00000c37: DUP2 00000c38: ADD 00000c39: SWAP2 00000c3a: SWAP1 00000c3b: SWAP2 00000c3c: MSTORE 00000c3d: PUSH1 0x60 00000c3f: DUP2 00000c40: ADD 00000c41: DUP6 00000c42: SWAP1 00000c43: MSTORE 00000c44: PUSH1 0x80 00000c46: DUP2 00000c47: ADD 00000c48: DUP5 00000c49: SWAP1 00000c4a: MSTORE 00000c4b: SWAP1 00000c4c: SWAP2 00000c4d: POP 00000c4e: PUSH1 0x01 00000c50: SWAP1 00000c51: PUSH1 0xa0 00000c53: ADD 00000c54: PUSH1 0x20 00000c56: PUSH1 0x40 00000c58: MLOAD 00000c59: PUSH1 0x20 00000c5b: DUP2 00000c5c: SUB 00000c5d: SWAP1 00000c5e: DUP1 00000c5f: DUP5 00000c60: SUB 00000c61: SWAP1 00000c62: DUP6 00000c63: GAS 00000c64: STATICCALL 00000c65: ISZERO 00000c66: DUP1 00000c67: ISZERO 00000c68: PUSH2 0x0c75 00000c6b: JUMPI 00000c6c: RETURNDATASIZE 00000c6d: PUSH1 0x00 00000c6f: DUP1 00000c70: RETURNDATACOPY 00000c71: RETURNDATASIZE 00000c72: PUSH1 0x00 00000c74: REVERT 00000c75: JUMPDEST 00000c76: POP 00000c77: POP 00000c78: PUSH1 0x40 00000c7a: MLOAD 00000c7b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000c9c: ADD 00000c9d: MLOAD 00000c9e: SWAP6 00000c9f: POP 00000ca0: POP 00000ca1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cb6: DUP6 00000cb7: AND 00000cb8: PUSH2 0x0cc0 00000cbb: JUMPI 00000cbc: PUSH1 0x00 00000cbe: DUP1 00000cbf: REVERT 00000cc0: JUMPDEST 00000cc1: POP 00000cc2: POP 00000cc3: POP 00000cc4: POP 00000cc5: SWAP4 00000cc6: SWAP3 00000cc7: POP 00000cc8: POP 00000cc9: POP 00000cca: JUMP 00000ccb: JUMPDEST 00000ccc: PUSH1 0x00 00000cce: DUP1 00000ccf: PUSH1 0x00 00000cd1: DUP1 00000cd2: PUSH1 0x00 00000cd4: DUP6 00000cd5: DUP1 00000cd6: PUSH1 0x20 00000cd8: ADD 00000cd9: SWAP1 00000cda: MLOAD 00000cdb: DUP2 00000cdc: ADD 00000cdd: SWAP1 00000cde: PUSH2 0x0ce7 00000ce1: SWAP2 00000ce2: SWAP1 00000ce3: PUSH2 0x5b67 00000ce6: JUMP 00000ce7: JUMPDEST 00000ce8: SWAP5 00000ce9: POP 00000cea: SWAP5 00000ceb: POP 00000cec: SWAP5 00000ced: POP 00000cee: SWAP5 00000cef: POP 00000cf0: SWAP5 00000cf1: POP 00000cf2: DUP5 00000cf3: PUSH6 0xffffffffffff 00000cfa: AND 00000cfb: TIMESTAMP 00000cfc: GT 00000cfd: ISZERO 00000cfe: PUSH2 0x0d06 00000d01: JUMPI 00000d02: PUSH1 0x00 00000d04: DUP1 00000d05: REVERT 00000d06: JUMPDEST 00000d07: DUP4 00000d08: PUSH6 0xffffffffffff 00000d0f: AND 00000d10: TIMESTAMP 00000d11: LT 00000d12: ISZERO 00000d13: PUSH2 0x0d1b 00000d16: JUMPI 00000d17: PUSH1 0x00 00000d19: DUP1 00000d1a: REVERT 00000d1b: JUMPDEST 00000d1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d31: DUP2 00000d32: AND 00000d33: ISZERO 00000d34: DUP1 00000d35: PUSH2 0x0d53 00000d38: JUMPI 00000d39: POP 00000d3a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d4f: DUP2 00000d50: AND 00000d51: CALLER 00000d52: EQ 00000d53: JUMPDEST 00000d54: DUP1 00000d55: PUSH2 0x0d73 00000d58: JUMPI 00000d59: POP 00000d5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d6f: DUP2 00000d70: AND 00000d71: ORIGIN 00000d72: EQ 00000d73: JUMPDEST 00000d74: PUSH2 0x0d7c 00000d77: JUMPI 00000d78: PUSH1 0x00 00000d7a: DUP1 00000d7b: REVERT 00000d7c: JUMPDEST 00000d7d: PUSH2 0x0d87 00000d80: DUP8 00000d81: DUP5 00000d82: DUP5 00000d83: PUSH2 0x13cd 00000d86: JUMP 00000d87: JUMPDEST 00000d88: POP 00000d89: POP 00000d8a: POP 00000d8b: POP 00000d8c: POP 00000d8d: POP 00000d8e: POP 00000d8f: JUMP 00000d90: JUMPDEST 00000d91: PUSH1 0x00 00000d93: PUSH1 0x01 00000d95: PUSH2 0xffff 00000d98: DUP4 00000d99: AND 00000d9a: PUSH3 0x010000 00000d9e: DUP2 00000d9f: LT 00000da0: PUSH2 0x0dab 00000da3: JUMPI 00000da4: PUSH2 0x0dab 00000da7: PUSH2 0x58f0 00000daa: JUMP 00000dab: JUMPDEST 00000dac: ADD 00000dad: SLOAD 00000dae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dc3: AND 00000dc4: SUB 00000dc5: PUSH2 0x0dcd 00000dc8: JUMPI 00000dc9: PUSH1 0x00 00000dcb: DUP1 00000dcc: REVERT 00000dcd: JUMPDEST 00000dce: PUSH1 0x00 00000dd0: SLOAD 00000dd1: PUSH24 0x010000000000000000000000000000000000000000000000 00000dea: SWAP1 00000deb: DIV 00000dec: PUSH1 0xff 00000dee: AND 00000def: ISZERO 00000df0: DUP1 00000df1: PUSH2 0x0dff 00000df4: JUMPI 00000df5: POP 00000df6: PUSH2 0xffff 00000df9: DUP2 00000dfa: AND 00000dfb: PUSH2 0x270f 00000dfe: EQ 00000dff: JUMPDEST 00000e00: DUP1 00000e01: PUSH2 0x0e0c 00000e04: JUMPI 00000e05: POP 00000e06: PUSH2 0xffff 00000e09: DUP2 00000e0a: AND 00000e0b: ISZERO 00000e0c: JUMPDEST 00000e0d: PUSH2 0x0e15 00000e10: JUMPI 00000e11: PUSH1 0x00 00000e13: DUP1 00000e14: REVERT 00000e15: JUMPDEST 00000e16: POP 00000e17: JUMP 00000e18: JUMPDEST 00000e19: PUSH1 0x60 00000e1b: DUP3 00000e1c: ISZERO 00000e1d: PUSH2 0x0e27 00000e20: JUMPI 00000e21: POP 00000e22: DUP1 00000e23: PUSH2 0x0e37 00000e26: JUMP 00000e27: JUMPDEST 00000e28: DUP2 00000e29: MLOAD 00000e2a: ISZERO 00000e2b: PUSH2 0x0070 00000e2e: JUMPI 00000e2f: DUP2 00000e30: MLOAD 00000e31: DUP1 00000e32: DUP4 00000e33: PUSH1 0x20 00000e35: ADD 00000e36: REVERT 00000e37: JUMPDEST 00000e38: SWAP3 00000e39: SWAP2 00000e3a: POP 00000e3b: POP 00000e3c: JUMP 00000e3d: JUMPDEST 00000e3e: PUSH1 0x00 00000e40: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000e61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e76: DUP4 00000e77: AND 00000e78: ADD 00000e79: PUSH2 0x0e83 00000e7c: JUMPI 00000e7d: CALLER 00000e7e: SWAP2 00000e7f: POP 00000e80: POP 00000e81: SWAP1 00000e82: JUMP 00000e83: JUMPDEST 00000e84: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00 00000ea5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000eba: DUP4 00000ebb: AND 00000ebc: ADD 00000ebd: PUSH2 0x0ec4 00000ec0: JUMPI 00000ec1: ORIGIN 00000ec2: SWAP2 00000ec3: POP 00000ec4: JUMPDEST 00000ec5: POP 00000ec6: SWAP1 00000ec7: JUMP 00000ec8: JUMPDEST 00000ec9: PUSH1 0x40 00000ecb: DUP1 00000ecc: MLOAD 00000ecd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ee2: DUP1 00000ee3: DUP6 00000ee4: AND 00000ee5: PUSH1 0x20 00000ee7: DUP4 00000ee8: ADD 00000ee9: MSTORE 00000eea: DUP4 00000eeb: AND 00000eec: SWAP2 00000eed: DUP2 00000eee: ADD 00000eef: SWAP2 00000ef0: SWAP1 00000ef1: SWAP2 00000ef2: MSTORE 00000ef3: PUSH1 0x00 00000ef5: SWAP1 00000ef6: PUSH1 0x60 00000ef8: ADD 00000ef9: JUMPDEST 00000efa: PUSH1 0x40 00000efc: MLOAD 00000efd: PUSH1 0x20 00000eff: DUP2 00000f00: DUP4 00000f01: SUB 00000f02: SUB 00000f03: DUP2 00000f04: MSTORE 00000f05: SWAP1 00000f06: PUSH1 0x40 00000f08: MSTORE 00000f09: DUP1 00000f0a: MLOAD 00000f0b: SWAP1 00000f0c: PUSH1 0x20 00000f0e: ADD 00000f0f: KECCAK256 00000f10: SWAP1 00000f11: POP 00000f12: SWAP3 00000f13: SWAP2 00000f14: POP 00000f15: POP 00000f16: JUMP 00000f17: JUMPDEST 00000f18: PUSH1 0x40 00000f1a: DUP1 00000f1b: MLOAD 00000f1c: PUSH2 0x0140 00000f1f: DUP2 00000f20: ADD 00000f21: DUP3 00000f22: MSTORE 00000f23: PUSH1 0x00 00000f25: PUSH1 0x60 00000f27: DUP3 00000f28: ADD 00000f29: DUP2 00000f2a: DUP2 00000f2b: MSTORE 00000f2c: PUSH1 0x80 00000f2e: DUP4 00000f2f: ADD 00000f30: DUP3 00000f31: SWAP1 00000f32: MSTORE 00000f33: PUSH1 0xa0 00000f35: DUP4 00000f36: ADD 00000f37: DUP3 00000f38: SWAP1 00000f39: MSTORE 00000f3a: PUSH1 0xc0 00000f3c: DUP4 00000f3d: ADD 00000f3e: DUP3 00000f3f: SWAP1 00000f40: MSTORE 00000f41: PUSH1 0xe0 00000f43: DUP4 00000f44: ADD 00000f45: DUP3 00000f46: SWAP1 00000f47: MSTORE 00000f48: PUSH2 0x0100 00000f4b: DUP4 00000f4c: ADD 00000f4d: DUP3 00000f4e: SWAP1 00000f4f: MSTORE 00000f50: PUSH2 0x0120 00000f53: DUP4 00000f54: ADD 00000f55: DUP3 00000f56: SWAP1 00000f57: MSTORE 00000f58: DUP3 00000f59: MSTORE 00000f5a: PUSH1 0x20 00000f5c: DUP3 00000f5d: ADD 00000f5e: DUP2 00000f5f: SWAP1 00000f60: MSTORE 00000f61: SWAP2 00000f62: DUP2 00000f63: ADD 00000f64: DUP3 00000f65: SWAP1 00000f66: MSTORE 00000f67: SWAP1 00000f68: PUSH2 0x0f72 00000f6b: DUP10 00000f6c: DUP10 00000f6d: DUP10 00000f6e: PUSH2 0x1446 00000f71: JUMP 00000f72: JUMPDEST 00000f73: SWAP1 00000f74: POP 00000f75: DUP1 00000f76: PUSH1 0x00 00000f78: ADD 00000f79: MLOAD 00000f7a: PUSH1 0x20 00000f7c: ADD 00000f7d: MLOAD 00000f7e: PUSH2 0xffff 00000f81: AND 00000f82: DUP7 00000f83: PUSH2 0xffff 00000f86: AND 00000f87: GT 00000f88: ISZERO 00000f89: PUSH2 0x0f9a 00000f8c: JUMPI 00000f8d: DUP1 00000f8e: MLOAD 00000f8f: PUSH2 0xffff 00000f92: DUP8 00000f93: AND 00000f94: PUSH1 0x20 00000f96: SWAP1 00000f97: SWAP2 00000f98: ADD 00000f99: MSTORE 00000f9a: JUMPDEST 00000f9b: PUSH2 0x0fa8 00000f9e: DUP2 00000f9f: DUP11 00000fa0: DUP11 00000fa1: DUP9 00000fa2: DUP9 00000fa3: DUP9 00000fa4: PUSH2 0x1516 00000fa7: JUMP 00000fa8: JUMPDEST 00000fa9: SWAP9 00000faa: SWAP8 00000fab: POP 00000fac: POP 00000fad: POP 00000fae: POP 00000faf: POP 00000fb0: POP 00000fb1: POP 00000fb2: POP 00000fb3: JUMP 00000fb4: JUMPDEST 00000fb5: PUSH1 0x40 00000fb7: DUP1 00000fb8: MLOAD 00000fb9: PUSH1 0x80 00000fbb: DUP1 00000fbc: DUP3 00000fbd: ADD 00000fbe: DUP4 00000fbf: MSTORE 00000fc0: PUSH1 0x00 00000fc2: DUP1 00000fc3: DUP4 00000fc4: MSTORE 00000fc5: PUSH1 0x20 00000fc7: DUP1 00000fc8: DUP5 00000fc9: ADD 00000fca: DUP3 00000fcb: SWAP1 00000fcc: MSTORE 00000fcd: DUP4 00000fce: DUP6 00000fcf: ADD 00000fd0: DUP3 00000fd1: SWAP1 00000fd2: MSTORE 00000fd3: PUSH1 0x60 00000fd5: DUP1 00000fd6: DUP6 00000fd7: ADD 00000fd8: DUP4 00000fd9: SWAP1 00000fda: MSTORE 00000fdb: DUP6 00000fdc: MLOAD 00000fdd: PUSH1 0xa0 00000fdf: DUP2 00000fe0: ADD 00000fe1: DUP8 00000fe2: MSTORE 00000fe3: SWAP6 00000fe4: DUP7 00000fe5: ADD 00000fe6: SWAP3 00000fe7: SWAP1 00000fe8: SWAP3 00000fe9: MSTORE 00000fea: DUP9 00000feb: ISZERO 00000fec: ISZERO 00000fed: DUP6 00000fee: MSTORE 00000fef: DUP8 00000ff0: ISZERO 00000ff1: ISZERO 00000ff2: SWAP1 00000ff3: DUP6 00000ff4: ADD 00000ff5: MSTORE 00000ff6: PUSH16 0xffffffffffffffffffffffffffffffff 00001007: DUP7 00001008: DUP2 00001009: AND 0000100a: SWAP2 0000100b: DUP6 0000100c: ADD 0000100d: SWAP2 0000100e: SWAP1 0000100f: SWAP2 00001010: MSTORE 00001011: DUP5 00001012: AND 00001013: SWAP1 00001014: DUP4 00001015: ADD 00001016: MSTORE 00001017: SWAP1 00001018: PUSH2 0x1021 0000101b: DUP2 0000101c: DUP9 0000101d: PUSH2 0x1637 00001020: JUMP 00001021: JUMPDEST 00001022: SWAP2 00001023: POP 00001024: POP 00001025: JUMPDEST 00001026: SWAP6 00001027: SWAP5 00001028: POP 00001029: POP 0000102a: POP 0000102b: POP 0000102c: POP 0000102d: JUMP 0000102e: JUMPDEST 0000102f: PUSH1 0x00 00001031: DUP2 00001032: PUSH2 0x103c 00001035: JUMPI 00001036: DUP5 00001037: MLOAD 00001038: PUSH2 0x1042 0000103b: JUMP 0000103c: JUMPDEST 0000103d: DUP5 0000103e: PUSH1 0x20 00001040: ADD 00001041: MLOAD 00001042: JUMPDEST 00001043: SWAP1 00001044: POP 00001045: DUP3 00001046: ISZERO 00001047: ISZERO 00001048: DUP3 00001049: ISZERO 0000104a: ISZERO 0000104b: EQ 0000104c: PUSH1 0x00 0000104e: DUP2 0000104f: PUSH2 0x1058 00001052: JUMPI 00001053: DUP6 00001054: PUSH2 0x1061 00001057: JUMP 00001058: JUMPDEST 00001059: PUSH2 0x1061 0000105c: DUP7 0000105d: PUSH2 0x5bd5 00001060: JUMP 00001061: JUMPDEST 00001062: SWAP1 00001063: POP 00001064: DUP1 00001065: PUSH1 0x0f 00001067: SIGNEXTEND 00001068: DUP4 00001069: PUSH1 0x0f 0000106b: SIGNEXTEND 0000106c: SGT 0000106d: ISZERO 0000106e: DUP1 0000106f: PUSH2 0x1088 00001072: JUMPI 00001073: POP 00001074: PUSH16 0xffffffffffffffffffffffffffffffff 00001085: DUP7 00001086: AND 00001087: ISZERO 00001088: JUMPDEST 00001089: PUSH2 0x0565 0000108c: JUMPI 0000108d: PUSH1 0x40 0000108f: MLOAD 00001090: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000010b1: DUP2 000010b2: MSTORE 000010b3: PUSH1 0x20 000010b5: PUSH1 0x04 000010b7: DUP3 000010b8: ADD 000010b9: MSTORE 000010ba: PUSH1 0x02 000010bc: PUSH1 0x24 000010be: DUP3 000010bf: ADD 000010c0: MSTORE 000010c1: PUSH32 0x534c000000000000000000000000000000000000000000000000000000000000 000010e2: PUSH1 0x44 000010e4: DUP3 000010e5: ADD 000010e6: MSTORE 000010e7: PUSH1 0x64 000010e9: ADD 000010ea: JUMPDEST 000010eb: PUSH1 0x40 000010ed: MLOAD 000010ee: DUP1 000010ef: SWAP2 000010f0: SUB 000010f1: SWAP1 000010f2: REVERT 000010f3: JUMPDEST 000010f4: PUSH1 0x00 000010f6: SLOAD 000010f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000110c: AND 0000110d: DUP1 0000110e: PUSH2 0x0d87 00001111: DUP2 00001112: DUP1 00001113: DUP10 00001114: DUP9 00001115: DUP11 00001116: DUP10 00001117: DUP10 00001118: PUSH2 0x177d 0000111b: JUMP 0000111c: JUMPDEST 0000111d: PUSH1 0x40 0000111f: DUP4 00001120: ADD 00001121: MLOAD 00001122: PUSH16 0xffffffffffffffffffffffffffffffff 00001133: AND 00001134: ISZERO 00001135: PUSH2 0x11be 00001138: JUMPI 00001139: PUSH1 0x40 0000113b: DUP1 0000113c: DUP5 0000113d: ADD 0000113e: MLOAD 0000113f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001154: DUP5 00001155: AND 00001156: PUSH1 0x00 00001158: SWAP1 00001159: DUP2 0000115a: MSTORE 0000115b: PUSH3 0x01000c 0000115f: PUSH1 0x20 00001161: MSTORE 00001162: SWAP2 00001163: DUP3 00001164: KECCAK256 00001165: DUP1 00001166: SLOAD 00001167: SWAP2 00001168: SWAP3 00001169: SWAP1 0000116a: SWAP2 0000116b: PUSH2 0x1187 0000116e: SWAP1 0000116f: DUP5 00001170: SWAP1 00001171: PUSH16 0xffffffffffffffffffffffffffffffff 00001182: AND 00001183: PUSH2 0x5ab7 00001186: JUMP 00001187: JUMPDEST 00001188: SWAP3 00001189: POP 0000118a: PUSH2 0x0100 0000118d: EXP 0000118e: DUP2 0000118f: SLOAD 00001190: DUP2 00001191: PUSH16 0xffffffffffffffffffffffffffffffff 000011a2: MUL 000011a3: NOT 000011a4: AND 000011a5: SWAP1 000011a6: DUP4 000011a7: PUSH16 0xffffffffffffffffffffffffffffffff 000011b8: AND 000011b9: MUL 000011ba: OR 000011bb: SWAP1 000011bc: SSTORE 000011bd: POP 000011be: JUMPDEST 000011bf: PUSH1 0x60 000011c1: DUP4 000011c2: ADD 000011c3: MLOAD 000011c4: PUSH16 0xffffffffffffffffffffffffffffffff 000011d5: AND 000011d6: ISZERO 000011d7: PUSH2 0x125f 000011da: JUMPI 000011db: PUSH1 0x60 000011dd: DUP4 000011de: ADD 000011df: MLOAD 000011e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011f5: DUP3 000011f6: AND 000011f7: PUSH1 0x00 000011f9: SWAP1 000011fa: DUP2 000011fb: MSTORE 000011fc: PUSH3 0x01000c 00001200: PUSH1 0x20 00001202: MSTORE 00001203: PUSH1 0x40 00001205: DUP2 00001206: KECCAK256 00001207: DUP1 00001208: SLOAD 00001209: SWAP1 0000120a: SWAP2 0000120b: SWAP1 0000120c: PUSH2 0x1228 0000120f: SWAP1 00001210: DUP5 00001211: SWAP1 00001212: PUSH16 0xffffffffffffffffffffffffffffffff 00001223: AND 00001224: PUSH2 0x5ab7 00001227: JUMP 00001228: JUMPDEST 00001229: SWAP3 0000122a: POP 0000122b: PUSH2 0x0100 0000122e: EXP 0000122f: DUP2 00001230: SLOAD 00001231: DUP2 00001232: PUSH16 0xffffffffffffffffffffffffffffffff 00001243: MUL 00001244: NOT 00001245: AND 00001246: SWAP1 00001247: DUP4 00001248: PUSH16 0xffffffffffffffffffffffffffffffff 00001259: AND 0000125a: MUL 0000125b: OR 0000125c: SWAP1 0000125d: SSTORE 0000125e: POP 0000125f: JUMPDEST 00001260: POP 00001261: POP 00001262: POP 00001263: JUMP 00001264: JUMPDEST 00001265: PUSH1 0x40 00001267: DUP1 00001268: MLOAD 00001269: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000127e: DUP1 0000127f: DUP7 00001280: AND 00001281: PUSH1 0x20 00001283: DUP4 00001284: ADD 00001285: MSTORE 00001286: DUP5 00001287: AND 00001288: SWAP2 00001289: DUP2 0000128a: ADD 0000128b: SWAP2 0000128c: SWAP1 0000128d: SWAP2 0000128e: MSTORE 0000128f: PUSH2 0xffff 00001292: DUP3 00001293: AND 00001294: PUSH1 0x60 00001296: DUP3 00001297: ADD 00001298: MSTORE 00001299: PUSH1 0x00 0000129b: SWAP1 0000129c: PUSH1 0x80 0000129e: ADD 0000129f: JUMPDEST 000012a0: PUSH1 0x40 000012a2: MLOAD 000012a3: PUSH1 0x20 000012a5: DUP2 000012a6: DUP4 000012a7: SUB 000012a8: SUB 000012a9: DUP2 000012aa: MSTORE 000012ab: SWAP1 000012ac: PUSH1 0x40 000012ae: MSTORE 000012af: DUP1 000012b0: MLOAD 000012b1: SWAP1 000012b2: PUSH1 0x20 000012b4: ADD 000012b5: KECCAK256 000012b6: SWAP1 000012b7: POP 000012b8: SWAP4 000012b9: SWAP3 000012ba: POP 000012bb: POP 000012bc: POP 000012bd: JUMP 000012be: JUMPDEST 000012bf: PUSH1 0x00 000012c1: DUP1 000012c2: PUSH2 0x12ca 000012c5: DUP4 000012c6: PUSH2 0x17d2 000012c9: JUMP 000012ca: JUMPDEST 000012cb: SWAP1 000012cc: POP 000012cd: PUSH2 0x1374 000012d0: PUSH1 0x40 000012d2: DUP1 000012d3: MLOAD 000012d4: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 000012f5: PUSH1 0x20 000012f7: DUP3 000012f8: ADD 000012f9: MSTORE 000012fa: PUSH32 0x33dd648f3c5d475752f4dfbf3ab10305e18604abf30961145f1889ec2e867563 0000131b: SWAP2 0000131c: DUP2 0000131d: ADD 0000131e: SWAP2 0000131f: SWAP1 00001320: SWAP2 00001321: MSTORE 00001322: PUSH32 0xe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b3 00001343: PUSH1 0x60 00001345: DUP3 00001346: ADD 00001347: MSTORE 00001348: CHAINID 00001349: PUSH1 0x80 0000134b: DUP3 0000134c: ADD 0000134d: MSTORE 0000134e: ADDRESS 0000134f: PUSH1 0xa0 00001351: DUP3 00001352: ADD 00001353: MSTORE 00001354: PUSH1 0x00 00001356: SWAP1 00001357: PUSH1 0xc0 00001359: ADD 0000135a: PUSH1 0x40 0000135c: MLOAD 0000135d: PUSH1 0x20 0000135f: DUP2 00001360: DUP4 00001361: SUB 00001362: SUB 00001363: DUP2 00001364: MSTORE 00001365: SWAP1 00001366: PUSH1 0x40 00001368: MSTORE 00001369: DUP1 0000136a: MLOAD 0000136b: SWAP1 0000136c: PUSH1 0x20 0000136e: ADD 0000136f: KECCAK256 00001370: SWAP1 00001371: POP 00001372: SWAP1 00001373: JUMP 00001374: JUMPDEST 00001375: PUSH1 0x40 00001377: MLOAD 00001378: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 00001399: PUSH1 0x20 0000139b: DUP3 0000139c: ADD 0000139d: MSTORE 0000139e: PUSH1 0x22 000013a0: DUP2 000013a1: ADD 000013a2: SWAP2 000013a3: SWAP1 000013a4: SWAP2 000013a5: MSTORE 000013a6: PUSH1 0x42 000013a8: DUP2 000013a9: ADD 000013aa: DUP3 000013ab: SWAP1 000013ac: MSTORE 000013ad: PUSH1 0x62 000013af: ADD 000013b0: PUSH1 0x40 000013b2: MLOAD 000013b3: PUSH1 0x20 000013b5: DUP2 000013b6: DUP4 000013b7: SUB 000013b8: SUB 000013b9: DUP2 000013ba: MSTORE 000013bb: SWAP1 000013bc: PUSH1 0x40 000013be: MSTORE 000013bf: DUP1 000013c0: MLOAD 000013c1: SWAP1 000013c2: PUSH1 0x20 000013c4: ADD 000013c5: KECCAK256 000013c6: SWAP2 000013c7: POP 000013c8: POP 000013c9: SWAP2 000013ca: SWAP1 000013cb: POP 000013cc: JUMP 000013cd: JUMPDEST 000013ce: PUSH1 0x00 000013d0: PUSH3 0x010010 000013d4: PUSH1 0x00 000013d6: PUSH2 0x13df 000013d9: DUP7 000013da: DUP7 000013db: PUSH2 0x1871 000013de: JUMP 000013df: JUMPDEST 000013e0: DUP2 000013e1: MSTORE 000013e2: PUSH1 0x20 000013e4: DUP2 000013e5: ADD 000013e6: SWAP2 000013e7: SWAP1 000013e8: SWAP2 000013e9: MSTORE 000013ea: PUSH1 0x40 000013ec: ADD 000013ed: PUSH1 0x00 000013ef: KECCAK256 000013f0: DUP1 000013f1: SLOAD 000013f2: SWAP1 000013f3: SWAP2 000013f4: POP 000013f5: PUSH4 0xffffffff 000013fa: DUP4 000013fb: DUP2 000013fc: AND 000013fd: PUSH17 0x0100000000000000000000000000000000 0000140f: SWAP1 00001410: SWAP3 00001411: DIV 00001412: AND 00001413: EQ 00001414: PUSH2 0x141c 00001417: JUMPI 00001418: PUSH1 0x00 0000141a: DUP1 0000141b: REVERT 0000141c: JUMPDEST 0000141d: DUP1 0000141e: SLOAD 0000141f: DUP2 00001420: SWAP1 00001421: PUSH1 0x10 00001423: SWAP1 00001424: PUSH2 0x0bd8 00001427: SWAP1 00001428: PUSH17 0x0100000000000000000000000000000000 0000143a: SWAP1 0000143b: DIV 0000143c: PUSH4 0xffffffff 00001441: AND 00001442: PUSH2 0x5c13 00001445: JUMP 00001446: JUMPDEST 00001447: PUSH1 0x40 00001449: DUP1 0000144a: MLOAD 0000144b: PUSH2 0x0140 0000144e: DUP2 0000144f: ADD 00001450: DUP3 00001451: MSTORE 00001452: PUSH1 0x00 00001454: PUSH1 0x60 00001456: DUP3 00001457: ADD 00001458: DUP2 00001459: DUP2 0000145a: MSTORE 0000145b: PUSH1 0x80 0000145d: DUP4 0000145e: ADD 0000145f: DUP3 00001460: SWAP1 00001461: MSTORE 00001462: PUSH1 0xa0 00001464: DUP4 00001465: ADD 00001466: DUP3 00001467: SWAP1 00001468: MSTORE 00001469: PUSH1 0xc0 0000146b: DUP4 0000146c: ADD 0000146d: DUP3 0000146e: SWAP1 0000146f: MSTORE 00001470: PUSH1 0xe0 00001472: DUP4 00001473: ADD 00001474: DUP3 00001475: SWAP1 00001476: MSTORE 00001477: PUSH2 0x0100 0000147a: DUP4 0000147b: ADD 0000147c: DUP3 0000147d: SWAP1 0000147e: MSTORE 0000147f: PUSH2 0x0120 00001482: DUP4 00001483: ADD 00001484: DUP3 00001485: SWAP1 00001486: MSTORE 00001487: DUP3 00001488: MSTORE 00001489: PUSH1 0x20 0000148b: DUP3 0000148c: ADD 0000148d: DUP2 0000148e: SWAP1 0000148f: MSTORE 00001490: SWAP2 00001491: DUP2 00001492: ADD 00001493: SWAP2 00001494: SWAP1 00001495: SWAP2 00001496: MSTORE 00001497: PUSH2 0x14a5 0000149a: PUSH3 0x010009 0000149e: DUP6 0000149f: DUP6 000014a0: DUP6 000014a1: PUSH2 0x18a2 000014a4: JUMP 000014a5: JUMPDEST 000014a6: SWAP1 000014a7: POP 000014a8: PUSH2 0x14b0 000014ab: DUP2 000014ac: PUSH2 0x19d3 000014af: JUMP 000014b0: JUMPDEST 000014b1: PUSH2 0x05f5 000014b4: JUMPI 000014b5: PUSH1 0x40 000014b7: MLOAD 000014b8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000014d9: DUP2 000014da: MSTORE 000014db: PUSH1 0x20 000014dd: PUSH1 0x04 000014df: DUP3 000014e0: ADD 000014e1: MSTORE 000014e2: PUSH1 0x02 000014e4: PUSH1 0x24 000014e6: DUP3 000014e7: ADD 000014e8: MSTORE 000014e9: PUSH32 0x5049000000000000000000000000000000000000000000000000000000000000 0000150a: PUSH1 0x44 0000150c: DUP3 0000150d: ADD 0000150e: MSTORE 0000150f: PUSH1 0x64 00001511: ADD 00001512: PUSH2 0x10ea 00001515: JUMP 00001516: JUMPDEST 00001517: PUSH1 0x40 00001519: DUP7 0000151a: ADD 0000151b: MLOAD 0000151c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001531: AND 00001532: ISZERO 00001533: PUSH2 0x162f 00001536: JUMPI 00001537: PUSH1 0x40 00001539: DUP7 0000153a: DUP2 0000153b: ADD 0000153c: MLOAD 0000153d: PUSH1 0x00 0000153f: DUP1 00001540: SLOAD 00001541: DUP10 00001542: MLOAD 00001543: PUSH1 0x20 00001545: ADD 00001546: MLOAD 00001547: SWAP4 00001548: MLOAD 00001549: PUSH32 0x4e56bd3800000000000000000000000000000000000000000000000000000000 0000156a: DUP2 0000156b: MSTORE 0000156c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001581: SWAP2 00001582: DUP3 00001583: AND 00001584: PUSH1 0x04 00001586: DUP3 00001587: ADD 00001588: MSTORE 00001589: CALLER 0000158a: PUSH1 0x24 0000158c: DUP3 0000158d: ADD 0000158e: MSTORE 0000158f: DUP10 00001590: DUP3 00001591: AND 00001592: PUSH1 0x44 00001594: DUP3 00001595: ADD 00001596: MSTORE 00001597: DUP9 00001598: DUP3 00001599: AND 0000159a: PUSH1 0x64 0000159c: DUP3 0000159d: ADD 0000159e: MSTORE 0000159f: DUP8 000015a0: ISZERO 000015a1: ISZERO 000015a2: PUSH1 0x84 000015a4: DUP3 000015a5: ADD 000015a6: MSTORE 000015a7: DUP7 000015a8: ISZERO 000015a9: ISZERO 000015aa: PUSH1 0xa4 000015ac: DUP3 000015ad: ADD 000015ae: MSTORE 000015af: PUSH16 0xffffffffffffffffffffffffffffffff 000015c0: DUP7 000015c1: AND 000015c2: PUSH1 0xc4 000015c4: DUP3 000015c5: ADD 000015c6: MSTORE 000015c7: PUSH2 0xffff 000015ca: SWAP1 000015cb: SWAP5 000015cc: AND 000015cd: PUSH1 0xe4 000015cf: DUP6 000015d0: ADD 000015d1: MSTORE 000015d2: SWAP1 000015d3: SWAP3 000015d4: SWAP2 000015d5: AND 000015d6: SWAP1 000015d7: PUSH4 0x4e56bd38 000015dc: SWAP1 000015dd: PUSH2 0x0104 000015e0: ADD 000015e1: PUSH1 0x20 000015e3: PUSH1 0x40 000015e5: MLOAD 000015e6: DUP1 000015e7: DUP4 000015e8: SUB 000015e9: DUP2 000015ea: PUSH1 0x00 000015ec: DUP8 000015ed: GAS 000015ee: CALL 000015ef: ISZERO 000015f0: DUP1 000015f1: ISZERO 000015f2: PUSH2 0x15ff 000015f5: JUMPI 000015f6: RETURNDATASIZE 000015f7: PUSH1 0x00 000015f9: DUP1 000015fa: RETURNDATACOPY 000015fb: RETURNDATASIZE 000015fc: PUSH1 0x00 000015fe: REVERT 000015ff: JUMPDEST 00001600: POP 00001601: POP 00001602: POP 00001603: POP 00001604: PUSH1 0x40 00001606: MLOAD 00001607: RETURNDATASIZE 00001608: PUSH1 0x1f 0000160a: NOT 0000160b: PUSH1 0x1f 0000160d: DUP3 0000160e: ADD 0000160f: AND 00001610: DUP3 00001611: ADD 00001612: DUP1 00001613: PUSH1 0x40 00001615: MSTORE 00001616: POP 00001617: DUP2 00001618: ADD 00001619: SWAP1 0000161a: PUSH2 0x1623 0000161d: SWAP2 0000161e: SWAP1 0000161f: PUSH2 0x5c36 00001622: JUMP 00001623: JUMPDEST 00001624: SWAP1 00001625: POP 00001626: PUSH2 0x0d87 00001629: DUP8 0000162a: DUP3 0000162b: PUSH2 0x1a54 0000162e: JUMP 0000162f: JUMPDEST 00001630: POP 00001631: POP 00001632: POP 00001633: POP 00001634: POP 00001635: POP 00001636: JUMP 00001637: JUMPDEST 00001638: PUSH1 0x40 0000163a: DUP1 0000163b: MLOAD 0000163c: PUSH1 0x80 0000163e: DUP2 0000163f: ADD 00001640: DUP3 00001641: MSTORE 00001642: PUSH1 0x00 00001644: DUP1 00001645: DUP3 00001646: MSTORE 00001647: PUSH1 0x20 00001649: DUP3 0000164a: ADD 0000164b: DUP2 0000164c: SWAP1 0000164d: MSTORE 0000164e: SWAP2 0000164f: DUP2 00001650: ADD 00001651: DUP3 00001652: SWAP1 00001653: MSTORE 00001654: PUSH1 0x60 00001656: DUP2 00001657: ADD 00001658: SWAP2 00001659: SWAP1 0000165a: SWAP2 0000165b: MSTORE 0000165c: PUSH1 0x00 0000165e: PUSH2 0x166a 00001661: DUP4 00001662: PUSH1 0x20 00001664: ADD 00001665: MLOAD 00001666: PUSH2 0x1ae9 00001669: JUMP 0000166a: JUMPDEST 0000166b: SWAP1 0000166c: POP 0000166d: PUSH2 0x1697 00001670: DUP3 00001671: DUP3 00001672: PUSH2 0x1690 00001675: DUP5 00001676: PUSH1 0x00 00001678: ADD 00001679: MLOAD 0000167a: PUSH16 0xffffffffffffffffffffffffffffffff 0000168b: AND 0000168c: PUSH2 0x1bbe 0000168f: JUMP 00001690: JUMPDEST 00001691: DUP8 00001692: DUP8 00001693: PUSH2 0x1f11 00001696: JUMP 00001697: JUMPDEST 00001698: PUSH1 0x20 0000169a: DUP1 0000169b: DUP5 0000169c: ADD 0000169d: MLOAD 0000169e: PUSH1 0x00 000016a0: SWAP1 000016a1: DUP2 000016a2: MSTORE 000016a3: PUSH3 0x01000f 000016a7: DUP3 000016a8: MSTORE 000016a9: PUSH1 0x40 000016ab: SWAP1 000016ac: DUP2 000016ad: SWAP1 000016ae: KECCAK256 000016af: DUP4 000016b0: MLOAD 000016b1: SWAP3 000016b2: DUP5 000016b3: ADD 000016b4: MLOAD 000016b5: PUSH16 0xffffffffffffffffffffffffffffffff 000016c6: SWAP4 000016c7: DUP5 000016c8: AND 000016c9: PUSH17 0x0100000000000000000000000000000000 000016db: SWAP2 000016dc: DUP6 000016dd: AND 000016de: DUP3 000016df: MUL 000016e0: OR 000016e1: DUP3 000016e2: SSTORE 000016e3: SWAP2 000016e4: DUP5 000016e5: ADD 000016e6: MLOAD 000016e7: PUSH1 0x01 000016e9: SWAP1 000016ea: SWAP2 000016eb: ADD 000016ec: DUP1 000016ed: SLOAD 000016ee: PUSH1 0x60 000016f0: DUP7 000016f1: ADD 000016f2: MLOAD 000016f3: PUSH1 0x80 000016f5: DUP8 000016f6: ADD 000016f7: MLOAD 000016f8: SWAP4 000016f9: SWAP1 000016fa: SWAP6 000016fb: AND 000016fc: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 0000171d: SWAP1 0000171e: SWAP2 0000171f: AND 00001720: OR 00001721: PUSH8 0xffffffffffffffff 0000172a: SWAP5 0000172b: DUP6 0000172c: AND 0000172d: SWAP1 0000172e: SWAP4 0000172f: MUL 00001730: SWAP3 00001731: SWAP1 00001732: SWAP3 00001733: OR 00001734: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff 0000174d: AND 0000174e: PUSH25 0x01000000000000000000000000000000000000000000000000 00001768: SWAP4 00001769: SWAP1 0000176a: SWAP2 0000176b: AND 0000176c: SWAP3 0000176d: SWAP1 0000176e: SWAP3 0000176f: MUL 00001770: SWAP2 00001771: SWAP1 00001772: SWAP2 00001773: OR 00001774: SWAP1 00001775: SSTORE 00001776: JUMPDEST 00001777: POP 00001778: SWAP3 00001779: SWAP2 0000177a: POP 0000177b: POP 0000177c: JUMP 0000177d: JUMPDEST 0000177e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001793: DUP6 00001794: AND 00001795: PUSH2 0x17ae 00001798: JUMPI 00001799: PUSH2 0x17a9 0000179c: DUP8 0000179d: DUP8 0000179e: DUP7 0000179f: PUSH1 0x01 000017a1: DUP6 000017a2: AND 000017a3: ISZERO 000017a4: ISZERO 000017a5: PUSH2 0x209b 000017a8: JUMP 000017a9: JUMPDEST 000017aa: PUSH2 0x17c0 000017ad: JUMP 000017ae: JUMPDEST 000017af: PUSH2 0x17c0 000017b2: DUP8 000017b3: DUP8 000017b4: DUP7 000017b5: DUP9 000017b6: PUSH1 0x01 000017b8: DUP7 000017b9: AND 000017ba: ISZERO 000017bb: ISZERO 000017bc: PUSH2 0x20d0 000017bf: JUMP 000017c0: JUMPDEST 000017c1: PUSH2 0x0d87 000017c4: DUP8 000017c5: DUP8 000017c6: DUP5 000017c7: DUP7 000017c8: PUSH1 0x02 000017ca: DUP7 000017cb: AND 000017cc: ISZERO 000017cd: ISZERO 000017ce: PUSH2 0x20d0 000017d1: JUMP 000017d2: JUMPDEST 000017d3: PUSH1 0x00 000017d5: PUSH32 0xb7268d49bb01bc5e690da8069036b0caa17476a23af017f9840ccc0fc5ca01b7 000017f6: DUP3 000017f7: PUSH1 0x00 000017f9: ADD 000017fa: MLOAD 000017fb: DUP4 000017fc: PUSH1 0x20 000017fe: ADD 000017ff: MLOAD 00001800: DUP1 00001801: MLOAD 00001802: SWAP1 00001803: PUSH1 0x20 00001805: ADD 00001806: KECCAK256 00001807: DUP5 00001808: PUSH1 0x40 0000180a: ADD 0000180b: MLOAD 0000180c: DUP1 0000180d: MLOAD 0000180e: SWAP1 0000180f: PUSH1 0x20 00001811: ADD 00001812: KECCAK256 00001813: DUP6 00001814: PUSH1 0x60 00001816: ADD 00001817: MLOAD 00001818: DUP1 00001819: MLOAD 0000181a: SWAP1 0000181b: PUSH1 0x20 0000181d: ADD 0000181e: KECCAK256 0000181f: PUSH1 0x40 00001821: MLOAD 00001822: PUSH1 0x20 00001824: ADD 00001825: PUSH2 0x1854 00001828: SWAP6 00001829: SWAP5 0000182a: SWAP4 0000182b: SWAP3 0000182c: SWAP2 0000182d: SWAP1 0000182e: SWAP5 0000182f: DUP6 00001830: MSTORE 00001831: PUSH2 0xffff 00001834: SWAP4 00001835: SWAP1 00001836: SWAP4 00001837: AND 00001838: PUSH1 0x20 0000183a: DUP6 0000183b: ADD 0000183c: MSTORE 0000183d: PUSH1 0x40 0000183f: DUP5 00001840: ADD 00001841: SWAP2 00001842: SWAP1 00001843: SWAP2 00001844: MSTORE 00001845: PUSH1 0x60 00001847: DUP4 00001848: ADD 00001849: MSTORE 0000184a: PUSH1 0x80 0000184c: DUP3 0000184d: ADD 0000184e: MSTORE 0000184f: PUSH1 0xa0 00001851: ADD 00001852: SWAP1 00001853: JUMP 00001854: JUMPDEST 00001855: PUSH1 0x40 00001857: MLOAD 00001858: PUSH1 0x20 0000185a: DUP2 0000185b: DUP4 0000185c: SUB 0000185d: SUB 0000185e: DUP2 0000185f: MSTORE 00001860: SWAP1 00001861: PUSH1 0x40 00001863: MSTORE 00001864: DUP1 00001865: MLOAD 00001866: SWAP1 00001867: PUSH1 0x20 00001869: ADD 0000186a: KECCAK256 0000186b: SWAP1 0000186c: POP 0000186d: SWAP2 0000186e: SWAP1 0000186f: POP 00001870: JUMP 00001871: JUMPDEST 00001872: PUSH1 0x40 00001874: DUP1 00001875: MLOAD 00001876: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000188b: DUP5 0000188c: AND 0000188d: PUSH1 0x20 0000188f: DUP3 00001890: ADD 00001891: MSTORE 00001892: SWAP1 00001893: DUP2 00001894: ADD 00001895: DUP3 00001896: SWAP1 00001897: MSTORE 00001898: PUSH1 0x00 0000189a: SWAP1 0000189b: PUSH1 0x60 0000189d: ADD 0000189e: PUSH2 0x0ef9 000018a1: JUMP 000018a2: JUMPDEST 000018a3: PUSH1 0x40 000018a5: DUP1 000018a6: MLOAD 000018a7: PUSH2 0x0140 000018aa: DUP2 000018ab: ADD 000018ac: DUP3 000018ad: MSTORE 000018ae: PUSH1 0x00 000018b0: PUSH1 0x60 000018b2: DUP3 000018b3: ADD 000018b4: DUP2 000018b5: DUP2 000018b6: MSTORE 000018b7: PUSH1 0x80 000018b9: DUP4 000018ba: ADD 000018bb: DUP3 000018bc: SWAP1 000018bd: MSTORE 000018be: PUSH1 0xa0 000018c0: DUP4 000018c1: ADD 000018c2: DUP3 000018c3: SWAP1 000018c4: MSTORE 000018c5: PUSH1 0xc0 000018c7: DUP4 000018c8: ADD 000018c9: DUP3 000018ca: SWAP1 000018cb: MSTORE 000018cc: PUSH1 0xe0 000018ce: DUP4 000018cf: ADD 000018d0: DUP3 000018d1: SWAP1 000018d2: MSTORE 000018d3: PUSH2 0x0100 000018d6: DUP4 000018d7: ADD 000018d8: DUP3 000018d9: SWAP1 000018da: MSTORE 000018db: PUSH2 0x0120 000018de: DUP4 000018df: ADD 000018e0: DUP3 000018e1: SWAP1 000018e2: MSTORE 000018e3: DUP3 000018e4: MSTORE 000018e5: PUSH1 0x20 000018e7: DUP3 000018e8: ADD 000018e9: DUP2 000018ea: SWAP1 000018eb: MSTORE 000018ec: SWAP2 000018ed: DUP2 000018ee: ADD 000018ef: DUP3 000018f0: SWAP1 000018f1: MSTORE 000018f2: SWAP1 000018f3: PUSH2 0x18fd 000018f6: DUP6 000018f7: DUP6 000018f8: DUP6 000018f9: PUSH2 0x2100 000018fc: JUMP 000018fd: JUMPDEST 000018fe: PUSH1 0x00 00001900: DUP2 00001901: DUP2 00001902: MSTORE 00001903: PUSH1 0x20 00001905: DUP9 00001906: DUP2 00001907: MSTORE 00001908: PUSH1 0x40 0000190a: DUP1 0000190b: DUP4 0000190c: KECCAK256 0000190d: DUP2 0000190e: MLOAD 0000190f: PUSH1 0xe0 00001911: DUP2 00001912: ADD 00001913: DUP4 00001914: MSTORE 00001915: SWAP1 00001916: SLOAD 00001917: PUSH1 0xff 00001919: DUP1 0000191a: DUP3 0000191b: AND 0000191c: DUP4 0000191d: MSTORE 0000191e: PUSH2 0xffff 00001921: PUSH2 0x0100 00001924: DUP4 00001925: DIV 00001926: DUP2 00001927: AND 00001928: SWAP6 00001929: DUP5 0000192a: ADD 0000192b: SWAP6 0000192c: SWAP1 0000192d: SWAP6 0000192e: MSTORE 0000192f: PUSH4 0x01000000 00001934: DUP3 00001935: DIV 00001936: DUP2 00001937: AND 00001938: SWAP4 00001939: DUP4 0000193a: ADD 0000193b: SWAP4 0000193c: SWAP1 0000193d: SWAP4 0000193e: MSTORE 0000193f: PUSH5 0x0100000000 00001945: DUP2 00001946: DIV 00001947: SWAP1 00001948: SWAP4 00001949: AND 0000194a: PUSH1 0x60 0000194c: DUP3 0000194d: ADD 0000194e: MSTORE 0000194f: PUSH7 0x01000000000000 00001957: DUP4 00001958: DIV 00001959: DUP3 0000195a: AND 0000195b: PUSH1 0x80 0000195d: DUP3 0000195e: ADD 0000195f: MSTORE 00001960: PUSH8 0x0100000000000000 00001969: DUP4 0000196a: DIV 0000196b: DUP3 0000196c: AND 0000196d: PUSH1 0xa0 0000196f: DUP3 00001970: ADD 00001971: MSTORE 00001972: PUSH9 0x010000000000000000 0000197c: SWAP1 0000197d: SWAP3 0000197e: DIV 0000197f: AND 00001980: PUSH1 0xc0 00001982: DUP3 00001983: ADD 00001984: DUP2 00001985: SWAP1 00001986: MSTORE 00001987: SWAP3 00001988: SWAP4 00001989: POP 0000198a: SWAP2 0000198b: PUSH2 0x1995 0000198e: SWAP1 0000198f: DUP7 00001990: SWAP1 00001991: PUSH2 0x2173 00001994: JUMP 00001995: JUMPDEST 00001996: PUSH1 0x40 00001998: DUP1 00001999: MLOAD 0000199a: PUSH1 0x60 0000199c: DUP2 0000199d: ADD 0000199e: DUP3 0000199f: MSTORE 000019a0: SWAP4 000019a1: DUP5 000019a2: MSTORE 000019a3: PUSH1 0x20 000019a5: DUP5 000019a6: ADD 000019a7: SWAP5 000019a8: SWAP1 000019a9: SWAP5 000019aa: MSTORE 000019ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019c0: AND 000019c1: SWAP3 000019c2: DUP3 000019c3: ADD 000019c4: SWAP3 000019c5: SWAP1 000019c6: SWAP3 000019c7: MSTORE 000019c8: SWAP2 000019c9: POP 000019ca: POP 000019cb: JUMPDEST 000019cc: SWAP5 000019cd: SWAP4 000019ce: POP 000019cf: POP 000019d0: POP 000019d1: POP 000019d2: JUMP 000019d3: JUMPDEST 000019d4: DUP1 000019d5: MLOAD 000019d6: MLOAD 000019d7: PUSH1 0x00 000019d9: SWAP1 000019da: PUSH1 0x01 000019dc: PUSH1 0xff 000019de: SWAP1 000019df: SWAP2 000019e0: AND 000019e1: GT 000019e2: ISZERO 000019e3: PUSH2 0x1a48 000019e6: JUMPI 000019e7: PUSH1 0x40 000019e9: MLOAD 000019ea: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001a0b: DUP2 00001a0c: MSTORE 00001a0d: PUSH1 0x20 00001a0f: PUSH1 0x04 00001a11: DUP3 00001a12: ADD 00001a13: MSTORE 00001a14: PUSH1 0x03 00001a16: PUSH1 0x24 00001a18: DUP3 00001a19: ADD 00001a1a: MSTORE 00001a1b: PUSH32 0x4950530000000000000000000000000000000000000000000000000000000000 00001a3c: PUSH1 0x44 00001a3e: DUP3 00001a3f: ADD 00001a40: MSTORE 00001a41: PUSH1 0x64 00001a43: ADD 00001a44: PUSH2 0x10ea 00001a47: JUMP 00001a48: JUMPDEST 00001a49: POP 00001a4a: MLOAD 00001a4b: MLOAD 00001a4c: PUSH1 0xff 00001a4e: AND 00001a4f: PUSH1 0x01 00001a51: EQ 00001a52: SWAP1 00001a53: JUMP 00001a54: JUMPDEST 00001a55: PUSH1 0x01 00001a57: PUSH2 0xffff 00001a5a: DUP3 00001a5b: AND 00001a5c: PUSH2 0x1ac1 00001a5f: JUMPI 00001a60: PUSH1 0x40 00001a62: MLOAD 00001a63: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001a84: DUP2 00001a85: MSTORE 00001a86: PUSH1 0x20 00001a88: PUSH1 0x04 00001a8a: DUP3 00001a8b: ADD 00001a8c: MSTORE 00001a8d: PUSH1 0x01 00001a8f: PUSH1 0x24 00001a91: DUP3 00001a92: ADD 00001a93: MSTORE 00001a94: PUSH32 0x5a00000000000000000000000000000000000000000000000000000000000000 00001ab5: PUSH1 0x44 00001ab7: DUP3 00001ab8: ADD 00001ab9: MSTORE 00001aba: PUSH1 0x64 00001abc: ADD 00001abd: PUSH2 0x10ea 00001ac0: JUMP 00001ac1: JUMPDEST 00001ac2: PUSH2 0x1acb 00001ac5: DUP2 00001ac6: DUP4 00001ac7: PUSH2 0x5c53 00001aca: JUMP 00001acb: JUMPDEST 00001acc: DUP4 00001acd: MLOAD 00001ace: PUSH1 0x20 00001ad0: ADD 00001ad1: DUP1 00001ad2: MLOAD 00001ad3: PUSH2 0x1add 00001ad6: SWAP1 00001ad7: DUP4 00001ad8: SWAP1 00001ad9: PUSH2 0x5c53 00001adc: JUMP 00001add: JUMPDEST 00001ade: PUSH2 0xffff 00001ae1: AND 00001ae2: SWAP1 00001ae3: MSTORE 00001ae4: POP 00001ae5: POP 00001ae6: POP 00001ae7: POP 00001ae8: JUMP 00001ae9: JUMPDEST 00001aea: PUSH1 0x40 00001aec: DUP1 00001aed: MLOAD 00001aee: PUSH1 0xa0 00001af0: DUP2 00001af1: ADD 00001af2: DUP3 00001af3: MSTORE 00001af4: PUSH1 0x00 00001af6: DUP1 00001af7: DUP3 00001af8: MSTORE 00001af9: PUSH1 0x20 00001afb: DUP3 00001afc: ADD 00001afd: DUP2 00001afe: SWAP1 00001aff: MSTORE 00001b00: SWAP2 00001b01: DUP2 00001b02: ADD 00001b03: DUP3 00001b04: SWAP1 00001b05: MSTORE 00001b06: PUSH1 0x60 00001b08: DUP2 00001b09: ADD 00001b0a: DUP3 00001b0b: SWAP1 00001b0c: MSTORE 00001b0d: PUSH1 0x80 00001b0f: DUP2 00001b10: ADD 00001b11: SWAP2 00001b12: SWAP1 00001b13: SWAP2 00001b14: MSTORE 00001b15: POP 00001b16: PUSH1 0x00 00001b18: DUP2 00001b19: DUP2 00001b1a: MSTORE 00001b1b: PUSH3 0x01000f 00001b1f: PUSH1 0x20 00001b21: SWAP1 00001b22: DUP2 00001b23: MSTORE 00001b24: PUSH1 0x40 00001b26: SWAP2 00001b27: DUP3 00001b28: SWAP1 00001b29: KECCAK256 00001b2a: DUP3 00001b2b: MLOAD 00001b2c: PUSH1 0xa0 00001b2e: DUP2 00001b2f: ADD 00001b30: DUP5 00001b31: MSTORE 00001b32: DUP2 00001b33: SLOAD 00001b34: PUSH16 0xffffffffffffffffffffffffffffffff 00001b45: DUP1 00001b46: DUP3 00001b47: AND 00001b48: DUP1 00001b49: DUP5 00001b4a: MSTORE 00001b4b: PUSH17 0x0100000000000000000000000000000000 00001b5d: SWAP3 00001b5e: DUP4 00001b5f: SWAP1 00001b60: DIV 00001b61: DUP3 00001b62: AND 00001b63: SWAP6 00001b64: DUP5 00001b65: ADD 00001b66: SWAP6 00001b67: SWAP1 00001b68: SWAP6 00001b69: MSTORE 00001b6a: PUSH1 0x01 00001b6c: SWAP1 00001b6d: SWAP4 00001b6e: ADD 00001b6f: SLOAD 00001b70: SWAP3 00001b71: DUP4 00001b72: AND 00001b73: SWAP5 00001b74: DUP3 00001b75: ADD 00001b76: SWAP5 00001b77: SWAP1 00001b78: SWAP5 00001b79: MSTORE 00001b7a: SWAP3 00001b7b: DUP2 00001b7c: DIV 00001b7d: PUSH8 0xffffffffffffffff 00001b86: SWAP1 00001b87: DUP2 00001b88: AND 00001b89: PUSH1 0x60 00001b8b: DUP6 00001b8c: ADD 00001b8d: MSTORE 00001b8e: PUSH25 0x01000000000000000000000000000000000000000000000000 00001ba8: SWAP1 00001ba9: SWAP2 00001baa: DIV 00001bab: AND 00001bac: PUSH1 0x80 00001bae: DUP4 00001baf: ADD 00001bb0: MSTORE 00001bb1: PUSH2 0x1bb9 00001bb4: JUMPI 00001bb5: PUSH1 0x00 00001bb7: DUP1 00001bb8: REVERT 00001bb9: JUMPDEST 00001bba: SWAP2 00001bbb: SWAP1 00001bbc: POP 00001bbd: JUMP 00001bbe: JUMPDEST 00001bbf: PUSH1 0x00 00001bc1: PUSH3 0x010002 00001bc5: PUSH16 0xffffffffffffffffffffffffffffffff 00001bd6: DUP4 00001bd7: AND 00001bd8: LT 00001bd9: DUP1 00001bda: ISZERO 00001bdb: SWAP1 00001bdc: PUSH2 0x1c06 00001bdf: JUMPI 00001be0: POP 00001be1: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472 00001bf2: PUSH16 0xffffffffffffffffffffffffffffffff 00001c03: DUP4 00001c04: AND 00001c05: LT 00001c06: JUMPDEST 00001c07: PUSH2 0x1c0f 00001c0a: JUMPI 00001c0b: PUSH1 0x00 00001c0d: DUP1 00001c0e: REVERT 00001c0f: JUMPDEST 00001c10: PUSH24 0xffffffffffffffffffffffffffffffff0000000000000000 00001c29: PUSH1 0x40 00001c2b: DUP4 00001c2c: SWAP1 00001c2d: SHL 00001c2e: AND 00001c2f: PUSH16 0xffffffffffffffffffffffffffffffff 00001c40: DUP2 00001c41: GT 00001c42: PUSH1 0x07 00001c44: SHL 00001c45: DUP2 00001c46: DUP2 00001c47: SHR 00001c48: PUSH8 0xffffffffffffffff 00001c51: DUP2 00001c52: GT 00001c53: PUSH1 0x06 00001c55: SHL 00001c56: SWAP1 00001c57: DUP2 00001c58: SHR 00001c59: PUSH4 0xffffffff 00001c5e: DUP2 00001c5f: GT 00001c60: PUSH1 0x05 00001c62: SHL 00001c63: SWAP1 00001c64: DUP2 00001c65: SHR 00001c66: PUSH2 0xffff 00001c69: DUP2 00001c6a: GT 00001c6b: PUSH1 0x04 00001c6d: SHL 00001c6e: SWAP1 00001c6f: DUP2 00001c70: SHR 00001c71: PUSH1 0xff 00001c73: DUP2 00001c74: GT 00001c75: PUSH1 0x03 00001c77: SWAP1 00001c78: DUP2 00001c79: SHL 00001c7a: SWAP2 00001c7b: DUP3 00001c7c: SHR 00001c7d: PUSH1 0x0f 00001c7f: DUP2 00001c80: GT 00001c81: PUSH1 0x02 00001c83: SHL 00001c84: SWAP1 00001c85: DUP2 00001c86: SHR 00001c87: SWAP2 00001c88: DUP3 00001c89: GT 00001c8a: PUSH1 0x01 00001c8c: SWAP1 00001c8d: DUP2 00001c8e: SHL 00001c8f: SWAP3 00001c90: DUP4 00001c91: SHR 00001c92: SWAP8 00001c93: SWAP1 00001c94: DUP9 00001c95: GT 00001c96: SWAP7 00001c97: OR 00001c98: SWAP1 00001c99: SWAP5 00001c9a: OR 00001c9b: SWAP1 00001c9c: SWAP3 00001c9d: OR 00001c9e: OR 00001c9f: SWAP1 00001ca0: SWAP2 00001ca1: OR 00001ca2: OR 00001ca3: OR 00001ca4: PUSH1 0x80 00001ca6: DUP2 00001ca7: LT 00001ca8: PUSH2 0x1cb9 00001cab: JUMPI 00001cac: PUSH1 0x7f 00001cae: DUP2 00001caf: SUB 00001cb0: DUP4 00001cb1: SWAP1 00001cb2: SHR 00001cb3: SWAP2 00001cb4: POP 00001cb5: PUSH2 0x1cc3 00001cb8: JUMP 00001cb9: JUMPDEST 00001cba: DUP1 00001cbb: PUSH1 0x7f 00001cbd: SUB 00001cbe: DUP4 00001cbf: SWAP1 00001cc0: SHL 00001cc1: SWAP2 00001cc2: POP 00001cc3: JUMPDEST 00001cc4: SWAP1 00001cc5: DUP1 00001cc6: MUL 00001cc7: PUSH1 0x7f 00001cc9: DUP2 00001cca: DUP2 00001ccb: SHR 00001ccc: PUSH1 0xff 00001cce: DUP4 00001ccf: DUP2 00001cd0: SHR 00001cd1: SWAP2 00001cd2: SWAP1 00001cd3: SWAP2 00001cd4: SHR 00001cd5: DUP1 00001cd6: MUL 00001cd7: DUP1 00001cd8: DUP4 00001cd9: SHR 00001cda: DUP2 00001cdb: DUP4 00001cdc: SHR 00001cdd: SHR 00001cde: DUP1 00001cdf: MUL 00001ce0: DUP1 00001ce1: DUP5 00001ce2: SHR 00001ce3: DUP2 00001ce4: DUP5 00001ce5: SHR 00001ce6: SHR 00001ce7: DUP1 00001ce8: MUL 00001ce9: DUP1 00001cea: DUP6 00001ceb: SHR 00001cec: DUP2 00001ced: DUP6 00001cee: SHR 00001cef: SHR 00001cf0: DUP1 00001cf1: MUL 00001cf2: DUP1 00001cf3: DUP7 00001cf4: SHR 00001cf5: DUP2 00001cf6: DUP7 00001cf7: SHR 00001cf8: SHR 00001cf9: DUP1 00001cfa: MUL 00001cfb: DUP1 00001cfc: DUP8 00001cfd: SHR 00001cfe: DUP2 00001cff: DUP8 00001d00: SHR 00001d01: SHR 00001d02: DUP1 00001d03: MUL 00001d04: DUP1 00001d05: DUP9 00001d06: SHR 00001d07: DUP2 00001d08: DUP9 00001d09: SHR 00001d0a: SHR 00001d0b: DUP1 00001d0c: MUL 00001d0d: DUP1 00001d0e: DUP10 00001d0f: SHR 00001d10: DUP2 00001d11: DUP10 00001d12: SHR 00001d13: SHR 00001d14: DUP1 00001d15: MUL 00001d16: DUP1 00001d17: DUP11 00001d18: SHR 00001d19: DUP2 00001d1a: DUP11 00001d1b: SHR 00001d1c: SHR 00001d1d: DUP1 00001d1e: MUL 00001d1f: DUP1 00001d20: DUP12 00001d21: SHR 00001d22: DUP2 00001d23: DUP12 00001d24: SHR 00001d25: SHR 00001d26: DUP1 00001d27: MUL 00001d28: DUP1 00001d29: DUP13 00001d2a: SHR 00001d2b: DUP2 00001d2c: DUP13 00001d2d: SHR 00001d2e: SHR 00001d2f: DUP1 00001d30: MUL 00001d31: DUP1 00001d32: DUP14 00001d33: SHR 00001d34: DUP2 00001d35: DUP14 00001d36: SHR 00001d37: SHR 00001d38: DUP1 00001d39: MUL 00001d3a: DUP1 00001d3b: DUP15 00001d3c: SHR 00001d3d: SWAP13 00001d3e: DUP2 00001d3f: SWAP1 00001d40: SHR 00001d41: SWAP13 00001d42: SWAP1 00001d43: SWAP13 00001d44: SHR 00001d45: DUP1 00001d46: MUL 00001d47: SWAP13 00001d48: DUP14 00001d49: SWAP1 00001d4a: SHR 00001d4b: SWAP15 00001d4c: SWAP14 00001d4d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 00001d6e: DUP16 00001d6f: ADD 00001d70: PUSH1 0x40 00001d72: SHL 00001d73: PUSH1 0xc0 00001d75: SWAP2 00001d76: SWAP1 00001d77: SWAP2 00001d78: SHR 00001d79: PUSH8 0x8000000000000000 00001d82: AND 00001d83: OR 00001d84: PUSH1 0xc1 00001d86: SWAP12 00001d87: SWAP1 00001d88: SWAP12 00001d89: SHR 00001d8a: PUSH8 0x4000000000000000 00001d93: AND 00001d94: SWAP11 00001d95: SWAP1 00001d96: SWAP11 00001d97: OR 00001d98: PUSH1 0xc2 00001d9a: SWAP10 00001d9b: SWAP1 00001d9c: SWAP10 00001d9d: SHR 00001d9e: PUSH8 0x2000000000000000 00001da7: AND 00001da8: SWAP9 00001da9: SWAP1 00001daa: SWAP9 00001dab: OR 00001dac: PUSH1 0xc3 00001dae: SWAP8 00001daf: SWAP1 00001db0: SWAP8 00001db1: SHR 00001db2: PUSH8 0x1000000000000000 00001dbb: AND 00001dbc: SWAP7 00001dbd: SWAP1 00001dbe: SWAP7 00001dbf: OR 00001dc0: PUSH1 0xc4 00001dc2: SWAP6 00001dc3: SWAP1 00001dc4: SWAP6 00001dc5: SHR 00001dc6: PUSH8 0x0800000000000000 00001dcf: AND 00001dd0: SWAP5 00001dd1: SWAP1 00001dd2: SWAP5 00001dd3: OR 00001dd4: PUSH1 0xc5 00001dd6: SWAP4 00001dd7: SWAP1 00001dd8: SWAP4 00001dd9: SHR 00001dda: PUSH8 0x0400000000000000 00001de3: AND 00001de4: SWAP3 00001de5: SWAP1 00001de6: SWAP3 00001de7: OR 00001de8: PUSH1 0xc6 00001dea: SWAP2 00001deb: SWAP1 00001dec: SWAP2 00001ded: SHR 00001dee: PUSH8 0x0200000000000000 00001df7: AND 00001df8: OR 00001df9: PUSH1 0xc7 00001dfb: SWAP2 00001dfc: SWAP1 00001dfd: SWAP2 00001dfe: SHR 00001dff: PUSH8 0x0100000000000000 00001e08: AND 00001e09: OR 00001e0a: PUSH1 0xc8 00001e0c: SWAP2 00001e0d: SWAP1 00001e0e: SWAP2 00001e0f: SHR 00001e10: PUSH7 0x80000000000000 00001e18: AND 00001e19: OR 00001e1a: PUSH1 0xc9 00001e1c: SWAP2 00001e1d: SWAP1 00001e1e: SWAP2 00001e1f: SHR 00001e20: PUSH7 0x40000000000000 00001e28: AND 00001e29: OR 00001e2a: PUSH1 0xca 00001e2c: SWAP2 00001e2d: SWAP1 00001e2e: SWAP2 00001e2f: SHR 00001e30: PUSH7 0x20000000000000 00001e38: AND 00001e39: OR 00001e3a: PUSH1 0xcb 00001e3c: SWAP2 00001e3d: SWAP1 00001e3e: SWAP2 00001e3f: SHR 00001e40: PUSH7 0x10000000000000 00001e48: AND 00001e49: OR 00001e4a: PUSH1 0xcc 00001e4c: SWAP2 00001e4d: SWAP1 00001e4e: SWAP2 00001e4f: SHR 00001e50: PUSH7 0x08000000000000 00001e58: AND 00001e59: OR 00001e5a: PUSH1 0xcd 00001e5c: SWAP2 00001e5d: SWAP1 00001e5e: SWAP2 00001e5f: SHR 00001e60: PUSH7 0x04000000000000 00001e68: AND 00001e69: OR 00001e6a: PUSH10 0x3627a301d71055774c85 00001e75: DUP2 00001e76: MUL 00001e77: PUSH32 0xfffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc556 00001e98: DUP2 00001e99: ADD 00001e9a: PUSH1 0x80 00001e9c: SWAP1 00001e9d: DUP2 00001e9e: SAR 00001e9f: SWAP1 00001ea0: PUSH16 0xdb2df09e81959a81455e260799a0632f 00001eb1: DUP4 00001eb2: ADD 00001eb3: SWAP1 00001eb4: SAR 00001eb5: PUSH1 0x02 00001eb7: DUP2 00001eb8: DUP2 00001eb9: SIGNEXTEND 00001eba: SWAP1 00001ebb: DUP4 00001ebc: SWAP1 00001ebd: SIGNEXTEND 00001ebe: EQ 00001ebf: PUSH2 0x1f02 00001ec2: JUMPI 00001ec3: DUP9 00001ec4: PUSH16 0xffffffffffffffffffffffffffffffff 00001ed5: AND 00001ed6: PUSH2 0x1ede 00001ed9: DUP3 00001eda: PUSH2 0x2196 00001edd: JUMP 00001ede: JUMPDEST 00001edf: PUSH16 0xffffffffffffffffffffffffffffffff 00001ef0: AND 00001ef1: GT 00001ef2: ISZERO 00001ef3: PUSH2 0x1efc 00001ef6: JUMPI 00001ef7: DUP2 00001ef8: PUSH2 0x1f04 00001efb: JUMP 00001efc: JUMPDEST 00001efd: DUP1 00001efe: PUSH2 0x1f04 00001f01: JUMP 00001f02: JUMPDEST 00001f03: DUP2 00001f04: JUMPDEST 00001f05: SWAP10 00001f06: SWAP9 00001f07: POP 00001f08: POP 00001f09: POP 00001f0a: POP 00001f0b: POP 00001f0c: POP 00001f0d: POP 00001f0e: POP 00001f0f: POP 00001f10: JUMP 00001f11: JUMPDEST 00001f12: DUP2 00001f13: MLOAD 00001f14: PUSH2 0x1f4c 00001f17: JUMPI 00001f18: DUP2 00001f19: PUSH1 0x80 00001f1b: ADD 00001f1c: MLOAD 00001f1d: PUSH16 0xffffffffffffffffffffffffffffffff 00001f2e: AND 00001f2f: DUP5 00001f30: PUSH1 0x00 00001f32: ADD 00001f33: MLOAD 00001f34: PUSH16 0xffffffffffffffffffffffffffffffff 00001f45: AND 00001f46: LT 00001f47: ISZERO 00001f48: PUSH2 0x1f7d 00001f4b: JUMP 00001f4c: JUMPDEST 00001f4d: DUP2 00001f4e: PUSH1 0x80 00001f50: ADD 00001f51: MLOAD 00001f52: PUSH16 0xffffffffffffffffffffffffffffffff 00001f63: AND 00001f64: DUP5 00001f65: PUSH1 0x00 00001f67: ADD 00001f68: MLOAD 00001f69: PUSH16 0xffffffffffffffffffffffffffffffff 00001f7a: AND 00001f7b: GT 00001f7c: ISZERO 00001f7d: JUMPDEST 00001f7e: PUSH2 0x1fe3 00001f81: JUMPI 00001f82: PUSH1 0x40 00001f84: MLOAD 00001f85: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001fa6: DUP2 00001fa7: MSTORE 00001fa8: PUSH1 0x20 00001faa: PUSH1 0x04 00001fac: DUP3 00001fad: ADD 00001fae: MSTORE 00001faf: PUSH1 0x02 00001fb1: PUSH1 0x24 00001fb3: DUP3 00001fb4: ADD 00001fb5: MSTORE 00001fb6: PUSH32 0x5344000000000000000000000000000000000000000000000000000000000000 00001fd7: PUSH1 0x44 00001fd9: DUP3 00001fda: ADD 00001fdb: MSTORE 00001fdc: PUSH1 0x64 00001fde: ADD 00001fdf: PUSH2 0x10ea 00001fe2: JUMP 00001fe3: JUMPDEST 00001fe4: PUSH1 0x01 00001fe6: JUMPDEST 00001fe7: DUP1 00001fe8: ISZERO 00001fe9: PUSH2 0x162f 00001fec: JUMPI 00001fed: PUSH1 0x00 00001fef: DUP1 00001ff0: PUSH2 0x2002 00001ff3: DUP5 00001ff4: PUSH1 0x20 00001ff6: ADD 00001ff7: MLOAD 00001ff8: DUP7 00001ff9: PUSH1 0x00 00001ffb: ADD 00001ffc: MLOAD 00001ffd: DUP9 00001ffe: PUSH2 0x2508 00002001: JUMP 00002002: JUMPDEST 00002003: DUP6 00002004: MLOAD 00002005: SWAP2 00002006: SWAP4 00002007: POP 00002008: SWAP2 00002009: POP 0000200a: PUSH2 0x2019 0000200d: SWAP1 0000200e: DUP9 0000200f: SWAP1 00002010: DUP11 00002011: SWAP1 00002012: DUP9 00002013: SWAP1 00002014: DUP7 00002015: PUSH2 0x254e 00002018: JUMP 00002019: JUMPDEST 0000201a: PUSH2 0x2023 0000201d: DUP8 0000201e: DUP7 0000201f: PUSH2 0x25ee 00002022: JUMP 00002023: JUMPDEST 00002024: SWAP3 00002025: POP 00002026: DUP3 00002027: ISZERO 00002028: PUSH2 0x2094 0000202b: JUMPI 0000202c: DUP1 0000202d: ISZERO 0000202e: PUSH2 0x207a 00002031: JUMPI 00002032: PUSH1 0x00 00002034: PUSH2 0x2046 00002037: DUP6 00002038: PUSH1 0x20 0000203a: ADD 0000203b: MLOAD 0000203c: DUP5 0000203d: DUP9 0000203e: PUSH1 0x00 00002040: ADD 00002041: MLOAD 00002042: PUSH2 0x2687 00002045: JUMP 00002046: JUMPDEST 00002047: SWAP3 00002048: DUP4 00002049: SWAP2 0000204a: POP 0000204b: PUSH1 0x02 0000204d: DUP3 0000204e: DUP2 0000204f: SIGNEXTEND 00002050: SWAP2 00002051: SWAP1 00002052: SIGNEXTEND 00002053: EQ 00002054: DUP1 00002055: PUSH2 0x2077 00002058: JUMPI 00002059: DUP6 0000205a: MLOAD 0000205b: PUSH2 0x206a 0000205e: SWAP1 0000205f: DUP11 00002060: SWAP1 00002061: DUP13 00002062: SWAP1 00002063: DUP11 00002064: SWAP1 00002065: DUP9 00002066: PUSH2 0x254e 00002069: JUMP 0000206a: JUMPDEST 0000206b: PUSH2 0x2074 0000206e: DUP10 0000206f: DUP9 00002070: PUSH2 0x25ee 00002073: JUMP 00002074: JUMPDEST 00002075: SWAP5 00002076: POP 00002077: JUMPDEST 00002078: POP 00002079: POP 0000207a: JUMPDEST 0000207b: DUP3 0000207c: ISZERO 0000207d: PUSH2 0x2094 00002080: JUMPI 00002081: PUSH2 0x2091 00002084: DUP9 00002085: DUP4 00002086: DUP10 00002087: DUP9 00002088: DUP9 00002089: PUSH1 0x20 0000208b: ADD 0000208c: MLOAD 0000208d: PUSH2 0x2768 00002090: JUMP 00002091: JUMPDEST 00002092: SWAP6 00002093: POP 00002094: JUMPDEST 00002095: POP 00002096: POP 00002097: PUSH2 0x1fe6 0000209a: JUMP 0000209b: JUMPDEST 0000209c: PUSH1 0x00 0000209e: PUSH2 0x20a5 000020a1: PUSH2 0x2801 000020a4: JUMP 000020a5: JUMPDEST 000020a6: SWAP1 000020a7: POP 000020a8: DUP3 000020a9: PUSH1 0x0f 000020ab: SIGNEXTEND 000020ac: PUSH1 0x00 000020ae: EQ 000020af: PUSH2 0x20c6 000020b2: JUMPI 000020b3: PUSH2 0x20c1 000020b6: DUP6 000020b7: DUP6 000020b8: DUP6 000020b9: PUSH1 0x00 000020bb: DUP6 000020bc: DUP8 000020bd: PUSH2 0x28d6 000020c0: JUMP 000020c1: JUMPDEST 000020c2: PUSH2 0x03f0 000020c5: JUMP 000020c6: JUMPDEST 000020c7: PUSH2 0x03f0 000020ca: DUP5 000020cb: DUP3 000020cc: PUSH2 0x2917 000020cf: JUMP 000020d0: JUMPDEST 000020d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020e6: DUP3 000020e7: AND 000020e8: PUSH2 0x20f0 000020eb: JUMPI 000020ec: PUSH1 0x00 000020ee: DUP1 000020ef: REVERT 000020f0: JUMPDEST 000020f1: PUSH1 0x00 000020f3: PUSH2 0x162f 000020f6: DUP7 000020f7: DUP7 000020f8: DUP7 000020f9: DUP7 000020fa: DUP6 000020fb: DUP8 000020fc: PUSH2 0x28d6 000020ff: JUMP 00002100: JUMPDEST 00002101: PUSH1 0x00 00002103: DUP3 00002104: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002119: AND 0000211a: DUP5 0000211b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002130: AND 00002131: LT 00002132: PUSH2 0x213a 00002135: JUMPI 00002136: PUSH1 0x00 00002138: DUP1 00002139: REVERT 0000213a: JUMPDEST 0000213b: PUSH1 0x40 0000213d: DUP1 0000213e: MLOAD 0000213f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002154: DUP1 00002155: DUP8 00002156: AND 00002157: PUSH1 0x20 00002159: DUP4 0000215a: ADD 0000215b: MSTORE 0000215c: DUP6 0000215d: AND 0000215e: SWAP2 0000215f: DUP2 00002160: ADD 00002161: SWAP2 00002162: SWAP1 00002163: SWAP2 00002164: MSTORE 00002165: PUSH1 0x60 00002167: DUP2 00002168: ADD 00002169: DUP4 0000216a: SWAP1 0000216b: MSTORE 0000216c: PUSH1 0x80 0000216e: ADD 0000216f: PUSH2 0x129f 00002172: JUMP 00002173: JUMPDEST 00002174: PUSH1 0x00 00002176: PUSH1 0x01 00002178: DUP3 00002179: DUP2 0000217a: AND 0000217b: DUP2 0000217c: EQ 0000217d: DUP1 0000217e: PUSH2 0x2188 00002181: JUMPI 00002182: PUSH1 0x00 00002184: PUSH2 0x1025 00002187: JUMP 00002188: JUMPDEST 00002189: PUSH1 0x60 0000218b: DUP6 0000218c: SWAP1 0000218d: SHR 0000218e: SWAP6 0000218f: SWAP5 00002190: POP 00002191: POP 00002192: POP 00002193: POP 00002194: POP 00002195: JUMP 00002196: JUMPDEST 00002197: PUSH1 0x00 00002199: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892 000021ba: PUSH1 0x02 000021bc: DUP4 000021bd: SWAP1 000021be: SIGNEXTEND 000021bf: SLT 000021c0: DUP1 000021c1: ISZERO 000021c2: SWAP1 000021c3: PUSH2 0x21d3 000021c6: JUMPI 000021c7: POP 000021c8: PUSH3 0x0cb14a 000021cc: PUSH1 0x02 000021ce: DUP4 000021cf: SWAP1 000021d0: SIGNEXTEND 000021d1: SGT 000021d2: ISZERO 000021d3: JUMPDEST 000021d4: PUSH2 0x21dc 000021d7: JUMPI 000021d8: PUSH1 0x00 000021da: DUP1 000021db: REVERT 000021dc: JUMPDEST 000021dd: PUSH1 0x00 000021df: DUP1 000021e0: DUP4 000021e1: PUSH1 0x02 000021e3: SIGNEXTEND 000021e4: SLT 000021e5: PUSH2 0x21f1 000021e8: JUMPI 000021e9: DUP3 000021ea: PUSH1 0x02 000021ec: SIGNEXTEND 000021ed: PUSH2 0x21f9 000021f0: JUMP 000021f1: JUMPDEST 000021f2: DUP3 000021f3: PUSH1 0x02 000021f5: SIGNEXTEND 000021f6: PUSH1 0x00 000021f8: SUB 000021f9: JUMPDEST 000021fa: SWAP1 000021fb: POP 000021fc: PUSH1 0x00 000021fe: DUP2 000021ff: PUSH1 0x01 00002201: AND 00002202: PUSH1 0x00 00002204: SUB 00002205: PUSH2 0x221f 00002208: JUMPI 00002209: PUSH17 0x0100000000000000000000000000000000 0000221b: PUSH2 0x2231 0000221e: JUMP 0000221f: JUMPDEST 00002220: PUSH16 0xfffcb933bd6fad37aa2d162d1a594001 00002231: JUMPDEST 00002232: PUSH17 0xffffffffffffffffffffffffffffffffff 00002244: AND 00002245: SWAP1 00002246: POP 00002247: PUSH1 0x02 00002249: DUP3 0000224a: AND 0000224b: ISZERO 0000224c: PUSH2 0x2265 0000224f: JUMPI 00002250: PUSH16 0xfff97272373d413259a46990580e213a 00002261: MUL 00002262: PUSH1 0x80 00002264: SHR 00002265: JUMPDEST 00002266: PUSH1 0x04 00002268: DUP3 00002269: AND 0000226a: ISZERO 0000226b: PUSH2 0x2284 0000226e: JUMPI 0000226f: PUSH16 0xfff2e50f5f656932ef12357cf3c7fdcc 00002280: MUL 00002281: PUSH1 0x80 00002283: SHR 00002284: JUMPDEST 00002285: PUSH1 0x08 00002287: DUP3 00002288: AND 00002289: ISZERO 0000228a: PUSH2 0x22a3 0000228d: JUMPI 0000228e: PUSH16 0xffe5caca7e10e4e61c3624eaa0941cd0 0000229f: MUL 000022a0: PUSH1 0x80 000022a2: SHR 000022a3: JUMPDEST 000022a4: PUSH1 0x10 000022a6: DUP3 000022a7: AND 000022a8: ISZERO 000022a9: PUSH2 0x22c2 000022ac: JUMPI 000022ad: PUSH16 0xffcb9843d60f6159c9db58835c926644 000022be: MUL 000022bf: PUSH1 0x80 000022c1: SHR 000022c2: JUMPDEST 000022c3: PUSH1 0x20 000022c5: DUP3 000022c6: AND 000022c7: ISZERO 000022c8: PUSH2 0x22e1 000022cb: JUMPI 000022cc: PUSH16 0xff973b41fa98c081472e6896dfb254c0 000022dd: MUL 000022de: PUSH1 0x80 000022e0: SHR 000022e1: JUMPDEST 000022e2: PUSH1 0x40 000022e4: DUP3 000022e5: AND 000022e6: ISZERO 000022e7: PUSH2 0x2300 000022ea: JUMPI 000022eb: PUSH16 0xff2ea16466c96a3843ec78b326b52861 000022fc: MUL 000022fd: PUSH1 0x80 000022ff: SHR 00002300: JUMPDEST 00002301: PUSH1 0x80 00002303: DUP3 00002304: AND 00002305: ISZERO 00002306: PUSH2 0x231f 00002309: JUMPI 0000230a: PUSH16 0xfe5dee046a99a2a811c461f1969c3053 0000231b: MUL 0000231c: PUSH1 0x80 0000231e: SHR 0000231f: JUMPDEST 00002320: PUSH2 0x0100 00002323: DUP3 00002324: AND 00002325: ISZERO 00002326: PUSH2 0x233f 00002329: JUMPI 0000232a: PUSH16 0xfcbe86c7900a88aedcffc83b479aa3a4 0000233b: MUL 0000233c: PUSH1 0x80 0000233e: SHR 0000233f: JUMPDEST 00002340: PUSH2 0x0200 00002343: DUP3 00002344: AND 00002345: ISZERO 00002346: PUSH2 0x235f 00002349: JUMPI 0000234a: PUSH16 0xf987a7253ac413176f2b074cf7815e54 0000235b: MUL 0000235c: PUSH1 0x80 0000235e: SHR 0000235f: JUMPDEST 00002360: PUSH2 0x0400 00002363: DUP3 00002364: AND 00002365: ISZERO 00002366: PUSH2 0x237f 00002369: JUMPI 0000236a: PUSH16 0xf3392b0822b70005940c7a398e4b70f3 0000237b: MUL 0000237c: PUSH1 0x80 0000237e: SHR 0000237f: JUMPDEST 00002380: PUSH2 0x0800 00002383: DUP3 00002384: AND 00002385: ISZERO 00002386: PUSH2 0x239f 00002389: JUMPI 0000238a: PUSH16 0xe7159475a2c29b7443b29c7fa6e889d9 0000239b: MUL 0000239c: PUSH1 0x80 0000239e: SHR 0000239f: JUMPDEST 000023a0: PUSH2 0x1000 000023a3: DUP3 000023a4: AND 000023a5: ISZERO 000023a6: PUSH2 0x23bf 000023a9: JUMPI 000023aa: PUSH16 0xd097f3bdfd2022b8845ad8f792aa5825 000023bb: MUL 000023bc: PUSH1 0x80 000023be: SHR 000023bf: JUMPDEST 000023c0: PUSH2 0x2000 000023c3: DUP3 000023c4: AND 000023c5: ISZERO 000023c6: PUSH2 0x23df 000023c9: JUMPI 000023ca: PUSH16 0xa9f746462d870fdf8a65dc1f90e061e5 000023db: MUL 000023dc: PUSH1 0x80 000023de: SHR 000023df: JUMPDEST 000023e0: PUSH2 0x4000 000023e3: DUP3 000023e4: AND 000023e5: ISZERO 000023e6: PUSH2 0x23ff 000023e9: JUMPI 000023ea: PUSH16 0x70d869a156d2a1b890bb3df62baf32f7 000023fb: MUL 000023fc: PUSH1 0x80 000023fe: SHR 000023ff: JUMPDEST 00002400: PUSH2 0x8000 00002403: DUP3 00002404: AND 00002405: ISZERO 00002406: PUSH2 0x241f 00002409: JUMPI 0000240a: PUSH16 0x31be135f97d08fd981231505542fcfa6 0000241b: MUL 0000241c: PUSH1 0x80 0000241e: SHR 0000241f: JUMPDEST 00002420: PUSH3 0x010000 00002424: DUP3 00002425: AND 00002426: ISZERO 00002427: PUSH2 0x2440 0000242a: JUMPI 0000242b: PUSH16 0x09aa508b5b7a84e1c677de54f3e99bc9 0000243c: MUL 0000243d: PUSH1 0x80 0000243f: SHR 00002440: JUMPDEST 00002441: PUSH3 0x020000 00002445: DUP3 00002446: AND 00002447: ISZERO 00002448: PUSH2 0x2460 0000244b: JUMPI 0000244c: PUSH15 0x5d6af8dedb81196699c329225ee604 0000245c: MUL 0000245d: PUSH1 0x80 0000245f: SHR 00002460: JUMPDEST 00002461: PUSH3 0x040000 00002465: DUP3 00002466: AND 00002467: ISZERO 00002468: PUSH2 0x247f 0000246b: JUMPI 0000246c: PUSH14 0x2216e584f5fa1ea926041bedfe98 0000247b: MUL 0000247c: PUSH1 0x80 0000247e: SHR 0000247f: JUMPDEST 00002480: PUSH3 0x080000 00002484: DUP3 00002485: AND 00002486: ISZERO 00002487: PUSH2 0x249c 0000248a: JUMPI 0000248b: PUSH12 0x048a170391f7dc42444e8fa2 00002498: MUL 00002499: PUSH1 0x80 0000249b: SHR 0000249c: JUMPDEST 0000249d: PUSH1 0x00 0000249f: DUP5 000024a0: PUSH1 0x02 000024a2: SIGNEXTEND 000024a3: SGT 000024a4: ISZERO 000024a5: PUSH2 0x24db 000024a8: JUMPI 000024a9: DUP1 000024aa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000024cb: DUP2 000024cc: PUSH2 0x24d7 000024cf: JUMPI 000024d0: PUSH2 0x24d7 000024d3: PUSH2 0x5a30 000024d6: JUMP 000024d7: JUMPDEST 000024d8: DIV 000024d9: SWAP1 000024da: POP 000024db: JUMPDEST 000024dc: PUSH9 0x010000000000000000 000024e6: DUP2 000024e7: MOD 000024e8: ISZERO 000024e9: PUSH2 0x24f3 000024ec: JUMPI 000024ed: PUSH1 0x01 000024ef: PUSH2 0x24f6 000024f2: JUMP 000024f3: JUMPDEST 000024f4: PUSH1 0x00 000024f6: JUMPDEST 000024f7: PUSH1 0xff 000024f9: AND 000024fa: PUSH1 0x40 000024fc: DUP3 000024fd: SWAP1 000024fe: SHR 000024ff: ADD 00002500: SWAP3 00002501: POP 00002502: POP 00002503: POP 00002504: SWAP2 00002505: SWAP1 00002506: POP 00002507: JUMP 00002508: JUMPDEST 00002509: PUSH1 0x00 0000250b: DUP1 0000250c: PUSH1 0x00 0000250e: PUSH2 0x2517 00002511: DUP7 00002512: DUP6 00002513: PUSH2 0x294f 00002516: JUMP 00002517: JUMPDEST 00002518: SWAP1 00002519: POP 0000251a: PUSH1 0x00 0000251c: PUSH2 0x2529 0000251f: PUSH1 0x02 00002521: DUP7 00002522: SWAP1 00002523: SIGNEXTEND 00002524: DUP8 00002525: PUSH2 0x2975 00002528: JUMP 00002529: JUMPDEST 0000252a: SWAP1 0000252b: POP 0000252c: PUSH1 0x02 0000252e: DUP6 0000252f: SWAP1 00002530: SIGNEXTEND 00002531: PUSH1 0x08 00002533: SAR 00002534: PUSH2 0x253f 00002537: DUP8 00002538: DUP4 00002539: DUP4 0000253a: DUP7 0000253b: PUSH2 0x29b1 0000253e: JUMP 0000253f: JUMPDEST 00002540: SWAP1 00002541: SWAP10 00002542: SWAP1 00002543: SWAP9 00002544: POP 00002545: SWAP7 00002546: POP 00002547: POP 00002548: POP 00002549: POP 0000254a: POP 0000254b: POP 0000254c: POP 0000254d: JUMP 0000254e: JUMPDEST 0000254f: PUSH1 0x00 00002551: PUSH2 0x2563 00002554: DUP3 00002555: DUP6 00002556: PUSH1 0x80 00002558: ADD 00002559: MLOAD 0000255a: DUP7 0000255b: PUSH1 0x00 0000255d: ADD 0000255e: MLOAD 0000255f: PUSH2 0x2a00 00002562: JUMP 00002563: JUMPDEST 00002564: SWAP1 00002565: POP 00002566: PUSH1 0x00 00002568: DUP1 00002569: PUSH1 0x00 0000256b: PUSH2 0x257f 0000256e: DUP10 0000256f: DUP9 00002570: PUSH1 0x60 00002572: ADD 00002573: MLOAD 00002574: DUP9 00002575: DUP11 00002576: PUSH1 0x20 00002578: ADD 00002579: MLOAD 0000257a: DUP9 0000257b: PUSH2 0x2a7b 0000257e: JUMP 0000257f: JUMPDEST 00002580: PUSH1 0x20 00002582: DUP11 00002583: ADD 00002584: MLOAD 00002585: SWAP3 00002586: SWAP6 00002587: POP 00002588: SWAP1 00002589: SWAP4 0000258a: POP 0000258b: SWAP2 0000258c: POP 0000258d: PUSH2 0x259a 00002590: SWAP1 00002591: DUP10 00002592: SWAP1 00002593: DUP6 00002594: DUP6 00002595: DUP6 00002596: PUSH2 0x2ac7 00002599: JUMP 0000259a: JUMPDEST 0000259b: PUSH2 0x25b3 0000259e: DUP10 0000259f: DUP9 000025a0: PUSH1 0x20 000025a2: ADD 000025a3: MLOAD 000025a4: DUP10 000025a5: PUSH1 0x00 000025a7: ADD 000025a8: MLOAD 000025a9: DUP11 000025aa: PUSH1 0x60 000025ac: ADD 000025ad: MLOAD 000025ae: DUP9 000025af: PUSH2 0x2b32 000025b2: JUMP 000025b3: JUMPDEST 000025b4: PUSH16 0xffffffffffffffffffffffffffffffff 000025c5: AND 000025c6: PUSH1 0x60 000025c8: DUP11 000025c9: ADD 000025ca: MSTORE 000025cb: PUSH1 0x20 000025cd: DUP10 000025ce: ADD 000025cf: MLOAD 000025d0: SWAP2 000025d1: SWAP5 000025d2: POP 000025d3: SWAP3 000025d4: POP 000025d5: PUSH2 0x25e3 000025d8: SWAP1 000025d9: DUP10 000025da: SWAP1 000025db: DUP6 000025dc: DUP6 000025dd: PUSH1 0x00 000025df: PUSH2 0x2ac7 000025e2: JUMP 000025e3: JUMPDEST 000025e4: POP 000025e5: POP 000025e6: POP 000025e7: POP 000025e8: POP 000025e9: POP 000025ea: POP 000025eb: POP 000025ec: POP 000025ed: JUMP 000025ee: JUMPDEST 000025ef: PUSH1 0x00 000025f1: DUP1 000025f2: DUP3 000025f3: PUSH1 0x00 000025f5: ADD 000025f6: MLOAD 000025f7: PUSH2 0x262e 000025fa: JUMPI 000025fb: DUP3 000025fc: PUSH1 0x80 000025fe: ADD 000025ff: MLOAD 00002600: PUSH16 0xffffffffffffffffffffffffffffffff 00002611: AND 00002612: DUP5 00002613: PUSH1 0x00 00002615: ADD 00002616: MLOAD 00002617: PUSH16 0xffffffffffffffffffffffffffffffff 00002628: AND 00002629: GT 0000262a: PUSH2 0x265e 0000262d: JUMP 0000262e: JUMPDEST 0000262f: DUP3 00002630: PUSH1 0x80 00002632: ADD 00002633: MLOAD 00002634: PUSH16 0xffffffffffffffffffffffffffffffff 00002645: AND 00002646: DUP5 00002647: PUSH1 0x00 00002649: ADD 0000264a: MLOAD 0000264b: PUSH16 0xffffffffffffffffffffffffffffffff 0000265c: AND 0000265d: LT 0000265e: JUMPDEST 0000265f: SWAP1 00002660: POP 00002661: DUP1 00002662: DUP1 00002663: ISZERO 00002664: PUSH2 0x19cb 00002667: JUMPI 00002668: POP 00002669: POP 0000266a: POP 0000266b: PUSH1 0x60 0000266d: ADD 0000266e: MLOAD 0000266f: PUSH16 0xffffffffffffffffffffffffffffffff 00002680: AND 00002681: ISZERO 00002682: ISZERO 00002683: SWAP2 00002684: SWAP1 00002685: POP 00002686: JUMP 00002687: JUMPDEST 00002688: PUSH1 0x00 0000268a: DUP2 0000268b: DUP1 0000268c: ISZERO 0000268d: PUSH2 0x269c 00002690: JUMPI 00002691: POP 00002692: PUSH1 0x02 00002694: DUP4 00002695: SWAP1 00002696: SIGNEXTEND 00002697: PUSH3 0x7fffff 0000269b: EQ 0000269c: JUMPDEST 0000269d: ISZERO 0000269e: PUSH2 0x26ab 000026a1: JUMPI 000026a2: POP 000026a3: PUSH3 0x7fffff 000026a7: PUSH2 0x05f5 000026aa: JUMP 000026ab: JUMPDEST 000026ac: DUP2 000026ad: ISZERO 000026ae: DUP1 000026af: ISZERO 000026b0: PUSH2 0x26dc 000026b3: JUMPI 000026b4: POP 000026b5: PUSH1 0x02 000026b7: DUP4 000026b8: SWAP1 000026b9: SIGNEXTEND 000026ba: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 000026db: EQ 000026dc: JUMPDEST 000026dd: ISZERO 000026de: PUSH2 0x2708 000026e1: JUMPI 000026e2: POP 000026e3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 00002704: PUSH2 0x05f5 00002707: JUMP 00002708: JUMPDEST 00002709: PUSH1 0x00 0000270b: DUP1 0000270c: PUSH2 0x2715 0000270f: DUP6 00002710: DUP6 00002711: PUSH2 0x2bb4 00002714: JUMP 00002715: JUMPDEST 00002716: SWAP2 00002717: POP 00002718: SWAP2 00002719: POP 0000271a: PUSH1 0x00 0000271c: DUP1 0000271d: PUSH2 0x2728 00002720: DUP9 00002721: DUP6 00002722: DUP6 00002723: DUP10 00002724: PUSH2 0x2bf6 00002727: JUMP 00002728: JUMPDEST 00002729: SWAP2 0000272a: POP 0000272b: SWAP2 0000272c: POP 0000272d: DUP1 0000272e: PUSH2 0x273c 00002731: JUMPI 00002732: POP 00002733: SWAP3 00002734: POP 00002735: PUSH2 0x05f5 00002738: SWAP2 00002739: POP 0000273a: POP 0000273b: JUMP 0000273c: JUMPDEST 0000273d: PUSH2 0x2748 00002740: DUP9 00002741: DUP6 00002742: DUP6 00002743: DUP10 00002744: PUSH2 0x2c65 00002747: JUMP 00002748: JUMPDEST 00002749: SWAP1 0000274a: SWAP3 0000274b: POP 0000274c: SWAP1 0000274d: POP 0000274e: DUP1 0000274f: PUSH2 0x275d 00002752: JUMPI 00002753: POP 00002754: SWAP3 00002755: POP 00002756: PUSH2 0x05f5 00002759: SWAP2 0000275a: POP 0000275b: POP 0000275c: JUMP 0000275d: JUMPDEST 0000275e: PUSH2 0x0fa8 00002761: DUP9 00002762: DUP6 00002763: DUP9 00002764: PUSH2 0x2ce2 00002767: JUMP 00002768: JUMPDEST 00002769: PUSH1 0x00 0000276b: PUSH2 0x2773 0000276e: DUP6 0000276f: PUSH2 0x2d02 00002772: JUMP 00002773: JUMPDEST 00002774: PUSH2 0x277e 00002777: JUMPI 00002778: POP 00002779: DUP4 0000277a: PUSH2 0x1025 0000277d: JUMP 0000277e: JUMPDEST 0000277f: PUSH2 0x278e 00002782: DUP5 00002783: DUP7 00002784: DUP6 00002785: PUSH1 0x00 00002787: ADD 00002788: MLOAD 00002789: DUP6 0000278a: PUSH2 0x2d41 0000278d: JUMP 0000278e: JUMPDEST 0000278f: PUSH1 0x00 00002791: DUP1 00002792: PUSH1 0x00 00002794: PUSH2 0x27b6 00002797: DUP7 00002798: PUSH1 0x20 0000279a: ADD 0000279b: MLOAD 0000279c: DUP8 0000279d: PUSH1 0x00 0000279f: ADD 000027a0: MLOAD 000027a1: DUP9 000027a2: PUSH1 0x60 000027a4: ADD 000027a5: MLOAD 000027a6: DUP11 000027a7: PUSH2 0x2ded 000027aa: SWAP1 000027ab: SWAP4 000027ac: SWAP3 000027ad: SWAP2 000027ae: SWAP1 000027af: PUSH4 0xffffffff 000027b4: AND 000027b5: JUMP 000027b6: JUMPDEST 000027b7: SWAP2 000027b8: SWAP5 000027b9: POP 000027ba: SWAP3 000027bb: POP 000027bc: SWAP1 000027bd: POP 000027be: PUSH2 0x27c8 000027c1: DUP10 000027c2: DUP5 000027c3: DUP5 000027c4: PUSH2 0x2ec8 000027c7: JUMP 000027c8: JUMPDEST 000027c9: PUSH1 0x60 000027cb: DUP7 000027cc: ADD 000027cd: DUP1 000027ce: MLOAD 000027cf: DUP3 000027d0: SWAP1 000027d1: SUB 000027d2: PUSH16 0xffffffffffffffffffffffffffffffff 000027e3: AND 000027e4: SWAP1 000027e5: MSTORE 000027e6: DUP6 000027e7: MLOAD 000027e8: PUSH2 0x27f4 000027eb: JUMPI 000027ec: PUSH1 0x01 000027ee: DUP9 000027ef: SUB 000027f0: PUSH2 0x1f04 000027f3: JUMP 000027f4: JUMPDEST 000027f5: POP 000027f6: SWAP6 000027f7: SWAP8 000027f8: SWAP7 000027f9: POP 000027fa: POP 000027fb: POP 000027fc: POP 000027fd: POP 000027fe: POP 000027ff: POP 00002800: JUMP 00002801: JUMPDEST 00002802: PUSH1 0x00 00002804: DUP1 00002805: SLOAD 00002806: PUSH22 0x01000000000000000000000000000000000000000000 0000281d: SWAP1 0000281e: DIV 0000281f: PUSH1 0xff 00002821: AND 00002822: ISZERO 00002823: PUSH2 0x2888 00002826: JUMPI 00002827: PUSH1 0x40 00002829: MLOAD 0000282a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000284b: DUP2 0000284c: MSTORE 0000284d: PUSH1 0x20 0000284f: PUSH1 0x04 00002851: DUP3 00002852: ADD 00002853: MSTORE 00002854: PUSH1 0x02 00002856: PUSH1 0x24 00002858: DUP3 00002859: ADD 0000285a: MSTORE 0000285b: PUSH32 0x4453000000000000000000000000000000000000000000000000000000000000 0000287c: PUSH1 0x44 0000287e: DUP3 0000287f: ADD 00002880: MSTORE 00002881: PUSH1 0x64 00002883: ADD 00002884: PUSH2 0x10ea 00002887: JUMP 00002888: JUMPDEST 00002889: PUSH2 0x2891 0000288c: CALLVALUE 0000288d: PUSH2 0x2eff 00002890: JUMP 00002891: JUMPDEST 00002892: PUSH1 0x00 00002894: DUP1 00002895: SLOAD 00002896: PUSH32 0xffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff 000028b7: AND 000028b8: PUSH22 0x01000000000000000000000000000000000000000000 000028cf: OR 000028d0: SWAP1 000028d1: SSTORE 000028d2: SWAP2 000028d3: SWAP1 000028d4: POP 000028d5: JUMP 000028d6: JUMPDEST 000028d7: PUSH1 0x00 000028d9: PUSH1 0x0f 000028db: DUP6 000028dc: SWAP1 000028dd: SIGNEXTEND 000028de: SGT 000028df: ISZERO 000028e0: PUSH2 0x28f5 000028e3: JUMPI 000028e4: PUSH2 0x28f0 000028e7: DUP7 000028e8: DUP6 000028e9: DUP6 000028ea: DUP6 000028eb: DUP6 000028ec: PUSH2 0x2f1e 000028ef: JUMP 000028f0: JUMPDEST 000028f1: PUSH2 0x162f 000028f4: JUMP 000028f5: JUMPDEST 000028f6: PUSH1 0x00 000028f8: PUSH1 0x0f 000028fa: DUP6 000028fb: SWAP1 000028fc: SIGNEXTEND 000028fd: SLT 000028fe: ISZERO 000028ff: PUSH2 0x162f 00002902: JUMPI 00002903: PUSH2 0x162f 00002906: DUP6 00002907: PUSH2 0x290f 0000290a: DUP7 0000290b: PUSH2 0x5bd5 0000290e: JUMP 0000290f: JUMPDEST 00002910: DUP6 00002911: DUP6 00002912: DUP6 00002913: PUSH2 0x2f51 00002916: JUMP 00002917: JUMPDEST 00002918: PUSH16 0xffffffffffffffffffffffffffffffff 00002929: DUP2 0000292a: AND 0000292b: ISZERO 0000292c: PUSH2 0x294b 0000292f: JUMPI 00002930: PUSH2 0x294b 00002933: DUP3 00002934: DUP3 00002935: PUSH16 0xffffffffffffffffffffffffffffffff 00002946: AND 00002947: PUSH2 0x2f79 0000294a: JUMP 0000294b: JUMPDEST 0000294c: POP 0000294d: POP 0000294e: JUMP 0000294f: JUMPDEST 00002950: PUSH1 0x00 00002952: DUP1 00002953: PUSH2 0x295c 00002956: DUP5 00002957: DUP5 00002958: PUSH2 0x3043 0000295b: JUMP 0000295c: JUMPDEST 0000295d: PUSH1 0x00 0000295f: SWAP1 00002960: DUP2 00002961: MSTORE 00002962: PUSH3 0x010007 00002966: PUSH1 0x20 00002968: MSTORE 00002969: PUSH1 0x40 0000296b: SWAP1 0000296c: KECCAK256 0000296d: SLOAD 0000296e: SWAP5 0000296f: SWAP4 00002970: POP 00002971: POP 00002972: POP 00002973: POP 00002974: JUMP 00002975: JUMPDEST 00002976: PUSH1 0x00 00002978: DUP1 00002979: PUSH2 0x2981 0000297c: DUP5 0000297d: PUSH2 0x308e 00002980: JUMP 00002981: JUMPDEST 00002982: SWAP1 00002983: POP 00002984: PUSH1 0x00 00002986: DUP4 00002987: PUSH2 0x2991 0000298a: JUMPI 0000298b: PUSH1 0x00 0000298d: PUSH2 0x2994 00002990: JUMP 00002991: JUMPDEST 00002992: PUSH1 0x01 00002994: JUMPDEST 00002995: PUSH1 0xff 00002997: AND 00002998: SWAP1 00002999: POP 0000299a: DUP1 0000299b: PUSH2 0x29a4 0000299e: DUP4 0000299f: DUP7 000029a0: PUSH2 0x309c 000029a3: JUMP 000029a4: JUMPDEST 000029a5: PUSH1 0xff 000029a7: AND 000029a8: ADD 000029a9: SWAP6 000029aa: SWAP5 000029ab: POP 000029ac: POP 000029ad: POP 000029ae: POP 000029af: POP 000029b0: JUMP 000029b1: JUMPDEST 000029b2: PUSH1 0x00 000029b4: DUP1 000029b5: DUP1 000029b6: DUP1 000029b7: PUSH2 0x29c1 000029ba: DUP6 000029bb: DUP9 000029bc: DUP11 000029bd: PUSH2 0x30b3 000029c0: JUMP 000029c1: JUMPDEST 000029c2: SWAP2 000029c3: POP 000029c4: SWAP2 000029c5: POP 000029c6: PUSH2 0x29d0 000029c9: DUP9 000029ca: DUP3 000029cb: DUP8 000029cc: PUSH2 0x30f2 000029cf: JUMP 000029d0: JUMPDEST 000029d1: SWAP3 000029d2: POP 000029d3: DUP3 000029d4: PUSH2 0x29e9 000029d7: JUMPI 000029d8: PUSH1 0x08 000029da: DUP7 000029db: SWAP1 000029dc: SHL 000029dd: PUSH1 0x02 000029df: SIGNEXTEND 000029e0: PUSH1 0xff 000029e2: DUP4 000029e3: AND 000029e4: ADD 000029e5: PUSH2 0x29f3 000029e8: JUMP 000029e9: JUMPDEST 000029ea: PUSH2 0x29f3 000029ed: DUP9 000029ee: DUP8 000029ef: PUSH2 0x3125 000029f2: JUMP 000029f3: JUMPDEST 000029f4: SWAP4 000029f5: POP 000029f6: POP 000029f7: POP 000029f8: SWAP5 000029f9: POP 000029fa: SWAP5 000029fb: SWAP3 000029fc: POP 000029fd: POP 000029fe: POP 000029ff: JUMP 00002a00: JUMPDEST 00002a01: PUSH1 0x00 00002a03: DUP1 00002a04: PUSH2 0x2a0e 00002a07: DUP6 00002a08: DUP6 00002a09: DUP6 00002a0a: PUSH2 0x318c 00002a0d: JUMP 00002a0e: JUMPDEST 00002a0f: SWAP1 00002a10: POP 00002a11: PUSH3 0x010002 00002a15: PUSH16 0xffffffffffffffffffffffffffffffff 00002a26: DUP3 00002a27: AND 00002a28: LT 00002a29: ISZERO 00002a2a: PUSH2 0x2a39 00002a2d: JUMPI 00002a2e: PUSH3 0x010002 00002a32: SWAP2 00002a33: POP 00002a34: POP 00002a35: PUSH2 0x05f5 00002a38: JUMP 00002a39: JUMPDEST 00002a3a: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472 00002a4b: PUSH16 0xffffffffffffffffffffffffffffffff 00002a5c: DUP3 00002a5d: AND 00002a5e: LT 00002a5f: PUSH2 0x19cb 00002a62: JUMPI 00002a63: POP 00002a64: PUSH16 0x0ffff5433e2b3d8211706e6102aa9471 00002a75: SWAP1 00002a76: POP 00002a77: PUSH2 0x05f5 00002a7a: JUMP 00002a7b: JUMPDEST 00002a7c: PUSH1 0x00 00002a7e: DUP1 00002a7f: PUSH1 0x00 00002a81: DUP1 00002a82: PUSH1 0x00 00002a84: PUSH2 0x2a99 00002a87: DUP11 00002a88: DUP11 00002a89: DUP11 00002a8a: PUSH1 0x20 00002a8c: ADD 00002a8d: MLOAD 00002a8e: DUP12 00002a8f: PUSH1 0x40 00002a91: ADD 00002a92: MLOAD 00002a93: DUP12 00002a94: DUP12 00002a95: PUSH2 0x326f 00002a98: JUMP 00002a99: JUMPDEST 00002a9a: SWAP1 00002a9b: SWAP3 00002a9c: POP 00002a9d: SWAP1 00002a9e: POP 00002a9f: PUSH2 0x2aa9 00002aa2: DUP11 00002aa3: DUP4 00002aa4: DUP10 00002aa5: PUSH2 0x32bf 00002aa8: JUMP 00002aa9: JUMPDEST 00002aaa: PUSH2 0x2ab4 00002aad: DUP3 00002aae: DUP3 00002aaf: DUP10 00002ab0: PUSH2 0x3332 00002ab3: JUMP 00002ab4: JUMPDEST 00002ab5: SWAP5 00002ab6: POP 00002ab7: SWAP5 00002ab8: POP 00002ab9: SWAP5 00002aba: POP 00002abb: POP 00002abc: POP 00002abd: SWAP6 00002abe: POP 00002abf: SWAP6 00002ac0: POP 00002ac1: SWAP6 00002ac2: SWAP3 00002ac3: POP 00002ac4: POP 00002ac5: POP 00002ac6: JUMP 00002ac7: JUMPDEST 00002ac8: PUSH2 0x2ad2 00002acb: DUP6 00002acc: DUP5 00002acd: DUP5 00002ace: PUSH2 0x2ec8 00002ad1: JUMP 00002ad2: JUMPDEST 00002ad3: DUP4 00002ad4: ISZERO 00002ad5: PUSH2 0x2b04 00002ad8: JUMPI 00002ad9: DUP1 00002ada: DUP6 00002adb: PUSH1 0x60 00002add: ADD 00002ade: DUP2 00002adf: DUP2 00002ae0: MLOAD 00002ae1: PUSH2 0x2aea 00002ae4: SWAP2 00002ae5: SWAP1 00002ae6: PUSH2 0x5ab7 00002ae9: JUMP 00002aea: JUMPDEST 00002aeb: PUSH16 0xffffffffffffffffffffffffffffffff 00002afc: AND 00002afd: SWAP1 00002afe: MSTORE 00002aff: POP 00002b00: PUSH2 0x03f0 00002b03: JUMP 00002b04: JUMPDEST 00002b05: DUP1 00002b06: DUP6 00002b07: PUSH1 0x40 00002b09: ADD 00002b0a: DUP2 00002b0b: DUP2 00002b0c: MLOAD 00002b0d: PUSH2 0x2b16 00002b10: SWAP2 00002b11: SWAP1 00002b12: PUSH2 0x5ab7 00002b15: JUMP 00002b16: JUMPDEST 00002b17: PUSH16 0xffffffffffffffffffffffffffffffff 00002b28: AND 00002b29: SWAP1 00002b2a: MSTORE 00002b2b: POP 00002b2c: POP 00002b2d: POP 00002b2e: POP 00002b2f: POP 00002b30: POP 00002b31: JUMP 00002b32: JUMPDEST 00002b33: PUSH1 0x00 00002b35: DUP1 00002b36: DUP1 00002b37: DUP1 00002b38: PUSH2 0x2b43 00002b3b: DUP10 00002b3c: DUP8 00002b3d: DUP11 00002b3e: DUP9 00002b3f: PUSH2 0x338a 00002b42: JUMP 00002b43: JUMPDEST 00002b44: SWAP1 00002b45: POP 00002b46: PUSH16 0xffffffffffffffffffffffffffffffff 00002b57: DUP1 00002b58: DUP8 00002b59: AND 00002b5a: SWAP1 00002b5b: DUP3 00002b5c: AND 00002b5d: LT 00002b5e: DUP1 00002b5f: ISZERO 00002b60: PUSH2 0x2b87 00002b63: JUMPI 00002b64: PUSH2 0x2b70 00002b67: DUP11 00002b68: DUP8 00002b69: DUP12 00002b6a: DUP12 00002b6b: DUP12 00002b6c: PUSH2 0x33d5 00002b6f: JUMP 00002b70: JUMPDEST 00002b71: SWAP2 00002b72: SWAP7 00002b73: POP 00002b74: SWAP5 00002b75: POP 00002b76: SWAP3 00002b77: POP 00002b78: PUSH2 0x2b82 00002b7b: DUP11 00002b7c: DUP5 00002b7d: DUP9 00002b7e: PUSH2 0x3423 00002b81: JUMP 00002b82: JUMPDEST 00002b83: PUSH2 0x2ba7 00002b86: JUMP 00002b87: JUMPDEST 00002b88: PUSH2 0x2b94 00002b8b: DUP11 00002b8c: DUP4 00002b8d: DUP12 00002b8e: DUP12 00002b8f: DUP12 00002b90: PUSH2 0x34b2 00002b93: JUMP 00002b94: JUMPDEST 00002b95: SWAP2 00002b96: SWAP7 00002b97: POP 00002b98: SWAP5 00002b99: POP 00002b9a: SWAP3 00002b9b: POP 00002b9c: PUSH2 0x2ba7 00002b9f: DUP11 00002ba0: DUP5 00002ba1: DUP11 00002ba2: DUP10 00002ba3: PUSH2 0x34ec 00002ba6: JUMP 00002ba7: JUMPDEST 00002ba8: POP 00002ba9: POP 00002baa: SWAP6 00002bab: POP 00002bac: SWAP6 00002bad: POP 00002bae: SWAP6 00002baf: SWAP3 00002bb0: POP 00002bb1: POP 00002bb2: POP 00002bb3: JUMP 00002bb4: JUMPDEST 00002bb5: PUSH1 0x00 00002bb7: DUP1 00002bb8: PUSH1 0x00 00002bba: DUP4 00002bbb: PUSH2 0x2bce 00002bbe: JUMPI 00002bbf: PUSH2 0x2bc9 00002bc2: PUSH1 0x01 00002bc4: DUP7 00002bc5: PUSH2 0x5c6e 00002bc8: JUMP 00002bc9: JUMPDEST 00002bca: PUSH2 0x2bd0 00002bcd: JUMP 00002bce: JUMPDEST 00002bcf: DUP5 00002bd0: JUMPDEST 00002bd1: SWAP1 00002bd2: POP 00002bd3: PUSH2 0x2bde 00002bd6: DUP2 00002bd7: PUSH1 0x02 00002bd9: SIGNEXTEND 00002bda: PUSH2 0x35b1 00002bdd: JUMP 00002bde: JUMPDEST 00002bdf: SWAP3 00002be0: POP 00002be1: PUSH2 0x2bec 00002be4: DUP2 00002be5: PUSH1 0x02 00002be7: SIGNEXTEND 00002be8: PUSH2 0x35c8 00002beb: JUMP 00002bec: JUMPDEST 00002bed: SWAP2 00002bee: POP 00002bef: POP 00002bf0: SWAP3 00002bf1: POP 00002bf2: SWAP3 00002bf3: SWAP1 00002bf4: POP 00002bf5: JUMP 00002bf6: JUMPDEST 00002bf7: PUSH1 0x00 00002bf9: DUP1 00002bfa: PUSH1 0x00 00002bfc: PUSH3 0x010007 00002c00: PUSH1 0x00 00002c02: PUSH2 0x2c0c 00002c05: DUP10 00002c06: DUP10 00002c07: DUP10 00002c08: PUSH2 0x35e4 00002c0b: JUMP 00002c0c: JUMPDEST 00002c0d: DUP2 00002c0e: MSTORE 00002c0f: PUSH1 0x20 00002c11: DUP2 00002c12: ADD 00002c13: SWAP2 00002c14: SWAP1 00002c15: SWAP2 00002c16: MSTORE 00002c17: PUSH1 0x40 00002c19: ADD 00002c1a: PUSH1 0x00 00002c1c: SWAP1 00002c1d: DUP2 00002c1e: KECCAK256 00002c1f: SLOAD 00002c20: SWAP2 00002c21: POP 00002c22: DUP1 00002c23: PUSH2 0x2c2d 00002c26: DUP4 00002c27: DUP3 00002c28: DUP9 00002c29: PUSH2 0x30b3 00002c2c: JUMP 00002c2d: JUMPDEST 00002c2e: SWAP2 00002c2f: POP 00002c30: SWAP2 00002c31: POP 00002c32: DUP1 00002c33: ISZERO 00002c34: PUSH2 0x2c47 00002c37: JUMPI 00002c38: PUSH1 0x00 00002c3a: PUSH1 0x01 00002c3c: SWAP5 00002c3d: POP 00002c3e: SWAP5 00002c3f: POP 00002c40: POP 00002c41: POP 00002c42: POP 00002c43: PUSH2 0x2c5c 00002c46: JUMP 00002c47: JUMPDEST 00002c48: PUSH2 0x2c52 00002c4b: DUP9 00002c4c: DUP9 00002c4d: DUP5 00002c4e: PUSH2 0x3642 00002c51: JUMP 00002c52: JUMPDEST 00002c53: PUSH1 0x00 00002c55: SWAP5 00002c56: POP 00002c57: SWAP5 00002c58: POP 00002c59: POP 00002c5a: POP 00002c5b: POP 00002c5c: JUMPDEST 00002c5d: SWAP5 00002c5e: POP 00002c5f: SWAP5 00002c60: SWAP3 00002c61: POP 00002c62: POP 00002c63: POP 00002c64: JUMP 00002c65: JUMPDEST 00002c66: PUSH1 0x00 00002c68: DUP1 00002c69: PUSH1 0x00 00002c6b: PUSH3 0x010006 00002c6f: PUSH1 0x00 00002c71: PUSH2 0x2c7a 00002c74: DUP10 00002c75: DUP10 00002c76: PUSH2 0x366b 00002c79: JUMP 00002c7a: JUMPDEST 00002c7b: DUP2 00002c7c: MSTORE 00002c7d: PUSH1 0x20 00002c7f: ADD 00002c80: SWAP1 00002c81: DUP2 00002c82: MSTORE 00002c83: PUSH1 0x20 00002c85: ADD 00002c86: PUSH1 0x00 00002c88: KECCAK256 00002c89: SLOAD 00002c8a: SWAP1 00002c8b: POP 00002c8c: PUSH1 0x00 00002c8e: PUSH2 0x2c97 00002c91: DUP7 00002c92: DUP7 00002c93: PUSH2 0x309c 00002c96: JUMP 00002c97: JUMPDEST 00002c98: SWAP1 00002c99: POP 00002c9a: PUSH1 0x00 00002c9c: DUP1 00002c9d: PUSH2 0x2caa 00002ca0: DUP5 00002ca1: PUSH1 0xff 00002ca3: DUP6 00002ca4: AND 00002ca5: DUP10 00002ca6: PUSH2 0x30b3 00002ca9: JUMP 00002caa: JUMPDEST 00002cab: SWAP2 00002cac: POP 00002cad: SWAP2 00002cae: POP 00002caf: DUP1 00002cb0: ISZERO 00002cb1: PUSH2 0x2cc5 00002cb4: JUMPI 00002cb5: PUSH1 0x00 00002cb7: PUSH1 0x01 00002cb9: SWAP6 00002cba: POP 00002cbb: SWAP6 00002cbc: POP 00002cbd: POP 00002cbe: POP 00002cbf: POP 00002cc0: POP 00002cc1: PUSH2 0x2c5c 00002cc4: JUMP 00002cc5: JUMPDEST 00002cc6: PUSH2 0x2cd1 00002cc9: DUP11 00002cca: DUP11 00002ccb: DUP5 00002ccc: DUP11 00002ccd: PUSH2 0x2bf6 00002cd0: JUMP 00002cd1: JUMPDEST 00002cd2: SWAP6 00002cd3: POP 00002cd4: SWAP6 00002cd5: POP 00002cd6: POP 00002cd7: POP 00002cd8: POP 00002cd9: POP 00002cda: SWAP5 00002cdb: POP 00002cdc: SWAP5 00002cdd: SWAP3 00002cde: POP 00002cdf: POP 00002ce0: POP 00002ce1: JUMP 00002ce2: JUMPDEST 00002ce3: PUSH1 0x00 00002ce5: DUP2 00002ce6: PUSH2 0x2cf8 00002ce9: JUMPI 00002cea: PUSH2 0x2cf3 00002ced: DUP5 00002cee: DUP5 00002cef: PUSH2 0x367f 00002cf2: JUMP 00002cf3: JUMPDEST 00002cf4: PUSH2 0x19cb 00002cf7: JUMP 00002cf8: JUMPDEST 00002cf9: PUSH2 0x19cb 00002cfc: DUP5 00002cfd: DUP5 00002cfe: PUSH2 0x370b 00002d01: JUMP 00002d02: JUMPDEST 00002d03: PUSH1 0x00 00002d05: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 00002d26: PUSH1 0x02 00002d28: DUP4 00002d29: SWAP1 00002d2a: SIGNEXTEND 00002d2b: SGT 00002d2c: DUP1 00002d2d: ISZERO 00002d2e: PUSH2 0x0e37 00002d31: JUMPI 00002d32: POP 00002d33: POP 00002d34: PUSH3 0x7fffff 00002d38: PUSH1 0x02 00002d3a: SWAP2 00002d3b: SWAP1 00002d3c: SWAP2 00002d3d: SIGNEXTEND 00002d3e: SLT 00002d3f: SWAP1 00002d40: JUMP 00002d41: JUMPDEST 00002d42: PUSH1 0x00 00002d44: DUP1 00002d45: PUSH2 0x2d54 00002d48: DUP4 00002d49: DUP7 00002d4a: DUP7 00002d4b: DUP10 00002d4c: PUSH1 0x80 00002d4e: ADD 00002d4f: MLOAD 00002d50: PUSH2 0x3755 00002d53: JUMP 00002d54: JUMPDEST 00002d55: PUSH1 0x40 00002d57: DUP9 00002d58: ADD 00002d59: MLOAD 00002d5a: SWAP2 00002d5b: SWAP4 00002d5c: POP 00002d5d: SWAP2 00002d5e: POP 00002d5f: PUSH2 0x2d7a 00002d62: SWAP1 00002d63: PUSH16 0xffffffffffffffffffffffffffffffff 00002d74: AND 00002d75: DUP4 00002d76: PUSH2 0x3894 00002d79: JUMP 00002d7a: JUMPDEST 00002d7b: PUSH16 0xffffffffffffffffffffffffffffffff 00002d8c: AND 00002d8d: PUSH1 0x40 00002d8f: DUP8 00002d90: ADD 00002d91: MSTORE 00002d92: DUP1 00002d93: ISZERO 00002d94: PUSH2 0x162f 00002d97: JUMPI 00002d98: PUSH1 0x00 00002d9a: PUSH2 0x2da9 00002d9d: DUP5 00002d9e: DUP8 00002d9f: DUP8 00002da0: DUP11 00002da1: PUSH1 0x80 00002da3: ADD 00002da4: MLOAD 00002da5: PUSH2 0x3901 00002da8: JUMP 00002da9: JUMPDEST 00002daa: PUSH1 0x40 00002dac: DUP9 00002dad: ADD 00002dae: MLOAD 00002daf: SWAP1 00002db0: SWAP2 00002db1: POP 00002db2: PUSH2 0x2dcd 00002db5: SWAP1 00002db6: PUSH16 0xffffffffffffffffffffffffffffffff 00002dc7: AND 00002dc8: DUP3 00002dc9: PUSH2 0x3894 00002dcc: JUMP 00002dcd: JUMPDEST 00002dce: PUSH16 0xffffffffffffffffffffffffffffffff 00002ddf: AND 00002de0: PUSH1 0x40 00002de2: DUP9 00002de3: ADD 00002de4: MSTORE 00002de5: POP 00002de6: POP 00002de7: POP 00002de8: POP 00002de9: POP 00002dea: POP 00002deb: POP 00002dec: JUMP 00002ded: JUMPDEST 00002dee: PUSH1 0x00 00002df0: DUP1 00002df1: PUSH1 0x00 00002df3: DUP1 00002df4: PUSH2 0x2e07 00002df7: PUSH2 0x2dff 00002dfa: DUP10 00002dfb: PUSH2 0x3a68 00002dfe: JUMP 00002dff: JUMPDEST 00002e00: DUP10 00002e01: MLOAD 00002e02: DUP10 00002e03: PUSH2 0x3a8d 00002e06: JUMP 00002e07: JUMPDEST 00002e08: SWAP1 00002e09: POP 00002e0a: DUP1 00002e0b: PUSH16 0xffffffffffffffffffffffffffffffff 00002e1c: AND 00002e1d: DUP6 00002e1e: PUSH16 0xffffffffffffffffffffffffffffffff 00002e2f: AND 00002e30: GT 00002e31: PUSH2 0x2e96 00002e34: JUMPI 00002e35: PUSH1 0x40 00002e37: MLOAD 00002e38: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002e59: DUP2 00002e5a: MSTORE 00002e5b: PUSH1 0x20 00002e5d: PUSH1 0x04 00002e5f: DUP3 00002e60: ADD 00002e61: MSTORE 00002e62: PUSH1 0x02 00002e64: PUSH1 0x24 00002e66: DUP3 00002e67: ADD 00002e68: MSTORE 00002e69: PUSH32 0x4244000000000000000000000000000000000000000000000000000000000000 00002e8a: PUSH1 0x44 00002e8c: DUP3 00002e8d: ADD 00002e8e: MSTORE 00002e8f: PUSH1 0x64 00002e91: ADD 00002e92: PUSH2 0x10ea 00002e95: JUMP 00002e96: JUMPDEST 00002e97: DUP6 00002e98: ISZERO 00002e99: PUSH2 0x2eb3 00002e9c: JUMPI 00002e9d: PUSH2 0x2ea7 00002ea0: DUP9 00002ea1: DUP9 00002ea2: DUP4 00002ea3: PUSH2 0x3b01 00002ea6: JUMP 00002ea7: JUMPDEST 00002ea8: SWAP4 00002ea9: POP 00002eaa: SWAP4 00002eab: POP 00002eac: SWAP4 00002ead: POP 00002eae: POP 00002eaf: PUSH2 0x2ebe 00002eb2: JUMP 00002eb3: JUMPDEST 00002eb4: PUSH2 0x2ea7 00002eb7: DUP9 00002eb8: DUP9 00002eb9: DUP4 00002eba: PUSH2 0x3b9d 00002ebd: JUMP 00002ebe: JUMPDEST 00002ebf: SWAP5 00002ec0: POP 00002ec1: SWAP5 00002ec2: POP 00002ec3: SWAP5 00002ec4: SWAP2 00002ec5: POP 00002ec6: POP 00002ec7: JUMP 00002ec8: JUMPDEST 00002ec9: DUP2 00002eca: DUP4 00002ecb: PUSH1 0x00 00002ecd: ADD 00002ece: DUP2 00002ecf: DUP2 00002ed0: MLOAD 00002ed1: PUSH2 0x2eda 00002ed4: SWAP2 00002ed5: SWAP1 00002ed6: PUSH2 0x5caf 00002ed9: JUMP 00002eda: JUMPDEST 00002edb: PUSH1 0x0f 00002edd: SIGNEXTEND 00002ede: SWAP1 00002edf: MSTORE 00002ee0: POP 00002ee1: PUSH1 0x20 00002ee3: DUP4 00002ee4: ADD 00002ee5: DUP1 00002ee6: MLOAD 00002ee7: DUP3 00002ee8: SWAP2 00002ee9: SWAP1 00002eea: PUSH2 0x2ef4 00002eed: SWAP1 00002eee: DUP4 00002eef: SWAP1 00002ef0: PUSH2 0x5caf 00002ef3: JUMP 00002ef4: JUMPDEST 00002ef5: PUSH1 0x0f 00002ef7: SIGNEXTEND 00002ef8: SWAP1 00002ef9: MSTORE 00002efa: POP 00002efb: POP 00002efc: POP 00002efd: POP 00002efe: JUMP 00002eff: JUMPDEST 00002f00: DUP1 00002f01: PUSH16 0xffffffffffffffffffffffffffffffff 00002f12: DUP2 00002f13: AND 00002f14: DUP2 00002f15: EQ 00002f16: PUSH2 0x1bb9 00002f19: JUMPI 00002f1a: PUSH1 0x00 00002f1c: DUP1 00002f1d: REVERT 00002f1e: JUMPDEST 00002f1f: DUP1 00002f20: ISZERO 00002f21: PUSH2 0x2f45 00002f24: JUMPI 00002f25: PUSH1 0x00 00002f27: PUSH2 0x2f31 00002f2a: DUP7 00002f2b: DUP7 00002f2c: DUP7 00002f2d: PUSH2 0x3c47 00002f30: JUMP 00002f31: JUMPDEST 00002f32: SWAP1 00002f33: POP 00002f34: PUSH2 0x2f3f 00002f37: DUP7 00002f38: DUP3 00002f39: DUP7 00002f3a: DUP7 00002f3b: PUSH2 0x3d26 00002f3e: JUMP 00002f3f: JUMPDEST 00002f40: POP 00002f41: PUSH2 0x03f0 00002f44: JUMP 00002f45: JUMPDEST 00002f46: PUSH2 0x03f0 00002f49: DUP6 00002f4a: DUP6 00002f4b: DUP6 00002f4c: DUP6 00002f4d: PUSH2 0x3d74 00002f50: JUMP 00002f51: JUMPDEST 00002f52: DUP1 00002f53: ISZERO 00002f54: PUSH2 0x2f6d 00002f57: JUMPI 00002f58: PUSH2 0x2f62 00002f5b: DUP6 00002f5c: DUP6 00002f5d: DUP6 00002f5e: PUSH2 0x3da5 00002f61: JUMP 00002f62: JUMPDEST 00002f63: PUSH2 0x20c1 00002f66: DUP6 00002f67: DUP5 00002f68: DUP5 00002f69: PUSH2 0x3e24 00002f6c: JUMP 00002f6d: JUMPDEST 00002f6e: PUSH2 0x03f0 00002f71: DUP6 00002f72: DUP6 00002f73: DUP6 00002f74: DUP6 00002f75: PUSH2 0x3e49 00002f78: JUMP 00002f79: JUMPDEST 00002f7a: PUSH1 0x00 00002f7c: DUP3 00002f7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f92: AND 00002f93: DUP3 00002f94: PUSH1 0x40 00002f96: MLOAD 00002f97: PUSH1 0x00 00002f99: PUSH1 0x40 00002f9b: MLOAD 00002f9c: DUP1 00002f9d: DUP4 00002f9e: SUB 00002f9f: DUP2 00002fa0: DUP6 00002fa1: DUP8 00002fa2: GAS 00002fa3: CALL 00002fa4: SWAP3 00002fa5: POP 00002fa6: POP 00002fa7: POP 00002fa8: RETURNDATASIZE 00002fa9: DUP1 00002faa: PUSH1 0x00 00002fac: DUP2 00002fad: EQ 00002fae: PUSH2 0x2fd3 00002fb1: JUMPI 00002fb2: PUSH1 0x40 00002fb4: MLOAD 00002fb5: SWAP2 00002fb6: POP 00002fb7: PUSH1 0x1f 00002fb9: NOT 00002fba: PUSH1 0x3f 00002fbc: RETURNDATASIZE 00002fbd: ADD 00002fbe: AND 00002fbf: DUP3 00002fc0: ADD 00002fc1: PUSH1 0x40 00002fc3: MSTORE 00002fc4: RETURNDATASIZE 00002fc5: DUP3 00002fc6: MSTORE 00002fc7: RETURNDATASIZE 00002fc8: PUSH1 0x00 00002fca: PUSH1 0x20 00002fcc: DUP5 00002fcd: ADD 00002fce: RETURNDATACOPY 00002fcf: PUSH2 0x2fd8 00002fd2: JUMP 00002fd3: JUMPDEST 00002fd4: PUSH1 0x60 00002fd6: SWAP2 00002fd7: POP 00002fd8: JUMPDEST 00002fd9: POP 00002fda: POP 00002fdb: SWAP1 00002fdc: POP 00002fdd: DUP1 00002fde: PUSH2 0x125f 00002fe1: JUMPI 00002fe2: PUSH1 0x40 00002fe4: MLOAD 00002fe5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003006: DUP2 00003007: MSTORE 00003008: PUSH1 0x20 0000300a: PUSH1 0x04 0000300c: DUP3 0000300d: ADD 0000300e: MSTORE 0000300f: PUSH1 0x02 00003011: PUSH1 0x24 00003013: DUP3 00003014: ADD 00003015: MSTORE 00003016: PUSH32 0x5446000000000000000000000000000000000000000000000000000000000000 00003037: PUSH1 0x44 00003039: DUP3 0000303a: ADD 0000303b: MSTORE 0000303c: PUSH1 0x64 0000303e: ADD 0000303f: PUSH2 0x10ea 00003042: JUMP 00003043: JUMPDEST 00003044: PUSH1 0x00 00003046: DUP1 00003047: PUSH1 0x02 00003049: DUP4 0000304a: SWAP1 0000304b: SIGNEXTEND 0000304c: PUSH1 0x08 0000304e: SAR 0000304f: SWAP1 00003050: POP 00003051: DUP4 00003052: DUP2 00003053: PUSH1 0x40 00003055: MLOAD 00003056: PUSH1 0x20 00003058: ADD 00003059: PUSH2 0x306f 0000305c: SWAP3 0000305d: SWAP2 0000305e: SWAP1 0000305f: SWAP2 00003060: DUP3 00003061: MSTORE 00003062: PUSH1 0xf0 00003064: SHL 00003065: PUSH1 0x20 00003067: DUP3 00003068: ADD 00003069: MSTORE 0000306a: PUSH1 0x22 0000306c: ADD 0000306d: SWAP1 0000306e: JUMP 0000306f: JUMPDEST 00003070: PUSH1 0x40 00003072: MLOAD 00003073: PUSH1 0x20 00003075: DUP2 00003076: DUP4 00003077: SUB 00003078: SUB 00003079: DUP2 0000307a: MSTORE 0000307b: SWAP1 0000307c: PUSH1 0x40 0000307e: MSTORE 0000307f: DUP1 00003080: MLOAD 00003081: SWAP1 00003082: PUSH1 0x20 00003084: ADD 00003085: KECCAK256 00003086: SWAP2 00003087: POP 00003088: POP 00003089: SWAP3 0000308a: SWAP2 0000308b: POP 0000308c: POP 0000308d: JUMP 0000308e: JUMPDEST 0000308f: PUSH1 0x00 00003091: PUSH2 0x0e37 00003094: PUSH2 0x0100 00003097: DUP4 00003098: PUSH2 0x5cfd 0000309b: JUMP 0000309c: JUMPDEST 0000309d: PUSH1 0x00 0000309f: DUP2 000030a0: PUSH2 0x30ac 000030a3: JUMPI 000030a4: DUP3 000030a5: PUSH1 0xff 000030a7: SUB 000030a8: PUSH2 0x05f5 000030ab: JUMP 000030ac: JUMPDEST 000030ad: POP 000030ae: SWAP1 000030af: SWAP2 000030b0: SWAP1 000030b1: POP 000030b2: JUMP 000030b3: JUMPDEST 000030b4: PUSH1 0x00 000030b6: DUP1 000030b7: PUSH2 0x30c1 000030ba: DUP6 000030bb: DUP6 000030bc: DUP6 000030bd: PUSH2 0x3e8c 000030c0: JUMP 000030c1: JUMPDEST 000030c2: SWAP5 000030c3: POP 000030c4: POP 000030c5: DUP4 000030c6: ISZERO 000030c7: DUP1 000030c8: PUSH2 0x30ea 000030cb: JUMPI 000030cc: DUP3 000030cd: PUSH2 0x30de 000030d0: JUMPI 000030d1: PUSH2 0x30d9 000030d4: DUP6 000030d5: PUSH2 0x3eb0 000030d8: JUMP 000030d9: JUMPDEST 000030da: PUSH2 0x30e7 000030dd: JUMP 000030de: JUMPDEST 000030df: PUSH2 0x30e7 000030e2: DUP6 000030e3: PUSH2 0x3f5d 000030e6: JUMP 000030e7: JUMPDEST 000030e8: SWAP2 000030e9: POP 000030ea: JUMPDEST 000030eb: SWAP4 000030ec: POP 000030ed: SWAP4 000030ee: SWAP2 000030ef: POP 000030f0: POP 000030f1: JUMP 000030f2: JUMPDEST 000030f3: PUSH1 0x00 000030f5: DUP4 000030f6: ISZERO 000030f7: PUSH2 0x3101 000030fa: JUMPI 000030fb: POP 000030fc: DUP2 000030fd: PUSH2 0x05f5 00003100: JUMP 00003101: JUMPDEST 00003102: PUSH1 0x00 00003104: PUSH2 0x310d 00003107: DUP4 00003108: DUP3 00003109: PUSH2 0x4140 0000310c: JUMP 0000310d: JUMPDEST 0000310e: SWAP1 0000310f: POP 00003110: DUP1 00003111: PUSH2 0x311a 00003114: JUMPI 00003115: DUP4 00003116: PUSH2 0x1025 00003119: JUMP 0000311a: JUMPDEST 0000311b: PUSH1 0x00 0000311d: SWAP6 0000311e: SWAP5 0000311f: POP 00003120: POP 00003121: POP 00003122: POP 00003123: POP 00003124: JUMP 00003125: JUMPDEST 00003126: PUSH1 0x00 00003128: DUP3 00003129: ISZERO 0000312a: PUSH2 0x317f 0000312d: JUMPI 0000312e: PUSH2 0x3136 00003131: DUP4 00003132: PUSH2 0x4174 00003135: JUMP 00003136: JUMPDEST 00003137: PUSH1 0x01 00003139: SIGNEXTEND 0000313a: DUP3 0000313b: PUSH1 0x01 0000313d: SIGNEXTEND 0000313e: EQ 0000313f: PUSH2 0x316f 00003142: JUMPI 00003143: PUSH2 0x316a 00003146: PUSH2 0x3150 00003149: DUP4 0000314a: PUSH1 0x01 0000314c: PUSH2 0x5d1f 0000314f: JUMP 00003150: JUMPDEST 00003151: PUSH2 0x315a 00003154: DUP6 00003155: ISZERO 00003156: PUSH2 0x41aa 00003159: JUMP 0000315a: JUMPDEST 0000315b: PUSH1 0xff 0000315d: AND 0000315e: PUSH1 0x08 00003160: SWAP2 00003161: SWAP1 00003162: SWAP2 00003163: SHL 00003164: PUSH1 0x02 00003166: SIGNEXTEND 00003167: ADD 00003168: SWAP1 00003169: JUMP 0000316a: JUMPDEST 0000316b: PUSH2 0x3178 0000316e: JUMP 0000316f: JUMPDEST 00003170: PUSH2 0x3178 00003173: DUP4 00003174: PUSH2 0x41c0 00003177: JUMP 00003178: JUMPDEST 00003179: SWAP1 0000317a: POP 0000317b: PUSH2 0x0e37 0000317e: JUMP 0000317f: JUMPDEST 00003180: PUSH1 0x08 00003182: DUP3 00003183: SWAP1 00003184: SHL 00003185: PUSH1 0x02 00003187: SIGNEXTEND 00003188: PUSH2 0x3178 0000318b: JUMP 0000318c: JUMPDEST 0000318d: PUSH1 0x00 0000318f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892 000031b0: PUSH1 0x02 000031b2: DUP6 000031b3: SWAP1 000031b4: SIGNEXTEND 000031b5: SGT 000031b6: ISZERO 000031b7: DUP1 000031b8: PUSH2 0x31c8 000031bb: JUMPI 000031bc: POP 000031bd: PUSH3 0x0cb14a 000031c1: PUSH1 0x02 000031c3: DUP6 000031c4: SWAP1 000031c5: SIGNEXTEND 000031c6: SLT 000031c7: ISZERO 000031c8: JUMPDEST 000031c9: ISZERO 000031ca: PUSH2 0x31d4 000031cd: JUMPI 000031ce: POP 000031cf: DUP2 000031d0: PUSH2 0x05f5 000031d3: JUMP 000031d4: JUMPDEST 000031d5: DUP2 000031d6: ISZERO 000031d7: PUSH2 0x3227 000031da: JUMPI 000031db: PUSH1 0x01 000031dd: PUSH1 0x00 000031df: DUP2 000031e0: PUSH2 0x31e8 000031e3: DUP8 000031e4: PUSH2 0x2196 000031e7: JUMP 000031e8: JUMPDEST 000031e9: SUB 000031ea: SWAP1 000031eb: POP 000031ec: DUP5 000031ed: PUSH16 0xffffffffffffffffffffffffffffffff 000031fe: AND 000031ff: DUP2 00003200: PUSH16 0xffffffffffffffffffffffffffffffff 00003211: AND 00003212: LT 00003213: PUSH2 0x321c 00003216: JUMPI 00003217: DUP5 00003218: PUSH2 0x321e 0000321b: JUMP 0000321c: JUMPDEST 0000321d: DUP1 0000321e: JUMPDEST 0000321f: SWAP3 00003220: POP 00003221: POP 00003222: POP 00003223: PUSH2 0x05f5 00003226: JUMP 00003227: JUMPDEST 00003228: PUSH1 0x00 0000322a: PUSH2 0x3232 0000322d: DUP6 0000322e: PUSH2 0x2196 00003231: JUMP 00003232: JUMPDEST 00003233: SWAP1 00003234: POP 00003235: DUP4 00003236: PUSH16 0xffffffffffffffffffffffffffffffff 00003247: AND 00003248: DUP2 00003249: PUSH16 0xffffffffffffffffffffffffffffffff 0000325a: AND 0000325b: GT 0000325c: PUSH2 0x3265 0000325f: JUMPI 00003260: DUP4 00003261: PUSH2 0x3267 00003264: JUMP 00003265: JUMPDEST 00003266: DUP1 00003267: JUMPDEST 00003268: SWAP2 00003269: POP 0000326a: POP 0000326b: PUSH2 0x05f5 0000326e: JUMP 0000326f: JUMPDEST 00003270: PUSH1 0x00 00003272: DUP1 00003273: DUP1 00003274: PUSH2 0x327f 00003277: DUP10 00003278: DUP10 00003279: DUP8 0000327a: DUP8 0000327b: PUSH2 0x41f7 0000327e: JUMP 0000327f: JUMPDEST 00003280: SWAP1 00003281: POP 00003282: PUSH2 0x0100 00003285: PUSH3 0x0f4240 00003289: PUSH16 0xffffffffffffffffffffffffffffffff 0000329a: DUP4 0000329b: AND 0000329c: PUSH2 0xffff 0000329f: DUP11 000032a0: AND 000032a1: MUL 000032a2: DIV 000032a3: PUSH1 0xff 000032a5: DUP9 000032a6: AND 000032a7: DUP2 000032a8: MUL 000032a9: SWAP2 000032aa: SWAP1 000032ab: SWAP2 000032ac: DIV 000032ad: SWAP1 000032ae: DUP2 000032af: SWAP1 000032b0: SUB 000032b1: SWAP11 000032b2: SWAP1 000032b3: SWAP10 000032b4: POP 000032b5: SWAP8 000032b6: POP 000032b7: POP 000032b8: POP 000032b9: POP 000032ba: POP 000032bb: POP 000032bc: POP 000032bd: POP 000032be: JUMP 000032bf: JUMPDEST 000032c0: PUSH1 0x00 000032c2: PUSH2 0x32ca 000032c5: DUP5 000032c6: PUSH2 0x3a68 000032c9: JUMP 000032ca: JUMPDEST 000032cb: SWAP1 000032cc: POP 000032cd: DUP1 000032ce: PUSH16 0xffffffffffffffffffffffffffffffff 000032df: AND 000032e0: PUSH1 0x00 000032e2: SUB 000032e3: PUSH2 0x32ec 000032e6: JUMPI 000032e7: POP 000032e8: POP 000032e9: POP 000032ea: POP 000032eb: JUMP 000032ec: JUMPDEST 000032ed: DUP4 000032ee: MLOAD 000032ef: DUP3 000032f0: ISZERO 000032f1: SWAP1 000032f2: PUSH1 0x00 000032f4: SWAP1 000032f5: PUSH2 0x3301 000032f8: SWAP1 000032f9: DUP5 000032fa: SWAP1 000032fb: DUP8 000032fc: DUP6 000032fd: PUSH2 0x4239 00003300: JUMP 00003301: JUMPDEST 00003302: SWAP1 00003303: POP 00003304: PUSH1 0x00 00003306: PUSH2 0x3315 00003309: DUP5 0000330a: DUP9 0000330b: PUSH1 0x00 0000330d: ADD 0000330e: MLOAD 0000330f: DUP5 00003310: DUP7 00003311: PUSH2 0x4296 00003314: JUMP 00003315: JUMPDEST 00003316: SWAP1 00003317: POP 00003318: PUSH8 0xffffffffffffffff 00003321: DUP2 00003322: AND 00003323: ISZERO 00003324: PUSH2 0x0d87 00003327: JUMPI 00003328: PUSH2 0x0d87 0000332b: DUP8 0000332c: DUP3 0000332d: DUP6 0000332e: PUSH2 0x42b0 00003331: JUMP 00003332: JUMPDEST 00003333: PUSH1 0x00 00003335: DUP1 00003336: DUP1 00003337: DUP6 00003338: DUP6 00003339: ADD 0000333a: DUP5 0000333b: ISZERO 0000333c: PUSH2 0x3361 0000333f: JUMPI 00003340: PUSH2 0x335a 00003343: DUP2 00003344: PUSH16 0xffffffffffffffffffffffffffffffff 00003355: AND 00003356: PUSH2 0x4394 00003359: JUMP 0000335a: JUMPDEST 0000335b: SWAP3 0000335c: POP 0000335d: PUSH2 0x337f 00003360: JUMP 00003361: JUMPDEST 00003362: PUSH2 0x337c 00003365: DUP2 00003366: PUSH16 0xffffffffffffffffffffffffffffffff 00003377: AND 00003378: PUSH2 0x4394 0000337b: JUMP 0000337c: JUMPDEST 0000337d: SWAP4 0000337e: POP 0000337f: JUMPDEST 00003380: POP 00003381: SWAP2 00003382: SWAP6 00003383: SWAP1 00003384: SWAP5 00003385: POP 00003386: SWAP2 00003387: POP 00003388: POP 00003389: JUMP 0000338a: JUMPDEST 0000338b: PUSH1 0x00 0000338d: DUP1 0000338e: PUSH2 0x3398 00003391: DUP7 00003392: DUP6 00003393: DUP6 00003394: PUSH2 0x43c4 00003397: JUMP 00003398: JUMPDEST 00003399: SWAP1 0000339a: POP 0000339b: DUP5 0000339c: PUSH16 0xffffffffffffffffffffffffffffffff 000033ad: AND 000033ae: DUP2 000033af: PUSH16 0xffffffffffffffffffffffffffffffff 000033c0: AND 000033c1: GT 000033c2: PUSH2 0x33cb 000033c5: JUMPI 000033c6: DUP1 000033c7: PUSH2 0x073e 000033ca: JUMP 000033cb: JUMPDEST 000033cc: POP 000033cd: SWAP3 000033ce: SWAP5 000033cf: SWAP4 000033d0: POP 000033d1: POP 000033d2: POP 000033d3: POP 000033d4: JUMP 000033d5: JUMPDEST 000033d6: PUSH1 0x00 000033d8: DUP1 000033d9: PUSH1 0x00 000033db: DUP1 000033dc: PUSH1 0x00 000033de: PUSH2 0x33e8 000033e1: DUP11 000033e2: DUP11 000033e3: DUP11 000033e4: PUSH2 0x43fa 000033e7: JUMP 000033e8: JUMPDEST 000033e9: SWAP2 000033ea: POP 000033eb: SWAP2 000033ec: POP 000033ed: PUSH1 0x00 000033ef: DUP1 000033f0: PUSH2 0x33fb 000033f3: DUP5 000033f4: DUP5 000033f5: DUP13 000033f6: DUP13 000033f7: PUSH2 0x447a 000033fa: JUMP 000033fb: JUMPDEST 000033fc: SWAP2 000033fd: POP 000033fe: SWAP2 000033ff: POP 00003400: PUSH2 0x340e 00003403: DUP13 00003404: DUP12 00003405: DUP12 00003406: DUP12 00003407: DUP16 00003408: DUP8 00003409: DUP8 0000340a: PUSH2 0x44b1 0000340d: JUMP 0000340e: JUMPDEST 0000340f: SWAP7 00003410: POP 00003411: SWAP7 00003412: POP 00003413: SWAP7 00003414: POP 00003415: POP 00003416: POP 00003417: POP 00003418: POP 00003419: SWAP6 0000341a: POP 0000341b: SWAP6 0000341c: POP 0000341d: SWAP6 0000341e: SWAP3 0000341f: POP 00003420: POP 00003421: POP 00003422: JUMP 00003423: JUMPDEST 00003424: DUP3 00003425: MLOAD 00003426: PUSH16 0xffffffffffffffffffffffffffffffff 00003437: SWAP1 00003438: DUP2 00003439: AND 0000343a: DUP2 0000343b: DUP4 0000343c: AND 0000343d: EQ 0000343e: SWAP1 0000343f: DUP4 00003440: AND 00003441: ISZERO 00003442: ISZERO 00003443: DUP2 00003444: DUP1 00003445: ISZERO 00003446: PUSH2 0x344c 00003449: JUMPI 0000344a: POP 0000344b: DUP1 0000344c: JUMPDEST 0000344d: PUSH2 0x03f0 00003450: JUMPI 00003451: PUSH1 0x40 00003453: MLOAD 00003454: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003475: DUP2 00003476: MSTORE 00003477: PUSH1 0x20 00003479: PUSH1 0x04 0000347b: DUP3 0000347c: ADD 0000347d: MSTORE 0000347e: PUSH1 0x02 00003480: PUSH1 0x24 00003482: DUP3 00003483: ADD 00003484: MSTORE 00003485: PUSH32 0x5250000000000000000000000000000000000000000000000000000000000000 000034a6: PUSH1 0x44 000034a8: DUP3 000034a9: ADD 000034aa: MSTORE 000034ab: PUSH1 0x64 000034ad: ADD 000034ae: PUSH2 0x10ea 000034b1: JUMP 000034b2: JUMPDEST 000034b3: PUSH1 0x00 000034b5: DUP1 000034b6: PUSH1 0x00 000034b8: DUP1 000034b9: PUSH1 0x00 000034bb: PUSH2 0x34c6 000034be: DUP11 000034bf: DUP11 000034c0: DUP11 000034c1: DUP11 000034c2: PUSH2 0x4549 000034c5: JUMP 000034c6: JUMPDEST 000034c7: SWAP2 000034c8: POP 000034c9: SWAP2 000034ca: POP 000034cb: PUSH1 0x00 000034cd: DUP1 000034ce: PUSH2 0x34d9 000034d1: DUP12 000034d2: DUP6 000034d3: DUP13 000034d4: DUP13 000034d5: PUSH2 0x45c3 000034d8: JUMP 000034d9: JUMPDEST 000034da: SWAP2 000034db: POP 000034dc: SWAP2 000034dd: POP 000034de: PUSH2 0x340e 000034e1: DUP13 000034e2: DUP12 000034e3: DUP12 000034e4: DUP12 000034e5: DUP8 000034e6: DUP8 000034e7: DUP8 000034e8: PUSH2 0x44b1 000034eb: JUMP 000034ec: JUMPDEST 000034ed: PUSH1 0x00 000034ef: DUP3 000034f0: PUSH2 0x3511 000034f3: JUMPI 000034f4: DUP5 000034f5: MLOAD 000034f6: PUSH16 0xffffffffffffffffffffffffffffffff 00003507: DUP1 00003508: DUP5 00003509: AND 0000350a: SWAP2 0000350b: AND 0000350c: GT 0000350d: PUSH2 0x352b 00003510: JUMP 00003511: JUMPDEST 00003512: DUP5 00003513: MLOAD 00003514: PUSH16 0xffffffffffffffffffffffffffffffff 00003525: DUP1 00003526: DUP5 00003527: AND 00003528: SWAP2 00003529: AND 0000352a: LT 0000352b: JUMPDEST 0000352c: SWAP1 0000352d: POP 0000352e: PUSH16 0xffffffffffffffffffffffffffffffff 0000353f: DUP5 00003540: AND 00003541: ISZERO 00003542: DUP2 00003543: DUP1 00003544: ISZERO 00003545: PUSH2 0x354b 00003548: JUMPI 00003549: POP 0000354a: DUP1 0000354b: JUMPDEST 0000354c: PUSH2 0x162f 0000354f: JUMPI 00003550: PUSH1 0x40 00003552: MLOAD 00003553: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003574: DUP2 00003575: MSTORE 00003576: PUSH1 0x20 00003578: PUSH1 0x04 0000357a: DUP3 0000357b: ADD 0000357c: MSTORE 0000357d: PUSH1 0x02 0000357f: PUSH1 0x24 00003581: DUP3 00003582: ADD 00003583: MSTORE 00003584: PUSH32 0x5246000000000000000000000000000000000000000000000000000000000000 000035a5: PUSH1 0x44 000035a7: DUP3 000035a8: ADD 000035a9: MSTORE 000035aa: PUSH1 0x64 000035ac: ADD 000035ad: PUSH2 0x10ea 000035b0: JUMP 000035b1: JUMPDEST 000035b2: PUSH1 0x00 000035b4: PUSH2 0x0e37 000035b7: PUSH2 0x35c3 000035ba: DUP4 000035bb: PUSH1 0x02 000035bd: SIGNEXTEND 000035be: PUSH1 0x10 000035c0: SAR 000035c1: SWAP1 000035c2: JUMP 000035c3: JUMPDEST 000035c4: PUSH2 0x45e2 000035c7: JUMP 000035c8: JUMPDEST 000035c9: PUSH1 0x00 000035cb: PUSH2 0x0100 000035ce: PUSH2 0x35da 000035d1: DUP4 000035d2: PUSH1 0x02 000035d4: SIGNEXTEND 000035d5: PUSH1 0x08 000035d7: SAR 000035d8: SWAP1 000035d9: JUMP 000035da: JUMPDEST 000035db: PUSH2 0x0e37 000035de: SWAP2 000035df: SWAP1 000035e0: PUSH2 0x5d5f 000035e3: JUMP 000035e4: JUMPDEST 000035e5: PUSH1 0x00 000035e7: DUP1 000035e8: PUSH2 0x3601 000035eb: PUSH2 0x35f3 000035ee: DUP6 000035ef: PUSH2 0x4602 000035f2: JUMP 000035f3: JUMPDEST 000035f4: PUSH1 0x08 000035f6: SHL 000035f7: PUSH1 0x01 000035f9: SIGNEXTEND 000035fa: PUSH1 0xff 000035fc: DUP6 000035fd: AND 000035fe: ADD 000035ff: SWAP1 00003600: JUMP 00003601: JUMPDEST 00003602: SWAP1 00003603: POP 00003604: DUP5 00003605: DUP2 00003606: PUSH1 0x40 00003608: MLOAD 00003609: PUSH1 0x20 0000360b: ADD 0000360c: PUSH2 0x3622 0000360f: SWAP3 00003610: SWAP2 00003611: SWAP1 00003612: SWAP2 00003613: DUP3 00003614: MSTORE 00003615: PUSH1 0xf0 00003617: SHL 00003618: PUSH1 0x20 0000361a: DUP3 0000361b: ADD 0000361c: MSTORE 0000361d: PUSH1 0x22 0000361f: ADD 00003620: SWAP1 00003621: JUMP 00003622: JUMPDEST 00003623: PUSH1 0x40 00003625: MLOAD 00003626: PUSH1 0x20 00003628: DUP2 00003629: DUP4 0000362a: SUB 0000362b: SUB 0000362c: DUP2 0000362d: MSTORE 0000362e: SWAP1 0000362f: PUSH1 0x40 00003631: MSTORE 00003632: DUP1 00003633: MLOAD 00003634: SWAP1 00003635: PUSH1 0x20 00003637: ADD 00003638: KECCAK256 00003639: SWAP2 0000363a: POP 0000363b: POP 0000363c: SWAP4 0000363d: SWAP3 0000363e: POP 0000363f: POP 00003640: POP 00003641: JUMP 00003642: JUMPDEST 00003643: PUSH1 0x00 00003645: PUSH2 0x19cb 00003648: PUSH2 0x3650 0000364b: DUP6 0000364c: PUSH2 0x4602 0000364f: JUMP 00003650: JUMPDEST 00003651: PUSH1 0x10 00003653: SHL 00003654: PUSH1 0x02 00003656: SIGNEXTEND 00003657: PUSH2 0xff00 0000365a: PUSH1 0x08 0000365c: DUP7 0000365d: SWAP1 0000365e: SHL 0000365f: AND 00003660: PUSH1 0x03 00003662: SIGNEXTEND 00003663: ADD 00003664: PUSH1 0xff 00003666: DUP5 00003667: AND 00003668: ADD 00003669: SWAP1 0000366a: JUMP 0000366b: JUMPDEST 0000366c: PUSH1 0x00 0000366e: PUSH2 0x05f5 00003671: DUP4 00003672: PUSH2 0x367a 00003675: DUP5 00003676: PUSH2 0x4602 00003679: JUMP 0000367a: JUMPDEST 0000367b: PUSH2 0x4641 0000367e: JUMP 0000367f: JUMPDEST 00003680: PUSH1 0x00 00003682: PUSH1 0xff 00003684: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000036a5: DUP4 000036a6: ADD 000036a7: JUMPDEST 000036a8: PUSH1 0xff 000036aa: DUP2 000036ab: PUSH1 0xff 000036ad: AND 000036ae: LT 000036af: ISZERO 000036b0: PUSH2 0x3700 000036b3: JUMPI 000036b4: PUSH1 0x00 000036b6: DUP1 000036b7: PUSH2 0x36c3 000036ba: DUP8 000036bb: DUP5 000036bc: DUP7 000036bd: PUSH1 0x00 000036bf: PUSH2 0x2c65 000036c2: JUMP 000036c3: JUMPDEST 000036c4: SWAP2 000036c5: POP 000036c6: SWAP2 000036c7: POP 000036c8: DUP1 000036c9: PUSH2 0x36d7 000036cc: JUMPI 000036cd: POP 000036ce: SWAP3 000036cf: POP 000036d0: PUSH2 0x0e37 000036d3: SWAP2 000036d4: POP 000036d5: POP 000036d6: JUMP 000036d7: JUMPDEST 000036d8: POP 000036d9: POP 000036da: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000036fb: ADD 000036fc: PUSH2 0x36a7 000036ff: JUMP 00003700: JUMPDEST 00003701: POP 00003702: PUSH2 0x19cb 00003705: PUSH1 0x00 00003707: PUSH2 0x41c0 0000370a: JUMP 0000370b: JUMPDEST 0000370c: PUSH1 0x00 0000370e: DUP1 0000370f: PUSH1 0x01 00003711: DUP4 00003712: ADD 00003713: JUMPDEST 00003714: PUSH1 0xff 00003716: DUP2 00003717: AND 00003718: ISZERO 00003719: PUSH2 0x374a 0000371c: JUMPI 0000371d: PUSH1 0x00 0000371f: DUP1 00003720: PUSH2 0x372c 00003723: DUP8 00003724: DUP5 00003725: DUP7 00003726: PUSH1 0x01 00003728: PUSH2 0x2c65 0000372b: JUMP 0000372c: JUMPDEST 0000372d: SWAP2 0000372e: POP 0000372f: SWAP2 00003730: POP 00003731: DUP1 00003732: PUSH2 0x3740 00003735: JUMPI 00003736: POP 00003737: SWAP3 00003738: POP 00003739: PUSH2 0x0e37 0000373c: SWAP2 0000373d: POP 0000373e: POP 0000373f: JUMP 00003740: JUMPDEST 00003741: POP 00003742: POP 00003743: PUSH1 0x01 00003745: ADD 00003746: PUSH2 0x3713 00003749: JUMP 0000374a: JUMPDEST 0000374b: POP 0000374c: PUSH2 0x19cb 0000374f: PUSH1 0x01 00003751: PUSH2 0x41c0 00003754: JUMP 00003755: JUMPDEST 00003756: PUSH1 0x00 00003758: DUP1 00003759: PUSH1 0x00 0000375b: PUSH2 0x3764 0000375e: DUP8 0000375f: DUP8 00003760: PUSH2 0x4662 00003763: JUMP 00003764: JUMPDEST 00003765: DUP1 00003766: SLOAD 00003767: SWAP1 00003768: SWAP2 00003769: POP 0000376a: PUSH1 0x00 0000376c: SWAP1 0000376d: PUSH2 0x3797 00003770: SWAP1 00003771: PUSH12 0xffffffffffffffffffffffff 0000377e: DUP1 0000377f: DUP3 00003780: AND 00003781: SWAP2 00003782: PUSH13 0x01000000000000000000000000 00003790: SWAP1 00003791: DIV 00003792: AND 00003793: PUSH2 0x46b5 00003796: JUMP 00003797: JUMPDEST 00003798: SWAP1 00003799: POP 0000379a: DUP6 0000379b: PUSH2 0x37ac 0000379e: JUMPI 0000379f: PUSH2 0x37a7 000037a2: DUP2 000037a3: PUSH2 0x5bd5 000037a6: JUMP 000037a7: JUMPDEST 000037a8: PUSH2 0x37ae 000037ab: JUMP 000037ac: JUMPDEST 000037ad: DUP1 000037ae: JUMPDEST 000037af: DUP3 000037b0: SLOAD 000037b1: SWAP1 000037b2: SWAP5 000037b3: POP 000037b4: PUSH8 0xffffffffffffffff 000037bd: DUP7 000037be: DUP2 000037bf: AND 000037c0: PUSH25 0x01000000000000000000000000000000000000000000000000 000037da: SWAP1 000037db: SWAP3 000037dc: DIV 000037dd: AND 000037de: EQ 000037df: PUSH2 0x385e 000037e2: JUMPI 000037e3: DUP2 000037e4: SLOAD 000037e5: PUSH2 0x3814 000037e8: SWAP1 000037e9: PUSH25 0x01000000000000000000000000000000000000000000000000 00003803: SWAP1 00003804: DIV 00003805: PUSH8 0xffffffffffffffff 0000380e: AND 0000380f: DUP7 00003810: PUSH2 0x5d81 00003813: JUMP 00003814: JUMPDEST 00003815: DUP3 00003816: SLOAD 00003817: PUSH8 0xffffffffffffffff 00003820: SWAP2 00003821: SWAP1 00003822: SWAP2 00003823: AND 00003824: PUSH25 0x01000000000000000000000000000000000000000000000000 0000383e: MUL 0000383f: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff 00003858: SWAP1 00003859: SWAP2 0000385a: AND 0000385b: OR 0000385c: DUP3 0000385d: SSTORE 0000385e: JUMPDEST 0000385f: DUP6 00003860: PUSH2 0x386f 00003863: JUMPI 00003864: DUP2 00003865: SLOAD 00003866: PUSH1 0x01 00003868: AND 00003869: ISZERO 0000386a: ISZERO 0000386b: PUSH2 0x3887 0000386e: JUMP 0000386f: JUMPDEST 00003870: DUP2 00003871: SLOAD 00003872: PUSH13 0x01000000000000000000000000 00003880: SWAP1 00003881: DIV 00003882: PUSH1 0x01 00003884: AND 00003885: ISZERO 00003886: ISZERO 00003887: JUMPDEST 00003888: SWAP3 00003889: POP 0000388a: POP 0000388b: POP 0000388c: SWAP5 0000388d: POP 0000388e: SWAP5 0000388f: SWAP3 00003890: POP 00003891: POP 00003892: POP 00003893: JUMP 00003894: JUMPDEST 00003895: PUSH1 0x00 00003897: DUP1 00003898: DUP3 00003899: PUSH1 0x0f 0000389b: SIGNEXTEND 0000389c: SLT 0000389d: ISZERO 0000389e: PUSH2 0x38cb 000038a1: JUMPI 000038a2: POP 000038a3: DUP1 000038a4: DUP3 000038a5: ADD 000038a6: PUSH16 0xffffffffffffffffffffffffffffffff 000038b7: DUP1 000038b8: DUP5 000038b9: AND 000038ba: SWAP1 000038bb: DUP3 000038bc: AND 000038bd: LT 000038be: PUSH2 0x38c6 000038c1: JUMPI 000038c2: PUSH1 0x00 000038c4: DUP1 000038c5: REVERT 000038c6: JUMPDEST 000038c7: PUSH2 0x0e37 000038ca: JUMP 000038cb: JUMPDEST 000038cc: DUP3 000038cd: PUSH16 0xffffffffffffffffffffffffffffffff 000038de: AND 000038df: DUP3 000038e0: DUP5 000038e1: ADD 000038e2: SWAP2 000038e3: POP 000038e4: DUP2 000038e5: PUSH16 0xffffffffffffffffffffffffffffffff 000038f6: AND 000038f7: LT 000038f8: ISZERO 000038f9: PUSH2 0x0e37 000038fc: JUMPI 000038fd: PUSH1 0x00 000038ff: DUP1 00003900: REVERT 00003901: JUMPDEST 00003902: PUSH2 0x0dad 00003905: SLOAD 00003906: PUSH1 0x00 00003908: SWAP1 00003909: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000391e: AND 0000391f: PUSH2 0x3927 00003922: JUMPI 00003923: PUSH1 0x00 00003925: DUP1 00003926: REVERT 00003927: JUMPDEST 00003928: PUSH1 0x00 0000392a: DUP1 0000392b: PUSH1 0x01 0000392d: PUSH2 0x0dac 00003930: ADD 00003931: SLOAD 00003932: PUSH1 0x40 00003934: MLOAD 00003935: PUSH1 0x24 00003937: DUP2 00003938: ADD 00003939: DUP10 0000393a: SWAP1 0000393b: MSTORE 0000393c: PUSH1 0x02 0000393e: DUP9 0000393f: SWAP1 00003940: SIGNEXTEND 00003941: PUSH1 0x44 00003943: DUP3 00003944: ADD 00003945: MSTORE 00003946: DUP7 00003947: ISZERO 00003948: ISZERO 00003949: PUSH1 0x64 0000394b: DUP3 0000394c: ADD 0000394d: MSTORE 0000394e: PUSH8 0xffffffffffffffff 00003957: DUP7 00003958: AND 00003959: PUSH1 0x84 0000395b: DUP3 0000395c: ADD 0000395d: MSTORE 0000395e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003973: SWAP1 00003974: SWAP2 00003975: AND 00003976: SWAP1 00003977: PUSH1 0xa4 00003979: ADD 0000397a: PUSH1 0x40 0000397c: DUP1 0000397d: MLOAD 0000397e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000399f: DUP2 000039a0: DUP5 000039a1: SUB 000039a2: ADD 000039a3: DUP2 000039a4: MSTORE 000039a5: SWAP2 000039a6: DUP2 000039a7: MSTORE 000039a8: PUSH1 0x20 000039aa: DUP3 000039ab: ADD 000039ac: DUP1 000039ad: MLOAD 000039ae: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000039cb: AND 000039cc: PUSH32 0x3c05c62100000000000000000000000000000000000000000000000000000000 000039ed: OR 000039ee: SWAP1 000039ef: MSTORE 000039f0: MLOAD 000039f1: PUSH2 0x39fa 000039f4: SWAP2 000039f5: SWAP1 000039f6: PUSH2 0x596c 000039f9: JUMP 000039fa: JUMPDEST 000039fb: PUSH1 0x00 000039fd: PUSH1 0x40 000039ff: MLOAD 00003a00: DUP1 00003a01: DUP4 00003a02: SUB 00003a03: DUP2 00003a04: DUP6 00003a05: GAS 00003a06: DELEGATECALL 00003a07: SWAP2 00003a08: POP 00003a09: POP 00003a0a: RETURNDATASIZE 00003a0b: DUP1 00003a0c: PUSH1 0x00 00003a0e: DUP2 00003a0f: EQ 00003a10: PUSH2 0x3a35 00003a13: JUMPI 00003a14: PUSH1 0x40 00003a16: MLOAD 00003a17: SWAP2 00003a18: POP 00003a19: PUSH1 0x1f 00003a1b: NOT 00003a1c: PUSH1 0x3f 00003a1e: RETURNDATASIZE 00003a1f: ADD 00003a20: AND 00003a21: DUP3 00003a22: ADD 00003a23: PUSH1 0x40 00003a25: MSTORE 00003a26: RETURNDATASIZE 00003a27: DUP3 00003a28: MSTORE 00003a29: RETURNDATASIZE 00003a2a: PUSH1 0x00 00003a2c: PUSH1 0x20 00003a2e: DUP5 00003a2f: ADD 00003a30: RETURNDATACOPY 00003a31: PUSH2 0x3a3a 00003a34: JUMP 00003a35: JUMPDEST 00003a36: PUSH1 0x60 00003a38: SWAP2 00003a39: POP 00003a3a: JUMPDEST 00003a3b: POP 00003a3c: SWAP2 00003a3d: POP 00003a3e: SWAP2 00003a3f: POP 00003a40: DUP2 00003a41: PUSH2 0x3a49 00003a44: JUMPI 00003a45: PUSH1 0x00 00003a47: DUP1 00003a48: REVERT 00003a49: JUMPDEST 00003a4a: DUP1 00003a4b: DUP1 00003a4c: PUSH1 0x20 00003a4e: ADD 00003a4f: SWAP1 00003a50: MLOAD 00003a51: DUP2 00003a52: ADD 00003a53: SWAP1 00003a54: PUSH2 0x3a5d 00003a57: SWAP2 00003a58: SWAP1 00003a59: PUSH2 0x5da2 00003a5c: JUMP 00003a5d: JUMPDEST 00003a5e: SWAP8 00003a5f: SWAP7 00003a60: POP 00003a61: POP 00003a62: POP 00003a63: POP 00003a64: POP 00003a65: POP 00003a66: POP 00003a67: JUMP 00003a68: JUMPDEST 00003a69: PUSH1 0x00 00003a6b: DUP1 00003a6c: PUSH2 0x3a7d 00003a6f: DUP4 00003a70: PUSH1 0x20 00003a72: ADD 00003a73: MLOAD 00003a74: DUP5 00003a75: PUSH1 0x60 00003a77: ADD 00003a78: MLOAD 00003a79: PUSH2 0x46d1 00003a7c: JUMP 00003a7d: JUMPDEST 00003a7e: SWAP1 00003a7f: POP 00003a80: PUSH2 0x05f5 00003a83: DUP2 00003a84: DUP5 00003a85: PUSH1 0x40 00003a87: ADD 00003a88: MLOAD 00003a89: PUSH2 0x4726 00003a8c: JUMP 00003a8d: JUMPDEST 00003a8e: PUSH1 0x00 00003a90: DUP2 00003a91: ISZERO 00003a92: PUSH2 0x3aad 00003a95: JUMPI 00003a96: POP 00003a97: PUSH1 0x01 00003a99: PUSH8 0xffffffffffffffff 00003aa2: PUSH1 0x40 00003aa4: DUP6 00003aa5: SWAP1 00003aa6: SHR 00003aa7: AND 00003aa8: ADD 00003aa9: PUSH2 0x05f5 00003aac: JUMP 00003aad: JUMPDEST 00003aae: PUSH1 0x00 00003ab0: PUSH2 0x3abc 00003ab3: DUP6 00003ab4: PUSH1 0x01 00003ab6: DUP7 00003ab7: SUB 00003ab8: PUSH2 0x474b 00003abb: JUMP 00003abc: JUMPDEST 00003abd: SWAP1 00003abe: POP 00003abf: PUSH1 0x00 00003ac1: PUSH2 0x3aca 00003ac4: DUP7 00003ac5: DUP7 00003ac6: PUSH2 0x474b 00003ac9: JUMP 00003aca: JUMPDEST 00003acb: SWAP1 00003acc: POP 00003acd: DUP1 00003ace: DUP3 00003acf: SUB 00003ad0: PUSH1 0x01 00003ad2: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff 00003aeb: DUP3 00003aec: AND 00003aed: ADD 00003aee: PUSH2 0x3af6 00003af1: DUP2 00003af2: PUSH2 0x2eff 00003af5: JUMP 00003af6: JUMPDEST 00003af7: SWAP5 00003af8: POP 00003af9: POP 00003afa: POP 00003afb: POP 00003afc: POP 00003afd: PUSH2 0x05f5 00003b00: JUMP 00003b01: JUMPDEST 00003b02: PUSH1 0x00 00003b04: DUP1 00003b05: PUSH1 0x00 00003b07: PUSH1 0x01 00003b09: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472 00003b1a: SUB 00003b1b: PUSH16 0xffffffffffffffffffffffffffffffff 00003b2c: AND 00003b2d: DUP7 00003b2e: PUSH1 0x00 00003b30: ADD 00003b31: MLOAD 00003b32: PUSH16 0xffffffffffffffffffffffffffffffff 00003b43: AND 00003b44: LT 00003b45: ISZERO 00003b46: PUSH2 0x3b63 00003b49: JUMPI 00003b4a: DUP6 00003b4b: MLOAD 00003b4c: PUSH1 0x01 00003b4e: ADD 00003b4f: PUSH16 0xffffffffffffffffffffffffffffffff 00003b60: AND 00003b61: DUP7 00003b62: MSTORE 00003b63: JUMPDEST 00003b64: PUSH1 0x00 00003b66: SWAP2 00003b67: POP 00003b68: PUSH2 0x3b82 00003b6b: DUP5 00003b6c: PUSH16 0xffffffffffffffffffffffffffffffff 00003b7d: AND 00003b7e: PUSH2 0x4394 00003b81: JUMP 00003b82: JUMPDEST 00003b83: SWAP3 00003b84: POP 00003b85: DUP5 00003b86: PUSH2 0x3b90 00003b89: JUMPI 00003b8a: PUSH1 0x00 00003b8c: PUSH2 0x3b92 00003b8f: JUMP 00003b90: JUMPDEST 00003b91: DUP4 00003b92: JUMPDEST 00003b93: SWAP1 00003b94: POP 00003b95: SWAP4 00003b96: POP 00003b97: SWAP4 00003b98: POP 00003b99: SWAP4 00003b9a: SWAP1 00003b9b: POP 00003b9c: JUMP 00003b9d: JUMPDEST 00003b9e: PUSH1 0x00 00003ba0: DUP1 00003ba1: PUSH1 0x00 00003ba3: PUSH3 0x010002 00003ba7: PUSH16 0xffffffffffffffffffffffffffffffff 00003bb8: AND 00003bb9: DUP7 00003bba: PUSH1 0x00 00003bbc: ADD 00003bbd: MLOAD 00003bbe: PUSH16 0xffffffffffffffffffffffffffffffff 00003bcf: AND 00003bd0: GT 00003bd1: ISZERO 00003bd2: PUSH2 0x3c0e 00003bd5: JUMPI 00003bd6: DUP6 00003bd7: MLOAD 00003bd8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003bf9: ADD 00003bfa: PUSH16 0xffffffffffffffffffffffffffffffff 00003c0b: AND 00003c0c: DUP7 00003c0d: MSTORE 00003c0e: JUMPDEST 00003c0f: PUSH1 0x00 00003c11: SWAP3 00003c12: POP 00003c13: PUSH2 0x3c2d 00003c16: DUP5 00003c17: PUSH16 0xffffffffffffffffffffffffffffffff 00003c28: AND 00003c29: PUSH2 0x4394 00003c2c: JUMP 00003c2d: JUMPDEST 00003c2e: SWAP2 00003c2f: POP 00003c30: DUP5 00003c31: PUSH2 0x3c3a 00003c34: JUMPI 00003c35: DUP4 00003c36: PUSH2 0x3b92 00003c39: JUMP 00003c3a: JUMPDEST 00003c3b: PUSH1 0x00 00003c3d: SWAP1 00003c3e: POP 00003c3f: SWAP4 00003c40: POP 00003c41: SWAP4 00003c42: POP 00003c43: SWAP4 00003c44: SWAP1 00003c45: POP 00003c46: JUMP 00003c47: JUMPDEST 00003c48: PUSH1 0x00 00003c4a: DUP1 00003c4b: PUSH2 0x3c54 00003c4e: DUP6 00003c4f: DUP5 00003c50: PUSH2 0x0ec8 00003c53: JUMP 00003c54: JUMPDEST 00003c55: PUSH1 0x00 00003c57: DUP2 00003c58: DUP2 00003c59: MSTORE 00003c5a: PUSH3 0x010010 00003c5e: PUSH1 0x20 00003c60: MSTORE 00003c61: PUSH1 0x40 00003c63: SWAP1 00003c64: KECCAK256 00003c65: DUP1 00003c66: SLOAD 00003c67: SWAP2 00003c68: SWAP3 00003c69: POP 00003c6a: SWAP1 00003c6b: PUSH16 0xffffffffffffffffffffffffffffffff 00003c7c: SWAP1 00003c7d: DUP2 00003c7e: AND 00003c7f: SWAP1 00003c80: DUP7 00003c81: AND 00003c82: DUP2 00003c83: GT 00003c84: ISZERO 00003c85: PUSH2 0x3ce9 00003c88: JUMPI 00003c89: DUP2 00003c8a: SLOAD 00003c8b: DUP7 00003c8c: SWAP1 00003c8d: DUP4 00003c8e: SWAP1 00003c8f: PUSH1 0x00 00003c91: SWAP1 00003c92: PUSH2 0x3cae 00003c95: SWAP1 00003c96: DUP5 00003c97: SWAP1 00003c98: PUSH16 0xffffffffffffffffffffffffffffffff 00003ca9: AND 00003caa: PUSH2 0x5a8e 00003cad: JUMP 00003cae: JUMPDEST 00003caf: SWAP3 00003cb0: POP 00003cb1: PUSH2 0x0100 00003cb4: EXP 00003cb5: DUP2 00003cb6: SLOAD 00003cb7: DUP2 00003cb8: PUSH16 0xffffffffffffffffffffffffffffffff 00003cc9: MUL 00003cca: NOT 00003ccb: AND 00003ccc: SWAP1 00003ccd: DUP4 00003cce: PUSH16 0xffffffffffffffffffffffffffffffff 00003cdf: AND 00003ce0: MUL 00003ce1: OR 00003ce2: SWAP1 00003ce3: SSTORE 00003ce4: POP 00003ce5: PUSH2 0x3d1c 00003ce8: JUMP 00003ce9: JUMPDEST 00003cea: DUP2 00003ceb: SLOAD 00003cec: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00003d0d: AND 00003d0e: DUP3 00003d0f: SSTORE 00003d10: PUSH2 0x3d19 00003d13: DUP2 00003d14: DUP8 00003d15: PUSH2 0x5a8e 00003d18: JUMP 00003d19: JUMPDEST 00003d1a: SWAP4 00003d1b: POP 00003d1c: JUMPDEST 00003d1d: POP 00003d1e: POP 00003d1f: POP 00003d20: SWAP4 00003d21: SWAP3 00003d22: POP 00003d23: POP 00003d24: POP 00003d25: JUMP 00003d26: JUMPDEST 00003d27: PUSH16 0xffffffffffffffffffffffffffffffff 00003d38: DUP4 00003d39: AND 00003d3a: ISZERO 00003d3b: PUSH2 0x3d4f 00003d3e: JUMPI 00003d3f: PUSH2 0x3d4a 00003d42: DUP5 00003d43: DUP5 00003d44: DUP5 00003d45: DUP5 00003d46: PUSH2 0x3d74 00003d49: JUMP 00003d4a: JUMPDEST 00003d4b: PUSH2 0x0bf7 00003d4e: JUMP 00003d4f: JUMPDEST 00003d50: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d65: DUP3 00003d66: AND 00003d67: PUSH2 0x0bf7 00003d6a: JUMPI 00003d6b: PUSH2 0x0bf7 00003d6e: DUP5 00003d6f: DUP3 00003d70: PUSH2 0x2917 00003d73: JUMP 00003d74: JUMPDEST 00003d75: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d8a: DUP3 00003d8b: AND 00003d8c: PUSH2 0x3d9a 00003d8f: JUMPI 00003d90: PUSH2 0x3d4a 00003d93: DUP5 00003d94: DUP5 00003d95: DUP4 00003d96: PUSH2 0x4794 00003d99: JUMP 00003d9a: JUMPDEST 00003d9b: PUSH2 0x0bf7 00003d9e: DUP5 00003d9f: DUP5 00003da0: DUP5 00003da1: PUSH2 0x483a 00003da4: JUMP 00003da5: JUMPDEST 00003da6: PUSH1 0x00 00003da8: PUSH2 0x3db1 00003dab: DUP5 00003dac: DUP4 00003dad: PUSH2 0x0ec8 00003db0: JUMP 00003db1: JUMPDEST 00003db2: PUSH1 0x00 00003db4: DUP2 00003db5: DUP2 00003db6: MSTORE 00003db7: PUSH3 0x010010 00003dbb: PUSH1 0x20 00003dbd: MSTORE 00003dbe: PUSH1 0x40 00003dc0: DUP2 00003dc1: KECCAK256 00003dc2: DUP1 00003dc3: SLOAD 00003dc4: SWAP3 00003dc5: SWAP4 00003dc6: POP 00003dc7: DUP6 00003dc8: SWAP3 00003dc9: SWAP1 00003dca: SWAP2 00003dcb: SWAP1 00003dcc: PUSH2 0x3de8 00003dcf: SWAP1 00003dd0: DUP5 00003dd1: SWAP1 00003dd2: PUSH16 0xffffffffffffffffffffffffffffffff 00003de3: AND 00003de4: PUSH2 0x5ab7 00003de7: JUMP 00003de8: JUMPDEST 00003de9: SWAP3 00003dea: POP 00003deb: PUSH2 0x0100 00003dee: EXP 00003def: DUP2 00003df0: SLOAD 00003df1: DUP2 00003df2: PUSH16 0xffffffffffffffffffffffffffffffff 00003e03: MUL 00003e04: NOT 00003e05: AND 00003e06: SWAP1 00003e07: DUP4 00003e08: PUSH16 0xffffffffffffffffffffffffffffffff 00003e19: AND 00003e1a: MUL 00003e1b: OR 00003e1c: SWAP1 00003e1d: SSTORE 00003e1e: POP 00003e1f: POP 00003e20: POP 00003e21: POP 00003e22: POP 00003e23: JUMP 00003e24: JUMPDEST 00003e25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e3a: DUP3 00003e3b: AND 00003e3c: PUSH2 0x125f 00003e3f: JUMPI 00003e40: PUSH2 0x125f 00003e43: DUP4 00003e44: DUP3 00003e45: PUSH2 0x2917 00003e48: JUMP 00003e49: JUMPDEST 00003e4a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e5f: DUP3 00003e60: AND 00003e61: PUSH2 0x3e6f 00003e64: JUMPI 00003e65: PUSH2 0x3d4a 00003e68: DUP5 00003e69: DUP5 00003e6a: DUP4 00003e6b: PUSH2 0x4858 00003e6e: JUMP 00003e6f: JUMPDEST 00003e70: PUSH2 0x0bf7 00003e73: DUP3 00003e74: DUP6 00003e75: DUP6 00003e76: PUSH16 0xffffffffffffffffffffffffffffffff 00003e87: AND 00003e88: PUSH2 0x487d 00003e8b: JUMP 00003e8c: JUMPDEST 00003e8d: PUSH1 0x00 00003e8f: DUP2 00003e90: PUSH2 0x3ea2 00003e93: JUMPI 00003e94: PUSH2 0xffff 00003e97: DUP4 00003e98: AND 00003e99: DUP5 00003e9a: DUP2 00003e9b: SHL 00003e9c: SWAP1 00003e9d: SHR 00003e9e: PUSH2 0x19cb 00003ea1: JUMP 00003ea2: JUMPDEST 00003ea3: POP 00003ea4: POP 00003ea5: PUSH2 0xffff 00003ea8: AND 00003ea9: SWAP1 00003eaa: DUP2 00003eab: SHR 00003eac: SWAP1 00003ead: SHL 00003eae: SWAP1 00003eaf: JUMP 00003eb0: JUMPDEST 00003eb1: PUSH1 0x00 00003eb3: DUP1 00003eb4: DUP3 00003eb5: GT 00003eb6: PUSH2 0x3ebe 00003eb9: JUMPI 00003eba: PUSH1 0x00 00003ebc: DUP1 00003ebd: REVERT 00003ebe: JUMPDEST 00003ebf: PUSH17 0x0100000000000000000000000000000000 00003ed1: DUP3 00003ed2: LT 00003ed3: PUSH2 0x3ede 00003ed6: JUMPI 00003ed7: PUSH1 0x80 00003ed9: SWAP2 00003eda: DUP3 00003edb: SHR 00003edc: SWAP2 00003edd: ADD 00003ede: JUMPDEST 00003edf: PUSH9 0x010000000000000000 00003ee9: DUP3 00003eea: LT 00003eeb: PUSH2 0x3ef6 00003eee: JUMPI 00003eef: PUSH1 0x40 00003ef1: SWAP2 00003ef2: DUP3 00003ef3: SHR 00003ef4: SWAP2 00003ef5: ADD 00003ef6: JUMPDEST 00003ef7: PUSH5 0x0100000000 00003efd: DUP3 00003efe: LT 00003eff: PUSH2 0x3f0a 00003f02: JUMPI 00003f03: PUSH1 0x20 00003f05: SWAP2 00003f06: DUP3 00003f07: SHR 00003f08: SWAP2 00003f09: ADD 00003f0a: JUMPDEST 00003f0b: PUSH3 0x010000 00003f0f: DUP3 00003f10: LT 00003f11: PUSH2 0x3f1c 00003f14: JUMPI 00003f15: PUSH1 0x10 00003f17: SWAP2 00003f18: DUP3 00003f19: SHR 00003f1a: SWAP2 00003f1b: ADD 00003f1c: JUMPDEST 00003f1d: PUSH2 0x0100 00003f20: DUP3 00003f21: LT 00003f22: PUSH2 0x3f2d 00003f25: JUMPI 00003f26: PUSH1 0x08 00003f28: SWAP2 00003f29: DUP3 00003f2a: SHR 00003f2b: SWAP2 00003f2c: ADD 00003f2d: JUMPDEST 00003f2e: PUSH1 0x10 00003f30: DUP3 00003f31: LT 00003f32: PUSH2 0x3f3d 00003f35: JUMPI 00003f36: PUSH1 0x04 00003f38: SWAP2 00003f39: DUP3 00003f3a: SHR 00003f3b: SWAP2 00003f3c: ADD 00003f3d: JUMPDEST 00003f3e: PUSH1 0x04 00003f40: DUP3 00003f41: LT 00003f42: PUSH2 0x3f4d 00003f45: JUMPI 00003f46: PUSH1 0x02 00003f48: SWAP2 00003f49: DUP3 00003f4a: SHR 00003f4b: SWAP2 00003f4c: ADD 00003f4d: JUMPDEST 00003f4e: PUSH1 0x02 00003f50: DUP3 00003f51: LT 00003f52: PUSH2 0x1bb9 00003f55: JUMPI 00003f56: PUSH1 0x01 00003f58: ADD 00003f59: SWAP2 00003f5a: SWAP1 00003f5b: POP 00003f5c: JUMP 00003f5d: JUMPDEST 00003f5e: PUSH1 0x00 00003f60: DUP1 00003f61: DUP3 00003f62: GT 00003f63: PUSH2 0x3f6b 00003f66: JUMPI 00003f67: PUSH1 0x00 00003f69: DUP1 00003f6a: REVERT 00003f6b: JUMPDEST 00003f6c: POP 00003f6d: PUSH1 0xff 00003f6f: PUSH16 0xffffffffffffffffffffffffffffffff 00003f80: DUP3 00003f81: AND 00003f82: ISZERO 00003f83: PUSH2 0x3fad 00003f86: JUMPI 00003f87: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 00003fa8: ADD 00003fa9: PUSH2 0x3fb5 00003fac: JUMP 00003fad: JUMPDEST 00003fae: PUSH1 0x80 00003fb0: DUP3 00003fb1: SWAP1 00003fb2: SHR 00003fb3: SWAP2 00003fb4: POP 00003fb5: JUMPDEST 00003fb6: PUSH8 0xffffffffffffffff 00003fbf: DUP3 00003fc0: AND 00003fc1: ISZERO 00003fc2: PUSH2 0x3fec 00003fc5: JUMPI 00003fc6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0 00003fe7: ADD 00003fe8: PUSH2 0x3ff4 00003feb: JUMP 00003fec: JUMPDEST 00003fed: PUSH1 0x40 00003fef: DUP3 00003ff0: SWAP1 00003ff1: SHR 00003ff2: SWAP2 00003ff3: POP 00003ff4: JUMPDEST 00003ff5: PUSH4 0xffffffff 00003ffa: DUP3 00003ffb: AND 00003ffc: ISZERO 00003ffd: PUSH2 0x4027 00004000: JUMPI 00004001: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00004022: ADD 00004023: PUSH2 0x402f 00004026: JUMP 00004027: JUMPDEST 00004028: PUSH1 0x20 0000402a: DUP3 0000402b: SWAP1 0000402c: SHR 0000402d: SWAP2 0000402e: POP 0000402f: JUMPDEST 00004030: PUSH2 0xffff 00004033: DUP3 00004034: AND 00004035: ISZERO 00004036: PUSH2 0x4060 00004039: JUMPI 0000403a: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0 0000405b: ADD 0000405c: PUSH2 0x4068 0000405f: JUMP 00004060: JUMPDEST 00004061: PUSH1 0x10 00004063: DUP3 00004064: SWAP1 00004065: SHR 00004066: SWAP2 00004067: POP 00004068: JUMPDEST 00004069: PUSH1 0xff 0000406b: DUP3 0000406c: AND 0000406d: ISZERO 0000406e: PUSH2 0x4098 00004071: JUMPI 00004072: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8 00004093: ADD 00004094: PUSH2 0x40a0 00004097: JUMP 00004098: JUMPDEST 00004099: PUSH1 0x08 0000409b: DUP3 0000409c: SWAP1 0000409d: SHR 0000409e: SWAP2 0000409f: POP 000040a0: JUMPDEST 000040a1: PUSH1 0x0f 000040a3: DUP3 000040a4: AND 000040a5: ISZERO 000040a6: PUSH2 0x40d0 000040a9: JUMPI 000040aa: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 000040cb: ADD 000040cc: PUSH2 0x40d8 000040cf: JUMP 000040d0: JUMPDEST 000040d1: PUSH1 0x04 000040d3: DUP3 000040d4: SWAP1 000040d5: SHR 000040d6: SWAP2 000040d7: POP 000040d8: JUMPDEST 000040d9: PUSH1 0x03 000040db: DUP3 000040dc: AND 000040dd: ISZERO 000040de: PUSH2 0x4108 000040e1: JUMPI 000040e2: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe 00004103: ADD 00004104: PUSH2 0x4110 00004107: JUMP 00004108: JUMPDEST 00004109: PUSH1 0x02 0000410b: DUP3 0000410c: SWAP1 0000410d: SHR 0000410e: SWAP2 0000410f: POP 00004110: JUMPDEST 00004111: PUSH1 0x01 00004113: DUP3 00004114: AND 00004115: ISZERO 00004116: PUSH2 0x1bb9 00004119: JUMPI 0000411a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000413b: ADD 0000413c: SWAP2 0000413d: SWAP1 0000413e: POP 0000413f: JUMP 00004140: JUMPDEST 00004141: PUSH1 0x00 00004143: DUP1 00004144: PUSH1 0x00 00004146: PUSH2 0x4154 00004149: DUP6 0000414a: DUP6 0000414b: PUSH1 0xff 0000414d: AND 0000414e: PUSH1 0x01 00004150: PUSH2 0x30b3 00004153: JUMP 00004154: JUMPDEST 00004155: SWAP2 00004156: POP 00004157: PUSH1 0xff 00004159: AND 0000415a: SWAP2 0000415b: POP 0000415c: DUP1 0000415d: ISZERO 0000415e: DUP1 0000415f: ISZERO 00004160: PUSH2 0x1025 00004163: JUMPI 00004164: POP 00004165: DUP4 00004166: PUSH1 0xff 00004168: AND 00004169: DUP3 0000416a: EQ 0000416b: SWAP3 0000416c: POP 0000416d: POP 0000416e: POP 0000416f: SWAP3 00004170: SWAP2 00004171: POP 00004172: POP 00004173: JUMP 00004174: JUMPDEST 00004175: PUSH1 0x00 00004177: DUP2 00004178: PUSH2 0x41a1 0000417b: JUMPI 0000417c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000 0000419d: PUSH2 0x0e37 000041a0: JUMP 000041a1: JUMPDEST 000041a2: PUSH2 0x7fff 000041a5: SWAP3 000041a6: SWAP2 000041a7: POP 000041a8: POP 000041a9: JUMP 000041aa: JUMPDEST 000041ab: PUSH1 0x00 000041ad: DUP2 000041ae: PUSH2 0x41b8 000041b1: JUMPI 000041b2: PUSH1 0x00 000041b4: PUSH2 0x0e37 000041b7: JUMP 000041b8: JUMPDEST 000041b9: PUSH1 0xff 000041bb: SWAP3 000041bc: SWAP2 000041bd: POP 000041be: POP 000041bf: JUMP 000041c0: JUMPDEST 000041c1: PUSH1 0x00 000041c3: DUP2 000041c4: PUSH2 0x41ed 000041c7: JUMPI 000041c8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 000041e9: PUSH2 0x0e37 000041ec: JUMP 000041ed: JUMPDEST 000041ee: PUSH3 0x7fffff 000041f2: SWAP3 000041f3: SWAP2 000041f4: POP 000041f5: POP 000041f6: JUMP 000041f7: JUMPDEST 000041f8: DUP4 000041f9: MLOAD 000041fa: PUSH1 0x00 000041fc: SWAP1 000041fd: PUSH16 0xffffffffffffffffffffffffffffffff 0000420e: SWAP1 0000420f: DUP2 00004210: AND 00004211: SWAP1 00004212: DUP4 00004213: AND 00004214: GT 00004215: DUP2 00004216: PUSH2 0x4221 00004219: DUP8 0000421a: DUP8 0000421b: DUP8 0000421c: DUP8 0000421d: PUSH2 0x338a 00004220: JUMP 00004221: JUMPDEST 00004222: SWAP1 00004223: POP 00004224: PUSH2 0x3a5d 00004227: PUSH2 0x422f 0000422a: DUP9 0000422b: PUSH2 0x3a68 0000422e: JUMP 0000422f: JUMPDEST 00004230: DUP9 00004231: MLOAD 00004232: DUP4 00004233: DUP6 00004234: DUP10 00004235: PUSH2 0x49e6 00004238: JUMP 00004239: JUMPDEST 0000423a: PUSH1 0x00 0000423c: PUSH1 0x02 0000423e: DUP2 0000423f: PUSH2 0x4249 00004242: DUP8 00004243: DUP8 00004244: DUP7 00004245: PUSH2 0x3a8d 00004248: JUMP 00004249: JUMPDEST 0000424a: PUSH2 0x4253 0000424d: SWAP1 0000424e: DUP4 0000424f: PUSH2 0x5a04 00004252: JUMP 00004253: JUMPDEST 00004254: SWAP1 00004255: POP 00004256: DUP1 00004257: PUSH16 0xffffffffffffffffffffffffffffffff 00004268: AND 00004269: DUP6 0000426a: PUSH16 0xffffffffffffffffffffffffffffffff 0000427b: AND 0000427c: GT 0000427d: ISZERO 0000427e: PUSH2 0x4289 00004281: JUMPI 00004282: DUP1 00004283: DUP6 00004284: SUB 00004285: PUSH2 0x3a5d 00004288: JUMP 00004289: JUMPDEST 0000428a: POP 0000428b: PUSH1 0x00 0000428d: SWAP7 0000428e: SWAP6 0000428f: POP 00004290: POP 00004291: POP 00004292: POP 00004293: POP 00004294: POP 00004295: JUMP 00004296: JUMPDEST 00004297: PUSH1 0x00 00004299: DUP1 0000429a: PUSH2 0x42a4 0000429d: DUP7 0000429e: DUP7 0000429f: DUP6 000042a0: PUSH2 0x4aff 000042a3: JUMP 000042a4: JUMPDEST 000042a5: SWAP1 000042a6: POP 000042a7: PUSH2 0x073e 000042aa: DUP2 000042ab: DUP6 000042ac: PUSH2 0x4b52 000042af: JUMP 000042b0: JUMPDEST 000042b1: DUP3 000042b2: MLOAD 000042b3: PUSH2 0x42bd 000042b6: SWAP1 000042b7: DUP4 000042b8: DUP4 000042b9: PUSH2 0x4c68 000042bc: JUMP 000042bd: JUMPDEST 000042be: PUSH16 0xffffffffffffffffffffffffffffffff 000042cf: AND 000042d0: DUP4 000042d1: MSTORE 000042d2: PUSH1 0x60 000042d4: DUP4 000042d5: ADD 000042d6: MLOAD 000042d7: PUSH2 0x42ea 000042da: SWAP1 000042db: PUSH8 0xffffffffffffffff 000042e4: AND 000042e5: DUP4 000042e6: PUSH2 0x4ce2 000042e9: JUMP 000042ea: JUMPDEST 000042eb: PUSH8 0xffffffffffffffff 000042f4: SWAP1 000042f5: DUP2 000042f6: AND 000042f7: PUSH1 0x60 000042f9: DUP6 000042fa: ADD 000042fb: DUP2 000042fc: SWAP1 000042fd: MSTORE 000042fe: PUSH1 0x00 00004300: SWAP2 00004301: PUSH2 0x430d 00004304: SWAP2 00004305: SWAP1 00004306: DUP6 00004307: AND 00004308: SWAP1 00004309: PUSH2 0x4d45 0000430c: JUMP 0000430d: JUMPDEST 0000430e: SWAP1 0000430f: POP 00004310: PUSH1 0x00 00004312: PUSH2 0x4356 00004315: PUSH2 0x433d 00004318: DUP4 00004319: DUP8 0000431a: PUSH1 0x40 0000431c: ADD 0000431d: MLOAD 0000431e: PUSH16 0xffffffffffffffffffffffffffffffff 0000432f: AND 00004330: PUSH2 0x4d8d 00004333: SWAP1 00004334: SWAP2 00004335: SWAP1 00004336: PUSH4 0xffffffff 0000433b: AND 0000433c: JUMP 0000433d: JUMPDEST 0000433e: PUSH18 0xffffffffffffffffffffffffffffffffffff 00004351: AND 00004352: PUSH2 0x2eff 00004355: JUMP 00004356: JUMPDEST 00004357: SWAP1 00004358: POP 00004359: PUSH2 0x4362 0000435c: DUP3 0000435d: DUP3 0000435e: PUSH2 0x4db3 00004361: JUMP 00004362: JUMPDEST 00004363: DUP6 00004364: PUSH1 0x80 00004366: ADD 00004367: DUP2 00004368: DUP2 00004369: MLOAD 0000436a: PUSH2 0x4373 0000436d: SWAP2 0000436e: SWAP1 0000436f: PUSH2 0x5dc5 00004372: JUMP 00004373: JUMPDEST 00004374: PUSH8 0xffffffffffffffff 0000437d: AND 0000437e: SWAP1 0000437f: MSTORE 00004380: POP 00004381: PUSH1 0x20 00004383: DUP6 00004384: ADD 00004385: DUP1 00004386: MLOAD 00004387: DUP3 00004388: SWAP2 00004389: SWAP1 0000438a: PUSH2 0x2b16 0000438d: SWAP1 0000438e: DUP4 0000438f: SWAP1 00004390: PUSH2 0x5ab7 00004393: JUMP 00004394: JUMPDEST 00004395: PUSH1 0x00 00004397: PUSH16 0x80000000000000000000000000000000 000043a8: DUP3 000043a9: PUSH16 0xffffffffffffffffffffffffffffffff 000043ba: AND 000043bb: LT 000043bc: PUSH2 0x0ec4 000043bf: JUMPI 000043c0: PUSH1 0x00 000043c2: DUP1 000043c3: REVERT 000043c4: JUMPDEST 000043c5: PUSH1 0x00 000043c7: DUP1 000043c8: PUSH2 0x43d0 000043cb: DUP6 000043cc: PUSH2 0x3a68 000043cf: JUMP 000043d0: JUMPDEST 000043d1: SWAP1 000043d2: POP 000043d3: DUP4 000043d4: PUSH2 0x43eb 000043d7: JUMPI 000043d8: PUSH2 0x43e6 000043db: DUP2 000043dc: DUP7 000043dd: PUSH1 0x00 000043df: ADD 000043e0: MLOAD 000043e1: DUP6 000043e2: PUSH2 0x4e26 000043e5: JUMP 000043e6: JUMPDEST 000043e7: PUSH2 0x1025 000043ea: JUMP 000043eb: JUMPDEST 000043ec: PUSH2 0x1025 000043ef: DUP2 000043f0: DUP7 000043f1: PUSH1 0x00 000043f3: ADD 000043f4: MLOAD 000043f5: DUP6 000043f6: PUSH2 0x4e71 000043f9: JUMP 000043fa: JUMPDEST 000043fb: PUSH1 0x00 000043fd: DUP1 000043fe: PUSH1 0x00 00004400: PUSH2 0x4408 00004403: DUP7 00004404: PUSH2 0x3a68 00004407: JUMP 00004408: JUMPDEST 00004409: DUP7 0000440a: MLOAD 0000440b: SWAP1 0000440c: SWAP2 0000440d: POP 0000440e: PUSH1 0x00 00004410: SWAP1 00004411: PUSH2 0x442e 00004414: SWAP1 00004415: PUSH16 0xffffffffffffffffffffffffffffffff 00004426: DUP5 00004427: AND 00004428: SWAP1 00004429: DUP9 0000442a: PUSH2 0x4e71 0000442d: JUMP 0000442e: JUMPDEST 0000442f: DUP8 00004430: MLOAD 00004431: SWAP1 00004432: SWAP2 00004433: POP 00004434: PUSH1 0x00 00004436: SWAP1 00004437: PUSH2 0x4454 0000443a: SWAP1 0000443b: PUSH16 0xffffffffffffffffffffffffffffffff 0000444c: DUP6 0000444d: AND 0000444e: SWAP1 0000444f: DUP10 00004450: PUSH2 0x4e26 00004453: JUMP 00004454: JUMPDEST 00004455: SWAP1 00004456: POP 00004457: DUP6 00004458: ISZERO 00004459: PUSH2 0x4468 0000445c: JUMPI 0000445d: SWAP1 0000445e: SWAP4 0000445f: POP 00004460: SWAP2 00004461: POP 00004462: DUP3 00004463: DUP3 00004464: PUSH2 0x446f 00004467: JUMP 00004468: JUMPDEST 00004469: SWAP4 0000446a: POP 0000446b: SWAP2 0000446c: POP 0000446d: DUP2 0000446e: DUP4 0000446f: JUMPDEST 00004470: POP 00004471: POP 00004472: POP 00004473: SWAP4 00004474: POP 00004475: SWAP4 00004476: SWAP2 00004477: POP 00004478: POP 00004479: JUMP 0000447a: JUMPDEST 0000447b: PUSH1 0x00 0000447d: DUP1 0000447e: PUSH2 0x4489 00004481: DUP7 00004482: DUP7 00004483: DUP7 00004484: DUP7 00004485: PUSH2 0x4eb9 00004488: JUMP 00004489: JUMPDEST 0000448a: SWAP1 0000448b: SWAP3 0000448c: POP 0000448d: SWAP1 0000448e: POP 0000448f: PUSH2 0x4499 00004492: PUSH1 0x04 00004494: DUP4 00004495: PUSH2 0x5caf 00004498: JUMP 00004499: JUMPDEST 0000449a: SWAP2 0000449b: POP 0000449c: PUSH2 0x44a6 0000449f: PUSH1 0x04 000044a1: DUP3 000044a2: PUSH2 0x5caf 000044a5: JUMP 000044a6: JUMPDEST 000044a7: SWAP1 000044a8: POP 000044a9: SWAP5 000044aa: POP 000044ab: SWAP5 000044ac: SWAP3 000044ad: POP 000044ae: POP 000044af: POP 000044b0: JUMP 000044b1: JUMPDEST 000044b2: PUSH1 0x00 000044b4: DUP1 000044b5: PUSH1 0x00 000044b7: DUP1 000044b8: PUSH2 0x44c2 000044bb: DUP7 000044bc: DUP12 000044bd: DUP12 000044be: PUSH2 0x4f5c 000044c1: JUMP 000044c2: JUMPDEST 000044c3: SWAP1 000044c4: POP 000044c5: DUP8 000044c6: PUSH16 0xffffffffffffffffffffffffffffffff 000044d7: AND 000044d8: DUP2 000044d9: PUSH16 0xffffffffffffffffffffffffffffffff 000044ea: AND 000044eb: LT 000044ec: PUSH2 0x44f8 000044ef: JUMPI 000044f0: PUSH1 0x00 000044f2: SWAP2 000044f3: POP 000044f4: PUSH2 0x4505 000044f7: JUMP 000044f8: JUMPDEST 000044f9: PUSH2 0x4502 000044fc: DUP2 000044fd: DUP10 000044fe: PUSH2 0x5a8e 00004501: JUMP 00004502: JUMPDEST 00004503: SWAP2 00004504: POP 00004505: JUMPDEST 00004506: DUP10 00004507: PUSH2 0x4510 0000450a: JUMPI 0000450b: DUP5 0000450c: PUSH2 0x4512 0000450f: JUMP 00004510: JUMPDEST 00004511: DUP6 00004512: JUMPDEST 00004513: SWAP4 00004514: POP 00004515: DUP10 00004516: PUSH2 0x451f 00004519: JUMPI 0000451a: DUP6 0000451b: PUSH2 0x4521 0000451e: JUMP 0000451f: JUMPDEST 00004520: DUP5 00004521: JUMPDEST 00004522: PUSH16 0xffffffffffffffffffffffffffffffff 00004533: SWAP1 00004534: SWAP8 00004535: AND 00004536: SWAP1 00004537: SWAP11 00004538: MSTORE 00004539: SWAP2 0000453a: SWAP10 0000453b: SWAP5 0000453c: SWAP9 0000453d: POP 0000453e: SWAP1 0000453f: SWAP7 00004540: POP 00004541: SWAP3 00004542: SWAP5 00004543: POP 00004544: POP 00004545: POP 00004546: POP 00004547: POP 00004548: JUMP 00004549: JUMPDEST 0000454a: PUSH1 0x00 0000454c: DUP1 0000454d: PUSH1 0x00 0000454f: PUSH2 0x4557 00004552: DUP8 00004553: PUSH2 0x3a68 00004556: JUMP 00004557: JUMPDEST 00004558: SWAP1 00004559: POP 0000455a: PUSH2 0x456a 0000455d: DUP8 0000455e: PUSH1 0x00 00004560: ADD 00004561: MLOAD 00004562: DUP3 00004563: DUP9 00004564: DUP9 00004565: DUP9 00004566: PUSH2 0x4f92 00004569: JUMP 0000456a: JUMPDEST 0000456b: SWAP2 0000456c: POP 0000456d: DUP5 0000456e: ISZERO 0000456f: PUSH2 0x4597 00004572: JUMPI 00004573: DUP7 00004574: MLOAD 00004575: PUSH2 0x4592 00004578: SWAP1 00004579: PUSH16 0xffffffffffffffffffffffffffffffff 0000458a: DUP4 0000458b: AND 0000458c: SWAP1 0000458d: DUP5 0000458e: PUSH2 0x4e26 00004591: JUMP 00004592: JUMPDEST 00004593: PUSH2 0x45b7 00004596: JUMP 00004597: JUMPDEST 00004598: DUP7 00004599: MLOAD 0000459a: PUSH2 0x45b7 0000459d: SWAP1 0000459e: PUSH16 0xffffffffffffffffffffffffffffffff 000045af: DUP4 000045b0: AND 000045b1: SWAP1 000045b2: DUP5 000045b3: PUSH2 0x4e71 000045b6: JUMP 000045b7: JUMPDEST 000045b8: SWAP3 000045b9: POP 000045ba: POP 000045bb: SWAP5 000045bc: POP 000045bd: SWAP5 000045be: SWAP3 000045bf: POP 000045c0: POP 000045c1: POP 000045c2: JUMP 000045c3: JUMPDEST 000045c4: PUSH1 0x00 000045c6: DUP1 000045c7: PUSH2 0x45d2 000045ca: DUP7 000045cb: DUP7 000045cc: DUP7 000045cd: DUP7 000045ce: PUSH2 0x4eb9 000045d1: JUMP 000045d2: JUMPDEST 000045d3: SWAP1 000045d4: SWAP3 000045d5: POP 000045d6: SWAP1 000045d7: POP 000045d8: PUSH2 0x44a6 000045db: PUSH1 0x04 000045dd: DUP3 000045de: PUSH2 0x5caf 000045e1: JUMP 000045e2: JUMPDEST 000045e3: PUSH1 0x00 000045e5: DUP1 000045e6: DUP3 000045e7: PUSH1 0x00 000045e9: SIGNEXTEND 000045ea: SLT 000045eb: ISZERO 000045ec: PUSH2 0x45fb 000045ef: JUMPI 000045f0: DUP2 000045f1: PUSH1 0x00 000045f3: SIGNEXTEND 000045f4: PUSH1 0x80 000045f6: ADD 000045f7: PUSH2 0x0e37 000045fa: JUMP 000045fb: JUMPDEST 000045fc: POP 000045fd: PUSH1 0x80 000045ff: ADD 00004600: SWAP1 00004601: JUMP 00004602: JUMPDEST 00004603: PUSH1 0x00 00004605: PUSH1 0x80 00004607: DUP3 00004608: PUSH1 0xff 0000460a: AND 0000460b: LT 0000460c: PUSH2 0x4618 0000460f: JUMPI 00004610: PUSH1 0x80 00004612: DUP3 00004613: SUB 00004614: PUSH2 0x0e37 00004617: JUMP 00004618: JUMPDEST 00004619: POP 0000461a: PUSH1 0xff 0000461c: AND 0000461d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80 0000463e: ADD 0000463f: SWAP1 00004640: JUMP 00004641: JUMPDEST 00004642: PUSH1 0x00 00004644: DUP3 00004645: DUP3 00004646: PUSH1 0x40 00004648: MLOAD 00004649: PUSH1 0x20 0000464b: ADD 0000464c: PUSH2 0x0ef9 0000464f: SWAP3 00004650: SWAP2 00004651: SWAP1 00004652: SWAP2 00004653: DUP3 00004654: MSTORE 00004655: PUSH1 0xf8 00004657: SHL 00004658: PUSH1 0x20 0000465a: DUP3 0000465b: ADD 0000465c: MSTORE 0000465d: PUSH1 0x21 0000465f: ADD 00004660: SWAP1 00004661: JUMP 00004662: JUMPDEST 00004663: PUSH1 0x00 00004665: PUSH3 0x010002 00004669: PUSH1 0x00 0000466b: DUP5 0000466c: DUP5 0000466d: PUSH1 0x40 0000466f: MLOAD 00004670: PUSH1 0x20 00004672: ADD 00004673: PUSH2 0x4689 00004676: SWAP3 00004677: SWAP2 00004678: SWAP1 00004679: SWAP2 0000467a: DUP3 0000467b: MSTORE 0000467c: PUSH1 0xe8 0000467e: SHL 0000467f: PUSH1 0x20 00004681: DUP3 00004682: ADD 00004683: MSTORE 00004684: PUSH1 0x23 00004686: ADD 00004687: SWAP1 00004688: JUMP 00004689: JUMPDEST 0000468a: PUSH1 0x40 0000468c: MLOAD 0000468d: PUSH1 0x20 0000468f: DUP2 00004690: DUP4 00004691: SUB 00004692: SUB 00004693: DUP2 00004694: MSTORE 00004695: SWAP1 00004696: PUSH1 0x40 00004698: MSTORE 00004699: DUP1 0000469a: MLOAD 0000469b: SWAP1 0000469c: PUSH1 0x20 0000469e: ADD 0000469f: KECCAK256 000046a0: DUP2 000046a1: MSTORE 000046a2: PUSH1 0x20 000046a4: ADD 000046a5: SWAP1 000046a6: DUP2 000046a7: MSTORE 000046a8: PUSH1 0x20 000046aa: ADD 000046ab: PUSH1 0x00 000046ad: KECCAK256 000046ae: SWAP1 000046af: POP 000046b0: SWAP3 000046b1: SWAP2 000046b2: POP 000046b3: POP 000046b4: JUMP 000046b5: JUMPDEST 000046b6: PUSH1 0x00 000046b8: PUSH2 0x46c0 000046bb: DUP3 000046bc: PUSH2 0x502e 000046bf: JUMP 000046c0: JUMPDEST 000046c1: PUSH2 0x46c9 000046c4: DUP5 000046c5: PUSH2 0x502e 000046c8: JUMP 000046c9: JUMPDEST 000046ca: SUB 000046cb: SWAP4 000046cc: SWAP3 000046cd: POP 000046ce: POP 000046cf: POP 000046d0: JUMP 000046d1: JUMPDEST 000046d2: PUSH1 0x00 000046d4: PUSH7 0x01000000000000 000046dc: PUSH16 0xffffffffffffffffffffffffffffffff 000046ed: DUP1 000046ee: DUP6 000046ef: AND 000046f0: PUSH8 0xffffffffffffffff 000046f9: DUP6 000046fa: AND 000046fb: DUP4 000046fc: ADD 000046fd: MUL 000046fe: SWAP1 000046ff: PUSH1 0x30 00004701: DUP3 00004702: SWAP1 00004703: SHR 00004704: SWAP1 00004705: DUP2 00004706: GT 00004707: ISZERO 00004708: PUSH2 0x1025 0000470b: JUMPI 0000470c: PUSH16 0xffffffffffffffffffffffffffffffff 0000471d: SWAP4 0000471e: POP 0000471f: POP 00004720: POP 00004721: POP 00004722: PUSH2 0x0e37 00004725: JUMP 00004726: JUMPDEST 00004727: DUP1 00004728: DUP3 00004729: ADD 0000472a: PUSH16 0xffffffffffffffffffffffffffffffff 0000473b: DUP1 0000473c: DUP5 0000473d: AND 0000473e: SWAP1 0000473f: DUP3 00004740: AND 00004741: LT 00004742: ISZERO 00004743: PUSH2 0x0e37 00004746: JUMPI 00004747: PUSH1 0x00 00004749: DUP1 0000474a: REVERT 0000474b: JUMPDEST 0000474c: PUSH1 0x00 0000474e: PUSH16 0xffffffffffffffffffffffffffffffff 0000475f: DUP3 00004760: AND 00004761: PUSH24 0xffffffffffffffffffffffffffffffff0000000000000000 0000477a: PUSH1 0x40 0000477c: DUP6 0000477d: SWAP1 0000477e: SHL 0000477f: AND 00004780: DUP2 00004781: PUSH2 0x478c 00004784: JUMPI 00004785: PUSH2 0x478c 00004788: PUSH2 0x5a30 0000478b: JUMP 0000478c: JUMPDEST 0000478d: DIV 0000478e: SWAP4 0000478f: SWAP3 00004790: POP 00004791: POP 00004792: POP 00004793: JUMP 00004794: JUMPDEST 00004795: DUP2 00004796: PUSH16 0xffffffffffffffffffffffffffffffff 000047a7: AND 000047a8: DUP2 000047a9: PUSH16 0xffffffffffffffffffffffffffffffff 000047ba: AND 000047bb: LT 000047bc: ISZERO 000047bd: PUSH2 0x4822 000047c0: JUMPI 000047c1: PUSH1 0x40 000047c3: MLOAD 000047c4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000047e5: DUP2 000047e6: MSTORE 000047e7: PUSH1 0x20 000047e9: PUSH1 0x04 000047eb: DUP3 000047ec: ADD 000047ed: MSTORE 000047ee: PUSH1 0x02 000047f0: PUSH1 0x24 000047f2: DUP3 000047f3: ADD 000047f4: MSTORE 000047f5: PUSH32 0x4543000000000000000000000000000000000000000000000000000000000000 00004816: PUSH1 0x44 00004818: DUP3 00004819: ADD 0000481a: MSTORE 0000481b: PUSH1 0x64 0000481d: ADD 0000481e: PUSH2 0x10ea 00004821: JUMP 00004822: JUMPDEST 00004823: PUSH1 0x00 00004825: PUSH2 0x482e 00004828: DUP4 00004829: DUP4 0000482a: PUSH2 0x5a8e 0000482d: JUMP 0000482e: JUMPDEST 0000482f: SWAP1 00004830: POP 00004831: PUSH2 0x0bf7 00004834: DUP5 00004835: DUP3 00004836: PUSH2 0x2917 00004839: JUMP 0000483a: JUMPDEST 0000483b: PUSH2 0x125f 0000483e: DUP2 0000483f: DUP5 00004840: ADDRESS 00004841: DUP6 00004842: PUSH16 0xffffffffffffffffffffffffffffffff 00004853: AND 00004854: PUSH2 0x504a 00004857: JUMP 00004858: JUMPDEST 00004859: PUSH2 0x125f 0000485c: DUP4 0000485d: PUSH2 0x4866 00004860: DUP4 00004861: DUP6 00004862: PUSH2 0x5ab7 00004865: JUMP 00004866: JUMPDEST 00004867: PUSH16 0xffffffffffffffffffffffffffffffff 00004878: AND 00004879: PUSH2 0x2f79 0000487c: JUMP 0000487d: JUMPDEST 0000487e: PUSH1 0x40 00004880: DUP1 00004881: MLOAD 00004882: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004897: DUP5 00004898: DUP2 00004899: AND 0000489a: PUSH1 0x24 0000489c: DUP4 0000489d: ADD 0000489e: MSTORE 0000489f: PUSH1 0x44 000048a1: DUP1 000048a2: DUP4 000048a3: ADD 000048a4: DUP6 000048a5: SWAP1 000048a6: MSTORE 000048a7: DUP4 000048a8: MLOAD 000048a9: DUP1 000048aa: DUP5 000048ab: SUB 000048ac: SWAP1 000048ad: SWAP2 000048ae: ADD 000048af: DUP2 000048b0: MSTORE 000048b1: PUSH1 0x64 000048b3: SWAP1 000048b4: SWAP3 000048b5: ADD 000048b6: DUP4 000048b7: MSTORE 000048b8: PUSH1 0x20 000048ba: DUP3 000048bb: ADD 000048bc: DUP1 000048bd: MLOAD 000048be: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000048db: AND 000048dc: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 000048fd: OR 000048fe: SWAP1 000048ff: MSTORE 00004900: SWAP2 00004901: MLOAD 00004902: PUSH1 0x00 00004904: SWAP3 00004905: DUP4 00004906: SWAP3 00004907: SWAP1 00004908: DUP8 00004909: AND 0000490a: SWAP2 0000490b: PUSH2 0x4914 0000490e: SWAP2 0000490f: SWAP1 00004910: PUSH2 0x596c 00004913: JUMP 00004914: JUMPDEST 00004915: PUSH1 0x00 00004917: PUSH1 0x40 00004919: MLOAD 0000491a: DUP1 0000491b: DUP4 0000491c: SUB 0000491d: DUP2 0000491e: PUSH1 0x00 00004920: DUP7 00004921: GAS 00004922: CALL 00004923: SWAP2 00004924: POP 00004925: POP 00004926: RETURNDATASIZE 00004927: DUP1 00004928: PUSH1 0x00 0000492a: DUP2 0000492b: EQ 0000492c: PUSH2 0x4951 0000492f: JUMPI 00004930: PUSH1 0x40 00004932: MLOAD 00004933: SWAP2 00004934: POP 00004935: PUSH1 0x1f 00004937: NOT 00004938: PUSH1 0x3f 0000493a: RETURNDATASIZE 0000493b: ADD 0000493c: AND 0000493d: DUP3 0000493e: ADD 0000493f: PUSH1 0x40 00004941: MSTORE 00004942: RETURNDATASIZE 00004943: DUP3 00004944: MSTORE 00004945: RETURNDATASIZE 00004946: PUSH1 0x00 00004948: PUSH1 0x20 0000494a: DUP5 0000494b: ADD 0000494c: RETURNDATACOPY 0000494d: PUSH2 0x4956 00004950: JUMP 00004951: JUMPDEST 00004952: PUSH1 0x60 00004954: SWAP2 00004955: POP 00004956: JUMPDEST 00004957: POP 00004958: SWAP2 00004959: POP 0000495a: SWAP2 0000495b: POP 0000495c: DUP2 0000495d: DUP1 0000495e: ISZERO 0000495f: PUSH2 0x4980 00004962: JUMPI 00004963: POP 00004964: DUP1 00004965: MLOAD 00004966: ISZERO 00004967: DUP1 00004968: PUSH2 0x4980 0000496b: JUMPI 0000496c: POP 0000496d: DUP1 0000496e: DUP1 0000496f: PUSH1 0x20 00004971: ADD 00004972: SWAP1 00004973: MLOAD 00004974: DUP2 00004975: ADD 00004976: SWAP1 00004977: PUSH2 0x4980 0000497a: SWAP2 0000497b: SWAP1 0000497c: PUSH2 0x5de6 0000497f: JUMP 00004980: JUMPDEST 00004981: PUSH2 0x03f0 00004984: JUMPI 00004985: PUSH1 0x40 00004987: MLOAD 00004988: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000049a9: DUP2 000049aa: MSTORE 000049ab: PUSH1 0x20 000049ad: PUSH1 0x04 000049af: DUP3 000049b0: ADD 000049b1: MSTORE 000049b2: PUSH1 0x02 000049b4: PUSH1 0x24 000049b6: DUP3 000049b7: ADD 000049b8: MSTORE 000049b9: PUSH32 0x5446000000000000000000000000000000000000000000000000000000000000 000049da: PUSH1 0x44 000049dc: DUP3 000049dd: ADD 000049de: MSTORE 000049df: PUSH1 0x64 000049e1: ADD 000049e2: PUSH2 0x10ea 000049e5: JUMP 000049e6: JUMPDEST 000049e7: PUSH1 0x00 000049e9: DUP6 000049ea: PUSH16 0xffffffffffffffffffffffffffffffff 000049fb: AND 000049fc: PUSH1 0x00 000049fe: SUB 000049ff: PUSH2 0x4a0a 00004a02: JUMPI 00004a03: POP 00004a04: PUSH1 0x00 00004a06: PUSH2 0x1025 00004a09: JUMP 00004a0a: JUMPDEST 00004a0b: PUSH1 0x00 00004a0d: PUSH2 0x4a18 00004a10: DUP8 00004a11: DUP8 00004a12: DUP6 00004a13: ISZERO 00004a14: PUSH2 0x4aff 00004a17: JUMP 00004a18: JUMPDEST 00004a19: PUSH16 0xffffffffffffffffffffffffffffffff 00004a2a: AND 00004a2b: SWAP1 00004a2c: POP 00004a2d: PUSH1 0x00 00004a2f: PUSH2 0x4a39 00004a32: DUP9 00004a33: DUP9 00004a34: DUP7 00004a35: PUSH2 0x4aff 00004a38: JUMP 00004a39: JUMPDEST 00004a3a: PUSH16 0xffffffffffffffffffffffffffffffff 00004a4b: AND 00004a4c: SWAP1 00004a4d: POP 00004a4e: PUSH1 0x00 00004a50: DUP5 00004a51: ISZERO 00004a52: ISZERO 00004a53: DUP7 00004a54: ISZERO 00004a55: ISZERO 00004a56: EQ 00004a57: PUSH2 0x4a74 00004a5a: JUMPI 00004a5b: DUP7 00004a5c: PUSH16 0xffffffffffffffffffffffffffffffff 00004a6d: AND 00004a6e: DUP3 00004a6f: SUB 00004a70: PUSH2 0x4a8a 00004a73: JUMP 00004a74: JUMPDEST 00004a75: DUP7 00004a76: PUSH16 0xffffffffffffffffffffffffffffffff 00004a87: AND 00004a88: DUP3 00004a89: ADD 00004a8a: JUMPDEST 00004a8b: SWAP1 00004a8c: POP 00004a8d: DUP1 00004a8e: PUSH1 0x00 00004a90: SUB 00004a91: PUSH2 0x4aaf 00004a94: JUMPI 00004a95: PUSH16 0xffffffffffffffffffffffffffffffff 00004aa6: SWAP4 00004aa7: POP 00004aa8: POP 00004aa9: POP 00004aaa: POP 00004aab: PUSH2 0x1025 00004aae: JUMP 00004aaf: JUMPDEST 00004ab0: PUSH1 0x00 00004ab2: DUP2 00004ab3: PUSH16 0xffffffffffffffffffffffffffffffff 00004ac4: DUP12 00004ac5: AND 00004ac6: DUP1 00004ac7: MUL 00004ac8: DUP2 00004ac9: PUSH2 0x4ad4 00004acc: JUMPI 00004acd: PUSH2 0x4ad4 00004ad0: PUSH2 0x5a30 00004ad3: JUMP 00004ad4: JUMPDEST 00004ad5: DIV 00004ad6: SWAP1 00004ad7: POP 00004ad8: PUSH2 0x4af1 00004adb: DUP5 00004adc: DUP3 00004add: GT 00004ade: PUSH2 0x4ae9 00004ae1: JUMPI 00004ae2: DUP2 00004ae3: DUP6 00004ae4: SUB 00004ae5: PUSH2 0x2eff 00004ae8: JUMP 00004ae9: JUMPDEST 00004aea: DUP5 00004aeb: DUP3 00004aec: SUB 00004aed: PUSH2 0x2eff 00004af0: JUMP 00004af1: JUMPDEST 00004af2: SWAP11 00004af3: SWAP10 00004af4: POP 00004af5: POP 00004af6: POP 00004af7: POP 00004af8: POP 00004af9: POP 00004afa: POP 00004afb: POP 00004afc: POP 00004afd: POP 00004afe: JUMP 00004aff: JUMPDEST 00004b00: PUSH1 0x00 00004b02: PUSH2 0x19cb 00004b05: DUP3 00004b06: PUSH2 0x4b32 00004b09: JUMPI 00004b0a: PUSH2 0x4b13 00004b0d: DUP6 00004b0e: DUP6 00004b0f: PUSH2 0x474b 00004b12: JUMP 00004b13: JUMPDEST 00004b14: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff 00004b2d: AND 00004b2e: PUSH2 0x2eff 00004b31: JUMP 00004b32: JUMPDEST 00004b33: PUSH16 0xffffffffffffffffffffffffffffffff 00004b44: DUP1 00004b45: DUP7 00004b46: AND 00004b47: SWAP1 00004b48: DUP6 00004b49: AND 00004b4a: MUL 00004b4b: PUSH1 0x40 00004b4d: SHR 00004b4e: PUSH2 0x4b13 00004b51: JUMP 00004b52: JUMPDEST 00004b53: PUSH1 0x00 00004b55: PUSH16 0xffffffffffffffffffffffffffffffff 00004b66: DUP4 00004b67: AND 00004b68: ISZERO 00004b69: DUP1 00004b6a: PUSH2 0x4b96 00004b6d: JUMPI 00004b6e: POP 00004b6f: DUP3 00004b70: PUSH16 0xffffffffffffffffffffffffffffffff 00004b81: AND 00004b82: DUP3 00004b83: PUSH16 0xffffffffffffffffffffffffffffffff 00004b94: AND 00004b95: GT 00004b96: JUMPDEST 00004b97: ISZERO 00004b98: PUSH2 0x4ba3 00004b9b: JUMPI 00004b9c: POP 00004b9d: PUSH1 0x00 00004b9f: PUSH2 0x0e37 00004ba2: JUMP 00004ba3: JUMPDEST 00004ba4: PUSH1 0x00 00004ba6: PUSH2 0x4baf 00004ba9: DUP4 00004baa: DUP6 00004bab: PUSH2 0x5ab7 00004bae: JUMP 00004baf: JUMPDEST 00004bb0: SWAP1 00004bb1: POP 00004bb2: PUSH1 0x00 00004bb4: PUSH2 0x4bcf 00004bb7: PUSH16 0xffffffffffffffffffffffffffffffff 00004bc8: DUP4 00004bc9: AND 00004bca: DUP7 00004bcb: PUSH2 0x51bb 00004bce: JUMP 00004bcf: JUMPDEST 00004bd0: SWAP1 00004bd1: POP 00004bd2: PUSH2 0x4be4 00004bd5: DUP2 00004bd6: PUSH8 0xffffffffffffffff 00004bdf: AND 00004be0: PUSH2 0x5284 00004be3: JUMP 00004be4: JUMPDEST 00004be5: SWAP3 00004be6: POP 00004be7: PUSH7 0x01000000000000 00004bef: DUP4 00004bf0: PUSH8 0xffffffffffffffff 00004bf9: AND 00004bfa: LT 00004bfb: PUSH2 0x4c60 00004bfe: JUMPI 00004bff: PUSH1 0x40 00004c01: MLOAD 00004c02: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00004c23: DUP2 00004c24: MSTORE 00004c25: PUSH1 0x20 00004c27: PUSH1 0x04 00004c29: DUP3 00004c2a: ADD 00004c2b: MSTORE 00004c2c: PUSH1 0x02 00004c2e: PUSH1 0x24 00004c30: DUP3 00004c31: ADD 00004c32: MSTORE 00004c33: PUSH32 0x4946000000000000000000000000000000000000000000000000000000000000 00004c54: PUSH1 0x44 00004c56: DUP3 00004c57: ADD 00004c58: MSTORE 00004c59: PUSH1 0x64 00004c5b: ADD 00004c5c: PUSH2 0x10ea 00004c5f: JUMP 00004c60: JUMPDEST 00004c61: POP 00004c62: POP 00004c63: SWAP3 00004c64: SWAP2 00004c65: POP 00004c66: POP 00004c67: JUMP 00004c68: JUMPDEST 00004c69: PUSH1 0x00 00004c6b: PUSH7 0x01000000000000 00004c73: PUSH8 0xffffffffffffffff 00004c7c: DUP5 00004c7d: AND 00004c7e: DUP2 00004c7f: ADD 00004c80: DUP4 00004c81: ISZERO 00004c82: PUSH2 0x4cab 00004c85: JUMPI 00004c86: PUSH16 0xffffffffffffffffffffffffffffffff 00004c97: DUP7 00004c98: AND 00004c99: DUP2 00004c9a: MUL 00004c9b: PUSH1 0x30 00004c9d: DUP2 00004c9e: SWAP1 00004c9f: SHR 00004ca0: PUSH2 0x3af6 00004ca3: PUSH1 0x01 00004ca5: DUP3 00004ca6: ADD 00004ca7: PUSH2 0x2eff 00004caa: JUMP 00004cab: JUMPDEST 00004cac: PUSH22 0xffffffffffffffffffffffffffffffff000000000000 00004cc3: PUSH1 0x30 00004cc5: DUP8 00004cc6: SWAP1 00004cc7: SHL 00004cc8: AND 00004cc9: DUP2 00004cca: DUP2 00004ccb: DUP2 00004ccc: PUSH2 0x4cd7 00004ccf: JUMPI 00004cd0: PUSH2 0x4cd7 00004cd3: PUSH2 0x5a30 00004cd6: JUMP 00004cd7: JUMPDEST 00004cd8: DIV 00004cd9: SWAP4 00004cda: POP 00004cdb: POP 00004cdc: POP 00004cdd: POP 00004cde: PUSH2 0x05f5 00004ce1: JUMP 00004ce2: JUMPDEST 00004ce3: PUSH1 0x00 00004ce5: PUSH7 0x01000000000000 00004ced: PUSH8 0xffffffffffffffff 00004cf6: DUP5 00004cf7: DUP2 00004cf8: AND 00004cf9: DUP3 00004cfa: ADD 00004cfb: DUP2 00004cfc: DUP6 00004cfd: AND 00004cfe: DUP4 00004cff: ADD 00004d00: MUL 00004d01: SWAP1 00004d02: PUSH1 0x30 00004d04: DUP3 00004d05: SWAP1 00004d06: SHR 00004d07: SWAP1 00004d08: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 00004d29: DUP3 00004d2a: ADD 00004d2b: SWAP1 00004d2c: DUP2 00004d2d: LT 00004d2e: PUSH2 0x073e 00004d31: JUMPI 00004d32: PUSH8 0xffffffffffffffff 00004d3b: SWAP5 00004d3c: POP 00004d3d: POP 00004d3e: POP 00004d3f: POP 00004d40: POP 00004d41: PUSH2 0x0e37 00004d44: JUMP 00004d45: JUMPDEST 00004d46: PUSH1 0x00 00004d48: PUSH7 0x01000000000000 00004d50: PUSH8 0xffffffffffffffff 00004d59: DUP4 00004d5a: AND 00004d5b: DUP2 00004d5c: ADD 00004d5d: PUSH14 0xffffffffffffffff000000000000 00004d6c: PUSH1 0x30 00004d6e: DUP7 00004d6f: SWAP1 00004d70: SHL 00004d71: AND 00004d72: DUP4 00004d73: DUP3 00004d74: DUP3 00004d75: DUP2 00004d76: PUSH2 0x4d81 00004d79: JUMPI 00004d7a: PUSH2 0x4d81 00004d7d: PUSH2 0x5a30 00004d80: JUMP 00004d81: JUMPDEST 00004d82: DIV 00004d83: SWAP8 00004d84: SWAP7 00004d85: POP 00004d86: POP 00004d87: POP 00004d88: POP 00004d89: POP 00004d8a: POP 00004d8b: POP 00004d8c: JUMP 00004d8d: JUMPDEST 00004d8e: PUSH8 0xffffffffffffffff 00004d97: AND 00004d98: PUSH16 0xffffffffffffffffffffffffffffffff 00004da9: SWAP2 00004daa: SWAP1 00004dab: SWAP2 00004dac: AND 00004dad: MUL 00004dae: PUSH1 0x30 00004db0: SHR 00004db1: SWAP1 00004db2: JUMP 00004db3: JUMPDEST 00004db4: PUSH1 0x00 00004db6: DUP2 00004db7: PUSH16 0xffffffffffffffffffffffffffffffff 00004dc8: AND 00004dc9: PUSH1 0x00 00004dcb: SUB 00004dcc: PUSH2 0x4dd7 00004dcf: JUMPI 00004dd0: POP 00004dd1: PUSH1 0x00 00004dd3: PUSH2 0x0e37 00004dd6: JUMP 00004dd7: JUMPDEST 00004dd8: PUSH2 0x4de2 00004ddb: DUP3 00004ddc: PUSH1 0x01 00004dde: PUSH2 0x5ab7 00004de1: JUMP 00004de2: JUMPDEST 00004de3: PUSH16 0xffffffffffffffffffffffffffffffff 00004df4: AND 00004df5: DUP3 00004df6: PUSH16 0xffffffffffffffffffffffffffffffff 00004e07: AND 00004e08: DUP5 00004e09: PUSH8 0xffffffffffffffff 00004e12: AND 00004e13: PUSH2 0x4e1c 00004e16: SWAP2 00004e17: SWAP1 00004e18: PUSH2 0x5e03 00004e1b: JUMP 00004e1c: JUMPDEST 00004e1d: PUSH2 0x05f5 00004e20: SWAP2 00004e21: SWAP1 00004e22: PUSH2 0x5e1a 00004e25: JUMP 00004e26: JUMPDEST 00004e27: PUSH1 0x00 00004e29: DUP3 00004e2a: PUSH16 0xffffffffffffffffffffffffffffffff 00004e3b: AND 00004e3c: DUP3 00004e3d: PUSH16 0xffffffffffffffffffffffffffffffff 00004e4e: AND 00004e4f: GT 00004e50: ISZERO 00004e51: PUSH2 0x4e66 00004e54: JUMPI 00004e55: PUSH2 0x4e5f 00004e58: DUP5 00004e59: DUP4 00004e5a: DUP6 00004e5b: PUSH2 0x52c8 00004e5e: JUMP 00004e5f: JUMPDEST 00004e60: SWAP1 00004e61: POP 00004e62: PUSH2 0x05f5 00004e65: JUMP 00004e66: JUMPDEST 00004e67: PUSH2 0x4e5f 00004e6a: DUP5 00004e6b: DUP5 00004e6c: DUP5 00004e6d: PUSH2 0x52c8 00004e70: JUMP 00004e71: JUMPDEST 00004e72: PUSH1 0x00 00004e74: DUP1 00004e75: DUP3 00004e76: PUSH16 0xffffffffffffffffffffffffffffffff 00004e87: AND 00004e88: DUP5 00004e89: PUSH16 0xffffffffffffffffffffffffffffffff 00004e9a: AND 00004e9b: GT 00004e9c: PUSH2 0x4ea7 00004e9f: JUMPI 00004ea0: DUP4 00004ea1: DUP4 00004ea2: SUB 00004ea3: PUSH2 0x4eab 00004ea6: JUMP 00004ea7: JUMPDEST 00004ea8: DUP3 00004ea9: DUP5 00004eaa: SUB 00004eab: JUMPDEST 00004eac: SWAP1 00004ead: POP 00004eae: PUSH2 0x1025 00004eb1: DUP6 00004eb2: DUP3 00004eb3: PUSH1 0x01 00004eb5: PUSH2 0x4aff 00004eb8: JUMP 00004eb9: JUMPDEST 00004eba: PUSH1 0x00 00004ebc: DUP1 00004ebd: DUP3 00004ebe: ISZERO 00004ebf: ISZERO 00004ec0: DUP5 00004ec1: ISZERO 00004ec2: ISZERO 00004ec3: SUB 00004ec4: PUSH2 0x4f10 00004ec7: JUMPI 00004ec8: PUSH2 0x4ee2 00004ecb: DUP7 00004ecc: PUSH16 0xffffffffffffffffffffffffffffffff 00004edd: AND 00004ede: PUSH2 0x4394 00004ee1: JUMP 00004ee2: JUMPDEST 00004ee3: PUSH2 0x4efd 00004ee6: DUP7 00004ee7: PUSH16 0xffffffffffffffffffffffffffffffff 00004ef8: AND 00004ef9: PUSH2 0x4394 00004efc: JUMP 00004efd: JUMPDEST 00004efe: PUSH2 0x4f06 00004f01: SWAP1 00004f02: PUSH2 0x5bd5 00004f05: JUMP 00004f06: JUMPDEST 00004f07: SWAP1 00004f08: SWAP3 00004f09: POP 00004f0a: SWAP1 00004f0b: POP 00004f0c: PUSH2 0x2c5c 00004f0f: JUMP 00004f10: JUMPDEST 00004f11: PUSH2 0x4f2b 00004f14: DUP7 00004f15: PUSH16 0xffffffffffffffffffffffffffffffff 00004f26: AND 00004f27: PUSH2 0x4394 00004f2a: JUMP 00004f2b: JUMPDEST 00004f2c: PUSH2 0x4f34 00004f2f: SWAP1 00004f30: PUSH2 0x5bd5 00004f33: JUMP 00004f34: JUMPDEST 00004f35: PUSH2 0x4f4f 00004f38: DUP7 00004f39: PUSH16 0xffffffffffffffffffffffffffffffff 00004f4a: AND 00004f4b: PUSH2 0x4394 00004f4e: JUMP 00004f4f: JUMPDEST 00004f50: SWAP1 00004f51: SWAP8 00004f52: SWAP1 00004f53: SWAP7 00004f54: POP 00004f55: SWAP5 00004f56: POP 00004f57: POP 00004f58: POP 00004f59: POP 00004f5a: POP 00004f5b: JUMP 00004f5c: JUMPDEST 00004f5d: PUSH1 0x00 00004f5f: DUP1 00004f60: DUP3 00004f61: ISZERO 00004f62: ISZERO 00004f63: DUP5 00004f64: ISZERO 00004f65: ISZERO 00004f66: EQ 00004f67: PUSH2 0x4f78 00004f6a: JUMPI 00004f6b: PUSH2 0x4f73 00004f6e: DUP6 00004f6f: PUSH2 0x5bd5 00004f72: JUMP 00004f73: JUMPDEST 00004f74: PUSH2 0x4f7a 00004f77: JUMP 00004f78: JUMPDEST 00004f79: DUP5 00004f7a: JUMPDEST 00004f7b: SWAP1 00004f7c: POP 00004f7d: PUSH1 0x00 00004f7f: DUP2 00004f80: PUSH1 0x0f 00004f82: SIGNEXTEND 00004f83: SLT 00004f84: ISZERO 00004f85: PUSH2 0x19cb 00004f88: JUMPI 00004f89: PUSH1 0x00 00004f8b: SWAP2 00004f8c: POP 00004f8d: POP 00004f8e: PUSH2 0x05f5 00004f91: JUMP 00004f92: JUMPDEST 00004f93: PUSH1 0x00 00004f95: DUP1 00004f96: DUP4 00004f97: PUSH2 0x4fab 00004f9a: JUMPI 00004f9b: PUSH2 0x4fa6 00004f9e: DUP8 00004f9f: DUP8 00004fa0: DUP8 00004fa1: DUP7 00004fa2: PUSH2 0x5347 00004fa5: JUMP 00004fa6: JUMPDEST 00004fa7: PUSH2 0x4fb7 00004faa: JUMP 00004fab: JUMPDEST 00004fac: PUSH2 0x4fb7 00004faf: DUP8 00004fb0: DUP8 00004fb1: DUP8 00004fb2: DUP7 00004fb3: PUSH2 0x53ae 00004fb6: JUMP 00004fb7: JUMPDEST 00004fb8: SWAP1 00004fb9: POP 00004fba: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472 00004fcb: PUSH16 0xffffffffffffffffffffffffffffffff 00004fdc: DUP3 00004fdd: AND 00004fde: LT 00004fdf: PUSH2 0x5005 00004fe2: JUMPI 00004fe3: PUSH2 0x4ffd 00004fe6: PUSH1 0x01 00004fe8: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472 00004ff9: PUSH2 0x5a8e 00004ffc: JUMP 00004ffd: JUMPDEST 00004ffe: SWAP2 00004fff: POP 00005000: POP 00005001: PUSH2 0x1025 00005004: JUMP 00005005: JUMPDEST 00005006: PUSH3 0x010002 0000500a: PUSH16 0xffffffffffffffffffffffffffffffff 0000501b: DUP3 0000501c: AND 0000501d: LT 0000501e: ISZERO 0000501f: PUSH2 0x073e 00005022: JUMPI 00005023: PUSH3 0x010002 00005027: SWAP2 00005028: POP 00005029: POP 0000502a: PUSH2 0x1025 0000502d: JUMP 0000502e: JUMPDEST 0000502f: PUSH1 0x00 00005031: PUSH1 0x0a 00005033: DUP3 00005034: SWAP1 00005035: SHL 00005036: PUSH14 0x03fffffffffffffffffffffff800 00005045: AND 00005046: PUSH2 0x0e37 00005049: JUMP 0000504a: JUMPDEST 0000504b: PUSH1 0x40 0000504d: DUP1 0000504e: MLOAD 0000504f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00005064: DUP6 00005065: DUP2 00005066: AND 00005067: PUSH1 0x24 00005069: DUP4 0000506a: ADD 0000506b: MSTORE 0000506c: DUP5 0000506d: DUP2 0000506e: AND 0000506f: PUSH1 0x44 00005071: DUP4 00005072: ADD 00005073: MSTORE 00005074: PUSH1 0x64 00005076: DUP1 00005077: DUP4 00005078: ADD 00005079: DUP6 0000507a: SWAP1 0000507b: MSTORE 0000507c: DUP4 0000507d: MLOAD 0000507e: DUP1 0000507f: DUP5 00005080: SUB 00005081: SWAP1 00005082: SWAP2 00005083: ADD 00005084: DUP2 00005085: MSTORE 00005086: PUSH1 0x84 00005088: SWAP1 00005089: SWAP3 0000508a: ADD 0000508b: DUP4 0000508c: MSTORE 0000508d: PUSH1 0x20 0000508f: DUP3 00005090: ADD 00005091: DUP1 00005092: MLOAD 00005093: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000050b0: AND 000050b1: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 000050d2: OR 000050d3: SWAP1 000050d4: MSTORE 000050d5: SWAP2 000050d6: MLOAD 000050d7: PUSH1 0x00 000050d9: SWAP3 000050da: DUP4 000050db: SWAP3 000050dc: SWAP1 000050dd: DUP9 000050de: AND 000050df: SWAP2 000050e0: PUSH2 0x50e9 000050e3: SWAP2 000050e4: SWAP1 000050e5: PUSH2 0x596c 000050e8: JUMP 000050e9: JUMPDEST 000050ea: PUSH1 0x00 000050ec: PUSH1 0x40 000050ee: MLOAD 000050ef: DUP1 000050f0: DUP4 000050f1: SUB 000050f2: DUP2 000050f3: PUSH1 0x00 000050f5: DUP7 000050f6: GAS 000050f7: CALL 000050f8: SWAP2 000050f9: POP 000050fa: POP 000050fb: RETURNDATASIZE 000050fc: DUP1 000050fd: PUSH1 0x00 000050ff: DUP2 00005100: EQ 00005101: PUSH2 0x5126 00005104: JUMPI 00005105: PUSH1 0x40 00005107: MLOAD 00005108: SWAP2 00005109: POP 0000510a: PUSH1 0x1f 0000510c: NOT 0000510d: PUSH1 0x3f 0000510f: RETURNDATASIZE 00005110: ADD 00005111: AND 00005112: DUP3 00005113: ADD 00005114: PUSH1 0x40 00005116: MSTORE 00005117: RETURNDATASIZE 00005118: DUP3 00005119: MSTORE 0000511a: RETURNDATASIZE 0000511b: PUSH1 0x00 0000511d: PUSH1 0x20 0000511f: DUP5 00005120: ADD 00005121: RETURNDATACOPY 00005122: PUSH2 0x512b 00005125: JUMP 00005126: JUMPDEST 00005127: PUSH1 0x60 00005129: SWAP2 0000512a: POP 0000512b: JUMPDEST 0000512c: POP 0000512d: SWAP2 0000512e: POP 0000512f: SWAP2 00005130: POP 00005131: DUP2 00005132: DUP1 00005133: ISZERO 00005134: PUSH2 0x5155 00005137: JUMPI 00005138: POP 00005139: DUP1 0000513a: MLOAD 0000513b: ISZERO 0000513c: DUP1 0000513d: PUSH2 0x5155 00005140: JUMPI 00005141: POP 00005142: DUP1 00005143: DUP1 00005144: PUSH1 0x20 00005146: ADD 00005147: SWAP1 00005148: MLOAD 00005149: DUP2 0000514a: ADD 0000514b: SWAP1 0000514c: PUSH2 0x5155 0000514f: SWAP2 00005150: SWAP1 00005151: PUSH2 0x5de6 00005154: JUMP 00005155: JUMPDEST 00005156: PUSH2 0x162f 00005159: JUMPI 0000515a: PUSH1 0x40 0000515c: MLOAD 0000515d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000517e: DUP2 0000517f: MSTORE 00005180: PUSH1 0x20 00005182: PUSH1 0x04 00005184: DUP3 00005185: ADD 00005186: MSTORE 00005187: PUSH1 0x02 00005189: PUSH1 0x24 0000518b: DUP3 0000518c: ADD 0000518d: MSTORE 0000518e: PUSH32 0x5446000000000000000000000000000000000000000000000000000000000000 000051af: PUSH1 0x44 000051b1: DUP3 000051b2: ADD 000051b3: MSTORE 000051b4: PUSH1 0x64 000051b6: ADD 000051b7: PUSH2 0x10ea 000051ba: JUMP 000051bb: JUMPDEST 000051bc: PUSH1 0x00 000051be: PUSH26 0xffffffffffffffffffffffffffffffffffffffffffffffffffff 000051d9: PUSH16 0xffffffffffffffffffffffffffffffff 000051ea: DUP5 000051eb: AND 000051ec: LT 000051ed: DUP1 000051ee: ISZERO 000051ef: PUSH2 0x521c 000051f2: JUMPI 000051f3: POP 000051f4: DUP2 000051f5: PUSH16 0xffffffffffffffffffffffffffffffff 00005206: AND 00005207: DUP4 00005208: PUSH16 0xffffffffffffffffffffffffffffffff 00005219: AND 0000521a: LT 0000521b: ISZERO 0000521c: JUMPDEST 0000521d: PUSH2 0x5225 00005220: JUMPI 00005221: PUSH1 0x00 00005223: DUP1 00005224: REVERT 00005225: JUMPDEST 00005226: PUSH7 0x01000000000000 0000522e: PUSH22 0xffffffffffffffffffffffffffffffff000000000000 00005245: PUSH1 0x30 00005247: DUP6 00005248: SWAP1 00005249: SHL 0000524a: AND 0000524b: PUSH1 0x00 0000524d: DUP3 0000524e: PUSH16 0xffffffffffffffffffffffffffffffff 0000525f: DUP7 00005260: AND 00005261: DUP4 00005262: DUP2 00005263: PUSH2 0x526e 00005266: JUMPI 00005267: PUSH2 0x526e 0000526a: PUSH2 0x5a30 0000526d: JUMP 0000526e: JUMPDEST 0000526f: DIV 00005270: SUB 00005271: SWAP1 00005272: POP 00005273: DUP3 00005274: DUP2 00005275: LT 00005276: PUSH2 0x1025 00005279: JUMPI 0000527a: DUP3 0000527b: SWAP4 0000527c: POP 0000527d: POP 0000527e: POP 0000527f: POP 00005280: PUSH2 0x0e37 00005283: JUMP 00005284: JUMPDEST 00005285: PUSH1 0x00 00005287: PUSH7 0x01000000000000 0000528f: DUP3 00005290: PUSH8 0xffffffffffffffff 00005299: AND 0000529a: LT 0000529b: PUSH2 0x52a3 0000529e: JUMPI 0000529f: PUSH1 0x00 000052a1: DUP1 000052a2: REVERT 000052a3: JUMPDEST 000052a4: POP 000052a5: PUSH8 0xffffffffffffffff 000052ae: DUP2 000052af: AND 000052b0: DUP1 000052b1: MUL 000052b2: PUSH1 0x33 000052b4: SHR 000052b5: PUSH1 0x01 000052b7: SWAP2 000052b8: SWAP1 000052b9: SWAP2 000052ba: SHR 000052bb: PUSH8 0x7fffffffffffffff 000052c4: AND 000052c5: SUB 000052c6: SWAP1 000052c7: JUMP 000052c8: JUMPDEST 000052c9: PUSH1 0x00 000052cb: DUP1 000052cc: PUSH2 0x52d5 000052cf: DUP4 000052d0: DUP6 000052d1: PUSH2 0x5a8e 000052d4: JUMP 000052d5: JUMPDEST 000052d6: SWAP1 000052d7: POP 000052d8: PUSH1 0x00 000052da: PUSH2 0x52e3 000052dd: DUP7 000052de: DUP6 000052df: PUSH2 0x474b 000052e2: JUMP 000052e3: JUMPDEST 000052e4: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff 000052fd: AND 000052fe: SWAP1 000052ff: POP 00005300: PUSH1 0x00 00005302: DUP6 00005303: PUSH16 0xffffffffffffffffffffffffffffffff 00005314: AND 00005315: DUP4 00005316: PUSH16 0xffffffffffffffffffffffffffffffff 00005327: AND 00005328: DUP4 00005329: PUSH2 0x5332 0000532c: SWAP2 0000532d: SWAP1 0000532e: PUSH2 0x5e03 00005331: JUMP 00005332: JUMPDEST 00005333: PUSH2 0x533c 00005336: SWAP2 00005337: SWAP1 00005338: PUSH2 0x5e1a 0000533b: JUMP 0000533c: JUMPDEST 0000533d: SWAP1 0000533e: POP 0000533f: PUSH2 0x3d19 00005342: DUP2 00005343: PUSH2 0x2eff 00005346: JUMP 00005347: JUMPDEST 00005348: PUSH1 0x00 0000534a: DUP1 0000534b: PUSH2 0x5353 0000534e: DUP7 0000534f: PUSH2 0x549f 00005352: JUMP 00005353: JUMPDEST 00005354: SWAP1 00005355: POP 00005356: PUSH1 0x00 00005358: PUSH2 0x5364 0000535b: DUP3 0000535c: DUP8 0000535d: DUP8 0000535e: DUP8 0000535f: ISZERO 00005360: PUSH2 0x53ae 00005363: JUMP 00005364: JUMPDEST 00005365: SWAP1 00005366: POP 00005367: DUP1 00005368: PUSH16 0xffffffffffffffffffffffffffffffff 00005379: AND 0000537a: PUSH1 0x00 0000537c: SUB 0000537d: PUSH2 0x539a 00005380: JUMPI 00005381: PUSH16 0x0ffff5433e2b3d8211706e6102aa9472 00005392: SWAP3 00005393: POP 00005394: POP 00005395: POP 00005396: PUSH2 0x19cb 00005399: JUMP 0000539a: JUMPDEST 0000539b: PUSH2 0x53a3 0000539e: DUP2 0000539f: PUSH2 0x549f 000053a2: JUMP 000053a3: JUMPDEST 000053a4: PUSH2 0x3a5d 000053a7: SWAP1 000053a8: PUSH1 0x01 000053aa: PUSH2 0x5ab7 000053ad: JUMP 000053ae: JUMPDEST 000053af: PUSH1 0x00 000053b1: DUP4 000053b2: PUSH16 0xffffffffffffffffffffffffffffffff 000053c3: AND 000053c4: PUSH1 0x00 000053c6: SUB 000053c7: PUSH2 0x53e1 000053ca: JUMPI 000053cb: POP 000053cc: PUSH16 0xffffffffffffffffffffffffffffffff 000053dd: PUSH2 0x19cb 000053e0: JUMP 000053e1: JUMPDEST 000053e2: PUSH1 0x00 000053e4: PUSH2 0x53ed 000053e7: DUP5 000053e8: DUP7 000053e9: PUSH2 0x474b 000053ec: JUMP 000053ed: JUMPDEST 000053ee: SWAP1 000053ef: POP 000053f0: PUSH16 0xffffffffffffffffffffffffffffffff 00005401: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff 0000541a: DUP3 0000541b: AND 0000541c: GT 0000541d: ISZERO 0000541e: PUSH2 0x543a 00005421: JUMPI 00005422: PUSH16 0xffffffffffffffffffffffffffffffff 00005433: SWAP2 00005434: POP 00005435: POP 00005436: PUSH2 0x19cb 00005439: JUMP 0000543a: JUMPDEST 0000543b: DUP1 0000543c: DUP4 0000543d: ISZERO 0000543e: PUSH2 0x5454 00005441: JUMPI 00005442: PUSH2 0x544b 00005445: DUP2 00005446: DUP9 00005447: PUSH2 0x5ab7 0000544a: JUMP 0000544b: JUMPDEST 0000544c: SWAP3 0000544d: POP 0000544e: POP 0000544f: POP 00005450: PUSH2 0x19cb 00005453: JUMP 00005454: JUMPDEST 00005455: DUP7 00005456: PUSH16 0xffffffffffffffffffffffffffffffff 00005467: AND 00005468: DUP2 00005469: PUSH16 0xffffffffffffffffffffffffffffffff 0000547a: AND 0000547b: LT 0000547c: PUSH2 0x548a 0000547f: JUMPI 00005480: PUSH1 0x00 00005482: SWAP3 00005483: POP 00005484: POP 00005485: POP 00005486: PUSH2 0x19cb 00005489: JUMP 0000548a: JUMPDEST 0000548b: PUSH2 0x5495 0000548e: DUP2 0000548f: PUSH1 0x01 00005491: PUSH2 0x5ab7 00005494: JUMP 00005495: JUMPDEST 00005496: PUSH2 0x544b 00005499: SWAP1 0000549a: DUP9 0000549b: PUSH2 0x5a8e 0000549e: JUMP 0000549f: JUMPDEST 000054a0: PUSH1 0x00 000054a2: DUP1 000054a3: DUP3 000054a4: PUSH16 0xffffffffffffffffffffffffffffffff 000054b5: AND 000054b6: PUSH17 0x0100000000000000000000000000000000 000054c8: DUP2 000054c9: PUSH2 0x54d4 000054cc: JUMPI 000054cd: PUSH2 0x54d4 000054d0: PUSH2 0x5a30 000054d3: JUMP 000054d4: JUMPDEST 000054d5: DIV 000054d6: SWAP1 000054d7: POP 000054d8: PUSH16 0xffffffffffffffffffffffffffffffff 000054e9: DUP2 000054ea: GT 000054eb: ISZERO 000054ec: PUSH2 0x0e37 000054ef: JUMPI 000054f0: PUSH1 0x00 000054f2: DUP1 000054f3: REVERT 000054f4: JUMPDEST 000054f5: PUSH1 0x00 000054f7: PUSH1 0x20 000054f9: DUP3 000054fa: DUP5 000054fb: SUB 000054fc: SLT 000054fd: ISZERO 000054fe: PUSH2 0x5506 00005501: JUMPI 00005502: PUSH1 0x00 00005504: DUP1 00005505: REVERT 00005506: JUMPDEST 00005507: POP 00005508: CALLDATALOAD 00005509: SWAP2 0000550a: SWAP1 0000550b: POP 0000550c: JUMP 0000550d: JUMPDEST 0000550e: PUSH2 0xffff 00005511: DUP2 00005512: AND 00005513: DUP2 00005514: EQ 00005515: PUSH2 0x0e15 00005518: JUMPI 00005519: PUSH1 0x00 0000551b: DUP1 0000551c: REVERT 0000551d: JUMPDEST 0000551e: PUSH1 0x00 00005520: DUP1 00005521: DUP4 00005522: PUSH1 0x1f 00005524: DUP5 00005525: ADD 00005526: SLT 00005527: PUSH2 0x552f 0000552a: JUMPI 0000552b: PUSH1 0x00 0000552d: DUP1 0000552e: REVERT 0000552f: JUMPDEST 00005530: POP 00005531: DUP2 00005532: CALLDATALOAD 00005533: PUSH8 0xffffffffffffffff 0000553c: DUP2 0000553d: GT 0000553e: ISZERO 0000553f: PUSH2 0x5547 00005542: JUMPI 00005543: PUSH1 0x00 00005545: DUP1 00005546: REVERT 00005547: JUMPDEST 00005548: PUSH1 0x20 0000554a: DUP4 0000554b: ADD 0000554c: SWAP2 0000554d: POP 0000554e: DUP4 0000554f: PUSH1 0x20 00005551: DUP3 00005552: DUP6 00005553: ADD 00005554: ADD 00005555: GT 00005556: ISZERO 00005557: PUSH2 0x555f 0000555a: JUMPI 0000555b: PUSH1 0x00 0000555d: DUP1 0000555e: REVERT 0000555f: JUMPDEST 00005560: SWAP3 00005561: POP 00005562: SWAP3 00005563: SWAP1 00005564: POP 00005565: JUMP 00005566: JUMPDEST 00005567: PUSH1 0x00 00005569: DUP1 0000556a: PUSH1 0x00 0000556c: DUP1 0000556d: PUSH1 0x00 0000556f: DUP1 00005570: PUSH1 0x00 00005572: DUP1 00005573: PUSH1 0x00 00005575: PUSH1 0xa0 00005577: DUP11 00005578: DUP13 00005579: SUB 0000557a: SLT 0000557b: ISZERO 0000557c: PUSH2 0x5584 0000557f: JUMPI 00005580: PUSH1 0x00 00005582: DUP1 00005583: REVERT 00005584: JUMPDEST 00005585: DUP10 00005586: CALLDATALOAD 00005587: PUSH2 0x558f 0000558a: DUP2 0000558b: PUSH2 0x550d 0000558e: JUMP 0000558f: JUMPDEST 00005590: SWAP9 00005591: POP 00005592: PUSH1 0x20 00005594: DUP11 00005595: ADD 00005596: CALLDATALOAD 00005597: PUSH8 0xffffffffffffffff 000055a0: DUP1 000055a1: DUP3 000055a2: GT 000055a3: ISZERO 000055a4: PUSH2 0x55ac 000055a7: JUMPI 000055a8: PUSH1 0x00 000055aa: DUP1 000055ab: REVERT 000055ac: JUMPDEST 000055ad: PUSH2 0x55b8 000055b0: DUP14 000055b1: DUP4 000055b2: DUP15 000055b3: ADD 000055b4: PUSH2 0x551d 000055b7: JUMP 000055b8: JUMPDEST 000055b9: SWAP1 000055ba: SWAP11 000055bb: POP 000055bc: SWAP9 000055bd: POP 000055be: PUSH1 0x40 000055c0: DUP13 000055c1: ADD 000055c2: CALLDATALOAD 000055c3: SWAP2 000055c4: POP 000055c5: DUP1 000055c6: DUP3 000055c7: GT 000055c8: ISZERO 000055c9: PUSH2 0x55d1 000055cc: JUMPI 000055cd: PUSH1 0x00 000055cf: DUP1 000055d0: REVERT 000055d1: JUMPDEST 000055d2: PUSH2 0x55dd 000055d5: DUP14 000055d6: DUP4 000055d7: DUP15 000055d8: ADD 000055d9: PUSH2 0x551d 000055dc: JUMP 000055dd: JUMPDEST 000055de: SWAP1 000055df: SWAP9 000055e0: POP 000055e1: SWAP7 000055e2: POP 000055e3: PUSH1 0x60 000055e5: DUP13 000055e6: ADD 000055e7: CALLDATALOAD 000055e8: SWAP2 000055e9: POP 000055ea: DUP1 000055eb: DUP3 000055ec: GT 000055ed: ISZERO 000055ee: PUSH2 0x55f6 000055f1: JUMPI 000055f2: PUSH1 0x00 000055f4: DUP1 000055f5: REVERT 000055f6: JUMPDEST 000055f7: PUSH2 0x5602 000055fa: DUP14 000055fb: DUP4 000055fc: DUP15 000055fd: ADD 000055fe: PUSH2 0x551d 00005601: JUMP 00005602: JUMPDEST 00005603: SWAP1 00005604: SWAP7 00005605: POP 00005606: SWAP5 00005607: POP 00005608: PUSH1 0x80 0000560a: DUP13 0000560b: ADD 0000560c: CALLDATALOAD 0000560d: SWAP2 0000560e: POP 0000560f: DUP1 00005610: DUP3 00005611: GT 00005612: ISZERO 00005613: PUSH2 0x561b 00005616: JUMPI 00005617: PUSH1 0x00 00005619: DUP1 0000561a: REVERT 0000561b: JUMPDEST 0000561c: POP 0000561d: PUSH2 0x5628 00005620: DUP13 00005621: DUP3 00005622: DUP14 00005623: ADD 00005624: PUSH2 0x551d 00005627: JUMP 00005628: JUMPDEST 00005629: SWAP2 0000562a: POP 0000562b: DUP1 0000562c: SWAP4 0000562d: POP 0000562e: POP 0000562f: DUP1 00005630: SWAP2 00005631: POP 00005632: POP 00005633: SWAP3 00005634: SWAP6 00005635: SWAP9 00005636: POP 00005637: SWAP3 00005638: SWAP6 00005639: SWAP9 0000563a: POP 0000563b: SWAP3 0000563c: SWAP6 0000563d: SWAP9 0000563e: JUMP 0000563f: JUMPDEST 00005640: PUSH1 0x00 00005642: JUMPDEST 00005643: DUP4 00005644: DUP2 00005645: LT 00005646: ISZERO 00005647: PUSH2 0x565a 0000564a: JUMPI 0000564b: DUP2 0000564c: DUP2 0000564d: ADD 0000564e: MLOAD 0000564f: DUP4 00005650: DUP3 00005651: ADD 00005652: MSTORE 00005653: PUSH1 0x20 00005655: ADD 00005656: PUSH2 0x5642 00005659: JUMP 0000565a: JUMPDEST 0000565b: POP 0000565c: POP 0000565d: PUSH1 0x00 0000565f: SWAP2 00005660: ADD 00005661: MSTORE 00005662: JUMP 00005663: JUMPDEST 00005664: PUSH1 0x20 00005666: DUP2 00005667: MSTORE 00005668: PUSH1 0x00 0000566a: DUP3 0000566b: MLOAD 0000566c: DUP1 0000566d: PUSH1 0x20 0000566f: DUP5 00005670: ADD 00005671: MSTORE 00005672: PUSH2 0x5682 00005675: DUP2 00005676: PUSH1 0x40 00005678: DUP6 00005679: ADD 0000567a: PUSH1 0x20 0000567c: DUP8 0000567d: ADD 0000567e: PUSH2 0x563f 00005681: JUMP 00005682: JUMPDEST 00005683: PUSH1 0x1f 00005685: ADD 00005686: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000056a7: AND 000056a8: SWAP2 000056a9: SWAP1 000056aa: SWAP2 000056ab: ADD 000056ac: PUSH1 0x40 000056ae: ADD 000056af: SWAP3 000056b0: SWAP2 000056b1: POP 000056b2: POP 000056b3: JUMP 000056b4: JUMPDEST 000056b5: DUP1 000056b6: ISZERO 000056b7: ISZERO 000056b8: DUP2 000056b9: EQ 000056ba: PUSH2 0x0e15 000056bd: JUMPI 000056be: PUSH1 0x00 000056c0: DUP1 000056c1: REVERT 000056c2: JUMPDEST 000056c3: PUSH1 0x00 000056c5: DUP1 000056c6: PUSH1 0x00 000056c8: DUP1 000056c9: PUSH1 0x60 000056cb: DUP6 000056cc: DUP8 000056cd: SUB 000056ce: SLT 000056cf: ISZERO 000056d0: PUSH2 0x56d8 000056d3: JUMPI 000056d4: PUSH1 0x00 000056d6: DUP1 000056d7: REVERT 000056d8: JUMPDEST 000056d9: DUP5 000056da: CALLDATALOAD 000056db: PUSH2 0x56e3 000056de: DUP2 000056df: PUSH2 0x550d 000056e2: JUMP 000056e3: JUMPDEST 000056e4: SWAP4 000056e5: POP 000056e6: PUSH1 0x20 000056e8: DUP6 000056e9: ADD 000056ea: CALLDATALOAD 000056eb: PUSH8 0xffffffffffffffff 000056f4: DUP2 000056f5: GT 000056f6: ISZERO 000056f7: PUSH2 0x56ff 000056fa: JUMPI 000056fb: PUSH1 0x00 000056fd: DUP1 000056fe: REVERT 000056ff: JUMPDEST 00005700: PUSH2 0x570b 00005703: DUP8 00005704: DUP3 00005705: DUP9 00005706: ADD 00005707: PUSH2 0x551d 0000570a: JUMP 0000570b: JUMPDEST 0000570c: SWAP1 0000570d: SWAP5 0000570e: POP 0000570f: SWAP3 00005710: POP 00005711: POP 00005712: PUSH1 0x40 00005714: DUP6 00005715: ADD 00005716: CALLDATALOAD 00005717: PUSH2 0x571f 0000571a: DUP2 0000571b: PUSH2 0x56b4 0000571e: JUMP 0000571f: JUMPDEST 00005720: SWAP4 00005721: SWAP7 00005722: SWAP3 00005723: SWAP6 00005724: POP 00005725: SWAP1 00005726: SWAP4 00005727: POP 00005728: POP 00005729: JUMP 0000572a: JUMPDEST 0000572b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00005740: DUP2 00005741: AND 00005742: DUP2 00005743: EQ 00005744: PUSH2 0x0e15 00005747: JUMPI 00005748: PUSH1 0x00 0000574a: DUP1 0000574b: REVERT 0000574c: JUMPDEST 0000574d: PUSH16 0xffffffffffffffffffffffffffffffff 0000575e: DUP2 0000575f: AND 00005760: DUP2 00005761: EQ 00005762: PUSH2 0x0e15 00005765: JUMPI 00005766: PUSH1 0x00 00005768: DUP1 00005769: REVERT 0000576a: JUMPDEST 0000576b: DUP1 0000576c: CALLDATALOAD 0000576d: PUSH1 0xff 0000576f: DUP2 00005770: AND 00005771: DUP2 00005772: EQ 00005773: PUSH2 0x1bb9 00005776: JUMPI 00005777: PUSH1 0x00 00005779: DUP1 0000577a: REVERT 0000577b: JUMPDEST 0000577c: PUSH1 0x00 0000577e: DUP1 0000577f: PUSH1 0x00 00005781: DUP1 00005782: PUSH1 0x00 00005784: DUP1 00005785: PUSH1 0x00 00005787: DUP1 00005788: PUSH1 0x00 0000578a: DUP1 0000578b: PUSH2 0x0140 0000578e: DUP12 0000578f: DUP14 00005790: SUB 00005791: SLT 00005792: ISZERO 00005793: PUSH2 0x579b 00005796: JUMPI 00005797: PUSH1 0x00 00005799: DUP1 0000579a: REVERT 0000579b: JUMPDEST 0000579c: DUP11 0000579d: CALLDATALOAD 0000579e: PUSH2 0x57a6 000057a1: DUP2 000057a2: PUSH2 0x572a 000057a5: JUMP 000057a6: JUMPDEST 000057a7: SWAP10 000057a8: POP 000057a9: PUSH1 0x20 000057ab: DUP12 000057ac: ADD 000057ad: CALLDATALOAD 000057ae: PUSH2 0x57b6 000057b1: DUP2 000057b2: PUSH2 0x572a 000057b5: JUMP 000057b6: JUMPDEST 000057b7: SWAP9 000057b8: POP 000057b9: PUSH1 0x40 000057bb: DUP12 000057bc: ADD 000057bd: CALLDATALOAD 000057be: SWAP8 000057bf: POP 000057c0: PUSH1 0x60 000057c2: DUP12 000057c3: ADD 000057c4: CALLDATALOAD 000057c5: PUSH2 0x57cd 000057c8: DUP2 000057c9: PUSH2 0x56b4 000057cc: JUMP 000057cd: JUMPDEST 000057ce: SWAP7 000057cf: POP 000057d0: PUSH1 0x80 000057d2: DUP12 000057d3: ADD 000057d4: CALLDATALOAD 000057d5: PUSH2 0x57dd 000057d8: DUP2 000057d9: PUSH2 0x56b4 000057dc: JUMP 000057dd: JUMPDEST 000057de: SWAP6 000057df: POP 000057e0: PUSH1 0xa0 000057e2: DUP12 000057e3: ADD 000057e4: CALLDATALOAD 000057e5: PUSH2 0x57ed 000057e8: DUP2 000057e9: PUSH2 0x574c 000057ec: JUMP 000057ed: JUMPDEST 000057ee: SWAP5 000057ef: POP 000057f0: PUSH1 0xc0 000057f2: DUP12 000057f3: ADD 000057f4: CALLDATALOAD 000057f5: PUSH2 0x57fd 000057f8: DUP2 000057f9: PUSH2 0x550d 000057fc: JUMP 000057fd: JUMPDEST 000057fe: SWAP4 000057ff: POP 00005800: PUSH1 0xe0 00005802: DUP12 00005803: ADD 00005804: CALLDATALOAD 00005805: PUSH2 0x580d 00005808: DUP2 00005809: PUSH2 0x574c 0000580c: JUMP 0000580d: JUMPDEST 0000580e: SWAP3 0000580f: POP 00005810: PUSH2 0x0100 00005813: DUP12 00005814: ADD 00005815: CALLDATALOAD 00005816: PUSH2 0x581e 00005819: DUP2 0000581a: PUSH2 0x574c 0000581d: JUMP 0000581e: JUMPDEST 0000581f: SWAP2 00005820: POP 00005821: PUSH2 0x582d 00005824: PUSH2 0x0120 00005827: DUP13 00005828: ADD 00005829: PUSH2 0x576a 0000582c: JUMP 0000582d: JUMPDEST 0000582e: SWAP1 0000582f: POP 00005830: SWAP3 00005831: SWAP6 00005832: SWAP9 00005833: SWAP12 00005834: SWAP2 00005835: SWAP5 00005836: SWAP8 00005837: SWAP11 00005838: POP 00005839: SWAP3 0000583a: SWAP6 0000583b: SWAP9 0000583c: POP 0000583d: JUMP 0000583e: JUMPDEST 0000583f: PUSH1 0x00 00005841: DUP1 00005842: PUSH1 0x00 00005844: DUP1 00005845: PUSH1 0x60 00005847: DUP6 00005848: DUP8 00005849: SUB 0000584a: SLT 0000584b: ISZERO 0000584c: PUSH2 0x5854 0000584f: JUMPI 00005850: PUSH1 0x00 00005852: DUP1 00005853: REVERT 00005854: JUMPDEST 00005855: DUP5 00005856: CALLDATALOAD 00005857: PUSH2 0x585f 0000585a: DUP2 0000585b: PUSH2 0x550d 0000585e: JUMP 0000585f: JUMPDEST 00005860: SWAP4 00005861: POP 00005862: PUSH1 0x20 00005864: DUP6 00005865: ADD 00005866: CALLDATALOAD 00005867: PUSH8 0xffffffffffffffff 00005870: DUP2 00005871: GT 00005872: ISZERO 00005873: PUSH2 0x587b 00005876: JUMPI 00005877: PUSH1 0x00 00005879: DUP1 0000587a: REVERT 0000587b: JUMPDEST 0000587c: PUSH2 0x5887 0000587f: DUP8 00005880: DUP3 00005881: DUP9 00005882: ADD 00005883: PUSH2 0x551d 00005886: JUMP 00005887: JUMPDEST 00005888: SWAP1 00005889: SWAP5 0000588a: POP 0000588b: SWAP3 0000588c: POP 0000588d: POP 0000588e: PUSH1 0x40 00005890: DUP6 00005891: ADD 00005892: CALLDATALOAD 00005893: PUSH2 0x571f 00005896: DUP2 00005897: PUSH2 0x572a 0000589a: JUMP 0000589b: JUMPDEST 0000589c: PUSH1 0x00 0000589e: DUP1 0000589f: PUSH1 0x00 000058a1: PUSH1 0x40 000058a3: DUP5 000058a4: DUP7 000058a5: SUB 000058a6: SLT 000058a7: ISZERO 000058a8: PUSH2 0x58b0 000058ab: JUMPI 000058ac: PUSH1 0x00 000058ae: DUP1 000058af: REVERT 000058b0: JUMPDEST 000058b1: DUP4 000058b2: CALLDATALOAD 000058b3: PUSH2 0x58bb 000058b6: DUP2 000058b7: PUSH2 0x550d 000058ba: JUMP 000058bb: JUMPDEST 000058bc: SWAP3 000058bd: POP 000058be: PUSH1 0x20 000058c0: DUP5 000058c1: ADD 000058c2: CALLDATALOAD 000058c3: PUSH8 0xffffffffffffffff 000058cc: DUP2 000058cd: GT 000058ce: ISZERO 000058cf: PUSH2 0x58d7 000058d2: JUMPI 000058d3: PUSH1 0x00 000058d5: DUP1 000058d6: REVERT 000058d7: JUMPDEST 000058d8: PUSH2 0x58e3 000058db: DUP7 000058dc: DUP3 000058dd: DUP8 000058de: ADD 000058df: PUSH2 0x551d 000058e2: JUMP 000058e3: JUMPDEST 000058e4: SWAP5 000058e5: SWAP8 000058e6: SWAP1 000058e7: SWAP7 000058e8: POP 000058e9: SWAP4 000058ea: SWAP5 000058eb: POP 000058ec: POP 000058ed: POP 000058ee: POP 000058ef: JUMP 000058f0: JUMPDEST 000058f1: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00005912: PUSH1 0x00 00005914: MSTORE 00005915: PUSH1 0x32 00005917: PUSH1 0x04 00005919: MSTORE 0000591a: PUSH1 0x24 0000591c: PUSH1 0x00 0000591e: REVERT 0000591f: JUMPDEST 00005920: PUSH1 0x20 00005922: DUP2 00005923: MSTORE 00005924: DUP2 00005925: PUSH1 0x20 00005927: DUP3 00005928: ADD 00005929: MSTORE 0000592a: DUP2 0000592b: DUP4 0000592c: PUSH1 0x40 0000592e: DUP4 0000592f: ADD 00005930: CALLDATACOPY 00005931: PUSH1 0x00 00005933: DUP2 00005934: DUP4 00005935: ADD 00005936: PUSH1 0x40 00005938: SWAP1 00005939: DUP2 0000593a: ADD 0000593b: SWAP2 0000593c: SWAP1 0000593d: SWAP2 0000593e: MSTORE 0000593f: PUSH1 0x1f 00005941: SWAP1 00005942: SWAP3 00005943: ADD 00005944: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00005965: AND 00005966: ADD 00005967: ADD 00005968: SWAP2 00005969: SWAP1 0000596a: POP 0000596b: JUMP 0000596c: JUMPDEST 0000596d: PUSH1 0x00 0000596f: DUP3 00005970: MLOAD 00005971: PUSH2 0x597e 00005974: DUP2 00005975: DUP5 00005976: PUSH1 0x20 00005978: DUP8 00005979: ADD 0000597a: PUSH2 0x563f 0000597d: JUMP 0000597e: JUMPDEST 0000597f: SWAP2 00005980: SWAP1 00005981: SWAP2 00005982: ADD 00005983: SWAP3 00005984: SWAP2 00005985: POP 00005986: POP 00005987: JUMP 00005988: JUMPDEST 00005989: PUSH1 0x00 0000598b: DUP1 0000598c: PUSH1 0x00 0000598e: PUSH1 0x60 00005990: DUP5 00005991: DUP7 00005992: SUB 00005993: SLT 00005994: ISZERO 00005995: PUSH2 0x599d 00005998: JUMPI 00005999: PUSH1 0x00 0000599b: DUP1 0000599c: REVERT 0000599d: JUMPDEST 0000599e: DUP4 0000599f: MLOAD 000059a0: PUSH2 0x59a8 000059a3: DUP2 000059a4: PUSH2 0x572a 000059a7: JUMP 000059a8: JUMPDEST 000059a9: PUSH1 0x20 000059ab: DUP6 000059ac: ADD 000059ad: MLOAD 000059ae: SWAP1 000059af: SWAP4 000059b0: POP 000059b1: PUSH2 0x59b9 000059b4: DUP2 000059b5: PUSH2 0x574c 000059b8: JUMP 000059b9: JUMPDEST 000059ba: PUSH1 0x40 000059bc: DUP6 000059bd: ADD 000059be: MLOAD 000059bf: SWAP1 000059c0: SWAP3 000059c1: POP 000059c2: PUSH2 0x59ca 000059c5: DUP2 000059c6: PUSH2 0x572a 000059c9: JUMP 000059ca: JUMPDEST 000059cb: DUP1 000059cc: SWAP2 000059cd: POP 000059ce: POP 000059cf: SWAP3 000059d0: POP 000059d1: SWAP3 000059d2: POP 000059d3: SWAP3 000059d4: JUMP 000059d5: JUMPDEST 000059d6: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000059f7: PUSH1 0x00 000059f9: MSTORE 000059fa: PUSH1 0x11 000059fc: PUSH1 0x04 000059fe: MSTORE 000059ff: PUSH1 0x24 00005a01: PUSH1 0x00 00005a03: REVERT 00005a04: JUMPDEST 00005a05: PUSH16 0xffffffffffffffffffffffffffffffff 00005a16: DUP2 00005a17: DUP2 00005a18: AND 00005a19: DUP4 00005a1a: DUP3 00005a1b: AND 00005a1c: MUL 00005a1d: DUP1 00005a1e: DUP3 00005a1f: AND 00005a20: SWAP2 00005a21: SWAP1 00005a22: DUP3 00005a23: DUP2 00005a24: EQ 00005a25: PUSH2 0x4c60 00005a28: JUMPI 00005a29: PUSH2 0x4c60 00005a2c: PUSH2 0x59d5 00005a2f: JUMP 00005a30: JUMPDEST 00005a31: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00005a52: PUSH1 0x00 00005a54: MSTORE 00005a55: PUSH1 0x12 00005a57: PUSH1 0x04 00005a59: MSTORE 00005a5a: PUSH1 0x24 00005a5c: PUSH1 0x00 00005a5e: REVERT 00005a5f: JUMPDEST 00005a60: PUSH1 0x00 00005a62: PUSH16 0xffffffffffffffffffffffffffffffff 00005a73: DUP1 00005a74: DUP5 00005a75: AND 00005a76: DUP1 00005a77: PUSH2 0x5a82 00005a7a: JUMPI 00005a7b: PUSH2 0x5a82 00005a7e: PUSH2 0x5a30 00005a81: JUMP 00005a82: JUMPDEST 00005a83: SWAP3 00005a84: AND 00005a85: SWAP2 00005a86: SWAP1 00005a87: SWAP2 00005a88: DIV 00005a89: SWAP3 00005a8a: SWAP2 00005a8b: POP 00005a8c: POP 00005a8d: JUMP 00005a8e: JUMPDEST 00005a8f: PUSH16 0xffffffffffffffffffffffffffffffff 00005aa0: DUP3 00005aa1: DUP2 00005aa2: AND 00005aa3: DUP3 00005aa4: DUP3 00005aa5: AND 00005aa6: SUB 00005aa7: SWAP1 00005aa8: DUP1 00005aa9: DUP3 00005aaa: GT 00005aab: ISZERO 00005aac: PUSH2 0x1776 00005aaf: JUMPI 00005ab0: PUSH2 0x1776 00005ab3: PUSH2 0x59d5 00005ab6: JUMP 00005ab7: JUMPDEST 00005ab8: PUSH16 0xffffffffffffffffffffffffffffffff 00005ac9: DUP2 00005aca: DUP2 00005acb: AND 00005acc: DUP4 00005acd: DUP3 00005ace: AND 00005acf: ADD 00005ad0: SWAP1 00005ad1: DUP1 00005ad2: DUP3 00005ad3: GT 00005ad4: ISZERO 00005ad5: PUSH2 0x1776 00005ad8: JUMPI 00005ad9: PUSH2 0x1776 00005adc: PUSH2 0x59d5 00005adf: JUMP 00005ae0: JUMPDEST 00005ae1: PUSH1 0x00 00005ae3: PUSH4 0xffffffff 00005ae8: DUP3 00005ae9: AND 00005aea: DUP1 00005aeb: PUSH2 0x5af6 00005aee: JUMPI 00005aef: PUSH2 0x5af6 00005af2: PUSH2 0x59d5 00005af5: JUMP 00005af6: JUMPDEST 00005af7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00005b18: ADD 00005b19: SWAP3 00005b1a: SWAP2 00005b1b: POP 00005b1c: POP 00005b1d: JUMP 00005b1e: JUMPDEST 00005b1f: PUSH1 0x00 00005b21: DUP1 00005b22: PUSH1 0x00 00005b24: PUSH1 0x60 00005b26: DUP5 00005b27: DUP7 00005b28: SUB 00005b29: SLT 00005b2a: ISZERO 00005b2b: PUSH2 0x5b33 00005b2e: JUMPI 00005b2f: PUSH1 0x00 00005b31: DUP1 00005b32: REVERT 00005b33: JUMPDEST 00005b34: PUSH2 0x5b3c 00005b37: DUP5 00005b38: PUSH2 0x576a 00005b3b: JUMP 00005b3c: JUMPDEST 00005b3d: SWAP6 00005b3e: PUSH1 0x20 00005b40: DUP6 00005b41: ADD 00005b42: CALLDATALOAD 00005b43: SWAP6 00005b44: POP 00005b45: PUSH1 0x40 00005b47: SWAP1 00005b48: SWAP5 00005b49: ADD 00005b4a: CALLDATALOAD 00005b4b: SWAP4 00005b4c: SWAP3 00005b4d: POP 00005b4e: POP 00005b4f: POP 00005b50: JUMP 00005b51: JUMPDEST 00005b52: DUP1 00005b53: MLOAD 00005b54: PUSH6 0xffffffffffff 00005b5b: DUP2 00005b5c: AND 00005b5d: DUP2 00005b5e: EQ 00005b5f: PUSH2 0x1bb9 00005b62: JUMPI 00005b63: PUSH1 0x00 00005b65: DUP1 00005b66: REVERT 00005b67: JUMPDEST 00005b68: PUSH1 0x00 00005b6a: DUP1 00005b6b: PUSH1 0x00 00005b6d: DUP1 00005b6e: PUSH1 0x00 00005b70: PUSH1 0xa0 00005b72: DUP7 00005b73: DUP9 00005b74: SUB 00005b75: SLT 00005b76: ISZERO 00005b77: PUSH2 0x5b7f 00005b7a: JUMPI 00005b7b: PUSH1 0x00 00005b7d: DUP1 00005b7e: REVERT 00005b7f: JUMPDEST 00005b80: PUSH2 0x5b88 00005b83: DUP7 00005b84: PUSH2 0x5b51 00005b87: JUMP 00005b88: JUMPDEST 00005b89: SWAP5 00005b8a: POP 00005b8b: PUSH2 0x5b96 00005b8e: PUSH1 0x20 00005b90: DUP8 00005b91: ADD 00005b92: PUSH2 0x5b51 00005b95: JUMP 00005b96: JUMPDEST 00005b97: SWAP4 00005b98: POP 00005b99: PUSH1 0x40 00005b9b: DUP7 00005b9c: ADD 00005b9d: MLOAD 00005b9e: SWAP3 00005b9f: POP 00005ba0: PUSH1 0x60 00005ba2: DUP7 00005ba3: ADD 00005ba4: MLOAD 00005ba5: PUSH4 0xffffffff 00005baa: DUP2 00005bab: AND 00005bac: DUP2 00005bad: EQ 00005bae: PUSH2 0x5bb6 00005bb1: JUMPI 00005bb2: PUSH1 0x00 00005bb4: DUP1 00005bb5: REVERT 00005bb6: JUMPDEST 00005bb7: PUSH1 0x80 00005bb9: DUP8 00005bba: ADD 00005bbb: MLOAD 00005bbc: SWAP1 00005bbd: SWAP3 00005bbe: POP 00005bbf: PUSH2 0x5bc7 00005bc2: DUP2 00005bc3: PUSH2 0x572a 00005bc6: JUMP 00005bc7: JUMPDEST 00005bc8: DUP1 00005bc9: SWAP2 00005bca: POP 00005bcb: POP 00005bcc: SWAP3 00005bcd: SWAP6 00005bce: POP 00005bcf: SWAP3 00005bd0: SWAP6 00005bd1: SWAP1 00005bd2: SWAP4 00005bd3: POP 00005bd4: JUMP 00005bd5: JUMPDEST 00005bd6: PUSH1 0x00 00005bd8: DUP2 00005bd9: PUSH1 0x0f 00005bdb: SIGNEXTEND 00005bdc: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000 00005bfd: DUP2 00005bfe: SUB 00005bff: PUSH2 0x5c0a 00005c02: JUMPI 00005c03: PUSH2 0x5c0a 00005c06: PUSH2 0x59d5 00005c09: JUMP 00005c0a: JUMPDEST 00005c0b: PUSH1 0x00 00005c0d: SUB 00005c0e: SWAP3 00005c0f: SWAP2 00005c10: POP 00005c11: POP 00005c12: JUMP 00005c13: JUMPDEST 00005c14: PUSH1 0x00 00005c16: PUSH4 0xffffffff 00005c1b: DUP1 00005c1c: DUP4 00005c1d: AND 00005c1e: DUP2 00005c1f: DUP2 00005c20: SUB 00005c21: PUSH2 0x5c2c 00005c24: JUMPI 00005c25: PUSH2 0x5c2c 00005c28: PUSH2 0x59d5 00005c2b: JUMP 00005c2c: JUMPDEST 00005c2d: PUSH1 0x01 00005c2f: ADD 00005c30: SWAP4 00005c31: SWAP3 00005c32: POP 00005c33: POP 00005c34: POP 00005c35: JUMP 00005c36: JUMPDEST 00005c37: PUSH1 0x00 00005c39: PUSH1 0x20 00005c3b: DUP3 00005c3c: DUP5 00005c3d: SUB 00005c3e: SLT 00005c3f: ISZERO 00005c40: PUSH2 0x5c48 00005c43: JUMPI 00005c44: PUSH1 0x00 00005c46: DUP1 00005c47: REVERT 00005c48: JUMPDEST 00005c49: DUP2 00005c4a: MLOAD 00005c4b: PUSH2 0x05f5 00005c4e: DUP2 00005c4f: PUSH2 0x550d 00005c52: JUMP 00005c53: JUMPDEST 00005c54: PUSH2 0xffff 00005c57: DUP3 00005c58: DUP2 00005c59: AND 00005c5a: DUP3 00005c5b: DUP3 00005c5c: AND 00005c5d: SUB 00005c5e: SWAP1 00005c5f: DUP1 00005c60: DUP3 00005c61: GT 00005c62: ISZERO 00005c63: PUSH2 0x1776 00005c66: JUMPI 00005c67: PUSH2 0x1776 00005c6a: PUSH2 0x59d5 00005c6d: JUMP 00005c6e: JUMPDEST 00005c6f: PUSH1 0x02 00005c71: DUP3 00005c72: DUP2 00005c73: SIGNEXTEND 00005c74: SWAP1 00005c75: DUP3 00005c76: SWAP1 00005c77: SIGNEXTEND 00005c78: SUB 00005c79: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 00005c9a: DUP2 00005c9b: SLT 00005c9c: PUSH3 0x7fffff 00005ca0: DUP3 00005ca1: SGT 00005ca2: OR 00005ca3: ISZERO 00005ca4: PUSH2 0x0e37 00005ca7: JUMPI 00005ca8: PUSH2 0x0e37 00005cab: PUSH2 0x59d5 00005cae: JUMP 00005caf: JUMPDEST 00005cb0: PUSH1 0x0f 00005cb2: DUP2 00005cb3: DUP2 00005cb4: SIGNEXTEND 00005cb5: SWAP1 00005cb6: DUP4 00005cb7: SWAP1 00005cb8: SIGNEXTEND 00005cb9: ADD 00005cba: PUSH16 0x7fffffffffffffffffffffffffffffff 00005ccb: DUP2 00005ccc: SGT 00005ccd: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000 00005cee: DUP3 00005cef: SLT 00005cf0: OR 00005cf1: ISZERO 00005cf2: PUSH2 0x0e37 00005cf5: JUMPI 00005cf6: PUSH2 0x0e37 00005cf9: PUSH2 0x59d5 00005cfc: JUMP 00005cfd: JUMPDEST 00005cfe: PUSH1 0x00 00005d00: DUP3 00005d01: PUSH1 0x02 00005d03: SIGNEXTEND 00005d04: DUP1 00005d05: PUSH2 0x5d10 00005d08: JUMPI 00005d09: PUSH2 0x5d10 00005d0c: PUSH2 0x5a30 00005d0f: JUMP 00005d10: JUMPDEST 00005d11: DUP1 00005d12: DUP4 00005d13: PUSH1 0x02 00005d15: SIGNEXTEND 00005d16: SMOD 00005d17: SWAP2 00005d18: POP 00005d19: POP 00005d1a: SWAP3 00005d1b: SWAP2 00005d1c: POP 00005d1d: POP 00005d1e: JUMP 00005d1f: JUMPDEST 00005d20: PUSH1 0x01 00005d22: DUP2 00005d23: DUP2 00005d24: SIGNEXTEND 00005d25: SWAP1 00005d26: DUP4 00005d27: SWAP1 00005d28: SIGNEXTEND 00005d29: ADD 00005d2a: PUSH2 0x7fff 00005d2d: DUP2 00005d2e: SGT 00005d2f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000 00005d50: DUP3 00005d51: SLT 00005d52: OR 00005d53: ISZERO 00005d54: PUSH2 0x0e37 00005d57: JUMPI 00005d58: PUSH2 0x0e37 00005d5b: PUSH2 0x59d5 00005d5e: JUMP 00005d5f: JUMPDEST 00005d60: PUSH1 0x00 00005d62: DUP3 00005d63: PUSH1 0x01 00005d65: SIGNEXTEND 00005d66: DUP1 00005d67: PUSH2 0x5d72 00005d6a: JUMPI 00005d6b: PUSH2 0x5d72 00005d6e: PUSH2 0x5a30 00005d71: JUMP 00005d72: JUMPDEST 00005d73: DUP1 00005d74: DUP4 00005d75: PUSH1 0x01 00005d77: SIGNEXTEND 00005d78: SMOD 00005d79: SWAP2 00005d7a: POP 00005d7b: POP 00005d7c: SWAP3 00005d7d: SWAP2 00005d7e: POP 00005d7f: POP 00005d80: JUMP 00005d81: JUMPDEST 00005d82: PUSH8 0xffffffffffffffff 00005d8b: DUP3 00005d8c: DUP2 00005d8d: AND 00005d8e: DUP3 00005d8f: DUP3 00005d90: AND 00005d91: SUB 00005d92: SWAP1 00005d93: DUP1 00005d94: DUP3 00005d95: GT 00005d96: ISZERO 00005d97: PUSH2 0x1776 00005d9a: JUMPI 00005d9b: PUSH2 0x1776 00005d9e: PUSH2 0x59d5 00005da1: JUMP 00005da2: JUMPDEST 00005da3: PUSH1 0x00 00005da5: PUSH1 0x20 00005da7: DUP3 00005da8: DUP5 00005da9: SUB 00005daa: SLT 00005dab: ISZERO 00005dac: PUSH2 0x5db4 00005daf: JUMPI 00005db0: PUSH1 0x00 00005db2: DUP1 00005db3: REVERT 00005db4: JUMPDEST 00005db5: DUP2 00005db6: MLOAD 00005db7: DUP1 00005db8: PUSH1 0x0f 00005dba: SIGNEXTEND 00005dbb: DUP2 00005dbc: EQ 00005dbd: PUSH2 0x05f5 00005dc0: JUMPI 00005dc1: PUSH1 0x00 00005dc3: DUP1 00005dc4: REVERT 00005dc5: JUMPDEST 00005dc6: PUSH8 0xffffffffffffffff 00005dcf: DUP2 00005dd0: DUP2 00005dd1: AND 00005dd2: DUP4 00005dd3: DUP3 00005dd4: AND 00005dd5: ADD 00005dd6: SWAP1 00005dd7: DUP1 00005dd8: DUP3 00005dd9: GT 00005dda: ISZERO 00005ddb: PUSH2 0x1776 00005dde: JUMPI 00005ddf: PUSH2 0x1776 00005de2: PUSH2 0x59d5 00005de5: JUMP 00005de6: JUMPDEST 00005de7: PUSH1 0x00 00005de9: PUSH1 0x20 00005deb: DUP3 00005dec: DUP5 00005ded: SUB 00005dee: SLT 00005def: ISZERO 00005df0: PUSH2 0x5df8 00005df3: JUMPI 00005df4: PUSH1 0x00 00005df6: DUP1 00005df7: REVERT 00005df8: JUMPDEST 00005df9: DUP2 00005dfa: MLOAD 00005dfb: PUSH2 0x05f5 00005dfe: DUP2 00005dff: PUSH2 0x56b4 00005e02: JUMP 00005e03: JUMPDEST 00005e04: DUP1 00005e05: DUP3 00005e06: MUL 00005e07: DUP2 00005e08: ISZERO 00005e09: DUP3 00005e0a: DUP3 00005e0b: DIV 00005e0c: DUP5 00005e0d: EQ 00005e0e: OR 00005e0f: PUSH2 0x0e37 00005e12: JUMPI 00005e13: PUSH2 0x0e37 00005e16: PUSH2 0x59d5 00005e19: JUMP 00005e1a: JUMPDEST 00005e1b: PUSH1 0x00 00005e1d: DUP3 00005e1e: PUSH2 0x5e29 00005e21: JUMPI 00005e22: PUSH2 0x5e29 00005e25: PUSH2 0x5a30 00005e28: JUMP 00005e29: JUMPDEST 00005e2a: POP 00005e2b: DIV 00005e2c: SWAP1 00005e2d: JUMP 00005e2e: INVALID 00005e2f: LOG2 00005e30: PUSH5 0x6970667358 00005e36: UNKNOWN(0x22) 00005e37: SLT 00005e38: KECCAK256 00005e39: UNKNOWN(0xEE) 00005e3a: UNKNOWN(0xD8) 00005e3b: CALLER 00005e3c: DUP5 00005e3d: SMOD 00005e3e: UNKNOWN(0xE7) 00005e3f: DIV 00005e40: LOG1 00005e41: UNKNOWN(0xFC) 00005e42: DUP4 00005e43: DUP7 00005e44: NUMBER 00005e45: UNKNOWN(0xFB) 00005e46: MSTORE 00005e47: DELEGATECALL 00005e48: UNKNOWN(0xE9) 00005e49: UNKNOWN(0xE8) 00005e4a: PUSH1 0xbf 00005e4c: UNKNOWN(0xC3) 00005e4d: STATICCALL 00005e4e: UNKNOWN(0xE6) 00005e4f: SSTORE 00005e50: UNKNOWN(0xB6) 00005e51: SWAP13 00005e52: CALLVALUE 00005e53: UNKNOWN(0xD8) 00005e54: PUSH6 0x8c0ac62a6473 00005e5b: PUSH16
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x5134a7404baa02f09cc021d2c388f4a09b3181f4f70d6ab697ded34b733527ee
call_targets:
0xfcea907f4727b08cc9336a33fe872022942127a7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "sink_reached",
"attempts": 41,
"trace_id": "0x5134a7404baa02f09cc021d2c388f4a09b3181f4f70d6ab697ded34b733527ee",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xfcea907f4727b08cc9336a33fe872022942127a7"
],
"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": "0x3d719cd9",
"selector": "0x3d719cd9",
"calldata_variants": [
"0x3d719cd9",
"0x3d719cd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7c519625",
"selector": "0x7c519625",
"calldata_variants": [
"0x7c519625",
"0x7c5196250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x90b33ce5",
"selector": "0x90b33ce5",
"calldata_variants": [
"0x90b33ce5",
"0x90b33ce50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa15112f9",
"selector": "0xa15112f9",
"calldata_variants": [
"0xa15112f9",
"0xa15112f90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02ce8af3",
"selector": "0x02ce8af3",
"calldata_variants": [
"0x02ce8af3",
"0x02ce8af30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x08719070",
"selector": "0x08719070",
"calldata_variants": [
"0x08719070",
"0x087190700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x13fd34f4",
"selector": "0x13fd34f4",
"calldata_variants": [
"0x13fd34f4",
"0x13fd34f40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1787,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 14854,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 24135,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 3442,
"type": "tx_origin_used"
},
{
"pc": 3441,
"type": "tx_origin_used"
},
{
"pc": 3777,
"type": "tx_origin_used"
}
],
"delegatecall_count": 3,
"untrusted_delegatecall_count": 3
}
|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x3d719cd9",
"selector": "0x3d719cd9",
"calldata_variants": [
"0x3d719cd9",
"0x3d719cd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7c519625",
"selector": "0x7c519625",
"calldata_variants": [
"0x7c519625",
"0x7c5196250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x90b33ce5",
"selector": "0x90b33ce5",
"calldata_variants": [
"0x90b33ce5",
"0x90b33ce50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa15112f9",
"selector": "0xa15112f9",
"calldata_variants": [
"0xa15112f9",
"0xa15112f90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02ce8af3",
"selector": "0x02ce8af3",
"calldata_variants": [
"0x02ce8af3",
"0x02ce8af30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x08719070",
"selector": "0x08719070",
"calldata_variants": [
"0x08719070",
"0x087190700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x13fd34f4",
"selector": "0x13fd34f4",
"calldata_variants": [
"0x13fd34f4",
"0x13fd34f40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 3442,
"type": "tx_origin_used"
},
{
"pc": 3441,
"type": "tx_origin_used"
},
{
"pc": 3777,
"type": "tx_origin_used"
}
]
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 3
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x1ba5193062ac14517e853d8661b7ebcc866558bb3b6a3969d83830b1f3246c98
call_targets:
0xaaaaaaaaa24eeeb8d57d431224f73832bc34f688
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x1ba5193062ac14517e853d8661b7ebcc866558bb3b6a3969d83830b1f3246c98",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xaaaaaaaaa24eeeb8d57d431224f73832bc34f688"
],
"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": "0x3d719cd9",
"selector": "0x3d719cd9",
"calldata_variants": [
"0x3d719cd9",
"0x3d719cd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7c519625",
"selector": "0x7c519625",
"calldata_variants": [
"0x7c519625",
"0x7c5196250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x90b33ce5",
"selector": "0x90b33ce5",
"calldata_variants": [
"0x90b33ce5",
"0x90b33ce50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa15112f9",
"selector": "0xa15112f9",
"calldata_variants": [
"0xa15112f9",
"0xa15112f90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02ce8af3",
"selector": "0x02ce8af3",
"calldata_variants": [
"0x02ce8af3",
"0x02ce8af30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x08719070",
"selector": "0x08719070",
"calldata_variants": [
"0x08719070",
"0x087190700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x13fd34f4",
"selector": "0x13fd34f4",
"calldata_variants": [
"0x13fd34f4",
"0x13fd34f40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5614,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 12195,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 18722,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [
{
"pc": 3442,
"type": "tx_origin_used"
},
{
"pc": 3441,
"type": "tx_origin_used"
},
{
"pc": 3777,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 4
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x1ba5193062ac14517e853d8661b7ebcc866558bb3b6a3969d83830b1f3246c98
call_targets:
0xaaaaaaaaa24eeeb8d57d431224f73832bc34f688
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x1ba5193062ac14517e853d8661b7ebcc866558bb3b6a3969d83830b1f3246c98",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xaaaaaaaaa24eeeb8d57d431224f73832bc34f688"
],
"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": "0x3d719cd9",
"selector": "0x3d719cd9",
"calldata_variants": [
"0x3d719cd9",
"0x3d719cd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7c519625",
"selector": "0x7c519625",
"calldata_variants": [
"0x7c519625",
"0x7c5196250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x90b33ce5",
"selector": "0x90b33ce5",
"calldata_variants": [
"0x90b33ce5",
"0x90b33ce50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa15112f9",
"selector": "0xa15112f9",
"calldata_variants": [
"0xa15112f9",
"0xa15112f90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02ce8af3",
"selector": "0x02ce8af3",
"calldata_variants": [
"0x02ce8af3",
"0x02ce8af30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x08719070",
"selector": "0x08719070",
"calldata_variants": [
"0x08719070",
"0x087190700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x13fd34f4",
"selector": "0x13fd34f4",
"calldata_variants": [
"0x13fd34f4",
"0x13fd34f40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5614,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 12195,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 18722,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": [
{
"pc": 3442,
"type": "tx_origin_used"
},
{
"pc": 3441,
"type": "tx_origin_used"
},
{
"pc": 3777,
"type": "tx_origin_used"
}
]
}
|