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

Analysis Run

a6e01852-b60b-4be8-b0b9-857d2bbf0c58

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 4:55 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
1
Validated
1
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 1 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30424 report.consolidate complete 1 / 1 3 months ago
93943 artifact.fetch failed 1 / 3 1 week ago
93944 tool.cast_disasm complete 1 / 3 1 week ago
93945 analysis.bundle complete 1 / 3 1 week ago
93946 capability.graph complete 1 / 3 1 week ago
93947 detector.run complete 1 / 3 1 week ago
93948 validation.fork complete 1 / 3 1 week ago
113786 tool.slither failed 2 / 2 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes
Verified Source: yes

Slither

tool.slither
Status
failed slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-t374td35) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-t374td35) 'forge' returned non-zero exit code 1 2026-04-05T07:56:23.877975Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878028Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878038Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/access/IAccessControlEnumerable.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878046Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878073Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878091Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878128Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878148Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/math/Math.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878167Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878175Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878213Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878220Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878227Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878274Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/Address.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878351Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/math/Math.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878377Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878405Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/proxy/utils/Initializable.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878414Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878421Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878429Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878460Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878468Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878499Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/math/Math.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878506Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878518Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878525Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878533Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878595Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878617Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/math/Math.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878637Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/cryptography/ECDSA.sol": No such file or directory (os error 2) stdout: 2026-04-05T07:56:23.878645Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol": No such file or directory (os error 2) stdout: Unable to resolve imports: stdout: "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" in "/tmp/slither-t374td35/src/libs/LibAdapter.sol" stdout: "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" in "/tmp/slither-t374td35/src/interfaces/strategy/IStrategy.sol" stdout: "openzeppelin-contracts/utils/math/Math.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IAutopool.sol" stdout: "openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolToken.sol" stdout: "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/libs/LibAdapter.sol" stdout: "openzeppelin-contracts/access/IAccessControlEnumerable.sol" in "/tmp/slither-t374td35/src/interfaces/security/IAccessController.sol" stdout: "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol" stdout: "openzeppelin-contracts/utils/math/Math.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol" stdout: "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" in "/tmp/slither-t374td35/src/vault/libs/Autopool4626.sol" stdout: "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol" stdout: "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/vault/libs/Autopool4626.sol" stdout: "openzeppelin-contracts/utils/math/Math.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol" stdout: "openzeppelin-contracts/proxy/utils/Initializable.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol" stdout: "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol" stdout: "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol" stdout: "openzeppelin-contracts/utils/structs/EnumerableSet.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol" stdout: "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/interfaces/ISystemRegistry.sol" stdout: "openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IAutopool.sol" stdout: "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/interfaces/rewarders/IRewards.sol" stdout: "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IDestinationVault.sol" stdout: "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol" stdout: "openzeppelin-contracts/utils/math/Math.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolFees.sol" stdout: "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/interfaces/staking/IAccToke.sol" stdout: "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IERC4626.sol" stdout: "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IAutopilotRouterBase.sol" stdout: "openzeppelin-contracts/utils/structs/EnumerableSet.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol" stdout: "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/interfaces/utils/IWETH9.sol" stdout: "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol" stdout: "openzeppelin-contracts/utils/Address.sol" in "/tmp/slither-t374td35/src/utils/Errors.sol" stdout: "openzeppelin-contracts/utils/cryptography/ECDSA.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolToken.sol" stdout: "openzeppelin-contracts/utils/structs/EnumerableSet.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDestinations.sol" stdout: with remappings: stdout: forge-std/=/tmp/slither-t374td35/lib/forge-std/src/ stdout: ds-test/=/tmp/slither-t374td35/lib/forge-std/lib/ds-test/src/ stdout: openzeppelin-contracts/=/tmp/slither-t374td35/lib/openzeppelin-contracts/ stdout: erc4626-tests/=/tmp/slither-t374td35/lib/erc4626-tests/ stdout: prb-math/=/tmp/slither-t374td35/lib/prb-math/ stdout: crytic/properties/=/tmp/slither-t374td35/lib/properties/ stdout: ERC4626/=/tmp/slither-t374td35/lib/properties/lib/ERC4626/contracts/ stdout: properties/=/tmp/slither-t374td35/lib/properties/contracts/ stdout: solmate/=/tmp/slither-t374td35/lib/properties/lib/solmate/src/ stdout: usingtellor/=/tmp/slither-t374td35/lib/usingtellor/contracts/ stdout: Compiling 51 files with Solc 0.8.17 stdout: Solc 0.8.17 finished in 19.71ms Error: Compiler run failed: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/ISystemRegistry.sol:21:1: stderr: | stderr: 21 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/rewarders/IRewards.sol:5:1: stderr: | stderr: 5 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/access/IAccessControlEnumerable.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/access/IAccessControlEnumerable.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/security/IAccessController.sol:5:1: stderr: | stderr: 5 | import { IAccessControlEnumerable } from "openzeppelin-contracts/access/IAccessControlEnumerable.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/staking/IAccToke.sol:5:1: stderr: | stderr: 5 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/strategy/IStrategy.sol:5:1: stderr: | stderr: 5 | import { IERC3156FlashBorrower } from "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/utils/IWETH9.sol:4:1: stderr: | stderr: 4 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/vault/IAutopilotRouterBase.sol:7:1: stderr: | stderr: 7 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/vault/IAutopool.sol:7:1: stderr: | stderr: 7 | import { Math } from "openzeppelin-contracts/utils/math/Math.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/vault/IAutopool.sol:10:1: stderr: | stderr: 10 | import { IERC20Permit } from "openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/vault/IDestinationVault.sol:5:1: stderr: | stderr: 5 | import { IERC20Metadata as IERC20 } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/interfaces/vault/IERC4626.sol:4:1: stderr: | stderr: 4 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/libs/LibAdapter.sol:5:1: stderr: | stderr: 5 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/libs/LibAdapter.sol:6:1: stderr: | stderr: 6 | import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/Address.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/utils/Address.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/utils/Errors.sol:5:1: stderr: | stderr: 5 | import { Address } from "openzeppelin-contracts/utils/Address.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/AutopoolETH.sol:30:1: stderr: | stderr: 30 | import { Math } from "openzeppelin-contracts/utils/math/Math.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/AutopoolETH.sol:34:1: stderr: | stderr: 34 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/proxy/utils/Initializable.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/proxy/utils/Initializable.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/AutopoolETH.sol:39:1: stderr: | stderr: 39 | import { Initializable } from "openzeppelin-contracts/proxy/utils/Initializable.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/AutopoolETH.sol:40:1: stderr: | stderr: 40 | import { EnumerableSet } from "openzeppelin-contracts/utils/structs/EnumerableSet.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/AutopoolETH.sol:41:1: stderr: | stderr: 41 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/AutopoolETH.sol:42:1: stderr: | stderr: 42 | import { IERC3156FlashBorrower } from "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/Autopool4626.sol:11:1: stderr: | stderr: 11 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/Autopool4626.sol:12:1: stderr: | stderr: 12 | import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/AutopoolDebt.sol:9:1: stderr: | stderr: 9 | import { Math } from "openzeppelin-contracts/utils/math/Math.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/AutopoolDebt.sol:10:1: stderr: | stderr: 10 | import { EnumerableSet } from "openzeppelin-contracts/utils/structs/EnumerableSet.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/AutopoolDebt.sol:12:1: stderr: | stderr: 12 | import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/AutopoolDebt.sol:13:1: stderr: | stderr: 13 | import { IERC20Metadata as IERC20 } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/AutopoolDebt.sol:14:1: stderr: | stderr: 14 | import { IERC3156FlashBorrower } from "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/AutopoolDestinations.sol:10:1: stderr: | stderr: 10 | import { EnumerableSet } from "openzeppelin-contracts/utils/structs/EnumerableSet.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/AutopoolFees.sol:7:1: stderr: | stderr: 7 | import { Math } from "openzeppelin-contracts/utils/math/Math.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/cryptography/ECDSA.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/utils/cryptography/ECDSA.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/AutopoolToken.sol:6:1: stderr: | stderr: 6 | import { ECDSA } from "openzeppelin-contracts/utils/cryptography/ECDSA.sol"; stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35". stderr: --> src/vault/libs/AutopoolToken.sol:7:1: stderr: | stderr: 7 | import { IERC20Permit } from "openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol"; 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-t374td35/out/build-info is not a directory.
Attempts
2 / 2
Findings
0
Solc
View stderr
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-t374td35)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-t374td35)
'forge' returned non-zero exit code 1
2026-04-05T07:56:23.877975Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878028Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878038Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/access/IAccessControlEnumerable.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878046Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878073Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878091Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878128Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878148Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/math/Math.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878167Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878175Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878213Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878220Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878227Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878274Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/Address.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878351Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/math/Math.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878377Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/IERC20.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878405Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/proxy/utils/Initializable.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878414Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878421Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878429Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878460Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878468Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878499Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/math/Math.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878506Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878518Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878525Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878533Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878595Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878617Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/math/Math.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878637Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/utils/cryptography/ECDSA.sol": No such file or directory (os error 2)
stdout: 2026-04-05T07:56:23.878645Z ERROR foundry_compilers_artifacts_solc::sources: error="/tmp/slither-t374td35/lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol": No such file or directory (os error 2)
stdout: Unable to resolve imports:
stdout:       "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" in "/tmp/slither-t374td35/src/libs/LibAdapter.sol"
stdout:       "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" in "/tmp/slither-t374td35/src/interfaces/strategy/IStrategy.sol"
stdout:       "openzeppelin-contracts/utils/math/Math.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IAutopool.sol"
stdout:       "openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolToken.sol"
stdout:       "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/libs/LibAdapter.sol"
stdout:       "openzeppelin-contracts/access/IAccessControlEnumerable.sol" in "/tmp/slither-t374td35/src/interfaces/security/IAccessController.sol"
stdout:       "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol"
stdout:       "openzeppelin-contracts/utils/math/Math.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol"
stdout:       "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" in "/tmp/slither-t374td35/src/vault/libs/Autopool4626.sol"
stdout:       "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol"
stdout:       "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/vault/libs/Autopool4626.sol"
stdout:       "openzeppelin-contracts/utils/math/Math.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol"
stdout:       "openzeppelin-contracts/proxy/utils/Initializable.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol"
stdout:       "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol"
stdout:       "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol"
stdout:       "openzeppelin-contracts/utils/structs/EnumerableSet.sol" in "/tmp/slither-t374td35/src/vault/AutopoolETH.sol"
stdout:       "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/interfaces/ISystemRegistry.sol"
stdout:       "openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IAutopool.sol"
stdout:       "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/interfaces/rewarders/IRewards.sol"
stdout:       "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IDestinationVault.sol"
stdout:       "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol"
stdout:       "openzeppelin-contracts/utils/math/Math.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolFees.sol"
stdout:       "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/interfaces/staking/IAccToke.sol"
stdout:       "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IERC4626.sol"
stdout:       "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/interfaces/vault/IAutopilotRouterBase.sol"
stdout:       "openzeppelin-contracts/utils/structs/EnumerableSet.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol"
stdout:       "openzeppelin-contracts/token/ERC20/IERC20.sol" in "/tmp/slither-t374td35/src/interfaces/utils/IWETH9.sol"
stdout:       "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDebt.sol"
stdout:       "openzeppelin-contracts/utils/Address.sol" in "/tmp/slither-t374td35/src/utils/Errors.sol"
stdout:       "openzeppelin-contracts/utils/cryptography/ECDSA.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolToken.sol"
stdout:       "openzeppelin-contracts/utils/structs/EnumerableSet.sol" in "/tmp/slither-t374td35/src/vault/libs/AutopoolDestinations.sol"
stdout: with remappings:
stdout:       forge-std/=/tmp/slither-t374td35/lib/forge-std/src/
stdout:       ds-test/=/tmp/slither-t374td35/lib/forge-std/lib/ds-test/src/
stdout:       openzeppelin-contracts/=/tmp/slither-t374td35/lib/openzeppelin-contracts/
stdout:       erc4626-tests/=/tmp/slither-t374td35/lib/erc4626-tests/
stdout:       prb-math/=/tmp/slither-t374td35/lib/prb-math/
stdout:       crytic/properties/=/tmp/slither-t374td35/lib/properties/
stdout:       ERC4626/=/tmp/slither-t374td35/lib/properties/lib/ERC4626/contracts/
stdout:       properties/=/tmp/slither-t374td35/lib/properties/contracts/
stdout:       solmate/=/tmp/slither-t374td35/lib/properties/lib/solmate/src/
stdout:       usingtellor/=/tmp/slither-t374td35/lib/usingtellor/contracts/
stdout: Compiling 51 files with Solc 0.8.17
stdout: Solc 0.8.17 finished in 19.71ms
Error: Compiler run failed:
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/interfaces/ISystemRegistry.sol:21:1:
stderr:    |
stderr: 21 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/interfaces/rewarders/IRewards.sol:5:1:
stderr:   |
stderr: 5 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/access/IAccessControlEnumerable.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/access/IAccessControlEnumerable.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/interfaces/security/IAccessController.sol:5:1:
stderr:   |
stderr: 5 | import { IAccessControlEnumerable } from "openzeppelin-contracts/access/IAccessControlEnumerable.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/interfaces/staking/IAccToke.sol:5:1:
stderr:   |
stderr: 5 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/interfaces/strategy/IStrategy.sol:5:1:
stderr:   |
stderr: 5 | import { IERC3156FlashBorrower } from "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/interfaces/utils/IWETH9.sol:4:1:
stderr:   |
stderr: 4 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/interfaces/vault/IAutopilotRouterBase.sol:7:1:
stderr:   |
stderr: 7 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/interfaces/vault/IAutopool.sol:7:1:
stderr:   |
stderr: 7 | import { Math } from "openzeppelin-contracts/utils/math/Math.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/interfaces/vault/IAutopool.sol:10:1:
stderr:    |
stderr: 10 | import { IERC20Permit } from "openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/interfaces/vault/IDestinationVault.sol:5:1:
stderr:   |
stderr: 5 | import { IERC20Metadata as IERC20 } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/interfaces/vault/IERC4626.sol:4:1:
stderr:   |
stderr: 4 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/libs/LibAdapter.sol:5:1:
stderr:   |
stderr: 5 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/libs/LibAdapter.sol:6:1:
stderr:   |
stderr: 6 | import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/Address.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/utils/Address.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/utils/Errors.sol:5:1:
stderr:   |
stderr: 5 | import { Address } from "openzeppelin-contracts/utils/Address.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/AutopoolETH.sol:30:1:
stderr:    |
stderr: 30 | import { Math } from "openzeppelin-contracts/utils/math/Math.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/IERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/AutopoolETH.sol:34:1:
stderr:    |
stderr: 34 | import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/proxy/utils/Initializable.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/proxy/utils/Initializable.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/AutopoolETH.sol:39:1:
stderr:    |
stderr: 39 | import { Initializable } from "openzeppelin-contracts/proxy/utils/Initializable.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/AutopoolETH.sol:40:1:
stderr:    |
stderr: 40 | import { EnumerableSet } from "openzeppelin-contracts/utils/structs/EnumerableSet.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/AutopoolETH.sol:41:1:
stderr:    |
stderr: 41 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/AutopoolETH.sol:42:1:
stderr:    |
stderr: 42 | import { IERC3156FlashBorrower } from "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/libs/Autopool4626.sol:11:1:
stderr:    |
stderr: 11 | import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/libs/Autopool4626.sol:12:1:
stderr:    |
stderr: 12 | import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/vault/libs/AutopoolDebt.sol:9:1:
stderr:   |
stderr: 9 | import { Math } from "openzeppelin-contracts/utils/math/Math.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/libs/AutopoolDebt.sol:10:1:
stderr:    |
stderr: 10 | import { EnumerableSet } from "openzeppelin-contracts/utils/structs/EnumerableSet.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/libs/AutopoolDebt.sol:12:1:
stderr:    |
stderr: 12 | import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/libs/AutopoolDebt.sol:13:1:
stderr:    |
stderr: 13 | import { IERC20Metadata as IERC20 } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/libs/AutopoolDebt.sol:14:1:
stderr:    |
stderr: 14 | import { IERC3156FlashBorrower } from "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/utils/structs/EnumerableSet.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:   --> src/vault/libs/AutopoolDestinations.sol:10:1:
stderr:    |
stderr: 10 | import { EnumerableSet } from "openzeppelin-contracts/utils/structs/EnumerableSet.sol";
stderr:    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/utils/math/Math.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/vault/libs/AutopoolFees.sol:7:1:
stderr:   |
stderr: 7 | import { Math } from "openzeppelin-contracts/utils/math/Math.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/utils/cryptography/ECDSA.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/utils/cryptography/ECDSA.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/vault/libs/AutopoolToken.sol:6:1:
stderr:   |
stderr: 6 | import { ECDSA } from "openzeppelin-contracts/utils/cryptography/ECDSA.sol";
stderr:   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (6275): Source "lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr: ParserError: Source "lib/openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol" not found: File not found. Searched the following locations: "/tmp/slither-t374td35".
stderr:  --> src/vault/libs/AutopoolToken.sol:7:1:
stderr:   |
stderr: 7 | import { IERC20Permit } from "openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol";
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-t374td35/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
3
No findings?
no
Summary
Identified one high-severity access control gap in flash rebalances, one medium-severity privileged asset sweep issue, and one low-severity unchecked ETH transfer in the recovery path.
View stderr
[codex:1169658] OpenAI Codex v0.77.0 (research preview)
[codex:1169658] --------
[codex:1169658] workdir: /tmp/codex-multi-4hvx9oyr
[codex:1169658] model: gpt-5.2-codex
[codex:1169658] provider: openai
[codex:1169658] approval: never
[codex:1169658] sandbox: read-only
[codex:1169658] reasoning effort: xhigh
[codex:1169658] reasoning summaries: auto
[codex:1169658] session id: 019b686b-9fc2-79d0-b2c5-c8660df80951
[codex:1169658] --------
[codex:1169658] user
[codex:1169658] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1169658] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1169658] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1169658] 
[codex:1169658] Scope rules:
[codex:1169658] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1169658] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1169658] 
[codex:1169658] Output MUST be valid JSON matching the provided schema.
[codex:1169658] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1169658] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1169658] 
[codex:1169658] Output constraints (IMPORTANT):
[codex:1169658] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1169658] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1169658] mcp startup: no servers
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Preparing to read audit file**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc ls in /tmp/codex-multi-4hvx9oyr succeeded in 7ms:
[codex:1169658] AUDIT_BUNDLE.txt
[codex:1169658] codex-output-schema.json
[codex:1169658] contracts
[codex:1169658] exec
[codex:1169658] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1169658] 
[codex:1169658] ================================================================================
[codex:1169658] FILE: contracts/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: MIT
[codex:1169658] // OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)
[codex:1169658] 
[codex:1169658] pragma solidity ^0.8.0;
[codex:1169658] 
[codex:1169658] /**
[codex:1169658]  * @dev External interface of AccessControl declared to support ERC165 detection.
[codex:1169658]  */
[codex:1169658] interface IAccessControl {
[codex:1169658]     /**
[codex:1169658]      * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`
[codex:1169658]      *
[codex:1169658]      * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite
[codex:1169658]      * {RoleAdminChanged} not being emitted signaling this.
[codex:1169658]      *
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Searching first-party contract files**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc 'rg -n "''^FILE: contracts/src" AUDIT_BUNDLE.txt' in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] 1905:FILE: contracts/src/interfaces/ISystemComponent.sol
[codex:1169658] 1918:FILE: contracts/src/interfaces/ISystemRegistry.sol
[codex:1169658] 2043:FILE: contracts/src/interfaces/destinations/IDestinationAdapter.sol
[codex:1169658] 2065:FILE: contracts/src/interfaces/destinations/IDestinationRegistry.sol
[codex:1169658] 2134:FILE: contracts/src/interfaces/liquidation/IAsyncSwapper.sol
[codex:1169658] 2183:FILE: contracts/src/interfaces/liquidation/IAsyncSwapperRegistry.sol
[codex:1169658] 2214:FILE: contracts/src/interfaces/messageProxy/IMessageProxy.sol
[codex:1169658] 2226:FILE: contracts/src/interfaces/oracles/IRootPriceOracle.sol
[codex:1169658] 2284:FILE: contracts/src/interfaces/rewarders/IBaseRewarder.sol
[codex:1169658] 2413:FILE: contracts/src/interfaces/rewarders/IExtraRewarder.sol
[codex:1169658] 2438:FILE: contracts/src/interfaces/rewarders/IMainRewarder.sol
[codex:1169658] 2497:FILE: contracts/src/interfaces/rewarders/IRewards.sol
[codex:1169658] 2563:FILE: contracts/src/interfaces/security/IAccessController.sol
[codex:1169658] 2589:FILE: contracts/src/interfaces/security/ISystemSecurity.sol
[codex:1169658] 2611:FILE: contracts/src/interfaces/staking/IAccToke.sol
[codex:1169658] 2769:FILE: contracts/src/interfaces/stats/IDexLSTStats.sol
[codex:1169658] 2811:FILE: contracts/src/interfaces/stats/IIncentivesPricingStats.sol
[codex:1169658] 2884:FILE: contracts/src/interfaces/stats/ILSTStats.sol
[codex:1169658] 2915:FILE: contracts/src/interfaces/stats/IStatsCalculator.sol
[codex:1169658] 2957:FILE: contracts/src/interfaces/stats/IStatsCalculatorRegistry.sol
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Extracting and isolating key contracts**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '5284,6312p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/vault/AutopoolETH.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] 
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] //                   ██
[codex:1169658] //                   ██
[codex:1169658] //                   ██
[codex:1169658] //                   ██
[codex:1169658] //                   ██
[codex:1169658] //      █████████████████████████████████████████
[codex:1169658] //                                 ██
[codex:1169658] //                                 ██
[codex:1169658] //                                 ██
[codex:1169658] //                                 ██
[codex:1169658] //                                 ██
[codex:1169658] 
[codex:1169658] import { Roles } from "src/libs/Roles.sol";
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Planning targeted code extraction**
[codex:1169658] 
[codex:1169658] I'm figuring out how to retrieve the missing truncated lines from the AutopoolETH contract by extracting smaller segments around the truncated area using precise line ranges with `sed`. This way, I can review the full code including the cutoff parts and ensure nothing important is overlooked.
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '5600,5900p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658]         if (shares > maxMint(receiver)) {
[codex:1169658]             revert ERC4626MintExceedsMax(shares, maxMint(receiver));
[codex:1169658]         }
[codex:1169658] 
[codex:1169658]         uint256 ta = _totalAssetsTimeChecked(TotalAssetPurpose.Deposit);
[codex:1169658]         assets = convertToAssets(shares, ta, totalSupply(), Math.Rounding.Up);
[codex:1169658] 
[codex:1169658]         _transferAndMint(assets, shares, receiver);
[codex:1169658]     }
[codex:1169658] 
[codex:1169658]     /// @notice Burns shares from owner and sends exactly assets of underlying tokens to receiver.
[codex:1169658]     function withdraw(
[codex:1169658]         uint256 assets,
[codex:1169658]         address receiver,
[codex:1169658]         address owner
[codex:1169658]     )
[codex:1169658]         public
[codex:1169658]         virtual
[codex:1169658]         override
[codex:1169658]         nonReentrant
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Checking code endpoint for completeness**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '5900,6312p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] 
[codex:1169658]     /// @notice Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism.
[codex:1169658]     /// `value` is then deducted from the caller's allowance.
[codex:1169658]     function transferFrom(address from, address to, uint256 value) public virtual whenNotPaused returns (bool) {
[codex:1169658]         return _tokenData.transferFrom(from, to, value);
[codex:1169658]     }
[codex:1169658] 
[codex:1169658]     /// @notice Moves a `value` amount of tokens from the caller's account to `to`
[codex:1169658]     function transfer(address to, uint256 value) public virtual whenNotPaused returns (bool) {
[codex:1169658]         return _tokenData.transfer(to, value);
[codex:1169658]     }
[codex:1169658] 
[codex:1169658]     /// @notice Returns the next unused nonce for an address.
[codex:1169658]     function nonces(address owner) public view virtual returns (uint256) {
[codex:1169658]         return _tokenData.nonces[owner];
[codex:1169658]     }
[codex:1169658] 
[codex:1169658]     function getSystemRegistry() external view override returns (address) {
[codex:1169658]         return address(_systemRegistry);
[codex:1169658]     }
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reviewing additional libraries for extraction**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '6505,7584p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/vault/libs/AutopoolDebt.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] 
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { Errors } from "src/utils/Errors.sol";
[codex:1169658] import { LibAdapter } from "src/libs/LibAdapter.sol";
[codex:1169658] import { IDestinationVault } from "src/interfaces/vault/IDestinationVault.sol";
[codex:1169658] import { Math } from "openzeppelin-contracts/utils/math/Math.sol";
[codex:1169658] import { EnumerableSet } from "openzeppelin-contracts/utils/structs/EnumerableSet.sol";
[codex:1169658] import { IStrategy } from "src/interfaces/strategy/IStrategy.sol";
[codex:1169658] import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1169658] import { IERC20Metadata as IERC20 } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1169658] import { IERC3156FlashBorrower } from "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol";
[codex:1169658] import { IAutopoolStrategy } from "src/interfaces/strategy/IAutopoolStrategy.sol";
[codex:1169658] import { StructuredLinkedList } from "src/strategy/StructuredLinkedList.sol";
[codex:1169658] import { WithdrawalQueue } from "src/strategy/WithdrawalQueue.sol";
[codex:1169658] import { IAutopool } from "src/interfaces/vault/IAutopool.sol";
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Inspecting truncated code sections**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '6324,6504p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/vault/libs/Autopool4626.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] 
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { Errors } from "src/utils/Errors.sol";
[codex:1169658] import { AutopoolFees } from "src/vault/libs/AutopoolFees.sol";
[codex:1169658] import { AutopoolToken } from "src/vault/libs/AutopoolToken.sol";
[codex:1169658] import { AutopoolDebt } from "src/vault/libs/AutopoolDebt.sol";
[codex:1169658] import { IAutopool } from "src/interfaces/vault/IAutopool.sol";
[codex:1169658] import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1169658] import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1169658] import { StructuredLinkedList } from "src/strategy/StructuredLinkedList.sol";
[codex:1169658] import { WithdrawalQueue } from "src/strategy/WithdrawalQueue.sol";
[codex:1169658] 
[codex:1169658] library Autopool4626 {
[codex:1169658]     using SafeERC20 for IERC20Metadata;
[codex:1169658]     using WithdrawalQueue for StructuredLinkedList.List;
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reviewing unchecked ETH call and token recovery risks**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '7585,7740p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/vault/libs/AutopoolDestinations.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] 
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { Errors } from "src/utils/Errors.sol";
[codex:1169658] import { WithdrawalQueue } from "src/strategy/WithdrawalQueue.sol";
[codex:1169658] import { StructuredLinkedList } from "src/strategy/StructuredLinkedList.sol";
[codex:1169658] import { IDestinationVault } from "src/interfaces/vault/IDestinationVault.sol";
[codex:1169658] import { EnumerableSet } from "openzeppelin-contracts/utils/structs/EnumerableSet.sol";
[codex:1169658] import { ISystemRegistry } from "src/interfaces/ISystemRegistry.sol";
[codex:1169658] import { IDestinationVaultRegistry } from "src/interfaces/vault/IDestinationVaultRegistry.sol";
[codex:1169658] 
[codex:1169658] library AutopoolDestinations {
[codex:1169658]     using EnumerableSet for EnumerableSet.AddressSet;
[codex:1169658]     using WithdrawalQueue for StructuredLinkedList.List;
[codex:1169658] 
[codex:1169658]     event DestinationVaultAdded(address destination);
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reading AutopoolFees**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '7740,8256p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/vault/libs/AutopoolFees.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] 
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { IAutopool } from "src/interfaces/vault/IAutopool.sol";
[codex:1169658] import { Math } from "openzeppelin-contracts/utils/math/Math.sol";
[codex:1169658] import { AutopoolToken } from "src/vault/libs/AutopoolToken.sol";
[codex:1169658] 
[codex:1169658] library AutopoolFees {
[codex:1169658]     using Math for uint256;
[codex:1169658]     using AutopoolToken for AutopoolToken.TokenData;
[codex:1169658] 
[codex:1169658]     /// @notice Profit denomination
[codex:1169658]     uint256 public constant MAX_BPS_PROFIT = 1_000_000_000;
[codex:1169658] 
[codex:1169658]     /// @notice 100% == 10000
[codex:1169658]     uint256 public constant FEE_DIVISOR = 10_000;
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reviewing additional libraries**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '4715,4996p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/strategy/StructuredLinkedList.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: MIT
[codex:1169658] 
[codex:1169658] pragma solidity =0.8.17;
[codex:1169658] 
[codex:1169658] /**
[codex:1169658]  * @title StructuredLinkedList
[codex:1169658]  * @author Vittorio Minacori (https://github.com/vittominacori)
[codex:1169658]  * @dev An utility library for using sorted linked list data structures in your Solidity project.
[codex:1169658]  * @notice Adapted from
[codex:1169658]  * https://github.com/Layr-Labs/eigenlayer-contracts/blob/master/src/contracts/libraries/StructuredLinkedList.sol
[codex:1169658]  */
[codex:1169658] library StructuredLinkedList {
[codex:1169658]     uint256 private constant _NULL = 0;
[codex:1169658]     uint256 private constant _HEAD = 0;
[codex:1169658] 
[codex:1169658]     bool private constant _PREV = false;
[codex:1169658]     bool private constant _NEXT = true;
[codex:1169658] 
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reviewing WithdrawalQueue implementation**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '4997,5126p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 5ms:
[codex:1169658] FILE: contracts/src/strategy/WithdrawalQueue.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17; // their version was using 8.12?
[codex:1169658] 
[codex:1169658] import { StructuredLinkedList } from "src/strategy/StructuredLinkedList.sol";
[codex:1169658] 
[codex:1169658] // https://github.com/Layr-Labs/eigenlayer-contracts/blob/master/src/contracts/libraries/StructuredLinkedList.sol
[codex:1169658] library WithdrawalQueue {
[codex:1169658]     using StructuredLinkedList for StructuredLinkedList.List;
[codex:1169658] 
[codex:1169658]     error CannotInsertZeroAddress();
[codex:1169658]     error UnexpectedNodeRemoved();
[codex:1169658]     error AddToHeadFailed();
[codex:1169658]     error AddToTailFailed();
[codex:1169658]     error NodeDoesNotExist();
[codex:1169658] 
[codex:1169658]     /// @notice Returns true if the address is in the queue.
[codex:1169658]     function addressExists(StructuredLinkedList.List storage queue, address addr) public view returns (bool) {
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reviewing security-related modules**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '4561,4672p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/security/Pausable.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { Roles } from "src/libs/Roles.sol";
[codex:1169658] import { Errors } from "src/utils/Errors.sol";
[codex:1169658] import { ISystemRegistry } from "src/interfaces/ISystemRegistry.sol";
[codex:1169658] import { IAccessController } from "src/interfaces/security/IAccessController.sol";
[codex:1169658] import { ISystemSecurity } from "src/interfaces/security/ISystemSecurity.sol";
[codex:1169658] 
[codex:1169658] /**
[codex:1169658]  * @notice Contract which allows children to implement an emergency stop mechanism that can be trigger
[codex:1169658]  * by an account that has been granted the EMERGENCY_PAUSER role.
[codex:1169658]  * Makes available the `whenNotPaused` and `whenPaused` modifiers.
[codex:1169658]  * Respects a system level pause from the System Security.
[codex:1169658]  */
[codex:1169658] abstract contract Pausable {
[codex:1169658]     IAccessController private immutable _accessController;
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reviewing SecurityBase lines 4673-4714**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '4673,4714p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 5ms:
[codex:1169658] FILE: contracts/src/security/SecurityBase.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { IAccessController } from "src/interfaces/security/IAccessController.sol";
[codex:1169658] import { Errors } from "src/utils/Errors.sol";
[codex:1169658] 
[codex:1169658] contract SecurityBase {
[codex:1169658]     IAccessController public immutable accessController;
[codex:1169658] 
[codex:1169658]     error UndefinedAddress();
[codex:1169658] 
[codex:1169658]     constructor(address _accessController) {
[codex:1169658]         if (_accessController == address(0)) revert UndefinedAddress();
[codex:1169658] 
[codex:1169658]         accessController = IAccessController(_accessController);
[codex:1169658]     }
[codex:1169658] 
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reviewing NonReentrant code section**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '5233,5283p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/utils/NonReentrant.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] 
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] /// @title Copy of OZ's ReentrancyGuard with a read only variant added
[codex:1169658] abstract contract NonReentrant {
[codex:1169658]     uint256 private constant NOT_ENTERED = 1;
[codex:1169658]     uint256 private constant ENTERED = 2;
[codex:1169658] 
[codex:1169658]     uint256 private _status;
[codex:1169658] 
[codex:1169658]     error ReentrancyGuardReentrantCall();
[codex:1169658] 
[codex:1169658]     constructor() {
[codex:1169658]         _status = NOT_ENTERED;
[codex:1169658]     }
[codex:1169658] 
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Checking NonReentrant and LibAdapter references**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '4451,4480p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/libs/LibAdapter.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { IERC20 } from "openzeppelin-contracts/token/ERC20/IERC20.sol";
[codex:1169658] import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1169658] 
[codex:1169658] library LibAdapter {
[codex:1169658]     using SafeERC20 for IERC20;
[codex:1169658] 
[codex:1169658]     address public constant CURVE_REGISTRY_ETH_ADDRESS_POINTER = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
[codex:1169658] 
[codex:1169658]     error MinLpAmountNotReached();
[codex:1169658]     error LpTokenAmountMismatch();
[codex:1169658]     error NoNonZeroAmountProvided();
[codex:1169658]     error InvalidBalanceChange();
[codex:1169658] 
[codex:1169658]     // Utils
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reviewing roles section**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '4481,4560p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/libs/Roles.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] 
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] library Roles {
[codex:1169658]     // Naming Conventions:
[codex:1169658]     // - Use MANAGER, CREATOR, UPDATER, ..., for roles primarily managing on-chain activities.
[codex:1169658]     // - Use EXECUTOR for roles that trigger off-chain initiated actions.
[codex:1169658]     // - Group roles by functional area for clarity.
[codex:1169658] 
[codex:1169658]     // Destination Vault Management
[codex:1169658]     bytes32 public constant DESTINATION_VAULT_FACTORY_MANAGER = keccak256("CREATE_DESTINATION_VAULT_ROLE");
[codex:1169658]     bytes32 public constant DESTINATION_VAULT_REGISTRY_MANAGER = keccak256("DESTINATION_VAULT_REGISTRY_MANAGER");
[codex:1169658]     bytes32 public constant DESTINATION_VAULT_MANAGER = keccak256("DESTINATION_VAULT_MANAGER");
[codex:1169658] 
[codex:1169658]     // Auto Pool Factory and Registry Management
[codex:1169658]     bytes32 public constant AUTO_POOL_REGISTRY_UPDATER = keccak256("REGISTRY_UPDATER");
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Reviewing error lines in file**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '5127,5232p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/utils/Errors.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { Address } from "openzeppelin-contracts/utils/Address.sol";
[codex:1169658] import { ISystemComponent } from "src/interfaces/ISystemComponent.sol";
[codex:1169658] 
[codex:1169658] // solhint-disable max-line-length
[codex:1169658] library Errors {
[codex:1169658]     using Address for address;
[codex:1169658]     ///////////////////////////////////////////////////////////////////
[codex:1169658]     //                       Set errors
[codex:1169658]     ///////////////////////////////////////////////////////////////////
[codex:1169658] 
[codex:1169658]     error AccessDenied();
[codex:1169658]     error ZeroAddress(string paramName);
[codex:1169658]     error ZeroAmount();
[codex:1169658]     error InsufficientBalance(address token);
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Examining AutopoolToken and VaultTypes**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '6313,6323p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/vault/VaultTypes.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] library VaultTypes {
[codex:1169658]     bytes32 public constant LST = keccak256("LST");
[codex:1169658] }
[codex:1169658] 
[codex:1169658] ================================================================================
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Identifying code sections for detailed review**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc 'rg -n "_updateDebtReporting" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] 6100:            AutopoolDebt._updateDebtReporting(_debtReportQueue, _destinationInfo, numToProcess);
[codex:1169658] 6921:    function _updateDebtReporting(
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Examining _updateDebtReporting function**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '6921,7300p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 7ms:
[codex:1169658]     function _updateDebtReporting(
[codex:1169658]         StructuredLinkedList.List storage debtReportQueue,
[codex:1169658]         mapping(address => AutopoolDebt.DestinationInfo) storage destinationInfo,
[codex:1169658]         uint256 numToProcess
[codex:1169658]     ) external returns (IdleDebtUpdates memory result) {
[codex:1169658]         numToProcess = Math.min(numToProcess, debtReportQueue.sizeOf());
[codex:1169658] 
[codex:1169658]         for (uint256 i = 0; i < numToProcess; ++i) {
[codex:1169658]             IDestinationVault destVault = IDestinationVault(debtReportQueue.popHead());
[codex:1169658] 
[codex:1169658]             // Get the reward value we've earned. DV rewards are always in terms of base asset
[codex:1169658]             // We track the gas used purely for off-chain stats purposes
[codex:1169658]             // Main rewarder on DV's store the earned and liquidated rewards
[codex:1169658]             // Extra rewarders are disabled at the DV level
[codex:1169658]             uint256 claimGasUsed = gasleft();
[codex:1169658]             uint256 beforeBaseAsset = IERC20(IAutopool(address(this)).asset()).balanceOf(address(this));
[codex:1169658]             IMainRewarder(destVault.rewarder()).getReward(address(this), address(this), false);
[codex:1169658]             uint256 claimedRewardValue =
[codex:1169658]                 IERC20(IAutopool(address(this)).asset()).balanceOf(address(this)) - beforeBaseAsset;
[codex:1169658]             result.totalIdleIncrease += claimedRewardValue;
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Continuing to review AutopoolDebt section**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '7300,7584p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 5ms:
[codex:1169658]             }
[codex:1169658]         }
[codex:1169658] 
[codex:1169658]         return (info, pulledAssets, debtValueBurned);
[codex:1169658]     }
[codex:1169658] 
[codex:1169658]     /// @notice Perform a removal of assets via the redeem path where the shares are the limiting factor.
[codex:1169658]     /// This means we break out whenever we reach either `assets` retrieved or debt value equivalent to `assets` burned
[codex:1169658]     function redeem(
[codex:1169658]         uint256 assets,
[codex:1169658]         uint256 applicableTotalAssets,
[codex:1169658]         IAutopool.AssetBreakdown storage assetBreakdown,
[codex:1169658]         StructuredLinkedList.List storage withdrawalQueue,
[codex:1169658]         mapping(address => AutopoolDebt.DestinationInfo) storage destinationInfo
[codex:1169658]     ) public returns (uint256 actualAssets, uint256 actualShares, uint256 debtBurned) {
[codex:1169658]         WithdrawInfo memory info = _initiateWithdrawInfo(assets, assetBreakdown);
[codex:1169658] 
[codex:1169658]         // If not enough funds in idle, then pull what we need from destinations
[codex:1169658]         bool exhaustedDestinations = false;
[codex:1169658]         while (info.assetsToPull > 0) {
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Analyzing security risks in AutopoolDebt**
[codex:1169658] 
[codex:1169658] I'm reviewing the AutopoolDebt system for various vulnerabilities like reentrancy, access control, and others, focusing on initialization risks, external calls, and role protections. There’s a complex interplay of initializer exposure, external calls, and reentrancy guards that could allow attackers to hijack initialization or exploit external callbacks if factory controls slip. I’m considering if the lack of access control on some functions or proxies leaves the system vulnerable despite some built-in mitigations. Next, I’ll examine interface methods to look for missing invariants or further issues.
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '3671,3848p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/interfaces/vault/IAutopool.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { AutopoolDebt } from "src/vault/libs/AutopoolDebt.sol";
[codex:1169658] import { IERC4626 } from "src/interfaces/vault/IERC4626.sol";
[codex:1169658] import { Math } from "openzeppelin-contracts/utils/math/Math.sol";
[codex:1169658] import { IAutopoolStrategy } from "src/interfaces/strategy/IAutopoolStrategy.sol";
[codex:1169658] import { IMainRewarder } from "src/interfaces/rewarders/IMainRewarder.sol";
[codex:1169658] import { IERC20Permit } from "openzeppelin-contracts/token/ERC20/extensions/draft-IERC20Permit.sol";
[codex:1169658] 
[codex:1169658] interface IAutopool is IERC4626, IERC20Permit {
[codex:1169658]     enum VaultShutdownStatus {
[codex:1169658]         Active,
[codex:1169658]         Deprecated,
[codex:1169658]         Exploit
[codex:1169658]     }
[codex:1169658] 
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Analyzing token recovery and oracle risks**
[codex:1169658] 
[codex:1169658] I'm unpacking several security concerns: token recovery role possibly draining core assets due to disabled checks; oracle price handling that mixes unsafe spot prices with safe ones, risking debt valuation manipulation; and a flashRebalance function allowing asset outflows without inbound validation, potentially letting privileged solvers drain assets. All these point to complex access control and price manipulation risks worth flagging carefully.
[codex:1169658] exec
[codex:1169658] /bin/bash -lc 'rg -n "struct RebalanceParams" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] 3174:    struct RebalanceParams {
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '3134,3221p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/interfaces/strategy/IStrategy.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { IERC3156FlashBorrower } from "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol";
[codex:1169658] 
[codex:1169658] interface IStrategy {
[codex:1169658]     /* ******************************** */
[codex:1169658]     /*      Events                      */
[codex:1169658]     /* ******************************** */
[codex:1169658]     event DestinationVaultAdded(address destination);
[codex:1169658]     event DestinationVaultRemoved(address destination);
[codex:1169658]     event WithdrawalQueueSet(address[] destinations);
[codex:1169658]     event AddedToRemovalQueue(address destination);
[codex:1169658]     event RemovedFromRemovalQueue(address destination);
[codex:1169658] 
[codex:1169658]     error InvalidDestinationVault();
[codex:1169658] 
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Analyzing rebalance and access control risks**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc 'rg -n "interface IDestinationVault" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-4hvx9oyr succeeded in 7ms:
[codex:1169658] 3960:interface IDestinationVault is ISystemComponent, IBaseAssetVault, IERC20 {
[codex:1169658] 4187:interface IDestinationVaultFactory is ISystemComponent {
[codex:1169658] 4227:interface IDestinationVaultRegistry {
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '3947,4178p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/interfaces/vault/IDestinationVault.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] import { IERC20Metadata as IERC20 } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1169658] 
[codex:1169658] import { IBaseAssetVault } from "src/interfaces/vault/IBaseAssetVault.sol";
[codex:1169658] import { IMainRewarder } from "src/interfaces/rewarders/IMainRewarder.sol";
[codex:1169658] import { IDexLSTStats } from "src/interfaces/stats/IDexLSTStats.sol";
[codex:1169658] import { ISystemComponent } from "src/interfaces/ISystemComponent.sol";
[codex:1169658] 
[codex:1169658] interface IDestinationVault is ISystemComponent, IBaseAssetVault, IERC20 {
[codex:1169658]     enum VaultShutdownStatus {
[codex:1169658]         Active,
[codex:1169658]         Deprecated,
[codex:1169658]         Exploit
[codex:1169658]     }
[codex:1169658] 
[codex:1169658] 
[codex:1169658] 
[codex:1169658] 
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Analyzing potential vulnerabilities and logic consistency**
[codex:1169658] 
[codex:1169658] I'm carefully examining how amounts and shares are used in rebalance and vault functions, noting possible mismatches and assumptions about 1:1 mapping. I’m checking for reentrancy risks, access control issues, and arithmetic edge cases like division by zero, while verifying how external calls and strategy interactions might affect security and correctness. There is a lot to unpack, especially around flashRebalance skipping validation and token recovery access. Let's explore this together!
[codex:1169658] thinking
[codex:1169658] **Evaluating permit usage, reentrancy, and stale debt handling**
[codex:1169658] 
[codex:1169658] I’m reviewing the integrity of permit signatures, internal calls that might allow reentrancy, and the handling of destinations with zero shares in the debt report queue. I’m thinking through how stale debt reports and price oracle calls could cause deposit or withdrawal failures, and how the system’s reliance on frequent debt updates impacts its robustness. There is a lot to consider about internal call patterns and queue management here!
[codex:1169658] thinking
[codex:1169658] **Analyzing price manipulation and fee calculations**
[codex:1169658] 
[codex:1169658] I’m examining how price extremes influence deposit and withdrawal valuations, confirming that conservative estimates protect users rather than expose vulnerabilities. I’m also thinking through fee calculation logic involving exponentiation to check for overflow risks, and reviewing potential unchecked return calls and reentrancy implications in internal contract interactions. There’s a lot going on with these nuanced financial and token operations!
[codex:1169658] thinking
[codex:1169658] **Reviewing role permissions and potential access issues**
[codex:1169658] 
[codex:1169658] I’m digging into role-based access controls, focusing on risk areas like token recovery functions and solver privileges that might allow asset movement without stricter checks. I’m also assessing external calls, unchecked returns, oracle price manipulations with stale data, and fee calculation edge cases to identify meaningful concerns while avoiding speculative findings. It feels like assembling puzzle pieces to produce a clear, evidence-backed audit.
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "nl -ba contracts/src/vault/libs/Autopool4626.sol | sed -n '1,200p'" in /tmp/codex-multi-4hvx9oyr succeeded in 9ms:
[codex:1169658]      1	// SPDX-License-Identifier: UNLICENSED
[codex:1169658]      2	// Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658]      3	
[codex:1169658]      4	pragma solidity 0.8.17;
[codex:1169658]      5	
[codex:1169658]      6	import { Errors } from "src/utils/Errors.sol";
[codex:1169658]      7	import { AutopoolFees } from "src/vault/libs/AutopoolFees.sol";
[codex:1169658]      8	import { AutopoolToken } from "src/vault/libs/AutopoolToken.sol";
[codex:1169658]      9	import { AutopoolDebt } from "src/vault/libs/AutopoolDebt.sol";
[codex:1169658]     10	import { IAutopool } from "src/interfaces/vault/IAutopool.sol";
[codex:1169658]     11	import { IERC20Metadata } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1169658]     12	import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1169658]     13	import { StructuredLinkedList } from "src/strategy/StructuredLinkedList.sol";
[codex:1169658]     14	import { WithdrawalQueue } from "src/strategy/WithdrawalQueue.sol";
[codex:1169658]     15	
[codex:1169658]     16	library Autopool4626 {
[codex:1169658]     17	    using SafeERC20 for IERC20Metadata;
[codex:1169658]     18	    using WithdrawalQueue for StructuredLinkedList.List;
[codex:1169658]     19	    using AutopoolToken for AutopoolToken.TokenData;
[codex:1169658]     20	
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Noting lines and examining potential vulnerability**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "nl -ba contracts/src/vault/libs/AutopoolDebt.sol | sed -n '1,200p'" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658]      1	// SPDX-License-Identifier: UNLICENSED
[codex:1169658]      2	// Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658]      3	
[codex:1169658]      4	pragma solidity 0.8.17;
[codex:1169658]      5	
[codex:1169658]      6	import { Errors } from "src/utils/Errors.sol";
[codex:1169658]      7	import { LibAdapter } from "src/libs/LibAdapter.sol";
[codex:1169658]      8	import { IDestinationVault } from "src/interfaces/vault/IDestinationVault.sol";
[codex:1169658]      9	import { Math } from "openzeppelin-contracts/utils/math/Math.sol";
[codex:1169658]     10	import { EnumerableSet } from "openzeppelin-contracts/utils/structs/EnumerableSet.sol";
[codex:1169658]     11	import { IStrategy } from "src/interfaces/strategy/IStrategy.sol";
[codex:1169658]     12	import { SafeERC20 } from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1169658]     13	import { IERC20Metadata as IERC20 } from "openzeppelin-contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1169658]     14	import { IERC3156FlashBorrower } from "openzeppelin-contracts/interfaces/IERC3156FlashBorrower.sol";
[codex:1169658]     15	import { IAutopoolStrategy } from "src/interfaces/strategy/IAutopoolStrategy.sol";
[codex:1169658]     16	import { StructuredLinkedList } from "src/strategy/StructuredLinkedList.sol";
[codex:1169658]     17	import { WithdrawalQueue } from "src/strategy/WithdrawalQueue.sol";
[codex:1169658]     18	import { IAutopool } from "src/interfaces/vault/IAutopool.sol";
[codex:1169658]     19	import { IMainRewarder } from "src/interfaces/rewarders/IMainRewarder.sol";
[codex:1169658]     20	import { AutopoolToken } from "src/vault/libs/AutopoolToken.sol";
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Analyzing potential vulnerabilities and edge cases**
[codex:1169658] 
[codex:1169658] I’m reviewing several areas, including reentrancy risks, unchecked external calls, and arithmetic edge cases like underflows or division by zero. There’s one especially interesting risk where a revert inside functions using the `trackNavOps` modifier could leave a lock active, potentially causing a denial-of-service by blocking further operations. I’m checking related interfaces and flows to see how serious this might be.
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "sed -n '2589,2611p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-4hvx9oyr succeeded in 6ms:
[codex:1169658] FILE: contracts/src/interfaces/security/ISystemSecurity.sol
[codex:1169658] ================================================================================
[codex:1169658] // SPDX-License-Identifier: UNLICENSED
[codex:1169658] // Copyright (c) 2023 Tokemak Foundation. All rights reserved.
[codex:1169658] pragma solidity 0.8.17;
[codex:1169658] 
[codex:1169658] interface ISystemSecurity {
[codex:1169658]     /// @notice Get the number of NAV/share operations currently in progress
[codex:1169658]     /// @return Number of operations
[codex:1169658]     function navOpsInProgress() external view returns (uint256);
[codex:1169658] 
[codex:1169658]     /// @notice Called at the start of any NAV/share changing operation
[codex:1169658]     function enterNavOperation() external;
[codex:1169658] 
[codex:1169658]     /// @notice Called at the end of any NAV/share changing operation
[codex:1169658]     function exitNavOperation() external;
[codex:1169658] 
[codex:1169658]     /// @notice Whether or not the system as a whole is paused
[codex:1169658]     function isSystemPaused() external returns (bool);
[codex:1169658] }
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Analyzing potential reentrancy and arithmetic issues**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc 'rg -n "delegatecall" contracts/src' in /tmp/codex-multi-4hvx9oyr exited 1 in 10ms:
[codex:1169658] 
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Searching for low-level calls**
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "rg -n \"call\\{ value\" contracts/src" in /tmp/codex-multi-4hvx9oyr succeeded in 16ms:
[codex:1169658] contracts/src/vault/libs/Autopool4626.sol:173:                payable(destination).call{ value: amount };
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Analyzing potential flashRebalance exploit and permit signature risks**
[codex:1169658] 
[codex:1169658] I'm carefully examining the flashRebalance function for vulnerabilities related to attacker-controlled parameters and the possibility of withdrawing underlying tokens without proper checks. I'm also considering the reliability of AutopoolToken.permit's DOMAIN_SEPARATOR usage for signature safety and searching for low-level call patterns to uncover other risks.
[codex:1169658] exec
[codex:1169658] /bin/bash -lc "rg -n \"low-level|call\\(|call\\{|delegatecall|staticcall\" contracts/src" in /tmp/codex-multi-4hvx9oyr succeeded in 10ms:
[codex:1169658] contracts/src/vault/libs/AutopoolDebt.sol:1024:            // solhint-disable avoid-low-level-calls
[codex:1169658] contracts/src/vault/libs/AutopoolDebt.sol:1025:            // slither-disable-next-line missing-zero-check,low-level-calls
[codex:1169658] contracts/src/vault/libs/AutopoolDebt.sol:1026:            (bool success, bytes memory returnData) = address(this).call(functionCallEncoded);
[codex:1169658] contracts/src/vault/libs/AutopoolDebt.sol:1027:            // solhint-enable avoid-low-level-calls
[codex:1169658] contracts/src/vault/libs/Autopool4626.sol:172:                // solhint-disable-next-line avoid-low-level-calls
[codex:1169658] contracts/src/vault/libs/Autopool4626.sol:173:                payable(destination).call{ value: amount };
[codex:1169658] 
[codex:1169658] thinking
[codex:1169658] **Preparing detailed vulnerability report**
[codex:1169658] 
[codex:1169658] I'm organizing all the outlined findings into a structured JSON that categorizes each issue's severity, type, evidence, and recommendations. This includes crafting clear descriptions for the SOLVER flashRebalance exploit, token recovery misuse, and unchecked ETH calls, with exact file path locations and line numbers for each. I want to ensure the output matches the required schema with carefully formatted strings for clarity and valid JSON.
[codex:1169658] codex
[codex:1169658] {"no_findings":false,"summary":"Identified one high-severity access control gap in flash rebalances, one medium-severity privileged asset sweep issue, and one low-severity unchecked ETH transfer in the recovery path.","findings":[{"severity":"high","category":"access_control","title":"Zero-in flashRebalance bypasses strategy validation and allows asset extraction","exploit_scenario":"A caller with the SOLVER role can invoke `flashRebalance` with `amountIn == 0` and `amountOut > 0`, setting `receiver` to an attacker-controlled address. `_handleRebalanceOut` will transfer assets out (idle base asset or destination underlyer) and accounting is updated, but `verifyRebalance` is never called because it is gated by `amountIn > 0`, allowing unvalidated net outflows.","recommendation":"Require `amountIn > 0` for flash rebalances or run `autoPoolStrategy.verifyRebalance` unconditionally. Alternatively enforce value-in >= value-out or restrict `receiver` for zero-in paths to prevent external extraction.","evidence":"`verifyRebalance` is only executed inside `if (params.amountIn > 0)`, while `_handleRebalanceOut` executes regardless and can transfer assets to `receiver`.","locations":["contracts/src/vault/libs/AutopoolDebt.sol:127","contracts/src/vault/libs/AutopoolDebt.sol:156","contracts/src/vault/libs/AutopoolDebt.sol:180"]},{"severity":"medium","category":"access_control","title":"Token recovery can sweep tracked assets due to disabled safety checks","exploit_scenario":"The `TOKEN_RECOVERY_MANAGER` role can call `recover` with the base asset, vault shares, or destination vault tokens and transfer them to an arbitrary destination. The intended guardrails to prevent sweeping tracked assets are commented out, so a compromised or over-privileged recovery manager can drain user funds.","recommendation":"Reinstate and enforce the tracked-asset checks (vault shares, base asset, registered destinations) or introduce an explicit allowlist of recoverable tokens. Consider separating the dust-sweeper role from any role that can move core assets.","evidence":"The guard that blocks recovery of the vault token, base asset, and destination tokens is commented out, leaving only a blind transfer loop.","locations":["contracts/src/vault/libs/Autopool4626.sol:144","contracts/src/vault/libs/Autopool4626.sol:155","contracts/src/vault/libs/Autopool4626.sol:169"]},{"severity":"low","category":"other","title":"Unchecked ETH transfer in recover can silently fail","exploit_scenario":"If `destination` is a non-payable contract or reverts on receive, the low-level ETH `call` fails but the function does not check the return value. The call will silently fail while `TokensRecovered` is emitted, potentially leading to stuck ETH or misleading accounting.","recommendation":"Check the boolean return value and revert on failure or use `Address.sendValue` to enforce success.","evidence":"`payable(destination).call{ value: amount };` is executed without checking the success flag.","locations":["contracts/src/vault/libs/Autopool4626.sol:172"]}]}
[codex:1169658] tokens used
[codex:1169658] 131,945
[codex:1169658] {"no_findings":false,"summary":"Identified one high-severity access control gap in flash rebalances, one medium-severity privileged asset sweep issue, and one low-severity unchecked ETH transfer in the recovery path.","findings":[{"severity":"high","category":"access_control","title":"Zero-in flashRebalance bypasses strategy validation and allows asset extraction","exploit_scenario":"A caller with the SOLVER role can invoke `flashRebalance` with `amountIn == 0` and `amountOut > 0`, setting `receiver` to an attacker-controlled address. `_handleRebalanceOut` will transfer assets out (idle base asset or destination underlyer) and accounting is updated, but `verifyRebalance` is never called because it is gated by `amountIn > 0`, allowing unvalidated net outflows.","recommendation":"Require `amountIn > 0` for flash rebalances or run `autoPoolStrategy.verifyRebalance` unconditionally. Alternatively enforce value-in >= value-out or restrict `receiver` for zero-in paths to prevent external extraction.","evidence":"`verifyRebalance` is only executed inside `if (params.amountIn > 0)`, while `_handleRebalanceOut` executes regardless and can transfer assets to `receiver`.","locations":["contracts/src/vault/libs/AutopoolDebt.sol:127","contracts/src/vault/libs/AutopoolDebt.sol:156","contracts/src/vault/libs/AutopoolDebt.sol:180"]},{"severity":"medium","category":"access_control","title":"Token recovery can sweep tracked assets due to disabled safety checks","exploit_scenario":"The `TOKEN_RECOVERY_MANAGER` role can call `recover` with the base asset, vault shares, or destination vault tokens and transfer them to an arbitrary destination. The intended guardrails to prevent sweeping tracked assets are commented out, so a compromised or over-privileged recovery manager can drain user funds.","recommendation":"Reinstate and enforce the tracked-asset checks (vault shares, base asset, registered destinations) or introduce an explicit allowlist of recoverable tokens. Consider separating the dust-sweeper role from any role that can move core assets.","evidence":"The guard that blocks recovery of the vault token, base asset, and destination tokens is commented out, leaving only a blind transfer loop.","locations":["contracts/src/vault/libs/Autopool4626.sol:144","contracts/src/vault/libs/Autopool4626.sol:155","contracts/src/vault/libs/Autopool4626.sol:169"]},{"severity":"low","category":"other","title":"Unchecked ETH transfer in recover can silently fail","exploit_scenario":"If `destination` is a non-payable contract or reverts on receive, the low-level ETH `call` fails but the function does not check the return value. The call will silently fail while `TokensRecovered` is emitted, potentially leading to stuck ETH or misleading accounting.","recommendation":"Check the boolean return value and revert on failure or use `Address.sendValue` to enforce success.","evidence":"`payable(destination).call{ value: amount };` is executed without checking the success flag.","locations":["contracts/src/vault/libs/Autopool4626.sol:172"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T04:55:40.795169+00:00",
        "returncode": 0
    },
    "summary": "Identified one high-severity access control gap in flash rebalances, one medium-severity privileged asset sweep issue, and one low-severity unchecked ETH transfer in the recovery path.",
    "raw_final": {
        "summary": "Identified one high-severity access control gap in flash rebalances, one medium-severity privileged asset sweep issue, and one low-severity unchecked ETH transfer in the recovery path.",
        "findings": [
            {
                "title": "Zero-in flashRebalance bypasses strategy validation and allows asset extraction",
                "category": "access_control",
                "evidence": "`verifyRebalance` is only executed inside `if (params.amountIn > 0)`, while `_handleRebalanceOut` executes regardless and can transfer assets to `receiver`.",
                "severity": "high",
                "locations": [
                    "contracts/src/vault/libs/AutopoolDebt.sol:127",
                    "contracts/src/vault/libs/AutopoolDebt.sol:156",
                    "contracts/src/vault/libs/AutopoolDebt.sol:180"
                ],
                "recommendation": "Require `amountIn > 0` for flash rebalances or run `autoPoolStrategy.verifyRebalance` unconditionally. Alternatively enforce value-in >= value-out or restrict `receiver` for zero-in paths to prevent external extraction.",
                "exploit_scenario": "A caller with the SOLVER role can invoke `flashRebalance` with `amountIn == 0` and `amountOut > 0`, setting `receiver` to an attacker-controlled address. `_handleRebalanceOut` will transfer assets out (idle base asset or destination underlyer) and accounting is updated, but `verifyRebalance` is never called because it is gated by `amountIn > 0`, allowing unvalidated net outflows."
            },
            {
                "title": "Token recovery can sweep tracked assets due to disabled safety checks",
                "category": "access_control",
                "evidence": "The guard that blocks recovery of the vault token, base asset, and destination tokens is commented out, leaving only a blind transfer loop.",
                "severity": "medium",
                "locations": [
                    "contracts/src/vault/libs/Autopool4626.sol:144",
                    "contracts/src/vault/libs/Autopool4626.sol:155",
                    "contracts/src/vault/libs/Autopool4626.sol:169"
                ],
                "recommendation": "Reinstate and enforce the tracked-asset checks (vault shares, base asset, registered destinations) or introduce an explicit allowlist of recoverable tokens. Consider separating the dust-sweeper role from any role that can move core assets.",
                "exploit_scenario": "The `TOKEN_RECOVERY_MANAGER` role can call `recover` with the base asset, vault shares, or destination vault tokens and transfer them to an arbitrary destination. The intended guardrails to prevent sweeping tracked assets are commented out, so a compromised or over-privileged recovery manager can drain user funds."
            },
            {
                "title": "Unchecked ETH transfer in recover can silently fail",
                "category": "other",
                "evidence": "`payable(destination).call{ value: amount };` is executed without checking the success flag.",
                "severity": "low",
                "locations": [
                    "contracts/src/vault/libs/Autopool4626.sol:172"
                ],
                "recommendation": "Check the boolean return value and revert on failure or use `Address.sendValue` to enforce success.",
                "exploit_scenario": "If `destination` is a non-payable contract or reverts on receive, the low-level ETH `call` fails but the function does not check the return value. The call will silently fail while `TokensRecovered` is emitted, potentially leading to stuck ETH or misleading accounting."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
25
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
31
EXT*/BALANCE
17
Total opcodes
13586
Flags
delegatecall_present heavy_ext_balance_usage call_family_heavy
View cast disassembly output
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 0x0454
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x8456cb59
00000026: GT
00000027: PUSH2 0x0241
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xc63d75b6
00000031: GT
00000032: PUSH2 0x013b
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xda62e064
0000003c: GT
0000003d: PUSH2 0x00c3
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xe50d8b26
00000047: GT
00000048: PUSH2 0x0087
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xe50d8b26
00000052: EQ
00000053: PUSH2 0x0b2c
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xe9f45bec
0000005d: EQ
0000005e: PUSH2 0x0bd8
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xef8b30f7
00000068: EQ
00000069: PUSH2 0x0beb
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0xf12baf5c
00000073: EQ
00000074: PUSH2 0x0bfe
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0xfc468021
0000007e: EQ
0000007f: PUSH2 0x0c24
00000082: JUMPI
00000083: PUSH1 0x00
00000085: DUP1
00000086: REVERT
00000087: JUMPDEST
00000088: DUP1
00000089: PUSH4 0xda62e064
0000008e: EQ
0000008f: PUSH2 0x0aa7
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0xdc47c23a
00000099: EQ
0000009a: PUSH2 0x0aba
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0xdcc3e06e
000000a4: EQ
000000a5: PUSH2 0x0acd
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0xdd62ed3e
000000af: EQ
000000b0: PUSH2 0x0ae0
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0xe225df1b
000000ba: EQ
000000bb: PUSH2 0x0b19
000000be: JUMPI
000000bf: PUSH1 0x00
000000c1: DUP1
000000c2: REVERT
000000c3: JUMPDEST
000000c4: DUP1
000000c5: PUSH4 0xd505accf
000000ca: GT
000000cb: PUSH2 0x010a
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xd505accf
000000d5: EQ
000000d6: PUSH2 0x0a3d
000000d9: JUMPI
000000da: DUP1
000000db: PUSH4 0xd54ffc0b
000000e0: EQ
000000e1: PUSH2 0x0a50
000000e4: JUMPI
000000e5: DUP1
000000e6: PUSH4 0xd905777e
000000eb: EQ
000000ec: PUSH2 0x0a79
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0xd9a0e97a
000000f6: EQ
000000f7: PUSH2 0x0a8c
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0xd9ac22d1
00000101: EQ
00000102: PUSH2 0x0a94
00000105: JUMPI
00000106: PUSH1 0x00
00000108: DUP1
00000109: REVERT
0000010a: JUMPDEST
0000010b: DUP1
0000010c: PUSH4 0xc63d75b6
00000111: EQ
00000112: PUSH2 0x09f1
00000115: JUMPI
00000116: DUP1
00000117: PUSH4 0xc6e6f592
0000011c: EQ
0000011d: PUSH2 0x0a04
00000120: JUMPI
00000121: DUP1
00000122: PUSH4 0xc7575dac
00000127: EQ
00000128: PUSH2 0x0a17
0000012b: JUMPI
0000012c: DUP1
0000012d: PUSH4 0xce96cb77
00000132: EQ
00000133: PUSH2 0x0a2a
00000136: JUMPI
00000137: PUSH1 0x00
00000139: DUP1
0000013a: REVERT
0000013b: JUMPDEST
0000013c: DUP1
0000013d: PUSH4 0xb3d7f6b9
00000142: GT
00000143: PUSH2 0x01c9
00000146: JUMPI
00000147: DUP1
00000148: PUSH4 0xbc43cbaf
0000014d: GT
0000014e: PUSH2 0x018d
00000151: JUMPI
00000152: DUP1
00000153: PUSH4 0xbc43cbaf
00000158: EQ
00000159: PUSH2 0x0972
0000015c: JUMPI
0000015d: DUP1
0000015e: PUSH4 0xbef893e8
00000163: EQ
00000164: PUSH2 0x0999
00000167: JUMPI
00000168: DUP1
00000169: PUSH4 0xbf86d690
0000016e: EQ
0000016f: PUSH2 0x09ac
00000172: JUMPI
00000173: DUP1
00000174: PUSH4 0xc2ee3a08
00000179: EQ
0000017a: PUSH2 0x09b7
0000017d: JUMPI
0000017e: DUP1
0000017f: PUSH4 0xc45a0155
00000184: EQ
00000185: PUSH2 0x09de
00000188: JUMPI
00000189: PUSH1 0x00
0000018b: DUP1
0000018c: REVERT
0000018d: JUMPDEST
0000018e: DUP1
0000018f: PUSH4 0xb3d7f6b9
00000194: EQ
00000195: PUSH2 0x091e
00000198: JUMPI
00000199: DUP1
0000019a: PUSH4 0xb460af94
0000019f: EQ
000001a0: PUSH2 0x0931
000001a3: JUMPI
000001a4: DUP1
000001a5: PUSH4 0xb639a0c1
000001aa: EQ
000001ab: PUSH2 0x0944
000001ae: JUMPI
000001af: DUP1
000001b0: PUSH4 0xba087652
000001b5: EQ
000001b6: PUSH2 0x094c
000001b9: JUMPI
000001ba: DUP1
000001bb: PUSH4 0xba689a12
000001c0: EQ
000001c1: PUSH2 0x095f
000001c4: JUMPI
000001c5: PUSH1 0x00
000001c7: DUP1
000001c8: REVERT
000001c9: JUMPDEST
000001ca: DUP1
000001cb: PUSH4 0x9a0dbc02
000001d0: GT
000001d1: PUSH2 0x0210
000001d4: JUMPI
000001d5: DUP1
000001d6: PUSH4 0x9a0dbc02
000001db: EQ
000001dc: PUSH2 0x08c9
000001df: JUMPI
000001e0: DUP1
000001e1: PUSH4 0x9e93ad8e
000001e6: EQ
000001e7: PUSH2 0x08dc
000001ea: JUMPI
000001eb: DUP1
000001ec: PUSH4 0xa9059cbb
000001f1: EQ
000001f2: PUSH2 0x08e5
000001f5: JUMPI
000001f6: DUP1
000001f7: PUSH4 0xa90a227a
000001fc: EQ
000001fd: PUSH2 0x08f8
00000200: JUMPI
00000201: DUP1
00000202: PUSH4 0xae35f432
00000207: EQ
00000208: PUSH2 0x090b
0000020b: JUMPI
0000020c: PUSH1 0x00
0000020e: DUP1
0000020f: REVERT
00000210: JUMPDEST
00000211: DUP1
00000212: PUSH4 0x8456cb59
00000217: EQ
00000218: PUSH2 0x0893
0000021b: JUMPI
0000021c: DUP1
0000021d: PUSH4 0x92804c6c
00000222: EQ
00000223: PUSH2 0x089b
00000226: JUMPI
00000227: DUP1
00000228: PUSH4 0x94bf804d
0000022d: EQ
0000022e: PUSH2 0x08ae
00000231: JUMPI
00000232: DUP1
00000233: PUSH4 0x95d89b41
00000238: EQ
00000239: PUSH2 0x08c1
0000023c: JUMPI
0000023d: PUSH1 0x00
0000023f: DUP1
00000240: REVERT
00000241: JUMPDEST
00000242: DUP1
00000243: PUSH4 0x3f4ba83a
00000248: GT
00000249: PUSH2 0x0352
0000024c: JUMPI
0000024d: DUP1
0000024e: PUSH4 0x5c975abb
00000253: GT
00000254: PUSH2 0x02da
00000257: JUMPI
00000258: DUP1
00000259: PUSH4 0x70a08231
0000025e: GT
0000025f: PUSH2 0x029e
00000262: JUMPI
00000263: DUP1
00000264: PUSH4 0x70a08231
00000269: EQ
0000026a: PUSH2 0x0829
0000026d: JUMPI
0000026e: DUP1
0000026f: PUSH4 0x77f748d0
00000274: EQ
00000275: PUSH2 0x083c
00000278: JUMPI
00000279: DUP1
0000027a: PUSH4 0x7ecebe00
0000027f: EQ
00000280: PUSH2 0x084f
00000283: JUMPI
00000284: DUP1
00000285: PUSH4 0x804a4219
0000028a: EQ
0000028b: PUSH2 0x0878
0000028e: JUMPI
0000028f: DUP1
00000290: PUSH4 0x8063e2b6
00000295: EQ
00000296: PUSH2 0x088b
00000299: JUMPI
0000029a: PUSH1 0x00
0000029c: DUP1
0000029d: REVERT
0000029e: JUMPDEST
0000029f: DUP1
000002a0: PUSH4 0x5c975abb
000002a5: EQ
000002a6: PUSH2 0x07ad
000002a9: JUMPI
000002aa: DUP1
000002ab: PUSH4 0x66c2072e
000002b0: EQ
000002b1: PUSH2 0x07b5
000002b4: JUMPI
000002b5: DUP1
000002b6: PUSH4 0x6e553f65
000002bb: EQ
000002bc: PUSH2 0x07c8
000002bf: JUMPI
000002c0: DUP1
000002c1: PUSH4 0x6f6f3821
000002c6: EQ
000002c7: PUSH2 0x07db
000002ca: JUMPI
000002cb: DUP1
000002cc: PUSH4 0x6fcb5f3d
000002d1: EQ
000002d2: PUSH2 0x07ee
000002d5: JUMPI
000002d6: PUSH1 0x00
000002d8: DUP1
000002d9: REVERT
000002da: JUMPDEST
000002db: DUP1
000002dc: PUSH4 0x4cdad506
000002e1: GT
000002e2: PUSH2 0x0321
000002e5: JUMPI
000002e6: DUP1
000002e7: PUSH4 0x4cdad506
000002ec: EQ
000002ed: PUSH2 0x076e
000002f0: JUMPI
000002f1: DUP1
000002f2: PUSH4 0x4e6fd6c4
000002f7: EQ
000002f8: PUSH2 0x0781
000002fb: JUMPI
000002fc: DUP1
000002fd: PUSH4 0x53589b74
00000302: EQ
00000303: PUSH2 0x078a
00000306: JUMPI
00000307: DUP1
00000308: PUSH4 0x544407e2
0000030d: EQ
0000030e: PUSH2 0x0792
00000311: JUMPI
00000312: DUP1
00000313: PUSH4 0x5ba536bc
00000318: EQ
00000319: PUSH2 0x07a5
0000031c: JUMPI
0000031d: PUSH1 0x00
0000031f: DUP1
00000320: REVERT
00000321: JUMPDEST
00000322: DUP1
00000323: PUSH4 0x3f4ba83a
00000328: EQ
00000329: PUSH2 0x0719
0000032c: JUMPI
0000032d: DUP1
0000032e: PUSH4 0x402d267d
00000333: EQ
00000334: PUSH2 0x0721
00000337: JUMPI
00000338: DUP1
00000339: PUSH4 0x48b80c5d
0000033e: EQ
0000033f: PUSH2 0x0734
00000342: JUMPI
00000343: DUP1
00000344: PUSH4 0x4ac032be
00000349: EQ
0000034a: PUSH2 0x0747
0000034d: JUMPI
0000034e: PUSH1 0x00
00000350: DUP1
00000351: REVERT
00000352: JUMPDEST
00000353: DUP1
00000354: PUSH4 0x23b872dd
00000359: GT
0000035a: PUSH2 0x03e0
0000035d: JUMPI
0000035e: DUP1
0000035f: PUSH4 0x2ec746bf
00000364: GT
00000365: PUSH2 0x03a4
00000368: JUMPI
00000369: DUP1
0000036a: PUSH4 0x2ec746bf
0000036f: EQ
00000370: PUSH2 0x05b4
00000373: JUMPI
00000374: DUP1
00000375: PUSH4 0x313ce567
0000037a: EQ
0000037b: PUSH2 0x05df
0000037e: JUMPI
0000037f: DUP1
00000380: PUSH4 0x3644e515
00000385: EQ
00000386: PUSH2 0x0610
00000389: JUMPI
0000038a: DUP1
0000038b: PUSH4 0x38d52e0f
00000390: EQ
00000391: PUSH2 0x06e0
00000394: JUMPI
00000395: DUP1
00000396: PUSH4 0x3a6462e4
0000039b: EQ
0000039c: PUSH2 0x0706
0000039f: JUMPI
000003a0: PUSH1 0x00
000003a2: DUP1
000003a3: REVERT
000003a4: JUMPDEST
000003a5: DUP1
000003a6: PUSH4 0x23b872dd
000003ab: EQ
000003ac: PUSH2 0x054c
000003af: JUMPI
000003b0: DUP1
000003b1: PUSH4 0x267eb9ed
000003b6: EQ
000003b7: PUSH2 0x055f
000003ba: JUMPI
000003bb: DUP1
000003bc: PUSH4 0x295b001f
000003c1: EQ
000003c2: PUSH2 0x0574
000003c5: JUMPI
000003c6: DUP1
000003c7: PUSH4 0x2b38400e
000003cc: EQ
000003cd: PUSH2 0x0587
000003d0: JUMPI
000003d1: DUP1
000003d2: PUSH4 0x2e4c9697
000003d7: EQ
000003d8: PUSH2 0x059c
000003db: JUMPI
000003dc: PUSH1 0x00
000003de: DUP1
000003df: REVERT
000003e0: JUMPDEST
000003e1: DUP1
000003e2: PUSH4 0x0a28a477
000003e7: GT
000003e8: PUSH2 0x0427
000003eb: JUMPI
000003ec: DUP1
000003ed: PUSH4 0x0a28a477
000003f2: EQ
000003f3: PUSH2 0x04bf
000003f6: JUMPI
000003f7: DUP1
000003f8: PUSH4 0x0e73ecef
000003fd: EQ
000003fe: PUSH2 0x04d2
00000401: JUMPI
00000402: DUP1
00000403: PUSH4 0x18160ddd
00000408: EQ
00000409: PUSH2 0x04e7
0000040c: JUMPI
0000040d: DUP1
0000040e: PUSH4 0x19004142
00000413: EQ
00000414: PUSH2 0x04ef
00000417: JUMPI
00000418: DUP1
00000419: PUSH4 0x19e65034
0000041e: EQ
0000041f: PUSH2 0x0544
00000422: JUMPI
00000423: PUSH1 0x00
00000425: DUP1
00000426: REVERT
00000427: JUMPDEST
00000428: DUP1
00000429: PUSH4 0x01e1d114
0000042e: EQ
0000042f: PUSH2 0x0459
00000432: JUMPI
00000433: DUP1
00000434: PUSH4 0x06fdde03
00000439: EQ
0000043a: PUSH2 0x0474
0000043d: JUMPI
0000043e: DUP1
0000043f: PUSH4 0x07a2d13a
00000444: EQ
00000445: PUSH2 0x0489
00000448: JUMPI
00000449: DUP1
0000044a: PUSH4 0x095ea7b3
0000044f: EQ
00000450: PUSH2 0x049c
00000453: JUMPI
00000454: JUMPDEST
00000455: PUSH1 0x00
00000457: DUP1
00000458: REVERT
00000459: JUMPDEST
0000045a: PUSH2 0x0461
0000045d: PUSH2 0x0c2e
00000460: JUMP
00000461: JUMPDEST
00000462: PUSH1 0x40
00000464: MLOAD
00000465: SWAP1
00000466: DUP2
00000467: MSTORE
00000468: PUSH1 0x20
0000046a: ADD
0000046b: JUMPDEST
0000046c: PUSH1 0x40
0000046e: MLOAD
0000046f: DUP1
00000470: SWAP2
00000471: SUB
00000472: SWAP1
00000473: RETURN
00000474: JUMPDEST
00000475: PUSH2 0x047c
00000478: PUSH2 0x0cb1
0000047b: JUMP
0000047c: JUMPDEST
0000047d: PUSH1 0x40
0000047f: MLOAD
00000480: PUSH2 0x046b
00000483: SWAP2
00000484: SWAP1
00000485: PUSH2 0x472a
00000488: JUMP
00000489: JUMPDEST
0000048a: PUSH2 0x0461
0000048d: PUSH2 0x0497
00000490: CALLDATASIZE
00000491: PUSH1 0x04
00000493: PUSH2 0x473d
00000496: JUMP
00000497: JUMPDEST
00000498: PUSH2 0x0d43
0000049b: JUMP
0000049c: JUMPDEST
0000049d: PUSH2 0x04af
000004a0: PUSH2 0x04aa
000004a3: CALLDATASIZE
000004a4: PUSH1 0x04
000004a6: PUSH2 0x476b
000004a9: JUMP
000004aa: JUMPDEST
000004ab: PUSH2 0x0d68
000004ae: JUMP
000004af: JUMPDEST
000004b0: PUSH1 0x40
000004b2: MLOAD
000004b3: SWAP1
000004b4: ISZERO
000004b5: ISZERO
000004b6: DUP2
000004b7: MSTORE
000004b8: PUSH1 0x20
000004ba: ADD
000004bb: PUSH2 0x046b
000004be: JUMP
000004bf: JUMPDEST
000004c0: PUSH2 0x0461
000004c3: PUSH2 0x04cd
000004c6: CALLDATASIZE
000004c7: PUSH1 0x04
000004c9: PUSH2 0x473d
000004cc: JUMP
000004cd: JUMPDEST
000004ce: PUSH2 0x0dfd
000004d1: JUMP
000004d2: JUMPDEST
000004d3: PUSH2 0x04da
000004d6: PUSH2 0x0ec9
000004d9: JUMP
000004da: JUMPDEST
000004db: PUSH1 0x40
000004dd: MLOAD
000004de: PUSH2 0x046b
000004e1: SWAP2
000004e2: SWAP1
000004e3: PUSH2 0x4797
000004e6: JUMP
000004e7: JUMPDEST
000004e8: PUSH2 0x0461
000004eb: PUSH2 0x0f45
000004ee: JUMP
000004ef: JUMPDEST
000004f0: PUSH2 0x0502
000004f3: PUSH2 0x04fd
000004f6: CALLDATASIZE
000004f7: PUSH1 0x04
000004f9: PUSH2 0x47e4
000004fc: JUMP
000004fd: JUMPDEST
000004fe: PUSH2 0x0f87
00000501: JUMP
00000502: JUMPDEST
00000503: PUSH1 0x40
00000505: MLOAD
00000506: PUSH2 0x046b
00000509: SWAP2
0000050a: SWAP1
0000050b: PUSH1 0x00
0000050d: PUSH1 0xa0
0000050f: DUP3
00000510: ADD
00000511: SWAP1
00000512: POP
00000513: DUP3
00000514: MLOAD
00000515: DUP3
00000516: MSTORE
00000517: PUSH1 0x20
00000519: DUP4
0000051a: ADD
0000051b: MLOAD
0000051c: PUSH1 0x20
0000051e: DUP4
0000051f: ADD
00000520: MSTORE
00000521: PUSH1 0x40
00000523: DUP4
00000524: ADD
00000525: MLOAD
00000526: PUSH1 0x40
00000528: DUP4
00000529: ADD
0000052a: MSTORE
0000052b: PUSH1 0x60
0000052d: DUP4
0000052e: ADD
0000052f: MLOAD
00000530: PUSH1 0x60
00000532: DUP4
00000533: ADD
00000534: MSTORE
00000535: PUSH1 0x80
00000537: DUP4
00000538: ADD
00000539: MLOAD
0000053a: PUSH1 0x80
0000053c: DUP4
0000053d: ADD
0000053e: MSTORE
0000053f: SWAP3
00000540: SWAP2
00000541: POP
00000542: POP
00000543: JUMP
00000544: JUMPDEST
00000545: PUSH2 0x04da
00000548: PUSH2 0x1011
0000054b: JUMP
0000054c: JUMPDEST
0000054d: PUSH2 0x04af
00000550: PUSH2 0x055a
00000553: CALLDATASIZE
00000554: PUSH1 0x04
00000556: PUSH2 0x4801
00000559: JUMP
0000055a: JUMPDEST
0000055b: PUSH2 0x101d
0000055e: JUMP
0000055f: JUMPDEST
00000560: PUSH2 0x0572
00000563: PUSH2 0x056d
00000566: CALLDATASIZE
00000567: PUSH1 0x04
00000569: PUSH2 0x496d
0000056c: JUMP
0000056d: JUMPDEST
0000056e: PUSH2 0x10c1
00000571: JUMP
00000572: JUMPDEST
00000573: STOP
00000574: JUMPDEST
00000575: PUSH2 0x0572
00000578: PUSH2 0x0582
0000057b: CALLDATASIZE
0000057c: PUSH1 0x04
0000057e: PUSH2 0x4a28
00000581: JUMP
00000582: JUMPDEST
00000583: PUSH2 0x13cd
00000586: JUMP
00000587: JUMPDEST
00000588: PUSH2 0x058f
0000058b: PUSH2 0x153c
0000058e: JUMP
0000058f: JUMPDEST
00000590: PUSH1 0x40
00000592: MLOAD
00000593: PUSH2 0x046b
00000596: SWAP2
00000597: SWAP1
00000598: PUSH2 0x4a45
0000059b: JUMP
0000059c: JUMPDEST
0000059d: PUSH1 0x0d
0000059f: SLOAD
000005a0: PUSH2 0x0100
000005a3: SWAP1
000005a4: DIV
000005a5: PUSH1 0xff
000005a7: AND
000005a8: PUSH1 0x40
000005aa: MLOAD
000005ab: PUSH2 0x046b
000005ae: SWAP2
000005af: SWAP1
000005b0: PUSH2 0x4b0a
000005b3: JUMP
000005b4: JUMPDEST
000005b5: PUSH1 0x26
000005b7: SLOAD
000005b8: PUSH2 0x05c7
000005bb: SWAP1
000005bc: PUSH1 0x01
000005be: PUSH1 0x01
000005c0: PUSH1 0xa0
000005c2: SHL
000005c3: SUB
000005c4: AND
000005c5: DUP2
000005c6: JUMP
000005c7: JUMPDEST
000005c8: PUSH1 0x40
000005ca: MLOAD
000005cb: PUSH1 0x01
000005cd: PUSH1 0x01
000005cf: PUSH1 0xa0
000005d1: SHL
000005d2: SUB
000005d3: SWAP1
000005d4: SWAP2
000005d5: AND
000005d6: DUP2
000005d7: MSTORE
000005d8: PUSH1 0x20
000005da: ADD
000005db: PUSH2 0x046b
000005de: JUMP
000005df: JUMPDEST
000005e0: PUSH1 0x40
000005e2: MLOAD
000005e3: PUSH1 0xff
000005e5: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000012
00000606: AND
00000607: DUP2
00000608: MSTORE
00000609: PUSH1 0x20
0000060b: ADD
0000060c: PUSH2 0x046b
0000060f: JUMP
00000610: JUMPDEST
00000611: PUSH1 0x40
00000613: DUP1
00000614: MLOAD
00000615: DUP1
00000616: DUP3
00000617: ADD
00000618: DUP3
00000619: MSTORE
0000061a: PUSH1 0x07
0000061c: DUP2
0000061d: MSTORE
0000061e: PUSH7 0x546f6b656d616b
00000626: PUSH1 0xc8
00000628: SHL
00000629: PUSH1 0x20
0000062b: SWAP2
0000062c: DUP3
0000062d: ADD
0000062e: MSTORE
0000062f: DUP2
00000630: MLOAD
00000631: DUP1
00000632: DUP4
00000633: ADD
00000634: DUP4
00000635: MSTORE
00000636: PUSH1 0x01
00000638: DUP2
00000639: MSTORE
0000063a: PUSH1 0x31
0000063c: PUSH1 0xf8
0000063e: SHL
0000063f: SWAP1
00000640: DUP3
00000641: ADD
00000642: MSTORE
00000643: DUP2
00000644: MLOAD
00000645: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00000666: DUP2
00000667: DUP4
00000668: ADD
00000669: MSTORE
0000066a: PUSH32 0x23507ec2a6c39fbe11564ea15b41b88713abf0a51468497aca3adc4f90e202d1
0000068b: DUP2
0000068c: DUP5
0000068d: ADD
0000068e: MSTORE
0000068f: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6
000006b0: PUSH1 0x60
000006b2: DUP3
000006b3: ADD
000006b4: MSTORE
000006b5: CHAINID
000006b6: PUSH1 0x80
000006b8: DUP3
000006b9: ADD
000006ba: MSTORE
000006bb: ADDRESS
000006bc: PUSH1 0xa0
000006be: DUP1
000006bf: DUP4
000006c0: ADD
000006c1: SWAP2
000006c2: SWAP1
000006c3: SWAP2
000006c4: MSTORE
000006c5: DUP4
000006c6: MLOAD
000006c7: DUP1
000006c8: DUP4
000006c9: SUB
000006ca: SWAP1
000006cb: SWAP2
000006cc: ADD
000006cd: DUP2
000006ce: MSTORE
000006cf: PUSH1 0xc0
000006d1: SWAP1
000006d2: SWAP2
000006d3: ADD
000006d4: SWAP1
000006d5: SWAP3
000006d6: MSTORE
000006d7: DUP2
000006d8: MLOAD
000006d9: SWAP2
000006da: ADD
000006db: KECCAK256
000006dc: PUSH2 0x0461
000006df: JUMP
000006e0: JUMPDEST
000006e1: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000702: PUSH2 0x05c7
00000705: JUMP
00000706: JUMPDEST
00000707: PUSH2 0x0572
0000070a: PUSH2 0x0714
0000070d: CALLDATASIZE
0000070e: PUSH1 0x04
00000710: PUSH2 0x47e4
00000713: JUMP
00000714: JUMPDEST
00000715: PUSH2 0x1619
00000718: JUMP
00000719: JUMPDEST
0000071a: PUSH2 0x0572
0000071d: PUSH2 0x1766
00000720: JUMP
00000721: JUMPDEST
00000722: PUSH2 0x0461
00000725: PUSH2 0x072f
00000728: CALLDATASIZE
00000729: PUSH1 0x04
0000072b: PUSH2 0x47e4
0000072e: JUMP
0000072f: JUMPDEST
00000730: PUSH2 0x189d
00000733: JUMP
00000734: JUMPDEST
00000735: PUSH2 0x0461
00000738: PUSH2 0x0742
0000073b: CALLDATASIZE
0000073c: PUSH1 0x04
0000073e: PUSH2 0x4b1d
00000741: JUMP
00000742: JUMPDEST
00000743: PUSH2 0x18b2
00000746: JUMP
00000747: JUMPDEST
00000748: PUSH2 0x0461
0000074b: PUSH32 0xde6f3096d4f66344ff788320cd544f72ff6f5662e94f10e931a2dc34104866b7
0000076c: DUP2
0000076d: JUMP
0000076e: JUMPDEST
0000076f: PUSH2 0x0461
00000772: PUSH2 0x077c
00000775: CALLDATASIZE
00000776: PUSH1 0x04
00000778: PUSH2 0x473d
0000077b: JUMP
0000077c: JUMPDEST
0000077d: PUSH2 0x18d6
00000780: JUMP
00000781: JUMPDEST
00000782: PUSH2 0x05c7
00000785: PUSH2 0xdead
00000788: DUP2
00000789: JUMP
0000078a: JUMPDEST
0000078b: PUSH2 0x0461
0000078e: PUSH2 0x19da
00000791: JUMP
00000792: JUMPDEST
00000793: PUSH2 0x0572
00000796: PUSH2 0x07a0
00000799: CALLDATASIZE
0000079a: PUSH1 0x04
0000079c: PUSH2 0x473d
0000079f: JUMP
000007a0: JUMPDEST
000007a1: PUSH2 0x1a74
000007a4: JUMP
000007a5: JUMPDEST
000007a6: PUSH2 0x04da
000007a9: PUSH2 0x1e99
000007ac: JUMP
000007ad: JUMPDEST
000007ae: PUSH2 0x04af
000007b1: PUSH2 0x1ea5
000007b4: JUMP
000007b5: JUMPDEST
000007b6: PUSH2 0x0572
000007b9: PUSH2 0x07c3
000007bc: CALLDATASIZE
000007bd: PUSH1 0x04
000007bf: PUSH2 0x4ba9
000007c2: JUMP
000007c3: JUMPDEST
000007c4: PUSH2 0x1f3c
000007c7: JUMP
000007c8: JUMPDEST
000007c9: PUSH2 0x0461
000007cc: PUSH2 0x07d6
000007cf: CALLDATASIZE
000007d0: PUSH1 0x04
000007d2: PUSH2 0x4bea
000007d5: JUMP
000007d6: JUMPDEST
000007d7: PUSH2 0x20a0
000007da: JUMP
000007db: JUMPDEST
000007dc: PUSH2 0x0572
000007df: PUSH2 0x07e9
000007e2: CALLDATASIZE
000007e3: PUSH1 0x04
000007e5: PUSH2 0x4c28
000007e8: JUMP
000007e9: JUMPDEST
000007ea: PUSH2 0x2195
000007ed: JUMP
000007ee: JUMPDEST
000007ef: PUSH2 0x07f6
000007f2: PUSH2 0x22d3
000007f5: JUMP
000007f6: JUMPDEST
000007f7: PUSH1 0x40
000007f9: MLOAD
000007fa: PUSH2 0x046b
000007fd: SWAP2
000007fe: SWAP1
000007ff: DUP2
00000800: MLOAD
00000801: DUP2
00000802: MSTORE
00000803: PUSH1 0x20
00000805: DUP1
00000806: DUP4
00000807: ADD
00000808: MLOAD
00000809: SWAP1
0000080a: DUP3
0000080b: ADD
0000080c: MSTORE
0000080d: PUSH1 0x40
0000080f: DUP1
00000810: DUP4
00000811: ADD
00000812: MLOAD
00000813: SWAP1
00000814: DUP3
00000815: ADD
00000816: MSTORE
00000817: PUSH1 0x60
00000819: SWAP2
0000081a: DUP3
0000081b: ADD
0000081c: MLOAD
0000081d: SWAP2
0000081e: DUP2
0000081f: ADD
00000820: SWAP2
00000821: SWAP1
00000822: SWAP2
00000823: MSTORE
00000824: PUSH1 0x80
00000826: ADD
00000827: SWAP1
00000828: JUMP
00000829: JUMPDEST
0000082a: PUSH2 0x0461
0000082d: PUSH2 0x0837
00000830: CALLDATASIZE
00000831: PUSH1 0x04
00000833: PUSH2 0x47e4
00000836: JUMP
00000837: JUMPDEST
00000838: PUSH2 0x232d
0000083b: JUMP
0000083c: JUMPDEST
0000083d: PUSH2 0x0461
00000840: PUSH2 0x084a
00000843: CALLDATASIZE
00000844: PUSH1 0x04
00000846: PUSH2 0x4b1d
00000849: JUMP
0000084a: JUMPDEST
0000084b: PUSH2 0x23bb
0000084e: JUMP
0000084f: JUMPDEST
00000850: PUSH2 0x0461
00000853: PUSH2 0x085d
00000856: CALLDATASIZE
00000857: PUSH1 0x04
00000859: PUSH2 0x47e4
0000085c: JUMP
0000085d: JUMPDEST
0000085e: PUSH1 0x01
00000860: PUSH1 0x01
00000862: PUSH1 0xa0
00000864: SHL
00000865: SUB
00000866: AND
00000867: PUSH1 0x00
00000869: SWAP1
0000086a: DUP2
0000086b: MSTORE
0000086c: PUSH1 0x05
0000086e: PUSH1 0x20
00000870: MSTORE
00000871: PUSH1 0x40
00000873: SWAP1
00000874: KECCAK256
00000875: SLOAD
00000876: SWAP1
00000877: JUMP
00000878: JUMPDEST
00000879: PUSH2 0x0572
0000087c: PUSH2 0x0886
0000087f: CALLDATASIZE
00000880: PUSH1 0x04
00000882: PUSH2 0x4ba9
00000885: JUMP
00000886: JUMPDEST
00000887: PUSH2 0x23d8
0000088a: JUMP
0000088b: JUMPDEST
0000088c: PUSH2 0x04da
0000088f: PUSH2 0x24e5
00000892: JUMP
00000893: JUMPDEST
00000894: PUSH2 0x0572
00000897: PUSH2 0x24f1
0000089a: JUMP
0000089b: JUMPDEST
0000089c: PUSH2 0x0572
0000089f: PUSH2 0x08a9
000008a2: CALLDATASIZE
000008a3: PUSH1 0x04
000008a5: PUSH2 0x473d
000008a8: JUMP
000008a9: JUMPDEST
000008aa: PUSH2 0x2628
000008ad: JUMP
000008ae: JUMPDEST
000008af: PUSH2 0x0461
000008b2: PUSH2 0x08bc
000008b5: CALLDATASIZE
000008b6: PUSH1 0x04
000008b8: PUSH2 0x4bea
000008bb: JUMP
000008bc: JUMPDEST
000008bd: PUSH2 0x2783
000008c0: JUMP
000008c1: JUMPDEST
000008c2: PUSH2 0x047c
000008c5: PUSH2 0x281e
000008c8: JUMP
000008c9: JUMPDEST
000008ca: PUSH2 0x0572
000008cd: PUSH2 0x08d7
000008d0: CALLDATASIZE
000008d1: PUSH1 0x04
000008d3: PUSH2 0x4c45
000008d6: JUMP
000008d7: JUMPDEST
000008d8: PUSH2 0x282d
000008db: JUMP
000008dc: JUMPDEST
000008dd: PUSH2 0x0461
000008e0: PUSH2 0x2710
000008e3: DUP2
000008e4: JUMP
000008e5: JUMPDEST
000008e6: PUSH2 0x04af
000008e9: PUSH2 0x08f3
000008ec: CALLDATASIZE
000008ed: PUSH1 0x04
000008ef: PUSH2 0x476b
000008f2: JUMP
000008f3: JUMPDEST
000008f4: PUSH2 0x29ef
000008f7: JUMP
000008f8: JUMPDEST
000008f9: PUSH2 0x0461
000008fc: PUSH2 0x0906
000008ff: CALLDATASIZE
00000900: PUSH1 0x04
00000902: PUSH2 0x4a28
00000905: JUMP
00000906: JUMPDEST
00000907: PUSH2 0x2a47
0000090a: JUMP
0000090b: JUMPDEST
0000090c: PUSH2 0x0572
0000090f: PUSH2 0x0919
00000912: CALLDATASIZE
00000913: PUSH1 0x04
00000915: PUSH2 0x47e4
00000918: JUMP
00000919: JUMPDEST
0000091a: PUSH2 0x2a84
0000091d: JUMP
0000091e: JUMPDEST
0000091f: PUSH2 0x0461
00000922: PUSH2 0x092c
00000925: CALLDATASIZE
00000926: PUSH1 0x04
00000928: PUSH2 0x473d
0000092b: JUMP
0000092c: JUMPDEST
0000092d: PUSH2 0x2b8c
00000930: JUMP
00000931: JUMPDEST
00000932: PUSH2 0x0461
00000935: PUSH2 0x093f
00000938: CALLDATASIZE
00000939: PUSH1 0x04
0000093b: PUSH2 0x4ca8
0000093e: JUMP
0000093f: JUMPDEST
00000940: PUSH2 0x2bd8
00000943: JUMP
00000944: JUMPDEST
00000945: PUSH2 0x04da
00000948: PUSH2 0x2cfb
0000094b: JUMP
0000094c: JUMPDEST
0000094d: PUSH2 0x0461
00000950: PUSH2 0x095a
00000953: CALLDATASIZE
00000954: PUSH1 0x04
00000956: PUSH2 0x4ca8
00000959: JUMP
0000095a: JUMPDEST
0000095b: PUSH2 0x2d36
0000095e: JUMP
0000095f: JUMPDEST
00000960: PUSH2 0x04af
00000963: PUSH2 0x096d
00000966: CALLDATASIZE
00000967: PUSH1 0x04
00000969: PUSH2 0x47e4
0000096c: JUMP
0000096d: JUMPDEST
0000096e: PUSH2 0x2ec2
00000971: JUMP
00000972: JUMPDEST
00000973: PUSH2 0x05c7
00000976: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00000997: DUP2
00000998: JUMP
00000999: JUMPDEST
0000099a: PUSH2 0x0572
0000099d: PUSH2 0x09a7
000009a0: CALLDATASIZE
000009a1: PUSH1 0x04
000009a3: PUSH2 0x4cea
000009a6: JUMP
000009a7: JUMPDEST
000009a8: PUSH2 0x2ecf
000009ab: JUMP
000009ac: JUMPDEST
000009ad: PUSH1 0x0d
000009af: SLOAD
000009b0: PUSH1 0xff
000009b2: AND
000009b3: PUSH2 0x04af
000009b6: JUMP
000009b7: JUMPDEST
000009b8: PUSH2 0x0461
000009bb: PUSH32 0x0000000000000000000000000000000000000000000000000de0b6b3a7640000
000009dc: DUP2
000009dd: JUMP
000009de: JUMPDEST
000009df: PUSH1 0x24
000009e1: SLOAD
000009e2: PUSH2 0x05c7
000009e5: SWAP1
000009e6: PUSH1 0x01
000009e8: PUSH1 0x01
000009ea: PUSH1 0xa0
000009ec: SHL
000009ed: SUB
000009ee: AND
000009ef: DUP2
000009f0: JUMP
000009f1: JUMPDEST
000009f2: PUSH2 0x0461
000009f5: PUSH2 0x09ff
000009f8: CALLDATASIZE
000009f9: PUSH1 0x04
000009fb: PUSH2 0x47e4
000009fe: JUMP
000009ff: JUMPDEST
00000a00: PUSH2 0x3017
00000a03: JUMP
00000a04: JUMPDEST
00000a05: PUSH2 0x0461
00000a08: PUSH2 0x0a12
00000a0b: CALLDATASIZE
00000a0c: PUSH1 0x04
00000a0e: PUSH2 0x473d
00000a11: JUMP
00000a12: JUMPDEST
00000a13: PUSH2 0x30a2
00000a16: JUMP
00000a17: JUMPDEST
00000a18: PUSH2 0x0572
00000a1b: PUSH2 0x0a25
00000a1e: CALLDATASIZE
00000a1f: PUSH1 0x04
00000a21: PUSH2 0x473d
00000a24: JUMP
00000a25: JUMPDEST
00000a26: PUSH2 0x30ba
00000a29: JUMP
00000a2a: JUMPDEST
00000a2b: PUSH2 0x0461
00000a2e: PUSH2 0x0a38
00000a31: CALLDATASIZE
00000a32: PUSH1 0x04
00000a34: PUSH2 0x47e4
00000a37: JUMP
00000a38: JUMPDEST
00000a39: PUSH2 0x31e6
00000a3c: JUMP
00000a3d: JUMPDEST
00000a3e: PUSH2 0x0572
00000a41: PUSH2 0x0a4b
00000a44: CALLDATASIZE
00000a45: PUSH1 0x04
00000a47: PUSH2 0x4d83
00000a4a: JUMP
00000a4b: JUMPDEST
00000a4c: PUSH2 0x331a
00000a4f: JUMP
00000a50: JUMPDEST
00000a51: PUSH2 0x0461
00000a54: PUSH2 0x0a5e
00000a57: CALLDATASIZE
00000a58: PUSH1 0x04
00000a5a: PUSH2 0x47e4
00000a5d: JUMP
00000a5e: JUMPDEST
00000a5f: PUSH1 0x01
00000a61: PUSH1 0x01
00000a63: PUSH1 0xa0
00000a65: SHL
00000a66: SUB
00000a67: AND
00000a68: PUSH1 0x00
00000a6a: SWAP1
00000a6b: DUP2
00000a6c: MSTORE
00000a6d: PUSH1 0x02
00000a6f: PUSH1 0x20
00000a71: MSTORE
00000a72: PUSH1 0x40
00000a74: SWAP1
00000a75: KECCAK256
00000a76: SLOAD
00000a77: SWAP1
00000a78: JUMP
00000a79: JUMPDEST
00000a7a: PUSH2 0x0461
00000a7d: PUSH2 0x0a87
00000a80: CALLDATASIZE
00000a81: PUSH1 0x04
00000a83: PUSH2 0x47e4
00000a86: JUMP
00000a87: JUMPDEST
00000a88: PUSH2 0x338f
00000a8b: JUMP
00000a8c: JUMPDEST
00000a8d: PUSH2 0x0461
00000a90: PUSH2 0x33a4
00000a93: JUMP
00000a94: JUMPDEST
00000a95: PUSH2 0x0572
00000a98: PUSH2 0x0aa2
00000a9b: CALLDATASIZE
00000a9c: PUSH1 0x04
00000a9e: PUSH2 0x4dfa
00000aa1: JUMP
00000aa2: JUMPDEST
00000aa3: PUSH2 0x33e6
00000aa6: JUMP
00000aa7: JUMPDEST
00000aa8: PUSH2 0x0572
00000aab: PUSH2 0x0ab5
00000aae: CALLDATASIZE
00000aaf: PUSH1 0x04
00000ab1: PUSH2 0x47e4
00000ab4: JUMP
00000ab5: JUMPDEST
00000ab6: PUSH2 0x3501
00000ab9: JUMP
00000aba: JUMPDEST
00000abb: PUSH2 0x0572
00000abe: PUSH2 0x0ac8
00000ac1: CALLDATASIZE
00000ac2: PUSH1 0x04
00000ac4: PUSH2 0x4e63
00000ac7: JUMP
00000ac8: JUMPDEST
00000ac9: PUSH2 0x3609
00000acc: JUMP
00000acd: JUMPDEST
00000ace: PUSH1 0x25
00000ad0: SLOAD
00000ad1: PUSH2 0x05c7
00000ad4: SWAP1
00000ad5: PUSH1 0x01
00000ad7: PUSH1 0x01
00000ad9: PUSH1 0xa0
00000adb: SHL
00000adc: SUB
00000add: AND
00000ade: DUP2
00000adf: JUMP
00000ae0: JUMPDEST
00000ae1: PUSH2 0x0461
00000ae4: PUSH2 0x0aee
00000ae7: CALLDATASIZE
00000ae8: PUSH1 0x04
00000aea: PUSH2 0x4f33
00000aed: JUMP
00000aee: JUMPDEST
00000aef: PUSH1 0x01
00000af1: PUSH1 0x01
00000af3: PUSH1 0xa0
00000af5: SHL
00000af6: SUB
00000af7: SWAP2
00000af8: DUP3
00000af9: AND
00000afa: PUSH1 0x00
00000afc: SWAP1
00000afd: DUP2
00000afe: MSTORE
00000aff: PUSH1 0x03
00000b01: PUSH1 0x20
00000b03: SWAP1
00000b04: DUP2
00000b05: MSTORE
00000b06: PUSH1 0x40
00000b08: DUP1
00000b09: DUP4
00000b0a: KECCAK256
00000b0b: SWAP4
00000b0c: SWAP1
00000b0d: SWAP5
00000b0e: AND
00000b0f: DUP3
00000b10: MSTORE
00000b11: SWAP2
00000b12: SWAP1
00000b13: SWAP2
00000b14: MSTORE
00000b15: KECCAK256
00000b16: SLOAD
00000b17: SWAP1
00000b18: JUMP
00000b19: JUMPDEST
00000b1a: PUSH2 0x04af
00000b1d: PUSH2 0x0b27
00000b20: CALLDATASIZE
00000b21: PUSH1 0x04
00000b23: PUSH2 0x47e4
00000b26: JUMP
00000b27: JUMPDEST
00000b28: PUSH2 0x3b3f
00000b2b: JUMP
00000b2c: JUMPDEST
00000b2d: PUSH2 0x0b99
00000b30: PUSH1 0x40
00000b32: DUP1
00000b33: MLOAD
00000b34: PUSH1 0x80
00000b36: DUP2
00000b37: ADD
00000b38: DUP3
00000b39: MSTORE
00000b3a: PUSH1 0x00
00000b3c: DUP1
00000b3d: DUP3
00000b3e: MSTORE
00000b3f: PUSH1 0x20
00000b41: DUP3
00000b42: ADD
00000b43: DUP2
00000b44: SWAP1
00000b45: MSTORE
00000b46: SWAP2
00000b47: DUP2
00000b48: ADD
00000b49: DUP3
00000b4a: SWAP1
00000b4b: MSTORE
00000b4c: PUSH1 0x60
00000b4e: DUP2
00000b4f: ADD
00000b50: SWAP2
00000b51: SWAP1
00000b52: SWAP2
00000b53: MSTORE
00000b54: POP
00000b55: PUSH1 0x40
00000b57: DUP1
00000b58: MLOAD
00000b59: PUSH1 0x80
00000b5b: DUP2
00000b5c: ADD
00000b5d: DUP3
00000b5e: MSTORE
00000b5f: PUSH1 0x12
00000b61: SLOAD
00000b62: PUSH6 0xffffffffffff
00000b69: DUP1
00000b6a: DUP3
00000b6b: AND
00000b6c: DUP4
00000b6d: MSTORE
00000b6e: PUSH7 0x01000000000000
00000b76: DUP3
00000b77: DIV
00000b78: DUP2
00000b79: AND
00000b7a: PUSH1 0x20
00000b7c: DUP5
00000b7d: ADD
00000b7e: MSTORE
00000b7f: PUSH1 0x01
00000b81: PUSH1 0x60
00000b83: SHL
00000b84: SWAP1
00000b85: SWAP2
00000b86: DIV
00000b87: AND
00000b88: SWAP2
00000b89: DUP2
00000b8a: ADD
00000b8b: SWAP2
00000b8c: SWAP1
00000b8d: SWAP2
00000b8e: MSTORE
00000b8f: PUSH1 0x13
00000b91: SLOAD
00000b92: PUSH1 0x60
00000b94: DUP3
00000b95: ADD
00000b96: MSTORE
00000b97: SWAP1
00000b98: JUMP
00000b99: JUMPDEST
00000b9a: PUSH1 0x40
00000b9c: DUP1
00000b9d: MLOAD
00000b9e: DUP3
00000b9f: MLOAD
00000ba0: PUSH6 0xffffffffffff
00000ba7: SWAP1
00000ba8: DUP2
00000ba9: AND
00000baa: DUP3
00000bab: MSTORE
00000bac: PUSH1 0x20
00000bae: DUP1
00000baf: DUP6
00000bb0: ADD
00000bb1: MLOAD
00000bb2: DUP3
00000bb3: AND
00000bb4: SWAP1
00000bb5: DUP4
00000bb6: ADD
00000bb7: MSTORE
00000bb8: DUP4
00000bb9: DUP4
00000bba: ADD
00000bbb: MLOAD
00000bbc: AND
00000bbd: SWAP2
00000bbe: DUP2
00000bbf: ADD
00000bc0: SWAP2
00000bc1: SWAP1
00000bc2: SWAP2
00000bc3: MSTORE
00000bc4: PUSH1 0x60
00000bc6: SWAP2
00000bc7: DUP3
00000bc8: ADD
00000bc9: MLOAD
00000bca: SWAP2
00000bcb: DUP2
00000bcc: ADD
00000bcd: SWAP2
00000bce: SWAP1
00000bcf: SWAP2
00000bd0: MSTORE
00000bd1: PUSH1 0x80
00000bd3: ADD
00000bd4: PUSH2 0x046b
00000bd7: JUMP
00000bd8: JUMPDEST
00000bd9: PUSH2 0x04af
00000bdc: PUSH2 0x0be6
00000bdf: CALLDATASIZE
00000be0: PUSH1 0x04
00000be2: PUSH2 0x47e4
00000be5: JUMP
00000be6: JUMPDEST
00000be7: PUSH2 0x3b4c
00000bea: JUMP
00000beb: JUMPDEST
00000bec: PUSH2 0x0461
00000bef: PUSH2 0x0bf9
00000bf2: CALLDATASIZE
00000bf3: PUSH1 0x04
00000bf5: PUSH2 0x473d
00000bf8: JUMP
00000bf9: JUMPDEST
00000bfa: PUSH2 0x3b59
00000bfd: JUMP
00000bfe: JUMPDEST
00000bff: PUSH32 0x0000000000000000000000002218f90a98b0c070676f249ef44834686daa4285
00000c20: PUSH2 0x05c7
00000c23: JUMP
00000c24: JUMPDEST
00000c25: PUSH2 0x0461
00000c28: PUSH3 0x0186a0
00000c2c: DUP2
00000c2d: JUMP
00000c2e: JUMPDEST
00000c2f: PUSH1 0x40
00000c31: MLOAD
00000c32: PUSH4 0x105fbc17
00000c37: PUSH1 0xe1
00000c39: SHL
00000c3a: DUP2
00000c3b: MSTORE
00000c3c: PUSH1 0x00
00000c3e: SWAP1
00000c3f: PUSH20 0x8709b88c5cbca830d63f726a6f6f8c6573486223
00000c54: SWAP1
00000c55: PUSH4 0x20bf782e
00000c5a: SWAP1
00000c5b: PUSH2 0x0c6b
00000c5e: SWAP1
00000c5f: PUSH1 0x1e
00000c61: SWAP1
00000c62: DUP6
00000c63: SWAP1
00000c64: PUSH1 0x04
00000c66: ADD
00000c67: PUSH2 0x4f61
00000c6a: JUMP
00000c6b: JUMPDEST
00000c6c: PUSH1 0x20
00000c6e: PUSH1 0x40
00000c70: MLOAD
00000c71: DUP1
00000c72: DUP4
00000c73: SUB
00000c74: DUP2
00000c75: DUP7
00000c76: GAS
00000c77: DELEGATECALL
00000c78: ISZERO
00000c79: DUP1
00000c7a: ISZERO
00000c7b: PUSH2 0x0c88
00000c7e: JUMPI
00000c7f: RETURNDATASIZE
00000c80: PUSH1 0x00
00000c82: DUP1
00000c83: RETURNDATACOPY
00000c84: RETURNDATASIZE
00000c85: PUSH1 0x00
00000c87: REVERT
00000c88: JUMPDEST
00000c89: POP
00000c8a: POP
00000c8b: POP
00000c8c: POP
00000c8d: PUSH1 0x40
00000c8f: MLOAD
00000c90: RETURNDATASIZE
00000c91: PUSH1 0x1f
00000c93: NOT
00000c94: PUSH1 0x1f
00000c96: DUP3
00000c97: ADD
00000c98: AND
00000c99: DUP3
00000c9a: ADD
00000c9b: DUP1
00000c9c: PUSH1 0x40
00000c9e: MSTORE
00000c9f: POP
00000ca0: DUP2
00000ca1: ADD
00000ca2: SWAP1
00000ca3: PUSH2 0x0cac
00000ca6: SWAP2
00000ca7: SWAP1
00000ca8: PUSH2 0x4f7e
00000cab: JUMP
00000cac: JUMPDEST
00000cad: SWAP1
00000cae: POP
00000caf: SWAP1
00000cb0: JUMP
00000cb1: JUMPDEST
00000cb2: PUSH1 0x60
00000cb4: PUSH1 0x06
00000cb6: DUP1
00000cb7: SLOAD
00000cb8: PUSH2 0x0cc0
00000cbb: SWAP1
00000cbc: PUSH2 0x4f97
00000cbf: JUMP
00000cc0: JUMPDEST
00000cc1: DUP1
00000cc2: PUSH1 0x1f
00000cc4: ADD
00000cc5: PUSH1 0x20
00000cc7: DUP1
00000cc8: SWAP2
00000cc9: DIV
00000cca: MUL
00000ccb: PUSH1 0x20
00000ccd: ADD
00000cce: PUSH1 0x40
00000cd0: MLOAD
00000cd1: SWAP1
00000cd2: DUP2
00000cd3: ADD
00000cd4: PUSH1 0x40
00000cd6: MSTORE
00000cd7: DUP1
00000cd8: SWAP3
00000cd9: SWAP2
00000cda: SWAP1
00000cdb: DUP2
00000cdc: DUP2
00000cdd: MSTORE
00000cde: PUSH1 0x20
00000ce0: ADD
00000ce1: DUP3
00000ce2: DUP1
00000ce3: SLOAD
00000ce4: PUSH2 0x0cec
00000ce7: SWAP1
00000ce8: PUSH2 0x4f97
00000ceb: JUMP
00000cec: JUMPDEST
00000ced: DUP1
00000cee: ISZERO
00000cef: PUSH2 0x0d39
00000cf2: JUMPI
00000cf3: DUP1
00000cf4: PUSH1 0x1f
00000cf6: LT
00000cf7: PUSH2 0x0d0e
00000cfa: JUMPI
00000cfb: PUSH2 0x0100
00000cfe: DUP1
00000cff: DUP4
00000d00: SLOAD
00000d01: DIV
00000d02: MUL
00000d03: DUP4
00000d04: MSTORE
00000d05: SWAP2
00000d06: PUSH1 0x20
00000d08: ADD
00000d09: SWAP2
00000d0a: PUSH2 0x0d39
00000d0d: JUMP
00000d0e: JUMPDEST
00000d0f: DUP3
00000d10: ADD
00000d11: SWAP2
00000d12: SWAP1
00000d13: PUSH1 0x00
00000d15: MSTORE
00000d16: PUSH1 0x20
00000d18: PUSH1 0x00
00000d1a: KECCAK256
00000d1b: SWAP1
00000d1c: JUMPDEST
00000d1d: DUP2
00000d1e: SLOAD
00000d1f: DUP2
00000d20: MSTORE
00000d21: SWAP1
00000d22: PUSH1 0x01
00000d24: ADD
00000d25: SWAP1
00000d26: PUSH1 0x20
00000d28: ADD
00000d29: DUP1
00000d2a: DUP4
00000d2b: GT
00000d2c: PUSH2 0x0d1c
00000d2f: JUMPI
00000d30: DUP3
00000d31: SWAP1
00000d32: SUB
00000d33: PUSH1 0x1f
00000d35: AND
00000d36: DUP3
00000d37: ADD
00000d38: SWAP2
00000d39: JUMPDEST
00000d3a: POP
00000d3b: POP
00000d3c: POP
00000d3d: POP
00000d3e: POP
00000d3f: SWAP1
00000d40: POP
00000d41: SWAP1
00000d42: JUMP
00000d43: JUMPDEST
00000d44: PUSH1 0x00
00000d46: PUSH2 0x0d62
00000d49: DUP3
00000d4a: PUSH2 0x0d53
00000d4d: PUSH1 0x00
00000d4f: PUSH2 0x2a47
00000d52: JUMP
00000d53: JUMPDEST
00000d54: PUSH2 0x0d5b
00000d57: PUSH2 0x0f45
00000d5a: JUMP
00000d5b: JUMPDEST
00000d5c: PUSH1 0x00
00000d5e: PUSH2 0x18b2
00000d61: JUMP
00000d62: JUMPDEST
00000d63: SWAP3
00000d64: SWAP2
00000d65: POP
00000d66: POP
00000d67: JUMP
00000d68: JUMPDEST
00000d69: PUSH1 0x40
00000d6b: MLOAD
00000d6c: PUSH4 0x0847f5ab
00000d71: PUSH1 0xe2
00000d73: SHL
00000d74: DUP2
00000d75: MSTORE
00000d76: PUSH1 0x02
00000d78: PUSH1 0x04
00000d7a: DUP3
00000d7b: ADD
00000d7c: MSTORE
00000d7d: PUSH1 0x01
00000d7f: PUSH1 0x01
00000d81: PUSH1 0xa0
00000d83: SHL
00000d84: SUB
00000d85: DUP4
00000d86: AND
00000d87: PUSH1 0x24
00000d89: DUP3
00000d8a: ADD
00000d8b: MSTORE
00000d8c: PUSH1 0x44
00000d8e: DUP2
00000d8f: ADD
00000d90: DUP3
00000d91: SWAP1
00000d92: MSTORE
00000d93: PUSH1 0x00
00000d95: SWAP1
00000d96: PUSH20 0x42699e483c5baa8e9aad5f7d804127c034a0328f
00000dab: SWAP1
00000dac: PUSH4 0x211fd6ac
00000db1: SWAP1
00000db2: PUSH1 0x64
00000db4: ADD
00000db5: JUMPDEST
00000db6: PUSH1 0x20
00000db8: PUSH1 0x40
00000dba: MLOAD
00000dbb: DUP1
00000dbc: DUP4
00000dbd: SUB
00000dbe: DUP2
00000dbf: DUP7
00000dc0: GAS
00000dc1: DELEGATECALL
00000dc2: ISZERO
00000dc3: DUP1
00000dc4: ISZERO
00000dc5: PUSH2 0x0dd2
00000dc8: JUMPI
00000dc9: RETURNDATASIZE
00000dca: PUSH1 0x00
00000dcc: DUP1
00000dcd: RETURNDATACOPY
00000dce: RETURNDATASIZE
00000dcf: PUSH1 0x00
00000dd1: REVERT
00000dd2: JUMPDEST
00000dd3: POP
00000dd4: POP
00000dd5: POP
00000dd6: POP
00000dd7: PUSH1 0x40
00000dd9: MLOAD
00000dda: RETURNDATASIZE
00000ddb: PUSH1 0x1f
00000ddd: NOT
00000dde: PUSH1 0x1f
00000de0: DUP3
00000de1: ADD
00000de2: AND
00000de3: DUP3
00000de4: ADD
00000de5: DUP1
00000de6: PUSH1 0x40
00000de8: MSTORE
00000de9: POP
00000dea: DUP2
00000deb: ADD
00000dec: SWAP1
00000ded: PUSH2 0x0df6
00000df0: SWAP2
00000df1: SWAP1
00000df2: PUSH2 0x4fdb
00000df5: JUMP
00000df6: JUMPDEST
00000df7: SWAP4
00000df8: SWAP3
00000df9: POP
00000dfa: POP
00000dfb: POP
00000dfc: JUMP
00000dfd: JUMPDEST
00000dfe: PUSH1 0x00
00000e00: PUSH20 0xd18bac6d95119237b225db48ec29155a8cd08743
00000e15: PUSH4 0x443c0bff
00000e1a: PUSH1 0x01
00000e1c: DUP5
00000e1d: PUSH2 0x0e26
00000e20: PUSH1 0x02
00000e22: PUSH2 0x3b96
00000e25: JUMP
00000e26: JUMPDEST
00000e27: PUSH1 0x40
00000e29: DUP1
00000e2a: MLOAD
00000e2b: PUSH1 0x24
00000e2d: DUP1
00000e2e: DUP3
00000e2f: ADD
00000e30: DUP11
00000e31: SWAP1
00000e32: MSTORE
00000e33: DUP3
00000e34: MLOAD
00000e35: DUP1
00000e36: DUP4
00000e37: SUB
00000e38: SWAP1
00000e39: SWAP2
00000e3a: ADD
00000e3b: DUP2
00000e3c: MSTORE
00000e3d: PUSH1 0x44
00000e3f: SWAP1
00000e40: SWAP2
00000e41: ADD
00000e42: DUP3
00000e43: MSTORE
00000e44: PUSH1 0x20
00000e46: DUP2
00000e47: ADD
00000e48: DUP1
00000e49: MLOAD
00000e4a: PUSH1 0x01
00000e4c: PUSH1 0x01
00000e4e: PUSH1 0xe0
00000e50: SHL
00000e51: SUB
00000e52: AND
00000e53: PUSH4 0x0a28a477
00000e58: PUSH1 0xe0
00000e5a: SHL
00000e5b: OR
00000e5c: SWAP1
00000e5d: MSTORE
00000e5e: SWAP1
00000e5f: MLOAD
00000e60: PUSH1 0x01
00000e62: PUSH1 0x01
00000e64: PUSH1 0xe0
00000e66: SHL
00000e67: SUB
00000e68: NOT
00000e69: PUSH1 0xe0
00000e6b: DUP8
00000e6c: SWAP1
00000e6d: SHL
00000e6e: AND
00000e6f: DUP2
00000e70: MSTORE
00000e71: PUSH2 0x0e89
00000e74: SWAP5
00000e75: SWAP4
00000e76: SWAP3
00000e77: SWAP2
00000e78: SWAP1
00000e79: PUSH1 0x1e
00000e7b: SWAP1
00000e7c: PUSH1 0x0e
00000e7e: SWAP1
00000e7f: PUSH1 0x0c
00000e81: SWAP1
00000e82: PUSH1 0x04
00000e84: ADD
00000e85: PUSH2 0x4ff8
00000e88: JUMP
00000e89: JUMPDEST
00000e8a: PUSH1 0x40
00000e8c: DUP1
00000e8d: MLOAD
00000e8e: DUP1
00000e8f: DUP4
00000e90: SUB
00000e91: DUP2
00000e92: DUP7
00000e93: GAS
00000e94: DELEGATECALL
00000e95: ISZERO
00000e96: DUP1
00000e97: ISZERO
00000e98: PUSH2 0x0ea5
00000e9b: JUMPI
00000e9c: RETURNDATASIZE
00000e9d: PUSH1 0x00
00000e9f: DUP1
00000ea0: RETURNDATACOPY
00000ea1: RETURNDATASIZE
00000ea2: PUSH1 0x00
00000ea4: REVERT
00000ea5: JUMPDEST
00000ea6: POP
00000ea7: POP
00000ea8: POP
00000ea9: POP
00000eaa: PUSH1 0x40
00000eac: MLOAD
00000ead: RETURNDATASIZE
00000eae: PUSH1 0x1f
00000eb0: NOT
00000eb1: PUSH1 0x1f
00000eb3: DUP3
00000eb4: ADD
00000eb5: AND
00000eb6: DUP3
00000eb7: ADD
00000eb8: DUP1
00000eb9: PUSH1 0x40
00000ebb: MSTORE
00000ebc: POP
00000ebd: DUP2
00000ebe: ADD
00000ebf: SWAP1
00000ec0: PUSH2 0x0df6
00000ec3: SWAP2
00000ec4: SWAP1
00000ec5: PUSH2 0x503e
00000ec8: JUMP
00000ec9: JUMPDEST
00000eca: PUSH1 0x40
00000ecc: MLOAD
00000ecd: PUSH4 0x1f931289
00000ed2: PUSH1 0xe0
00000ed4: SHL
00000ed5: DUP2
00000ed6: MSTORE
00000ed7: PUSH1 0x0e
00000ed9: PUSH1 0x04
00000edb: DUP3
00000edc: ADD
00000edd: MSTORE
00000ede: PUSH1 0x60
00000ee0: SWAP1
00000ee1: PUSH20 0xf19c66cb159246e00b5336b1ce4b4e8e01e4e4b4
00000ef6: SWAP1
00000ef7: PUSH4 0x1f931289
00000efc: SWAP1
00000efd: PUSH1 0x24
00000eff: ADD
00000f00: JUMPDEST
00000f01: PUSH1 0x00
00000f03: PUSH1 0x40
00000f05: MLOAD
00000f06: DUP1
00000f07: DUP4
00000f08: SUB
00000f09: DUP2
00000f0a: DUP7
00000f0b: GAS
00000f0c: DELEGATECALL
00000f0d: ISZERO
00000f0e: DUP1
00000f0f: ISZERO
00000f10: PUSH2 0x0f1d
00000f13: JUMPI
00000f14: RETURNDATASIZE
00000f15: PUSH1 0x00
00000f17: DUP1
00000f18: RETURNDATACOPY
00000f19: RETURNDATASIZE
00000f1a: PUSH1 0x00
00000f1c: REVERT
00000f1d: JUMPDEST
00000f1e: POP
00000f1f: POP
00000f20: POP
00000f21: POP
00000f22: PUSH1 0x40
00000f24: MLOAD
00000f25: RETURNDATASIZE
00000f26: PUSH1 0x00
00000f28: DUP3
00000f29: RETURNDATACOPY
00000f2a: PUSH1 0x1f
00000f2c: RETURNDATASIZE
00000f2d: SWAP1
00000f2e: DUP2
00000f2f: ADD
00000f30: PUSH1 0x1f
00000f32: NOT
00000f33: AND
00000f34: DUP3
00000f35: ADD
00000f36: PUSH1 0x40
00000f38: MSTORE
00000f39: PUSH2 0x0cac
00000f3c: SWAP2
00000f3d: SWAP1
00000f3e: DUP2
00000f3f: ADD
00000f40: SWAP1
00000f41: PUSH2 0x506d
00000f44: JUMP
00000f45: JUMPDEST
00000f46: PUSH1 0x40
00000f48: MLOAD
00000f49: PUSH4 0x3a68b115
00000f4e: PUSH1 0xe1
00000f50: SHL
00000f51: DUP2
00000f52: MSTORE
00000f53: PUSH1 0x02
00000f55: PUSH1 0x04
00000f57: DUP3
00000f58: ADD
00000f59: MSTORE
00000f5a: PUSH1 0x12
00000f5c: PUSH1 0x24
00000f5e: DUP3
00000f5f: ADD
00000f60: MSTORE
00000f61: PUSH1 0x00
00000f63: SWAP1
00000f64: PUSH20 0x8709b88c5cbca830d63f726a6f6f8c6573486223
00000f79: SWAP1
00000f7a: PUSH4 0x74d1622a
00000f7f: SWAP1
00000f80: PUSH1 0x44
00000f82: ADD
00000f83: PUSH2 0x0c6b
00000f86: JUMP
00000f87: JUMPDEST
00000f88: PUSH2 0x0fb9
00000f8b: PUSH1 0x40
00000f8d: MLOAD
00000f8e: DUP1
00000f8f: PUSH1 0xa0
00000f91: ADD
00000f92: PUSH1 0x40
00000f94: MSTORE
00000f95: DUP1
00000f96: PUSH1 0x00
00000f98: DUP2
00000f99: MSTORE
00000f9a: PUSH1 0x20
00000f9c: ADD
00000f9d: PUSH1 0x00
00000f9f: DUP2
00000fa0: MSTORE
00000fa1: PUSH1 0x20
00000fa3: ADD
00000fa4: PUSH1 0x00
00000fa6: DUP2
00000fa7: MSTORE
00000fa8: PUSH1 0x20
00000faa: ADD
00000fab: PUSH1 0x00
00000fad: DUP2
00000fae: MSTORE
00000faf: PUSH1 0x20
00000fb1: ADD
00000fb2: PUSH1 0x00
00000fb4: DUP2
00000fb5: MSTORE
00000fb6: POP
00000fb7: SWAP1
00000fb8: JUMP
00000fb9: JUMPDEST
00000fba: POP
00000fbb: PUSH1 0x01
00000fbd: PUSH1 0x01
00000fbf: PUSH1 0xa0
00000fc1: SHL
00000fc2: SUB
00000fc3: AND
00000fc4: PUSH1 0x00
00000fc6: SWAP1
00000fc7: DUP2
00000fc8: MSTORE
00000fc9: PUSH1 0x0c
00000fcb: PUSH1 0x20
00000fcd: SWAP1
00000fce: DUP2
00000fcf: MSTORE
00000fd0: PUSH1 0x40
00000fd2: SWAP2
00000fd3: DUP3
00000fd4: SWAP1
00000fd5: KECCAK256
00000fd6: DUP3
00000fd7: MLOAD
00000fd8: PUSH1 0xa0
00000fda: DUP2
00000fdb: ADD
00000fdc: DUP5
00000fdd: MSTORE
00000fde: DUP2
00000fdf: SLOAD
00000fe0: DUP2
00000fe1: MSTORE
00000fe2: PUSH1 0x01
00000fe4: DUP3
00000fe5: ADD
00000fe6: SLOAD
00000fe7: SWAP3
00000fe8: DUP2
00000fe9: ADD
00000fea: SWAP3
00000feb: SWAP1
00000fec: SWAP3
00000fed: MSTORE
00000fee: PUSH1 0x02
00000ff0: DUP2
00000ff1: ADD
00000ff2: SLOAD
00000ff3: SWAP3
00000ff4: DUP3
00000ff5: ADD
00000ff6: SWAP3
00000ff7: SWAP1
00000ff8: SWAP3
00000ff9: MSTORE
00000ffa: PUSH1 0x03
00000ffc: DUP3
00000ffd: ADD
00000ffe: SLOAD
00000fff: PUSH1 0x60
00001001: DUP3
00001002: ADD
00001003: MSTORE
00001004: PUSH1 0x04
00001006: SWAP1
00001007: SWAP2
00001008: ADD
00001009: SLOAD
0000100a: PUSH1 0x80
0000100c: DUP3
0000100d: ADD
0000100e: MSTORE
0000100f: SWAP1
00001010: JUMP
00001011: JUMPDEST
00001012: PUSH1 0x60
00001014: PUSH2 0x0cac
00001017: PUSH1 0x22
00001019: PUSH2 0x3bd6
0000101c: JUMP
0000101d: JUMPDEST
0000101e: PUSH1 0x00
00001020: PUSH2 0x1027
00001023: PUSH2 0x3be3
00001026: JUMP
00001027: JUMPDEST
00001028: PUSH1 0x40
0000102a: MLOAD
0000102b: PUSH4 0xde8e7abd
00001030: PUSH1 0xe0
00001032: SHL
00001033: DUP2
00001034: MSTORE
00001035: PUSH1 0x02
00001037: PUSH1 0x04
00001039: DUP3
0000103a: ADD
0000103b: MSTORE
0000103c: PUSH1 0x01
0000103e: PUSH1 0x01
00001040: PUSH1 0xa0
00001042: SHL
00001043: SUB
00001044: DUP1
00001045: DUP7
00001046: AND
00001047: PUSH1 0x24
00001049: DUP4
0000104a: ADD
0000104b: MSTORE
0000104c: DUP5
0000104d: AND
0000104e: PUSH1 0x44
00001050: DUP3
00001051: ADD
00001052: MSTORE
00001053: PUSH1 0x64
00001055: DUP2
00001056: ADD
00001057: DUP4
00001058: SWAP1
00001059: MSTORE
0000105a: PUSH20 0x42699e483c5baa8e9aad5f7d804127c034a0328f
0000106f: SWAP1
00001070: PUSH4 0xde8e7abd
00001075: SWAP1
00001076: PUSH1 0x84
00001078: ADD
00001079: PUSH1 0x20
0000107b: PUSH1 0x40
0000107d: MLOAD
0000107e: DUP1
0000107f: DUP4
00001080: SUB
00001081: DUP2
00001082: DUP7
00001083: GAS
00001084: DELEGATECALL
00001085: ISZERO
00001086: DUP1
00001087: ISZERO
00001088: PUSH2 0x1095
0000108b: JUMPI
0000108c: RETURNDATASIZE
0000108d: PUSH1 0x00
0000108f: DUP1
00001090: RETURNDATACOPY
00001091: RETURNDATASIZE
00001092: PUSH1 0x00
00001094: REVERT
00001095: JUMPDEST
00001096: POP
00001097: POP
00001098: POP
00001099: POP
0000109a: PUSH1 0x40
0000109c: MLOAD
0000109d: RETURNDATASIZE
0000109e: PUSH1 0x1f
000010a0: NOT
000010a1: PUSH1 0x1f
000010a3: DUP3
000010a4: ADD
000010a5: AND
000010a6: DUP3
000010a7: ADD
000010a8: DUP1
000010a9: PUSH1 0x40
000010ab: MSTORE
000010ac: POP
000010ad: DUP2
000010ae: ADD
000010af: SWAP1
000010b0: PUSH2 0x10b9
000010b3: SWAP2
000010b4: SWAP1
000010b5: PUSH2 0x4fdb
000010b8: JUMP
000010b9: JUMPDEST
000010ba: SWAP5
000010bb: SWAP4
000010bc: POP
000010bd: POP
000010be: POP
000010bf: POP
000010c0: JUMP
000010c1: JUMPDEST
000010c2: PUSH1 0x00
000010c4: SLOAD
000010c5: PUSH2 0x0100
000010c8: SWAP1
000010c9: DIV
000010ca: PUSH1 0xff
000010cc: AND
000010cd: ISZERO
000010ce: DUP1
000010cf: DUP1
000010d0: ISZERO
000010d1: PUSH2 0x10e1
000010d4: JUMPI
000010d5: POP
000010d6: PUSH1 0x00
000010d8: SLOAD
000010d9: PUSH1 0x01
000010db: PUSH1 0xff
000010dd: SWAP1
000010de: SWAP2
000010df: AND
000010e0: LT
000010e1: JUMPDEST
000010e2: DUP1
000010e3: PUSH2 0x10fb
000010e6: JUMPI
000010e7: POP
000010e8: ADDRESS
000010e9: EXTCODESIZE
000010ea: ISZERO
000010eb: DUP1
000010ec: ISZERO
000010ed: PUSH2 0x10fb
000010f0: JUMPI
000010f1: POP
000010f2: PUSH1 0x00
000010f4: SLOAD
000010f5: PUSH1 0xff
000010f7: AND
000010f8: PUSH1 0x01
000010fa: EQ
000010fb: JUMPDEST
000010fc: PUSH2 0x1163
000010ff: JUMPI
00001100: PUSH1 0x40
00001102: MLOAD
00001103: PUSH3 0x461bcd
00001107: PUSH1 0xe5
00001109: SHL
0000110a: DUP2
0000110b: MSTORE
0000110c: PUSH1 0x20
0000110e: PUSH1 0x04
00001110: DUP3
00001111: ADD
00001112: MSTORE
00001113: PUSH1 0x2e
00001115: PUSH1 0x24
00001117: DUP3
00001118: ADD
00001119: MSTORE
0000111a: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
0000113b: PUSH1 0x44
0000113d: DUP3
0000113e: ADD
0000113f: MSTORE
00001140: PUSH14 0x191e481a5b9a5d1a585b1a5e9959
0000114f: PUSH1 0x92
00001151: SHL
00001152: PUSH1 0x64
00001154: DUP3
00001155: ADD
00001156: MSTORE
00001157: PUSH1 0x84
00001159: ADD
0000115a: JUMPDEST
0000115b: PUSH1 0x40
0000115d: MLOAD
0000115e: DUP1
0000115f: SWAP2
00001160: SUB
00001161: SWAP1
00001162: REVERT
00001163: JUMPDEST
00001164: PUSH1 0x00
00001166: DUP1
00001167: SLOAD
00001168: PUSH1 0xff
0000116a: NOT
0000116b: AND
0000116c: PUSH1 0x01
0000116e: OR
0000116f: SWAP1
00001170: SSTORE
00001171: DUP1
00001172: ISZERO
00001173: PUSH2 0x1186
00001176: JUMPI
00001177: PUSH1 0x00
00001179: DUP1
0000117a: SLOAD
0000117b: PUSH2 0xff00
0000117e: NOT
0000117f: AND
00001180: PUSH2 0x0100
00001183: OR
00001184: SWAP1
00001185: SSTORE
00001186: JUMPDEST
00001187: PUSH2 0x11b4
0000118a: DUP5
0000118b: PUSH1 0x40
0000118d: MLOAD
0000118e: DUP1
0000118f: PUSH1 0x40
00001191: ADD
00001192: PUSH1 0x40
00001194: MSTORE
00001195: DUP1
00001196: PUSH1 0x0c
00001198: DUP2
00001199: MSTORE
0000119a: PUSH1 0x20
0000119c: ADD
0000119d: PUSH12 0x0e6f2dac4ded8a6eaccccd2f
000011aa: PUSH1 0xa3
000011ac: SHL
000011ad: DUP2
000011ae: MSTORE
000011af: POP
000011b0: PUSH2 0x3c0b
000011b3: JUMP
000011b4: JUMPDEST
000011b5: PUSH2 0x11e0
000011b8: DUP4
000011b9: PUSH1 0x40
000011bb: MLOAD
000011bc: DUP1
000011bd: PUSH1 0x40
000011bf: ADD
000011c0: PUSH1 0x40
000011c2: MSTORE
000011c3: DUP1
000011c4: PUSH1 0x0a
000011c6: DUP2
000011c7: MSTORE
000011c8: PUSH1 0x20
000011ca: ADD
000011cb: PUSH10 0x0c8cae6c6a0e4caccd2f
000011d6: PUSH1 0xb3
000011d8: SHL
000011d9: DUP2
000011da: MSTORE
000011db: POP
000011dc: PUSH2 0x3c0b
000011df: JUMP
000011e0: JUMPDEST
000011e1: PUSH2 0x121f
000011e4: DUP6
000011e5: PUSH1 0x40
000011e7: MLOAD
000011e8: DUP1
000011e9: PUSH1 0x40
000011eb: ADD
000011ec: PUSH1 0x40
000011ee: MSTORE
000011ef: DUP1
000011f0: PUSH1 0x17
000011f2: DUP2
000011f3: MSTORE
000011f4: PUSH1 0x20
000011f6: ADD
000011f7: PUSH32 0x6175746f506f6f6c537472617465677941646472657373000000000000000000
00001218: DUP2
00001219: MSTORE
0000121a: POP
0000121b: PUSH2 0x3b69
0000121e: JUMP
0000121f: JUMPDEST
00001220: PUSH1 0x24
00001222: DUP1
00001223: SLOAD
00001224: PUSH1 0x01
00001226: PUSH1 0x01
00001228: PUSH1 0xa0
0000122a: SHL
0000122b: SUB
0000122c: NOT
0000122d: AND
0000122e: CALLER
0000122f: OR
00001230: SWAP1
00001231: SSTORE
00001232: PUSH1 0x07
00001234: PUSH2 0x123d
00001237: DUP6
00001238: DUP3
00001239: PUSH2 0x5169
0000123c: JUMP
0000123d: JUMPDEST
0000123e: POP
0000123f: PUSH1 0x06
00001241: PUSH2 0x124a
00001244: DUP5
00001245: DUP3
00001246: PUSH2 0x5169
00001249: JUMP
0000124a: JUMPDEST
0000124b: POP
0000124c: PUSH1 0x40
0000124e: MLOAD
0000124f: PUSH4 0x6ac5b383
00001254: PUSH1 0xe0
00001256: SHL
00001257: DUP2
00001258: MSTORE
00001259: PUSH1 0x14
0000125b: PUSH1 0x04
0000125d: DUP3
0000125e: ADD
0000125f: MSTORE
00001260: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
00001275: SWAP1
00001276: PUSH4 0x6ac5b383
0000127b: SWAP1
0000127c: PUSH1 0x24
0000127e: ADD
0000127f: PUSH1 0x00
00001281: PUSH1 0x40
00001283: MLOAD
00001284: DUP1
00001285: DUP4
00001286: SUB
00001287: DUP2
00001288: DUP7
00001289: DUP1
0000128a: EXTCODESIZE
0000128b: ISZERO
0000128c: DUP1
0000128d: ISZERO
0000128e: PUSH2 0x1296
00001291: JUMPI
00001292: PUSH1 0x00
00001294: DUP1
00001295: REVERT
00001296: JUMPDEST
00001297: POP
00001298: GAS
00001299: DELEGATECALL
0000129a: ISZERO
0000129b: DUP1
0000129c: ISZERO
0000129d: PUSH2 0x12aa
000012a0: JUMPI
000012a1: RETURNDATASIZE
000012a2: PUSH1 0x00
000012a4: DUP1
000012a5: RETURNDATACOPY
000012a6: RETURNDATASIZE
000012a7: PUSH1 0x00
000012a9: REVERT
000012aa: JUMPDEST
000012ab: POP
000012ac: POP
000012ad: PUSH1 0x26
000012af: DUP1
000012b0: SLOAD
000012b1: PUSH1 0x01
000012b3: PUSH1 0x01
000012b5: PUSH1 0xa0
000012b7: SHL
000012b8: SUB
000012b9: NOT
000012ba: AND
000012bb: PUSH1 0x01
000012bd: PUSH1 0x01
000012bf: PUSH1 0xa0
000012c1: SHL
000012c2: SUB
000012c3: DUP10
000012c4: AND
000012c5: OR
000012c6: SWAP1
000012c7: SSTORE
000012c8: POP
000012c9: PUSH1 0x00
000012cb: SWAP1
000012cc: POP
000012cd: PUSH2 0x12db
000012d0: PUSH3 0x0186a0
000012d4: PUSH2 0xdead
000012d7: PUSH2 0x20a0
000012da: JUMP
000012db: JUMPDEST
000012dc: SWAP1
000012dd: POP
000012de: PUSH3 0x0186a0
000012e2: DUP2
000012e3: EQ
000012e4: PUSH2 0x130c
000012e7: JUMPI
000012e8: PUSH1 0x40
000012ea: MLOAD
000012eb: PUSH4 0x09469bc1
000012f0: PUSH1 0xe2
000012f2: SHL
000012f3: DUP2
000012f4: MSTORE
000012f5: PUSH3 0x0186a0
000012f9: PUSH1 0x04
000012fb: DUP3
000012fc: ADD
000012fd: MSTORE
000012fe: PUSH1 0x24
00001300: DUP2
00001301: ADD
00001302: DUP3
00001303: SWAP1
00001304: MSTORE
00001305: PUSH1 0x44
00001307: ADD
00001308: PUSH2 0x115a
0000130b: JUMP
0000130c: JUMPDEST
0000130d: PUSH1 0x40
0000130f: MLOAD
00001310: PUSH4 0x25f37153
00001315: PUSH1 0xe0
00001317: SHL
00001318: DUP2
00001319: MSTORE
0000131a: PUSH1 0x12
0000131c: PUSH1 0x04
0000131e: DUP3
0000131f: ADD
00001320: MSTORE
00001321: PUSH1 0x02
00001323: PUSH1 0x24
00001325: DUP3
00001326: ADD
00001327: MSTORE
00001328: PUSH3 0x015180
0000132c: PUSH1 0x44
0000132e: DUP3
0000132f: ADD
00001330: MSTORE
00001331: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
00001346: SWAP1
00001347: PUSH4 0x25f37153
0000134c: SWAP1
0000134d: PUSH1 0x64
0000134f: ADD
00001350: PUSH1 0x00
00001352: PUSH1 0x40
00001354: MLOAD
00001355: DUP1
00001356: DUP4
00001357: SUB
00001358: DUP2
00001359: DUP7
0000135a: DUP1
0000135b: EXTCODESIZE
0000135c: ISZERO
0000135d: DUP1
0000135e: ISZERO
0000135f: PUSH2 0x1367
00001362: JUMPI
00001363: PUSH1 0x00
00001365: DUP1
00001366: REVERT
00001367: JUMPDEST
00001368: POP
00001369: GAS
0000136a: DELEGATECALL
0000136b: ISZERO
0000136c: DUP1
0000136d: ISZERO
0000136e: PUSH2 0x137b
00001371: JUMPI
00001372: RETURNDATASIZE
00001373: PUSH1 0x00
00001375: DUP1
00001376: RETURNDATACOPY
00001377: RETURNDATASIZE
00001378: PUSH1 0x00
0000137a: REVERT
0000137b: JUMPDEST
0000137c: POP
0000137d: POP
0000137e: POP
0000137f: POP
00001380: POP
00001381: DUP1
00001382: ISZERO
00001383: PUSH2 0x13c6
00001386: JUMPI
00001387: PUSH1 0x00
00001389: DUP1
0000138a: SLOAD
0000138b: PUSH2 0xff00
0000138e: NOT
0000138f: AND
00001390: SWAP1
00001391: SSTORE
00001392: PUSH1 0x40
00001394: MLOAD
00001395: PUSH1 0x01
00001397: DUP2
00001398: MSTORE
00001399: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
000013ba: SWAP1
000013bb: PUSH1 0x20
000013bd: ADD
000013be: PUSH1 0x40
000013c0: MLOAD
000013c1: DUP1
000013c2: SWAP2
000013c3: SUB
000013c4: SWAP1
000013c5: LOG1
000013c6: JUMPDEST
000013c7: POP
000013c8: POP
000013c9: POP
000013ca: POP
000013cb: POP
000013cc: JUMP
000013cd: JUMPDEST
000013ce: PUSH1 0x40
000013d0: MLOAD
000013d1: PUSH4 0x24745215
000013d6: PUSH1 0xe2
000013d8: SHL
000013d9: DUP2
000013da: MSTORE
000013db: PUSH32 0x29f066ba98b1de62c9c969c781ec5d316c4e96752461c65aa1a1f8b71b818955
000013fc: SWAP1
000013fd: PUSH1 0x01
000013ff: PUSH1 0x01
00001401: PUSH1 0xa0
00001403: SHL
00001404: SUB
00001405: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00001426: AND
00001427: SWAP1
00001428: PUSH4 0x91d14854
0000142d: SWAP1
0000142e: PUSH2 0x143d
00001431: SWAP1
00001432: DUP5
00001433: SWAP1
00001434: CALLER
00001435: SWAP1
00001436: PUSH1 0x04
00001438: ADD
00001439: PUSH2 0x5228
0000143c: JUMP
0000143d: JUMPDEST
0000143e: PUSH1 0x20
00001440: PUSH1 0x40
00001442: MLOAD
00001443: DUP1
00001444: DUP4
00001445: SUB
00001446: DUP2
00001447: DUP7
00001448: GAS
00001449: STATICCALL
0000144a: ISZERO
0000144b: DUP1
0000144c: ISZERO
0000144d: PUSH2 0x145a
00001450: JUMPI
00001451: RETURNDATASIZE
00001452: PUSH1 0x00
00001454: DUP1
00001455: RETURNDATACOPY
00001456: RETURNDATASIZE
00001457: PUSH1 0x00
00001459: REVERT
0000145a: JUMPDEST
0000145b: POP
0000145c: POP
0000145d: POP
0000145e: POP
0000145f: PUSH1 0x40
00001461: MLOAD
00001462: RETURNDATASIZE
00001463: PUSH1 0x1f
00001465: NOT
00001466: PUSH1 0x1f
00001468: DUP3
00001469: ADD
0000146a: AND
0000146b: DUP3
0000146c: ADD
0000146d: DUP1
0000146e: PUSH1 0x40
00001470: MSTORE
00001471: POP
00001472: DUP2
00001473: ADD
00001474: SWAP1
00001475: PUSH2 0x147e
00001478: SWAP2
00001479: SWAP1
0000147a: PUSH2 0x4fdb
0000147d: JUMP
0000147e: JUMPDEST
0000147f: PUSH2 0x149b
00001482: JUMPI
00001483: PUSH1 0x40
00001485: MLOAD
00001486: PUSH4 0x4ca88867
0000148b: PUSH1 0xe0
0000148d: SHL
0000148e: DUP2
0000148f: MSTORE
00001490: PUSH1 0x04
00001492: ADD
00001493: PUSH1 0x40
00001495: MLOAD
00001496: DUP1
00001497: SWAP2
00001498: SUB
00001499: SWAP1
0000149a: REVERT
0000149b: JUMPDEST
0000149c: PUSH1 0x00
0000149e: DUP3
0000149f: PUSH1 0x02
000014a1: DUP2
000014a2: GT
000014a3: ISZERO
000014a4: PUSH2 0x14af
000014a7: JUMPI
000014a8: PUSH2 0x14af
000014ab: PUSH2 0x4ad6
000014ae: JUMP
000014af: JUMPDEST
000014b0: SUB
000014b1: PUSH2 0x14cf
000014b4: JUMPI
000014b5: DUP2
000014b6: PUSH1 0x40
000014b8: MLOAD
000014b9: PUSH4 0x2b356531
000014be: PUSH1 0xe2
000014c0: SHL
000014c1: DUP2
000014c2: MSTORE
000014c3: PUSH1 0x04
000014c5: ADD
000014c6: PUSH2 0x115a
000014c9: SWAP2
000014ca: SWAP1
000014cb: PUSH2 0x4b0a
000014ce: JUMP
000014cf: JUMPDEST
000014d0: PUSH1 0x0d
000014d2: DUP1
000014d3: SLOAD
000014d4: PUSH1 0x01
000014d6: PUSH1 0xff
000014d8: NOT
000014d9: DUP3
000014da: AND
000014db: DUP2
000014dc: OR
000014dd: DUP4
000014de: SSTORE
000014df: DUP5
000014e0: SWAP3
000014e1: SWAP2
000014e2: PUSH2 0xffff
000014e5: NOT
000014e6: AND
000014e7: OR
000014e8: PUSH2 0x0100
000014eb: DUP4
000014ec: PUSH1 0x02
000014ee: DUP2
000014ef: GT
000014f0: ISZERO
000014f1: PUSH2 0x14fc
000014f4: JUMPI
000014f5: PUSH2 0x14fc
000014f8: PUSH2 0x4ad6
000014fb: JUMP
000014fc: JUMPDEST
000014fd: MUL
000014fe: OR
000014ff: SWAP1
00001500: SSTORE
00001501: POP
00001502: PUSH32 0xc85216bd9ad96664f2f809d1ac5ee9868b286dd7374145090ee1b669a8f39cc9
00001523: DUP3
00001524: PUSH1 0x40
00001526: MLOAD
00001527: PUSH2 0x1530
0000152a: SWAP2
0000152b: SWAP1
0000152c: PUSH2 0x4b0a
0000152f: JUMP
00001530: JUMPDEST
00001531: PUSH1 0x40
00001533: MLOAD
00001534: DUP1
00001535: SWAP2
00001536: SUB
00001537: SWAP1
00001538: LOG1
00001539: POP
0000153a: POP
0000153b: JUMP
0000153c: JUMPDEST
0000153d: PUSH2 0x15a6
00001540: PUSH1 0x40
00001542: MLOAD
00001543: DUP1
00001544: PUSH2 0x0140
00001547: ADD
00001548: PUSH1 0x40
0000154a: MSTORE
0000154b: DUP1
0000154c: PUSH1 0x00
0000154e: PUSH1 0x01
00001550: PUSH1 0x01
00001552: PUSH1 0xa0
00001554: SHL
00001555: SUB
00001556: AND
00001557: DUP2
00001558: MSTORE
00001559: PUSH1 0x20
0000155b: ADD
0000155c: PUSH1 0x00
0000155e: DUP2
0000155f: MSTORE
00001560: PUSH1 0x20
00001562: ADD
00001563: PUSH1 0x00
00001565: DUP2
00001566: MSTORE
00001567: PUSH1 0x20
00001569: ADD
0000156a: PUSH1 0x00
0000156c: DUP2
0000156d: MSTORE
0000156e: PUSH1 0x20
00001570: ADD
00001571: PUSH1 0x00
00001573: PUSH1 0x01
00001575: PUSH1 0x01
00001577: PUSH1 0xa0
00001579: SHL
0000157a: SUB
0000157b: AND
0000157c: DUP2
0000157d: MSTORE
0000157e: PUSH1 0x20
00001580: ADD
00001581: PUSH1 0x00
00001583: DUP2
00001584: MSTORE
00001585: PUSH1 0x20
00001587: ADD
00001588: PUSH1 0x00
0000158a: DUP2
0000158b: MSTORE
0000158c: PUSH1 0x20
0000158e: ADD
0000158f: PUSH1 0x00
00001591: DUP2
00001592: MSTORE
00001593: PUSH1 0x20
00001595: ADD
00001596: PUSH1 0x00
00001598: DUP2
00001599: MSTORE
0000159a: PUSH1 0x20
0000159c: ADD
0000159d: PUSH1 0x00
0000159f: ISZERO
000015a0: ISZERO
000015a1: DUP2
000015a2: MSTORE
000015a3: POP
000015a4: SWAP1
000015a5: JUMP
000015a6: JUMPDEST
000015a7: POP
000015a8: PUSH1 0x40
000015aa: DUP1
000015ab: MLOAD
000015ac: PUSH2 0x0140
000015af: DUP2
000015b0: ADD
000015b1: DUP3
000015b2: MSTORE
000015b3: PUSH1 0x14
000015b5: SLOAD
000015b6: PUSH1 0x01
000015b8: PUSH1 0x01
000015ba: PUSH1 0xa0
000015bc: SHL
000015bd: SUB
000015be: SWAP1
000015bf: DUP2
000015c0: AND
000015c1: DUP3
000015c2: MSTORE
000015c3: PUSH1 0x15
000015c5: SLOAD
000015c6: PUSH1 0x20
000015c8: DUP4
000015c9: ADD
000015ca: MSTORE
000015cb: PUSH1 0x16
000015cd: SLOAD
000015ce: SWAP3
000015cf: DUP3
000015d0: ADD
000015d1: SWAP3
000015d2: SWAP1
000015d3: SWAP3
000015d4: MSTORE
000015d5: PUSH1 0x17
000015d7: SLOAD
000015d8: PUSH1 0x60
000015da: DUP3
000015db: ADD
000015dc: MSTORE
000015dd: PUSH1 0x18
000015df: SLOAD
000015e0: SWAP1
000015e1: SWAP2
000015e2: AND
000015e3: PUSH1 0x80
000015e5: DUP3
000015e6: ADD
000015e7: MSTORE
000015e8: PUSH1 0x19
000015ea: SLOAD
000015eb: PUSH1 0xa0
000015ed: DUP3
000015ee: ADD
000015ef: MSTORE
000015f0: PUSH1 0x1a
000015f2: SLOAD
000015f3: PUSH1 0xc0
000015f5: DUP3
000015f6: ADD
000015f7: MSTORE
000015f8: PUSH1 0x1b
000015fa: SLOAD
000015fb: PUSH1 0xe0
000015fd: DUP3
000015fe: ADD
000015ff: MSTORE
00001600: PUSH1 0x1c
00001602: SLOAD
00001603: PUSH2 0x0100
00001606: DUP3
00001607: ADD
00001608: MSTORE
00001609: PUSH1 0x1d
0000160b: SLOAD
0000160c: PUSH1 0xff
0000160e: AND
0000160f: ISZERO
00001610: ISZERO
00001611: PUSH2 0x0120
00001614: DUP3
00001615: ADD
00001616: MSTORE
00001617: SWAP1
00001618: JUMP
00001619: JUMPDEST
0000161a: PUSH1 0x24
0000161c: SLOAD
0000161d: PUSH1 0x01
0000161f: PUSH1 0x01
00001621: PUSH1 0xa0
00001623: SHL
00001624: SUB
00001625: AND
00001626: CALLER
00001627: EQ
00001628: DUP1
00001629: ISZERO
0000162a: SWAP1
0000162b: PUSH2 0x165b
0000162e: JUMPI
0000162f: POP
00001630: PUSH2 0x1659
00001633: PUSH32 0xfde2f69a846a71295e563d91ade82dc70e9eda278403d1aece24d0ded949403a
00001654: CALLER
00001655: PUSH2 0x3c2f
00001658: JUMP
00001659: JUMPDEST
0000165a: ISZERO
0000165b: JUMPDEST
0000165c: ISZERO
0000165d: PUSH2 0x1679
00001660: JUMPI
00001661: PUSH1 0x40
00001663: MLOAD
00001664: PUSH4 0x4ca88867
00001669: PUSH1 0xe0
0000166b: SHL
0000166c: DUP2
0000166d: MSTORE
0000166e: PUSH1 0x04
00001670: ADD
00001671: PUSH1 0x40
00001673: MLOAD
00001674: DUP1
00001675: SWAP2
00001676: SUB
00001677: SWAP1
00001678: REVERT
00001679: JUMPDEST
0000167a: PUSH2 0x16a3
0000167d: DUP2
0000167e: PUSH1 0x40
00001680: MLOAD
00001681: DUP1
00001682: PUSH1 0x40
00001684: ADD
00001685: PUSH1 0x40
00001687: MSTORE
00001688: DUP1
00001689: PUSH1 0x08
0000168b: DUP2
0000168c: MSTORE
0000168d: PUSH1 0x20
0000168f: ADD
00001690: PUSH8 0x3932bbb0b93232b9
00001699: PUSH1 0xc1
0000169b: SHL
0000169c: DUP2
0000169d: MSTORE
0000169e: POP
0000169f: PUSH2 0x3b69
000016a2: JUMP
000016a3: JUMPDEST
000016a4: PUSH1 0x25
000016a6: SLOAD
000016a7: PUSH1 0x01
000016a9: PUSH1 0x01
000016ab: PUSH1 0xa0
000016ad: SHL
000016ae: SUB
000016af: AND
000016b0: PUSH2 0x16ba
000016b3: PUSH1 0x22
000016b5: DUP4
000016b6: PUSH2 0x3c9d
000016b9: JUMP
000016ba: JUMPDEST
000016bb: DUP1
000016bc: PUSH2 0x16d6
000016bf: JUMPI
000016c0: POP
000016c1: DUP2
000016c2: PUSH1 0x01
000016c4: PUSH1 0x01
000016c6: PUSH1 0xa0
000016c8: SHL
000016c9: SUB
000016ca: AND
000016cb: DUP2
000016cc: PUSH1 0x01
000016ce: PUSH1 0x01
000016d0: PUSH1 0xa0
000016d2: SHL
000016d3: SUB
000016d4: AND
000016d5: EQ
000016d6: JUMPDEST
000016d7: ISZERO
000016d8: PUSH2 0x16f4
000016db: JUMPI
000016dc: PUSH1 0x40
000016de: MLOAD
000016df: PUSH4 0x3e04f871
000016e4: PUSH1 0xe0
000016e6: SHL
000016e7: DUP2
000016e8: MSTORE
000016e9: PUSH1 0x04
000016eb: ADD
000016ec: PUSH1 0x40
000016ee: MLOAD
000016ef: DUP1
000016f0: SWAP2
000016f1: SUB
000016f2: SWAP1
000016f3: REVERT
000016f4: JUMPDEST
000016f5: PUSH1 0x01
000016f7: PUSH1 0x01
000016f9: PUSH1 0xa0
000016fb: SHL
000016fc: SUB
000016fd: DUP2
000016fe: AND
000016ff: ISZERO
00001700: PUSH2 0x1710
00001703: JUMPI
00001704: PUSH2 0x170e
00001707: PUSH1 0x22
00001709: DUP3
0000170a: PUSH2 0x3cbf
0000170d: JUMP
0000170e: JUMPDEST
0000170f: POP
00001710: JUMPDEST
00001711: PUSH1 0x25
00001713: DUP1
00001714: SLOAD
00001715: PUSH1 0x01
00001717: PUSH1 0x01
00001719: PUSH1 0xa0
0000171b: SHL
0000171c: SUB
0000171d: NOT
0000171e: AND
0000171f: PUSH1 0x01
00001721: PUSH1 0x01
00001723: PUSH1 0xa0
00001725: SHL
00001726: SUB
00001727: DUP5
00001728: DUP2
00001729: AND
0000172a: SWAP2
0000172b: DUP3
0000172c: OR
0000172d: SWAP1
0000172e: SWAP3
0000172f: SSTORE
00001730: PUSH1 0x40
00001732: DUP1
00001733: MLOAD
00001734: SWAP2
00001735: DUP3
00001736: MSTORE
00001737: SWAP2
00001738: DUP4
00001739: AND
0000173a: PUSH1 0x20
0000173c: DUP3
0000173d: ADD
0000173e: MSTORE
0000173f: PUSH32 0xbc338ad631c3856fd03e151bfc793b4f06d8b3ab462a4e631b5faf33cc4d86ba
00001760: SWAP2
00001761: ADD
00001762: PUSH2 0x1530
00001765: JUMP
00001766: JUMPDEST
00001767: PUSH1 0x40
00001769: MLOAD
0000176a: PUSH4 0x24745215
0000176f: PUSH1 0xe2
00001771: SHL
00001772: DUP2
00001773: MSTORE
00001774: PUSH1 0x01
00001776: PUSH1 0x01
00001778: PUSH1 0xa0
0000177a: SHL
0000177b: SUB
0000177c: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
0000179d: AND
0000179e: SWAP1
0000179f: PUSH4 0x91d14854
000017a4: SWAP1
000017a5: PUSH2 0x17d4
000017a8: SWAP1
000017a9: PUSH32 0x62c67cb852e451f36ab720db75ef4514bb68a3897d1a5c81c9a83b7c98000a73
000017ca: SWAP1
000017cb: CALLER
000017cc: SWAP1
000017cd: PUSH1 0x04
000017cf: ADD
000017d0: PUSH2 0x5228
000017d3: JUMP
000017d4: JUMPDEST
000017d5: PUSH1 0x20
000017d7: PUSH1 0x40
000017d9: MLOAD
000017da: DUP1
000017db: DUP4
000017dc: SUB
000017dd: DUP2
000017de: DUP7
000017df: GAS
000017e0: STATICCALL
000017e1: ISZERO
000017e2: DUP1
000017e3: ISZERO
000017e4: PUSH2 0x17f1
000017e7: JUMPI
000017e8: RETURNDATASIZE
000017e9: PUSH1 0x00
000017eb: DUP1
000017ec: RETURNDATACOPY
000017ed: RETURNDATASIZE
000017ee: PUSH1 0x00
000017f0: REVERT
000017f1: JUMPDEST
000017f2: POP
000017f3: POP
000017f4: POP
000017f5: POP
000017f6: PUSH1 0x40
000017f8: MLOAD
000017f9: RETURNDATASIZE
000017fa: PUSH1 0x1f
000017fc: NOT
000017fd: PUSH1 0x1f
000017ff: DUP3
00001800: ADD
00001801: AND
00001802: DUP3
00001803: ADD
00001804: DUP1
00001805: PUSH1 0x40
00001807: MSTORE
00001808: POP
00001809: DUP2
0000180a: ADD
0000180b: SWAP1
0000180c: PUSH2 0x1815
0000180f: SWAP2
00001810: SWAP1
00001811: PUSH2 0x4fdb
00001814: JUMP
00001815: JUMPDEST
00001816: PUSH2 0x1832
00001819: JUMPI
0000181a: PUSH1 0x40
0000181c: MLOAD
0000181d: PUSH4 0x4ca88867
00001822: PUSH1 0xe0
00001824: SHL
00001825: DUP2
00001826: MSTORE
00001827: PUSH1 0x04
00001829: ADD
0000182a: PUSH1 0x40
0000182c: MLOAD
0000182d: DUP1
0000182e: SWAP2
0000182f: SUB
00001830: SWAP1
00001831: REVERT
00001832: JUMPDEST
00001833: PUSH1 0x00
00001835: SLOAD
00001836: PUSH3 0x010000
0000183a: SWAP1
0000183b: DIV
0000183c: PUSH1 0xff
0000183e: AND
0000183f: PUSH2 0x185b
00001842: JUMPI
00001843: PUSH1 0x40
00001845: MLOAD
00001846: PUSH4 0xbc871ce5
0000184b: PUSH1 0xe0
0000184d: SHL
0000184e: DUP2
0000184f: MSTORE
00001850: PUSH1 0x04
00001852: ADD
00001853: PUSH1 0x40
00001855: MLOAD
00001856: DUP1
00001857: SWAP2
00001858: SUB
00001859: SWAP1
0000185a: REVERT
0000185b: JUMPDEST
0000185c: PUSH1 0x00
0000185e: DUP1
0000185f: SLOAD
00001860: PUSH3 0xff0000
00001864: NOT
00001865: AND
00001866: SWAP1
00001867: SSTORE
00001868: PUSH1 0x40
0000186a: MLOAD
0000186b: CALLER
0000186c: DUP2
0000186d: MSTORE
0000186e: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
0000188f: SWAP1
00001890: PUSH1 0x20
00001892: ADD
00001893: JUMPDEST
00001894: PUSH1 0x40
00001896: MLOAD
00001897: DUP1
00001898: SWAP2
00001899: SUB
0000189a: SWAP1
0000189b: LOG1
0000189c: JUMP
0000189d: JUMPDEST
0000189e: PUSH1 0x00
000018a0: PUSH2 0x0d62
000018a3: DUP3
000018a4: PUSH2 0x18ad
000018a7: PUSH1 0x01
000018a9: PUSH2 0x3b96
000018ac: JUMP
000018ad: JUMPDEST
000018ae: PUSH2 0x3cd4
000018b1: JUMP
000018b2: JUMPDEST
000018b3: PUSH1 0x00
000018b5: DUP3
000018b6: ISZERO
000018b7: PUSH2 0x18cb
000018ba: JUMPI
000018bb: PUSH2 0x18c6
000018be: DUP6
000018bf: DUP6
000018c0: DUP6
000018c1: DUP6
000018c2: PUSH2 0x3ceb
000018c5: JUMP
000018c6: JUMPDEST
000018c7: PUSH2 0x18cd
000018ca: JUMP
000018cb: JUMPDEST
000018cc: DUP5
000018cd: JUMPDEST
000018ce: SWAP6
000018cf: SWAP5
000018d0: POP
000018d1: POP
000018d2: POP
000018d3: POP
000018d4: POP
000018d5: JUMP
000018d6: JUMPDEST
000018d7: PUSH1 0x00
000018d9: DUP1
000018da: DUP1
000018db: ADDRESS
000018dc: CALLER
000018dd: SUB
000018de: PUSH2 0x18fd
000018e1: JUMPI
000018e2: PUSH2 0x18eb
000018e5: PUSH1 0x02
000018e7: PUSH2 0x3b96
000018ea: JUMP
000018eb: JUMPDEST
000018ec: SWAP2
000018ed: POP
000018ee: PUSH2 0x18fa
000018f1: DUP5
000018f2: DUP4
000018f3: PUSH2 0x0d5b
000018f6: PUSH2 0x0f45
000018f9: JUMP
000018fa: JUMPDEST
000018fb: SWAP1
000018fc: POP
000018fd: JUMPDEST
000018fe: PUSH20 0xd18bac6d95119237b225db48ec29155a8cd08743
00001913: PUSH4 0x443c0bff
00001918: PUSH1 0x00
0000191a: DUP4
0000191b: DUP6
0000191c: ADDRESS
0000191d: PUSH1 0x01
0000191f: PUSH1 0x01
00001921: PUSH1 0xa0
00001923: SHL
00001924: SUB
00001925: AND
00001926: PUSH4 0x4cdad506
0000192b: DUP11
0000192c: PUSH1 0x40
0000192e: MLOAD
0000192f: PUSH1 0x24
00001931: ADD
00001932: PUSH2 0x193d
00001935: SWAP2
00001936: DUP2
00001937: MSTORE
00001938: PUSH1 0x20
0000193a: ADD
0000193b: SWAP1
0000193c: JUMP
0000193d: JUMPDEST
0000193e: PUSH1 0x40
00001940: DUP1
00001941: MLOAD
00001942: DUP1
00001943: DUP4
00001944: SUB
00001945: PUSH1 0x1f
00001947: NOT
00001948: ADD
00001949: DUP2
0000194a: MSTORE
0000194b: SWAP2
0000194c: DUP2
0000194d: MSTORE
0000194e: PUSH1 0x20
00001950: DUP3
00001951: ADD
00001952: DUP1
00001953: MLOAD
00001954: PUSH1 0xe0
00001956: SWAP5
00001957: DUP6
00001958: SHL
00001959: PUSH1 0x01
0000195b: PUSH1 0x01
0000195d: PUSH1 0xe0
0000195f: SHL
00001960: SUB
00001961: SWAP1
00001962: SWAP2
00001963: AND
00001964: OR
00001965: SWAP1
00001966: MSTORE
00001967: MLOAD
00001968: SWAP2
00001969: DUP8
0000196a: SWAP1
0000196b: SHL
0000196c: PUSH1 0x01
0000196e: PUSH1 0x01
00001970: PUSH1 0xe0
00001972: SHL
00001973: SUB
00001974: NOT
00001975: AND
00001976: DUP3
00001977: MSTORE
00001978: PUSH2 0x1991
0000197b: SWAP6
0000197c: SWAP5
0000197d: SWAP4
0000197e: SWAP3
0000197f: POP
00001980: SWAP1
00001981: PUSH1 0x1e
00001983: SWAP1
00001984: PUSH1 0x0e
00001986: SWAP1
00001987: PUSH1 0x0c
00001989: SWAP1
0000198a: PUSH1 0x04
0000198c: ADD
0000198d: PUSH2 0x4ff8
00001990: JUMP
00001991: JUMPDEST
00001992: PUSH1 0x40
00001994: DUP1
00001995: MLOAD
00001996: DUP1
00001997: DUP4
00001998: SUB
00001999: DUP2
0000199a: DUP7
0000199b: GAS
0000199c: DELEGATECALL
0000199d: ISZERO
0000199e: DUP1
0000199f: ISZERO
000019a0: PUSH2 0x19ad
000019a3: JUMPI
000019a4: RETURNDATASIZE
000019a5: PUSH1 0x00
000019a7: DUP1
000019a8: RETURNDATACOPY
000019a9: RETURNDATASIZE
000019aa: PUSH1 0x00
000019ac: REVERT
000019ad: JUMPDEST
000019ae: POP
000019af: POP
000019b0: POP
000019b1: POP
000019b2: PUSH1 0x40
000019b4: MLOAD
000019b5: RETURNDATASIZE
000019b6: PUSH1 0x1f
000019b8: NOT
000019b9: PUSH1 0x1f
000019bb: DUP3
000019bc: ADD
000019bd: AND
000019be: DUP3
000019bf: ADD
000019c0: DUP1
000019c1: PUSH1 0x40
000019c3: MSTORE
000019c4: POP
000019c5: DUP2
000019c6: ADD
000019c7: SWAP1
000019c8: PUSH2 0x19d1
000019cb: SWAP2
000019cc: SWAP1
000019cd: PUSH2 0x503e
000019d0: JUMP
000019d1: JUMPDEST
000019d2: POP
000019d3: SWAP5
000019d4: SWAP4
000019d5: POP
000019d6: POP
000019d7: POP
000019d8: POP
000019d9: JUMP
000019da: JUMPDEST
000019db: PUSH1 0x40
000019dd: MLOAD
000019de: PUSH4 0x342a534b
000019e3: PUSH1 0xe2
000019e5: SHL
000019e6: DUP2
000019e7: MSTORE
000019e8: PUSH1 0x10
000019ea: PUSH1 0x04
000019ec: DUP3
000019ed: ADD
000019ee: MSTORE
000019ef: PUSH1 0x00
000019f1: SWAP1
000019f2: DUP2
000019f3: SWAP1
000019f4: PUSH20 0xf19c66cb159246e00b5336b1ce4b4e8e01e4e4b4
00001a09: SWAP1
00001a0a: PUSH4 0xd0a94d2c
00001a0f: SWAP1
00001a10: PUSH1 0x24
00001a12: ADD
00001a13: PUSH1 0x20
00001a15: PUSH1 0x40
00001a17: MLOAD
00001a18: DUP1
00001a19: DUP4
00001a1a: SUB
00001a1b: DUP2
00001a1c: DUP7
00001a1d: GAS
00001a1e: DELEGATECALL
00001a1f: ISZERO
00001a20: DUP1
00001a21: ISZERO
00001a22: PUSH2 0x1a2f
00001a25: JUMPI
00001a26: RETURNDATASIZE
00001a27: PUSH1 0x00
00001a29: DUP1
00001a2a: RETURNDATACOPY
00001a2b: RETURNDATASIZE
00001a2c: PUSH1 0x00
00001a2e: REVERT
00001a2f: JUMPDEST
00001a30: POP
00001a31: POP
00001a32: POP
00001a33: POP
00001a34: PUSH1 0x40
00001a36: MLOAD
00001a37: RETURNDATASIZE
00001a38: PUSH1 0x1f
00001a3a: NOT
00001a3b: PUSH1 0x1f
00001a3d: DUP3
00001a3e: ADD
00001a3f: AND
00001a40: DUP3
00001a41: ADD
00001a42: DUP1
00001a43: PUSH1 0x40
00001a45: MSTORE
00001a46: POP
00001a47: DUP2
00001a48: ADD
00001a49: SWAP1
00001a4a: PUSH2 0x1a53
00001a4d: SWAP2
00001a4e: SWAP1
00001a4f: PUSH2 0x523f
00001a52: JUMP
00001a53: JUMPDEST
00001a54: PUSH1 0x01
00001a56: PUSH1 0x01
00001a58: PUSH1 0xa0
00001a5a: SHL
00001a5b: SUB
00001a5c: AND
00001a5d: PUSH1 0x00
00001a5f: SWAP1
00001a60: DUP2
00001a61: MSTORE
00001a62: PUSH1 0x0c
00001a64: PUSH1 0x20
00001a66: MSTORE
00001a67: PUSH1 0x40
00001a69: SWAP1
00001a6a: KECCAK256
00001a6b: PUSH1 0x03
00001a6d: ADD
00001a6e: SLOAD
00001a6f: SWAP3
00001a70: SWAP2
00001a71: POP
00001a72: POP
00001a73: JUMP
00001a74: JUMPDEST
00001a75: PUSH2 0x1a7c
00001a78: PUSH2 0x3d46
00001a7b: JUMP
00001a7c: JUMPDEST
00001a7d: PUSH1 0x40
00001a7f: MLOAD
00001a80: PUSH4 0x24745215
00001a85: PUSH1 0xe2
00001a87: SHL
00001a88: DUP2
00001a89: MSTORE
00001a8a: PUSH32 0xcc8d84e7812292bf7d6520663883418777cc25c70d0afb177cf436a4b193f43f
00001aab: SWAP1
00001aac: PUSH1 0x01
00001aae: PUSH1 0x01
00001ab0: PUSH1 0xa0
00001ab2: SHL
00001ab3: SUB
00001ab4: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00001ad5: AND
00001ad6: SWAP1
00001ad7: PUSH4 0x91d14854
00001adc: SWAP1
00001add: PUSH2 0x1aec
00001ae0: SWAP1
00001ae1: DUP5
00001ae2: SWAP1
00001ae3: CALLER
00001ae4: SWAP1
00001ae5: PUSH1 0x04
00001ae7: ADD
00001ae8: PUSH2 0x5228
00001aeb: JUMP
00001aec: JUMPDEST
00001aed: PUSH1 0x20
00001aef: PUSH1 0x40
00001af1: MLOAD
00001af2: DUP1
00001af3: DUP4
00001af4: SUB
00001af5: DUP2
00001af6: DUP7
00001af7: GAS
00001af8: STATICCALL
00001af9: ISZERO
00001afa: DUP1
00001afb: ISZERO
00001afc: PUSH2 0x1b09
00001aff: JUMPI
00001b00: RETURNDATASIZE
00001b01: PUSH1 0x00
00001b03: DUP1
00001b04: RETURNDATACOPY
00001b05: RETURNDATASIZE
00001b06: PUSH1 0x00
00001b08: REVERT
00001b09: JUMPDEST
00001b0a: POP
00001b0b: POP
00001b0c: POP
00001b0d: POP
00001b0e: PUSH1 0x40
00001b10: MLOAD
00001b11: RETURNDATASIZE
00001b12: PUSH1 0x1f
00001b14: NOT
00001b15: PUSH1 0x1f
00001b17: DUP3
00001b18: ADD
00001b19: AND
00001b1a: DUP3
00001b1b: ADD
00001b1c: DUP1
00001b1d: PUSH1 0x40
00001b1f: MSTORE
00001b20: POP
00001b21: DUP2
00001b22: ADD
00001b23: SWAP1
00001b24: PUSH2 0x1b2d
00001b27: SWAP2
00001b28: SWAP1
00001b29: PUSH2 0x4fdb
00001b2c: JUMP
00001b2d: JUMPDEST
00001b2e: PUSH2 0x1b4a
00001b31: JUMPI
00001b32: PUSH1 0x40
00001b34: MLOAD
00001b35: PUSH4 0x4ca88867
00001b3a: PUSH1 0xe0
00001b3c: SHL
00001b3d: DUP2
00001b3e: MSTORE
00001b3f: PUSH1 0x04
00001b41: ADD
00001b42: PUSH1 0x40
00001b44: MLOAD
00001b45: DUP1
00001b46: SWAP2
00001b47: SUB
00001b48: SWAP1
00001b49: REVERT
00001b4a: JUMPDEST
00001b4b: PUSH32 0x0000000000000000000000002218f90a98b0c070676f249ef44834686daa4285
00001b6c: PUSH1 0x01
00001b6e: PUSH1 0x01
00001b70: PUSH1 0xa0
00001b72: SHL
00001b73: SUB
00001b74: AND
00001b75: PUSH4 0xc3d0cbfb
00001b7a: PUSH1 0x40
00001b7c: MLOAD
00001b7d: DUP2
00001b7e: PUSH4 0xffffffff
00001b83: AND
00001b84: PUSH1 0xe0
00001b86: SHL
00001b87: DUP2
00001b88: MSTORE
00001b89: PUSH1 0x04
00001b8b: ADD
00001b8c: PUSH1 0x20
00001b8e: PUSH1 0x40
00001b90: MLOAD
00001b91: DUP1
00001b92: DUP4
00001b93: SUB
00001b94: DUP2
00001b95: DUP7
00001b96: GAS
00001b97: STATICCALL
00001b98: ISZERO
00001b99: DUP1
00001b9a: ISZERO
00001b9b: PUSH2 0x1ba8
00001b9e: JUMPI
00001b9f: RETURNDATASIZE
00001ba0: PUSH1 0x00
00001ba2: DUP1
00001ba3: RETURNDATACOPY
00001ba4: RETURNDATASIZE
00001ba5: PUSH1 0x00
00001ba7: REVERT
00001ba8: JUMPDEST
00001ba9: POP
00001baa: POP
00001bab: POP
00001bac: POP
00001bad: PUSH1 0x40
00001baf: MLOAD
00001bb0: RETURNDATASIZE
00001bb1: PUSH1 0x1f
00001bb3: NOT
00001bb4: PUSH1 0x1f
00001bb6: DUP3
00001bb7: ADD
00001bb8: AND
00001bb9: DUP3
00001bba: ADD
00001bbb: DUP1
00001bbc: PUSH1 0x40
00001bbe: MSTORE
00001bbf: POP
00001bc0: DUP2
00001bc1: ADD
00001bc2: SWAP1
00001bc3: PUSH2 0x1bcc
00001bc6: SWAP2
00001bc7: SWAP1
00001bc8: PUSH2 0x523f
00001bcb: JUMP
00001bcc: JUMPDEST
00001bcd: PUSH1 0x01
00001bcf: PUSH1 0x01
00001bd1: PUSH1 0xa0
00001bd3: SHL
00001bd4: SUB
00001bd5: AND
00001bd6: PUSH4 0x78b3218e
00001bdb: PUSH1 0x40
00001bdd: MLOAD
00001bde: DUP2
00001bdf: PUSH4 0xffffffff
00001be4: AND
00001be5: PUSH1 0xe0
00001be7: SHL
00001be8: DUP2
00001be9: MSTORE
00001bea: PUSH1 0x04
00001bec: ADD
00001bed: PUSH1 0x00
00001bef: PUSH1 0x40
00001bf1: MLOAD
00001bf2: DUP1
00001bf3: DUP4
00001bf4: SUB
00001bf5: DUP2
00001bf6: PUSH1 0x00
00001bf8: DUP8
00001bf9: DUP1
00001bfa: EXTCODESIZE
00001bfb: ISZERO
00001bfc: DUP1
00001bfd: ISZERO
00001bfe: PUSH2 0x1c06
00001c01: JUMPI
00001c02: PUSH1 0x00
00001c04: DUP1
00001c05: REVERT
00001c06: JUMPDEST
00001c07: POP
00001c08: GAS
00001c09: CALL
00001c0a: ISZERO
00001c0b: DUP1
00001c0c: ISZERO
00001c0d: PUSH2 0x1c1a
00001c10: JUMPI
00001c11: RETURNDATASIZE
00001c12: PUSH1 0x00
00001c14: DUP1
00001c15: RETURNDATACOPY
00001c16: RETURNDATASIZE
00001c17: PUSH1 0x00
00001c19: REVERT
00001c1a: JUMPDEST
00001c1b: POP
00001c1c: POP
00001c1d: PUSH1 0x1e
00001c1f: SLOAD
00001c20: PUSH1 0x1f
00001c22: SLOAD
00001c23: PUSH1 0x40
00001c25: MLOAD
00001c26: PUSH4 0x19198b0b
00001c2b: PUSH1 0xe2
00001c2d: SHL
00001c2e: DUP2
00001c2f: MSTORE
00001c30: PUSH1 0x10
00001c32: PUSH1 0x04
00001c34: DUP3
00001c35: ADD
00001c36: MSTORE
00001c37: PUSH1 0x0c
00001c39: PUSH1 0x24
00001c3b: DUP3
00001c3c: ADD
00001c3d: MSTORE
00001c3e: PUSH1 0x44
00001c40: DUP2
00001c41: ADD
00001c42: DUP8
00001c43: SWAP1
00001c44: MSTORE
00001c45: SWAP2
00001c46: SWAP4
00001c47: POP
00001c48: SWAP2
00001c49: POP
00001c4a: PUSH1 0x00
00001c4c: SWAP1
00001c4d: PUSH20 0xd18bac6d95119237b225db48ec29155a8cd08743
00001c62: SWAP1
00001c63: PUSH4 0x64662c2c
00001c68: SWAP1
00001c69: PUSH1 0x64
00001c6b: ADD
00001c6c: PUSH2 0x0120
00001c6f: PUSH1 0x40
00001c71: MLOAD
00001c72: DUP1
00001c73: DUP4
00001c74: SUB
00001c75: DUP2
00001c76: DUP7
00001c77: GAS
00001c78: DELEGATECALL
00001c79: ISZERO
00001c7a: DUP1
00001c7b: ISZERO
00001c7c: PUSH2 0x1c89
00001c7f: JUMPI
00001c80: RETURNDATASIZE
00001c81: PUSH1 0x00
00001c83: DUP1
00001c84: RETURNDATACOPY
00001c85: RETURNDATASIZE
00001c86: PUSH1 0x00
00001c88: REVERT
00001c89: JUMPDEST
00001c8a: POP
00001c8b: POP
00001c8c: POP
00001c8d: POP
00001c8e: PUSH1 0x40
00001c90: MLOAD
00001c91: RETURNDATASIZE
00001c92: PUSH1 0x1f
00001c94: NOT
00001c95: PUSH1 0x1f
00001c97: DUP3
00001c98: ADD
00001c99: AND
00001c9a: DUP3
00001c9b: ADD
00001c9c: DUP1
00001c9d: PUSH1 0x40
00001c9f: MSTORE
00001ca0: POP
00001ca1: DUP2
00001ca2: ADD
00001ca3: SWAP1
00001ca4: PUSH2 0x1cad
00001ca7: SWAP2
00001ca8: SWAP1
00001ca9: PUSH2 0x525c
00001cac: JUMP
00001cad: JUMPDEST
00001cae: SWAP1
00001caf: POP
00001cb0: PUSH1 0x00
00001cb2: DUP2
00001cb3: PUSH1 0x40
00001cb5: ADD
00001cb6: MLOAD
00001cb7: DUP5
00001cb8: PUSH2 0x1cc1
00001cbb: SWAP2
00001cbc: SWAP1
00001cbd: PUSH2 0x52f4
00001cc0: JUMP
00001cc1: JUMPDEST
00001cc2: SWAP1
00001cc3: POP
00001cc4: PUSH1 0x00
00001cc6: DUP3
00001cc7: PUSH1 0x80
00001cc9: ADD
00001cca: MLOAD
00001ccb: DUP4
00001ccc: PUSH1 0x60
00001cce: ADD
00001ccf: MLOAD
00001cd0: DUP6
00001cd1: PUSH2 0x1cda
00001cd4: SWAP2
00001cd5: SWAP1
00001cd6: PUSH2 0x52f4
00001cd9: JUMP
00001cda: JUMPDEST
00001cdb: PUSH2 0x1ce4
00001cde: SWAP2
00001cdf: SWAP1
00001ce0: PUSH2 0x5307
00001ce3: JUMP
00001ce4: JUMPDEST
00001ce5: PUSH1 0x1e
00001ce7: DUP4
00001ce8: SWAP1
00001ce9: SSTORE
00001cea: PUSH1 0x1f
00001cec: DUP2
00001ced: SWAP1
00001cee: SSTORE
00001cef: PUSH1 0xc0
00001cf1: DUP5
00001cf2: ADD
00001cf3: MLOAD
00001cf4: PUSH1 0xa0
00001cf6: DUP6
00001cf7: ADD
00001cf8: MLOAD
00001cf9: PUSH1 0x20
00001cfb: SLOAD
00001cfc: SWAP3
00001cfd: SWAP4
00001cfe: POP
00001cff: SWAP1
00001d00: SWAP2
00001d01: PUSH2 0x1d0a
00001d04: SWAP2
00001d05: SWAP1
00001d06: PUSH2 0x52f4
00001d09: JUMP
00001d0a: JUMPDEST
00001d0b: PUSH2 0x1d14
00001d0e: SWAP2
00001d0f: SWAP1
00001d10: PUSH2 0x5307
00001d13: JUMP
00001d14: JUMPDEST
00001d15: PUSH1 0x20
00001d17: SSTORE
00001d18: PUSH2 0x0100
00001d1b: DUP4
00001d1c: ADD
00001d1d: MLOAD
00001d1e: PUSH1 0xe0
00001d20: DUP5
00001d21: ADD
00001d22: MLOAD
00001d23: PUSH1 0x21
00001d25: SLOAD
00001d26: PUSH2 0x1d2f
00001d29: SWAP2
00001d2a: SWAP1
00001d2b: PUSH2 0x52f4
00001d2e: JUMP
00001d2f: JUMPDEST
00001d30: PUSH2 0x1d39
00001d33: SWAP2
00001d34: SWAP1
00001d35: PUSH2 0x5307
00001d38: JUMP
00001d39: JUMPDEST
00001d3a: PUSH1 0x21
00001d3c: SSTORE
00001d3d: PUSH1 0x00
00001d3f: PUSH2 0x1d5c
00001d42: PUSH2 0x1d4b
00001d45: DUP4
00001d46: DUP6
00001d47: PUSH2 0x52f4
00001d4a: JUMP
00001d4b: JUMPDEST
00001d4c: PUSH2 0x1d55
00001d4f: DUP8
00001d50: DUP10
00001d51: PUSH2 0x52f4
00001d54: JUMP
00001d55: JUMPDEST
00001d56: PUSH1 0x01
00001d58: PUSH2 0x3d70
00001d5b: JUMP
00001d5c: JUMPDEST
00001d5d: SWAP1
00001d5e: POP
00001d5f: PUSH2 0x1d71
00001d62: PUSH2 0x1d6b
00001d65: DUP4
00001d66: DUP6
00001d67: PUSH2 0x52f4
00001d6a: JUMP
00001d6b: JUMPDEST
00001d6c: DUP3
00001d6d: PUSH2 0x3ec7
00001d70: JUMP
00001d71: JUMPDEST
00001d72: PUSH1 0x40
00001d74: DUP1
00001d75: MLOAD
00001d76: DUP5
00001d77: DUP2
00001d78: MSTORE
00001d79: PUSH1 0x20
00001d7b: DUP2
00001d7c: ADD
00001d7d: DUP5
00001d7e: SWAP1
00001d7f: MSTORE
00001d80: SWAP1
00001d81: DUP2
00001d82: ADD
00001d83: DUP3
00001d84: SWAP1
00001d85: MSTORE
00001d86: PUSH32 0xfde591d4268ec544cdd14ce6872b792705c3a22041dda226551134062d3e05e8
00001da7: SWAP1
00001da8: PUSH1 0x60
00001daa: ADD
00001dab: PUSH1 0x40
00001dad: MLOAD
00001dae: DUP1
00001daf: SWAP2
00001db0: SUB
00001db1: SWAP1
00001db2: LOG1
00001db3: POP
00001db4: POP
00001db5: POP
00001db6: POP
00001db7: POP
00001db8: POP
00001db9: PUSH32 0x0000000000000000000000002218f90a98b0c070676f249ef44834686daa4285
00001dda: PUSH1 0x01
00001ddc: PUSH1 0x01
00001dde: PUSH1 0xa0
00001de0: SHL
00001de1: SUB
00001de2: AND
00001de3: PUSH4 0xc3d0cbfb
00001de8: PUSH1 0x40
00001dea: MLOAD
00001deb: DUP2
00001dec: PUSH4 0xffffffff
00001df1: AND
00001df2: PUSH1 0xe0
00001df4: SHL
00001df5: DUP2
00001df6: MSTORE
00001df7: PUSH1 0x04
00001df9: ADD
00001dfa: PUSH1 0x20
00001dfc: PUSH1 0x40
00001dfe: MLOAD
00001dff: DUP1
00001e00: DUP4
00001e01: SUB
00001e02: DUP2
00001e03: DUP7
00001e04: GAS
00001e05: STATICCALL
00001e06: ISZERO
00001e07: DUP1
00001e08: ISZERO
00001e09: PUSH2 0x1e16
00001e0c: JUMPI
00001e0d: RETURNDATASIZE
00001e0e: PUSH1 0x00
00001e10: DUP1
00001e11: RETURNDATACOPY
00001e12: RETURNDATASIZE
00001e13: PUSH1 0x00
00001e15: REVERT
00001e16: JUMPDEST
00001e17: POP
00001e18: POP
00001e19: POP
00001e1a: POP
00001e1b: PUSH1 0x40
00001e1d: MLOAD
00001e1e: RETURNDATASIZE
00001e1f: PUSH1 0x1f
00001e21: NOT
00001e22: PUSH1 0x1f
00001e24: DUP3
00001e25: ADD
00001e26: AND
00001e27: DUP3
00001e28: ADD
00001e29: DUP1
00001e2a: PUSH1 0x40
00001e2c: MSTORE
00001e2d: POP
00001e2e: DUP2
00001e2f: ADD
00001e30: SWAP1
00001e31: PUSH2 0x1e3a
00001e34: SWAP2
00001e35: SWAP1
00001e36: PUSH2 0x523f
00001e39: JUMP
00001e3a: JUMPDEST
00001e3b: PUSH1 0x01
00001e3d: PUSH1 0x01
00001e3f: PUSH1 0xa0
00001e41: SHL
00001e42: SUB
00001e43: AND
00001e44: PUSH4 0x565f3652
00001e49: PUSH1 0x40
00001e4b: MLOAD
00001e4c: DUP2
00001e4d: PUSH4 0xffffffff
00001e52: AND
00001e53: PUSH1 0xe0
00001e55: SHL
00001e56: DUP2
00001e57: MSTORE
00001e58: PUSH1 0x04
00001e5a: ADD
00001e5b: PUSH1 0x00
00001e5d: PUSH1 0x40
00001e5f: MLOAD
00001e60: DUP1
00001e61: DUP4
00001e62: SUB
00001e63: DUP2
00001e64: PUSH1 0x00
00001e66: DUP8
00001e67: DUP1
00001e68: EXTCODESIZE
00001e69: ISZERO
00001e6a: DUP1
00001e6b: ISZERO
00001e6c: PUSH2 0x1e74
00001e6f: JUMPI
00001e70: PUSH1 0x00
00001e72: DUP1
00001e73: REVERT
00001e74: JUMPDEST
00001e75: POP
00001e76: GAS
00001e77: CALL
00001e78: ISZERO
00001e79: DUP1
00001e7a: ISZERO
00001e7b: PUSH2 0x1e88
00001e7e: JUMPI
00001e7f: RETURNDATASIZE
00001e80: PUSH1 0x00
00001e82: DUP1
00001e83: RETURNDATACOPY
00001e84: RETURNDATASIZE
00001e85: PUSH1 0x00
00001e87: REVERT
00001e88: JUMPDEST
00001e89: POP
00001e8a: POP
00001e8b: POP
00001e8c: POP
00001e8d: POP
00001e8e: PUSH2 0x1e96
00001e91: PUSH1 0x01
00001e93: DUP1
00001e94: SSTORE
00001e95: JUMP
00001e96: JUMPDEST
00001e97: POP
00001e98: JUMP
00001e99: JUMPDEST
00001e9a: PUSH1 0x60
00001e9c: PUSH2 0x0cac
00001e9f: PUSH1 0x08
00001ea1: PUSH2 0x3bd6
00001ea4: JUMP
00001ea5: JUMPDEST
00001ea6: PUSH1 0x00
00001ea8: DUP1
00001ea9: SLOAD
00001eaa: PUSH3 0x010000
00001eae: SWAP1
00001eaf: DIV
00001eb0: PUSH1 0xff
00001eb2: AND
00001eb3: DUP1
00001eb4: PUSH2 0x0cac
00001eb7: JUMPI
00001eb8: POP
00001eb9: PUSH32 0x000000000000000000000000027a3359b803885261b140415873845f72238833
00001eda: PUSH1 0x01
00001edc: PUSH1 0x01
00001ede: PUSH1 0xa0
00001ee0: SHL
00001ee1: SUB
00001ee2: AND
00001ee3: PUSH4 0x7691c4ac
00001ee8: PUSH1 0x40
00001eea: MLOAD
00001eeb: DUP2
00001eec: PUSH4 0xffffffff
00001ef1: AND
00001ef2: PUSH1 0xe0
00001ef4: SHL
00001ef5: DUP2
00001ef6: MSTORE
00001ef7: PUSH1 0x04
00001ef9: ADD
00001efa: PUSH1 0x20
00001efc: PUSH1 0x40
00001efe: MLOAD
00001eff: DUP1
00001f00: DUP4
00001f01: SUB
00001f02: DUP2
00001f03: PUSH1 0x00
00001f05: DUP8
00001f06: GAS
00001f07: CALL
00001f08: ISZERO
00001f09: DUP1
00001f0a: ISZERO
00001f0b: PUSH2 0x1f18
00001f0e: JUMPI
00001f0f: RETURNDATASIZE
00001f10: PUSH1 0x00
00001f12: DUP1
00001f13: RETURNDATACOPY
00001f14: RETURNDATASIZE
00001f15: PUSH1 0x00
00001f17: REVERT
00001f18: JUMPDEST
00001f19: POP
00001f1a: POP
00001f1b: POP
00001f1c: POP
00001f1d: PUSH1 0x40
00001f1f: MLOAD
00001f20: RETURNDATASIZE
00001f21: PUSH1 0x1f
00001f23: NOT
00001f24: PUSH1 0x1f
00001f26: DUP3
00001f27: ADD
00001f28: AND
00001f29: DUP3
00001f2a: ADD
00001f2b: DUP1
00001f2c: PUSH1 0x40
00001f2e: MSTORE
00001f2f: POP
00001f30: DUP2
00001f31: ADD
00001f32: SWAP1
00001f33: PUSH2 0x0cac
00001f36: SWAP2
00001f37: SWAP1
00001f38: PUSH2 0x4fdb
00001f3b: JUMP
00001f3c: JUMPDEST
00001f3d: PUSH1 0x40
00001f3f: MLOAD
00001f40: PUSH4 0x24745215
00001f45: PUSH1 0xe2
00001f47: SHL
00001f48: DUP2
00001f49: MSTORE
00001f4a: PUSH32 0x34a7520d3d78202e2ebf2e8fd1438c03a5b2d8f76e9ed166769da91b4084c8a9
00001f6b: SWAP1
00001f6c: PUSH1 0x01
00001f6e: PUSH1 0x01
00001f70: PUSH1 0xa0
00001f72: SHL
00001f73: SUB
00001f74: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00001f95: AND
00001f96: SWAP1
00001f97: PUSH4 0x91d14854
00001f9c: SWAP1
00001f9d: PUSH2 0x1fac
00001fa0: SWAP1
00001fa1: DUP5
00001fa2: SWAP1
00001fa3: CALLER
00001fa4: SWAP1
00001fa5: PUSH1 0x04
00001fa7: ADD
00001fa8: PUSH2 0x5228
00001fab: JUMP
00001fac: JUMPDEST
00001fad: PUSH1 0x20
00001faf: PUSH1 0x40
00001fb1: MLOAD
00001fb2: DUP1
00001fb3: DUP4
00001fb4: SUB
00001fb5: DUP2
00001fb6: DUP7
00001fb7: GAS
00001fb8: STATICCALL
00001fb9: ISZERO
00001fba: DUP1
00001fbb: ISZERO
00001fbc: PUSH2 0x1fc9
00001fbf: JUMPI
00001fc0: RETURNDATASIZE
00001fc1: PUSH1 0x00
00001fc3: DUP1
00001fc4: RETURNDATACOPY
00001fc5: RETURNDATASIZE
00001fc6: PUSH1 0x00
00001fc8: REVERT
00001fc9: JUMPDEST
00001fca: POP
00001fcb: POP
00001fcc: POP
00001fcd: POP
00001fce: PUSH1 0x40
00001fd0: MLOAD
00001fd1: RETURNDATASIZE
00001fd2: PUSH1 0x1f
00001fd4: NOT
00001fd5: PUSH1 0x1f
00001fd7: DUP3
00001fd8: ADD
00001fd9: AND
00001fda: DUP3
00001fdb: ADD
00001fdc: DUP1
00001fdd: PUSH1 0x40
00001fdf: MSTORE
00001fe0: POP
00001fe1: DUP2
00001fe2: ADD
00001fe3: SWAP1
00001fe4: PUSH2 0x1fed
00001fe7: SWAP2
00001fe8: SWAP1
00001fe9: PUSH2 0x4fdb
00001fec: JUMP
00001fed: JUMPDEST
00001fee: PUSH2 0x200a
00001ff1: JUMPI
00001ff2: PUSH1 0x40
00001ff4: MLOAD
00001ff5: PUSH4 0x4ca88867
00001ffa: PUSH1 0xe0
00001ffc: SHL
00001ffd: DUP2
00001ffe: MSTORE
00001fff: PUSH1 0x04
00002001: ADD
00002002: PUSH1 0x40
00002004: MLOAD
00002005: DUP1
00002006: SWAP2
00002007: SUB
00002008: SWAP1
00002009: REVERT
0000200a: JUMPDEST
0000200b: PUSH1 0x40
0000200d: MLOAD
0000200e: PUSH4 0xa4a419c7
00002013: PUSH1 0xe0
00002015: SHL
00002016: DUP2
00002017: MSTORE
00002018: PUSH20 0xb8028f58e5de9cb330c544df41d9681cdf05062e
0000202d: SWAP1
0000202e: PUSH4 0xa4a419c7
00002033: SWAP1
00002034: PUSH2 0x206b
00002037: SWAP1
00002038: PUSH1 0x0a
0000203a: SWAP1
0000203b: PUSH1 0x08
0000203d: SWAP1
0000203e: DUP9
0000203f: SWAP1
00002040: DUP9
00002041: SWAP1
00002042: PUSH32 0x0000000000000000000000002218f90a98b0c070676f249ef44834686daa4285
00002063: SWAP1
00002064: PUSH1 0x04
00002066: ADD
00002067: PUSH2 0x5363
0000206a: JUMP
0000206b: JUMPDEST
0000206c: PUSH1 0x00
0000206e: PUSH1 0x40
00002070: MLOAD
00002071: DUP1
00002072: DUP4
00002073: SUB
00002074: DUP2
00002075: DUP7
00002076: DUP1
00002077: EXTCODESIZE
00002078: ISZERO
00002079: DUP1
0000207a: ISZERO
0000207b: PUSH2 0x2083
0000207e: JUMPI
0000207f: PUSH1 0x00
00002081: DUP1
00002082: REVERT
00002083: JUMPDEST
00002084: POP
00002085: GAS
00002086: DELEGATECALL
00002087: ISZERO
00002088: DUP1
00002089: ISZERO
0000208a: PUSH2 0x2097
0000208d: JUMPI
0000208e: RETURNDATASIZE
0000208f: PUSH1 0x00
00002091: DUP1
00002092: RETURNDATACOPY
00002093: RETURNDATASIZE
00002094: PUSH1 0x00
00002096: REVERT
00002097: JUMPDEST
00002098: POP
00002099: POP
0000209a: POP
0000209b: POP
0000209c: POP
0000209d: POP
0000209e: POP
0000209f: JUMP
000020a0: JUMPDEST
000020a1: PUSH1 0x00
000020a3: PUSH2 0x20aa
000020a6: PUSH2 0x3d46
000020a9: JUMP
000020aa: JUMPDEST
000020ab: PUSH1 0x01
000020ad: PUSH1 0x00
000020af: DUP1
000020b0: PUSH2 0x20b8
000020b3: DUP4
000020b4: PUSH2 0x3f59
000020b7: JUMP
000020b8: JUMPDEST
000020b9: SWAP2
000020ba: POP
000020bb: SWAP2
000020bc: POP
000020bd: PUSH2 0x20c4
000020c0: PUSH2 0x3fa1
000020c3: JUMP
000020c4: JUMPDEST
000020c5: PUSH2 0x20ec
000020c8: DUP7
000020c9: PUSH1 0x40
000020cb: MLOAD
000020cc: DUP1
000020cd: PUSH1 0x40
000020cf: ADD
000020d0: PUSH1 0x40
000020d2: MSTORE
000020d3: DUP1
000020d4: PUSH1 0x06
000020d6: DUP2
000020d7: MSTORE
000020d8: PUSH1 0x20
000020da: ADD
000020db: PUSH6 0x617373657473
000020e2: PUSH1 0xd0
000020e4: SHL
000020e5: DUP2
000020e6: MSTORE
000020e7: POP
000020e8: PUSH2 0x40a5
000020eb: JUMP
000020ec: JUMPDEST
000020ed: PUSH1 0x00
000020ef: PUSH2 0x20f8
000020f2: PUSH1 0x01
000020f4: PUSH2 0x3b96
000020f7: JUMP
000020f8: JUMPDEST
000020f9: SWAP1
000020fa: POP
000020fb: PUSH1 0x00
000020fd: PUSH2 0x2106
00002100: DUP8
00002101: DUP4
00002102: PUSH2 0x3cd4
00002105: JUMP
00002106: JUMPDEST
00002107: SWAP1
00002108: POP
00002109: DUP1
0000210a: DUP9
0000210b: GT
0000210c: ISZERO
0000210d: PUSH2 0x2133
00002110: JUMPI
00002111: PUSH1 0x40
00002113: MLOAD
00002114: PUSH4 0x28e53d1d
00002119: PUSH1 0xe2
0000211b: SHL
0000211c: DUP2
0000211d: MSTORE
0000211e: PUSH1 0x04
00002120: DUP2
00002121: ADD
00002122: DUP10
00002123: SWAP1
00002124: MSTORE
00002125: PUSH1 0x24
00002127: DUP2
00002128: ADD
00002129: DUP3
0000212a: SWAP1
0000212b: MSTORE
0000212c: PUSH1 0x44
0000212e: ADD
0000212f: PUSH2 0x115a
00002132: JUMP
00002133: JUMPDEST
00002134: PUSH2 0x2147
00002137: DUP9
00002138: DUP4
00002139: PUSH2 0x2140
0000213c: PUSH2 0x0f45
0000213f: JUMP
00002140: JUMPDEST
00002141: PUSH1 0x00
00002143: PUSH2 0x23bb
00002146: JUMP
00002147: JUMPDEST
00002148: SWAP6
00002149: POP
0000214a: PUSH2 0x2171
0000214d: DUP7
0000214e: PUSH1 0x40
00002150: MLOAD
00002151: DUP1
00002152: PUSH1 0x40
00002154: ADD
00002155: PUSH1 0x40
00002157: MSTORE
00002158: DUP1
00002159: PUSH1 0x06
0000215b: DUP2
0000215c: MSTORE
0000215d: PUSH1 0x20
0000215f: ADD
00002160: PUSH6 0x736861726573
00002167: PUSH1 0xd0
00002169: SHL
0000216a: DUP2
0000216b: MSTORE
0000216c: POP
0000216d: PUSH2 0x40a5
00002170: JUMP
00002171: JUMPDEST
00002172: PUSH2 0x217c
00002175: DUP9
00002176: DUP8
00002177: DUP10
00002178: PUSH2 0x40c8
0000217b: JUMP
0000217c: JUMPDEST
0000217d: POP
0000217e: POP
0000217f: PUSH2 0x2189
00002182: DUP3
00002183: DUP3
00002184: DUP6
00002185: PUSH2 0x4153
00002188: JUMP
00002189: JUMPDEST
0000218a: POP
0000218b: POP
0000218c: POP
0000218d: PUSH2 0x0d62
00002190: PUSH1 0x01
00002192: DUP1
00002193: SSTORE
00002194: JUMP
00002195: JUMPDEST
00002196: PUSH1 0x40
00002198: MLOAD
00002199: PUSH4 0x24745215
0000219e: PUSH1 0xe2
000021a0: SHL
000021a1: DUP2
000021a2: MSTORE
000021a3: PUSH32 0x0cf879d4130d1406f9ac47c9bad2570cc4a127a954af798da98488d730523ec4
000021c4: SWAP1
000021c5: PUSH1 0x01
000021c7: PUSH1 0x01
000021c9: PUSH1 0xa0
000021cb: SHL
000021cc: SUB
000021cd: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
000021ee: AND
000021ef: SWAP1
000021f0: PUSH4 0x91d14854
000021f5: SWAP1
000021f6: PUSH2 0x2205
000021f9: SWAP1
000021fa: DUP5
000021fb: SWAP1
000021fc: CALLER
000021fd: SWAP1
000021fe: PUSH1 0x04
00002200: ADD
00002201: PUSH2 0x5228
00002204: JUMP
00002205: JUMPDEST
00002206: PUSH1 0x20
00002208: PUSH1 0x40
0000220a: MLOAD
0000220b: DUP1
0000220c: DUP4
0000220d: SUB
0000220e: DUP2
0000220f: DUP7
00002210: GAS
00002211: STATICCALL
00002212: ISZERO
00002213: DUP1
00002214: ISZERO
00002215: PUSH2 0x2222
00002218: JUMPI
00002219: RETURNDATASIZE
0000221a: PUSH1 0x00
0000221c: DUP1
0000221d: RETURNDATACOPY
0000221e: RETURNDATASIZE
0000221f: PUSH1 0x00
00002221: REVERT
00002222: JUMPDEST
00002223: POP
00002224: POP
00002225: POP
00002226: POP
00002227: PUSH1 0x40
00002229: MLOAD
0000222a: RETURNDATASIZE
0000222b: PUSH1 0x1f
0000222d: NOT
0000222e: PUSH1 0x1f
00002230: DUP3
00002231: ADD
00002232: AND
00002233: DUP3
00002234: ADD
00002235: DUP1
00002236: PUSH1 0x40
00002238: MSTORE
00002239: POP
0000223a: DUP2
0000223b: ADD
0000223c: SWAP1
0000223d: PUSH2 0x2246
00002240: SWAP2
00002241: SWAP1
00002242: PUSH2 0x4fdb
00002245: JUMP
00002246: JUMPDEST
00002247: PUSH2 0x2263
0000224a: JUMPI
0000224b: PUSH1 0x40
0000224d: MLOAD
0000224e: PUSH4 0x4ca88867
00002253: PUSH1 0xe0
00002255: SHL
00002256: DUP2
00002257: MSTORE
00002258: PUSH1 0x04
0000225a: ADD
0000225b: PUSH1 0x40
0000225d: MLOAD
0000225e: DUP1
0000225f: SWAP2
00002260: SUB
00002261: SWAP1
00002262: REVERT
00002263: JUMPDEST
00002264: PUSH1 0x40
00002266: MLOAD
00002267: PUSH4 0x2b3f8181
0000226c: PUSH1 0xe1
0000226e: SHL
0000226f: DUP2
00002270: MSTORE
00002271: PUSH1 0x14
00002273: PUSH1 0x04
00002275: DUP3
00002276: ADD
00002277: MSTORE
00002278: DUP3
00002279: ISZERO
0000227a: ISZERO
0000227b: PUSH1 0x24
0000227d: DUP3
0000227e: ADD
0000227f: MSTORE
00002280: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
00002295: SWAP1
00002296: PUSH4 0x567f0302
0000229b: SWAP1
0000229c: PUSH1 0x44
0000229e: ADD
0000229f: JUMPDEST
000022a0: PUSH1 0x00
000022a2: PUSH1 0x40
000022a4: MLOAD
000022a5: DUP1
000022a6: DUP4
000022a7: SUB
000022a8: DUP2
000022a9: DUP7
000022aa: DUP1
000022ab: EXTCODESIZE
000022ac: ISZERO
000022ad: DUP1
000022ae: ISZERO
000022af: PUSH2 0x22b7
000022b2: JUMPI
000022b3: PUSH1 0x00
000022b5: DUP1
000022b6: REVERT
000022b7: JUMPDEST
000022b8: POP
000022b9: GAS
000022ba: DELEGATECALL
000022bb: ISZERO
000022bc: DUP1
000022bd: ISZERO
000022be: PUSH2 0x22cb
000022c1: JUMPI
000022c2: RETURNDATASIZE
000022c3: PUSH1 0x00
000022c5: DUP1
000022c6: RETURNDATACOPY
000022c7: RETURNDATASIZE
000022c8: PUSH1 0x00
000022ca: REVERT
000022cb: JUMPDEST
000022cc: POP
000022cd: POP
000022ce: POP
000022cf: POP
000022d0: POP
000022d1: POP
000022d2: JUMP
000022d3: JUMPDEST
000022d4: PUSH2 0x22fe
000022d7: PUSH1 0x40
000022d9: MLOAD
000022da: DUP1
000022db: PUSH1 0x80
000022dd: ADD
000022de: PUSH1 0x40
000022e0: MSTORE
000022e1: DUP1
000022e2: PUSH1 0x00
000022e4: DUP2
000022e5: MSTORE
000022e6: PUSH1 0x20
000022e8: ADD
000022e9: PUSH1 0x00
000022eb: DUP2
000022ec: MSTORE
000022ed: PUSH1 0x20
000022ef: ADD
000022f0: PUSH1 0x00
000022f2: DUP2
000022f3: MSTORE
000022f4: PUSH1 0x20
000022f6: ADD
000022f7: PUSH1 0x00
000022f9: DUP2
000022fa: MSTORE
000022fb: POP
000022fc: SWAP1
000022fd: JUMP
000022fe: JUMPDEST
000022ff: POP
00002300: PUSH1 0x40
00002302: DUP1
00002303: MLOAD
00002304: PUSH1 0x80
00002306: DUP2
00002307: ADD
00002308: DUP3
00002309: MSTORE
0000230a: PUSH1 0x1e
0000230c: SLOAD
0000230d: DUP2
0000230e: MSTORE
0000230f: PUSH1 0x1f
00002311: SLOAD
00002312: PUSH1 0x20
00002314: DUP1
00002315: DUP4
00002316: ADD
00002317: SWAP2
00002318: SWAP1
00002319: SWAP2
0000231a: MSTORE
0000231b: SLOAD
0000231c: SWAP2
0000231d: DUP2
0000231e: ADD
0000231f: SWAP2
00002320: SWAP1
00002321: SWAP2
00002322: MSTORE
00002323: PUSH1 0x21
00002325: SLOAD
00002326: PUSH1 0x60
00002328: DUP3
00002329: ADD
0000232a: MSTORE
0000232b: SWAP1
0000232c: JUMP
0000232d: JUMPDEST
0000232e: PUSH1 0x40
00002330: MLOAD
00002331: PUSH4 0x560ec123
00002336: PUSH1 0xe0
00002338: SHL
00002339: DUP2
0000233a: MSTORE
0000233b: PUSH1 0x02
0000233d: PUSH1 0x04
0000233f: DUP3
00002340: ADD
00002341: MSTORE
00002342: PUSH1 0x12
00002344: PUSH1 0x24
00002346: DUP3
00002347: ADD
00002348: MSTORE
00002349: PUSH1 0x01
0000234b: PUSH1 0x01
0000234d: PUSH1 0xa0
0000234f: SHL
00002350: SUB
00002351: DUP3
00002352: AND
00002353: PUSH1 0x44
00002355: DUP3
00002356: ADD
00002357: MSTORE
00002358: PUSH1 0x00
0000235a: SWAP1
0000235b: PUSH20 0x8709b88c5cbca830d63f726a6f6f8c6573486223
00002370: SWAP1
00002371: PUSH4 0x560ec123
00002376: SWAP1
00002377: PUSH1 0x64
00002379: ADD
0000237a: JUMPDEST
0000237b: PUSH1 0x20
0000237d: PUSH1 0x40
0000237f: MLOAD
00002380: DUP1
00002381: DUP4
00002382: SUB
00002383: DUP2
00002384: DUP7
00002385: GAS
00002386: DELEGATECALL
00002387: ISZERO
00002388: DUP1
00002389: ISZERO
0000238a: PUSH2 0x2397
0000238d: JUMPI
0000238e: RETURNDATASIZE
0000238f: PUSH1 0x00
00002391: DUP1
00002392: RETURNDATACOPY
00002393: RETURNDATASIZE
00002394: PUSH1 0x00
00002396: REVERT
00002397: JUMPDEST
00002398: POP
00002399: POP
0000239a: POP
0000239b: POP
0000239c: PUSH1 0x40
0000239e: MLOAD
0000239f: RETURNDATASIZE
000023a0: PUSH1 0x1f
000023a2: NOT
000023a3: PUSH1 0x1f
000023a5: DUP3
000023a6: ADD
000023a7: AND
000023a8: DUP3
000023a9: ADD
000023aa: DUP1
000023ab: PUSH1 0x40
000023ad: MSTORE
000023ae: POP
000023af: DUP2
000023b0: ADD
000023b1: SWAP1
000023b2: PUSH2 0x0d62
000023b5: SWAP2
000023b6: SWAP1
000023b7: PUSH2 0x4f7e
000023ba: JUMP
000023bb: JUMPDEST
000023bc: PUSH1 0x00
000023be: DUP5
000023bf: ISZERO
000023c0: DUP1
000023c1: PUSH2 0x23c8
000023c4: JUMPI
000023c5: POP
000023c6: DUP3
000023c7: ISZERO
000023c8: JUMPDEST
000023c9: PUSH2 0x18cb
000023cc: JUMPI
000023cd: PUSH2 0x18c6
000023d0: DUP6
000023d1: DUP5
000023d2: DUP7
000023d3: DUP6
000023d4: PUSH2 0x3ceb
000023d7: JUMP
000023d8: JUMPDEST
000023d9: PUSH1 0x40
000023db: MLOAD
000023dc: PUSH4 0x24745215
000023e1: PUSH1 0xe2
000023e3: SHL
000023e4: DUP2
000023e5: MSTORE
000023e6: PUSH32 0x34a7520d3d78202e2ebf2e8fd1438c03a5b2d8f76e9ed166769da91b4084c8a9
00002407: SWAP1
00002408: PUSH1 0x01
0000240a: PUSH1 0x01
0000240c: PUSH1 0xa0
0000240e: SHL
0000240f: SUB
00002410: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00002431: AND
00002432: SWAP1
00002433: PUSH4 0x91d14854
00002438: SWAP1
00002439: PUSH2 0x2448
0000243c: SWAP1
0000243d: DUP5
0000243e: SWAP1
0000243f: CALLER
00002440: SWAP1
00002441: PUSH1 0x04
00002443: ADD
00002444: PUSH2 0x5228
00002447: JUMP
00002448: JUMPDEST
00002449: PUSH1 0x20
0000244b: PUSH1 0x40
0000244d: MLOAD
0000244e: DUP1
0000244f: DUP4
00002450: SUB
00002451: DUP2
00002452: DUP7
00002453: GAS
00002454: STATICCALL
00002455: ISZERO
00002456: DUP1
00002457: ISZERO
00002458: PUSH2 0x2465
0000245b: JUMPI
0000245c: RETURNDATASIZE
0000245d: PUSH1 0x00
0000245f: DUP1
00002460: RETURNDATACOPY
00002461: RETURNDATASIZE
00002462: PUSH1 0x00
00002464: REVERT
00002465: JUMPDEST
00002466: POP
00002467: POP
00002468: POP
00002469: POP
0000246a: PUSH1 0x40
0000246c: MLOAD
0000246d: RETURNDATASIZE
0000246e: PUSH1 0x1f
00002470: NOT
00002471: PUSH1 0x1f
00002473: DUP3
00002474: ADD
00002475: AND
00002476: DUP3
00002477: ADD
00002478: DUP1
00002479: PUSH1 0x40
0000247b: MSTORE
0000247c: POP
0000247d: DUP2
0000247e: ADD
0000247f: SWAP1
00002480: PUSH2 0x2489
00002483: SWAP2
00002484: SWAP1
00002485: PUSH2 0x4fdb
00002488: JUMP
00002489: JUMPDEST
0000248a: PUSH2 0x24a6
0000248d: JUMPI
0000248e: PUSH1 0x40
00002490: MLOAD
00002491: PUSH4 0x4ca88867
00002496: PUSH1 0xe0
00002498: SHL
00002499: DUP2
0000249a: MSTORE
0000249b: PUSH1 0x04
0000249d: ADD
0000249e: PUSH1 0x40
000024a0: MLOAD
000024a1: DUP1
000024a2: SWAP2
000024a3: SUB
000024a4: SWAP1
000024a5: REVERT
000024a6: JUMPDEST
000024a7: PUSH1 0x40
000024a9: MLOAD
000024aa: PUSH4 0x6469eb8d
000024af: PUSH1 0xe0
000024b1: SHL
000024b2: DUP2
000024b3: MSTORE
000024b4: PUSH20 0xb8028f58e5de9cb330c544df41d9681cdf05062e
000024c9: SWAP1
000024ca: PUSH4 0x6469eb8d
000024cf: SWAP1
000024d0: PUSH2 0x206b
000024d3: SWAP1
000024d4: PUSH1 0x0a
000024d6: SWAP1
000024d7: PUSH1 0x08
000024d9: SWAP1
000024da: DUP9
000024db: SWAP1
000024dc: DUP9
000024dd: SWAP1
000024de: PUSH1 0x04
000024e0: ADD
000024e1: PUSH2 0x539d
000024e4: JUMP
000024e5: JUMPDEST
000024e6: PUSH1 0x60
000024e8: PUSH2 0x0cac
000024eb: PUSH1 0x0a
000024ed: PUSH2 0x3bd6
000024f0: JUMP
000024f1: JUMPDEST
000024f2: PUSH1 0x40
000024f4: MLOAD
000024f5: PUSH4 0x24745215
000024fa: PUSH1 0xe2
000024fc: SHL
000024fd: DUP2
000024fe: MSTORE
000024ff: PUSH1 0x01
00002501: PUSH1 0x01
00002503: PUSH1 0xa0
00002505: SHL
00002506: SUB
00002507: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00002528: AND
00002529: SWAP1
0000252a: PUSH4 0x91d14854
0000252f: SWAP1
00002530: PUSH2 0x255f
00002533: SWAP1
00002534: PUSH32 0x62c67cb852e451f36ab720db75ef4514bb68a3897d1a5c81c9a83b7c98000a73
00002555: SWAP1
00002556: CALLER
00002557: SWAP1
00002558: PUSH1 0x04
0000255a: ADD
0000255b: PUSH2 0x5228
0000255e: JUMP
0000255f: JUMPDEST
00002560: PUSH1 0x20
00002562: PUSH1 0x40
00002564: MLOAD
00002565: DUP1
00002566: DUP4
00002567: SUB
00002568: DUP2
00002569: DUP7
0000256a: GAS
0000256b: STATICCALL
0000256c: ISZERO
0000256d: DUP1
0000256e: ISZERO
0000256f: PUSH2 0x257c
00002572: JUMPI
00002573: RETURNDATASIZE
00002574: PUSH1 0x00
00002576: DUP1
00002577: RETURNDATACOPY
00002578: RETURNDATASIZE
00002579: PUSH1 0x00
0000257b: REVERT
0000257c: JUMPDEST
0000257d: POP
0000257e: POP
0000257f: POP
00002580: POP
00002581: PUSH1 0x40
00002583: MLOAD
00002584: RETURNDATASIZE
00002585: PUSH1 0x1f
00002587: NOT
00002588: PUSH1 0x1f
0000258a: DUP3
0000258b: ADD
0000258c: AND
0000258d: DUP3
0000258e: ADD
0000258f: DUP1
00002590: PUSH1 0x40
00002592: MSTORE
00002593: POP
00002594: DUP2
00002595: ADD
00002596: SWAP1
00002597: PUSH2 0x25a0
0000259a: SWAP2
0000259b: SWAP1
0000259c: PUSH2 0x4fdb
0000259f: JUMP
000025a0: JUMPDEST
000025a1: PUSH2 0x25bd
000025a4: JUMPI
000025a5: PUSH1 0x40
000025a7: MLOAD
000025a8: PUSH4 0x4ca88867
000025ad: PUSH1 0xe0
000025af: SHL
000025b0: DUP2
000025b1: MSTORE
000025b2: PUSH1 0x04
000025b4: ADD
000025b5: PUSH1 0x40
000025b7: MLOAD
000025b8: DUP1
000025b9: SWAP2
000025ba: SUB
000025bb: SWAP1
000025bc: REVERT
000025bd: JUMPDEST
000025be: PUSH1 0x00
000025c0: SLOAD
000025c1: PUSH3 0x010000
000025c5: SWAP1
000025c6: DIV
000025c7: PUSH1 0xff
000025c9: AND
000025ca: ISZERO
000025cb: PUSH2 0x25e7
000025ce: JUMPI
000025cf: PUSH1 0x40
000025d1: MLOAD
000025d2: PUSH4 0x1309a563
000025d7: PUSH1 0xe0
000025d9: SHL
000025da: DUP2
000025db: MSTORE
000025dc: PUSH1 0x04
000025de: ADD
000025df: PUSH1 0x40
000025e1: MLOAD
000025e2: DUP1
000025e3: SWAP2
000025e4: SUB
000025e5: SWAP1
000025e6: REVERT
000025e7: JUMPDEST
000025e8: PUSH1 0x00
000025ea: DUP1
000025eb: SLOAD
000025ec: PUSH3 0xff0000
000025f0: NOT
000025f1: AND
000025f2: PUSH3 0x010000
000025f6: OR
000025f7: SWAP1
000025f8: SSTORE
000025f9: PUSH1 0x40
000025fb: MLOAD
000025fc: CALLER
000025fd: DUP2
000025fe: MSTORE
000025ff: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
00002620: SWAP1
00002621: PUSH1 0x20
00002623: ADD
00002624: PUSH2 0x1893
00002627: JUMP
00002628: JUMPDEST
00002629: PUSH2 0x2630
0000262c: PUSH2 0x3d46
0000262f: JUMP
00002630: JUMPDEST
00002631: PUSH1 0x40
00002633: MLOAD
00002634: PUSH4 0x24745215
00002639: PUSH1 0xe2
0000263b: SHL
0000263c: DUP2
0000263d: MSTORE
0000263e: PUSH32 0x0cf879d4130d1406f9ac47c9bad2570cc4a127a954af798da98488d730523ec4
0000265f: SWAP1
00002660: PUSH1 0x01
00002662: PUSH1 0x01
00002664: PUSH1 0xa0
00002666: SHL
00002667: SUB
00002668: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00002689: AND
0000268a: SWAP1
0000268b: PUSH4 0x91d14854
00002690: SWAP1
00002691: PUSH2 0x26a0
00002694: SWAP1
00002695: DUP5
00002696: SWAP1
00002697: CALLER
00002698: SWAP1
00002699: PUSH1 0x04
0000269b: ADD
0000269c: PUSH2 0x5228
0000269f: JUMP
000026a0: JUMPDEST
000026a1: PUSH1 0x20
000026a3: PUSH1 0x40
000026a5: MLOAD
000026a6: DUP1
000026a7: DUP4
000026a8: SUB
000026a9: DUP2
000026aa: DUP7
000026ab: GAS
000026ac: STATICCALL
000026ad: ISZERO
000026ae: DUP1
000026af: ISZERO
000026b0: PUSH2 0x26bd
000026b3: JUMPI
000026b4: RETURNDATASIZE
000026b5: PUSH1 0x00
000026b7: DUP1
000026b8: RETURNDATACOPY
000026b9: RETURNDATASIZE
000026ba: PUSH1 0x00
000026bc: REVERT
000026bd: JUMPDEST
000026be: POP
000026bf: POP
000026c0: POP
000026c1: POP
000026c2: PUSH1 0x40
000026c4: MLOAD
000026c5: RETURNDATASIZE
000026c6: PUSH1 0x1f
000026c8: NOT
000026c9: PUSH1 0x1f
000026cb: DUP3
000026cc: ADD
000026cd: AND
000026ce: DUP3
000026cf: ADD
000026d0: DUP1
000026d1: PUSH1 0x40
000026d3: MSTORE
000026d4: POP
000026d5: DUP2
000026d6: ADD
000026d7: SWAP1
000026d8: PUSH2 0x26e1
000026db: SWAP2
000026dc: SWAP1
000026dd: PUSH2 0x4fdb
000026e0: JUMP
000026e1: JUMPDEST
000026e2: PUSH2 0x26fe
000026e5: JUMPI
000026e6: PUSH1 0x40
000026e8: MLOAD
000026e9: PUSH4 0x4ca88867
000026ee: PUSH1 0xe0
000026f0: SHL
000026f1: DUP2
000026f2: MSTORE
000026f3: PUSH1 0x04
000026f5: ADD
000026f6: PUSH1 0x40
000026f8: MLOAD
000026f9: DUP1
000026fa: SWAP2
000026fb: SUB
000026fc: SWAP1
000026fd: REVERT
000026fe: JUMPDEST
000026ff: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
00002714: PUSH4 0x0dc78a77
00002719: PUSH1 0x14
0000271b: DUP5
0000271c: PUSH2 0x2723
0000271f: PUSH2 0x19da
00002722: JUMP
00002723: JUMPDEST
00002724: PUSH1 0x10
00002726: SLOAD
00002727: PUSH1 0x40
00002729: MLOAD
0000272a: PUSH1 0xe0
0000272c: DUP7
0000272d: SWAP1
0000272e: SHL
0000272f: PUSH1 0x01
00002731: PUSH1 0x01
00002733: PUSH1 0xe0
00002735: SHL
00002736: SUB
00002737: NOT
00002738: AND
00002739: DUP2
0000273a: MSTORE
0000273b: PUSH1 0x04
0000273d: DUP2
0000273e: ADD
0000273f: SWAP5
00002740: SWAP1
00002741: SWAP5
00002742: MSTORE
00002743: PUSH1 0x24
00002745: DUP5
00002746: ADD
00002747: SWAP3
00002748: SWAP1
00002749: SWAP3
0000274a: MSTORE
0000274b: PUSH1 0x44
0000274d: DUP4
0000274e: ADD
0000274f: MSTORE
00002750: PUSH1 0x64
00002752: DUP3
00002753: ADD
00002754: MSTORE
00002755: PUSH1 0x84
00002757: ADD
00002758: PUSH1 0x00
0000275a: PUSH1 0x40
0000275c: MLOAD
0000275d: DUP1
0000275e: DUP4
0000275f: SUB
00002760: DUP2
00002761: DUP7
00002762: DUP1
00002763: EXTCODESIZE
00002764: ISZERO
00002765: DUP1
00002766: ISZERO
00002767: PUSH2 0x276f
0000276a: JUMPI
0000276b: PUSH1 0x00
0000276d: DUP1
0000276e: REVERT
0000276f: JUMPDEST
00002770: POP
00002771: GAS
00002772: DELEGATECALL
00002773: ISZERO
00002774: DUP1
00002775: ISZERO
00002776: PUSH2 0x1e88
00002779: JUMPI
0000277a: RETURNDATASIZE
0000277b: PUSH1 0x00
0000277d: DUP1
0000277e: RETURNDATACOPY
0000277f: RETURNDATASIZE
00002780: PUSH1 0x00
00002782: REVERT
00002783: JUMPDEST
00002784: PUSH1 0x00
00002786: PUSH2 0x278d
00002789: PUSH2 0x3d46
0000278c: JUMP
0000278d: JUMPDEST
0000278e: PUSH1 0x01
00002790: PUSH1 0x00
00002792: DUP1
00002793: PUSH2 0x279b
00002796: DUP4
00002797: PUSH2 0x3f59
0000279a: JUMP
0000279b: JUMPDEST
0000279c: SWAP2
0000279d: POP
0000279e: SWAP2
0000279f: POP
000027a0: PUSH2 0x27a7
000027a3: PUSH2 0x3fa1
000027a6: JUMP
000027a7: JUMPDEST
000027a8: PUSH2 0x27b0
000027ab: DUP6
000027ac: PUSH2 0x3017
000027af: JUMP
000027b0: JUMPDEST
000027b1: DUP7
000027b2: GT
000027b3: ISZERO
000027b4: PUSH2 0x27e3
000027b7: JUMPI
000027b8: DUP6
000027b9: PUSH2 0x27c1
000027bc: DUP7
000027bd: PUSH2 0x3017
000027c0: JUMP
000027c1: JUMPDEST
000027c2: PUSH1 0x40
000027c4: MLOAD
000027c5: PUSH4 0x1091ffef
000027ca: PUSH1 0xe0
000027cc: SHL
000027cd: DUP2
000027ce: MSTORE
000027cf: PUSH1 0x04
000027d1: DUP2
000027d2: ADD
000027d3: SWAP3
000027d4: SWAP1
000027d5: SWAP3
000027d6: MSTORE
000027d7: PUSH1 0x24
000027d9: DUP3
000027da: ADD
000027db: MSTORE
000027dc: PUSH1 0x44
000027de: ADD
000027df: PUSH2 0x115a
000027e2: JUMP
000027e3: JUMPDEST
000027e4: PUSH1 0x00
000027e6: PUSH2 0x27ef
000027e9: PUSH1 0x01
000027eb: PUSH2 0x3b96
000027ee: JUMP
000027ef: JUMPDEST
000027f0: SWAP1
000027f1: POP
000027f2: PUSH2 0x2805
000027f5: DUP8
000027f6: DUP3
000027f7: PUSH2 0x27fe
000027fa: PUSH2 0x0f45
000027fd: JUMP
000027fe: JUMPDEST
000027ff: PUSH1 0x01
00002801: PUSH2 0x18b2
00002804: JUMP
00002805: JUMPDEST
00002806: SWAP5
00002807: POP
00002808: PUSH2 0x2812
0000280b: DUP6
0000280c: DUP9
0000280d: DUP9
0000280e: PUSH2 0x40c8
00002811: JUMP
00002812: JUMPDEST
00002813: POP
00002814: PUSH2 0x2189
00002817: DUP3
00002818: DUP3
00002819: DUP6
0000281a: PUSH2 0x4153
0000281d: JUMP
0000281e: JUMPDEST
0000281f: PUSH1 0x60
00002821: PUSH1 0x07
00002823: DUP1
00002824: SLOAD
00002825: PUSH2 0x0cc0
00002828: SWAP1
00002829: PUSH2 0x4f97
0000282c: JUMP
0000282d: JUMPDEST
0000282e: PUSH1 0x40
00002830: MLOAD
00002831: PUSH4 0x24745215
00002836: PUSH1 0xe2
00002838: SHL
00002839: DUP2
0000283a: MSTORE
0000283b: PUSH32 0x29f066ba98b1de62c9c969c781ec5d316c4e96752461c65aa1a1f8b71b818955
0000285c: SWAP1
0000285d: PUSH1 0x01
0000285f: PUSH1 0x01
00002861: PUSH1 0xa0
00002863: SHL
00002864: SUB
00002865: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00002886: AND
00002887: SWAP1
00002888: PUSH4 0x91d14854
0000288d: SWAP1
0000288e: PUSH2 0x289d
00002891: SWAP1
00002892: DUP5
00002893: SWAP1
00002894: CALLER
00002895: SWAP1
00002896: PUSH1 0x04
00002898: ADD
00002899: PUSH2 0x5228
0000289c: JUMP
0000289d: JUMPDEST
0000289e: PUSH1 0x20
000028a0: PUSH1 0x40
000028a2: MLOAD
000028a3: DUP1
000028a4: DUP4
000028a5: SUB
000028a6: DUP2
000028a7: DUP7
000028a8: GAS
000028a9: STATICCALL
000028aa: ISZERO
000028ab: DUP1
000028ac: ISZERO
000028ad: PUSH2 0x28ba
000028b0: JUMPI
000028b1: RETURNDATASIZE
000028b2: PUSH1 0x00
000028b4: DUP1
000028b5: RETURNDATACOPY
000028b6: RETURNDATASIZE
000028b7: PUSH1 0x00
000028b9: REVERT
000028ba: JUMPDEST
000028bb: POP
000028bc: POP
000028bd: POP
000028be: POP
000028bf: PUSH1 0x40
000028c1: MLOAD
000028c2: RETURNDATASIZE
000028c3: PUSH1 0x1f
000028c5: NOT
000028c6: PUSH1 0x1f
000028c8: DUP3
000028c9: ADD
000028ca: AND
000028cb: DUP3
000028cc: ADD
000028cd: DUP1
000028ce: PUSH1 0x40
000028d0: MSTORE
000028d1: POP
000028d2: DUP2
000028d3: ADD
000028d4: SWAP1
000028d5: PUSH2 0x28de
000028d8: SWAP2
000028d9: SWAP1
000028da: PUSH2 0x4fdb
000028dd: JUMP
000028de: JUMPDEST
000028df: PUSH2 0x28fb
000028e2: JUMPI
000028e3: PUSH1 0x40
000028e5: MLOAD
000028e6: PUSH4 0x4ca88867
000028eb: PUSH1 0xe0
000028ed: SHL
000028ee: DUP2
000028ef: MSTORE
000028f0: PUSH1 0x04
000028f2: ADD
000028f3: PUSH1 0x40
000028f5: MLOAD
000028f6: DUP1
000028f7: SWAP2
000028f8: SUB
000028f9: SWAP1
000028fa: REVERT
000028fb: JUMPDEST
000028fc: PUSH2 0x2926
000028ff: DUP4
00002900: PUSH1 0x40
00002902: MLOAD
00002903: DUP1
00002904: PUSH1 0x40
00002906: ADD
00002907: PUSH1 0x40
00002909: MSTORE
0000290a: DUP1
0000290b: PUSH1 0x09
0000290d: DUP2
0000290e: MSTORE
0000290f: PUSH1 0x20
00002911: ADD
00002912: PUSH9 0x1b995dd4de5b589bdb
0000291c: PUSH1 0xba
0000291e: SHL
0000291f: DUP2
00002920: MSTORE
00002921: POP
00002922: PUSH2 0x3c0b
00002925: JUMP
00002926: JUMPDEST
00002927: PUSH2 0x294f
0000292a: DUP3
0000292b: PUSH1 0x40
0000292d: MLOAD
0000292e: DUP1
0000292f: PUSH1 0x40
00002931: ADD
00002932: PUSH1 0x40
00002934: MSTORE
00002935: DUP1
00002936: PUSH1 0x07
00002938: DUP2
00002939: MSTORE
0000293a: PUSH1 0x20
0000293c: ADD
0000293d: PUSH7 0x6e65774e616d65
00002945: PUSH1 0xc8
00002947: SHL
00002948: DUP2
00002949: MSTORE
0000294a: POP
0000294b: PUSH2 0x3c0b
0000294e: JUMP
0000294f: JUMPDEST
00002950: PUSH1 0x00
00002952: PUSH1 0x0d
00002954: SLOAD
00002955: PUSH2 0x0100
00002958: SWAP1
00002959: DIV
0000295a: PUSH1 0xff
0000295c: AND
0000295d: PUSH1 0x02
0000295f: DUP2
00002960: GT
00002961: ISZERO
00002962: PUSH2 0x296d
00002965: JUMPI
00002966: PUSH2 0x296d
00002969: PUSH2 0x4ad6
0000296c: JUMP
0000296d: JUMPDEST
0000296e: SUB
0000296f: PUSH2 0x2997
00002972: JUMPI
00002973: PUSH1 0x0d
00002975: SLOAD
00002976: PUSH1 0x40
00002978: MLOAD
00002979: PUSH4 0x2b356531
0000297e: PUSH1 0xe2
00002980: SHL
00002981: DUP2
00002982: MSTORE
00002983: PUSH2 0x115a
00002986: SWAP2
00002987: PUSH2 0x0100
0000298a: SWAP1
0000298b: DIV
0000298c: PUSH1 0xff
0000298e: AND
0000298f: SWAP1
00002990: PUSH1 0x04
00002992: ADD
00002993: PUSH2 0x4b0a
00002996: JUMP
00002997: JUMPDEST
00002998: PUSH32 0xefef805604888de94f7456186b17b52a9aa89d786fe446638de8de83f20c5d1d
000029b9: DUP4
000029ba: DUP4
000029bb: PUSH1 0x40
000029bd: MLOAD
000029be: PUSH2 0x29c8
000029c1: SWAP3
000029c2: SWAP2
000029c3: SWAP1
000029c4: PUSH2 0x53bd
000029c7: JUMP
000029c8: JUMPDEST
000029c9: PUSH1 0x40
000029cb: MLOAD
000029cc: DUP1
000029cd: SWAP2
000029ce: SUB
000029cf: SWAP1
000029d0: LOG1
000029d1: PUSH1 0x07
000029d3: PUSH2 0x29dc
000029d6: DUP5
000029d7: DUP3
000029d8: PUSH2 0x5169
000029db: JUMP
000029dc: JUMPDEST
000029dd: POP
000029de: PUSH1 0x06
000029e0: PUSH2 0x29e9
000029e3: DUP4
000029e4: DUP3
000029e5: PUSH2 0x5169
000029e8: JUMP
000029e9: JUMPDEST
000029ea: POP
000029eb: POP
000029ec: POP
000029ed: POP
000029ee: JUMP
000029ef: JUMPDEST
000029f0: PUSH1 0x00
000029f2: PUSH2 0x29f9
000029f5: PUSH2 0x3be3
000029f8: JUMP
000029f9: JUMPDEST
000029fa: PUSH1 0x40
000029fc: MLOAD
000029fd: PUSH4 0x4d439f7f
00002a02: PUSH1 0xe0
00002a04: SHL
00002a05: DUP2
00002a06: MSTORE
00002a07: PUSH1 0x02
00002a09: PUSH1 0x04
00002a0b: DUP3
00002a0c: ADD
00002a0d: MSTORE
00002a0e: PUSH1 0x01
00002a10: PUSH1 0x01
00002a12: PUSH1 0xa0
00002a14: SHL
00002a15: SUB
00002a16: DUP5
00002a17: AND
00002a18: PUSH1 0x24
00002a1a: DUP3
00002a1b: ADD
00002a1c: MSTORE
00002a1d: PUSH1 0x44
00002a1f: DUP2
00002a20: ADD
00002a21: DUP4
00002a22: SWAP1
00002a23: MSTORE
00002a24: PUSH20 0x42699e483c5baa8e9aad5f7d804127c034a0328f
00002a39: SWAP1
00002a3a: PUSH4 0x4d439f7f
00002a3f: SWAP1
00002a40: PUSH1 0x64
00002a42: ADD
00002a43: PUSH2 0x0db5
00002a46: JUMP
00002a47: JUMPDEST
00002a48: PUSH1 0x40
00002a4a: MLOAD
00002a4b: PUSH4 0x105fbc17
00002a50: PUSH1 0xe1
00002a52: SHL
00002a53: DUP2
00002a54: MSTORE
00002a55: PUSH1 0x00
00002a57: SWAP1
00002a58: PUSH20 0x8709b88c5cbca830d63f726a6f6f8c6573486223
00002a6d: SWAP1
00002a6e: PUSH4 0x20bf782e
00002a73: SWAP1
00002a74: PUSH2 0x237a
00002a77: SWAP1
00002a78: PUSH1 0x1e
00002a7a: SWAP1
00002a7b: DUP7
00002a7c: SWAP1
00002a7d: PUSH1 0x04
00002a7f: ADD
00002a80: PUSH2 0x4f61
00002a83: JUMP
00002a84: JUMPDEST
00002a85: PUSH1 0x40
00002a87: MLOAD
00002a88: PUSH4 0x24745215
00002a8d: PUSH1 0xe2
00002a8f: SHL
00002a90: DUP2
00002a91: MSTORE
00002a92: PUSH32 0x9f359c53986b24240c7294fef1abdaf22ae1e4cff9fc850868d5141eb3a4a24f
00002ab3: SWAP1
00002ab4: PUSH1 0x01
00002ab6: PUSH1 0x01
00002ab8: PUSH1 0xa0
00002aba: SHL
00002abb: SUB
00002abc: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00002add: AND
00002ade: SWAP1
00002adf: PUSH4 0x91d14854
00002ae4: SWAP1
00002ae5: PUSH2 0x2af4
00002ae8: SWAP1
00002ae9: DUP5
00002aea: SWAP1
00002aeb: CALLER
00002aec: SWAP1
00002aed: PUSH1 0x04
00002aef: ADD
00002af0: PUSH2 0x5228
00002af3: JUMP
00002af4: JUMPDEST
00002af5: PUSH1 0x20
00002af7: PUSH1 0x40
00002af9: MLOAD
00002afa: DUP1
00002afb: DUP4
00002afc: SUB
00002afd: DUP2
00002afe: DUP7
00002aff: GAS
00002b00: STATICCALL
00002b01: ISZERO
00002b02: DUP1
00002b03: ISZERO
00002b04: PUSH2 0x2b11
00002b07: JUMPI
00002b08: RETURNDATASIZE
00002b09: PUSH1 0x00
00002b0b: DUP1
00002b0c: RETURNDATACOPY
00002b0d: RETURNDATASIZE
00002b0e: PUSH1 0x00
00002b10: REVERT
00002b11: JUMPDEST
00002b12: POP
00002b13: POP
00002b14: POP
00002b15: POP
00002b16: PUSH1 0x40
00002b18: MLOAD
00002b19: RETURNDATASIZE
00002b1a: PUSH1 0x1f
00002b1c: NOT
00002b1d: PUSH1 0x1f
00002b1f: DUP3
00002b20: ADD
00002b21: AND
00002b22: DUP3
00002b23: ADD
00002b24: DUP1
00002b25: PUSH1 0x40
00002b27: MSTORE
00002b28: POP
00002b29: DUP2
00002b2a: ADD
00002b2b: SWAP1
00002b2c: PUSH2 0x2b35
00002b2f: SWAP2
00002b30: SWAP1
00002b31: PUSH2 0x4fdb
00002b34: JUMP
00002b35: JUMPDEST
00002b36: PUSH2 0x2b52
00002b39: JUMPI
00002b3a: PUSH1 0x40
00002b3c: MLOAD
00002b3d: PUSH4 0x4ca88867
00002b42: PUSH1 0xe0
00002b44: SHL
00002b45: DUP2
00002b46: MSTORE
00002b47: PUSH1 0x04
00002b49: ADD
00002b4a: PUSH1 0x40
00002b4c: MLOAD
00002b4d: DUP1
00002b4e: SWAP2
00002b4f: SUB
00002b50: SWAP1
00002b51: REVERT
00002b52: JUMPDEST
00002b53: PUSH1 0x40
00002b55: MLOAD
00002b56: PUSH4 0xa6b8b9b9
00002b5b: PUSH1 0xe0
00002b5d: SHL
00002b5e: DUP2
00002b5f: MSTORE
00002b60: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
00002b75: SWAP1
00002b76: PUSH4 0xa6b8b9b9
00002b7b: SWAP1
00002b7c: PUSH2 0x229f
00002b7f: SWAP1
00002b80: PUSH1 0x14
00002b82: SWAP1
00002b83: DUP7
00002b84: SWAP1
00002b85: PUSH1 0x04
00002b87: ADD
00002b88: PUSH2 0x5228
00002b8b: JUMP
00002b8c: JUMPDEST
00002b8d: PUSH1 0x00
00002b8f: DUP1
00002b90: PUSH2 0x2b99
00002b93: PUSH1 0x01
00002b95: PUSH2 0x3b96
00002b98: JUMP
00002b99: JUMPDEST
00002b9a: SWAP1
00002b9b: POP
00002b9c: PUSH2 0x2ba8
00002b9f: DUP4
00002ba0: DUP3
00002ba1: PUSH2 0x27fe
00002ba4: PUSH2 0x0f45
00002ba7: JUMP
00002ba8: JUMPDEST
00002ba9: SWAP2
00002baa: POP
00002bab: PUSH2 0x2bd2
00002bae: DUP3
00002baf: PUSH1 0x40
00002bb1: MLOAD
00002bb2: DUP1
00002bb3: PUSH1 0x40
00002bb5: ADD
00002bb6: PUSH1 0x40
00002bb8: MSTORE
00002bb9: DUP1
00002bba: PUSH1 0x06
00002bbc: DUP2
00002bbd: MSTORE
00002bbe: PUSH1 0x20
00002bc0: ADD
00002bc1: PUSH6 0x617373657473
00002bc8: PUSH1 0xd0
00002bca: SHL
00002bcb: DUP2
00002bcc: MSTORE
00002bcd: POP
00002bce: PUSH2 0x40a5
00002bd1: JUMP
00002bd2: JUMPDEST
00002bd3: POP
00002bd4: SWAP2
00002bd5: SWAP1
00002bd6: POP
00002bd7: JUMP
00002bd8: JUMPDEST
00002bd9: PUSH1 0x00
00002bdb: PUSH2 0x2be2
00002bde: PUSH2 0x3d46
00002be1: JUMP
00002be2: JUMPDEST
00002be3: PUSH2 0x2bea
00002be6: PUSH2 0x3be3
00002be9: JUMP
00002bea: JUMPDEST
00002beb: PUSH1 0x02
00002bed: PUSH1 0x00
00002bef: DUP1
00002bf0: PUSH2 0x2bf8
00002bf3: DUP4
00002bf4: PUSH2 0x3f59
00002bf7: JUMP
00002bf8: JUMPDEST
00002bf9: SWAP2
00002bfa: POP
00002bfb: SWAP2
00002bfc: POP
00002bfd: PUSH2 0x2c04
00002c00: PUSH2 0x3fa1
00002c03: JUMP
00002c04: JUMPDEST
00002c05: PUSH2 0x2c2c
00002c08: DUP8
00002c09: PUSH1 0x40
00002c0b: MLOAD
00002c0c: DUP1
00002c0d: PUSH1 0x40
00002c0f: ADD
00002c10: PUSH1 0x40
00002c12: MSTORE
00002c13: DUP1
00002c14: PUSH1 0x06
00002c16: DUP2
00002c17: MSTORE
00002c18: PUSH1 0x20
00002c1a: ADD
00002c1b: PUSH6 0x617373657473
00002c22: PUSH1 0xd0
00002c24: SHL
00002c25: DUP2
00002c26: MSTORE
00002c27: POP
00002c28: PUSH2 0x40a5
00002c2b: JUMP
00002c2c: JUMPDEST
00002c2d: PUSH1 0x00
00002c2f: DUP1
00002c30: PUSH20 0xd18bac6d95119237b225db48ec29155a8cd08743
00002c45: PUSH4 0x6472d211
00002c4a: DUP11
00002c4b: PUSH2 0x2c54
00002c4e: PUSH1 0x02
00002c50: PUSH2 0x3b96
00002c53: JUMP
00002c54: JUMPDEST
00002c55: PUSH1 0x40
00002c57: MLOAD
00002c58: PUSH1 0x01
00002c5a: PUSH1 0x01
00002c5c: PUSH1 0xe0
00002c5e: SHL
00002c5f: SUB
00002c60: NOT
00002c61: PUSH1 0xe0
00002c63: DUP6
00002c64: SWAP1
00002c65: SHL
00002c66: AND
00002c67: DUP2
00002c68: MSTORE
00002c69: PUSH1 0x04
00002c6b: DUP2
00002c6c: ADD
00002c6d: SWAP3
00002c6e: SWAP1
00002c6f: SWAP3
00002c70: MSTORE
00002c71: PUSH1 0x24
00002c73: DUP3
00002c74: ADD
00002c75: MSTORE
00002c76: PUSH1 0x1e
00002c78: PUSH1 0x44
00002c7a: DUP3
00002c7b: ADD
00002c7c: MSTORE
00002c7d: PUSH1 0x0e
00002c7f: PUSH1 0x64
00002c81: DUP3
00002c82: ADD
00002c83: MSTORE
00002c84: PUSH1 0x0c
00002c86: PUSH1 0x84
00002c88: DUP3
00002c89: ADD
00002c8a: MSTORE
00002c8b: PUSH1 0xa4
00002c8d: ADD
00002c8e: PUSH1 0x60
00002c90: PUSH1 0x40
00002c92: MLOAD
00002c93: DUP1
00002c94: DUP4
00002c95: SUB
00002c96: DUP2
00002c97: DUP7
00002c98: GAS
00002c99: DELEGATECALL
00002c9a: ISZERO
00002c9b: DUP1
00002c9c: ISZERO
00002c9d: PUSH2 0x2caa
00002ca0: JUMPI
00002ca1: RETURNDATASIZE
00002ca2: PUSH1 0x00
00002ca4: DUP1
00002ca5: RETURNDATACOPY
00002ca6: RETURNDATASIZE
00002ca7: PUSH1 0x00
00002ca9: REVERT
00002caa: JUMPDEST
00002cab: POP
00002cac: POP
00002cad: POP
00002cae: POP
00002caf: PUSH1 0x40
00002cb1: MLOAD
00002cb2: RETURNDATASIZE
00002cb3: PUSH1 0x1f
00002cb5: NOT
00002cb6: PUSH1 0x1f
00002cb8: DUP3
00002cb9: ADD
00002cba: AND
00002cbb: DUP3
00002cbc: ADD
00002cbd: DUP1
00002cbe: PUSH1 0x40
00002cc0: MSTORE
00002cc1: POP
00002cc2: DUP2
00002cc3: ADD
00002cc4: SWAP1
00002cc5: PUSH2 0x2cce
00002cc8: SWAP2
00002cc9: SWAP1
00002cca: PUSH2 0x53e2
00002ccd: JUMP
00002cce: JUMPDEST
00002ccf: POP
00002cd0: SWAP2
00002cd1: POP
00002cd2: SWAP2
00002cd3: POP
00002cd4: DUP1
00002cd5: SWAP6
00002cd6: POP
00002cd7: PUSH2 0x2ce2
00002cda: DUP3
00002cdb: DUP8
00002cdc: DUP10
00002cdd: DUP12
00002cde: PUSH2 0x41c5
00002ce1: JUMP
00002ce2: JUMPDEST
00002ce3: POP
00002ce4: POP
00002ce5: PUSH2 0x2cef
00002ce8: DUP3
00002ce9: DUP3
00002cea: DUP6
00002ceb: PUSH2 0x4153
00002cee: JUMP
00002cef: JUMPDEST
00002cf0: POP
00002cf1: POP
00002cf2: POP
00002cf3: PUSH2 0x0df6
00002cf6: PUSH1 0x01
00002cf8: DUP1
00002cf9: SSTORE
00002cfa: JUMP
00002cfb: JUMPDEST
00002cfc: PUSH1 0x40
00002cfe: MLOAD
00002cff: PUSH4 0x1f931289
00002d04: PUSH1 0xe0
00002d06: SHL
00002d07: DUP2
00002d08: MSTORE
00002d09: PUSH1 0x10
00002d0b: PUSH1 0x04
00002d0d: DUP3
00002d0e: ADD
00002d0f: MSTORE
00002d10: PUSH1 0x60
00002d12: SWAP1
00002d13: PUSH20 0xf19c66cb159246e00b5336b1ce4b4e8e01e4e4b4
00002d28: SWAP1
00002d29: PUSH4 0x1f931289
00002d2e: SWAP1
00002d2f: PUSH1 0x24
00002d31: ADD
00002d32: PUSH2 0x0f00
00002d35: JUMP
00002d36: JUMPDEST
00002d37: PUSH1 0x00
00002d39: PUSH2 0x2d40
00002d3c: PUSH2 0x3d46
00002d3f: JUMP
00002d40: JUMPDEST
00002d41: PUSH2 0x2d48
00002d44: PUSH2 0x3be3
00002d47: JUMP
00002d48: JUMPDEST
00002d49: PUSH1 0x02
00002d4b: PUSH1 0x00
00002d4d: DUP1
00002d4e: PUSH2 0x2d56
00002d51: DUP4
00002d52: PUSH2 0x3f59
00002d55: JUMP
00002d56: JUMPDEST
00002d57: SWAP2
00002d58: POP
00002d59: SWAP2
00002d5a: POP
00002d5b: PUSH2 0x2d62
00002d5e: PUSH2 0x3fa1
00002d61: JUMP
00002d62: JUMPDEST
00002d63: PUSH1 0x00
00002d65: PUSH2 0x2d6e
00002d68: PUSH1 0x02
00002d6a: PUSH2 0x3b96
00002d6d: JUMP
00002d6e: JUMPDEST
00002d6f: SWAP1
00002d70: POP
00002d71: PUSH1 0x00
00002d73: PUSH2 0x2d7c
00002d76: DUP8
00002d77: DUP4
00002d78: PUSH2 0x4282
00002d7b: JUMP
00002d7c: JUMPDEST
00002d7d: SWAP1
00002d7e: POP
00002d7f: DUP1
00002d80: DUP10
00002d81: GT
00002d82: ISZERO
00002d83: PUSH2 0x2db8
00002d86: JUMPI
00002d87: PUSH1 0x40
00002d89: MLOAD
00002d8a: PUSH4 0x2e52afbb
00002d8f: PUSH1 0xe2
00002d91: SHL
00002d92: DUP2
00002d93: MSTORE
00002d94: PUSH1 0x01
00002d96: PUSH1 0x01
00002d98: PUSH1 0xa0
00002d9a: SHL
00002d9b: SUB
00002d9c: DUP9
00002d9d: AND
00002d9e: PUSH1 0x04
00002da0: DUP3
00002da1: ADD
00002da2: MSTORE
00002da3: PUSH1 0x24
00002da5: DUP2
00002da6: ADD
00002da7: DUP11
00002da8: SWAP1
00002da9: MSTORE
00002daa: PUSH1 0x44
00002dac: DUP2
00002dad: ADD
00002dae: DUP3
00002daf: SWAP1
00002db0: MSTORE
00002db1: PUSH1 0x64
00002db3: ADD
00002db4: PUSH2 0x115a
00002db7: JUMP
00002db8: JUMPDEST
00002db9: PUSH1 0x00
00002dbb: PUSH2 0x2dc7
00002dbe: DUP11
00002dbf: DUP5
00002dc0: PUSH2 0x0d5b
00002dc3: PUSH2 0x0f45
00002dc6: JUMP
00002dc7: JUMPDEST
00002dc8: SWAP1
00002dc9: POP
00002dca: PUSH2 0x2df9
00002dcd: DUP2
00002dce: PUSH1 0x40
00002dd0: MLOAD
00002dd1: DUP1
00002dd2: PUSH1 0x40
00002dd4: ADD
00002dd5: PUSH1 0x40
00002dd7: MSTORE
00002dd8: DUP1
00002dd9: PUSH1 0x0e
00002ddb: DUP2
00002ddc: MSTORE
00002ddd: PUSH1 0x20
00002ddf: ADD
00002de0: PUSH14 0x706f737369626c65417373657473
00002def: PUSH1 0x90
00002df1: SHL
00002df2: DUP2
00002df3: MSTORE
00002df4: POP
00002df5: PUSH2 0x40a5
00002df8: JUMP
00002df9: JUMPDEST
00002dfa: PUSH1 0x40
00002dfc: MLOAD
00002dfd: PUSH4 0x2ddb2615
00002e02: PUSH1 0xe2
00002e04: SHL
00002e05: DUP2
00002e06: MSTORE
00002e07: PUSH1 0x04
00002e09: DUP2
00002e0a: ADD
00002e0b: DUP3
00002e0c: SWAP1
00002e0d: MSTORE
00002e0e: PUSH1 0x24
00002e10: DUP2
00002e11: ADD
00002e12: DUP5
00002e13: SWAP1
00002e14: MSTORE
00002e15: PUSH1 0x1e
00002e17: PUSH1 0x44
00002e19: DUP3
00002e1a: ADD
00002e1b: MSTORE
00002e1c: PUSH1 0x0e
00002e1e: PUSH1 0x64
00002e20: DUP3
00002e21: ADD
00002e22: MSTORE
00002e23: PUSH1 0x0c
00002e25: PUSH1 0x84
00002e27: DUP3
00002e28: ADD
00002e29: MSTORE
00002e2a: PUSH1 0x00
00002e2c: SWAP1
00002e2d: DUP2
00002e2e: SWAP1
00002e2f: PUSH20 0xd18bac6d95119237b225db48ec29155a8cd08743
00002e44: SWAP1
00002e45: PUSH4 0xb76c9854
00002e4a: SWAP1
00002e4b: PUSH1 0xa4
00002e4d: ADD
00002e4e: PUSH1 0x60
00002e50: PUSH1 0x40
00002e52: MLOAD
00002e53: DUP1
00002e54: DUP4
00002e55: SUB
00002e56: DUP2
00002e57: DUP7
00002e58: GAS
00002e59: DELEGATECALL
00002e5a: ISZERO
00002e5b: DUP1
00002e5c: ISZERO
00002e5d: PUSH2 0x2e6a
00002e60: JUMPI
00002e61: RETURNDATASIZE
00002e62: PUSH1 0x00
00002e64: DUP1
00002e65: RETURNDATACOPY
00002e66: RETURNDATASIZE
00002e67: PUSH1 0x00
00002e69: REVERT
00002e6a: JUMPDEST
00002e6b: POP
00002e6c: POP
00002e6d: POP
00002e6e: POP
00002e6f: PUSH1 0x40
00002e71: MLOAD
00002e72: RETURNDATASIZE
00002e73: PUSH1 0x1f
00002e75: NOT
00002e76: PUSH1 0x1f
00002e78: DUP3
00002e79: ADD
00002e7a: AND
00002e7b: DUP3
00002e7c: ADD
00002e7d: DUP1
00002e7e: PUSH1 0x40
00002e80: MSTORE
00002e81: POP
00002e82: DUP2
00002e83: ADD
00002e84: SWAP1
00002e85: PUSH2 0x2e8e
00002e88: SWAP2
00002e89: SWAP1
00002e8a: PUSH2 0x53e2
00002e8d: JUMP
00002e8e: JUMPDEST
00002e8f: POP
00002e90: SWAP2
00002e91: POP
00002e92: SWAP2
00002e93: POP
00002e94: DUP2
00002e95: SWAP9
00002e96: POP
00002e97: DUP12
00002e98: DUP2
00002e99: GT
00002e9a: ISZERO
00002e9b: PUSH2 0x2ea6
00002e9e: JUMPI
00002e9f: PUSH2 0x2ea6
00002ea2: PUSH2 0x5410
00002ea5: JUMP
00002ea6: JUMPDEST
00002ea7: PUSH2 0x2eb2
00002eaa: DUP10
00002eab: DUP14
00002eac: DUP13
00002ead: DUP15
00002eae: PUSH2 0x41c5
00002eb1: JUMP
00002eb2: JUMPDEST
00002eb3: POP
00002eb4: POP
00002eb5: POP
00002eb6: POP
00002eb7: POP
00002eb8: PUSH2 0x2cef
00002ebb: DUP3
00002ebc: DUP3
00002ebd: DUP6
00002ebe: PUSH2 0x4153
00002ec1: JUMP
00002ec2: JUMPDEST
00002ec3: PUSH1 0x00
00002ec5: PUSH2 0x0d62
00002ec8: PUSH1 0x08
00002eca: DUP4
00002ecb: PUSH2 0x3c9d
00002ece: JUMP
00002ecf: JUMPDEST
00002ed0: PUSH1 0x40
00002ed2: MLOAD
00002ed3: PUSH4 0x24745215
00002ed8: PUSH1 0xe2
00002eda: SHL
00002edb: DUP2
00002edc: MSTORE
00002edd: PUSH32 0x712b73613835f525c3c675d2245c737ba70afbd0b97264479c97d623f2141594
00002efe: SWAP1
00002eff: PUSH1 0x01
00002f01: PUSH1 0x01
00002f03: PUSH1 0xa0
00002f05: SHL
00002f06: SUB
00002f07: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00002f28: AND
00002f29: SWAP1
00002f2a: PUSH4 0x91d14854
00002f2f: SWAP1
00002f30: PUSH2 0x2f3f
00002f33: SWAP1
00002f34: DUP5
00002f35: SWAP1
00002f36: CALLER
00002f37: SWAP1
00002f38: PUSH1 0x04
00002f3a: ADD
00002f3b: PUSH2 0x5228
00002f3e: JUMP
00002f3f: JUMPDEST
00002f40: PUSH1 0x20
00002f42: PUSH1 0x40
00002f44: MLOAD
00002f45: DUP1
00002f46: DUP4
00002f47: SUB
00002f48: DUP2
00002f49: DUP7
00002f4a: GAS
00002f4b: STATICCALL
00002f4c: ISZERO
00002f4d: DUP1
00002f4e: ISZERO
00002f4f: PUSH2 0x2f5c
00002f52: JUMPI
00002f53: RETURNDATASIZE
00002f54: PUSH1 0x00
00002f56: DUP1
00002f57: RETURNDATACOPY
00002f58: RETURNDATASIZE
00002f59: PUSH1 0x00
00002f5b: REVERT
00002f5c: JUMPDEST
00002f5d: POP
00002f5e: POP
00002f5f: POP
00002f60: POP
00002f61: PUSH1 0x40
00002f63: MLOAD
00002f64: RETURNDATASIZE
00002f65: PUSH1 0x1f
00002f67: NOT
00002f68: PUSH1 0x1f
00002f6a: DUP3
00002f6b: ADD
00002f6c: AND
00002f6d: DUP3
00002f6e: ADD
00002f6f: DUP1
00002f70: PUSH1 0x40
00002f72: MSTORE
00002f73: POP
00002f74: DUP2
00002f75: ADD
00002f76: SWAP1
00002f77: PUSH2 0x2f80
00002f7a: SWAP2
00002f7b: SWAP1
00002f7c: PUSH2 0x4fdb
00002f7f: JUMP
00002f80: JUMPDEST
00002f81: PUSH2 0x2f9d
00002f84: JUMPI
00002f85: PUSH1 0x40
00002f87: MLOAD
00002f88: PUSH4 0x4ca88867
00002f8d: PUSH1 0xe0
00002f8f: SHL
00002f90: DUP2
00002f91: MSTORE
00002f92: PUSH1 0x04
00002f94: ADD
00002f95: PUSH1 0x40
00002f97: MLOAD
00002f98: DUP1
00002f99: SWAP2
00002f9a: SUB
00002f9b: SWAP1
00002f9c: REVERT
00002f9d: JUMPDEST
00002f9e: PUSH1 0x40
00002fa0: MLOAD
00002fa1: PUSH4 0x17df127d
00002fa6: PUSH1 0xe3
00002fa8: SHL
00002fa9: DUP2
00002faa: MSTORE
00002fab: PUSH20 0x8709b88c5cbca830d63f726a6f6f8c6573486223
00002fc0: SWAP1
00002fc1: PUSH4 0xbef893e8
00002fc6: SWAP1
00002fc7: PUSH2 0x2fde
00002fca: SWAP1
00002fcb: DUP11
00002fcc: SWAP1
00002fcd: DUP11
00002fce: SWAP1
00002fcf: DUP11
00002fd0: SWAP1
00002fd1: DUP11
00002fd2: SWAP1
00002fd3: DUP11
00002fd4: SWAP1
00002fd5: DUP11
00002fd6: SWAP1
00002fd7: PUSH1 0x04
00002fd9: ADD
00002fda: PUSH2 0x5426
00002fdd: JUMP
00002fde: JUMPDEST
00002fdf: PUSH1 0x00
00002fe1: PUSH1 0x40
00002fe3: MLOAD
00002fe4: DUP1
00002fe5: DUP4
00002fe6: SUB
00002fe7: DUP2
00002fe8: DUP7
00002fe9: DUP1
00002fea: EXTCODESIZE
00002feb: ISZERO
00002fec: DUP1
00002fed: ISZERO
00002fee: PUSH2 0x2ff6
00002ff1: JUMPI
00002ff2: PUSH1 0x00
00002ff4: DUP1
00002ff5: REVERT
00002ff6: JUMPDEST
00002ff7: POP
00002ff8: GAS
00002ff9: DELEGATECALL
00002ffa: ISZERO
00002ffb: DUP1
00002ffc: ISZERO
00002ffd: PUSH2 0x300a
00003000: JUMPI
00003001: RETURNDATASIZE
00003002: PUSH1 0x00
00003004: DUP1
00003005: RETURNDATACOPY
00003006: RETURNDATASIZE
00003007: PUSH1 0x00
00003009: REVERT
0000300a: JUMPDEST
0000300b: POP
0000300c: POP
0000300d: POP
0000300e: POP
0000300f: POP
00003010: POP
00003011: POP
00003012: POP
00003013: POP
00003014: POP
00003015: POP
00003016: JUMP
00003017: JUMPDEST
00003018: PUSH1 0x00
0000301a: PUSH20 0x8709b88c5cbca830d63f726a6f6f8c6573486223
0000302f: PUSH4 0x0c46897a
00003034: PUSH1 0x02
00003036: PUSH1 0x12
00003038: PUSH1 0x10
0000303a: PUSH1 0x0c
0000303c: DUP8
0000303d: PUSH2 0x3044
00003040: PUSH2 0x1ea5
00003043: JUMP
00003044: JUMPDEST
00003045: PUSH1 0x0d
00003047: SLOAD
00003048: PUSH1 0x40
0000304a: MLOAD
0000304b: PUSH1 0xe0
0000304d: DUP10
0000304e: SWAP1
0000304f: SHL
00003050: PUSH1 0x01
00003052: PUSH1 0x01
00003054: PUSH1 0xe0
00003056: SHL
00003057: SUB
00003058: NOT
00003059: AND
0000305a: DUP2
0000305b: MSTORE
0000305c: PUSH1 0x04
0000305e: DUP2
0000305f: ADD
00003060: SWAP8
00003061: SWAP1
00003062: SWAP8
00003063: MSTORE
00003064: PUSH1 0x24
00003066: DUP8
00003067: ADD
00003068: SWAP6
00003069: SWAP1
0000306a: SWAP6
0000306b: MSTORE
0000306c: PUSH1 0x44
0000306e: DUP7
0000306f: ADD
00003070: SWAP4
00003071: SWAP1
00003072: SWAP4
00003073: MSTORE
00003074: PUSH1 0x64
00003076: DUP6
00003077: ADD
00003078: SWAP2
00003079: SWAP1
0000307a: SWAP2
0000307b: MSTORE
0000307c: PUSH1 0x01
0000307e: PUSH1 0x01
00003080: PUSH1 0xa0
00003082: SHL
00003083: SUB
00003084: AND
00003085: PUSH1 0x84
00003087: DUP5
00003088: ADD
00003089: MSTORE
0000308a: ISZERO
0000308b: ISZERO
0000308c: PUSH1 0xa4
0000308e: DUP4
0000308f: ADD
00003090: MSTORE
00003091: PUSH1 0xff
00003093: AND
00003094: ISZERO
00003095: ISZERO
00003096: PUSH1 0xc4
00003098: DUP3
00003099: ADD
0000309a: MSTORE
0000309b: PUSH1 0xe4
0000309d: ADD
0000309e: PUSH2 0x237a
000030a1: JUMP
000030a2: JUMPDEST
000030a3: PUSH1 0x00
000030a5: PUSH2 0x0d62
000030a8: DUP3
000030a9: PUSH2 0x30b2
000030ac: PUSH1 0x00
000030ae: PUSH2 0x2a47
000030b1: JUMP
000030b2: JUMPDEST
000030b3: PUSH2 0x2140
000030b6: PUSH2 0x0f45
000030b9: JUMP
000030ba: JUMPDEST
000030bb: PUSH1 0x40
000030bd: MLOAD
000030be: PUSH4 0x24745215
000030c3: PUSH1 0xe2
000030c5: SHL
000030c6: DUP2
000030c7: MSTORE
000030c8: PUSH32 0x9f359c53986b24240c7294fef1abdaf22ae1e4cff9fc850868d5141eb3a4a24f
000030e9: SWAP1
000030ea: PUSH1 0x01
000030ec: PUSH1 0x01
000030ee: PUSH1 0xa0
000030f0: SHL
000030f1: SUB
000030f2: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00003113: AND
00003114: SWAP1
00003115: PUSH4 0x91d14854
0000311a: SWAP1
0000311b: PUSH2 0x312a
0000311e: SWAP1
0000311f: DUP5
00003120: SWAP1
00003121: CALLER
00003122: SWAP1
00003123: PUSH1 0x04
00003125: ADD
00003126: PUSH2 0x5228
00003129: JUMP
0000312a: JUMPDEST
0000312b: PUSH1 0x20
0000312d: PUSH1 0x40
0000312f: MLOAD
00003130: DUP1
00003131: DUP4
00003132: SUB
00003133: DUP2
00003134: DUP7
00003135: GAS
00003136: STATICCALL
00003137: ISZERO
00003138: DUP1
00003139: ISZERO
0000313a: PUSH2 0x3147
0000313d: JUMPI
0000313e: RETURNDATASIZE
0000313f: PUSH1 0x00
00003141: DUP1
00003142: RETURNDATACOPY
00003143: RETURNDATASIZE
00003144: PUSH1 0x00
00003146: REVERT
00003147: JUMPDEST
00003148: POP
00003149: POP
0000314a: POP
0000314b: POP
0000314c: PUSH1 0x40
0000314e: MLOAD
0000314f: RETURNDATASIZE
00003150: PUSH1 0x1f
00003152: NOT
00003153: PUSH1 0x1f
00003155: DUP3
00003156: ADD
00003157: AND
00003158: DUP3
00003159: ADD
0000315a: DUP1
0000315b: PUSH1 0x40
0000315d: MSTORE
0000315e: POP
0000315f: DUP2
00003160: ADD
00003161: SWAP1
00003162: PUSH2 0x316b
00003165: SWAP2
00003166: SWAP1
00003167: PUSH2 0x4fdb
0000316a: JUMP
0000316b: JUMPDEST
0000316c: PUSH2 0x3188
0000316f: JUMPI
00003170: PUSH1 0x40
00003172: MLOAD
00003173: PUSH4 0x4ca88867
00003178: PUSH1 0xe0
0000317a: SHL
0000317b: DUP2
0000317c: MSTORE
0000317d: PUSH1 0x04
0000317f: ADD
00003180: PUSH1 0x40
00003182: MLOAD
00003183: DUP1
00003184: SWAP2
00003185: SUB
00003186: SWAP1
00003187: REVERT
00003188: JUMPDEST
00003189: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
0000319e: PUSH4 0xc397d6b5
000031a3: PUSH1 0x14
000031a5: DUP5
000031a6: PUSH2 0x31ad
000031a9: PUSH2 0x19da
000031ac: JUMP
000031ad: JUMPDEST
000031ae: PUSH1 0x10
000031b0: SLOAD
000031b1: PUSH1 0x40
000031b3: MLOAD
000031b4: PUSH1 0xe0
000031b6: DUP7
000031b7: SWAP1
000031b8: SHL
000031b9: PUSH1 0x01
000031bb: PUSH1 0x01
000031bd: PUSH1 0xe0
000031bf: SHL
000031c0: SUB
000031c1: NOT
000031c2: AND
000031c3: DUP2
000031c4: MSTORE
000031c5: PUSH1 0x04
000031c7: DUP2
000031c8: ADD
000031c9: SWAP5
000031ca: SWAP1
000031cb: SWAP5
000031cc: MSTORE
000031cd: PUSH1 0x24
000031cf: DUP5
000031d0: ADD
000031d1: SWAP3
000031d2: SWAP1
000031d3: SWAP3
000031d4: MSTORE
000031d5: PUSH1 0x44
000031d7: DUP4
000031d8: ADD
000031d9: MSTORE
000031da: PUSH1 0x64
000031dc: DUP3
000031dd: ADD
000031de: MSTORE
000031df: PUSH1 0x84
000031e1: ADD
000031e2: PUSH2 0x229f
000031e5: JUMP
000031e6: JUMPDEST
000031e7: PUSH1 0x00
000031e9: DUP1
000031ea: PUSH2 0x31f2
000031ed: DUP4
000031ee: PUSH2 0x232d
000031f1: JUMP
000031f2: JUMPDEST
000031f3: SWAP1
000031f4: POP
000031f5: PUSH1 0x00
000031f7: PUSH2 0x3200
000031fa: PUSH1 0x02
000031fc: PUSH2 0x3b96
000031ff: JUMP
00003200: JUMPDEST
00003201: SWAP1
00003202: POP
00003203: PUSH2 0x320a
00003206: PUSH2 0x1ea5
00003209: JUMP
0000320a: JUMPDEST
0000320b: DUP1
0000320c: PUSH2 0x3213
0000320f: JUMPI
00003210: POP
00003211: DUP2
00003212: ISZERO
00003213: JUMPDEST
00003214: DUP1
00003215: PUSH2 0x321c
00003218: JUMPI
00003219: POP
0000321a: DUP1
0000321b: ISZERO
0000321c: JUMPDEST
0000321d: ISZERO
0000321e: PUSH2 0x322b
00003221: JUMPI
00003222: POP
00003223: PUSH1 0x00
00003225: SWAP4
00003226: SWAP3
00003227: POP
00003228: POP
00003229: POP
0000322a: JUMP
0000322b: JUMPDEST
0000322c: PUSH1 0x00
0000322e: PUSH2 0x323a
00003231: DUP4
00003232: DUP4
00003233: PUSH2 0x0d5b
00003236: PUSH2 0x0f45
00003239: JUMP
0000323a: JUMPDEST
0000323b: SWAP1
0000323c: POP
0000323d: PUSH20 0xd18bac6d95119237b225db48ec29155a8cd08743
00003252: PUSH4 0x443c0bff
00003257: PUSH1 0x01
00003259: DUP4
0000325a: DUP6
0000325b: ADDRESS
0000325c: PUSH1 0x01
0000325e: PUSH1 0x01
00003260: PUSH1 0xa0
00003262: SHL
00003263: SUB
00003264: AND
00003265: PUSH4 0x0a28a477
0000326a: DUP8
0000326b: PUSH1 0x40
0000326d: MLOAD
0000326e: PUSH1 0x24
00003270: ADD
00003271: PUSH2 0x327c
00003274: SWAP2
00003275: DUP2
00003276: MSTORE
00003277: PUSH1 0x20
00003279: ADD
0000327a: SWAP1
0000327b: JUMP
0000327c: JUMPDEST
0000327d: PUSH1 0x40
0000327f: DUP1
00003280: MLOAD
00003281: DUP1
00003282: DUP4
00003283: SUB
00003284: PUSH1 0x1f
00003286: NOT
00003287: ADD
00003288: DUP2
00003289: MSTORE
0000328a: SWAP2
0000328b: DUP2
0000328c: MSTORE
0000328d: PUSH1 0x20
0000328f: DUP3
00003290: ADD
00003291: DUP1
00003292: MLOAD
00003293: PUSH1 0xe0
00003295: SWAP5
00003296: DUP6
00003297: SHL
00003298: PUSH1 0x01
0000329a: PUSH1 0x01
0000329c: PUSH1 0xe0
0000329e: SHL
0000329f: SUB
000032a0: SWAP1
000032a1: SWAP2
000032a2: AND
000032a3: OR
000032a4: SWAP1
000032a5: MSTORE
000032a6: MLOAD
000032a7: SWAP2
000032a8: DUP8
000032a9: SWAP1
000032aa: SHL
000032ab: PUSH1 0x01
000032ad: PUSH1 0x01
000032af: PUSH1 0xe0
000032b1: SHL
000032b2: SUB
000032b3: NOT
000032b4: AND
000032b5: DUP3
000032b6: MSTORE
000032b7: PUSH2 0x32d0
000032ba: SWAP6
000032bb: SWAP5
000032bc: SWAP4
000032bd: SWAP3
000032be: POP
000032bf: SWAP1
000032c0: PUSH1 0x1e
000032c2: SWAP1
000032c3: PUSH1 0x0e
000032c5: SWAP1
000032c6: PUSH1 0x0c
000032c8: SWAP1
000032c9: PUSH1 0x04
000032cb: ADD
000032cc: PUSH2 0x4ff8
000032cf: JUMP
000032d0: JUMPDEST
000032d1: PUSH1 0x40
000032d3: DUP1
000032d4: MLOAD
000032d5: DUP1
000032d6: DUP4
000032d7: SUB
000032d8: DUP2
000032d9: DUP7
000032da: GAS
000032db: DELEGATECALL
000032dc: ISZERO
000032dd: DUP1
000032de: ISZERO
000032df: PUSH2 0x32ec
000032e2: JUMPI
000032e3: RETURNDATASIZE
000032e4: PUSH1 0x00
000032e6: DUP1
000032e7: RETURNDATACOPY
000032e8: RETURNDATASIZE
000032e9: PUSH1 0x00
000032eb: REVERT
000032ec: JUMPDEST
000032ed: POP
000032ee: POP
000032ef: POP
000032f0: POP
000032f1: PUSH1 0x40
000032f3: MLOAD
000032f4: RETURNDATASIZE
000032f5: PUSH1 0x1f
000032f7: NOT
000032f8: PUSH1 0x1f
000032fa: DUP3
000032fb: ADD
000032fc: AND
000032fd: DUP3
000032fe: ADD
000032ff: DUP1
00003300: PUSH1 0x40
00003302: MSTORE
00003303: POP
00003304: DUP2
00003305: ADD
00003306: SWAP1
00003307: PUSH2 0x3310
0000330a: SWAP2
0000330b: SWAP1
0000330c: PUSH2 0x503e
0000330f: JUMP
00003310: JUMPDEST
00003311: POP
00003312: SWAP6
00003313: SWAP5
00003314: POP
00003315: POP
00003316: POP
00003317: POP
00003318: POP
00003319: JUMP
0000331a: JUMPDEST
0000331b: PUSH1 0x40
0000331d: MLOAD
0000331e: PUSH4 0x3a35807d
00003323: PUSH1 0xe2
00003325: SHL
00003326: DUP2
00003327: MSTORE
00003328: PUSH1 0x02
0000332a: PUSH1 0x04
0000332c: DUP3
0000332d: ADD
0000332e: MSTORE
0000332f: PUSH1 0x01
00003331: PUSH1 0x01
00003333: PUSH1 0xa0
00003335: SHL
00003336: SUB
00003337: DUP1
00003338: DUP10
00003339: AND
0000333a: PUSH1 0x24
0000333c: DUP4
0000333d: ADD
0000333e: MSTORE
0000333f: DUP8
00003340: AND
00003341: PUSH1 0x44
00003343: DUP3
00003344: ADD
00003345: MSTORE
00003346: PUSH1 0x64
00003348: DUP2
00003349: ADD
0000334a: DUP7
0000334b: SWAP1
0000334c: MSTORE
0000334d: PUSH1 0x84
0000334f: DUP2
00003350: ADD
00003351: DUP6
00003352: SWAP1
00003353: MSTORE
00003354: PUSH1 0xff
00003356: DUP5
00003357: AND
00003358: PUSH1 0xa4
0000335a: DUP3
0000335b: ADD
0000335c: MSTORE
0000335d: PUSH1 0xc4
0000335f: DUP2
00003360: ADD
00003361: DUP4
00003362: SWAP1
00003363: MSTORE
00003364: PUSH1 0xe4
00003366: DUP2
00003367: ADD
00003368: DUP3
00003369: SWAP1
0000336a: MSTORE
0000336b: PUSH20 0x42699e483c5baa8e9aad5f7d804127c034a0328f
00003380: SWAP1
00003381: PUSH4 0xe8d601f4
00003386: SWAP1
00003387: PUSH2 0x0104
0000338a: ADD
0000338b: PUSH2 0x2fde
0000338e: JUMP
0000338f: JUMPDEST
00003390: PUSH1 0x00
00003392: PUSH2 0x0d62
00003395: DUP3
00003396: PUSH2 0x339f
00003399: PUSH1 0x02
0000339b: PUSH2 0x3b96
0000339e: JUMP
0000339f: JUMPDEST
000033a0: PUSH2 0x4282
000033a3: JUMP
000033a4: JUMPDEST
000033a5: PUSH1 0x40
000033a7: MLOAD
000033a8: PUSH4 0x25ae9ed1
000033ad: PUSH1 0xe0
000033af: SHL
000033b0: DUP2
000033b1: MSTORE
000033b2: PUSH1 0x12
000033b4: PUSH1 0x04
000033b6: DUP3
000033b7: ADD
000033b8: MSTORE
000033b9: PUSH1 0x02
000033bb: PUSH1 0x24
000033bd: DUP3
000033be: ADD
000033bf: MSTORE
000033c0: PUSH1 0x00
000033c2: SWAP1
000033c3: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
000033d8: SWAP1
000033d9: PUSH4 0x25ae9ed1
000033de: SWAP1
000033df: PUSH1 0x44
000033e1: ADD
000033e2: PUSH2 0x0c6b
000033e5: JUMP
000033e6: JUMPDEST
000033e7: PUSH1 0x40
000033e9: MLOAD
000033ea: PUSH4 0x24745215
000033ef: PUSH1 0xe2
000033f1: SHL
000033f2: DUP2
000033f3: MSTORE
000033f4: PUSH32 0x29f066ba98b1de62c9c969c781ec5d316c4e96752461c65aa1a1f8b71b818955
00003415: SWAP1
00003416: PUSH1 0x01
00003418: PUSH1 0x01
0000341a: PUSH1 0xa0
0000341c: SHL
0000341d: SUB
0000341e: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
0000343f: AND
00003440: SWAP1
00003441: PUSH4 0x91d14854
00003446: SWAP1
00003447: PUSH2 0x3456
0000344a: SWAP1
0000344b: DUP5
0000344c: SWAP1
0000344d: CALLER
0000344e: SWAP1
0000344f: PUSH1 0x04
00003451: ADD
00003452: PUSH2 0x5228
00003455: JUMP
00003456: JUMPDEST
00003457: PUSH1 0x20
00003459: PUSH1 0x40
0000345b: MLOAD
0000345c: DUP1
0000345d: DUP4
0000345e: SUB
0000345f: DUP2
00003460: DUP7
00003461: GAS
00003462: STATICCALL
00003463: ISZERO
00003464: DUP1
00003465: ISZERO
00003466: PUSH2 0x3473
00003469: JUMPI
0000346a: RETURNDATASIZE
0000346b: PUSH1 0x00
0000346d: DUP1
0000346e: RETURNDATACOPY
0000346f: RETURNDATASIZE
00003470: PUSH1 0x00
00003472: REVERT
00003473: JUMPDEST
00003474: POP
00003475: POP
00003476: POP
00003477: POP
00003478: PUSH1 0x40
0000347a: MLOAD
0000347b: RETURNDATASIZE
0000347c: PUSH1 0x1f
0000347e: NOT
0000347f: PUSH1 0x1f
00003481: DUP3
00003482: ADD
00003483: AND
00003484: DUP3
00003485: ADD
00003486: DUP1
00003487: PUSH1 0x40
00003489: MSTORE
0000348a: POP
0000348b: DUP2
0000348c: ADD
0000348d: SWAP1
0000348e: PUSH2 0x3497
00003491: SWAP2
00003492: SWAP1
00003493: PUSH2 0x4fdb
00003496: JUMP
00003497: JUMPDEST
00003498: PUSH2 0x34b4
0000349b: JUMPI
0000349c: PUSH1 0x40
0000349e: MLOAD
0000349f: PUSH4 0x4ca88867
000034a4: PUSH1 0xe0
000034a6: SHL
000034a7: DUP2
000034a8: MSTORE
000034a9: PUSH1 0x04
000034ab: ADD
000034ac: PUSH1 0x40
000034ae: MLOAD
000034af: DUP1
000034b0: SWAP2
000034b1: SUB
000034b2: SWAP1
000034b3: REVERT
000034b4: JUMPDEST
000034b5: PUSH1 0x40
000034b7: MLOAD
000034b8: PUSH4 0x25f37153
000034bd: PUSH1 0xe0
000034bf: SHL
000034c0: DUP2
000034c1: MSTORE
000034c2: PUSH1 0x12
000034c4: PUSH1 0x04
000034c6: DUP3
000034c7: ADD
000034c8: MSTORE
000034c9: PUSH1 0x02
000034cb: PUSH1 0x24
000034cd: DUP3
000034ce: ADD
000034cf: MSTORE
000034d0: PUSH6 0xffffffffffff
000034d7: DUP4
000034d8: AND
000034d9: PUSH1 0x44
000034db: DUP3
000034dc: ADD
000034dd: MSTORE
000034de: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
000034f3: SWAP1
000034f4: PUSH4 0x25f37153
000034f9: SWAP1
000034fa: PUSH1 0x64
000034fc: ADD
000034fd: PUSH2 0x229f
00003500: JUMP
00003501: JUMPDEST
00003502: PUSH1 0x40
00003504: MLOAD
00003505: PUSH4 0x24745215
0000350a: PUSH1 0xe2
0000350c: SHL
0000350d: DUP2
0000350e: MSTORE
0000350f: PUSH32 0x0cf879d4130d1406f9ac47c9bad2570cc4a127a954af798da98488d730523ec4
00003530: SWAP1
00003531: PUSH1 0x01
00003533: PUSH1 0x01
00003535: PUSH1 0xa0
00003537: SHL
00003538: SUB
00003539: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
0000355a: AND
0000355b: SWAP1
0000355c: PUSH4 0x91d14854
00003561: SWAP1
00003562: PUSH2 0x3571
00003565: SWAP1
00003566: DUP5
00003567: SWAP1
00003568: CALLER
00003569: SWAP1
0000356a: PUSH1 0x04
0000356c: ADD
0000356d: PUSH2 0x5228
00003570: JUMP
00003571: JUMPDEST
00003572: PUSH1 0x20
00003574: PUSH1 0x40
00003576: MLOAD
00003577: DUP1
00003578: DUP4
00003579: SUB
0000357a: DUP2
0000357b: DUP7
0000357c: GAS
0000357d: STATICCALL
0000357e: ISZERO
0000357f: DUP1
00003580: ISZERO
00003581: PUSH2 0x358e
00003584: JUMPI
00003585: RETURNDATASIZE
00003586: PUSH1 0x00
00003588: DUP1
00003589: RETURNDATACOPY
0000358a: RETURNDATASIZE
0000358b: PUSH1 0x00
0000358d: REVERT
0000358e: JUMPDEST
0000358f: POP
00003590: POP
00003591: POP
00003592: POP
00003593: PUSH1 0x40
00003595: MLOAD
00003596: RETURNDATASIZE
00003597: PUSH1 0x1f
00003599: NOT
0000359a: PUSH1 0x1f
0000359c: DUP3
0000359d: ADD
0000359e: AND
0000359f: DUP3
000035a0: ADD
000035a1: DUP1
000035a2: PUSH1 0x40
000035a4: MSTORE
000035a5: POP
000035a6: DUP2
000035a7: ADD
000035a8: SWAP1
000035a9: PUSH2 0x35b2
000035ac: SWAP2
000035ad: SWAP1
000035ae: PUSH2 0x4fdb
000035b1: JUMP
000035b2: JUMPDEST
000035b3: PUSH2 0x35cf
000035b6: JUMPI
000035b7: PUSH1 0x40
000035b9: MLOAD
000035ba: PUSH4 0x4ca88867
000035bf: PUSH1 0xe0
000035c1: SHL
000035c2: DUP2
000035c3: MSTORE
000035c4: PUSH1 0x04
000035c6: ADD
000035c7: PUSH1 0x40
000035c9: MLOAD
000035ca: DUP1
000035cb: SWAP2
000035cc: SUB
000035cd: SWAP1
000035ce: REVERT
000035cf: JUMPDEST
000035d0: PUSH1 0x40
000035d2: MLOAD
000035d3: PUSH4 0x6df2d995
000035d8: PUSH1 0xe1
000035da: SHL
000035db: DUP2
000035dc: MSTORE
000035dd: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
000035f2: SWAP1
000035f3: PUSH4 0xdbe5b32a
000035f8: SWAP1
000035f9: PUSH2 0x229f
000035fc: SWAP1
000035fd: PUSH1 0x14
000035ff: SWAP1
00003600: DUP7
00003601: SWAP1
00003602: PUSH1 0x04
00003604: ADD
00003605: PUSH2 0x5228
00003608: JUMP
00003609: JUMPDEST
0000360a: PUSH2 0x3611
0000360d: PUSH2 0x3d46
00003610: JUMP
00003611: JUMPDEST
00003612: PUSH2 0x3619
00003615: PUSH2 0x3be3
00003618: JUMP
00003619: JUMPDEST
0000361a: PUSH1 0x40
0000361c: MLOAD
0000361d: PUSH4 0x24745215
00003622: PUSH1 0xe2
00003624: SHL
00003625: DUP2
00003626: MSTORE
00003627: PUSH32 0x0ca87275d169c8ebebebf4aab9c6c710c7681b39422556e90b16a44c68ee4e46
00003648: SWAP1
00003649: PUSH1 0x01
0000364b: PUSH1 0x01
0000364d: PUSH1 0xa0
0000364f: SHL
00003650: SUB
00003651: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00003672: AND
00003673: SWAP1
00003674: PUSH4 0x91d14854
00003679: SWAP1
0000367a: PUSH2 0x3689
0000367d: SWAP1
0000367e: DUP5
0000367f: SWAP1
00003680: CALLER
00003681: SWAP1
00003682: PUSH1 0x04
00003684: ADD
00003685: PUSH2 0x5228
00003688: JUMP
00003689: JUMPDEST
0000368a: PUSH1 0x20
0000368c: PUSH1 0x40
0000368e: MLOAD
0000368f: DUP1
00003690: DUP4
00003691: SUB
00003692: DUP2
00003693: DUP7
00003694: GAS
00003695: STATICCALL
00003696: ISZERO
00003697: DUP1
00003698: ISZERO
00003699: PUSH2 0x36a6
0000369c: JUMPI
0000369d: RETURNDATASIZE
0000369e: PUSH1 0x00
000036a0: DUP1
000036a1: RETURNDATACOPY
000036a2: RETURNDATASIZE
000036a3: PUSH1 0x00
000036a5: REVERT
000036a6: JUMPDEST
000036a7: POP
000036a8: POP
000036a9: POP
000036aa: POP
000036ab: PUSH1 0x40
000036ad: MLOAD
000036ae: RETURNDATASIZE
000036af: PUSH1 0x1f
000036b1: NOT
000036b2: PUSH1 0x1f
000036b4: DUP3
000036b5: ADD
000036b6: AND
000036b7: DUP3
000036b8: ADD
000036b9: DUP1
000036ba: PUSH1 0x40
000036bc: MSTORE
000036bd: POP
000036be: DUP2
000036bf: ADD
000036c0: SWAP1
000036c1: PUSH2 0x36ca
000036c4: SWAP2
000036c5: SWAP1
000036c6: PUSH2 0x4fdb
000036c9: JUMP
000036ca: JUMPDEST
000036cb: PUSH2 0x36e7
000036ce: JUMPI
000036cf: PUSH1 0x40
000036d1: MLOAD
000036d2: PUSH4 0x4ca88867
000036d7: PUSH1 0xe0
000036d9: SHL
000036da: DUP2
000036db: MSTORE
000036dc: PUSH1 0x04
000036de: ADD
000036df: PUSH1 0x40
000036e1: MLOAD
000036e2: DUP1
000036e3: SWAP2
000036e4: SUB
000036e5: SWAP1
000036e6: REVERT
000036e7: JUMPDEST
000036e8: PUSH32 0x0000000000000000000000002218f90a98b0c070676f249ef44834686daa4285
00003709: PUSH1 0x01
0000370b: PUSH1 0x01
0000370d: PUSH1 0xa0
0000370f: SHL
00003710: SUB
00003711: AND
00003712: PUSH4 0xc3d0cbfb
00003717: PUSH1 0x40
00003719: MLOAD
0000371a: DUP2
0000371b: PUSH4 0xffffffff
00003720: AND
00003721: PUSH1 0xe0
00003723: SHL
00003724: DUP2
00003725: MSTORE
00003726: PUSH1 0x04
00003728: ADD
00003729: PUSH1 0x20
0000372b: PUSH1 0x40
0000372d: MLOAD
0000372e: DUP1
0000372f: DUP4
00003730: SUB
00003731: DUP2
00003732: DUP7
00003733: GAS
00003734: STATICCALL
00003735: ISZERO
00003736: DUP1
00003737: ISZERO
00003738: PUSH2 0x3745
0000373b: JUMPI
0000373c: RETURNDATASIZE
0000373d: PUSH1 0x00
0000373f: DUP1
00003740: RETURNDATACOPY
00003741: RETURNDATASIZE
00003742: PUSH1 0x00
00003744: REVERT
00003745: JUMPDEST
00003746: POP
00003747: POP
00003748: POP
00003749: POP
0000374a: PUSH1 0x40
0000374c: MLOAD
0000374d: RETURNDATASIZE
0000374e: PUSH1 0x1f
00003750: NOT
00003751: PUSH1 0x1f
00003753: DUP3
00003754: ADD
00003755: AND
00003756: DUP3
00003757: ADD
00003758: DUP1
00003759: PUSH1 0x40
0000375b: MSTORE
0000375c: POP
0000375d: DUP2
0000375e: ADD
0000375f: SWAP1
00003760: PUSH2 0x3769
00003763: SWAP2
00003764: SWAP1
00003765: PUSH2 0x523f
00003768: JUMP
00003769: JUMPDEST
0000376a: PUSH1 0x01
0000376c: PUSH1 0x01
0000376e: PUSH1 0xa0
00003770: SHL
00003771: SUB
00003772: AND
00003773: PUSH4 0x78b3218e
00003778: PUSH1 0x40
0000377a: MLOAD
0000377b: DUP2
0000377c: PUSH4 0xffffffff
00003781: AND
00003782: PUSH1 0xe0
00003784: SHL
00003785: DUP2
00003786: MSTORE
00003787: PUSH1 0x04
00003789: ADD
0000378a: PUSH1 0x00
0000378c: PUSH1 0x40
0000378e: MLOAD
0000378f: DUP1
00003790: DUP4
00003791: SUB
00003792: DUP2
00003793: PUSH1 0x00
00003795: DUP8
00003796: DUP1
00003797: EXTCODESIZE
00003798: ISZERO
00003799: DUP1
0000379a: ISZERO
0000379b: PUSH2 0x37a3
0000379e: JUMPI
0000379f: PUSH1 0x00
000037a1: DUP1
000037a2: REVERT
000037a3: JUMPDEST
000037a4: POP
000037a5: GAS
000037a6: CALL
000037a7: ISZERO
000037a8: DUP1
000037a9: ISZERO
000037aa: PUSH2 0x37b7
000037ad: JUMPI
000037ae: RETURNDATASIZE
000037af: PUSH1 0x00
000037b1: DUP1
000037b2: RETURNDATACOPY
000037b3: RETURNDATASIZE
000037b4: PUSH1 0x00
000037b6: REVERT
000037b7: JUMPDEST
000037b8: POP
000037b9: POP
000037ba: POP
000037bb: POP
000037bc: PUSH1 0x00
000037be: PUSH2 0x37c9
000037c1: DUP7
000037c2: DUP7
000037c3: DUP7
000037c4: DUP7
000037c5: PUSH2 0x42ad
000037c8: JUMP
000037c9: JUMPDEST
000037ca: PUSH1 0x1e
000037cc: SLOAD
000037cd: PUSH1 0x1f
000037cf: SLOAD
000037d0: SWAP2
000037d1: SWAP3
000037d2: POP
000037d3: SWAP1
000037d4: PUSH1 0x00
000037d6: PUSH2 0x37df
000037d9: DUP3
000037da: DUP5
000037db: PUSH2 0x52f4
000037de: JUMP
000037df: JUMPDEST
000037e0: SWAP1
000037e1: POP
000037e2: DUP4
000037e3: PUSH1 0x20
000037e5: ADD
000037e6: MLOAD
000037e7: DUP5
000037e8: PUSH1 0x40
000037ea: ADD
000037eb: MLOAD
000037ec: DUP5
000037ed: PUSH2 0x37f6
000037f0: SWAP2
000037f1: SWAP1
000037f2: PUSH2 0x52f4
000037f5: JUMP
000037f6: JUMPDEST
000037f7: PUSH2 0x3800
000037fa: SWAP2
000037fb: SWAP1
000037fc: PUSH2 0x5307
000037ff: JUMP
00003800: JUMPDEST
00003801: SWAP3
00003802: POP
00003803: DUP4
00003804: PUSH1 0x80
00003806: ADD
00003807: MLOAD
00003808: DUP5
00003809: PUSH1 0x60
0000380b: ADD
0000380c: MLOAD
0000380d: DUP4
0000380e: PUSH2 0x3817
00003811: SWAP2
00003812: SWAP1
00003813: PUSH2 0x52f4
00003816: JUMP
00003817: JUMPDEST
00003818: PUSH2 0x3821
0000381b: SWAP2
0000381c: SWAP1
0000381d: PUSH2 0x5307
00003820: JUMP
00003821: JUMPDEST
00003822: PUSH1 0x1e
00003824: DUP5
00003825: SWAP1
00003826: SSTORE
00003827: PUSH1 0x1f
00003829: DUP2
0000382a: SWAP1
0000382b: SSTORE
0000382c: PUSH1 0xc0
0000382e: DUP6
0000382f: ADD
00003830: MLOAD
00003831: PUSH1 0xa0
00003833: DUP7
00003834: ADD
00003835: MLOAD
00003836: PUSH1 0x20
00003838: SLOAD
00003839: SWAP3
0000383a: SWAP5
0000383b: POP
0000383c: SWAP1
0000383d: SWAP2
0000383e: PUSH2 0x3847
00003841: SWAP2
00003842: SWAP1
00003843: PUSH2 0x52f4
00003846: JUMP
00003847: JUMPDEST
00003848: PUSH2 0x3851
0000384b: SWAP2
0000384c: SWAP1
0000384d: PUSH2 0x5307
00003850: JUMP
00003851: JUMPDEST
00003852: PUSH1 0x20
00003854: SSTORE
00003855: PUSH2 0x0100
00003858: DUP5
00003859: ADD
0000385a: MLOAD
0000385b: PUSH1 0xe0
0000385d: DUP6
0000385e: ADD
0000385f: MLOAD
00003860: PUSH1 0x21
00003862: SLOAD
00003863: PUSH2 0x386c
00003866: SWAP2
00003867: SWAP1
00003868: PUSH2 0x52f4
0000386b: JUMP
0000386c: JUMPDEST
0000386d: PUSH2 0x3876
00003870: SWAP2
00003871: SWAP1
00003872: PUSH2 0x5307
00003875: JUMP
00003876: JUMPDEST
00003877: PUSH1 0x21
00003879: SSTORE
0000387a: PUSH1 0x00
0000387c: PUSH2 0x3890
0000387f: PUSH2 0x3888
00003882: DUP5
00003883: DUP7
00003884: PUSH2 0x52f4
00003887: JUMP
00003888: JUMPDEST
00003889: DUP4
0000388a: PUSH1 0x00
0000388c: PUSH2 0x3d70
0000388f: JUMP
00003890: JUMPDEST
00003891: PUSH1 0x60
00003893: DUP11
00003894: ADD
00003895: MLOAD
00003896: PUSH1 0x40
00003898: MLOAD
00003899: PUSH4 0x155c27bd
0000389e: PUSH1 0xe0
000038a0: SHL
000038a1: DUP2
000038a2: MSTORE
000038a3: PUSH1 0x01
000038a5: PUSH1 0x01
000038a7: PUSH1 0xa0
000038a9: SHL
000038aa: SUB
000038ab: SWAP1
000038ac: SWAP2
000038ad: AND
000038ae: PUSH1 0x04
000038b0: DUP3
000038b1: ADD
000038b2: MSTORE
000038b3: PUSH1 0x00
000038b5: PUSH1 0x24
000038b7: DUP3
000038b8: ADD
000038b9: MSTORE
000038ba: PUSH1 0x0e
000038bc: PUSH1 0x44
000038be: DUP3
000038bf: ADD
000038c0: MSTORE
000038c1: PUSH1 0x10
000038c3: PUSH1 0x64
000038c5: DUP3
000038c6: ADD
000038c7: MSTORE
000038c8: PUSH1 0x0a
000038ca: PUSH1 0x84
000038cc: DUP3
000038cd: ADD
000038ce: MSTORE
000038cf: SWAP1
000038d0: SWAP2
000038d1: POP
000038d2: PUSH20 0xb8028f58e5de9cb330c544df41d9681cdf05062e
000038e7: SWAP1
000038e8: PUSH4 0x155c27bd
000038ed: SWAP1
000038ee: PUSH1 0xa4
000038f0: ADD
000038f1: PUSH1 0x00
000038f3: PUSH1 0x40
000038f5: MLOAD
000038f6: DUP1
000038f7: DUP4
000038f8: SUB
000038f9: DUP2
000038fa: DUP7
000038fb: DUP1
000038fc: EXTCODESIZE
000038fd: ISZERO
000038fe: DUP1
000038ff: ISZERO
00003900: PUSH2 0x3908
00003903: JUMPI
00003904: PUSH1 0x00
00003906: DUP1
00003907: REVERT
00003908: JUMPDEST
00003909: POP
0000390a: GAS
0000390b: DELEGATECALL
0000390c: ISZERO
0000390d: DUP1
0000390e: ISZERO
0000390f: PUSH2 0x391c
00003912: JUMPI
00003913: RETURNDATASIZE
00003914: PUSH1 0x00
00003916: DUP1
00003917: RETURNDATACOPY
00003918: RETURNDATASIZE
00003919: PUSH1 0x00
0000391b: REVERT
0000391c: JUMPDEST
0000391d: POP
0000391e: POP
0000391f: DUP11
00003920: MLOAD
00003921: PUSH1 0x40
00003923: MLOAD
00003924: PUSH4 0x155c27bd
00003929: PUSH1 0xe0
0000392b: SHL
0000392c: DUP2
0000392d: MSTORE
0000392e: PUSH1 0x01
00003930: PUSH1 0x01
00003932: PUSH1 0xa0
00003934: SHL
00003935: SUB
00003936: SWAP1
00003937: SWAP2
00003938: AND
00003939: PUSH1 0x04
0000393b: DUP3
0000393c: ADD
0000393d: MSTORE
0000393e: PUSH1 0x01
00003940: PUSH1 0x24
00003942: DUP3
00003943: ADD
00003944: MSTORE
00003945: PUSH1 0x0e
00003947: PUSH1 0x44
00003949: DUP3
0000394a: ADD
0000394b: MSTORE
0000394c: PUSH1 0x10
0000394e: PUSH1 0x64
00003950: DUP3
00003951: ADD
00003952: MSTORE
00003953: PUSH1 0x0a
00003955: PUSH1 0x84
00003957: DUP3
00003958: ADD
00003959: MSTORE
0000395a: PUSH20 0xb8028f58e5de9cb330c544df41d9681cdf05062e
0000396f: SWAP3
00003970: POP
00003971: PUSH4 0x155c27bd
00003976: SWAP2
00003977: POP
00003978: PUSH1 0xa4
0000397a: ADD
0000397b: PUSH1 0x00
0000397d: PUSH1 0x40
0000397f: MLOAD
00003980: DUP1
00003981: DUP4
00003982: SUB
00003983: DUP2
00003984: DUP7
00003985: DUP1
00003986: EXTCODESIZE
00003987: ISZERO
00003988: DUP1
00003989: ISZERO
0000398a: PUSH2 0x3992
0000398d: JUMPI
0000398e: PUSH1 0x00
00003990: DUP1
00003991: REVERT
00003992: JUMPDEST
00003993: POP
00003994: GAS
00003995: DELEGATECALL
00003996: ISZERO
00003997: DUP1
00003998: ISZERO
00003999: PUSH2 0x39a6
0000399c: JUMPI
0000399d: RETURNDATASIZE
0000399e: PUSH1 0x00
000039a0: DUP1
000039a1: RETURNDATACOPY
000039a2: RETURNDATASIZE
000039a3: PUSH1 0x00
000039a5: REVERT
000039a6: JUMPDEST
000039a7: POP
000039a8: POP
000039a9: PUSH1 0x26
000039ab: SLOAD
000039ac: PUSH1 0x40
000039ae: MLOAD
000039af: PUSH4 0x60784ecb
000039b4: PUSH1 0xe1
000039b6: SHL
000039b7: DUP2
000039b8: MSTORE
000039b9: PUSH1 0x01
000039bb: PUSH1 0x01
000039bd: PUSH1 0xa0
000039bf: SHL
000039c0: SUB
000039c1: SWAP1
000039c2: SWAP2
000039c3: AND
000039c4: SWAP3
000039c5: POP
000039c6: PUSH4 0xc0f09d96
000039cb: SWAP2
000039cc: POP
000039cd: PUSH2 0x39da
000039d0: SWAP1
000039d1: DUP13
000039d2: SWAP1
000039d3: PUSH1 0x04
000039d5: ADD
000039d6: PUSH2 0x54d5
000039d9: JUMP
000039da: JUMPDEST
000039db: PUSH1 0x00
000039dd: PUSH1 0x40
000039df: MLOAD
000039e0: DUP1
000039e1: DUP4
000039e2: SUB
000039e3: DUP2
000039e4: PUSH1 0x00
000039e6: DUP8
000039e7: DUP1
000039e8: EXTCODESIZE
000039e9: ISZERO
000039ea: DUP1
000039eb: ISZERO
000039ec: PUSH2 0x39f4
000039ef: JUMPI
000039f0: PUSH1 0x00
000039f2: DUP1
000039f3: REVERT
000039f4: JUMPDEST
000039f5: POP
000039f6: GAS
000039f7: CALL
000039f8: ISZERO
000039f9: DUP1
000039fa: ISZERO
000039fb: PUSH2 0x3a08
000039fe: JUMPI
000039ff: RETURNDATASIZE
00003a00: PUSH1 0x00
00003a02: DUP1
00003a03: RETURNDATACOPY
00003a04: RETURNDATASIZE
00003a05: PUSH1 0x00
00003a07: REVERT
00003a08: JUMPDEST
00003a09: POP
00003a0a: POP
00003a0b: POP
00003a0c: POP
00003a0d: PUSH2 0x3a1b
00003a10: DUP4
00003a11: DUP6
00003a12: PUSH2 0x1d6b
00003a15: SWAP2
00003a16: SWAP1
00003a17: PUSH2 0x52f4
00003a1a: JUMP
00003a1b: JUMPDEST
00003a1c: PUSH1 0x40
00003a1e: DUP1
00003a1f: MLOAD
00003a20: DUP6
00003a21: DUP2
00003a22: MSTORE
00003a23: PUSH1 0x20
00003a25: DUP2
00003a26: ADD
00003a27: DUP6
00003a28: SWAP1
00003a29: MSTORE
00003a2a: SWAP1
00003a2b: DUP2
00003a2c: ADD
00003a2d: DUP3
00003a2e: SWAP1
00003a2f: MSTORE
00003a30: PUSH32 0xfde591d4268ec544cdd14ce6872b792705c3a22041dda226551134062d3e05e8
00003a51: SWAP1
00003a52: PUSH1 0x60
00003a54: ADD
00003a55: PUSH1 0x40
00003a57: MLOAD
00003a58: DUP1
00003a59: SWAP2
00003a5a: SUB
00003a5b: SWAP1
00003a5c: LOG1
00003a5d: POP
00003a5e: POP
00003a5f: POP
00003a60: POP
00003a61: POP
00003a62: PUSH32 0x0000000000000000000000002218f90a98b0c070676f249ef44834686daa4285
00003a83: PUSH1 0x01
00003a85: PUSH1 0x01
00003a87: PUSH1 0xa0
00003a89: SHL
00003a8a: SUB
00003a8b: AND
00003a8c: PUSH4 0xc3d0cbfb
00003a91: PUSH1 0x40
00003a93: MLOAD
00003a94: DUP2
00003a95: PUSH4 0xffffffff
00003a9a: AND
00003a9b: PUSH1 0xe0
00003a9d: SHL
00003a9e: DUP2
00003a9f: MSTORE
00003aa0: PUSH1 0x04
00003aa2: ADD
00003aa3: PUSH1 0x20
00003aa5: PUSH1 0x40
00003aa7: MLOAD
00003aa8: DUP1
00003aa9: DUP4
00003aaa: SUB
00003aab: DUP2
00003aac: DUP7
00003aad: GAS
00003aae: STATICCALL
00003aaf: ISZERO
00003ab0: DUP1
00003ab1: ISZERO
00003ab2: PUSH2 0x3abf
00003ab5: JUMPI
00003ab6: RETURNDATASIZE
00003ab7: PUSH1 0x00
00003ab9: DUP1
00003aba: RETURNDATACOPY
00003abb: RETURNDATASIZE
00003abc: PUSH1 0x00
00003abe: REVERT
00003abf: JUMPDEST
00003ac0: POP
00003ac1: POP
00003ac2: POP
00003ac3: POP
00003ac4: PUSH1 0x40
00003ac6: MLOAD
00003ac7: RETURNDATASIZE
00003ac8: PUSH1 0x1f
00003aca: NOT
00003acb: PUSH1 0x1f
00003acd: DUP3
00003ace: ADD
00003acf: AND
00003ad0: DUP3
00003ad1: ADD
00003ad2: DUP1
00003ad3: PUSH1 0x40
00003ad5: MSTORE
00003ad6: POP
00003ad7: DUP2
00003ad8: ADD
00003ad9: SWAP1
00003ada: PUSH2 0x3ae3
00003add: SWAP2
00003ade: SWAP1
00003adf: PUSH2 0x523f
00003ae2: JUMP
00003ae3: JUMPDEST
00003ae4: PUSH1 0x01
00003ae6: PUSH1 0x01
00003ae8: PUSH1 0xa0
00003aea: SHL
00003aeb: SUB
00003aec: AND
00003aed: PUSH4 0x565f3652
00003af2: PUSH1 0x40
00003af4: MLOAD
00003af5: DUP2
00003af6: PUSH4 0xffffffff
00003afb: AND
00003afc: PUSH1 0xe0
00003afe: SHL
00003aff: DUP2
00003b00: MSTORE
00003b01: PUSH1 0x04
00003b03: ADD
00003b04: PUSH1 0x00
00003b06: PUSH1 0x40
00003b08: MLOAD
00003b09: DUP1
00003b0a: DUP4
00003b0b: SUB
00003b0c: DUP2
00003b0d: PUSH1 0x00
00003b0f: DUP8
00003b10: DUP1
00003b11: EXTCODESIZE
00003b12: ISZERO
00003b13: DUP1
00003b14: ISZERO
00003b15: PUSH2 0x3b1d
00003b18: JUMPI
00003b19: PUSH1 0x00
00003b1b: DUP1
00003b1c: REVERT
00003b1d: JUMPDEST
00003b1e: POP
00003b1f: GAS
00003b20: CALL
00003b21: ISZERO
00003b22: DUP1
00003b23: ISZERO
00003b24: PUSH2 0x3b31
00003b27: JUMPI
00003b28: RETURNDATASIZE
00003b29: PUSH1 0x00
00003b2b: DUP1
00003b2c: RETURNDATACOPY
00003b2d: RETURNDATASIZE
00003b2e: PUSH1 0x00
00003b30: REVERT
00003b31: JUMPDEST
00003b32: POP
00003b33: POP
00003b34: POP
00003b35: POP
00003b36: POP
00003b37: PUSH2 0x29e9
00003b3a: PUSH1 0x01
00003b3c: DUP1
00003b3d: SSTORE
00003b3e: JUMP
00003b3f: JUMPDEST
00003b40: PUSH1 0x00
00003b42: PUSH2 0x0d62
00003b45: PUSH1 0x0a
00003b47: DUP4
00003b48: PUSH2 0x3c9d
00003b4b: JUMP
00003b4c: JUMPDEST
00003b4d: PUSH1 0x00
00003b4f: PUSH2 0x0d62
00003b52: PUSH1 0x22
00003b54: DUP4
00003b55: PUSH2 0x3c9d
00003b58: JUMP
00003b59: JUMPDEST
00003b5a: PUSH1 0x00
00003b5c: PUSH2 0x0d62
00003b5f: DUP3
00003b60: PUSH2 0x30b2
00003b63: PUSH1 0x01
00003b65: PUSH2 0x3b96
00003b68: JUMP
00003b69: JUMPDEST
00003b6a: PUSH1 0x01
00003b6c: PUSH1 0x01
00003b6e: PUSH1 0xa0
00003b70: SHL
00003b71: SUB
00003b72: DUP3
00003b73: AND
00003b74: PUSH2 0x3b92
00003b77: JUMPI
00003b78: DUP1
00003b79: PUSH1 0x40
00003b7b: MLOAD
00003b7c: PUSH4 0xeac0d389
00003b81: PUSH1 0xe0
00003b83: SHL
00003b84: DUP2
00003b85: MSTORE
00003b86: PUSH1 0x04
00003b88: ADD
00003b89: PUSH2 0x115a
00003b8c: SWAP2
00003b8d: SWAP1
00003b8e: PUSH2 0x472a
00003b91: JUMP
00003b92: JUMPDEST
00003b93: POP
00003b94: POP
00003b95: JUMP
00003b96: JUMPDEST
00003b97: PUSH1 0x40
00003b99: MLOAD
00003b9a: PUSH4 0x57e45485
00003b9f: PUSH1 0xe0
00003ba1: SHL
00003ba2: DUP2
00003ba3: MSTORE
00003ba4: PUSH1 0x00
00003ba6: SWAP1
00003ba7: PUSH20 0xd18bac6d95119237b225db48ec29155a8cd08743
00003bbc: SWAP1
00003bbd: PUSH4 0x57e45485
00003bc2: SWAP1
00003bc3: PUSH2 0x237a
00003bc6: SWAP1
00003bc7: PUSH1 0x10
00003bc9: SWAP1
00003bca: PUSH1 0x0c
00003bcc: SWAP1
00003bcd: DUP8
00003bce: SWAP1
00003bcf: PUSH1 0x04
00003bd1: ADD
00003bd2: PUSH2 0x54e3
00003bd5: JUMP
00003bd6: JUMPDEST
00003bd7: PUSH1 0x60
00003bd9: PUSH1 0x00
00003bdb: PUSH2 0x0df6
00003bde: DUP4
00003bdf: PUSH2 0x44f6
00003be2: JUMP
00003be3: JUMPDEST
00003be4: PUSH2 0x3beb
00003be7: PUSH2 0x1ea5
00003bea: JUMP
00003beb: JUMPDEST
00003bec: ISZERO
00003bed: PUSH2 0x3c09
00003bf0: JUMPI
00003bf1: PUSH1 0x40
00003bf3: MLOAD
00003bf4: PUSH4 0x1309a563
00003bf9: PUSH1 0xe0
00003bfb: SHL
00003bfc: DUP2
00003bfd: MSTORE
00003bfe: PUSH1 0x04
00003c00: ADD
00003c01: PUSH1 0x40
00003c03: MLOAD
00003c04: DUP1
00003c05: SWAP2
00003c06: SUB
00003c07: SWAP1
00003c08: REVERT
00003c09: JUMPDEST
00003c0a: JUMP
00003c0b: JUMPDEST
00003c0c: DUP2
00003c0d: MLOAD
00003c0e: PUSH1 0x00
00003c10: SUB
00003c11: PUSH2 0x3b92
00003c14: JUMPI
00003c15: DUP1
00003c16: PUSH1 0x40
00003c18: MLOAD
00003c19: PUSH4 0x4389d5ab
00003c1e: PUSH1 0xe0
00003c20: SHL
00003c21: DUP2
00003c22: MSTORE
00003c23: PUSH1 0x04
00003c25: ADD
00003c26: PUSH2 0x115a
00003c29: SWAP2
00003c2a: SWAP1
00003c2b: PUSH2 0x472a
00003c2e: JUMP
00003c2f: JUMPDEST
00003c30: PUSH1 0x40
00003c32: MLOAD
00003c33: PUSH4 0x24745215
00003c38: PUSH1 0xe2
00003c3a: SHL
00003c3b: DUP2
00003c3c: MSTORE
00003c3d: PUSH1 0x00
00003c3f: SWAP1
00003c40: PUSH1 0x01
00003c42: PUSH1 0x01
00003c44: PUSH1 0xa0
00003c46: SHL
00003c47: SUB
00003c48: PUSH32 0x00000000000000000000000037767cbff88cb623e9404e959560984f7d742df6
00003c69: AND
00003c6a: SWAP1
00003c6b: PUSH4 0x91d14854
00003c70: SWAP1
00003c71: PUSH2 0x3c80
00003c74: SWAP1
00003c75: DUP7
00003c76: SWAP1
00003c77: DUP7
00003c78: SWAP1
00003c79: PUSH1 0x04
00003c7b: ADD
00003c7c: PUSH2 0x5228
00003c7f: JUMP
00003c80: JUMPDEST
00003c81: PUSH1 0x20
00003c83: PUSH1 0x40
00003c85: MLOAD
00003c86: DUP1
00003c87: DUP4
00003c88: SUB
00003c89: DUP2
00003c8a: DUP7
00003c8b: GAS
00003c8c: STATICCALL
00003c8d: ISZERO
00003c8e: DUP1
00003c8f: ISZERO
00003c90: PUSH2 0x0dd2
00003c93: JUMPI
00003c94: RETURNDATASIZE
00003c95: PUSH1 0x00
00003c97: DUP1
00003c98: RETURNDATACOPY
00003c99: RETURNDATASIZE
00003c9a: PUSH1 0x00
00003c9c: REVERT
00003c9d: JUMPDEST
00003c9e: PUSH1 0x01
00003ca0: PUSH1 0x01
00003ca2: PUSH1 0xa0
00003ca4: SHL
00003ca5: SUB
00003ca6: DUP2
00003ca7: AND
00003ca8: PUSH1 0x00
00003caa: SWAP1
00003cab: DUP2
00003cac: MSTORE
00003cad: PUSH1 0x01
00003caf: DUP4
00003cb0: ADD
00003cb1: PUSH1 0x20
00003cb3: MSTORE
00003cb4: PUSH1 0x40
00003cb6: DUP2
00003cb7: KECCAK256
00003cb8: SLOAD
00003cb9: ISZERO
00003cba: ISZERO
00003cbb: PUSH2 0x0df6
00003cbe: JUMP
00003cbf: JUMPDEST
00003cc0: PUSH1 0x00
00003cc2: PUSH2 0x0df6
00003cc5: DUP4
00003cc6: PUSH1 0x01
00003cc8: PUSH1 0x01
00003cca: PUSH1 0xa0
00003ccc: SHL
00003ccd: SUB
00003cce: DUP5
00003ccf: AND
00003cd0: PUSH2 0x4552
00003cd3: JUMP
00003cd4: JUMPDEST
00003cd5: PUSH1 0x00
00003cd7: PUSH2 0x0df6
00003cda: PUSH2 0x3ce2
00003cdd: DUP5
00003cde: PUSH2 0x3017
00003ce1: JUMP
00003ce2: JUMPDEST
00003ce3: DUP4
00003ce4: PUSH2 0x27fe
00003ce7: PUSH2 0x0f45
00003cea: JUMP
00003ceb: JUMPDEST
00003cec: PUSH1 0x00
00003cee: DUP1
00003cef: PUSH2 0x3cf9
00003cf2: DUP7
00003cf3: DUP7
00003cf4: DUP7
00003cf5: PUSH2 0x45a1
00003cf8: JUMP
00003cf9: JUMPDEST
00003cfa: SWAP1
00003cfb: POP
00003cfc: PUSH1 0x01
00003cfe: DUP4
00003cff: PUSH1 0x02
00003d01: DUP2
00003d02: GT
00003d03: ISZERO
00003d04: PUSH2 0x3d0f
00003d07: JUMPI
00003d08: PUSH2 0x3d0f
00003d0b: PUSH2 0x4ad6
00003d0e: JUMP
00003d0f: JUMPDEST
00003d10: EQ
00003d11: DUP1
00003d12: ISZERO
00003d13: PUSH2 0x3d2c
00003d16: JUMPI
00003d17: POP
00003d18: PUSH1 0x00
00003d1a: DUP5
00003d1b: DUP1
00003d1c: PUSH2 0x3d27
00003d1f: JUMPI
00003d20: PUSH2 0x3d27
00003d23: PUSH2 0x5508
00003d26: JUMP
00003d27: JUMPDEST
00003d28: DUP7
00003d29: DUP9
00003d2a: MULMOD
00003d2b: GT
00003d2c: JUMPDEST
00003d2d: ISZERO
00003d2e: PUSH2 0x18cd
00003d31: JUMPI
00003d32: PUSH2 0x3d3c
00003d35: PUSH1 0x01
00003d37: DUP3
00003d38: PUSH2 0x52f4
00003d3b: JUMP
00003d3c: JUMPDEST
00003d3d: SWAP7
00003d3e: SWAP6
00003d3f: POP
00003d40: POP
00003d41: POP
00003d42: POP
00003d43: POP
00003d44: POP
00003d45: JUMP
00003d46: JUMPDEST
00003d47: PUSH1 0x02
00003d49: PUSH1 0x01
00003d4b: SLOAD
00003d4c: SUB
00003d4d: PUSH2 0x3d69
00003d50: JUMPI
00003d51: PUSH1 0x40
00003d53: MLOAD
00003d54: PUSH4 0x3ee5aeb5
00003d59: PUSH1 0xe0
00003d5b: SHL
00003d5c: DUP2
00003d5d: MSTORE
00003d5e: PUSH1 0x04
00003d60: ADD
00003d61: PUSH1 0x40
00003d63: MLOAD
00003d64: DUP1
00003d65: SWAP2
00003d66: SUB
00003d67: SWAP1
00003d68: REVERT
00003d69: JUMPDEST
00003d6a: PUSH1 0x02
00003d6c: PUSH1 0x01
00003d6e: SSTORE
00003d6f: JUMP
00003d70: JUMPDEST
00003d71: PUSH1 0x40
00003d73: MLOAD
00003d74: PUSH4 0xfe5c822d
00003d79: PUSH1 0xe0
00003d7b: SHL
00003d7c: DUP2
00003d7d: MSTORE
00003d7e: PUSH1 0x12
00003d80: PUSH1 0x04
00003d82: DUP3
00003d83: ADD
00003d84: MSTORE
00003d85: PUSH1 0x02
00003d87: PUSH1 0x24
00003d89: DUP3
00003d8a: ADD
00003d8b: MSTORE
00003d8c: PUSH1 0x00
00003d8e: SWAP1
00003d8f: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
00003da4: SWAP1
00003da5: PUSH4 0xfe5c822d
00003daa: SWAP1
00003dab: PUSH1 0x44
00003dad: ADD
00003dae: PUSH1 0x00
00003db0: PUSH1 0x40
00003db2: MLOAD
00003db3: DUP1
00003db4: DUP4
00003db5: SUB
00003db6: DUP2
00003db7: DUP7
00003db8: DUP1
00003db9: EXTCODESIZE
00003dba: ISZERO
00003dbb: DUP1
00003dbc: ISZERO
00003dbd: PUSH2 0x3dc5
00003dc0: JUMPI
00003dc1: PUSH1 0x00
00003dc3: DUP1
00003dc4: REVERT
00003dc5: JUMPDEST
00003dc6: POP
00003dc7: GAS
00003dc8: DELEGATECALL
00003dc9: ISZERO
00003dca: DUP1
00003dcb: ISZERO
00003dcc: PUSH2 0x3dd9
00003dcf: JUMPI
00003dd0: RETURNDATASIZE
00003dd1: PUSH1 0x00
00003dd3: DUP1
00003dd4: RETURNDATACOPY
00003dd5: RETURNDATASIZE
00003dd6: PUSH1 0x00
00003dd8: REVERT
00003dd9: JUMPDEST
00003dda: POP
00003ddb: POP
00003ddc: POP
00003ddd: POP
00003dde: PUSH1 0x00
00003de0: PUSH2 0x3de7
00003de3: PUSH2 0x0f45
00003de6: JUMP
00003de7: JUMPDEST
00003de8: SWAP1
00003de9: POP
00003dea: PUSH2 0x3df4
00003ded: DUP6
00003dee: DUP3
00003def: DUP6
00003df0: PUSH2 0x4650
00003df3: JUMP
00003df4: JUMPDEST
00003df5: SWAP2
00003df6: POP
00003df7: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
00003e0c: PUSH4 0xc0b1cd55
00003e11: PUSH1 0x12
00003e13: PUSH1 0x02
00003e15: PUSH2 0x3e1e
00003e18: DUP6
00003e19: DUP8
00003e1a: PUSH2 0x5307
00003e1d: JUMP
00003e1e: JUMPDEST
00003e1f: DUP10
00003e20: DUP10
00003e21: DUP9
00003e22: PUSH2 0x3e40
00003e25: ADDRESS
00003e26: PUSH1 0x01
00003e28: PUSH1 0x01
00003e2a: PUSH1 0xa0
00003e2c: SHL
00003e2d: SUB
00003e2e: AND
00003e2f: PUSH1 0x00
00003e31: SWAP1
00003e32: DUP2
00003e33: MSTORE
00003e34: PUSH1 0x02
00003e36: PUSH1 0x20
00003e38: MSTORE
00003e39: PUSH1 0x40
00003e3b: SWAP1
00003e3c: KECCAK256
00003e3d: SLOAD
00003e3e: SWAP1
00003e3f: JUMP
00003e40: JUMPDEST
00003e41: PUSH1 0x40
00003e43: MLOAD
00003e44: PUSH1 0x01
00003e46: PUSH1 0x01
00003e48: PUSH1 0xe0
00003e4a: SHL
00003e4b: SUB
00003e4c: NOT
00003e4d: PUSH1 0xe0
00003e4f: DUP11
00003e50: SWAP1
00003e51: SHL
00003e52: AND
00003e53: DUP2
00003e54: MSTORE
00003e55: PUSH1 0x04
00003e57: DUP2
00003e58: ADD
00003e59: SWAP8
00003e5a: SWAP1
00003e5b: SWAP8
00003e5c: MSTORE
00003e5d: PUSH1 0x24
00003e5f: DUP8
00003e60: ADD
00003e61: SWAP6
00003e62: SWAP1
00003e63: SWAP6
00003e64: MSTORE
00003e65: PUSH1 0x44
00003e67: DUP7
00003e68: ADD
00003e69: SWAP4
00003e6a: SWAP1
00003e6b: SWAP4
00003e6c: MSTORE
00003e6d: PUSH1 0x64
00003e6f: DUP6
00003e70: ADD
00003e71: SWAP2
00003e72: SWAP1
00003e73: SWAP2
00003e74: MSTORE
00003e75: PUSH1 0x84
00003e77: DUP5
00003e78: ADD
00003e79: MSTORE
00003e7a: PUSH1 0xa4
00003e7c: DUP4
00003e7d: ADD
00003e7e: MSTORE
00003e7f: PUSH1 0xc4
00003e81: DUP3
00003e82: ADD
00003e83: MSTORE
00003e84: PUSH1 0xe4
00003e86: ADD
00003e87: PUSH1 0x20
00003e89: PUSH1 0x40
00003e8b: MLOAD
00003e8c: DUP1
00003e8d: DUP4
00003e8e: SUB
00003e8f: DUP2
00003e90: DUP7
00003e91: GAS
00003e92: DELEGATECALL
00003e93: ISZERO
00003e94: DUP1
00003e95: ISZERO
00003e96: PUSH2 0x3ea3
00003e99: JUMPI
00003e9a: RETURNDATASIZE
00003e9b: PUSH1 0x00
00003e9d: DUP1
00003e9e: RETURNDATACOPY
00003e9f: RETURNDATASIZE
00003ea0: PUSH1 0x00
00003ea2: REVERT
00003ea3: JUMPDEST
00003ea4: POP
00003ea5: POP
00003ea6: POP
00003ea7: POP
00003ea8: PUSH1 0x40
00003eaa: MLOAD
00003eab: RETURNDATASIZE
00003eac: PUSH1 0x1f
00003eae: NOT
00003eaf: PUSH1 0x1f
00003eb1: DUP3
00003eb2: ADD
00003eb3: AND
00003eb4: DUP3
00003eb5: ADD
00003eb6: DUP1
00003eb7: PUSH1 0x40
00003eb9: MSTORE
00003eba: POP
00003ebb: DUP2
00003ebc: ADD
00003ebd: SWAP1
00003ebe: PUSH2 0x18cd
00003ec1: SWAP2
00003ec2: SWAP1
00003ec3: PUSH2 0x4f7e
00003ec6: JUMP
00003ec7: JUMPDEST
00003ec8: PUSH1 0x26
00003eca: SLOAD
00003ecb: PUSH1 0x01
00003ecd: PUSH1 0x01
00003ecf: PUSH1 0xa0
00003ed1: SHL
00003ed2: SUB
00003ed3: AND
00003ed4: PUSH4 0x4244cc90
00003ed9: DUP3
00003eda: PUSH2 0x3f03
00003edd: PUSH32 0x0000000000000000000000000000000000000000000000000de0b6b3a7640000
00003efe: DUP7
00003eff: PUSH2 0x551e
00003f02: JUMP
00003f03: JUMPDEST
00003f04: PUSH2 0x3f0d
00003f07: SWAP2
00003f08: SWAP1
00003f09: PUSH2 0x5535
00003f0c: JUMP
00003f0d: JUMPDEST
00003f0e: PUSH1 0x40
00003f10: MLOAD
00003f11: DUP3
00003f12: PUSH4 0xffffffff
00003f17: AND
00003f18: PUSH1 0xe0
00003f1a: SHL
00003f1b: DUP2
00003f1c: MSTORE
00003f1d: PUSH1 0x04
00003f1f: ADD
00003f20: PUSH2 0x3f2b
00003f23: SWAP2
00003f24: DUP2
00003f25: MSTORE
00003f26: PUSH1 0x20
00003f28: ADD
00003f29: SWAP1
00003f2a: JUMP
00003f2b: JUMPDEST
00003f2c: PUSH1 0x00
00003f2e: PUSH1 0x40
00003f30: MLOAD
00003f31: DUP1
00003f32: DUP4
00003f33: SUB
00003f34: DUP2
00003f35: PUSH1 0x00
00003f37: DUP8
00003f38: DUP1
00003f39: EXTCODESIZE
00003f3a: ISZERO
00003f3b: DUP1
00003f3c: ISZERO
00003f3d: PUSH2 0x3f45
00003f40: JUMPI
00003f41: PUSH1 0x00
00003f43: DUP1
00003f44: REVERT
00003f45: JUMPDEST
00003f46: POP
00003f47: GAS
00003f48: CALL
00003f49: ISZERO
00003f4a: DUP1
00003f4b: ISZERO
00003f4c: PUSH2 0x22cb
00003f4f: JUMPI
00003f50: RETURNDATASIZE
00003f51: PUSH1 0x00
00003f53: DUP1
00003f54: RETURNDATACOPY
00003f55: RETURNDATASIZE
00003f56: PUSH1 0x00
00003f58: REVERT
00003f59: JUMPDEST
00003f5a: PUSH1 0x00
00003f5c: DUP1
00003f5d: PUSH2 0x3f64
00003f60: PUSH2 0x0f45
00003f63: JUMP
00003f64: JUMPDEST
00003f65: SWAP1
00003f66: POP
00003f67: DUP1
00003f68: PUSH1 0x00
00003f6a: SUB
00003f6b: PUSH2 0x3f79
00003f6e: JUMPI
00003f6f: POP
00003f70: PUSH1 0x00
00003f72: SWAP3
00003f73: DUP4
00003f74: SWAP3
00003f75: POP
00003f76: SWAP1
00003f77: POP
00003f78: JUMP
00003f79: JUMPDEST
00003f7a: DUP1
00003f7b: PUSH2 0x2710
00003f7e: PUSH2 0x3f86
00003f81: DUP6
00003f82: PUSH2 0x2a47
00003f85: JUMP
00003f86: JUMPDEST
00003f87: PUSH2 0x3f90
00003f8a: SWAP2
00003f8b: SWAP1
00003f8c: PUSH2 0x551e
00003f8f: JUMP
00003f90: JUMPDEST
00003f91: PUSH2 0x3f9a
00003f94: SWAP2
00003f95: SWAP1
00003f96: PUSH2 0x5535
00003f99: JUMP
00003f9a: JUMPDEST
00003f9b: SWAP2
00003f9c: POP
00003f9d: SWAP2
00003f9e: POP
00003f9f: SWAP2
00003fa0: JUMP
00003fa1: JUMPDEST
00003fa2: PUSH1 0x00
00003fa4: PUSH32 0x0000000000000000000000002218f90a98b0c070676f249ef44834686daa4285
00003fc5: PUSH1 0x01
00003fc7: PUSH1 0x01
00003fc9: PUSH1 0xa0
00003fcb: SHL
00003fcc: SUB
00003fcd: AND
00003fce: PUSH4 0xc3d0cbfb
00003fd3: PUSH1 0x40
00003fd5: MLOAD
00003fd6: DUP2
00003fd7: PUSH4 0xffffffff
00003fdc: AND
00003fdd: PUSH1 0xe0
00003fdf: SHL
00003fe0: DUP2
00003fe1: MSTORE
00003fe2: PUSH1 0x04
00003fe4: ADD
00003fe5: PUSH1 0x20
00003fe7: PUSH1 0x40
00003fe9: MLOAD
00003fea: DUP1
00003feb: DUP4
00003fec: SUB
00003fed: DUP2
00003fee: DUP7
00003fef: GAS
00003ff0: STATICCALL
00003ff1: ISZERO
00003ff2: DUP1
00003ff3: ISZERO
00003ff4: PUSH2 0x4001
00003ff7: JUMPI
00003ff8: RETURNDATASIZE
00003ff9: PUSH1 0x00
00003ffb: DUP1
00003ffc: RETURNDATACOPY
00003ffd: RETURNDATASIZE
00003ffe: PUSH1 0x00
00004000: REVERT
00004001: JUMPDEST
00004002: POP
00004003: POP
00004004: POP
00004005: POP
00004006: PUSH1 0x40
00004008: MLOAD
00004009: RETURNDATASIZE
0000400a: PUSH1 0x1f
0000400c: NOT
0000400d: PUSH1 0x1f
0000400f: DUP3
00004010: ADD
00004011: AND
00004012: DUP3
00004013: ADD
00004014: DUP1
00004015: PUSH1 0x40
00004017: MSTORE
00004018: POP
00004019: DUP2
0000401a: ADD
0000401b: SWAP1
0000401c: PUSH2 0x4025
0000401f: SWAP2
00004020: SWAP1
00004021: PUSH2 0x523f
00004024: JUMP
00004025: JUMPDEST
00004026: PUSH1 0x01
00004028: PUSH1 0x01
0000402a: PUSH1 0xa0
0000402c: SHL
0000402d: SUB
0000402e: AND
0000402f: PUSH4 0xf403e784
00004034: PUSH1 0x40
00004036: MLOAD
00004037: DUP2
00004038: PUSH4 0xffffffff
0000403d: AND
0000403e: PUSH1 0xe0
00004040: SHL
00004041: DUP2
00004042: MSTORE
00004043: PUSH1 0x04
00004045: ADD
00004046: PUSH1 0x20
00004048: PUSH1 0x40
0000404a: MLOAD
0000404b: DUP1
0000404c: DUP4
0000404d: SUB
0000404e: DUP2
0000404f: DUP7
00004050: GAS
00004051: STATICCALL
00004052: ISZERO
00004053: DUP1
00004054: ISZERO
00004055: PUSH2 0x4062
00004058: JUMPI
00004059: RETURNDATASIZE
0000405a: PUSH1 0x00
0000405c: DUP1
0000405d: RETURNDATACOPY
0000405e: RETURNDATASIZE
0000405f: PUSH1 0x00
00004061: REVERT
00004062: JUMPDEST
00004063: POP
00004064: POP
00004065: POP
00004066: POP
00004067: PUSH1 0x40
00004069: MLOAD
0000406a: RETURNDATASIZE
0000406b: PUSH1 0x1f
0000406d: NOT
0000406e: PUSH1 0x1f
00004070: DUP3
00004071: ADD
00004072: AND
00004073: DUP3
00004074: ADD
00004075: DUP1
00004076: PUSH1 0x40
00004078: MSTORE
00004079: POP
0000407a: DUP2
0000407b: ADD
0000407c: SWAP1
0000407d: PUSH2 0x4086
00004080: SWAP2
00004081: SWAP1
00004082: PUSH2 0x4f7e
00004085: JUMP
00004086: JUMPDEST
00004087: GT
00004088: ISZERO
00004089: PUSH2 0x3c09
0000408c: JUMPI
0000408d: PUSH1 0x40
0000408f: MLOAD
00004090: PUSH4 0x18b29b3d
00004095: PUSH1 0xe3
00004097: SHL
00004098: DUP2
00004099: MSTORE
0000409a: PUSH1 0x04
0000409c: ADD
0000409d: PUSH1 0x40
0000409f: MLOAD
000040a0: DUP1
000040a1: SWAP2
000040a2: SUB
000040a3: SWAP1
000040a4: REVERT
000040a5: JUMPDEST
000040a6: DUP2
000040a7: PUSH1 0x00
000040a9: SUB
000040aa: PUSH2 0x3b92
000040ad: JUMPI
000040ae: DUP1
000040af: PUSH1 0x40
000040b1: MLOAD
000040b2: PUSH4 0x4389d5ab
000040b7: PUSH1 0xe0
000040b9: SHL
000040ba: DUP2
000040bb: MSTORE
000040bc: PUSH1 0x04
000040be: ADD
000040bf: PUSH2 0x115a
000040c2: SWAP2
000040c3: SWAP1
000040c4: PUSH2 0x472a
000040c7: JUMP
000040c8: JUMPDEST
000040c9: PUSH1 0x40
000040cb: MLOAD
000040cc: PUSH4 0x7d127d03
000040d1: PUSH1 0xe0
000040d3: SHL
000040d4: DUP2
000040d5: MSTORE
000040d6: PUSH1 0x01
000040d8: PUSH1 0x01
000040da: PUSH1 0xa0
000040dc: SHL
000040dd: SUB
000040de: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000040ff: DUP2
00004100: AND
00004101: PUSH1 0x04
00004103: DUP4
00004104: ADD
00004105: MSTORE
00004106: PUSH1 0x1e
00004108: PUSH1 0x24
0000410a: DUP4
0000410b: ADD
0000410c: MSTORE
0000410d: PUSH1 0x02
0000410f: PUSH1 0x44
00004111: DUP4
00004112: ADD
00004113: MSTORE
00004114: PUSH1 0x12
00004116: PUSH1 0x64
00004118: DUP4
00004119: ADD
0000411a: MSTORE
0000411b: PUSH1 0x84
0000411d: DUP3
0000411e: ADD
0000411f: DUP6
00004120: SWAP1
00004121: MSTORE
00004122: PUSH1 0xa4
00004124: DUP3
00004125: ADD
00004126: DUP5
00004127: SWAP1
00004128: MSTORE
00004129: DUP3
0000412a: AND
0000412b: PUSH1 0xc4
0000412d: DUP3
0000412e: ADD
0000412f: MSTORE
00004130: PUSH20 0x8709b88c5cbca830d63f726a6f6f8c6573486223
00004145: SWAP1
00004146: PUSH4 0x7d127d03
0000414b: SWAP1
0000414c: PUSH1 0xe4
0000414e: ADD
0000414f: PUSH2 0x206b
00004152: JUMP
00004153: JUMPDEST
00004154: PUSH1 0x00
00004156: PUSH2 0x415d
00004159: PUSH2 0x0f45
0000415c: JUMP
0000415d: JUMPDEST
0000415e: SWAP1
0000415f: POP
00004160: DUP1
00004161: ISZERO
00004162: DUP1
00004163: PUSH2 0x416a
00004166: JUMPI
00004167: POP
00004168: DUP3
00004169: ISZERO
0000416a: JUMPDEST
0000416b: ISZERO
0000416c: PUSH2 0x4175
0000416f: JUMPI
00004170: POP
00004171: POP
00004172: POP
00004173: POP
00004174: JUMP
00004175: JUMPDEST
00004176: PUSH1 0x00
00004178: DUP2
00004179: PUSH2 0x2710
0000417c: PUSH2 0x4184
0000417f: DUP6
00004180: PUSH2 0x2a47
00004183: JUMP
00004184: JUMPDEST
00004185: PUSH2 0x418e
00004188: SWAP2
00004189: SWAP1
0000418a: PUSH2 0x551e
0000418d: JUMP
0000418e: JUMPDEST
0000418f: PUSH2 0x4198
00004192: SWAP2
00004193: SWAP1
00004194: PUSH2 0x5535
00004197: JUMP
00004198: JUMPDEST
00004199: SWAP1
0000419a: POP
0000419b: DUP5
0000419c: DUP2
0000419d: LT
0000419e: ISZERO
0000419f: PUSH2 0x13c6
000041a2: JUMPI
000041a3: PUSH1 0x40
000041a5: MLOAD
000041a6: PUSH4 0xcaf853f9
000041ab: PUSH1 0xe0
000041ad: SHL
000041ae: DUP2
000041af: MSTORE
000041b0: PUSH1 0x04
000041b2: DUP2
000041b3: ADD
000041b4: DUP7
000041b5: SWAP1
000041b6: MSTORE
000041b7: PUSH1 0x24
000041b9: DUP2
000041ba: ADD
000041bb: DUP3
000041bc: SWAP1
000041bd: MSTORE
000041be: PUSH1 0x44
000041c0: ADD
000041c1: PUSH2 0x115a
000041c4: JUMP
000041c5: JUMPDEST
000041c6: PUSH1 0x40
000041c8: MLOAD
000041c9: PUSH4 0x01abe889
000041ce: PUSH1 0xe2
000041d0: SHL
000041d1: DUP2
000041d2: MSTORE
000041d3: PUSH1 0x04
000041d5: DUP2
000041d6: ADD
000041d7: DUP6
000041d8: SWAP1
000041d9: MSTORE
000041da: PUSH1 0x24
000041dc: DUP2
000041dd: ADD
000041de: DUP5
000041df: SWAP1
000041e0: MSTORE
000041e1: PUSH1 0x01
000041e3: PUSH1 0x01
000041e5: PUSH1 0xa0
000041e7: SHL
000041e8: SUB
000041e9: DUP1
000041ea: DUP5
000041eb: AND
000041ec: PUSH1 0x44
000041ee: DUP4
000041ef: ADD
000041f0: MSTORE
000041f1: DUP1
000041f2: DUP4
000041f3: AND
000041f4: PUSH1 0x64
000041f6: DUP4
000041f7: ADD
000041f8: MSTORE
000041f9: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
0000421a: AND
0000421b: PUSH1 0x84
0000421d: DUP3
0000421e: ADD
0000421f: MSTORE
00004220: PUSH1 0x1e
00004222: PUSH1 0xa4
00004224: DUP3
00004225: ADD
00004226: MSTORE
00004227: PUSH1 0x02
00004229: PUSH1 0xc4
0000422b: DUP3
0000422c: ADD
0000422d: MSTORE
0000422e: PUSH20 0xd18bac6d95119237b225db48ec29155a8cd08743
00004243: SWAP1
00004244: PUSH4 0x06afa224
00004249: SWAP1
0000424a: PUSH1 0xe4
0000424c: ADD
0000424d: PUSH1 0x00
0000424f: PUSH1 0x40
00004251: MLOAD
00004252: DUP1
00004253: DUP4
00004254: SUB
00004255: DUP2
00004256: DUP7
00004257: DUP1
00004258: EXTCODESIZE
00004259: ISZERO
0000425a: DUP1
0000425b: ISZERO
0000425c: PUSH2 0x4264
0000425f: JUMPI
00004260: PUSH1 0x00
00004262: DUP1
00004263: REVERT
00004264: JUMPDEST
00004265: POP
00004266: GAS
00004267: DELEGATECALL
00004268: ISZERO
00004269: DUP1
0000426a: ISZERO
0000426b: PUSH2 0x4278
0000426e: JUMPI
0000426f: RETURNDATASIZE
00004270: PUSH1 0x00
00004272: DUP1
00004273: RETURNDATACOPY
00004274: RETURNDATASIZE
00004275: PUSH1 0x00
00004277: REVERT
00004278: JUMPDEST
00004279: POP
0000427a: POP
0000427b: POP
0000427c: POP
0000427d: POP
0000427e: POP
0000427f: POP
00004280: POP
00004281: JUMP
00004282: JUMPDEST
00004283: PUSH1 0x00
00004285: DUP2
00004286: ISZERO
00004287: PUSH2 0x0d62
0000428a: JUMPI
0000428b: PUSH2 0x4292
0000428e: PUSH2 0x1ea5
00004291: JUMP
00004292: JUMPDEST
00004293: PUSH2 0x42a4
00004296: JUMPI
00004297: PUSH2 0x429f
0000429a: DUP4
0000429b: PUSH2 0x232d
0000429e: JUMP
0000429f: JUMPDEST
000042a0: PUSH2 0x0df6
000042a3: JUMP
000042a4: JUMPDEST
000042a5: POP
000042a6: PUSH1 0x00
000042a8: SWAP3
000042a9: SWAP2
000042aa: POP
000042ab: POP
000042ac: JUMP
000042ad: JUMPDEST
000042ae: PUSH2 0x42fe
000042b1: PUSH1 0x40
000042b3: MLOAD
000042b4: DUP1
000042b5: PUSH2 0x0120
000042b8: ADD
000042b9: PUSH1 0x40
000042bb: MSTORE
000042bc: DUP1
000042bd: PUSH1 0x00
000042bf: ISZERO
000042c0: ISZERO
000042c1: DUP2
000042c2: MSTORE
000042c3: PUSH1 0x20
000042c5: ADD
000042c6: PUSH1 0x00
000042c8: DUP2
000042c9: MSTORE
000042ca: PUSH1 0x20
000042cc: ADD
000042cd: PUSH1 0x00
000042cf: DUP2
000042d0: MSTORE
000042d1: PUSH1 0x20
000042d3: ADD
000042d4: PUSH1 0x00
000042d6: DUP2
000042d7: MSTORE
000042d8: PUSH1 0x20
000042da: ADD
000042db: PUSH1 0x00
000042dd: DUP2
000042de: MSTORE
000042df: PUSH1 0x20
000042e1: ADD
000042e2: PUSH1 0x00
000042e4: DUP2
000042e5: MSTORE
000042e6: PUSH1 0x20
000042e8: ADD
000042e9: PUSH1 0x00
000042eb: DUP2
000042ec: MSTORE
000042ed: PUSH1 0x20
000042ef: ADD
000042f0: PUSH1 0x00
000042f2: DUP2
000042f3: MSTORE
000042f4: PUSH1 0x20
000042f6: ADD
000042f7: PUSH1 0x00
000042f9: DUP2
000042fa: MSTORE
000042fb: POP
000042fc: SWAP1
000042fd: JUMP
000042fe: JUMPDEST
000042ff: PUSH1 0x40
00004301: DUP5
00004302: ADD
00004303: MLOAD
00004304: ISZERO
00004305: DUP1
00004306: ISZERO
00004307: PUSH2 0x4312
0000430a: JUMPI
0000430b: POP
0000430c: PUSH1 0xa0
0000430e: DUP5
0000430f: ADD
00004310: MLOAD
00004311: ISZERO
00004312: JUMPDEST
00004313: ISZERO
00004314: PUSH2 0x4330
00004317: JUMPI
00004318: PUSH1 0x40
0000431a: MLOAD
0000431b: PUSH4 0x5435b289
00004320: PUSH1 0xe1
00004322: SHL
00004323: DUP2
00004324: MSTORE
00004325: PUSH1 0x04
00004327: ADD
00004328: PUSH1 0x40
0000432a: MLOAD
0000432b: DUP1
0000432c: SWAP2
0000432d: SUB
0000432e: SWAP1
0000432f: REVERT
00004330: JUMPDEST
00004331: DUP4
00004332: PUSH1 0x60
00004334: ADD
00004335: MLOAD
00004336: PUSH1 0x01
00004338: PUSH1 0x01
0000433a: PUSH1 0xa0
0000433c: SHL
0000433d: SUB
0000433e: AND
0000433f: DUP5
00004340: PUSH1 0x00
00004342: ADD
00004343: MLOAD
00004344: PUSH1 0x01
00004346: PUSH1 0x01
00004348: PUSH1 0xa0
0000434a: SHL
0000434b: SUB
0000434c: AND
0000434d: SUB
0000434e: PUSH2 0x437b
00004351: JUMPI
00004352: PUSH1 0x60
00004354: DUP5
00004355: ADD
00004356: MLOAD
00004357: PUSH1 0x40
00004359: MLOAD
0000435a: PUSH4 0x0936a725
0000435f: PUSH1 0xe3
00004361: SHL
00004362: DUP2
00004363: MSTORE
00004364: PUSH1 0x01
00004366: PUSH1 0x01
00004368: PUSH1 0xa0
0000436a: SHL
0000436b: SUB
0000436c: SWAP1
0000436d: SWAP2
0000436e: AND
0000436f: PUSH1 0x04
00004371: DUP3
00004372: ADD
00004373: MSTORE
00004374: PUSH1 0x24
00004376: ADD
00004377: PUSH2 0x115a
0000437a: JUMP
0000437b: JUMPDEST
0000437c: PUSH1 0x26
0000437e: SLOAD
0000437f: PUSH1 0x40
00004381: MLOAD
00004382: PUSH4 0x02e76947
00004387: PUSH1 0xe2
00004389: SHL
0000438a: DUP2
0000438b: MSTORE
0000438c: PUSH1 0x00
0000438e: SWAP2
0000438f: PUSH1 0x01
00004391: PUSH1 0x01
00004393: PUSH1 0xa0
00004395: SHL
00004396: SUB
00004397: AND
00004398: SWAP1
00004399: PUSH4 0x0b9da51c
0000439e: SWAP1
0000439f: PUSH2 0x43ac
000043a2: SWAP1
000043a3: DUP9
000043a4: SWAP1
000043a5: PUSH1 0x04
000043a7: ADD
000043a8: PUSH2 0x54d5
000043ab: JUMP
000043ac: JUMPDEST
000043ad: PUSH2 0x0160
000043b0: PUSH1 0x40
000043b2: MLOAD
000043b3: DUP1
000043b4: DUP4
000043b5: SUB
000043b6: DUP2
000043b7: PUSH1 0x00
000043b9: DUP8
000043ba: GAS
000043bb: CALL
000043bc: ISZERO
000043bd: DUP1
000043be: ISZERO
000043bf: PUSH2 0x43cc
000043c2: JUMPI
000043c3: RETURNDATASIZE
000043c4: PUSH1 0x00
000043c6: DUP1
000043c7: RETURNDATACOPY
000043c8: RETURNDATASIZE
000043c9: PUSH1 0x00
000043cb: REVERT
000043cc: JUMPDEST
000043cd: POP
000043ce: POP
000043cf: POP
000043d0: POP
000043d1: PUSH1 0x40
000043d3: MLOAD
000043d4: RETURNDATASIZE
000043d5: PUSH1 0x1f
000043d7: NOT
000043d8: PUSH1 0x1f
000043da: DUP3
000043db: ADD
000043dc: AND
000043dd: DUP3
000043de: ADD
000043df: DUP1
000043e0: PUSH1 0x40
000043e2: MSTORE
000043e3: POP
000043e4: DUP2
000043e5: ADD
000043e6: SWAP1
000043e7: PUSH2 0x43f0
000043ea: SWAP2
000043eb: SWAP1
000043ec: PUSH2 0x5557
000043ef: JUMP
000043f0: JUMPDEST
000043f1: PUSH1 0x60
000043f3: DUP1
000043f4: DUP8
000043f5: ADD
000043f6: MLOAD
000043f7: PUSH1 0x01
000043f9: PUSH1 0x01
000043fb: PUSH1 0xa0
000043fd: SHL
000043fe: SUB
000043ff: SWAP1
00004400: DUP2
00004401: AND
00004402: PUSH1 0x00
00004404: SWAP1
00004405: DUP2
00004406: MSTORE
00004407: PUSH1 0x0c
00004409: PUSH1 0x20
0000440b: SWAP1
0000440c: DUP2
0000440d: MSTORE
0000440e: PUSH1 0x40
00004410: DUP1
00004411: DUP4
00004412: KECCAK256
00004413: DUP12
00004414: MLOAD
00004415: DUP6
00004416: AND
00004417: DUP5
00004418: MSTORE
00004419: SWAP3
0000441a: DUP2
0000441b: SWAP1
0000441c: KECCAK256
0000441d: PUSH1 0x26
0000441f: SLOAD
00004420: DUP3
00004421: MLOAD
00004422: PUSH1 0x80
00004424: DUP2
00004425: ADD
00004426: DUP5
00004427: MSTORE
00004428: PUSH1 0x1e
0000442a: SLOAD
0000442b: DUP2
0000442c: MSTORE
0000442d: PUSH1 0x1f
0000442f: SLOAD
00004430: SWAP5
00004431: DUP2
00004432: ADD
00004433: SWAP5
00004434: SWAP1
00004435: SWAP5
00004436: MSTORE
00004437: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00004458: DUP7
00004459: AND
0000445a: DUP5
0000445b: DUP5
0000445c: ADD
0000445d: MSTORE
0000445e: PUSH1 0x0d
00004460: SLOAD
00004461: PUSH1 0xff
00004463: AND
00004464: ISZERO
00004465: ISZERO
00004466: SWAP7
00004467: DUP5
00004468: ADD
00004469: SWAP7
0000446a: SWAP1
0000446b: SWAP7
0000446c: MSTORE
0000446d: SWAP1
0000446e: MLOAD
0000446f: PUSH4 0xd3f34d29
00004474: PUSH1 0xe0
00004476: SHL
00004477: DUP2
00004478: MSTORE
00004479: SWAP6
0000447a: SWAP7
0000447b: POP
0000447c: PUSH20 0xd18bac6d95119237b225db48ec29155a8cd08743
00004491: SWAP6
00004492: PUSH4 0xd3f34d29
00004497: SWAP6
00004498: PUSH2 0x44b4
0000449b: SWAP6
0000449c: SWAP3
0000449d: SWAP4
0000449e: DUP15
0000449f: SWAP4
000044a0: DUP15
000044a1: SWAP4
000044a2: DUP12
000044a3: SWAP4
000044a4: SWAP1
000044a5: SWAP2
000044a6: AND
000044a7: SWAP2
000044a8: SWAP1
000044a9: DUP15
000044aa: SWAP1
000044ab: DUP15
000044ac: SWAP1
000044ad: PUSH1 0x04
000044af: ADD
000044b0: PUSH2 0x561a
000044b3: JUMP
000044b4: JUMPDEST
000044b5: PUSH2 0x0120
000044b8: PUSH1 0x40
000044ba: MLOAD
000044bb: DUP1
000044bc: DUP4
000044bd: SUB
000044be: DUP2
000044bf: DUP7
000044c0: GAS
000044c1: DELEGATECALL
000044c2: ISZERO
000044c3: DUP1
000044c4: ISZERO
000044c5: PUSH2 0x44d2
000044c8: JUMPI
000044c9: RETURNDATASIZE
000044ca: PUSH1 0x00
000044cc: DUP1
000044cd: RETURNDATACOPY
000044ce: RETURNDATASIZE
000044cf: PUSH1 0x00
000044d1: REVERT
000044d2: JUMPDEST
000044d3: POP
000044d4: POP
000044d5: POP
000044d6: POP
000044d7: PUSH1 0x40
000044d9: MLOAD
000044da: RETURNDATASIZE
000044db: PUSH1 0x1f
000044dd: NOT
000044de: PUSH1 0x1f
000044e0: DUP3
000044e1: ADD
000044e2: AND
000044e3: DUP3
000044e4: ADD
000044e5: DUP1
000044e6: PUSH1 0x40
000044e8: MSTORE
000044e9: POP
000044ea: DUP2
000044eb: ADD
000044ec: SWAP1
000044ed: PUSH2 0x3d3c
000044f0: SWAP2
000044f1: SWAP1
000044f2: PUSH2 0x525c
000044f5: JUMP
000044f6: JUMPDEST
000044f7: PUSH1 0x60
000044f9: DUP2
000044fa: PUSH1 0x00
000044fc: ADD
000044fd: DUP1
000044fe: SLOAD
000044ff: DUP1
00004500: PUSH1 0x20
00004502: MUL
00004503: PUSH1 0x20
00004505: ADD
00004506: PUSH1 0x40
00004508: MLOAD
00004509: SWAP1
0000450a: DUP2
0000450b: ADD
0000450c: PUSH1 0x40
0000450e: MSTORE
0000450f: DUP1
00004510: SWAP3
00004511: SWAP2
00004512: SWAP1
00004513: DUP2
00004514: DUP2
00004515: MSTORE
00004516: PUSH1 0x20
00004518: ADD
00004519: DUP3
0000451a: DUP1
0000451b: SLOAD
0000451c: DUP1
0000451d: ISZERO
0000451e: PUSH2 0x4546
00004521: JUMPI
00004522: PUSH1 0x20
00004524: MUL
00004525: DUP3
00004526: ADD
00004527: SWAP2
00004528: SWAP1
00004529: PUSH1 0x00
0000452b: MSTORE
0000452c: PUSH1 0x20
0000452e: PUSH1 0x00
00004530: KECCAK256
00004531: SWAP1
00004532: JUMPDEST
00004533: DUP2
00004534: SLOAD
00004535: DUP2
00004536: MSTORE
00004537: PUSH1 0x20
00004539: ADD
0000453a: SWAP1
0000453b: PUSH1 0x01
0000453d: ADD
0000453e: SWAP1
0000453f: DUP1
00004540: DUP4
00004541: GT
00004542: PUSH2 0x4532
00004545: JUMPI
00004546: JUMPDEST
00004547: POP
00004548: POP
00004549: POP
0000454a: POP
0000454b: POP
0000454c: SWAP1
0000454d: POP
0000454e: SWAP2
0000454f: SWAP1
00004550: POP
00004551: JUMP
00004552: JUMPDEST
00004553: PUSH1 0x00
00004555: DUP2
00004556: DUP2
00004557: MSTORE
00004558: PUSH1 0x01
0000455a: DUP4
0000455b: ADD
0000455c: PUSH1 0x20
0000455e: MSTORE
0000455f: PUSH1 0x40
00004561: DUP2
00004562: KECCAK256
00004563: SLOAD
00004564: PUSH2 0x4599
00004567: JUMPI
00004568: POP
00004569: DUP2
0000456a: SLOAD
0000456b: PUSH1 0x01
0000456d: DUP2
0000456e: DUP2
0000456f: ADD
00004570: DUP5
00004571: SSTORE
00004572: PUSH1 0x00
00004574: DUP5
00004575: DUP2
00004576: MSTORE
00004577: PUSH1 0x20
00004579: DUP1
0000457a: DUP3
0000457b: KECCAK256
0000457c: SWAP1
0000457d: SWAP4
0000457e: ADD
0000457f: DUP5
00004580: SWAP1
00004581: SSTORE
00004582: DUP5
00004583: SLOAD
00004584: DUP5
00004585: DUP3
00004586: MSTORE
00004587: DUP3
00004588: DUP7
00004589: ADD
0000458a: SWAP1
0000458b: SWAP4
0000458c: MSTORE
0000458d: PUSH1 0x40
0000458f: SWAP1
00004590: KECCAK256
00004591: SWAP2
00004592: SWAP1
00004593: SWAP2
00004594: SSTORE
00004595: PUSH2 0x0d62
00004598: JUMP
00004599: JUMPDEST
0000459a: POP
0000459b: PUSH1 0x00
0000459d: PUSH2 0x0d62
000045a0: JUMP
000045a1: JUMPDEST
000045a2: PUSH1 0x00
000045a4: DUP1
000045a5: DUP1
000045a6: PUSH1 0x00
000045a8: NOT
000045a9: DUP6
000045aa: DUP8
000045ab: MULMOD
000045ac: DUP6
000045ad: DUP8
000045ae: MUL
000045af: SWAP3
000045b0: POP
000045b1: DUP3
000045b2: DUP2
000045b3: LT
000045b4: DUP4
000045b5: DUP3
000045b6: SUB
000045b7: SUB
000045b8: SWAP2
000045b9: POP
000045ba: POP
000045bb: DUP1
000045bc: PUSH1 0x00
000045be: SUB
000045bf: PUSH2 0x45db
000045c2: JUMPI
000045c3: DUP4
000045c4: DUP3
000045c5: DUP2
000045c6: PUSH2 0x45d1
000045c9: JUMPI
000045ca: PUSH2 0x45d1
000045cd: PUSH2 0x5508
000045d0: JUMP
000045d1: JUMPDEST
000045d2: DIV
000045d3: SWAP3
000045d4: POP
000045d5: POP
000045d6: POP
000045d7: PUSH2 0x0df6
000045da: JUMP
000045db: JUMPDEST
000045dc: DUP1
000045dd: DUP5
000045de: GT
000045df: PUSH2 0x45e7
000045e2: JUMPI
000045e3: PUSH1 0x00
000045e5: DUP1
000045e6: REVERT
000045e7: JUMPDEST
000045e8: PUSH1 0x00
000045ea: DUP5
000045eb: DUP7
000045ec: DUP9
000045ed: MULMOD
000045ee: PUSH1 0x02
000045f0: PUSH1 0x01
000045f2: DUP8
000045f3: NOT
000045f4: DUP2
000045f5: ADD
000045f6: DUP9
000045f7: AND
000045f8: SWAP8
000045f9: DUP9
000045fa: SWAP1
000045fb: DIV
000045fc: PUSH1 0x03
000045fe: DUP2
000045ff: MUL
00004600: DUP4
00004601: XOR
00004602: DUP1
00004603: DUP3
00004604: MUL
00004605: DUP5
00004606: SUB
00004607: MUL
00004608: DUP1
00004609: DUP3
0000460a: MUL
0000460b: DUP5
0000460c: SUB
0000460d: MUL
0000460e: DUP1
0000460f: DUP3
00004610: MUL
00004611: DUP5
00004612: SUB
00004613: MUL
00004614: DUP1
00004615: DUP3
00004616: MUL
00004617: DUP5
00004618: SUB
00004619: MUL
0000461a: DUP1
0000461b: DUP3
0000461c: MUL
0000461d: DUP5
0000461e: SUB
0000461f: MUL
00004620: SWAP1
00004621: DUP2
00004622: MUL
00004623: SWAP1
00004624: SWAP3
00004625: SUB
00004626: SWAP1
00004627: SWAP2
00004628: MUL
00004629: PUSH1 0x00
0000462b: DUP9
0000462c: SWAP1
0000462d: SUB
0000462e: DUP9
0000462f: SWAP1
00004630: DIV
00004631: SWAP1
00004632: SWAP2
00004633: ADD
00004634: DUP6
00004635: DUP4
00004636: GT
00004637: SWAP1
00004638: SWAP5
00004639: SUB
0000463a: SWAP4
0000463b: SWAP1
0000463c: SWAP4
0000463d: MUL
0000463e: SWAP4
0000463f: SUB
00004640: SWAP5
00004641: SWAP1
00004642: SWAP5
00004643: DIV
00004644: SWAP2
00004645: SWAP1
00004646: SWAP2
00004647: OR
00004648: MUL
00004649: SWAP5
0000464a: SWAP4
0000464b: POP
0000464c: POP
0000464d: POP
0000464e: POP
0000464f: JUMP
00004650: JUMPDEST
00004651: PUSH1 0x40
00004653: MLOAD
00004654: PUSH4 0x2a36b439
00004659: PUSH1 0xe2
0000465b: SHL
0000465c: DUP2
0000465d: MSTORE
0000465e: PUSH1 0x04
00004660: DUP2
00004661: ADD
00004662: DUP5
00004663: SWAP1
00004664: MSTORE
00004665: PUSH1 0x24
00004667: DUP2
00004668: ADD
00004669: DUP4
0000466a: SWAP1
0000466b: MSTORE
0000466c: PUSH1 0x14
0000466e: PUSH1 0x44
00004670: DUP3
00004671: ADD
00004672: MSTORE
00004673: PUSH1 0x02
00004675: PUSH1 0x64
00004677: DUP3
00004678: ADD
00004679: MSTORE
0000467a: DUP2
0000467b: ISZERO
0000467c: ISZERO
0000467d: PUSH1 0x84
0000467f: DUP3
00004680: ADD
00004681: MSTORE
00004682: PUSH1 0x00
00004684: SWAP1
00004685: PUSH20 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea
0000469a: SWAP1
0000469b: PUSH4 0xa8dad0e4
000046a0: SWAP1
000046a1: PUSH1 0xa4
000046a3: ADD
000046a4: PUSH1 0x20
000046a6: PUSH1 0x40
000046a8: MLOAD
000046a9: DUP1
000046aa: DUP4
000046ab: SUB
000046ac: DUP2
000046ad: DUP7
000046ae: GAS
000046af: DELEGATECALL
000046b0: ISZERO
000046b1: DUP1
000046b2: ISZERO
000046b3: PUSH2 0x46c0
000046b6: JUMPI
000046b7: RETURNDATASIZE
000046b8: PUSH1 0x00
000046ba: DUP1
000046bb: RETURNDATACOPY
000046bc: RETURNDATASIZE
000046bd: PUSH1 0x00
000046bf: REVERT
000046c0: JUMPDEST
000046c1: POP
000046c2: POP
000046c3: POP
000046c4: POP
000046c5: PUSH1 0x40
000046c7: MLOAD
000046c8: RETURNDATASIZE
000046c9: PUSH1 0x1f
000046cb: NOT
000046cc: PUSH1 0x1f
000046ce: DUP3
000046cf: ADD
000046d0: AND
000046d1: DUP3
000046d2: ADD
000046d3: DUP1
000046d4: PUSH1 0x40
000046d6: MSTORE
000046d7: POP
000046d8: DUP2
000046d9: ADD
000046da: SWAP1
000046db: PUSH2 0x10b9
000046de: SWAP2
000046df: SWAP1
000046e0: PUSH2 0x4f7e
000046e3: JUMP
000046e4: JUMPDEST
000046e5: PUSH1 0x00
000046e7: DUP2
000046e8: MLOAD
000046e9: DUP1
000046ea: DUP5
000046eb: MSTORE
000046ec: PUSH1 0x00
000046ee: JUMPDEST
000046ef: DUP2
000046f0: DUP2
000046f1: LT
000046f2: ISZERO
000046f3: PUSH2 0x470a
000046f6: JUMPI
000046f7: PUSH1 0x20
000046f9: DUP2
000046fa: DUP6
000046fb: ADD
000046fc: DUP2
000046fd: ADD
000046fe: MLOAD
000046ff: DUP7
00004700: DUP4
00004701: ADD
00004702: DUP3
00004703: ADD
00004704: MSTORE
00004705: ADD
00004706: PUSH2 0x46ee
00004709: JUMP
0000470a: JUMPDEST
0000470b: POP
0000470c: PUSH1 0x00
0000470e: PUSH1 0x20
00004710: DUP3
00004711: DUP7
00004712: ADD
00004713: ADD
00004714: MSTORE
00004715: PUSH1 0x20
00004717: PUSH1 0x1f
00004719: NOT
0000471a: PUSH1 0x1f
0000471c: DUP4
0000471d: ADD
0000471e: AND
0000471f: DUP6
00004720: ADD
00004721: ADD
00004722: SWAP2
00004723: POP
00004724: POP
00004725: SWAP3
00004726: SWAP2
00004727: POP
00004728: POP
00004729: JUMP
0000472a: JUMPDEST
0000472b: PUSH1 0x20
0000472d: DUP2
0000472e: MSTORE
0000472f: PUSH1 0x00
00004731: PUSH2 0x0df6
00004734: PUSH1 0x20
00004736: DUP4
00004737: ADD
00004738: DUP5
00004739: PUSH2 0x46e4
0000473c: JUMP
0000473d: JUMPDEST
0000473e: PUSH1 0x00
00004740: PUSH1 0x20
00004742: DUP3
00004743: DUP5
00004744: SUB
00004745: SLT
00004746: ISZERO
00004747: PUSH2 0x474f
0000474a: JUMPI
0000474b: PUSH1 0x00
0000474d: DUP1
0000474e: REVERT
0000474f: JUMPDEST
00004750: POP
00004751: CALLDATALOAD
00004752: SWAP2
00004753: SWAP1
00004754: POP
00004755: JUMP
00004756: JUMPDEST
00004757: PUSH1 0x01
00004759: PUSH1 0x01
0000475b: PUSH1 0xa0
0000475d: SHL
0000475e: SUB
0000475f: DUP2
00004760: AND
00004761: DUP2
00004762: EQ
00004763: PUSH2 0x1e96
00004766: JUMPI
00004767: PUSH1 0x00
00004769: DUP1
0000476a: REVERT
0000476b: JUMPDEST
0000476c: PUSH1 0x00
0000476e: DUP1
0000476f: PUSH1 0x40
00004771: DUP4
00004772: DUP6
00004773: SUB
00004774: SLT
00004775: ISZERO
00004776: PUSH2 0x477e
00004779: JUMPI
0000477a: PUSH1 0x00
0000477c: DUP1
0000477d: REVERT
0000477e: JUMPDEST
0000477f: DUP3
00004780: CALLDATALOAD
00004781: PUSH2 0x4789
00004784: DUP2
00004785: PUSH2 0x4756
00004788: JUMP
00004789: JUMPDEST
0000478a: SWAP5
0000478b: PUSH1 0x20
0000478d: SWAP4
0000478e: SWAP1
0000478f: SWAP4
00004790: ADD
00004791: CALLDATALOAD
00004792: SWAP4
00004793: POP
00004794: POP
00004795: POP
00004796: JUMP
00004797: JUMPDEST
00004798: PUSH1 0x20
0000479a: DUP1
0000479b: DUP3
0000479c: MSTORE
0000479d: DUP3
0000479e: MLOAD
0000479f: DUP3
000047a0: DUP3
000047a1: ADD
000047a2: DUP2
000047a3: SWAP1
000047a4: MSTORE
000047a5: PUSH1 0x00
000047a7: SWAP2
000047a8: SWAP1
000047a9: DUP5
000047aa: DUP3
000047ab: ADD
000047ac: SWAP1
000047ad: PUSH1 0x40
000047af: DUP6
000047b0: ADD
000047b1: SWAP1
000047b2: DUP5
000047b3: JUMPDEST
000047b4: DUP2
000047b5: DUP2
000047b6: LT
000047b7: ISZERO
000047b8: PUSH2 0x47d8
000047bb: JUMPI
000047bc: DUP4
000047bd: MLOAD
000047be: PUSH1 0x01
000047c0: PUSH1 0x01
000047c2: PUSH1 0xa0
000047c4: SHL
000047c5: SUB
000047c6: AND
000047c7: DUP4
000047c8: MSTORE
000047c9: SWAP3
000047ca: DUP5
000047cb: ADD
000047cc: SWAP3
000047cd: SWAP2
000047ce: DUP5
000047cf: ADD
000047d0: SWAP2
000047d1: PUSH1 0x01
000047d3: ADD
000047d4: PUSH2 0x47b3
000047d7: JUMP
000047d8: JUMPDEST
000047d9: POP
000047da: SWAP1
000047db: SWAP7
000047dc: SWAP6
000047dd: POP
000047de: POP
000047df: POP
000047e0: POP
000047e1: POP
000047e2: POP
000047e3: JUMP
000047e4: JUMPDEST
000047e5: PUSH1 0x00
000047e7: PUSH1 0x20
000047e9: DUP3
000047ea: DUP5
000047eb: SUB
000047ec: SLT
000047ed: ISZERO
000047ee: PUSH2 0x47f6
000047f1: JUMPI
000047f2: PUSH1 0x00
000047f4: DUP1
000047f5: REVERT
000047f6: JUMPDEST
000047f7: DUP2
000047f8: CALLDATALOAD
000047f9: PUSH2 0x0df6
000047fc: DUP2
000047fd: PUSH2 0x4756
00004800: JUMP
00004801: JUMPDEST
00004802: PUSH1 0x00
00004804: DUP1
00004805: PUSH1 0x00
00004807: PUSH1 0x60
00004809: DUP5
0000480a: DUP7
0000480b: SUB
0000480c: SLT
0000480d: ISZERO
0000480e: PUSH2 0x4816
00004811: JUMPI
00004812: PUSH1 0x00
00004814: DUP1
00004815: REVERT
00004816: JUMPDEST
00004817: DUP4
00004818: CALLDATALOAD
00004819: PUSH2 0x4821
0000481c: DUP2
0000481d: PUSH2 0x4756
00004820: JUMP
00004821: JUMPDEST
00004822: SWAP3
00004823: POP
00004824: PUSH1 0x20
00004826: DUP5
00004827: ADD
00004828: CALLDATALOAD
00004829: PUSH2 0x4831
0000482c: DUP2
0000482d: PUSH2 0x4756
00004830: JUMP
00004831: JUMPDEST
00004832: SWAP3
00004833: SWAP6
00004834: SWAP3
00004835: SWAP5
00004836: POP
00004837: POP
00004838: POP
00004839: PUSH1 0x40
0000483b: SWAP2
0000483c: SWAP1
0000483d: SWAP2
0000483e: ADD
0000483f: CALLDATALOAD
00004840: SWAP1
00004841: JUMP
00004842: JUMPDEST
00004843: PUSH4 0x4e487b71
00004848: PUSH1 0xe0
0000484a: SHL
0000484b: PUSH1 0x00
0000484d: MSTORE
0000484e: PUSH1 0x41
00004850: PUSH1 0x04
00004852: MSTORE
00004853: PUSH1 0x24
00004855: PUSH1 0x00
00004857: REVERT
00004858: JUMPDEST
00004859: PUSH1 0x40
0000485b: MLOAD
0000485c: PUSH1 0xc0
0000485e: DUP2
0000485f: ADD
00004860: PUSH1 0x01
00004862: PUSH1 0x01
00004864: PUSH1 0x40
00004866: SHL
00004867: SUB
00004868: DUP2
00004869: GT
0000486a: DUP3
0000486b: DUP3
0000486c: LT
0000486d: OR
0000486e: ISZERO
0000486f: PUSH2 0x487a
00004872: JUMPI
00004873: PUSH2 0x487a
00004876: PUSH2 0x4842
00004879: JUMP
0000487a: JUMPDEST
0000487b: PUSH1 0x40
0000487d: MSTORE
0000487e: SWAP1
0000487f: JUMP
00004880: JUMPDEST
00004881: PUSH1 0x40
00004883: MLOAD
00004884: PUSH2 0x0120
00004887: DUP2
00004888: ADD
00004889: PUSH1 0x01
0000488b: PUSH1 0x01
0000488d: PUSH1 0x40
0000488f: SHL
00004890: SUB
00004891: DUP2
00004892: GT
00004893: DUP3
00004894: DUP3
00004895: LT
00004896: OR
00004897: ISZERO
00004898: PUSH2 0x487a
0000489b: JUMPI
0000489c: PUSH2 0x487a
0000489f: PUSH2 0x4842
000048a2: JUMP
000048a3: JUMPDEST
000048a4: PUSH1 0x40
000048a6: MLOAD
000048a7: PUSH2 0x0160
000048aa: DUP2
000048ab: ADD
000048ac: PUSH1 0x01
000048ae: PUSH1 0x01
000048b0: PUSH1 0x40
000048b2: SHL
000048b3: SUB
000048b4: DUP2
000048b5: GT
000048b6: DUP3
000048b7: DUP3
000048b8: LT
000048b9: OR
000048ba: ISZERO
000048bb: PUSH2 0x487a
000048be: JUMPI
000048bf: PUSH2 0x487a
000048c2: PUSH2 0x4842
000048c5: JUMP
000048c6: JUMPDEST
000048c7: PUSH1 0x40
000048c9: MLOAD
000048ca: PUSH1 0x1f
000048cc: DUP3
000048cd: ADD
000048ce: PUSH1 0x1f
000048d0: NOT
000048d1: AND
000048d2: DUP2
000048d3: ADD
000048d4: PUSH1 0x01
000048d6: PUSH1 0x01
000048d8: PUSH1 0x40
000048da: SHL
000048db: SUB
000048dc: DUP2
000048dd: GT
000048de: DUP3
000048df: DUP3
000048e0: LT
000048e1: OR
000048e2: ISZERO
000048e3: PUSH2 0x48ee
000048e6: JUMPI
000048e7: PUSH2 0x48ee
000048ea: PUSH2 0x4842
000048ed: JUMP
000048ee: JUMPDEST
000048ef: PUSH1 0x40
000048f1: MSTORE
000048f2: SWAP2
000048f3: SWAP1
000048f4: POP
000048f5: JUMP
000048f6: JUMPDEST
000048f7: PUSH1 0x00
000048f9: PUSH1 0x01
000048fb: PUSH1 0x01
000048fd: PUSH1 0x40
000048ff: SHL
00004900: SUB
00004901: DUP4
00004902: GT
00004903: ISZERO
00004904: PUSH2 0x490f
00004907: JUMPI
00004908: PUSH2 0x490f
0000490b: PUSH2 0x4842
0000490e: JUMP
0000490f: JUMPDEST
00004910: PUSH2 0x4922
00004913: PUSH1 0x1f
00004915: DUP5
00004916: ADD
00004917: PUSH1 0x1f
00004919: NOT
0000491a: AND
0000491b: PUSH1 0x20
0000491d: ADD
0000491e: PUSH2 0x48c6
00004921: JUMP
00004922: JUMPDEST
00004923: SWAP1
00004924: POP
00004925: DUP3
00004926: DUP2
00004927: MSTORE
00004928: DUP4
00004929: DUP4
0000492a: DUP4
0000492b: ADD
0000492c: GT
0000492d: ISZERO
0000492e: PUSH2 0x4936
00004931: JUMPI
00004932: PUSH1 0x00
00004934: DUP1
00004935: REVERT
00004936: JUMPDEST
00004937: DUP3
00004938: DUP3
00004939: PUSH1 0x20
0000493b: DUP4
0000493c: ADD
0000493d: CALLDATACOPY
0000493e: PUSH1 0x00
00004940: PUSH1 0x20
00004942: DUP5
00004943: DUP4
00004944: ADD
00004945: ADD
00004946: MSTORE
00004947: SWAP4
00004948: SWAP3
00004949: POP
0000494a: POP
0000494b: POP
0000494c: JUMP
0000494d: JUMPDEST
0000494e: PUSH1 0x00
00004950: DUP3
00004951: PUSH1 0x1f
00004953: DUP4
00004954: ADD
00004955: SLT
00004956: PUSH2 0x495e
00004959: JUMPI
0000495a: PUSH1 0x00
0000495c: DUP1
0000495d: REVERT
0000495e: JUMPDEST
0000495f: PUSH2 0x0df6
00004962: DUP4
00004963: DUP4
00004964: CALLDATALOAD
00004965: PUSH1 0x20
00004967: DUP6
00004968: ADD
00004969: PUSH2 0x48f6
0000496c: JUMP
0000496d: JUMPDEST
0000496e: PUSH1 0x00
00004970: DUP1
00004971: PUSH1 0x00
00004973: DUP1
00004974: PUSH1 0x80
00004976: DUP6
00004977: DUP8
00004978: SUB
00004979: SLT
0000497a: ISZERO
0000497b: PUSH2 0x4983
0000497e: JUMPI
0000497f: PUSH1 0x00
00004981: DUP1
00004982: REVERT
00004983: JUMPDEST
00004984: DUP5
00004985: CALLDATALOAD
00004986: PUSH2 0x498e
00004989: DUP2
0000498a: PUSH2 0x4756
0000498d: JUMP
0000498e: JUMPDEST
0000498f: SWAP4
00004990: POP
00004991: PUSH1 0x20
00004993: DUP6
00004994: ADD
00004995: CALLDATALOAD
00004996: PUSH1 0x01
00004998: PUSH1 0x01
0000499a: PUSH1 0x40
0000499c: SHL
0000499d: SUB
0000499e: DUP1
0000499f: DUP3
000049a0: GT
000049a1: ISZERO
000049a2: PUSH2 0x49aa
000049a5: JUMPI
000049a6: PUSH1 0x00
000049a8: DUP1
000049a9: REVERT
000049aa: JUMPDEST
000049ab: PUSH2 0x49b6
000049ae: DUP9
000049af: DUP4
000049b0: DUP10
000049b1: ADD
000049b2: PUSH2 0x494d
000049b5: JUMP
000049b6: JUMPDEST
000049b7: SWAP5
000049b8: POP
000049b9: PUSH1 0x40
000049bb: DUP8
000049bc: ADD
000049bd: CALLDATALOAD
000049be: SWAP2
000049bf: POP
000049c0: DUP1
000049c1: DUP3
000049c2: GT
000049c3: ISZERO
000049c4: PUSH2 0x49cc
000049c7: JUMPI
000049c8: PUSH1 0x00
000049ca: DUP1
000049cb: REVERT
000049cc: JUMPDEST
000049cd: PUSH2 0x49d8
000049d0: DUP9
000049d1: DUP4
000049d2: DUP10
000049d3: ADD
000049d4: PUSH2 0x494d
000049d7: JUMP
000049d8: JUMPDEST
000049d9: SWAP4
000049da: POP
000049db: PUSH1 0x60
000049dd: DUP8
000049de: ADD
000049df: CALLDATALOAD
000049e0: SWAP2
000049e1: POP
000049e2: DUP1
000049e3: DUP3
000049e4: GT
000049e5: ISZERO
000049e6: PUSH2 0x49ee
000049e9: JUMPI
000049ea: PUSH1 0x00
000049ec: DUP1
000049ed: REVERT
000049ee: JUMPDEST
000049ef: POP
000049f0: DUP6
000049f1: ADD
000049f2: PUSH1 0x1f
000049f4: DUP2
000049f5: ADD
000049f6: DUP8
000049f7: SGT
000049f8: PUSH2 0x4a00
000049fb: JUMPI
000049fc: PUSH1 0x00
000049fe: DUP1
000049ff: REVERT
00004a00: JUMPDEST
00004a01: PUSH2 0x4a0f
00004a04: DUP8
00004a05: DUP3
00004a06: CALLDATALOAD
00004a07: PUSH1 0x20
00004a09: DUP5
00004a0a: ADD
00004a0b: PUSH2 0x48f6
00004a0e: JUMP
00004a0f: JUMPDEST
00004a10: SWAP2
00004a11: POP
00004a12: POP
00004a13: SWAP3
00004a14: SWAP6
00004a15: SWAP2
00004a16: SWAP5
00004a17: POP
00004a18: SWAP3
00004a19: POP
00004a1a: JUMP
00004a1b: JUMPDEST
00004a1c: PUSH1 0x03
00004a1e: DUP2
00004a1f: LT
00004a20: PUSH2 0x1e96
00004a23: JUMPI
00004a24: PUSH1 0x00
00004a26: DUP1
00004a27: REVERT
00004a28: JUMPDEST
00004a29: PUSH1 0x00
00004a2b: PUSH1 0x20
00004a2d: DUP3
00004a2e: DUP5
00004a2f: SUB
00004a30: SLT
00004a31: ISZERO
00004a32: PUSH2 0x4a3a
00004a35: JUMPI
00004a36: PUSH1 0x00
00004a38: DUP1
00004a39: REVERT
00004a3a: JUMPDEST
00004a3b: DUP2
00004a3c: CALLDATALOAD
00004a3d: PUSH2 0x0df6
00004a40: DUP2
00004a41: PUSH2 0x4a1b
00004a44: JUMP
00004a45: JUMPDEST
00004a46: DUP2
00004a47: MLOAD
00004a48: PUSH1 0x01
00004a4a: PUSH1 0x01
00004a4c: PUSH1 0xa0
00004a4e: SHL
00004a4f: SUB
00004a50: AND
00004a51: DUP2
00004a52: MSTORE
00004a53: PUSH2 0x0140
00004a56: DUP2
00004a57: ADD
00004a58: PUSH1 0x20
00004a5a: DUP4
00004a5b: ADD
00004a5c: MLOAD
00004a5d: PUSH1 0x20
00004a5f: DUP4
00004a60: ADD
00004a61: MSTORE
00004a62: PUSH1 0x40
00004a64: DUP4
00004a65: ADD
00004a66: MLOAD
00004a67: PUSH1 0x40
00004a69: DUP4
00004a6a: ADD
00004a6b: MSTORE
00004a6c: PUSH1 0x60
00004a6e: DUP4
00004a6f: ADD
00004a70: MLOAD
00004a71: PUSH1 0x60
00004a73: DUP4
00004a74: ADD
00004a75: MSTORE
00004a76: PUSH1 0x80
00004a78: DUP4
00004a79: ADD
00004a7a: MLOAD
00004a7b: PUSH2 0x4a8f
00004a7e: PUSH1 0x80
00004a80: DUP5
00004a81: ADD
00004a82: DUP3
00004a83: PUSH1 0x01
00004a85: PUSH1 0x01
00004a87: PUSH1 0xa0
00004a89: SHL
00004a8a: SUB
00004a8b: AND
00004a8c: SWAP1
00004a8d: MSTORE
00004a8e: JUMP
00004a8f: JUMPDEST
00004a90: POP
00004a91: PUSH1 0xa0
00004a93: DUP4
00004a94: ADD
00004a95: MLOAD
00004a96: PUSH1 0xa0
00004a98: DUP4
00004a99: ADD
00004a9a: MSTORE
00004a9b: PUSH1 0xc0
00004a9d: DUP4
00004a9e: ADD
00004a9f: MLOAD
00004aa0: PUSH1 0xc0
00004aa2: DUP4
00004aa3: ADD
00004aa4: MSTORE
00004aa5: PUSH1 0xe0
00004aa7: DUP4
00004aa8: ADD
00004aa9: MLOAD
00004aaa: PUSH1 0xe0
00004aac: DUP4
00004aad: ADD
00004aae: MSTORE
00004aaf: PUSH2 0x0100
00004ab2: DUP1
00004ab3: DUP5
00004ab4: ADD
00004ab5: MLOAD
00004ab6: DUP2
00004ab7: DUP5
00004ab8: ADD
00004ab9: MSTORE
00004aba: POP
00004abb: PUSH2 0x0120
00004abe: DUP1
00004abf: DUP5
00004ac0: ADD
00004ac1: MLOAD
00004ac2: PUSH2 0x4ace
00004ac5: DUP3
00004ac6: DUP6
00004ac7: ADD
00004ac8: DUP3
00004ac9: ISZERO
00004aca: ISZERO
00004acb: SWAP1
00004acc: MSTORE
00004acd: JUMP
00004ace: JUMPDEST
00004acf: POP
00004ad0: POP
00004ad1: SWAP3
00004ad2: SWAP2
00004ad3: POP
00004ad4: POP
00004ad5: JUMP
00004ad6: JUMPDEST
00004ad7: PUSH4 0x4e487b71
00004adc: PUSH1 0xe0
00004ade: SHL
00004adf: PUSH1 0x00
00004ae1: MSTORE
00004ae2: PUSH1 0x21
00004ae4: PUSH1 0x04
00004ae6: MSTORE
00004ae7: PUSH1 0x24
00004ae9: PUSH1 0x00
00004aeb: REVERT
00004aec: JUMPDEST
00004aed: PUSH1 0x03
00004aef: DUP2
00004af0: LT
00004af1: PUSH2 0x1e96
00004af4: JUMPI
00004af5: PUSH4 0x4e487b71
00004afa: PUSH1 0xe0
00004afc: SHL
00004afd: PUSH1 0x00
00004aff: MSTORE
00004b00: PUSH1 0x21
00004b02: PUSH1 0x04
00004b04: MSTORE
00004b05: PUSH1 0x24
00004b07: PUSH1 0x00
00004b09: REVERT
00004b0a: JUMPDEST
00004b0b: PUSH1 0x20
00004b0d: DUP2
00004b0e: ADD
00004b0f: PUSH2 0x4b17
00004b12: DUP4
00004b13: PUSH2 0x4aec
00004b16: JUMP
00004b17: JUMPDEST
00004b18: SWAP2
00004b19: SWAP1
00004b1a: MSTORE
00004b1b: SWAP1
00004b1c: JUMP
00004b1d: JUMPDEST
00004b1e: PUSH1 0x00
00004b20: DUP1
00004b21: PUSH1 0x00
00004b23: DUP1
00004b24: PUSH1 0x80
00004b26: DUP6
00004b27: DUP8
00004b28: SUB
00004b29: SLT
00004b2a: ISZERO
00004b2b: PUSH2 0x4b33
00004b2e: JUMPI
00004b2f: PUSH1 0x00
00004b31: DUP1
00004b32: REVERT
00004b33: JUMPDEST
00004b34: DUP5
00004b35: CALLDATALOAD
00004b36: SWAP4
00004b37: POP
00004b38: PUSH1 0x20
00004b3a: DUP6
00004b3b: ADD
00004b3c: CALLDATALOAD
00004b3d: SWAP3
00004b3e: POP
00004b3f: PUSH1 0x40
00004b41: DUP6
00004b42: ADD
00004b43: CALLDATALOAD
00004b44: SWAP2
00004b45: POP
00004b46: PUSH1 0x60
00004b48: DUP6
00004b49: ADD
00004b4a: CALLDATALOAD
00004b4b: PUSH2 0x4b53
00004b4e: DUP2
00004b4f: PUSH2 0x4a1b
00004b52: JUMP
00004b53: JUMPDEST
00004b54: SWAP4
00004b55: SWAP7
00004b56: SWAP3
00004b57: SWAP6
00004b58: POP
00004b59: SWAP1
00004b5a: SWAP4
00004b5b: POP
00004b5c: POP
00004b5d: JUMP
00004b5e: JUMPDEST
00004b5f: PUSH1 0x00
00004b61: DUP1
00004b62: DUP4
00004b63: PUSH1 0x1f
00004b65: DUP5
00004b66: ADD
00004b67: SLT
00004b68: PUSH2 0x4b70
00004b6b: JUMPI
00004b6c: PUSH1 0x00
00004b6e: DUP1
00004b6f: REVERT
00004b70: JUMPDEST
00004b71: POP
00004b72: DUP2
00004b73: CALLDATALOAD
00004b74: PUSH1 0x01
00004b76: PUSH1 0x01
00004b78: PUSH1 0x40
00004b7a: SHL
00004b7b: SUB
00004b7c: DUP2
00004b7d: GT
00004b7e: ISZERO
00004b7f: PUSH2 0x4b87
00004b82: JUMPI
00004b83: PUSH1 0x00
00004b85: DUP1
00004b86: REVERT
00004b87: JUMPDEST
00004b88: PUSH1 0x20
00004b8a: DUP4
00004b8b: ADD
00004b8c: SWAP2
00004b8d: POP
00004b8e: DUP4
00004b8f: PUSH1 0x20
00004b91: DUP3
00004b92: PUSH1 0x05
00004b94: SHL
00004b95: DUP6
00004b96: ADD
00004b97: ADD
00004b98: GT
00004b99: ISZERO
00004b9a: PUSH2 0x4ba2
00004b9d: JUMPI
00004b9e: PUSH1 0x00
00004ba0: DUP1
00004ba1: REVERT
00004ba2: JUMPDEST
00004ba3: SWAP3
00004ba4: POP
00004ba5: SWAP3
00004ba6: SWAP1
00004ba7: POP
00004ba8: JUMP
00004ba9: JUMPDEST
00004baa: PUSH1 0x00
00004bac: DUP1
00004bad: PUSH1 0x20
00004baf: DUP4
00004bb0: DUP6
00004bb1: SUB
00004bb2: SLT
00004bb3: ISZERO
00004bb4: PUSH2 0x4bbc
00004bb7: JUMPI
00004bb8: PUSH1 0x00
00004bba: DUP1
00004bbb: REVERT
00004bbc: JUMPDEST
00004bbd: DUP3
00004bbe: CALLDATALOAD
00004bbf: PUSH1 0x01
00004bc1: PUSH1 0x01
00004bc3: PUSH1 0x40
00004bc5: SHL
00004bc6: SUB
00004bc7: DUP2
00004bc8: GT
00004bc9: ISZERO
00004bca: PUSH2 0x4bd2
00004bcd: JUMPI
00004bce: PUSH1 0x00
00004bd0: DUP1
00004bd1: REVERT
00004bd2: JUMPDEST
00004bd3: PUSH2 0x4bde
00004bd6: DUP6
00004bd7: DUP3
00004bd8: DUP7
00004bd9: ADD
00004bda: PUSH2 0x4b5e
00004bdd: JUMP
00004bde: JUMPDEST
00004bdf: SWAP1
00004be0: SWAP7
00004be1: SWAP1
00004be2: SWAP6
00004be3: POP
00004be4: SWAP4
00004be5: POP
00004be6: POP
00004be7: POP
00004be8: POP
00004be9: JUMP
00004bea: JUMPDEST
00004beb: PUSH1 0x00
00004bed: DUP1
00004bee: PUSH1 0x40
00004bf0: DUP4
00004bf1: DUP6
00004bf2: SUB
00004bf3: SLT
00004bf4: ISZERO
00004bf5: PUSH2 0x4bfd
00004bf8: JUMPI
00004bf9: PUSH1 0x00
00004bfb: DUP1
00004bfc: REVERT
00004bfd: JUMPDEST
00004bfe: DUP3
00004bff: CALLDATALOAD
00004c00: SWAP2
00004c01: POP
00004c02: PUSH1 0x20
00004c04: DUP4
00004c05: ADD
00004c06: CALLDATALOAD
00004c07: PUSH2 0x4c0f
00004c0a: DUP2
00004c0b: PUSH2 0x4756
00004c0e: JUMP
00004c0f: JUMPDEST
00004c10: DUP1
00004c11: SWAP2
00004c12: POP
00004c13: POP
00004c14: SWAP3
00004c15: POP
00004c16: SWAP3
00004c17: SWAP1
00004c18: POP
00004c19: JUMP
00004c1a: JUMPDEST
00004c1b: DUP1
00004c1c: ISZERO
00004c1d: ISZERO
00004c1e: DUP2
00004c1f: EQ
00004c20: PUSH2 0x1e96
00004c23: JUMPI
00004c24: PUSH1 0x00
00004c26: DUP1
00004c27: REVERT
00004c28: JUMPDEST
00004c29: PUSH1 0x00
00004c2b: PUSH1 0x20
00004c2d: DUP3
00004c2e: DUP5
00004c2f: SUB
00004c30: SLT
00004c31: ISZERO
00004c32: PUSH2 0x4c3a
00004c35: JUMPI
00004c36: PUSH1 0x00
00004c38: DUP1
00004c39: REVERT
00004c3a: JUMPDEST
00004c3b: DUP2
00004c3c: CALLDATALOAD
00004c3d: PUSH2 0x0df6
00004c40: DUP2
00004c41: PUSH2 0x4c1a
00004c44: JUMP
00004c45: JUMPDEST
00004c46: PUSH1 0x00
00004c48: DUP1
00004c49: PUSH1 0x40
00004c4b: DUP4
00004c4c: DUP6
00004c4d: SUB
00004c4e: SLT
00004c4f: ISZERO
00004c50: PUSH2 0x4c58
00004c53: JUMPI
00004c54: PUSH1 0x00
00004c56: DUP1
00004c57: REVERT
00004c58: JUMPDEST
00004c59: DUP3
00004c5a: CALLDATALOAD
00004c5b: PUSH1 0x01
00004c5d: PUSH1 0x01
00004c5f: PUSH1 0x40
00004c61: SHL
00004c62: SUB
00004c63: DUP1
00004c64: DUP3
00004c65: GT
00004c66: ISZERO
00004c67: PUSH2 0x4c6f
00004c6a: JUMPI
00004c6b: PUSH1 0x00
00004c6d: DUP1
00004c6e: REVERT
00004c6f: JUMPDEST
00004c70: PUSH2 0x4c7b
00004c73: DUP7
00004c74: DUP4
00004c75: DUP8
00004c76: ADD
00004c77: PUSH2 0x494d
00004c7a: JUMP
00004c7b: JUMPDEST
00004c7c: SWAP4
00004c7d: POP
00004c7e: PUSH1 0x20
00004c80: DUP6
00004c81: ADD
00004c82: CALLDATALOAD
00004c83: SWAP2
00004c84: POP
00004c85: DUP1
00004c86: DUP3
00004c87: GT
00004c88: ISZERO
00004c89: PUSH2 0x4c91
00004c8c: JUMPI
00004c8d: PUSH1 0x00
00004c8f: DUP1
00004c90: REVERT
00004c91: JUMPDEST
00004c92: POP
00004c93: PUSH2 0x4c9e
00004c96: DUP6
00004c97: DUP3
00004c98: DUP7
00004c99: ADD
00004c9a: PUSH2 0x494d
00004c9d: JUMP
00004c9e: JUMPDEST
00004c9f: SWAP2
00004ca0: POP
00004ca1: POP
00004ca2: SWAP3
00004ca3: POP
00004ca4: SWAP3
00004ca5: SWAP1
00004ca6: POP
00004ca7: JUMP
00004ca8: JUMPDEST
00004ca9: PUSH1 0x00
00004cab: DUP1
00004cac: PUSH1 0x00
00004cae: PUSH1 0x60
00004cb0: DUP5
00004cb1: DUP7
00004cb2: SUB
00004cb3: SLT
00004cb4: ISZERO
00004cb5: PUSH2 0x4cbd
00004cb8: JUMPI
00004cb9: PUSH1 0x00
00004cbb: DUP1
00004cbc: REVERT
00004cbd: JUMPDEST
00004cbe: DUP4
00004cbf: CALLDATALOAD
00004cc0: SWAP3
00004cc1: POP
00004cc2: PUSH1 0x20
00004cc4: DUP5
00004cc5: ADD
00004cc6: CALLDATALOAD
00004cc7: PUSH2 0x4ccf
00004cca: DUP2
00004ccb: PUSH2 0x4756
00004cce: JUMP
00004ccf: JUMPDEST
00004cd0: SWAP2
00004cd1: POP
00004cd2: PUSH1 0x40
00004cd4: DUP5
00004cd5: ADD
00004cd6: CALLDATALOAD
00004cd7: PUSH2 0x4cdf
00004cda: DUP2
00004cdb: PUSH2 0x4756
00004cde: JUMP
00004cdf: JUMPDEST
00004ce0: DUP1
00004ce1: SWAP2
00004ce2: POP
00004ce3: POP
00004ce4: SWAP3
00004ce5: POP
00004ce6: SWAP3
00004ce7: POP
00004ce8: SWAP3
00004ce9: JUMP
00004cea: JUMPDEST
00004ceb: PUSH1 0x00
00004ced: DUP1
00004cee: PUSH1 0x00
00004cf0: DUP1
00004cf1: PUSH1 0x00
00004cf3: DUP1
00004cf4: PUSH1 0x60
00004cf6: DUP8
00004cf7: DUP10
00004cf8: SUB
00004cf9: SLT
00004cfa: ISZERO
00004cfb: PUSH2 0x4d03
00004cfe: JUMPI
00004cff: PUSH1 0x00
00004d01: DUP1
00004d02: REVERT
00004d03: JUMPDEST
00004d04: DUP7
00004d05: CALLDATALOAD
00004d06: PUSH1 0x01
00004d08: PUSH1 0x01
00004d0a: PUSH1 0x40
00004d0c: SHL
00004d0d: SUB
00004d0e: DUP1
00004d0f: DUP3
00004d10: GT
00004d11: ISZERO
00004d12: PUSH2 0x4d1a
00004d15: JUMPI
00004d16: PUSH1 0x00
00004d18: DUP1
00004d19: REVERT
00004d1a: JUMPDEST
00004d1b: PUSH2 0x4d26
00004d1e: DUP11
00004d1f: DUP4
00004d20: DUP12
00004d21: ADD
00004d22: PUSH2 0x4b5e
00004d25: JUMP
00004d26: JUMPDEST
00004d27: SWAP1
00004d28: SWAP9
00004d29: POP
00004d2a: SWAP7
00004d2b: POP
00004d2c: PUSH1 0x20
00004d2e: DUP10
00004d2f: ADD
00004d30: CALLDATALOAD
00004d31: SWAP2
00004d32: POP
00004d33: DUP1
00004d34: DUP3
00004d35: GT
00004d36: ISZERO
00004d37: PUSH2 0x4d3f
00004d3a: JUMPI
00004d3b: PUSH1 0x00
00004d3d: DUP1
00004d3e: REVERT
00004d3f: JUMPDEST
00004d40: PUSH2 0x4d4b
00004d43: DUP11
00004d44: DUP4
00004d45: DUP12
00004d46: ADD
00004d47: PUSH2 0x4b5e
00004d4a: JUMP
00004d4b: JUMPDEST
00004d4c: SWAP1
00004d4d: SWAP7
00004d4e: POP
00004d4f: SWAP5
00004d50: POP
00004d51: PUSH1 0x40
00004d53: DUP10
00004d54: ADD
00004d55: CALLDATALOAD
00004d56: SWAP2
00004d57: POP
00004d58: DUP1
00004d59: DUP3
00004d5a: GT
00004d5b: ISZERO
00004d5c: PUSH2 0x4d64
00004d5f: JUMPI
00004d60: PUSH1 0x00
00004d62: DUP1
00004d63: REVERT
00004d64: JUMPDEST
00004d65: POP
00004d66: PUSH2 0x4d71
00004d69: DUP10
00004d6a: DUP3
00004d6b: DUP11
00004d6c: ADD
00004d6d: PUSH2 0x4b5e
00004d70: JUMP
00004d71: JUMPDEST
00004d72: SWAP8
00004d73: SWAP11
00004d74: SWAP7
00004d75: SWAP10
00004d76: POP
00004d77: SWAP5
00004d78: SWAP8
00004d79: POP
00004d7a: SWAP3
00004d7b: SWAP6
00004d7c: SWAP4
00004d7d: SWAP5
00004d7e: SWAP3
00004d7f: POP
00004d80: POP
00004d81: POP
00004d82: JUMP
00004d83: JUMPDEST
00004d84: PUSH1 0x00
00004d86: DUP1
00004d87: PUSH1 0x00
00004d89: DUP1
00004d8a: PUSH1 0x00
00004d8c: DUP1
00004d8d: PUSH1 0x00
00004d8f: PUSH1 0xe0
00004d91: DUP9
00004d92: DUP11
00004d93: SUB
00004d94: SLT
00004d95: ISZERO
00004d96: PUSH2 0x4d9e
00004d99: JUMPI
00004d9a: PUSH1 0x00
00004d9c: DUP1
00004d9d: REVERT
00004d9e: JUMPDEST
00004d9f: DUP8
00004da0: CALLDATALOAD
00004da1: PUSH2 0x4da9
00004da4: DUP2
00004da5: PUSH2 0x4756
00004da8: JUMP
00004da9: JUMPDEST
00004daa: SWAP7
00004dab: POP
00004dac: PUSH1 0x20
00004dae: DUP9
00004daf: ADD
00004db0: CALLDATALOAD
00004db1: PUSH2 0x4db9
00004db4: DUP2
00004db5: PUSH2 0x4756
00004db8: JUMP
00004db9: JUMPDEST
00004dba: SWAP6
00004dbb: POP
00004dbc: PUSH1 0x40
00004dbe: DUP9
00004dbf: ADD
00004dc0: CALLDATALOAD
00004dc1: SWAP5
00004dc2: POP
00004dc3: PUSH1 0x60
00004dc5: DUP9
00004dc6: ADD
00004dc7: CALLDATALOAD
00004dc8: SWAP4
00004dc9: POP
00004dca: PUSH1 0x80
00004dcc: DUP9
00004dcd: ADD
00004dce: CALLDATALOAD
00004dcf: PUSH1 0xff
00004dd1: DUP2
00004dd2: AND
00004dd3: DUP2
00004dd4: EQ
00004dd5: PUSH2 0x4ddd
00004dd8: JUMPI
00004dd9: PUSH1 0x00
00004ddb: DUP1
00004ddc: REVERT
00004ddd: JUMPDEST
00004dde: SWAP7
00004ddf: SWAP10
00004de0: SWAP6
00004de1: SWAP9
00004de2: POP
00004de3: SWAP4
00004de4: SWAP7
00004de5: SWAP3
00004de6: SWAP6
00004de7: SWAP5
00004de8: PUSH1 0xa0
00004dea: DUP5
00004deb: ADD
00004dec: CALLDATALOAD
00004ded: SWAP5
00004dee: POP
00004def: PUSH1 0xc0
00004df1: SWAP1
00004df2: SWAP4
00004df3: ADD
00004df4: CALLDATALOAD
00004df5: SWAP3
00004df6: SWAP2
00004df7: POP
00004df8: POP
00004df9: JUMP
00004dfa: JUMPDEST
00004dfb: PUSH1 0x00
00004dfd: PUSH1 0x20
00004dff: DUP3
00004e00: DUP5
00004e01: SUB
00004e02: SLT
00004e03: ISZERO
00004e04: PUSH2 0x4e0c
00004e07: JUMPI
00004e08: PUSH1 0x00
00004e0a: DUP1
00004e0b: REVERT
00004e0c: JUMPDEST
00004e0d: DUP2
00004e0e: CALLDATALOAD
00004e0f: PUSH6 0xffffffffffff
00004e16: DUP2
00004e17: AND
00004e18: DUP2
00004e19: EQ
00004e1a: PUSH2 0x0df6
00004e1d: JUMPI
00004e1e: PUSH1 0x00
00004e20: DUP1
00004e21: REVERT
00004e22: JUMPDEST
00004e23: PUSH1 0x00
00004e25: DUP1
00004e26: DUP4
00004e27: PUSH1 0x1f
00004e29: DUP5
00004e2a: ADD
00004e2b: SLT
00004e2c: PUSH2 0x4e34
00004e2f: JUMPI
00004e30: PUSH1 0x00
00004e32: DUP1
00004e33: REVERT
00004e34: JUMPDEST
00004e35: POP
00004e36: DUP2
00004e37: CALLDATALOAD
00004e38: PUSH1 0x01
00004e3a: PUSH1 0x01
00004e3c: PUSH1 0x40
00004e3e: SHL
00004e3f: SUB
00004e40: DUP2
00004e41: GT
00004e42: ISZERO
00004e43: PUSH2 0x4e4b
00004e46: JUMPI
00004e47: PUSH1 0x00
00004e49: DUP1
00004e4a: REVERT
00004e4b: JUMPDEST
00004e4c: PUSH1 0x20
00004e4e: DUP4
00004e4f: ADD
00004e50: SWAP2
00004e51: POP
00004e52: DUP4
00004e53: PUSH1 0x20
00004e55: DUP3
00004e56: DUP6
00004e57: ADD
00004e58: ADD
00004e59: GT
00004e5a: ISZERO
00004e5b: PUSH2 0x4ba2
00004e5e: JUMPI
00004e5f: PUSH1 0x00
00004e61: DUP1
00004e62: REVERT
00004e63: JUMPDEST
00004e64: PUSH1 0x00
00004e66: DUP1
00004e67: PUSH1 0x00
00004e69: DUP1
00004e6a: DUP5
00004e6b: DUP7
00004e6c: SUB
00004e6d: PUSH2 0x0100
00004e70: DUP2
00004e71: SLT
00004e72: ISZERO
00004e73: PUSH2 0x4e7b
00004e76: JUMPI
00004e77: PUSH1 0x00
00004e79: DUP1
00004e7a: REVERT
00004e7b: JUMPDEST
00004e7c: DUP6
00004e7d: CALLDATALOAD
00004e7e: PUSH2 0x4e86
00004e81: DUP2
00004e82: PUSH2 0x4756
00004e85: JUMP
00004e86: JUMPDEST
00004e87: SWAP5
00004e88: POP
00004e89: PUSH1 0xc0
00004e8b: PUSH1 0x1f
00004e8d: NOT
00004e8e: DUP3
00004e8f: ADD
00004e90: SLT
00004e91: ISZERO
00004e92: PUSH2 0x4e9a
00004e95: JUMPI
00004e96: PUSH1 0x00
00004e98: DUP1
00004e99: REVERT
00004e9a: JUMPDEST
00004e9b: POP
00004e9c: PUSH2 0x4ea3
00004e9f: PUSH2 0x4858
00004ea2: JUMP
00004ea3: JUMPDEST
00004ea4: PUSH1 0x20
00004ea6: DUP7
00004ea7: ADD
00004ea8: CALLDATALOAD
00004ea9: PUSH2 0x4eb1
00004eac: DUP2
00004ead: PUSH2 0x4756
00004eb0: JUMP
00004eb1: JUMPDEST
00004eb2: DUP2
00004eb3: MSTORE
00004eb4: PUSH1 0x40
00004eb6: DUP7
00004eb7: ADD
00004eb8: CALLDATALOAD
00004eb9: PUSH2 0x4ec1
00004ebc: DUP2
00004ebd: PUSH2 0x4756
00004ec0: JUMP
00004ec1: JUMPDEST
00004ec2: PUSH1 0x20
00004ec4: DUP3
00004ec5: ADD
00004ec6: MSTORE
00004ec7: PUSH1 0x60
00004ec9: DUP7
00004eca: ADD
00004ecb: CALLDATALOAD
00004ecc: PUSH1 0x40
00004ece: DUP3
00004ecf: ADD
00004ed0: MSTORE
00004ed1: PUSH1 0x80
00004ed3: DUP7
00004ed4: ADD
00004ed5: CALLDATALOAD
00004ed6: PUSH2 0x4ede
00004ed9: DUP2
00004eda: PUSH2 0x4756
00004edd: JUMP
00004ede: JUMPDEST
00004edf: PUSH1 0x60
00004ee1: DUP3
00004ee2: ADD
00004ee3: MSTORE
00004ee4: PUSH1 0xa0
00004ee6: DUP7
00004ee7: ADD
00004ee8: CALLDATALOAD
00004ee9: PUSH2 0x4ef1
00004eec: DUP2
00004eed: PUSH2 0x4756
00004ef0: JUMP
00004ef1: JUMPDEST
00004ef2: PUSH1 0x80
00004ef4: DUP3
00004ef5: ADD
00004ef6: MSTORE
00004ef7: PUSH1 0xc0
00004ef9: DUP7
00004efa: ADD
00004efb: CALLDATALOAD
00004efc: PUSH1 0xa0
00004efe: DUP3
00004eff: ADD
00004f00: MSTORE
00004f01: SWAP3
00004f02: POP
00004f03: PUSH1 0xe0
00004f05: DUP6
00004f06: ADD
00004f07: CALLDATALOAD
00004f08: PUSH1 0x01
00004f0a: PUSH1 0x01
00004f0c: PUSH1 0x40
00004f0e: SHL
00004f0f: SUB
00004f10: DUP2
00004f11: GT
00004f12: ISZERO
00004f13: PUSH2 0x4f1b
00004f16: JUMPI
00004f17: PUSH1 0x00
00004f19: DUP1
00004f1a: REVERT
00004f1b: JUMPDEST
00004f1c: PUSH2 0x4f27
00004f1f: DUP8
00004f20: DUP3
00004f21: DUP9
00004f22: ADD
00004f23: PUSH2 0x4e22
00004f26: JUMP
00004f27: JUMPDEST
00004f28: SWAP6
00004f29: SWAP9
00004f2a: SWAP5
00004f2b: SWAP8
00004f2c: POP
00004f2d: SWAP6
00004f2e: POP
00004f2f: POP
00004f30: POP
00004f31: POP
00004f32: JUMP
00004f33: JUMPDEST
00004f34: PUSH1 0x00
00004f36: DUP1
00004f37: PUSH1 0x40
00004f39: DUP4
00004f3a: DUP6
00004f3b: SUB
00004f3c: SLT
00004f3d: ISZERO
00004f3e: PUSH2 0x4f46
00004f41: JUMPI
00004f42: PUSH1 0x00
00004f44: DUP1
00004f45: REVERT
00004f46: JUMPDEST
00004f47: DUP3
00004f48: CALLDATALOAD
00004f49: PUSH2 0x4f51
00004f4c: DUP2
00004f4d: PUSH2 0x4756
00004f50: JUMP
00004f51: JUMPDEST
00004f52: SWAP2
00004f53: POP
00004f54: PUSH1 0x20
00004f56: DUP4
00004f57: ADD
00004f58: CALLDATALOAD
00004f59: PUSH2 0x4c0f
00004f5c: DUP2
00004f5d: PUSH2 0x4756
00004f60: JUMP
00004f61: JUMPDEST
00004f62: DUP3
00004f63: DUP2
00004f64: MSTORE
00004f65: PUSH1 0x40
00004f67: DUP2
00004f68: ADD
00004f69: PUSH2 0x4f71
00004f6c: DUP4
00004f6d: PUSH2 0x4aec
00004f70: JUMP
00004f71: JUMPDEST
00004f72: DUP3
00004f73: PUSH1 0x20
00004f75: DUP4
00004f76: ADD
00004f77: MSTORE
00004f78: SWAP4
00004f79: SWAP3
00004f7a: POP
00004f7b: POP
00004f7c: POP
00004f7d: JUMP
00004f7e: JUMPDEST
00004f7f: PUSH1 0x00
00004f81: PUSH1 0x20
00004f83: DUP3
00004f84: DUP5
00004f85: SUB
00004f86: SLT
00004f87: ISZERO
00004f88: PUSH2 0x4f90
00004f8b: JUMPI
00004f8c: PUSH1 0x00
00004f8e: DUP1
00004f8f: REVERT
00004f90: JUMPDEST
00004f91: POP
00004f92: MLOAD
00004f93: SWAP2
00004f94: SWAP1
00004f95: POP
00004f96: JUMP
00004f97: JUMPDEST
00004f98: PUSH1 0x01
00004f9a: DUP2
00004f9b: DUP2
00004f9c: SHR
00004f9d: SWAP1
00004f9e: DUP3
00004f9f: AND
00004fa0: DUP1
00004fa1: PUSH2 0x4fab
00004fa4: JUMPI
00004fa5: PUSH1 0x7f
00004fa7: DUP3
00004fa8: AND
00004fa9: SWAP2
00004faa: POP
00004fab: JUMPDEST
00004fac: PUSH1 0x20
00004fae: DUP3
00004faf: LT
00004fb0: DUP2
00004fb1: SUB
00004fb2: PUSH2 0x2bd2
00004fb5: JUMPI
00004fb6: PUSH4 0x4e487b71
00004fbb: PUSH1 0xe0
00004fbd: SHL
00004fbe: PUSH1 0x00
00004fc0: MSTORE
00004fc1: PUSH1 0x22
00004fc3: PUSH1 0x04
00004fc5: MSTORE
00004fc6: PUSH1 0x24
00004fc8: PUSH1 0x00
00004fca: REVERT
00004fcb: JUMPDEST
00004fcc: DUP1
00004fcd: MLOAD
00004fce: PUSH2 0x4fd6
00004fd1: DUP2
00004fd2: PUSH2 0x4c1a
00004fd5: JUMP
00004fd6: JUMPDEST
00004fd7: SWAP2
00004fd8: SWAP1
00004fd9: POP
00004fda: JUMP
00004fdb: JUMPDEST
00004fdc: PUSH1 0x00
00004fde: PUSH1 0x20
00004fe0: DUP3
00004fe1: DUP5
00004fe2: SUB
00004fe3: SLT
00004fe4: ISZERO
00004fe5: PUSH2 0x4fed
00004fe8: JUMPI
00004fe9: PUSH1 0x00
00004feb: DUP1
00004fec: REVERT
00004fed: JUMPDEST
00004fee: DUP2
00004fef: MLOAD
00004ff0: PUSH2 0x0df6
00004ff3: DUP2
00004ff4: PUSH2 0x4c1a
00004ff7: JUMP
00004ff8: JUMPDEST
00004ff9: DUP8
00004ffa: ISZERO
00004ffb: ISZERO
00004ffc: DUP2
00004ffd: MSTORE
00004ffe: DUP7
00004fff: PUSH1 0x20
00005001: DUP3
00005002: ADD
00005003: MSTORE
00005004: DUP6
00005005: PUSH1 0x40
00005007: DUP3
00005008: ADD
00005009: MSTORE
0000500a: PUSH1 0xe0
0000500c: PUSH1 0x60
0000500e: DUP3
0000500f: ADD
00005010: MSTORE
00005011: PUSH1 0x00
00005013: PUSH2 0x501f
00005016: PUSH1 0xe0
00005018: DUP4
00005019: ADD
0000501a: DUP8
0000501b: PUSH2 0x46e4
0000501e: JUMP
0000501f: JUMPDEST
00005020: PUSH1 0x80
00005022: DUP4
00005023: ADD
00005024: SWAP6
00005025: SWAP1
00005026: SWAP6
00005027: MSTORE
00005028: POP
00005029: PUSH1 0xa0
0000502b: DUP2
0000502c: ADD
0000502d: SWAP3
0000502e: SWAP1
0000502f: SWAP3
00005030: MSTORE
00005031: PUSH1 0xc0
00005033: SWAP1
00005034: SWAP2
00005035: ADD
00005036: MSTORE
00005037: SWAP5
00005038: SWAP4
00005039: POP
0000503a: POP
0000503b: POP
0000503c: POP
0000503d: JUMP
0000503e: JUMPDEST
0000503f: PUSH1 0x00
00005041: DUP1
00005042: PUSH1 0x40
00005044: DUP4
00005045: DUP6
00005046: SUB
00005047: SLT
00005048: ISZERO
00005049: PUSH2 0x5051
0000504c: JUMPI
0000504d: PUSH1 0x00
0000504f: DUP1
00005050: REVERT
00005051: JUMPDEST
00005052: POP
00005053: POP
00005054: DUP1
00005055: MLOAD
00005056: PUSH1 0x20
00005058: SWAP1
00005059: SWAP2
0000505a: ADD
0000505b: MLOAD
0000505c: SWAP1
0000505d: SWAP3
0000505e: SWAP1
0000505f: SWAP2
00005060: POP
00005061: JUMP
00005062: JUMPDEST
00005063: DUP1
00005064: MLOAD
00005065: PUSH2 0x4fd6
00005068: DUP2
00005069: PUSH2 0x4756
0000506c: JUMP
0000506d: JUMPDEST
0000506e: PUSH1 0x00
00005070: PUSH1 0x20
00005072: DUP1
00005073: DUP4
00005074: DUP6
00005075: SUB
00005076: SLT
00005077: ISZERO
00005078: PUSH2 0x5080
0000507b: JUMPI
0000507c: PUSH1 0x00
0000507e: DUP1
0000507f: REVERT
00005080: JUMPDEST
00005081: DUP3
00005082: MLOAD
00005083: PUSH1 0x01
00005085: PUSH1 0x01
00005087: PUSH1 0x40
00005089: SHL
0000508a: SUB
0000508b: DUP1
0000508c: DUP3
0000508d: GT
0000508e: ISZERO
0000508f: PUSH2 0x5097
00005092: JUMPI
00005093: PUSH1 0x00
00005095: DUP1
00005096: REVERT
00005097: JUMPDEST
00005098: DUP2
00005099: DUP6
0000509a: ADD
0000509b: SWAP2
0000509c: POP
0000509d: DUP6
0000509e: PUSH1 0x1f
000050a0: DUP4
000050a1: ADD
000050a2: SLT
000050a3: PUSH2 0x50ab
000050a6: JUMPI
000050a7: PUSH1 0x00
000050a9: DUP1
000050aa: REVERT
000050ab: JUMPDEST
000050ac: DUP2
000050ad: MLOAD
000050ae: DUP2
000050af: DUP2
000050b0: GT
000050b1: ISZERO
000050b2: PUSH2 0x50bd
000050b5: JUMPI
000050b6: PUSH2 0x50bd
000050b9: PUSH2 0x4842
000050bc: JUMP
000050bd: JUMPDEST
000050be: DUP1
000050bf: PUSH1 0x05
000050c1: SHL
000050c2: SWAP2
000050c3: POP
000050c4: PUSH2 0x50ce
000050c7: DUP5
000050c8: DUP4
000050c9: ADD
000050ca: PUSH2 0x48c6
000050cd: JUMP
000050ce: JUMPDEST
000050cf: DUP2
000050d0: DUP2
000050d1: MSTORE
000050d2: SWAP2
000050d3: DUP4
000050d4: ADD
000050d5: DUP5
000050d6: ADD
000050d7: SWAP2
000050d8: DUP5
000050d9: DUP2
000050da: ADD
000050db: SWAP1
000050dc: DUP9
000050dd: DUP5
000050de: GT
000050df: ISZERO
000050e0: PUSH2 0x50e8
000050e3: JUMPI
000050e4: PUSH1 0x00
000050e6: DUP1
000050e7: REVERT
000050e8: JUMPDEST
000050e9: SWAP4
000050ea: DUP6
000050eb: ADD
000050ec: SWAP4
000050ed: JUMPDEST
000050ee: DUP4
000050ef: DUP6
000050f0: LT
000050f1: ISZERO
000050f2: PUSH2 0x5112
000050f5: JUMPI
000050f6: DUP5
000050f7: MLOAD
000050f8: SWAP3
000050f9: POP
000050fa: PUSH2 0x5102
000050fd: DUP4
000050fe: PUSH2 0x4756
00005101: JUMP
00005102: JUMPDEST
00005103: DUP3
00005104: DUP3
00005105: MSTORE
00005106: SWAP4
00005107: DUP6
00005108: ADD
00005109: SWAP4
0000510a: SWAP1
0000510b: DUP6
0000510c: ADD
0000510d: SWAP1
0000510e: PUSH2 0x50ed
00005111: JUMP
00005112: JUMPDEST
00005113: SWAP9
00005114: SWAP8
00005115: POP
00005116: POP
00005117: POP
00005118: POP
00005119: POP
0000511a: POP
0000511b: POP
0000511c: POP
0000511d: JUMP
0000511e: JUMPDEST
0000511f: PUSH1 0x1f
00005121: DUP3
00005122: GT
00005123: ISZERO
00005124: PUSH2 0x5164
00005127: JUMPI
00005128: PUSH1 0x00
0000512a: DUP2
0000512b: DUP2
0000512c: MSTORE
0000512d: PUSH1 0x20
0000512f: DUP2
00005130: KECCAK256
00005131: PUSH1 0x1f
00005133: DUP6
00005134: ADD
00005135: PUSH1 0x05
00005137: SHR
00005138: DUP2
00005139: ADD
0000513a: PUSH1 0x20
0000513c: DUP7
0000513d: LT
0000513e: ISZERO
0000513f: PUSH2 0x5145
00005142: JUMPI
00005143: POP
00005144: DUP1
00005145: JUMPDEST
00005146: PUSH1 0x1f
00005148: DUP6
00005149: ADD
0000514a: PUSH1 0x05
0000514c: SHR
0000514d: DUP3
0000514e: ADD
0000514f: SWAP2
00005150: POP
00005151: JUMPDEST
00005152: DUP2
00005153: DUP2
00005154: LT
00005155: ISZERO
00005156: PUSH2 0x22cb
00005159: JUMPI
0000515a: DUP3
0000515b: DUP2
0000515c: SSTORE
0000515d: PUSH1 0x01
0000515f: ADD
00005160: PUSH2 0x5151
00005163: JUMP
00005164: JUMPDEST
00005165: POP
00005166: POP
00005167: POP
00005168: JUMP
00005169: JUMPDEST
0000516a: DUP2
0000516b: MLOAD
0000516c: PUSH1 0x01
0000516e: PUSH1 0x01
00005170: PUSH1 0x40
00005172: SHL
00005173: SUB
00005174: DUP2
00005175: GT
00005176: ISZERO
00005177: PUSH2 0x5182
0000517a: JUMPI
0000517b: PUSH2 0x5182
0000517e: PUSH2 0x4842
00005181: JUMP
00005182: JUMPDEST
00005183: PUSH2 0x5196
00005186: DUP2
00005187: PUSH2 0x5190
0000518a: DUP5
0000518b: SLOAD
0000518c: PUSH2 0x4f97
0000518f: JUMP
00005190: JUMPDEST
00005191: DUP5
00005192: PUSH2 0x511e
00005195: JUMP
00005196: JUMPDEST
00005197: PUSH1 0x20
00005199: DUP1
0000519a: PUSH1 0x1f
0000519c: DUP4
0000519d: GT
0000519e: PUSH1 0x01
000051a0: DUP2
000051a1: EQ
000051a2: PUSH2 0x51cb
000051a5: JUMPI
000051a6: PUSH1 0x00
000051a8: DUP5
000051a9: ISZERO
000051aa: PUSH2 0x51b3
000051ad: JUMPI
000051ae: POP
000051af: DUP6
000051b0: DUP4
000051b1: ADD
000051b2: MLOAD
000051b3: JUMPDEST
000051b4: PUSH1 0x00
000051b6: NOT
000051b7: PUSH1 0x03
000051b9: DUP7
000051ba: SWAP1
000051bb: SHL
000051bc: SHR
000051bd: NOT
000051be: AND
000051bf: PUSH1 0x01
000051c1: DUP6
000051c2: SWAP1
000051c3: SHL
000051c4: OR
000051c5: DUP6
000051c6: SSTORE
000051c7: PUSH2 0x22cb
000051ca: JUMP
000051cb: JUMPDEST
000051cc: PUSH1 0x00
000051ce: DUP6
000051cf: DUP2
000051d0: MSTORE
000051d1: PUSH1 0x20
000051d3: DUP2
000051d4: KECCAK256
000051d5: PUSH1 0x1f
000051d7: NOT
000051d8: DUP7
000051d9: AND
000051da: SWAP2
000051db: JUMPDEST
000051dc: DUP3
000051dd: DUP2
000051de: LT
000051df: ISZERO
000051e0: PUSH2 0x51fa
000051e3: JUMPI
000051e4: DUP9
000051e5: DUP7
000051e6: ADD
000051e7: MLOAD
000051e8: DUP3
000051e9: SSTORE
000051ea: SWAP5
000051eb: DUP5
000051ec: ADD
000051ed: SWAP5
000051ee: PUSH1 0x01
000051f0: SWAP1
000051f1: SWAP2
000051f2: ADD
000051f3: SWAP1
000051f4: DUP5
000051f5: ADD
000051f6: PUSH2 0x51db
000051f9: JUMP
000051fa: JUMPDEST
000051fb: POP
000051fc: DUP6
000051fd: DUP3
000051fe: LT
000051ff: ISZERO
00005200: PUSH2 0x5218
00005203: JUMPI
00005204: DUP8
00005205: DUP6
00005206: ADD
00005207: MLOAD
00005208: PUSH1 0x00
0000520a: NOT
0000520b: PUSH1 0x03
0000520d: DUP9
0000520e: SWAP1
0000520f: SHL
00005210: PUSH1 0xf8
00005212: AND
00005213: SHR
00005214: NOT
00005215: AND
00005216: DUP2
00005217: SSTORE
00005218: JUMPDEST
00005219: POP
0000521a: POP
0000521b: POP
0000521c: POP
0000521d: POP
0000521e: PUSH1 0x01
00005220: SWAP1
00005221: DUP2
00005222: SHL
00005223: ADD
00005224: SWAP1
00005225: SSTORE
00005226: POP
00005227: JUMP
00005228: JUMPDEST
00005229: SWAP2
0000522a: DUP3
0000522b: MSTORE
0000522c: PUSH1 0x01
0000522e: PUSH1 0x01
00005230: PUSH1 0xa0
00005232: SHL
00005233: SUB
00005234: AND
00005235: PUSH1 0x20
00005237: DUP3
00005238: ADD
00005239: MSTORE
0000523a: PUSH1 0x40
0000523c: ADD
0000523d: SWAP1
0000523e: JUMP
0000523f: JUMPDEST
00005240: PUSH1 0x00
00005242: PUSH1 0x20
00005244: DUP3
00005245: DUP5
00005246: SUB
00005247: SLT
00005248: ISZERO
00005249: PUSH2 0x5251
0000524c: JUMPI
0000524d: PUSH1 0x00
0000524f: DUP1
00005250: REVERT
00005251: JUMPDEST
00005252: DUP2
00005253: MLOAD
00005254: PUSH2 0x0df6
00005257: DUP2
00005258: PUSH2 0x4756
0000525b: JUMP
0000525c: JUMPDEST
0000525d: PUSH1 0x00
0000525f: PUSH2 0x0120
00005262: DUP3
00005263: DUP5
00005264: SUB
00005265: SLT
00005266: ISZERO
00005267: PUSH2 0x526f
0000526a: JUMPI
0000526b: PUSH1 0x00
0000526d: DUP1
0000526e: REVERT
0000526f: JUMPDEST
00005270: PUSH2 0x5277
00005273: PUSH2 0x4880
00005276: JUMP
00005277: JUMPDEST
00005278: PUSH2 0x5280
0000527b: DUP4
0000527c: PUSH2 0x4fcb
0000527f: JUMP
00005280: JUMPDEST
00005281: DUP2
00005282: MSTORE
00005283: PUSH1 0x20
00005285: DUP4
00005286: ADD
00005287: MLOAD
00005288: PUSH1 0x20
0000528a: DUP3
0000528b: ADD
0000528c: MSTORE
0000528d: PUSH1 0x40
0000528f: DUP4
00005290: ADD
00005291: MLOAD
00005292: PUSH1 0x40
00005294: DUP3
00005295: ADD
00005296: MSTORE
00005297: PUSH1 0x60
00005299: DUP4
0000529a: ADD
0000529b: MLOAD
0000529c: PUSH1 0x60
0000529e: DUP3
0000529f: ADD
000052a0: MSTORE
000052a1: PUSH1 0x80
000052a3: DUP4
000052a4: ADD
000052a5: MLOAD
000052a6: PUSH1 0x80
000052a8: DUP3
000052a9: ADD
000052aa: MSTORE
000052ab: PUSH1 0xa0
000052ad: DUP4
000052ae: ADD
000052af: MLOAD
000052b0: PUSH1 0xa0
000052b2: DUP3
000052b3: ADD
000052b4: MSTORE
000052b5: PUSH1 0xc0
000052b7: DUP4
000052b8: ADD
000052b9: MLOAD
000052ba: PUSH1 0xc0
000052bc: DUP3
000052bd: ADD
000052be: MSTORE
000052bf: PUSH1 0xe0
000052c1: DUP4
000052c2: ADD
000052c3: MLOAD
000052c4: PUSH1 0xe0
000052c6: DUP3
000052c7: ADD
000052c8: MSTORE
000052c9: PUSH2 0x0100
000052cc: DUP1
000052cd: DUP5
000052ce: ADD
000052cf: MLOAD
000052d0: DUP2
000052d1: DUP4
000052d2: ADD
000052d3: MSTORE
000052d4: POP
000052d5: DUP1
000052d6: SWAP2
000052d7: POP
000052d8: POP
000052d9: SWAP3
000052da: SWAP2
000052db: POP
000052dc: POP
000052dd: JUMP
000052de: JUMPDEST
000052df: PUSH4 0x4e487b71
000052e4: PUSH1 0xe0
000052e6: SHL
000052e7: PUSH1 0x00
000052e9: MSTORE
000052ea: PUSH1 0x11
000052ec: PUSH1 0x04
000052ee: MSTORE
000052ef: PUSH1 0x24
000052f1: PUSH1 0x00
000052f3: REVERT
000052f4: JUMPDEST
000052f5: DUP1
000052f6: DUP3
000052f7: ADD
000052f8: DUP1
000052f9: DUP3
000052fa: GT
000052fb: ISZERO
000052fc: PUSH2 0x0d62
000052ff: JUMPI
00005300: PUSH2 0x0d62
00005303: PUSH2 0x52de
00005306: JUMP
00005307: JUMPDEST
00005308: DUP2
00005309: DUP2
0000530a: SUB
0000530b: DUP2
0000530c: DUP2
0000530d: GT
0000530e: ISZERO
0000530f: PUSH2 0x0d62
00005312: JUMPI
00005313: PUSH2 0x0d62
00005316: PUSH2 0x52de
00005319: JUMP
0000531a: JUMPDEST
0000531b: DUP2
0000531c: DUP4
0000531d: MSTORE
0000531e: PUSH1 0x00
00005320: PUSH1 0x20
00005322: DUP1
00005323: DUP6
00005324: ADD
00005325: SWAP5
00005326: POP
00005327: DUP3
00005328: PUSH1 0x00
0000532a: JUMPDEST
0000532b: DUP6
0000532c: DUP2
0000532d: LT
0000532e: ISZERO
0000532f: PUSH2 0x5358
00005332: JUMPI
00005333: DUP2
00005334: CALLDATALOAD
00005335: PUSH2 0x533d
00005338: DUP2
00005339: PUSH2 0x4756
0000533c: JUMP
0000533d: JUMPDEST
0000533e: PUSH1 0x01
00005340: PUSH1 0x01
00005342: PUSH1 0xa0
00005344: SHL
00005345: SUB
00005346: AND
00005347: DUP8
00005348: MSTORE
00005349: SWAP6
0000534a: DUP3
0000534b: ADD
0000534c: SWAP6
0000534d: SWAP1
0000534e: DUP3
0000534f: ADD
00005350: SWAP1
00005351: PUSH1 0x01
00005353: ADD
00005354: PUSH2 0x532a
00005357: JUMP
00005358: JUMPDEST
00005359: POP
0000535a: SWAP5
0000535b: SWAP6
0000535c: SWAP5
0000535d: POP
0000535e: POP
0000535f: POP
00005360: POP
00005361: POP
00005362: JUMP
00005363: JUMPDEST
00005364: DUP6
00005365: DUP2
00005366: MSTORE
00005367: DUP5
00005368: PUSH1 0x20
0000536a: DUP3
0000536b: ADD
0000536c: MSTORE
0000536d: PUSH1 0x80
0000536f: PUSH1 0x40
00005371: DUP3
00005372: ADD
00005373: MSTORE
00005374: PUSH1 0x00
00005376: PUSH2 0x5383
00005379: PUSH1 0x80
0000537b: DUP4
0000537c: ADD
0000537d: DUP6
0000537e: DUP8
0000537f: PUSH2 0x531a
00005382: JUMP
00005383: JUMPDEST
00005384: SWAP1
00005385: POP
00005386: PUSH1 0x01
00005388: DUP1
00005389: PUSH1 0xa0
0000538b: SHL
0000538c: SUB
0000538d: DUP4
0000538e: AND
0000538f: PUSH1 0x60
00005391: DUP4
00005392: ADD
00005393: MSTORE
00005394: SWAP7
00005395: SWAP6
00005396: POP
00005397: POP
00005398: POP
00005399: POP
0000539a: POP
0000539b: POP
0000539c: JUMP
0000539d: JUMPDEST
0000539e: DUP5
0000539f: DUP2
000053a0: MSTORE
000053a1: DUP4
000053a2: PUSH1 0x20
000053a4: DUP3
000053a5: ADD
000053a6: MSTORE
000053a7: PUSH1 0x60
000053a9: PUSH1 0x40
000053ab: DUP3
000053ac: ADD
000053ad: MSTORE
000053ae: PUSH1 0x00
000053b0: PUSH2 0x3d3c
000053b3: PUSH1 0x60
000053b5: DUP4
000053b6: ADD
000053b7: DUP5
000053b8: DUP7
000053b9: PUSH2 0x531a
000053bc: JUMP
000053bd: JUMPDEST
000053be: PUSH1 0x40
000053c0: DUP2
000053c1: MSTORE
000053c2: PUSH1 0x00
000053c4: PUSH2 0x53d0
000053c7: PUSH1 0x40
000053c9: DUP4
000053ca: ADD
000053cb: DUP6
000053cc: PUSH2 0x46e4
000053cf: JUMP
000053d0: JUMPDEST
000053d1: DUP3
000053d2: DUP2
000053d3: SUB
000053d4: PUSH1 0x20
000053d6: DUP5
000053d7: ADD
000053d8: MSTORE
000053d9: PUSH2 0x18cd
000053dc: DUP2
000053dd: DUP6
000053de: PUSH2 0x46e4
000053e1: JUMP
000053e2: JUMPDEST
000053e3: PUSH1 0x00
000053e5: DUP1
000053e6: PUSH1 0x00
000053e8: PUSH1 0x60
000053ea: DUP5
000053eb: DUP7
000053ec: SUB
000053ed: SLT
000053ee: ISZERO
000053ef: PUSH2 0x53f7
000053f2: JUMPI
000053f3: PUSH1 0x00
000053f5: DUP1
000053f6: REVERT
000053f7: JUMPDEST
000053f8: DUP4
000053f9: MLOAD
000053fa: SWAP3
000053fb: POP
000053fc: PUSH1 0x20
000053fe: DUP5
000053ff: ADD
00005400: MLOAD
00005401: SWAP2
00005402: POP
00005403: PUSH1 0x40
00005405: DUP5
00005406: ADD
00005407: MLOAD
00005408: SWAP1
00005409: POP
0000540a: SWAP3
0000540b: POP
0000540c: SWAP3
0000540d: POP
0000540e: SWAP3
0000540f: JUMP
00005410: JUMPDEST
00005411: PUSH4 0x4e487b71
00005416: PUSH1 0xe0
00005418: SHL
00005419: PUSH1 0x00
0000541b: MSTORE
0000541c: PUSH1 0x01
0000541e: PUSH1 0x04
00005420: MSTORE
00005421: PUSH1 0x24
00005423: PUSH1 0x00
00005425: REVERT
00005426: JUMPDEST
00005427: PUSH1 0x60
00005429: DUP2
0000542a: MSTORE
0000542b: PUSH1 0x00
0000542d: PUSH2 0x543a
00005430: PUSH1 0x60
00005432: DUP4
00005433: ADD
00005434: DUP9
00005435: DUP11
00005436: PUSH2 0x531a
00005439: JUMP
0000543a: JUMPDEST
0000543b: DUP3
0000543c: DUP2
0000543d: SUB
0000543e: PUSH1 0x20
00005440: DUP5
00005441: ADD
00005442: MSTORE
00005443: DUP6
00005444: DUP2
00005445: MSTORE
00005446: PUSH1 0x01
00005448: PUSH1 0x01
0000544a: PUSH1 0xfb
0000544c: SHL
0000544d: SUB
0000544e: DUP7
0000544f: GT
00005450: ISZERO
00005451: PUSH2 0x5459
00005454: JUMPI
00005455: PUSH1 0x00
00005457: DUP1
00005458: REVERT
00005459: JUMPDEST
0000545a: DUP6
0000545b: PUSH1 0x05
0000545d: SHL
0000545e: DUP1
0000545f: DUP9
00005460: PUSH1 0x20
00005462: DUP5
00005463: ADD
00005464: CALLDATACOPY
00005465: ADD
00005466: DUP3
00005467: DUP2
00005468: SUB
00005469: PUSH1 0x20
0000546b: SWAP1
0000546c: DUP2
0000546d: ADD
0000546e: PUSH1 0x40
00005470: DUP6
00005471: ADD
00005472: MSTORE
00005473: PUSH2 0x547f
00005476: SWAP1
00005477: DUP3
00005478: ADD
00005479: DUP6
0000547a: DUP8
0000547b: PUSH2 0x531a
0000547e: JUMP
0000547f: JUMPDEST
00005480: SWAP10
00005481: SWAP9
00005482: POP
00005483: POP
00005484: POP
00005485: POP
00005486: POP
00005487: POP
00005488: POP
00005489: POP
0000548a: POP
0000548b: JUMP
0000548c: JUMPDEST
0000548d: DUP1
0000548e: MLOAD
0000548f: PUSH1 0x01
00005491: PUSH1 0x01
00005493: PUSH1 0xa0
00005495: SHL
00005496: SUB
00005497: SWAP1
00005498: DUP2
00005499: AND
0000549a: DUP4
0000549b: MSTORE
0000549c: PUSH1 0x20
0000549e: DUP1
0000549f: DUP4
000054a0: ADD
000054a1: MLOAD
000054a2: DUP3
000054a3: AND
000054a4: SWAP1
000054a5: DUP5
000054a6: ADD
000054a7: MSTORE
000054a8: PUSH1 0x40
000054aa: DUP1
000054ab: DUP4
000054ac: ADD
000054ad: MLOAD
000054ae: SWAP1
000054af: DUP5
000054b0: ADD
000054b1: MSTORE
000054b2: PUSH1 0x60
000054b4: DUP1
000054b5: DUP4
000054b6: ADD
000054b7: MLOAD
000054b8: DUP3
000054b9: AND
000054ba: SWAP1
000054bb: DUP5
000054bc: ADD
000054bd: MSTORE
000054be: PUSH1 0x80
000054c0: DUP1
000054c1: DUP4
000054c2: ADD
000054c3: MLOAD
000054c4: SWAP1
000054c5: SWAP2
000054c6: AND
000054c7: SWAP1
000054c8: DUP4
000054c9: ADD
000054ca: MSTORE
000054cb: PUSH1 0xa0
000054cd: SWAP1
000054ce: DUP2
000054cf: ADD
000054d0: MLOAD
000054d1: SWAP2
000054d2: ADD
000054d3: MSTORE
000054d4: JUMP
000054d5: JUMPDEST
000054d6: PUSH1 0xc0
000054d8: DUP2
000054d9: ADD
000054da: PUSH2 0x0d62
000054dd: DUP3
000054de: DUP5
000054df: PUSH2 0x548c
000054e2: JUMP
000054e3: JUMPDEST
000054e4: DUP4
000054e5: DUP2
000054e6: MSTORE
000054e7: PUSH1 0x20
000054e9: DUP2
000054ea: ADD
000054eb: DUP4
000054ec: SWAP1
000054ed: MSTORE
000054ee: PUSH1 0x60
000054f0: DUP2
000054f1: ADD
000054f2: PUSH2 0x54fa
000054f5: DUP4
000054f6: PUSH2 0x4aec
000054f9: JUMP
000054fa: JUMPDEST
000054fb: DUP3
000054fc: PUSH1 0x40
000054fe: DUP4
000054ff: ADD
00005500: MSTORE
00005501: SWAP5
00005502: SWAP4
00005503: POP
00005504: POP
00005505: POP
00005506: POP
00005507: JUMP
00005508: JUMPDEST
00005509: PUSH4 0x4e487b71
0000550e: PUSH1 0xe0
00005510: SHL
00005511: PUSH1 0x00
00005513: MSTORE
00005514: PUSH1 0x12
00005516: PUSH1 0x04
00005518: MSTORE
00005519: PUSH1 0x24
0000551b: PUSH1 0x00
0000551d: REVERT
0000551e: JUMPDEST
0000551f: DUP1
00005520: DUP3
00005521: MUL
00005522: DUP2
00005523: ISZERO
00005524: DUP3
00005525: DUP3
00005526: DIV
00005527: DUP5
00005528: EQ
00005529: OR
0000552a: PUSH2 0x0d62
0000552d: JUMPI
0000552e: PUSH2 0x0d62
00005531: PUSH2 0x52de
00005534: JUMP
00005535: JUMPDEST
00005536: PUSH1 0x00
00005538: DUP3
00005539: PUSH2 0x5552
0000553c: JUMPI
0000553d: PUSH4 0x4e487b71
00005542: PUSH1 0xe0
00005544: SHL
00005545: PUSH1 0x00
00005547: MSTORE
00005548: PUSH1 0x12
0000554a: PUSH1 0x04
0000554c: MSTORE
0000554d: PUSH1 0x24
0000554f: PUSH1 0x00
00005551: REVERT
00005552: JUMPDEST
00005553: POP
00005554: DIV
00005555: SWAP1
00005556: JUMP
00005557: JUMPDEST
00005558: PUSH1 0x00
0000555a: PUSH2 0x0160
0000555d: DUP3
0000555e: DUP5
0000555f: SUB
00005560: SLT
00005561: ISZERO
00005562: PUSH2 0x556a
00005565: JUMPI
00005566: PUSH1 0x00
00005568: DUP1
00005569: REVERT
0000556a: JUMPDEST
0000556b: PUSH2 0x5572
0000556e: PUSH2 0x48a3
00005571: JUMP
00005572: JUMPDEST
00005573: PUSH2 0x557b
00005576: DUP4
00005577: PUSH2 0x5062
0000557a: JUMP
0000557b: JUMPDEST
0000557c: DUP2
0000557d: MSTORE
0000557e: PUSH1 0x20
00005580: DUP4
00005581: ADD
00005582: MLOAD
00005583: PUSH1 0x20
00005585: DUP3
00005586: ADD
00005587: MSTORE
00005588: PUSH1 0x40
0000558a: DUP4
0000558b: ADD
0000558c: MLOAD
0000558d: PUSH1 0x40
0000558f: DUP3
00005590: ADD
00005591: MSTORE
00005592: PUSH1 0x60
00005594: DUP4
00005595: ADD
00005596: MLOAD
00005597: PUSH1 0x60
00005599: DUP3
0000559a: ADD
0000559b: MSTORE
0000559c: PUSH1 0x80
0000559e: DUP4
0000559f: ADD
000055a0: MLOAD
000055a1: PUSH1 0x80
000055a3: DUP3
000055a4: ADD
000055a5: MSTORE
000055a6: PUSH1 0xa0
000055a8: DUP4
000055a9: ADD
000055aa: MLOAD
000055ab: PUSH1 0xa0
000055ad: DUP3
000055ae: ADD
000055af: MSTORE
000055b0: PUSH1 0xc0
000055b2: DUP4
000055b3: ADD
000055b4: MLOAD
000055b5: PUSH1 0xc0
000055b7: DUP3
000055b8: ADD
000055b9: MSTORE
000055ba: PUSH1 0xe0
000055bc: DUP4
000055bd: ADD
000055be: MLOAD
000055bf: PUSH1 0xe0
000055c1: DUP3
000055c2: ADD
000055c3: MSTORE
000055c4: PUSH2 0x0100
000055c7: DUP1
000055c8: DUP5
000055c9: ADD
000055ca: MLOAD
000055cb: DUP2
000055cc: DUP4
000055cd: ADD
000055ce: MSTORE
000055cf: POP
000055d0: PUSH2 0x0120
000055d3: DUP1
000055d4: DUP5
000055d5: ADD
000055d6: MLOAD
000055d7: DUP2
000055d8: DUP4
000055d9: ADD
000055da: MSTORE
000055db: POP
000055dc: PUSH2 0x0140
000055df: DUP1
000055e0: DUP5
000055e1: ADD
000055e2: MLOAD
000055e3: DUP2
000055e4: DUP4
000055e5: ADD
000055e6: MSTORE
000055e7: POP
000055e8: DUP1
000055e9: SWAP2
000055ea: POP
000055eb: POP
000055ec: SWAP3
000055ed: SWAP2
000055ee: POP
000055ef: POP
000055f0: JUMP
000055f1: JUMPDEST
000055f2: DUP2
000055f3: DUP4
000055f4: MSTORE
000055f5: DUP2
000055f6: DUP2
000055f7: PUSH1 0x20
000055f9: DUP6
000055fa: ADD
000055fb: CALLDATACOPY
000055fc: POP
000055fd: PUSH1 0x00
000055ff: DUP3
00005600: DUP3
00005601: ADD
00005602: PUSH1 0x20
00005604: SWAP1
00005605: DUP2
00005606: ADD
00005607: SWAP2
00005608: SWAP1
00005609: SWAP2
0000560a: MSTORE
0000560b: PUSH1 0x1f
0000560d: SWAP1
0000560e: SWAP2
0000560f: ADD
00005610: PUSH1 0x1f
00005612: NOT
00005613: AND
00005614: SWAP1
00005615: SWAP2
00005616: ADD
00005617: ADD
00005618: SWAP1
00005619: JUMP
0000561a: JUMPDEST
0000561b: DUP10
0000561c: DUP2
0000561d: MSTORE
0000561e: PUSH1 0x20
00005620: DUP2
00005621: ADD
00005622: DUP10
00005623: SWAP1
00005624: MSTORE
00005625: PUSH1 0x01
00005627: PUSH1 0x01
00005629: PUSH1 0xa0
0000562b: SHL
0000562c: SUB
0000562d: DUP9
0000562e: AND
0000562f: PUSH1 0x40
00005631: DUP3
00005632: ADD
00005633: MSTORE
00005634: PUSH1 0x00
00005636: PUSH2 0x0340
00005639: PUSH2 0x5645
0000563c: PUSH1 0x60
0000563e: DUP5
0000563f: ADD
00005640: DUP11
00005641: PUSH2 0x548c
00005644: JUMP
00005645: JUMPDEST
00005646: PUSH2 0x0120
00005649: PUSH2 0x565d
0000564c: DUP2
0000564d: DUP6
0000564e: ADD
0000564f: DUP11
00005650: MLOAD
00005651: PUSH1 0x01
00005653: PUSH1 0x01
00005655: PUSH1 0xa0
00005657: SHL
00005658: SUB
00005659: AND
0000565a: SWAP1
0000565b: MSTORE
0000565c: JUMP
0000565d: JUMPDEST
0000565e: PUSH1 0x20
00005660: DUP10
00005661: ADD
00005662: MLOAD
00005663: PUSH2 0x0140
00005666: DUP6
00005667: DUP2
00005668: ADD
00005669: SWAP2
0000566a: SWAP1
0000566b: SWAP2
0000566c: MSTORE
0000566d: PUSH1 0x40
0000566f: DUP11
00005670: ADD
00005671: MLOAD
00005672: PUSH2 0x0160
00005675: DUP7
00005676: ADD
00005677: MSTORE
00005678: PUSH1 0x60
0000567a: DUP11
0000567b: ADD
0000567c: MLOAD
0000567d: PUSH2 0x0180
00005680: DUP7
00005681: ADD
00005682: MSTORE
00005683: PUSH1 0x80
00005685: DUP11
00005686: ADD
00005687: MLOAD
00005688: PUSH2 0x01a0
0000568b: DUP7
0000568c: ADD
0000568d: MSTORE
0000568e: PUSH1 0xa0
00005690: DUP11
00005691: ADD
00005692: MLOAD
00005693: PUSH2 0x01c0
00005696: DUP7
00005697: ADD
00005698: MSTORE
00005699: PUSH1 0xc0
0000569b: DUP11
0000569c: ADD
0000569d: MLOAD
0000569e: PUSH2 0x01e0
000056a1: DUP7
000056a2: ADD
000056a3: MSTORE
000056a4: PUSH1 0xe0
000056a6: DUP11
000056a7: ADD
000056a8: MLOAD
000056a9: PUSH2 0x0200
000056ac: DUP7
000056ad: ADD
000056ae: MSTORE
000056af: PUSH2 0x0100
000056b2: DUP11
000056b3: ADD
000056b4: MLOAD
000056b5: PUSH2 0x0220
000056b8: DUP7
000056b9: ADD
000056ba: MSTORE
000056bb: SWAP1
000056bc: DUP10
000056bd: ADD
000056be: MLOAD
000056bf: PUSH2 0x0240
000056c2: DUP6
000056c3: ADD
000056c4: MSTORE
000056c5: DUP9
000056c6: ADD
000056c7: MLOAD
000056c8: PUSH2 0x0260
000056cb: DUP5
000056cc: ADD
000056cd: MSTORE
000056ce: PUSH1 0x01
000056d0: PUSH1 0x01
000056d2: PUSH1 0xa0
000056d4: SHL
000056d5: SUB
000056d6: DUP8
000056d7: AND
000056d8: PUSH2 0x0280
000056db: DUP5
000056dc: ADD
000056dd: MSTORE
000056de: DUP6
000056df: MLOAD
000056e0: PUSH2 0x02a0
000056e3: DUP5
000056e4: ADD
000056e5: MSTORE
000056e6: PUSH1 0x20
000056e8: DUP7
000056e9: ADD
000056ea: MLOAD
000056eb: PUSH2 0x02c0
000056ee: DUP5
000056ef: ADD
000056f0: MSTORE
000056f1: PUSH1 0x40
000056f3: DUP7
000056f4: ADD
000056f5: MLOAD
000056f6: PUSH1 0x01
000056f8: PUSH1 0x01
000056fa: PUSH1 0xa0
000056fc: SHL
000056fd: SUB
000056fe: AND
000056ff: PUSH2 0x02e0
00005702: DUP5
00005703: ADD
00005704: MSTORE
00005705: PUSH1 0x60
00005707: DUP7
00005708: ADD
00005709: MLOAD
0000570a: ISZERO
0000570b: ISZERO
0000570c: PUSH2 0x0300
0000570f: DUP5
00005710: ADD
00005711: MSTORE
00005712: DUP1
00005713: PUSH2 0x0320
00005716: DUP5
00005717: ADD
00005718: MSTORE
00005719: PUSH2 0x5725
0000571c: DUP2
0000571d: DUP5
0000571e: ADD
0000571f: DUP6
00005720: DUP8
00005721: PUSH2 0x55f1
00005724: JUMP
00005725: JUMPDEST
00005726: SWAP13
00005727: SWAP12
00005728: POP
00005729: POP
0000572a: POP
0000572b: POP
0000572c: POP
0000572d: POP
0000572e: POP
0000572f: POP
00005730: POP
00005731: POP
00005732: POP
00005733: POP
00005734: JUMP
00005735: INVALID
00005736: LOG2
00005737: PUSH5 0x6970667358
0000573d: UNKNOWN(0x22)
0000573e: SLT
0000573f: KECCAK256
00005740: SWAP15
00005741: CALLDATALOAD
00005742: PUSH22 0x59fc6882407fc3f3609f4c81aa40f9d5f3317e32cdb2
00005759: STATICCALL
0000575a: UNKNOWN(0xE0)
0000575b: UNKNOWN(0x2F)
0000575c: PUSH27

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 yes yes
view
trace_id: 0xb2381d4de4ea18881ff09400c54bdecd127f43029601871320c98c52a01b91cc
call_targets: 0x8709b88c5cbca830d63f726a6f6f8c6573486223, 0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea, 0xcd29a689eb1fd7f333dbe6855dcdd38796f78567, 0xd18bac6d95119237b225db48ec29155a8cd08743, 0xf19c66cb159246e00b5336b1ce4b4e8e01e4e4b4
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 26,
    "trace_id": "0xb2381d4de4ea18881ff09400c54bdecd127f43029601871320c98c52a01b91cc",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x8709b88c5cbca830d63f726a6f6f8c6573486223",
        "0x8bb2b57ab1f110c5720d54e07d87a9f6b40d9fea",
        "0xcd29a689eb1fd7f333dbe6855dcdd38796f78567",
        "0xd18bac6d95119237b225db48ec29155a8cd08743",
        "0xf19c66cb159246e00b5336b1ce4b4e8e01e4e4b4"
    ],
    "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": "0xe50d8b26",
            "selector": "0xe50d8b26",
            "calldata_variants": [
                "0xe50d8b26",
                "0xe50d8b260000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe9f45bec",
            "selector": "0xe9f45bec",
            "calldata_variants": [
                "0xe9f45bec",
                "0xe9f45bec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf12baf5c",
            "selector": "0xf12baf5c",
            "calldata_variants": [
                "0xf12baf5c",
                "0xf12baf5c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc468021",
            "selector": "0xfc468021",
            "calldata_variants": [
                "0xfc468021",
                "0xfc4680210000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda62e064",
            "selector": "0xda62e064",
            "calldata_variants": [
                "0xda62e064",
                "0xda62e0640000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdc47c23a",
            "selector": "0xdc47c23a",
            "calldata_variants": [
                "0xdc47c23a",
                "0xdc47c23a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdcc3e06e",
            "selector": "0xdcc3e06e",
            "calldata_variants": [
                "0xdcc3e06e",
                "0xdcc3e06e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3191,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 3521,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 3732,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 25,
    "untrusted_delegatecall_count": 24
}
high access_control codex Zero-in flashRebalance bypasses strategy validation and allows asset extraction 85 no
view
evidence_json
{
    "evidence": "`verifyRebalance` is only executed inside `if (params.amountIn > 0)`, while `_handleRebalanceOut` executes regardless and can transfer assets to `receiver`.",
    "locations": [
        "contracts/src/vault/libs/AutopoolDebt.sol:127",
        "contracts/src/vault/libs/AutopoolDebt.sol:156",
        "contracts/src/vault/libs/AutopoolDebt.sol:180"
    ],
    "recommendation": "Require `amountIn > 0` for flash rebalances or run `autoPoolStrategy.verifyRebalance` unconditionally. Alternatively enforce value-in >= value-out or restrict `receiver` for zero-in paths to prevent external extraction.",
    "exploit_scenario": "A caller with the SOLVER role can invoke `flashRebalance` with `amountIn == 0` and `amountOut > 0`, setting `receiver` to an attacker-controlled address. `_handleRebalanceOut` will transfer assets out (idle base asset or destination underlyer) and accounting is updated, but `verifyRebalance` is never called because it is gated by `amountIn > 0`, allowing unvalidated net outflows."
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x8201b2474262e7fabc0920190145a895a155f26ee44cc7f5d4884bae8ed176ff
call_targets: 0xf90bb2baa90b457a35c37c5a96de2720ce367281
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8201b2474262e7fabc0920190145a895a155f26ee44cc7f5d4884bae8ed176ff",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf90bb2baa90b457a35c37c5a96de2720ce367281"
    ],
    "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": "0xe50d8b26",
            "selector": "0xe50d8b26",
            "calldata_variants": [
                "0xe50d8b26",
                "0xe50d8b260000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe9f45bec",
            "selector": "0xe9f45bec",
            "calldata_variants": [
                "0xe9f45bec",
                "0xe9f45bec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf12baf5c",
            "selector": "0xf12baf5c",
            "calldata_variants": [
                "0xf12baf5c",
                "0xf12baf5c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc468021",
            "selector": "0xfc468021",
            "calldata_variants": [
                "0xfc468021",
                "0xfc4680210000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda62e064",
            "selector": "0xda62e064",
            "calldata_variants": [
                "0xda62e064",
                "0xda62e0640000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdc47c23a",
            "selector": "0xdc47c23a",
            "calldata_variants": [
                "0xdc47c23a",
                "0xdc47c23a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdcc3e06e",
            "selector": "0xdcc3e06e",
            "calldata_variants": [
                "0xdcc3e06e",
                "0xdcc3e06e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7177,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7799,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7943,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 8,
    "guards_detected": [],
    "untrusted_call_count": 8
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x8201b2474262e7fabc0920190145a895a155f26ee44cc7f5d4884bae8ed176ff
call_targets: 0xf90bb2baa90b457a35c37c5a96de2720ce367281
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8201b2474262e7fabc0920190145a895a155f26ee44cc7f5d4884bae8ed176ff",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf90bb2baa90b457a35c37c5a96de2720ce367281"
    ],
    "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": "0xe50d8b26",
            "selector": "0xe50d8b26",
            "calldata_variants": [
                "0xe50d8b26",
                "0xe50d8b260000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe9f45bec",
            "selector": "0xe9f45bec",
            "calldata_variants": [
                "0xe9f45bec",
                "0xe9f45bec0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf12baf5c",
            "selector": "0xf12baf5c",
            "calldata_variants": [
                "0xf12baf5c",
                "0xf12baf5c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc468021",
            "selector": "0xfc468021",
            "calldata_variants": [
                "0xfc468021",
                "0xfc4680210000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xda62e064",
            "selector": "0xda62e064",
            "calldata_variants": [
                "0xda62e064",
                "0xda62e0640000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdc47c23a",
            "selector": "0xdc47c23a",
            "calldata_variants": [
                "0xdc47c23a",
                "0xdc47c23a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdcc3e06e",
            "selector": "0xdcc3e06e",
            "calldata_variants": [
                "0xdcc3e06e",
                "0xdcc3e06e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7177,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7799,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7943,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 8,
    "guards_detected": []
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 25
}
medium access_control codex Token recovery can sweep tracked assets due to disabled safety checks 75 no
view
evidence_json
{
    "evidence": "The guard that blocks recovery of the vault token, base asset, and destination tokens is commented out, leaving only a blind transfer loop.",
    "locations": [
        "contracts/src/vault/libs/Autopool4626.sol:144",
        "contracts/src/vault/libs/Autopool4626.sol:155",
        "contracts/src/vault/libs/Autopool4626.sol:169"
    ],
    "recommendation": "Reinstate and enforce the tracked-asset checks (vault shares, base asset, registered destinations) or introduce an explicit allowlist of recoverable tokens. Consider separating the dust-sweeper role from any role that can move core assets.",
    "exploit_scenario": "The `TOKEN_RECOVERY_MANAGER` role can call `recover` with the base asset, vault shares, or destination vault tokens and transfer them to an arbitrary destination. The intended guardrails to prevent sweeping tracked assets are commented out, so a compromised or over-privileged recovery manager can drain user funds."
}
low other codex Unchecked ETH transfer in recover can silently fail 65 no
view
evidence_json
{
    "evidence": "`payable(destination).call{ value: amount };` is executed without checking the success flag.",
    "locations": [
        "contracts/src/vault/libs/Autopool4626.sol:172"
    ],
    "recommendation": "Check the boolean return value and revert on failure or use `Address.sendValue` to enforce success.",
    "exploit_scenario": "If `destination` is a non-payable contract or reverts on receive, the low-level ETH `call` fails but the function does not check the return value. The call will silently fail while `TokensRecovered` is emitted, potentially leading to stuck ETH or misleading accounting."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 17
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 31
}