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

Analysis Run

019bab3d-c746-7355-af08-a01c5cba9495

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:08 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
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
VaultLib.processor(address[],uint256[],bytes[]) (src/library/VaultLib.sol#319-336) sends eth to arbitrary user
crit 0 high 0 direct contract
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
39142 artifact.fetch complete 1 / 3 3 months ago
39143 proxy.resolve complete 1 / 3 3 months ago
39144 tool.cast_disasm complete 1 / 3 3 months ago
39145 analysis.bundle complete 1 / 3 3 months ago
39146 capability.graph complete 1 / 3 3 months ago
39147 detector.run complete 1 / 3 3 months ago
39148 validation.fork complete 1 / 3 3 months ago
39254 report.consolidate complete 1 / 6 3 months ago
39255 tool.slither complete 1 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
2
Solc
0.8.24 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-vqubff6j)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-vqubff6j)

TimelockController._execute(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#412-415) sends eth to arbitrary user
	Dangerous calls:
	- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#413)
VaultLib.processor(address[],uint256[],bytes[]) (src/library/VaultLib.sol#319-336) sends eth to arbitrary user
	Dangerous calls:
	- (success,returnData_) = targets[i].call{value: values[i]}(data[i]) (src/library/VaultLib.sol#329)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations

Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) has bitwise-xor operator ^ instead of the exponentiation operator **: 
	 - inverse = (3 * denominator) ^ 2 (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#184)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-exponentiation

TransparentUpgradeableProxy._fallback() (lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#93-103) calls Proxy._fallback() (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#58-60) which halt the execution return(uint256,uint256)(0,returndatasize()()) (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#42)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-return-in-assembly

Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#169)
	- inverse = (3 * denominator) ^ 2 (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#184)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#188)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#189)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#190)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#191)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#192)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- denominator = denominator / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#169)
	- inverse *= 2 - denominator * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#193)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) performs a multiplication on the result of a division:
	- prod0 = prod0 / twos (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#172)
	- result = prod0 * inverse (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#199)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply

TimelockController.getOperationState(bytes32) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#207-218) uses a dangerous strict equality:
	- timestamp == 0 (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#209)
TimelockController.getOperationState(bytes32) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#207-218) uses a dangerous strict equality:
	- timestamp == _DONE_TIMESTAMP (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#211)
VaultLib.computeTotalAssets() (src/library/VaultLib.sol#295-310) uses a dangerous strict equality:
	- balance == 0 (src/library/VaultLib.sol#307)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities

TimelockController._execute(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#412-415) ignores return value by Address.verifyCallResult(success,returndata) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#414)
ERC1967Utils.upgradeToAndCall(address,bytes) (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol#83-92) ignores return value by Address.functionDelegateCall(newImplementation,data) (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol#88)
ERC1967Utils.upgradeBeaconToAndCall(address,bytes) (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol#173-182) ignores return value by Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data) (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol#178)
BaseVault._withdraw(address,address,address,uint256,uint256) (src/BaseVault.sol#506-522) ignores return value by IStrategy(vaultStorage.buffer).withdraw(assets,receiver,address(this)) (src/BaseVault.sol#519)
BaseVault._convertToAssets(address,uint256,Math.Rounding) (src/BaseVault.sol#531-538) ignores return value by VaultLib.convertToAssets(asset_,shares,rounding) (src/BaseVault.sol#537)
BaseVault._convertToShares(address,uint256,Math.Rounding) (src/BaseVault.sol#547-554) ignores return value by VaultLib.convertToShares(asset_,assets,rounding) (src/BaseVault.sol#553)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return

ERC20PermitUpgradeable.__ERC20Permit_init(string).name (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol#40) shadows:
	- ERC20Upgradeable.name() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#76-79) (function)
	- IERC20Metadata.name() (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#15) (function)
BaseVault._initialize(address,string,string,uint8,bool,bool,bool,uint256).name (src/BaseVault.sol#73) shadows:
	- ERC20Upgradeable.name() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#76-79) (function)
	- IERC20Metadata.name() (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#15) (function)
BaseVault._initialize(address,string,string,uint8,bool,bool,bool,uint256).symbol (src/BaseVault.sol#74) shadows:
	- ERC20Upgradeable.symbol() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#85-88) (function)
	- IERC20Metadata.symbol() (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#20) (function)
Vault.initialize(address,string,string,uint8,uint64,bool,bool,uint256).name (src/Vault.sol#45) shadows:
	- ERC20Upgradeable.name() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#76-79) (function)
	- IERC20Metadata.name() (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#15) (function)
Vault.initialize(address,string,string,uint8,uint64,bool,bool,uint256).symbol (src/Vault.sol#46) shadows:
	- ERC20Upgradeable.symbol() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#85-88) (function)
	- IERC20Metadata.symbol() (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#20) (function)
ICurveLpConnector.rate().rate (src/interface/IProvider.sol#42) shadows:
	- ICurveLpConnector.rate() (src/interface/IProvider.sol#42) (function)
IVault.setProvider(address).provider (src/interface/IVault.sol#126) shadows:
	- IVault.provider() (src/interface/IVault.sol#121) (function)
IVault.setBuffer(address).buffer (src/interface/IVault.sol#127) shadows:
	- IVault.buffer() (src/interface/IVault.sol#122) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing

TransparentUpgradeableProxy.constructor(address,address,bytes).initialOwner (lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#77) lacks a zero-check on :
		- _admin = address(new ProxyAdmin(initialOwner)) (lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#78)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

TimelockController._execute(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#412-415) has external calls inside a loop: (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#413)
	Calls stack containing the loop:
		TimelockController.executeBatch(address[],uint256[],bytes[],bytes32,bytes32)
VaultLib.computeTotalAssets() (src/library/VaultLib.sol#295-310) has external calls inside a loop: balance = IERC20(assetList[i]).balanceOf(address(this)) (src/library/VaultLib.sol#306)
VaultLib.convertAssetToBase(address,uint256) (src/library/VaultLib.sol#177-181) has external calls inside a loop: rate = IProvider(getVaultStorage().provider).getRate(asset_) (src/library/VaultLib.sol#179)
	Calls stack containing the loop:
		VaultLib.computeTotalAssets()
VaultLib.processor(address[],uint256[],bytes[]) (src/library/VaultLib.sol#319-336) has external calls inside a loop: (success,returnData_) = targets[i].call{value: values[i]}(data[i]) (src/library/VaultLib.sol#329)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop

Reentrancy in BaseVault._deposit(address,address,address,uint256,uint256,uint256) (src/BaseVault.sol#458-480):
	External calls:
	- SafeERC20.safeTransferFrom(IERC20(asset_),caller,address(this),assets) (src/BaseVault.sol#472)
	State variables written after the call(s):
	- _mint(receiver,shares) (src/BaseVault.sol#473)
		- $ = ERC20StorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#53)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2

Reentrancy in TimelockController.execute(address,uint256,bytes,bytes32,bytes32) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#358-371):
	External calls:
	- _execute(target,value,payload) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#368)
		- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#413)
	Event emitted after the call(s):
	- CallExecuted(id,0,target,value,payload) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#369)
Reentrancy in TimelockController.executeBatch(address[],uint256[],bytes[],bytes32,bytes32) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#385-407):
	External calls:
	- _execute(target,value,payload) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#403)
		- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#413)
	Event emitted after the call(s):
	- CallExecuted(id,i,target,value,payload) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#404)
Reentrancy in VaultLib.processor(address[],uint256[],bytes[]) (src/library/VaultLib.sol#319-336):
	External calls:
	- (success,returnData_) = targets[i].call{value: values[i]}(data[i]) (src/library/VaultLib.sol#329)
	Event emitted after the call(s):
	- IVault.ProcessSuccess(targets,values,returnData) (src/library/VaultLib.sol#335)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

TimelockController.getOperationState(bytes32) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#207-218) uses timestamp for comparisons
	Dangerous comparisons:
	- timestamp == 0 (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#209)
	- timestamp == _DONE_TIMESTAMP (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#211)
	- timestamp > block.timestamp (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#213)
ERC20PermitUpgradeable.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol#49-72) uses timestamp for comparisons
	Dangerous comparisons:
	- block.timestamp > deadline (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol#58)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

Proxy._delegate(address) (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#22-45) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#23-44)
Address._revert(bytes) (lib/openzeppelin-contracts/contracts/utils/Address.sol#146-158) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Address.sol#151-154)
StorageSlot.getAddressSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#59-64) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#61-63)
StorageSlot.getBooleanSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#69-74) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#71-73)
StorageSlot.getBytes32Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#79-84) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#81-83)
StorageSlot.getUint256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#89-94) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#91-93)
StorageSlot.getStringSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#99-104) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#101-103)
StorageSlot.getStringSlot(string) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#109-114) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#111-113)
StorageSlot.getBytesSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#119-124) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#121-123)
StorageSlot.getBytesSlot(bytes) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#129-134) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#131-133)
Strings.toString(uint256) (lib/openzeppelin-contracts/contracts/utils/Strings.sol#24-44) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Strings.sol#30-32)
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Strings.sol#36-38)
ECDSA.tryRecover(bytes32,bytes) (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#56-73) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#64-68)
MessageHashUtils.toEthSignedMessageHash(bytes32) (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#30-37) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#32-36)
MessageHashUtils.toTypedDataHash(bytes32,bytes32) (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#76-85) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#78-84)
Math.mulDiv(uint256,uint256,uint256) (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#123-202) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#130-133)
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#154-161)
	- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#167-176)
AccessControlUpgradeable._getAccessControlStorage() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#67-71) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#68-70)
Initializable._getInitializableStorage() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#223-227) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#224-226)
ERC20Upgradeable._getERC20Storage() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#51-55) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#52-54)
NoncesUpgradeable._getNoncesStorage() (lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol#23-27) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol#24-26)
ReentrancyGuardUpgradeable._getReentrancyGuardStorage() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol#46-50) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol#47-49)
EIP712Upgradeable._getEIP712Storage() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#50-54) uses assembly
	- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#51-53)
VaultLib.getERC20Storage() (src/library/VaultLib.sol#25-30) uses assembly
	- INLINE ASM (src/library/VaultLib.sol#26-29)
VaultLib.getVaultStorage() (src/library/VaultLib.sol#36-41) uses assembly
	- INLINE ASM (src/library/VaultLib.sol#37-40)
VaultLib.getAssetStorage() (src/library/VaultLib.sol#47-52) uses assembly
	- INLINE ASM (src/library/VaultLib.sol#48-51)
VaultLib.getProcessorStorage() (src/library/VaultLib.sol#58-63) uses assembly
	- INLINE ASM (src/library/VaultLib.sol#59-62)
VaultLib.getFeeStorage() (src/library/VaultLib.sol#69-74) uses assembly
	- INLINE ASM (src/library/VaultLib.sol#70-73)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

2 different versions of Solidity are used:
	- Version constraint ^0.8.20 is used by:
		-^0.8.20 (lib/openzeppelin-contracts/contracts/access/AccessControl.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#3)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Strings.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol#3)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)
	- Version constraint ^0.8.24 is used by:
		-^0.8.24 (src/BaseVault.sol#2)
		-^0.8.24 (src/Common.sol#3)
		-^0.8.24 (src/Vault.sol#2)
		-^0.8.24 (src/interface/IProvider.sol#2)
		-^0.8.24 (src/interface/IStrategy.sol#2)
		-^0.8.24 (src/interface/IValidator.sol#2)
		-^0.8.24 (src/interface/IVault.sol#2)
		-^0.8.24 (src/library/VaultLib.sol#2)
		-^0.8.24 (src/module/FeeMath.sol#2)
		-^0.8.24 (src/module/Guard.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

BaseVault._convertAssetToBase(address,uint256) (src/BaseVault.sol#562-564) is never used and should be removed
BaseVault._convertBaseToAsset(address,uint256) (src/BaseVault.sol#572-574) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess.
It is used by:
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/access/AccessControl.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#3)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Strings.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/Math.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol#3)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#4)
	- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in TimelockController._execute(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#412-415):
	- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#413)
Low level call in SafeERC20._callOptionalReturnBool(IERC20,bytes) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#110-117):
	- (success,returndata) = address(token).call(data) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#115)
Low level call in Address.sendValue(address,uint256) (lib/openzeppelin-contracts/contracts/utils/Address.sol#41-50):
	- (success,None) = recipient.call{value: amount}() (lib/openzeppelin-contracts/contracts/utils/Address.sol#46)
Low level call in Address.functionCallWithValue(address,bytes,uint256) (lib/openzeppelin-contracts/contracts/utils/Address.sol#83-89):
	- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#87)
Low level call in Address.functionStaticCall(address,bytes) (lib/openzeppelin-contracts/contracts/utils/Address.sol#95-98):
	- (success,returndata) = target.staticcall(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#96)
Low level call in Address.functionDelegateCall(address,bytes) (lib/openzeppelin-contracts/contracts/utils/Address.sol#104-107):
	- (success,returndata) = target.delegatecall(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#105)
Low level call in VaultLib.processor(address[],uint256[],bytes[]) (src/library/VaultLib.sol#319-336):
	- (success,returnData_) = targets[i].call{value: values[i]}(data[i]) (src/library/VaultLib.sol#329)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Function IERC20Permit.DOMAIN_SEPARATOR() (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol#89) is not in mixedCase
Function AccessControlUpgradeable.__AccessControl_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#82-83) is not in mixedCase
Function AccessControlUpgradeable.__AccessControl_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#85-86) is not in mixedCase
Constant AccessControlUpgradeable.AccessControlStorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#65) is not in UPPER_CASE_WITH_UNDERSCORES
Function ERC20Upgradeable.__ERC20_init(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#63-65) is not in mixedCase
Function ERC20Upgradeable.__ERC20_init_unchained(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#67-71) is not in mixedCase
Constant ERC20Upgradeable.ERC20StorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#49) is not in UPPER_CASE_WITH_UNDERSCORES
Function ERC20PermitUpgradeable.__ERC20Permit_init(string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol#40-42) is not in mixedCase
Function ERC20PermitUpgradeable.__ERC20Permit_init_unchained(string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol#44) is not in mixedCase
Function ERC20PermitUpgradeable.DOMAIN_SEPARATOR() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol#85-87) is not in mixedCase
Function ContextUpgradeable.__Context_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#18-19) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Function NoncesUpgradeable.__Nonces_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol#29-30) is not in mixedCase
Function NoncesUpgradeable.__Nonces_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol#32-33) is not in mixedCase
Constant NoncesUpgradeable.NoncesStorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol#21) is not in UPPER_CASE_WITH_UNDERSCORES
Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol#57-59) is not in mixedCase
Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol#61-64) is not in mixedCase
Constant ReentrancyGuardUpgradeable.ReentrancyGuardStorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol#44) is not in UPPER_CASE_WITH_UNDERSCORES
Function EIP712Upgradeable.__EIP712_init(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#68-70) is not in mixedCase
Function EIP712Upgradeable.__EIP712_init_unchained(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#72-80) is not in mixedCase
Function EIP712Upgradeable._EIP712Name() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#151-154) is not in mixedCase
Function EIP712Upgradeable._EIP712Version() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#162-165) is not in mixedCase
Function EIP712Upgradeable._EIP712NameHash() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#172-187) is not in mixedCase
Function EIP712Upgradeable._EIP712VersionHash() (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#194-209) is not in mixedCase
Constant EIP712Upgradeable.EIP712StorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol#48) is not in UPPER_CASE_WITH_UNDERSCORES
Function ERC165Upgradeable.__ERC165_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#22-23) is not in mixedCase
Function ERC165Upgradeable.__ERC165_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#25-26) is not in mixedCase
Function BaseVault._feeOnRaw(uint256) (src/BaseVault.sol#826) is not in mixedCase
Function BaseVault._feeOnTotal(uint256) (src/BaseVault.sol#833) is not in mixedCase
Function Vault._feeOnRaw(uint256) (src/Vault.sol#74-81) is not in mixedCase
Function Vault._feeOnTotal(uint256) (src/Vault.sol#90-97) is not in mixedCase
Function IVault._feeOnRaw(uint256) (src/interface/IVault.sol#141) is not in mixedCase
Function IVault._feeOnTotal(uint256) (src/interface/IVault.sol#142) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
. analyzed (64 contracts with 100 detectors), 110 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.24",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.8.24",
        "install_stderr": null,
        "install_stdout": "Version '0.8.24' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-vqubff6j --include-path /tmp/slither-vqubff6j/lib --include-path /tmp/slither-vqubff6j/lib/openzeppelin-contracts-upgradeable --include-path /tmp/slither-vqubff6j/lib/openzeppelin-contracts --allow-paths /tmp/slither-vqubff6j,/tmp/slither-vqubff6j/lib,/tmp/slither-vqubff6j/lib/openzeppelin-contracts,/tmp/slither-vqubff6j/lib/openzeppelin-contracts-upgradeable,/tmp/slither-vqubff6j/src",
    "remappings": [
        "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        "ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/",
        "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
        "forge-std/=lib/forge-std/src/",
        "halmos-cheatcodes/=lib/wrapped-token/lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/",
        "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "wrapped-token/=lib/wrapped-token/",
        "src/=src/"
    ],
    "source_files": [
        "src/Vault.sol",
        "src/BaseVault.sol",
        "src/module/FeeMath.sol",
        "src/library/VaultLib.sol",
        "src/Common.sol",
        "src/interface/IVault.sol",
        "src/interface/IStrategy.sol",
        "src/interface/IProvider.sol",
        "src/module/Guard.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
        "lib/openzeppelin-contracts/contracts/utils/Address.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol",
        "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/Math.sol",
        "lib/openzeppelin-contracts/contracts/proxy/transparent/ProxyAdmin.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol",
        "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
        "lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
        "src/interface/IValidator.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol",
        "lib/openzeppelin-contracts/contracts/utils/Context.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol",
        "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol",
        "lib/openzeppelin-contracts/contracts/access/Ownable.sol",
        "lib/openzeppelin-contracts/contracts/access/AccessControl.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol",
        "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol",
        "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol",
        "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol",
        "lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol",
        "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol",
        "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol",
        "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol",
        "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol",
        "lib/openzeppelin-contracts/contracts/utils/Strings.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 110,
    "workspace_hash": "c89522052af2e9ff4a80020e56c56c2157714b6927b7106c6361778ff0c61f68",
    "duration_seconds": 3.777475118637085,
    "solc_version_requested": "0.8.24"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Found 3 issues: accounting ignores buffer-held assets (share price manipulation), unguarded oracle rates, and fee-on-transfer deposits can inflate shares.
View stdout
{"no_findings":false,"summary":"Found 3 issues: accounting ignores buffer-held assets (share price manipulation), unguarded oracle rates, and fee-on-transfer deposits can inflate shares.","findings":[{"severity":"high","category":"other","title":"processAccounting ignores buffer/strategy assets, enabling share price manipulation","exploit_scenario":"If vault assets are moved into the buffer strategy (used for withdrawals), any user can call processAccounting() and force totalAssets to be recomputed from only the vault’s on-contract balances. This can drop totalAssets close to zero even though assets still exist in the buffer. An attacker can then deposit a small amount and mint disproportionately many shares (since shares are priced off the deflated totalAssets). Once assets are moved back on-vault or accounting is corrected, the attacker can redeem for more assets than deposited, extracting value from existing holders. Even without profit, it can misprice shares and break maxWithdraw logic.","recommendation":"Include buffer/strategy balances in computeTotalAssets (e.g., add IStrategy(buffer).totalAssets() plus any other strategy holdings) or prevent processAccounting from overwriting totalAssets while assets are held off-vault. Consider restricting processAccounting to trusted keepers if accuracy cannot be guaranteed.","evidence":"computeTotalAssets only sums balances held by address(this) and processAccounting overwrites totalAssets with that value.","locations":["src/library/VaultLib.sol:295","src/library/VaultLib.sol:301","src/library/VaultLib.sol:305","src/BaseVault.sol:773","src/BaseVault.sol:777"]},{"severity":"medium","category":"oracle","title":"Share pricing fully trusts provider rates without validation or staleness checks","exploit_scenario":"convertAssetToBase/convertBaseToAsset use IProvider.getRate(asset_) directly. If the provider source can be manipulated (e.g., DEX spot price, stale oracle, or malicious provider), an attacker can skew the rate, call processAccounting or deposit/redeem, minting shares at an inflated rate or redeeming at a deflated rate and draining value. Because processAccounting is public, attackers can time the update to the manipulated rate themselves.","recommendation":"Use robust oracles (TWAP/Chainlink), add staleness and bounds checks, and consider restricting processAccounting to trusted keepers or validating rates before accepting them. Revert on zero or out-of-range rates.","evidence":"Rates are pulled from IProvider with no validation and used directly in conversions that determine share pricing.","locations":["src/library/VaultLib.sol:177","src/library/VaultLib.sol:189","src/library/VaultLib.sol:248"]},{"severity":"low","category":"other","title":"Fee-on-transfer tokens can inflate shares and totalAssets","exploit_scenario":"_deposit mints shares and increments totalAssets using the requested assets amount, then calls transferFrom. For fee-on-transfer/deflationary tokens, the vault receives fewer tokens than assets, but still mints full shares and records full baseAssets. A user can deposit such a token to mint excess shares, then redeem for more value than actually deposited, diluting existing holders.","recommendation":"Either disallow fee-on-transfer/rebasing assets explicitly or compute actual received amount by checking balanceBefore/balanceAfter and base share minting on the received amount.","evidence":"_deposit updates accounting and mints shares before verifying actual tokens received.","locations":["src/BaseVault.sol:458","src/BaseVault.sol:470","src/BaseVault.sol:472","src/BaseVault.sol:473"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-n7vft4lr
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bac3c-e27f-70a1-8cff-cca4a38754d4
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Reading AUDIT_BUNDLE file**
exec
/bin/bash -lc ls in /tmp/codex-n7vft4lr succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
lib
src

thinking
**Reading AUDIT_BUNDLE file**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-n7vft4lr succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: src/BaseVault.sol
================================================================================
// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.24;

import {
    AccessControlUpgradeable,
    ERC20PermitUpgradeable,
    ERC20Upgradeable,
    IERC20,
    IERC20Metadata,
    Math,
    ReentrancyGuardUpgradeable,
    SafeERC20
} from "src/Common.sol";


thinking
**Planning to read full AUDIT_BUNDLE**
exec
/bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-n7vft4lr succeeded in 6ms:
5:FILE: src/BaseVault.sol
843:FILE: src/Common.sol
875:FILE: src/Vault.sol
1008:FILE: src/interface/IProvider.sol
1055:FILE: src/interface/IStrategy.sol
1080:FILE: src/interface/IValidator.sol
1096:FILE: src/interface/IVault.sol
1243:FILE: src/library/VaultLib.sol
1584:FILE: src/module/FeeMath.sol
1627:FILE: src/module/Guard.sol

thinking
**Preparing to read files for inspection**
exec
/bin/bash -lc "sed -n '1,250p' AUDIT_BUNDLE.txt" in /tmp/codex-n7vft4lr succeeded in 26ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: src/BaseVault.sol
================================================================================
// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.24;

import {
    AccessControlUpgradeable,
    ERC20PermitUpgradeable,
    ERC20Upgradeable,
    IERC20,
    IERC20Metadata,
    Math,
    ReentrancyGuardUpgradeable,
    SafeERC20
} from "src/Common.sol";


thinking
**Continuing to gather BaseVault code**
exec
/bin/bash -lc "sed -n '250,500p' AUDIT_BUNDLE.txt" in /tmp/codex-n7vft4lr succeeded in 6ms:
    function maxWithdraw(address owner) public view virtual returns (uint256) {
        if (paused()) {
            return 0;
        }

        uint256 bufferAssets = IStrategy(buffer()).maxWithdraw(address(this));
        if (bufferAssets == 0) {
            return 0;
        }

        uint256 ownerShares = balanceOf(owner);
        uint256 maxAssets = previewRedeem(ownerShares);

        return bufferAssets < maxAssets ? bufferAssets : maxAssets;
    }

    /**
     * @notice Returns the maximum amount of shares that can be redeemed by a given owner.
     * @param owner The address of the owner.
     * @return uint256 The maximum amount of shares.
exec
/bin/bash -lc "sed -n '500,750p' AUDIT_BUNDLE.txt" in /tmp/codex-n7vft4lr succeeded in 9ms:
    function _subTotalAssets(uint256 baseAssets) internal virtual {
        VaultLib.subTotalAssets(baseAssets);
    }

    /**
     * @notice Internal function to handle withdrawals.
     * @param caller The address of the caller.
     * @param receiver The address of the receiver.
     * @param owner The address of the owner.
     * @param assets The amount of assets to withdraw.
     * @param shares The equivalent amount of shares.
     */
    function _withdraw(address caller, address receiver, address owner, uint256 assets, uint256 shares)
        internal
        virtual
    {
        VaultStorage storage vaultStorage = _getVaultStorage();
        _subTotalAssets(VaultLib.convertAssetToBase(asset(), assets));
        if (caller != owner) {
            _spendAllowance(owner, caller, shares);
exec
/bin/bash -lc "sed -n '750,1000p' AUDIT_BUNDLE.txt" in /tmp/codex-n7vft4lr succeeded in 5ms:
            revert Paused();
        }

        VaultStorage storage vaultStorage = _getVaultStorage();
        vaultStorage.paused = true;
        emit Pause(true);
    }

    /**
     * @notice Unpauses the vault.
     */
    function unpause() external virtual onlyRole(UNPAUSER_ROLE) {
        if (!paused()) {
            revert Unpaused();
        }

        VaultStorage storage vaultStorage = _getVaultStorage();
        if (provider() == address(0)) {
            revert ProviderNotSet();
        }
exec
/bin/bash -lc "sed -n '1000,1250p' AUDIT_BUNDLE.txt" in /tmp/codex-n7vft4lr succeeded in 28ms:
     * @return uint64 The base withdrawal fee in basis points (1/10000)
     */
    function baseWithdrawalFee() external view returns (uint64) {
        return _getFeeStorage().baseWithdrawalFee;
    }
}

================================================================================
FILE: src/interface/IProvider.sol
================================================================================
// SPDX-License-Identifier: BSD-3-Clause
pragma solidity ^0.8.24;

interface IProvider {
    function getRate(address asset) external view returns (uint256);
}

interface IStETH {
    function getPooledEthByShares(uint256 _ethAmount) external view returns (uint256);
}





thinking
**Analyzing potential vulnerabilities in Vault contracts**

I’m reviewing key risks like reentrancy, access control, upgradeability, oracle manipulation, and accounting inconsistencies in VaultLib and BaseVault. There are nuanced concerns with cached totalAssets causing share inflation risk, reliance on external oracle rates without sanity checks, and Guard’s parameter validation possibly bypassable for dynamic types. I’m sifting through external call patterns, role protections, and initialization logic to identify exploitable gaps and economic risks. Let’s explore these together!
thinking
**Identifying accounting and strategy integration flaws**

I’m uncovering a major inconsistency where totalAssets calculation ignores assets held in the buffer strategy, causing serious share price miscalculations and potential inflation exploits. The public processAccounting allows anyone to trigger stale asset updates leading to dilution risks if assets reside in buffer. Additionally, there are risks in Guard’s parameter validation for dynamic data potentially allowing allowlist bypass, alongside reentrancy considerations limited by strict role control. This blend of accounting gaps and validation weaknesses is quite compelling to analyze further!
thinking
**Analyzing nuanced accounting and access intricacies**

I’m working through subtle interactions around array parameter handling in Guard that might cause unintended failures but not exploits, and diving deep into withdrawal, fee, and share calculations that generally hold up. The main spotlight remains on the significant gap where processAccounting ignores buffered assets, risking serious share price inconsistencies if triggered at inopportune times. I’m piecing together how cached totals versus computed totals interplay and whether an attacker could profit from this under certain scenarios.
thinking
**Evaluating multiple design flaws and risks**

There is a tricky design flaw with processAccounting ignoring buffer assets, enabling share price manipulation during timing windows, and a significant risk from permissionless processAccounting combined with manipulable oracle rates affecting totalAssets and share valuation. I’m also spotting a known vulnerability where fee-on-transfer tokens misstate totalAssets on deposit, plus missing ERC20Permit initialization that could impact signature security. These findings point to several serious but distinct areas worth flagging.
thinking
**Analyzing permit initialization and token interaction risks**

I’m looking into the missing ERC20Permit initialization causing permit signatures to malfunction, plus potential reentrancy concerns with token transfers and processAccounting’s use of external token calls. I also note provider zero-rate handling could cause unexpected deposit or withdrawal behaviors, so I’ll gather exact file locations next.
exec
/bin/bash -lc "nl -ba src/library/VaultLib.sol | sed -n '120,220p'" in /tmp/codex-n7vft4lr succeeded in 14ms:
   120	        emit IVault.NewAsset(asset_, decimals_, index);
   121	    }
   122	
   123	    /**
   124	     * @notice Updates an existing asset's parameters in the vault.
   125	     * @param index The index of the asset to update.
   126	     * @param fields The AssetUpdateFields struct containing the updated fields.
   127	     */
   128	    function updateAsset(uint256 index, IVault.AssetUpdateFields calldata fields) public {
   129	        IVault.AssetStorage storage assetStorage = getAssetStorage();
   130	        if (index >= assetStorage.list.length) {
   131	            revert IVault.InvalidAsset(address(0));
   132	        }
   133	
   134	        address asset_ = assetStorage.list[index];
   135	        IVault.AssetParams storage assetParams = assetStorage.assets[asset_];
   136	        assetParams.active = fields.active;
   137	        emit IVault.UpdateAsset(index, asset_, fields);
   138	    }
   139	

thinking
**Locating computeTotalAssets code**
exec
/bin/bash -lc "nl -ba src/library/VaultLib.sol | sed -n '240,340p'" in /tmp/codex-n7vft4lr succeeded in 6ms:
   240	     * @param rounding The rounding direction.
   241	     * @return (shares, baseAssets) The equivalent amount of shares.
   242	     */
   243	    function convertToShares(address asset_, uint256 assets, Math.Rounding rounding)
   244	        public
   245	        view
   246	        returns (uint256, uint256)
   247	    {
   248	        uint256 totalAssets = IVault(address(this)).totalBaseAssets();
   249	        uint256 totalSupply = getERC20Storage().totalSupply;
   250	        uint256 baseAssets = convertAssetToBase(asset_, assets);
   251	        uint256 shares = baseAssets.mulDiv(totalSupply + 1, totalAssets + 1, rounding);
   252	        return (shares, baseAssets);
   253	    }
   254	
   255	    /**
   256	     * @notice Sets the processor rule for a given contract address and function signature.
   257	     * @param target The address of the target contract.
   258	     * @param functionSig The function signature.
   259	     * @param rule The function rule.

thinking
**Locating processAccounting function**
exec
/bin/bash -lc "nl -ba src/BaseVault.sol | sed -n '720,860p'" in /tmp/codex-n7vft4lr succeeded in 6ms:
   720	        virtual
   721	        onlyRole(ASSET_MANAGER_ROLE)
   722	    {
   723	        _getVaultStorage().alwaysComputeTotalAssets = alwaysComputeTotalAssets_;
   724	        emit SetAlwaysComputeTotalAssets(alwaysComputeTotalAssets_);
   725	
   726	        if (!alwaysComputeTotalAssets_) {
   727	            _processAccounting();
   728	        }
   729	    }
   730	
   731	    /**
   732	     * @notice Returns whether the vault always computes total assets.
   733	     * @return bool True if the vault always computes total assets.
   734	     */
   735	    function alwaysComputeTotalAssets() public view virtual returns (bool) {
   736	        return _getVaultStorage().alwaysComputeTotalAssets;
   737	    }
   738	
   739	    /**

thinking
**Analyzing multiple vault vulnerabilities**

I'm working through several issues in the vault contracts, including stale cached totalAssets causing share price manipulation, permissionless processAccounting allowing yield capture, missing checks on provider rates enabling oracle manipulation, and ignoring buffer assets in computeTotalAssets—some marked high risk, others medium or low. I'm gathering line references and detailed reasoning to clearly document these findings.
exec
/bin/bash -lc "nl -ba src/BaseVault.sol | sed -n '330,430p'" in /tmp/codex-n7vft4lr succeeded in 29ms:
   330	
   331	        _withdraw(_msgSender(), receiver, owner, assets, shares);
   332	    }
   333	
   334	    /**
   335	     * @notice Redeems a given amount of shares and transfers the equivalent amount of assets to the receiver.
   336	     * @param shares The amount of shares to redeem.
   337	     * @param receiver The address of the receiver.
   338	     * @param owner The address of the owner.
   339	     * @return assets The equivalent amount of assets.
   340	     */
   341	    function redeem(uint256 shares, address receiver, address owner)
   342	        public
   343	        virtual
   344	        nonReentrant
   345	        returns (uint256 assets)
   346	    {
   347	        if (paused()) {
   348	            revert Paused();
   349	        }

thinking
**Locating _deposit function**
exec
/bin/bash -lc "nl -ba src/BaseVault.sol | sed -n '430,520p'" in /tmp/codex-n7vft4lr succeeded in 6ms:
   430	     * @param receiver The address of the receiver.
   431	     * @return uint256 The equivalent amount of shares.
   432	     */
   433	    function depositAsset(address asset_, uint256 assets, address receiver)
   434	        public
   435	        virtual
   436	        nonReentrant
   437	        returns (uint256)
   438	    {
   439	        if (paused()) {
   440	            revert Paused();
   441	        }
   442	        (uint256 shares, uint256 baseAssets) = _convertToShares(asset_, assets, Math.Rounding.Floor);
   443	        _deposit(asset_, _msgSender(), receiver, assets, shares, baseAssets);
   444	        return shares;
   445	    }
   446	
   447	    //// INTERNAL ////
   448	
   449	    /**

thinking
**Summarizing key security findings**

I'm putting together a structured JSON report describing three main issues: a high-severity accounting bug where `processAccounting` undercounts buffer assets leading to share price manipulation; a medium-severity oracle trust problem due to unchecked provider rates enabling price manipulation; and a low-severity issue where fee-on-transfer tokens cause share inflation by minting based on requested instead of actual received assets. I'll carefully cite code locations, explain exploit scenarios, assign severities, and ensure the output matches the required format with proper categories and evidence.
codex
{"no_findings":false,"summary":"Found 3 issues: accounting ignores buffer-held assets (share price manipulation), unguarded oracle rates, and fee-on-transfer deposits can inflate shares.","findings":[{"severity":"high","category":"other","title":"processAccounting ignores buffer/strategy assets, enabling share price manipulation","exploit_scenario":"If vault assets are moved into the buffer strategy (used for withdrawals), any user can call processAccounting() and force totalAssets to be recomputed from only the vault’s on-contract balances. This can drop totalAssets close to zero even though assets still exist in the buffer. An attacker can then deposit a small amount and mint disproportionately many shares (since shares are priced off the deflated totalAssets). Once assets are moved back on-vault or accounting is corrected, the attacker can redeem for more assets than deposited, extracting value from existing holders. Even without profit, it can misprice shares and break maxWithdraw logic.","recommendation":"Include buffer/strategy balances in computeTotalAssets (e.g., add IStrategy(buffer).totalAssets() plus any other strategy holdings) or prevent processAccounting from overwriting totalAssets while assets are held off-vault. Consider restricting processAccounting to trusted keepers if accuracy cannot be guaranteed.","evidence":"computeTotalAssets only sums balances held by address(this) and processAccounting overwrites totalAssets with that value.","locations":["src/library/VaultLib.sol:295","src/library/VaultLib.sol:301","src/library/VaultLib.sol:305","src/BaseVault.sol:773","src/BaseVault.sol:777"]},{"severity":"medium","category":"oracle","title":"Share pricing fully trusts provider rates without validation or staleness checks","exploit_scenario":"convertAssetToBase/convertBaseToAsset use IProvider.getRate(asset_) directly. If the provider source can be manipulated (e.g., DEX spot price, stale oracle, or malicious provider), an attacker can skew the rate, call processAccounting or deposit/redeem, minting shares at an inflated rate or redeeming at a deflated rate and draining value. Because processAccounting is public, attackers can time the update to the manipulated rate themselves.","recommendation":"Use robust oracles (TWAP/Chainlink), add staleness and bounds checks, and consider restricting processAccounting to trusted keepers or validating rates before accepting them. Revert on zero or out-of-range rates.","evidence":"Rates are pulled from IProvider with no validation and used directly in conversions that determine share pricing.","locations":["src/library/VaultLib.sol:177","src/library/VaultLib.sol:189","src/library/VaultLib.sol:248"]},{"severity":"low","category":"other","title":"Fee-on-transfer tokens can inflate shares and totalAssets","exploit_scenario":"_deposit mints shares and increments totalAssets using the requested assets amount, then calls transferFrom. For fee-on-transfer/deflationary tokens, the vault receives fewer tokens than assets, but still mints full shares and records full baseAssets. A user can deposit such a token to mint excess shares, then redeem for more value than actually deposited, diluting existing holders.","recommendation":"Either disallow fee-on-transfer/rebasing assets explicitly or compute actual received amount by checking balanceBefore/balanceAfter and base share minting on the received amount.","evidence":"_deposit updates accounting and mints shares before verifying actual tokens received.","locations":["src/BaseVault.sol:458","src/BaseVault.sol:470","src/BaseVault.sol:472","src/BaseVault.sol:473"]}]}
tokens used
57,660
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T08:54:02.262342+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 55,
        "import_count": 77,
        "first_party_contracts_count": 10
    },
    "summary": "Found 3 issues: accounting ignores buffer-held assets (share price manipulation), unguarded oracle rates, and fee-on-transfer deposits can inflate shares.",
    "raw_final": {
        "summary": "Found 3 issues: accounting ignores buffer-held assets (share price manipulation), unguarded oracle rates, and fee-on-transfer deposits can inflate shares.",
        "findings": [
            {
                "title": "processAccounting ignores buffer/strategy assets, enabling share price manipulation",
                "category": "other",
                "evidence": "computeTotalAssets only sums balances held by address(this) and processAccounting overwrites totalAssets with that value.",
                "severity": "high",
                "locations": [
                    "src/library/VaultLib.sol:295",
                    "src/library/VaultLib.sol:301",
                    "src/library/VaultLib.sol:305",
                    "src/BaseVault.sol:773",
                    "src/BaseVault.sol:777"
                ],
                "recommendation": "Include buffer/strategy balances in computeTotalAssets (e.g., add IStrategy(buffer).totalAssets() plus any other strategy holdings) or prevent processAccounting from overwriting totalAssets while assets are held off-vault. Consider restricting processAccounting to trusted keepers if accuracy cannot be guaranteed.",
                "exploit_scenario": "If vault assets are moved into the buffer strategy (used for withdrawals), any user can call processAccounting() and force totalAssets to be recomputed from only the vault\u2019s on-contract balances. This can drop totalAssets close to zero even though assets still exist in the buffer. An attacker can then deposit a small amount and mint disproportionately many shares (since shares are priced off the deflated totalAssets). Once assets are moved back on-vault or accounting is corrected, the attacker can redeem for more assets than deposited, extracting value from existing holders. Even without profit, it can misprice shares and break maxWithdraw logic."
            },
            {
                "title": "Share pricing fully trusts provider rates without validation or staleness checks",
                "category": "oracle",
                "evidence": "Rates are pulled from IProvider with no validation and used directly in conversions that determine share pricing.",
                "severity": "medium",
                "locations": [
                    "src/library/VaultLib.sol:177",
                    "src/library/VaultLib.sol:189",
                    "src/library/VaultLib.sol:248"
                ],
                "recommendation": "Use robust oracles (TWAP/Chainlink), add staleness and bounds checks, and consider restricting processAccounting to trusted keepers or validating rates before accepting them. Revert on zero or out-of-range rates.",
                "exploit_scenario": "convertAssetToBase/convertBaseToAsset use IProvider.getRate(asset_) directly. If the provider source can be manipulated (e.g., DEX spot price, stale oracle, or malicious provider), an attacker can skew the rate, call processAccounting or deposit/redeem, minting shares at an inflated rate or redeeming at a deflated rate and draining value. Because processAccounting is public, attackers can time the update to the manipulated rate themselves."
            },
            {
                "title": "Fee-on-transfer tokens can inflate shares and totalAssets",
                "category": "other",
                "evidence": "_deposit updates accounting and mints shares before verifying actual tokens received.",
                "severity": "low",
                "locations": [
                    "src/BaseVault.sol:458",
                    "src/BaseVault.sol:470",
                    "src/BaseVault.sol:472",
                    "src/BaseVault.sol:473"
                ],
                "recommendation": "Either disallow fee-on-transfer/rebasing assets explicitly or compute actual received amount by checking balanceBefore/balanceAfter and base share minting on the received amount.",
                "exploit_scenario": "_deposit mints shares and increments totalAssets using the requested assets amount, then calls transferFrom. For fee-on-transfer/deflationary tokens, the vault receives fewer tokens than assets, but still mints full shares and records full baseAssets. A user can deposit such a token to mint excess shares, then redeem for more value than actually deposited, diluting existing holders."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
13
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
7
EXT*/BALANCE
6
Total opcodes
12606
Flags
delegatecall_present create_opcodes_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x042f
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x76cd816b
00000018: GT
00000019: PUSH2 0x022b
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0xc4b1b3b4
00000023: GT
00000024: PUSH2 0x0129
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0xd905777e
0000002e: GT
0000002f: PUSH2 0x00b3
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0xecfe5f93
00000039: GT
0000003a: PUSH2 0x0078
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0xecfe5f93
00000044: EQ
00000045: PUSH2 0x0d4d
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xedaafe20
0000004f: EQ
00000050: PUSH2 0x0d6c
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0xef8b30f7
0000005a: EQ
0000005b: PUSH2 0x0bef
0000005e: JUMPI
0000005f: DUP1
00000060: PUSH4 0xf4595b89
00000065: EQ
00000066: PUSH2 0x0d80
00000069: JUMPI
0000006a: DUP1
0000006b: PUSH4 0xfb1bb9de
00000070: EQ
00000071: PUSH2 0x0db0
00000074: JUMPI
00000075: PUSH0
00000076: DUP1
00000077: REVERT
00000078: JUMPDEST
00000079: DUP1
0000007a: PUSH4 0xd905777e
0000007f: EQ
00000080: PUSH2 0x0ca9
00000083: JUMPI
00000084: DUP1
00000085: PUSH4 0xdd62ed3e
0000008a: EQ
0000008b: PUSH2 0x0cc8
0000008e: JUMPI
0000008f: DUP1
00000090: PUSH4 0xe63ab1e9
00000095: EQ
00000096: PUSH2 0x0ce7
00000099: JUMPI
0000009a: DUP1
0000009b: PUSH4 0xe6ef2a27
000000a0: EQ
000000a1: PUSH2 0x0d1a
000000a4: JUMPI
000000a5: DUP1
000000a6: PUSH4 0xe95c41c3
000000ab: EQ
000000ac: PUSH2 0x0d2e
000000af: JUMPI
000000b0: PUSH0
000000b1: DUP1
000000b2: REVERT
000000b3: JUMPDEST
000000b4: DUP1
000000b5: PUSH4 0xc7e5fa94
000000ba: GT
000000bb: PUSH2 0x00f9
000000be: JUMPI
000000bf: DUP1
000000c0: PUSH4 0xc7e5fa94
000000c5: EQ
000000c6: PUSH2 0x0c0e
000000c9: JUMPI
000000ca: DUP1
000000cb: PUSH4 0xce96cb77
000000d0: EQ
000000d1: PUSH2 0x0c2d
000000d4: JUMPI
000000d5: DUP1
000000d6: PUSH4 0xcfd8d6c0
000000db: EQ
000000dc: PUSH2 0x0c4c
000000df: JUMPI
000000e0: DUP1
000000e1: PUSH4 0xd505accf
000000e6: EQ
000000e7: PUSH2 0x0c6b
000000ea: JUMPI
000000eb: DUP1
000000ec: PUSH4 0xd547741f
000000f1: EQ
000000f2: PUSH2 0x0c8a
000000f5: JUMPI
000000f6: PUSH0
000000f7: DUP1
000000f8: REVERT
000000f9: JUMPDEST
000000fa: DUP1
000000fb: PUSH4 0xc4b1b3b4
00000100: EQ
00000101: PUSH2 0x0b89
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0xc58dd16c
0000010b: EQ
0000010c: PUSH2 0x0bbc
0000010f: JUMPI
00000110: DUP1
00000111: PUSH4 0xc63d75b6
00000116: EQ
00000117: PUSH2 0x0809
0000011a: JUMPI
0000011b: DUP1
0000011c: PUSH4 0xc6e6f592
00000121: EQ
00000122: PUSH2 0x0bef
00000125: JUMPI
00000126: PUSH0
00000127: DUP1
00000128: REVERT
00000129: JUMPDEST
0000012a: DUP1
0000012b: PUSH4 0x95d89b41
00000130: GT
00000131: PUSH2 0x01b5
00000134: JUMPI
00000135: DUP1
00000136: PUSH4 0xb3d7f6b9
0000013b: GT
0000013c: PUSH2 0x017a
0000013f: JUMPI
00000140: DUP1
00000141: PUSH4 0xb3d7f6b9
00000146: EQ
00000147: PUSH2 0x0af9
0000014a: JUMPI
0000014b: DUP1
0000014c: PUSH4 0xb460af94
00000151: EQ
00000152: PUSH2 0x0b18
00000155: JUMPI
00000156: DUP1
00000157: PUSH4 0xb4e6aca0
0000015c: EQ
0000015d: PUSH2 0x0b37
00000160: JUMPI
00000161: DUP1
00000162: PUSH4 0xba087652
00000167: EQ
00000168: PUSH2 0x0b56
0000016b: JUMPI
0000016c: DUP1
0000016d: PUSH4 0xc02add89
00000172: EQ
00000173: PUSH2 0x0b75
00000176: JUMPI
00000177: PUSH0
00000178: DUP1
00000179: REVERT
0000017a: JUMPDEST
0000017b: DUP1
0000017c: PUSH4 0x95d89b41
00000181: EQ
00000182: PUSH2 0x0a74
00000185: JUMPI
00000186: DUP1
00000187: PUSH4 0xa217fddf
0000018c: EQ
0000018d: PUSH2 0x0a88
00000190: JUMPI
00000191: DUP1
00000192: PUSH4 0xa4b32de8
00000197: EQ
00000198: PUSH2 0x0a9b
0000019b: JUMPI
0000019c: DUP1
0000019d: PUSH4 0xa9059cbb
000001a2: EQ
000001a3: PUSH2 0x0abb
000001a6: JUMPI
000001a7: DUP1
000001a8: PUSH4 0xb039b629
000001ad: EQ
000001ae: PUSH2 0x0ada
000001b1: JUMPI
000001b2: PUSH0
000001b3: DUP1
000001b4: REVERT
000001b5: JUMPDEST
000001b6: DUP1
000001b7: PUSH4 0x8222bdb2
000001bc: GT
000001bd: PUSH2 0x01fb
000001c0: JUMPI
000001c1: DUP1
000001c2: PUSH4 0x8222bdb2
000001c7: EQ
000001c8: PUSH2 0x09c8
000001cb: JUMPI
000001cc: DUP1
000001cd: PUSH4 0x8456cb59
000001d2: EQ
000001d3: PUSH2 0x09fb
000001d6: JUMPI
000001d7: DUP1
000001d8: PUSH4 0x84b0196e
000001dd: EQ
000001de: PUSH2 0x0a0f
000001e1: JUMPI
000001e2: DUP1
000001e3: PUSH4 0x91d14854
000001e8: EQ
000001e9: PUSH2 0x0a36
000001ec: JUMPI
000001ed: DUP1
000001ee: PUSH4 0x94bf804d
000001f3: EQ
000001f4: PUSH2 0x0a55
000001f7: JUMPI
000001f8: PUSH0
000001f9: DUP1
000001fa: REVERT
000001fb: JUMPDEST
000001fc: DUP1
000001fd: PUSH4 0x76cd816b
00000202: EQ
00000203: PUSH2 0x0957
00000206: JUMPI
00000207: DUP1
00000208: PUSH4 0x789b274d
0000020d: EQ
0000020e: PUSH2 0x0976
00000211: JUMPI
00000212: DUP1
00000213: PUSH4 0x7eb79b53
00000218: EQ
00000219: PUSH2 0x098a
0000021c: JUMPI
0000021d: DUP1
0000021e: PUSH4 0x7ecebe00
00000223: EQ
00000224: PUSH2 0x09a9
00000227: JUMPI
00000228: PUSH0
00000229: DUP1
0000022a: REVERT
0000022b: JUMPDEST
0000022c: DUP1
0000022d: PUSH4 0x30b8b2c6
00000232: GT
00000233: PUSH2 0x0338
00000236: JUMPI
00000237: DUP1
00000238: PUSH4 0x465d8576
0000023d: GT
0000023e: PUSH2 0x02c2
00000241: JUMPI
00000242: DUP1
00000243: PUSH4 0x67e4ac2c
00000248: GT
00000249: PUSH2 0x0287
0000024c: JUMPI
0000024d: DUP1
0000024e: PUSH4 0x67e4ac2c
00000253: EQ
00000254: PUSH2 0x08c5
00000257: JUMPI
00000258: DUP1
00000259: PUSH4 0x6d00cfdf
0000025e: EQ
0000025f: PUSH2 0x08e6
00000262: JUMPI
00000263: DUP1
00000264: PUSH4 0x6e553f65
00000269: EQ
0000026a: PUSH2 0x08fa
0000026d: JUMPI
0000026e: DUP1
0000026f: PUSH4 0x7002a60f
00000274: EQ
00000275: PUSH2 0x0919
00000278: JUMPI
00000279: DUP1
0000027a: PUSH4 0x70a08231
0000027f: EQ
00000280: PUSH2 0x0938
00000283: JUMPI
00000284: PUSH0
00000285: DUP1
00000286: REVERT
00000287: JUMPDEST
00000288: DUP1
00000289: PUSH4 0x465d8576
0000028e: EQ
0000028f: PUSH2 0x0828
00000292: JUMPI
00000293: DUP1
00000294: PUSH4 0x4cdad506
00000299: EQ
0000029a: PUSH2 0x0847
0000029d: JUMPI
0000029e: DUP1
0000029f: PUSH4 0x536f4c2f
000002a4: EQ
000002a5: PUSH2 0x0866
000002a8: JUMPI
000002a9: DUP1
000002aa: PUSH4 0x5836edfa
000002af: EQ
000002b0: PUSH2 0x0892
000002b3: JUMPI
000002b4: DUP1
000002b5: PUSH4 0x5c975abb
000002ba: EQ
000002bb: PUSH2 0x08b1
000002be: JUMPI
000002bf: PUSH0
000002c0: DUP1
000002c1: REVERT
000002c2: JUMPDEST
000002c3: DUP1
000002c4: PUSH4 0x36568abe
000002c9: GT
000002ca: PUSH2 0x0308
000002cd: JUMPI
000002ce: DUP1
000002cf: PUSH4 0x36568abe
000002d4: EQ
000002d5: PUSH2 0x07a3
000002d8: JUMPI
000002d9: DUP1
000002da: PUSH4 0x38d52e0f
000002df: EQ
000002e0: PUSH2 0x07c2
000002e3: JUMPI
000002e4: DUP1
000002e5: PUSH4 0x395f7904
000002ea: EQ
000002eb: PUSH2 0x07d6
000002ee: JUMPI
000002ef: DUP1
000002f0: PUSH4 0x3f4ba83a
000002f5: EQ
000002f6: PUSH2 0x07f5
000002f9: JUMPI
000002fa: DUP1
000002fb: PUSH4 0x402d267d
00000300: EQ
00000301: PUSH2 0x0809
00000304: JUMPI
00000305: PUSH0
00000306: DUP1
00000307: REVERT
00000308: JUMPDEST
00000309: DUP1
0000030a: PUSH4 0x30b8b2c6
0000030f: EQ
00000310: PUSH2 0x0704
00000313: JUMPI
00000314: DUP1
00000315: PUSH4 0x313ce567
0000031a: EQ
0000031b: PUSH2 0x074a
0000031e: JUMPI
0000031f: DUP1
00000320: PUSH4 0x31982e7a
00000325: EQ
00000326: PUSH2 0x0770
00000329: JUMPI
0000032a: DUP1
0000032b: PUSH4 0x3644e515
00000330: EQ
00000331: PUSH2 0x078f
00000334: JUMPI
00000335: PUSH0
00000336: DUP1
00000337: REVERT
00000338: JUMPDEST
00000339: DUP1
0000033a: PUSH4 0x0f111e10
0000033f: GT
00000340: PUSH2 0x03b9
00000343: JUMPI
00000344: DUP1
00000345: PUSH4 0x23b872dd
0000034a: GT
0000034b: PUSH2 0x0389
0000034e: JUMPI
0000034f: DUP1
00000350: PUSH4 0x23b872dd
00000355: EQ
00000356: PUSH2 0x0653
00000359: JUMPI
0000035a: DUP1
0000035b: PUSH4 0x248a9ca3
00000360: EQ
00000361: PUSH2 0x0672
00000364: JUMPI
00000365: DUP1
00000366: PUSH4 0x28f256b4
0000036b: EQ
0000036c: PUSH2 0x0691
0000036f: JUMPI
00000370: DUP1
00000371: PUSH4 0x2e8ca5d3
00000376: EQ
00000377: PUSH2 0x06b2
0000037a: JUMPI
0000037b: DUP1
0000037c: PUSH4 0x2f2ff15d
00000381: EQ
00000382: PUSH2 0x06e5
00000385: JUMPI
00000386: PUSH0
00000387: DUP1
00000388: REVERT
00000389: JUMPDEST
0000038a: DUP1
0000038b: PUSH4 0x0f111e10
00000390: EQ
00000391: PUSH2 0x05b4
00000394: JUMPI
00000395: DUP1
00000396: PUSH4 0x15be2288
0000039b: EQ
0000039c: PUSH2 0x05e0
0000039f: JUMPI
000003a0: DUP1
000003a1: PUSH4 0x18160ddd
000003a6: EQ
000003a7: PUSH2 0x060c
000003aa: JUMPI
000003ab: DUP1
000003ac: PUSH4 0x23b4f441
000003b1: EQ
000003b2: PUSH2 0x063f
000003b5: JUMPI
000003b6: PUSH0
000003b7: DUP1
000003b8: REVERT
000003b9: JUMPDEST
000003ba: DUP1
000003bb: PUSH4 0x06fdde03
000003c0: GT
000003c1: PUSH2 0x03ff
000003c4: JUMPI
000003c5: DUP1
000003c6: PUSH4 0x06fdde03
000003cb: EQ
000003cc: PUSH2 0x050a
000003cf: JUMPI
000003d0: DUP1
000003d1: PUSH4 0x07a2d13a
000003d6: EQ
000003d7: PUSH2 0x052b
000003da: JUMPI
000003db: DUP1
000003dc: PUSH4 0x085d4883
000003e1: EQ
000003e2: PUSH2 0x054a
000003e5: JUMPI
000003e6: DUP1
000003e7: PUSH4 0x095ea7b3
000003ec: EQ
000003ed: PUSH2 0x0576
000003f0: JUMPI
000003f1: DUP1
000003f2: PUSH4 0x0a28a477
000003f7: EQ
000003f8: PUSH2 0x0595
000003fb: JUMPI
000003fc: PUSH0
000003fd: DUP1
000003fe: REVERT
000003ff: JUMPDEST
00000400: DUP1
00000401: PUSH4 0x01e1d114
00000406: EQ
00000407: PUSH2 0x046d
0000040a: JUMPI
0000040b: DUP1
0000040c: PUSH4 0x01ffc9a7
00000411: EQ
00000412: PUSH2 0x0494
00000415: JUMPI
00000416: DUP1
00000417: PUSH4 0x02584ba6
0000041c: EQ
0000041d: PUSH2 0x04c3
00000420: JUMPI
00000421: DUP1
00000422: PUSH4 0x05db2f41
00000427: EQ
00000428: PUSH2 0x04d7
0000042b: JUMPI
0000042c: PUSH0
0000042d: DUP1
0000042e: REVERT
0000042f: JUMPDEST
00000430: CALLDATASIZE
00000431: PUSH2 0x0469
00000434: JUMPI
00000435: PUSH1 0x40
00000437: MLOAD
00000438: CALLVALUE
00000439: DUP2
0000043a: MSTORE
0000043b: PUSH32 0x9f00d3f40a2a58e2c0f74f2fa05aac30f5bb0032e23e0cb66003ba208265c91c
0000045c: SWAP1
0000045d: PUSH1 0x20
0000045f: ADD
00000460: PUSH1 0x40
00000462: MLOAD
00000463: DUP1
00000464: SWAP2
00000465: SUB
00000466: SWAP1
00000467: LOG1
00000468: STOP
00000469: JUMPDEST
0000046a: PUSH0
0000046b: DUP1
0000046c: REVERT
0000046d: JUMPDEST
0000046e: CALLVALUE
0000046f: DUP1
00000470: ISZERO
00000471: PUSH2 0x0478
00000474: JUMPI
00000475: PUSH0
00000476: DUP1
00000477: REVERT
00000478: JUMPDEST
00000479: POP
0000047a: PUSH2 0x0481
0000047d: PUSH2 0x0de3
00000480: JUMP
00000481: JUMPDEST
00000482: PUSH1 0x40
00000484: MLOAD
00000485: SWAP1
00000486: DUP2
00000487: MSTORE
00000488: PUSH1 0x20
0000048a: ADD
0000048b: JUMPDEST
0000048c: PUSH1 0x40
0000048e: MLOAD
0000048f: DUP1
00000490: SWAP2
00000491: SUB
00000492: SWAP1
00000493: RETURN
00000494: JUMPDEST
00000495: CALLVALUE
00000496: DUP1
00000497: ISZERO
00000498: PUSH2 0x049f
0000049b: JUMPI
0000049c: PUSH0
0000049d: DUP1
0000049e: REVERT
0000049f: JUMPDEST
000004a0: POP
000004a1: PUSH2 0x04b3
000004a4: PUSH2 0x04ae
000004a7: CALLDATASIZE
000004a8: PUSH1 0x04
000004aa: PUSH2 0x3800
000004ad: JUMP
000004ae: JUMPDEST
000004af: PUSH2 0x0e7e
000004b2: JUMP
000004b3: JUMPDEST
000004b4: PUSH1 0x40
000004b6: MLOAD
000004b7: SWAP1
000004b8: ISZERO
000004b9: ISZERO
000004ba: DUP2
000004bb: MSTORE
000004bc: PUSH1 0x20
000004be: ADD
000004bf: PUSH2 0x048b
000004c2: JUMP
000004c3: JUMPDEST
000004c4: CALLVALUE
000004c5: DUP1
000004c6: ISZERO
000004c7: PUSH2 0x04ce
000004ca: JUMPI
000004cb: PUSH0
000004cc: DUP1
000004cd: REVERT
000004ce: JUMPDEST
000004cf: POP
000004d0: PUSH2 0x0481
000004d3: PUSH2 0x0eb4
000004d6: JUMP
000004d7: JUMPDEST
000004d8: CALLVALUE
000004d9: DUP1
000004da: ISZERO
000004db: PUSH2 0x04e2
000004de: JUMPI
000004df: PUSH0
000004e0: DUP1
000004e1: REVERT
000004e2: JUMPDEST
000004e3: POP
000004e4: PUSH2 0x0481
000004e7: PUSH32 0x6c0757dc3e6b28b2580c03fd9e96c274acf4f99d91fbec9b418fa1d70604ff1c
00000508: DUP2
00000509: JUMP
0000050a: JUMPDEST
0000050b: CALLVALUE
0000050c: DUP1
0000050d: ISZERO
0000050e: PUSH2 0x0515
00000511: JUMPI
00000512: PUSH0
00000513: DUP1
00000514: REVERT
00000515: JUMPDEST
00000516: POP
00000517: PUSH2 0x051e
0000051a: PUSH2 0x0ec6
0000051d: JUMP
0000051e: JUMPDEST
0000051f: PUSH1 0x40
00000521: MLOAD
00000522: PUSH2 0x048b
00000525: SWAP2
00000526: SWAP1
00000527: PUSH2 0x3866
0000052a: JUMP
0000052b: JUMPDEST
0000052c: CALLVALUE
0000052d: DUP1
0000052e: ISZERO
0000052f: PUSH2 0x0536
00000532: JUMPI
00000533: PUSH0
00000534: DUP1
00000535: REVERT
00000536: JUMPDEST
00000537: POP
00000538: PUSH2 0x0481
0000053b: PUSH2 0x0545
0000053e: CALLDATASIZE
0000053f: PUSH1 0x04
00000541: PUSH2 0x3878
00000544: JUMP
00000545: JUMPDEST
00000546: PUSH2 0x0f6b
00000549: JUMP
0000054a: JUMPDEST
0000054b: CALLVALUE
0000054c: DUP1
0000054d: ISZERO
0000054e: PUSH2 0x0555
00000551: JUMPI
00000552: PUSH0
00000553: DUP1
00000554: REVERT
00000555: JUMPDEST
00000556: POP
00000557: PUSH2 0x055e
0000055a: PUSH2 0x0f85
0000055d: JUMP
0000055e: JUMPDEST
0000055f: PUSH1 0x40
00000561: MLOAD
00000562: PUSH1 0x01
00000564: PUSH1 0x01
00000566: PUSH1 0xa0
00000568: SHL
00000569: SUB
0000056a: SWAP1
0000056b: SWAP2
0000056c: AND
0000056d: DUP2
0000056e: MSTORE
0000056f: PUSH1 0x20
00000571: ADD
00000572: PUSH2 0x048b
00000575: JUMP
00000576: JUMPDEST
00000577: CALLVALUE
00000578: DUP1
00000579: ISZERO
0000057a: PUSH2 0x0581
0000057d: JUMPI
0000057e: PUSH0
0000057f: DUP1
00000580: REVERT
00000581: JUMPDEST
00000582: POP
00000583: PUSH2 0x04b3
00000586: PUSH2 0x0590
00000589: CALLDATASIZE
0000058a: PUSH1 0x04
0000058c: PUSH2 0x38a3
0000058f: JUMP
00000590: JUMPDEST
00000591: PUSH2 0x0fa0
00000594: JUMP
00000595: JUMPDEST
00000596: CALLVALUE
00000597: DUP1
00000598: ISZERO
00000599: PUSH2 0x05a0
0000059c: JUMPI
0000059d: PUSH0
0000059e: DUP1
0000059f: REVERT
000005a0: JUMPDEST
000005a1: POP
000005a2: PUSH2 0x0481
000005a5: PUSH2 0x05af
000005a8: CALLDATASIZE
000005a9: PUSH1 0x04
000005ab: PUSH2 0x3878
000005ae: JUMP
000005af: JUMPDEST
000005b0: PUSH2 0x0fb7
000005b3: JUMP
000005b4: JUMPDEST
000005b5: CALLVALUE
000005b6: DUP1
000005b7: ISZERO
000005b8: PUSH2 0x05bf
000005bb: JUMPI
000005bc: PUSH0
000005bd: DUP1
000005be: REVERT
000005bf: JUMPDEST
000005c0: POP
000005c1: PUSH2 0x05d3
000005c4: PUSH2 0x05ce
000005c7: CALLDATASIZE
000005c8: PUSH1 0x04
000005ca: PUSH2 0x38cd
000005cd: JUMP
000005ce: JUMPDEST
000005cf: PUSH2 0x0fe8
000005d2: JUMP
000005d3: JUMPDEST
000005d4: PUSH1 0x40
000005d6: MLOAD
000005d7: PUSH2 0x048b
000005da: SWAP2
000005db: SWAP1
000005dc: PUSH2 0x3928
000005df: JUMP
000005e0: JUMPDEST
000005e1: CALLVALUE
000005e2: DUP1
000005e3: ISZERO
000005e4: PUSH2 0x05eb
000005e7: JUMPI
000005e8: PUSH0
000005e9: DUP1
000005ea: REVERT
000005eb: JUMPDEST
000005ec: POP
000005ed: PUSH2 0x05ff
000005f0: PUSH2 0x05fa
000005f3: CALLDATASIZE
000005f4: PUSH1 0x04
000005f6: PUSH2 0x3aba
000005f9: JUMP
000005fa: JUMPDEST
000005fb: PUSH2 0x1172
000005fe: JUMP
000005ff: JUMPDEST
00000600: PUSH1 0x40
00000602: MLOAD
00000603: PUSH2 0x048b
00000606: SWAP2
00000607: SWAP1
00000608: PUSH2 0x3b9e
0000060b: JUMP
0000060c: JUMPDEST
0000060d: CALLVALUE
0000060e: DUP1
0000060f: ISZERO
00000610: PUSH2 0x0617
00000613: JUMPI
00000614: PUSH0
00000615: DUP1
00000616: REVERT
00000617: JUMPDEST
00000618: POP
00000619: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02
0000063a: SLOAD
0000063b: PUSH2 0x0481
0000063e: JUMP
0000063f: JUMPDEST
00000640: CALLVALUE
00000641: DUP1
00000642: ISZERO
00000643: PUSH2 0x064a
00000646: JUMPI
00000647: PUSH0
00000648: DUP1
00000649: REVERT
0000064a: JUMPDEST
0000064b: POP
0000064c: PUSH2 0x04b3
0000064f: PUSH2 0x1229
00000652: JUMP
00000653: JUMPDEST
00000654: CALLVALUE
00000655: DUP1
00000656: ISZERO
00000657: PUSH2 0x065e
0000065a: JUMPI
0000065b: PUSH0
0000065c: DUP1
0000065d: REVERT
0000065e: JUMPDEST
0000065f: POP
00000660: PUSH2 0x04b3
00000663: PUSH2 0x066d
00000666: CALLDATASIZE
00000667: PUSH1 0x04
00000669: PUSH2 0x3c00
0000066c: JUMP
0000066d: JUMPDEST
0000066e: PUSH2 0x1245
00000671: JUMP
00000672: JUMPDEST
00000673: CALLVALUE
00000674: DUP1
00000675: ISZERO
00000676: PUSH2 0x067d
00000679: JUMPI
0000067a: PUSH0
0000067b: DUP1
0000067c: REVERT
0000067d: JUMPDEST
0000067e: POP
0000067f: PUSH2 0x0481
00000682: PUSH2 0x068c
00000685: CALLDATASIZE
00000686: PUSH1 0x04
00000688: PUSH2 0x3878
0000068b: JUMP
0000068c: JUMPDEST
0000068d: PUSH2 0x126a
00000690: JUMP
00000691: JUMPDEST
00000692: CALLVALUE
00000693: DUP1
00000694: ISZERO
00000695: PUSH2 0x069c
00000698: JUMPI
00000699: PUSH0
0000069a: DUP1
0000069b: REVERT
0000069c: JUMPDEST
0000069d: POP
0000069e: PUSH2 0x06b0
000006a1: PUSH2 0x06ab
000006a4: CALLDATASIZE
000006a5: PUSH1 0x04
000006a7: PUSH2 0x3c4b
000006aa: JUMP
000006ab: JUMPDEST
000006ac: PUSH2 0x128a
000006af: JUMP
000006b0: JUMPDEST
000006b1: STOP
000006b2: JUMPDEST
000006b3: CALLVALUE
000006b4: DUP1
000006b5: ISZERO
000006b6: PUSH2 0x06bd
000006b9: JUMPI
000006ba: PUSH0
000006bb: DUP1
000006bc: REVERT
000006bd: JUMPDEST
000006be: POP
000006bf: PUSH2 0x0481
000006c2: PUSH32 0xe5d2521c7601dc3ebb9e087fbf87bdb7a14e74956103c86bf28d0f9d0e87c832
000006e3: DUP2
000006e4: JUMP
000006e5: JUMPDEST
000006e6: CALLVALUE
000006e7: DUP1
000006e8: ISZERO
000006e9: PUSH2 0x06f0
000006ec: JUMPI
000006ed: PUSH0
000006ee: DUP1
000006ef: REVERT
000006f0: JUMPDEST
000006f1: POP
000006f2: PUSH2 0x06b0
000006f5: PUSH2 0x06ff
000006f8: CALLDATASIZE
000006f9: PUSH1 0x04
000006fb: PUSH2 0x3c82
000006fe: JUMP
000006ff: JUMPDEST
00000700: PUSH2 0x1310
00000703: JUMP
00000704: JUMPDEST
00000705: CALLVALUE
00000706: DUP1
00000707: ISZERO
00000708: PUSH2 0x070f
0000070b: JUMPI
0000070c: PUSH0
0000070d: DUP1
0000070e: REVERT
0000070f: JUMPDEST
00000710: POP
00000711: PUSH2 0x0723
00000714: PUSH2 0x071e
00000717: CALLDATASIZE
00000718: PUSH1 0x04
0000071a: PUSH2 0x3ca5
0000071d: JUMP
0000071e: JUMPDEST
0000071f: PUSH2 0x1332
00000722: JUMP
00000723: JUMPDEST
00000724: PUSH1 0x40
00000726: DUP1
00000727: MLOAD
00000728: DUP3
00000729: MLOAD
0000072a: DUP2
0000072b: MSTORE
0000072c: PUSH1 0x20
0000072e: DUP1
0000072f: DUP5
00000730: ADD
00000731: MLOAD
00000732: ISZERO
00000733: ISZERO
00000734: SWAP1
00000735: DUP3
00000736: ADD
00000737: MSTORE
00000738: SWAP2
00000739: DUP2
0000073a: ADD
0000073b: MLOAD
0000073c: PUSH1 0xff
0000073e: AND
0000073f: SWAP1
00000740: DUP3
00000741: ADD
00000742: MSTORE
00000743: PUSH1 0x60
00000745: ADD
00000746: PUSH2 0x048b
00000749: JUMP
0000074a: JUMPDEST
0000074b: CALLVALUE
0000074c: DUP1
0000074d: ISZERO
0000074e: PUSH2 0x0755
00000751: JUMPI
00000752: PUSH0
00000753: DUP1
00000754: REVERT
00000755: JUMPDEST
00000756: POP
00000757: PUSH2 0x075e
0000075a: PUSH2 0x13a0
0000075d: JUMP
0000075e: JUMPDEST
0000075f: PUSH1 0x40
00000761: MLOAD
00000762: PUSH1 0xff
00000764: SWAP1
00000765: SWAP2
00000766: AND
00000767: DUP2
00000768: MSTORE
00000769: PUSH1 0x20
0000076b: ADD
0000076c: PUSH2 0x048b
0000076f: JUMP
00000770: JUMPDEST
00000771: CALLVALUE
00000772: DUP1
00000773: ISZERO
00000774: PUSH2 0x077b
00000777: JUMPI
00000778: PUSH0
00000779: DUP1
0000077a: REVERT
0000077b: JUMPDEST
0000077c: POP
0000077d: PUSH2 0x06b0
00000780: PUSH2 0x078a
00000783: CALLDATASIZE
00000784: PUSH1 0x04
00000786: PUSH2 0x3cc0
00000789: JUMP
0000078a: JUMPDEST
0000078b: PUSH2 0x13bc
0000078e: JUMP
0000078f: JUMPDEST
00000790: CALLVALUE
00000791: DUP1
00000792: ISZERO
00000793: PUSH2 0x079a
00000796: JUMPI
00000797: PUSH0
00000798: DUP1
00000799: REVERT
0000079a: JUMPDEST
0000079b: POP
0000079c: PUSH2 0x0481
0000079f: PUSH2 0x13f1
000007a2: JUMP
000007a3: JUMPDEST
000007a4: CALLVALUE
000007a5: DUP1
000007a6: ISZERO
000007a7: PUSH2 0x07ae
000007aa: JUMPI
000007ab: PUSH0
000007ac: DUP1
000007ad: REVERT
000007ae: JUMPDEST
000007af: POP
000007b0: PUSH2 0x06b0
000007b3: PUSH2 0x07bd
000007b6: CALLDATASIZE
000007b7: PUSH1 0x04
000007b9: PUSH2 0x3c82
000007bc: JUMP
000007bd: JUMPDEST
000007be: PUSH2 0x13fa
000007c1: JUMP
000007c2: JUMPDEST
000007c3: CALLVALUE
000007c4: DUP1
000007c5: ISZERO
000007c6: PUSH2 0x07cd
000007c9: JUMPI
000007ca: PUSH0
000007cb: DUP1
000007cc: REVERT
000007cd: JUMPDEST
000007ce: POP
000007cf: PUSH2 0x055e
000007d2: PUSH2 0x142d
000007d5: JUMP
000007d6: JUMPDEST
000007d7: CALLVALUE
000007d8: DUP1
000007d9: ISZERO
000007da: PUSH2 0x07e1
000007dd: JUMPI
000007de: PUSH0
000007df: DUP1
000007e0: REVERT
000007e1: JUMPDEST
000007e2: POP
000007e3: PUSH2 0x06b0
000007e6: PUSH2 0x07f0
000007e9: CALLDATASIZE
000007ea: PUSH1 0x04
000007ec: PUSH2 0x3d37
000007ef: JUMP
000007f0: JUMPDEST
000007f1: PUSH2 0x146e
000007f4: JUMP
000007f5: JUMPDEST
000007f6: CALLVALUE
000007f7: DUP1
000007f8: ISZERO
000007f9: PUSH2 0x0800
000007fc: JUMPI
000007fd: PUSH0
000007fe: DUP1
000007ff: REVERT
00000800: JUMPDEST
00000801: POP
00000802: PUSH2 0x06b0
00000805: PUSH2 0x14a5
00000808: JUMP
00000809: JUMPDEST
0000080a: CALLVALUE
0000080b: DUP1
0000080c: ISZERO
0000080d: PUSH2 0x0814
00000810: JUMPI
00000811: PUSH0
00000812: DUP1
00000813: REVERT
00000814: JUMPDEST
00000815: POP
00000816: PUSH2 0x0481
00000819: PUSH2 0x0823
0000081c: CALLDATASIZE
0000081d: PUSH1 0x04
0000081f: PUSH2 0x3ca5
00000822: JUMP
00000823: JUMPDEST
00000824: PUSH2 0x1576
00000827: JUMP
00000828: JUMPDEST
00000829: CALLVALUE
0000082a: DUP1
0000082b: ISZERO
0000082c: PUSH2 0x0833
0000082f: JUMPI
00000830: PUSH0
00000831: DUP1
00000832: REVERT
00000833: JUMPDEST
00000834: POP
00000835: PUSH2 0x0481
00000838: PUSH2 0x0842
0000083b: CALLDATASIZE
0000083c: PUSH1 0x04
0000083e: PUSH2 0x3d50
00000841: JUMP
00000842: JUMPDEST
00000843: PUSH2 0x1593
00000846: JUMP
00000847: JUMPDEST
00000848: CALLVALUE
00000849: DUP1
0000084a: ISZERO
0000084b: PUSH2 0x0852
0000084e: JUMPI
0000084f: PUSH0
00000850: DUP1
00000851: REVERT
00000852: JUMPDEST
00000853: POP
00000854: PUSH2 0x0481
00000857: PUSH2 0x0861
0000085a: CALLDATASIZE
0000085b: PUSH1 0x04
0000085d: PUSH2 0x3878
00000860: JUMP
00000861: JUMPDEST
00000862: PUSH2 0x1600
00000865: JUMP
00000866: JUMPDEST
00000867: CALLVALUE
00000868: DUP1
00000869: ISZERO
0000086a: PUSH2 0x0871
0000086d: JUMPI
0000086e: PUSH0
0000086f: DUP1
00000870: REVERT
00000871: JUMPDEST
00000872: POP
00000873: PUSH2 0x087a
00000876: PUSH2 0x1622
00000879: JUMP
0000087a: JUMPDEST
0000087b: PUSH1 0x40
0000087d: MLOAD
0000087e: PUSH1 0x01
00000880: PUSH1 0x01
00000882: PUSH1 0x40
00000884: SHL
00000885: SUB
00000886: SWAP1
00000887: SWAP2
00000888: AND
00000889: DUP2
0000088a: MSTORE
0000088b: PUSH1 0x20
0000088d: ADD
0000088e: PUSH2 0x048b
00000891: JUMP
00000892: JUMPDEST
00000893: CALLVALUE
00000894: DUP1
00000895: ISZERO
00000896: PUSH2 0x089d
00000899: JUMPI
0000089a: PUSH0
0000089b: DUP1
0000089c: REVERT
0000089d: JUMPDEST
0000089e: POP
0000089f: PUSH2 0x06b0
000008a2: PUSH2 0x08ac
000008a5: CALLDATASIZE
000008a6: PUSH1 0x04
000008a8: PUSH2 0x3d84
000008ab: JUMP
000008ac: JUMPDEST
000008ad: PUSH2 0x163a
000008b0: JUMP
000008b1: JUMPDEST
000008b2: CALLVALUE
000008b3: DUP1
000008b4: ISZERO
000008b5: PUSH2 0x08bc
000008b8: JUMPI
000008b9: PUSH0
000008ba: DUP1
000008bb: REVERT
000008bc: JUMPDEST
000008bd: POP
000008be: PUSH2 0x04b3
000008c1: PUSH2 0x16b9
000008c4: JUMP
000008c5: JUMPDEST
000008c6: CALLVALUE
000008c7: DUP1
000008c8: ISZERO
000008c9: PUSH2 0x08d0
000008cc: JUMPI
000008cd: PUSH0
000008ce: DUP1
000008cf: REVERT
000008d0: JUMPDEST
000008d1: POP
000008d2: PUSH2 0x08d9
000008d5: PUSH2 0x16d5
000008d8: JUMP
000008d9: JUMPDEST
000008da: PUSH1 0x40
000008dc: MLOAD
000008dd: PUSH2 0x048b
000008e0: SWAP2
000008e1: SWAP1
000008e2: PUSH2 0x3d9f
000008e5: JUMP
000008e6: JUMPDEST
000008e7: CALLVALUE
000008e8: DUP1
000008e9: ISZERO
000008ea: PUSH2 0x08f1
000008ed: JUMPI
000008ee: PUSH0
000008ef: DUP1
000008f0: REVERT
000008f1: JUMPDEST
000008f2: POP
000008f3: PUSH2 0x0481
000008f6: PUSH2 0x173e
000008f9: JUMP
000008fa: JUMPDEST
000008fb: CALLVALUE
000008fc: DUP1
000008fd: ISZERO
000008fe: PUSH2 0x0905
00000901: JUMPI
00000902: PUSH0
00000903: DUP1
00000904: REVERT
00000905: JUMPDEST
00000906: POP
00000907: PUSH2 0x0481
0000090a: PUSH2 0x0914
0000090d: CALLDATASIZE
0000090e: PUSH1 0x04
00000910: PUSH2 0x3c82
00000913: JUMP
00000914: JUMPDEST
00000915: PUSH2 0x1786
00000918: JUMP
00000919: JUMPDEST
0000091a: CALLVALUE
0000091b: DUP1
0000091c: ISZERO
0000091d: PUSH2 0x0924
00000920: JUMPI
00000921: PUSH0
00000922: DUP1
00000923: REVERT
00000924: JUMPDEST
00000925: POP
00000926: PUSH2 0x06b0
00000929: PUSH2 0x0933
0000092c: CALLDATASIZE
0000092d: PUSH1 0x04
0000092f: PUSH2 0x3ddf
00000932: JUMP
00000933: JUMPDEST
00000934: PUSH2 0x17f7
00000937: JUMP
00000938: JUMPDEST
00000939: CALLVALUE
0000093a: DUP1
0000093b: ISZERO
0000093c: PUSH2 0x0943
0000093f: JUMPI
00000940: PUSH0
00000941: DUP1
00000942: REVERT
00000943: JUMPDEST
00000944: POP
00000945: PUSH2 0x0481
00000948: PUSH2 0x0952
0000094b: CALLDATASIZE
0000094c: PUSH1 0x04
0000094e: PUSH2 0x3ca5
00000951: JUMP
00000952: JUMPDEST
00000953: PUSH2 0x18e6
00000956: JUMP
00000957: JUMPDEST
00000958: CALLVALUE
00000959: DUP1
0000095a: ISZERO
0000095b: PUSH2 0x0962
0000095e: JUMPI
0000095f: PUSH0
00000960: DUP1
00000961: REVERT
00000962: JUMPDEST
00000963: POP
00000964: PUSH2 0x06b0
00000967: PUSH2 0x0971
0000096a: CALLDATASIZE
0000096b: PUSH1 0x04
0000096d: PUSH2 0x3ef2
00000970: JUMP
00000971: JUMPDEST
00000972: PUSH2 0x1916
00000975: JUMP
00000976: JUMPDEST
00000977: CALLVALUE
00000978: DUP1
00000979: ISZERO
0000097a: PUSH2 0x0981
0000097d: JUMPI
0000097e: PUSH0
0000097f: DUP1
00000980: REVERT
00000981: JUMPDEST
00000982: POP
00000983: PUSH2 0x04b3
00000986: PUSH2 0x1a3a
00000989: JUMP
0000098a: JUMPDEST
0000098b: CALLVALUE
0000098c: DUP1
0000098d: ISZERO
0000098e: PUSH2 0x0995
00000991: JUMPI
00000992: PUSH0
00000993: DUP1
00000994: REVERT
00000995: JUMPDEST
00000996: POP
00000997: PUSH2 0x06b0
0000099a: PUSH2 0x09a4
0000099d: CALLDATASIZE
0000099e: PUSH1 0x04
000009a0: PUSH2 0x3878
000009a3: JUMP
000009a4: JUMPDEST
000009a5: PUSH2 0x1a56
000009a8: JUMP
000009a9: JUMPDEST
000009aa: CALLVALUE
000009ab: DUP1
000009ac: ISZERO
000009ad: PUSH2 0x09b4
000009b0: JUMPI
000009b1: PUSH0
000009b2: DUP1
000009b3: REVERT
000009b4: JUMPDEST
000009b5: POP
000009b6: PUSH2 0x0481
000009b9: PUSH2 0x09c3
000009bc: CALLDATASIZE
000009bd: PUSH1 0x04
000009bf: PUSH2 0x3ca5
000009c2: JUMP
000009c3: JUMPDEST
000009c4: PUSH2 0x1a76
000009c7: JUMP
000009c8: JUMPDEST
000009c9: CALLVALUE
000009ca: DUP1
000009cb: ISZERO
000009cc: PUSH2 0x09d3
000009cf: JUMPI
000009d0: PUSH0
000009d1: DUP1
000009d2: REVERT
000009d3: JUMPDEST
000009d4: POP
000009d5: PUSH2 0x0481
000009d8: PUSH32 0xe61decff6e4a5c6b5a3d3cbd28f882e595173563b49353ce5f31dba2de7f05ee
000009f9: DUP2
000009fa: JUMP
000009fb: JUMPDEST
000009fc: CALLVALUE
000009fd: DUP1
000009fe: ISZERO
000009ff: PUSH2 0x0a06
00000a02: JUMPI
00000a03: PUSH0
00000a04: DUP1
00000a05: REVERT
00000a06: JUMPDEST
00000a07: POP
00000a08: PUSH2 0x06b0
00000a0b: PUSH2 0x1a80
00000a0e: JUMP
00000a0f: JUMPDEST
00000a10: CALLVALUE
00000a11: DUP1
00000a12: ISZERO
00000a13: PUSH2 0x0a1a
00000a16: JUMPI
00000a17: PUSH0
00000a18: DUP1
00000a19: REVERT
00000a1a: JUMPDEST
00000a1b: POP
00000a1c: PUSH2 0x0a23
00000a1f: PUSH2 0x1b22
00000a22: JUMP
00000a23: JUMPDEST
00000a24: PUSH1 0x40
00000a26: MLOAD
00000a27: PUSH2 0x048b
00000a2a: SWAP8
00000a2b: SWAP7
00000a2c: SWAP6
00000a2d: SWAP5
00000a2e: SWAP4
00000a2f: SWAP3
00000a30: SWAP2
00000a31: SWAP1
00000a32: PUSH2 0x3fb5
00000a35: JUMP
00000a36: JUMPDEST
00000a37: CALLVALUE
00000a38: DUP1
00000a39: ISZERO
00000a3a: PUSH2 0x0a41
00000a3d: JUMPI
00000a3e: PUSH0
00000a3f: DUP1
00000a40: REVERT
00000a41: JUMPDEST
00000a42: POP
00000a43: PUSH2 0x04b3
00000a46: PUSH2 0x0a50
00000a49: CALLDATASIZE
00000a4a: PUSH1 0x04
00000a4c: PUSH2 0x3c82
00000a4f: JUMP
00000a50: JUMPDEST
00000a51: PUSH2 0x1bd0
00000a54: JUMP
00000a55: JUMPDEST
00000a56: CALLVALUE
00000a57: DUP1
00000a58: ISZERO
00000a59: PUSH2 0x0a60
00000a5c: JUMPI
00000a5d: PUSH0
00000a5e: DUP1
00000a5f: REVERT
00000a60: JUMPDEST
00000a61: POP
00000a62: PUSH2 0x0481
00000a65: PUSH2 0x0a6f
00000a68: CALLDATASIZE
00000a69: PUSH1 0x04
00000a6b: PUSH2 0x3c82
00000a6e: JUMP
00000a6f: JUMPDEST
00000a70: PUSH2 0x1c06
00000a73: JUMP
00000a74: JUMPDEST
00000a75: CALLVALUE
00000a76: DUP1
00000a77: ISZERO
00000a78: PUSH2 0x0a7f
00000a7b: JUMPI
00000a7c: PUSH0
00000a7d: DUP1
00000a7e: REVERT
00000a7f: JUMPDEST
00000a80: POP
00000a81: PUSH2 0x051e
00000a84: PUSH2 0x1c62
00000a87: JUMP
00000a88: JUMPDEST
00000a89: CALLVALUE
00000a8a: DUP1
00000a8b: ISZERO
00000a8c: PUSH2 0x0a93
00000a8f: JUMPI
00000a90: PUSH0
00000a91: DUP1
00000a92: REVERT
00000a93: JUMPDEST
00000a94: POP
00000a95: PUSH2 0x0481
00000a98: PUSH0
00000a99: DUP2
00000a9a: JUMP
00000a9b: JUMPDEST
00000a9c: CALLVALUE
00000a9d: DUP1
00000a9e: ISZERO
00000a9f: PUSH2 0x0aa6
00000aa2: JUMPI
00000aa3: PUSH0
00000aa4: DUP1
00000aa5: REVERT
00000aa6: JUMPDEST
00000aa7: POP
00000aa8: PUSH2 0x0481
00000aab: PUSH0
00000aac: DUP1
00000aad: MLOAD
00000aae: PUSH1 0x20
00000ab0: PUSH2 0x4ad2
00000ab3: DUP4
00000ab4: CODECOPY
00000ab5: DUP2
00000ab6: MLOAD
00000ab7: SWAP2
00000ab8: MSTORE
00000ab9: DUP2
00000aba: JUMP
00000abb: JUMPDEST
00000abc: CALLVALUE
00000abd: DUP1
00000abe: ISZERO
00000abf: PUSH2 0x0ac6
00000ac2: JUMPI
00000ac3: PUSH0
00000ac4: DUP1
00000ac5: REVERT
00000ac6: JUMPDEST
00000ac7: POP
00000ac8: PUSH2 0x04b3
00000acb: PUSH2 0x0ad5
00000ace: CALLDATASIZE
00000acf: PUSH1 0x04
00000ad1: PUSH2 0x38a3
00000ad4: JUMP
00000ad5: JUMPDEST
00000ad6: PUSH2 0x1ca0
00000ad9: JUMP
00000ada: JUMPDEST
00000adb: CALLVALUE
00000adc: DUP1
00000add: ISZERO
00000ade: PUSH2 0x0ae5
00000ae1: JUMPI
00000ae2: PUSH0
00000ae3: DUP1
00000ae4: REVERT
00000ae5: JUMPDEST
00000ae6: POP
00000ae7: PUSH2 0x0481
00000aea: PUSH2 0x0af4
00000aed: CALLDATASIZE
00000aee: PUSH1 0x04
00000af0: PUSH2 0x3878
00000af3: JUMP
00000af4: JUMPDEST
00000af5: PUSH2 0x1cad
00000af8: JUMP
00000af9: JUMPDEST
00000afa: CALLVALUE
00000afb: DUP1
00000afc: ISZERO
00000afd: PUSH2 0x0b04
00000b00: JUMPI
00000b01: PUSH0
00000b02: DUP1
00000b03: REVERT
00000b04: JUMPDEST
00000b05: POP
00000b06: PUSH2 0x0481
00000b09: PUSH2 0x0b13
00000b0c: CALLDATASIZE
00000b0d: PUSH1 0x04
00000b0f: PUSH2 0x3878
00000b12: JUMP
00000b13: JUMPDEST
00000b14: PUSH2 0x1ce8
00000b17: JUMP
00000b18: JUMPDEST
00000b19: CALLVALUE
00000b1a: DUP1
00000b1b: ISZERO
00000b1c: PUSH2 0x0b23
00000b1f: JUMPI
00000b20: PUSH0
00000b21: DUP1
00000b22: REVERT
00000b23: JUMPDEST
00000b24: POP
00000b25: PUSH2 0x0481
00000b28: PUSH2 0x0b32
00000b2b: CALLDATASIZE
00000b2c: PUSH1 0x04
00000b2e: PUSH2 0x404c
00000b31: JUMP
00000b32: JUMPDEST
00000b33: PUSH2 0x1cfc
00000b36: JUMP
00000b37: JUMPDEST
00000b38: CALLVALUE
00000b39: DUP1
00000b3a: ISZERO
00000b3b: PUSH2 0x0b42
00000b3e: JUMPI
00000b3f: PUSH0
00000b40: DUP1
00000b41: REVERT
00000b42: JUMPDEST
00000b43: POP
00000b44: PUSH2 0x0481
00000b47: PUSH2 0x0b51
00000b4a: CALLDATASIZE
00000b4b: PUSH1 0x04
00000b4d: PUSH2 0x38a3
00000b50: JUMP
00000b51: JUMPDEST
00000b52: PUSH2 0x1d8d
00000b55: JUMP
00000b56: JUMPDEST
00000b57: CALLVALUE
00000b58: DUP1
00000b59: ISZERO
00000b5a: PUSH2 0x0b61
00000b5d: JUMPI
00000b5e: PUSH0
00000b5f: DUP1
00000b60: REVERT
00000b61: JUMPDEST
00000b62: POP
00000b63: PUSH2 0x0481
00000b66: PUSH2 0x0b70
00000b69: CALLDATASIZE
00000b6a: PUSH1 0x04
00000b6c: PUSH2 0x404c
00000b6f: JUMP
00000b70: JUMPDEST
00000b71: PUSH2 0x1d99
00000b74: JUMP
00000b75: JUMPDEST
00000b76: CALLVALUE
00000b77: DUP1
00000b78: ISZERO
00000b79: PUSH2 0x0b80
00000b7c: JUMPI
00000b7d: PUSH0
00000b7e: DUP1
00000b7f: REVERT
00000b80: JUMPDEST
00000b81: POP
00000b82: PUSH2 0x0481
00000b85: PUSH2 0x1e13
00000b88: JUMP
00000b89: JUMPDEST
00000b8a: CALLVALUE
00000b8b: DUP1
00000b8c: ISZERO
00000b8d: PUSH2 0x0b94
00000b90: JUMPI
00000b91: PUSH0
00000b92: DUP1
00000b93: REVERT
00000b94: JUMPDEST
00000b95: POP
00000b96: PUSH2 0x0481
00000b99: PUSH32 0x1b5c71208e8e044e1cadc5505569e80ff1ea068fcb794cd4bb41d7c0da7d21cb
00000bba: DUP2
00000bbb: JUMP
00000bbc: JUMPDEST
00000bbd: CALLVALUE
00000bbe: DUP1
00000bbf: ISZERO
00000bc0: PUSH2 0x0bc7
00000bc3: JUMPI
00000bc4: PUSH0
00000bc5: DUP1
00000bc6: REVERT
00000bc7: JUMPDEST
00000bc8: POP
00000bc9: PUSH2 0x0481
00000bcc: PUSH32 0xa7df8ec7b8a003b34a76de97612c0ec79afe073d251e44040efb4f1ad64af94e
00000bed: DUP2
00000bee: JUMP
00000bef: JUMPDEST
00000bf0: CALLVALUE
00000bf1: DUP1
00000bf2: ISZERO
00000bf3: PUSH2 0x0bfa
00000bf6: JUMPI
00000bf7: PUSH0
00000bf8: DUP1
00000bf9: REVERT
00000bfa: JUMPDEST
00000bfb: POP
00000bfc: PUSH2 0x0481
00000bff: PUSH2 0x0c09
00000c02: CALLDATASIZE
00000c03: PUSH1 0x04
00000c05: PUSH2 0x3878
00000c08: JUMP
00000c09: JUMPDEST
00000c0a: PUSH2 0x1e45
00000c0d: JUMP
00000c0e: JUMPDEST
00000c0f: CALLVALUE
00000c10: DUP1
00000c11: ISZERO
00000c12: PUSH2 0x0c19
00000c15: JUMPI
00000c16: PUSH0
00000c17: DUP1
00000c18: REVERT
00000c19: JUMPDEST
00000c1a: POP
00000c1b: PUSH2 0x06b0
00000c1e: PUSH2 0x0c28
00000c21: CALLDATASIZE
00000c22: PUSH1 0x04
00000c24: PUSH2 0x4080
00000c27: JUMP
00000c28: JUMPDEST
00000c29: PUSH2 0x1e58
00000c2c: JUMP
00000c2d: JUMPDEST
00000c2e: CALLVALUE
00000c2f: DUP1
00000c30: ISZERO
00000c31: PUSH2 0x0c38
00000c34: JUMPI
00000c35: PUSH0
00000c36: DUP1
00000c37: REVERT
00000c38: JUMPDEST
00000c39: POP
00000c3a: PUSH2 0x0481
00000c3d: PUSH2 0x0c47
00000c40: CALLDATASIZE
00000c41: PUSH1 0x04
00000c43: PUSH2 0x3ca5
00000c46: JUMP
00000c47: JUMPDEST
00000c48: PUSH2 0x1e79
00000c4b: JUMP
00000c4c: JUMPDEST
00000c4d: CALLVALUE
00000c4e: DUP1
00000c4f: ISZERO
00000c50: PUSH2 0x0c57
00000c53: JUMPI
00000c54: PUSH0
00000c55: DUP1
00000c56: REVERT
00000c57: JUMPDEST
00000c58: POP
00000c59: PUSH2 0x06b0
00000c5c: PUSH2 0x0c66
00000c5f: CALLDATASIZE
00000c60: PUSH1 0x04
00000c62: PUSH2 0x3ca5
00000c65: JUMP
00000c66: JUMPDEST
00000c67: PUSH2 0x1f40
00000c6a: JUMP
00000c6b: JUMPDEST
00000c6c: CALLVALUE
00000c6d: DUP1
00000c6e: ISZERO
00000c6f: PUSH2 0x0c76
00000c72: JUMPI
00000c73: PUSH0
00000c74: DUP1
00000c75: REVERT
00000c76: JUMPDEST
00000c77: POP
00000c78: PUSH2 0x06b0
00000c7b: PUSH2 0x0c85
00000c7e: CALLDATASIZE
00000c7f: PUSH1 0x04
00000c81: PUSH2 0x40b5
00000c84: JUMP
00000c85: JUMPDEST
00000c86: PUSH2 0x1fd6
00000c89: JUMP
00000c8a: JUMPDEST
00000c8b: CALLVALUE
00000c8c: DUP1
00000c8d: ISZERO
00000c8e: PUSH2 0x0c95
00000c91: JUMPI
00000c92: PUSH0
00000c93: DUP1
00000c94: REVERT
00000c95: JUMPDEST
00000c96: POP
00000c97: PUSH2 0x06b0
00000c9a: PUSH2 0x0ca4
00000c9d: CALLDATASIZE
00000c9e: PUSH1 0x04
00000ca0: PUSH2 0x3c82
00000ca3: JUMP
00000ca4: JUMPDEST
00000ca5: PUSH2 0x212b
00000ca8: JUMP
00000ca9: JUMPDEST
00000caa: CALLVALUE
00000cab: DUP1
00000cac: ISZERO
00000cad: PUSH2 0x0cb4
00000cb0: JUMPI
00000cb1: PUSH0
00000cb2: DUP1
00000cb3: REVERT
00000cb4: JUMPDEST
00000cb5: POP
00000cb6: PUSH2 0x0481
00000cb9: PUSH2 0x0cc3
00000cbc: CALLDATASIZE
00000cbd: PUSH1 0x04
00000cbf: PUSH2 0x3ca5
00000cc2: JUMP
00000cc3: JUMPDEST
00000cc4: PUSH2 0x2147
00000cc7: JUMP
00000cc8: JUMPDEST
00000cc9: CALLVALUE
00000cca: DUP1
00000ccb: ISZERO
00000ccc: PUSH2 0x0cd3
00000ccf: JUMPI
00000cd0: PUSH0
00000cd1: DUP1
00000cd2: REVERT
00000cd3: JUMPDEST
00000cd4: POP
00000cd5: PUSH2 0x0481
00000cd8: PUSH2 0x0ce2
00000cdb: CALLDATASIZE
00000cdc: PUSH1 0x04
00000cde: PUSH2 0x4121
00000ce1: JUMP
00000ce2: JUMPDEST
00000ce3: PUSH2 0x2208
00000ce6: JUMP
00000ce7: JUMPDEST
00000ce8: CALLVALUE
00000ce9: DUP1
00000cea: ISZERO
00000ceb: PUSH2 0x0cf2
00000cee: JUMPI
00000cef: PUSH0
00000cf0: DUP1
00000cf1: REVERT
00000cf2: JUMPDEST
00000cf3: POP
00000cf4: PUSH2 0x0481
00000cf7: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
00000d18: DUP2
00000d19: JUMP
00000d1a: JUMPDEST
00000d1b: CALLVALUE
00000d1c: DUP1
00000d1d: ISZERO
00000d1e: PUSH2 0x0d25
00000d21: JUMPI
00000d22: PUSH0
00000d23: DUP1
00000d24: REVERT
00000d25: JUMPDEST
00000d26: POP
00000d27: PUSH2 0x06b0
00000d2a: PUSH2 0x2251
00000d2d: JUMP
00000d2e: JUMPDEST
00000d2f: CALLVALUE
00000d30: DUP1
00000d31: ISZERO
00000d32: PUSH2 0x0d39
00000d35: JUMPI
00000d36: PUSH0
00000d37: DUP1
00000d38: REVERT
00000d39: JUMPDEST
00000d3a: POP
00000d3b: PUSH2 0x06b0
00000d3e: PUSH2 0x0d48
00000d41: CALLDATASIZE
00000d42: PUSH1 0x04
00000d44: PUSH2 0x3ca5
00000d47: JUMP
00000d48: JUMPDEST
00000d49: PUSH2 0x2279
00000d4c: JUMP
00000d4d: JUMPDEST
00000d4e: CALLVALUE
00000d4f: DUP1
00000d50: ISZERO
00000d51: PUSH2 0x0d58
00000d54: JUMPI
00000d55: PUSH0
00000d56: DUP1
00000d57: REVERT
00000d58: JUMPDEST
00000d59: POP
00000d5a: PUSH2 0x0481
00000d5d: PUSH2 0x0d67
00000d60: CALLDATASIZE
00000d61: PUSH1 0x04
00000d63: PUSH2 0x3878
00000d66: JUMP
00000d67: JUMPDEST
00000d68: PUSH2 0x22e3
00000d6b: JUMP
00000d6c: JUMPDEST
00000d6d: CALLVALUE
00000d6e: DUP1
00000d6f: ISZERO
00000d70: PUSH2 0x0d77
00000d73: JUMPI
00000d74: PUSH0
00000d75: DUP1
00000d76: REVERT
00000d77: JUMPDEST
00000d78: POP
00000d79: PUSH2 0x055e
00000d7c: PUSH2 0x2316
00000d7f: JUMP
00000d80: JUMPDEST
00000d81: CALLVALUE
00000d82: DUP1
00000d83: ISZERO
00000d84: PUSH2 0x0d8b
00000d87: JUMPI
00000d88: PUSH0
00000d89: DUP1
00000d8a: REVERT
00000d8b: JUMPDEST
00000d8c: POP
00000d8d: PUSH2 0x051e
00000d90: PUSH1 0x40
00000d92: MLOAD
00000d93: DUP1
00000d94: PUSH1 0x40
00000d96: ADD
00000d97: PUSH1 0x40
00000d99: MSTORE
00000d9a: DUP1
00000d9b: PUSH1 0x05
00000d9d: DUP2
00000d9e: MSTORE
00000d9f: PUSH1 0x20
00000da1: ADD
00000da2: PUSH5 0x0302e332e3
00000da8: PUSH1 0xdc
00000daa: SHL
00000dab: DUP2
00000dac: MSTORE
00000dad: POP
00000dae: DUP2
00000daf: JUMP
00000db0: JUMPDEST
00000db1: CALLVALUE
00000db2: DUP1
00000db3: ISZERO
00000db4: PUSH2 0x0dbb
00000db7: JUMPI
00000db8: PUSH0
00000db9: DUP1
00000dba: REVERT
00000dbb: JUMPDEST
00000dbc: POP
00000dbd: PUSH2 0x0481
00000dc0: PUSH32 0x427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a
00000de1: DUP2
00000de2: JUMP
00000de3: JUMPDEST
00000de4: PUSH0
00000de5: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00000dfa: PUSH4 0x734ab301
00000dff: PUSH2 0x0e06
00000e02: PUSH2 0x142d
00000e05: JUMP
00000e06: JUMPDEST
00000e07: PUSH2 0x0e0e
00000e0a: PUSH2 0x1e13
00000e0d: JUMP
00000e0e: JUMPDEST
00000e0f: PUSH1 0x40
00000e11: MLOAD
00000e12: PUSH1 0x01
00000e14: PUSH1 0x01
00000e16: PUSH1 0xe0
00000e18: SHL
00000e19: SUB
00000e1a: NOT
00000e1b: PUSH1 0xe0
00000e1d: DUP6
00000e1e: SWAP1
00000e1f: SHL
00000e20: AND
00000e21: DUP2
00000e22: MSTORE
00000e23: PUSH1 0x01
00000e25: PUSH1 0x01
00000e27: PUSH1 0xa0
00000e29: SHL
00000e2a: SUB
00000e2b: SWAP1
00000e2c: SWAP3
00000e2d: AND
00000e2e: PUSH1 0x04
00000e30: DUP4
00000e31: ADD
00000e32: MSTORE
00000e33: PUSH1 0x24
00000e35: DUP3
00000e36: ADD
00000e37: MSTORE
00000e38: PUSH1 0x44
00000e3a: ADD
00000e3b: PUSH1 0x20
00000e3d: PUSH1 0x40
00000e3f: MLOAD
00000e40: DUP1
00000e41: DUP4
00000e42: SUB
00000e43: DUP2
00000e44: DUP7
00000e45: GAS
00000e46: DELEGATECALL
00000e47: ISZERO
00000e48: DUP1
00000e49: ISZERO
00000e4a: PUSH2 0x0e55
00000e4d: JUMPI
00000e4e: RETURNDATASIZE
00000e4f: PUSH0
00000e50: DUP1
00000e51: RETURNDATACOPY
00000e52: RETURNDATASIZE
00000e53: PUSH0
00000e54: REVERT
00000e55: JUMPDEST
00000e56: POP
00000e57: POP
00000e58: POP
00000e59: POP
00000e5a: PUSH1 0x40
00000e5c: MLOAD
00000e5d: RETURNDATASIZE
00000e5e: PUSH1 0x1f
00000e60: NOT
00000e61: PUSH1 0x1f
00000e63: DUP3
00000e64: ADD
00000e65: AND
00000e66: DUP3
00000e67: ADD
00000e68: DUP1
00000e69: PUSH1 0x40
00000e6b: MSTORE
00000e6c: POP
00000e6d: DUP2
00000e6e: ADD
00000e6f: SWAP1
00000e70: PUSH2 0x0e79
00000e73: SWAP2
00000e74: SWAP1
00000e75: PUSH2 0x414d
00000e78: JUMP
00000e79: JUMPDEST
00000e7a: SWAP1
00000e7b: POP
00000e7c: SWAP1
00000e7d: JUMP
00000e7e: JUMPDEST
00000e7f: PUSH0
00000e80: PUSH1 0x01
00000e82: PUSH1 0x01
00000e84: PUSH1 0xe0
00000e86: SHL
00000e87: SUB
00000e88: NOT
00000e89: DUP3
00000e8a: AND
00000e8b: PUSH4 0x7965db0b
00000e90: PUSH1 0xe0
00000e92: SHL
00000e93: EQ
00000e94: DUP1
00000e95: PUSH2 0x0eae
00000e98: JUMPI
00000e99: POP
00000e9a: PUSH4 0x01ffc9a7
00000e9f: PUSH1 0xe0
00000ea1: SHL
00000ea2: PUSH1 0x01
00000ea4: PUSH1 0x01
00000ea6: PUSH1 0xe0
00000ea8: SHL
00000ea9: SUB
00000eaa: NOT
00000eab: DUP4
00000eac: AND
00000ead: EQ
00000eae: JUMPDEST
00000eaf: SWAP3
00000eb0: SWAP2
00000eb1: POP
00000eb2: POP
00000eb3: JUMP
00000eb4: JUMPDEST
00000eb5: PUSH0
00000eb6: PUSH2 0x0ebd
00000eb9: PUSH2 0x2331
00000ebc: JUMP
00000ebd: JUMPDEST
00000ebe: PUSH1 0x03
00000ec0: ADD
00000ec1: SLOAD
00000ec2: SWAP1
00000ec3: POP
00000ec4: SWAP1
00000ec5: JUMP
00000ec6: JUMPDEST
00000ec7: PUSH1 0x60
00000ec9: PUSH0
00000eca: PUSH0
00000ecb: DUP1
00000ecc: MLOAD
00000ecd: PUSH1 0x20
00000ecf: PUSH2 0x4a92
00000ed2: DUP4
00000ed3: CODECOPY
00000ed4: DUP2
00000ed5: MLOAD
00000ed6: SWAP2
00000ed7: MSTORE
00000ed8: JUMPDEST
00000ed9: SWAP1
00000eda: POP
00000edb: DUP1
00000edc: PUSH1 0x03
00000ede: ADD
00000edf: DUP1
00000ee0: SLOAD
00000ee1: PUSH2 0x0ee9
00000ee4: SWAP1
00000ee5: PUSH2 0x4164
00000ee8: JUMP
00000ee9: JUMPDEST
00000eea: DUP1
00000eeb: PUSH1 0x1f
00000eed: ADD
00000eee: PUSH1 0x20
00000ef0: DUP1
00000ef1: SWAP2
00000ef2: DIV
00000ef3: MUL
00000ef4: PUSH1 0x20
00000ef6: ADD
00000ef7: PUSH1 0x40
00000ef9: MLOAD
00000efa: SWAP1
00000efb: DUP2
00000efc: ADD
00000efd: PUSH1 0x40
00000eff: MSTORE
00000f00: DUP1
00000f01: SWAP3
00000f02: SWAP2
00000f03: SWAP1
00000f04: DUP2
00000f05: DUP2
00000f06: MSTORE
00000f07: PUSH1 0x20
00000f09: ADD
00000f0a: DUP3
00000f0b: DUP1
00000f0c: SLOAD
00000f0d: PUSH2 0x0f15
00000f10: SWAP1
00000f11: PUSH2 0x4164
00000f14: JUMP
00000f15: JUMPDEST
00000f16: DUP1
00000f17: ISZERO
00000f18: PUSH2 0x0f60
00000f1b: JUMPI
00000f1c: DUP1
00000f1d: PUSH1 0x1f
00000f1f: LT
00000f20: PUSH2 0x0f37
00000f23: JUMPI
00000f24: PUSH2 0x0100
00000f27: DUP1
00000f28: DUP4
00000f29: SLOAD
00000f2a: DIV
00000f2b: MUL
00000f2c: DUP4
00000f2d: MSTORE
00000f2e: SWAP2
00000f2f: PUSH1 0x20
00000f31: ADD
00000f32: SWAP2
00000f33: PUSH2 0x0f60
00000f36: JUMP
00000f37: JUMPDEST
00000f38: DUP3
00000f39: ADD
00000f3a: SWAP2
00000f3b: SWAP1
00000f3c: PUSH0
00000f3d: MSTORE
00000f3e: PUSH1 0x20
00000f40: PUSH0
00000f41: KECCAK256
00000f42: SWAP1
00000f43: JUMPDEST
00000f44: DUP2
00000f45: SLOAD
00000f46: DUP2
00000f47: MSTORE
00000f48: SWAP1
00000f49: PUSH1 0x01
00000f4b: ADD
00000f4c: SWAP1
00000f4d: PUSH1 0x20
00000f4f: ADD
00000f50: DUP1
00000f51: DUP4
00000f52: GT
00000f53: PUSH2 0x0f43
00000f56: JUMPI
00000f57: DUP3
00000f58: SWAP1
00000f59: SUB
00000f5a: PUSH1 0x1f
00000f5c: AND
00000f5d: DUP3
00000f5e: ADD
00000f5f: SWAP2
00000f60: JUMPDEST
00000f61: POP
00000f62: POP
00000f63: POP
00000f64: POP
00000f65: POP
00000f66: SWAP2
00000f67: POP
00000f68: POP
00000f69: SWAP1
00000f6a: JUMP
00000f6b: JUMPDEST
00000f6c: PUSH0
00000f6d: PUSH2 0x0f7e
00000f70: PUSH2 0x0f77
00000f73: PUSH2 0x142d
00000f76: JUMP
00000f77: JUMPDEST
00000f78: DUP4
00000f79: PUSH0
00000f7a: PUSH2 0x2379
00000f7d: JUMP
00000f7e: JUMPDEST
00000f7f: POP
00000f80: SWAP3
00000f81: SWAP2
00000f82: POP
00000f83: POP
00000f84: JUMP
00000f85: JUMPDEST
00000f86: PUSH0
00000f87: PUSH2 0x0f8e
00000f8a: PUSH2 0x2331
00000f8d: JUMP
00000f8e: JUMPDEST
00000f8f: PUSH1 0x01
00000f91: ADD
00000f92: SLOAD
00000f93: PUSH1 0x01
00000f95: PUSH1 0x01
00000f97: PUSH1 0xa0
00000f99: SHL
00000f9a: SUB
00000f9b: AND
00000f9c: SWAP2
00000f9d: SWAP1
00000f9e: POP
00000f9f: JUMP
00000fa0: JUMPDEST
00000fa1: PUSH0
00000fa2: CALLER
00000fa3: PUSH2 0x0fad
00000fa6: DUP2
00000fa7: DUP6
00000fa8: DUP6
00000fa9: PUSH2 0x2400
00000fac: JUMP
00000fad: JUMPDEST
00000fae: POP
00000faf: PUSH1 0x01
00000fb1: SWAP4
00000fb2: SWAP3
00000fb3: POP
00000fb4: POP
00000fb5: POP
00000fb6: JUMP
00000fb7: JUMPDEST
00000fb8: PUSH0
00000fb9: DUP1
00000fba: PUSH2 0x0fc2
00000fbd: DUP4
00000fbe: PUSH2 0x22e3
00000fc1: JUMP
00000fc2: JUMPDEST
00000fc3: SWAP1
00000fc4: POP
00000fc5: PUSH2 0x0fe0
00000fc8: PUSH2 0x0fcf
00000fcb: PUSH2 0x142d
00000fce: JUMP
00000fcf: JUMPDEST
00000fd0: PUSH2 0x0fd9
00000fd3: DUP4
00000fd4: DUP7
00000fd5: PUSH2 0x41b0
00000fd8: JUMP
00000fd9: JUMPDEST
00000fda: PUSH1 0x01
00000fdc: PUSH2 0x240d
00000fdf: JUMP
00000fe0: JUMPDEST
00000fe1: POP
00000fe2: SWAP4
00000fe3: SWAP3
00000fe4: POP
00000fe5: POP
00000fe6: POP
00000fe7: JUMP
00000fe8: JUMPDEST
00000fe9: PUSH2 0x1015
00000fec: PUSH1 0x40
00000fee: MLOAD
00000fef: DUP1
00000ff0: PUSH1 0x60
00000ff2: ADD
00000ff3: PUSH1 0x40
00000ff5: MSTORE
00000ff6: DUP1
00000ff7: PUSH0
00000ff8: ISZERO
00000ff9: ISZERO
00000ffa: DUP2
00000ffb: MSTORE
00000ffc: PUSH1 0x20
00000ffe: ADD
00000fff: PUSH1 0x60
00001001: DUP2
00001002: MSTORE
00001003: PUSH1 0x20
00001005: ADD
00001006: PUSH0
00001007: PUSH1 0x01
00001009: PUSH1 0x01
0000100b: PUSH1 0xa0
0000100d: SHL
0000100e: SUB
0000100f: AND
00001010: DUP2
00001011: MSTORE
00001012: POP
00001013: SWAP1
00001014: JUMP
00001015: JUMPDEST
00001016: PUSH2 0x101d
00001019: PUSH2 0x244a
0000101c: JUMP
0000101d: JUMPDEST
0000101e: PUSH1 0x01
00001020: PUSH1 0x01
00001022: PUSH1 0xa0
00001024: SHL
00001025: SUB
00001026: DUP5
00001027: AND
00001028: PUSH0
00001029: SWAP1
0000102a: DUP2
0000102b: MSTORE
0000102c: PUSH1 0x02
0000102e: SWAP2
0000102f: SWAP1
00001030: SWAP2
00001031: ADD
00001032: PUSH1 0x20
00001034: SWAP1
00001035: DUP2
00001036: MSTORE
00001037: PUSH1 0x40
00001039: DUP1
0000103a: DUP4
0000103b: KECCAK256
0000103c: PUSH1 0x01
0000103e: PUSH1 0x01
00001040: PUSH1 0xe0
00001042: SHL
00001043: SUB
00001044: NOT
00001045: DUP7
00001046: AND
00001047: DUP5
00001048: MSTORE
00001049: DUP3
0000104a: MSTORE
0000104b: DUP1
0000104c: DUP4
0000104d: KECCAK256
0000104e: DUP2
0000104f: MLOAD
00001050: PUSH1 0x60
00001052: DUP2
00001053: ADD
00001054: DUP4
00001055: MSTORE
00001056: DUP2
00001057: SLOAD
00001058: PUSH1 0xff
0000105a: AND
0000105b: ISZERO
0000105c: ISZERO
0000105d: DUP2
0000105e: MSTORE
0000105f: PUSH1 0x01
00001061: DUP3
00001062: ADD
00001063: DUP1
00001064: SLOAD
00001065: DUP5
00001066: MLOAD
00001067: DUP2
00001068: DUP8
00001069: MUL
0000106a: DUP2
0000106b: ADD
0000106c: DUP8
0000106d: ADD
0000106e: SWAP1
0000106f: SWAP6
00001070: MSTORE
00001071: DUP1
00001072: DUP6
00001073: MSTORE
00001074: SWAP2
00001075: SWAP6
00001076: SWAP3
00001077: SWAP5
00001078: DUP7
00001079: DUP2
0000107a: ADD
0000107b: SWAP5
0000107c: SWAP4
0000107d: SWAP2
0000107e: SWAP3
0000107f: SWAP2
00001080: SWAP1
00001081: DUP5
00001082: ADD
00001083: JUMPDEST
00001084: DUP3
00001085: DUP3
00001086: LT
00001087: ISZERO
00001088: PUSH2 0x114e
0000108b: JUMPI
0000108c: PUSH0
0000108d: DUP5
0000108e: DUP2
0000108f: MSTORE
00001090: PUSH1 0x20
00001092: SWAP1
00001093: KECCAK256
00001094: PUSH1 0x40
00001096: DUP1
00001097: MLOAD
00001098: PUSH1 0x60
0000109a: DUP2
0000109b: ADD
0000109c: SWAP1
0000109d: SWAP2
0000109e: MSTORE
0000109f: PUSH1 0x02
000010a1: DUP5
000010a2: MUL
000010a3: SWAP1
000010a4: SWAP2
000010a5: ADD
000010a6: DUP1
000010a7: SLOAD
000010a8: DUP3
000010a9: SWAP1
000010aa: PUSH1 0xff
000010ac: AND
000010ad: PUSH1 0x01
000010af: DUP2
000010b0: GT
000010b1: ISZERO
000010b2: PUSH2 0x10bd
000010b5: JUMPI
000010b6: PUSH2 0x10bd
000010b9: PUSH2 0x3900
000010bc: JUMP
000010bd: JUMPDEST
000010be: PUSH1 0x01
000010c0: DUP2
000010c1: GT
000010c2: ISZERO
000010c3: PUSH2 0x10ce
000010c6: JUMPI
000010c7: PUSH2 0x10ce
000010ca: PUSH2 0x3900
000010cd: JUMP
000010ce: JUMPDEST
000010cf: DUP2
000010d0: MSTORE
000010d1: DUP2
000010d2: SLOAD
000010d3: PUSH2 0x0100
000010d6: SWAP1
000010d7: DIV
000010d8: PUSH1 0xff
000010da: AND
000010db: ISZERO
000010dc: ISZERO
000010dd: PUSH1 0x20
000010df: DUP1
000010e0: DUP4
000010e1: ADD
000010e2: SWAP2
000010e3: SWAP1
000010e4: SWAP2
000010e5: MSTORE
000010e6: PUSH1 0x01
000010e8: DUP4
000010e9: ADD
000010ea: DUP1
000010eb: SLOAD
000010ec: PUSH1 0x40
000010ee: DUP1
000010ef: MLOAD
000010f0: DUP3
000010f1: DUP6
000010f2: MUL
000010f3: DUP2
000010f4: ADD
000010f5: DUP6
000010f6: ADD
000010f7: DUP3
000010f8: MSTORE
000010f9: DUP3
000010fa: DUP2
000010fb: MSTORE
000010fc: SWAP5
000010fd: ADD
000010fe: SWAP4
000010ff: SWAP3
00001100: DUP4
00001101: ADD
00001102: DUP3
00001103: DUP3
00001104: DUP1
00001105: ISZERO
00001106: PUSH2 0x1136
00001109: JUMPI
0000110a: PUSH1 0x20
0000110c: MUL
0000110d: DUP3
0000110e: ADD
0000110f: SWAP2
00001110: SWAP1
00001111: PUSH0
00001112: MSTORE
00001113: PUSH1 0x20
00001115: PUSH0
00001116: KECCAK256
00001117: SWAP1
00001118: JUMPDEST
00001119: DUP2
0000111a: SLOAD
0000111b: PUSH1 0x01
0000111d: PUSH1 0x01
0000111f: PUSH1 0xa0
00001121: SHL
00001122: SUB
00001123: AND
00001124: DUP2
00001125: MSTORE
00001126: PUSH1 0x01
00001128: SWAP1
00001129: SWAP2
0000112a: ADD
0000112b: SWAP1
0000112c: PUSH1 0x20
0000112e: ADD
0000112f: DUP1
00001130: DUP4
00001131: GT
00001132: PUSH2 0x1118
00001135: JUMPI
00001136: JUMPDEST
00001137: POP
00001138: POP
00001139: POP
0000113a: POP
0000113b: POP
0000113c: DUP2
0000113d: MSTORE
0000113e: POP
0000113f: POP
00001140: DUP2
00001141: MSTORE
00001142: PUSH1 0x20
00001144: ADD
00001145: SWAP1
00001146: PUSH1 0x01
00001148: ADD
00001149: SWAP1
0000114a: PUSH2 0x1083
0000114d: JUMP
0000114e: JUMPDEST
0000114f: POP
00001150: POP
00001151: POP
00001152: SWAP1
00001153: DUP3
00001154: MSTORE
00001155: POP
00001156: PUSH1 0x02
00001158: SWAP2
00001159: SWAP1
0000115a: SWAP2
0000115b: ADD
0000115c: SLOAD
0000115d: PUSH1 0x01
0000115f: PUSH1 0x01
00001161: PUSH1 0xa0
00001163: SHL
00001164: SUB
00001165: AND
00001166: PUSH1 0x20
00001168: SWAP1
00001169: SWAP2
0000116a: ADD
0000116b: MSTORE
0000116c: SWAP4
0000116d: SWAP3
0000116e: POP
0000116f: POP
00001170: POP
00001171: JUMP
00001172: JUMPDEST
00001173: PUSH1 0x60
00001175: PUSH32 0xe61decff6e4a5c6b5a3d3cbd28f882e595173563b49353ce5f31dba2de7f05ee
00001196: PUSH2 0x119e
00001199: DUP2
0000119a: PUSH2 0x2492
0000119d: JUMP
0000119e: JUMPDEST
0000119f: PUSH1 0x40
000011a1: MLOAD
000011a2: PUSH4 0x02b7c451
000011a7: PUSH1 0xe3
000011a9: SHL
000011aa: DUP2
000011ab: MSTORE
000011ac: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
000011c1: SWAP1
000011c2: PUSH4 0x15be2288
000011c7: SWAP1
000011c8: PUSH2 0x11dd
000011cb: SWAP1
000011cc: DUP11
000011cd: SWAP1
000011ce: DUP11
000011cf: SWAP1
000011d0: DUP11
000011d1: SWAP1
000011d2: DUP11
000011d3: SWAP1
000011d4: DUP11
000011d5: SWAP1
000011d6: PUSH1 0x04
000011d8: ADD
000011d9: PUSH2 0x427c
000011dc: JUMP
000011dd: JUMPDEST
000011de: PUSH0
000011df: PUSH1 0x40
000011e1: MLOAD
000011e2: DUP1
000011e3: DUP4
000011e4: SUB
000011e5: DUP2
000011e6: DUP7
000011e7: GAS
000011e8: DELEGATECALL
000011e9: ISZERO
000011ea: DUP1
000011eb: ISZERO
000011ec: PUSH2 0x11f7
000011ef: JUMPI
000011f0: RETURNDATASIZE
000011f1: PUSH0
000011f2: DUP1
000011f3: RETURNDATACOPY
000011f4: RETURNDATASIZE
000011f5: PUSH0
000011f6: REVERT
000011f7: JUMPDEST
000011f8: POP
000011f9: POP
000011fa: POP
000011fb: POP
000011fc: PUSH1 0x40
000011fe: MLOAD
000011ff: RETURNDATASIZE
00001200: PUSH0
00001201: DUP3
00001202: RETURNDATACOPY
00001203: PUSH1 0x1f
00001205: RETURNDATASIZE
00001206: SWAP1
00001207: DUP2
00001208: ADD
00001209: PUSH1 0x1f
0000120b: NOT
0000120c: AND
0000120d: DUP3
0000120e: ADD
0000120f: PUSH1 0x40
00001211: MSTORE
00001212: PUSH2 0x121e
00001215: SWAP2
00001216: SWAP1
00001217: DUP2
00001218: ADD
00001219: SWAP1
0000121a: PUSH2 0x431e
0000121d: JUMP
0000121e: JUMPDEST
0000121f: SWAP8
00001220: SWAP7
00001221: POP
00001222: POP
00001223: POP
00001224: POP
00001225: POP
00001226: POP
00001227: POP
00001228: JUMP
00001229: JUMPDEST
0000122a: PUSH0
0000122b: PUSH2 0x1232
0000122e: PUSH2 0x2331
00001231: JUMP
00001232: JUMPDEST
00001233: PUSH1 0x02
00001235: ADD
00001236: SLOAD
00001237: PUSH1 0x01
00001239: PUSH1 0xb8
0000123b: SHL
0000123c: SWAP1
0000123d: DIV
0000123e: PUSH1 0xff
00001240: AND
00001241: SWAP2
00001242: SWAP1
00001243: POP
00001244: JUMP
00001245: JUMPDEST
00001246: PUSH0
00001247: CALLER
00001248: PUSH2 0x1252
0000124b: DUP6
0000124c: DUP3
0000124d: DUP6
0000124e: PUSH2 0x249f
00001251: JUMP
00001252: JUMPDEST
00001253: PUSH2 0x125d
00001256: DUP6
00001257: DUP6
00001258: DUP6
00001259: PUSH2 0x24e9
0000125c: JUMP
0000125d: JUMPDEST
0000125e: PUSH1 0x01
00001260: SWAP2
00001261: POP
00001262: POP
00001263: JUMPDEST
00001264: SWAP4
00001265: SWAP3
00001266: POP
00001267: POP
00001268: POP
00001269: JUMP
0000126a: JUMPDEST
0000126b: PUSH0
0000126c: SWAP1
0000126d: DUP2
0000126e: MSTORE
0000126f: PUSH0
00001270: DUP1
00001271: MLOAD
00001272: PUSH1 0x20
00001274: PUSH2 0x4af2
00001277: DUP4
00001278: CODECOPY
00001279: DUP2
0000127a: MLOAD
0000127b: SWAP2
0000127c: MSTORE
0000127d: PUSH1 0x20
0000127f: MSTORE
00001280: PUSH1 0x40
00001282: SWAP1
00001283: KECCAK256
00001284: PUSH1 0x01
00001286: ADD
00001287: SLOAD
00001288: SWAP1
00001289: JUMP
0000128a: JUMPDEST
0000128b: PUSH0
0000128c: DUP1
0000128d: MLOAD
0000128e: PUSH1 0x20
00001290: PUSH2 0x4ad2
00001293: DUP4
00001294: CODECOPY
00001295: DUP2
00001296: MLOAD
00001297: SWAP2
00001298: MSTORE
00001299: PUSH2 0x12a1
0000129c: DUP2
0000129d: PUSH2 0x2492
000012a0: JUMP
000012a1: JUMPDEST
000012a2: PUSH2 0x130b
000012a5: DUP4
000012a6: DUP5
000012a7: PUSH1 0x01
000012a9: PUSH1 0x01
000012ab: PUSH1 0xa0
000012ad: SHL
000012ae: SUB
000012af: AND
000012b0: PUSH4 0x313ce567
000012b5: PUSH1 0x40
000012b7: MLOAD
000012b8: DUP2
000012b9: PUSH4 0xffffffff
000012be: AND
000012bf: PUSH1 0xe0
000012c1: SHL
000012c2: DUP2
000012c3: MSTORE
000012c4: PUSH1 0x04
000012c6: ADD
000012c7: PUSH1 0x20
000012c9: PUSH1 0x40
000012cb: MLOAD
000012cc: DUP1
000012cd: DUP4
000012ce: SUB
000012cf: DUP2
000012d0: DUP7
000012d1: GAS
000012d2: STATICCALL
000012d3: ISZERO
000012d4: DUP1
000012d5: ISZERO
000012d6: PUSH2 0x12e1
000012d9: JUMPI
000012da: RETURNDATASIZE
000012db: PUSH0
000012dc: DUP1
000012dd: RETURNDATACOPY
000012de: RETURNDATASIZE
000012df: PUSH0
000012e0: REVERT
000012e1: JUMPDEST
000012e2: POP
000012e3: POP
000012e4: POP
000012e5: POP
000012e6: PUSH1 0x40
000012e8: MLOAD
000012e9: RETURNDATASIZE
000012ea: PUSH1 0x1f
000012ec: NOT
000012ed: PUSH1 0x1f
000012ef: DUP3
000012f0: ADD
000012f1: AND
000012f2: DUP3
000012f3: ADD
000012f4: DUP1
000012f5: PUSH1 0x40
000012f7: MSTORE
000012f8: POP
000012f9: DUP2
000012fa: ADD
000012fb: SWAP1
000012fc: PUSH2 0x1305
000012ff: SWAP2
00001300: SWAP1
00001301: PUSH2 0x43ff
00001304: JUMP
00001305: JUMPDEST
00001306: DUP5
00001307: PUSH2 0x2546
0000130a: JUMP
0000130b: JUMPDEST
0000130c: POP
0000130d: POP
0000130e: POP
0000130f: JUMP
00001310: JUMPDEST
00001311: PUSH2 0x1319
00001314: DUP3
00001315: PUSH2 0x126a
00001318: JUMP
00001319: JUMPDEST
0000131a: PUSH2 0x1322
0000131d: DUP2
0000131e: PUSH2 0x2492
00001321: JUMP
00001322: JUMPDEST
00001323: PUSH2 0x132c
00001326: DUP4
00001327: DUP4
00001328: PUSH2 0x25c3
0000132b: JUMP
0000132c: JUMPDEST
0000132d: POP
0000132e: POP
0000132f: POP
00001330: POP
00001331: JUMP
00001332: JUMPDEST
00001333: PUSH1 0x40
00001335: DUP1
00001336: MLOAD
00001337: PUSH1 0x60
00001339: DUP2
0000133a: ADD
0000133b: DUP3
0000133c: MSTORE
0000133d: PUSH0
0000133e: DUP1
0000133f: DUP3
00001340: MSTORE
00001341: PUSH1 0x20
00001343: DUP3
00001344: ADD
00001345: DUP2
00001346: SWAP1
00001347: MSTORE
00001348: SWAP2
00001349: DUP2
0000134a: ADD
0000134b: SWAP2
0000134c: SWAP1
0000134d: SWAP2
0000134e: MSTORE
0000134f: PUSH2 0x1356
00001352: PUSH2 0x2664
00001355: JUMP
00001356: JUMPDEST
00001357: PUSH1 0x01
00001359: PUSH1 0x01
0000135b: PUSH1 0xa0
0000135d: SHL
0000135e: SUB
0000135f: SWAP1
00001360: SWAP3
00001361: AND
00001362: PUSH0
00001363: SWAP1
00001364: DUP2
00001365: MSTORE
00001366: PUSH1 0x20
00001368: SWAP3
00001369: DUP4
0000136a: MSTORE
0000136b: PUSH1 0x40
0000136d: SWAP1
0000136e: DUP2
0000136f: SWAP1
00001370: KECCAK256
00001371: DUP2
00001372: MLOAD
00001373: PUSH1 0x60
00001375: DUP2
00001376: ADD
00001377: DUP4
00001378: MSTORE
00001379: DUP2
0000137a: SLOAD
0000137b: DUP2
0000137c: MSTORE
0000137d: PUSH1 0x01
0000137f: SWAP1
00001380: SWAP2
00001381: ADD
00001382: SLOAD
00001383: PUSH1 0xff
00001385: DUP1
00001386: DUP3
00001387: AND
00001388: ISZERO
00001389: ISZERO
0000138a: SWAP6
0000138b: DUP4
0000138c: ADD
0000138d: SWAP6
0000138e: SWAP1
0000138f: SWAP6
00001390: MSTORE
00001391: PUSH2 0x0100
00001394: SWAP1
00001395: DIV
00001396: SWAP1
00001397: SWAP4
00001398: AND
00001399: SWAP1
0000139a: DUP4
0000139b: ADD
0000139c: MSTORE
0000139d: POP
0000139e: SWAP1
0000139f: JUMP
000013a0: JUMPDEST
000013a1: PUSH0
000013a2: PUSH2 0x13a9
000013a5: PUSH2 0x2331
000013a8: JUMP
000013a9: JUMPDEST
000013aa: PUSH1 0x02
000013ac: ADD
000013ad: SLOAD
000013ae: PUSH1 0x01
000013b0: PUSH1 0xa8
000013b2: SHL
000013b3: SWAP1
000013b4: DIV
000013b5: PUSH1 0xff
000013b7: AND
000013b8: SWAP2
000013b9: SWAP1
000013ba: POP
000013bb: JUMP
000013bc: JUMPDEST
000013bd: PUSH32 0xa7df8ec7b8a003b34a76de97612c0ec79afe073d251e44040efb4f1ad64af94e
000013de: PUSH2 0x13e6
000013e1: DUP2
000013e2: PUSH2 0x2492
000013e5: JUMP
000013e6: JUMPDEST
000013e7: PUSH2 0x132c
000013ea: DUP5
000013eb: DUP5
000013ec: DUP5
000013ed: PUSH2 0x26ac
000013f0: JUMP
000013f1: JUMPDEST
000013f2: PUSH0
000013f3: PUSH2 0x0e79
000013f6: PUSH2 0x273a
000013f9: JUMP
000013fa: JUMPDEST
000013fb: PUSH1 0x01
000013fd: PUSH1 0x01
000013ff: PUSH1 0xa0
00001401: SHL
00001402: SUB
00001403: DUP2
00001404: AND
00001405: CALLER
00001406: EQ
00001407: PUSH2 0x1423
0000140a: JUMPI
0000140b: PUSH1 0x40
0000140d: MLOAD
0000140e: PUSH4 0x334bd919
00001413: PUSH1 0xe1
00001415: SHL
00001416: DUP2
00001417: MSTORE
00001418: PUSH1 0x04
0000141a: ADD
0000141b: PUSH1 0x40
0000141d: MLOAD
0000141e: DUP1
0000141f: SWAP2
00001420: SUB
00001421: SWAP1
00001422: REVERT
00001423: JUMPDEST
00001424: PUSH2 0x130b
00001427: DUP3
00001428: DUP3
00001429: PUSH2 0x2743
0000142c: JUMP
0000142d: JUMPDEST
0000142e: PUSH0
0000142f: PUSH2 0x1436
00001432: PUSH2 0x2664
00001435: JUMP
00001436: JUMPDEST
00001437: PUSH1 0x01
00001439: ADD
0000143a: PUSH2 0x1441
0000143d: PUSH2 0x2331
00001440: JUMP
00001441: JUMPDEST
00001442: PUSH1 0x03
00001444: ADD
00001445: SLOAD
00001446: DUP2
00001447: SLOAD
00001448: DUP2
00001449: LT
0000144a: PUSH2 0x1455
0000144d: JUMPI
0000144e: PUSH2 0x1455
00001451: PUSH2 0x441a
00001454: JUMP
00001455: JUMPDEST
00001456: PUSH0
00001457: SWAP2
00001458: DUP3
00001459: MSTORE
0000145a: PUSH1 0x20
0000145c: SWAP1
0000145d: SWAP2
0000145e: KECCAK256
0000145f: ADD
00001460: SLOAD
00001461: PUSH1 0x01
00001463: PUSH1 0x01
00001465: PUSH1 0xa0
00001467: SHL
00001468: SUB
00001469: AND
0000146a: SWAP2
0000146b: SWAP1
0000146c: POP
0000146d: JUMP
0000146e: JUMPDEST
0000146f: PUSH32 0x6c0757dc3e6b28b2580c03fd9e96c274acf4f99d91fbec9b418fa1d70604ff1c
00001490: PUSH2 0x1498
00001493: DUP2
00001494: PUSH2 0x2492
00001497: JUMP
00001498: JUMPDEST
00001499: PUSH2 0x14a1
0000149c: DUP3
0000149d: PUSH2 0x27bc
000014a0: JUMP
000014a1: JUMPDEST
000014a2: POP
000014a3: POP
000014a4: JUMP
000014a5: JUMPDEST
000014a6: PUSH32 0x427da25fe773164f88948d3e215c94b6554e2ed5e5f203a821c9f2f6131cf75a
000014c7: PUSH2 0x14cf
000014ca: DUP2
000014cb: PUSH2 0x2492
000014ce: JUMP
000014cf: JUMPDEST
000014d0: PUSH2 0x14d7
000014d3: PUSH2 0x16b9
000014d6: JUMP
000014d7: JUMPDEST
000014d8: PUSH2 0x14f4
000014db: JUMPI
000014dc: PUSH1 0x40
000014de: MLOAD
000014df: PUSH4 0xa45f47fd
000014e4: PUSH1 0xe0
000014e6: SHL
000014e7: DUP2
000014e8: MSTORE
000014e9: PUSH1 0x04
000014eb: ADD
000014ec: PUSH1 0x40
000014ee: MLOAD
000014ef: DUP1
000014f0: SWAP2
000014f1: SUB
000014f2: SWAP1
000014f3: REVERT
000014f4: JUMPDEST
000014f5: PUSH0
000014f6: PUSH2 0x14fd
000014f9: PUSH2 0x2331
000014fc: JUMP
000014fd: JUMPDEST
000014fe: SWAP1
000014ff: POP
00001500: PUSH0
00001501: PUSH2 0x1508
00001504: PUSH2 0x0f85
00001507: JUMP
00001508: JUMPDEST
00001509: PUSH1 0x01
0000150b: PUSH1 0x01
0000150d: PUSH1 0xa0
0000150f: SHL
00001510: SUB
00001511: AND
00001512: SUB
00001513: PUSH2 0x152f
00001516: JUMPI
00001517: PUSH1 0x40
00001519: MLOAD
0000151a: PUSH4 0xa9456d43
0000151f: PUSH1 0xe0
00001521: SHL
00001522: DUP2
00001523: MSTORE
00001524: PUSH1 0x04
00001526: ADD
00001527: PUSH1 0x40
00001529: MLOAD
0000152a: DUP1
0000152b: SWAP2
0000152c: SUB
0000152d: SWAP1
0000152e: REVERT
0000152f: JUMPDEST
00001530: PUSH1 0x02
00001532: DUP2
00001533: ADD
00001534: DUP1
00001535: SLOAD
00001536: PUSH1 0xff
00001538: PUSH1 0xa0
0000153a: SHL
0000153b: NOT
0000153c: AND
0000153d: SWAP1
0000153e: SSTORE
0000153f: PUSH1 0x40
00001541: MLOAD
00001542: PUSH0
00001543: DUP2
00001544: MSTORE
00001545: PUSH32 0x9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f459304
00001566: SWAP1
00001567: PUSH1 0x20
00001569: ADD
0000156a: JUMPDEST
0000156b: PUSH1 0x40
0000156d: MLOAD
0000156e: DUP1
0000156f: SWAP2
00001570: SUB
00001571: SWAP1
00001572: LOG1
00001573: POP
00001574: POP
00001575: JUMP
00001576: JUMPDEST
00001577: PUSH0
00001578: PUSH2 0x157f
0000157b: PUSH2 0x16b9
0000157e: JUMP
0000157f: JUMPDEST
00001580: ISZERO
00001581: PUSH2 0x158b
00001584: JUMPI
00001585: POP
00001586: PUSH0
00001587: SWAP2
00001588: SWAP1
00001589: POP
0000158a: JUMP
0000158b: JUMPDEST
0000158c: POP
0000158d: PUSH0
0000158e: NOT
0000158f: SWAP2
00001590: SWAP1
00001591: POP
00001592: JUMP
00001593: JUMPDEST
00001594: PUSH0
00001595: PUSH2 0x159c
00001598: PUSH2 0x2861
0000159b: JUMP
0000159c: JUMPDEST
0000159d: PUSH2 0x15a4
000015a0: PUSH2 0x16b9
000015a3: JUMP
000015a4: JUMPDEST
000015a5: ISZERO
000015a6: PUSH2 0x15c2
000015a9: JUMPI
000015aa: PUSH1 0x40
000015ac: MLOAD
000015ad: PUSH4 0x13d0ff59
000015b2: PUSH1 0xe3
000015b4: SHL
000015b5: DUP2
000015b6: MSTORE
000015b7: PUSH1 0x04
000015b9: ADD
000015ba: PUSH1 0x40
000015bc: MLOAD
000015bd: DUP1
000015be: SWAP2
000015bf: SUB
000015c0: SWAP1
000015c1: REVERT
000015c2: JUMPDEST
000015c3: PUSH0
000015c4: DUP1
000015c5: PUSH2 0x15cf
000015c8: DUP7
000015c9: DUP7
000015ca: PUSH0
000015cb: PUSH2 0x240d
000015ce: JUMP
000015cf: JUMPDEST
000015d0: SWAP2
000015d1: POP
000015d2: SWAP2
000015d3: POP
000015d4: PUSH2 0x15e7
000015d7: DUP7
000015d8: PUSH2 0x15de
000015db: CALLER
000015dc: SWAP1
000015dd: JUMP
000015de: JUMPDEST
000015df: DUP7
000015e0: DUP9
000015e1: DUP7
000015e2: DUP7
000015e3: PUSH2 0x2898
000015e6: JUMP
000015e7: JUMPDEST
000015e8: POP
000015e9: SWAP1
000015ea: POP
000015eb: PUSH2 0x1263
000015ee: PUSH1 0x01
000015f0: PUSH0
000015f1: DUP1
000015f2: MLOAD
000015f3: PUSH1 0x20
000015f5: PUSH2 0x4b12
000015f8: DUP4
000015f9: CODECOPY
000015fa: DUP2
000015fb: MLOAD
000015fc: SWAP2
000015fd: MSTORE
000015fe: SSTORE
000015ff: JUMP
00001600: JUMPDEST
00001601: PUSH0
00001602: PUSH2 0x160c
00001605: PUSH2 0x0f77
00001608: PUSH2 0x142d
0000160b: JUMP
0000160c: JUMPDEST
0000160d: POP
0000160e: SWAP1
0000160f: POP
00001610: PUSH2 0x1618
00001613: DUP2
00001614: PUSH2 0x1cad
00001617: JUMP
00001618: JUMPDEST
00001619: PUSH2 0x0eae
0000161c: SWAP1
0000161d: DUP3
0000161e: PUSH2 0x442e
00001621: JUMP
00001622: JUMPDEST
00001623: PUSH0
00001624: PUSH2 0x162b
00001627: PUSH2 0x29c1
0000162a: JUMP
0000162b: JUMPDEST
0000162c: SLOAD
0000162d: PUSH1 0x01
0000162f: PUSH1 0x01
00001631: PUSH1 0x40
00001633: SHL
00001634: SUB
00001635: AND
00001636: SWAP2
00001637: SWAP1
00001638: POP
00001639: JUMP
0000163a: JUMPDEST
0000163b: PUSH0
0000163c: DUP1
0000163d: MLOAD
0000163e: PUSH1 0x20
00001640: PUSH2 0x4ad2
00001643: DUP4
00001644: CODECOPY
00001645: DUP2
00001646: MLOAD
00001647: SWAP2
00001648: MSTORE
00001649: PUSH2 0x1651
0000164c: DUP2
0000164d: PUSH2 0x2492
00001650: JUMP
00001651: JUMPDEST
00001652: DUP2
00001653: PUSH2 0x165a
00001656: PUSH2 0x2331
00001659: JUMP
0000165a: JUMPDEST
0000165b: PUSH1 0x02
0000165d: ADD
0000165e: DUP1
0000165f: SLOAD
00001660: SWAP2
00001661: ISZERO
00001662: ISZERO
00001663: PUSH1 0x01
00001665: PUSH1 0xb8
00001667: SHL
00001668: MUL
00001669: PUSH1 0xff
0000166b: PUSH1 0xb8
0000166d: SHL
0000166e: NOT
0000166f: SWAP1
00001670: SWAP3
00001671: AND
00001672: SWAP2
00001673: SWAP1
00001674: SWAP2
00001675: OR
00001676: SWAP1
00001677: SSTORE
00001678: PUSH1 0x40
0000167a: MLOAD
0000167b: DUP3
0000167c: ISZERO
0000167d: ISZERO
0000167e: DUP2
0000167f: MSTORE
00001680: PUSH32 0x7745ecd181726efad8021ac8f161f3b46433d6fa8877f62bd4e9309456b11328
000016a1: SWAP1
000016a2: PUSH1 0x20
000016a4: ADD
000016a5: PUSH1 0x40
000016a7: MLOAD
000016a8: DUP1
000016a9: SWAP2
000016aa: SUB
000016ab: SWAP1
000016ac: LOG1
000016ad: DUP2
000016ae: PUSH2 0x14a1
000016b1: JUMPI
000016b2: PUSH2 0x14a1
000016b5: PUSH2 0x2a09
000016b8: JUMP
000016b9: JUMPDEST
000016ba: PUSH0
000016bb: PUSH2 0x16c2
000016be: PUSH2 0x2331
000016c1: JUMP
000016c2: JUMPDEST
000016c3: PUSH1 0x02
000016c5: ADD
000016c6: SLOAD
000016c7: PUSH1 0x01
000016c9: PUSH1 0xa0
000016cb: SHL
000016cc: SWAP1
000016cd: DIV
000016ce: PUSH1 0xff
000016d0: AND
000016d1: SWAP2
000016d2: SWAP1
000016d3: POP
000016d4: JUMP
000016d5: JUMPDEST
000016d6: PUSH1 0x60
000016d8: PUSH2 0x16df
000016db: PUSH2 0x2664
000016de: JUMP
000016df: JUMPDEST
000016e0: PUSH1 0x01
000016e2: ADD
000016e3: DUP1
000016e4: SLOAD
000016e5: DUP1
000016e6: PUSH1 0x20
000016e8: MUL
000016e9: PUSH1 0x20
000016eb: ADD
000016ec: PUSH1 0x40
000016ee: MLOAD
000016ef: SWAP1
000016f0: DUP2
000016f1: ADD
000016f2: PUSH1 0x40
000016f4: MSTORE
000016f5: DUP1
000016f6: SWAP3
000016f7: SWAP2
000016f8: SWAP1
000016f9: DUP2
000016fa: DUP2
000016fb: MSTORE
000016fc: PUSH1 0x20
000016fe: ADD
000016ff: DUP3
00001700: DUP1
00001701: SLOAD
00001702: DUP1
00001703: ISZERO
00001704: PUSH2 0x1734
00001707: JUMPI
00001708: PUSH1 0x20
0000170a: MUL
0000170b: DUP3
0000170c: ADD
0000170d: SWAP2
0000170e: SWAP1
0000170f: PUSH0
00001710: MSTORE
00001711: PUSH1 0x20
00001713: PUSH0
00001714: KECCAK256
00001715: SWAP1
00001716: JUMPDEST
00001717: DUP2
00001718: SLOAD
00001719: PUSH1 0x01
0000171b: PUSH1 0x01
0000171d: PUSH1 0xa0
0000171f: SHL
00001720: SUB
00001721: AND
00001722: DUP2
00001723: MSTORE
00001724: PUSH1 0x01
00001726: SWAP1
00001727: SWAP2
00001728: ADD
00001729: SWAP1
0000172a: PUSH1 0x20
0000172c: ADD
0000172d: DUP1
0000172e: DUP4
0000172f: GT
00001730: PUSH2 0x1716
00001733: JUMPI
00001734: JUMPDEST
00001735: POP
00001736: POP
00001737: POP
00001738: POP
00001739: POP
0000173a: SWAP1
0000173b: POP
0000173c: SWAP1
0000173d: JUMP
0000173e: JUMPDEST
0000173f: PUSH0
00001740: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00001755: PUSH4 0x6d00cfdf
0000175a: PUSH1 0x40
0000175c: MLOAD
0000175d: DUP2
0000175e: PUSH4 0xffffffff
00001763: AND
00001764: PUSH1 0xe0
00001766: SHL
00001767: DUP2
00001768: MSTORE
00001769: PUSH1 0x04
0000176b: ADD
0000176c: PUSH1 0x20
0000176e: PUSH1 0x40
00001770: MLOAD
00001771: DUP1
00001772: DUP4
00001773: SUB
00001774: DUP2
00001775: DUP7
00001776: GAS
00001777: DELEGATECALL
00001778: ISZERO
00001779: DUP1
0000177a: ISZERO
0000177b: PUSH2 0x0e55
0000177e: JUMPI
0000177f: RETURNDATASIZE
00001780: PUSH0
00001781: DUP1
00001782: RETURNDATACOPY
00001783: RETURNDATASIZE
00001784: PUSH0
00001785: REVERT
00001786: JUMPDEST
00001787: PUSH0
00001788: PUSH2 0x178f
0000178b: PUSH2 0x2861
0000178e: JUMP
0000178f: JUMPDEST
00001790: PUSH2 0x1797
00001793: PUSH2 0x16b9
00001796: JUMP
00001797: JUMPDEST
00001798: ISZERO
00001799: PUSH2 0x17b5
0000179c: JUMPI
0000179d: PUSH1 0x40
0000179f: MLOAD
000017a0: PUSH4 0x13d0ff59
000017a5: PUSH1 0xe3
000017a7: SHL
000017a8: DUP2
000017a9: MSTORE
000017aa: PUSH1 0x04
000017ac: ADD
000017ad: PUSH1 0x40
000017af: MLOAD
000017b0: DUP1
000017b1: SWAP2
000017b2: SUB
000017b3: SWAP1
000017b4: REVERT
000017b5: JUMPDEST
000017b6: PUSH0
000017b7: DUP1
000017b8: PUSH2 0x17c9
000017bb: PUSH2 0x17c2
000017be: PUSH2 0x142d
000017c1: JUMP
000017c2: JUMPDEST
000017c3: DUP7
000017c4: PUSH0
000017c5: PUSH2 0x240d
000017c8: JUMP
000017c9: JUMPDEST
000017ca: SWAP2
000017cb: POP
000017cc: SWAP2
000017cd: POP
000017ce: PUSH2 0x17de
000017d1: PUSH2 0x17d8
000017d4: PUSH2 0x142d
000017d7: JUMP
000017d8: JUMPDEST
000017d9: CALLER
000017da: PUSH2 0x15de
000017dd: JUMP
000017de: JUMPDEST
000017df: POP
000017e0: SWAP1
000017e1: POP
000017e2: PUSH2 0x0eae
000017e5: PUSH1 0x01
000017e7: PUSH0
000017e8: DUP1
000017e9: MLOAD
000017ea: PUSH1 0x20
000017ec: PUSH2 0x4b12
000017ef: DUP4
000017f0: CODECOPY
000017f1: DUP2
000017f2: MLOAD
000017f3: SWAP2
000017f4: MSTORE
000017f5: SSTORE
000017f6: JUMP
000017f7: JUMPDEST
000017f8: PUSH32 0xa7df8ec7b8a003b34a76de97612c0ec79afe073d251e44040efb4f1ad64af94e
00001819: PUSH2 0x1821
0000181c: DUP2
0000181d: PUSH2 0x2492
00001820: JUMP
00001821: JUMPDEST
00001822: DUP6
00001823: DUP5
00001824: DUP2
00001825: EQ
00001826: ISZERO
00001827: DUP1
00001828: PUSH2 0x1831
0000182b: JUMPI
0000182c: POP
0000182d: DUP1
0000182e: DUP4
0000182f: EQ
00001830: ISZERO
00001831: JUMPDEST
00001832: ISZERO
00001833: PUSH2 0x184f
00001836: JUMPI
00001837: PUSH1 0x40
00001839: MLOAD
0000183a: PUSH4 0x1ec5aa51
0000183f: PUSH1 0xe0
00001841: SHL
00001842: DUP2
00001843: MSTORE
00001844: PUSH1 0x04
00001846: ADD
00001847: PUSH1 0x40
00001849: MLOAD
0000184a: DUP1
0000184b: SWAP2
0000184c: SUB
0000184d: SWAP1
0000184e: REVERT
0000184f: JUMPDEST
00001850: PUSH0
00001851: JUMPDEST
00001852: DUP2
00001853: DUP2
00001854: LT
00001855: ISZERO
00001856: PUSH2 0x18db
00001859: JUMPI
0000185a: PUSH2 0x18d3
0000185d: DUP10
0000185e: DUP10
0000185f: DUP4
00001860: DUP2
00001861: DUP2
00001862: LT
00001863: PUSH2 0x186e
00001866: JUMPI
00001867: PUSH2 0x186e
0000186a: PUSH2 0x441a
0000186d: JUMP
0000186e: JUMPDEST
0000186f: SWAP1
00001870: POP
00001871: PUSH1 0x20
00001873: MUL
00001874: ADD
00001875: PUSH1 0x20
00001877: DUP2
00001878: ADD
00001879: SWAP1
0000187a: PUSH2 0x1883
0000187d: SWAP2
0000187e: SWAP1
0000187f: PUSH2 0x3ca5
00001882: JUMP
00001883: JUMPDEST
00001884: DUP9
00001885: DUP9
00001886: DUP5
00001887: DUP2
00001888: DUP2
00001889: LT
0000188a: PUSH2 0x1895
0000188d: JUMPI
0000188e: PUSH2 0x1895
00001891: PUSH2 0x441a
00001894: JUMP
00001895: JUMPDEST
00001896: SWAP1
00001897: POP
00001898: PUSH1 0x20
0000189a: MUL
0000189b: ADD
0000189c: PUSH1 0x20
0000189e: DUP2
0000189f: ADD
000018a0: SWAP1
000018a1: PUSH2 0x18aa
000018a4: SWAP2
000018a5: SWAP1
000018a6: PUSH2 0x3800
000018a9: JUMP
000018aa: JUMPDEST
000018ab: DUP8
000018ac: DUP8
000018ad: DUP6
000018ae: DUP2
000018af: DUP2
000018b0: LT
000018b1: PUSH2 0x18bc
000018b4: JUMPI
000018b5: PUSH2 0x18bc
000018b8: PUSH2 0x441a
000018bb: JUMP
000018bc: JUMPDEST
000018bd: SWAP1
000018be: POP
000018bf: PUSH1 0x20
000018c1: MUL
000018c2: DUP2
000018c3: ADD
000018c4: SWAP1
000018c5: PUSH2 0x18ce
000018c8: SWAP2
000018c9: SWAP1
000018ca: PUSH2 0x4441
000018cd: JUMP
000018ce: JUMPDEST
000018cf: PUSH2 0x26ac
000018d2: JUMP
000018d3: JUMPDEST
000018d4: PUSH1 0x01
000018d6: ADD
000018d7: PUSH2 0x1851
000018da: JUMP
000018db: JUMPDEST
000018dc: POP
000018dd: POP
000018de: POP
000018df: POP
000018e0: POP
000018e1: POP
000018e2: POP
000018e3: POP
000018e4: POP
000018e5: JUMP
000018e6: JUMPDEST
000018e7: PUSH0
000018e8: DUP1
000018e9: PUSH0
000018ea: DUP1
000018eb: MLOAD
000018ec: PUSH1 0x20
000018ee: PUSH2 0x4a92
000018f1: DUP4
000018f2: CODECOPY
000018f3: DUP2
000018f4: MLOAD
000018f5: SWAP2
000018f6: MSTORE
000018f7: JUMPDEST
000018f8: PUSH1 0x01
000018fa: PUSH1 0x01
000018fc: PUSH1 0xa0
000018fe: SHL
000018ff: SUB
00001900: SWAP1
00001901: SWAP4
00001902: AND
00001903: PUSH0
00001904: SWAP1
00001905: DUP2
00001906: MSTORE
00001907: PUSH1 0x20
00001909: SWAP4
0000190a: SWAP1
0000190b: SWAP4
0000190c: MSTORE
0000190d: POP
0000190e: POP
0000190f: PUSH1 0x40
00001911: SWAP1
00001912: KECCAK256
00001913: SLOAD
00001914: SWAP1
00001915: JUMP
00001916: JUMPDEST
00001917: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00001938: DUP1
00001939: SLOAD
0000193a: PUSH1 0x01
0000193c: PUSH1 0x40
0000193e: SHL
0000193f: DUP2
00001940: DIV
00001941: PUSH1 0xff
00001943: AND
00001944: ISZERO
00001945: SWAP1
00001946: PUSH1 0x01
00001948: PUSH1 0x01
0000194a: PUSH1 0x40
0000194c: SHL
0000194d: SUB
0000194e: AND
0000194f: PUSH0
00001950: DUP2
00001951: ISZERO
00001952: DUP1
00001953: ISZERO
00001954: PUSH2 0x195a
00001957: JUMPI
00001958: POP
00001959: DUP3
0000195a: JUMPDEST
0000195b: SWAP1
0000195c: POP
0000195d: PUSH0
0000195e: DUP3
0000195f: PUSH1 0x01
00001961: PUSH1 0x01
00001963: PUSH1 0x40
00001965: SHL
00001966: SUB
00001967: AND
00001968: PUSH1 0x01
0000196a: EQ
0000196b: DUP1
0000196c: ISZERO
0000196d: PUSH2 0x1975
00001970: JUMPI
00001971: POP
00001972: ADDRESS
00001973: EXTCODESIZE
00001974: ISZERO
00001975: JUMPDEST
00001976: SWAP1
00001977: POP
00001978: DUP2
00001979: ISZERO
0000197a: DUP1
0000197b: ISZERO
0000197c: PUSH2 0x1983
0000197f: JUMPI
00001980: POP
00001981: DUP1
00001982: ISZERO
00001983: JUMPDEST
00001984: ISZERO
00001985: PUSH2 0x19a1
00001988: JUMPI
00001989: PUSH1 0x40
0000198b: MLOAD
0000198c: PUSH4 0xf92ee8a9
00001991: PUSH1 0xe0
00001993: SHL
00001994: DUP2
00001995: MSTORE
00001996: PUSH1 0x04
00001998: ADD
00001999: PUSH1 0x40
0000199b: MLOAD
0000199c: DUP1
0000199d: SWAP2
0000199e: SUB
0000199f: SWAP1
000019a0: REVERT
000019a1: JUMPDEST
000019a2: DUP5
000019a3: SLOAD
000019a4: PUSH8 0xffffffffffffffff
000019ad: NOT
000019ae: AND
000019af: PUSH1 0x01
000019b1: OR
000019b2: DUP6
000019b3: SSTORE
000019b4: DUP4
000019b5: ISZERO
000019b6: PUSH2 0x19cb
000019b9: JUMPI
000019ba: DUP5
000019bb: SLOAD
000019bc: PUSH1 0xff
000019be: PUSH1 0x40
000019c0: SHL
000019c1: NOT
000019c2: AND
000019c3: PUSH1 0x01
000019c5: PUSH1 0x40
000019c7: SHL
000019c8: OR
000019c9: DUP6
000019ca: SSTORE
000019cb: JUMPDEST
000019cc: PUSH2 0x19dc
000019cf: DUP14
000019d0: DUP14
000019d1: DUP14
000019d2: DUP14
000019d3: PUSH1 0x01
000019d5: DUP14
000019d6: DUP14
000019d7: DUP14
000019d8: PUSH2 0x2a5a
000019db: JUMP
000019dc: JUMPDEST
000019dd: PUSH2 0x19e5
000019e0: DUP10
000019e1: PUSH2 0x27bc
000019e4: JUMP
000019e5: JUMPDEST
000019e6: DUP4
000019e7: ISZERO
000019e8: PUSH2 0x1a2b
000019eb: JUMPI
000019ec: DUP5
000019ed: SLOAD
000019ee: PUSH1 0xff
000019f0: PUSH1 0x40
000019f2: SHL
000019f3: NOT
000019f4: AND
000019f5: DUP6
000019f6: SSTORE
000019f7: PUSH1 0x40
000019f9: MLOAD
000019fa: PUSH1 0x01
000019fc: DUP2
000019fd: MSTORE
000019fe: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00001a1f: SWAP1
00001a20: PUSH1 0x20
00001a22: ADD
00001a23: PUSH1 0x40
00001a25: MLOAD
00001a26: DUP1
00001a27: SWAP2
00001a28: SUB
00001a29: SWAP1
00001a2a: LOG1
00001a2b: JUMPDEST
00001a2c: POP
00001a2d: POP
00001a2e: POP
00001a2f: POP
00001a30: POP
00001a31: POP
00001a32: POP
00001a33: POP
00001a34: POP
00001a35: POP
00001a36: POP
00001a37: POP
00001a38: POP
00001a39: JUMP
00001a3a: JUMPDEST
00001a3b: PUSH0
00001a3c: PUSH2 0x1a43
00001a3f: PUSH2 0x2331
00001a42: JUMP
00001a43: JUMPDEST
00001a44: PUSH1 0x02
00001a46: ADD
00001a47: SLOAD
00001a48: PUSH1 0x01
00001a4a: PUSH1 0xb0
00001a4c: SHL
00001a4d: SWAP1
00001a4e: DIV
00001a4f: PUSH1 0xff
00001a51: AND
00001a52: SWAP2
00001a53: SWAP1
00001a54: POP
00001a55: JUMP
00001a56: JUMPDEST
00001a57: PUSH0
00001a58: DUP1
00001a59: MLOAD
00001a5a: PUSH1 0x20
00001a5c: PUSH2 0x4ad2
00001a5f: DUP4
00001a60: CODECOPY
00001a61: DUP2
00001a62: MLOAD
00001a63: SWAP2
00001a64: MSTORE
00001a65: PUSH2 0x1a6d
00001a68: DUP2
00001a69: PUSH2 0x2492
00001a6c: JUMP
00001a6d: JUMPDEST
00001a6e: PUSH2 0x14a1
00001a71: DUP3
00001a72: PUSH2 0x2b35
00001a75: JUMP
00001a76: JUMPDEST
00001a77: PUSH0
00001a78: PUSH2 0x0eae
00001a7b: DUP3
00001a7c: PUSH2 0x2b98
00001a7f: JUMP
00001a80: JUMPDEST
00001a81: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a
00001aa2: PUSH2 0x1aaa
00001aa5: DUP2
00001aa6: PUSH2 0x2492
00001aa9: JUMP
00001aaa: JUMPDEST
00001aab: PUSH2 0x1ab2
00001aae: PUSH2 0x16b9
00001ab1: JUMP
00001ab2: JUMPDEST
00001ab3: ISZERO
00001ab4: PUSH2 0x1ad0
00001ab7: JUMPI
00001ab8: PUSH1 0x40
00001aba: MLOAD
00001abb: PUSH4 0x13d0ff59
00001ac0: PUSH1 0xe3
00001ac2: SHL
00001ac3: DUP2
00001ac4: MSTORE
00001ac5: PUSH1 0x04
00001ac7: ADD
00001ac8: PUSH1 0x40
00001aca: MLOAD
00001acb: DUP1
00001acc: SWAP2
00001acd: SUB
00001ace: SWAP1
00001acf: REVERT
00001ad0: JUMPDEST
00001ad1: PUSH0
00001ad2: PUSH2 0x1ad9
00001ad5: PUSH2 0x2331
00001ad8: JUMP
00001ad9: JUMPDEST
00001ada: PUSH1 0x02
00001adc: DUP2
00001add: ADD
00001ade: DUP1
00001adf: SLOAD
00001ae0: PUSH1 0xff
00001ae2: PUSH1 0xa0
00001ae4: SHL
00001ae5: NOT
00001ae6: AND
00001ae7: PUSH1 0x01
00001ae9: PUSH1 0xa0
00001aeb: SHL
00001aec: OR
00001aed: SWAP1
00001aee: SSTORE
00001aef: PUSH1 0x40
00001af1: MLOAD
00001af2: PUSH1 0x01
00001af4: DUP2
00001af5: MSTORE
00001af6: SWAP1
00001af7: SWAP2
00001af8: POP
00001af9: PUSH32 0x9422424b175dda897495a07b091ef74a3ef715cf6d866fc972954c1c7f459304
00001b1a: SWAP1
00001b1b: PUSH1 0x20
00001b1d: ADD
00001b1e: PUSH2 0x156a
00001b21: JUMP
00001b22: JUMPDEST
00001b23: PUSH0
00001b24: PUSH1 0x60
00001b26: DUP1
00001b27: DUP3
00001b28: DUP1
00001b29: DUP1
00001b2a: DUP4
00001b2b: DUP2
00001b2c: PUSH0
00001b2d: DUP1
00001b2e: MLOAD
00001b2f: PUSH1 0x20
00001b31: PUSH2 0x4ab2
00001b34: DUP4
00001b35: CODECOPY
00001b36: DUP2
00001b37: MLOAD
00001b38: SWAP2
00001b39: MSTORE
00001b3a: DUP1
00001b3b: SLOAD
00001b3c: SWAP1
00001b3d: SWAP2
00001b3e: POP
00001b3f: ISZERO
00001b40: DUP1
00001b41: ISZERO
00001b42: PUSH2 0x1b4d
00001b45: JUMPI
00001b46: POP
00001b47: PUSH1 0x01
00001b49: DUP2
00001b4a: ADD
00001b4b: SLOAD
00001b4c: ISZERO
00001b4d: JUMPDEST
00001b4e: PUSH2 0x1b96
00001b51: JUMPI
00001b52: PUSH1 0x40
00001b54: MLOAD
00001b55: PUSH3 0x461bcd
00001b59: PUSH1 0xe5
00001b5b: SHL
00001b5c: DUP2
00001b5d: MSTORE
00001b5e: PUSH1 0x20
00001b60: PUSH1 0x04
00001b62: DUP3
00001b63: ADD
00001b64: MSTORE
00001b65: PUSH1 0x15
00001b67: PUSH1 0x24
00001b69: DUP3
00001b6a: ADD
00001b6b: MSTORE
00001b6c: PUSH21 0x1152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959
00001b82: PUSH1 0x5a
00001b84: SHL
00001b85: PUSH1 0x44
00001b87: DUP3
00001b88: ADD
00001b89: MSTORE
00001b8a: PUSH1 0x64
00001b8c: ADD
00001b8d: JUMPDEST
00001b8e: PUSH1 0x40
00001b90: MLOAD
00001b91: DUP1
00001b92: SWAP2
00001b93: SUB
00001b94: SWAP1
00001b95: REVERT
00001b96: JUMPDEST
00001b97: PUSH2 0x1b9e
00001b9a: PUSH2 0x2bc0
00001b9d: JUMP
00001b9e: JUMPDEST
00001b9f: PUSH2 0x1ba6
00001ba2: PUSH2 0x2bfe
00001ba5: JUMP
00001ba6: JUMPDEST
00001ba7: PUSH1 0x40
00001ba9: DUP1
00001baa: MLOAD
00001bab: PUSH0
00001bac: DUP1
00001bad: DUP3
00001bae: MSTORE
00001baf: PUSH1 0x20
00001bb1: DUP3
00001bb2: ADD
00001bb3: SWAP1
00001bb4: SWAP3
00001bb5: MSTORE
00001bb6: PUSH1 0x0f
00001bb8: PUSH1 0xf8
00001bba: SHL
00001bbb: SWAP13
00001bbc: SWAP4
00001bbd: SWAP12
00001bbe: POP
00001bbf: SWAP2
00001bc0: SWAP10
00001bc1: POP
00001bc2: CHAINID
00001bc3: SWAP9
00001bc4: POP
00001bc5: ADDRESS
00001bc6: SWAP8
00001bc7: POP
00001bc8: SWAP6
00001bc9: POP
00001bca: SWAP4
00001bcb: POP
00001bcc: SWAP2
00001bcd: POP
00001bce: POP
00001bcf: JUMP
00001bd0: JUMPDEST
00001bd1: PUSH0
00001bd2: SWAP2
00001bd3: DUP3
00001bd4: MSTORE
00001bd5: PUSH0
00001bd6: DUP1
00001bd7: MLOAD
00001bd8: PUSH1 0x20
00001bda: PUSH2 0x4af2
00001bdd: DUP4
00001bde: CODECOPY
00001bdf: DUP2
00001be0: MLOAD
00001be1: SWAP2
00001be2: MSTORE
00001be3: PUSH1 0x20
00001be5: SWAP1
00001be6: DUP2
00001be7: MSTORE
00001be8: PUSH1 0x40
00001bea: DUP1
00001beb: DUP5
00001bec: KECCAK256
00001bed: PUSH1 0x01
00001bef: PUSH1 0x01
00001bf1: PUSH1 0xa0
00001bf3: SHL
00001bf4: SUB
00001bf5: SWAP4
00001bf6: SWAP1
00001bf7: SWAP4
00001bf8: AND
00001bf9: DUP5
00001bfa: MSTORE
00001bfb: SWAP2
00001bfc: SWAP1
00001bfd: MSTORE
00001bfe: SWAP1
00001bff: KECCAK256
00001c00: SLOAD
00001c01: PUSH1 0xff
00001c03: AND
00001c04: SWAP1
00001c05: JUMP
00001c06: JUMPDEST
00001c07: PUSH0
00001c08: PUSH2 0x1c0f
00001c0b: PUSH2 0x2861
00001c0e: JUMP
00001c0f: JUMPDEST
00001c10: PUSH2 0x1c17
00001c13: PUSH2 0x16b9
00001c16: JUMP
00001c17: JUMPDEST
00001c18: ISZERO
00001c19: PUSH2 0x1c35
00001c1c: JUMPI
00001c1d: PUSH1 0x40
00001c1f: MLOAD
00001c20: PUSH4 0x13d0ff59
00001c25: PUSH1 0xe3
00001c27: SHL
00001c28: DUP2
00001c29: MSTORE
00001c2a: PUSH1 0x04
00001c2c: ADD
00001c2d: PUSH1 0x40
00001c2f: MLOAD
00001c30: DUP1
00001c31: SWAP2
00001c32: SUB
00001c33: SWAP1
00001c34: REVERT
00001c35: JUMPDEST
00001c36: PUSH0
00001c37: DUP1
00001c38: PUSH2 0x1c49
00001c3b: PUSH2 0x1c42
00001c3e: PUSH2 0x142d
00001c41: JUMP
00001c42: JUMPDEST
00001c43: DUP7
00001c44: PUSH0
00001c45: PUSH2 0x2379
00001c48: JUMP
00001c49: JUMPDEST
00001c4a: SWAP2
00001c4b: POP
00001c4c: SWAP2
00001c4d: POP
00001c4e: PUSH2 0x17de
00001c51: PUSH2 0x1c58
00001c54: PUSH2 0x142d
00001c57: JUMP
00001c58: JUMPDEST
00001c59: CALLER
00001c5a: DUP7
00001c5b: DUP6
00001c5c: DUP10
00001c5d: DUP7
00001c5e: PUSH2 0x2898
00001c61: JUMP
00001c62: JUMPDEST
00001c63: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04
00001c84: DUP1
00001c85: SLOAD
00001c86: PUSH1 0x60
00001c88: SWAP2
00001c89: PUSH0
00001c8a: DUP1
00001c8b: MLOAD
00001c8c: PUSH1 0x20
00001c8e: PUSH2 0x4a92
00001c91: DUP4
00001c92: CODECOPY
00001c93: DUP2
00001c94: MLOAD
00001c95: SWAP2
00001c96: MSTORE
00001c97: SWAP2
00001c98: PUSH2 0x0ee9
00001c9b: SWAP1
00001c9c: PUSH2 0x4164
00001c9f: JUMP
00001ca0: JUMPDEST
00001ca1: PUSH0
00001ca2: CALLER
00001ca3: PUSH2 0x0fad
00001ca6: DUP2
00001ca7: DUP6
00001ca8: DUP6
00001ca9: PUSH2 0x24e9
00001cac: JUMP
00001cad: JUMPDEST
00001cae: PUSH0
00001caf: DUP1
00001cb0: PUSH2 0x1cb7
00001cb3: PUSH2 0x29c1
00001cb6: JUMP
00001cb7: JUMPDEST
00001cb8: DUP1
00001cb9: SLOAD
00001cba: SWAP1
00001cbb: SWAP2
00001cbc: POP
00001cbd: PUSH1 0x01
00001cbf: PUSH1 0x01
00001cc1: PUSH1 0x40
00001cc3: SHL
00001cc4: SUB
00001cc5: AND
00001cc6: PUSH0
00001cc7: DUP2
00001cc8: SWAP1
00001cc9: SUB
00001cca: PUSH2 0x1cd6
00001ccd: JUMPI
00001cce: POP
00001ccf: PUSH0
00001cd0: SWAP4
00001cd1: SWAP3
00001cd2: POP
00001cd3: POP
00001cd4: POP
00001cd5: JUMP
00001cd6: JUMPDEST
00001cd7: PUSH2 0x1ce0
00001cda: DUP5
00001cdb: DUP3
00001cdc: PUSH2 0x2c14
00001cdf: JUMP
00001ce0: JUMPDEST
00001ce1: SWAP5
00001ce2: SWAP4
00001ce3: POP
00001ce4: POP
00001ce5: POP
00001ce6: POP
00001ce7: JUMP
00001ce8: JUMPDEST
00001ce9: PUSH0
00001cea: PUSH2 0x0f7e
00001ced: PUSH2 0x1cf4
00001cf0: PUSH2 0x142d
00001cf3: JUMP
00001cf4: JUMPDEST
00001cf5: DUP4
00001cf6: PUSH1 0x01
00001cf8: PUSH2 0x2379
00001cfb: JUMP
00001cfc: JUMPDEST
00001cfd: PUSH0
00001cfe: PUSH2 0x1d05
00001d01: PUSH2 0x2861
00001d04: JUMP
00001d05: JUMPDEST
00001d06: PUSH2 0x1d0d
00001d09: PUSH2 0x16b9
00001d0c: JUMP
00001d0d: JUMPDEST
00001d0e: ISZERO
00001d0f: PUSH2 0x1d2b
00001d12: JUMPI
00001d13: PUSH1 0x40
00001d15: MLOAD
00001d16: PUSH4 0x13d0ff59
00001d1b: PUSH1 0xe3
00001d1d: SHL
00001d1e: DUP2
00001d1f: MSTORE
00001d20: PUSH1 0x04
00001d22: ADD
00001d23: PUSH1 0x40
00001d25: MLOAD
00001d26: DUP1
00001d27: SWAP2
00001d28: SUB
00001d29: SWAP1
00001d2a: REVERT
00001d2b: JUMPDEST
00001d2c: PUSH0
00001d2d: PUSH2 0x1d35
00001d30: DUP4
00001d31: PUSH2 0x1e79
00001d34: JUMP
00001d35: JUMPDEST
00001d36: SWAP1
00001d37: POP
00001d38: DUP1
00001d39: DUP6
00001d3a: GT
00001d3b: ISZERO
00001d3c: PUSH2 0x1d5e
00001d3f: JUMPI
00001d40: DUP3
00001d41: DUP6
00001d42: DUP3
00001d43: PUSH1 0x40
00001d45: MLOAD
00001d46: PUSH4 0xd929e443
00001d4b: PUSH1 0xe0
00001d4d: SHL
00001d4e: DUP2
00001d4f: MSTORE
00001d50: PUSH1 0x04
00001d52: ADD
00001d53: PUSH2 0x1b8d
00001d56: SWAP4
00001d57: SWAP3
00001d58: SWAP2
00001d59: SWAP1
00001d5a: PUSH2 0x445f
00001d5d: JUMP
00001d5e: JUMPDEST
00001d5f: PUSH2 0x1d67
00001d62: DUP6
00001d63: PUSH2 0x0fb7
00001d66: JUMP
00001d67: JUMPDEST
00001d68: SWAP2
00001d69: POP
00001d6a: PUSH2 0x1d76
00001d6d: CALLER
00001d6e: DUP6
00001d6f: DUP6
00001d70: DUP9
00001d71: DUP7
00001d72: PUSH2 0x2c31
00001d75: JUMP
00001d76: JUMPDEST
00001d77: POP
00001d78: PUSH2 0x1263
00001d7b: PUSH1 0x01
00001d7d: PUSH0
00001d7e: DUP1
00001d7f: MLOAD
00001d80: PUSH1 0x20
00001d82: PUSH2 0x4b12
00001d85: DUP4
00001d86: CODECOPY
00001d87: DUP2
00001d88: MLOAD
00001d89: SWAP2
00001d8a: MSTORE
00001d8b: SSTORE
00001d8c: JUMP
00001d8d: JUMPDEST
00001d8e: PUSH0
00001d8f: PUSH2 0x0fe0
00001d92: DUP4
00001d93: DUP4
00001d94: PUSH0
00001d95: PUSH2 0x240d
00001d98: JUMP
00001d99: JUMPDEST
00001d9a: PUSH0
00001d9b: PUSH2 0x1da2
00001d9e: PUSH2 0x2861
00001da1: JUMP
00001da2: JUMPDEST
00001da3: PUSH2 0x1daa
00001da6: PUSH2 0x16b9
00001da9: JUMP
00001daa: JUMPDEST
00001dab: ISZERO
00001dac: PUSH2 0x1dc8
00001daf: JUMPI
00001db0: PUSH1 0x40
00001db2: MLOAD
00001db3: PUSH4 0x13d0ff59
00001db8: PUSH1 0xe3
00001dba: SHL
00001dbb: DUP2
00001dbc: MSTORE
00001dbd: PUSH1 0x04
00001dbf: ADD
00001dc0: PUSH1 0x40
00001dc2: MLOAD
00001dc3: DUP1
00001dc4: SWAP2
00001dc5: SUB
00001dc6: SWAP1
00001dc7: REVERT
00001dc8: JUMPDEST
00001dc9: PUSH0
00001dca: PUSH2 0x1dd2
00001dcd: DUP4
00001dce: PUSH2 0x2147
00001dd1: JUMP
00001dd2: JUMPDEST
00001dd3: SWAP1
00001dd4: POP
00001dd5: DUP1
00001dd6: DUP6
00001dd7: GT
00001dd8: ISZERO
00001dd9: PUSH2 0x1dfb
00001ddc: JUMPI
00001ddd: DUP3
00001dde: DUP6
00001ddf: DUP3
00001de0: PUSH1 0x40
00001de2: MLOAD
00001de3: PUSH4 0x2e2e2d67
00001de8: PUSH1 0xe2
00001dea: SHL
00001deb: DUP2
00001dec: MSTORE
00001ded: PUSH1 0x04
00001def: ADD
00001df0: PUSH2 0x1b8d
00001df3: SWAP4
00001df4: SWAP3
00001df5: SWAP2
00001df6: SWAP1
00001df7: PUSH2 0x445f
00001dfa: JUMP
00001dfb: JUMPDEST
00001dfc: PUSH2 0x1e04
00001dff: DUP6
00001e00: PUSH2 0x1600
00001e03: JUMP
00001e04: JUMPDEST
00001e05: SWAP2
00001e06: POP
00001e07: PUSH2 0x1d76
00001e0a: CALLER
00001e0b: DUP6
00001e0c: DUP6
00001e0d: DUP6
00001e0e: DUP10
00001e0f: PUSH2 0x2c31
00001e12: JUMP
00001e13: JUMPDEST
00001e14: PUSH0
00001e15: PUSH2 0x1e1c
00001e18: PUSH2 0x2331
00001e1b: JUMP
00001e1c: JUMPDEST
00001e1d: PUSH1 0x02
00001e1f: ADD
00001e20: SLOAD
00001e21: PUSH1 0x01
00001e23: PUSH1 0xb8
00001e25: SHL
00001e26: SWAP1
00001e27: DIV
00001e28: PUSH1 0xff
00001e2a: AND
00001e2b: ISZERO
00001e2c: PUSH2 0x1e37
00001e2f: JUMPI
00001e30: PUSH2 0x0e79
00001e33: PUSH2 0x173e
00001e36: JUMP
00001e37: JUMPDEST
00001e38: PUSH2 0x1e3f
00001e3b: PUSH2 0x2331
00001e3e: JUMP
00001e3f: JUMPDEST
00001e40: SLOAD
00001e41: SWAP2
00001e42: SWAP1
00001e43: POP
00001e44: JUMP
00001e45: JUMPDEST
00001e46: PUSH0
00001e47: PUSH2 0x0f7e
00001e4a: PUSH2 0x1e51
00001e4d: PUSH2 0x142d
00001e50: JUMP
00001e51: JUMPDEST
00001e52: DUP4
00001e53: PUSH0
00001e54: PUSH2 0x240d
00001e57: JUMP
00001e58: JUMPDEST
00001e59: PUSH0
00001e5a: DUP1
00001e5b: MLOAD
00001e5c: PUSH1 0x20
00001e5e: PUSH2 0x4ad2
00001e61: DUP4
00001e62: CODECOPY
00001e63: DUP2
00001e64: MLOAD
00001e65: SWAP2
00001e66: MSTORE
00001e67: PUSH2 0x1e6f
00001e6a: DUP2
00001e6b: PUSH2 0x2492
00001e6e: JUMP
00001e6f: JUMPDEST
00001e70: PUSH2 0x130b
00001e73: DUP4
00001e74: DUP4
00001e75: PUSH2 0x2dd6
00001e78: JUMP
00001e79: JUMPDEST
00001e7a: PUSH0
00001e7b: PUSH2 0x1e82
00001e7e: PUSH2 0x16b9
00001e81: JUMP
00001e82: JUMPDEST
00001e83: ISZERO
00001e84: PUSH2 0x1e8e
00001e87: JUMPI
00001e88: POP
00001e89: PUSH0
00001e8a: SWAP2
00001e8b: SWAP1
00001e8c: POP
00001e8d: JUMP
00001e8e: JUMPDEST
00001e8f: PUSH0
00001e90: PUSH2 0x1e97
00001e93: PUSH2 0x2316
00001e96: JUMP
00001e97: JUMPDEST
00001e98: PUSH1 0x40
00001e9a: MLOAD
00001e9b: PUSH4 0xce96cb77
00001ea0: PUSH1 0xe0
00001ea2: SHL
00001ea3: DUP2
00001ea4: MSTORE
00001ea5: ADDRESS
00001ea6: PUSH1 0x04
00001ea8: DUP3
00001ea9: ADD
00001eaa: MSTORE
00001eab: PUSH1 0x01
00001ead: PUSH1 0x01
00001eaf: PUSH1 0xa0
00001eb1: SHL
00001eb2: SUB
00001eb3: SWAP2
00001eb4: SWAP1
00001eb5: SWAP2
00001eb6: AND
00001eb7: SWAP1
00001eb8: PUSH4 0xce96cb77
00001ebd: SWAP1
00001ebe: PUSH1 0x24
00001ec0: ADD
00001ec1: PUSH1 0x20
00001ec3: PUSH1 0x40
00001ec5: MLOAD
00001ec6: DUP1
00001ec7: DUP4
00001ec8: SUB
00001ec9: DUP2
00001eca: DUP7
00001ecb: GAS
00001ecc: STATICCALL
00001ecd: ISZERO
00001ece: DUP1
00001ecf: ISZERO
00001ed0: PUSH2 0x1edb
00001ed3: JUMPI
00001ed4: RETURNDATASIZE
00001ed5: PUSH0
00001ed6: DUP1
00001ed7: RETURNDATACOPY
00001ed8: RETURNDATASIZE
00001ed9: PUSH0
00001eda: REVERT
00001edb: JUMPDEST
00001edc: POP
00001edd: POP
00001ede: POP
00001edf: POP
00001ee0: PUSH1 0x40
00001ee2: MLOAD
00001ee3: RETURNDATASIZE
00001ee4: PUSH1 0x1f
00001ee6: NOT
00001ee7: PUSH1 0x1f
00001ee9: DUP3
00001eea: ADD
00001eeb: AND
00001eec: DUP3
00001eed: ADD
00001eee: DUP1
00001eef: PUSH1 0x40
00001ef1: MSTORE
00001ef2: POP
00001ef3: DUP2
00001ef4: ADD
00001ef5: SWAP1
00001ef6: PUSH2 0x1eff
00001ef9: SWAP2
00001efa: SWAP1
00001efb: PUSH2 0x414d
00001efe: JUMP
00001eff: JUMPDEST
00001f00: SWAP1
00001f01: POP
00001f02: DUP1
00001f03: PUSH0
00001f04: SUB
00001f05: PUSH2 0x1f10
00001f08: JUMPI
00001f09: POP
00001f0a: PUSH0
00001f0b: SWAP3
00001f0c: SWAP2
00001f0d: POP
00001f0e: POP
00001f0f: JUMP
00001f10: JUMPDEST
00001f11: PUSH0
00001f12: PUSH2 0x1f1a
00001f15: DUP5
00001f16: PUSH2 0x18e6
00001f19: JUMP
00001f1a: JUMPDEST
00001f1b: SWAP1
00001f1c: POP
00001f1d: PUSH0
00001f1e: PUSH2 0x1f26
00001f21: DUP3
00001f22: PUSH2 0x1600
00001f25: JUMP
00001f26: JUMPDEST
00001f27: SWAP1
00001f28: POP
00001f29: DUP1
00001f2a: DUP4
00001f2b: LT
00001f2c: PUSH2 0x1f35
00001f2f: JUMPI
00001f30: DUP1
00001f31: PUSH2 0x1f37
00001f34: JUMP
00001f35: JUMPDEST
00001f36: DUP3
00001f37: JUMPDEST
00001f38: SWAP6
00001f39: SWAP5
00001f3a: POP
00001f3b: POP
00001f3c: POP
00001f3d: POP
00001f3e: POP
00001f3f: JUMP
00001f40: JUMPDEST
00001f41: PUSH32 0x1b5c71208e8e044e1cadc5505569e80ff1ea068fcb794cd4bb41d7c0da7d21cb
00001f62: PUSH2 0x1f6a
00001f65: DUP2
00001f66: PUSH2 0x2492
00001f69: JUMP
00001f6a: JUMPDEST
00001f6b: PUSH1 0x40
00001f6d: MLOAD
00001f6e: PUSH4 0x033f635b
00001f73: PUSH1 0xe6
00001f75: SHL
00001f76: DUP2
00001f77: MSTORE
00001f78: PUSH1 0x01
00001f7a: PUSH1 0x01
00001f7c: PUSH1 0xa0
00001f7e: SHL
00001f7f: SUB
00001f80: DUP4
00001f81: AND
00001f82: PUSH1 0x04
00001f84: DUP3
00001f85: ADD
00001f86: MSTORE
00001f87: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00001f9c: SWAP1
00001f9d: PUSH4 0xcfd8d6c0
00001fa2: SWAP1
00001fa3: PUSH1 0x24
00001fa5: ADD
00001fa6: JUMPDEST
00001fa7: PUSH0
00001fa8: PUSH1 0x40
00001faa: MLOAD
00001fab: DUP1
00001fac: DUP4
00001fad: SUB
00001fae: DUP2
00001faf: DUP7
00001fb0: DUP1
00001fb1: EXTCODESIZE
00001fb2: ISZERO
00001fb3: DUP1
00001fb4: ISZERO
00001fb5: PUSH2 0x1fbc
00001fb8: JUMPI
00001fb9: PUSH0
00001fba: DUP1
00001fbb: REVERT
00001fbc: JUMPDEST
00001fbd: POP
00001fbe: GAS
00001fbf: DELEGATECALL
00001fc0: ISZERO
00001fc1: DUP1
00001fc2: ISZERO
00001fc3: PUSH2 0x1fce
00001fc6: JUMPI
00001fc7: RETURNDATASIZE
00001fc8: PUSH0
00001fc9: DUP1
00001fca: RETURNDATACOPY
00001fcb: RETURNDATASIZE
00001fcc: PUSH0
00001fcd: REVERT
00001fce: JUMPDEST
00001fcf: POP
00001fd0: POP
00001fd1: POP
00001fd2: POP
00001fd3: POP
00001fd4: POP
00001fd5: JUMP
00001fd6: JUMPDEST
00001fd7: DUP4
00001fd8: TIMESTAMP
00001fd9: GT
00001fda: ISZERO
00001fdb: PUSH2 0x1ffa
00001fde: JUMPI
00001fdf: PUSH1 0x40
00001fe1: MLOAD
00001fe2: PUSH4 0x313c8981
00001fe7: PUSH1 0xe1
00001fe9: SHL
00001fea: DUP2
00001feb: MSTORE
00001fec: PUSH1 0x04
00001fee: DUP2
00001fef: ADD
00001ff0: DUP6
00001ff1: SWAP1
00001ff2: MSTORE
00001ff3: PUSH1 0x24
00001ff5: ADD
00001ff6: PUSH2 0x1b8d
00001ff9: JUMP
00001ffa: JUMPDEST
00001ffb: PUSH0
00001ffc: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
0000201d: DUP9
0000201e: DUP9
0000201f: DUP9
00002020: PUSH2 0x2064
00002023: DUP13
00002024: PUSH1 0x01
00002026: PUSH1 0x01
00002028: PUSH1 0xa0
0000202a: SHL
0000202b: SUB
0000202c: AND
0000202d: PUSH0
0000202e: SWAP1
0000202f: DUP2
00002030: MSTORE
00002031: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00
00002052: PUSH1 0x20
00002054: MSTORE
00002055: PUSH1 0x40
00002057: SWAP1
00002058: KECCAK256
00002059: DUP1
0000205a: SLOAD
0000205b: PUSH1 0x01
0000205d: DUP2
0000205e: ADD
0000205f: SWAP1
00002060: SWAP2
00002061: SSTORE
00002062: SWAP1
00002063: JUMP
00002064: JUMPDEST
00002065: PUSH1 0x40
00002067: DUP1
00002068: MLOAD
00002069: PUSH1 0x20
0000206b: DUP2
0000206c: ADD
0000206d: SWAP7
0000206e: SWAP1
0000206f: SWAP7
00002070: MSTORE
00002071: PUSH1 0x01
00002073: PUSH1 0x01
00002075: PUSH1 0xa0
00002077: SHL
00002078: SUB
00002079: SWAP5
0000207a: DUP6
0000207b: AND
0000207c: SWAP1
0000207d: DUP7
0000207e: ADD
0000207f: MSTORE
00002080: SWAP3
00002081: SWAP1
00002082: SWAP2
00002083: AND
00002084: PUSH1 0x60
00002086: DUP5
00002087: ADD
00002088: MSTORE
00002089: PUSH1 0x80
0000208b: DUP4
0000208c: ADD
0000208d: MSTORE
0000208e: PUSH1 0xa0
00002090: DUP3
00002091: ADD
00002092: MSTORE
00002093: PUSH1 0xc0
00002095: DUP2
00002096: ADD
00002097: DUP7
00002098: SWAP1
00002099: MSTORE
0000209a: PUSH1 0xe0
0000209c: ADD
0000209d: PUSH1 0x40
0000209f: MLOAD
000020a0: PUSH1 0x20
000020a2: DUP2
000020a3: DUP4
000020a4: SUB
000020a5: SUB
000020a6: DUP2
000020a7: MSTORE
000020a8: SWAP1
000020a9: PUSH1 0x40
000020ab: MSTORE
000020ac: DUP1
000020ad: MLOAD
000020ae: SWAP1
000020af: PUSH1 0x20
000020b1: ADD
000020b2: KECCAK256
000020b3: SWAP1
000020b4: POP
000020b5: PUSH0
000020b6: PUSH2 0x20be
000020b9: DUP3
000020ba: PUSH2 0x2e0f
000020bd: JUMP
000020be: JUMPDEST
000020bf: SWAP1
000020c0: POP
000020c1: PUSH0
000020c2: PUSH2 0x20cd
000020c5: DUP3
000020c6: DUP8
000020c7: DUP8
000020c8: DUP8
000020c9: PUSH2 0x2e3b
000020cc: JUMP
000020cd: JUMPDEST
000020ce: SWAP1
000020cf: POP
000020d0: DUP10
000020d1: PUSH1 0x01
000020d3: PUSH1 0x01
000020d5: PUSH1 0xa0
000020d7: SHL
000020d8: SUB
000020d9: AND
000020da: DUP2
000020db: PUSH1 0x01
000020dd: PUSH1 0x01
000020df: PUSH1 0xa0
000020e1: SHL
000020e2: SUB
000020e3: AND
000020e4: EQ
000020e5: PUSH2 0x2114
000020e8: JUMPI
000020e9: PUSH1 0x40
000020eb: MLOAD
000020ec: PUSH4 0x25c00723
000020f1: PUSH1 0xe1
000020f3: SHL
000020f4: DUP2
000020f5: MSTORE
000020f6: PUSH1 0x01
000020f8: PUSH1 0x01
000020fa: PUSH1 0xa0
000020fc: SHL
000020fd: SUB
000020fe: DUP1
000020ff: DUP4
00002100: AND
00002101: PUSH1 0x04
00002103: DUP4
00002104: ADD
00002105: MSTORE
00002106: DUP12
00002107: AND
00002108: PUSH1 0x24
0000210a: DUP3
0000210b: ADD
0000210c: MSTORE
0000210d: PUSH1 0x44
0000210f: ADD
00002110: PUSH2 0x1b8d
00002113: JUMP
00002114: JUMPDEST
00002115: PUSH2 0x211f
00002118: DUP11
00002119: DUP11
0000211a: DUP11
0000211b: PUSH2 0x2400
0000211e: JUMP
0000211f: JUMPDEST
00002120: POP
00002121: POP
00002122: POP
00002123: POP
00002124: POP
00002125: POP
00002126: POP
00002127: POP
00002128: POP
00002129: POP
0000212a: JUMP
0000212b: JUMPDEST
0000212c: PUSH2 0x2134
0000212f: DUP3
00002130: PUSH2 0x126a
00002133: JUMP
00002134: JUMPDEST
00002135: PUSH2 0x213d
00002138: DUP2
00002139: PUSH2 0x2492
0000213c: JUMP
0000213d: JUMPDEST
0000213e: PUSH2 0x132c
00002141: DUP4
00002142: DUP4
00002143: PUSH2 0x2743
00002146: JUMP
00002147: JUMPDEST
00002148: PUSH0
00002149: PUSH2 0x2150
0000214c: PUSH2 0x16b9
0000214f: JUMP
00002150: JUMPDEST
00002151: ISZERO
00002152: PUSH2 0x215c
00002155: JUMPI
00002156: POP
00002157: PUSH0
00002158: SWAP2
00002159: SWAP1
0000215a: POP
0000215b: JUMP
0000215c: JUMPDEST
0000215d: PUSH0
0000215e: PUSH2 0x2165
00002161: PUSH2 0x2316
00002164: JUMP
00002165: JUMPDEST
00002166: PUSH1 0x40
00002168: MLOAD
00002169: PUSH4 0xce96cb77
0000216e: PUSH1 0xe0
00002170: SHL
00002171: DUP2
00002172: MSTORE
00002173: ADDRESS
00002174: PUSH1 0x04
00002176: DUP3
00002177: ADD
00002178: MSTORE
00002179: PUSH1 0x01
0000217b: PUSH1 0x01
0000217d: PUSH1 0xa0
0000217f: SHL
00002180: SUB
00002181: SWAP2
00002182: SWAP1
00002183: SWAP2
00002184: AND
00002185: SWAP1
00002186: PUSH4 0xce96cb77
0000218b: SWAP1
0000218c: PUSH1 0x24
0000218e: ADD
0000218f: PUSH1 0x20
00002191: PUSH1 0x40
00002193: MLOAD
00002194: DUP1
00002195: DUP4
00002196: SUB
00002197: DUP2
00002198: DUP7
00002199: GAS
0000219a: STATICCALL
0000219b: ISZERO
0000219c: DUP1
0000219d: ISZERO
0000219e: PUSH2 0x21a9
000021a1: JUMPI
000021a2: RETURNDATASIZE
000021a3: PUSH0
000021a4: DUP1
000021a5: RETURNDATACOPY
000021a6: RETURNDATASIZE
000021a7: PUSH0
000021a8: REVERT
000021a9: JUMPDEST
000021aa: POP
000021ab: POP
000021ac: POP
000021ad: POP
000021ae: PUSH1 0x40
000021b0: MLOAD
000021b1: RETURNDATASIZE
000021b2: PUSH1 0x1f
000021b4: NOT
000021b5: PUSH1 0x1f
000021b7: DUP3
000021b8: ADD
000021b9: AND
000021ba: DUP3
000021bb: ADD
000021bc: DUP1
000021bd: PUSH1 0x40
000021bf: MSTORE
000021c0: POP
000021c1: DUP2
000021c2: ADD
000021c3: SWAP1
000021c4: PUSH2 0x21cd
000021c7: SWAP2
000021c8: SWAP1
000021c9: PUSH2 0x414d
000021cc: JUMP
000021cd: JUMPDEST
000021ce: SWAP1
000021cf: POP
000021d0: DUP1
000021d1: PUSH0
000021d2: SUB
000021d3: PUSH2 0x21de
000021d6: JUMPI
000021d7: POP
000021d8: PUSH0
000021d9: SWAP3
000021da: SWAP2
000021db: POP
000021dc: POP
000021dd: JUMP
000021de: JUMPDEST
000021df: PUSH0
000021e0: PUSH2 0x21e8
000021e3: DUP5
000021e4: PUSH2 0x18e6
000021e7: JUMP
000021e8: JUMPDEST
000021e9: SWAP1
000021ea: POP
000021eb: PUSH2 0x21f3
000021ee: DUP2
000021ef: PUSH2 0x1600
000021f2: JUMP
000021f3: JUMPDEST
000021f4: DUP3
000021f5: LT
000021f6: PUSH2 0x21ff
000021f9: JUMPI
000021fa: DUP1
000021fb: PUSH2 0x1ce0
000021fe: JUMP
000021ff: JUMPDEST
00002200: PUSH2 0x1ce0
00002203: DUP3
00002204: PUSH2 0x0fb7
00002207: JUMP
00002208: JUMPDEST
00002209: PUSH1 0x01
0000220b: PUSH1 0x01
0000220d: PUSH1 0xa0
0000220f: SHL
00002210: SUB
00002211: SWAP2
00002212: DUP3
00002213: AND
00002214: PUSH0
00002215: SWAP1
00002216: DUP2
00002217: MSTORE
00002218: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01
00002239: PUSH1 0x20
0000223b: SWAP1
0000223c: DUP2
0000223d: MSTORE
0000223e: PUSH1 0x40
00002240: DUP1
00002241: DUP4
00002242: KECCAK256
00002243: SWAP4
00002244: SWAP1
00002245: SWAP5
00002246: AND
00002247: DUP3
00002248: MSTORE
00002249: SWAP2
0000224a: SWAP1
0000224b: SWAP2
0000224c: MSTORE
0000224d: KECCAK256
0000224e: SLOAD
0000224f: SWAP1
00002250: JUMP
00002251: JUMPDEST
00002252: PUSH2 0x2259
00002255: PUSH2 0x2861
00002258: JUMP
00002259: JUMPDEST
0000225a: PUSH2 0x2261
0000225d: PUSH2 0x2a09
00002260: JUMP
00002261: JUMPDEST
00002262: PUSH2 0x2277
00002265: PUSH1 0x01
00002267: PUSH0
00002268: DUP1
00002269: MLOAD
0000226a: PUSH1 0x20
0000226c: PUSH2 0x4b12
0000226f: DUP4
00002270: CODECOPY
00002271: DUP2
00002272: MLOAD
00002273: SWAP2
00002274: MSTORE
00002275: SSTORE
00002276: JUMP
00002277: JUMPDEST
00002278: JUMP
00002279: JUMPDEST
0000227a: PUSH32 0xe5d2521c7601dc3ebb9e087fbf87bdb7a14e74956103c86bf28d0f9d0e87c832
0000229b: PUSH2 0x22a3
0000229e: DUP2
0000229f: PUSH2 0x2492
000022a2: JUMP
000022a3: JUMPDEST
000022a4: PUSH1 0x40
000022a6: MLOAD
000022a7: PUSH4 0xe95c41c3
000022ac: PUSH1 0xe0
000022ae: SHL
000022af: DUP2
000022b0: MSTORE
000022b1: PUSH1 0x01
000022b3: PUSH1 0x01
000022b5: PUSH1 0xa0
000022b7: SHL
000022b8: SUB
000022b9: DUP4
000022ba: AND
000022bb: PUSH1 0x04
000022bd: DUP3
000022be: ADD
000022bf: MSTORE
000022c0: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
000022d5: SWAP1
000022d6: PUSH4 0xe95c41c3
000022db: SWAP1
000022dc: PUSH1 0x24
000022de: ADD
000022df: PUSH2 0x1fa6
000022e2: JUMP
000022e3: JUMPDEST
000022e4: PUSH0
000022e5: DUP1
000022e6: PUSH2 0x22ed
000022e9: PUSH2 0x29c1
000022ec: JUMP
000022ed: JUMPDEST
000022ee: DUP1
000022ef: SLOAD
000022f0: SWAP1
000022f1: SWAP2
000022f2: POP
000022f3: PUSH1 0x01
000022f5: PUSH1 0x01
000022f7: PUSH1 0x40
000022f9: SHL
000022fa: SUB
000022fb: AND
000022fc: PUSH0
000022fd: DUP2
000022fe: SWAP1
000022ff: SUB
00002300: PUSH2 0x230c
00002303: JUMPI
00002304: POP
00002305: PUSH0
00002306: SWAP4
00002307: SWAP3
00002308: POP
00002309: POP
0000230a: POP
0000230b: JUMP
0000230c: JUMPDEST
0000230d: PUSH2 0x1ce0
00002310: DUP5
00002311: DUP3
00002312: PUSH2 0x2e67
00002315: JUMP
00002316: JUMPDEST
00002317: PUSH0
00002318: PUSH2 0x231f
0000231b: PUSH2 0x2331
0000231e: JUMP
0000231f: JUMPDEST
00002320: PUSH1 0x02
00002322: ADD
00002323: SLOAD
00002324: PUSH1 0x01
00002326: PUSH1 0x01
00002328: PUSH1 0xa0
0000232a: SHL
0000232b: SUB
0000232c: AND
0000232d: SWAP2
0000232e: SWAP1
0000232f: POP
00002330: JUMP
00002331: JUMPDEST
00002332: PUSH0
00002333: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00002348: PUSH4 0xb9008f01
0000234d: PUSH1 0x40
0000234f: MLOAD
00002350: DUP2
00002351: PUSH4 0xffffffff
00002356: AND
00002357: PUSH1 0xe0
00002359: SHL
0000235a: DUP2
0000235b: MSTORE
0000235c: PUSH1 0x04
0000235e: ADD
0000235f: PUSH1 0x20
00002361: PUSH1 0x40
00002363: MLOAD
00002364: DUP1
00002365: DUP4
00002366: SUB
00002367: DUP2
00002368: DUP7
00002369: GAS
0000236a: DELEGATECALL
0000236b: ISZERO
0000236c: DUP1
0000236d: ISZERO
0000236e: PUSH2 0x0e55
00002371: JUMPI
00002372: RETURNDATASIZE
00002373: PUSH0
00002374: DUP1
00002375: RETURNDATACOPY
00002376: RETURNDATASIZE
00002377: PUSH0
00002378: REVERT
00002379: JUMPDEST
0000237a: PUSH0
0000237b: DUP1
0000237c: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00002391: PUSH4 0xf38ff3de
00002396: DUP7
00002397: DUP7
00002398: DUP7
00002399: PUSH1 0x40
0000239b: MLOAD
0000239c: DUP5
0000239d: PUSH4 0xffffffff
000023a2: AND
000023a3: PUSH1 0xe0
000023a5: SHL
000023a6: DUP2
000023a7: MSTORE
000023a8: PUSH1 0x04
000023aa: ADD
000023ab: PUSH2 0x23b6
000023ae: SWAP4
000023af: SWAP3
000023b0: SWAP2
000023b1: SWAP1
000023b2: PUSH2 0x4480
000023b5: JUMP
000023b6: JUMPDEST
000023b7: PUSH1 0x40
000023b9: DUP1
000023ba: MLOAD
000023bb: DUP1
000023bc: DUP4
000023bd: SUB
000023be: DUP2
000023bf: DUP7
000023c0: GAS
000023c1: DELEGATECALL
000023c2: ISZERO
000023c3: DUP1
000023c4: ISZERO
000023c5: PUSH2 0x23d0
000023c8: JUMPI
000023c9: RETURNDATASIZE
000023ca: PUSH0
000023cb: DUP1
000023cc: RETURNDATACOPY
000023cd: RETURNDATASIZE
000023ce: PUSH0
000023cf: REVERT
000023d0: JUMPDEST
000023d1: POP
000023d2: POP
000023d3: POP
000023d4: POP
000023d5: PUSH1 0x40
000023d7: MLOAD
000023d8: RETURNDATASIZE
000023d9: PUSH1 0x1f
000023db: NOT
000023dc: PUSH1 0x1f
000023de: DUP3
000023df: ADD
000023e0: AND
000023e1: DUP3
000023e2: ADD
000023e3: DUP1
000023e4: PUSH1 0x40
000023e6: MSTORE
000023e7: POP
000023e8: DUP2
000023e9: ADD
000023ea: SWAP1
000023eb: PUSH2 0x23f4
000023ee: SWAP2
000023ef: SWAP1
000023f0: PUSH2 0x44b5
000023f3: JUMP
000023f4: JUMPDEST
000023f5: SWAP2
000023f6: POP
000023f7: SWAP2
000023f8: POP
000023f9: SWAP4
000023fa: POP
000023fb: SWAP4
000023fc: SWAP2
000023fd: POP
000023fe: POP
000023ff: JUMP
00002400: JUMPDEST
00002401: PUSH2 0x130b
00002404: DUP4
00002405: DUP4
00002406: DUP4
00002407: PUSH1 0x01
00002409: PUSH2 0x2e79
0000240c: JUMP
0000240d: JUMPDEST
0000240e: PUSH0
0000240f: DUP1
00002410: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00002425: PUSH4 0x8523c787
0000242a: DUP7
0000242b: DUP7
0000242c: DUP7
0000242d: PUSH1 0x40
0000242f: MLOAD
00002430: DUP5
00002431: PUSH4 0xffffffff
00002436: AND
00002437: PUSH1 0xe0
00002439: SHL
0000243a: DUP2
0000243b: MSTORE
0000243c: PUSH1 0x04
0000243e: ADD
0000243f: PUSH2 0x23b6
00002442: SWAP4
00002443: SWAP3
00002444: SWAP2
00002445: SWAP1
00002446: PUSH2 0x4480
00002449: JUMP
0000244a: JUMPDEST
0000244b: PUSH0
0000244c: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00002461: PUSH4 0xa2719b81
00002466: PUSH1 0x40
00002468: MLOAD
00002469: DUP2
0000246a: PUSH4 0xffffffff
0000246f: AND
00002470: PUSH1 0xe0
00002472: SHL
00002473: DUP2
00002474: MSTORE
00002475: PUSH1 0x04
00002477: ADD
00002478: PUSH1 0x20
0000247a: PUSH1 0x40
0000247c: MLOAD
0000247d: DUP1
0000247e: DUP4
0000247f: SUB
00002480: DUP2
00002481: DUP7
00002482: GAS
00002483: DELEGATECALL
00002484: ISZERO
00002485: DUP1
00002486: ISZERO
00002487: PUSH2 0x0e55
0000248a: JUMPI
0000248b: RETURNDATASIZE
0000248c: PUSH0
0000248d: DUP1
0000248e: RETURNDATACOPY
0000248f: RETURNDATASIZE
00002490: PUSH0
00002491: REVERT
00002492: JUMPDEST
00002493: PUSH2 0x249c
00002496: DUP2
00002497: CALLER
00002498: PUSH2 0x2f5c
0000249b: JUMP
0000249c: JUMPDEST
0000249d: POP
0000249e: JUMP
0000249f: JUMPDEST
000024a0: PUSH0
000024a1: PUSH2 0x24aa
000024a4: DUP5
000024a5: DUP5
000024a6: PUSH2 0x2208
000024a9: JUMP
000024aa: JUMPDEST
000024ab: SWAP1
000024ac: POP
000024ad: PUSH0
000024ae: NOT
000024af: DUP2
000024b0: EQ
000024b1: PUSH2 0x132c
000024b4: JUMPI
000024b5: DUP2
000024b6: DUP2
000024b7: LT
000024b8: ISZERO
000024b9: PUSH2 0x24db
000024bc: JUMPI
000024bd: DUP3
000024be: DUP2
000024bf: DUP4
000024c0: PUSH1 0x40
000024c2: MLOAD
000024c3: PUSH4 0x7dc7a0d9
000024c8: PUSH1 0xe1
000024ca: SHL
000024cb: DUP2
000024cc: MSTORE
000024cd: PUSH1 0x04
000024cf: ADD
000024d0: PUSH2 0x1b8d
000024d3: SWAP4
000024d4: SWAP3
000024d5: SWAP2
000024d6: SWAP1
000024d7: PUSH2 0x445f
000024da: JUMP
000024db: JUMPDEST
000024dc: PUSH2 0x132c
000024df: DUP5
000024e0: DUP5
000024e1: DUP5
000024e2: DUP5
000024e3: SUB
000024e4: PUSH0
000024e5: PUSH2 0x2e79
000024e8: JUMP
000024e9: JUMPDEST
000024ea: PUSH1 0x01
000024ec: PUSH1 0x01
000024ee: PUSH1 0xa0
000024f0: SHL
000024f1: SUB
000024f2: DUP4
000024f3: AND
000024f4: PUSH2 0x2512
000024f7: JUMPI
000024f8: PUSH1 0x40
000024fa: MLOAD
000024fb: PUSH4 0x4b637e8f
00002500: PUSH1 0xe1
00002502: SHL
00002503: DUP2
00002504: MSTORE
00002505: PUSH0
00002506: PUSH1 0x04
00002508: DUP3
00002509: ADD
0000250a: MSTORE
0000250b: PUSH1 0x24
0000250d: ADD
0000250e: PUSH2 0x1b8d
00002511: JUMP
00002512: JUMPDEST
00002513: PUSH1 0x01
00002515: PUSH1 0x01
00002517: PUSH1 0xa0
00002519: SHL
0000251a: SUB
0000251b: DUP3
0000251c: AND
0000251d: PUSH2 0x253b
00002520: JUMPI
00002521: PUSH1 0x40
00002523: MLOAD
00002524: PUSH4 0xec442f05
00002529: PUSH1 0xe0
0000252b: SHL
0000252c: DUP2
0000252d: MSTORE
0000252e: PUSH0
0000252f: PUSH1 0x04
00002531: DUP3
00002532: ADD
00002533: MSTORE
00002534: PUSH1 0x24
00002536: ADD
00002537: PUSH2 0x1b8d
0000253a: JUMP
0000253b: JUMPDEST
0000253c: PUSH2 0x130b
0000253f: DUP4
00002540: DUP4
00002541: DUP4
00002542: PUSH2 0x2f95
00002545: JUMP
00002546: JUMPDEST
00002547: PUSH1 0x40
00002549: MLOAD
0000254a: PUSH4 0x88bd3bb3
0000254f: PUSH1 0xe0
00002551: SHL
00002552: DUP2
00002553: MSTORE
00002554: PUSH1 0x01
00002556: PUSH1 0x01
00002558: PUSH1 0xa0
0000255a: SHL
0000255b: SUB
0000255c: DUP5
0000255d: AND
0000255e: PUSH1 0x04
00002560: DUP3
00002561: ADD
00002562: MSTORE
00002563: PUSH1 0xff
00002565: DUP4
00002566: AND
00002567: PUSH1 0x24
00002569: DUP3
0000256a: ADD
0000256b: MSTORE
0000256c: DUP2
0000256d: ISZERO
0000256e: ISZERO
0000256f: PUSH1 0x44
00002571: DUP3
00002572: ADD
00002573: MSTORE
00002574: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00002589: SWAP1
0000258a: PUSH4 0x88bd3bb3
0000258f: SWAP1
00002590: PUSH1 0x64
00002592: ADD
00002593: PUSH0
00002594: PUSH1 0x40
00002596: MLOAD
00002597: DUP1
00002598: DUP4
00002599: SUB
0000259a: DUP2
0000259b: DUP7
0000259c: DUP1
0000259d: EXTCODESIZE
0000259e: ISZERO
0000259f: DUP1
000025a0: ISZERO
000025a1: PUSH2 0x25a8
000025a4: JUMPI
000025a5: PUSH0
000025a6: DUP1
000025a7: REVERT
000025a8: JUMPDEST
000025a9: POP
000025aa: GAS
000025ab: DELEGATECALL
000025ac: ISZERO
000025ad: DUP1
000025ae: ISZERO
000025af: PUSH2 0x25ba
000025b2: JUMPI
000025b3: RETURNDATASIZE
000025b4: PUSH0
000025b5: DUP1
000025b6: RETURNDATACOPY
000025b7: RETURNDATASIZE
000025b8: PUSH0
000025b9: REVERT
000025ba: JUMPDEST
000025bb: POP
000025bc: POP
000025bd: POP
000025be: POP
000025bf: POP
000025c0: POP
000025c1: POP
000025c2: JUMP
000025c3: JUMPDEST
000025c4: PUSH0
000025c5: PUSH0
000025c6: DUP1
000025c7: MLOAD
000025c8: PUSH1 0x20
000025ca: PUSH2 0x4af2
000025cd: DUP4
000025ce: CODECOPY
000025cf: DUP2
000025d0: MLOAD
000025d1: SWAP2
000025d2: MSTORE
000025d3: PUSH2 0x25dc
000025d6: DUP5
000025d7: DUP5
000025d8: PUSH2 0x1bd0
000025db: JUMP
000025dc: JUMPDEST
000025dd: PUSH2 0x265b
000025e0: JUMPI
000025e1: PUSH0
000025e2: DUP5
000025e3: DUP2
000025e4: MSTORE
000025e5: PUSH1 0x20
000025e7: DUP3
000025e8: DUP2
000025e9: MSTORE
000025ea: PUSH1 0x40
000025ec: DUP1
000025ed: DUP4
000025ee: KECCAK256
000025ef: PUSH1 0x01
000025f1: PUSH1 0x01
000025f3: PUSH1 0xa0
000025f5: SHL
000025f6: SUB
000025f7: DUP8
000025f8: AND
000025f9: DUP5
000025fa: MSTORE
000025fb: SWAP1
000025fc: SWAP2
000025fd: MSTORE
000025fe: SWAP1
000025ff: KECCAK256
00002600: DUP1
00002601: SLOAD
00002602: PUSH1 0xff
00002604: NOT
00002605: AND
00002606: PUSH1 0x01
00002608: OR
00002609: SWAP1
0000260a: SSTORE
0000260b: PUSH2 0x2611
0000260e: CALLER
0000260f: SWAP1
00002610: JUMP
00002611: JUMPDEST
00002612: PUSH1 0x01
00002614: PUSH1 0x01
00002616: PUSH1 0xa0
00002618: SHL
00002619: SUB
0000261a: AND
0000261b: DUP4
0000261c: PUSH1 0x01
0000261e: PUSH1 0x01
00002620: PUSH1 0xa0
00002622: SHL
00002623: SUB
00002624: AND
00002625: DUP6
00002626: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
00002647: PUSH1 0x40
00002649: MLOAD
0000264a: PUSH1 0x40
0000264c: MLOAD
0000264d: DUP1
0000264e: SWAP2
0000264f: SUB
00002650: SWAP1
00002651: LOG4
00002652: PUSH1 0x01
00002654: SWAP2
00002655: POP
00002656: POP
00002657: PUSH2 0x0eae
0000265a: JUMP
0000265b: JUMPDEST
0000265c: PUSH0
0000265d: SWAP2
0000265e: POP
0000265f: POP
00002660: PUSH2 0x0eae
00002663: JUMP
00002664: JUMPDEST
00002665: PUSH0
00002666: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
0000267b: PUSH4 0x7c77e8df
00002680: PUSH1 0x40
00002682: MLOAD
00002683: DUP2
00002684: PUSH4 0xffffffff
00002689: AND
0000268a: PUSH1 0xe0
0000268c: SHL
0000268d: DUP2
0000268e: MSTORE
0000268f: PUSH1 0x04
00002691: ADD
00002692: PUSH1 0x20
00002694: PUSH1 0x40
00002696: MLOAD
00002697: DUP1
00002698: DUP4
00002699: SUB
0000269a: DUP2
0000269b: DUP7
0000269c: GAS
0000269d: DELEGATECALL
0000269e: ISZERO
0000269f: DUP1
000026a0: ISZERO
000026a1: PUSH2 0x0e55
000026a4: JUMPI
000026a5: RETURNDATASIZE
000026a6: PUSH0
000026a7: DUP1
000026a8: RETURNDATACOPY
000026a9: RETURNDATASIZE
000026aa: PUSH0
000026ab: REVERT
000026ac: JUMPDEST
000026ad: DUP1
000026ae: PUSH2 0x26b5
000026b1: PUSH2 0x244a
000026b4: JUMP
000026b5: JUMPDEST
000026b6: PUSH1 0x01
000026b8: PUSH1 0x01
000026ba: PUSH1 0xa0
000026bc: SHL
000026bd: SUB
000026be: DUP6
000026bf: AND
000026c0: PUSH0
000026c1: SWAP1
000026c2: DUP2
000026c3: MSTORE
000026c4: PUSH1 0x02
000026c6: SWAP2
000026c7: SWAP1
000026c8: SWAP2
000026c9: ADD
000026ca: PUSH1 0x20
000026cc: SWAP1
000026cd: DUP2
000026ce: MSTORE
000026cf: PUSH1 0x40
000026d1: DUP1
000026d2: DUP4
000026d3: KECCAK256
000026d4: PUSH1 0x01
000026d6: PUSH1 0x01
000026d8: PUSH1 0xe0
000026da: SHL
000026db: SUB
000026dc: NOT
000026dd: DUP8
000026de: AND
000026df: DUP5
000026e0: MSTORE
000026e1: SWAP1
000026e2: SWAP2
000026e3: MSTORE
000026e4: SWAP1
000026e5: KECCAK256
000026e6: PUSH2 0x26ef
000026e9: DUP3
000026ea: DUP3
000026eb: PUSH2 0x465a
000026ee: JUMP
000026ef: JUMPDEST
000026f0: SWAP1
000026f1: POP
000026f2: POP
000026f3: DUP3
000026f4: PUSH1 0x01
000026f6: PUSH1 0x01
000026f8: PUSH1 0xa0
000026fa: SHL
000026fb: SUB
000026fc: AND
000026fd: PUSH32 0x8bbaf1a6b378451fa824636b7db10623c63a9b03c980c9241a459efb4af8ae0c
0000271e: DUP4
0000271f: DUP4
00002720: PUSH1 0x40
00002722: MLOAD
00002723: PUSH2 0x272d
00002726: SWAP3
00002727: SWAP2
00002728: SWAP1
00002729: PUSH2 0x47d3
0000272c: JUMP
0000272d: JUMPDEST
0000272e: PUSH1 0x40
00002730: MLOAD
00002731: DUP1
00002732: SWAP2
00002733: SUB
00002734: SWAP1
00002735: LOG2
00002736: POP
00002737: POP
00002738: POP
00002739: JUMP
0000273a: JUMPDEST
0000273b: PUSH0
0000273c: PUSH2 0x0e79
0000273f: PUSH2 0x30bb
00002742: JUMP
00002743: JUMPDEST
00002744: PUSH0
00002745: PUSH0
00002746: DUP1
00002747: MLOAD
00002748: PUSH1 0x20
0000274a: PUSH2 0x4af2
0000274d: DUP4
0000274e: CODECOPY
0000274f: DUP2
00002750: MLOAD
00002751: SWAP2
00002752: MSTORE
00002753: PUSH2 0x275c
00002756: DUP5
00002757: DUP5
00002758: PUSH2 0x1bd0
0000275b: JUMP
0000275c: JUMPDEST
0000275d: ISZERO
0000275e: PUSH2 0x265b
00002761: JUMPI
00002762: PUSH0
00002763: DUP5
00002764: DUP2
00002765: MSTORE
00002766: PUSH1 0x20
00002768: DUP3
00002769: DUP2
0000276a: MSTORE
0000276b: PUSH1 0x40
0000276d: DUP1
0000276e: DUP4
0000276f: KECCAK256
00002770: PUSH1 0x01
00002772: PUSH1 0x01
00002774: PUSH1 0xa0
00002776: SHL
00002777: SUB
00002778: DUP8
00002779: AND
0000277a: DUP1
0000277b: DUP6
0000277c: MSTORE
0000277d: SWAP3
0000277e: MSTORE
0000277f: DUP1
00002780: DUP4
00002781: KECCAK256
00002782: DUP1
00002783: SLOAD
00002784: PUSH1 0xff
00002786: NOT
00002787: AND
00002788: SWAP1
00002789: SSTORE
0000278a: MLOAD
0000278b: CALLER
0000278c: SWAP3
0000278d: DUP8
0000278e: SWAP2
0000278f: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
000027b0: SWAP2
000027b1: SWAP1
000027b2: LOG4
000027b3: PUSH1 0x01
000027b5: SWAP2
000027b6: POP
000027b7: POP
000027b8: PUSH2 0x0eae
000027bb: JUMP
000027bc: JUMPDEST
000027bd: PUSH4 0x05f5e100
000027c2: DUP2
000027c3: PUSH1 0x01
000027c5: PUSH1 0x01
000027c7: PUSH1 0x40
000027c9: SHL
000027ca: SUB
000027cb: AND
000027cc: GT
000027cd: ISZERO
000027ce: PUSH2 0x27f5
000027d1: JUMPI
000027d2: PUSH1 0x40
000027d4: MLOAD
000027d5: PUSH4 0x3932103d
000027da: PUSH1 0xe0
000027dc: SHL
000027dd: DUP2
000027de: MSTORE
000027df: PUSH1 0x01
000027e1: PUSH1 0x01
000027e3: PUSH1 0x40
000027e5: SHL
000027e6: SUB
000027e7: DUP3
000027e8: AND
000027e9: PUSH1 0x04
000027eb: DUP3
000027ec: ADD
000027ed: MSTORE
000027ee: PUSH1 0x24
000027f0: ADD
000027f1: PUSH2 0x1b8d
000027f4: JUMP
000027f5: JUMPDEST
000027f6: PUSH0
000027f7: PUSH2 0x27fe
000027fa: PUSH2 0x29c1
000027fd: JUMP
000027fe: JUMPDEST
000027ff: DUP1
00002800: SLOAD
00002801: PUSH1 0x01
00002803: PUSH1 0x01
00002805: PUSH1 0x40
00002807: SHL
00002808: SUB
00002809: DUP5
0000280a: DUP2
0000280b: AND
0000280c: PUSH8 0xffffffffffffffff
00002815: NOT
00002816: DUP4
00002817: AND
00002818: DUP2
00002819: OR
0000281a: DUP5
0000281b: SSTORE
0000281c: PUSH1 0x40
0000281e: DUP1
0000281f: MLOAD
00002820: SWAP3
00002821: SWAP1
00002822: SWAP4
00002823: AND
00002824: DUP1
00002825: DUP4
00002826: MSTORE
00002827: PUSH1 0x20
00002829: DUP4
0000282a: ADD
0000282b: SWAP2
0000282c: SWAP1
0000282d: SWAP2
0000282e: MSTORE
0000282f: SWAP3
00002830: SWAP4
00002831: POP
00002832: PUSH32 0x16b868fbc781d6e3d8bd0c215f5d4242c64cd980d5cc49e6af28efa52ad0ca2d
00002853: SWAP2
00002854: ADD
00002855: PUSH1 0x40
00002857: MLOAD
00002858: DUP1
00002859: SWAP2
0000285a: SUB
0000285b: SWAP1
0000285c: LOG1
0000285d: POP
0000285e: POP
0000285f: POP
00002860: JUMP
00002861: JUMPDEST
00002862: PUSH0
00002863: DUP1
00002864: MLOAD
00002865: PUSH1 0x20
00002867: PUSH2 0x4b12
0000286a: DUP4
0000286b: CODECOPY
0000286c: DUP2
0000286d: MLOAD
0000286e: SWAP2
0000286f: MSTORE
00002870: DUP1
00002871: SLOAD
00002872: PUSH1 0x01
00002874: NOT
00002875: ADD
00002876: PUSH2 0x2892
00002879: JUMPI
0000287a: PUSH1 0x40
0000287c: MLOAD
0000287d: PUSH4 0x3ee5aeb5
00002882: PUSH1 0xe0
00002884: SHL
00002885: DUP2
00002886: MSTORE
00002887: PUSH1 0x04
00002889: ADD
0000288a: PUSH1 0x40
0000288c: MLOAD
0000288d: DUP1
0000288e: SWAP2
0000288f: SUB
00002890: SWAP1
00002891: REVERT
00002892: JUMPDEST
00002893: PUSH1 0x02
00002895: SWAP1
00002896: SSTORE
00002897: JUMP
00002898: JUMPDEST
00002899: PUSH2 0x28a0
0000289c: PUSH2 0x2664
0000289f: JUMP
000028a0: JUMPDEST
000028a1: PUSH1 0x01
000028a3: PUSH1 0x01
000028a5: PUSH1 0xa0
000028a7: SHL
000028a8: SUB
000028a9: DUP8
000028aa: AND
000028ab: PUSH0
000028ac: SWAP1
000028ad: DUP2
000028ae: MSTORE
000028af: PUSH1 0x20
000028b1: SWAP2
000028b2: SWAP1
000028b3: SWAP2
000028b4: MSTORE
000028b5: PUSH1 0x40
000028b7: SWAP1
000028b8: KECCAK256
000028b9: PUSH1 0x01
000028bb: ADD
000028bc: SLOAD
000028bd: PUSH1 0xff
000028bf: AND
000028c0: PUSH2 0x28dc
000028c3: JUMPI
000028c4: PUSH1 0x40
000028c6: MLOAD
000028c7: PUSH4 0xf611219f
000028cc: PUSH1 0xe0
000028ce: SHL
000028cf: DUP2
000028d0: MSTORE
000028d1: PUSH1 0x04
000028d3: ADD
000028d4: PUSH1 0x40
000028d6: MLOAD
000028d7: DUP1
000028d8: SWAP2
000028d9: SUB
000028da: SWAP1
000028db: REVERT
000028dc: JUMPDEST
000028dd: PUSH2 0x28e5
000028e0: DUP2
000028e1: PUSH2 0x312e
000028e4: JUMP
000028e5: JUMPDEST
000028e6: PUSH2 0x28f1
000028e9: DUP7
000028ea: DUP7
000028eb: ADDRESS
000028ec: DUP7
000028ed: PUSH2 0x3169
000028f0: JUMP
000028f1: JUMPDEST
000028f2: PUSH2 0x28fb
000028f5: DUP5
000028f6: DUP4
000028f7: PUSH2 0x31c3
000028fa: JUMP
000028fb: JUMPDEST
000028fc: DUP4
000028fd: PUSH1 0x01
000028ff: PUSH1 0x01
00002901: PUSH1 0xa0
00002903: SHL
00002904: SUB
00002905: AND
00002906: DUP6
00002907: PUSH1 0x01
00002909: PUSH1 0x01
0000290b: PUSH1 0xa0
0000290d: SHL
0000290e: SUB
0000290f: AND
00002910: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
00002931: DUP6
00002932: DUP6
00002933: PUSH1 0x40
00002935: MLOAD
00002936: PUSH2 0x2949
00002939: SWAP3
0000293a: SWAP2
0000293b: SWAP1
0000293c: SWAP2
0000293d: DUP3
0000293e: MSTORE
0000293f: PUSH1 0x20
00002941: DUP3
00002942: ADD
00002943: MSTORE
00002944: PUSH1 0x40
00002946: ADD
00002947: SWAP1
00002948: JUMP
00002949: JUMPDEST
0000294a: PUSH1 0x40
0000294c: MLOAD
0000294d: DUP1
0000294e: SWAP2
0000294f: SUB
00002950: SWAP1
00002951: LOG3
00002952: PUSH1 0x40
00002954: DUP1
00002955: MLOAD
00002956: DUP5
00002957: DUP2
00002958: MSTORE
00002959: PUSH1 0x20
0000295b: DUP2
0000295c: ADD
0000295d: DUP4
0000295e: SWAP1
0000295f: MSTORE
00002960: SWAP1
00002961: DUP2
00002962: ADD
00002963: DUP4
00002964: SWAP1
00002965: MSTORE
00002966: PUSH1 0x01
00002968: PUSH1 0x01
0000296a: PUSH1 0xa0
0000296c: SHL
0000296d: SUB
0000296e: DUP1
0000296f: DUP9
00002970: AND
00002971: SWAP2
00002972: DUP7
00002973: DUP3
00002974: AND
00002975: SWAP2
00002976: DUP9
00002977: AND
00002978: SWAP1
00002979: PUSH32 0x443cf97e1e2a6c5f9dc9b6c13c06ced619c4b379f078138f493da980d2f6096c
0000299a: SWAP1
0000299b: PUSH1 0x60
0000299d: ADD
0000299e: JUMPDEST
0000299f: PUSH1 0x40
000029a1: MLOAD
000029a2: DUP1
000029a3: SWAP2
000029a4: SUB
000029a5: SWAP1
000029a6: LOG4
000029a7: POP
000029a8: POP
000029a9: POP
000029aa: POP
000029ab: POP
000029ac: POP
000029ad: JUMP
000029ae: JUMPDEST
000029af: PUSH1 0x01
000029b1: PUSH0
000029b2: DUP1
000029b3: MLOAD
000029b4: PUSH1 0x20
000029b6: PUSH2 0x4b12
000029b9: DUP4
000029ba: CODECOPY
000029bb: DUP2
000029bc: MLOAD
000029bd: SWAP2
000029be: MSTORE
000029bf: SSTORE
000029c0: JUMP
000029c1: JUMPDEST
000029c2: PUSH0
000029c3: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
000029d8: PUSH4 0x343ddaa3
000029dd: PUSH1 0x40
000029df: MLOAD
000029e0: DUP2
000029e1: PUSH4 0xffffffff
000029e6: AND
000029e7: PUSH1 0xe0
000029e9: SHL
000029ea: DUP2
000029eb: MSTORE
000029ec: PUSH1 0x04
000029ee: ADD
000029ef: PUSH1 0x20
000029f1: PUSH1 0x40
000029f3: MLOAD
000029f4: DUP1
000029f5: DUP4
000029f6: SUB
000029f7: DUP2
000029f8: DUP7
000029f9: GAS
000029fa: DELEGATECALL
000029fb: ISZERO
000029fc: DUP1
000029fd: ISZERO
000029fe: PUSH2 0x0e55
00002a01: JUMPI
00002a02: RETURNDATASIZE
00002a03: PUSH0
00002a04: DUP1
00002a05: RETURNDATACOPY
00002a06: RETURNDATASIZE
00002a07: PUSH0
00002a08: REVERT
00002a09: JUMPDEST
00002a0a: PUSH0
00002a0b: PUSH2 0x2a12
00002a0e: PUSH2 0x173e
00002a11: JUMP
00002a12: JUMPDEST
00002a13: SWAP1
00002a14: POP
00002a15: DUP1
00002a16: PUSH2 0x2a1d
00002a19: PUSH2 0x2331
00002a1c: JUMP
00002a1d: JUMPDEST
00002a1e: SSTORE
00002a1f: PUSH1 0x40
00002a21: DUP1
00002a22: MLOAD
00002a23: TIMESTAMP
00002a24: DUP2
00002a25: MSTORE
00002a26: PUSH1 0x20
00002a28: DUP2
00002a29: ADD
00002a2a: DUP4
00002a2b: SWAP1
00002a2c: MSTORE
00002a2d: PUSH32 0x68bcc4a666aaecf2318c45a7b9d7cc98a6a117123def23383037779ce49bb690
00002a4e: SWAP2
00002a4f: ADD
00002a50: PUSH1 0x40
00002a52: MLOAD
00002a53: DUP1
00002a54: SWAP2
00002a55: SUB
00002a56: SWAP1
00002a57: LOG1
00002a58: POP
00002a59: JUMP
00002a5a: JUMPDEST
00002a5b: PUSH2 0x2a64
00002a5e: DUP8
00002a5f: DUP8
00002a60: PUSH2 0x31f7
00002a63: JUMP
00002a64: JUMPDEST
00002a65: PUSH2 0x2a6c
00002a68: PUSH2 0x3209
00002a6b: JUMP
00002a6c: JUMPDEST
00002a6d: PUSH2 0x2a74
00002a70: PUSH2 0x3211
00002a73: JUMP
00002a74: JUMPDEST
00002a75: PUSH2 0x2a7e
00002a78: PUSH0
00002a79: DUP10
00002a7a: PUSH2 0x25c3
00002a7d: JUMP
00002a7e: JUMPDEST
00002a7f: POP
00002a80: PUSH0
00002a81: PUSH2 0x2a88
00002a84: PUSH2 0x2331
00002a87: JUMP
00002a88: JUMPDEST
00002a89: PUSH1 0x02
00002a8b: DUP2
00002a8c: ADD
00002a8d: DUP1
00002a8e: SLOAD
00002a8f: PUSH1 0xff
00002a91: PUSH1 0xa0
00002a93: SHL
00002a94: NOT
00002a95: AND
00002a96: PUSH1 0x01
00002a98: PUSH1 0xa0
00002a9a: SHL
00002a9b: DUP9
00002a9c: ISZERO
00002a9d: ISZERO
00002a9e: MUL
00002a9f: OR
00002aa0: SWAP1
00002aa1: SSTORE
00002aa2: SWAP1
00002aa3: POP
00002aa4: PUSH1 0xff
00002aa6: DUP7
00002aa7: AND
00002aa8: PUSH0
00002aa9: SUB
00002aaa: PUSH2 0x2ac6
00002aad: JUMPI
00002aae: PUSH1 0x40
00002ab0: MLOAD
00002ab1: PUSH4 0x0692acc5
00002ab6: PUSH1 0xe5
00002ab8: SHL
00002ab9: DUP2
00002aba: MSTORE
00002abb: PUSH1 0x04
00002abd: ADD
00002abe: PUSH1 0x40
00002ac0: MLOAD
00002ac1: DUP1
00002ac2: SWAP2
00002ac3: SUB
00002ac4: SWAP1
00002ac5: REVERT
00002ac6: JUMPDEST
00002ac7: PUSH1 0x02
00002ac9: DUP2
00002aca: ADD
00002acb: DUP1
00002acc: SLOAD
00002acd: PUSH2 0xffff
00002ad0: PUSH1 0xa8
00002ad2: SHL
00002ad3: NOT
00002ad4: AND
00002ad5: PUSH1 0x01
00002ad7: PUSH1 0xa8
00002ad9: SHL
00002ada: PUSH1 0xff
00002adc: DUP10
00002add: AND
00002ade: MUL
00002adf: PUSH1 0xff
00002ae1: PUSH1 0xb0
00002ae3: SHL
00002ae4: NOT
00002ae5: AND
00002ae6: OR
00002ae7: PUSH1 0x01
00002ae9: PUSH1 0xb0
00002aeb: SHL
00002aec: DUP7
00002aed: ISZERO
00002aee: ISZERO
00002aef: MUL
00002af0: OR
00002af1: PUSH1 0xff
00002af3: PUSH1 0xb8
00002af5: SHL
00002af6: NOT
00002af7: AND
00002af8: PUSH1 0x01
00002afa: PUSH1 0xb8
00002afc: SHL
00002afd: DUP6
00002afe: ISZERO
00002aff: ISZERO
00002b00: MUL
00002b01: OR
00002b02: SWAP1
00002b03: SSTORE
00002b04: PUSH1 0x01
00002b06: DUP3
00002b07: GT
00002b08: ISZERO
00002b09: PUSH2 0x2b28
00002b0c: JUMPI
00002b0d: PUSH1 0x40
00002b0f: MLOAD
00002b10: PUSH4 0x1f92ef57
00002b15: PUSH1 0xe0
00002b17: SHL
00002b18: DUP2
00002b19: MSTORE
00002b1a: PUSH1 0x04
00002b1c: DUP2
00002b1d: ADD
00002b1e: DUP4
00002b1f: SWAP1
00002b20: MSTORE
00002b21: PUSH1 0x24
00002b23: ADD
00002b24: PUSH2 0x1b8d
00002b27: JUMP
00002b28: JUMPDEST
00002b29: PUSH1 0x03
00002b2b: ADD
00002b2c: SSTORE
00002b2d: POP
00002b2e: POP
00002b2f: POP
00002b30: POP
00002b31: POP
00002b32: POP
00002b33: POP
00002b34: JUMP
00002b35: JUMPDEST
00002b36: PUSH1 0x40
00002b38: MLOAD
00002b39: PUSH4 0x7eb79b53
00002b3e: PUSH1 0xe0
00002b40: SHL
00002b41: DUP2
00002b42: MSTORE
00002b43: PUSH1 0x04
00002b45: DUP2
00002b46: ADD
00002b47: DUP3
00002b48: SWAP1
00002b49: MSTORE
00002b4a: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00002b5f: SWAP1
00002b60: PUSH4 0x7eb79b53
00002b65: SWAP1
00002b66: PUSH1 0x24
00002b68: ADD
00002b69: JUMPDEST
00002b6a: PUSH0
00002b6b: PUSH1 0x40
00002b6d: MLOAD
00002b6e: DUP1
00002b6f: DUP4
00002b70: SUB
00002b71: DUP2
00002b72: DUP7
00002b73: DUP1
00002b74: EXTCODESIZE
00002b75: ISZERO
00002b76: DUP1
00002b77: ISZERO
00002b78: PUSH2 0x2b7f
00002b7b: JUMPI
00002b7c: PUSH0
00002b7d: DUP1
00002b7e: REVERT
00002b7f: JUMPDEST
00002b80: POP
00002b81: GAS
00002b82: DELEGATECALL
00002b83: ISZERO
00002b84: DUP1
00002b85: ISZERO
00002b86: PUSH2 0x2b91
00002b89: JUMPI
00002b8a: RETURNDATASIZE
00002b8b: PUSH0
00002b8c: DUP1
00002b8d: RETURNDATACOPY
00002b8e: RETURNDATASIZE
00002b8f: PUSH0
00002b90: REVERT
00002b91: JUMPDEST
00002b92: POP
00002b93: POP
00002b94: POP
00002b95: POP
00002b96: POP
00002b97: JUMP
00002b98: JUMPDEST
00002b99: PUSH0
00002b9a: DUP1
00002b9b: PUSH32 0x5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00
00002bbc: PUSH2 0x18f7
00002bbf: JUMP
00002bc0: JUMPDEST
00002bc1: PUSH32 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102
00002be2: DUP1
00002be3: SLOAD
00002be4: PUSH1 0x60
00002be6: SWAP2
00002be7: PUSH0
00002be8: DUP1
00002be9: MLOAD
00002bea: PUSH1 0x20
00002bec: PUSH2 0x4ab2
00002bef: DUP4
00002bf0: CODECOPY
00002bf1: DUP2
00002bf2: MLOAD
00002bf3: SWAP2
00002bf4: MSTORE
00002bf5: SWAP2
00002bf6: PUSH2 0x0ee9
00002bf9: SWAP1
00002bfa: PUSH2 0x4164
00002bfd: JUMP
00002bfe: JUMPDEST
00002bff: PUSH1 0x60
00002c01: PUSH0
00002c02: PUSH0
00002c03: DUP1
00002c04: MLOAD
00002c05: PUSH1 0x20
00002c07: PUSH2 0x4ab2
00002c0a: DUP4
00002c0b: CODECOPY
00002c0c: DUP2
00002c0d: MLOAD
00002c0e: SWAP2
00002c0f: MSTORE
00002c10: PUSH2 0x0ed8
00002c13: JUMP
00002c14: JUMPDEST
00002c15: PUSH0
00002c16: PUSH2 0x1263
00002c19: DUP3
00002c1a: PUSH2 0x2c27
00002c1d: PUSH4 0x05f5e100
00002c22: DUP3
00002c23: PUSH2 0x41b0
00002c26: JUMP
00002c27: JUMPDEST
00002c28: DUP6
00002c29: SWAP2
00002c2a: SWAP1
00002c2b: PUSH1 0x01
00002c2d: PUSH2 0x3221
00002c30: JUMP
00002c31: JUMPDEST
00002c32: PUSH0
00002c33: PUSH2 0x2c3a
00002c36: PUSH2 0x2331
00002c39: JUMP
00002c3a: JUMPDEST
00002c3b: SWAP1
00002c3c: POP
00002c3d: PUSH2 0x2cd3
00002c40: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00002c55: PUSH4 0x7fa38e51
00002c5a: PUSH2 0x2c61
00002c5d: PUSH2 0x142d
00002c60: JUMP
00002c61: JUMPDEST
00002c62: PUSH1 0x40
00002c64: MLOAD
00002c65: PUSH1 0x01
00002c67: PUSH1 0x01
00002c69: PUSH1 0xe0
00002c6b: SHL
00002c6c: SUB
00002c6d: NOT
00002c6e: PUSH1 0xe0
00002c70: DUP5
00002c71: SWAP1
00002c72: SHL
00002c73: AND
00002c74: DUP2
00002c75: MSTORE
00002c76: PUSH1 0x01
00002c78: PUSH1 0x01
00002c7a: PUSH1 0xa0
00002c7c: SHL
00002c7d: SUB
00002c7e: SWAP1
00002c7f: SWAP2
00002c80: AND
00002c81: PUSH1 0x04
00002c83: DUP3
00002c84: ADD
00002c85: MSTORE
00002c86: PUSH1 0x24
00002c88: DUP2
00002c89: ADD
00002c8a: DUP8
00002c8b: SWAP1
00002c8c: MSTORE
00002c8d: PUSH1 0x44
00002c8f: ADD
00002c90: PUSH1 0x20
00002c92: PUSH1 0x40
00002c94: MLOAD
00002c95: DUP1
00002c96: DUP4
00002c97: SUB
00002c98: DUP2
00002c99: DUP7
00002c9a: GAS
00002c9b: DELEGATECALL
00002c9c: ISZERO
00002c9d: DUP1
00002c9e: ISZERO
00002c9f: PUSH2 0x2caa
00002ca2: JUMPI
00002ca3: RETURNDATASIZE
00002ca4: PUSH0
00002ca5: DUP1
00002ca6: RETURNDATACOPY
00002ca7: RETURNDATASIZE
00002ca8: PUSH0
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 0x414d
00002ccd: JUMP
00002cce: JUMPDEST
00002ccf: PUSH2 0x326e
00002cd2: JUMP
00002cd3: JUMPDEST
00002cd4: DUP4
00002cd5: PUSH1 0x01
00002cd7: PUSH1 0x01
00002cd9: PUSH1 0xa0
00002cdb: SHL
00002cdc: SUB
00002cdd: AND
00002cde: DUP7
00002cdf: PUSH1 0x01
00002ce1: PUSH1 0x01
00002ce3: PUSH1 0xa0
00002ce5: SHL
00002ce6: SUB
00002ce7: AND
00002ce8: EQ
00002ce9: PUSH2 0x2cf7
00002cec: JUMPI
00002ced: PUSH2 0x2cf7
00002cf0: DUP5
00002cf1: DUP8
00002cf2: DUP5
00002cf3: PUSH2 0x249f
00002cf6: JUMP
00002cf7: JUMPDEST
00002cf8: PUSH2 0x2d01
00002cfb: DUP5
00002cfc: DUP4
00002cfd: PUSH2 0x32a6
00002d00: JUMP
00002d01: JUMPDEST
00002d02: PUSH1 0x02
00002d04: DUP2
00002d05: ADD
00002d06: SLOAD
00002d07: PUSH1 0x40
00002d09: MLOAD
00002d0a: PUSH4 0x2d182be5
00002d0f: PUSH1 0xe2
00002d11: SHL
00002d12: DUP2
00002d13: MSTORE
00002d14: PUSH1 0x04
00002d16: DUP2
00002d17: ADD
00002d18: DUP6
00002d19: SWAP1
00002d1a: MSTORE
00002d1b: PUSH1 0x01
00002d1d: PUSH1 0x01
00002d1f: PUSH1 0xa0
00002d21: SHL
00002d22: SUB
00002d23: DUP8
00002d24: DUP2
00002d25: AND
00002d26: PUSH1 0x24
00002d28: DUP4
00002d29: ADD
00002d2a: MSTORE
00002d2b: ADDRESS
00002d2c: PUSH1 0x44
00002d2e: DUP4
00002d2f: ADD
00002d30: MSTORE
00002d31: SWAP1
00002d32: SWAP2
00002d33: AND
00002d34: SWAP1
00002d35: PUSH4 0xb460af94
00002d3a: SWAP1
00002d3b: PUSH1 0x64
00002d3d: ADD
00002d3e: PUSH1 0x20
00002d40: PUSH1 0x40
00002d42: MLOAD
00002d43: DUP1
00002d44: DUP4
00002d45: SUB
00002d46: DUP2
00002d47: PUSH0
00002d48: DUP8
00002d49: GAS
00002d4a: CALL
00002d4b: ISZERO
00002d4c: DUP1
00002d4d: ISZERO
00002d4e: PUSH2 0x2d59
00002d51: JUMPI
00002d52: RETURNDATASIZE
00002d53: PUSH0
00002d54: DUP1
00002d55: RETURNDATACOPY
00002d56: RETURNDATASIZE
00002d57: PUSH0
00002d58: REVERT
00002d59: JUMPDEST
00002d5a: POP
00002d5b: POP
00002d5c: POP
00002d5d: POP
00002d5e: PUSH1 0x40
00002d60: MLOAD
00002d61: RETURNDATASIZE
00002d62: PUSH1 0x1f
00002d64: NOT
00002d65: PUSH1 0x1f
00002d67: DUP3
00002d68: ADD
00002d69: AND
00002d6a: DUP3
00002d6b: ADD
00002d6c: DUP1
00002d6d: PUSH1 0x40
00002d6f: MSTORE
00002d70: POP
00002d71: DUP2
00002d72: ADD
00002d73: SWAP1
00002d74: PUSH2 0x2d7d
00002d77: SWAP2
00002d78: SWAP1
00002d79: PUSH2 0x414d
00002d7c: JUMP
00002d7d: JUMPDEST
00002d7e: POP
00002d7f: DUP4
00002d80: PUSH1 0x01
00002d82: PUSH1 0x01
00002d84: PUSH1 0xa0
00002d86: SHL
00002d87: SUB
00002d88: AND
00002d89: DUP6
00002d8a: PUSH1 0x01
00002d8c: PUSH1 0x01
00002d8e: PUSH1 0xa0
00002d90: SHL
00002d91: SUB
00002d92: AND
00002d93: DUP8
00002d94: PUSH1 0x01
00002d96: PUSH1 0x01
00002d98: PUSH1 0xa0
00002d9a: SHL
00002d9b: SUB
00002d9c: AND
00002d9d: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db
00002dbe: DUP7
00002dbf: DUP7
00002dc0: PUSH1 0x40
00002dc2: MLOAD
00002dc3: PUSH2 0x299e
00002dc6: SWAP3
00002dc7: SWAP2
00002dc8: SWAP1
00002dc9: SWAP2
00002dca: DUP3
00002dcb: MSTORE
00002dcc: PUSH1 0x20
00002dce: DUP3
00002dcf: ADD
00002dd0: MSTORE
00002dd1: PUSH1 0x40
00002dd3: ADD
00002dd4: SWAP1
00002dd5: JUMP
00002dd6: JUMPDEST
00002dd7: PUSH1 0x40
00002dd9: MLOAD
00002dda: PUSH4 0x0de23aad
00002ddf: PUSH1 0xe4
00002de1: SHL
00002de2: DUP2
00002de3: MSTORE
00002de4: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00002df9: SWAP1
00002dfa: PUSH4 0xde23aad0
00002dff: SWAP1
00002e00: PUSH2 0x1fa6
00002e03: SWAP1
00002e04: DUP6
00002e05: SWAP1
00002e06: DUP6
00002e07: SWAP1
00002e08: PUSH1 0x04
00002e0a: ADD
00002e0b: PUSH2 0x4910
00002e0e: JUMP
00002e0f: JUMPDEST
00002e10: PUSH0
00002e11: PUSH2 0x0eae
00002e14: PUSH2 0x2e1b
00002e17: PUSH2 0x273a
00002e1a: JUMP
00002e1b: JUMPDEST
00002e1c: DUP4
00002e1d: PUSH1 0x40
00002e1f: MLOAD
00002e20: PUSH2 0x1901
00002e23: PUSH1 0xf0
00002e25: SHL
00002e26: DUP2
00002e27: MSTORE
00002e28: PUSH1 0x02
00002e2a: DUP2
00002e2b: ADD
00002e2c: SWAP3
00002e2d: SWAP1
00002e2e: SWAP3
00002e2f: MSTORE
00002e30: PUSH1 0x22
00002e32: DUP3
00002e33: ADD
00002e34: MSTORE
00002e35: PUSH1 0x42
00002e37: SWAP1
00002e38: KECCAK256
00002e39: SWAP1
00002e3a: JUMP
00002e3b: JUMPDEST
00002e3c: PUSH0
00002e3d: DUP1
00002e3e: PUSH0
00002e3f: DUP1
00002e40: PUSH2 0x2e4b
00002e43: DUP9
00002e44: DUP9
00002e45: DUP9
00002e46: DUP9
00002e47: PUSH2 0x32da
00002e4a: JUMP
00002e4b: JUMPDEST
00002e4c: SWAP3
00002e4d: POP
00002e4e: SWAP3
00002e4f: POP
00002e50: SWAP3
00002e51: POP
00002e52: PUSH2 0x2e5b
00002e55: DUP3
00002e56: DUP3
00002e57: PUSH2 0x33a2
00002e5a: JUMP
00002e5b: JUMPDEST
00002e5c: POP
00002e5d: SWAP1
00002e5e: SWAP7
00002e5f: SWAP6
00002e60: POP
00002e61: POP
00002e62: POP
00002e63: POP
00002e64: POP
00002e65: POP
00002e66: JUMP
00002e67: JUMPDEST
00002e68: PUSH0
00002e69: PUSH2 0x1263
00002e6c: DUP4
00002e6d: DUP4
00002e6e: PUSH4 0x05f5e100
00002e73: PUSH1 0x01
00002e75: PUSH2 0x3221
00002e78: JUMP
00002e79: JUMPDEST
00002e7a: PUSH0
00002e7b: DUP1
00002e7c: MLOAD
00002e7d: PUSH1 0x20
00002e7f: PUSH2 0x4a92
00002e82: DUP4
00002e83: CODECOPY
00002e84: DUP2
00002e85: MLOAD
00002e86: SWAP2
00002e87: MSTORE
00002e88: PUSH1 0x01
00002e8a: PUSH1 0x01
00002e8c: PUSH1 0xa0
00002e8e: SHL
00002e8f: SUB
00002e90: DUP6
00002e91: AND
00002e92: PUSH2 0x2eb0
00002e95: JUMPI
00002e96: PUSH1 0x40
00002e98: MLOAD
00002e99: PUSH4 0xe602df05
00002e9e: PUSH1 0xe0
00002ea0: SHL
00002ea1: DUP2
00002ea2: MSTORE
00002ea3: PUSH0
00002ea4: PUSH1 0x04
00002ea6: DUP3
00002ea7: ADD
00002ea8: MSTORE
00002ea9: PUSH1 0x24
00002eab: ADD
00002eac: PUSH2 0x1b8d
00002eaf: JUMP
00002eb0: JUMPDEST
00002eb1: PUSH1 0x01
00002eb3: PUSH1 0x01
00002eb5: PUSH1 0xa0
00002eb7: SHL
00002eb8: SUB
00002eb9: DUP5
00002eba: AND
00002ebb: PUSH2 0x2ed9
00002ebe: JUMPI
00002ebf: PUSH1 0x40
00002ec1: MLOAD
00002ec2: PUSH4 0x4a1406b1
00002ec7: PUSH1 0xe1
00002ec9: SHL
00002eca: DUP2
00002ecb: MSTORE
00002ecc: PUSH0
00002ecd: PUSH1 0x04
00002ecf: DUP3
00002ed0: ADD
00002ed1: MSTORE
00002ed2: PUSH1 0x24
00002ed4: ADD
00002ed5: PUSH2 0x1b8d
00002ed8: JUMP
00002ed9: JUMPDEST
00002eda: PUSH1 0x01
00002edc: PUSH1 0x01
00002ede: PUSH1 0xa0
00002ee0: SHL
00002ee1: SUB
00002ee2: DUP1
00002ee3: DUP7
00002ee4: AND
00002ee5: PUSH0
00002ee6: SWAP1
00002ee7: DUP2
00002ee8: MSTORE
00002ee9: PUSH1 0x01
00002eeb: DUP4
00002eec: ADD
00002eed: PUSH1 0x20
00002eef: SWAP1
00002ef0: DUP2
00002ef1: MSTORE
00002ef2: PUSH1 0x40
00002ef4: DUP1
00002ef5: DUP4
00002ef6: KECCAK256
00002ef7: SWAP4
00002ef8: DUP9
00002ef9: AND
00002efa: DUP4
00002efb: MSTORE
00002efc: SWAP3
00002efd: SWAP1
00002efe: MSTORE
00002eff: KECCAK256
00002f00: DUP4
00002f01: SWAP1
00002f02: SSTORE
00002f03: DUP2
00002f04: ISZERO
00002f05: PUSH2 0x2b91
00002f08: JUMPI
00002f09: DUP4
00002f0a: PUSH1 0x01
00002f0c: PUSH1 0x01
00002f0e: PUSH1 0xa0
00002f10: SHL
00002f11: SUB
00002f12: AND
00002f13: DUP6
00002f14: PUSH1 0x01
00002f16: PUSH1 0x01
00002f18: PUSH1 0xa0
00002f1a: SHL
00002f1b: SUB
00002f1c: AND
00002f1d: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00002f3e: DUP6
00002f3f: PUSH1 0x40
00002f41: MLOAD
00002f42: PUSH2 0x2f4d
00002f45: SWAP2
00002f46: DUP2
00002f47: MSTORE
00002f48: PUSH1 0x20
00002f4a: ADD
00002f4b: SWAP1
00002f4c: JUMP
00002f4d: JUMPDEST
00002f4e: PUSH1 0x40
00002f50: MLOAD
00002f51: DUP1
00002f52: SWAP2
00002f53: SUB
00002f54: SWAP1
00002f55: LOG3
00002f56: POP
00002f57: POP
00002f58: POP
00002f59: POP
00002f5a: POP
00002f5b: JUMP
00002f5c: JUMPDEST
00002f5d: PUSH2 0x2f66
00002f60: DUP3
00002f61: DUP3
00002f62: PUSH2 0x1bd0
00002f65: JUMP
00002f66: JUMPDEST
00002f67: PUSH2 0x14a1
00002f6a: JUMPI
00002f6b: PUSH1 0x40
00002f6d: MLOAD
00002f6e: PUSH4 0xe2517d3f
00002f73: PUSH1 0xe0
00002f75: SHL
00002f76: DUP2
00002f77: MSTORE
00002f78: PUSH1 0x01
00002f7a: PUSH1 0x01
00002f7c: PUSH1 0xa0
00002f7e: SHL
00002f7f: SUB
00002f80: DUP3
00002f81: AND
00002f82: PUSH1 0x04
00002f84: DUP3
00002f85: ADD
00002f86: MSTORE
00002f87: PUSH1 0x24
00002f89: DUP2
00002f8a: ADD
00002f8b: DUP4
00002f8c: SWAP1
00002f8d: MSTORE
00002f8e: PUSH1 0x44
00002f90: ADD
00002f91: PUSH2 0x1b8d
00002f94: JUMP
00002f95: JUMPDEST
00002f96: PUSH0
00002f97: DUP1
00002f98: MLOAD
00002f99: PUSH1 0x20
00002f9b: PUSH2 0x4a92
00002f9e: DUP4
00002f9f: CODECOPY
00002fa0: DUP2
00002fa1: MLOAD
00002fa2: SWAP2
00002fa3: MSTORE
00002fa4: PUSH1 0x01
00002fa6: PUSH1 0x01
00002fa8: PUSH1 0xa0
00002faa: SHL
00002fab: SUB
00002fac: DUP5
00002fad: AND
00002fae: PUSH2 0x2fcf
00002fb1: JUMPI
00002fb2: DUP2
00002fb3: DUP2
00002fb4: PUSH1 0x02
00002fb6: ADD
00002fb7: PUSH0
00002fb8: DUP3
00002fb9: DUP3
00002fba: SLOAD
00002fbb: PUSH2 0x2fc4
00002fbe: SWAP2
00002fbf: SWAP1
00002fc0: PUSH2 0x41b0
00002fc3: JUMP
00002fc4: JUMPDEST
00002fc5: SWAP1
00002fc6: SWAP2
00002fc7: SSTORE
00002fc8: POP
00002fc9: PUSH2 0x302c
00002fcc: SWAP1
00002fcd: POP
00002fce: JUMP
00002fcf: JUMPDEST
00002fd0: PUSH1 0x01
00002fd2: PUSH1 0x01
00002fd4: PUSH1 0xa0
00002fd6: SHL
00002fd7: SUB
00002fd8: DUP5
00002fd9: AND
00002fda: PUSH0
00002fdb: SWAP1
00002fdc: DUP2
00002fdd: MSTORE
00002fde: PUSH1 0x20
00002fe0: DUP3
00002fe1: SWAP1
00002fe2: MSTORE
00002fe3: PUSH1 0x40
00002fe5: SWAP1
00002fe6: KECCAK256
00002fe7: SLOAD
00002fe8: DUP3
00002fe9: DUP2
00002fea: LT
00002feb: ISZERO
00002fec: PUSH2 0x300e
00002fef: JUMPI
00002ff0: DUP5
00002ff1: DUP2
00002ff2: DUP5
00002ff3: PUSH1 0x40
00002ff5: MLOAD
00002ff6: PUSH4 0x391434e3
00002ffb: PUSH1 0xe2
00002ffd: SHL
00002ffe: DUP2
00002fff: MSTORE
00003000: PUSH1 0x04
00003002: ADD
00003003: PUSH2 0x1b8d
00003006: SWAP4
00003007: SWAP3
00003008: SWAP2
00003009: SWAP1
0000300a: PUSH2 0x445f
0000300d: JUMP
0000300e: JUMPDEST
0000300f: PUSH1 0x01
00003011: PUSH1 0x01
00003013: PUSH1 0xa0
00003015: SHL
00003016: SUB
00003017: DUP6
00003018: AND
00003019: PUSH0
0000301a: SWAP1
0000301b: DUP2
0000301c: MSTORE
0000301d: PUSH1 0x20
0000301f: DUP4
00003020: SWAP1
00003021: MSTORE
00003022: PUSH1 0x40
00003024: SWAP1
00003025: KECCAK256
00003026: SWAP1
00003027: DUP4
00003028: SWAP1
00003029: SUB
0000302a: SWAP1
0000302b: SSTORE
0000302c: JUMPDEST
0000302d: PUSH1 0x01
0000302f: PUSH1 0x01
00003031: PUSH1 0xa0
00003033: SHL
00003034: SUB
00003035: DUP4
00003036: AND
00003037: PUSH2 0x304a
0000303a: JUMPI
0000303b: PUSH1 0x02
0000303d: DUP2
0000303e: ADD
0000303f: DUP1
00003040: SLOAD
00003041: DUP4
00003042: SWAP1
00003043: SUB
00003044: SWAP1
00003045: SSTORE
00003046: PUSH2 0x3068
00003049: JUMP
0000304a: JUMPDEST
0000304b: PUSH1 0x01
0000304d: PUSH1 0x01
0000304f: PUSH1 0xa0
00003051: SHL
00003052: SUB
00003053: DUP4
00003054: AND
00003055: PUSH0
00003056: SWAP1
00003057: DUP2
00003058: MSTORE
00003059: PUSH1 0x20
0000305b: DUP3
0000305c: SWAP1
0000305d: MSTORE
0000305e: PUSH1 0x40
00003060: SWAP1
00003061: KECCAK256
00003062: DUP1
00003063: SLOAD
00003064: DUP4
00003065: ADD
00003066: SWAP1
00003067: SSTORE
00003068: JUMPDEST
00003069: DUP3
0000306a: PUSH1 0x01
0000306c: PUSH1 0x01
0000306e: PUSH1 0xa0
00003070: SHL
00003071: SUB
00003072: AND
00003073: DUP5
00003074: PUSH1 0x01
00003076: PUSH1 0x01
00003078: PUSH1 0xa0
0000307a: SHL
0000307b: SUB
0000307c: AND
0000307d: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
0000309e: DUP5
0000309f: PUSH1 0x40
000030a1: MLOAD
000030a2: PUSH2 0x30ad
000030a5: SWAP2
000030a6: DUP2
000030a7: MSTORE
000030a8: PUSH1 0x20
000030aa: ADD
000030ab: SWAP1
000030ac: JUMP
000030ad: JUMPDEST
000030ae: PUSH1 0x40
000030b0: MLOAD
000030b1: DUP1
000030b2: SWAP2
000030b3: SUB
000030b4: SWAP1
000030b5: LOG3
000030b6: POP
000030b7: POP
000030b8: POP
000030b9: POP
000030ba: JUMP
000030bb: JUMPDEST
000030bc: PUSH0
000030bd: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
000030de: PUSH2 0x30e5
000030e1: PUSH2 0x345a
000030e4: JUMP
000030e5: JUMPDEST
000030e6: PUSH2 0x30ed
000030e9: PUSH2 0x34c2
000030ec: JUMP
000030ed: JUMPDEST
000030ee: PUSH1 0x40
000030f0: DUP1
000030f1: MLOAD
000030f2: PUSH1 0x20
000030f4: DUP2
000030f5: ADD
000030f6: SWAP5
000030f7: SWAP1
000030f8: SWAP5
000030f9: MSTORE
000030fa: DUP4
000030fb: ADD
000030fc: SWAP2
000030fd: SWAP1
000030fe: SWAP2
000030ff: MSTORE
00003100: PUSH1 0x60
00003102: DUP3
00003103: ADD
00003104: MSTORE
00003105: CHAINID
00003106: PUSH1 0x80
00003108: DUP3
00003109: ADD
0000310a: MSTORE
0000310b: ADDRESS
0000310c: PUSH1 0xa0
0000310e: DUP3
0000310f: ADD
00003110: MSTORE
00003111: PUSH1 0xc0
00003113: ADD
00003114: PUSH1 0x40
00003116: MLOAD
00003117: PUSH1 0x20
00003119: DUP2
0000311a: DUP4
0000311b: SUB
0000311c: SUB
0000311d: DUP2
0000311e: MSTORE
0000311f: SWAP1
00003120: PUSH1 0x40
00003122: MSTORE
00003123: DUP1
00003124: MLOAD
00003125: SWAP1
00003126: PUSH1 0x20
00003128: ADD
00003129: KECCAK256
0000312a: SWAP1
0000312b: POP
0000312c: SWAP1
0000312d: JUMP
0000312e: JUMPDEST
0000312f: PUSH1 0x40
00003131: MLOAD
00003132: PUSH1 0x01
00003134: PUSH3 0x641047
00003138: PUSH1 0xe1
0000313a: SHL
0000313b: SUB
0000313c: NOT
0000313d: DUP2
0000313e: MSTORE
0000313f: PUSH1 0x04
00003141: DUP2
00003142: ADD
00003143: DUP3
00003144: SWAP1
00003145: MSTORE
00003146: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
0000315b: SWAP1
0000315c: PUSH4 0xff37df72
00003161: SWAP1
00003162: PUSH1 0x24
00003164: ADD
00003165: PUSH2 0x2b69
00003168: JUMP
00003169: JUMPDEST
0000316a: PUSH1 0x40
0000316c: DUP1
0000316d: MLOAD
0000316e: PUSH1 0x01
00003170: PUSH1 0x01
00003172: PUSH1 0xa0
00003174: SHL
00003175: SUB
00003176: DUP6
00003177: DUP2
00003178: AND
00003179: PUSH1 0x24
0000317b: DUP4
0000317c: ADD
0000317d: MSTORE
0000317e: DUP5
0000317f: AND
00003180: PUSH1 0x44
00003182: DUP3
00003183: ADD
00003184: MSTORE
00003185: PUSH1 0x64
00003187: DUP1
00003188: DUP3
00003189: ADD
0000318a: DUP5
0000318b: SWAP1
0000318c: MSTORE
0000318d: DUP3
0000318e: MLOAD
0000318f: DUP1
00003190: DUP4
00003191: SUB
00003192: SWAP1
00003193: SWAP2
00003194: ADD
00003195: DUP2
00003196: MSTORE
00003197: PUSH1 0x84
00003199: SWAP1
0000319a: SWAP2
0000319b: ADD
0000319c: SWAP1
0000319d: SWAP2
0000319e: MSTORE
0000319f: PUSH1 0x20
000031a1: DUP2
000031a2: ADD
000031a3: DUP1
000031a4: MLOAD
000031a5: PUSH1 0x01
000031a7: PUSH1 0x01
000031a9: PUSH1 0xe0
000031ab: SHL
000031ac: SUB
000031ad: AND
000031ae: PUSH4 0x23b872dd
000031b3: PUSH1 0xe0
000031b5: SHL
000031b6: OR
000031b7: SWAP1
000031b8: MSTORE
000031b9: PUSH2 0x132c
000031bc: SWAP1
000031bd: DUP6
000031be: SWAP1
000031bf: PUSH2 0x3504
000031c2: JUMP
000031c3: JUMPDEST
000031c4: PUSH1 0x01
000031c6: PUSH1 0x01
000031c8: PUSH1 0xa0
000031ca: SHL
000031cb: SUB
000031cc: DUP3
000031cd: AND
000031ce: PUSH2 0x31ec
000031d1: JUMPI
000031d2: PUSH1 0x40
000031d4: MLOAD
000031d5: PUSH4 0xec442f05
000031da: PUSH1 0xe0
000031dc: SHL
000031dd: DUP2
000031de: MSTORE
000031df: PUSH0
000031e0: PUSH1 0x04
000031e2: DUP3
000031e3: ADD
000031e4: MSTORE
000031e5: PUSH1 0x24
000031e7: ADD
000031e8: PUSH2 0x1b8d
000031eb: JUMP
000031ec: JUMPDEST
000031ed: PUSH2 0x14a1
000031f0: PUSH0
000031f1: DUP4
000031f2: DUP4
000031f3: PUSH2 0x2f95
000031f6: JUMP
000031f7: JUMPDEST
000031f8: PUSH2 0x31ff
000031fb: PUSH2 0x3565
000031fe: JUMP
000031ff: JUMPDEST
00003200: PUSH2 0x14a1
00003203: DUP3
00003204: DUP3
00003205: PUSH2 0x35ae
00003208: JUMP
00003209: JUMPDEST
0000320a: PUSH2 0x2277
0000320d: PUSH2 0x3565
00003210: JUMP
00003211: JUMPDEST
00003212: PUSH2 0x3219
00003215: PUSH2 0x3565
00003218: JUMP
00003219: JUMPDEST
0000321a: PUSH2 0x2277
0000321d: PUSH2 0x35fe
00003220: JUMP
00003221: JUMPDEST
00003222: PUSH0
00003223: DUP1
00003224: PUSH2 0x322e
00003227: DUP7
00003228: DUP7
00003229: DUP7
0000322a: PUSH2 0x3606
0000322d: JUMP
0000322e: JUMPDEST
0000322f: SWAP1
00003230: POP
00003231: PUSH2 0x3239
00003234: DUP4
00003235: PUSH2 0x36c5
00003238: JUMP
00003239: JUMPDEST
0000323a: DUP1
0000323b: ISZERO
0000323c: PUSH2 0x3254
0000323f: JUMPI
00003240: POP
00003241: PUSH0
00003242: DUP5
00003243: DUP1
00003244: PUSH2 0x324f
00003247: JUMPI
00003248: PUSH2 0x324f
0000324b: PUSH2 0x4932
0000324e: JUMP
0000324f: JUMPDEST
00003250: DUP7
00003251: DUP9
00003252: MULMOD
00003253: GT
00003254: JUMPDEST
00003255: ISZERO
00003256: PUSH2 0x1f37
00003259: JUMPI
0000325a: PUSH2 0x3264
0000325d: PUSH1 0x01
0000325f: DUP3
00003260: PUSH2 0x41b0
00003263: JUMP
00003264: JUMPDEST
00003265: SWAP7
00003266: SWAP6
00003267: POP
00003268: POP
00003269: POP
0000326a: POP
0000326b: POP
0000326c: POP
0000326d: JUMP
0000326e: JUMPDEST
0000326f: PUSH1 0x40
00003271: MLOAD
00003272: PUSH4 0x59397469
00003277: PUSH1 0xe1
00003279: SHL
0000327a: DUP2
0000327b: MSTORE
0000327c: PUSH1 0x04
0000327e: DUP2
0000327f: ADD
00003280: DUP3
00003281: SWAP1
00003282: MSTORE
00003283: PUSH20 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
00003298: SWAP1
00003299: PUSH4 0xb272e8d2
0000329e: SWAP1
0000329f: PUSH1 0x24
000032a1: ADD
000032a2: PUSH2 0x2b69
000032a5: JUMP
000032a6: JUMPDEST
000032a7: PUSH1 0x01
000032a9: PUSH1 0x01
000032ab: PUSH1 0xa0
000032ad: SHL
000032ae: SUB
000032af: DUP3
000032b0: AND
000032b1: PUSH2 0x32cf
000032b4: JUMPI
000032b5: PUSH1 0x40
000032b7: MLOAD
000032b8: PUSH4 0x4b637e8f
000032bd: PUSH1 0xe1
000032bf: SHL
000032c0: DUP2
000032c1: MSTORE
000032c2: PUSH0
000032c3: PUSH1 0x04
000032c5: DUP3
000032c6: ADD
000032c7: MSTORE
000032c8: PUSH1 0x24
000032ca: ADD
000032cb: PUSH2 0x1b8d
000032ce: JUMP
000032cf: JUMPDEST
000032d0: PUSH2 0x14a1
000032d3: DUP3
000032d4: PUSH0
000032d5: DUP4
000032d6: PUSH2 0x2f95
000032d9: JUMP
000032da: JUMPDEST
000032db: PUSH0
000032dc: DUP1
000032dd: DUP1
000032de: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
000032ff: DUP5
00003300: GT
00003301: ISZERO
00003302: PUSH2 0x3313
00003305: JUMPI
00003306: POP
00003307: PUSH0
00003308: SWAP2
00003309: POP
0000330a: PUSH1 0x03
0000330c: SWAP1
0000330d: POP
0000330e: DUP3
0000330f: PUSH2 0x3398
00003312: JUMP
00003313: JUMPDEST
00003314: PUSH1 0x40
00003316: DUP1
00003317: MLOAD
00003318: PUSH0
00003319: DUP1
0000331a: DUP3
0000331b: MSTORE
0000331c: PUSH1 0x20
0000331e: DUP3
0000331f: ADD
00003320: DUP1
00003321: DUP5
00003322: MSTORE
00003323: DUP11
00003324: SWAP1
00003325: MSTORE
00003326: PUSH1 0xff
00003328: DUP10
00003329: AND
0000332a: SWAP3
0000332b: DUP3
0000332c: ADD
0000332d: SWAP3
0000332e: SWAP1
0000332f: SWAP3
00003330: MSTORE
00003331: PUSH1 0x60
00003333: DUP2
00003334: ADD
00003335: DUP8
00003336: SWAP1
00003337: MSTORE
00003338: PUSH1 0x80
0000333a: DUP2
0000333b: ADD
0000333c: DUP7
0000333d: SWAP1
0000333e: MSTORE
0000333f: PUSH1 0x01
00003341: SWAP1
00003342: PUSH1 0xa0
00003344: ADD
00003345: PUSH1 0x20
00003347: PUSH1 0x40
00003349: MLOAD
0000334a: PUSH1 0x20
0000334c: DUP2
0000334d: SUB
0000334e: SWAP1
0000334f: DUP1
00003350: DUP5
00003351: SUB
00003352: SWAP1
00003353: DUP6
00003354: GAS
00003355: STATICCALL
00003356: ISZERO
00003357: DUP1
00003358: ISZERO
00003359: PUSH2 0x3364
0000335c: JUMPI
0000335d: RETURNDATASIZE
0000335e: PUSH0
0000335f: DUP1
00003360: RETURNDATACOPY
00003361: RETURNDATASIZE
00003362: PUSH0
00003363: REVERT
00003364: JUMPDEST
00003365: POP
00003366: POP
00003367: PUSH1 0x40
00003369: MLOAD
0000336a: PUSH1 0x1f
0000336c: NOT
0000336d: ADD
0000336e: MLOAD
0000336f: SWAP2
00003370: POP
00003371: POP
00003372: PUSH1 0x01
00003374: PUSH1 0x01
00003376: PUSH1 0xa0
00003378: SHL
00003379: SUB
0000337a: DUP2
0000337b: AND
0000337c: PUSH2 0x338f
0000337f: JUMPI
00003380: POP
00003381: PUSH0
00003382: SWAP3
00003383: POP
00003384: PUSH1 0x01
00003386: SWAP2
00003387: POP
00003388: DUP3
00003389: SWAP1
0000338a: POP
0000338b: PUSH2 0x3398
0000338e: JUMP
0000338f: JUMPDEST
00003390: SWAP3
00003391: POP
00003392: PUSH0
00003393: SWAP2
00003394: POP
00003395: DUP2
00003396: SWAP1
00003397: POP
00003398: JUMPDEST
00003399: SWAP5
0000339a: POP
0000339b: SWAP5
0000339c: POP
0000339d: SWAP5
0000339e: SWAP2
0000339f: POP
000033a0: POP
000033a1: JUMP
000033a2: JUMPDEST
000033a3: PUSH0
000033a4: DUP3
000033a5: PUSH1 0x03
000033a7: DUP2
000033a8: GT
000033a9: ISZERO
000033aa: PUSH2 0x33b5
000033ad: JUMPI
000033ae: PUSH2 0x33b5
000033b1: PUSH2 0x3900
000033b4: JUMP
000033b5: JUMPDEST
000033b6: SUB
000033b7: PUSH2 0x33be
000033ba: JUMPI
000033bb: POP
000033bc: POP
000033bd: JUMP
000033be: JUMPDEST
000033bf: PUSH1 0x01
000033c1: DUP3
000033c2: PUSH1 0x03
000033c4: DUP2
000033c5: GT
000033c6: ISZERO
000033c7: PUSH2 0x33d2
000033ca: JUMPI
000033cb: PUSH2 0x33d2
000033ce: PUSH2 0x3900
000033d1: JUMP
000033d2: JUMPDEST
000033d3: SUB
000033d4: PUSH2 0x33f0
000033d7: JUMPI
000033d8: PUSH1 0x40
000033da: MLOAD
000033db: PUSH4 0xf645eedf
000033e0: PUSH1 0xe0
000033e2: SHL
000033e3: DUP2
000033e4: MSTORE
000033e5: PUSH1 0x04
000033e7: ADD
000033e8: PUSH1 0x40
000033ea: MLOAD
000033eb: DUP1
000033ec: SWAP2
000033ed: SUB
000033ee: SWAP1
000033ef: REVERT
000033f0: JUMPDEST
000033f1: PUSH1 0x02
000033f3: DUP3
000033f4: PUSH1 0x03
000033f6: DUP2
000033f7: GT
000033f8: ISZERO
000033f9: PUSH2 0x3404
000033fc: JUMPI
000033fd: PUSH2 0x3404
00003400: PUSH2 0x3900
00003403: JUMP
00003404: JUMPDEST
00003405: SUB
00003406: PUSH2 0x3425
00003409: JUMPI
0000340a: PUSH1 0x40
0000340c: MLOAD
0000340d: PUSH4 0xfce698f7
00003412: PUSH1 0xe0
00003414: SHL
00003415: DUP2
00003416: MSTORE
00003417: PUSH1 0x04
00003419: DUP2
0000341a: ADD
0000341b: DUP3
0000341c: SWAP1
0000341d: MSTORE
0000341e: PUSH1 0x24
00003420: ADD
00003421: PUSH2 0x1b8d
00003424: JUMP
00003425: JUMPDEST
00003426: PUSH1 0x03
00003428: DUP3
00003429: PUSH1 0x03
0000342b: DUP2
0000342c: GT
0000342d: ISZERO
0000342e: PUSH2 0x3439
00003431: JUMPI
00003432: PUSH2 0x3439
00003435: PUSH2 0x3900
00003438: JUMP
00003439: JUMPDEST
0000343a: SUB
0000343b: PUSH2 0x14a1
0000343e: JUMPI
0000343f: PUSH1 0x40
00003441: MLOAD
00003442: PUSH4 0x35e2f383
00003447: PUSH1 0xe2
00003449: SHL
0000344a: DUP2
0000344b: MSTORE
0000344c: PUSH1 0x04
0000344e: DUP2
0000344f: ADD
00003450: DUP3
00003451: SWAP1
00003452: MSTORE
00003453: PUSH1 0x24
00003455: ADD
00003456: PUSH2 0x1b8d
00003459: JUMP
0000345a: JUMPDEST
0000345b: PUSH0
0000345c: PUSH0
0000345d: DUP1
0000345e: MLOAD
0000345f: PUSH1 0x20
00003461: PUSH2 0x4ab2
00003464: DUP4
00003465: CODECOPY
00003466: DUP2
00003467: MLOAD
00003468: SWAP2
00003469: MSTORE
0000346a: DUP2
0000346b: PUSH2 0x3472
0000346e: PUSH2 0x2bc0
00003471: JUMP
00003472: JUMPDEST
00003473: DUP1
00003474: MLOAD
00003475: SWAP1
00003476: SWAP2
00003477: POP
00003478: ISZERO
00003479: PUSH2 0x348a
0000347c: JUMPI
0000347d: DUP1
0000347e: MLOAD
0000347f: PUSH1 0x20
00003481: SWAP1
00003482: SWAP2
00003483: ADD
00003484: KECCAK256
00003485: SWAP3
00003486: SWAP2
00003487: POP
00003488: POP
00003489: JUMP
0000348a: JUMPDEST
0000348b: DUP2
0000348c: SLOAD
0000348d: DUP1
0000348e: ISZERO
0000348f: PUSH2 0x3499
00003492: JUMPI
00003493: SWAP4
00003494: SWAP3
00003495: POP
00003496: POP
00003497: POP
00003498: JUMP
00003499: JUMPDEST
0000349a: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
000034bb: SWAP4
000034bc: POP
000034bd: POP
000034be: POP
000034bf: POP
000034c0: SWAP1
000034c1: JUMP
000034c2: JUMPDEST
000034c3: PUSH0
000034c4: PUSH0
000034c5: DUP1
000034c6: MLOAD
000034c7: PUSH1 0x20
000034c9: PUSH2 0x4ab2
000034cc: DUP4
000034cd: CODECOPY
000034ce: DUP2
000034cf: MLOAD
000034d0: SWAP2
000034d1: MSTORE
000034d2: DUP2
000034d3: PUSH2 0x34da
000034d6: PUSH2 0x2bfe
000034d9: JUMP
000034da: JUMPDEST
000034db: DUP1
000034dc: MLOAD
000034dd: SWAP1
000034de: SWAP2
000034df: POP
000034e0: ISZERO
000034e1: PUSH2 0x34f2
000034e4: JUMPI
000034e5: DUP1
000034e6: MLOAD
000034e7: PUSH1 0x20
000034e9: SWAP1
000034ea: SWAP2
000034eb: ADD
000034ec: KECCAK256
000034ed: SWAP3
000034ee: SWAP2
000034ef: POP
000034f0: POP
000034f1: JUMP
000034f2: JUMPDEST
000034f3: PUSH1 0x01
000034f5: DUP3
000034f6: ADD
000034f7: SLOAD
000034f8: DUP1
000034f9: ISZERO
000034fa: PUSH2 0x3499
000034fd: JUMPI
000034fe: SWAP4
000034ff: SWAP3
00003500: POP
00003501: POP
00003502: POP
00003503: JUMP
00003504: JUMPDEST
00003505: PUSH0
00003506: PUSH2 0x3518
00003509: PUSH1 0x01
0000350b: PUSH1 0x01
0000350d: PUSH1 0xa0
0000350f: SHL
00003510: SUB
00003511: DUP5
00003512: AND
00003513: DUP4
00003514: PUSH2 0x36f1
00003517: JUMP
00003518: JUMPDEST
00003519: SWAP1
0000351a: POP
0000351b: DUP1
0000351c: MLOAD
0000351d: PUSH0
0000351e: EQ
0000351f: ISZERO
00003520: DUP1
00003521: ISZERO
00003522: PUSH2 0x353c
00003525: JUMPI
00003526: POP
00003527: DUP1
00003528: DUP1
00003529: PUSH1 0x20
0000352b: ADD
0000352c: SWAP1
0000352d: MLOAD
0000352e: DUP2
0000352f: ADD
00003530: SWAP1
00003531: PUSH2 0x353a
00003534: SWAP2
00003535: SWAP1
00003536: PUSH2 0x4946
00003539: JUMP
0000353a: JUMPDEST
0000353b: ISZERO
0000353c: JUMPDEST
0000353d: ISZERO
0000353e: PUSH2 0x130b
00003541: JUMPI
00003542: PUSH1 0x40
00003544: MLOAD
00003545: PUSH4 0x5274afe7
0000354a: PUSH1 0xe0
0000354c: SHL
0000354d: DUP2
0000354e: MSTORE
0000354f: PUSH1 0x01
00003551: PUSH1 0x01
00003553: PUSH1 0xa0
00003555: SHL
00003556: SUB
00003557: DUP5
00003558: AND
00003559: PUSH1 0x04
0000355b: DUP3
0000355c: ADD
0000355d: MSTORE
0000355e: PUSH1 0x24
00003560: ADD
00003561: PUSH2 0x1b8d
00003564: JUMP
00003565: JUMPDEST
00003566: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00003587: SLOAD
00003588: PUSH1 0x01
0000358a: PUSH1 0x40
0000358c: SHL
0000358d: SWAP1
0000358e: DIV
0000358f: PUSH1 0xff
00003591: AND
00003592: PUSH2 0x2277
00003595: JUMPI
00003596: PUSH1 0x40
00003598: MLOAD
00003599: PUSH4 0x1afcd79f
0000359e: PUSH1 0xe3
000035a0: SHL
000035a1: DUP2
000035a2: MSTORE
000035a3: PUSH1 0x04
000035a5: ADD
000035a6: PUSH1 0x40
000035a8: MLOAD
000035a9: DUP1
000035aa: SWAP2
000035ab: SUB
000035ac: SWAP1
000035ad: REVERT
000035ae: JUMPDEST
000035af: PUSH2 0x35b6
000035b2: PUSH2 0x3565
000035b5: JUMP
000035b6: JUMPDEST
000035b7: PUSH0
000035b8: DUP1
000035b9: MLOAD
000035ba: PUSH1 0x20
000035bc: PUSH2 0x4a92
000035bf: DUP4
000035c0: CODECOPY
000035c1: DUP2
000035c2: MLOAD
000035c3: SWAP2
000035c4: MSTORE
000035c5: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03
000035e6: PUSH2 0x35ef
000035e9: DUP5
000035ea: DUP3
000035eb: PUSH2 0x4998
000035ee: JUMP
000035ef: JUMPDEST
000035f0: POP
000035f1: PUSH1 0x04
000035f3: DUP2
000035f4: ADD
000035f5: PUSH2 0x132c
000035f8: DUP4
000035f9: DUP3
000035fa: PUSH2 0x4998
000035fd: JUMP
000035fe: JUMPDEST
000035ff: PUSH2 0x29ae
00003602: PUSH2 0x3565
00003605: JUMP
00003606: JUMPDEST
00003607: PUSH0
00003608: DUP4
00003609: DUP4
0000360a: MUL
0000360b: DUP2
0000360c: PUSH0
0000360d: NOT
0000360e: DUP6
0000360f: DUP8
00003610: MULMOD
00003611: DUP3
00003612: DUP2
00003613: LT
00003614: DUP4
00003615: DUP3
00003616: SUB
00003617: SUB
00003618: SWAP2
00003619: POP
0000361a: POP
0000361b: DUP1
0000361c: PUSH0
0000361d: SUB
0000361e: PUSH2 0x363a
00003621: JUMPI
00003622: DUP4
00003623: DUP3
00003624: DUP2
00003625: PUSH2 0x3630
00003628: JUMPI
00003629: PUSH2 0x3630
0000362c: PUSH2 0x4932
0000362f: JUMP
00003630: JUMPDEST
00003631: DIV
00003632: SWAP3
00003633: POP
00003634: POP
00003635: POP
00003636: PUSH2 0x1263
00003639: JUMP
0000363a: JUMPDEST
0000363b: DUP1
0000363c: DUP5
0000363d: GT
0000363e: PUSH2 0x365a
00003641: JUMPI
00003642: PUSH1 0x40
00003644: MLOAD
00003645: PUSH4 0x227bc153
0000364a: PUSH1 0xe0
0000364c: SHL
0000364d: DUP2
0000364e: MSTORE
0000364f: PUSH1 0x04
00003651: ADD
00003652: PUSH1 0x40
00003654: MLOAD
00003655: DUP1
00003656: SWAP2
00003657: SUB
00003658: SWAP1
00003659: REVERT
0000365a: JUMPDEST
0000365b: PUSH0
0000365c: DUP5
0000365d: DUP7
0000365e: DUP9
0000365f: MULMOD
00003660: PUSH0
00003661: DUP7
00003662: DUP2
00003663: SUB
00003664: DUP8
00003665: AND
00003666: SWAP7
00003667: DUP8
00003668: SWAP1
00003669: DIV
0000366a: SWAP7
0000366b: PUSH1 0x02
0000366d: PUSH1 0x03
0000366f: DUP10
00003670: MUL
00003671: DUP2
00003672: XOR
00003673: DUP1
00003674: DUP11
00003675: MUL
00003676: DUP3
00003677: SUB
00003678: MUL
00003679: DUP1
0000367a: DUP11
0000367b: MUL
0000367c: DUP3
0000367d: SUB
0000367e: MUL
0000367f: DUP1
00003680: DUP11
00003681: MUL
00003682: DUP3
00003683: SUB
00003684: MUL
00003685: DUP1
00003686: DUP11
00003687: MUL
00003688: DUP3
00003689: SUB
0000368a: MUL
0000368b: DUP1
0000368c: DUP11
0000368d: MUL
0000368e: DUP3
0000368f: SUB
00003690: MUL
00003691: DUP1
00003692: DUP11
00003693: MUL
00003694: SWAP1
00003695: SWAP2
00003696: SUB
00003697: MUL
00003698: SWAP2
00003699: DUP2
0000369a: SWAP1
0000369b: SUB
0000369c: DUP2
0000369d: SWAP1
0000369e: DIV
0000369f: PUSH1 0x01
000036a1: ADD
000036a2: DUP7
000036a3: DUP5
000036a4: GT
000036a5: SWAP1
000036a6: SWAP6
000036a7: SUB
000036a8: SWAP5
000036a9: SWAP1
000036aa: SWAP5
000036ab: MUL
000036ac: SWAP2
000036ad: SWAP1
000036ae: SWAP5
000036af: SUB
000036b0: SWAP3
000036b1: SWAP1
000036b2: SWAP3
000036b3: DIV
000036b4: SWAP2
000036b5: SWAP1
000036b6: SWAP2
000036b7: OR
000036b8: SWAP2
000036b9: SWAP1
000036ba: SWAP2
000036bb: MUL
000036bc: SWAP2
000036bd: POP
000036be: POP
000036bf: SWAP4
000036c0: SWAP3
000036c1: POP
000036c2: POP
000036c3: POP
000036c4: JUMP
000036c5: JUMPDEST
000036c6: PUSH0
000036c7: PUSH1 0x02
000036c9: DUP3
000036ca: PUSH1 0x03
000036cc: DUP2
000036cd: GT
000036ce: ISZERO
000036cf: PUSH2 0x36da
000036d2: JUMPI
000036d3: PUSH2 0x36da
000036d6: PUSH2 0x3900
000036d9: JUMP
000036da: JUMPDEST
000036db: PUSH2 0x36e4
000036de: SWAP2
000036df: SWAP1
000036e0: PUSH2 0x4a53
000036e3: JUMP
000036e4: JUMPDEST
000036e5: PUSH1 0xff
000036e7: AND
000036e8: PUSH1 0x01
000036ea: EQ
000036eb: SWAP1
000036ec: POP
000036ed: SWAP2
000036ee: SWAP1
000036ef: POP
000036f0: JUMP
000036f1: JUMPDEST
000036f2: PUSH1 0x60
000036f4: PUSH2 0x1263
000036f7: DUP4
000036f8: DUP4
000036f9: PUSH0
000036fa: DUP5
000036fb: PUSH0
000036fc: DUP1
000036fd: DUP6
000036fe: PUSH1 0x01
00003700: PUSH1 0x01
00003702: PUSH1 0xa0
00003704: SHL
00003705: SUB
00003706: AND
00003707: DUP5
00003708: DUP7
00003709: PUSH1 0x40
0000370b: MLOAD
0000370c: PUSH2 0x3715
0000370f: SWAP2
00003710: SWAP1
00003711: PUSH2 0x4a80
00003714: JUMP
00003715: JUMPDEST
00003716: PUSH0
00003717: PUSH1 0x40
00003719: MLOAD
0000371a: DUP1
0000371b: DUP4
0000371c: SUB
0000371d: DUP2
0000371e: DUP6
0000371f: DUP8
00003720: GAS
00003721: CALL
00003722: SWAP3
00003723: POP
00003724: POP
00003725: POP
00003726: RETURNDATASIZE
00003727: DUP1
00003728: PUSH0
00003729: DUP2
0000372a: EQ
0000372b: PUSH2 0x374f
0000372e: JUMPI
0000372f: PUSH1 0x40
00003731: MLOAD
00003732: SWAP2
00003733: POP
00003734: PUSH1 0x1f
00003736: NOT
00003737: PUSH1 0x3f
00003739: RETURNDATASIZE
0000373a: ADD
0000373b: AND
0000373c: DUP3
0000373d: ADD
0000373e: PUSH1 0x40
00003740: MSTORE
00003741: RETURNDATASIZE
00003742: DUP3
00003743: MSTORE
00003744: RETURNDATASIZE
00003745: PUSH0
00003746: PUSH1 0x20
00003748: DUP5
00003749: ADD
0000374a: RETURNDATACOPY
0000374b: PUSH2 0x3754
0000374e: JUMP
0000374f: JUMPDEST
00003750: PUSH1 0x60
00003752: SWAP2
00003753: POP
00003754: JUMPDEST
00003755: POP
00003756: SWAP2
00003757: POP
00003758: SWAP2
00003759: POP
0000375a: PUSH2 0x3264
0000375d: DUP7
0000375e: DUP4
0000375f: DUP4
00003760: PUSH1 0x60
00003762: DUP3
00003763: PUSH2 0x3774
00003766: JUMPI
00003767: PUSH2 0x376f
0000376a: DUP3
0000376b: PUSH2 0x37bb
0000376e: JUMP
0000376f: JUMPDEST
00003770: PUSH2 0x1263
00003773: JUMP
00003774: JUMPDEST
00003775: DUP2
00003776: MLOAD
00003777: ISZERO
00003778: DUP1
00003779: ISZERO
0000377a: PUSH2 0x378b
0000377d: JUMPI
0000377e: POP
0000377f: PUSH1 0x01
00003781: PUSH1 0x01
00003783: PUSH1 0xa0
00003785: SHL
00003786: SUB
00003787: DUP5
00003788: AND
00003789: EXTCODESIZE
0000378a: ISZERO
0000378b: JUMPDEST
0000378c: ISZERO
0000378d: PUSH2 0x37b4
00003790: JUMPI
00003791: PUSH1 0x40
00003793: MLOAD
00003794: PUSH4 0x9996b315
00003799: PUSH1 0xe0
0000379b: SHL
0000379c: DUP2
0000379d: MSTORE
0000379e: PUSH1 0x01
000037a0: PUSH1 0x01
000037a2: PUSH1 0xa0
000037a4: SHL
000037a5: SUB
000037a6: DUP6
000037a7: AND
000037a8: PUSH1 0x04
000037aa: DUP3
000037ab: ADD
000037ac: MSTORE
000037ad: PUSH1 0x24
000037af: ADD
000037b0: PUSH2 0x1b8d
000037b3: JUMP
000037b4: JUMPDEST
000037b5: POP
000037b6: DUP1
000037b7: PUSH2 0x1263
000037ba: JUMP
000037bb: JUMPDEST
000037bc: DUP1
000037bd: MLOAD
000037be: ISZERO
000037bf: PUSH2 0x37cb
000037c2: JUMPI
000037c3: DUP1
000037c4: MLOAD
000037c5: DUP1
000037c6: DUP3
000037c7: PUSH1 0x20
000037c9: ADD
000037ca: REVERT
000037cb: JUMPDEST
000037cc: PUSH1 0x40
000037ce: MLOAD
000037cf: PUSH4 0x0a12f521
000037d4: PUSH1 0xe1
000037d6: SHL
000037d7: DUP2
000037d8: MSTORE
000037d9: PUSH1 0x04
000037db: ADD
000037dc: PUSH1 0x40
000037de: MLOAD
000037df: DUP1
000037e0: SWAP2
000037e1: SUB
000037e2: SWAP1
000037e3: REVERT
000037e4: JUMPDEST
000037e5: DUP1
000037e6: CALLDATALOAD
000037e7: PUSH1 0x01
000037e9: PUSH1 0x01
000037eb: PUSH1 0xe0
000037ed: SHL
000037ee: SUB
000037ef: NOT
000037f0: DUP2
000037f1: AND
000037f2: DUP2
000037f3: EQ
000037f4: PUSH2 0x37fb
000037f7: JUMPI
000037f8: PUSH0
000037f9: DUP1
000037fa: REVERT
000037fb: JUMPDEST
000037fc: SWAP2
000037fd: SWAP1
000037fe: POP
000037ff: JUMP
00003800: JUMPDEST
00003801: PUSH0
00003802: PUSH1 0x20
00003804: DUP3
00003805: DUP5
00003806: SUB
00003807: SLT
00003808: ISZERO
00003809: PUSH2 0x3810
0000380c: JUMPI
0000380d: PUSH0
0000380e: DUP1
0000380f: REVERT
00003810: JUMPDEST
00003811: PUSH2 0x1263
00003814: DUP3
00003815: PUSH2 0x37e4
00003818: JUMP
00003819: JUMPDEST
0000381a: PUSH0
0000381b: JUMPDEST
0000381c: DUP4
0000381d: DUP2
0000381e: LT
0000381f: ISZERO
00003820: PUSH2 0x3833
00003823: JUMPI
00003824: DUP2
00003825: DUP2
00003826: ADD
00003827: MLOAD
00003828: DUP4
00003829: DUP3
0000382a: ADD
0000382b: MSTORE
0000382c: PUSH1 0x20
0000382e: ADD
0000382f: PUSH2 0x381b
00003832: JUMP
00003833: JUMPDEST
00003834: POP
00003835: POP
00003836: PUSH0
00003837: SWAP2
00003838: ADD
00003839: MSTORE
0000383a: JUMP
0000383b: JUMPDEST
0000383c: PUSH0
0000383d: DUP2
0000383e: MLOAD
0000383f: DUP1
00003840: DUP5
00003841: MSTORE
00003842: PUSH2 0x3852
00003845: DUP2
00003846: PUSH1 0x20
00003848: DUP7
00003849: ADD
0000384a: PUSH1 0x20
0000384c: DUP7
0000384d: ADD
0000384e: PUSH2 0x3819
00003851: JUMP
00003852: JUMPDEST
00003853: PUSH1 0x1f
00003855: ADD
00003856: PUSH1 0x1f
00003858: NOT
00003859: AND
0000385a: SWAP3
0000385b: SWAP1
0000385c: SWAP3
0000385d: ADD
0000385e: PUSH1 0x20
00003860: ADD
00003861: SWAP3
00003862: SWAP2
00003863: POP
00003864: POP
00003865: JUMP
00003866: JUMPDEST
00003867: PUSH1 0x20
00003869: DUP2
0000386a: MSTORE
0000386b: PUSH0
0000386c: PUSH2 0x1263
0000386f: PUSH1 0x20
00003871: DUP4
00003872: ADD
00003873: DUP5
00003874: PUSH2 0x383b
00003877: JUMP
00003878: JUMPDEST
00003879: PUSH0
0000387a: PUSH1 0x20
0000387c: DUP3
0000387d: DUP5
0000387e: SUB
0000387f: SLT
00003880: ISZERO
00003881: PUSH2 0x3888
00003884: JUMPI
00003885: PUSH0
00003886: DUP1
00003887: REVERT
00003888: JUMPDEST
00003889: POP
0000388a: CALLDATALOAD
0000388b: SWAP2
0000388c: SWAP1
0000388d: POP
0000388e: JUMP
0000388f: JUMPDEST
00003890: PUSH1 0x01
00003892: PUSH1 0x01
00003894: PUSH1 0xa0
00003896: SHL
00003897: SUB
00003898: DUP2
00003899: AND
0000389a: DUP2
0000389b: EQ
0000389c: PUSH2 0x249c
0000389f: JUMPI
000038a0: PUSH0
000038a1: DUP1
000038a2: REVERT
000038a3: JUMPDEST
000038a4: PUSH0
000038a5: DUP1
000038a6: PUSH1 0x40
000038a8: DUP4
000038a9: DUP6
000038aa: SUB
000038ab: SLT
000038ac: ISZERO
000038ad: PUSH2 0x38b4
000038b0: JUMPI
000038b1: PUSH0
000038b2: DUP1
000038b3: REVERT
000038b4: JUMPDEST
000038b5: DUP3
000038b6: CALLDATALOAD
000038b7: PUSH2 0x38bf
000038ba: DUP2
000038bb: PUSH2 0x388f
000038be: JUMP
000038bf: JUMPDEST
000038c0: SWAP5
000038c1: PUSH1 0x20
000038c3: SWAP4
000038c4: SWAP1
000038c5: SWAP4
000038c6: ADD
000038c7: CALLDATALOAD
000038c8: SWAP4
000038c9: POP
000038ca: POP
000038cb: POP
000038cc: JUMP
000038cd: JUMPDEST
000038ce: PUSH0
000038cf: DUP1
000038d0: PUSH1 0x40
000038d2: DUP4
000038d3: DUP6
000038d4: SUB
000038d5: SLT
000038d6: ISZERO
000038d7: PUSH2 0x38de
000038da: JUMPI
000038db: PUSH0
000038dc: DUP1
000038dd: REVERT
000038de: JUMPDEST
000038df: DUP3
000038e0: CALLDATALOAD
000038e1: PUSH2 0x38e9
000038e4: DUP2
000038e5: PUSH2 0x388f
000038e8: JUMP
000038e9: JUMPDEST
000038ea: SWAP2
000038eb: POP
000038ec: PUSH2 0x38f7
000038ef: PUSH1 0x20
000038f1: DUP5
000038f2: ADD
000038f3: PUSH2 0x37e4
000038f6: JUMP
000038f7: JUMPDEST
000038f8: SWAP1
000038f9: POP
000038fa: SWAP3
000038fb: POP
000038fc: SWAP3
000038fd: SWAP1
000038fe: POP
000038ff: JUMP
00003900: JUMPDEST
00003901: PUSH4 0x4e487b71
00003906: PUSH1 0xe0
00003908: SHL
00003909: PUSH0
0000390a: MSTORE
0000390b: PUSH1 0x21
0000390d: PUSH1 0x04
0000390f: MSTORE
00003910: PUSH1 0x24
00003912: PUSH0
00003913: REVERT
00003914: JUMPDEST
00003915: PUSH1 0x02
00003917: DUP2
00003918: LT
00003919: PUSH2 0x3924
0000391c: JUMPI
0000391d: PUSH2 0x3924
00003920: PUSH2 0x3900
00003923: JUMP
00003924: JUMPDEST
00003925: SWAP1
00003926: MSTORE
00003927: JUMP
00003928: JUMPDEST
00003929: PUSH0
0000392a: PUSH1 0x20
0000392c: DUP1
0000392d: DUP4
0000392e: MSTORE
0000392f: PUSH1 0x80
00003931: DUP1
00003932: DUP5
00003933: ADD
00003934: DUP6
00003935: MLOAD
00003936: ISZERO
00003937: ISZERO
00003938: DUP4
00003939: DUP7
0000393a: ADD
0000393b: MSTORE
0000393c: DUP3
0000393d: DUP7
0000393e: ADD
0000393f: MLOAD
00003940: PUSH1 0x60
00003942: PUSH1 0x40
00003944: PUSH1 0x60
00003946: PUSH1 0x40
00003948: DUP10
00003949: ADD
0000394a: MSTORE
0000394b: DUP4
0000394c: DUP4
0000394d: MLOAD
0000394e: DUP1
0000394f: DUP7
00003950: MSTORE
00003951: PUSH1 0xa0
00003953: DUP11
00003954: ADD
00003955: SWAP2
00003956: POP
00003957: PUSH1 0xa0
00003959: DUP2
0000395a: PUSH1 0x05
0000395c: SHL
0000395d: DUP12
0000395e: ADD
0000395f: ADD
00003960: SWAP6
00003961: POP
00003962: DUP8
00003963: DUP6
00003964: ADD
00003965: SWAP5
00003966: POP
00003967: PUSH0
00003968: JUMPDEST
00003969: DUP2
0000396a: DUP2
0000396b: LT
0000396c: ISZERO
0000396d: PUSH2 0x39eb
00003970: JUMPI
00003971: PUSH1 0x9f
00003973: NOT
00003974: DUP12
00003975: DUP9
00003976: SUB
00003977: ADD
00003978: DUP4
00003979: MSTORE
0000397a: DUP6
0000397b: MLOAD
0000397c: DUP6
0000397d: DUP9
0000397e: ADD
0000397f: PUSH2 0x3989
00003982: DUP10
00003983: DUP4
00003984: MLOAD
00003985: PUSH2 0x3914
00003988: JUMP
00003989: JUMPDEST
0000398a: DUP2
0000398b: DUP12
0000398c: ADD
0000398d: MLOAD
0000398e: ISZERO
0000398f: ISZERO
00003990: DUP10
00003991: DUP13
00003992: ADD
00003993: MSTORE
00003994: SWAP1
00003995: DUP6
00003996: ADD
00003997: MLOAD
00003998: DUP6
00003999: DUP10
0000399a: ADD
0000399b: DUP8
0000399c: SWAP1
0000399d: MSTORE
0000399e: DUP1
0000399f: MLOAD
000039a0: SWAP2
000039a1: DUP3
000039a2: SWAP1
000039a3: MSTORE
000039a4: DUP11
000039a5: ADD
000039a6: SWAP1
000039a7: PUSH0
000039a8: SWAP1
000039a9: DUP11
000039aa: DUP11
000039ab: ADD
000039ac: SWAP1
000039ad: JUMPDEST
000039ae: DUP1
000039af: DUP4
000039b0: LT
000039b1: ISZERO
000039b2: PUSH2 0x39d6
000039b5: JUMPI
000039b6: DUP4
000039b7: MLOAD
000039b8: PUSH1 0x01
000039ba: PUSH1 0x01
000039bc: PUSH1 0xa0
000039be: SHL
000039bf: SUB
000039c0: AND
000039c1: DUP3
000039c2: MSTORE
000039c3: SWAP3
000039c4: DUP13
000039c5: ADD
000039c6: SWAP3
000039c7: PUSH1 0x01
000039c9: SWAP3
000039ca: SWAP1
000039cb: SWAP3
000039cc: ADD
000039cd: SWAP2
000039ce: SWAP1
000039cf: DUP13
000039d0: ADD
000039d1: SWAP1
000039d2: PUSH2 0x39ad
000039d5: JUMP
000039d6: JUMPDEST
000039d7: POP
000039d8: SWAP9
000039d9: POP
000039da: POP
000039db: POP
000039dc: SWAP5
000039dd: DUP9
000039de: ADD
000039df: SWAP5
000039e0: SWAP2
000039e1: DUP9
000039e2: ADD
000039e3: SWAP2
000039e4: PUSH1 0x01
000039e6: ADD
000039e7: PUSH2 0x3968
000039ea: JUMP
000039eb: JUMPDEST
000039ec: POP
000039ed: POP
000039ee: POP
000039ef: POP
000039f0: POP
000039f1: POP
000039f2: PUSH1 0x40
000039f4: DUP7
000039f5: ADD
000039f6: MLOAD
000039f7: SWAP3
000039f8: POP
000039f9: PUSH2 0x1f37
000039fc: PUSH1 0x60
000039fe: DUP7
000039ff: ADD
00003a00: DUP5
00003a01: PUSH1 0x01
00003a03: PUSH1 0x01
00003a05: PUSH1 0xa0
00003a07: SHL
00003a08: SUB
00003a09: AND
00003a0a: SWAP1
00003a0b: MSTORE
00003a0c: JUMP
00003a0d: JUMPDEST
00003a0e: PUSH0
00003a0f: DUP1
00003a10: DUP4
00003a11: PUSH1 0x1f
00003a13: DUP5
00003a14: ADD
00003a15: SLT
00003a16: PUSH2 0x3a1d
00003a19: JUMPI
00003a1a: PUSH0
00003a1b: DUP1
00003a1c: REVERT
00003a1d: JUMPDEST
00003a1e: POP
00003a1f: DUP2
00003a20: CALLDATALOAD
00003a21: PUSH1 0x01
00003a23: PUSH1 0x01
00003a25: PUSH1 0x40
00003a27: SHL
00003a28: SUB
00003a29: DUP2
00003a2a: GT
00003a2b: ISZERO
00003a2c: PUSH2 0x3a33
00003a2f: JUMPI
00003a30: PUSH0
00003a31: DUP1
00003a32: REVERT
00003a33: JUMPDEST
00003a34: PUSH1 0x20
00003a36: DUP4
00003a37: ADD
00003a38: SWAP2
00003a39: POP
00003a3a: DUP4
00003a3b: PUSH1 0x20
00003a3d: DUP3
00003a3e: PUSH1 0x05
00003a40: SHL
00003a41: DUP6
00003a42: ADD
00003a43: ADD
00003a44: GT
00003a45: ISZERO
00003a46: PUSH2 0x3a4d
00003a49: JUMPI
00003a4a: PUSH0
00003a4b: DUP1
00003a4c: REVERT
00003a4d: JUMPDEST
00003a4e: SWAP3
00003a4f: POP
00003a50: SWAP3
00003a51: SWAP1
00003a52: POP
00003a53: JUMP
00003a54: JUMPDEST
00003a55: PUSH4 0x4e487b71
00003a5a: PUSH1 0xe0
00003a5c: SHL
00003a5d: PUSH0
00003a5e: MSTORE
00003a5f: PUSH1 0x41
00003a61: PUSH1 0x04
00003a63: MSTORE
00003a64: PUSH1 0x24
00003a66: PUSH0
00003a67: REVERT
00003a68: JUMPDEST
00003a69: PUSH1 0x40
00003a6b: MLOAD
00003a6c: PUSH1 0x1f
00003a6e: DUP3
00003a6f: ADD
00003a70: PUSH1 0x1f
00003a72: NOT
00003a73: AND
00003a74: DUP2
00003a75: ADD
00003a76: PUSH1 0x01
00003a78: PUSH1 0x01
00003a7a: PUSH1 0x40
00003a7c: SHL
00003a7d: SUB
00003a7e: DUP2
00003a7f: GT
00003a80: DUP3
00003a81: DUP3
00003a82: LT
00003a83: OR
00003a84: ISZERO
00003a85: PUSH2 0x3a90
00003a88: JUMPI
00003a89: PUSH2 0x3a90
00003a8c: PUSH2 0x3a54
00003a8f: JUMP
00003a90: JUMPDEST
00003a91: PUSH1 0x40
00003a93: MSTORE
00003a94: SWAP2
00003a95: SWAP1
00003a96: POP
00003a97: JUMP
00003a98: JUMPDEST
00003a99: PUSH0
00003a9a: PUSH1 0x01
00003a9c: PUSH1 0x01
00003a9e: PUSH1 0x40
00003aa0: SHL
00003aa1: SUB
00003aa2: DUP3
00003aa3: GT
00003aa4: ISZERO
00003aa5: PUSH2 0x3ab0
00003aa8: JUMPI
00003aa9: PUSH2 0x3ab0
00003aac: PUSH2 0x3a54
00003aaf: JUMP
00003ab0: JUMPDEST
00003ab1: POP
00003ab2: PUSH1 0x05
00003ab4: SHL
00003ab5: PUSH1 0x20
00003ab7: ADD
00003ab8: SWAP1
00003ab9: JUMP
00003aba: JUMPDEST
00003abb: PUSH0
00003abc: DUP1
00003abd: PUSH0
00003abe: DUP1
00003abf: PUSH0
00003ac0: PUSH1 0x60
00003ac2: DUP7
00003ac3: DUP9
00003ac4: SUB
00003ac5: SLT
00003ac6: ISZERO
00003ac7: PUSH2 0x3ace
00003aca: JUMPI
00003acb: PUSH0
00003acc: DUP1
00003acd: REVERT
00003ace: JUMPDEST
00003acf: DUP6
00003ad0: CALLDATALOAD
00003ad1: PUSH1 0x01
00003ad3: PUSH1 0x01
00003ad5: PUSH1 0x40
00003ad7: SHL
00003ad8: SUB
00003ad9: DUP1
00003ada: DUP3
00003adb: GT
00003adc: ISZERO
00003add: PUSH2 0x3ae4
00003ae0: JUMPI
00003ae1: PUSH0
00003ae2: DUP1
00003ae3: REVERT
00003ae4: JUMPDEST
00003ae5: PUSH2 0x3af0
00003ae8: DUP10
00003ae9: DUP4
00003aea: DUP11
00003aeb: ADD
00003aec: PUSH2 0x3a0d
00003aef: JUMP
00003af0: JUMPDEST
00003af1: SWAP1
00003af2: SWAP8
00003af3: POP
00003af4: SWAP6
00003af5: POP
00003af6: PUSH1 0x20
00003af8: SWAP2
00003af9: POP
00003afa: DUP8
00003afb: DUP3
00003afc: ADD
00003afd: CALLDATALOAD
00003afe: DUP2
00003aff: DUP2
00003b00: GT
00003b01: ISZERO
00003b02: PUSH2 0x3b09
00003b05: JUMPI
00003b06: PUSH0
00003b07: DUP1
00003b08: REVERT
00003b09: JUMPDEST
00003b0a: DUP9
00003b0b: ADD
00003b0c: PUSH1 0x1f
00003b0e: DUP2
00003b0f: ADD
00003b10: DUP11
00003b11: SGT
00003b12: PUSH2 0x3b19
00003b15: JUMPI
00003b16: PUSH0
00003b17: DUP1
00003b18: REVERT
00003b19: JUMPDEST
00003b1a: DUP1
00003b1b: CALLDATALOAD
00003b1c: PUSH2 0x3b2c
00003b1f: PUSH2 0x3b27
00003b22: DUP3
00003b23: PUSH2 0x3a98
00003b26: JUMP
00003b27: JUMPDEST
00003b28: PUSH2 0x3a68
00003b2b: JUMP
00003b2c: JUMPDEST
00003b2d: DUP2
00003b2e: DUP2
00003b2f: MSTORE
00003b30: PUSH1 0x05
00003b32: SWAP2
00003b33: SWAP1
00003b34: SWAP2
00003b35: SHL
00003b36: DUP3
00003b37: ADD
00003b38: DUP5
00003b39: ADD
00003b3a: SWAP1
00003b3b: DUP5
00003b3c: DUP2
00003b3d: ADD
00003b3e: SWAP1
00003b3f: DUP13
00003b40: DUP4
00003b41: GT
00003b42: ISZERO
00003b43: PUSH2 0x3b4a
00003b46: JUMPI
00003b47: PUSH0
00003b48: DUP1
00003b49: REVERT
00003b4a: JUMPDEST
00003b4b: SWAP3
00003b4c: DUP6
00003b4d: ADD
00003b4e: SWAP3
00003b4f: JUMPDEST
00003b50: DUP3
00003b51: DUP5
00003b52: LT
00003b53: ISZERO
00003b54: PUSH2 0x3b68
00003b57: JUMPI
00003b58: DUP4
00003b59: CALLDATALOAD
00003b5a: DUP3
00003b5b: MSTORE
00003b5c: SWAP3
00003b5d: DUP6
00003b5e: ADD
00003b5f: SWAP3
00003b60: SWAP1
00003b61: DUP6
00003b62: ADD
00003b63: SWAP1
00003b64: PUSH2 0x3b4f
00003b67: JUMP
00003b68: JUMPDEST
00003b69: SWAP8
00003b6a: POP
00003b6b: POP
00003b6c: POP
00003b6d: POP
00003b6e: PUSH1 0x40
00003b70: DUP9
00003b71: ADD
00003b72: CALLDATALOAD
00003b73: SWAP2
00003b74: POP
00003b75: DUP1
00003b76: DUP3
00003b77: GT
00003b78: ISZERO
00003b79: PUSH2 0x3b80
00003b7c: JUMPI
00003b7d: PUSH0
00003b7e: DUP1
00003b7f: REVERT
00003b80: JUMPDEST
00003b81: POP
00003b82: PUSH2 0x3b8d
00003b85: DUP9
00003b86: DUP3
00003b87: DUP10
00003b88: ADD
00003b89: PUSH2 0x3a0d
00003b8c: JUMP
00003b8d: JUMPDEST
00003b8e: SWAP7
00003b8f: SWAP10
00003b90: SWAP6
00003b91: SWAP9
00003b92: POP
00003b93: SWAP4
00003b94: SWAP7
00003b95: POP
00003b96: SWAP3
00003b97: SWAP5
00003b98: SWAP4
00003b99: SWAP3
00003b9a: POP
00003b9b: POP
00003b9c: POP
00003b9d: JUMP
00003b9e: JUMPDEST
00003b9f: PUSH0
00003ba0: PUSH1 0x20
00003ba2: DUP1
00003ba3: DUP4
00003ba4: ADD
00003ba5: PUSH1 0x20
00003ba7: DUP5
00003ba8: MSTORE
00003ba9: DUP1
00003baa: DUP6
00003bab: MLOAD
00003bac: DUP1
00003bad: DUP4
00003bae: MSTORE
00003baf: PUSH1 0x40
00003bb1: DUP7
00003bb2: ADD
00003bb3: SWAP2
00003bb4: POP
00003bb5: PUSH1 0x40
00003bb7: DUP2
00003bb8: PUSH1 0x05
00003bba: SHL
00003bbb: DUP8
00003bbc: ADD
00003bbd: ADD
00003bbe: SWAP3
00003bbf: POP
00003bc0: PUSH1 0x20
00003bc2: DUP8
00003bc3: ADD
00003bc4: PUSH0
00003bc5: JUMPDEST
00003bc6: DUP3
00003bc7: DUP2
00003bc8: LT
00003bc9: ISZERO
00003bca: PUSH2 0x3bf3
00003bcd: JUMPI
00003bce: PUSH1 0x3f
00003bd0: NOT
00003bd1: DUP9
00003bd2: DUP7
00003bd3: SUB
00003bd4: ADD
00003bd5: DUP5
00003bd6: MSTORE
00003bd7: PUSH2 0x3be1
00003bda: DUP6
00003bdb: DUP4
00003bdc: MLOAD
00003bdd: PUSH2 0x383b
00003be0: JUMP
00003be1: JUMPDEST
00003be2: SWAP5
00003be3: POP
00003be4: SWAP3
00003be5: DUP6
00003be6: ADD
00003be7: SWAP3
00003be8: SWAP1
00003be9: DUP6
00003bea: ADD
00003beb: SWAP1
00003bec: PUSH1 0x01
00003bee: ADD
00003bef: PUSH2 0x3bc5
00003bf2: JUMP
00003bf3: JUMPDEST
00003bf4: POP
00003bf5: SWAP3
00003bf6: SWAP8
00003bf7: SWAP7
00003bf8: POP
00003bf9: POP
00003bfa: POP
00003bfb: POP
00003bfc: POP
00003bfd: POP
00003bfe: POP
00003bff: JUMP
00003c00: JUMPDEST
00003c01: PUSH0
00003c02: DUP1
00003c03: PUSH0
00003c04: PUSH1 0x60
00003c06: DUP5
00003c07: DUP7
00003c08: SUB
00003c09: SLT
00003c0a: ISZERO
00003c0b: PUSH2 0x3c12
00003c0e: JUMPI
00003c0f: PUSH0
00003c10: DUP1
00003c11: REVERT
00003c12: JUMPDEST
00003c13: DUP4
00003c14: CALLDATALOAD
00003c15: PUSH2 0x3c1d
00003c18: DUP2
00003c19: PUSH2 0x388f
00003c1c: JUMP
00003c1d: JUMPDEST
00003c1e: SWAP3
00003c1f: POP
00003c20: PUSH1 0x20
00003c22: DUP5
00003c23: ADD
00003c24: CALLDATALOAD
00003c25: PUSH2 0x3c2d
00003c28: DUP2
00003c29: PUSH2 0x388f
00003c2c: JUMP
00003c2d: JUMPDEST
00003c2e: SWAP3
00003c2f: SWAP6
00003c30: SWAP3
00003c31: SWAP5
00003c32: POP
00003c33: POP
00003c34: POP
00003c35: PUSH1 0x40
00003c37: SWAP2
00003c38: SWAP1
00003c39: SWAP2
00003c3a: ADD
00003c3b: CALLDATALOAD
00003c3c: SWAP1
00003c3d: JUMP
00003c3e: JUMPDEST
00003c3f: DUP1
00003c40: ISZERO
00003c41: ISZERO
00003c42: DUP2
00003c43: EQ
00003c44: PUSH2 0x249c
00003c47: JUMPI
00003c48: PUSH0
00003c49: DUP1
00003c4a: REVERT
00003c4b: JUMPDEST
00003c4c: PUSH0
00003c4d: DUP1
00003c4e: PUSH1 0x40
00003c50: DUP4
00003c51: DUP6
00003c52: SUB
00003c53: SLT
00003c54: ISZERO
00003c55: PUSH2 0x3c5c
00003c58: JUMPI
00003c59: PUSH0
00003c5a: DUP1
00003c5b: REVERT
00003c5c: JUMPDEST
00003c5d: DUP3
00003c5e: CALLDATALOAD
00003c5f: PUSH2 0x3c67
00003c62: DUP2
00003c63: PUSH2 0x388f
00003c66: JUMP
00003c67: JUMPDEST
00003c68: SWAP2
00003c69: POP
00003c6a: PUSH1 0x20
00003c6c: DUP4
00003c6d: ADD
00003c6e: CALLDATALOAD
00003c6f: PUSH2 0x3c77
00003c72: DUP2
00003c73: PUSH2 0x3c3e
00003c76: JUMP
00003c77: JUMPDEST
00003c78: DUP1
00003c79: SWAP2
00003c7a: POP
00003c7b: POP
00003c7c: SWAP3
00003c7d: POP
00003c7e: SWAP3
00003c7f: SWAP1
00003c80: POP
00003c81: JUMP
00003c82: JUMPDEST
00003c83: PUSH0
00003c84: DUP1
00003c85: PUSH1 0x40
00003c87: DUP4
00003c88: DUP6
00003c89: SUB
00003c8a: SLT
00003c8b: ISZERO
00003c8c: PUSH2 0x3c93
00003c8f: JUMPI
00003c90: PUSH0
00003c91: DUP1
00003c92: REVERT
00003c93: JUMPDEST
00003c94: DUP3
00003c95: CALLDATALOAD
00003c96: SWAP2
00003c97: POP
00003c98: PUSH1 0x20
00003c9a: DUP4
00003c9b: ADD
00003c9c: CALLDATALOAD
00003c9d: PUSH2 0x3c77
00003ca0: DUP2
00003ca1: PUSH2 0x388f
00003ca4: JUMP
00003ca5: JUMPDEST
00003ca6: PUSH0
00003ca7: PUSH1 0x20
00003ca9: DUP3
00003caa: DUP5
00003cab: SUB
00003cac: SLT
00003cad: ISZERO
00003cae: PUSH2 0x3cb5
00003cb1: JUMPI
00003cb2: PUSH0
00003cb3: DUP1
00003cb4: REVERT
00003cb5: JUMPDEST
00003cb6: DUP2
00003cb7: CALLDATALOAD
00003cb8: PUSH2 0x1263
00003cbb: DUP2
00003cbc: PUSH2 0x388f
00003cbf: JUMP
00003cc0: JUMPDEST
00003cc1: PUSH0
00003cc2: DUP1
00003cc3: PUSH0
00003cc4: PUSH1 0x60
00003cc6: DUP5
00003cc7: DUP7
00003cc8: SUB
00003cc9: SLT
00003cca: ISZERO
00003ccb: PUSH2 0x3cd2
00003cce: JUMPI
00003ccf: PUSH0
00003cd0: DUP1
00003cd1: REVERT
00003cd2: JUMPDEST
00003cd3: DUP4
00003cd4: CALLDATALOAD
00003cd5: PUSH2 0x3cdd
00003cd8: DUP2
00003cd9: PUSH2 0x388f
00003cdc: JUMP
00003cdd: JUMPDEST
00003cde: SWAP3
00003cdf: POP
00003ce0: PUSH2 0x3ceb
00003ce3: PUSH1 0x20
00003ce5: DUP6
00003ce6: ADD
00003ce7: PUSH2 0x37e4
00003cea: JUMP
00003ceb: JUMPDEST
00003cec: SWAP2
00003ced: POP
00003cee: PUSH1 0x40
00003cf0: DUP5
00003cf1: ADD
00003cf2: CALLDATALOAD
00003cf3: PUSH1 0x01
00003cf5: PUSH1 0x01
00003cf7: PUSH1 0x40
00003cf9: SHL
00003cfa: SUB
00003cfb: DUP2
00003cfc: GT
00003cfd: ISZERO
00003cfe: PUSH2 0x3d05
00003d01: JUMPI
00003d02: PUSH0
00003d03: DUP1
00003d04: REVERT
00003d05: JUMPDEST
00003d06: DUP5
00003d07: ADD
00003d08: PUSH1 0x60
00003d0a: DUP2
00003d0b: DUP8
00003d0c: SUB
00003d0d: SLT
00003d0e: ISZERO
00003d0f: PUSH2 0x3d16
00003d12: JUMPI
00003d13: PUSH0
00003d14: DUP1
00003d15: REVERT
00003d16: JUMPDEST
00003d17: DUP1
00003d18: SWAP2
00003d19: POP
00003d1a: POP
00003d1b: SWAP3
00003d1c: POP
00003d1d: SWAP3
00003d1e: POP
00003d1f: SWAP3
00003d20: JUMP
00003d21: JUMPDEST
00003d22: DUP1
00003d23: CALLDATALOAD
00003d24: PUSH1 0x01
00003d26: PUSH1 0x01
00003d28: PUSH1 0x40
00003d2a: SHL
00003d2b: SUB
00003d2c: DUP2
00003d2d: AND
00003d2e: DUP2
00003d2f: EQ
00003d30: PUSH2 0x37fb
00003d33: JUMPI
00003d34: PUSH0
00003d35: DUP1
00003d36: REVERT
00003d37: JUMPDEST
00003d38: PUSH0
00003d39: PUSH1 0x20
00003d3b: DUP3
00003d3c: DUP5
00003d3d: SUB
00003d3e: SLT
00003d3f: ISZERO
00003d40: PUSH2 0x3d47
00003d43: JUMPI
00003d44: PUSH0
00003d45: DUP1
00003d46: REVERT
00003d47: JUMPDEST
00003d48: PUSH2 0x1263
00003d4b: DUP3
00003d4c: PUSH2 0x3d21
00003d4f: JUMP
00003d50: JUMPDEST
00003d51: PUSH0
00003d52: DUP1
00003d53: PUSH0
00003d54: PUSH1 0x60
00003d56: DUP5
00003d57: DUP7
00003d58: SUB
00003d59: SLT
00003d5a: ISZERO
00003d5b: PUSH2 0x3d62
00003d5e: JUMPI
00003d5f: PUSH0
00003d60: DUP1
00003d61: REVERT
00003d62: JUMPDEST
00003d63: DUP4
00003d64: CALLDATALOAD
00003d65: PUSH2 0x3d6d
00003d68: DUP2
00003d69: PUSH2 0x388f
00003d6c: JUMP
00003d6d: JUMPDEST
00003d6e: SWAP3
00003d6f: POP
00003d70: PUSH1 0x20
00003d72: DUP5
00003d73: ADD
00003d74: CALLDATALOAD
00003d75: SWAP2
00003d76: POP
00003d77: PUSH1 0x40
00003d79: DUP5
00003d7a: ADD
00003d7b: CALLDATALOAD
00003d7c: PUSH2 0x3d16
00003d7f: DUP2
00003d80: PUSH2 0x388f
00003d83: JUMP
00003d84: JUMPDEST
00003d85: PUSH0
00003d86: PUSH1 0x20
00003d88: DUP3
00003d89: DUP5
00003d8a: SUB
00003d8b: SLT
00003d8c: ISZERO
00003d8d: PUSH2 0x3d94
00003d90: JUMPI
00003d91: PUSH0
00003d92: DUP1
00003d93: REVERT
00003d94: JUMPDEST
00003d95: DUP2
00003d96: CALLDATALOAD
00003d97: PUSH2 0x1263
00003d9a: DUP2
00003d9b: PUSH2 0x3c3e
00003d9e: JUMP
00003d9f: JUMPDEST
00003da0: PUSH1 0x20
00003da2: DUP1
00003da3: DUP3
00003da4: MSTORE
00003da5: DUP3
00003da6: MLOAD
00003da7: DUP3
00003da8: DUP3
00003da9: ADD
00003daa: DUP2
00003dab: SWAP1
00003dac: MSTORE
00003dad: PUSH0
00003dae: SWAP2
00003daf: SWAP1
00003db0: DUP5
00003db1: DUP3
00003db2: ADD
00003db3: SWAP1
00003db4: PUSH1 0x40
00003db6: DUP6
00003db7: ADD
00003db8: SWAP1
00003db9: DUP5
00003dba: JUMPDEST
00003dbb: DUP2
00003dbc: DUP2
00003dbd: LT
00003dbe: ISZERO
00003dbf: PUSH2 0x2e5b
00003dc2: JUMPI
00003dc3: DUP4
00003dc4: MLOAD
00003dc5: PUSH1 0x01
00003dc7: PUSH1 0x01
00003dc9: PUSH1 0xa0
00003dcb: SHL
00003dcc: SUB
00003dcd: AND
00003dce: DUP4
00003dcf: MSTORE
00003dd0: SWAP3
00003dd1: DUP5
00003dd2: ADD
00003dd3: SWAP3
00003dd4: SWAP2
00003dd5: DUP5
00003dd6: ADD
00003dd7: SWAP2
00003dd8: PUSH1 0x01
00003dda: ADD
00003ddb: PUSH2 0x3dba
00003dde: JUMP
00003ddf: JUMPDEST
00003de0: PUSH0
00003de1: DUP1
00003de2: PUSH0
00003de3: DUP1
00003de4: PUSH0
00003de5: DUP1
00003de6: PUSH1 0x60
00003de8: DUP8
00003de9: DUP10
00003dea: SUB
00003deb: SLT
00003dec: ISZERO
00003ded: PUSH2 0x3df4
00003df0: JUMPI
00003df1: PUSH0
00003df2: DUP1
00003df3: REVERT
00003df4: JUMPDEST
00003df5: DUP7
00003df6: CALLDATALOAD
00003df7: PUSH1 0x01
00003df9: PUSH1 0x01
00003dfb: PUSH1 0x40
00003dfd: SHL
00003dfe: SUB
00003dff: DUP1
00003e00: DUP3
00003e01: GT
00003e02: ISZERO
00003e03: PUSH2 0x3e0a
00003e06: JUMPI
00003e07: PUSH0
00003e08: DUP1
00003e09: REVERT
00003e0a: JUMPDEST
00003e0b: PUSH2 0x3e16
00003e0e: DUP11
00003e0f: DUP4
00003e10: DUP12
00003e11: ADD
00003e12: PUSH2 0x3a0d
00003e15: JUMP
00003e16: JUMPDEST
00003e17: SWAP1
00003e18: SWAP9
00003e19: POP
00003e1a: SWAP7
00003e1b: POP
00003e1c: PUSH1 0x20
00003e1e: DUP10
00003e1f: ADD
00003e20: CALLDATALOAD
00003e21: SWAP2
00003e22: POP
00003e23: DUP1
00003e24: DUP3
00003e25: GT
00003e26: ISZERO
00003e27: PUSH2 0x3e2e
00003e2a: JUMPI
00003e2b: PUSH0
00003e2c: DUP1
00003e2d: REVERT
00003e2e: JUMPDEST
00003e2f: PUSH2 0x3e3a
00003e32: DUP11
00003e33: DUP4
00003e34: DUP12
00003e35: ADD
00003e36: PUSH2 0x3a0d
00003e39: JUMP
00003e3a: JUMPDEST
00003e3b: SWAP1
00003e3c: SWAP7
00003e3d: POP
00003e3e: SWAP5
00003e3f: POP
00003e40: PUSH1 0x40
00003e42: DUP10
00003e43: ADD
00003e44: CALLDATALOAD
00003e45: SWAP2
00003e46: POP
00003e47: DUP1
00003e48: DUP3
00003e49: GT
00003e4a: ISZERO
00003e4b: PUSH2 0x3e52
00003e4e: JUMPI
00003e4f: PUSH0
00003e50: DUP1
00003e51: REVERT
00003e52: JUMPDEST
00003e53: POP
00003e54: PUSH2 0x3e5f
00003e57: DUP10
00003e58: DUP3
00003e59: DUP11
00003e5a: ADD
00003e5b: PUSH2 0x3a0d
00003e5e: JUMP
00003e5f: JUMPDEST
00003e60: SWAP8
00003e61: SWAP11
00003e62: SWAP7
00003e63: SWAP10
00003e64: POP
00003e65: SWAP5
00003e66: SWAP8
00003e67: POP
00003e68: SWAP3
00003e69: SWAP6
00003e6a: SWAP4
00003e6b: SWAP5
00003e6c: SWAP3
00003e6d: POP
00003e6e: POP
00003e6f: POP
00003e70: JUMP
00003e71: JUMPDEST
00003e72: PUSH0
00003e73: PUSH1 0x01
00003e75: PUSH1 0x01
00003e77: PUSH1 0x40
00003e79: SHL
00003e7a: SUB
00003e7b: DUP3
00003e7c: GT
00003e7d: ISZERO
00003e7e: PUSH2 0x3e89
00003e81: JUMPI
00003e82: PUSH2 0x3e89
00003e85: PUSH2 0x3a54
00003e88: JUMP
00003e89: JUMPDEST
00003e8a: POP
00003e8b: PUSH1 0x1f
00003e8d: ADD
00003e8e: PUSH1 0x1f
00003e90: NOT
00003e91: AND
00003e92: PUSH1 0x20
00003e94: ADD
00003e95: SWAP1
00003e96: JUMP
00003e97: JUMPDEST
00003e98: PUSH0
00003e99: DUP3
00003e9a: PUSH1 0x1f
00003e9c: DUP4
00003e9d: ADD
00003e9e: SLT
00003e9f: PUSH2 0x3ea6
00003ea2: JUMPI
00003ea3: PUSH0
00003ea4: DUP1
00003ea5: REVERT
00003ea6: JUMPDEST
00003ea7: DUP2
00003ea8: CALLDATALOAD
00003ea9: PUSH2 0x3eb4
00003eac: PUSH2 0x3b27
00003eaf: DUP3
00003eb0: PUSH2 0x3e71
00003eb3: JUMP
00003eb4: JUMPDEST
00003eb5: DUP2
00003eb6: DUP2
00003eb7: MSTORE
00003eb8: DUP5
00003eb9: PUSH1 0x20
00003ebb: DUP4
00003ebc: DUP7
00003ebd: ADD
00003ebe: ADD
00003ebf: GT
00003ec0: ISZERO
00003ec1: PUSH2 0x3ec8
00003ec4: JUMPI
00003ec5: PUSH0
00003ec6: DUP1
00003ec7: REVERT
00003ec8: JUMPDEST
00003ec9: DUP2
00003eca: PUSH1 0x20
00003ecc: DUP6
00003ecd: ADD
00003ece: PUSH1 0x20
00003ed0: DUP4
00003ed1: ADD
00003ed2: CALLDATACOPY
00003ed3: PUSH0
00003ed4: SWAP2
00003ed5: DUP2
00003ed6: ADD
00003ed7: PUSH1 0x20
00003ed9: ADD
00003eda: SWAP2
00003edb: SWAP1
00003edc: SWAP2
00003edd: MSTORE
00003ede: SWAP4
00003edf: SWAP3
00003ee0: POP
00003ee1: POP
00003ee2: POP
00003ee3: JUMP
00003ee4: JUMPDEST
00003ee5: PUSH1 0xff
00003ee7: DUP2
00003ee8: AND
00003ee9: DUP2
00003eea: EQ
00003eeb: PUSH2 0x249c
00003eee: JUMPI
00003eef: PUSH0
00003ef0: DUP1
00003ef1: REVERT
00003ef2: JUMPDEST
00003ef3: PUSH0
00003ef4: DUP1
00003ef5: PUSH0
00003ef6: DUP1
00003ef7: PUSH0
00003ef8: DUP1
00003ef9: PUSH0
00003efa: DUP1
00003efb: PUSH2 0x0100
00003efe: DUP10
00003eff: DUP12
00003f00: SUB
00003f01: SLT
00003f02: ISZERO
00003f03: PUSH2 0x3f0a
00003f06: JUMPI
00003f07: PUSH0
00003f08: DUP1
00003f09: REVERT
00003f0a: JUMPDEST
00003f0b: DUP9
00003f0c: CALLDATALOAD
00003f0d: PUSH2 0x3f15
00003f10: DUP2
00003f11: PUSH2 0x388f
00003f14: JUMP
00003f15: JUMPDEST
00003f16: SWAP8
00003f17: POP
00003f18: PUSH1 0x20
00003f1a: DUP10
00003f1b: ADD
00003f1c: CALLDATALOAD
00003f1d: PUSH1 0x01
00003f1f: PUSH1 0x01
00003f21: PUSH1 0x40
00003f23: SHL
00003f24: SUB
00003f25: DUP1
00003f26: DUP3
00003f27: GT
00003f28: ISZERO
00003f29: PUSH2 0x3f30
00003f2c: JUMPI
00003f2d: PUSH0
00003f2e: DUP1
00003f2f: REVERT
00003f30: JUMPDEST
00003f31: PUSH2 0x3f3c
00003f34: DUP13
00003f35: DUP4
00003f36: DUP14
00003f37: ADD
00003f38: PUSH2 0x3e97
00003f3b: JUMP
00003f3c: JUMPDEST
00003f3d: SWAP9
00003f3e: POP
00003f3f: PUSH1 0x40
00003f41: DUP12
00003f42: ADD
00003f43: CALLDATALOAD
00003f44: SWAP2
00003f45: POP
00003f46: DUP1
00003f47: DUP3
00003f48: GT
00003f49: ISZERO
00003f4a: PUSH2 0x3f51
00003f4d: JUMPI
00003f4e: PUSH0
00003f4f: DUP1
00003f50: REVERT
00003f51: JUMPDEST
00003f52: POP
00003f53: PUSH2 0x3f5e
00003f56: DUP12
00003f57: DUP3
00003f58: DUP13
00003f59: ADD
00003f5a: PUSH2 0x3e97
00003f5d: JUMP
00003f5e: JUMPDEST
00003f5f: SWAP7
00003f60: POP
00003f61: POP
00003f62: PUSH1 0x60
00003f64: DUP10
00003f65: ADD
00003f66: CALLDATALOAD
00003f67: PUSH2 0x3f6f
00003f6a: DUP2
00003f6b: PUSH2 0x3ee4
00003f6e: JUMP
00003f6f: JUMPDEST
00003f70: SWAP5
00003f71: POP
00003f72: PUSH2 0x3f7d
00003f75: PUSH1 0x80
00003f77: DUP11
00003f78: ADD
00003f79: PUSH2 0x3d21
00003f7c: JUMP
00003f7d: JUMPDEST
00003f7e: SWAP4
00003f7f: POP
00003f80: PUSH1 0xa0
00003f82: DUP10
00003f83: ADD
00003f84: CALLDATALOAD
00003f85: PUSH2 0x3f8d
00003f88: DUP2
00003f89: PUSH2 0x3c3e
00003f8c: JUMP
00003f8d: JUMPDEST
00003f8e: SWAP3
00003f8f: POP
00003f90: PUSH1 0xc0
00003f92: DUP10
00003f93: ADD
00003f94: CALLDATALOAD
00003f95: PUSH2 0x3f9d
00003f98: DUP2
00003f99: PUSH2 0x3c3e
00003f9c: JUMP
00003f9d: JUMPDEST
00003f9e: DUP1
00003f9f: SWAP3
00003fa0: POP
00003fa1: POP
00003fa2: PUSH1 0xe0
00003fa4: DUP10
00003fa5: ADD
00003fa6: CALLDATALOAD
00003fa7: SWAP1
00003fa8: POP
00003fa9: SWAP3
00003faa: SWAP6
00003fab: SWAP9
00003fac: POP
00003fad: SWAP3
00003fae: SWAP6
00003faf: SWAP9
00003fb0: SWAP1
00003fb1: SWAP4
00003fb2: SWAP7
00003fb3: POP
00003fb4: JUMP
00003fb5: JUMPDEST
00003fb6: PUSH1 0xff
00003fb8: PUSH1 0xf8
00003fba: SHL
00003fbb: DUP9
00003fbc: AND
00003fbd: DUP2
00003fbe: MSTORE
00003fbf: PUSH0
00003fc0: PUSH1 0x20
00003fc2: PUSH1 0xe0
00003fc4: PUSH1 0x20
00003fc6: DUP5
00003fc7: ADD
00003fc8: MSTORE
00003fc9: PUSH2 0x3fd5
00003fcc: PUSH1 0xe0
00003fce: DUP5
00003fcf: ADD
00003fd0: DUP11
00003fd1: PUSH2 0x383b
00003fd4: JUMP
00003fd5: JUMPDEST
00003fd6: DUP4
00003fd7: DUP2
00003fd8: SUB
00003fd9: PUSH1 0x40
00003fdb: DUP6
00003fdc: ADD
00003fdd: MSTORE
00003fde: PUSH2 0x3fe7
00003fe1: DUP2
00003fe2: DUP11
00003fe3: PUSH2 0x383b
00003fe6: JUMP
00003fe7: JUMPDEST
00003fe8: PUSH1 0x60
00003fea: DUP6
00003feb: ADD
00003fec: DUP10
00003fed: SWAP1
00003fee: MSTORE
00003fef: PUSH1 0x01
00003ff1: PUSH1 0x01
00003ff3: PUSH1 0xa0
00003ff5: SHL
00003ff6: SUB
00003ff7: DUP9
00003ff8: AND
00003ff9: PUSH1 0x80
00003ffb: DUP7
00003ffc: ADD
00003ffd: MSTORE
00003ffe: PUSH1 0xa0
00004000: DUP6
00004001: ADD
00004002: DUP8
00004003: SWAP1
00004004: MSTORE
00004005: DUP5
00004006: DUP2
00004007: SUB
00004008: PUSH1 0xc0
0000400a: DUP7
0000400b: ADD
0000400c: MSTORE
0000400d: DUP6
0000400e: MLOAD
0000400f: DUP1
00004010: DUP3
00004011: MSTORE
00004012: PUSH1 0x20
00004014: DUP1
00004015: DUP9
00004016: ADD
00004017: SWAP4
00004018: POP
00004019: SWAP1
0000401a: SWAP2
0000401b: ADD
0000401c: SWAP1
0000401d: PUSH0
0000401e: JUMPDEST
0000401f: DUP2
00004020: DUP2
00004021: LT
00004022: ISZERO
00004023: PUSH2 0x403a
00004026: JUMPI
00004027: DUP4
00004028: MLOAD
00004029: DUP4
0000402a: MSTORE
0000402b: SWAP3
0000402c: DUP5
0000402d: ADD
0000402e: SWAP3
0000402f: SWAP2
00004030: DUP5
00004031: ADD
00004032: SWAP2
00004033: PUSH1 0x01
00004035: ADD
00004036: PUSH2 0x401e
00004039: JUMP
0000403a: JUMPDEST
0000403b: POP
0000403c: SWAP1
0000403d: SWAP13
0000403e: SWAP12
0000403f: POP
00004040: POP
00004041: POP
00004042: POP
00004043: POP
00004044: POP
00004045: POP
00004046: POP
00004047: POP
00004048: POP
00004049: POP
0000404a: POP
0000404b: JUMP
0000404c: JUMPDEST
0000404d: PUSH0
0000404e: DUP1
0000404f: PUSH0
00004050: PUSH1 0x60
00004052: DUP5
00004053: DUP7
00004054: SUB
00004055: SLT
00004056: ISZERO
00004057: PUSH2 0x405e
0000405a: JUMPI
0000405b: PUSH0
0000405c: DUP1
0000405d: REVERT
0000405e: JUMPDEST
0000405f: DUP4
00004060: CALLDATALOAD
00004061: SWAP3
00004062: POP
00004063: PUSH1 0x20
00004065: DUP5
00004066: ADD
00004067: CALLDATALOAD
00004068: PUSH2 0x4070
0000406b: DUP2
0000406c: PUSH2 0x388f
0000406f: JUMP
00004070: JUMPDEST
00004071: SWAP2
00004072: POP
00004073: PUSH1 0x40
00004075: DUP5
00004076: ADD
00004077: CALLDATALOAD
00004078: PUSH2 0x3d16
0000407b: DUP2
0000407c: PUSH2 0x388f
0000407f: JUMP
00004080: JUMPDEST
00004081: PUSH0
00004082: DUP1
00004083: DUP3
00004084: DUP5
00004085: SUB
00004086: PUSH1 0x40
00004088: DUP2
00004089: SLT
0000408a: ISZERO
0000408b: PUSH2 0x4092
0000408e: JUMPI
0000408f: PUSH0
00004090: DUP1
00004091: REVERT
00004092: JUMPDEST
00004093: DUP4
00004094: CALLDATALOAD
00004095: SWAP3
00004096: POP
00004097: PUSH1 0x20
00004099: PUSH1 0x1f
0000409b: NOT
0000409c: DUP3
0000409d: ADD
0000409e: SLT
0000409f: ISZERO
000040a0: PUSH2 0x40a7
000040a3: JUMPI
000040a4: PUSH0
000040a5: DUP1
000040a6: REVERT
000040a7: JUMPDEST
000040a8: POP
000040a9: PUSH1 0x20
000040ab: DUP4
000040ac: ADD
000040ad: SWAP1
000040ae: POP
000040af: SWAP3
000040b0: POP
000040b1: SWAP3
000040b2: SWAP1
000040b3: POP
000040b4: JUMP
000040b5: JUMPDEST
000040b6: PUSH0
000040b7: DUP1
000040b8: PUSH0
000040b9: DUP1
000040ba: PUSH0
000040bb: DUP1
000040bc: PUSH0
000040bd: PUSH1 0xe0
000040bf: DUP9
000040c0: DUP11
000040c1: SUB
000040c2: SLT
000040c3: ISZERO
000040c4: PUSH2 0x40cb
000040c7: JUMPI
000040c8: PUSH0
000040c9: DUP1
000040ca: REVERT
000040cb: JUMPDEST
000040cc: DUP8
000040cd: CALLDATALOAD
000040ce: PUSH2 0x40d6
000040d1: DUP2
000040d2: PUSH2 0x388f
000040d5: JUMP
000040d6: JUMPDEST
000040d7: SWAP7
000040d8: POP
000040d9: PUSH1 0x20
000040db: DUP9
000040dc: ADD
000040dd: CALLDATALOAD
000040de: PUSH2 0x40e6
000040e1: DUP2
000040e2: PUSH2 0x388f
000040e5: JUMP
000040e6: JUMPDEST
000040e7: SWAP6
000040e8: POP
000040e9: PUSH1 0x40
000040eb: DUP9
000040ec: ADD
000040ed: CALLDATALOAD
000040ee: SWAP5
000040ef: POP
000040f0: PUSH1 0x60
000040f2: DUP9
000040f3: ADD
000040f4: CALLDATALOAD
000040f5: SWAP4
000040f6: POP
000040f7: PUSH1 0x80
000040f9: DUP9
000040fa: ADD
000040fb: CALLDATALOAD
000040fc: PUSH2 0x4104
000040ff: DUP2
00004100: PUSH2 0x3ee4
00004103: JUMP
00004104: JUMPDEST
00004105: SWAP7
00004106: SWAP10
00004107: SWAP6
00004108: SWAP9
00004109: POP
0000410a: SWAP4
0000410b: SWAP7
0000410c: SWAP3
0000410d: SWAP6
0000410e: SWAP5
0000410f: PUSH1 0xa0
00004111: DUP5
00004112: ADD
00004113: CALLDATALOAD
00004114: SWAP5
00004115: POP
00004116: PUSH1 0xc0
00004118: SWAP1
00004119: SWAP4
0000411a: ADD
0000411b: CALLDATALOAD
0000411c: SWAP3
0000411d: SWAP2
0000411e: POP
0000411f: POP
00004120: JUMP
00004121: JUMPDEST
00004122: PUSH0
00004123: DUP1
00004124: PUSH1 0x40
00004126: DUP4
00004127: DUP6
00004128: SUB
00004129: SLT
0000412a: ISZERO
0000412b: PUSH2 0x4132
0000412e: JUMPI
0000412f: PUSH0
00004130: DUP1
00004131: REVERT
00004132: JUMPDEST
00004133: DUP3
00004134: CALLDATALOAD
00004135: PUSH2 0x413d
00004138: DUP2
00004139: PUSH2 0x388f
0000413c: JUMP
0000413d: JUMPDEST
0000413e: SWAP2
0000413f: POP
00004140: PUSH1 0x20
00004142: DUP4
00004143: ADD
00004144: CALLDATALOAD
00004145: PUSH2 0x3c77
00004148: DUP2
00004149: PUSH2 0x388f
0000414c: JUMP
0000414d: JUMPDEST
0000414e: PUSH0
0000414f: PUSH1 0x20
00004151: DUP3
00004152: DUP5
00004153: SUB
00004154: SLT
00004155: ISZERO
00004156: PUSH2 0x415d
00004159: JUMPI
0000415a: PUSH0
0000415b: DUP1
0000415c: REVERT
0000415d: JUMPDEST
0000415e: POP
0000415f: MLOAD
00004160: SWAP2
00004161: SWAP1
00004162: POP
00004163: JUMP
00004164: JUMPDEST
00004165: PUSH1 0x01
00004167: DUP2
00004168: DUP2
00004169: SHR
0000416a: SWAP1
0000416b: DUP3
0000416c: AND
0000416d: DUP1
0000416e: PUSH2 0x4178
00004171: JUMPI
00004172: PUSH1 0x7f
00004174: DUP3
00004175: AND
00004176: SWAP2
00004177: POP
00004178: JUMPDEST
00004179: PUSH1 0x20
0000417b: DUP3
0000417c: LT
0000417d: DUP2
0000417e: SUB
0000417f: PUSH2 0x4196
00004182: JUMPI
00004183: PUSH4 0x4e487b71
00004188: PUSH1 0xe0
0000418a: SHL
0000418b: PUSH0
0000418c: MSTORE
0000418d: PUSH1 0x22
0000418f: PUSH1 0x04
00004191: MSTORE
00004192: PUSH1 0x24
00004194: PUSH0
00004195: REVERT
00004196: JUMPDEST
00004197: POP
00004198: SWAP2
00004199: SWAP1
0000419a: POP
0000419b: JUMP
0000419c: JUMPDEST
0000419d: PUSH4 0x4e487b71
000041a2: PUSH1 0xe0
000041a4: SHL
000041a5: PUSH0
000041a6: MSTORE
000041a7: PUSH1 0x11
000041a9: PUSH1 0x04
000041ab: MSTORE
000041ac: PUSH1 0x24
000041ae: PUSH0
000041af: REVERT
000041b0: JUMPDEST
000041b1: DUP1
000041b2: DUP3
000041b3: ADD
000041b4: DUP1
000041b5: DUP3
000041b6: GT
000041b7: ISZERO
000041b8: PUSH2 0x0eae
000041bb: JUMPI
000041bc: PUSH2 0x0eae
000041bf: PUSH2 0x419c
000041c2: JUMP
000041c3: JUMPDEST
000041c4: DUP2
000041c5: DUP4
000041c6: MSTORE
000041c7: DUP2
000041c8: DUP2
000041c9: PUSH1 0x20
000041cb: DUP6
000041cc: ADD
000041cd: CALLDATACOPY
000041ce: POP
000041cf: PUSH0
000041d0: DUP3
000041d1: DUP3
000041d2: ADD
000041d3: PUSH1 0x20
000041d5: SWAP1
000041d6: DUP2
000041d7: ADD
000041d8: SWAP2
000041d9: SWAP1
000041da: SWAP2
000041db: MSTORE
000041dc: PUSH1 0x1f
000041de: SWAP1
000041df: SWAP2
000041e0: ADD
000041e1: PUSH1 0x1f
000041e3: NOT
000041e4: AND
000041e5: SWAP1
000041e6: SWAP2
000041e7: ADD
000041e8: ADD
000041e9: SWAP1
000041ea: JUMP
000041eb: JUMPDEST
000041ec: PUSH0
000041ed: DUP4
000041ee: DUP4
000041ef: DUP6
000041f0: MSTORE
000041f1: PUSH1 0x20
000041f3: DUP1
000041f4: DUP7
000041f5: ADD
000041f6: SWAP6
000041f7: POP
000041f8: PUSH1 0x20
000041fa: DUP6
000041fb: PUSH1 0x05
000041fd: SHL
000041fe: DUP4
000041ff: ADD
00004200: ADD
00004201: DUP5
00004202: PUSH0
00004203: JUMPDEST
00004204: DUP8
00004205: DUP2
00004206: LT
00004207: ISZERO
00004208: PUSH2 0x426f
0000420b: JUMPI
0000420c: DUP5
0000420d: DUP4
0000420e: SUB
0000420f: PUSH1 0x1f
00004211: NOT
00004212: ADD
00004213: DUP10
00004214: MSTORE
00004215: DUP2
00004216: CALLDATALOAD
00004217: CALLDATASIZE
00004218: DUP9
00004219: SWAP1
0000421a: SUB
0000421b: PUSH1 0x1e
0000421d: NOT
0000421e: ADD
0000421f: DUP2
00004220: SLT
00004221: PUSH2 0x4228
00004224: JUMPI
00004225: PUSH0
00004226: DUP1
00004227: REVERT
00004228: JUMPDEST
00004229: DUP8
0000422a: ADD
0000422b: DUP5
0000422c: DUP2
0000422d: ADD
0000422e: SWAP1
0000422f: CALLDATALOAD
00004230: PUSH1 0x01
00004232: PUSH1 0x01
00004234: PUSH1 0x40
00004236: SHL
00004237: SUB
00004238: DUP2
00004239: GT
0000423a: ISZERO
0000423b: PUSH2 0x4242
0000423e: JUMPI
0000423f: PUSH0
00004240: DUP1
00004241: REVERT
00004242: JUMPDEST
00004243: DUP1
00004244: CALLDATASIZE
00004245: SUB
00004246: DUP3
00004247: SGT
00004248: ISZERO
00004249: PUSH2 0x4250
0000424c: JUMPI
0000424d: PUSH0
0000424e: DUP1
0000424f: REVERT
00004250: JUMPDEST
00004251: PUSH2 0x425b
00004254: DUP6
00004255: DUP3
00004256: DUP5
00004257: PUSH2 0x41c3
0000425a: JUMP
0000425b: JUMPDEST
0000425c: SWAP11
0000425d: DUP7
0000425e: ADD
0000425f: SWAP11
00004260: SWAP5
00004261: POP
00004262: POP
00004263: POP
00004264: SWAP1
00004265: DUP4
00004266: ADD
00004267: SWAP1
00004268: PUSH1 0x01
0000426a: ADD
0000426b: PUSH2 0x4203
0000426e: JUMP
0000426f: JUMPDEST
00004270: POP
00004271: SWAP1
00004272: SWAP8
00004273: SWAP7
00004274: POP
00004275: POP
00004276: POP
00004277: POP
00004278: POP
00004279: POP
0000427a: POP
0000427b: JUMP
0000427c: JUMPDEST
0000427d: PUSH1 0x60
0000427f: DUP1
00004280: DUP3
00004281: MSTORE
00004282: DUP2
00004283: ADD
00004284: DUP6
00004285: SWAP1
00004286: MSTORE
00004287: PUSH0
00004288: DUP7
00004289: PUSH1 0x80
0000428b: DUP4
0000428c: ADD
0000428d: DUP3
0000428e: JUMPDEST
0000428f: DUP9
00004290: DUP2
00004291: LT
00004292: ISZERO
00004293: PUSH2 0x42be
00004296: JUMPI
00004297: DUP3
00004298: CALLDATALOAD
00004299: PUSH2 0x42a1
0000429c: DUP2
0000429d: PUSH2 0x388f
000042a0: JUMP
000042a1: JUMPDEST
000042a2: PUSH1 0x01
000042a4: PUSH1 0x01
000042a6: PUSH1 0xa0
000042a8: SHL
000042a9: SUB
000042aa: AND
000042ab: DUP3
000042ac: MSTORE
000042ad: PUSH1 0x20
000042af: SWAP3
000042b0: DUP4
000042b1: ADD
000042b2: SWAP3
000042b3: SWAP1
000042b4: SWAP2
000042b5: ADD
000042b6: SWAP1
000042b7: PUSH1 0x01
000042b9: ADD
000042ba: PUSH2 0x428e
000042bd: JUMP
000042be: JUMPDEST
000042bf: POP
000042c0: PUSH1 0x20
000042c2: SWAP2
000042c3: POP
000042c4: DUP4
000042c5: DUP2
000042c6: SUB
000042c7: PUSH1 0x20
000042c9: DUP6
000042ca: ADD
000042cb: MSTORE
000042cc: DUP1
000042cd: DUP8
000042ce: MLOAD
000042cf: DUP1
000042d0: DUP4
000042d1: MSTORE
000042d2: PUSH1 0x20
000042d4: DUP4
000042d5: ADD
000042d6: SWAP2
000042d7: POP
000042d8: PUSH1 0x20
000042da: DUP10
000042db: ADD
000042dc: SWAP3
000042dd: POP
000042de: PUSH0
000042df: JUMPDEST
000042e0: DUP2
000042e1: DUP2
000042e2: LT
000042e3: ISZERO
000042e4: PUSH2 0x42fb
000042e7: JUMPI
000042e8: DUP4
000042e9: MLOAD
000042ea: DUP4
000042eb: MSTORE
000042ec: SWAP3
000042ed: DUP5
000042ee: ADD
000042ef: SWAP3
000042f0: SWAP2
000042f1: DUP5
000042f2: ADD
000042f3: SWAP2
000042f4: PUSH1 0x01
000042f6: ADD
000042f7: PUSH2 0x42df
000042fa: JUMP
000042fb: JUMPDEST
000042fc: POP
000042fd: POP
000042fe: DUP5
000042ff: DUP2
00004300: SUB
00004301: PUSH1 0x40
00004303: DUP7
00004304: ADD
00004305: MSTORE
00004306: PUSH2 0x4310
00004309: DUP2
0000430a: DUP8
0000430b: DUP10
0000430c: PUSH2 0x41eb
0000430f: JUMP
00004310: JUMPDEST
00004311: SWAP11
00004312: SWAP10
00004313: POP
00004314: POP
00004315: POP
00004316: POP
00004317: POP
00004318: POP
00004319: POP
0000431a: POP
0000431b: POP
0000431c: POP
0000431d: JUMP
0000431e: JUMPDEST
0000431f: PUSH0
00004320: PUSH1 0x20
00004322: DUP1
00004323: DUP4
00004324: DUP6
00004325: SUB
00004326: SLT
00004327: ISZERO
00004328: PUSH2 0x432f
0000432b: JUMPI
0000432c: PUSH0
0000432d: DUP1
0000432e: REVERT
0000432f: JUMPDEST
00004330: DUP3
00004331: MLOAD
00004332: PUSH1 0x01
00004334: PUSH1 0x01
00004336: PUSH1 0x40
00004338: SHL
00004339: SUB
0000433a: DUP1
0000433b: DUP3
0000433c: GT
0000433d: ISZERO
0000433e: PUSH2 0x4345
00004341: JUMPI
00004342: PUSH0
00004343: DUP1
00004344: REVERT
00004345: JUMPDEST
00004346: DUP2
00004347: DUP6
00004348: ADD
00004349: SWAP2
0000434a: POP
0000434b: DUP6
0000434c: PUSH1 0x1f
0000434e: DUP4
0000434f: ADD
00004350: SLT
00004351: PUSH2 0x4358
00004354: JUMPI
00004355: PUSH0
00004356: DUP1
00004357: REVERT
00004358: JUMPDEST
00004359: DUP2
0000435a: MLOAD
0000435b: PUSH2 0x4366
0000435e: PUSH2 0x3b27
00004361: DUP3
00004362: PUSH2 0x3a98
00004365: JUMP
00004366: JUMPDEST
00004367: DUP2
00004368: DUP2
00004369: MSTORE
0000436a: PUSH1 0x05
0000436c: SWAP2
0000436d: SWAP1
0000436e: SWAP2
0000436f: SHL
00004370: DUP4
00004371: ADD
00004372: DUP5
00004373: ADD
00004374: SWAP1
00004375: DUP5
00004376: DUP2
00004377: ADD
00004378: SWAP1
00004379: DUP9
0000437a: DUP4
0000437b: GT
0000437c: ISZERO
0000437d: PUSH2 0x4384
00004380: JUMPI
00004381: PUSH0
00004382: DUP1
00004383: REVERT
00004384: JUMPDEST
00004385: DUP6
00004386: DUP6
00004387: ADD
00004388: JUMPDEST
00004389: DUP4
0000438a: DUP2
0000438b: LT
0000438c: ISZERO
0000438d: PUSH2 0x43f2
00004390: JUMPI
00004391: DUP1
00004392: MLOAD
00004393: DUP6
00004394: DUP2
00004395: GT
00004396: ISZERO
00004397: PUSH2 0x439e
0000439a: JUMPI
0000439b: PUSH0
0000439c: DUP1
0000439d: REVERT
0000439e: JUMPDEST
0000439f: DUP7
000043a0: ADD
000043a1: PUSH1 0x3f
000043a3: DUP2
000043a4: ADD
000043a5: DUP12
000043a6: SGT
000043a7: PUSH2 0x43ae
000043aa: JUMPI
000043ab: PUSH0
000043ac: DUP1
000043ad: REVERT
000043ae: JUMPDEST
000043af: DUP8
000043b0: DUP2
000043b1: ADD
000043b2: MLOAD
000043b3: PUSH1 0x40
000043b5: PUSH2 0x43c0
000043b8: PUSH2 0x3b27
000043bb: DUP4
000043bc: PUSH2 0x3e71
000043bf: JUMP
000043c0: JUMPDEST
000043c1: DUP3
000043c2: DUP2
000043c3: MSTORE
000043c4: DUP14
000043c5: DUP3
000043c6: DUP5
000043c7: DUP7
000043c8: ADD
000043c9: ADD
000043ca: GT
000043cb: ISZERO
000043cc: PUSH2 0x43d3
000043cf: JUMPI
000043d0: PUSH0
000043d1: DUP1
000043d2: REVERT
000043d3: JUMPDEST
000043d4: PUSH2 0x43e2
000043d7: DUP4
000043d8: DUP13
000043d9: DUP4
000043da: ADD
000043db: DUP5
000043dc: DUP8
000043dd: ADD
000043de: PUSH2 0x3819
000043e1: JUMP
000043e2: JUMPDEST
000043e3: DUP7
000043e4: MSTORE
000043e5: POP
000043e6: POP
000043e7: POP
000043e8: SWAP2
000043e9: DUP7
000043ea: ADD
000043eb: SWAP2
000043ec: DUP7
000043ed: ADD
000043ee: PUSH2 0x4388
000043f1: JUMP
000043f2: JUMPDEST
000043f3: POP
000043f4: SWAP9
000043f5: SWAP8
000043f6: POP
000043f7: POP
000043f8: POP
000043f9: POP
000043fa: POP
000043fb: POP
000043fc: POP
000043fd: POP
000043fe: JUMP
000043ff: JUMPDEST
00004400: PUSH0
00004401: PUSH1 0x20
00004403: DUP3
00004404: DUP5
00004405: SUB
00004406: SLT
00004407: ISZERO
00004408: PUSH2 0x440f
0000440b: JUMPI
0000440c: PUSH0
0000440d: DUP1
0000440e: REVERT
0000440f: JUMPDEST
00004410: DUP2
00004411: MLOAD
00004412: PUSH2 0x1263
00004415: DUP2
00004416: PUSH2 0x3ee4
00004419: JUMP
0000441a: JUMPDEST
0000441b: PUSH4 0x4e487b71
00004420: PUSH1 0xe0
00004422: SHL
00004423: PUSH0
00004424: MSTORE
00004425: PUSH1 0x32
00004427: PUSH1 0x04
00004429: MSTORE
0000442a: PUSH1 0x24
0000442c: PUSH0
0000442d: REVERT
0000442e: JUMPDEST
0000442f: DUP2
00004430: DUP2
00004431: SUB
00004432: DUP2
00004433: DUP2
00004434: GT
00004435: ISZERO
00004436: PUSH2 0x0eae
00004439: JUMPI
0000443a: PUSH2 0x0eae
0000443d: PUSH2 0x419c
00004440: JUMP
00004441: JUMPDEST
00004442: PUSH0
00004443: DUP3
00004444: CALLDATALOAD
00004445: PUSH1 0x5e
00004447: NOT
00004448: DUP4
00004449: CALLDATASIZE
0000444a: SUB
0000444b: ADD
0000444c: DUP2
0000444d: SLT
0000444e: PUSH2 0x4455
00004451: JUMPI
00004452: PUSH0
00004453: DUP1
00004454: REVERT
00004455: JUMPDEST
00004456: SWAP2
00004457: SWAP1
00004458: SWAP2
00004459: ADD
0000445a: SWAP3
0000445b: SWAP2
0000445c: POP
0000445d: POP
0000445e: JUMP
0000445f: JUMPDEST
00004460: PUSH1 0x01
00004462: PUSH1 0x01
00004464: PUSH1 0xa0
00004466: SHL
00004467: SUB
00004468: SWAP4
00004469: SWAP1
0000446a: SWAP4
0000446b: AND
0000446c: DUP4
0000446d: MSTORE
0000446e: PUSH1 0x20
00004470: DUP4
00004471: ADD
00004472: SWAP2
00004473: SWAP1
00004474: SWAP2
00004475: MSTORE
00004476: PUSH1 0x40
00004478: DUP3
00004479: ADD
0000447a: MSTORE
0000447b: PUSH1 0x60
0000447d: ADD
0000447e: SWAP1
0000447f: JUMP
00004480: JUMPDEST
00004481: PUSH1 0x01
00004483: PUSH1 0x01
00004485: PUSH1 0xa0
00004487: SHL
00004488: SUB
00004489: DUP5
0000448a: AND
0000448b: DUP2
0000448c: MSTORE
0000448d: PUSH1 0x20
0000448f: DUP2
00004490: ADD
00004491: DUP4
00004492: SWAP1
00004493: MSTORE
00004494: PUSH1 0x60
00004496: DUP2
00004497: ADD
00004498: PUSH1 0x04
0000449a: DUP4
0000449b: LT
0000449c: PUSH2 0x44a7
0000449f: JUMPI
000044a0: PUSH2 0x44a7
000044a3: PUSH2 0x3900
000044a6: JUMP
000044a7: JUMPDEST
000044a8: DUP3
000044a9: PUSH1 0x40
000044ab: DUP4
000044ac: ADD
000044ad: MSTORE
000044ae: SWAP5
000044af: SWAP4
000044b0: POP
000044b1: POP
000044b2: POP
000044b3: POP
000044b4: JUMP
000044b5: JUMPDEST
000044b6: PUSH0
000044b7: DUP1
000044b8: PUSH1 0x40
000044ba: DUP4
000044bb: DUP6
000044bc: SUB
000044bd: SLT
000044be: ISZERO
000044bf: PUSH2 0x44c6
000044c2: JUMPI
000044c3: PUSH0
000044c4: DUP1
000044c5: REVERT
000044c6: JUMPDEST
000044c7: POP
000044c8: POP
000044c9: DUP1
000044ca: MLOAD
000044cb: PUSH1 0x20
000044cd: SWAP1
000044ce: SWAP2
000044cf: ADD
000044d0: MLOAD
000044d1: SWAP1
000044d2: SWAP3
000044d3: SWAP1
000044d4: SWAP2
000044d5: POP
000044d6: JUMP
000044d7: JUMPDEST
000044d8: PUSH0
000044d9: DUP1
000044da: DUP4
000044db: CALLDATALOAD
000044dc: PUSH1 0x1e
000044de: NOT
000044df: DUP5
000044e0: CALLDATASIZE
000044e1: SUB
000044e2: ADD
000044e3: DUP2
000044e4: SLT
000044e5: PUSH2 0x44ec
000044e8: JUMPI
000044e9: PUSH0
000044ea: DUP1
000044eb: REVERT
000044ec: JUMPDEST
000044ed: DUP4
000044ee: ADD
000044ef: DUP1
000044f0: CALLDATALOAD
000044f1: SWAP2
000044f2: POP
000044f3: PUSH1 0x01
000044f5: PUSH1 0x01
000044f7: PUSH1 0x40
000044f9: SHL
000044fa: SUB
000044fb: DUP3
000044fc: GT
000044fd: ISZERO
000044fe: PUSH2 0x4505
00004501: JUMPI
00004502: PUSH0
00004503: DUP1
00004504: REVERT
00004505: JUMPDEST
00004506: PUSH1 0x20
00004508: ADD
00004509: SWAP2
0000450a: POP
0000450b: PUSH1 0x05
0000450d: DUP2
0000450e: SWAP1
0000450f: SHL
00004510: CALLDATASIZE
00004511: SUB
00004512: DUP3
00004513: SGT
00004514: ISZERO
00004515: PUSH2 0x3a4d
00004518: JUMPI
00004519: PUSH0
0000451a: DUP1
0000451b: REVERT
0000451c: JUMPDEST
0000451d: JUMPDEST
0000451e: DUP2
0000451f: DUP2
00004520: LT
00004521: ISZERO
00004522: PUSH2 0x14a1
00004525: JUMPI
00004526: PUSH0
00004527: DUP2
00004528: SSTORE
00004529: PUSH1 0x01
0000452b: ADD
0000452c: PUSH2 0x451d
0000452f: JUMP
00004530: JUMPDEST
00004531: DUP1
00004532: SLOAD
00004533: PUSH0
00004534: DUP3
00004535: SSTORE
00004536: DUP1
00004537: ISZERO
00004538: PUSH2 0x14a1
0000453b: JUMPI
0000453c: DUP2
0000453d: PUSH0
0000453e: MSTORE
0000453f: PUSH1 0x20
00004541: PUSH0
00004542: KECCAK256
00004543: PUSH2 0x130b
00004546: DUP3
00004547: DUP3
00004548: ADD
00004549: DUP3
0000454a: PUSH2 0x451c
0000454d: JUMP
0000454e: JUMPDEST
0000454f: PUSH1 0x01
00004551: PUSH1 0x40
00004553: SHL
00004554: DUP3
00004555: GT
00004556: ISZERO
00004557: PUSH2 0x4562
0000455a: JUMPI
0000455b: PUSH2 0x4562
0000455e: PUSH2 0x3a54
00004561: JUMP
00004562: JUMPDEST
00004563: DUP1
00004564: SLOAD
00004565: DUP3
00004566: DUP3
00004567: SSTORE
00004568: DUP1
00004569: DUP4
0000456a: LT
0000456b: ISZERO
0000456c: PUSH2 0x130b
0000456f: JUMPI
00004570: DUP2
00004571: PUSH0
00004572: MSTORE
00004573: PUSH1 0x20
00004575: PUSH0
00004576: KECCAK256
00004577: PUSH2 0x132c
0000457a: DUP3
0000457b: DUP3
0000457c: ADD
0000457d: DUP6
0000457e: DUP4
0000457f: ADD
00004580: PUSH2 0x451c
00004583: JUMP
00004584: JUMPDEST
00004585: PUSH1 0x02
00004587: DUP2
00004588: LT
00004589: PUSH2 0x249c
0000458c: JUMPI
0000458d: PUSH0
0000458e: DUP1
0000458f: REVERT
00004590: JUMPDEST
00004591: DUP2
00004592: CALLDATALOAD
00004593: PUSH2 0x459b
00004596: DUP2
00004597: PUSH2 0x4584
0000459a: JUMP
0000459b: JUMPDEST
0000459c: PUSH1 0x02
0000459e: DUP2
0000459f: LT
000045a0: PUSH2 0x45ab
000045a3: JUMPI
000045a4: PUSH2 0x45ab
000045a7: PUSH2 0x3900
000045aa: JUMP
000045ab: JUMPDEST
000045ac: DUP2
000045ad: SLOAD
000045ae: PUSH1 0xff
000045b0: DUP3
000045b1: AND
000045b2: SWAP2
000045b3: POP
000045b4: DUP2
000045b5: PUSH1 0xff
000045b7: NOT
000045b8: DUP3
000045b9: AND
000045ba: OR
000045bb: DUP4
000045bc: SSTORE
000045bd: PUSH1 0x20
000045bf: DUP1
000045c0: DUP6
000045c1: ADD
000045c2: CALLDATALOAD
000045c3: PUSH2 0x45cb
000045c6: DUP2
000045c7: PUSH2 0x3c3e
000045ca: JUMP
000045cb: JUMPDEST
000045cc: PUSH2 0xffff
000045cf: NOT
000045d0: SWAP3
000045d1: SWAP1
000045d2: SWAP3
000045d3: AND
000045d4: SWAP1
000045d5: SWAP3
000045d6: OR
000045d7: SWAP1
000045d8: ISZERO
000045d9: ISZERO
000045da: PUSH1 0x08
000045dc: SHL
000045dd: PUSH2 0xff00
000045e0: AND
000045e1: OR
000045e2: DUP3
000045e3: SSTORE
000045e4: PUSH1 0x01
000045e6: SWAP1
000045e7: DUP2
000045e8: DUP4
000045e9: ADD
000045ea: SWAP1
000045eb: PUSH2 0x45f7
000045ee: PUSH1 0x40
000045f0: DUP7
000045f1: ADD
000045f2: DUP7
000045f3: PUSH2 0x44d7
000045f6: JUMP
000045f7: JUMPDEST
000045f8: PUSH1 0x01
000045fa: PUSH1 0x01
000045fc: PUSH1 0x40
000045fe: SHL
000045ff: SUB
00004600: DUP2
00004601: GT
00004602: ISZERO
00004603: PUSH2 0x460e
00004606: JUMPI
00004607: PUSH2 0x460e
0000460a: PUSH2 0x3a54
0000460d: JUMP
0000460e: JUMPDEST
0000460f: PUSH2 0x4618
00004612: DUP2
00004613: DUP6
00004614: PUSH2 0x454e
00004617: JUMP
00004618: JUMPDEST
00004619: PUSH0
0000461a: SWAP4
0000461b: DUP5
0000461c: MSTORE
0000461d: PUSH1 0x20
0000461f: DUP5
00004620: KECCAK256
00004621: SWAP4
00004622: JUMPDEST
00004623: DUP2
00004624: DUP2
00004625: LT
00004626: ISZERO
00004627: PUSH2 0x4644
0000462a: JUMPI
0000462b: DUP3
0000462c: CALLDATALOAD
0000462d: PUSH2 0x4635
00004630: DUP2
00004631: PUSH2 0x388f
00004634: JUMP
00004635: JUMPDEST
00004636: DUP6
00004637: DUP3
00004638: ADD
00004639: SSTORE
0000463a: SWAP2
0000463b: DUP4
0000463c: ADD
0000463d: SWAP2
0000463e: DUP6
0000463f: ADD
00004640: PUSH2 0x4622
00004643: JUMP
00004644: JUMPDEST
00004645: POP
00004646: POP
00004647: POP
00004648: POP
00004649: POP
0000464a: POP
0000464b: POP
0000464c: POP
0000464d: JUMP
0000464e: JUMPDEST
0000464f: PUSH0
00004650: DUP2
00004651: CALLDATALOAD
00004652: PUSH2 0x0eae
00004655: DUP2
00004656: PUSH2 0x388f
00004659: JUMP
0000465a: JUMPDEST
0000465b: DUP2
0000465c: CALLDATALOAD
0000465d: PUSH2 0x4665
00004660: DUP2
00004661: PUSH2 0x3c3e
00004664: JUMP
00004665: JUMPDEST
00004666: DUP2
00004667: SLOAD
00004668: SWAP1
00004669: ISZERO
0000466a: ISZERO
0000466b: PUSH1 0xff
0000466d: AND
0000466e: PUSH1 0xff
00004670: NOT
00004671: SWAP2
00004672: SWAP1
00004673: SWAP2
00004674: AND
00004675: OR
00004676: DUP2
00004677: SSTORE
00004678: PUSH1 0x01
0000467a: DUP1
0000467b: DUP3
0000467c: ADD
0000467d: PUSH1 0x20
0000467f: PUSH2 0x468a
00004682: DUP6
00004683: DUP3
00004684: ADD
00004685: DUP7
00004686: PUSH2 0x44d7
00004689: JUMP
0000468a: JUMPDEST
0000468b: PUSH1 0x01
0000468d: PUSH1 0x40
0000468f: SHL
00004690: DUP2
00004691: GT
00004692: ISZERO
00004693: PUSH2 0x469e
00004696: JUMPI
00004697: PUSH2 0x469e
0000469a: PUSH2 0x3a54
0000469d: JUMP
0000469e: JUMPDEST
0000469f: DUP4
000046a0: SLOAD
000046a1: DUP2
000046a2: DUP6
000046a3: SSTORE
000046a4: DUP1
000046a5: DUP3
000046a6: LT
000046a7: ISZERO
000046a8: PUSH2 0x4710
000046ab: JUMPI
000046ac: PUSH1 0x01
000046ae: PUSH1 0x01
000046b0: PUSH1 0xff
000046b2: SHL
000046b3: SUB
000046b4: DUP2
000046b5: DUP2
000046b6: AND
000046b7: DUP3
000046b8: EQ
000046b9: PUSH2 0x46c4
000046bc: JUMPI
000046bd: PUSH2 0x46c4
000046c0: PUSH2 0x419c
000046c3: JUMP
000046c4: JUMPDEST
000046c5: DUP1
000046c6: DUP4
000046c7: AND
000046c8: DUP4
000046c9: EQ
000046ca: PUSH2 0x46d5
000046cd: JUMPI
000046ce: PUSH2 0x46d5
000046d1: PUSH2 0x419c
000046d4: JUMP
000046d5: JUMPDEST
000046d6: POP
000046d7: DUP5
000046d8: PUSH0
000046d9: MSTORE
000046da: PUSH1 0x20
000046dc: PUSH0
000046dd: KECCAK256
000046de: DUP2
000046df: PUSH1 0x01
000046e1: SHL
000046e2: DUP2
000046e3: ADD
000046e4: DUP4
000046e5: PUSH1 0x01
000046e7: SHL
000046e8: DUP3
000046e9: ADD
000046ea: SWAP2
000046eb: POP
000046ec: JUMPDEST
000046ed: DUP1
000046ee: DUP3
000046ef: LT
000046f0: ISZERO
000046f1: PUSH2 0x470d
000046f4: JUMPI
000046f5: PUSH0
000046f6: DUP3
000046f7: SSTORE
000046f8: PUSH2 0x4702
000046fb: DUP9
000046fc: DUP4
000046fd: ADD
000046fe: PUSH2 0x4530
00004701: JUMP
00004702: JUMPDEST
00004703: PUSH1 0x02
00004705: DUP3
00004706: ADD
00004707: SWAP2
00004708: POP
00004709: PUSH2 0x46ec
0000470c: JUMP
0000470d: JUMPDEST
0000470e: POP
0000470f: POP
00004710: JUMPDEST
00004711: POP
00004712: PUSH0
00004713: SWAP4
00004714: DUP5
00004715: MSTORE
00004716: PUSH1 0x20
00004718: DUP5
00004719: KECCAK256
0000471a: SWAP4
0000471b: DUP3
0000471c: SWAP1
0000471d: JUMPDEST
0000471e: DUP3
0000471f: DUP2
00004720: LT
00004721: ISZERO
00004722: PUSH2 0x474a
00004725: JUMPI
00004726: PUSH2 0x4738
00004729: PUSH2 0x4732
0000472c: DUP4
0000472d: DUP7
0000472e: PUSH2 0x4441
00004731: JUMP
00004732: JUMPDEST
00004733: DUP8
00004734: PUSH2 0x4590
00004737: JUMP
00004738: JUMPDEST
00004739: PUSH1 0x02
0000473b: SWAP6
0000473c: SWAP1
0000473d: SWAP6
0000473e: ADD
0000473f: SWAP5
00004740: SWAP1
00004741: DUP5
00004742: ADD
00004743: SWAP1
00004744: DUP7
00004745: ADD
00004746: PUSH2 0x471d
00004749: JUMP
0000474a: JUMPDEST
0000474b: POP
0000474c: POP
0000474d: POP
0000474e: POP
0000474f: POP
00004750: POP
00004751: POP
00004752: PUSH2 0x14a1
00004755: PUSH2 0x4760
00004758: PUSH1 0x40
0000475a: DUP5
0000475b: ADD
0000475c: PUSH2 0x464e
0000475f: JUMP
00004760: JUMPDEST
00004761: PUSH1 0x02
00004763: DUP4
00004764: ADD
00004765: DUP1
00004766: SLOAD
00004767: PUSH1 0x01
00004769: PUSH1 0x01
0000476b: PUSH1 0xa0
0000476d: SHL
0000476e: SUB
0000476f: NOT
00004770: AND
00004771: PUSH1 0x01
00004773: PUSH1 0x01
00004775: PUSH1 0xa0
00004777: SHL
00004778: SUB
00004779: SWAP3
0000477a: SWAP1
0000477b: SWAP3
0000477c: AND
0000477d: SWAP2
0000477e: SWAP1
0000477f: SWAP2
00004780: OR
00004781: SWAP1
00004782: SSTORE
00004783: JUMP
00004784: JUMPDEST
00004785: PUSH0
00004786: DUP1
00004787: DUP4
00004788: CALLDATALOAD
00004789: PUSH1 0x1e
0000478b: NOT
0000478c: DUP5
0000478d: CALLDATASIZE
0000478e: SUB
0000478f: ADD
00004790: DUP2
00004791: SLT
00004792: PUSH2 0x4799
00004795: JUMPI
00004796: PUSH0
00004797: DUP1
00004798: REVERT
00004799: JUMPDEST
0000479a: DUP4
0000479b: ADD
0000479c: PUSH1 0x20
0000479e: DUP2
0000479f: ADD
000047a0: SWAP3
000047a1: POP
000047a2: CALLDATALOAD
000047a3: SWAP1
000047a4: POP
000047a5: PUSH1 0x01
000047a7: PUSH1 0x01
000047a9: PUSH1 0x40
000047ab: SHL
000047ac: SUB
000047ad: DUP2
000047ae: GT
000047af: ISZERO
000047b0: PUSH2 0x47b7
000047b3: JUMPI
000047b4: PUSH0
000047b5: DUP1
000047b6: REVERT
000047b7: JUMPDEST
000047b8: DUP1
000047b9: PUSH1 0x05
000047bb: SHL
000047bc: CALLDATASIZE
000047bd: SUB
000047be: DUP3
000047bf: SGT
000047c0: ISZERO
000047c1: PUSH2 0x3a4d
000047c4: JUMPI
000047c5: PUSH0
000047c6: DUP1
000047c7: REVERT
000047c8: JUMPDEST
000047c9: DUP1
000047ca: CALLDATALOAD
000047cb: PUSH2 0x37fb
000047ce: DUP2
000047cf: PUSH2 0x388f
000047d2: JUMP
000047d3: JUMPDEST
000047d4: PUSH0
000047d5: PUSH1 0x40
000047d7: PUSH4 0xffffffff
000047dc: PUSH1 0xe0
000047de: SHL
000047df: DUP6
000047e0: AND
000047e1: DUP4
000047e2: MSTORE
000047e3: PUSH1 0x20
000047e5: PUSH1 0x40
000047e7: DUP2
000047e8: DUP6
000047e9: ADD
000047ea: MSTORE
000047eb: PUSH1 0xa0
000047ed: DUP5
000047ee: ADD
000047ef: DUP6
000047f0: CALLDATALOAD
000047f1: PUSH2 0x47f9
000047f4: DUP2
000047f5: PUSH2 0x3c3e
000047f8: JUMP
000047f9: JUMPDEST
000047fa: ISZERO
000047fb: ISZERO
000047fc: PUSH1 0x40
000047fe: DUP7
000047ff: ADD
00004800: MSTORE
00004801: PUSH2 0x480c
00004804: DUP7
00004805: DUP4
00004806: ADD
00004807: DUP8
00004808: PUSH2 0x4784
0000480b: JUMP
0000480c: JUMPDEST
0000480d: PUSH1 0x60
0000480f: DUP1
00004810: PUSH1 0x60
00004812: DUP10
00004813: ADD
00004814: MSTORE
00004815: DUP4
00004816: DUP3
00004817: DUP6
00004818: MSTORE
00004819: PUSH1 0xc0
0000481b: DUP10
0000481c: ADD
0000481d: SWAP1
0000481e: POP
0000481f: PUSH1 0xc0
00004821: DUP4
00004822: PUSH1 0x05
00004824: SHL
00004825: DUP11
00004826: ADD
00004827: ADD
00004828: SWAP5
00004829: POP
0000482a: DUP4
0000482b: PUSH0
0000482c: JUMPDEST
0000482d: DUP5
0000482e: DUP2
0000482f: LT
00004830: ISZERO
00004831: PUSH2 0x48e3
00004834: JUMPI
00004835: DUP11
00004836: DUP8
00004837: SUB
00004838: PUSH1 0xbf
0000483a: NOT
0000483b: ADD
0000483c: DUP4
0000483d: MSTORE
0000483e: DUP2
0000483f: CALLDATALOAD
00004840: CALLDATASIZE
00004841: DUP8
00004842: SWAP1
00004843: SUB
00004844: PUSH1 0x5e
00004846: NOT
00004847: ADD
00004848: DUP2
00004849: SLT
0000484a: PUSH2 0x4851
0000484d: JUMPI
0000484e: PUSH0
0000484f: DUP1
00004850: REVERT
00004851: JUMPDEST
00004852: DUP7
00004853: ADD
00004854: DUP8
00004855: DUP6
00004856: ADD
00004857: DUP2
00004858: CALLDATALOAD
00004859: PUSH2 0x4861
0000485c: DUP2
0000485d: PUSH2 0x4584
00004860: JUMP
00004861: JUMPDEST
00004862: PUSH2 0x486b
00004865: DUP11
00004866: DUP3
00004867: PUSH2 0x3914
0000486a: JUMP
0000486b: JUMPDEST
0000486c: POP
0000486d: DUP10
0000486e: DUP3
0000486f: ADD
00004870: CALLDATALOAD
00004871: PUSH2 0x4879
00004874: DUP2
00004875: PUSH2 0x3c3e
00004878: JUMP
00004879: JUMPDEST
0000487a: ISZERO
0000487b: ISZERO
0000487c: DUP10
0000487d: DUP12
0000487e: ADD
0000487f: MSTORE
00004880: PUSH2 0x488b
00004883: DUP3
00004884: DUP13
00004885: ADD
00004886: DUP4
00004887: PUSH2 0x4784
0000488a: JUMP
0000488b: JUMPDEST
0000488c: DUP11
0000488d: DUP14
0000488e: ADD
0000488f: DUP9
00004890: SWAP1
00004891: MSTORE
00004892: SWAP2
00004893: DUP3
00004894: SWAP1
00004895: MSTORE
00004896: SWAP1
00004897: SWAP2
00004898: POP
00004899: PUSH0
0000489a: PUSH1 0x80
0000489c: DUP11
0000489d: ADD
0000489e: JUMPDEST
0000489f: DUP4
000048a0: DUP3
000048a1: LT
000048a2: ISZERO
000048a3: PUSH2 0x48ce
000048a6: JUMPI
000048a7: DUP3
000048a8: CALLDATALOAD
000048a9: PUSH2 0x48b1
000048ac: DUP2
000048ad: PUSH2 0x388f
000048b0: JUMP
000048b1: JUMPDEST
000048b2: PUSH1 0x01
000048b4: PUSH1 0x01
000048b6: PUSH1 0xa0
000048b8: SHL
000048b9: SUB
000048ba: AND
000048bb: DUP2
000048bc: MSTORE
000048bd: SWAP2
000048be: DUP12
000048bf: ADD
000048c0: SWAP2
000048c1: PUSH1 0x01
000048c3: SWAP2
000048c4: SWAP1
000048c5: SWAP2
000048c6: ADD
000048c7: SWAP1
000048c8: DUP12
000048c9: ADD
000048ca: PUSH2 0x489e
000048cd: JUMP
000048ce: JUMPDEST
000048cf: SWAP10
000048d0: POP
000048d1: POP
000048d2: POP
000048d3: SWAP3
000048d4: DUP9
000048d5: ADD
000048d6: SWAP3
000048d7: POP
000048d8: SWAP1
000048d9: DUP8
000048da: ADD
000048db: SWAP1
000048dc: PUSH1 0x01
000048de: ADD
000048df: PUSH2 0x482c
000048e2: JUMP
000048e3: JUMPDEST
000048e4: POP
000048e5: POP
000048e6: POP
000048e7: POP
000048e8: POP
000048e9: POP
000048ea: PUSH2 0x48f5
000048ed: PUSH1 0x40
000048ef: DUP8
000048f0: ADD
000048f1: PUSH2 0x47c8
000048f4: JUMP
000048f5: JUMPDEST
000048f6: PUSH1 0x01
000048f8: PUSH1 0x01
000048fa: PUSH1 0xa0
000048fc: SHL
000048fd: SUB
000048fe: DUP2
000048ff: AND
00004900: PUSH1 0x80
00004902: DUP8
00004903: ADD
00004904: MSTORE
00004905: SWAP3
00004906: POP
00004907: SWAP7
00004908: SWAP6
00004909: POP
0000490a: POP
0000490b: POP
0000490c: POP
0000490d: POP
0000490e: POP
0000490f: JUMP
00004910: JUMPDEST
00004911: DUP3
00004912: DUP2
00004913: MSTORE
00004914: PUSH1 0x40
00004916: DUP2
00004917: ADD
00004918: DUP3
00004919: CALLDATALOAD
0000491a: PUSH2 0x4922
0000491d: DUP2
0000491e: PUSH2 0x3c3e
00004921: JUMP
00004922: JUMPDEST
00004923: DUP1
00004924: ISZERO
00004925: ISZERO
00004926: PUSH1 0x20
00004928: DUP5
00004929: ADD
0000492a: MSTORE
0000492b: POP
0000492c: SWAP4
0000492d: SWAP3
0000492e: POP
0000492f: POP
00004930: POP
00004931: JUMP
00004932: JUMPDEST
00004933: PUSH4 0x4e487b71
00004938: PUSH1 0xe0
0000493a: SHL
0000493b: PUSH0
0000493c: MSTORE
0000493d: PUSH1 0x12
0000493f: PUSH1 0x04
00004941: MSTORE
00004942: PUSH1 0x24
00004944: PUSH0
00004945: REVERT
00004946: JUMPDEST
00004947: PUSH0
00004948: PUSH1 0x20
0000494a: DUP3
0000494b: DUP5
0000494c: SUB
0000494d: SLT
0000494e: ISZERO
0000494f: PUSH2 0x4956
00004952: JUMPI
00004953: PUSH0
00004954: DUP1
00004955: REVERT
00004956: JUMPDEST
00004957: DUP2
00004958: MLOAD
00004959: PUSH2 0x1263
0000495c: DUP2
0000495d: PUSH2 0x3c3e
00004960: JUMP
00004961: JUMPDEST
00004962: PUSH1 0x1f
00004964: DUP3
00004965: GT
00004966: ISZERO
00004967: PUSH2 0x130b
0000496a: JUMPI
0000496b: DUP1
0000496c: PUSH0
0000496d: MSTORE
0000496e: PUSH1 0x20
00004970: PUSH0
00004971: KECCAK256
00004972: PUSH1 0x1f
00004974: DUP5
00004975: ADD
00004976: PUSH1 0x05
00004978: SHR
00004979: DUP2
0000497a: ADD
0000497b: PUSH1 0x20
0000497d: DUP6
0000497e: LT
0000497f: ISZERO
00004980: PUSH2 0x4986
00004983: JUMPI
00004984: POP
00004985: DUP1
00004986: JUMPDEST
00004987: PUSH2 0x2b91
0000498a: PUSH1 0x1f
0000498c: DUP6
0000498d: ADD
0000498e: PUSH1 0x05
00004990: SHR
00004991: DUP4
00004992: ADD
00004993: DUP3
00004994: PUSH2 0x451c
00004997: JUMP
00004998: JUMPDEST
00004999: DUP2
0000499a: MLOAD
0000499b: PUSH1 0x01
0000499d: PUSH1 0x01
0000499f: PUSH1 0x40
000049a1: SHL
000049a2: SUB
000049a3: DUP2
000049a4: GT
000049a5: ISZERO
000049a6: PUSH2 0x49b1
000049a9: JUMPI
000049aa: PUSH2 0x49b1
000049ad: PUSH2 0x3a54
000049b0: JUMP
000049b1: JUMPDEST
000049b2: PUSH2 0x49c5
000049b5: DUP2
000049b6: PUSH2 0x49bf
000049b9: DUP5
000049ba: SLOAD
000049bb: PUSH2 0x4164
000049be: JUMP
000049bf: JUMPDEST
000049c0: DUP5
000049c1: PUSH2 0x4961
000049c4: JUMP
000049c5: JUMPDEST
000049c6: PUSH1 0x20
000049c8: DUP1
000049c9: PUSH1 0x1f
000049cb: DUP4
000049cc: GT
000049cd: PUSH1 0x01
000049cf: DUP2
000049d0: EQ
000049d1: PUSH2 0x49f8
000049d4: JUMPI
000049d5: PUSH0
000049d6: DUP5
000049d7: ISZERO
000049d8: PUSH2 0x49e1
000049db: JUMPI
000049dc: POP
000049dd: DUP6
000049de: DUP4
000049df: ADD
000049e0: MLOAD
000049e1: JUMPDEST
000049e2: PUSH0
000049e3: NOT
000049e4: PUSH1 0x03
000049e6: DUP7
000049e7: SWAP1
000049e8: SHL
000049e9: SHR
000049ea: NOT
000049eb: AND
000049ec: PUSH1 0x01
000049ee: DUP6
000049ef: SWAP1
000049f0: SHL
000049f1: OR
000049f2: DUP6
000049f3: SSTORE
000049f4: PUSH2 0x1fce
000049f7: JUMP
000049f8: JUMPDEST
000049f9: PUSH0
000049fa: DUP6
000049fb: DUP2
000049fc: MSTORE
000049fd: PUSH1 0x20
000049ff: DUP2
00004a00: KECCAK256
00004a01: PUSH1 0x1f
00004a03: NOT
00004a04: DUP7
00004a05: AND
00004a06: SWAP2
00004a07: JUMPDEST
00004a08: DUP3
00004a09: DUP2
00004a0a: LT
00004a0b: ISZERO
00004a0c: PUSH2 0x4a26
00004a0f: JUMPI
00004a10: DUP9
00004a11: DUP7
00004a12: ADD
00004a13: MLOAD
00004a14: DUP3
00004a15: SSTORE
00004a16: SWAP5
00004a17: DUP5
00004a18: ADD
00004a19: SWAP5
00004a1a: PUSH1 0x01
00004a1c: SWAP1
00004a1d: SWAP2
00004a1e: ADD
00004a1f: SWAP1
00004a20: DUP5
00004a21: ADD
00004a22: PUSH2 0x4a07
00004a25: JUMP
00004a26: JUMPDEST
00004a27: POP
00004a28: DUP6
00004a29: DUP3
00004a2a: LT
00004a2b: ISZERO
00004a2c: PUSH2 0x4a43
00004a2f: JUMPI
00004a30: DUP8
00004a31: DUP6
00004a32: ADD
00004a33: MLOAD
00004a34: PUSH0
00004a35: NOT
00004a36: PUSH1 0x03
00004a38: DUP9
00004a39: SWAP1
00004a3a: SHL
00004a3b: PUSH1 0xf8
00004a3d: AND
00004a3e: SHR
00004a3f: NOT
00004a40: AND
00004a41: DUP2
00004a42: SSTORE
00004a43: JUMPDEST
00004a44: POP
00004a45: POP
00004a46: POP
00004a47: POP
00004a48: POP
00004a49: PUSH1 0x01
00004a4b: SWAP1
00004a4c: DUP2
00004a4d: SHL
00004a4e: ADD
00004a4f: SWAP1
00004a50: SSTORE
00004a51: POP
00004a52: JUMP
00004a53: JUMPDEST
00004a54: PUSH0
00004a55: PUSH1 0xff
00004a57: DUP4
00004a58: AND
00004a59: DUP1
00004a5a: PUSH2 0x4a71
00004a5d: JUMPI
00004a5e: PUSH4 0x4e487b71
00004a63: PUSH1 0xe0
00004a65: SHL
00004a66: PUSH0
00004a67: MSTORE
00004a68: PUSH1 0x12
00004a6a: PUSH1 0x04
00004a6c: MSTORE
00004a6d: PUSH1 0x24
00004a6f: PUSH0
00004a70: REVERT
00004a71: JUMPDEST
00004a72: DUP1
00004a73: PUSH1 0xff
00004a75: DUP5
00004a76: AND
00004a77: MOD
00004a78: SWAP2
00004a79: POP
00004a7a: POP
00004a7b: SWAP3
00004a7c: SWAP2
00004a7d: POP
00004a7e: POP
00004a7f: JUMP
00004a80: JUMPDEST
00004a81: PUSH0
00004a82: DUP3
00004a83: MLOAD
00004a84: PUSH2 0x4455
00004a87: DUP2
00004a88: DUP5
00004a89: PUSH1 0x20
00004a8b: DUP8
00004a8c: ADD
00004a8d: PUSH2 0x3819
00004a90: JUMP
00004a91: INVALID
00004a92: MSTORE
00004a93: UNKNOWN(0xC6)
00004a94: ORIGIN
00004a95: SELFBALANCE
00004a96: UNKNOWN(0xE1)
00004a97: DELEGATECALL
00004a98: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d942
00004ab7: PUSH2 0xc751
00004aba: PUSH29 0xc8ff89f61c0ce93598e3c849801011dee649a6a557d100b1fadd3142ab
00004ad8: UNKNOWN(0x2A)
00004ad9: UNKNOWN(0xD7)
00004ada: CALL
00004adb: CALLER
00004adc: PUSH31 0xa4d97112bcc8337fc11ce5b20cb04ad038adf9981902dd7bc7dec4dceedda7
00004afc: PUSH22 0xe58dd541e08a116c6c53815c0bd028192f7b6268009b
00004b13: PUSH24 0x9b17422d0df92223018b32b4d1fa46e071723d6817e2486d
00004b2c: STOP
00004b2d: EXTCODESIZE
00004b2e: UNKNOWN(0xEC)
00004b2f: UNKNOWN(0xC5)
00004b30: PUSH0
00004b31: STOP
00004b32: LOG2
00004b33: PUSH5 0x6970667358
00004b39: UNKNOWN(0x22)
00004b3a: SLT
00004b3b: KECCAK256
00004b3c: CREATE
00004b3d: UNKNOWN(0xEE)
00004b3e: JUMPDEST
00004b3f: UNKNOWN(0xC4)
00004b40: SHR
00004b41: SHR
00004b42: UNKNOWN(0xB2)
00004b43: GAS
00004b44: PUSH14 0xf0bfa546aa1c105ef840b60049c9
00004b53: UNKNOWN(0xCE)
00004b54: UNKNOWN(0xE6)
00004b55: UNKNOWN(0x2F)
00004b56: SELFBALANCE
00004b57: COINBASE
00004b58: UNKNOWN(0xC6)
00004b59: UNKNOWN(0xC6)
00004b5a: PUSH28

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other slither VaultLib.processor(address[],uint256[],bytes[]) (src/library/VaultLib.sol#319-336) sends eth to arbitrary user 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "arbitrary-send-eth",
    "elements": [
        {
            "name": "processor",
            "type": "function",
            "source_mapping": {
                "lines": [
                    319,
                    320,
                    321,
                    322,
                    323,
                    324,
                    325,
                    326,
                    327,
                    328,
                    329,
                    330,
                    331,
                    332,
                    333,
                    334,
                    335,
                    336
                ],
                "start": 12206,
                "length": 706,
                "ending_column": 6,
                "is_dependency": false,
                "filename_short": "src/library/VaultLib.sol",
                "starting_column": 5,
                "filename_absolute": "/tmp/slither-vqubff6j/src/library/VaultLib.sol",
                "filename_relative": "src/library/VaultLib.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "VaultLib",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            9,
                            10,
                            11,
                            12,
                            13,
                            14,
                            15,
                            16,
                            17,
                            18,
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60,
                            61,
                            62,
                            63,
                            64,
                            65,
                            66,
                            67,
                            68,
                            69,
                            70,
                            71,
                            72,
                            73,
                            74,
                            75,
                            76,
                            77,
                            78,
                            79,
                            80,
                            81,
                            82,
                            83,
                            84,
                            85,
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95,
                            96,
                            97,
                            98,
                            99,
                            100,
                            101,
                            102,
                            103,
                            104,
                            105,
                            106,
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137,
                            138,
                            139,
                            140,
                            141,
                            142,
                            143,
                            144,
                            145,
                            146,
                            147,
                            148,
                            149,
                            150,
                            151,
                            152,
                            153,
                            154,
                            155,
                            156,
                            157,
                            158,
                            159,
                            160,
                            161,
                            162,
                            163,
                            164,
                            165,
                            166,
                            167,
                            168,
                            169,
                            170,
                            171,
                            172,
                            173,
                            174,
                            175,
                            176,
                            177,
                            178,
                            179,
                            180,
                            181,
                            182,
                            183,
                            184,
                            185,
                            186,
                            187,
                            188,
                            189,
                            190,
                            191,
                            192,
                            193,
                            194,
                            195,
                            196,
                            197,
                            198,
                            199,
                            200,
                            201,
                            202,
                            203,
                            204,
                            205,
                            206,
                            207,
                            208,
                            209,
                            210,
                            211,
                            212,
                            213,
                            214,
                            215,
                            216,
                            217,
                            218,
                            219,
                            220,
                            221,
                            222,
                            223,
                            224,
                            225,
                            226,
                            227,
                            228,
                            229,
                            230,
                            231,
                            232,
                            233,
                            234,
                            235,
                            236,
                            237,
                            238,
                            239,
                            240,
                            241,
                            242,
                            243,
                            244,
                            245,
                            246,
                            247,
                            248,
                            249,
                            250,
                            251,
                            252,
                            253,
                            254,
                            255,
                            256,
                            257,
                            258,
                            259,
                            260,
                            261,
                            262,
                            263,
                            264,
                            265,
                            266,
                            267,
                            268,
                            269,
                            270,
                            271,
                            272,
                            273,
                            274,
                            275,
                            276,
                            277,
                            278,
                            279,
                            280,
                            281,
                            282,
                            283,
                            284,
                            285,
                            286,
                            287,
                            288,
                            289,
                            290,
                            291,
                            292,
                            293,
                            294,
                            295,
                            296,
                            297,
                            298,
                            299,
                            300,
                            301,
                            302,
                            303,
                            304,
                            305,
                            306,
                            307,
                            308,
                            309,
                            310,
                            311,
                            312,
                            313,
                            314,
                            315,
                            316,
                            317,
                            318,
                            319,
                            320,
                            321,
                            322,
                            323,
                            324,
                            325,
                            326,
                            327,
                            328,
                            329,
                            330,
                            331,
                            332,
                            333,
                            334,
                            335,
                            336,
                            337
                        ],
                        "start": 261,
                        "length": 12653,
                        "ending_column": 2,
                        "is_dependency": false,
                        "filename_short": "src/library/VaultLib.sol",
                        "starting_column": 1,
                        "filename_absolute": "/tmp/slither-vqubff6j/src/library/VaultLib.sol",
                        "filename_relative": "src/library/VaultLib.sol"
                    }
                },
                "signature": "processor(address[],uint256[],bytes[])"
            }
        },
        {
            "name": "(success,returnData_) = targets[i].call{value: values[i]}(data[i])",
            "type": "node",
            "source_mapping": {
                "lines": [
                    329
                ],
                "start": 12595,
                "length": 85,
                "ending_column": 98,
                "is_dependency": false,
                "filename_short": "src/library/VaultLib.sol",
                "starting_column": 13,
                "filename_absolute": "/tmp/slither-vqubff6j/src/library/VaultLib.sol",
                "filename_relative": "src/library/VaultLib.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "processor",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            319,
                            320,
                            321,
                            322,
                            323,
                            324,
                            325,
                            326,
                            327,
                            328,
                            329,
                            330,
                            331,
                            332,
                            333,
                            334,
                            335,
                            336
                        ],
                        "start": 12206,
                        "length": 706,
                        "ending_column": 6,
                        "is_dependency": false,
                        "filename_short": "src/library/VaultLib.sol",
                        "starting_column": 5,
                        "filename_absolute": "/tmp/slither-vqubff6j/src/library/VaultLib.sol",
                        "filename_relative": "src/library/VaultLib.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "VaultLib",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    9,
                                    10,
                                    11,
                                    12,
                                    13,
                                    14,
                                    15,
                                    16,
                                    17,
                                    18,
                                    19,
                                    20,
                                    21,
                                    22,
                                    23,
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131,
                                    132,
                                    133,
                                    134,
                                    135,
                                    136,
                                    137,
                                    138,
                                    139,
                                    140,
                                    141,
                                    142,
                                    143,
                                    144,
                                    145,
                                    146,
                                    147,
                                    148,
                                    149,
                                    150,
                                    151,
                                    152,
                                    153,
                                    154,
                                    155,
                                    156,
                                    157,
                                    158,
                                    159,
                                    160,
                                    161,
                                    162,
                                    163,
                                    164,
                                    165,
                                    166,
                                    167,
                                    168,
                                    169,
                                    170,
                                    171,
                                    172,
                                    173,
                                    174,
                                    175,
                                    176,
                                    177,
                                    178,
                                    179,
                                    180,
                                    181,
                                    182,
                                    183,
                                    184,
                                    185,
                                    186,
                                    187,
                                    188,
                                    189,
                                    190,
                                    191,
                                    192,
                                    193,
                                    194,
                                    195,
                                    196,
                                    197,
                                    198,
                                    199,
                                    200,
                                    201,
                                    202,
                                    203,
                                    204,
                                    205,
                                    206,
                                    207,
                                    208,
                                    209,
                                    210,
                                    211,
                                    212,
                                    213,
                                    214,
                                    215,
                                    216,
                                    217,
                                    218,
                                    219,
                                    220,
                                    221,
                                    222,
                                    223,
                                    224,
                                    225,
                                    226,
                                    227,
                                    228,
                                    229,
                                    230,
                                    231,
                                    232,
                                    233,
                                    234,
                                    235,
                                    236,
                                    237,
                                    238,
                                    239,
                                    240,
                                    241,
                                    242,
                                    243,
                                    244,
                                    245,
                                    246,
                                    247,
                                    248,
                                    249,
                                    250,
                                    251,
                                    252,
                                    253,
                                    254,
                                    255,
                                    256,
                                    257,
                                    258,
                                    259,
                                    260,
                                    261,
                                    262,
                                    263,
                                    264,
                                    265,
                                    266,
                                    267,
                                    268,
                                    269,
                                    270,
                                    271,
                                    272,
                                    273,
                                    274,
                                    275,
                                    276,
                                    277,
                                    278,
                                    279,
                                    280,
                                    281,
                                    282,
                                    283,
                                    284,
                                    285,
                                    286,
                                    287,
                                    288,
                                    289,
                                    290,
                                    291,
                                    292,
                                    293,
                                    294,
                                    295,
                                    296,
                                    297,
                                    298,
                                    299,
                                    300,
                                    301,
                                    302,
                                    303,
                                    304,
                                    305,
                                    306,
                                    307,
                                    308,
                                    309,
                                    310,
                                    311,
                                    312,
                                    313,
                                    314,
                                    315,
                                    316,
                                    317,
                                    318,
                                    319,
                                    320,
                                    321,
                                    322,
                                    323,
                                    324,
                                    325,
                                    326,
                                    327,
                                    328,
                                    329,
                                    330,
                                    331,
                                    332,
                                    333,
                                    334,
                                    335,
                                    336,
                                    337
                                ],
                                "start": 261,
                                "length": 12653,
                                "ending_column": 2,
                                "is_dependency": false,
                                "filename_short": "src/library/VaultLib.sol",
                                "starting_column": 1,
                                "filename_absolute": "/tmp/slither-vqubff6j/src/library/VaultLib.sol",
                                "filename_relative": "src/library/VaultLib.sol"
                            }
                        },
                        "signature": "processor(address[],uint256[],bytes[])"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "src/library/VaultLib.sol",
            "name": "processor",
            "type": "function",
            "lines": [
                319,
                320,
                321,
                322,
                323,
                324,
                325,
                326,
                327,
                328,
                329,
                330,
                331,
                332,
                333,
                334,
                335,
                336
            ]
        },
        {
            "file": "src/library/VaultLib.sol",
            "name": "(success,returnData_) = targets[i].call{value: values[i]}(data[i])",
            "type": "node",
            "lines": [
                329
            ]
        }
    ],
    "description": "VaultLib.processor(address[],uint256[],bytes[]) (src/library/VaultLib.sol#319-336) sends eth to arbitrary user\n\tDangerous calls:\n\t- (success,returnData_) = targets[i].call{value: values[i]}(data[i]) (src/library/VaultLib.sol#329)"
}
high other slither TimelockController._execute(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#412-415) sends eth to arbitrary user 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "arbitrary-send-eth",
    "elements": [
        {
            "name": "_execute",
            "type": "function",
            "source_mapping": {
                "lines": [
                    412,
                    413,
                    414,
                    415
                ],
                "start": 14092,
                "length": 232,
                "ending_column": 6,
                "is_dependency": true,
                "filename_short": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                "starting_column": 5,
                "filename_absolute": "/tmp/slither-vqubff6j/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                "filename_relative": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "TimelockController",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40,
                            41,
                            42,
                            43,
                            44,
                            45,
                            46,
                            47,
                            48,
                            49,
                            50,
                            51,
                            52,
                            53,
                            54,
                            55,
                            56,
                            57,
                            58,
                            59,
                            60,
                            61,
                            62,
                            63,
                            64,
                            65,
                            66,
                            67,
                            68,
                            69,
                            70,
                            71,
                            72,
                            73,
                            74,
                            75,
                            76,
                            77,
                            78,
                            79,
                            80,
                            81,
                            82,
                            83,
                            84,
                            85,
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95,
                            96,
                            97,
                            98,
                            99,
                            100,
                            101,
                            102,
                            103,
                            104,
                            105,
                            106,
                            107,
                            108,
                            109,
                            110,
                            111,
                            112,
                            113,
                            114,
                            115,
                            116,
                            117,
                            118,
                            119,
                            120,
                            121,
                            122,
                            123,
                            124,
                            125,
                            126,
                            127,
                            128,
                            129,
                            130,
                            131,
                            132,
                            133,
                            134,
                            135,
                            136,
                            137,
                            138,
                            139,
                            140,
                            141,
                            142,
                            143,
                            144,
                            145,
                            146,
                            147,
                            148,
                            149,
                            150,
                            151,
                            152,
                            153,
                            154,
                            155,
                            156,
                            157,
                            158,
                            159,
                            160,
                            161,
                            162,
                            163,
                            164,
                            165,
                            166,
                            167,
                            168,
                            169,
                            170,
                            171,
                            172,
                            173,
                            174,
                            175,
                            176,
                            177,
                            178,
                            179,
                            180,
                            181,
                            182,
                            183,
                            184,
                            185,
                            186,
                            187,
                            188,
                            189,
                            190,
                            191,
                            192,
                            193,
                            194,
                            195,
                            196,
                            197,
                            198,
                            199,
                            200,
                            201,
                            202,
                            203,
                            204,
                            205,
                            206,
                            207,
                            208,
                            209,
                            210,
                            211,
                            212,
                            213,
                            214,
                            215,
                            216,
                            217,
                            218,
                            219,
                            220,
                            221,
                            222,
                            223,
                            224,
                            225,
                            226,
                            227,
                            228,
                            229,
                            230,
                            231,
                            232,
                            233,
                            234,
                            235,
                            236,
                            237,
                            238,
                            239,
                            240,
                            241,
                            242,
                            243,
                            244,
                            245,
                            246,
                            247,
                            248,
                            249,
                            250,
                            251,
                            252,
                            253,
                            254,
                            255,
                            256,
                            257,
                            258,
                            259,
                            260,
                            261,
                            262,
                            263,
                            264,
                            265,
                            266,
                            267,
                            268,
                            269,
                            270,
                            271,
                            272,
                            273,
                            274,
                            275,
                            276,
                            277,
                            278,
                            279,
                            280,
                            281,
                            282,
                            283,
                            284,
                            285,
                            286,
                            287,
                            288,
                            289,
                            290,
                            291,
                            292,
                            293,
                            294,
                            295,
                            296,
                            297,
                            298,
                            299,
                            300,
                            301,
                            302,
                            303,
                            304,
                            305,
                            306,
                            307,
                            308,
                            309,
                            310,
                            311,
                            312,
                            313,
                            314,
                            315,
                            316,
                            317,
                            318,
                            319,
                            320,
                            321,
                            322,
                            323,
                            324,
                            325,
                            326,
                            327,
                            328,
                            329,
                            330,
                            331,
                            332,
                            333,
                            334,
                            335,
                            336,
                            337,
                            338,
                            339,
                            340,
                            341,
                            342,
                            343,
                            344,
                            345,
                            346,
                            347,
                            348,
                            349,
                            350,
                            351,
                            352,
                            353,
                            354,
                            355,
                            356,
                            357,
                            358,
                            359,
                            360,
                            361,
                            362,
                            363,
                            364,
                            365,
                            366,
                            367,
                            368,
                            369,
                            370,
                            371,
                            372,
                            373,
                            374,
                            375,
                            376,
                            377,
                            378,
                            379,
                            380,
                            381,
                            382,
                            383,
                            384,
                            385,
                            386,
                            387,
                            388,
                            389,
                            390,
                            391,
                            392,
                            393,
                            394,
                            395,
                            396,
                            397,
                            398,
                            399,
                            400,
                            401,
                            402,
                            403,
                            404,
                            405,
                            406,
                            407,
                            408,
                            409,
                            410,
                            411,
                            412,
                            413,
                            414,
                            415,
                            416,
                            417,
                            418,
                            419,
                            420,
                            421,
                            422,
                            423,
                            424,
                            425,
                            426,
                            427,
                            428,
                            429,
                            430,
                            431,
                            432,
                            433,
                            434,
                            435,
                            436,
                            437,
                            438,
                            439,
                            440,
                            441,
                            442,
                            443,
                            444,
                            445,
                            446,
                            447,
                            448,
                            449,
                            450,
                            451,
                            452,
                            453,
                            454,
                            455,
                            456,
                            457,
                            458,
                            459,
                            460,
                            461,
                            462,
                            463,
                            464,
                            465,
                            466,
                            467,
                            468,
                            469,
                            470,
                            471,
                            472
                        ],
                        "start": 1084,
                        "length": 15205,
                        "ending_column": 2,
                        "is_dependency": true,
                        "filename_short": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                        "starting_column": 1,
                        "filename_absolute": "/tmp/slither-vqubff6j/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                        "filename_relative": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol"
                    }
                },
                "signature": "_execute(address,uint256,bytes)"
            }
        },
        {
            "name": "(success,returndata) = target.call{value: value}(data)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    413
                ],
                "start": 14189,
                "length": 73,
                "ending_column": 82,
                "is_dependency": true,
                "filename_short": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                "starting_column": 9,
                "filename_absolute": "/tmp/slither-vqubff6j/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                "filename_relative": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "_execute",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            412,
                            413,
                            414,
                            415
                        ],
                        "start": 14092,
                        "length": 232,
                        "ending_column": 6,
                        "is_dependency": true,
                        "filename_short": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                        "starting_column": 5,
                        "filename_absolute": "/tmp/slither-vqubff6j/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                        "filename_relative": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "TimelockController",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    24,
                                    25,
                                    26,
                                    27,
                                    28,
                                    29,
                                    30,
                                    31,
                                    32,
                                    33,
                                    34,
                                    35,
                                    36,
                                    37,
                                    38,
                                    39,
                                    40,
                                    41,
                                    42,
                                    43,
                                    44,
                                    45,
                                    46,
                                    47,
                                    48,
                                    49,
                                    50,
                                    51,
                                    52,
                                    53,
                                    54,
                                    55,
                                    56,
                                    57,
                                    58,
                                    59,
                                    60,
                                    61,
                                    62,
                                    63,
                                    64,
                                    65,
                                    66,
                                    67,
                                    68,
                                    69,
                                    70,
                                    71,
                                    72,
                                    73,
                                    74,
                                    75,
                                    76,
                                    77,
                                    78,
                                    79,
                                    80,
                                    81,
                                    82,
                                    83,
                                    84,
                                    85,
                                    86,
                                    87,
                                    88,
                                    89,
                                    90,
                                    91,
                                    92,
                                    93,
                                    94,
                                    95,
                                    96,
                                    97,
                                    98,
                                    99,
                                    100,
                                    101,
                                    102,
                                    103,
                                    104,
                                    105,
                                    106,
                                    107,
                                    108,
                                    109,
                                    110,
                                    111,
                                    112,
                                    113,
                                    114,
                                    115,
                                    116,
                                    117,
                                    118,
                                    119,
                                    120,
                                    121,
                                    122,
                                    123,
                                    124,
                                    125,
                                    126,
                                    127,
                                    128,
                                    129,
                                    130,
                                    131,
                                    132,
                                    133,
                                    134,
                                    135,
                                    136,
                                    137,
                                    138,
                                    139,
                                    140,
                                    141,
                                    142,
                                    143,
                                    144,
                                    145,
                                    146,
                                    147,
                                    148,
                                    149,
                                    150,
                                    151,
                                    152,
                                    153,
                                    154,
                                    155,
                                    156,
                                    157,
                                    158,
                                    159,
                                    160,
                                    161,
                                    162,
                                    163,
                                    164,
                                    165,
                                    166,
                                    167,
                                    168,
                                    169,
                                    170,
                                    171,
                                    172,
                                    173,
                                    174,
                                    175,
                                    176,
                                    177,
                                    178,
                                    179,
                                    180,
                                    181,
                                    182,
                                    183,
                                    184,
                                    185,
                                    186,
                                    187,
                                    188,
                                    189,
                                    190,
                                    191,
                                    192,
                                    193,
                                    194,
                                    195,
                                    196,
                                    197,
                                    198,
                                    199,
                                    200,
                                    201,
                                    202,
                                    203,
                                    204,
                                    205,
                                    206,
                                    207,
                                    208,
                                    209,
                                    210,
                                    211,
                                    212,
                                    213,
                                    214,
                                    215,
                                    216,
                                    217,
                                    218,
                                    219,
                                    220,
                                    221,
                                    222,
                                    223,
                                    224,
                                    225,
                                    226,
                                    227,
                                    228,
                                    229,
                                    230,
                                    231,
                                    232,
                                    233,
                                    234,
                                    235,
                                    236,
                                    237,
                                    238,
                                    239,
                                    240,
                                    241,
                                    242,
                                    243,
                                    244,
                                    245,
                                    246,
                                    247,
                                    248,
                                    249,
                                    250,
                                    251,
                                    252,
                                    253,
                                    254,
                                    255,
                                    256,
                                    257,
                                    258,
                                    259,
                                    260,
                                    261,
                                    262,
                                    263,
                                    264,
                                    265,
                                    266,
                                    267,
                                    268,
                                    269,
                                    270,
                                    271,
                                    272,
                                    273,
                                    274,
                                    275,
                                    276,
                                    277,
                                    278,
                                    279,
                                    280,
                                    281,
                                    282,
                                    283,
                                    284,
                                    285,
                                    286,
                                    287,
                                    288,
                                    289,
                                    290,
                                    291,
                                    292,
                                    293,
                                    294,
                                    295,
                                    296,
                                    297,
                                    298,
                                    299,
                                    300,
                                    301,
                                    302,
                                    303,
                                    304,
                                    305,
                                    306,
                                    307,
                                    308,
                                    309,
                                    310,
                                    311,
                                    312,
                                    313,
                                    314,
                                    315,
                                    316,
                                    317,
                                    318,
                                    319,
                                    320,
                                    321,
                                    322,
                                    323,
                                    324,
                                    325,
                                    326,
                                    327,
                                    328,
                                    329,
                                    330,
                                    331,
                                    332,
                                    333,
                                    334,
                                    335,
                                    336,
                                    337,
                                    338,
                                    339,
                                    340,
                                    341,
                                    342,
                                    343,
                                    344,
                                    345,
                                    346,
                                    347,
                                    348,
                                    349,
                                    350,
                                    351,
                                    352,
                                    353,
                                    354,
                                    355,
                                    356,
                                    357,
                                    358,
                                    359,
                                    360,
                                    361,
                                    362,
                                    363,
                                    364,
                                    365,
                                    366,
                                    367,
                                    368,
                                    369,
                                    370,
                                    371,
                                    372,
                                    373,
                                    374,
                                    375,
                                    376,
                                    377,
                                    378,
                                    379,
                                    380,
                                    381,
                                    382,
                                    383,
                                    384,
                                    385,
                                    386,
                                    387,
                                    388,
                                    389,
                                    390,
                                    391,
                                    392,
                                    393,
                                    394,
                                    395,
                                    396,
                                    397,
                                    398,
                                    399,
                                    400,
                                    401,
                                    402,
                                    403,
                                    404,
                                    405,
                                    406,
                                    407,
                                    408,
                                    409,
                                    410,
                                    411,
                                    412,
                                    413,
                                    414,
                                    415,
                                    416,
                                    417,
                                    418,
                                    419,
                                    420,
                                    421,
                                    422,
                                    423,
                                    424,
                                    425,
                                    426,
                                    427,
                                    428,
                                    429,
                                    430,
                                    431,
                                    432,
                                    433,
                                    434,
                                    435,
                                    436,
                                    437,
                                    438,
                                    439,
                                    440,
                                    441,
                                    442,
                                    443,
                                    444,
                                    445,
                                    446,
                                    447,
                                    448,
                                    449,
                                    450,
                                    451,
                                    452,
                                    453,
                                    454,
                                    455,
                                    456,
                                    457,
                                    458,
                                    459,
                                    460,
                                    461,
                                    462,
                                    463,
                                    464,
                                    465,
                                    466,
                                    467,
                                    468,
                                    469,
                                    470,
                                    471,
                                    472
                                ],
                                "start": 1084,
                                "length": 15205,
                                "ending_column": 2,
                                "is_dependency": true,
                                "filename_short": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                                "starting_column": 1,
                                "filename_absolute": "/tmp/slither-vqubff6j/lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
                                "filename_relative": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol"
                            }
                        },
                        "signature": "_execute(address,uint256,bytes)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
            "name": "_execute",
            "type": "function",
            "lines": [
                412,
                413,
                414,
                415
            ]
        },
        {
            "file": "lib/openzeppelin-contracts/contracts/governance/TimelockController.sol",
            "name": "(success,returndata) = target.call{value: value}(data)",
            "type": "node",
            "lines": [
                413
            ]
        }
    ],
    "description": "TimelockController._execute(address,uint256,bytes) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#412-415) sends eth to arbitrary user\n\tDangerous calls:\n\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/governance/TimelockController.sol#413)"
}
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0xc0950f723abeb36de24046f2cb6cd84d2ddc55de3d563c9017e9ac04c94eb60b
call_targets: 0xe46adc117d08a5bcf70cb178b239138e1526a6b6
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 2,
    "trace_id": "0xc0950f723abeb36de24046f2cb6cd84d2ddc55de3d563c9017e9ac04c94eb60b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xe46adc117d08a5bcf70cb178b239138e1526a6b6"
    ],
    "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": "0xecfe5f93",
            "selector": "0xecfe5f93",
            "calldata_variants": [
                "0xecfe5f93",
                "0xecfe5f930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xedaafe20",
            "selector": "0xedaafe20",
            "calldata_variants": [
                "0xedaafe20",
                "0xedaafe200000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4595b89",
            "selector": "0xf4595b89",
            "calldata_variants": [
                "0xf4595b89",
                "0xf4595b890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfb1bb9de",
            "selector": "0xfb1bb9de",
            "calldata_variants": [
                "0xfb1bb9de",
                "0xfb1bb9de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd905777e",
            "selector": "0xd905777e",
            "calldata_variants": [
                "0xd905777e",
                "0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3654,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 4584,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 6007,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 19092,
            "type": "tx_origin_used"
        }
    ],
    "delegatecall_count": 13,
    "untrusted_delegatecall_count": 13
}
high other codex processAccounting ignores buffer/strategy assets, enabling share price manipulation 85 no
view
evidence_json
{
    "evidence": "computeTotalAssets only sums balances held by address(this) and processAccounting overwrites totalAssets with that value.",
    "locations": [
        "src/library/VaultLib.sol:295",
        "src/library/VaultLib.sol:301",
        "src/library/VaultLib.sol:305",
        "src/BaseVault.sol:773",
        "src/BaseVault.sol:777"
    ],
    "recommendation": "Include buffer/strategy balances in computeTotalAssets (e.g., add IStrategy(buffer).totalAssets() plus any other strategy holdings) or prevent processAccounting from overwriting totalAssets while assets are held off-vault. Consider restricting processAccounting to trusted keepers if accuracy cannot be guaranteed.",
    "exploit_scenario": "If vault assets are moved into the buffer strategy (used for withdrawals), any user can call processAccounting() and force totalAssets to be recomputed from only the vault\u2019s on-contract balances. This can drop totalAssets close to zero even though assets still exist in the buffer. An attacker can then deposit a small amount and mint disproportionately many shares (since shares are priced off the deflated totalAssets). Once assets are moved back on-vault or accounting is corrected, the attacker can redeem for more assets than deposited, extracting value from existing holders. Even without profit, it can misprice shares and break maxWithdraw logic."
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xecfe5f93",
            "selector": "0xecfe5f93",
            "calldata_variants": [
                "0xecfe5f93",
                "0xecfe5f930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xedaafe20",
            "selector": "0xedaafe20",
            "calldata_variants": [
                "0xedaafe20",
                "0xedaafe200000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4595b89",
            "selector": "0xf4595b89",
            "calldata_variants": [
                "0xf4595b89",
                "0xf4595b890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfb1bb9de",
            "selector": "0xfb1bb9de",
            "calldata_variants": [
                "0xfb1bb9de",
                "0xfb1bb9de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd905777e",
            "selector": "0xd905777e",
            "calldata_variants": [
                "0xd905777e",
                "0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 19092,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x98ae8626027e89b214b28b21375221cb81aba6da3e19e7f706feac527676638c
call_targets: 0xc1c5b18774d0282949331b719b5ea4a21cbc62c8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x98ae8626027e89b214b28b21375221cb81aba6da3e19e7f706feac527676638c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc1c5b18774d0282949331b719b5ea4a21cbc62c8"
    ],
    "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": "0xecfe5f93",
            "selector": "0xecfe5f93",
            "calldata_variants": [
                "0xecfe5f93",
                "0xecfe5f930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xedaafe20",
            "selector": "0xedaafe20",
            "calldata_variants": [
                "0xedaafe20",
                "0xedaafe200000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4595b89",
            "selector": "0xf4595b89",
            "calldata_variants": [
                "0xf4595b89",
                "0xf4595b890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfb1bb9de",
            "selector": "0xfb1bb9de",
            "calldata_variants": [
                "0xfb1bb9de",
                "0xfb1bb9de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd905777e",
            "selector": "0xd905777e",
            "calldata_variants": [
                "0xd905777e",
                "0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 11594,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 14113,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 19162,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 19092,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x8792bcc129c3a27a904ff1edfdbc1dc50a104000f1d6a19a3bd60ee268c48b36
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x8792bcc129c3a27a904ff1edfdbc1dc50a104000f1d6a19a3bd60ee268c48b36",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xecfe5f93",
            "selector": "0xecfe5f93",
            "calldata_variants": [
                "0xecfe5f93",
                "0xecfe5f930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xedaafe20",
            "selector": "0xedaafe20",
            "calldata_variants": [
                "0xedaafe20",
                "0xedaafe200000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4595b89",
            "selector": "0xf4595b89",
            "calldata_variants": [
                "0xf4595b89",
                "0xf4595b890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfb1bb9de",
            "selector": "0xfb1bb9de",
            "calldata_variants": [
                "0xfb1bb9de",
                "0xfb1bb9de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd905777e",
            "selector": "0xd905777e",
            "calldata_variants": [
                "0xd905777e",
                "0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 13
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x98ae8626027e89b214b28b21375221cb81aba6da3e19e7f706feac527676638c
call_targets: 0xc1c5b18774d0282949331b719b5ea4a21cbc62c8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x98ae8626027e89b214b28b21375221cb81aba6da3e19e7f706feac527676638c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc1c5b18774d0282949331b719b5ea4a21cbc62c8"
    ],
    "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": "0xecfe5f93",
            "selector": "0xecfe5f93",
            "calldata_variants": [
                "0xecfe5f93",
                "0xecfe5f930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xedaafe20",
            "selector": "0xedaafe20",
            "calldata_variants": [
                "0xedaafe20",
                "0xedaafe200000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf4595b89",
            "selector": "0xf4595b89",
            "calldata_variants": [
                "0xf4595b89",
                "0xf4595b890000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfb1bb9de",
            "selector": "0xfb1bb9de",
            "calldata_variants": [
                "0xfb1bb9de",
                "0xfb1bb9de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd905777e",
            "selector": "0xd905777e",
            "calldata_variants": [
                "0xd905777e",
                "0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe63ab1e9",
            "selector": "0xe63ab1e9",
            "calldata_variants": [
                "0xe63ab1e9",
                "0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 11594,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 14113,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 19162,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 19092,
            "type": "tx_origin_used"
        }
    ]
}
medium oracle codex Share pricing fully trusts provider rates without validation or staleness checks 75 no
view
evidence_json
{
    "evidence": "Rates are pulled from IProvider with no validation and used directly in conversions that determine share pricing.",
    "locations": [
        "src/library/VaultLib.sol:177",
        "src/library/VaultLib.sol:189",
        "src/library/VaultLib.sol:248"
    ],
    "recommendation": "Use robust oracles (TWAP/Chainlink), add staleness and bounds checks, and consider restricting processAccounting to trusted keepers or validating rates before accepting them. Revert on zero or out-of-range rates.",
    "exploit_scenario": "convertAssetToBase/convertBaseToAsset use IProvider.getRate(asset_) directly. If the provider source can be manipulated (e.g., DEX spot price, stale oracle, or malicious provider), an attacker can skew the rate, call processAccounting or deposit/redeem, minting shares at an inflated rate or redeeming at a deflated rate and draining value. Because processAccounting is public, attackers can time the update to the manipulated rate themselves."
}
low other codex Fee-on-transfer tokens can inflate shares and totalAssets 65 no
view
evidence_json
{
    "evidence": "_deposit updates accounting and mints shares before verifying actual tokens received.",
    "locations": [
        "src/BaseVault.sol:458",
        "src/BaseVault.sol:470",
        "src/BaseVault.sol:472",
        "src/BaseVault.sol:473"
    ],
    "recommendation": "Either disallow fee-on-transfer/rebasing assets explicitly or compute actual received amount by checking balanceBefore/balanceAfter and base share minting on the received amount.",
    "exploit_scenario": "_deposit mints shares and increments totalAssets using the requested assets amount, then calls transferFrom. For fee-on-transfer/deflationary tokens, the vault receives fewer tokens than assets, but still mints full shares and records full baseAssets. A user can deposit such a token to mint excess shares, then redeem for more value than actually deposited, diluting existing holders."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
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": 6
}