f87396ab-be81-49d8-86db-2ad77e0251d8
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 |
|---|---|---|---|---|
| 30796 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75772 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 75773 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 75774 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 75775 | capability.graph | complete | 1 / 3 | 1 week ago |
| 75776 | detector.run | complete | 1 / 3 | 1 week ago |
| 75777 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1359105] OpenAI Codex v0.77.0 (research preview)
[codex:1359105] --------
[codex:1359105] workdir: /tmp/codex-multi-okktbe8l
[codex:1359105] model: gpt-5.2-codex
[codex:1359105] provider: openai
[codex:1359105] approval: never
[codex:1359105] sandbox: read-only
[codex:1359105] reasoning effort: xhigh
[codex:1359105] reasoning summaries: auto
[codex:1359105] session id: 019b715f-780d-7450-bc54-df20cc2a0da3
[codex:1359105] --------
[codex:1359105] user
[codex:1359105] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1359105] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1359105] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1359105]
[codex:1359105] Scope rules:
[codex:1359105] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1359105] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1359105]
[codex:1359105] Output MUST be valid JSON matching the provided schema.
[codex:1359105] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1359105] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1359105]
[codex:1359105] Output constraints (IMPORTANT):
[codex:1359105] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1359105] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1359105] mcp startup: no servers
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Reviewing AGENTS and AUDIT_BUNDLE**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc ls in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] AUDIT_BUNDLE.txt
[codex:1359105] codex-output-schema.json
[codex:1359105] contracts
[codex:1359105] exec
[codex:1359105] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1359105]
[codex:1359105] ================================================================================
[codex:1359105] FILE: contracts/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol
[codex:1359105] ================================================================================
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)
[codex:1359105]
[codex:1359105] pragma solidity ^0.8.0;
[codex:1359105]
[codex:1359105] /**
[codex:1359105] * @dev Interface of the ERC20 standard as defined in the EIP.
[codex:1359105] */
[codex:1359105] interface IERC20 {
[codex:1359105] /**
[codex:1359105] * @dev Emitted when `value` tokens are moved from one account (`from`) to
[codex:1359105] * another (`to`).
[codex:1359105] *
[codex:1359105] * Note that `value` may be zero.
[codex:1359105] */
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Inspecting audit bundle contracts**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc 'rg --files contracts/src' in /tmp/codex-multi-okktbe8l succeeded in 9ms:
[codex:1359105] contracts/src/interfaces/IOwnable.sol
[codex:1359105] contracts/src/interfaces/IGuardian.sol
[codex:1359105] contracts/src/interfaces/IOracleWrapper.sol
[codex:1359105] contracts/src/interfaces/IArrakisLPModule.sol
[codex:1359105] contracts/src/interfaces/IUniV4StandardModule.sol
[codex:1359105] contracts/src/interfaces/IArrakisMetaVault.sol
[codex:1359105] contracts/src/interfaces/IArrakisLPModuleID.sol
[codex:1359105] contracts/src/interfaces/IUniV4ModuleBase.sol
[codex:1359105] contracts/src/interfaces/IArrakisLPModulePrivate.sol
[codex:1359105] contracts/src/structs/SUniswapV4.sol
[codex:1359105] contracts/src/libraries/UnderlyingV4.sol
[codex:1359105] contracts/src/libraries/UniswapV4.sol
[codex:1359105] contracts/src/abstracts/UniV4StandardModule.sol
[codex:1359105] contracts/src/modules/UniV4StandardModulePrivate.sol
[codex:1359105] contracts/src/constants/CArrakis.sol
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Devising strategy to fully read AUDIT_BUNDLE.txt**
[codex:1359105]
[codex:1359105] I’m figuring out how to fully read the large AUDIT_BUNDLE.txt file despite output truncation by scripting a Python parser to extract all embedded files and their lengths. This lets me confirm I’ve taken in the entire bundle’s content before focusing on analyzing the first-party source files individually from contracts/src as required.
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "python - <<'PY'
[codex:1359105] from pathlib import Path
[codex:1359105] path = Path('AUDIT_BUNDLE.txt')
[codex:1359105] text = path.read_text()
[codex:1359105] # parse sections
[codex:1359105] files = []
[codex:1359105] current = None
[codex:1359105] buf = []
[codex:1359105] for line in text.splitlines():
[codex:1359105] if line.startswith('FILE: '):
[codex:1359105] if current is not None:
[codex:1359105] files.append((current, '\\n'.join(buf)))
[codex:1359105] current = line[len('FILE: '):].strip()
[codex:1359105] buf = []
[codex:1359105] elif current is not None and not line.startswith('===='):
[codex:1359105] buf.append(line)
[codex:1359105] # append last
[codex:1359105] if current is not None:
[codex:1359105] files.append((current, '\\n'.join(buf)))
[codex:1359105]
[codex:1359105] # print first-party file names and line counts
[codex:1359105] first_party = []
[codex:1359105] for name, content in files:
[codex:1359105] if name.startswith('contracts/src/') or name.startswith('contracts/lib/openzeppelin-contracts'):
[codex:1359105] pass
[codex:1359105] # We will list all to confirm read but keep output short by filtering to first-party only
[codex:1359105] if name.startswith('contracts/src/'):
[codex:1359105] first_party.append((name, content.count('\\n')+1))
[codex:1359105]
[codex:1359105] print('first-party files:', len(first_party))
[codex:1359105] for name, lines in first_party:
[codex:1359105] print(f'{name} {lines}')
[codex:1359105] PY" in /tmp/codex-multi-okktbe8l succeeded in 35ms:
[codex:1359105] first-party files: 15
[codex:1359105] contracts/src/abstracts/UniV4StandardModule.sol 912
[codex:1359105] contracts/src/constants/CArrakis.sol 12
[codex:1359105] contracts/src/interfaces/IArrakisLPModule.sol 188
[codex:1359105] contracts/src/interfaces/IArrakisLPModuleID.sol 7
[codex:1359105] contracts/src/interfaces/IArrakisLPModulePrivate.sol 37
[codex:1359105] contracts/src/interfaces/IArrakisMetaVault.sol 203
[codex:1359105] contracts/src/interfaces/IGuardian.sol 29
[codex:1359105] contracts/src/interfaces/IOracleWrapper.sol 21
[codex:1359105] contracts/src/interfaces/IOwnable.sol 8
[codex:1359105] contracts/src/interfaces/IUniV4ModuleBase.sol 9
[codex:1359105] contracts/src/interfaces/IUniV4StandardModule.sol 213
[codex:1359105] contracts/src/libraries/UnderlyingV4.sol 386
[codex:1359105] contracts/src/libraries/UniswapV4.sol 1337
[codex:1359105] contracts/src/modules/UniV4StandardModulePrivate.sol 163
[codex:1359105] contracts/src/structs/SUniswapV4.sol 109
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing Solidity Contracts for Vulnerabilities**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "rg -n \"delegatecall|call\\{|call\\(|sendValue|transfer\\(|safeTransfer|safeTransferFrom|permit|ecrecover|signature|nonces\" contracts/src" in /tmp/codex-multi-okktbe8l succeeded in 9ms:
[codex:1359105] contracts/src/abstracts/UniV4StandardModule.sol:292: payable(msg.sender).sendValue(amount_);
[codex:1359105] contracts/src/libraries/UniswapV4.sol:249: _token1.safeTransfer(
[codex:1359105] contracts/src/libraries/UniswapV4.sol:283: _token0.safeTransfer(
[codex:1359105] contracts/src/libraries/UniswapV4.sol:452: .safeTransfer(
[codex:1359105] contracts/src/libraries/UniswapV4.sol:470: .safeTransfer(
[codex:1359105] contracts/src/libraries/UniswapV4.sol:679: payable(withdraw_.receiver).sendValue(
[codex:1359105] contracts/src/libraries/UniswapV4.sol:685: ).safeTransfer(
[codex:1359105] contracts/src/libraries/UniswapV4.sol:692: .safeTransfer(withdraw_.receiver, leftOver1ToBurn);
[codex:1359105] contracts/src/libraries/UniswapV4.sol:1044: payable(manager).sendValue(leftOver0);
[codex:1359105] contracts/src/libraries/UniswapV4.sol:1048: ).safeTransfer(manager, leftOver0);
[codex:1359105] contracts/src/libraries/UniswapV4.sol:1054: ).safeTransfer(manager, leftOver1);
[codex:1359105] contracts/src/libraries/UniswapV4.sol:1084: .safeTransferFrom(
[codex:1359105] contracts/src/libraries/UniswapV4.sol:1094: .safeTransferFrom(
[codex:1359105] contracts/src/libraries/UniswapV4.sol:1113: .safeTransfer(address(poolManager), amount0);
[codex:1359105] contracts/src/libraries/UniswapV4.sol:1122: .safeTransfer(address(poolManager), amount1);
[codex:1359105] contracts/src/modules/UniV4StandardModulePrivate.sol:70: payable(depositor_).sendValue(
[codex:1359105] contracts/src/modules/UniV4StandardModulePrivate.sol:78: payable(depositor_).sendValue(
[codex:1359105] contracts/src/modules/UniV4StandardModulePrivate.sol:139: token0.safeTransferFrom(
[codex:1359105] contracts/src/modules/UniV4StandardModulePrivate.sol:147: token1.safeTransferFrom(
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Inspecting module access controls**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '1,220p' contracts/src/abstracts/UniV4StandardModule.sol" in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] // SPDX-License-Identifier: BUSL-1.1
[codex:1359105] pragma solidity ^0.8.26;
[codex:1359105]
[codex:1359105] import {IUniV4StandardModule} from
[codex:1359105] "../interfaces/IUniV4StandardModule.sol";
[codex:1359105] import {IArrakisLPModule} from "../interfaces/IArrakisLPModule.sol";
[codex:1359105] import {IArrakisLPModuleID} from
[codex:1359105] "../interfaces/IArrakisLPModuleID.sol";
[codex:1359105] import {IArrakisMetaVault} from "../interfaces/IArrakisMetaVault.sol";
[codex:1359105] import {IOracleWrapper} from "../interfaces/IOracleWrapper.sol";
[codex:1359105] import {IGuardian} from "../interfaces/IGuardian.sol";
[codex:1359105] import {IOwnable} from "../interfaces/IOwnable.sol";
[codex:1359105] import {
[codex:1359105] PIPS,
[codex:1359105] BASE,
[codex:1359105] NATIVE_COIN,
[codex:1359105] TEN_PERCENT,
[codex:1359105] NATIVE_COIN_DECIMALS
[codex:1359105] } from "../constants/CArrakis.sol";
[codex:1359105] import {
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '220,520p' contracts/src/abstracts/UniV4StandardModule.sol" in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] uint24 maxSlippage_,
[codex:1359105] address metaVault_
[codex:1359105] ) external initializer {
[codex:1359105] // #region checks.
[codex:1359105] if (
[codex:1359105] metaVault_ == address(0) || address(oracle_) == address(0)
[codex:1359105] ) revert AddressZero();
[codex:1359105] if (maxSlippage_ > TEN_PERCENT) {
[codex:1359105] revert MaxSlippageGtTenPercent();
[codex:1359105] }
[codex:1359105] if (init0_ == 0 && init1_ == 0) revert InitsAreZeros();
[codex:1359105] // #endregion checks.
[codex:1359105]
[codex:1359105] metaVault = IArrakisMetaVault(metaVault_);
[codex:1359105] isInversed = isInversed_;
[codex:1359105] oracle = oracle_;
[codex:1359105] maxSlippage = maxSlippage_;
[codex:1359105]
[codex:1359105] address _token0 = IArrakisMetaVault(metaVault_).token0();
[codex:1359105] address _token1 = IArrakisMetaVault(metaVault_).token1();
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '520,1040p' contracts/src/abstracts/UniV4StandardModule.sol" in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] nonReentrant
[codex:1359105] whenNotPaused
[codex:1359105] returns (uint256 amount0, uint256 amount1)
[codex:1359105] {
[codex:1359105] uint256 length = _ranges.length;
[codex:1359105]
[codex:1359105] LiquidityRange[] memory liquidityRanges =
[codex:1359105] new LiquidityRange[](length);
[codex:1359105]
[codex:1359105] for (uint256 i; i < length; i++) {
[codex:1359105] Range memory range = _ranges[i];
[codex:1359105]
[codex:1359105] liquidityRanges[i] = LiquidityRange({
[codex:1359105] liquidity: 0,
[codex:1359105] range: Range({
[codex:1359105] tickLower: range.tickLower,
[codex:1359105] tickUpper: range.tickUpper
[codex:1359105] })
[codex:1359105] });
[codex:1359105] }
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Investigating UniswapV4 library architecture**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '1,240p' contracts/src/libraries/UniswapV4.sol" in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] // SPDX-License-Identifier: BUSL-1.1
[codex:1359105] pragma solidity ^0.8.26;
[codex:1359105]
[codex:1359105] import {IUniV4StandardModule} from
[codex:1359105] "../interfaces/IUniV4StandardModule.sol";
[codex:1359105] import {IArrakisLPModule} from "../interfaces/IArrakisLPModule.sol";
[codex:1359105] import {
[codex:1359105] SwapPayload,
[codex:1359105] SwapBalances,
[codex:1359105] Range as PoolRange,
[codex:1359105] Withdraw,
[codex:1359105] RebalanceResult,
[codex:1359105] Deposit
[codex:1359105] } from "../structs/SUniswapV4.sol";
[codex:1359105] import {
[codex:1359105] PIPS,
[codex:1359105] NATIVE_COIN,
[codex:1359105] NATIVE_COIN_DECIMALS,
[codex:1359105] BASE
[codex:1359105] } from "../constants/CArrakis.sol";
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '240,520p' contracts/src/libraries/UniswapV4.sol" in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] if (balances.balance > 0) {
[codex:1359105] if (isToken1Native) {
[codex:1359105] self.poolManager().settle{
[codex:1359105] value: balances.balance
[codex:1359105] }();
[codex:1359105] } else {
[codex:1359105] self.poolManager().sync(
[codex:1359105] Currency.wrap(address(_token1))
[codex:1359105] );
[codex:1359105] _token1.safeTransfer(
[codex:1359105] address(self.poolManager()),
[codex:1359105] balances.balance
[codex:1359105] );
[codex:1359105] self.poolManager().settle();
[codex:1359105] }
[codex:1359105] }
[codex:1359105] } else {
[codex:1359105] balances.balance = (
[codex:1359105] isToken0Native
[codex:1359105] ? address(this).balance
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '520,920p' contracts/src/libraries/UniswapV4.sol" in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105]
[codex:1359105] bytes32 positionId = keccak256(
[codex:1359105] abi.encode(poolKey_.toId(), tickLower_, tickUpper_)
[codex:1359105] );
[codex:1359105] if (!activeRanges_[positionId]) {
[codex:1359105] ranges_.push(
[codex:1359105] IUniV4StandardModule.Range({
[codex:1359105] tickLower: tickLower_,
[codex:1359105] tickUpper: tickUpper_
[codex:1359105] })
[codex:1359105] );
[codex:1359105] activeRanges_[positionId] = true;
[codex:1359105] }
[codex:1359105]
[codex:1359105] // #endregion effects.
[codex:1359105] // #region interactions.
[codex:1359105]
[codex:1359105] (callerDelta, feesAccrued) = poolManager_.modifyLiquidity(
[codex:1359105] poolKey_,
[codex:1359105] IPoolManager.ModifyLiquidityParams({
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '920,1320p' contracts/src/libraries/UniswapV4.sol" in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] uint128 positionLiquidity = poolManager
[codex:1359105] .getPositionLiquidity(
[codex:1359105] poolId,
[codex:1359105] Position.calculatePositionKey(
[codex:1359105] address(this),
[codex:1359105] range.tickLower,
[codex:1359105] range.tickUpper,
[codex:1359105] ""
[codex:1359105] )
[codex:1359105] );
[codex:1359105]
[codex:1359105] /// @dev no need to rounding up because uni v4 should do it during minting.
[codex:1359105] uint256 liquidity = FullMath.mulDivRoundingUp(
[codex:1359105] uint256(positionLiquidity),
[codex:1359105] deposit_.proportion,
[codex:1359105] BASE
[codex:1359105] );
[codex:1359105]
[codex:1359105] if (liquidity > 0) {
[codex:1359105] (, BalanceDelta feesAccrued) = poolManager
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '1320,1520p' contracts/src/libraries/UniswapV4.sol" in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] ) internal view returns (uint256, uint256) {
[codex:1359105] if (currency0BalanceRaw_ > 0) {
[codex:1359105] revert IUniV4StandardModule.InvalidCurrencyDelta();
[codex:1359105] }
[codex:1359105] uint256 currency0Balance =
[codex:1359105] SafeCast.toUint256(-currency0BalanceRaw_);
[codex:1359105] if (currency1BalanceRaw_ > 0) {
[codex:1359105] revert IUniV4StandardModule.InvalidCurrencyDelta();
[codex:1359105] }
[codex:1359105] uint256 currency1Balance =
[codex:1359105] SafeCast.toUint256(-currency1BalanceRaw_);
[codex:1359105]
[codex:1359105] return (currency0Balance, currency1Balance);
[codex:1359105] }
[codex:1359105]
[codex:1359105] // #endregion internal functions.
[codex:1359105] }
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Identifying security concerns**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '1,240p' contracts/src/libraries/UnderlyingV4.sol" in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] // SPDX-License-Identifier: BUSL-1.1
[codex:1359105] pragma solidity ^0.8.26;
[codex:1359105]
[codex:1359105] import {
[codex:1359105] UnderlyingPayload,
[codex:1359105] PositionUnderlying,
[codex:1359105] RangeData
[codex:1359105] } from "../structs/SUniswapV4.sol";
[codex:1359105] import {BASE, PIPS} from "../constants/CArrakis.sol";
[codex:1359105] import {IUniV4ModuleBase} from "../interfaces/IUniV4ModuleBase.sol";
[codex:1359105] import {IUniV4StandardModule} from
[codex:1359105] "../interfaces/IUniV4StandardModule.sol";
[codex:1359105] import {IArrakisLPModule} from "../interfaces/IArrakisLPModule.sol";
[codex:1359105]
[codex:1359105] import {IPoolManager} from
[codex:1359105] "@uniswap/v4-core/src/interfaces/IPoolManager.sol";
[codex:1359105] import {FullMath} from "@uniswap/v4-core/src/libraries/FullMath.sol";
[codex:1359105] import {TickMath} from "@uniswap/v4-core/src/libraries/TickMath.sol";
[codex:1359105] import {Position} from "@uniswap/v4-core/src/libraries/Position.sol";
[codex:1359105] import {FixedPoint128} from
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '240,480p' contracts/src/libraries/UnderlyingV4.sol" in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] );
[codex:1359105] }
[codex:1359105]
[codex:1359105] // solhint-disable-next-line function-max-lines
[codex:1359105] function getUnderlyingBalances(
[codex:1359105] PositionUnderlying memory positionUnderlying_
[codex:1359105] )
[codex:1359105] public
[codex:1359105] view
[codex:1359105] returns (
[codex:1359105] uint256 amount0Current,
[codex:1359105] uint256 amount1Current,
[codex:1359105] uint256 fee0,
[codex:1359105] uint256 fee1
[codex:1359105] )
[codex:1359105] {
[codex:1359105] PoolId poolId =
[codex:1359105] PoolIdLibrary.toId(positionUnderlying_.poolKey);
[codex:1359105]
[codex:1359105] // compute current fees earned
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Inspecting interface and module structure**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '1,240p' contracts/src/interfaces/IArrakisLPModule.sol" in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] pragma solidity ^0.8.19;
[codex:1359105]
[codex:1359105] import {IERC20Metadata} from
[codex:1359105] "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1359105] import {IArrakisMetaVault} from "./IArrakisMetaVault.sol";
[codex:1359105] import {IOracleWrapper} from "./IOracleWrapper.sol";
[codex:1359105]
[codex:1359105] /// @title Liquidity providing module interface.
[codex:1359105] /// @author Arrakis Finance
[codex:1359105] /// @notice Module interfaces, modules are implementing differents strategies that an
[codex:1359105] /// arrakis module can use.
[codex:1359105] interface IArrakisLPModule {
[codex:1359105] // #region errors.
[codex:1359105]
[codex:1359105] /// @dev triggered when an address that should not
[codex:1359105] /// be zero is equal to address zero.
[codex:1359105] error AddressZero();
[codex:1359105]
[codex:1359105] /// @dev triggered when the caller is different than
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Checking access control expectations**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '1,240p' contracts/src/interfaces/IArrakisMetaVault.sol" in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] pragma solidity ^0.8.19;
[codex:1359105]
[codex:1359105] import {IArrakisLPModule} from "./IArrakisLPModule.sol";
[codex:1359105]
[codex:1359105] /// @title IArrakisMetaVault
[codex:1359105] /// @notice IArrakisMetaVault is a vault that is able to invest dynamically deposited
[codex:1359105] /// tokens into protocols through his module.
[codex:1359105] interface IArrakisMetaVault {
[codex:1359105] // #region errors.
[codex:1359105]
[codex:1359105] /// @dev triggered when an address that should not
[codex:1359105] /// be zero is equal to address zero.
[codex:1359105] error AddressZero(string property);
[codex:1359105]
[codex:1359105] /// @dev triggered when the caller is different than
[codex:1359105] /// the manager.
[codex:1359105] error OnlyManager(address caller, address manager);
[codex:1359105]
[codex:1359105] /// @dev triggered when a low level call failed during
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing potential reentrancy and approval risks**
[codex:1359105]
[codex:1359105] I'm carefully tracing the sequence of calls around UniswapV4's rebalance to spot possible reentrancy vulnerabilities, especially given the external call to a router via a low-level call without a reentrancy guard. I’m also examining approval patterns and allowance resets to understand if malicious token behavior or improper allowance accounting could pose risks. The interplay between nonReentrant modifiers and callbacks is subtle here, so I’m checking if any unprotected functions or mappings could be exploited during these calls.
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '1,260p' contracts/src/interfaces/IUniV4StandardModule.sol" in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] pragma solidity ^0.8.19;
[codex:1359105]
[codex:1359105] import {PoolKey} from "@uniswap/v4-core/src/types/PoolKey.sol";
[codex:1359105] import {Currency} from "@uniswap/v4-core/src/types/Currency.sol";
[codex:1359105] import {IHooks} from "@uniswap/v4-core/src/interfaces/IHooks.sol";
[codex:1359105] import {IPoolManager} from
[codex:1359105] "@uniswap/v4-core/src/interfaces/IPoolManager.sol";
[codex:1359105]
[codex:1359105] import {SwapPayload} from "../structs/SUniswapV4.sol";
[codex:1359105] import {IOracleWrapper} from "../interfaces/IOracleWrapper.sol";
[codex:1359105]
[codex:1359105] interface IUniV4StandardModule {
[codex:1359105] // #region errors.
[codex:1359105]
[codex:1359105] error Currency0DtToken0(address currency0, address token0);
[codex:1359105] error Currency1DtToken1(address currency1, address token1);
[codex:1359105] error Currency1DtToken0(address currency1, address token0);
[codex:1359105] error Currency0DtToken1(address currency0, address token1);
[codex:1359105] error SqrtPriceZero();
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Investigating deposit function usage**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "rg -n \"deposit\\(|fund\\(|unlockCallback|withdrawEth|approve\\(|setManagerFeePIPS|managerFeePIPS|oracle\" contracts/src" in /tmp/codex-multi-okktbe8l succeeded in 9ms:
[codex:1359105] contracts/src/libraries/UnderlyingV4.sol:68: uint256 managerFeePIPS =
[codex:1359105] contracts/src/libraries/UnderlyingV4.sol:69: IArrakisLPModule(underlyingPayload_.self).managerFeePIPS();
[codex:1359105] contracts/src/libraries/UnderlyingV4.sol:71: fee0 = fee0 - FullMath.mulDiv(fee0, managerFeePIPS, PIPS);
[codex:1359105] contracts/src/libraries/UnderlyingV4.sol:73: fee1 = fee1 - FullMath.mulDiv(fee1, managerFeePIPS, PIPS);
[codex:1359105] contracts/src/libraries/UniswapV4.sol:99: module.managerFeePIPS(),
[codex:1359105] contracts/src/libraries/UniswapV4.sol:319: uint256 managerFeePIPS_,
[codex:1359105] contracts/src/libraries/UniswapV4.sol:323: managerFee0 = FullMath.mulDiv(fee0_, managerFeePIPS_, PIPS);
[codex:1359105] contracts/src/libraries/UniswapV4.sol:330: managerFee1 = FullMath.mulDiv(fee1_, managerFeePIPS_, PIPS);
[codex:1359105] contracts/src/libraries/UniswapV4.sol:705: uint256 managerFeePIPS = module.managerFeePIPS();
[codex:1359105] contracts/src/libraries/UniswapV4.sol:708: withdraw_.fee0, managerFeePIPS, PIPS
[codex:1359105] contracts/src/libraries/UniswapV4.sol:711: withdraw_.fee1, managerFeePIPS, PIPS
[codex:1359105] contracts/src/libraries/UniswapV4.sol:895: function deposit(
[codex:1359105] contracts/src/libraries/UniswapV4.sol:970: uint256 _managerFeePIPS = module.managerFeePIPS();
[codex:1359105] contracts/src/libraries/UniswapV4.sol:973: deposit_.fee0, _managerFeePIPS, PIPS
[codex:1359105] contracts/src/libraries/UniswapV4.sol:976: deposit_.fee1, _managerFeePIPS, PIPS
[codex:1359105] contracts/src/libraries/UniswapV4.sol:1154: self.oracle().getPrice0(),
[codex:1359105] contracts/src/libraries/UniswapV4.sol:1165: self.oracle().getPrice1(),
[codex:1359105] contracts/src/interfaces/IArrakisLPModule.sol:116: function setManagerFeePIPS(uint256 newFeePIPS_) external;
[codex:1359105] contracts/src/interfaces/IArrakisLPModule.sol:139: /// @return managerFeePIPS amount of token1 that manager earned.
[codex:1359105] contracts/src/interfaces/IArrakisLPModule.sol:140: function managerFeePIPS() external view returns (uint256);
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing potential contract vulnerabilities**
[codex:1359105]
[codex:1359105] I'm examining risks from manager-controlled swaps, oracle manipulation, and upgradeable contract patterns, especially concerning immutable variables and initializer guards. I'm also checking access controls on fund withdrawals and reentrancy protections in token transfer functions, questioning if any external calls could be exploited despite existing nonReentrant guards. There's uncertainty about the use of some deposit functions, so I’m considering how these pieces tie into the overall module design and possible vulnerabilities.
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '1,200p' contracts/src/interfaces/IUniV4ModuleBase.sol" in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] pragma solidity ^0.8.19;
[codex:1359105]
[codex:1359105] import {PoolKey} from "@uniswap/v4-core/src/types/PoolKey.sol";
[codex:1359105]
[codex:1359105] interface IUniV4ModuleBase {
[codex:1359105] function poolKey() external view returns (PoolKey memory);
[codex:1359105] }
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing potential reentrancy and access control issues**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc 'cat contracts/src/constants/CArrakis.sol' in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] pragma solidity ^0.8.19;
[codex:1359105]
[codex:1359105] uint256 constant MINIMUM_LIQUIDITY = 10 ** 3;
[codex:1359105] uint256 constant BASE = 1e18;
[codex:1359105] uint24 constant PIPS = 1_000_000;
[codex:1359105] uint24 constant TEN_PERCENT = 100_000;
[codex:1359105] uint256 constant WEEK = 604_800;
[codex:1359105] address constant NATIVE_COIN =
[codex:1359105] 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
[codex:1359105] uint8 constant NATIVE_COIN_DECIMALS = 18;
[codex:1359105]
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing native coin and router call risks**
[codex:1359105]
[codex:1359105] I'm exploring how native coin handling interacts with token transfers and msg.value, checking potential mismatches or vulnerabilities like reentrancy or refund ordering. I'm also scrutinizing the router call in rebalance, its approval of arbitrary payloads, and whether token balances and slippage checks properly prevent exploits despite complex token accounting and callback locks. There’s a lot to untangle around upgradeable initialization, allowances for native coin withdrawals, and edge cases in range management and oracle price checks too. Let’s see how these various mechanisms interplay to surface any real vulnerabilities or just complex but secure logic.
[codex:1359105] thinking
[codex:1359105] **Reviewing fee withdrawal and approval controls**
[codex:1359105]
[codex:1359105] I'm thinking through the `withdrawManagerBalance` callable by anyone, which triggers fee collection for the manager, and assessing whether this open call could be abused or just results in normal fees distribution without harm. Also weighing the safety of `approve` using SafeERC20’s forceApprove and the reliance on metaVault’s owner and manager calls, especially given upgradeability and interface assumptions, to see if any controls might be bypassed or cause unexpected failures.
[codex:1359105] exec
[codex:1359105] /bin/bash -lc 'cat contracts/src/interfaces/IArrakisLPModulePrivate.sol' in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] pragma solidity ^0.8.19;
[codex:1359105]
[codex:1359105] /// @notice expose a deposit function for that can
[codex:1359105] /// deposit any share of token0 and token1.
[codex:1359105] /// @dev this deposit feature will be used by
[codex:1359105] /// private actor.
[codex:1359105] interface IArrakisLPModulePrivate {
[codex:1359105] // #region errors.
[codex:1359105]
[codex:1359105] error DepositZero();
[codex:1359105]
[codex:1359105] // #endregion errors.
[codex:1359105]
[codex:1359105] // #region events.
[codex:1359105]
[codex:1359105] /// @notice event emitted when owner of private fund the private vault.
[codex:1359105] /// @param depositor address that are sending the tokens, the owner.
[codex:1359105] /// @param amount0 amount of token0 sent by depositor.
[codex:1359105] /// @param amount1 amount of token1 sent by depositor.
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing upgradeability and reentrancy risks**
[codex:1359105]
[codex:1359105] I'm walking through potential issues around initialization defaults, public unlockCallback exposure, token approvals by metaVault owner, and reentrancy during router calls in rebalance. I'm also examining fee calculations and slippage checks to spot inconsistencies or missing protections. There’s complexity in how managerFeePIPS can be changed mid-state and how oracle pricing decimals might matter for min return checks. Let’s keep exploring oracle interfaces next.
[codex:1359105] exec
[codex:1359105] /bin/bash -lc 'cat contracts/src/interfaces/IOracleWrapper.sol' in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] pragma solidity ^0.8.19;
[codex:1359105]
[codex:1359105] interface IOracleWrapper {
[codex:1359105] // #region errors.
[codex:1359105]
[codex:1359105] error AddressZero();
[codex:1359105] error DecimalsToken0Zero();
[codex:1359105] error DecimalsToken1Zero();
[codex:1359105]
[codex:1359105] // #endregion errors.
[codex:1359105]
[codex:1359105] /// @notice function used to get price0.
[codex:1359105] /// @return price0 price of token0/token1.
[codex:1359105] function getPrice0() external view returns (uint256 price0);
[codex:1359105]
[codex:1359105] /// @notice function used to get price1.
[codex:1359105] /// @return price1 price of token1/token0.
[codex:1359105] function getPrice1() external view returns (uint256 price1);
[codex:1359105] }
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing potential code vulnerabilities and logic issues**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "sed -n '1,220p' contracts/src/modules/UniV4StandardModulePrivate.sol" in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] // SPDX-License-Identifier: BUSL-1.1
[codex:1359105] pragma solidity ^0.8.26;
[codex:1359105]
[codex:1359105] import {UniV4StandardModule} from
[codex:1359105] "../abstracts/UniV4StandardModule.sol";
[codex:1359105] import {IArrakisLPModulePrivate} from
[codex:1359105] "../interfaces/IArrakisLPModulePrivate.sol";
[codex:1359105]
[codex:1359105] import {IPoolManager} from
[codex:1359105] "@uniswap/v4-core/src/interfaces/IPoolManager.sol";
[codex:1359105] import {NATIVE_COIN} from "../constants/CArrakis.sol";
[codex:1359105]
[codex:1359105] import {PoolKey} from "@uniswap/v4-core/src/types/PoolKey.sol";
[codex:1359105] import {PoolIdLibrary} from "@uniswap/v4-core/src/types/PoolId.sol";
[codex:1359105] import {
[codex:1359105] Currency,
[codex:1359105] CurrencyLibrary
[codex:1359105] } from "@uniswap/v4-core/src/types/Currency.sol";
[codex:1359105]
[codex:1359105] import {IERC20Metadata} from
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing access control risks**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc 'cat contracts/src/interfaces/IOwnable.sol' in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] pragma solidity ^0.8.19;
[codex:1359105]
[codex:1359105] interface IOwnable {
[codex:1359105] /// @notice function used to get the owner of this contract.
[codex:1359105] function owner() external view returns (address);
[codex:1359105] }
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing reentrancy and external call risks**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc 'cat contracts/src/interfaces/IGuardian.sol' in /tmp/codex-multi-okktbe8l succeeded in 5ms:
[codex:1359105] // SPDX-License-Identifier: MIT
[codex:1359105] pragma solidity ^0.8.19;
[codex:1359105]
[codex:1359105] interface IGuardian {
[codex:1359105] // #region errors.
[codex:1359105]
[codex:1359105] error AddressZero();
[codex:1359105] error SamePauser();
[codex:1359105]
[codex:1359105] // #endregion errors.
[codex:1359105]
[codex:1359105] // #region events.
[codex:1359105]
[codex:1359105] /// @notice event emitted when the pauser is set by the owner of the Guardian.
[codex:1359105] /// @param oldPauser address of the previous pauser.
[codex:1359105] /// @param newPauser address of the current pauser.
[codex:1359105] event LogSetPauser(address oldPauser, address newPauser);
[codex:1359105]
[codex:1359105] // #endregion events.
[codex:1359105]
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing potential vulnerabilities and architectural risks**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc 'rg -n "delegatecall" contracts/src' in /tmp/codex-multi-okktbe8l exited 1 in 9ms:
[codex:1359105]
[codex:1359105]
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing complex contract vulnerabilities**
[codex:1359105]
[codex:1359105] I've carefully reviewed potential vulnerabilities like oracle manipulation during rebalance without on-chain checks, uninitialized upgradeable modules, and possible shadowing bugs. There are risks if an attacker sandwiches the manager's rebalance to affect prices, since on-chain validation is missing, though manager control limits some attack vectors. I’m also noting subtle issues like external call risks and token/native coin handling, aiming to weigh severity and contextual safety.
[codex:1359105] thinking
[codex:1359105] **Reviewing initialization and access control**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "nl -ba contracts/src/abstracts/UniV4StandardModule.sol | sed -n '190,270p'" in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] 190 /// @dev only callable by guardian
[codex:1359105] 191 function pause() external whenNotPaused onlyGuardian {
[codex:1359105] 192 _pause();
[codex:1359105] 193 }
[codex:1359105] 194
[codex:1359105] 195 /// @notice function used to unpause the module.
[codex:1359105] 196 /// @dev only callable by guardian
[codex:1359105] 197 function unpause() external whenPaused onlyGuardian {
[codex:1359105] 198 _unpause();
[codex:1359105] 199 }
[codex:1359105] 200
[codex:1359105] 201 // #endregion guardian functions.
[codex:1359105] 202
[codex:1359105] 203 /// @notice initialize function to delegate call onced the beacon proxy is deployed,
[codex:1359105] 204 /// for initializing the uniswap v4 standard module.
[codex:1359105] 205 /// @param init0_ initial amount of token0 to provide to uniswap standard module.
[codex:1359105] 206 /// @param init1_ initial amount of token1 to provide to uniswap standard module.
[codex:1359105] 207 /// @param isInversed_ boolean to check if the poolKey's currencies pair are inversed,
[codex:1359105] 208 /// compared to the module's tokens pair.
[codex:1359105] 209 /// @param poolKey_ pool key of the uniswap v4 pool that will be used by the module.
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Identifying line numbers for rebalance checks**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "nl -ba contracts/src/abstracts/UniV4StandardModule.sol | sed -n '320,460p'" in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] 320
[codex:1359105] 321 // #endregion vault owner functions.
[codex:1359105] 322
[codex:1359105] 323 // #region only manager functions.
[codex:1359105] 324
[codex:1359105] 325 /// @notice function used to set the pool for the module.
[codex:1359105] 326 /// @param poolKey_ pool key of the uniswap v4 pool that will be used by the module.
[codex:1359105] 327 /// @param liquidityRanges_ list of liquidity ranges to be used by the module on the new pool.
[codex:1359105] 328 /// @param swapPayload_ swap payload to be used during rebalance.
[codex:1359105] 329 /// @param minBurn0_ minimum amount of token0 to burn.
[codex:1359105] 330 /// @param minBurn1_ minimum amount of token1 to burn.
[codex:1359105] 331 /// @param minDeposit0_ minimum amount of token0 to deposit.
[codex:1359105] 332 /// @param minDeposit1_ minimum amount of token1 to deposit.
[codex:1359105] 333 function setPool(
[codex:1359105] 334 PoolKey calldata poolKey_,
[codex:1359105] 335 LiquidityRange[] calldata liquidityRanges_,
[codex:1359105] 336 SwapPayload calldata swapPayload_,
[codex:1359105] 337 uint256 minBurn0_,
[codex:1359105] 338 uint256 minBurn1_,
[codex:1359105] 339 uint256 minDeposit0_,
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Adding line numbers to rebalance function**
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "nl -ba contracts/src/abstracts/UniV4StandardModule.sol | sed -n '460,620p'" in /tmp/codex-multi-okktbe8l succeeded in 7ms:
[codex:1359105] 460
[codex:1359105] 461 if (proportion_ > BASE) revert ProportionGtBASE();
[codex:1359105] 462
[codex:1359105] 463 // #endregion checks.
[codex:1359105] 464
[codex:1359105] 465 bytes memory data = abi.encode(
[codex:1359105] 466 Action.WITHDRAW, abi.encode(receiver_, proportion_)
[codex:1359105] 467 );
[codex:1359105] 468
[codex:1359105] 469 bytes memory result = poolManager.unlock(data);
[codex:1359105] 470
[codex:1359105] 471 (amount0, amount1) = abi.decode(result, (uint256, uint256));
[codex:1359105] 472
[codex:1359105] 473 emit LogWithdraw(receiver_, proportion_, amount0, amount1);
[codex:1359105] 474 }
[codex:1359105] 475
[codex:1359105] 476 /// @notice function used to rebalance the inventory of the module.
[codex:1359105] 477 /// @param liquidityRanges_ list of liquidity ranges to be used by the module.
[codex:1359105] 478 /// @param swapPayload_ swap payload to be used during rebalance..
[codex:1359105] 479 /// @param minBurn0_ minimum amount of token0 to burn.
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Analyzing potential oracle manipulation and upgradeability risks**
[codex:1359105]
[codex:1359105] I'm examining how the rebalance function lacks on-chain oracle validation, leaving it open to MEV sandwich attacks that can force the vault to deposit more tokens than intended due to missing upper bounds on slippage. I'm also considering upgradeability concerns around unprotected initializers and immutable variables in a proxy context, gathering line references for a detailed findings report.
[codex:1359105] exec
[codex:1359105] /bin/bash -lc "nl -ba contracts/src/abstracts/UniV4StandardModule.sol | sed -n '660,780p'" in /tmp/codex-multi-okktbe8l succeeded in 6ms:
[codex:1359105] 660 ) external view returns (uint256 amount0, uint256 amount1) {
[codex:1359105] 661 PoolKey memory _poolKey = poolKey;
[codex:1359105] 662
[codex:1359105] 663 PoolRange[] memory poolRanges =
[codex:1359105] 664 UniswapV4._getPoolRanges(_ranges, _poolKey);
[codex:1359105] 665
[codex:1359105] 666 uint256 fees0;
[codex:1359105] 667 uint256 fees1;
[codex:1359105] 668 {
[codex:1359105] 669 (uint256 leftOver0, uint256 leftOver1) =
[codex:1359105] 670 IUniV4StandardModule(this)._getLeftOvers(_poolKey);
[codex:1359105] 671
[codex:1359105] 672 (amount0, amount1, fees0, fees1) = UnderlyingV4
[codex:1359105] 673 .totalUnderlyingAtPriceWithFees(
[codex:1359105] 674 UnderlyingPayload({
[codex:1359105] 675 ranges: poolRanges,
[codex:1359105] 676 poolManager: poolManager,
[codex:1359105] 677 self: address(this),
[codex:1359105] 678 leftOver0: leftOver0,
[codex:1359105] 679 leftOver1: leftOver1
[codex:1359105]
[codex:1359105] thinking
[codex:1359105] **Summarizing vulnerability findings and plan**
[codex:1359105] codex
[codex:1359105] {"no_findings":false,"summary":"Found 2 issues: an unprotected initializer that can be hijacked on uninitialized proxies and missing on-chain oracle/price-deviation protection during rebalances.","findings":[{"severity":"high","category":"upgradeability","title":"Initializer callable by anyone enables takeover of uninitialized proxy","exploit_scenario":"If a beacon proxy is deployed without calling `initialize` in the same transaction, any external account can call `initialize` once to set `metaVault`, `oracle`, and `poolKey` to attacker-controlled values. The attacker can then act as the manager/owner path and withdraw/approve assets once funds arrive.","recommendation":"Ensure initialization is performed atomically during deployment (factory/constructor initialization) or add access control to `initialize` (e.g., restrict to a trusted deployer or require `msg.sender == metaVault_`), so a third party cannot front-run initialization.","evidence":"`initialize` is external and only guarded by `initializer`, with no caller restriction.","locations":["contracts/src/abstracts/UniV4StandardModule.sol:214"]},{"severity":"medium","category":"oracle","title":"Rebalances lack on-chain oracle deviation checks; price manipulation can skew liquidity mint/burn amounts","exploit_scenario":"A MEV actor can manipulate the pool price in the same block as a manager rebalance or pool switch. Because `rebalance`/`setPool` call `_internalRebalance` directly and only enforce minimum mint/burn amounts, the vault can be forced to add/remove liquidity at an unfavorable price, spending significantly more of one token while still passing min checks. The optional `validateRebalance` oracle check is never enforced on-chain.","recommendation":"Enforce an oracle/TWAP deviation check inside `rebalance` and `setPool` (or add explicit max bounds for mint/burn amounts) so execution reverts if the pool price deviates beyond the allowed threshold.","evidence":"`rebalance` and `setPool` do not invoke `validateRebalance`; `validateRebalance` is a view helper only.","locations":["contracts/src/abstracts/UniV4StandardModule.sol:333","contracts/src/abstracts/UniV4StandardModule.sol:487","contracts/src/abstracts/UniV4StandardModule.sol:695"]}]}
[codex:1359105] tokens used
[codex:1359105] 100,469
[codex:1359105] {"no_findings":false,"summary":"Found 2 issues: an unprotected initializer that can be hijacked on uninitialized proxies and missing on-chain oracle/price-deviation protection during rebalances.","findings":[{"severity":"high","category":"upgradeability","title":"Initializer callable by anyone enables takeover of uninitialized proxy","exploit_scenario":"If a beacon proxy is deployed without calling `initialize` in the same transaction, any external account can call `initialize` once to set `metaVault`, `oracle`, and `poolKey` to attacker-controlled values. The attacker can then act as the manager/owner path and withdraw/approve assets once funds arrive.","recommendation":"Ensure initialization is performed atomically during deployment (factory/constructor initialization) or add access control to `initialize` (e.g., restrict to a trusted deployer or require `msg.sender == metaVault_`), so a third party cannot front-run initialization.","evidence":"`initialize` is external and only guarded by `initializer`, with no caller restriction.","locations":["contracts/src/abstracts/UniV4StandardModule.sol:214"]},{"severity":"medium","category":"oracle","title":"Rebalances lack on-chain oracle deviation checks; price manipulation can skew liquidity mint/burn amounts","exploit_scenario":"A MEV actor can manipulate the pool price in the same block as a manager rebalance or pool switch. Because `rebalance`/`setPool` call `_internalRebalance` directly and only enforce minimum mint/burn amounts, the vault can be forced to add/remove liquidity at an unfavorable price, spending significantly more of one token while still passing min checks. The optional `validateRebalance` oracle check is never enforced on-chain.","recommendation":"Enforce an oracle/TWAP deviation check inside `rebalance` and `setPool` (or add explicit max bounds for mint/burn amounts) so execution reverts if the pool price deviates beyond the allowed threshold.","evidence":"`rebalance` and `setPool` do not invoke `validateRebalance`; `validateRebalance` is a view helper only.","locations":["contracts/src/abstracts/UniV4StandardModule.sol:333","contracts/src/abstracts/UniV4StandardModule.sol:487","contracts/src/abstracts/UniV4StandardModule.sol:695"]}]}
{
"codex": {
"ran_at": "2025-12-30T22:36:45.713769+00:00",
"returncode": 0
},
"summary": "Found 2 issues: an unprotected initializer that can be hijacked on uninitialized proxies and missing on-chain oracle/price-deviation protection during rebalances.",
"raw_final": {
"summary": "Found 2 issues: an unprotected initializer that can be hijacked on uninitialized proxies and missing on-chain oracle/price-deviation protection during rebalances.",
"findings": [
{
"title": "Initializer callable by anyone enables takeover of uninitialized proxy",
"category": "upgradeability",
"evidence": "`initialize` is external and only guarded by `initializer`, with no caller restriction.",
"severity": "high",
"locations": [
"contracts/src/abstracts/UniV4StandardModule.sol:214"
],
"recommendation": "Ensure initialization is performed atomically during deployment (factory/constructor initialization) or add access control to `initialize` (e.g., restrict to a trusted deployer or require `msg.sender == metaVault_`), so a third party cannot front-run initialization.",
"exploit_scenario": "If a beacon proxy is deployed without calling `initialize` in the same transaction, any external account can call `initialize` once to set `metaVault`, `oracle`, and `poolKey` to attacker-controlled values. The attacker can then act as the manager/owner path and withdraw/approve assets once funds arrive."
},
{
"title": "Rebalances lack on-chain oracle deviation checks; price manipulation can skew liquidity mint/burn amounts",
"category": "oracle",
"evidence": "`rebalance` and `setPool` do not invoke `validateRebalance`; `validateRebalance` is a view helper only.",
"severity": "medium",
"locations": [
"contracts/src/abstracts/UniV4StandardModule.sol:333",
"contracts/src/abstracts/UniV4StandardModule.sol:487",
"contracts/src/abstracts/UniV4StandardModule.sol:695"
],
"recommendation": "Enforce an oracle/TWAP deviation check inside `rebalance` and `setPool` (or add explicit max bounds for mint/burn amounts) so execution reverts if the pool price deviates beyond the allowed threshold.",
"exploit_scenario": "A MEV actor can manipulate the pool price in the same block as a manager rebalance or pool switch. Because `rebalance`/`setPool` call `_internalRebalance` directly and only enforce minimum mint/burn amounts, the vault can be forced to add/remove liquidity at an unfavorable price, spending significantly more of one token while still passing min checks. The optional `validateRebalance` oracle check is never enforced on-chain."
}
],
"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: PUSH2 0x01f8 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x7ecd6717 00000018: GT 00000019: PUSH2 0x0117 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xc6b29347 00000023: GT 00000024: PUSH2 0x00ac 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xdc4c90d3 0000002e: GT 0000002f: PUSH2 0x007c 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xe0be9cfd 00000039: GT 0000003a: PUSH2 0x0062 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xe0be9cfd 00000044: EQ 00000045: PUSH2 0x067c 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xf3fef3a3 0000004f: EQ 00000050: PUSH2 0x0691 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xf708cdc9 0000005a: EQ 0000005b: PUSH2 0x06b0 0000005e: JUMPI 0000005f: PUSH0 00000060: DUP1 00000061: REVERT 00000062: JUMPDEST 00000063: DUP1 00000064: PUSH4 0xdc4c90d3 00000069: EQ 0000006a: PUSH2 0x062a 0000006d: JUMPI 0000006e: DUP1 0000006f: PUSH4 0xdce4312b 00000074: EQ 00000075: PUSH2 0x065d 00000078: JUMPI 00000079: PUSH0 0000007a: DUP1 0000007b: REVERT 0000007c: JUMPDEST 0000007d: DUP1 0000007e: PUSH4 0xc6b29347 00000083: EQ 00000084: PUSH2 0x05a4 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0xc70920bc 0000008e: EQ 0000008f: PUSH2 0x05b8 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xcc6696ce 00000099: EQ 0000009a: PUSH2 0x05cc 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0xd21220a7 000000a4: EQ 000000a5: PUSH2 0x060b 000000a8: JUMPI 000000a9: PUSH0 000000aa: DUP1 000000ab: REVERT 000000ac: JUMPDEST 000000ad: DUP1 000000ae: PUSH4 0xacecf6f5 000000b3: GT 000000b4: PUSH2 0x00e7 000000b7: JUMPI 000000b8: DUP1 000000b9: PUSH4 0xacecf6f5 000000be: EQ 000000bf: PUSH2 0x0514 000000c2: JUMPI 000000c3: DUP1 000000c4: PUSH4 0xaf640d0f 000000c9: EQ 000000ca: PUSH2 0x0533 000000cd: JUMPI 000000ce: DUP1 000000cf: PUSH4 0xc311d049 000000d4: EQ 000000d5: PUSH2 0x0566 000000d8: JUMPI 000000d9: DUP1 000000da: PUSH4 0xc40394d3 000000df: EQ 000000e0: PUSH2 0x0585 000000e3: JUMPI 000000e4: PUSH0 000000e5: DUP1 000000e6: REVERT 000000e7: JUMPDEST 000000e8: DUP1 000000e9: PUSH4 0x7ecd6717 000000ee: EQ 000000ef: PUSH2 0x0475 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0x8456cb59 000000f9: EQ 000000fa: PUSH2 0x049e 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x8c04166f 00000104: EQ 00000105: PUSH2 0x04b2 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x91dd7346 0000010f: EQ 00000110: PUSH2 0x04e8 00000113: JUMPI 00000114: PUSH0 00000115: DUP1 00000116: REVERT 00000117: JUMPDEST 00000118: DUP1 00000119: PUSH4 0x452a9320 0000011e: GT 0000011f: PUSH2 0x018d 00000122: JUMPI 00000123: DUP1 00000124: PUSH4 0x617a3419 00000129: GT 0000012a: PUSH2 0x015d 0000012d: JUMPI 0000012e: DUP1 0000012f: PUSH4 0x617a3419 00000134: EQ 00000135: PUSH2 0x03eb 00000138: JUMPI 00000139: DUP1 0000013a: PUSH4 0x62e9dcb1 0000013f: EQ 00000140: PUSH2 0x040c 00000143: JUMPI 00000144: DUP1 00000145: PUSH4 0x78df8e70 0000014a: EQ 0000014b: PUSH2 0x0437 0000014e: JUMPI 0000014f: DUP1 00000150: PUSH4 0x7dc0d1d0 00000155: EQ 00000156: PUSH2 0x0456 00000159: JUMPI 0000015a: PUSH0 0000015b: DUP1 0000015c: REVERT 0000015d: JUMPDEST 0000015e: DUP1 0000015f: PUSH4 0x452a9320 00000164: EQ 00000165: PUSH2 0x0376 00000168: JUMPI 00000169: DUP1 0000016a: PUSH4 0x5933599a 0000016f: EQ 00000170: PUSH2 0x038a 00000173: JUMPI 00000174: DUP1 00000175: PUSH4 0x5c975abb 0000017a: EQ 0000017b: PUSH2 0x03a9 0000017e: JUMPI 0000017f: DUP1 00000180: PUSH4 0x60b9ef9b 00000185: EQ 00000186: PUSH2 0x03cc 00000189: JUMPI 0000018a: PUSH0 0000018b: DUP1 0000018c: REVERT 0000018d: JUMPDEST 0000018e: DUP1 0000018f: PUSH4 0x331529a9 00000194: GT 00000195: PUSH2 0x01c8 00000198: JUMPI 00000199: DUP1 0000019a: PUSH4 0x331529a9 0000019f: EQ 000001a0: PUSH2 0x0310 000001a3: JUMPI 000001a4: DUP1 000001a5: PUSH4 0x3f4ba83a 000001aa: EQ 000001ab: PUSH2 0x032f 000001ae: JUMPI 000001af: DUP1 000001b0: PUSH4 0x426a8493 000001b5: EQ 000001b6: PUSH2 0x0343 000001b9: JUMPI 000001ba: DUP1 000001bb: PUSH4 0x42fb9d44 000001c0: EQ 000001c1: PUSH2 0x0362 000001c4: JUMPI 000001c5: PUSH0 000001c6: DUP1 000001c7: REVERT 000001c8: JUMPDEST 000001c9: DUP1 000001ca: PUSH4 0x065756db 000001cf: EQ 000001d0: PUSH2 0x0203 000001d3: JUMPI 000001d4: DUP1 000001d5: PUSH4 0x0af6ce85 000001da: EQ 000001db: PUSH2 0x022a 000001de: JUMPI 000001df: DUP1 000001e0: PUSH4 0x0dfe1681 000001e5: EQ 000001e6: PUSH2 0x023f 000001e9: JUMPI 000001ea: DUP1 000001eb: PUSH4 0x182148ef 000001f0: EQ 000001f1: PUSH2 0x0276 000001f4: JUMPI 000001f5: PUSH0 000001f6: DUP1 000001f7: REVERT 000001f8: JUMPDEST 000001f9: CALLDATASIZE 000001fa: PUSH2 0x01ff 000001fd: JUMPI 000001fe: STOP 000001ff: JUMPDEST 00000200: PUSH0 00000201: DUP1 00000202: REVERT 00000203: JUMPDEST 00000204: CALLVALUE 00000205: DUP1 00000206: ISZERO 00000207: PUSH2 0x020e 0000020a: JUMPI 0000020b: PUSH0 0000020c: DUP1 0000020d: REVERT 0000020e: JUMPDEST 0000020f: POP 00000210: PUSH2 0x0217 00000213: PUSH2 0x06d0 00000216: JUMP 00000217: JUMPDEST 00000218: PUSH1 0x40 0000021a: MLOAD 0000021b: SWAP1 0000021c: DUP2 0000021d: MSTORE 0000021e: PUSH1 0x20 00000220: ADD 00000221: JUMPDEST 00000222: PUSH1 0x40 00000224: MLOAD 00000225: DUP1 00000226: SWAP2 00000227: SUB 00000228: SWAP1 00000229: RETURN 0000022a: JUMPDEST 0000022b: PUSH2 0x023d 0000022e: PUSH2 0x0238 00000231: CALLDATASIZE 00000232: PUSH1 0x04 00000234: PUSH2 0x481b 00000237: JUMP 00000238: JUMPDEST 00000239: PUSH2 0x08c2 0000023c: JUMP 0000023d: JUMPDEST 0000023e: STOP 0000023f: JUMPDEST 00000240: CALLVALUE 00000241: DUP1 00000242: ISZERO 00000243: PUSH2 0x024a 00000246: JUMPI 00000247: PUSH0 00000248: DUP1 00000249: REVERT 0000024a: JUMPDEST 0000024b: POP 0000024c: PUSH1 0x98 0000024e: SLOAD 0000024f: PUSH2 0x025e 00000252: SWAP1 00000253: PUSH1 0x01 00000255: PUSH1 0x01 00000257: PUSH1 0xa0 00000259: SHL 0000025a: SUB 0000025b: AND 0000025c: DUP2 0000025d: JUMP 0000025e: JUMPDEST 0000025f: PUSH1 0x40 00000261: MLOAD 00000262: PUSH1 0x01 00000264: PUSH1 0x01 00000266: PUSH1 0xa0 00000268: SHL 00000269: SUB 0000026a: SWAP1 0000026b: SWAP2 0000026c: AND 0000026d: DUP2 0000026e: MSTORE 0000026f: PUSH1 0x20 00000271: ADD 00000272: PUSH2 0x0221 00000275: JUMP 00000276: JUMPDEST 00000277: CALLVALUE 00000278: DUP1 00000279: ISZERO 0000027a: PUSH2 0x0281 0000027d: JUMPI 0000027e: PUSH0 0000027f: DUP1 00000280: REVERT 00000281: JUMPDEST 00000282: POP 00000283: PUSH1 0x9c 00000285: SLOAD 00000286: PUSH1 0x9d 00000288: SLOAD 00000289: PUSH1 0x9e 0000028b: SLOAD 0000028c: PUSH2 0x02d0 0000028f: SWAP3 00000290: PUSH1 0x01 00000292: PUSH1 0x01 00000294: PUSH1 0xa0 00000296: SHL 00000297: SUB 00000298: SWAP1 00000299: DUP2 0000029a: AND 0000029b: SWAP3 0000029c: DUP1 0000029d: DUP3 0000029e: AND 0000029f: SWAP3 000002a0: PUSH3 0xffffff 000002a4: PUSH1 0x01 000002a6: PUSH1 0xa0 000002a8: SHL 000002a9: DUP4 000002aa: DIV 000002ab: AND 000002ac: SWAP3 000002ad: PUSH24 0x010000000000000000000000000000000000000000000000 000002c6: SWAP1 000002c7: SWAP3 000002c8: DIV 000002c9: PUSH1 0x02 000002cb: SIGNEXTEND 000002cc: SWAP2 000002cd: AND 000002ce: DUP6 000002cf: JUMP 000002d0: JUMPDEST 000002d1: PUSH1 0x40 000002d3: DUP1 000002d4: MLOAD 000002d5: PUSH1 0x01 000002d7: PUSH1 0x01 000002d9: PUSH1 0xa0 000002db: SHL 000002dc: SUB 000002dd: SWAP7 000002de: DUP8 000002df: AND 000002e0: DUP2 000002e1: MSTORE 000002e2: SWAP5 000002e3: DUP7 000002e4: AND 000002e5: PUSH1 0x20 000002e7: DUP7 000002e8: ADD 000002e9: MSTORE 000002ea: PUSH3 0xffffff 000002ee: SWAP1 000002ef: SWAP4 000002f0: AND 000002f1: SWAP3 000002f2: DUP5 000002f3: ADD 000002f4: SWAP3 000002f5: SWAP1 000002f6: SWAP3 000002f7: MSTORE 000002f8: PUSH1 0x02 000002fa: SIGNEXTEND 000002fb: PUSH1 0x60 000002fd: DUP4 000002fe: ADD 000002ff: MSTORE 00000300: SWAP2 00000301: SWAP1 00000302: SWAP2 00000303: AND 00000304: PUSH1 0x80 00000306: DUP3 00000307: ADD 00000308: MSTORE 00000309: PUSH1 0xa0 0000030b: ADD 0000030c: PUSH2 0x0221 0000030f: JUMP 00000310: JUMPDEST 00000311: CALLVALUE 00000312: DUP1 00000313: ISZERO 00000314: PUSH2 0x031b 00000317: JUMPI 00000318: PUSH0 00000319: DUP1 0000031a: REVERT 0000031b: JUMPDEST 0000031c: POP 0000031d: PUSH2 0x023d 00000320: PUSH2 0x032a 00000323: CALLDATASIZE 00000324: PUSH1 0x04 00000326: PUSH2 0x4880 00000329: JUMP 0000032a: JUMPDEST 0000032b: PUSH2 0x0bfe 0000032e: JUMP 0000032f: JUMPDEST 00000330: CALLVALUE 00000331: DUP1 00000332: ISZERO 00000333: PUSH2 0x033a 00000336: JUMPI 00000337: PUSH0 00000338: DUP1 00000339: REVERT 0000033a: JUMPDEST 0000033b: POP 0000033c: PUSH2 0x023d 0000033f: PUSH2 0x1123 00000342: JUMP 00000343: JUMPDEST 00000344: CALLVALUE 00000345: DUP1 00000346: ISZERO 00000347: PUSH2 0x034e 0000034a: JUMPI 0000034b: PUSH0 0000034c: DUP1 0000034d: REVERT 0000034e: JUMPDEST 0000034f: POP 00000350: PUSH2 0x023d 00000353: PUSH2 0x035d 00000356: CALLDATASIZE 00000357: PUSH1 0x04 00000359: PUSH2 0x481b 0000035c: JUMP 0000035d: JUMPDEST 0000035e: PUSH2 0x11fb 00000361: JUMP 00000362: JUMPDEST 00000363: CALLVALUE 00000364: DUP1 00000365: ISZERO 00000366: PUSH2 0x036d 00000369: JUMPI 0000036a: PUSH0 0000036b: DUP1 0000036c: REVERT 0000036d: JUMPDEST 0000036e: POP 0000036f: PUSH2 0x0217 00000372: PUSH2 0x13d7 00000375: JUMP 00000376: JUMPDEST 00000377: CALLVALUE 00000378: DUP1 00000379: ISZERO 0000037a: PUSH2 0x0381 0000037d: JUMPI 0000037e: PUSH0 0000037f: DUP1 00000380: REVERT 00000381: JUMPDEST 00000382: POP 00000383: PUSH2 0x025e 00000386: PUSH2 0x1588 00000389: JUMP 0000038a: JUMPDEST 0000038b: CALLVALUE 0000038c: DUP1 0000038d: ISZERO 0000038e: PUSH2 0x0395 00000391: JUMPI 00000392: PUSH0 00000393: DUP1 00000394: REVERT 00000395: JUMPDEST 00000396: POP 00000397: PUSH2 0x023d 0000039a: PUSH2 0x03a4 0000039d: CALLDATASIZE 0000039e: PUSH1 0x04 000003a0: PUSH2 0x4902 000003a3: JUMP 000003a4: JUMPDEST 000003a5: PUSH2 0x160e 000003a8: JUMP 000003a9: JUMPDEST 000003aa: CALLVALUE 000003ab: DUP1 000003ac: ISZERO 000003ad: PUSH2 0x03b4 000003b0: JUMPI 000003b1: PUSH0 000003b2: DUP1 000003b3: REVERT 000003b4: JUMPDEST 000003b5: POP 000003b6: PUSH1 0x65 000003b8: SLOAD 000003b9: PUSH1 0xff 000003bb: AND 000003bc: JUMPDEST 000003bd: PUSH1 0x40 000003bf: MLOAD 000003c0: SWAP1 000003c1: ISZERO 000003c2: ISZERO 000003c3: DUP2 000003c4: MSTORE 000003c5: PUSH1 0x20 000003c7: ADD 000003c8: PUSH2 0x0221 000003cb: JUMP 000003cc: JUMPDEST 000003cd: CALLVALUE 000003ce: DUP1 000003cf: ISZERO 000003d0: PUSH2 0x03d7 000003d3: JUMPI 000003d4: PUSH0 000003d5: DUP1 000003d6: REVERT 000003d7: JUMPDEST 000003d8: POP 000003d9: PUSH2 0x023d 000003dc: PUSH2 0x03e6 000003df: CALLDATASIZE 000003e0: PUSH1 0x04 000003e2: PUSH2 0x4919 000003e5: JUMP 000003e6: JUMPDEST 000003e7: PUSH2 0x17b8 000003ea: JUMP 000003eb: JUMPDEST 000003ec: CALLVALUE 000003ed: DUP1 000003ee: ISZERO 000003ef: PUSH2 0x03f6 000003f2: JUMPI 000003f3: PUSH0 000003f4: DUP1 000003f5: REVERT 000003f6: JUMPDEST 000003f7: POP 000003f8: PUSH2 0x03ff 000003fb: PUSH2 0x1e66 000003fe: JUMP 000003ff: JUMPDEST 00000400: PUSH1 0x40 00000402: MLOAD 00000403: PUSH2 0x0221 00000406: SWAP2 00000407: SWAP1 00000408: PUSH2 0x49eb 0000040b: JUMP 0000040c: JUMPDEST 0000040d: CALLVALUE 0000040e: DUP1 0000040f: ISZERO 00000410: PUSH2 0x0417 00000413: JUMPI 00000414: PUSH0 00000415: DUP1 00000416: REVERT 00000417: JUMPDEST 00000418: POP 00000419: PUSH2 0x0217 0000041c: PUSH2 0x0426 0000041f: CALLDATASIZE 00000420: PUSH1 0x04 00000422: PUSH2 0x4a4b 00000425: JUMP 00000426: JUMPDEST 00000427: PUSH1 0x9f 00000429: PUSH1 0x20 0000042b: MSTORE 0000042c: PUSH0 0000042d: SWAP1 0000042e: DUP2 0000042f: MSTORE 00000430: PUSH1 0x40 00000432: SWAP1 00000433: KECCAK256 00000434: SLOAD 00000435: DUP2 00000436: JUMP 00000437: JUMPDEST 00000438: CALLVALUE 00000439: DUP1 0000043a: ISZERO 0000043b: PUSH2 0x0442 0000043e: JUMPI 0000043f: PUSH0 00000440: DUP1 00000441: REVERT 00000442: JUMPDEST 00000443: POP 00000444: PUSH1 0x97 00000446: SLOAD 00000447: PUSH2 0x025e 0000044a: SWAP1 0000044b: PUSH1 0x01 0000044d: PUSH1 0x01 0000044f: PUSH1 0xa0 00000451: SHL 00000452: SUB 00000453: AND 00000454: DUP2 00000455: JUMP 00000456: JUMPDEST 00000457: CALLVALUE 00000458: DUP1 00000459: ISZERO 0000045a: PUSH2 0x0461 0000045d: JUMPI 0000045e: PUSH0 0000045f: DUP1 00000460: REVERT 00000461: JUMPDEST 00000462: POP 00000463: PUSH1 0x9b 00000465: SLOAD 00000466: PUSH2 0x025e 00000469: SWAP1 0000046a: PUSH1 0x01 0000046c: PUSH1 0x01 0000046e: PUSH1 0xa0 00000470: SHL 00000471: SUB 00000472: AND 00000473: DUP2 00000474: JUMP 00000475: JUMPDEST 00000476: CALLVALUE 00000477: DUP1 00000478: ISZERO 00000479: PUSH2 0x0480 0000047c: JUMPI 0000047d: PUSH0 0000047e: DUP1 0000047f: REVERT 00000480: JUMPDEST 00000481: POP 00000482: PUSH2 0x0489 00000485: PUSH2 0x1ed5 00000488: JUMP 00000489: JUMPDEST 0000048a: PUSH1 0x40 0000048c: DUP1 0000048d: MLOAD 0000048e: SWAP3 0000048f: DUP4 00000490: MSTORE 00000491: PUSH1 0x20 00000493: DUP4 00000494: ADD 00000495: SWAP2 00000496: SWAP1 00000497: SWAP2 00000498: MSTORE 00000499: ADD 0000049a: PUSH2 0x0221 0000049d: JUMP 0000049e: JUMPDEST 0000049f: CALLVALUE 000004a0: DUP1 000004a1: ISZERO 000004a2: PUSH2 0x04a9 000004a5: JUMPI 000004a6: PUSH0 000004a7: DUP1 000004a8: REVERT 000004a9: JUMPDEST 000004aa: POP 000004ab: PUSH2 0x023d 000004ae: PUSH2 0x2150 000004b1: JUMP 000004b2: JUMPDEST 000004b3: CALLVALUE 000004b4: DUP1 000004b5: ISZERO 000004b6: PUSH2 0x04bd 000004b9: JUMPI 000004ba: PUSH0 000004bb: DUP1 000004bc: REVERT 000004bd: JUMPDEST 000004be: POP 000004bf: PUSH1 0x9b 000004c1: SLOAD 000004c2: PUSH2 0x04d4 000004c5: SWAP1 000004c6: PUSH1 0x01 000004c8: PUSH1 0xa0 000004ca: SHL 000004cb: SWAP1 000004cc: DIV 000004cd: PUSH3 0xffffff 000004d1: AND 000004d2: DUP2 000004d3: JUMP 000004d4: JUMPDEST 000004d5: PUSH1 0x40 000004d7: MLOAD 000004d8: PUSH3 0xffffff 000004dc: SWAP1 000004dd: SWAP2 000004de: AND 000004df: DUP2 000004e0: MSTORE 000004e1: PUSH1 0x20 000004e3: ADD 000004e4: PUSH2 0x0221 000004e7: JUMP 000004e8: JUMPDEST 000004e9: CALLVALUE 000004ea: DUP1 000004eb: ISZERO 000004ec: PUSH2 0x04f3 000004ef: JUMPI 000004f0: PUSH0 000004f1: DUP1 000004f2: REVERT 000004f3: JUMPDEST 000004f4: POP 000004f5: PUSH2 0x0507 000004f8: PUSH2 0x0502 000004fb: CALLDATASIZE 000004fc: PUSH1 0x04 000004fe: PUSH2 0x4a66 00000501: JUMP 00000502: JUMPDEST 00000503: PUSH2 0x2225 00000506: JUMP 00000507: JUMPDEST 00000508: PUSH1 0x40 0000050a: MLOAD 0000050b: PUSH2 0x0221 0000050e: SWAP2 0000050f: SWAP1 00000510: PUSH2 0x4b02 00000513: JUMP 00000514: JUMPDEST 00000515: CALLVALUE 00000516: DUP1 00000517: ISZERO 00000518: PUSH2 0x051f 0000051b: JUMPI 0000051c: PUSH0 0000051d: DUP1 0000051e: REVERT 0000051f: JUMPDEST 00000520: POP 00000521: PUSH2 0x0489 00000524: PUSH2 0x052e 00000527: CALLDATASIZE 00000528: PUSH1 0x04 0000052a: PUSH2 0x4a4b 0000052d: JUMP 0000052e: JUMPDEST 0000052f: PUSH2 0x2320 00000532: JUMP 00000533: JUMPDEST 00000534: CALLVALUE 00000535: DUP1 00000536: ISZERO 00000537: PUSH2 0x053e 0000053a: JUMPI 0000053b: PUSH0 0000053c: DUP1 0000053d: REVERT 0000053e: JUMPDEST 0000053f: POP 00000540: PUSH2 0x0217 00000543: PUSH32 0xae9c8e22b1f7ab201e144775cd6f848c3c1b0a82315571de8c67ce32ca9a7d44 00000564: DUP2 00000565: JUMP 00000566: JUMPDEST 00000567: CALLVALUE 00000568: DUP1 00000569: ISZERO 0000056a: PUSH2 0x0571 0000056d: JUMPI 0000056e: PUSH0 0000056f: DUP1 00000570: REVERT 00000571: JUMPDEST 00000572: POP 00000573: PUSH2 0x023d 00000576: PUSH2 0x0580 00000579: CALLDATASIZE 0000057a: PUSH1 0x04 0000057c: PUSH2 0x4902 0000057f: JUMP 00000580: JUMPDEST 00000581: PUSH2 0x24f5 00000584: JUMP 00000585: JUMPDEST 00000586: CALLVALUE 00000587: DUP1 00000588: ISZERO 00000589: PUSH2 0x0590 0000058c: JUMPI 0000058d: PUSH0 0000058e: DUP1 0000058f: REVERT 00000590: JUMPDEST 00000591: POP 00000592: PUSH2 0x023d 00000595: PUSH2 0x059f 00000598: CALLDATASIZE 00000599: PUSH1 0x04 0000059b: PUSH2 0x4a66 0000059e: JUMP 0000059f: JUMPDEST 000005a0: PUSH2 0x25bd 000005a3: JUMP 000005a4: JUMPDEST 000005a5: CALLVALUE 000005a6: DUP1 000005a7: ISZERO 000005a8: PUSH2 0x05af 000005ab: JUMPI 000005ac: PUSH0 000005ad: DUP1 000005ae: REVERT 000005af: JUMPDEST 000005b0: POP 000005b1: PUSH2 0x0489 000005b4: PUSH2 0x2613 000005b7: JUMP 000005b8: JUMPDEST 000005b9: CALLVALUE 000005ba: DUP1 000005bb: ISZERO 000005bc: PUSH2 0x05c3 000005bf: JUMPI 000005c0: PUSH0 000005c1: DUP1 000005c2: REVERT 000005c3: JUMPDEST 000005c4: POP 000005c5: PUSH2 0x0489 000005c8: PUSH2 0x2641 000005cb: JUMP 000005cc: JUMPDEST 000005cd: CALLVALUE 000005ce: DUP1 000005cf: ISZERO 000005d0: PUSH2 0x05d7 000005d3: JUMPI 000005d4: PUSH0 000005d5: DUP1 000005d6: REVERT 000005d7: JUMPDEST 000005d8: POP 000005d9: PUSH2 0x05eb 000005dc: PUSH2 0x05e6 000005df: CALLDATASIZE 000005e0: PUSH1 0x04 000005e2: PUSH2 0x4d61 000005e5: JUMP 000005e6: JUMPDEST 000005e7: PUSH2 0x282b 000005ea: JUMP 000005eb: JUMPDEST 000005ec: PUSH1 0x40 000005ee: DUP1 000005ef: MLOAD 000005f0: SWAP5 000005f1: DUP6 000005f2: MSTORE 000005f3: PUSH1 0x20 000005f5: DUP6 000005f6: ADD 000005f7: SWAP4 000005f8: SWAP1 000005f9: SWAP4 000005fa: MSTORE 000005fb: SWAP2 000005fc: DUP4 000005fd: ADD 000005fe: MSTORE 000005ff: PUSH1 0x60 00000601: DUP3 00000602: ADD 00000603: MSTORE 00000604: PUSH1 0x80 00000606: ADD 00000607: PUSH2 0x0221 0000060a: JUMP 0000060b: JUMPDEST 0000060c: CALLVALUE 0000060d: DUP1 0000060e: ISZERO 0000060f: PUSH2 0x0616 00000612: JUMPI 00000613: PUSH0 00000614: DUP1 00000615: REVERT 00000616: JUMPDEST 00000617: POP 00000618: PUSH1 0x99 0000061a: SLOAD 0000061b: PUSH2 0x025e 0000061e: SWAP1 0000061f: PUSH1 0x01 00000621: PUSH1 0x01 00000623: PUSH1 0xa0 00000625: SHL 00000626: SUB 00000627: AND 00000628: DUP2 00000629: JUMP 0000062a: JUMPDEST 0000062b: CALLVALUE 0000062c: DUP1 0000062d: ISZERO 0000062e: PUSH2 0x0635 00000631: JUMPI 00000632: PUSH0 00000633: DUP1 00000634: REVERT 00000635: JUMPDEST 00000636: POP 00000637: PUSH2 0x025e 0000063a: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 0000065b: DUP2 0000065c: JUMP 0000065d: JUMPDEST 0000065e: CALLVALUE 0000065f: DUP1 00000660: ISZERO 00000661: PUSH2 0x0668 00000664: JUMPI 00000665: PUSH0 00000666: DUP1 00000667: REVERT 00000668: JUMPDEST 00000669: POP 0000066a: PUSH2 0x023d 0000066d: PUSH2 0x0677 00000670: CALLDATASIZE 00000671: PUSH1 0x04 00000673: PUSH2 0x4e48 00000676: JUMP 00000677: JUMPDEST 00000678: PUSH2 0x2a1c 0000067b: JUMP 0000067c: JUMPDEST 0000067d: CALLVALUE 0000067e: DUP1 0000067f: ISZERO 00000680: PUSH2 0x0687 00000683: JUMPI 00000684: PUSH0 00000685: DUP1 00000686: REVERT 00000687: JUMPDEST 00000688: POP 00000689: PUSH2 0x0217 0000068c: PUSH1 0x9a 0000068e: SLOAD 0000068f: DUP2 00000690: JUMP 00000691: JUMPDEST 00000692: CALLVALUE 00000693: DUP1 00000694: ISZERO 00000695: PUSH2 0x069c 00000698: JUMPI 00000699: PUSH0 0000069a: DUP1 0000069b: REVERT 0000069c: JUMPDEST 0000069d: POP 0000069e: PUSH2 0x0489 000006a1: PUSH2 0x06ab 000006a4: CALLDATASIZE 000006a5: PUSH1 0x04 000006a7: PUSH2 0x4e7f 000006aa: JUMP 000006ab: JUMPDEST 000006ac: PUSH2 0x2e22 000006af: JUMP 000006b0: JUMPDEST 000006b1: CALLVALUE 000006b2: DUP1 000006b3: ISZERO 000006b4: PUSH2 0x06bb 000006b7: JUMPI 000006b8: PUSH0 000006b9: DUP1 000006ba: REVERT 000006bb: JUMPDEST 000006bc: POP 000006bd: PUSH1 0x99 000006bf: SLOAD 000006c0: PUSH2 0x03bc 000006c3: SWAP1 000006c4: PUSH1 0x01 000006c6: PUSH1 0xa0 000006c8: SHL 000006c9: SWAP1 000006ca: DIV 000006cb: PUSH1 0xff 000006cd: AND 000006ce: DUP2 000006cf: JUMP 000006d0: JUMPDEST 000006d1: PUSH1 0x40 000006d3: DUP1 000006d4: MLOAD 000006d5: PUSH1 0xa0 000006d7: DUP2 000006d8: ADD 000006d9: DUP3 000006da: MSTORE 000006db: PUSH1 0x9c 000006dd: SLOAD 000006de: PUSH1 0x01 000006e0: PUSH1 0x01 000006e2: PUSH1 0xa0 000006e4: SHL 000006e5: SUB 000006e6: SWAP1 000006e7: DUP2 000006e8: AND 000006e9: DUP3 000006ea: MSTORE 000006eb: PUSH1 0x9d 000006ed: SLOAD 000006ee: DUP1 000006ef: DUP3 000006f0: AND 000006f1: PUSH1 0x20 000006f3: DUP5 000006f4: ADD 000006f5: MSTORE 000006f6: PUSH3 0xffffff 000006fa: PUSH1 0x01 000006fc: PUSH1 0xa0 000006fe: SHL 000006ff: DUP3 00000700: DIV 00000701: AND 00000702: SWAP4 00000703: DUP4 00000704: ADD 00000705: SWAP4 00000706: SWAP1 00000707: SWAP4 00000708: MSTORE 00000709: PUSH24 0x010000000000000000000000000000000000000000000000 00000722: SWAP1 00000723: SWAP3 00000724: DIV 00000725: PUSH1 0x02 00000727: SIGNEXTEND 00000728: PUSH1 0x60 0000072a: DUP3 0000072b: ADD 0000072c: MSTORE 0000072d: PUSH1 0x9e 0000072f: SLOAD 00000730: SWAP1 00000731: SWAP2 00000732: AND 00000733: PUSH1 0x80 00000735: DUP3 00000736: ADD 00000737: MSTORE 00000738: PUSH0 00000739: SWAP1 0000073a: DUP2 0000073b: PUSH2 0x0745 0000073e: PUSH1 0xa2 00000740: DUP4 00000741: PUSH2 0x30ac 00000744: JUMP 00000745: JUMPDEST 00000746: SWAP1 00000747: POP 00000748: PUSH0 00000749: DUP1 0000074a: PUSH2 0x0753 0000074d: ADDRESS 0000074e: DUP6 0000074f: PUSH2 0x31e0 00000752: JUMP 00000753: JUMPDEST 00000754: SWAP2 00000755: POP 00000756: SWAP2 00000757: POP 00000758: PUSH0 00000759: PUSH2 0x0796 0000075c: PUSH2 0x0766 0000075f: DUP7 00000760: PUSH1 0xa0 00000762: SWAP1 00000763: KECCAK256 00000764: SWAP1 00000765: JUMP 00000766: JUMPDEST 00000767: PUSH1 0x01 00000769: PUSH1 0x01 0000076b: PUSH1 0xa0 0000076d: SHL 0000076e: SUB 0000076f: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00000790: AND 00000791: SWAP1 00000792: PUSH2 0x330c 00000795: JUMP 00000796: JUMPDEST 00000797: POP 00000798: POP 00000799: POP 0000079a: SWAP1 0000079b: POP 0000079c: PUSH0 0000079d: DUP1 0000079e: PUSH20 0xb2ba4b781eb2e575a928e54c404b67b904a4dbeb 000007b3: PUSH4 0xbc421200 000007b8: PUSH1 0x40 000007ba: MLOAD 000007bb: DUP1 000007bc: PUSH1 0xa0 000007be: ADD 000007bf: PUSH1 0x40 000007c1: MSTORE 000007c2: DUP1 000007c3: DUP10 000007c4: DUP2 000007c5: MSTORE 000007c6: PUSH1 0x20 000007c8: ADD 000007c9: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000007ea: PUSH1 0x01 000007ec: PUSH1 0x01 000007ee: PUSH1 0xa0 000007f0: SHL 000007f1: SUB 000007f2: AND 000007f3: DUP2 000007f4: MSTORE 000007f5: PUSH1 0x20 000007f7: ADD 000007f8: ADDRESS 000007f9: PUSH1 0x01 000007fb: PUSH1 0x01 000007fd: PUSH1 0xa0 000007ff: SHL 00000800: SUB 00000801: AND 00000802: DUP2 00000803: MSTORE 00000804: PUSH1 0x20 00000806: ADD 00000807: DUP9 00000808: DUP2 00000809: MSTORE 0000080a: PUSH1 0x20 0000080c: ADD 0000080d: DUP8 0000080e: DUP2 0000080f: MSTORE 00000810: POP 00000811: DUP6 00000812: PUSH1 0x40 00000814: MLOAD 00000815: DUP4 00000816: PUSH4 0xffffffff 0000081b: AND 0000081c: PUSH1 0xe0 0000081e: SHL 0000081f: DUP2 00000820: MSTORE 00000821: PUSH1 0x04 00000823: ADD 00000824: PUSH2 0x082e 00000827: SWAP3 00000828: SWAP2 00000829: SWAP1 0000082a: PUSH2 0x4ea9 0000082d: JUMP 0000082e: JUMPDEST 0000082f: PUSH1 0x80 00000831: PUSH1 0x40 00000833: MLOAD 00000834: DUP1 00000835: DUP4 00000836: SUB 00000837: DUP2 00000838: DUP7 00000839: GAS 0000083a: DELEGATECALL 0000083b: ISZERO 0000083c: DUP1 0000083d: ISZERO 0000083e: PUSH2 0x0849 00000841: JUMPI 00000842: RETURNDATASIZE 00000843: PUSH0 00000844: DUP1 00000845: RETURNDATACOPY 00000846: RETURNDATASIZE 00000847: PUSH0 00000848: REVERT 00000849: JUMPDEST 0000084a: POP 0000084b: POP 0000084c: POP 0000084d: POP 0000084e: PUSH1 0x40 00000850: MLOAD 00000851: RETURNDATASIZE 00000852: PUSH1 0x1f 00000854: NOT 00000855: PUSH1 0x1f 00000857: DUP3 00000858: ADD 00000859: AND 0000085a: DUP3 0000085b: ADD 0000085c: DUP1 0000085d: PUSH1 0x40 0000085f: MSTORE 00000860: POP 00000861: DUP2 00000862: ADD 00000863: SWAP1 00000864: PUSH2 0x086d 00000867: SWAP2 00000868: SWAP1 00000869: PUSH2 0x4fc4 0000086c: JUMP 0000086d: JUMPDEST 0000086e: SWAP4 0000086f: POP 00000870: SWAP4 00000871: POP 00000872: POP 00000873: POP 00000874: PUSH1 0x99 00000876: PUSH1 0x14 00000878: SWAP1 00000879: SLOAD 0000087a: SWAP1 0000087b: PUSH2 0x0100 0000087e: EXP 0000087f: SWAP1 00000880: DIV 00000881: PUSH1 0xff 00000883: AND 00000884: PUSH2 0x08a1 00000887: JUMPI 00000888: PUSH2 0x089c 0000088b: DUP3 0000088c: PUSH1 0x9a 0000088e: SLOAD 0000088f: PUSH3 0x0f4240 00000893: PUSH3 0xffffff 00000897: AND 00000898: PUSH2 0x33d7 0000089b: JUMP 0000089c: JUMPDEST 0000089d: PUSH2 0x08b6 000008a0: JUMP 000008a1: JUMPDEST 000008a2: PUSH2 0x08b6 000008a5: DUP2 000008a6: PUSH1 0x9a 000008a8: SLOAD 000008a9: PUSH3 0x0f4240 000008ad: PUSH3 0xffffff 000008b1: AND 000008b2: PUSH2 0x33d7 000008b5: JUMP 000008b6: JUMPDEST 000008b7: SWAP8 000008b8: POP 000008b9: POP 000008ba: POP 000008bb: POP 000008bc: POP 000008bd: POP 000008be: POP 000008bf: POP 000008c0: SWAP1 000008c1: JUMP 000008c2: JUMPDEST 000008c3: PUSH1 0x97 000008c5: SLOAD 000008c6: PUSH1 0x01 000008c8: PUSH1 0x01 000008ca: PUSH1 0xa0 000008cc: SHL 000008cd: SUB 000008ce: AND 000008cf: CALLER 000008d0: DUP2 000008d1: EQ 000008d2: PUSH2 0x091d 000008d5: JUMPI 000008d6: PUSH1 0x40 000008d8: MLOAD 000008d9: PUSH32 0xbf8a293200000000000000000000000000000000000000000000000000000000 000008fa: DUP2 000008fb: MSTORE 000008fc: CALLER 000008fd: PUSH1 0x04 000008ff: DUP3 00000900: ADD 00000901: MSTORE 00000902: PUSH1 0x01 00000904: PUSH1 0x01 00000906: PUSH1 0xa0 00000908: SHL 00000909: SUB 0000090a: DUP3 0000090b: AND 0000090c: PUSH1 0x24 0000090e: DUP3 0000090f: ADD 00000910: MSTORE 00000911: PUSH1 0x44 00000913: ADD 00000914: JUMPDEST 00000915: PUSH1 0x40 00000917: MLOAD 00000918: DUP1 00000919: SWAP2 0000091a: SUB 0000091b: SWAP1 0000091c: REVERT 0000091d: JUMPDEST 0000091e: PUSH2 0x0925 00000921: PUSH2 0x3493 00000924: JUMP 00000925: JUMPDEST 00000926: PUSH2 0x092d 00000929: PUSH2 0x34e8 0000092c: JUMP 0000092d: JUMPDEST 0000092e: PUSH1 0x01 00000930: PUSH1 0x01 00000932: PUSH1 0xa0 00000934: SHL 00000935: SUB 00000936: DUP5 00000937: AND 00000938: PUSH2 0x096d 0000093b: JUMPI 0000093c: PUSH1 0x40 0000093e: MLOAD 0000093f: PUSH32 0x9fabe1c100000000000000000000000000000000000000000000000000000000 00000960: DUP2 00000961: MSTORE 00000962: PUSH1 0x04 00000964: ADD 00000965: PUSH1 0x40 00000967: MLOAD 00000968: DUP1 00000969: SWAP2 0000096a: SUB 0000096b: SWAP1 0000096c: REVERT 0000096d: JUMPDEST 0000096e: DUP3 0000096f: ISZERO 00000970: DUP1 00000971: ISZERO 00000972: PUSH2 0x0979 00000975: JUMPI 00000976: POP 00000977: DUP2 00000978: ISZERO 00000979: JUMPDEST 0000097a: ISZERO 0000097b: PUSH2 0x09b0 0000097e: JUMPI 0000097f: PUSH1 0x40 00000981: MLOAD 00000982: PUSH32 0xeca6f47b00000000000000000000000000000000000000000000000000000000 000009a3: DUP2 000009a4: MSTORE 000009a5: PUSH1 0x04 000009a7: ADD 000009a8: PUSH1 0x40 000009aa: MLOAD 000009ab: DUP1 000009ac: SWAP2 000009ad: SUB 000009ae: SWAP1 000009af: REVERT 000009b0: JUMPDEST 000009b1: PUSH1 0x9c 000009b3: SLOAD 000009b4: PUSH1 0x01 000009b6: PUSH1 0x01 000009b8: PUSH1 0xa0 000009ba: SHL 000009bb: SUB 000009bc: AND 000009bd: PUSH2 0x0a85 000009c0: JUMPI 000009c1: PUSH1 0x99 000009c3: SLOAD 000009c4: PUSH1 0x01 000009c6: PUSH1 0xa0 000009c8: SHL 000009c9: SWAP1 000009ca: DIV 000009cb: PUSH1 0xff 000009cd: AND 000009ce: ISZERO 000009cf: PUSH2 0x0a36 000009d2: JUMPI 000009d3: CALLVALUE 000009d4: DUP3 000009d5: GT 000009d6: ISZERO 000009d7: PUSH2 0x0a0c 000009da: JUMPI 000009db: PUSH1 0x40 000009dd: MLOAD 000009de: PUSH32 0x1841b4e100000000000000000000000000000000000000000000000000000000 000009ff: DUP2 00000a00: MSTORE 00000a01: PUSH1 0x04 00000a03: ADD 00000a04: PUSH1 0x40 00000a06: MLOAD 00000a07: DUP1 00000a08: SWAP2 00000a09: SUB 00000a0a: SWAP1 00000a0b: REVERT 00000a0c: JUMPDEST 00000a0d: CALLVALUE 00000a0e: DUP3 00000a0f: LT 00000a10: ISZERO 00000a11: PUSH2 0x0a31 00000a14: JUMPI 00000a15: PUSH2 0x0a31 00000a18: PUSH2 0x0a21 00000a1b: DUP4 00000a1c: CALLVALUE 00000a1d: PUSH2 0x5024 00000a20: JUMP 00000a21: JUMPDEST 00000a22: PUSH1 0x01 00000a24: PUSH1 0x01 00000a26: PUSH1 0xa0 00000a28: SHL 00000a29: SUB 00000a2a: DUP7 00000a2b: AND 00000a2c: SWAP1 00000a2d: PUSH2 0x3541 00000a30: JUMP 00000a31: JUMPDEST 00000a32: PUSH2 0x0a85 00000a35: JUMP 00000a36: JUMPDEST 00000a37: CALLVALUE 00000a38: DUP4 00000a39: GT 00000a3a: ISZERO 00000a3b: PUSH2 0x0a70 00000a3e: JUMPI 00000a3f: PUSH1 0x40 00000a41: MLOAD 00000a42: PUSH32 0x1841b4e100000000000000000000000000000000000000000000000000000000 00000a63: DUP2 00000a64: MSTORE 00000a65: PUSH1 0x04 00000a67: ADD 00000a68: PUSH1 0x40 00000a6a: MLOAD 00000a6b: DUP1 00000a6c: SWAP2 00000a6d: SUB 00000a6e: SWAP1 00000a6f: REVERT 00000a70: JUMPDEST 00000a71: CALLVALUE 00000a72: DUP4 00000a73: LT 00000a74: ISZERO 00000a75: PUSH2 0x0a85 00000a78: JUMPI 00000a79: PUSH2 0x0a85 00000a7c: PUSH2 0x0a21 00000a7f: DUP5 00000a80: CALLVALUE 00000a81: PUSH2 0x5024 00000a84: JUMP 00000a85: JUMPDEST 00000a86: PUSH1 0x40 00000a88: DUP1 00000a89: MLOAD 00000a8a: PUSH1 0x01 00000a8c: PUSH1 0x01 00000a8e: PUSH1 0xa0 00000a90: SHL 00000a91: SUB 00000a92: DUP7 00000a93: AND 00000a94: PUSH1 0x20 00000a96: DUP3 00000a97: ADD 00000a98: MSTORE 00000a99: SWAP1 00000a9a: DUP2 00000a9b: ADD 00000a9c: DUP5 00000a9d: SWAP1 00000a9e: MSTORE 00000a9f: PUSH1 0x60 00000aa1: DUP2 00000aa2: ADD 00000aa3: DUP4 00000aa4: SWAP1 00000aa5: MSTORE 00000aa6: PUSH0 00000aa7: SWAP1 00000aa8: PUSH1 0x02 00000aaa: SWAP1 00000aab: PUSH1 0x80 00000aad: ADD 00000aae: PUSH1 0x40 00000ab0: DUP1 00000ab1: MLOAD 00000ab2: PUSH1 0x1f 00000ab4: NOT 00000ab5: DUP2 00000ab6: DUP5 00000ab7: SUB 00000ab8: ADD 00000ab9: DUP2 00000aba: MSTORE 00000abb: SWAP1 00000abc: DUP3 00000abd: SWAP1 00000abe: MSTORE 00000abf: PUSH2 0x0acb 00000ac2: SWAP3 00000ac3: SWAP2 00000ac4: PUSH1 0x20 00000ac6: ADD 00000ac7: PUSH2 0x5064 00000aca: JUMP 00000acb: JUMPDEST 00000acc: PUSH1 0x40 00000ace: DUP1 00000acf: MLOAD 00000ad0: PUSH1 0x1f 00000ad2: NOT 00000ad3: DUP2 00000ad4: DUP5 00000ad5: SUB 00000ad6: ADD 00000ad7: DUP2 00000ad8: MSTORE 00000ad9: SWAP1 00000ada: DUP3 00000adb: SWAP1 00000adc: MSTORE 00000add: PUSH32 0x48c8949100000000000000000000000000000000000000000000000000000000 00000afe: DUP3 00000aff: MSTORE 00000b00: SWAP2 00000b01: POP 00000b02: PUSH0 00000b03: SWAP1 00000b04: PUSH1 0x01 00000b06: PUSH1 0x01 00000b08: PUSH1 0xa0 00000b0a: SHL 00000b0b: SUB 00000b0c: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00000b2d: AND 00000b2e: SWAP1 00000b2f: PUSH4 0x48c89491 00000b34: SWAP1 00000b35: PUSH2 0x0b42 00000b38: SWAP1 00000b39: DUP6 00000b3a: SWAP1 00000b3b: PUSH1 0x04 00000b3d: ADD 00000b3e: PUSH2 0x4b02 00000b41: JUMP 00000b42: JUMPDEST 00000b43: PUSH0 00000b44: PUSH1 0x40 00000b46: MLOAD 00000b47: DUP1 00000b48: DUP4 00000b49: SUB 00000b4a: DUP2 00000b4b: PUSH0 00000b4c: DUP8 00000b4d: GAS 00000b4e: CALL 00000b4f: ISZERO 00000b50: DUP1 00000b51: ISZERO 00000b52: PUSH2 0x0b5d 00000b55: JUMPI 00000b56: RETURNDATASIZE 00000b57: PUSH0 00000b58: DUP1 00000b59: RETURNDATACOPY 00000b5a: RETURNDATASIZE 00000b5b: PUSH0 00000b5c: REVERT 00000b5d: JUMPDEST 00000b5e: POP 00000b5f: POP 00000b60: POP 00000b61: POP 00000b62: PUSH1 0x40 00000b64: MLOAD 00000b65: RETURNDATASIZE 00000b66: PUSH0 00000b67: DUP3 00000b68: RETURNDATACOPY 00000b69: PUSH1 0x1f 00000b6b: RETURNDATASIZE 00000b6c: SWAP1 00000b6d: DUP2 00000b6e: ADD 00000b6f: PUSH1 0x1f 00000b71: NOT 00000b72: AND 00000b73: DUP3 00000b74: ADD 00000b75: PUSH1 0x40 00000b77: MSTORE 00000b78: PUSH2 0x0b84 00000b7b: SWAP2 00000b7c: SWAP1 00000b7d: DUP2 00000b7e: ADD 00000b7f: SWAP1 00000b80: PUSH2 0x50fe 00000b83: JUMP 00000b84: JUMPDEST 00000b85: SWAP1 00000b86: POP 00000b87: PUSH0 00000b88: DUP1 00000b89: DUP3 00000b8a: DUP1 00000b8b: PUSH1 0x20 00000b8d: ADD 00000b8e: SWAP1 00000b8f: MLOAD 00000b90: DUP2 00000b91: ADD 00000b92: SWAP1 00000b93: PUSH2 0x0b9c 00000b96: SWAP2 00000b97: SWAP1 00000b98: PUSH2 0x5130 00000b9b: JUMP 00000b9c: JUMPDEST 00000b9d: PUSH1 0x40 00000b9f: DUP1 00000ba0: MLOAD 00000ba1: PUSH1 0x01 00000ba3: PUSH1 0x01 00000ba5: PUSH1 0xa0 00000ba7: SHL 00000ba8: SUB 00000ba9: DUP13 00000baa: AND 00000bab: DUP2 00000bac: MSTORE 00000bad: PUSH1 0x20 00000baf: DUP2 00000bb0: ADD 00000bb1: DUP5 00000bb2: SWAP1 00000bb3: MSTORE 00000bb4: SWAP1 00000bb5: DUP2 00000bb6: ADD 00000bb7: DUP3 00000bb8: SWAP1 00000bb9: MSTORE 00000bba: SWAP2 00000bbb: SWAP4 00000bbc: POP 00000bbd: SWAP2 00000bbe: POP 00000bbf: PUSH32 0xb6b61f73303cc86cb9e6eee7756d1334f129e7711d778aa201fb3fa611dfe6dd 00000be0: SWAP1 00000be1: PUSH1 0x60 00000be3: ADD 00000be4: PUSH1 0x40 00000be6: MLOAD 00000be7: DUP1 00000be8: SWAP2 00000be9: SUB 00000bea: SWAP1 00000beb: LOG1 00000bec: POP 00000bed: POP 00000bee: POP 00000bef: POP 00000bf0: PUSH2 0x0bf8 00000bf3: PUSH1 0x01 00000bf5: DUP1 00000bf6: SSTORE 00000bf7: JUMP 00000bf8: JUMPDEST 00000bf9: POP 00000bfa: POP 00000bfb: POP 00000bfc: POP 00000bfd: JUMP 00000bfe: JUMPDEST 00000bff: PUSH0 00000c00: SLOAD 00000c01: PUSH2 0x0100 00000c04: SWAP1 00000c05: DIV 00000c06: PUSH1 0xff 00000c08: AND 00000c09: ISZERO 00000c0a: DUP1 00000c0b: DUP1 00000c0c: ISZERO 00000c0d: PUSH2 0x0c1c 00000c10: JUMPI 00000c11: POP 00000c12: PUSH0 00000c13: SLOAD 00000c14: PUSH1 0x01 00000c16: PUSH1 0xff 00000c18: SWAP1 00000c19: SWAP2 00000c1a: AND 00000c1b: LT 00000c1c: JUMPDEST 00000c1d: DUP1 00000c1e: PUSH2 0x0c35 00000c21: JUMPI 00000c22: POP 00000c23: ADDRESS 00000c24: EXTCODESIZE 00000c25: ISZERO 00000c26: DUP1 00000c27: ISZERO 00000c28: PUSH2 0x0c35 00000c2b: JUMPI 00000c2c: POP 00000c2d: PUSH0 00000c2e: SLOAD 00000c2f: PUSH1 0xff 00000c31: AND 00000c32: PUSH1 0x01 00000c34: EQ 00000c35: JUMPDEST 00000c36: PUSH2 0x0ca7 00000c39: JUMPI 00000c3a: PUSH1 0x40 00000c3c: MLOAD 00000c3d: PUSH3 0x461bcd 00000c41: PUSH1 0xe5 00000c43: SHL 00000c44: DUP2 00000c45: MSTORE 00000c46: PUSH1 0x20 00000c48: PUSH1 0x04 00000c4a: DUP3 00000c4b: ADD 00000c4c: MSTORE 00000c4d: PUSH1 0x2e 00000c4f: PUSH1 0x24 00000c51: DUP3 00000c52: ADD 00000c53: MSTORE 00000c54: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00000c75: PUSH1 0x44 00000c77: DUP3 00000c78: ADD 00000c79: MSTORE 00000c7a: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 00000c9b: PUSH1 0x64 00000c9d: DUP3 00000c9e: ADD 00000c9f: MSTORE 00000ca0: PUSH1 0x84 00000ca2: ADD 00000ca3: PUSH2 0x0914 00000ca6: JUMP 00000ca7: JUMPDEST 00000ca8: PUSH0 00000ca9: DUP1 00000caa: SLOAD 00000cab: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000ccc: AND 00000ccd: PUSH1 0x01 00000ccf: OR 00000cd0: SWAP1 00000cd1: SSTORE 00000cd2: DUP1 00000cd3: ISZERO 00000cd4: PUSH2 0x0d03 00000cd7: JUMPI 00000cd8: PUSH0 00000cd9: DUP1 00000cda: SLOAD 00000cdb: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 00000cfc: AND 00000cfd: PUSH2 0x0100 00000d00: OR 00000d01: SWAP1 00000d02: SSTORE 00000d03: JUMPDEST 00000d04: PUSH1 0x01 00000d06: PUSH1 0x01 00000d08: PUSH1 0xa0 00000d0a: SHL 00000d0b: SUB 00000d0c: DUP3 00000d0d: AND 00000d0e: ISZERO 00000d0f: DUP1 00000d10: PUSH2 0x0d20 00000d13: JUMPI 00000d14: POP 00000d15: PUSH1 0x01 00000d17: PUSH1 0x01 00000d19: PUSH1 0xa0 00000d1b: SHL 00000d1c: SUB 00000d1d: DUP5 00000d1e: AND 00000d1f: ISZERO 00000d20: JUMPDEST 00000d21: ISZERO 00000d22: PUSH2 0x0d57 00000d25: JUMPI 00000d26: PUSH1 0x40 00000d28: MLOAD 00000d29: PUSH32 0x9fabe1c100000000000000000000000000000000000000000000000000000000 00000d4a: DUP2 00000d4b: MSTORE 00000d4c: PUSH1 0x04 00000d4e: ADD 00000d4f: PUSH1 0x40 00000d51: MLOAD 00000d52: DUP1 00000d53: SWAP2 00000d54: SUB 00000d55: SWAP1 00000d56: REVERT 00000d57: JUMPDEST 00000d58: PUSH3 0x0186a0 00000d5c: PUSH3 0xffffff 00000d60: DUP5 00000d61: AND 00000d62: GT 00000d63: ISZERO 00000d64: PUSH2 0x0d99 00000d67: JUMPI 00000d68: PUSH1 0x40 00000d6a: MLOAD 00000d6b: PUSH32 0xcc50566800000000000000000000000000000000000000000000000000000000 00000d8c: DUP2 00000d8d: MSTORE 00000d8e: PUSH1 0x04 00000d90: ADD 00000d91: PUSH1 0x40 00000d93: MLOAD 00000d94: DUP1 00000d95: SWAP2 00000d96: SUB 00000d97: SWAP1 00000d98: REVERT 00000d99: JUMPDEST 00000d9a: DUP8 00000d9b: ISZERO 00000d9c: DUP1 00000d9d: ISZERO 00000d9e: PUSH2 0x0da5 00000da1: JUMPI 00000da2: POP 00000da3: DUP7 00000da4: ISZERO 00000da5: JUMPDEST 00000da6: ISZERO 00000da7: PUSH2 0x0ddc 00000daa: JUMPI 00000dab: PUSH1 0x40 00000dad: MLOAD 00000dae: PUSH32 0xc8e8895400000000000000000000000000000000000000000000000000000000 00000dcf: DUP2 00000dd0: MSTORE 00000dd1: PUSH1 0x04 00000dd3: ADD 00000dd4: PUSH1 0x40 00000dd6: MLOAD 00000dd7: DUP1 00000dd8: SWAP2 00000dd9: SUB 00000dda: SWAP1 00000ddb: REVERT 00000ddc: JUMPDEST 00000ddd: PUSH1 0x97 00000ddf: DUP1 00000de0: SLOAD 00000de1: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000e02: AND 00000e03: PUSH1 0x01 00000e05: PUSH1 0x01 00000e07: PUSH1 0xa0 00000e09: SHL 00000e0a: SUB 00000e0b: DUP5 00000e0c: DUP2 00000e0d: AND 00000e0e: SWAP2 00000e0f: DUP3 00000e10: OR 00000e11: SWAP1 00000e12: SWAP3 00000e13: SSTORE 00000e14: PUSH1 0x99 00000e16: DUP1 00000e17: SLOAD 00000e18: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff 00000e39: AND 00000e3a: PUSH1 0x01 00000e3c: PUSH1 0xa0 00000e3e: SHL 00000e3f: DUP11 00000e40: ISZERO 00000e41: ISZERO 00000e42: DUP2 00000e43: MUL 00000e44: SWAP2 00000e45: SWAP1 00000e46: SWAP2 00000e47: OR 00000e48: SWAP1 00000e49: SWAP2 00000e4a: SSTORE 00000e4b: PUSH1 0x9b 00000e4d: DUP1 00000e4e: SLOAD 00000e4f: SWAP4 00000e50: DUP9 00000e51: AND 00000e52: PUSH32 0xffffffffffffffffff0000000000000000000000000000000000000000000000 00000e73: SWAP1 00000e74: SWAP5 00000e75: AND 00000e76: SWAP4 00000e77: SWAP1 00000e78: SWAP4 00000e79: OR 00000e7a: PUSH3 0xffffff 00000e7e: DUP8 00000e7f: AND 00000e80: SWAP1 00000e81: SWAP2 00000e82: MUL 00000e83: OR 00000e84: SWAP1 00000e85: SWAP2 00000e86: SSTORE 00000e87: PUSH1 0x40 00000e89: DUP1 00000e8a: MLOAD 00000e8b: PUSH32 0x0dfe168100000000000000000000000000000000000000000000000000000000 00000eac: DUP2 00000ead: MSTORE 00000eae: SWAP1 00000eaf: MLOAD 00000eb0: PUSH0 00000eb1: SWAP3 00000eb2: SWAP2 00000eb3: PUSH4 0x0dfe1681 00000eb8: SWAP2 00000eb9: PUSH1 0x04 00000ebb: DUP1 00000ebc: DUP4 00000ebd: ADD 00000ebe: SWAP3 00000ebf: PUSH1 0x20 00000ec1: SWAP3 00000ec2: SWAP2 00000ec3: SWAP1 00000ec4: DUP3 00000ec5: SWAP1 00000ec6: SUB 00000ec7: ADD 00000ec8: DUP2 00000ec9: DUP7 00000eca: GAS 00000ecb: STATICCALL 00000ecc: ISZERO 00000ecd: DUP1 00000ece: ISZERO 00000ecf: PUSH2 0x0eda 00000ed2: JUMPI 00000ed3: RETURNDATASIZE 00000ed4: PUSH0 00000ed5: DUP1 00000ed6: RETURNDATACOPY 00000ed7: RETURNDATASIZE 00000ed8: PUSH0 00000ed9: REVERT 00000eda: JUMPDEST 00000edb: POP 00000edc: POP 00000edd: POP 00000ede: POP 00000edf: PUSH1 0x40 00000ee1: MLOAD 00000ee2: RETURNDATASIZE 00000ee3: PUSH1 0x1f 00000ee5: NOT 00000ee6: PUSH1 0x1f 00000ee8: DUP3 00000ee9: ADD 00000eea: AND 00000eeb: DUP3 00000eec: ADD 00000eed: DUP1 00000eee: PUSH1 0x40 00000ef0: MSTORE 00000ef1: POP 00000ef2: DUP2 00000ef3: ADD 00000ef4: SWAP1 00000ef5: PUSH2 0x0efe 00000ef8: SWAP2 00000ef9: SWAP1 00000efa: PUSH2 0x5152 00000efd: JUMP 00000efe: JUMPDEST 00000eff: SWAP1 00000f00: POP 00000f01: PUSH0 00000f02: DUP4 00000f03: PUSH1 0x01 00000f05: PUSH1 0x01 00000f07: PUSH1 0xa0 00000f09: SHL 00000f0a: SUB 00000f0b: AND 00000f0c: PUSH4 0xd21220a7 00000f11: PUSH1 0x40 00000f13: MLOAD 00000f14: DUP2 00000f15: PUSH4 0xffffffff 00000f1a: AND 00000f1b: PUSH1 0xe0 00000f1d: SHL 00000f1e: DUP2 00000f1f: MSTORE 00000f20: PUSH1 0x04 00000f22: ADD 00000f23: PUSH1 0x20 00000f25: PUSH1 0x40 00000f27: MLOAD 00000f28: DUP1 00000f29: DUP4 00000f2a: SUB 00000f2b: DUP2 00000f2c: DUP7 00000f2d: GAS 00000f2e: STATICCALL 00000f2f: ISZERO 00000f30: DUP1 00000f31: ISZERO 00000f32: PUSH2 0x0f3d 00000f35: JUMPI 00000f36: RETURNDATASIZE 00000f37: PUSH0 00000f38: DUP1 00000f39: RETURNDATACOPY 00000f3a: RETURNDATASIZE 00000f3b: PUSH0 00000f3c: REVERT 00000f3d: JUMPDEST 00000f3e: POP 00000f3f: POP 00000f40: POP 00000f41: POP 00000f42: PUSH1 0x40 00000f44: MLOAD 00000f45: RETURNDATASIZE 00000f46: PUSH1 0x1f 00000f48: NOT 00000f49: PUSH1 0x1f 00000f4b: DUP3 00000f4c: ADD 00000f4d: AND 00000f4e: DUP3 00000f4f: ADD 00000f50: DUP1 00000f51: PUSH1 0x40 00000f53: MSTORE 00000f54: POP 00000f55: DUP2 00000f56: ADD 00000f57: SWAP1 00000f58: PUSH2 0x0f61 00000f5b: SWAP2 00000f5c: SWAP1 00000f5d: PUSH2 0x5152 00000f60: JUMP 00000f61: JUMPDEST 00000f62: PUSH1 0x98 00000f64: DUP1 00000f65: SLOAD 00000f66: PUSH1 0x01 00000f68: PUSH1 0x01 00000f6a: PUSH1 0xa0 00000f6c: SHL 00000f6d: SUB 00000f6e: DUP1 00000f6f: DUP7 00000f70: AND 00000f71: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000f92: SWAP3 00000f93: DUP4 00000f94: AND 00000f95: OR 00000f96: SWAP1 00000f97: SWAP3 00000f98: SSTORE 00000f99: PUSH1 0x99 00000f9b: DUP1 00000f9c: SLOAD 00000f9d: SWAP3 00000f9e: DUP5 00000f9f: AND 00000fa0: SWAP3 00000fa1: SWAP1 00000fa2: SWAP2 00000fa3: AND 00000fa4: SWAP2 00000fa5: SWAP1 00000fa6: SWAP2 00000fa7: OR 00000fa8: SWAP1 00000fa9: SSTORE 00000faa: SWAP1 00000fab: POP 00000fac: DUP8 00000fad: ISZERO 00000fae: PUSH2 0x0fc0 00000fb1: JUMPI 00000fb2: PUSH1 0xa1 00000fb4: DUP11 00000fb5: SWAP1 00000fb6: SSTORE 00000fb7: PUSH1 0xa0 00000fb9: DUP10 00000fba: SWAP1 00000fbb: SSTORE 00000fbc: PUSH2 0x0fcb 00000fbf: JUMP 00000fc0: JUMPDEST 00000fc1: PUSH1 0xa0 00000fc3: DUP11 00000fc4: SWAP1 00000fc5: SSTORE 00000fc6: PUSH1 0xa1 00000fc8: DUP10 00000fc9: SWAP1 00000fca: SSTORE 00000fcb: JUMPDEST 00000fcc: PUSH2 0x0fe5 00000fcf: PUSH2 0x0fdd 00000fd2: CALLDATASIZE 00000fd3: DUP10 00000fd4: SWAP1 00000fd5: SUB 00000fd6: DUP10 00000fd7: ADD 00000fd8: DUP10 00000fd9: PUSH2 0x516d 00000fdc: JUMP 00000fdd: JUMPDEST 00000fde: DUP4 00000fdf: DUP4 00000fe0: DUP12 00000fe1: PUSH2 0x365c 00000fe4: JUMP 00000fe5: JUMPDEST 00000fe6: PUSH2 0x0ffc 00000fe9: PUSH2 0x0ff7 00000fec: CALLDATASIZE 00000fed: DUP10 00000fee: SWAP1 00000fef: SUB 00000ff0: DUP10 00000ff1: ADD 00000ff2: DUP10 00000ff3: PUSH2 0x516d 00000ff6: JUMP 00000ff7: JUMPDEST 00000ff8: PUSH2 0x39d8 00000ffb: JUMP 00000ffc: JUMPDEST 00000ffd: PUSH0 00000ffe: PUSH2 0x1016 00001001: PUSH2 0x100f 00001004: CALLDATASIZE 00001005: DUP11 00001006: SWAP1 00001007: SUB 00001008: DUP11 00001009: ADD 0000100a: DUP11 0000100b: PUSH2 0x516d 0000100e: JUMP 0000100f: JUMPDEST 00001010: PUSH1 0xa0 00001012: SWAP1 00001013: KECCAK256 00001014: SWAP1 00001015: JUMP 00001016: JUMPDEST 00001017: SWAP1 00001018: POP 00001019: PUSH0 0000101a: PUSH2 0x104c 0000101d: PUSH1 0x01 0000101f: PUSH1 0x01 00001021: PUSH1 0xa0 00001023: SHL 00001024: SUB 00001025: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00001046: AND 00001047: DUP4 00001048: PUSH2 0x330c 0000104b: JUMP 0000104c: JUMPDEST 0000104d: POP 0000104e: POP 0000104f: POP 00001050: SWAP1 00001051: POP 00001052: DUP1 00001053: PUSH1 0x01 00001055: PUSH1 0x01 00001057: PUSH1 0xa0 00001059: SHL 0000105a: SUB 0000105b: AND 0000105c: PUSH0 0000105d: SUB 0000105e: PUSH2 0x1093 00001061: JUMPI 00001062: PUSH1 0x40 00001064: MLOAD 00001065: PUSH32 0xaa7d1abc00000000000000000000000000000000000000000000000000000000 00001086: DUP2 00001087: MSTORE 00001088: PUSH1 0x04 0000108a: ADD 0000108b: PUSH1 0x40 0000108d: MLOAD 0000108e: DUP1 0000108f: SWAP2 00001090: SUB 00001091: SWAP1 00001092: REVERT 00001093: JUMPDEST 00001094: DUP9 00001095: PUSH1 0x9c 00001097: PUSH2 0x10a0 0000109a: DUP3 0000109b: DUP3 0000109c: PUSH2 0x51e7 0000109f: JUMP 000010a0: JUMPDEST 000010a1: SWAP1 000010a2: POP 000010a3: POP 000010a4: PUSH2 0x10ab 000010a7: PUSH2 0x3a3e 000010aa: JUMP 000010ab: JUMPDEST 000010ac: PUSH2 0x10b3 000010af: PUSH2 0x3ac2 000010b2: JUMP 000010b3: JUMPDEST 000010b4: POP 000010b5: POP 000010b6: POP 000010b7: POP 000010b8: DUP1 000010b9: ISZERO 000010ba: PUSH2 0x1119 000010bd: JUMPI 000010be: PUSH0 000010bf: DUP1 000010c0: SLOAD 000010c1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 000010e2: AND 000010e3: SWAP1 000010e4: SSTORE 000010e5: PUSH1 0x40 000010e7: MLOAD 000010e8: PUSH1 0x01 000010ea: DUP2 000010eb: MSTORE 000010ec: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 0000110d: SWAP1 0000110e: PUSH1 0x20 00001110: ADD 00001111: PUSH1 0x40 00001113: MLOAD 00001114: DUP1 00001115: SWAP2 00001116: SUB 00001117: SWAP1 00001118: LOG1 00001119: JUMPDEST 0000111a: POP 0000111b: POP 0000111c: POP 0000111d: POP 0000111e: POP 0000111f: POP 00001120: POP 00001121: POP 00001122: JUMP 00001123: JUMPDEST 00001124: PUSH2 0x112b 00001127: PUSH2 0x3b46 0000112a: JUMP 0000112b: JUMPDEST 0000112c: PUSH0 0000112d: PUSH32 0x0000000000000000000000006f441151b478e0d60588f221f1a35bcc3f7ab981 0000114e: PUSH1 0x01 00001150: PUSH1 0x01 00001152: PUSH1 0xa0 00001154: SHL 00001155: SUB 00001156: AND 00001157: PUSH4 0x9fd0506d 0000115c: PUSH1 0x40 0000115e: MLOAD 0000115f: DUP2 00001160: PUSH4 0xffffffff 00001165: AND 00001166: PUSH1 0xe0 00001168: SHL 00001169: DUP2 0000116a: MSTORE 0000116b: PUSH1 0x04 0000116d: ADD 0000116e: PUSH1 0x20 00001170: PUSH1 0x40 00001172: MLOAD 00001173: DUP1 00001174: DUP4 00001175: SUB 00001176: DUP2 00001177: DUP7 00001178: GAS 00001179: STATICCALL 0000117a: ISZERO 0000117b: DUP1 0000117c: ISZERO 0000117d: PUSH2 0x1188 00001180: JUMPI 00001181: RETURNDATASIZE 00001182: PUSH0 00001183: DUP1 00001184: RETURNDATACOPY 00001185: RETURNDATASIZE 00001186: PUSH0 00001187: REVERT 00001188: JUMPDEST 00001189: POP 0000118a: POP 0000118b: POP 0000118c: POP 0000118d: PUSH1 0x40 0000118f: MLOAD 00001190: RETURNDATASIZE 00001191: PUSH1 0x1f 00001193: NOT 00001194: PUSH1 0x1f 00001196: DUP3 00001197: ADD 00001198: AND 00001199: DUP3 0000119a: ADD 0000119b: DUP1 0000119c: PUSH1 0x40 0000119e: MSTORE 0000119f: POP 000011a0: DUP2 000011a1: ADD 000011a2: SWAP1 000011a3: PUSH2 0x11ac 000011a6: SWAP2 000011a7: SWAP1 000011a8: PUSH2 0x5152 000011ab: JUMP 000011ac: JUMPDEST 000011ad: SWAP1 000011ae: POP 000011af: PUSH1 0x01 000011b1: PUSH1 0x01 000011b3: PUSH1 0xa0 000011b5: SHL 000011b6: SUB 000011b7: DUP2 000011b8: AND 000011b9: CALLER 000011ba: EQ 000011bb: PUSH2 0x11f0 000011be: JUMPI 000011bf: PUSH1 0x40 000011c1: MLOAD 000011c2: PUSH32 0xcae1d95600000000000000000000000000000000000000000000000000000000 000011e3: DUP2 000011e4: MSTORE 000011e5: PUSH1 0x04 000011e7: ADD 000011e8: PUSH1 0x40 000011ea: MLOAD 000011eb: DUP1 000011ec: SWAP2 000011ed: SUB 000011ee: SWAP1 000011ef: REVERT 000011f0: JUMPDEST 000011f1: PUSH2 0x11f8 000011f4: PUSH2 0x3b98 000011f7: JUMP 000011f8: JUMPDEST 000011f9: POP 000011fa: JUMP 000011fb: JUMPDEST 000011fc: PUSH2 0x1203 000011ff: PUSH2 0x34e8 00001202: JUMP 00001203: JUMPDEST 00001204: PUSH2 0x120b 00001207: PUSH2 0x3493 0000120a: JUMP 0000120b: JUMPDEST 0000120c: PUSH1 0x97 0000120e: PUSH0 0000120f: SWAP1 00001210: SLOAD 00001211: SWAP1 00001212: PUSH2 0x0100 00001215: EXP 00001216: SWAP1 00001217: DIV 00001218: PUSH1 0x01 0000121a: PUSH1 0x01 0000121c: PUSH1 0xa0 0000121e: SHL 0000121f: SUB 00001220: AND 00001221: PUSH1 0x01 00001223: PUSH1 0x01 00001225: PUSH1 0xa0 00001227: SHL 00001228: SUB 00001229: AND 0000122a: PUSH4 0x8da5cb5b 0000122f: PUSH1 0x40 00001231: MLOAD 00001232: DUP2 00001233: PUSH4 0xffffffff 00001238: AND 00001239: PUSH1 0xe0 0000123b: SHL 0000123c: DUP2 0000123d: MSTORE 0000123e: PUSH1 0x04 00001240: ADD 00001241: PUSH1 0x20 00001243: PUSH1 0x40 00001245: MLOAD 00001246: DUP1 00001247: DUP4 00001248: SUB 00001249: DUP2 0000124a: DUP7 0000124b: GAS 0000124c: STATICCALL 0000124d: ISZERO 0000124e: DUP1 0000124f: ISZERO 00001250: PUSH2 0x125b 00001253: JUMPI 00001254: RETURNDATASIZE 00001255: PUSH0 00001256: DUP1 00001257: RETURNDATACOPY 00001258: RETURNDATASIZE 00001259: PUSH0 0000125a: REVERT 0000125b: JUMPDEST 0000125c: POP 0000125d: POP 0000125e: POP 0000125f: POP 00001260: PUSH1 0x40 00001262: MLOAD 00001263: RETURNDATASIZE 00001264: PUSH1 0x1f 00001266: NOT 00001267: PUSH1 0x1f 00001269: DUP3 0000126a: ADD 0000126b: AND 0000126c: DUP3 0000126d: ADD 0000126e: DUP1 0000126f: PUSH1 0x40 00001271: MSTORE 00001272: POP 00001273: DUP2 00001274: ADD 00001275: SWAP1 00001276: PUSH2 0x127f 00001279: SWAP2 0000127a: SWAP1 0000127b: PUSH2 0x5152 0000127e: JUMP 0000127f: JUMPDEST 00001280: PUSH1 0x01 00001282: PUSH1 0x01 00001284: PUSH1 0xa0 00001286: SHL 00001287: SUB 00001288: AND 00001289: CALLER 0000128a: PUSH1 0x01 0000128c: PUSH1 0x01 0000128e: PUSH1 0xa0 00001290: SHL 00001291: SUB 00001292: AND 00001293: EQ 00001294: PUSH2 0x12c9 00001297: JUMPI 00001298: PUSH1 0x40 0000129a: MLOAD 0000129b: PUSH32 0xf68ef6bf00000000000000000000000000000000000000000000000000000000 000012bc: DUP2 000012bd: MSTORE 000012be: PUSH1 0x04 000012c0: ADD 000012c1: PUSH1 0x40 000012c3: MLOAD 000012c4: DUP1 000012c5: SWAP2 000012c6: SUB 000012c7: SWAP1 000012c8: REVERT 000012c9: JUMPDEST 000012ca: PUSH1 0x98 000012cc: SLOAD 000012cd: PUSH1 0x99 000012cf: SLOAD 000012d0: PUSH1 0x01 000012d2: PUSH1 0x01 000012d4: PUSH1 0xa0 000012d6: SHL 000012d7: SUB 000012d8: SWAP2 000012d9: DUP3 000012da: AND 000012db: SWAP2 000012dc: AND 000012dd: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 000012f2: DUP3 000012f3: EQ 000012f4: PUSH2 0x1310 000012f7: JUMPI 000012f8: PUSH2 0x130b 000012fb: PUSH1 0x01 000012fd: PUSH1 0x01 000012ff: PUSH1 0xa0 00001301: SHL 00001302: SUB 00001303: DUP4 00001304: AND 00001305: DUP7 00001306: DUP7 00001307: PUSH2 0x3c08 0000130a: JUMP 0000130b: JUMPDEST 0000130c: PUSH2 0x132b 0000130f: JUMP 00001310: JUMPDEST 00001311: PUSH1 0x01 00001313: PUSH1 0x01 00001315: PUSH1 0xa0 00001317: SHL 00001318: SUB 00001319: DUP6 0000131a: AND 0000131b: PUSH0 0000131c: SWAP1 0000131d: DUP2 0000131e: MSTORE 0000131f: PUSH1 0x9f 00001321: PUSH1 0x20 00001323: MSTORE 00001324: PUSH1 0x40 00001326: SWAP1 00001327: KECCAK256 00001328: DUP5 00001329: SWAP1 0000132a: SSTORE 0000132b: JUMPDEST 0000132c: PUSH1 0x01 0000132e: PUSH1 0x01 00001330: PUSH1 0xa0 00001332: SHL 00001333: SUB 00001334: DUP2 00001335: AND 00001336: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0000134b: EQ 0000134c: PUSH2 0x1368 0000134f: JUMPI 00001350: PUSH2 0x1363 00001353: PUSH1 0x01 00001355: PUSH1 0x01 00001357: PUSH1 0xa0 00001359: SHL 0000135a: SUB 0000135b: DUP3 0000135c: AND 0000135d: DUP7 0000135e: DUP6 0000135f: PUSH2 0x3c08 00001362: JUMP 00001363: JUMPDEST 00001364: PUSH2 0x1383 00001367: JUMP 00001368: JUMPDEST 00001369: PUSH1 0x01 0000136b: PUSH1 0x01 0000136d: PUSH1 0xa0 0000136f: SHL 00001370: SUB 00001371: DUP6 00001372: AND 00001373: PUSH0 00001374: SWAP1 00001375: DUP2 00001376: MSTORE 00001377: PUSH1 0x9f 00001379: PUSH1 0x20 0000137b: MSTORE 0000137c: PUSH1 0x40 0000137e: SWAP1 0000137f: KECCAK256 00001380: DUP4 00001381: SWAP1 00001382: SSTORE 00001383: JUMPDEST 00001384: PUSH1 0x40 00001386: DUP1 00001387: MLOAD 00001388: DUP6 00001389: DUP2 0000138a: MSTORE 0000138b: PUSH1 0x20 0000138d: DUP2 0000138e: ADD 0000138f: DUP6 00001390: SWAP1 00001391: MSTORE 00001392: PUSH1 0x01 00001394: PUSH1 0x01 00001396: PUSH1 0xa0 00001398: SHL 00001399: SUB 0000139a: DUP8 0000139b: AND 0000139c: SWAP2 0000139d: PUSH32 0x300cfe37bf342ac8761414ef964d4a4d284b045e489703c08c85b9d1ea64801c 000013be: SWAP2 000013bf: ADD 000013c0: PUSH1 0x40 000013c2: MLOAD 000013c3: DUP1 000013c4: SWAP2 000013c5: SUB 000013c6: SWAP1 000013c7: LOG2 000013c8: POP 000013c9: POP 000013ca: PUSH2 0x13d2 000013cd: PUSH1 0x01 000013cf: DUP1 000013d0: SSTORE 000013d1: JUMP 000013d2: JUMPDEST 000013d3: POP 000013d4: POP 000013d5: POP 000013d6: JUMP 000013d7: JUMPDEST 000013d8: PUSH1 0x40 000013da: DUP1 000013db: MLOAD 000013dc: PUSH1 0xa0 000013de: DUP2 000013df: ADD 000013e0: DUP3 000013e1: MSTORE 000013e2: PUSH1 0x9c 000013e4: SLOAD 000013e5: PUSH1 0x01 000013e7: PUSH1 0x01 000013e9: PUSH1 0xa0 000013eb: SHL 000013ec: SUB 000013ed: SWAP1 000013ee: DUP2 000013ef: AND 000013f0: DUP3 000013f1: MSTORE 000013f2: PUSH1 0x9d 000013f4: SLOAD 000013f5: DUP1 000013f6: DUP3 000013f7: AND 000013f8: PUSH1 0x20 000013fa: DUP5 000013fb: ADD 000013fc: MSTORE 000013fd: PUSH3 0xffffff 00001401: PUSH1 0x01 00001403: PUSH1 0xa0 00001405: SHL 00001406: DUP3 00001407: DIV 00001408: AND 00001409: SWAP4 0000140a: DUP4 0000140b: ADD 0000140c: SWAP4 0000140d: SWAP1 0000140e: SWAP4 0000140f: MSTORE 00001410: PUSH24 0x010000000000000000000000000000000000000000000000 00001429: SWAP1 0000142a: SWAP3 0000142b: DIV 0000142c: PUSH1 0x02 0000142e: SIGNEXTEND 0000142f: PUSH1 0x60 00001431: DUP3 00001432: ADD 00001433: MSTORE 00001434: PUSH1 0x9e 00001436: SLOAD 00001437: SWAP1 00001438: SWAP2 00001439: AND 0000143a: PUSH1 0x80 0000143c: DUP3 0000143d: ADD 0000143e: MSTORE 0000143f: PUSH0 00001440: SWAP1 00001441: DUP2 00001442: PUSH2 0x144c 00001445: PUSH1 0xa2 00001447: DUP4 00001448: PUSH2 0x30ac 0000144b: JUMP 0000144c: JUMPDEST 0000144d: SWAP1 0000144e: POP 0000144f: PUSH0 00001450: DUP1 00001451: PUSH2 0x145a 00001454: ADDRESS 00001455: DUP6 00001456: PUSH2 0x31e0 00001459: JUMP 0000145a: JUMPDEST 0000145b: SWAP2 0000145c: POP 0000145d: SWAP2 0000145e: POP 0000145f: PUSH0 00001460: PUSH2 0x146d 00001463: PUSH2 0x0766 00001466: DUP7 00001467: PUSH1 0xa0 00001469: SWAP1 0000146a: KECCAK256 0000146b: SWAP1 0000146c: JUMP 0000146d: JUMPDEST 0000146e: POP 0000146f: POP 00001470: POP 00001471: SWAP1 00001472: POP 00001473: PUSH0 00001474: DUP1 00001475: PUSH20 0xb2ba4b781eb2e575a928e54c404b67b904a4dbeb 0000148a: PUSH4 0xbc421200 0000148f: PUSH1 0x40 00001491: MLOAD 00001492: DUP1 00001493: PUSH1 0xa0 00001495: ADD 00001496: PUSH1 0x40 00001498: MSTORE 00001499: DUP1 0000149a: DUP10 0000149b: DUP2 0000149c: MSTORE 0000149d: PUSH1 0x20 0000149f: ADD 000014a0: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000014c1: PUSH1 0x01 000014c3: PUSH1 0x01 000014c5: PUSH1 0xa0 000014c7: SHL 000014c8: SUB 000014c9: AND 000014ca: DUP2 000014cb: MSTORE 000014cc: PUSH1 0x20 000014ce: ADD 000014cf: ADDRESS 000014d0: PUSH1 0x01 000014d2: PUSH1 0x01 000014d4: PUSH1 0xa0 000014d6: SHL 000014d7: SUB 000014d8: AND 000014d9: DUP2 000014da: MSTORE 000014db: PUSH1 0x20 000014dd: ADD 000014de: DUP9 000014df: DUP2 000014e0: MSTORE 000014e1: PUSH1 0x20 000014e3: ADD 000014e4: DUP8 000014e5: DUP2 000014e6: MSTORE 000014e7: POP 000014e8: DUP6 000014e9: PUSH1 0x40 000014eb: MLOAD 000014ec: DUP4 000014ed: PUSH4 0xffffffff 000014f2: AND 000014f3: PUSH1 0xe0 000014f5: SHL 000014f6: DUP2 000014f7: MSTORE 000014f8: PUSH1 0x04 000014fa: ADD 000014fb: PUSH2 0x1505 000014fe: SWAP3 000014ff: SWAP2 00001500: SWAP1 00001501: PUSH2 0x4ea9 00001504: JUMP 00001505: JUMPDEST 00001506: PUSH1 0x80 00001508: PUSH1 0x40 0000150a: MLOAD 0000150b: DUP1 0000150c: DUP4 0000150d: SUB 0000150e: DUP2 0000150f: DUP7 00001510: GAS 00001511: DELEGATECALL 00001512: ISZERO 00001513: DUP1 00001514: ISZERO 00001515: PUSH2 0x1520 00001518: JUMPI 00001519: RETURNDATASIZE 0000151a: PUSH0 0000151b: DUP1 0000151c: RETURNDATACOPY 0000151d: RETURNDATASIZE 0000151e: PUSH0 0000151f: REVERT 00001520: JUMPDEST 00001521: POP 00001522: POP 00001523: POP 00001524: POP 00001525: PUSH1 0x40 00001527: MLOAD 00001528: RETURNDATASIZE 00001529: PUSH1 0x1f 0000152b: NOT 0000152c: PUSH1 0x1f 0000152e: DUP3 0000152f: ADD 00001530: AND 00001531: DUP3 00001532: ADD 00001533: DUP1 00001534: PUSH1 0x40 00001536: MSTORE 00001537: POP 00001538: DUP2 00001539: ADD 0000153a: SWAP1 0000153b: PUSH2 0x1544 0000153e: SWAP2 0000153f: SWAP1 00001540: PUSH2 0x4fc4 00001543: JUMP 00001544: JUMPDEST 00001545: SWAP4 00001546: POP 00001547: SWAP4 00001548: POP 00001549: POP 0000154a: POP 0000154b: PUSH1 0x99 0000154d: PUSH1 0x14 0000154f: SWAP1 00001550: SLOAD 00001551: SWAP1 00001552: PUSH2 0x0100 00001555: EXP 00001556: SWAP1 00001557: DIV 00001558: PUSH1 0xff 0000155a: AND 0000155b: PUSH2 0x1573 0000155e: JUMPI 0000155f: PUSH2 0x089c 00001562: DUP2 00001563: PUSH1 0x9a 00001565: SLOAD 00001566: PUSH3 0x0f4240 0000156a: PUSH3 0xffffff 0000156e: AND 0000156f: PUSH2 0x33d7 00001572: JUMP 00001573: JUMPDEST 00001574: PUSH2 0x08b6 00001577: DUP3 00001578: PUSH1 0x9a 0000157a: SLOAD 0000157b: PUSH3 0x0f4240 0000157f: PUSH3 0xffffff 00001583: AND 00001584: PUSH2 0x33d7 00001587: JUMP 00001588: JUMPDEST 00001589: PUSH0 0000158a: PUSH32 0x0000000000000000000000006f441151b478e0d60588f221f1a35bcc3f7ab981 000015ab: PUSH1 0x01 000015ad: PUSH1 0x01 000015af: PUSH1 0xa0 000015b1: SHL 000015b2: SUB 000015b3: AND 000015b4: PUSH4 0x9fd0506d 000015b9: PUSH1 0x40 000015bb: MLOAD 000015bc: DUP2 000015bd: PUSH4 0xffffffff 000015c2: AND 000015c3: PUSH1 0xe0 000015c5: SHL 000015c6: DUP2 000015c7: MSTORE 000015c8: PUSH1 0x04 000015ca: ADD 000015cb: PUSH1 0x20 000015cd: PUSH1 0x40 000015cf: MLOAD 000015d0: DUP1 000015d1: DUP4 000015d2: SUB 000015d3: DUP2 000015d4: DUP7 000015d5: GAS 000015d6: STATICCALL 000015d7: ISZERO 000015d8: DUP1 000015d9: ISZERO 000015da: PUSH2 0x15e5 000015dd: JUMPI 000015de: RETURNDATASIZE 000015df: PUSH0 000015e0: DUP1 000015e1: RETURNDATACOPY 000015e2: RETURNDATASIZE 000015e3: PUSH0 000015e4: REVERT 000015e5: JUMPDEST 000015e6: POP 000015e7: POP 000015e8: POP 000015e9: POP 000015ea: PUSH1 0x40 000015ec: MLOAD 000015ed: RETURNDATASIZE 000015ee: PUSH1 0x1f 000015f0: NOT 000015f1: PUSH1 0x1f 000015f3: DUP3 000015f4: ADD 000015f5: AND 000015f6: DUP3 000015f7: ADD 000015f8: DUP1 000015f9: PUSH1 0x40 000015fb: MSTORE 000015fc: POP 000015fd: DUP2 000015fe: ADD 000015ff: SWAP1 00001600: PUSH2 0x1609 00001603: SWAP2 00001604: SWAP1 00001605: PUSH2 0x5152 00001608: JUMP 00001609: JUMPDEST 0000160a: SWAP1 0000160b: POP 0000160c: SWAP1 0000160d: JUMP 0000160e: JUMPDEST 0000160f: PUSH1 0x97 00001611: SLOAD 00001612: PUSH1 0x40 00001614: DUP1 00001615: MLOAD 00001616: PUSH32 0x481c6a7500000000000000000000000000000000000000000000000000000000 00001637: DUP2 00001638: MSTORE 00001639: SWAP1 0000163a: MLOAD 0000163b: PUSH0 0000163c: SWAP3 0000163d: PUSH1 0x01 0000163f: PUSH1 0x01 00001641: PUSH1 0xa0 00001643: SHL 00001644: SUB 00001645: AND 00001646: SWAP2 00001647: PUSH4 0x481c6a75 0000164c: SWAP2 0000164d: PUSH1 0x04 0000164f: DUP1 00001650: DUP4 00001651: ADD 00001652: SWAP3 00001653: PUSH1 0x20 00001655: SWAP3 00001656: SWAP2 00001657: SWAP1 00001658: DUP3 00001659: SWAP1 0000165a: SUB 0000165b: ADD 0000165c: DUP2 0000165d: DUP7 0000165e: GAS 0000165f: STATICCALL 00001660: ISZERO 00001661: DUP1 00001662: ISZERO 00001663: PUSH2 0x166e 00001666: JUMPI 00001667: RETURNDATASIZE 00001668: PUSH0 00001669: DUP1 0000166a: RETURNDATACOPY 0000166b: RETURNDATASIZE 0000166c: PUSH0 0000166d: REVERT 0000166e: JUMPDEST 0000166f: POP 00001670: POP 00001671: POP 00001672: POP 00001673: PUSH1 0x40 00001675: MLOAD 00001676: RETURNDATASIZE 00001677: PUSH1 0x1f 00001679: NOT 0000167a: PUSH1 0x1f 0000167c: DUP3 0000167d: ADD 0000167e: AND 0000167f: DUP3 00001680: ADD 00001681: DUP1 00001682: PUSH1 0x40 00001684: MSTORE 00001685: POP 00001686: DUP2 00001687: ADD 00001688: SWAP1 00001689: PUSH2 0x1692 0000168c: SWAP2 0000168d: SWAP1 0000168e: PUSH2 0x5152 00001691: JUMP 00001692: JUMPDEST 00001693: SWAP1 00001694: POP 00001695: PUSH1 0x01 00001697: PUSH1 0x01 00001699: PUSH1 0xa0 0000169b: SHL 0000169c: SUB 0000169d: DUP2 0000169e: AND 0000169f: CALLER 000016a0: EQ 000016a1: PUSH2 0x16e7 000016a4: JUMPI 000016a5: PUSH1 0x40 000016a7: MLOAD 000016a8: PUSH32 0x59c8c6cc00000000000000000000000000000000000000000000000000000000 000016c9: DUP2 000016ca: MSTORE 000016cb: CALLER 000016cc: PUSH1 0x04 000016ce: DUP3 000016cf: ADD 000016d0: MSTORE 000016d1: PUSH1 0x01 000016d3: PUSH1 0x01 000016d5: PUSH1 0xa0 000016d7: SHL 000016d8: SUB 000016d9: DUP3 000016da: AND 000016db: PUSH1 0x24 000016dd: DUP3 000016de: ADD 000016df: MSTORE 000016e0: PUSH1 0x44 000016e2: ADD 000016e3: PUSH2 0x0914 000016e6: JUMP 000016e7: JUMPDEST 000016e8: PUSH2 0x16ef 000016eb: PUSH2 0x3493 000016ee: JUMP 000016ef: JUMPDEST 000016f0: PUSH1 0x9a 000016f2: SLOAD 000016f3: DUP3 000016f4: DUP2 000016f5: SUB 000016f6: PUSH2 0x172b 000016f9: JUMPI 000016fa: PUSH1 0x40 000016fc: MLOAD 000016fd: PUSH32 0x285085f200000000000000000000000000000000000000000000000000000000 0000171e: DUP2 0000171f: MSTORE 00001720: PUSH1 0x04 00001722: ADD 00001723: PUSH1 0x40 00001725: MLOAD 00001726: DUP1 00001727: SWAP2 00001728: SUB 00001729: SWAP1 0000172a: REVERT 0000172b: JUMPDEST 0000172c: PUSH3 0x0f4240 00001730: DUP4 00001731: GT 00001732: ISZERO 00001733: PUSH2 0x176b 00001736: JUMPI 00001737: PUSH1 0x40 00001739: MLOAD 0000173a: PUSH32 0x35f24c0700000000000000000000000000000000000000000000000000000000 0000175b: DUP2 0000175c: MSTORE 0000175d: PUSH1 0x04 0000175f: DUP2 00001760: ADD 00001761: DUP5 00001762: SWAP1 00001763: MSTORE 00001764: PUSH1 0x24 00001766: ADD 00001767: PUSH2 0x0914 0000176a: JUMP 0000176b: JUMPDEST 0000176c: PUSH2 0x1773 0000176f: PUSH2 0x1ed5 00001772: JUMP 00001773: JUMPDEST 00001774: POP 00001775: POP 00001776: PUSH1 0x9a 00001778: DUP4 00001779: SWAP1 0000177a: SSTORE 0000177b: PUSH1 0x40 0000177d: DUP1 0000177e: MLOAD 0000177f: DUP3 00001780: DUP2 00001781: MSTORE 00001782: PUSH1 0x20 00001784: DUP2 00001785: ADD 00001786: DUP6 00001787: SWAP1 00001788: MSTORE 00001789: PUSH32 0x5b5a6a8527892eb1e879279ea1addd664eef55099889d3fe13e926a5fd7c3605 000017aa: SWAP2 000017ab: ADD 000017ac: PUSH1 0x40 000017ae: MLOAD 000017af: DUP1 000017b0: SWAP2 000017b1: SUB 000017b2: SWAP1 000017b3: LOG1 000017b4: POP 000017b5: POP 000017b6: POP 000017b7: JUMP 000017b8: JUMPDEST 000017b9: PUSH1 0x97 000017bb: SLOAD 000017bc: PUSH1 0x40 000017be: DUP1 000017bf: MLOAD 000017c0: PUSH32 0x481c6a7500000000000000000000000000000000000000000000000000000000 000017e1: DUP2 000017e2: MSTORE 000017e3: SWAP1 000017e4: MLOAD 000017e5: PUSH0 000017e6: SWAP3 000017e7: PUSH1 0x01 000017e9: PUSH1 0x01 000017eb: PUSH1 0xa0 000017ed: SHL 000017ee: SUB 000017ef: AND 000017f0: SWAP2 000017f1: PUSH4 0x481c6a75 000017f6: SWAP2 000017f7: PUSH1 0x04 000017f9: DUP1 000017fa: DUP4 000017fb: ADD 000017fc: SWAP3 000017fd: PUSH1 0x20 000017ff: SWAP3 00001800: SWAP2 00001801: SWAP1 00001802: DUP3 00001803: SWAP1 00001804: SUB 00001805: ADD 00001806: DUP2 00001807: DUP7 00001808: GAS 00001809: STATICCALL 0000180a: ISZERO 0000180b: DUP1 0000180c: ISZERO 0000180d: PUSH2 0x1818 00001810: JUMPI 00001811: RETURNDATASIZE 00001812: PUSH0 00001813: DUP1 00001814: RETURNDATACOPY 00001815: RETURNDATASIZE 00001816: PUSH0 00001817: REVERT 00001818: JUMPDEST 00001819: POP 0000181a: POP 0000181b: POP 0000181c: POP 0000181d: PUSH1 0x40 0000181f: MLOAD 00001820: RETURNDATASIZE 00001821: PUSH1 0x1f 00001823: NOT 00001824: PUSH1 0x1f 00001826: DUP3 00001827: ADD 00001828: AND 00001829: DUP3 0000182a: ADD 0000182b: DUP1 0000182c: PUSH1 0x40 0000182e: MSTORE 0000182f: POP 00001830: DUP2 00001831: ADD 00001832: SWAP1 00001833: PUSH2 0x183c 00001836: SWAP2 00001837: SWAP1 00001838: PUSH2 0x5152 0000183b: JUMP 0000183c: JUMPDEST 0000183d: SWAP1 0000183e: POP 0000183f: PUSH1 0x01 00001841: PUSH1 0x01 00001843: PUSH1 0xa0 00001845: SHL 00001846: SUB 00001847: DUP2 00001848: AND 00001849: CALLER 0000184a: EQ 0000184b: PUSH2 0x1891 0000184e: JUMPI 0000184f: PUSH1 0x40 00001851: MLOAD 00001852: PUSH32 0x59c8c6cc00000000000000000000000000000000000000000000000000000000 00001873: DUP2 00001874: MSTORE 00001875: CALLER 00001876: PUSH1 0x04 00001878: DUP3 00001879: ADD 0000187a: MSTORE 0000187b: PUSH1 0x01 0000187d: PUSH1 0x01 0000187f: PUSH1 0xa0 00001881: SHL 00001882: SUB 00001883: DUP3 00001884: AND 00001885: PUSH1 0x24 00001887: DUP3 00001888: ADD 00001889: MSTORE 0000188a: PUSH1 0x44 0000188c: ADD 0000188d: PUSH2 0x0914 00001890: JUMP 00001891: JUMPDEST 00001892: PUSH2 0x1899 00001895: PUSH2 0x34e8 00001898: JUMP 00001899: JUMPDEST 0000189a: PUSH2 0x18a1 0000189d: PUSH2 0x3493 000018a0: JUMP 000018a1: JUMPDEST 000018a2: PUSH1 0x40 000018a4: DUP1 000018a5: MLOAD 000018a6: PUSH1 0xa0 000018a8: DUP2 000018a9: ADD 000018aa: DUP3 000018ab: MSTORE 000018ac: PUSH1 0x9c 000018ae: SLOAD 000018af: PUSH1 0x01 000018b1: PUSH1 0x01 000018b3: PUSH1 0xa0 000018b5: SHL 000018b6: SUB 000018b7: SWAP1 000018b8: DUP2 000018b9: AND 000018ba: DUP3 000018bb: MSTORE 000018bc: PUSH1 0x9d 000018be: SLOAD 000018bf: DUP1 000018c0: DUP3 000018c1: AND 000018c2: PUSH1 0x20 000018c4: DUP5 000018c5: ADD 000018c6: MSTORE 000018c7: PUSH3 0xffffff 000018cb: PUSH1 0x01 000018cd: PUSH1 0xa0 000018cf: SHL 000018d0: DUP3 000018d1: DIV 000018d2: AND 000018d3: SWAP4 000018d4: DUP4 000018d5: ADD 000018d6: SWAP4 000018d7: SWAP1 000018d8: SWAP4 000018d9: MSTORE 000018da: PUSH24 0x010000000000000000000000000000000000000000000000 000018f3: SWAP1 000018f4: SWAP3 000018f5: DIV 000018f6: PUSH1 0x02 000018f8: SIGNEXTEND 000018f9: PUSH1 0x60 000018fb: DUP3 000018fc: ADD 000018fd: MSTORE 000018fe: PUSH1 0x9e 00001900: SLOAD 00001901: SWAP1 00001902: SWAP2 00001903: AND 00001904: PUSH1 0x80 00001906: DUP3 00001907: ADD 00001908: MSTORE 00001909: PUSH2 0x193e 0000190c: PUSH2 0x191a 0000190f: CALLDATASIZE 00001910: DUP13 00001911: SWAP1 00001912: SUB 00001913: DUP13 00001914: ADD 00001915: DUP13 00001916: PUSH2 0x516d 00001919: JUMP 0000191a: JUMPDEST 0000191b: PUSH1 0x98 0000191d: SLOAD 0000191e: PUSH1 0x99 00001920: SLOAD 00001921: PUSH1 0x01 00001923: PUSH1 0x01 00001925: PUSH1 0xa0 00001927: SHL 00001928: SUB 00001929: SWAP2 0000192a: DUP3 0000192b: AND 0000192c: SWAP2 0000192d: DUP2 0000192e: AND 0000192f: SWAP1 00001930: PUSH1 0x01 00001932: PUSH1 0xa0 00001934: SHL 00001935: SWAP1 00001936: DIV 00001937: PUSH1 0xff 00001939: AND 0000193a: PUSH2 0x365c 0000193d: JUMP 0000193e: JUMPDEST 0000193f: PUSH2 0x1950 00001942: PUSH2 0x0ff7 00001945: CALLDATASIZE 00001946: DUP13 00001947: SWAP1 00001948: SUB 00001949: DUP13 0000194a: ADD 0000194b: DUP13 0000194c: PUSH2 0x516d 0000194f: JUMP 00001950: JUMPDEST 00001951: DUP1 00001952: PUSH1 0x40 00001954: ADD 00001955: MLOAD 00001956: PUSH3 0xffffff 0000195a: AND 0000195b: DUP11 0000195c: PUSH1 0x40 0000195e: ADD 0000195f: PUSH1 0x20 00001961: DUP2 00001962: ADD 00001963: SWAP1 00001964: PUSH2 0x196d 00001967: SWAP2 00001968: SWAP1 00001969: PUSH2 0x533a 0000196c: JUMP 0000196d: JUMPDEST 0000196e: PUSH3 0xffffff 00001972: AND 00001973: EQ 00001974: DUP1 00001975: ISZERO 00001976: PUSH2 0x199a 00001979: JUMPI 0000197a: POP 0000197b: DUP1 0000197c: PUSH1 0x60 0000197e: ADD 0000197f: MLOAD 00001980: PUSH1 0x02 00001982: SIGNEXTEND 00001983: DUP11 00001984: PUSH1 0x60 00001986: ADD 00001987: PUSH1 0x20 00001989: DUP2 0000198a: ADD 0000198b: SWAP1 0000198c: PUSH2 0x1995 0000198f: SWAP2 00001990: SWAP1 00001991: PUSH2 0x5355 00001994: JUMP 00001995: JUMPDEST 00001996: PUSH1 0x02 00001998: SIGNEXTEND 00001999: EQ 0000199a: JUMPDEST 0000199b: DUP1 0000199c: ISZERO 0000199d: PUSH2 0x19cd 000019a0: JUMPI 000019a1: POP 000019a2: DUP1 000019a3: PUSH1 0x80 000019a5: ADD 000019a6: MLOAD 000019a7: PUSH1 0x01 000019a9: PUSH1 0x01 000019ab: PUSH1 0xa0 000019ad: SHL 000019ae: SUB 000019af: AND 000019b0: DUP11 000019b1: PUSH1 0x80 000019b3: ADD 000019b4: PUSH1 0x20 000019b6: DUP2 000019b7: ADD 000019b8: SWAP1 000019b9: PUSH2 0x19c2 000019bc: SWAP2 000019bd: SWAP1 000019be: PUSH2 0x4a4b 000019c1: JUMP 000019c2: JUMPDEST 000019c3: PUSH1 0x01 000019c5: PUSH1 0x01 000019c7: PUSH1 0xa0 000019c9: SHL 000019ca: SUB 000019cb: AND 000019cc: EQ 000019cd: JUMPDEST 000019ce: ISZERO 000019cf: PUSH2 0x1a04 000019d2: JUMPI 000019d3: PUSH1 0x40 000019d5: MLOAD 000019d6: PUSH32 0x19d765cc00000000000000000000000000000000000000000000000000000000 000019f7: DUP2 000019f8: MSTORE 000019f9: PUSH1 0x04 000019fb: ADD 000019fc: PUSH1 0x40 000019fe: MLOAD 000019ff: DUP1 00001a00: SWAP2 00001a01: SUB 00001a02: SWAP1 00001a03: REVERT 00001a04: JUMPDEST 00001a05: PUSH0 00001a06: PUSH2 0x1a17 00001a09: PUSH2 0x100f 00001a0c: CALLDATASIZE 00001a0d: DUP14 00001a0e: SWAP1 00001a0f: SUB 00001a10: DUP14 00001a11: ADD 00001a12: DUP14 00001a13: PUSH2 0x516d 00001a16: JUMP 00001a17: JUMPDEST 00001a18: SWAP1 00001a19: POP 00001a1a: PUSH0 00001a1b: PUSH2 0x1a4d 00001a1e: PUSH1 0x01 00001a20: PUSH1 0x01 00001a22: PUSH1 0xa0 00001a24: SHL 00001a25: SUB 00001a26: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00001a47: AND 00001a48: DUP4 00001a49: PUSH2 0x330c 00001a4c: JUMP 00001a4d: JUMPDEST 00001a4e: POP 00001a4f: POP 00001a50: POP 00001a51: SWAP1 00001a52: POP 00001a53: DUP1 00001a54: PUSH1 0x01 00001a56: PUSH1 0x01 00001a58: PUSH1 0xa0 00001a5a: SHL 00001a5b: SUB 00001a5c: AND 00001a5d: PUSH0 00001a5e: SUB 00001a5f: PUSH2 0x1a94 00001a62: JUMPI 00001a63: PUSH1 0x40 00001a65: MLOAD 00001a66: PUSH32 0xaa7d1abc00000000000000000000000000000000000000000000000000000000 00001a87: DUP2 00001a88: MSTORE 00001a89: PUSH1 0x04 00001a8b: ADD 00001a8c: PUSH1 0x40 00001a8e: MLOAD 00001a8f: DUP1 00001a90: SWAP2 00001a91: SUB 00001a92: SWAP1 00001a93: REVERT 00001a94: JUMPDEST 00001a95: PUSH1 0xa2 00001a97: SLOAD 00001a98: PUSH1 0x60 00001a9a: SWAP1 00001a9b: PUSH0 00001a9c: PUSH2 0x1aa6 00001a9f: DUP7 00001aa0: PUSH1 0xa0 00001aa2: SWAP1 00001aa3: KECCAK256 00001aa4: SWAP1 00001aa5: JUMP 00001aa6: JUMPDEST 00001aa7: SWAP1 00001aa8: POP 00001aa9: DUP2 00001aaa: PUSH8 0xffffffffffffffff 00001ab3: DUP2 00001ab4: GT 00001ab5: ISZERO 00001ab6: PUSH2 0x1ac1 00001ab9: JUMPI 00001aba: PUSH2 0x1ac1 00001abd: PUSH2 0x4b14 00001ac0: JUMP 00001ac1: JUMPDEST 00001ac2: PUSH1 0x40 00001ac4: MLOAD 00001ac5: SWAP1 00001ac6: DUP1 00001ac7: DUP3 00001ac8: MSTORE 00001ac9: DUP1 00001aca: PUSH1 0x20 00001acc: MUL 00001acd: PUSH1 0x20 00001acf: ADD 00001ad0: DUP3 00001ad1: ADD 00001ad2: PUSH1 0x40 00001ad4: MSTORE 00001ad5: DUP1 00001ad6: ISZERO 00001ad7: PUSH2 0x1b14 00001ada: JUMPI 00001adb: DUP2 00001adc: PUSH1 0x20 00001ade: ADD 00001adf: JUMPDEST 00001ae0: PUSH1 0x40 00001ae2: DUP1 00001ae3: MLOAD 00001ae4: PUSH1 0x80 00001ae6: DUP2 00001ae7: ADD 00001ae8: DUP3 00001ae9: MSTORE 00001aea: PUSH0 00001aeb: SWAP2 00001aec: DUP2 00001aed: ADD 00001aee: DUP3 00001aef: DUP2 00001af0: MSTORE 00001af1: PUSH1 0x60 00001af3: DUP3 00001af4: ADD 00001af5: DUP4 00001af6: SWAP1 00001af7: MSTORE 00001af8: DUP2 00001af9: MSTORE 00001afa: PUSH1 0x20 00001afc: DUP2 00001afd: ADD 00001afe: SWAP2 00001aff: SWAP1 00001b00: SWAP2 00001b01: MSTORE 00001b02: DUP2 00001b03: MSTORE 00001b04: PUSH1 0x20 00001b06: ADD 00001b07: SWAP1 00001b08: PUSH1 0x01 00001b0a: SWAP1 00001b0b: SUB 00001b0c: SWAP1 00001b0d: DUP2 00001b0e: PUSH2 0x1adf 00001b11: JUMPI 00001b12: SWAP1 00001b13: POP 00001b14: JUMPDEST 00001b15: POP 00001b16: SWAP3 00001b17: POP 00001b18: PUSH0 00001b19: JUMPDEST 00001b1a: DUP3 00001b1b: DUP2 00001b1c: LT 00001b1d: ISZERO 00001b1e: PUSH2 0x1c56 00001b21: JUMPI 00001b22: PUSH0 00001b23: PUSH1 0xa2 00001b25: DUP3 00001b26: DUP2 00001b27: SLOAD 00001b28: DUP2 00001b29: LT 00001b2a: PUSH2 0x1b35 00001b2d: JUMPI 00001b2e: PUSH2 0x1b35 00001b31: PUSH2 0x5370 00001b34: JUMP 00001b35: JUMPDEST 00001b36: PUSH0 00001b37: SWAP2 00001b38: DUP3 00001b39: MSTORE 00001b3a: PUSH1 0x20 00001b3c: DUP1 00001b3d: DUP4 00001b3e: KECCAK256 00001b3f: PUSH1 0x40 00001b41: DUP1 00001b42: MLOAD 00001b43: DUP1 00001b44: DUP3 00001b45: ADD 00001b46: DUP3 00001b47: MSTORE 00001b48: SWAP4 00001b49: SWAP1 00001b4a: SWAP2 00001b4b: ADD 00001b4c: SLOAD 00001b4d: PUSH1 0x02 00001b4f: DUP2 00001b50: DUP2 00001b51: SIGNEXTEND 00001b52: DUP1 00001b53: DUP7 00001b54: MSTORE 00001b55: PUSH4 0x01000000 00001b5a: SWAP1 00001b5b: SWAP3 00001b5c: DIV 00001b5d: SWAP1 00001b5e: SIGNEXTEND 00001b5f: DUP5 00001b60: DUP5 00001b61: ADD 00001b62: DUP2 00001b63: SWAP1 00001b64: MSTORE 00001b65: DUP3 00001b66: MLOAD 00001b67: PUSH1 0x26 00001b69: DUP2 00001b6a: ADD 00001b6b: DUP8 00001b6c: SWAP1 00001b6d: MSTORE 00001b6e: PUSH1 0x06 00001b70: DUP2 00001b71: ADD 00001b72: SWAP2 00001b73: SWAP1 00001b74: SWAP2 00001b75: MSTORE 00001b76: PUSH1 0x03 00001b78: DUP2 00001b79: ADD 00001b7a: SWAP2 00001b7b: SWAP1 00001b7c: SWAP2 00001b7d: MSTORE 00001b7e: ADDRESS 00001b7f: DUP2 00001b80: MSTORE 00001b81: PUSH1 0x3a 00001b83: PUSH1 0x0c 00001b85: DUP3 00001b86: ADD 00001b87: KECCAK256 00001b88: SWAP2 00001b89: DUP2 00001b8a: ADD 00001b8b: DUP6 00001b8c: SWAP1 00001b8d: MSTORE 00001b8e: SWAP2 00001b8f: DUP3 00001b90: ADD 00001b91: DUP5 00001b92: SWAP1 00001b93: MSTORE 00001b94: SWAP1 00001b95: DUP4 00001b96: SWAP1 00001b97: MSTORE 00001b98: SWAP1 00001b99: SWAP3 00001b9a: POP 00001b9b: PUSH2 0x1bd0 00001b9e: SWAP1 00001b9f: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00001bc0: PUSH1 0x01 00001bc2: PUSH1 0x01 00001bc4: PUSH1 0xa0 00001bc6: SHL 00001bc7: SUB 00001bc8: AND 00001bc9: SWAP1 00001bca: DUP7 00001bcb: SWAP1 00001bcc: PUSH2 0x3d3d 00001bcf: JUMP 00001bd0: JUMPDEST 00001bd1: PUSH1 0x40 00001bd3: DUP1 00001bd4: MLOAD 00001bd5: PUSH1 0x80 00001bd7: DUP2 00001bd8: ADD 00001bd9: DUP3 00001bda: MSTORE 00001bdb: DUP5 00001bdc: MLOAD 00001bdd: PUSH1 0x02 00001bdf: SWAP1 00001be0: DUP2 00001be1: SIGNEXTEND 00001be2: SWAP3 00001be3: DUP3 00001be4: ADD 00001be5: SWAP3 00001be6: DUP4 00001be7: MSTORE 00001be8: PUSH1 0x20 00001bea: DUP1 00001beb: DUP8 00001bec: ADD 00001bed: MLOAD 00001bee: SWAP1 00001bef: SWAP2 00001bf0: SIGNEXTEND 00001bf1: PUSH1 0x60 00001bf3: DUP4 00001bf4: ADD 00001bf5: MSTORE 00001bf6: SWAP2 00001bf7: DUP2 00001bf8: MSTORE 00001bf9: SWAP2 00001bfa: SWAP3 00001bfb: POP 00001bfc: DUP2 00001bfd: ADD 00001bfe: PUSH2 0x1c20 00001c01: PUSH2 0x1c1b 00001c04: PUSH16 0xffffffffffffffffffffffffffffffff 00001c15: DUP6 00001c16: AND 00001c17: PUSH2 0x3dd5 00001c1a: JUMP 00001c1b: JUMPDEST 00001c1c: PUSH2 0x3e70 00001c1f: JUMP 00001c20: JUMPDEST 00001c21: PUSH2 0x1c29 00001c24: SWAP1 00001c25: PUSH2 0x539d 00001c28: JUMP 00001c29: JUMPDEST 00001c2a: PUSH1 0x0f 00001c2c: SIGNEXTEND 00001c2d: DUP2 00001c2e: MSTORE 00001c2f: POP 00001c30: DUP7 00001c31: DUP5 00001c32: DUP2 00001c33: MLOAD 00001c34: DUP2 00001c35: LT 00001c36: PUSH2 0x1c41 00001c39: JUMPI 00001c3a: PUSH2 0x1c41 00001c3d: PUSH2 0x5370 00001c40: JUMP 00001c41: JUMPDEST 00001c42: PUSH1 0x20 00001c44: SWAP1 00001c45: DUP2 00001c46: MUL 00001c47: SWAP2 00001c48: SWAP1 00001c49: SWAP2 00001c4a: ADD 00001c4b: ADD 00001c4c: MSTORE 00001c4d: POP 00001c4e: POP 00001c4f: PUSH1 0x01 00001c51: ADD 00001c52: PUSH2 0x1b19 00001c55: JUMP 00001c56: JUMPDEST 00001c57: POP 00001c58: POP 00001c59: POP 00001c5a: PUSH0 00001c5b: DUP1 00001c5c: PUSH2 0x1c94 00001c5f: PUSH1 0x40 00001c61: MLOAD 00001c62: DUP1 00001c63: PUSH1 0xa0 00001c65: ADD 00001c66: PUSH1 0x40 00001c68: MSTORE 00001c69: DUP1 00001c6a: PUSH1 0x60 00001c6c: DUP2 00001c6d: MSTORE 00001c6e: PUSH1 0x20 00001c70: ADD 00001c71: PUSH0 00001c72: PUSH1 0x01 00001c74: PUSH1 0x01 00001c76: PUSH1 0xa0 00001c78: SHL 00001c79: SUB 00001c7a: AND 00001c7b: DUP2 00001c7c: MSTORE 00001c7d: PUSH1 0x20 00001c7f: ADD 00001c80: PUSH0 00001c81: DUP2 00001c82: MSTORE 00001c83: PUSH1 0x20 00001c85: ADD 00001c86: PUSH0 00001c87: DUP2 00001c88: MSTORE 00001c89: PUSH1 0x20 00001c8b: ADD 00001c8c: PUSH0 00001c8d: ISZERO 00001c8e: ISZERO 00001c8f: DUP2 00001c90: MSTORE 00001c91: POP 00001c92: SWAP1 00001c93: JUMP 00001c94: JUMPDEST 00001c95: PUSH2 0x1c9e 00001c98: DUP5 00001c99: DUP3 00001c9a: PUSH2 0x3eef 00001c9d: JUMP 00001c9e: JUMPDEST 00001c9f: SWAP1 00001ca0: SWAP6 00001ca1: POP 00001ca2: SWAP4 00001ca3: POP 00001ca4: POP 00001ca5: POP 00001ca6: POP 00001ca7: DUP2 00001ca8: DUP12 00001ca9: GT 00001caa: ISZERO 00001cab: PUSH2 0x1ce0 00001cae: JUMPI 00001caf: PUSH1 0x40 00001cb1: MLOAD 00001cb2: PUSH32 0xac2f4e8400000000000000000000000000000000000000000000000000000000 00001cd3: DUP2 00001cd4: MSTORE 00001cd5: PUSH1 0x04 00001cd7: ADD 00001cd8: PUSH1 0x40 00001cda: MLOAD 00001cdb: DUP1 00001cdc: SWAP2 00001cdd: SUB 00001cde: SWAP1 00001cdf: REVERT 00001ce0: JUMPDEST 00001ce1: DUP1 00001ce2: DUP11 00001ce3: GT 00001ce4: ISZERO 00001ce5: PUSH2 0x1d1a 00001ce8: JUMPI 00001ce9: PUSH1 0x40 00001ceb: MLOAD 00001cec: PUSH32 0x0d517e6700000000000000000000000000000000000000000000000000000000 00001d0d: DUP2 00001d0e: MSTORE 00001d0f: PUSH1 0x04 00001d11: ADD 00001d12: PUSH1 0x40 00001d14: MLOAD 00001d15: DUP1 00001d16: SWAP2 00001d17: SUB 00001d18: SWAP1 00001d19: REVERT 00001d1a: JUMPDEST 00001d1b: POP 00001d1c: DUP14 00001d1d: SWAP1 00001d1e: POP 00001d1f: PUSH1 0x9c 00001d21: PUSH2 0x1d2a 00001d24: DUP3 00001d25: DUP3 00001d26: PUSH2 0x51e7 00001d29: JUMP 00001d2a: JUMPDEST 00001d2b: POP 00001d2c: POP 00001d2d: DUP11 00001d2e: ISZERO 00001d2f: PUSH2 0x1e15 00001d32: JUMPI 00001d33: PUSH0 00001d34: DUP1 00001d35: PUSH2 0x1d98 00001d38: DUP15 00001d39: DUP15 00001d3a: DUP1 00001d3b: DUP1 00001d3c: PUSH1 0x20 00001d3e: MUL 00001d3f: PUSH1 0x20 00001d41: ADD 00001d42: PUSH1 0x40 00001d44: MLOAD 00001d45: SWAP1 00001d46: DUP2 00001d47: ADD 00001d48: PUSH1 0x40 00001d4a: MSTORE 00001d4b: DUP1 00001d4c: SWAP4 00001d4d: SWAP3 00001d4e: SWAP2 00001d4f: SWAP1 00001d50: DUP2 00001d51: DUP2 00001d52: MSTORE 00001d53: PUSH1 0x20 00001d55: ADD 00001d56: PUSH0 00001d57: SWAP1 00001d58: JUMPDEST 00001d59: DUP3 00001d5a: DUP3 00001d5b: LT 00001d5c: ISZERO 00001d5d: PUSH2 0x1d84 00001d60: JUMPI 00001d61: PUSH2 0x1d75 00001d64: PUSH1 0x60 00001d66: DUP4 00001d67: MUL 00001d68: DUP7 00001d69: ADD 00001d6a: CALLDATASIZE 00001d6b: DUP2 00001d6c: SWAP1 00001d6d: SUB 00001d6e: DUP2 00001d6f: ADD 00001d70: SWAP1 00001d71: PUSH2 0x53d9 00001d74: JUMP 00001d75: JUMPDEST 00001d76: DUP2 00001d77: MSTORE 00001d78: PUSH1 0x20 00001d7a: ADD 00001d7b: SWAP1 00001d7c: PUSH1 0x01 00001d7e: ADD 00001d7f: SWAP1 00001d80: PUSH2 0x1d58 00001d83: JUMP 00001d84: JUMPDEST 00001d85: POP 00001d86: POP 00001d87: POP 00001d88: POP 00001d89: POP 00001d8a: DUP14 00001d8b: PUSH2 0x1d93 00001d8e: SWAP1 00001d8f: PUSH2 0x53f3 00001d92: JUMP 00001d93: JUMPDEST 00001d94: PUSH2 0x3eef 00001d97: JUMP 00001d98: JUMPDEST 00001d99: POP 00001d9a: POP 00001d9b: SWAP2 00001d9c: POP 00001d9d: SWAP2 00001d9e: POP 00001d9f: DUP2 00001da0: DUP10 00001da1: GT 00001da2: ISZERO 00001da3: PUSH2 0x1dd8 00001da6: JUMPI 00001da7: PUSH1 0x40 00001da9: MLOAD 00001daa: PUSH32 0xed8bd62d00000000000000000000000000000000000000000000000000000000 00001dcb: DUP2 00001dcc: MSTORE 00001dcd: PUSH1 0x04 00001dcf: ADD 00001dd0: PUSH1 0x40 00001dd2: MLOAD 00001dd3: DUP1 00001dd4: SWAP2 00001dd5: SUB 00001dd6: SWAP1 00001dd7: REVERT 00001dd8: JUMPDEST 00001dd9: DUP1 00001dda: DUP9 00001ddb: GT 00001ddc: ISZERO 00001ddd: PUSH2 0x1e12 00001de0: JUMPI 00001de1: PUSH1 0x40 00001de3: MLOAD 00001de4: PUSH32 0x8552d8da00000000000000000000000000000000000000000000000000000000 00001e05: DUP2 00001e06: MSTORE 00001e07: PUSH1 0x04 00001e09: ADD 00001e0a: PUSH1 0x40 00001e0c: MLOAD 00001e0d: DUP1 00001e0e: SWAP2 00001e0f: SUB 00001e10: SWAP1 00001e11: REVERT 00001e12: JUMPDEST 00001e13: POP 00001e14: POP 00001e15: JUMPDEST 00001e16: PUSH32 0xf978b4dae269b4dc4bbd31a18e7b975ee7b7e892b9e81be3bf792133fe6a2e46 00001e37: DUP5 00001e38: DUP15 00001e39: PUSH1 0x40 00001e3b: MLOAD 00001e3c: PUSH2 0x1e46 00001e3f: SWAP3 00001e40: SWAP2 00001e41: SWAP1 00001e42: PUSH2 0x53fe 00001e45: JUMP 00001e46: JUMPDEST 00001e47: PUSH1 0x40 00001e49: MLOAD 00001e4a: DUP1 00001e4b: SWAP2 00001e4c: SUB 00001e4d: SWAP1 00001e4e: LOG1 00001e4f: POP 00001e50: POP 00001e51: POP 00001e52: POP 00001e53: PUSH2 0x1e5b 00001e56: PUSH1 0x01 00001e58: DUP1 00001e59: SSTORE 00001e5a: JUMP 00001e5b: JUMPDEST 00001e5c: POP 00001e5d: POP 00001e5e: POP 00001e5f: POP 00001e60: POP 00001e61: POP 00001e62: POP 00001e63: POP 00001e64: POP 00001e65: JUMP 00001e66: JUMPDEST 00001e67: PUSH1 0x60 00001e69: PUSH1 0xa2 00001e6b: DUP1 00001e6c: SLOAD 00001e6d: DUP1 00001e6e: PUSH1 0x20 00001e70: MUL 00001e71: PUSH1 0x20 00001e73: ADD 00001e74: PUSH1 0x40 00001e76: MLOAD 00001e77: SWAP1 00001e78: DUP2 00001e79: ADD 00001e7a: PUSH1 0x40 00001e7c: MSTORE 00001e7d: DUP1 00001e7e: SWAP3 00001e7f: SWAP2 00001e80: SWAP1 00001e81: DUP2 00001e82: DUP2 00001e83: MSTORE 00001e84: PUSH1 0x20 00001e86: ADD 00001e87: PUSH0 00001e88: SWAP1 00001e89: JUMPDEST 00001e8a: DUP3 00001e8b: DUP3 00001e8c: LT 00001e8d: ISZERO 00001e8e: PUSH2 0x1ecc 00001e91: JUMPI 00001e92: PUSH0 00001e93: DUP5 00001e94: DUP2 00001e95: MSTORE 00001e96: PUSH1 0x20 00001e98: SWAP1 00001e99: DUP2 00001e9a: SWAP1 00001e9b: KECCAK256 00001e9c: PUSH1 0x40 00001e9e: DUP1 00001e9f: MLOAD 00001ea0: DUP1 00001ea1: DUP3 00001ea2: ADD 00001ea3: SWAP1 00001ea4: SWAP2 00001ea5: MSTORE 00001ea6: SWAP1 00001ea7: DUP5 00001ea8: ADD 00001ea9: SLOAD 00001eaa: PUSH1 0x02 00001eac: DUP2 00001ead: DUP2 00001eae: SIGNEXTEND 00001eaf: DUP4 00001eb0: MSTORE 00001eb1: PUSH4 0x01000000 00001eb6: SWAP1 00001eb7: SWAP2 00001eb8: DIV 00001eb9: SWAP1 00001eba: SIGNEXTEND 00001ebb: DUP2 00001ebc: DUP4 00001ebd: ADD 00001ebe: MSTORE 00001ebf: DUP3 00001ec0: MSTORE 00001ec1: PUSH1 0x01 00001ec3: SWAP1 00001ec4: SWAP3 00001ec5: ADD 00001ec6: SWAP2 00001ec7: ADD 00001ec8: PUSH2 0x1e89 00001ecb: JUMP 00001ecc: JUMPDEST 00001ecd: POP 00001ece: POP 00001ecf: POP 00001ed0: POP 00001ed1: SWAP1 00001ed2: POP 00001ed3: SWAP1 00001ed4: JUMP 00001ed5: JUMPDEST 00001ed6: PUSH0 00001ed7: DUP1 00001ed8: PUSH2 0x1edf 00001edb: PUSH2 0x34e8 00001ede: JUMP 00001edf: JUMPDEST 00001ee0: PUSH2 0x1ee7 00001ee3: PUSH2 0x3493 00001ee6: JUMP 00001ee7: JUMPDEST 00001ee8: PUSH1 0xa2 00001eea: SLOAD 00001eeb: PUSH0 00001eec: DUP2 00001eed: PUSH8 0xffffffffffffffff 00001ef6: DUP2 00001ef7: GT 00001ef8: ISZERO 00001ef9: PUSH2 0x1f04 00001efc: JUMPI 00001efd: PUSH2 0x1f04 00001f00: PUSH2 0x4b14 00001f03: JUMP 00001f04: JUMPDEST 00001f05: PUSH1 0x40 00001f07: MLOAD 00001f08: SWAP1 00001f09: DUP1 00001f0a: DUP3 00001f0b: MSTORE 00001f0c: DUP1 00001f0d: PUSH1 0x20 00001f0f: MUL 00001f10: PUSH1 0x20 00001f12: ADD 00001f13: DUP3 00001f14: ADD 00001f15: PUSH1 0x40 00001f17: MSTORE 00001f18: DUP1 00001f19: ISZERO 00001f1a: PUSH2 0x1f57 00001f1d: JUMPI 00001f1e: DUP2 00001f1f: PUSH1 0x20 00001f21: ADD 00001f22: JUMPDEST 00001f23: PUSH1 0x40 00001f25: DUP1 00001f26: MLOAD 00001f27: PUSH1 0x80 00001f29: DUP2 00001f2a: ADD 00001f2b: DUP3 00001f2c: MSTORE 00001f2d: PUSH0 00001f2e: SWAP2 00001f2f: DUP2 00001f30: ADD 00001f31: DUP3 00001f32: DUP2 00001f33: MSTORE 00001f34: PUSH1 0x60 00001f36: DUP3 00001f37: ADD 00001f38: DUP4 00001f39: SWAP1 00001f3a: MSTORE 00001f3b: DUP2 00001f3c: MSTORE 00001f3d: PUSH1 0x20 00001f3f: DUP2 00001f40: ADD 00001f41: SWAP2 00001f42: SWAP1 00001f43: SWAP2 00001f44: MSTORE 00001f45: DUP2 00001f46: MSTORE 00001f47: PUSH1 0x20 00001f49: ADD 00001f4a: SWAP1 00001f4b: PUSH1 0x01 00001f4d: SWAP1 00001f4e: SUB 00001f4f: SWAP1 00001f50: DUP2 00001f51: PUSH2 0x1f22 00001f54: JUMPI 00001f55: SWAP1 00001f56: POP 00001f57: JUMPDEST 00001f58: POP 00001f59: SWAP1 00001f5a: POP 00001f5b: PUSH0 00001f5c: JUMPDEST 00001f5d: DUP3 00001f5e: DUP2 00001f5f: LT 00001f60: ISZERO 00001f61: PUSH2 0x1ff7 00001f64: JUMPI 00001f65: PUSH0 00001f66: PUSH1 0xa2 00001f68: DUP3 00001f69: DUP2 00001f6a: SLOAD 00001f6b: DUP2 00001f6c: LT 00001f6d: PUSH2 0x1f78 00001f70: JUMPI 00001f71: PUSH2 0x1f78 00001f74: PUSH2 0x5370 00001f77: JUMP 00001f78: JUMPDEST 00001f79: PUSH0 00001f7a: SWAP2 00001f7b: DUP3 00001f7c: MSTORE 00001f7d: PUSH1 0x20 00001f7f: DUP1 00001f80: DUP4 00001f81: KECCAK256 00001f82: PUSH1 0x40 00001f84: DUP1 00001f85: MLOAD 00001f86: DUP1 00001f87: DUP3 00001f88: ADD 00001f89: DUP3 00001f8a: MSTORE 00001f8b: SWAP4 00001f8c: SWAP1 00001f8d: SWAP2 00001f8e: ADD 00001f8f: SLOAD 00001f90: PUSH1 0x02 00001f92: DUP2 00001f93: DUP2 00001f94: SIGNEXTEND 00001f95: DUP6 00001f96: MSTORE 00001f97: PUSH4 0x01000000 00001f9c: SWAP1 00001f9d: SWAP2 00001f9e: DIV 00001f9f: DUP2 00001fa0: SIGNEXTEND 00001fa1: DUP5 00001fa2: DUP5 00001fa3: ADD 00001fa4: SWAP1 00001fa5: DUP2 00001fa6: MSTORE 00001fa7: DUP3 00001fa8: MLOAD 00001fa9: PUSH1 0x80 00001fab: DUP2 00001fac: ADD 00001fad: DUP5 00001fae: MSTORE 00001faf: DUP6 00001fb0: MLOAD 00001fb1: DUP4 00001fb2: SIGNEXTEND 00001fb3: SWAP4 00001fb4: DUP2 00001fb5: ADD 00001fb6: SWAP4 00001fb7: DUP5 00001fb8: MSTORE 00001fb9: SWAP1 00001fba: MLOAD 00001fbb: SWAP1 00001fbc: SWAP2 00001fbd: SIGNEXTEND 00001fbe: PUSH1 0x60 00001fc0: DUP3 00001fc1: ADD 00001fc2: MSTORE 00001fc3: SWAP1 00001fc4: DUP2 00001fc5: MSTORE 00001fc6: SWAP1 00001fc7: DUP2 00001fc8: ADD 00001fc9: SWAP3 00001fca: SWAP1 00001fcb: SWAP3 00001fcc: MSTORE 00001fcd: DUP5 00001fce: MLOAD 00001fcf: SWAP1 00001fd0: SWAP3 00001fd1: POP 00001fd2: DUP5 00001fd3: SWAP1 00001fd4: DUP5 00001fd5: SWAP1 00001fd6: DUP2 00001fd7: LT 00001fd8: PUSH2 0x1fe3 00001fdb: JUMPI 00001fdc: PUSH2 0x1fe3 00001fdf: PUSH2 0x5370 00001fe2: JUMP 00001fe3: JUMPDEST 00001fe4: PUSH1 0x20 00001fe6: SWAP1 00001fe7: DUP2 00001fe8: MUL 00001fe9: SWAP2 00001fea: SWAP1 00001feb: SWAP2 00001fec: ADD 00001fed: ADD 00001fee: MSTORE 00001fef: POP 00001ff0: PUSH1 0x01 00001ff2: ADD 00001ff3: PUSH2 0x1f5c 00001ff6: JUMP 00001ff7: JUMPDEST 00001ff8: POP 00001ff9: PUSH2 0x2031 00001ffc: PUSH1 0x40 00001ffe: MLOAD 00001fff: DUP1 00002000: PUSH1 0xa0 00002002: ADD 00002003: PUSH1 0x40 00002005: MSTORE 00002006: DUP1 00002007: PUSH1 0x60 00002009: DUP2 0000200a: MSTORE 0000200b: PUSH1 0x20 0000200d: ADD 0000200e: PUSH0 0000200f: PUSH1 0x01 00002011: PUSH1 0x01 00002013: PUSH1 0xa0 00002015: SHL 00002016: SUB 00002017: AND 00002018: DUP2 00002019: MSTORE 0000201a: PUSH1 0x20 0000201c: ADD 0000201d: PUSH0 0000201e: DUP2 0000201f: MSTORE 00002020: PUSH1 0x20 00002022: ADD 00002023: PUSH0 00002024: DUP2 00002025: MSTORE 00002026: PUSH1 0x20 00002028: ADD 00002029: PUSH0 0000202a: ISZERO 0000202b: ISZERO 0000202c: DUP2 0000202d: MSTORE 0000202e: POP 0000202f: SWAP1 00002030: JUMP 00002031: JUMPDEST 00002032: PUSH0 00002033: PUSH1 0x01 00002035: DUP4 00002036: DUP4 00002037: PUSH1 0x40 00002039: MLOAD 0000203a: PUSH1 0x20 0000203c: ADD 0000203d: PUSH2 0x2047 00002040: SWAP3 00002041: SWAP2 00002042: SWAP1 00002043: PUSH2 0x554a 00002046: JUMP 00002047: JUMPDEST 00002048: PUSH1 0x40 0000204a: DUP1 0000204b: MLOAD 0000204c: PUSH1 0x1f 0000204e: NOT 0000204f: DUP2 00002050: DUP5 00002051: SUB 00002052: ADD 00002053: DUP2 00002054: MSTORE 00002055: SWAP1 00002056: DUP3 00002057: SWAP1 00002058: MSTORE 00002059: PUSH2 0x2065 0000205c: SWAP3 0000205d: SWAP2 0000205e: PUSH1 0x20 00002060: ADD 00002061: PUSH2 0x5064 00002064: JUMP 00002065: JUMPDEST 00002066: PUSH1 0x40 00002068: DUP1 00002069: MLOAD 0000206a: PUSH1 0x1f 0000206c: NOT 0000206d: DUP2 0000206e: DUP5 0000206f: SUB 00002070: ADD 00002071: DUP2 00002072: MSTORE 00002073: SWAP1 00002074: DUP3 00002075: SWAP1 00002076: MSTORE 00002077: PUSH32 0x48c8949100000000000000000000000000000000000000000000000000000000 00002098: DUP3 00002099: MSTORE 0000209a: SWAP2 0000209b: POP 0000209c: PUSH0 0000209d: SWAP1 0000209e: PUSH1 0x01 000020a0: PUSH1 0x01 000020a2: PUSH1 0xa0 000020a4: SHL 000020a5: SUB 000020a6: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000020c7: AND 000020c8: SWAP1 000020c9: PUSH4 0x48c89491 000020ce: SWAP1 000020cf: PUSH2 0x20dc 000020d2: SWAP1 000020d3: DUP6 000020d4: SWAP1 000020d5: PUSH1 0x04 000020d7: ADD 000020d8: PUSH2 0x4b02 000020db: JUMP 000020dc: JUMPDEST 000020dd: PUSH0 000020de: PUSH1 0x40 000020e0: MLOAD 000020e1: DUP1 000020e2: DUP4 000020e3: SUB 000020e4: DUP2 000020e5: PUSH0 000020e6: DUP8 000020e7: GAS 000020e8: CALL 000020e9: ISZERO 000020ea: DUP1 000020eb: ISZERO 000020ec: PUSH2 0x20f7 000020ef: JUMPI 000020f0: RETURNDATASIZE 000020f1: PUSH0 000020f2: DUP1 000020f3: RETURNDATACOPY 000020f4: RETURNDATASIZE 000020f5: PUSH0 000020f6: REVERT 000020f7: JUMPDEST 000020f8: POP 000020f9: POP 000020fa: POP 000020fb: POP 000020fc: PUSH1 0x40 000020fe: MLOAD 000020ff: RETURNDATASIZE 00002100: PUSH0 00002101: DUP3 00002102: RETURNDATACOPY 00002103: PUSH1 0x1f 00002105: RETURNDATASIZE 00002106: SWAP1 00002107: DUP2 00002108: ADD 00002109: PUSH1 0x1f 0000210b: NOT 0000210c: AND 0000210d: DUP3 0000210e: ADD 0000210f: PUSH1 0x40 00002111: MSTORE 00002112: PUSH2 0x211e 00002115: SWAP2 00002116: SWAP1 00002117: DUP2 00002118: ADD 00002119: SWAP1 0000211a: PUSH2 0x50fe 0000211d: JUMP 0000211e: JUMPDEST 0000211f: SWAP1 00002120: POP 00002121: DUP1 00002122: DUP1 00002123: PUSH1 0x20 00002125: ADD 00002126: SWAP1 00002127: MLOAD 00002128: DUP2 00002129: ADD 0000212a: SWAP1 0000212b: PUSH2 0x2134 0000212e: SWAP2 0000212f: SWAP1 00002130: PUSH2 0x55b8 00002133: JUMP 00002134: JUMPDEST 00002135: SWAP1 00002136: SWAP12 00002137: POP 00002138: SWAP10 00002139: POP 0000213a: PUSH2 0x214c 0000213d: SWAP9 0000213e: POP 0000213f: PUSH2 0x3656 00002142: SWAP8 00002143: POP 00002144: POP 00002145: POP 00002146: POP 00002147: POP 00002148: POP 00002149: POP 0000214a: POP 0000214b: JUMP 0000214c: JUMPDEST 0000214d: SWAP1 0000214e: SWAP2 0000214f: JUMP 00002150: JUMPDEST 00002151: PUSH2 0x2158 00002154: PUSH2 0x3493 00002157: JUMP 00002158: JUMPDEST 00002159: PUSH0 0000215a: PUSH32 0x0000000000000000000000006f441151b478e0d60588f221f1a35bcc3f7ab981 0000217b: PUSH1 0x01 0000217d: PUSH1 0x01 0000217f: PUSH1 0xa0 00002181: SHL 00002182: SUB 00002183: AND 00002184: PUSH4 0x9fd0506d 00002189: PUSH1 0x40 0000218b: MLOAD 0000218c: DUP2 0000218d: PUSH4 0xffffffff 00002192: AND 00002193: PUSH1 0xe0 00002195: SHL 00002196: DUP2 00002197: MSTORE 00002198: PUSH1 0x04 0000219a: ADD 0000219b: PUSH1 0x20 0000219d: PUSH1 0x40 0000219f: MLOAD 000021a0: DUP1 000021a1: DUP4 000021a2: SUB 000021a3: DUP2 000021a4: DUP7 000021a5: GAS 000021a6: STATICCALL 000021a7: ISZERO 000021a8: DUP1 000021a9: ISZERO 000021aa: PUSH2 0x21b5 000021ad: JUMPI 000021ae: RETURNDATASIZE 000021af: PUSH0 000021b0: DUP1 000021b1: RETURNDATACOPY 000021b2: RETURNDATASIZE 000021b3: PUSH0 000021b4: REVERT 000021b5: JUMPDEST 000021b6: POP 000021b7: POP 000021b8: POP 000021b9: POP 000021ba: PUSH1 0x40 000021bc: MLOAD 000021bd: RETURNDATASIZE 000021be: PUSH1 0x1f 000021c0: NOT 000021c1: PUSH1 0x1f 000021c3: DUP3 000021c4: ADD 000021c5: AND 000021c6: DUP3 000021c7: ADD 000021c8: DUP1 000021c9: PUSH1 0x40 000021cb: MSTORE 000021cc: POP 000021cd: DUP2 000021ce: ADD 000021cf: SWAP1 000021d0: PUSH2 0x21d9 000021d3: SWAP2 000021d4: SWAP1 000021d5: PUSH2 0x5152 000021d8: JUMP 000021d9: JUMPDEST 000021da: SWAP1 000021db: POP 000021dc: PUSH1 0x01 000021de: PUSH1 0x01 000021e0: PUSH1 0xa0 000021e2: SHL 000021e3: SUB 000021e4: DUP2 000021e5: AND 000021e6: CALLER 000021e7: EQ 000021e8: PUSH2 0x221d 000021eb: JUMPI 000021ec: PUSH1 0x40 000021ee: MLOAD 000021ef: PUSH32 0xcae1d95600000000000000000000000000000000000000000000000000000000 00002210: DUP2 00002211: MSTORE 00002212: PUSH1 0x04 00002214: ADD 00002215: PUSH1 0x40 00002217: MLOAD 00002218: DUP1 00002219: SWAP2 0000221a: SUB 0000221b: SWAP1 0000221c: REVERT 0000221d: JUMPDEST 0000221e: PUSH2 0x11f8 00002221: PUSH2 0x404d 00002224: JUMP 00002225: JUMPDEST 00002226: PUSH1 0x60 00002228: CALLER 00002229: PUSH1 0x01 0000222b: PUSH1 0x01 0000222d: PUSH1 0xa0 0000222f: SHL 00002230: SUB 00002231: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00002252: AND 00002253: EQ 00002254: PUSH2 0x2289 00002257: JUMPI 00002258: PUSH1 0x40 0000225a: MLOAD 0000225b: PUSH32 0xf655705d00000000000000000000000000000000000000000000000000000000 0000227c: DUP2 0000227d: MSTORE 0000227e: PUSH1 0x04 00002280: ADD 00002281: PUSH1 0x40 00002283: MLOAD 00002284: DUP1 00002285: SWAP2 00002286: SUB 00002287: SWAP1 00002288: REVERT 00002289: JUMPDEST 0000228a: PUSH0 0000228b: DUP1 0000228c: PUSH2 0x2297 0000228f: DUP5 00002290: DUP7 00002291: ADD 00002292: DUP7 00002293: PUSH2 0x55fe 00002296: JUMP 00002297: JUMPDEST 00002298: SWAP1 00002299: SWAP3 0000229a: POP 0000229b: SWAP1 0000229c: POP 0000229d: PUSH1 0x02 0000229f: DUP3 000022a0: PUSH1 0x02 000022a2: DUP2 000022a3: GT 000022a4: ISZERO 000022a5: PUSH2 0x22b0 000022a8: JUMPI 000022a9: PUSH2 0x22b0 000022ac: PUSH2 0x5037 000022af: JUMP 000022b0: JUMPDEST 000022b1: PUSH1 0x02 000022b3: DUP2 000022b4: GT 000022b5: ISZERO 000022b6: PUSH2 0x22c1 000022b9: JUMPI 000022ba: PUSH2 0x22c1 000022bd: PUSH2 0x5037 000022c0: JUMP 000022c1: JUMPDEST 000022c2: SUB 000022c3: PUSH2 0x22fa 000022c6: JUMPI 000022c7: PUSH0 000022c8: DUP1 000022c9: PUSH0 000022ca: DUP4 000022cb: DUP1 000022cc: PUSH1 0x20 000022ce: ADD 000022cf: SWAP1 000022d0: MLOAD 000022d1: DUP2 000022d2: ADD 000022d3: SWAP1 000022d4: PUSH2 0x22dd 000022d7: SWAP2 000022d8: SWAP1 000022d9: PUSH2 0x5642 000022dc: JUMP 000022dd: JUMPDEST 000022de: SWAP3 000022df: POP 000022e0: SWAP3 000022e1: POP 000022e2: SWAP3 000022e3: POP 000022e4: PUSH2 0x22ee 000022e7: DUP4 000022e8: DUP4 000022e9: DUP4 000022ea: PUSH2 0x40a8 000022ed: JUMP 000022ee: JUMPDEST 000022ef: SWAP6 000022f0: POP 000022f1: POP 000022f2: POP 000022f3: POP 000022f4: POP 000022f5: POP 000022f6: PUSH2 0x231a 000022f9: JUMP 000022fa: JUMPDEST 000022fb: PUSH2 0x2315 000022fe: DUP3 000022ff: PUSH1 0x02 00002301: DUP2 00002302: GT 00002303: ISZERO 00002304: PUSH2 0x230f 00002307: JUMPI 00002308: PUSH2 0x230f 0000230b: PUSH2 0x5037 0000230e: JUMP 0000230f: JUMPDEST 00002310: DUP3 00002311: PUSH2 0x4197 00002314: JUMP 00002315: JUMPDEST 00002316: SWAP3 00002317: POP 00002318: POP 00002319: POP 0000231a: JUMPDEST 0000231b: SWAP3 0000231c: SWAP2 0000231d: POP 0000231e: POP 0000231f: JUMP 00002320: JUMPDEST 00002321: PUSH1 0x40 00002323: DUP1 00002324: MLOAD 00002325: PUSH1 0xa0 00002327: DUP2 00002328: ADD 00002329: DUP3 0000232a: MSTORE 0000232b: PUSH1 0x9c 0000232d: SLOAD 0000232e: PUSH1 0x01 00002330: PUSH1 0x01 00002332: PUSH1 0xa0 00002334: SHL 00002335: SUB 00002336: SWAP1 00002337: DUP2 00002338: AND 00002339: DUP3 0000233a: MSTORE 0000233b: PUSH1 0x9d 0000233d: SLOAD 0000233e: DUP1 0000233f: DUP3 00002340: AND 00002341: PUSH1 0x20 00002343: DUP5 00002344: ADD 00002345: MSTORE 00002346: PUSH3 0xffffff 0000234a: PUSH1 0x01 0000234c: PUSH1 0xa0 0000234e: SHL 0000234f: DUP3 00002350: DIV 00002351: AND 00002352: SWAP4 00002353: DUP4 00002354: ADD 00002355: SWAP4 00002356: SWAP1 00002357: SWAP4 00002358: MSTORE 00002359: PUSH24 0x010000000000000000000000000000000000000000000000 00002372: SWAP1 00002373: SWAP3 00002374: DIV 00002375: PUSH1 0x02 00002377: SIGNEXTEND 00002378: PUSH1 0x60 0000237a: DUP3 0000237b: ADD 0000237c: MSTORE 0000237d: PUSH1 0x9e 0000237f: SLOAD 00002380: SWAP1 00002381: SWAP2 00002382: AND 00002383: PUSH1 0x80 00002385: DUP3 00002386: ADD 00002387: MSTORE 00002388: PUSH0 00002389: SWAP1 0000238a: DUP2 0000238b: SWAP1 0000238c: DUP2 0000238d: PUSH2 0x2397 00002390: PUSH1 0xa2 00002392: DUP4 00002393: PUSH2 0x30ac 00002396: JUMP 00002397: JUMPDEST 00002398: SWAP1 00002399: POP 0000239a: PUSH0 0000239b: DUP1 0000239c: DUP1 0000239d: DUP1 0000239e: PUSH2 0x23a7 000023a1: ADDRESS 000023a2: DUP8 000023a3: PUSH2 0x31e0 000023a6: JUMP 000023a7: JUMPDEST 000023a8: PUSH1 0x40 000023aa: DUP1 000023ab: MLOAD 000023ac: PUSH1 0xa0 000023ae: DUP2 000023af: ADD 000023b0: DUP3 000023b1: MSTORE 000023b2: DUP9 000023b3: DUP2 000023b4: MSTORE 000023b5: PUSH1 0x01 000023b7: PUSH1 0x01 000023b9: PUSH1 0xa0 000023bb: SHL 000023bc: SUB 000023bd: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000023de: AND 000023df: PUSH1 0x20 000023e1: DUP3 000023e2: ADD 000023e3: MSTORE 000023e4: ADDRESS 000023e5: DUP2 000023e6: DUP4 000023e7: ADD 000023e8: MSTORE 000023e9: PUSH1 0x60 000023eb: DUP2 000023ec: ADD 000023ed: DUP5 000023ee: SWAP1 000023ef: MSTORE 000023f0: PUSH1 0x80 000023f2: DUP2 000023f3: ADD 000023f4: DUP4 000023f5: SWAP1 000023f6: MSTORE 000023f7: SWAP1 000023f8: MLOAD 000023f9: PUSH32 0xbc42120000000000000000000000000000000000000000000000000000000000 0000241a: DUP2 0000241b: MSTORE 0000241c: SWAP3 0000241d: SWAP5 0000241e: POP 0000241f: SWAP1 00002420: SWAP3 00002421: POP 00002422: PUSH20 0xb2ba4b781eb2e575a928e54c404b67b904a4dbeb 00002437: SWAP2 00002438: PUSH4 0xbc421200 0000243d: SWAP2 0000243e: PUSH2 0x244b 00002441: SWAP2 00002442: DUP14 00002443: SWAP1 00002444: PUSH1 0x04 00002446: ADD 00002447: PUSH2 0x4ea9 0000244a: JUMP 0000244b: JUMPDEST 0000244c: PUSH1 0x80 0000244e: PUSH1 0x40 00002450: MLOAD 00002451: DUP1 00002452: DUP4 00002453: SUB 00002454: DUP2 00002455: DUP7 00002456: GAS 00002457: DELEGATECALL 00002458: ISZERO 00002459: DUP1 0000245a: ISZERO 0000245b: PUSH2 0x2466 0000245e: JUMPI 0000245f: RETURNDATASIZE 00002460: PUSH0 00002461: DUP1 00002462: RETURNDATACOPY 00002463: RETURNDATASIZE 00002464: PUSH0 00002465: REVERT 00002466: JUMPDEST 00002467: POP 00002468: POP 00002469: POP 0000246a: POP 0000246b: PUSH1 0x40 0000246d: MLOAD 0000246e: RETURNDATASIZE 0000246f: PUSH1 0x1f 00002471: NOT 00002472: PUSH1 0x1f 00002474: DUP3 00002475: ADD 00002476: AND 00002477: DUP3 00002478: ADD 00002479: DUP1 0000247a: PUSH1 0x40 0000247c: MSTORE 0000247d: POP 0000247e: DUP2 0000247f: ADD 00002480: SWAP1 00002481: PUSH2 0x248a 00002484: SWAP2 00002485: SWAP1 00002486: PUSH2 0x4fc4 00002489: JUMP 0000248a: JUMPDEST 0000248b: PUSH1 0x9a 0000248d: SLOAD 0000248e: SWAP4 0000248f: SWAP12 00002490: POP 00002491: SWAP2 00002492: SWAP10 00002493: POP 00002494: SWAP6 00002495: POP 00002496: SWAP4 00002497: POP 00002498: PUSH2 0x24a8 0000249b: SWAP3 0000249c: POP 0000249d: DUP5 0000249e: SWAP2 0000249f: POP 000024a0: PUSH3 0x0f4240 000024a4: PUSH2 0x33d7 000024a7: JUMP 000024a8: JUMPDEST 000024a9: PUSH2 0x24b2 000024ac: SWAP1 000024ad: DUP8 000024ae: PUSH2 0x5024 000024b1: JUMP 000024b2: JUMPDEST 000024b3: SWAP6 000024b4: POP 000024b5: PUSH2 0x24c9 000024b8: DUP2 000024b9: PUSH1 0x9a 000024bb: SLOAD 000024bc: PUSH3 0x0f4240 000024c0: PUSH3 0xffffff 000024c4: AND 000024c5: PUSH2 0x33d7 000024c8: JUMP 000024c9: JUMPDEST 000024ca: PUSH2 0x24d3 000024cd: SWAP1 000024ce: DUP7 000024cf: PUSH2 0x5024 000024d2: JUMP 000024d3: JUMPDEST 000024d4: PUSH1 0x99 000024d6: SLOAD 000024d7: SWAP1 000024d8: SWAP6 000024d9: POP 000024da: PUSH1 0x01 000024dc: PUSH1 0xa0 000024de: SHL 000024df: SWAP1 000024e0: DIV 000024e1: PUSH1 0xff 000024e3: AND 000024e4: ISZERO 000024e5: PUSH2 0x24ec 000024e8: JUMPI 000024e9: SWAP4 000024ea: SWAP5 000024eb: SWAP4 000024ec: JUMPDEST 000024ed: POP 000024ee: POP 000024ef: POP 000024f0: POP 000024f1: SWAP2 000024f2: POP 000024f3: SWAP2 000024f4: JUMP 000024f5: JUMPDEST 000024f6: PUSH2 0x24fd 000024f9: PUSH2 0x34e8 000024fc: JUMP 000024fd: JUMPDEST 000024fe: PUSH2 0x2505 00002501: PUSH2 0x3493 00002504: JUMP 00002505: JUMPDEST 00002506: DUP1 00002507: PUSH0 00002508: SUB 00002509: PUSH2 0x253e 0000250c: JUMPI 0000250d: PUSH1 0x40 0000250f: MLOAD 00002510: PUSH32 0xcbca5aa200000000000000000000000000000000000000000000000000000000 00002531: DUP2 00002532: MSTORE 00002533: PUSH1 0x04 00002535: ADD 00002536: PUSH1 0x40 00002538: MLOAD 00002539: DUP1 0000253a: SWAP2 0000253b: SUB 0000253c: SWAP1 0000253d: REVERT 0000253e: JUMPDEST 0000253f: CALLER 00002540: PUSH0 00002541: SWAP1 00002542: DUP2 00002543: MSTORE 00002544: PUSH1 0x9f 00002546: PUSH1 0x20 00002548: MSTORE 00002549: PUSH1 0x40 0000254b: SWAP1 0000254c: KECCAK256 0000254d: SLOAD 0000254e: DUP2 0000254f: GT 00002550: ISZERO 00002551: PUSH2 0x2586 00002554: JUMPI 00002555: PUSH1 0x40 00002557: MLOAD 00002558: PUSH32 0x356680b700000000000000000000000000000000000000000000000000000000 00002579: DUP2 0000257a: MSTORE 0000257b: PUSH1 0x04 0000257d: ADD 0000257e: PUSH1 0x40 00002580: MLOAD 00002581: DUP1 00002582: SWAP2 00002583: SUB 00002584: SWAP1 00002585: REVERT 00002586: JUMPDEST 00002587: CALLER 00002588: PUSH0 00002589: SWAP1 0000258a: DUP2 0000258b: MSTORE 0000258c: PUSH1 0x9f 0000258e: PUSH1 0x20 00002590: MSTORE 00002591: PUSH1 0x40 00002593: DUP2 00002594: KECCAK256 00002595: DUP1 00002596: SLOAD 00002597: DUP4 00002598: SWAP3 00002599: SWAP1 0000259a: PUSH2 0x25a4 0000259d: SWAP1 0000259e: DUP5 0000259f: SWAP1 000025a0: PUSH2 0x5024 000025a3: JUMP 000025a4: JUMPDEST 000025a5: SWAP1 000025a6: SWAP2 000025a7: SSTORE 000025a8: POP 000025a9: PUSH2 0x25b4 000025ac: SWAP1 000025ad: POP 000025ae: CALLER 000025af: DUP3 000025b0: PUSH2 0x3541 000025b3: JUMP 000025b4: JUMPDEST 000025b5: PUSH2 0x11f8 000025b8: PUSH1 0x01 000025ba: DUP1 000025bb: SSTORE 000025bc: JUMP 000025bd: JUMPDEST 000025be: PUSH1 0x97 000025c0: SLOAD 000025c1: PUSH1 0x01 000025c3: PUSH1 0x01 000025c5: PUSH1 0xa0 000025c7: SHL 000025c8: SUB 000025c9: AND 000025ca: CALLER 000025cb: DUP2 000025cc: EQ 000025cd: PUSH2 0x13d2 000025d0: JUMPI 000025d1: PUSH1 0x40 000025d3: MLOAD 000025d4: PUSH32 0xbf8a293200000000000000000000000000000000000000000000000000000000 000025f5: DUP2 000025f6: MSTORE 000025f7: CALLER 000025f8: PUSH1 0x04 000025fa: DUP3 000025fb: ADD 000025fc: MSTORE 000025fd: PUSH1 0x01 000025ff: PUSH1 0x01 00002601: PUSH1 0xa0 00002603: SHL 00002604: SUB 00002605: DUP3 00002606: AND 00002607: PUSH1 0x24 00002609: DUP3 0000260a: ADD 0000260b: MSTORE 0000260c: PUSH1 0x44 0000260e: ADD 0000260f: PUSH2 0x0914 00002612: JUMP 00002613: JUMPDEST 00002614: PUSH1 0x99 00002616: SLOAD 00002617: PUSH0 00002618: SWAP1 00002619: DUP2 0000261a: SWAP1 0000261b: PUSH1 0x01 0000261d: PUSH1 0xa0 0000261f: SHL 00002620: SWAP1 00002621: DIV 00002622: PUSH1 0xff 00002624: AND 00002625: ISZERO 00002626: PUSH2 0x2635 00002629: JUMPI 0000262a: POP 0000262b: POP 0000262c: PUSH1 0xa1 0000262e: SLOAD 0000262f: PUSH1 0xa0 00002631: SLOAD 00002632: SWAP1 00002633: SWAP2 00002634: JUMP 00002635: JUMPDEST 00002636: POP 00002637: POP 00002638: PUSH1 0xa0 0000263a: SLOAD 0000263b: PUSH1 0xa1 0000263d: SLOAD 0000263e: SWAP1 0000263f: SWAP2 00002640: JUMP 00002641: JUMPDEST 00002642: PUSH1 0x40 00002644: DUP1 00002645: MLOAD 00002646: PUSH1 0xa0 00002648: DUP2 00002649: ADD 0000264a: DUP3 0000264b: MSTORE 0000264c: PUSH1 0x9c 0000264e: SLOAD 0000264f: PUSH1 0x01 00002651: PUSH1 0x01 00002653: PUSH1 0xa0 00002655: SHL 00002656: SUB 00002657: SWAP1 00002658: DUP2 00002659: AND 0000265a: DUP3 0000265b: MSTORE 0000265c: PUSH1 0x9d 0000265e: SLOAD 0000265f: DUP1 00002660: DUP3 00002661: AND 00002662: PUSH1 0x20 00002664: DUP5 00002665: ADD 00002666: MSTORE 00002667: PUSH3 0xffffff 0000266b: PUSH1 0x01 0000266d: PUSH1 0xa0 0000266f: SHL 00002670: DUP3 00002671: DIV 00002672: AND 00002673: SWAP4 00002674: DUP4 00002675: ADD 00002676: SWAP4 00002677: SWAP1 00002678: SWAP4 00002679: MSTORE 0000267a: PUSH24 0x010000000000000000000000000000000000000000000000 00002693: SWAP1 00002694: SWAP3 00002695: DIV 00002696: PUSH1 0x02 00002698: SIGNEXTEND 00002699: PUSH1 0x60 0000269b: DUP3 0000269c: ADD 0000269d: MSTORE 0000269e: PUSH1 0x9e 000026a0: SLOAD 000026a1: SWAP1 000026a2: SWAP2 000026a3: AND 000026a4: PUSH1 0x80 000026a6: DUP3 000026a7: ADD 000026a8: MSTORE 000026a9: PUSH0 000026aa: SWAP1 000026ab: DUP2 000026ac: SWAP1 000026ad: DUP2 000026ae: PUSH2 0x26b8 000026b1: PUSH1 0xa2 000026b3: DUP4 000026b4: PUSH2 0x30ac 000026b7: JUMP 000026b8: JUMPDEST 000026b9: SWAP1 000026ba: POP 000026bb: PUSH0 000026bc: DUP1 000026bd: DUP1 000026be: DUP1 000026bf: PUSH2 0x26c8 000026c2: ADDRESS 000026c3: DUP8 000026c4: PUSH2 0x31e0 000026c7: JUMP 000026c8: JUMPDEST 000026c9: SWAP2 000026ca: POP 000026cb: SWAP2 000026cc: POP 000026cd: PUSH0 000026ce: PUSH2 0x26db 000026d1: PUSH2 0x0766 000026d4: DUP9 000026d5: PUSH1 0xa0 000026d7: SWAP1 000026d8: KECCAK256 000026d9: SWAP1 000026da: JUMP 000026db: JUMPDEST 000026dc: POP 000026dd: POP 000026de: PUSH1 0x40 000026e0: DUP1 000026e1: MLOAD 000026e2: PUSH1 0xa0 000026e4: DUP2 000026e5: ADD 000026e6: DUP3 000026e7: MSTORE 000026e8: DUP10 000026e9: DUP2 000026ea: MSTORE 000026eb: PUSH1 0x01 000026ed: PUSH1 0x01 000026ef: PUSH1 0xa0 000026f1: SHL 000026f2: SUB 000026f3: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00002714: AND 00002715: PUSH1 0x20 00002717: DUP3 00002718: ADD 00002719: MSTORE 0000271a: ADDRESS 0000271b: DUP2 0000271c: DUP4 0000271d: ADD 0000271e: MSTORE 0000271f: PUSH1 0x60 00002721: DUP2 00002722: ADD 00002723: DUP8 00002724: SWAP1 00002725: MSTORE 00002726: PUSH1 0x80 00002728: DUP2 00002729: ADD 0000272a: DUP7 0000272b: SWAP1 0000272c: MSTORE 0000272d: SWAP1 0000272e: MLOAD 0000272f: PUSH32 0xbc42120000000000000000000000000000000000000000000000000000000000 00002750: DUP2 00002751: MSTORE 00002752: SWAP3 00002753: SWAP4 00002754: POP 00002755: PUSH20 0xb2ba4b781eb2e575a928e54c404b67b904a4dbeb 0000276a: SWAP3 0000276b: PUSH4 0xbc421200 00002770: SWAP3 00002771: POP 00002772: PUSH2 0x2780 00002775: SWAP2 00002776: SWAP1 00002777: DUP6 00002778: SWAP1 00002779: PUSH1 0x04 0000277b: ADD 0000277c: PUSH2 0x4ea9 0000277f: JUMP 00002780: JUMPDEST 00002781: PUSH1 0x80 00002783: PUSH1 0x40 00002785: MLOAD 00002786: DUP1 00002787: DUP4 00002788: SUB 00002789: DUP2 0000278a: DUP7 0000278b: GAS 0000278c: DELEGATECALL 0000278d: ISZERO 0000278e: DUP1 0000278f: ISZERO 00002790: PUSH2 0x279b 00002793: JUMPI 00002794: RETURNDATASIZE 00002795: PUSH0 00002796: DUP1 00002797: RETURNDATACOPY 00002798: RETURNDATASIZE 00002799: PUSH0 0000279a: REVERT 0000279b: JUMPDEST 0000279c: POP 0000279d: POP 0000279e: POP 0000279f: POP 000027a0: PUSH1 0x40 000027a2: MLOAD 000027a3: RETURNDATASIZE 000027a4: PUSH1 0x1f 000027a6: NOT 000027a7: PUSH1 0x1f 000027a9: DUP3 000027aa: ADD 000027ab: AND 000027ac: DUP3 000027ad: ADD 000027ae: DUP1 000027af: PUSH1 0x40 000027b1: MSTORE 000027b2: POP 000027b3: DUP2 000027b4: ADD 000027b5: SWAP1 000027b6: PUSH2 0x27bf 000027b9: SWAP2 000027ba: SWAP1 000027bb: PUSH2 0x4fc4 000027be: JUMP 000027bf: JUMPDEST 000027c0: PUSH1 0x9a 000027c2: SLOAD 000027c3: SWAP4 000027c4: SWAP13 000027c5: POP 000027c6: SWAP2 000027c7: SWAP11 000027c8: POP 000027c9: SWAP7 000027ca: POP 000027cb: SWAP5 000027cc: POP 000027cd: PUSH2 0x27df 000027d0: SWAP4 000027d1: POP 000027d2: DUP6 000027d3: SWAP3 000027d4: POP 000027d5: SWAP1 000027d6: POP 000027d7: PUSH3 0x0f4240 000027db: PUSH2 0x33d7 000027de: JUMP 000027df: JUMPDEST 000027e0: PUSH2 0x27e9 000027e3: SWAP1 000027e4: DUP8 000027e5: PUSH2 0x5024 000027e8: JUMP 000027e9: JUMPDEST 000027ea: SWAP6 000027eb: POP 000027ec: PUSH2 0x2800 000027ef: DUP2 000027f0: PUSH1 0x9a 000027f2: SLOAD 000027f3: PUSH3 0x0f4240 000027f7: PUSH3 0xffffff 000027fb: AND 000027fc: PUSH2 0x33d7 000027ff: JUMP 00002800: JUMPDEST 00002801: PUSH2 0x280a 00002804: SWAP1 00002805: DUP7 00002806: PUSH2 0x5024 00002809: JUMP 0000280a: JUMPDEST 0000280b: PUSH1 0x99 0000280d: SLOAD 0000280e: SWAP1 0000280f: SWAP6 00002810: POP 00002811: PUSH1 0x01 00002813: PUSH1 0xa0 00002815: SHL 00002816: SWAP1 00002817: DIV 00002818: PUSH1 0xff 0000281a: AND 0000281b: ISZERO 0000281c: PUSH2 0x2823 0000281f: JUMPI 00002820: SWAP4 00002821: SWAP5 00002822: SWAP4 00002823: JUMPDEST 00002824: POP 00002825: POP 00002826: POP 00002827: POP 00002828: SWAP1 00002829: SWAP2 0000282a: JUMP 0000282b: JUMPDEST 0000282c: PUSH0 0000282d: DUP1 0000282e: PUSH0 0000282f: DUP1 00002830: PUSH0 00002831: PUSH1 0x97 00002833: PUSH0 00002834: SWAP1 00002835: SLOAD 00002836: SWAP1 00002837: PUSH2 0x0100 0000283a: EXP 0000283b: SWAP1 0000283c: DIV 0000283d: PUSH1 0x01 0000283f: PUSH1 0x01 00002841: PUSH1 0xa0 00002843: SHL 00002844: SUB 00002845: AND 00002846: PUSH1 0x01 00002848: PUSH1 0x01 0000284a: PUSH1 0xa0 0000284c: SHL 0000284d: SUB 0000284e: AND 0000284f: PUSH4 0x481c6a75 00002854: PUSH1 0x40 00002856: MLOAD 00002857: DUP2 00002858: PUSH4 0xffffffff 0000285d: AND 0000285e: PUSH1 0xe0 00002860: SHL 00002861: DUP2 00002862: MSTORE 00002863: PUSH1 0x04 00002865: ADD 00002866: PUSH1 0x20 00002868: PUSH1 0x40 0000286a: MLOAD 0000286b: DUP1 0000286c: DUP4 0000286d: SUB 0000286e: DUP2 0000286f: DUP7 00002870: GAS 00002871: STATICCALL 00002872: ISZERO 00002873: DUP1 00002874: ISZERO 00002875: PUSH2 0x2880 00002878: JUMPI 00002879: RETURNDATASIZE 0000287a: PUSH0 0000287b: DUP1 0000287c: RETURNDATACOPY 0000287d: RETURNDATASIZE 0000287e: PUSH0 0000287f: REVERT 00002880: JUMPDEST 00002881: POP 00002882: POP 00002883: POP 00002884: POP 00002885: PUSH1 0x40 00002887: MLOAD 00002888: RETURNDATASIZE 00002889: PUSH1 0x1f 0000288b: NOT 0000288c: PUSH1 0x1f 0000288e: DUP3 0000288f: ADD 00002890: AND 00002891: DUP3 00002892: ADD 00002893: DUP1 00002894: PUSH1 0x40 00002896: MSTORE 00002897: POP 00002898: DUP2 00002899: ADD 0000289a: SWAP1 0000289b: PUSH2 0x28a4 0000289e: SWAP2 0000289f: SWAP1 000028a0: PUSH2 0x5152 000028a3: JUMP 000028a4: JUMPDEST 000028a5: SWAP1 000028a6: POP 000028a7: PUSH1 0x01 000028a9: PUSH1 0x01 000028ab: PUSH1 0xa0 000028ad: SHL 000028ae: SUB 000028af: DUP2 000028b0: AND 000028b1: CALLER 000028b2: EQ 000028b3: PUSH2 0x28f9 000028b6: JUMPI 000028b7: PUSH1 0x40 000028b9: MLOAD 000028ba: PUSH32 0x59c8c6cc00000000000000000000000000000000000000000000000000000000 000028db: DUP2 000028dc: MSTORE 000028dd: CALLER 000028de: PUSH1 0x04 000028e0: DUP3 000028e1: ADD 000028e2: MSTORE 000028e3: PUSH1 0x01 000028e5: PUSH1 0x01 000028e7: PUSH1 0xa0 000028e9: SHL 000028ea: SUB 000028eb: DUP3 000028ec: AND 000028ed: PUSH1 0x24 000028ef: DUP3 000028f0: ADD 000028f1: MSTORE 000028f2: PUSH1 0x44 000028f4: ADD 000028f5: PUSH2 0x0914 000028f8: JUMP 000028f9: JUMPDEST 000028fa: PUSH2 0x2901 000028fd: PUSH2 0x34e8 00002900: JUMP 00002901: JUMPDEST 00002902: PUSH2 0x2909 00002905: PUSH2 0x3493 00002908: JUMP 00002909: JUMPDEST 0000290a: PUSH2 0x2913 0000290d: DUP12 0000290e: DUP12 0000290f: PUSH2 0x3eef 00002912: JUMP 00002913: JUMPDEST 00002914: SWAP3 00002915: SWAP8 00002916: POP 00002917: SWAP1 00002918: SWAP6 00002919: POP 0000291a: SWAP4 0000291b: POP 0000291c: SWAP2 0000291d: POP 0000291e: DUP5 0000291f: DUP8 00002920: GT 00002921: ISZERO 00002922: PUSH2 0x2957 00002925: JUMPI 00002926: PUSH1 0x40 00002928: MLOAD 00002929: PUSH32 0xed8bd62d00000000000000000000000000000000000000000000000000000000 0000294a: DUP2 0000294b: MSTORE 0000294c: PUSH1 0x04 0000294e: ADD 0000294f: PUSH1 0x40 00002951: MLOAD 00002952: DUP1 00002953: SWAP2 00002954: SUB 00002955: SWAP1 00002956: REVERT 00002957: JUMPDEST 00002958: DUP4 00002959: DUP7 0000295a: GT 0000295b: ISZERO 0000295c: PUSH2 0x2991 0000295f: JUMPI 00002960: PUSH1 0x40 00002962: MLOAD 00002963: PUSH32 0x8552d8da00000000000000000000000000000000000000000000000000000000 00002984: DUP2 00002985: MSTORE 00002986: PUSH1 0x04 00002988: ADD 00002989: PUSH1 0x40 0000298b: MLOAD 0000298c: DUP1 0000298d: SWAP2 0000298e: SUB 0000298f: SWAP1 00002990: REVERT 00002991: JUMPDEST 00002992: DUP3 00002993: DUP10 00002994: GT 00002995: ISZERO 00002996: PUSH2 0x29cb 00002999: JUMPI 0000299a: PUSH1 0x40 0000299c: MLOAD 0000299d: PUSH32 0xac2f4e8400000000000000000000000000000000000000000000000000000000 000029be: DUP2 000029bf: MSTORE 000029c0: PUSH1 0x04 000029c2: ADD 000029c3: PUSH1 0x40 000029c5: MLOAD 000029c6: DUP1 000029c7: SWAP2 000029c8: SUB 000029c9: SWAP1 000029ca: REVERT 000029cb: JUMPDEST 000029cc: DUP2 000029cd: DUP9 000029ce: GT 000029cf: ISZERO 000029d0: PUSH2 0x2a05 000029d3: JUMPI 000029d4: PUSH1 0x40 000029d6: MLOAD 000029d7: PUSH32 0x0d517e6700000000000000000000000000000000000000000000000000000000 000029f8: DUP2 000029f9: MSTORE 000029fa: PUSH1 0x04 000029fc: ADD 000029fd: PUSH1 0x40 000029ff: MLOAD 00002a00: DUP1 00002a01: SWAP2 00002a02: SUB 00002a03: SWAP1 00002a04: REVERT 00002a05: JUMPDEST 00002a06: PUSH2 0x2a0e 00002a09: PUSH1 0x01 00002a0b: DUP1 00002a0c: SSTORE 00002a0d: JUMP 00002a0e: JUMPDEST 00002a0f: POP 00002a10: SWAP7 00002a11: POP 00002a12: SWAP7 00002a13: POP 00002a14: SWAP7 00002a15: POP 00002a16: SWAP7 00002a17: SWAP3 00002a18: POP 00002a19: POP 00002a1a: POP 00002a1b: JUMP 00002a1c: JUMPDEST 00002a1d: PUSH1 0x40 00002a1f: DUP1 00002a20: MLOAD 00002a21: PUSH1 0xa0 00002a23: DUP2 00002a24: ADD 00002a25: DUP3 00002a26: MSTORE 00002a27: PUSH1 0x9c 00002a29: SLOAD 00002a2a: PUSH1 0x01 00002a2c: PUSH1 0x01 00002a2e: PUSH1 0xa0 00002a30: SHL 00002a31: SUB 00002a32: SWAP1 00002a33: DUP2 00002a34: AND 00002a35: DUP1 00002a36: DUP4 00002a37: MSTORE 00002a38: PUSH1 0x9d 00002a3a: SLOAD 00002a3b: DUP1 00002a3c: DUP4 00002a3d: AND 00002a3e: PUSH1 0x20 00002a40: DUP6 00002a41: ADD 00002a42: DUP2 00002a43: SWAP1 00002a44: MSTORE 00002a45: PUSH3 0xffffff 00002a49: PUSH1 0x01 00002a4b: PUSH1 0xa0 00002a4d: SHL 00002a4e: DUP4 00002a4f: DIV 00002a50: AND 00002a51: SWAP6 00002a52: DUP6 00002a53: ADD 00002a54: SWAP6 00002a55: SWAP1 00002a56: SWAP6 00002a57: MSTORE 00002a58: PUSH24 0x010000000000000000000000000000000000000000000000 00002a71: SWAP1 00002a72: DIV 00002a73: PUSH1 0x02 00002a75: SIGNEXTEND 00002a76: PUSH1 0x60 00002a78: DUP5 00002a79: ADD 00002a7a: MSTORE 00002a7b: PUSH1 0x9e 00002a7d: SLOAD 00002a7e: SWAP1 00002a7f: SWAP2 00002a80: AND 00002a81: PUSH1 0x80 00002a83: DUP4 00002a84: ADD 00002a85: MSTORE 00002a86: SWAP1 00002a87: SWAP2 00002a88: PUSH0 00002a89: DUP3 00002a8a: ISZERO 00002a8b: PUSH2 0x2af3 00002a8e: JUMPI 00002a8f: DUP3 00002a90: PUSH1 0x01 00002a92: PUSH1 0x01 00002a94: PUSH1 0xa0 00002a96: SHL 00002a97: SUB 00002a98: AND 00002a99: PUSH4 0x313ce567 00002a9e: PUSH1 0x40 00002aa0: MLOAD 00002aa1: DUP2 00002aa2: PUSH4 0xffffffff 00002aa7: AND 00002aa8: PUSH1 0xe0 00002aaa: SHL 00002aab: DUP2 00002aac: MSTORE 00002aad: PUSH1 0x04 00002aaf: ADD 00002ab0: PUSH1 0x20 00002ab2: PUSH1 0x40 00002ab4: MLOAD 00002ab5: DUP1 00002ab6: DUP4 00002ab7: SUB 00002ab8: DUP2 00002ab9: DUP7 00002aba: GAS 00002abb: STATICCALL 00002abc: ISZERO 00002abd: DUP1 00002abe: ISZERO 00002abf: PUSH2 0x2aca 00002ac2: JUMPI 00002ac3: RETURNDATASIZE 00002ac4: PUSH0 00002ac5: DUP1 00002ac6: RETURNDATACOPY 00002ac7: RETURNDATASIZE 00002ac8: PUSH0 00002ac9: REVERT 00002aca: JUMPDEST 00002acb: POP 00002acc: POP 00002acd: POP 00002ace: POP 00002acf: PUSH1 0x40 00002ad1: MLOAD 00002ad2: RETURNDATASIZE 00002ad3: PUSH1 0x1f 00002ad5: NOT 00002ad6: PUSH1 0x1f 00002ad8: DUP3 00002ad9: ADD 00002ada: AND 00002adb: DUP3 00002adc: ADD 00002add: DUP1 00002ade: PUSH1 0x40 00002ae0: MSTORE 00002ae1: POP 00002ae2: DUP2 00002ae3: ADD 00002ae4: SWAP1 00002ae5: PUSH2 0x2aee 00002ae8: SWAP2 00002ae9: SWAP1 00002aea: PUSH2 0x5676 00002aed: JUMP 00002aee: JUMPDEST 00002aef: PUSH2 0x2af6 00002af2: JUMP 00002af3: JUMPDEST 00002af4: PUSH1 0x12 00002af6: JUMPDEST 00002af7: SWAP1 00002af8: POP 00002af9: PUSH0 00002afa: DUP3 00002afb: PUSH1 0x01 00002afd: PUSH1 0x01 00002aff: PUSH1 0xa0 00002b01: SHL 00002b02: SUB 00002b03: AND 00002b04: PUSH4 0x313ce567 00002b09: PUSH1 0x40 00002b0b: MLOAD 00002b0c: DUP2 00002b0d: PUSH4 0xffffffff 00002b12: AND 00002b13: PUSH1 0xe0 00002b15: SHL 00002b16: DUP2 00002b17: MSTORE 00002b18: PUSH1 0x04 00002b1a: ADD 00002b1b: PUSH1 0x20 00002b1d: PUSH1 0x40 00002b1f: MLOAD 00002b20: DUP1 00002b21: DUP4 00002b22: SUB 00002b23: DUP2 00002b24: DUP7 00002b25: GAS 00002b26: STATICCALL 00002b27: ISZERO 00002b28: DUP1 00002b29: ISZERO 00002b2a: PUSH2 0x2b35 00002b2d: JUMPI 00002b2e: RETURNDATASIZE 00002b2f: PUSH0 00002b30: DUP1 00002b31: RETURNDATACOPY 00002b32: RETURNDATASIZE 00002b33: PUSH0 00002b34: REVERT 00002b35: JUMPDEST 00002b36: POP 00002b37: POP 00002b38: POP 00002b39: POP 00002b3a: PUSH1 0x40 00002b3c: MLOAD 00002b3d: RETURNDATASIZE 00002b3e: PUSH1 0x1f 00002b40: NOT 00002b41: PUSH1 0x1f 00002b43: DUP3 00002b44: ADD 00002b45: AND 00002b46: DUP3 00002b47: ADD 00002b48: DUP1 00002b49: PUSH1 0x40 00002b4b: MSTORE 00002b4c: POP 00002b4d: DUP2 00002b4e: ADD 00002b4f: SWAP1 00002b50: PUSH2 0x2b59 00002b53: SWAP2 00002b54: SWAP1 00002b55: PUSH2 0x5676 00002b58: JUMP 00002b59: JUMPDEST 00002b5a: PUSH1 0x40 00002b5c: DUP1 00002b5d: MLOAD 00002b5e: PUSH1 0xa0 00002b60: DUP1 00002b61: DUP3 00002b62: ADD 00002b63: DUP4 00002b64: MSTORE 00002b65: PUSH1 0x9c 00002b67: SLOAD 00002b68: PUSH1 0x01 00002b6a: PUSH1 0x01 00002b6c: PUSH1 0xa0 00002b6e: SHL 00002b6f: SUB 00002b70: SWAP1 00002b71: DUP2 00002b72: AND 00002b73: DUP4 00002b74: MSTORE 00002b75: PUSH1 0x9d 00002b77: SLOAD 00002b78: DUP1 00002b79: DUP3 00002b7a: AND 00002b7b: PUSH1 0x20 00002b7d: DUP6 00002b7e: ADD 00002b7f: MSTORE 00002b80: PUSH1 0x01 00002b82: PUSH1 0xa0 00002b84: SHL 00002b85: DUP2 00002b86: DIV 00002b87: PUSH3 0xffffff 00002b8b: AND 00002b8c: SWAP5 00002b8d: DUP5 00002b8e: ADD 00002b8f: SWAP5 00002b90: SWAP1 00002b91: SWAP5 00002b92: MSTORE 00002b93: PUSH24 0x010000000000000000000000000000000000000000000000 00002bac: SWAP1 00002bad: SWAP4 00002bae: DIV 00002baf: PUSH1 0x02 00002bb1: SIGNEXTEND 00002bb2: PUSH1 0x60 00002bb4: DUP4 00002bb5: ADD 00002bb6: MSTORE 00002bb7: PUSH1 0x9e 00002bb9: SLOAD 00002bba: SWAP1 00002bbb: SWAP3 00002bbc: AND 00002bbd: PUSH1 0x80 00002bbf: DUP3 00002bc0: ADD 00002bc1: MSTORE 00002bc2: KECCAK256 00002bc3: SWAP1 00002bc4: SWAP2 00002bc5: POP 00002bc6: PUSH0 00002bc7: PUSH2 0x2bf9 00002bca: PUSH1 0x01 00002bcc: PUSH1 0x01 00002bce: PUSH1 0xa0 00002bd0: SHL 00002bd1: SUB 00002bd2: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00002bf3: AND 00002bf4: DUP4 00002bf5: PUSH2 0x330c 00002bf8: JUMP 00002bf9: JUMPDEST 00002bfa: POP 00002bfb: POP 00002bfc: POP 00002bfd: SWAP1 00002bfe: POP 00002bff: PUSH0 00002c00: PUSH16 0xffffffffffffffffffffffffffffffff 00002c11: DUP1 00002c12: AND 00002c13: DUP3 00002c14: PUSH1 0x01 00002c16: PUSH1 0x01 00002c18: PUSH1 0xa0 00002c1a: SHL 00002c1b: SUB 00002c1c: AND 00002c1d: GT 00002c1e: PUSH2 0x2c68 00002c21: JUMPI 00002c22: PUSH2 0x2c61 00002c25: PUSH2 0x2c37 00002c28: PUSH1 0x01 00002c2a: PUSH1 0x01 00002c2c: PUSH1 0xa0 00002c2e: SHL 00002c2f: SUB 00002c30: DUP5 00002c31: AND 00002c32: DUP1 00002c33: PUSH2 0x5696 00002c36: JUMP 00002c37: JUMPDEST 00002c38: PUSH2 0x2c42 00002c3b: DUP8 00002c3c: PUSH1 0x0a 00002c3e: PUSH2 0x57ce 00002c41: JUMP 00002c42: JUMPDEST 00002c43: PUSH25 0x01000000000000000000000000000000000000000000000000 00002c5d: PUSH2 0x33d7 00002c60: JUMP 00002c61: JUMPDEST 00002c62: SWAP1 00002c63: POP 00002c64: PUSH2 0x2cad 00002c67: JUMP 00002c68: JUMPDEST 00002c69: PUSH2 0x2caa 00002c6c: PUSH2 0x2c88 00002c6f: PUSH1 0x01 00002c71: PUSH1 0x01 00002c73: PUSH1 0xa0 00002c75: SHL 00002c76: SUB 00002c77: DUP5 00002c78: AND 00002c79: DUP1 00002c7a: PUSH9 0x010000000000000000 00002c84: PUSH2 0x33d7 00002c87: JUMP 00002c88: JUMPDEST 00002c89: PUSH2 0x2c93 00002c8c: DUP8 00002c8d: PUSH1 0x0a 00002c8f: PUSH2 0x57ce 00002c92: JUMP 00002c93: JUMPDEST 00002c94: PUSH17 0x0100000000000000000000000000000000 00002ca6: PUSH2 0x33d7 00002ca9: JUMP 00002caa: JUMPDEST 00002cab: SWAP1 00002cac: POP 00002cad: JUMPDEST 00002cae: PUSH1 0x99 00002cb0: SLOAD 00002cb1: PUSH0 00002cb2: SWAP1 00002cb3: PUSH1 0x01 00002cb5: PUSH1 0xa0 00002cb7: SHL 00002cb8: SWAP1 00002cb9: DIV 00002cba: PUSH1 0xff 00002cbc: AND 00002cbd: PUSH2 0x2d25 00002cc0: JUMPI 00002cc1: DUP11 00002cc2: PUSH1 0x01 00002cc4: PUSH1 0x01 00002cc6: PUSH1 0xa0 00002cc8: SHL 00002cc9: SUB 00002cca: AND 00002ccb: PUSH4 0xe84b8fe5 00002cd0: PUSH1 0x40 00002cd2: MLOAD 00002cd3: DUP2 00002cd4: PUSH4 0xffffffff 00002cd9: AND 00002cda: PUSH1 0xe0 00002cdc: SHL 00002cdd: DUP2 00002cde: MSTORE 00002cdf: PUSH1 0x04 00002ce1: ADD 00002ce2: PUSH1 0x20 00002ce4: PUSH1 0x40 00002ce6: MLOAD 00002ce7: DUP1 00002ce8: DUP4 00002ce9: SUB 00002cea: DUP2 00002ceb: DUP7 00002cec: GAS 00002ced: STATICCALL 00002cee: ISZERO 00002cef: DUP1 00002cf0: ISZERO 00002cf1: PUSH2 0x2cfc 00002cf4: JUMPI 00002cf5: RETURNDATASIZE 00002cf6: PUSH0 00002cf7: DUP1 00002cf8: RETURNDATACOPY 00002cf9: RETURNDATASIZE 00002cfa: PUSH0 00002cfb: REVERT 00002cfc: JUMPDEST 00002cfd: POP 00002cfe: POP 00002cff: POP 00002d00: POP 00002d01: PUSH1 0x40 00002d03: MLOAD 00002d04: RETURNDATASIZE 00002d05: PUSH1 0x1f 00002d07: NOT 00002d08: PUSH1 0x1f 00002d0a: DUP3 00002d0b: ADD 00002d0c: AND 00002d0d: DUP3 00002d0e: ADD 00002d0f: DUP1 00002d10: PUSH1 0x40 00002d12: MSTORE 00002d13: POP 00002d14: DUP2 00002d15: ADD 00002d16: SWAP1 00002d17: PUSH2 0x2d20 00002d1a: SWAP2 00002d1b: SWAP1 00002d1c: PUSH2 0x57dc 00002d1f: JUMP 00002d20: JUMPDEST 00002d21: PUSH2 0x2d85 00002d24: JUMP 00002d25: JUMPDEST 00002d26: DUP11 00002d27: PUSH1 0x01 00002d29: PUSH1 0x01 00002d2b: PUSH1 0xa0 00002d2d: SHL 00002d2e: SUB 00002d2f: AND 00002d30: PUSH4 0xa941ada9 00002d35: PUSH1 0x40 00002d37: MLOAD 00002d38: DUP2 00002d39: PUSH4 0xffffffff 00002d3e: AND 00002d3f: PUSH1 0xe0 00002d41: SHL 00002d42: DUP2 00002d43: MSTORE 00002d44: PUSH1 0x04 00002d46: ADD 00002d47: PUSH1 0x20 00002d49: PUSH1 0x40 00002d4b: MLOAD 00002d4c: DUP1 00002d4d: DUP4 00002d4e: SUB 00002d4f: DUP2 00002d50: DUP7 00002d51: GAS 00002d52: STATICCALL 00002d53: ISZERO 00002d54: DUP1 00002d55: ISZERO 00002d56: PUSH2 0x2d61 00002d59: JUMPI 00002d5a: RETURNDATASIZE 00002d5b: PUSH0 00002d5c: DUP1 00002d5d: RETURNDATACOPY 00002d5e: RETURNDATASIZE 00002d5f: PUSH0 00002d60: REVERT 00002d61: JUMPDEST 00002d62: POP 00002d63: POP 00002d64: POP 00002d65: POP 00002d66: PUSH1 0x40 00002d68: MLOAD 00002d69: RETURNDATASIZE 00002d6a: PUSH1 0x1f 00002d6c: NOT 00002d6d: PUSH1 0x1f 00002d6f: DUP3 00002d70: ADD 00002d71: AND 00002d72: DUP3 00002d73: ADD 00002d74: DUP1 00002d75: PUSH1 0x40 00002d77: MSTORE 00002d78: POP 00002d79: DUP2 00002d7a: ADD 00002d7b: SWAP1 00002d7c: PUSH2 0x2d85 00002d7f: SWAP2 00002d80: SWAP1 00002d81: PUSH2 0x57dc 00002d84: JUMP 00002d85: JUMPDEST 00002d86: SWAP1 00002d87: POP 00002d88: PUSH0 00002d89: PUSH2 0x2dd3 00002d8c: PUSH2 0x2dbf 00002d8f: DUP4 00002d90: DUP6 00002d91: GT 00002d92: PUSH2 0x2da4 00002d95: JUMPI 00002d96: PUSH2 0x2d9f 00002d99: DUP6 00002d9a: DUP6 00002d9b: PUSH2 0x5024 00002d9e: JUMP 00002d9f: JUMPDEST 00002da0: PUSH2 0x2dae 00002da3: JUMP 00002da4: JUMPDEST 00002da5: PUSH2 0x2dae 00002da8: DUP5 00002da9: DUP7 00002daa: PUSH2 0x5024 00002dad: JUMP 00002dae: JUMPDEST 00002daf: PUSH2 0x2db9 00002db2: DUP10 00002db3: PUSH1 0x0a 00002db5: PUSH2 0x57ce 00002db8: JUMP 00002db9: JUMPDEST 00002dba: DUP7 00002dbb: PUSH2 0x33d7 00002dbe: JUMP 00002dbf: JUMPDEST 00002dc0: PUSH3 0x0f4240 00002dc4: PUSH2 0x2dce 00002dc7: DUP10 00002dc8: PUSH1 0x0a 00002dca: PUSH2 0x57ce 00002dcd: JUMP 00002dce: JUMPDEST 00002dcf: PUSH2 0x33d7 00002dd2: JUMP 00002dd3: JUMPDEST 00002dd4: SWAP1 00002dd5: POP 00002dd6: DUP11 00002dd7: PUSH3 0xffffff 00002ddb: AND 00002ddc: DUP2 00002ddd: GT 00002dde: ISZERO 00002ddf: PUSH2 0x2e14 00002de2: JUMPI 00002de3: PUSH1 0x40 00002de5: MLOAD 00002de6: PUSH32 0xdc511a9c00000000000000000000000000000000000000000000000000000000 00002e07: DUP2 00002e08: MSTORE 00002e09: PUSH1 0x04 00002e0b: ADD 00002e0c: PUSH1 0x40 00002e0e: MLOAD 00002e0f: DUP1 00002e10: SWAP2 00002e11: SUB 00002e12: SWAP1 00002e13: REVERT 00002e14: JUMPDEST 00002e15: POP 00002e16: POP 00002e17: POP 00002e18: POP 00002e19: POP 00002e1a: POP 00002e1b: POP 00002e1c: POP 00002e1d: POP 00002e1e: POP 00002e1f: POP 00002e20: POP 00002e21: JUMP 00002e22: JUMPDEST 00002e23: PUSH1 0x97 00002e25: SLOAD 00002e26: PUSH0 00002e27: SWAP1 00002e28: DUP2 00002e29: SWAP1 00002e2a: PUSH1 0x01 00002e2c: PUSH1 0x01 00002e2e: PUSH1 0xa0 00002e30: SHL 00002e31: SUB 00002e32: AND 00002e33: CALLER 00002e34: DUP2 00002e35: EQ 00002e36: PUSH2 0x2e7c 00002e39: JUMPI 00002e3a: PUSH1 0x40 00002e3c: MLOAD 00002e3d: PUSH32 0xbf8a293200000000000000000000000000000000000000000000000000000000 00002e5e: DUP2 00002e5f: MSTORE 00002e60: CALLER 00002e61: PUSH1 0x04 00002e63: DUP3 00002e64: ADD 00002e65: MSTORE 00002e66: PUSH1 0x01 00002e68: PUSH1 0x01 00002e6a: PUSH1 0xa0 00002e6c: SHL 00002e6d: SUB 00002e6e: DUP3 00002e6f: AND 00002e70: PUSH1 0x24 00002e72: DUP3 00002e73: ADD 00002e74: MSTORE 00002e75: PUSH1 0x44 00002e77: ADD 00002e78: PUSH2 0x0914 00002e7b: JUMP 00002e7c: JUMPDEST 00002e7d: PUSH2 0x2e84 00002e80: PUSH2 0x34e8 00002e83: JUMP 00002e84: JUMPDEST 00002e85: PUSH1 0x01 00002e87: PUSH1 0x01 00002e89: PUSH1 0xa0 00002e8b: SHL 00002e8c: SUB 00002e8d: DUP6 00002e8e: AND 00002e8f: PUSH2 0x2ec4 00002e92: JUMPI 00002e93: PUSH1 0x40 00002e95: MLOAD 00002e96: PUSH32 0x9fabe1c100000000000000000000000000000000000000000000000000000000 00002eb7: DUP2 00002eb8: MSTORE 00002eb9: PUSH1 0x04 00002ebb: ADD 00002ebc: PUSH1 0x40 00002ebe: MLOAD 00002ebf: DUP1 00002ec0: SWAP2 00002ec1: SUB 00002ec2: SWAP1 00002ec3: REVERT 00002ec4: JUMPDEST 00002ec5: DUP4 00002ec6: PUSH0 00002ec7: SUB 00002ec8: PUSH2 0x2efd 00002ecb: JUMPI 00002ecc: PUSH1 0x40 00002ece: MLOAD 00002ecf: PUSH32 0x98c5be9700000000000000000000000000000000000000000000000000000000 00002ef0: DUP2 00002ef1: MSTORE 00002ef2: PUSH1 0x04 00002ef4: ADD 00002ef5: PUSH1 0x40 00002ef7: MLOAD 00002ef8: DUP1 00002ef9: SWAP2 00002efa: SUB 00002efb: SWAP1 00002efc: REVERT 00002efd: JUMPDEST 00002efe: PUSH8 0x0de0b6b3a7640000 00002f07: DUP5 00002f08: GT 00002f09: ISZERO 00002f0a: PUSH2 0x2f3f 00002f0d: JUMPI 00002f0e: PUSH1 0x40 00002f10: MLOAD 00002f11: PUSH32 0x2139c5c100000000000000000000000000000000000000000000000000000000 00002f32: DUP2 00002f33: MSTORE 00002f34: PUSH1 0x04 00002f36: ADD 00002f37: PUSH1 0x40 00002f39: MLOAD 00002f3a: DUP1 00002f3b: SWAP2 00002f3c: SUB 00002f3d: SWAP1 00002f3e: REVERT 00002f3f: JUMPDEST 00002f40: PUSH1 0x40 00002f42: DUP1 00002f43: MLOAD 00002f44: PUSH1 0x01 00002f46: PUSH1 0x01 00002f48: PUSH1 0xa0 00002f4a: SHL 00002f4b: SUB 00002f4c: DUP8 00002f4d: AND 00002f4e: PUSH1 0x20 00002f50: DUP3 00002f51: ADD 00002f52: MSTORE 00002f53: DUP1 00002f54: DUP3 00002f55: ADD 00002f56: DUP7 00002f57: SWAP1 00002f58: MSTORE 00002f59: DUP2 00002f5a: MLOAD 00002f5b: DUP1 00002f5c: DUP3 00002f5d: SUB 00002f5e: DUP4 00002f5f: ADD 00002f60: DUP2 00002f61: MSTORE 00002f62: PUSH1 0x60 00002f64: DUP3 00002f65: ADD 00002f66: SWAP1 00002f67: SWAP3 00002f68: MSTORE 00002f69: PUSH0 00002f6a: SWAP2 00002f6b: PUSH2 0x2f79 00002f6e: SWAP2 00002f6f: DUP4 00002f70: SWAP2 00002f71: SWAP1 00002f72: PUSH1 0x80 00002f74: ADD 00002f75: PUSH2 0x5064 00002f78: JUMP 00002f79: JUMPDEST 00002f7a: PUSH1 0x40 00002f7c: DUP1 00002f7d: MLOAD 00002f7e: PUSH1 0x1f 00002f80: NOT 00002f81: DUP2 00002f82: DUP5 00002f83: SUB 00002f84: ADD 00002f85: DUP2 00002f86: MSTORE 00002f87: SWAP1 00002f88: DUP3 00002f89: SWAP1 00002f8a: MSTORE 00002f8b: PUSH32 0x48c8949100000000000000000000000000000000000000000000000000000000 00002fac: DUP3 00002fad: MSTORE 00002fae: SWAP2 00002faf: POP 00002fb0: PUSH0 00002fb1: SWAP1 00002fb2: PUSH1 0x01 00002fb4: PUSH1 0x01 00002fb6: PUSH1 0xa0 00002fb8: SHL 00002fb9: SUB 00002fba: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00002fdb: AND 00002fdc: SWAP1 00002fdd: PUSH4 0x48c89491 00002fe2: SWAP1 00002fe3: PUSH2 0x2ff0 00002fe6: SWAP1 00002fe7: DUP6 00002fe8: SWAP1 00002fe9: PUSH1 0x04 00002feb: ADD 00002fec: PUSH2 0x4b02 00002fef: JUMP 00002ff0: JUMPDEST 00002ff1: PUSH0 00002ff2: PUSH1 0x40 00002ff4: MLOAD 00002ff5: DUP1 00002ff6: DUP4 00002ff7: SUB 00002ff8: DUP2 00002ff9: PUSH0 00002ffa: DUP8 00002ffb: GAS 00002ffc: CALL 00002ffd: ISZERO 00002ffe: DUP1 00002fff: ISZERO 00003000: PUSH2 0x300b 00003003: JUMPI 00003004: RETURNDATASIZE 00003005: PUSH0 00003006: DUP1 00003007: RETURNDATACOPY 00003008: RETURNDATASIZE 00003009: PUSH0 0000300a: REVERT 0000300b: JUMPDEST 0000300c: POP 0000300d: POP 0000300e: POP 0000300f: POP 00003010: PUSH1 0x40 00003012: MLOAD 00003013: RETURNDATASIZE 00003014: PUSH0 00003015: DUP3 00003016: RETURNDATACOPY 00003017: PUSH1 0x1f 00003019: RETURNDATASIZE 0000301a: SWAP1 0000301b: DUP2 0000301c: ADD 0000301d: PUSH1 0x1f 0000301f: NOT 00003020: AND 00003021: DUP3 00003022: ADD 00003023: PUSH1 0x40 00003025: MSTORE 00003026: PUSH2 0x3032 00003029: SWAP2 0000302a: SWAP1 0000302b: DUP2 0000302c: ADD 0000302d: SWAP1 0000302e: PUSH2 0x50fe 00003031: JUMP 00003032: JUMPDEST 00003033: SWAP1 00003034: POP 00003035: DUP1 00003036: DUP1 00003037: PUSH1 0x20 00003039: ADD 0000303a: SWAP1 0000303b: MLOAD 0000303c: DUP2 0000303d: ADD 0000303e: SWAP1 0000303f: PUSH2 0x3048 00003042: SWAP2 00003043: SWAP1 00003044: PUSH2 0x5130 00003047: JUMP 00003048: JUMPDEST 00003049: PUSH1 0x40 0000304b: DUP1 0000304c: MLOAD 0000304d: DUP10 0000304e: DUP2 0000304f: MSTORE 00003050: PUSH1 0x20 00003052: DUP2 00003053: ADD 00003054: DUP5 00003055: SWAP1 00003056: MSTORE 00003057: SWAP1 00003058: DUP2 00003059: ADD 0000305a: DUP3 0000305b: SWAP1 0000305c: MSTORE 0000305d: SWAP2 0000305e: SWAP7 0000305f: POP 00003060: SWAP5 00003061: POP 00003062: PUSH1 0x01 00003064: PUSH1 0x01 00003066: PUSH1 0xa0 00003068: SHL 00003069: SUB 0000306a: DUP9 0000306b: AND 0000306c: SWAP1 0000306d: PUSH32 0x9744d0a120f7c7d7906cfe3c05b50669fb49aa6d778b099d5d6edc386dee5b59 0000308e: SWAP1 0000308f: PUSH1 0x60 00003091: ADD 00003092: PUSH1 0x40 00003094: MLOAD 00003095: DUP1 00003096: SWAP2 00003097: SUB 00003098: SWAP1 00003099: LOG2 0000309a: POP 0000309b: POP 0000309c: PUSH2 0x30a4 0000309f: PUSH1 0x01 000030a1: DUP1 000030a2: SSTORE 000030a3: JUMP 000030a4: JUMPDEST 000030a5: POP 000030a6: SWAP3 000030a7: POP 000030a8: SWAP3 000030a9: SWAP1 000030aa: POP 000030ab: JUMP 000030ac: JUMPDEST 000030ad: DUP2 000030ae: SLOAD 000030af: PUSH1 0x60 000030b1: SWAP1 000030b2: DUP1 000030b3: PUSH8 0xffffffffffffffff 000030bc: DUP2 000030bd: GT 000030be: ISZERO 000030bf: PUSH2 0x30ca 000030c2: JUMPI 000030c3: PUSH2 0x30ca 000030c6: PUSH2 0x4b14 000030c9: JUMP 000030ca: JUMPDEST 000030cb: PUSH1 0x40 000030cd: MLOAD 000030ce: SWAP1 000030cf: DUP1 000030d0: DUP3 000030d1: MSTORE 000030d2: DUP1 000030d3: PUSH1 0x20 000030d5: MUL 000030d6: PUSH1 0x20 000030d8: ADD 000030d9: DUP3 000030da: ADD 000030db: PUSH1 0x40 000030dd: MSTORE 000030de: DUP1 000030df: ISZERO 000030e0: PUSH2 0x313f 000030e3: JUMPI 000030e4: DUP2 000030e5: PUSH1 0x20 000030e7: ADD 000030e8: JUMPDEST 000030e9: PUSH2 0x312c 000030ec: PUSH1 0x40 000030ee: DUP1 000030ef: MLOAD 000030f0: PUSH1 0x60 000030f2: DUP1 000030f3: DUP3 000030f4: ADD 000030f5: DUP4 000030f6: MSTORE 000030f7: PUSH0 000030f8: DUP1 000030f9: DUP4 000030fa: MSTORE 000030fb: PUSH1 0x20 000030fd: DUP1 000030fe: DUP5 000030ff: ADD 00003100: DUP3 00003101: SWAP1 00003102: MSTORE 00003103: DUP5 00003104: MLOAD 00003105: PUSH1 0xa0 00003107: DUP2 00003108: ADD 00003109: DUP7 0000310a: MSTORE 0000310b: DUP3 0000310c: DUP2 0000310d: MSTORE 0000310e: SWAP1 0000310f: DUP2 00003110: ADD 00003111: DUP3 00003112: SWAP1 00003113: MSTORE 00003114: DUP1 00003115: DUP6 00003116: ADD 00003117: DUP3 00003118: SWAP1 00003119: MSTORE 0000311a: SWAP2 0000311b: DUP3 0000311c: ADD 0000311d: DUP2 0000311e: SWAP1 0000311f: MSTORE 00003120: PUSH1 0x80 00003122: DUP3 00003123: ADD 00003124: MSTORE 00003125: SWAP1 00003126: SWAP2 00003127: DUP3 00003128: ADD 00003129: MSTORE 0000312a: SWAP1 0000312b: JUMP 0000312c: JUMPDEST 0000312d: DUP2 0000312e: MSTORE 0000312f: PUSH1 0x20 00003131: ADD 00003132: SWAP1 00003133: PUSH1 0x01 00003135: SWAP1 00003136: SUB 00003137: SWAP1 00003138: DUP2 00003139: PUSH2 0x30e8 0000313c: JUMPI 0000313d: SWAP1 0000313e: POP 0000313f: JUMPDEST 00003140: POP 00003141: SWAP2 00003142: POP 00003143: PUSH0 00003144: JUMPDEST 00003145: DUP2 00003146: DUP2 00003147: LT 00003148: ISZERO 00003149: PUSH2 0x31d8 0000314c: JUMPI 0000314d: PUSH0 0000314e: DUP6 0000314f: DUP3 00003150: DUP2 00003151: SLOAD 00003152: DUP2 00003153: LT 00003154: PUSH2 0x315f 00003157: JUMPI 00003158: PUSH2 0x315f 0000315b: PUSH2 0x5370 0000315e: JUMP 0000315f: JUMPDEST 00003160: PUSH0 00003161: SWAP2 00003162: DUP3 00003163: MSTORE 00003164: PUSH1 0x20 00003166: SWAP2 00003167: DUP3 00003168: SWAP1 00003169: KECCAK256 0000316a: PUSH1 0x40 0000316c: DUP1 0000316d: MLOAD 0000316e: DUP1 0000316f: DUP3 00003170: ADD 00003171: DUP3 00003172: MSTORE 00003173: SWAP3 00003174: SWAP1 00003175: SWAP2 00003176: ADD 00003177: SLOAD 00003178: PUSH1 0x02 0000317a: DUP2 0000317b: DUP2 0000317c: SIGNEXTEND 0000317d: DUP5 0000317e: MSTORE 0000317f: PUSH4 0x01000000 00003184: SWAP1 00003185: SWAP2 00003186: DIV 00003187: DUP2 00003188: SIGNEXTEND 00003189: DUP4 0000318a: DUP6 0000318b: ADD 0000318c: SWAP1 0000318d: DUP2 0000318e: MSTORE 0000318f: DUP3 00003190: MLOAD 00003191: PUSH1 0x60 00003193: DUP2 00003194: ADD 00003195: DUP5 00003196: MSTORE 00003197: DUP5 00003198: MLOAD 00003199: DUP4 0000319a: SIGNEXTEND 0000319b: DUP2 0000319c: MSTORE 0000319d: SWAP1 0000319e: MLOAD 0000319f: SWAP1 000031a0: SWAP2 000031a1: SIGNEXTEND 000031a2: SWAP4 000031a3: DUP2 000031a4: ADD 000031a5: SWAP4 000031a6: SWAP1 000031a7: SWAP4 000031a8: MSTORE 000031a9: DUP3 000031aa: ADD 000031ab: DUP8 000031ac: SWAP1 000031ad: MSTORE 000031ae: DUP6 000031af: MLOAD 000031b0: SWAP1 000031b1: SWAP3 000031b2: POP 000031b3: DUP6 000031b4: SWAP1 000031b5: DUP5 000031b6: SWAP1 000031b7: DUP2 000031b8: LT 000031b9: PUSH2 0x31c4 000031bc: JUMPI 000031bd: PUSH2 0x31c4 000031c0: PUSH2 0x5370 000031c3: JUMP 000031c4: JUMPDEST 000031c5: PUSH1 0x20 000031c7: SWAP1 000031c8: DUP2 000031c9: MUL 000031ca: SWAP2 000031cb: SWAP1 000031cc: SWAP2 000031cd: ADD 000031ce: ADD 000031cf: MSTORE 000031d0: POP 000031d1: PUSH1 0x01 000031d3: ADD 000031d4: PUSH2 0x3144 000031d7: JUMP 000031d8: JUMPDEST 000031d9: POP 000031da: POP 000031db: SWAP3 000031dc: SWAP2 000031dd: POP 000031de: POP 000031df: JUMP 000031e0: JUMPDEST 000031e1: DUP1 000031e2: MLOAD 000031e3: PUSH0 000031e4: SWAP1 000031e5: DUP2 000031e6: SWAP1 000031e7: PUSH1 0x01 000031e9: PUSH1 0x01 000031eb: PUSH1 0xa0 000031ed: SHL 000031ee: SUB 000031ef: AND 000031f0: ISZERO 000031f1: PUSH2 0x327b 000031f4: JUMPI 000031f5: DUP3 000031f6: MLOAD 000031f7: PUSH1 0x40 000031f9: MLOAD 000031fa: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 0000321b: DUP2 0000321c: MSTORE 0000321d: ADDRESS 0000321e: PUSH1 0x04 00003220: DUP3 00003221: ADD 00003222: MSTORE 00003223: PUSH1 0x01 00003225: PUSH1 0x01 00003227: PUSH1 0xa0 00003229: SHL 0000322a: SUB 0000322b: SWAP1 0000322c: SWAP2 0000322d: AND 0000322e: SWAP1 0000322f: PUSH4 0x70a08231 00003234: SWAP1 00003235: PUSH1 0x24 00003237: ADD 00003238: PUSH1 0x20 0000323a: PUSH1 0x40 0000323c: MLOAD 0000323d: DUP1 0000323e: DUP4 0000323f: SUB 00003240: DUP2 00003241: DUP7 00003242: GAS 00003243: STATICCALL 00003244: ISZERO 00003245: DUP1 00003246: ISZERO 00003247: PUSH2 0x3252 0000324a: JUMPI 0000324b: RETURNDATASIZE 0000324c: PUSH0 0000324d: DUP1 0000324e: RETURNDATACOPY 0000324f: RETURNDATASIZE 00003250: PUSH0 00003251: REVERT 00003252: JUMPDEST 00003253: POP 00003254: POP 00003255: POP 00003256: POP 00003257: PUSH1 0x40 00003259: MLOAD 0000325a: RETURNDATASIZE 0000325b: PUSH1 0x1f 0000325d: NOT 0000325e: PUSH1 0x1f 00003260: DUP3 00003261: ADD 00003262: AND 00003263: DUP3 00003264: ADD 00003265: DUP1 00003266: PUSH1 0x40 00003268: MSTORE 00003269: POP 0000326a: DUP2 0000326b: ADD 0000326c: SWAP1 0000326d: PUSH2 0x3276 00003270: SWAP2 00003271: SWAP1 00003272: PUSH2 0x57dc 00003275: JUMP 00003276: JUMPDEST 00003277: PUSH2 0x327d 0000327a: JUMP 0000327b: JUMPDEST 0000327c: SELFBALANCE 0000327d: JUMPDEST 0000327e: PUSH1 0x20 00003280: DUP5 00003281: ADD 00003282: MLOAD 00003283: PUSH1 0x40 00003285: MLOAD 00003286: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000032a7: DUP2 000032a8: MSTORE 000032a9: ADDRESS 000032aa: PUSH1 0x04 000032ac: DUP3 000032ad: ADD 000032ae: MSTORE 000032af: SWAP2 000032b0: SWAP4 000032b1: POP 000032b2: PUSH1 0x01 000032b4: PUSH1 0x01 000032b6: PUSH1 0xa0 000032b8: SHL 000032b9: SUB 000032ba: AND 000032bb: SWAP1 000032bc: PUSH4 0x70a08231 000032c1: SWAP1 000032c2: PUSH1 0x24 000032c4: ADD 000032c5: PUSH1 0x20 000032c7: PUSH1 0x40 000032c9: MLOAD 000032ca: DUP1 000032cb: DUP4 000032cc: SUB 000032cd: DUP2 000032ce: DUP7 000032cf: GAS 000032d0: STATICCALL 000032d1: ISZERO 000032d2: DUP1 000032d3: ISZERO 000032d4: PUSH2 0x32df 000032d7: JUMPI 000032d8: RETURNDATASIZE 000032d9: PUSH0 000032da: DUP1 000032db: RETURNDATACOPY 000032dc: RETURNDATASIZE 000032dd: PUSH0 000032de: REVERT 000032df: JUMPDEST 000032e0: POP 000032e1: POP 000032e2: POP 000032e3: POP 000032e4: PUSH1 0x40 000032e6: MLOAD 000032e7: RETURNDATASIZE 000032e8: PUSH1 0x1f 000032ea: NOT 000032eb: PUSH1 0x1f 000032ed: DUP3 000032ee: ADD 000032ef: AND 000032f0: DUP3 000032f1: ADD 000032f2: DUP1 000032f3: PUSH1 0x40 000032f5: MSTORE 000032f6: POP 000032f7: DUP2 000032f8: ADD 000032f9: SWAP1 000032fa: PUSH2 0x3303 000032fd: SWAP2 000032fe: SWAP1 000032ff: PUSH2 0x57dc 00003302: JUMP 00003303: JUMPDEST 00003304: SWAP1 00003305: POP 00003306: SWAP3 00003307: POP 00003308: SWAP3 00003309: SWAP1 0000330a: POP 0000330b: JUMP 0000330c: JUMPDEST 0000330d: PUSH0 0000330e: DUP1 0000330f: PUSH0 00003310: DUP1 00003311: PUSH0 00003312: PUSH2 0x331a 00003315: DUP7 00003316: PUSH2 0x4369 00003319: JUMP 0000331a: JUMPDEST 0000331b: PUSH1 0x40 0000331d: MLOAD 0000331e: PUSH32 0x1e2eaeaf00000000000000000000000000000000000000000000000000000000 0000333f: DUP2 00003340: MSTORE 00003341: PUSH1 0x04 00003343: DUP2 00003344: ADD 00003345: DUP3 00003346: SWAP1 00003347: MSTORE 00003348: SWAP1 00003349: SWAP2 0000334a: POP 0000334b: PUSH0 0000334c: SWAP1 0000334d: PUSH1 0x01 0000334f: PUSH1 0x01 00003351: PUSH1 0xa0 00003353: SHL 00003354: SUB 00003355: DUP10 00003356: AND 00003357: SWAP1 00003358: PUSH4 0x1e2eaeaf 0000335d: SWAP1 0000335e: PUSH1 0x24 00003360: ADD 00003361: PUSH1 0x20 00003363: PUSH1 0x40 00003365: MLOAD 00003366: DUP1 00003367: DUP4 00003368: SUB 00003369: DUP2 0000336a: DUP7 0000336b: GAS 0000336c: STATICCALL 0000336d: ISZERO 0000336e: DUP1 0000336f: ISZERO 00003370: PUSH2 0x337b 00003373: JUMPI 00003374: RETURNDATASIZE 00003375: PUSH0 00003376: DUP1 00003377: RETURNDATACOPY 00003378: RETURNDATASIZE 00003379: PUSH0 0000337a: REVERT 0000337b: JUMPDEST 0000337c: POP 0000337d: POP 0000337e: POP 0000337f: POP 00003380: PUSH1 0x40 00003382: MLOAD 00003383: RETURNDATASIZE 00003384: PUSH1 0x1f 00003386: NOT 00003387: PUSH1 0x1f 00003389: DUP3 0000338a: ADD 0000338b: AND 0000338c: DUP3 0000338d: ADD 0000338e: DUP1 0000338f: PUSH1 0x40 00003391: MSTORE 00003392: POP 00003393: DUP2 00003394: ADD 00003395: SWAP1 00003396: PUSH2 0x339f 00003399: SWAP2 0000339a: SWAP1 0000339b: PUSH2 0x57dc 0000339e: JUMP 0000339f: JUMPDEST 000033a0: SWAP1 000033a1: POP 000033a2: PUSH1 0x01 000033a4: PUSH1 0x01 000033a6: PUSH1 0xa0 000033a8: SHL 000033a9: SUB 000033aa: DUP2 000033ab: AND 000033ac: SWAP6 000033ad: POP 000033ae: DUP1 000033af: PUSH1 0xa0 000033b1: SHR 000033b2: PUSH1 0x02 000033b4: SIGNEXTEND 000033b5: SWAP5 000033b6: POP 000033b7: PUSH3 0xffffff 000033bb: DUP2 000033bc: PUSH1 0xb8 000033be: SHR 000033bf: AND 000033c0: SWAP4 000033c1: POP 000033c2: PUSH3 0xffffff 000033c6: DUP2 000033c7: PUSH1 0xd0 000033c9: SHR 000033ca: AND 000033cb: SWAP3 000033cc: POP 000033cd: POP 000033ce: POP 000033cf: SWAP3 000033d0: SWAP6 000033d1: SWAP2 000033d2: SWAP5 000033d3: POP 000033d4: SWAP3 000033d5: POP 000033d6: JUMP 000033d7: JUMPDEST 000033d8: PUSH0 000033d9: DUP4 000033da: DUP4 000033db: MUL 000033dc: DUP2 000033dd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000033fe: DUP6 000033ff: DUP8 00003400: MULMOD 00003401: DUP3 00003402: DUP2 00003403: LT 00003404: DUP4 00003405: DUP3 00003406: SUB 00003407: SUB 00003408: SWAP2 00003409: POP 0000340a: POP 0000340b: DUP1 0000340c: DUP5 0000340d: GT 0000340e: PUSH2 0x3415 00003411: JUMPI 00003412: PUSH0 00003413: DUP1 00003414: REVERT 00003415: JUMPDEST 00003416: DUP1 00003417: PUSH0 00003418: SUB 00003419: PUSH2 0x3427 0000341c: JUMPI 0000341d: POP 0000341e: DUP3 0000341f: SWAP1 00003420: DIV 00003421: SWAP1 00003422: POP 00003423: PUSH2 0x348c 00003426: JUMP 00003427: JUMPDEST 00003428: PUSH0 00003429: DUP5 0000342a: DUP7 0000342b: DUP9 0000342c: MULMOD 0000342d: PUSH0 0000342e: DUP7 0000342f: DUP2 00003430: SUB 00003431: DUP8 00003432: AND 00003433: SWAP7 00003434: DUP8 00003435: SWAP1 00003436: DIV 00003437: SWAP7 00003438: PUSH1 0x02 0000343a: PUSH1 0x03 0000343c: DUP10 0000343d: MUL 0000343e: DUP2 0000343f: XOR 00003440: DUP1 00003441: DUP11 00003442: MUL 00003443: DUP3 00003444: SUB 00003445: MUL 00003446: DUP1 00003447: DUP11 00003448: MUL 00003449: DUP3 0000344a: SUB 0000344b: MUL 0000344c: DUP1 0000344d: DUP11 0000344e: MUL 0000344f: DUP3 00003450: SUB 00003451: MUL 00003452: DUP1 00003453: DUP11 00003454: MUL 00003455: DUP3 00003456: SUB 00003457: MUL 00003458: DUP1 00003459: DUP11 0000345a: MUL 0000345b: DUP3 0000345c: SUB 0000345d: MUL 0000345e: DUP1 0000345f: DUP11 00003460: MUL 00003461: SWAP1 00003462: SWAP2 00003463: SUB 00003464: MUL 00003465: SWAP2 00003466: DUP2 00003467: SWAP1 00003468: SUB 00003469: DUP2 0000346a: SWAP1 0000346b: DIV 0000346c: PUSH1 0x01 0000346e: ADD 0000346f: DUP7 00003470: DUP5 00003471: GT 00003472: SWAP1 00003473: SWAP6 00003474: SUB 00003475: SWAP5 00003476: SWAP1 00003477: SWAP5 00003478: MUL 00003479: SWAP2 0000347a: SWAP1 0000347b: SWAP5 0000347c: SUB 0000347d: SWAP3 0000347e: SWAP1 0000347f: SWAP3 00003480: DIV 00003481: SWAP2 00003482: SWAP1 00003483: SWAP2 00003484: OR 00003485: SWAP2 00003486: SWAP1 00003487: SWAP2 00003488: MUL 00003489: SWAP2 0000348a: POP 0000348b: POP 0000348c: JUMPDEST 0000348d: SWAP4 0000348e: SWAP3 0000348f: POP 00003490: POP 00003491: POP 00003492: JUMP 00003493: JUMPDEST 00003494: PUSH1 0x65 00003496: SLOAD 00003497: PUSH1 0xff 00003499: AND 0000349a: ISZERO 0000349b: PUSH2 0x34e6 0000349e: JUMPI 0000349f: PUSH1 0x40 000034a1: MLOAD 000034a2: PUSH3 0x461bcd 000034a6: PUSH1 0xe5 000034a8: SHL 000034a9: DUP2 000034aa: MSTORE 000034ab: PUSH1 0x20 000034ad: PUSH1 0x04 000034af: DUP3 000034b0: ADD 000034b1: MSTORE 000034b2: PUSH1 0x10 000034b4: PUSH1 0x24 000034b6: DUP3 000034b7: ADD 000034b8: MSTORE 000034b9: PUSH32 0x5061757361626c653a2070617573656400000000000000000000000000000000 000034da: PUSH1 0x44 000034dc: DUP3 000034dd: ADD 000034de: MSTORE 000034df: PUSH1 0x64 000034e1: ADD 000034e2: PUSH2 0x0914 000034e5: JUMP 000034e6: JUMPDEST 000034e7: JUMP 000034e8: JUMPDEST 000034e9: PUSH1 0x02 000034eb: PUSH1 0x01 000034ed: SLOAD 000034ee: SUB 000034ef: PUSH2 0x353a 000034f2: JUMPI 000034f3: PUSH1 0x40 000034f5: MLOAD 000034f6: PUSH3 0x461bcd 000034fa: PUSH1 0xe5 000034fc: SHL 000034fd: DUP2 000034fe: MSTORE 000034ff: PUSH1 0x20 00003501: PUSH1 0x04 00003503: DUP3 00003504: ADD 00003505: MSTORE 00003506: PUSH1 0x1f 00003508: PUSH1 0x24 0000350a: DUP3 0000350b: ADD 0000350c: MSTORE 0000350d: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 0000352e: PUSH1 0x44 00003530: DUP3 00003531: ADD 00003532: MSTORE 00003533: PUSH1 0x64 00003535: ADD 00003536: PUSH2 0x0914 00003539: JUMP 0000353a: JUMPDEST 0000353b: PUSH1 0x02 0000353d: PUSH1 0x01 0000353f: SSTORE 00003540: JUMP 00003541: JUMPDEST 00003542: DUP1 00003543: SELFBALANCE 00003544: LT 00003545: ISZERO 00003546: PUSH2 0x3591 00003549: JUMPI 0000354a: PUSH1 0x40 0000354c: MLOAD 0000354d: PUSH3 0x461bcd 00003551: PUSH1 0xe5 00003553: SHL 00003554: DUP2 00003555: MSTORE 00003556: PUSH1 0x20 00003558: PUSH1 0x04 0000355a: DUP3 0000355b: ADD 0000355c: MSTORE 0000355d: PUSH1 0x1d 0000355f: PUSH1 0x24 00003561: DUP3 00003562: ADD 00003563: MSTORE 00003564: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e6365000000 00003585: PUSH1 0x44 00003587: DUP3 00003588: ADD 00003589: MSTORE 0000358a: PUSH1 0x64 0000358c: ADD 0000358d: PUSH2 0x0914 00003590: JUMP 00003591: JUMPDEST 00003592: PUSH0 00003593: DUP3 00003594: PUSH1 0x01 00003596: PUSH1 0x01 00003598: PUSH1 0xa0 0000359a: SHL 0000359b: SUB 0000359c: AND 0000359d: DUP3 0000359e: PUSH1 0x40 000035a0: MLOAD 000035a1: PUSH0 000035a2: PUSH1 0x40 000035a4: MLOAD 000035a5: DUP1 000035a6: DUP4 000035a7: SUB 000035a8: DUP2 000035a9: DUP6 000035aa: DUP8 000035ab: GAS 000035ac: CALL 000035ad: SWAP3 000035ae: POP 000035af: POP 000035b0: POP 000035b1: RETURNDATASIZE 000035b2: DUP1 000035b3: PUSH0 000035b4: DUP2 000035b5: EQ 000035b6: PUSH2 0x35da 000035b9: JUMPI 000035ba: PUSH1 0x40 000035bc: MLOAD 000035bd: SWAP2 000035be: POP 000035bf: PUSH1 0x1f 000035c1: NOT 000035c2: PUSH1 0x3f 000035c4: RETURNDATASIZE 000035c5: ADD 000035c6: AND 000035c7: DUP3 000035c8: ADD 000035c9: PUSH1 0x40 000035cb: MSTORE 000035cc: RETURNDATASIZE 000035cd: DUP3 000035ce: MSTORE 000035cf: RETURNDATASIZE 000035d0: PUSH0 000035d1: PUSH1 0x20 000035d3: DUP5 000035d4: ADD 000035d5: RETURNDATACOPY 000035d6: PUSH2 0x35df 000035d9: JUMP 000035da: JUMPDEST 000035db: PUSH1 0x60 000035dd: SWAP2 000035de: POP 000035df: JUMPDEST 000035e0: POP 000035e1: POP 000035e2: SWAP1 000035e3: POP 000035e4: DUP1 000035e5: PUSH2 0x13d2 000035e8: JUMPI 000035e9: PUSH1 0x40 000035eb: MLOAD 000035ec: PUSH3 0x461bcd 000035f0: PUSH1 0xe5 000035f2: SHL 000035f3: DUP2 000035f4: MSTORE 000035f5: PUSH1 0x20 000035f7: PUSH1 0x04 000035f9: DUP3 000035fa: ADD 000035fb: MSTORE 000035fc: PUSH1 0x3a 000035fe: PUSH1 0x24 00003600: DUP3 00003601: ADD 00003602: MSTORE 00003603: PUSH32 0x416464726573733a20756e61626c6520746f2073656e642076616c75652c2072 00003624: PUSH1 0x44 00003626: DUP3 00003627: ADD 00003628: MSTORE 00003629: PUSH32 0x6563697069656e74206d61792068617665207265766572746564000000000000 0000364a: PUSH1 0x64 0000364c: DUP3 0000364d: ADD 0000364e: MSTORE 0000364f: PUSH1 0x84 00003651: ADD 00003652: PUSH2 0x0914 00003655: JUMP 00003656: JUMPDEST 00003657: PUSH1 0x01 00003659: DUP1 0000365a: SSTORE 0000365b: JUMP 0000365c: JUMPDEST 0000365d: DUP1 0000365e: ISZERO 0000365f: PUSH2 0x381d 00003662: JUMPI 00003663: PUSH32 0xffffffffffffffffffffffff1111111111111111111111111111111111111112 00003684: PUSH1 0x01 00003686: PUSH1 0x01 00003688: PUSH1 0xa0 0000368a: SHL 0000368b: SUB 0000368c: DUP5 0000368d: AND 0000368e: ADD 0000368f: PUSH2 0x36c4 00003692: JUMPI 00003693: PUSH1 0x40 00003695: MLOAD 00003696: PUSH32 0x033684a100000000000000000000000000000000000000000000000000000000 000036b7: DUP2 000036b8: MSTORE 000036b9: PUSH1 0x04 000036bb: ADD 000036bc: PUSH1 0x40 000036be: MLOAD 000036bf: DUP1 000036c0: SWAP2 000036c1: SUB 000036c2: SWAP1 000036c3: REVERT 000036c4: JUMPDEST 000036c5: DUP3 000036c6: PUSH1 0x01 000036c8: PUSH1 0x01 000036ca: PUSH1 0xa0 000036cc: SHL 000036cd: SUB 000036ce: AND 000036cf: DUP5 000036d0: PUSH1 0x20 000036d2: ADD 000036d3: MLOAD 000036d4: PUSH1 0x01 000036d6: PUSH1 0x01 000036d8: PUSH1 0xa0 000036da: SHL 000036db: SUB 000036dc: AND 000036dd: EQ 000036de: PUSH2 0x372c 000036e1: JUMPI 000036e2: PUSH1 0x20 000036e4: DUP5 000036e5: ADD 000036e6: MLOAD 000036e7: PUSH1 0x40 000036e9: MLOAD 000036ea: PUSH32 0xe68dcbc800000000000000000000000000000000000000000000000000000000 0000370b: DUP2 0000370c: MSTORE 0000370d: PUSH1 0x01 0000370f: PUSH1 0x01 00003711: PUSH1 0xa0 00003713: SHL 00003714: SUB 00003715: SWAP2 00003716: DUP3 00003717: AND 00003718: PUSH1 0x04 0000371a: DUP3 0000371b: ADD 0000371c: MSTORE 0000371d: SWAP1 0000371e: DUP5 0000371f: AND 00003720: PUSH1 0x24 00003722: DUP3 00003723: ADD 00003724: MSTORE 00003725: PUSH1 0x44 00003727: ADD 00003728: PUSH2 0x0914 0000372b: JUMP 0000372c: JUMPDEST 0000372d: PUSH32 0xffffffffffffffffffffffff1111111111111111111111111111111111111112 0000374e: PUSH1 0x01 00003750: PUSH1 0x01 00003752: PUSH1 0xa0 00003754: SHL 00003755: SUB 00003756: DUP4 00003757: AND 00003758: ADD 00003759: PUSH2 0x37b9 0000375c: JUMPI 0000375d: DUP4 0000375e: MLOAD 0000375f: PUSH1 0x01 00003761: PUSH1 0x01 00003763: PUSH1 0xa0 00003765: SHL 00003766: SUB 00003767: AND 00003768: ISZERO 00003769: PUSH2 0x37b4 0000376c: JUMPI 0000376d: DUP4 0000376e: MLOAD 0000376f: PUSH1 0x40 00003771: MLOAD 00003772: PUSH32 0x2f48444b00000000000000000000000000000000000000000000000000000000 00003793: DUP2 00003794: MSTORE 00003795: PUSH1 0x01 00003797: PUSH1 0x01 00003799: PUSH1 0xa0 0000379b: SHL 0000379c: SUB 0000379d: SWAP2 0000379e: DUP3 0000379f: AND 000037a0: PUSH1 0x04 000037a2: DUP3 000037a3: ADD 000037a4: MSTORE 000037a5: SWAP1 000037a6: DUP4 000037a7: AND 000037a8: PUSH1 0x24 000037aa: DUP3 000037ab: ADD 000037ac: MSTORE 000037ad: PUSH1 0x44 000037af: ADD 000037b0: PUSH2 0x0914 000037b3: JUMP 000037b4: JUMPDEST 000037b5: PUSH2 0x0bf8 000037b8: JUMP 000037b9: JUMPDEST 000037ba: DUP2 000037bb: PUSH1 0x01 000037bd: PUSH1 0x01 000037bf: PUSH1 0xa0 000037c1: SHL 000037c2: SUB 000037c3: AND 000037c4: DUP5 000037c5: PUSH0 000037c6: ADD 000037c7: MLOAD 000037c8: PUSH1 0x01 000037ca: PUSH1 0x01 000037cc: PUSH1 0xa0 000037ce: SHL 000037cf: SUB 000037d0: AND 000037d1: EQ 000037d2: PUSH2 0x37b4 000037d5: JUMPI 000037d6: DUP4 000037d7: MLOAD 000037d8: PUSH1 0x40 000037da: MLOAD 000037db: PUSH32 0x2f48444b00000000000000000000000000000000000000000000000000000000 000037fc: DUP2 000037fd: MSTORE 000037fe: PUSH1 0x01 00003800: PUSH1 0x01 00003802: PUSH1 0xa0 00003804: SHL 00003805: SUB 00003806: SWAP2 00003807: DUP3 00003808: AND 00003809: PUSH1 0x04 0000380b: DUP3 0000380c: ADD 0000380d: MSTORE 0000380e: SWAP1 0000380f: DUP4 00003810: AND 00003811: PUSH1 0x24 00003813: DUP3 00003814: ADD 00003815: MSTORE 00003816: PUSH1 0x44 00003818: ADD 00003819: PUSH2 0x0914 0000381c: JUMP 0000381d: JUMPDEST 0000381e: PUSH32 0xffffffffffffffffffffffff1111111111111111111111111111111111111112 0000383f: PUSH1 0x01 00003841: PUSH1 0x01 00003843: PUSH1 0xa0 00003845: SHL 00003846: SUB 00003847: DUP5 00003848: AND 00003849: ADD 0000384a: PUSH2 0x38aa 0000384d: JUMPI 0000384e: DUP4 0000384f: MLOAD 00003850: PUSH1 0x01 00003852: PUSH1 0x01 00003854: PUSH1 0xa0 00003856: SHL 00003857: SUB 00003858: AND 00003859: ISZERO 0000385a: PUSH2 0x38a5 0000385d: JUMPI 0000385e: DUP4 0000385f: MLOAD 00003860: PUSH1 0x40 00003862: MLOAD 00003863: PUSH32 0x9c7842fe00000000000000000000000000000000000000000000000000000000 00003884: DUP2 00003885: MSTORE 00003886: PUSH1 0x01 00003888: PUSH1 0x01 0000388a: PUSH1 0xa0 0000388c: SHL 0000388d: SUB 0000388e: SWAP2 0000388f: DUP3 00003890: AND 00003891: PUSH1 0x04 00003893: DUP3 00003894: ADD 00003895: MSTORE 00003896: SWAP1 00003897: DUP5 00003898: AND 00003899: PUSH1 0x24 0000389b: DUP3 0000389c: ADD 0000389d: MSTORE 0000389e: PUSH1 0x44 000038a0: ADD 000038a1: PUSH2 0x0914 000038a4: JUMP 000038a5: JUMPDEST 000038a6: PUSH2 0x390e 000038a9: JUMP 000038aa: JUMPDEST 000038ab: DUP3 000038ac: PUSH1 0x01 000038ae: PUSH1 0x01 000038b0: PUSH1 0xa0 000038b2: SHL 000038b3: SUB 000038b4: AND 000038b5: DUP5 000038b6: PUSH0 000038b7: ADD 000038b8: MLOAD 000038b9: PUSH1 0x01 000038bb: PUSH1 0x01 000038bd: PUSH1 0xa0 000038bf: SHL 000038c0: SUB 000038c1: AND 000038c2: EQ 000038c3: PUSH2 0x390e 000038c6: JUMPI 000038c7: DUP4 000038c8: MLOAD 000038c9: PUSH1 0x40 000038cb: MLOAD 000038cc: PUSH32 0x9c7842fe00000000000000000000000000000000000000000000000000000000 000038ed: DUP2 000038ee: MSTORE 000038ef: PUSH1 0x01 000038f1: PUSH1 0x01 000038f3: PUSH1 0xa0 000038f5: SHL 000038f6: SUB 000038f7: SWAP2 000038f8: DUP3 000038f9: AND 000038fa: PUSH1 0x04 000038fc: DUP3 000038fd: ADD 000038fe: MSTORE 000038ff: SWAP1 00003900: DUP5 00003901: AND 00003902: PUSH1 0x24 00003904: DUP3 00003905: ADD 00003906: MSTORE 00003907: PUSH1 0x44 00003909: ADD 0000390a: PUSH2 0x0914 0000390d: JUMP 0000390e: JUMPDEST 0000390f: PUSH32 0xffffffffffffffffffffffff1111111111111111111111111111111111111112 00003930: PUSH1 0x01 00003932: PUSH1 0x01 00003934: PUSH1 0xa0 00003936: SHL 00003937: SUB 00003938: DUP4 00003939: AND 0000393a: ADD 0000393b: PUSH2 0x3970 0000393e: JUMPI 0000393f: PUSH1 0x40 00003941: MLOAD 00003942: PUSH32 0x033684a100000000000000000000000000000000000000000000000000000000 00003963: DUP2 00003964: MSTORE 00003965: PUSH1 0x04 00003967: ADD 00003968: PUSH1 0x40 0000396a: MLOAD 0000396b: DUP1 0000396c: SWAP2 0000396d: SUB 0000396e: SWAP1 0000396f: REVERT 00003970: JUMPDEST 00003971: DUP2 00003972: PUSH1 0x01 00003974: PUSH1 0x01 00003976: PUSH1 0xa0 00003978: SHL 00003979: SUB 0000397a: AND 0000397b: DUP5 0000397c: PUSH1 0x20 0000397e: ADD 0000397f: MLOAD 00003980: PUSH1 0x01 00003982: PUSH1 0x01 00003984: PUSH1 0xa0 00003986: SHL 00003987: SUB 00003988: AND 00003989: EQ 0000398a: PUSH2 0x0bf8 0000398d: JUMPI 0000398e: PUSH1 0x20 00003990: DUP5 00003991: ADD 00003992: MLOAD 00003993: PUSH1 0x40 00003995: MLOAD 00003996: PUSH32 0xfcb77b6800000000000000000000000000000000000000000000000000000000 000039b7: DUP2 000039b8: MSTORE 000039b9: PUSH1 0x01 000039bb: PUSH1 0x01 000039bd: PUSH1 0xa0 000039bf: SHL 000039c0: SUB 000039c1: SWAP2 000039c2: DUP3 000039c3: AND 000039c4: PUSH1 0x04 000039c6: DUP3 000039c7: ADD 000039c8: MSTORE 000039c9: SWAP1 000039ca: DUP4 000039cb: AND 000039cc: PUSH1 0x24 000039ce: DUP3 000039cf: ADD 000039d0: MSTORE 000039d1: PUSH1 0x44 000039d3: ADD 000039d4: PUSH2 0x0914 000039d7: JUMP 000039d8: JUMPDEST 000039d9: PUSH1 0x80 000039db: DUP2 000039dc: ADD 000039dd: MLOAD 000039de: PUSH2 0x0200 000039e1: AND 000039e2: ISZERO 000039e3: ISZERO 000039e4: DUP1 000039e5: PUSH2 0x39f5 000039e8: JUMPI 000039e9: POP 000039ea: PUSH1 0x80 000039ec: DUP2 000039ed: ADD 000039ee: MLOAD 000039ef: PUSH2 0x0100 000039f2: AND 000039f3: ISZERO 000039f4: ISZERO 000039f5: JUMPDEST 000039f6: DUP1 000039f7: PUSH2 0x3a07 000039fa: JUMPI 000039fb: POP 000039fc: PUSH1 0x80 000039fe: DUP2 000039ff: ADD 00003a00: MLOAD 00003a01: PUSH2 0x0400 00003a04: AND 00003a05: ISZERO 00003a06: ISZERO 00003a07: JUMPDEST 00003a08: ISZERO 00003a09: PUSH2 0x11f8 00003a0c: JUMPI 00003a0d: PUSH1 0x40 00003a0f: MLOAD 00003a10: PUSH32 0xa24739bb00000000000000000000000000000000000000000000000000000000 00003a31: DUP2 00003a32: MSTORE 00003a33: PUSH1 0x04 00003a35: ADD 00003a36: PUSH1 0x40 00003a38: MLOAD 00003a39: DUP1 00003a3a: SWAP2 00003a3b: SUB 00003a3c: SWAP1 00003a3d: REVERT 00003a3e: JUMPDEST 00003a3f: PUSH0 00003a40: SLOAD 00003a41: PUSH2 0x0100 00003a44: SWAP1 00003a45: DIV 00003a46: PUSH1 0xff 00003a48: AND 00003a49: PUSH2 0x3aba 00003a4c: JUMPI 00003a4d: PUSH1 0x40 00003a4f: MLOAD 00003a50: PUSH3 0x461bcd 00003a54: PUSH1 0xe5 00003a56: SHL 00003a57: DUP2 00003a58: MSTORE 00003a59: PUSH1 0x20 00003a5b: PUSH1 0x04 00003a5d: DUP3 00003a5e: ADD 00003a5f: MSTORE 00003a60: PUSH1 0x2b 00003a62: PUSH1 0x24 00003a64: DUP3 00003a65: ADD 00003a66: MSTORE 00003a67: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00003a88: PUSH1 0x44 00003a8a: DUP3 00003a8b: ADD 00003a8c: MSTORE 00003a8d: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00003aae: PUSH1 0x64 00003ab0: DUP3 00003ab1: ADD 00003ab2: MSTORE 00003ab3: PUSH1 0x84 00003ab5: ADD 00003ab6: PUSH2 0x0914 00003ab9: JUMP 00003aba: JUMPDEST 00003abb: PUSH2 0x34e6 00003abe: PUSH2 0x43a5 00003ac1: JUMP 00003ac2: JUMPDEST 00003ac3: PUSH0 00003ac4: SLOAD 00003ac5: PUSH2 0x0100 00003ac8: SWAP1 00003ac9: DIV 00003aca: PUSH1 0xff 00003acc: AND 00003acd: PUSH2 0x3b3e 00003ad0: JUMPI 00003ad1: PUSH1 0x40 00003ad3: MLOAD 00003ad4: PUSH3 0x461bcd 00003ad8: PUSH1 0xe5 00003ada: SHL 00003adb: DUP2 00003adc: MSTORE 00003add: PUSH1 0x20 00003adf: PUSH1 0x04 00003ae1: DUP3 00003ae2: ADD 00003ae3: MSTORE 00003ae4: PUSH1 0x2b 00003ae6: PUSH1 0x24 00003ae8: DUP3 00003ae9: ADD 00003aea: MSTORE 00003aeb: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00003b0c: PUSH1 0x44 00003b0e: DUP3 00003b0f: ADD 00003b10: MSTORE 00003b11: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00003b32: PUSH1 0x64 00003b34: DUP3 00003b35: ADD 00003b36: MSTORE 00003b37: PUSH1 0x84 00003b39: ADD 00003b3a: PUSH2 0x0914 00003b3d: JUMP 00003b3e: JUMPDEST 00003b3f: PUSH2 0x34e6 00003b42: PUSH2 0x4421 00003b45: JUMP 00003b46: JUMPDEST 00003b47: PUSH1 0x65 00003b49: SLOAD 00003b4a: PUSH1 0xff 00003b4c: AND 00003b4d: PUSH2 0x34e6 00003b50: JUMPI 00003b51: PUSH1 0x40 00003b53: MLOAD 00003b54: PUSH3 0x461bcd 00003b58: PUSH1 0xe5 00003b5a: SHL 00003b5b: DUP2 00003b5c: MSTORE 00003b5d: PUSH1 0x20 00003b5f: PUSH1 0x04 00003b61: DUP3 00003b62: ADD 00003b63: MSTORE 00003b64: PUSH1 0x14 00003b66: PUSH1 0x24 00003b68: DUP3 00003b69: ADD 00003b6a: MSTORE 00003b6b: PUSH32 0x5061757361626c653a206e6f7420706175736564000000000000000000000000 00003b8c: PUSH1 0x44 00003b8e: DUP3 00003b8f: ADD 00003b90: MSTORE 00003b91: PUSH1 0x64 00003b93: ADD 00003b94: PUSH2 0x0914 00003b97: JUMP 00003b98: JUMPDEST 00003b99: PUSH2 0x3ba0 00003b9c: PUSH2 0x3b46 00003b9f: JUMP 00003ba0: JUMPDEST 00003ba1: PUSH1 0x65 00003ba3: DUP1 00003ba4: SLOAD 00003ba5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00003bc6: AND 00003bc7: SWAP1 00003bc8: SSTORE 00003bc9: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 00003bea: CALLER 00003beb: JUMPDEST 00003bec: PUSH1 0x40 00003bee: MLOAD 00003bef: PUSH1 0x01 00003bf1: PUSH1 0x01 00003bf3: PUSH1 0xa0 00003bf5: SHL 00003bf6: SUB 00003bf7: SWAP1 00003bf8: SWAP2 00003bf9: AND 00003bfa: DUP2 00003bfb: MSTORE 00003bfc: PUSH1 0x20 00003bfe: ADD 00003bff: PUSH1 0x40 00003c01: MLOAD 00003c02: DUP1 00003c03: SWAP2 00003c04: SUB 00003c05: SWAP1 00003c06: LOG1 00003c07: JUMP 00003c08: JUMPDEST 00003c09: PUSH1 0x40 00003c0b: DUP1 00003c0c: MLOAD 00003c0d: PUSH1 0x01 00003c0f: PUSH1 0x01 00003c11: PUSH1 0xa0 00003c13: SHL 00003c14: SUB 00003c15: DUP5 00003c16: AND 00003c17: PUSH1 0x24 00003c19: DUP3 00003c1a: ADD 00003c1b: MSTORE 00003c1c: PUSH1 0x44 00003c1e: DUP1 00003c1f: DUP3 00003c20: ADD 00003c21: DUP5 00003c22: SWAP1 00003c23: MSTORE 00003c24: DUP3 00003c25: MLOAD 00003c26: DUP1 00003c27: DUP4 00003c28: SUB 00003c29: SWAP1 00003c2a: SWAP2 00003c2b: ADD 00003c2c: DUP2 00003c2d: MSTORE 00003c2e: PUSH1 0x64 00003c30: SWAP1 00003c31: SWAP2 00003c32: ADD 00003c33: SWAP1 00003c34: SWAP2 00003c35: MSTORE 00003c36: PUSH1 0x20 00003c38: DUP2 00003c39: ADD 00003c3a: DUP1 00003c3b: MLOAD 00003c3c: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003c59: AND 00003c5a: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00003c7b: OR 00003c7c: SWAP1 00003c7d: MSTORE 00003c7e: PUSH2 0x3c87 00003c81: DUP5 00003c82: DUP3 00003c83: PUSH2 0x44c7 00003c86: JUMP 00003c87: JUMPDEST 00003c88: PUSH2 0x0bf8 00003c8b: JUMPI 00003c8c: PUSH1 0x40 00003c8e: MLOAD 00003c8f: PUSH1 0x01 00003c91: PUSH1 0x01 00003c93: PUSH1 0xa0 00003c95: SHL 00003c96: SUB 00003c97: DUP5 00003c98: AND 00003c99: PUSH1 0x24 00003c9b: DUP3 00003c9c: ADD 00003c9d: MSTORE 00003c9e: PUSH0 00003c9f: PUSH1 0x44 00003ca1: DUP3 00003ca2: ADD 00003ca3: MSTORE 00003ca4: PUSH2 0x3d33 00003ca7: SWAP1 00003ca8: DUP6 00003ca9: SWAP1 00003caa: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00003ccb: SWAP1 00003ccc: PUSH1 0x64 00003cce: ADD 00003ccf: JUMPDEST 00003cd0: PUSH1 0x40 00003cd2: DUP1 00003cd3: MLOAD 00003cd4: PUSH1 0x1f 00003cd6: NOT 00003cd7: DUP2 00003cd8: DUP5 00003cd9: SUB 00003cda: ADD 00003cdb: DUP2 00003cdc: MSTORE 00003cdd: SWAP2 00003cde: SWAP1 00003cdf: MSTORE 00003ce0: PUSH1 0x20 00003ce2: DUP2 00003ce3: ADD 00003ce4: DUP1 00003ce5: MLOAD 00003ce6: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003d03: AND 00003d04: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00003d25: SWAP1 00003d26: SWAP4 00003d27: AND 00003d28: SWAP3 00003d29: SWAP1 00003d2a: SWAP3 00003d2b: OR 00003d2c: SWAP1 00003d2d: SWAP2 00003d2e: MSTORE 00003d2f: PUSH2 0x4563 00003d32: JUMP 00003d33: JUMPDEST 00003d34: PUSH2 0x0bf8 00003d37: DUP5 00003d38: DUP3 00003d39: PUSH2 0x4563 00003d3c: JUMP 00003d3d: JUMPDEST 00003d3e: PUSH0 00003d3f: DUP1 00003d40: PUSH2 0x3d49 00003d43: DUP5 00003d44: DUP5 00003d45: PUSH2 0x4649 00003d48: JUMP 00003d49: JUMPDEST 00003d4a: PUSH1 0x40 00003d4c: MLOAD 00003d4d: PUSH32 0x1e2eaeaf00000000000000000000000000000000000000000000000000000000 00003d6e: DUP2 00003d6f: MSTORE 00003d70: PUSH1 0x04 00003d72: DUP2 00003d73: ADD 00003d74: DUP3 00003d75: SWAP1 00003d76: MSTORE 00003d77: SWAP1 00003d78: SWAP2 00003d79: POP 00003d7a: PUSH1 0x01 00003d7c: PUSH1 0x01 00003d7e: PUSH1 0xa0 00003d80: SHL 00003d81: SUB 00003d82: DUP7 00003d83: AND 00003d84: SWAP1 00003d85: PUSH4 0x1e2eaeaf 00003d8a: SWAP1 00003d8b: PUSH1 0x24 00003d8d: ADD 00003d8e: PUSH1 0x20 00003d90: PUSH1 0x40 00003d92: MLOAD 00003d93: DUP1 00003d94: DUP4 00003d95: SUB 00003d96: DUP2 00003d97: DUP7 00003d98: GAS 00003d99: STATICCALL 00003d9a: ISZERO 00003d9b: DUP1 00003d9c: ISZERO 00003d9d: PUSH2 0x3da8 00003da0: JUMPI 00003da1: RETURNDATASIZE 00003da2: PUSH0 00003da3: DUP1 00003da4: RETURNDATACOPY 00003da5: RETURNDATASIZE 00003da6: PUSH0 00003da7: REVERT 00003da8: JUMPDEST 00003da9: POP 00003daa: POP 00003dab: POP 00003dac: POP 00003dad: PUSH1 0x40 00003daf: MLOAD 00003db0: RETURNDATASIZE 00003db1: PUSH1 0x1f 00003db3: NOT 00003db4: PUSH1 0x1f 00003db6: DUP3 00003db7: ADD 00003db8: AND 00003db9: DUP3 00003dba: ADD 00003dbb: DUP1 00003dbc: PUSH1 0x40 00003dbe: MSTORE 00003dbf: POP 00003dc0: DUP2 00003dc1: ADD 00003dc2: SWAP1 00003dc3: PUSH2 0x3dcc 00003dc6: SWAP2 00003dc7: SWAP1 00003dc8: PUSH2 0x57dc 00003dcb: JUMP 00003dcc: JUMPDEST 00003dcd: SWAP6 00003dce: SWAP5 00003dcf: POP 00003dd0: POP 00003dd1: POP 00003dd2: POP 00003dd3: POP 00003dd4: JUMP 00003dd5: JUMPDEST 00003dd6: PUSH0 00003dd7: PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003df8: DUP3 00003df9: GT 00003dfa: ISZERO 00003dfb: PUSH2 0x3e6c 00003dfe: JUMPI 00003dff: PUSH1 0x40 00003e01: MLOAD 00003e02: PUSH3 0x461bcd 00003e06: PUSH1 0xe5 00003e08: SHL 00003e09: DUP2 00003e0a: MSTORE 00003e0b: PUSH1 0x20 00003e0d: PUSH1 0x04 00003e0f: DUP3 00003e10: ADD 00003e11: MSTORE 00003e12: PUSH1 0x28 00003e14: PUSH1 0x24 00003e16: DUP3 00003e17: ADD 00003e18: MSTORE 00003e19: PUSH32 0x53616665436173743a2076616c756520646f65736e27742066697420696e2061 00003e3a: PUSH1 0x44 00003e3c: DUP3 00003e3d: ADD 00003e3e: MSTORE 00003e3f: PUSH32 0x6e20696e74323536000000000000000000000000000000000000000000000000 00003e60: PUSH1 0x64 00003e62: DUP3 00003e63: ADD 00003e64: MSTORE 00003e65: PUSH1 0x84 00003e67: ADD 00003e68: PUSH2 0x0914 00003e6b: JUMP 00003e6c: JUMPDEST 00003e6d: POP 00003e6e: SWAP1 00003e6f: JUMP 00003e70: JUMPDEST 00003e71: DUP1 00003e72: PUSH1 0x0f 00003e74: DUP2 00003e75: SWAP1 00003e76: SIGNEXTEND 00003e77: DUP2 00003e78: EQ 00003e79: PUSH2 0x3eea 00003e7c: JUMPI 00003e7d: PUSH1 0x40 00003e7f: MLOAD 00003e80: PUSH3 0x461bcd 00003e84: PUSH1 0xe5 00003e86: SHL 00003e87: DUP2 00003e88: MSTORE 00003e89: PUSH1 0x20 00003e8b: PUSH1 0x04 00003e8d: DUP3 00003e8e: ADD 00003e8f: MSTORE 00003e90: PUSH1 0x27 00003e92: PUSH1 0x24 00003e94: DUP3 00003e95: ADD 00003e96: MSTORE 00003e97: PUSH32 0x53616665436173743a2076616c756520646f65736e27742066697420696e2031 00003eb8: PUSH1 0x44 00003eba: DUP3 00003ebb: ADD 00003ebc: MSTORE 00003ebd: PUSH32 0x3238206269747300000000000000000000000000000000000000000000000000 00003ede: PUSH1 0x64 00003ee0: DUP3 00003ee1: ADD 00003ee2: MSTORE 00003ee3: PUSH1 0x84 00003ee5: ADD 00003ee6: PUSH2 0x0914 00003ee9: JUMP 00003eea: JUMPDEST 00003eeb: SWAP2 00003eec: SWAP1 00003eed: POP 00003eee: JUMP 00003eef: JUMPDEST 00003ef0: PUSH0 00003ef1: DUP1 00003ef2: PUSH0 00003ef3: DUP1 00003ef4: PUSH0 00003ef5: PUSH1 0x01 00003ef7: DUP8 00003ef8: DUP8 00003ef9: PUSH1 0x40 00003efb: MLOAD 00003efc: PUSH1 0x20 00003efe: ADD 00003eff: PUSH2 0x3f09 00003f02: SWAP3 00003f03: SWAP2 00003f04: SWAP1 00003f05: PUSH2 0x554a 00003f08: JUMP 00003f09: JUMPDEST 00003f0a: PUSH1 0x40 00003f0c: DUP1 00003f0d: MLOAD 00003f0e: PUSH1 0x1f 00003f10: NOT 00003f11: DUP2 00003f12: DUP5 00003f13: SUB 00003f14: ADD 00003f15: DUP2 00003f16: MSTORE 00003f17: SWAP1 00003f18: DUP3 00003f19: SWAP1 00003f1a: MSTORE 00003f1b: PUSH2 0x3f27 00003f1e: SWAP3 00003f1f: SWAP2 00003f20: PUSH1 0x20 00003f22: ADD 00003f23: PUSH2 0x5064 00003f26: JUMP 00003f27: JUMPDEST 00003f28: PUSH1 0x40 00003f2a: DUP1 00003f2b: MLOAD 00003f2c: PUSH1 0x1f 00003f2e: NOT 00003f2f: DUP2 00003f30: DUP5 00003f31: SUB 00003f32: ADD 00003f33: DUP2 00003f34: MSTORE 00003f35: SWAP1 00003f36: DUP3 00003f37: SWAP1 00003f38: MSTORE 00003f39: PUSH32 0x48c8949100000000000000000000000000000000000000000000000000000000 00003f5a: DUP3 00003f5b: MSTORE 00003f5c: SWAP2 00003f5d: POP 00003f5e: PUSH0 00003f5f: SWAP1 00003f60: PUSH1 0x01 00003f62: PUSH1 0x01 00003f64: PUSH1 0xa0 00003f66: SHL 00003f67: SUB 00003f68: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00003f89: AND 00003f8a: SWAP1 00003f8b: PUSH4 0x48c89491 00003f90: SWAP1 00003f91: PUSH2 0x3f9e 00003f94: SWAP1 00003f95: DUP6 00003f96: SWAP1 00003f97: PUSH1 0x04 00003f99: ADD 00003f9a: PUSH2 0x4b02 00003f9d: JUMP 00003f9e: JUMPDEST 00003f9f: PUSH0 00003fa0: PUSH1 0x40 00003fa2: MLOAD 00003fa3: DUP1 00003fa4: DUP4 00003fa5: SUB 00003fa6: DUP2 00003fa7: PUSH0 00003fa8: DUP8 00003fa9: GAS 00003faa: CALL 00003fab: ISZERO 00003fac: DUP1 00003fad: ISZERO 00003fae: PUSH2 0x3fb9 00003fb1: JUMPI 00003fb2: RETURNDATASIZE 00003fb3: PUSH0 00003fb4: DUP1 00003fb5: RETURNDATACOPY 00003fb6: RETURNDATASIZE 00003fb7: PUSH0 00003fb8: REVERT 00003fb9: JUMPDEST 00003fba: POP 00003fbb: POP 00003fbc: POP 00003fbd: POP 00003fbe: PUSH1 0x40 00003fc0: MLOAD 00003fc1: RETURNDATASIZE 00003fc2: PUSH0 00003fc3: DUP3 00003fc4: RETURNDATACOPY 00003fc5: PUSH1 0x1f 00003fc7: RETURNDATASIZE 00003fc8: SWAP1 00003fc9: DUP2 00003fca: ADD 00003fcb: PUSH1 0x1f 00003fcd: NOT 00003fce: AND 00003fcf: DUP3 00003fd0: ADD 00003fd1: PUSH1 0x40 00003fd3: MSTORE 00003fd4: PUSH2 0x3fe0 00003fd7: SWAP2 00003fd8: SWAP1 00003fd9: DUP2 00003fda: ADD 00003fdb: SWAP1 00003fdc: PUSH2 0x50fe 00003fdf: JUMP 00003fe0: JUMPDEST 00003fe1: SWAP1 00003fe2: POP 00003fe3: DUP1 00003fe4: DUP1 00003fe5: PUSH1 0x20 00003fe7: ADD 00003fe8: SWAP1 00003fe9: MLOAD 00003fea: DUP2 00003feb: ADD 00003fec: SWAP1 00003fed: PUSH2 0x3ff6 00003ff0: SWAP2 00003ff1: SWAP1 00003ff2: PUSH2 0x55b8 00003ff5: JUMP 00003ff6: JUMPDEST 00003ff7: POP 00003ff8: POP 00003ff9: PUSH1 0x40 00003ffb: MLOAD 00003ffc: SWAP4 00003ffd: SWAP10 00003ffe: POP 00003fff: SWAP2 00004000: SWAP8 00004001: POP 00004002: SWAP6 00004003: POP 00004004: SWAP4 00004005: POP 00004006: PUSH32 0x66b43926f1225282b5f3e6b75233d69a9762a5ca01ec91dc9aa4e878ccb4d45b 00004027: SWAP1 00004028: PUSH2 0x403a 0000402b: SWAP1 0000402c: DUP11 0000402d: SWAP1 0000402e: DUP10 0000402f: SWAP1 00004030: DUP10 00004031: SWAP1 00004032: DUP10 00004033: SWAP1 00004034: DUP10 00004035: SWAP1 00004036: PUSH2 0x57f3 00004039: JUMP 0000403a: JUMPDEST 0000403b: PUSH1 0x40 0000403d: MLOAD 0000403e: DUP1 0000403f: SWAP2 00004040: SUB 00004041: SWAP1 00004042: LOG1 00004043: POP 00004044: POP 00004045: SWAP3 00004046: SWAP6 00004047: SWAP2 00004048: SWAP5 00004049: POP 0000404a: SWAP3 0000404b: POP 0000404c: JUMP 0000404d: JUMPDEST 0000404e: PUSH2 0x4055 00004051: PUSH2 0x3493 00004054: JUMP 00004055: JUMPDEST 00004056: PUSH1 0x65 00004058: DUP1 00004059: SLOAD 0000405a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000407b: AND 0000407c: PUSH1 0x01 0000407e: OR 0000407f: SWAP1 00004080: SSTORE 00004081: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 000040a2: PUSH2 0x3beb 000040a5: CALLER 000040a6: SWAP1 000040a7: JUMP 000040a8: JUMPDEST 000040a9: PUSH1 0x60 000040ab: DUP3 000040ac: ISZERO 000040ad: PUSH2 0x40ee 000040b0: JUMPI 000040b1: PUSH1 0x98 000040b3: SLOAD 000040b4: PUSH1 0x01 000040b6: PUSH1 0x01 000040b8: PUSH1 0xa0 000040ba: SHL 000040bb: SUB 000040bc: AND 000040bd: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 000040d2: EQ 000040d3: PUSH2 0x40ee 000040d6: JUMPI 000040d7: PUSH1 0x98 000040d9: SLOAD 000040da: PUSH2 0x40ee 000040dd: SWAP1 000040de: PUSH1 0x01 000040e0: PUSH1 0x01 000040e2: PUSH1 0xa0 000040e4: SHL 000040e5: SUB 000040e6: AND 000040e7: DUP6 000040e8: ADDRESS 000040e9: DUP7 000040ea: PUSH2 0x4699 000040ed: JUMP 000040ee: JUMPDEST 000040ef: DUP2 000040f0: ISZERO 000040f1: PUSH2 0x4132 000040f4: JUMPI 000040f5: PUSH1 0x99 000040f7: SLOAD 000040f8: PUSH1 0x01 000040fa: PUSH1 0x01 000040fc: PUSH1 0xa0 000040fe: SHL 000040ff: SUB 00004100: AND 00004101: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00004116: EQ 00004117: PUSH2 0x4132 0000411a: JUMPI 0000411b: PUSH1 0x99 0000411d: SLOAD 0000411e: PUSH2 0x4132 00004121: SWAP1 00004122: PUSH1 0x01 00004124: PUSH1 0x01 00004126: PUSH1 0xa0 00004128: SHL 00004129: SUB 0000412a: AND 0000412b: DUP6 0000412c: ADDRESS 0000412d: DUP6 0000412e: PUSH2 0x4699 00004131: JUMP 00004132: JUMPDEST 00004133: PUSH1 0x99 00004135: SLOAD 00004136: PUSH1 0x01 00004138: PUSH1 0xa0 0000413a: SHL 0000413b: SWAP1 0000413c: DIV 0000413d: PUSH1 0xff 0000413f: AND 00004140: PUSH2 0x416b 00004143: JUMPI 00004144: PUSH1 0x40 00004146: DUP1 00004147: MLOAD 00004148: PUSH1 0x20 0000414a: DUP2 0000414b: ADD 0000414c: DUP6 0000414d: SWAP1 0000414e: MSTORE 0000414f: SWAP1 00004150: DUP2 00004151: ADD 00004152: DUP4 00004153: SWAP1 00004154: MSTORE 00004155: PUSH1 0x60 00004157: ADD 00004158: PUSH1 0x40 0000415a: MLOAD 0000415b: PUSH1 0x20 0000415d: DUP2 0000415e: DUP4 0000415f: SUB 00004160: SUB 00004161: DUP2 00004162: MSTORE 00004163: SWAP1 00004164: PUSH1 0x40 00004166: MSTORE 00004167: PUSH2 0x418f 0000416a: JUMP 0000416b: JUMPDEST 0000416c: PUSH1 0x40 0000416e: DUP1 0000416f: MLOAD 00004170: PUSH1 0x20 00004172: DUP2 00004173: ADD 00004174: DUP5 00004175: SWAP1 00004176: MSTORE 00004177: SWAP1 00004178: DUP2 00004179: ADD 0000417a: DUP5 0000417b: SWAP1 0000417c: MSTORE 0000417d: PUSH1 0x60 0000417f: ADD 00004180: PUSH1 0x40 00004182: MLOAD 00004183: PUSH1 0x20 00004185: DUP2 00004186: DUP4 00004187: SUB 00004188: SUB 00004189: DUP2 0000418a: MSTORE 0000418b: SWAP1 0000418c: PUSH1 0x40 0000418e: MSTORE 0000418f: JUMPDEST 00004190: SWAP5 00004191: SWAP4 00004192: POP 00004193: POP 00004194: POP 00004195: POP 00004196: JUMP 00004197: JUMPDEST 00004198: PUSH1 0x60 0000419a: PUSH0 0000419b: DUP4 0000419c: PUSH1 0x02 0000419e: DUP2 0000419f: GT 000041a0: ISZERO 000041a1: PUSH2 0x41ac 000041a4: JUMPI 000041a5: PUSH2 0x41ac 000041a8: PUSH2 0x5037 000041ab: JUMP 000041ac: JUMPDEST 000041ad: SUB 000041ae: PUSH2 0x42d8 000041b1: JUMPI 000041b2: PUSH0 000041b3: DUP1 000041b4: DUP4 000041b5: DUP1 000041b6: PUSH1 0x20 000041b8: ADD 000041b9: SWAP1 000041ba: MLOAD 000041bb: DUP2 000041bc: ADD 000041bd: SWAP1 000041be: PUSH2 0x41c7 000041c1: SWAP2 000041c2: SWAP1 000041c3: PUSH2 0x5829 000041c6: JUMP 000041c7: JUMPDEST 000041c8: PUSH1 0x40 000041ca: DUP1 000041cb: MLOAD 000041cc: PUSH1 0xc0 000041ce: DUP2 000041cf: ADD 000041d0: DUP3 000041d1: MSTORE 000041d2: PUSH1 0x01 000041d4: PUSH1 0x01 000041d6: PUSH1 0xa0 000041d8: SHL 000041d9: SUB 000041da: DUP5 000041db: DUP2 000041dc: AND 000041dd: DUP3 000041de: MSTORE 000041df: PUSH1 0x20 000041e1: DUP3 000041e2: ADD 000041e3: DUP5 000041e4: DUP2 000041e5: MSTORE 000041e6: PUSH0 000041e7: DUP4 000041e8: DUP6 000041e9: ADD 000041ea: DUP2 000041eb: DUP2 000041ec: MSTORE 000041ed: PUSH1 0x60 000041ef: DUP6 000041f0: ADD 000041f1: DUP3 000041f2: DUP2 000041f3: MSTORE 000041f4: PUSH1 0x80 000041f6: DUP7 000041f7: ADD 000041f8: DUP4 000041f9: DUP2 000041fa: MSTORE 000041fb: PUSH1 0xa0 000041fd: DUP8 000041fe: ADD 000041ff: SWAP4 00004200: DUP5 00004201: MSTORE 00004202: SWAP7 00004203: MLOAD 00004204: PUSH32 0x66f0a78c00000000000000000000000000000000000000000000000000000000 00004225: DUP2 00004226: MSTORE 00004227: ADDRESS 00004228: PUSH1 0x04 0000422a: DUP3 0000422b: ADD 0000422c: MSTORE 0000422d: SWAP6 0000422e: MLOAD 0000422f: SWAP1 00004230: SWAP5 00004231: AND 00004232: PUSH1 0x24 00004234: DUP7 00004235: ADD 00004236: MSTORE 00004237: SWAP2 00004238: MLOAD 00004239: PUSH1 0x44 0000423b: DUP6 0000423c: ADD 0000423d: MSTORE 0000423e: SWAP1 0000423f: MLOAD 00004240: PUSH1 0x64 00004242: DUP5 00004243: ADD 00004244: MSTORE 00004245: SWAP1 00004246: MLOAD 00004247: PUSH1 0x84 00004249: DUP4 0000424a: ADD 0000424b: MSTORE 0000424c: SWAP2 0000424d: MLOAD 0000424e: PUSH1 0xa4 00004250: DUP3 00004251: ADD 00004252: MSTORE 00004253: SWAP1 00004254: MLOAD 00004255: PUSH1 0xc4 00004257: DUP3 00004258: ADD 00004259: MSTORE 0000425a: PUSH1 0xa2 0000425c: PUSH1 0xe4 0000425e: DUP3 0000425f: ADD 00004260: MSTORE 00004261: PUSH1 0xa3 00004263: PUSH2 0x0104 00004266: DUP3 00004267: ADD 00004268: MSTORE 00004269: SWAP2 0000426a: SWAP4 0000426b: POP 0000426c: SWAP2 0000426d: POP 0000426e: PUSH20 0x2aa0f3154d1e7109aaf681a372589da318b2ba56 00004283: SWAP1 00004284: PUSH4 0x66f0a78c 00004289: SWAP1 0000428a: PUSH2 0x0124 0000428d: ADD 0000428e: JUMPDEST 0000428f: PUSH0 00004290: PUSH1 0x40 00004292: MLOAD 00004293: DUP1 00004294: DUP4 00004295: SUB 00004296: DUP2 00004297: DUP7 00004298: GAS 00004299: DELEGATECALL 0000429a: ISZERO 0000429b: DUP1 0000429c: ISZERO 0000429d: PUSH2 0x42a8 000042a0: JUMPI 000042a1: RETURNDATASIZE 000042a2: PUSH0 000042a3: DUP1 000042a4: RETURNDATACOPY 000042a5: RETURNDATASIZE 000042a6: PUSH0 000042a7: REVERT 000042a8: JUMPDEST 000042a9: POP 000042aa: POP 000042ab: POP 000042ac: POP 000042ad: PUSH1 0x40 000042af: MLOAD 000042b0: RETURNDATASIZE 000042b1: PUSH0 000042b2: DUP3 000042b3: RETURNDATACOPY 000042b4: PUSH1 0x1f 000042b6: RETURNDATASIZE 000042b7: SWAP1 000042b8: DUP2 000042b9: ADD 000042ba: PUSH1 0x1f 000042bc: NOT 000042bd: AND 000042be: DUP3 000042bf: ADD 000042c0: PUSH1 0x40 000042c2: MSTORE 000042c3: PUSH2 0x42cf 000042c6: SWAP2 000042c7: SWAP1 000042c8: DUP2 000042c9: ADD 000042ca: SWAP1 000042cb: PUSH2 0x50fe 000042ce: JUMP 000042cf: JUMPDEST 000042d0: SWAP3 000042d1: POP 000042d2: POP 000042d3: POP 000042d4: PUSH2 0x231a 000042d7: JUMP 000042d8: JUMPDEST 000042d9: PUSH1 0x01 000042db: DUP4 000042dc: PUSH1 0x02 000042de: DUP2 000042df: GT 000042e0: ISZERO 000042e1: PUSH2 0x42ec 000042e4: JUMPI 000042e5: PUSH2 0x42ec 000042e8: PUSH2 0x5037 000042eb: JUMP 000042ec: JUMPDEST 000042ed: SUB 000042ee: PUSH2 0x231a 000042f1: JUMPI 000042f2: PUSH0 000042f3: DUP1 000042f4: DUP4 000042f5: DUP1 000042f6: PUSH1 0x20 000042f8: ADD 000042f9: SWAP1 000042fa: MLOAD 000042fb: DUP2 000042fc: ADD 000042fd: SWAP1 000042fe: PUSH2 0x4307 00004301: SWAP2 00004302: SWAP1 00004303: PUSH2 0x58c9 00004306: JUMP 00004307: JUMPDEST 00004308: PUSH1 0x40 0000430a: MLOAD 0000430b: PUSH32 0xbf9ea07800000000000000000000000000000000000000000000000000000000 0000432c: DUP2 0000432d: MSTORE 0000432e: SWAP2 0000432f: SWAP4 00004330: POP 00004331: SWAP2 00004332: POP 00004333: PUSH20 0x2aa0f3154d1e7109aaf681a372589da318b2ba56 00004348: SWAP1 00004349: PUSH4 0xbf9ea078 0000434e: SWAP1 0000434f: PUSH2 0x428e 00004352: SWAP1 00004353: ADDRESS 00004354: SWAP1 00004355: PUSH1 0x9c 00004357: SWAP1 00004358: DUP8 00004359: SWAP1 0000435a: DUP8 0000435b: SWAP1 0000435c: PUSH1 0xa2 0000435e: SWAP1 0000435f: PUSH1 0xa3 00004361: SWAP1 00004362: PUSH1 0x04 00004364: ADD 00004365: PUSH2 0x5a3a 00004368: JUMP 00004369: JUMPDEST 0000436a: PUSH1 0x40 0000436c: MLOAD 0000436d: PUSH0 0000436e: SWAP1 0000436f: PUSH2 0x4388 00004372: SWAP1 00004373: DUP4 00004374: SWAP1 00004375: PUSH1 0x06 00004377: SWAP1 00004378: PUSH1 0x20 0000437a: ADD 0000437b: SWAP2 0000437c: DUP3 0000437d: MSTORE 0000437e: PUSH1 0x20 00004380: DUP3 00004381: ADD 00004382: MSTORE 00004383: PUSH1 0x40 00004385: ADD 00004386: SWAP1 00004387: JUMP 00004388: JUMPDEST 00004389: PUSH1 0x40 0000438b: MLOAD 0000438c: PUSH1 0x20 0000438e: DUP2 0000438f: DUP4 00004390: SUB 00004391: SUB 00004392: DUP2 00004393: MSTORE 00004394: SWAP1 00004395: PUSH1 0x40 00004397: MSTORE 00004398: DUP1 00004399: MLOAD 0000439a: SWAP1 0000439b: PUSH1 0x20 0000439d: ADD 0000439e: KECCAK256 0000439f: SWAP1 000043a0: POP 000043a1: SWAP2 000043a2: SWAP1 000043a3: POP 000043a4: JUMP 000043a5: JUMPDEST 000043a6: PUSH0 000043a7: SLOAD 000043a8: PUSH2 0x0100 000043ab: SWAP1 000043ac: DIV 000043ad: PUSH1 0xff 000043af: AND 000043b0: PUSH2 0x3656 000043b3: JUMPI 000043b4: PUSH1 0x40 000043b6: MLOAD 000043b7: PUSH3 0x461bcd 000043bb: PUSH1 0xe5 000043bd: SHL 000043be: DUP2 000043bf: MSTORE 000043c0: PUSH1 0x20 000043c2: PUSH1 0x04 000043c4: DUP3 000043c5: ADD 000043c6: MSTORE 000043c7: PUSH1 0x2b 000043c9: PUSH1 0x24 000043cb: DUP3 000043cc: ADD 000043cd: MSTORE 000043ce: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 000043ef: PUSH1 0x44 000043f1: DUP3 000043f2: ADD 000043f3: MSTORE 000043f4: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00004415: PUSH1 0x64 00004417: DUP3 00004418: ADD 00004419: MSTORE 0000441a: PUSH1 0x84 0000441c: ADD 0000441d: PUSH2 0x0914 00004420: JUMP 00004421: JUMPDEST 00004422: PUSH0 00004423: SLOAD 00004424: PUSH2 0x0100 00004427: SWAP1 00004428: DIV 00004429: PUSH1 0xff 0000442b: AND 0000442c: PUSH2 0x449d 0000442f: JUMPI 00004430: PUSH1 0x40 00004432: MLOAD 00004433: PUSH3 0x461bcd 00004437: PUSH1 0xe5 00004439: SHL 0000443a: DUP2 0000443b: MSTORE 0000443c: PUSH1 0x20 0000443e: PUSH1 0x04 00004440: DUP3 00004441: ADD 00004442: MSTORE 00004443: PUSH1 0x2b 00004445: PUSH1 0x24 00004447: DUP3 00004448: ADD 00004449: MSTORE 0000444a: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 0000446b: PUSH1 0x44 0000446d: DUP3 0000446e: ADD 0000446f: MSTORE 00004470: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00004491: PUSH1 0x64 00004493: DUP3 00004494: ADD 00004495: MSTORE 00004496: PUSH1 0x84 00004498: ADD 00004499: PUSH2 0x0914 0000449c: JUMP 0000449d: JUMPDEST 0000449e: PUSH1 0x65 000044a0: DUP1 000044a1: SLOAD 000044a2: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000044c3: AND 000044c4: SWAP1 000044c5: SSTORE 000044c6: JUMP 000044c7: JUMPDEST 000044c8: PUSH0 000044c9: DUP1 000044ca: PUSH0 000044cb: DUP5 000044cc: PUSH1 0x01 000044ce: PUSH1 0x01 000044d0: PUSH1 0xa0 000044d2: SHL 000044d3: SUB 000044d4: AND 000044d5: DUP5 000044d6: PUSH1 0x40 000044d8: MLOAD 000044d9: PUSH2 0x44e2 000044dc: SWAP2 000044dd: SWAP1 000044de: PUSH2 0x5aea 000044e1: JUMP 000044e2: JUMPDEST 000044e3: PUSH0 000044e4: PUSH1 0x40 000044e6: MLOAD 000044e7: DUP1 000044e8: DUP4 000044e9: SUB 000044ea: DUP2 000044eb: PUSH0 000044ec: DUP7 000044ed: GAS 000044ee: CALL 000044ef: SWAP2 000044f0: POP 000044f1: POP 000044f2: RETURNDATASIZE 000044f3: DUP1 000044f4: PUSH0 000044f5: DUP2 000044f6: EQ 000044f7: PUSH2 0x451b 000044fa: JUMPI 000044fb: PUSH1 0x40 000044fd: MLOAD 000044fe: SWAP2 000044ff: POP 00004500: PUSH1 0x1f 00004502: NOT 00004503: PUSH1 0x3f 00004505: RETURNDATASIZE 00004506: ADD 00004507: AND 00004508: DUP3 00004509: ADD 0000450a: PUSH1 0x40 0000450c: MSTORE 0000450d: RETURNDATASIZE 0000450e: DUP3 0000450f: MSTORE 00004510: RETURNDATASIZE 00004511: PUSH0 00004512: PUSH1 0x20 00004514: DUP5 00004515: ADD 00004516: RETURNDATACOPY 00004517: PUSH2 0x4520 0000451a: JUMP 0000451b: JUMPDEST 0000451c: PUSH1 0x60 0000451e: SWAP2 0000451f: POP 00004520: JUMPDEST 00004521: POP 00004522: SWAP2 00004523: POP 00004524: SWAP2 00004525: POP 00004526: DUP2 00004527: DUP1 00004528: ISZERO 00004529: PUSH2 0x454a 0000452c: JUMPI 0000452d: POP 0000452e: DUP1 0000452f: MLOAD 00004530: ISZERO 00004531: DUP1 00004532: PUSH2 0x454a 00004535: JUMPI 00004536: POP 00004537: DUP1 00004538: DUP1 00004539: PUSH1 0x20 0000453b: ADD 0000453c: SWAP1 0000453d: MLOAD 0000453e: DUP2 0000453f: ADD 00004540: SWAP1 00004541: PUSH2 0x454a 00004544: SWAP2 00004545: SWAP1 00004546: PUSH2 0x5b00 00004549: JUMP 0000454a: JUMPDEST 0000454b: DUP1 0000454c: ISZERO 0000454d: PUSH2 0x2315 00004550: JUMPI 00004551: POP 00004552: PUSH1 0x01 00004554: PUSH1 0x01 00004556: PUSH1 0xa0 00004558: SHL 00004559: SUB 0000455a: DUP6 0000455b: AND 0000455c: EXTCODESIZE 0000455d: ISZERO 0000455e: ISZERO 0000455f: PUSH2 0x2315 00004562: JUMP 00004563: JUMPDEST 00004564: PUSH0 00004565: PUSH2 0x45b7 00004568: DUP3 00004569: PUSH1 0x40 0000456b: MLOAD 0000456c: DUP1 0000456d: PUSH1 0x40 0000456f: ADD 00004570: PUSH1 0x40 00004572: MSTORE 00004573: DUP1 00004574: PUSH1 0x20 00004576: DUP2 00004577: MSTORE 00004578: PUSH1 0x20 0000457a: ADD 0000457b: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 0000459c: DUP2 0000459d: MSTORE 0000459e: POP 0000459f: DUP6 000045a0: PUSH1 0x01 000045a2: PUSH1 0x01 000045a4: PUSH1 0xa0 000045a6: SHL 000045a7: SUB 000045a8: AND 000045a9: PUSH2 0x46ea 000045ac: SWAP1 000045ad: SWAP3 000045ae: SWAP2 000045af: SWAP1 000045b0: PUSH4 0xffffffff 000045b5: AND 000045b6: JUMP 000045b7: JUMPDEST 000045b8: SWAP1 000045b9: POP 000045ba: DUP1 000045bb: MLOAD 000045bc: PUSH0 000045bd: EQ 000045be: DUP1 000045bf: PUSH2 0x45d7 000045c2: JUMPI 000045c3: POP 000045c4: DUP1 000045c5: DUP1 000045c6: PUSH1 0x20 000045c8: ADD 000045c9: SWAP1 000045ca: MLOAD 000045cb: DUP2 000045cc: ADD 000045cd: SWAP1 000045ce: PUSH2 0x45d7 000045d1: SWAP2 000045d2: SWAP1 000045d3: PUSH2 0x5b00 000045d6: JUMP 000045d7: JUMPDEST 000045d8: PUSH2 0x13d2 000045db: JUMPI 000045dc: PUSH1 0x40 000045de: MLOAD 000045df: PUSH3 0x461bcd 000045e3: PUSH1 0xe5 000045e5: SHL 000045e6: DUP2 000045e7: MSTORE 000045e8: PUSH1 0x20 000045ea: PUSH1 0x04 000045ec: DUP3 000045ed: ADD 000045ee: MSTORE 000045ef: PUSH1 0x2a 000045f1: PUSH1 0x24 000045f3: DUP3 000045f4: ADD 000045f5: MSTORE 000045f6: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00004617: PUSH1 0x44 00004619: DUP3 0000461a: ADD 0000461b: MSTORE 0000461c: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 0000463d: PUSH1 0x64 0000463f: DUP3 00004640: ADD 00004641: MSTORE 00004642: PUSH1 0x84 00004644: ADD 00004645: PUSH2 0x0914 00004648: JUMP 00004649: JUMPDEST 0000464a: PUSH0 0000464b: DUP1 0000464c: PUSH2 0x4654 0000464f: DUP5 00004650: PUSH2 0x4369 00004653: JUMP 00004654: JUMPDEST 00004655: SWAP1 00004656: POP 00004657: PUSH0 00004658: PUSH2 0x4662 0000465b: PUSH1 0x06 0000465d: DUP4 0000465e: PUSH2 0x5b1b 00004661: JUMP 00004662: JUMPDEST 00004663: PUSH1 0x40 00004665: DUP1 00004666: MLOAD 00004667: PUSH1 0x20 00004669: DUP2 0000466a: ADD 0000466b: DUP8 0000466c: SWAP1 0000466d: MSTORE 0000466e: SWAP1 0000466f: DUP2 00004670: ADD 00004671: DUP3 00004672: SWAP1 00004673: MSTORE 00004674: SWAP1 00004675: SWAP2 00004676: POP 00004677: PUSH1 0x60 00004679: ADD 0000467a: PUSH1 0x40 0000467c: MLOAD 0000467d: PUSH1 0x20 0000467f: DUP2 00004680: DUP4 00004681: SUB 00004682: SUB 00004683: DUP2 00004684: MSTORE 00004685: SWAP1 00004686: PUSH1 0x40 00004688: MSTORE 00004689: DUP1 0000468a: MLOAD 0000468b: SWAP1 0000468c: PUSH1 0x20 0000468e: ADD 0000468f: KECCAK256 00004690: SWAP3 00004691: POP 00004692: POP 00004693: POP 00004694: SWAP3 00004695: SWAP2 00004696: POP 00004697: POP 00004698: JUMP 00004699: JUMPDEST 0000469a: PUSH1 0x40 0000469c: MLOAD 0000469d: PUSH1 0x01 0000469f: PUSH1 0x01 000046a1: PUSH1 0xa0 000046a3: SHL 000046a4: SUB 000046a5: DUP1 000046a6: DUP6 000046a7: AND 000046a8: PUSH1 0x24 000046aa: DUP4 000046ab: ADD 000046ac: MSTORE 000046ad: DUP4 000046ae: AND 000046af: PUSH1 0x44 000046b1: DUP3 000046b2: ADD 000046b3: MSTORE 000046b4: PUSH1 0x64 000046b6: DUP2 000046b7: ADD 000046b8: DUP3 000046b9: SWAP1 000046ba: MSTORE 000046bb: PUSH2 0x0bf8 000046be: SWAP1 000046bf: DUP6 000046c0: SWAP1 000046c1: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 000046e2: SWAP1 000046e3: PUSH1 0x84 000046e5: ADD 000046e6: PUSH2 0x3ccf 000046e9: JUMP 000046ea: JUMPDEST 000046eb: PUSH1 0x60 000046ed: PUSH2 0x418f 000046f0: DUP5 000046f1: DUP5 000046f2: PUSH0 000046f3: DUP6 000046f4: DUP6 000046f5: PUSH0 000046f6: DUP1 000046f7: DUP7 000046f8: PUSH1 0x01 000046fa: PUSH1 0x01 000046fc: PUSH1 0xa0 000046fe: SHL 000046ff: SUB 00004700: AND 00004701: DUP6 00004702: DUP8 00004703: PUSH1 0x40 00004705: MLOAD 00004706: PUSH2 0x470f 00004709: SWAP2 0000470a: SWAP1 0000470b: PUSH2 0x5aea 0000470e: JUMP 0000470f: JUMPDEST 00004710: PUSH0 00004711: PUSH1 0x40 00004713: MLOAD 00004714: DUP1 00004715: DUP4 00004716: SUB 00004717: DUP2 00004718: DUP6 00004719: DUP8 0000471a: GAS 0000471b: CALL 0000471c: SWAP3 0000471d: POP 0000471e: POP 0000471f: POP 00004720: RETURNDATASIZE 00004721: DUP1 00004722: PUSH0 00004723: DUP2 00004724: EQ 00004725: PUSH2 0x4749 00004728: JUMPI 00004729: PUSH1 0x40 0000472b: MLOAD 0000472c: SWAP2 0000472d: POP 0000472e: PUSH1 0x1f 00004730: NOT 00004731: PUSH1 0x3f 00004733: RETURNDATASIZE 00004734: ADD 00004735: AND 00004736: DUP3 00004737: ADD 00004738: PUSH1 0x40 0000473a: MSTORE 0000473b: RETURNDATASIZE 0000473c: DUP3 0000473d: MSTORE 0000473e: RETURNDATASIZE 0000473f: PUSH0 00004740: PUSH1 0x20 00004742: DUP5 00004743: ADD 00004744: RETURNDATACOPY 00004745: PUSH2 0x474e 00004748: JUMP 00004749: JUMPDEST 0000474a: PUSH1 0x60 0000474c: SWAP2 0000474d: POP 0000474e: JUMPDEST 0000474f: POP 00004750: SWAP2 00004751: POP 00004752: SWAP2 00004753: POP 00004754: PUSH2 0x475f 00004757: DUP8 00004758: DUP4 00004759: DUP4 0000475a: DUP8 0000475b: PUSH2 0x476a 0000475e: JUMP 0000475f: JUMPDEST 00004760: SWAP8 00004761: SWAP7 00004762: POP 00004763: POP 00004764: POP 00004765: POP 00004766: POP 00004767: POP 00004768: POP 00004769: JUMP 0000476a: JUMPDEST 0000476b: PUSH1 0x60 0000476d: DUP4 0000476e: ISZERO 0000476f: PUSH2 0x47d8 00004772: JUMPI 00004773: DUP3 00004774: MLOAD 00004775: PUSH0 00004776: SUB 00004777: PUSH2 0x47d1 0000477a: JUMPI 0000477b: PUSH1 0x01 0000477d: PUSH1 0x01 0000477f: PUSH1 0xa0 00004781: SHL 00004782: SUB 00004783: DUP6 00004784: AND 00004785: EXTCODESIZE 00004786: PUSH2 0x47d1 00004789: JUMPI 0000478a: PUSH1 0x40 0000478c: MLOAD 0000478d: PUSH3 0x461bcd 00004791: PUSH1 0xe5 00004793: SHL 00004794: DUP2 00004795: MSTORE 00004796: PUSH1 0x20 00004798: PUSH1 0x04 0000479a: DUP3 0000479b: ADD 0000479c: MSTORE 0000479d: PUSH1 0x1d 0000479f: PUSH1 0x24 000047a1: DUP3 000047a2: ADD 000047a3: MSTORE 000047a4: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 000047c5: PUSH1 0x44 000047c7: DUP3 000047c8: ADD 000047c9: MSTORE 000047ca: PUSH1 0x64 000047cc: ADD 000047cd: PUSH2 0x0914 000047d0: JUMP 000047d1: JUMPDEST 000047d2: POP 000047d3: DUP2 000047d4: PUSH2 0x418f 000047d7: JUMP 000047d8: JUMPDEST 000047d9: PUSH2 0x418f 000047dc: DUP4 000047dd: DUP4 000047de: DUP2 000047df: MLOAD 000047e0: ISZERO 000047e1: PUSH2 0x47ed 000047e4: JUMPI 000047e5: DUP2 000047e6: MLOAD 000047e7: DUP1 000047e8: DUP4 000047e9: PUSH1 0x20 000047eb: ADD 000047ec: REVERT 000047ed: JUMPDEST 000047ee: DUP1 000047ef: PUSH1 0x40 000047f1: MLOAD 000047f2: PUSH3 0x461bcd 000047f6: PUSH1 0xe5 000047f8: SHL 000047f9: DUP2 000047fa: MSTORE 000047fb: PUSH1 0x04 000047fd: ADD 000047fe: PUSH2 0x0914 00004801: SWAP2 00004802: SWAP1 00004803: PUSH2 0x4b02 00004806: JUMP 00004807: JUMPDEST 00004808: PUSH1 0x01 0000480a: PUSH1 0x01 0000480c: PUSH1 0xa0 0000480e: SHL 0000480f: SUB 00004810: DUP2 00004811: AND 00004812: DUP2 00004813: EQ 00004814: PUSH2 0x11f8 00004817: JUMPI 00004818: PUSH0 00004819: DUP1 0000481a: REVERT 0000481b: JUMPDEST 0000481c: PUSH0 0000481d: DUP1 0000481e: PUSH0 0000481f: PUSH1 0x60 00004821: DUP5 00004822: DUP7 00004823: SUB 00004824: SLT 00004825: ISZERO 00004826: PUSH2 0x482d 00004829: JUMPI 0000482a: PUSH0 0000482b: DUP1 0000482c: REVERT 0000482d: JUMPDEST 0000482e: DUP4 0000482f: CALLDATALOAD 00004830: PUSH2 0x4838 00004833: DUP2 00004834: PUSH2 0x4807 00004837: JUMP 00004838: JUMPDEST 00004839: SWAP6 0000483a: PUSH1 0x20 0000483c: DUP6 0000483d: ADD 0000483e: CALLDATALOAD 0000483f: SWAP6 00004840: POP 00004841: PUSH1 0x40 00004843: SWAP1 00004844: SWAP5 00004845: ADD 00004846: CALLDATALOAD 00004847: SWAP4 00004848: SWAP3 00004849: POP 0000484a: POP 0000484b: POP 0000484c: JUMP 0000484d: JUMPDEST 0000484e: DUP1 0000484f: ISZERO 00004850: ISZERO 00004851: DUP2 00004852: EQ 00004853: PUSH2 0x11f8 00004856: JUMPI 00004857: PUSH0 00004858: DUP1 00004859: REVERT 0000485a: JUMPDEST 0000485b: PUSH0 0000485c: PUSH1 0xa0 0000485e: DUP3 0000485f: DUP5 00004860: SUB 00004861: SLT 00004862: ISZERO 00004863: PUSH2 0x486a 00004866: JUMPI 00004867: PUSH0 00004868: DUP1 00004869: REVERT 0000486a: JUMPDEST 0000486b: POP 0000486c: SWAP2 0000486d: SWAP1 0000486e: POP 0000486f: JUMP 00004870: JUMPDEST 00004871: PUSH3 0xffffff 00004875: DUP2 00004876: AND 00004877: DUP2 00004878: EQ 00004879: PUSH2 0x11f8 0000487c: JUMPI 0000487d: PUSH0 0000487e: DUP1 0000487f: REVERT 00004880: JUMPDEST 00004881: PUSH0 00004882: DUP1 00004883: PUSH0 00004884: DUP1 00004885: PUSH0 00004886: DUP1 00004887: PUSH0 00004888: PUSH2 0x0160 0000488b: DUP9 0000488c: DUP11 0000488d: SUB 0000488e: SLT 0000488f: ISZERO 00004890: PUSH2 0x4897 00004893: JUMPI 00004894: PUSH0 00004895: DUP1 00004896: REVERT 00004897: JUMPDEST 00004898: DUP8 00004899: CALLDATALOAD 0000489a: SWAP7 0000489b: POP 0000489c: PUSH1 0x20 0000489e: DUP9 0000489f: ADD 000048a0: CALLDATALOAD 000048a1: SWAP6 000048a2: POP 000048a3: PUSH1 0x40 000048a5: DUP9 000048a6: ADD 000048a7: CALLDATALOAD 000048a8: PUSH2 0x48b0 000048ab: DUP2 000048ac: PUSH2 0x484d 000048af: JUMP 000048b0: JUMPDEST 000048b1: SWAP5 000048b2: POP 000048b3: PUSH2 0x48bf 000048b6: DUP10 000048b7: PUSH1 0x60 000048b9: DUP11 000048ba: ADD 000048bb: PUSH2 0x485a 000048be: JUMP 000048bf: JUMPDEST 000048c0: SWAP4 000048c1: POP 000048c2: PUSH2 0x0100 000048c5: DUP9 000048c6: ADD 000048c7: CALLDATALOAD 000048c8: PUSH2 0x48d0 000048cb: DUP2 000048cc: PUSH2 0x4807 000048cf: JUMP 000048d0: JUMPDEST 000048d1: SWAP3 000048d2: POP 000048d3: PUSH2 0x0120 000048d6: DUP9 000048d7: ADD 000048d8: CALLDATALOAD 000048d9: PUSH2 0x48e1 000048dc: DUP2 000048dd: PUSH2 0x4870 000048e0: JUMP 000048e1: JUMPDEST 000048e2: SWAP2 000048e3: POP 000048e4: PUSH2 0x0140 000048e7: DUP9 000048e8: ADD 000048e9: CALLDATALOAD 000048ea: PUSH2 0x48f2 000048ed: DUP2 000048ee: PUSH2 0x4807 000048f1: JUMP 000048f2: JUMPDEST 000048f3: DUP1 000048f4: SWAP2 000048f5: POP 000048f6: POP 000048f7: SWAP3 000048f8: SWAP6 000048f9: SWAP9 000048fa: SWAP2 000048fb: SWAP5 000048fc: SWAP8 000048fd: POP 000048fe: SWAP3 000048ff: SWAP6 00004900: POP 00004901: JUMP 00004902: JUMPDEST 00004903: PUSH0 00004904: PUSH1 0x20 00004906: DUP3 00004907: DUP5 00004908: SUB 00004909: SLT 0000490a: ISZERO 0000490b: PUSH2 0x4912 0000490e: JUMPI 0000490f: PUSH0 00004910: DUP1 00004911: REVERT 00004912: JUMPDEST 00004913: POP 00004914: CALLDATALOAD 00004915: SWAP2 00004916: SWAP1 00004917: POP 00004918: JUMP 00004919: JUMPDEST 0000491a: PUSH0 0000491b: DUP1 0000491c: PUSH0 0000491d: DUP1 0000491e: PUSH0 0000491f: DUP1 00004920: PUSH0 00004921: DUP1 00004922: PUSH2 0x0160 00004925: DUP10 00004926: DUP12 00004927: SUB 00004928: SLT 00004929: ISZERO 0000492a: PUSH2 0x4931 0000492d: JUMPI 0000492e: PUSH0 0000492f: DUP1 00004930: REVERT 00004931: JUMPDEST 00004932: PUSH2 0x493b 00004935: DUP11 00004936: DUP11 00004937: PUSH2 0x485a 0000493a: JUMP 0000493b: JUMPDEST 0000493c: SWAP8 0000493d: POP 0000493e: PUSH1 0xa0 00004940: DUP10 00004941: ADD 00004942: CALLDATALOAD 00004943: PUSH8 0xffffffffffffffff 0000494c: DUP2 0000494d: GT 0000494e: ISZERO 0000494f: PUSH2 0x4956 00004952: JUMPI 00004953: PUSH0 00004954: DUP1 00004955: REVERT 00004956: JUMPDEST 00004957: DUP10 00004958: ADD 00004959: PUSH1 0x1f 0000495b: DUP2 0000495c: ADD 0000495d: DUP12 0000495e: SGT 0000495f: PUSH2 0x4966 00004962: JUMPI 00004963: PUSH0 00004964: DUP1 00004965: REVERT 00004966: JUMPDEST 00004967: DUP1 00004968: CALLDATALOAD 00004969: PUSH8 0xffffffffffffffff 00004972: DUP2 00004973: GT 00004974: ISZERO 00004975: PUSH2 0x497c 00004978: JUMPI 00004979: PUSH0 0000497a: DUP1 0000497b: REVERT 0000497c: JUMPDEST 0000497d: DUP12 0000497e: PUSH1 0x20 00004980: PUSH1 0x60 00004982: DUP4 00004983: MUL 00004984: DUP5 00004985: ADD 00004986: ADD 00004987: GT 00004988: ISZERO 00004989: PUSH2 0x4990 0000498c: JUMPI 0000498d: PUSH0 0000498e: DUP1 0000498f: REVERT 00004990: JUMPDEST 00004991: PUSH1 0x20 00004993: SWAP2 00004994: SWAP1 00004995: SWAP2 00004996: ADD 00004997: SWAP8 00004998: POP 00004999: SWAP6 0000499a: POP 0000499b: PUSH1 0xc0 0000499d: DUP10 0000499e: ADD 0000499f: CALLDATALOAD 000049a0: PUSH8 0xffffffffffffffff 000049a9: DUP2 000049aa: GT 000049ab: ISZERO 000049ac: PUSH2 0x49b3 000049af: JUMPI 000049b0: PUSH0 000049b1: DUP1 000049b2: REVERT 000049b3: JUMPDEST 000049b4: PUSH2 0x49bf 000049b7: DUP12 000049b8: DUP3 000049b9: DUP13 000049ba: ADD 000049bb: PUSH2 0x485a 000049be: JUMP 000049bf: JUMPDEST 000049c0: SWAP9 000049c1: SWAP12 000049c2: SWAP8 000049c3: SWAP11 000049c4: POP 000049c5: SWAP6 000049c6: SWAP9 000049c7: PUSH1 0xe0 000049c9: DUP2 000049ca: ADD 000049cb: CALLDATALOAD 000049cc: SWAP8 000049cd: PUSH2 0x0100 000049d0: DUP3 000049d1: ADD 000049d2: CALLDATALOAD 000049d3: SWAP8 000049d4: POP 000049d5: PUSH2 0x0120 000049d8: DUP3 000049d9: ADD 000049da: CALLDATALOAD 000049db: SWAP7 000049dc: POP 000049dd: PUSH2 0x0140 000049e0: SWAP1 000049e1: SWAP2 000049e2: ADD 000049e3: CALLDATALOAD 000049e4: SWAP5 000049e5: POP 000049e6: SWAP3 000049e7: POP 000049e8: POP 000049e9: POP 000049ea: JUMP 000049eb: JUMPDEST 000049ec: PUSH1 0x20 000049ee: DUP1 000049ef: DUP3 000049f0: MSTORE 000049f1: DUP3 000049f2: MLOAD 000049f3: DUP3 000049f4: DUP3 000049f5: ADD 000049f6: DUP2 000049f7: SWAP1 000049f8: MSTORE 000049f9: PUSH0 000049fa: SWAP2 000049fb: DUP5 000049fc: ADD 000049fd: SWAP1 000049fe: PUSH1 0x40 00004a00: DUP5 00004a01: ADD 00004a02: SWAP1 00004a03: DUP4 00004a04: JUMPDEST 00004a05: DUP2 00004a06: DUP2 00004a07: LT 00004a08: ISZERO 00004a09: PUSH2 0x4a40 00004a0c: JUMPI 00004a0d: PUSH2 0x4a2a 00004a10: DUP4 00004a11: DUP6 00004a12: MLOAD 00004a13: DUP1 00004a14: MLOAD 00004a15: PUSH1 0x02 00004a17: SIGNEXTEND 00004a18: DUP3 00004a19: MSTORE 00004a1a: PUSH1 0x20 00004a1c: DUP2 00004a1d: ADD 00004a1e: MLOAD 00004a1f: PUSH1 0x02 00004a21: SIGNEXTEND 00004a22: PUSH1 0x20 00004a24: DUP4 00004a25: ADD 00004a26: MSTORE 00004a27: POP 00004a28: POP 00004a29: JUMP 00004a2a: JUMPDEST 00004a2b: PUSH1 0x20 00004a2d: SWAP4 00004a2e: SWAP1 00004a2f: SWAP4 00004a30: ADD 00004a31: SWAP3 00004a32: PUSH1 0x40 00004a34: SWAP3 00004a35: SWAP1 00004a36: SWAP3 00004a37: ADD 00004a38: SWAP2 00004a39: PUSH1 0x01 00004a3b: ADD 00004a3c: PUSH2 0x4a04 00004a3f: JUMP 00004a40: JUMPDEST 00004a41: POP 00004a42: SWAP1 00004a43: SWAP6 00004a44: SWAP5 00004a45: POP 00004a46: POP 00004a47: POP 00004a48: POP 00004a49: POP 00004a4a: JUMP 00004a4b: JUMPDEST 00004a4c: PUSH0 00004a4d: PUSH1 0x20 00004a4f: DUP3 00004a50: DUP5 00004a51: SUB 00004a52: SLT 00004a53: ISZERO 00004a54: PUSH2 0x4a5b 00004a57: JUMPI 00004a58: PUSH0 00004a59: DUP1 00004a5a: REVERT 00004a5b: JUMPDEST 00004a5c: DUP2 00004a5d: CALLDATALOAD 00004a5e: PUSH2 0x348c 00004a61: DUP2 00004a62: PUSH2 0x4807 00004a65: JUMP 00004a66: JUMPDEST 00004a67: PUSH0 00004a68: DUP1 00004a69: PUSH1 0x20 00004a6b: DUP4 00004a6c: DUP6 00004a6d: SUB 00004a6e: SLT 00004a6f: ISZERO 00004a70: PUSH2 0x4a77 00004a73: JUMPI 00004a74: PUSH0 00004a75: DUP1 00004a76: REVERT 00004a77: JUMPDEST 00004a78: DUP3 00004a79: CALLDATALOAD 00004a7a: PUSH8 0xffffffffffffffff 00004a83: DUP2 00004a84: GT 00004a85: ISZERO 00004a86: PUSH2 0x4a8d 00004a89: JUMPI 00004a8a: PUSH0 00004a8b: DUP1 00004a8c: REVERT 00004a8d: JUMPDEST 00004a8e: DUP4 00004a8f: ADD 00004a90: PUSH1 0x1f 00004a92: DUP2 00004a93: ADD 00004a94: DUP6 00004a95: SGT 00004a96: PUSH2 0x4a9d 00004a99: JUMPI 00004a9a: PUSH0 00004a9b: DUP1 00004a9c: REVERT 00004a9d: JUMPDEST 00004a9e: DUP1 00004a9f: CALLDATALOAD 00004aa0: PUSH8 0xffffffffffffffff 00004aa9: DUP2 00004aaa: GT 00004aab: ISZERO 00004aac: PUSH2 0x4ab3 00004aaf: JUMPI 00004ab0: PUSH0 00004ab1: DUP1 00004ab2: REVERT 00004ab3: JUMPDEST 00004ab4: DUP6 00004ab5: PUSH1 0x20 00004ab7: DUP3 00004ab8: DUP5 00004ab9: ADD 00004aba: ADD 00004abb: GT 00004abc: ISZERO 00004abd: PUSH2 0x4ac4 00004ac0: JUMPI 00004ac1: PUSH0 00004ac2: DUP1 00004ac3: REVERT 00004ac4: JUMPDEST 00004ac5: PUSH1 0x20 00004ac7: SWAP2 00004ac8: SWAP1 00004ac9: SWAP2 00004aca: ADD 00004acb: SWAP6 00004acc: SWAP1 00004acd: SWAP5 00004ace: POP 00004acf: SWAP3 00004ad0: POP 00004ad1: POP 00004ad2: POP 00004ad3: JUMP 00004ad4: JUMPDEST 00004ad5: PUSH0 00004ad6: DUP2 00004ad7: MLOAD 00004ad8: DUP1 00004ad9: DUP5 00004ada: MSTORE 00004adb: DUP1 00004adc: PUSH1 0x20 00004ade: DUP5 00004adf: ADD 00004ae0: PUSH1 0x20 00004ae2: DUP7 00004ae3: ADD 00004ae4: MCOPY 00004ae5: PUSH0 00004ae6: PUSH1 0x20 00004ae8: DUP3 00004ae9: DUP7 00004aea: ADD 00004aeb: ADD 00004aec: MSTORE 00004aed: PUSH1 0x20 00004aef: PUSH1 0x1f 00004af1: NOT 00004af2: PUSH1 0x1f 00004af4: DUP4 00004af5: ADD 00004af6: AND 00004af7: DUP6 00004af8: ADD 00004af9: ADD 00004afa: SWAP2 00004afb: POP 00004afc: POP 00004afd: SWAP3 00004afe: SWAP2 00004aff: POP 00004b00: POP 00004b01: JUMP 00004b02: JUMPDEST 00004b03: PUSH1 0x20 00004b05: DUP2 00004b06: MSTORE 00004b07: PUSH0 00004b08: PUSH2 0x348c 00004b0b: PUSH1 0x20 00004b0d: DUP4 00004b0e: ADD 00004b0f: DUP5 00004b10: PUSH2 0x4ad4 00004b13: JUMP 00004b14: JUMPDEST 00004b15: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00004b36: PUSH0 00004b37: MSTORE 00004b38: PUSH1 0x41 00004b3a: PUSH1 0x04 00004b3c: MSTORE 00004b3d: PUSH1 0x24 00004b3f: PUSH0 00004b40: REVERT 00004b41: JUMPDEST 00004b42: PUSH1 0x40 00004b44: DUP1 00004b45: MLOAD 00004b46: SWAP1 00004b47: DUP2 00004b48: ADD 00004b49: PUSH8 0xffffffffffffffff 00004b52: DUP2 00004b53: GT 00004b54: DUP3 00004b55: DUP3 00004b56: LT 00004b57: OR 00004b58: ISZERO 00004b59: PUSH2 0x4b64 00004b5c: JUMPI 00004b5d: PUSH2 0x4b64 00004b60: PUSH2 0x4b14 00004b63: JUMP 00004b64: JUMPDEST 00004b65: PUSH1 0x40 00004b67: MSTORE 00004b68: SWAP1 00004b69: JUMP 00004b6a: JUMPDEST 00004b6b: PUSH1 0x40 00004b6d: MLOAD 00004b6e: PUSH1 0xa0 00004b70: DUP2 00004b71: ADD 00004b72: PUSH8 0xffffffffffffffff 00004b7b: DUP2 00004b7c: GT 00004b7d: DUP3 00004b7e: DUP3 00004b7f: LT 00004b80: OR 00004b81: ISZERO 00004b82: PUSH2 0x4b64 00004b85: JUMPI 00004b86: PUSH2 0x4b64 00004b89: PUSH2 0x4b14 00004b8c: JUMP 00004b8d: JUMPDEST 00004b8e: PUSH1 0x40 00004b90: MLOAD 00004b91: PUSH1 0x1f 00004b93: DUP3 00004b94: ADD 00004b95: PUSH1 0x1f 00004b97: NOT 00004b98: AND 00004b99: DUP2 00004b9a: ADD 00004b9b: PUSH8 0xffffffffffffffff 00004ba4: DUP2 00004ba5: GT 00004ba6: DUP3 00004ba7: DUP3 00004ba8: LT 00004ba9: OR 00004baa: ISZERO 00004bab: PUSH2 0x4bb6 00004bae: JUMPI 00004baf: PUSH2 0x4bb6 00004bb2: PUSH2 0x4b14 00004bb5: JUMP 00004bb6: JUMPDEST 00004bb7: PUSH1 0x40 00004bb9: MSTORE 00004bba: SWAP2 00004bbb: SWAP1 00004bbc: POP 00004bbd: JUMP 00004bbe: JUMPDEST 00004bbf: PUSH0 00004bc0: PUSH8 0xffffffffffffffff 00004bc9: DUP3 00004bca: GT 00004bcb: ISZERO 00004bcc: PUSH2 0x4bd7 00004bcf: JUMPI 00004bd0: PUSH2 0x4bd7 00004bd3: PUSH2 0x4b14 00004bd6: JUMP 00004bd7: JUMPDEST 00004bd8: POP 00004bd9: PUSH1 0x05 00004bdb: SHL 00004bdc: PUSH1 0x20 00004bde: ADD 00004bdf: SWAP1 00004be0: JUMP 00004be1: JUMPDEST 00004be2: DUP1 00004be3: PUSH1 0x02 00004be5: SIGNEXTEND 00004be6: DUP2 00004be7: EQ 00004be8: PUSH2 0x11f8 00004beb: JUMPI 00004bec: PUSH0 00004bed: DUP1 00004bee: REVERT 00004bef: JUMPDEST 00004bf0: DUP1 00004bf1: PUSH1 0x0f 00004bf3: SIGNEXTEND 00004bf4: DUP2 00004bf5: EQ 00004bf6: PUSH2 0x11f8 00004bf9: JUMPI 00004bfa: PUSH0 00004bfb: DUP1 00004bfc: REVERT 00004bfd: JUMPDEST 00004bfe: PUSH0 00004bff: DUP2 00004c00: DUP4 00004c01: SUB 00004c02: PUSH1 0x60 00004c04: DUP2 00004c05: SLT 00004c06: ISZERO 00004c07: PUSH2 0x4c0e 00004c0a: JUMPI 00004c0b: PUSH0 00004c0c: DUP1 00004c0d: REVERT 00004c0e: JUMPDEST 00004c0f: PUSH2 0x4c16 00004c12: PUSH2 0x4b41 00004c15: JUMP 00004c16: JUMPDEST 00004c17: SWAP2 00004c18: POP 00004c19: PUSH1 0x40 00004c1b: DUP2 00004c1c: SLT 00004c1d: ISZERO 00004c1e: PUSH2 0x4c25 00004c21: JUMPI 00004c22: PUSH0 00004c23: DUP1 00004c24: REVERT 00004c25: JUMPDEST 00004c26: POP 00004c27: PUSH2 0x4c2e 00004c2a: PUSH2 0x4b41 00004c2d: JUMP 00004c2e: JUMPDEST 00004c2f: DUP3 00004c30: CALLDATALOAD 00004c31: PUSH2 0x4c39 00004c34: DUP2 00004c35: PUSH2 0x4be1 00004c38: JUMP 00004c39: JUMPDEST 00004c3a: DUP2 00004c3b: MSTORE 00004c3c: PUSH1 0x20 00004c3e: DUP4 00004c3f: ADD 00004c40: CALLDATALOAD 00004c41: PUSH2 0x4c49 00004c44: DUP2 00004c45: PUSH2 0x4be1 00004c48: JUMP 00004c49: JUMPDEST 00004c4a: PUSH1 0x20 00004c4c: DUP3 00004c4d: ADD 00004c4e: MSTORE 00004c4f: DUP2 00004c50: MSTORE 00004c51: PUSH1 0x40 00004c53: DUP3 00004c54: ADD 00004c55: CALLDATALOAD 00004c56: PUSH2 0x4c5e 00004c59: DUP2 00004c5a: PUSH2 0x4bef 00004c5d: JUMP 00004c5e: JUMPDEST 00004c5f: PUSH1 0x20 00004c61: DUP3 00004c62: ADD 00004c63: MSTORE 00004c64: SWAP3 00004c65: SWAP2 00004c66: POP 00004c67: POP 00004c68: JUMP 00004c69: JUMPDEST 00004c6a: PUSH0 00004c6b: PUSH8 0xffffffffffffffff 00004c74: DUP3 00004c75: GT 00004c76: ISZERO 00004c77: PUSH2 0x4c82 00004c7a: JUMPI 00004c7b: PUSH2 0x4c82 00004c7e: PUSH2 0x4b14 00004c81: JUMP 00004c82: JUMPDEST 00004c83: POP 00004c84: PUSH1 0x1f 00004c86: ADD 00004c87: PUSH1 0x1f 00004c89: NOT 00004c8a: AND 00004c8b: PUSH1 0x20 00004c8d: ADD 00004c8e: SWAP1 00004c8f: JUMP 00004c90: JUMPDEST 00004c91: PUSH0 00004c92: DUP3 00004c93: PUSH1 0x1f 00004c95: DUP4 00004c96: ADD 00004c97: SLT 00004c98: PUSH2 0x4c9f 00004c9b: JUMPI 00004c9c: PUSH0 00004c9d: DUP1 00004c9e: REVERT 00004c9f: JUMPDEST 00004ca0: DUP2 00004ca1: CALLDATALOAD 00004ca2: PUSH2 0x4cb2 00004ca5: PUSH2 0x4cad 00004ca8: DUP3 00004ca9: PUSH2 0x4c69 00004cac: JUMP 00004cad: JUMPDEST 00004cae: PUSH2 0x4b8d 00004cb1: JUMP 00004cb2: JUMPDEST 00004cb3: DUP2 00004cb4: DUP2 00004cb5: MSTORE 00004cb6: DUP5 00004cb7: PUSH1 0x20 00004cb9: DUP4 00004cba: DUP7 00004cbb: ADD 00004cbc: ADD 00004cbd: GT 00004cbe: ISZERO 00004cbf: PUSH2 0x4cc6 00004cc2: JUMPI 00004cc3: PUSH0 00004cc4: DUP1 00004cc5: REVERT 00004cc6: JUMPDEST 00004cc7: DUP2 00004cc8: PUSH1 0x20 00004cca: DUP6 00004ccb: ADD 00004ccc: PUSH1 0x20 00004cce: DUP4 00004ccf: ADD 00004cd0: CALLDATACOPY 00004cd1: PUSH0 00004cd2: SWAP2 00004cd3: DUP2 00004cd4: ADD 00004cd5: PUSH1 0x20 00004cd7: ADD 00004cd8: SWAP2 00004cd9: SWAP1 00004cda: SWAP2 00004cdb: MSTORE 00004cdc: SWAP4 00004cdd: SWAP3 00004cde: POP 00004cdf: POP 00004ce0: POP 00004ce1: JUMP 00004ce2: JUMPDEST 00004ce3: PUSH0 00004ce4: PUSH1 0xa0 00004ce6: DUP3 00004ce7: DUP5 00004ce8: SUB 00004ce9: SLT 00004cea: ISZERO 00004ceb: PUSH2 0x4cf2 00004cee: JUMPI 00004cef: PUSH0 00004cf0: DUP1 00004cf1: REVERT 00004cf2: JUMPDEST 00004cf3: PUSH2 0x4cfa 00004cf6: PUSH2 0x4b6a 00004cf9: JUMP 00004cfa: JUMPDEST 00004cfb: SWAP1 00004cfc: POP 00004cfd: DUP2 00004cfe: CALLDATALOAD 00004cff: PUSH8 0xffffffffffffffff 00004d08: DUP2 00004d09: GT 00004d0a: ISZERO 00004d0b: PUSH2 0x4d12 00004d0e: JUMPI 00004d0f: PUSH0 00004d10: DUP1 00004d11: REVERT 00004d12: JUMPDEST 00004d13: PUSH2 0x4d1e 00004d16: DUP5 00004d17: DUP3 00004d18: DUP6 00004d19: ADD 00004d1a: PUSH2 0x4c90 00004d1d: JUMP 00004d1e: JUMPDEST 00004d1f: DUP3 00004d20: MSTORE 00004d21: POP 00004d22: PUSH1 0x20 00004d24: DUP3 00004d25: ADD 00004d26: CALLDATALOAD 00004d27: PUSH2 0x4d2f 00004d2a: DUP2 00004d2b: PUSH2 0x4807 00004d2e: JUMP 00004d2f: JUMPDEST 00004d30: PUSH1 0x20 00004d32: DUP3 00004d33: ADD 00004d34: MSTORE 00004d35: PUSH1 0x40 00004d37: DUP3 00004d38: DUP2 00004d39: ADD 00004d3a: CALLDATALOAD 00004d3b: SWAP1 00004d3c: DUP3 00004d3d: ADD 00004d3e: MSTORE 00004d3f: PUSH1 0x60 00004d41: DUP1 00004d42: DUP4 00004d43: ADD 00004d44: CALLDATALOAD 00004d45: SWAP1 00004d46: DUP3 00004d47: ADD 00004d48: MSTORE 00004d49: PUSH1 0x80 00004d4b: DUP3 00004d4c: ADD 00004d4d: CALLDATALOAD 00004d4e: PUSH2 0x4d56 00004d51: DUP2 00004d52: PUSH2 0x484d 00004d55: JUMP 00004d56: JUMPDEST 00004d57: PUSH1 0x80 00004d59: DUP3 00004d5a: ADD 00004d5b: MSTORE 00004d5c: SWAP3 00004d5d: SWAP2 00004d5e: POP 00004d5f: POP 00004d60: JUMP 00004d61: JUMPDEST 00004d62: PUSH0 00004d63: DUP1 00004d64: PUSH0 00004d65: DUP1 00004d66: PUSH0 00004d67: DUP1 00004d68: PUSH1 0xc0 00004d6a: DUP8 00004d6b: DUP10 00004d6c: SUB 00004d6d: SLT 00004d6e: ISZERO 00004d6f: PUSH2 0x4d76 00004d72: JUMPI 00004d73: PUSH0 00004d74: DUP1 00004d75: REVERT 00004d76: JUMPDEST 00004d77: DUP7 00004d78: CALLDATALOAD 00004d79: PUSH8 0xffffffffffffffff 00004d82: DUP2 00004d83: GT 00004d84: ISZERO 00004d85: PUSH2 0x4d8c 00004d88: JUMPI 00004d89: PUSH0 00004d8a: DUP1 00004d8b: REVERT 00004d8c: JUMPDEST 00004d8d: DUP8 00004d8e: ADD 00004d8f: PUSH1 0x1f 00004d91: DUP2 00004d92: ADD 00004d93: DUP10 00004d94: SGT 00004d95: PUSH2 0x4d9c 00004d98: JUMPI 00004d99: PUSH0 00004d9a: DUP1 00004d9b: REVERT 00004d9c: JUMPDEST 00004d9d: DUP1 00004d9e: CALLDATALOAD 00004d9f: PUSH2 0x4daa 00004da2: PUSH2 0x4cad 00004da5: DUP3 00004da6: PUSH2 0x4bbe 00004da9: JUMP 00004daa: JUMPDEST 00004dab: DUP1 00004dac: DUP3 00004dad: DUP3 00004dae: MSTORE 00004daf: PUSH1 0x20 00004db1: DUP3 00004db2: ADD 00004db3: SWAP2 00004db4: POP 00004db5: PUSH1 0x20 00004db7: PUSH1 0x60 00004db9: DUP5 00004dba: MUL 00004dbb: DUP6 00004dbc: ADD 00004dbd: ADD 00004dbe: SWAP3 00004dbf: POP 00004dc0: DUP12 00004dc1: DUP4 00004dc2: GT 00004dc3: ISZERO 00004dc4: PUSH2 0x4dcb 00004dc7: JUMPI 00004dc8: PUSH0 00004dc9: DUP1 00004dca: REVERT 00004dcb: JUMPDEST 00004dcc: PUSH1 0x20 00004dce: DUP5 00004dcf: ADD 00004dd0: SWAP4 00004dd1: POP 00004dd2: JUMPDEST 00004dd3: DUP3 00004dd4: DUP5 00004dd5: LT 00004dd6: ISZERO 00004dd7: PUSH2 0x4df7 00004dda: JUMPI 00004ddb: PUSH2 0x4de4 00004dde: DUP13 00004ddf: DUP6 00004de0: PUSH2 0x4bfd 00004de3: JUMP 00004de4: JUMPDEST 00004de5: DUP3 00004de6: MSTORE 00004de7: PUSH1 0x20 00004de9: DUP3 00004dea: ADD 00004deb: SWAP2 00004dec: POP 00004ded: PUSH1 0x60 00004def: DUP5 00004df0: ADD 00004df1: SWAP4 00004df2: POP 00004df3: PUSH2 0x4dd2 00004df6: JUMP 00004df7: JUMPDEST 00004df8: SWAP9 00004df9: POP 00004dfa: POP 00004dfb: POP 00004dfc: POP 00004dfd: PUSH1 0x20 00004dff: DUP8 00004e00: ADD 00004e01: CALLDATALOAD 00004e02: PUSH8 0xffffffffffffffff 00004e0b: DUP2 00004e0c: GT 00004e0d: ISZERO 00004e0e: PUSH2 0x4e15 00004e11: JUMPI 00004e12: PUSH0 00004e13: DUP1 00004e14: REVERT 00004e15: JUMPDEST 00004e16: PUSH2 0x4e21 00004e19: DUP10 00004e1a: DUP3 00004e1b: DUP11 00004e1c: ADD 00004e1d: PUSH2 0x4ce2 00004e20: JUMP 00004e21: JUMPDEST 00004e22: SWAP7 00004e23: SWAP10 00004e24: SWAP7 00004e25: SWAP9 00004e26: POP 00004e27: POP 00004e28: POP 00004e29: POP 00004e2a: PUSH1 0x40 00004e2c: DUP6 00004e2d: ADD 00004e2e: CALLDATALOAD 00004e2f: SWAP5 00004e30: PUSH1 0x60 00004e32: DUP2 00004e33: ADD 00004e34: CALLDATALOAD 00004e35: SWAP5 00004e36: PUSH1 0x80 00004e38: DUP3 00004e39: ADD 00004e3a: CALLDATALOAD 00004e3b: SWAP5 00004e3c: POP 00004e3d: PUSH1 0xa0 00004e3f: SWAP1 00004e40: SWAP2 00004e41: ADD 00004e42: CALLDATALOAD 00004e43: SWAP3 00004e44: POP 00004e45: SWAP1 00004e46: POP 00004e47: JUMP 00004e48: JUMPDEST 00004e49: PUSH0 00004e4a: DUP1 00004e4b: PUSH1 0x40 00004e4d: DUP4 00004e4e: DUP6 00004e4f: SUB 00004e50: SLT 00004e51: ISZERO 00004e52: PUSH2 0x4e59 00004e55: JUMPI 00004e56: PUSH0 00004e57: DUP1 00004e58: REVERT 00004e59: JUMPDEST 00004e5a: DUP3 00004e5b: CALLDATALOAD 00004e5c: PUSH2 0x4e64 00004e5f: DUP2 00004e60: PUSH2 0x4807 00004e63: JUMP 00004e64: JUMPDEST 00004e65: SWAP2 00004e66: POP 00004e67: PUSH1 0x20 00004e69: DUP4 00004e6a: ADD 00004e6b: CALLDATALOAD 00004e6c: PUSH2 0x4e74 00004e6f: DUP2 00004e70: PUSH2 0x4870 00004e73: JUMP 00004e74: JUMPDEST 00004e75: DUP1 00004e76: SWAP2 00004e77: POP 00004e78: POP 00004e79: SWAP3 00004e7a: POP 00004e7b: SWAP3 00004e7c: SWAP1 00004e7d: POP 00004e7e: JUMP 00004e7f: JUMPDEST 00004e80: PUSH0 00004e81: DUP1 00004e82: PUSH1 0x40 00004e84: DUP4 00004e85: DUP6 00004e86: SUB 00004e87: SLT 00004e88: ISZERO 00004e89: PUSH2 0x4e90 00004e8c: JUMPI 00004e8d: PUSH0 00004e8e: DUP1 00004e8f: REVERT 00004e90: JUMPDEST 00004e91: DUP3 00004e92: CALLDATALOAD 00004e93: PUSH2 0x4e9b 00004e96: DUP2 00004e97: PUSH2 0x4807 00004e9a: JUMP 00004e9b: JUMPDEST 00004e9c: SWAP5 00004e9d: PUSH1 0x20 00004e9f: SWAP4 00004ea0: SWAP1 00004ea1: SWAP4 00004ea2: ADD 00004ea3: CALLDATALOAD 00004ea4: SWAP4 00004ea5: POP 00004ea6: POP 00004ea7: POP 00004ea8: JUMP 00004ea9: JUMPDEST 00004eaa: PUSH1 0x40 00004eac: DUP2 00004ead: MSTORE 00004eae: PUSH0 00004eaf: PUSH1 0xe0 00004eb1: DUP3 00004eb2: ADD 00004eb3: DUP5 00004eb4: MLOAD 00004eb5: PUSH1 0xa0 00004eb7: PUSH1 0x40 00004eb9: DUP6 00004eba: ADD 00004ebb: MSTORE 00004ebc: DUP2 00004ebd: DUP2 00004ebe: MLOAD 00004ebf: DUP1 00004ec0: DUP5 00004ec1: MSTORE 00004ec2: PUSH2 0x0100 00004ec5: DUP7 00004ec6: ADD 00004ec7: SWAP2 00004ec8: POP 00004ec9: PUSH1 0x20 00004ecb: DUP4 00004ecc: ADD 00004ecd: SWAP4 00004ece: POP 00004ecf: PUSH0 00004ed0: SWAP3 00004ed1: POP 00004ed2: JUMPDEST 00004ed3: DUP1 00004ed4: DUP4 00004ed5: LT 00004ed6: ISZERO 00004ed7: PUSH2 0x4f6a 00004eda: JUMPI 00004edb: DUP4 00004edc: MLOAD 00004edd: DUP1 00004ede: MLOAD 00004edf: PUSH1 0x02 00004ee1: SIGNEXTEND 00004ee2: DUP4 00004ee3: MSTORE 00004ee4: PUSH1 0x20 00004ee6: DUP2 00004ee7: ADD 00004ee8: MLOAD 00004ee9: PUSH1 0x02 00004eeb: SIGNEXTEND 00004eec: PUSH1 0x20 00004eee: DUP5 00004eef: ADD 00004ef0: MSTORE 00004ef1: PUSH1 0x40 00004ef3: DUP2 00004ef4: ADD 00004ef5: MLOAD 00004ef6: SWAP1 00004ef7: POP 00004ef8: PUSH2 0x4f52 00004efb: PUSH1 0x40 00004efd: DUP5 00004efe: ADD 00004eff: DUP3 00004f00: PUSH1 0x01 00004f02: PUSH1 0x01 00004f04: PUSH1 0xa0 00004f06: SHL 00004f07: SUB 00004f08: DUP2 00004f09: MLOAD 00004f0a: AND 00004f0b: DUP3 00004f0c: MSTORE 00004f0d: PUSH1 0x01 00004f0f: PUSH1 0x01 00004f11: PUSH1 0xa0 00004f13: SHL 00004f14: SUB 00004f15: PUSH1 0x20 00004f17: DUP3 00004f18: ADD 00004f19: MLOAD 00004f1a: AND 00004f1b: PUSH1 0x20 00004f1d: DUP4 00004f1e: ADD 00004f1f: MSTORE 00004f20: PUSH3 0xffffff 00004f24: PUSH1 0x40 00004f26: DUP3 00004f27: ADD 00004f28: MLOAD 00004f29: AND 00004f2a: PUSH1 0x40 00004f2c: DUP4 00004f2d: ADD 00004f2e: MSTORE 00004f2f: PUSH1 0x60 00004f31: DUP2 00004f32: ADD 00004f33: MLOAD 00004f34: PUSH1 0x02 00004f36: SIGNEXTEND 00004f37: PUSH1 0x60 00004f39: DUP4 00004f3a: ADD 00004f3b: MSTORE 00004f3c: PUSH1 0x01 00004f3e: PUSH1 0x01 00004f40: PUSH1 0xa0 00004f42: SHL 00004f43: SUB 00004f44: PUSH1 0x80 00004f46: DUP3 00004f47: ADD 00004f48: MLOAD 00004f49: AND 00004f4a: PUSH1 0x80 00004f4c: DUP4 00004f4d: ADD 00004f4e: MSTORE 00004f4f: POP 00004f50: POP 00004f51: JUMP 00004f52: JUMPDEST 00004f53: POP 00004f54: PUSH1 0xe0 00004f56: DUP3 00004f57: ADD 00004f58: SWAP2 00004f59: POP 00004f5a: PUSH1 0x20 00004f5c: DUP5 00004f5d: ADD 00004f5e: SWAP4 00004f5f: POP 00004f60: PUSH1 0x01 00004f62: DUP4 00004f63: ADD 00004f64: SWAP3 00004f65: POP 00004f66: PUSH2 0x4ed2 00004f69: JUMP 00004f6a: JUMPDEST 00004f6b: POP 00004f6c: PUSH1 0x20 00004f6e: DUP8 00004f6f: ADD 00004f70: MLOAD 00004f71: PUSH1 0x01 00004f73: PUSH1 0x01 00004f75: PUSH1 0xa0 00004f77: SHL 00004f78: SUB 00004f79: DUP2 00004f7a: AND 00004f7b: PUSH1 0x60 00004f7d: DUP8 00004f7e: ADD 00004f7f: MSTORE 00004f80: SWAP3 00004f81: POP 00004f82: PUSH1 0x40 00004f84: DUP8 00004f85: ADD 00004f86: MLOAD 00004f87: PUSH1 0x01 00004f89: PUSH1 0x01 00004f8b: PUSH1 0xa0 00004f8d: SHL 00004f8e: SUB 00004f8f: DUP2 00004f90: AND 00004f91: PUSH1 0x80 00004f93: DUP8 00004f94: ADD 00004f95: MSTORE 00004f96: SWAP3 00004f97: POP 00004f98: PUSH1 0x60 00004f9a: DUP8 00004f9b: ADD 00004f9c: MLOAD 00004f9d: PUSH1 0xa0 00004f9f: DUP7 00004fa0: ADD 00004fa1: MSTORE 00004fa2: PUSH1 0x80 00004fa4: DUP8 00004fa5: ADD 00004fa6: MLOAD 00004fa7: PUSH1 0xc0 00004fa9: DUP7 00004faa: ADD 00004fab: MSTORE 00004fac: PUSH1 0x01 00004fae: PUSH1 0x01 00004fb0: PUSH1 0xa0 00004fb2: SHL 00004fb3: SUB 00004fb4: DUP7 00004fb5: AND 00004fb6: PUSH1 0x20 00004fb8: DUP7 00004fb9: ADD 00004fba: MSTORE 00004fbb: SWAP3 00004fbc: POP 00004fbd: PUSH2 0x348c 00004fc0: SWAP2 00004fc1: POP 00004fc2: POP 00004fc3: JUMP 00004fc4: JUMPDEST 00004fc5: PUSH0 00004fc6: DUP1 00004fc7: PUSH0 00004fc8: DUP1 00004fc9: PUSH1 0x80 00004fcb: DUP6 00004fcc: DUP8 00004fcd: SUB 00004fce: SLT 00004fcf: ISZERO 00004fd0: PUSH2 0x4fd7 00004fd3: JUMPI 00004fd4: PUSH0 00004fd5: DUP1 00004fd6: REVERT 00004fd7: JUMPDEST 00004fd8: POP 00004fd9: POP 00004fda: DUP3 00004fdb: MLOAD 00004fdc: PUSH1 0x20 00004fde: DUP5 00004fdf: ADD 00004fe0: MLOAD 00004fe1: PUSH1 0x40 00004fe3: DUP6 00004fe4: ADD 00004fe5: MLOAD 00004fe6: PUSH1 0x60 00004fe8: SWAP1 00004fe9: SWAP6 00004fea: ADD 00004feb: MLOAD 00004fec: SWAP2 00004fed: SWAP7 00004fee: SWAP1 00004fef: SWAP6 00004ff0: POP 00004ff1: SWAP1 00004ff2: SWAP3 00004ff3: POP 00004ff4: SWAP1 00004ff5: POP 00004ff6: JUMP 00004ff7: JUMPDEST 00004ff8: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00005019: PUSH0 0000501a: MSTORE 0000501b: PUSH1 0x11 0000501d: PUSH1 0x04 0000501f: MSTORE 00005020: PUSH1 0x24 00005022: PUSH0 00005023: REVERT 00005024: JUMPDEST 00005025: DUP2 00005026: DUP2 00005027: SUB 00005028: DUP2 00005029: DUP2 0000502a: GT 0000502b: ISZERO 0000502c: PUSH2 0x231a 0000502f: JUMPI 00005030: PUSH2 0x231a 00005033: PUSH2 0x4ff7 00005036: JUMP 00005037: JUMPDEST 00005038: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00005059: PUSH0 0000505a: MSTORE 0000505b: PUSH1 0x21 0000505d: PUSH1 0x04 0000505f: MSTORE 00005060: PUSH1 0x24 00005062: PUSH0 00005063: REVERT 00005064: JUMPDEST 00005065: PUSH0 00005066: PUSH1 0x03 00005068: DUP5 00005069: LT 0000506a: PUSH2 0x509a 0000506d: JUMPI 0000506e: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000508f: PUSH0 00005090: MSTORE 00005091: PUSH1 0x21 00005093: PUSH1 0x04 00005095: MSTORE 00005096: PUSH1 0x24 00005098: PUSH0 00005099: REVERT 0000509a: JUMPDEST 0000509b: DUP4 0000509c: DUP3 0000509d: MSTORE 0000509e: PUSH1 0x40 000050a0: PUSH1 0x20 000050a2: DUP4 000050a3: ADD 000050a4: MSTORE 000050a5: PUSH2 0x418f 000050a8: PUSH1 0x40 000050aa: DUP4 000050ab: ADD 000050ac: DUP5 000050ad: PUSH2 0x4ad4 000050b0: JUMP 000050b1: JUMPDEST 000050b2: PUSH0 000050b3: DUP3 000050b4: PUSH1 0x1f 000050b6: DUP4 000050b7: ADD 000050b8: SLT 000050b9: PUSH2 0x50c0 000050bc: JUMPI 000050bd: PUSH0 000050be: DUP1 000050bf: REVERT 000050c0: JUMPDEST 000050c1: DUP2 000050c2: MLOAD 000050c3: PUSH2 0x50ce 000050c6: PUSH2 0x4cad 000050c9: DUP3 000050ca: PUSH2 0x4c69 000050cd: JUMP 000050ce: JUMPDEST 000050cf: DUP2 000050d0: DUP2 000050d1: MSTORE 000050d2: DUP5 000050d3: PUSH1 0x20 000050d5: DUP4 000050d6: DUP7 000050d7: ADD 000050d8: ADD 000050d9: GT 000050da: ISZERO 000050db: PUSH2 0x50e2 000050de: JUMPI 000050df: PUSH0 000050e0: DUP1 000050e1: REVERT 000050e2: JUMPDEST 000050e3: DUP2 000050e4: PUSH1 0x20 000050e6: DUP6 000050e7: ADD 000050e8: PUSH1 0x20 000050ea: DUP4 000050eb: ADD 000050ec: MCOPY 000050ed: PUSH0 000050ee: SWAP2 000050ef: DUP2 000050f0: ADD 000050f1: PUSH1 0x20 000050f3: ADD 000050f4: SWAP2 000050f5: SWAP1 000050f6: SWAP2 000050f7: MSTORE 000050f8: SWAP4 000050f9: SWAP3 000050fa: POP 000050fb: POP 000050fc: POP 000050fd: JUMP 000050fe: JUMPDEST 000050ff: PUSH0 00005100: PUSH1 0x20 00005102: DUP3 00005103: DUP5 00005104: SUB 00005105: SLT 00005106: ISZERO 00005107: PUSH2 0x510e 0000510a: JUMPI 0000510b: PUSH0 0000510c: DUP1 0000510d: REVERT 0000510e: JUMPDEST 0000510f: DUP2 00005110: MLOAD 00005111: PUSH8 0xffffffffffffffff 0000511a: DUP2 0000511b: GT 0000511c: ISZERO 0000511d: PUSH2 0x5124 00005120: JUMPI 00005121: PUSH0 00005122: DUP1 00005123: REVERT 00005124: JUMPDEST 00005125: PUSH2 0x418f 00005128: DUP5 00005129: DUP3 0000512a: DUP6 0000512b: ADD 0000512c: PUSH2 0x50b1 0000512f: JUMP 00005130: JUMPDEST 00005131: PUSH0 00005132: DUP1 00005133: PUSH1 0x40 00005135: DUP4 00005136: DUP6 00005137: SUB 00005138: SLT 00005139: ISZERO 0000513a: PUSH2 0x5141 0000513d: JUMPI 0000513e: PUSH0 0000513f: DUP1 00005140: REVERT 00005141: JUMPDEST 00005142: POP 00005143: POP 00005144: DUP1 00005145: MLOAD 00005146: PUSH1 0x20 00005148: SWAP1 00005149: SWAP2 0000514a: ADD 0000514b: MLOAD 0000514c: SWAP1 0000514d: SWAP3 0000514e: SWAP1 0000514f: SWAP2 00005150: POP 00005151: JUMP 00005152: JUMPDEST 00005153: PUSH0 00005154: PUSH1 0x20 00005156: DUP3 00005157: DUP5 00005158: SUB 00005159: SLT 0000515a: ISZERO 0000515b: PUSH2 0x5162 0000515e: JUMPI 0000515f: PUSH0 00005160: DUP1 00005161: REVERT 00005162: JUMPDEST 00005163: DUP2 00005164: MLOAD 00005165: PUSH2 0x348c 00005168: DUP2 00005169: PUSH2 0x4807 0000516c: JUMP 0000516d: JUMPDEST 0000516e: PUSH0 0000516f: PUSH1 0xa0 00005171: DUP3 00005172: DUP5 00005173: SUB 00005174: SLT 00005175: DUP1 00005176: ISZERO 00005177: PUSH2 0x517e 0000517a: JUMPI 0000517b: PUSH0 0000517c: DUP1 0000517d: REVERT 0000517e: JUMPDEST 0000517f: POP 00005180: PUSH2 0x5187 00005183: PUSH2 0x4b6a 00005186: JUMP 00005187: JUMPDEST 00005188: DUP3 00005189: CALLDATALOAD 0000518a: PUSH2 0x5192 0000518d: DUP2 0000518e: PUSH2 0x4807 00005191: JUMP 00005192: JUMPDEST 00005193: DUP2 00005194: MSTORE 00005195: PUSH1 0x20 00005197: DUP4 00005198: ADD 00005199: CALLDATALOAD 0000519a: PUSH2 0x51a2 0000519d: DUP2 0000519e: PUSH2 0x4807 000051a1: JUMP 000051a2: JUMPDEST 000051a3: PUSH1 0x20 000051a5: DUP3 000051a6: ADD 000051a7: MSTORE 000051a8: PUSH1 0x40 000051aa: DUP4 000051ab: ADD 000051ac: CALLDATALOAD 000051ad: PUSH2 0x51b5 000051b0: DUP2 000051b1: PUSH2 0x4870 000051b4: JUMP 000051b5: JUMPDEST 000051b6: PUSH1 0x40 000051b8: DUP3 000051b9: ADD 000051ba: MSTORE 000051bb: PUSH1 0x60 000051bd: DUP4 000051be: ADD 000051bf: CALLDATALOAD 000051c0: PUSH2 0x51c8 000051c3: DUP2 000051c4: PUSH2 0x4be1 000051c7: JUMP 000051c8: JUMPDEST 000051c9: PUSH1 0x60 000051cb: DUP3 000051cc: ADD 000051cd: MSTORE 000051ce: PUSH1 0x80 000051d0: DUP4 000051d1: ADD 000051d2: CALLDATALOAD 000051d3: PUSH2 0x51db 000051d6: DUP2 000051d7: PUSH2 0x4807 000051da: JUMP 000051db: JUMPDEST 000051dc: PUSH1 0x80 000051de: DUP3 000051df: ADD 000051e0: MSTORE 000051e1: SWAP4 000051e2: SWAP3 000051e3: POP 000051e4: POP 000051e5: POP 000051e6: JUMP 000051e7: JUMPDEST 000051e8: DUP2 000051e9: CALLDATALOAD 000051ea: PUSH2 0x51f2 000051ed: DUP2 000051ee: PUSH2 0x4807 000051f1: JUMP 000051f2: JUMPDEST 000051f3: DUP2 000051f4: SLOAD 000051f5: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00005216: AND 00005217: PUSH1 0x01 00005219: PUSH1 0x01 0000521b: PUSH1 0xa0 0000521d: SHL 0000521e: SUB 0000521f: DUP3 00005220: AND 00005221: OR 00005222: DUP3 00005223: SSTORE 00005224: POP 00005225: PUSH1 0x01 00005227: DUP2 00005228: ADD 00005229: PUSH1 0x20 0000522b: DUP4 0000522c: ADD 0000522d: CALLDATALOAD 0000522e: PUSH2 0x5236 00005231: DUP2 00005232: PUSH2 0x4807 00005235: JUMP 00005236: JUMPDEST 00005237: DUP2 00005238: SLOAD 00005239: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 0000525a: AND 0000525b: PUSH1 0x01 0000525d: PUSH1 0x01 0000525f: PUSH1 0xa0 00005261: SHL 00005262: SUB 00005263: DUP3 00005264: AND 00005265: OR 00005266: DUP3 00005267: SSTORE 00005268: POP 00005269: PUSH1 0x40 0000526b: DUP4 0000526c: ADD 0000526d: CALLDATALOAD 0000526e: PUSH2 0x5276 00005271: DUP2 00005272: PUSH2 0x4870 00005275: JUMP 00005276: JUMPDEST 00005277: DUP2 00005278: SLOAD 00005279: PUSH1 0x60 0000527b: DUP6 0000527c: ADD 0000527d: CALLDATALOAD 0000527e: PUSH2 0x5286 00005281: DUP2 00005282: PUSH2 0x4be1 00005285: JUMP 00005286: JUMPDEST 00005287: DUP1 00005288: PUSH1 0xb8 0000528a: SHL 0000528b: PUSH26 0xffffff0000000000000000000000000000000000000000000000 000052a6: AND 000052a7: PUSH23 0xffffff0000000000000000000000000000000000000000 000052bf: DUP5 000052c0: PUSH1 0xa0 000052c2: SHL 000052c3: AND 000052c4: PUSH32 0xffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff 000052e5: DUP5 000052e6: AND 000052e7: OR 000052e8: OR 000052e9: DUP5 000052ea: SSTORE 000052eb: POP 000052ec: POP 000052ed: POP 000052ee: POP 000052ef: PUSH0 000052f0: PUSH1 0x80 000052f2: DUP4 000052f3: ADD 000052f4: CALLDATALOAD 000052f5: PUSH2 0x52fd 000052f8: DUP2 000052f9: PUSH2 0x4807 000052fc: JUMP 000052fd: JUMPDEST 000052fe: PUSH1 0x02 00005300: DUP4 00005301: ADD 00005302: DUP1 00005303: SLOAD 00005304: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00005325: AND 00005326: PUSH1 0x01 00005328: PUSH1 0x01 0000532a: PUSH1 0xa0 0000532c: SHL 0000532d: SUB 0000532e: DUP4 0000532f: AND 00005330: OR 00005331: SWAP1 00005332: SSTORE 00005333: SWAP1 00005334: POP 00005335: DUP1 00005336: PUSH2 0x0bf8 00005339: JUMP 0000533a: JUMPDEST 0000533b: PUSH0 0000533c: PUSH1 0x20 0000533e: DUP3 0000533f: DUP5 00005340: SUB 00005341: SLT 00005342: ISZERO 00005343: PUSH2 0x534a 00005346: JUMPI 00005347: PUSH0 00005348: DUP1 00005349: REVERT 0000534a: JUMPDEST 0000534b: DUP2 0000534c: CALLDATALOAD 0000534d: PUSH2 0x348c 00005350: DUP2 00005351: PUSH2 0x4870 00005354: JUMP 00005355: JUMPDEST 00005356: PUSH0 00005357: PUSH1 0x20 00005359: DUP3 0000535a: DUP5 0000535b: SUB 0000535c: SLT 0000535d: ISZERO 0000535e: PUSH2 0x5365 00005361: JUMPI 00005362: PUSH0 00005363: DUP1 00005364: REVERT 00005365: JUMPDEST 00005366: DUP2 00005367: CALLDATALOAD 00005368: PUSH2 0x348c 0000536b: DUP2 0000536c: PUSH2 0x4be1 0000536f: JUMP 00005370: JUMPDEST 00005371: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00005392: PUSH0 00005393: MSTORE 00005394: PUSH1 0x32 00005396: PUSH1 0x04 00005398: MSTORE 00005399: PUSH1 0x24 0000539b: PUSH0 0000539c: REVERT 0000539d: JUMPDEST 0000539e: PUSH0 0000539f: DUP2 000053a0: PUSH1 0x0f 000053a2: SIGNEXTEND 000053a3: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000 000053c4: DUP2 000053c5: SUB 000053c6: PUSH2 0x53d1 000053c9: JUMPI 000053ca: PUSH2 0x53d1 000053cd: PUSH2 0x4ff7 000053d0: JUMP 000053d1: JUMPDEST 000053d2: PUSH0 000053d3: SUB 000053d4: SWAP3 000053d5: SWAP2 000053d6: POP 000053d7: POP 000053d8: JUMP 000053d9: JUMPDEST 000053da: PUSH0 000053db: PUSH1 0x60 000053dd: DUP3 000053de: DUP5 000053df: SUB 000053e0: SLT 000053e1: ISZERO 000053e2: PUSH2 0x53e9 000053e5: JUMPI 000053e6: PUSH0 000053e7: DUP1 000053e8: REVERT 000053e9: JUMPDEST 000053ea: PUSH2 0x348c 000053ed: DUP4 000053ee: DUP4 000053ef: PUSH2 0x4bfd 000053f2: JUMP 000053f3: JUMPDEST 000053f4: PUSH0 000053f5: PUSH2 0x231a 000053f8: CALLDATASIZE 000053f9: DUP4 000053fa: PUSH2 0x4ce2 000053fd: JUMP 000053fe: JUMPDEST 000053ff: PUSH2 0x0140 00005402: DUP2 00005403: ADD 00005404: PUSH2 0x545b 00005407: DUP3 00005408: DUP6 00005409: PUSH1 0x01 0000540b: PUSH1 0x01 0000540d: PUSH1 0xa0 0000540f: SHL 00005410: SUB 00005411: DUP2 00005412: MLOAD 00005413: AND 00005414: DUP3 00005415: MSTORE 00005416: PUSH1 0x01 00005418: PUSH1 0x01 0000541a: PUSH1 0xa0 0000541c: SHL 0000541d: SUB 0000541e: PUSH1 0x20 00005420: DUP3 00005421: ADD 00005422: MLOAD 00005423: AND 00005424: PUSH1 0x20 00005426: DUP4 00005427: ADD 00005428: MSTORE 00005429: PUSH3 0xffffff 0000542d: PUSH1 0x40 0000542f: DUP3 00005430: ADD 00005431: MLOAD 00005432: AND 00005433: PUSH1 0x40 00005435: DUP4 00005436: ADD 00005437: MSTORE 00005438: PUSH1 0x60 0000543a: DUP2 0000543b: ADD 0000543c: MLOAD 0000543d: PUSH1 0x02 0000543f: SIGNEXTEND 00005440: PUSH1 0x60 00005442: DUP4 00005443: ADD 00005444: MSTORE 00005445: PUSH1 0x01 00005447: PUSH1 0x01 00005449: PUSH1 0xa0 0000544b: SHL 0000544c: SUB 0000544d: PUSH1 0x80 0000544f: DUP3 00005450: ADD 00005451: MLOAD 00005452: AND 00005453: PUSH1 0x80 00005455: DUP4 00005456: ADD 00005457: MSTORE 00005458: POP 00005459: POP 0000545a: JUMP 0000545b: JUMPDEST 0000545c: DUP3 0000545d: CALLDATALOAD 0000545e: PUSH2 0x5466 00005461: DUP2 00005462: PUSH2 0x4807 00005465: JUMP 00005466: JUMPDEST 00005467: PUSH1 0x01 00005469: PUSH1 0x01 0000546b: PUSH1 0xa0 0000546d: SHL 0000546e: SUB 0000546f: AND 00005470: PUSH1 0xa0 00005472: DUP4 00005473: ADD 00005474: MSTORE 00005475: PUSH1 0x20 00005477: DUP4 00005478: ADD 00005479: CALLDATALOAD 0000547a: PUSH2 0x5482 0000547d: DUP2 0000547e: PUSH2 0x4807 00005481: JUMP 00005482: JUMPDEST 00005483: PUSH1 0x01 00005485: PUSH1 0x01 00005487: PUSH1 0xa0 00005489: SHL 0000548a: SUB 0000548b: AND 0000548c: PUSH1 0xc0 0000548e: DUP4 0000548f: ADD 00005490: MSTORE 00005491: PUSH1 0x40 00005493: DUP4 00005494: ADD 00005495: CALLDATALOAD 00005496: PUSH2 0x549e 00005499: DUP2 0000549a: PUSH2 0x4870 0000549d: JUMP 0000549e: JUMPDEST 0000549f: PUSH3 0xffffff 000054a3: AND 000054a4: PUSH1 0xe0 000054a6: DUP4 000054a7: ADD 000054a8: MSTORE 000054a9: PUSH1 0x60 000054ab: DUP4 000054ac: ADD 000054ad: CALLDATALOAD 000054ae: PUSH2 0x54b6 000054b1: DUP2 000054b2: PUSH2 0x4be1 000054b5: JUMP 000054b6: JUMPDEST 000054b7: PUSH1 0x02 000054b9: SIGNEXTEND 000054ba: PUSH2 0x0100 000054bd: DUP4 000054be: ADD 000054bf: MSTORE 000054c0: PUSH1 0x80 000054c2: DUP4 000054c3: ADD 000054c4: CALLDATALOAD 000054c5: PUSH2 0x54cd 000054c8: DUP2 000054c9: PUSH2 0x4807 000054cc: JUMP 000054cd: JUMPDEST 000054ce: PUSH1 0x01 000054d0: PUSH1 0x01 000054d2: PUSH1 0xa0 000054d4: SHL 000054d5: SUB 000054d6: DUP2 000054d7: AND 000054d8: PUSH2 0x0120 000054db: DUP5 000054dc: ADD 000054dd: MSTORE 000054de: POP 000054df: SWAP4 000054e0: SWAP3 000054e1: POP 000054e2: POP 000054e3: POP 000054e4: JUMP 000054e5: JUMPDEST 000054e6: PUSH0 000054e7: DUP2 000054e8: MLOAD 000054e9: DUP1 000054ea: DUP5 000054eb: MSTORE 000054ec: PUSH1 0x20 000054ee: DUP5 000054ef: ADD 000054f0: SWAP4 000054f1: POP 000054f2: PUSH1 0x20 000054f4: DUP4 000054f5: ADD 000054f6: PUSH0 000054f7: JUMPDEST 000054f8: DUP3 000054f9: DUP2 000054fa: LT 000054fb: ISZERO 000054fc: PUSH2 0x5540 000054ff: JUMPI 00005500: DUP2 00005501: MLOAD 00005502: PUSH2 0x551f 00005505: DUP8 00005506: DUP3 00005507: MLOAD 00005508: DUP1 00005509: MLOAD 0000550a: PUSH1 0x02 0000550c: SIGNEXTEND 0000550d: DUP3 0000550e: MSTORE 0000550f: PUSH1 0x20 00005511: DUP2 00005512: ADD 00005513: MLOAD 00005514: PUSH1 0x02 00005516: SIGNEXTEND 00005517: PUSH1 0x20 00005519: DUP4 0000551a: ADD 0000551b: MSTORE 0000551c: POP 0000551d: POP 0000551e: JUMP 0000551f: JUMPDEST 00005520: PUSH1 0x20 00005522: SWAP1 00005523: DUP2 00005524: ADD 00005525: MLOAD 00005526: PUSH1 0x0f 00005528: SIGNEXTEND 00005529: PUSH1 0x40 0000552b: DUP9 0000552c: ADD 0000552d: MSTORE 0000552e: PUSH1 0x60 00005530: SWAP1 00005531: SWAP7 00005532: ADD 00005533: SWAP6 00005534: SWAP2 00005535: SWAP1 00005536: SWAP2 00005537: ADD 00005538: SWAP1 00005539: PUSH1 0x01 0000553b: ADD 0000553c: PUSH2 0x54f7 0000553f: JUMP 00005540: JUMPDEST 00005541: POP 00005542: SWAP4 00005543: SWAP5 00005544: SWAP4 00005545: POP 00005546: POP 00005547: POP 00005548: POP 00005549: JUMP 0000554a: JUMPDEST 0000554b: PUSH1 0x40 0000554d: DUP2 0000554e: MSTORE 0000554f: PUSH0 00005550: PUSH2 0x555c 00005553: PUSH1 0x40 00005555: DUP4 00005556: ADD 00005557: DUP6 00005558: PUSH2 0x54e5 0000555b: JUMP 0000555c: JUMPDEST 0000555d: DUP3 0000555e: DUP2 0000555f: SUB 00005560: PUSH1 0x20 00005562: DUP5 00005563: ADD 00005564: MSTORE 00005565: DUP4 00005566: MLOAD 00005567: PUSH1 0xa0 00005569: DUP3 0000556a: MSTORE 0000556b: PUSH2 0x5577 0000556e: PUSH1 0xa0 00005570: DUP4 00005571: ADD 00005572: DUP3 00005573: PUSH2 0x4ad4 00005576: JUMP 00005577: JUMPDEST 00005578: SWAP1 00005579: POP 0000557a: PUSH1 0x01 0000557c: PUSH1 0x01 0000557e: PUSH1 0xa0 00005580: SHL 00005581: SUB 00005582: PUSH1 0x20 00005584: DUP7 00005585: ADD 00005586: MLOAD 00005587: AND 00005588: PUSH1 0x20 0000558a: DUP4 0000558b: ADD 0000558c: MSTORE 0000558d: PUSH1 0x40 0000558f: DUP6 00005590: ADD 00005591: MLOAD 00005592: PUSH1 0x40 00005594: DUP4 00005595: ADD 00005596: MSTORE 00005597: PUSH1 0x60 00005599: DUP6 0000559a: ADD 0000559b: MLOAD 0000559c: PUSH1 0x60 0000559e: DUP4 0000559f: ADD 000055a0: MSTORE 000055a1: PUSH1 0x80 000055a3: DUP6 000055a4: ADD 000055a5: MLOAD 000055a6: ISZERO 000055a7: ISZERO 000055a8: PUSH1 0x80 000055aa: DUP4 000055ab: ADD 000055ac: MSTORE 000055ad: DUP1 000055ae: SWAP3 000055af: POP 000055b0: POP 000055b1: POP 000055b2: SWAP4 000055b3: SWAP3 000055b4: POP 000055b5: POP 000055b6: POP 000055b7: JUMP 000055b8: JUMPDEST 000055b9: PUSH0 000055ba: DUP1 000055bb: PUSH0 000055bc: DUP1 000055bd: PUSH0 000055be: DUP1 000055bf: PUSH1 0xc0 000055c1: DUP8 000055c2: DUP10 000055c3: SUB 000055c4: SLT 000055c5: ISZERO 000055c6: PUSH2 0x55cd 000055c9: JUMPI 000055ca: PUSH0 000055cb: DUP1 000055cc: REVERT 000055cd: JUMPDEST 000055ce: POP 000055cf: POP 000055d0: DUP5 000055d1: MLOAD 000055d2: PUSH1 0x20 000055d4: DUP7 000055d5: ADD 000055d6: MLOAD 000055d7: PUSH1 0x40 000055d9: DUP8 000055da: ADD 000055db: MLOAD 000055dc: PUSH1 0x60 000055de: DUP9 000055df: ADD 000055e0: MLOAD 000055e1: PUSH1 0x80 000055e3: DUP10 000055e4: ADD 000055e5: MLOAD 000055e6: PUSH1 0xa0 000055e8: SWAP1 000055e9: SWAP10 000055ea: ADD 000055eb: MLOAD 000055ec: SWAP4 000055ed: SWAP11 000055ee: SWAP3 000055ef: SWAP10 000055f0: POP 000055f1: SWAP1 000055f2: SWAP8 000055f3: SWAP1 000055f4: SWAP7 000055f5: POP 000055f6: SWAP5 000055f7: POP 000055f8: SWAP1 000055f9: SWAP3 000055fa: POP 000055fb: SWAP1 000055fc: POP 000055fd: JUMP 000055fe: JUMPDEST 000055ff: PUSH0 00005600: DUP1 00005601: PUSH1 0x40 00005603: DUP4 00005604: DUP6 00005605: SUB 00005606: SLT 00005607: ISZERO 00005608: PUSH2 0x560f 0000560b: JUMPI 0000560c: PUSH0 0000560d: DUP1 0000560e: REVERT 0000560f: JUMPDEST 00005610: DUP3 00005611: CALLDATALOAD 00005612: SWAP2 00005613: POP 00005614: PUSH1 0x20 00005616: DUP4 00005617: ADD 00005618: CALLDATALOAD 00005619: PUSH8 0xffffffffffffffff 00005622: DUP2 00005623: GT 00005624: ISZERO 00005625: PUSH2 0x562c 00005628: JUMPI 00005629: PUSH0 0000562a: DUP1 0000562b: REVERT 0000562c: JUMPDEST 0000562d: PUSH2 0x5638 00005630: DUP6 00005631: DUP3 00005632: DUP7 00005633: ADD 00005634: PUSH2 0x4c90 00005637: JUMP 00005638: JUMPDEST 00005639: SWAP2 0000563a: POP 0000563b: POP 0000563c: SWAP3 0000563d: POP 0000563e: SWAP3 0000563f: SWAP1 00005640: POP 00005641: JUMP 00005642: JUMPDEST 00005643: PUSH0 00005644: DUP1 00005645: PUSH0 00005646: PUSH1 0x60 00005648: DUP5 00005649: DUP7 0000564a: SUB 0000564b: SLT 0000564c: ISZERO 0000564d: PUSH2 0x5654 00005650: JUMPI 00005651: PUSH0 00005652: DUP1 00005653: REVERT 00005654: JUMPDEST 00005655: DUP4 00005656: MLOAD 00005657: PUSH2 0x565f 0000565a: DUP2 0000565b: PUSH2 0x4807 0000565e: JUMP 0000565f: JUMPDEST 00005660: PUSH1 0x20 00005662: DUP6 00005663: ADD 00005664: MLOAD 00005665: PUSH1 0x40 00005667: SWAP1 00005668: SWAP6 00005669: ADD 0000566a: MLOAD 0000566b: SWAP1 0000566c: SWAP7 0000566d: SWAP5 0000566e: SWAP6 0000566f: POP 00005670: SWAP4 00005671: SWAP3 00005672: POP 00005673: POP 00005674: POP 00005675: JUMP 00005676: JUMPDEST 00005677: PUSH0 00005678: PUSH1 0x20 0000567a: DUP3 0000567b: DUP5 0000567c: SUB 0000567d: SLT 0000567e: ISZERO 0000567f: PUSH2 0x5686 00005682: JUMPI 00005683: PUSH0 00005684: DUP1 00005685: REVERT 00005686: JUMPDEST 00005687: DUP2 00005688: MLOAD 00005689: PUSH1 0xff 0000568b: DUP2 0000568c: AND 0000568d: DUP2 0000568e: EQ 0000568f: PUSH2 0x348c 00005692: JUMPI 00005693: PUSH0 00005694: DUP1 00005695: REVERT 00005696: JUMPDEST 00005697: DUP1 00005698: DUP3 00005699: MUL 0000569a: DUP2 0000569b: ISZERO 0000569c: DUP3 0000569d: DUP3 0000569e: DIV 0000569f: DUP5 000056a0: EQ 000056a1: OR 000056a2: PUSH2 0x231a 000056a5: JUMPI 000056a6: PUSH2 0x231a 000056a9: PUSH2 0x4ff7 000056ac: JUMP 000056ad: JUMPDEST 000056ae: PUSH1 0x01 000056b0: DUP2 000056b1: JUMPDEST 000056b2: PUSH1 0x01 000056b4: DUP5 000056b5: GT 000056b6: ISZERO 000056b7: PUSH2 0x56e8 000056ba: JUMPI 000056bb: DUP1 000056bc: DUP6 000056bd: DIV 000056be: DUP2 000056bf: GT 000056c0: ISZERO 000056c1: PUSH2 0x56cc 000056c4: JUMPI 000056c5: PUSH2 0x56cc 000056c8: PUSH2 0x4ff7 000056cb: JUMP 000056cc: JUMPDEST 000056cd: PUSH1 0x01 000056cf: DUP5 000056d0: AND 000056d1: ISZERO 000056d2: PUSH2 0x56da 000056d5: JUMPI 000056d6: SWAP1 000056d7: DUP2 000056d8: MUL 000056d9: SWAP1 000056da: JUMPDEST 000056db: PUSH1 0x01 000056dd: SWAP4 000056de: SWAP1 000056df: SWAP4 000056e0: SHR 000056e1: SWAP3 000056e2: DUP1 000056e3: MUL 000056e4: PUSH2 0x56b1 000056e7: JUMP 000056e8: JUMPDEST 000056e9: SWAP4 000056ea: POP 000056eb: SWAP4 000056ec: SWAP2 000056ed: POP 000056ee: POP 000056ef: JUMP 000056f0: JUMPDEST 000056f1: PUSH0 000056f2: DUP3 000056f3: PUSH2 0x56fe 000056f6: JUMPI 000056f7: POP 000056f8: PUSH1 0x01 000056fa: PUSH2 0x231a 000056fd: JUMP 000056fe: JUMPDEST 000056ff: DUP2 00005700: PUSH2 0x570a 00005703: JUMPI 00005704: POP 00005705: PUSH0 00005706: PUSH2 0x231a 00005709: JUMP 0000570a: JUMPDEST 0000570b: DUP2 0000570c: PUSH1 0x01 0000570e: DUP2 0000570f: EQ 00005710: PUSH2 0x5720 00005713: JUMPI 00005714: PUSH1 0x02 00005716: DUP2 00005717: EQ 00005718: PUSH2 0x572a 0000571b: JUMPI 0000571c: PUSH2 0x5746 0000571f: JUMP 00005720: JUMPDEST 00005721: PUSH1 0x01 00005723: SWAP2 00005724: POP 00005725: POP 00005726: PUSH2 0x231a 00005729: JUMP 0000572a: JUMPDEST 0000572b: PUSH1 0xff 0000572d: DUP5 0000572e: GT 0000572f: ISZERO 00005730: PUSH2 0x573b 00005733: JUMPI 00005734: PUSH2 0x573b 00005737: PUSH2 0x4ff7 0000573a: JUMP 0000573b: JUMPDEST 0000573c: POP 0000573d: POP 0000573e: PUSH1 0x01 00005740: DUP3 00005741: SHL 00005742: PUSH2 0x231a 00005745: JUMP 00005746: JUMPDEST 00005747: POP 00005748: PUSH1 0x20 0000574a: DUP4 0000574b: LT 0000574c: PUSH2 0x0133 0000574f: DUP4 00005750: LT 00005751: AND 00005752: PUSH1 0x4e 00005754: DUP5 00005755: LT 00005756: PUSH1 0x0b 00005758: DUP5 00005759: LT 0000575a: AND 0000575b: OR 0000575c: ISZERO 0000575d: PUSH2 0x5769 00005760: JUMPI 00005761: POP 00005762: DUP2 00005763: DUP2 00005764: EXP 00005765: PUSH2 0x231a 00005768: JUMP 00005769: JUMPDEST 0000576a: PUSH2 0x5794 0000576d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000578e: DUP5 0000578f: DUP5 00005790: PUSH2 0x56ad 00005793: JUMP 00005794: JUMPDEST 00005795: DUP1 00005796: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000057b7: DIV 000057b8: DUP3 000057b9: GT 000057ba: ISZERO 000057bb: PUSH2 0x57c6 000057be: JUMPI 000057bf: PUSH2 0x57c6 000057c2: PUSH2 0x4ff7 000057c5: JUMP 000057c6: JUMPDEST 000057c7: MUL 000057c8: SWAP4 000057c9: SWAP3 000057ca: POP 000057cb: POP 000057cc: POP 000057cd: JUMP 000057ce: JUMPDEST 000057cf: PUSH0 000057d0: PUSH2 0x348c 000057d3: PUSH1 0xff 000057d5: DUP5 000057d6: AND 000057d7: DUP4 000057d8: PUSH2 0x56f0 000057db: JUMP 000057dc: JUMPDEST 000057dd: PUSH0 000057de: PUSH1 0x20 000057e0: DUP3 000057e1: DUP5 000057e2: SUB 000057e3: SLT 000057e4: ISZERO 000057e5: PUSH2 0x57ec 000057e8: JUMPI 000057e9: PUSH0 000057ea: DUP1 000057eb: REVERT 000057ec: JUMPDEST 000057ed: POP 000057ee: MLOAD 000057ef: SWAP2 000057f0: SWAP1 000057f1: POP 000057f2: JUMP 000057f3: JUMPDEST 000057f4: PUSH1 0xa0 000057f6: DUP2 000057f7: MSTORE 000057f8: PUSH0 000057f9: PUSH2 0x5805 000057fc: PUSH1 0xa0 000057fe: DUP4 000057ff: ADD 00005800: DUP9 00005801: PUSH2 0x54e5 00005804: JUMP 00005805: JUMPDEST 00005806: SWAP1 00005807: POP 00005808: DUP6 00005809: PUSH1 0x20 0000580b: DUP4 0000580c: ADD 0000580d: MSTORE 0000580e: DUP5 0000580f: PUSH1 0x40 00005811: DUP4 00005812: ADD 00005813: MSTORE 00005814: DUP4 00005815: PUSH1 0x60 00005817: DUP4 00005818: ADD 00005819: MSTORE 0000581a: DUP3 0000581b: PUSH1 0x80 0000581d: DUP4 0000581e: ADD 0000581f: MSTORE 00005820: SWAP7 00005821: SWAP6 00005822: POP 00005823: POP 00005824: POP 00005825: POP 00005826: POP 00005827: POP 00005828: JUMP 00005829: JUMPDEST 0000582a: PUSH0 0000582b: DUP1 0000582c: PUSH1 0x40 0000582e: DUP4 0000582f: DUP6 00005830: SUB 00005831: SLT 00005832: ISZERO 00005833: PUSH2 0x583a 00005836: JUMPI 00005837: PUSH0 00005838: DUP1 00005839: REVERT 0000583a: JUMPDEST 0000583b: DUP3 0000583c: MLOAD 0000583d: PUSH2 0x5845 00005840: DUP2 00005841: PUSH2 0x4807 00005844: JUMP 00005845: JUMPDEST 00005846: PUSH1 0x20 00005848: SWAP4 00005849: SWAP1 0000584a: SWAP4 0000584b: ADD 0000584c: MLOAD 0000584d: SWAP3 0000584e: SWAP5 0000584f: SWAP3 00005850: SWAP4 00005851: POP 00005852: POP 00005853: POP 00005854: JUMP 00005855: JUMPDEST 00005856: PUSH0 00005857: PUSH1 0xa0 00005859: DUP3 0000585a: DUP5 0000585b: SUB 0000585c: SLT 0000585d: ISZERO 0000585e: PUSH2 0x5865 00005861: JUMPI 00005862: PUSH0 00005863: DUP1 00005864: REVERT 00005865: JUMPDEST 00005866: PUSH2 0x586d 00005869: PUSH2 0x4b6a 0000586c: JUMP 0000586d: JUMPDEST 0000586e: SWAP1 0000586f: POP 00005870: DUP2 00005871: MLOAD 00005872: PUSH8 0xffffffffffffffff 0000587b: DUP2 0000587c: GT 0000587d: ISZERO 0000587e: PUSH2 0x5885 00005881: JUMPI 00005882: PUSH0 00005883: DUP1 00005884: REVERT 00005885: JUMPDEST 00005886: PUSH2 0x5891 00005889: DUP5 0000588a: DUP3 0000588b: DUP6 0000588c: ADD 0000588d: PUSH2 0x50b1 00005890: JUMP 00005891: JUMPDEST 00005892: DUP3 00005893: MSTORE 00005894: POP 00005895: PUSH1 0x20 00005897: DUP3 00005898: ADD 00005899: MLOAD 0000589a: PUSH2 0x58a2 0000589d: DUP2 0000589e: PUSH2 0x4807 000058a1: JUMP 000058a2: JUMPDEST 000058a3: PUSH1 0x20 000058a5: DUP3 000058a6: ADD 000058a7: MSTORE 000058a8: PUSH1 0x40 000058aa: DUP3 000058ab: DUP2 000058ac: ADD 000058ad: MLOAD 000058ae: SWAP1 000058af: DUP3 000058b0: ADD 000058b1: MSTORE 000058b2: PUSH1 0x60 000058b4: DUP1 000058b5: DUP4 000058b6: ADD 000058b7: MLOAD 000058b8: SWAP1 000058b9: DUP3 000058ba: ADD 000058bb: MSTORE 000058bc: PUSH1 0x80 000058be: DUP3 000058bf: ADD 000058c0: MLOAD 000058c1: PUSH2 0x4d56 000058c4: DUP2 000058c5: PUSH2 0x484d 000058c8: JUMP 000058c9: JUMPDEST 000058ca: PUSH0 000058cb: DUP1 000058cc: PUSH1 0x40 000058ce: DUP4 000058cf: DUP6 000058d0: SUB 000058d1: SLT 000058d2: ISZERO 000058d3: PUSH2 0x58da 000058d6: JUMPI 000058d7: PUSH0 000058d8: DUP1 000058d9: REVERT 000058da: JUMPDEST 000058db: DUP3 000058dc: MLOAD 000058dd: PUSH8 0xffffffffffffffff 000058e6: DUP2 000058e7: GT 000058e8: ISZERO 000058e9: PUSH2 0x58f0 000058ec: JUMPI 000058ed: PUSH0 000058ee: DUP1 000058ef: REVERT 000058f0: JUMPDEST 000058f1: DUP4 000058f2: ADD 000058f3: PUSH1 0x1f 000058f5: DUP2 000058f6: ADD 000058f7: DUP6 000058f8: SGT 000058f9: PUSH2 0x5900 000058fc: JUMPI 000058fd: PUSH0 000058fe: DUP1 000058ff: REVERT 00005900: JUMPDEST 00005901: DUP1 00005902: MLOAD 00005903: PUSH2 0x590e 00005906: PUSH2 0x4cad 00005909: DUP3 0000590a: PUSH2 0x4bbe 0000590d: JUMP 0000590e: JUMPDEST 0000590f: DUP1 00005910: DUP3 00005911: DUP3 00005912: MSTORE 00005913: PUSH1 0x20 00005915: DUP3 00005916: ADD 00005917: SWAP2 00005918: POP 00005919: PUSH1 0x20 0000591b: PUSH1 0x60 0000591d: DUP5 0000591e: MUL 0000591f: DUP6 00005920: ADD 00005921: ADD 00005922: SWAP3 00005923: POP 00005924: DUP8 00005925: DUP4 00005926: GT 00005927: ISZERO 00005928: PUSH2 0x592f 0000592b: JUMPI 0000592c: PUSH0 0000592d: DUP1 0000592e: REVERT 0000592f: JUMPDEST 00005930: PUSH1 0x20 00005932: DUP5 00005933: ADD 00005934: SWAP4 00005935: POP 00005936: JUMPDEST 00005937: DUP3 00005938: DUP5 00005939: LT 0000593a: ISZERO 0000593b: PUSH2 0x59bb 0000593e: JUMPI 0000593f: DUP4 00005940: DUP9 00005941: SUB 00005942: PUSH1 0x60 00005944: DUP2 00005945: SLT 00005946: ISZERO 00005947: PUSH2 0x594e 0000594a: JUMPI 0000594b: PUSH0 0000594c: DUP1 0000594d: REVERT 0000594e: JUMPDEST 0000594f: PUSH2 0x5956 00005952: PUSH2 0x4b41 00005955: JUMP 00005956: JUMPDEST 00005957: PUSH1 0x40 00005959: DUP3 0000595a: SLT 0000595b: ISZERO 0000595c: PUSH2 0x5963 0000595f: JUMPI 00005960: PUSH0 00005961: DUP1 00005962: REVERT 00005963: JUMPDEST 00005964: PUSH2 0x596b 00005967: PUSH2 0x4b41 0000596a: JUMP 0000596b: JUMPDEST 0000596c: SWAP2 0000596d: POP 0000596e: DUP6 0000596f: MLOAD 00005970: PUSH2 0x5978 00005973: DUP2 00005974: PUSH2 0x4be1 00005977: JUMP 00005978: JUMPDEST 00005979: DUP3 0000597a: MSTORE 0000597b: PUSH1 0x20 0000597d: DUP7 0000597e: ADD 0000597f: MLOAD 00005980: PUSH2 0x5988 00005983: DUP2 00005984: PUSH2 0x4be1 00005987: JUMP 00005988: JUMPDEST 00005989: PUSH1 0x20 0000598b: DUP4 0000598c: ADD 0000598d: MSTORE 0000598e: SWAP1 0000598f: DUP2 00005990: MSTORE 00005991: PUSH1 0x40 00005993: DUP6 00005994: ADD 00005995: MLOAD 00005996: SWAP1 00005997: PUSH2 0x599f 0000599a: DUP3 0000599b: PUSH2 0x4bef 0000599e: JUMP 0000599f: JUMPDEST 000059a0: DUP2 000059a1: PUSH1 0x20 000059a3: DUP3 000059a4: ADD 000059a5: MSTORE 000059a6: DUP1 000059a7: DUP5 000059a8: MSTORE 000059a9: POP 000059aa: POP 000059ab: PUSH1 0x20 000059ad: DUP3 000059ae: ADD 000059af: SWAP2 000059b0: POP 000059b1: PUSH1 0x60 000059b3: DUP5 000059b4: ADD 000059b5: SWAP4 000059b6: POP 000059b7: PUSH2 0x5936 000059ba: JUMP 000059bb: JUMPDEST 000059bc: DUP1 000059bd: SWAP6 000059be: POP 000059bf: POP 000059c0: POP 000059c1: POP 000059c2: POP 000059c3: PUSH1 0x20 000059c5: DUP4 000059c6: ADD 000059c7: MLOAD 000059c8: PUSH8 0xffffffffffffffff 000059d1: DUP2 000059d2: GT 000059d3: ISZERO 000059d4: PUSH2 0x59db 000059d7: JUMPI 000059d8: PUSH0 000059d9: DUP1 000059da: REVERT 000059db: JUMPDEST 000059dc: PUSH2 0x5638 000059df: DUP6 000059e0: DUP3 000059e1: DUP7 000059e2: ADD 000059e3: PUSH2 0x5855 000059e6: JUMP 000059e7: JUMPDEST 000059e8: PUSH0 000059e9: DUP2 000059ea: MLOAD 000059eb: PUSH1 0xa0 000059ed: DUP5 000059ee: MSTORE 000059ef: PUSH2 0x59fb 000059f2: PUSH1 0xa0 000059f4: DUP6 000059f5: ADD 000059f6: DUP3 000059f7: PUSH2 0x4ad4 000059fa: JUMP 000059fb: JUMPDEST 000059fc: SWAP1 000059fd: POP 000059fe: PUSH1 0x01 00005a00: PUSH1 0x01 00005a02: PUSH1 0xa0 00005a04: SHL 00005a05: SUB 00005a06: PUSH1 0x20 00005a08: DUP5 00005a09: ADD 00005a0a: MLOAD 00005a0b: AND 00005a0c: PUSH1 0x20 00005a0e: DUP6 00005a0f: ADD 00005a10: MSTORE 00005a11: PUSH1 0x40 00005a13: DUP4 00005a14: ADD 00005a15: MLOAD 00005a16: PUSH1 0x40 00005a18: DUP6 00005a19: ADD 00005a1a: MSTORE 00005a1b: PUSH1 0x60 00005a1d: DUP4 00005a1e: ADD 00005a1f: MLOAD 00005a20: PUSH1 0x60 00005a22: DUP6 00005a23: ADD 00005a24: MSTORE 00005a25: PUSH1 0x80 00005a27: DUP4 00005a28: ADD 00005a29: MLOAD 00005a2a: ISZERO 00005a2b: ISZERO 00005a2c: PUSH1 0x80 00005a2e: DUP6 00005a2f: ADD 00005a30: MSTORE 00005a31: DUP1 00005a32: SWAP2 00005a33: POP 00005a34: POP 00005a35: SWAP3 00005a36: SWAP2 00005a37: POP 00005a38: POP 00005a39: JUMP 00005a3a: JUMPDEST 00005a3b: PUSH1 0x01 00005a3d: PUSH1 0x01 00005a3f: PUSH1 0xa0 00005a41: SHL 00005a42: SUB 00005a43: DUP8 00005a44: AND 00005a45: DUP2 00005a46: MSTORE 00005a47: PUSH1 0x01 00005a49: PUSH1 0x01 00005a4b: PUSH1 0xa0 00005a4d: SHL 00005a4e: SUB 00005a4f: DUP7 00005a50: SLOAD 00005a51: AND 00005a52: PUSH1 0x20 00005a54: DUP3 00005a55: ADD 00005a56: MSTORE 00005a57: PUSH0 00005a58: PUSH1 0x01 00005a5a: DUP8 00005a5b: ADD 00005a5c: SLOAD 00005a5d: PUSH1 0x01 00005a5f: PUSH1 0x01 00005a61: PUSH1 0xa0 00005a63: SHL 00005a64: SUB 00005a65: DUP2 00005a66: AND 00005a67: PUSH1 0x40 00005a69: DUP5 00005a6a: ADD 00005a6b: MSTORE 00005a6c: PUSH3 0xffffff 00005a70: DUP2 00005a71: PUSH1 0xa0 00005a73: SHR 00005a74: AND 00005a75: PUSH1 0x60 00005a77: DUP5 00005a78: ADD 00005a79: MSTORE 00005a7a: DUP1 00005a7b: PUSH1 0xb8 00005a7d: SHR 00005a7e: PUSH1 0x02 00005a80: SIGNEXTEND 00005a81: PUSH1 0x80 00005a83: DUP5 00005a84: ADD 00005a85: MSTORE 00005a86: POP 00005a87: PUSH2 0x5a9a 00005a8a: PUSH1 0x02 00005a8c: DUP9 00005a8d: ADD 00005a8e: SLOAD 00005a8f: PUSH1 0x01 00005a91: PUSH1 0x01 00005a93: PUSH1 0xa0 00005a95: SHL 00005a96: SUB 00005a97: AND 00005a98: SWAP1 00005a99: JUMP 00005a9a: JUMPDEST 00005a9b: PUSH1 0x01 00005a9d: PUSH1 0x01 00005a9f: PUSH1 0xa0 00005aa1: SHL 00005aa2: SUB 00005aa3: DUP2 00005aa4: AND 00005aa5: PUSH1 0xa0 00005aa7: DUP5 00005aa8: ADD 00005aa9: MSTORE 00005aaa: POP 00005aab: PUSH2 0x0140 00005aae: PUSH1 0xc0 00005ab0: DUP4 00005ab1: ADD 00005ab2: MSTORE 00005ab3: PUSH2 0x5ac0 00005ab6: PUSH2 0x0140 00005ab9: DUP4 00005aba: ADD 00005abb: DUP8 00005abc: PUSH2 0x54e5 00005abf: JUMP 00005ac0: JUMPDEST 00005ac1: DUP3 00005ac2: DUP2 00005ac3: SUB 00005ac4: PUSH1 0xe0 00005ac6: DUP5 00005ac7: ADD 00005ac8: MSTORE 00005ac9: PUSH2 0x5ad2 00005acc: DUP2 00005acd: DUP8 00005ace: PUSH2 0x59e7 00005ad1: JUMP 00005ad2: JUMPDEST 00005ad3: PUSH2 0x0100 00005ad6: DUP5 00005ad7: ADD 00005ad8: SWAP6 00005ad9: SWAP1 00005ada: SWAP6 00005adb: MSTORE 00005adc: POP 00005add: POP 00005ade: PUSH2 0x0120 00005ae1: ADD 00005ae2: MSTORE 00005ae3: SWAP5 00005ae4: SWAP4 00005ae5: POP 00005ae6: POP 00005ae7: POP 00005ae8: POP 00005ae9: JUMP 00005aea: JUMPDEST 00005aeb: PUSH0 00005aec: DUP3 00005aed: MLOAD 00005aee: DUP1 00005aef: PUSH1 0x20 00005af1: DUP6 00005af2: ADD 00005af3: DUP5 00005af4: MCOPY 00005af5: PUSH0 00005af6: SWAP3 00005af7: ADD 00005af8: SWAP2 00005af9: DUP3 00005afa: MSTORE 00005afb: POP 00005afc: SWAP2 00005afd: SWAP1 00005afe: POP 00005aff: JUMP 00005b00: JUMPDEST 00005b01: PUSH0 00005b02: PUSH1 0x20 00005b04: DUP3 00005b05: DUP5 00005b06: SUB 00005b07: SLT 00005b08: ISZERO 00005b09: PUSH2 0x5b10 00005b0c: JUMPI 00005b0d: PUSH0 00005b0e: DUP1 00005b0f: REVERT 00005b10: JUMPDEST 00005b11: DUP2 00005b12: MLOAD 00005b13: PUSH2 0x348c 00005b16: DUP2 00005b17: PUSH2 0x484d 00005b1a: JUMP 00005b1b: JUMPDEST 00005b1c: DUP1 00005b1d: DUP3 00005b1e: ADD 00005b1f: DUP1 00005b20: DUP3 00005b21: GT 00005b22: ISZERO 00005b23: PUSH2 0x231a 00005b26: JUMPI 00005b27: PUSH2 0x231a 00005b2a: PUSH2 0x4ff7 00005b2d: JUMP 00005b2e: INVALID 00005b2f: LOG2 00005b30: PUSH5 0x6970667358 00005b36: UNKNOWN(0x22) 00005b37: SLT 00005b38: KECCAK256 00005b39: CALLCODE 00005b3a: UNKNOWN(0xEE) 00005b3b: DUP9 00005b3c: DUP11 00005b3d: PUSH13 0xefa9c45b3d01de604cba93fce1 00005b4b: CHAINID 00005b4c: UNKNOWN(0xC1) 00005b4d: DIV 00005b4e: UNKNOWN(0xB7) 00005b4f: UNKNOWN(0xAE) 00005b50: SWAP16 00005b51: UNKNOWN(0xAB) 00005b52: CALLER 00005b53: SAR 00005b54: BLOBHASH 00005b55: UNKNOWN(0x0D) 00005b56: SWAP4 00005b57: MSTORE 00005b58: STATICCALL 00005b59: PUSH5 0x736f6c6343 00005b5f: STOP 00005b60: ADDMOD 00005b61: BYTE 00005b62: STOP 00005b63: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xae8384be0b081b064ab3909f84c32ae1b7356bd35e1e478ab919491f5bd2c561
call_targets:
0x2aa0f3154d1e7109aaf681a372589da318b2ba56
target_varies:
no
classification:
constant_target
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "sink_reached",
"attempts": 157,
"trace_id": "0xae8384be0b081b064ab3909f84c32ae1b7356bd35e1e478ab919491f5bd2c561",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2aa0f3154d1e7109aaf681a372589da318b2ba56"
],
"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": "0xe0be9cfd",
"selector": "0xe0be9cfd",
"calldata_variants": [
"0xe0be9cfd",
"0xe0be9cfd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf708cdc9",
"selector": "0xf708cdc9",
"calldata_variants": [
"0xf708cdc9",
"0xf708cdc90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdc4c90d3",
"selector": "0xdc4c90d3",
"calldata_variants": [
"0xdc4c90d3",
"0xdc4c90d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdce4312b",
"selector": "0xdce4312b",
"calldata_variants": [
"0xdce4312b",
"0xdce4312b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6b29347",
"selector": "0xc6b29347",
"calldata_variants": [
"0xc6b29347",
"0xc6b293470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc70920bc",
"selector": "0xc70920bc",
"calldata_variants": [
"0xc70920bc",
"0xc70920bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcc6696ce",
"selector": "0xcc6696ce",
"calldata_variants": [
"0xcc6696ce",
"0xcc6696ce0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2106,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 5393,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 9303,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 5,
"untrusted_delegatecall_count": 5
}
|
| high | upgradeability | codex | Initializer callable by anyone enables takeover of uninitialized proxy | 85 | no | — |
viewevidence_json{
"evidence": "`initialize` is external and only guarded by `initializer`, with no caller restriction.",
"locations": [
"contracts/src/abstracts/UniV4StandardModule.sol:214"
],
"recommendation": "Ensure initialization is performed atomically during deployment (factory/constructor initialization) or add access control to `initialize` (e.g., restrict to a trusted deployer or require `msg.sender == metaVault_`), so a third party cannot front-run initialization.",
"exploit_scenario": "If a beacon proxy is deployed without calling `initialize` in the same transaction, any external account can call `initialize` once to set `metaVault`, `oracle`, and `poolKey` to attacker-controlled values. The attacker can then act as the manager/owner path and withdraw/approve assets once funds arrive."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x0a659a5e81b36682db9a298ff74fdbc89755b3ae1dbd80e62b84214af52e08af
call_targets:
0x04ead25447f9371c5c1e2c33645f32aafeb337dc
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0a659a5e81b36682db9a298ff74fdbc89755b3ae1dbd80e62b84214af52e08af",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x04ead25447f9371c5c1e2c33645f32aafeb337dc"
],
"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": "0xe0be9cfd",
"selector": "0xe0be9cfd",
"calldata_variants": [
"0xe0be9cfd",
"0xe0be9cfd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf708cdc9",
"selector": "0xf708cdc9",
"calldata_variants": [
"0xf708cdc9",
"0xf708cdc90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdc4c90d3",
"selector": "0xdc4c90d3",
"calldata_variants": [
"0xdc4c90d3",
"0xdc4c90d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdce4312b",
"selector": "0xdce4312b",
"calldata_variants": [
"0xdce4312b",
"0xdce4312b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6b29347",
"selector": "0xc6b29347",
"calldata_variants": [
"0xc6b29347",
"0xc6b293470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc70920bc",
"selector": "0xc70920bc",
"calldata_variants": [
"0xc70920bc",
"0xc70920bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcc6696ce",
"selector": "0xcc6696ce",
"calldata_variants": [
"0xcc6696ce",
"0xcc6696ce0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2894,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8424,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 12284,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 8,
"guards_detected": [],
"untrusted_call_count": 8
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x0a659a5e81b36682db9a298ff74fdbc89755b3ae1dbd80e62b84214af52e08af
call_targets:
0x04ead25447f9371c5c1e2c33645f32aafeb337dc
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0a659a5e81b36682db9a298ff74fdbc89755b3ae1dbd80e62b84214af52e08af",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x04ead25447f9371c5c1e2c33645f32aafeb337dc"
],
"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": "0xe0be9cfd",
"selector": "0xe0be9cfd",
"calldata_variants": [
"0xe0be9cfd",
"0xe0be9cfd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf708cdc9",
"selector": "0xf708cdc9",
"calldata_variants": [
"0xf708cdc9",
"0xf708cdc90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdc4c90d3",
"selector": "0xdc4c90d3",
"calldata_variants": [
"0xdc4c90d3",
"0xdc4c90d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdce4312b",
"selector": "0xdce4312b",
"calldata_variants": [
"0xdce4312b",
"0xdce4312b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6b29347",
"selector": "0xc6b29347",
"calldata_variants": [
"0xc6b29347",
"0xc6b293470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc70920bc",
"selector": "0xc70920bc",
"calldata_variants": [
"0xc70920bc",
"0xc70920bc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcc6696ce",
"selector": "0xcc6696ce",
"calldata_variants": [
"0xcc6696ce",
"0xcc6696ce0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2894,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8424,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 12284,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 8,
"guards_detected": []
}
|
| medium | oracle | codex | Rebalances lack on-chain oracle deviation checks; price manipulation can skew liquidity mint/burn amounts | 75 | no | — |
viewevidence_json{
"evidence": "`rebalance` and `setPool` do not invoke `validateRebalance`; `validateRebalance` is a view helper only.",
"locations": [
"contracts/src/abstracts/UniV4StandardModule.sol:333",
"contracts/src/abstracts/UniV4StandardModule.sol:487",
"contracts/src/abstracts/UniV4StandardModule.sol:695"
],
"recommendation": "Enforce an oracle/TWAP deviation check inside `rebalance` and `setPool` (or add explicit max bounds for mint/burn amounts) so execution reverts if the pool price deviates beyond the allowed threshold.",
"exploit_scenario": "A MEV actor can manipulate the pool price in the same block as a manager rebalance or pool switch. Because `rebalance`/`setPool` call `_internalRebalance` directly and only enforce minimum mint/burn amounts, the vault can be forced to add/remove liquidity at an unfavorable price, spending significantly more of one token while still passing min checks. The optional `validateRebalance` oracle check is never enforced on-chain."
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 5
}
|
| 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": 26
}
|