b806a3f0-ce94-4e32-977e-bb6d911ba46b
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 |
|---|---|---|---|---|
| 30547 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 104141 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 104142 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 104143 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 104144 | capability.graph | complete | 1 / 3 | 1 week ago |
| 104145 | detector.run | complete | 1 / 3 | 1 week ago |
| 104146 | validation.fork | complete | 1 / 3 | 1 week ago |
| 113890 | tool.slither | failed | 2 / 2 | 1 week ago |
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 198, in main
payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 1084, in run
stdout_text, stderr_text, result_json = _run_slither(
~~~~~~~~~~~~^
workspace,
^^^^^^^^^^
...<4 lines>...
target_path=target_path,
^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-ugi9hgsv)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-ugi9hgsv)
'forge' returned non-zero exit code 1
Compiling 42 files with Solc 0.8.21
stdout: Solc 0.8.21 finished in 55.76ms
Error: Compiler run failed:
stderr: Error (3415): No arguments passed to the base constructor. Specify the arguments or mark "PriceRouter" as abstract.
stderr: --> src/modules/price-router/PriceRouter.sol:23:1:
stderr: |
stderr: 23 | contract PriceRouter is Ownable {
stderr: | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Base constructor parameters:
stderr: --> lib/openzeppelin-contracts/contracts/access/Ownable.sol:38:16:
stderr: |
stderr: 38 | constructor(address initialOwner) {
stderr: | ^^^^^^^^^^^^^^^^^^^^^^
stderr:
stderr: Error (2973): Wrong argument count for modifier invocation: 0 arguments given but expected 1.
stderr: --> src/Registry.sol:80:99:
stderr: |
stderr: 80 | constructor(address newOwner, address gravityBridge, address swapRouter, address priceRouter) Ownable() {
stderr: | ^^^^^^^^^
Traceback (most recent call last):
File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
sys.exit(main())
~~~~^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
main_impl(all_detector_classes=detectors, all_printer_classes=printers)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
compilations = compile_all(target, **vars(args))
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
compilations.append(CryticCompile(target, **kwargs))
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
self._compile(**kwargs)
~~~~~~~~~~~~~^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
self._platform.compile(self, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
hardhat_like_parsing(
~~~~~~~~~~~~~~~~~~~~^
crytic_compile, str(self._target), build_directory, str(self._project_root)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-ugi9hgsv/out/build-info is not a directory.
[codex:989565] OpenAI Codex v0.77.0 (research preview)
[codex:989565] --------
[codex:989565] workdir: /tmp/codex-multi-q9h4qu58
[codex:989565] model: gpt-5.2-codex
[codex:989565] provider: openai
[codex:989565] approval: never
[codex:989565] sandbox: read-only
[codex:989565] reasoning effort: xhigh
[codex:989565] reasoning summaries: auto
[codex:989565] session id: 019b6b42-b266-7522-9877-bdd8864a6189
[codex:989565] --------
[codex:989565] user
[codex:989565] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:989565] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:989565] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:989565]
[codex:989565] Scope rules:
[codex:989565] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:989565] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:989565]
[codex:989565] Output MUST be valid JSON matching the provided schema.
[codex:989565] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:989565] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:989565]
[codex:989565] Output constraints (IMPORTANT):
[codex:989565] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:989565] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:989565] mcp startup: no servers
[codex:989565]
[codex:989565] thinking
[codex:989565] **Preparing to review audit requirements**
[codex:989565] exec
[codex:989565] /bin/bash -lc ls in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] AUDIT_BUNDLE.txt
[codex:989565] codex-output-schema.json
[codex:989565] contracts
[codex:989565]
[codex:989565] thinking
[codex:989565] **Reading AUDIT_BUNDLE.txt file**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:989565]
[codex:989565] ================================================================================
[codex:989565] FILE: contracts/lib/balancer-v2-monorepo/pkg/interfaces/contracts/solidity-utils/openzeppelin/IERC20.sol
[codex:989565] ================================================================================
[codex:989565] // SPDX-License-Identifier: MIT
[codex:989565]
[codex:989565] pragma solidity >=0.7.0 <0.9.0;
[codex:989565]
[codex:989565] /**
[codex:989565] * @dev Interface of the ERC20 standard as defined in the EIP.
[codex:989565] */
[codex:989565] interface IERC20 {
[codex:989565] /**
[codex:989565] * @dev Returns the amount of tokens in existence.
[codex:989565] */
[codex:989565] function totalSupply() external view returns (uint256);
[codex:989565]
[codex:989565] /**
[codex:989565] * @dev Returns the amount of tokens owned by `account`.
[codex:989565]
[codex:989565] thinking
[codex:989565] **Identifying first-party contract files**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "FILE: contracts/src" AUDIT_BUNDLE.txt' in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 3702:FILE: contracts/src/Registry.sol
[codex:989565] 4196:FILE: contracts/src/base/Cellar.sol
[codex:989565] 5721:FILE: contracts/src/base/ERC4626SharePriceOracle.sol
[codex:989565] 6165:FILE: contracts/src/base/permutations/CellarWithOracle.sol
[codex:989565] 6268:FILE: contracts/src/base/permutations/CellarWithOracleWithBalancerFlashLoans.sol
[codex:989565] 6356:FILE: contracts/src/interfaces/external/IChainlinkAggregator.sol
[codex:989565] 6372:FILE: contracts/src/interfaces/external/UniswapV3Pool.sol
[codex:989565] 6554:FILE: contracts/src/modules/adaptors/BaseAdaptor.sol
[codex:989565] 6774:FILE: contracts/src/modules/price-router/Extensions/Extension.sol
[codex:989565] 6823:FILE: contracts/src/modules/price-router/PriceRouter.sol
[codex:989565] 7663:FILE: contracts/src/utils/Math.sol
[codex:989565] 7737:FILE: contracts/src/utils/Uint32Array.sol
[codex:989565]
[codex:989565] thinking
[codex:989565] **Preparing contract audit plan**
[codex:989565] exec
[codex:989565] /bin/bash -lc "sed -n '3702,4195p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565] FILE: contracts/src/Registry.sol
[codex:989565] ================================================================================
[codex:989565] // SPDX-License-Identifier: Apache-2.0
[codex:989565] pragma solidity 0.8.21;
[codex:989565]
[codex:989565] import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
[codex:989565] import { Cellar } from "src/base/Cellar.sol";
[codex:989565] import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565] import { BaseAdaptor } from "src/modules/adaptors/BaseAdaptor.sol";
[codex:989565] import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565]
[codex:989565] contract Registry is Ownable {
[codex:989565] // ============================================= ADDRESS CONFIG =============================================
[codex:989565]
[codex:989565] /**
[codex:989565] * @notice Emitted when the address of a contract is changed.
[codex:989565] * @param id value representing the unique ID tied to the changed contract
[codex:989565] * @param oldAddress address of the contract before the change
[codex:989565] * @param newAddress address of the contract after the contract
[codex:989565] */
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing registry access control risks**
[codex:989565] exec
[codex:989565] /bin/bash -lc "sed -n '4196,5720p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] FILE: contracts/src/base/Cellar.sol
[codex:989565] ================================================================================
[codex:989565] // SPDX-License-Identifier: Apache-2.0
[codex:989565] pragma solidity 0.8.21;
[codex:989565]
[codex:989565] import { Math } from "src/utils/Math.sol";
[codex:989565] import { ERC4626 } from "@solmate/mixins/ERC4626.sol";
[codex:989565] import { SafeTransferLib } from "@solmate/utils/SafeTransferLib.sol";
[codex:989565] import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565] // import { ERC4626, SafeTransferLib, Math, ERC20 } from "src/base/ERC4626.sol";
[codex:989565] import { Registry } from "src/Registry.sol";
[codex:989565] import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565] import { Uint32Array } from "src/utils/Uint32Array.sol";
[codex:989565] import { BaseAdaptor } from "src/modules/adaptors/BaseAdaptor.sol";
[codex:989565] import { Address } from "@openzeppelin/contracts/utils/Address.sol";
[codex:989565] import { ERC721Holder } from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";
[codex:989565] import { Owned } from "@solmate/auth/Owned.sol";
[codex:989565]
[codex:989565] /**
[codex:989565] * @title Sommelier Cellar
[codex:989565]
[codex:989565] thinking
[codex:989565] **Investigating file truncation and planning detailed inspection**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 8ms:
[codex:989565] 1 // SPDX-License-Identifier: Apache-2.0
[codex:989565] 2 pragma solidity 0.8.21;
[codex:989565] 3
[codex:989565] 4 import { Math } from "src/utils/Math.sol";
[codex:989565] 5 import { ERC4626 } from "@solmate/mixins/ERC4626.sol";
[codex:989565] 6 import { SafeTransferLib } from "@solmate/utils/SafeTransferLib.sol";
[codex:989565] 7 import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565] 8 // import { ERC4626, SafeTransferLib, Math, ERC20 } from "src/base/ERC4626.sol";
[codex:989565] 9 import { Registry } from "src/Registry.sol";
[codex:989565] 10 import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565] 11 import { Uint32Array } from "src/utils/Uint32Array.sol";
[codex:989565] 12 import { BaseAdaptor } from "src/modules/adaptors/BaseAdaptor.sol";
[codex:989565] 13 import { Address } from "@openzeppelin/contracts/utils/Address.sol";
[codex:989565] 14 import { ERC721Holder } from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";
[codex:989565] 15 import { Owned } from "@solmate/auth/Owned.sol";
[codex:989565] 16
[codex:989565] 17 /**
[codex:989565] 18 * @title Sommelier Cellar
[codex:989565] 19 * @notice A composable ERC4626 that can use arbitrary DeFi assets/positions using adaptors.
[codex:989565] 20 * @author crispymangoes
[codex:989565]
[codex:989565] thinking
[codex:989565] **Searching for deposit implementations**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "function deposit|function withdraw|function redeem|function mint|_after|_before|_withdraw|_deposit|totalAssets" contracts/src/base/Cellar.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 8ms:
[codex:989565] 96: * @param checkTotalAssets If true totalAssets is checked before and after updating the price router,
[codex:989565] 98: * If false totalAssets is only called after updating the price router.]
[codex:989565] 116: uint256 assetsBefore = totalAssets();
[codex:989565] 125: uint256 assetsAfter = totalAssets();
[codex:989565] 692: _depositTo(_holdingPosition, _initialDeposit);
[codex:989565] 735: _depositTo(holdingPosition, assets);
[codex:989565] 767: function deposit(uint256 assets, address receiver) public override nonReentrant returns (uint256 shares) {
[codex:989565] 768: // Use `_calculateTotalAssetsOrTotalAssetsWithdrawable` instead of totalAssets bc re-entrancy is already checked in this function.
[codex:989565] 769: (uint256 _totalAssets, uint256 _totalSupply) = _getTotalAssetsAndTotalSupply(true);
[codex:989565] 772: if ((shares = _convertToShares(assets, _totalAssets, _totalSupply)) == 0) revert Cellar__ZeroShares();
[codex:989565] 785: function mint(uint256 shares, address receiver) public override nonReentrant returns (uint256 assets) {
[codex:989565] 786: (uint256 _totalAssets, uint256 _totalSupply) = _getTotalAssetsAndTotalSupply(true);
[codex:989565] 789: if ((assets = _previewMint(shares, _totalAssets, _totalSupply)) == 0) revert Cellar__ZeroAssets();
[codex:989565] 811: _withdrawInOrder(assets, receiver);
[codex:989565] 830: function withdraw(
[codex:989565] 835: (uint256 _totalAssets, uint256 _totalSupply) = _getTotalAssetsAndTotalSupply(false);
[codex:989565] 838: shares = _previewWithdraw(assets, _totalAssets, _totalSupply);
[codex:989565] 856: function redeem(
[codex:989565] 861: (uint256 _totalAssets, uint256 _totalSupply) = _getTotalAssetsAndTotalSupply(false);
[codex:989565] 864: if ((assets = _convertToAssets(shares, _totalAssets, _totalSupply)) == 0) revert Cellar__ZeroAssets();
[codex:989565]
[codex:989565] thinking
[codex:989565] **Examining deposit and withdraw sections**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '640,920p'" in /tmp/codex-multi-q9h4qu58 succeeded in 8ms:
[codex:989565] 640
[codex:989565] 641 /**
[codex:989565] 642 * @notice Address of the platform's registry contract. Used to get the latest address of modules.
[codex:989565] 643 */
[codex:989565] 644 Registry public immutable registry;
[codex:989565] 645
[codex:989565] 646 /**
[codex:989565] 647 * @dev Owner should be set to the Gravity Bridge, which relays instructions from the Steward
[codex:989565] 648 * module to the cellars.
[codex:989565] 649 * https://github.com/PeggyJV/steward
[codex:989565] 650 * https://github.com/cosmos/gravity-bridge/blob/main/solidity/contracts/Gravity.sol
[codex:989565] 651 * @param _registry address of the platform's registry contract
[codex:989565] 652 * @param _asset address of underlying token used for the for accounting, depositing, and withdrawing
[codex:989565] 653 * @param _name name of this cellar's share token
[codex:989565] 654 * @param _symbol symbol of this cellar's share token
[codex:989565] 655 * @param _holdingPosition the holding position of the Cellar
[codex:989565] 656 * must use a position that does NOT call back to cellar on use(Like ERC20 positions).
[codex:989565] 657 * @param _holdingPositionConfig configuration data for holding position
[codex:989565] 658 * @param _initialDeposit initial amount of assets to deposit into the Cellar
[codex:989565] 659 * @param _strategistPlatformCut platform cut to use
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '920,1240p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 920 uint256 amount;
[codex:989565] 921
[codex:989565] 922 if (totalWithdrawableBalanceInAssets > assets) {
[codex:989565] 923 // Convert assets into position asset.
[codex:989565] 924 uint256 assetsInUSD = (PRECISION_MULTIPLIER * assets).mulDivDown(
[codex:989565] 925 pricingInfo.priceQuoteUSD,
[codex:989565] 926 pricingInfo.oneQuote
[codex:989565] 927 );
[codex:989565] 928 amount = assetsInUSD.mulDivDown(pricingInfo.oneBase, pricingInfo.priceBaseUSD);
[codex:989565] 929 amount = amount / PRECISION_MULTIPLIER;
[codex:989565] 930 assets = 0;
[codex:989565] 931 } else {
[codex:989565] 932 amount = withdrawableBalance;
[codex:989565] 933 assets = assets - totalWithdrawableBalanceInAssets;
[codex:989565] 934 }
[codex:989565] 935
[codex:989565] 936 // Withdraw from position.
[codex:989565] 937 _withdrawFrom(position, amount, receiver);
[codex:989565] 938
[codex:989565] 939 // Stop if no more assets to withdraw.
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing security risks and contract functions**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "pause|shutdown|reentr|blockExternal|external receiver|fees|accru" contracts/src/base/Cellar.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 38: * @notice Whether or not the contract is shutdown in case of an emergency.
[codex:989565] 50: bool public blockExternalReceiver;
[codex:989565] 293: // Make sure position is not paused and is trusted.
[codex:989565] 313: // Make sure adaptor is not paused and is trusted.
[codex:989565] 482: * @notice Data related to fees.
[codex:989565] 483: * @param strategistPlatformCut Determines how much platform fees go to strategist.
[codex:989565] 485: * @param platformFee The percentage of total assets accrued as platform fees over a year.
[codex:989565] 518: * @notice Sets the Strategists cut of platform fees
[codex:989565] 544: * @param isShutdown whether the cellar is shutdown
[codex:989565] 549: * @notice Attempted action was prevented due to contract being shutdown.
[codex:989565] 554: * @notice Attempted action was prevented due to contract not being shutdown.
[codex:989565] 559: * @notice Attempted to interact with the cellar when it is paused.
[codex:989565] 564: * @notice View function external contracts can use to see if the cellar is paused.
[codex:989565] 583: * @notice Allows governance to choose whether or not to respect a pause.
[codex:989565] 591: * @notice Prevent a function from being called during a shutdown.
[codex:989565] 1003: * @dev EIP4626 states totalAssets needs to be inclusive of fees.
[codex:989565] 1004: * Since performance fees mint shares, total assets remains unchanged,
[codex:989565] 1005: * so this implementation is inclusive of fees even though it does not explicitly show it.
[codex:989565] 1110: * @notice Returns the max amount withdrawable by a user inclusive of performance fees
[codex:989565] 1239: * @notice Strategist attempted to use an adaptor that is either paused or is not trusted by governance.
[codex:989565]
[codex:989565] thinking
[codex:989565] **Inspecting fees and pause logic**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '440,640p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 440 if (inDebtArray) {
[codex:989565] 441 newPosition1 = debtPositions[index2];
[codex:989565] 442 newPosition2 = debtPositions[index1];
[codex:989565] 443 // Swap positions.
[codex:989565] 444 (debtPositions[index1], debtPositions[index2]) = (newPosition1, newPosition2);
[codex:989565] 445 } else {
[codex:989565] 446 newPosition1 = creditPositions[index2];
[codex:989565] 447 newPosition2 = creditPositions[index1];
[codex:989565] 448 // Swap positions.
[codex:989565] 449 (creditPositions[index1], creditPositions[index2]) = (newPosition1, newPosition2);
[codex:989565] 450 }
[codex:989565] 451
[codex:989565] 452 emit PositionSwapped(newPosition1, newPosition2, index1, index2);
[codex:989565] 453 }
[codex:989565] 454
[codex:989565] 455 // =============================================== FEES CONFIG ===============================================
[codex:989565] 456
[codex:989565] 457 /**
[codex:989565] 458 * @notice Emitted when strategist platform fee cut is changed.
[codex:989565] 459 * @param oldPlatformCut value strategist platform fee cut was changed from
[codex:989565]
[codex:989565] thinking
[codex:989565] **Continuing file review**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '1240,1600p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 1240 * @param adaptor the adaptor address that is paused or not trusted.
[codex:989565] 1241 */
[codex:989565] 1242 error Cellar__CallToAdaptorNotAllowed(address adaptor);
[codex:989565] 1243
[codex:989565] 1244 /**
[codex:989565] 1245 * @notice Stores the max possible rebalance deviation for this cellar.
[codex:989565] 1246 */
[codex:989565] 1247 uint64 public constant MAX_REBALANCE_DEVIATION = 0.1e18;
[codex:989565] 1248
[codex:989565] 1249 /**
[codex:989565] 1250 * @notice The percent the total assets of a cellar may deviate during a `callOnAdaptor`(rebalance) call.
[codex:989565] 1251 */
[codex:989565] 1252 uint256 public allowedRebalanceDeviation = 0.0003e18;
[codex:989565] 1253
[codex:989565] 1254 /**
[codex:989565] 1255 * @notice Allows governance to change this cellars rebalance deviation.
[codex:989565] 1256 * @param newDeviation the new rebalance deviation value.
[codex:989565] 1257 * @dev Callable by Sommelier Governance.
[codex:989565] 1258 */
[codex:989565] 1259 function setRebalanceDeviation(uint256 newDeviation) external onlyOwner {
[codex:989565]
[codex:989565] thinking
[codex:989565] **Investigating adaptor delegatecall mechanism**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/adaptors/BaseAdaptor.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565] 1 // SPDX-License-Identifier: Apache-2.0
[codex:989565] 2 pragma solidity 0.8.21;
[codex:989565] 3
[codex:989565] 4 import { Math } from "src/utils/Math.sol";
[codex:989565] 5 import { SafeTransferLib } from "@solmate/utils/SafeTransferLib.sol";
[codex:989565] 6 import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565] 7 import { Registry } from "src/Registry.sol";
[codex:989565] 8 import { Cellar } from "src/base/Cellar.sol";
[codex:989565] 9 import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565] 10
[codex:989565] 11 /**
[codex:989565] 12 * @title Base Adaptor
[codex:989565] 13 * @notice Base contract all adaptors must inherit from.
[codex:989565] 14 * @dev Allows Cellars to interact with arbritrary DeFi assets and protocols.
[codex:989565] 15 * @author crispymangoes
[codex:989565] 16 */
[codex:989565] 17 abstract contract BaseAdaptor {
[codex:989565] 18 using SafeTransferLib for ERC20;
[codex:989565] 19 using Math for uint256;
[codex:989565] 20
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing adaptor usage and checks**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "contract .*Adaptor" contracts/src/modules/adaptors' in /tmp/codex-multi-q9h4qu58 succeeded in 9ms:
[codex:989565] contracts/src/modules/adaptors/BaseAdaptor.sol:17:abstract contract BaseAdaptor {
[codex:989565]
[codex:989565] thinking
[codex:989565] **Inspecting additional adaptors**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/ERC4626SharePriceOracle.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 1 // SPDX-License-Identifier: Apache-2.0
[codex:989565] 2 pragma solidity 0.8.21;
[codex:989565] 3
[codex:989565] 4 import { ERC4626 } from "@solmate/mixins/ERC4626.sol";
[codex:989565] 5 import { Math } from "src/utils/Math.sol";
[codex:989565] 6 import { Owned } from "@solmate/auth/Owned.sol";
[codex:989565] 7 import { AutomationCompatibleInterface } from "@chainlink/contracts/src/v0.8/interfaces/AutomationCompatibleInterface.sol";
[codex:989565] 8
[codex:989565] 9 contract ERC4626SharePriceOracle is AutomationCompatibleInterface {
[codex:989565] 10 using Math for uint256;
[codex:989565] 11
[codex:989565] 12 // ========================================= STRUCTS =========================================
[codex:989565] 13
[codex:989565] 14 struct Observation {
[codex:989565] 15 uint64 timestamp;
[codex:989565] 16 uint192 cumulative;
[codex:989565] 17 }
[codex:989565] 18
[codex:989565] 19 // ========================================= GLOBAL STATE =========================================
[codex:989565] 20 /**
[codex:989565]
[codex:989565] thinking
[codex:989565] **Inspecting for vulnerabilities**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/ERC4626SharePriceOracle.sol | sed -n '260,620p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 260 // Make sure time is larger than previous time.
[codex:989565] 261 if (currentTime <= currentObservation.timestamp) revert ERC4626SharePriceOracle__StalePerformData();
[codex:989565] 262
[codex:989565] 263 // Make sure time is not in the future.
[codex:989565] 264 if (currentTime > block.timestamp) revert ERC4626SharePriceOracle__FuturePerformData();
[codex:989565] 265
[codex:989565] 266 // See if we are updating because of staleness.
[codex:989565] 267 uint256 timeDelta = currentTime - currentObservation.timestamp;
[codex:989565] 268 if (timeDelta >= heartbeat) upkeepConditionMet = true;
[codex:989565] 269
[codex:989565] 270 // Use the old answer to calculate cumulative.
[codex:989565] 271 uint256 currentCumulative = currentObservation.cumulative + (_answer * timeDelta);
[codex:989565] 272 if (currentCumulative > type(uint192).max) revert ERC4626SharePriceOracle__CumulativeTooLarge();
[codex:989565] 273 currentObservation.cumulative = uint192(currentCumulative);
[codex:989565] 274 currentObservation.timestamp = currentTime;
[codex:989565] 275
[codex:989565] 276 uint256 timeDeltaSincePreviousObservation = currentTime -
[codex:989565] 277 observations[_getPreviousIndex(_currentIndex, _observationsLength)].timestamp;
[codex:989565] 278 // See if we need to advance to the next cumulative.
[codex:989565] 279 if (timeDeltaSincePreviousObservation >= heartbeat) {
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing potential risks in upkeep functions**
[codex:989565]
[codex:989565] I'm reviewing how performUpkeep relies on offchain data and automationRegistry calls, noting the trust assumptions involved and recognizing possible manipulation if the registry is compromised, but overall seeing expected safeguards like kill switch checks and caller restrictions. I’m now shifting to examine related contracts like CellarWithOracle for broader context.
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/permutations/CellarWithOracle.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 5ms:
[codex:989565] 1 // SPDX-License-Identifier: Apache-2.0
[codex:989565] 2 pragma solidity 0.8.21;
[codex:989565] 3
[codex:989565] 4 import { Cellar, Registry, ERC20, Math } from "src/base/Cellar.sol";
[codex:989565] 5 import { ERC4626SharePriceOracle } from "src/base/ERC4626SharePriceOracle.sol";
[codex:989565] 6
[codex:989565] 7 contract CellarWithOracle is Cellar {
[codex:989565] 8 using Math for uint256;
[codex:989565] 9
[codex:989565] 10 constructor(
[codex:989565] 11 address _owner,
[codex:989565] 12 Registry _registry,
[codex:989565] 13 ERC20 _asset,
[codex:989565] 14 string memory _name,
[codex:989565] 15 string memory _symbol,
[codex:989565] 16 uint32 _holdingPosition,
[codex:989565] 17 bytes memory _holdingPositionConfig,
[codex:989565] 18 uint256 _initialDeposit,
[codex:989565] 19 uint64 _strategistPlatformCut,
[codex:989565] 20 uint192 _shareSupplyCap
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing oracle-based asset valuation**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/permutations/CellarWithOracleWithBalancerFlashLoans.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 1 // SPDX-License-Identifier: Apache-2.0
[codex:989565] 2 pragma solidity 0.8.21;
[codex:989565] 3
[codex:989565] 4 import { Registry, ERC20, Math, SafeTransferLib } from "src/base/Cellar.sol";
[codex:989565] 5 import { IFlashLoanRecipient, IERC20 } from "@balancer/interfaces/contracts/vault/IFlashLoanRecipient.sol";
[codex:989565] 6 import { CellarWithOracle } from "src/base/permutations/CellarWithOracle.sol";
[codex:989565] 7
[codex:989565] 8 import { ERC4626SharePriceOracle } from "src/base/ERC4626SharePriceOracle.sol";
[codex:989565] 9
[codex:989565] 10 contract CellarWithOracleWithBalancerFlashLoans is CellarWithOracle, IFlashLoanRecipient {
[codex:989565] 11 using Math for uint256;
[codex:989565] 12 using SafeTransferLib for ERC20;
[codex:989565] 13
[codex:989565] 14 /**
[codex:989565] 15 * @notice The Balancer Vault contract on current network.
[codex:989565] 16 * @dev For mainnet use 0xBA12222222228d8Ba445958a75a0704d566BF2C8.
[codex:989565] 17 */
[codex:989565] 18 address public immutable balancerVault;
[codex:989565] 19
[codex:989565] 20 constructor(
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing flash loan reentrancy safeguards**
[codex:989565]
[codex:989565] I'm carefully examining how receiveFlashLoan manages reentrancy given it lacks a nonReentrant modifier while relying on blockExternalReceiver as a guard. The interaction with callOnAdaptor's nonReentrant lock and delegatecall mechanics raises important questions about trust boundaries and potential exploit paths, so I'm breaking down the call flow and state checks to understand if any vulnerable scenarios exist—especially regarding adaptor control and balance validations prior to and after flash loans. Now, I’m shifting focus to inspect PriceRouter for related concerns with price feeds and data validation.
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 1 // SPDX-License-Identifier: Apache-2.0
[codex:989565] 2 pragma solidity 0.8.21;
[codex:989565] 3
[codex:989565] 4 import { SafeTransferLib } from "@solmate/utils/SafeTransferLib.sol";
[codex:989565] 5 import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565] 6 import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
[codex:989565] 7 import { IChainlinkAggregator } from "src/interfaces/external/IChainlinkAggregator.sol";
[codex:989565] 8 import { SafeCast } from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:989565] 9 import { Math } from "src/utils/Math.sol";
[codex:989565] 10 import { Address } from "@openzeppelin/contracts/utils/Address.sol";
[codex:989565] 11 import { Extension } from "src/modules/price-router/Extensions/Extension.sol";
[codex:989565] 12 import { Registry } from "src/Registry.sol";
[codex:989565] 13
[codex:989565] 14 import { UniswapV3Pool } from "src/interfaces/external/UniswapV3Pool.sol";
[codex:989565] 15 import { OracleLibrary } from "@uniswapV3P/libraries/OracleLibrary.sol";
[codex:989565] 16
[codex:989565] 17 /**
[codex:989565] 18 * @title Sommelier Price Router
[codex:989565] 19 * @notice Provides a universal interface allowing Sommelier contracts to retrieve secure pricing
[codex:989565] 20 * data from Chainlink.
[codex:989565]
[codex:989565] thinking
[codex:989565] **Searching for price-related functions in PriceRouter**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "latestRoundData|answeredInRound|minAnswer|maxAnswer|decimals" contracts/src/modules/price-router/PriceRouter.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565] 364: uint256 minAnswer = _expectedAnswer.mulWadDown((1e18 - EXPECTED_ANSWER_DEVIATION));
[codex:989565] 365: uint256 maxAnswer = _expectedAnswer.mulWadDown((1e18 + EXPECTED_ANSWER_DEVIATION));
[codex:989565] 369: if (answer < minAnswer || answer > maxAnswer) revert PriceRouter__BadAnswer(answer, _expectedAnswer);
[codex:989565] 385: * @dev Returns price in USD with 8 decimals.
[codex:989565] 394: * @dev Returns array of prices in USD with 8 decimals.
[codex:989565] 418: value = _getValueInQuote(priceBaseUSD, priceQuoteUSD, baseAsset.decimals(), quoteAsset.decimals(), amount);
[codex:989565] 459: exchangeRate = _getExchangeRate(baseAsset, baseSettings, quoteAsset, quoteSettings, quoteAsset.decimals());
[codex:989565] 472: uint8 quoteAssetDecimals = quoteAsset.decimals();
[codex:989565] 520: * @dev Returns price in USD with 8 decimals.
[codex:989565] 540: * @param baseDecimals the base asset decimals
[codex:989565] 541: * @param quoteDecimals the quote asset decimals
[codex:989565] 586: uint8 quoteDecimals = quoteAsset.decimals();
[codex:989565] 603: baseAsset.decimals(),
[codex:989565] 653: uint256 minFromChainklink = uint256(uint192(aggregator.minAnswer()));
[codex:989565] 654: uint256 maxFromChainlink = uint256(uint192(aggregator.maxAnswer()));
[codex:989565] 694: (, int256 _price, , uint256 _timestamp, ) = aggregator.latestRoundData();
[codex:989565] 760: * @param baseDecimals the base assets decimals
[codex:989565] 761: * @param quoteDecimals the quote assets decimals
[codex:989565] 808: parameters.baseDecimals = _asset.decimals();
[codex:989565] 809: parameters.quoteDecimals = token1.decimals();
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing Chainlink Data Validation and Reentrancy Risks**
[codex:989565]
[codex:989565] I'm going through Chainlink usage, focusing on whether they properly check answeredInRound to avoid stale data and how they handle timestamps. I'm also reviewing PriceRouter's external calls, especially delegatecalls to adaptors, to assess potential reentrancy or access control vulnerabilities. I'm examining multicall's interaction with reentrancy guards and verifying assumptions about trusted adaptors and oracle manipulation risks to prepare a thorough vulnerability assessment.
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/interfaces/external/IChainlinkAggregator.sol | sed -n '1,200p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 1 // SPDX-License-Identifier: Apache-2.0
[codex:989565] 2 pragma solidity 0.8.21;
[codex:989565] 3
[codex:989565] 4 import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol";
[codex:989565] 5
[codex:989565] 6 interface IChainlinkAggregator is AggregatorV2V3Interface {
[codex:989565] 7 function maxAnswer() external view returns (int192);
[codex:989565] 8
[codex:989565] 9 function minAnswer() external view returns (int192);
[codex:989565] 10
[codex:989565] 11 function aggregator() external view returns (address);
[codex:989565] 12 }
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing Chainlink price feed assumptions**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/Extensions/Extension.sol | sed -n '1,200p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 1 // SPDX-License-Identifier: Apache-2.0
[codex:989565] 2 pragma solidity 0.8.21;
[codex:989565] 3
[codex:989565] 4 import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565] 5 import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565] 6 import { Math } from "src/utils/Math.sol";
[codex:989565] 7
[codex:989565] 8 /**
[codex:989565] 9 * @title Sommelier Price Router Extension abstract contract.
[codex:989565] 10 * @notice Provides shared logic between Extensions.
[codex:989565] 11 * @author crispymangoes
[codex:989565] 12 */
[codex:989565] 13 abstract contract Extension {
[codex:989565] 14 /**
[codex:989565] 15 * @notice Attempted to call a function only callable by the price router.
[codex:989565] 16 */
[codex:989565] 17 error Extension__OnlyPriceRouter();
[codex:989565] 18
[codex:989565] 19 /**
[codex:989565] 20 * @notice Prevents non price router contracts from calling a function.
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing access control in Registry and PriceRouter**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "startEditAsset|completeEditAsset|cancel|edit" contracts/src/modules/price-router/PriceRouter.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 8ms:
[codex:989565] 35: bytes32 editHash,
[codex:989565] 39: event EditAssetCancelled(address asset, bytes32 editHash);
[codex:989565] 41: event EditAssetComplete(address asset, bytes32 editHash);
[codex:989565] 76: * @notice Emitted when an ownership transition is cancelled.
[codex:989565] 101: * @notice Attempted to cancel or complete a transition when one is not active.
[codex:989565] 138: * @notice Allows Zero Id address to cancel an ongoing owner transition.
[codex:989565] 140: function cancelTransition() external {
[codex:989565] 198: * @notice Attempted to edit an asset that is not supported.
[codex:989565] 203: * @notice Attempted to edit an asset that is not editable.
[codex:989565] 208: * @notice Attempted to cancel the editing of an asset that is not pending edit.
[codex:989565] 235: * @notice The amount of time that must pass between owner calling `startEditAsset`, and `completeEditAsset`.
[codex:989565] 240: * @notice Stores the timestamp when an asset can be editted.
[codex:989565] 269: * @notice Allows owner to start the edit asset process.
[codex:989565] 270: * @dev Saves a hash of the inputs, and maps it to the timestamp when `_asset` is editable.
[codex:989565] 271: * @param _asset the asset to edit in the pricing router
[codex:989565] 276: function startEditAsset(ERC20 _asset, AssetSettings memory _settings, bytes memory _storage) external onlyOwner {
[codex:989565] 279: bytes32 editHash = keccak256(abi.encode(_asset, _settings, _storage));
[codex:989565] 282: assetEditableTimestamp[editHash] = assetEditableAt;
[codex:989565] 284: emit IntentToEditAsset(address(_asset), _settings, _storage, editHash, assetEditableAt);
[codex:989565] 288: * @notice Once `EDIT_ASSET_DELAY` has passed, `_asset` is now editable using the
[codex:989565]
[codex:989565] thinking
[codex:989565] **Inspecting derivative-setting functions**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '250,420p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 250 * @dev The `derivative` value in settings MUST be non zero.
[codex:989565] 251 * @param _storage arbitrary bytes data used to configure `_asset` pricing
[codex:989565] 252 * @param _expectedAnswer the expected answer for the asset from `_getPriceInUSD`
[codex:989565] 253 */
[codex:989565] 254 function addAsset(
[codex:989565] 255 ERC20 _asset,
[codex:989565] 256 AssetSettings memory _settings,
[codex:989565] 257 bytes memory _storage,
[codex:989565] 258 uint256 _expectedAnswer
[codex:989565] 259 ) external onlyOwner {
[codex:989565] 260 // Check that asset is not already added.
[codex:989565] 261 if (getAssetSettings[_asset].derivative > 0) revert PriceRouter__AssetAlreadyAdded(address(_asset));
[codex:989565] 262
[codex:989565] 263 _updateAsset(_asset, _settings, _storage, _expectedAnswer);
[codex:989565] 264
[codex:989565] 265 emit AddAsset(address(_asset));
[codex:989565] 266 }
[codex:989565] 267
[codex:989565] 268 /**
[codex:989565] 269 * @notice Allows owner to start the edit asset process.
[codex:989565]
[codex:989565] thinking
[codex:989565] **Reviewing price retrieval functions**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '420,780p'" in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565] 420
[codex:989565] 421 /**
[codex:989565] 422 * @notice Helper function that compares `_getValues` between input 0 and input 1.
[codex:989565] 423 */
[codex:989565] 424 function getValuesDelta(
[codex:989565] 425 ERC20[] calldata baseAssets0,
[codex:989565] 426 uint256[] calldata amounts0,
[codex:989565] 427 ERC20[] calldata baseAssets1,
[codex:989565] 428 uint256[] calldata amounts1,
[codex:989565] 429 ERC20 quoteAsset
[codex:989565] 430 ) external view returns (uint256) {
[codex:989565] 431 uint256 value0 = _getValues(baseAssets0, amounts0, quoteAsset);
[codex:989565] 432 uint256 value1 = _getValues(baseAssets1, amounts1, quoteAsset);
[codex:989565] 433 return value0 - value1;
[codex:989565] 434 }
[codex:989565] 435
[codex:989565] 436 /**
[codex:989565] 437 * @notice Helper function that determines the value of assets using `_getValues`.
[codex:989565] 438 */
[codex:989565] 439 function getValues(
[codex:989565]
[codex:989565] thinking
[codex:989565] **Reviewing TWAP usage until end**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '780,1040p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 780
[codex:989565] 781 /**
[codex:989565] 782 * @notice Returns Twap Derivative Storage
[codex:989565] 783 */
[codex:989565] 784 mapping(ERC20 => TwapDerivativeStorage) public getTwapDerivativeStorage;
[codex:989565] 785
[codex:989565] 786 /**
[codex:989565] 787 * @notice The smallest possible TWAP that can be used.
[codex:989565] 788 */
[codex:989565] 789 uint32 public constant MINIMUM_SECONDS_AGO = 900;
[codex:989565] 790
[codex:989565] 791 /**
[codex:989565] 792 * @notice Setup function for pricing Twap derivative assets.
[codex:989565] 793 * @dev Make sure that TWAP assets have sufficient observations, and increase them if not before adding.
[codex:989565] 794 * @dev _source The address of the Uniswap V3 pool.
[codex:989565] 795 * @dev _storage A TwapDerivativeStorage value defining valid prices.
[codex:989565] 796 */
[codex:989565] 797 function _setupPriceForTwapDerivative(ERC20 _asset, address _source, bytes memory _storage) internal {
[codex:989565] 798 TwapDerivativeStorage memory parameters = abi.decode(_storage, (TwapDerivativeStorage));
[codex:989565] 799
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing underflow and oracle manipulation risks**
[codex:989565] exec
[codex:989565] /bin/bash -lc "rg -n \"approvedForDepositOnBehalf|depositOnBehalf|onBehalf\" -g'*.sol' contracts/src" in /tmp/codex-multi-q9h4qu58 succeeded in 9ms:
[codex:989565] contracts/src/Registry.sol:47: mapping(address => bool) public approvedForDepositOnBehalf;
[codex:989565] contracts/src/Registry.sol:53: approvedForDepositOnBehalf[depositor] = state;
[codex:989565]
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing potential smart contract issues and risks**
[codex:989565] thinking
[codex:989565] **Evaluating contract logic and edge cases for vulnerabilities**
[codex:989565]
[codex:989565] I'll carefully weigh multiple subtle logic and arithmetic edge cases across contracts, focusing on oracle data freshness, arithmetic underflows causing operation halts, delegatecall risks with adaptors, and governance-controlled state variables. I want to highlight potential oracle manipulation via stale Chainlink rounds, deposit/withdraw blocking from underflows, and nuanced access controls tied to adaptor calls and owner transitions. Let’s see if these findings align well for a concise security summary!
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "OwnerTransitionStarted|transitionOwner" contracts/src/Registry.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565] 122: event OwnerTransitionStarted(address newOwner, uint256 startTime);
[codex:989565] 177: function transitionOwner(address newOwner) external {
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/Registry.sol | sed -n '160,230p'" in /tmp/codex-multi-q9h4qu58 succeeded in 5ms:
[codex:989565] 160 * @notice The amount of time it takes for an ownership transition to work.
[codex:989565] 161 */
[codex:989565] 162 uint256 public constant TRANSITION_PERIOD = 7 days;
[codex:989565] 163
[codex:989565] 164 /**
[codex:989565] 165 * @notice The Pending Owner, that becomes the owner after the transition period, and they call `completeTransition`.
[codex:989565] 166 */
[codex:989565] 167 address public pendingOwner;
[codex:989565] 168
[codex:989565] 169 /**
[codex:989565] 170 * @notice The starting time stamp of the transition.
[codex:989565] 171 */
[codex:989565] 172 uint256 public transitionStart;
[codex:989565] 173
[codex:989565] 174 /**
[codex:989565] 175 * @notice Allows Zero Id address to set a new owner, after the transition period is up.
[codex:989565] 176 */
[codex:989565] 177 function transitionOwner(address newOwner) external {
[codex:989565] 178 if (msg.sender != getAddress[0]) revert Registry__OnlyCallableByZeroId();
[codex:989565] 179 if (pendingOwner != address(0)) revert Registry__TransitionPending();
[codex:989565]
[codex:989565] thinking
[codex:989565] **Checking event emission in PriceRouter**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "OwnerTransitionStarted|transitionOwner" contracts/src/modules/price-router/PriceRouter.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 73: event OwnerTransitionStarted(address newOwner, uint256 startTime);
[codex:989565] 128: function transitionOwner(address newOwner) external {
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '120,170p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 120 /**
[codex:989565] 121 * @notice The starting time stamp of the transition.
[codex:989565] 122 */
[codex:989565] 123 uint256 public transitionStart;
[codex:989565] 124
[codex:989565] 125 /**
[codex:989565] 126 * @notice Allows Zero Id address to set a new owner, after the transition period is up.
[codex:989565] 127 */
[codex:989565] 128 function transitionOwner(address newOwner) external {
[codex:989565] 129 if (msg.sender != registry.getAddress(0)) revert PriceRouter__OnlyCallableByZeroId();
[codex:989565] 130 if (pendingOwner != address(0)) revert PriceRouter__TransitionPending();
[codex:989565] 131 if (newOwner == address(0)) revert PriceRouter__NewOwnerCanNotBeZero();
[codex:989565] 132
[codex:989565] 133 pendingOwner = newOwner;
[codex:989565] 134 transitionStart = block.timestamp;
[codex:989565] 135 }
[codex:989565] 136
[codex:989565] 137 /**
[codex:989565] 138 * @notice Allows Zero Id address to cancel an ongoing owner transition.
[codex:989565] 139 */
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing potential smart contract vulnerabilities**
[codex:989565]
[codex:989565] I'm carefully reviewing multiple contracts for possible issues like reentrancy, unchecked external calls, underflow, stale oracle data, and access control gaps, focusing on specific functions that might allow DoS, freezing of user funds, or oracle manipulation. There is a lot to consider about how state updates, price feeds, and ownership transitions interact and where logic might lead to transaction reverts or security risks. Let's explore these details thoroughly!
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "delegatecall|functionDelegateCall" contracts/src' in /tmp/codex-multi-q9h4qu58 succeeded in 10ms:
[codex:989565] contracts/src/modules/adaptors/BaseAdaptor.sol:94: // All mutative Base functions will be called using delegatecall.
[codex:989565] contracts/src/modules/adaptors/BaseAdaptor.sol:162: // All strategist functions will be called using delegatecall.
[codex:989565] contracts/src/base/Cellar.sol:71: for (uint256 i = 0; i < data.length; i++) address(this).functionDelegateCall(data[i]);
[codex:989565] contracts/src/base/Cellar.sol:1293: adaptor.functionDelegateCall(data[i].callData[j]);
[codex:989565] contracts/src/base/Cellar.sol:1415: adaptor.functionDelegateCall(
[codex:989565] contracts/src/base/Cellar.sol:1433: adaptor.functionDelegateCall(
[codex:989565]
[codex:989565] thinking
[codex:989565] **Analyzing potential multicall and contract issues**
[codex:989565]
[codex:989565] I'm exploring whether the multicall delegatecall to self might bypass the reentrancy guard by resetting the locked storage variable, but it seems that each call starts with locked false, so reentrancy is prevented. I'm checking if multicall can call internal functions or owner-only functions; internal ones lack accessible selectors, so no. I also note multicall is external but deposit/withdraw enforce pause/shutdown checks internally, so no immediate bypass there. Then, I identify specific issues to report, such as a missing Chainlink `answeredInRound` check, an underflow risk in `getValuesDelta` causing possible DoS, and configuration risks around `sharePriceOracle` and stale timestamps in oracle updates. I’m aligning line numbers and file paths for precise findings and preparing recommendations accordingly.
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '420,450p'" in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565] 420
[codex:989565] 421 /**
[codex:989565] 422 * @notice Helper function that compares `_getValues` between input 0 and input 1.
[codex:989565] 423 */
[codex:989565] 424 function getValuesDelta(
[codex:989565] 425 ERC20[] calldata baseAssets0,
[codex:989565] 426 uint256[] calldata amounts0,
[codex:989565] 427 ERC20[] calldata baseAssets1,
[codex:989565] 428 uint256[] calldata amounts1,
[codex:989565] 429 ERC20 quoteAsset
[codex:989565] 430 ) external view returns (uint256) {
[codex:989565] 431 uint256 value0 = _getValues(baseAssets0, amounts0, quoteAsset);
[codex:989565] 432 uint256 value1 = _getValues(baseAssets1, amounts1, quoteAsset);
[codex:989565] 433 return value0 - value1;
[codex:989565] 434 }
[codex:989565] 435
[codex:989565] 436 /**
[codex:989565] 437 * @notice Helper function that determines the value of assets using `_getValues`.
[codex:989565] 438 */
[codex:989565] 439 function getValues(
[codex:989565]
[codex:989565] thinking
[codex:989565] **Noting specific code lines**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '686,706p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 686 }
[codex:989565] 687
[codex:989565] 688 /**
[codex:989565] 689 * @notice Get the price of a Chainlink derivative in terms of USD.
[codex:989565] 690 */
[codex:989565] 691 function _getPriceForChainlinkDerivative(ERC20 _asset, address _source) internal view returns (uint256) {
[codex:989565] 692 ChainlinkDerivativeStorage memory parameters = getChainlinkDerivativeStorage[_asset];
[codex:989565] 693 IChainlinkAggregator aggregator = IChainlinkAggregator(_source);
[codex:989565] 694 (, int256 _price, , uint256 _timestamp, ) = aggregator.latestRoundData();
[codex:989565] 695 uint256 price = _price.toUint256();
[codex:989565] 696 _checkPriceFeed(address(_asset), price, _timestamp, parameters.max, parameters.min, parameters.heartbeat);
[codex:989565] 697 // If price is in ETH, then convert price into USD.
[codex:989565] 698 if (parameters.inETH) {
[codex:989565] 699 uint256 _ethToUsd = _getPriceInUSD(WETH, getAssetSettings[WETH]);
[codex:989565] 700 price = price.mulWadDown(_ethToUsd);
[codex:989565] 701 }
[codex:989565] 702 return price;
[codex:989565] 703 }
[codex:989565] 704
[codex:989565] 705 /**
[codex:989565]
[codex:989565] thinking
[codex:989565] **Inspecting totalAssets calculation references**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '960,1005p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 960
[codex:989565] 961 /**
[codex:989565] 962 * @notice Internal accounting function that can report total assets, or total assets withdrawable.
[codex:989565] 963 * @param reportWithdrawable if true, then the withdrawable total assets is reported,
[codex:989565] 964 * if false, then the total assets is reported
[codex:989565] 965 */
[codex:989565] 966 function _calculateTotalAssetsOrTotalAssetsWithdrawable(
[codex:989565] 967 bool reportWithdrawable
[codex:989565] 968 ) internal view returns (uint256 assets) {
[codex:989565] 969 uint256 numOfCreditPositions = creditPositions.length;
[codex:989565] 970 ERC20[] memory creditAssets = new ERC20[](numOfCreditPositions);
[codex:989565] 971 uint256[] memory creditBalances = new uint256[](numOfCreditPositions);
[codex:989565] 972 // If we just need the withdrawable, then query credit array value.
[codex:989565] 973 if (reportWithdrawable) {
[codex:989565] 974 for (uint256 i; i < numOfCreditPositions; ++i) {
[codex:989565] 975 uint32 position = creditPositions[i];
[codex:989565] 976 // If the withdrawable balance is zero there is no point to query the asset since a zero balance has zero value.
[codex:989565] 977 if ((creditBalances[i] = _withdrawableFrom(position)) == 0) continue;
[codex:989565] 978 creditAssets[i] = _assetOf(position);
[codex:989565] 979 }
[codex:989565]
[codex:989565] thinking
[codex:989565] **Summarizing audit findings and crafting JSON**
[codex:989565]
[codex:989565] I’m organizing the detailed audit observations into two main findings about underflow causing DoS on totalAssets and Chainlink round validation gaps, framing them with severity, categories, exploit scenarios, and recommendations, then preparing the JSON output per schema.
[codex:989565] codex
[codex:989565] {"no_findings":false,"summary":"Found 2 issues: a debt/credit underflow can DoS totalAssets-based flows, and Chainlink round completeness is not validated.","findings":[{"severity":"medium","category":"math","title":"Debt > credit underflow can brick totalAssets and withdrawals","exploit_scenario":"If a debt position’s priced value exceeds credit positions (e.g., due to oracle manipulation or rapid market moves), `getValuesDelta` underflows and reverts. Because `Cellar` relies on this for `totalAssets`, deposits/withdrawals and rebalances that call `totalAssets` or `_getTotalAssetsAndTotalSupply` will revert, freezing user exits until prices normalize.","recommendation":"Handle negative net value explicitly instead of unchecked subtraction. Use signed math or clamp at zero (e.g., return 0 if debt > credit), or add a controlled insolvency path that still allows withdrawals rather than reverting all accounting.","evidence":"`PriceRouter.getValuesDelta` returns `value0 - value1` without guarding against underflow; `Cellar._calculateTotalAssetsOrTotalAssetsWithdrawable` uses it to compute total assets.","locations":["contracts/src/modules/price-router/PriceRouter.sol:424","contracts/src/modules/price-router/PriceRouter.sol:431","contracts/src/base/Cellar.sol:966","contracts/src/base/Cellar.sol:997"]},{"severity":"low","category":"oracle","title":"Chainlink answeredInRound not checked in price fetch","exploit_scenario":"If a Chainlink feed starts a new round but hasn’t answered yet, `latestRoundData` can return the previous round’s answer with `answeredInRound < roundId`. Because this check is omitted, the contract may accept stale prices as long as `updatedAt` is within the heartbeat, allowing users to act on outdated pricing during volatility.","recommendation":"Read `roundId` and `answeredInRound` from `latestRoundData` and require `answeredInRound >= roundId` and `updatedAt != 0` before accepting the price.","evidence":"`_getPriceForChainlinkDerivative` only uses `(, _price, , _timestamp, ) = latestRoundData()` and ignores `answeredInRound`/`roundId`.","locations":["contracts/src/modules/price-router/PriceRouter.sol:691","contracts/src/modules/price-router/PriceRouter.sol:694"]}]}
[codex:989565] tokens used
[codex:989565] 180,372
[codex:989565] {"no_findings":false,"summary":"Found 2 issues: a debt/credit underflow can DoS totalAssets-based flows, and Chainlink round completeness is not validated.","findings":[{"severity":"medium","category":"math","title":"Debt > credit underflow can brick totalAssets and withdrawals","exploit_scenario":"If a debt position’s priced value exceeds credit positions (e.g., due to oracle manipulation or rapid market moves), `getValuesDelta` underflows and reverts. Because `Cellar` relies on this for `totalAssets`, deposits/withdrawals and rebalances that call `totalAssets` or `_getTotalAssetsAndTotalSupply` will revert, freezing user exits until prices normalize.","recommendation":"Handle negative net value explicitly instead of unchecked subtraction. Use signed math or clamp at zero (e.g., return 0 if debt > credit), or add a controlled insolvency path that still allows withdrawals rather than reverting all accounting.","evidence":"`PriceRouter.getValuesDelta` returns `value0 - value1` without guarding against underflow; `Cellar._calculateTotalAssetsOrTotalAssetsWithdrawable` uses it to compute total assets.","locations":["contracts/src/modules/price-router/PriceRouter.sol:424","contracts/src/modules/price-router/PriceRouter.sol:431","contracts/src/base/Cellar.sol:966","contracts/src/base/Cellar.sol:997"]},{"severity":"low","category":"oracle","title":"Chainlink answeredInRound not checked in price fetch","exploit_scenario":"If a Chainlink feed starts a new round but hasn’t answered yet, `latestRoundData` can return the previous round’s answer with `answeredInRound < roundId`. Because this check is omitted, the contract may accept stale prices as long as `updatedAt` is within the heartbeat, allowing users to act on outdated pricing during volatility.","recommendation":"Read `roundId` and `answeredInRound` from `latestRoundData` and require `answeredInRound >= roundId` and `updatedAt != 0` before accepting the price.","evidence":"`_getPriceForChainlinkDerivative` only uses `(, _price, , _timestamp, ) = latestRoundData()` and ignores `answeredInRound`/`roundId`.","locations":["contracts/src/modules/price-router/PriceRouter.sol:691","contracts/src/modules/price-router/PriceRouter.sol:694"]}]}
{
"codex": {
"ran_at": "2025-12-29T18:07:17.848047+00:00",
"returncode": 0
},
"summary": "Found 2 issues: a debt/credit underflow can DoS totalAssets-based flows, and Chainlink round completeness is not validated.",
"raw_final": {
"summary": "Found 2 issues: a debt/credit underflow can DoS totalAssets-based flows, and Chainlink round completeness is not validated.",
"findings": [
{
"title": "Debt > credit underflow can brick totalAssets and withdrawals",
"category": "math",
"evidence": "`PriceRouter.getValuesDelta` returns `value0 - value1` without guarding against underflow; `Cellar._calculateTotalAssetsOrTotalAssetsWithdrawable` uses it to compute total assets.",
"severity": "medium",
"locations": [
"contracts/src/modules/price-router/PriceRouter.sol:424",
"contracts/src/modules/price-router/PriceRouter.sol:431",
"contracts/src/base/Cellar.sol:966",
"contracts/src/base/Cellar.sol:997"
],
"recommendation": "Handle negative net value explicitly instead of unchecked subtraction. Use signed math or clamp at zero (e.g., return 0 if debt > credit), or add a controlled insolvency path that still allows withdrawals rather than reverting all accounting.",
"exploit_scenario": "If a debt position\u2019s priced value exceeds credit positions (e.g., due to oracle manipulation or rapid market moves), `getValuesDelta` underflows and reverts. Because `Cellar` relies on this for `totalAssets`, deposits/withdrawals and rebalances that call `totalAssets` or `_getTotalAssetsAndTotalSupply` will revert, freezing user exits until prices normalize."
},
{
"title": "Chainlink answeredInRound not checked in price fetch",
"category": "oracle",
"evidence": "`_getPriceForChainlinkDerivative` only uses `(, _price, , _timestamp, ) = latestRoundData()` and ignores `answeredInRound`/`roundId`.",
"severity": "low",
"locations": [
"contracts/src/modules/price-router/PriceRouter.sol:691",
"contracts/src/modules/price-router/PriceRouter.sol:694"
],
"recommendation": "Read `roundId` and `answeredInRound` from `latestRoundData` and require `answeredInRound >= roundId` and `updatedAt != 0` before accepting the price.",
"exploit_scenario": "If a Chainlink feed starts a new round but hasn\u2019t answered yet, `latestRoundData` can return the previous round\u2019s answer with `answeredInRound < roundId`. Because this check is omitted, the contract may accept stale prices as long as `updatedAt` is within the heartbeat, allowing users to act on outdated pricing during volatility."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x04b7 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x8da5cb5b 00000026: GT 00000027: PUSH2 0x0278 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xc588d8d6 00000031: GT 00000032: PUSH2 0x015c 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xd7d4bf45 0000003c: GT 0000003d: PUSH2 0x00ce 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xeef33eca 00000047: GT 00000048: PUSH2 0x0092 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xeef33eca 00000052: EQ 00000053: PUSH2 0x0bd2 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xef8b30f7 0000005d: EQ 0000005e: PUSH2 0x0a30 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xf04f2707 00000068: EQ 00000069: PUSH2 0x0be1 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0xf2fde38b 00000073: EQ 00000074: PUSH2 0x0bf4 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0xf5743bc9 0000007e: EQ 0000007f: PUSH2 0x0c07 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0xf7b24e08 00000089: EQ 0000008a: PUSH2 0x0c1a 0000008d: JUMPI 0000008e: PUSH1 0x00 00000090: DUP1 00000091: REVERT 00000092: JUMPDEST 00000093: DUP1 00000094: PUSH4 0xd7d4bf45 00000099: EQ 0000009a: PUSH2 0x0af9 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0xd905777e 000000a4: EQ 000000a5: PUSH2 0x0b0c 000000a8: JUMPI 000000a9: DUP1 000000aa: PUSH4 0xdd62ed3e 000000af: EQ 000000b0: PUSH2 0x0b1f 000000b3: JUMPI 000000b4: DUP1 000000b5: PUSH4 0xe1b1acb7 000000ba: EQ 000000bb: PUSH2 0x0b4a 000000be: JUMPI 000000bf: DUP1 000000c0: PUSH4 0xe753e600 000000c5: EQ 000000c6: PUSH2 0x0b5d 000000c9: JUMPI 000000ca: PUSH1 0x00 000000cc: DUP1 000000cd: REVERT 000000ce: JUMPDEST 000000cf: DUP1 000000d0: PUSH4 0xcd82f8b1 000000d5: GT 000000d6: PUSH2 0x0120 000000d9: JUMPI 000000da: DUP1 000000db: PUSH4 0xcd82f8b1 000000e0: EQ 000000e1: PUSH2 0x0a79 000000e4: JUMPI 000000e5: DUP1 000000e6: PUSH4 0xce96cb77 000000eb: EQ 000000ec: PUSH2 0x0a81 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0xcf309012 000000f6: EQ 000000f7: PUSH2 0x0a94 000000fa: JUMPI 000000fb: DUP1 000000fc: PUSH4 0xd1e88404 00000101: EQ 00000102: PUSH2 0x0aa8 00000105: JUMPI 00000106: DUP1 00000107: PUSH4 0xd446bbcc 0000010c: EQ 0000010d: PUSH2 0x0abb 00000110: JUMPI 00000111: DUP1 00000112: PUSH4 0xd505accf 00000117: EQ 00000118: PUSH2 0x0ae6 0000011b: JUMPI 0000011c: PUSH1 0x00 0000011e: DUP1 0000011f: REVERT 00000120: JUMPDEST 00000121: DUP1 00000122: PUSH4 0xc588d8d6 00000127: EQ 00000128: PUSH2 0x0a0a 0000012b: JUMPI 0000012c: DUP1 0000012d: PUSH4 0xc63d75b6 00000132: EQ 00000133: PUSH2 0x0a1d 00000136: JUMPI 00000137: DUP1 00000138: PUSH4 0xc6e6f592 0000013d: EQ 0000013e: PUSH2 0x0a30 00000141: JUMPI 00000142: DUP1 00000143: PUSH4 0xc8e81950 00000148: EQ 00000149: PUSH2 0x0a43 0000014c: JUMPI 0000014d: DUP1 0000014e: PUSH4 0xcbdf33d0 00000153: EQ 00000154: PUSH2 0x0a56 00000157: JUMPI 00000158: PUSH1 0x00 0000015a: DUP1 0000015b: REVERT 0000015c: JUMPDEST 0000015d: DUP1 0000015e: PUSH4 0xa9059cbb 00000163: GT 00000164: PUSH2 0x01f5 00000167: JUMPI 00000168: DUP1 00000169: PUSH4 0xb3d7f6b9 0000016e: GT 0000016f: PUSH2 0x01b9 00000172: JUMPI 00000173: DUP1 00000174: PUSH4 0xb3d7f6b9 00000179: EQ 0000017a: PUSH2 0x09a1 0000017d: JUMPI 0000017e: DUP1 0000017f: PUSH4 0xb460af94 00000184: EQ 00000185: PUSH2 0x09b4 00000188: JUMPI 00000189: DUP1 0000018a: PUSH4 0xb5292a99 0000018f: EQ 00000190: PUSH2 0x09c7 00000193: JUMPI 00000194: DUP1 00000195: PUSH4 0xba087652 0000019a: EQ 0000019b: PUSH2 0x09da 0000019e: JUMPI 0000019f: DUP1 000001a0: PUSH4 0xbf86d690 000001a5: EQ 000001a6: PUSH2 0x09ed 000001a9: JUMPI 000001aa: DUP1 000001ab: PUSH4 0xc244245a 000001b0: EQ 000001b1: PUSH2 0x0a01 000001b4: JUMPI 000001b5: PUSH1 0x00 000001b7: DUP1 000001b8: REVERT 000001b9: JUMPDEST 000001ba: DUP1 000001bb: PUSH4 0xa9059cbb 000001c0: EQ 000001c1: PUSH2 0x094d 000001c4: JUMPI 000001c5: DUP1 000001c6: PUSH4 0xac9650d8 000001cb: EQ 000001cc: PUSH2 0x0960 000001cf: JUMPI 000001d0: DUP1 000001d1: PUSH4 0xb0646e27 000001d6: EQ 000001d7: PUSH2 0x0973 000001da: JUMPI 000001db: DUP1 000001dc: PUSH4 0xb0a75d36 000001e1: EQ 000001e2: PUSH2 0x0986 000001e5: JUMPI 000001e6: DUP1 000001e7: PUSH4 0xb187bd26 000001ec: EQ 000001ed: PUSH2 0x0999 000001f0: JUMPI 000001f1: PUSH1 0x00 000001f3: DUP1 000001f4: REVERT 000001f5: JUMPDEST 000001f6: DUP1 000001f7: PUSH4 0x9959af94 000001fc: GT 000001fd: PUSH2 0x023c 00000200: JUMPI 00000201: DUP1 00000202: PUSH4 0x9959af94 00000207: EQ 00000208: PUSH2 0x08ff 0000020b: JUMPI 0000020c: DUP1 0000020d: PUSH4 0x9c5f00c2 00000212: EQ 00000213: PUSH2 0x0913 00000216: JUMPI 00000217: DUP1 00000218: PUSH4 0xa07bee0b 0000021d: EQ 0000021e: PUSH2 0x092a 00000221: JUMPI 00000222: DUP1 00000223: PUSH4 0xa373e3ff 00000228: EQ 00000229: PUSH2 0x093d 0000022c: JUMPI 0000022d: DUP1 0000022e: PUSH4 0xa8144e48 00000233: EQ 00000234: PUSH2 0x0945 00000237: JUMPI 00000238: PUSH1 0x00 0000023a: DUP1 0000023b: REVERT 0000023c: JUMPDEST 0000023d: DUP1 0000023e: PUSH4 0x8da5cb5b 00000243: EQ 00000244: PUSH2 0x089b 00000247: JUMPI 00000248: DUP1 00000249: PUSH4 0x93bbeac0 0000024e: EQ 0000024f: PUSH2 0x08ae 00000252: JUMPI 00000253: DUP1 00000254: PUSH4 0x94bf804d 00000259: EQ 0000025a: PUSH2 0x08d1 0000025d: JUMPI 0000025e: DUP1 0000025f: PUSH4 0x95d89b41 00000264: EQ 00000265: PUSH2 0x08e4 00000268: JUMPI 00000269: DUP1 0000026a: PUSH4 0x9955a9d4 0000026f: EQ 00000270: PUSH2 0x08ec 00000273: JUMPI 00000274: PUSH1 0x00 00000276: DUP1 00000277: REVERT 00000278: JUMPDEST 00000279: DUP1 0000027a: PUSH4 0x3e3382ba 0000027f: GT 00000280: PUSH2 0x039f 00000283: JUMPI 00000284: DUP1 00000285: PUSH4 0x5e2c576e 0000028a: GT 0000028b: PUSH2 0x031c 0000028e: JUMPI 0000028f: DUP1 00000290: PUSH4 0x71e99dc2 00000295: GT 00000296: PUSH2 0x02e0 00000299: JUMPI 0000029a: DUP1 0000029b: PUSH4 0x71e99dc2 000002a0: EQ 000002a1: PUSH2 0x07ff 000002a4: JUMPI 000002a5: DUP1 000002a6: PUSH4 0x7384504f 000002ab: EQ 000002ac: PUSH2 0x0807 000002af: JUMPI 000002b0: DUP1 000002b1: PUSH4 0x78e0233e 000002b6: EQ 000002b7: PUSH2 0x082a 000002ba: JUMPI 000002bb: DUP1 000002bc: PUSH4 0x7b103999 000002c1: EQ 000002c2: PUSH2 0x0841 000002c5: JUMPI 000002c6: DUP1 000002c7: PUSH4 0x7ecebe00 000002cc: EQ 000002cd: PUSH2 0x0868 000002d0: JUMPI 000002d1: DUP1 000002d2: PUSH4 0x88c4caba 000002d7: EQ 000002d8: PUSH2 0x0888 000002db: JUMPI 000002dc: PUSH1 0x00 000002de: DUP1 000002df: REVERT 000002e0: JUMPDEST 000002e1: DUP1 000002e2: PUSH4 0x5e2c576e 000002e7: EQ 000002e8: PUSH2 0x07a2 000002eb: JUMPI 000002ec: DUP1 000002ed: PUSH4 0x5f6b88a0 000002f2: EQ 000002f3: PUSH2 0x07aa 000002f6: JUMPI 000002f7: DUP1 000002f8: PUSH4 0x6e553f65 000002fd: EQ 000002fe: PUSH2 0x07bd 00000301: JUMPI 00000302: DUP1 00000303: PUSH4 0x6ff1c02a 00000308: EQ 00000309: PUSH2 0x07d0 0000030c: JUMPI 0000030d: DUP1 0000030e: PUSH4 0x70a08231 00000313: EQ 00000314: PUSH2 0x07df 00000317: JUMPI 00000318: PUSH1 0x00 0000031a: DUP1 0000031b: REVERT 0000031c: JUMPDEST 0000031d: DUP1 0000031e: PUSH4 0x501eb4fe 00000323: GT 00000324: PUSH2 0x0363 00000327: JUMPI 00000328: DUP1 00000329: PUSH4 0x501eb4fe 0000032e: EQ 0000032f: PUSH2 0x0739 00000332: JUMPI 00000333: DUP1 00000334: PUSH4 0x530a3714 00000339: EQ 0000033a: PUSH2 0x074c 0000033d: JUMPI 0000033e: DUP1 0000033f: PUSH4 0x575bbce6 00000344: EQ 00000345: PUSH2 0x075f 00000348: JUMPI 00000349: DUP1 0000034a: PUSH4 0x59d20b4e 0000034f: EQ 00000350: PUSH2 0x0772 00000353: JUMPI 00000354: DUP1 00000355: PUSH4 0x5a400d25 0000035a: EQ 0000035b: PUSH2 0x079a 0000035e: JUMPI 0000035f: PUSH1 0x00 00000361: DUP1 00000362: REVERT 00000363: JUMPDEST 00000364: DUP1 00000365: PUSH4 0x3e3382ba 0000036a: EQ 0000036b: PUSH2 0x06ea 0000036e: JUMPI 0000036f: DUP1 00000370: PUSH4 0x402d267d 00000375: EQ 00000376: PUSH2 0x06ff 00000379: JUMPI 0000037a: DUP1 0000037b: PUSH4 0x4c4602da 00000380: EQ 00000381: PUSH2 0x0712 00000384: JUMPI 00000385: DUP1 00000386: PUSH4 0x4cdad506 0000038b: EQ 0000038c: PUSH2 0x0501 0000038f: JUMPI 00000390: DUP1 00000391: PUSH4 0x4e84befe 00000396: EQ 00000397: PUSH2 0x0726 0000039a: JUMPI 0000039b: PUSH1 0x00 0000039d: DUP1 0000039e: REVERT 0000039f: JUMPDEST 000003a0: DUP1 000003a1: PUSH4 0x18d4c143 000003a6: GT 000003a7: PUSH2 0x0438 000003aa: JUMPI 000003ab: DUP1 000003ac: PUSH4 0x33e15be2 000003b1: GT 000003b2: PUSH2 0x03fc 000003b5: JUMPI 000003b6: DUP1 000003b7: PUSH4 0x33e15be2 000003bc: EQ 000003bd: PUSH2 0x065b 000003c0: JUMPI 000003c1: DUP1 000003c2: PUSH4 0x3644e515 000003c7: EQ 000003c8: PUSH2 0x066e 000003cb: JUMPI 000003cc: DUP1 000003cd: PUSH4 0x379e0b13 000003d2: EQ 000003d3: PUSH2 0x0676 000003d6: JUMPI 000003d7: DUP1 000003d8: PUSH4 0x38d52e0f 000003dd: EQ 000003de: PUSH2 0x0689 000003e1: JUMPI 000003e2: DUP1 000003e3: PUSH4 0x3998a681 000003e8: EQ 000003e9: PUSH2 0x06b0 000003ec: JUMPI 000003ed: DUP1 000003ee: PUSH4 0x3d8ab1e5 000003f3: EQ 000003f4: PUSH2 0x06d7 000003f7: JUMPI 000003f8: PUSH1 0x00 000003fa: DUP1 000003fb: REVERT 000003fc: JUMPDEST 000003fd: DUP1 000003fe: PUSH4 0x18d4c143 00000403: EQ 00000404: PUSH2 0x05d1 00000407: JUMPI 00000408: DUP1 00000409: PUSH4 0x196e8285 0000040e: EQ 0000040f: PUSH2 0x05f4 00000412: JUMPI 00000413: DUP1 00000414: PUSH4 0x1ea15502 00000419: EQ 0000041a: PUSH2 0x0607 0000041d: JUMPI 0000041e: DUP1 0000041f: PUSH4 0x23b872dd 00000424: EQ 00000425: PUSH2 0x0621 00000428: JUMPI 00000429: DUP1 0000042a: PUSH4 0x313ce567 0000042f: EQ 00000430: PUSH2 0x0634 00000433: JUMPI 00000434: PUSH1 0x00 00000436: DUP1 00000437: REVERT 00000438: JUMPDEST 00000439: DUP1 0000043a: PUSH4 0x0a28a477 0000043f: GT 00000440: PUSH2 0x047f 00000443: JUMPI 00000444: DUP1 00000445: PUSH4 0x0a28a477 0000044a: EQ 0000044b: PUSH2 0x0537 0000044e: JUMPI 0000044f: DUP1 00000450: PUSH4 0x0a680e18 00000455: EQ 00000456: PUSH2 0x054a 00000459: JUMPI 0000045a: DUP1 0000045b: PUSH4 0x150b7a02 00000460: EQ 00000461: PUSH2 0x0552 00000464: JUMPI 00000465: DUP1 00000466: PUSH4 0x158274a5 0000046b: EQ 0000046c: PUSH2 0x0589 0000046f: JUMPI 00000470: DUP1 00000471: PUSH4 0x18160ddd 00000476: EQ 00000477: PUSH2 0x05c8 0000047a: JUMPI 0000047b: PUSH1 0x00 0000047d: DUP1 0000047e: REVERT 0000047f: JUMPDEST 00000480: DUP1 00000481: PUSH4 0x01e1d114 00000486: EQ 00000487: PUSH2 0x04bc 0000048a: JUMPI 0000048b: DUP1 0000048c: PUSH4 0x06fdde03 00000491: EQ 00000492: PUSH2 0x04d7 00000495: JUMPI 00000496: DUP1 00000497: PUSH4 0x0780fd3a 0000049c: EQ 0000049d: PUSH2 0x04ec 000004a0: JUMPI 000004a1: DUP1 000004a2: PUSH4 0x07a2d13a 000004a7: EQ 000004a8: PUSH2 0x0501 000004ab: JUMPI 000004ac: DUP1 000004ad: PUSH4 0x095ea7b3 000004b2: EQ 000004b3: PUSH2 0x0514 000004b6: JUMPI 000004b7: JUMPDEST 000004b8: PUSH1 0x00 000004ba: DUP1 000004bb: REVERT 000004bc: JUMPDEST 000004bd: PUSH2 0x04c4 000004c0: PUSH2 0x0c22 000004c3: JUMP 000004c4: JUMPDEST 000004c5: PUSH1 0x40 000004c7: MLOAD 000004c8: SWAP1 000004c9: DUP2 000004ca: MSTORE 000004cb: PUSH1 0x20 000004cd: ADD 000004ce: JUMPDEST 000004cf: PUSH1 0x40 000004d1: MLOAD 000004d2: DUP1 000004d3: SWAP2 000004d4: SUB 000004d5: SWAP1 000004d6: RETURN 000004d7: JUMPDEST 000004d8: PUSH2 0x04df 000004db: PUSH2 0x0c6e 000004de: JUMP 000004df: JUMPDEST 000004e0: PUSH1 0x40 000004e2: MLOAD 000004e3: PUSH2 0x04ce 000004e6: SWAP2 000004e7: SWAP1 000004e8: PUSH2 0x4e44 000004eb: JUMP 000004ec: JUMPDEST 000004ed: PUSH2 0x04ff 000004f0: PUSH2 0x04fa 000004f3: CALLDATASIZE 000004f4: PUSH1 0x04 000004f6: PUSH2 0x4e70 000004f9: JUMP 000004fa: JUMPDEST 000004fb: PUSH2 0x0cfc 000004fe: JUMP 000004ff: JUMPDEST 00000500: STOP 00000501: JUMPDEST 00000502: PUSH2 0x04c4 00000505: PUSH2 0x050f 00000508: CALLDATASIZE 00000509: PUSH1 0x04 0000050b: PUSH2 0x4e8b 0000050e: JUMP 0000050f: JUMPDEST 00000510: PUSH2 0x0e67 00000513: JUMP 00000514: JUMPDEST 00000515: PUSH2 0x0527 00000518: PUSH2 0x0522 0000051b: CALLDATASIZE 0000051c: PUSH1 0x04 0000051e: PUSH2 0x4eb9 00000521: JUMP 00000522: JUMPDEST 00000523: PUSH2 0x0e8d 00000526: JUMP 00000527: JUMPDEST 00000528: PUSH1 0x40 0000052a: MLOAD 0000052b: SWAP1 0000052c: ISZERO 0000052d: ISZERO 0000052e: DUP2 0000052f: MSTORE 00000530: PUSH1 0x20 00000532: ADD 00000533: PUSH2 0x04ce 00000536: JUMP 00000537: JUMPDEST 00000538: PUSH2 0x04c4 0000053b: PUSH2 0x0545 0000053e: CALLDATASIZE 0000053f: PUSH1 0x04 00000541: PUSH2 0x4e8b 00000544: JUMP 00000545: JUMPDEST 00000546: PUSH2 0x0efa 00000549: JUMP 0000054a: JUMPDEST 0000054b: PUSH2 0x04ff 0000054e: PUSH2 0x0f18 00000551: JUMP 00000552: JUMPDEST 00000553: PUSH2 0x0570 00000556: PUSH2 0x0560 00000559: CALLDATASIZE 0000055a: PUSH1 0x04 0000055c: PUSH2 0x4fd0 0000055f: JUMP 00000560: JUMPDEST 00000561: PUSH4 0x0a85bd01 00000566: PUSH1 0xe1 00000568: SHL 00000569: SWAP5 0000056a: SWAP4 0000056b: POP 0000056c: POP 0000056d: POP 0000056e: POP 0000056f: JUMP 00000570: JUMPDEST 00000571: PUSH1 0x40 00000573: MLOAD 00000574: PUSH1 0x01 00000576: PUSH1 0x01 00000578: PUSH1 0xe0 0000057a: SHL 0000057b: SUB 0000057c: NOT 0000057d: SWAP1 0000057e: SWAP2 0000057f: AND 00000580: DUP2 00000581: MSTORE 00000582: PUSH1 0x20 00000584: ADD 00000585: PUSH2 0x04ce 00000588: JUMP 00000589: JUMPDEST 0000058a: PUSH2 0x05b0 0000058d: PUSH32 0x000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8 000005ae: DUP2 000005af: JUMP 000005b0: JUMPDEST 000005b1: PUSH1 0x40 000005b3: MLOAD 000005b4: PUSH1 0x01 000005b6: PUSH1 0x01 000005b8: PUSH1 0xa0 000005ba: SHL 000005bb: SUB 000005bc: SWAP1 000005bd: SWAP2 000005be: AND 000005bf: DUP2 000005c0: MSTORE 000005c1: PUSH1 0x20 000005c3: ADD 000005c4: PUSH2 0x04ce 000005c7: JUMP 000005c8: JUMPDEST 000005c9: PUSH2 0x04c4 000005cc: PUSH1 0x02 000005ce: SLOAD 000005cf: DUP2 000005d0: JUMP 000005d1: JUMPDEST 000005d2: PUSH2 0x0527 000005d5: PUSH2 0x05df 000005d8: CALLDATASIZE 000005d9: PUSH1 0x04 000005db: PUSH2 0x503b 000005de: JUMP 000005df: JUMPDEST 000005e0: PUSH1 0x0e 000005e2: PUSH1 0x20 000005e4: MSTORE 000005e5: PUSH1 0x00 000005e7: SWAP1 000005e8: DUP2 000005e9: MSTORE 000005ea: PUSH1 0x40 000005ec: SWAP1 000005ed: KECCAK256 000005ee: SLOAD 000005ef: PUSH1 0xff 000005f1: AND 000005f2: DUP2 000005f3: JUMP 000005f4: JUMPDEST 000005f5: PUSH1 0x13 000005f7: SLOAD 000005f8: PUSH2 0x05b0 000005fb: SWAP1 000005fc: PUSH1 0x01 000005fe: PUSH1 0x01 00000600: PUSH1 0xa0 00000602: SHL 00000603: SUB 00000604: AND 00000605: DUP2 00000606: JUMP 00000607: JUMPDEST 00000608: PUSH2 0x060f 0000060b: PUSH1 0x12 0000060d: DUP2 0000060e: JUMP 0000060f: JUMPDEST 00000610: PUSH1 0x40 00000612: MLOAD 00000613: PUSH1 0xff 00000615: SWAP1 00000616: SWAP2 00000617: AND 00000618: DUP2 00000619: MSTORE 0000061a: PUSH1 0x20 0000061c: ADD 0000061d: PUSH2 0x04ce 00000620: JUMP 00000621: JUMPDEST 00000622: PUSH2 0x0527 00000625: PUSH2 0x062f 00000628: CALLDATASIZE 00000629: PUSH1 0x04 0000062b: PUSH2 0x5058 0000062e: JUMP 0000062f: JUMPDEST 00000630: PUSH2 0x0f94 00000633: JUMP 00000634: JUMPDEST 00000635: PUSH2 0x060f 00000638: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000012 00000659: DUP2 0000065a: JUMP 0000065b: JUMPDEST 0000065c: PUSH2 0x04ff 0000065f: PUSH2 0x0669 00000662: CALLDATASIZE 00000663: PUSH1 0x04 00000665: PUSH2 0x50a7 00000668: JUMP 00000669: JUMPDEST 0000066a: PUSH2 0x1074 0000066d: JUMP 0000066e: JUMPDEST 0000066f: PUSH2 0x04c4 00000672: PUSH2 0x1177 00000675: JUMP 00000676: JUMPDEST 00000677: PUSH2 0x04ff 0000067a: PUSH2 0x0684 0000067d: CALLDATASIZE 0000067e: PUSH1 0x04 00000680: PUSH2 0x50de 00000683: JUMP 00000684: JUMPDEST 00000685: PUSH2 0x11cd 00000688: JUMP 00000689: JUMPDEST 0000068a: PUSH2 0x05b0 0000068d: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000006ae: DUP2 000006af: JUMP 000006b0: JUMPDEST 000006b1: PUSH2 0x06bf 000006b4: PUSH8 0x02c68af0bb140000 000006bd: DUP2 000006be: JUMP 000006bf: JUMPDEST 000006c0: PUSH1 0x40 000006c2: MLOAD 000006c3: PUSH1 0x01 000006c5: PUSH1 0x01 000006c7: PUSH1 0x40 000006c9: SHL 000006ca: SUB 000006cb: SWAP1 000006cc: SWAP2 000006cd: AND 000006ce: DUP2 000006cf: MSTORE 000006d0: PUSH1 0x20 000006d2: ADD 000006d3: PUSH2 0x04ce 000006d6: JUMP 000006d7: JUMPDEST 000006d8: PUSH2 0x04ff 000006db: PUSH2 0x06e5 000006de: CALLDATASIZE 000006df: PUSH1 0x04 000006e1: PUSH2 0x503b 000006e4: JUMP 000006e5: JUMPDEST 000006e6: PUSH2 0x14a5 000006e9: JUMP 000006ea: JUMPDEST 000006eb: PUSH2 0x06f2 000006ee: PUSH2 0x15aa 000006f1: JUMP 000006f2: JUMPDEST 000006f3: PUSH1 0x40 000006f5: MLOAD 000006f6: PUSH2 0x04ce 000006f9: SWAP2 000006fa: SWAP1 000006fb: PUSH2 0x5125 000006fe: JUMP 000006ff: JUMPDEST 00000700: PUSH2 0x04c4 00000703: PUSH2 0x070d 00000706: CALLDATASIZE 00000707: PUSH1 0x04 00000709: PUSH2 0x503b 0000070c: JUMP 0000070d: JUMPDEST 0000070e: PUSH2 0x162e 00000711: JUMP 00000712: JUMPDEST 00000713: PUSH1 0x06 00000715: SLOAD 00000716: PUSH2 0x0527 00000719: SWAP1 0000071a: PUSH1 0x01 0000071c: PUSH1 0xb8 0000071e: SHL 0000071f: SWAP1 00000720: DIV 00000721: PUSH1 0xff 00000723: AND 00000724: DUP2 00000725: JUMP 00000726: JUMPDEST 00000727: PUSH2 0x04ff 0000072a: PUSH2 0x0734 0000072d: CALLDATASIZE 0000072e: PUSH1 0x04 00000730: PUSH2 0x51ba 00000733: JUMP 00000734: JUMPDEST 00000735: PUSH2 0x16d0 00000738: JUMP 00000739: JUMPDEST 0000073a: PUSH2 0x04ff 0000073d: PUSH2 0x0747 00000740: CALLDATASIZE 00000741: PUSH1 0x04 00000743: PUSH2 0x4e70 00000746: JUMP 00000747: JUMPDEST 00000748: PUSH2 0x1875 0000074b: JUMP 0000074c: JUMPDEST 0000074d: PUSH2 0x04ff 00000750: PUSH2 0x075a 00000753: CALLDATASIZE 00000754: PUSH1 0x04 00000756: PUSH2 0x4e8b 00000759: JUMP 0000075a: JUMPDEST 0000075b: PUSH2 0x1974 0000075e: JUMP 0000075f: JUMPDEST 00000760: PUSH2 0x04ff 00000763: PUSH2 0x076d 00000766: CALLDATASIZE 00000767: PUSH1 0x04 00000769: PUSH2 0x51fb 0000076c: JUMP 0000076d: JUMPDEST 0000076e: PUSH2 0x1a1e 00000771: JUMP 00000772: JUMPDEST 00000773: PUSH2 0x0785 00000776: PUSH2 0x0780 00000779: CALLDATASIZE 0000077a: PUSH1 0x04 0000077c: PUSH2 0x4e8b 0000077f: JUMP 00000780: JUMPDEST 00000781: PUSH2 0x1a9a 00000784: JUMP 00000785: JUMPDEST 00000786: PUSH1 0x40 00000788: MLOAD 00000789: PUSH4 0xffffffff 0000078e: SWAP1 0000078f: SWAP2 00000790: AND 00000791: DUP2 00000792: MSTORE 00000793: PUSH1 0x20 00000795: ADD 00000796: PUSH2 0x04ce 00000799: JUMP 0000079a: JUMPDEST 0000079b: PUSH2 0x04c4 0000079e: PUSH1 0x02 000007a0: DUP2 000007a1: JUMP 000007a2: JUMPDEST 000007a3: PUSH2 0x04ff 000007a6: PUSH2 0x1ad4 000007a9: JUMP 000007aa: JUMPDEST 000007ab: PUSH2 0x04ff 000007ae: PUSH2 0x07b8 000007b1: CALLDATASIZE 000007b2: PUSH1 0x04 000007b4: PUSH2 0x503b 000007b7: JUMP 000007b8: JUMPDEST 000007b9: PUSH2 0x1b66 000007bc: JUMP 000007bd: JUMPDEST 000007be: PUSH2 0x04c4 000007c1: PUSH2 0x07cb 000007c4: CALLDATASIZE 000007c5: PUSH1 0x04 000007c7: PUSH2 0x5224 000007ca: JUMP 000007cb: JUMPDEST 000007cc: PUSH2 0x1be7 000007cf: JUMP 000007d0: JUMPDEST 000007d1: PUSH2 0x06bf 000007d4: PUSH8 0x016345785d8a0000 000007dd: DUP2 000007de: JUMP 000007df: JUMPDEST 000007e0: PUSH2 0x04c4 000007e3: PUSH2 0x07ed 000007e6: CALLDATASIZE 000007e7: PUSH1 0x04 000007e9: PUSH2 0x503b 000007ec: JUMP 000007ed: JUMPDEST 000007ee: PUSH1 0x03 000007f0: PUSH1 0x20 000007f2: MSTORE 000007f3: PUSH1 0x00 000007f5: SWAP1 000007f6: DUP2 000007f7: MSTORE 000007f8: PUSH1 0x40 000007fa: SWAP1 000007fb: KECCAK256 000007fc: SLOAD 000007fd: DUP2 000007fe: JUMP 000007ff: JUMPDEST 00000800: PUSH2 0x06f2 00000803: PUSH2 0x1cbb 00000806: JUMP 00000807: JUMPDEST 00000808: PUSH2 0x081a 0000080b: PUSH2 0x0815 0000080e: CALLDATASIZE 0000080f: PUSH1 0x04 00000811: PUSH2 0x4e70 00000814: JUMP 00000815: JUMPDEST 00000816: PUSH2 0x1d18 00000819: JUMP 0000081a: JUMPDEST 0000081b: PUSH1 0x40 0000081d: MLOAD 0000081e: PUSH2 0x04ce 00000821: SWAP5 00000822: SWAP4 00000823: SWAP3 00000824: SWAP2 00000825: SWAP1 00000826: PUSH2 0x5249 00000829: JUMP 0000082a: JUMPDEST 0000082b: PUSH2 0x0832 0000082e: PUSH2 0x1e61 00000831: JUMP 00000832: JUMPDEST 00000833: PUSH1 0x40 00000835: MLOAD 00000836: PUSH2 0x04ce 00000839: SWAP4 0000083a: SWAP3 0000083b: SWAP2 0000083c: SWAP1 0000083d: PUSH2 0x5306 00000840: JUMP 00000841: JUMPDEST 00000842: PUSH2 0x05b0 00000845: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476 00000866: DUP2 00000867: JUMP 00000868: JUMPDEST 00000869: PUSH2 0x04c4 0000086c: PUSH2 0x0876 0000086f: CALLDATASIZE 00000870: PUSH1 0x04 00000872: PUSH2 0x503b 00000875: JUMP 00000876: JUMPDEST 00000877: PUSH1 0x05 00000879: PUSH1 0x20 0000087b: MSTORE 0000087c: PUSH1 0x00 0000087e: SWAP1 0000087f: DUP2 00000880: MSTORE 00000881: PUSH1 0x40 00000883: SWAP1 00000884: KECCAK256 00000885: SLOAD 00000886: DUP2 00000887: JUMP 00000888: JUMPDEST 00000889: PUSH1 0x11 0000088b: SLOAD 0000088c: PUSH2 0x05b0 0000088f: SWAP1 00000890: PUSH1 0x01 00000892: PUSH1 0x01 00000894: PUSH1 0xa0 00000896: SHL 00000897: SUB 00000898: AND 00000899: DUP2 0000089a: JUMP 0000089b: JUMPDEST 0000089c: PUSH1 0x06 0000089e: SLOAD 0000089f: PUSH2 0x05b0 000008a2: SWAP1 000008a3: PUSH1 0x01 000008a5: PUSH1 0x01 000008a7: PUSH1 0xa0 000008a9: SHL 000008aa: SUB 000008ab: AND 000008ac: DUP2 000008ad: JUMP 000008ae: JUMPDEST 000008af: PUSH2 0x0527 000008b2: PUSH2 0x08bc 000008b5: CALLDATASIZE 000008b6: PUSH1 0x04 000008b8: PUSH2 0x4e8b 000008bb: JUMP 000008bc: JUMPDEST 000008bd: PUSH1 0x0b 000008bf: PUSH1 0x20 000008c1: MSTORE 000008c2: PUSH1 0x00 000008c4: SWAP1 000008c5: DUP2 000008c6: MSTORE 000008c7: PUSH1 0x40 000008c9: SWAP1 000008ca: KECCAK256 000008cb: SLOAD 000008cc: PUSH1 0xff 000008ce: AND 000008cf: DUP2 000008d0: JUMP 000008d1: JUMPDEST 000008d2: PUSH2 0x04c4 000008d5: PUSH2 0x08df 000008d8: CALLDATASIZE 000008d9: PUSH1 0x04 000008db: PUSH2 0x5224 000008de: JUMP 000008df: JUMPDEST 000008e0: PUSH2 0x2152 000008e3: JUMP 000008e4: JUMPDEST 000008e5: PUSH2 0x04df 000008e8: PUSH2 0x2211 000008eb: JUMP 000008ec: JUMPDEST 000008ed: PUSH2 0x04ff 000008f0: PUSH2 0x08fa 000008f3: CALLDATASIZE 000008f4: PUSH1 0x04 000008f6: PUSH2 0x5371 000008f9: JUMP 000008fa: JUMPDEST 000008fb: PUSH2 0x221e 000008fe: JUMP 000008ff: JUMPDEST 00000900: PUSH1 0x06 00000902: SLOAD 00000903: PUSH2 0x0527 00000906: SWAP1 00000907: PUSH1 0x01 00000909: PUSH1 0xb0 0000090b: SHL 0000090c: SWAP1 0000090d: DIV 0000090e: PUSH1 0xff 00000910: AND 00000911: DUP2 00000912: JUMP 00000913: JUMPDEST 00000914: PUSH1 0x06 00000916: SLOAD 00000917: PUSH2 0x0785 0000091a: SWAP1 0000091b: PUSH1 0x01 0000091d: PUSH1 0xc0 0000091f: SHL 00000920: SWAP1 00000921: DIV 00000922: PUSH4 0xffffffff 00000927: AND 00000928: DUP2 00000929: JUMP 0000092a: JUMPDEST 0000092b: PUSH2 0x04ff 0000092e: PUSH2 0x0938 00000931: CALLDATASIZE 00000932: PUSH1 0x04 00000934: PUSH2 0x50de 00000937: JUMP 00000938: JUMPDEST 00000939: PUSH2 0x250f 0000093c: JUMP 0000093d: JUMPDEST 0000093e: PUSH2 0x04ff 00000941: PUSH2 0x2693 00000944: JUMP 00000945: JUMPDEST 00000946: PUSH2 0x04c4 00000949: PUSH2 0x26f6 0000094c: JUMP 0000094d: JUMPDEST 0000094e: PUSH2 0x0527 00000951: PUSH2 0x095b 00000954: CALLDATASIZE 00000955: PUSH1 0x04 00000957: PUSH2 0x4eb9 0000095a: JUMP 0000095b: JUMPDEST 0000095c: PUSH2 0x2734 0000095f: JUMP 00000960: JUMPDEST 00000961: PUSH2 0x04ff 00000964: PUSH2 0x096e 00000967: CALLDATASIZE 00000968: PUSH1 0x04 0000096a: PUSH2 0x51ba 0000096d: JUMP 0000096e: JUMPDEST 0000096f: PUSH2 0x279a 00000972: JUMP 00000973: JUMPDEST 00000974: PUSH2 0x04ff 00000977: PUSH2 0x0981 0000097a: CALLDATASIZE 0000097b: PUSH1 0x04 0000097d: PUSH2 0x51fb 00000980: JUMP 00000981: JUMPDEST 00000982: PUSH2 0x2821 00000985: JUMP 00000986: JUMPDEST 00000987: PUSH2 0x04ff 0000098a: PUSH2 0x0994 0000098d: CALLDATASIZE 0000098e: PUSH1 0x04 00000990: PUSH2 0x503b 00000993: JUMP 00000994: JUMPDEST 00000995: PUSH2 0x287b 00000998: JUMP 00000999: JUMPDEST 0000099a: PUSH2 0x0527 0000099d: PUSH2 0x290e 000009a0: JUMP 000009a1: JUMPDEST 000009a2: PUSH2 0x04c4 000009a5: PUSH2 0x09af 000009a8: CALLDATASIZE 000009a9: PUSH1 0x04 000009ab: PUSH2 0x4e8b 000009ae: JUMP 000009af: JUMPDEST 000009b0: PUSH2 0x29b0 000009b3: JUMP 000009b4: JUMPDEST 000009b5: PUSH2 0x04c4 000009b8: PUSH2 0x09c2 000009bb: CALLDATASIZE 000009bc: PUSH1 0x04 000009be: PUSH2 0x53e1 000009c1: JUMP 000009c2: JUMPDEST 000009c3: PUSH2 0x29ce 000009c6: JUMP 000009c7: JUMPDEST 000009c8: PUSH2 0x04ff 000009cb: PUSH2 0x09d5 000009ce: CALLDATASIZE 000009cf: PUSH1 0x04 000009d1: PUSH2 0x5418 000009d4: JUMP 000009d5: JUMPDEST 000009d6: PUSH2 0x2a4d 000009d9: JUMP 000009da: JUMPDEST 000009db: PUSH2 0x04c4 000009de: PUSH2 0x09e8 000009e1: CALLDATASIZE 000009e2: PUSH1 0x04 000009e4: PUSH2 0x53e1 000009e7: JUMP 000009e8: JUMPDEST 000009e9: PUSH2 0x2b13 000009ec: JUMP 000009ed: JUMPDEST 000009ee: PUSH1 0x06 000009f0: SLOAD 000009f1: PUSH2 0x0527 000009f4: SWAP1 000009f5: PUSH1 0x01 000009f7: PUSH1 0xa8 000009f9: SHL 000009fa: SWAP1 000009fb: DIV 000009fc: PUSH1 0xff 000009fe: AND 000009ff: DUP2 00000a00: JUMP 00000a01: JUMPDEST 00000a02: PUSH2 0x04c4 00000a05: PUSH1 0x12 00000a07: SLOAD 00000a08: DUP2 00000a09: JUMP 00000a0a: JUMPDEST 00000a0b: PUSH2 0x04ff 00000a0e: PUSH2 0x0a18 00000a11: CALLDATASIZE 00000a12: PUSH1 0x04 00000a14: PUSH2 0x5441 00000a17: JUMP 00000a18: JUMPDEST 00000a19: PUSH2 0x2b9d 00000a1c: JUMP 00000a1d: JUMPDEST 00000a1e: PUSH2 0x04c4 00000a21: PUSH2 0x0a2b 00000a24: CALLDATASIZE 00000a25: PUSH1 0x04 00000a27: PUSH2 0x503b 00000a2a: JUMP 00000a2b: JUMPDEST 00000a2c: PUSH2 0x2c8a 00000a2f: JUMP 00000a30: JUMPDEST 00000a31: PUSH2 0x04c4 00000a34: PUSH2 0x0a3e 00000a37: CALLDATASIZE 00000a38: PUSH1 0x04 00000a3a: PUSH2 0x4e8b 00000a3d: JUMP 00000a3e: JUMPDEST 00000a3f: PUSH2 0x2d02 00000a42: JUMP 00000a43: JUMPDEST 00000a44: PUSH2 0x04ff 00000a47: PUSH2 0x0a51 00000a4a: CALLDATASIZE 00000a4b: PUSH1 0x04 00000a4d: PUSH2 0x5224 00000a50: JUMP 00000a51: JUMPDEST 00000a52: PUSH2 0x2d20 00000a55: JUMP 00000a56: JUMPDEST 00000a57: PUSH2 0x0527 00000a5a: PUSH2 0x0a64 00000a5d: CALLDATASIZE 00000a5e: PUSH1 0x04 00000a60: PUSH2 0x4e70 00000a63: JUMP 00000a64: JUMPDEST 00000a65: PUSH1 0x0d 00000a67: PUSH1 0x20 00000a69: MSTORE 00000a6a: PUSH1 0x00 00000a6c: SWAP1 00000a6d: DUP2 00000a6e: MSTORE 00000a6f: PUSH1 0x40 00000a71: SWAP1 00000a72: KECCAK256 00000a73: SLOAD 00000a74: PUSH1 0xff 00000a76: AND 00000a77: DUP2 00000a78: JUMP 00000a79: JUMPDEST 00000a7a: PUSH2 0x04c4 00000a7d: PUSH1 0x00 00000a7f: DUP2 00000a80: JUMP 00000a81: JUMPDEST 00000a82: PUSH2 0x04c4 00000a85: PUSH2 0x0a8f 00000a88: CALLDATASIZE 00000a89: PUSH1 0x04 00000a8b: PUSH2 0x503b 00000a8e: JUMP 00000a8f: JUMPDEST 00000a90: PUSH2 0x2da2 00000a93: JUMP 00000a94: JUMPDEST 00000a95: PUSH1 0x06 00000a97: SLOAD 00000a98: PUSH2 0x0527 00000a9b: SWAP1 00000a9c: PUSH1 0x01 00000a9e: PUSH1 0xa0 00000aa0: SHL 00000aa1: SWAP1 00000aa2: DIV 00000aa3: PUSH1 0xff 00000aa5: AND 00000aa6: DUP2 00000aa7: JUMP 00000aa8: JUMPDEST 00000aa9: PUSH2 0x04ff 00000aac: PUSH2 0x0ab6 00000aaf: CALLDATASIZE 00000ab0: PUSH1 0x04 00000ab2: PUSH2 0x4e70 00000ab5: JUMP 00000ab6: JUMPDEST 00000ab7: PUSH2 0x2dda 00000aba: JUMP 00000abb: JUMPDEST 00000abc: PUSH1 0x07 00000abe: SLOAD 00000abf: PUSH2 0x0ace 00000ac2: SWAP1 00000ac3: PUSH1 0x01 00000ac5: PUSH1 0x01 00000ac7: PUSH1 0xc0 00000ac9: SHL 00000aca: SUB 00000acb: AND 00000acc: DUP2 00000acd: JUMP 00000ace: JUMPDEST 00000acf: PUSH1 0x40 00000ad1: MLOAD 00000ad2: PUSH1 0x01 00000ad4: PUSH1 0x01 00000ad6: PUSH1 0xc0 00000ad8: SHL 00000ad9: SUB 00000ada: SWAP1 00000adb: SWAP2 00000adc: AND 00000add: DUP2 00000ade: MSTORE 00000adf: PUSH1 0x20 00000ae1: ADD 00000ae2: PUSH2 0x04ce 00000ae5: JUMP 00000ae6: JUMPDEST 00000ae7: PUSH2 0x04ff 00000aea: PUSH2 0x0af4 00000aed: CALLDATASIZE 00000aee: PUSH1 0x04 00000af0: PUSH2 0x5487 00000af3: JUMP 00000af4: JUMPDEST 00000af5: PUSH2 0x2e58 00000af8: JUMP 00000af9: JUMPDEST 00000afa: PUSH1 0x08 00000afc: SLOAD 00000afd: PUSH2 0x05b0 00000b00: SWAP1 00000b01: PUSH1 0x01 00000b03: PUSH1 0x01 00000b05: PUSH1 0xa0 00000b07: SHL 00000b08: SUB 00000b09: AND 00000b0a: DUP2 00000b0b: JUMP 00000b0c: JUMPDEST 00000b0d: PUSH2 0x04c4 00000b10: PUSH2 0x0b1a 00000b13: CALLDATASIZE 00000b14: PUSH1 0x04 00000b16: PUSH2 0x503b 00000b19: JUMP 00000b1a: JUMPDEST 00000b1b: PUSH2 0x309c 00000b1e: JUMP 00000b1f: JUMPDEST 00000b20: PUSH2 0x04c4 00000b23: PUSH2 0x0b2d 00000b26: CALLDATASIZE 00000b27: PUSH1 0x04 00000b29: PUSH2 0x54f8 00000b2c: JUMP 00000b2d: JUMPDEST 00000b2e: PUSH1 0x04 00000b30: PUSH1 0x20 00000b32: SWAP1 00000b33: DUP2 00000b34: MSTORE 00000b35: PUSH1 0x00 00000b37: SWAP3 00000b38: DUP4 00000b39: MSTORE 00000b3a: PUSH1 0x40 00000b3c: DUP1 00000b3d: DUP5 00000b3e: KECCAK256 00000b3f: SWAP1 00000b40: SWAP2 00000b41: MSTORE 00000b42: SWAP1 00000b43: DUP3 00000b44: MSTORE 00000b45: SWAP1 00000b46: KECCAK256 00000b47: SLOAD 00000b48: DUP2 00000b49: JUMP 00000b4a: JUMPDEST 00000b4b: PUSH2 0x0785 00000b4e: PUSH2 0x0b58 00000b51: CALLDATASIZE 00000b52: PUSH1 0x04 00000b54: PUSH2 0x4e8b 00000b57: JUMP 00000b58: JUMPDEST 00000b59: PUSH2 0x30d4 00000b5c: JUMP 00000b5d: JUMPDEST 00000b5e: PUSH1 0x0f 00000b60: SLOAD 00000b61: PUSH1 0x10 00000b63: SLOAD 00000b64: PUSH2 0x0b99 00000b67: SWAP2 00000b68: PUSH1 0x01 00000b6a: PUSH1 0x01 00000b6c: PUSH1 0x40 00000b6e: SHL 00000b6f: SUB 00000b70: DUP1 00000b71: DUP3 00000b72: AND 00000b73: SWAP3 00000b74: PUSH9 0x010000000000000000 00000b7e: DUP4 00000b7f: DIV 00000b80: DUP3 00000b81: AND 00000b82: SWAP3 00000b83: PUSH1 0x01 00000b85: PUSH1 0x80 00000b87: SHL 00000b88: SWAP1 00000b89: DIV 00000b8a: SWAP1 00000b8b: SWAP2 00000b8c: AND 00000b8d: SWAP1 00000b8e: PUSH1 0x01 00000b90: PUSH1 0x01 00000b92: PUSH1 0xa0 00000b94: SHL 00000b95: SUB 00000b96: AND 00000b97: DUP5 00000b98: JUMP 00000b99: JUMPDEST 00000b9a: PUSH1 0x40 00000b9c: DUP1 00000b9d: MLOAD 00000b9e: PUSH1 0x01 00000ba0: PUSH1 0x01 00000ba2: PUSH1 0x40 00000ba4: SHL 00000ba5: SUB 00000ba6: SWAP6 00000ba7: DUP7 00000ba8: AND 00000ba9: DUP2 00000baa: MSTORE 00000bab: SWAP4 00000bac: DUP6 00000bad: AND 00000bae: PUSH1 0x20 00000bb0: DUP6 00000bb1: ADD 00000bb2: MSTORE 00000bb3: SWAP2 00000bb4: SWAP1 00000bb5: SWAP4 00000bb6: AND 00000bb7: SWAP1 00000bb8: DUP3 00000bb9: ADD 00000bba: MSTORE 00000bbb: PUSH1 0x01 00000bbd: PUSH1 0x01 00000bbf: PUSH1 0xa0 00000bc1: SHL 00000bc2: SUB 00000bc3: SWAP1 00000bc4: SWAP2 00000bc5: AND 00000bc6: PUSH1 0x60 00000bc8: DUP3 00000bc9: ADD 00000bca: MSTORE 00000bcb: PUSH1 0x80 00000bcd: ADD 00000bce: PUSH2 0x04ce 00000bd1: JUMP 00000bd2: JUMPDEST 00000bd3: PUSH2 0x06bf 00000bd6: PUSH8 0x0de0b6b3a7640000 00000bdf: DUP2 00000be0: JUMP 00000be1: JUMPDEST 00000be2: PUSH2 0x04ff 00000be5: PUSH2 0x0bef 00000be8: CALLDATASIZE 00000be9: PUSH1 0x04 00000beb: PUSH2 0x5526 00000bee: JUMP 00000bef: JUMPDEST 00000bf0: PUSH2 0x30e4 00000bf3: JUMP 00000bf4: JUMPDEST 00000bf5: PUSH2 0x04ff 00000bf8: PUSH2 0x0c02 00000bfb: CALLDATASIZE 00000bfc: PUSH1 0x04 00000bfe: PUSH2 0x503b 00000c01: JUMP 00000c02: JUMPDEST 00000c03: PUSH2 0x322e 00000c06: JUMP 00000c07: JUMPDEST 00000c08: PUSH2 0x04ff 00000c0b: PUSH2 0x0c15 00000c0e: CALLDATASIZE 00000c0f: PUSH1 0x04 00000c11: PUSH2 0x5224 00000c14: JUMP 00000c15: JUMPDEST 00000c16: PUSH2 0x32a4 00000c19: JUMP 00000c1a: JUMPDEST 00000c1b: PUSH2 0x04c4 00000c1e: PUSH1 0x20 00000c20: DUP2 00000c21: JUMP 00000c22: JUMPDEST 00000c23: PUSH1 0x00 00000c25: PUSH2 0x0c2c 00000c28: PUSH2 0x342e 00000c2b: JUMP 00000c2c: JUMPDEST 00000c2d: PUSH1 0x06 00000c2f: SLOAD 00000c30: PUSH1 0x01 00000c32: PUSH1 0xa0 00000c34: SHL 00000c35: SWAP1 00000c36: DIV 00000c37: PUSH1 0xff 00000c39: AND 00000c3a: ISZERO 00000c3b: PUSH2 0x0c5f 00000c3e: JUMPI 00000c3f: PUSH1 0x40 00000c41: MLOAD 00000c42: PUSH3 0x461bcd 00000c46: PUSH1 0xe5 00000c48: SHL 00000c49: DUP2 00000c4a: MSTORE 00000c4b: PUSH1 0x04 00000c4d: ADD 00000c4e: PUSH2 0x0c56 00000c51: SWAP1 00000c52: PUSH2 0x5616 00000c55: JUMP 00000c56: JUMPDEST 00000c57: PUSH1 0x40 00000c59: MLOAD 00000c5a: DUP1 00000c5b: SWAP2 00000c5c: SUB 00000c5d: SWAP1 00000c5e: REVERT 00000c5f: JUMPDEST 00000c60: PUSH2 0x0c69 00000c63: PUSH1 0x00 00000c65: PUSH2 0x34e7 00000c68: JUMP 00000c69: JUMPDEST 00000c6a: SWAP1 00000c6b: POP 00000c6c: SWAP1 00000c6d: JUMP 00000c6e: JUMPDEST 00000c6f: PUSH1 0x00 00000c71: DUP1 00000c72: SLOAD 00000c73: PUSH2 0x0c7b 00000c76: SWAP1 00000c77: PUSH2 0x563a 00000c7a: JUMP 00000c7b: JUMPDEST 00000c7c: DUP1 00000c7d: PUSH1 0x1f 00000c7f: ADD 00000c80: PUSH1 0x20 00000c82: DUP1 00000c83: SWAP2 00000c84: DIV 00000c85: MUL 00000c86: PUSH1 0x20 00000c88: ADD 00000c89: PUSH1 0x40 00000c8b: MLOAD 00000c8c: SWAP1 00000c8d: DUP2 00000c8e: ADD 00000c8f: PUSH1 0x40 00000c91: MSTORE 00000c92: DUP1 00000c93: SWAP3 00000c94: SWAP2 00000c95: SWAP1 00000c96: DUP2 00000c97: DUP2 00000c98: MSTORE 00000c99: PUSH1 0x20 00000c9b: ADD 00000c9c: DUP3 00000c9d: DUP1 00000c9e: SLOAD 00000c9f: PUSH2 0x0ca7 00000ca2: SWAP1 00000ca3: PUSH2 0x563a 00000ca6: JUMP 00000ca7: JUMPDEST 00000ca8: DUP1 00000ca9: ISZERO 00000caa: PUSH2 0x0cf4 00000cad: JUMPI 00000cae: DUP1 00000caf: PUSH1 0x1f 00000cb1: LT 00000cb2: PUSH2 0x0cc9 00000cb5: JUMPI 00000cb6: PUSH2 0x0100 00000cb9: DUP1 00000cba: DUP4 00000cbb: SLOAD 00000cbc: DIV 00000cbd: MUL 00000cbe: DUP4 00000cbf: MSTORE 00000cc0: SWAP2 00000cc1: PUSH1 0x20 00000cc3: ADD 00000cc4: SWAP2 00000cc5: PUSH2 0x0cf4 00000cc8: JUMP 00000cc9: JUMPDEST 00000cca: DUP3 00000ccb: ADD 00000ccc: SWAP2 00000ccd: SWAP1 00000cce: PUSH1 0x00 00000cd0: MSTORE 00000cd1: PUSH1 0x20 00000cd3: PUSH1 0x00 00000cd5: KECCAK256 00000cd6: SWAP1 00000cd7: JUMPDEST 00000cd8: DUP2 00000cd9: SLOAD 00000cda: DUP2 00000cdb: MSTORE 00000cdc: SWAP1 00000cdd: PUSH1 0x01 00000cdf: ADD 00000ce0: SWAP1 00000ce1: PUSH1 0x20 00000ce3: ADD 00000ce4: DUP1 00000ce5: DUP4 00000ce6: GT 00000ce7: PUSH2 0x0cd7 00000cea: JUMPI 00000ceb: DUP3 00000cec: SWAP1 00000ced: SUB 00000cee: PUSH1 0x1f 00000cf0: AND 00000cf1: DUP3 00000cf2: ADD 00000cf3: SWAP2 00000cf4: JUMPDEST 00000cf5: POP 00000cf6: POP 00000cf7: POP 00000cf8: POP 00000cf9: POP 00000cfa: DUP2 00000cfb: JUMP 00000cfc: JUMPDEST 00000cfd: PUSH1 0x06 00000cff: SLOAD 00000d00: PUSH1 0x01 00000d02: PUSH1 0x01 00000d04: PUSH1 0xa0 00000d06: SHL 00000d07: SUB 00000d08: AND 00000d09: CALLER 00000d0a: EQ 00000d0b: PUSH2 0x0d26 00000d0e: JUMPI 00000d0f: PUSH1 0x40 00000d11: MLOAD 00000d12: PUSH3 0x461bcd 00000d16: PUSH1 0xe5 00000d18: SHL 00000d19: DUP2 00000d1a: MSTORE 00000d1b: PUSH1 0x04 00000d1d: ADD 00000d1e: PUSH2 0x0c56 00000d21: SWAP1 00000d22: PUSH2 0x5674 00000d25: JUMP 00000d26: JUMPDEST 00000d27: PUSH4 0xffffffff 00000d2c: DUP2 00000d2d: AND 00000d2e: PUSH1 0x00 00000d30: SWAP1 00000d31: DUP2 00000d32: MSTORE 00000d33: PUSH1 0x0b 00000d35: PUSH1 0x20 00000d37: MSTORE 00000d38: PUSH1 0x40 00000d3a: SWAP1 00000d3b: KECCAK256 00000d3c: SLOAD 00000d3d: PUSH1 0xff 00000d3f: AND 00000d40: PUSH2 0x0d64 00000d43: JUMPI 00000d44: PUSH1 0x40 00000d46: MLOAD 00000d47: PUSH4 0x70abe859 00000d4c: PUSH1 0xe0 00000d4e: SHL 00000d4f: DUP2 00000d50: MSTORE 00000d51: PUSH4 0xffffffff 00000d56: DUP3 00000d57: AND 00000d58: PUSH1 0x04 00000d5a: DUP3 00000d5b: ADD 00000d5c: MSTORE 00000d5d: PUSH1 0x24 00000d5f: ADD 00000d60: PUSH2 0x0c56 00000d63: JUMP 00000d64: JUMPDEST 00000d65: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000d86: PUSH1 0x01 00000d88: PUSH1 0x01 00000d8a: PUSH1 0xa0 00000d8c: SHL 00000d8d: SUB 00000d8e: AND 00000d8f: PUSH2 0x0d97 00000d92: DUP3 00000d93: PUSH2 0x39a9 00000d96: JUMP 00000d97: JUMPDEST 00000d98: PUSH1 0x01 00000d9a: PUSH1 0x01 00000d9c: PUSH1 0xa0 00000d9e: SHL 00000d9f: SUB 00000da0: AND 00000da1: EQ 00000da2: PUSH2 0x0dfb 00000da5: JUMPI 00000da6: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000dc7: PUSH2 0x0dcf 00000dca: DUP3 00000dcb: PUSH2 0x39a9 00000dce: JUMP 00000dcf: JUMPDEST 00000dd0: PUSH1 0x40 00000dd2: MLOAD 00000dd3: PUSH4 0x298473c7 00000dd8: PUSH1 0xe1 00000dda: SHL 00000ddb: DUP2 00000ddc: MSTORE 00000ddd: PUSH1 0x01 00000ddf: PUSH1 0x01 00000de1: PUSH1 0xa0 00000de3: SHL 00000de4: SUB 00000de5: SWAP3 00000de6: DUP4 00000de7: AND 00000de8: PUSH1 0x04 00000dea: DUP3 00000deb: ADD 00000dec: MSTORE 00000ded: SWAP2 00000dee: AND 00000def: PUSH1 0x24 00000df1: DUP3 00000df2: ADD 00000df3: MSTORE 00000df4: PUSH1 0x44 00000df6: ADD 00000df7: PUSH2 0x0c56 00000dfa: JUMP 00000dfb: JUMPDEST 00000dfc: PUSH4 0xffffffff 00000e01: DUP2 00000e02: AND 00000e03: PUSH1 0x00 00000e05: SWAP1 00000e06: DUP2 00000e07: MSTORE 00000e08: PUSH1 0x0c 00000e0a: PUSH1 0x20 00000e0c: MSTORE 00000e0d: PUSH1 0x40 00000e0f: SWAP1 00000e10: KECCAK256 00000e11: SLOAD 00000e12: PUSH1 0x01 00000e14: PUSH1 0xa0 00000e16: SHL 00000e17: SWAP1 00000e18: DIV 00000e19: PUSH1 0xff 00000e1b: AND 00000e1c: ISZERO 00000e1d: PUSH2 0x0e41 00000e20: JUMPI 00000e21: PUSH1 0x40 00000e23: MLOAD 00000e24: PUSH4 0x0a42c0f9 00000e29: PUSH1 0xe4 00000e2b: SHL 00000e2c: DUP2 00000e2d: MSTORE 00000e2e: PUSH4 0xffffffff 00000e33: DUP3 00000e34: AND 00000e35: PUSH1 0x04 00000e37: DUP3 00000e38: ADD 00000e39: MSTORE 00000e3a: PUSH1 0x24 00000e3c: ADD 00000e3d: PUSH2 0x0c56 00000e40: JUMP 00000e41: JUMPDEST 00000e42: PUSH1 0x06 00000e44: DUP1 00000e45: SLOAD 00000e46: PUSH4 0xffffffff 00000e4b: SWAP1 00000e4c: SWAP3 00000e4d: AND 00000e4e: PUSH1 0x01 00000e50: PUSH1 0xc0 00000e52: SHL 00000e53: MUL 00000e54: PUSH4 0xffffffff 00000e59: PUSH1 0xc0 00000e5b: SHL 00000e5c: NOT 00000e5d: SWAP1 00000e5e: SWAP3 00000e5f: AND 00000e60: SWAP2 00000e61: SWAP1 00000e62: SWAP2 00000e63: OR 00000e64: SWAP1 00000e65: SSTORE 00000e66: JUMP 00000e67: JUMPDEST 00000e68: PUSH1 0x00 00000e6a: DUP1 00000e6b: PUSH1 0x00 00000e6d: PUSH2 0x0e76 00000e70: PUSH1 0x00 00000e72: PUSH2 0x3a39 00000e75: JUMP 00000e76: JUMPDEST 00000e77: SWAP2 00000e78: POP 00000e79: SWAP2 00000e7a: POP 00000e7b: PUSH2 0x0e85 00000e7e: DUP5 00000e7f: DUP4 00000e80: DUP4 00000e81: PUSH2 0x3b53 00000e84: JUMP 00000e85: JUMPDEST 00000e86: SWAP5 00000e87: SWAP4 00000e88: POP 00000e89: POP 00000e8a: POP 00000e8b: POP 00000e8c: JUMP 00000e8d: JUMPDEST 00000e8e: CALLER 00000e8f: PUSH1 0x00 00000e91: DUP2 00000e92: DUP2 00000e93: MSTORE 00000e94: PUSH1 0x04 00000e96: PUSH1 0x20 00000e98: SWAP1 00000e99: DUP2 00000e9a: MSTORE 00000e9b: PUSH1 0x40 00000e9d: DUP1 00000e9e: DUP4 00000e9f: KECCAK256 00000ea0: PUSH1 0x01 00000ea2: PUSH1 0x01 00000ea4: PUSH1 0xa0 00000ea6: SHL 00000ea7: SUB 00000ea8: DUP8 00000ea9: AND 00000eaa: DUP1 00000eab: DUP6 00000eac: MSTORE 00000ead: SWAP3 00000eae: MSTORE 00000eaf: DUP1 00000eb0: DUP4 00000eb1: KECCAK256 00000eb2: DUP6 00000eb3: SWAP1 00000eb4: SSTORE 00000eb5: MLOAD 00000eb6: SWAP2 00000eb7: SWAP3 00000eb8: SWAP1 00000eb9: SWAP2 00000eba: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00000edb: SWAP1 00000edc: PUSH2 0x0ee8 00000edf: SWAP1 00000ee0: DUP7 00000ee1: DUP2 00000ee2: MSTORE 00000ee3: PUSH1 0x20 00000ee5: ADD 00000ee6: SWAP1 00000ee7: JUMP 00000ee8: JUMPDEST 00000ee9: PUSH1 0x40 00000eeb: MLOAD 00000eec: DUP1 00000eed: SWAP2 00000eee: SUB 00000eef: SWAP1 00000ef0: LOG3 00000ef1: POP 00000ef2: PUSH1 0x01 00000ef4: JUMPDEST 00000ef5: SWAP3 00000ef6: SWAP2 00000ef7: POP 00000ef8: POP 00000ef9: JUMP 00000efa: JUMPDEST 00000efb: PUSH1 0x00 00000efd: DUP1 00000efe: PUSH1 0x00 00000f00: PUSH2 0x0f09 00000f03: PUSH1 0x00 00000f05: PUSH2 0x3a39 00000f08: JUMP 00000f09: JUMPDEST 00000f0a: SWAP2 00000f0b: POP 00000f0c: SWAP2 00000f0d: POP 00000f0e: PUSH2 0x0e85 00000f11: DUP5 00000f12: DUP4 00000f13: DUP4 00000f14: PUSH2 0x3b60 00000f17: JUMP 00000f18: JUMPDEST 00000f19: PUSH1 0x06 00000f1b: SLOAD 00000f1c: PUSH1 0x01 00000f1e: PUSH1 0x01 00000f20: PUSH1 0xa0 00000f22: SHL 00000f23: SUB 00000f24: AND 00000f25: CALLER 00000f26: EQ 00000f27: PUSH2 0x0f42 00000f2a: JUMPI 00000f2b: PUSH1 0x40 00000f2d: MLOAD 00000f2e: PUSH3 0x461bcd 00000f32: PUSH1 0xe5 00000f34: SHL 00000f35: DUP2 00000f36: MSTORE 00000f37: PUSH1 0x04 00000f39: ADD 00000f3a: PUSH2 0x0c56 00000f3d: SWAP1 00000f3e: PUSH2 0x5674 00000f41: JUMP 00000f42: JUMPDEST 00000f43: PUSH2 0x0f4a 00000f46: PUSH2 0x3b6d 00000f49: JUMP 00000f4a: JUMPDEST 00000f4b: PUSH1 0x06 00000f4d: DUP1 00000f4e: SLOAD 00000f4f: PUSH1 0xff 00000f51: PUSH1 0xa8 00000f53: SHL 00000f54: NOT 00000f55: AND 00000f56: PUSH1 0x01 00000f58: PUSH1 0xa8 00000f5a: SHL 00000f5b: OR 00000f5c: SWAP1 00000f5d: SSTORE 00000f5e: PUSH1 0x40 00000f60: MLOAD 00000f61: PUSH1 0x01 00000f63: DUP2 00000f64: MSTORE 00000f65: PUSH32 0xb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c 00000f86: SWAP1 00000f87: PUSH1 0x20 00000f89: ADD 00000f8a: JUMPDEST 00000f8b: PUSH1 0x40 00000f8d: MLOAD 00000f8e: DUP1 00000f8f: SWAP2 00000f90: SUB 00000f91: SWAP1 00000f92: LOG1 00000f93: JUMP 00000f94: JUMPDEST 00000f95: PUSH1 0x01 00000f97: PUSH1 0x01 00000f99: PUSH1 0xa0 00000f9b: SHL 00000f9c: SUB 00000f9d: DUP4 00000f9e: AND 00000f9f: PUSH1 0x00 00000fa1: SWAP1 00000fa2: DUP2 00000fa3: MSTORE 00000fa4: PUSH1 0x04 00000fa6: PUSH1 0x20 00000fa8: SWAP1 00000fa9: DUP2 00000faa: MSTORE 00000fab: PUSH1 0x40 00000fad: DUP1 00000fae: DUP4 00000faf: KECCAK256 00000fb0: CALLER 00000fb1: DUP5 00000fb2: MSTORE 00000fb3: SWAP1 00000fb4: SWAP2 00000fb5: MSTORE 00000fb6: DUP2 00000fb7: KECCAK256 00000fb8: SLOAD 00000fb9: PUSH1 0x00 00000fbb: NOT 00000fbc: DUP2 00000fbd: EQ 00000fbe: PUSH2 0x0ff0 00000fc1: JUMPI 00000fc2: PUSH2 0x0fcb 00000fc5: DUP4 00000fc6: DUP3 00000fc7: PUSH2 0x56b0 00000fca: JUMP 00000fcb: JUMPDEST 00000fcc: PUSH1 0x01 00000fce: PUSH1 0x01 00000fd0: PUSH1 0xa0 00000fd2: SHL 00000fd3: SUB 00000fd4: DUP7 00000fd5: AND 00000fd6: PUSH1 0x00 00000fd8: SWAP1 00000fd9: DUP2 00000fda: MSTORE 00000fdb: PUSH1 0x04 00000fdd: PUSH1 0x20 00000fdf: SWAP1 00000fe0: DUP2 00000fe1: MSTORE 00000fe2: PUSH1 0x40 00000fe4: DUP1 00000fe5: DUP4 00000fe6: KECCAK256 00000fe7: CALLER 00000fe8: DUP5 00000fe9: MSTORE 00000fea: SWAP1 00000feb: SWAP2 00000fec: MSTORE 00000fed: SWAP1 00000fee: KECCAK256 00000fef: SSTORE 00000ff0: JUMPDEST 00000ff1: PUSH1 0x01 00000ff3: PUSH1 0x01 00000ff5: PUSH1 0xa0 00000ff7: SHL 00000ff8: SUB 00000ff9: DUP6 00000ffa: AND 00000ffb: PUSH1 0x00 00000ffd: SWAP1 00000ffe: DUP2 00000fff: MSTORE 00001000: PUSH1 0x03 00001002: PUSH1 0x20 00001004: MSTORE 00001005: PUSH1 0x40 00001007: DUP2 00001008: KECCAK256 00001009: DUP1 0000100a: SLOAD 0000100b: DUP6 0000100c: SWAP3 0000100d: SWAP1 0000100e: PUSH2 0x1018 00001011: SWAP1 00001012: DUP5 00001013: SWAP1 00001014: PUSH2 0x56b0 00001017: JUMP 00001018: JUMPDEST 00001019: SWAP1 0000101a: SWAP2 0000101b: SSTORE 0000101c: POP 0000101d: POP 0000101e: PUSH1 0x01 00001020: PUSH1 0x01 00001022: PUSH1 0xa0 00001024: SHL 00001025: SUB 00001026: DUP1 00001027: DUP6 00001028: AND 00001029: PUSH1 0x00 0000102b: DUP2 0000102c: DUP2 0000102d: MSTORE 0000102e: PUSH1 0x03 00001030: PUSH1 0x20 00001032: MSTORE 00001033: PUSH1 0x40 00001035: SWAP1 00001036: DUP2 00001037: SWAP1 00001038: KECCAK256 00001039: DUP1 0000103a: SLOAD 0000103b: DUP8 0000103c: ADD 0000103d: SWAP1 0000103e: SSTORE 0000103f: MLOAD 00001040: SWAP1 00001041: SWAP2 00001042: DUP8 00001043: AND 00001044: SWAP1 00001045: PUSH1 0x00 00001047: DUP1 00001048: MLOAD 00001049: PUSH1 0x20 0000104b: PUSH2 0x5f65 0000104e: DUP4 0000104f: CODECOPY 00001050: DUP2 00001051: MLOAD 00001052: SWAP2 00001053: MSTORE 00001054: SWAP1 00001055: PUSH2 0x1061 00001058: SWAP1 00001059: DUP8 0000105a: DUP2 0000105b: MSTORE 0000105c: PUSH1 0x20 0000105e: ADD 0000105f: SWAP1 00001060: JUMP 00001061: JUMPDEST 00001062: PUSH1 0x40 00001064: MLOAD 00001065: DUP1 00001066: SWAP2 00001067: SUB 00001068: SWAP1 00001069: LOG3 0000106a: POP 0000106b: PUSH1 0x01 0000106d: SWAP5 0000106e: SWAP4 0000106f: POP 00001070: POP 00001071: POP 00001072: POP 00001073: JUMP 00001074: JUMPDEST 00001075: PUSH1 0x06 00001077: SLOAD 00001078: PUSH1 0x01 0000107a: PUSH1 0x01 0000107c: PUSH1 0xa0 0000107e: SHL 0000107f: SUB 00001080: AND 00001081: CALLER 00001082: EQ 00001083: PUSH2 0x109e 00001086: JUMPI 00001087: PUSH1 0x40 00001089: MLOAD 0000108a: PUSH3 0x461bcd 0000108e: PUSH1 0xe5 00001090: SHL 00001091: DUP2 00001092: MSTORE 00001093: PUSH1 0x04 00001095: ADD 00001096: PUSH2 0x0c56 00001099: SWAP1 0000109a: PUSH2 0x5674 0000109d: JUMP 0000109e: JUMPDEST 0000109f: PUSH1 0x00 000010a1: DUP2 000010a2: PUSH2 0x10e9 000010a5: JUMPI 000010a6: PUSH1 0x09 000010a8: DUP4 000010a9: PUSH4 0xffffffff 000010ae: AND 000010af: DUP2 000010b0: SLOAD 000010b1: DUP2 000010b2: LT 000010b3: PUSH2 0x10be 000010b6: JUMPI 000010b7: PUSH2 0x10be 000010ba: PUSH2 0x56c3 000010bd: JUMP 000010be: JUMPDEST 000010bf: SWAP1 000010c0: PUSH1 0x00 000010c2: MSTORE 000010c3: PUSH1 0x20 000010c5: PUSH1 0x00 000010c7: KECCAK256 000010c8: SWAP1 000010c9: PUSH1 0x08 000010cb: SWAP2 000010cc: DUP3 000010cd: DUP3 000010ce: DIV 000010cf: ADD 000010d0: SWAP2 000010d1: SWAP1 000010d2: MOD 000010d3: PUSH1 0x04 000010d5: MUL 000010d6: SWAP1 000010d7: SLOAD 000010d8: SWAP1 000010d9: PUSH2 0x0100 000010dc: EXP 000010dd: SWAP1 000010de: DIV 000010df: PUSH4 0xffffffff 000010e4: AND 000010e5: PUSH2 0x1129 000010e8: JUMP 000010e9: JUMPDEST 000010ea: PUSH1 0x0a 000010ec: DUP4 000010ed: PUSH4 0xffffffff 000010f2: AND 000010f3: DUP2 000010f4: SLOAD 000010f5: DUP2 000010f6: LT 000010f7: PUSH2 0x1102 000010fa: JUMPI 000010fb: PUSH2 0x1102 000010fe: PUSH2 0x56c3 00001101: JUMP 00001102: JUMPDEST 00001103: SWAP1 00001104: PUSH1 0x00 00001106: MSTORE 00001107: PUSH1 0x20 00001109: PUSH1 0x00 0000110b: KECCAK256 0000110c: SWAP1 0000110d: PUSH1 0x08 0000110f: SWAP2 00001110: DUP3 00001111: DUP3 00001112: DIV 00001113: ADD 00001114: SWAP2 00001115: SWAP1 00001116: MOD 00001117: PUSH1 0x04 00001119: MUL 0000111a: SWAP1 0000111b: SLOAD 0000111c: SWAP1 0000111d: PUSH2 0x0100 00001120: EXP 00001121: SWAP1 00001122: DIV 00001123: PUSH4 0xffffffff 00001128: AND 00001129: JUMPDEST 0000112a: SWAP1 0000112b: POP 0000112c: PUSH1 0x00 0000112e: PUSH2 0x1136 00001131: DUP3 00001132: PUSH2 0x3b98 00001135: JUMP 00001136: JUMPDEST 00001137: SWAP1 00001138: POP 00001139: DUP1 0000113a: ISZERO 0000113b: PUSH2 0x1166 0000113e: JUMPI 0000113f: PUSH1 0x40 00001141: MLOAD 00001142: PUSH4 0x1c7b946d 00001147: PUSH1 0xe3 00001149: SHL 0000114a: DUP2 0000114b: MSTORE 0000114c: PUSH4 0xffffffff 00001151: DUP4 00001152: AND 00001153: PUSH1 0x04 00001155: DUP3 00001156: ADD 00001157: MSTORE 00001158: PUSH1 0x24 0000115a: DUP2 0000115b: ADD 0000115c: DUP3 0000115d: SWAP1 0000115e: MSTORE 0000115f: PUSH1 0x44 00001161: ADD 00001162: PUSH2 0x0c56 00001165: JUMP 00001166: JUMPDEST 00001167: PUSH2 0x1171 0000116a: DUP5 0000116b: DUP4 0000116c: DUP6 0000116d: PUSH2 0x3c21 00001170: JUMP 00001171: JUMPDEST 00001172: POP 00001173: POP 00001174: POP 00001175: POP 00001176: JUMP 00001177: JUMPDEST 00001178: PUSH1 0x00 0000117a: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 0000119b: CHAINID 0000119c: EQ 0000119d: PUSH2 0x11a8 000011a0: JUMPI 000011a1: PUSH2 0x0c69 000011a4: PUSH2 0x3d0d 000011a7: JUMP 000011a8: JUMPDEST 000011a9: POP 000011aa: PUSH32 0xba30efb318c7f9e52b778ab8c19b1379f3d1c885b4947b787c46552c71c84207 000011cb: SWAP1 000011cc: JUMP 000011cd: JUMPDEST 000011ce: PUSH1 0x06 000011d0: SLOAD 000011d1: PUSH1 0x01 000011d3: PUSH1 0x01 000011d5: PUSH1 0xa0 000011d7: SHL 000011d8: SUB 000011d9: AND 000011da: CALLER 000011db: EQ 000011dc: PUSH2 0x11f7 000011df: JUMPI 000011e0: PUSH1 0x40 000011e2: MLOAD 000011e3: PUSH3 0x461bcd 000011e7: PUSH1 0xe5 000011e9: SHL 000011ea: DUP2 000011eb: MSTORE 000011ec: PUSH1 0x04 000011ee: ADD 000011ef: PUSH2 0x0c56 000011f2: SWAP1 000011f3: PUSH2 0x5674 000011f6: JUMP 000011f7: JUMPDEST 000011f8: PUSH1 0x00 000011fa: DUP1 000011fb: DUP3 000011fc: ISZERO 000011fd: PUSH2 0x1329 00001200: JUMPI 00001201: PUSH1 0x0a 00001203: DUP5 00001204: PUSH4 0xffffffff 00001209: AND 0000120a: DUP2 0000120b: SLOAD 0000120c: DUP2 0000120d: LT 0000120e: PUSH2 0x1219 00001211: JUMPI 00001212: PUSH2 0x1219 00001215: PUSH2 0x56c3 00001218: JUMP 00001219: JUMPDEST 0000121a: SWAP1 0000121b: PUSH1 0x00 0000121d: MSTORE 0000121e: PUSH1 0x20 00001220: PUSH1 0x00 00001222: KECCAK256 00001223: SWAP1 00001224: PUSH1 0x08 00001226: SWAP2 00001227: DUP3 00001228: DUP3 00001229: DIV 0000122a: ADD 0000122b: SWAP2 0000122c: SWAP1 0000122d: MOD 0000122e: PUSH1 0x04 00001230: MUL 00001231: SWAP1 00001232: SLOAD 00001233: SWAP1 00001234: PUSH2 0x0100 00001237: EXP 00001238: SWAP1 00001239: DIV 0000123a: PUSH4 0xffffffff 0000123f: AND 00001240: SWAP2 00001241: POP 00001242: PUSH1 0x0a 00001244: DUP6 00001245: PUSH4 0xffffffff 0000124a: AND 0000124b: DUP2 0000124c: SLOAD 0000124d: DUP2 0000124e: LT 0000124f: PUSH2 0x125a 00001252: JUMPI 00001253: PUSH2 0x125a 00001256: PUSH2 0x56c3 00001259: JUMP 0000125a: JUMPDEST 0000125b: SWAP1 0000125c: PUSH1 0x00 0000125e: MSTORE 0000125f: PUSH1 0x20 00001261: PUSH1 0x00 00001263: KECCAK256 00001264: SWAP1 00001265: PUSH1 0x08 00001267: SWAP2 00001268: DUP3 00001269: DUP3 0000126a: DIV 0000126b: ADD 0000126c: SWAP2 0000126d: SWAP1 0000126e: MOD 0000126f: PUSH1 0x04 00001271: MUL 00001272: SWAP1 00001273: SLOAD 00001274: SWAP1 00001275: PUSH2 0x0100 00001278: EXP 00001279: SWAP1 0000127a: DIV 0000127b: PUSH4 0xffffffff 00001280: AND 00001281: SWAP1 00001282: POP 00001283: DUP2 00001284: DUP2 00001285: PUSH1 0x0a 00001287: DUP8 00001288: PUSH4 0xffffffff 0000128d: AND 0000128e: DUP2 0000128f: SLOAD 00001290: DUP2 00001291: LT 00001292: PUSH2 0x129d 00001295: JUMPI 00001296: PUSH2 0x129d 00001299: PUSH2 0x56c3 0000129c: JUMP 0000129d: JUMPDEST 0000129e: SWAP1 0000129f: PUSH1 0x00 000012a1: MSTORE 000012a2: PUSH1 0x20 000012a4: PUSH1 0x00 000012a6: KECCAK256 000012a7: SWAP1 000012a8: PUSH1 0x08 000012aa: SWAP2 000012ab: DUP3 000012ac: DUP3 000012ad: DIV 000012ae: ADD 000012af: SWAP2 000012b0: SWAP1 000012b1: MOD 000012b2: PUSH1 0x04 000012b4: MUL 000012b5: PUSH1 0x0a 000012b7: DUP9 000012b8: PUSH4 0xffffffff 000012bd: AND 000012be: DUP2 000012bf: SLOAD 000012c0: DUP2 000012c1: LT 000012c2: PUSH2 0x12cd 000012c5: JUMPI 000012c6: PUSH2 0x12cd 000012c9: PUSH2 0x56c3 000012cc: JUMP 000012cd: JUMPDEST 000012ce: SWAP1 000012cf: PUSH1 0x00 000012d1: MSTORE 000012d2: PUSH1 0x20 000012d4: PUSH1 0x00 000012d6: KECCAK256 000012d7: SWAP1 000012d8: PUSH1 0x08 000012da: SWAP2 000012db: DUP3 000012dc: DUP3 000012dd: DIV 000012de: ADD 000012df: SWAP2 000012e0: SWAP1 000012e1: MOD 000012e2: PUSH1 0x04 000012e4: MUL 000012e5: DUP5 000012e6: SWAP2 000012e7: SWAP1 000012e8: PUSH2 0x0100 000012eb: EXP 000012ec: DUP2 000012ed: SLOAD 000012ee: DUP2 000012ef: PUSH4 0xffffffff 000012f4: MUL 000012f5: NOT 000012f6: AND 000012f7: SWAP1 000012f8: DUP4 000012f9: PUSH4 0xffffffff 000012fe: AND 000012ff: MUL 00001300: OR 00001301: SWAP1 00001302: SSTORE 00001303: POP 00001304: DUP4 00001305: SWAP2 00001306: SWAP1 00001307: PUSH2 0x0100 0000130a: EXP 0000130b: DUP2 0000130c: SLOAD 0000130d: DUP2 0000130e: PUSH4 0xffffffff 00001313: MUL 00001314: NOT 00001315: AND 00001316: SWAP1 00001317: DUP4 00001318: PUSH4 0xffffffff 0000131d: AND 0000131e: MUL 0000131f: OR 00001320: SWAP1 00001321: SSTORE 00001322: POP 00001323: POP 00001324: POP 00001325: PUSH2 0x144e 00001328: JUMP 00001329: JUMPDEST 0000132a: PUSH1 0x09 0000132c: DUP5 0000132d: PUSH4 0xffffffff 00001332: AND 00001333: DUP2 00001334: SLOAD 00001335: DUP2 00001336: LT 00001337: PUSH2 0x1342 0000133a: JUMPI 0000133b: PUSH2 0x1342 0000133e: PUSH2 0x56c3 00001341: JUMP 00001342: JUMPDEST 00001343: SWAP1 00001344: PUSH1 0x00 00001346: MSTORE 00001347: PUSH1 0x20 00001349: PUSH1 0x00 0000134b: KECCAK256 0000134c: SWAP1 0000134d: PUSH1 0x08 0000134f: SWAP2 00001350: DUP3 00001351: DUP3 00001352: DIV 00001353: ADD 00001354: SWAP2 00001355: SWAP1 00001356: MOD 00001357: PUSH1 0x04 00001359: MUL 0000135a: SWAP1 0000135b: SLOAD 0000135c: SWAP1 0000135d: PUSH2 0x0100 00001360: EXP 00001361: SWAP1 00001362: DIV 00001363: PUSH4 0xffffffff 00001368: AND 00001369: SWAP2 0000136a: POP 0000136b: PUSH1 0x09 0000136d: DUP6 0000136e: PUSH4 0xffffffff 00001373: AND 00001374: DUP2 00001375: SLOAD 00001376: DUP2 00001377: LT 00001378: PUSH2 0x1383 0000137b: JUMPI 0000137c: PUSH2 0x1383 0000137f: PUSH2 0x56c3 00001382: JUMP 00001383: JUMPDEST 00001384: SWAP1 00001385: PUSH1 0x00 00001387: MSTORE 00001388: PUSH1 0x20 0000138a: PUSH1 0x00 0000138c: KECCAK256 0000138d: SWAP1 0000138e: PUSH1 0x08 00001390: SWAP2 00001391: DUP3 00001392: DUP3 00001393: DIV 00001394: ADD 00001395: SWAP2 00001396: SWAP1 00001397: MOD 00001398: PUSH1 0x04 0000139a: MUL 0000139b: SWAP1 0000139c: SLOAD 0000139d: SWAP1 0000139e: PUSH2 0x0100 000013a1: EXP 000013a2: SWAP1 000013a3: DIV 000013a4: PUSH4 0xffffffff 000013a9: AND 000013aa: SWAP1 000013ab: POP 000013ac: DUP2 000013ad: DUP2 000013ae: PUSH1 0x09 000013b0: DUP8 000013b1: PUSH4 0xffffffff 000013b6: AND 000013b7: DUP2 000013b8: SLOAD 000013b9: DUP2 000013ba: LT 000013bb: PUSH2 0x13c6 000013be: JUMPI 000013bf: PUSH2 0x13c6 000013c2: PUSH2 0x56c3 000013c5: JUMP 000013c6: JUMPDEST 000013c7: SWAP1 000013c8: PUSH1 0x00 000013ca: MSTORE 000013cb: PUSH1 0x20 000013cd: PUSH1 0x00 000013cf: KECCAK256 000013d0: SWAP1 000013d1: PUSH1 0x08 000013d3: SWAP2 000013d4: DUP3 000013d5: DUP3 000013d6: DIV 000013d7: ADD 000013d8: SWAP2 000013d9: SWAP1 000013da: MOD 000013db: PUSH1 0x04 000013dd: MUL 000013de: PUSH1 0x09 000013e0: DUP9 000013e1: PUSH4 0xffffffff 000013e6: AND 000013e7: DUP2 000013e8: SLOAD 000013e9: DUP2 000013ea: LT 000013eb: PUSH2 0x13f6 000013ee: JUMPI 000013ef: PUSH2 0x13f6 000013f2: PUSH2 0x56c3 000013f5: JUMP 000013f6: JUMPDEST 000013f7: SWAP1 000013f8: PUSH1 0x00 000013fa: MSTORE 000013fb: PUSH1 0x20 000013fd: PUSH1 0x00 000013ff: KECCAK256 00001400: SWAP1 00001401: PUSH1 0x08 00001403: SWAP2 00001404: DUP3 00001405: DUP3 00001406: DIV 00001407: ADD 00001408: SWAP2 00001409: SWAP1 0000140a: MOD 0000140b: PUSH1 0x04 0000140d: MUL 0000140e: DUP5 0000140f: SWAP2 00001410: SWAP1 00001411: PUSH2 0x0100 00001414: EXP 00001415: DUP2 00001416: SLOAD 00001417: DUP2 00001418: PUSH4 0xffffffff 0000141d: MUL 0000141e: NOT 0000141f: AND 00001420: SWAP1 00001421: DUP4 00001422: PUSH4 0xffffffff 00001427: AND 00001428: MUL 00001429: OR 0000142a: SWAP1 0000142b: SSTORE 0000142c: POP 0000142d: DUP4 0000142e: SWAP2 0000142f: SWAP1 00001430: PUSH2 0x0100 00001433: EXP 00001434: DUP2 00001435: SLOAD 00001436: DUP2 00001437: PUSH4 0xffffffff 0000143c: MUL 0000143d: NOT 0000143e: AND 0000143f: SWAP1 00001440: DUP4 00001441: PUSH4 0xffffffff 00001446: AND 00001447: MUL 00001448: OR 00001449: SWAP1 0000144a: SSTORE 0000144b: POP 0000144c: POP 0000144d: POP 0000144e: JUMPDEST 0000144f: PUSH1 0x40 00001451: DUP1 00001452: MLOAD 00001453: PUSH4 0xffffffff 00001458: DUP5 00001459: DUP2 0000145a: AND 0000145b: DUP3 0000145c: MSTORE 0000145d: DUP4 0000145e: DUP2 0000145f: AND 00001460: PUSH1 0x20 00001462: DUP4 00001463: ADD 00001464: MSTORE 00001465: DUP8 00001466: DUP2 00001467: AND 00001468: DUP3 00001469: DUP5 0000146a: ADD 0000146b: MSTORE 0000146c: DUP7 0000146d: AND 0000146e: PUSH1 0x60 00001470: DUP3 00001471: ADD 00001472: MSTORE 00001473: SWAP1 00001474: MLOAD 00001475: PUSH32 0xb7c5df04749a3a06a9a7bf1a8142ccf2a4ee6cbf4709489e876a6e4eb3301e8a 00001496: SWAP2 00001497: DUP2 00001498: SWAP1 00001499: SUB 0000149a: PUSH1 0x80 0000149c: ADD 0000149d: SWAP1 0000149e: LOG1 0000149f: POP 000014a0: POP 000014a1: POP 000014a2: POP 000014a3: POP 000014a4: JUMP 000014a5: JUMPDEST 000014a6: PUSH1 0x06 000014a8: SLOAD 000014a9: PUSH1 0x01 000014ab: PUSH1 0x01 000014ad: PUSH1 0xa0 000014af: SHL 000014b0: SUB 000014b1: AND 000014b2: CALLER 000014b3: EQ 000014b4: PUSH2 0x14cf 000014b7: JUMPI 000014b8: PUSH1 0x40 000014ba: MLOAD 000014bb: PUSH3 0x461bcd 000014bf: PUSH1 0xe5 000014c1: SHL 000014c2: DUP2 000014c3: MSTORE 000014c4: PUSH1 0x04 000014c6: ADD 000014c7: PUSH2 0x0c56 000014ca: SWAP1 000014cb: PUSH2 0x5674 000014ce: JUMP 000014cf: JUMPDEST 000014d0: PUSH1 0x40 000014d2: MLOAD 000014d3: PUSH4 0x67771405 000014d8: PUSH1 0xe1 000014da: SHL 000014db: DUP2 000014dc: MSTORE 000014dd: PUSH1 0x01 000014df: PUSH1 0x01 000014e1: PUSH1 0xa0 000014e3: SHL 000014e4: SUB 000014e5: DUP3 000014e6: DUP2 000014e7: AND 000014e8: PUSH1 0x04 000014ea: DUP4 000014eb: ADD 000014ec: MSTORE 000014ed: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476 0000150e: AND 0000150f: SWAP1 00001510: PUSH4 0xceee280a 00001515: SWAP1 00001516: PUSH1 0x24 00001518: ADD 00001519: PUSH1 0x00 0000151b: PUSH1 0x40 0000151d: MLOAD 0000151e: DUP1 0000151f: DUP4 00001520: SUB 00001521: DUP2 00001522: DUP7 00001523: DUP1 00001524: EXTCODESIZE 00001525: ISZERO 00001526: DUP1 00001527: ISZERO 00001528: PUSH2 0x1530 0000152b: JUMPI 0000152c: PUSH1 0x00 0000152e: DUP1 0000152f: REVERT 00001530: JUMPDEST 00001531: POP 00001532: GAS 00001533: STATICCALL 00001534: ISZERO 00001535: DUP1 00001536: ISZERO 00001537: PUSH2 0x1544 0000153a: JUMPI 0000153b: RETURNDATASIZE 0000153c: PUSH1 0x00 0000153e: DUP1 0000153f: RETURNDATACOPY 00001540: RETURNDATASIZE 00001541: PUSH1 0x00 00001543: REVERT 00001544: JUMPDEST 00001545: POP 00001546: POP 00001547: POP 00001548: POP 00001549: PUSH1 0x01 0000154b: PUSH1 0x01 0000154d: PUSH1 0xa0 0000154f: SHL 00001550: SUB 00001551: DUP2 00001552: AND 00001553: PUSH1 0x00 00001555: DUP2 00001556: DUP2 00001557: MSTORE 00001558: PUSH1 0x0e 0000155a: PUSH1 0x20 0000155c: SWAP1 0000155d: DUP2 0000155e: MSTORE 0000155f: PUSH1 0x40 00001561: SWAP2 00001562: DUP3 00001563: SWAP1 00001564: KECCAK256 00001565: DUP1 00001566: SLOAD 00001567: PUSH1 0xff 00001569: NOT 0000156a: AND 0000156b: PUSH1 0x01 0000156d: SWAP1 0000156e: DUP2 0000156f: OR 00001570: SWAP1 00001571: SWAP2 00001572: SSTORE 00001573: DUP3 00001574: MLOAD 00001575: SWAP4 00001576: DUP5 00001577: MSTORE 00001578: SWAP1 00001579: DUP4 0000157a: ADD 0000157b: MSTORE 0000157c: PUSH32 0x572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a 0000159d: SWAP2 0000159e: ADD 0000159f: JUMPDEST 000015a0: PUSH1 0x40 000015a2: MLOAD 000015a3: DUP1 000015a4: SWAP2 000015a5: SUB 000015a6: SWAP1 000015a7: LOG1 000015a8: POP 000015a9: JUMP 000015aa: JUMPDEST 000015ab: PUSH1 0x60 000015ad: PUSH1 0x0a 000015af: DUP1 000015b0: SLOAD 000015b1: DUP1 000015b2: PUSH1 0x20 000015b4: MUL 000015b5: PUSH1 0x20 000015b7: ADD 000015b8: PUSH1 0x40 000015ba: MLOAD 000015bb: SWAP1 000015bc: DUP2 000015bd: ADD 000015be: PUSH1 0x40 000015c0: MSTORE 000015c1: DUP1 000015c2: SWAP3 000015c3: SWAP2 000015c4: SWAP1 000015c5: DUP2 000015c6: DUP2 000015c7: MSTORE 000015c8: PUSH1 0x20 000015ca: ADD 000015cb: DUP3 000015cc: DUP1 000015cd: SLOAD 000015ce: DUP1 000015cf: ISZERO 000015d0: PUSH2 0x1624 000015d3: JUMPI 000015d4: PUSH1 0x20 000015d6: MUL 000015d7: DUP3 000015d8: ADD 000015d9: SWAP2 000015da: SWAP1 000015db: PUSH1 0x00 000015dd: MSTORE 000015de: PUSH1 0x20 000015e0: PUSH1 0x00 000015e2: KECCAK256 000015e3: SWAP1 000015e4: PUSH1 0x00 000015e6: SWAP1 000015e7: JUMPDEST 000015e8: DUP3 000015e9: DUP3 000015ea: SWAP1 000015eb: SLOAD 000015ec: SWAP1 000015ed: PUSH2 0x0100 000015f0: EXP 000015f1: SWAP1 000015f2: DIV 000015f3: PUSH4 0xffffffff 000015f8: AND 000015f9: PUSH4 0xffffffff 000015fe: AND 000015ff: DUP2 00001600: MSTORE 00001601: PUSH1 0x20 00001603: ADD 00001604: SWAP1 00001605: PUSH1 0x04 00001607: ADD 00001608: SWAP1 00001609: PUSH1 0x20 0000160b: DUP3 0000160c: PUSH1 0x03 0000160e: ADD 0000160f: DIV 00001610: SWAP3 00001611: DUP4 00001612: ADD 00001613: SWAP3 00001614: PUSH1 0x01 00001616: SUB 00001617: DUP3 00001618: MUL 00001619: SWAP2 0000161a: POP 0000161b: DUP1 0000161c: DUP5 0000161d: GT 0000161e: PUSH2 0x15e7 00001621: JUMPI 00001622: SWAP1 00001623: POP 00001624: JUMPDEST 00001625: POP 00001626: POP 00001627: POP 00001628: POP 00001629: POP 0000162a: SWAP1 0000162b: POP 0000162c: SWAP1 0000162d: JUMP 0000162e: JUMPDEST 0000162f: PUSH1 0x06 00001631: SLOAD 00001632: PUSH1 0x00 00001634: SWAP1 00001635: PUSH1 0x01 00001637: PUSH1 0xa8 00001639: SHL 0000163a: SWAP1 0000163b: DIV 0000163c: PUSH1 0xff 0000163e: AND 0000163f: ISZERO 00001640: PUSH2 0x164b 00001643: JUMPI 00001644: POP 00001645: PUSH1 0x00 00001647: SWAP2 00001648: SWAP1 00001649: POP 0000164a: JUMP 0000164b: JUMPDEST 0000164c: PUSH1 0x07 0000164e: SLOAD 0000164f: PUSH1 0x01 00001651: PUSH1 0x01 00001653: PUSH1 0xc0 00001655: SHL 00001656: SUB 00001657: AND 00001658: PUSH1 0x02 0000165a: PUSH1 0x01 0000165c: PUSH1 0xc0 0000165e: SHL 0000165f: SUB 00001660: NOT 00001661: DUP2 00001662: ADD 00001663: PUSH2 0x1670 00001666: JUMPI 00001667: POP 00001668: PUSH1 0x00 0000166a: NOT 0000166b: SWAP3 0000166c: SWAP2 0000166d: POP 0000166e: POP 0000166f: JUMP 00001670: JUMPDEST 00001671: PUSH1 0x00 00001673: DUP1 00001674: PUSH2 0x167d 00001677: PUSH1 0x01 00001679: PUSH2 0x3a39 0000167c: JUMP 0000167d: JUMPDEST 0000167e: SWAP2 0000167f: POP 00001680: SWAP2 00001681: POP 00001682: DUP3 00001683: PUSH1 0x01 00001685: PUSH1 0x01 00001687: PUSH1 0xc0 00001689: SHL 0000168a: SUB 0000168b: AND 0000168c: DUP2 0000168d: LT 0000168e: PUSH2 0x169c 00001691: JUMPI 00001692: POP 00001693: PUSH1 0x00 00001695: SWAP5 00001696: SWAP4 00001697: POP 00001698: POP 00001699: POP 0000169a: POP 0000169b: JUMP 0000169c: JUMPDEST 0000169d: PUSH1 0x00 0000169f: PUSH2 0x16b1 000016a2: DUP3 000016a3: PUSH1 0x01 000016a5: PUSH1 0x01 000016a7: PUSH1 0xc0 000016a9: SHL 000016aa: SUB 000016ab: DUP7 000016ac: AND 000016ad: PUSH2 0x56b0 000016b0: JUMP 000016b1: JUMPDEST 000016b2: SWAP1 000016b3: POP 000016b4: PUSH2 0x16be 000016b7: DUP2 000016b8: DUP5 000016b9: DUP5 000016ba: PUSH2 0x3b53 000016bd: JUMP 000016be: JUMPDEST 000016bf: SWAP7 000016c0: SWAP6 000016c1: POP 000016c2: POP 000016c3: POP 000016c4: POP 000016c5: POP 000016c6: POP 000016c7: JUMP 000016c8: JUMPDEST 000016c9: POP 000016ca: POP 000016cb: POP 000016cc: SWAP2 000016cd: SWAP1 000016ce: POP 000016cf: JUMP 000016d0: JUMPDEST 000016d1: PUSH1 0x06 000016d3: SLOAD 000016d4: PUSH1 0x01 000016d6: PUSH1 0xa0 000016d8: SHL 000016d9: SWAP1 000016da: DIV 000016db: PUSH1 0xff 000016dd: AND 000016de: ISZERO 000016df: PUSH2 0x16fa 000016e2: JUMPI 000016e3: PUSH1 0x40 000016e5: MLOAD 000016e6: PUSH3 0x461bcd 000016ea: PUSH1 0xe5 000016ec: SHL 000016ed: DUP2 000016ee: MSTORE 000016ef: PUSH1 0x04 000016f1: ADD 000016f2: PUSH2 0x0c56 000016f5: SWAP1 000016f6: PUSH2 0x5616 000016f9: JUMP 000016fa: JUMPDEST 000016fb: PUSH1 0x06 000016fd: DUP1 000016fe: SLOAD 000016ff: PUSH1 0x01 00001701: PUSH1 0xa0 00001703: SHL 00001704: PUSH1 0xff 00001706: PUSH1 0xa0 00001708: SHL 00001709: NOT 0000170a: DUP3 0000170b: AND 0000170c: OR 0000170d: SWAP1 0000170e: SWAP2 0000170f: SSTORE 00001710: PUSH1 0x01 00001712: PUSH1 0x01 00001714: PUSH1 0xa0 00001716: SHL 00001717: SUB 00001718: AND 00001719: CALLER 0000171a: EQ 0000171b: DUP1 0000171c: ISZERO 0000171d: SWAP1 0000171e: PUSH2 0x1732 00001721: JUMPI 00001722: POP 00001723: PUSH1 0x11 00001725: SLOAD 00001726: PUSH1 0x01 00001728: PUSH1 0x01 0000172a: PUSH1 0xa0 0000172c: SHL 0000172d: SUB 0000172e: AND 0000172f: CALLER 00001730: EQ 00001731: ISZERO 00001732: JUMPDEST 00001733: ISZERO 00001734: PUSH2 0x1750 00001737: JUMPI 00001738: PUSH1 0x40 0000173a: MLOAD 0000173b: PUSH4 0x3fd29235 00001740: PUSH1 0xe0 00001742: SHL 00001743: DUP2 00001744: MSTORE 00001745: PUSH1 0x04 00001747: ADD 00001748: PUSH1 0x40 0000174a: MLOAD 0000174b: DUP1 0000174c: SWAP2 0000174d: SUB 0000174e: SWAP1 0000174f: REVERT 00001750: JUMPDEST 00001751: PUSH2 0x1758 00001754: PUSH2 0x3b6d 00001757: JUMP 00001758: JUMPDEST 00001759: PUSH2 0x1760 0000175c: PUSH2 0x342e 0000175f: JUMP 00001760: JUMPDEST 00001761: PUSH1 0x06 00001763: DUP1 00001764: SLOAD 00001765: PUSH1 0xff 00001767: PUSH1 0xb8 00001769: SHL 0000176a: NOT 0000176b: AND 0000176c: PUSH1 0x01 0000176e: PUSH1 0xb8 00001770: SHL 00001771: OR 00001772: SWAP1 00001773: SSTORE 00001774: PUSH1 0x00 00001776: DUP1 00001777: DUP1 00001778: DUP1 00001779: PUSH2 0x1781 0000177c: DUP2 0000177d: PUSH2 0x34e7 00001780: JUMP 00001781: JUMPDEST 00001782: SWAP1 00001783: POP 00001784: PUSH2 0x17ac 00001787: PUSH1 0x12 00001789: SLOAD 0000178a: PUSH8 0x0de0b6b3a7640000 00001793: PUSH2 0x179c 00001796: SWAP2 00001797: SWAP1 00001798: PUSH2 0x56b0 0000179b: JUMP 0000179c: JUMPDEST 0000179d: DUP3 0000179e: SWAP1 0000179f: PUSH8 0x0de0b6b3a7640000 000017a8: PUSH2 0x3da7 000017ab: JUMP 000017ac: JUMPDEST 000017ad: SWAP4 000017ae: POP 000017af: PUSH2 0x17c7 000017b2: PUSH1 0x12 000017b4: SLOAD 000017b5: PUSH8 0x0de0b6b3a7640000 000017be: PUSH2 0x179c 000017c1: SWAP2 000017c2: SWAP1 000017c3: PUSH2 0x56d9 000017c6: JUMP 000017c7: JUMPDEST 000017c8: PUSH1 0x02 000017ca: SLOAD 000017cb: SWAP1 000017cc: SWAP4 000017cd: POP 000017ce: SWAP2 000017cf: POP 000017d0: PUSH2 0x17e3 000017d3: SWAP1 000017d4: POP 000017d5: PUSH2 0x17de 000017d8: DUP6 000017d9: DUP8 000017da: PUSH2 0x5830 000017dd: JUMP 000017de: JUMPDEST 000017df: PUSH2 0x3dd5 000017e2: JUMP 000017e3: JUMPDEST 000017e4: PUSH1 0x00 000017e6: PUSH2 0x17ef 000017e9: PUSH1 0x00 000017eb: PUSH2 0x34e7 000017ee: JUMP 000017ef: JUMPDEST 000017f0: SWAP1 000017f1: POP 000017f2: DUP4 000017f3: DUP2 000017f4: LT 000017f5: DUP1 000017f6: PUSH2 0x17fe 000017f9: JUMPI 000017fa: POP 000017fb: DUP3 000017fc: DUP2 000017fd: GT 000017fe: JUMPDEST 000017ff: ISZERO 00001800: PUSH2 0x182d 00001803: JUMPI 00001804: PUSH1 0x40 00001806: MLOAD 00001807: PUSH4 0x628cc475 0000180c: PUSH1 0xe1 0000180e: SHL 0000180f: DUP2 00001810: MSTORE 00001811: PUSH1 0x04 00001813: DUP2 00001814: ADD 00001815: DUP3 00001816: SWAP1 00001817: MSTORE 00001818: PUSH1 0x24 0000181a: DUP2 0000181b: ADD 0000181c: DUP6 0000181d: SWAP1 0000181e: MSTORE 0000181f: PUSH1 0x44 00001821: DUP2 00001822: ADD 00001823: DUP5 00001824: SWAP1 00001825: MSTORE 00001826: PUSH1 0x64 00001828: ADD 00001829: PUSH2 0x0c56 0000182c: JUMP 0000182d: JUMPDEST 0000182e: PUSH1 0x02 00001830: SLOAD 00001831: DUP3 00001832: EQ 00001833: PUSH2 0x185d 00001836: JUMPI 00001837: PUSH1 0x02 00001839: SLOAD 0000183a: PUSH1 0x40 0000183c: MLOAD 0000183d: PUSH4 0x2b401459 00001842: PUSH1 0xe2 00001844: SHL 00001845: DUP2 00001846: MSTORE 00001847: PUSH1 0x04 00001849: DUP2 0000184a: ADD 0000184b: SWAP2 0000184c: SWAP1 0000184d: SWAP2 0000184e: MSTORE 0000184f: PUSH1 0x24 00001851: DUP2 00001852: ADD 00001853: DUP4 00001854: SWAP1 00001855: MSTORE 00001856: PUSH1 0x44 00001858: ADD 00001859: PUSH2 0x0c56 0000185c: JUMP 0000185d: JUMPDEST 0000185e: POP 0000185f: POP 00001860: PUSH1 0x06 00001862: DUP1 00001863: SLOAD 00001864: PUSH4 0xff0000ff 00001869: PUSH1 0xa0 0000186b: SHL 0000186c: NOT 0000186d: AND 0000186e: SWAP1 0000186f: SSTORE 00001870: POP 00001871: POP 00001872: POP 00001873: POP 00001874: JUMP 00001875: JUMPDEST 00001876: PUSH1 0x06 00001878: SLOAD 00001879: PUSH1 0x01 0000187b: PUSH1 0x01 0000187d: PUSH1 0xa0 0000187f: SHL 00001880: SUB 00001881: AND 00001882: CALLER 00001883: EQ 00001884: PUSH2 0x189f 00001887: JUMPI 00001888: PUSH1 0x40 0000188a: MLOAD 0000188b: PUSH3 0x461bcd 0000188f: PUSH1 0xe5 00001891: SHL 00001892: DUP2 00001893: MSTORE 00001894: PUSH1 0x04 00001896: ADD 00001897: PUSH2 0x0c56 0000189a: SWAP1 0000189b: PUSH2 0x5674 0000189e: JUMP 0000189f: JUMPDEST 000018a0: PUSH1 0x40 000018a2: MLOAD 000018a3: PUSH4 0x5159d87f 000018a8: PUSH1 0xe1 000018aa: SHL 000018ab: DUP2 000018ac: MSTORE 000018ad: PUSH4 0xffffffff 000018b2: DUP3 000018b3: AND 000018b4: PUSH1 0x04 000018b6: DUP3 000018b7: ADD 000018b8: MSTORE 000018b9: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476 000018da: PUSH1 0x01 000018dc: PUSH1 0x01 000018de: PUSH1 0xa0 000018e0: SHL 000018e1: SUB 000018e2: AND 000018e3: SWAP1 000018e4: PUSH4 0xa2b3b0fe 000018e9: SWAP1 000018ea: PUSH1 0x24 000018ec: ADD 000018ed: PUSH1 0x00 000018ef: PUSH1 0x40 000018f1: MLOAD 000018f2: DUP1 000018f3: DUP4 000018f4: SUB 000018f5: DUP2 000018f6: DUP7 000018f7: DUP1 000018f8: EXTCODESIZE 000018f9: ISZERO 000018fa: DUP1 000018fb: ISZERO 000018fc: PUSH2 0x1904 000018ff: JUMPI 00001900: PUSH1 0x00 00001902: DUP1 00001903: REVERT 00001904: JUMPDEST 00001905: POP 00001906: GAS 00001907: STATICCALL 00001908: ISZERO 00001909: DUP1 0000190a: ISZERO 0000190b: PUSH2 0x1918 0000190e: JUMPI 0000190f: RETURNDATASIZE 00001910: PUSH1 0x00 00001912: DUP1 00001913: RETURNDATACOPY 00001914: RETURNDATASIZE 00001915: PUSH1 0x00 00001917: REVERT 00001918: JUMPDEST 00001919: POP 0000191a: POP 0000191b: POP 0000191c: POP 0000191d: PUSH4 0xffffffff 00001922: DUP2 00001923: AND 00001924: PUSH1 0x00 00001926: DUP2 00001927: DUP2 00001928: MSTORE 00001929: PUSH1 0x0d 0000192b: PUSH1 0x20 0000192d: SWAP1 0000192e: DUP2 0000192f: MSTORE 00001930: PUSH1 0x40 00001932: SWAP2 00001933: DUP3 00001934: SWAP1 00001935: KECCAK256 00001936: DUP1 00001937: SLOAD 00001938: PUSH1 0xff 0000193a: NOT 0000193b: AND 0000193c: PUSH1 0x01 0000193e: SWAP1 0000193f: DUP2 00001940: OR 00001941: SWAP1 00001942: SWAP2 00001943: SSTORE 00001944: DUP3 00001945: MLOAD 00001946: SWAP4 00001947: DUP5 00001948: MSTORE 00001949: SWAP1 0000194a: DUP4 0000194b: ADD 0000194c: MSTORE 0000194d: PUSH32 0xea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f 0000196e: SWAP2 0000196f: ADD 00001970: PUSH2 0x159f 00001973: JUMP 00001974: JUMPDEST 00001975: PUSH1 0x06 00001977: SLOAD 00001978: PUSH1 0x01 0000197a: PUSH1 0x01 0000197c: PUSH1 0xa0 0000197e: SHL 0000197f: SUB 00001980: AND 00001981: CALLER 00001982: EQ 00001983: PUSH2 0x199e 00001986: JUMPI 00001987: PUSH1 0x40 00001989: MLOAD 0000198a: PUSH3 0x461bcd 0000198e: PUSH1 0xe5 00001990: SHL 00001991: DUP2 00001992: MSTORE 00001993: PUSH1 0x04 00001995: ADD 00001996: PUSH2 0x0c56 00001999: SWAP1 0000199a: PUSH2 0x5674 0000199d: JUMP 0000199e: JUMPDEST 0000199f: PUSH8 0x016345785d8a0000 000019a8: DUP2 000019a9: GT 000019aa: ISZERO 000019ab: PUSH2 0x19d8 000019ae: JUMPI 000019af: PUSH1 0x40 000019b1: MLOAD 000019b2: PUSH4 0x02d2a90f 000019b7: PUSH1 0xe5 000019b9: SHL 000019ba: DUP2 000019bb: MSTORE 000019bc: PUSH1 0x04 000019be: DUP2 000019bf: ADD 000019c0: DUP3 000019c1: SWAP1 000019c2: MSTORE 000019c3: PUSH8 0x016345785d8a0000 000019cc: PUSH1 0x24 000019ce: DUP3 000019cf: ADD 000019d0: MSTORE 000019d1: PUSH1 0x44 000019d3: ADD 000019d4: PUSH2 0x0c56 000019d7: JUMP 000019d8: JUMPDEST 000019d9: PUSH1 0x12 000019db: DUP1 000019dc: SLOAD 000019dd: SWAP1 000019de: DUP3 000019df: SWAP1 000019e0: SSTORE 000019e1: PUSH1 0x40 000019e3: DUP1 000019e4: MLOAD 000019e5: DUP3 000019e6: DUP2 000019e7: MSTORE 000019e8: PUSH1 0x20 000019ea: DUP2 000019eb: ADD 000019ec: DUP5 000019ed: SWAP1 000019ee: MSTORE 000019ef: PUSH32 0xdf4be33b2e9e3dd4d9e0e85645aea428494a0644a72c51d6a15aedae6b66a3ff 00001a10: SWAP2 00001a11: ADD 00001a12: JUMPDEST 00001a13: PUSH1 0x40 00001a15: MLOAD 00001a16: DUP1 00001a17: SWAP2 00001a18: SUB 00001a19: SWAP1 00001a1a: LOG1 00001a1b: POP 00001a1c: POP 00001a1d: JUMP 00001a1e: JUMPDEST 00001a1f: PUSH1 0x06 00001a21: SLOAD 00001a22: PUSH1 0x01 00001a24: PUSH1 0x01 00001a26: PUSH1 0xa0 00001a28: SHL 00001a29: SUB 00001a2a: AND 00001a2b: CALLER 00001a2c: EQ 00001a2d: PUSH2 0x1a48 00001a30: JUMPI 00001a31: PUSH1 0x40 00001a33: MLOAD 00001a34: PUSH3 0x461bcd 00001a38: PUSH1 0xe5 00001a3a: SHL 00001a3b: DUP2 00001a3c: MSTORE 00001a3d: PUSH1 0x04 00001a3f: ADD 00001a40: PUSH2 0x0c56 00001a43: SWAP1 00001a44: PUSH2 0x5674 00001a47: JUMP 00001a48: JUMPDEST 00001a49: PUSH1 0x07 00001a4b: SLOAD 00001a4c: PUSH1 0x01 00001a4e: PUSH1 0x01 00001a50: PUSH1 0xc0 00001a52: SHL 00001a53: SUB 00001a54: SWAP1 00001a55: DUP2 00001a56: AND 00001a57: SWAP1 00001a58: DUP3 00001a59: AND 00001a5a: GT 00001a5b: ISZERO 00001a5c: PUSH2 0x1a78 00001a5f: JUMPI 00001a60: PUSH1 0x40 00001a62: MLOAD 00001a63: PUSH4 0x34f1ec1b 00001a68: PUSH1 0xe0 00001a6a: SHL 00001a6b: DUP2 00001a6c: MSTORE 00001a6d: PUSH1 0x04 00001a6f: ADD 00001a70: PUSH1 0x40 00001a72: MLOAD 00001a73: DUP1 00001a74: SWAP2 00001a75: SUB 00001a76: SWAP1 00001a77: REVERT 00001a78: JUMPDEST 00001a79: PUSH1 0x07 00001a7b: DUP1 00001a7c: SLOAD 00001a7d: PUSH1 0x01 00001a7f: PUSH1 0x01 00001a81: PUSH1 0xc0 00001a83: SHL 00001a84: SUB 00001a85: NOT 00001a86: AND 00001a87: PUSH1 0x01 00001a89: PUSH1 0x01 00001a8b: PUSH1 0xc0 00001a8d: SHL 00001a8e: SUB 00001a8f: SWAP3 00001a90: SWAP1 00001a91: SWAP3 00001a92: AND 00001a93: SWAP2 00001a94: SWAP1 00001a95: SWAP2 00001a96: OR 00001a97: SWAP1 00001a98: SSTORE 00001a99: JUMP 00001a9a: JUMPDEST 00001a9b: PUSH1 0x09 00001a9d: DUP2 00001a9e: DUP2 00001a9f: SLOAD 00001aa0: DUP2 00001aa1: LT 00001aa2: PUSH2 0x1aaa 00001aa5: JUMPI 00001aa6: PUSH1 0x00 00001aa8: DUP1 00001aa9: REVERT 00001aaa: JUMPDEST 00001aab: SWAP1 00001aac: PUSH1 0x00 00001aae: MSTORE 00001aaf: PUSH1 0x20 00001ab1: PUSH1 0x00 00001ab3: KECCAK256 00001ab4: SWAP1 00001ab5: PUSH1 0x08 00001ab7: SWAP2 00001ab8: DUP3 00001ab9: DUP3 00001aba: DIV 00001abb: ADD 00001abc: SWAP2 00001abd: SWAP1 00001abe: MOD 00001abf: PUSH1 0x04 00001ac1: MUL 00001ac2: SWAP2 00001ac3: POP 00001ac4: SLOAD 00001ac5: SWAP1 00001ac6: PUSH2 0x0100 00001ac9: EXP 00001aca: SWAP1 00001acb: DIV 00001acc: PUSH4 0xffffffff 00001ad1: AND 00001ad2: DUP2 00001ad3: JUMP 00001ad4: JUMPDEST 00001ad5: PUSH1 0x06 00001ad7: SLOAD 00001ad8: PUSH1 0x01 00001ada: PUSH1 0x01 00001adc: PUSH1 0xa0 00001ade: SHL 00001adf: SUB 00001ae0: AND 00001ae1: CALLER 00001ae2: EQ 00001ae3: PUSH2 0x1afe 00001ae6: JUMPI 00001ae7: PUSH1 0x40 00001ae9: MLOAD 00001aea: PUSH3 0x461bcd 00001aee: PUSH1 0xe5 00001af0: SHL 00001af1: DUP2 00001af2: MSTORE 00001af3: PUSH1 0x04 00001af5: ADD 00001af6: PUSH2 0x0c56 00001af9: SWAP1 00001afa: PUSH2 0x5674 00001afd: JUMP 00001afe: JUMPDEST 00001aff: PUSH1 0x06 00001b01: SLOAD 00001b02: PUSH1 0x01 00001b04: PUSH1 0xa8 00001b06: SHL 00001b07: SWAP1 00001b08: DIV 00001b09: PUSH1 0xff 00001b0b: AND 00001b0c: PUSH2 0x1b28 00001b0f: JUMPI 00001b10: PUSH1 0x40 00001b12: MLOAD 00001b13: PUSH4 0xec7165bf 00001b18: PUSH1 0xe0 00001b1a: SHL 00001b1b: DUP2 00001b1c: MSTORE 00001b1d: PUSH1 0x04 00001b1f: ADD 00001b20: PUSH1 0x40 00001b22: MLOAD 00001b23: DUP1 00001b24: SWAP2 00001b25: SUB 00001b26: SWAP1 00001b27: REVERT 00001b28: JUMPDEST 00001b29: PUSH1 0x06 00001b2b: DUP1 00001b2c: SLOAD 00001b2d: PUSH1 0xff 00001b2f: PUSH1 0xa8 00001b31: SHL 00001b32: NOT 00001b33: AND 00001b34: SWAP1 00001b35: SSTORE 00001b36: PUSH1 0x40 00001b38: MLOAD 00001b39: PUSH1 0x00 00001b3b: DUP2 00001b3c: MSTORE 00001b3d: PUSH32 0xb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c 00001b5e: SWAP1 00001b5f: PUSH1 0x20 00001b61: ADD 00001b62: PUSH2 0x0f8a 00001b65: JUMP 00001b66: JUMPDEST 00001b67: PUSH1 0x06 00001b69: SLOAD 00001b6a: PUSH1 0x01 00001b6c: PUSH1 0x01 00001b6e: PUSH1 0xa0 00001b70: SHL 00001b71: SUB 00001b72: AND 00001b73: CALLER 00001b74: EQ 00001b75: PUSH2 0x1b90 00001b78: JUMPI 00001b79: PUSH1 0x40 00001b7b: MLOAD 00001b7c: PUSH3 0x461bcd 00001b80: PUSH1 0xe5 00001b82: SHL 00001b83: DUP2 00001b84: MSTORE 00001b85: PUSH1 0x04 00001b87: ADD 00001b88: PUSH2 0x0c56 00001b8b: SWAP1 00001b8c: PUSH2 0x5674 00001b8f: JUMP 00001b90: JUMPDEST 00001b91: PUSH1 0x01 00001b93: PUSH1 0x01 00001b95: PUSH1 0xa0 00001b97: SHL 00001b98: SUB 00001b99: DUP2 00001b9a: AND 00001b9b: PUSH1 0x00 00001b9d: DUP2 00001b9e: DUP2 00001b9f: MSTORE 00001ba0: PUSH1 0x0e 00001ba2: PUSH1 0x20 00001ba4: SWAP1 00001ba5: DUP2 00001ba6: MSTORE 00001ba7: PUSH1 0x40 00001ba9: DUP1 00001baa: DUP4 00001bab: KECCAK256 00001bac: DUP1 00001bad: SLOAD 00001bae: PUSH1 0xff 00001bb0: NOT 00001bb1: AND 00001bb2: SWAP1 00001bb3: SSTORE 00001bb4: DUP1 00001bb5: MLOAD 00001bb6: SWAP4 00001bb7: DUP5 00001bb8: MSTORE 00001bb9: SWAP1 00001bba: DUP4 00001bbb: ADD 00001bbc: SWAP2 00001bbd: SWAP1 00001bbe: SWAP2 00001bbf: MSTORE 00001bc0: PUSH32 0x572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a 00001be1: SWAP2 00001be2: ADD 00001be3: PUSH2 0x159f 00001be6: JUMP 00001be7: JUMPDEST 00001be8: PUSH1 0x06 00001bea: SLOAD 00001beb: PUSH1 0x00 00001bed: SWAP1 00001bee: PUSH1 0x01 00001bf0: PUSH1 0xa0 00001bf2: SHL 00001bf3: SWAP1 00001bf4: DIV 00001bf5: PUSH1 0xff 00001bf7: AND 00001bf8: ISZERO 00001bf9: PUSH2 0x1c14 00001bfc: JUMPI 00001bfd: PUSH1 0x40 00001bff: MLOAD 00001c00: PUSH3 0x461bcd 00001c04: PUSH1 0xe5 00001c06: SHL 00001c07: DUP2 00001c08: MSTORE 00001c09: PUSH1 0x04 00001c0b: ADD 00001c0c: PUSH2 0x0c56 00001c0f: SWAP1 00001c10: PUSH2 0x5616 00001c13: JUMP 00001c14: JUMPDEST 00001c15: PUSH1 0x06 00001c17: DUP1 00001c18: SLOAD 00001c19: PUSH1 0xff 00001c1b: PUSH1 0xa0 00001c1d: SHL 00001c1e: NOT 00001c1f: AND 00001c20: PUSH1 0x01 00001c22: PUSH1 0xa0 00001c24: SHL 00001c25: OR 00001c26: SWAP1 00001c27: SSTORE 00001c28: PUSH1 0x00 00001c2a: DUP1 00001c2b: PUSH2 0x1c34 00001c2e: PUSH1 0x01 00001c30: PUSH2 0x3a39 00001c33: JUMP 00001c34: JUMPDEST 00001c35: SWAP2 00001c36: POP 00001c37: SWAP2 00001c38: POP 00001c39: PUSH2 0x1c43 00001c3c: DUP6 00001c3d: DUP4 00001c3e: DUP4 00001c3f: PUSH2 0x3f5e 00001c42: JUMP 00001c43: JUMPDEST 00001c44: SWAP3 00001c45: POP 00001c46: DUP3 00001c47: PUSH1 0x00 00001c49: SUB 00001c4a: PUSH2 0x1c66 00001c4d: JUMPI 00001c4e: PUSH1 0x40 00001c50: MLOAD 00001c51: PUSH4 0x426f1537 00001c56: PUSH1 0xe1 00001c58: SHL 00001c59: DUP2 00001c5a: MSTORE 00001c5b: PUSH1 0x04 00001c5d: ADD 00001c5e: PUSH1 0x40 00001c60: MLOAD 00001c61: DUP1 00001c62: SWAP2 00001c63: SUB 00001c64: SWAP1 00001c65: REVERT 00001c66: JUMPDEST 00001c67: PUSH1 0x07 00001c69: SLOAD 00001c6a: PUSH1 0x01 00001c6c: PUSH1 0x01 00001c6e: PUSH1 0xc0 00001c70: SHL 00001c71: SUB 00001c72: AND 00001c73: PUSH2 0x1c7c 00001c76: DUP5 00001c77: DUP4 00001c78: PUSH2 0x56d9 00001c7b: JUMP 00001c7c: JUMPDEST 00001c7d: GT 00001c7e: ISZERO 00001c7f: PUSH2 0x1c9b 00001c82: JUMPI 00001c83: PUSH1 0x40 00001c85: MLOAD 00001c86: PUSH4 0xadea3dfd 00001c8b: PUSH1 0xe0 00001c8d: SHL 00001c8e: DUP2 00001c8f: MSTORE 00001c90: PUSH1 0x04 00001c92: ADD 00001c93: PUSH1 0x40 00001c95: MLOAD 00001c96: DUP1 00001c97: SWAP2 00001c98: SUB 00001c99: SWAP1 00001c9a: REVERT 00001c9b: JUMPDEST 00001c9c: PUSH2 0x1ca6 00001c9f: DUP6 00001ca0: DUP5 00001ca1: DUP7 00001ca2: PUSH2 0x3f6b 00001ca5: JUMP 00001ca6: JUMPDEST 00001ca7: POP 00001ca8: POP 00001ca9: PUSH1 0x06 00001cab: DUP1 00001cac: SLOAD 00001cad: PUSH1 0xff 00001caf: PUSH1 0xa0 00001cb1: SHL 00001cb2: NOT 00001cb3: AND 00001cb4: SWAP1 00001cb5: SSTORE 00001cb6: SWAP3 00001cb7: SWAP2 00001cb8: POP 00001cb9: POP 00001cba: JUMP 00001cbb: JUMPDEST 00001cbc: PUSH1 0x60 00001cbe: PUSH1 0x09 00001cc0: DUP1 00001cc1: SLOAD 00001cc2: DUP1 00001cc3: PUSH1 0x20 00001cc5: MUL 00001cc6: PUSH1 0x20 00001cc8: ADD 00001cc9: PUSH1 0x40 00001ccb: MLOAD 00001ccc: SWAP1 00001ccd: DUP2 00001cce: ADD 00001ccf: PUSH1 0x40 00001cd1: MSTORE 00001cd2: DUP1 00001cd3: SWAP3 00001cd4: SWAP2 00001cd5: SWAP1 00001cd6: DUP2 00001cd7: DUP2 00001cd8: MSTORE 00001cd9: PUSH1 0x20 00001cdb: ADD 00001cdc: DUP3 00001cdd: DUP1 00001cde: SLOAD 00001cdf: DUP1 00001ce0: ISZERO 00001ce1: PUSH2 0x1624 00001ce4: JUMPI 00001ce5: PUSH1 0x00 00001ce7: SWAP2 00001ce8: DUP3 00001ce9: MSTORE 00001cea: PUSH1 0x20 00001cec: SWAP2 00001ced: DUP3 00001cee: SWAP1 00001cef: KECCAK256 00001cf0: DUP1 00001cf1: SLOAD 00001cf2: PUSH4 0xffffffff 00001cf7: AND 00001cf8: DUP5 00001cf9: MSTORE 00001cfa: SWAP1 00001cfb: DUP3 00001cfc: MUL 00001cfd: DUP4 00001cfe: ADD 00001cff: SWAP3 00001d00: SWAP1 00001d01: SWAP2 00001d02: PUSH1 0x04 00001d04: SWAP2 00001d05: ADD 00001d06: DUP1 00001d07: DUP5 00001d08: GT 00001d09: PUSH2 0x15e7 00001d0c: JUMPI 00001d0d: SWAP1 00001d0e: POP 00001d0f: POP 00001d10: POP 00001d11: POP 00001d12: POP 00001d13: POP 00001d14: SWAP1 00001d15: POP 00001d16: SWAP1 00001d17: JUMP 00001d18: JUMPDEST 00001d19: PUSH1 0x0c 00001d1b: PUSH1 0x20 00001d1d: MSTORE 00001d1e: PUSH1 0x00 00001d20: SWAP1 00001d21: DUP2 00001d22: MSTORE 00001d23: PUSH1 0x40 00001d25: SWAP1 00001d26: KECCAK256 00001d27: DUP1 00001d28: SLOAD 00001d29: PUSH1 0x01 00001d2b: DUP3 00001d2c: ADD 00001d2d: DUP1 00001d2e: SLOAD 00001d2f: PUSH1 0x01 00001d31: PUSH1 0x01 00001d33: PUSH1 0xa0 00001d35: SHL 00001d36: SUB 00001d37: DUP4 00001d38: AND 00001d39: SWAP4 00001d3a: PUSH1 0x01 00001d3c: PUSH1 0xa0 00001d3e: SHL 00001d3f: SWAP1 00001d40: SWAP4 00001d41: DIV 00001d42: PUSH1 0xff 00001d44: AND 00001d45: SWAP3 00001d46: SWAP2 00001d47: SWAP1 00001d48: PUSH2 0x1d50 00001d4b: SWAP1 00001d4c: PUSH2 0x563a 00001d4f: JUMP 00001d50: JUMPDEST 00001d51: DUP1 00001d52: PUSH1 0x1f 00001d54: ADD 00001d55: PUSH1 0x20 00001d57: DUP1 00001d58: SWAP2 00001d59: DIV 00001d5a: MUL 00001d5b: PUSH1 0x20 00001d5d: ADD 00001d5e: PUSH1 0x40 00001d60: MLOAD 00001d61: SWAP1 00001d62: DUP2 00001d63: ADD 00001d64: PUSH1 0x40 00001d66: MSTORE 00001d67: DUP1 00001d68: SWAP3 00001d69: SWAP2 00001d6a: SWAP1 00001d6b: DUP2 00001d6c: DUP2 00001d6d: MSTORE 00001d6e: PUSH1 0x20 00001d70: ADD 00001d71: DUP3 00001d72: DUP1 00001d73: SLOAD 00001d74: PUSH2 0x1d7c 00001d77: SWAP1 00001d78: PUSH2 0x563a 00001d7b: JUMP 00001d7c: JUMPDEST 00001d7d: DUP1 00001d7e: ISZERO 00001d7f: PUSH2 0x1dc9 00001d82: JUMPI 00001d83: DUP1 00001d84: PUSH1 0x1f 00001d86: LT 00001d87: PUSH2 0x1d9e 00001d8a: JUMPI 00001d8b: PUSH2 0x0100 00001d8e: DUP1 00001d8f: DUP4 00001d90: SLOAD 00001d91: DIV 00001d92: MUL 00001d93: DUP4 00001d94: MSTORE 00001d95: SWAP2 00001d96: PUSH1 0x20 00001d98: ADD 00001d99: SWAP2 00001d9a: PUSH2 0x1dc9 00001d9d: JUMP 00001d9e: JUMPDEST 00001d9f: DUP3 00001da0: ADD 00001da1: SWAP2 00001da2: SWAP1 00001da3: PUSH1 0x00 00001da5: MSTORE 00001da6: PUSH1 0x20 00001da8: PUSH1 0x00 00001daa: KECCAK256 00001dab: SWAP1 00001dac: JUMPDEST 00001dad: DUP2 00001dae: SLOAD 00001daf: DUP2 00001db0: MSTORE 00001db1: SWAP1 00001db2: PUSH1 0x01 00001db4: ADD 00001db5: SWAP1 00001db6: PUSH1 0x20 00001db8: ADD 00001db9: DUP1 00001dba: DUP4 00001dbb: GT 00001dbc: PUSH2 0x1dac 00001dbf: JUMPI 00001dc0: DUP3 00001dc1: SWAP1 00001dc2: SUB 00001dc3: PUSH1 0x1f 00001dc5: AND 00001dc6: DUP3 00001dc7: ADD 00001dc8: SWAP2 00001dc9: JUMPDEST 00001dca: POP 00001dcb: POP 00001dcc: POP 00001dcd: POP 00001dce: POP 00001dcf: SWAP1 00001dd0: DUP1 00001dd1: PUSH1 0x02 00001dd3: ADD 00001dd4: DUP1 00001dd5: SLOAD 00001dd6: PUSH2 0x1dde 00001dd9: SWAP1 00001dda: PUSH2 0x563a 00001ddd: JUMP 00001dde: JUMPDEST 00001ddf: DUP1 00001de0: PUSH1 0x1f 00001de2: ADD 00001de3: PUSH1 0x20 00001de5: DUP1 00001de6: SWAP2 00001de7: DIV 00001de8: MUL 00001de9: PUSH1 0x20 00001deb: ADD 00001dec: PUSH1 0x40 00001dee: MLOAD 00001def: SWAP1 00001df0: DUP2 00001df1: ADD 00001df2: PUSH1 0x40 00001df4: MSTORE 00001df5: DUP1 00001df6: SWAP3 00001df7: SWAP2 00001df8: SWAP1 00001df9: DUP2 00001dfa: DUP2 00001dfb: MSTORE 00001dfc: PUSH1 0x20 00001dfe: ADD 00001dff: DUP3 00001e00: DUP1 00001e01: SLOAD 00001e02: PUSH2 0x1e0a 00001e05: SWAP1 00001e06: PUSH2 0x563a 00001e09: JUMP 00001e0a: JUMPDEST 00001e0b: DUP1 00001e0c: ISZERO 00001e0d: PUSH2 0x1e57 00001e10: JUMPI 00001e11: DUP1 00001e12: PUSH1 0x1f 00001e14: LT 00001e15: PUSH2 0x1e2c 00001e18: JUMPI 00001e19: PUSH2 0x0100 00001e1c: DUP1 00001e1d: DUP4 00001e1e: SLOAD 00001e1f: DIV 00001e20: MUL 00001e21: DUP4 00001e22: MSTORE 00001e23: SWAP2 00001e24: PUSH1 0x20 00001e26: ADD 00001e27: SWAP2 00001e28: PUSH2 0x1e57 00001e2b: JUMP 00001e2c: JUMPDEST 00001e2d: DUP3 00001e2e: ADD 00001e2f: SWAP2 00001e30: SWAP1 00001e31: PUSH1 0x00 00001e33: MSTORE 00001e34: PUSH1 0x20 00001e36: PUSH1 0x00 00001e38: KECCAK256 00001e39: SWAP1 00001e3a: JUMPDEST 00001e3b: DUP2 00001e3c: SLOAD 00001e3d: DUP2 00001e3e: MSTORE 00001e3f: SWAP1 00001e40: PUSH1 0x01 00001e42: ADD 00001e43: SWAP1 00001e44: PUSH1 0x20 00001e46: ADD 00001e47: DUP1 00001e48: DUP4 00001e49: GT 00001e4a: PUSH2 0x1e3a 00001e4d: JUMPI 00001e4e: DUP3 00001e4f: SWAP1 00001e50: SUB 00001e51: PUSH1 0x1f 00001e53: AND 00001e54: DUP3 00001e55: ADD 00001e56: SWAP2 00001e57: JUMPDEST 00001e58: POP 00001e59: POP 00001e5a: POP 00001e5b: POP 00001e5c: POP 00001e5d: SWAP1 00001e5e: POP 00001e5f: DUP5 00001e60: JUMP 00001e61: JUMPDEST 00001e62: PUSH1 0x09 00001e64: SLOAD 00001e65: PUSH1 0x0a 00001e67: SLOAD 00001e68: PUSH1 0x60 00001e6a: SWAP2 00001e6b: DUP3 00001e6c: SWAP2 00001e6d: DUP3 00001e6e: SWAP2 00001e6f: SWAP1 00001e70: PUSH2 0x1e79 00001e73: DUP2 00001e74: DUP4 00001e75: PUSH2 0x56d9 00001e78: JUMP 00001e79: JUMPDEST 00001e7a: PUSH1 0x01 00001e7c: PUSH1 0x01 00001e7e: PUSH1 0x40 00001e80: SHL 00001e81: SUB 00001e82: DUP2 00001e83: GT 00001e84: ISZERO 00001e85: PUSH2 0x1e90 00001e88: JUMPI 00001e89: PUSH2 0x1e90 00001e8c: PUSH2 0x4ee5 00001e8f: JUMP 00001e90: JUMPDEST 00001e91: PUSH1 0x40 00001e93: MLOAD 00001e94: SWAP1 00001e95: DUP1 00001e96: DUP3 00001e97: MSTORE 00001e98: DUP1 00001e99: PUSH1 0x20 00001e9b: MUL 00001e9c: PUSH1 0x20 00001e9e: ADD 00001e9f: DUP3 00001ea0: ADD 00001ea1: PUSH1 0x40 00001ea3: MSTORE 00001ea4: DUP1 00001ea5: ISZERO 00001ea6: PUSH2 0x1eb9 00001ea9: JUMPI 00001eaa: DUP2 00001eab: PUSH1 0x20 00001ead: ADD 00001eae: PUSH1 0x20 00001eb0: DUP3 00001eb1: MUL 00001eb2: DUP1 00001eb3: CALLDATASIZE 00001eb4: DUP4 00001eb5: CALLDATACOPY 00001eb6: ADD 00001eb7: SWAP1 00001eb8: POP 00001eb9: JUMPDEST 00001eba: POP 00001ebb: SWAP5 00001ebc: POP 00001ebd: PUSH2 0x1ec6 00001ec0: DUP2 00001ec1: DUP4 00001ec2: PUSH2 0x56d9 00001ec5: JUMP 00001ec6: JUMPDEST 00001ec7: PUSH1 0x01 00001ec9: PUSH1 0x01 00001ecb: PUSH1 0x40 00001ecd: SHL 00001ece: SUB 00001ecf: DUP2 00001ed0: GT 00001ed1: ISZERO 00001ed2: PUSH2 0x1edd 00001ed5: JUMPI 00001ed6: PUSH2 0x1edd 00001ed9: PUSH2 0x4ee5 00001edc: JUMP 00001edd: JUMPDEST 00001ede: PUSH1 0x40 00001ee0: MLOAD 00001ee1: SWAP1 00001ee2: DUP1 00001ee3: DUP3 00001ee4: MSTORE 00001ee5: DUP1 00001ee6: PUSH1 0x20 00001ee8: MUL 00001ee9: PUSH1 0x20 00001eeb: ADD 00001eec: DUP3 00001eed: ADD 00001eee: PUSH1 0x40 00001ef0: MSTORE 00001ef1: DUP1 00001ef2: ISZERO 00001ef3: PUSH2 0x1f06 00001ef6: JUMPI 00001ef7: DUP2 00001ef8: PUSH1 0x20 00001efa: ADD 00001efb: PUSH1 0x20 00001efd: DUP3 00001efe: MUL 00001eff: DUP1 00001f00: CALLDATASIZE 00001f01: DUP4 00001f02: CALLDATACOPY 00001f03: ADD 00001f04: SWAP1 00001f05: POP 00001f06: JUMPDEST 00001f07: POP 00001f08: SWAP4 00001f09: POP 00001f0a: PUSH2 0x1f13 00001f0d: DUP2 00001f0e: DUP4 00001f0f: PUSH2 0x56d9 00001f12: JUMP 00001f13: JUMPDEST 00001f14: PUSH1 0x01 00001f16: PUSH1 0x01 00001f18: PUSH1 0x40 00001f1a: SHL 00001f1b: SUB 00001f1c: DUP2 00001f1d: GT 00001f1e: ISZERO 00001f1f: PUSH2 0x1f2a 00001f22: JUMPI 00001f23: PUSH2 0x1f2a 00001f26: PUSH2 0x4ee5 00001f29: JUMP 00001f2a: JUMPDEST 00001f2b: PUSH1 0x40 00001f2d: MLOAD 00001f2e: SWAP1 00001f2f: DUP1 00001f30: DUP3 00001f31: MSTORE 00001f32: DUP1 00001f33: PUSH1 0x20 00001f35: MUL 00001f36: PUSH1 0x20 00001f38: ADD 00001f39: DUP3 00001f3a: ADD 00001f3b: PUSH1 0x40 00001f3d: MSTORE 00001f3e: DUP1 00001f3f: ISZERO 00001f40: PUSH2 0x1f53 00001f43: JUMPI 00001f44: DUP2 00001f45: PUSH1 0x20 00001f47: ADD 00001f48: PUSH1 0x20 00001f4a: DUP3 00001f4b: MUL 00001f4c: DUP1 00001f4d: CALLDATASIZE 00001f4e: DUP4 00001f4f: CALLDATACOPY 00001f50: ADD 00001f51: SWAP1 00001f52: POP 00001f53: JUMPDEST 00001f54: POP 00001f55: SWAP3 00001f56: POP 00001f57: PUSH1 0x00 00001f59: JUMPDEST 00001f5a: DUP3 00001f5b: DUP2 00001f5c: LT 00001f5d: ISZERO 00001f5e: PUSH2 0x2067 00001f61: JUMPI 00001f62: PUSH2 0x1fa2 00001f65: PUSH1 0x09 00001f67: DUP3 00001f68: DUP2 00001f69: SLOAD 00001f6a: DUP2 00001f6b: LT 00001f6c: PUSH2 0x1f77 00001f6f: JUMPI 00001f70: PUSH2 0x1f77 00001f73: PUSH2 0x56c3 00001f76: JUMP 00001f77: JUMPDEST 00001f78: SWAP1 00001f79: PUSH1 0x00 00001f7b: MSTORE 00001f7c: PUSH1 0x20 00001f7e: PUSH1 0x00 00001f80: KECCAK256 00001f81: SWAP1 00001f82: PUSH1 0x08 00001f84: SWAP2 00001f85: DUP3 00001f86: DUP3 00001f87: DIV 00001f88: ADD 00001f89: SWAP2 00001f8a: SWAP1 00001f8b: MOD 00001f8c: PUSH1 0x04 00001f8e: MUL 00001f8f: SWAP1 00001f90: SLOAD 00001f91: SWAP1 00001f92: PUSH2 0x0100 00001f95: EXP 00001f96: SWAP1 00001f97: DIV 00001f98: PUSH4 0xffffffff 00001f9d: AND 00001f9e: PUSH2 0x39a9 00001fa1: JUMP 00001fa2: JUMPDEST 00001fa3: DUP7 00001fa4: DUP3 00001fa5: DUP2 00001fa6: MLOAD 00001fa7: DUP2 00001fa8: LT 00001fa9: PUSH2 0x1fb4 00001fac: JUMPI 00001fad: PUSH2 0x1fb4 00001fb0: PUSH2 0x56c3 00001fb3: JUMP 00001fb4: JUMPDEST 00001fb5: PUSH1 0x20 00001fb7: MUL 00001fb8: PUSH1 0x20 00001fba: ADD 00001fbb: ADD 00001fbc: SWAP1 00001fbd: PUSH1 0x01 00001fbf: PUSH1 0x01 00001fc1: PUSH1 0xa0 00001fc3: SHL 00001fc4: SUB 00001fc5: AND 00001fc6: SWAP1 00001fc7: DUP2 00001fc8: PUSH1 0x01 00001fca: PUSH1 0x01 00001fcc: PUSH1 0xa0 00001fce: SHL 00001fcf: SUB 00001fd0: AND 00001fd1: DUP2 00001fd2: MSTORE 00001fd3: POP 00001fd4: POP 00001fd5: PUSH2 0x2015 00001fd8: PUSH1 0x09 00001fda: DUP3 00001fdb: DUP2 00001fdc: SLOAD 00001fdd: DUP2 00001fde: LT 00001fdf: PUSH2 0x1fea 00001fe2: JUMPI 00001fe3: PUSH2 0x1fea 00001fe6: PUSH2 0x56c3 00001fe9: JUMP 00001fea: JUMPDEST 00001feb: SWAP1 00001fec: PUSH1 0x00 00001fee: MSTORE 00001fef: PUSH1 0x20 00001ff1: PUSH1 0x00 00001ff3: KECCAK256 00001ff4: SWAP1 00001ff5: PUSH1 0x08 00001ff7: SWAP2 00001ff8: DUP3 00001ff9: DUP3 00001ffa: DIV 00001ffb: ADD 00001ffc: SWAP2 00001ffd: SWAP1 00001ffe: MOD 00001fff: PUSH1 0x04 00002001: MUL 00002002: SWAP1 00002003: SLOAD 00002004: SWAP1 00002005: PUSH2 0x0100 00002008: EXP 00002009: SWAP1 0000200a: DIV 0000200b: PUSH4 0xffffffff 00002010: AND 00002011: PUSH2 0x3b98 00002014: JUMP 00002015: JUMPDEST 00002016: DUP6 00002017: DUP3 00002018: DUP2 00002019: MLOAD 0000201a: DUP2 0000201b: LT 0000201c: PUSH2 0x2027 0000201f: JUMPI 00002020: PUSH2 0x2027 00002023: PUSH2 0x56c3 00002026: JUMP 00002027: JUMPDEST 00002028: PUSH1 0x20 0000202a: MUL 0000202b: PUSH1 0x20 0000202d: ADD 0000202e: ADD 0000202f: DUP2 00002030: DUP2 00002031: MSTORE 00002032: POP 00002033: POP 00002034: PUSH1 0x00 00002036: DUP5 00002037: DUP3 00002038: DUP2 00002039: MLOAD 0000203a: DUP2 0000203b: LT 0000203c: PUSH2 0x2047 0000203f: JUMPI 00002040: PUSH2 0x2047 00002043: PUSH2 0x56c3 00002046: JUMP 00002047: JUMPDEST 00002048: SWAP2 00002049: ISZERO 0000204a: ISZERO 0000204b: PUSH1 0x20 0000204d: SWAP3 0000204e: DUP4 0000204f: MUL 00002050: SWAP2 00002051: SWAP1 00002052: SWAP2 00002053: ADD 00002054: SWAP1 00002055: SWAP2 00002056: ADD 00002057: MSTORE 00002058: PUSH2 0x2060 0000205b: DUP2 0000205c: PUSH2 0x583d 0000205f: JUMP 00002060: JUMPDEST 00002061: SWAP1 00002062: POP 00002063: PUSH2 0x1f59 00002066: JUMP 00002067: JUMPDEST 00002068: POP 00002069: PUSH1 0x00 0000206b: JUMPDEST 0000206c: DUP2 0000206d: DUP2 0000206e: LT 0000206f: ISZERO 00002070: PUSH2 0x214a 00002073: JUMPI 00002074: PUSH2 0x2089 00002077: PUSH1 0x0a 00002079: DUP3 0000207a: DUP2 0000207b: SLOAD 0000207c: DUP2 0000207d: LT 0000207e: PUSH2 0x1f77 00002081: JUMPI 00002082: PUSH2 0x1f77 00002085: PUSH2 0x56c3 00002088: JUMP 00002089: JUMPDEST 0000208a: PUSH1 0x09 0000208c: SLOAD 0000208d: DUP8 0000208e: SWAP1 0000208f: PUSH2 0x2098 00002092: SWAP1 00002093: DUP5 00002094: PUSH2 0x56d9 00002097: JUMP 00002098: JUMPDEST 00002099: DUP2 0000209a: MLOAD 0000209b: DUP2 0000209c: LT 0000209d: PUSH2 0x20a8 000020a0: JUMPI 000020a1: PUSH2 0x20a8 000020a4: PUSH2 0x56c3 000020a7: JUMP 000020a8: JUMPDEST 000020a9: PUSH1 0x20 000020ab: MUL 000020ac: PUSH1 0x20 000020ae: ADD 000020af: ADD 000020b0: SWAP1 000020b1: PUSH1 0x01 000020b3: PUSH1 0x01 000020b5: PUSH1 0xa0 000020b7: SHL 000020b8: SUB 000020b9: AND 000020ba: SWAP1 000020bb: DUP2 000020bc: PUSH1 0x01 000020be: PUSH1 0x01 000020c0: PUSH1 0xa0 000020c2: SHL 000020c3: SUB 000020c4: AND 000020c5: DUP2 000020c6: MSTORE 000020c7: POP 000020c8: POP 000020c9: PUSH2 0x20de 000020cc: PUSH1 0x0a 000020ce: DUP3 000020cf: DUP2 000020d0: SLOAD 000020d1: DUP2 000020d2: LT 000020d3: PUSH2 0x1fea 000020d6: JUMPI 000020d7: PUSH2 0x1fea 000020da: PUSH2 0x56c3 000020dd: JUMP 000020de: JUMPDEST 000020df: PUSH1 0x09 000020e1: SLOAD 000020e2: DUP7 000020e3: SWAP1 000020e4: PUSH2 0x20ed 000020e7: SWAP1 000020e8: DUP5 000020e9: PUSH2 0x56d9 000020ec: JUMP 000020ed: JUMPDEST 000020ee: DUP2 000020ef: MLOAD 000020f0: DUP2 000020f1: LT 000020f2: PUSH2 0x20fd 000020f5: JUMPI 000020f6: PUSH2 0x20fd 000020f9: PUSH2 0x56c3 000020fc: JUMP 000020fd: JUMPDEST 000020fe: PUSH1 0x20 00002100: SWAP1 00002101: DUP2 00002102: MUL 00002103: SWAP2 00002104: SWAP1 00002105: SWAP2 00002106: ADD 00002107: ADD 00002108: MSTORE 00002109: PUSH1 0x09 0000210b: SLOAD 0000210c: PUSH1 0x01 0000210e: SWAP1 0000210f: DUP6 00002110: SWAP1 00002111: PUSH2 0x211a 00002114: SWAP1 00002115: DUP5 00002116: PUSH2 0x56d9 00002119: JUMP 0000211a: JUMPDEST 0000211b: DUP2 0000211c: MLOAD 0000211d: DUP2 0000211e: LT 0000211f: PUSH2 0x212a 00002122: JUMPI 00002123: PUSH2 0x212a 00002126: PUSH2 0x56c3 00002129: JUMP 0000212a: JUMPDEST 0000212b: SWAP2 0000212c: ISZERO 0000212d: ISZERO 0000212e: PUSH1 0x20 00002130: SWAP3 00002131: DUP4 00002132: MUL 00002133: SWAP2 00002134: SWAP1 00002135: SWAP2 00002136: ADD 00002137: SWAP1 00002138: SWAP2 00002139: ADD 0000213a: MSTORE 0000213b: PUSH2 0x2143 0000213e: DUP2 0000213f: PUSH2 0x583d 00002142: JUMP 00002143: JUMPDEST 00002144: SWAP1 00002145: POP 00002146: PUSH2 0x206b 00002149: JUMP 0000214a: JUMPDEST 0000214b: POP 0000214c: POP 0000214d: POP 0000214e: SWAP1 0000214f: SWAP2 00002150: SWAP3 00002151: JUMP 00002152: JUMPDEST 00002153: PUSH1 0x06 00002155: SLOAD 00002156: PUSH1 0x00 00002158: SWAP1 00002159: PUSH1 0x01 0000215b: PUSH1 0xa0 0000215d: SHL 0000215e: SWAP1 0000215f: DIV 00002160: PUSH1 0xff 00002162: AND 00002163: ISZERO 00002164: PUSH2 0x217f 00002167: JUMPI 00002168: PUSH1 0x40 0000216a: MLOAD 0000216b: PUSH3 0x461bcd 0000216f: PUSH1 0xe5 00002171: SHL 00002172: DUP2 00002173: MSTORE 00002174: PUSH1 0x04 00002176: ADD 00002177: PUSH2 0x0c56 0000217a: SWAP1 0000217b: PUSH2 0x5616 0000217e: JUMP 0000217f: JUMPDEST 00002180: PUSH1 0x06 00002182: DUP1 00002183: SLOAD 00002184: PUSH1 0xff 00002186: PUSH1 0xa0 00002188: SHL 00002189: NOT 0000218a: AND 0000218b: PUSH1 0x01 0000218d: PUSH1 0xa0 0000218f: SHL 00002190: OR 00002191: SWAP1 00002192: SSTORE 00002193: PUSH1 0x00 00002195: DUP1 00002196: PUSH2 0x219f 00002199: PUSH1 0x01 0000219b: PUSH2 0x3a39 0000219e: JUMP 0000219f: JUMPDEST 000021a0: SWAP2 000021a1: POP 000021a2: SWAP2 000021a3: POP 000021a4: PUSH2 0x21ae 000021a7: DUP6 000021a8: DUP4 000021a9: DUP4 000021aa: PUSH2 0x4006 000021ad: JUMP 000021ae: JUMPDEST 000021af: SWAP3 000021b0: POP 000021b1: DUP3 000021b2: PUSH1 0x00 000021b4: SUB 000021b5: PUSH2 0x21d1 000021b8: JUMPI 000021b9: PUSH1 0x40 000021bb: MLOAD 000021bc: PUSH4 0x97683005 000021c1: PUSH1 0xe0 000021c3: SHL 000021c4: DUP2 000021c5: MSTORE 000021c6: PUSH1 0x04 000021c8: ADD 000021c9: PUSH1 0x40 000021cb: MLOAD 000021cc: DUP1 000021cd: SWAP2 000021ce: SUB 000021cf: SWAP1 000021d0: REVERT 000021d1: JUMPDEST 000021d2: PUSH1 0x07 000021d4: SLOAD 000021d5: PUSH1 0x01 000021d7: PUSH1 0x01 000021d9: PUSH1 0xc0 000021db: SHL 000021dc: SUB 000021dd: AND 000021de: PUSH2 0x21e7 000021e1: DUP7 000021e2: DUP4 000021e3: PUSH2 0x56d9 000021e6: JUMP 000021e7: JUMPDEST 000021e8: GT 000021e9: ISZERO 000021ea: PUSH2 0x2206 000021ed: JUMPI 000021ee: PUSH1 0x40 000021f0: MLOAD 000021f1: PUSH4 0xadea3dfd 000021f6: PUSH1 0xe0 000021f8: SHL 000021f9: DUP2 000021fa: MSTORE 000021fb: PUSH1 0x04 000021fd: ADD 000021fe: PUSH1 0x40 00002200: MLOAD 00002201: DUP1 00002202: SWAP2 00002203: SUB 00002204: SWAP1 00002205: REVERT 00002206: JUMPDEST 00002207: PUSH2 0x1ca6 0000220a: DUP4 0000220b: DUP7 0000220c: DUP7 0000220d: PUSH2 0x3f6b 00002210: JUMP 00002211: JUMPDEST 00002212: PUSH1 0x01 00002214: DUP1 00002215: SLOAD 00002216: PUSH2 0x0c7b 00002219: SWAP1 0000221a: PUSH2 0x563a 0000221d: JUMP 0000221e: JUMPDEST 0000221f: PUSH1 0x06 00002221: SLOAD 00002222: PUSH1 0x01 00002224: PUSH1 0x01 00002226: PUSH1 0xa0 00002228: SHL 00002229: SUB 0000222a: AND 0000222b: CALLER 0000222c: EQ 0000222d: PUSH2 0x2248 00002230: JUMPI 00002231: PUSH1 0x40 00002233: MLOAD 00002234: PUSH3 0x461bcd 00002238: PUSH1 0xe5 0000223a: SHL 0000223b: DUP2 0000223c: MSTORE 0000223d: PUSH1 0x04 0000223f: ADD 00002240: PUSH2 0x0c56 00002243: SWAP1 00002244: PUSH2 0x5674 00002247: JUMP 00002248: JUMPDEST 00002249: PUSH2 0x2250 0000224c: PUSH2 0x3b6d 0000224f: JUMP 00002250: JUMPDEST 00002251: PUSH4 0xffffffff 00002256: DUP4 00002257: AND 00002258: PUSH1 0x00 0000225a: SWAP1 0000225b: DUP2 0000225c: MSTORE 0000225d: PUSH1 0x0b 0000225f: PUSH1 0x20 00002261: MSTORE 00002262: PUSH1 0x40 00002264: SWAP1 00002265: KECCAK256 00002266: SLOAD 00002267: PUSH1 0xff 00002269: AND 0000226a: ISZERO 0000226b: PUSH2 0x228f 0000226e: JUMPI 0000226f: PUSH1 0x40 00002271: MLOAD 00002272: PUSH4 0x335894fb 00002277: PUSH1 0xe1 00002279: SHL 0000227a: DUP2 0000227b: MSTORE 0000227c: PUSH4 0xffffffff 00002281: DUP5 00002282: AND 00002283: PUSH1 0x04 00002285: DUP3 00002286: ADD 00002287: MSTORE 00002288: PUSH1 0x24 0000228a: ADD 0000228b: PUSH2 0x0c56 0000228e: JUMP 0000228f: JUMPDEST 00002290: PUSH4 0xffffffff 00002295: DUP4 00002296: AND 00002297: PUSH1 0x00 00002299: SWAP1 0000229a: DUP2 0000229b: MSTORE 0000229c: PUSH1 0x0d 0000229e: PUSH1 0x20 000022a0: MSTORE 000022a1: PUSH1 0x40 000022a3: SWAP1 000022a4: KECCAK256 000022a5: SLOAD 000022a6: PUSH1 0xff 000022a8: AND 000022a9: PUSH2 0x22cd 000022ac: JUMPI 000022ad: PUSH1 0x40 000022af: MLOAD 000022b0: PUSH4 0x1f9db01d 000022b5: PUSH1 0xe3 000022b7: SHL 000022b8: DUP2 000022b9: MSTORE 000022ba: PUSH4 0xffffffff 000022bf: DUP5 000022c0: AND 000022c1: PUSH1 0x04 000022c3: DUP3 000022c4: ADD 000022c5: MSTORE 000022c6: PUSH1 0x24 000022c8: ADD 000022c9: PUSH2 0x0c56 000022cc: JUMP 000022cd: JUMPDEST 000022ce: PUSH1 0x40 000022d0: MLOAD 000022d1: PUSH4 0x85ae5d57 000022d6: PUSH1 0xe0 000022d8: SHL 000022d9: DUP2 000022da: MSTORE 000022db: PUSH4 0xffffffff 000022e0: DUP5 000022e1: AND 000022e2: PUSH1 0x04 000022e4: DUP3 000022e5: ADD 000022e6: MSTORE 000022e7: PUSH1 0x00 000022e9: SWAP1 000022ea: DUP2 000022eb: SWAP1 000022ec: DUP2 000022ed: SWAP1 000022ee: PUSH1 0x01 000022f0: PUSH1 0x01 000022f2: PUSH1 0xa0 000022f4: SHL 000022f5: SUB 000022f6: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476 00002317: AND 00002318: SWAP1 00002319: PUSH4 0x85ae5d57 0000231e: SWAP1 0000231f: PUSH1 0x24 00002321: ADD 00002322: PUSH1 0x00 00002324: PUSH1 0x40 00002326: MLOAD 00002327: DUP1 00002328: DUP4 00002329: SUB 0000232a: DUP2 0000232b: DUP7 0000232c: GAS 0000232d: STATICCALL 0000232e: ISZERO 0000232f: DUP1 00002330: ISZERO 00002331: PUSH2 0x233e 00002334: JUMPI 00002335: RETURNDATASIZE 00002336: PUSH1 0x00 00002338: DUP1 00002339: RETURNDATACOPY 0000233a: RETURNDATASIZE 0000233b: PUSH1 0x00 0000233d: REVERT 0000233e: JUMPDEST 0000233f: POP 00002340: POP 00002341: POP 00002342: POP 00002343: PUSH1 0x40 00002345: MLOAD 00002346: RETURNDATASIZE 00002347: PUSH1 0x00 00002349: DUP3 0000234a: RETURNDATACOPY 0000234b: PUSH1 0x1f 0000234d: RETURNDATASIZE 0000234e: SWAP1 0000234f: DUP2 00002350: ADD 00002351: PUSH1 0x1f 00002353: NOT 00002354: AND 00002355: DUP3 00002356: ADD 00002357: PUSH1 0x40 00002359: MSTORE 0000235a: PUSH2 0x2366 0000235d: SWAP2 0000235e: SWAP1 0000235f: DUP2 00002360: ADD 00002361: SWAP1 00002362: PUSH2 0x5856 00002365: JUMP 00002366: JUMPDEST 00002367: SWAP3 00002368: POP 00002369: SWAP3 0000236a: POP 0000236b: SWAP3 0000236c: POP 0000236d: DUP4 0000236e: ISZERO 0000236f: ISZERO 00002370: DUP3 00002371: ISZERO 00002372: ISZERO 00002373: EQ 00002374: PUSH2 0x2398 00002377: JUMPI 00002378: PUSH1 0x40 0000237a: MLOAD 0000237b: PUSH4 0x2b1d0bd3 00002380: PUSH1 0xe1 00002382: SHL 00002383: DUP2 00002384: MSTORE 00002385: PUSH4 0xffffffff 0000238a: DUP8 0000238b: AND 0000238c: PUSH1 0x04 0000238e: DUP3 0000238f: ADD 00002390: MSTORE 00002391: PUSH1 0x24 00002393: ADD 00002394: PUSH2 0x0c56 00002397: JUMP 00002398: JUMPDEST 00002399: PUSH1 0x40 0000239b: DUP1 0000239c: MLOAD 0000239d: PUSH1 0x80 0000239f: DUP2 000023a0: ADD 000023a1: DUP3 000023a2: MSTORE 000023a3: PUSH1 0x01 000023a5: PUSH1 0x01 000023a7: PUSH1 0xa0 000023a9: SHL 000023aa: SUB 000023ab: DUP1 000023ac: DUP7 000023ad: AND 000023ae: DUP3 000023af: MSTORE 000023b0: DUP5 000023b1: ISZERO 000023b2: ISZERO 000023b3: PUSH1 0x20 000023b5: DUP1 000023b6: DUP5 000023b7: ADD 000023b8: SWAP2 000023b9: DUP3 000023ba: MSTORE 000023bb: DUP4 000023bc: DUP6 000023bd: ADD 000023be: DUP7 000023bf: DUP2 000023c0: MSTORE 000023c1: PUSH1 0x60 000023c3: DUP6 000023c4: ADD 000023c5: DUP12 000023c6: SWAP1 000023c7: MSTORE 000023c8: PUSH4 0xffffffff 000023cd: DUP13 000023ce: AND 000023cf: PUSH1 0x00 000023d1: SWAP1 000023d2: DUP2 000023d3: MSTORE 000023d4: PUSH1 0x0c 000023d6: SWAP1 000023d7: SWAP3 000023d8: MSTORE 000023d9: SWAP5 000023da: SWAP1 000023db: KECCAK256 000023dc: DUP4 000023dd: MLOAD 000023de: DUP2 000023df: SLOAD 000023e0: SWAP3 000023e1: MLOAD 000023e2: ISZERO 000023e3: ISZERO 000023e4: PUSH1 0x01 000023e6: PUSH1 0xa0 000023e8: SHL 000023e9: MUL 000023ea: PUSH1 0x01 000023ec: PUSH1 0x01 000023ee: PUSH1 0xa8 000023f0: SHL 000023f1: SUB 000023f2: NOT 000023f3: SWAP1 000023f4: SWAP4 000023f5: AND 000023f6: SWAP4 000023f7: AND 000023f8: SWAP3 000023f9: SWAP1 000023fa: SWAP3 000023fb: OR 000023fc: OR 000023fd: DUP2 000023fe: SSTORE 000023ff: SWAP2 00002400: MLOAD 00002401: SWAP1 00002402: SWAP2 00002403: SWAP1 00002404: PUSH1 0x01 00002406: DUP3 00002407: ADD 00002408: SWAP1 00002409: PUSH2 0x2412 0000240c: SWAP1 0000240d: DUP3 0000240e: PUSH2 0x593b 00002411: JUMP 00002412: JUMPDEST 00002413: POP 00002414: PUSH1 0x60 00002416: DUP3 00002417: ADD 00002418: MLOAD 00002419: PUSH1 0x02 0000241b: DUP3 0000241c: ADD 0000241d: SWAP1 0000241e: PUSH2 0x2427 00002421: SWAP1 00002422: DUP3 00002423: PUSH2 0x593b 00002426: JUMP 00002427: JUMPDEST 00002428: POP 00002429: SWAP1 0000242a: POP 0000242b: POP 0000242c: DUP2 0000242d: ISZERO 0000242e: PUSH2 0x2468 00002431: JUMPI 00002432: PUSH1 0x0a 00002434: SLOAD 00002435: PUSH1 0x20 00002437: GT 00002438: PUSH2 0x2457 0000243b: JUMPI 0000243c: PUSH1 0x40 0000243e: MLOAD 0000243f: PUSH4 0xf025236d 00002444: PUSH1 0xe0 00002446: SHL 00002447: DUP2 00002448: MSTORE 00002449: PUSH1 0x20 0000244b: PUSH1 0x04 0000244d: DUP3 0000244e: ADD 0000244f: MSTORE 00002450: PUSH1 0x24 00002452: ADD 00002453: PUSH2 0x0c56 00002456: JUMP 00002457: JUMPDEST 00002458: PUSH2 0x2463 0000245b: PUSH1 0x0a 0000245d: DUP9 0000245e: DUP9 0000245f: PUSH2 0x4013 00002462: JUMP 00002463: JUMPDEST 00002464: PUSH2 0x249a 00002467: JUMP 00002468: JUMPDEST 00002469: PUSH1 0x09 0000246b: SLOAD 0000246c: PUSH1 0x20 0000246e: GT 0000246f: PUSH2 0x248e 00002472: JUMPI 00002473: PUSH1 0x40 00002475: MLOAD 00002476: PUSH4 0xf025236d 0000247b: PUSH1 0xe0 0000247d: SHL 0000247e: DUP2 0000247f: MSTORE 00002480: PUSH1 0x20 00002482: PUSH1 0x04 00002484: DUP3 00002485: ADD 00002486: MSTORE 00002487: PUSH1 0x24 00002489: ADD 0000248a: PUSH2 0x0c56 0000248d: JUMP 0000248e: JUMPDEST 0000248f: PUSH2 0x249a 00002492: PUSH1 0x09 00002494: DUP9 00002495: DUP9 00002496: PUSH2 0x4013 00002499: JUMP 0000249a: JUMPDEST 0000249b: PUSH4 0xffffffff 000024a0: DUP7 000024a1: AND 000024a2: PUSH1 0x00 000024a4: SWAP1 000024a5: DUP2 000024a6: MSTORE 000024a7: PUSH1 0x0b 000024a9: PUSH1 0x20 000024ab: MSTORE 000024ac: PUSH1 0x40 000024ae: SWAP1 000024af: DUP2 000024b0: SWAP1 000024b1: KECCAK256 000024b2: DUP1 000024b3: SLOAD 000024b4: PUSH1 0xff 000024b6: NOT 000024b7: AND 000024b8: PUSH1 0x01 000024ba: OR 000024bb: SWAP1 000024bc: SSTORE 000024bd: MLOAD 000024be: PUSH32 0xc4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb 000024df: SWAP1 000024e0: PUSH2 0x24fe 000024e3: SWAP1 000024e4: DUP9 000024e5: SWAP1 000024e6: DUP11 000024e7: SWAP1 000024e8: PUSH4 0xffffffff 000024ed: SWAP3 000024ee: DUP4 000024ef: AND 000024f0: DUP2 000024f1: MSTORE 000024f2: SWAP2 000024f3: AND 000024f4: PUSH1 0x20 000024f6: DUP3 000024f7: ADD 000024f8: MSTORE 000024f9: PUSH1 0x40 000024fb: ADD 000024fc: SWAP1 000024fd: JUMP 000024fe: JUMPDEST 000024ff: PUSH1 0x40 00002501: MLOAD 00002502: DUP1 00002503: SWAP2 00002504: SUB 00002505: SWAP1 00002506: LOG1 00002507: POP 00002508: POP 00002509: POP 0000250a: POP 0000250b: POP 0000250c: POP 0000250d: POP 0000250e: JUMP 0000250f: JUMPDEST 00002510: PUSH1 0x06 00002512: SLOAD 00002513: PUSH1 0x01 00002515: PUSH1 0x01 00002517: PUSH1 0xa0 00002519: SHL 0000251a: SUB 0000251b: AND 0000251c: CALLER 0000251d: EQ 0000251e: PUSH2 0x2539 00002521: JUMPI 00002522: PUSH1 0x40 00002524: MLOAD 00002525: PUSH3 0x461bcd 00002529: PUSH1 0xe5 0000252b: SHL 0000252c: DUP2 0000252d: MSTORE 0000252e: PUSH1 0x04 00002530: ADD 00002531: PUSH2 0x0c56 00002534: SWAP1 00002535: PUSH2 0x5674 00002538: JUMP 00002539: JUMPDEST 0000253a: PUSH1 0x00 0000253c: DUP2 0000253d: PUSH2 0x2584 00002540: JUMPI 00002541: PUSH1 0x09 00002543: DUP5 00002544: PUSH4 0xffffffff 00002549: AND 0000254a: DUP2 0000254b: SLOAD 0000254c: DUP2 0000254d: LT 0000254e: PUSH2 0x2559 00002551: JUMPI 00002552: PUSH2 0x2559 00002555: PUSH2 0x56c3 00002558: JUMP 00002559: JUMPDEST 0000255a: SWAP1 0000255b: PUSH1 0x00 0000255d: MSTORE 0000255e: PUSH1 0x20 00002560: PUSH1 0x00 00002562: KECCAK256 00002563: SWAP1 00002564: PUSH1 0x08 00002566: SWAP2 00002567: DUP3 00002568: DUP3 00002569: DIV 0000256a: ADD 0000256b: SWAP2 0000256c: SWAP1 0000256d: MOD 0000256e: PUSH1 0x04 00002570: MUL 00002571: SWAP1 00002572: SLOAD 00002573: SWAP1 00002574: PUSH2 0x0100 00002577: EXP 00002578: SWAP1 00002579: DIV 0000257a: PUSH4 0xffffffff 0000257f: AND 00002580: PUSH2 0x25c4 00002583: JUMP 00002584: JUMPDEST 00002585: PUSH1 0x0a 00002587: DUP5 00002588: PUSH4 0xffffffff 0000258d: AND 0000258e: DUP2 0000258f: SLOAD 00002590: DUP2 00002591: LT 00002592: PUSH2 0x259d 00002595: JUMPI 00002596: PUSH2 0x259d 00002599: PUSH2 0x56c3 0000259c: JUMP 0000259d: JUMPDEST 0000259e: SWAP1 0000259f: PUSH1 0x00 000025a1: MSTORE 000025a2: PUSH1 0x20 000025a4: PUSH1 0x00 000025a6: KECCAK256 000025a7: SWAP1 000025a8: PUSH1 0x08 000025aa: SWAP2 000025ab: DUP3 000025ac: DUP3 000025ad: DIV 000025ae: ADD 000025af: SWAP2 000025b0: SWAP1 000025b1: MOD 000025b2: PUSH1 0x04 000025b4: MUL 000025b5: SWAP1 000025b6: SLOAD 000025b7: SWAP1 000025b8: PUSH2 0x0100 000025bb: EXP 000025bc: SWAP1 000025bd: DIV 000025be: PUSH4 0xffffffff 000025c3: AND 000025c4: JUMPDEST 000025c5: SWAP1 000025c6: POP 000025c7: DUP1 000025c8: PUSH4 0xffffffff 000025cd: AND 000025ce: DUP4 000025cf: PUSH4 0xffffffff 000025d4: AND 000025d5: EQ 000025d6: ISZERO 000025d7: DUP1 000025d8: PUSH2 0x266a 000025db: JUMPI 000025dc: POP 000025dd: PUSH1 0x40 000025df: MLOAD 000025e0: PUSH4 0x21a0f753 000025e5: PUSH1 0xe0 000025e7: SHL 000025e8: DUP2 000025e9: MSTORE 000025ea: PUSH4 0xffffffff 000025ef: DUP5 000025f0: AND 000025f1: PUSH1 0x04 000025f3: DUP3 000025f4: ADD 000025f5: MSTORE 000025f6: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476 00002617: PUSH1 0x01 00002619: PUSH1 0x01 0000261b: PUSH1 0xa0 0000261d: SHL 0000261e: SUB 0000261f: AND 00002620: SWAP1 00002621: PUSH4 0x21a0f753 00002626: SWAP1 00002627: PUSH1 0x24 00002629: ADD 0000262a: PUSH1 0x20 0000262c: PUSH1 0x40 0000262e: MLOAD 0000262f: DUP1 00002630: DUP4 00002631: SUB 00002632: DUP2 00002633: DUP7 00002634: GAS 00002635: STATICCALL 00002636: ISZERO 00002637: DUP1 00002638: ISZERO 00002639: PUSH2 0x2646 0000263c: JUMPI 0000263d: RETURNDATASIZE 0000263e: PUSH1 0x00 00002640: DUP1 00002641: RETURNDATACOPY 00002642: RETURNDATASIZE 00002643: PUSH1 0x00 00002645: REVERT 00002646: JUMPDEST 00002647: POP 00002648: POP 00002649: POP 0000264a: POP 0000264b: PUSH1 0x40 0000264d: MLOAD 0000264e: RETURNDATASIZE 0000264f: PUSH1 0x1f 00002651: NOT 00002652: PUSH1 0x1f 00002654: DUP3 00002655: ADD 00002656: AND 00002657: DUP3 00002658: ADD 00002659: DUP1 0000265a: PUSH1 0x40 0000265c: MSTORE 0000265d: POP 0000265e: DUP2 0000265f: ADD 00002660: SWAP1 00002661: PUSH2 0x266a 00002664: SWAP2 00002665: SWAP1 00002666: PUSH2 0x59fa 00002669: JUMP 0000266a: JUMPDEST 0000266b: ISZERO 0000266c: PUSH2 0x2688 0000266f: JUMPI 00002670: PUSH1 0x40 00002672: MLOAD 00002673: PUSH4 0xd4db0b79 00002678: PUSH1 0xe0 0000267a: SHL 0000267b: DUP2 0000267c: MSTORE 0000267d: PUSH1 0x04 0000267f: ADD 00002680: PUSH1 0x40 00002682: MLOAD 00002683: DUP1 00002684: SWAP2 00002685: SUB 00002686: SWAP1 00002687: REVERT 00002688: JUMPDEST 00002689: PUSH2 0x1171 0000268c: DUP5 0000268d: DUP5 0000268e: DUP5 0000268f: PUSH2 0x3c21 00002692: JUMP 00002693: JUMPDEST 00002694: PUSH1 0x06 00002696: SLOAD 00002697: PUSH1 0x01 00002699: PUSH1 0x01 0000269b: PUSH1 0xa0 0000269d: SHL 0000269e: SUB 0000269f: AND 000026a0: CALLER 000026a1: EQ 000026a2: PUSH2 0x26bd 000026a5: JUMPI 000026a6: PUSH1 0x40 000026a8: MLOAD 000026a9: PUSH3 0x461bcd 000026ad: PUSH1 0xe5 000026af: SHL 000026b0: DUP2 000026b1: MSTORE 000026b2: PUSH1 0x04 000026b4: ADD 000026b5: PUSH2 0x0c56 000026b8: SWAP1 000026b9: PUSH2 0x5674 000026bc: JUMP 000026bd: JUMPDEST 000026be: PUSH1 0x06 000026c0: SLOAD 000026c1: PUSH1 0x01 000026c3: PUSH1 0xb0 000026c5: SHL 000026c6: SWAP1 000026c7: DIV 000026c8: PUSH1 0xff 000026ca: AND 000026cb: PUSH2 0x26d5 000026ce: JUMPI 000026cf: PUSH1 0x01 000026d1: PUSH2 0x26d8 000026d4: JUMP 000026d5: JUMPDEST 000026d6: PUSH1 0x00 000026d8: JUMPDEST 000026d9: PUSH1 0x06 000026db: DUP1 000026dc: SLOAD 000026dd: SWAP2 000026de: ISZERO 000026df: ISZERO 000026e0: PUSH1 0x01 000026e2: PUSH1 0xb0 000026e4: SHL 000026e5: MUL 000026e6: PUSH1 0xff 000026e8: PUSH1 0xb0 000026ea: SHL 000026eb: NOT 000026ec: SWAP1 000026ed: SWAP3 000026ee: AND 000026ef: SWAP2 000026f0: SWAP1 000026f1: SWAP2 000026f2: OR 000026f3: SWAP1 000026f4: SSTORE 000026f5: JUMP 000026f6: JUMPDEST 000026f7: PUSH1 0x00 000026f9: PUSH2 0x2700 000026fc: PUSH2 0x342e 000026ff: JUMP 00002700: JUMPDEST 00002701: PUSH1 0x06 00002703: SLOAD 00002704: PUSH1 0x01 00002706: PUSH1 0xa0 00002708: SHL 00002709: SWAP1 0000270a: DIV 0000270b: PUSH1 0xff 0000270d: AND 0000270e: ISZERO 0000270f: PUSH2 0x272a 00002712: JUMPI 00002713: PUSH1 0x40 00002715: MLOAD 00002716: PUSH3 0x461bcd 0000271a: PUSH1 0xe5 0000271c: SHL 0000271d: DUP2 0000271e: MSTORE 0000271f: PUSH1 0x04 00002721: ADD 00002722: PUSH2 0x0c56 00002725: SWAP1 00002726: PUSH2 0x5616 00002729: JUMP 0000272a: JUMPDEST 0000272b: PUSH2 0x0c69 0000272e: PUSH1 0x01 00002730: PUSH2 0x34e7 00002733: JUMP 00002734: JUMPDEST 00002735: CALLER 00002736: PUSH1 0x00 00002738: SWAP1 00002739: DUP2 0000273a: MSTORE 0000273b: PUSH1 0x03 0000273d: PUSH1 0x20 0000273f: MSTORE 00002740: PUSH1 0x40 00002742: DUP2 00002743: KECCAK256 00002744: DUP1 00002745: SLOAD 00002746: DUP4 00002747: SWAP2 00002748: SWAP1 00002749: DUP4 0000274a: SWAP1 0000274b: PUSH2 0x2755 0000274e: SWAP1 0000274f: DUP5 00002750: SWAP1 00002751: PUSH2 0x56b0 00002754: JUMP 00002755: JUMPDEST 00002756: SWAP1 00002757: SWAP2 00002758: SSTORE 00002759: POP 0000275a: POP 0000275b: PUSH1 0x01 0000275d: PUSH1 0x01 0000275f: PUSH1 0xa0 00002761: SHL 00002762: SUB 00002763: DUP4 00002764: AND 00002765: PUSH1 0x00 00002767: DUP2 00002768: DUP2 00002769: MSTORE 0000276a: PUSH1 0x03 0000276c: PUSH1 0x20 0000276e: MSTORE 0000276f: PUSH1 0x40 00002771: SWAP1 00002772: DUP2 00002773: SWAP1 00002774: KECCAK256 00002775: DUP1 00002776: SLOAD 00002777: DUP6 00002778: ADD 00002779: SWAP1 0000277a: SSTORE 0000277b: MLOAD 0000277c: CALLER 0000277d: SWAP1 0000277e: PUSH1 0x00 00002780: DUP1 00002781: MLOAD 00002782: PUSH1 0x20 00002784: PUSH2 0x5f65 00002787: DUP4 00002788: CODECOPY 00002789: DUP2 0000278a: MLOAD 0000278b: SWAP2 0000278c: MSTORE 0000278d: SWAP1 0000278e: PUSH2 0x0ee8 00002791: SWAP1 00002792: DUP7 00002793: DUP2 00002794: MSTORE 00002795: PUSH1 0x20 00002797: ADD 00002798: SWAP1 00002799: JUMP 0000279a: JUMPDEST 0000279b: PUSH1 0x00 0000279d: JUMPDEST 0000279e: DUP2 0000279f: DUP2 000027a0: LT 000027a1: ISZERO 000027a2: PUSH2 0x281c 000027a5: JUMPI 000027a6: PUSH2 0x2809 000027a9: DUP4 000027aa: DUP4 000027ab: DUP4 000027ac: DUP2 000027ad: DUP2 000027ae: LT 000027af: PUSH2 0x27ba 000027b2: JUMPI 000027b3: PUSH2 0x27ba 000027b6: PUSH2 0x56c3 000027b9: JUMP 000027ba: JUMPDEST 000027bb: SWAP1 000027bc: POP 000027bd: PUSH1 0x20 000027bf: MUL 000027c0: DUP2 000027c1: ADD 000027c2: SWAP1 000027c3: PUSH2 0x27cc 000027c6: SWAP2 000027c7: SWAP1 000027c8: PUSH2 0x5a17 000027cb: JUMP 000027cc: JUMPDEST 000027cd: DUP1 000027ce: DUP1 000027cf: PUSH1 0x1f 000027d1: ADD 000027d2: PUSH1 0x20 000027d4: DUP1 000027d5: SWAP2 000027d6: DIV 000027d7: MUL 000027d8: PUSH1 0x20 000027da: ADD 000027db: PUSH1 0x40 000027dd: MLOAD 000027de: SWAP1 000027df: DUP2 000027e0: ADD 000027e1: PUSH1 0x40 000027e3: MSTORE 000027e4: DUP1 000027e5: SWAP4 000027e6: SWAP3 000027e7: SWAP2 000027e8: SWAP1 000027e9: DUP2 000027ea: DUP2 000027eb: MSTORE 000027ec: PUSH1 0x20 000027ee: ADD 000027ef: DUP4 000027f0: DUP4 000027f1: DUP1 000027f2: DUP3 000027f3: DUP5 000027f4: CALLDATACOPY 000027f5: PUSH1 0x00 000027f7: SWAP3 000027f8: ADD 000027f9: SWAP2 000027fa: SWAP1 000027fb: SWAP2 000027fc: MSTORE 000027fd: POP 000027fe: ADDRESS 000027ff: SWAP4 00002800: SWAP3 00002801: POP 00002802: POP 00002803: PUSH2 0x41d8 00002806: SWAP1 00002807: POP 00002808: JUMP 00002809: JUMPDEST 0000280a: POP 0000280b: DUP1 0000280c: PUSH2 0x2814 0000280f: DUP2 00002810: PUSH2 0x583d 00002813: JUMP 00002814: JUMPDEST 00002815: SWAP2 00002816: POP 00002817: POP 00002818: PUSH2 0x279d 0000281b: JUMP 0000281c: JUMPDEST 0000281d: POP 0000281e: POP 0000281f: POP 00002820: JUMP 00002821: JUMPDEST 00002822: PUSH1 0x06 00002824: SLOAD 00002825: PUSH1 0x01 00002827: PUSH1 0x01 00002829: PUSH1 0xa0 0000282b: SHL 0000282c: SUB 0000282d: AND 0000282e: CALLER 0000282f: EQ 00002830: PUSH2 0x284b 00002833: JUMPI 00002834: PUSH1 0x40 00002836: MLOAD 00002837: PUSH3 0x461bcd 0000283b: PUSH1 0xe5 0000283d: SHL 0000283e: DUP2 0000283f: MSTORE 00002840: PUSH1 0x04 00002842: ADD 00002843: PUSH2 0x0c56 00002846: SWAP1 00002847: PUSH2 0x5674 0000284a: JUMP 0000284b: JUMPDEST 0000284c: PUSH1 0x07 0000284e: SLOAD 0000284f: PUSH1 0x01 00002851: PUSH1 0x01 00002853: PUSH1 0xc0 00002855: SHL 00002856: SUB 00002857: SWAP1 00002858: DUP2 00002859: AND 0000285a: SWAP1 0000285b: DUP3 0000285c: AND 0000285d: LT 0000285e: ISZERO 0000285f: PUSH2 0x1a78 00002862: JUMPI 00002863: PUSH1 0x40 00002865: MLOAD 00002866: PUSH4 0x34f1ec1b 0000286b: PUSH1 0xe0 0000286d: SHL 0000286e: DUP2 0000286f: MSTORE 00002870: PUSH1 0x04 00002872: ADD 00002873: PUSH1 0x40 00002875: MLOAD 00002876: DUP1 00002877: SWAP2 00002878: SUB 00002879: SWAP1 0000287a: REVERT 0000287b: JUMPDEST 0000287c: PUSH1 0x06 0000287e: SLOAD 0000287f: PUSH1 0x01 00002881: PUSH1 0x01 00002883: PUSH1 0xa0 00002885: SHL 00002886: SUB 00002887: AND 00002888: CALLER 00002889: EQ 0000288a: PUSH2 0x28a5 0000288d: JUMPI 0000288e: PUSH1 0x40 00002890: MLOAD 00002891: PUSH3 0x461bcd 00002895: PUSH1 0xe5 00002897: SHL 00002898: DUP2 00002899: MSTORE 0000289a: PUSH1 0x04 0000289c: ADD 0000289d: PUSH2 0x0c56 000028a0: SWAP1 000028a1: PUSH2 0x5674 000028a4: JUMP 000028a5: JUMPDEST 000028a6: PUSH1 0x10 000028a8: SLOAD 000028a9: PUSH1 0x40 000028ab: DUP1 000028ac: MLOAD 000028ad: PUSH1 0x01 000028af: PUSH1 0x01 000028b1: PUSH1 0xa0 000028b3: SHL 000028b4: SUB 000028b5: SWAP3 000028b6: DUP4 000028b7: AND 000028b8: DUP2 000028b9: MSTORE 000028ba: SWAP2 000028bb: DUP4 000028bc: AND 000028bd: PUSH1 0x20 000028bf: DUP4 000028c0: ADD 000028c1: MSTORE 000028c2: PUSH32 0x51dbb5a65bb22737861a63ec12ba6ce78a98631e9404b0567a2eaf7a06fc544d 000028e3: SWAP2 000028e4: ADD 000028e5: PUSH1 0x40 000028e7: MLOAD 000028e8: DUP1 000028e9: SWAP2 000028ea: SUB 000028eb: SWAP1 000028ec: LOG1 000028ed: PUSH1 0x10 000028ef: DUP1 000028f0: SLOAD 000028f1: PUSH1 0x01 000028f3: PUSH1 0x01 000028f5: PUSH1 0xa0 000028f7: SHL 000028f8: SUB 000028f9: NOT 000028fa: AND 000028fb: PUSH1 0x01 000028fd: PUSH1 0x01 000028ff: PUSH1 0xa0 00002901: SHL 00002902: SUB 00002903: SWAP3 00002904: SWAP1 00002905: SWAP3 00002906: AND 00002907: SWAP2 00002908: SWAP1 00002909: SWAP2 0000290a: OR 0000290b: SWAP1 0000290c: SSTORE 0000290d: JUMP 0000290e: JUMPDEST 0000290f: PUSH1 0x06 00002911: SLOAD 00002912: PUSH1 0x00 00002914: SWAP1 00002915: PUSH1 0x01 00002917: PUSH1 0xb0 00002919: SHL 0000291a: SWAP1 0000291b: DIV 0000291c: PUSH1 0xff 0000291e: AND 0000291f: PUSH2 0x29aa 00002922: JUMPI 00002923: PUSH1 0x40 00002925: MLOAD 00002926: PUSH4 0x0ad85dff 0000292b: PUSH1 0xe4 0000292d: SHL 0000292e: DUP2 0000292f: MSTORE 00002930: ADDRESS 00002931: PUSH1 0x04 00002933: DUP3 00002934: ADD 00002935: MSTORE 00002936: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476 00002957: PUSH1 0x01 00002959: PUSH1 0x01 0000295b: PUSH1 0xa0 0000295d: SHL 0000295e: SUB 0000295f: AND 00002960: SWAP1 00002961: PUSH4 0xad85dff0 00002966: SWAP1 00002967: PUSH1 0x24 00002969: ADD 0000296a: PUSH1 0x20 0000296c: PUSH1 0x40 0000296e: MLOAD 0000296f: DUP1 00002970: DUP4 00002971: SUB 00002972: DUP2 00002973: DUP7 00002974: GAS 00002975: STATICCALL 00002976: ISZERO 00002977: DUP1 00002978: ISZERO 00002979: PUSH2 0x2986 0000297c: JUMPI 0000297d: RETURNDATASIZE 0000297e: PUSH1 0x00 00002980: DUP1 00002981: RETURNDATACOPY 00002982: RETURNDATASIZE 00002983: PUSH1 0x00 00002985: REVERT 00002986: JUMPDEST 00002987: POP 00002988: POP 00002989: POP 0000298a: POP 0000298b: PUSH1 0x40 0000298d: MLOAD 0000298e: RETURNDATASIZE 0000298f: PUSH1 0x1f 00002991: NOT 00002992: PUSH1 0x1f 00002994: DUP3 00002995: ADD 00002996: AND 00002997: DUP3 00002998: ADD 00002999: DUP1 0000299a: PUSH1 0x40 0000299c: MSTORE 0000299d: POP 0000299e: DUP2 0000299f: ADD 000029a0: SWAP1 000029a1: PUSH2 0x0c69 000029a4: SWAP2 000029a5: SWAP1 000029a6: PUSH2 0x59fa 000029a9: JUMP 000029aa: JUMPDEST 000029ab: POP 000029ac: PUSH1 0x00 000029ae: SWAP1 000029af: JUMP 000029b0: JUMPDEST 000029b1: PUSH1 0x00 000029b3: DUP1 000029b4: PUSH1 0x00 000029b6: PUSH2 0x29bf 000029b9: PUSH1 0x01 000029bb: PUSH2 0x3a39 000029be: JUMP 000029bf: JUMPDEST 000029c0: SWAP2 000029c1: POP 000029c2: SWAP2 000029c3: POP 000029c4: PUSH2 0x0e85 000029c7: DUP5 000029c8: DUP4 000029c9: DUP4 000029ca: PUSH2 0x4006 000029cd: JUMP 000029ce: JUMPDEST 000029cf: PUSH1 0x06 000029d1: SLOAD 000029d2: PUSH1 0x00 000029d4: SWAP1 000029d5: PUSH1 0x01 000029d7: PUSH1 0xa0 000029d9: SHL 000029da: SWAP1 000029db: DIV 000029dc: PUSH1 0xff 000029de: AND 000029df: ISZERO 000029e0: PUSH2 0x29fb 000029e3: JUMPI 000029e4: PUSH1 0x40 000029e6: MLOAD 000029e7: PUSH3 0x461bcd 000029eb: PUSH1 0xe5 000029ed: SHL 000029ee: DUP2 000029ef: MSTORE 000029f0: PUSH1 0x04 000029f2: ADD 000029f3: PUSH2 0x0c56 000029f6: SWAP1 000029f7: PUSH2 0x5616 000029fa: JUMP 000029fb: JUMPDEST 000029fc: PUSH1 0x06 000029fe: DUP1 000029ff: SLOAD 00002a00: PUSH1 0xff 00002a02: PUSH1 0xa0 00002a04: SHL 00002a05: NOT 00002a06: AND 00002a07: PUSH1 0x01 00002a09: PUSH1 0xa0 00002a0b: SHL 00002a0c: OR 00002a0d: SWAP1 00002a0e: SSTORE 00002a0f: PUSH1 0x00 00002a11: DUP1 00002a12: PUSH2 0x2a1a 00002a15: DUP2 00002a16: PUSH2 0x3a39 00002a19: JUMP 00002a1a: JUMPDEST 00002a1b: SWAP2 00002a1c: POP 00002a1d: SWAP2 00002a1e: POP 00002a1f: PUSH2 0x2a29 00002a22: DUP7 00002a23: DUP4 00002a24: DUP4 00002a25: PUSH2 0x3b60 00002a28: JUMP 00002a29: JUMPDEST 00002a2a: SWAP3 00002a2b: POP 00002a2c: PUSH2 0x2a37 00002a2f: DUP7 00002a30: DUP5 00002a31: DUP8 00002a32: DUP8 00002a33: PUSH2 0x41fd 00002a36: JUMP 00002a37: JUMPDEST 00002a38: POP 00002a39: POP 00002a3a: PUSH1 0x06 00002a3c: DUP1 00002a3d: SLOAD 00002a3e: PUSH1 0xff 00002a40: PUSH1 0xa0 00002a42: SHL 00002a43: NOT 00002a44: AND 00002a45: SWAP1 00002a46: SSTORE 00002a47: SWAP4 00002a48: SWAP3 00002a49: POP 00002a4a: POP 00002a4b: POP 00002a4c: JUMP 00002a4d: JUMPDEST 00002a4e: PUSH1 0x06 00002a50: SLOAD 00002a51: PUSH1 0x01 00002a53: PUSH1 0x01 00002a55: PUSH1 0xa0 00002a57: SHL 00002a58: SUB 00002a59: AND 00002a5a: CALLER 00002a5b: EQ 00002a5c: PUSH2 0x2a77 00002a5f: JUMPI 00002a60: PUSH1 0x40 00002a62: MLOAD 00002a63: PUSH3 0x461bcd 00002a67: PUSH1 0xe5 00002a69: SHL 00002a6a: DUP2 00002a6b: MSTORE 00002a6c: PUSH1 0x04 00002a6e: ADD 00002a6f: PUSH2 0x0c56 00002a72: SWAP1 00002a73: PUSH2 0x5674 00002a76: JUMP 00002a77: JUMPDEST 00002a78: PUSH8 0x0de0b6b3a7640000 00002a81: PUSH1 0x01 00002a83: PUSH1 0x01 00002a85: PUSH1 0x40 00002a87: SHL 00002a88: SUB 00002a89: DUP3 00002a8a: AND 00002a8b: GT 00002a8c: ISZERO 00002a8d: PUSH2 0x2aa9 00002a90: JUMPI 00002a91: PUSH1 0x40 00002a93: MLOAD 00002a94: PUSH4 0x3d0203e5 00002a99: PUSH1 0xe0 00002a9b: SHL 00002a9c: DUP2 00002a9d: MSTORE 00002a9e: PUSH1 0x04 00002aa0: ADD 00002aa1: PUSH1 0x40 00002aa3: MLOAD 00002aa4: DUP1 00002aa5: SWAP2 00002aa6: SUB 00002aa7: SWAP1 00002aa8: REVERT 00002aa9: JUMPDEST 00002aaa: PUSH1 0x0f 00002aac: SLOAD 00002aad: PUSH1 0x40 00002aaf: DUP1 00002ab0: MLOAD 00002ab1: PUSH1 0x01 00002ab3: PUSH1 0x01 00002ab5: PUSH1 0x40 00002ab7: SHL 00002ab8: SUB 00002ab9: SWAP3 00002aba: DUP4 00002abb: AND 00002abc: DUP2 00002abd: MSTORE 00002abe: SWAP2 00002abf: DUP4 00002ac0: AND 00002ac1: PUSH1 0x20 00002ac3: DUP4 00002ac4: ADD 00002ac5: MSTORE 00002ac6: PUSH32 0xb5cc994a260a85a42d6588668221571ae0a14f0a28f9e4817a5195262102c868 00002ae7: SWAP2 00002ae8: ADD 00002ae9: PUSH1 0x40 00002aeb: MLOAD 00002aec: DUP1 00002aed: SWAP2 00002aee: SUB 00002aef: SWAP1 00002af0: LOG1 00002af1: PUSH1 0x0f 00002af3: DUP1 00002af4: SLOAD 00002af5: PUSH8 0xffffffffffffffff 00002afe: NOT 00002aff: AND 00002b00: PUSH1 0x01 00002b02: PUSH1 0x01 00002b04: PUSH1 0x40 00002b06: SHL 00002b07: SUB 00002b08: SWAP3 00002b09: SWAP1 00002b0a: SWAP3 00002b0b: AND 00002b0c: SWAP2 00002b0d: SWAP1 00002b0e: SWAP2 00002b0f: OR 00002b10: SWAP1 00002b11: SSTORE 00002b12: JUMP 00002b13: JUMPDEST 00002b14: PUSH1 0x06 00002b16: SLOAD 00002b17: PUSH1 0x00 00002b19: SWAP1 00002b1a: PUSH1 0x01 00002b1c: PUSH1 0xa0 00002b1e: SHL 00002b1f: SWAP1 00002b20: DIV 00002b21: PUSH1 0xff 00002b23: AND 00002b24: ISZERO 00002b25: PUSH2 0x2b40 00002b28: JUMPI 00002b29: PUSH1 0x40 00002b2b: MLOAD 00002b2c: PUSH3 0x461bcd 00002b30: PUSH1 0xe5 00002b32: SHL 00002b33: DUP2 00002b34: MSTORE 00002b35: PUSH1 0x04 00002b37: ADD 00002b38: PUSH2 0x0c56 00002b3b: SWAP1 00002b3c: PUSH2 0x5616 00002b3f: JUMP 00002b40: JUMPDEST 00002b41: PUSH1 0x06 00002b43: DUP1 00002b44: SLOAD 00002b45: PUSH1 0xff 00002b47: PUSH1 0xa0 00002b49: SHL 00002b4a: NOT 00002b4b: AND 00002b4c: PUSH1 0x01 00002b4e: PUSH1 0xa0 00002b50: SHL 00002b51: OR 00002b52: SWAP1 00002b53: SSTORE 00002b54: PUSH1 0x00 00002b56: DUP1 00002b57: PUSH2 0x2b5f 00002b5a: DUP2 00002b5b: PUSH2 0x3a39 00002b5e: JUMP 00002b5f: JUMPDEST 00002b60: SWAP2 00002b61: POP 00002b62: SWAP2 00002b63: POP 00002b64: PUSH2 0x2b6e 00002b67: DUP7 00002b68: DUP4 00002b69: DUP4 00002b6a: PUSH2 0x3b53 00002b6d: JUMP 00002b6e: JUMPDEST 00002b6f: SWAP3 00002b70: POP 00002b71: DUP3 00002b72: PUSH1 0x00 00002b74: SUB 00002b75: PUSH2 0x2b91 00002b78: JUMPI 00002b79: PUSH1 0x40 00002b7b: MLOAD 00002b7c: PUSH4 0x97683005 00002b81: PUSH1 0xe0 00002b83: SHL 00002b84: DUP2 00002b85: MSTORE 00002b86: PUSH1 0x04 00002b88: ADD 00002b89: PUSH1 0x40 00002b8b: MLOAD 00002b8c: DUP1 00002b8d: SWAP2 00002b8e: SUB 00002b8f: SWAP1 00002b90: REVERT 00002b91: JUMPDEST 00002b92: PUSH2 0x2a37 00002b95: DUP4 00002b96: DUP8 00002b97: DUP8 00002b98: DUP8 00002b99: PUSH2 0x41fd 00002b9c: JUMP 00002b9d: JUMPDEST 00002b9e: PUSH1 0x06 00002ba0: SLOAD 00002ba1: PUSH1 0x01 00002ba3: PUSH1 0x01 00002ba5: PUSH1 0xa0 00002ba7: SHL 00002ba8: SUB 00002ba9: AND 00002baa: CALLER 00002bab: EQ 00002bac: PUSH2 0x2bc7 00002baf: JUMPI 00002bb0: PUSH1 0x40 00002bb2: MLOAD 00002bb3: PUSH3 0x461bcd 00002bb7: PUSH1 0xe5 00002bb9: SHL 00002bba: DUP2 00002bbb: MSTORE 00002bbc: PUSH1 0x04 00002bbe: ADD 00002bbf: PUSH2 0x0c56 00002bc2: SWAP1 00002bc3: PUSH2 0x5674 00002bc6: JUMP 00002bc7: JUMPDEST 00002bc8: PUSH1 0x00 00002bca: DUP1 00002bcb: DUP5 00002bcc: ISZERO 00002bcd: PUSH2 0x2c0e 00002bd0: JUMPI 00002bd1: PUSH1 0x00 00002bd3: PUSH2 0x2bda 00002bd6: PUSH2 0x0c22 00002bd9: JUMP 00002bda: JUMPDEST 00002bdb: SWAP1 00002bdc: POP 00002bdd: PUSH2 0x2bf9 00002be0: PUSH2 0x2beb 00002be3: DUP7 00002be4: PUSH2 0x2710 00002be7: PUSH2 0x5a5d 00002bea: JUMP 00002beb: JUMPDEST 00002bec: DUP3 00002bed: SWAP1 00002bee: PUSH2 0xffff 00002bf1: AND 00002bf2: PUSH2 0x2710 00002bf5: PUSH2 0x42d6 00002bf8: JUMP 00002bf9: JUMPDEST 00002bfa: SWAP3 00002bfb: POP 00002bfc: PUSH2 0x2c0a 00002bff: PUSH2 0x2beb 00002c02: DUP7 00002c03: PUSH2 0x2710 00002c06: PUSH2 0x5a7f 00002c09: JUMP 00002c0a: JUMPDEST 00002c0b: SWAP2 00002c0c: POP 00002c0d: POP 00002c0e: JUMPDEST 00002c0f: PUSH2 0x2c19 00002c12: PUSH1 0x02 00002c14: DUP5 00002c15: PUSH2 0x42f5 00002c18: JUMP 00002c19: JUMPDEST 00002c1a: PUSH1 0x08 00002c1c: DUP1 00002c1d: SLOAD 00002c1e: PUSH1 0x01 00002c20: PUSH1 0x01 00002c22: PUSH1 0xa0 00002c24: SHL 00002c25: SUB 00002c26: NOT 00002c27: AND 00002c28: PUSH1 0x01 00002c2a: PUSH1 0x01 00002c2c: PUSH1 0xa0 00002c2e: SHL 00002c2f: SUB 00002c30: DUP6 00002c31: AND 00002c32: OR 00002c33: SWAP1 00002c34: SSTORE 00002c35: PUSH1 0x00 00002c37: PUSH2 0x2c3e 00002c3a: PUSH2 0x0c22 00002c3d: JUMP 00002c3e: JUMPDEST 00002c3f: SWAP1 00002c40: POP 00002c41: DUP6 00002c42: ISZERO 00002c43: PUSH2 0x2c82 00002c46: JUMPI 00002c47: DUP3 00002c48: DUP2 00002c49: LT 00002c4a: DUP1 00002c4b: PUSH2 0x2c53 00002c4e: JUMPI 00002c4f: POP 00002c50: DUP2 00002c51: DUP2 00002c52: GT 00002c53: JUMPDEST 00002c54: ISZERO 00002c55: PUSH2 0x2c82 00002c58: JUMPI 00002c59: PUSH1 0x40 00002c5b: MLOAD 00002c5c: PUSH4 0x628cc475 00002c61: PUSH1 0xe1 00002c63: SHL 00002c64: DUP2 00002c65: MSTORE 00002c66: PUSH1 0x04 00002c68: DUP2 00002c69: ADD 00002c6a: DUP3 00002c6b: SWAP1 00002c6c: MSTORE 00002c6d: PUSH1 0x24 00002c6f: DUP2 00002c70: ADD 00002c71: DUP5 00002c72: SWAP1 00002c73: MSTORE 00002c74: PUSH1 0x44 00002c76: DUP2 00002c77: ADD 00002c78: DUP4 00002c79: SWAP1 00002c7a: MSTORE 00002c7b: PUSH1 0x64 00002c7d: ADD 00002c7e: PUSH2 0x0c56 00002c81: JUMP 00002c82: JUMPDEST 00002c83: POP 00002c84: POP 00002c85: POP 00002c86: POP 00002c87: POP 00002c88: POP 00002c89: JUMP 00002c8a: JUMPDEST 00002c8b: PUSH1 0x06 00002c8d: SLOAD 00002c8e: PUSH1 0x00 00002c90: SWAP1 00002c91: PUSH1 0x01 00002c93: PUSH1 0xa8 00002c95: SHL 00002c96: SWAP1 00002c97: DIV 00002c98: PUSH1 0xff 00002c9a: AND 00002c9b: ISZERO 00002c9c: PUSH2 0x2ca7 00002c9f: JUMPI 00002ca0: POP 00002ca1: PUSH1 0x00 00002ca3: SWAP2 00002ca4: SWAP1 00002ca5: POP 00002ca6: JUMP 00002ca7: JUMPDEST 00002ca8: PUSH1 0x07 00002caa: SLOAD 00002cab: PUSH1 0x01 00002cad: PUSH1 0x01 00002caf: PUSH1 0xc0 00002cb1: SHL 00002cb2: SUB 00002cb3: AND 00002cb4: PUSH1 0x02 00002cb6: PUSH1 0x01 00002cb8: PUSH1 0xc0 00002cba: SHL 00002cbb: SUB 00002cbc: NOT 00002cbd: DUP2 00002cbe: ADD 00002cbf: PUSH2 0x2ccc 00002cc2: JUMPI 00002cc3: POP 00002cc4: PUSH1 0x00 00002cc6: NOT 00002cc7: SWAP3 00002cc8: SWAP2 00002cc9: POP 00002cca: POP 00002ccb: JUMP 00002ccc: JUMPDEST 00002ccd: PUSH1 0x02 00002ccf: SLOAD 00002cd0: PUSH1 0x01 00002cd2: PUSH1 0x01 00002cd4: PUSH1 0xc0 00002cd6: SHL 00002cd7: SUB 00002cd8: DUP3 00002cd9: AND 00002cda: DUP2 00002cdb: LT 00002cdc: ISZERO 00002cdd: PUSH2 0x2cf8 00002ce0: JUMPI 00002ce1: PUSH2 0x2cf3 00002ce4: DUP2 00002ce5: PUSH1 0x01 00002ce7: PUSH1 0x01 00002ce9: PUSH1 0xc0 00002ceb: SHL 00002cec: SUB 00002ced: DUP5 00002cee: AND 00002cef: PUSH2 0x56b0 00002cf2: JUMP 00002cf3: JUMPDEST 00002cf4: PUSH2 0x0e85 00002cf7: JUMP 00002cf8: JUMPDEST 00002cf9: PUSH1 0x00 00002cfb: SWAP5 00002cfc: SWAP4 00002cfd: POP 00002cfe: POP 00002cff: POP 00002d00: POP 00002d01: JUMP 00002d02: JUMPDEST 00002d03: PUSH1 0x00 00002d05: DUP1 00002d06: PUSH1 0x00 00002d08: PUSH2 0x2d11 00002d0b: PUSH1 0x01 00002d0d: PUSH2 0x3a39 00002d10: JUMP 00002d11: JUMPDEST 00002d12: SWAP2 00002d13: POP 00002d14: SWAP2 00002d15: POP 00002d16: PUSH2 0x0e85 00002d19: DUP5 00002d1a: DUP4 00002d1b: DUP4 00002d1c: PUSH2 0x3f5e 00002d1f: JUMP 00002d20: JUMPDEST 00002d21: PUSH1 0x06 00002d23: SLOAD 00002d24: PUSH1 0x01 00002d26: PUSH1 0x01 00002d28: PUSH1 0xa0 00002d2a: SHL 00002d2b: SUB 00002d2c: AND 00002d2d: CALLER 00002d2e: EQ 00002d2f: PUSH2 0x2d4a 00002d32: JUMPI 00002d33: PUSH1 0x40 00002d35: MLOAD 00002d36: PUSH3 0x461bcd 00002d3a: PUSH1 0xe5 00002d3c: SHL 00002d3d: DUP2 00002d3e: MSTORE 00002d3f: PUSH1 0x04 00002d41: ADD 00002d42: PUSH2 0x0c56 00002d45: SWAP1 00002d46: PUSH2 0x5674 00002d49: JUMP 00002d4a: JUMPDEST 00002d4b: PUSH2 0x2d54 00002d4e: DUP3 00002d4f: DUP3 00002d50: PUSH2 0x42f5 00002d53: JUMP 00002d54: JUMPDEST 00002d55: PUSH1 0x11 00002d57: DUP1 00002d58: SLOAD 00002d59: PUSH1 0x01 00002d5b: PUSH1 0x01 00002d5d: PUSH1 0xa0 00002d5f: SHL 00002d60: SUB 00002d61: NOT 00002d62: AND 00002d63: PUSH1 0x01 00002d65: PUSH1 0x01 00002d67: PUSH1 0xa0 00002d69: SHL 00002d6a: SUB 00002d6b: DUP4 00002d6c: AND 00002d6d: SWAP1 00002d6e: DUP2 00002d6f: OR 00002d70: SWAP1 00002d71: SWAP2 00002d72: SSTORE 00002d73: PUSH1 0x40 00002d75: MLOAD 00002d76: SWAP1 00002d77: DUP2 00002d78: MSTORE 00002d79: PUSH32 0x3ced9f0d0ac37f3370e1e00515182a375773698b50f5a46523e2cb3736015583 00002d9a: SWAP1 00002d9b: PUSH1 0x20 00002d9d: ADD 00002d9e: PUSH2 0x1a12 00002da1: JUMP 00002da2: JUMPDEST 00002da3: PUSH1 0x06 00002da5: SLOAD 00002da6: PUSH1 0x00 00002da8: SWAP1 00002da9: PUSH1 0x01 00002dab: PUSH1 0xa0 00002dad: SHL 00002dae: SWAP1 00002daf: DIV 00002db0: PUSH1 0xff 00002db2: AND 00002db3: ISZERO 00002db4: PUSH2 0x2dcf 00002db7: JUMPI 00002db8: PUSH1 0x40 00002dba: MLOAD 00002dbb: PUSH3 0x461bcd 00002dbf: PUSH1 0xe5 00002dc1: SHL 00002dc2: DUP2 00002dc3: MSTORE 00002dc4: PUSH1 0x04 00002dc6: ADD 00002dc7: PUSH2 0x0c56 00002dca: SWAP1 00002dcb: PUSH2 0x5616 00002dce: JUMP 00002dcf: JUMPDEST 00002dd0: PUSH2 0x0ef4 00002dd3: DUP3 00002dd4: PUSH1 0x00 00002dd6: PUSH2 0x43d6 00002dd9: JUMP 00002dda: JUMPDEST 00002ddb: PUSH1 0x06 00002ddd: SLOAD 00002dde: PUSH1 0x01 00002de0: PUSH1 0x01 00002de2: PUSH1 0xa0 00002de4: SHL 00002de5: SUB 00002de6: AND 00002de7: CALLER 00002de8: EQ 00002de9: PUSH2 0x2e04 00002dec: JUMPI 00002ded: PUSH1 0x40 00002def: MLOAD 00002df0: PUSH3 0x461bcd 00002df4: PUSH1 0xe5 00002df6: SHL 00002df7: DUP2 00002df8: MSTORE 00002df9: PUSH1 0x04 00002dfb: ADD 00002dfc: PUSH2 0x0c56 00002dff: SWAP1 00002e00: PUSH2 0x5674 00002e03: JUMP 00002e04: JUMPDEST 00002e05: PUSH4 0xffffffff 00002e0a: DUP2 00002e0b: AND 00002e0c: PUSH1 0x00 00002e0e: DUP2 00002e0f: DUP2 00002e10: MSTORE 00002e11: PUSH1 0x0d 00002e13: PUSH1 0x20 00002e15: SWAP1 00002e16: DUP2 00002e17: MSTORE 00002e18: PUSH1 0x40 00002e1a: DUP1 00002e1b: DUP4 00002e1c: KECCAK256 00002e1d: DUP1 00002e1e: SLOAD 00002e1f: PUSH1 0xff 00002e21: NOT 00002e22: AND 00002e23: SWAP1 00002e24: SSTORE 00002e25: DUP1 00002e26: MLOAD 00002e27: SWAP4 00002e28: DUP5 00002e29: MSTORE 00002e2a: SWAP1 00002e2b: DUP4 00002e2c: ADD 00002e2d: SWAP2 00002e2e: SWAP1 00002e2f: SWAP2 00002e30: MSTORE 00002e31: PUSH32 0xea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f 00002e52: SWAP2 00002e53: ADD 00002e54: PUSH2 0x159f 00002e57: JUMP 00002e58: JUMPDEST 00002e59: TIMESTAMP 00002e5a: DUP5 00002e5b: LT 00002e5c: ISZERO 00002e5d: PUSH2 0x2ea8 00002e60: JUMPI 00002e61: PUSH1 0x40 00002e63: MLOAD 00002e64: PUSH3 0x461bcd 00002e68: PUSH1 0xe5 00002e6a: SHL 00002e6b: DUP2 00002e6c: MSTORE 00002e6d: PUSH1 0x20 00002e6f: PUSH1 0x04 00002e71: DUP3 00002e72: ADD 00002e73: MSTORE 00002e74: PUSH1 0x17 00002e76: PUSH1 0x24 00002e78: DUP3 00002e79: ADD 00002e7a: MSTORE 00002e7b: PUSH32 0x5045524d49545f444541444c494e455f45585049524544000000000000000000 00002e9c: PUSH1 0x44 00002e9e: DUP3 00002e9f: ADD 00002ea0: MSTORE 00002ea1: PUSH1 0x64 00002ea3: ADD 00002ea4: PUSH2 0x0c56 00002ea7: JUMP 00002ea8: JUMPDEST 00002ea9: PUSH1 0x00 00002eab: PUSH1 0x01 00002ead: PUSH2 0x2eb4 00002eb0: PUSH2 0x1177 00002eb3: JUMP 00002eb4: JUMPDEST 00002eb5: PUSH1 0x01 00002eb7: PUSH1 0x01 00002eb9: PUSH1 0xa0 00002ebb: SHL 00002ebc: SUB 00002ebd: DUP11 00002ebe: DUP2 00002ebf: AND 00002ec0: PUSH1 0x00 00002ec2: DUP2 00002ec3: DUP2 00002ec4: MSTORE 00002ec5: PUSH1 0x05 00002ec7: PUSH1 0x20 00002ec9: SWAP1 00002eca: DUP2 00002ecb: MSTORE 00002ecc: PUSH1 0x40 00002ece: SWAP2 00002ecf: DUP3 00002ed0: SWAP1 00002ed1: KECCAK256 00002ed2: DUP1 00002ed3: SLOAD 00002ed4: PUSH1 0x01 00002ed6: DUP2 00002ed7: ADD 00002ed8: SWAP1 00002ed9: SWAP2 00002eda: SSTORE 00002edb: DUP3 00002edc: MLOAD 00002edd: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 00002efe: DUP2 00002eff: DUP5 00002f00: ADD 00002f01: MSTORE 00002f02: DUP1 00002f03: DUP5 00002f04: ADD 00002f05: SWAP5 00002f06: SWAP1 00002f07: SWAP5 00002f08: MSTORE 00002f09: SWAP4 00002f0a: DUP14 00002f0b: AND 00002f0c: PUSH1 0x60 00002f0e: DUP5 00002f0f: ADD 00002f10: MSTORE 00002f11: PUSH1 0x80 00002f13: DUP4 00002f14: ADD 00002f15: DUP13 00002f16: SWAP1 00002f17: MSTORE 00002f18: PUSH1 0xa0 00002f1a: DUP4 00002f1b: ADD 00002f1c: SWAP4 00002f1d: SWAP1 00002f1e: SWAP4 00002f1f: MSTORE 00002f20: PUSH1 0xc0 00002f22: DUP1 00002f23: DUP4 00002f24: ADD 00002f25: DUP12 00002f26: SWAP1 00002f27: MSTORE 00002f28: DUP2 00002f29: MLOAD 00002f2a: DUP1 00002f2b: DUP5 00002f2c: SUB 00002f2d: SWAP1 00002f2e: SWAP2 00002f2f: ADD 00002f30: DUP2 00002f31: MSTORE 00002f32: PUSH1 0xe0 00002f34: DUP4 00002f35: ADD 00002f36: SWAP1 00002f37: SWAP2 00002f38: MSTORE 00002f39: DUP1 00002f3a: MLOAD 00002f3b: SWAP3 00002f3c: ADD 00002f3d: SWAP2 00002f3e: SWAP1 00002f3f: SWAP2 00002f40: KECCAK256 00002f41: PUSH2 0x1901 00002f44: PUSH1 0xf0 00002f46: SHL 00002f47: PUSH2 0x0100 00002f4a: DUP4 00002f4b: ADD 00002f4c: MSTORE 00002f4d: PUSH2 0x0102 00002f50: DUP3 00002f51: ADD 00002f52: SWAP3 00002f53: SWAP1 00002f54: SWAP3 00002f55: MSTORE 00002f56: PUSH2 0x0122 00002f59: DUP2 00002f5a: ADD 00002f5b: SWAP2 00002f5c: SWAP1 00002f5d: SWAP2 00002f5e: MSTORE 00002f5f: PUSH2 0x0142 00002f62: ADD 00002f63: PUSH1 0x40 00002f65: DUP1 00002f66: MLOAD 00002f67: PUSH1 0x1f 00002f69: NOT 00002f6a: DUP2 00002f6b: DUP5 00002f6c: SUB 00002f6d: ADD 00002f6e: DUP2 00002f6f: MSTORE 00002f70: DUP3 00002f71: DUP3 00002f72: MSTORE 00002f73: DUP1 00002f74: MLOAD 00002f75: PUSH1 0x20 00002f77: SWAP2 00002f78: DUP3 00002f79: ADD 00002f7a: KECCAK256 00002f7b: PUSH1 0x00 00002f7d: DUP5 00002f7e: MSTORE 00002f7f: SWAP1 00002f80: DUP4 00002f81: ADD 00002f82: DUP1 00002f83: DUP4 00002f84: MSTORE 00002f85: MSTORE 00002f86: PUSH1 0xff 00002f88: DUP8 00002f89: AND 00002f8a: SWAP1 00002f8b: DUP3 00002f8c: ADD 00002f8d: MSTORE 00002f8e: PUSH1 0x60 00002f90: DUP2 00002f91: ADD 00002f92: DUP6 00002f93: SWAP1 00002f94: MSTORE 00002f95: PUSH1 0x80 00002f97: DUP2 00002f98: ADD 00002f99: DUP5 00002f9a: SWAP1 00002f9b: MSTORE 00002f9c: PUSH1 0xa0 00002f9e: ADD 00002f9f: PUSH1 0x20 00002fa1: PUSH1 0x40 00002fa3: MLOAD 00002fa4: PUSH1 0x20 00002fa6: DUP2 00002fa7: SUB 00002fa8: SWAP1 00002fa9: DUP1 00002faa: DUP5 00002fab: SUB 00002fac: SWAP1 00002fad: DUP6 00002fae: GAS 00002faf: STATICCALL 00002fb0: ISZERO 00002fb1: DUP1 00002fb2: ISZERO 00002fb3: PUSH2 0x2fc0 00002fb6: JUMPI 00002fb7: RETURNDATASIZE 00002fb8: PUSH1 0x00 00002fba: DUP1 00002fbb: RETURNDATACOPY 00002fbc: RETURNDATASIZE 00002fbd: PUSH1 0x00 00002fbf: REVERT 00002fc0: JUMPDEST 00002fc1: POP 00002fc2: POP 00002fc3: PUSH1 0x40 00002fc5: MLOAD 00002fc6: PUSH1 0x1f 00002fc8: NOT 00002fc9: ADD 00002fca: MLOAD 00002fcb: SWAP2 00002fcc: POP 00002fcd: POP 00002fce: PUSH1 0x01 00002fd0: PUSH1 0x01 00002fd2: PUSH1 0xa0 00002fd4: SHL 00002fd5: SUB 00002fd6: DUP2 00002fd7: AND 00002fd8: ISZERO 00002fd9: DUP1 00002fda: ISZERO 00002fdb: SWAP1 00002fdc: PUSH2 0x2ff6 00002fdf: JUMPI 00002fe0: POP 00002fe1: DUP8 00002fe2: PUSH1 0x01 00002fe4: PUSH1 0x01 00002fe6: PUSH1 0xa0 00002fe8: SHL 00002fe9: SUB 00002fea: AND 00002feb: DUP2 00002fec: PUSH1 0x01 00002fee: PUSH1 0x01 00002ff0: PUSH1 0xa0 00002ff2: SHL 00002ff3: SUB 00002ff4: AND 00002ff5: EQ 00002ff6: JUMPDEST 00002ff7: PUSH2 0x3033 00002ffa: JUMPI 00002ffb: PUSH1 0x40 00002ffd: MLOAD 00002ffe: PUSH3 0x461bcd 00003002: PUSH1 0xe5 00003004: SHL 00003005: DUP2 00003006: MSTORE 00003007: PUSH1 0x20 00003009: PUSH1 0x04 0000300b: DUP3 0000300c: ADD 0000300d: MSTORE 0000300e: PUSH1 0x0e 00003010: PUSH1 0x24 00003012: DUP3 00003013: ADD 00003014: MSTORE 00003015: PUSH14 0x24a72b20a624a22fa9a4a3a722a9 00003024: PUSH1 0x91 00003026: SHL 00003027: PUSH1 0x44 00003029: DUP3 0000302a: ADD 0000302b: MSTORE 0000302c: PUSH1 0x64 0000302e: ADD 0000302f: PUSH2 0x0c56 00003032: JUMP 00003033: JUMPDEST 00003034: PUSH1 0x01 00003036: PUSH1 0x01 00003038: PUSH1 0xa0 0000303a: SHL 0000303b: SUB 0000303c: SWAP1 0000303d: DUP2 0000303e: AND 0000303f: PUSH1 0x00 00003041: SWAP1 00003042: DUP2 00003043: MSTORE 00003044: PUSH1 0x04 00003046: PUSH1 0x20 00003048: SWAP1 00003049: DUP2 0000304a: MSTORE 0000304b: PUSH1 0x40 0000304d: DUP1 0000304e: DUP4 0000304f: KECCAK256 00003050: DUP11 00003051: DUP6 00003052: AND 00003053: DUP1 00003054: DUP6 00003055: MSTORE 00003056: SWAP1 00003057: DUP4 00003058: MSTORE 00003059: SWAP3 0000305a: DUP2 0000305b: SWAP1 0000305c: KECCAK256 0000305d: DUP10 0000305e: SWAP1 0000305f: SSTORE 00003060: MLOAD 00003061: DUP9 00003062: DUP2 00003063: MSTORE 00003064: SWAP2 00003065: SWAP3 00003066: DUP11 00003067: AND 00003068: SWAP2 00003069: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 0000308a: SWAP2 0000308b: ADD 0000308c: PUSH1 0x40 0000308e: MLOAD 0000308f: DUP1 00003090: SWAP2 00003091: SUB 00003092: SWAP1 00003093: LOG3 00003094: POP 00003095: POP 00003096: POP 00003097: POP 00003098: POP 00003099: POP 0000309a: POP 0000309b: JUMP 0000309c: JUMPDEST 0000309d: PUSH1 0x06 0000309f: SLOAD 000030a0: PUSH1 0x00 000030a2: SWAP1 000030a3: PUSH1 0x01 000030a5: PUSH1 0xa0 000030a7: SHL 000030a8: SWAP1 000030a9: DIV 000030aa: PUSH1 0xff 000030ac: AND 000030ad: ISZERO 000030ae: PUSH2 0x30c9 000030b1: JUMPI 000030b2: PUSH1 0x40 000030b4: MLOAD 000030b5: PUSH3 0x461bcd 000030b9: PUSH1 0xe5 000030bb: SHL 000030bc: DUP2 000030bd: MSTORE 000030be: PUSH1 0x04 000030c0: ADD 000030c1: PUSH2 0x0c56 000030c4: SWAP1 000030c5: PUSH2 0x5616 000030c8: JUMP 000030c9: JUMPDEST 000030ca: PUSH2 0x0ef4 000030cd: DUP3 000030ce: PUSH1 0x01 000030d0: PUSH2 0x43d6 000030d3: JUMP 000030d4: JUMPDEST 000030d5: PUSH1 0x0a 000030d7: DUP2 000030d8: DUP2 000030d9: SLOAD 000030da: DUP2 000030db: LT 000030dc: PUSH2 0x1aaa 000030df: JUMPI 000030e0: PUSH1 0x00 000030e2: DUP1 000030e3: REVERT 000030e4: JUMPDEST 000030e5: CALLER 000030e6: PUSH1 0x01 000030e8: PUSH1 0x01 000030ea: PUSH1 0xa0 000030ec: SHL 000030ed: SUB 000030ee: PUSH32 0x000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8 0000310f: AND 00003110: EQ 00003111: PUSH2 0x312d 00003114: JUMPI 00003115: PUSH1 0x40 00003117: MLOAD 00003118: PUSH4 0x3cf941a3 0000311d: PUSH1 0xe0 0000311f: SHL 00003120: DUP2 00003121: MSTORE 00003122: PUSH1 0x04 00003124: ADD 00003125: PUSH1 0x40 00003127: MLOAD 00003128: DUP1 00003129: SWAP2 0000312a: SUB 0000312b: SWAP1 0000312c: REVERT 0000312d: JUMPDEST 0000312e: PUSH1 0x06 00003130: SLOAD 00003131: PUSH1 0x01 00003133: PUSH1 0xb8 00003135: SHL 00003136: SWAP1 00003137: DIV 00003138: PUSH1 0xff 0000313a: AND 0000313b: PUSH2 0x3157 0000313e: JUMPI 0000313f: PUSH1 0x40 00003141: MLOAD 00003142: PUSH4 0x04a246dd 00003147: PUSH1 0xe5 00003149: SHL 0000314a: DUP2 0000314b: MSTORE 0000314c: PUSH1 0x04 0000314e: ADD 0000314f: PUSH1 0x40 00003151: MLOAD 00003152: DUP1 00003153: SWAP2 00003154: SUB 00003155: SWAP1 00003156: REVERT 00003157: JUMPDEST 00003158: PUSH1 0x00 0000315a: PUSH2 0x3165 0000315d: DUP3 0000315e: DUP5 0000315f: ADD 00003160: DUP5 00003161: PUSH2 0x5a9a 00003164: JUMP 00003165: JUMPDEST 00003166: SWAP1 00003167: POP 00003168: PUSH2 0x3170 0000316b: DUP2 0000316c: PUSH2 0x3dd5 0000316f: JUMP 00003170: JUMPDEST 00003171: PUSH1 0x00 00003173: JUMPDEST 00003174: DUP7 00003175: DUP2 00003176: LT 00003177: ISZERO 00003178: PUSH2 0x3222 0000317b: JUMPI 0000317c: PUSH2 0x3212 0000317f: PUSH32 0x000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8 000031a0: DUP8 000031a1: DUP8 000031a2: DUP5 000031a3: DUP2 000031a4: DUP2 000031a5: LT 000031a6: PUSH2 0x31b1 000031a9: JUMPI 000031aa: PUSH2 0x31b1 000031ad: PUSH2 0x56c3 000031b0: JUMP 000031b1: JUMPDEST 000031b2: SWAP1 000031b3: POP 000031b4: PUSH1 0x20 000031b6: MUL 000031b7: ADD 000031b8: CALLDATALOAD 000031b9: DUP11 000031ba: DUP11 000031bb: DUP6 000031bc: DUP2 000031bd: DUP2 000031be: LT 000031bf: PUSH2 0x31ca 000031c2: JUMPI 000031c3: PUSH2 0x31ca 000031c6: PUSH2 0x56c3 000031c9: JUMP 000031ca: JUMPDEST 000031cb: SWAP1 000031cc: POP 000031cd: PUSH1 0x20 000031cf: MUL 000031d0: ADD 000031d1: CALLDATALOAD 000031d2: PUSH2 0x31db 000031d5: SWAP2 000031d6: SWAP1 000031d7: PUSH2 0x56d9 000031da: JUMP 000031db: JUMPDEST 000031dc: DUP13 000031dd: DUP13 000031de: DUP6 000031df: DUP2 000031e0: DUP2 000031e1: LT 000031e2: PUSH2 0x31ed 000031e5: JUMPI 000031e6: PUSH2 0x31ed 000031e9: PUSH2 0x56c3 000031ec: JUMP 000031ed: JUMPDEST 000031ee: SWAP1 000031ef: POP 000031f0: PUSH1 0x20 000031f2: MUL 000031f3: ADD 000031f4: PUSH1 0x20 000031f6: DUP2 000031f7: ADD 000031f8: SWAP1 000031f9: PUSH2 0x3202 000031fc: SWAP2 000031fd: SWAP1 000031fe: PUSH2 0x503b 00003201: JUMP 00003202: JUMPDEST 00003203: PUSH1 0x01 00003205: PUSH1 0x01 00003207: PUSH1 0xa0 00003209: SHL 0000320a: SUB 0000320b: AND 0000320c: SWAP2 0000320d: SWAP1 0000320e: PUSH2 0x4458 00003211: JUMP 00003212: JUMPDEST 00003213: PUSH2 0x321b 00003216: DUP2 00003217: PUSH2 0x583d 0000321a: JUMP 0000321b: JUMPDEST 0000321c: SWAP1 0000321d: POP 0000321e: PUSH2 0x3173 00003221: JUMP 00003222: JUMPDEST 00003223: POP 00003224: POP 00003225: POP 00003226: POP 00003227: POP 00003228: POP 00003229: POP 0000322a: POP 0000322b: POP 0000322c: POP 0000322d: JUMP 0000322e: JUMPDEST 0000322f: PUSH1 0x06 00003231: SLOAD 00003232: PUSH1 0x01 00003234: PUSH1 0x01 00003236: PUSH1 0xa0 00003238: SHL 00003239: SUB 0000323a: AND 0000323b: CALLER 0000323c: EQ 0000323d: PUSH2 0x3258 00003240: JUMPI 00003241: PUSH1 0x40 00003243: MLOAD 00003244: PUSH3 0x461bcd 00003248: PUSH1 0xe5 0000324a: SHL 0000324b: DUP2 0000324c: MSTORE 0000324d: PUSH1 0x04 0000324f: ADD 00003250: PUSH2 0x0c56 00003253: SWAP1 00003254: PUSH2 0x5674 00003257: JUMP 00003258: JUMPDEST 00003259: PUSH1 0x06 0000325b: DUP1 0000325c: SLOAD 0000325d: PUSH1 0x01 0000325f: PUSH1 0x01 00003261: PUSH1 0xa0 00003263: SHL 00003264: SUB 00003265: NOT 00003266: AND 00003267: PUSH1 0x01 00003269: PUSH1 0x01 0000326b: PUSH1 0xa0 0000326d: SHL 0000326e: SUB 0000326f: DUP4 00003270: AND 00003271: SWAP1 00003272: DUP2 00003273: OR 00003274: SWAP1 00003275: SWAP2 00003276: SSTORE 00003277: PUSH1 0x40 00003279: MLOAD 0000327a: CALLER 0000327b: SWAP1 0000327c: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000329d: SWAP1 0000329e: PUSH1 0x00 000032a0: SWAP1 000032a1: LOG3 000032a2: POP 000032a3: JUMP 000032a4: JUMPDEST 000032a5: PUSH1 0x06 000032a7: SLOAD 000032a8: PUSH1 0x01 000032aa: PUSH1 0x01 000032ac: PUSH1 0xa0 000032ae: SHL 000032af: SUB 000032b0: AND 000032b1: CALLER 000032b2: EQ 000032b3: PUSH2 0x32ce 000032b6: JUMPI 000032b7: PUSH1 0x40 000032b9: MLOAD 000032ba: PUSH3 0x461bcd 000032be: PUSH1 0xe5 000032c0: SHL 000032c1: DUP2 000032c2: MSTORE 000032c3: PUSH1 0x04 000032c5: ADD 000032c6: PUSH2 0x0c56 000032c9: SWAP1 000032ca: PUSH2 0x5674 000032cd: JUMP 000032ce: JUMPDEST 000032cf: PUSH2 0x32d8 000032d2: DUP3 000032d3: DUP3 000032d4: PUSH2 0x42f5 000032d7: JUMP 000032d8: JUMPDEST 000032d9: PUSH1 0x12 000032db: PUSH1 0xff 000032dd: AND 000032de: DUP2 000032df: PUSH1 0x01 000032e1: PUSH1 0x01 000032e3: PUSH1 0xa0 000032e5: SHL 000032e6: SUB 000032e7: AND 000032e8: PUSH4 0x313ce567 000032ed: PUSH1 0x40 000032ef: MLOAD 000032f0: DUP2 000032f1: PUSH4 0xffffffff 000032f6: AND 000032f7: PUSH1 0xe0 000032f9: SHL 000032fa: DUP2 000032fb: MSTORE 000032fc: PUSH1 0x04 000032fe: ADD 000032ff: PUSH1 0x20 00003301: PUSH1 0x40 00003303: MLOAD 00003304: DUP1 00003305: DUP4 00003306: SUB 00003307: DUP2 00003308: DUP7 00003309: GAS 0000330a: STATICCALL 0000330b: ISZERO 0000330c: DUP1 0000330d: ISZERO 0000330e: PUSH2 0x331b 00003311: JUMPI 00003312: RETURNDATASIZE 00003313: PUSH1 0x00 00003315: DUP1 00003316: RETURNDATACOPY 00003317: RETURNDATASIZE 00003318: PUSH1 0x00 0000331a: REVERT 0000331b: JUMPDEST 0000331c: POP 0000331d: POP 0000331e: POP 0000331f: POP 00003320: PUSH1 0x40 00003322: MLOAD 00003323: RETURNDATASIZE 00003324: PUSH1 0x1f 00003326: NOT 00003327: PUSH1 0x1f 00003329: DUP3 0000332a: ADD 0000332b: AND 0000332c: DUP3 0000332d: ADD 0000332e: DUP1 0000332f: PUSH1 0x40 00003331: MSTORE 00003332: POP 00003333: DUP2 00003334: ADD 00003335: SWAP1 00003336: PUSH2 0x333f 00003339: SWAP2 0000333a: SWAP1 0000333b: PUSH2 0x5ae2 0000333e: JUMP 0000333f: JUMPDEST 00003340: PUSH1 0xff 00003342: AND 00003343: EQ 00003344: ISZERO 00003345: DUP1 00003346: PUSH2 0x33c2 00003349: JUMPI 0000334a: POP 0000334b: ADDRESS 0000334c: PUSH1 0x01 0000334e: PUSH1 0x01 00003350: PUSH1 0xa0 00003352: SHL 00003353: SUB 00003354: AND 00003355: DUP2 00003356: PUSH1 0x01 00003358: PUSH1 0x01 0000335a: PUSH1 0xa0 0000335c: SHL 0000335d: SUB 0000335e: AND 0000335f: PUSH4 0xd4b83992 00003364: PUSH1 0x40 00003366: MLOAD 00003367: DUP2 00003368: PUSH4 0xffffffff 0000336d: AND 0000336e: PUSH1 0xe0 00003370: SHL 00003371: DUP2 00003372: MSTORE 00003373: PUSH1 0x04 00003375: ADD 00003376: PUSH1 0x20 00003378: PUSH1 0x40 0000337a: MLOAD 0000337b: DUP1 0000337c: DUP4 0000337d: SUB 0000337e: DUP2 0000337f: DUP7 00003380: GAS 00003381: STATICCALL 00003382: ISZERO 00003383: DUP1 00003384: ISZERO 00003385: PUSH2 0x3392 00003388: JUMPI 00003389: RETURNDATASIZE 0000338a: PUSH1 0x00 0000338c: DUP1 0000338d: RETURNDATACOPY 0000338e: RETURNDATASIZE 0000338f: PUSH1 0x00 00003391: REVERT 00003392: JUMPDEST 00003393: POP 00003394: POP 00003395: POP 00003396: POP 00003397: PUSH1 0x40 00003399: MLOAD 0000339a: RETURNDATASIZE 0000339b: PUSH1 0x1f 0000339d: NOT 0000339e: PUSH1 0x1f 000033a0: DUP3 000033a1: ADD 000033a2: AND 000033a3: DUP3 000033a4: ADD 000033a5: DUP1 000033a6: PUSH1 0x40 000033a8: MSTORE 000033a9: POP 000033aa: DUP2 000033ab: ADD 000033ac: SWAP1 000033ad: PUSH2 0x33b6 000033b0: SWAP2 000033b1: SWAP1 000033b2: PUSH2 0x5aff 000033b5: JUMP 000033b6: JUMPDEST 000033b7: PUSH1 0x01 000033b9: PUSH1 0x01 000033bb: PUSH1 0xa0 000033bd: SHL 000033be: SUB 000033bf: AND 000033c0: EQ 000033c1: ISZERO 000033c2: JUMPDEST 000033c3: ISZERO 000033c4: PUSH2 0x33e0 000033c7: JUMPI 000033c8: PUSH1 0x40 000033ca: MLOAD 000033cb: PUSH4 0x229e78bb 000033d0: PUSH1 0xe0 000033d2: SHL 000033d3: DUP2 000033d4: MSTORE 000033d5: PUSH1 0x04 000033d7: ADD 000033d8: PUSH1 0x40 000033da: MLOAD 000033db: DUP1 000033dc: SWAP2 000033dd: SUB 000033de: SWAP1 000033df: REVERT 000033e0: JUMPDEST 000033e1: PUSH1 0x13 000033e3: DUP1 000033e4: SLOAD 000033e5: PUSH1 0x01 000033e7: PUSH1 0x01 000033e9: PUSH1 0xa0 000033eb: SHL 000033ec: SUB 000033ed: NOT 000033ee: AND 000033ef: PUSH1 0x01 000033f1: PUSH1 0x01 000033f3: PUSH1 0xa0 000033f5: SHL 000033f6: SUB 000033f7: DUP4 000033f8: AND 000033f9: SWAP1 000033fa: DUP2 000033fb: OR 000033fc: SWAP1 000033fd: SWAP2 000033fe: SSTORE 000033ff: PUSH1 0x40 00003401: MLOAD 00003402: SWAP1 00003403: DUP2 00003404: MSTORE 00003405: PUSH32 0x51b1b17228af00bd72d43ecec4334e09b3584633abf6ef363a9fde05dfa73f88 00003426: SWAP1 00003427: PUSH1 0x20 00003429: ADD 0000342a: PUSH2 0x1a12 0000342d: JUMP 0000342e: JUMPDEST 0000342f: PUSH1 0x06 00003431: SLOAD 00003432: PUSH1 0x01 00003434: PUSH1 0xb0 00003436: SHL 00003437: SWAP1 00003438: DIV 00003439: PUSH1 0xff 0000343b: AND 0000343c: PUSH2 0x34e5 0000343f: JUMPI 00003440: PUSH1 0x40 00003442: MLOAD 00003443: PUSH4 0x0ad85dff 00003448: PUSH1 0xe4 0000344a: SHL 0000344b: DUP2 0000344c: MSTORE 0000344d: ADDRESS 0000344e: PUSH1 0x04 00003450: DUP3 00003451: ADD 00003452: MSTORE 00003453: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476 00003474: PUSH1 0x01 00003476: PUSH1 0x01 00003478: PUSH1 0xa0 0000347a: SHL 0000347b: SUB 0000347c: AND 0000347d: SWAP1 0000347e: PUSH4 0xad85dff0 00003483: SWAP1 00003484: PUSH1 0x24 00003486: ADD 00003487: PUSH1 0x20 00003489: PUSH1 0x40 0000348b: MLOAD 0000348c: DUP1 0000348d: DUP4 0000348e: SUB 0000348f: DUP2 00003490: DUP7 00003491: GAS 00003492: STATICCALL 00003493: ISZERO 00003494: DUP1 00003495: ISZERO 00003496: PUSH2 0x34a3 00003499: JUMPI 0000349a: RETURNDATASIZE 0000349b: PUSH1 0x00 0000349d: DUP1 0000349e: RETURNDATACOPY 0000349f: RETURNDATASIZE 000034a0: PUSH1 0x00 000034a2: REVERT 000034a3: JUMPDEST 000034a4: POP 000034a5: POP 000034a6: POP 000034a7: POP 000034a8: PUSH1 0x40 000034aa: MLOAD 000034ab: RETURNDATASIZE 000034ac: PUSH1 0x1f 000034ae: NOT 000034af: PUSH1 0x1f 000034b1: DUP3 000034b2: ADD 000034b3: AND 000034b4: DUP3 000034b5: ADD 000034b6: DUP1 000034b7: PUSH1 0x40 000034b9: MSTORE 000034ba: POP 000034bb: DUP2 000034bc: ADD 000034bd: SWAP1 000034be: PUSH2 0x34c7 000034c1: SWAP2 000034c2: SWAP1 000034c3: PUSH2 0x59fa 000034c6: JUMP 000034c7: JUMPDEST 000034c8: ISZERO 000034c9: PUSH2 0x34e5 000034cc: JUMPI 000034cd: PUSH1 0x40 000034cf: MLOAD 000034d0: PUSH4 0x0f301f8f 000034d5: PUSH1 0xe4 000034d7: SHL 000034d8: DUP2 000034d9: MSTORE 000034da: PUSH1 0x04 000034dc: ADD 000034dd: PUSH1 0x40 000034df: MLOAD 000034e0: DUP1 000034e1: SWAP2 000034e2: SUB 000034e3: SWAP1 000034e4: REVERT 000034e5: JUMPDEST 000034e6: JUMP 000034e7: JUMPDEST 000034e8: PUSH1 0x09 000034ea: SLOAD 000034eb: PUSH1 0x00 000034ed: SWAP1 000034ee: DUP2 000034ef: DUP2 000034f0: PUSH1 0x01 000034f2: PUSH1 0x01 000034f4: PUSH1 0x40 000034f6: SHL 000034f7: SUB 000034f8: DUP2 000034f9: GT 000034fa: ISZERO 000034fb: PUSH2 0x3506 000034fe: JUMPI 000034ff: PUSH2 0x3506 00003502: PUSH2 0x4ee5 00003505: JUMP 00003506: JUMPDEST 00003507: PUSH1 0x40 00003509: MLOAD 0000350a: SWAP1 0000350b: DUP1 0000350c: DUP3 0000350d: MSTORE 0000350e: DUP1 0000350f: PUSH1 0x20 00003511: MUL 00003512: PUSH1 0x20 00003514: ADD 00003515: DUP3 00003516: ADD 00003517: PUSH1 0x40 00003519: MSTORE 0000351a: DUP1 0000351b: ISZERO 0000351c: PUSH2 0x352f 0000351f: JUMPI 00003520: DUP2 00003521: PUSH1 0x20 00003523: ADD 00003524: PUSH1 0x20 00003526: DUP3 00003527: MUL 00003528: DUP1 00003529: CALLDATASIZE 0000352a: DUP4 0000352b: CALLDATACOPY 0000352c: ADD 0000352d: SWAP1 0000352e: POP 0000352f: JUMPDEST 00003530: POP 00003531: SWAP1 00003532: POP 00003533: PUSH1 0x00 00003535: DUP3 00003536: PUSH1 0x01 00003538: PUSH1 0x01 0000353a: PUSH1 0x40 0000353c: SHL 0000353d: SUB 0000353e: DUP2 0000353f: GT 00003540: ISZERO 00003541: PUSH2 0x354c 00003544: JUMPI 00003545: PUSH2 0x354c 00003548: PUSH2 0x4ee5 0000354b: JUMP 0000354c: JUMPDEST 0000354d: PUSH1 0x40 0000354f: MLOAD 00003550: SWAP1 00003551: DUP1 00003552: DUP3 00003553: MSTORE 00003554: DUP1 00003555: PUSH1 0x20 00003557: MUL 00003558: PUSH1 0x20 0000355a: ADD 0000355b: DUP3 0000355c: ADD 0000355d: PUSH1 0x40 0000355f: MSTORE 00003560: DUP1 00003561: ISZERO 00003562: PUSH2 0x3575 00003565: JUMPI 00003566: DUP2 00003567: PUSH1 0x20 00003569: ADD 0000356a: PUSH1 0x20 0000356c: DUP3 0000356d: MUL 0000356e: DUP1 0000356f: CALLDATASIZE 00003570: DUP4 00003571: CALLDATACOPY 00003572: ADD 00003573: SWAP1 00003574: POP 00003575: JUMPDEST 00003576: POP 00003577: SWAP1 00003578: POP 00003579: DUP5 0000357a: ISZERO 0000357b: PUSH2 0x36e3 0000357e: JUMPI 0000357f: PUSH1 0x00 00003581: JUMPDEST 00003582: DUP4 00003583: DUP2 00003584: LT 00003585: ISZERO 00003586: PUSH2 0x3646 00003589: JUMPI 0000358a: PUSH1 0x00 0000358c: PUSH1 0x09 0000358e: DUP3 0000358f: DUP2 00003590: SLOAD 00003591: DUP2 00003592: LT 00003593: PUSH2 0x359e 00003596: JUMPI 00003597: PUSH2 0x359e 0000359a: PUSH2 0x56c3 0000359d: JUMP 0000359e: JUMPDEST 0000359f: SWAP1 000035a0: PUSH1 0x00 000035a2: MSTORE 000035a3: PUSH1 0x20 000035a5: PUSH1 0x00 000035a7: KECCAK256 000035a8: SWAP1 000035a9: PUSH1 0x08 000035ab: SWAP2 000035ac: DUP3 000035ad: DUP3 000035ae: DIV 000035af: ADD 000035b0: SWAP2 000035b1: SWAP1 000035b2: MOD 000035b3: PUSH1 0x04 000035b5: MUL 000035b6: SWAP1 000035b7: SLOAD 000035b8: SWAP1 000035b9: PUSH2 0x0100 000035bc: EXP 000035bd: SWAP1 000035be: DIV 000035bf: PUSH4 0xffffffff 000035c4: AND 000035c5: SWAP1 000035c6: POP 000035c7: PUSH2 0x35cf 000035ca: DUP2 000035cb: PUSH2 0x44d0 000035ce: JUMP 000035cf: JUMPDEST 000035d0: DUP4 000035d1: DUP4 000035d2: DUP2 000035d3: MLOAD 000035d4: DUP2 000035d5: LT 000035d6: PUSH2 0x35e1 000035d9: JUMPI 000035da: PUSH2 0x35e1 000035dd: PUSH2 0x56c3 000035e0: JUMP 000035e1: JUMPDEST 000035e2: PUSH1 0x20 000035e4: MUL 000035e5: PUSH1 0x20 000035e7: ADD 000035e8: ADD 000035e9: DUP2 000035ea: DUP2 000035eb: MSTORE 000035ec: POP 000035ed: PUSH1 0x00 000035ef: SUB 000035f0: PUSH2 0x35f9 000035f3: JUMPI 000035f4: POP 000035f5: PUSH2 0x3636 000035f8: JUMP 000035f9: JUMPDEST 000035fa: PUSH2 0x3602 000035fd: DUP2 000035fe: PUSH2 0x39a9 00003601: JUMP 00003602: JUMPDEST 00003603: DUP5 00003604: DUP4 00003605: DUP2 00003606: MLOAD 00003607: DUP2 00003608: LT 00003609: PUSH2 0x3614 0000360c: JUMPI 0000360d: PUSH2 0x3614 00003610: PUSH2 0x56c3 00003613: JUMP 00003614: JUMPDEST 00003615: PUSH1 0x20 00003617: MUL 00003618: PUSH1 0x20 0000361a: ADD 0000361b: ADD 0000361c: SWAP1 0000361d: PUSH1 0x01 0000361f: PUSH1 0x01 00003621: PUSH1 0xa0 00003623: SHL 00003624: SUB 00003625: AND 00003626: SWAP1 00003627: DUP2 00003628: PUSH1 0x01 0000362a: PUSH1 0x01 0000362c: PUSH1 0xa0 0000362e: SHL 0000362f: SUB 00003630: AND 00003631: DUP2 00003632: MSTORE 00003633: POP 00003634: POP 00003635: POP 00003636: JUMPDEST 00003637: PUSH2 0x363f 0000363a: DUP2 0000363b: PUSH2 0x583d 0000363e: JUMP 0000363f: JUMPDEST 00003640: SWAP1 00003641: POP 00003642: PUSH2 0x3581 00003645: JUMP 00003646: JUMPDEST 00003647: POP 00003648: PUSH1 0x08 0000364a: SLOAD 0000364b: PUSH1 0x40 0000364d: MLOAD 0000364e: PUSH4 0xb333a175 00003653: PUSH1 0xe0 00003655: SHL 00003656: DUP2 00003657: MSTORE 00003658: PUSH1 0x01 0000365a: PUSH1 0x01 0000365c: PUSH1 0xa0 0000365e: SHL 0000365f: SUB 00003660: SWAP1 00003661: SWAP2 00003662: AND 00003663: SWAP1 00003664: PUSH4 0xb333a175 00003669: SWAP1 0000366a: PUSH2 0x369b 0000366d: SWAP1 0000366e: DUP6 0000366f: SWAP1 00003670: DUP6 00003671: SWAP1 00003672: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00003693: SWAP1 00003694: PUSH1 0x04 00003696: ADD 00003697: PUSH2 0x5b1c 0000369a: JUMP 0000369b: JUMPDEST 0000369c: PUSH1 0x20 0000369e: PUSH1 0x40 000036a0: MLOAD 000036a1: DUP1 000036a2: DUP4 000036a3: SUB 000036a4: DUP2 000036a5: DUP7 000036a6: GAS 000036a7: STATICCALL 000036a8: ISZERO 000036a9: DUP1 000036aa: ISZERO 000036ab: PUSH2 0x36b8 000036ae: JUMPI 000036af: RETURNDATASIZE 000036b0: PUSH1 0x00 000036b2: DUP1 000036b3: RETURNDATACOPY 000036b4: RETURNDATASIZE 000036b5: PUSH1 0x00 000036b7: REVERT 000036b8: JUMPDEST 000036b9: POP 000036ba: POP 000036bb: POP 000036bc: POP 000036bd: PUSH1 0x40 000036bf: MLOAD 000036c0: RETURNDATASIZE 000036c1: PUSH1 0x1f 000036c3: NOT 000036c4: PUSH1 0x1f 000036c6: DUP3 000036c7: ADD 000036c8: AND 000036c9: DUP3 000036ca: ADD 000036cb: DUP1 000036cc: PUSH1 0x40 000036ce: MSTORE 000036cf: POP 000036d0: DUP2 000036d1: ADD 000036d2: SWAP1 000036d3: PUSH2 0x36dc 000036d6: SWAP2 000036d7: SWAP1 000036d8: PUSH2 0x5b5a 000036db: JUMP 000036dc: JUMPDEST 000036dd: SWAP4 000036de: POP 000036df: PUSH2 0x16c8 000036e2: JUMP 000036e3: JUMPDEST 000036e4: PUSH1 0x0a 000036e6: SLOAD 000036e7: PUSH1 0x00 000036e9: DUP2 000036ea: PUSH1 0x01 000036ec: PUSH1 0x01 000036ee: PUSH1 0x40 000036f0: SHL 000036f1: SUB 000036f2: DUP2 000036f3: GT 000036f4: ISZERO 000036f5: PUSH2 0x3700 000036f8: JUMPI 000036f9: PUSH2 0x3700 000036fc: PUSH2 0x4ee5 000036ff: JUMP 00003700: JUMPDEST 00003701: PUSH1 0x40 00003703: MLOAD 00003704: SWAP1 00003705: DUP1 00003706: DUP3 00003707: MSTORE 00003708: DUP1 00003709: PUSH1 0x20 0000370b: MUL 0000370c: PUSH1 0x20 0000370e: ADD 0000370f: DUP3 00003710: ADD 00003711: PUSH1 0x40 00003713: MSTORE 00003714: DUP1 00003715: ISZERO 00003716: PUSH2 0x3729 00003719: JUMPI 0000371a: DUP2 0000371b: PUSH1 0x20 0000371d: ADD 0000371e: PUSH1 0x20 00003720: DUP3 00003721: MUL 00003722: DUP1 00003723: CALLDATASIZE 00003724: DUP4 00003725: CALLDATACOPY 00003726: ADD 00003727: SWAP1 00003728: POP 00003729: JUMPDEST 0000372a: POP 0000372b: SWAP1 0000372c: POP 0000372d: PUSH1 0x00 0000372f: DUP3 00003730: PUSH1 0x01 00003732: PUSH1 0x01 00003734: PUSH1 0x40 00003736: SHL 00003737: SUB 00003738: DUP2 00003739: GT 0000373a: ISZERO 0000373b: PUSH2 0x3746 0000373e: JUMPI 0000373f: PUSH2 0x3746 00003742: PUSH2 0x4ee5 00003745: JUMP 00003746: JUMPDEST 00003747: PUSH1 0x40 00003749: MLOAD 0000374a: SWAP1 0000374b: DUP1 0000374c: DUP3 0000374d: MSTORE 0000374e: DUP1 0000374f: PUSH1 0x20 00003751: MUL 00003752: PUSH1 0x20 00003754: ADD 00003755: DUP3 00003756: ADD 00003757: PUSH1 0x40 00003759: MSTORE 0000375a: DUP1 0000375b: ISZERO 0000375c: PUSH2 0x376f 0000375f: JUMPI 00003760: DUP2 00003761: PUSH1 0x20 00003763: ADD 00003764: PUSH1 0x20 00003766: DUP3 00003767: MUL 00003768: DUP1 00003769: CALLDATASIZE 0000376a: DUP4 0000376b: CALLDATACOPY 0000376c: ADD 0000376d: SWAP1 0000376e: POP 0000376f: JUMPDEST 00003770: POP 00003771: SWAP1 00003772: POP 00003773: PUSH1 0x00 00003775: JUMPDEST 00003776: DUP7 00003777: DUP2 00003778: LT 00003779: ISZERO 0000377a: PUSH2 0x383a 0000377d: JUMPI 0000377e: PUSH1 0x00 00003780: PUSH1 0x09 00003782: DUP3 00003783: DUP2 00003784: SLOAD 00003785: DUP2 00003786: LT 00003787: PUSH2 0x3792 0000378a: JUMPI 0000378b: PUSH2 0x3792 0000378e: PUSH2 0x56c3 00003791: JUMP 00003792: JUMPDEST 00003793: SWAP1 00003794: PUSH1 0x00 00003796: MSTORE 00003797: PUSH1 0x20 00003799: PUSH1 0x00 0000379b: KECCAK256 0000379c: SWAP1 0000379d: PUSH1 0x08 0000379f: SWAP2 000037a0: DUP3 000037a1: DUP3 000037a2: DIV 000037a3: ADD 000037a4: SWAP2 000037a5: SWAP1 000037a6: MOD 000037a7: PUSH1 0x04 000037a9: MUL 000037aa: SWAP1 000037ab: SLOAD 000037ac: SWAP1 000037ad: PUSH2 0x0100 000037b0: EXP 000037b1: SWAP1 000037b2: DIV 000037b3: PUSH4 0xffffffff 000037b8: AND 000037b9: SWAP1 000037ba: POP 000037bb: PUSH2 0x37c3 000037be: DUP2 000037bf: PUSH2 0x3b98 000037c2: JUMP 000037c3: JUMPDEST 000037c4: DUP7 000037c5: DUP4 000037c6: DUP2 000037c7: MLOAD 000037c8: DUP2 000037c9: LT 000037ca: PUSH2 0x37d5 000037cd: JUMPI 000037ce: PUSH2 0x37d5 000037d1: PUSH2 0x56c3 000037d4: JUMP 000037d5: JUMPDEST 000037d6: PUSH1 0x20 000037d8: MUL 000037d9: PUSH1 0x20 000037db: ADD 000037dc: ADD 000037dd: DUP2 000037de: DUP2 000037df: MSTORE 000037e0: POP 000037e1: PUSH1 0x00 000037e3: SUB 000037e4: PUSH2 0x37ed 000037e7: JUMPI 000037e8: POP 000037e9: PUSH2 0x382a 000037ec: JUMP 000037ed: JUMPDEST 000037ee: PUSH2 0x37f6 000037f1: DUP2 000037f2: PUSH2 0x39a9 000037f5: JUMP 000037f6: JUMPDEST 000037f7: DUP8 000037f8: DUP4 000037f9: DUP2 000037fa: MLOAD 000037fb: DUP2 000037fc: LT 000037fd: PUSH2 0x3808 00003800: JUMPI 00003801: PUSH2 0x3808 00003804: PUSH2 0x56c3 00003807: JUMP 00003808: JUMPDEST 00003809: PUSH1 0x20 0000380b: MUL 0000380c: PUSH1 0x20 0000380e: ADD 0000380f: ADD 00003810: SWAP1 00003811: PUSH1 0x01 00003813: PUSH1 0x01 00003815: PUSH1 0xa0 00003817: SHL 00003818: SUB 00003819: AND 0000381a: SWAP1 0000381b: DUP2 0000381c: PUSH1 0x01 0000381e: PUSH1 0x01 00003820: PUSH1 0xa0 00003822: SHL 00003823: SUB 00003824: AND 00003825: DUP2 00003826: MSTORE 00003827: POP 00003828: POP 00003829: POP 0000382a: JUMPDEST 0000382b: PUSH2 0x3833 0000382e: DUP2 0000382f: PUSH2 0x583d 00003832: JUMP 00003833: JUMPDEST 00003834: SWAP1 00003835: POP 00003836: PUSH2 0x3775 00003839: JUMP 0000383a: JUMPDEST 0000383b: POP 0000383c: PUSH1 0x00 0000383e: JUMPDEST 0000383f: DUP4 00003840: DUP2 00003841: LT 00003842: ISZERO 00003843: PUSH2 0x3903 00003846: JUMPI 00003847: PUSH1 0x00 00003849: PUSH1 0x0a 0000384b: DUP3 0000384c: DUP2 0000384d: SLOAD 0000384e: DUP2 0000384f: LT 00003850: PUSH2 0x385b 00003853: JUMPI 00003854: PUSH2 0x385b 00003857: PUSH2 0x56c3 0000385a: JUMP 0000385b: JUMPDEST 0000385c: SWAP1 0000385d: PUSH1 0x00 0000385f: MSTORE 00003860: PUSH1 0x20 00003862: PUSH1 0x00 00003864: KECCAK256 00003865: SWAP1 00003866: PUSH1 0x08 00003868: SWAP2 00003869: DUP3 0000386a: DUP3 0000386b: DIV 0000386c: ADD 0000386d: SWAP2 0000386e: SWAP1 0000386f: MOD 00003870: PUSH1 0x04 00003872: MUL 00003873: SWAP1 00003874: SLOAD 00003875: SWAP1 00003876: PUSH2 0x0100 00003879: EXP 0000387a: SWAP1 0000387b: DIV 0000387c: PUSH4 0xffffffff 00003881: AND 00003882: SWAP1 00003883: POP 00003884: PUSH2 0x388c 00003887: DUP2 00003888: PUSH2 0x3b98 0000388b: JUMP 0000388c: JUMPDEST 0000388d: DUP4 0000388e: DUP4 0000388f: DUP2 00003890: MLOAD 00003891: DUP2 00003892: LT 00003893: PUSH2 0x389e 00003896: JUMPI 00003897: PUSH2 0x389e 0000389a: PUSH2 0x56c3 0000389d: JUMP 0000389e: JUMPDEST 0000389f: PUSH1 0x20 000038a1: MUL 000038a2: PUSH1 0x20 000038a4: ADD 000038a5: ADD 000038a6: DUP2 000038a7: DUP2 000038a8: MSTORE 000038a9: POP 000038aa: PUSH1 0x00 000038ac: SUB 000038ad: PUSH2 0x38b6 000038b0: JUMPI 000038b1: POP 000038b2: PUSH2 0x38f3 000038b5: JUMP 000038b6: JUMPDEST 000038b7: PUSH2 0x38bf 000038ba: DUP2 000038bb: PUSH2 0x39a9 000038be: JUMP 000038bf: JUMPDEST 000038c0: DUP5 000038c1: DUP4 000038c2: DUP2 000038c3: MLOAD 000038c4: DUP2 000038c5: LT 000038c6: PUSH2 0x38d1 000038c9: JUMPI 000038ca: PUSH2 0x38d1 000038cd: PUSH2 0x56c3 000038d0: JUMP 000038d1: JUMPDEST 000038d2: PUSH1 0x20 000038d4: MUL 000038d5: PUSH1 0x20 000038d7: ADD 000038d8: ADD 000038d9: SWAP1 000038da: PUSH1 0x01 000038dc: PUSH1 0x01 000038de: PUSH1 0xa0 000038e0: SHL 000038e1: SUB 000038e2: AND 000038e3: SWAP1 000038e4: DUP2 000038e5: PUSH1 0x01 000038e7: PUSH1 0x01 000038e9: PUSH1 0xa0 000038eb: SHL 000038ec: SUB 000038ed: AND 000038ee: DUP2 000038ef: MSTORE 000038f0: POP 000038f1: POP 000038f2: POP 000038f3: JUMPDEST 000038f4: PUSH2 0x38fc 000038f7: DUP2 000038f8: PUSH2 0x583d 000038fb: JUMP 000038fc: JUMPDEST 000038fd: SWAP1 000038fe: POP 000038ff: PUSH2 0x383e 00003902: JUMP 00003903: JUMPDEST 00003904: POP 00003905: PUSH1 0x08 00003907: SLOAD 00003908: PUSH1 0x40 0000390a: MLOAD 0000390b: PUSH4 0x7563738b 00003910: PUSH1 0xe1 00003912: SHL 00003913: DUP2 00003914: MSTORE 00003915: PUSH1 0x01 00003917: PUSH1 0x01 00003919: PUSH1 0xa0 0000391b: SHL 0000391c: SUB 0000391d: SWAP1 0000391e: SWAP2 0000391f: AND 00003920: SWAP1 00003921: PUSH4 0xeac6e716 00003926: SWAP1 00003927: PUSH2 0x395c 0000392a: SWAP1 0000392b: DUP9 0000392c: SWAP1 0000392d: DUP9 0000392e: SWAP1 0000392f: DUP8 00003930: SWAP1 00003931: DUP8 00003932: SWAP1 00003933: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00003954: SWAP1 00003955: PUSH1 0x04 00003957: ADD 00003958: PUSH2 0x5b73 0000395b: JUMP 0000395c: JUMPDEST 0000395d: PUSH1 0x20 0000395f: PUSH1 0x40 00003961: MLOAD 00003962: DUP1 00003963: DUP4 00003964: SUB 00003965: DUP2 00003966: DUP7 00003967: GAS 00003968: STATICCALL 00003969: ISZERO 0000396a: DUP1 0000396b: ISZERO 0000396c: PUSH2 0x3979 0000396f: JUMPI 00003970: RETURNDATASIZE 00003971: PUSH1 0x00 00003973: DUP1 00003974: RETURNDATACOPY 00003975: RETURNDATASIZE 00003976: PUSH1 0x00 00003978: REVERT 00003979: JUMPDEST 0000397a: POP 0000397b: POP 0000397c: POP 0000397d: POP 0000397e: PUSH1 0x40 00003980: MLOAD 00003981: RETURNDATASIZE 00003982: PUSH1 0x1f 00003984: NOT 00003985: PUSH1 0x1f 00003987: DUP3 00003988: ADD 00003989: AND 0000398a: DUP3 0000398b: ADD 0000398c: DUP1 0000398d: PUSH1 0x40 0000398f: MSTORE 00003990: POP 00003991: DUP2 00003992: ADD 00003993: SWAP1 00003994: PUSH2 0x399d 00003997: SWAP2 00003998: SWAP1 00003999: PUSH2 0x5b5a 0000399c: JUMP 0000399d: JUMPDEST 0000399e: SWAP9 0000399f: SWAP8 000039a0: POP 000039a1: POP 000039a2: POP 000039a3: POP 000039a4: POP 000039a5: POP 000039a6: POP 000039a7: POP 000039a8: JUMP 000039a9: JUMPDEST 000039aa: PUSH4 0xffffffff 000039af: DUP2 000039b0: AND 000039b1: PUSH1 0x00 000039b3: SWAP1 000039b4: DUP2 000039b5: MSTORE 000039b6: PUSH1 0x0c 000039b8: PUSH1 0x20 000039ba: MSTORE 000039bb: PUSH1 0x40 000039bd: DUP1 000039be: DUP3 000039bf: KECCAK256 000039c0: DUP1 000039c1: SLOAD 000039c2: SWAP2 000039c3: MLOAD 000039c4: PUSH4 0xe170a9bf 000039c9: PUSH1 0xe0 000039cb: SHL 000039cc: DUP2 000039cd: MSTORE 000039ce: PUSH1 0x01 000039d0: PUSH1 0x01 000039d2: PUSH1 0xa0 000039d4: SHL 000039d5: SUB 000039d6: SWAP1 000039d7: SWAP3 000039d8: AND 000039d9: SWAP2 000039da: DUP3 000039db: SWAP2 000039dc: PUSH4 0xe170a9bf 000039e1: SWAP2 000039e2: PUSH2 0x39f1 000039e5: SWAP2 000039e6: PUSH1 0x01 000039e8: ADD 000039e9: SWAP1 000039ea: PUSH1 0x04 000039ec: ADD 000039ed: PUSH2 0x5c58 000039f0: JUMP 000039f1: JUMPDEST 000039f2: PUSH1 0x20 000039f4: PUSH1 0x40 000039f6: MLOAD 000039f7: DUP1 000039f8: DUP4 000039f9: SUB 000039fa: DUP2 000039fb: DUP7 000039fc: GAS 000039fd: STATICCALL 000039fe: ISZERO 000039ff: DUP1 00003a00: ISZERO 00003a01: PUSH2 0x3a0e 00003a04: JUMPI 00003a05: RETURNDATASIZE 00003a06: PUSH1 0x00 00003a08: DUP1 00003a09: RETURNDATACOPY 00003a0a: RETURNDATASIZE 00003a0b: PUSH1 0x00 00003a0d: REVERT 00003a0e: JUMPDEST 00003a0f: POP 00003a10: POP 00003a11: POP 00003a12: POP 00003a13: PUSH1 0x40 00003a15: MLOAD 00003a16: RETURNDATASIZE 00003a17: PUSH1 0x1f 00003a19: NOT 00003a1a: PUSH1 0x1f 00003a1c: DUP3 00003a1d: ADD 00003a1e: AND 00003a1f: DUP3 00003a20: ADD 00003a21: DUP1 00003a22: PUSH1 0x40 00003a24: MSTORE 00003a25: POP 00003a26: DUP2 00003a27: ADD 00003a28: SWAP1 00003a29: PUSH2 0x3a32 00003a2c: SWAP2 00003a2d: SWAP1 00003a2e: PUSH2 0x5aff 00003a31: JUMP 00003a32: JUMPDEST 00003a33: SWAP4 00003a34: SWAP3 00003a35: POP 00003a36: POP 00003a37: POP 00003a38: JUMP 00003a39: JUMPDEST 00003a3a: PUSH1 0x13 00003a3c: SLOAD 00003a3d: PUSH1 0x00 00003a3f: SWAP1 00003a40: DUP2 00003a41: SWAP1 00003a42: PUSH1 0x01 00003a44: PUSH1 0x01 00003a46: PUSH1 0xa0 00003a48: SHL 00003a49: SUB 00003a4a: AND 00003a4b: DUP1 00003a4c: ISZERO 00003a4d: PUSH2 0x3b34 00003a50: JUMPI 00003a51: PUSH1 0x00 00003a53: DUP1 00003a54: PUSH1 0x00 00003a56: DUP4 00003a57: PUSH1 0x01 00003a59: PUSH1 0x01 00003a5b: PUSH1 0xa0 00003a5d: SHL 00003a5e: SUB 00003a5f: AND 00003a60: PUSH4 0xc36af460 00003a65: PUSH1 0x40 00003a67: MLOAD 00003a68: DUP2 00003a69: PUSH4 0xffffffff 00003a6e: AND 00003a6f: PUSH1 0xe0 00003a71: SHL 00003a72: DUP2 00003a73: MSTORE 00003a74: PUSH1 0x04 00003a76: ADD 00003a77: PUSH1 0x60 00003a79: PUSH1 0x40 00003a7b: MLOAD 00003a7c: DUP1 00003a7d: DUP4 00003a7e: SUB 00003a7f: DUP2 00003a80: DUP7 00003a81: GAS 00003a82: STATICCALL 00003a83: ISZERO 00003a84: DUP1 00003a85: ISZERO 00003a86: PUSH2 0x3a93 00003a89: JUMPI 00003a8a: RETURNDATASIZE 00003a8b: PUSH1 0x00 00003a8d: DUP1 00003a8e: RETURNDATACOPY 00003a8f: RETURNDATASIZE 00003a90: PUSH1 0x00 00003a92: REVERT 00003a93: JUMPDEST 00003a94: POP 00003a95: POP 00003a96: POP 00003a97: POP 00003a98: PUSH1 0x40 00003a9a: MLOAD 00003a9b: RETURNDATASIZE 00003a9c: PUSH1 0x1f 00003a9e: NOT 00003a9f: PUSH1 0x1f 00003aa1: DUP3 00003aa2: ADD 00003aa3: AND 00003aa4: DUP3 00003aa5: ADD 00003aa6: DUP1 00003aa7: PUSH1 0x40 00003aa9: MSTORE 00003aaa: POP 00003aab: DUP2 00003aac: ADD 00003aad: SWAP1 00003aae: PUSH2 0x3ab7 00003ab1: SWAP2 00003ab2: SWAP1 00003ab3: PUSH2 0x5c6b 00003ab6: JUMP 00003ab7: JUMPDEST 00003ab8: SWAP3 00003ab9: POP 00003aba: SWAP3 00003abb: POP 00003abc: SWAP3 00003abd: POP 00003abe: DUP1 00003abf: ISZERO 00003ac0: PUSH2 0x3adc 00003ac3: JUMPI 00003ac4: PUSH1 0x40 00003ac6: MLOAD 00003ac7: PUSH4 0x229e78bb 00003acc: PUSH1 0xe0 00003ace: SHL 00003acf: DUP2 00003ad0: MSTORE 00003ad1: PUSH1 0x04 00003ad3: ADD 00003ad4: PUSH1 0x40 00003ad6: MLOAD 00003ad7: DUP1 00003ad8: SWAP2 00003ad9: SUB 00003ada: SWAP1 00003adb: REVERT 00003adc: JUMPDEST 00003add: PUSH1 0x00 00003adf: DUP8 00003ae0: ISZERO 00003ae1: PUSH2 0x3afa 00003ae4: JUMPI 00003ae5: DUP3 00003ae6: DUP5 00003ae7: GT 00003ae8: PUSH2 0x3af1 00003aeb: JUMPI 00003aec: DUP3 00003aed: PUSH2 0x3af3 00003af0: JUMP 00003af1: JUMPDEST 00003af2: DUP4 00003af3: JUMPDEST 00003af4: SWAP1 00003af5: POP 00003af6: PUSH2 0x3b0c 00003af9: JUMP 00003afa: JUMPDEST 00003afb: DUP3 00003afc: DUP5 00003afd: LT 00003afe: PUSH2 0x3b07 00003b01: JUMPI 00003b02: DUP3 00003b03: PUSH2 0x3b09 00003b06: JUMP 00003b07: JUMPDEST 00003b08: DUP4 00003b09: JUMPDEST 00003b0a: SWAP1 00003b0b: POP 00003b0c: JUMPDEST 00003b0d: PUSH1 0x02 00003b0f: SLOAD 00003b10: SWAP6 00003b11: POP 00003b12: PUSH2 0x3b29 00003b15: DUP7 00003b16: PUSH2 0x3b21 00003b19: PUSH1 0x12 00003b1b: PUSH1 0x0a 00003b1d: PUSH2 0x5d7d 00003b20: JUMP 00003b21: JUMPDEST 00003b22: DUP4 00003b23: SWAP2 00003b24: SWAP1 00003b25: PUSH2 0x42d6 00003b28: JUMP 00003b29: JUMPDEST 00003b2a: SWAP7 00003b2b: POP 00003b2c: POP 00003b2d: POP 00003b2e: POP 00003b2f: POP 00003b30: PUSH2 0x3b4d 00003b33: JUMP 00003b34: JUMPDEST 00003b35: PUSH1 0x40 00003b37: MLOAD 00003b38: PUSH4 0x229e78bb 00003b3d: PUSH1 0xe0 00003b3f: SHL 00003b40: DUP2 00003b41: MSTORE 00003b42: PUSH1 0x04 00003b44: ADD 00003b45: PUSH1 0x40 00003b47: MLOAD 00003b48: DUP1 00003b49: SWAP2 00003b4a: SUB 00003b4b: SWAP1 00003b4c: REVERT 00003b4d: JUMPDEST 00003b4e: POP 00003b4f: SWAP2 00003b50: POP 00003b51: SWAP2 00003b52: JUMP 00003b53: JUMPDEST 00003b54: PUSH1 0x00 00003b56: PUSH2 0x0e85 00003b59: DUP5 00003b5a: DUP5 00003b5b: DUP5 00003b5c: PUSH2 0x42d6 00003b5f: JUMP 00003b60: JUMPDEST 00003b61: PUSH1 0x00 00003b63: PUSH2 0x0e85 00003b66: DUP5 00003b67: DUP4 00003b68: DUP6 00003b69: PUSH2 0x3da7 00003b6c: JUMP 00003b6d: JUMPDEST 00003b6e: PUSH1 0x06 00003b70: SLOAD 00003b71: PUSH1 0x01 00003b73: PUSH1 0xa8 00003b75: SHL 00003b76: SWAP1 00003b77: DIV 00003b78: PUSH1 0xff 00003b7a: AND 00003b7b: ISZERO 00003b7c: PUSH2 0x34e5 00003b7f: JUMPI 00003b80: PUSH1 0x40 00003b82: MLOAD 00003b83: PUSH4 0x37a5332d 00003b88: PUSH1 0xe1 00003b8a: SHL 00003b8b: DUP2 00003b8c: MSTORE 00003b8d: PUSH1 0x04 00003b8f: ADD 00003b90: PUSH1 0x40 00003b92: MLOAD 00003b93: DUP1 00003b94: SWAP2 00003b95: SUB 00003b96: SWAP1 00003b97: REVERT 00003b98: JUMPDEST 00003b99: PUSH4 0xffffffff 00003b9e: DUP2 00003b9f: AND 00003ba0: PUSH1 0x00 00003ba2: SWAP1 00003ba3: DUP2 00003ba4: MSTORE 00003ba5: PUSH1 0x0c 00003ba7: PUSH1 0x20 00003ba9: MSTORE 00003baa: PUSH1 0x40 00003bac: DUP1 00003bad: DUP3 00003bae: KECCAK256 00003baf: DUP1 00003bb0: SLOAD 00003bb1: SWAP2 00003bb2: MLOAD 00003bb3: PUSH4 0x78415365 00003bb8: PUSH1 0xe0 00003bba: SHL 00003bbb: DUP2 00003bbc: MSTORE 00003bbd: PUSH1 0x01 00003bbf: PUSH1 0x01 00003bc1: PUSH1 0xa0 00003bc3: SHL 00003bc4: SUB 00003bc5: SWAP1 00003bc6: SWAP3 00003bc7: AND 00003bc8: SWAP2 00003bc9: DUP3 00003bca: SWAP2 00003bcb: PUSH4 0x78415365 00003bd0: SWAP2 00003bd1: PUSH2 0x3be0 00003bd4: SWAP2 00003bd5: PUSH1 0x01 00003bd7: ADD 00003bd8: SWAP1 00003bd9: PUSH1 0x04 00003bdb: ADD 00003bdc: PUSH2 0x5c58 00003bdf: JUMP 00003be0: JUMPDEST 00003be1: PUSH1 0x20 00003be3: PUSH1 0x40 00003be5: MLOAD 00003be6: DUP1 00003be7: DUP4 00003be8: SUB 00003be9: DUP2 00003bea: DUP7 00003beb: GAS 00003bec: STATICCALL 00003bed: ISZERO 00003bee: DUP1 00003bef: ISZERO 00003bf0: PUSH2 0x3bfd 00003bf3: JUMPI 00003bf4: RETURNDATASIZE 00003bf5: PUSH1 0x00 00003bf7: DUP1 00003bf8: RETURNDATACOPY 00003bf9: RETURNDATASIZE 00003bfa: PUSH1 0x00 00003bfc: REVERT 00003bfd: JUMPDEST 00003bfe: POP 00003bff: POP 00003c00: POP 00003c01: POP 00003c02: PUSH1 0x40 00003c04: MLOAD 00003c05: RETURNDATASIZE 00003c06: PUSH1 0x1f 00003c08: NOT 00003c09: PUSH1 0x1f 00003c0b: DUP3 00003c0c: ADD 00003c0d: AND 00003c0e: DUP3 00003c0f: ADD 00003c10: DUP1 00003c11: PUSH1 0x40 00003c13: MSTORE 00003c14: POP 00003c15: DUP2 00003c16: ADD 00003c17: SWAP1 00003c18: PUSH2 0x3a32 00003c1b: SWAP2 00003c1c: SWAP1 00003c1d: PUSH2 0x5b5a 00003c20: JUMP 00003c21: JUMPDEST 00003c22: PUSH1 0x06 00003c24: SLOAD 00003c25: PUSH4 0xffffffff 00003c2a: PUSH1 0x01 00003c2c: PUSH1 0xc0 00003c2e: SHL 00003c2f: SWAP1 00003c30: SWAP2 00003c31: DIV 00003c32: DUP2 00003c33: AND 00003c34: SWAP1 00003c35: DUP4 00003c36: AND 00003c37: SUB 00003c38: PUSH2 0x3c54 00003c3b: JUMPI 00003c3c: PUSH1 0x40 00003c3e: MLOAD 00003c3f: PUSH4 0x19ded731 00003c44: PUSH1 0xe2 00003c46: SHL 00003c47: DUP2 00003c48: MSTORE 00003c49: PUSH1 0x04 00003c4b: ADD 00003c4c: PUSH1 0x40 00003c4e: MLOAD 00003c4f: DUP1 00003c50: SWAP2 00003c51: SUB 00003c52: SWAP1 00003c53: REVERT 00003c54: JUMPDEST 00003c55: DUP1 00003c56: ISZERO 00003c57: PUSH2 0x3c6a 00003c5a: JUMPI 00003c5b: PUSH2 0x3c65 00003c5e: PUSH1 0x0a 00003c60: DUP5 00003c61: PUSH2 0x458a 00003c64: JUMP 00003c65: JUMPDEST 00003c66: PUSH2 0x3c75 00003c69: JUMP 00003c6a: JUMPDEST 00003c6b: PUSH2 0x3c75 00003c6e: PUSH1 0x09 00003c70: DUP5 00003c71: PUSH2 0x458a 00003c74: JUMP 00003c75: JUMPDEST 00003c76: PUSH4 0xffffffff 00003c7b: DUP3 00003c7c: AND 00003c7d: PUSH1 0x00 00003c7f: SWAP1 00003c80: DUP2 00003c81: MSTORE 00003c82: PUSH1 0x0b 00003c84: PUSH1 0x20 00003c86: SWAP1 00003c87: DUP2 00003c88: MSTORE 00003c89: PUSH1 0x40 00003c8b: DUP1 00003c8c: DUP4 00003c8d: KECCAK256 00003c8e: DUP1 00003c8f: SLOAD 00003c90: PUSH1 0xff 00003c92: NOT 00003c93: AND 00003c94: SWAP1 00003c95: SSTORE 00003c96: PUSH1 0x0c 00003c98: SWAP1 00003c99: SWAP2 00003c9a: MSTORE 00003c9b: DUP2 00003c9c: KECCAK256 00003c9d: DUP1 00003c9e: SLOAD 00003c9f: PUSH1 0x01 00003ca1: PUSH1 0x01 00003ca3: PUSH1 0xa8 00003ca5: SHL 00003ca6: SUB 00003ca7: NOT 00003ca8: AND 00003ca9: DUP2 00003caa: SSTORE 00003cab: SWAP1 00003cac: PUSH2 0x3cb8 00003caf: PUSH1 0x01 00003cb1: DUP4 00003cb2: ADD 00003cb3: DUP3 00003cb4: PUSH2 0x4d9e 00003cb7: JUMP 00003cb8: JUMPDEST 00003cb9: PUSH2 0x3cc6 00003cbc: PUSH1 0x02 00003cbe: DUP4 00003cbf: ADD 00003cc0: PUSH1 0x00 00003cc2: PUSH2 0x4d9e 00003cc5: JUMP 00003cc6: JUMPDEST 00003cc7: POP 00003cc8: POP 00003cc9: PUSH1 0x40 00003ccb: DUP1 00003ccc: MLOAD 00003ccd: PUSH4 0xffffffff 00003cd2: DUP1 00003cd3: DUP6 00003cd4: AND 00003cd5: DUP3 00003cd6: MSTORE 00003cd7: DUP6 00003cd8: AND 00003cd9: PUSH1 0x20 00003cdb: DUP3 00003cdc: ADD 00003cdd: MSTORE 00003cde: PUSH32 0xa5cd0099b78b279c04987aa80ffffaf8fc8c8af4e7c7bce2686e8d01e2e1bd51 00003cff: SWAP2 00003d00: ADD 00003d01: PUSH1 0x40 00003d03: MLOAD 00003d04: DUP1 00003d05: SWAP2 00003d06: SUB 00003d07: SWAP1 00003d08: LOG1 00003d09: POP 00003d0a: POP 00003d0b: POP 00003d0c: JUMP 00003d0d: JUMPDEST 00003d0e: PUSH1 0x00 00003d10: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 00003d31: PUSH1 0x00 00003d33: PUSH1 0x40 00003d35: MLOAD 00003d36: PUSH2 0x3d3f 00003d39: SWAP2 00003d3a: SWAP1 00003d3b: PUSH2 0x5d8c 00003d3e: JUMP 00003d3f: JUMPDEST 00003d40: PUSH1 0x40 00003d42: DUP1 00003d43: MLOAD 00003d44: SWAP2 00003d45: DUP3 00003d46: SWAP1 00003d47: SUB 00003d48: DUP3 00003d49: KECCAK256 00003d4a: PUSH1 0x20 00003d4c: DUP4 00003d4d: ADD 00003d4e: SWAP4 00003d4f: SWAP1 00003d50: SWAP4 00003d51: MSTORE 00003d52: DUP2 00003d53: ADD 00003d54: SWAP2 00003d55: SWAP1 00003d56: SWAP2 00003d57: MSTORE 00003d58: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 00003d79: PUSH1 0x60 00003d7b: DUP3 00003d7c: ADD 00003d7d: MSTORE 00003d7e: CHAINID 00003d7f: PUSH1 0x80 00003d81: DUP3 00003d82: ADD 00003d83: MSTORE 00003d84: ADDRESS 00003d85: PUSH1 0xa0 00003d87: DUP3 00003d88: ADD 00003d89: MSTORE 00003d8a: PUSH1 0xc0 00003d8c: ADD 00003d8d: PUSH1 0x40 00003d8f: MLOAD 00003d90: PUSH1 0x20 00003d92: DUP2 00003d93: DUP4 00003d94: SUB 00003d95: SUB 00003d96: DUP2 00003d97: MSTORE 00003d98: SWAP1 00003d99: PUSH1 0x40 00003d9b: MSTORE 00003d9c: DUP1 00003d9d: MLOAD 00003d9e: SWAP1 00003d9f: PUSH1 0x20 00003da1: ADD 00003da2: KECCAK256 00003da3: SWAP1 00003da4: POP 00003da5: SWAP1 00003da6: JUMP 00003da7: JUMPDEST 00003da8: DUP3 00003da9: DUP3 00003daa: MUL 00003dab: DUP2 00003dac: ISZERO 00003dad: ISZERO 00003dae: DUP5 00003daf: ISZERO 00003db0: DUP6 00003db1: DUP4 00003db2: DIV 00003db3: DUP6 00003db4: EQ 00003db5: OR 00003db6: AND 00003db7: PUSH2 0x3dbf 00003dba: JUMPI 00003dbb: PUSH1 0x00 00003dbd: DUP1 00003dbe: REVERT 00003dbf: JUMPDEST 00003dc0: PUSH1 0x01 00003dc2: DUP3 00003dc3: PUSH1 0x01 00003dc5: DUP4 00003dc6: SUB 00003dc7: DIV 00003dc8: ADD 00003dc9: DUP2 00003dca: ISZERO 00003dcb: ISZERO 00003dcc: MUL 00003dcd: SWAP1 00003dce: POP 00003dcf: SWAP4 00003dd0: SWAP3 00003dd1: POP 00003dd2: POP 00003dd3: POP 00003dd4: JUMP 00003dd5: JUMPDEST 00003dd6: PUSH1 0x00 00003dd8: JUMPDEST 00003dd9: DUP2 00003dda: MLOAD 00003ddb: DUP2 00003ddc: LT 00003ddd: ISZERO 00003dde: PUSH2 0x3f5a 00003de1: JUMPI 00003de2: PUSH1 0x00 00003de4: DUP3 00003de5: DUP3 00003de6: DUP2 00003de7: MLOAD 00003de8: DUP2 00003de9: LT 00003dea: PUSH2 0x3df5 00003ded: JUMPI 00003dee: PUSH2 0x3df5 00003df1: PUSH2 0x56c3 00003df4: JUMP 00003df5: JUMPDEST 00003df6: PUSH1 0x20 00003df8: SWAP1 00003df9: DUP2 00003dfa: MUL 00003dfb: SWAP2 00003dfc: SWAP1 00003dfd: SWAP2 00003dfe: ADD 00003dff: DUP2 00003e00: ADD 00003e01: MLOAD 00003e02: MLOAD 00003e03: PUSH1 0x01 00003e05: PUSH1 0x01 00003e07: PUSH1 0xa0 00003e09: SHL 00003e0a: SUB 00003e0b: DUP2 00003e0c: AND 00003e0d: PUSH1 0x00 00003e0f: SWAP1 00003e10: DUP2 00003e11: MSTORE 00003e12: PUSH1 0x0e 00003e14: SWAP1 00003e15: SWAP3 00003e16: MSTORE 00003e17: PUSH1 0x40 00003e19: SWAP1 00003e1a: SWAP2 00003e1b: KECCAK256 00003e1c: SLOAD 00003e1d: SWAP1 00003e1e: SWAP2 00003e1f: POP 00003e20: PUSH1 0xff 00003e22: AND 00003e23: PUSH2 0x3e4a 00003e26: JUMPI 00003e27: PUSH1 0x40 00003e29: MLOAD 00003e2a: PUSH4 0x5df6b617 00003e2f: PUSH1 0xe1 00003e31: SHL 00003e32: DUP2 00003e33: MSTORE 00003e34: PUSH1 0x01 00003e36: PUSH1 0x01 00003e38: PUSH1 0xa0 00003e3a: SHL 00003e3b: SUB 00003e3c: DUP3 00003e3d: AND 00003e3e: PUSH1 0x04 00003e40: DUP3 00003e41: ADD 00003e42: MSTORE 00003e43: PUSH1 0x24 00003e45: ADD 00003e46: PUSH2 0x0c56 00003e49: JUMP 00003e4a: JUMPDEST 00003e4b: PUSH1 0x00 00003e4d: JUMPDEST 00003e4e: DUP4 00003e4f: DUP4 00003e50: DUP2 00003e51: MLOAD 00003e52: DUP2 00003e53: LT 00003e54: PUSH2 0x3e5f 00003e57: JUMPI 00003e58: PUSH2 0x3e5f 00003e5b: PUSH2 0x56c3 00003e5e: JUMP 00003e5f: JUMPDEST 00003e60: PUSH1 0x20 00003e62: MUL 00003e63: PUSH1 0x20 00003e65: ADD 00003e66: ADD 00003e67: MLOAD 00003e68: PUSH1 0x20 00003e6a: ADD 00003e6b: MLOAD 00003e6c: MLOAD 00003e6d: DUP2 00003e6e: LT 00003e6f: ISZERO 00003e70: PUSH2 0x3f47 00003e73: JUMPI 00003e74: PUSH2 0x3ec5 00003e77: DUP5 00003e78: DUP5 00003e79: DUP2 00003e7a: MLOAD 00003e7b: DUP2 00003e7c: LT 00003e7d: PUSH2 0x3e88 00003e80: JUMPI 00003e81: PUSH2 0x3e88 00003e84: PUSH2 0x56c3 00003e87: JUMP 00003e88: JUMPDEST 00003e89: PUSH1 0x20 00003e8b: MUL 00003e8c: PUSH1 0x20 00003e8e: ADD 00003e8f: ADD 00003e90: MLOAD 00003e91: PUSH1 0x20 00003e93: ADD 00003e94: MLOAD 00003e95: DUP3 00003e96: DUP2 00003e97: MLOAD 00003e98: DUP2 00003e99: LT 00003e9a: PUSH2 0x3ea5 00003e9d: JUMPI 00003e9e: PUSH2 0x3ea5 00003ea1: PUSH2 0x56c3 00003ea4: JUMP 00003ea5: JUMPDEST 00003ea6: PUSH1 0x20 00003ea8: MUL 00003ea9: PUSH1 0x20 00003eab: ADD 00003eac: ADD 00003ead: MLOAD 00003eae: DUP4 00003eaf: PUSH1 0x01 00003eb1: PUSH1 0x01 00003eb3: PUSH1 0xa0 00003eb5: SHL 00003eb6: SUB 00003eb7: AND 00003eb8: PUSH2 0x41d8 00003ebb: SWAP1 00003ebc: SWAP2 00003ebd: SWAP1 00003ebe: PUSH4 0xffffffff 00003ec3: AND 00003ec4: JUMP 00003ec5: JUMPDEST 00003ec6: POP 00003ec7: PUSH32 0x7445c6598e1b553f076d507692eab3dceef0d608757141b53e9e56aa8bbaf483 00003ee8: DUP3 00003ee9: DUP6 00003eea: DUP6 00003eeb: DUP2 00003eec: MLOAD 00003eed: DUP2 00003eee: LT 00003eef: PUSH2 0x3efa 00003ef2: JUMPI 00003ef3: PUSH2 0x3efa 00003ef6: PUSH2 0x56c3 00003ef9: JUMP 00003efa: JUMPDEST 00003efb: PUSH1 0x20 00003efd: MUL 00003efe: PUSH1 0x20 00003f00: ADD 00003f01: ADD 00003f02: MLOAD 00003f03: PUSH1 0x20 00003f05: ADD 00003f06: MLOAD 00003f07: DUP4 00003f08: DUP2 00003f09: MLOAD 00003f0a: DUP2 00003f0b: LT 00003f0c: PUSH2 0x3f17 00003f0f: JUMPI 00003f10: PUSH2 0x3f17 00003f13: PUSH2 0x56c3 00003f16: JUMP 00003f17: JUMPDEST 00003f18: PUSH1 0x20 00003f1a: MUL 00003f1b: PUSH1 0x20 00003f1d: ADD 00003f1e: ADD 00003f1f: MLOAD 00003f20: PUSH1 0x40 00003f22: MLOAD 00003f23: PUSH2 0x3f2d 00003f26: SWAP3 00003f27: SWAP2 00003f28: SWAP1 00003f29: PUSH2 0x5e02 00003f2c: JUMP 00003f2d: JUMPDEST 00003f2e: PUSH1 0x40 00003f30: MLOAD 00003f31: DUP1 00003f32: SWAP2 00003f33: SUB 00003f34: SWAP1 00003f35: LOG1 00003f36: DUP1 00003f37: PUSH2 0x3f3f 00003f3a: DUP2 00003f3b: PUSH2 0x583d 00003f3e: JUMP 00003f3f: JUMPDEST 00003f40: SWAP2 00003f41: POP 00003f42: POP 00003f43: PUSH2 0x3e4d 00003f46: JUMP 00003f47: JUMPDEST 00003f48: POP 00003f49: POP 00003f4a: DUP1 00003f4b: PUSH2 0x3f53 00003f4e: SWAP1 00003f4f: PUSH2 0x583d 00003f52: JUMP 00003f53: JUMPDEST 00003f54: SWAP1 00003f55: POP 00003f56: PUSH2 0x3dd8 00003f59: JUMP 00003f5a: JUMPDEST 00003f5b: POP 00003f5c: POP 00003f5d: JUMP 00003f5e: JUMPDEST 00003f5f: PUSH1 0x00 00003f61: PUSH2 0x0e85 00003f64: DUP5 00003f65: DUP4 00003f66: DUP6 00003f67: PUSH2 0x42d6 00003f6a: JUMP 00003f6b: JUMPDEST 00003f6c: PUSH2 0x3f76 00003f6f: DUP4 00003f70: DUP4 00003f71: DUP4 00003f72: PUSH2 0x46cf 00003f75: JUMP 00003f76: JUMPDEST 00003f77: PUSH2 0x3fab 00003f7a: PUSH1 0x01 00003f7c: PUSH1 0x01 00003f7e: PUSH1 0xa0 00003f80: SHL 00003f81: SUB 00003f82: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00003fa3: AND 00003fa4: CALLER 00003fa5: ADDRESS 00003fa6: DUP7 00003fa7: PUSH2 0x46df 00003faa: JUMP 00003fab: JUMPDEST 00003fac: PUSH2 0x3fb5 00003faf: DUP2 00003fb0: DUP4 00003fb1: PUSH2 0x4769 00003fb4: JUMP 00003fb5: JUMPDEST 00003fb6: PUSH1 0x40 00003fb8: DUP1 00003fb9: MLOAD 00003fba: DUP5 00003fbb: DUP2 00003fbc: MSTORE 00003fbd: PUSH1 0x20 00003fbf: DUP2 00003fc0: ADD 00003fc1: DUP5 00003fc2: SWAP1 00003fc3: MSTORE 00003fc4: PUSH1 0x01 00003fc6: PUSH1 0x01 00003fc8: PUSH1 0xa0 00003fca: SHL 00003fcb: SUB 00003fcc: DUP4 00003fcd: AND 00003fce: SWAP2 00003fcf: CALLER 00003fd0: SWAP2 00003fd1: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00003ff2: SWAP2 00003ff3: ADD 00003ff4: PUSH1 0x40 00003ff6: MLOAD 00003ff7: DUP1 00003ff8: SWAP2 00003ff9: SUB 00003ffa: SWAP1 00003ffb: LOG3 00003ffc: PUSH2 0x281c 00003fff: DUP4 00004000: DUP4 00004001: DUP4 00004002: PUSH2 0x47c3 00004005: JUMP 00004006: JUMPDEST 00004007: PUSH1 0x00 00004009: PUSH2 0x0e85 0000400c: DUP5 0000400d: DUP5 0000400e: DUP5 0000400f: PUSH2 0x3da7 00004012: JUMP 00004013: JUMPDEST 00004014: DUP3 00004015: SLOAD 00004016: DUP1 00004017: ISZERO 00004018: PUSH2 0x4197 0000401b: JUMPI 0000401c: DUP4 0000401d: DUP1 0000401e: PUSH2 0x4028 00004021: PUSH1 0x01 00004023: DUP5 00004024: PUSH2 0x56b0 00004027: JUMP 00004028: JUMPDEST 00004029: DUP2 0000402a: SLOAD 0000402b: DUP2 0000402c: LT 0000402d: PUSH2 0x4038 00004030: JUMPI 00004031: PUSH2 0x4038 00004034: PUSH2 0x56c3 00004037: JUMP 00004038: JUMPDEST 00004039: PUSH1 0x00 0000403b: SWAP2 0000403c: DUP3 0000403d: MSTORE 0000403e: PUSH1 0x20 00004040: DUP1 00004041: DUP4 00004042: KECCAK256 00004043: PUSH1 0x08 00004045: DUP1 00004046: DUP5 00004047: DIV 00004048: SWAP1 00004049: SWAP2 0000404a: ADD 0000404b: SLOAD 0000404c: DUP6 0000404d: SLOAD 0000404e: PUSH1 0x01 00004050: DUP1 00004051: DUP3 00004052: ADD 00004053: DUP9 00004054: SSTORE 00004055: SWAP7 00004056: DUP7 00004057: MSTORE 00004058: SWAP3 00004059: DUP6 0000405a: KECCAK256 0000405b: SWAP2 0000405c: DUP4 0000405d: DIV 0000405e: SWAP1 0000405f: SWAP2 00004060: ADD 00004061: DUP1 00004062: SLOAD 00004063: PUSH4 0xffffffff 00004068: PUSH1 0x04 0000406a: PUSH1 0x07 0000406c: SWAP6 0000406d: DUP7 0000406e: AND 0000406f: DUP2 00004070: MUL 00004071: PUSH2 0x0100 00004074: SWAP1 00004075: DUP2 00004076: EXP 00004077: DUP4 00004078: DUP2 00004079: MUL 0000407a: NOT 0000407b: SWAP1 0000407c: SWAP5 0000407d: AND 0000407e: SWAP7 0000407f: SWAP1 00004080: SWAP8 00004081: AND 00004082: MUL 00004083: SWAP1 00004084: SWAP6 00004085: EXP 00004086: SWAP1 00004087: SWAP3 00004088: DIV 00004089: SWAP1 0000408a: SWAP4 0000408b: AND 0000408c: MUL 0000408d: OR 0000408e: SWAP1 0000408f: SSTORE 00004090: SWAP1 00004091: PUSH2 0x409a 00004094: SWAP1 00004095: DUP4 00004096: PUSH2 0x56b0 00004099: JUMP 0000409a: JUMPDEST 0000409b: SWAP1 0000409c: POP 0000409d: JUMPDEST 0000409e: DUP4 0000409f: PUSH4 0xffffffff 000040a4: AND 000040a5: DUP2 000040a6: GT 000040a7: ISZERO 000040a8: PUSH2 0x4145 000040ab: JUMPI 000040ac: DUP5 000040ad: PUSH2 0x40b7 000040b0: PUSH1 0x01 000040b2: DUP4 000040b3: PUSH2 0x56b0 000040b6: JUMP 000040b7: JUMPDEST 000040b8: DUP2 000040b9: SLOAD 000040ba: DUP2 000040bb: LT 000040bc: PUSH2 0x40c7 000040bf: JUMPI 000040c0: PUSH2 0x40c7 000040c3: PUSH2 0x56c3 000040c6: JUMP 000040c7: JUMPDEST 000040c8: SWAP1 000040c9: PUSH1 0x00 000040cb: MSTORE 000040cc: PUSH1 0x20 000040ce: PUSH1 0x00 000040d0: KECCAK256 000040d1: SWAP1 000040d2: PUSH1 0x08 000040d4: SWAP2 000040d5: DUP3 000040d6: DUP3 000040d7: DIV 000040d8: ADD 000040d9: SWAP2 000040da: SWAP1 000040db: MOD 000040dc: PUSH1 0x04 000040de: MUL 000040df: SWAP1 000040e0: SLOAD 000040e1: SWAP1 000040e2: PUSH2 0x0100 000040e5: EXP 000040e6: SWAP1 000040e7: DIV 000040e8: PUSH4 0xffffffff 000040ed: AND 000040ee: DUP6 000040ef: DUP3 000040f0: DUP2 000040f1: SLOAD 000040f2: DUP2 000040f3: LT 000040f4: PUSH2 0x40ff 000040f7: JUMPI 000040f8: PUSH2 0x40ff 000040fb: PUSH2 0x56c3 000040fe: JUMP 000040ff: JUMPDEST 00004100: SWAP1 00004101: PUSH1 0x00 00004103: MSTORE 00004104: PUSH1 0x20 00004106: PUSH1 0x00 00004108: KECCAK256 00004109: SWAP1 0000410a: PUSH1 0x08 0000410c: SWAP2 0000410d: DUP3 0000410e: DUP3 0000410f: DIV 00004110: ADD 00004111: SWAP2 00004112: SWAP1 00004113: MOD 00004114: PUSH1 0x04 00004116: MUL 00004117: PUSH2 0x0100 0000411a: EXP 0000411b: DUP2 0000411c: SLOAD 0000411d: DUP2 0000411e: PUSH4 0xffffffff 00004123: MUL 00004124: NOT 00004125: AND 00004126: SWAP1 00004127: DUP4 00004128: PUSH4 0xffffffff 0000412d: AND 0000412e: MUL 0000412f: OR 00004130: SWAP1 00004131: SSTORE 00004132: POP 00004133: DUP1 00004134: DUP1 00004135: PUSH2 0x413d 00004138: SWAP1 00004139: PUSH2 0x5e26 0000413c: JUMP 0000413d: JUMPDEST 0000413e: SWAP2 0000413f: POP 00004140: POP 00004141: PUSH2 0x409d 00004144: JUMP 00004145: JUMPDEST 00004146: POP 00004147: DUP2 00004148: DUP5 00004149: DUP5 0000414a: PUSH4 0xffffffff 0000414f: AND 00004150: DUP2 00004151: SLOAD 00004152: DUP2 00004153: LT 00004154: PUSH2 0x415f 00004157: JUMPI 00004158: PUSH2 0x415f 0000415b: PUSH2 0x56c3 0000415e: JUMP 0000415f: JUMPDEST 00004160: SWAP1 00004161: PUSH1 0x00 00004163: MSTORE 00004164: PUSH1 0x20 00004166: PUSH1 0x00 00004168: KECCAK256 00004169: SWAP1 0000416a: PUSH1 0x08 0000416c: SWAP2 0000416d: DUP3 0000416e: DUP3 0000416f: DIV 00004170: ADD 00004171: SWAP2 00004172: SWAP1 00004173: MOD 00004174: PUSH1 0x04 00004176: MUL 00004177: PUSH2 0x0100 0000417a: EXP 0000417b: DUP2 0000417c: SLOAD 0000417d: DUP2 0000417e: PUSH4 0xffffffff 00004183: MUL 00004184: NOT 00004185: AND 00004186: SWAP1 00004187: DUP4 00004188: PUSH4 0xffffffff 0000418d: AND 0000418e: MUL 0000418f: OR 00004190: SWAP1 00004191: SSTORE 00004192: POP 00004193: PUSH2 0x1171 00004196: JUMP 00004197: JUMPDEST 00004198: POP 00004199: DUP3 0000419a: SLOAD 0000419b: PUSH1 0x01 0000419d: DUP2 0000419e: ADD 0000419f: DUP5 000041a0: SSTORE 000041a1: PUSH1 0x00 000041a3: SWAP4 000041a4: DUP5 000041a5: MSTORE 000041a6: PUSH1 0x20 000041a8: SWAP1 000041a9: SWAP4 000041aa: KECCAK256 000041ab: PUSH1 0x08 000041ad: DUP5 000041ae: DIV 000041af: ADD 000041b0: DUP1 000041b1: SLOAD 000041b2: PUSH1 0x07 000041b4: SWAP1 000041b5: SWAP5 000041b6: AND 000041b7: PUSH1 0x04 000041b9: MUL 000041ba: PUSH2 0x0100 000041bd: EXP 000041be: PUSH4 0xffffffff 000041c3: DUP2 000041c4: DUP2 000041c5: MUL 000041c6: NOT 000041c7: SWAP1 000041c8: SWAP6 000041c9: AND 000041ca: SWAP3 000041cb: SWAP1 000041cc: SWAP5 000041cd: AND 000041ce: SWAP4 000041cf: SWAP1 000041d0: SWAP4 000041d1: MUL 000041d2: OR 000041d3: SWAP1 000041d4: SWAP2 000041d5: SSTORE 000041d6: POP 000041d7: JUMP 000041d8: JUMPDEST 000041d9: PUSH1 0x60 000041db: PUSH2 0x3a32 000041de: DUP4 000041df: DUP4 000041e0: PUSH1 0x40 000041e2: MLOAD 000041e3: DUP1 000041e4: PUSH1 0x60 000041e6: ADD 000041e7: PUSH1 0x40 000041e9: MSTORE 000041ea: DUP1 000041eb: PUSH1 0x27 000041ed: DUP2 000041ee: MSTORE 000041ef: PUSH1 0x20 000041f1: ADD 000041f2: PUSH2 0x5f3e 000041f5: PUSH1 0x27 000041f7: SWAP2 000041f8: CODECOPY 000041f9: PUSH2 0x47dd 000041fc: JUMP 000041fd: JUMPDEST 000041fe: PUSH2 0x4209 00004201: DUP5 00004202: DUP5 00004203: DUP5 00004204: DUP5 00004205: PUSH2 0x484b 00004208: JUMP 00004209: JUMPDEST 0000420a: CALLER 0000420b: PUSH1 0x01 0000420d: PUSH1 0x01 0000420f: PUSH1 0xa0 00004211: SHL 00004212: SUB 00004213: DUP3 00004214: AND 00004215: EQ 00004216: PUSH2 0x4277 00004219: JUMPI 0000421a: PUSH1 0x01 0000421c: PUSH1 0x01 0000421e: PUSH1 0xa0 00004220: SHL 00004221: SUB 00004222: DUP2 00004223: AND 00004224: PUSH1 0x00 00004226: SWAP1 00004227: DUP2 00004228: MSTORE 00004229: PUSH1 0x04 0000422b: PUSH1 0x20 0000422d: SWAP1 0000422e: DUP2 0000422f: MSTORE 00004230: PUSH1 0x40 00004232: DUP1 00004233: DUP4 00004234: KECCAK256 00004235: CALLER 00004236: DUP5 00004237: MSTORE 00004238: SWAP1 00004239: SWAP2 0000423a: MSTORE 0000423b: SWAP1 0000423c: KECCAK256 0000423d: SLOAD 0000423e: PUSH1 0x00 00004240: NOT 00004241: DUP2 00004242: EQ 00004243: PUSH2 0x4275 00004246: JUMPI 00004247: PUSH2 0x4250 0000424a: DUP5 0000424b: DUP3 0000424c: PUSH2 0x56b0 0000424f: JUMP 00004250: JUMPDEST 00004251: PUSH1 0x01 00004253: PUSH1 0x01 00004255: PUSH1 0xa0 00004257: SHL 00004258: SUB 00004259: DUP4 0000425a: AND 0000425b: PUSH1 0x00 0000425d: SWAP1 0000425e: DUP2 0000425f: MSTORE 00004260: PUSH1 0x04 00004262: PUSH1 0x20 00004264: SWAP1 00004265: DUP2 00004266: MSTORE 00004267: PUSH1 0x40 00004269: DUP1 0000426a: DUP4 0000426b: KECCAK256 0000426c: CALLER 0000426d: DUP5 0000426e: MSTORE 0000426f: SWAP1 00004270: SWAP2 00004271: MSTORE 00004272: SWAP1 00004273: KECCAK256 00004274: SSTORE 00004275: JUMPDEST 00004276: POP 00004277: JUMPDEST 00004278: PUSH2 0x4281 0000427b: DUP2 0000427c: DUP5 0000427d: PUSH2 0x4853 00004280: JUMP 00004281: JUMPDEST 00004282: PUSH1 0x40 00004284: DUP1 00004285: MLOAD 00004286: DUP6 00004287: DUP2 00004288: MSTORE 00004289: PUSH1 0x20 0000428b: DUP2 0000428c: ADD 0000428d: DUP6 0000428e: SWAP1 0000428f: MSTORE 00004290: PUSH1 0x01 00004292: PUSH1 0x01 00004294: PUSH1 0xa0 00004296: SHL 00004297: SUB 00004298: DUP1 00004299: DUP5 0000429a: AND 0000429b: SWAP3 0000429c: SWAP1 0000429d: DUP6 0000429e: AND 0000429f: SWAP2 000042a0: CALLER 000042a1: SWAP2 000042a2: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db 000042c3: SWAP2 000042c4: ADD 000042c5: PUSH1 0x40 000042c7: MLOAD 000042c8: DUP1 000042c9: SWAP2 000042ca: SUB 000042cb: SWAP1 000042cc: LOG4 000042cd: PUSH2 0x1171 000042d0: DUP5 000042d1: DUP4 000042d2: PUSH2 0x48b5 000042d5: JUMP 000042d6: JUMPDEST 000042d7: DUP3 000042d8: DUP3 000042d9: MUL 000042da: DUP2 000042db: ISZERO 000042dc: ISZERO 000042dd: DUP5 000042de: ISZERO 000042df: DUP6 000042e0: DUP4 000042e1: DIV 000042e2: DUP6 000042e3: EQ 000042e4: OR 000042e5: AND 000042e6: PUSH2 0x42ee 000042e9: JUMPI 000042ea: PUSH1 0x00 000042ec: DUP1 000042ed: REVERT 000042ee: JUMPDEST 000042ef: DIV 000042f0: SWAP3 000042f1: SWAP2 000042f2: POP 000042f3: POP 000042f4: JUMP 000042f5: JUMPDEST 000042f6: DUP2 000042f7: PUSH1 0x00 000042f9: SUB 000042fa: PUSH2 0x4316 000042fd: JUMPI 000042fe: PUSH1 0x40 00004300: MLOAD 00004301: PUSH4 0x2db38d05 00004306: PUSH1 0xe0 00004308: SHL 00004309: DUP2 0000430a: MSTORE 0000430b: PUSH1 0x04 0000430d: ADD 0000430e: PUSH1 0x40 00004310: MLOAD 00004311: DUP1 00004312: SWAP2 00004313: SUB 00004314: SWAP1 00004315: REVERT 00004316: JUMPDEST 00004317: DUP1 00004318: PUSH1 0x01 0000431a: PUSH1 0x01 0000431c: PUSH1 0xa0 0000431e: SHL 0000431f: SUB 00004320: AND 00004321: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476 00004342: PUSH1 0x01 00004344: PUSH1 0x01 00004346: PUSH1 0xa0 00004348: SHL 00004349: SUB 0000434a: AND 0000434b: PUSH4 0xb93f9b0a 00004350: DUP5 00004351: PUSH1 0x40 00004353: MLOAD 00004354: DUP3 00004355: PUSH4 0xffffffff 0000435a: AND 0000435b: PUSH1 0xe0 0000435d: SHL 0000435e: DUP2 0000435f: MSTORE 00004360: PUSH1 0x04 00004362: ADD 00004363: PUSH2 0x436e 00004366: SWAP2 00004367: DUP2 00004368: MSTORE 00004369: PUSH1 0x20 0000436b: ADD 0000436c: SWAP1 0000436d: JUMP 0000436e: JUMPDEST 0000436f: PUSH1 0x20 00004371: PUSH1 0x40 00004373: MLOAD 00004374: DUP1 00004375: DUP4 00004376: SUB 00004377: DUP2 00004378: DUP7 00004379: GAS 0000437a: STATICCALL 0000437b: ISZERO 0000437c: DUP1 0000437d: ISZERO 0000437e: PUSH2 0x438b 00004381: JUMPI 00004382: RETURNDATASIZE 00004383: PUSH1 0x00 00004385: DUP1 00004386: RETURNDATACOPY 00004387: RETURNDATASIZE 00004388: PUSH1 0x00 0000438a: REVERT 0000438b: JUMPDEST 0000438c: POP 0000438d: POP 0000438e: POP 0000438f: POP 00004390: PUSH1 0x40 00004392: MLOAD 00004393: RETURNDATASIZE 00004394: PUSH1 0x1f 00004396: NOT 00004397: PUSH1 0x1f 00004399: DUP3 0000439a: ADD 0000439b: AND 0000439c: DUP3 0000439d: ADD 0000439e: DUP1 0000439f: PUSH1 0x40 000043a1: MSTORE 000043a2: POP 000043a3: DUP2 000043a4: ADD 000043a5: SWAP1 000043a6: PUSH2 0x43af 000043a9: SWAP2 000043aa: SWAP1 000043ab: PUSH2 0x5aff 000043ae: JUMP 000043af: JUMPDEST 000043b0: PUSH1 0x01 000043b2: PUSH1 0x01 000043b4: PUSH1 0xa0 000043b6: SHL 000043b7: SUB 000043b8: AND 000043b9: EQ 000043ba: PUSH2 0x3f5a 000043bd: JUMPI 000043be: PUSH1 0x40 000043c0: MLOAD 000043c1: PUSH4 0x4ee204d7 000043c6: PUSH1 0xe0 000043c8: SHL 000043c9: DUP2 000043ca: MSTORE 000043cb: PUSH1 0x04 000043cd: ADD 000043ce: PUSH1 0x40 000043d0: MLOAD 000043d1: DUP1 000043d2: SWAP2 000043d3: SUB 000043d4: SWAP1 000043d5: REVERT 000043d6: JUMPDEST 000043d7: PUSH1 0x00 000043d9: PUSH2 0x43e0 000043dc: PUSH2 0x342e 000043df: JUMP 000043e0: JUMPDEST 000043e1: PUSH1 0x00 000043e3: DUP1 000043e4: PUSH2 0x43ed 000043e7: PUSH1 0x00 000043e9: PUSH2 0x3a39 000043ec: JUMP 000043ed: JUMPDEST 000043ee: PUSH1 0x01 000043f0: PUSH1 0x01 000043f2: PUSH1 0xa0 000043f4: SHL 000043f5: SUB 000043f6: DUP8 000043f7: AND 000043f8: PUSH1 0x00 000043fa: SWAP1 000043fb: DUP2 000043fc: MSTORE 000043fd: PUSH1 0x03 000043ff: PUSH1 0x20 00004401: MSTORE 00004402: PUSH1 0x40 00004404: DUP2 00004405: KECCAK256 00004406: SLOAD 00004407: SWAP3 00004408: SWAP5 00004409: POP 0000440a: SWAP1 0000440b: SWAP3 0000440c: POP 0000440d: SWAP1 0000440e: PUSH2 0x4418 00004411: SWAP1 00004412: DUP5 00004413: DUP5 00004414: PUSH2 0x3b53 00004417: JUMP 00004418: JUMPDEST 00004419: SWAP1 0000441a: POP 0000441b: PUSH1 0x00 0000441d: PUSH2 0x4426 00004420: PUSH1 0x01 00004422: PUSH2 0x34e7 00004425: JUMP 00004426: JUMPDEST 00004427: SWAP1 00004428: POP 00004429: DUP1 0000442a: DUP3 0000442b: GT 0000442c: ISZERO 0000442d: PUSH2 0x4436 00004430: JUMPI 00004431: DUP1 00004432: PUSH2 0x4438 00004435: JUMP 00004436: JUMPDEST 00004437: DUP2 00004438: JUMPDEST 00004439: SWAP5 0000443a: POP 0000443b: DUP6 0000443c: ISZERO 0000443d: PUSH2 0x444e 00004440: JUMPI 00004441: PUSH2 0x444b 00004444: DUP6 00004445: DUP6 00004446: DUP6 00004447: PUSH2 0x3f5e 0000444a: JUMP 0000444b: JUMPDEST 0000444c: SWAP5 0000444d: POP 0000444e: JUMPDEST 0000444f: POP 00004450: POP 00004451: POP 00004452: POP 00004453: SWAP3 00004454: SWAP2 00004455: POP 00004456: POP 00004457: JUMP 00004458: JUMPDEST 00004459: PUSH1 0x00 0000445b: PUSH1 0x40 0000445d: MLOAD 0000445e: PUSH4 0xa9059cbb 00004463: PUSH1 0xe0 00004465: SHL 00004466: DUP2 00004467: MSTORE 00004468: DUP4 00004469: PUSH1 0x04 0000446b: DUP3 0000446c: ADD 0000446d: MSTORE 0000446e: DUP3 0000446f: PUSH1 0x24 00004471: DUP3 00004472: ADD 00004473: MSTORE 00004474: PUSH1 0x20 00004476: PUSH1 0x00 00004478: PUSH1 0x44 0000447a: DUP4 0000447b: PUSH1 0x00 0000447d: DUP10 0000447e: GAS 0000447f: CALL 00004480: RETURNDATASIZE 00004481: ISZERO 00004482: PUSH1 0x1f 00004484: RETURNDATASIZE 00004485: GT 00004486: PUSH1 0x01 00004488: PUSH1 0x00 0000448a: MLOAD 0000448b: EQ 0000448c: AND 0000448d: OR 0000448e: AND 0000448f: SWAP2 00004490: POP 00004491: POP 00004492: DUP1 00004493: PUSH2 0x1171 00004496: JUMPI 00004497: PUSH1 0x40 00004499: MLOAD 0000449a: PUSH3 0x461bcd 0000449e: PUSH1 0xe5 000044a0: SHL 000044a1: DUP2 000044a2: MSTORE 000044a3: PUSH1 0x20 000044a5: PUSH1 0x04 000044a7: DUP3 000044a8: ADD 000044a9: MSTORE 000044aa: PUSH1 0x0f 000044ac: PUSH1 0x24 000044ae: DUP3 000044af: ADD 000044b0: MSTORE 000044b1: PUSH15 0x1514905394d1915497d19052531151 000044c1: PUSH1 0x8a 000044c3: SHL 000044c4: PUSH1 0x44 000044c6: DUP3 000044c7: ADD 000044c8: MSTORE 000044c9: PUSH1 0x64 000044cb: ADD 000044cc: PUSH2 0x0c56 000044cf: JUMP 000044d0: JUMPDEST 000044d1: PUSH4 0xffffffff 000044d6: DUP2 000044d7: AND 000044d8: PUSH1 0x00 000044da: SWAP1 000044db: DUP2 000044dc: MSTORE 000044dd: PUSH1 0x0c 000044df: PUSH1 0x20 000044e1: MSTORE 000044e2: PUSH1 0x40 000044e4: DUP2 000044e5: KECCAK256 000044e6: SLOAD 000044e7: PUSH1 0x01 000044e9: PUSH1 0xa0 000044eb: SHL 000044ec: SWAP1 000044ed: DIV 000044ee: PUSH1 0xff 000044f0: AND 000044f1: ISZERO 000044f2: PUSH2 0x44fd 000044f5: JUMPI 000044f6: POP 000044f7: PUSH1 0x00 000044f9: SWAP2 000044fa: SWAP1 000044fb: POP 000044fc: JUMP 000044fd: JUMPDEST 000044fe: PUSH4 0xffffffff 00004503: DUP3 00004504: AND 00004505: PUSH1 0x00 00004507: SWAP1 00004508: DUP2 00004509: MSTORE 0000450a: PUSH1 0x0c 0000450c: PUSH1 0x20 0000450e: MSTORE 0000450f: PUSH1 0x40 00004511: SWAP1 00004512: DUP2 00004513: SWAP1 00004514: KECCAK256 00004515: DUP1 00004516: SLOAD 00004517: SWAP2 00004518: MLOAD 00004519: PUSH4 0x7d2872e9 0000451e: PUSH1 0xe1 00004520: SHL 00004521: DUP2 00004522: MSTORE 00004523: PUSH1 0x01 00004525: PUSH1 0x01 00004527: PUSH1 0xa0 00004529: SHL 0000452a: SUB 0000452b: SWAP1 0000452c: SWAP3 0000452d: AND 0000452e: SWAP2 0000452f: PUSH4 0xfa50e5d2 00004534: SWAP2 00004535: PUSH2 0x4549 00004538: SWAP2 00004539: PUSH1 0x01 0000453b: DUP3 0000453c: ADD 0000453d: SWAP2 0000453e: PUSH1 0x02 00004540: ADD 00004541: SWAP1 00004542: PUSH1 0x04 00004544: ADD 00004545: PUSH2 0x5e3d 00004548: JUMP 00004549: JUMPDEST 0000454a: PUSH1 0x20 0000454c: PUSH1 0x40 0000454e: MLOAD 0000454f: DUP1 00004550: DUP4 00004551: SUB 00004552: DUP2 00004553: DUP7 00004554: GAS 00004555: STATICCALL 00004556: ISZERO 00004557: DUP1 00004558: ISZERO 00004559: PUSH2 0x4566 0000455c: JUMPI 0000455d: RETURNDATASIZE 0000455e: PUSH1 0x00 00004560: DUP1 00004561: RETURNDATACOPY 00004562: RETURNDATASIZE 00004563: PUSH1 0x00 00004565: REVERT 00004566: JUMPDEST 00004567: POP 00004568: POP 00004569: POP 0000456a: POP 0000456b: PUSH1 0x40 0000456d: MLOAD 0000456e: RETURNDATASIZE 0000456f: PUSH1 0x1f 00004571: NOT 00004572: PUSH1 0x1f 00004574: DUP3 00004575: ADD 00004576: AND 00004577: DUP3 00004578: ADD 00004579: DUP1 0000457a: PUSH1 0x40 0000457c: MSTORE 0000457d: POP 0000457e: DUP2 0000457f: ADD 00004580: SWAP1 00004581: PUSH2 0x0ef4 00004584: SWAP2 00004585: SWAP1 00004586: PUSH2 0x5b5a 00004589: JUMP 0000458a: JUMPDEST 0000458b: DUP2 0000458c: SLOAD 0000458d: PUSH4 0xffffffff 00004592: DUP3 00004593: AND 00004594: DUP2 00004595: GT 00004596: PUSH2 0x45d7 00004599: JUMPI 0000459a: PUSH1 0x40 0000459c: MLOAD 0000459d: PUSH3 0x461bcd 000045a1: PUSH1 0xe5 000045a3: SHL 000045a4: DUP2 000045a5: MSTORE 000045a6: PUSH1 0x20 000045a8: PUSH1 0x04 000045aa: DUP3 000045ab: ADD 000045ac: MSTORE 000045ad: PUSH1 0x13 000045af: PUSH1 0x24 000045b1: DUP3 000045b2: ADD 000045b3: MSTORE 000045b4: PUSH19 0x496e646578206f7574206f6620626f756e6473 000045c8: PUSH1 0x68 000045ca: SHL 000045cb: PUSH1 0x44 000045cd: DUP3 000045ce: ADD 000045cf: MSTORE 000045d0: PUSH1 0x64 000045d2: ADD 000045d3: PUSH2 0x0c56 000045d6: JUMP 000045d7: JUMPDEST 000045d8: PUSH4 0xffffffff 000045dd: DUP3 000045de: AND 000045df: JUMPDEST 000045e0: PUSH2 0x45ea 000045e3: PUSH1 0x01 000045e5: DUP4 000045e6: PUSH2 0x56b0 000045e9: JUMP 000045ea: JUMPDEST 000045eb: DUP2 000045ec: LT 000045ed: ISZERO 000045ee: PUSH2 0x468b 000045f1: JUMPI 000045f2: DUP4 000045f3: PUSH2 0x45fd 000045f6: DUP3 000045f7: PUSH1 0x01 000045f9: PUSH2 0x56d9 000045fc: JUMP 000045fd: JUMPDEST 000045fe: DUP2 000045ff: SLOAD 00004600: DUP2 00004601: LT 00004602: PUSH2 0x460d 00004605: JUMPI 00004606: PUSH2 0x460d 00004609: PUSH2 0x56c3 0000460c: JUMP 0000460d: JUMPDEST 0000460e: SWAP1 0000460f: PUSH1 0x00 00004611: MSTORE 00004612: PUSH1 0x20 00004614: PUSH1 0x00 00004616: KECCAK256 00004617: SWAP1 00004618: PUSH1 0x08 0000461a: SWAP2 0000461b: DUP3 0000461c: DUP3 0000461d: DIV 0000461e: ADD 0000461f: SWAP2 00004620: SWAP1 00004621: MOD 00004622: PUSH1 0x04 00004624: MUL 00004625: SWAP1 00004626: SLOAD 00004627: SWAP1 00004628: PUSH2 0x0100 0000462b: EXP 0000462c: SWAP1 0000462d: DIV 0000462e: PUSH4 0xffffffff 00004633: AND 00004634: DUP5 00004635: DUP3 00004636: DUP2 00004637: SLOAD 00004638: DUP2 00004639: LT 0000463a: PUSH2 0x4645 0000463d: JUMPI 0000463e: PUSH2 0x4645 00004641: PUSH2 0x56c3 00004644: JUMP 00004645: JUMPDEST 00004646: SWAP1 00004647: PUSH1 0x00 00004649: MSTORE 0000464a: PUSH1 0x20 0000464c: PUSH1 0x00 0000464e: KECCAK256 0000464f: SWAP1 00004650: PUSH1 0x08 00004652: SWAP2 00004653: DUP3 00004654: DUP3 00004655: DIV 00004656: ADD 00004657: SWAP2 00004658: SWAP1 00004659: MOD 0000465a: PUSH1 0x04 0000465c: MUL 0000465d: PUSH2 0x0100 00004660: EXP 00004661: DUP2 00004662: SLOAD 00004663: DUP2 00004664: PUSH4 0xffffffff 00004669: MUL 0000466a: NOT 0000466b: AND 0000466c: SWAP1 0000466d: DUP4 0000466e: PUSH4 0xffffffff 00004673: AND 00004674: MUL 00004675: OR 00004676: SWAP1 00004677: SSTORE 00004678: POP 00004679: DUP1 0000467a: DUP1 0000467b: PUSH2 0x4683 0000467e: SWAP1 0000467f: PUSH2 0x583d 00004682: JUMP 00004683: JUMPDEST 00004684: SWAP2 00004685: POP 00004686: POP 00004687: PUSH2 0x45df 0000468a: JUMP 0000468b: JUMPDEST 0000468c: POP 0000468d: DUP3 0000468e: DUP1 0000468f: SLOAD 00004690: DUP1 00004691: PUSH2 0x469c 00004694: JUMPI 00004695: PUSH2 0x469c 00004698: PUSH2 0x5e6b 0000469b: JUMP 0000469c: JUMPDEST 0000469d: PUSH1 0x00 0000469f: DUP3 000046a0: DUP2 000046a1: MSTORE 000046a2: PUSH1 0x20 000046a4: SWAP1 000046a5: KECCAK256 000046a6: PUSH1 0x08 000046a8: PUSH1 0x00 000046aa: NOT 000046ab: SWAP1 000046ac: SWAP3 000046ad: ADD 000046ae: SWAP2 000046af: DUP3 000046b0: DIV 000046b1: ADD 000046b2: DUP1 000046b3: SLOAD 000046b4: PUSH4 0xffffffff 000046b9: PUSH1 0x04 000046bb: PUSH1 0x07 000046bd: DUP6 000046be: AND 000046bf: MUL 000046c0: PUSH2 0x0100 000046c3: EXP 000046c4: MUL 000046c5: NOT 000046c6: AND 000046c7: SWAP1 000046c8: SSTORE 000046c9: SWAP1 000046ca: SSTORE 000046cb: POP 000046cc: POP 000046cd: POP 000046ce: JUMP 000046cf: JUMPDEST 000046d0: PUSH2 0x46d7 000046d3: PUSH2 0x3b6d 000046d6: JUMP 000046d7: JUMPDEST 000046d8: PUSH2 0x281c 000046db: PUSH2 0x342e 000046de: JUMP 000046df: JUMPDEST 000046e0: PUSH1 0x00 000046e2: PUSH1 0x40 000046e4: MLOAD 000046e5: PUSH4 0x23b872dd 000046ea: PUSH1 0xe0 000046ec: SHL 000046ed: DUP2 000046ee: MSTORE 000046ef: DUP5 000046f0: PUSH1 0x04 000046f2: DUP3 000046f3: ADD 000046f4: MSTORE 000046f5: DUP4 000046f6: PUSH1 0x24 000046f8: DUP3 000046f9: ADD 000046fa: MSTORE 000046fb: DUP3 000046fc: PUSH1 0x44 000046fe: DUP3 000046ff: ADD 00004700: MSTORE 00004701: PUSH1 0x20 00004703: PUSH1 0x00 00004705: PUSH1 0x64 00004707: DUP4 00004708: PUSH1 0x00 0000470a: DUP11 0000470b: GAS 0000470c: CALL 0000470d: RETURNDATASIZE 0000470e: ISZERO 0000470f: PUSH1 0x1f 00004711: RETURNDATASIZE 00004712: GT 00004713: PUSH1 0x01 00004715: PUSH1 0x00 00004717: MLOAD 00004718: EQ 00004719: AND 0000471a: OR 0000471b: AND 0000471c: SWAP2 0000471d: POP 0000471e: POP 0000471f: DUP1 00004720: PUSH2 0x4762 00004723: JUMPI 00004724: PUSH1 0x40 00004726: MLOAD 00004727: PUSH3 0x461bcd 0000472b: PUSH1 0xe5 0000472d: SHL 0000472e: DUP2 0000472f: MSTORE 00004730: PUSH1 0x20 00004732: PUSH1 0x04 00004734: DUP3 00004735: ADD 00004736: MSTORE 00004737: PUSH1 0x14 00004739: PUSH1 0x24 0000473b: DUP3 0000473c: ADD 0000473d: MSTORE 0000473e: PUSH20 0x1514905394d1915497d19493d357d19052531151 00004753: PUSH1 0x62 00004755: SHL 00004756: PUSH1 0x44 00004758: DUP3 00004759: ADD 0000475a: MSTORE 0000475b: PUSH1 0x64 0000475d: ADD 0000475e: PUSH2 0x0c56 00004761: JUMP 00004762: JUMPDEST 00004763: POP 00004764: POP 00004765: POP 00004766: POP 00004767: POP 00004768: JUMP 00004769: JUMPDEST 0000476a: DUP1 0000476b: PUSH1 0x02 0000476d: PUSH1 0x00 0000476f: DUP3 00004770: DUP3 00004771: SLOAD 00004772: PUSH2 0x477b 00004775: SWAP2 00004776: SWAP1 00004777: PUSH2 0x56d9 0000477a: JUMP 0000477b: JUMPDEST 0000477c: SWAP1 0000477d: SWAP2 0000477e: SSTORE 0000477f: POP 00004780: POP 00004781: PUSH1 0x01 00004783: PUSH1 0x01 00004785: PUSH1 0xa0 00004787: SHL 00004788: SUB 00004789: DUP3 0000478a: AND 0000478b: PUSH1 0x00 0000478d: DUP2 0000478e: DUP2 0000478f: MSTORE 00004790: PUSH1 0x03 00004792: PUSH1 0x20 00004794: SWAP1 00004795: DUP2 00004796: MSTORE 00004797: PUSH1 0x40 00004799: DUP1 0000479a: DUP4 0000479b: KECCAK256 0000479c: DUP1 0000479d: SLOAD 0000479e: DUP7 0000479f: ADD 000047a0: SWAP1 000047a1: SSTORE 000047a2: MLOAD 000047a3: DUP5 000047a4: DUP2 000047a5: MSTORE 000047a6: PUSH1 0x00 000047a8: DUP1 000047a9: MLOAD 000047aa: PUSH1 0x20 000047ac: PUSH2 0x5f65 000047af: DUP4 000047b0: CODECOPY 000047b1: DUP2 000047b2: MLOAD 000047b3: SWAP2 000047b4: MSTORE 000047b5: SWAP2 000047b6: ADD 000047b7: JUMPDEST 000047b8: PUSH1 0x40 000047ba: MLOAD 000047bb: DUP1 000047bc: SWAP2 000047bd: SUB 000047be: SWAP1 000047bf: LOG3 000047c0: POP 000047c1: POP 000047c2: JUMP 000047c3: JUMPDEST 000047c4: PUSH1 0x06 000047c6: SLOAD 000047c7: PUSH2 0x281c 000047ca: SWAP1 000047cb: PUSH1 0x01 000047cd: PUSH1 0xc0 000047cf: SHL 000047d0: SWAP1 000047d1: DIV 000047d2: PUSH4 0xffffffff 000047d7: AND 000047d8: DUP5 000047d9: PUSH2 0x4c1f 000047dc: JUMP 000047dd: JUMPDEST 000047de: PUSH1 0x60 000047e0: PUSH1 0x00 000047e2: DUP1 000047e3: DUP6 000047e4: PUSH1 0x01 000047e6: PUSH1 0x01 000047e8: PUSH1 0xa0 000047ea: SHL 000047eb: SUB 000047ec: AND 000047ed: DUP6 000047ee: PUSH1 0x40 000047f0: MLOAD 000047f1: PUSH2 0x47fa 000047f4: SWAP2 000047f5: SWAP1 000047f6: PUSH2 0x5e81 000047f9: JUMP 000047fa: JUMPDEST 000047fb: PUSH1 0x00 000047fd: PUSH1 0x40 000047ff: MLOAD 00004800: DUP1 00004801: DUP4 00004802: SUB 00004803: DUP2 00004804: DUP6 00004805: GAS 00004806: DELEGATECALL 00004807: SWAP2 00004808: POP 00004809: POP 0000480a: RETURNDATASIZE 0000480b: DUP1 0000480c: PUSH1 0x00 0000480e: DUP2 0000480f: EQ 00004810: PUSH2 0x4835 00004813: JUMPI 00004814: PUSH1 0x40 00004816: MLOAD 00004817: SWAP2 00004818: POP 00004819: PUSH1 0x1f 0000481b: NOT 0000481c: PUSH1 0x3f 0000481e: RETURNDATASIZE 0000481f: ADD 00004820: AND 00004821: DUP3 00004822: ADD 00004823: PUSH1 0x40 00004825: MSTORE 00004826: RETURNDATASIZE 00004827: DUP3 00004828: MSTORE 00004829: RETURNDATASIZE 0000482a: PUSH1 0x00 0000482c: PUSH1 0x20 0000482e: DUP5 0000482f: ADD 00004830: RETURNDATACOPY 00004831: PUSH2 0x483a 00004834: JUMP 00004835: JUMPDEST 00004836: PUSH1 0x60 00004838: SWAP2 00004839: POP 0000483a: JUMPDEST 0000483b: POP 0000483c: SWAP2 0000483d: POP 0000483e: SWAP2 0000483f: POP 00004840: PUSH2 0x16be 00004843: DUP7 00004844: DUP4 00004845: DUP4 00004846: DUP8 00004847: PUSH2 0x4cac 0000484a: JUMP 0000484b: JUMPDEST 0000484c: PUSH2 0x1171 0000484f: PUSH2 0x342e 00004852: JUMP 00004853: JUMPDEST 00004854: PUSH1 0x01 00004856: PUSH1 0x01 00004858: PUSH1 0xa0 0000485a: SHL 0000485b: SUB 0000485c: DUP3 0000485d: AND 0000485e: PUSH1 0x00 00004860: SWAP1 00004861: DUP2 00004862: MSTORE 00004863: PUSH1 0x03 00004865: PUSH1 0x20 00004867: MSTORE 00004868: PUSH1 0x40 0000486a: DUP2 0000486b: KECCAK256 0000486c: DUP1 0000486d: SLOAD 0000486e: DUP4 0000486f: SWAP3 00004870: SWAP1 00004871: PUSH2 0x487b 00004874: SWAP1 00004875: DUP5 00004876: SWAP1 00004877: PUSH2 0x56b0 0000487a: JUMP 0000487b: JUMPDEST 0000487c: SWAP1 0000487d: SWAP2 0000487e: SSTORE 0000487f: POP 00004880: POP 00004881: PUSH1 0x02 00004883: DUP1 00004884: SLOAD 00004885: DUP3 00004886: SWAP1 00004887: SUB 00004888: SWAP1 00004889: SSTORE 0000488a: PUSH1 0x40 0000488c: MLOAD 0000488d: DUP2 0000488e: DUP2 0000488f: MSTORE 00004890: PUSH1 0x00 00004892: SWAP1 00004893: PUSH1 0x01 00004895: PUSH1 0x01 00004897: PUSH1 0xa0 00004899: SHL 0000489a: SUB 0000489b: DUP5 0000489c: AND 0000489d: SWAP1 0000489e: PUSH1 0x00 000048a0: DUP1 000048a1: MLOAD 000048a2: PUSH1 0x20 000048a4: PUSH2 0x5f65 000048a7: DUP4 000048a8: CODECOPY 000048a9: DUP2 000048aa: MLOAD 000048ab: SWAP2 000048ac: MSTORE 000048ad: SWAP1 000048ae: PUSH1 0x20 000048b0: ADD 000048b1: PUSH2 0x47b7 000048b4: JUMP 000048b5: JUMPDEST 000048b6: PUSH2 0x48e0 000048b9: PUSH1 0x40 000048bb: MLOAD 000048bc: DUP1 000048bd: PUSH1 0x80 000048bf: ADD 000048c0: PUSH1 0x40 000048c2: MSTORE 000048c3: DUP1 000048c4: PUSH1 0x00 000048c6: DUP2 000048c7: MSTORE 000048c8: PUSH1 0x20 000048ca: ADD 000048cb: PUSH1 0x00 000048cd: DUP2 000048ce: MSTORE 000048cf: PUSH1 0x20 000048d1: ADD 000048d2: PUSH1 0x00 000048d4: DUP2 000048d5: MSTORE 000048d6: PUSH1 0x20 000048d8: ADD 000048d9: PUSH1 0x00 000048db: DUP2 000048dc: MSTORE 000048dd: POP 000048de: SWAP1 000048df: JUMP 000048e0: JUMPDEST 000048e1: PUSH1 0x08 000048e3: SLOAD 000048e4: PUSH1 0x40 000048e6: MLOAD 000048e7: PUSH4 0x02266147 000048ec: PUSH1 0xe0 000048ee: SHL 000048ef: DUP2 000048f0: MSTORE 000048f1: PUSH1 0x01 000048f3: PUSH1 0x01 000048f5: PUSH1 0xa0 000048f7: SHL 000048f8: SUB 000048f9: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 0000491a: DUP2 0000491b: AND 0000491c: PUSH1 0x04 0000491e: DUP4 0000491f: ADD 00004920: MSTORE 00004921: SWAP1 00004922: SWAP2 00004923: AND 00004924: SWAP1 00004925: PUSH4 0x02266147 0000492a: SWAP1 0000492b: PUSH1 0x24 0000492d: ADD 0000492e: PUSH1 0x20 00004930: PUSH1 0x40 00004932: MLOAD 00004933: DUP1 00004934: DUP4 00004935: SUB 00004936: DUP2 00004937: DUP7 00004938: GAS 00004939: STATICCALL 0000493a: ISZERO 0000493b: DUP1 0000493c: ISZERO 0000493d: PUSH2 0x494a 00004940: JUMPI 00004941: RETURNDATASIZE 00004942: PUSH1 0x00 00004944: DUP1 00004945: RETURNDATACOPY 00004946: RETURNDATASIZE 00004947: PUSH1 0x00 00004949: REVERT 0000494a: JUMPDEST 0000494b: POP 0000494c: POP 0000494d: POP 0000494e: POP 0000494f: PUSH1 0x40 00004951: MLOAD 00004952: RETURNDATASIZE 00004953: PUSH1 0x1f 00004955: NOT 00004956: PUSH1 0x1f 00004958: DUP3 00004959: ADD 0000495a: AND 0000495b: DUP3 0000495c: ADD 0000495d: DUP1 0000495e: PUSH1 0x40 00004960: MSTORE 00004961: POP 00004962: DUP2 00004963: ADD 00004964: SWAP1 00004965: PUSH2 0x496e 00004968: SWAP2 00004969: SWAP1 0000496a: PUSH2 0x5b5a 0000496d: JUMP 0000496e: JUMPDEST 0000496f: PUSH1 0x40 00004971: DUP3 00004972: ADD 00004973: MSTORE 00004974: PUSH2 0x499e 00004977: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000012 00004998: PUSH1 0x0a 0000499a: PUSH2 0x5d7d 0000499d: JUMP 0000499e: JUMPDEST 0000499f: PUSH1 0x60 000049a1: DUP3 000049a2: ADD 000049a3: MSTORE 000049a4: PUSH1 0x09 000049a6: SLOAD 000049a7: PUSH1 0x00 000049a9: JUMPDEST 000049aa: DUP2 000049ab: DUP2 000049ac: LT 000049ad: ISZERO 000049ae: PUSH2 0x4bfc 000049b1: JUMPI 000049b2: PUSH1 0x00 000049b4: PUSH1 0x09 000049b6: DUP3 000049b7: DUP2 000049b8: SLOAD 000049b9: DUP2 000049ba: LT 000049bb: PUSH2 0x49c6 000049be: JUMPI 000049bf: PUSH2 0x49c6 000049c2: PUSH2 0x56c3 000049c5: JUMP 000049c6: JUMPDEST 000049c7: PUSH1 0x00 000049c9: SWAP2 000049ca: DUP3 000049cb: MSTORE 000049cc: PUSH1 0x20 000049ce: DUP3 000049cf: KECCAK256 000049d0: PUSH1 0x08 000049d2: DUP3 000049d3: DIV 000049d4: ADD 000049d5: SLOAD 000049d6: PUSH1 0x07 000049d8: SWAP1 000049d9: SWAP2 000049da: AND 000049db: PUSH1 0x04 000049dd: MUL 000049de: PUSH2 0x0100 000049e1: EXP 000049e2: SWAP1 000049e3: DIV 000049e4: PUSH4 0xffffffff 000049e9: AND 000049ea: SWAP2 000049eb: POP 000049ec: PUSH2 0x49f4 000049ef: DUP3 000049f0: PUSH2 0x44d0 000049f3: JUMP 000049f4: JUMPDEST 000049f5: SWAP1 000049f6: POP 000049f7: DUP1 000049f8: PUSH1 0x00 000049fa: SUB 000049fb: PUSH2 0x4a05 000049fe: JUMPI 000049ff: POP 00004a00: POP 00004a01: PUSH2 0x4bec 00004a04: JUMP 00004a05: JUMPDEST 00004a06: PUSH1 0x00 00004a08: PUSH2 0x4a10 00004a0b: DUP4 00004a0c: PUSH2 0x39a9 00004a0f: JUMP 00004a10: JUMPDEST 00004a11: PUSH1 0x08 00004a13: SLOAD 00004a14: PUSH1 0x40 00004a16: MLOAD 00004a17: PUSH4 0x02266147 00004a1c: PUSH1 0xe0 00004a1e: SHL 00004a1f: DUP2 00004a20: MSTORE 00004a21: PUSH1 0x01 00004a23: PUSH1 0x01 00004a25: PUSH1 0xa0 00004a27: SHL 00004a28: SUB 00004a29: DUP1 00004a2a: DUP5 00004a2b: AND 00004a2c: PUSH1 0x04 00004a2e: DUP4 00004a2f: ADD 00004a30: MSTORE 00004a31: SWAP3 00004a32: SWAP4 00004a33: POP 00004a34: SWAP2 00004a35: AND 00004a36: SWAP1 00004a37: PUSH4 0x02266147 00004a3c: SWAP1 00004a3d: PUSH1 0x24 00004a3f: ADD 00004a40: PUSH1 0x20 00004a42: PUSH1 0x40 00004a44: MLOAD 00004a45: DUP1 00004a46: DUP4 00004a47: SUB 00004a48: DUP2 00004a49: DUP7 00004a4a: GAS 00004a4b: STATICCALL 00004a4c: ISZERO 00004a4d: DUP1 00004a4e: ISZERO 00004a4f: PUSH2 0x4a5c 00004a52: JUMPI 00004a53: RETURNDATASIZE 00004a54: PUSH1 0x00 00004a56: DUP1 00004a57: RETURNDATACOPY 00004a58: RETURNDATASIZE 00004a59: PUSH1 0x00 00004a5b: REVERT 00004a5c: JUMPDEST 00004a5d: POP 00004a5e: POP 00004a5f: POP 00004a60: POP 00004a61: PUSH1 0x40 00004a63: MLOAD 00004a64: RETURNDATASIZE 00004a65: PUSH1 0x1f 00004a67: NOT 00004a68: PUSH1 0x1f 00004a6a: DUP3 00004a6b: ADD 00004a6c: AND 00004a6d: DUP3 00004a6e: ADD 00004a6f: DUP1 00004a70: PUSH1 0x40 00004a72: MSTORE 00004a73: POP 00004a74: DUP2 00004a75: ADD 00004a76: SWAP1 00004a77: PUSH2 0x4a80 00004a7a: SWAP2 00004a7b: SWAP1 00004a7c: PUSH2 0x5b5a 00004a7f: JUMP 00004a80: JUMPDEST 00004a81: DUP7 00004a82: PUSH1 0x00 00004a84: ADD 00004a85: DUP2 00004a86: DUP2 00004a87: MSTORE 00004a88: POP 00004a89: POP 00004a8a: DUP1 00004a8b: PUSH1 0x01 00004a8d: PUSH1 0x01 00004a8f: PUSH1 0xa0 00004a91: SHL 00004a92: SUB 00004a93: AND 00004a94: PUSH4 0x313ce567 00004a99: PUSH1 0x40 00004a9b: MLOAD 00004a9c: DUP2 00004a9d: PUSH4 0xffffffff 00004aa2: AND 00004aa3: PUSH1 0xe0 00004aa5: SHL 00004aa6: DUP2 00004aa7: MSTORE 00004aa8: PUSH1 0x04 00004aaa: ADD 00004aab: PUSH1 0x20 00004aad: PUSH1 0x40 00004aaf: MLOAD 00004ab0: DUP1 00004ab1: DUP4 00004ab2: SUB 00004ab3: DUP2 00004ab4: DUP7 00004ab5: GAS 00004ab6: STATICCALL 00004ab7: ISZERO 00004ab8: DUP1 00004ab9: ISZERO 00004aba: PUSH2 0x4ac7 00004abd: JUMPI 00004abe: RETURNDATASIZE 00004abf: PUSH1 0x00 00004ac1: DUP1 00004ac2: RETURNDATACOPY 00004ac3: RETURNDATASIZE 00004ac4: PUSH1 0x00 00004ac6: REVERT 00004ac7: JUMPDEST 00004ac8: POP 00004ac9: POP 00004aca: POP 00004acb: POP 00004acc: PUSH1 0x40 00004ace: MLOAD 00004acf: RETURNDATASIZE 00004ad0: PUSH1 0x1f 00004ad2: NOT 00004ad3: PUSH1 0x1f 00004ad5: DUP3 00004ad6: ADD 00004ad7: AND 00004ad8: DUP3 00004ad9: ADD 00004ada: DUP1 00004adb: PUSH1 0x40 00004add: MSTORE 00004ade: POP 00004adf: DUP2 00004ae0: ADD 00004ae1: SWAP1 00004ae2: PUSH2 0x4aeb 00004ae5: SWAP2 00004ae6: SWAP1 00004ae7: PUSH2 0x5ae2 00004aea: JUMP 00004aeb: JUMPDEST 00004aec: PUSH2 0x4af6 00004aef: SWAP1 00004af0: PUSH1 0x0a 00004af2: PUSH2 0x5d7d 00004af5: JUMP 00004af6: JUMPDEST 00004af7: PUSH1 0x20 00004af9: DUP8 00004afa: ADD 00004afb: DUP2 00004afc: SWAP1 00004afd: MSTORE 00004afe: DUP7 00004aff: MLOAD 00004b00: PUSH1 0x00 00004b02: SWAP2 00004b03: DUP3 00004b04: SWAP2 00004b05: PUSH2 0x4b21 00004b08: SWAP2 00004b09: PUSH2 0x4b1a 00004b0c: DUP8 00004b0d: PUSH8 0x0de0b6b3a7640000 00004b16: PUSH2 0x5e9d 00004b19: JUMP 00004b1a: JUMPDEST 00004b1b: SWAP2 00004b1c: SWAP1 00004b1d: PUSH2 0x42d6 00004b20: JUMP 00004b21: JUMPDEST 00004b22: SWAP1 00004b23: POP 00004b24: PUSH2 0x4b40 00004b27: DUP9 00004b28: PUSH1 0x60 00004b2a: ADD 00004b2b: MLOAD 00004b2c: DUP10 00004b2d: PUSH1 0x40 00004b2f: ADD 00004b30: MLOAD 00004b31: DUP4 00004b32: PUSH2 0x42d6 00004b35: SWAP1 00004b36: SWAP3 00004b37: SWAP2 00004b38: SWAP1 00004b39: PUSH4 0xffffffff 00004b3e: AND 00004b3f: JUMP 00004b40: JUMPDEST 00004b41: SWAP2 00004b42: POP 00004b43: PUSH2 0x4b54 00004b46: PUSH8 0x0de0b6b3a7640000 00004b4f: DUP4 00004b50: PUSH2 0x5eb4 00004b53: JUMP 00004b54: JUMPDEST 00004b55: SWAP2 00004b56: POP 00004b57: POP 00004b58: PUSH1 0x00 00004b5a: DUP10 00004b5b: DUP3 00004b5c: GT 00004b5d: ISZERO 00004b5e: PUSH2 0x4bba 00004b61: JUMPI 00004b62: PUSH1 0x00 00004b64: PUSH2 0x4b84 00004b67: DUP10 00004b68: PUSH1 0x40 00004b6a: ADD 00004b6b: MLOAD 00004b6c: DUP11 00004b6d: PUSH1 0x60 00004b6f: ADD 00004b70: MLOAD 00004b71: DUP14 00004b72: PUSH8 0x0de0b6b3a7640000 00004b7b: PUSH2 0x4b1a 00004b7e: SWAP2 00004b7f: SWAP1 00004b80: PUSH2 0x5e9d 00004b83: JUMP 00004b84: JUMPDEST 00004b85: PUSH1 0x20 00004b87: DUP11 00004b88: ADD 00004b89: MLOAD 00004b8a: DUP11 00004b8b: MLOAD 00004b8c: SWAP2 00004b8d: SWAP3 00004b8e: POP 00004b8f: PUSH2 0x4b9a 00004b92: SWAP2 00004b93: DUP4 00004b94: SWAP2 00004b95: SWAP1 00004b96: PUSH2 0x42d6 00004b99: JUMP 00004b9a: JUMPDEST 00004b9b: SWAP2 00004b9c: POP 00004b9d: PUSH2 0x4bae 00004ba0: PUSH8 0x0de0b6b3a7640000 00004ba9: DUP4 00004baa: PUSH2 0x5eb4 00004bad: JUMP 00004bae: JUMPDEST 00004baf: SWAP2 00004bb0: POP 00004bb1: PUSH1 0x00 00004bb3: SWAP11 00004bb4: POP 00004bb5: POP 00004bb6: PUSH2 0x4bc9 00004bb9: JUMP 00004bba: JUMPDEST 00004bbb: POP 00004bbc: DUP3 00004bbd: PUSH2 0x4bc6 00004bc0: DUP3 00004bc1: DUP12 00004bc2: PUSH2 0x56b0 00004bc5: JUMP 00004bc6: JUMPDEST 00004bc7: SWAP10 00004bc8: POP 00004bc9: JUMPDEST 00004bca: PUSH2 0x4bd4 00004bcd: DUP6 00004bce: DUP3 00004bcf: DUP12 00004bd0: PUSH2 0x4d25 00004bd3: JUMP 00004bd4: JUMPDEST 00004bd5: DUP10 00004bd6: PUSH1 0x00 00004bd8: SUB 00004bd9: PUSH2 0x4be6 00004bdc: JUMPI 00004bdd: POP 00004bde: POP 00004bdf: POP 00004be0: POP 00004be1: POP 00004be2: PUSH2 0x4bfc 00004be5: JUMP 00004be6: JUMPDEST 00004be7: POP 00004be8: POP 00004be9: POP 00004bea: POP 00004beb: POP 00004bec: JUMPDEST 00004bed: PUSH2 0x4bf5 00004bf0: DUP2 00004bf1: PUSH2 0x583d 00004bf4: JUMP 00004bf5: JUMPDEST 00004bf6: SWAP1 00004bf7: POP 00004bf8: PUSH2 0x49a9 00004bfb: JUMP 00004bfc: JUMPDEST 00004bfd: POP 00004bfe: DUP4 00004bff: ISZERO 00004c00: PUSH2 0x1171 00004c03: JUMPI 00004c04: PUSH1 0x40 00004c06: MLOAD 00004c07: PUSH4 0xcc5ea39b 00004c0c: PUSH1 0xe0 00004c0e: SHL 00004c0f: DUP2 00004c10: MSTORE 00004c11: PUSH1 0x04 00004c13: DUP2 00004c14: ADD 00004c15: DUP6 00004c16: SWAP1 00004c17: MSTORE 00004c18: PUSH1 0x24 00004c1a: ADD 00004c1b: PUSH2 0x0c56 00004c1e: JUMP 00004c1f: JUMPDEST 00004c20: PUSH4 0xffffffff 00004c25: DUP3 00004c26: AND 00004c27: PUSH1 0x00 00004c29: SWAP1 00004c2a: DUP2 00004c2b: MSTORE 00004c2c: PUSH1 0x0c 00004c2e: PUSH1 0x20 00004c30: MSTORE 00004c31: PUSH1 0x40 00004c33: SWAP1 00004c34: DUP2 00004c35: SWAP1 00004c36: KECCAK256 00004c37: DUP1 00004c38: SLOAD 00004c39: SWAP2 00004c3a: MLOAD 00004c3b: PUSH1 0x01 00004c3d: PUSH1 0x01 00004c3f: PUSH1 0xa0 00004c41: SHL 00004c42: SUB 00004c43: SWAP1 00004c44: SWAP3 00004c45: AND 00004c46: SWAP2 00004c47: PUSH2 0x1171 00004c4a: SWAP2 00004c4b: PUSH4 0x69445c31 00004c50: PUSH1 0xe0 00004c52: SHL 00004c53: SWAP2 00004c54: PUSH2 0x4c6a 00004c57: SWAP2 00004c58: DUP7 00004c59: SWAP2 00004c5a: PUSH1 0x01 00004c5c: DUP3 00004c5d: ADD 00004c5e: SWAP2 00004c5f: PUSH1 0x02 00004c61: ADD 00004c62: SWAP1 00004c63: PUSH1 0x24 00004c65: ADD 00004c66: PUSH2 0x5ed6 00004c69: JUMP 00004c6a: JUMPDEST 00004c6b: PUSH1 0x40 00004c6d: DUP1 00004c6e: MLOAD 00004c6f: PUSH1 0x1f 00004c71: NOT 00004c72: DUP2 00004c73: DUP5 00004c74: SUB 00004c75: ADD 00004c76: DUP2 00004c77: MSTORE 00004c78: SWAP2 00004c79: SWAP1 00004c7a: MSTORE 00004c7b: PUSH1 0x20 00004c7d: DUP2 00004c7e: ADD 00004c7f: DUP1 00004c80: MLOAD 00004c81: PUSH1 0x01 00004c83: PUSH1 0x01 00004c85: PUSH1 0xe0 00004c87: SHL 00004c88: SUB 00004c89: AND 00004c8a: PUSH1 0x01 00004c8c: PUSH1 0x01 00004c8e: PUSH1 0xe0 00004c90: SHL 00004c91: SUB 00004c92: NOT 00004c93: SWAP1 00004c94: SWAP4 00004c95: AND 00004c96: SWAP3 00004c97: SWAP1 00004c98: SWAP3 00004c99: OR 00004c9a: SWAP1 00004c9b: SWAP2 00004c9c: MSTORE 00004c9d: PUSH1 0x01 00004c9f: PUSH1 0x01 00004ca1: PUSH1 0xa0 00004ca3: SHL 00004ca4: SUB 00004ca5: DUP4 00004ca6: AND 00004ca7: SWAP1 00004ca8: PUSH2 0x41d8 00004cab: JUMP 00004cac: JUMPDEST 00004cad: PUSH1 0x60 00004caf: DUP4 00004cb0: ISZERO 00004cb1: PUSH2 0x4d1b 00004cb4: JUMPI 00004cb5: DUP3 00004cb6: MLOAD 00004cb7: PUSH1 0x00 00004cb9: SUB 00004cba: PUSH2 0x4d14 00004cbd: JUMPI 00004cbe: PUSH1 0x01 00004cc0: PUSH1 0x01 00004cc2: PUSH1 0xa0 00004cc4: SHL 00004cc5: SUB 00004cc6: DUP6 00004cc7: AND 00004cc8: EXTCODESIZE 00004cc9: PUSH2 0x4d14 00004ccc: JUMPI 00004ccd: PUSH1 0x40 00004ccf: MLOAD 00004cd0: PUSH3 0x461bcd 00004cd4: PUSH1 0xe5 00004cd6: SHL 00004cd7: DUP2 00004cd8: MSTORE 00004cd9: PUSH1 0x20 00004cdb: PUSH1 0x04 00004cdd: DUP3 00004cde: ADD 00004cdf: MSTORE 00004ce0: PUSH1 0x1d 00004ce2: PUSH1 0x24 00004ce4: DUP3 00004ce5: ADD 00004ce6: MSTORE 00004ce7: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00004d08: PUSH1 0x44 00004d0a: DUP3 00004d0b: ADD 00004d0c: MSTORE 00004d0d: PUSH1 0x64 00004d0f: ADD 00004d10: PUSH2 0x0c56 00004d13: JUMP 00004d14: JUMPDEST 00004d15: POP 00004d16: DUP2 00004d17: PUSH2 0x0e85 00004d1a: JUMP 00004d1b: JUMPDEST 00004d1c: PUSH2 0x0e85 00004d1f: DUP4 00004d20: DUP4 00004d21: PUSH2 0x4d74 00004d24: JUMP 00004d25: JUMPDEST 00004d26: PUSH4 0xffffffff 00004d2b: DUP4 00004d2c: AND 00004d2d: PUSH1 0x00 00004d2f: SWAP1 00004d30: DUP2 00004d31: MSTORE 00004d32: PUSH1 0x0c 00004d34: PUSH1 0x20 00004d36: MSTORE 00004d37: PUSH1 0x40 00004d39: SWAP1 00004d3a: DUP2 00004d3b: SWAP1 00004d3c: KECCAK256 00004d3d: DUP1 00004d3e: SLOAD 00004d3f: SWAP2 00004d40: MLOAD 00004d41: PUSH1 0x01 00004d43: PUSH1 0x01 00004d45: PUSH1 0xa0 00004d47: SHL 00004d48: SUB 00004d49: SWAP1 00004d4a: SWAP3 00004d4b: AND 00004d4c: SWAP2 00004d4d: PUSH2 0x4762 00004d50: SWAP2 00004d51: PUSH4 0xc9111bd7 00004d56: PUSH1 0xe0 00004d58: SHL 00004d59: SWAP2 00004d5a: PUSH2 0x4c6a 00004d5d: SWAP2 00004d5e: DUP8 00004d5f: SWAP2 00004d60: DUP8 00004d61: SWAP2 00004d62: PUSH1 0x01 00004d64: DUP2 00004d65: ADD 00004d66: SWAP2 00004d67: PUSH1 0x02 00004d69: SWAP1 00004d6a: SWAP2 00004d6b: ADD 00004d6c: SWAP1 00004d6d: PUSH1 0x24 00004d6f: ADD 00004d70: PUSH2 0x5f01 00004d73: JUMP 00004d74: JUMPDEST 00004d75: DUP2 00004d76: MLOAD 00004d77: ISZERO 00004d78: PUSH2 0x4d84 00004d7b: JUMPI 00004d7c: DUP2 00004d7d: MLOAD 00004d7e: DUP1 00004d7f: DUP4 00004d80: PUSH1 0x20 00004d82: ADD 00004d83: REVERT 00004d84: JUMPDEST 00004d85: DUP1 00004d86: PUSH1 0x40 00004d88: MLOAD 00004d89: PUSH3 0x461bcd 00004d8d: PUSH1 0xe5 00004d8f: SHL 00004d90: DUP2 00004d91: MSTORE 00004d92: PUSH1 0x04 00004d94: ADD 00004d95: PUSH2 0x0c56 00004d98: SWAP2 00004d99: SWAP1 00004d9a: PUSH2 0x4e44 00004d9d: JUMP 00004d9e: JUMPDEST 00004d9f: POP 00004da0: DUP1 00004da1: SLOAD 00004da2: PUSH2 0x4daa 00004da5: SWAP1 00004da6: PUSH2 0x563a 00004da9: JUMP 00004daa: JUMPDEST 00004dab: PUSH1 0x00 00004dad: DUP3 00004dae: SSTORE 00004daf: DUP1 00004db0: PUSH1 0x1f 00004db2: LT 00004db3: PUSH2 0x4dba 00004db6: JUMPI 00004db7: POP 00004db8: POP 00004db9: JUMP 00004dba: JUMPDEST 00004dbb: PUSH1 0x1f 00004dbd: ADD 00004dbe: PUSH1 0x20 00004dc0: SWAP1 00004dc1: DIV 00004dc2: SWAP1 00004dc3: PUSH1 0x00 00004dc5: MSTORE 00004dc6: PUSH1 0x20 00004dc8: PUSH1 0x00 00004dca: KECCAK256 00004dcb: SWAP1 00004dcc: DUP2 00004dcd: ADD 00004dce: SWAP1 00004dcf: PUSH2 0x4dd8 00004dd2: SWAP2 00004dd3: SWAP1 00004dd4: PUSH2 0x4ddb 00004dd7: JUMP 00004dd8: JUMPDEST 00004dd9: POP 00004dda: JUMP 00004ddb: JUMPDEST 00004ddc: JUMPDEST 00004ddd: DUP1 00004dde: DUP3 00004ddf: GT 00004de0: ISZERO 00004de1: PUSH2 0x4df0 00004de4: JUMPI 00004de5: PUSH1 0x00 00004de7: DUP2 00004de8: SSTORE 00004de9: PUSH1 0x01 00004deb: ADD 00004dec: PUSH2 0x4ddc 00004def: JUMP 00004df0: JUMPDEST 00004df1: POP 00004df2: SWAP1 00004df3: JUMP 00004df4: JUMPDEST 00004df5: PUSH1 0x00 00004df7: JUMPDEST 00004df8: DUP4 00004df9: DUP2 00004dfa: LT 00004dfb: ISZERO 00004dfc: PUSH2 0x4e0f 00004dff: JUMPI 00004e00: DUP2 00004e01: DUP2 00004e02: ADD 00004e03: MLOAD 00004e04: DUP4 00004e05: DUP3 00004e06: ADD 00004e07: MSTORE 00004e08: PUSH1 0x20 00004e0a: ADD 00004e0b: PUSH2 0x4df7 00004e0e: JUMP 00004e0f: JUMPDEST 00004e10: POP 00004e11: POP 00004e12: PUSH1 0x00 00004e14: SWAP2 00004e15: ADD 00004e16: MSTORE 00004e17: JUMP 00004e18: JUMPDEST 00004e19: PUSH1 0x00 00004e1b: DUP2 00004e1c: MLOAD 00004e1d: DUP1 00004e1e: DUP5 00004e1f: MSTORE 00004e20: PUSH2 0x4e30 00004e23: DUP2 00004e24: PUSH1 0x20 00004e26: DUP7 00004e27: ADD 00004e28: PUSH1 0x20 00004e2a: DUP7 00004e2b: ADD 00004e2c: PUSH2 0x4df4 00004e2f: JUMP 00004e30: JUMPDEST 00004e31: PUSH1 0x1f 00004e33: ADD 00004e34: PUSH1 0x1f 00004e36: NOT 00004e37: AND 00004e38: SWAP3 00004e39: SWAP1 00004e3a: SWAP3 00004e3b: ADD 00004e3c: PUSH1 0x20 00004e3e: ADD 00004e3f: SWAP3 00004e40: SWAP2 00004e41: POP 00004e42: POP 00004e43: JUMP 00004e44: JUMPDEST 00004e45: PUSH1 0x20 00004e47: DUP2 00004e48: MSTORE 00004e49: PUSH1 0x00 00004e4b: PUSH2 0x3a32 00004e4e: PUSH1 0x20 00004e50: DUP4 00004e51: ADD 00004e52: DUP5 00004e53: PUSH2 0x4e18 00004e56: JUMP 00004e57: JUMPDEST 00004e58: DUP1 00004e59: CALLDATALOAD 00004e5a: PUSH4 0xffffffff 00004e5f: DUP2 00004e60: AND 00004e61: DUP2 00004e62: EQ 00004e63: PUSH2 0x4e6b 00004e66: JUMPI 00004e67: PUSH1 0x00 00004e69: DUP1 00004e6a: REVERT 00004e6b: JUMPDEST 00004e6c: SWAP2 00004e6d: SWAP1 00004e6e: POP 00004e6f: JUMP 00004e70: JUMPDEST 00004e71: PUSH1 0x00 00004e73: PUSH1 0x20 00004e75: DUP3 00004e76: DUP5 00004e77: SUB 00004e78: SLT 00004e79: ISZERO 00004e7a: PUSH2 0x4e82 00004e7d: JUMPI 00004e7e: PUSH1 0x00 00004e80: DUP1 00004e81: REVERT 00004e82: JUMPDEST 00004e83: PUSH2 0x3a32 00004e86: DUP3 00004e87: PUSH2 0x4e57 00004e8a: JUMP 00004e8b: JUMPDEST 00004e8c: PUSH1 0x00 00004e8e: PUSH1 0x20 00004e90: DUP3 00004e91: DUP5 00004e92: SUB 00004e93: SLT 00004e94: ISZERO 00004e95: PUSH2 0x4e9d 00004e98: JUMPI 00004e99: PUSH1 0x00 00004e9b: DUP1 00004e9c: REVERT 00004e9d: JUMPDEST 00004e9e: POP 00004e9f: CALLDATALOAD 00004ea0: SWAP2 00004ea1: SWAP1 00004ea2: POP 00004ea3: JUMP 00004ea4: JUMPDEST 00004ea5: PUSH1 0x01 00004ea7: PUSH1 0x01 00004ea9: PUSH1 0xa0 00004eab: SHL 00004eac: SUB 00004ead: DUP2 00004eae: AND 00004eaf: DUP2 00004eb0: EQ 00004eb1: PUSH2 0x4dd8 00004eb4: JUMPI 00004eb5: PUSH1 0x00 00004eb7: DUP1 00004eb8: REVERT 00004eb9: JUMPDEST 00004eba: PUSH1 0x00 00004ebc: DUP1 00004ebd: PUSH1 0x40 00004ebf: DUP4 00004ec0: DUP6 00004ec1: SUB 00004ec2: SLT 00004ec3: ISZERO 00004ec4: PUSH2 0x4ecc 00004ec7: JUMPI 00004ec8: PUSH1 0x00 00004eca: DUP1 00004ecb: REVERT 00004ecc: JUMPDEST 00004ecd: DUP3 00004ece: CALLDATALOAD 00004ecf: PUSH2 0x4ed7 00004ed2: DUP2 00004ed3: PUSH2 0x4ea4 00004ed6: JUMP 00004ed7: JUMPDEST 00004ed8: SWAP5 00004ed9: PUSH1 0x20 00004edb: SWAP4 00004edc: SWAP1 00004edd: SWAP4 00004ede: ADD 00004edf: CALLDATALOAD 00004ee0: SWAP4 00004ee1: POP 00004ee2: POP 00004ee3: POP 00004ee4: JUMP 00004ee5: JUMPDEST 00004ee6: PUSH4 0x4e487b71 00004eeb: PUSH1 0xe0 00004eed: SHL 00004eee: PUSH1 0x00 00004ef0: MSTORE 00004ef1: PUSH1 0x41 00004ef3: PUSH1 0x04 00004ef5: MSTORE 00004ef6: PUSH1 0x24 00004ef8: PUSH1 0x00 00004efa: REVERT 00004efb: JUMPDEST 00004efc: PUSH1 0x40 00004efe: DUP1 00004eff: MLOAD 00004f00: SWAP1 00004f01: DUP2 00004f02: ADD 00004f03: PUSH1 0x01 00004f05: PUSH1 0x01 00004f07: PUSH1 0x40 00004f09: SHL 00004f0a: SUB 00004f0b: DUP2 00004f0c: GT 00004f0d: DUP3 00004f0e: DUP3 00004f0f: LT 00004f10: OR 00004f11: ISZERO 00004f12: PUSH2 0x4f1d 00004f15: JUMPI 00004f16: PUSH2 0x4f1d 00004f19: PUSH2 0x4ee5 00004f1c: JUMP 00004f1d: JUMPDEST 00004f1e: PUSH1 0x40 00004f20: MSTORE 00004f21: SWAP1 00004f22: JUMP 00004f23: JUMPDEST 00004f24: PUSH1 0x40 00004f26: MLOAD 00004f27: PUSH1 0x1f 00004f29: DUP3 00004f2a: ADD 00004f2b: PUSH1 0x1f 00004f2d: NOT 00004f2e: AND 00004f2f: DUP2 00004f30: ADD 00004f31: PUSH1 0x01 00004f33: PUSH1 0x01 00004f35: PUSH1 0x40 00004f37: SHL 00004f38: SUB 00004f39: DUP2 00004f3a: GT 00004f3b: DUP3 00004f3c: DUP3 00004f3d: LT 00004f3e: OR 00004f3f: ISZERO 00004f40: PUSH2 0x4f4b 00004f43: JUMPI 00004f44: PUSH2 0x4f4b 00004f47: PUSH2 0x4ee5 00004f4a: JUMP 00004f4b: JUMPDEST 00004f4c: PUSH1 0x40 00004f4e: MSTORE 00004f4f: SWAP2 00004f50: SWAP1 00004f51: POP 00004f52: JUMP 00004f53: JUMPDEST 00004f54: PUSH1 0x00 00004f56: PUSH1 0x01 00004f58: PUSH1 0x01 00004f5a: PUSH1 0x40 00004f5c: SHL 00004f5d: SUB 00004f5e: DUP3 00004f5f: GT 00004f60: ISZERO 00004f61: PUSH2 0x4f6c 00004f64: JUMPI 00004f65: PUSH2 0x4f6c 00004f68: PUSH2 0x4ee5 00004f6b: JUMP 00004f6c: JUMPDEST 00004f6d: POP 00004f6e: PUSH1 0x1f 00004f70: ADD 00004f71: PUSH1 0x1f 00004f73: NOT 00004f74: AND 00004f75: PUSH1 0x20 00004f77: ADD 00004f78: SWAP1 00004f79: JUMP 00004f7a: JUMPDEST 00004f7b: PUSH1 0x00 00004f7d: DUP3 00004f7e: PUSH1 0x1f 00004f80: DUP4 00004f81: ADD 00004f82: SLT 00004f83: PUSH2 0x4f8b 00004f86: JUMPI 00004f87: PUSH1 0x00 00004f89: DUP1 00004f8a: REVERT 00004f8b: JUMPDEST 00004f8c: DUP2 00004f8d: CALLDATALOAD 00004f8e: PUSH2 0x4f9e 00004f91: PUSH2 0x4f99 00004f94: DUP3 00004f95: PUSH2 0x4f53 00004f98: JUMP 00004f99: JUMPDEST 00004f9a: PUSH2 0x4f23 00004f9d: JUMP 00004f9e: JUMPDEST 00004f9f: DUP2 00004fa0: DUP2 00004fa1: MSTORE 00004fa2: DUP5 00004fa3: PUSH1 0x20 00004fa5: DUP4 00004fa6: DUP7 00004fa7: ADD 00004fa8: ADD 00004fa9: GT 00004faa: ISZERO 00004fab: PUSH2 0x4fb3 00004fae: JUMPI 00004faf: PUSH1 0x00 00004fb1: DUP1 00004fb2: REVERT 00004fb3: JUMPDEST 00004fb4: DUP2 00004fb5: PUSH1 0x20 00004fb7: DUP6 00004fb8: ADD 00004fb9: PUSH1 0x20 00004fbb: DUP4 00004fbc: ADD 00004fbd: CALLDATACOPY 00004fbe: PUSH1 0x00 00004fc0: SWAP2 00004fc1: DUP2 00004fc2: ADD 00004fc3: PUSH1 0x20 00004fc5: ADD 00004fc6: SWAP2 00004fc7: SWAP1 00004fc8: SWAP2 00004fc9: MSTORE 00004fca: SWAP4 00004fcb: SWAP3 00004fcc: POP 00004fcd: POP 00004fce: POP 00004fcf: JUMP 00004fd0: JUMPDEST 00004fd1: PUSH1 0x00 00004fd3: DUP1 00004fd4: PUSH1 0x00 00004fd6: DUP1 00004fd7: PUSH1 0x80 00004fd9: DUP6 00004fda: DUP8 00004fdb: SUB 00004fdc: SLT 00004fdd: ISZERO 00004fde: PUSH2 0x4fe6 00004fe1: JUMPI 00004fe2: PUSH1 0x00 00004fe4: DUP1 00004fe5: REVERT 00004fe6: JUMPDEST 00004fe7: DUP5 00004fe8: CALLDATALOAD 00004fe9: PUSH2 0x4ff1 00004fec: DUP2 00004fed: PUSH2 0x4ea4 00004ff0: JUMP 00004ff1: JUMPDEST 00004ff2: SWAP4 00004ff3: POP 00004ff4: PUSH1 0x20 00004ff6: DUP6 00004ff7: ADD 00004ff8: CALLDATALOAD 00004ff9: PUSH2 0x5001 00004ffc: DUP2 00004ffd: PUSH2 0x4ea4 00005000: JUMP 00005001: JUMPDEST 00005002: SWAP3 00005003: POP 00005004: PUSH1 0x40 00005006: DUP6 00005007: ADD 00005008: CALLDATALOAD 00005009: SWAP2 0000500a: POP 0000500b: PUSH1 0x60 0000500d: DUP6 0000500e: ADD 0000500f: CALLDATALOAD 00005010: PUSH1 0x01 00005012: PUSH1 0x01 00005014: PUSH1 0x40 00005016: SHL 00005017: SUB 00005018: DUP2 00005019: GT 0000501a: ISZERO 0000501b: PUSH2 0x5023 0000501e: JUMPI 0000501f: PUSH1 0x00 00005021: DUP1 00005022: REVERT 00005023: JUMPDEST 00005024: PUSH2 0x502f 00005027: DUP8 00005028: DUP3 00005029: DUP9 0000502a: ADD 0000502b: PUSH2 0x4f7a 0000502e: JUMP 0000502f: JUMPDEST 00005030: SWAP2 00005031: POP 00005032: POP 00005033: SWAP3 00005034: SWAP6 00005035: SWAP2 00005036: SWAP5 00005037: POP 00005038: SWAP3 00005039: POP 0000503a: JUMP 0000503b: JUMPDEST 0000503c: PUSH1 0x00 0000503e: PUSH1 0x20 00005040: DUP3 00005041: DUP5 00005042: SUB 00005043: SLT 00005044: ISZERO 00005045: PUSH2 0x504d 00005048: JUMPI 00005049: PUSH1 0x00 0000504b: DUP1 0000504c: REVERT 0000504d: JUMPDEST 0000504e: DUP2 0000504f: CALLDATALOAD 00005050: PUSH2 0x3a32 00005053: DUP2 00005054: PUSH2 0x4ea4 00005057: JUMP 00005058: JUMPDEST 00005059: PUSH1 0x00 0000505b: DUP1 0000505c: PUSH1 0x00 0000505e: PUSH1 0x60 00005060: DUP5 00005061: DUP7 00005062: SUB 00005063: SLT 00005064: ISZERO 00005065: PUSH2 0x506d 00005068: JUMPI 00005069: PUSH1 0x00 0000506b: DUP1 0000506c: REVERT 0000506d: JUMPDEST 0000506e: DUP4 0000506f: CALLDATALOAD 00005070: PUSH2 0x5078 00005073: DUP2 00005074: PUSH2 0x4ea4 00005077: JUMP 00005078: JUMPDEST 00005079: SWAP3 0000507a: POP 0000507b: PUSH1 0x20 0000507d: DUP5 0000507e: ADD 0000507f: CALLDATALOAD 00005080: PUSH2 0x5088 00005083: DUP2 00005084: PUSH2 0x4ea4 00005087: JUMP 00005088: JUMPDEST 00005089: SWAP3 0000508a: SWAP6 0000508b: SWAP3 0000508c: SWAP5 0000508d: POP 0000508e: POP 0000508f: POP 00005090: PUSH1 0x40 00005092: SWAP2 00005093: SWAP1 00005094: SWAP2 00005095: ADD 00005096: CALLDATALOAD 00005097: SWAP1 00005098: JUMP 00005099: JUMPDEST 0000509a: DUP1 0000509b: ISZERO 0000509c: ISZERO 0000509d: DUP2 0000509e: EQ 0000509f: PUSH2 0x4dd8 000050a2: JUMPI 000050a3: PUSH1 0x00 000050a5: DUP1 000050a6: REVERT 000050a7: JUMPDEST 000050a8: PUSH1 0x00 000050aa: DUP1 000050ab: PUSH1 0x40 000050ad: DUP4 000050ae: DUP6 000050af: SUB 000050b0: SLT 000050b1: ISZERO 000050b2: PUSH2 0x50ba 000050b5: JUMPI 000050b6: PUSH1 0x00 000050b8: DUP1 000050b9: REVERT 000050ba: JUMPDEST 000050bb: PUSH2 0x50c3 000050be: DUP4 000050bf: PUSH2 0x4e57 000050c2: JUMP 000050c3: JUMPDEST 000050c4: SWAP2 000050c5: POP 000050c6: PUSH1 0x20 000050c8: DUP4 000050c9: ADD 000050ca: CALLDATALOAD 000050cb: PUSH2 0x50d3 000050ce: DUP2 000050cf: PUSH2 0x5099 000050d2: JUMP 000050d3: JUMPDEST 000050d4: DUP1 000050d5: SWAP2 000050d6: POP 000050d7: POP 000050d8: SWAP3 000050d9: POP 000050da: SWAP3 000050db: SWAP1 000050dc: POP 000050dd: JUMP 000050de: JUMPDEST 000050df: PUSH1 0x00 000050e1: DUP1 000050e2: PUSH1 0x00 000050e4: PUSH1 0x60 000050e6: DUP5 000050e7: DUP7 000050e8: SUB 000050e9: SLT 000050ea: ISZERO 000050eb: PUSH2 0x50f3 000050ee: JUMPI 000050ef: PUSH1 0x00 000050f1: DUP1 000050f2: REVERT 000050f3: JUMPDEST 000050f4: PUSH2 0x50fc 000050f7: DUP5 000050f8: PUSH2 0x4e57 000050fb: JUMP 000050fc: JUMPDEST 000050fd: SWAP3 000050fe: POP 000050ff: PUSH2 0x510a 00005102: PUSH1 0x20 00005104: DUP6 00005105: ADD 00005106: PUSH2 0x4e57 00005109: JUMP 0000510a: JUMPDEST 0000510b: SWAP2 0000510c: POP 0000510d: PUSH1 0x40 0000510f: DUP5 00005110: ADD 00005111: CALLDATALOAD 00005112: PUSH2 0x511a 00005115: DUP2 00005116: PUSH2 0x5099 00005119: JUMP 0000511a: JUMPDEST 0000511b: DUP1 0000511c: SWAP2 0000511d: POP 0000511e: POP 0000511f: SWAP3 00005120: POP 00005121: SWAP3 00005122: POP 00005123: SWAP3 00005124: JUMP 00005125: JUMPDEST 00005126: PUSH1 0x20 00005128: DUP1 00005129: DUP3 0000512a: MSTORE 0000512b: DUP3 0000512c: MLOAD 0000512d: DUP3 0000512e: DUP3 0000512f: ADD 00005130: DUP2 00005131: SWAP1 00005132: MSTORE 00005133: PUSH1 0x00 00005135: SWAP2 00005136: SWAP1 00005137: DUP5 00005138: DUP3 00005139: ADD 0000513a: SWAP1 0000513b: PUSH1 0x40 0000513d: DUP6 0000513e: ADD 0000513f: SWAP1 00005140: DUP5 00005141: JUMPDEST 00005142: DUP2 00005143: DUP2 00005144: LT 00005145: ISZERO 00005146: PUSH2 0x5163 00005149: JUMPI 0000514a: DUP4 0000514b: MLOAD 0000514c: PUSH4 0xffffffff 00005151: AND 00005152: DUP4 00005153: MSTORE 00005154: SWAP3 00005155: DUP5 00005156: ADD 00005157: SWAP3 00005158: SWAP2 00005159: DUP5 0000515a: ADD 0000515b: SWAP2 0000515c: PUSH1 0x01 0000515e: ADD 0000515f: PUSH2 0x5141 00005162: JUMP 00005163: JUMPDEST 00005164: POP 00005165: SWAP1 00005166: SWAP7 00005167: SWAP6 00005168: POP 00005169: POP 0000516a: POP 0000516b: POP 0000516c: POP 0000516d: POP 0000516e: JUMP 0000516f: JUMPDEST 00005170: PUSH1 0x00 00005172: DUP1 00005173: DUP4 00005174: PUSH1 0x1f 00005176: DUP5 00005177: ADD 00005178: SLT 00005179: PUSH2 0x5181 0000517c: JUMPI 0000517d: PUSH1 0x00 0000517f: DUP1 00005180: REVERT 00005181: JUMPDEST 00005182: POP 00005183: DUP2 00005184: CALLDATALOAD 00005185: PUSH1 0x01 00005187: PUSH1 0x01 00005189: PUSH1 0x40 0000518b: SHL 0000518c: SUB 0000518d: DUP2 0000518e: GT 0000518f: ISZERO 00005190: PUSH2 0x5198 00005193: JUMPI 00005194: PUSH1 0x00 00005196: DUP1 00005197: REVERT 00005198: JUMPDEST 00005199: PUSH1 0x20 0000519b: DUP4 0000519c: ADD 0000519d: SWAP2 0000519e: POP 0000519f: DUP4 000051a0: PUSH1 0x20 000051a2: DUP3 000051a3: PUSH1 0x05 000051a5: SHL 000051a6: DUP6 000051a7: ADD 000051a8: ADD 000051a9: GT 000051aa: ISZERO 000051ab: PUSH2 0x51b3 000051ae: JUMPI 000051af: PUSH1 0x00 000051b1: DUP1 000051b2: REVERT 000051b3: JUMPDEST 000051b4: SWAP3 000051b5: POP 000051b6: SWAP3 000051b7: SWAP1 000051b8: POP 000051b9: JUMP 000051ba: JUMPDEST 000051bb: PUSH1 0x00 000051bd: DUP1 000051be: PUSH1 0x20 000051c0: DUP4 000051c1: DUP6 000051c2: SUB 000051c3: SLT 000051c4: ISZERO 000051c5: PUSH2 0x51cd 000051c8: JUMPI 000051c9: PUSH1 0x00 000051cb: DUP1 000051cc: REVERT 000051cd: JUMPDEST 000051ce: DUP3 000051cf: CALLDATALOAD 000051d0: PUSH1 0x01 000051d2: PUSH1 0x01 000051d4: PUSH1 0x40 000051d6: SHL 000051d7: SUB 000051d8: DUP2 000051d9: GT 000051da: ISZERO 000051db: PUSH2 0x51e3 000051de: JUMPI 000051df: PUSH1 0x00 000051e1: DUP1 000051e2: REVERT 000051e3: JUMPDEST 000051e4: PUSH2 0x51ef 000051e7: DUP6 000051e8: DUP3 000051e9: DUP7 000051ea: ADD 000051eb: PUSH2 0x516f 000051ee: JUMP 000051ef: JUMPDEST 000051f0: SWAP1 000051f1: SWAP7 000051f2: SWAP1 000051f3: SWAP6 000051f4: POP 000051f5: SWAP4 000051f6: POP 000051f7: POP 000051f8: POP 000051f9: POP 000051fa: JUMP 000051fb: JUMPDEST 000051fc: PUSH1 0x00 000051fe: PUSH1 0x20 00005200: DUP3 00005201: DUP5 00005202: SUB 00005203: SLT 00005204: ISZERO 00005205: PUSH2 0x520d 00005208: JUMPI 00005209: PUSH1 0x00 0000520b: DUP1 0000520c: REVERT 0000520d: JUMPDEST 0000520e: DUP2 0000520f: CALLDATALOAD 00005210: PUSH1 0x01 00005212: PUSH1 0x01 00005214: PUSH1 0xc0 00005216: SHL 00005217: SUB 00005218: DUP2 00005219: AND 0000521a: DUP2 0000521b: EQ 0000521c: PUSH2 0x3a32 0000521f: JUMPI 00005220: PUSH1 0x00 00005222: DUP1 00005223: REVERT 00005224: JUMPDEST 00005225: PUSH1 0x00 00005227: DUP1 00005228: PUSH1 0x40 0000522a: DUP4 0000522b: DUP6 0000522c: SUB 0000522d: SLT 0000522e: ISZERO 0000522f: PUSH2 0x5237 00005232: JUMPI 00005233: PUSH1 0x00 00005235: DUP1 00005236: REVERT 00005237: JUMPDEST 00005238: DUP3 00005239: CALLDATALOAD 0000523a: SWAP2 0000523b: POP 0000523c: PUSH1 0x20 0000523e: DUP4 0000523f: ADD 00005240: CALLDATALOAD 00005241: PUSH2 0x50d3 00005244: DUP2 00005245: PUSH2 0x4ea4 00005248: JUMP 00005249: JUMPDEST 0000524a: PUSH1 0x01 0000524c: PUSH1 0x01 0000524e: PUSH1 0xa0 00005250: SHL 00005251: SUB 00005252: DUP6 00005253: AND 00005254: DUP2 00005255: MSTORE 00005256: DUP4 00005257: ISZERO 00005258: ISZERO 00005259: PUSH1 0x20 0000525b: DUP3 0000525c: ADD 0000525d: MSTORE 0000525e: PUSH1 0x80 00005260: PUSH1 0x40 00005262: DUP3 00005263: ADD 00005264: DUP2 00005265: SWAP1 00005266: MSTORE 00005267: PUSH1 0x00 00005269: SWAP1 0000526a: PUSH2 0x5275 0000526d: SWAP1 0000526e: DUP4 0000526f: ADD 00005270: DUP6 00005271: PUSH2 0x4e18 00005274: JUMP 00005275: JUMPDEST 00005276: DUP3 00005277: DUP2 00005278: SUB 00005279: PUSH1 0x60 0000527b: DUP5 0000527c: ADD 0000527d: MSTORE 0000527e: PUSH2 0x5287 00005281: DUP2 00005282: DUP6 00005283: PUSH2 0x4e18 00005286: JUMP 00005287: JUMPDEST 00005288: SWAP8 00005289: SWAP7 0000528a: POP 0000528b: POP 0000528c: POP 0000528d: POP 0000528e: POP 0000528f: POP 00005290: POP 00005291: JUMP 00005292: JUMPDEST 00005293: PUSH1 0x00 00005295: DUP2 00005296: MLOAD 00005297: DUP1 00005298: DUP5 00005299: MSTORE 0000529a: PUSH1 0x20 0000529c: DUP1 0000529d: DUP6 0000529e: ADD 0000529f: SWAP5 000052a0: POP 000052a1: DUP1 000052a2: DUP5 000052a3: ADD 000052a4: PUSH1 0x00 000052a6: JUMPDEST 000052a7: DUP4 000052a8: DUP2 000052a9: LT 000052aa: ISZERO 000052ab: PUSH2 0x52cb 000052ae: JUMPI 000052af: DUP2 000052b0: MLOAD 000052b1: PUSH1 0x01 000052b3: PUSH1 0x01 000052b5: PUSH1 0xa0 000052b7: SHL 000052b8: SUB 000052b9: AND 000052ba: DUP8 000052bb: MSTORE 000052bc: SWAP6 000052bd: DUP3 000052be: ADD 000052bf: SWAP6 000052c0: SWAP1 000052c1: DUP3 000052c2: ADD 000052c3: SWAP1 000052c4: PUSH1 0x01 000052c6: ADD 000052c7: PUSH2 0x52a6 000052ca: JUMP 000052cb: JUMPDEST 000052cc: POP 000052cd: SWAP5 000052ce: SWAP6 000052cf: SWAP5 000052d0: POP 000052d1: POP 000052d2: POP 000052d3: POP 000052d4: POP 000052d5: JUMP 000052d6: JUMPDEST 000052d7: PUSH1 0x00 000052d9: DUP2 000052da: MLOAD 000052db: DUP1 000052dc: DUP5 000052dd: MSTORE 000052de: PUSH1 0x20 000052e0: DUP1 000052e1: DUP6 000052e2: ADD 000052e3: SWAP5 000052e4: POP 000052e5: DUP1 000052e6: DUP5 000052e7: ADD 000052e8: PUSH1 0x00 000052ea: JUMPDEST 000052eb: DUP4 000052ec: DUP2 000052ed: LT 000052ee: ISZERO 000052ef: PUSH2 0x52cb 000052f2: JUMPI 000052f3: DUP2 000052f4: MLOAD 000052f5: DUP8 000052f6: MSTORE 000052f7: SWAP6 000052f8: DUP3 000052f9: ADD 000052fa: SWAP6 000052fb: SWAP1 000052fc: DUP3 000052fd: ADD 000052fe: SWAP1 000052ff: PUSH1 0x01 00005301: ADD 00005302: PUSH2 0x52ea 00005305: JUMP 00005306: JUMPDEST 00005307: PUSH1 0x60 00005309: DUP2 0000530a: MSTORE 0000530b: PUSH1 0x00 0000530d: PUSH2 0x5319 00005310: PUSH1 0x60 00005312: DUP4 00005313: ADD 00005314: DUP7 00005315: PUSH2 0x5292 00005318: JUMP 00005319: JUMPDEST 0000531a: PUSH1 0x20 0000531c: DUP4 0000531d: DUP3 0000531e: SUB 0000531f: DUP2 00005320: DUP6 00005321: ADD 00005322: MSTORE 00005323: PUSH2 0x532c 00005326: DUP3 00005327: DUP8 00005328: PUSH2 0x52d6 0000532b: JUMP 0000532c: JUMPDEST 0000532d: DUP5 0000532e: DUP2 0000532f: SUB 00005330: PUSH1 0x40 00005332: DUP7 00005333: ADD 00005334: MSTORE 00005335: DUP6 00005336: MLOAD 00005337: DUP1 00005338: DUP3 00005339: MSTORE 0000533a: DUP3 0000533b: DUP8 0000533c: ADD 0000533d: SWAP4 0000533e: POP 0000533f: SWAP1 00005340: DUP3 00005341: ADD 00005342: SWAP1 00005343: PUSH1 0x00 00005345: JUMPDEST 00005346: DUP2 00005347: DUP2 00005348: LT 00005349: ISZERO 0000534a: PUSH2 0x5363 0000534d: JUMPI 0000534e: DUP5 0000534f: MLOAD 00005350: ISZERO 00005351: ISZERO 00005352: DUP4 00005353: MSTORE 00005354: SWAP4 00005355: DUP4 00005356: ADD 00005357: SWAP4 00005358: SWAP2 00005359: DUP4 0000535a: ADD 0000535b: SWAP2 0000535c: PUSH1 0x01 0000535e: ADD 0000535f: PUSH2 0x5345 00005362: JUMP 00005363: JUMPDEST 00005364: POP 00005365: SWAP1 00005366: SWAP9 00005367: SWAP8 00005368: POP 00005369: POP 0000536a: POP 0000536b: POP 0000536c: POP 0000536d: POP 0000536e: POP 0000536f: POP 00005370: JUMP 00005371: JUMPDEST 00005372: PUSH1 0x00 00005374: DUP1 00005375: PUSH1 0x00 00005377: DUP1 00005378: PUSH1 0x80 0000537a: DUP6 0000537b: DUP8 0000537c: SUB 0000537d: SLT 0000537e: ISZERO 0000537f: PUSH2 0x5387 00005382: JUMPI 00005383: PUSH1 0x00 00005385: DUP1 00005386: REVERT 00005387: JUMPDEST 00005388: PUSH2 0x5390 0000538b: DUP6 0000538c: PUSH2 0x4e57 0000538f: JUMP 00005390: JUMPDEST 00005391: SWAP4 00005392: POP 00005393: PUSH2 0x539e 00005396: PUSH1 0x20 00005398: DUP7 00005399: ADD 0000539a: PUSH2 0x4e57 0000539d: JUMP 0000539e: JUMPDEST 0000539f: SWAP3 000053a0: POP 000053a1: PUSH1 0x40 000053a3: DUP6 000053a4: ADD 000053a5: CALLDATALOAD 000053a6: PUSH1 0x01 000053a8: PUSH1 0x01 000053aa: PUSH1 0x40 000053ac: SHL 000053ad: SUB 000053ae: DUP2 000053af: GT 000053b0: ISZERO 000053b1: PUSH2 0x53b9 000053b4: JUMPI 000053b5: PUSH1 0x00 000053b7: DUP1 000053b8: REVERT 000053b9: JUMPDEST 000053ba: PUSH2 0x53c5 000053bd: DUP8 000053be: DUP3 000053bf: DUP9 000053c0: ADD 000053c1: PUSH2 0x4f7a 000053c4: JUMP 000053c5: JUMPDEST 000053c6: SWAP3 000053c7: POP 000053c8: POP 000053c9: PUSH1 0x60 000053cb: DUP6 000053cc: ADD 000053cd: CALLDATALOAD 000053ce: PUSH2 0x53d6 000053d1: DUP2 000053d2: PUSH2 0x5099 000053d5: JUMP 000053d6: JUMPDEST 000053d7: SWAP4 000053d8: SWAP7 000053d9: SWAP3 000053da: SWAP6 000053db: POP 000053dc: SWAP1 000053dd: SWAP4 000053de: POP 000053df: POP 000053e0: JUMP 000053e1: JUMPDEST 000053e2: PUSH1 0x00 000053e4: DUP1 000053e5: PUSH1 0x00 000053e7: PUSH1 0x60 000053e9: DUP5 000053ea: DUP7 000053eb: SUB 000053ec: SLT 000053ed: ISZERO 000053ee: PUSH2 0x53f6 000053f1: JUMPI 000053f2: PUSH1 0x00 000053f4: DUP1 000053f5: REVERT 000053f6: JUMPDEST 000053f7: DUP4 000053f8: CALLDATALOAD 000053f9: SWAP3 000053fa: POP 000053fb: PUSH1 0x20 000053fd: DUP5 000053fe: ADD 000053ff: CALLDATALOAD 00005400: PUSH2 0x5408 00005403: DUP2 00005404: PUSH2 0x4ea4 00005407: JUMP 00005408: JUMPDEST 00005409: SWAP2 0000540a: POP 0000540b: PUSH1 0x40 0000540d: DUP5 0000540e: ADD 0000540f: CALLDATALOAD 00005410: PUSH2 0x511a 00005413: DUP2 00005414: PUSH2 0x4ea4 00005417: JUMP 00005418: JUMPDEST 00005419: PUSH1 0x00 0000541b: PUSH1 0x20 0000541d: DUP3 0000541e: DUP5 0000541f: SUB 00005420: SLT 00005421: ISZERO 00005422: PUSH2 0x542a 00005425: JUMPI 00005426: PUSH1 0x00 00005428: DUP1 00005429: REVERT 0000542a: JUMPDEST 0000542b: DUP2 0000542c: CALLDATALOAD 0000542d: PUSH1 0x01 0000542f: PUSH1 0x01 00005431: PUSH1 0x40 00005433: SHL 00005434: SUB 00005435: DUP2 00005436: AND 00005437: DUP2 00005438: EQ 00005439: PUSH2 0x3a32 0000543c: JUMPI 0000543d: PUSH1 0x00 0000543f: DUP1 00005440: REVERT 00005441: JUMPDEST 00005442: PUSH1 0x00 00005444: DUP1 00005445: PUSH1 0x00 00005447: PUSH1 0x60 00005449: DUP5 0000544a: DUP7 0000544b: SUB 0000544c: SLT 0000544d: ISZERO 0000544e: PUSH2 0x5456 00005451: JUMPI 00005452: PUSH1 0x00 00005454: DUP1 00005455: REVERT 00005456: JUMPDEST 00005457: DUP4 00005458: CALLDATALOAD 00005459: PUSH2 0x5461 0000545c: DUP2 0000545d: PUSH2 0x5099 00005460: JUMP 00005461: JUMPDEST 00005462: SWAP3 00005463: POP 00005464: PUSH1 0x20 00005466: DUP5 00005467: ADD 00005468: CALLDATALOAD 00005469: PUSH2 0xffff 0000546c: DUP2 0000546d: AND 0000546e: DUP2 0000546f: EQ 00005470: PUSH2 0x5408 00005473: JUMPI 00005474: PUSH1 0x00 00005476: DUP1 00005477: REVERT 00005478: JUMPDEST 00005479: PUSH1 0xff 0000547b: DUP2 0000547c: AND 0000547d: DUP2 0000547e: EQ 0000547f: PUSH2 0x4dd8 00005482: JUMPI 00005483: PUSH1 0x00 00005485: DUP1 00005486: REVERT 00005487: JUMPDEST 00005488: PUSH1 0x00 0000548a: DUP1 0000548b: PUSH1 0x00 0000548d: DUP1 0000548e: PUSH1 0x00 00005490: DUP1 00005491: PUSH1 0x00 00005493: PUSH1 0xe0 00005495: DUP9 00005496: DUP11 00005497: SUB 00005498: SLT 00005499: ISZERO 0000549a: PUSH2 0x54a2 0000549d: JUMPI 0000549e: PUSH1 0x00 000054a0: DUP1 000054a1: REVERT 000054a2: JUMPDEST 000054a3: DUP8 000054a4: CALLDATALOAD 000054a5: PUSH2 0x54ad 000054a8: DUP2 000054a9: PUSH2 0x4ea4 000054ac: JUMP 000054ad: JUMPDEST 000054ae: SWAP7 000054af: POP 000054b0: PUSH1 0x20 000054b2: DUP9 000054b3: ADD 000054b4: CALLDATALOAD 000054b5: PUSH2 0x54bd 000054b8: DUP2 000054b9: PUSH2 0x4ea4 000054bc: JUMP 000054bd: JUMPDEST 000054be: SWAP6 000054bf: POP 000054c0: PUSH1 0x40 000054c2: DUP9 000054c3: ADD 000054c4: CALLDATALOAD 000054c5: SWAP5 000054c6: POP 000054c7: PUSH1 0x60 000054c9: DUP9 000054ca: ADD 000054cb: CALLDATALOAD 000054cc: SWAP4 000054cd: POP 000054ce: PUSH1 0x80 000054d0: DUP9 000054d1: ADD 000054d2: CALLDATALOAD 000054d3: PUSH2 0x54db 000054d6: DUP2 000054d7: PUSH2 0x5478 000054da: JUMP 000054db: JUMPDEST 000054dc: SWAP7 000054dd: SWAP10 000054de: SWAP6 000054df: SWAP9 000054e0: POP 000054e1: SWAP4 000054e2: SWAP7 000054e3: SWAP3 000054e4: SWAP6 000054e5: SWAP5 000054e6: PUSH1 0xa0 000054e8: DUP5 000054e9: ADD 000054ea: CALLDATALOAD 000054eb: SWAP5 000054ec: POP 000054ed: PUSH1 0xc0 000054ef: SWAP1 000054f0: SWAP4 000054f1: ADD 000054f2: CALLDATALOAD 000054f3: SWAP3 000054f4: SWAP2 000054f5: POP 000054f6: POP 000054f7: JUMP 000054f8: JUMPDEST 000054f9: PUSH1 0x00 000054fb: DUP1 000054fc: PUSH1 0x40 000054fe: DUP4 000054ff: DUP6 00005500: SUB 00005501: SLT 00005502: ISZERO 00005503: PUSH2 0x550b 00005506: JUMPI 00005507: PUSH1 0x00 00005509: DUP1 0000550a: REVERT 0000550b: JUMPDEST 0000550c: DUP3 0000550d: CALLDATALOAD 0000550e: PUSH2 0x5516 00005511: DUP2 00005512: PUSH2 0x4ea4 00005515: JUMP 00005516: JUMPDEST 00005517: SWAP2 00005518: POP 00005519: PUSH1 0x20 0000551b: DUP4 0000551c: ADD 0000551d: CALLDATALOAD 0000551e: PUSH2 0x50d3 00005521: DUP2 00005522: PUSH2 0x4ea4 00005525: JUMP 00005526: JUMPDEST 00005527: PUSH1 0x00 00005529: DUP1 0000552a: PUSH1 0x00 0000552c: DUP1 0000552d: PUSH1 0x00 0000552f: DUP1 00005530: PUSH1 0x00 00005532: DUP1 00005533: PUSH1 0x80 00005535: DUP10 00005536: DUP12 00005537: SUB 00005538: SLT 00005539: ISZERO 0000553a: PUSH2 0x5542 0000553d: JUMPI 0000553e: PUSH1 0x00 00005540: DUP1 00005541: REVERT 00005542: JUMPDEST 00005543: DUP9 00005544: CALLDATALOAD 00005545: PUSH1 0x01 00005547: PUSH1 0x01 00005549: PUSH1 0x40 0000554b: SHL 0000554c: SUB 0000554d: DUP1 0000554e: DUP3 0000554f: GT 00005550: ISZERO 00005551: PUSH2 0x5559 00005554: JUMPI 00005555: PUSH1 0x00 00005557: DUP1 00005558: REVERT 00005559: JUMPDEST 0000555a: PUSH2 0x5565 0000555d: DUP13 0000555e: DUP4 0000555f: DUP14 00005560: ADD 00005561: PUSH2 0x516f 00005564: JUMP 00005565: JUMPDEST 00005566: SWAP1 00005567: SWAP11 00005568: POP 00005569: SWAP9 0000556a: POP 0000556b: PUSH1 0x20 0000556d: DUP12 0000556e: ADD 0000556f: CALLDATALOAD 00005570: SWAP2 00005571: POP 00005572: DUP1 00005573: DUP3 00005574: GT 00005575: ISZERO 00005576: PUSH2 0x557e 00005579: JUMPI 0000557a: PUSH1 0x00 0000557c: DUP1 0000557d: REVERT 0000557e: JUMPDEST 0000557f: PUSH2 0x558a 00005582: DUP13 00005583: DUP4 00005584: DUP14 00005585: ADD 00005586: PUSH2 0x516f 00005589: JUMP 0000558a: JUMPDEST 0000558b: SWAP1 0000558c: SWAP9 0000558d: POP 0000558e: SWAP7 0000558f: POP 00005590: PUSH1 0x40 00005592: DUP12 00005593: ADD 00005594: CALLDATALOAD 00005595: SWAP2 00005596: POP 00005597: DUP1 00005598: DUP3 00005599: GT 0000559a: ISZERO 0000559b: PUSH2 0x55a3 0000559e: JUMPI 0000559f: PUSH1 0x00 000055a1: DUP1 000055a2: REVERT 000055a3: JUMPDEST 000055a4: PUSH2 0x55af 000055a7: DUP13 000055a8: DUP4 000055a9: DUP14 000055aa: ADD 000055ab: PUSH2 0x516f 000055ae: JUMP 000055af: JUMPDEST 000055b0: SWAP1 000055b1: SWAP7 000055b2: POP 000055b3: SWAP5 000055b4: POP 000055b5: PUSH1 0x60 000055b7: DUP12 000055b8: ADD 000055b9: CALLDATALOAD 000055ba: SWAP2 000055bb: POP 000055bc: DUP1 000055bd: DUP3 000055be: GT 000055bf: ISZERO 000055c0: PUSH2 0x55c8 000055c3: JUMPI 000055c4: PUSH1 0x00 000055c6: DUP1 000055c7: REVERT 000055c8: JUMPDEST 000055c9: DUP2 000055ca: DUP12 000055cb: ADD 000055cc: SWAP2 000055cd: POP 000055ce: DUP12 000055cf: PUSH1 0x1f 000055d1: DUP4 000055d2: ADD 000055d3: SLT 000055d4: PUSH2 0x55dc 000055d7: JUMPI 000055d8: PUSH1 0x00 000055da: DUP1 000055db: REVERT 000055dc: JUMPDEST 000055dd: DUP2 000055de: CALLDATALOAD 000055df: DUP2 000055e0: DUP2 000055e1: GT 000055e2: ISZERO 000055e3: PUSH2 0x55eb 000055e6: JUMPI 000055e7: PUSH1 0x00 000055e9: DUP1 000055ea: REVERT 000055eb: JUMPDEST 000055ec: DUP13 000055ed: PUSH1 0x20 000055ef: DUP3 000055f0: DUP6 000055f1: ADD 000055f2: ADD 000055f3: GT 000055f4: ISZERO 000055f5: PUSH2 0x55fd 000055f8: JUMPI 000055f9: PUSH1 0x00 000055fb: DUP1 000055fc: REVERT 000055fd: JUMPDEST 000055fe: PUSH1 0x20 00005600: DUP4 00005601: ADD 00005602: SWAP5 00005603: POP 00005604: DUP1 00005605: SWAP4 00005606: POP 00005607: POP 00005608: POP 00005609: POP 0000560a: SWAP3 0000560b: SWAP6 0000560c: SWAP9 0000560d: POP 0000560e: SWAP3 0000560f: SWAP6 00005610: SWAP9 00005611: SWAP1 00005612: SWAP4 00005613: SWAP7 00005614: POP 00005615: JUMP 00005616: JUMPDEST 00005617: PUSH1 0x20 00005619: DUP1 0000561a: DUP3 0000561b: MSTORE 0000561c: PUSH1 0x0a 0000561e: SWAP1 0000561f: DUP3 00005620: ADD 00005621: MSTORE 00005622: PUSH10 0x5245454e5452414e4359 0000562d: PUSH1 0xb0 0000562f: SHL 00005630: PUSH1 0x40 00005632: DUP3 00005633: ADD 00005634: MSTORE 00005635: PUSH1 0x60 00005637: ADD 00005638: SWAP1 00005639: JUMP 0000563a: JUMPDEST 0000563b: PUSH1 0x01 0000563d: DUP2 0000563e: DUP2 0000563f: SHR 00005640: SWAP1 00005641: DUP3 00005642: AND 00005643: DUP1 00005644: PUSH2 0x564e 00005647: JUMPI 00005648: PUSH1 0x7f 0000564a: DUP3 0000564b: AND 0000564c: SWAP2 0000564d: POP 0000564e: JUMPDEST 0000564f: PUSH1 0x20 00005651: DUP3 00005652: LT 00005653: DUP2 00005654: SUB 00005655: PUSH2 0x566e 00005658: JUMPI 00005659: PUSH4 0x4e487b71 0000565e: PUSH1 0xe0 00005660: SHL 00005661: PUSH1 0x00 00005663: MSTORE 00005664: PUSH1 0x22 00005666: PUSH1 0x04 00005668: MSTORE 00005669: PUSH1 0x24 0000566b: PUSH1 0x00 0000566d: REVERT 0000566e: JUMPDEST 0000566f: POP 00005670: SWAP2 00005671: SWAP1 00005672: POP 00005673: JUMP 00005674: JUMPDEST 00005675: PUSH1 0x20 00005677: DUP1 00005678: DUP3 00005679: MSTORE 0000567a: PUSH1 0x0c 0000567c: SWAP1 0000567d: DUP3 0000567e: ADD 0000567f: MSTORE 00005680: PUSH12 0x15539055551213d492569151 0000568d: PUSH1 0xa2 0000568f: SHL 00005690: PUSH1 0x40 00005692: DUP3 00005693: ADD 00005694: MSTORE 00005695: PUSH1 0x60 00005697: ADD 00005698: SWAP1 00005699: JUMP 0000569a: JUMPDEST 0000569b: PUSH4 0x4e487b71 000056a0: PUSH1 0xe0 000056a2: SHL 000056a3: PUSH1 0x00 000056a5: MSTORE 000056a6: PUSH1 0x11 000056a8: PUSH1 0x04 000056aa: MSTORE 000056ab: PUSH1 0x24 000056ad: PUSH1 0x00 000056af: REVERT 000056b0: JUMPDEST 000056b1: DUP2 000056b2: DUP2 000056b3: SUB 000056b4: DUP2 000056b5: DUP2 000056b6: GT 000056b7: ISZERO 000056b8: PUSH2 0x0ef4 000056bb: JUMPI 000056bc: PUSH2 0x0ef4 000056bf: PUSH2 0x569a 000056c2: JUMP 000056c3: JUMPDEST 000056c4: PUSH4 0x4e487b71 000056c9: PUSH1 0xe0 000056cb: SHL 000056cc: PUSH1 0x00 000056ce: MSTORE 000056cf: PUSH1 0x32 000056d1: PUSH1 0x04 000056d3: MSTORE 000056d4: PUSH1 0x24 000056d6: PUSH1 0x00 000056d8: REVERT 000056d9: JUMPDEST 000056da: DUP1 000056db: DUP3 000056dc: ADD 000056dd: DUP1 000056de: DUP3 000056df: GT 000056e0: ISZERO 000056e1: PUSH2 0x0ef4 000056e4: JUMPI 000056e5: PUSH2 0x0ef4 000056e8: PUSH2 0x569a 000056eb: JUMP 000056ec: JUMPDEST 000056ed: PUSH1 0x00 000056ef: PUSH1 0x01 000056f1: PUSH1 0x01 000056f3: PUSH1 0x40 000056f5: SHL 000056f6: SUB 000056f7: DUP3 000056f8: GT 000056f9: ISZERO 000056fa: PUSH2 0x5705 000056fd: JUMPI 000056fe: PUSH2 0x5705 00005701: PUSH2 0x4ee5 00005704: JUMP 00005705: JUMPDEST 00005706: POP 00005707: PUSH1 0x05 00005709: SHL 0000570a: PUSH1 0x20 0000570c: ADD 0000570d: SWAP1 0000570e: JUMP 0000570f: JUMPDEST 00005710: PUSH1 0x00 00005712: PUSH2 0x571d 00005715: PUSH2 0x4f99 00005718: DUP5 00005719: PUSH2 0x56ec 0000571c: JUMP 0000571d: JUMPDEST 0000571e: DUP4 0000571f: DUP2 00005720: MSTORE 00005721: SWAP1 00005722: POP 00005723: PUSH1 0x20 00005725: DUP1 00005726: DUP3 00005727: ADD 00005728: SWAP1 00005729: PUSH1 0x05 0000572b: DUP6 0000572c: SWAP1 0000572d: SHL 0000572e: DUP5 0000572f: ADD 00005730: DUP7 00005731: DUP2 00005732: GT 00005733: ISZERO 00005734: PUSH2 0x573c 00005737: JUMPI 00005738: PUSH1 0x00 0000573a: DUP1 0000573b: REVERT 0000573c: JUMPDEST 0000573d: DUP5 0000573e: JUMPDEST 0000573f: DUP2 00005740: DUP2 00005741: LT 00005742: ISZERO 00005743: PUSH2 0x5825 00005746: JUMPI 00005747: PUSH1 0x01 00005749: PUSH1 0x01 0000574b: PUSH1 0x40 0000574d: SHL 0000574e: SUB 0000574f: DUP1 00005750: DUP3 00005751: CALLDATALOAD 00005752: GT 00005753: ISZERO 00005754: PUSH2 0x575c 00005757: JUMPI 00005758: PUSH1 0x00 0000575a: DUP1 0000575b: REVERT 0000575c: JUMPDEST 0000575d: DUP2 0000575e: CALLDATALOAD 0000575f: DUP8 00005760: ADD 00005761: PUSH1 0x40 00005763: DUP2 00005764: DUP12 00005765: SUB 00005766: SLT 00005767: ISZERO 00005768: PUSH2 0x5770 0000576b: JUMPI 0000576c: PUSH1 0x00 0000576e: DUP1 0000576f: REVERT 00005770: JUMPDEST 00005771: PUSH2 0x5778 00005774: PUSH2 0x4efb 00005777: JUMP 00005778: JUMPDEST 00005779: PUSH2 0x5782 0000577c: DUP3 0000577d: CALLDATALOAD 0000577e: PUSH2 0x4ea4 00005781: JUMP 00005782: JUMPDEST 00005783: DUP2 00005784: CALLDATALOAD 00005785: DUP2 00005786: MSTORE 00005787: DUP6 00005788: DUP3 00005789: ADD 0000578a: CALLDATALOAD 0000578b: DUP4 0000578c: DUP2 0000578d: GT 0000578e: ISZERO 0000578f: PUSH2 0x5797 00005792: JUMPI 00005793: PUSH1 0x00 00005795: DUP1 00005796: REVERT 00005797: JUMPDEST 00005798: DUP1 00005799: DUP4 0000579a: ADD 0000579b: SWAP3 0000579c: POP 0000579d: POP 0000579e: DUP11 0000579f: PUSH1 0x1f 000057a1: DUP4 000057a2: ADD 000057a3: SLT 000057a4: PUSH2 0x57ac 000057a7: JUMPI 000057a8: PUSH1 0x00 000057aa: DUP1 000057ab: REVERT 000057ac: JUMPDEST 000057ad: DUP2 000057ae: CALLDATALOAD 000057af: PUSH2 0x57ba 000057b2: PUSH2 0x4f99 000057b5: DUP3 000057b6: PUSH2 0x56ec 000057b9: JUMP 000057ba: JUMPDEST 000057bb: DUP2 000057bc: DUP2 000057bd: MSTORE 000057be: PUSH1 0x05 000057c0: SWAP2 000057c1: SWAP1 000057c2: SWAP2 000057c3: SHL 000057c4: DUP4 000057c5: ADD 000057c6: DUP8 000057c7: ADD 000057c8: SWAP1 000057c9: DUP8 000057ca: DUP2 000057cb: ADD 000057cc: SWAP1 000057cd: DUP14 000057ce: DUP4 000057cf: GT 000057d0: ISZERO 000057d1: PUSH2 0x57d9 000057d4: JUMPI 000057d5: PUSH1 0x00 000057d7: DUP1 000057d8: REVERT 000057d9: JUMPDEST 000057da: DUP9 000057db: DUP6 000057dc: ADD 000057dd: JUMPDEST 000057de: DUP4 000057df: DUP2 000057e0: LT 000057e1: ISZERO 000057e2: PUSH2 0x580f 000057e5: JUMPI 000057e6: DUP7 000057e7: DUP2 000057e8: CALLDATALOAD 000057e9: GT 000057ea: ISZERO 000057eb: PUSH2 0x57f3 000057ee: JUMPI 000057ef: PUSH1 0x00 000057f1: DUP1 000057f2: REVERT 000057f3: JUMPDEST 000057f4: PUSH2 0x5802 000057f7: DUP16 000057f8: DUP12 000057f9: DUP4 000057fa: CALLDATALOAD 000057fb: DUP10 000057fc: ADD 000057fd: ADD 000057fe: PUSH2 0x4f7a 00005801: JUMP 00005802: JUMPDEST 00005803: DUP4 00005804: MSTORE 00005805: SWAP2 00005806: DUP10 00005807: ADD 00005808: SWAP2 00005809: DUP10 0000580a: ADD 0000580b: PUSH2 0x57dd 0000580e: JUMP 0000580f: JUMPDEST 00005810: POP 00005811: DUP4 00005812: DUP10 00005813: ADD 00005814: MSTORE 00005815: POP 00005816: POP 00005817: DUP7 00005818: MSTORE 00005819: POP 0000581a: POP 0000581b: SWAP3 0000581c: DUP3 0000581d: ADD 0000581e: SWAP3 0000581f: DUP3 00005820: ADD 00005821: PUSH2 0x573e 00005824: JUMP 00005825: JUMPDEST 00005826: POP 00005827: POP 00005828: POP 00005829: POP 0000582a: SWAP4 0000582b: SWAP3 0000582c: POP 0000582d: POP 0000582e: POP 0000582f: JUMP 00005830: JUMPDEST 00005831: PUSH1 0x00 00005833: PUSH2 0x3a32 00005836: CALLDATASIZE 00005837: DUP5 00005838: DUP5 00005839: PUSH2 0x570f 0000583c: JUMP 0000583d: JUMPDEST 0000583e: PUSH1 0x00 00005840: PUSH1 0x01 00005842: DUP3 00005843: ADD 00005844: PUSH2 0x584f 00005847: JUMPI 00005848: PUSH2 0x584f 0000584b: PUSH2 0x569a 0000584e: JUMP 0000584f: JUMPDEST 00005850: POP 00005851: PUSH1 0x01 00005853: ADD 00005854: SWAP1 00005855: JUMP 00005856: JUMPDEST 00005857: PUSH1 0x00 00005859: DUP1 0000585a: PUSH1 0x00 0000585c: PUSH1 0x60 0000585e: DUP5 0000585f: DUP7 00005860: SUB 00005861: SLT 00005862: ISZERO 00005863: PUSH2 0x586b 00005866: JUMPI 00005867: PUSH1 0x00 00005869: DUP1 0000586a: REVERT 0000586b: JUMPDEST 0000586c: DUP4 0000586d: MLOAD 0000586e: PUSH2 0x5876 00005871: DUP2 00005872: PUSH2 0x4ea4 00005875: JUMP 00005876: JUMPDEST 00005877: PUSH1 0x20 00005879: DUP6 0000587a: ADD 0000587b: MLOAD 0000587c: SWAP1 0000587d: SWAP4 0000587e: POP 0000587f: PUSH2 0x5887 00005882: DUP2 00005883: PUSH2 0x5099 00005886: JUMP 00005887: JUMPDEST 00005888: PUSH1 0x40 0000588a: DUP6 0000588b: ADD 0000588c: MLOAD 0000588d: SWAP1 0000588e: SWAP3 0000588f: POP 00005890: PUSH1 0x01 00005892: PUSH1 0x01 00005894: PUSH1 0x40 00005896: SHL 00005897: SUB 00005898: DUP2 00005899: GT 0000589a: ISZERO 0000589b: PUSH2 0x58a3 0000589e: JUMPI 0000589f: PUSH1 0x00 000058a1: DUP1 000058a2: REVERT 000058a3: JUMPDEST 000058a4: DUP5 000058a5: ADD 000058a6: PUSH1 0x1f 000058a8: DUP2 000058a9: ADD 000058aa: DUP7 000058ab: SGT 000058ac: PUSH2 0x58b4 000058af: JUMPI 000058b0: PUSH1 0x00 000058b2: DUP1 000058b3: REVERT 000058b4: JUMPDEST 000058b5: DUP1 000058b6: MLOAD 000058b7: PUSH2 0x58c2 000058ba: PUSH2 0x4f99 000058bd: DUP3 000058be: PUSH2 0x4f53 000058c1: JUMP 000058c2: JUMPDEST 000058c3: DUP2 000058c4: DUP2 000058c5: MSTORE 000058c6: DUP8 000058c7: PUSH1 0x20 000058c9: DUP4 000058ca: DUP6 000058cb: ADD 000058cc: ADD 000058cd: GT 000058ce: ISZERO 000058cf: PUSH2 0x58d7 000058d2: JUMPI 000058d3: PUSH1 0x00 000058d5: DUP1 000058d6: REVERT 000058d7: JUMPDEST 000058d8: PUSH2 0x58e8 000058db: DUP3 000058dc: PUSH1 0x20 000058de: DUP4 000058df: ADD 000058e0: PUSH1 0x20 000058e2: DUP7 000058e3: ADD 000058e4: PUSH2 0x4df4 000058e7: JUMP 000058e8: JUMPDEST 000058e9: DUP1 000058ea: SWAP4 000058eb: POP 000058ec: POP 000058ed: POP 000058ee: POP 000058ef: SWAP3 000058f0: POP 000058f1: SWAP3 000058f2: POP 000058f3: SWAP3 000058f4: JUMP 000058f5: JUMPDEST 000058f6: PUSH1 0x1f 000058f8: DUP3 000058f9: GT 000058fa: ISZERO 000058fb: PUSH2 0x281c 000058fe: JUMPI 000058ff: PUSH1 0x00 00005901: DUP2 00005902: DUP2 00005903: MSTORE 00005904: PUSH1 0x20 00005906: DUP2 00005907: KECCAK256 00005908: PUSH1 0x1f 0000590a: DUP6 0000590b: ADD 0000590c: PUSH1 0x05 0000590e: SHR 0000590f: DUP2 00005910: ADD 00005911: PUSH1 0x20 00005913: DUP7 00005914: LT 00005915: ISZERO 00005916: PUSH2 0x591c 00005919: JUMPI 0000591a: POP 0000591b: DUP1 0000591c: JUMPDEST 0000591d: PUSH1 0x1f 0000591f: DUP6 00005920: ADD 00005921: PUSH1 0x05 00005923: SHR 00005924: DUP3 00005925: ADD 00005926: SWAP2 00005927: POP 00005928: JUMPDEST 00005929: DUP2 0000592a: DUP2 0000592b: LT 0000592c: ISZERO 0000592d: PUSH2 0x2c82 00005930: JUMPI 00005931: DUP3 00005932: DUP2 00005933: SSTORE 00005934: PUSH1 0x01 00005936: ADD 00005937: PUSH2 0x5928 0000593a: JUMP 0000593b: JUMPDEST 0000593c: DUP2 0000593d: MLOAD 0000593e: PUSH1 0x01 00005940: PUSH1 0x01 00005942: PUSH1 0x40 00005944: SHL 00005945: SUB 00005946: DUP2 00005947: GT 00005948: ISZERO 00005949: PUSH2 0x5954 0000594c: JUMPI 0000594d: PUSH2 0x5954 00005950: PUSH2 0x4ee5 00005953: JUMP 00005954: JUMPDEST 00005955: PUSH2 0x5968 00005958: DUP2 00005959: PUSH2 0x5962 0000595c: DUP5 0000595d: SLOAD 0000595e: PUSH2 0x563a 00005961: JUMP 00005962: JUMPDEST 00005963: DUP5 00005964: PUSH2 0x58f5 00005967: JUMP 00005968: JUMPDEST 00005969: PUSH1 0x20 0000596b: DUP1 0000596c: PUSH1 0x1f 0000596e: DUP4 0000596f: GT 00005970: PUSH1 0x01 00005972: DUP2 00005973: EQ 00005974: PUSH2 0x599d 00005977: JUMPI 00005978: PUSH1 0x00 0000597a: DUP5 0000597b: ISZERO 0000597c: PUSH2 0x5985 0000597f: JUMPI 00005980: POP 00005981: DUP6 00005982: DUP4 00005983: ADD 00005984: MLOAD 00005985: JUMPDEST 00005986: PUSH1 0x00 00005988: NOT 00005989: PUSH1 0x03 0000598b: DUP7 0000598c: SWAP1 0000598d: SHL 0000598e: SHR 0000598f: NOT 00005990: AND 00005991: PUSH1 0x01 00005993: DUP6 00005994: SWAP1 00005995: SHL 00005996: OR 00005997: DUP6 00005998: SSTORE 00005999: PUSH2 0x2c82 0000599c: JUMP 0000599d: JUMPDEST 0000599e: PUSH1 0x00 000059a0: DUP6 000059a1: DUP2 000059a2: MSTORE 000059a3: PUSH1 0x20 000059a5: DUP2 000059a6: KECCAK256 000059a7: PUSH1 0x1f 000059a9: NOT 000059aa: DUP7 000059ab: AND 000059ac: SWAP2 000059ad: JUMPDEST 000059ae: DUP3 000059af: DUP2 000059b0: LT 000059b1: ISZERO 000059b2: PUSH2 0x59cc 000059b5: JUMPI 000059b6: DUP9 000059b7: DUP7 000059b8: ADD 000059b9: MLOAD 000059ba: DUP3 000059bb: SSTORE 000059bc: SWAP5 000059bd: DUP5 000059be: ADD 000059bf: SWAP5 000059c0: PUSH1 0x01 000059c2: SWAP1 000059c3: SWAP2 000059c4: ADD 000059c5: SWAP1 000059c6: DUP5 000059c7: ADD 000059c8: PUSH2 0x59ad 000059cb: JUMP 000059cc: JUMPDEST 000059cd: POP 000059ce: DUP6 000059cf: DUP3 000059d0: LT 000059d1: ISZERO 000059d2: PUSH2 0x59ea 000059d5: JUMPI 000059d6: DUP8 000059d7: DUP6 000059d8: ADD 000059d9: MLOAD 000059da: PUSH1 0x00 000059dc: NOT 000059dd: PUSH1 0x03 000059df: DUP9 000059e0: SWAP1 000059e1: SHL 000059e2: PUSH1 0xf8 000059e4: AND 000059e5: SHR 000059e6: NOT 000059e7: AND 000059e8: DUP2 000059e9: SSTORE 000059ea: JUMPDEST 000059eb: POP 000059ec: POP 000059ed: POP 000059ee: POP 000059ef: POP 000059f0: PUSH1 0x01 000059f2: SWAP1 000059f3: DUP2 000059f4: SHL 000059f5: ADD 000059f6: SWAP1 000059f7: SSTORE 000059f8: POP 000059f9: JUMP 000059fa: JUMPDEST 000059fb: PUSH1 0x00 000059fd: PUSH1 0x20 000059ff: DUP3 00005a00: DUP5 00005a01: SUB 00005a02: SLT 00005a03: ISZERO 00005a04: PUSH2 0x5a0c 00005a07: JUMPI 00005a08: PUSH1 0x00 00005a0a: DUP1 00005a0b: REVERT 00005a0c: JUMPDEST 00005a0d: DUP2 00005a0e: MLOAD 00005a0f: PUSH2 0x3a32 00005a12: DUP2 00005a13: PUSH2 0x5099 00005a16: JUMP 00005a17: JUMPDEST 00005a18: PUSH1 0x00 00005a1a: DUP1 00005a1b: DUP4 00005a1c: CALLDATALOAD 00005a1d: PUSH1 0x1e 00005a1f: NOT 00005a20: DUP5 00005a21: CALLDATASIZE 00005a22: SUB 00005a23: ADD 00005a24: DUP2 00005a25: SLT 00005a26: PUSH2 0x5a2e 00005a29: JUMPI 00005a2a: PUSH1 0x00 00005a2c: DUP1 00005a2d: REVERT 00005a2e: JUMPDEST 00005a2f: DUP4 00005a30: ADD 00005a31: DUP1 00005a32: CALLDATALOAD 00005a33: SWAP2 00005a34: POP 00005a35: PUSH1 0x01 00005a37: PUSH1 0x01 00005a39: PUSH1 0x40 00005a3b: SHL 00005a3c: SUB 00005a3d: DUP3 00005a3e: GT 00005a3f: ISZERO 00005a40: PUSH2 0x5a48 00005a43: JUMPI 00005a44: PUSH1 0x00 00005a46: DUP1 00005a47: REVERT 00005a48: JUMPDEST 00005a49: PUSH1 0x20 00005a4b: ADD 00005a4c: SWAP2 00005a4d: POP 00005a4e: CALLDATASIZE 00005a4f: DUP2 00005a50: SWAP1 00005a51: SUB 00005a52: DUP3 00005a53: SGT 00005a54: ISZERO 00005a55: PUSH2 0x51b3 00005a58: JUMPI 00005a59: PUSH1 0x00 00005a5b: DUP1 00005a5c: REVERT 00005a5d: JUMPDEST 00005a5e: PUSH2 0xffff 00005a61: DUP3 00005a62: DUP2 00005a63: AND 00005a64: DUP3 00005a65: DUP3 00005a66: AND 00005a67: SUB 00005a68: SWAP1 00005a69: DUP1 00005a6a: DUP3 00005a6b: GT 00005a6c: ISZERO 00005a6d: PUSH2 0x5a78 00005a70: JUMPI 00005a71: PUSH2 0x5a78 00005a74: PUSH2 0x569a 00005a77: JUMP 00005a78: JUMPDEST 00005a79: POP 00005a7a: SWAP3 00005a7b: SWAP2 00005a7c: POP 00005a7d: POP 00005a7e: JUMP 00005a7f: JUMPDEST 00005a80: PUSH2 0xffff 00005a83: DUP2 00005a84: DUP2 00005a85: AND 00005a86: DUP4 00005a87: DUP3 00005a88: AND 00005a89: ADD 00005a8a: SWAP1 00005a8b: DUP1 00005a8c: DUP3 00005a8d: GT 00005a8e: ISZERO 00005a8f: PUSH2 0x5a78 00005a92: JUMPI 00005a93: PUSH2 0x5a78 00005a96: PUSH2 0x569a 00005a99: JUMP 00005a9a: JUMPDEST 00005a9b: PUSH1 0x00 00005a9d: PUSH1 0x20 00005a9f: DUP3 00005aa0: DUP5 00005aa1: SUB 00005aa2: SLT 00005aa3: ISZERO 00005aa4: PUSH2 0x5aac 00005aa7: JUMPI 00005aa8: PUSH1 0x00 00005aaa: DUP1 00005aab: REVERT 00005aac: JUMPDEST 00005aad: DUP2 00005aae: CALLDATALOAD 00005aaf: PUSH1 0x01 00005ab1: PUSH1 0x01 00005ab3: PUSH1 0x40 00005ab5: SHL 00005ab6: SUB 00005ab7: DUP2 00005ab8: GT 00005ab9: ISZERO 00005aba: PUSH2 0x5ac2 00005abd: JUMPI 00005abe: PUSH1 0x00 00005ac0: DUP1 00005ac1: REVERT 00005ac2: JUMPDEST 00005ac3: DUP3 00005ac4: ADD 00005ac5: PUSH1 0x1f 00005ac7: DUP2 00005ac8: ADD 00005ac9: DUP5 00005aca: SGT 00005acb: PUSH2 0x5ad3 00005ace: JUMPI 00005acf: PUSH1 0x00 00005ad1: DUP1 00005ad2: REVERT 00005ad3: JUMPDEST 00005ad4: PUSH2 0x0e85 00005ad7: DUP5 00005ad8: DUP3 00005ad9: CALLDATALOAD 00005ada: PUSH1 0x20 00005adc: DUP5 00005add: ADD 00005ade: PUSH2 0x570f 00005ae1: JUMP 00005ae2: JUMPDEST 00005ae3: PUSH1 0x00 00005ae5: PUSH1 0x20 00005ae7: DUP3 00005ae8: DUP5 00005ae9: SUB 00005aea: SLT 00005aeb: ISZERO 00005aec: PUSH2 0x5af4 00005aef: JUMPI 00005af0: PUSH1 0x00 00005af2: DUP1 00005af3: REVERT 00005af4: JUMPDEST 00005af5: DUP2 00005af6: MLOAD 00005af7: PUSH2 0x3a32 00005afa: DUP2 00005afb: PUSH2 0x5478 00005afe: JUMP 00005aff: JUMPDEST 00005b00: PUSH1 0x00 00005b02: PUSH1 0x20 00005b04: DUP3 00005b05: DUP5 00005b06: SUB 00005b07: SLT 00005b08: ISZERO 00005b09: PUSH2 0x5b11 00005b0c: JUMPI 00005b0d: PUSH1 0x00 00005b0f: DUP1 00005b10: REVERT 00005b11: JUMPDEST 00005b12: DUP2 00005b13: MLOAD 00005b14: PUSH2 0x3a32 00005b17: DUP2 00005b18: PUSH2 0x4ea4 00005b1b: JUMP 00005b1c: JUMPDEST 00005b1d: PUSH1 0x60 00005b1f: DUP2 00005b20: MSTORE 00005b21: PUSH1 0x00 00005b23: PUSH2 0x5b2f 00005b26: PUSH1 0x60 00005b28: DUP4 00005b29: ADD 00005b2a: DUP7 00005b2b: PUSH2 0x5292 00005b2e: JUMP 00005b2f: JUMPDEST 00005b30: DUP3 00005b31: DUP2 00005b32: SUB 00005b33: PUSH1 0x20 00005b35: DUP5 00005b36: ADD 00005b37: MSTORE 00005b38: PUSH2 0x5b41 00005b3b: DUP2 00005b3c: DUP7 00005b3d: PUSH2 0x52d6 00005b40: JUMP 00005b41: JUMPDEST 00005b42: SWAP2 00005b43: POP 00005b44: POP 00005b45: PUSH1 0x01 00005b47: DUP1 00005b48: PUSH1 0xa0 00005b4a: SHL 00005b4b: SUB 00005b4c: DUP4 00005b4d: AND 00005b4e: PUSH1 0x40 00005b50: DUP4 00005b51: ADD 00005b52: MSTORE 00005b53: SWAP5 00005b54: SWAP4 00005b55: POP 00005b56: POP 00005b57: POP 00005b58: POP 00005b59: JUMP 00005b5a: JUMPDEST 00005b5b: PUSH1 0x00 00005b5d: PUSH1 0x20 00005b5f: DUP3 00005b60: DUP5 00005b61: SUB 00005b62: SLT 00005b63: ISZERO 00005b64: PUSH2 0x5b6c 00005b67: JUMPI 00005b68: PUSH1 0x00 00005b6a: DUP1 00005b6b: REVERT 00005b6c: JUMPDEST 00005b6d: POP 00005b6e: MLOAD 00005b6f: SWAP2 00005b70: SWAP1 00005b71: POP 00005b72: JUMP 00005b73: JUMPDEST 00005b74: PUSH1 0xa0 00005b76: DUP2 00005b77: MSTORE 00005b78: PUSH1 0x00 00005b7a: PUSH2 0x5b86 00005b7d: PUSH1 0xa0 00005b7f: DUP4 00005b80: ADD 00005b81: DUP9 00005b82: PUSH2 0x5292 00005b85: JUMP 00005b86: JUMPDEST 00005b87: DUP3 00005b88: DUP2 00005b89: SUB 00005b8a: PUSH1 0x20 00005b8c: DUP5 00005b8d: ADD 00005b8e: MSTORE 00005b8f: PUSH2 0x5b98 00005b92: DUP2 00005b93: DUP9 00005b94: PUSH2 0x52d6 00005b97: JUMP 00005b98: JUMPDEST 00005b99: SWAP1 00005b9a: POP 00005b9b: DUP3 00005b9c: DUP2 00005b9d: SUB 00005b9e: PUSH1 0x40 00005ba0: DUP5 00005ba1: ADD 00005ba2: MSTORE 00005ba3: PUSH2 0x5bac 00005ba6: DUP2 00005ba7: DUP8 00005ba8: PUSH2 0x5292 00005bab: JUMP 00005bac: JUMPDEST 00005bad: SWAP1 00005bae: POP 00005baf: DUP3 00005bb0: DUP2 00005bb1: SUB 00005bb2: PUSH1 0x60 00005bb4: DUP5 00005bb5: ADD 00005bb6: MSTORE 00005bb7: PUSH2 0x5bc0 00005bba: DUP2 00005bbb: DUP7 00005bbc: PUSH2 0x52d6 00005bbf: JUMP 00005bc0: JUMPDEST 00005bc1: SWAP2 00005bc2: POP 00005bc3: POP 00005bc4: PUSH1 0x01 00005bc6: DUP1 00005bc7: PUSH1 0xa0 00005bc9: SHL 00005bca: SUB 00005bcb: DUP4 00005bcc: AND 00005bcd: PUSH1 0x80 00005bcf: DUP4 00005bd0: ADD 00005bd1: MSTORE 00005bd2: SWAP7 00005bd3: SWAP6 00005bd4: POP 00005bd5: POP 00005bd6: POP 00005bd7: POP 00005bd8: POP 00005bd9: POP 00005bda: JUMP 00005bdb: JUMPDEST 00005bdc: PUSH1 0x00 00005bde: DUP2 00005bdf: SLOAD 00005be0: PUSH2 0x5be8 00005be3: DUP2 00005be4: PUSH2 0x563a 00005be7: JUMP 00005be8: JUMPDEST 00005be9: DUP1 00005bea: DUP6 00005beb: MSTORE 00005bec: PUSH1 0x20 00005bee: PUSH1 0x01 00005bf0: DUP4 00005bf1: DUP2 00005bf2: AND 00005bf3: DUP1 00005bf4: ISZERO 00005bf5: PUSH2 0x5c05 00005bf8: JUMPI 00005bf9: PUSH1 0x01 00005bfb: DUP2 00005bfc: EQ 00005bfd: PUSH2 0x5c1f 00005c00: JUMPI 00005c01: PUSH2 0x5c4d 00005c04: JUMP 00005c05: JUMPDEST 00005c06: PUSH1 0xff 00005c08: NOT 00005c09: DUP6 00005c0a: AND 00005c0b: DUP9 00005c0c: DUP5 00005c0d: ADD 00005c0e: MSTORE 00005c0f: DUP4 00005c10: ISZERO 00005c11: ISZERO 00005c12: PUSH1 0x05 00005c14: SHL 00005c15: DUP9 00005c16: ADD 00005c17: DUP4 00005c18: ADD 00005c19: SWAP6 00005c1a: POP 00005c1b: PUSH2 0x5c4d 00005c1e: JUMP 00005c1f: JUMPDEST 00005c20: DUP7 00005c21: PUSH1 0x00 00005c23: MSTORE 00005c24: DUP3 00005c25: PUSH1 0x00 00005c27: KECCAK256 00005c28: PUSH1 0x00 00005c2a: JUMPDEST 00005c2b: DUP6 00005c2c: DUP2 00005c2d: LT 00005c2e: ISZERO 00005c2f: PUSH2 0x5c45 00005c32: JUMPI 00005c33: DUP2 00005c34: SLOAD 00005c35: DUP11 00005c36: DUP3 00005c37: ADD 00005c38: DUP7 00005c39: ADD 00005c3a: MSTORE 00005c3b: SWAP1 00005c3c: DUP4 00005c3d: ADD 00005c3e: SWAP1 00005c3f: DUP5 00005c40: ADD 00005c41: PUSH2 0x5c2a 00005c44: JUMP 00005c45: JUMPDEST 00005c46: DUP10 00005c47: ADD 00005c48: DUP5 00005c49: ADD 00005c4a: SWAP7 00005c4b: POP 00005c4c: POP 00005c4d: JUMPDEST 00005c4e: POP 00005c4f: POP 00005c50: POP 00005c51: POP 00005c52: POP 00005c53: SWAP3 00005c54: SWAP2 00005c55: POP 00005c56: POP 00005c57: JUMP 00005c58: JUMPDEST 00005c59: PUSH1 0x20 00005c5b: DUP2 00005c5c: MSTORE 00005c5d: PUSH1 0x00 00005c5f: PUSH2 0x3a32 00005c62: PUSH1 0x20 00005c64: DUP4 00005c65: ADD 00005c66: DUP5 00005c67: PUSH2 0x5bdb 00005c6a: JUMP 00005c6b: JUMPDEST 00005c6c: PUSH1 0x00 00005c6e: DUP1 00005c6f: PUSH1 0x00 00005c71: PUSH1 0x60 00005c73: DUP5 00005c74: DUP7 00005c75: SUB 00005c76: SLT 00005c77: ISZERO 00005c78: PUSH2 0x5c80 00005c7b: JUMPI 00005c7c: PUSH1 0x00 00005c7e: DUP1 00005c7f: REVERT 00005c80: JUMPDEST 00005c81: DUP4 00005c82: MLOAD 00005c83: SWAP3 00005c84: POP 00005c85: PUSH1 0x20 00005c87: DUP5 00005c88: ADD 00005c89: MLOAD 00005c8a: SWAP2 00005c8b: POP 00005c8c: PUSH1 0x40 00005c8e: DUP5 00005c8f: ADD 00005c90: MLOAD 00005c91: PUSH2 0x511a 00005c94: DUP2 00005c95: PUSH2 0x5099 00005c98: JUMP 00005c99: JUMPDEST 00005c9a: PUSH1 0x01 00005c9c: DUP2 00005c9d: DUP2 00005c9e: JUMPDEST 00005c9f: DUP1 00005ca0: DUP6 00005ca1: GT 00005ca2: ISZERO 00005ca3: PUSH2 0x5cd4 00005ca6: JUMPI 00005ca7: DUP2 00005ca8: PUSH1 0x00 00005caa: NOT 00005cab: DIV 00005cac: DUP3 00005cad: GT 00005cae: ISZERO 00005caf: PUSH2 0x5cba 00005cb2: JUMPI 00005cb3: PUSH2 0x5cba 00005cb6: PUSH2 0x569a 00005cb9: JUMP 00005cba: JUMPDEST 00005cbb: DUP1 00005cbc: DUP6 00005cbd: AND 00005cbe: ISZERO 00005cbf: PUSH2 0x5cc7 00005cc2: JUMPI 00005cc3: SWAP2 00005cc4: DUP2 00005cc5: MUL 00005cc6: SWAP2 00005cc7: JUMPDEST 00005cc8: SWAP4 00005cc9: DUP5 00005cca: SHR 00005ccb: SWAP4 00005ccc: SWAP1 00005ccd: DUP1 00005cce: MUL 00005ccf: SWAP1 00005cd0: PUSH2 0x5c9e 00005cd3: JUMP 00005cd4: JUMPDEST 00005cd5: POP 00005cd6: SWAP3 00005cd7: POP 00005cd8: SWAP3 00005cd9: SWAP1 00005cda: POP 00005cdb: JUMP 00005cdc: JUMPDEST 00005cdd: PUSH1 0x00 00005cdf: DUP3 00005ce0: PUSH2 0x5ceb 00005ce3: JUMPI 00005ce4: POP 00005ce5: PUSH1 0x01 00005ce7: PUSH2 0x0ef4 00005cea: JUMP 00005ceb: JUMPDEST 00005cec: DUP2 00005ced: PUSH2 0x5cf8 00005cf0: JUMPI 00005cf1: POP 00005cf2: PUSH1 0x00 00005cf4: PUSH2 0x0ef4 00005cf7: JUMP 00005cf8: JUMPDEST 00005cf9: DUP2 00005cfa: PUSH1 0x01 00005cfc: DUP2 00005cfd: EQ 00005cfe: PUSH2 0x5d0e 00005d01: JUMPI 00005d02: PUSH1 0x02 00005d04: DUP2 00005d05: EQ 00005d06: PUSH2 0x5d18 00005d09: JUMPI 00005d0a: PUSH2 0x5d34 00005d0d: JUMP 00005d0e: JUMPDEST 00005d0f: PUSH1 0x01 00005d11: SWAP2 00005d12: POP 00005d13: POP 00005d14: PUSH2 0x0ef4 00005d17: JUMP 00005d18: JUMPDEST 00005d19: PUSH1 0xff 00005d1b: DUP5 00005d1c: GT 00005d1d: ISZERO 00005d1e: PUSH2 0x5d29 00005d21: JUMPI 00005d22: PUSH2 0x5d29 00005d25: PUSH2 0x569a 00005d28: JUMP 00005d29: JUMPDEST 00005d2a: POP 00005d2b: POP 00005d2c: PUSH1 0x01 00005d2e: DUP3 00005d2f: SHL 00005d30: PUSH2 0x0ef4 00005d33: JUMP 00005d34: JUMPDEST 00005d35: POP 00005d36: PUSH1 0x20 00005d38: DUP4 00005d39: LT 00005d3a: PUSH2 0x0133 00005d3d: DUP4 00005d3e: LT 00005d3f: AND 00005d40: PUSH1 0x4e 00005d42: DUP5 00005d43: LT 00005d44: PUSH1 0x0b 00005d46: DUP5 00005d47: LT 00005d48: AND 00005d49: OR 00005d4a: ISZERO 00005d4b: PUSH2 0x5d57 00005d4e: JUMPI 00005d4f: POP 00005d50: DUP2 00005d51: DUP2 00005d52: EXP 00005d53: PUSH2 0x0ef4 00005d56: JUMP 00005d57: JUMPDEST 00005d58: PUSH2 0x5d61 00005d5b: DUP4 00005d5c: DUP4 00005d5d: PUSH2 0x5c99 00005d60: JUMP 00005d61: JUMPDEST 00005d62: DUP1 00005d63: PUSH1 0x00 00005d65: NOT 00005d66: DIV 00005d67: DUP3 00005d68: GT 00005d69: ISZERO 00005d6a: PUSH2 0x5d75 00005d6d: JUMPI 00005d6e: PUSH2 0x5d75 00005d71: PUSH2 0x569a 00005d74: JUMP 00005d75: JUMPDEST 00005d76: MUL 00005d77: SWAP4 00005d78: SWAP3 00005d79: POP 00005d7a: POP 00005d7b: POP 00005d7c: JUMP 00005d7d: JUMPDEST 00005d7e: PUSH1 0x00 00005d80: PUSH2 0x3a32 00005d83: PUSH1 0xff 00005d85: DUP5 00005d86: AND 00005d87: DUP4 00005d88: PUSH2 0x5cdc 00005d8b: JUMP 00005d8c: JUMPDEST 00005d8d: PUSH1 0x00 00005d8f: DUP1 00005d90: DUP4 00005d91: SLOAD 00005d92: PUSH2 0x5d9a 00005d95: DUP2 00005d96: PUSH2 0x563a 00005d99: JUMP 00005d9a: JUMPDEST 00005d9b: PUSH1 0x01 00005d9d: DUP3 00005d9e: DUP2 00005d9f: AND 00005da0: DUP1 00005da1: ISZERO 00005da2: PUSH2 0x5db2 00005da5: JUMPI 00005da6: PUSH1 0x01 00005da8: DUP2 00005da9: EQ 00005daa: PUSH2 0x5dc7 00005dad: JUMPI 00005dae: PUSH2 0x5df6 00005db1: JUMP 00005db2: JUMPDEST 00005db3: PUSH1 0xff 00005db5: NOT 00005db6: DUP5 00005db7: AND 00005db8: DUP8 00005db9: MSTORE 00005dba: DUP3 00005dbb: ISZERO 00005dbc: ISZERO 00005dbd: DUP4 00005dbe: MUL 00005dbf: DUP8 00005dc0: ADD 00005dc1: SWAP5 00005dc2: POP 00005dc3: PUSH2 0x5df6 00005dc6: JUMP 00005dc7: JUMPDEST 00005dc8: DUP8 00005dc9: PUSH1 0x00 00005dcb: MSTORE 00005dcc: PUSH1 0x20 00005dce: DUP1 00005dcf: PUSH1 0x00 00005dd1: KECCAK256 00005dd2: PUSH1 0x00 00005dd4: JUMPDEST 00005dd5: DUP6 00005dd6: DUP2 00005dd7: LT 00005dd8: ISZERO 00005dd9: PUSH2 0x5ded 00005ddc: JUMPI 00005ddd: DUP2 00005dde: SLOAD 00005ddf: DUP11 00005de0: DUP3 00005de1: ADD 00005de2: MSTORE 00005de3: SWAP1 00005de4: DUP5 00005de5: ADD 00005de6: SWAP1 00005de7: DUP3 00005de8: ADD 00005de9: PUSH2 0x5dd4 00005dec: JUMP 00005ded: JUMPDEST 00005dee: POP 00005def: POP 00005df0: POP 00005df1: DUP3 00005df2: DUP8 00005df3: ADD 00005df4: SWAP5 00005df5: POP 00005df6: JUMPDEST 00005df7: POP 00005df8: SWAP3 00005df9: SWAP7 00005dfa: SWAP6 00005dfb: POP 00005dfc: POP 00005dfd: POP 00005dfe: POP 00005dff: POP 00005e00: POP 00005e01: JUMP 00005e02: JUMPDEST 00005e03: PUSH1 0x01 00005e05: PUSH1 0x01 00005e07: PUSH1 0xa0 00005e09: SHL 00005e0a: SUB 00005e0b: DUP4 00005e0c: AND 00005e0d: DUP2 00005e0e: MSTORE 00005e0f: PUSH1 0x40 00005e11: PUSH1 0x20 00005e13: DUP3 00005e14: ADD 00005e15: DUP2 00005e16: SWAP1 00005e17: MSTORE 00005e18: PUSH1 0x00 00005e1a: SWAP1 00005e1b: PUSH2 0x0e85 00005e1e: SWAP1 00005e1f: DUP4 00005e20: ADD 00005e21: DUP5 00005e22: PUSH2 0x4e18 00005e25: JUMP 00005e26: JUMPDEST 00005e27: PUSH1 0x00 00005e29: DUP2 00005e2a: PUSH2 0x5e35 00005e2d: JUMPI 00005e2e: PUSH2 0x5e35 00005e31: PUSH2 0x569a 00005e34: JUMP 00005e35: JUMPDEST 00005e36: POP 00005e37: PUSH1 0x00 00005e39: NOT 00005e3a: ADD 00005e3b: SWAP1 00005e3c: JUMP 00005e3d: JUMPDEST 00005e3e: PUSH1 0x40 00005e40: DUP2 00005e41: MSTORE 00005e42: PUSH1 0x00 00005e44: PUSH2 0x5e50 00005e47: PUSH1 0x40 00005e49: DUP4 00005e4a: ADD 00005e4b: DUP6 00005e4c: PUSH2 0x5bdb 00005e4f: JUMP 00005e50: JUMPDEST 00005e51: DUP3 00005e52: DUP2 00005e53: SUB 00005e54: PUSH1 0x20 00005e56: DUP5 00005e57: ADD 00005e58: MSTORE 00005e59: PUSH2 0x5e62 00005e5c: DUP2 00005e5d: DUP6 00005e5e: PUSH2 0x5bdb 00005e61: JUMP 00005e62: JUMPDEST 00005e63: SWAP6 00005e64: SWAP5 00005e65: POP 00005e66: POP 00005e67: POP 00005e68: POP 00005e69: POP 00005e6a: JUMP 00005e6b: JUMPDEST 00005e6c: PUSH4 0x4e487b71 00005e71: PUSH1 0xe0 00005e73: SHL 00005e74: PUSH1 0x00 00005e76: MSTORE 00005e77: PUSH1 0x31 00005e79: PUSH1 0x04 00005e7b: MSTORE 00005e7c: PUSH1 0x24 00005e7e: PUSH1 0x00 00005e80: REVERT 00005e81: JUMPDEST 00005e82: PUSH1 0x00 00005e84: DUP3 00005e85: MLOAD 00005e86: PUSH2 0x5e93 00005e89: DUP2 00005e8a: DUP5 00005e8b: PUSH1 0x20 00005e8d: DUP8 00005e8e: ADD 00005e8f: PUSH2 0x4df4 00005e92: JUMP 00005e93: JUMPDEST 00005e94: SWAP2 00005e95: SWAP1 00005e96: SWAP2 00005e97: ADD 00005e98: SWAP3 00005e99: SWAP2 00005e9a: POP 00005e9b: POP 00005e9c: JUMP 00005e9d: JUMPDEST 00005e9e: DUP1 00005e9f: DUP3 00005ea0: MUL 00005ea1: DUP2 00005ea2: ISZERO 00005ea3: DUP3 00005ea4: DUP3 00005ea5: DIV 00005ea6: DUP5 00005ea7: EQ 00005ea8: OR 00005ea9: PUSH2 0x0ef4 00005eac: JUMPI 00005ead: PUSH2 0x0ef4 00005eb0: PUSH2 0x569a 00005eb3: JUMP 00005eb4: JUMPDEST 00005eb5: PUSH1 0x00 00005eb7: DUP3 00005eb8: PUSH2 0x5ed1 00005ebb: JUMPI 00005ebc: PUSH4 0x4e487b71 00005ec1: PUSH1 0xe0 00005ec3: SHL 00005ec4: PUSH1 0x00 00005ec6: MSTORE 00005ec7: PUSH1 0x12 00005ec9: PUSH1 0x04 00005ecb: MSTORE 00005ecc: PUSH1 0x24 00005ece: PUSH1 0x00 00005ed0: REVERT 00005ed1: JUMPDEST 00005ed2: POP 00005ed3: DIV 00005ed4: SWAP1 00005ed5: JUMP 00005ed6: JUMPDEST 00005ed7: DUP4 00005ed8: DUP2 00005ed9: MSTORE 00005eda: PUSH1 0x60 00005edc: PUSH1 0x20 00005ede: DUP3 00005edf: ADD 00005ee0: MSTORE 00005ee1: PUSH1 0x00 00005ee3: PUSH2 0x5eef 00005ee6: PUSH1 0x60 00005ee8: DUP4 00005ee9: ADD 00005eea: DUP6 00005eeb: PUSH2 0x5bdb 00005eee: JUMP 00005eef: JUMPDEST 00005ef0: DUP3 00005ef1: DUP2 00005ef2: SUB 00005ef3: PUSH1 0x40 00005ef5: DUP5 00005ef6: ADD 00005ef7: MSTORE 00005ef8: PUSH2 0x16be 00005efb: DUP2 00005efc: DUP6 00005efd: PUSH2 0x5bdb 00005f00: JUMP 00005f01: JUMPDEST 00005f02: DUP5 00005f03: DUP2 00005f04: MSTORE 00005f05: PUSH1 0x01 00005f07: PUSH1 0x01 00005f09: PUSH1 0xa0 00005f0b: SHL 00005f0c: SUB 00005f0d: DUP5 00005f0e: AND 00005f0f: PUSH1 0x20 00005f11: DUP3 00005f12: ADD 00005f13: MSTORE 00005f14: PUSH1 0x80 00005f16: PUSH1 0x40 00005f18: DUP3 00005f19: ADD 00005f1a: DUP2 00005f1b: SWAP1 00005f1c: MSTORE 00005f1d: PUSH1 0x00 00005f1f: SWAP1 00005f20: PUSH2 0x5f2b 00005f23: SWAP1 00005f24: DUP4 00005f25: ADD 00005f26: DUP6 00005f27: PUSH2 0x5bdb 00005f2a: JUMP 00005f2b: JUMPDEST 00005f2c: DUP3 00005f2d: DUP2 00005f2e: SUB 00005f2f: PUSH1 0x60 00005f31: DUP5 00005f32: ADD 00005f33: MSTORE 00005f34: PUSH2 0x5287 00005f37: DUP2 00005f38: DUP6 00005f39: PUSH2 0x5bdb 00005f3c: JUMP 00005f3d: INVALID 00005f3e: COINBASE 00005f3f: PUSH5 0x6472657373 00005f45: GASPRICE 00005f46: KECCAK256 00005f47: PUSH13 0x6f772d6c6576656c2064656c65 00005f55: PUSH8 0x6174652063616c6c 00005f5e: KECCAK256 00005f5f: PUSH7 0x61696c6564ddf2 00005f67: MSTORE 00005f68: UNKNOWN(0xAD) 00005f69: SHL 00005f6a: UNKNOWN(0xE2) 00005f6b: UNKNOWN(0xC8) 00005f6c: SWAP12 00005f6d: PUSH10 0xc2b068fc378daa952ba7 00005f78: CALL 00005f79: PUSH4 0xc4a11628 00005f7e: CREATE2 00005f7f: GAS 00005f80: UNKNOWN(0x4D) 00005f81: CREATE2 00005f82: UNKNOWN(0x23) 00005f83: UNKNOWN(0xB3) 00005f84: UNKNOWN(0xEF) 00005f85: LOG2 00005f86: PUSH5 0x6970667358 00005f8c: UNKNOWN(0x22) 00005f8d: SLT 00005f8e: KECCAK256 00005f8f: CREATE2 00005f90: EXP 00005f91: CALL 00005f92: JUMPI 00005f93: CALLDATACOPY 00005f94: UNKNOWN(0x2E) 00005f95: UNKNOWN(0xC5) 00005f96: SWAP8 00005f97: DUP3 00005f98: PUSH6 0xc80cd860f5c6 00005f9f: PUSH27
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | yes | yes |
viewtrace_id: 0x5b96ca9945f4da7cbe444e9253ecce6ecbd15553dc8bfa2f8f8000cb4095e584
call_targets:
0x02d84abd89ee9db409572f19b6e1596c301f3c81, 0x25ed699a052b820d772765e26ed4dd9f0a26f3e5, 0x2b33cf282f867a7ff693a66e11b0fcc5552e4425, 0x541dcd3f00bcd1a683cc73e1b2a8693b602201f4, 0x6ca84080381e43938476814be61b779a8bb6a600, 0x80d786df608603ccdcc83f5712b97c185a6a948d, 0x8147b99df7672a21809c9093e6f6ce1a60f119bd, 0xadc45df3cf1584624c97338bef33363bf5b97ada, 0xc313a383d1838dcda96f4c97698238f0a5499ea4, 0xf835456cb1de3e39ab50a8a9fbb07ebec3a8ff67, 0xfbc7693f114273739c74a3ff028c13769c49f2d0
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "confirmed",
"attempts": 86,
"trace_id": "0x5b96ca9945f4da7cbe444e9253ecce6ecbd15553dc8bfa2f8f8000cb4095e584",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x02d84abd89ee9db409572f19b6e1596c301f3c81",
"0x25ed699a052b820d772765e26ed4dd9f0a26f3e5",
"0x2b33cf282f867a7ff693a66e11b0fcc5552e4425",
"0x541dcd3f00bcd1a683cc73e1b2a8693b602201f4",
"0x6ca84080381e43938476814be61b779a8bb6a600",
"0x80d786df608603ccdcc83f5712b97c185a6a948d",
"0x8147b99df7672a21809c9093e6f6ce1a60f119bd",
"0xadc45df3cf1584624c97338bef33363bf5b97ada",
"0xc313a383d1838dcda96f4c97698238f0a5499ea4",
"0xf835456cb1de3e39ab50a8a9fbb07ebec3a8ff67",
"0xfbc7693f114273739c74a3ff028c13769c49f2d0"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xeef33eca",
"selector": "0xeef33eca",
"calldata_variants": [
"0xeef33eca",
"0xeef33eca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf04f2707",
"selector": "0xf04f2707",
"calldata_variants": [
"0xf04f2707",
"0xf04f27070000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5743bc9",
"selector": "0xf5743bc9",
"calldata_variants": [
"0xf5743bc9",
"0xf5743bc90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7b24e08",
"selector": "0xf7b24e08",
"calldata_variants": [
"0xf7b24e08",
"0xf7b24e080000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7d4bf45",
"selector": "0xd7d4bf45",
"calldata_variants": [
"0xd7d4bf45",
"0xd7d4bf450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd905777e",
"selector": "0xd905777e",
"calldata_variants": [
"0xd905777e",
"0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 18438,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x66382fdff0ee1ffc701c29ed7915cff119a9667c624fc6f25db04e996d5cac59
call_targets:
0xfd6db5011b171b05e1ea3b92f9eacaeeb055e971
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x66382fdff0ee1ffc701c29ed7915cff119a9667c624fc6f25db04e996d5cac59",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xfd6db5011b171b05e1ea3b92f9eacaeeb055e971"
],
"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": "0xeef33eca",
"selector": "0xeef33eca",
"calldata_variants": [
"0xeef33eca",
"0xeef33eca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf04f2707",
"selector": "0xf04f2707",
"calldata_variants": [
"0xf04f2707",
"0xf04f27070000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5743bc9",
"selector": "0xf5743bc9",
"calldata_variants": [
"0xf5743bc9",
"0xf5743bc90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7b24e08",
"selector": "0xf7b24e08",
"calldata_variants": [
"0xf7b24e08",
"0xf7b24e080000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7d4bf45",
"selector": "0xd7d4bf45",
"calldata_variants": [
"0xd7d4bf45",
"0xd7d4bf450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd905777e",
"selector": "0xd905777e",
"calldata_variants": [
"0xd905777e",
"0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 17535,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 18188,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 24440,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [],
"untrusted_call_count": 4
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x66382fdff0ee1ffc701c29ed7915cff119a9667c624fc6f25db04e996d5cac59
call_targets:
0xfd6db5011b171b05e1ea3b92f9eacaeeb055e971
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x66382fdff0ee1ffc701c29ed7915cff119a9667c624fc6f25db04e996d5cac59",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xfd6db5011b171b05e1ea3b92f9eacaeeb055e971"
],
"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": "0xeef33eca",
"selector": "0xeef33eca",
"calldata_variants": [
"0xeef33eca",
"0xeef33eca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf04f2707",
"selector": "0xf04f2707",
"calldata_variants": [
"0xf04f2707",
"0xf04f27070000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5743bc9",
"selector": "0xf5743bc9",
"calldata_variants": [
"0xf5743bc9",
"0xf5743bc90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7b24e08",
"selector": "0xf7b24e08",
"calldata_variants": [
"0xf7b24e08",
"0xf7b24e080000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7d4bf45",
"selector": "0xd7d4bf45",
"calldata_variants": [
"0xd7d4bf45",
"0xd7d4bf450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd905777e",
"selector": "0xd905777e",
"calldata_variants": [
"0xd905777e",
"0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 17535,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 18188,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 24440,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": []
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xd6f3a553d4d38c2a7043e9c505f5c53d18422faa8a00cfee2e5b7c4c7cc49a1b
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xd6f3a553d4d38c2a7043e9c505f5c53d18422faa8a00cfee2e5b7c4c7cc49a1b",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xeef33eca",
"selector": "0xeef33eca",
"calldata_variants": [
"0xeef33eca",
"0xeef33eca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf04f2707",
"selector": "0xf04f2707",
"calldata_variants": [
"0xf04f2707",
"0xf04f27070000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5743bc9",
"selector": "0xf5743bc9",
"calldata_variants": [
"0xf5743bc9",
"0xf5743bc90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf7b24e08",
"selector": "0xf7b24e08",
"calldata_variants": [
"0xf7b24e08",
"0xf7b24e080000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7d4bf45",
"selector": "0xd7d4bf45",
"calldata_variants": [
"0xd7d4bf45",
"0xd7d4bf450000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd905777e",
"selector": "0xd905777e",
"calldata_variants": [
"0xd905777e",
"0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 3
}
|
| medium | math | codex | Debt > credit underflow can brick totalAssets and withdrawals | 75 | no | — |
viewevidence_json{
"evidence": "`PriceRouter.getValuesDelta` returns `value0 - value1` without guarding against underflow; `Cellar._calculateTotalAssetsOrTotalAssetsWithdrawable` uses it to compute total assets.",
"locations": [
"contracts/src/modules/price-router/PriceRouter.sol:424",
"contracts/src/modules/price-router/PriceRouter.sol:431",
"contracts/src/base/Cellar.sol:966",
"contracts/src/base/Cellar.sol:997"
],
"recommendation": "Handle negative net value explicitly instead of unchecked subtraction. Use signed math or clamp at zero (e.g., return 0 if debt > credit), or add a controlled insolvency path that still allows withdrawals rather than reverting all accounting.",
"exploit_scenario": "If a debt position\u2019s priced value exceeds credit positions (e.g., due to oracle manipulation or rapid market moves), `getValuesDelta` underflows and reverts. Because `Cellar` relies on this for `totalAssets`, deposits/withdrawals and rebalances that call `totalAssets` or `_getTotalAssetsAndTotalSupply` will revert, freezing user exits until prices normalize."
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| low | oracle | codex | Chainlink answeredInRound not checked in price fetch | 65 | no | — |
viewevidence_json{
"evidence": "`_getPriceForChainlinkDerivative` only uses `(, _price, , _timestamp, ) = latestRoundData()` and ignores `answeredInRound`/`roundId`.",
"locations": [
"contracts/src/modules/price-router/PriceRouter.sol:691",
"contracts/src/modules/price-router/PriceRouter.sol:694"
],
"recommendation": "Read `roundId` and `answeredInRound` from `latestRoundData` and require `answeredInRound >= roundId` and `updatedAt != 0` before accepting the price.",
"exploit_scenario": "If a Chainlink feed starts a new round but hasn\u2019t answered yet, `latestRoundData` can return the previous round\u2019s answer with `answeredInRound < roundId`. Because this check is omitted, the contract may accept stale prices as long as `updatedAt` is within the heartbeat, allowing users to act on outdated pricing during volatility."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 3
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 23
}
|