940f44ab-3054-4f33-947f-308cb4221507
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 |
|---|---|---|---|---|
| 30248 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 73672 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 73673 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 73674 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 73675 | capability.graph | complete | 1 / 3 | 1 week ago |
| 73676 | detector.run | complete | 1 / 3 | 1 week ago |
| 73677 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1282601] OpenAI Codex v0.77.0 (research preview)
[codex:1282601] --------
[codex:1282601] workdir: /tmp/codex-multi-g4d1szym
[codex:1282601] model: gpt-5.2-codex
[codex:1282601] provider: openai
[codex:1282601] approval: never
[codex:1282601] sandbox: read-only
[codex:1282601] reasoning effort: xhigh
[codex:1282601] reasoning summaries: auto
[codex:1282601] session id: 019b623f-ae03-7d52-8c2a-ee19bc698e2c
[codex:1282601] --------
[codex:1282601] user
[codex:1282601] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1282601] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1282601] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1282601]
[codex:1282601] Scope rules:
[codex:1282601] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1282601] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1282601]
[codex:1282601] Output MUST be valid JSON matching the provided schema.
[codex:1282601] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1282601] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1282601]
[codex:1282601] Output constraints (IMPORTANT):
[codex:1282601] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1282601] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1282601] mcp startup: no servers
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Auditing AUDIT_BUNDLE.txt**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc ls in /tmp/codex-multi-g4d1szym succeeded in 5ms:
[codex:1282601] AUDIT_BUNDLE.txt
[codex:1282601] codex-output-schema.json
[codex:1282601] contracts
[codex:1282601] exec
[codex:1282601] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1282601]
[codex:1282601] ================================================================================
[codex:1282601] FILE: contracts/lib/solady/src/utils/LibBit.sol
[codex:1282601] ================================================================================
[codex:1282601] // SPDX-License-Identifier: MIT
[codex:1282601] pragma solidity ^0.8.4;
[codex:1282601]
[codex:1282601] /// @notice Library for bit twiddling and boolean operations.
[codex:1282601] /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibBit.sol)
[codex:1282601] /// @author Inspired by (https://graphics.stanford.edu/~seander/bithacks.html)
[codex:1282601] library LibBit {
[codex:1282601] /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
[codex:1282601] /* BIT TWIDDLING OPERATIONS */
[codex:1282601] /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
[codex:1282601]
[codex:1282601] /// @dev Find last set.
[codex:1282601] /// Returns the index of the most significant bit of `x`,
[codex:1282601] /// counting from the least significant bit position.
[codex:1282601] /// If `x` is zero, returns 256.
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Planning full audit bundle reading**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-g4d1szym succeeded in 7ms:
[codex:1282601] 4:FILE: contracts/lib/solady/src/utils/LibBit.sol
[codex:1282601] 192:FILE: contracts/src/IHooksFactory.sol
[codex:1282601] 469:FILE: contracts/src/ReentrancyGuard.sol
[codex:1282601] 572:FILE: contracts/src/WildcatSanctionsEscrow.sol
[codex:1282601] 621:FILE: contracts/src/WildcatSanctionsSentinel.sol
[codex:1282601] 800:FILE: contracts/src/access/IHooks.sol
[codex:1282601] 918:FILE: contracts/src/interfaces/IChainalysisSanctionsList.sol
[codex:1282601] 928:FILE: contracts/src/interfaces/IERC20.sol
[codex:1282601] 961:FILE: contracts/src/interfaces/IMarketEventsAndErrors.sol
[codex:1282601] 1136:FILE: contracts/src/interfaces/IWildcatSanctionsEscrow.sol
[codex:1282601] 1162:FILE: contracts/src/interfaces/IWildcatSanctionsSentinel.sol
[codex:1282601] 1240:FILE: contracts/src/interfaces/WildcatStructsAndEnums.sol
[codex:1282601] 1324:FILE: contracts/src/libraries/BoolUtils.sol
[codex:1282601] 1350:FILE: contracts/src/libraries/Errors.sol
[codex:1282601] 1420:FILE: contracts/src/libraries/FIFOQueue.sol
[codex:1282601] 1504:FILE: contracts/src/libraries/FeeMath.sol
[codex:1282601] 1679:FILE: contracts/src/libraries/FunctionTypeCasts.sol
[codex:1282601] 1736:FILE: contracts/src/libraries/LibERC20.sol
[codex:1282601] 1938:FILE: contracts/src/libraries/MarketErrors.sol
[codex:1282601] 2279:FILE: contracts/src/libraries/MarketEvents.sol
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Planning sequential file reading**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '1,260p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 5ms:
[codex:1282601] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1282601]
[codex:1282601] ================================================================================
[codex:1282601] FILE: contracts/lib/solady/src/utils/LibBit.sol
[codex:1282601] ================================================================================
[codex:1282601] // SPDX-License-Identifier: MIT
[codex:1282601] pragma solidity ^0.8.4;
[codex:1282601]
[codex:1282601] /// @notice Library for bit twiddling and boolean operations.
[codex:1282601] /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibBit.sol)
[codex:1282601] /// @author Inspired by (https://graphics.stanford.edu/~seander/bithacks.html)
[codex:1282601] library LibBit {
[codex:1282601] /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
[codex:1282601] /* BIT TWIDDLING OPERATIONS */
[codex:1282601] /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
[codex:1282601]
[codex:1282601] /// @dev Find last set.
[codex:1282601] /// Returns the index of the most significant bit of `x`,
[codex:1282601] /// counting from the least significant bit position.
[codex:1282601] /// If `x` is zero, returns 256.
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing to review code sections**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '260,620p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] string symbol,
[codex:1282601] address asset,
[codex:1282601] uint256 maxTotalSupply,
[codex:1282601] uint256 annualInterestBips,
[codex:1282601] uint256 delinquencyFeeBips,
[codex:1282601] uint256 withdrawalBatchDuration,
[codex:1282601] uint256 reserveRatioBips,
[codex:1282601] uint256 delinquencyGracePeriod,
[codex:1282601] HooksConfig hooks
[codex:1282601] );
[codex:1282601] }
[codex:1282601]
[codex:1282601] interface IHooksFactory is IHooksFactoryEventsAndErrors {
[codex:1282601] function archController() external view returns (address);
[codex:1282601]
[codex:1282601] function sanctionsSentinel() external view returns (address);
[codex:1282601]
[codex:1282601] function marketInitCodeStorage() external view returns (address);
[codex:1282601]
[codex:1282601] function marketInitCodeHash() external view returns (uint256);
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing process**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '620,980p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 7ms:
[codex:1282601] ================================================================================
[codex:1282601] FILE: contracts/src/WildcatSanctionsSentinel.sol
[codex:1282601] ================================================================================
[codex:1282601] // SPDX-License-Identifier: Apache-2.0 WITH LicenseRef-Commons-Clause-1.0
[codex:1282601] pragma solidity >=0.8.20;
[codex:1282601]
[codex:1282601] import { IChainalysisSanctionsList } from './interfaces/IChainalysisSanctionsList.sol';
[codex:1282601] import { IWildcatSanctionsSentinel } from './interfaces/IWildcatSanctionsSentinel.sol';
[codex:1282601] import { WildcatSanctionsEscrow } from './WildcatSanctionsEscrow.sol';
[codex:1282601]
[codex:1282601] contract WildcatSanctionsSentinel is IWildcatSanctionsSentinel {
[codex:1282601] // ========================================================================== //
[codex:1282601] // Constants //
[codex:1282601] // ========================================================================== //
[codex:1282601]
[codex:1282601] bytes32 public constant override WildcatSanctionsEscrowInitcodeHash =
[codex:1282601] keccak256(type(WildcatSanctionsEscrow).creationCode);
[codex:1282601]
[codex:1282601] address public immutable override chainalysisSanctionsList;
[codex:1282601]
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing process**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '980,1340p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601]
[codex:1282601] /// @notice Error thrown when non-sentinel tries to use nukeFromOrbit
[codex:1282601] error BadLaunchCode();
[codex:1282601]
[codex:1282601] /// @notice Error thrown when transfer target is blacklisted
[codex:1282601] error AccountBlocked();
[codex:1282601]
[codex:1282601] error BadRescueAsset();
[codex:1282601]
[codex:1282601] error BorrowAmountTooHigh();
[codex:1282601]
[codex:1282601] error InsufficientReservesForFeeWithdrawal();
[codex:1282601]
[codex:1282601] error WithdrawalBatchNotExpired();
[codex:1282601]
[codex:1282601] error NullMintAmount();
[codex:1282601]
[codex:1282601] error NullBurnAmount();
[codex:1282601]
[codex:1282601] error NullFeeAmount();
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing process**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '1340,1705p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] }
[codex:1282601]
[codex:1282601] function xor(bool a, bool b) internal pure returns (bool c) {
[codex:1282601] assembly {
[codex:1282601] c := xor(a, b)
[codex:1282601] }
[codex:1282601] }
[codex:1282601] }
[codex:1282601]
[codex:1282601] ================================================================================
[codex:1282601] FILE: contracts/src/libraries/Errors.sol
[codex:1282601] ================================================================================
[codex:1282601] // SPDX-License-Identifier: MIT
[codex:1282601] pragma solidity >=0.8.20;
[codex:1282601]
[codex:1282601] uint256 constant Panic_CompilerPanic = 0x00;
[codex:1282601] uint256 constant Panic_AssertFalse = 0x01;
[codex:1282601] uint256 constant Panic_Arithmetic = 0x11;
[codex:1282601] uint256 constant Panic_DivideByZero = 0x12;
[codex:1282601] uint256 constant Panic_InvalidEnumValue = 0x21;
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing process**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '1705,2065p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] assembly {
[codex:1282601] fnOut := fnIn
[codex:1282601] }
[codex:1282601] }
[codex:1282601]
[codex:1282601] /**
[codex:1282601] * @dev Function type cast to avoid duplicate declaration/allocation
[codex:1282601] * of MarketState and WithdrawalBatch return parameters.
[codex:1282601] */
[codex:1282601] function asReturnsPointers(
[codex:1282601] function() internal view returns (MarketState memory, uint32, WithdrawalBatch memory) fnIn
[codex:1282601] ) internal pure returns (function() internal view returns (uint256, uint32, uint256) fnOut) {
[codex:1282601] assembly {
[codex:1282601] fnOut := fnIn
[codex:1282601] }
[codex:1282601] }
[codex:1282601]
[codex:1282601] /**
[codex:1282601] * @dev Function type cast to avoid duplicate declaration/allocation
[codex:1282601] * of manually allocated MarketParameters in market constructor.
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing process**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '2065,2425p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] revert(0x1c, 0x04)
[codex:1282601] }
[codex:1282601] }
[codex:1282601]
[codex:1282601] uint256 constant InsufficientReservesForFeeWithdrawal_ErrorSelector = 0xf784cfa4;
[codex:1282601]
[codex:1282601] /// @dev Equivalent to `revert InsufficientReservesForFeeWithdrawal()`
[codex:1282601] function revert_InsufficientReservesForFeeWithdrawal() pure {
[codex:1282601] assembly {
[codex:1282601] mstore(0, 0xf784cfa4)
[codex:1282601] revert(0x1c, 0x04)
[codex:1282601] }
[codex:1282601] }
[codex:1282601]
[codex:1282601] uint256 constant WithdrawalBatchNotExpired_ErrorSelector = 0x2561b880;
[codex:1282601]
[codex:1282601] /// @dev Equivalent to `revert WithdrawalBatchNotExpired()`
[codex:1282601] function revert_WithdrawalBatchNotExpired() pure {
[codex:1282601] assembly {
[codex:1282601] mstore(0, 0x2561b880)
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing process**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '2425,2785p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 5ms:
[codex:1282601] /// Copy delinquencyFeeRay
[codex:1282601] mstore(add(dst, InterestAndFeesAccrued_delinquencyFeeRay_offset), delinquencyFeeRay)
[codex:1282601] /// Copy protocolFees
[codex:1282601] mstore(add(dst, InterestAndFeesAccrued_protocolFees_offset), protocolFees)
[codex:1282601] log1(
[codex:1282601] dst,
[codex:1282601] InterestAndFeesAccrued_abi_head_size,
[codex:1282601] 0x18247a393d0531b65fbd94f5e78bc5639801a4efda62ae7b43533c4442116c3a
[codex:1282601] )
[codex:1282601] }
[codex:1282601] }
[codex:1282601]
[codex:1282601] function emit_WithdrawalBatchExpired(
[codex:1282601] uint256 expiry,
[codex:1282601] uint256 scaledTotalAmount,
[codex:1282601] uint256 scaledAmountBurned,
[codex:1282601] uint256 normalizedAmountPaid
[codex:1282601] ) {
[codex:1282601] assembly {
[codex:1282601] let freePointer := mload(0x40)
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing processing**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '2785,3145p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 5ms:
[codex:1282601] }
[codex:1282601]
[codex:1282601] /**
[codex:1282601] * @dev Divides two bip, rounding half up to the nearest bip
[codex:1282601] * see https://twitter.com/transmissions11/status/1451131036377571328
[codex:1282601] */
[codex:1282601] function bipDiv(uint256 a, uint256 b) internal pure returns (uint256 c) {
[codex:1282601] assembly {
[codex:1282601] // equivalent to `require(b != 0 && a <= (type(uint256).max - b/2) / BIP)`
[codex:1282601] if or(iszero(b), gt(a, div(sub(not(0), div(b, 2)), BIP))) {
[codex:1282601] mstore(0, Panic_ErrorSelector)
[codex:1282601] mstore(Panic_ErrorCodePointer, Panic_Arithmetic)
[codex:1282601] revert(Error_SelectorPointer, Panic_ErrorLength)
[codex:1282601] }
[codex:1282601]
[codex:1282601] c := div(add(mul(a, BIP), div(b, 2)), b)
[codex:1282601] }
[codex:1282601] }
[codex:1282601]
[codex:1282601] /**
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Proceeding with task**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '3145,3505p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 7ms:
[codex:1282601] // Amount of normalized tokens that have been paid by borrower
[codex:1282601] uint128 normalizedAmountPaid;
[codex:1282601] }
[codex:1282601]
[codex:1282601] struct AccountWithdrawalStatus {
[codex:1282601] uint104 scaledAmount;
[codex:1282601] uint128 normalizedAmountWithdrawn;
[codex:1282601] }
[codex:1282601]
[codex:1282601] struct WithdrawalData {
[codex:1282601] FIFOQueue unpaidBatches;
[codex:1282601] mapping(uint32 => WithdrawalBatch) batches;
[codex:1282601] mapping(uint256 => mapping(address => AccountWithdrawalStatus)) accountStatuses;
[codex:1282601] }
[codex:1282601]
[codex:1282601] library WithdrawalLib {
[codex:1282601] function scaledOwedAmount(WithdrawalBatch memory batch) internal pure returns (uint104) {
[codex:1282601] return batch.scaledTotalAmount - batch.scaledAmountBurned;
[codex:1282601] }
[codex:1282601]
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing exploration**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '3505,3865p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 7ms:
[codex:1282601] normalizedAmount
[codex:1282601] );
[codex:1282601] }
[codex:1282601] }
[codex:1282601] }
[codex:1282601]
[codex:1282601] ================================================================================
[codex:1282601] FILE: contracts/src/market/WildcatMarketBase.sol
[codex:1282601] ================================================================================
[codex:1282601] // SPDX-License-Identifier: Apache-2.0 WITH LicenseRef-Commons-Clause-1.0
[codex:1282601] pragma solidity >=0.8.20;
[codex:1282601]
[codex:1282601] import '../ReentrancyGuard.sol';
[codex:1282601] import '../spherex/SphereXProtectedRegisteredBase.sol';
[codex:1282601] import '../interfaces/IMarketEventsAndErrors.sol';
[codex:1282601] import '../interfaces/IERC20.sol';
[codex:1282601] import '../IHooksFactory.sol';
[codex:1282601] import '../libraries/FeeMath.sol';
[codex:1282601] import '../libraries/MarketErrors.sol';
[codex:1282601] import '../libraries/MarketEvents.sol';
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing exploration**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '3865,4225p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 5ms:
[codex:1282601] * @dev Call `_calculateCurrentState()` and return only the `state` parameter.
[codex:1282601] *
[codex:1282601] * Casting the function type prevents a duplicate declaration of the MarketState
[codex:1282601] * return parameter, which would cause unnecessary zeroing and allocation of memory.
[codex:1282601] * With `viaIR` enabled, the cast is a noop.
[codex:1282601] */
[codex:1282601] function _calculateCurrentStatePointers() internal view returns (uint256 state) {
[codex:1282601] (state, , ) = _calculateCurrentState.asReturnsPointers()();
[codex:1282601] }
[codex:1282601]
[codex:1282601] /**
[codex:1282601] * @dev Returns the scaled total supply the vaut would have at the current block
[codex:1282601] * after applying interest and fees accrued since the last update and burning
[codex:1282601] * market tokens for the pending withdrawal batch if it is expired.
[codex:1282601] */
[codex:1282601] function scaledTotalSupply() external view nonReentrantView returns (uint256) {
[codex:1282601] return _calculateCurrentStatePointers.asReturnsMarketState()().scaledTotalSupply;
[codex:1282601] }
[codex:1282601]
[codex:1282601] /**
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing analysis**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '4225,4585p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 5ms:
[codex:1282601] /**
[codex:1282601] * @dev Function to obfuscate the fact that a value is constant from solc's optimizer.
[codex:1282601] * This prevents function specialization for calls with a constant input parameter,
[codex:1282601] * which usually has very little benefit in terms of gas savings but can
[codex:1282601] * drastically increase contract size.
[codex:1282601] *
[codex:1282601] * The value returned will always match the input value outside of the constructor,
[codex:1282601] * fallback and receive functions.
[codex:1282601] */
[codex:1282601] function _runtimeConstant(
[codex:1282601] uint256 actualConstant
[codex:1282601] ) internal pure returns (uint256 runtimeConstant) {
[codex:1282601] assembly {
[codex:1282601] mstore(0, actualConstant)
[codex:1282601] runtimeConstant := mload(iszero(calldatasize()))
[codex:1282601] }
[codex:1282601] }
[codex:1282601]
[codex:1282601] function _runtimeConstant(
[codex:1282601] address actualConstant
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Proceeding with task**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '4585,4945p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 5ms:
[codex:1282601] using MathUtils for uint256;
[codex:1282601] using MathUtils for bool;
[codex:1282601] using SafeCastLib for uint256;
[codex:1282601] using BoolUtils for bool;
[codex:1282601]
[codex:1282601] // ========================================================================== //
[codex:1282601] // Withdrawal Queries //
[codex:1282601] // ========================================================================== //
[codex:1282601]
[codex:1282601] /**
[codex:1282601] * @dev Returns the expiry timestamp of every unpaid withdrawal batch.
[codex:1282601] */
[codex:1282601] function getUnpaidBatchExpiries() external view nonReentrantView returns (uint32[] memory) {
[codex:1282601] return _withdrawalData.unpaidBatches.values();
[codex:1282601] }
[codex:1282601]
[codex:1282601] function getWithdrawalBatch(
[codex:1282601] uint32 expiry
[codex:1282601] ) external view nonReentrantView returns (WithdrawalBatch memory batch) {
[codex:1282601] (, uint32 pendingBatchExpiry, WithdrawalBatch memory pendingBatch) = _calculateCurrentState();
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Needing more input**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '4945,5305p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] function sphereXValidatePost(
[codex:1282601] int256 num,
[codex:1282601] uint256 gas,
[codex:1282601] bytes32[] calldata valuesBefore,
[codex:1282601] bytes32[] calldata valuesAfter
[codex:1282601] ) external;
[codex:1282601]
[codex:1282601] function sphereXValidateInternalPre(int256 num) external returns (bytes32[] memory);
[codex:1282601]
[codex:1282601] function sphereXValidateInternalPost(
[codex:1282601] int256 num,
[codex:1282601] uint256 gas,
[codex:1282601] bytes32[] calldata valuesBefore,
[codex:1282601] bytes32[] calldata valuesAfter
[codex:1282601] ) external;
[codex:1282601]
[codex:1282601] function addAllowedSenderOnChain(address sender) external;
[codex:1282601]
[codex:1282601] /// This function is taken as is from OZ IERC165, we don't inherit from OZ
[codex:1282601] /// to avoid collisions with the customer OZ version.
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Requesting more content**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '5305,5665p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 7ms:
[codex:1282601] ModifierLocals memory locals
[codex:1282601] ) internal returnsIfNotActivatedPost(locals) {
[codex:1282601] uint256 length;
[codex:1282601] bytes32[] memory storageSlots;
[codex:1282601] bytes32[] memory valuesAfter;
[codex:1282601] assembly {
[codex:1282601] storageSlots := mload(locals)
[codex:1282601] length := mload(storageSlots)
[codex:1282601] valuesAfter := add(storageSlots, add(0xc0, shl(6, length)))
[codex:1282601] }
[codex:1282601] _readStorageTo(storageSlots, valuesAfter);
[codex:1282601] assembly {
[codex:1282601] let sphereXEngineAddress := mload(add(locals, 0x60))
[codex:1282601] let arrayDataSize := shl(5, length)
[codex:1282601] let calldataSize := add(0xc4, shl(1, arrayDataSize))
[codex:1282601]
[codex:1282601] let calldataPointer := add(storageSlots, add(arrayDataSize, 0x20))
[codex:1282601] let gasDiff := sub(mload(add(locals, 0x40)), gas())
[codex:1282601] mstore(add(calldataPointer, 0x20), gasDiff)
[codex:1282601] let slotBefore := sub(calldataPointer, 32)
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Checking for more content**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '5665,6030p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] }
[codex:1282601]
[codex:1282601] // ========================================================================== //
[codex:1282601] // Hook for deposit //
[codex:1282601] // ========================================================================== //
[codex:1282601]
[codex:1282601] uint256 internal constant DepositCalldataSize = 0x24;
[codex:1282601] // Size of lender + scaledAmount + state + extraData.offset + extraData.length
[codex:1282601] uint256 internal constant DepositHook_Base_Size = 0x0244;
[codex:1282601] uint256 internal constant DepositHook_ScaledAmount_Offset = 0x20;
[codex:1282601] uint256 internal constant DepositHook_State_Offset = 0x40;
[codex:1282601] uint256 internal constant DepositHook_ExtraData_Head_Offset = 0x200;
[codex:1282601] uint256 internal constant DepositHook_ExtraData_Length_Offset = 0x0220;
[codex:1282601] uint256 internal constant DepositHook_ExtraData_TailOffset = 0x0240;
[codex:1282601]
[codex:1282601] function onDeposit(
[codex:1282601] HooksConfig self,
[codex:1282601] address lender,
[codex:1282601] uint256 scaledAmount,
[codex:1282601] MarketState memory state
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Continuing to read file end**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "sed -n '6030,6299p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] // Write selector for `onCloseMarket`
[codex:1282601] mstore(cdPointer, onCloseMarketSelector)
[codex:1282601] // Copy market state to hook calldata
[codex:1282601] mcopy(headPointer, state, MarketStateSize)
[codex:1282601] // Write bytes offset for `extraData`
[codex:1282601] mstore(
[codex:1282601] add(headPointer, CloseMarketHook_ExtraData_Head_Offset),
[codex:1282601] CloseMarketHook_ExtraData_Length_Offset
[codex:1282601] )
[codex:1282601] // Write length for `extraData`
[codex:1282601] mstore(add(headPointer, CloseMarketHook_ExtraData_Length_Offset), extraCalldataBytes)
[codex:1282601] // Copy `extraData` from end of calldata to hook calldata
[codex:1282601] calldatacopy(
[codex:1282601] add(headPointer, CloseMarketHook_ExtraData_TailOffset),
[codex:1282601] CloseMarketCalldataSize,
[codex:1282601] extraCalldataBytes
[codex:1282601] )
[codex:1282601]
[codex:1282601] let size := add(CloseMarketHook_Base_Size, extraCalldataBytes)
[codex:1282601]
[codex:1282601]
[codex:1282601]
[codex:1282601]
[codex:1282601]
[codex:1282601]
[codex:1282601]
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Conducting detailed security audit**
[codex:1282601]
[codex:1282601] I’m carefully reviewing the code for vulnerabilities across many categories—reentrancy, access control, proxy issues, signature validation, and more. I’m analyzing how external calls and state updates interact, checking reentrancy guards, and evaluating edge cases like division by zero and hook call ordering. I’m also verifying that protections like onlyBorrower checks and safe token transfers are properly applied, and considering complex scenarios with sanctions and external calls to sentinel. Overall, I’m looking for subtle flaws in logic and access control that might lead to exploits or unexpected behavior.
[codex:1282601] thinking
[codex:1282601] **Analyzing token transfer assumptions and accounting risks**
[codex:1282601]
[codex:1282601] I'm focusing on how the system handles fee-on-transfer or rebasing tokens, which may cause discrepancies between credited shares and actual assets received, potentially leading to insolvency or accounting mismatches. I’m also examining various hooks, sanction overrides, and loop behaviors for edge cases or inefficiencies, while double-checking math operations and token allowance handling to identify any subtle issues.
[codex:1282601] thinking
[codex:1282601] **Evaluating reserve ratio updates and assembly call handling**
[codex:1282601]
[codex:1282601] I'm working through how reserve ratio changes are validated using old and new ratios to ensure liquidity sufficiency, and I’m carefully examining an assembly code pattern that incorrectly checks returndata size before making a call, causing hook calls to always revert and potentially block updates—this looks like a functional bug affecting configurability rather than a direct exploit.
[codex:1282601] thinking
[codex:1282601] **Analyzing hook call evaluation order and related logic**
[codex:1282601]
[codex:1282601] I’m digging into how the unspecified evaluation order in assembly affects the hook call’s returndata size check, revealing a fragile and possibly inconsistent behavior that can cause hooks to revert unexpectedly depending on prior external calls—this subtlety could lead to denial-of-service in certain configurations and deserves close attention during auditing.
[codex:1282601] thinking
[codex:1282601] **Examining constructor constraints and external call ordering**
[codex:1282601]
[codex:1282601] I’m exploring how the escrow constructor depends on sentinel state and how external calls interact with nonReentrant guards, uncovering subtle trust and reentrancy assumptions tied to modifier ordering and deployment paths that could affect contract behavior in edge cases.
[codex:1282601] thinking
[codex:1282601] **Analyzing reentrancy timing and hook call data handling**
[codex:1282601]
[codex:1282601] I'm piecing together how the pre-call reentrancy via sphereXGuardExternal plays out before nonReentrant guards activate, confirming it likely doesn’t break state but could cause nested calls; also, I'm examining how a hook’s returndata size check may use stale data due to evaluation order, potentially causing unexpected parameter updates or errors during interest setting.
[codex:1282601] thinking
[codex:1282601] **Examining token reentrancy and balance implications**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-multi-g4d1szym exited 1 in 9ms:
[codex:1282601]
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Preparing to locate specific code references**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc 'rg -n "onSetAnnualInterestAndReserveRatioBips" contracts/src/types/HooksConfig.sol' in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] 709: function onSetAnnualInterestAndReserveRatioBips(
[codex:1282601] 717: IHooks.onSetAnnualInterestAndReserveRatioBips.selector
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Preparing code excerpt with line numbers**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "nl -ba contracts/src/types/HooksConfig.sol | sed -n '700,760p'" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] 700 // Size of annualInterestBips + state + extraData.offset + extraData.length
[codex:1282601] 701 uint256 internal constant SetAnnualInterestAndReserveRatioBipsHook_Base_Size = 0x0244;
[codex:1282601] 702 uint256 internal constant SetAnnualInterestAndReserveRatioBipsHook_ReserveRatioBits_Offset = 0x20;
[codex:1282601] 703 uint256 internal constant SetAnnualInterestAndReserveRatioBipsHook_State_Offset = 0x40;
[codex:1282601] 704 uint256 internal constant SetAnnualInterestAndReserveRatioBipsHook_ExtraData_Head_Offset = 0x0200;
[codex:1282601] 705 uint256 internal constant SetAnnualInterestAndReserveRatioBipsHook_ExtraData_Length_Offset =
[codex:1282601] 706 0x0220;
[codex:1282601] 707 uint256 internal constant SetAnnualInterestAndReserveRatioBipsHook_ExtraData_TailOffset = 0x0240;
[codex:1282601] 708
[codex:1282601] 709 function onSetAnnualInterestAndReserveRatioBips(
[codex:1282601] 710 HooksConfig self,
[codex:1282601] 711 uint16 annualInterestBips,
[codex:1282601] 712 uint16 reserveRatioBips,
[codex:1282601] 713 MarketState memory state
[codex:1282601] 714 ) internal returns (uint16 newAnnualInterestBips, uint16 newReserveRatioBips) {
[codex:1282601] 715 address target = self.hooksAddress();
[codex:1282601] 716 uint32 onSetAnnualInterestBipsSelector = uint32(
[codex:1282601] 717 IHooks.onSetAnnualInterestAndReserveRatioBips.selector
[codex:1282601] 718 );
[codex:1282601] 719 if (self.useOnSetAnnualInterestAndReserveRatioBips()) {
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Requesting additional lines for check**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "nl -ba contracts/src/types/HooksConfig.sol | sed -n '760,830p'" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] 760
[codex:1282601] 761 // Returndata is expected to have the new values for `annualInterestBips` and `reserveRatioBips`
[codex:1282601] 762 if or(
[codex:1282601] 763 lt(returndatasize(), 0x40),
[codex:1282601] 764 iszero(call(gas(), target, 0, add(cdPointer, 0x1c), size, 0, 0x40))
[codex:1282601] 765 ) {
[codex:1282601] 766 returndatacopy(0, 0, returndatasize())
[codex:1282601] 767 revert(0, returndatasize())
[codex:1282601] 768 }
[codex:1282601] 769
[codex:1282601] 770 newAnnualInterestBips := and(mload(0), 0xffff)
[codex:1282601] 771 newReserveRatioBips := and(mload(0x20), 0xffff)
[codex:1282601] 772 }
[codex:1282601] 773 } else {
[codex:1282601] 774 (newAnnualInterestBips, newReserveRatioBips) = (annualInterestBips, reserveRatioBips);
[codex:1282601] 775 }
[codex:1282601] 776 }
[codex:1282601] 777
[codex:1282601] 778 // ========================================================================== //
[codex:1282601] 779 // Hook for protocol fee bips updated //
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Identifying relevant code lines for bug report**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc 'rg -n "safeTransferFrom" contracts/src/market/WildcatMarket.sol' in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] 76: asset.safeTransferFrom(msg.sender, address(this), amount);
[codex:1282601] 172: asset.safeTransferFrom(msg.sender, address(this), amount);
[codex:1282601] 191: asset.safeTransferFrom(msg.sender, address(this), amount);
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Identifying key lines for deposit and repay**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "nl -ba contracts/src/market/WildcatMarket.sol | sed -n '50,110p'" in /tmp/codex-multi-g4d1szym succeeded in 5ms:
[codex:1282601] 50 * total supply.
[codex:1282601] 51 *
[codex:1282601] 52 * Reverts if the market is closed or if the scaled token amount
[codex:1282601] 53 * that would be minted for the deposit is zero.
[codex:1282601] 54 */
[codex:1282601] 55 function _depositUpTo(
[codex:1282601] 56 uint256 amount
[codex:1282601] 57 ) internal virtual nonReentrant returns (uint256 /* actualAmount */) {
[codex:1282601] 58 // Get current state
[codex:1282601] 59 MarketState memory state = _getUpdatedState();
[codex:1282601] 60
[codex:1282601] 61 if (state.isClosed) revert_DepositToClosedMarket();
[codex:1282601] 62
[codex:1282601] 63 // Reduce amount if it would exceed totalSupply
[codex:1282601] 64 amount = MathUtils.min(amount, state.maximumDeposit());
[codex:1282601] 65
[codex:1282601] 66 // Scale the mint amount
[codex:1282601] 67 uint104 scaledAmount = state.scaleAmount(amount).toUint104();
[codex:1282601] 68 if (scaledAmount == 0) revert_NullMintAmount();
[codex:1282601] 69
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Checking repay function**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "nl -ba contracts/src/market/WildcatMarket.sol | sed -n '150,230p'" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] 150 if (_isFlaggedByChainalysis(borrower)) {
[codex:1282601] 151 revert_BorrowWhileSanctioned();
[codex:1282601] 152 }
[codex:1282601] 153
[codex:1282601] 154 MarketState memory state = _getUpdatedState();
[codex:1282601] 155 if (state.isClosed) revert_BorrowFromClosedMarket();
[codex:1282601] 156
[codex:1282601] 157 uint256 borrowable = state.borrowableAssets(totalAssets());
[codex:1282601] 158 if (amount > borrowable) revert_BorrowAmountTooHigh();
[codex:1282601] 159
[codex:1282601] 160 // Execute borrow hook if enabled
[codex:1282601] 161 hooks.onBorrow(amount, state);
[codex:1282601] 162
[codex:1282601] 163 asset.safeTransfer(msg.sender, amount);
[codex:1282601] 164 _writeState(state);
[codex:1282601] 165 emit_Borrow(amount);
[codex:1282601] 166 }
[codex:1282601] 167
[codex:1282601] 168 function _repay(MarketState memory state, uint256 amount, uint256 baseCalldataSize) internal {
[codex:1282601] 169 if (amount == 0) revert_NullRepayAmount();
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Analyzing fee-on-transfer token effects on accounting**
[codex:1282601]
[codex:1282601] I'm breaking down how fee-on-transfer tokens cause incorrect asset and debt accounting in deposit, repay, and closeMarket flows, leading to overminting shares and undercollateralized markets, with specifics about relevant code lines to support the findings.
[codex:1282601] exec
[codex:1282601] /bin/bash -lc 'rg -n "safeTransferFrom" contracts/src/market/WildcatMarketWithdrawals.sol' in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] 286: asset.safeTransferFrom(msg.sender, address(this), repayAmount);
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Displaying context with line numbers**
[codex:1282601] exec
[codex:1282601] /bin/bash -lc "nl -ba contracts/src/market/WildcatMarketWithdrawals.sol | sed -n '260,310p'" in /tmp/codex-multi-g4d1szym succeeded in 6ms:
[codex:1282601] 260 address escrow = _createEscrowForUnderlyingAsset(accountAddress);
[codex:1282601] 261 asset.safeTransfer(escrow, normalizedAmountWithdrawn);
[codex:1282601] 262
[codex:1282601] 263 // Emit `SanctionedAccountWithdrawalSentToEscrow` event using a custom emitter.
[codex:1282601] 264 emit_SanctionedAccountWithdrawalSentToEscrow(
[codex:1282601] 265 accountAddress,
[codex:1282601] 266 escrow,
[codex:1282601] 267 expiry,
[codex:1282601] 268 normalizedAmountWithdrawn
[codex:1282601] 269 );
[codex:1282601] 270 } else {
[codex:1282601] 271 asset.safeTransfer(accountAddress, normalizedAmountWithdrawn);
[codex:1282601] 272 }
[codex:1282601] 273
[codex:1282601] 274 emit_WithdrawalExecuted(expiry, accountAddress, normalizedAmountWithdrawn);
[codex:1282601] 275
[codex:1282601] 276 return normalizedAmountWithdrawn;
[codex:1282601] 277 }
[codex:1282601] 278
[codex:1282601] 279 function repayAndProcessUnpaidWithdrawalBatches(
[codex:1282601]
[codex:1282601]
[codex:1282601] thinking
[codex:1282601] **Analyzing fee-on-transfer and hook bugs**
[codex:1282601] thinking
[codex:1282601] **Composing structured vulnerability findings**
[codex:1282601]
[codex:1282601] I’m organizing the findings with clearly defined titles, exploit scenarios, recommendations, evidence, and exact file locations for each issue. I’m making sure to use precise line numbers and avoid ambiguous ranges, and formatting everything as clean JSON. This way, the report will be concise, well-structured, and easy to review.
[codex:1282601] codex
[codex:1282601] {"no_findings":false,"summary":"Found 2 issues: accounting assumes 1:1 ERC20 transfers (fee-on-transfer/rebasing breaks invariants), and the hook returndata size check can revert or accept stale values depending on prior calls.","findings":[{"severity":"medium","category":"math","title":"Fee-on-transfer/rebasing assets break accounting and can underfund withdrawals","exploit_scenario":"If the market is deployed with a fee-on-transfer token, a depositor sending 100 units may only deliver 90, but the market mints scaled shares for the full 100. The attacker can later withdraw 100, draining value from other lenders. Similarly, `closeMarket` repays `remainingDebt` and increments `currentlyHeld` by the requested amount even if the token transfer delivers less, allowing closure with insufficient assets and leaving withdrawals underfunded.","recommendation":"Enforce non-rebasing/non-fee-on-transfer assets at deployment, or compute actual received amounts by checking `balanceOf` before/after transfers and use the net amount for minting, repayment accounting, and `currentlyHeld` updates. Revert if the received amount differs from the requested amount when strict behavior is desired.","evidence":"`_depositUpTo` mints scaledAmount from `amount` then calls `asset.safeTransferFrom` without verifying the net received amount, and `closeMarket` assumes `_repay` transferred the full `remainingDebt` when incrementing `currentlyHeld`.","locations":["contracts/src/market/WildcatMarket.sol:55","contracts/src/market/WildcatMarket.sol:76","contracts/src/market/WildcatMarket.sol:168","contracts/src/market/WildcatMarket.sol:172","contracts/src/market/WildcatMarket.sol:217","contracts/src/market/WildcatMarket.sol:222","contracts/src/market/WildcatMarketWithdrawals.sol:279"]},{"severity":"low","category":"other","title":"Hook return-data size check can use stale `returndatasize`, causing DoS or stale values","exploit_scenario":"When `useOnSetAnnualInterestAndReserveRatioBips` is enabled, the assembly checks `lt(returndatasize(), 0x40)` in the same expression as the `call`. If the previous external call returned < 64 bytes (common after `balanceOf`), the condition is true before the hook call executes, and the hook will revert even when it returns correct data. If a prior call returned >= 64 bytes, a hook returning short data can bypass the size check and the function will read stale memory as the new interest/reserve values.","recommendation":"Separate the `call` from the returndata checks: perform the call first, then verify `returndatasize() >= 0x40` and copy the returndata into memory before reading. Avoid using `returndatasize()` in the same expression as `call`.","evidence":"The size check is evaluated alongside the external call: `if or(lt(returndatasize(), 0x40), iszero(call(...))) { ... }`, which can read stale returndatasize and mis-handle short returns.","locations":["contracts/src/types/HooksConfig.sol:761","contracts/src/types/HooksConfig.sol:763","contracts/src/types/HooksConfig.sol:764"]}]}
[codex:1282601] tokens used
[codex:1282601] 181,627
[codex:1282601] {"no_findings":false,"summary":"Found 2 issues: accounting assumes 1:1 ERC20 transfers (fee-on-transfer/rebasing breaks invariants), and the hook returndata size check can revert or accept stale values depending on prior calls.","findings":[{"severity":"medium","category":"math","title":"Fee-on-transfer/rebasing assets break accounting and can underfund withdrawals","exploit_scenario":"If the market is deployed with a fee-on-transfer token, a depositor sending 100 units may only deliver 90, but the market mints scaled shares for the full 100. The attacker can later withdraw 100, draining value from other lenders. Similarly, `closeMarket` repays `remainingDebt` and increments `currentlyHeld` by the requested amount even if the token transfer delivers less, allowing closure with insufficient assets and leaving withdrawals underfunded.","recommendation":"Enforce non-rebasing/non-fee-on-transfer assets at deployment, or compute actual received amounts by checking `balanceOf` before/after transfers and use the net amount for minting, repayment accounting, and `currentlyHeld` updates. Revert if the received amount differs from the requested amount when strict behavior is desired.","evidence":"`_depositUpTo` mints scaledAmount from `amount` then calls `asset.safeTransferFrom` without verifying the net received amount, and `closeMarket` assumes `_repay` transferred the full `remainingDebt` when incrementing `currentlyHeld`.","locations":["contracts/src/market/WildcatMarket.sol:55","contracts/src/market/WildcatMarket.sol:76","contracts/src/market/WildcatMarket.sol:168","contracts/src/market/WildcatMarket.sol:172","contracts/src/market/WildcatMarket.sol:217","contracts/src/market/WildcatMarket.sol:222","contracts/src/market/WildcatMarketWithdrawals.sol:279"]},{"severity":"low","category":"other","title":"Hook return-data size check can use stale `returndatasize`, causing DoS or stale values","exploit_scenario":"When `useOnSetAnnualInterestAndReserveRatioBips` is enabled, the assembly checks `lt(returndatasize(), 0x40)` in the same expression as the `call`. If the previous external call returned < 64 bytes (common after `balanceOf`), the condition is true before the hook call executes, and the hook will revert even when it returns correct data. If a prior call returned >= 64 bytes, a hook returning short data can bypass the size check and the function will read stale memory as the new interest/reserve values.","recommendation":"Separate the `call` from the returndata checks: perform the call first, then verify `returndatasize() >= 0x40` and copy the returndata into memory before reading. Avoid using `returndatasize()` in the same expression as `call`.","evidence":"The size check is evaluated alongside the external call: `if or(lt(returndatasize(), 0x40), iszero(call(...))) { ... }`, which can read stale returndatasize and mis-handle short returns.","locations":["contracts/src/types/HooksConfig.sol:761","contracts/src/types/HooksConfig.sol:763","contracts/src/types/HooksConfig.sol:764"]}]}
{
"codex": {
"ran_at": "2025-12-28T00:09:18.236715+00:00",
"returncode": 0
},
"summary": "Found 2 issues: accounting assumes 1:1 ERC20 transfers (fee-on-transfer/rebasing breaks invariants), and the hook returndata size check can revert or accept stale values depending on prior calls.",
"raw_final": {
"summary": "Found 2 issues: accounting assumes 1:1 ERC20 transfers (fee-on-transfer/rebasing breaks invariants), and the hook returndata size check can revert or accept stale values depending on prior calls.",
"findings": [
{
"title": "Fee-on-transfer/rebasing assets break accounting and can underfund withdrawals",
"category": "math",
"evidence": "`_depositUpTo` mints scaledAmount from `amount` then calls `asset.safeTransferFrom` without verifying the net received amount, and `closeMarket` assumes `_repay` transferred the full `remainingDebt` when incrementing `currentlyHeld`.",
"severity": "medium",
"locations": [
"contracts/src/market/WildcatMarket.sol:55",
"contracts/src/market/WildcatMarket.sol:76",
"contracts/src/market/WildcatMarket.sol:168",
"contracts/src/market/WildcatMarket.sol:172",
"contracts/src/market/WildcatMarket.sol:217",
"contracts/src/market/WildcatMarket.sol:222",
"contracts/src/market/WildcatMarketWithdrawals.sol:279"
],
"recommendation": "Enforce non-rebasing/non-fee-on-transfer assets at deployment, or compute actual received amounts by checking `balanceOf` before/after transfers and use the net amount for minting, repayment accounting, and `currentlyHeld` updates. Revert if the received amount differs from the requested amount when strict behavior is desired.",
"exploit_scenario": "If the market is deployed with a fee-on-transfer token, a depositor sending 100 units may only deliver 90, but the market mints scaled shares for the full 100. The attacker can later withdraw 100, draining value from other lenders. Similarly, `closeMarket` repays `remainingDebt` and increments `currentlyHeld` by the requested amount even if the token transfer delivers less, allowing closure with insufficient assets and leaving withdrawals underfunded."
},
{
"title": "Hook return-data size check can use stale `returndatasize`, causing DoS or stale values",
"category": "other",
"evidence": "The size check is evaluated alongside the external call: `if or(lt(returndatasize(), 0x40), iszero(call(...))) { ... }`, which can read stale returndatasize and mis-handle short returns.",
"severity": "low",
"locations": [
"contracts/src/types/HooksConfig.sol:761",
"contracts/src/types/HooksConfig.sol:763",
"contracts/src/types/HooksConfig.sol:764"
],
"recommendation": "Separate the `call` from the returndata checks: perform the call first, then verify `returndatasize() >= 0x40` and copy the returndata into memory before reading. Avoid using `returndatasize()` in the same expression as `call`.",
"exploit_scenario": "When `useOnSetAnnualInterestAndReserveRatioBips` is enabled, the assembly checks `lt(returndatasize(), 0x40)` in the same expression as the `call`. If the previous external call returned < 64 bytes (common after `balanceOf`), the condition is true before the hook call executes, and the hook will revert even when it returns correct data. If a prior call returned >= 64 bytes, a hook returning short data can bypass the size check and the function will read stale memory as the new interest/reserve values."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: ISZERO 0000000a: PUSH2 0x0011 0000000d: JUMPI 0000000e: PUSH0 0000000f: DUP1 00000010: REVERT 00000011: JUMPDEST 00000012: PUSH0 00000013: CALLDATALOAD 00000014: PUSH1 0xe0 00000016: SHR 00000017: DUP1 00000018: PUSH3 0xae3bf8 0000001c: EQ 0000001d: PUSH2 0x03ce 00000020: JUMPI 00000021: DUP1 00000022: PUSH4 0x01e1d114 00000027: EQ 00000028: PUSH2 0x03c9 0000002b: JUMPI 0000002c: DUP1 0000002d: PUSH4 0x02372c4f 00000032: EQ 00000033: PUSH2 0x03c4 00000036: JUMPI 00000037: DUP1 00000038: PUSH4 0x06fdde03 0000003d: EQ 0000003e: PUSH2 0x03bf 00000041: JUMPI 00000042: DUP1 00000043: PUSH4 0x088fee5e 00000048: EQ 00000049: PUSH2 0x03ba 0000004c: JUMPI 0000004d: DUP1 0000004e: PUSH4 0x095ea7b3 00000053: EQ 00000054: PUSH2 0x03b5 00000057: JUMPI 00000058: DUP1 00000059: PUSH4 0x0c1e3fea 0000005e: EQ 0000005f: PUSH2 0x03b0 00000062: JUMPI 00000063: DUP1 00000064: PUSH4 0x0c3f6acf 00000069: EQ 0000006a: PUSH2 0x03ab 0000006d: JUMPI 0000006e: DUP1 0000006f: PUSH4 0x0cd1a5b6 00000074: EQ 00000075: PUSH2 0x03a6 00000078: JUMPI 00000079: DUP1 0000007a: PUSH4 0x11057cd0 0000007f: EQ 00000080: PUSH2 0x03a1 00000083: JUMPI 00000084: DUP1 00000085: PUSH4 0x14a1c32d 0000008a: EQ 0000008b: PUSH2 0x039c 0000008e: JUMPI 0000008f: DUP1 00000090: PUSH4 0x18160ddd 00000095: EQ 00000096: PUSH2 0x0397 00000099: JUMPI 0000009a: DUP1 0000009b: PUSH4 0x1d8557d7 000000a0: EQ 000000a1: PUSH2 0x0392 000000a4: JUMPI 000000a5: DUP1 000000a6: PUSH4 0x1da24f3e 000000ab: EQ 000000ac: PUSH2 0x038d 000000af: JUMPI 000000b0: DUP1 000000b1: PUSH4 0x1e3cef53 000000b6: EQ 000000b7: PUSH2 0x0388 000000ba: JUMPI 000000bb: DUP1 000000bc: PUSH4 0x23b872dd 000000c1: EQ 000000c2: PUSH2 0x0383 000000c5: JUMPI 000000c6: DUP1 000000c7: PUSH4 0x2ab4d052 000000cc: EQ 000000cd: PUSH2 0x037e 000000d0: JUMPI 000000d1: DUP1 000000d2: PUSH4 0x313ce567 000000d7: EQ 000000d8: PUSH2 0x0379 000000db: JUMPI 000000dc: DUP1 000000dd: PUSH4 0x34bca29c 000000e2: EQ 000000e3: PUSH2 0x0374 000000e6: JUMPI 000000e7: DUP1 000000e8: PUSH4 0x371fd8e6 000000ed: EQ 000000ee: PUSH2 0x036f 000000f1: JUMPI 000000f2: DUP1 000000f3: PUSH4 0x38d52e0f 000000f8: EQ 000000f9: PUSH2 0x036a 000000fc: JUMPI 000000fd: DUP1 000000fe: PUSH4 0x3c231166 00000103: EQ 00000104: PUSH2 0x0365 00000107: JUMPI 00000108: DUP1 00000109: PUSH4 0x3f3e4c11 0000010e: EQ 0000010f: PUSH2 0x0360 00000112: JUMPI 00000113: DUP1 00000114: PUSH4 0x46904840 00000119: EQ 0000011a: PUSH2 0x035b 0000011d: JUMPI 0000011e: DUP1 0000011f: PUSH4 0x4be687c6 00000124: EQ 00000125: PUSH2 0x0356 00000128: JUMPI 00000129: DUP1 0000012a: PUSH4 0x4c6c848f 0000012f: EQ 00000130: PUSH2 0x0351 00000133: JUMPI 00000134: DUP1 00000135: PUSH4 0x514a4cd6 0000013a: EQ 0000013b: PUSH2 0x034c 0000013e: JUMPI 0000013f: DUP1 00000140: PUSH4 0x54635570 00000145: EQ 00000146: PUSH2 0x02b1 00000149: JUMPI 0000014a: DUP1 0000014b: PUSH4 0x54b302c5 00000150: EQ 00000151: PUSH2 0x0347 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0x54fd4d50 0000015b: EQ 0000015c: PUSH2 0x0342 0000015f: JUMPI 00000160: DUP1 00000161: PUSH4 0x6731ba6d 00000166: EQ 00000167: PUSH2 0x033d 0000016a: JUMPI 0000016b: DUP1 0000016c: PUSH4 0x683dd191 00000171: EQ 00000172: PUSH2 0x0338 00000175: JUMPI 00000176: DUP1 00000177: PUSH4 0x6b174f35 0000017c: EQ 0000017d: PUSH2 0x0333 00000180: JUMPI 00000181: DUP1 00000182: PUSH4 0x70a08231 00000187: EQ 00000188: PUSH2 0x032e 0000018b: JUMPI 0000018c: DUP1 0000018d: PUSH4 0x7243d96c 00000192: EQ 00000193: PUSH2 0x0329 00000196: JUMPI 00000197: DUP1 00000198: PUSH4 0x739ccdd3 0000019d: EQ 0000019e: PUSH2 0x0324 000001a1: JUMPI 000001a2: DUP1 000001a3: PUSH4 0x74058859 000001a8: EQ 000001a9: PUSH2 0x031f 000001ac: JUMPI 000001ad: DUP1 000001ae: PUSH4 0x76636017 000001b3: EQ 000001b4: PUSH2 0x031a 000001b7: JUMPI 000001b8: DUP1 000001b9: PUSH4 0x7df1f1b9 000001be: EQ 000001bf: PUSH2 0x0315 000001c2: JUMPI 000001c3: DUP1 000001c4: PUSH4 0x878eb921 000001c9: EQ 000001ca: PUSH2 0x0310 000001cd: JUMPI 000001ce: DUP1 000001cf: PUSH4 0x95d89b41 000001d4: EQ 000001d5: PUSH2 0x030b 000001d8: JUMPI 000001d9: DUP1 000001da: PUSH4 0x9e6f9802 000001df: EQ 000001e0: PUSH2 0x0306 000001e3: JUMPI 000001e4: DUP1 000001e5: PUSH4 0xa9059cbb 000001ea: EQ 000001eb: PUSH2 0x0301 000001ee: JUMPI 000001ef: DUP1 000001f0: PUSH4 0xae6ea191 000001f5: EQ 000001f6: PUSH2 0x02fc 000001f9: JUMPI 000001fa: DUP1 000001fb: PUSH4 0xb1bf962d 00000200: EQ 00000201: PUSH2 0x02f7 00000204: JUMPI 00000205: DUP1 00000206: PUSH4 0xb68ce7a2 0000020b: EQ 0000020c: PUSH2 0x02f2 0000020f: JUMPI 00000210: DUP1 00000211: PUSH4 0xb6b55f25 00000216: EQ 00000217: PUSH2 0x02ed 0000021a: JUMPI 0000021b: DUP1 0000021c: PUSH4 0xc2b6b58c 00000221: EQ 00000222: PUSH2 0x02e8 00000225: JUMPI 00000226: DUP1 00000227: PUSH4 0xc45a0155 0000022c: EQ 0000022d: PUSH2 0x02e3 00000230: JUMPI 00000231: DUP1 00000232: PUSH4 0xc511ed5e 00000237: EQ 00000238: PUSH2 0x02de 0000023b: JUMPI 0000023c: DUP1 0000023d: PUSH4 0xc5ebeaec 00000242: EQ 00000243: PUSH2 0x02d9 00000246: JUMPI 00000247: DUP1 00000248: PUSH4 0xc8796572 0000024d: EQ 0000024e: PUSH2 0x02d4 00000251: JUMPI 00000252: DUP1 00000253: PUSH4 0xcd7033c4 00000258: EQ 00000259: PUSH2 0x02cf 0000025c: JUMPI 0000025d: DUP1 0000025e: PUSH4 0xd98e0fe8 00000263: EQ 00000264: PUSH2 0x02ca 00000267: JUMPI 00000268: DUP1 00000269: PUSH4 0xdbcd50b4 0000026e: EQ 0000026f: PUSH2 0x02c5 00000272: JUMPI 00000273: DUP1 00000274: PUSH4 0xdcd549d4 00000279: EQ 0000027a: PUSH2 0x02c0 0000027d: JUMPI 0000027e: DUP1 0000027f: PUSH4 0xdd62ed3e 00000284: EQ 00000285: PUSH2 0x02bb 00000288: JUMPI 00000289: DUP1 0000028a: PUSH4 0xe5adc635 0000028f: EQ 00000290: PUSH2 0x02b6 00000293: JUMPI 00000294: DUP1 00000295: PUSH4 0xe7e5db4f 0000029a: EQ 0000029b: PUSH2 0x02b1 0000029e: JUMPI 0000029f: PUSH4 0xf58c251c 000002a4: EQ 000002a5: PUSH2 0x02ac 000002a8: JUMPI 000002a9: PUSH0 000002aa: DUP1 000002ab: REVERT 000002ac: JUMPDEST 000002ad: PUSH2 0x25b3 000002b0: JUMP 000002b1: JUMPDEST 000002b2: PUSH2 0x104e 000002b5: JUMP 000002b6: JUMPDEST 000002b7: PUSH2 0x2457 000002ba: JUMP 000002bb: JUMPDEST 000002bc: PUSH2 0x23dc 000002bf: JUMP 000002c0: JUMPDEST 000002c1: PUSH2 0x22db 000002c4: JUMP 000002c5: JUMPDEST 000002c6: PUSH2 0x2265 000002c9: JUMP 000002ca: JUMPDEST 000002cb: PUSH2 0x2241 000002ce: JUMP 000002cf: JUMPDEST 000002d0: PUSH2 0x2207 000002d3: JUMP 000002d4: JUMPDEST 000002d5: PUSH2 0x211e 000002d8: JUMP 000002d9: JUMPDEST 000002da: PUSH2 0x1ff3 000002dd: JUMP 000002de: JUMPDEST 000002df: PUSH2 0x1c90 000002e2: JUMP 000002e3: JUMPDEST 000002e4: PUSH2 0x1c40 000002e7: JUMP 000002e8: JUMPDEST 000002e9: PUSH2 0x1c1f 000002ec: JUMP 000002ed: JUMPDEST 000002ee: PUSH2 0x1bde 000002f1: JUMP 000002f2: JUMPDEST 000002f3: PUSH2 0x1bb5 000002f6: JUMP 000002f7: JUMPDEST 000002f8: PUSH2 0x1b83 000002fb: JUMP 000002fc: JUMPDEST 000002fd: PUSH2 0x1a37 00000300: JUMP 00000301: JUMPDEST 00000302: PUSH2 0x1874 00000305: JUMP 00000306: JUMPDEST 00000307: PUSH2 0x183a 0000030a: JUMP 0000030b: JUMPDEST 0000030c: PUSH2 0x17d5 0000030f: JUMP 00000310: JUMPDEST 00000311: PUSH2 0x16f8 00000314: JUMP 00000315: JUMPDEST 00000316: PUSH2 0x1667 00000319: JUMP 0000031a: JUMPDEST 0000031b: PUSH2 0x1623 0000031e: JUMP 0000031f: JUMPDEST 00000320: PUSH2 0x14e9 00000323: JUMP 00000324: JUMPDEST 00000325: PUSH2 0x1451 00000328: JUMP 00000329: JUMPDEST 0000032a: PUSH2 0x13cc 0000032d: JUMP 0000032e: JUMPDEST 0000032f: PUSH2 0x1361 00000332: JUMP 00000333: JUMPDEST 00000334: PUSH2 0x129e 00000337: JUMP 00000338: JUMPDEST 00000339: PUSH2 0x126a 0000033c: JUMP 0000033d: JUMPDEST 0000033e: PUSH2 0x10e6 00000341: JUMP 00000342: JUMPDEST 00000343: PUSH2 0x10c2 00000346: JUMP 00000347: JUMPDEST 00000348: PUSH2 0x109e 0000034b: JUMP 0000034c: JUMPDEST 0000034d: PUSH2 0x1014 00000350: JUMP 00000351: JUMPDEST 00000352: PUSH2 0x0f5b 00000355: JUMP 00000356: JUMPDEST 00000357: PUSH2 0x0f21 0000035a: JUMP 0000035b: JUMPDEST 0000035c: PUSH2 0x0ed1 0000035f: JUMP 00000360: JUMPDEST 00000361: PUSH2 0x0d87 00000364: JUMP 00000365: JUMPDEST 00000366: PUSH2 0x0d35 00000369: JUMP 0000036a: JUMPDEST 0000036b: PUSH2 0x0ce5 0000036e: JUMP 0000036f: JUMPDEST 00000370: PUSH2 0x0c03 00000373: JUMP 00000374: JUMPDEST 00000375: PUSH2 0x0bab 00000378: JUMP 00000379: JUMPDEST 0000037a: PUSH2 0x0b6e 0000037d: JUMP 0000037e: JUMPDEST 0000037f: PUSH2 0x0b3d 00000382: JUMP 00000383: JUMPDEST 00000384: PUSH2 0x0a41 00000387: JUMP 00000388: JUMPDEST 00000389: PUSH2 0x09fa 0000038c: JUMP 0000038d: JUMPDEST 0000038e: PUSH2 0x099a 00000391: JUMP 00000392: JUMPDEST 00000393: PUSH2 0x095e 00000396: JUMP 00000397: JUMPDEST 00000398: PUSH2 0x091d 0000039b: JUMP 0000039c: JUMPDEST 0000039d: PUSH2 0x08f1 000003a0: JUMP 000003a1: JUMPDEST 000003a2: PUSH2 0x08cd 000003a5: JUMP 000003a6: JUMPDEST 000003a7: PUSH2 0x088b 000003aa: JUMP 000003ab: JUMPDEST 000003ac: PUSH2 0x085b 000003af: JUMP 000003b0: JUMPDEST 000003b1: PUSH2 0x0835 000003b4: JUMP 000003b5: JUMPDEST 000003b6: PUSH2 0x07e0 000003b9: JUMP 000003ba: JUMPDEST 000003bb: PUSH2 0x0661 000003be: JUMP 000003bf: JUMPDEST 000003c0: PUSH2 0x05fc 000003c3: JUMP 000003c4: JUMPDEST 000003c5: PUSH2 0x055e 000003c8: JUMP 000003c9: JUMPDEST 000003ca: PUSH2 0x0506 000003cd: JUMP 000003ce: JUMPDEST 000003cf: PUSH2 0x03f5 000003d2: JUMP 000003d3: JUMPDEST 000003d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003e9: DUP2 000003ea: AND 000003eb: SUB 000003ec: PUSH2 0x03f1 000003ef: JUMPI 000003f0: JUMP 000003f1: JUMPDEST 000003f2: PUSH0 000003f3: DUP1 000003f4: REVERT 000003f5: JUMPDEST 000003f6: CALLVALUE 000003f7: PUSH2 0x03f1 000003fa: JUMPI 000003fb: PUSH1 0x20 000003fd: PUSH1 0x03 000003ff: NOT 00000400: CALLDATASIZE 00000401: ADD 00000402: SLT 00000403: PUSH2 0x03f1 00000406: JUMPI 00000407: PUSH1 0x04 00000409: CALLDATALOAD 0000040a: PUSH2 0x0412 0000040d: DUP2 0000040e: PUSH2 0x03d3 00000411: JUMP 00000412: JUMPDEST 00000413: PUSH2 0x041a 00000416: PUSH2 0x2bf8 00000419: JUMP 0000041a: JUMPDEST 0000041b: PUSH32 0x000000000000000000000000f783818e62d9793f119a3a9656cbdab93ff3e993 0000043c: CALLER 0000043d: XOR 0000043e: PUSH2 0x04f9 00000441: JUMPI 00000442: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000457: DUP1 00000458: DUP3 00000459: AND 0000045a: ADDRESS 0000045b: DUP2 0000045c: EQ 0000045d: SWAP2 0000045e: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0000047f: AND 00000480: EQ 00000481: OR 00000482: PUSH2 0x04ec 00000485: JUMPI 00000486: PUSH4 0x70a08231 0000048b: PUSH0 0000048c: MSTORE 0000048d: ADDRESS 0000048e: PUSH1 0x20 00000490: MSTORE 00000491: PUSH1 0x20 00000493: PUSH1 0x34 00000495: PUSH1 0x24 00000497: PUSH1 0x1c 00000499: DUP5 0000049a: GAS 0000049b: STATICCALL 0000049c: PUSH1 0x1f 0000049e: RETURNDATASIZE 0000049f: GT 000004a0: AND 000004a1: ISZERO 000004a2: PUSH2 0x04df 000004a5: JUMPI 000004a6: PUSH0 000004a7: PUSH1 0x44 000004a9: PUSH1 0x10 000004ab: DUP3 000004ac: PUSH1 0x20 000004ae: SWAP5 000004af: CALLER 000004b0: PUSH1 0x14 000004b2: MSTORE 000004b3: PUSH16 0xa9059cbb000000000000000000000000 000004c4: DUP3 000004c5: MSTORE 000004c6: GAS 000004c7: CALL 000004c8: RETURNDATASIZE 000004c9: ISZERO 000004ca: PUSH1 0x01 000004cc: PUSH0 000004cd: MLOAD 000004ce: EQ 000004cf: OR 000004d0: AND 000004d1: ISZERO 000004d2: PUSH2 0x04df 000004d5: JUMPI 000004d6: PUSH2 0x04dd 000004d9: PUSH2 0x2c16 000004dc: JUMP 000004dd: JUMPDEST 000004de: STOP 000004df: JUMPDEST 000004e0: PUSH4 0x90b8ec18 000004e5: PUSH0 000004e6: MSTORE 000004e7: PUSH1 0x04 000004e9: PUSH1 0x1c 000004eb: REVERT 000004ec: JUMPDEST 000004ed: PUSH4 0x11530cde 000004f2: PUSH0 000004f3: MSTORE 000004f4: PUSH1 0x04 000004f6: PUSH1 0x1c 000004f8: REVERT 000004f9: JUMPDEST 000004fa: PUSH4 0x02171e6a 000004ff: PUSH0 00000500: MSTORE 00000501: PUSH1 0x04 00000503: PUSH1 0x1c 00000505: REVERT 00000506: JUMPDEST 00000507: CALLVALUE 00000508: PUSH2 0x03f1 0000050b: JUMPI 0000050c: PUSH0 0000050d: PUSH1 0x03 0000050f: NOT 00000510: CALLDATASIZE 00000511: ADD 00000512: SLT 00000513: PUSH2 0x03f1 00000516: JUMPI 00000517: PUSH1 0x20 00000519: PUSH2 0x0520 0000051c: PUSH2 0x2603 0000051f: JUMP 00000520: JUMPDEST 00000521: PUSH1 0x40 00000523: MLOAD 00000524: SWAP1 00000525: DUP2 00000526: MSTORE 00000527: RETURN 00000528: JUMPDEST 00000529: PUSH4 0xffffffff 0000052e: DUP2 0000052f: AND 00000530: SUB 00000531: PUSH2 0x03f1 00000534: JUMPI 00000535: JUMP 00000536: JUMPDEST 00000537: PUSH1 0x03 00000539: NOT 0000053a: PUSH1 0x40 0000053c: SWAP2 0000053d: ADD 0000053e: SLT 0000053f: PUSH2 0x03f1 00000542: JUMPI 00000543: PUSH1 0x04 00000545: CALLDATALOAD 00000546: PUSH2 0x054e 00000549: DUP2 0000054a: PUSH2 0x03d3 0000054d: JUMP 0000054e: JUMPDEST 0000054f: SWAP1 00000550: PUSH1 0x24 00000552: CALLDATALOAD 00000553: PUSH2 0x055b 00000556: DUP2 00000557: PUSH2 0x0528 0000055a: JUMP 0000055b: JUMPDEST 0000055c: SWAP1 0000055d: JUMP 0000055e: JUMPDEST 0000055f: CALLVALUE 00000560: PUSH2 0x03f1 00000563: JUMPI 00000564: PUSH1 0x40 00000566: PUSH2 0x056e 00000569: CALLDATASIZE 0000056a: PUSH2 0x0536 0000056d: JUMP 0000056e: JUMPDEST 0000056f: PUSH2 0x05c0 00000572: PUSH2 0x0579 00000575: PUSH2 0x2681 00000578: JUMP 00000579: JUMPDEST 0000057a: SWAP3 0000057b: PUSH0 0000057c: DUP5 0000057d: MSTORE 0000057e: PUSH4 0xffffffff 00000583: PUSH1 0x20 00000585: DUP6 00000586: ADD 00000587: SWAP4 00000588: PUSH0 00000589: DUP6 0000058a: MSTORE 0000058b: PUSH2 0x0592 0000058e: PUSH2 0x2c1f 00000591: JUMP 00000592: JUMPDEST 00000593: AND 00000594: PUSH0 00000595: MSTORE 00000596: PUSH1 0x08 00000598: PUSH1 0x20 0000059a: MSTORE 0000059b: DUP5 0000059c: PUSH0 0000059d: KECCAK256 0000059e: SWAP1 0000059f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005b4: AND 000005b5: PUSH0 000005b6: MSTORE 000005b7: PUSH1 0x20 000005b9: MSTORE 000005ba: PUSH1 0x40 000005bc: PUSH0 000005bd: KECCAK256 000005be: SWAP1 000005bf: JUMP 000005c0: JUMPDEST 000005c1: SLOAD 000005c2: SWAP1 000005c3: PUSH13 0xffffffffffffffffffffffffff 000005d1: DUP3 000005d2: AND 000005d3: DUP1 000005d4: SWAP4 000005d5: MSTORE 000005d6: PUSH16 0xffffffffffffffffffffffffffffffff 000005e7: DUP1 000005e8: SWAP3 000005e9: PUSH1 0x68 000005eb: SHR 000005ec: AND 000005ed: DUP2 000005ee: MSTORE 000005ef: DUP4 000005f0: MLOAD 000005f1: SWAP3 000005f2: DUP4 000005f3: MSTORE 000005f4: MLOAD 000005f5: AND 000005f6: PUSH1 0x20 000005f8: DUP3 000005f9: ADD 000005fa: MSTORE 000005fb: RETURN 000005fc: JUMPDEST 000005fd: CALLVALUE 000005fe: PUSH2 0x03f1 00000601: JUMPI 00000602: PUSH0 00000603: PUSH1 0x03 00000605: NOT 00000606: CALLDATASIZE 00000607: ADD 00000608: SLT 00000609: PUSH2 0x03f1 0000060c: JUMPI 0000060d: PUSH1 0x20 0000060f: PUSH0 00000610: MSTORE 00000611: PUSH0 00000612: PUSH1 0x20 00000614: MSTORE 00000615: PUSH32 0x154d4e4e432054726164696e672055534420436f696e00000000000000000000 00000636: PUSH1 0x3f 00000638: MSTORE 00000639: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000000 0000065a: PUSH1 0x5f 0000065c: MSTORE 0000065d: PUSH1 0x80 0000065f: PUSH0 00000660: RETURN 00000661: JUMPDEST 00000662: CALLVALUE 00000663: PUSH2 0x03f1 00000666: JUMPI 00000667: PUSH2 0x066f 0000066a: CALLDATASIZE 0000066b: PUSH2 0x0536 0000066e: JUMP 0000066f: JUMPDEST 00000670: SWAP1 00000671: PUSH2 0x0678 00000674: PUSH2 0x2c1f 00000677: JUMP 00000678: JUMPDEST 00000679: PUSH4 0xffffffff 0000067e: SWAP2 0000067f: DUP3 00000680: DUP2 00000681: AND 00000682: SWAP2 00000683: TIMESTAMP 00000684: DUP4 00000685: LT 00000686: ISZERO 00000687: PUSH2 0x07d3 0000068a: JUMPI 0000068b: PUSH2 0x06f7 0000068e: PUSH2 0x06f2 00000691: PUSH2 0x0781 00000694: SWAP3 00000695: PUSH2 0x0796 00000698: SWAP7 00000699: PUSH2 0x0786 0000069c: SWAP7 0000069d: PUSH2 0x06a4 000006a0: PUSH2 0x2c2b 000006a3: JUMP 000006a4: JUMPDEST 000006a5: SWAP4 000006a6: SWAP2 000006a7: POP 000006a8: PUSH2 0x06af 000006ab: PUSH2 0x274b 000006ae: JUMP 000006af: JUMPDEST 000006b0: POP 000006b1: AND 000006b2: SUB 000006b3: PUSH2 0x079a 000006b6: JUMPI 000006b7: PUSH2 0x06cf 000006ba: SWAP1 000006bb: SWAP6 000006bc: PUSH4 0xffffffff 000006c1: AND 000006c2: PUSH0 000006c3: MSTORE 000006c4: PUSH1 0x08 000006c6: PUSH1 0x20 000006c8: MSTORE 000006c9: PUSH1 0x40 000006cb: PUSH0 000006cc: KECCAK256 000006cd: SWAP1 000006ce: JUMP 000006cf: JUMPDEST 000006d0: SWAP1 000006d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006e6: AND 000006e7: PUSH0 000006e8: MSTORE 000006e9: PUSH1 0x20 000006eb: MSTORE 000006ec: PUSH1 0x40 000006ee: PUSH0 000006ef: KECCAK256 000006f0: SWAP1 000006f1: JUMP 000006f2: JUMPDEST 000006f3: PUSH2 0x27ab 000006f6: JUMP 000006f7: JUMPDEST 000006f8: SWAP2 000006f9: PUSH2 0x072d 000006fc: PUSH2 0x0718 000006ff: PUSH1 0x20 00000701: DUP6 00000702: ADD 00000703: MLOAD 00000704: PUSH16 0xffffffffffffffffffffffffffffffff 00000715: AND 00000716: SWAP1 00000717: JUMP 00000718: JUMPDEST 00000719: PUSH16 0xffffffffffffffffffffffffffffffff 0000072a: AND 0000072b: SWAP1 0000072c: JUMP 0000072d: JUMPDEST 0000072e: SWAP3 0000072f: PUSH2 0x0768 00000732: PUSH2 0x0754 00000735: PUSH2 0x0754 00000738: PUSH2 0x0718 0000073b: PUSH1 0x40 0000073d: DUP7 0000073e: ADD 0000073f: MLOAD 00000740: PUSH16 0xffffffffffffffffffffffffffffffff 00000751: AND 00000752: SWAP1 00000753: JUMP 00000754: JUMPDEST 00000755: SWAP3 00000756: MLOAD 00000757: PUSH13 0xffffffffffffffffffffffffff 00000765: AND 00000766: SWAP1 00000767: JUMP 00000768: JUMPDEST 00000769: PUSH13 0xffffffffffffffffffffffffff 00000777: DUP1 00000778: SWAP2 00000779: AND 0000077a: SWAP3 0000077b: AND 0000077c: SWAP1 0000077d: PUSH2 0x2ea7 00000780: JUMP 00000781: JUMPDEST 00000782: PUSH2 0x2811 00000785: JUMP 00000786: JUMPDEST 00000787: PUSH1 0x40 00000789: MLOAD 0000078a: SWAP1 0000078b: DUP2 0000078c: MSTORE 0000078d: SWAP1 0000078e: DUP2 0000078f: SWAP1 00000790: PUSH1 0x20 00000792: DUP3 00000793: ADD 00000794: SWAP1 00000795: JUMP 00000796: JUMPDEST 00000797: SUB 00000798: SWAP1 00000799: RETURN 0000079a: JUMPDEST 0000079b: POP 0000079c: PUSH2 0x06cf 0000079f: PUSH2 0x07be 000007a2: PUSH2 0x07b9 000007a5: DUP8 000007a6: PUSH4 0xffffffff 000007ab: AND 000007ac: PUSH0 000007ad: MSTORE 000007ae: PUSH1 0x07 000007b0: PUSH1 0x20 000007b2: MSTORE 000007b3: PUSH1 0x40 000007b5: PUSH0 000007b6: KECCAK256 000007b7: SWAP1 000007b8: JUMP 000007b9: JUMPDEST 000007ba: PUSH2 0x2765 000007bd: JUMP 000007be: JUMPDEST 000007bf: SWAP6 000007c0: PUSH4 0xffffffff 000007c5: AND 000007c6: PUSH0 000007c7: MSTORE 000007c8: PUSH1 0x08 000007ca: PUSH1 0x20 000007cc: MSTORE 000007cd: PUSH1 0x40 000007cf: PUSH0 000007d0: KECCAK256 000007d1: SWAP1 000007d2: JUMP 000007d3: JUMPDEST 000007d4: PUSH4 0x2561b880 000007d9: PUSH0 000007da: MSTORE 000007db: PUSH1 0x04 000007dd: PUSH1 0x1c 000007df: REVERT 000007e0: JUMPDEST 000007e1: CALLVALUE 000007e2: PUSH2 0x03f1 000007e5: JUMPI 000007e6: PUSH1 0x40 000007e8: PUSH1 0x03 000007ea: NOT 000007eb: CALLDATASIZE 000007ec: ADD 000007ed: SLT 000007ee: PUSH2 0x03f1 000007f1: JUMPI 000007f2: PUSH2 0x0823 000007f5: PUSH1 0x04 000007f7: CALLDATALOAD 000007f8: PUSH2 0x0800 000007fb: DUP2 000007fc: PUSH2 0x03d3 000007ff: JUMP 00000800: JUMPDEST 00000801: PUSH2 0x0808 00000804: PUSH2 0x2bf8 00000807: JUMP 00000808: JUMPDEST 00000809: PUSH2 0x081e 0000080c: PUSH2 0x0813 0000080f: PUSH2 0x2edb 00000812: JUMP 00000813: JUMPDEST 00000814: SWAP2 00000815: PUSH1 0x24 00000817: CALLDATALOAD 00000818: SWAP1 00000819: CALLER 0000081a: PUSH2 0x2f1f 0000081d: JUMP 0000081e: JUMPDEST 0000081f: PUSH2 0x4d13 00000822: JUMP 00000823: JUMPDEST 00000824: PUSH0 00000825: PUSH4 0x929eee14 0000082a: TSTORE 0000082b: PUSH1 0x20 0000082d: PUSH1 0x40 0000082f: MLOAD 00000830: PUSH1 0x01 00000832: DUP2 00000833: MSTORE 00000834: RETURN 00000835: JUMPDEST 00000836: CALLVALUE 00000837: PUSH2 0x03f1 0000083a: JUMPI 0000083b: PUSH0 0000083c: PUSH1 0x03 0000083e: NOT 0000083f: CALLDATASIZE 00000840: ADD 00000841: SLT 00000842: PUSH2 0x03f1 00000845: JUMPI 00000846: PUSH2 0x084d 00000849: PUSH2 0x281e 0000084c: JUMP 0000084d: JUMPDEST 0000084e: POP 0000084f: PUSH2 0x01c0 00000852: PUSH2 0x0859 00000855: PUSH2 0x2880 00000858: JUMP 00000859: JUMPDEST 0000085a: RETURN 0000085b: JUMPDEST 0000085c: CALLVALUE 0000085d: PUSH2 0x03f1 00000860: JUMPI 00000861: PUSH0 00000862: PUSH1 0x03 00000864: NOT 00000865: CALLDATASIZE 00000866: ADD 00000867: SLT 00000868: PUSH2 0x03f1 0000086b: JUMPI 0000086c: PUSH2 0x0873 0000086f: PUSH2 0x281e 00000872: JUMP 00000873: JUMPDEST 00000874: POP 00000875: PUSH2 0x087c 00000878: PUSH2 0x2c1f 0000087b: JUMP 0000087c: JUMPDEST 0000087d: PUSH2 0x01c0 00000880: PUSH2 0x0887 00000883: PUSH2 0x2c2b 00000886: JUMP 00000887: JUMPDEST 00000888: POP 00000889: POP 0000088a: RETURN 0000088b: JUMPDEST 0000088c: CALLVALUE 0000088d: PUSH2 0x03f1 00000890: JUMPI 00000891: PUSH0 00000892: PUSH1 0x03 00000894: NOT 00000895: CALLDATASIZE 00000896: ADD 00000897: SLT 00000898: PUSH2 0x03f1 0000089b: JUMPI 0000089c: PUSH2 0x08a3 0000089f: PUSH2 0x2c1f 000008a2: JUMP 000008a3: JUMPDEST 000008a4: PUSH1 0x20 000008a6: PUSH16 0xffffffffffffffffffffffffffffffff 000008b7: PUSH1 0x40 000008b9: PUSH2 0x08c0 000008bc: PUSH2 0x2c2b 000008bf: JUMP 000008c0: JUMPDEST 000008c1: POP 000008c2: POP 000008c3: ADD 000008c4: MLOAD 000008c5: AND 000008c6: PUSH1 0x40 000008c8: MLOAD 000008c9: SWAP1 000008ca: DUP2 000008cb: MSTORE 000008cc: RETURN 000008cd: JUMPDEST 000008ce: CALLVALUE 000008cf: PUSH2 0x03f1 000008d2: JUMPI 000008d3: PUSH0 000008d4: PUSH1 0x03 000008d6: NOT 000008d7: CALLDATASIZE 000008d8: ADD 000008d9: SLT 000008da: PUSH2 0x03f1 000008dd: JUMPI 000008de: PUSH1 0x20 000008e0: PUSH2 0xffff 000008e3: PUSH1 0x03 000008e5: SLOAD 000008e6: PUSH1 0x30 000008e8: SHR 000008e9: AND 000008ea: PUSH1 0x40 000008ec: MLOAD 000008ed: SWAP1 000008ee: DUP2 000008ef: MSTORE 000008f0: RETURN 000008f1: JUMPDEST 000008f2: CALLVALUE 000008f3: PUSH2 0x03f1 000008f6: JUMPI 000008f7: PUSH0 000008f8: PUSH1 0x03 000008fa: NOT 000008fb: CALLDATASIZE 000008fc: ADD 000008fd: SLT 000008fe: PUSH2 0x03f1 00000901: JUMPI 00000902: PUSH2 0x0909 00000905: PUSH2 0x2c1f 00000908: JUMP 00000909: JUMPDEST 0000090a: PUSH1 0x20 0000090c: PUSH2 0x0520 0000090f: PUSH2 0x0916 00000912: PUSH2 0x2c2b 00000915: JUMP 00000916: JUMPDEST 00000917: POP 00000918: POP 00000919: PUSH2 0x2f95 0000091c: JUMP 0000091d: JUMPDEST 0000091e: CALLVALUE 0000091f: PUSH2 0x03f1 00000922: JUMPI 00000923: PUSH0 00000924: PUSH1 0x03 00000926: NOT 00000927: CALLDATASIZE 00000928: ADD 00000929: SLT 0000092a: PUSH2 0x03f1 0000092d: JUMPI 0000092e: PUSH2 0x0935 00000931: PUSH2 0x2c1f 00000934: JUMP 00000935: JUMPDEST 00000936: PUSH1 0x20 00000938: PUSH2 0x0520 0000093b: PUSH2 0x0942 0000093e: PUSH2 0x2c2b 00000941: JUMP 00000942: JUMPDEST 00000943: POP 00000944: POP 00000945: PUSH13 0xffffffffffffffffffffffffff 00000953: PUSH1 0x80 00000955: DUP3 00000956: ADD 00000957: MLOAD 00000958: AND 00000959: SWAP1 0000095a: PUSH2 0x3e0d 0000095d: JUMP 0000095e: JUMPDEST 0000095f: CALLVALUE 00000960: PUSH2 0x03f1 00000963: JUMPI 00000964: PUSH0 00000965: PUSH1 0x03 00000967: NOT 00000968: CALLDATASIZE 00000969: ADD 0000096a: SLT 0000096b: PUSH2 0x03f1 0000096e: JUMPI 0000096f: PUSH2 0x0976 00000972: PUSH2 0x2bf8 00000975: JUMP 00000976: JUMPDEST 00000977: PUSH2 0x0991 0000097a: PUSH2 0x0981 0000097d: PUSH2 0x2edb 00000980: JUMP 00000981: JUMPDEST 00000982: PUSH2 0x081e 00000985: PUSH2 0x098c 00000988: PUSH2 0x2fe6 0000098b: JUMP 0000098c: JUMPDEST 0000098d: PUSH2 0x323f 00000990: JUMP 00000991: JUMPDEST 00000992: PUSH0 00000993: PUSH4 0x929eee14 00000998: TSTORE 00000999: STOP 0000099a: JUMPDEST 0000099b: CALLVALUE 0000099c: PUSH2 0x03f1 0000099f: JUMPI 000009a0: PUSH1 0x20 000009a2: PUSH1 0x03 000009a4: NOT 000009a5: CALLDATASIZE 000009a6: ADD 000009a7: SLT 000009a8: PUSH2 0x03f1 000009ab: JUMPI 000009ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009c1: PUSH1 0x04 000009c3: CALLDATALOAD 000009c4: PUSH2 0x09cc 000009c7: DUP2 000009c8: PUSH2 0x03d3 000009cb: JUMP 000009cc: JUMPDEST 000009cd: PUSH2 0x09d4 000009d0: PUSH2 0x2c1f 000009d3: JUMP 000009d4: JUMPDEST 000009d5: AND 000009d6: PUSH0 000009d7: MSTORE 000009d8: PUSH1 0x04 000009da: PUSH1 0x20 000009dc: MSTORE 000009dd: PUSH1 0x20 000009df: PUSH13 0xffffffffffffffffffffffffff 000009ed: PUSH1 0x40 000009ef: PUSH0 000009f0: KECCAK256 000009f1: SLOAD 000009f2: AND 000009f3: PUSH1 0x40 000009f5: MLOAD 000009f6: SWAP1 000009f7: DUP2 000009f8: MSTORE 000009f9: RETURN 000009fa: JUMPDEST 000009fb: CALLVALUE 000009fc: PUSH2 0x03f1 000009ff: JUMPI 00000a00: PUSH0 00000a01: PUSH1 0x03 00000a03: NOT 00000a04: CALLDATASIZE 00000a05: ADD 00000a06: SLT 00000a07: PUSH2 0x03f1 00000a0a: JUMPI 00000a0b: PUSH1 0x20 00000a0d: PUSH2 0x0a27 00000a10: PUSH2 0x0a17 00000a13: PUSH2 0x2c2b 00000a16: JUMP 00000a17: JUMPDEST 00000a18: POP 00000a19: POP 00000a1a: PUSH2 0x0a21 00000a1d: PUSH2 0x2603 00000a20: JUMP 00000a21: JUMPDEST 00000a22: SWAP1 00000a23: PUSH2 0x33d4 00000a26: JUMP 00000a27: JUMPDEST 00000a28: PUSH16 0xffffffffffffffffffffffffffffffff 00000a39: PUSH1 0x40 00000a3b: MLOAD 00000a3c: SWAP2 00000a3d: AND 00000a3e: DUP2 00000a3f: MSTORE 00000a40: RETURN 00000a41: JUMPDEST 00000a42: CALLVALUE 00000a43: PUSH2 0x03f1 00000a46: JUMPI 00000a47: PUSH1 0x60 00000a49: PUSH1 0x03 00000a4b: NOT 00000a4c: CALLDATASIZE 00000a4d: ADD 00000a4e: SLT 00000a4f: PUSH2 0x03f1 00000a52: JUMPI 00000a53: PUSH1 0x04 00000a55: CALLDATALOAD 00000a56: PUSH2 0x0a5e 00000a59: DUP2 00000a5a: PUSH2 0x03d3 00000a5d: JUMP 00000a5e: JUMPDEST 00000a5f: PUSH1 0x24 00000a61: CALLDATALOAD 00000a62: PUSH2 0x0a6a 00000a65: DUP2 00000a66: PUSH2 0x03d3 00000a69: JUMP 00000a6a: JUMPDEST 00000a6b: PUSH1 0x44 00000a6d: CALLDATALOAD 00000a6e: PUSH2 0x0a75 00000a71: PUSH2 0x2bf8 00000a74: JUMP 00000a75: JUMPDEST 00000a76: PUSH2 0x0a7d 00000a79: PUSH2 0x2edb 00000a7c: JUMP 00000a7d: JUMPDEST 00000a7e: SWAP2 00000a7f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a94: DUP5 00000a95: AND 00000a96: PUSH0 00000a97: MSTORE 00000a98: PUSH1 0x09 00000a9a: PUSH1 0x20 00000a9c: MSTORE 00000a9d: PUSH2 0x0ac6 00000aa0: PUSH1 0x40 00000aa2: PUSH0 00000aa3: KECCAK256 00000aa4: CALLER 00000aa5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aba: AND 00000abb: PUSH0 00000abc: MSTORE 00000abd: PUSH1 0x20 00000abf: MSTORE 00000ac0: PUSH1 0x40 00000ac2: PUSH0 00000ac3: KECCAK256 00000ac4: SWAP1 00000ac5: JUMP 00000ac6: JUMPDEST 00000ac7: SLOAD 00000ac8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000ae9: DUP2 00000aea: SUB 00000aeb: PUSH2 0x0b11 00000aee: JUMPI 00000aef: JUMPDEST 00000af0: POP 00000af1: SWAP1 00000af2: PUSH2 0x081e 00000af5: SWAP2 00000af6: PUSH2 0x0afe 00000af9: SWAP5 00000afa: PUSH2 0x3497 00000afd: JUMP 00000afe: JUMPDEST 00000aff: PUSH0 00000b00: PUSH4 0x929eee14 00000b05: TSTORE 00000b06: PUSH1 0x40 00000b08: MLOAD 00000b09: PUSH1 0x01 00000b0b: DUP2 00000b0c: MSTORE 00000b0d: PUSH1 0x20 00000b0f: SWAP1 00000b10: RETURN 00000b11: JUMPDEST 00000b12: SWAP2 00000b13: SWAP1 00000b14: DUP2 00000b15: DUP4 00000b16: SUB 00000b17: SWAP3 00000b18: DUP4 00000b19: GT 00000b1a: PUSH2 0x0b38 00000b1d: JUMPI 00000b1e: PUSH2 0x0afe 00000b21: SWAP5 00000b22: PUSH2 0x0b2f 00000b25: PUSH2 0x081e 00000b28: SWAP5 00000b29: CALLER 00000b2a: DUP4 00000b2b: PUSH2 0x2f1f 00000b2e: JUMP 00000b2f: JUMPDEST 00000b30: SWAP5 00000b31: POP 00000b32: SWAP1 00000b33: SWAP2 00000b34: PUSH2 0x0aef 00000b37: JUMP 00000b38: JUMPDEST 00000b39: PUSH2 0x27e4 00000b3c: JUMP 00000b3d: JUMPDEST 00000b3e: CALLVALUE 00000b3f: PUSH2 0x03f1 00000b42: JUMPI 00000b43: PUSH0 00000b44: PUSH1 0x03 00000b46: NOT 00000b47: CALLDATASIZE 00000b48: ADD 00000b49: SLT 00000b4a: PUSH2 0x03f1 00000b4d: JUMPI 00000b4e: PUSH1 0x20 00000b50: PUSH16 0xffffffffffffffffffffffffffffffff 00000b61: PUSH0 00000b62: SLOAD 00000b63: PUSH1 0x08 00000b65: SHR 00000b66: AND 00000b67: PUSH1 0x40 00000b69: MLOAD 00000b6a: SWAP1 00000b6b: DUP2 00000b6c: MSTORE 00000b6d: RETURN 00000b6e: JUMPDEST 00000b6f: CALLVALUE 00000b70: PUSH2 0x03f1 00000b73: JUMPI 00000b74: PUSH0 00000b75: PUSH1 0x03 00000b77: NOT 00000b78: CALLDATASIZE 00000b79: ADD 00000b7a: SLT 00000b7b: PUSH2 0x03f1 00000b7e: JUMPI 00000b7f: PUSH1 0x20 00000b81: PUSH1 0x40 00000b83: MLOAD 00000b84: PUSH1 0xff 00000b86: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000006 00000ba7: AND 00000ba8: DUP2 00000ba9: MSTORE 00000baa: RETURN 00000bab: JUMPDEST 00000bac: CALLVALUE 00000bad: PUSH2 0x03f1 00000bb0: JUMPI 00000bb1: PUSH1 0x20 00000bb3: PUSH2 0x0bf4 00000bb6: PUSH2 0x0bbe 00000bb9: CALLDATASIZE 00000bba: PUSH2 0x0536 00000bbd: JUMP 00000bbe: JUMPDEST 00000bbf: SWAP2 00000bc0: SWAP1 00000bc1: PUSH2 0x0bc8 00000bc4: PUSH2 0x2bf8 00000bc7: JUMP 00000bc8: JUMPDEST 00000bc9: PUSH2 0x081e 00000bcc: PUSH2 0x0bee 00000bcf: PUSH2 0x0bd6 00000bd2: PUSH2 0x2edb 00000bd5: JUMP 00000bd6: JUMPDEST 00000bd7: SWAP3 00000bd8: PUSH2 0x0bdf 00000bdb: PUSH2 0x2fe6 00000bde: JUMP 00000bdf: JUMPDEST 00000be0: SWAP6 00000be1: PUSH1 0x44 00000be3: PUSH0 00000be4: MSTORE 00000be5: CALLDATASIZE 00000be6: ISZERO 00000be7: MLOAD 00000be8: SWAP2 00000be9: DUP8 00000bea: PUSH2 0x3627 00000bed: JUMP 00000bee: JUMPDEST 00000bef: SWAP4 00000bf0: PUSH2 0x323f 00000bf3: JUMP 00000bf4: JUMPDEST 00000bf5: PUSH0 00000bf6: PUSH4 0x929eee14 00000bfb: TSTORE 00000bfc: PUSH1 0x40 00000bfe: MLOAD 00000bff: SWAP1 00000c00: DUP2 00000c01: MSTORE 00000c02: RETURN 00000c03: JUMPDEST 00000c04: CALLVALUE 00000c05: PUSH2 0x03f1 00000c08: JUMPI 00000c09: PUSH1 0x20 00000c0b: PUSH1 0x03 00000c0d: NOT 00000c0e: CALLDATASIZE 00000c0f: ADD 00000c10: SLT 00000c11: PUSH2 0x03f1 00000c14: JUMPI 00000c15: PUSH1 0x04 00000c17: CALLDATALOAD 00000c18: PUSH2 0x0c1f 00000c1b: PUSH2 0x2bf8 00000c1e: JUMP 00000c1f: JUMPDEST 00000c20: PUSH2 0x0c27 00000c23: PUSH2 0x2edb 00000c26: JUMP 00000c27: JUMPDEST 00000c28: DUP2 00000c29: ISZERO 00000c2a: PUSH2 0x0cd8 00000c2d: JUMPI 00000c2e: PUSH2 0x0c59 00000c31: DUP3 00000c32: ADDRESS 00000c33: CALLER 00000c34: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000c55: PUSH2 0x385a 00000c58: JUMP 00000c59: JUMPDEST 00000c5a: DUP2 00000c5b: PUSH0 00000c5c: MSTORE 00000c5d: CALLER 00000c5e: PUSH32 0xe8b606ac1e5df7657db58d297ca8f41c090fc94c5fd2d6958f043e41736e9fa6 00000c7f: PUSH1 0x20 00000c81: PUSH0 00000c82: LOG2 00000c83: PUSH2 0x0c8a 00000c86: PUSH2 0x2fe6 00000c89: JUMP 00000c8a: JUMPDEST 00000c8b: SWAP2 00000c8c: DUP3 00000c8d: MLOAD 00000c8e: PUSH2 0x0ccb 00000c91: JUMPI 00000c92: PUSH2 0x0991 00000c95: SWAP3 00000c96: PUSH2 0x098c 00000c99: PUSH2 0x081e 00000c9c: SWAP3 00000c9d: PUSH1 0x24 00000c9f: PUSH0 00000ca0: MSTORE 00000ca1: DUP3 00000ca2: CALLDATASIZE 00000ca3: ISZERO 00000ca4: MLOAD 00000ca5: SWAP2 00000ca6: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 00000cc7: PUSH2 0x38d9 00000cca: JUMP 00000ccb: JUMPDEST 00000ccc: PUSH4 0x61d1bc8f 00000cd1: PUSH0 00000cd2: MSTORE 00000cd3: PUSH1 0x04 00000cd5: PUSH1 0x1c 00000cd7: REVERT 00000cd8: JUMPDEST 00000cd9: PUSH4 0x7e082088 00000cde: PUSH0 00000cdf: MSTORE 00000ce0: PUSH1 0x04 00000ce2: PUSH1 0x1c 00000ce4: REVERT 00000ce5: JUMPDEST 00000ce6: CALLVALUE 00000ce7: PUSH2 0x03f1 00000cea: JUMPI 00000ceb: PUSH0 00000cec: PUSH1 0x03 00000cee: NOT 00000cef: CALLDATASIZE 00000cf0: ADD 00000cf1: SLT 00000cf2: PUSH2 0x03f1 00000cf5: JUMPI 00000cf6: PUSH1 0x20 00000cf8: PUSH1 0x40 00000cfa: MLOAD 00000cfb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d10: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000d31: AND 00000d32: DUP2 00000d33: MSTORE 00000d34: RETURN 00000d35: JUMPDEST 00000d36: CALLVALUE 00000d37: PUSH2 0x03f1 00000d3a: JUMPI 00000d3b: PUSH0 00000d3c: PUSH1 0x03 00000d3e: NOT 00000d3f: CALLDATASIZE 00000d40: ADD 00000d41: SLT 00000d42: PUSH2 0x03f1 00000d45: JUMPI 00000d46: PUSH1 0x20 00000d48: PUSH32 0x1777adabd324f814e2b0e28f6edf876dce01d7d66358c9acfe87b1b5f38338d5 00000d69: SLOAD 00000d6a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d7f: PUSH1 0x40 00000d81: MLOAD 00000d82: SWAP2 00000d83: AND 00000d84: DUP2 00000d85: MSTORE 00000d86: RETURN 00000d87: JUMPDEST 00000d88: CALLVALUE 00000d89: PUSH2 0x03f1 00000d8c: JUMPI 00000d8d: PUSH1 0x20 00000d8f: PUSH1 0x03 00000d91: NOT 00000d92: CALLDATASIZE 00000d93: ADD 00000d94: SLT 00000d95: PUSH2 0x03f1 00000d98: JUMPI 00000d99: PUSH1 0x04 00000d9b: CALLDATALOAD 00000d9c: PUSH32 0x000000000000000000000000f783818e62d9793f119a3a9656cbdab93ff3e993 00000dbd: CALLER 00000dbe: XOR 00000dbf: PUSH2 0x04f9 00000dc2: JUMPI 00000dc3: PUSH2 0x0dca 00000dc6: PUSH2 0x2bf8 00000dc9: JUMP 00000dca: JUMPDEST 00000dcb: PUSH2 0x0dd2 00000dce: PUSH2 0x2edb 00000dd1: JUMP 00000dd2: JUMPDEST 00000dd3: PUSH2 0x0dda 00000dd6: PUSH2 0x2fe6 00000dd9: JUMP 00000dda: JUMPDEST 00000ddb: DUP1 00000ddc: MLOAD 00000ddd: PUSH2 0x0ec4 00000de0: JUMPI 00000de1: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 00000e02: PUSH1 0x01 00000e04: DUP2 00000e05: PUSH1 0x57 00000e07: SHR 00000e08: AND 00000e09: PUSH2 0x0e4b 00000e0c: JUMPI 00000e0d: JUMPDEST 00000e0e: POP 00000e0f: DUP3 00000e10: PUSH2 0x0e3e 00000e13: PUSH2 0x081e 00000e16: SWAP3 00000e17: PUSH2 0x098c 00000e1a: PUSH2 0x0e25 00000e1d: PUSH2 0x0e43 00000e20: SWAP8 00000e21: PUSH2 0x393f 00000e24: JUMP 00000e25: JUMPDEST 00000e26: PUSH16 0xffffffffffffffffffffffffffffffff 00000e37: AND 00000e38: PUSH1 0x20 00000e3a: DUP4 00000e3b: ADD 00000e3c: MSTORE 00000e3d: JUMP 00000e3e: JUMPDEST 00000e3f: PUSH2 0x395e 00000e42: JUMP 00000e43: JUMPDEST 00000e44: PUSH2 0x04dd 00000e47: PUSH2 0x2c16 00000e4a: JUMP 00000e4b: JUMPDEST 00000e4c: PUSH0 00000e4d: DUP1 00000e4e: SWAP2 00000e4f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc 00000e70: CALLDATASIZE 00000e71: ADD 00000e72: SWAP1 00000e73: DUP3 00000e74: PUSH1 0x1c 00000e76: PUSH1 0x40 00000e78: MLOAD 00000e79: SWAP4 00000e7a: PUSH4 0x849da129 00000e7f: DUP6 00000e80: MSTORE 00000e81: DUP10 00000e82: PUSH1 0x20 00000e84: DUP7 00000e85: ADD 00000e86: MSTORE 00000e87: PUSH2 0x01c0 00000e8a: DUP9 00000e8b: PUSH1 0x40 00000e8d: DUP8 00000e8e: ADD 00000e8f: MCOPY 00000e90: PUSH2 0x0200 00000e93: SWAP1 00000e94: DUP2 00000e95: DUP1 00000e96: DUP8 00000e97: ADD 00000e98: MSTORE 00000e99: DUP1 00000e9a: PUSH2 0x0220 00000e9d: DUP8 00000e9e: ADD 00000e9f: MSTORE 00000ea0: PUSH1 0x24 00000ea2: PUSH2 0x0240 00000ea5: DUP8 00000ea6: ADD 00000ea7: CALLDATACOPY 00000ea8: CALLDATASIZE 00000ea9: ADD 00000eaa: SWAP4 00000eab: ADD 00000eac: SWAP2 00000ead: PUSH1 0x60 00000eaf: SHR 00000eb0: GAS 00000eb1: CALL 00000eb2: ISZERO 00000eb3: PUSH2 0x0ebc 00000eb6: JUMPI 00000eb7: PUSH0 00000eb8: PUSH2 0x0e0d 00000ebb: JUMP 00000ebc: JUMPDEST 00000ebd: RETURNDATASIZE 00000ebe: PUSH0 00000ebf: DUP1 00000ec0: RETURNDATACOPY 00000ec1: RETURNDATASIZE 00000ec2: PUSH0 00000ec3: REVERT 00000ec4: JUMPDEST 00000ec5: PUSH4 0x81b21078 00000eca: PUSH0 00000ecb: MSTORE 00000ecc: PUSH1 0x04 00000ece: PUSH1 0x1c 00000ed0: REVERT 00000ed1: JUMPDEST 00000ed2: CALLVALUE 00000ed3: PUSH2 0x03f1 00000ed6: JUMPI 00000ed7: PUSH0 00000ed8: PUSH1 0x03 00000eda: NOT 00000edb: CALLDATASIZE 00000edc: ADD 00000edd: SLT 00000ede: PUSH2 0x03f1 00000ee1: JUMPI 00000ee2: PUSH1 0x20 00000ee4: PUSH1 0x40 00000ee6: MLOAD 00000ee7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000efc: PUSH32 0x00000000000000000000000035a5d1bd68f3139971027b92c1ee9384a0708554 00000f1d: AND 00000f1e: DUP2 00000f1f: MSTORE 00000f20: RETURN 00000f21: JUMPDEST 00000f22: CALLVALUE 00000f23: PUSH2 0x03f1 00000f26: JUMPI 00000f27: PUSH0 00000f28: PUSH1 0x03 00000f2a: NOT 00000f2b: CALLDATASIZE 00000f2c: ADD 00000f2d: SLT 00000f2e: PUSH2 0x03f1 00000f31: JUMPI 00000f32: PUSH1 0x20 00000f34: PUSH1 0x40 00000f36: MLOAD 00000f37: PUSH32 0x00000000000000000000000000000000000000000000000000000000000001f4 00000f58: DUP2 00000f59: MSTORE 00000f5a: RETURN 00000f5b: JUMPDEST 00000f5c: CALLVALUE 00000f5d: PUSH2 0x03f1 00000f60: JUMPI 00000f61: PUSH1 0x20 00000f63: PUSH1 0x03 00000f65: NOT 00000f66: CALLDATASIZE 00000f67: ADD 00000f68: SLT 00000f69: PUSH2 0x03f1 00000f6c: JUMPI 00000f6d: PUSH1 0x04 00000f6f: CALLDATALOAD 00000f70: PUSH2 0x0f78 00000f73: DUP2 00000f74: PUSH2 0x03d3 00000f77: JUMP 00000f78: JUMPDEST 00000f79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f8e: PUSH32 0x000000000000000000000000feb516d9d946dd487a9346f6fee11f40c6945ee4 00000faf: AND 00000fb0: CALLER 00000fb1: SUB 00000fb2: PUSH2 0x1007 00000fb5: JUMPI 00000fb6: PUSH32 0x1777adabd324f814e2b0e28f6edf876dce01d7d66358c9acfe87b1b5f38338d5 00000fd7: DUP2 00000fd8: DUP2 00000fd9: SLOAD 00000fda: SWAP2 00000fdb: SSTORE 00000fdc: PUSH0 00000fdd: MSTORE 00000fde: PUSH1 0x20 00000fe0: MSTORE 00000fe1: PUSH32 0xf33499cccaa0611882086224cc48cd82ef54b66a4d2edf4ed67108dd516896d5 00001002: PUSH1 0x40 00001004: PUSH0 00001005: LOG1 00001006: STOP 00001007: JUMPDEST 00001008: PUSH4 0x4ee0b8f8 0000100d: PUSH0 0000100e: MSTORE 0000100f: PUSH1 0x04 00001011: PUSH1 0x1c 00001013: REVERT 00001014: JUMPDEST 00001015: CALLVALUE 00001016: PUSH2 0x03f1 00001019: JUMPI 0000101a: PUSH0 0000101b: PUSH1 0x03 0000101d: NOT 0000101e: CALLDATASIZE 0000101f: ADD 00001020: SLT 00001021: PUSH2 0x03f1 00001024: JUMPI 00001025: PUSH1 0x20 00001027: PUSH1 0x40 00001029: MLOAD 0000102a: PUSH32 0x000000000000000000000000000000000000000000000000000000000002a300 0000104b: DUP2 0000104c: MSTORE 0000104d: RETURN 0000104e: JUMPDEST 0000104f: CALLVALUE 00001050: PUSH2 0x03f1 00001053: JUMPI 00001054: PUSH0 00001055: PUSH1 0x03 00001057: NOT 00001058: CALLDATASIZE 00001059: ADD 0000105a: SLT 0000105b: PUSH2 0x03f1 0000105e: JUMPI 0000105f: PUSH1 0x20 00001061: PUSH1 0x40 00001063: MLOAD 00001064: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001079: PUSH32 0x000000000000000000000000feb516d9d946dd487a9346f6fee11f40c6945ee4 0000109a: AND 0000109b: DUP2 0000109c: MSTORE 0000109d: RETURN 0000109e: JUMPDEST 0000109f: CALLVALUE 000010a0: PUSH2 0x03f1 000010a3: JUMPI 000010a4: PUSH0 000010a5: PUSH1 0x03 000010a7: NOT 000010a8: CALLDATASIZE 000010a9: ADD 000010aa: SLT 000010ab: PUSH2 0x03f1 000010ae: JUMPI 000010af: PUSH1 0x20 000010b1: PUSH2 0x0520 000010b4: PUSH2 0x10bb 000010b7: PUSH2 0x2c2b 000010ba: JUMP 000010bb: JUMPDEST 000010bc: POP 000010bd: POP 000010be: PUSH2 0x3987 000010c1: JUMP 000010c2: JUMPDEST 000010c3: CALLVALUE 000010c4: PUSH2 0x03f1 000010c7: JUMPI 000010c8: PUSH0 000010c9: PUSH1 0x03 000010cb: NOT 000010cc: CALLDATASIZE 000010cd: ADD 000010ce: SLT 000010cf: PUSH2 0x03f1 000010d2: JUMPI 000010d3: PUSH0 000010d4: PUSH1 0x40 000010d6: MSTORE 000010d7: PUSH2 0x0132 000010da: PUSH1 0x41 000010dc: MSTORE 000010dd: PUSH1 0x20 000010df: DUP1 000010e0: MSTORE 000010e1: PUSH1 0x60 000010e3: PUSH1 0x20 000010e5: RETURN 000010e6: JUMPDEST 000010e7: CALLVALUE 000010e8: PUSH2 0x03f1 000010eb: JUMPI 000010ec: PUSH1 0x40 000010ee: PUSH1 0x03 000010f0: NOT 000010f1: CALLDATASIZE 000010f2: ADD 000010f3: SLT 000010f4: PUSH2 0x03f1 000010f7: JUMPI 000010f8: PUSH1 0x04 000010fa: CALLDATALOAD 000010fb: PUSH2 0x1102 000010fe: PUSH2 0x2bf8 00001101: JUMP 00001102: JUMPDEST 00001103: PUSH2 0x110a 00001106: PUSH2 0x2edb 00001109: JUMP 0000110a: JUMPDEST 0000110b: DUP2 0000110c: ISZERO 0000110d: ISZERO 0000110e: SWAP2 0000110f: DUP3 00001110: PUSH2 0x122f 00001113: JUMPI 00001114: JUMPDEST 00001115: PUSH2 0x111c 00001118: PUSH2 0x2fe6 0000111b: JUMP 0000111c: JUMPDEST 0000111d: SWAP3 0000111e: PUSH2 0x1127 00001121: DUP5 00001122: MLOAD 00001123: ISZERO 00001124: ISZERO 00001125: SWAP1 00001126: JUMP 00001127: JUMPDEST 00001128: PUSH2 0x122a 0000112b: JUMPI 0000112c: PUSH2 0x11eb 0000112f: JUMPI 00001130: JUMPDEST 00001131: POP 00001132: PUSH2 0x1182 00001135: PUSH2 0x113c 00001138: PUSH2 0x2603 0000113b: JUMP 0000113c: JUMPDEST 0000113d: PUSH2 0x117c 00001140: PUSH2 0x0718 00001143: PUSH2 0x115f 00001146: PUSH1 0x60 00001148: DUP8 00001149: ADD 0000114a: MLOAD 0000114b: PUSH16 0xffffffffffffffffffffffffffffffff 0000115c: AND 0000115d: SWAP1 0000115e: JUMP 0000115f: JUMPDEST 00001160: PUSH1 0x40 00001162: DUP8 00001163: ADD 00001164: MLOAD 00001165: PUSH16 0xffffffffffffffffffffffffffffffff 00001176: AND 00001177: SWAP1 00001178: PUSH2 0x29a8 0000117b: JUMP 0000117c: JUMPDEST 0000117d: SWAP1 0000117e: PUSH2 0x2811 00001181: JUMP 00001182: JUMPDEST 00001183: SWAP1 00001184: PUSH2 0x119f 00001187: PUSH2 0x1191 0000118a: PUSH2 0x0718 0000118d: PUSH2 0x39bc 00001190: JUMP 00001191: JUMPDEST 00001192: PUSH1 0x24 00001194: CALLDATALOAD 00001195: DUP2 00001196: DUP1 00001197: DUP3 00001198: SUB 00001199: SWAP2 0000119a: LT 0000119b: MUL 0000119c: ADD 0000119d: SWAP1 0000119e: JUMP 0000119f: JUMPDEST 000011a0: PUSH0 000011a1: SWAP3 000011a2: JUMPDEST 000011a3: DUP2 000011a4: PUSH2 0x11ac 000011a7: DUP6 000011a8: PUSH2 0x29cc 000011ab: JUMP 000011ac: JUMPDEST 000011ad: SWAP5 000011ae: LT 000011af: DUP1 000011b0: PUSH2 0x11e2 000011b3: JUMPI 000011b4: JUMPDEST 000011b5: ISZERO 000011b6: PUSH2 0x11d5 000011b9: JUMPI 000011ba: DUP1 000011bb: PUSH2 0x11c7 000011be: PUSH2 0x11d0 000011c1: SWAP3 000011c2: DUP8 000011c3: PUSH2 0x39de 000011c6: JUMP 000011c7: JUMPDEST 000011c8: DUP1 000011c9: DUP3 000011ca: SUB 000011cb: SWAP2 000011cc: GT 000011cd: MUL 000011ce: SWAP1 000011cf: JUMP 000011d0: JUMPDEST 000011d1: PUSH2 0x11a2 000011d4: JUMP 000011d5: JUMPDEST 000011d6: PUSH2 0x0e43 000011d9: DUP4 000011da: PUSH2 0x081e 000011dd: DUP8 000011de: PUSH2 0x323f 000011e1: JUMP 000011e2: JUMPDEST 000011e3: POP 000011e4: DUP1 000011e5: ISZERO 000011e6: ISZERO 000011e7: PUSH2 0x11b4 000011ea: JUMP 000011eb: JUMPDEST 000011ec: PUSH2 0x1224 000011ef: SWAP1 000011f0: DUP4 000011f1: PUSH2 0x11fd 000011f4: PUSH1 0x44 000011f6: PUSH0 000011f7: MSTORE 000011f8: CALLDATASIZE 000011f9: ISZERO 000011fa: MLOAD 000011fb: SWAP1 000011fc: JUMP 000011fd: JUMPDEST 000011fe: SWAP2 000011ff: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 00001220: PUSH2 0x38d9 00001223: JUMP 00001224: JUMPDEST 00001225: PUSH0 00001226: PUSH2 0x1130 00001229: JUMP 0000122a: JUMPDEST 0000122b: PUSH2 0x0ccb 0000122e: JUMP 0000122f: JUMPDEST 00001230: PUSH2 0x125b 00001233: DUP2 00001234: ADDRESS 00001235: CALLER 00001236: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00001257: PUSH2 0x385a 0000125a: JUMP 0000125b: JUMPDEST 0000125c: PUSH2 0x1265 0000125f: DUP2 00001260: CALLER 00001261: PUSH2 0x38af 00001264: JUMP 00001265: JUMPDEST 00001266: PUSH2 0x1114 00001269: JUMP 0000126a: JUMPDEST 0000126b: CALLVALUE 0000126c: PUSH2 0x03f1 0000126f: JUMPI 00001270: PUSH0 00001271: PUSH1 0x03 00001273: NOT 00001274: CALLDATASIZE 00001275: ADD 00001276: SLT 00001277: PUSH2 0x03f1 0000127a: JUMPI 0000127b: PUSH2 0x1282 0000127e: PUSH2 0x2c1f 00001281: JUMP 00001282: JUMPDEST 00001283: PUSH1 0x20 00001285: PUSH14 0xffffffffffffffffffffffffffff 00001294: PUSH2 0x0180 00001297: PUSH2 0x08c0 0000129a: PUSH2 0x2c2b 0000129d: JUMP 0000129e: JUMPDEST 0000129f: CALLVALUE 000012a0: PUSH2 0x03f1 000012a3: JUMPI 000012a4: PUSH1 0x20 000012a6: PUSH1 0x03 000012a8: NOT 000012a9: CALLDATASIZE 000012aa: ADD 000012ab: SLT 000012ac: PUSH2 0x03f1 000012af: JUMPI 000012b0: PUSH1 0x04 000012b2: CALLDATALOAD 000012b3: PUSH2 0x12ba 000012b6: PUSH2 0x2bf8 000012b9: JUMP 000012ba: JUMPDEST 000012bb: PUSH2 0x12c2 000012be: PUSH2 0x2edb 000012c1: JUMP 000012c2: JUMPDEST 000012c3: PUSH2 0x12ca 000012c6: PUSH2 0x2fe6 000012c9: JUMP 000012ca: JUMPDEST 000012cb: SWAP2 000012cc: PUSH2 0x12ea 000012cf: PUSH14 0xffffffffffffffffffffffffffff 000012de: PUSH2 0x0180 000012e1: DUP6 000012e2: ADD 000012e3: MLOAD 000012e4: AND 000012e5: DUP3 000012e6: PUSH2 0x51cf 000012e9: JUMP 000012ea: JUMPDEST 000012eb: PUSH2 0x1305 000012ee: PUSH13 0xffffffffffffffffffffffffff 000012fc: DUP3 000012fd: AND 000012fe: DUP1 000012ff: SWAP3 00001300: EQ 00001301: PUSH2 0x51b6 00001304: JUMP 00001305: JUMPDEST 00001306: DUP1 00001307: ISZERO 00001308: PUSH2 0x1354 0000130b: JUMPI 0000130c: PUSH2 0x0796 0000130f: SWAP4 00001310: PUSH2 0x1336 00001313: SWAP3 00001314: PUSH2 0x1330 00001317: SWAP3 00001318: PUSH2 0x1320 0000131b: CALLER 0000131c: PUSH2 0x3b42 0000131f: JUMP 00001320: JUMPDEST 00001321: SWAP3 00001322: PUSH1 0x24 00001324: PUSH0 00001325: MSTORE 00001326: CALLDATASIZE 00001327: ISZERO 00001328: MLOAD 00001329: SWAP4 0000132a: CALLER 0000132b: SWAP2 0000132c: PUSH2 0x3ba6 0000132f: JUMP 00001330: JUMPDEST 00001331: SWAP2 00001332: PUSH2 0x4d13 00001335: JUMP 00001336: JUMPDEST 00001337: PUSH0 00001338: PUSH4 0x929eee14 0000133d: TSTORE 0000133e: PUSH1 0x40 00001340: MLOAD 00001341: PUSH4 0xffffffff 00001346: SWAP1 00001347: SWAP2 00001348: AND 00001349: DUP2 0000134a: MSTORE 0000134b: SWAP1 0000134c: DUP2 0000134d: SWAP1 0000134e: PUSH1 0x20 00001350: DUP3 00001351: ADD 00001352: SWAP1 00001353: JUMP 00001354: JUMPDEST 00001355: PUSH4 0xd61c50f8 0000135a: PUSH0 0000135b: MSTORE 0000135c: PUSH1 0x04 0000135e: PUSH1 0x1c 00001360: REVERT 00001361: JUMPDEST 00001362: CALLVALUE 00001363: PUSH2 0x03f1 00001366: JUMPI 00001367: PUSH1 0x20 00001369: PUSH1 0x03 0000136b: NOT 0000136c: CALLDATASIZE 0000136d: ADD 0000136e: SLT 0000136f: PUSH2 0x03f1 00001372: JUMPI 00001373: PUSH1 0x20 00001375: PUSH2 0x0520 00001378: PUSH1 0x04 0000137a: CALLDATALOAD 0000137b: PUSH2 0x1383 0000137e: DUP2 0000137f: PUSH2 0x03d3 00001382: JUMP 00001383: JUMPDEST 00001384: PUSH2 0x138b 00001387: PUSH2 0x2c1f 0000138a: JUMP 0000138b: JUMPDEST 0000138c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013a1: PUSH2 0x13a8 000013a4: PUSH2 0x2c2b 000013a7: JUMP 000013a8: JUMPDEST 000013a9: POP 000013aa: POP 000013ab: SWAP2 000013ac: AND 000013ad: PUSH0 000013ae: MSTORE 000013af: PUSH1 0x04 000013b1: DUP4 000013b2: MSTORE 000013b3: PUSH13 0xffffffffffffffffffffffffff 000013c1: PUSH1 0x40 000013c3: PUSH0 000013c4: KECCAK256 000013c5: SLOAD 000013c6: AND 000013c7: SWAP1 000013c8: PUSH2 0x3e0d 000013cb: JUMP 000013cc: JUMPDEST 000013cd: CALLVALUE 000013ce: PUSH2 0x03f1 000013d1: JUMPI 000013d2: PUSH0 000013d3: PUSH1 0x03 000013d5: NOT 000013d6: CALLDATASIZE 000013d7: ADD 000013d8: SLT 000013d9: PUSH2 0x03f1 000013dc: JUMPI 000013dd: PUSH2 0x13e4 000013e0: PUSH2 0x2bf8 000013e3: JUMP 000013e4: JUMPDEST 000013e5: PUSH2 0x13ec 000013e8: PUSH2 0x2edb 000013eb: JUMP 000013ec: JUMPDEST 000013ed: PUSH2 0x13f4 000013f0: PUSH2 0x2fe6 000013f3: JUMP 000013f4: JUMPDEST 000013f5: SWAP1 000013f6: PUSH2 0x13fe 000013f9: CALLER 000013fa: PUSH2 0x3b42 000013fd: JUMP 000013fe: JUMPDEST 000013ff: SWAP2 00001400: PUSH13 0xffffffffffffffffffffffffff 0000140e: DUP4 0000140f: MLOAD 00001410: AND 00001411: DUP1 00001412: ISZERO 00001413: PUSH2 0x1354 00001416: JUMPI 00001417: PUSH2 0x0796 0000141a: SWAP4 0000141b: DUP3 0000141c: PUSH2 0x1330 0000141f: SWAP3 00001420: PUSH2 0x1441 00001423: PUSH14 0xffffffffffffffffffffffffffff 00001432: PUSH2 0x0180 00001435: PUSH2 0x1336 00001438: SWAP8 00001439: ADD 0000143a: MLOAD 0000143b: AND 0000143c: DUP3 0000143d: PUSH2 0x529f 00001440: JUMP 00001441: JUMPDEST 00001442: SWAP2 00001443: PUSH1 0x04 00001445: PUSH0 00001446: MSTORE 00001447: CALLDATASIZE 00001448: ISZERO 00001449: MLOAD 0000144a: SWAP4 0000144b: CALLER 0000144c: SWAP2 0000144d: PUSH2 0x3ba6 00001450: JUMP 00001451: JUMPDEST 00001452: CALLVALUE 00001453: PUSH2 0x03f1 00001456: JUMPI 00001457: PUSH0 00001458: PUSH1 0x03 0000145a: NOT 0000145b: CALLDATASIZE 0000145c: ADD 0000145d: SLT 0000145e: PUSH2 0x03f1 00001461: JUMPI 00001462: PUSH2 0x1469 00001465: PUSH2 0x2c1f 00001468: JUMP 00001469: JUMPDEST 0000146a: PUSH1 0x20 0000146c: PUSH2 0x0520 0000146f: PUSH2 0x1476 00001472: PUSH2 0x2c2b 00001475: JUMP 00001476: JUMPDEST 00001477: POP 00001478: POP 00001479: PUSH2 0x3e2d 0000147c: JUMP 0000147d: JUMPDEST 0000147e: SWAP2 0000147f: DUP2 00001480: PUSH1 0x1f 00001482: DUP5 00001483: ADD 00001484: SLT 00001485: ISZERO 00001486: PUSH2 0x03f1 00001489: JUMPI 0000148a: DUP3 0000148b: CALLDATALOAD 0000148c: SWAP2 0000148d: PUSH8 0xffffffffffffffff 00001496: DUP4 00001497: GT 00001498: PUSH2 0x03f1 0000149b: JUMPI 0000149c: PUSH1 0x20 0000149e: DUP1 0000149f: DUP6 000014a0: ADD 000014a1: SWAP5 000014a2: DUP5 000014a3: PUSH1 0x05 000014a5: SHL 000014a6: ADD 000014a7: ADD 000014a8: GT 000014a9: PUSH2 0x03f1 000014ac: JUMPI 000014ad: JUMP 000014ae: JUMPDEST 000014af: PUSH1 0x20 000014b1: SWAP1 000014b2: PUSH1 0x20 000014b4: PUSH1 0x40 000014b6: DUP2 000014b7: DUP4 000014b8: ADD 000014b9: SWAP3 000014ba: DUP3 000014bb: DUP2 000014bc: MSTORE 000014bd: DUP6 000014be: MLOAD 000014bf: DUP1 000014c0: SWAP5 000014c1: MSTORE 000014c2: ADD 000014c3: SWAP4 000014c4: ADD 000014c5: SWAP2 000014c6: PUSH0 000014c7: JUMPDEST 000014c8: DUP3 000014c9: DUP2 000014ca: LT 000014cb: PUSH2 0x14d5 000014ce: JUMPI 000014cf: POP 000014d0: POP 000014d1: POP 000014d2: POP 000014d3: SWAP1 000014d4: JUMP 000014d5: JUMPDEST 000014d6: DUP4 000014d7: MLOAD 000014d8: DUP6 000014d9: MSTORE 000014da: SWAP4 000014db: DUP2 000014dc: ADD 000014dd: SWAP4 000014de: SWAP3 000014df: DUP2 000014e0: ADD 000014e1: SWAP3 000014e2: PUSH1 0x01 000014e4: ADD 000014e5: PUSH2 0x14c7 000014e8: JUMP 000014e9: JUMPDEST 000014ea: CALLVALUE 000014eb: PUSH2 0x03f1 000014ee: JUMPI 000014ef: PUSH1 0x40 000014f1: PUSH1 0x03 000014f3: NOT 000014f4: CALLDATASIZE 000014f5: ADD 000014f6: SLT 000014f7: PUSH2 0x03f1 000014fa: JUMPI 000014fb: PUSH8 0xffffffffffffffff 00001504: PUSH1 0x04 00001506: CALLDATALOAD 00001507: DUP2 00001508: DUP2 00001509: GT 0000150a: PUSH2 0x03f1 0000150d: JUMPI 0000150e: PUSH2 0x151b 00001511: SWAP1 00001512: CALLDATASIZE 00001513: SWAP1 00001514: PUSH1 0x04 00001516: ADD 00001517: PUSH2 0x147d 0000151a: JUMP 0000151b: JUMPDEST 0000151c: SWAP1 0000151d: SWAP2 0000151e: PUSH1 0x24 00001520: CALLDATALOAD 00001521: SWAP1 00001522: DUP2 00001523: GT 00001524: PUSH2 0x03f1 00001527: JUMPI 00001528: PUSH2 0x1535 0000152b: SWAP1 0000152c: CALLDATASIZE 0000152d: SWAP1 0000152e: PUSH1 0x04 00001530: ADD 00001531: PUSH2 0x147d 00001534: JUMP 00001535: JUMPDEST 00001536: SWAP2 00001537: SWAP1 00001538: SWAP3 00001539: PUSH2 0x1540 0000153c: PUSH2 0x2bf8 0000153f: JUMP 00001540: JUMPDEST 00001541: PUSH2 0x1548 00001544: PUSH2 0x2edb 00001547: JUMP 00001548: JUMPDEST 00001549: SWAP4 0000154a: DUP4 0000154b: DUP4 0000154c: SUB 0000154d: PUSH2 0x1616 00001550: JUMPI 00001551: PUSH2 0x1561 00001554: PUSH2 0x155c 00001557: DUP5 00001558: PUSH2 0x29f9 0000155b: JUMP 0000155c: JUMPDEST 0000155d: PUSH2 0x2707 00001560: JUMP 00001561: JUMPDEST 00001562: SWAP4 00001563: DUP4 00001564: DUP6 00001565: MSTORE 00001566: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001587: PUSH2 0x158f 0000158a: DUP6 0000158b: PUSH2 0x29f9 0000158e: JUMP 0000158f: JUMPDEST 00001590: ADD 00001591: CALLDATASIZE 00001592: PUSH1 0x20 00001594: DUP8 00001595: ADD 00001596: CALLDATACOPY 00001597: PUSH2 0x159e 0000159a: PUSH2 0x2fe6 0000159d: JUMP 0000159e: JUMPDEST 0000159f: SWAP4 000015a0: PUSH0 000015a1: JUMPDEST 000015a2: DUP2 000015a3: DUP2 000015a4: LT 000015a5: PUSH2 0x15cd 000015a8: JUMPI 000015a9: PUSH2 0x0796 000015ac: DUP8 000015ad: PUSH2 0x15b9 000015b0: DUP11 000015b1: PUSH2 0x081e 000015b4: DUP11 000015b5: PUSH2 0x323f 000015b8: JUMP 000015b9: JUMPDEST 000015ba: PUSH2 0x15c1 000015bd: PUSH2 0x2c16 000015c0: JUMP 000015c1: JUMPDEST 000015c2: PUSH1 0x40 000015c4: MLOAD 000015c5: SWAP2 000015c6: DUP3 000015c7: SWAP2 000015c8: DUP3 000015c9: PUSH2 0x14ae 000015cc: JUMP 000015cd: JUMPDEST 000015ce: DUP1 000015cf: PUSH2 0x1605 000015d2: PUSH2 0x15de 000015d5: PUSH1 0x01 000015d7: SWAP4 000015d8: DUP6 000015d9: DUP10 000015da: PUSH2 0x2a3e 000015dd: JUMP 000015de: JUMPDEST 000015df: CALLDATALOAD 000015e0: PUSH2 0x15e8 000015e3: DUP2 000015e4: PUSH2 0x03d3 000015e7: JUMP 000015e8: JUMPDEST 000015e9: PUSH2 0x15f3 000015ec: DUP4 000015ed: DUP8 000015ee: DUP10 000015ef: PUSH2 0x2a3e 000015f2: JUMP 000015f3: JUMPDEST 000015f4: CALLDATALOAD 000015f5: PUSH2 0x15fd 000015f8: DUP2 000015f9: PUSH2 0x0528 000015fc: JUMP 000015fd: JUMPDEST 000015fe: CALLDATASIZE 000015ff: SWAP2 00001600: DUP11 00001601: PUSH2 0x3627 00001604: JUMP 00001605: JUMPDEST 00001606: PUSH2 0x160f 00001609: DUP3 0000160a: DUP11 0000160b: PUSH2 0x2a53 0000160e: JUMP 0000160f: JUMPDEST 00001610: MSTORE 00001611: ADD 00001612: PUSH2 0x15a1 00001615: JUMP 00001616: JUMPDEST 00001617: PUSH4 0x9d89020a 0000161c: PUSH0 0000161d: MSTORE 0000161e: PUSH1 0x04 00001620: PUSH1 0x1c 00001622: REVERT 00001623: JUMPDEST 00001624: CALLVALUE 00001625: PUSH2 0x03f1 00001628: JUMPI 00001629: PUSH0 0000162a: PUSH1 0x03 0000162c: NOT 0000162d: CALLDATASIZE 0000162e: ADD 0000162f: SLT 00001630: PUSH2 0x03f1 00001633: JUMPI 00001634: PUSH2 0x163b 00001637: PUSH2 0x2c1f 0000163a: JUMP 0000163b: JUMPDEST 0000163c: PUSH1 0x20 0000163e: PUSH2 0x1645 00001641: PUSH2 0x2c2b 00001644: JUMP 00001645: JUMPDEST 00001646: POP 00001647: POP 00001648: PUSH2 0x1658 0000164b: PUSH2 0x1652 0000164e: PUSH2 0x2603 00001651: JUMP 00001652: JUMPDEST 00001653: SWAP2 00001654: PUSH2 0x3e2d 00001657: JUMP 00001658: JUMPDEST 00001659: SWAP1 0000165a: PUSH1 0x40 0000165c: MLOAD 0000165d: SWAP2 0000165e: DUP1 0000165f: DUP3 00001660: SUB 00001661: SWAP2 00001662: GT 00001663: MUL 00001664: DUP2 00001665: MSTORE 00001666: RETURN 00001667: JUMPDEST 00001668: CALLVALUE 00001669: PUSH2 0x03f1 0000166c: JUMPI 0000166d: PUSH0 0000166e: PUSH1 0x03 00001670: NOT 00001671: CALLDATASIZE 00001672: ADD 00001673: SLT 00001674: PUSH2 0x03f1 00001677: JUMPI 00001678: PUSH1 0x20 0000167a: PUSH1 0x40 0000167c: MLOAD 0000167d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001692: PUSH32 0x000000000000000000000000f783818e62d9793f119a3a9656cbdab93ff3e993 000016b3: AND 000016b4: DUP2 000016b5: MSTORE 000016b6: RETURN 000016b7: JUMPDEST 000016b8: PUSH1 0x20 000016ba: SWAP1 000016bb: PUSH1 0x20 000016bd: PUSH1 0x40 000016bf: DUP2 000016c0: DUP4 000016c1: ADD 000016c2: SWAP3 000016c3: DUP3 000016c4: DUP2 000016c5: MSTORE 000016c6: DUP6 000016c7: MLOAD 000016c8: DUP1 000016c9: SWAP5 000016ca: MSTORE 000016cb: ADD 000016cc: SWAP4 000016cd: ADD 000016ce: SWAP2 000016cf: PUSH0 000016d0: JUMPDEST 000016d1: DUP3 000016d2: DUP2 000016d3: LT 000016d4: PUSH2 0x16de 000016d7: JUMPI 000016d8: POP 000016d9: POP 000016da: POP 000016db: POP 000016dc: SWAP1 000016dd: JUMP 000016de: JUMPDEST 000016df: DUP4 000016e0: MLOAD 000016e1: PUSH4 0xffffffff 000016e6: AND 000016e7: DUP6 000016e8: MSTORE 000016e9: SWAP4 000016ea: DUP2 000016eb: ADD 000016ec: SWAP4 000016ed: SWAP3 000016ee: DUP2 000016ef: ADD 000016f0: SWAP3 000016f1: PUSH1 0x01 000016f3: ADD 000016f4: PUSH2 0x16d0 000016f7: JUMP 000016f8: JUMPDEST 000016f9: CALLVALUE 000016fa: PUSH2 0x03f1 000016fd: JUMPI 000016fe: PUSH0 000016ff: PUSH1 0x03 00001701: NOT 00001702: CALLDATASIZE 00001703: ADD 00001704: SLT 00001705: PUSH2 0x03f1 00001708: JUMPI 00001709: PUSH2 0x1710 0000170c: PUSH2 0x2c1f 0000170f: JUMP 00001710: JUMPDEST 00001711: PUSH1 0x05 00001713: SLOAD 00001714: PUSH16 0xffffffffffffffffffffffffffffffff 00001725: DUP2 00001726: AND 00001727: SWAP1 00001728: PUSH1 0x80 0000172a: SHR 0000172b: DUP2 0000172c: DUP2 0000172d: SUB 0000172e: SWAP1 0000172f: DUP2 00001730: GT 00001731: PUSH2 0x0b38 00001734: JUMPI 00001735: PUSH2 0x1740 00001738: PUSH2 0x155c 0000173b: DUP3 0000173c: PUSH2 0x29f9 0000173f: JUMP 00001740: JUMPDEST 00001741: SWAP2 00001742: DUP2 00001743: DUP4 00001744: MSTORE 00001745: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001766: PUSH2 0x176e 00001769: DUP4 0000176a: PUSH2 0x29f9 0000176d: JUMP 0000176e: JUMPDEST 0000176f: ADD 00001770: CALLDATASIZE 00001771: PUSH1 0x20 00001773: DUP6 00001774: ADD 00001775: CALLDATACOPY 00001776: PUSH0 00001777: JUMPDEST 00001778: DUP3 00001779: DUP2 0000177a: LT 0000177b: PUSH2 0x178c 0000177e: JUMPI 0000177f: PUSH1 0x40 00001781: MLOAD 00001782: DUP1 00001783: PUSH2 0x0796 00001786: DUP7 00001787: DUP3 00001788: PUSH2 0x16b7 0000178b: JUMP 0000178c: JUMPDEST 0000178d: DUP1 0000178e: PUSH2 0x17cf 00001791: PUSH2 0x17ba 00001794: PUSH2 0x17b0 00001797: PUSH2 0x17a2 0000179a: PUSH1 0x01 0000179c: SWAP6 0000179d: DUP8 0000179e: PUSH2 0x2a67 000017a1: JUMP 000017a2: JUMPDEST 000017a3: PUSH0 000017a4: MSTORE 000017a5: PUSH1 0x06 000017a7: PUSH1 0x20 000017a9: MSTORE 000017aa: PUSH1 0x40 000017ac: PUSH0 000017ad: KECCAK256 000017ae: SWAP1 000017af: JUMP 000017b0: JUMPDEST 000017b1: SLOAD 000017b2: PUSH4 0xffffffff 000017b7: AND 000017b8: SWAP1 000017b9: JUMP 000017ba: JUMPDEST 000017bb: PUSH2 0x17c4 000017be: DUP4 000017bf: DUP9 000017c0: PUSH2 0x2a53 000017c3: JUMP 000017c4: JUMPDEST 000017c5: SWAP1 000017c6: PUSH4 0xffffffff 000017cb: AND 000017cc: SWAP1 000017cd: MSTORE 000017ce: JUMP 000017cf: JUMPDEST 000017d0: ADD 000017d1: PUSH2 0x1777 000017d4: JUMP 000017d5: JUMPDEST 000017d6: CALLVALUE 000017d7: PUSH2 0x03f1 000017da: JUMPI 000017db: PUSH0 000017dc: PUSH1 0x03 000017de: NOT 000017df: CALLDATASIZE 000017e0: ADD 000017e1: SLT 000017e2: PUSH2 0x03f1 000017e5: JUMPI 000017e6: PUSH1 0x20 000017e8: PUSH0 000017e9: MSTORE 000017ea: PUSH0 000017eb: PUSH1 0x20 000017ed: MSTORE 000017ee: PUSH32 0x086d6e6e63555344430000000000000000000000000000000000000000000000 0000180f: PUSH1 0x3f 00001811: MSTORE 00001812: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000000 00001833: PUSH1 0x5f 00001835: MSTORE 00001836: PUSH1 0x80 00001838: PUSH0 00001839: RETURN 0000183a: JUMPDEST 0000183b: CALLVALUE 0000183c: PUSH2 0x03f1 0000183f: JUMPI 00001840: PUSH0 00001841: PUSH1 0x03 00001843: NOT 00001844: CALLDATASIZE 00001845: ADD 00001846: SLT 00001847: PUSH2 0x03f1 0000184a: JUMPI 0000184b: PUSH1 0x20 0000184d: PUSH1 0x40 0000184f: MLOAD 00001850: PUSH32 0x0000000000000000000000000000000000000000000000000000000000015180 00001871: DUP2 00001872: MSTORE 00001873: RETURN 00001874: JUMPDEST 00001875: CALLVALUE 00001876: PUSH2 0x03f1 00001879: JUMPI 0000187a: PUSH1 0x40 0000187c: PUSH1 0x03 0000187e: NOT 0000187f: CALLDATASIZE 00001880: ADD 00001881: SLT 00001882: PUSH2 0x03f1 00001885: JUMPI 00001886: PUSH1 0x04 00001888: CALLDATALOAD 00001889: PUSH2 0x1891 0000188c: DUP2 0000188d: PUSH2 0x03d3 00001890: JUMP 00001891: JUMPDEST 00001892: PUSH1 0x24 00001894: CALLDATALOAD 00001895: SWAP1 00001896: PUSH2 0x189d 00001899: PUSH2 0x2bf8 0000189c: JUMP 0000189d: JUMPDEST 0000189e: PUSH2 0x18a5 000018a1: PUSH2 0x2edb 000018a4: JUMP 000018a5: JUMPDEST 000018a6: SWAP1 000018a7: PUSH2 0x18ae 000018aa: PUSH2 0x2fe6 000018ad: JUMP 000018ae: JUMPDEST 000018af: SWAP3 000018b0: PUSH2 0x18ce 000018b3: PUSH14 0xffffffffffffffffffffffffffff 000018c2: PUSH2 0x0180 000018c5: DUP7 000018c6: ADD 000018c7: MLOAD 000018c8: AND 000018c9: DUP3 000018ca: PUSH2 0x51cf 000018cd: JUMP 000018ce: JUMPDEST 000018cf: SWAP2 000018d0: PUSH13 0xffffffffffffffffffffffffff 000018de: SWAP3 000018df: PUSH2 0x18ec 000018e2: DUP5 000018e3: DUP3 000018e4: AND 000018e5: DUP1 000018e6: SWAP3 000018e7: EQ 000018e8: PUSH2 0x51b6 000018eb: JUMP 000018ec: JUMPDEST 000018ed: DUP1 000018ee: ISZERO 000018ef: PUSH2 0x1a08 000018f2: JUMPI 000018f3: DUP6 000018f4: PUSH2 0x098c 000018f7: DUP3 000018f8: PUSH2 0x1996 000018fb: PUSH2 0x081e 000018fe: SWAP8 000018ff: PUSH2 0x1931 00001902: PUSH2 0x0823 00001905: SWAP12 00001906: PUSH2 0x1a02 00001909: SWAP8 0000190a: DUP10 0000190b: CALLER 0000190c: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 0000192d: PUSH2 0x4f73 00001930: JUMP 00001931: JUMPDEST 00001932: PUSH2 0x193a 00001935: CALLER 00001936: PUSH2 0x3b42 00001939: JUMP 0000193a: JUMPDEST 0000193b: SWAP1 0000193c: DUP1 0000193d: PUSH2 0x1949 00001940: DUP6 00001941: DUP3 00001942: DUP6 00001943: MLOAD 00001944: AND 00001945: PUSH2 0x340b 00001948: JUMP 00001949: JUMPDEST 0000194a: AND 0000194b: DUP3 0000194c: MSTORE 0000194d: CALLER 0000194e: PUSH0 0000194f: SWAP1 00001950: DUP2 00001951: MSTORE 00001952: PUSH1 0x04 00001954: PUSH1 0x20 00001956: MSTORE 00001957: PUSH1 0x40 00001959: SWAP1 0000195a: KECCAK256 0000195b: JUMPDEST 0000195c: SWAP2 0000195d: MLOAD 0000195e: AND 0000195f: PUSH13 0xffffffffffffffffffffffffff 0000196d: AND 0000196e: PUSH32 0xffffffffffffffffffffffffffffffffffffff00000000000000000000000000 0000198f: DUP3 00001990: SLOAD 00001991: AND 00001992: OR 00001993: SWAP1 00001994: SSTORE 00001995: JUMP 00001996: JUMPDEST 00001997: PUSH2 0x19d5 0000199a: PUSH2 0x19c2 0000199d: PUSH2 0x19a5 000019a0: DUP8 000019a1: PUSH2 0x3b42 000019a4: JUMP 000019a5: JUMPDEST 000019a6: SWAP3 000019a7: PUSH2 0x19bd 000019aa: DUP5 000019ab: MLOAD 000019ac: PUSH13 0xffffffffffffffffffffffffff 000019ba: AND 000019bb: SWAP1 000019bc: JUMP 000019bd: JUMPDEST 000019be: PUSH2 0x3476 000019c1: JUMP 000019c2: JUMPDEST 000019c3: PUSH13 0xffffffffffffffffffffffffff 000019d1: AND 000019d2: DUP3 000019d3: MSTORE 000019d4: JUMP 000019d5: JUMPDEST 000019d6: PUSH2 0x19fd 000019d9: DUP6 000019da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019ef: AND 000019f0: PUSH0 000019f1: MSTORE 000019f2: PUSH1 0x04 000019f4: PUSH1 0x20 000019f6: MSTORE 000019f7: PUSH1 0x40 000019f9: PUSH0 000019fa: KECCAK256 000019fb: SWAP1 000019fc: JUMP 000019fd: JUMPDEST 000019fe: PUSH2 0x342a 00001a01: JUMP 00001a02: JUMPDEST 00001a03: CALLER 00001a04: PUSH2 0x5011 00001a07: JUMP 00001a08: JUMPDEST 00001a09: PUSH4 0xddee9b30 00001a0e: PUSH0 00001a0f: MSTORE 00001a10: PUSH1 0x04 00001a12: PUSH1 0x1c 00001a14: REVERT 00001a15: JUMPDEST 00001a16: PUSH1 0x04 00001a18: CALLDATALOAD 00001a19: SWAP1 00001a1a: PUSH2 0xffff 00001a1d: DUP3 00001a1e: AND 00001a1f: DUP3 00001a20: SUB 00001a21: PUSH2 0x03f1 00001a24: JUMPI 00001a25: JUMP 00001a26: JUMPDEST 00001a27: PUSH1 0x24 00001a29: CALLDATALOAD 00001a2a: SWAP1 00001a2b: PUSH2 0xffff 00001a2e: DUP3 00001a2f: AND 00001a30: DUP3 00001a31: SUB 00001a32: PUSH2 0x03f1 00001a35: JUMPI 00001a36: JUMP 00001a37: JUMPDEST 00001a38: CALLVALUE 00001a39: PUSH2 0x03f1 00001a3c: JUMPI 00001a3d: PUSH1 0x20 00001a3f: PUSH1 0x03 00001a41: NOT 00001a42: CALLDATASIZE 00001a43: ADD 00001a44: SLT 00001a45: PUSH2 0x03f1 00001a48: JUMPI 00001a49: PUSH2 0x1a50 00001a4c: PUSH2 0x1a15 00001a4f: JUMP 00001a50: JUMPDEST 00001a51: PUSH2 0x1a58 00001a54: PUSH2 0x2bf8 00001a57: JUMP 00001a58: JUMPDEST 00001a59: PUSH2 0x1a60 00001a5c: PUSH2 0x2edb 00001a5f: JUMP 00001a60: JUMPDEST 00001a61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a76: PUSH32 0x000000000000000000000000dd7dd3b5076cf89440d05585ff56d246386207be 00001a97: AND 00001a98: CALLER 00001a99: SUB 00001a9a: PUSH2 0x1b76 00001a9d: JUMPI 00001a9e: PUSH2 0xffff 00001aa1: DUP3 00001aa2: AND 00001aa3: PUSH2 0x03e8 00001aa6: DUP2 00001aa7: GT 00001aa8: PUSH2 0x1b71 00001aab: JUMPI 00001aac: PUSH2 0x1ab3 00001aaf: PUSH2 0x2fe6 00001ab2: JUMP 00001ab3: JUMPDEST 00001ab4: DUP1 00001ab5: MLOAD 00001ab6: PUSH2 0x1b6c 00001ab9: JUMPI 00001aba: DUP1 00001abb: PUSH2 0x081e 00001abe: SWAP3 00001abf: PUSH2 0x0e43 00001ac2: SWAP6 00001ac3: PUSH2 0x0120 00001ac6: DUP4 00001ac7: ADD 00001ac8: SWAP2 00001ac9: PUSH2 0x1ade 00001acc: PUSH2 0x1ad7 00001acf: DUP5 00001ad0: MLOAD 00001ad1: PUSH2 0xffff 00001ad4: AND 00001ad5: SWAP1 00001ad6: JUMP 00001ad7: JUMPDEST 00001ad8: PUSH2 0xffff 00001adb: AND 00001adc: SWAP1 00001add: JUMP 00001ade: JUMPDEST 00001adf: DUP2 00001ae0: SUB 00001ae1: PUSH2 0x1aee 00001ae4: JUMPI 00001ae5: JUMPDEST 00001ae6: POP 00001ae7: POP 00001ae8: POP 00001ae9: POP 00001aea: PUSH2 0x323f 00001aed: JUMP 00001aee: JUMPDEST 00001aef: DUP2 00001af0: PUSH2 0x1b60 00001af3: SWAP4 00001af4: PUSH2 0x1b42 00001af7: PUSH32 0x4b34705283cdb9398d0e50b216b8fb424c6d4def5db9bfadc661ee3adc6076ee 00001b18: SWAP7 00001b19: PUSH2 0x1b4b 00001b1c: SWAP5 00001b1d: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 00001b3e: PUSH2 0x3efd 00001b41: JUMP 00001b42: JUMPDEST 00001b43: SWAP1 00001b44: PUSH2 0xffff 00001b47: AND 00001b48: SWAP1 00001b49: MSTORE 00001b4a: JUMP 00001b4b: JUMPDEST 00001b4c: PUSH1 0x40 00001b4e: MLOAD 00001b4f: PUSH2 0xffff 00001b52: SWAP1 00001b53: SWAP2 00001b54: AND 00001b55: DUP2 00001b56: MSTORE 00001b57: SWAP1 00001b58: DUP2 00001b59: SWAP1 00001b5a: PUSH1 0x20 00001b5c: DUP3 00001b5d: ADD 00001b5e: SWAP1 00001b5f: JUMP 00001b60: JUMPDEST 00001b61: SUB 00001b62: SWAP1 00001b63: LOG1 00001b64: DUP1 00001b65: PUSH0 00001b66: DUP1 00001b67: DUP1 00001b68: PUSH2 0x1ae5 00001b6b: JUMP 00001b6c: JUMPDEST 00001b6d: PUSH2 0x3ef0 00001b70: JUMP 00001b71: JUMPDEST 00001b72: PUSH2 0x3ee3 00001b75: JUMP 00001b76: JUMPDEST 00001b77: PUSH4 0x32cc7236 00001b7c: PUSH0 00001b7d: MSTORE 00001b7e: PUSH1 0x04 00001b80: PUSH1 0x1c 00001b82: REVERT 00001b83: JUMPDEST 00001b84: CALLVALUE 00001b85: PUSH2 0x03f1 00001b88: JUMPI 00001b89: PUSH0 00001b8a: PUSH1 0x03 00001b8c: NOT 00001b8d: CALLDATASIZE 00001b8e: ADD 00001b8f: SLT 00001b90: PUSH2 0x03f1 00001b93: JUMPI 00001b94: PUSH2 0x1b9b 00001b97: PUSH2 0x2c1f 00001b9a: JUMP 00001b9b: JUMPDEST 00001b9c: PUSH1 0x20 00001b9e: PUSH13 0xffffffffffffffffffffffffff 00001bac: PUSH1 0x80 00001bae: PUSH2 0x08c0 00001bb1: PUSH2 0x2c2b 00001bb4: JUMP 00001bb5: JUMPDEST 00001bb6: CALLVALUE 00001bb7: PUSH2 0x03f1 00001bba: JUMPI 00001bbb: PUSH1 0x20 00001bbd: PUSH1 0x03 00001bbf: NOT 00001bc0: CALLDATASIZE 00001bc1: ADD 00001bc2: SLT 00001bc3: PUSH2 0x03f1 00001bc6: JUMPI 00001bc7: PUSH1 0x20 00001bc9: PUSH2 0x1bd0 00001bcc: PUSH2 0x2edb 00001bcf: JUMP 00001bd0: JUMPDEST 00001bd1: PUSH2 0x0520 00001bd4: PUSH2 0x1330 00001bd7: PUSH1 0x04 00001bd9: CALLDATALOAD 00001bda: PUSH2 0x3f7b 00001bdd: JUMP 00001bde: JUMPDEST 00001bdf: CALLVALUE 00001be0: PUSH2 0x03f1 00001be3: JUMPI 00001be4: PUSH1 0x20 00001be6: PUSH1 0x03 00001be8: NOT 00001be9: CALLDATASIZE 00001bea: ADD 00001beb: SLT 00001bec: PUSH2 0x03f1 00001bef: JUMPI 00001bf0: PUSH1 0x04 00001bf2: CALLDATALOAD 00001bf3: PUSH2 0x1bfa 00001bf6: PUSH2 0x2edb 00001bf9: JUMP 00001bfa: JUMPDEST 00001bfb: SWAP1 00001bfc: PUSH2 0x1c04 00001bff: DUP2 00001c00: PUSH2 0x3f7b 00001c03: JUMP 00001c04: JUMPDEST 00001c05: SUB 00001c06: PUSH2 0x1c12 00001c09: JUMPI 00001c0a: PUSH2 0x04dd 00001c0d: SWAP1 00001c0e: PUSH2 0x4d13 00001c11: JUMP 00001c12: JUMPDEST 00001c13: PUSH4 0x8a164f63 00001c18: PUSH0 00001c19: MSTORE 00001c1a: PUSH1 0x04 00001c1c: PUSH1 0x1c 00001c1e: REVERT 00001c1f: JUMPDEST 00001c20: CALLVALUE 00001c21: PUSH2 0x03f1 00001c24: JUMPI 00001c25: PUSH0 00001c26: PUSH1 0x03 00001c28: NOT 00001c29: CALLDATASIZE 00001c2a: ADD 00001c2b: SLT 00001c2c: PUSH2 0x03f1 00001c2f: JUMPI 00001c30: PUSH1 0x20 00001c32: PUSH1 0xff 00001c34: PUSH0 00001c35: SLOAD 00001c36: AND 00001c37: PUSH1 0x40 00001c39: MLOAD 00001c3a: SWAP1 00001c3b: ISZERO 00001c3c: ISZERO 00001c3d: DUP2 00001c3e: MSTORE 00001c3f: RETURN 00001c40: JUMPDEST 00001c41: CALLVALUE 00001c42: PUSH2 0x03f1 00001c45: JUMPI 00001c46: PUSH0 00001c47: PUSH1 0x03 00001c49: NOT 00001c4a: CALLDATASIZE 00001c4b: ADD 00001c4c: SLT 00001c4d: PUSH2 0x03f1 00001c50: JUMPI 00001c51: PUSH1 0x20 00001c53: PUSH1 0x40 00001c55: MLOAD 00001c56: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c6b: PUSH32 0x000000000000000000000000dd7dd3b5076cf89440d05585ff56d246386207be 00001c8c: AND 00001c8d: DUP2 00001c8e: MSTORE 00001c8f: RETURN 00001c90: JUMPDEST 00001c91: CALLVALUE 00001c92: PUSH2 0x03f1 00001c95: JUMPI 00001c96: PUSH0 00001c97: PUSH1 0x03 00001c99: NOT 00001c9a: CALLDATASIZE 00001c9b: ADD 00001c9c: SLT 00001c9d: PUSH2 0x03f1 00001ca0: JUMPI 00001ca1: PUSH32 0x000000000000000000000000f783818e62d9793f119a3a9656cbdab93ff3e993 00001cc2: DUP1 00001cc3: CALLER 00001cc4: XOR 00001cc5: PUSH2 0x04f9 00001cc8: JUMPI 00001cc9: PUSH2 0x1cd0 00001ccc: PUSH2 0x2bf8 00001ccf: JUMP 00001cd0: JUMPDEST 00001cd1: PUSH2 0x1cd8 00001cd4: PUSH2 0x2edb 00001cd7: JUMP 00001cd8: JUMPDEST 00001cd9: PUSH2 0x1ce0 00001cdc: PUSH2 0x2fe6 00001cdf: JUMP 00001ce0: JUMPDEST 00001ce1: SWAP2 00001ce2: PUSH2 0x1ceb 00001ce5: DUP4 00001ce6: MLOAD 00001ce7: ISZERO 00001ce8: ISZERO 00001ce9: SWAP1 00001cea: JUMP 00001ceb: JUMPDEST 00001cec: PUSH2 0x1fee 00001cef: JUMPI 00001cf0: PUSH2 0x1d95 00001cf3: SWAP1 00001cf4: PUSH2 0x1cfb 00001cf7: PUSH2 0x2603 00001cfa: JUMP 00001cfb: JUMPDEST 00001cfc: SWAP1 00001cfd: PUSH2 0x1d05 00001d00: DUP6 00001d01: PUSH2 0x2f95 00001d04: JUMP 00001d05: JUMPDEST 00001d06: SWAP1 00001d07: DUP2 00001d08: DUP4 00001d09: LT 00001d0a: ISZERO 00001d0b: PUSH2 0x1f9e 00001d0e: JUMPI 00001d0f: POP 00001d10: SWAP1 00001d11: PUSH2 0x1d1d 00001d14: DUP2 00001d15: PUSH2 0x1d2d 00001d18: SWAP4 00001d19: PUSH2 0x2811 00001d1c: JUMP 00001d1d: JUMPDEST 00001d1e: SWAP1 00001d1f: PUSH2 0x1d28 00001d22: DUP3 00001d23: DUP8 00001d24: PUSH2 0x412c 00001d27: JUMP 00001d28: JUMPDEST 00001d29: PUSH2 0x2a67 00001d2c: JUMP 00001d2d: JUMPDEST 00001d2e: PUSH2 0x1d57 00001d31: DUP5 00001d32: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 00001d53: PUSH2 0x420d 00001d56: JUMP 00001d57: JUMPDEST 00001d58: PUSH0 00001d59: PUSH2 0x0140 00001d5c: DUP6 00001d5d: ADD 00001d5e: MSTORE 00001d5f: PUSH1 0x01 00001d61: DUP5 00001d62: MSTORE 00001d63: PUSH2 0x2710 00001d66: PUSH2 0x0160 00001d69: DUP6 00001d6a: ADD 00001d6b: MSTORE 00001d6c: PUSH0 00001d6d: PUSH2 0x0100 00001d70: DUP6 00001d71: ADD 00001d72: MSTORE 00001d73: PUSH2 0x117c 00001d76: PUSH2 0x0718 00001d79: PUSH2 0x115f 00001d7c: PUSH1 0x60 00001d7e: DUP8 00001d7f: ADD 00001d80: MLOAD 00001d81: PUSH16 0xffffffffffffffffffffffffffffffff 00001d92: AND 00001d93: SWAP1 00001d94: JUMP 00001d95: JUMPDEST 00001d96: PUSH1 0xc0 00001d98: DUP4 00001d99: ADD 00001d9a: DUP1 00001d9b: MLOAD 00001d9c: PUSH4 0xffffffff 00001da1: SWAP1 00001da2: DUP2 00001da3: AND 00001da4: SWAP2 00001da5: DUP3 00001da6: DUP1 00001da7: PUSH2 0x1e27 00001daa: JUMPI 00001dab: JUMPDEST 00001dac: POP 00001dad: POP 00001dae: POP 00001daf: POP 00001db0: PUSH2 0x1dba 00001db3: PUSH2 0x0718 00001db6: PUSH2 0x39bc 00001db9: JUMP 00001dba: JUMPDEST 00001dbb: SWAP1 00001dbc: PUSH0 00001dbd: SWAP1 00001dbe: JUMPDEST 00001dbf: DUP3 00001dc0: DUP3 00001dc1: LT 00001dc2: PUSH2 0x1e0f 00001dc5: JUMPI 00001dc6: POP 00001dc7: POP 00001dc8: POP 00001dc9: PUSH13 0xffffffffffffffffffffffffff 00001dd7: PUSH2 0x1df0 00001dda: PUSH1 0xa0 00001ddc: DUP5 00001ddd: ADD 00001dde: MLOAD 00001ddf: PUSH13 0xffffffffffffffffffffffffff 00001ded: AND 00001dee: SWAP1 00001def: JUMP 00001df0: JUMPDEST 00001df1: AND 00001df2: PUSH2 0x1e0a 00001df5: JUMPI 00001df6: PUSH2 0x1e01 00001df9: PUSH2 0x0e43 00001dfc: SWAP3 00001dfd: PUSH2 0x323f 00001e00: JUMP 00001e01: JUMPDEST 00001e02: PUSH2 0x081e 00001e05: TIMESTAMP 00001e06: PUSH2 0x450a 00001e09: JUMP 00001e0a: JUMPDEST 00001e0b: PUSH2 0x44fd 00001e0e: JUMP 00001e0f: JUMPDEST 00001e10: PUSH2 0x1e1f 00001e13: DUP2 00001e14: PUSH2 0x117c 00001e17: PUSH1 0x01 00001e19: SWAP4 00001e1a: DUP9 00001e1b: PUSH2 0x39de 00001e1e: JUMP 00001e1f: JUMPDEST 00001e20: SWAP2 00001e21: ADD 00001e22: SWAP1 00001e23: PUSH2 0x1dbe 00001e26: JUMP 00001e27: JUMPDEST 00001e28: PUSH2 0x1e42 00001e2b: PUSH2 0x07b9 00001e2e: DUP6 00001e2f: PUSH4 0xffffffff 00001e34: AND 00001e35: PUSH0 00001e36: MSTORE 00001e37: PUSH1 0x07 00001e39: PUSH1 0x20 00001e3b: MSTORE 00001e3c: PUSH1 0x40 00001e3e: PUSH0 00001e3f: KECCAK256 00001e40: SWAP1 00001e41: JUMP 00001e42: JUMPDEST 00001e43: PUSH1 0x20 00001e45: DUP2 00001e46: ADD 00001e47: DUP1 00001e48: MLOAD 00001e49: PUSH13 0xffffffffffffffffffffffffff 00001e57: AND 00001e58: DUP10 00001e59: PUSH2 0x1e84 00001e5c: PUSH2 0x1e72 00001e5f: DUP6 00001e60: MLOAD 00001e61: PUSH13 0xffffffffffffffffffffffffff 00001e6f: AND 00001e70: SWAP1 00001e71: JUMP 00001e72: JUMPDEST 00001e73: PUSH13 0xffffffffffffffffffffffffff 00001e81: AND 00001e82: SWAP1 00001e83: JUMP 00001e84: JUMPDEST 00001e85: PUSH13 0xffffffffffffffffffffffffff 00001e93: DUP1 00001e94: SWAP4 00001e95: AND 00001e96: LT 00001e97: PUSH2 0x1f42 00001e9a: JUMPI 00001e9b: JUMPDEST 00001e9c: POP 00001e9d: SWAP1 00001e9e: PUSH2 0x1f0d 00001ea1: SWAP3 00001ea2: SWAP2 00001ea3: PUSH0 00001ea4: DUP7 00001ea5: MSTORE 00001ea6: DUP1 00001ea7: PUSH16 0xffffffffffffffffffffffffffffffff 00001eb8: PUSH2 0x1f02 00001ebb: PUSH1 0x40 00001ebd: PUSH2 0x1eea 00001ec0: PUSH2 0x1ed6 00001ec3: DUP9 00001ec4: MLOAD 00001ec5: PUSH13 0xffffffffffffffffffffffffff 00001ed3: AND 00001ed4: SWAP1 00001ed5: JUMP 00001ed6: JUMPDEST 00001ed7: SWAP7 00001ed8: MLOAD 00001ed9: PUSH13 0xffffffffffffffffffffffffff 00001ee7: AND 00001ee8: SWAP1 00001ee9: JUMP 00001eea: JUMPDEST 00001eeb: SWAP7 00001eec: ADD 00001eed: MLOAD 00001eee: PUSH16 0xffffffffffffffffffffffffffffffff 00001eff: AND 00001f00: SWAP1 00001f01: JUMP 00001f02: JUMPDEST 00001f03: AND 00001f04: SWAP4 00001f05: AND 00001f06: SWAP2 00001f07: AND 00001f08: DUP5 00001f09: PUSH2 0x4477 00001f0c: JUMP 00001f0d: JUMPDEST 00001f0e: PUSH2 0x1f16 00001f11: DUP2 00001f12: PUSH2 0x44b1 00001f15: JUMP 00001f16: JUMPDEST 00001f17: TIMESTAMP 00001f18: EQ 00001f19: PUSH2 0x1f23 00001f1c: JUMPI 00001f1d: JUMPDEST 00001f1e: DUP1 00001f1f: PUSH2 0x1dab 00001f22: JUMP 00001f23: JUMPDEST 00001f24: PUSH2 0x17c4 00001f27: PUSH2 0x1f32 00001f2a: PUSH2 0x1f3a 00001f2d: SWAP5 00001f2e: PUSH2 0x2b53 00001f31: JUMP 00001f32: JUMPDEST 00001f33: SWAP3 00001f34: DUP4 00001f35: AND 00001f36: PUSH2 0x44d7 00001f39: JUMP 00001f3a: JUMPDEST 00001f3b: PUSH0 00001f3c: DUP1 00001f3d: DUP1 00001f3e: PUSH2 0x1f1d 00001f41: JUMP 00001f42: JUMPDEST 00001f43: DUP9 00001f44: PUSH16 0xffffffffffffffffffffffffffffffff 00001f55: PUSH2 0x1f69 00001f58: DUP7 00001f59: SWAP6 00001f5a: SWAP5 00001f5b: SWAP12 00001f5c: DUP12 00001f5d: PUSH2 0x1f72 00001f60: SWAP6 00001f61: PUSH2 0x1f0d 00001f64: SWAP10 00001f65: PUSH2 0x4264 00001f68: JUMP 00001f69: JUMPDEST 00001f6a: SWAP1 00001f6b: POP 00001f6c: AND 00001f6d: SWAP1 00001f6e: PUSH2 0x2811 00001f71: JUMP 00001f72: JUMPDEST 00001f73: SWAP8 00001f74: PUSH2 0x1f94 00001f77: DUP4 00001f78: PUSH2 0x1f8f 00001f7b: DUP11 00001f7c: PUSH4 0xffffffff 00001f81: AND 00001f82: PUSH0 00001f83: MSTORE 00001f84: PUSH1 0x07 00001f86: PUSH1 0x20 00001f88: MSTORE 00001f89: PUSH1 0x40 00001f8b: PUSH0 00001f8c: KECCAK256 00001f8d: SWAP1 00001f8e: JUMP 00001f8f: JUMPDEST 00001f90: PUSH2 0x2a74 00001f93: JUMP 00001f94: JUMPDEST 00001f95: SWAP1 00001f96: SWAP2 00001f97: SWAP3 00001f98: POP 00001f99: DUP10 00001f9a: PUSH2 0x1e9b 00001f9d: JUMP 00001f9e: JUMPDEST 00001f9f: SWAP1 00001fa0: DUP1 00001fa1: DUP4 00001fa2: GT 00001fa3: PUSH2 0x1fae 00001fa6: JUMPI 00001fa7: JUMPDEST 00001fa8: POP 00001fa9: POP 00001faa: PUSH2 0x1d2d 00001fad: JUMP 00001fae: JUMPDEST 00001faf: SWAP2 00001fb0: PUSH2 0x0781 00001fb3: PUSH2 0x1fbf 00001fb6: PUSH2 0x1fe7 00001fb9: SWAP5 00001fba: DUP4 00001fbb: PUSH2 0x2811 00001fbe: JUMP 00001fbf: JUMPDEST 00001fc0: DUP1 00001fc1: SWAP4 00001fc2: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00001fe3: PUSH2 0x40f2 00001fe6: JUMP 00001fe7: JUMPDEST 00001fe8: PUSH0 00001fe9: DUP1 00001fea: PUSH2 0x1fa7 00001fed: JUMP 00001fee: JUMPDEST 00001fef: PUSH2 0x40e5 00001ff2: JUMP 00001ff3: JUMPDEST 00001ff4: CALLVALUE 00001ff5: PUSH2 0x03f1 00001ff8: JUMPI 00001ff9: PUSH1 0x20 00001ffb: PUSH1 0x03 00001ffd: NOT 00001ffe: CALLDATASIZE 00001fff: ADD 00002000: SLT 00002001: PUSH2 0x03f1 00002004: JUMPI 00002005: PUSH1 0x04 00002007: CALLDATALOAD 00002008: PUSH32 0x000000000000000000000000f783818e62d9793f119a3a9656cbdab93ff3e993 00002029: DUP1 0000202a: CALLER 0000202b: XOR 0000202c: PUSH2 0x04f9 0000202f: JUMPI 00002030: PUSH2 0x2037 00002033: PUSH2 0x2bf8 00002036: JUMP 00002037: JUMPDEST 00002038: PUSH2 0x203f 0000203b: PUSH2 0x2edb 0000203e: JUMP 0000203f: JUMPDEST 00002040: SWAP1 00002041: PUSH4 0x95c09839 00002046: PUSH0 00002047: MSTORE 00002048: PUSH1 0x20 0000204a: MSTORE 0000204b: PUSH1 0x20 0000204d: PUSH0 0000204e: PUSH1 0x24 00002050: PUSH1 0x1c 00002052: PUSH32 0x000000000000000000000000437e0551892c2c9b06d3ffd248fe60572e08cd1a 00002073: GAS 00002074: STATICCALL 00002075: PUSH1 0x20 00002077: RETURNDATASIZE 00002078: EQ 00002079: AND 0000207a: ISZERO 0000207b: PUSH2 0x0ebc 0000207e: JUMPI 0000207f: PUSH0 00002080: MLOAD 00002081: PUSH2 0x2119 00002084: JUMPI 00002085: PUSH2 0x208c 00002088: PUSH2 0x2fe6 0000208b: JUMP 0000208c: JUMPDEST 0000208d: DUP1 0000208e: MLOAD 0000208f: PUSH2 0x2114 00002092: JUMPI 00002093: PUSH2 0x20a3 00002096: PUSH2 0x209d 00002099: PUSH2 0x2603 0000209c: JUMP 0000209d: JUMPDEST 0000209e: DUP3 0000209f: PUSH2 0x3eda 000020a2: JUMP 000020a3: JUMPDEST 000020a4: DUP4 000020a5: GT 000020a6: PUSH2 0x210f 000020a9: JUMPI 000020aa: DUP3 000020ab: PUSH2 0x210a 000020ae: DUP3 000020af: PUSH2 0x20df 000020b2: PUSH2 0x081e 000020b5: SWAP5 000020b6: PUSH2 0x0e43 000020b9: SWAP8 000020ba: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 000020db: PUSH2 0x455a 000020de: JUMP 000020df: JUMPDEST 000020e0: PUSH2 0x098c 000020e3: DUP4 000020e4: CALLER 000020e5: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00002106: PUSH2 0x40f2 00002109: JUMP 0000210a: JUMPDEST 0000210b: PUSH2 0x45d8 0000210e: JUMP 0000210f: JUMPDEST 00002110: PUSH2 0x454d 00002113: JUMP 00002114: JUMPDEST 00002115: PUSH2 0x4540 00002118: JUMP 00002119: JUMPDEST 0000211a: PUSH2 0x4533 0000211d: JUMP 0000211e: JUMPDEST 0000211f: CALLVALUE 00002120: PUSH2 0x03f1 00002123: JUMPI 00002124: PUSH0 00002125: PUSH1 0x03 00002127: NOT 00002128: CALLDATASIZE 00002129: ADD 0000212a: SLT 0000212b: PUSH2 0x03f1 0000212e: JUMPI 0000212f: PUSH2 0x2136 00002132: PUSH2 0x2bf8 00002135: JUMP 00002136: JUMPDEST 00002137: PUSH2 0x213e 0000213a: PUSH2 0x2edb 0000213d: JUMP 0000213e: JUMPDEST 0000213f: PUSH2 0x2146 00002142: PUSH2 0x2fe6 00002145: JUMP 00002146: JUMPDEST 00002147: SWAP1 00002148: PUSH1 0x40 0000214a: DUP3 0000214b: ADD 0000214c: SWAP2 0000214d: PUSH16 0xffffffffffffffffffffffffffffffff 0000215e: SWAP1 0000215f: DUP2 00002160: DUP5 00002161: MLOAD 00002162: AND 00002163: ISZERO 00002164: PUSH2 0x21fa 00002167: JUMPI 00002168: PUSH2 0x2178 0000216b: PUSH2 0x2172 0000216e: PUSH2 0x2603 00002171: JUMP 00002172: JUMPDEST 00002173: DUP3 00002174: PUSH2 0x33d4 00002177: JUMP 00002178: JUMPDEST 00002179: DUP3 0000217a: DUP2 0000217b: AND 0000217c: SWAP2 0000217d: DUP3 0000217e: ISZERO 0000217f: PUSH2 0x21ed 00002182: JUMPI 00002183: DUP6 00002184: DUP5 00002185: PUSH2 0x219a 00002188: PUSH2 0x21e8 0000218b: SWAP5 0000218c: PUSH2 0x081e 0000218f: SWAP8 00002190: PUSH2 0x0e43 00002193: SWAP11 00002194: MLOAD 00002195: AND 00002196: PUSH2 0x2b68 00002199: JUMP 0000219a: JUMPDEST 0000219b: AND 0000219c: SWAP1 0000219d: MSTORE 0000219e: PUSH2 0x098c 000021a1: DUP4 000021a2: PUSH32 0x00000000000000000000000035a5d1bd68f3139971027b92c1ee9384a0708554 000021c3: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000021e4: PUSH2 0x40f2 000021e7: JUMP 000021e8: JUMPDEST 000021e9: PUSH2 0x4601 000021ec: JUMP 000021ed: JUMPDEST 000021ee: PUSH4 0xf784cfa4 000021f3: PUSH0 000021f4: MSTORE 000021f5: PUSH1 0x04 000021f7: PUSH1 0x1c 000021f9: REVERT 000021fa: JUMPDEST 000021fb: PUSH4 0x45c835cb 00002200: PUSH0 00002201: MSTORE 00002202: PUSH1 0x04 00002204: PUSH1 0x1c 00002206: REVERT 00002207: JUMPDEST 00002208: CALLVALUE 00002209: PUSH2 0x03f1 0000220c: JUMPI 0000220d: PUSH0 0000220e: PUSH1 0x03 00002210: NOT 00002211: CALLDATASIZE 00002212: ADD 00002213: SLT 00002214: PUSH2 0x03f1 00002217: JUMPI 00002218: PUSH1 0x20 0000221a: PUSH1 0x40 0000221c: MLOAD 0000221d: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 0000223e: DUP2 0000223f: MSTORE 00002240: RETURN 00002241: JUMPDEST 00002242: CALLVALUE 00002243: PUSH2 0x03f1 00002246: JUMPI 00002247: PUSH0 00002248: PUSH1 0x03 0000224a: NOT 0000224b: CALLDATASIZE 0000224c: ADD 0000224d: SLT 0000224e: PUSH2 0x03f1 00002251: JUMPI 00002252: PUSH1 0x20 00002254: PUSH1 0x03 00002256: SLOAD 00002257: PUSH2 0xffff 0000225a: PUSH1 0x40 0000225c: MLOAD 0000225d: SWAP2 0000225e: PUSH1 0x40 00002260: SHR 00002261: AND 00002262: DUP2 00002263: MSTORE 00002264: RETURN 00002265: JUMPDEST 00002266: CALLVALUE 00002267: PUSH2 0x03f1 0000226a: JUMPI 0000226b: PUSH1 0x20 0000226d: PUSH1 0x03 0000226f: NOT 00002270: CALLDATASIZE 00002271: ADD 00002272: SLT 00002273: PUSH2 0x03f1 00002276: JUMPI 00002277: PUSH1 0x60 00002279: PUSH2 0x229c 0000227c: PUSH1 0x04 0000227e: CALLDATALOAD 0000227f: PUSH2 0x2287 00002282: DUP2 00002283: PUSH2 0x0528 00002286: JUMP 00002287: JUMPDEST 00002288: PUSH2 0x228f 0000228b: PUSH2 0x274b 0000228e: JUMP 0000228f: JUMPDEST 00002290: PUSH2 0x2297 00002293: PUSH2 0x2c1f 00002296: JUMP 00002297: JUMPDEST 00002298: PUSH2 0x2b8a 0000229b: JUMP 0000229c: JUMPDEST 0000229d: PUSH16 0xffffffffffffffffffffffffffffffff 000022ae: PUSH1 0x40 000022b0: DUP1 000022b1: MLOAD 000022b2: SWAP3 000022b3: PUSH13 0xffffffffffffffffffffffffff 000022c1: DUP1 000022c2: DUP3 000022c3: MLOAD 000022c4: AND 000022c5: DUP6 000022c6: MSTORE 000022c7: PUSH1 0x20 000022c9: DUP3 000022ca: ADD 000022cb: MLOAD 000022cc: AND 000022cd: PUSH1 0x20 000022cf: DUP6 000022d0: ADD 000022d1: MSTORE 000022d2: ADD 000022d3: MLOAD 000022d4: AND 000022d5: PUSH1 0x40 000022d7: DUP3 000022d8: ADD 000022d9: MSTORE 000022da: RETURN 000022db: JUMPDEST 000022dc: CALLVALUE 000022dd: PUSH2 0x03f1 000022e0: JUMPI 000022e1: PUSH1 0x20 000022e3: PUSH1 0x03 000022e5: NOT 000022e6: CALLDATASIZE 000022e7: ADD 000022e8: SLT 000022e9: PUSH2 0x03f1 000022ec: JUMPI 000022ed: PUSH1 0x04 000022ef: CALLDATALOAD 000022f0: PUSH2 0x22f8 000022f3: DUP2 000022f4: PUSH2 0x03d3 000022f7: JUMP 000022f8: JUMPDEST 000022f9: PUSH2 0x2300 000022fc: PUSH2 0x2bf8 000022ff: JUMP 00002300: JUMPDEST 00002301: PUSH2 0x2308 00002304: PUSH2 0x2edb 00002307: JUMP 00002308: JUMPDEST 00002309: PUSH2 0x2311 0000230c: DUP3 0000230d: PUSH2 0x462a 00002310: JUMP 00002311: JUMPDEST 00002312: ISZERO 00002313: PUSH2 0x23cf 00002316: JUMPI 00002317: PUSH2 0x231e 0000231a: PUSH2 0x2fe6 0000231d: JUMP 0000231e: JUMPDEST 0000231f: SWAP2 00002320: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 00002341: PUSH1 0x01 00002343: DUP2 00002344: PUSH1 0x58 00002346: SHR 00002347: AND 00002348: PUSH2 0x235e 0000234b: JUMPI 0000234c: JUMPDEST 0000234d: POP 0000234e: DUP3 0000234f: PUSH2 0x098c 00002352: PUSH2 0x081e 00002355: SWAP3 00002356: PUSH2 0x0e43 00002359: SWAP6 0000235a: PUSH2 0x4699 0000235d: JUMP 0000235e: JUMPDEST 0000235f: PUSH0 00002360: DUP1 00002361: SWAP2 00002362: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc 00002383: CALLDATASIZE 00002384: ADD 00002385: SWAP1 00002386: DUP3 00002387: PUSH1 0x1c 00002389: PUSH1 0x40 0000238b: MLOAD 0000238c: SWAP4 0000238d: PUSH4 0x8b3ce9b3 00002392: DUP6 00002393: MSTORE 00002394: DUP8 00002395: PUSH1 0x20 00002397: DUP7 00002398: ADD 00002399: MSTORE 0000239a: PUSH2 0x01c0 0000239d: DUP11 0000239e: PUSH1 0x40 000023a0: DUP8 000023a1: ADD 000023a2: MCOPY 000023a3: PUSH2 0x0200 000023a6: SWAP1 000023a7: DUP2 000023a8: DUP1 000023a9: DUP8 000023aa: ADD 000023ab: MSTORE 000023ac: DUP1 000023ad: PUSH2 0x0220 000023b0: DUP8 000023b1: ADD 000023b2: MSTORE 000023b3: PUSH1 0x24 000023b5: PUSH2 0x0240 000023b8: DUP8 000023b9: ADD 000023ba: CALLDATACOPY 000023bb: CALLDATASIZE 000023bc: ADD 000023bd: SWAP4 000023be: ADD 000023bf: SWAP2 000023c0: PUSH1 0x60 000023c2: SHR 000023c3: GAS 000023c4: CALL 000023c5: ISZERO 000023c6: PUSH2 0x0ebc 000023c9: JUMPI 000023ca: PUSH0 000023cb: PUSH2 0x234c 000023ce: JUMP 000023cf: JUMPDEST 000023d0: PUSH4 0xa97ab167 000023d5: PUSH0 000023d6: MSTORE 000023d7: PUSH1 0x04 000023d9: PUSH1 0x1c 000023db: REVERT 000023dc: JUMPDEST 000023dd: CALLVALUE 000023de: PUSH2 0x03f1 000023e1: JUMPI 000023e2: PUSH1 0x40 000023e4: PUSH1 0x03 000023e6: NOT 000023e7: CALLDATASIZE 000023e8: ADD 000023e9: SLT 000023ea: PUSH2 0x03f1 000023ed: JUMPI 000023ee: PUSH1 0x20 000023f0: PUSH2 0x244e 000023f3: PUSH1 0x04 000023f5: CALLDATALOAD 000023f6: PUSH2 0x23fe 000023f9: DUP2 000023fa: PUSH2 0x03d3 000023fd: JUMP 000023fe: JUMPDEST 000023ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002414: PUSH1 0x24 00002416: CALLDATALOAD 00002417: SWAP2 00002418: PUSH2 0x2420 0000241b: DUP4 0000241c: PUSH2 0x03d3 0000241f: JUMP 00002420: JUMPDEST 00002421: AND 00002422: PUSH0 00002423: MSTORE 00002424: PUSH1 0x09 00002426: DUP4 00002427: MSTORE 00002428: PUSH1 0x40 0000242a: PUSH0 0000242b: KECCAK256 0000242c: SWAP1 0000242d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002442: AND 00002443: PUSH0 00002444: MSTORE 00002445: PUSH1 0x20 00002447: MSTORE 00002448: PUSH1 0x40 0000244a: PUSH0 0000244b: KECCAK256 0000244c: SWAP1 0000244d: JUMP 0000244e: JUMPDEST 0000244f: SLOAD 00002450: PUSH1 0x40 00002452: MLOAD 00002453: SWAP1 00002454: DUP2 00002455: MSTORE 00002456: RETURN 00002457: JUMPDEST 00002458: CALLVALUE 00002459: PUSH2 0x03f1 0000245c: JUMPI 0000245d: PUSH1 0x40 0000245f: PUSH1 0x03 00002461: NOT 00002462: CALLDATASIZE 00002463: ADD 00002464: SLT 00002465: PUSH2 0x03f1 00002468: JUMPI 00002469: PUSH2 0x2470 0000246c: PUSH2 0x1a15 0000246f: JUMP 00002470: JUMPDEST 00002471: PUSH2 0x2478 00002474: PUSH2 0x1a26 00002477: JUMP 00002478: JUMPDEST 00002479: SWAP1 0000247a: PUSH32 0x000000000000000000000000f783818e62d9793f119a3a9656cbdab93ff3e993 0000249b: CALLER 0000249c: XOR 0000249d: PUSH2 0x04f9 000024a0: JUMPI 000024a1: PUSH2 0x24a8 000024a4: PUSH2 0x2bf8 000024a7: JUMP 000024a8: JUMPDEST 000024a9: PUSH2 0x24b0 000024ac: PUSH2 0x2edb 000024af: JUMP 000024b0: JUMPDEST 000024b1: SWAP1 000024b2: PUSH2 0x24b9 000024b5: PUSH2 0x2fe6 000024b8: JUMP 000024b9: JUMPDEST 000024ba: DUP1 000024bb: MLOAD 000024bc: PUSH2 0x25ae 000024bf: JUMPI 000024c0: PUSH2 0x24ff 000024c3: DUP2 000024c4: PUSH2 0x0160 000024c7: DUP2 000024c8: ADD 000024c9: SWAP6 000024ca: PUSH2 0x24d8 000024cd: PUSH2 0x1ad7 000024d0: DUP9 000024d1: MLOAD 000024d2: PUSH2 0xffff 000024d5: AND 000024d6: SWAP1 000024d7: JUMP 000024d8: JUMPDEST 000024d9: SWAP5 000024da: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 000024fb: PUSH2 0x4760 000024fe: JUMP 000024ff: JUMPDEST 00002500: PUSH2 0xffff 00002503: SWAP6 00002504: SWAP2 00002505: DUP7 00002506: DUP2 00002507: AND 00002508: SWAP5 00002509: PUSH2 0x2710 0000250c: SWAP8 0000250d: DUP9 0000250e: DUP8 0000250f: GT 00002510: PUSH2 0x25a9 00002513: JUMPI 00002514: DUP4 00002515: AND 00002516: SWAP8 00002517: DUP9 00002518: GT 00002519: PUSH2 0x25a4 0000251c: JUMPI 0000251d: DUP8 0000251e: GT 0000251f: SWAP3 00002520: DUP4 00002521: ISZERO 00002522: PUSH2 0x2588 00002525: JUMPI 00002526: JUMPDEST 00002527: PUSH2 0x2543 0000252a: SWAP3 0000252b: PUSH2 0x2537 0000252e: SWAP2 0000252f: SWAP1 00002530: PUSH2 0xffff 00002533: AND 00002534: SWAP1 00002535: MSTORE 00002536: JUMP 00002537: JUMPDEST 00002538: PUSH2 0xffff 0000253b: AND 0000253c: PUSH2 0x0140 0000253f: DUP5 00002540: ADD 00002541: MSTORE 00002542: JUMP 00002543: JUMPDEST 00002544: PUSH2 0x2566 00002547: JUMPI 00002548: JUMPDEST 00002549: SWAP3 0000254a: PUSH2 0x2561 0000254d: PUSH2 0x081e 00002550: SWAP3 00002551: PUSH2 0x255c 00002554: PUSH2 0x0e43 00002557: SWAP7 00002558: PUSH2 0x323f 0000255b: JUMP 0000255c: JUMPDEST 0000255d: PUSH2 0x4831 00002560: JUMP 00002561: JUMPDEST 00002562: PUSH2 0x485a 00002565: JUMP 00002566: JUMPDEST 00002567: SWAP3 00002568: PUSH2 0x2570 0000256b: DUP5 0000256c: PUSH2 0x3e2d 0000256f: JUMP 00002570: JUMPDEST 00002571: PUSH2 0x2578 00002574: PUSH2 0x2603 00002577: JUMP 00002578: JUMPDEST 00002579: LT 0000257a: PUSH2 0x2583 0000257d: JUMPI 0000257e: SWAP3 0000257f: PUSH2 0x2548 00002582: JUMP 00002583: JUMPDEST 00002584: PUSH2 0x4824 00002587: JUMP 00002588: JUMPDEST 00002589: PUSH2 0x2591 0000258c: DUP6 0000258d: PUSH2 0x3e2d 00002590: JUMP 00002591: JUMPDEST 00002592: PUSH2 0x2599 00002595: PUSH2 0x2603 00002598: JUMP 00002599: JUMPDEST 0000259a: LT 0000259b: ISZERO 0000259c: PUSH2 0x2526 0000259f: JUMPI 000025a0: PUSH2 0x4817 000025a3: JUMP 000025a4: JUMPDEST 000025a5: PUSH2 0x480a 000025a8: JUMP 000025a9: JUMPDEST 000025aa: PUSH2 0x47fd 000025ad: JUMP 000025ae: JUMPDEST 000025af: PUSH2 0x4753 000025b2: JUMP 000025b3: JUMPDEST 000025b4: CALLVALUE 000025b5: PUSH2 0x03f1 000025b8: JUMPI 000025b9: PUSH0 000025ba: PUSH1 0x03 000025bc: NOT 000025bd: CALLDATASIZE 000025be: ADD 000025bf: SLT 000025c0: PUSH2 0x03f1 000025c3: JUMPI 000025c4: PUSH1 0x20 000025c6: PUSH1 0x40 000025c8: MLOAD 000025c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025de: PUSH32 0x000000000000000000000000437e0551892c2c9b06d3ffd248fe60572e08cd1a 000025ff: AND 00002600: DUP2 00002601: MSTORE 00002602: RETURN 00002603: JUMPDEST 00002604: PUSH4 0x70a08231 00002609: PUSH0 0000260a: MSTORE 0000260b: ADDRESS 0000260c: PUSH1 0x20 0000260e: MSTORE 0000260f: PUSH1 0x20 00002611: PUSH0 00002612: PUSH1 0x24 00002614: PUSH1 0x1c 00002616: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00002637: GAS 00002638: STATICCALL 00002639: PUSH1 0x1f 0000263b: RETURNDATASIZE 0000263c: GT 0000263d: AND 0000263e: ISZERO 0000263f: PUSH2 0x2647 00002642: JUMPI 00002643: PUSH0 00002644: MLOAD 00002645: SWAP1 00002646: JUMP 00002647: JUMPDEST 00002648: PUSH4 0x4963f6d5 0000264d: PUSH0 0000264e: MSTORE 0000264f: PUSH1 0x04 00002651: PUSH1 0x1c 00002653: REVERT 00002654: JUMPDEST 00002655: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002676: PUSH0 00002677: MSTORE 00002678: PUSH1 0x41 0000267a: PUSH1 0x04 0000267c: MSTORE 0000267d: PUSH1 0x24 0000267f: PUSH0 00002680: REVERT 00002681: JUMPDEST 00002682: PUSH1 0x40 00002684: MLOAD 00002685: SWAP1 00002686: PUSH1 0x40 00002688: DUP3 00002689: ADD 0000268a: DUP3 0000268b: DUP2 0000268c: LT 0000268d: PUSH8 0xffffffffffffffff 00002696: DUP3 00002697: GT 00002698: OR 00002699: PUSH2 0x26a1 0000269c: JUMPI 0000269d: PUSH1 0x40 0000269f: MSTORE 000026a0: JUMP 000026a1: JUMPDEST 000026a2: PUSH2 0x2654 000026a5: JUMP 000026a6: JUMPDEST 000026a7: PUSH1 0x40 000026a9: MLOAD 000026aa: SWAP1 000026ab: PUSH1 0x60 000026ad: DUP3 000026ae: ADD 000026af: DUP3 000026b0: DUP2 000026b1: LT 000026b2: PUSH8 0xffffffffffffffff 000026bb: DUP3 000026bc: GT 000026bd: OR 000026be: PUSH2 0x26a1 000026c1: JUMPI 000026c2: PUSH1 0x40 000026c4: MSTORE 000026c5: JUMP 000026c6: JUMPDEST 000026c7: PUSH1 0x40 000026c9: MLOAD 000026ca: SWAP1 000026cb: PUSH2 0x01c0 000026ce: DUP3 000026cf: ADD 000026d0: DUP3 000026d1: DUP2 000026d2: LT 000026d3: PUSH8 0xffffffffffffffff 000026dc: DUP3 000026dd: GT 000026de: OR 000026df: PUSH2 0x26a1 000026e2: JUMPI 000026e3: PUSH1 0x40 000026e5: MSTORE 000026e6: JUMP 000026e7: JUMPDEST 000026e8: PUSH1 0x40 000026ea: MLOAD 000026eb: SWAP1 000026ec: PUSH1 0x20 000026ee: DUP3 000026ef: ADD 000026f0: DUP3 000026f1: DUP2 000026f2: LT 000026f3: PUSH8 0xffffffffffffffff 000026fc: DUP3 000026fd: GT 000026fe: OR 000026ff: PUSH2 0x26a1 00002702: JUMPI 00002703: PUSH1 0x40 00002705: MSTORE 00002706: JUMP 00002707: JUMPDEST 00002708: SWAP1 00002709: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000272a: PUSH1 0x1f 0000272c: PUSH1 0x40 0000272e: MLOAD 0000272f: SWAP4 00002730: ADD 00002731: AND 00002732: DUP3 00002733: ADD 00002734: DUP3 00002735: DUP2 00002736: LT 00002737: PUSH8 0xffffffffffffffff 00002740: DUP3 00002741: GT 00002742: OR 00002743: PUSH2 0x26a1 00002746: JUMPI 00002747: PUSH1 0x40 00002749: MSTORE 0000274a: JUMP 0000274b: JUMPDEST 0000274c: PUSH2 0x2753 0000274f: PUSH2 0x26a6 00002752: JUMP 00002753: JUMPDEST 00002754: SWAP1 00002755: PUSH0 00002756: DUP3 00002757: MSTORE 00002758: PUSH0 00002759: PUSH1 0x20 0000275b: DUP4 0000275c: ADD 0000275d: MSTORE 0000275e: PUSH0 0000275f: PUSH1 0x40 00002761: DUP4 00002762: ADD 00002763: MSTORE 00002764: JUMP 00002765: JUMPDEST 00002766: SWAP1 00002767: PUSH16 0xffffffffffffffffffffffffffffffff 00002778: PUSH1 0x01 0000277a: PUSH2 0x2781 0000277d: PUSH2 0x26a6 00002780: JUMP 00002781: JUMPDEST 00002782: SWAP4 00002783: DUP1 00002784: SLOAD 00002785: PUSH13 0xffffffffffffffffffffffffff 00002793: SWAP1 00002794: DUP2 00002795: DUP2 00002796: AND 00002797: DUP8 00002798: MSTORE 00002799: PUSH1 0x68 0000279b: SHR 0000279c: AND 0000279d: PUSH1 0x20 0000279f: DUP7 000027a0: ADD 000027a1: MSTORE 000027a2: ADD 000027a3: SLOAD 000027a4: AND 000027a5: PUSH1 0x40 000027a7: DUP4 000027a8: ADD 000027a9: MSTORE 000027aa: JUMP 000027ab: JUMPDEST 000027ac: SWAP1 000027ad: PUSH16 0xffffffffffffffffffffffffffffffff 000027be: PUSH2 0x27c5 000027c1: PUSH2 0x2681 000027c4: JUMP 000027c5: JUMPDEST 000027c6: SWAP3 000027c7: SLOAD 000027c8: PUSH13 0xffffffffffffffffffffffffff 000027d6: DUP2 000027d7: AND 000027d8: DUP5 000027d9: MSTORE 000027da: PUSH1 0x68 000027dc: SHR 000027dd: AND 000027de: PUSH1 0x20 000027e0: DUP4 000027e1: ADD 000027e2: MSTORE 000027e3: JUMP 000027e4: JUMPDEST 000027e5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002806: PUSH0 00002807: MSTORE 00002808: PUSH1 0x11 0000280a: PUSH1 0x04 0000280c: MSTORE 0000280d: PUSH1 0x24 0000280f: PUSH0 00002810: REVERT 00002811: JUMPDEST 00002812: SWAP2 00002813: SWAP1 00002814: DUP3 00002815: SUB 00002816: SWAP2 00002817: DUP3 00002818: GT 00002819: PUSH2 0x0b38 0000281c: JUMPI 0000281d: JUMP 0000281e: JUMPDEST 0000281f: PUSH2 0x2826 00002822: PUSH2 0x26c6 00002825: JUMP 00002826: JUMPDEST 00002827: SWAP1 00002828: PUSH0 00002829: DUP3 0000282a: MSTORE 0000282b: PUSH0 0000282c: PUSH1 0x20 0000282e: DUP4 0000282f: ADD 00002830: MSTORE 00002831: PUSH0 00002832: PUSH1 0x40 00002834: DUP4 00002835: ADD 00002836: MSTORE 00002837: PUSH0 00002838: PUSH1 0x60 0000283a: DUP4 0000283b: ADD 0000283c: MSTORE 0000283d: PUSH0 0000283e: PUSH1 0x80 00002840: DUP4 00002841: ADD 00002842: MSTORE 00002843: PUSH0 00002844: PUSH1 0xa0 00002846: DUP4 00002847: ADD 00002848: MSTORE 00002849: PUSH0 0000284a: PUSH1 0xc0 0000284c: DUP4 0000284d: ADD 0000284e: MSTORE 0000284f: PUSH0 00002850: PUSH1 0xe0 00002852: DUP4 00002853: ADD 00002854: MSTORE 00002855: PUSH0 00002856: PUSH2 0x0100 00002859: DUP4 0000285a: ADD 0000285b: MSTORE 0000285c: PUSH0 0000285d: PUSH2 0x0120 00002860: DUP4 00002861: ADD 00002862: MSTORE 00002863: PUSH0 00002864: PUSH2 0x0140 00002867: DUP4 00002868: ADD 00002869: MSTORE 0000286a: PUSH0 0000286b: PUSH2 0x0160 0000286e: DUP4 0000286f: ADD 00002870: MSTORE 00002871: PUSH0 00002872: PUSH2 0x0180 00002875: DUP4 00002876: ADD 00002877: MSTORE 00002878: PUSH0 00002879: PUSH2 0x01a0 0000287c: DUP4 0000287d: ADD 0000287e: MSTORE 0000287f: JUMP 00002880: JUMPDEST 00002881: PUSH2 0x2888 00002884: PUSH2 0x26c6 00002887: JUMP 00002888: JUMPDEST 00002889: SWAP1 0000288a: PUSH2 0x28ce 0000288d: PUSH0 0000288e: SLOAD 0000288f: PUSH2 0x289d 00002892: PUSH1 0xff 00002894: DUP3 00002895: AND 00002896: DUP6 00002897: SWAP1 00002898: ISZERO 00002899: ISZERO 0000289a: SWAP1 0000289b: MSTORE 0000289c: JUMP 0000289d: JUMPDEST 0000289e: PUSH1 0x08 000028a0: SHR 000028a1: PUSH16 0xffffffffffffffffffffffffffffffff 000028b2: SWAP1 000028b3: DUP2 000028b4: AND 000028b5: PUSH1 0x20 000028b7: DUP6 000028b8: ADD 000028b9: MSTORE 000028ba: PUSH1 0x01 000028bc: SLOAD 000028bd: SWAP1 000028be: DUP2 000028bf: AND 000028c0: PUSH1 0x40 000028c2: DUP6 000028c3: ADD 000028c4: MSTORE 000028c5: PUSH1 0x80 000028c7: SHR 000028c8: PUSH1 0x60 000028ca: DUP5 000028cb: ADD 000028cc: MSTORE 000028cd: JUMP 000028ce: JUMPDEST 000028cf: PUSH1 0x02 000028d1: SLOAD 000028d2: PUSH13 0xffffffffffffffffffffffffff 000028e0: DUP1 000028e1: DUP3 000028e2: AND 000028e3: PUSH1 0x80 000028e5: DUP6 000028e6: ADD 000028e7: MSTORE 000028e8: PUSH1 0x68 000028ea: DUP3 000028eb: SWAP1 000028ec: SHR 000028ed: AND 000028ee: PUSH1 0xa0 000028f0: DUP5 000028f1: ADD 000028f2: MSTORE 000028f3: PUSH4 0xffffffff 000028f8: PUSH1 0xd0 000028fa: DUP3 000028fb: SWAP1 000028fc: SHR 000028fd: DUP2 000028fe: AND 000028ff: PUSH1 0xc0 00002901: DUP6 00002902: ADD 00002903: MSTORE 00002904: PUSH2 0x2985 00002907: SWAP2 00002908: PUSH2 0x291b 0000290b: SWAP1 0000290c: PUSH1 0xff 0000290e: SWAP1 0000290f: PUSH1 0xf0 00002911: SHR 00002912: AND 00002913: ISZERO 00002914: ISZERO 00002915: PUSH1 0xe0 00002917: DUP7 00002918: ADD 00002919: MSTORE 0000291a: JUMP 0000291b: JUMPDEST 0000291c: PUSH1 0x03 0000291e: SLOAD 0000291f: PUSH4 0xffffffff 00002924: DUP3 00002925: DUP3 00002926: AND 00002927: AND 00002928: PUSH2 0x0100 0000292b: DUP7 0000292c: ADD 0000292d: MSTORE 0000292e: PUSH2 0xffff 00002931: PUSH1 0x20 00002933: DUP3 00002934: SWAP1 00002935: SHR 00002936: DUP2 00002937: AND 00002938: PUSH2 0x0120 0000293b: DUP8 0000293c: ADD 0000293d: MSTORE 0000293e: PUSH1 0x30 00002940: DUP3 00002941: SWAP1 00002942: SHR 00002943: DUP2 00002944: AND 00002945: PUSH2 0x0140 00002948: DUP8 00002949: ADD 0000294a: MSTORE 0000294b: PUSH1 0x40 0000294d: DUP3 0000294e: SWAP1 0000294f: SHR 00002950: AND 00002951: PUSH2 0x0160 00002954: DUP7 00002955: ADD 00002956: MSTORE 00002957: PUSH1 0x50 00002959: DUP2 0000295a: SWAP1 0000295b: SHR 0000295c: PUSH14 0xffffffffffffffffffffffffffff 0000296b: AND 0000296c: PUSH2 0x0180 0000296f: DUP7 00002970: ADD 00002971: MSTORE 00002972: PUSH1 0xc0 00002974: SHR 00002975: AND 00002976: PUSH2 0x01a0 00002979: DUP5 0000297a: ADD 0000297b: SWAP1 0000297c: PUSH4 0xffffffff 00002981: AND 00002982: SWAP1 00002983: MSTORE 00002984: JUMP 00002985: JUMPDEST 00002986: JUMP 00002987: JUMPDEST 00002988: SWAP1 00002989: PUSH1 0x01 0000298b: PUSH16 0xffffffffffffffffffffffffffffffff 0000299c: DUP1 0000299d: SWAP4 0000299e: AND 0000299f: ADD 000029a0: SWAP2 000029a1: DUP3 000029a2: GT 000029a3: PUSH2 0x0b38 000029a6: JUMPI 000029a7: JUMP 000029a8: JUMPDEST 000029a9: SWAP2 000029aa: SWAP1 000029ab: SWAP2 000029ac: PUSH16 0xffffffffffffffffffffffffffffffff 000029bd: DUP1 000029be: DUP1 000029bf: SWAP5 000029c0: AND 000029c1: SWAP2 000029c2: AND 000029c3: ADD 000029c4: SWAP2 000029c5: DUP3 000029c6: GT 000029c7: PUSH2 0x0b38 000029ca: JUMPI 000029cb: JUMP 000029cc: JUMPDEST 000029cd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000029ee: DUP2 000029ef: EQ 000029f0: PUSH2 0x0b38 000029f3: JUMPI 000029f4: PUSH1 0x01 000029f6: ADD 000029f7: SWAP1 000029f8: JUMP 000029f9: JUMPDEST 000029fa: PUSH8 0xffffffffffffffff 00002a03: DUP2 00002a04: GT 00002a05: PUSH2 0x26a1 00002a08: JUMPI 00002a09: PUSH1 0x05 00002a0b: SHL 00002a0c: PUSH1 0x20 00002a0e: ADD 00002a0f: SWAP1 00002a10: JUMP 00002a11: JUMPDEST 00002a12: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002a33: PUSH0 00002a34: MSTORE 00002a35: PUSH1 0x32 00002a37: PUSH1 0x04 00002a39: MSTORE 00002a3a: PUSH1 0x24 00002a3c: PUSH0 00002a3d: REVERT 00002a3e: JUMPDEST 00002a3f: SWAP2 00002a40: SWAP1 00002a41: DUP2 00002a42: LT 00002a43: ISZERO 00002a44: PUSH2 0x2a4e 00002a47: JUMPI 00002a48: PUSH1 0x05 00002a4a: SHL 00002a4b: ADD 00002a4c: SWAP1 00002a4d: JUMP 00002a4e: JUMPDEST 00002a4f: PUSH2 0x2a11 00002a52: JUMP 00002a53: JUMPDEST 00002a54: DUP1 00002a55: MLOAD 00002a56: DUP3 00002a57: LT 00002a58: ISZERO 00002a59: PUSH2 0x2a4e 00002a5c: JUMPI 00002a5d: PUSH1 0x20 00002a5f: SWAP2 00002a60: PUSH1 0x05 00002a62: SHL 00002a63: ADD 00002a64: ADD 00002a65: SWAP1 00002a66: JUMP 00002a67: JUMPDEST 00002a68: SWAP2 00002a69: SWAP1 00002a6a: DUP3 00002a6b: ADD 00002a6c: DUP1 00002a6d: SWAP3 00002a6e: GT 00002a6f: PUSH2 0x0b38 00002a72: JUMPI 00002a73: JUMP 00002a74: JUMPDEST 00002a75: PUSH1 0x40 00002a77: PUSH1 0x01 00002a79: PUSH16 0xffffffffffffffffffffffffffffffff 00002a8a: SWAP3 00002a8b: PUSH2 0x2ad8 00002a8e: PUSH13 0xffffffffffffffffffffffffff 00002a9c: DUP7 00002a9d: MLOAD 00002a9e: AND 00002a9f: DUP3 00002aa0: SWAP1 00002aa1: PUSH13 0xffffffffffffffffffffffffff 00002aaf: AND 00002ab0: PUSH32 0xffffffffffffffffffffffffffffffffffffff00000000000000000000000000 00002ad1: DUP3 00002ad2: SLOAD 00002ad3: AND 00002ad4: OR 00002ad5: SWAP1 00002ad6: SSTORE 00002ad7: JUMP 00002ad8: JUMPDEST 00002ad9: PUSH1 0x20 00002adb: DUP6 00002adc: ADD 00002add: MLOAD 00002ade: PUSH32 0xffffffffffff00000000000000000000000000ffffffffffffffffffffffffff 00002aff: PUSH26 0xffffffffffffffffffffffffff00000000000000000000000000 00002b1a: DUP4 00002b1b: SLOAD 00002b1c: SWAP3 00002b1d: PUSH1 0x68 00002b1f: SHL 00002b20: AND 00002b21: SWAP2 00002b22: AND 00002b23: OR 00002b24: DUP2 00002b25: SSTORE 00002b26: ADD 00002b27: SWAP3 00002b28: ADD 00002b29: MLOAD 00002b2a: AND 00002b2b: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00002b4c: DUP3 00002b4d: SLOAD 00002b4e: AND 00002b4f: OR 00002b50: SWAP1 00002b51: SSTORE 00002b52: JUMP 00002b53: JUMPDEST 00002b54: SWAP1 00002b55: PUSH1 0x01 00002b57: PUSH4 0xffffffff 00002b5c: DUP1 00002b5d: SWAP4 00002b5e: AND 00002b5f: ADD 00002b60: SWAP2 00002b61: DUP3 00002b62: GT 00002b63: PUSH2 0x0b38 00002b66: JUMPI 00002b67: JUMP 00002b68: JUMPDEST 00002b69: PUSH16 0xffffffffffffffffffffffffffffffff 00002b7a: SWAP2 00002b7b: DUP3 00002b7c: AND 00002b7d: SWAP1 00002b7e: DUP3 00002b7f: AND 00002b80: SUB 00002b81: SWAP2 00002b82: SWAP1 00002b83: DUP3 00002b84: GT 00002b85: PUSH2 0x0b38 00002b88: JUMPI 00002b89: JUMP 00002b8a: JUMPDEST 00002b8b: SWAP2 00002b8c: SWAP1 00002b8d: PUSH2 0x2b94 00002b90: PUSH2 0x2c2b 00002b93: JUMP 00002b94: JUMPDEST 00002b95: SWAP2 00002b96: POP 00002b97: PUSH4 0xffffffff 00002b9c: DUP1 00002b9d: SWAP4 00002b9e: AND 00002b9f: SWAP3 00002ba0: DUP4 00002ba1: ISZERO 00002ba2: ISZERO 00002ba3: SWAP2 00002ba4: AND 00002ba5: DUP4 00002ba6: EQ 00002ba7: AND 00002ba8: PUSH2 0x2bf3 00002bab: JUMPI 00002bac: POP 00002bad: PUSH0 00002bae: MSTORE 00002baf: PUSH1 0x07 00002bb1: PUSH1 0x20 00002bb3: MSTORE 00002bb4: PUSH16 0xffffffffffffffffffffffffffffffff 00002bc5: PUSH1 0x01 00002bc7: PUSH1 0x40 00002bc9: PUSH0 00002bca: KECCAK256 00002bcb: DUP1 00002bcc: SLOAD 00002bcd: PUSH13 0xffffffffffffffffffffffffff 00002bdb: SWAP1 00002bdc: DUP2 00002bdd: DUP2 00002bde: AND 00002bdf: DUP8 00002be0: MSTORE 00002be1: PUSH1 0x68 00002be3: SHR 00002be4: AND 00002be5: PUSH1 0x20 00002be7: DUP7 00002be8: ADD 00002be9: MSTORE 00002bea: ADD 00002beb: SLOAD 00002bec: AND 00002bed: PUSH1 0x40 00002bef: DUP4 00002bf0: ADD 00002bf1: MSTORE 00002bf2: JUMP 00002bf3: JUMPDEST 00002bf4: SWAP3 00002bf5: POP 00002bf6: POP 00002bf7: JUMP 00002bf8: JUMPDEST 00002bf9: PUSH4 0x929eee14 00002bfe: DUP1 00002bff: TLOAD 00002c00: PUSH2 0x2c09 00002c03: JUMPI 00002c04: PUSH1 0x01 00002c06: SWAP1 00002c07: TSTORE 00002c08: JUMP 00002c09: JUMPDEST 00002c0a: PUSH4 0x7fa8a987 00002c0f: PUSH0 00002c10: MSTORE 00002c11: PUSH1 0x04 00002c13: PUSH1 0x1c 00002c15: REVERT 00002c16: JUMPDEST 00002c17: PUSH0 00002c18: PUSH4 0x929eee14 00002c1d: TSTORE 00002c1e: JUMP 00002c1f: JUMPDEST 00002c20: PUSH4 0x929eee14 00002c25: TLOAD 00002c26: PUSH2 0x2c09 00002c29: JUMPI 00002c2a: JUMP 00002c2b: JUMPDEST 00002c2c: PUSH2 0x2c33 00002c2f: PUSH2 0x281e 00002c32: JUMP 00002c33: JUMPDEST 00002c34: POP 00002c35: PUSH0 00002c36: PUSH2 0x2c3d 00002c39: PUSH2 0x274b 00002c3c: JUMP 00002c3d: JUMPDEST 00002c3e: PUSH2 0x2c45 00002c41: PUSH2 0x2880 00002c44: JUMP 00002c45: JUMPDEST 00002c46: SWAP3 00002c47: PUSH2 0x2c5f 00002c4a: DUP5 00002c4b: PUSH1 0xc0 00002c4d: PUSH4 0xffffffff 00002c52: SWAP2 00002c53: ADD 00002c54: MLOAD 00002c55: AND 00002c56: DUP1 00002c57: TIMESTAMP 00002c58: GT 00002c59: SWAP1 00002c5a: ISZERO 00002c5b: ISZERO 00002c5c: AND 00002c5d: SWAP1 00002c5e: JUMP 00002c5f: JUMPDEST 00002c60: PUSH2 0x2d73 00002c63: JUMPI 00002c64: JUMPDEST 00002c65: PUSH2 0x01a0 00002c68: DUP5 00002c69: ADD 00002c6a: MLOAD 00002c6b: PUSH4 0xffffffff 00002c70: SWAP1 00002c71: TIMESTAMP 00002c72: SWAP1 00002c73: DUP3 00002c74: AND 00002c75: SUB 00002c76: PUSH2 0x2d1f 00002c79: JUMPI 00002c7a: JUMPDEST 00002c7b: PUSH1 0xc0 00002c7d: DUP6 00002c7e: ADD 00002c7f: MLOAD 00002c80: PUSH4 0xffffffff 00002c85: AND 00002c86: SWAP1 00002c87: DUP2 00002c88: AND 00002c89: PUSH2 0x2c8f 00002c8c: JUMPI 00002c8d: POP 00002c8e: JUMP 00002c8f: JUMPDEST 00002c90: SWAP3 00002c91: POP 00002c92: SWAP1 00002c93: POP 00002c94: PUSH2 0x2cae 00002c97: PUSH2 0x07b9 00002c9a: DUP4 00002c9b: PUSH4 0xffffffff 00002ca0: AND 00002ca1: PUSH0 00002ca2: MSTORE 00002ca3: PUSH1 0x07 00002ca5: PUSH1 0x20 00002ca7: MSTORE 00002ca8: PUSH1 0x40 00002caa: PUSH0 00002cab: KECCAK256 00002cac: SWAP1 00002cad: JUMP 00002cae: JUMPDEST 00002caf: SWAP1 00002cb0: PUSH2 0x2cc9 00002cb3: PUSH1 0x20 00002cb5: DUP4 00002cb6: ADD 00002cb7: MLOAD 00002cb8: PUSH13 0xffffffffffffffffffffffffff 00002cc6: AND 00002cc7: SWAP1 00002cc8: JUMP 00002cc9: JUMPDEST 00002cca: PUSH13 0xffffffffffffffffffffffffff 00002cd8: PUSH2 0x2cf1 00002cdb: PUSH2 0x1e72 00002cde: DUP6 00002cdf: MLOAD 00002ce0: PUSH13 0xffffffffffffffffffffffffff 00002cee: AND 00002cef: SWAP1 00002cf0: JUMP 00002cf1: JUMPDEST 00002cf2: SWAP2 00002cf3: AND 00002cf4: LT 00002cf5: PUSH2 0x2cfa 00002cf8: JUMPI 00002cf9: JUMP 00002cfa: JUMPDEST 00002cfb: PUSH2 0x2d0c 00002cfe: PUSH2 0x2d05 00002d01: PUSH2 0x2603 00002d04: JUMP 00002d05: JUMPDEST 00002d06: DUP6 00002d07: DUP5 00002d08: PUSH2 0x49e2 00002d0b: JUMP 00002d0c: JUMPDEST 00002d0d: DUP1 00002d0e: PUSH2 0x2d14 00002d11: JUMPI 00002d12: POP 00002d13: JUMP 00002d14: JUMPDEST 00002d15: PUSH2 0x2985 00002d18: SWAP1 00002d19: DUP6 00002d1a: DUP5 00002d1b: PUSH2 0x4a6b 00002d1e: JUMP 00002d1f: JUMPDEST 00002d20: PUSH2 0x2d6b 00002d23: TIMESTAMP 00002d24: PUSH32 0x000000000000000000000000000000000000000000000000000000000002a300 00002d45: PUSH32 0x00000000000000000000000000000000000000000000000000000000000001f4 00002d66: DUP9 00002d67: PUSH2 0x4883 00002d6a: JUMP 00002d6b: JUMPDEST 00002d6c: POP 00002d6d: POP 00002d6e: POP 00002d6f: PUSH2 0x2c7a 00002d72: JUMP 00002d73: JUMPDEST 00002d74: SWAP2 00002d75: POP 00002d76: POP 00002d77: PUSH1 0xc0 00002d79: DUP3 00002d7a: ADD 00002d7b: PUSH2 0x2d88 00002d7e: DUP2 00002d7f: MLOAD 00002d80: PUSH4 0xffffffff 00002d85: AND 00002d86: SWAP1 00002d87: JUMP 00002d88: JUMPDEST 00002d89: SWAP2 00002d8a: PUSH2 0x2da7 00002d8d: PUSH2 0x2d9e 00002d90: PUSH2 0x01a0 00002d93: DUP7 00002d94: ADD 00002d95: MLOAD 00002d96: PUSH4 0xffffffff 00002d9b: AND 00002d9c: SWAP1 00002d9d: JUMP 00002d9e: JUMPDEST 00002d9f: PUSH4 0xffffffff 00002da4: AND 00002da5: SWAP1 00002da6: JUMP 00002da7: JUMPDEST 00002da8: PUSH4 0xffffffff 00002dad: DUP5 00002dae: AND 00002daf: SWAP1 00002db0: DUP2 00002db1: SUB 00002db2: PUSH2 0x2e04 00002db5: JUMPI 00002db6: JUMPDEST 00002db7: POP 00002db8: PUSH0 00002db9: PUSH2 0x2dd3 00002dbc: PUSH2 0x07b9 00002dbf: DUP6 00002dc0: PUSH4 0xffffffff 00002dc5: AND 00002dc6: PUSH0 00002dc7: MSTORE 00002dc8: PUSH1 0x07 00002dca: PUSH1 0x20 00002dcc: MSTORE 00002dcd: PUSH1 0x40 00002dcf: PUSH0 00002dd0: KECCAK256 00002dd1: SWAP1 00002dd2: JUMP 00002dd3: JUMPDEST 00002dd4: SWAP3 00002dd5: PUSH2 0x2de6 00002dd8: PUSH2 0x2ddf 00002ddb: PUSH2 0x2603 00002dde: JUMP 00002ddf: JUMPDEST 00002de0: DUP8 00002de1: DUP7 00002de2: PUSH2 0x49e2 00002de5: JUMP 00002de6: JUMPDEST 00002de7: DUP1 00002de8: PUSH2 0x2df3 00002deb: JUMPI 00002dec: JUMPDEST 00002ded: POP 00002dee: MSTORE 00002def: PUSH2 0x2c64 00002df2: JUMP 00002df3: JUMPDEST 00002df4: PUSH2 0x2dfe 00002df7: SWAP1 00002df8: DUP8 00002df9: DUP7 00002dfa: PUSH2 0x4a6b 00002dfd: JUMP 00002dfe: JUMPDEST 00002dff: PUSH0 00002e00: PUSH2 0x2dec 00002e03: JUMP 00002e04: JUMPDEST 00002e05: PUSH2 0x2e50 00002e08: SWAP1 00002e09: PUSH32 0x000000000000000000000000000000000000000000000000000000000002a300 00002e2a: PUSH32 0x00000000000000000000000000000000000000000000000000000000000001f4 00002e4b: DUP8 00002e4c: PUSH2 0x4883 00002e4f: JUMP 00002e50: JUMPDEST 00002e51: POP 00002e52: POP 00002e53: PUSH2 0x2db6 00002e56: JUMP 00002e57: JUMPDEST 00002e58: SWAP1 00002e59: PUSH12 0x033b2e3c9fd0803ce8000000 00002e66: SWAP2 00002e67: DUP2 00002e68: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002e89: DIV 00002e8a: DUP2 00002e8b: GT 00002e8c: DUP3 00002e8d: MUL 00002e8e: ISZERO 00002e8f: DUP4 00002e90: MUL 00002e91: ISZERO 00002e92: PUSH2 0x2e9a 00002e95: JUMPI 00002e96: MUL 00002e97: DIV 00002e98: SWAP1 00002e99: JUMP 00002e9a: JUMPDEST 00002e9b: PUSH4 0xad251c27 00002ea0: PUSH0 00002ea1: MSTORE 00002ea2: PUSH1 0x04 00002ea4: PUSH1 0x1c 00002ea6: REVERT 00002ea7: JUMPDEST 00002ea8: DUP2 00002ea9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002eca: DIV 00002ecb: DUP2 00002ecc: GT 00002ecd: DUP3 00002ece: MUL 00002ecf: ISZERO 00002ed0: DUP4 00002ed1: MUL 00002ed2: ISZERO 00002ed3: PUSH2 0x2e9a 00002ed6: JUMPI 00002ed7: MUL 00002ed8: DIV 00002ed9: SWAP1 00002eda: JUMP 00002edb: JUMPDEST 00002edc: PUSH1 0x40 00002ede: MLOAD 00002edf: PUSH1 0x80 00002ee1: DUP2 00002ee2: ADD 00002ee3: SWAP1 00002ee4: DUP1 00002ee5: DUP3 00002ee6: LT 00002ee7: PUSH8 0xffffffffffffffff 00002ef0: DUP4 00002ef1: GT 00002ef2: OR 00002ef3: PUSH2 0x26a1 00002ef6: JUMPI 00002ef7: PUSH2 0x055b 00002efa: SWAP2 00002efb: PUSH1 0x40 00002efd: MSTORE 00002efe: PUSH1 0x60 00002f00: DUP2 00002f01: MSTORE 00002f02: PUSH1 0x60 00002f04: PUSH1 0x20 00002f06: DUP3 00002f07: ADD 00002f08: MSTORE 00002f09: PUSH0 00002f0a: PUSH1 0x40 00002f0c: DUP3 00002f0d: ADD 00002f0e: MSTORE 00002f0f: PUSH0 00002f10: PUSH1 0x60 00002f12: DUP3 00002f13: ADD 00002f14: MSTORE 00002f15: PUSH0 00002f16: CALLDATALOAD 00002f17: PUSH1 0xe0 00002f19: SHR 00002f1a: SWAP1 00002f1b: PUSH2 0x4c2f 00002f1e: JUMP 00002f1f: JUMPDEST 00002f20: SWAP1 00002f21: SWAP2 00002f22: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f37: DUP3 00002f38: AND 00002f39: PUSH0 00002f3a: MSTORE 00002f3b: PUSH1 0x09 00002f3d: PUSH1 0x20 00002f3f: MSTORE 00002f40: DUP1 00002f41: PUSH2 0x2f6b 00002f44: DUP5 00002f45: PUSH1 0x40 00002f47: PUSH0 00002f48: KECCAK256 00002f49: SWAP1 00002f4a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f5f: AND 00002f60: PUSH0 00002f61: MSTORE 00002f62: PUSH1 0x20 00002f64: MSTORE 00002f65: PUSH1 0x40 00002f67: PUSH0 00002f68: KECCAK256 00002f69: SWAP1 00002f6a: JUMP 00002f6b: JUMPDEST 00002f6c: SSTORE 00002f6d: PUSH0 00002f6e: MSTORE 00002f6f: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00002f90: PUSH1 0x20 00002f92: PUSH0 00002f93: LOG3 00002f94: JUMP 00002f95: JUMPDEST 00002f96: PUSH2 0x2fb2 00002f99: PUSH13 0xffffffffffffffffffffffffff 00002fa7: PUSH1 0x80 00002fa9: DUP4 00002faa: ADD 00002fab: MLOAD 00002fac: AND 00002fad: DUP3 00002fae: PUSH2 0x3e0d 00002fb1: JUMP 00002fb2: JUMPDEST 00002fb3: SWAP1 00002fb4: PUSH16 0xffffffffffffffffffffffffffffffff 00002fc5: SWAP1 00002fc6: DUP2 00002fc7: PUSH1 0x60 00002fc9: DUP3 00002fca: ADD 00002fcb: MLOAD 00002fcc: AND 00002fcd: DUP4 00002fce: ADD 00002fcf: DUP1 00002fd0: SWAP4 00002fd1: GT 00002fd2: PUSH2 0x0b38 00002fd5: JUMPI 00002fd6: PUSH1 0x40 00002fd8: ADD 00002fd9: MLOAD 00002fda: AND 00002fdb: DUP2 00002fdc: ADD 00002fdd: DUP1 00002fde: SWAP2 00002fdf: GT 00002fe0: PUSH2 0x0b38 00002fe3: JUMPI 00002fe4: SWAP1 00002fe5: JUMP 00002fe6: JUMPDEST 00002fe7: PUSH2 0x2fee 00002fea: PUSH2 0x281e 00002fed: JUMP 00002fee: JUMPDEST 00002fef: POP 00002ff0: PUSH2 0x2ff7 00002ff3: PUSH2 0x2880 00002ff6: JUMP 00002ff7: JUMPDEST 00002ff8: SWAP1 00002ff9: PUSH2 0x3011 00002ffc: DUP3 00002ffd: PUSH1 0xc0 00002fff: PUSH4 0xffffffff 00003004: SWAP2 00003005: ADD 00003006: MLOAD 00003007: AND 00003008: DUP1 00003009: TIMESTAMP 0000300a: GT 0000300b: SWAP1 0000300c: ISZERO 0000300d: ISZERO 0000300e: AND 0000300f: SWAP1 00003010: JUMP 00003011: JUMPDEST 00003012: PUSH2 0x317f 00003015: JUMPI 00003016: JUMPDEST 00003017: PUSH2 0x01a0 0000301a: DUP3 0000301b: ADD 0000301c: MLOAD 0000301d: PUSH4 0xffffffff 00003022: SWAP1 00003023: DUP2 00003024: AND 00003025: TIMESTAMP 00003026: DUP2 00003027: SWAP1 00003028: SUB 00003029: PUSH2 0x30eb 0000302c: JUMPI 0000302d: JUMPDEST 0000302e: POP 0000302f: PUSH1 0xc0 00003031: DUP4 00003032: ADD 00003033: MLOAD 00003034: PUSH4 0xffffffff 00003039: AND 0000303a: SWAP1 0000303b: DUP2 0000303c: AND 0000303d: PUSH2 0x3043 00003040: JUMPI 00003041: POP 00003042: JUMP 00003043: JUMPDEST 00003044: PUSH2 0x305e 00003047: PUSH2 0x07b9 0000304a: DUP3 0000304b: PUSH4 0xffffffff 00003050: AND 00003051: PUSH0 00003052: MSTORE 00003053: PUSH1 0x07 00003055: PUSH1 0x20 00003057: MSTORE 00003058: PUSH1 0x40 0000305a: PUSH0 0000305b: KECCAK256 0000305c: SWAP1 0000305d: JUMP 0000305e: JUMPDEST 0000305f: PUSH1 0x20 00003061: DUP2 00003062: ADD 00003063: MLOAD 00003064: PUSH13 0xffffffffffffffffffffffffff 00003072: AND 00003073: PUSH13 0xffffffffffffffffffffffffff 00003081: PUSH2 0x309a 00003084: PUSH2 0x1e72 00003087: DUP5 00003088: MLOAD 00003089: PUSH13 0xffffffffffffffffffffffffff 00003097: AND 00003098: SWAP1 00003099: JUMP 0000309a: JUMPDEST 0000309b: SWAP2 0000309c: AND 0000309d: LT 0000309e: PUSH2 0x30a6 000030a1: JUMPI 000030a2: JUMPDEST 000030a3: POP 000030a4: POP 000030a5: JUMP 000030a6: JUMPDEST 000030a7: PUSH2 0x30b8 000030aa: PUSH2 0x30b1 000030ad: PUSH2 0x2603 000030b0: JUMP 000030b1: JUMPDEST 000030b2: DUP6 000030b3: DUP4 000030b4: PUSH2 0x49e2 000030b7: JUMP 000030b8: JUMPDEST 000030b9: DUP1 000030ba: PUSH2 0x30c2 000030bd: JUMPI 000030be: POP 000030bf: POP 000030c0: POP 000030c1: JUMP 000030c2: JUMPDEST 000030c3: DUP3 000030c4: PUSH2 0x30d5 000030c7: PUSH2 0x1f8f 000030ca: SWAP3 000030cb: PUSH2 0x2985 000030ce: SWAP6 000030cf: DUP9 000030d0: DUP7 000030d1: PUSH2 0x4264 000030d4: JUMP 000030d5: JUMPDEST 000030d6: POP 000030d7: POP 000030d8: PUSH4 0xffffffff 000030dd: AND 000030de: PUSH0 000030df: MSTORE 000030e0: PUSH1 0x07 000030e2: PUSH1 0x20 000030e4: MSTORE 000030e5: PUSH1 0x40 000030e7: PUSH0 000030e8: KECCAK256 000030e9: SWAP1 000030ea: JUMP 000030eb: JUMPDEST 000030ec: PUSH2 0x3179 000030ef: SWAP1 000030f0: PUSH2 0x313b 000030f3: TIMESTAMP 000030f4: PUSH32 0x000000000000000000000000000000000000000000000000000000000002a300 00003115: PUSH32 0x00000000000000000000000000000000000000000000000000000000000001f4 00003136: DUP9 00003137: PUSH2 0x4883 0000313a: JUMP 0000313b: JUMPDEST 0000313c: SWAP3 0000313d: PUSH2 0x3171 00003140: PUSH2 0x315e 00003143: PUSH2 0x0180 00003146: DUP11 00003147: SWAP6 00003148: SWAP5 00003149: SWAP6 0000314a: ADD 0000314b: MLOAD 0000314c: PUSH14 0xffffffffffffffffffffffffffff 0000315b: AND 0000315c: SWAP1 0000315d: JUMP 0000315e: JUMPDEST 0000315f: PUSH14 0xffffffffffffffffffffffffffff 0000316e: AND 0000316f: SWAP1 00003170: JUMP 00003171: JUMPDEST 00003172: SWAP1 00003173: TIMESTAMP 00003174: SWAP1 00003175: PUSH2 0x4d81 00003178: JUMP 00003179: JUMPDEST 0000317a: PUSH0 0000317b: PUSH2 0x302d 0000317e: JUMP 0000317f: JUMPDEST 00003180: PUSH2 0x3193 00003183: PUSH2 0x2d9e 00003186: PUSH1 0xc0 00003188: DUP5 00003189: ADD 0000318a: MLOAD 0000318b: PUSH4 0xffffffff 00003190: AND 00003191: SWAP1 00003192: JUMP 00003193: JUMPDEST 00003194: PUSH2 0x31a8 00003197: PUSH2 0x2d9e 0000319a: PUSH2 0x01a0 0000319d: DUP6 0000319e: ADD 0000319f: MLOAD 000031a0: PUSH4 0xffffffff 000031a5: AND 000031a6: SWAP1 000031a7: JUMP 000031a8: JUMPDEST 000031a9: DUP1 000031aa: DUP3 000031ab: SUB 000031ac: PUSH2 0x31c0 000031af: JUMPI 000031b0: JUMPDEST 000031b1: POP 000031b2: POP 000031b3: PUSH2 0x31bb 000031b6: DUP3 000031b7: PUSH2 0x4dcb 000031ba: JUMP 000031bb: JUMPDEST 000031bc: PUSH2 0x3016 000031bf: JUMP 000031c0: JUMPDEST 000031c1: DUP2 000031c2: PUSH2 0x3210 000031c5: PUSH2 0x3238 000031c8: SWAP4 000031c9: PUSH32 0x000000000000000000000000000000000000000000000000000000000002a300 000031ea: PUSH32 0x00000000000000000000000000000000000000000000000000000000000001f4 0000320b: DUP9 0000320c: PUSH2 0x4883 0000320f: JUMP 00003210: JUMPDEST 00003211: SWAP4 00003212: SWAP1 00003213: SWAP3 00003214: PUSH2 0x3232 00003217: PUSH2 0x315e 0000321a: PUSH2 0x0180 0000321d: DUP11 0000321e: ADD 0000321f: MLOAD 00003220: PUSH14 0xffffffffffffffffffffffffffff 0000322f: AND 00003230: SWAP1 00003231: JUMP 00003232: JUMPDEST 00003233: SWAP2 00003234: PUSH2 0x4d81 00003237: JUMP 00003238: JUMPDEST 00003239: PUSH0 0000323a: DUP1 0000323b: PUSH2 0x31b0 0000323e: JUMP 0000323f: JUMPDEST 00003240: PUSH2 0x2985 00003243: SWAP1 00003244: PUSH2 0x324c 00003247: DUP2 00003248: PUSH2 0x3e2d 0000324b: JUMP 0000324c: JUMPDEST 0000324d: PUSH2 0x3254 00003250: PUSH2 0x2603 00003253: JUMP 00003254: JUMPDEST 00003255: LT 00003256: PUSH1 0xe0 00003258: DUP3 00003259: ADD 0000325a: DUP2 0000325b: SWAP1 0000325c: MSTORE 0000325d: SWAP1 0000325e: DUP1 0000325f: MLOAD 00003260: ISZERO 00003261: ISZERO 00003262: PUSH2 0x3281 00003265: PUSH2 0x0718 00003268: PUSH1 0x20 0000326a: DUP5 0000326b: ADD 0000326c: MLOAD 0000326d: PUSH16 0xffffffffffffffffffffffffffffffff 0000327e: AND 0000327f: SWAP1 00003280: JUMP 00003281: JUMPDEST 00003282: PUSH1 0x08 00003284: SHL 00003285: OR 00003286: PUSH0 00003287: SSTORE 00003288: PUSH2 0x32a7 0000328b: PUSH2 0x0718 0000328e: PUSH1 0x40 00003290: DUP4 00003291: ADD 00003292: MLOAD 00003293: PUSH16 0xffffffffffffffffffffffffffffffff 000032a4: AND 000032a5: SWAP1 000032a6: JUMP 000032a7: JUMPDEST 000032a8: PUSH2 0x32c7 000032ab: PUSH2 0x0718 000032ae: PUSH1 0x60 000032b0: DUP5 000032b1: ADD 000032b2: MLOAD 000032b3: PUSH16 0xffffffffffffffffffffffffffffffff 000032c4: AND 000032c5: SWAP1 000032c6: JUMP 000032c7: JUMPDEST 000032c8: PUSH1 0x80 000032ca: SHL 000032cb: OR 000032cc: PUSH1 0x01 000032ce: SSTORE 000032cf: PUSH2 0x32eb 000032d2: PUSH2 0x1e72 000032d5: PUSH1 0x80 000032d7: DUP4 000032d8: ADD 000032d9: MLOAD 000032da: PUSH13 0xffffffffffffffffffffffffff 000032e8: AND 000032e9: SWAP1 000032ea: JUMP 000032eb: JUMPDEST 000032ec: PUSH2 0x3308 000032ef: PUSH2 0x1e72 000032f2: PUSH1 0xa0 000032f4: DUP5 000032f5: ADD 000032f6: MLOAD 000032f7: PUSH13 0xffffffffffffffffffffffffff 00003305: AND 00003306: SWAP1 00003307: JUMP 00003308: JUMPDEST 00003309: PUSH2 0x331c 0000330c: PUSH2 0x2d9e 0000330f: PUSH1 0xc0 00003311: DUP6 00003312: ADD 00003313: MLOAD 00003314: PUSH4 0xffffffff 00003319: AND 0000331a: SWAP1 0000331b: JUMP 0000331c: JUMPDEST 0000331d: SWAP1 0000331e: PUSH1 0x68 00003320: SHL 00003321: SWAP1 00003322: PUSH1 0xd0 00003324: SHL 00003325: DUP5 00003326: PUSH1 0xf0 00003328: SHL 00003329: OR 0000332a: OR 0000332b: OR 0000332c: PUSH1 0x02 0000332e: SSTORE 0000332f: PUSH2 0x3343 00003332: PUSH2 0x2d9e 00003335: PUSH2 0x0100 00003338: DUP4 00003339: ADD 0000333a: MLOAD 0000333b: PUSH4 0xffffffff 00003340: AND 00003341: SWAP1 00003342: JUMP 00003343: JUMPDEST 00003344: PUSH2 0x3356 00003347: PUSH2 0x1ad7 0000334a: PUSH2 0x0120 0000334d: DUP5 0000334e: ADD 0000334f: MLOAD 00003350: PUSH2 0xffff 00003353: AND 00003354: SWAP1 00003355: JUMP 00003356: JUMPDEST 00003357: PUSH2 0x3369 0000335a: PUSH2 0x1ad7 0000335d: PUSH2 0x0140 00003360: DUP6 00003361: ADD 00003362: MLOAD 00003363: PUSH2 0xffff 00003366: AND 00003367: SWAP1 00003368: JUMP 00003369: JUMPDEST 0000336a: SWAP1 0000336b: PUSH2 0x337d 0000336e: PUSH2 0x1ad7 00003371: PUSH2 0x0160 00003374: DUP7 00003375: ADD 00003376: MLOAD 00003377: PUSH2 0xffff 0000337a: AND 0000337b: SWAP1 0000337c: JUMP 0000337d: JUMPDEST 0000337e: SWAP2 0000337f: PUSH2 0x33b2 00003382: PUSH2 0x2d9e 00003385: PUSH2 0x01a0 00003388: PUSH2 0x33a6 0000338b: PUSH2 0x315e 0000338e: PUSH2 0x0180 00003391: DUP11 00003392: ADD 00003393: MLOAD 00003394: PUSH14 0xffffffffffffffffffffffffffff 000033a3: AND 000033a4: SWAP1 000033a5: JUMP 000033a6: JUMPDEST 000033a7: SWAP8 000033a8: ADD 000033a9: MLOAD 000033aa: PUSH4 0xffffffff 000033af: AND 000033b0: SWAP1 000033b1: JUMP 000033b2: JUMPDEST 000033b3: SWAP2 000033b4: PUSH1 0x20 000033b6: SHL 000033b7: SWAP1 000033b8: PUSH1 0x30 000033ba: SHL 000033bb: OR 000033bc: SWAP2 000033bd: PUSH1 0x40 000033bf: SHL 000033c0: SWAP1 000033c1: DUP5 000033c2: PUSH1 0x50 000033c4: SHL 000033c5: SWAP1 000033c6: PUSH1 0xc0 000033c8: SHL 000033c9: OR 000033ca: OR 000033cb: OR 000033cc: OR 000033cd: PUSH1 0x03 000033cf: SSTORE 000033d0: PUSH2 0x4f47 000033d3: JUMP 000033d4: JUMPDEST 000033d5: SWAP1 000033d6: PUSH16 0xffffffffffffffffffffffffffffffff 000033e7: SWAP2 000033e8: DUP3 000033e9: PUSH1 0x60 000033eb: DUP3 000033ec: ADD 000033ed: MLOAD 000033ee: AND 000033ef: DUP3 000033f0: SUB 000033f1: SWAP2 000033f2: DUP3 000033f3: GT 000033f4: PUSH2 0x0b38 000033f7: JUMPI 000033f8: PUSH1 0x40 000033fa: DUP4 000033fb: SWAP2 000033fc: ADD 000033fd: MLOAD 000033fe: AND 000033ff: SWAP1 00003400: DUP2 00003401: DUP1 00003402: DUP3 00003403: SUB 00003404: SWAP2 00003405: LT 00003406: MUL 00003407: ADD 00003408: AND 00003409: SWAP1 0000340a: JUMP 0000340b: JUMPDEST 0000340c: PUSH13 0xffffffffffffffffffffffffff 0000341a: SWAP2 0000341b: DUP3 0000341c: AND 0000341d: SWAP1 0000341e: DUP3 0000341f: AND 00003420: SUB 00003421: SWAP2 00003422: SWAP1 00003423: DUP3 00003424: GT 00003425: PUSH2 0x0b38 00003428: JUMPI 00003429: JUMP 0000342a: JUMPDEST 0000342b: PUSH13 0xffffffffffffffffffffffffff 00003439: PUSH2 0x2985 0000343c: SWAP3 0000343d: MLOAD 0000343e: AND 0000343f: PUSH13 0xffffffffffffffffffffffffff 0000344d: AND 0000344e: PUSH32 0xffffffffffffffffffffffffffffffffffffff00000000000000000000000000 0000346f: DUP3 00003470: SLOAD 00003471: AND 00003472: OR 00003473: SWAP1 00003474: SSTORE 00003475: JUMP 00003476: JUMPDEST 00003477: SWAP2 00003478: SWAP1 00003479: SWAP2 0000347a: PUSH13 0xffffffffffffffffffffffffff 00003488: DUP1 00003489: DUP1 0000348a: SWAP5 0000348b: AND 0000348c: SWAP2 0000348d: AND 0000348e: ADD 0000348f: SWAP2 00003490: DUP3 00003491: GT 00003492: PUSH2 0x0b38 00003495: JUMPI 00003496: JUMP 00003497: JUMPDEST 00003498: SWAP2 00003499: SWAP1 0000349a: PUSH2 0x34a1 0000349d: PUSH2 0x2fe6 000034a0: JUMP 000034a1: JUMPDEST 000034a2: SWAP3 000034a3: PUSH2 0x34c1 000034a6: PUSH14 0xffffffffffffffffffffffffffff 000034b5: PUSH2 0x0180 000034b8: DUP7 000034b9: ADD 000034ba: MLOAD 000034bb: AND 000034bc: DUP5 000034bd: PUSH2 0x51cf 000034c0: JUMP 000034c1: JUMPDEST 000034c2: PUSH13 0xffffffffffffffffffffffffff 000034d0: PUSH2 0x34dd 000034d3: DUP2 000034d4: DUP4 000034d5: AND 000034d6: DUP1 000034d7: SWAP4 000034d8: EQ 000034d9: PUSH2 0x51b6 000034dc: JUMP 000034dd: JUMPDEST 000034de: DUP2 000034df: ISZERO 000034e0: PUSH2 0x1a08 000034e3: JUMPI 000034e4: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 00003505: PUSH1 0x01 00003507: DUP2 00003508: PUSH1 0x5c 0000350a: SHR 0000350b: AND 0000350c: PUSH2 0x359f 0000350f: JUMPI 00003510: JUMPDEST 00003511: POP 00003512: SWAP5 00003513: PUSH2 0x098c 00003516: PUSH2 0x359a 00003519: SWAP3 0000351a: PUSH2 0x3563 0000351d: PUSH2 0x2985 00003520: SWAP9 00003521: PUSH2 0x3529 00003524: DUP8 00003525: PUSH2 0x3b42 00003528: JUMP 00003529: JUMPDEST 0000352a: SWAP1 0000352b: DUP1 0000352c: PUSH2 0x3538 0000352f: DUP6 00003530: DUP3 00003531: DUP6 00003532: MLOAD 00003533: AND 00003534: PUSH2 0x340b 00003537: JUMP 00003538: JUMPDEST 00003539: AND 0000353a: DUP3 0000353b: MSTORE 0000353c: PUSH2 0x195b 0000353f: DUP9 00003540: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003555: AND 00003556: PUSH0 00003557: MSTORE 00003558: PUSH1 0x04 0000355a: PUSH1 0x20 0000355c: MSTORE 0000355d: PUSH1 0x40 0000355f: PUSH0 00003560: KECCAK256 00003561: SWAP1 00003562: JUMP 00003563: JUMPDEST 00003564: PUSH2 0x3572 00003567: PUSH2 0x19c2 0000356a: PUSH2 0x19a5 0000356d: DUP9 0000356e: PUSH2 0x3b42 00003571: JUMP 00003572: JUMPDEST 00003573: PUSH2 0x19fd 00003576: DUP7 00003577: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000358c: AND 0000358d: PUSH0 0000358e: MSTORE 0000358f: PUSH1 0x04 00003591: PUSH1 0x20 00003593: MSTORE 00003594: PUSH1 0x40 00003596: PUSH0 00003597: KECCAK256 00003598: SWAP1 00003599: JUMP 0000359a: JUMPDEST 0000359b: PUSH2 0x5011 0000359e: JUMP 0000359f: JUMPDEST 000035a0: PUSH0 000035a1: DUP1 000035a2: SWAP2 000035a3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c 000035c4: SWAP9 000035c5: SWAP4 000035c6: SWAP9 000035c7: CALLDATASIZE 000035c8: ADD 000035c9: SWAP1 000035ca: PUSH1 0x40 000035cc: MLOAD 000035cd: SWAP2 000035ce: PUSH4 0xa018f90e 000035d3: DUP4 000035d4: MSTORE 000035d5: CALLER 000035d6: PUSH1 0x20 000035d8: DUP5 000035d9: ADD 000035da: MSTORE 000035db: DUP8 000035dc: PUSH1 0x40 000035de: DUP5 000035df: ADD 000035e0: MSTORE 000035e1: DUP9 000035e2: PUSH1 0x60 000035e4: DUP5 000035e5: ADD 000035e6: MSTORE 000035e7: DUP7 000035e8: PUSH1 0x80 000035ea: DUP5 000035eb: ADD 000035ec: MSTORE 000035ed: PUSH2 0x01c0 000035f0: DUP7 000035f1: PUSH1 0xa0 000035f3: DUP6 000035f4: ADD 000035f5: MCOPY 000035f6: PUSH2 0x0260 000035f9: DUP1 000035fa: DUP5 000035fb: ADD 000035fc: MSTORE 000035fd: DUP1 000035fe: PUSH2 0x0280 00003601: DUP5 00003602: ADD 00003603: MSTORE 00003604: PUSH1 0x64 00003606: PUSH2 0x02a0 00003609: DUP5 0000360a: ADD 0000360b: CALLDATACOPY 0000360c: DUP3 0000360d: PUSH1 0x1c 0000360f: PUSH2 0x0220 00003612: CALLDATASIZE 00003613: ADD 00003614: SWAP4 00003615: ADD 00003616: SWAP2 00003617: PUSH1 0x60 00003619: SHR 0000361a: GAS 0000361b: CALL 0000361c: ISZERO 0000361d: PUSH2 0x0ebc 00003620: JUMPI 00003621: SWAP5 00003622: PUSH0 00003623: PUSH2 0x3510 00003626: JUMP 00003627: JUMPDEST 00003628: SWAP1 00003629: SWAP3 0000362a: SWAP2 0000362b: SWAP3 0000362c: PUSH2 0x3646 0000362f: PUSH2 0x07b9 00003632: DUP6 00003633: PUSH4 0xffffffff 00003638: AND 00003639: PUSH0 0000363a: MSTORE 0000363b: PUSH1 0x07 0000363d: PUSH1 0x20 0000363f: MSTORE 00003640: PUSH1 0x40 00003642: PUSH0 00003643: KECCAK256 00003644: SWAP1 00003645: JUMP 00003646: JUMPDEST 00003647: SWAP4 00003648: PUSH2 0x365b 0000364b: PUSH2 0x2d9e 0000364e: PUSH1 0xc0 00003650: DUP6 00003651: ADD 00003652: MLOAD 00003653: PUSH4 0xffffffff 00003658: AND 00003659: SWAP1 0000365a: JUMP 0000365b: JUMPDEST 0000365c: SWAP1 0000365d: PUSH4 0xffffffff 00003662: DUP2 00003663: AND 00003664: SWAP2 00003665: DUP3 00003666: EQ 00003667: PUSH2 0x3855 0000366a: JUMPI 0000366b: PUSH2 0x3686 0000366e: DUP4 0000366f: PUSH2 0x06cf 00003672: DUP4 00003673: PUSH4 0xffffffff 00003678: AND 00003679: PUSH0 0000367a: MSTORE 0000367b: PUSH1 0x08 0000367d: PUSH1 0x20 0000367f: MSTORE 00003680: PUSH1 0x40 00003682: PUSH0 00003683: KECCAK256 00003684: SWAP1 00003685: JUMP 00003686: JUMPDEST 00003687: SWAP5 00003688: PUSH2 0x36d9 0000368b: PUSH2 0x3704 0000368e: PUSH2 0x36aa 00003691: PUSH1 0x40 00003693: DUP11 00003694: ADD 00003695: MLOAD 00003696: PUSH16 0xffffffffffffffffffffffffffffffff 000036a7: AND 000036a8: SWAP1 000036a9: JUMP 000036aa: JUMPDEST 000036ab: SWAP9 000036ac: PUSH2 0x36f9 000036af: PUSH2 0x0718 000036b2: DUP11 000036b3: SLOAD 000036b4: DUP1 000036b5: SWAP13 000036b6: PUSH13 0xffffffffffffffffffffffffff 000036c4: SWAP7 000036c5: DUP8 000036c6: SWAP6 000036c7: MLOAD 000036c8: PUSH13 0xffffffffffffffffffffffffff 000036d6: AND 000036d7: SWAP1 000036d8: JUMP 000036d9: JUMPDEST 000036da: PUSH16 0xffffffffffffffffffffffffffffffff 000036eb: SWAP8 000036ec: DUP9 000036ed: SWAP7 000036ee: DUP8 000036ef: SWAP3 000036f0: AND 000036f1: SWAP4 000036f2: AND 000036f3: SWAP2 000036f4: AND 000036f5: PUSH2 0x2ea7 000036f8: JUMP 000036f9: JUMPDEST 000036fa: SWAP10 000036fb: PUSH1 0x68 000036fd: SHR 000036fe: AND 000036ff: DUP10 00003700: PUSH2 0x2b68 00003703: JUMP 00003704: JUMPDEST 00003705: SWAP1 00003706: DUP2 00003707: AND 00003708: SWAP8 00003709: DUP9 0000370a: ISZERO 0000370b: PUSH2 0x3850 0000370e: JUMPI 0000370f: PUSH1 0x60 00003711: DUP8 00003712: PUSH2 0x379b 00003715: PUSH2 0x37bc 00003718: SWAP4 00003719: PUSH2 0x055b 0000371c: SWAP12 0000371d: PUSH2 0x374d 00003720: PUSH2 0x37d2 00003723: SWAP9 00003724: DUP16 00003725: SWAP14 00003726: DUP15 00003727: DUP15 00003728: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 00003749: PUSH2 0x5049 0000374c: JUMP 0000374d: JUMPDEST 0000374e: SWAP1 0000374f: PUSH32 0xffffff00000000000000000000000000000000ffffffffffffffffffffffffff 00003770: PUSH29 0xffffffffffffffffffffffffffffffff00000000000000000000000000 0000378e: DUP4 0000378f: SLOAD 00003790: SWAP3 00003791: PUSH1 0x68 00003793: SHL 00003794: AND 00003795: SWAP2 00003796: AND 00003797: OR 00003798: SWAP1 00003799: SSTORE 0000379a: JUMP 0000379b: JUMPDEST 0000379c: ADD 0000379d: SWAP2 0000379e: PUSH2 0x37b7 000037a1: DUP4 000037a2: MLOAD 000037a3: PUSH16 0xffffffffffffffffffffffffffffffff 000037b4: AND 000037b5: SWAP1 000037b6: JUMP 000037b7: JUMPDEST 000037b8: PUSH2 0x2b68 000037bb: JUMP 000037bc: JUMPDEST 000037bd: PUSH16 0xffffffffffffffffffffffffffffffff 000037ce: AND 000037cf: SWAP1 000037d0: MSTORE 000037d1: JUMP 000037d2: JUMPDEST 000037d3: DUP4 000037d4: PUSH2 0x37dc 000037d7: DUP5 000037d8: PUSH2 0x462a 000037db: JUMP 000037dc: JUMPDEST 000037dd: ISZERO 000037de: PUSH2 0x3824 000037e1: JUMPI 000037e2: PUSH2 0x381f 000037e5: SWAP2 000037e6: PUSH2 0x37ee 000037e9: DUP6 000037ea: PUSH2 0x50b9 000037ed: JUMP 000037ee: JUMPDEST 000037ef: PUSH2 0x3819 000037f2: DUP4 000037f3: DUP3 000037f4: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00003815: PUSH2 0x40f2 00003818: JUMP 00003819: JUMPDEST 0000381a: DUP6 0000381b: PUSH2 0x5151 0000381e: JUMP 0000381f: JUMPDEST 00003820: PUSH2 0x518b 00003823: JUMP 00003824: JUMPDEST 00003825: PUSH2 0x381f 00003828: SWAP2 00003829: POP 0000382a: DUP4 0000382b: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0000384c: PUSH2 0x40f2 0000384f: JUMP 00003850: JUMPDEST 00003851: PUSH2 0x503c 00003854: JUMP 00003855: JUMPDEST 00003856: PUSH2 0x07d3 00003859: JUMP 0000385a: JUMPDEST 0000385b: PUSH1 0x1c 0000385d: PUSH0 0000385e: PUSH1 0x64 00003860: SWAP3 00003861: DUP2 00003862: SWAP5 00003863: PUSH1 0x20 00003865: SWAP7 00003866: PUSH1 0x40 00003868: MLOAD 00003869: SWAP9 0000386a: PUSH1 0x60 0000386c: MSTORE 0000386d: PUSH1 0x40 0000386f: MSTORE 00003870: PUSH1 0x60 00003872: SHL 00003873: PUSH1 0x2c 00003875: MSTORE 00003876: PUSH16 0x23b872dd000000000000000000000000 00003887: PUSH1 0x0c 00003889: MSTORE 0000388a: GAS 0000388b: CALL 0000388c: RETURNDATASIZE 0000388d: ISZERO 0000388e: PUSH1 0x01 00003890: PUSH0 00003891: MLOAD 00003892: EQ 00003893: OR 00003894: AND 00003895: ISZERO 00003896: PUSH2 0x38a2 00003899: JUMPI 0000389a: PUSH0 0000389b: PUSH1 0x60 0000389d: MSTORE 0000389e: PUSH1 0x40 000038a0: MSTORE 000038a1: JUMP 000038a2: JUMPDEST 000038a3: PUSH4 0x7939f424 000038a8: PUSH0 000038a9: MSTORE 000038aa: PUSH1 0x04 000038ac: PUSH1 0x1c 000038ae: REVERT 000038af: JUMPDEST 000038b0: SWAP1 000038b1: PUSH0 000038b2: MSTORE 000038b3: PUSH32 0xe8b606ac1e5df7657db58d297ca8f41c090fc94c5fd2d6958f043e41736e9fa6 000038d4: PUSH1 0x20 000038d6: PUSH0 000038d7: LOG2 000038d8: JUMP 000038d9: JUMPDEST 000038da: PUSH1 0x01 000038dc: DUP2 000038dd: PUSH1 0x5a 000038df: SHR 000038e0: AND 000038e1: PUSH2 0x38eb 000038e4: JUMPI 000038e5: JUMPDEST 000038e6: POP 000038e7: POP 000038e8: POP 000038e9: POP 000038ea: JUMP 000038eb: JUMPDEST 000038ec: PUSH0 000038ed: PUSH1 0x1c 000038ef: PUSH2 0x01c0 000038f2: DUP3 000038f3: SWAP7 000038f4: SWAP6 000038f5: DUP7 000038f6: DUP5 000038f7: SWAP8 000038f8: CALLDATASIZE 000038f9: SUB 000038fa: SWAP3 000038fb: DUP4 000038fc: SWAP3 000038fd: PUSH1 0x40 000038ff: MLOAD 00003900: SWAP9 00003901: PUSH4 0x83d9e1eb 00003906: DUP11 00003907: MSTORE 00003908: PUSH1 0x20 0000390a: DUP11 0000390b: ADD 0000390c: MSTORE 0000390d: PUSH1 0x40 0000390f: DUP10 00003910: ADD 00003911: MCOPY 00003912: PUSH2 0x0200 00003915: DUP1 00003916: DUP9 00003917: ADD 00003918: MSTORE 00003919: DUP2 0000391a: PUSH2 0x0220 0000391d: DUP9 0000391e: ADD 0000391f: MSTORE 00003920: PUSH2 0x0240 00003923: DUP8 00003924: ADD 00003925: CALLDATACOPY 00003926: PUSH2 0x0224 00003929: ADD 0000392a: SWAP4 0000392b: ADD 0000392c: SWAP2 0000392d: PUSH1 0x60 0000392f: SHR 00003930: GAS 00003931: CALL 00003932: ISZERO 00003933: PUSH2 0x0ebc 00003936: JUMPI 00003937: PUSH0 00003938: DUP1 00003939: DUP1 0000393a: DUP1 0000393b: PUSH2 0x38e5 0000393e: JUMP 0000393f: JUMPDEST 00003940: SWAP1 00003941: PUSH2 0x2985 00003944: PUSH16 0xffffffffffffffffffffffffffffffff 00003955: DUP4 00003956: AND 00003957: DUP1 00003958: SWAP4 00003959: EQ 0000395a: PUSH2 0x51b6 0000395d: JUMP 0000395e: JUMPDEST 0000395f: PUSH0 00003960: MSTORE 00003961: PUSH32 0xf2672935fc79f5237559e2e2999dbe743bf65430894ac2b37666890e7c69e1af 00003982: PUSH1 0x20 00003984: PUSH0 00003985: LOG1 00003986: JUMP 00003987: JUMPDEST 00003988: PUSH2 0x11c7 0000398b: PUSH16 0xffffffffffffffffffffffffffffffff 0000399c: PUSH1 0x20 0000399e: DUP4 0000399f: ADD 000039a0: MLOAD 000039a1: AND 000039a2: SWAP2 000039a3: PUSH13 0xffffffffffffffffffffffffff 000039b1: PUSH1 0x80 000039b3: DUP3 000039b4: ADD 000039b5: MLOAD 000039b6: AND 000039b7: SWAP1 000039b8: PUSH2 0x3e0d 000039bb: JUMP 000039bc: JUMPDEST 000039bd: PUSH2 0x055b 000039c0: PUSH1 0x05 000039c2: SLOAD 000039c3: PUSH16 0xffffffffffffffffffffffffffffffff 000039d4: DUP2 000039d5: AND 000039d6: SWAP1 000039d7: PUSH1 0x80 000039d9: SHR 000039da: PUSH2 0x2b68 000039dd: JUMP 000039de: JUMPDEST 000039df: SWAP2 000039e0: SWAP1 000039e1: PUSH1 0x05 000039e3: SLOAD 000039e4: SWAP1 000039e5: PUSH16 0xffffffffffffffffffffffffffffffff 000039f6: SWAP2 000039f7: DUP3 000039f8: DUP2 000039f9: AND 000039fa: SWAP1 000039fb: PUSH1 0x80 000039fd: SHR 000039fe: DUP2 000039ff: EQ 00003a00: PUSH2 0x3afc 00003a03: JUMPI 00003a04: PUSH0 00003a05: MSTORE 00003a06: PUSH1 0x06 00003a08: PUSH1 0x20 00003a0a: MSTORE 00003a0b: DUP2 00003a0c: PUSH2 0x3a3d 00003a0f: PUSH4 0xffffffff 00003a14: PUSH1 0x40 00003a16: PUSH0 00003a17: KECCAK256 00003a18: SLOAD 00003a19: AND 00003a1a: SWAP3 00003a1b: DUP4 00003a1c: PUSH2 0x3a36 00003a1f: PUSH2 0x07b9 00003a22: DUP3 00003a23: PUSH4 0xffffffff 00003a28: AND 00003a29: PUSH0 00003a2a: MSTORE 00003a2b: PUSH1 0x07 00003a2d: PUSH1 0x20 00003a2f: MSTORE 00003a30: PUSH1 0x40 00003a32: PUSH0 00003a33: KECCAK256 00003a34: SWAP1 00003a35: JUMP 00003a36: JUMPDEST 00003a37: SWAP8 00003a38: DUP9 00003a39: PUSH2 0x4264 00003a3c: JUMP 00003a3d: JUMPDEST 00003a3e: SWAP1 00003a3f: POP 00003a40: AND 00003a41: SWAP4 00003a42: PUSH2 0x3a5d 00003a45: DUP2 00003a46: PUSH2 0x1f8f 00003a49: DUP5 00003a4a: PUSH4 0xffffffff 00003a4f: AND 00003a50: PUSH0 00003a51: MSTORE 00003a52: PUSH1 0x07 00003a54: PUSH1 0x20 00003a56: MSTORE 00003a57: PUSH1 0x40 00003a59: PUSH0 00003a5a: KECCAK256 00003a5b: SWAP1 00003a5c: JUMP 00003a5d: JUMPDEST 00003a5e: PUSH13 0xffffffffffffffffffffffffff 00003a6c: PUSH1 0x20 00003a6e: DUP2 00003a6f: DUP4 00003a70: MLOAD 00003a71: AND 00003a72: SWAP3 00003a73: ADD 00003a74: MLOAD 00003a75: AND 00003a76: EQ 00003a77: PUSH2 0x3a7e 00003a7a: JUMPI 00003a7b: POP 00003a7c: POP 00003a7d: JUMP 00003a7e: JUMPDEST 00003a7f: PUSH1 0x05 00003a81: SLOAD 00003a82: SWAP2 00003a83: DUP1 00003a84: DUP4 00003a85: AND 00003a86: SWAP3 00003a87: PUSH1 0x80 00003a89: SHR 00003a8a: DUP4 00003a8b: EQ 00003a8c: PUSH2 0x3afc 00003a8f: JUMPI 00003a90: PUSH2 0x3acd 00003a93: DUP4 00003a94: PUSH2 0x2985 00003a97: SWAP5 00003a98: PUSH0 00003a99: MSTORE 00003a9a: PUSH1 0x06 00003a9c: PUSH1 0x20 00003a9e: MSTORE 00003a9f: PUSH1 0x40 00003aa1: PUSH0 00003aa2: KECCAK256 00003aa3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 00003ac4: DUP2 00003ac5: SLOAD 00003ac6: AND 00003ac7: SWAP1 00003ac8: SSTORE 00003ac9: PUSH2 0x2987 00003acc: JUMP 00003acd: JUMPDEST 00003ace: AND 00003acf: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00003af0: PUSH1 0x05 00003af2: SLOAD 00003af3: AND 00003af4: OR 00003af5: PUSH1 0x05 00003af7: SSTORE 00003af8: PUSH2 0x44b1 00003afb: JUMP 00003afc: JUMPDEST 00003afd: PUSH1 0x04 00003aff: PUSH1 0x40 00003b01: MLOAD 00003b02: PUSH32 0x8727480100000000000000000000000000000000000000000000000000000000 00003b23: DUP2 00003b24: MSTORE 00003b25: REVERT 00003b26: JUMPDEST 00003b27: SWAP1 00003b28: PUSH2 0x2985 00003b2b: PUSH13 0xffffffffffffffffffffffffff 00003b39: DUP4 00003b3a: AND 00003b3b: DUP1 00003b3c: SWAP4 00003b3d: EQ 00003b3e: PUSH2 0x51b6 00003b41: JUMP 00003b42: JUMPDEST 00003b43: SWAP1 00003b44: PUSH0 00003b45: PUSH2 0x3b4c 00003b48: PUSH2 0x26e7 00003b4b: JUMP 00003b4c: JUMPDEST 00003b4d: MSTORE 00003b4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b63: DUP3 00003b64: AND 00003b65: PUSH0 00003b66: MSTORE 00003b67: PUSH1 0x04 00003b69: PUSH1 0x20 00003b6b: MSTORE 00003b6c: PUSH2 0x3b93 00003b6f: PUSH1 0x40 00003b71: PUSH0 00003b72: KECCAK256 00003b73: PUSH13 0xffffffffffffffffffffffffff 00003b81: PUSH2 0x3b88 00003b84: PUSH2 0x26e7 00003b87: JUMP 00003b88: JUMPDEST 00003b89: SWAP2 00003b8a: SLOAD 00003b8b: AND 00003b8c: DUP2 00003b8d: MSTORE 00003b8e: SWAP3 00003b8f: PUSH2 0x462a 00003b92: JUMP 00003b93: JUMPDEST 00003b94: PUSH2 0x3b99 00003b97: JUMPI 00003b98: JUMP 00003b99: JUMPDEST 00003b9a: PUSH4 0x6bc671fd 00003b9f: PUSH0 00003ba0: MSTORE 00003ba1: PUSH1 0x04 00003ba3: PUSH1 0x1c 00003ba5: REVERT 00003ba6: JUMPDEST 00003ba7: SWAP4 00003ba8: SWAP3 00003ba9: SWAP6 00003baa: SWAP5 00003bab: SWAP2 00003bac: SWAP1 00003bad: SWAP6 00003bae: PUSH1 0xc0 00003bb0: DUP6 00003bb1: ADD 00003bb2: SWAP1 00003bb3: PUSH2 0x3bc0 00003bb6: DUP3 00003bb7: MLOAD 00003bb8: PUSH4 0xffffffff 00003bbd: AND 00003bbe: SWAP1 00003bbf: JUMP 00003bc0: JUMPDEST 00003bc1: SWAP8 00003bc2: PUSH4 0xffffffff 00003bc7: SWAP3 00003bc8: DUP4 00003bc9: DUP11 00003bca: AND 00003bcb: ISZERO 00003bcc: PUSH2 0x3d8e 00003bcf: JUMPI 00003bd0: JUMPDEST 00003bd1: POP 00003bd2: SWAP4 00003bd3: DUP9 00003bd4: SWAP4 00003bd5: PUSH2 0x3d4b 00003bd8: SWAP4 00003bd9: PUSH2 0x3d44 00003bdc: DUP5 00003bdd: PUSH2 0x3c49 00003be0: PUSH2 0x098c 00003be3: SWAP10 00003be4: PUSH2 0x3c26 00003be7: PUSH13 0xffffffffffffffffffffffffff 00003bf5: PUSH2 0x2985 00003bf8: SWAP15 00003bf9: SWAP14 00003bfa: SWAP10 00003bfb: AND 00003bfc: SWAP8 00003bfd: DUP14 00003bfe: DUP10 00003bff: DUP14 00003c00: DUP11 00003c01: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 00003c22: PUSH2 0x51f5 00003c25: JUMP 00003c26: JUMPDEST 00003c27: PUSH2 0x3572 00003c2a: PUSH2 0x19c2 00003c2d: DUP5 00003c2e: PUSH2 0x3c44 00003c31: DUP5 00003c32: MLOAD 00003c33: PUSH13 0xffffffffffffffffffffffffff 00003c41: AND 00003c42: SWAP1 00003c43: JUMP 00003c44: JUMPDEST 00003c45: PUSH2 0x340b 00003c48: JUMP 00003c49: JUMPDEST 00003c4a: PUSH2 0x3c54 00003c4d: DUP7 00003c4e: ADDRESS 00003c4f: DUP7 00003c50: PUSH2 0x5011 00003c53: JUMP 00003c54: JUMPDEST 00003c55: PUSH2 0x3ce1 00003c58: PUSH2 0x3c8e 00003c5b: DUP6 00003c5c: PUSH2 0x06cf 00003c5f: PUSH2 0x3c79 00003c62: PUSH2 0x07b9 00003c65: DUP14 00003c66: PUSH4 0xffffffff 00003c6b: AND 00003c6c: PUSH0 00003c6d: MSTORE 00003c6e: PUSH1 0x07 00003c70: PUSH1 0x20 00003c72: MSTORE 00003c73: PUSH1 0x40 00003c75: PUSH0 00003c76: KECCAK256 00003c77: SWAP1 00003c78: JUMP 00003c79: JUMPDEST 00003c7a: SWAP12 00003c7b: PUSH4 0xffffffff 00003c80: AND 00003c81: PUSH0 00003c82: MSTORE 00003c83: PUSH1 0x08 00003c85: PUSH1 0x20 00003c87: MSTORE 00003c88: PUSH1 0x40 00003c8a: PUSH0 00003c8b: KECCAK256 00003c8c: SWAP1 00003c8d: JUMP 00003c8e: JUMPDEST 00003c8f: PUSH2 0x3ca9 00003c92: DUP4 00003c93: PUSH2 0x19bd 00003c96: DUP4 00003c97: SLOAD 00003c98: PUSH13 0xffffffffffffffffffffffffff 00003ca6: AND 00003ca7: SWAP1 00003ca8: JUMP 00003ca9: JUMPDEST 00003caa: PUSH13 0xffffffffffffffffffffffffff 00003cb8: AND 00003cb9: PUSH32 0xffffffffffffffffffffffffffffffffffffff00000000000000000000000000 00003cda: DUP3 00003cdb: SLOAD 00003cdc: AND 00003cdd: OR 00003cde: SWAP1 00003cdf: SSTORE 00003ce0: JUMP 00003ce1: JUMPDEST 00003ce2: PUSH2 0x3d12 00003ce5: PUSH2 0x3cff 00003ce8: DUP3 00003ce9: PUSH2 0x19bd 00003cec: DUP12 00003ced: MLOAD 00003cee: PUSH13 0xffffffffffffffffffffffffff 00003cfc: AND 00003cfd: SWAP1 00003cfe: JUMP 00003cff: JUMPDEST 00003d00: PUSH13 0xffffffffffffffffffffffffff 00003d0e: AND 00003d0f: DUP10 00003d10: MSTORE 00003d11: JUMP 00003d12: JUMPDEST 00003d13: PUSH2 0x3d31 00003d16: PUSH1 0xa0 00003d18: DUP12 00003d19: ADD 00003d1a: SWAP2 00003d1b: PUSH2 0x19bd 00003d1e: DUP4 00003d1f: MLOAD 00003d20: PUSH13 0xffffffffffffffffffffffffff 00003d2e: AND 00003d2f: SWAP1 00003d30: JUMP 00003d31: JUMPDEST 00003d32: PUSH13 0xffffffffffffffffffffffffff 00003d40: AND 00003d41: SWAP1 00003d42: MSTORE 00003d43: JUMP 00003d44: JUMPDEST 00003d45: DUP11 00003d46: AND 00003d47: PUSH2 0x526f 00003d4a: JUMP 00003d4b: JUMPDEST 00003d4c: PUSH2 0x3d5d 00003d4f: PUSH2 0x3d56 00003d52: PUSH2 0x2603 00003d55: JUMP 00003d56: JUMPDEST 00003d57: DUP5 00003d58: DUP4 00003d59: PUSH2 0x49e2 00003d5c: JUMP 00003d5d: JUMPDEST 00003d5e: DUP1 00003d5f: PUSH2 0x3d7c 00003d62: JUMPI 00003d63: JUMPDEST 00003d64: POP 00003d65: PUSH2 0x1f8f 00003d68: DUP7 00003d69: PUSH4 0xffffffff 00003d6e: AND 00003d6f: PUSH0 00003d70: MSTORE 00003d71: PUSH1 0x07 00003d73: PUSH1 0x20 00003d75: MSTORE 00003d76: PUSH1 0x40 00003d78: PUSH0 00003d79: KECCAK256 00003d7a: SWAP1 00003d7b: JUMP 00003d7c: JUMPDEST 00003d7d: PUSH2 0x3d88 00003d80: SWAP1 00003d81: DUP8 00003d82: DUP6 00003d83: DUP5 00003d84: PUSH2 0x4264 00003d87: JUMP 00003d88: JUMPDEST 00003d89: POP 00003d8a: PUSH2 0x3d63 00003d8d: JUMP 00003d8e: JUMPDEST 00003d8f: SWAP4 00003d90: PUSH2 0x3dfc 00003d93: SWAP10 00003d94: POP 00003d95: PUSH2 0x3d4b 00003d98: SWAP4 00003d99: PUSH2 0x3d44 00003d9c: DUP10 00003d9d: SWAP9 00003d9e: SWAP5 00003d9f: PUSH2 0x3c49 00003da2: PUSH2 0x098c 00003da5: SWAP10 00003da6: SWAP6 00003da7: PUSH2 0x3ded 00003daa: PUSH2 0x2d9e 00003dad: PUSH2 0x3de7 00003db0: PUSH2 0x2985 00003db3: SWAP16 00003db4: PUSH2 0x3dbd 00003db7: SWAP1 00003db8: MLOAD 00003db9: ISZERO 00003dba: ISZERO 00003dbb: SWAP1 00003dbc: JUMP 00003dbd: JUMPDEST 00003dbe: PUSH32 0x0000000000000000000000000000000000000000000000000000000000015180 00003ddf: SWAP1 00003de0: DUP2 00003de1: PUSH0 00003de2: SUB 00003de3: MUL 00003de4: ADD 00003de5: SWAP1 00003de6: JUMP 00003de7: JUMPDEST 00003de8: TIMESTAMP 00003de9: PUSH2 0x2a67 00003dec: JUMP 00003ded: JUMPDEST 00003dee: SWAP15 00003def: DUP16 00003df0: DUP1 00003df1: SWAP12 00003df2: PUSH2 0x17c4 00003df5: DUP9 00003df6: DUP4 00003df7: AND 00003df8: PUSH2 0x44d7 00003dfb: JUMP 00003dfc: JUMPDEST 00003dfd: SWAP6 00003dfe: SWAP10 00003dff: POP 00003e00: POP 00003e01: SWAP5 00003e02: SWAP9 00003e03: SWAP10 00003e04: POP 00003e05: POP 00003e06: SWAP4 00003e07: POP 00003e08: SWAP4 00003e09: PUSH2 0x3bd0 00003e0c: JUMP 00003e0d: JUMPDEST 00003e0e: SWAP1 00003e0f: PUSH14 0xffffffffffffffffffffffffffff 00003e1e: PUSH2 0x0180 00003e21: PUSH2 0x055b 00003e24: SWAP4 00003e25: ADD 00003e26: MLOAD 00003e27: AND 00003e28: SWAP1 00003e29: PUSH2 0x529f 00003e2c: JUMP 00003e2d: JUMPDEST 00003e2e: PUSH13 0xffffffffffffffffffffffffff 00003e3c: DUP1 00003e3d: PUSH1 0xa0 00003e3f: DUP4 00003e40: ADD 00003e41: MLOAD 00003e42: AND 00003e43: SWAP1 00003e44: PUSH1 0x80 00003e46: DUP4 00003e47: ADD 00003e48: MLOAD 00003e49: AND 00003e4a: DUP2 00003e4b: DUP2 00003e4c: SUB 00003e4d: SWAP1 00003e4e: DUP2 00003e4f: GT 00003e50: PUSH2 0x0b38 00003e53: JUMPI 00003e54: PUSH2 0x3e67 00003e57: SWAP1 00003e58: PUSH2 0xffff 00003e5b: PUSH2 0x0160 00003e5e: DUP6 00003e5f: ADD 00003e60: MLOAD 00003e61: AND 00003e62: SWAP1 00003e63: PUSH2 0x52ee 00003e66: JUMP 00003e67: JUMPDEST 00003e68: SWAP1 00003e69: DUP2 00003e6a: ADD 00003e6b: DUP1 00003e6c: SWAP2 00003e6d: GT 00003e6e: PUSH2 0x0b38 00003e71: JUMPI 00003e72: PUSH2 0x3e91 00003e75: SWAP1 00003e76: PUSH14 0xffffffffffffffffffffffffffff 00003e85: PUSH2 0x0180 00003e88: DUP5 00003e89: ADD 00003e8a: MLOAD 00003e8b: AND 00003e8c: SWAP1 00003e8d: PUSH2 0x529f 00003e90: JUMP 00003e91: JUMPDEST 00003e92: PUSH16 0xffffffffffffffffffffffffffffffff 00003ea3: PUSH1 0x40 00003ea5: DUP4 00003ea6: ADD 00003ea7: MLOAD 00003ea8: AND 00003ea9: DUP2 00003eaa: ADD 00003eab: DUP1 00003eac: SWAP2 00003ead: GT 00003eae: PUSH2 0x0b38 00003eb1: JUMPI 00003eb2: PUSH2 0x3ed4 00003eb5: PUSH2 0x0718 00003eb8: PUSH1 0x60 00003eba: PUSH2 0x055b 00003ebd: SWAP5 00003ebe: ADD 00003ebf: MLOAD 00003ec0: PUSH16 0xffffffffffffffffffffffffffffffff 00003ed1: AND 00003ed2: SWAP1 00003ed3: JUMP 00003ed4: JUMPDEST 00003ed5: SWAP1 00003ed6: PUSH2 0x2a67 00003ed9: JUMP 00003eda: JUMPDEST 00003edb: PUSH2 0x11c7 00003ede: SWAP1 00003edf: PUSH2 0x3e2d 00003ee2: JUMP 00003ee3: JUMPDEST 00003ee4: PUSH4 0x499fddb1 00003ee9: PUSH0 00003eea: MSTORE 00003eeb: PUSH1 0x04 00003eed: PUSH1 0x1c 00003eef: REVERT 00003ef0: JUMPDEST 00003ef1: PUSH4 0x37f1a75f 00003ef6: PUSH0 00003ef7: MSTORE 00003ef8: PUSH1 0x04 00003efa: PUSH1 0x1c 00003efc: REVERT 00003efd: JUMPDEST 00003efe: SWAP2 00003eff: SWAP1 00003f00: PUSH1 0x01 00003f02: DUP4 00003f03: PUSH1 0x55 00003f05: SHR 00003f06: AND 00003f07: PUSH2 0x3f0f 00003f0a: JUMPI 00003f0b: POP 00003f0c: POP 00003f0d: POP 00003f0e: JUMP 00003f0f: JUMPDEST 00003f10: PUSH0 00003f11: SWAP3 00003f12: DUP4 00003f13: PUSH1 0x1c 00003f15: DUP2 00003f16: SWAP5 00003f17: PUSH2 0x01c0 00003f1a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc 00003f3b: CALLDATASIZE 00003f3c: ADD 00003f3d: SWAP2 00003f3e: PUSH1 0x40 00003f40: MLOAD 00003f41: SWAP7 00003f42: PUSH4 0x03473d8d 00003f47: DUP9 00003f48: MSTORE 00003f49: PUSH1 0x20 00003f4b: DUP9 00003f4c: ADD 00003f4d: MSTORE 00003f4e: PUSH1 0x40 00003f50: DUP8 00003f51: ADD 00003f52: MCOPY 00003f53: PUSH2 0x0200 00003f56: SWAP1 00003f57: DUP2 00003f58: DUP1 00003f59: DUP8 00003f5a: ADD 00003f5b: MSTORE 00003f5c: DUP1 00003f5d: PUSH2 0x0220 00003f60: DUP8 00003f61: ADD 00003f62: MSTORE 00003f63: PUSH1 0x24 00003f65: PUSH2 0x0240 00003f68: DUP8 00003f69: ADD 00003f6a: CALLDATACOPY 00003f6b: CALLDATASIZE 00003f6c: ADD 00003f6d: SWAP4 00003f6e: ADD 00003f6f: SWAP2 00003f70: PUSH1 0x60 00003f72: SHR 00003f73: GAS 00003f74: CALL 00003f75: ISZERO 00003f76: PUSH2 0x0ebc 00003f79: JUMPI 00003f7a: JUMP 00003f7b: JUMPDEST 00003f7c: PUSH2 0x3f83 00003f7f: PUSH2 0x2bf8 00003f82: JUMP 00003f83: JUMPDEST 00003f84: PUSH2 0x3f8b 00003f87: PUSH2 0x2fe6 00003f8a: JUMP 00003f8b: JUMPDEST 00003f8c: SWAP1 00003f8d: PUSH2 0x3f96 00003f90: DUP3 00003f91: MLOAD 00003f92: ISZERO 00003f93: ISZERO 00003f94: SWAP1 00003f95: JUMP 00003f96: JUMPDEST 00003f97: PUSH2 0x40e0 00003f9a: JUMPI 00003f9b: PUSH2 0x3fb3 00003f9e: SWAP1 00003f9f: PUSH2 0x3fa7 00003fa2: DUP4 00003fa3: PUSH2 0x3987 00003fa6: JUMP 00003fa7: JUMPDEST 00003fa8: SWAP1 00003fa9: DUP2 00003faa: DUP1 00003fab: DUP3 00003fac: SUB 00003fad: SWAP2 00003fae: LT 00003faf: MUL 00003fb0: ADD 00003fb1: SWAP1 00003fb2: JUMP 00003fb3: JUMPDEST 00003fb4: SWAP1 00003fb5: PUSH2 0x3fe4 00003fb8: PUSH2 0x3fdf 00003fbb: PUSH2 0x3fd9 00003fbe: PUSH2 0x315e 00003fc1: PUSH2 0x0180 00003fc4: DUP6 00003fc5: ADD 00003fc6: MLOAD 00003fc7: PUSH14 0xffffffffffffffffffffffffffff 00003fd6: AND 00003fd7: SWAP1 00003fd8: JUMP 00003fd9: JUMPDEST 00003fda: DUP5 00003fdb: PUSH2 0x51cf 00003fde: JUMP 00003fdf: JUMPDEST 00003fe0: PUSH2 0x3b26 00003fe3: JUMP 00003fe4: JUMPDEST 00003fe5: SWAP1 00003fe6: PUSH13 0xffffffffffffffffffffffffff 00003ff4: DUP3 00003ff5: AND 00003ff6: DUP1 00003ff7: ISZERO 00003ff8: PUSH2 0x40db 00003ffb: JUMPI 00003ffc: PUSH2 0x40d2 00003fff: SWAP3 00004000: PUSH2 0x40b3 00004003: PUSH2 0x098c 00004006: SWAP3 00004007: PUSH2 0x409b 0000400a: PUSH2 0x4012 0000400d: CALLER 0000400e: PUSH2 0x3b42 00004011: JUMP 00004012: JUMPDEST 00004013: PUSH2 0x403e 00004016: DUP8 00004017: DUP5 00004018: CALLER 00004019: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 0000403a: PUSH2 0x5343 0000403d: JUMP 0000403e: JUMPDEST 0000403f: PUSH2 0x406a 00004042: DUP10 00004043: ADDRESS 00004044: CALLER 00004045: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00004066: PUSH2 0x385a 00004069: JUMP 0000406a: JUMPDEST 0000406b: PUSH2 0x4088 0000406e: PUSH2 0x19c2 00004071: DUP7 00004072: PUSH2 0x19bd 00004075: DUP5 00004076: MLOAD 00004077: PUSH13 0xffffffffffffffffffffffffff 00004085: AND 00004086: SWAP1 00004087: JUMP 00004088: JUMPDEST 00004089: CALLER 0000408a: PUSH0 0000408b: SWAP1 0000408c: DUP2 0000408d: MSTORE 0000408e: PUSH1 0x04 00004090: PUSH1 0x20 00004092: MSTORE 00004093: PUSH1 0x40 00004095: SWAP1 00004096: KECCAK256 00004097: PUSH2 0x342a 0000409a: JUMP 0000409b: JUMPDEST 0000409c: PUSH2 0x40ac 0000409f: DUP8 000040a0: CALLER 000040a1: PUSH2 0x359a 000040a4: PUSH0 000040a5: DUP1 000040a6: MSTORE 000040a7: CALLDATASIZE 000040a8: ISZERO 000040a9: MLOAD 000040aa: SWAP1 000040ab: JUMP 000040ac: JUMPDEST 000040ad: DUP7 000040ae: CALLER 000040af: PUSH2 0x53cf 000040b2: JUMP 000040b3: JUMPDEST 000040b4: PUSH2 0x3d31 000040b7: PUSH1 0x80 000040b9: DUP5 000040ba: ADD 000040bb: SWAP2 000040bc: PUSH2 0x19bd 000040bf: DUP4 000040c0: MLOAD 000040c1: PUSH13 0xffffffffffffffffffffffffff 000040cf: AND 000040d0: SWAP1 000040d1: JUMP 000040d2: JUMPDEST 000040d3: SWAP1 000040d4: PUSH2 0x2985 000040d7: PUSH2 0x2c16 000040da: JUMP 000040db: JUMPDEST 000040dc: PUSH2 0x5336 000040df: JUMP 000040e0: JUMPDEST 000040e1: PUSH2 0x5329 000040e4: JUMP 000040e5: JUMPDEST 000040e6: PUSH4 0x449e5f50 000040eb: PUSH0 000040ec: MSTORE 000040ed: PUSH1 0x04 000040ef: PUSH1 0x1c 000040f1: REVERT 000040f2: JUMPDEST 000040f3: PUSH1 0x10 000040f5: PUSH0 000040f6: PUSH1 0x44 000040f8: SWAP3 000040f9: PUSH1 0x20 000040fb: SWAP6 000040fc: DUP3 000040fd: SWAP6 000040fe: PUSH1 0x14 00004100: MSTORE 00004101: PUSH1 0x34 00004103: MSTORE 00004104: PUSH16 0xa9059cbb000000000000000000000000 00004115: DUP3 00004116: MSTORE 00004117: GAS 00004118: CALL 00004119: RETURNDATASIZE 0000411a: ISZERO 0000411b: PUSH1 0x01 0000411d: PUSH0 0000411e: MLOAD 0000411f: EQ 00004120: OR 00004121: AND 00004122: ISZERO 00004123: PUSH2 0x04df 00004126: JUMPI 00004127: PUSH0 00004128: PUSH1 0x34 0000412a: MSTORE 0000412b: JUMP 0000412c: JUMPDEST 0000412d: DUP2 0000412e: ISZERO 0000412f: PUSH2 0x0cd8 00004132: JUMPI 00004133: DUP1 00004134: MLOAD 00004135: PUSH2 0x0ccb 00004138: JUMPI 00004139: PUSH2 0x4164 0000413c: DUP3 0000413d: ADDRESS 0000413e: CALLER 0000413f: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00004160: PUSH2 0x385a 00004163: JUMP 00004164: JUMPDEST 00004165: DUP2 00004166: PUSH0 00004167: MSTORE 00004168: CALLER 00004169: PUSH32 0xe8b606ac1e5df7657db58d297ca8f41c090fc94c5fd2d6958f043e41736e9fa6 0000418a: PUSH1 0x20 0000418c: PUSH0 0000418d: LOG2 0000418e: PUSH32 0x0d7a820f97714f879454790d8b3887b1c50b4dadd04000000000000000000000 000041af: SWAP2 000041b0: PUSH1 0x01 000041b2: DUP4 000041b3: PUSH1 0x5a 000041b5: SHR 000041b6: AND 000041b7: PUSH2 0x41bf 000041ba: JUMPI 000041bb: POP 000041bc: POP 000041bd: POP 000041be: JUMP 000041bf: JUMPDEST 000041c0: PUSH0 000041c1: SWAP3 000041c2: DUP4 000041c3: PUSH1 0x1c 000041c5: DUP2 000041c6: SWAP5 000041c7: PUSH2 0x01c0 000041ca: PUSH1 0x03 000041cc: NOT 000041cd: CALLDATASIZE 000041ce: ADD 000041cf: SWAP2 000041d0: PUSH1 0x40 000041d2: MLOAD 000041d3: SWAP7 000041d4: PUSH4 0x83d9e1eb 000041d9: DUP9 000041da: MSTORE 000041db: PUSH1 0x20 000041dd: DUP9 000041de: ADD 000041df: MSTORE 000041e0: PUSH1 0x40 000041e2: DUP8 000041e3: ADD 000041e4: MCOPY 000041e5: PUSH2 0x0200 000041e8: DUP1 000041e9: DUP7 000041ea: ADD 000041eb: MSTORE 000041ec: PUSH2 0x0220 000041ef: SWAP1 000041f0: DUP1 000041f1: DUP3 000041f2: DUP8 000041f3: ADD 000041f4: MSTORE 000041f5: PUSH1 0x04 000041f7: PUSH2 0x0240 000041fa: DUP8 000041fb: ADD 000041fc: CALLDATACOPY 000041fd: CALLDATASIZE 000041fe: ADD 000041ff: SWAP4 00004200: ADD 00004201: SWAP2 00004202: PUSH1 0x60 00004204: SHR 00004205: GAS 00004206: CALL 00004207: ISZERO 00004208: PUSH2 0x0ebc 0000420b: JUMPI 0000420c: JUMP 0000420d: JUMPDEST 0000420e: PUSH1 0x01 00004210: DUP2 00004211: PUSH1 0x59 00004213: SHR 00004214: AND 00004215: PUSH2 0x421c 00004218: JUMPI 00004219: POP 0000421a: POP 0000421b: JUMP 0000421c: JUMPDEST 0000421d: PUSH0 0000421e: SWAP2 0000421f: DUP3 00004220: SWAP2 00004221: DUP3 00004222: PUSH1 0x1c 00004224: PUSH1 0x03 00004226: NOT 00004227: CALLDATASIZE 00004228: ADD 00004229: PUSH2 0x01c0 0000422c: PUSH1 0x40 0000422e: MLOAD 0000422f: SWAP6 00004230: PUSH4 0x9ecc64e6 00004235: DUP8 00004236: MSTORE 00004237: PUSH1 0x20 00004239: DUP8 0000423a: ADD 0000423b: MCOPY 0000423c: PUSH2 0x01e0 0000423f: DUP1 00004240: DUP7 00004241: ADD 00004242: MSTORE 00004243: PUSH2 0x0200 00004246: SWAP1 00004247: DUP1 00004248: DUP3 00004249: DUP8 0000424a: ADD 0000424b: MSTORE 0000424c: PUSH1 0x04 0000424e: PUSH2 0x0220 00004251: DUP8 00004252: ADD 00004253: CALLDATACOPY 00004254: CALLDATASIZE 00004255: ADD 00004256: SWAP4 00004257: ADD 00004258: SWAP2 00004259: PUSH1 0x60 0000425b: SHR 0000425c: GAS 0000425d: CALL 0000425e: ISZERO 0000425f: PUSH2 0x0ebc 00004262: JUMPI 00004263: JUMP 00004264: JUMPDEST 00004265: SWAP3 00004266: SWAP4 00004267: SWAP2 00004268: PUSH2 0x42b6 0000426b: SWAP2 0000426c: PUSH2 0x4282 0000426f: DUP6 00004270: MLOAD 00004271: PUSH13 0xffffffffffffffffffffffffff 0000427f: AND 00004280: SWAP1 00004281: JUMP 00004282: JUMPDEST 00004283: SWAP5 00004284: PUSH1 0x20 00004286: DUP2 00004287: ADD 00004288: SWAP6 00004289: PUSH13 0xffffffffffffffffffffffffff 00004297: SWAP5 00004298: DUP6 00004299: SWAP2 0000429a: PUSH2 0x42b0 0000429d: DUP10 0000429e: MLOAD 0000429f: PUSH13 0xffffffffffffffffffffffffff 000042ad: AND 000042ae: SWAP1 000042af: JUMP 000042b0: JUMPDEST 000042b1: SWAP1 000042b2: PUSH2 0x340b 000042b5: JUMP 000042b6: JUMPDEST 000042b7: AND 000042b8: DUP1 000042b9: ISZERO 000042ba: PUSH2 0x446a 000042bd: JUMPI 000042be: PUSH2 0x0180 000042c1: DUP4 000042c2: ADD 000042c3: SWAP8 000042c4: DUP9 000042c5: MLOAD 000042c6: PUSH2 0x42dc 000042c9: SWAP1 000042ca: PUSH14 0xffffffffffffffffffffffffffff 000042d9: AND 000042da: SWAP1 000042db: JUMP 000042dc: JUMPDEST 000042dd: PUSH14 0xffffffffffffffffffffffffffff 000042ec: AND 000042ed: PUSH2 0x42f5 000042f0: SWAP2 000042f1: PUSH2 0x51cf 000042f4: JUMP 000042f5: JUMPDEST 000042f6: DUP2 000042f7: DUP2 000042f8: LT 000042f9: SWAP1 000042fa: DUP3 000042fb: SWAP1 000042fc: SUB 000042fd: MUL 000042fe: ADD 000042ff: PUSH2 0x4307 00004302: SWAP1 00004303: PUSH2 0x3b26 00004306: JUMP 00004307: JUMPDEST 00004308: SWAP7 00004309: MLOAD 0000430a: SWAP4 0000430b: DUP8 0000430c: AND 0000430d: SWAP4 0000430e: PUSH2 0x4327 00004311: SWAP1 00004312: PUSH14 0xffffffffffffffffffffffffffff 00004321: AND 00004322: DUP6 00004323: PUSH2 0x2e57 00004326: JUMP 00004327: JUMPDEST 00004328: PUSH2 0x4330 0000432b: SWAP1 0000432c: PUSH2 0x393f 0000432f: JUMP 00004330: JUMPDEST 00004331: SWAP6 00004332: DUP8 00004333: DUP2 00004334: MLOAD 00004335: PUSH2 0x434a 00004338: SWAP1 00004339: PUSH13 0xffffffffffffffffffffffffff 00004347: AND 00004348: SWAP1 00004349: JUMP 0000434a: JUMPDEST 0000434b: SWAP1 0000434c: PUSH2 0x4354 0000434f: SWAP2 00004350: PUSH2 0x3476 00004353: JUMP 00004354: JUMPDEST 00004355: PUSH13 0xffffffffffffffffffffffffff 00004363: AND 00004364: SWAP1 00004365: MSTORE 00004366: PUSH1 0x40 00004368: ADD 00004369: DUP1 0000436a: MLOAD 0000436b: PUSH2 0x4387 0000436e: SWAP1 0000436f: DUP8 00004370: SWAP1 00004371: PUSH16 0xffffffffffffffffffffffffffffffff 00004382: AND 00004383: PUSH2 0x29a8 00004386: JUMP 00004387: JUMPDEST 00004388: PUSH16 0xffffffffffffffffffffffffffffffff 00004399: AND 0000439a: SWAP1 0000439b: MSTORE 0000439c: PUSH1 0xa0 0000439e: DUP2 0000439f: ADD 000043a0: DUP1 000043a1: MLOAD 000043a2: PUSH2 0x43bb 000043a5: SWAP1 000043a6: DUP9 000043a7: SWAP1 000043a8: PUSH13 0xffffffffffffffffffffffffff 000043b6: AND 000043b7: PUSH2 0x340b 000043ba: JUMP 000043bb: JUMPDEST 000043bc: PUSH13 0xffffffffffffffffffffffffff 000043ca: AND 000043cb: SWAP1 000043cc: MSTORE 000043cd: PUSH1 0x60 000043cf: DUP2 000043d0: ADD 000043d1: DUP1 000043d2: MLOAD 000043d3: PUSH2 0x43ef 000043d6: SWAP1 000043d7: DUP8 000043d8: SWAP1 000043d9: PUSH16 0xffffffffffffffffffffffffffffffff 000043ea: AND 000043eb: PUSH2 0x29a8 000043ee: JUMP 000043ef: JUMPDEST 000043f0: PUSH16 0xffffffffffffffffffffffffffffffff 00004401: AND 00004402: SWAP1 00004403: MSTORE 00004404: PUSH1 0x80 00004406: ADD 00004407: DUP1 00004408: MLOAD 00004409: PUSH2 0x4422 0000440c: SWAP1 0000440d: DUP8 0000440e: SWAP1 0000440f: PUSH13 0xffffffffffffffffffffffffff 0000441d: AND 0000441e: PUSH2 0x340b 00004421: JUMP 00004422: JUMPDEST 00004423: PUSH13 0xffffffffffffffffffffffffff 00004431: AND 00004432: SWAP1 00004433: MSTORE 00004434: PUSH0 00004435: DUP1 00004436: MSTORE 00004437: CALLDATASIZE 00004438: ISZERO 00004439: MLOAD 0000443a: SWAP1 0000443b: PUSH16 0xffffffffffffffffffffffffffffffff 0000444c: DUP6 0000444d: AND 0000444e: SWAP2 0000444f: DUP3 00004450: ADDRESS 00004451: SWAP2 00004452: PUSH2 0x445a 00004455: SWAP3 00004456: PUSH2 0x5011 00004459: JUMP 0000445a: JUMPDEST 0000445b: PUSH4 0xffffffff 00004460: AND 00004461: SWAP2 00004462: PUSH2 0x2985 00004465: SWAP3 00004466: PUSH2 0x53fd 00004469: JUMP 0000446a: JUMPDEST 0000446b: POP 0000446c: PUSH0 0000446d: SWAP7 0000446e: POP 0000446f: DUP7 00004470: SWAP6 00004471: POP 00004472: POP 00004473: POP 00004474: POP 00004475: POP 00004476: JUMP 00004477: JUMPDEST 00004478: SWAP2 00004479: SWAP3 0000447a: SWAP1 0000447b: SWAP3 0000447c: PUSH1 0x40 0000447e: MLOAD 0000447f: SWAP4 00004480: PUSH0 00004481: MSTORE 00004482: PUSH1 0x20 00004484: MSTORE 00004485: PUSH1 0x40 00004487: MSTORE 00004488: PUSH32 0x9262dc39b47cad3a0512e4c08dda248cb345e7163058f300bc63f56bda288b6e 000044a9: PUSH1 0x60 000044ab: PUSH0 000044ac: LOG2 000044ad: PUSH1 0x40 000044af: MSTORE 000044b0: JUMP 000044b1: JUMPDEST 000044b2: PUSH32 0xcbdf25bf6e096dd9030d89bb2ba2e3e7adb82d25a233c3ca3d92e9f098b74e55 000044d3: PUSH0 000044d4: DUP1 000044d5: LOG2 000044d6: JUMP 000044d7: JUMPDEST 000044d8: PUSH32 0x5c9a946d3041134198ebefcd814de7748def6576efd3d1b48f48193e183e89ef 000044f9: PUSH0 000044fa: DUP1 000044fb: LOG2 000044fc: JUMP 000044fd: JUMPDEST 000044fe: PUSH4 0x4d790997 00004503: PUSH0 00004504: MSTORE 00004505: PUSH1 0x04 00004507: PUSH1 0x1c 00004509: REVERT 0000450a: JUMPDEST 0000450b: PUSH0 0000450c: MSTORE 0000450d: PUSH32 0x9dc30b8eda31a6a144e092e5de600955523a6a925cc15cc1d1b9b4872cfa6155 0000452e: PUSH1 0x20 00004530: PUSH0 00004531: LOG1 00004532: JUMP 00004533: JUMPDEST 00004534: PUSH4 0x4a1c13a9 00004539: PUSH0 0000453a: MSTORE 0000453b: PUSH1 0x04 0000453d: PUSH1 0x1c 0000453f: REVERT 00004540: JUMPDEST 00004541: PUSH4 0xd0242b28 00004546: PUSH0 00004547: MSTORE 00004548: PUSH1 0x04 0000454a: PUSH1 0x1c 0000454c: REVERT 0000454d: JUMPDEST 0000454e: PUSH4 0x119fe6e3 00004553: PUSH0 00004554: MSTORE 00004555: PUSH1 0x04 00004557: PUSH1 0x1c 00004559: REVERT 0000455a: JUMPDEST 0000455b: SWAP2 0000455c: SWAP1 0000455d: PUSH1 0x01 0000455f: DUP4 00004560: PUSH1 0x5b 00004562: SHR 00004563: AND 00004564: PUSH2 0x456c 00004567: JUMPI 00004568: POP 00004569: POP 0000456a: POP 0000456b: JUMP 0000456c: JUMPDEST 0000456d: PUSH0 0000456e: SWAP3 0000456f: DUP4 00004570: PUSH1 0x1c 00004572: DUP2 00004573: SWAP5 00004574: PUSH2 0x01c0 00004577: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc 00004598: CALLDATASIZE 00004599: ADD 0000459a: SWAP2 0000459b: PUSH1 0x40 0000459d: MLOAD 0000459e: SWAP7 0000459f: PUSH4 0xb1cfda0d 000045a4: DUP9 000045a5: MSTORE 000045a6: PUSH1 0x20 000045a8: DUP9 000045a9: ADD 000045aa: MSTORE 000045ab: PUSH1 0x40 000045ad: DUP8 000045ae: ADD 000045af: MCOPY 000045b0: PUSH2 0x0200 000045b3: SWAP1 000045b4: DUP2 000045b5: DUP1 000045b6: DUP8 000045b7: ADD 000045b8: MSTORE 000045b9: DUP1 000045ba: PUSH2 0x0220 000045bd: DUP8 000045be: ADD 000045bf: MSTORE 000045c0: PUSH1 0x24 000045c2: PUSH2 0x0240 000045c5: DUP8 000045c6: ADD 000045c7: CALLDATACOPY 000045c8: CALLDATASIZE 000045c9: ADD 000045ca: SWAP4 000045cb: ADD 000045cc: SWAP2 000045cd: PUSH1 0x60 000045cf: SHR 000045d0: GAS 000045d1: CALL 000045d2: ISZERO 000045d3: PUSH2 0x0ebc 000045d6: JUMPI 000045d7: JUMP 000045d8: JUMPDEST 000045d9: PUSH0 000045da: MSTORE 000045db: PUSH32 0xb848ae6b1253b6cb77e81464128ce8bd94d3d524fea54e801e0da869784dca33 000045fc: PUSH1 0x20 000045fe: PUSH0 000045ff: LOG1 00004600: JUMP 00004601: JUMPDEST 00004602: PUSH0 00004603: MSTORE 00004604: PUSH32 0x860c0aa5520013080c2f65981705fcdea474d9f7c3daf954656ed5e65d692d1f 00004625: PUSH1 0x20 00004627: PUSH0 00004628: LOG1 00004629: JUMP 0000462a: JUMPDEST 0000462b: SWAP1 0000462c: PUSH1 0x40 0000462e: MLOAD 0000462f: SWAP2 00004630: PUSH4 0x06e74444 00004635: PUSH0 00004636: MSTORE 00004637: PUSH32 0x000000000000000000000000f783818e62d9793f119a3a9656cbdab93ff3e993 00004658: PUSH1 0x20 0000465a: MSTORE 0000465b: PUSH1 0x40 0000465d: MSTORE 0000465e: PUSH1 0x20 00004660: PUSH0 00004661: PUSH1 0x44 00004663: PUSH1 0x1c 00004665: PUSH32 0x000000000000000000000000437e0551892c2c9b06d3ffd248fe60572e08cd1a 00004686: GAS 00004687: STATICCALL 00004688: PUSH1 0x20 0000468a: RETURNDATASIZE 0000468b: EQ 0000468c: AND 0000468d: ISZERO 0000468e: PUSH2 0x0ebc 00004691: JUMPI 00004692: PUSH0 00004693: MLOAD 00004694: SWAP2 00004695: PUSH1 0x40 00004697: MSTORE 00004698: JUMP 00004699: JUMPDEST 0000469a: SWAP1 0000469b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000046b0: DUP2 000046b1: AND 000046b2: PUSH0 000046b3: MSTORE 000046b4: PUSH1 0x04 000046b6: PUSH1 0x20 000046b8: MSTORE 000046b9: PUSH1 0x40 000046bb: PUSH0 000046bc: KECCAK256 000046bd: SWAP2 000046be: PUSH13 0xffffffffffffffffffffffffff 000046cc: PUSH2 0x46d3 000046cf: PUSH2 0x26e7 000046d2: JUMP 000046d3: JUMPDEST 000046d4: SWAP4 000046d5: SLOAD 000046d6: AND 000046d7: SWAP3 000046d8: DUP4 000046d9: DUP2 000046da: MSTORE 000046db: DUP4 000046dc: PUSH2 0x46e5 000046df: JUMPI 000046e0: POP 000046e1: POP 000046e2: POP 000046e3: POP 000046e4: JUMP 000046e5: JUMPDEST 000046e6: DUP2 000046e7: PUSH2 0x4715 000046ea: SWAP2 000046eb: DUP6 000046ec: PUSH2 0x470b 000046ef: PUSH14 0xffffffffffffffffffffffffffff 000046fe: PUSH2 0x0180 00004701: DUP9 00004702: SWAP8 00004703: ADD 00004704: MLOAD 00004705: AND 00004706: DUP3 00004707: PUSH2 0x529f 0000470a: JUMP 0000470b: JUMPDEST 0000470c: SWAP5 0000470d: DUP6 0000470e: SWAP3 0000470f: CALLDATASIZE 00004710: SWAP5 00004711: PUSH2 0x3ba6 00004714: JUMP 00004715: JUMPDEST 00004716: SWAP3 00004717: PUSH1 0x40 00004719: MLOAD 0000471a: SWAP4 0000471b: PUSH0 0000471c: MSTORE 0000471d: PUSH1 0x20 0000471f: MSTORE 00004720: PUSH1 0x40 00004722: MSTORE 00004723: PUSH32 0xe12b220b92469ae28fb0d79de531f94161431be9f073b96b8aad3effb88be6fa 00004744: PUSH1 0x60 00004746: PUSH0 00004747: LOG2 00004748: PUSH1 0x40 0000474a: MSTORE 0000474b: PUSH0 0000474c: DUP1 0000474d: DUP1 0000474e: DUP1 0000474f: PUSH2 0x38e5 00004752: JUMP 00004753: JUMPDEST 00004754: PUSH4 0xb9de88a2 00004759: PUSH0 0000475a: MSTORE 0000475b: PUSH1 0x04 0000475d: PUSH1 0x1c 0000475f: REVERT 00004760: JUMPDEST 00004761: SWAP2 00004762: SWAP1 00004763: SWAP3 00004764: PUSH1 0x01 00004766: DUP4 00004767: PUSH1 0x56 00004769: SHR 0000476a: AND 0000476b: PUSH0 0000476c: EQ 0000476d: PUSH2 0x47f6 00004770: JUMPI 00004771: SWAP2 00004772: PUSH1 0x40 00004774: SWAP4 00004775: SWAP2 00004776: PUSH2 0x01c0 00004779: PUSH0 0000477a: SWAP5 0000477b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc 0000479c: CALLDATASIZE 0000479d: ADD 0000479e: SWAP3 0000479f: DUP8 000047a0: MLOAD 000047a1: SWAP6 000047a2: PUSH4 0xcc452642 000047a7: DUP8 000047a8: MSTORE 000047a9: PUSH1 0x20 000047ab: DUP8 000047ac: ADD 000047ad: MSTORE 000047ae: DUP8 000047af: DUP7 000047b0: ADD 000047b1: MSTORE 000047b2: PUSH1 0x60 000047b4: DUP6 000047b5: ADD 000047b6: MCOPY 000047b7: PUSH2 0x0220 000047ba: DUP1 000047bb: DUP5 000047bc: ADD 000047bd: MSTORE 000047be: DUP1 000047bf: PUSH2 0x0240 000047c2: DUP5 000047c3: ADD 000047c4: MSTORE 000047c5: PUSH1 0x44 000047c7: PUSH2 0x0260 000047ca: DUP5 000047cb: ADD 000047cc: CALLDATACOPY 000047cd: DUP3 000047ce: PUSH1 0x1c 000047d0: PUSH2 0x0200 000047d3: CALLDATASIZE 000047d4: ADD 000047d5: SWAP4 000047d6: ADD 000047d7: SWAP2 000047d8: PUSH1 0x60 000047da: SHR 000047db: GAS 000047dc: CALL 000047dd: ISZERO 000047de: PUSH1 0x40 000047e0: RETURNDATASIZE 000047e1: LT 000047e2: OR 000047e3: PUSH2 0x0ebc 000047e6: JUMPI 000047e7: PUSH2 0xffff 000047ea: SWAP1 000047eb: DUP2 000047ec: PUSH0 000047ed: MLOAD 000047ee: AND 000047ef: SWAP2 000047f0: PUSH1 0x20 000047f2: MLOAD 000047f3: AND 000047f4: SWAP1 000047f5: JUMP 000047f6: JUMPDEST 000047f7: POP 000047f8: SWAP1 000047f9: POP 000047fa: SWAP1 000047fb: SWAP2 000047fc: JUMP 000047fd: JUMPDEST 000047fe: PUSH4 0xcf1f916f 00004803: PUSH0 00004804: MSTORE 00004805: PUSH1 0x04 00004807: PUSH1 0x1c 00004809: REVERT 0000480a: JUMPDEST 0000480b: PUSH4 0x8ec83073 00004810: PUSH0 00004811: MSTORE 00004812: PUSH1 0x04 00004814: PUSH1 0x1c 00004816: REVERT 00004817: JUMPDEST 00004818: PUSH4 0x0a68e5bf 0000481d: PUSH0 0000481e: MSTORE 0000481f: PUSH1 0x04 00004821: PUSH1 0x1c 00004823: REVERT 00004824: JUMPDEST 00004825: PUSH4 0x253ecbb9 0000482a: PUSH0 0000482b: MSTORE 0000482c: PUSH1 0x04 0000482e: PUSH1 0x1c 00004830: REVERT 00004831: JUMPDEST 00004832: PUSH0 00004833: MSTORE 00004834: PUSH32 0xff7b6c8be373823323d3c5d99f5d027dd409dce5db54eae511bbdd5546b75037 00004855: PUSH1 0x20 00004857: PUSH0 00004858: LOG1 00004859: JUMP 0000485a: JUMPDEST 0000485b: PUSH0 0000485c: MSTORE 0000485d: PUSH32 0x72877a153052500f5edbb2f9da96a0f45d671d4b4555fdf8628a709dc4eab43a 0000487e: PUSH1 0x20 00004880: PUSH0 00004881: LOG1 00004882: JUMP 00004883: JUMPDEST 00004884: SWAP3 00004885: SWAP4 00004886: SWAP2 00004887: SWAP1 00004888: SWAP2 00004889: PUSH0 0000488a: SWAP3 0000488b: PUSH0 0000488c: SWAP3 0000488d: PUSH2 0xffff 00004890: SWAP7 00004891: DUP8 00004892: PUSH2 0x0140 00004895: DUP9 00004896: ADD 00004897: MLOAD 00004898: AND 00004899: SWAP2 0000489a: PUSH2 0x01a0 0000489d: DUP9 0000489e: ADD 0000489f: SWAP4 000048a0: PUSH4 0xffffffff 000048a5: SWAP4 000048a6: DUP5 000048a7: DUP7 000048a8: MLOAD 000048a9: AND 000048aa: DUP5 000048ab: SUB 000048ac: DUP5 000048ad: DUP2 000048ae: GT 000048af: PUSH2 0x0b38 000048b2: JUMPI 000048b3: PUSH2 0x48bb 000048b6: SWAP2 000048b7: PUSH2 0x5545 000048ba: JUMP 000048bb: JUMPDEST 000048bc: DUP1 000048bd: SWAP11 000048be: PUSH2 0x0120 000048c1: DUP12 000048c2: ADD 000048c3: MLOAD 000048c4: AND 000048c5: DUP1 000048c6: PUSH2 0x495d 000048c9: JUMPI 000048ca: JUMPDEST 000048cb: POP 000048cc: POP 000048cd: DUP1 000048ce: PUSH2 0x493b 000048d1: JUMPI 000048d2: JUMPDEST 000048d3: POP 000048d4: POP 000048d5: PUSH2 0x4930 000048d8: PUSH2 0x0180 000048db: PUSH2 0x2985 000048de: SWAP6 000048df: SWAP7 000048e0: SWAP8 000048e1: SWAP9 000048e2: ADD 000048e3: PUSH2 0x491c 000048e6: PUSH2 0x4917 000048e9: DUP12 000048ea: PUSH2 0x3ed4 000048ed: PUSH2 0x4911 000048f0: DUP14 000048f1: PUSH2 0x490b 000048f4: PUSH2 0x315e 000048f7: DUP9 000048f8: MLOAD 000048f9: PUSH14 0xffffffffffffffffffffffffffff 00004908: AND 00004909: SWAP1 0000490a: JUMP 0000490b: JUMPDEST 0000490c: SWAP4 0000490d: PUSH2 0x2a67 00004910: JUMP 00004911: JUMPDEST 00004912: DUP3 00004913: PUSH2 0x529f 00004916: JUMP 00004917: JUMPDEST 00004918: PUSH2 0x5464 0000491b: JUMP 0000491c: JUMPDEST 0000491d: PUSH14 0xffffffffffffffffffffffffffff 0000492c: AND 0000492d: SWAP1 0000492e: MSTORE 0000492f: JUMP 00004930: JUMPDEST 00004931: AND 00004932: PUSH4 0xffffffff 00004937: AND 00004938: SWAP1 00004939: MSTORE 0000493a: JUMP 0000493b: JUMPDEST 0000493c: PUSH2 0x2985 0000493f: SWAP6 00004940: SWAP7 00004941: SWAP8 00004942: POP 00004943: PUSH2 0x4954 00004946: PUSH2 0x4930 00004949: SWAP3 0000494a: PUSH2 0x0180 0000494d: SWAP3 0000494e: DUP6 0000494f: DUP13 00004950: PUSH2 0x542b 00004953: JUMP 00004954: JUMPDEST 00004955: SWAP8 00004956: SWAP7 00004957: SWAP6 00004958: POP 00004959: PUSH2 0x48d2 0000495c: JUMP 0000495d: JUMPDEST 0000495e: PUSH2 0x49a6 00004961: SWAP3 00004962: SWAP9 00004963: POP 00004964: SWAP1 00004965: PUSH2 0x496d 00004968: SWAP2 00004969: PUSH2 0x52ee 0000496c: JUMP 0000496d: JUMPDEST 0000496e: PUSH2 0x49a0 00004971: PUSH13 0xffffffffffffffffffffffffff 0000497f: PUSH1 0x80 00004981: DUP13 00004982: ADD 00004983: MLOAD 00004984: AND 00004985: SWAP2 00004986: PUSH14 0xffffffffffffffffffffffffffff 00004995: PUSH2 0x0180 00004998: DUP14 00004999: ADD 0000499a: MLOAD 0000499b: AND 0000499c: PUSH2 0x529f 0000499f: JUMP 000049a0: JUMPDEST 000049a1: SWAP1 000049a2: PUSH2 0x529f 000049a5: JUMP 000049a6: JUMPDEST 000049a7: PUSH1 0x40 000049a9: DUP10 000049aa: ADD 000049ab: PUSH16 0xffffffffffffffffffffffffffffffff 000049bc: SWAP1 000049bd: DUP2 000049be: DUP2 000049bf: MLOAD 000049c0: AND 000049c1: SWAP2 000049c2: DUP4 000049c3: DUP4 000049c4: ADD 000049c5: DUP1 000049c6: SWAP4 000049c7: GT 000049c8: PUSH2 0x0b38 000049cb: JUMPI 000049cc: PUSH2 0x49d9 000049cf: SWAP1 000049d0: DUP4 000049d1: AND 000049d2: DUP1 000049d3: SWAP4 000049d4: EQ 000049d5: PUSH2 0x51b6 000049d8: JUMP 000049d9: JUMPDEST 000049da: MSTORE 000049db: SWAP6 000049dc: DUP10 000049dd: PUSH0 000049de: PUSH2 0x48ca 000049e1: JUMP 000049e2: JUMPDEST 000049e3: PUSH2 0x4a10 000049e6: PUSH13 0xffffffffffffffffffffffffff 000049f4: SWAP2 000049f5: PUSH2 0x42b0 000049f8: DUP4 000049f9: PUSH1 0xa0 000049fb: DUP7 000049fc: ADD 000049fd: MLOAD 000049fe: AND 000049ff: SWAP2 00004a00: DUP5 00004a01: PUSH1 0x20 00004a03: DUP2 00004a04: DUP4 00004a05: MLOAD 00004a06: AND 00004a07: SWAP3 00004a08: ADD 00004a09: MLOAD 00004a0a: AND 00004a0b: SWAP1 00004a0c: PUSH2 0x340b 00004a0f: JUMP 00004a10: JUMPDEST 00004a11: AND 00004a12: SWAP1 00004a13: PUSH16 0xffffffffffffffffffffffffffffffff 00004a24: SWAP1 00004a25: PUSH2 0x4a4b 00004a28: DUP3 00004a29: PUSH1 0x60 00004a2b: DUP4 00004a2c: ADD 00004a2d: MLOAD 00004a2e: AND 00004a2f: SWAP4 00004a30: PUSH14 0xffffffffffffffffffffffffffff 00004a3f: PUSH2 0x0180 00004a42: DUP5 00004a43: ADD 00004a44: MLOAD 00004a45: AND 00004a46: SWAP1 00004a47: PUSH2 0x529f 00004a4a: JUMP 00004a4b: JUMPDEST 00004a4c: DUP4 00004a4d: ADD 00004a4e: DUP1 00004a4f: SWAP4 00004a50: GT 00004a51: PUSH2 0x0b38 00004a54: JUMPI 00004a55: PUSH1 0x40 00004a57: ADD 00004a58: MLOAD 00004a59: AND 00004a5a: DUP2 00004a5b: ADD 00004a5c: DUP1 00004a5d: SWAP2 00004a5e: GT 00004a5f: PUSH2 0x0b38 00004a62: JUMPI 00004a63: DUP1 00004a64: DUP3 00004a65: SUB 00004a66: SWAP2 00004a67: GT 00004a68: MUL 00004a69: SWAP1 00004a6a: JUMP 00004a6b: JUMPDEST 00004a6c: DUP1 00004a6d: MLOAD 00004a6e: PUSH13 0xffffffffffffffffffffffffff 00004a7c: AND 00004a7d: SWAP1 00004a7e: PUSH2 0x4aad 00004a81: PUSH1 0x20 00004a83: DUP3 00004a84: ADD 00004a85: SWAP3 00004a86: PUSH13 0xffffffffffffffffffffffffff 00004a94: SWAP2 00004a95: DUP3 00004a96: SWAP2 00004a97: PUSH2 0x42b0 00004a9a: DUP7 00004a9b: MLOAD 00004a9c: PUSH13 0xffffffffffffffffffffffffff 00004aaa: AND 00004aab: SWAP1 00004aac: JUMP 00004aad: JUMPDEST 00004aae: AND 00004aaf: DUP1 00004ab0: ISZERO 00004ab1: PUSH2 0x4c27 00004ab4: JUMPI 00004ab5: PUSH2 0x0180 00004ab8: DUP6 00004ab9: ADD 00004aba: SWAP6 00004abb: DUP7 00004abc: MLOAD 00004abd: PUSH2 0x4ad3 00004ac0: SWAP1 00004ac1: PUSH14 0xffffffffffffffffffffffffffff 00004ad0: AND 00004ad1: SWAP1 00004ad2: JUMP 00004ad3: JUMPDEST 00004ad4: PUSH14 0xffffffffffffffffffffffffffff 00004ae3: AND 00004ae4: PUSH2 0x4aec 00004ae7: SWAP2 00004ae8: PUSH2 0x51cf 00004aeb: JUMP 00004aec: JUMPDEST 00004aed: DUP2 00004aee: DUP2 00004aef: LT 00004af0: SWAP1 00004af1: DUP3 00004af2: SWAP1 00004af3: SUB 00004af4: MUL 00004af5: ADD 00004af6: PUSH2 0x4afe 00004af9: SWAP1 00004afa: PUSH2 0x3b26 00004afd: JUMP 00004afe: JUMPDEST 00004aff: SWAP5 00004b00: MLOAD 00004b01: PUSH2 0x4b1e 00004b04: SWAP2 00004b05: PUSH14 0xffffffffffffffffffffffffffff 00004b14: SWAP1 00004b15: SWAP2 00004b16: AND 00004b17: SWAP1 00004b18: DUP7 00004b19: AND 00004b1a: PUSH2 0x2e57 00004b1d: JUMP 00004b1e: JUMPDEST 00004b1f: PUSH2 0x4b27 00004b22: SWAP1 00004b23: PUSH2 0x393f 00004b26: JUMP 00004b27: JUMPDEST 00004b28: SWAP2 00004b29: DUP5 00004b2a: DUP2 00004b2b: MLOAD 00004b2c: PUSH2 0x4b41 00004b2f: SWAP1 00004b30: PUSH13 0xffffffffffffffffffffffffff 00004b3e: AND 00004b3f: SWAP1 00004b40: JUMP 00004b41: JUMPDEST 00004b42: SWAP1 00004b43: PUSH2 0x4b4b 00004b46: SWAP2 00004b47: PUSH2 0x3476 00004b4a: JUMP 00004b4b: JUMPDEST 00004b4c: PUSH13 0xffffffffffffffffffffffffff 00004b5a: AND 00004b5b: SWAP1 00004b5c: MSTORE 00004b5d: PUSH1 0x40 00004b5f: ADD 00004b60: DUP1 00004b61: MLOAD 00004b62: PUSH2 0x4b7e 00004b65: SWAP1 00004b66: DUP4 00004b67: SWAP1 00004b68: PUSH16 0xffffffffffffffffffffffffffffffff 00004b79: AND 00004b7a: PUSH2 0x29a8 00004b7d: JUMP 00004b7e: JUMPDEST 00004b7f: PUSH16 0xffffffffffffffffffffffffffffffff 00004b90: AND 00004b91: SWAP1 00004b92: MSTORE 00004b93: PUSH1 0xa0 00004b95: DUP3 00004b96: ADD 00004b97: DUP1 00004b98: MLOAD 00004b99: PUSH2 0x4bb2 00004b9c: SWAP1 00004b9d: DUP6 00004b9e: SWAP1 00004b9f: PUSH13 0xffffffffffffffffffffffffff 00004bad: AND 00004bae: PUSH2 0x340b 00004bb1: JUMP 00004bb2: JUMPDEST 00004bb3: PUSH13 0xffffffffffffffffffffffffff 00004bc1: AND 00004bc2: SWAP1 00004bc3: MSTORE 00004bc4: PUSH1 0x60 00004bc6: DUP3 00004bc7: ADD 00004bc8: SWAP1 00004bc9: DUP2 00004bca: MLOAD 00004bcb: PUSH2 0x4be3 00004bce: SWAP1 00004bcf: PUSH16 0xffffffffffffffffffffffffffffffff 00004be0: AND 00004be1: SWAP1 00004be2: JUMP 00004be3: JUMPDEST 00004be4: SWAP1 00004be5: PUSH2 0x4bed 00004be8: SWAP2 00004be9: PUSH2 0x29a8 00004bec: JUMP 00004bed: JUMPDEST 00004bee: PUSH16 0xffffffffffffffffffffffffffffffff 00004bff: AND 00004c00: SWAP1 00004c01: MSTORE 00004c02: PUSH1 0x80 00004c04: ADD 00004c05: SWAP1 00004c06: DUP2 00004c07: MLOAD 00004c08: PUSH2 0x4c1d 00004c0b: SWAP1 00004c0c: PUSH13 0xffffffffffffffffffffffffff 00004c1a: AND 00004c1b: SWAP1 00004c1c: JUMP 00004c1d: JUMPDEST 00004c1e: SWAP1 00004c1f: PUSH2 0x3d31 00004c22: SWAP2 00004c23: PUSH2 0x340b 00004c26: JUMP 00004c27: JUMPDEST 00004c28: POP 00004c29: POP 00004c2a: POP 00004c2b: POP 00004c2c: POP 00004c2d: POP 00004c2e: JUMP 00004c2f: JUMPDEST 00004c30: SWAP1 00004c31: DUP2 00004c32: SWAP1 00004c33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004c48: PUSH32 0x1777adabd324f814e2b0e28f6edf876dce01d7d66358c9acfe87b1b5f38338d5 00004c69: SLOAD 00004c6a: AND 00004c6b: SWAP2 00004c6c: DUP3 00004c6d: PUSH1 0x60 00004c6f: DUP6 00004c70: ADD 00004c71: MSTORE 00004c72: DUP3 00004c73: ISZERO 00004c74: PUSH2 0x4d0c 00004c77: JUMPI 00004c78: POP 00004c79: PUSH1 0x40 00004c7b: MLOAD 00004c7c: SWAP1 00004c7d: PUSH4 0x8925ca5a 00004c82: DUP3 00004c83: MSTORE 00004c84: PUSH1 0x40 00004c86: PUSH0 00004c87: PUSH1 0x20 00004c89: SWAP5 00004c8a: DUP4 00004c8b: DUP7 00004c8c: DUP7 00004c8d: ADD 00004c8e: MSTORE 00004c8f: CALLER 00004c90: DUP4 00004c91: DUP7 00004c92: ADD 00004c93: MSTORE 00004c94: PUSH1 0x60 00004c96: DUP1 00004c97: DUP7 00004c98: ADD 00004c99: MSTORE 00004c9a: CALLDATASIZE 00004c9b: PUSH1 0x80 00004c9d: DUP7 00004c9e: ADD 00004c9f: MSTORE 00004ca0: CALLDATASIZE 00004ca1: DUP3 00004ca2: PUSH1 0xa0 00004ca4: DUP8 00004ca5: ADD 00004ca6: CALLDATACOPY 00004ca7: CALLDATASIZE 00004ca8: PUSH1 0xc4 00004caa: ADD 00004cab: SWAP1 00004cac: DUP3 00004cad: PUSH1 0x1c 00004caf: DUP8 00004cb0: ADD 00004cb1: SWAP2 00004cb2: GAS 00004cb3: CALL 00004cb4: DUP4 00004cb5: PUSH0 00004cb6: MLOAD 00004cb7: EQ 00004cb8: AND 00004cb9: ISZERO 00004cba: PUSH2 0x0ebc 00004cbd: JUMPI 00004cbe: PUSH1 0x80 00004cc0: DUP4 00004cc1: PUSH2 0x055b 00004cc4: SWAP5 00004cc5: MLOAD 00004cc6: PUSH1 0x05 00004cc8: SHL 00004cc9: DUP1 00004cca: SWAP5 00004ccb: PUSH1 0xe0 00004ccd: PUSH1 0x03 00004ccf: DUP4 00004cd0: MUL 00004cd1: DUP3 00004cd2: ADD 00004cd3: ADD 00004cd4: PUSH1 0x40 00004cd6: MSTORE 00004cd7: DUP3 00004cd8: DUP3 00004cd9: ADD 00004cda: DUP4 00004cdb: DUP3 00004cdc: RETURNDATACOPY 00004cdd: DUP1 00004cde: DUP9 00004cdf: MSTORE 00004ce0: ADD 00004ce1: SWAP3 00004ce2: PUSH0 00004ce3: SUB 00004ce4: DUP2 00004ce5: DUP5 00004ce6: ADD 00004ce7: MSTORE 00004ce8: DUP2 00004ce9: PUSH1 0x60 00004ceb: DUP5 00004cec: ADD 00004ced: MSTORE 00004cee: DUP6 00004cef: ADD 00004cf0: SWAP3 00004cf1: PUSH1 0xa0 00004cf3: DUP4 00004cf4: ADD 00004cf5: DUP5 00004cf6: MSTORE 00004cf7: PUSH1 0xa0 00004cf9: ADD 00004cfa: SWAP2 00004cfb: ADD 00004cfc: MSTORE 00004cfd: GAS 00004cfe: PUSH1 0x40 00004d00: DUP5 00004d01: ADD 00004d02: MSTORE 00004d03: DUP3 00004d04: MLOAD 00004d05: SWAP1 00004d06: MLOAD 00004d07: SWAP1 00004d08: PUSH2 0x5481 00004d0b: JUMP 00004d0c: JUMPDEST 00004d0d: SWAP4 00004d0e: SWAP3 00004d0f: POP 00004d10: POP 00004d11: POP 00004d12: JUMP 00004d13: JUMPDEST 00004d14: PUSH1 0x60 00004d16: DUP2 00004d17: ADD 00004d18: SWAP1 00004d19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004d2e: DUP3 00004d2f: MLOAD 00004d30: AND 00004d31: ISZERO 00004d32: PUSH2 0x30a2 00004d35: JUMPI 00004d36: PUSH0 00004d37: DUP1 00004d38: DUP3 00004d39: MLOAD 00004d3a: DUP1 00004d3b: MLOAD 00004d3c: SWAP1 00004d3d: DUP2 00004d3e: PUSH1 0x06 00004d40: SHL 00004d41: SWAP6 00004d42: PUSH2 0x4d50 00004d45: PUSH1 0xc0 00004d47: DUP9 00004d48: DUP5 00004d49: ADD 00004d4a: ADD 00004d4b: DUP4 00004d4c: PUSH2 0x5481 00004d4f: JUMP 00004d50: JUMPDEST 00004d51: MLOAD 00004d52: SWAP2 00004d53: PUSH1 0x05 00004d55: SHL 00004d56: ADD 00004d57: SWAP4 00004d58: PUSH1 0x40 00004d5a: GAS 00004d5b: SWAP2 00004d5c: ADD 00004d5d: MLOAD 00004d5e: SUB 00004d5f: PUSH1 0x40 00004d61: DUP6 00004d62: ADD 00004d63: MSTORE 00004d64: DUP4 00004d65: MLOAD 00004d66: SWAP5 00004d67: PUSH4 0xf0bd9468 00004d6c: DUP6 00004d6d: MSTORE 00004d6e: PUSH1 0xc4 00004d70: ADD 00004d71: SWAP1 00004d72: DUP3 00004d73: PUSH1 0x1c 00004d75: DUP7 00004d76: ADD 00004d77: SWAP2 00004d78: GAS 00004d79: CALL 00004d7a: ISZERO 00004d7b: PUSH2 0x0ebc 00004d7e: JUMPI 00004d7f: MSTORE 00004d80: JUMP 00004d81: JUMPDEST 00004d82: SWAP3 00004d83: PUSH32 0x18247a393d0531b65fbd94f5e78bc5639801a4efda62ae7b43533c4442116c3a 00004da4: SWAP6 00004da5: SWAP3 00004da6: PUSH1 0xc0 00004da8: SWAP6 00004da9: SWAP3 00004daa: PUSH1 0x40 00004dac: MLOAD 00004dad: SWAP6 00004dae: DUP7 00004daf: MSTORE 00004db0: PUSH1 0x20 00004db2: DUP7 00004db3: ADD 00004db4: MSTORE 00004db5: PUSH1 0x40 00004db7: DUP6 00004db8: ADD 00004db9: MSTORE 00004dba: PUSH1 0x60 00004dbc: DUP5 00004dbd: ADD 00004dbe: MSTORE 00004dbf: PUSH1 0x80 00004dc1: DUP4 00004dc2: ADD 00004dc3: MSTORE 00004dc4: PUSH1 0xa0 00004dc6: DUP3 00004dc7: ADD 00004dc8: MSTORE 00004dc9: LOG1 00004dca: JUMP 00004dcb: JUMPDEST 00004dcc: PUSH2 0x2985 00004dcf: SWAP1 00004dd0: PUSH2 0x1f8f 00004dd3: PUSH1 0xc0 00004dd5: DUP3 00004dd6: ADD 00004dd7: PUSH0 00004dd8: PUSH2 0x4de5 00004ddb: DUP3 00004ddc: MLOAD 00004ddd: PUSH4 0xffffffff 00004de2: AND 00004de3: SWAP1 00004de4: JUMP 00004de5: JUMPDEST 00004de6: SWAP2 00004de7: PUSH2 0x4e01 00004dea: PUSH2 0x07b9 00004ded: DUP5 00004dee: PUSH4 0xffffffff 00004df3: AND 00004df4: PUSH0 00004df5: MSTORE 00004df6: PUSH1 0x07 00004df8: PUSH1 0x20 00004dfa: MSTORE 00004dfb: PUSH1 0x40 00004dfd: PUSH0 00004dfe: KECCAK256 00004dff: SWAP1 00004e00: JUMP 00004e01: JUMPDEST 00004e02: SWAP5 00004e03: PUSH1 0x20 00004e05: DUP7 00004e06: ADD 00004e07: SWAP1 00004e08: PUSH2 0x4e1e 00004e0b: DUP3 00004e0c: MLOAD 00004e0d: PUSH13 0xffffffffffffffffffffffffff 00004e1b: AND 00004e1c: SWAP1 00004e1d: JUMP 00004e1e: JUMPDEST 00004e1f: SWAP1 00004e20: PUSH2 0x4e39 00004e23: PUSH2 0x1e72 00004e26: DUP10 00004e27: MLOAD 00004e28: PUSH13 0xffffffffffffffffffffffffff 00004e36: AND 00004e37: SWAP1 00004e38: JUMP 00004e39: JUMPDEST 00004e3a: PUSH13 0xffffffffffffffffffffffffff 00004e48: DUP1 00004e49: SWAP4 00004e4a: AND 00004e4b: LT 00004e4c: PUSH2 0x4f17 00004e4f: JUMPI 00004e50: JUMPDEST 00004e51: POP 00004e52: PUSH2 0x4ec6 00004e55: PUSH2 0x4e6b 00004e58: DUP9 00004e59: MLOAD 00004e5a: PUSH13 0xffffffffffffffffffffffffff 00004e68: AND 00004e69: SWAP1 00004e6a: JUMP 00004e6b: JUMPDEST 00004e6c: SWAP3 00004e6d: PUSH2 0x4eb3 00004e70: PUSH2 0x4e86 00004e73: DUP3 00004e74: MLOAD 00004e75: PUSH13 0xffffffffffffffffffffffffff 00004e83: AND 00004e84: SWAP1 00004e85: JUMP 00004e86: JUMPDEST 00004e87: PUSH1 0x40 00004e89: DUP12 00004e8a: ADD 00004e8b: MLOAD 00004e8c: PUSH4 0xffffffff 00004e91: DUP11 00004e92: AND 00004e93: SWAP7 00004e94: PUSH16 0xffffffffffffffffffffffffffffffff 00004ea5: SWAP1 00004ea6: SWAP2 00004ea7: AND 00004ea8: SWAP2 00004ea9: DUP7 00004eaa: AND 00004eab: SWAP1 00004eac: DUP7 00004ead: AND 00004eae: DUP8 00004eaf: PUSH2 0x4477 00004eb2: JUMP 00004eb3: JUMPDEST 00004eb4: MLOAD 00004eb5: PUSH13 0xffffffffffffffffffffffffff 00004ec3: AND 00004ec4: SWAP1 00004ec5: JUMP 00004ec6: JUMPDEST 00004ec7: SWAP1 00004ec8: PUSH2 0x4ee1 00004ecb: PUSH2 0x1e72 00004ece: DUP10 00004ecf: MLOAD 00004ed0: PUSH13 0xffffffffffffffffffffffffff 00004ede: AND 00004edf: SWAP1 00004ee0: JUMP 00004ee1: JUMPDEST 00004ee2: SWAP2 00004ee3: AND 00004ee4: LT 00004ee5: DUP4 00004ee6: EQ 00004ee7: PUSH2 0x4f09 00004eea: JUMPI 00004eeb: POP 00004eec: PUSH2 0x4ef4 00004eef: DUP4 00004ef0: PUSH2 0x54b9 00004ef3: JUMP 00004ef4: JUMPDEST 00004ef5: MSTORE 00004ef6: PUSH4 0xffffffff 00004efb: AND 00004efc: PUSH0 00004efd: MSTORE 00004efe: PUSH1 0x07 00004f00: PUSH1 0x20 00004f02: MSTORE 00004f03: PUSH1 0x40 00004f05: PUSH0 00004f06: KECCAK256 00004f07: SWAP1 00004f08: JUMP 00004f09: JUMPDEST 00004f0a: PUSH2 0x4f12 00004f0d: SWAP1 00004f0e: PUSH2 0x44b1 00004f11: JUMP 00004f12: JUMPDEST 00004f13: PUSH2 0x4ef4 00004f16: JUMP 00004f17: JUMPDEST 00004f18: PUSH2 0x4f29 00004f1b: PUSH2 0x4f22 00004f1e: PUSH2 0x2603 00004f21: JUMP 00004f22: JUMPDEST 00004f23: DUP3 00004f24: DUP11 00004f25: PUSH2 0x49e2 00004f28: JUMP 00004f29: JUMPDEST 00004f2a: DUP7 00004f2b: DUP2 00004f2c: PUSH2 0x4f37 00004f2f: JUMPI 00004f30: JUMPDEST 00004f31: POP 00004f32: POP 00004f33: PUSH2 0x4e50 00004f36: JUMP 00004f37: JUMPDEST 00004f38: PUSH2 0x4f41 00004f3b: SWAP3 00004f3c: DUP11 00004f3d: PUSH2 0x4264 00004f40: JUMP 00004f41: JUMPDEST 00004f42: DUP7 00004f43: PUSH2 0x4f30 00004f46: JUMP 00004f47: JUMPDEST 00004f48: PUSH0 00004f49: MSTORE 00004f4a: PUSH1 0x20 00004f4c: MSTORE 00004f4d: PUSH32 0x9385f9ff65bcd2fb81cece54b27d4ec7376795fc4dcff686e370e347b0ed86c0 00004f6e: PUSH1 0x40 00004f70: PUSH0 00004f71: LOG1 00004f72: JUMP 00004f73: JUMPDEST 00004f74: SWAP1 00004f75: SWAP2 00004f76: SWAP4 00004f77: SWAP3 00004f78: SWAP4 00004f79: PUSH1 0x01 00004f7b: DUP3 00004f7c: PUSH1 0x5c 00004f7e: SHR 00004f7f: AND 00004f80: PUSH2 0x4f8b 00004f83: JUMPI 00004f84: JUMPDEST 00004f85: POP 00004f86: POP 00004f87: POP 00004f88: POP 00004f89: POP 00004f8a: JUMP 00004f8b: JUMPDEST 00004f8c: PUSH2 0x01c0 00004f8f: PUSH0 00004f90: SWAP6 00004f91: SWAP5 00004f92: DUP7 00004f93: SWAP6 00004f94: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc 00004fb5: CALLDATASIZE 00004fb6: ADD 00004fb7: SWAP4 00004fb8: PUSH1 0x40 00004fba: MLOAD 00004fbb: SWAP7 00004fbc: PUSH4 0xa018f90e 00004fc1: DUP9 00004fc2: MSTORE 00004fc3: CALLER 00004fc4: PUSH1 0x20 00004fc6: DUP10 00004fc7: ADD 00004fc8: MSTORE 00004fc9: PUSH1 0x40 00004fcb: DUP9 00004fcc: ADD 00004fcd: MSTORE 00004fce: PUSH1 0x60 00004fd0: DUP8 00004fd1: ADD 00004fd2: MSTORE 00004fd3: PUSH1 0x80 00004fd5: DUP7 00004fd6: ADD 00004fd7: MSTORE 00004fd8: PUSH1 0xa0 00004fda: DUP6 00004fdb: ADD 00004fdc: MCOPY 00004fdd: PUSH2 0x0260 00004fe0: DUP1 00004fe1: DUP5 00004fe2: ADD 00004fe3: MSTORE 00004fe4: DUP1 00004fe5: PUSH2 0x0280 00004fe8: DUP5 00004fe9: ADD 00004fea: MSTORE 00004feb: PUSH1 0x44 00004fed: PUSH2 0x02a0 00004ff0: DUP5 00004ff1: ADD 00004ff2: CALLDATACOPY 00004ff3: DUP3 00004ff4: PUSH1 0x1c 00004ff6: PUSH2 0x0240 00004ff9: CALLDATASIZE 00004ffa: ADD 00004ffb: SWAP4 00004ffc: ADD 00004ffd: SWAP2 00004ffe: PUSH1 0x60 00005000: SHR 00005001: GAS 00005002: CALL 00005003: ISZERO 00005004: PUSH2 0x0ebc 00005007: JUMPI 00005008: PUSH0 00005009: DUP1 0000500a: DUP1 0000500b: DUP1 0000500c: DUP1 0000500d: PUSH2 0x4f84 00005010: JUMP 00005011: JUMPDEST 00005012: SWAP1 00005013: SWAP2 00005014: PUSH0 00005015: MSTORE 00005016: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00005037: PUSH1 0x20 00005039: PUSH0 0000503a: LOG3 0000503b: JUMP 0000503c: JUMPDEST 0000503d: PUSH4 0x186334fe 00005042: PUSH0 00005043: MSTORE 00005044: PUSH1 0x04 00005046: PUSH1 0x1c 00005048: REVERT 00005049: JUMPDEST 0000504a: SWAP1 0000504b: SWAP2 0000504c: PUSH1 0x01 0000504e: DUP3 0000504f: PUSH1 0x5d 00005051: SHR 00005052: AND 00005053: PUSH2 0x505d 00005056: JUMPI 00005057: POP 00005058: POP 00005059: POP 0000505a: POP 0000505b: POP 0000505c: JUMP 0000505d: JUMPDEST 0000505e: PUSH1 0x1c 00005060: PUSH0 00005061: SWAP6 00005062: SWAP5 00005063: DUP7 00005064: SWAP6 00005065: SWAP3 00005066: DUP4 00005067: PUSH2 0x01c0 0000506a: DUP9 0000506b: SWAP6 0000506c: CALLDATASIZE 0000506d: SUB 0000506e: SWAP4 0000506f: DUP5 00005070: SWAP4 00005071: PUSH1 0x40 00005073: MLOAD 00005074: SWAP10 00005075: PUSH4 0x2970403d 0000507a: DUP12 0000507b: MSTORE 0000507c: PUSH1 0x20 0000507e: DUP12 0000507f: ADD 00005080: MSTORE 00005081: PUSH1 0x40 00005083: DUP11 00005084: ADD 00005085: MSTORE 00005086: PUSH1 0x60 00005088: DUP10 00005089: ADD 0000508a: MCOPY 0000508b: PUSH2 0x0220 0000508e: DUP1 0000508f: DUP9 00005090: ADD 00005091: MSTORE 00005092: DUP2 00005093: PUSH2 0x0240 00005096: DUP9 00005097: ADD 00005098: MSTORE 00005099: PUSH2 0x0260 0000509c: DUP8 0000509d: ADD 0000509e: CALLDATACOPY 0000509f: PUSH2 0x0244 000050a2: ADD 000050a3: SWAP4 000050a4: ADD 000050a5: SWAP2 000050a6: PUSH1 0x60 000050a8: SHR 000050a9: GAS 000050aa: CALL 000050ab: ISZERO 000050ac: PUSH2 0x0ebc 000050af: JUMPI 000050b0: PUSH0 000050b1: DUP1 000050b2: DUP1 000050b3: DUP1 000050b4: DUP1 000050b5: PUSH2 0x4f84 000050b8: JUMP 000050b9: JUMPDEST 000050ba: SWAP1 000050bb: PUSH1 0x40 000050bd: MLOAD 000050be: SWAP2 000050bf: PUSH4 0xa1054f6b 000050c4: PUSH0 000050c5: MSTORE 000050c6: PUSH32 0x000000000000000000000000f783818e62d9793f119a3a9656cbdab93ff3e993 000050e7: PUSH1 0x20 000050e9: MSTORE 000050ea: PUSH1 0x40 000050ec: MSTORE 000050ed: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0000510e: PUSH1 0x60 00005110: MSTORE 00005111: PUSH1 0x20 00005113: PUSH0 00005114: PUSH1 0x64 00005116: PUSH1 0x1c 00005118: DUP3 00005119: PUSH32 0x000000000000000000000000437e0551892c2c9b06d3ffd248fe60572e08cd1a 0000513a: GAS 0000513b: CALL 0000513c: PUSH1 0x20 0000513e: RETURNDATASIZE 0000513f: EQ 00005140: AND 00005141: ISZERO 00005142: PUSH2 0x0ebc 00005145: JUMPI 00005146: PUSH0 00005147: MLOAD 00005148: SWAP2 00005149: PUSH1 0x40 0000514b: MSTORE 0000514c: PUSH0 0000514d: PUSH1 0x60 0000514f: MSTORE 00005150: JUMP 00005151: JUMPDEST 00005152: SWAP2 00005153: SWAP3 00005154: SWAP1 00005155: SWAP3 00005156: PUSH1 0x40 00005158: MLOAD 00005159: SWAP4 0000515a: PUSH0 0000515b: MSTORE 0000515c: PUSH1 0x20 0000515e: MSTORE 0000515f: PUSH1 0x40 00005161: MSTORE 00005162: PUSH32 0x0d0843a0fcb8b83f625aafb6e42f234ac48c6728b207d52d97cfa8fbd34d498f 00005183: PUSH1 0x60 00005185: PUSH0 00005186: LOG2 00005187: PUSH1 0x40 00005189: MSTORE 0000518a: JUMP 0000518b: JUMPDEST 0000518c: SWAP1 0000518d: SWAP2 0000518e: PUSH0 0000518f: MSTORE 00005190: PUSH32 0xd6cddb3d69146e96ebc2c87b1b3dd0b20ee2d3b0eadf134e011afb434a3e56e6 000051b1: PUSH1 0x20 000051b3: PUSH0 000051b4: LOG3 000051b5: JUMP 000051b6: JUMPDEST 000051b7: ISZERO 000051b8: PUSH2 0x51bd 000051bb: JUMPI 000051bc: JUMP 000051bd: JUMPDEST 000051be: PUSH4 0x4e487b71 000051c3: PUSH0 000051c4: MSTORE 000051c5: PUSH1 0x11 000051c7: PUSH1 0x20 000051c9: MSTORE 000051ca: PUSH1 0x24 000051cc: PUSH1 0x1c 000051ce: REVERT 000051cf: JUMPDEST 000051d0: DUP2 000051d1: PUSH1 0x01 000051d3: SHR 000051d4: SWAP1 000051d5: PUSH12 0x033b2e3c9fd0803ce8000000 000051e2: SWAP1 000051e3: DUP2 000051e4: DUP4 000051e5: NOT 000051e6: DIV 000051e7: DUP2 000051e8: GT 000051e9: DUP5 000051ea: ISZERO 000051eb: OR 000051ec: PUSH2 0x51bd 000051ef: JUMPI 000051f0: MUL 000051f1: ADD 000051f2: DIV 000051f3: SWAP1 000051f4: JUMP 000051f5: JUMPDEST 000051f6: SWAP2 000051f7: SWAP4 000051f8: SWAP5 000051f9: SWAP1 000051fa: SWAP3 000051fb: SWAP5 000051fc: PUSH1 0x01 000051fe: DUP4 000051ff: PUSH1 0x5e 00005201: SHR 00005202: AND 00005203: PUSH2 0x520e 00005206: JUMPI 00005207: POP 00005208: POP 00005209: POP 0000520a: POP 0000520b: POP 0000520c: POP 0000520d: JUMP 0000520e: JUMPDEST 0000520f: PUSH0 00005210: SWAP6 00005211: DUP7 00005212: SWAP6 00005213: DUP4 00005214: PUSH2 0x01c0 00005217: PUSH1 0x1c 00005219: SWAP5 0000521a: DUP10 0000521b: SWAP7 0000521c: CALLDATASIZE 0000521d: SUB 0000521e: SWAP5 0000521f: DUP6 00005220: SWAP5 00005221: PUSH1 0x40 00005223: MLOAD 00005224: SWAP11 00005225: PUSH4 0x3521cccc 0000522a: DUP13 0000522b: MSTORE 0000522c: PUSH1 0x20 0000522e: DUP13 0000522f: ADD 00005230: MSTORE 00005231: PUSH1 0x40 00005233: DUP12 00005234: ADD 00005235: MSTORE 00005236: PUSH1 0x60 00005238: DUP11 00005239: ADD 0000523a: MSTORE 0000523b: PUSH1 0x80 0000523d: DUP10 0000523e: ADD 0000523f: MCOPY 00005240: PUSH2 0x0240 00005243: DUP1 00005244: DUP9 00005245: ADD 00005246: MSTORE 00005247: DUP2 00005248: PUSH2 0x0260 0000524b: DUP9 0000524c: ADD 0000524d: MSTORE 0000524e: PUSH2 0x0280 00005251: DUP8 00005252: ADD 00005253: CALLDATACOPY 00005254: PUSH2 0x0264 00005257: ADD 00005258: SWAP4 00005259: ADD 0000525a: SWAP2 0000525b: PUSH1 0x60 0000525d: SHR 0000525e: GAS 0000525f: CALL 00005260: ISZERO 00005261: PUSH2 0x0ebc 00005264: JUMPI 00005265: PUSH0 00005266: DUP1 00005267: DUP1 00005268: DUP1 00005269: DUP1 0000526a: DUP1 0000526b: PUSH2 0x4c27 0000526e: JUMP 0000526f: JUMPDEST 00005270: SWAP2 00005271: SWAP3 00005272: SWAP1 00005273: SWAP3 00005274: PUSH0 00005275: MSTORE 00005276: PUSH1 0x20 00005278: MSTORE 00005279: PUSH32 0xecc966b282a372469fa4d3e497c2ac17983c3eaed03f3f17c9acf4b15591663e 0000529a: PUSH1 0x40 0000529c: PUSH0 0000529d: LOG3 0000529e: JUMP 0000529f: JUMPDEST 000052a0: DUP2 000052a1: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffe6268e1b017bfe18bffffff 000052c2: DIV 000052c3: DUP2 000052c4: GT 000052c5: ISZERO 000052c6: DUP3 000052c7: ISZERO 000052c8: OR 000052c9: ISZERO 000052ca: PUSH2 0x51bd 000052cd: JUMPI 000052ce: PUSH12 0x033b2e3c9fd0803ce8000000 000052db: SWAP2 000052dc: MUL 000052dd: PUSH12 0x019d971e4fe8401e74000000 000052ea: ADD 000052eb: DIV 000052ec: SWAP1 000052ed: JUMP 000052ee: JUMPDEST 000052ef: DUP2 000052f0: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec77 00005311: DIV 00005312: DUP2 00005313: GT 00005314: ISZERO 00005315: DUP3 00005316: ISZERO 00005317: OR 00005318: ISZERO 00005319: PUSH2 0x51bd 0000531c: JUMPI 0000531d: PUSH2 0x2710 00005320: SWAP2 00005321: MUL 00005322: PUSH2 0x1388 00005325: ADD 00005326: DIV 00005327: SWAP1 00005328: JUMP 00005329: JUMPDEST 0000532a: PUSH4 0x22d7c043 0000532f: PUSH0 00005330: MSTORE 00005331: PUSH1 0x04 00005333: PUSH1 0x1c 00005335: REVERT 00005336: JUMPDEST 00005337: PUSH4 0xe4aa5055 0000533c: PUSH0 0000533d: MSTORE 0000533e: PUSH1 0x04 00005340: PUSH1 0x1c 00005342: REVERT 00005343: JUMPDEST 00005344: SWAP3 00005345: SWAP2 00005346: SWAP3 00005347: PUSH1 0x01 00005349: DUP2 0000534a: PUSH1 0x5f 0000534c: SHR 0000534d: AND 0000534e: PUSH2 0x5357 00005351: JUMPI 00005352: POP 00005353: POP 00005354: POP 00005355: POP 00005356: JUMP 00005357: JUMPDEST 00005358: PUSH0 00005359: PUSH1 0x1c 0000535b: DUP2 0000535c: SWAP6 0000535d: PUSH2 0x01c0 00005360: DUP4 00005361: SWAP7 00005362: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc 00005383: CALLDATASIZE 00005384: ADD 00005385: SWAP3 00005386: PUSH1 0x40 00005388: MLOAD 00005389: SWAP8 0000538a: PUSH4 0x5aeb713f 0000538f: DUP10 00005390: MSTORE 00005391: PUSH1 0x20 00005393: DUP10 00005394: ADD 00005395: MSTORE 00005396: PUSH1 0x40 00005398: DUP9 00005399: ADD 0000539a: MSTORE 0000539b: PUSH1 0x60 0000539d: DUP8 0000539e: ADD 0000539f: MCOPY 000053a0: PUSH2 0x0220 000053a3: SWAP1 000053a4: DUP2 000053a5: DUP1 000053a6: DUP8 000053a7: ADD 000053a8: MSTORE 000053a9: DUP1 000053aa: PUSH2 0x0240 000053ad: DUP8 000053ae: ADD 000053af: MSTORE 000053b0: PUSH1 0x24 000053b2: PUSH2 0x0260 000053b5: DUP8 000053b6: ADD 000053b7: CALLDATACOPY 000053b8: CALLDATASIZE 000053b9: ADD 000053ba: SWAP4 000053bb: ADD 000053bc: SWAP2 000053bd: PUSH1 0x60 000053bf: SHR 000053c0: GAS 000053c1: CALL 000053c2: ISZERO 000053c3: PUSH2 0x0ebc 000053c6: JUMPI 000053c7: PUSH0 000053c8: DUP1 000053c9: DUP1 000053ca: DUP1 000053cb: PUSH2 0x38e5 000053ce: JUMP 000053cf: JUMPDEST 000053d0: SWAP2 000053d1: SWAP1 000053d2: PUSH0 000053d3: MSTORE 000053d4: PUSH1 0x20 000053d6: MSTORE 000053d7: PUSH32 0x90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15 000053f8: PUSH1 0x40 000053fa: PUSH0 000053fb: LOG2 000053fc: JUMP 000053fd: JUMPDEST 000053fe: SWAP2 000053ff: SWAP1 00005400: PUSH0 00005401: MSTORE 00005402: PUSH1 0x20 00005404: MSTORE 00005405: PUSH32 0x5272034725119f19d7236de4129fdb5093f0dcb80282ca5edbd587df91d2bd89 00005426: PUSH1 0x40 00005428: PUSH0 00005429: LOG2 0000542a: JUMP 0000542b: JUMPDEST 0000542c: SWAP1 0000542d: SWAP4 0000542e: SWAP3 0000542f: SWAP4 00005430: PUSH0 00005431: SWAP5 00005432: PUSH4 0xffffffff 00005437: PUSH2 0x01a0 0000543a: DUP5 0000543b: ADD 0000543c: MLOAD 0000543d: AND 0000543e: DUP3 0000543f: SUB 00005440: SWAP2 00005441: DUP3 00005442: GT 00005443: PUSH2 0x0b38 00005446: JUMPI 00005447: PUSH2 0x544f 0000544a: SWAP3 0000544b: PUSH2 0x5577 0000544e: JUMP 0000544f: JUMPDEST 00005450: SWAP1 00005451: DUP2 00005452: PUSH2 0x5459 00005455: JUMPI 00005456: POP 00005457: POP 00005458: JUMP 00005459: JUMPDEST 0000545a: PUSH2 0x055b 0000545d: SWAP3 0000545e: SWAP4 0000545f: POP 00005460: PUSH2 0x5545 00005463: JUMP 00005464: JUMPDEST 00005465: SWAP1 00005466: PUSH2 0x2985 00005469: PUSH14 0xffffffffffffffffffffffffffff 00005478: DUP4 00005479: AND 0000547a: DUP1 0000547b: SWAP4 0000547c: EQ 0000547d: PUSH2 0x51b6 00005480: JUMP 00005481: JUMPDEST 00005482: SWAP2 00005483: SWAP1 00005484: DUP3 00005485: MLOAD 00005486: SWAP1 00005487: DUP2 00005488: DUP2 00005489: MSTORE 0000548a: PUSH1 0x20 0000548c: DUP1 0000548d: DUP1 0000548e: SWAP6 0000548f: ADD 00005490: SWAP2 00005491: DUP2 00005492: DUP2 00005493: ADD 00005494: SWAP4 00005495: PUSH1 0x05 00005497: SHL 00005498: ADD 00005499: ADD 0000549a: SWAP2 0000549b: JUMPDEST 0000549c: DUP3 0000549d: DUP2 0000549e: LT 0000549f: PUSH2 0x54a9 000054a2: JUMPI 000054a3: POP 000054a4: POP 000054a5: POP 000054a6: SWAP1 000054a7: POP 000054a8: JUMP 000054a9: JUMPDEST 000054aa: DUP2 000054ab: MLOAD 000054ac: SLOAD 000054ad: DUP2 000054ae: MSTORE 000054af: SWAP1 000054b0: DUP5 000054b1: ADD 000054b2: SWAP1 000054b3: DUP5 000054b4: ADD 000054b5: PUSH2 0x549b 000054b8: JUMP 000054b9: JUMPDEST 000054ba: PUSH2 0x5503 000054bd: SWAP1 000054be: PUSH1 0x05 000054c0: SLOAD 000054c1: PUSH1 0x80 000054c3: SHR 000054c4: SWAP1 000054c5: DUP2 000054c6: PUSH0 000054c7: MSTORE 000054c8: PUSH1 0x06 000054ca: PUSH1 0x20 000054cc: MSTORE 000054cd: PUSH4 0xffffffff 000054d2: PUSH1 0x40 000054d4: PUSH0 000054d5: KECCAK256 000054d6: SWAP2 000054d7: AND 000054d8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 000054f9: DUP3 000054fa: SLOAD 000054fb: AND 000054fc: OR 000054fd: SWAP1 000054fe: SSTORE 000054ff: PUSH2 0x2987 00005502: JUMP 00005503: JUMPDEST 00005504: PUSH16 0xffffffffffffffffffffffffffffffff 00005515: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00005536: PUSH1 0x05 00005538: SLOAD 00005539: SWAP3 0000553a: PUSH1 0x80 0000553c: SHL 0000553d: AND 0000553e: SWAP2 0000553f: AND 00005540: OR 00005541: PUSH1 0x05 00005543: SSTORE 00005544: JUMP 00005545: JUMPDEST 00005546: PUSH10 0x152d02c7e14af6800000 00005551: DUP1 00005552: DUP3 00005553: MUL 00005554: SWAP2 00005555: DUP1 00005556: DUP3 00005557: DUP5 00005558: DIV 00005559: SUB 0000555a: PUSH2 0x51bd 0000555d: JUMPI 0000555e: DUP4 0000555f: MUL 00005560: MUL 00005561: SWAP2 00005562: DUP2 00005563: DUP4 00005564: DIV 00005565: EQ 00005566: SWAP1 00005567: ISZERO 00005568: OR 00005569: ISZERO 0000556a: PUSH2 0x0b38 0000556d: JUMPI 0000556e: PUSH4 0x01e13380 00005573: SWAP1 00005574: DIV 00005575: SWAP1 00005576: JUMP 00005577: JUMPDEST 00005578: SWAP1 00005579: PUSH2 0x0100 0000557c: DUP3 0000557d: ADD 0000557e: PUSH4 0xffffffff 00005583: SWAP1 00005584: PUSH1 0xe0 00005586: DUP3 00005587: DUP3 00005588: MLOAD 00005589: AND 0000558a: SWAP5 0000558b: ADD 0000558c: MLOAD 0000558d: PUSH2 0x55b7 00005590: JUMPI 00005591: PUSH2 0x55a5 00005594: DUP6 00005595: DUP6 00005596: SUB 00005597: DUP7 00005598: DUP7 00005599: GT 0000559a: MUL 0000559b: SWAP3 0000559c: DUP4 0000559d: AND 0000559e: DUP1 0000559f: SWAP4 000055a0: EQ 000055a1: PUSH2 0x51b6 000055a4: JUMP 000055a5: JUMPDEST 000055a6: MSTORE 000055a7: DUP1 000055a8: DUP3 000055a9: SUB 000055aa: SWAP2 000055ab: GT 000055ac: MUL 000055ad: DUP2 000055ae: DUP1 000055af: DUP3 000055b0: SUB 000055b1: SWAP2 000055b2: LT 000055b3: MUL 000055b4: ADD 000055b5: SWAP1 000055b6: JUMP 000055b7: JUMPDEST 000055b8: DUP5 000055b9: DUP5 000055ba: SWAP4 000055bb: SWAP5 000055bc: ADD 000055bd: SWAP2 000055be: DUP3 000055bf: DUP5 000055c0: GT 000055c1: PUSH2 0x0b38 000055c4: JUMPI 000055c5: PUSH2 0x55d2 000055c8: SWAP1 000055c9: DUP4 000055ca: AND 000055cb: DUP1 000055cc: SWAP4 000055cd: EQ 000055ce: PUSH2 0x51b6 000055d1: JUMP 000055d2: JUMPDEST 000055d3: MSTORE 000055d4: DUP1 000055d5: DUP3 000055d6: SUB 000055d7: SWAP2 000055d8: GT 000055d9: MUL 000055da: DUP1 000055db: DUP3 000055dc: SUB 000055dd: SWAP2 000055de: GT 000055df: MUL 000055e0: SWAP1 000055e1: JUMP 000055e2: INVALID 000055e3: LOG1 000055e4: PUSH5 0x736f6c6343 000055ea: STOP 000055eb: ADDMOD 000055ec: NOT 000055ed: STOP 000055ee: EXP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x70e41960e188769d50810858ab5a7f8a9963b70e8bf204514402bab99fca74f5
call_targets:
0xb3b823ec39f3edeb4354f76997031b3826b615c2
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x70e41960e188769d50810858ab5a7f8a9963b70e8bf204514402bab99fca74f5",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb3b823ec39f3edeb4354f76997031b3826b615c2"
],
"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": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02372c4f",
"selector": "0x02372c4f",
"calldata_variants": [
"0x02372c4f",
"0x02372c4f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x088fee5e",
"selector": "0x088fee5e",
"calldata_variants": [
"0x088fee5e",
"0x088fee5e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c1e3fea",
"selector": "0x0c1e3fea",
"calldata_variants": [
"0x0c1e3fea",
"0x0c1e3fea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c3f6acf",
"selector": "0x0c3f6acf",
"calldata_variants": [
"0x0c3f6acf",
"0x0c3f6acf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0cd1a5b6",
"selector": "0x0cd1a5b6",
"calldata_variants": [
"0x0cd1a5b6",
"0x0cd1a5b60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1223,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant_zero",
"target_expression_category": "computed"
},
{
"pc": 3761,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9156,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 19,
"guards_detected": [],
"untrusted_call_count": 17
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x70e41960e188769d50810858ab5a7f8a9963b70e8bf204514402bab99fca74f5
call_targets:
0xb3b823ec39f3edeb4354f76997031b3826b615c2
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x70e41960e188769d50810858ab5a7f8a9963b70e8bf204514402bab99fca74f5",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb3b823ec39f3edeb4354f76997031b3826b615c2"
],
"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": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02372c4f",
"selector": "0x02372c4f",
"calldata_variants": [
"0x02372c4f",
"0x02372c4f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x088fee5e",
"selector": "0x088fee5e",
"calldata_variants": [
"0x088fee5e",
"0x088fee5e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c1e3fea",
"selector": "0x0c1e3fea",
"calldata_variants": [
"0x0c1e3fea",
"0x0c1e3fea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c3f6acf",
"selector": "0x0c3f6acf",
"calldata_variants": [
"0x0c3f6acf",
"0x0c3f6acf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0cd1a5b6",
"selector": "0x0cd1a5b6",
"calldata_variants": [
"0x0cd1a5b6",
"0x0cd1a5b60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3761,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9156,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 13851,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 17,
"guards_detected": []
}
|
| medium | math | codex | Fee-on-transfer/rebasing assets break accounting and can underfund withdrawals | 75 | no | — |
viewevidence_json{
"evidence": "`_depositUpTo` mints scaledAmount from `amount` then calls `asset.safeTransferFrom` without verifying the net received amount, and `closeMarket` assumes `_repay` transferred the full `remainingDebt` when incrementing `currentlyHeld`.",
"locations": [
"contracts/src/market/WildcatMarket.sol:55",
"contracts/src/market/WildcatMarket.sol:76",
"contracts/src/market/WildcatMarket.sol:168",
"contracts/src/market/WildcatMarket.sol:172",
"contracts/src/market/WildcatMarket.sol:217",
"contracts/src/market/WildcatMarket.sol:222",
"contracts/src/market/WildcatMarketWithdrawals.sol:279"
],
"recommendation": "Enforce non-rebasing/non-fee-on-transfer assets at deployment, or compute actual received amounts by checking `balanceOf` before/after transfers and use the net amount for minting, repayment accounting, and `currentlyHeld` updates. Revert if the received amount differs from the requested amount when strict behavior is desired.",
"exploit_scenario": "If the market is deployed with a fee-on-transfer token, a depositor sending 100 units may only deliver 90, but the market mints scaled shares for the full 100. The attacker can later withdraw 100, draining value from other lenders. Similarly, `closeMarket` repays `remainingDebt` and increments `currentlyHeld` by the requested amount even if the token transfer delivers less, allowing closure with insufficient assets and leaving withdrawals underfunded."
}
|
| low | other | codex | Hook return-data size check can use stale `returndatasize`, causing DoS or stale values | 65 | no | — |
viewevidence_json{
"evidence": "The size check is evaluated alongside the external call: `if or(lt(returndatasize(), 0x40), iszero(call(...))) { ... }`, which can read stale returndatasize and mis-handle short returns.",
"locations": [
"contracts/src/types/HooksConfig.sol:761",
"contracts/src/types/HooksConfig.sol:763",
"contracts/src/types/HooksConfig.sol:764"
],
"recommendation": "Separate the `call` from the returndata checks: perform the call first, then verify `returndatasize() >= 0x40` and copy the returndata into memory before reading. Avoid using `returndatasize()` in the same expression as `call`.",
"exploit_scenario": "When `useOnSetAnnualInterestAndReserveRatioBips` is enabled, the assembly checks `lt(returndatasize(), 0x40)` in the same expression as the `call`. If the previous external call returned < 64 bytes (common after `balanceOf`), the condition is true before the hook call executes, and the hook will revert even when it returns correct data. If a prior call returned >= 64 bytes, a hook returning short data can bypass the size check and the function will read stale memory as the new interest/reserve values."
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 23
}
|