019c0ea9-0807-7299-8f6d-534b44f85048
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 41732 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 41733 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 41734 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 41735 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 41736 | capability.graph | complete | 1 / 3 | 2 months ago |
| 41737 | detector.run | complete | 1 / 3 | 2 months ago |
| 41738 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42308 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42309 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-rf4zmzd0)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-rf4zmzd0)
Contract locking ether found:
Contract SPLIT (contracts/Contract.sol#661-1136) has payable functions:
- SPLIT.receive() (contracts/Contract.sol#1136)
But does not have a function to withdraw the ether
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#contracts-that-lock-ether
Reentrancy in SPLIT._transfer(address,address,uint256) (contracts/Contract.sol#876-914):
External calls:
- _rewardLiquidityProviders(contractTokenBalance) (contracts/Contract.sol#907)
- IUniswapV2Pair(uniswapV2Pair).sync() (contracts/Contract.sol#1041-1043)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _burnFee = _previousBurnFee (contracts/Contract.sol#1072-1073)
- _burnFee = 0 (contracts/Contract.sol#1068)
SPLIT._burnFee (contracts/Contract.sol#712) can be used in cross function reentrancies:
- SPLIT._burnFee (contracts/Contract.sol#712)
- SPLIT.calculateBurnFee(uint256) (contracts/Contract.sol#1051-1054)
- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)
- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)
- SPLIT.setBurnFeePercent(uint256) (contracts/Contract.sol#1095-1096)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _devRewardFee = _previousDevRewardFee (contracts/Contract.sol#1077)
- _devRewardFee = 0 (contracts/Contract.sol#1068-1071)
SPLIT._devRewardFee (contracts/Contract.sol#717) can be used in cross function reentrancies:
- SPLIT._devRewardFee (contracts/Contract.sol#717)
- SPLIT.calculateDevRewardFee(uint256) (contracts/Contract.sol#1058-1063)
- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)
- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)
- SPLIT.setDevRewardFeePercent(uint256) (contracts/Contract.sol#1100-1105)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _lpRewardFee = _previousLpRewardFee (contracts/Contract.sol#1073-1077)
- _lpRewardFee = 0 (contracts/Contract.sol#1068)
SPLIT._lpRewardFee (contracts/Contract.sol#713-715) can be used in cross function reentrancies:
- SPLIT._lpRewardFee (contracts/Contract.sol#713-715)
- SPLIT.calculateLpRewardFee(uint256) (contracts/Contract.sol#1054-1058)
- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)
- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)
- SPLIT.setLpRewardFeePercent(uint256) (contracts/Contract.sol#1096-1100)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _previousBurnFee = _burnFee (contracts/Contract.sol#1065-1066)
SPLIT._previousBurnFee (contracts/Contract.sol#712-713) can be used in cross function reentrancies:
- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)
- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _previousDevRewardFee = _devRewardFee (contracts/Contract.sol#1067)
SPLIT._previousDevRewardFee (contracts/Contract.sol#717-720) can be used in cross function reentrancies:
- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)
- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _previousLpRewardFee = _lpRewardFee (contracts/Contract.sol#1066-1067)
SPLIT._previousLpRewardFee (contracts/Contract.sol#715-716) can be used in cross function reentrancies:
- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)
- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _previousTaxFee = _taxFee (contracts/Contract.sol#1065)
SPLIT._previousTaxFee (contracts/Contract.sol#709-711) can be used in cross function reentrancies:
- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)
- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (contracts/Contract.sol#1027-1029)
- _rOwned[sender] = _rOwned[sender].sub(rValues.rAmount) (contracts/Contract.sol#940-941)
- _rOwned[sender] = _rOwned[sender].sub(rValues.rAmount) (contracts/Contract.sol#950-951)
- _rOwned[sender] = _rOwned[sender].sub(rValues.rAmount) (contracts/Contract.sol#975)
- _rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount) (contracts/Contract.sol#942-944)
- _rOwned[sender] = _rOwned[sender].sub(rValues.rAmount) (contracts/Contract.sol#965-966)
- _rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount) (contracts/Contract.sol#953-957)
- _rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount) (contracts/Contract.sol#966-969)
- _rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount) (contracts/Contract.sol#979)
- _rOwned[owner()] = _rOwned[owner()].add(rDevRewards) (contracts/Contract.sol#1035-1036)
SPLIT._rOwned (contracts/Contract.sol#678-680) can be used in cross function reentrancies:
- SPLIT._getCurrentSupply() (contracts/Contract.sol#1014-1024)
- SPLIT._takeLpAndDevRewards(uint256,uint256) (contracts/Contract.sol#1024-1038)
- SPLIT._transferBothExcluded(address,address,uint256) (contracts/Contract.sol#972-983)
- SPLIT._transferFromExcluded(address,address,uint256) (contracts/Contract.sol#962-972)
- SPLIT._transferStandard(address,address,uint256) (contracts/Contract.sol#936-947)
- SPLIT._transferToExcluded(address,address,uint256) (contracts/Contract.sol#948-962)
- SPLIT.balanceOf(address) (contracts/Contract.sol#769-775)
- SPLIT.constructor() (contracts/Contract.sol#742-761)
- SPLIT.deliver(uint256) (contracts/Contract.sol#820-829)
- SPLIT.excludeFromReward(address) (contracts/Contract.sol#848-856)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _rTotal = _rTotal.sub(rFee).sub(rBurn) (contracts/Contract.sol#984)
SPLIT._rTotal (contracts/Contract.sol#696-700) can be used in cross function reentrancies:
- SPLIT._getCurrentSupply() (contracts/Contract.sol#1014-1024)
- SPLIT._reflectFee(uint256,uint256,uint256,uint256) (contracts/Contract.sol#983-986)
- SPLIT.constructor() (contracts/Contract.sol#742-761)
- SPLIT.deliver(uint256) (contracts/Contract.sol#820-829)
- SPLIT.tokenFromReflection(uint256) (contracts/Contract.sol#841-848)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _tBurnTotal = _tBurnTotal.add(tBurn) (contracts/Contract.sol#985)
SPLIT._tBurnTotal (contracts/Contract.sol#702) can be used in cross function reentrancies:
- SPLIT._reflectFee(uint256,uint256,uint256,uint256) (contracts/Contract.sol#983-986)
- SPLIT.totalBurn() (contracts/Contract.sol#819-820)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _tFeeTotal = _tFeeTotal.add(tFee) (contracts/Contract.sol#985)
SPLIT._tFeeTotal (contracts/Contract.sol#700-701) can be used in cross function reentrancies:
- SPLIT._reflectFee(uint256,uint256,uint256,uint256) (contracts/Contract.sol#983-986)
- SPLIT.deliver(uint256) (contracts/Contract.sol#820-829)
- SPLIT.totalFees() (contracts/Contract.sol#818-819)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (contracts/Contract.sol#965)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (contracts/Contract.sol#974-975)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (contracts/Contract.sol#1030-1031)
- _tOwned[recipient] = _tOwned[recipient].add(tValues.tTransferAmount) (contracts/Contract.sol#951-953)
- _tOwned[recipient] = _tOwned[recipient].add(tValues.tTransferAmount) (contracts/Contract.sol#976-977)
- _tOwned[owner()] = _tOwned[owner()].add(tDevRewards) (contracts/Contract.sol#1037-1038)
SPLIT._tOwned (contracts/Contract.sol#680-681) can be used in cross function reentrancies:
- SPLIT._getCurrentSupply() (contracts/Contract.sol#1014-1024)
- SPLIT._takeLpAndDevRewards(uint256,uint256) (contracts/Contract.sol#1024-1038)
- SPLIT._transferBothExcluded(address,address,uint256) (contracts/Contract.sol#972-983)
- SPLIT._transferFromExcluded(address,address,uint256) (contracts/Contract.sol#962-972)
- SPLIT._transferToExcluded(address,address,uint256) (contracts/Contract.sol#948-962)
- SPLIT.balanceOf(address) (contracts/Contract.sol#769-775)
- SPLIT.excludeFromReward(address) (contracts/Contract.sol#848-856)
- SPLIT.includeInReward(address) (contracts/Contract.sol#856-870)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _tTotal = _tTotal.sub(tBurn) (contracts/Contract.sol#986)
SPLIT._tTotal (contracts/Contract.sol#695-696) can be used in cross function reentrancies:
- SPLIT._getCurrentSupply() (contracts/Contract.sol#1014-1024)
- SPLIT._reflectFee(uint256,uint256,uint256,uint256) (contracts/Contract.sol#983-986)
- SPLIT.constructor() (contracts/Contract.sol#742-761)
- SPLIT.reflectionFromToken(uint256,bool) (contracts/Contract.sol#829-841)
- SPLIT.setMaxTxPercent(uint256,uint256) (contracts/Contract.sol#1105-1112)
- SPLIT.setMinTokensBeforeSwapPercent(uint256,uint256) (contracts/Contract.sol#1113-1124)
- SPLIT.totalSupply() (contracts/Contract.sol#768-769)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- _taxFee = _previousTaxFee (contracts/Contract.sol#1071-1072)
- _taxFee = 0 (contracts/Contract.sol#1067)
SPLIT._taxFee (contracts/Contract.sol#708) can be used in cross function reentrancies:
- SPLIT._taxFee (contracts/Contract.sol#708)
- SPLIT.calculateTaxFee(uint256) (contracts/Contract.sol#1047-1051)
- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)
- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)
- SPLIT.setTaxFeePercent(uint256) (contracts/Contract.sol#1090-1095)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1
SPLIT.allowance(address,address).owner (contracts/Contract.sol#779) shadows:
- Ownable.owner() (contracts/Contract.sol#404-406) (function)
SPLIT._approve(address,address,uint256).owner (contracts/Contract.sol#871) shadows:
- Ownable.owner() (contracts/Contract.sol#404-406) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
SPLIT.setTaxFeePercent(uint256) (contracts/Contract.sol#1090-1095) should emit an event for:
- _taxFee = taxFee (contracts/Contract.sol#1092-1095)
SPLIT.setBurnFeePercent(uint256) (contracts/Contract.sol#1095-1096) should emit an event for:
- _burnFee = burnFee (contracts/Contract.sol#1096)
SPLIT.setLpRewardFeePercent(uint256) (contracts/Contract.sol#1096-1100) should emit an event for:
- _lpRewardFee = lpRewardFee (contracts/Contract.sol#1099-1100)
SPLIT.setDevRewardFeePercent(uint256) (contracts/Contract.sol#1100-1105) should emit an event for:
- _devRewardFee = devRewardFee (contracts/Contract.sol#1103-1105)
SPLIT.setMaxTxPercent(uint256,uint256) (contracts/Contract.sol#1105-1112) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(10 ** (uint256(maxTxDecimals) + 2)) (contracts/Contract.sol#1110-1112)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-events-arithmetic
Reentrancy in SPLIT._rewardLiquidityProviders(uint256) (contracts/Contract.sol#1039-1047):
External calls:
- IUniswapV2Pair(uniswapV2Pair).sync() (contracts/Contract.sol#1041-1043)
State variables written after the call(s):
- totalLiquidityProviderRewards = totalLiquidityProviderRewards.add(liquidityRewards) (contracts/Contract.sol#1043-1044)
Reentrancy in SPLIT.transferFrom(address,address,uint256) (contracts/Contract.sol#792-801):
External calls:
- _transfer(sender,recipient,amount) (contracts/Contract.sol#798)
- IUniswapV2Pair(uniswapV2Pair).sync() (contracts/Contract.sol#1041-1043)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (contracts/Contract.sol#798-800)
- _allowances[owner][spender] = amount (contracts/Contract.sol#874)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2
Reentrancy in SPLIT._rewardLiquidityProviders(uint256) (contracts/Contract.sol#1039-1047):
External calls:
- IUniswapV2Pair(uniswapV2Pair).sync() (contracts/Contract.sol#1041-1043)
Event emitted after the call(s):
- LiquidityProvidersRewarded(liquidityRewards) (contracts/Contract.sol#1046-1047)
Reentrancy in SPLIT._transfer(address,address,uint256) (contracts/Contract.sol#876-914):
External calls:
- _rewardLiquidityProviders(contractTokenBalance) (contracts/Contract.sol#907)
- IUniswapV2Pair(uniswapV2Pair).sync() (contracts/Contract.sol#1041-1043)
Event emitted after the call(s):
- Transfer(sender,recipient,tValues.tTransferAmount) (contracts/Contract.sol#946-947)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- Transfer(sender,recipient,tValues.tTransferAmount) (contracts/Contract.sol#961-962)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- Transfer(sender,recipient,tValues.tTransferAmount) (contracts/Contract.sol#971-972)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
- Transfer(sender,recipient,tValues.tTransferAmount) (contracts/Contract.sol#982)
- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)
Reentrancy in SPLIT.transferFrom(address,address,uint256) (contracts/Contract.sol#792-801):
External calls:
- _transfer(sender,recipient,amount) (contracts/Contract.sol#798)
- IUniswapV2Pair(uniswapV2Pair).sync() (contracts/Contract.sol#1041-1043)
Event emitted after the call(s):
- Approval(owner,spender,amount) (contracts/Contract.sol#874-876)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (contracts/Contract.sol#798-800)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
Ownable.unlock() (contracts/Contract.sol#450-459) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now > _lockTime,Contract is locked until 7 days) (contracts/Contract.sol#456-457)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
Address.isContract(address) (contracts/Contract.sol#261-275) uses assembly
- INLINE ASM (contracts/Contract.sol#272-273)
Address._functionCallWithValue(address,bytes,uint256,string) (contracts/Contract.sol#356-373) uses assembly
- INLINE ASM (contracts/Contract.sol#367-371)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
SPLIT.includeInReward(address) (contracts/Contract.sol#856-870) has costly operations inside a loop:
- _excluded.pop() (contracts/Contract.sol#867-868)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#costly-operations-inside-a-loop
Context._msgData() (contracts/Contract.sol#8-12) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
SPLIT._rTotal (contracts/Contract.sol#696-700) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
SPLIT._previousTaxFee (contracts/Contract.sol#709-711) is set pre-construction with a non-constant function or state variable:
- _taxFee
SPLIT._previousBurnFee (contracts/Contract.sol#712-713) is set pre-construction with a non-constant function or state variable:
- _burnFee
SPLIT._previousLpRewardFee (contracts/Contract.sol#715-716) is set pre-construction with a non-constant function or state variable:
- _lpRewardFee
SPLIT._previousDevRewardFee (contracts/Contract.sol#717-720) is set pre-construction with a non-constant function or state variable:
- _devRewardFee
SPLIT._maxTxAmount (contracts/Contract.sol#720-721) is set pre-construction with a non-constant function or state variable:
- _tTotal
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#function-initializing-state
Version constraint ^0.6.12 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup.
It is used by:
- ^0.6.12 (contracts/Contract.sol#2-3)
solc-0.6.12 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in Address.sendValue(address,uint256) (contracts/Contract.sol#292-298):
- (success,None) = recipient.call{value: amount}() (contracts/Contract.sol#295-297)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (contracts/Contract.sol#356-373):
- (success,returndata) = target.call{value: weiValue}(data) (contracts/Contract.sol#360-363)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (contracts/Contract.sol#500-501) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (contracts/Contract.sol#501-502) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (contracts/Contract.sol#513) is not in mixedCase
Function IUniswapV2Router01.WETH() (contracts/Contract.sol#534) is not in mixedCase
Parameter SPLIT.calculateTaxFee(uint256)._amount (contracts/Contract.sol#1048) is not in mixedCase
Parameter SPLIT.calculateBurnFee(uint256)._amount (contracts/Contract.sol#1052) is not in mixedCase
Parameter SPLIT.calculateLpRewardFee(uint256)._amount (contracts/Contract.sol#1054-1055) is not in mixedCase
Parameter SPLIT.calculateDevRewardFee(uint256)._amount (contracts/Contract.sol#1058-1059) is not in mixedCase
Parameter SPLIT.setMinTokensBeforeSwapPercent(uint256,uint256)._minTokensBeforeRewardPercent (contracts/Contract.sol#1113-1116) is not in mixedCase
Parameter SPLIT.setMinTokensBeforeSwapPercent(uint256,uint256)._minTokensBeforeRewardDecimal (contracts/Contract.sol#1116) is not in mixedCase
Parameter SPLIT.setLpRewardEnabled(bool)._enabled (contracts/Contract.sol#1125) is not in mixedCase
Variable SPLIT._taxFee (contracts/Contract.sol#708) is not in mixedCase
Variable SPLIT._burnFee (contracts/Contract.sol#712) is not in mixedCase
Variable SPLIT._lpRewardFee (contracts/Contract.sol#713-715) is not in mixedCase
Variable SPLIT._devRewardFee (contracts/Contract.sol#717) is not in mixedCase
Variable SPLIT._maxTxAmount (contracts/Contract.sol#720-721) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
Redundant expression "this (contracts/Contract.sol#10-11)" inContext (contracts/Contract.sol#3-12)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements
Loop condition i < _excluded.length (contracts/Contract.sol#1017) should use cached array length instead of referencing `length` member of the storage array.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#cache-array-length
SPLIT._decimals (contracts/Contract.sol#706-707) should be constant
SPLIT._name (contracts/Contract.sol#703-704) should be constant
SPLIT._symbol (contracts/Contract.sol#704-705) should be constant
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant
. analyzed (10 contracts with 100 detectors), 50 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.6.12",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.6.12",
"install_stderr": null,
"install_stdout": "Version '0.6.12' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-rf4zmzd0 --allow-paths /tmp/slither-rf4zmzd0,/tmp/slither-rf4zmzd0/lib,/tmp/slither-rf4zmzd0/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 50,
"workspace_hash": "20af13b7fe3cddd1ab952f823e8d3316ac69a18df294e45a0764144626de4755",
"duration_seconds": 3.0761258602142334,
"solc_version_requested": "0.6.12"
}
{"no_findings":false,"summary":"Two owner-controlled controls can be abused to freeze trading or confiscate value by setting extreme fees.","findings":[{"severity":"medium","category":"access_control","title":"Owner can set arbitrary fee percentages, enabling confiscation or transfer DoS","exploit_scenario":"The owner can set dev/burn/lp/tax fees to any value. Setting dev fee to 100% routes all transfer value to the owner; setting cumulative fees >100% causes transfers to revert, effectively freezing trading. Either behavior can be used to create a honeypot or rug pull after users buy.","recommendation":"Add caps and/or enforce an upper bound on total fees (e.g., <=10–20%). Consider a timelock on fee changes or permanently renouncing fee-setting after launch.","evidence":"Fee setters have no bounds or invariants on total fees.","locations":["contracts/Contract.sol:1128","contracts/Contract.sol:1132","contracts/Contract.sol:1136","contracts/Contract.sol:1140"]},{"severity":"low","category":"access_control","title":"Owner-controlled transfer lock can freeze user transfers while owner remains exempt","exploit_scenario":"`isTransferLocked` starts true and can be toggled by the owner at any time. Because transfers are allowed when the sender is excluded from fees, the owner can keep trading locked for users while still moving tokens (or unlock/lock around critical moments), effectively freezing exits.","recommendation":"Make the lock one-time/unsettable after launch, or remove the fee-exclusion bypass for the lock. Consider a timelock or a publicly verifiable unlock schedule.","evidence":"Transfers require `!isTransferLocked || _isExcludedFromFee[from]`, and only the owner can change the lock state.","locations":["contracts/Contract.sol:752","contracts/Contract.sol:906","contracts/Contract.sol:1162"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-ni3xq7g0
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f07-6cc1-7442-bf71-ee82c77228fb
--------
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
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-ni3xq7g0 succeeded in 6ms:
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: contracts/Contract.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.12;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
exec
/bin/bash -lc 'rg -n "setTaxFeePercent|setBurnFeePercent|setLpRewardFeePercent|setDevRewardFeePercent|setIsTransferLocked" contracts/Contract.sol' in /tmp/codex-ni3xq7g0 succeeded in 20ms:
1128: function setTaxFeePercent(uint256 taxFee) external onlyOwner() {
1132: function setBurnFeePercent(uint256 burnFee) external onlyOwner() {
1136: function setLpRewardFeePercent(uint256 lpRewardFee) external onlyOwner() {
1140: function setDevRewardFeePercent(uint256 devRewardFee) external onlyOwner() {
1162: function setIsTransferLocked(bool enabled) public onlyOwner {
exec
/bin/bash -lc 'rg -n "isTransferLocked" contracts/Contract.sol' in /tmp/codex-ni3xq7g0 succeeded in 6ms:
752: bool public isTransferLocked = true;
906: require(!isTransferLocked || _isExcludedFromFee[from], "Transfer is locked before presale is completed.");
1163: isTransferLocked = enabled;
codex
{"no_findings":false,"summary":"Two owner-controlled controls can be abused to freeze trading or confiscate value by setting extreme fees.","findings":[{"severity":"medium","category":"access_control","title":"Owner can set arbitrary fee percentages, enabling confiscation or transfer DoS","exploit_scenario":"The owner can set dev/burn/lp/tax fees to any value. Setting dev fee to 100% routes all transfer value to the owner; setting cumulative fees >100% causes transfers to revert, effectively freezing trading. Either behavior can be used to create a honeypot or rug pull after users buy.","recommendation":"Add caps and/or enforce an upper bound on total fees (e.g., <=10–20%). Consider a timelock on fee changes or permanently renouncing fee-setting after launch.","evidence":"Fee setters have no bounds or invariants on total fees.","locations":["contracts/Contract.sol:1128","contracts/Contract.sol:1132","contracts/Contract.sol:1136","contracts/Contract.sol:1140"]},{"severity":"low","category":"access_control","title":"Owner-controlled transfer lock can freeze user transfers while owner remains exempt","exploit_scenario":"`isTransferLocked` starts true and can be toggled by the owner at any time. Because transfers are allowed when the sender is excluded from fees, the owner can keep trading locked for users while still moving tokens (or unlock/lock around critical moments), effectively freezing exits.","recommendation":"Make the lock one-time/unsettable after launch, or remove the fee-exclusion bypass for the lock. Consider a timelock or a publicly verifiable unlock schedule.","evidence":"Transfers require `!isTransferLocked || _isExcludedFromFee[from]`, and only the owner can change the lock state.","locations":["contracts/Contract.sol:752","contracts/Contract.sol:906","contracts/Contract.sol:1162"]}]}
tokens used
22,177
{
"codex": {
"ran_at": "2026-01-30T13:13:30.187096+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Two owner-controlled controls can be abused to freeze trading or confiscate value by setting extreme fees.",
"raw_final": {
"summary": "Two owner-controlled controls can be abused to freeze trading or confiscate value by setting extreme fees.",
"findings": [
{
"title": "Owner can set arbitrary fee percentages, enabling confiscation or transfer DoS",
"category": "access_control",
"evidence": "Fee setters have no bounds or invariants on total fees.",
"severity": "medium",
"locations": [
"contracts/Contract.sol:1128",
"contracts/Contract.sol:1132",
"contracts/Contract.sol:1136",
"contracts/Contract.sol:1140"
],
"recommendation": "Add caps and/or enforce an upper bound on total fees (e.g., <=10\u201320%). Consider a timelock on fee changes or permanently renouncing fee-setting after launch.",
"exploit_scenario": "The owner can set dev/burn/lp/tax fees to any value. Setting dev fee to 100% routes all transfer value to the owner; setting cumulative fees >100% causes transfers to revert, effectively freezing trading. Either behavior can be used to create a honeypot or rug pull after users buy."
},
{
"title": "Owner-controlled transfer lock can freeze user transfers while owner remains exempt",
"category": "access_control",
"evidence": "Transfers require `!isTransferLocked || _isExcludedFromFee[from]`, and only the owner can change the lock state.",
"severity": "low",
"locations": [
"contracts/Contract.sol:752",
"contracts/Contract.sol:906",
"contracts/Contract.sol:1162"
],
"recommendation": "Make the lock one-time/unsettable after launch, or remove the fee-exclusion bypass for the lock. Consider a timelock or a publicly verifiable unlock schedule.",
"exploit_scenario": "`isTransferLocked` starts true and can be toggled by the owner at any time. Because transfers are allowed when the sender is excluded from fees, the owner can keep trading locked for users while still moving tokens (or unlock/lock around critical moments), effectively freezing exits."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0281 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x5342acb4 00000019: GT 0000001a: PUSH2 0x014f 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xa9059cbb 00000024: GT 00000025: PUSH2 0x00c1 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xd26edfe3 0000002f: GT 00000030: PUSH2 0x007a 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xd26edfe3 0000003a: EQ 0000003b: PUSH2 0x0dbe 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xdd467064 00000045: EQ 00000046: PUSH2 0x0df9 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xdd62ed3e 00000050: EQ 00000051: PUSH2 0x0e34 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xe7db06cc 0000005b: EQ 0000005c: PUSH2 0x0eb9 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xea2f0b37 00000066: EQ 00000067: PUSH2 0x0ee4 0000006a: JUMPI 0000006b: DUP1 0000006c: PUSH4 0xf2fde38b 00000071: EQ 00000072: PUSH2 0x0f35 00000075: JUMPI 00000076: PUSH2 0x0288 00000079: JUMP 0000007a: JUMPDEST 0000007b: DUP1 0000007c: PUSH4 0xa9059cbb 00000081: EQ 00000082: PUSH2 0x0c4c 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xb6c52324 0000008c: EQ 0000008d: PUSH2 0x0cbd 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xc0b0fda2 00000097: EQ 00000098: PUSH2 0x0ce8 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0xc365c690 000000a2: EQ 000000a3: PUSH2 0x0d13 000000a6: JUMPI 000000a7: DUP1 000000a8: PUSH4 0xcb5fac48 000000ad: EQ 000000ae: PUSH2 0x0d3e 000000b1: JUMPI 000000b2: DUP1 000000b3: PUSH4 0xcea26958 000000b8: EQ 000000b9: PUSH2 0x0d83 000000bc: JUMPI 000000bd: PUSH2 0x0288 000000c0: JUMP 000000c1: JUMPDEST 000000c2: DUP1 000000c3: PUSH4 0x88f82020 000000c8: GT 000000c9: PUSH2 0x0113 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x88f82020 000000d3: EQ 000000d4: PUSH2 0x0a5f 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x8da5cb5b 000000de: EQ 000000df: PUSH2 0x0ac6 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0x95d89b41 000000e9: EQ 000000ea: PUSH2 0x0b07 000000ed: JUMPI 000000ee: DUP1 000000ef: PUSH4 0xa01c62f7 000000f4: EQ 000000f5: PUSH2 0x0b97 000000f8: JUMPI 000000f9: DUP1 000000fa: PUSH4 0xa457c2d7 000000ff: EQ 00000100: PUSH2 0x0bc4 00000103: JUMPI 00000104: DUP1 00000105: PUSH4 0xa69df4b5 0000010a: EQ 0000010b: PUSH2 0x0c35 0000010e: JUMPI 0000010f: PUSH2 0x0288 00000112: JUMP 00000113: JUMPDEST 00000114: DUP1 00000115: PUSH4 0x5342acb4 0000011a: EQ 0000011b: PUSH2 0x0924 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x69b5c07e 00000125: EQ 00000126: PUSH2 0x098b 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x70a08231 00000130: EQ 00000131: PUSH2 0x09b8 00000134: JUMPI 00000135: DUP1 00000136: PUSH4 0x715018a6 0000013b: EQ 0000013c: PUSH2 0x0a1d 0000013f: JUMPI 00000140: DUP1 00000141: PUSH4 0x7d1db4a5 00000146: EQ 00000147: PUSH2 0x0a34 0000014a: JUMPI 0000014b: PUSH2 0x0288 0000014e: JUMP 0000014f: JUMPDEST 00000150: DUP1 00000151: PUSH4 0x3685d419 00000156: GT 00000157: PUSH2 0x01f3 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0x3f3cf56c 00000161: GT 00000162: PUSH2 0x01ac 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0x3f3cf56c 0000016c: EQ 0000016d: PUSH2 0x0766 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0x437823ec 00000177: EQ 00000178: PUSH2 0x07ab 0000017b: JUMPI 0000017c: DUP1 0000017d: PUSH4 0x4549b039 00000182: EQ 00000183: PUSH2 0x07fc 00000186: JUMPI 00000187: DUP1 00000188: PUSH4 0x466a7abc 0000018d: EQ 0000018e: PUSH2 0x0857 00000191: JUMPI 00000192: DUP1 00000193: PUSH4 0x49bd5a5e 00000198: EQ 00000199: PUSH2 0x0892 0000019c: JUMPI 0000019d: DUP1 0000019e: PUSH4 0x52390c02 000001a3: EQ 000001a4: PUSH2 0x08d3 000001a7: JUMPI 000001a8: PUSH2 0x0288 000001ab: JUMP 000001ac: JUMPDEST 000001ad: DUP1 000001ae: PUSH4 0x3685d419 000001b3: EQ 000001b4: PUSH2 0x05e8 000001b7: JUMPI 000001b8: DUP1 000001b9: PUSH4 0x39509351 000001be: EQ 000001bf: PUSH2 0x0639 000001c2: JUMPI 000001c3: DUP1 000001c4: PUSH4 0x3b124fe7 000001c9: EQ 000001ca: PUSH2 0x06aa 000001cd: JUMPI 000001ce: DUP1 000001cf: PUSH4 0x3b2ae941 000001d4: EQ 000001d5: PUSH2 0x06d5 000001d8: JUMPI 000001d9: DUP1 000001da: PUSH4 0x3bd5d173 000001df: EQ 000001e0: PUSH2 0x0700 000001e3: JUMPI 000001e4: DUP1 000001e5: PUSH4 0x3c9f861d 000001ea: EQ 000001eb: PUSH2 0x073b 000001ee: JUMPI 000001ef: PUSH2 0x0288 000001f2: JUMP 000001f3: JUMPDEST 000001f4: DUP1 000001f5: PUSH4 0x13114a9d 000001fa: GT 000001fb: PUSH2 0x0245 000001fe: JUMPI 000001ff: DUP1 00000200: PUSH4 0x13114a9d 00000205: EQ 00000206: PUSH2 0x0443 00000209: JUMPI 0000020a: DUP1 0000020b: PUSH4 0x1694505e 00000210: EQ 00000211: PUSH2 0x046e 00000214: JUMPI 00000215: DUP1 00000216: PUSH4 0x18160ddd 0000021b: EQ 0000021c: PUSH2 0x04af 0000021f: JUMPI 00000220: DUP1 00000221: PUSH4 0x23b872dd 00000226: EQ 00000227: PUSH2 0x04da 0000022a: JUMPI 0000022b: DUP1 0000022c: PUSH4 0x2d838119 00000231: EQ 00000232: PUSH2 0x056b 00000235: JUMPI 00000236: DUP1 00000237: PUSH4 0x313ce567 0000023c: EQ 0000023d: PUSH2 0x05ba 00000240: JUMPI 00000241: PUSH2 0x0288 00000244: JUMP 00000245: JUMPDEST 00000246: DUP1 00000247: PUSH4 0x0118b7a5 0000024c: EQ 0000024d: PUSH2 0x028d 00000250: JUMPI 00000251: DUP1 00000252: PUSH4 0x061c82d0 00000257: EQ 00000258: PUSH2 0x02ca 0000025b: JUMPI 0000025c: DUP1 0000025d: PUSH4 0x06fdde03 00000262: EQ 00000263: PUSH2 0x0305 00000266: JUMPI 00000267: DUP1 00000268: PUSH4 0x095ea7b3 0000026d: EQ 0000026e: PUSH2 0x0395 00000271: JUMPI 00000272: DUP1 00000273: PUSH4 0x10131023 00000278: EQ 00000279: PUSH2 0x0406 0000027c: JUMPI 0000027d: PUSH2 0x0288 00000280: JUMP 00000281: JUMPDEST 00000282: CALLDATASIZE 00000283: PUSH2 0x0288 00000286: JUMPI 00000287: STOP 00000288: JUMPDEST 00000289: PUSH1 0x00 0000028b: DUP1 0000028c: REVERT 0000028d: JUMPDEST 0000028e: CALLVALUE 0000028f: DUP1 00000290: ISZERO 00000291: PUSH2 0x0299 00000294: JUMPI 00000295: PUSH1 0x00 00000297: DUP1 00000298: REVERT 00000299: JUMPDEST 0000029a: POP 0000029b: PUSH2 0x02c8 0000029e: PUSH1 0x04 000002a0: DUP1 000002a1: CALLDATASIZE 000002a2: SUB 000002a3: PUSH1 0x20 000002a5: DUP2 000002a6: LT 000002a7: ISZERO 000002a8: PUSH2 0x02b0 000002ab: JUMPI 000002ac: PUSH1 0x00 000002ae: DUP1 000002af: REVERT 000002b0: JUMPDEST 000002b1: DUP2 000002b2: ADD 000002b3: SWAP1 000002b4: DUP1 000002b5: DUP1 000002b6: CALLDATALOAD 000002b7: ISZERO 000002b8: ISZERO 000002b9: SWAP1 000002ba: PUSH1 0x20 000002bc: ADD 000002bd: SWAP1 000002be: SWAP3 000002bf: SWAP2 000002c0: SWAP1 000002c1: POP 000002c2: POP 000002c3: POP 000002c4: PUSH2 0x0f86 000002c7: JUMP 000002c8: JUMPDEST 000002c9: STOP 000002ca: JUMPDEST 000002cb: CALLVALUE 000002cc: DUP1 000002cd: ISZERO 000002ce: PUSH2 0x02d6 000002d1: JUMPI 000002d2: PUSH1 0x00 000002d4: DUP1 000002d5: REVERT 000002d6: JUMPDEST 000002d7: POP 000002d8: PUSH2 0x0303 000002db: PUSH1 0x04 000002dd: DUP1 000002de: CALLDATASIZE 000002df: SUB 000002e0: PUSH1 0x20 000002e2: DUP2 000002e3: LT 000002e4: ISZERO 000002e5: PUSH2 0x02ed 000002e8: JUMPI 000002e9: PUSH1 0x00 000002eb: DUP1 000002ec: REVERT 000002ed: JUMPDEST 000002ee: DUP2 000002ef: ADD 000002f0: SWAP1 000002f1: DUP1 000002f2: DUP1 000002f3: CALLDATALOAD 000002f4: SWAP1 000002f5: PUSH1 0x20 000002f7: ADD 000002f8: SWAP1 000002f9: SWAP3 000002fa: SWAP2 000002fb: SWAP1 000002fc: POP 000002fd: POP 000002fe: POP 000002ff: PUSH2 0x106b 00000302: JUMP 00000303: JUMPDEST 00000304: STOP 00000305: JUMPDEST 00000306: CALLVALUE 00000307: DUP1 00000308: ISZERO 00000309: PUSH2 0x0311 0000030c: JUMPI 0000030d: PUSH1 0x00 0000030f: DUP1 00000310: REVERT 00000311: JUMPDEST 00000312: POP 00000313: PUSH2 0x031a 00000316: PUSH2 0x113d 00000319: JUMP 0000031a: JUMPDEST 0000031b: PUSH1 0x40 0000031d: MLOAD 0000031e: DUP1 0000031f: DUP1 00000320: PUSH1 0x20 00000322: ADD 00000323: DUP3 00000324: DUP2 00000325: SUB 00000326: DUP3 00000327: MSTORE 00000328: DUP4 00000329: DUP2 0000032a: DUP2 0000032b: MLOAD 0000032c: DUP2 0000032d: MSTORE 0000032e: PUSH1 0x20 00000330: ADD 00000331: SWAP2 00000332: POP 00000333: DUP1 00000334: MLOAD 00000335: SWAP1 00000336: PUSH1 0x20 00000338: ADD 00000339: SWAP1 0000033a: DUP1 0000033b: DUP4 0000033c: DUP4 0000033d: PUSH1 0x00 0000033f: JUMPDEST 00000340: DUP4 00000341: DUP2 00000342: LT 00000343: ISZERO 00000344: PUSH2 0x035a 00000347: JUMPI 00000348: DUP1 00000349: DUP3 0000034a: ADD 0000034b: MLOAD 0000034c: DUP2 0000034d: DUP5 0000034e: ADD 0000034f: MSTORE 00000350: PUSH1 0x20 00000352: DUP2 00000353: ADD 00000354: SWAP1 00000355: POP 00000356: PUSH2 0x033f 00000359: JUMP 0000035a: JUMPDEST 0000035b: POP 0000035c: POP 0000035d: POP 0000035e: POP 0000035f: SWAP1 00000360: POP 00000361: SWAP1 00000362: DUP2 00000363: ADD 00000364: SWAP1 00000365: PUSH1 0x1f 00000367: AND 00000368: DUP1 00000369: ISZERO 0000036a: PUSH2 0x0387 0000036d: JUMPI 0000036e: DUP1 0000036f: DUP3 00000370: SUB 00000371: DUP1 00000372: MLOAD 00000373: PUSH1 0x01 00000375: DUP4 00000376: PUSH1 0x20 00000378: SUB 00000379: PUSH2 0x0100 0000037c: EXP 0000037d: SUB 0000037e: NOT 0000037f: AND 00000380: DUP2 00000381: MSTORE 00000382: PUSH1 0x20 00000384: ADD 00000385: SWAP2 00000386: POP 00000387: JUMPDEST 00000388: POP 00000389: SWAP3 0000038a: POP 0000038b: POP 0000038c: POP 0000038d: PUSH1 0x40 0000038f: MLOAD 00000390: DUP1 00000391: SWAP2 00000392: SUB 00000393: SWAP1 00000394: RETURN 00000395: JUMPDEST 00000396: CALLVALUE 00000397: DUP1 00000398: ISZERO 00000399: PUSH2 0x03a1 0000039c: JUMPI 0000039d: PUSH1 0x00 0000039f: DUP1 000003a0: REVERT 000003a1: JUMPDEST 000003a2: POP 000003a3: PUSH2 0x03ee 000003a6: PUSH1 0x04 000003a8: DUP1 000003a9: CALLDATASIZE 000003aa: SUB 000003ab: PUSH1 0x40 000003ad: DUP2 000003ae: LT 000003af: ISZERO 000003b0: PUSH2 0x03b8 000003b3: JUMPI 000003b4: PUSH1 0x00 000003b6: DUP1 000003b7: REVERT 000003b8: JUMPDEST 000003b9: DUP2 000003ba: ADD 000003bb: SWAP1 000003bc: DUP1 000003bd: DUP1 000003be: CALLDATALOAD 000003bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003d4: AND 000003d5: SWAP1 000003d6: PUSH1 0x20 000003d8: ADD 000003d9: SWAP1 000003da: SWAP3 000003db: SWAP2 000003dc: SWAP1 000003dd: DUP1 000003de: CALLDATALOAD 000003df: SWAP1 000003e0: PUSH1 0x20 000003e2: ADD 000003e3: SWAP1 000003e4: SWAP3 000003e5: SWAP2 000003e6: SWAP1 000003e7: POP 000003e8: POP 000003e9: POP 000003ea: PUSH2 0x11df 000003ed: JUMP 000003ee: JUMPDEST 000003ef: PUSH1 0x40 000003f1: MLOAD 000003f2: DUP1 000003f3: DUP3 000003f4: ISZERO 000003f5: ISZERO 000003f6: DUP2 000003f7: MSTORE 000003f8: PUSH1 0x20 000003fa: ADD 000003fb: SWAP2 000003fc: POP 000003fd: POP 000003fe: PUSH1 0x40 00000400: MLOAD 00000401: DUP1 00000402: SWAP2 00000403: SUB 00000404: SWAP1 00000405: RETURN 00000406: JUMPDEST 00000407: CALLVALUE 00000408: DUP1 00000409: ISZERO 0000040a: PUSH2 0x0412 0000040d: JUMPI 0000040e: PUSH1 0x00 00000410: DUP1 00000411: REVERT 00000412: JUMPDEST 00000413: POP 00000414: PUSH2 0x0441 00000417: PUSH1 0x04 00000419: DUP1 0000041a: CALLDATASIZE 0000041b: SUB 0000041c: PUSH1 0x20 0000041e: DUP2 0000041f: LT 00000420: ISZERO 00000421: PUSH2 0x0429 00000424: JUMPI 00000425: PUSH1 0x00 00000427: DUP1 00000428: REVERT 00000429: JUMPDEST 0000042a: DUP2 0000042b: ADD 0000042c: SWAP1 0000042d: DUP1 0000042e: DUP1 0000042f: CALLDATALOAD 00000430: ISZERO 00000431: ISZERO 00000432: SWAP1 00000433: PUSH1 0x20 00000435: ADD 00000436: SWAP1 00000437: SWAP3 00000438: SWAP2 00000439: SWAP1 0000043a: POP 0000043b: POP 0000043c: POP 0000043d: PUSH2 0x11fd 00000440: JUMP 00000441: JUMPDEST 00000442: STOP 00000443: JUMPDEST 00000444: CALLVALUE 00000445: DUP1 00000446: ISZERO 00000447: PUSH2 0x044f 0000044a: JUMPI 0000044b: PUSH1 0x00 0000044d: DUP1 0000044e: REVERT 0000044f: JUMPDEST 00000450: POP 00000451: PUSH2 0x0458 00000454: PUSH2 0x131b 00000457: JUMP 00000458: JUMPDEST 00000459: PUSH1 0x40 0000045b: MLOAD 0000045c: DUP1 0000045d: DUP3 0000045e: DUP2 0000045f: MSTORE 00000460: PUSH1 0x20 00000462: ADD 00000463: SWAP2 00000464: POP 00000465: POP 00000466: PUSH1 0x40 00000468: MLOAD 00000469: DUP1 0000046a: SWAP2 0000046b: SUB 0000046c: SWAP1 0000046d: RETURN 0000046e: JUMPDEST 0000046f: CALLVALUE 00000470: DUP1 00000471: ISZERO 00000472: PUSH2 0x047a 00000475: JUMPI 00000476: PUSH1 0x00 00000478: DUP1 00000479: REVERT 0000047a: JUMPDEST 0000047b: POP 0000047c: PUSH2 0x0483 0000047f: PUSH2 0x1325 00000482: JUMP 00000483: JUMPDEST 00000484: PUSH1 0x40 00000486: MLOAD 00000487: DUP1 00000488: DUP3 00000489: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000049e: AND 0000049f: DUP2 000004a0: MSTORE 000004a1: PUSH1 0x20 000004a3: ADD 000004a4: SWAP2 000004a5: POP 000004a6: POP 000004a7: PUSH1 0x40 000004a9: MLOAD 000004aa: DUP1 000004ab: SWAP2 000004ac: SUB 000004ad: SWAP1 000004ae: RETURN 000004af: JUMPDEST 000004b0: CALLVALUE 000004b1: DUP1 000004b2: ISZERO 000004b3: PUSH2 0x04bb 000004b6: JUMPI 000004b7: PUSH1 0x00 000004b9: DUP1 000004ba: REVERT 000004bb: JUMPDEST 000004bc: POP 000004bd: PUSH2 0x04c4 000004c0: PUSH2 0x1349 000004c3: JUMP 000004c4: JUMPDEST 000004c5: PUSH1 0x40 000004c7: MLOAD 000004c8: DUP1 000004c9: DUP3 000004ca: DUP2 000004cb: MSTORE 000004cc: PUSH1 0x20 000004ce: ADD 000004cf: SWAP2 000004d0: POP 000004d1: POP 000004d2: PUSH1 0x40 000004d4: MLOAD 000004d5: DUP1 000004d6: SWAP2 000004d7: SUB 000004d8: SWAP1 000004d9: RETURN 000004da: JUMPDEST 000004db: CALLVALUE 000004dc: DUP1 000004dd: ISZERO 000004de: PUSH2 0x04e6 000004e1: JUMPI 000004e2: PUSH1 0x00 000004e4: DUP1 000004e5: REVERT 000004e6: JUMPDEST 000004e7: POP 000004e8: PUSH2 0x0553 000004eb: PUSH1 0x04 000004ed: DUP1 000004ee: CALLDATASIZE 000004ef: SUB 000004f0: PUSH1 0x60 000004f2: DUP2 000004f3: LT 000004f4: ISZERO 000004f5: PUSH2 0x04fd 000004f8: JUMPI 000004f9: PUSH1 0x00 000004fb: DUP1 000004fc: REVERT 000004fd: JUMPDEST 000004fe: DUP2 000004ff: ADD 00000500: SWAP1 00000501: DUP1 00000502: DUP1 00000503: CALLDATALOAD 00000504: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000519: AND 0000051a: SWAP1 0000051b: PUSH1 0x20 0000051d: ADD 0000051e: SWAP1 0000051f: SWAP3 00000520: SWAP2 00000521: SWAP1 00000522: DUP1 00000523: CALLDATALOAD 00000524: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000539: AND 0000053a: SWAP1 0000053b: PUSH1 0x20 0000053d: ADD 0000053e: SWAP1 0000053f: SWAP3 00000540: SWAP2 00000541: SWAP1 00000542: DUP1 00000543: CALLDATALOAD 00000544: SWAP1 00000545: PUSH1 0x20 00000547: ADD 00000548: SWAP1 00000549: SWAP3 0000054a: SWAP2 0000054b: SWAP1 0000054c: POP 0000054d: POP 0000054e: POP 0000054f: PUSH2 0x1353 00000552: JUMP 00000553: JUMPDEST 00000554: PUSH1 0x40 00000556: MLOAD 00000557: DUP1 00000558: DUP3 00000559: ISZERO 0000055a: ISZERO 0000055b: DUP2 0000055c: MSTORE 0000055d: PUSH1 0x20 0000055f: ADD 00000560: SWAP2 00000561: POP 00000562: POP 00000563: PUSH1 0x40 00000565: MLOAD 00000566: DUP1 00000567: SWAP2 00000568: SUB 00000569: SWAP1 0000056a: RETURN 0000056b: JUMPDEST 0000056c: CALLVALUE 0000056d: DUP1 0000056e: ISZERO 0000056f: PUSH2 0x0577 00000572: JUMPI 00000573: PUSH1 0x00 00000575: DUP1 00000576: REVERT 00000577: JUMPDEST 00000578: POP 00000579: PUSH2 0x05a4 0000057c: PUSH1 0x04 0000057e: DUP1 0000057f: CALLDATASIZE 00000580: SUB 00000581: PUSH1 0x20 00000583: DUP2 00000584: LT 00000585: ISZERO 00000586: PUSH2 0x058e 00000589: JUMPI 0000058a: PUSH1 0x00 0000058c: DUP1 0000058d: REVERT 0000058e: JUMPDEST 0000058f: DUP2 00000590: ADD 00000591: SWAP1 00000592: DUP1 00000593: DUP1 00000594: CALLDATALOAD 00000595: SWAP1 00000596: PUSH1 0x20 00000598: ADD 00000599: SWAP1 0000059a: SWAP3 0000059b: SWAP2 0000059c: SWAP1 0000059d: POP 0000059e: POP 0000059f: POP 000005a0: PUSH2 0x142c 000005a3: JUMP 000005a4: JUMPDEST 000005a5: PUSH1 0x40 000005a7: MLOAD 000005a8: DUP1 000005a9: DUP3 000005aa: DUP2 000005ab: MSTORE 000005ac: PUSH1 0x20 000005ae: ADD 000005af: SWAP2 000005b0: POP 000005b1: POP 000005b2: PUSH1 0x40 000005b4: MLOAD 000005b5: DUP1 000005b6: SWAP2 000005b7: SUB 000005b8: SWAP1 000005b9: RETURN 000005ba: JUMPDEST 000005bb: CALLVALUE 000005bc: DUP1 000005bd: ISZERO 000005be: PUSH2 0x05c6 000005c1: JUMPI 000005c2: PUSH1 0x00 000005c4: DUP1 000005c5: REVERT 000005c6: JUMPDEST 000005c7: POP 000005c8: PUSH2 0x05cf 000005cb: PUSH2 0x14b0 000005ce: JUMP 000005cf: JUMPDEST 000005d0: PUSH1 0x40 000005d2: MLOAD 000005d3: DUP1 000005d4: DUP3 000005d5: PUSH1 0xff 000005d7: AND 000005d8: DUP2 000005d9: MSTORE 000005da: PUSH1 0x20 000005dc: ADD 000005dd: SWAP2 000005de: POP 000005df: POP 000005e0: PUSH1 0x40 000005e2: MLOAD 000005e3: DUP1 000005e4: SWAP2 000005e5: SUB 000005e6: SWAP1 000005e7: RETURN 000005e8: JUMPDEST 000005e9: CALLVALUE 000005ea: DUP1 000005eb: ISZERO 000005ec: PUSH2 0x05f4 000005ef: JUMPI 000005f0: PUSH1 0x00 000005f2: DUP1 000005f3: REVERT 000005f4: JUMPDEST 000005f5: POP 000005f6: PUSH2 0x0637 000005f9: PUSH1 0x04 000005fb: DUP1 000005fc: CALLDATASIZE 000005fd: SUB 000005fe: PUSH1 0x20 00000600: DUP2 00000601: LT 00000602: ISZERO 00000603: PUSH2 0x060b 00000606: JUMPI 00000607: PUSH1 0x00 00000609: DUP1 0000060a: REVERT 0000060b: JUMPDEST 0000060c: DUP2 0000060d: ADD 0000060e: SWAP1 0000060f: DUP1 00000610: DUP1 00000611: CALLDATALOAD 00000612: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000627: AND 00000628: SWAP1 00000629: PUSH1 0x20 0000062b: ADD 0000062c: SWAP1 0000062d: SWAP3 0000062e: SWAP2 0000062f: SWAP1 00000630: POP 00000631: POP 00000632: POP 00000633: PUSH2 0x14c7 00000636: JUMP 00000637: JUMPDEST 00000638: STOP 00000639: JUMPDEST 0000063a: CALLVALUE 0000063b: DUP1 0000063c: ISZERO 0000063d: PUSH2 0x0645 00000640: JUMPI 00000641: PUSH1 0x00 00000643: DUP1 00000644: REVERT 00000645: JUMPDEST 00000646: POP 00000647: PUSH2 0x0692 0000064a: PUSH1 0x04 0000064c: DUP1 0000064d: CALLDATASIZE 0000064e: SUB 0000064f: PUSH1 0x40 00000651: DUP2 00000652: LT 00000653: ISZERO 00000654: PUSH2 0x065c 00000657: JUMPI 00000658: PUSH1 0x00 0000065a: DUP1 0000065b: REVERT 0000065c: JUMPDEST 0000065d: DUP2 0000065e: ADD 0000065f: SWAP1 00000660: DUP1 00000661: DUP1 00000662: CALLDATALOAD 00000663: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000678: AND 00000679: SWAP1 0000067a: PUSH1 0x20 0000067c: ADD 0000067d: SWAP1 0000067e: SWAP3 0000067f: SWAP2 00000680: SWAP1 00000681: DUP1 00000682: CALLDATALOAD 00000683: SWAP1 00000684: PUSH1 0x20 00000686: ADD 00000687: SWAP1 00000688: SWAP3 00000689: SWAP2 0000068a: SWAP1 0000068b: POP 0000068c: POP 0000068d: POP 0000068e: PUSH2 0x1851 00000691: JUMP 00000692: JUMPDEST 00000693: PUSH1 0x40 00000695: MLOAD 00000696: DUP1 00000697: DUP3 00000698: ISZERO 00000699: ISZERO 0000069a: DUP2 0000069b: MSTORE 0000069c: PUSH1 0x20 0000069e: ADD 0000069f: SWAP2 000006a0: POP 000006a1: POP 000006a2: PUSH1 0x40 000006a4: MLOAD 000006a5: DUP1 000006a6: SWAP2 000006a7: SUB 000006a8: SWAP1 000006a9: RETURN 000006aa: JUMPDEST 000006ab: CALLVALUE 000006ac: DUP1 000006ad: ISZERO 000006ae: PUSH2 0x06b6 000006b1: JUMPI 000006b2: PUSH1 0x00 000006b4: DUP1 000006b5: REVERT 000006b6: JUMPDEST 000006b7: POP 000006b8: PUSH2 0x06bf 000006bb: PUSH2 0x1904 000006be: JUMP 000006bf: JUMPDEST 000006c0: PUSH1 0x40 000006c2: MLOAD 000006c3: DUP1 000006c4: DUP3 000006c5: DUP2 000006c6: MSTORE 000006c7: PUSH1 0x20 000006c9: ADD 000006ca: SWAP2 000006cb: POP 000006cc: POP 000006cd: PUSH1 0x40 000006cf: MLOAD 000006d0: DUP1 000006d1: SWAP2 000006d2: SUB 000006d3: SWAP1 000006d4: RETURN 000006d5: JUMPDEST 000006d6: CALLVALUE 000006d7: DUP1 000006d8: ISZERO 000006d9: PUSH2 0x06e1 000006dc: JUMPI 000006dd: PUSH1 0x00 000006df: DUP1 000006e0: REVERT 000006e1: JUMPDEST 000006e2: POP 000006e3: PUSH2 0x06ea 000006e6: PUSH2 0x190a 000006e9: JUMP 000006ea: JUMPDEST 000006eb: PUSH1 0x40 000006ed: MLOAD 000006ee: DUP1 000006ef: DUP3 000006f0: DUP2 000006f1: MSTORE 000006f2: PUSH1 0x20 000006f4: ADD 000006f5: SWAP2 000006f6: POP 000006f7: POP 000006f8: PUSH1 0x40 000006fa: MLOAD 000006fb: DUP1 000006fc: SWAP2 000006fd: SUB 000006fe: SWAP1 000006ff: RETURN 00000700: JUMPDEST 00000701: CALLVALUE 00000702: DUP1 00000703: ISZERO 00000704: PUSH2 0x070c 00000707: JUMPI 00000708: PUSH1 0x00 0000070a: DUP1 0000070b: REVERT 0000070c: JUMPDEST 0000070d: POP 0000070e: PUSH2 0x0739 00000711: PUSH1 0x04 00000713: DUP1 00000714: CALLDATASIZE 00000715: SUB 00000716: PUSH1 0x20 00000718: DUP2 00000719: LT 0000071a: ISZERO 0000071b: PUSH2 0x0723 0000071e: JUMPI 0000071f: PUSH1 0x00 00000721: DUP1 00000722: REVERT 00000723: JUMPDEST 00000724: DUP2 00000725: ADD 00000726: SWAP1 00000727: DUP1 00000728: DUP1 00000729: CALLDATALOAD 0000072a: SWAP1 0000072b: PUSH1 0x20 0000072d: ADD 0000072e: SWAP1 0000072f: SWAP3 00000730: SWAP2 00000731: SWAP1 00000732: POP 00000733: POP 00000734: POP 00000735: PUSH2 0x1910 00000738: JUMP 00000739: JUMPDEST 0000073a: STOP 0000073b: JUMPDEST 0000073c: CALLVALUE 0000073d: DUP1 0000073e: ISZERO 0000073f: PUSH2 0x0747 00000742: JUMPI 00000743: PUSH1 0x00 00000745: DUP1 00000746: REVERT 00000747: JUMPDEST 00000748: POP 00000749: PUSH2 0x0750 0000074c: PUSH2 0x1aab 0000074f: JUMP 00000750: JUMPDEST 00000751: PUSH1 0x40 00000753: MLOAD 00000754: DUP1 00000755: DUP3 00000756: DUP2 00000757: MSTORE 00000758: PUSH1 0x20 0000075a: ADD 0000075b: SWAP2 0000075c: POP 0000075d: POP 0000075e: PUSH1 0x40 00000760: MLOAD 00000761: DUP1 00000762: SWAP2 00000763: SUB 00000764: SWAP1 00000765: RETURN 00000766: JUMPDEST 00000767: CALLVALUE 00000768: DUP1 00000769: ISZERO 0000076a: PUSH2 0x0772 0000076d: JUMPI 0000076e: PUSH1 0x00 00000770: DUP1 00000771: REVERT 00000772: JUMPDEST 00000773: POP 00000774: PUSH2 0x07a9 00000777: PUSH1 0x04 00000779: DUP1 0000077a: CALLDATASIZE 0000077b: SUB 0000077c: PUSH1 0x40 0000077e: DUP2 0000077f: LT 00000780: ISZERO 00000781: PUSH2 0x0789 00000784: JUMPI 00000785: PUSH1 0x00 00000787: DUP1 00000788: REVERT 00000789: JUMPDEST 0000078a: DUP2 0000078b: ADD 0000078c: SWAP1 0000078d: DUP1 0000078e: DUP1 0000078f: CALLDATALOAD 00000790: SWAP1 00000791: PUSH1 0x20 00000793: ADD 00000794: SWAP1 00000795: SWAP3 00000796: SWAP2 00000797: SWAP1 00000798: DUP1 00000799: CALLDATALOAD 0000079a: SWAP1 0000079b: PUSH1 0x20 0000079d: ADD 0000079e: SWAP1 0000079f: SWAP3 000007a0: SWAP2 000007a1: SWAP1 000007a2: POP 000007a3: POP 000007a4: POP 000007a5: PUSH2 0x1ab5 000007a8: JUMP 000007a9: JUMPDEST 000007aa: STOP 000007ab: JUMPDEST 000007ac: CALLVALUE 000007ad: DUP1 000007ae: ISZERO 000007af: PUSH2 0x07b7 000007b2: JUMPI 000007b3: PUSH1 0x00 000007b5: DUP1 000007b6: REVERT 000007b7: JUMPDEST 000007b8: POP 000007b9: PUSH2 0x07fa 000007bc: PUSH1 0x04 000007be: DUP1 000007bf: CALLDATASIZE 000007c0: SUB 000007c1: PUSH1 0x20 000007c3: DUP2 000007c4: LT 000007c5: ISZERO 000007c6: PUSH2 0x07ce 000007c9: JUMPI 000007ca: PUSH1 0x00 000007cc: DUP1 000007cd: REVERT 000007ce: JUMPDEST 000007cf: DUP2 000007d0: ADD 000007d1: SWAP1 000007d2: DUP1 000007d3: DUP1 000007d4: CALLDATALOAD 000007d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007ea: AND 000007eb: SWAP1 000007ec: PUSH1 0x20 000007ee: ADD 000007ef: SWAP1 000007f0: SWAP3 000007f1: SWAP2 000007f2: SWAP1 000007f3: POP 000007f4: POP 000007f5: POP 000007f6: PUSH2 0x1bb4 000007f9: JUMP 000007fa: JUMPDEST 000007fb: STOP 000007fc: JUMPDEST 000007fd: CALLVALUE 000007fe: DUP1 000007ff: ISZERO 00000800: PUSH2 0x0808 00000803: JUMPI 00000804: PUSH1 0x00 00000806: DUP1 00000807: REVERT 00000808: JUMPDEST 00000809: POP 0000080a: PUSH2 0x0841 0000080d: PUSH1 0x04 0000080f: DUP1 00000810: CALLDATASIZE 00000811: SUB 00000812: PUSH1 0x40 00000814: DUP2 00000815: LT 00000816: ISZERO 00000817: PUSH2 0x081f 0000081a: JUMPI 0000081b: PUSH1 0x00 0000081d: DUP1 0000081e: REVERT 0000081f: JUMPDEST 00000820: DUP2 00000821: ADD 00000822: SWAP1 00000823: DUP1 00000824: DUP1 00000825: CALLDATALOAD 00000826: SWAP1 00000827: PUSH1 0x20 00000829: ADD 0000082a: SWAP1 0000082b: SWAP3 0000082c: SWAP2 0000082d: SWAP1 0000082e: DUP1 0000082f: CALLDATALOAD 00000830: ISZERO 00000831: ISZERO 00000832: SWAP1 00000833: PUSH1 0x20 00000835: ADD 00000836: SWAP1 00000837: SWAP3 00000838: SWAP2 00000839: SWAP1 0000083a: POP 0000083b: POP 0000083c: POP 0000083d: PUSH2 0x1cd7 00000840: JUMP 00000841: JUMPDEST 00000842: PUSH1 0x40 00000844: MLOAD 00000845: DUP1 00000846: DUP3 00000847: DUP2 00000848: MSTORE 00000849: PUSH1 0x20 0000084b: ADD 0000084c: SWAP2 0000084d: POP 0000084e: POP 0000084f: PUSH1 0x40 00000851: MLOAD 00000852: DUP1 00000853: SWAP2 00000854: SUB 00000855: SWAP1 00000856: RETURN 00000857: JUMPDEST 00000858: CALLVALUE 00000859: DUP1 0000085a: ISZERO 0000085b: PUSH2 0x0863 0000085e: JUMPI 0000085f: PUSH1 0x00 00000861: DUP1 00000862: REVERT 00000863: JUMPDEST 00000864: POP 00000865: PUSH2 0x0890 00000868: PUSH1 0x04 0000086a: DUP1 0000086b: CALLDATASIZE 0000086c: SUB 0000086d: PUSH1 0x20 0000086f: DUP2 00000870: LT 00000871: ISZERO 00000872: PUSH2 0x087a 00000875: JUMPI 00000876: PUSH1 0x00 00000878: DUP1 00000879: REVERT 0000087a: JUMPDEST 0000087b: DUP2 0000087c: ADD 0000087d: SWAP1 0000087e: DUP1 0000087f: DUP1 00000880: CALLDATALOAD 00000881: SWAP1 00000882: PUSH1 0x20 00000884: ADD 00000885: SWAP1 00000886: SWAP3 00000887: SWAP2 00000888: SWAP1 00000889: POP 0000088a: POP 0000088b: POP 0000088c: PUSH2 0x1d86 0000088f: JUMP 00000890: JUMPDEST 00000891: STOP 00000892: JUMPDEST 00000893: CALLVALUE 00000894: DUP1 00000895: ISZERO 00000896: PUSH2 0x089e 00000899: JUMPI 0000089a: PUSH1 0x00 0000089c: DUP1 0000089d: REVERT 0000089e: JUMPDEST 0000089f: POP 000008a0: PUSH2 0x08a7 000008a3: PUSH2 0x1e58 000008a6: JUMP 000008a7: JUMPDEST 000008a8: PUSH1 0x40 000008aa: MLOAD 000008ab: DUP1 000008ac: DUP3 000008ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008c2: AND 000008c3: DUP2 000008c4: MSTORE 000008c5: PUSH1 0x20 000008c7: ADD 000008c8: SWAP2 000008c9: POP 000008ca: POP 000008cb: PUSH1 0x40 000008cd: MLOAD 000008ce: DUP1 000008cf: SWAP2 000008d0: SUB 000008d1: SWAP1 000008d2: RETURN 000008d3: JUMPDEST 000008d4: CALLVALUE 000008d5: DUP1 000008d6: ISZERO 000008d7: PUSH2 0x08df 000008da: JUMPI 000008db: PUSH1 0x00 000008dd: DUP1 000008de: REVERT 000008df: JUMPDEST 000008e0: POP 000008e1: PUSH2 0x0922 000008e4: PUSH1 0x04 000008e6: DUP1 000008e7: CALLDATASIZE 000008e8: SUB 000008e9: PUSH1 0x20 000008eb: DUP2 000008ec: LT 000008ed: ISZERO 000008ee: PUSH2 0x08f6 000008f1: JUMPI 000008f2: PUSH1 0x00 000008f4: DUP1 000008f5: REVERT 000008f6: JUMPDEST 000008f7: DUP2 000008f8: ADD 000008f9: SWAP1 000008fa: DUP1 000008fb: DUP1 000008fc: CALLDATALOAD 000008fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000912: AND 00000913: SWAP1 00000914: PUSH1 0x20 00000916: ADD 00000917: SWAP1 00000918: SWAP3 00000919: SWAP2 0000091a: SWAP1 0000091b: POP 0000091c: POP 0000091d: POP 0000091e: PUSH2 0x1e7c 00000921: JUMP 00000922: JUMPDEST 00000923: STOP 00000924: JUMPDEST 00000925: CALLVALUE 00000926: DUP1 00000927: ISZERO 00000928: PUSH2 0x0930 0000092b: JUMPI 0000092c: PUSH1 0x00 0000092e: DUP1 0000092f: REVERT 00000930: JUMPDEST 00000931: POP 00000932: PUSH2 0x0973 00000935: PUSH1 0x04 00000937: DUP1 00000938: CALLDATASIZE 00000939: SUB 0000093a: PUSH1 0x20 0000093c: DUP2 0000093d: LT 0000093e: ISZERO 0000093f: PUSH2 0x0947 00000942: JUMPI 00000943: PUSH1 0x00 00000945: DUP1 00000946: REVERT 00000947: JUMPDEST 00000948: DUP2 00000949: ADD 0000094a: SWAP1 0000094b: DUP1 0000094c: DUP1 0000094d: CALLDATALOAD 0000094e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000963: AND 00000964: SWAP1 00000965: PUSH1 0x20 00000967: ADD 00000968: SWAP1 00000969: SWAP3 0000096a: SWAP2 0000096b: SWAP1 0000096c: POP 0000096d: POP 0000096e: POP 0000096f: PUSH2 0x2196 00000972: JUMP 00000973: JUMPDEST 00000974: PUSH1 0x40 00000976: MLOAD 00000977: DUP1 00000978: DUP3 00000979: ISZERO 0000097a: ISZERO 0000097b: DUP2 0000097c: MSTORE 0000097d: PUSH1 0x20 0000097f: ADD 00000980: SWAP2 00000981: POP 00000982: POP 00000983: PUSH1 0x40 00000985: MLOAD 00000986: DUP1 00000987: SWAP2 00000988: SUB 00000989: SWAP1 0000098a: RETURN 0000098b: JUMPDEST 0000098c: CALLVALUE 0000098d: DUP1 0000098e: ISZERO 0000098f: PUSH2 0x0997 00000992: JUMPI 00000993: PUSH1 0x00 00000995: DUP1 00000996: REVERT 00000997: JUMPDEST 00000998: POP 00000999: PUSH2 0x09a0 0000099c: PUSH2 0x21ec 0000099f: JUMP 000009a0: JUMPDEST 000009a1: PUSH1 0x40 000009a3: MLOAD 000009a4: DUP1 000009a5: DUP3 000009a6: ISZERO 000009a7: ISZERO 000009a8: DUP2 000009a9: MSTORE 000009aa: PUSH1 0x20 000009ac: ADD 000009ad: SWAP2 000009ae: POP 000009af: POP 000009b0: PUSH1 0x40 000009b2: MLOAD 000009b3: DUP1 000009b4: SWAP2 000009b5: SUB 000009b6: SWAP1 000009b7: RETURN 000009b8: JUMPDEST 000009b9: CALLVALUE 000009ba: DUP1 000009bb: ISZERO 000009bc: PUSH2 0x09c4 000009bf: JUMPI 000009c0: PUSH1 0x00 000009c2: DUP1 000009c3: REVERT 000009c4: JUMPDEST 000009c5: POP 000009c6: PUSH2 0x0a07 000009c9: PUSH1 0x04 000009cb: DUP1 000009cc: CALLDATASIZE 000009cd: SUB 000009ce: PUSH1 0x20 000009d0: DUP2 000009d1: LT 000009d2: ISZERO 000009d3: PUSH2 0x09db 000009d6: JUMPI 000009d7: PUSH1 0x00 000009d9: DUP1 000009da: REVERT 000009db: JUMPDEST 000009dc: DUP2 000009dd: ADD 000009de: SWAP1 000009df: DUP1 000009e0: DUP1 000009e1: CALLDATALOAD 000009e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009f7: AND 000009f8: SWAP1 000009f9: PUSH1 0x20 000009fb: ADD 000009fc: SWAP1 000009fd: SWAP3 000009fe: SWAP2 000009ff: SWAP1 00000a00: POP 00000a01: POP 00000a02: POP 00000a03: PUSH2 0x21ff 00000a06: JUMP 00000a07: JUMPDEST 00000a08: PUSH1 0x40 00000a0a: MLOAD 00000a0b: DUP1 00000a0c: DUP3 00000a0d: DUP2 00000a0e: MSTORE 00000a0f: PUSH1 0x20 00000a11: ADD 00000a12: SWAP2 00000a13: POP 00000a14: POP 00000a15: PUSH1 0x40 00000a17: MLOAD 00000a18: DUP1 00000a19: SWAP2 00000a1a: SUB 00000a1b: SWAP1 00000a1c: RETURN 00000a1d: JUMPDEST 00000a1e: CALLVALUE 00000a1f: DUP1 00000a20: ISZERO 00000a21: PUSH2 0x0a29 00000a24: JUMPI 00000a25: PUSH1 0x00 00000a27: DUP1 00000a28: REVERT 00000a29: JUMPDEST 00000a2a: POP 00000a2b: PUSH2 0x0a32 00000a2e: PUSH2 0x22ea 00000a31: JUMP 00000a32: JUMPDEST 00000a33: STOP 00000a34: JUMPDEST 00000a35: CALLVALUE 00000a36: DUP1 00000a37: ISZERO 00000a38: PUSH2 0x0a40 00000a3b: JUMPI 00000a3c: PUSH1 0x00 00000a3e: DUP1 00000a3f: REVERT 00000a40: JUMPDEST 00000a41: POP 00000a42: PUSH2 0x0a49 00000a45: PUSH2 0x2470 00000a48: JUMP 00000a49: JUMPDEST 00000a4a: PUSH1 0x40 00000a4c: MLOAD 00000a4d: DUP1 00000a4e: DUP3 00000a4f: DUP2 00000a50: MSTORE 00000a51: PUSH1 0x20 00000a53: ADD 00000a54: SWAP2 00000a55: POP 00000a56: POP 00000a57: PUSH1 0x40 00000a59: MLOAD 00000a5a: DUP1 00000a5b: SWAP2 00000a5c: SUB 00000a5d: SWAP1 00000a5e: RETURN 00000a5f: JUMPDEST 00000a60: CALLVALUE 00000a61: DUP1 00000a62: ISZERO 00000a63: PUSH2 0x0a6b 00000a66: JUMPI 00000a67: PUSH1 0x00 00000a69: DUP1 00000a6a: REVERT 00000a6b: JUMPDEST 00000a6c: POP 00000a6d: PUSH2 0x0aae 00000a70: PUSH1 0x04 00000a72: DUP1 00000a73: CALLDATASIZE 00000a74: SUB 00000a75: PUSH1 0x20 00000a77: DUP2 00000a78: LT 00000a79: ISZERO 00000a7a: PUSH2 0x0a82 00000a7d: JUMPI 00000a7e: PUSH1 0x00 00000a80: DUP1 00000a81: REVERT 00000a82: JUMPDEST 00000a83: DUP2 00000a84: ADD 00000a85: SWAP1 00000a86: DUP1 00000a87: DUP1 00000a88: CALLDATALOAD 00000a89: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a9e: AND 00000a9f: SWAP1 00000aa0: PUSH1 0x20 00000aa2: ADD 00000aa3: SWAP1 00000aa4: SWAP3 00000aa5: SWAP2 00000aa6: SWAP1 00000aa7: POP 00000aa8: POP 00000aa9: POP 00000aaa: PUSH2 0x2476 00000aad: JUMP 00000aae: JUMPDEST 00000aaf: PUSH1 0x40 00000ab1: MLOAD 00000ab2: DUP1 00000ab3: DUP3 00000ab4: ISZERO 00000ab5: ISZERO 00000ab6: DUP2 00000ab7: MSTORE 00000ab8: PUSH1 0x20 00000aba: ADD 00000abb: SWAP2 00000abc: POP 00000abd: POP 00000abe: PUSH1 0x40 00000ac0: MLOAD 00000ac1: DUP1 00000ac2: SWAP2 00000ac3: SUB 00000ac4: SWAP1 00000ac5: RETURN 00000ac6: JUMPDEST 00000ac7: CALLVALUE 00000ac8: DUP1 00000ac9: ISZERO 00000aca: PUSH2 0x0ad2 00000acd: JUMPI 00000ace: PUSH1 0x00 00000ad0: DUP1 00000ad1: REVERT 00000ad2: JUMPDEST 00000ad3: POP 00000ad4: PUSH2 0x0adb 00000ad7: PUSH2 0x24cc 00000ada: JUMP 00000adb: JUMPDEST 00000adc: PUSH1 0x40 00000ade: MLOAD 00000adf: DUP1 00000ae0: DUP3 00000ae1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000af6: AND 00000af7: DUP2 00000af8: MSTORE 00000af9: PUSH1 0x20 00000afb: ADD 00000afc: SWAP2 00000afd: POP 00000afe: POP 00000aff: PUSH1 0x40 00000b01: MLOAD 00000b02: DUP1 00000b03: SWAP2 00000b04: SUB 00000b05: SWAP1 00000b06: RETURN 00000b07: JUMPDEST 00000b08: CALLVALUE 00000b09: DUP1 00000b0a: ISZERO 00000b0b: PUSH2 0x0b13 00000b0e: JUMPI 00000b0f: PUSH1 0x00 00000b11: DUP1 00000b12: REVERT 00000b13: JUMPDEST 00000b14: POP 00000b15: PUSH2 0x0b1c 00000b18: PUSH2 0x24f5 00000b1b: JUMP 00000b1c: JUMPDEST 00000b1d: PUSH1 0x40 00000b1f: MLOAD 00000b20: DUP1 00000b21: DUP1 00000b22: PUSH1 0x20 00000b24: ADD 00000b25: DUP3 00000b26: DUP2 00000b27: SUB 00000b28: DUP3 00000b29: MSTORE 00000b2a: DUP4 00000b2b: DUP2 00000b2c: DUP2 00000b2d: MLOAD 00000b2e: DUP2 00000b2f: MSTORE 00000b30: PUSH1 0x20 00000b32: ADD 00000b33: SWAP2 00000b34: POP 00000b35: DUP1 00000b36: MLOAD 00000b37: SWAP1 00000b38: PUSH1 0x20 00000b3a: ADD 00000b3b: SWAP1 00000b3c: DUP1 00000b3d: DUP4 00000b3e: DUP4 00000b3f: PUSH1 0x00 00000b41: JUMPDEST 00000b42: DUP4 00000b43: DUP2 00000b44: LT 00000b45: ISZERO 00000b46: PUSH2 0x0b5c 00000b49: JUMPI 00000b4a: DUP1 00000b4b: DUP3 00000b4c: ADD 00000b4d: MLOAD 00000b4e: DUP2 00000b4f: DUP5 00000b50: ADD 00000b51: MSTORE 00000b52: PUSH1 0x20 00000b54: DUP2 00000b55: ADD 00000b56: SWAP1 00000b57: POP 00000b58: PUSH2 0x0b41 00000b5b: JUMP 00000b5c: JUMPDEST 00000b5d: POP 00000b5e: POP 00000b5f: POP 00000b60: POP 00000b61: SWAP1 00000b62: POP 00000b63: SWAP1 00000b64: DUP2 00000b65: ADD 00000b66: SWAP1 00000b67: PUSH1 0x1f 00000b69: AND 00000b6a: DUP1 00000b6b: ISZERO 00000b6c: PUSH2 0x0b89 00000b6f: JUMPI 00000b70: DUP1 00000b71: DUP3 00000b72: SUB 00000b73: DUP1 00000b74: MLOAD 00000b75: PUSH1 0x01 00000b77: DUP4 00000b78: PUSH1 0x20 00000b7a: SUB 00000b7b: PUSH2 0x0100 00000b7e: EXP 00000b7f: SUB 00000b80: NOT 00000b81: AND 00000b82: DUP2 00000b83: MSTORE 00000b84: PUSH1 0x20 00000b86: ADD 00000b87: SWAP2 00000b88: POP 00000b89: JUMPDEST 00000b8a: POP 00000b8b: SWAP3 00000b8c: POP 00000b8d: POP 00000b8e: POP 00000b8f: PUSH1 0x40 00000b91: MLOAD 00000b92: DUP1 00000b93: SWAP2 00000b94: SUB 00000b95: SWAP1 00000b96: RETURN 00000b97: JUMPDEST 00000b98: CALLVALUE 00000b99: DUP1 00000b9a: ISZERO 00000b9b: PUSH2 0x0ba3 00000b9e: JUMPI 00000b9f: PUSH1 0x00 00000ba1: DUP1 00000ba2: REVERT 00000ba3: JUMPDEST 00000ba4: POP 00000ba5: PUSH2 0x0bac 00000ba8: PUSH2 0x2597 00000bab: JUMP 00000bac: JUMPDEST 00000bad: PUSH1 0x40 00000baf: MLOAD 00000bb0: DUP1 00000bb1: DUP3 00000bb2: ISZERO 00000bb3: ISZERO 00000bb4: DUP2 00000bb5: MSTORE 00000bb6: PUSH1 0x20 00000bb8: ADD 00000bb9: SWAP2 00000bba: POP 00000bbb: POP 00000bbc: PUSH1 0x40 00000bbe: MLOAD 00000bbf: DUP1 00000bc0: SWAP2 00000bc1: SUB 00000bc2: SWAP1 00000bc3: RETURN 00000bc4: JUMPDEST 00000bc5: CALLVALUE 00000bc6: DUP1 00000bc7: ISZERO 00000bc8: PUSH2 0x0bd0 00000bcb: JUMPI 00000bcc: PUSH1 0x00 00000bce: DUP1 00000bcf: REVERT 00000bd0: JUMPDEST 00000bd1: POP 00000bd2: PUSH2 0x0c1d 00000bd5: PUSH1 0x04 00000bd7: DUP1 00000bd8: CALLDATASIZE 00000bd9: SUB 00000bda: PUSH1 0x40 00000bdc: DUP2 00000bdd: LT 00000bde: ISZERO 00000bdf: PUSH2 0x0be7 00000be2: JUMPI 00000be3: PUSH1 0x00 00000be5: DUP1 00000be6: REVERT 00000be7: JUMPDEST 00000be8: DUP2 00000be9: ADD 00000bea: SWAP1 00000beb: DUP1 00000bec: DUP1 00000bed: CALLDATALOAD 00000bee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c03: AND 00000c04: SWAP1 00000c05: PUSH1 0x20 00000c07: ADD 00000c08: SWAP1 00000c09: SWAP3 00000c0a: SWAP2 00000c0b: SWAP1 00000c0c: DUP1 00000c0d: CALLDATALOAD 00000c0e: SWAP1 00000c0f: PUSH1 0x20 00000c11: ADD 00000c12: SWAP1 00000c13: SWAP3 00000c14: SWAP2 00000c15: SWAP1 00000c16: POP 00000c17: POP 00000c18: POP 00000c19: PUSH2 0x25aa 00000c1c: JUMP 00000c1d: JUMPDEST 00000c1e: PUSH1 0x40 00000c20: MLOAD 00000c21: DUP1 00000c22: DUP3 00000c23: ISZERO 00000c24: ISZERO 00000c25: DUP2 00000c26: MSTORE 00000c27: PUSH1 0x20 00000c29: ADD 00000c2a: SWAP2 00000c2b: POP 00000c2c: POP 00000c2d: PUSH1 0x40 00000c2f: MLOAD 00000c30: DUP1 00000c31: SWAP2 00000c32: SUB 00000c33: SWAP1 00000c34: RETURN 00000c35: JUMPDEST 00000c36: CALLVALUE 00000c37: DUP1 00000c38: ISZERO 00000c39: PUSH2 0x0c41 00000c3c: JUMPI 00000c3d: PUSH1 0x00 00000c3f: DUP1 00000c40: REVERT 00000c41: JUMPDEST 00000c42: POP 00000c43: PUSH2 0x0c4a 00000c46: PUSH2 0x2677 00000c49: JUMP 00000c4a: JUMPDEST 00000c4b: STOP 00000c4c: JUMPDEST 00000c4d: CALLVALUE 00000c4e: DUP1 00000c4f: ISZERO 00000c50: PUSH2 0x0c58 00000c53: JUMPI 00000c54: PUSH1 0x00 00000c56: DUP1 00000c57: REVERT 00000c58: JUMPDEST 00000c59: POP 00000c5a: PUSH2 0x0ca5 00000c5d: PUSH1 0x04 00000c5f: DUP1 00000c60: CALLDATASIZE 00000c61: SUB 00000c62: PUSH1 0x40 00000c64: DUP2 00000c65: LT 00000c66: ISZERO 00000c67: PUSH2 0x0c6f 00000c6a: JUMPI 00000c6b: PUSH1 0x00 00000c6d: DUP1 00000c6e: REVERT 00000c6f: JUMPDEST 00000c70: DUP2 00000c71: ADD 00000c72: SWAP1 00000c73: DUP1 00000c74: DUP1 00000c75: CALLDATALOAD 00000c76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c8b: AND 00000c8c: SWAP1 00000c8d: PUSH1 0x20 00000c8f: ADD 00000c90: SWAP1 00000c91: SWAP3 00000c92: SWAP2 00000c93: SWAP1 00000c94: DUP1 00000c95: CALLDATALOAD 00000c96: SWAP1 00000c97: PUSH1 0x20 00000c99: ADD 00000c9a: SWAP1 00000c9b: SWAP3 00000c9c: SWAP2 00000c9d: SWAP1 00000c9e: POP 00000c9f: POP 00000ca0: POP 00000ca1: PUSH2 0x2894 00000ca4: JUMP 00000ca5: JUMPDEST 00000ca6: PUSH1 0x40 00000ca8: MLOAD 00000ca9: DUP1 00000caa: DUP3 00000cab: ISZERO 00000cac: ISZERO 00000cad: DUP2 00000cae: MSTORE 00000caf: PUSH1 0x20 00000cb1: ADD 00000cb2: SWAP2 00000cb3: POP 00000cb4: POP 00000cb5: PUSH1 0x40 00000cb7: MLOAD 00000cb8: DUP1 00000cb9: SWAP2 00000cba: SUB 00000cbb: SWAP1 00000cbc: RETURN 00000cbd: JUMPDEST 00000cbe: CALLVALUE 00000cbf: DUP1 00000cc0: ISZERO 00000cc1: PUSH2 0x0cc9 00000cc4: JUMPI 00000cc5: PUSH1 0x00 00000cc7: DUP1 00000cc8: REVERT 00000cc9: JUMPDEST 00000cca: POP 00000ccb: PUSH2 0x0cd2 00000cce: PUSH2 0x28b2 00000cd1: JUMP 00000cd2: JUMPDEST 00000cd3: PUSH1 0x40 00000cd5: MLOAD 00000cd6: DUP1 00000cd7: DUP3 00000cd8: DUP2 00000cd9: MSTORE 00000cda: PUSH1 0x20 00000cdc: ADD 00000cdd: SWAP2 00000cde: POP 00000cdf: POP 00000ce0: PUSH1 0x40 00000ce2: MLOAD 00000ce3: DUP1 00000ce4: SWAP2 00000ce5: SUB 00000ce6: SWAP1 00000ce7: RETURN 00000ce8: JUMPDEST 00000ce9: CALLVALUE 00000cea: DUP1 00000ceb: ISZERO 00000cec: PUSH2 0x0cf4 00000cef: JUMPI 00000cf0: PUSH1 0x00 00000cf2: DUP1 00000cf3: REVERT 00000cf4: JUMPDEST 00000cf5: POP 00000cf6: PUSH2 0x0cfd 00000cf9: PUSH2 0x28bc 00000cfc: JUMP 00000cfd: JUMPDEST 00000cfe: PUSH1 0x40 00000d00: MLOAD 00000d01: DUP1 00000d02: DUP3 00000d03: DUP2 00000d04: MSTORE 00000d05: PUSH1 0x20 00000d07: ADD 00000d08: SWAP2 00000d09: POP 00000d0a: POP 00000d0b: PUSH1 0x40 00000d0d: MLOAD 00000d0e: DUP1 00000d0f: SWAP2 00000d10: SUB 00000d11: SWAP1 00000d12: RETURN 00000d13: JUMPDEST 00000d14: CALLVALUE 00000d15: DUP1 00000d16: ISZERO 00000d17: PUSH2 0x0d1f 00000d1a: JUMPI 00000d1b: PUSH1 0x00 00000d1d: DUP1 00000d1e: REVERT 00000d1f: JUMPDEST 00000d20: POP 00000d21: PUSH2 0x0d28 00000d24: PUSH2 0x28c2 00000d27: JUMP 00000d28: JUMPDEST 00000d29: PUSH1 0x40 00000d2b: MLOAD 00000d2c: DUP1 00000d2d: DUP3 00000d2e: DUP2 00000d2f: MSTORE 00000d30: PUSH1 0x20 00000d32: ADD 00000d33: SWAP2 00000d34: POP 00000d35: POP 00000d36: PUSH1 0x40 00000d38: MLOAD 00000d39: DUP1 00000d3a: SWAP2 00000d3b: SUB 00000d3c: SWAP1 00000d3d: RETURN 00000d3e: JUMPDEST 00000d3f: CALLVALUE 00000d40: DUP1 00000d41: ISZERO 00000d42: PUSH2 0x0d4a 00000d45: JUMPI 00000d46: PUSH1 0x00 00000d48: DUP1 00000d49: REVERT 00000d4a: JUMPDEST 00000d4b: POP 00000d4c: PUSH2 0x0d81 00000d4f: PUSH1 0x04 00000d51: DUP1 00000d52: CALLDATASIZE 00000d53: SUB 00000d54: PUSH1 0x40 00000d56: DUP2 00000d57: LT 00000d58: ISZERO 00000d59: PUSH2 0x0d61 00000d5c: JUMPI 00000d5d: PUSH1 0x00 00000d5f: DUP1 00000d60: REVERT 00000d61: JUMPDEST 00000d62: DUP2 00000d63: ADD 00000d64: SWAP1 00000d65: DUP1 00000d66: DUP1 00000d67: CALLDATALOAD 00000d68: SWAP1 00000d69: PUSH1 0x20 00000d6b: ADD 00000d6c: SWAP1 00000d6d: SWAP3 00000d6e: SWAP2 00000d6f: SWAP1 00000d70: DUP1 00000d71: CALLDATALOAD 00000d72: SWAP1 00000d73: PUSH1 0x20 00000d75: ADD 00000d76: SWAP1 00000d77: SWAP3 00000d78: SWAP2 00000d79: SWAP1 00000d7a: POP 00000d7b: POP 00000d7c: POP 00000d7d: PUSH2 0x28c8 00000d80: JUMP 00000d81: JUMPDEST 00000d82: STOP 00000d83: JUMPDEST 00000d84: CALLVALUE 00000d85: DUP1 00000d86: ISZERO 00000d87: PUSH2 0x0d8f 00000d8a: JUMPI 00000d8b: PUSH1 0x00 00000d8d: DUP1 00000d8e: REVERT 00000d8f: JUMPDEST 00000d90: POP 00000d91: PUSH2 0x0dbc 00000d94: PUSH1 0x04 00000d96: DUP1 00000d97: CALLDATASIZE 00000d98: SUB 00000d99: PUSH1 0x20 00000d9b: DUP2 00000d9c: LT 00000d9d: ISZERO 00000d9e: PUSH2 0x0da6 00000da1: JUMPI 00000da2: PUSH1 0x00 00000da4: DUP1 00000da5: REVERT 00000da6: JUMPDEST 00000da7: DUP2 00000da8: ADD 00000da9: SWAP1 00000daa: DUP1 00000dab: DUP1 00000dac: CALLDATALOAD 00000dad: SWAP1 00000dae: PUSH1 0x20 00000db0: ADD 00000db1: SWAP1 00000db2: SWAP3 00000db3: SWAP2 00000db4: SWAP1 00000db5: POP 00000db6: POP 00000db7: POP 00000db8: PUSH2 0x2a00 00000dbb: JUMP 00000dbc: JUMPDEST 00000dbd: STOP 00000dbe: JUMPDEST 00000dbf: CALLVALUE 00000dc0: DUP1 00000dc1: ISZERO 00000dc2: PUSH2 0x0dca 00000dc5: JUMPI 00000dc6: PUSH1 0x00 00000dc8: DUP1 00000dc9: REVERT 00000dca: JUMPDEST 00000dcb: POP 00000dcc: PUSH2 0x0df7 00000dcf: PUSH1 0x04 00000dd1: DUP1 00000dd2: CALLDATASIZE 00000dd3: SUB 00000dd4: PUSH1 0x20 00000dd6: DUP2 00000dd7: LT 00000dd8: ISZERO 00000dd9: PUSH2 0x0de1 00000ddc: JUMPI 00000ddd: PUSH1 0x00 00000ddf: DUP1 00000de0: REVERT 00000de1: JUMPDEST 00000de2: DUP2 00000de3: ADD 00000de4: SWAP1 00000de5: DUP1 00000de6: DUP1 00000de7: CALLDATALOAD 00000de8: SWAP1 00000de9: PUSH1 0x20 00000deb: ADD 00000dec: SWAP1 00000ded: SWAP3 00000dee: SWAP2 00000def: SWAP1 00000df0: POP 00000df1: POP 00000df2: POP 00000df3: PUSH2 0x2ad2 00000df6: JUMP 00000df7: JUMPDEST 00000df8: STOP 00000df9: JUMPDEST 00000dfa: CALLVALUE 00000dfb: DUP1 00000dfc: ISZERO 00000dfd: PUSH2 0x0e05 00000e00: JUMPI 00000e01: PUSH1 0x00 00000e03: DUP1 00000e04: REVERT 00000e05: JUMPDEST 00000e06: POP 00000e07: PUSH2 0x0e32 00000e0a: PUSH1 0x04 00000e0c: DUP1 00000e0d: CALLDATASIZE 00000e0e: SUB 00000e0f: PUSH1 0x20 00000e11: DUP2 00000e12: LT 00000e13: ISZERO 00000e14: PUSH2 0x0e1c 00000e17: JUMPI 00000e18: PUSH1 0x00 00000e1a: DUP1 00000e1b: REVERT 00000e1c: JUMPDEST 00000e1d: DUP2 00000e1e: ADD 00000e1f: SWAP1 00000e20: DUP1 00000e21: DUP1 00000e22: CALLDATALOAD 00000e23: SWAP1 00000e24: PUSH1 0x20 00000e26: ADD 00000e27: SWAP1 00000e28: SWAP3 00000e29: SWAP2 00000e2a: SWAP1 00000e2b: POP 00000e2c: POP 00000e2d: POP 00000e2e: PUSH2 0x2ba4 00000e31: JUMP 00000e32: JUMPDEST 00000e33: STOP 00000e34: JUMPDEST 00000e35: CALLVALUE 00000e36: DUP1 00000e37: ISZERO 00000e38: PUSH2 0x0e40 00000e3b: JUMPI 00000e3c: PUSH1 0x00 00000e3e: DUP1 00000e3f: REVERT 00000e40: JUMPDEST 00000e41: POP 00000e42: PUSH2 0x0ea3 00000e45: PUSH1 0x04 00000e47: DUP1 00000e48: CALLDATASIZE 00000e49: SUB 00000e4a: PUSH1 0x40 00000e4c: DUP2 00000e4d: LT 00000e4e: ISZERO 00000e4f: PUSH2 0x0e57 00000e52: JUMPI 00000e53: PUSH1 0x00 00000e55: DUP1 00000e56: REVERT 00000e57: JUMPDEST 00000e58: DUP2 00000e59: ADD 00000e5a: SWAP1 00000e5b: DUP1 00000e5c: DUP1 00000e5d: CALLDATALOAD 00000e5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e73: AND 00000e74: SWAP1 00000e75: PUSH1 0x20 00000e77: ADD 00000e78: SWAP1 00000e79: SWAP3 00000e7a: SWAP2 00000e7b: SWAP1 00000e7c: DUP1 00000e7d: CALLDATALOAD 00000e7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e93: AND 00000e94: SWAP1 00000e95: PUSH1 0x20 00000e97: ADD 00000e98: SWAP1 00000e99: SWAP3 00000e9a: SWAP2 00000e9b: SWAP1 00000e9c: POP 00000e9d: POP 00000e9e: POP 00000e9f: PUSH2 0x2d95 00000ea2: JUMP 00000ea3: JUMPDEST 00000ea4: PUSH1 0x40 00000ea6: MLOAD 00000ea7: DUP1 00000ea8: DUP3 00000ea9: DUP2 00000eaa: MSTORE 00000eab: PUSH1 0x20 00000ead: ADD 00000eae: SWAP2 00000eaf: POP 00000eb0: POP 00000eb1: PUSH1 0x40 00000eb3: MLOAD 00000eb4: DUP1 00000eb5: SWAP2 00000eb6: SUB 00000eb7: SWAP1 00000eb8: RETURN 00000eb9: JUMPDEST 00000eba: CALLVALUE 00000ebb: DUP1 00000ebc: ISZERO 00000ebd: PUSH2 0x0ec5 00000ec0: JUMPI 00000ec1: PUSH1 0x00 00000ec3: DUP1 00000ec4: REVERT 00000ec5: JUMPDEST 00000ec6: POP 00000ec7: PUSH2 0x0ece 00000eca: PUSH2 0x2e1c 00000ecd: JUMP 00000ece: JUMPDEST 00000ecf: PUSH1 0x40 00000ed1: MLOAD 00000ed2: DUP1 00000ed3: DUP3 00000ed4: DUP2 00000ed5: MSTORE 00000ed6: PUSH1 0x20 00000ed8: ADD 00000ed9: SWAP2 00000eda: POP 00000edb: POP 00000edc: PUSH1 0x40 00000ede: MLOAD 00000edf: DUP1 00000ee0: SWAP2 00000ee1: SUB 00000ee2: SWAP1 00000ee3: RETURN 00000ee4: JUMPDEST 00000ee5: CALLVALUE 00000ee6: DUP1 00000ee7: ISZERO 00000ee8: PUSH2 0x0ef0 00000eeb: JUMPI 00000eec: PUSH1 0x00 00000eee: DUP1 00000eef: REVERT 00000ef0: JUMPDEST 00000ef1: POP 00000ef2: PUSH2 0x0f33 00000ef5: PUSH1 0x04 00000ef7: DUP1 00000ef8: CALLDATASIZE 00000ef9: SUB 00000efa: PUSH1 0x20 00000efc: DUP2 00000efd: LT 00000efe: ISZERO 00000eff: PUSH2 0x0f07 00000f02: JUMPI 00000f03: PUSH1 0x00 00000f05: DUP1 00000f06: REVERT 00000f07: JUMPDEST 00000f08: DUP2 00000f09: ADD 00000f0a: SWAP1 00000f0b: DUP1 00000f0c: DUP1 00000f0d: CALLDATALOAD 00000f0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f23: AND 00000f24: SWAP1 00000f25: PUSH1 0x20 00000f27: ADD 00000f28: SWAP1 00000f29: SWAP3 00000f2a: SWAP2 00000f2b: SWAP1 00000f2c: POP 00000f2d: POP 00000f2e: POP 00000f2f: PUSH2 0x2e22 00000f32: JUMP 00000f33: JUMPDEST 00000f34: STOP 00000f35: JUMPDEST 00000f36: CALLVALUE 00000f37: DUP1 00000f38: ISZERO 00000f39: PUSH2 0x0f41 00000f3c: JUMPI 00000f3d: PUSH1 0x00 00000f3f: DUP1 00000f40: REVERT 00000f41: JUMPDEST 00000f42: POP 00000f43: PUSH2 0x0f84 00000f46: PUSH1 0x04 00000f48: DUP1 00000f49: CALLDATASIZE 00000f4a: SUB 00000f4b: PUSH1 0x20 00000f4d: DUP2 00000f4e: LT 00000f4f: ISZERO 00000f50: PUSH2 0x0f58 00000f53: JUMPI 00000f54: PUSH1 0x00 00000f56: DUP1 00000f57: REVERT 00000f58: JUMPDEST 00000f59: DUP2 00000f5a: ADD 00000f5b: SWAP1 00000f5c: DUP1 00000f5d: DUP1 00000f5e: CALLDATALOAD 00000f5f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f74: AND 00000f75: SWAP1 00000f76: PUSH1 0x20 00000f78: ADD 00000f79: SWAP1 00000f7a: SWAP3 00000f7b: SWAP2 00000f7c: SWAP1 00000f7d: POP 00000f7e: POP 00000f7f: POP 00000f80: PUSH2 0x2f45 00000f83: JUMP 00000f84: JUMPDEST 00000f85: STOP 00000f86: JUMPDEST 00000f87: PUSH2 0x0f8e 00000f8a: PUSH2 0x3150 00000f8d: JUMP 00000f8e: JUMPDEST 00000f8f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fa4: AND 00000fa5: PUSH1 0x00 00000fa7: DUP1 00000fa8: SLOAD 00000fa9: SWAP1 00000faa: PUSH2 0x0100 00000fad: EXP 00000fae: SWAP1 00000faf: DIV 00000fb0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fc5: AND 00000fc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fdb: AND 00000fdc: EQ 00000fdd: PUSH2 0x104e 00000fe0: JUMPI 00000fe1: PUSH1 0x40 00000fe3: MLOAD 00000fe4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001005: DUP2 00001006: MSTORE 00001007: PUSH1 0x04 00001009: ADD 0000100a: DUP1 0000100b: DUP1 0000100c: PUSH1 0x20 0000100e: ADD 0000100f: DUP3 00001010: DUP2 00001011: SUB 00001012: DUP3 00001013: MSTORE 00001014: PUSH1 0x20 00001016: DUP2 00001017: MSTORE 00001018: PUSH1 0x20 0000101a: ADD 0000101b: DUP1 0000101c: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 0000103d: DUP2 0000103e: MSTORE 0000103f: POP 00001040: PUSH1 0x20 00001042: ADD 00001043: SWAP2 00001044: POP 00001045: POP 00001046: PUSH1 0x40 00001048: MLOAD 00001049: DUP1 0000104a: SWAP2 0000104b: SUB 0000104c: SWAP1 0000104d: REVERT 0000104e: JUMPDEST 0000104f: DUP1 00001050: PUSH1 0x1a 00001052: PUSH1 0x00 00001054: PUSH2 0x0100 00001057: EXP 00001058: DUP2 00001059: SLOAD 0000105a: DUP2 0000105b: PUSH1 0xff 0000105d: MUL 0000105e: NOT 0000105f: AND 00001060: SWAP1 00001061: DUP4 00001062: ISZERO 00001063: ISZERO 00001064: MUL 00001065: OR 00001066: SWAP1 00001067: SSTORE 00001068: POP 00001069: POP 0000106a: JUMP 0000106b: JUMPDEST 0000106c: PUSH2 0x1073 0000106f: PUSH2 0x3150 00001072: JUMP 00001073: JUMPDEST 00001074: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001089: AND 0000108a: PUSH1 0x00 0000108c: DUP1 0000108d: SLOAD 0000108e: SWAP1 0000108f: PUSH2 0x0100 00001092: EXP 00001093: SWAP1 00001094: DIV 00001095: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010aa: AND 000010ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010c0: AND 000010c1: EQ 000010c2: PUSH2 0x1133 000010c5: JUMPI 000010c6: PUSH1 0x40 000010c8: MLOAD 000010c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000010ea: DUP2 000010eb: MSTORE 000010ec: PUSH1 0x04 000010ee: ADD 000010ef: DUP1 000010f0: DUP1 000010f1: PUSH1 0x20 000010f3: ADD 000010f4: DUP3 000010f5: DUP2 000010f6: SUB 000010f7: DUP3 000010f8: MSTORE 000010f9: PUSH1 0x20 000010fb: DUP2 000010fc: MSTORE 000010fd: PUSH1 0x20 000010ff: ADD 00001100: DUP1 00001101: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00001122: DUP2 00001123: MSTORE 00001124: POP 00001125: PUSH1 0x20 00001127: ADD 00001128: SWAP2 00001129: POP 0000112a: POP 0000112b: PUSH1 0x40 0000112d: MLOAD 0000112e: DUP1 0000112f: SWAP2 00001130: SUB 00001131: SWAP1 00001132: REVERT 00001133: JUMPDEST 00001134: DUP1 00001135: PUSH1 0x10 00001137: DUP2 00001138: SWAP1 00001139: SSTORE 0000113a: POP 0000113b: POP 0000113c: JUMP 0000113d: JUMPDEST 0000113e: PUSH1 0x60 00001140: PUSH1 0x0d 00001142: DUP1 00001143: SLOAD 00001144: PUSH1 0x01 00001146: DUP2 00001147: PUSH1 0x01 00001149: AND 0000114a: ISZERO 0000114b: PUSH2 0x0100 0000114e: MUL 0000114f: SUB 00001150: AND 00001151: PUSH1 0x02 00001153: SWAP1 00001154: DIV 00001155: DUP1 00001156: PUSH1 0x1f 00001158: ADD 00001159: PUSH1 0x20 0000115b: DUP1 0000115c: SWAP2 0000115d: DIV 0000115e: MUL 0000115f: PUSH1 0x20 00001161: ADD 00001162: PUSH1 0x40 00001164: MLOAD 00001165: SWAP1 00001166: DUP2 00001167: ADD 00001168: PUSH1 0x40 0000116a: MSTORE 0000116b: DUP1 0000116c: SWAP3 0000116d: SWAP2 0000116e: SWAP1 0000116f: DUP2 00001170: DUP2 00001171: MSTORE 00001172: PUSH1 0x20 00001174: ADD 00001175: DUP3 00001176: DUP1 00001177: SLOAD 00001178: PUSH1 0x01 0000117a: DUP2 0000117b: PUSH1 0x01 0000117d: AND 0000117e: ISZERO 0000117f: PUSH2 0x0100 00001182: MUL 00001183: SUB 00001184: AND 00001185: PUSH1 0x02 00001187: SWAP1 00001188: DIV 00001189: DUP1 0000118a: ISZERO 0000118b: PUSH2 0x11d5 0000118e: JUMPI 0000118f: DUP1 00001190: PUSH1 0x1f 00001192: LT 00001193: PUSH2 0x11aa 00001196: JUMPI 00001197: PUSH2 0x0100 0000119a: DUP1 0000119b: DUP4 0000119c: SLOAD 0000119d: DIV 0000119e: MUL 0000119f: DUP4 000011a0: MSTORE 000011a1: SWAP2 000011a2: PUSH1 0x20 000011a4: ADD 000011a5: SWAP2 000011a6: PUSH2 0x11d5 000011a9: JUMP 000011aa: JUMPDEST 000011ab: DUP3 000011ac: ADD 000011ad: SWAP2 000011ae: SWAP1 000011af: PUSH1 0x00 000011b1: MSTORE 000011b2: PUSH1 0x20 000011b4: PUSH1 0x00 000011b6: KECCAK256 000011b7: SWAP1 000011b8: JUMPDEST 000011b9: DUP2 000011ba: SLOAD 000011bb: DUP2 000011bc: MSTORE 000011bd: SWAP1 000011be: PUSH1 0x01 000011c0: ADD 000011c1: SWAP1 000011c2: PUSH1 0x20 000011c4: ADD 000011c5: DUP1 000011c6: DUP4 000011c7: GT 000011c8: PUSH2 0x11b8 000011cb: JUMPI 000011cc: DUP3 000011cd: SWAP1 000011ce: SUB 000011cf: PUSH1 0x1f 000011d1: AND 000011d2: DUP3 000011d3: ADD 000011d4: SWAP2 000011d5: JUMPDEST 000011d6: POP 000011d7: POP 000011d8: POP 000011d9: POP 000011da: POP 000011db: SWAP1 000011dc: POP 000011dd: SWAP1 000011de: JUMP 000011df: JUMPDEST 000011e0: PUSH1 0x00 000011e2: PUSH2 0x11f3 000011e5: PUSH2 0x11ec 000011e8: PUSH2 0x3150 000011eb: JUMP 000011ec: JUMPDEST 000011ed: DUP5 000011ee: DUP5 000011ef: PUSH2 0x3158 000011f2: JUMP 000011f3: JUMPDEST 000011f4: PUSH1 0x01 000011f6: SWAP1 000011f7: POP 000011f8: SWAP3 000011f9: SWAP2 000011fa: POP 000011fb: POP 000011fc: JUMP 000011fd: JUMPDEST 000011fe: PUSH2 0x1205 00001201: PUSH2 0x3150 00001204: JUMP 00001205: JUMPDEST 00001206: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000121b: AND 0000121c: PUSH1 0x00 0000121e: DUP1 0000121f: SLOAD 00001220: SWAP1 00001221: PUSH2 0x0100 00001224: EXP 00001225: SWAP1 00001226: DIV 00001227: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000123c: AND 0000123d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001252: AND 00001253: EQ 00001254: PUSH2 0x12c5 00001257: JUMPI 00001258: PUSH1 0x40 0000125a: MLOAD 0000125b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000127c: DUP2 0000127d: MSTORE 0000127e: PUSH1 0x04 00001280: ADD 00001281: DUP1 00001282: DUP1 00001283: PUSH1 0x20 00001285: ADD 00001286: DUP3 00001287: DUP2 00001288: SUB 00001289: DUP3 0000128a: MSTORE 0000128b: PUSH1 0x20 0000128d: DUP2 0000128e: MSTORE 0000128f: PUSH1 0x20 00001291: ADD 00001292: DUP1 00001293: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 000012b4: DUP2 000012b5: MSTORE 000012b6: POP 000012b7: PUSH1 0x20 000012b9: ADD 000012ba: SWAP2 000012bb: POP 000012bc: POP 000012bd: PUSH1 0x40 000012bf: MLOAD 000012c0: DUP1 000012c1: SWAP2 000012c2: SUB 000012c3: SWAP1 000012c4: REVERT 000012c5: JUMPDEST 000012c6: DUP1 000012c7: PUSH1 0x1a 000012c9: PUSH1 0x01 000012cb: PUSH2 0x0100 000012ce: EXP 000012cf: DUP2 000012d0: SLOAD 000012d1: DUP2 000012d2: PUSH1 0xff 000012d4: MUL 000012d5: NOT 000012d6: AND 000012d7: SWAP1 000012d8: DUP4 000012d9: ISZERO 000012da: ISZERO 000012db: MUL 000012dc: OR 000012dd: SWAP1 000012de: SSTORE 000012df: POP 000012e0: PUSH32 0x0ef8e9b9ffd57542540755631d2d4d23625d2b4d0ed11ccdc8f68a5f12b1345f 00001301: DUP2 00001302: PUSH1 0x40 00001304: MLOAD 00001305: DUP1 00001306: DUP3 00001307: ISZERO 00001308: ISZERO 00001309: DUP2 0000130a: MSTORE 0000130b: PUSH1 0x20 0000130d: ADD 0000130e: SWAP2 0000130f: POP 00001310: POP 00001311: PUSH1 0x40 00001313: MLOAD 00001314: DUP1 00001315: SWAP2 00001316: SUB 00001317: SWAP1 00001318: LOG1 00001319: POP 0000131a: JUMP 0000131b: JUMPDEST 0000131c: PUSH1 0x00 0000131e: PUSH1 0x0b 00001320: SLOAD 00001321: SWAP1 00001322: POP 00001323: SWAP1 00001324: JUMP 00001325: JUMPDEST 00001326: PUSH32 0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d 00001347: DUP2 00001348: JUMP 00001349: JUMPDEST 0000134a: PUSH1 0x00 0000134c: PUSH1 0x09 0000134e: SLOAD 0000134f: SWAP1 00001350: POP 00001351: SWAP1 00001352: JUMP 00001353: JUMPDEST 00001354: PUSH1 0x00 00001356: PUSH2 0x1360 00001359: DUP5 0000135a: DUP5 0000135b: DUP5 0000135c: PUSH2 0x334f 0000135f: JUMP 00001360: JUMPDEST 00001361: PUSH2 0x1421 00001364: DUP5 00001365: PUSH2 0x136c 00001368: PUSH2 0x3150 0000136b: JUMP 0000136c: JUMPDEST 0000136d: PUSH2 0x141c 00001370: DUP6 00001371: PUSH1 0x40 00001373: MLOAD 00001374: DUP1 00001375: PUSH1 0x60 00001377: ADD 00001378: PUSH1 0x40 0000137a: MSTORE 0000137b: DUP1 0000137c: PUSH1 0x28 0000137e: DUP2 0000137f: MSTORE 00001380: PUSH1 0x20 00001382: ADD 00001383: PUSH2 0x5440 00001386: PUSH1 0x28 00001388: SWAP2 00001389: CODECOPY 0000138a: PUSH1 0x05 0000138c: PUSH1 0x00 0000138e: DUP12 0000138f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013a4: AND 000013a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013ba: AND 000013bb: DUP2 000013bc: MSTORE 000013bd: PUSH1 0x20 000013bf: ADD 000013c0: SWAP1 000013c1: DUP2 000013c2: MSTORE 000013c3: PUSH1 0x20 000013c5: ADD 000013c6: PUSH1 0x00 000013c8: KECCAK256 000013c9: PUSH1 0x00 000013cb: PUSH2 0x13d2 000013ce: PUSH2 0x3150 000013d1: JUMP 000013d2: JUMPDEST 000013d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013e8: AND 000013e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013fe: AND 000013ff: DUP2 00001400: MSTORE 00001401: PUSH1 0x20 00001403: ADD 00001404: SWAP1 00001405: DUP2 00001406: MSTORE 00001407: PUSH1 0x20 00001409: ADD 0000140a: PUSH1 0x00 0000140c: KECCAK256 0000140d: SLOAD 0000140e: PUSH2 0x3749 00001411: SWAP1 00001412: SWAP3 00001413: SWAP2 00001414: SWAP1 00001415: PUSH4 0xffffffff 0000141a: AND 0000141b: JUMP 0000141c: JUMPDEST 0000141d: PUSH2 0x3158 00001420: JUMP 00001421: JUMPDEST 00001422: PUSH1 0x01 00001424: SWAP1 00001425: POP 00001426: SWAP4 00001427: SWAP3 00001428: POP 00001429: POP 0000142a: POP 0000142b: JUMP 0000142c: JUMPDEST 0000142d: PUSH1 0x00 0000142f: PUSH1 0x0a 00001431: SLOAD 00001432: DUP3 00001433: GT 00001434: ISZERO 00001435: PUSH2 0x1489 00001438: JUMPI 00001439: PUSH1 0x40 0000143b: MLOAD 0000143c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000145d: DUP2 0000145e: MSTORE 0000145f: PUSH1 0x04 00001461: ADD 00001462: DUP1 00001463: DUP1 00001464: PUSH1 0x20 00001466: ADD 00001467: DUP3 00001468: DUP2 00001469: SUB 0000146a: DUP3 0000146b: MSTORE 0000146c: PUSH1 0x2a 0000146e: DUP2 0000146f: MSTORE 00001470: PUSH1 0x20 00001472: ADD 00001473: DUP1 00001474: PUSH2 0x5385 00001477: PUSH1 0x2a 00001479: SWAP2 0000147a: CODECOPY 0000147b: PUSH1 0x40 0000147d: ADD 0000147e: SWAP2 0000147f: POP 00001480: POP 00001481: PUSH1 0x40 00001483: MLOAD 00001484: DUP1 00001485: SWAP2 00001486: SUB 00001487: SWAP1 00001488: REVERT 00001489: JUMPDEST 0000148a: PUSH1 0x00 0000148c: PUSH2 0x1493 0000148f: PUSH2 0x3809 00001492: JUMP 00001493: JUMPDEST 00001494: SWAP1 00001495: POP 00001496: PUSH2 0x14a8 00001499: DUP2 0000149a: DUP5 0000149b: PUSH2 0x3834 0000149e: SWAP1 0000149f: SWAP2 000014a0: SWAP1 000014a1: PUSH4 0xffffffff 000014a6: AND 000014a7: JUMP 000014a8: JUMPDEST 000014a9: SWAP2 000014aa: POP 000014ab: POP 000014ac: SWAP2 000014ad: SWAP1 000014ae: POP 000014af: JUMP 000014b0: JUMPDEST 000014b1: PUSH1 0x00 000014b3: PUSH1 0x0f 000014b5: PUSH1 0x00 000014b7: SWAP1 000014b8: SLOAD 000014b9: SWAP1 000014ba: PUSH2 0x0100 000014bd: EXP 000014be: SWAP1 000014bf: DIV 000014c0: PUSH1 0xff 000014c2: AND 000014c3: SWAP1 000014c4: POP 000014c5: SWAP1 000014c6: JUMP 000014c7: JUMPDEST 000014c8: PUSH2 0x14cf 000014cb: PUSH2 0x3150 000014ce: JUMP 000014cf: JUMPDEST 000014d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014e5: AND 000014e6: PUSH1 0x00 000014e8: DUP1 000014e9: SLOAD 000014ea: SWAP1 000014eb: PUSH2 0x0100 000014ee: EXP 000014ef: SWAP1 000014f0: DIV 000014f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001506: AND 00001507: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000151c: AND 0000151d: EQ 0000151e: PUSH2 0x158f 00001521: JUMPI 00001522: PUSH1 0x40 00001524: MLOAD 00001525: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001546: DUP2 00001547: MSTORE 00001548: PUSH1 0x04 0000154a: ADD 0000154b: DUP1 0000154c: DUP1 0000154d: PUSH1 0x20 0000154f: ADD 00001550: DUP3 00001551: DUP2 00001552: SUB 00001553: DUP3 00001554: MSTORE 00001555: PUSH1 0x20 00001557: DUP2 00001558: MSTORE 00001559: PUSH1 0x20 0000155b: ADD 0000155c: DUP1 0000155d: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 0000157e: DUP2 0000157f: MSTORE 00001580: POP 00001581: PUSH1 0x20 00001583: ADD 00001584: SWAP2 00001585: POP 00001586: POP 00001587: PUSH1 0x40 00001589: MLOAD 0000158a: DUP1 0000158b: SWAP2 0000158c: SUB 0000158d: SWAP1 0000158e: REVERT 0000158f: JUMPDEST 00001590: PUSH1 0x07 00001592: PUSH1 0x00 00001594: DUP3 00001595: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015aa: AND 000015ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015c0: AND 000015c1: DUP2 000015c2: MSTORE 000015c3: PUSH1 0x20 000015c5: ADD 000015c6: SWAP1 000015c7: DUP2 000015c8: MSTORE 000015c9: PUSH1 0x20 000015cb: ADD 000015cc: PUSH1 0x00 000015ce: KECCAK256 000015cf: PUSH1 0x00 000015d1: SWAP1 000015d2: SLOAD 000015d3: SWAP1 000015d4: PUSH2 0x0100 000015d7: EXP 000015d8: SWAP1 000015d9: DIV 000015da: PUSH1 0xff 000015dc: AND 000015dd: PUSH2 0x164e 000015e0: JUMPI 000015e1: PUSH1 0x40 000015e3: MLOAD 000015e4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001605: DUP2 00001606: MSTORE 00001607: PUSH1 0x04 00001609: ADD 0000160a: DUP1 0000160b: DUP1 0000160c: PUSH1 0x20 0000160e: ADD 0000160f: DUP3 00001610: DUP2 00001611: SUB 00001612: DUP3 00001613: MSTORE 00001614: PUSH1 0x1b 00001616: DUP2 00001617: MSTORE 00001618: PUSH1 0x20 0000161a: ADD 0000161b: DUP1 0000161c: PUSH32 0x4163636f756e7420697320616c7265616479206578636c756465640000000000 0000163d: DUP2 0000163e: MSTORE 0000163f: POP 00001640: PUSH1 0x20 00001642: ADD 00001643: SWAP2 00001644: POP 00001645: POP 00001646: PUSH1 0x40 00001648: MLOAD 00001649: DUP1 0000164a: SWAP2 0000164b: SUB 0000164c: SWAP1 0000164d: REVERT 0000164e: JUMPDEST 0000164f: PUSH1 0x00 00001651: JUMPDEST 00001652: PUSH1 0x08 00001654: DUP1 00001655: SLOAD 00001656: SWAP1 00001657: POP 00001658: DUP2 00001659: LT 0000165a: ISZERO 0000165b: PUSH2 0x184d 0000165e: JUMPI 0000165f: DUP2 00001660: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001675: AND 00001676: PUSH1 0x08 00001678: DUP3 00001679: DUP2 0000167a: SLOAD 0000167b: DUP2 0000167c: LT 0000167d: PUSH2 0x1682 00001680: JUMPI 00001681: INVALID 00001682: JUMPDEST 00001683: SWAP1 00001684: PUSH1 0x00 00001686: MSTORE 00001687: PUSH1 0x20 00001689: PUSH1 0x00 0000168b: KECCAK256 0000168c: ADD 0000168d: PUSH1 0x00 0000168f: SWAP1 00001690: SLOAD 00001691: SWAP1 00001692: PUSH2 0x0100 00001695: EXP 00001696: SWAP1 00001697: DIV 00001698: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016ad: AND 000016ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016c3: AND 000016c4: EQ 000016c5: ISZERO 000016c6: PUSH2 0x1840 000016c9: JUMPI 000016ca: PUSH1 0x08 000016cc: PUSH1 0x01 000016ce: PUSH1 0x08 000016d0: DUP1 000016d1: SLOAD 000016d2: SWAP1 000016d3: POP 000016d4: SUB 000016d5: DUP2 000016d6: SLOAD 000016d7: DUP2 000016d8: LT 000016d9: PUSH2 0x16de 000016dc: JUMPI 000016dd: INVALID 000016de: JUMPDEST 000016df: SWAP1 000016e0: PUSH1 0x00 000016e2: MSTORE 000016e3: PUSH1 0x20 000016e5: PUSH1 0x00 000016e7: KECCAK256 000016e8: ADD 000016e9: PUSH1 0x00 000016eb: SWAP1 000016ec: SLOAD 000016ed: SWAP1 000016ee: PUSH2 0x0100 000016f1: EXP 000016f2: SWAP1 000016f3: DIV 000016f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001709: AND 0000170a: PUSH1 0x08 0000170c: DUP3 0000170d: DUP2 0000170e: SLOAD 0000170f: DUP2 00001710: LT 00001711: PUSH2 0x1716 00001714: JUMPI 00001715: INVALID 00001716: JUMPDEST 00001717: SWAP1 00001718: PUSH1 0x00 0000171a: MSTORE 0000171b: PUSH1 0x20 0000171d: PUSH1 0x00 0000171f: KECCAK256 00001720: ADD 00001721: PUSH1 0x00 00001723: PUSH2 0x0100 00001726: EXP 00001727: DUP2 00001728: SLOAD 00001729: DUP2 0000172a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000173f: MUL 00001740: NOT 00001741: AND 00001742: SWAP1 00001743: DUP4 00001744: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001759: AND 0000175a: MUL 0000175b: OR 0000175c: SWAP1 0000175d: SSTORE 0000175e: POP 0000175f: PUSH1 0x00 00001761: PUSH1 0x04 00001763: PUSH1 0x00 00001765: DUP5 00001766: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000177b: AND 0000177c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001791: AND 00001792: DUP2 00001793: MSTORE 00001794: PUSH1 0x20 00001796: ADD 00001797: SWAP1 00001798: DUP2 00001799: MSTORE 0000179a: PUSH1 0x20 0000179c: ADD 0000179d: PUSH1 0x00 0000179f: KECCAK256 000017a0: DUP2 000017a1: SWAP1 000017a2: SSTORE 000017a3: POP 000017a4: PUSH1 0x00 000017a6: PUSH1 0x07 000017a8: PUSH1 0x00 000017aa: DUP5 000017ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017c0: AND 000017c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017d6: AND 000017d7: DUP2 000017d8: MSTORE 000017d9: PUSH1 0x20 000017db: ADD 000017dc: SWAP1 000017dd: DUP2 000017de: MSTORE 000017df: PUSH1 0x20 000017e1: ADD 000017e2: PUSH1 0x00 000017e4: KECCAK256 000017e5: PUSH1 0x00 000017e7: PUSH2 0x0100 000017ea: EXP 000017eb: DUP2 000017ec: SLOAD 000017ed: DUP2 000017ee: PUSH1 0xff 000017f0: MUL 000017f1: NOT 000017f2: AND 000017f3: SWAP1 000017f4: DUP4 000017f5: ISZERO 000017f6: ISZERO 000017f7: MUL 000017f8: OR 000017f9: SWAP1 000017fa: SSTORE 000017fb: POP 000017fc: PUSH1 0x08 000017fe: DUP1 000017ff: SLOAD 00001800: DUP1 00001801: PUSH2 0x1806 00001804: JUMPI 00001805: INVALID 00001806: JUMPDEST 00001807: PUSH1 0x01 00001809: SWAP1 0000180a: SUB 0000180b: DUP2 0000180c: DUP2 0000180d: SWAP1 0000180e: PUSH1 0x00 00001810: MSTORE 00001811: PUSH1 0x20 00001813: PUSH1 0x00 00001815: KECCAK256 00001816: ADD 00001817: PUSH1 0x00 00001819: PUSH2 0x0100 0000181c: EXP 0000181d: DUP2 0000181e: SLOAD 0000181f: SWAP1 00001820: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001835: MUL 00001836: NOT 00001837: AND 00001838: SWAP1 00001839: SSTORE 0000183a: SWAP1 0000183b: SSTORE 0000183c: PUSH2 0x184d 0000183f: JUMP 00001840: JUMPDEST 00001841: DUP1 00001842: DUP1 00001843: PUSH1 0x01 00001845: ADD 00001846: SWAP2 00001847: POP 00001848: POP 00001849: PUSH2 0x1651 0000184c: JUMP 0000184d: JUMPDEST 0000184e: POP 0000184f: POP 00001850: JUMP 00001851: JUMPDEST 00001852: PUSH1 0x00 00001854: PUSH2 0x18fa 00001857: PUSH2 0x185e 0000185a: PUSH2 0x3150 0000185d: JUMP 0000185e: JUMPDEST 0000185f: DUP5 00001860: PUSH2 0x18f5 00001863: DUP6 00001864: PUSH1 0x05 00001866: PUSH1 0x00 00001868: PUSH2 0x186f 0000186b: PUSH2 0x3150 0000186e: JUMP 0000186f: JUMPDEST 00001870: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001885: AND 00001886: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000189b: AND 0000189c: DUP2 0000189d: MSTORE 0000189e: PUSH1 0x20 000018a0: ADD 000018a1: SWAP1 000018a2: DUP2 000018a3: MSTORE 000018a4: PUSH1 0x20 000018a6: ADD 000018a7: PUSH1 0x00 000018a9: KECCAK256 000018aa: PUSH1 0x00 000018ac: DUP10 000018ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018c2: AND 000018c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018d8: AND 000018d9: DUP2 000018da: MSTORE 000018db: PUSH1 0x20 000018dd: ADD 000018de: SWAP1 000018df: DUP2 000018e0: MSTORE 000018e1: PUSH1 0x20 000018e3: ADD 000018e4: PUSH1 0x00 000018e6: KECCAK256 000018e7: SLOAD 000018e8: PUSH2 0x387e 000018eb: SWAP1 000018ec: SWAP2 000018ed: SWAP1 000018ee: PUSH4 0xffffffff 000018f3: AND 000018f4: JUMP 000018f5: JUMPDEST 000018f6: PUSH2 0x3158 000018f9: JUMP 000018fa: JUMPDEST 000018fb: PUSH1 0x01 000018fd: SWAP1 000018fe: POP 000018ff: SWAP3 00001900: SWAP2 00001901: POP 00001902: POP 00001903: JUMP 00001904: JUMPDEST 00001905: PUSH1 0x10 00001907: SLOAD 00001908: DUP2 00001909: JUMP 0000190a: JUMPDEST 0000190b: PUSH1 0x14 0000190d: SLOAD 0000190e: DUP2 0000190f: JUMP 00001910: JUMPDEST 00001911: PUSH1 0x00 00001913: PUSH2 0x191a 00001916: PUSH2 0x3150 00001919: JUMP 0000191a: JUMPDEST 0000191b: SWAP1 0000191c: POP 0000191d: PUSH1 0x07 0000191f: PUSH1 0x00 00001921: DUP3 00001922: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001937: AND 00001938: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000194d: AND 0000194e: DUP2 0000194f: MSTORE 00001950: PUSH1 0x20 00001952: ADD 00001953: SWAP1 00001954: DUP2 00001955: MSTORE 00001956: PUSH1 0x20 00001958: ADD 00001959: PUSH1 0x00 0000195b: KECCAK256 0000195c: PUSH1 0x00 0000195e: SWAP1 0000195f: SLOAD 00001960: SWAP1 00001961: PUSH2 0x0100 00001964: EXP 00001965: SWAP1 00001966: DIV 00001967: PUSH1 0xff 00001969: AND 0000196a: ISZERO 0000196b: PUSH2 0x19bf 0000196e: JUMPI 0000196f: PUSH1 0x40 00001971: MLOAD 00001972: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001993: DUP2 00001994: MSTORE 00001995: PUSH1 0x04 00001997: ADD 00001998: DUP1 00001999: DUP1 0000199a: PUSH1 0x20 0000199c: ADD 0000199d: DUP3 0000199e: DUP2 0000199f: SUB 000019a0: DUP3 000019a1: MSTORE 000019a2: PUSH1 0x2c 000019a4: DUP2 000019a5: MSTORE 000019a6: PUSH1 0x20 000019a8: ADD 000019a9: DUP1 000019aa: PUSH2 0x54da 000019ad: PUSH1 0x2c 000019af: SWAP2 000019b0: CODECOPY 000019b1: PUSH1 0x40 000019b3: ADD 000019b4: SWAP2 000019b5: POP 000019b6: POP 000019b7: PUSH1 0x40 000019b9: MLOAD 000019ba: DUP1 000019bb: SWAP2 000019bc: SUB 000019bd: SWAP1 000019be: REVERT 000019bf: JUMPDEST 000019c0: PUSH2 0x19c7 000019c3: PUSH2 0x52b7 000019c6: JUMP 000019c7: JUMPDEST 000019c8: PUSH2 0x19d0 000019cb: DUP4 000019cc: PUSH2 0x3906 000019cf: JUMP 000019d0: JUMPDEST 000019d1: SWAP2 000019d2: POP 000019d3: POP 000019d4: PUSH2 0x1a29 000019d7: DUP2 000019d8: PUSH1 0x20 000019da: ADD 000019db: MLOAD 000019dc: PUSH1 0x03 000019de: PUSH1 0x00 000019e0: DUP6 000019e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019f6: AND 000019f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a0c: AND 00001a0d: DUP2 00001a0e: MSTORE 00001a0f: PUSH1 0x20 00001a11: ADD 00001a12: SWAP1 00001a13: DUP2 00001a14: MSTORE 00001a15: PUSH1 0x20 00001a17: ADD 00001a18: PUSH1 0x00 00001a1a: KECCAK256 00001a1b: SLOAD 00001a1c: PUSH2 0x3932 00001a1f: SWAP1 00001a20: SWAP2 00001a21: SWAP1 00001a22: PUSH4 0xffffffff 00001a27: AND 00001a28: JUMP 00001a29: JUMPDEST 00001a2a: PUSH1 0x03 00001a2c: PUSH1 0x00 00001a2e: DUP5 00001a2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a44: AND 00001a45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a5a: AND 00001a5b: DUP2 00001a5c: MSTORE 00001a5d: PUSH1 0x20 00001a5f: ADD 00001a60: SWAP1 00001a61: DUP2 00001a62: MSTORE 00001a63: PUSH1 0x20 00001a65: ADD 00001a66: PUSH1 0x00 00001a68: KECCAK256 00001a69: DUP2 00001a6a: SWAP1 00001a6b: SSTORE 00001a6c: POP 00001a6d: PUSH2 0x1a85 00001a70: DUP2 00001a71: PUSH1 0x20 00001a73: ADD 00001a74: MLOAD 00001a75: PUSH1 0x0a 00001a77: SLOAD 00001a78: PUSH2 0x3932 00001a7b: SWAP1 00001a7c: SWAP2 00001a7d: SWAP1 00001a7e: PUSH4 0xffffffff 00001a83: AND 00001a84: JUMP 00001a85: JUMPDEST 00001a86: PUSH1 0x0a 00001a88: DUP2 00001a89: SWAP1 00001a8a: SSTORE 00001a8b: POP 00001a8c: PUSH2 0x1aa0 00001a8f: DUP4 00001a90: PUSH1 0x0b 00001a92: SLOAD 00001a93: PUSH2 0x387e 00001a96: SWAP1 00001a97: SWAP2 00001a98: SWAP1 00001a99: PUSH4 0xffffffff 00001a9e: AND 00001a9f: JUMP 00001aa0: JUMPDEST 00001aa1: PUSH1 0x0b 00001aa3: DUP2 00001aa4: SWAP1 00001aa5: SSTORE 00001aa6: POP 00001aa7: POP 00001aa8: POP 00001aa9: POP 00001aaa: JUMP 00001aab: JUMPDEST 00001aac: PUSH1 0x00 00001aae: PUSH1 0x0c 00001ab0: SLOAD 00001ab1: SWAP1 00001ab2: POP 00001ab3: SWAP1 00001ab4: JUMP 00001ab5: JUMPDEST 00001ab6: PUSH2 0x1abd 00001ab9: PUSH2 0x3150 00001abc: JUMP 00001abd: JUMPDEST 00001abe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ad3: AND 00001ad4: PUSH1 0x00 00001ad6: DUP1 00001ad7: SLOAD 00001ad8: SWAP1 00001ad9: PUSH2 0x0100 00001adc: EXP 00001add: SWAP1 00001ade: DIV 00001adf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001af4: AND 00001af5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b0a: AND 00001b0b: EQ 00001b0c: PUSH2 0x1b7d 00001b0f: JUMPI 00001b10: PUSH1 0x40 00001b12: MLOAD 00001b13: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001b34: DUP2 00001b35: MSTORE 00001b36: PUSH1 0x04 00001b38: ADD 00001b39: DUP1 00001b3a: DUP1 00001b3b: PUSH1 0x20 00001b3d: ADD 00001b3e: DUP3 00001b3f: DUP2 00001b40: SUB 00001b41: DUP3 00001b42: MSTORE 00001b43: PUSH1 0x20 00001b45: DUP2 00001b46: MSTORE 00001b47: PUSH1 0x20 00001b49: ADD 00001b4a: DUP1 00001b4b: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00001b6c: DUP2 00001b6d: MSTORE 00001b6e: POP 00001b6f: PUSH1 0x20 00001b71: ADD 00001b72: SWAP2 00001b73: POP 00001b74: POP 00001b75: PUSH1 0x40 00001b77: MLOAD 00001b78: DUP1 00001b79: SWAP2 00001b7a: SUB 00001b7b: SWAP1 00001b7c: REVERT 00001b7d: JUMPDEST 00001b7e: PUSH2 0x1baa 00001b81: PUSH1 0x02 00001b83: DUP3 00001b84: ADD 00001b85: PUSH1 0x0a 00001b87: EXP 00001b88: PUSH2 0x1b9c 00001b8b: DUP5 00001b8c: PUSH1 0x09 00001b8e: SLOAD 00001b8f: PUSH2 0x397c 00001b92: SWAP1 00001b93: SWAP2 00001b94: SWAP1 00001b95: PUSH4 0xffffffff 00001b9a: AND 00001b9b: JUMP 00001b9c: JUMPDEST 00001b9d: PUSH2 0x3834 00001ba0: SWAP1 00001ba1: SWAP2 00001ba2: SWAP1 00001ba3: PUSH4 0xffffffff 00001ba8: AND 00001ba9: JUMP 00001baa: JUMPDEST 00001bab: PUSH1 0x18 00001bad: DUP2 00001bae: SWAP1 00001baf: SSTORE 00001bb0: POP 00001bb1: POP 00001bb2: POP 00001bb3: JUMP 00001bb4: JUMPDEST 00001bb5: PUSH2 0x1bbc 00001bb8: PUSH2 0x3150 00001bbb: JUMP 00001bbc: JUMPDEST 00001bbd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bd2: AND 00001bd3: PUSH1 0x00 00001bd5: DUP1 00001bd6: SLOAD 00001bd7: SWAP1 00001bd8: PUSH2 0x0100 00001bdb: EXP 00001bdc: SWAP1 00001bdd: DIV 00001bde: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bf3: AND 00001bf4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c09: AND 00001c0a: EQ 00001c0b: PUSH2 0x1c7c 00001c0e: JUMPI 00001c0f: PUSH1 0x40 00001c11: MLOAD 00001c12: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c33: DUP2 00001c34: MSTORE 00001c35: PUSH1 0x04 00001c37: ADD 00001c38: DUP1 00001c39: DUP1 00001c3a: PUSH1 0x20 00001c3c: ADD 00001c3d: DUP3 00001c3e: DUP2 00001c3f: SUB 00001c40: DUP3 00001c41: MSTORE 00001c42: PUSH1 0x20 00001c44: DUP2 00001c45: MSTORE 00001c46: PUSH1 0x20 00001c48: ADD 00001c49: DUP1 00001c4a: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00001c6b: DUP2 00001c6c: MSTORE 00001c6d: POP 00001c6e: PUSH1 0x20 00001c70: ADD 00001c71: SWAP2 00001c72: POP 00001c73: POP 00001c74: PUSH1 0x40 00001c76: MLOAD 00001c77: DUP1 00001c78: SWAP2 00001c79: SUB 00001c7a: SWAP1 00001c7b: REVERT 00001c7c: JUMPDEST 00001c7d: PUSH1 0x01 00001c7f: PUSH1 0x06 00001c81: PUSH1 0x00 00001c83: DUP4 00001c84: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c99: AND 00001c9a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001caf: AND 00001cb0: DUP2 00001cb1: MSTORE 00001cb2: PUSH1 0x20 00001cb4: ADD 00001cb5: SWAP1 00001cb6: DUP2 00001cb7: MSTORE 00001cb8: PUSH1 0x20 00001cba: ADD 00001cbb: PUSH1 0x00 00001cbd: KECCAK256 00001cbe: PUSH1 0x00 00001cc0: PUSH2 0x0100 00001cc3: EXP 00001cc4: DUP2 00001cc5: SLOAD 00001cc6: DUP2 00001cc7: PUSH1 0xff 00001cc9: MUL 00001cca: NOT 00001ccb: AND 00001ccc: SWAP1 00001ccd: DUP4 00001cce: ISZERO 00001ccf: ISZERO 00001cd0: MUL 00001cd1: OR 00001cd2: SWAP1 00001cd3: SSTORE 00001cd4: POP 00001cd5: POP 00001cd6: JUMP 00001cd7: JUMPDEST 00001cd8: PUSH1 0x00 00001cda: PUSH1 0x09 00001cdc: SLOAD 00001cdd: DUP4 00001cde: GT 00001cdf: ISZERO 00001ce0: PUSH2 0x1d51 00001ce3: JUMPI 00001ce4: PUSH1 0x40 00001ce6: MLOAD 00001ce7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001d08: DUP2 00001d09: MSTORE 00001d0a: PUSH1 0x04 00001d0c: ADD 00001d0d: DUP1 00001d0e: DUP1 00001d0f: PUSH1 0x20 00001d11: ADD 00001d12: DUP3 00001d13: DUP2 00001d14: SUB 00001d15: DUP3 00001d16: MSTORE 00001d17: PUSH1 0x1f 00001d19: DUP2 00001d1a: MSTORE 00001d1b: PUSH1 0x20 00001d1d: ADD 00001d1e: DUP1 00001d1f: PUSH32 0x416d6f756e74206d757374206265206c657373207468616e20737570706c7900 00001d40: DUP2 00001d41: MSTORE 00001d42: POP 00001d43: PUSH1 0x20 00001d45: ADD 00001d46: SWAP2 00001d47: POP 00001d48: POP 00001d49: PUSH1 0x40 00001d4b: MLOAD 00001d4c: DUP1 00001d4d: SWAP2 00001d4e: SUB 00001d4f: SWAP1 00001d50: REVERT 00001d51: JUMPDEST 00001d52: PUSH2 0x1d59 00001d55: PUSH2 0x52b7 00001d58: JUMP 00001d59: JUMPDEST 00001d5a: PUSH2 0x1d62 00001d5d: DUP5 00001d5e: PUSH2 0x3906 00001d61: JUMP 00001d62: JUMPDEST 00001d63: SWAP2 00001d64: POP 00001d65: POP 00001d66: DUP3 00001d67: PUSH2 0x1d77 00001d6a: JUMPI 00001d6b: DUP1 00001d6c: PUSH1 0x20 00001d6e: ADD 00001d6f: MLOAD 00001d70: SWAP2 00001d71: POP 00001d72: POP 00001d73: PUSH2 0x1d80 00001d76: JUMP 00001d77: JUMPDEST 00001d78: DUP1 00001d79: PUSH1 0x40 00001d7b: ADD 00001d7c: MLOAD 00001d7d: SWAP2 00001d7e: POP 00001d7f: POP 00001d80: JUMPDEST 00001d81: SWAP3 00001d82: SWAP2 00001d83: POP 00001d84: POP 00001d85: JUMP 00001d86: JUMPDEST 00001d87: PUSH2 0x1d8e 00001d8a: PUSH2 0x3150 00001d8d: JUMP 00001d8e: JUMPDEST 00001d8f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001da4: AND 00001da5: PUSH1 0x00 00001da7: DUP1 00001da8: SLOAD 00001da9: SWAP1 00001daa: PUSH2 0x0100 00001dad: EXP 00001dae: SWAP1 00001daf: DIV 00001db0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dc5: AND 00001dc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ddb: AND 00001ddc: EQ 00001ddd: PUSH2 0x1e4e 00001de0: JUMPI 00001de1: PUSH1 0x40 00001de3: MLOAD 00001de4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001e05: DUP2 00001e06: MSTORE 00001e07: PUSH1 0x04 00001e09: ADD 00001e0a: DUP1 00001e0b: DUP1 00001e0c: PUSH1 0x20 00001e0e: ADD 00001e0f: DUP3 00001e10: DUP2 00001e11: SUB 00001e12: DUP3 00001e13: MSTORE 00001e14: PUSH1 0x20 00001e16: DUP2 00001e17: MSTORE 00001e18: PUSH1 0x20 00001e1a: ADD 00001e1b: DUP1 00001e1c: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00001e3d: DUP2 00001e3e: MSTORE 00001e3f: POP 00001e40: PUSH1 0x20 00001e42: ADD 00001e43: SWAP2 00001e44: POP 00001e45: POP 00001e46: PUSH1 0x40 00001e48: MLOAD 00001e49: DUP1 00001e4a: SWAP2 00001e4b: SUB 00001e4c: SWAP1 00001e4d: REVERT 00001e4e: JUMPDEST 00001e4f: DUP1 00001e50: PUSH1 0x14 00001e52: DUP2 00001e53: SWAP1 00001e54: SSTORE 00001e55: POP 00001e56: POP 00001e57: JUMP 00001e58: JUMPDEST 00001e59: PUSH32 0x0000000000000000000000000dc1cd1c3e26c31e245b3dd708cabb289b857f5b 00001e7a: DUP2 00001e7b: JUMP 00001e7c: JUMPDEST 00001e7d: PUSH2 0x1e84 00001e80: PUSH2 0x3150 00001e83: JUMP 00001e84: JUMPDEST 00001e85: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e9a: AND 00001e9b: PUSH1 0x00 00001e9d: DUP1 00001e9e: SLOAD 00001e9f: SWAP1 00001ea0: PUSH2 0x0100 00001ea3: EXP 00001ea4: SWAP1 00001ea5: DIV 00001ea6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ebb: AND 00001ebc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ed1: AND 00001ed2: EQ 00001ed3: PUSH2 0x1f44 00001ed6: JUMPI 00001ed7: PUSH1 0x40 00001ed9: MLOAD 00001eda: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001efb: DUP2 00001efc: MSTORE 00001efd: PUSH1 0x04 00001eff: ADD 00001f00: DUP1 00001f01: DUP1 00001f02: PUSH1 0x20 00001f04: ADD 00001f05: DUP3 00001f06: DUP2 00001f07: SUB 00001f08: DUP3 00001f09: MSTORE 00001f0a: PUSH1 0x20 00001f0c: DUP2 00001f0d: MSTORE 00001f0e: PUSH1 0x20 00001f10: ADD 00001f11: DUP1 00001f12: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00001f33: DUP2 00001f34: MSTORE 00001f35: POP 00001f36: PUSH1 0x20 00001f38: ADD 00001f39: SWAP2 00001f3a: POP 00001f3b: POP 00001f3c: PUSH1 0x40 00001f3e: MLOAD 00001f3f: DUP1 00001f40: SWAP2 00001f41: SUB 00001f42: SWAP1 00001f43: REVERT 00001f44: JUMPDEST 00001f45: PUSH1 0x07 00001f47: PUSH1 0x00 00001f49: DUP3 00001f4a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f5f: AND 00001f60: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f75: AND 00001f76: DUP2 00001f77: MSTORE 00001f78: PUSH1 0x20 00001f7a: ADD 00001f7b: SWAP1 00001f7c: DUP2 00001f7d: MSTORE 00001f7e: PUSH1 0x20 00001f80: ADD 00001f81: PUSH1 0x00 00001f83: KECCAK256 00001f84: PUSH1 0x00 00001f86: SWAP1 00001f87: SLOAD 00001f88: SWAP1 00001f89: PUSH2 0x0100 00001f8c: EXP 00001f8d: SWAP1 00001f8e: DIV 00001f8f: PUSH1 0xff 00001f91: AND 00001f92: ISZERO 00001f93: PUSH2 0x2004 00001f96: JUMPI 00001f97: PUSH1 0x40 00001f99: MLOAD 00001f9a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001fbb: DUP2 00001fbc: MSTORE 00001fbd: PUSH1 0x04 00001fbf: ADD 00001fc0: DUP1 00001fc1: DUP1 00001fc2: PUSH1 0x20 00001fc4: ADD 00001fc5: DUP3 00001fc6: DUP2 00001fc7: SUB 00001fc8: DUP3 00001fc9: MSTORE 00001fca: PUSH1 0x1b 00001fcc: DUP2 00001fcd: MSTORE 00001fce: PUSH1 0x20 00001fd0: ADD 00001fd1: DUP1 00001fd2: PUSH32 0x4163636f756e7420697320616c7265616479206578636c756465640000000000 00001ff3: DUP2 00001ff4: MSTORE 00001ff5: POP 00001ff6: PUSH1 0x20 00001ff8: ADD 00001ff9: SWAP2 00001ffa: POP 00001ffb: POP 00001ffc: PUSH1 0x40 00001ffe: MLOAD 00001fff: DUP1 00002000: SWAP2 00002001: SUB 00002002: SWAP1 00002003: REVERT 00002004: JUMPDEST 00002005: PUSH1 0x00 00002007: PUSH1 0x03 00002009: PUSH1 0x00 0000200b: DUP4 0000200c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002021: AND 00002022: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002037: AND 00002038: DUP2 00002039: MSTORE 0000203a: PUSH1 0x20 0000203c: ADD 0000203d: SWAP1 0000203e: DUP2 0000203f: MSTORE 00002040: PUSH1 0x20 00002042: ADD 00002043: PUSH1 0x00 00002045: KECCAK256 00002046: SLOAD 00002047: GT 00002048: ISZERO 00002049: PUSH2 0x20d8 0000204c: JUMPI 0000204d: PUSH2 0x2094 00002050: PUSH1 0x03 00002052: PUSH1 0x00 00002054: DUP4 00002055: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000206a: AND 0000206b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002080: AND 00002081: DUP2 00002082: MSTORE 00002083: PUSH1 0x20 00002085: ADD 00002086: SWAP1 00002087: DUP2 00002088: MSTORE 00002089: PUSH1 0x20 0000208b: ADD 0000208c: PUSH1 0x00 0000208e: KECCAK256 0000208f: SLOAD 00002090: PUSH2 0x142c 00002093: JUMP 00002094: JUMPDEST 00002095: PUSH1 0x04 00002097: PUSH1 0x00 00002099: DUP4 0000209a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020af: AND 000020b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020c5: AND 000020c6: DUP2 000020c7: MSTORE 000020c8: PUSH1 0x20 000020ca: ADD 000020cb: SWAP1 000020cc: DUP2 000020cd: MSTORE 000020ce: PUSH1 0x20 000020d0: ADD 000020d1: PUSH1 0x00 000020d3: KECCAK256 000020d4: DUP2 000020d5: SWAP1 000020d6: SSTORE 000020d7: POP 000020d8: JUMPDEST 000020d9: PUSH1 0x01 000020db: PUSH1 0x07 000020dd: PUSH1 0x00 000020df: DUP4 000020e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020f5: AND 000020f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000210b: AND 0000210c: DUP2 0000210d: MSTORE 0000210e: PUSH1 0x20 00002110: ADD 00002111: SWAP1 00002112: DUP2 00002113: MSTORE 00002114: PUSH1 0x20 00002116: ADD 00002117: PUSH1 0x00 00002119: KECCAK256 0000211a: PUSH1 0x00 0000211c: PUSH2 0x0100 0000211f: EXP 00002120: DUP2 00002121: SLOAD 00002122: DUP2 00002123: PUSH1 0xff 00002125: MUL 00002126: NOT 00002127: AND 00002128: SWAP1 00002129: DUP4 0000212a: ISZERO 0000212b: ISZERO 0000212c: MUL 0000212d: OR 0000212e: SWAP1 0000212f: SSTORE 00002130: POP 00002131: PUSH1 0x08 00002133: DUP2 00002134: SWAP1 00002135: DUP1 00002136: PUSH1 0x01 00002138: DUP2 00002139: SLOAD 0000213a: ADD 0000213b: DUP1 0000213c: DUP3 0000213d: SSTORE 0000213e: DUP1 0000213f: SWAP2 00002140: POP 00002141: POP 00002142: PUSH1 0x01 00002144: SWAP1 00002145: SUB 00002146: SWAP1 00002147: PUSH1 0x00 00002149: MSTORE 0000214a: PUSH1 0x20 0000214c: PUSH1 0x00 0000214e: KECCAK256 0000214f: ADD 00002150: PUSH1 0x00 00002152: SWAP1 00002153: SWAP2 00002154: SWAP1 00002155: SWAP2 00002156: SWAP1 00002157: SWAP2 00002158: PUSH2 0x0100 0000215b: EXP 0000215c: DUP2 0000215d: SLOAD 0000215e: DUP2 0000215f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002174: MUL 00002175: NOT 00002176: AND 00002177: SWAP1 00002178: DUP4 00002179: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000218e: AND 0000218f: MUL 00002190: OR 00002191: SWAP1 00002192: SSTORE 00002193: POP 00002194: POP 00002195: JUMP 00002196: JUMPDEST 00002197: PUSH1 0x00 00002199: PUSH1 0x06 0000219b: PUSH1 0x00 0000219d: DUP4 0000219e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021b3: AND 000021b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021c9: AND 000021ca: DUP2 000021cb: MSTORE 000021cc: PUSH1 0x20 000021ce: ADD 000021cf: SWAP1 000021d0: DUP2 000021d1: MSTORE 000021d2: PUSH1 0x20 000021d4: ADD 000021d5: PUSH1 0x00 000021d7: KECCAK256 000021d8: PUSH1 0x00 000021da: SWAP1 000021db: SLOAD 000021dc: SWAP1 000021dd: PUSH2 0x0100 000021e0: EXP 000021e1: SWAP1 000021e2: DIV 000021e3: PUSH1 0xff 000021e5: AND 000021e6: SWAP1 000021e7: POP 000021e8: SWAP2 000021e9: SWAP1 000021ea: POP 000021eb: JUMP 000021ec: JUMPDEST 000021ed: PUSH1 0x1a 000021ef: PUSH1 0x01 000021f1: SWAP1 000021f2: SLOAD 000021f3: SWAP1 000021f4: PUSH2 0x0100 000021f7: EXP 000021f8: SWAP1 000021f9: DIV 000021fa: PUSH1 0xff 000021fc: AND 000021fd: DUP2 000021fe: JUMP 000021ff: JUMPDEST 00002200: PUSH1 0x00 00002202: PUSH1 0x07 00002204: PUSH1 0x00 00002206: DUP4 00002207: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000221c: AND 0000221d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002232: AND 00002233: DUP2 00002234: MSTORE 00002235: PUSH1 0x20 00002237: ADD 00002238: SWAP1 00002239: DUP2 0000223a: MSTORE 0000223b: PUSH1 0x20 0000223d: ADD 0000223e: PUSH1 0x00 00002240: KECCAK256 00002241: PUSH1 0x00 00002243: SWAP1 00002244: SLOAD 00002245: SWAP1 00002246: PUSH2 0x0100 00002249: EXP 0000224a: SWAP1 0000224b: DIV 0000224c: PUSH1 0xff 0000224e: AND 0000224f: ISZERO 00002250: PUSH2 0x229a 00002253: JUMPI 00002254: PUSH1 0x04 00002256: PUSH1 0x00 00002258: DUP4 00002259: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000226e: AND 0000226f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002284: AND 00002285: DUP2 00002286: MSTORE 00002287: PUSH1 0x20 00002289: ADD 0000228a: SWAP1 0000228b: DUP2 0000228c: MSTORE 0000228d: PUSH1 0x20 0000228f: ADD 00002290: PUSH1 0x00 00002292: KECCAK256 00002293: SLOAD 00002294: SWAP1 00002295: POP 00002296: PUSH2 0x22e5 00002299: JUMP 0000229a: JUMPDEST 0000229b: PUSH2 0x22e2 0000229e: PUSH1 0x03 000022a0: PUSH1 0x00 000022a2: DUP5 000022a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022b8: AND 000022b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022ce: AND 000022cf: DUP2 000022d0: MSTORE 000022d1: PUSH1 0x20 000022d3: ADD 000022d4: SWAP1 000022d5: DUP2 000022d6: MSTORE 000022d7: PUSH1 0x20 000022d9: ADD 000022da: PUSH1 0x00 000022dc: KECCAK256 000022dd: SLOAD 000022de: PUSH2 0x142c 000022e1: JUMP 000022e2: JUMPDEST 000022e3: SWAP1 000022e4: POP 000022e5: JUMPDEST 000022e6: SWAP2 000022e7: SWAP1 000022e8: POP 000022e9: JUMP 000022ea: JUMPDEST 000022eb: PUSH2 0x22f2 000022ee: PUSH2 0x3150 000022f1: JUMP 000022f2: JUMPDEST 000022f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002308: AND 00002309: PUSH1 0x00 0000230b: DUP1 0000230c: SLOAD 0000230d: SWAP1 0000230e: PUSH2 0x0100 00002311: EXP 00002312: SWAP1 00002313: DIV 00002314: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002329: AND 0000232a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000233f: AND 00002340: EQ 00002341: PUSH2 0x23b2 00002344: JUMPI 00002345: PUSH1 0x40 00002347: MLOAD 00002348: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002369: DUP2 0000236a: MSTORE 0000236b: PUSH1 0x04 0000236d: ADD 0000236e: DUP1 0000236f: DUP1 00002370: PUSH1 0x20 00002372: ADD 00002373: DUP3 00002374: DUP2 00002375: SUB 00002376: DUP3 00002377: MSTORE 00002378: PUSH1 0x20 0000237a: DUP2 0000237b: MSTORE 0000237c: PUSH1 0x20 0000237e: ADD 0000237f: DUP1 00002380: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 000023a1: DUP2 000023a2: MSTORE 000023a3: POP 000023a4: PUSH1 0x20 000023a6: ADD 000023a7: SWAP2 000023a8: POP 000023a9: POP 000023aa: PUSH1 0x40 000023ac: MLOAD 000023ad: DUP1 000023ae: SWAP2 000023af: SUB 000023b0: SWAP1 000023b1: REVERT 000023b2: JUMPDEST 000023b3: PUSH1 0x00 000023b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023ca: AND 000023cb: PUSH1 0x00 000023cd: DUP1 000023ce: SLOAD 000023cf: SWAP1 000023d0: PUSH2 0x0100 000023d3: EXP 000023d4: SWAP1 000023d5: DIV 000023d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023eb: AND 000023ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002401: AND 00002402: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002423: PUSH1 0x40 00002425: MLOAD 00002426: PUSH1 0x40 00002428: MLOAD 00002429: DUP1 0000242a: SWAP2 0000242b: SUB 0000242c: SWAP1 0000242d: LOG3 0000242e: PUSH1 0x00 00002430: DUP1 00002431: PUSH1 0x00 00002433: PUSH2 0x0100 00002436: EXP 00002437: DUP2 00002438: SLOAD 00002439: DUP2 0000243a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000244f: MUL 00002450: NOT 00002451: AND 00002452: SWAP1 00002453: DUP4 00002454: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002469: AND 0000246a: MUL 0000246b: OR 0000246c: SWAP1 0000246d: SSTORE 0000246e: POP 0000246f: JUMP 00002470: JUMPDEST 00002471: PUSH1 0x18 00002473: SLOAD 00002474: DUP2 00002475: JUMP 00002476: JUMPDEST 00002477: PUSH1 0x00 00002479: PUSH1 0x07 0000247b: PUSH1 0x00 0000247d: DUP4 0000247e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002493: AND 00002494: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024a9: AND 000024aa: DUP2 000024ab: MSTORE 000024ac: PUSH1 0x20 000024ae: ADD 000024af: SWAP1 000024b0: DUP2 000024b1: MSTORE 000024b2: PUSH1 0x20 000024b4: ADD 000024b5: PUSH1 0x00 000024b7: KECCAK256 000024b8: PUSH1 0x00 000024ba: SWAP1 000024bb: SLOAD 000024bc: SWAP1 000024bd: PUSH2 0x0100 000024c0: EXP 000024c1: SWAP1 000024c2: DIV 000024c3: PUSH1 0xff 000024c5: AND 000024c6: SWAP1 000024c7: POP 000024c8: SWAP2 000024c9: SWAP1 000024ca: POP 000024cb: JUMP 000024cc: JUMPDEST 000024cd: PUSH1 0x00 000024cf: DUP1 000024d0: PUSH1 0x00 000024d2: SWAP1 000024d3: SLOAD 000024d4: SWAP1 000024d5: PUSH2 0x0100 000024d8: EXP 000024d9: SWAP1 000024da: DIV 000024db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024f0: AND 000024f1: SWAP1 000024f2: POP 000024f3: SWAP1 000024f4: JUMP 000024f5: JUMPDEST 000024f6: PUSH1 0x60 000024f8: PUSH1 0x0e 000024fa: DUP1 000024fb: SLOAD 000024fc: PUSH1 0x01 000024fe: DUP2 000024ff: PUSH1 0x01 00002501: AND 00002502: ISZERO 00002503: PUSH2 0x0100 00002506: MUL 00002507: SUB 00002508: AND 00002509: PUSH1 0x02 0000250b: SWAP1 0000250c: DIV 0000250d: DUP1 0000250e: PUSH1 0x1f 00002510: ADD 00002511: PUSH1 0x20 00002513: DUP1 00002514: SWAP2 00002515: DIV 00002516: MUL 00002517: PUSH1 0x20 00002519: ADD 0000251a: PUSH1 0x40 0000251c: MLOAD 0000251d: SWAP1 0000251e: DUP2 0000251f: ADD 00002520: PUSH1 0x40 00002522: MSTORE 00002523: DUP1 00002524: SWAP3 00002525: SWAP2 00002526: SWAP1 00002527: DUP2 00002528: DUP2 00002529: MSTORE 0000252a: PUSH1 0x20 0000252c: ADD 0000252d: DUP3 0000252e: DUP1 0000252f: SLOAD 00002530: PUSH1 0x01 00002532: DUP2 00002533: PUSH1 0x01 00002535: AND 00002536: ISZERO 00002537: PUSH2 0x0100 0000253a: MUL 0000253b: SUB 0000253c: AND 0000253d: PUSH1 0x02 0000253f: SWAP1 00002540: DIV 00002541: DUP1 00002542: ISZERO 00002543: PUSH2 0x258d 00002546: JUMPI 00002547: DUP1 00002548: PUSH1 0x1f 0000254a: LT 0000254b: PUSH2 0x2562 0000254e: JUMPI 0000254f: PUSH2 0x0100 00002552: DUP1 00002553: DUP4 00002554: SLOAD 00002555: DIV 00002556: MUL 00002557: DUP4 00002558: MSTORE 00002559: SWAP2 0000255a: PUSH1 0x20 0000255c: ADD 0000255d: SWAP2 0000255e: PUSH2 0x258d 00002561: JUMP 00002562: JUMPDEST 00002563: DUP3 00002564: ADD 00002565: SWAP2 00002566: SWAP1 00002567: PUSH1 0x00 00002569: MSTORE 0000256a: PUSH1 0x20 0000256c: PUSH1 0x00 0000256e: KECCAK256 0000256f: SWAP1 00002570: JUMPDEST 00002571: DUP2 00002572: SLOAD 00002573: DUP2 00002574: MSTORE 00002575: SWAP1 00002576: PUSH1 0x01 00002578: ADD 00002579: SWAP1 0000257a: PUSH1 0x20 0000257c: ADD 0000257d: DUP1 0000257e: DUP4 0000257f: GT 00002580: PUSH2 0x2570 00002583: JUMPI 00002584: DUP3 00002585: SWAP1 00002586: SUB 00002587: PUSH1 0x1f 00002589: AND 0000258a: DUP3 0000258b: ADD 0000258c: SWAP2 0000258d: JUMPDEST 0000258e: POP 0000258f: POP 00002590: POP 00002591: POP 00002592: POP 00002593: SWAP1 00002594: POP 00002595: SWAP1 00002596: JUMP 00002597: JUMPDEST 00002598: PUSH1 0x1a 0000259a: PUSH1 0x00 0000259c: SWAP1 0000259d: SLOAD 0000259e: SWAP1 0000259f: PUSH2 0x0100 000025a2: EXP 000025a3: SWAP1 000025a4: DIV 000025a5: PUSH1 0xff 000025a7: AND 000025a8: DUP2 000025a9: JUMP 000025aa: JUMPDEST 000025ab: PUSH1 0x00 000025ad: PUSH2 0x266d 000025b0: PUSH2 0x25b7 000025b3: PUSH2 0x3150 000025b6: JUMP 000025b7: JUMPDEST 000025b8: DUP5 000025b9: PUSH2 0x2668 000025bc: DUP6 000025bd: PUSH1 0x40 000025bf: MLOAD 000025c0: DUP1 000025c1: PUSH1 0x60 000025c3: ADD 000025c4: PUSH1 0x40 000025c6: MSTORE 000025c7: DUP1 000025c8: PUSH1 0x25 000025ca: DUP2 000025cb: MSTORE 000025cc: PUSH1 0x20 000025ce: ADD 000025cf: PUSH2 0x5529 000025d2: PUSH1 0x25 000025d4: SWAP2 000025d5: CODECOPY 000025d6: PUSH1 0x05 000025d8: PUSH1 0x00 000025da: PUSH2 0x25e1 000025dd: PUSH2 0x3150 000025e0: JUMP 000025e1: JUMPDEST 000025e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025f7: AND 000025f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000260d: AND 0000260e: DUP2 0000260f: MSTORE 00002610: PUSH1 0x20 00002612: ADD 00002613: SWAP1 00002614: DUP2 00002615: MSTORE 00002616: PUSH1 0x20 00002618: ADD 00002619: PUSH1 0x00 0000261b: KECCAK256 0000261c: PUSH1 0x00 0000261e: DUP11 0000261f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002634: AND 00002635: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000264a: AND 0000264b: DUP2 0000264c: MSTORE 0000264d: PUSH1 0x20 0000264f: ADD 00002650: SWAP1 00002651: DUP2 00002652: MSTORE 00002653: PUSH1 0x20 00002655: ADD 00002656: PUSH1 0x00 00002658: KECCAK256 00002659: SLOAD 0000265a: PUSH2 0x3749 0000265d: SWAP1 0000265e: SWAP3 0000265f: SWAP2 00002660: SWAP1 00002661: PUSH4 0xffffffff 00002666: AND 00002667: JUMP 00002668: JUMPDEST 00002669: PUSH2 0x3158 0000266c: JUMP 0000266d: JUMPDEST 0000266e: PUSH1 0x01 00002670: SWAP1 00002671: POP 00002672: SWAP3 00002673: SWAP2 00002674: POP 00002675: POP 00002676: JUMP 00002677: JUMPDEST 00002678: CALLER 00002679: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000268e: AND 0000268f: PUSH1 0x01 00002691: PUSH1 0x00 00002693: SWAP1 00002694: SLOAD 00002695: SWAP1 00002696: PUSH2 0x0100 00002699: EXP 0000269a: SWAP1 0000269b: DIV 0000269c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026b1: AND 000026b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026c7: AND 000026c8: EQ 000026c9: PUSH2 0x271d 000026cc: JUMPI 000026cd: PUSH1 0x40 000026cf: MLOAD 000026d0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000026f1: DUP2 000026f2: MSTORE 000026f3: PUSH1 0x04 000026f5: ADD 000026f6: DUP1 000026f7: DUP1 000026f8: PUSH1 0x20 000026fa: ADD 000026fb: DUP3 000026fc: DUP2 000026fd: SUB 000026fe: DUP3 000026ff: MSTORE 00002700: PUSH1 0x23 00002702: DUP2 00002703: MSTORE 00002704: PUSH1 0x20 00002706: ADD 00002707: DUP1 00002708: PUSH2 0x5506 0000270b: PUSH1 0x23 0000270d: SWAP2 0000270e: CODECOPY 0000270f: PUSH1 0x40 00002711: ADD 00002712: SWAP2 00002713: POP 00002714: POP 00002715: PUSH1 0x40 00002717: MLOAD 00002718: DUP1 00002719: SWAP2 0000271a: SUB 0000271b: SWAP1 0000271c: REVERT 0000271d: JUMPDEST 0000271e: PUSH1 0x02 00002720: SLOAD 00002721: TIMESTAMP 00002722: GT 00002723: PUSH2 0x2794 00002726: JUMPI 00002727: PUSH1 0x40 00002729: MLOAD 0000272a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000274b: DUP2 0000274c: MSTORE 0000274d: PUSH1 0x04 0000274f: ADD 00002750: DUP1 00002751: DUP1 00002752: PUSH1 0x20 00002754: ADD 00002755: DUP3 00002756: DUP2 00002757: SUB 00002758: DUP3 00002759: MSTORE 0000275a: PUSH1 0x1f 0000275c: DUP2 0000275d: MSTORE 0000275e: PUSH1 0x20 00002760: ADD 00002761: DUP1 00002762: PUSH32 0x436f6e7472616374206973206c6f636b656420756e74696c2037206461797300 00002783: DUP2 00002784: MSTORE 00002785: POP 00002786: PUSH1 0x20 00002788: ADD 00002789: SWAP2 0000278a: POP 0000278b: POP 0000278c: PUSH1 0x40 0000278e: MLOAD 0000278f: DUP1 00002790: SWAP2 00002791: SUB 00002792: SWAP1 00002793: REVERT 00002794: JUMPDEST 00002795: PUSH1 0x01 00002797: PUSH1 0x00 00002799: SWAP1 0000279a: SLOAD 0000279b: SWAP1 0000279c: PUSH2 0x0100 0000279f: EXP 000027a0: SWAP1 000027a1: DIV 000027a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027b7: AND 000027b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027cd: AND 000027ce: PUSH1 0x00 000027d0: DUP1 000027d1: SLOAD 000027d2: SWAP1 000027d3: PUSH2 0x0100 000027d6: EXP 000027d7: SWAP1 000027d8: DIV 000027d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027ee: AND 000027ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002804: AND 00002805: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002826: PUSH1 0x40 00002828: MLOAD 00002829: PUSH1 0x40 0000282b: MLOAD 0000282c: DUP1 0000282d: SWAP2 0000282e: SUB 0000282f: SWAP1 00002830: LOG3 00002831: PUSH1 0x01 00002833: PUSH1 0x00 00002835: SWAP1 00002836: SLOAD 00002837: SWAP1 00002838: PUSH2 0x0100 0000283b: EXP 0000283c: SWAP1 0000283d: DIV 0000283e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002853: AND 00002854: PUSH1 0x00 00002856: DUP1 00002857: PUSH2 0x0100 0000285a: EXP 0000285b: DUP2 0000285c: SLOAD 0000285d: DUP2 0000285e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002873: MUL 00002874: NOT 00002875: AND 00002876: SWAP1 00002877: DUP4 00002878: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000288d: AND 0000288e: MUL 0000288f: OR 00002890: SWAP1 00002891: SSTORE 00002892: POP 00002893: JUMP 00002894: JUMPDEST 00002895: PUSH1 0x00 00002897: PUSH2 0x28a8 0000289a: PUSH2 0x28a1 0000289d: PUSH2 0x3150 000028a0: JUMP 000028a1: JUMPDEST 000028a2: DUP5 000028a3: DUP5 000028a4: PUSH2 0x334f 000028a7: JUMP 000028a8: JUMPDEST 000028a9: PUSH1 0x01 000028ab: SWAP1 000028ac: POP 000028ad: SWAP3 000028ae: SWAP2 000028af: POP 000028b0: POP 000028b1: JUMP 000028b2: JUMPDEST 000028b3: PUSH1 0x00 000028b5: PUSH1 0x02 000028b7: SLOAD 000028b8: SWAP1 000028b9: POP 000028ba: SWAP1 000028bb: JUMP 000028bc: JUMPDEST 000028bd: PUSH1 0x12 000028bf: SLOAD 000028c0: DUP2 000028c1: JUMP 000028c2: JUMPDEST 000028c3: PUSH1 0x19 000028c5: SLOAD 000028c6: DUP2 000028c7: JUMP 000028c8: JUMPDEST 000028c9: PUSH2 0x28d0 000028cc: PUSH2 0x3150 000028cf: JUMP 000028d0: JUMPDEST 000028d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028e6: AND 000028e7: PUSH1 0x00 000028e9: DUP1 000028ea: SLOAD 000028eb: SWAP1 000028ec: PUSH2 0x0100 000028ef: EXP 000028f0: SWAP1 000028f1: DIV 000028f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002907: AND 00002908: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000291d: AND 0000291e: EQ 0000291f: PUSH2 0x2990 00002922: JUMPI 00002923: PUSH1 0x40 00002925: MLOAD 00002926: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002947: DUP2 00002948: MSTORE 00002949: PUSH1 0x04 0000294b: ADD 0000294c: DUP1 0000294d: DUP1 0000294e: PUSH1 0x20 00002950: ADD 00002951: DUP3 00002952: DUP2 00002953: SUB 00002954: DUP3 00002955: MSTORE 00002956: PUSH1 0x20 00002958: DUP2 00002959: MSTORE 0000295a: PUSH1 0x20 0000295c: ADD 0000295d: DUP1 0000295e: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 0000297f: DUP2 00002980: MSTORE 00002981: POP 00002982: PUSH1 0x20 00002984: ADD 00002985: SWAP2 00002986: POP 00002987: POP 00002988: PUSH1 0x40 0000298a: MLOAD 0000298b: DUP1 0000298c: SWAP2 0000298d: SUB 0000298e: SWAP1 0000298f: REVERT 00002990: JUMPDEST 00002991: PUSH2 0x29bd 00002994: PUSH1 0x02 00002996: DUP3 00002997: ADD 00002998: PUSH1 0x0a 0000299a: EXP 0000299b: PUSH2 0x29af 0000299e: DUP5 0000299f: PUSH1 0x09 000029a1: SLOAD 000029a2: PUSH2 0x397c 000029a5: SWAP1 000029a6: SWAP2 000029a7: SWAP1 000029a8: PUSH4 0xffffffff 000029ad: AND 000029ae: JUMP 000029af: JUMPDEST 000029b0: PUSH2 0x3834 000029b3: SWAP1 000029b4: SWAP2 000029b5: SWAP1 000029b6: PUSH4 0xffffffff 000029bb: AND 000029bc: JUMP 000029bd: JUMPDEST 000029be: PUSH1 0x1b 000029c0: DUP2 000029c1: SWAP1 000029c2: SSTORE 000029c3: POP 000029c4: PUSH32 0x5e02c6b966b7b245b58dd1cd5f67e91d8ea94d045ca03e5977eae1b6acbd9c1d 000029e5: PUSH1 0x1b 000029e7: SLOAD 000029e8: PUSH1 0x40 000029ea: MLOAD 000029eb: DUP1 000029ec: DUP3 000029ed: DUP2 000029ee: MSTORE 000029ef: PUSH1 0x20 000029f1: ADD 000029f2: SWAP2 000029f3: POP 000029f4: POP 000029f5: PUSH1 0x40 000029f7: MLOAD 000029f8: DUP1 000029f9: SWAP2 000029fa: SUB 000029fb: SWAP1 000029fc: LOG1 000029fd: POP 000029fe: POP 000029ff: JUMP 00002a00: JUMPDEST 00002a01: PUSH2 0x2a08 00002a04: PUSH2 0x3150 00002a07: JUMP 00002a08: JUMPDEST 00002a09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a1e: AND 00002a1f: PUSH1 0x00 00002a21: DUP1 00002a22: SLOAD 00002a23: SWAP1 00002a24: PUSH2 0x0100 00002a27: EXP 00002a28: SWAP1 00002a29: DIV 00002a2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a3f: AND 00002a40: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a55: AND 00002a56: EQ 00002a57: PUSH2 0x2ac8 00002a5a: JUMPI 00002a5b: PUSH1 0x40 00002a5d: MLOAD 00002a5e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002a7f: DUP2 00002a80: MSTORE 00002a81: PUSH1 0x04 00002a83: ADD 00002a84: DUP1 00002a85: DUP1 00002a86: PUSH1 0x20 00002a88: ADD 00002a89: DUP3 00002a8a: DUP2 00002a8b: SUB 00002a8c: DUP3 00002a8d: MSTORE 00002a8e: PUSH1 0x20 00002a90: DUP2 00002a91: MSTORE 00002a92: PUSH1 0x20 00002a94: ADD 00002a95: DUP1 00002a96: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00002ab7: DUP2 00002ab8: MSTORE 00002ab9: POP 00002aba: PUSH1 0x20 00002abc: ADD 00002abd: SWAP2 00002abe: POP 00002abf: POP 00002ac0: PUSH1 0x40 00002ac2: MLOAD 00002ac3: DUP1 00002ac4: SWAP2 00002ac5: SUB 00002ac6: SWAP1 00002ac7: REVERT 00002ac8: JUMPDEST 00002ac9: DUP1 00002aca: PUSH1 0x12 00002acc: DUP2 00002acd: SWAP1 00002ace: SSTORE 00002acf: POP 00002ad0: POP 00002ad1: JUMP 00002ad2: JUMPDEST 00002ad3: PUSH2 0x2ada 00002ad6: PUSH2 0x3150 00002ad9: JUMP 00002ada: JUMPDEST 00002adb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002af0: AND 00002af1: PUSH1 0x00 00002af3: DUP1 00002af4: SLOAD 00002af5: SWAP1 00002af6: PUSH2 0x0100 00002af9: EXP 00002afa: SWAP1 00002afb: DIV 00002afc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b11: AND 00002b12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b27: AND 00002b28: EQ 00002b29: PUSH2 0x2b9a 00002b2c: JUMPI 00002b2d: PUSH1 0x40 00002b2f: MLOAD 00002b30: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002b51: DUP2 00002b52: MSTORE 00002b53: PUSH1 0x04 00002b55: ADD 00002b56: DUP1 00002b57: DUP1 00002b58: PUSH1 0x20 00002b5a: ADD 00002b5b: DUP3 00002b5c: DUP2 00002b5d: SUB 00002b5e: DUP3 00002b5f: MSTORE 00002b60: PUSH1 0x20 00002b62: DUP2 00002b63: MSTORE 00002b64: PUSH1 0x20 00002b66: ADD 00002b67: DUP1 00002b68: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00002b89: DUP2 00002b8a: MSTORE 00002b8b: POP 00002b8c: PUSH1 0x20 00002b8e: ADD 00002b8f: SWAP2 00002b90: POP 00002b91: POP 00002b92: PUSH1 0x40 00002b94: MLOAD 00002b95: DUP1 00002b96: SWAP2 00002b97: SUB 00002b98: SWAP1 00002b99: REVERT 00002b9a: JUMPDEST 00002b9b: DUP1 00002b9c: PUSH1 0x16 00002b9e: DUP2 00002b9f: SWAP1 00002ba0: SSTORE 00002ba1: POP 00002ba2: POP 00002ba3: JUMP 00002ba4: JUMPDEST 00002ba5: PUSH2 0x2bac 00002ba8: PUSH2 0x3150 00002bab: JUMP 00002bac: JUMPDEST 00002bad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bc2: AND 00002bc3: PUSH1 0x00 00002bc5: DUP1 00002bc6: SLOAD 00002bc7: SWAP1 00002bc8: PUSH2 0x0100 00002bcb: EXP 00002bcc: SWAP1 00002bcd: DIV 00002bce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002be3: AND 00002be4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bf9: AND 00002bfa: EQ 00002bfb: PUSH2 0x2c6c 00002bfe: JUMPI 00002bff: PUSH1 0x40 00002c01: MLOAD 00002c02: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002c23: DUP2 00002c24: MSTORE 00002c25: PUSH1 0x04 00002c27: ADD 00002c28: DUP1 00002c29: DUP1 00002c2a: PUSH1 0x20 00002c2c: ADD 00002c2d: DUP3 00002c2e: DUP2 00002c2f: SUB 00002c30: DUP3 00002c31: MSTORE 00002c32: PUSH1 0x20 00002c34: DUP2 00002c35: MSTORE 00002c36: PUSH1 0x20 00002c38: ADD 00002c39: DUP1 00002c3a: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00002c5b: DUP2 00002c5c: MSTORE 00002c5d: POP 00002c5e: PUSH1 0x20 00002c60: ADD 00002c61: SWAP2 00002c62: POP 00002c63: POP 00002c64: PUSH1 0x40 00002c66: MLOAD 00002c67: DUP1 00002c68: SWAP2 00002c69: SUB 00002c6a: SWAP1 00002c6b: REVERT 00002c6c: JUMPDEST 00002c6d: PUSH1 0x00 00002c6f: DUP1 00002c70: SLOAD 00002c71: SWAP1 00002c72: PUSH2 0x0100 00002c75: EXP 00002c76: SWAP1 00002c77: DIV 00002c78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c8d: AND 00002c8e: PUSH1 0x01 00002c90: PUSH1 0x00 00002c92: PUSH2 0x0100 00002c95: EXP 00002c96: DUP2 00002c97: SLOAD 00002c98: DUP2 00002c99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cae: MUL 00002caf: NOT 00002cb0: AND 00002cb1: SWAP1 00002cb2: DUP4 00002cb3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cc8: AND 00002cc9: MUL 00002cca: OR 00002ccb: SWAP1 00002ccc: SSTORE 00002ccd: POP 00002cce: PUSH1 0x00 00002cd0: DUP1 00002cd1: PUSH1 0x00 00002cd3: PUSH2 0x0100 00002cd6: EXP 00002cd7: DUP2 00002cd8: SLOAD 00002cd9: DUP2 00002cda: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cef: MUL 00002cf0: NOT 00002cf1: AND 00002cf2: SWAP1 00002cf3: DUP4 00002cf4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d09: AND 00002d0a: MUL 00002d0b: OR 00002d0c: SWAP1 00002d0d: SSTORE 00002d0e: POP 00002d0f: DUP1 00002d10: TIMESTAMP 00002d11: ADD 00002d12: PUSH1 0x02 00002d14: DUP2 00002d15: SWAP1 00002d16: SSTORE 00002d17: POP 00002d18: PUSH1 0x00 00002d1a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d2f: AND 00002d30: PUSH1 0x00 00002d32: DUP1 00002d33: SLOAD 00002d34: SWAP1 00002d35: PUSH2 0x0100 00002d38: EXP 00002d39: SWAP1 00002d3a: DIV 00002d3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d50: AND 00002d51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d66: AND 00002d67: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002d88: PUSH1 0x40 00002d8a: MLOAD 00002d8b: PUSH1 0x40 00002d8d: MLOAD 00002d8e: DUP1 00002d8f: SWAP2 00002d90: SUB 00002d91: SWAP1 00002d92: LOG3 00002d93: POP 00002d94: JUMP 00002d95: JUMPDEST 00002d96: PUSH1 0x00 00002d98: PUSH1 0x05 00002d9a: PUSH1 0x00 00002d9c: DUP5 00002d9d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002db2: AND 00002db3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dc8: AND 00002dc9: DUP2 00002dca: MSTORE 00002dcb: PUSH1 0x20 00002dcd: ADD 00002dce: SWAP1 00002dcf: DUP2 00002dd0: MSTORE 00002dd1: PUSH1 0x20 00002dd3: ADD 00002dd4: PUSH1 0x00 00002dd6: KECCAK256 00002dd7: PUSH1 0x00 00002dd9: DUP4 00002dda: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002def: AND 00002df0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e05: AND 00002e06: DUP2 00002e07: MSTORE 00002e08: PUSH1 0x20 00002e0a: ADD 00002e0b: SWAP1 00002e0c: DUP2 00002e0d: MSTORE 00002e0e: PUSH1 0x20 00002e10: ADD 00002e11: PUSH1 0x00 00002e13: KECCAK256 00002e14: SLOAD 00002e15: SWAP1 00002e16: POP 00002e17: SWAP3 00002e18: SWAP2 00002e19: POP 00002e1a: POP 00002e1b: JUMP 00002e1c: JUMPDEST 00002e1d: PUSH1 0x16 00002e1f: SLOAD 00002e20: DUP2 00002e21: JUMP 00002e22: JUMPDEST 00002e23: PUSH2 0x2e2a 00002e26: PUSH2 0x3150 00002e29: JUMP 00002e2a: JUMPDEST 00002e2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e40: AND 00002e41: PUSH1 0x00 00002e43: DUP1 00002e44: SLOAD 00002e45: SWAP1 00002e46: PUSH2 0x0100 00002e49: EXP 00002e4a: SWAP1 00002e4b: DIV 00002e4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e61: AND 00002e62: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e77: AND 00002e78: EQ 00002e79: PUSH2 0x2eea 00002e7c: JUMPI 00002e7d: PUSH1 0x40 00002e7f: MLOAD 00002e80: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002ea1: DUP2 00002ea2: MSTORE 00002ea3: PUSH1 0x04 00002ea5: ADD 00002ea6: DUP1 00002ea7: DUP1 00002ea8: PUSH1 0x20 00002eaa: ADD 00002eab: DUP3 00002eac: DUP2 00002ead: SUB 00002eae: DUP3 00002eaf: MSTORE 00002eb0: PUSH1 0x20 00002eb2: DUP2 00002eb3: MSTORE 00002eb4: PUSH1 0x20 00002eb6: ADD 00002eb7: DUP1 00002eb8: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00002ed9: DUP2 00002eda: MSTORE 00002edb: POP 00002edc: PUSH1 0x20 00002ede: ADD 00002edf: SWAP2 00002ee0: POP 00002ee1: POP 00002ee2: PUSH1 0x40 00002ee4: MLOAD 00002ee5: DUP1 00002ee6: SWAP2 00002ee7: SUB 00002ee8: SWAP1 00002ee9: REVERT 00002eea: JUMPDEST 00002eeb: PUSH1 0x00 00002eed: PUSH1 0x06 00002eef: PUSH1 0x00 00002ef1: DUP4 00002ef2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f07: AND 00002f08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f1d: AND 00002f1e: DUP2 00002f1f: MSTORE 00002f20: PUSH1 0x20 00002f22: ADD 00002f23: SWAP1 00002f24: DUP2 00002f25: MSTORE 00002f26: PUSH1 0x20 00002f28: ADD 00002f29: PUSH1 0x00 00002f2b: KECCAK256 00002f2c: PUSH1 0x00 00002f2e: PUSH2 0x0100 00002f31: EXP 00002f32: DUP2 00002f33: SLOAD 00002f34: DUP2 00002f35: PUSH1 0xff 00002f37: MUL 00002f38: NOT 00002f39: AND 00002f3a: SWAP1 00002f3b: DUP4 00002f3c: ISZERO 00002f3d: ISZERO 00002f3e: MUL 00002f3f: OR 00002f40: SWAP1 00002f41: SSTORE 00002f42: POP 00002f43: POP 00002f44: JUMP 00002f45: JUMPDEST 00002f46: PUSH2 0x2f4d 00002f49: PUSH2 0x3150 00002f4c: JUMP 00002f4d: JUMPDEST 00002f4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f63: AND 00002f64: PUSH1 0x00 00002f66: DUP1 00002f67: SLOAD 00002f68: SWAP1 00002f69: PUSH2 0x0100 00002f6c: EXP 00002f6d: SWAP1 00002f6e: DIV 00002f6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f84: AND 00002f85: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f9a: AND 00002f9b: EQ 00002f9c: PUSH2 0x300d 00002f9f: JUMPI 00002fa0: PUSH1 0x40 00002fa2: MLOAD 00002fa3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002fc4: DUP2 00002fc5: MSTORE 00002fc6: PUSH1 0x04 00002fc8: ADD 00002fc9: DUP1 00002fca: DUP1 00002fcb: PUSH1 0x20 00002fcd: ADD 00002fce: DUP3 00002fcf: DUP2 00002fd0: SUB 00002fd1: DUP3 00002fd2: MSTORE 00002fd3: PUSH1 0x20 00002fd5: DUP2 00002fd6: MSTORE 00002fd7: PUSH1 0x20 00002fd9: ADD 00002fda: DUP1 00002fdb: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00002ffc: DUP2 00002ffd: MSTORE 00002ffe: POP 00002fff: PUSH1 0x20 00003001: ADD 00003002: SWAP2 00003003: POP 00003004: POP 00003005: PUSH1 0x40 00003007: MLOAD 00003008: DUP1 00003009: SWAP2 0000300a: SUB 0000300b: SWAP1 0000300c: REVERT 0000300d: JUMPDEST 0000300e: PUSH1 0x00 00003010: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003025: AND 00003026: DUP2 00003027: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000303c: AND 0000303d: EQ 0000303e: ISZERO 0000303f: PUSH2 0x3093 00003042: JUMPI 00003043: PUSH1 0x40 00003045: MLOAD 00003046: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003067: DUP2 00003068: MSTORE 00003069: PUSH1 0x04 0000306b: ADD 0000306c: DUP1 0000306d: DUP1 0000306e: PUSH1 0x20 00003070: ADD 00003071: DUP3 00003072: DUP2 00003073: SUB 00003074: DUP3 00003075: MSTORE 00003076: PUSH1 0x26 00003078: DUP2 00003079: MSTORE 0000307a: PUSH1 0x20 0000307c: ADD 0000307d: DUP1 0000307e: PUSH2 0x53af 00003081: PUSH1 0x26 00003083: SWAP2 00003084: CODECOPY 00003085: PUSH1 0x40 00003087: ADD 00003088: SWAP2 00003089: POP 0000308a: POP 0000308b: PUSH1 0x40 0000308d: MLOAD 0000308e: DUP1 0000308f: SWAP2 00003090: SUB 00003091: SWAP1 00003092: REVERT 00003093: JUMPDEST 00003094: DUP1 00003095: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030aa: AND 000030ab: PUSH1 0x00 000030ad: DUP1 000030ae: SLOAD 000030af: SWAP1 000030b0: PUSH2 0x0100 000030b3: EXP 000030b4: SWAP1 000030b5: DIV 000030b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030cb: AND 000030cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030e1: AND 000030e2: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00003103: PUSH1 0x40 00003105: MLOAD 00003106: PUSH1 0x40 00003108: MLOAD 00003109: DUP1 0000310a: SWAP2 0000310b: SUB 0000310c: SWAP1 0000310d: LOG3 0000310e: DUP1 0000310f: PUSH1 0x00 00003111: DUP1 00003112: PUSH2 0x0100 00003115: EXP 00003116: DUP2 00003117: SLOAD 00003118: DUP2 00003119: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000312e: MUL 0000312f: NOT 00003130: AND 00003131: SWAP1 00003132: DUP4 00003133: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003148: AND 00003149: MUL 0000314a: OR 0000314b: SWAP1 0000314c: SSTORE 0000314d: POP 0000314e: POP 0000314f: JUMP 00003150: JUMPDEST 00003151: PUSH1 0x00 00003153: CALLER 00003154: SWAP1 00003155: POP 00003156: SWAP1 00003157: JUMP 00003158: JUMPDEST 00003159: PUSH1 0x00 0000315b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003170: AND 00003171: DUP4 00003172: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003187: AND 00003188: EQ 00003189: ISZERO 0000318a: PUSH2 0x31de 0000318d: JUMPI 0000318e: PUSH1 0x40 00003190: MLOAD 00003191: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000031b2: DUP2 000031b3: MSTORE 000031b4: PUSH1 0x04 000031b6: ADD 000031b7: DUP1 000031b8: DUP1 000031b9: PUSH1 0x20 000031bb: ADD 000031bc: DUP3 000031bd: DUP2 000031be: SUB 000031bf: DUP3 000031c0: MSTORE 000031c1: PUSH1 0x24 000031c3: DUP2 000031c4: MSTORE 000031c5: PUSH1 0x20 000031c7: ADD 000031c8: DUP1 000031c9: PUSH2 0x54b6 000031cc: PUSH1 0x24 000031ce: SWAP2 000031cf: CODECOPY 000031d0: PUSH1 0x40 000031d2: ADD 000031d3: SWAP2 000031d4: POP 000031d5: POP 000031d6: PUSH1 0x40 000031d8: MLOAD 000031d9: DUP1 000031da: SWAP2 000031db: SUB 000031dc: SWAP1 000031dd: REVERT 000031de: JUMPDEST 000031df: PUSH1 0x00 000031e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031f6: AND 000031f7: DUP3 000031f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000320d: AND 0000320e: EQ 0000320f: ISZERO 00003210: PUSH2 0x3264 00003213: JUMPI 00003214: PUSH1 0x40 00003216: MLOAD 00003217: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003238: DUP2 00003239: MSTORE 0000323a: PUSH1 0x04 0000323c: ADD 0000323d: DUP1 0000323e: DUP1 0000323f: PUSH1 0x20 00003241: ADD 00003242: DUP3 00003243: DUP2 00003244: SUB 00003245: DUP3 00003246: MSTORE 00003247: PUSH1 0x22 00003249: DUP2 0000324a: MSTORE 0000324b: PUSH1 0x20 0000324d: ADD 0000324e: DUP1 0000324f: PUSH2 0x53d5 00003252: PUSH1 0x22 00003254: SWAP2 00003255: CODECOPY 00003256: PUSH1 0x40 00003258: ADD 00003259: SWAP2 0000325a: POP 0000325b: POP 0000325c: PUSH1 0x40 0000325e: MLOAD 0000325f: DUP1 00003260: SWAP2 00003261: SUB 00003262: SWAP1 00003263: REVERT 00003264: JUMPDEST 00003265: DUP1 00003266: PUSH1 0x05 00003268: PUSH1 0x00 0000326a: DUP6 0000326b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003280: AND 00003281: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003296: AND 00003297: DUP2 00003298: MSTORE 00003299: PUSH1 0x20 0000329b: ADD 0000329c: SWAP1 0000329d: DUP2 0000329e: MSTORE 0000329f: PUSH1 0x20 000032a1: ADD 000032a2: PUSH1 0x00 000032a4: KECCAK256 000032a5: PUSH1 0x00 000032a7: DUP5 000032a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032bd: AND 000032be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032d3: AND 000032d4: DUP2 000032d5: MSTORE 000032d6: PUSH1 0x20 000032d8: ADD 000032d9: SWAP1 000032da: DUP2 000032db: MSTORE 000032dc: PUSH1 0x20 000032de: ADD 000032df: PUSH1 0x00 000032e1: KECCAK256 000032e2: DUP2 000032e3: SWAP1 000032e4: SSTORE 000032e5: POP 000032e6: DUP2 000032e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032fc: AND 000032fd: DUP4 000032fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003313: AND 00003314: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00003335: DUP4 00003336: PUSH1 0x40 00003338: MLOAD 00003339: DUP1 0000333a: DUP3 0000333b: DUP2 0000333c: MSTORE 0000333d: PUSH1 0x20 0000333f: ADD 00003340: SWAP2 00003341: POP 00003342: POP 00003343: PUSH1 0x40 00003345: MLOAD 00003346: DUP1 00003347: SWAP2 00003348: SUB 00003349: SWAP1 0000334a: LOG3 0000334b: POP 0000334c: POP 0000334d: POP 0000334e: JUMP 0000334f: JUMPDEST 00003350: PUSH1 0x1a 00003352: PUSH1 0x00 00003354: SWAP1 00003355: SLOAD 00003356: SWAP1 00003357: PUSH2 0x0100 0000335a: EXP 0000335b: SWAP1 0000335c: DIV 0000335d: PUSH1 0xff 0000335f: AND 00003360: ISZERO 00003361: DUP1 00003362: PUSH2 0x33b4 00003365: JUMPI 00003366: POP 00003367: PUSH1 0x06 00003369: PUSH1 0x00 0000336b: DUP5 0000336c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003381: AND 00003382: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003397: AND 00003398: DUP2 00003399: MSTORE 0000339a: PUSH1 0x20 0000339c: ADD 0000339d: SWAP1 0000339e: DUP2 0000339f: MSTORE 000033a0: PUSH1 0x20 000033a2: ADD 000033a3: PUSH1 0x00 000033a5: KECCAK256 000033a6: PUSH1 0x00 000033a8: SWAP1 000033a9: SLOAD 000033aa: SWAP1 000033ab: PUSH2 0x0100 000033ae: EXP 000033af: SWAP1 000033b0: DIV 000033b1: PUSH1 0xff 000033b3: AND 000033b4: JUMPDEST 000033b5: PUSH2 0x3409 000033b8: JUMPI 000033b9: PUSH1 0x40 000033bb: MLOAD 000033bc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000033dd: DUP2 000033de: MSTORE 000033df: PUSH1 0x04 000033e1: ADD 000033e2: DUP1 000033e3: DUP1 000033e4: PUSH1 0x20 000033e6: ADD 000033e7: DUP3 000033e8: DUP2 000033e9: SUB 000033ea: DUP3 000033eb: MSTORE 000033ec: PUSH1 0x2f 000033ee: DUP2 000033ef: MSTORE 000033f0: PUSH1 0x20 000033f2: ADD 000033f3: DUP1 000033f4: PUSH2 0x5356 000033f7: PUSH1 0x2f 000033f9: SWAP2 000033fa: CODECOPY 000033fb: PUSH1 0x40 000033fd: ADD 000033fe: SWAP2 000033ff: POP 00003400: POP 00003401: PUSH1 0x40 00003403: MLOAD 00003404: DUP1 00003405: SWAP2 00003406: SUB 00003407: SWAP1 00003408: REVERT 00003409: JUMPDEST 0000340a: PUSH1 0x00 0000340c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003421: AND 00003422: DUP4 00003423: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003438: AND 00003439: EQ 0000343a: ISZERO 0000343b: PUSH2 0x348f 0000343e: JUMPI 0000343f: PUSH1 0x40 00003441: MLOAD 00003442: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003463: DUP2 00003464: MSTORE 00003465: PUSH1 0x04 00003467: ADD 00003468: DUP1 00003469: DUP1 0000346a: PUSH1 0x20 0000346c: ADD 0000346d: DUP3 0000346e: DUP2 0000346f: SUB 00003470: DUP3 00003471: MSTORE 00003472: PUSH1 0x25 00003474: DUP2 00003475: MSTORE 00003476: PUSH1 0x20 00003478: ADD 00003479: DUP1 0000347a: PUSH2 0x5491 0000347d: PUSH1 0x25 0000347f: SWAP2 00003480: CODECOPY 00003481: PUSH1 0x40 00003483: ADD 00003484: SWAP2 00003485: POP 00003486: POP 00003487: PUSH1 0x40 00003489: MLOAD 0000348a: DUP1 0000348b: SWAP2 0000348c: SUB 0000348d: SWAP1 0000348e: REVERT 0000348f: JUMPDEST 00003490: PUSH1 0x00 00003492: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034a7: AND 000034a8: DUP3 000034a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034be: AND 000034bf: EQ 000034c0: ISZERO 000034c1: PUSH2 0x3515 000034c4: JUMPI 000034c5: PUSH1 0x40 000034c7: MLOAD 000034c8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000034e9: DUP2 000034ea: MSTORE 000034eb: PUSH1 0x04 000034ed: ADD 000034ee: DUP1 000034ef: DUP1 000034f0: PUSH1 0x20 000034f2: ADD 000034f3: DUP3 000034f4: DUP2 000034f5: SUB 000034f6: DUP3 000034f7: MSTORE 000034f8: PUSH1 0x23 000034fa: DUP2 000034fb: MSTORE 000034fc: PUSH1 0x20 000034fe: ADD 000034ff: DUP1 00003500: PUSH2 0x5333 00003503: PUSH1 0x23 00003505: SWAP2 00003506: CODECOPY 00003507: PUSH1 0x40 00003509: ADD 0000350a: SWAP2 0000350b: POP 0000350c: POP 0000350d: PUSH1 0x40 0000350f: MLOAD 00003510: DUP1 00003511: SWAP2 00003512: SUB 00003513: SWAP1 00003514: REVERT 00003515: JUMPDEST 00003516: PUSH1 0x00 00003518: DUP2 00003519: GT 0000351a: PUSH2 0x356e 0000351d: JUMPI 0000351e: PUSH1 0x40 00003520: MLOAD 00003521: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003542: DUP2 00003543: MSTORE 00003544: PUSH1 0x04 00003546: ADD 00003547: DUP1 00003548: DUP1 00003549: PUSH1 0x20 0000354b: ADD 0000354c: DUP3 0000354d: DUP2 0000354e: SUB 0000354f: DUP3 00003550: MSTORE 00003551: PUSH1 0x29 00003553: DUP2 00003554: MSTORE 00003555: PUSH1 0x20 00003557: ADD 00003558: DUP1 00003559: PUSH2 0x5468 0000355c: PUSH1 0x29 0000355e: SWAP2 0000355f: CODECOPY 00003560: PUSH1 0x40 00003562: ADD 00003563: SWAP2 00003564: POP 00003565: POP 00003566: PUSH1 0x40 00003568: MLOAD 00003569: DUP1 0000356a: SWAP2 0000356b: SUB 0000356c: SWAP1 0000356d: REVERT 0000356e: JUMPDEST 0000356f: PUSH2 0x3576 00003572: PUSH2 0x24cc 00003575: JUMP 00003576: JUMPDEST 00003577: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000358c: AND 0000358d: DUP4 0000358e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035a3: AND 000035a4: EQ 000035a5: ISZERO 000035a6: DUP1 000035a7: ISZERO 000035a8: PUSH2 0x35e4 000035ab: JUMPI 000035ac: POP 000035ad: PUSH2 0x35b4 000035b0: PUSH2 0x24cc 000035b3: JUMP 000035b4: JUMPDEST 000035b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035ca: AND 000035cb: DUP3 000035cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035e1: AND 000035e2: EQ 000035e3: ISZERO 000035e4: JUMPDEST 000035e5: ISZERO 000035e6: PUSH2 0x3645 000035e9: JUMPI 000035ea: PUSH1 0x18 000035ec: SLOAD 000035ed: DUP2 000035ee: GT 000035ef: ISZERO 000035f0: PUSH2 0x3644 000035f3: JUMPI 000035f4: PUSH1 0x40 000035f6: MLOAD 000035f7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003618: DUP2 00003619: MSTORE 0000361a: PUSH1 0x04 0000361c: ADD 0000361d: DUP1 0000361e: DUP1 0000361f: PUSH1 0x20 00003621: ADD 00003622: DUP3 00003623: DUP2 00003624: SUB 00003625: DUP3 00003626: MSTORE 00003627: PUSH1 0x28 00003629: DUP2 0000362a: MSTORE 0000362b: PUSH1 0x20 0000362d: ADD 0000362e: DUP1 0000362f: PUSH2 0x53f7 00003632: PUSH1 0x28 00003634: SWAP2 00003635: CODECOPY 00003636: PUSH1 0x40 00003638: ADD 00003639: SWAP2 0000363a: POP 0000363b: POP 0000363c: PUSH1 0x40 0000363e: MLOAD 0000363f: DUP1 00003640: SWAP2 00003641: SUB 00003642: SWAP1 00003643: REVERT 00003644: JUMPDEST 00003645: JUMPDEST 00003646: PUSH1 0x00 00003648: PUSH2 0x3650 0000364b: ADDRESS 0000364c: PUSH2 0x21ff 0000364f: JUMP 00003650: JUMPDEST 00003651: SWAP1 00003652: POP 00003653: PUSH1 0x00 00003655: PUSH1 0x1b 00003657: SLOAD 00003658: DUP3 00003659: LT 0000365a: ISZERO 0000365b: SWAP1 0000365c: POP 0000365d: DUP1 0000365e: DUP1 0000365f: ISZERO 00003660: PUSH2 0x3675 00003663: JUMPI 00003664: POP 00003665: PUSH1 0x1a 00003667: PUSH1 0x01 00003669: SWAP1 0000366a: SLOAD 0000366b: SWAP1 0000366c: PUSH2 0x0100 0000366f: EXP 00003670: SWAP1 00003671: DIV 00003672: PUSH1 0xff 00003674: AND 00003675: JUMPDEST 00003676: ISZERO 00003677: PUSH2 0x3684 0000367a: JUMPI 0000367b: PUSH2 0x3683 0000367e: DUP3 0000367f: PUSH2 0x3a02 00003682: JUMP 00003683: JUMPDEST 00003684: JUMPDEST 00003685: PUSH1 0x00 00003687: PUSH1 0x01 00003689: SWAP1 0000368a: POP 0000368b: PUSH1 0x06 0000368d: PUSH1 0x00 0000368f: DUP8 00003690: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036a5: AND 000036a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036bb: AND 000036bc: DUP2 000036bd: MSTORE 000036be: PUSH1 0x20 000036c0: ADD 000036c1: SWAP1 000036c2: DUP2 000036c3: MSTORE 000036c4: PUSH1 0x20 000036c6: ADD 000036c7: PUSH1 0x00 000036c9: KECCAK256 000036ca: PUSH1 0x00 000036cc: SWAP1 000036cd: SLOAD 000036ce: SWAP1 000036cf: PUSH2 0x0100 000036d2: EXP 000036d3: SWAP1 000036d4: DIV 000036d5: PUSH1 0xff 000036d7: AND 000036d8: DUP1 000036d9: PUSH2 0x372b 000036dc: JUMPI 000036dd: POP 000036de: PUSH1 0x06 000036e0: PUSH1 0x00 000036e2: DUP7 000036e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036f8: AND 000036f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000370e: AND 0000370f: DUP2 00003710: MSTORE 00003711: PUSH1 0x20 00003713: ADD 00003714: SWAP1 00003715: DUP2 00003716: MSTORE 00003717: PUSH1 0x20 00003719: ADD 0000371a: PUSH1 0x00 0000371c: KECCAK256 0000371d: PUSH1 0x00 0000371f: SWAP1 00003720: SLOAD 00003721: SWAP1 00003722: PUSH2 0x0100 00003725: EXP 00003726: SWAP1 00003727: DIV 00003728: PUSH1 0xff 0000372a: AND 0000372b: JUMPDEST 0000372c: ISZERO 0000372d: PUSH2 0x3735 00003730: JUMPI 00003731: PUSH1 0x00 00003733: SWAP1 00003734: POP 00003735: JUMPDEST 00003736: PUSH2 0x3741 00003739: DUP7 0000373a: DUP7 0000373b: DUP7 0000373c: DUP5 0000373d: PUSH2 0x3b04 00003740: JUMP 00003741: JUMPDEST 00003742: POP 00003743: POP 00003744: POP 00003745: POP 00003746: POP 00003747: POP 00003748: JUMP 00003749: JUMPDEST 0000374a: PUSH1 0x00 0000374c: DUP4 0000374d: DUP4 0000374e: GT 0000374f: ISZERO 00003750: DUP3 00003751: SWAP1 00003752: PUSH2 0x37f6 00003755: JUMPI 00003756: PUSH1 0x40 00003758: MLOAD 00003759: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000377a: DUP2 0000377b: MSTORE 0000377c: PUSH1 0x04 0000377e: ADD 0000377f: DUP1 00003780: DUP1 00003781: PUSH1 0x20 00003783: ADD 00003784: DUP3 00003785: DUP2 00003786: SUB 00003787: DUP3 00003788: MSTORE 00003789: DUP4 0000378a: DUP2 0000378b: DUP2 0000378c: MLOAD 0000378d: DUP2 0000378e: MSTORE 0000378f: PUSH1 0x20 00003791: ADD 00003792: SWAP2 00003793: POP 00003794: DUP1 00003795: MLOAD 00003796: SWAP1 00003797: PUSH1 0x20 00003799: ADD 0000379a: SWAP1 0000379b: DUP1 0000379c: DUP4 0000379d: DUP4 0000379e: PUSH1 0x00 000037a0: JUMPDEST 000037a1: DUP4 000037a2: DUP2 000037a3: LT 000037a4: ISZERO 000037a5: PUSH2 0x37bb 000037a8: JUMPI 000037a9: DUP1 000037aa: DUP3 000037ab: ADD 000037ac: MLOAD 000037ad: DUP2 000037ae: DUP5 000037af: ADD 000037b0: MSTORE 000037b1: PUSH1 0x20 000037b3: DUP2 000037b4: ADD 000037b5: SWAP1 000037b6: POP 000037b7: PUSH2 0x37a0 000037ba: JUMP 000037bb: JUMPDEST 000037bc: POP 000037bd: POP 000037be: POP 000037bf: POP 000037c0: SWAP1 000037c1: POP 000037c2: SWAP1 000037c3: DUP2 000037c4: ADD 000037c5: SWAP1 000037c6: PUSH1 0x1f 000037c8: AND 000037c9: DUP1 000037ca: ISZERO 000037cb: PUSH2 0x37e8 000037ce: JUMPI 000037cf: DUP1 000037d0: DUP3 000037d1: SUB 000037d2: DUP1 000037d3: MLOAD 000037d4: PUSH1 0x01 000037d6: DUP4 000037d7: PUSH1 0x20 000037d9: SUB 000037da: PUSH2 0x0100 000037dd: EXP 000037de: SUB 000037df: NOT 000037e0: AND 000037e1: DUP2 000037e2: MSTORE 000037e3: PUSH1 0x20 000037e5: ADD 000037e6: SWAP2 000037e7: POP 000037e8: JUMPDEST 000037e9: POP 000037ea: SWAP3 000037eb: POP 000037ec: POP 000037ed: POP 000037ee: PUSH1 0x40 000037f0: MLOAD 000037f1: DUP1 000037f2: SWAP2 000037f3: SUB 000037f4: SWAP1 000037f5: REVERT 000037f6: JUMPDEST 000037f7: POP 000037f8: PUSH1 0x00 000037fa: DUP4 000037fb: DUP6 000037fc: SUB 000037fd: SWAP1 000037fe: POP 000037ff: DUP1 00003800: SWAP2 00003801: POP 00003802: POP 00003803: SWAP4 00003804: SWAP3 00003805: POP 00003806: POP 00003807: POP 00003808: JUMP 00003809: JUMPDEST 0000380a: PUSH1 0x00 0000380c: DUP1 0000380d: PUSH1 0x00 0000380f: PUSH2 0x3816 00003812: PUSH2 0x3e15 00003815: JUMP 00003816: JUMPDEST 00003817: SWAP2 00003818: POP 00003819: SWAP2 0000381a: POP 0000381b: PUSH2 0x382d 0000381e: DUP2 0000381f: DUP4 00003820: PUSH2 0x3834 00003823: SWAP1 00003824: SWAP2 00003825: SWAP1 00003826: PUSH4 0xffffffff 0000382b: AND 0000382c: JUMP 0000382d: JUMPDEST 0000382e: SWAP3 0000382f: POP 00003830: POP 00003831: POP 00003832: SWAP1 00003833: JUMP 00003834: JUMPDEST 00003835: PUSH1 0x00 00003837: PUSH2 0x3876 0000383a: DUP4 0000383b: DUP4 0000383c: PUSH1 0x40 0000383e: MLOAD 0000383f: DUP1 00003840: PUSH1 0x40 00003842: ADD 00003843: PUSH1 0x40 00003845: MSTORE 00003846: DUP1 00003847: PUSH1 0x1a 00003849: DUP2 0000384a: MSTORE 0000384b: PUSH1 0x20 0000384d: ADD 0000384e: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 0000386f: DUP2 00003870: MSTORE 00003871: POP 00003872: PUSH2 0x40a6 00003875: JUMP 00003876: JUMPDEST 00003877: SWAP1 00003878: POP 00003879: SWAP3 0000387a: SWAP2 0000387b: POP 0000387c: POP 0000387d: JUMP 0000387e: JUMPDEST 0000387f: PUSH1 0x00 00003881: DUP1 00003882: DUP3 00003883: DUP5 00003884: ADD 00003885: SWAP1 00003886: POP 00003887: DUP4 00003888: DUP2 00003889: LT 0000388a: ISZERO 0000388b: PUSH2 0x38fc 0000388e: JUMPI 0000388f: PUSH1 0x40 00003891: MLOAD 00003892: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000038b3: DUP2 000038b4: MSTORE 000038b5: PUSH1 0x04 000038b7: ADD 000038b8: DUP1 000038b9: DUP1 000038ba: PUSH1 0x20 000038bc: ADD 000038bd: DUP3 000038be: DUP2 000038bf: SUB 000038c0: DUP3 000038c1: MSTORE 000038c2: PUSH1 0x1b 000038c4: DUP2 000038c5: MSTORE 000038c6: PUSH1 0x20 000038c8: ADD 000038c9: DUP1 000038ca: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 000038eb: DUP2 000038ec: MSTORE 000038ed: POP 000038ee: PUSH1 0x20 000038f0: ADD 000038f1: SWAP2 000038f2: POP 000038f3: POP 000038f4: PUSH1 0x40 000038f6: MLOAD 000038f7: DUP1 000038f8: SWAP2 000038f9: SUB 000038fa: SWAP1 000038fb: REVERT 000038fc: JUMPDEST 000038fd: DUP1 000038fe: SWAP2 000038ff: POP 00003900: POP 00003901: SWAP3 00003902: SWAP2 00003903: POP 00003904: POP 00003905: JUMP 00003906: JUMPDEST 00003907: PUSH2 0x390e 0000390a: PUSH2 0x5303 0000390d: JUMP 0000390e: JUMPDEST 0000390f: PUSH2 0x3916 00003912: PUSH2 0x52b7 00003915: JUMP 00003916: JUMPDEST 00003917: PUSH2 0x391f 0000391a: DUP4 0000391b: PUSH2 0x416c 0000391e: JUMP 0000391f: JUMPDEST 00003920: SWAP2 00003921: POP 00003922: PUSH2 0x392b 00003925: DUP4 00003926: DUP4 00003927: PUSH2 0x4223 0000392a: JUMP 0000392b: JUMPDEST 0000392c: SWAP1 0000392d: POP 0000392e: SWAP2 0000392f: POP 00003930: SWAP2 00003931: JUMP 00003932: JUMPDEST 00003933: PUSH1 0x00 00003935: PUSH2 0x3974 00003938: DUP4 00003939: DUP4 0000393a: PUSH1 0x40 0000393c: MLOAD 0000393d: DUP1 0000393e: PUSH1 0x40 00003940: ADD 00003941: PUSH1 0x40 00003943: MSTORE 00003944: DUP1 00003945: PUSH1 0x1e 00003947: DUP2 00003948: MSTORE 00003949: PUSH1 0x20 0000394b: ADD 0000394c: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 0000396d: DUP2 0000396e: MSTORE 0000396f: POP 00003970: PUSH2 0x3749 00003973: JUMP 00003974: JUMPDEST 00003975: SWAP1 00003976: POP 00003977: SWAP3 00003978: SWAP2 00003979: POP 0000397a: POP 0000397b: JUMP 0000397c: JUMPDEST 0000397d: PUSH1 0x00 0000397f: DUP1 00003980: DUP4 00003981: EQ 00003982: ISZERO 00003983: PUSH2 0x398f 00003986: JUMPI 00003987: PUSH1 0x00 00003989: SWAP1 0000398a: POP 0000398b: PUSH2 0x39fc 0000398e: JUMP 0000398f: JUMPDEST 00003990: PUSH1 0x00 00003992: DUP3 00003993: DUP5 00003994: MUL 00003995: SWAP1 00003996: POP 00003997: DUP3 00003998: DUP5 00003999: DUP3 0000399a: DUP2 0000399b: PUSH2 0x39a0 0000399e: JUMPI 0000399f: INVALID 000039a0: JUMPDEST 000039a1: DIV 000039a2: EQ 000039a3: PUSH2 0x39f7 000039a6: JUMPI 000039a7: PUSH1 0x40 000039a9: MLOAD 000039aa: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000039cb: DUP2 000039cc: MSTORE 000039cd: PUSH1 0x04 000039cf: ADD 000039d0: DUP1 000039d1: DUP1 000039d2: PUSH1 0x20 000039d4: ADD 000039d5: DUP3 000039d6: DUP2 000039d7: SUB 000039d8: DUP3 000039d9: MSTORE 000039da: PUSH1 0x21 000039dc: DUP2 000039dd: MSTORE 000039de: PUSH1 0x20 000039e0: ADD 000039e1: DUP1 000039e2: PUSH2 0x541f 000039e5: PUSH1 0x21 000039e7: SWAP2 000039e8: CODECOPY 000039e9: PUSH1 0x40 000039eb: ADD 000039ec: SWAP2 000039ed: POP 000039ee: POP 000039ef: PUSH1 0x40 000039f1: MLOAD 000039f2: DUP1 000039f3: SWAP2 000039f4: SUB 000039f5: SWAP1 000039f6: REVERT 000039f7: JUMPDEST 000039f8: DUP1 000039f9: SWAP2 000039fa: POP 000039fb: POP 000039fc: JUMPDEST 000039fd: SWAP3 000039fe: SWAP2 000039ff: POP 00003a00: POP 00003a01: JUMP 00003a02: JUMPDEST 00003a03: PUSH2 0x3a2f 00003a06: ADDRESS 00003a07: PUSH32 0x0000000000000000000000000dc1cd1c3e26c31e245b3dd708cabb289b857f5b 00003a28: DUP4 00003a29: PUSH1 0x00 00003a2b: PUSH2 0x3b04 00003a2e: JUMP 00003a2f: JUMPDEST 00003a30: PUSH32 0x0000000000000000000000000dc1cd1c3e26c31e245b3dd708cabb289b857f5b 00003a51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003a66: AND 00003a67: PUSH4 0xfff6cae9 00003a6c: PUSH1 0x40 00003a6e: MLOAD 00003a6f: DUP2 00003a70: PUSH4 0xffffffff 00003a75: AND 00003a76: PUSH1 0xe0 00003a78: SHL 00003a79: DUP2 00003a7a: MSTORE 00003a7b: PUSH1 0x04 00003a7d: ADD 00003a7e: PUSH1 0x00 00003a80: PUSH1 0x40 00003a82: MLOAD 00003a83: DUP1 00003a84: DUP4 00003a85: SUB 00003a86: DUP2 00003a87: PUSH1 0x00 00003a89: DUP8 00003a8a: DUP1 00003a8b: EXTCODESIZE 00003a8c: ISZERO 00003a8d: DUP1 00003a8e: ISZERO 00003a8f: PUSH2 0x3a97 00003a92: JUMPI 00003a93: PUSH1 0x00 00003a95: DUP1 00003a96: REVERT 00003a97: JUMPDEST 00003a98: POP 00003a99: GAS 00003a9a: CALL 00003a9b: ISZERO 00003a9c: DUP1 00003a9d: ISZERO 00003a9e: PUSH2 0x3aab 00003aa1: JUMPI 00003aa2: RETURNDATASIZE 00003aa3: PUSH1 0x00 00003aa5: DUP1 00003aa6: RETURNDATACOPY 00003aa7: RETURNDATASIZE 00003aa8: PUSH1 0x00 00003aaa: REVERT 00003aab: JUMPDEST 00003aac: POP 00003aad: POP 00003aae: POP 00003aaf: POP 00003ab0: PUSH2 0x3ac4 00003ab3: DUP2 00003ab4: PUSH1 0x19 00003ab6: SLOAD 00003ab7: PUSH2 0x387e 00003aba: SWAP1 00003abb: SWAP2 00003abc: SWAP1 00003abd: PUSH4 0xffffffff 00003ac2: AND 00003ac3: JUMP 00003ac4: JUMPDEST 00003ac5: PUSH1 0x19 00003ac7: DUP2 00003ac8: SWAP1 00003ac9: SSTORE 00003aca: POP 00003acb: PUSH32 0x9b17fa2df47377a2b63ab30d73e312696f9fb67da7f97221334043b8f84b68a1 00003aec: DUP2 00003aed: PUSH1 0x40 00003aef: MLOAD 00003af0: DUP1 00003af1: DUP3 00003af2: DUP2 00003af3: MSTORE 00003af4: PUSH1 0x20 00003af6: ADD 00003af7: SWAP2 00003af8: POP 00003af9: POP 00003afa: PUSH1 0x40 00003afc: MLOAD 00003afd: DUP1 00003afe: SWAP2 00003aff: SUB 00003b00: SWAP1 00003b01: LOG1 00003b02: POP 00003b03: JUMP 00003b04: JUMPDEST 00003b05: DUP1 00003b06: PUSH2 0x3b12 00003b09: JUMPI 00003b0a: PUSH2 0x3b11 00003b0d: PUSH2 0x435a 00003b10: JUMP 00003b11: JUMPDEST 00003b12: JUMPDEST 00003b13: PUSH1 0x07 00003b15: PUSH1 0x00 00003b17: DUP6 00003b18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b2d: AND 00003b2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b43: AND 00003b44: DUP2 00003b45: MSTORE 00003b46: PUSH1 0x20 00003b48: ADD 00003b49: SWAP1 00003b4a: DUP2 00003b4b: MSTORE 00003b4c: PUSH1 0x20 00003b4e: ADD 00003b4f: PUSH1 0x00 00003b51: KECCAK256 00003b52: PUSH1 0x00 00003b54: SWAP1 00003b55: SLOAD 00003b56: SWAP1 00003b57: PUSH2 0x0100 00003b5a: EXP 00003b5b: SWAP1 00003b5c: DIV 00003b5d: PUSH1 0xff 00003b5f: AND 00003b60: DUP1 00003b61: ISZERO 00003b62: PUSH2 0x3bb5 00003b65: JUMPI 00003b66: POP 00003b67: PUSH1 0x07 00003b69: PUSH1 0x00 00003b6b: DUP5 00003b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b81: AND 00003b82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b97: AND 00003b98: DUP2 00003b99: MSTORE 00003b9a: PUSH1 0x20 00003b9c: ADD 00003b9d: SWAP1 00003b9e: DUP2 00003b9f: MSTORE 00003ba0: PUSH1 0x20 00003ba2: ADD 00003ba3: PUSH1 0x00 00003ba5: KECCAK256 00003ba6: PUSH1 0x00 00003ba8: SWAP1 00003ba9: SLOAD 00003baa: SWAP1 00003bab: PUSH2 0x0100 00003bae: EXP 00003baf: SWAP1 00003bb0: DIV 00003bb1: PUSH1 0xff 00003bb3: AND 00003bb4: ISZERO 00003bb5: JUMPDEST 00003bb6: ISZERO 00003bb7: PUSH2 0x3bca 00003bba: JUMPI 00003bbb: PUSH2 0x3bc5 00003bbe: DUP5 00003bbf: DUP5 00003bc0: DUP5 00003bc1: PUSH2 0x43db 00003bc4: JUMP 00003bc5: JUMPDEST 00003bc6: PUSH2 0x3e01 00003bc9: JUMP 00003bca: JUMPDEST 00003bcb: PUSH1 0x07 00003bcd: PUSH1 0x00 00003bcf: DUP6 00003bd0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003be5: AND 00003be6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003bfb: AND 00003bfc: DUP2 00003bfd: MSTORE 00003bfe: PUSH1 0x20 00003c00: ADD 00003c01: SWAP1 00003c02: DUP2 00003c03: MSTORE 00003c04: PUSH1 0x20 00003c06: ADD 00003c07: PUSH1 0x00 00003c09: KECCAK256 00003c0a: PUSH1 0x00 00003c0c: SWAP1 00003c0d: SLOAD 00003c0e: SWAP1 00003c0f: PUSH2 0x0100 00003c12: EXP 00003c13: SWAP1 00003c14: DIV 00003c15: PUSH1 0xff 00003c17: AND 00003c18: ISZERO 00003c19: DUP1 00003c1a: ISZERO 00003c1b: PUSH2 0x3c6d 00003c1e: JUMPI 00003c1f: POP 00003c20: PUSH1 0x07 00003c22: PUSH1 0x00 00003c24: DUP5 00003c25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c3a: AND 00003c3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c50: AND 00003c51: DUP2 00003c52: MSTORE 00003c53: PUSH1 0x20 00003c55: ADD 00003c56: SWAP1 00003c57: DUP2 00003c58: MSTORE 00003c59: PUSH1 0x20 00003c5b: ADD 00003c5c: PUSH1 0x00 00003c5e: KECCAK256 00003c5f: PUSH1 0x00 00003c61: SWAP1 00003c62: SLOAD 00003c63: SWAP1 00003c64: PUSH2 0x0100 00003c67: EXP 00003c68: SWAP1 00003c69: DIV 00003c6a: PUSH1 0xff 00003c6c: AND 00003c6d: JUMPDEST 00003c6e: ISZERO 00003c6f: PUSH2 0x3c82 00003c72: JUMPI 00003c73: PUSH2 0x3c7d 00003c76: DUP5 00003c77: DUP5 00003c78: DUP5 00003c79: PUSH2 0x465d 00003c7c: JUMP 00003c7d: JUMPDEST 00003c7e: PUSH2 0x3e00 00003c81: JUMP 00003c82: JUMPDEST 00003c83: PUSH1 0x07 00003c85: PUSH1 0x00 00003c87: DUP6 00003c88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c9d: AND 00003c9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003cb3: AND 00003cb4: DUP2 00003cb5: MSTORE 00003cb6: PUSH1 0x20 00003cb8: ADD 00003cb9: SWAP1 00003cba: DUP2 00003cbb: MSTORE 00003cbc: PUSH1 0x20 00003cbe: ADD 00003cbf: PUSH1 0x00 00003cc1: KECCAK256 00003cc2: PUSH1 0x00 00003cc4: SWAP1 00003cc5: SLOAD 00003cc6: SWAP1 00003cc7: PUSH2 0x0100 00003cca: EXP 00003ccb: SWAP1 00003ccc: DIV 00003ccd: PUSH1 0xff 00003ccf: AND 00003cd0: ISZERO 00003cd1: DUP1 00003cd2: ISZERO 00003cd3: PUSH2 0x3d26 00003cd6: JUMPI 00003cd7: POP 00003cd8: PUSH1 0x07 00003cda: PUSH1 0x00 00003cdc: DUP5 00003cdd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003cf2: AND 00003cf3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d08: AND 00003d09: DUP2 00003d0a: MSTORE 00003d0b: PUSH1 0x20 00003d0d: ADD 00003d0e: SWAP1 00003d0f: DUP2 00003d10: MSTORE 00003d11: PUSH1 0x20 00003d13: ADD 00003d14: PUSH1 0x00 00003d16: KECCAK256 00003d17: PUSH1 0x00 00003d19: SWAP1 00003d1a: SLOAD 00003d1b: SWAP1 00003d1c: PUSH2 0x0100 00003d1f: EXP 00003d20: SWAP1 00003d21: DIV 00003d22: PUSH1 0xff 00003d24: AND 00003d25: ISZERO 00003d26: JUMPDEST 00003d27: ISZERO 00003d28: PUSH2 0x3d3b 00003d2b: JUMPI 00003d2c: PUSH2 0x3d36 00003d2f: DUP5 00003d30: DUP5 00003d31: DUP5 00003d32: PUSH2 0x48e3 00003d35: JUMP 00003d36: JUMPDEST 00003d37: PUSH2 0x3dff 00003d3a: JUMP 00003d3b: JUMPDEST 00003d3c: PUSH1 0x07 00003d3e: PUSH1 0x00 00003d40: DUP6 00003d41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d56: AND 00003d57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d6c: AND 00003d6d: DUP2 00003d6e: MSTORE 00003d6f: PUSH1 0x20 00003d71: ADD 00003d72: SWAP1 00003d73: DUP2 00003d74: MSTORE 00003d75: PUSH1 0x20 00003d77: ADD 00003d78: PUSH1 0x00 00003d7a: KECCAK256 00003d7b: PUSH1 0x00 00003d7d: SWAP1 00003d7e: SLOAD 00003d7f: SWAP1 00003d80: PUSH2 0x0100 00003d83: EXP 00003d84: SWAP1 00003d85: DIV 00003d86: PUSH1 0xff 00003d88: AND 00003d89: DUP1 00003d8a: ISZERO 00003d8b: PUSH2 0x3ddd 00003d8e: JUMPI 00003d8f: POP 00003d90: PUSH1 0x07 00003d92: PUSH1 0x00 00003d94: DUP5 00003d95: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003daa: AND 00003dab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003dc0: AND 00003dc1: DUP2 00003dc2: MSTORE 00003dc3: PUSH1 0x20 00003dc5: ADD 00003dc6: SWAP1 00003dc7: DUP2 00003dc8: MSTORE 00003dc9: PUSH1 0x20 00003dcb: ADD 00003dcc: PUSH1 0x00 00003dce: KECCAK256 00003dcf: PUSH1 0x00 00003dd1: SWAP1 00003dd2: SLOAD 00003dd3: SWAP1 00003dd4: PUSH2 0x0100 00003dd7: EXP 00003dd8: SWAP1 00003dd9: DIV 00003dda: PUSH1 0xff 00003ddc: AND 00003ddd: JUMPDEST 00003dde: ISZERO 00003ddf: PUSH2 0x3df2 00003de2: JUMPI 00003de3: PUSH2 0x3ded 00003de6: DUP5 00003de7: DUP5 00003de8: DUP5 00003de9: PUSH2 0x4ad0 00003dec: JUMP 00003ded: JUMPDEST 00003dee: PUSH2 0x3dfe 00003df1: JUMP 00003df2: JUMPDEST 00003df3: PUSH2 0x3dfd 00003df6: DUP5 00003df7: DUP5 00003df8: DUP5 00003df9: PUSH2 0x48e3 00003dfc: JUMP 00003dfd: JUMPDEST 00003dfe: JUMPDEST 00003dff: JUMPDEST 00003e00: JUMPDEST 00003e01: JUMPDEST 00003e02: DUP1 00003e03: PUSH2 0x3e0f 00003e06: JUMPI 00003e07: PUSH2 0x3e0e 00003e0a: PUSH2 0x4deb 00003e0d: JUMP 00003e0e: JUMPDEST 00003e0f: JUMPDEST 00003e10: POP 00003e11: POP 00003e12: POP 00003e13: POP 00003e14: JUMP 00003e15: JUMPDEST 00003e16: PUSH1 0x00 00003e18: DUP1 00003e19: PUSH1 0x00 00003e1b: PUSH1 0x0a 00003e1d: SLOAD 00003e1e: SWAP1 00003e1f: POP 00003e20: PUSH1 0x00 00003e22: PUSH1 0x09 00003e24: SLOAD 00003e25: SWAP1 00003e26: POP 00003e27: PUSH1 0x00 00003e29: JUMPDEST 00003e2a: PUSH1 0x08 00003e2c: DUP1 00003e2d: SLOAD 00003e2e: SWAP1 00003e2f: POP 00003e30: DUP2 00003e31: LT 00003e32: ISZERO 00003e33: PUSH2 0x4069 00003e36: JUMPI 00003e37: DUP3 00003e38: PUSH1 0x03 00003e3a: PUSH1 0x00 00003e3c: PUSH1 0x08 00003e3e: DUP5 00003e3f: DUP2 00003e40: SLOAD 00003e41: DUP2 00003e42: LT 00003e43: PUSH2 0x3e48 00003e46: JUMPI 00003e47: INVALID 00003e48: JUMPDEST 00003e49: SWAP1 00003e4a: PUSH1 0x00 00003e4c: MSTORE 00003e4d: PUSH1 0x20 00003e4f: PUSH1 0x00 00003e51: KECCAK256 00003e52: ADD 00003e53: PUSH1 0x00 00003e55: SWAP1 00003e56: SLOAD 00003e57: SWAP1 00003e58: PUSH2 0x0100 00003e5b: EXP 00003e5c: SWAP1 00003e5d: DIV 00003e5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e73: AND 00003e74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e89: AND 00003e8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e9f: AND 00003ea0: DUP2 00003ea1: MSTORE 00003ea2: PUSH1 0x20 00003ea4: ADD 00003ea5: SWAP1 00003ea6: DUP2 00003ea7: MSTORE 00003ea8: PUSH1 0x20 00003eaa: ADD 00003eab: PUSH1 0x00 00003ead: KECCAK256 00003eae: SLOAD 00003eaf: GT 00003eb0: DUP1 00003eb1: PUSH2 0x3f2f 00003eb4: JUMPI 00003eb5: POP 00003eb6: DUP2 00003eb7: PUSH1 0x04 00003eb9: PUSH1 0x00 00003ebb: PUSH1 0x08 00003ebd: DUP5 00003ebe: DUP2 00003ebf: SLOAD 00003ec0: DUP2 00003ec1: LT 00003ec2: PUSH2 0x3ec7 00003ec5: JUMPI 00003ec6: INVALID 00003ec7: JUMPDEST 00003ec8: SWAP1 00003ec9: PUSH1 0x00 00003ecb: MSTORE 00003ecc: PUSH1 0x20 00003ece: PUSH1 0x00 00003ed0: KECCAK256 00003ed1: ADD 00003ed2: PUSH1 0x00 00003ed4: SWAP1 00003ed5: SLOAD 00003ed6: SWAP1 00003ed7: PUSH2 0x0100 00003eda: EXP 00003edb: SWAP1 00003edc: DIV 00003edd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003ef2: AND 00003ef3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003f08: AND 00003f09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003f1e: AND 00003f1f: DUP2 00003f20: MSTORE 00003f21: PUSH1 0x20 00003f23: ADD 00003f24: SWAP1 00003f25: DUP2 00003f26: MSTORE 00003f27: PUSH1 0x20 00003f29: ADD 00003f2a: PUSH1 0x00 00003f2c: KECCAK256 00003f2d: SLOAD 00003f2e: GT 00003f2f: JUMPDEST 00003f30: ISZERO 00003f31: PUSH2 0x3f46 00003f34: JUMPI 00003f35: PUSH1 0x0a 00003f37: SLOAD 00003f38: PUSH1 0x09 00003f3a: SLOAD 00003f3b: SWAP5 00003f3c: POP 00003f3d: SWAP5 00003f3e: POP 00003f3f: POP 00003f40: POP 00003f41: POP 00003f42: PUSH2 0x40a2 00003f45: JUMP 00003f46: JUMPDEST 00003f47: PUSH2 0x3fcf 00003f4a: PUSH1 0x03 00003f4c: PUSH1 0x00 00003f4e: PUSH1 0x08 00003f50: DUP5 00003f51: DUP2 00003f52: SLOAD 00003f53: DUP2 00003f54: LT 00003f55: PUSH2 0x3f5a 00003f58: JUMPI 00003f59: INVALID 00003f5a: JUMPDEST 00003f5b: SWAP1 00003f5c: PUSH1 0x00 00003f5e: MSTORE 00003f5f: PUSH1 0x20 00003f61: PUSH1 0x00 00003f63: KECCAK256 00003f64: ADD 00003f65: PUSH1 0x00 00003f67: SWAP1 00003f68: SLOAD 00003f69: SWAP1 00003f6a: PUSH2 0x0100 00003f6d: EXP 00003f6e: SWAP1 00003f6f: DIV 00003f70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003f85: AND 00003f86: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003f9b: AND 00003f9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003fb1: AND 00003fb2: DUP2 00003fb3: MSTORE 00003fb4: PUSH1 0x20 00003fb6: ADD 00003fb7: SWAP1 00003fb8: DUP2 00003fb9: MSTORE 00003fba: PUSH1 0x20 00003fbc: ADD 00003fbd: PUSH1 0x00 00003fbf: KECCAK256 00003fc0: SLOAD 00003fc1: DUP5 00003fc2: PUSH2 0x3932 00003fc5: SWAP1 00003fc6: SWAP2 00003fc7: SWAP1 00003fc8: PUSH4 0xffffffff 00003fcd: AND 00003fce: JUMP 00003fcf: JUMPDEST 00003fd0: SWAP3 00003fd1: POP 00003fd2: PUSH2 0x405a 00003fd5: PUSH1 0x04 00003fd7: PUSH1 0x00 00003fd9: PUSH1 0x08 00003fdb: DUP5 00003fdc: DUP2 00003fdd: SLOAD 00003fde: DUP2 00003fdf: LT 00003fe0: PUSH2 0x3fe5 00003fe3: JUMPI 00003fe4: INVALID 00003fe5: JUMPDEST 00003fe6: SWAP1 00003fe7: PUSH1 0x00 00003fe9: MSTORE 00003fea: PUSH1 0x20 00003fec: PUSH1 0x00 00003fee: KECCAK256 00003fef: ADD 00003ff0: PUSH1 0x00 00003ff2: SWAP1 00003ff3: SLOAD 00003ff4: SWAP1 00003ff5: PUSH2 0x0100 00003ff8: EXP 00003ff9: SWAP1 00003ffa: DIV 00003ffb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004010: AND 00004011: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004026: AND 00004027: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000403c: AND 0000403d: DUP2 0000403e: MSTORE 0000403f: PUSH1 0x20 00004041: ADD 00004042: SWAP1 00004043: DUP2 00004044: MSTORE 00004045: PUSH1 0x20 00004047: ADD 00004048: PUSH1 0x00 0000404a: KECCAK256 0000404b: SLOAD 0000404c: DUP4 0000404d: PUSH2 0x3932 00004050: SWAP1 00004051: SWAP2 00004052: SWAP1 00004053: PUSH4 0xffffffff 00004058: AND 00004059: JUMP 0000405a: JUMPDEST 0000405b: SWAP2 0000405c: POP 0000405d: DUP1 0000405e: DUP1 0000405f: PUSH1 0x01 00004061: ADD 00004062: SWAP2 00004063: POP 00004064: POP 00004065: PUSH2 0x3e29 00004068: JUMP 00004069: JUMPDEST 0000406a: POP 0000406b: PUSH2 0x4081 0000406e: PUSH1 0x09 00004070: SLOAD 00004071: PUSH1 0x0a 00004073: SLOAD 00004074: PUSH2 0x3834 00004077: SWAP1 00004078: SWAP2 00004079: SWAP1 0000407a: PUSH4 0xffffffff 0000407f: AND 00004080: JUMP 00004081: JUMPDEST 00004082: DUP3 00004083: LT 00004084: ISZERO 00004085: PUSH2 0x4099 00004088: JUMPI 00004089: PUSH1 0x0a 0000408b: SLOAD 0000408c: PUSH1 0x09 0000408e: SLOAD 0000408f: SWAP4 00004090: POP 00004091: SWAP4 00004092: POP 00004093: POP 00004094: POP 00004095: PUSH2 0x40a2 00004098: JUMP 00004099: JUMPDEST 0000409a: DUP2 0000409b: DUP2 0000409c: SWAP4 0000409d: POP 0000409e: SWAP4 0000409f: POP 000040a0: POP 000040a1: POP 000040a2: JUMPDEST 000040a3: SWAP1 000040a4: SWAP2 000040a5: JUMP 000040a6: JUMPDEST 000040a7: PUSH1 0x00 000040a9: DUP1 000040aa: DUP4 000040ab: GT 000040ac: DUP3 000040ad: SWAP1 000040ae: PUSH2 0x4152 000040b1: JUMPI 000040b2: PUSH1 0x40 000040b4: MLOAD 000040b5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000040d6: DUP2 000040d7: MSTORE 000040d8: PUSH1 0x04 000040da: ADD 000040db: DUP1 000040dc: DUP1 000040dd: PUSH1 0x20 000040df: ADD 000040e0: DUP3 000040e1: DUP2 000040e2: SUB 000040e3: DUP3 000040e4: MSTORE 000040e5: DUP4 000040e6: DUP2 000040e7: DUP2 000040e8: MLOAD 000040e9: DUP2 000040ea: MSTORE 000040eb: PUSH1 0x20 000040ed: ADD 000040ee: SWAP2 000040ef: POP 000040f0: DUP1 000040f1: MLOAD 000040f2: SWAP1 000040f3: PUSH1 0x20 000040f5: ADD 000040f6: SWAP1 000040f7: DUP1 000040f8: DUP4 000040f9: DUP4 000040fa: PUSH1 0x00 000040fc: JUMPDEST 000040fd: DUP4 000040fe: DUP2 000040ff: LT 00004100: ISZERO 00004101: PUSH2 0x4117 00004104: JUMPI 00004105: DUP1 00004106: DUP3 00004107: ADD 00004108: MLOAD 00004109: DUP2 0000410a: DUP5 0000410b: ADD 0000410c: MSTORE 0000410d: PUSH1 0x20 0000410f: DUP2 00004110: ADD 00004111: SWAP1 00004112: POP 00004113: PUSH2 0x40fc 00004116: JUMP 00004117: JUMPDEST 00004118: POP 00004119: POP 0000411a: POP 0000411b: POP 0000411c: SWAP1 0000411d: POP 0000411e: SWAP1 0000411f: DUP2 00004120: ADD 00004121: SWAP1 00004122: PUSH1 0x1f 00004124: AND 00004125: DUP1 00004126: ISZERO 00004127: PUSH2 0x4144 0000412a: JUMPI 0000412b: DUP1 0000412c: DUP3 0000412d: SUB 0000412e: DUP1 0000412f: MLOAD 00004130: PUSH1 0x01 00004132: DUP4 00004133: PUSH1 0x20 00004135: SUB 00004136: PUSH2 0x0100 00004139: EXP 0000413a: SUB 0000413b: NOT 0000413c: AND 0000413d: DUP2 0000413e: MSTORE 0000413f: PUSH1 0x20 00004141: ADD 00004142: SWAP2 00004143: POP 00004144: JUMPDEST 00004145: POP 00004146: SWAP3 00004147: POP 00004148: POP 00004149: POP 0000414a: PUSH1 0x40 0000414c: MLOAD 0000414d: DUP1 0000414e: SWAP2 0000414f: SUB 00004150: SWAP1 00004151: REVERT 00004152: JUMPDEST 00004153: POP 00004154: PUSH1 0x00 00004156: DUP4 00004157: DUP6 00004158: DUP2 00004159: PUSH2 0x415e 0000415c: JUMPI 0000415d: INVALID 0000415e: JUMPDEST 0000415f: DIV 00004160: SWAP1 00004161: POP 00004162: DUP1 00004163: SWAP2 00004164: POP 00004165: POP 00004166: SWAP4 00004167: SWAP3 00004168: POP 00004169: POP 0000416a: POP 0000416b: JUMP 0000416c: JUMPDEST 0000416d: PUSH2 0x4174 00004170: PUSH2 0x5303 00004173: JUMP 00004174: JUMPDEST 00004175: PUSH2 0x417d 00004178: DUP3 00004179: PUSH2 0x4e11 0000417c: JUMP 0000417d: JUMPDEST 0000417e: DUP2 0000417f: PUSH1 0x20 00004181: ADD 00004182: DUP2 00004183: DUP2 00004184: MSTORE 00004185: POP 00004186: POP 00004187: PUSH2 0x418f 0000418a: DUP3 0000418b: PUSH2 0x4e42 0000418e: JUMP 0000418f: JUMPDEST 00004190: DUP2 00004191: PUSH1 0x40 00004193: ADD 00004194: DUP2 00004195: DUP2 00004196: MSTORE 00004197: POP 00004198: POP 00004199: PUSH2 0x41a1 0000419c: DUP3 0000419d: PUSH2 0x4e73 000041a0: JUMP 000041a1: JUMPDEST 000041a2: DUP2 000041a3: PUSH1 0x60 000041a5: ADD 000041a6: DUP2 000041a7: DUP2 000041a8: MSTORE 000041a9: POP 000041aa: POP 000041ab: PUSH2 0x41b3 000041ae: DUP3 000041af: PUSH2 0x4ea4 000041b2: JUMP 000041b3: JUMPDEST 000041b4: DUP2 000041b5: PUSH1 0x80 000041b7: ADD 000041b8: DUP2 000041b9: DUP2 000041ba: MSTORE 000041bb: POP 000041bc: POP 000041bd: PUSH2 0x4215 000041c0: DUP2 000041c1: PUSH1 0x80 000041c3: ADD 000041c4: MLOAD 000041c5: PUSH2 0x4207 000041c8: DUP4 000041c9: PUSH1 0x60 000041cb: ADD 000041cc: MLOAD 000041cd: PUSH2 0x41f9 000041d0: DUP6 000041d1: PUSH1 0x40 000041d3: ADD 000041d4: MLOAD 000041d5: PUSH2 0x41eb 000041d8: DUP8 000041d9: PUSH1 0x20 000041db: ADD 000041dc: MLOAD 000041dd: DUP10 000041de: PUSH2 0x3932 000041e1: SWAP1 000041e2: SWAP2 000041e3: SWAP1 000041e4: PUSH4 0xffffffff 000041e9: AND 000041ea: JUMP 000041eb: JUMPDEST 000041ec: PUSH2 0x3932 000041ef: SWAP1 000041f0: SWAP2 000041f1: SWAP1 000041f2: PUSH4 0xffffffff 000041f7: AND 000041f8: JUMP 000041f9: JUMPDEST 000041fa: PUSH2 0x3932 000041fd: SWAP1 000041fe: SWAP2 000041ff: SWAP1 00004200: PUSH4 0xffffffff 00004205: AND 00004206: JUMP 00004207: JUMPDEST 00004208: PUSH2 0x3932 0000420b: SWAP1 0000420c: SWAP2 0000420d: SWAP1 0000420e: PUSH4 0xffffffff 00004213: AND 00004214: JUMP 00004215: JUMPDEST 00004216: DUP2 00004217: PUSH1 0x00 00004219: ADD 0000421a: DUP2 0000421b: DUP2 0000421c: MSTORE 0000421d: POP 0000421e: POP 0000421f: SWAP2 00004220: SWAP1 00004221: POP 00004222: JUMP 00004223: JUMPDEST 00004224: PUSH2 0x422b 00004227: PUSH2 0x52b7 0000422a: JUMP 0000422b: JUMPDEST 0000422c: PUSH2 0x4233 0000422f: PUSH2 0x3809 00004232: JUMP 00004233: JUMPDEST 00004234: DUP2 00004235: PUSH1 0x00 00004237: ADD 00004238: DUP2 00004239: DUP2 0000423a: MSTORE 0000423b: POP 0000423c: POP 0000423d: PUSH2 0x4253 00004240: DUP2 00004241: PUSH1 0x00 00004243: ADD 00004244: MLOAD 00004245: DUP5 00004246: PUSH2 0x397c 00004249: SWAP1 0000424a: SWAP2 0000424b: SWAP1 0000424c: PUSH4 0xffffffff 00004251: AND 00004252: JUMP 00004253: JUMPDEST 00004254: DUP2 00004255: PUSH1 0x20 00004257: ADD 00004258: DUP2 00004259: DUP2 0000425a: MSTORE 0000425b: POP 0000425c: POP 0000425d: PUSH2 0x4277 00004260: DUP2 00004261: PUSH1 0x00 00004263: ADD 00004264: MLOAD 00004265: DUP4 00004266: PUSH1 0x20 00004268: ADD 00004269: MLOAD 0000426a: PUSH2 0x397c 0000426d: SWAP1 0000426e: SWAP2 0000426f: SWAP1 00004270: PUSH4 0xffffffff 00004275: AND 00004276: JUMP 00004277: JUMPDEST 00004278: DUP2 00004279: PUSH1 0x80 0000427b: ADD 0000427c: DUP2 0000427d: DUP2 0000427e: MSTORE 0000427f: POP 00004280: POP 00004281: PUSH2 0x429b 00004284: DUP2 00004285: PUSH1 0x00 00004287: ADD 00004288: MLOAD 00004289: DUP4 0000428a: PUSH1 0x40 0000428c: ADD 0000428d: MLOAD 0000428e: PUSH2 0x397c 00004291: SWAP1 00004292: SWAP2 00004293: SWAP1 00004294: PUSH4 0xffffffff 00004299: AND 0000429a: JUMP 0000429b: JUMPDEST 0000429c: DUP2 0000429d: PUSH1 0xc0 0000429f: ADD 000042a0: DUP2 000042a1: DUP2 000042a2: MSTORE 000042a3: POP 000042a4: POP 000042a5: PUSH2 0x42bf 000042a8: DUP2 000042a9: PUSH1 0x00 000042ab: ADD 000042ac: MLOAD 000042ad: DUP4 000042ae: PUSH1 0x60 000042b0: ADD 000042b1: MLOAD 000042b2: PUSH2 0x397c 000042b5: SWAP1 000042b6: SWAP2 000042b7: SWAP1 000042b8: PUSH4 0xffffffff 000042bd: AND 000042be: JUMP 000042bf: JUMPDEST 000042c0: DUP2 000042c1: PUSH1 0xe0 000042c3: ADD 000042c4: DUP2 000042c5: DUP2 000042c6: MSTORE 000042c7: POP 000042c8: POP 000042c9: PUSH2 0x42e3 000042cc: DUP2 000042cd: PUSH1 0x00 000042cf: ADD 000042d0: MLOAD 000042d1: DUP4 000042d2: PUSH1 0x80 000042d4: ADD 000042d5: MLOAD 000042d6: PUSH2 0x397c 000042d9: SWAP1 000042da: SWAP2 000042db: SWAP1 000042dc: PUSH4 0xffffffff 000042e1: AND 000042e2: JUMP 000042e3: JUMPDEST 000042e4: DUP2 000042e5: PUSH2 0x0100 000042e8: ADD 000042e9: DUP2 000042ea: DUP2 000042eb: MSTORE 000042ec: POP 000042ed: POP 000042ee: PUSH2 0x434b 000042f1: DUP2 000042f2: PUSH2 0x0100 000042f5: ADD 000042f6: MLOAD 000042f7: PUSH2 0x433d 000042fa: DUP4 000042fb: PUSH1 0xe0 000042fd: ADD 000042fe: MLOAD 000042ff: PUSH2 0x432f 00004302: DUP6 00004303: PUSH1 0xc0 00004305: ADD 00004306: MLOAD 00004307: PUSH2 0x4321 0000430a: DUP8 0000430b: PUSH1 0x80 0000430d: ADD 0000430e: MLOAD 0000430f: DUP9 00004310: PUSH1 0x20 00004312: ADD 00004313: MLOAD 00004314: PUSH2 0x3932 00004317: SWAP1 00004318: SWAP2 00004319: SWAP1 0000431a: PUSH4 0xffffffff 0000431f: AND 00004320: JUMP 00004321: JUMPDEST 00004322: PUSH2 0x3932 00004325: SWAP1 00004326: SWAP2 00004327: SWAP1 00004328: PUSH4 0xffffffff 0000432d: AND 0000432e: JUMP 0000432f: JUMPDEST 00004330: PUSH2 0x3932 00004333: SWAP1 00004334: SWAP2 00004335: SWAP1 00004336: PUSH4 0xffffffff 0000433b: AND 0000433c: JUMP 0000433d: JUMPDEST 0000433e: PUSH2 0x3932 00004341: SWAP1 00004342: SWAP2 00004343: SWAP1 00004344: PUSH4 0xffffffff 00004349: AND 0000434a: JUMP 0000434b: JUMPDEST 0000434c: DUP2 0000434d: PUSH1 0x40 0000434f: ADD 00004350: DUP2 00004351: DUP2 00004352: MSTORE 00004353: POP 00004354: POP 00004355: SWAP3 00004356: SWAP2 00004357: POP 00004358: POP 00004359: JUMP 0000435a: JUMPDEST 0000435b: PUSH1 0x00 0000435d: PUSH1 0x10 0000435f: SLOAD 00004360: EQ 00004361: DUP1 00004362: ISZERO 00004363: PUSH2 0x436e 00004366: JUMPI 00004367: POP 00004368: PUSH1 0x00 0000436a: PUSH1 0x12 0000436c: SLOAD 0000436d: EQ 0000436e: JUMPDEST 0000436f: DUP1 00004370: ISZERO 00004371: PUSH2 0x437c 00004374: JUMPI 00004375: POP 00004376: PUSH1 0x00 00004378: PUSH1 0x14 0000437a: SLOAD 0000437b: EQ 0000437c: JUMPDEST 0000437d: DUP1 0000437e: ISZERO 0000437f: PUSH2 0x438a 00004382: JUMPI 00004383: POP 00004384: PUSH1 0x00 00004386: PUSH1 0x16 00004388: SLOAD 00004389: EQ 0000438a: JUMPDEST 0000438b: ISZERO 0000438c: PUSH2 0x4394 0000438f: JUMPI 00004390: PUSH2 0x43d9 00004393: JUMP 00004394: JUMPDEST 00004395: PUSH1 0x10 00004397: SLOAD 00004398: PUSH1 0x11 0000439a: DUP2 0000439b: SWAP1 0000439c: SSTORE 0000439d: POP 0000439e: PUSH1 0x12 000043a0: SLOAD 000043a1: PUSH1 0x13 000043a3: DUP2 000043a4: SWAP1 000043a5: SSTORE 000043a6: POP 000043a7: PUSH1 0x14 000043a9: SLOAD 000043aa: PUSH1 0x15 000043ac: DUP2 000043ad: SWAP1 000043ae: SSTORE 000043af: POP 000043b0: PUSH1 0x16 000043b2: SLOAD 000043b3: PUSH1 0x17 000043b5: DUP2 000043b6: SWAP1 000043b7: SSTORE 000043b8: POP 000043b9: PUSH1 0x00 000043bb: PUSH1 0x10 000043bd: DUP2 000043be: SWAP1 000043bf: SSTORE 000043c0: POP 000043c1: PUSH1 0x00 000043c3: PUSH1 0x12 000043c5: DUP2 000043c6: SWAP1 000043c7: SSTORE 000043c8: POP 000043c9: PUSH1 0x00 000043cb: PUSH1 0x14 000043cd: DUP2 000043ce: SWAP1 000043cf: SSTORE 000043d0: POP 000043d1: PUSH1 0x00 000043d3: PUSH1 0x16 000043d5: DUP2 000043d6: SWAP1 000043d7: SSTORE 000043d8: POP 000043d9: JUMPDEST 000043da: JUMP 000043db: JUMPDEST 000043dc: PUSH2 0x43e3 000043df: PUSH2 0x5303 000043e2: JUMP 000043e3: JUMPDEST 000043e4: PUSH2 0x43eb 000043e7: PUSH2 0x52b7 000043ea: JUMP 000043eb: JUMPDEST 000043ec: PUSH2 0x43f4 000043ef: DUP4 000043f0: PUSH2 0x3906 000043f3: JUMP 000043f4: JUMPDEST 000043f5: SWAP2 000043f6: POP 000043f7: SWAP2 000043f8: POP 000043f9: PUSH2 0x444a 000043fc: DUP4 000043fd: PUSH1 0x04 000043ff: PUSH1 0x00 00004401: DUP9 00004402: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004417: AND 00004418: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000442d: AND 0000442e: DUP2 0000442f: MSTORE 00004430: PUSH1 0x20 00004432: ADD 00004433: SWAP1 00004434: DUP2 00004435: MSTORE 00004436: PUSH1 0x20 00004438: ADD 00004439: PUSH1 0x00 0000443b: KECCAK256 0000443c: SLOAD 0000443d: PUSH2 0x3932 00004440: SWAP1 00004441: SWAP2 00004442: SWAP1 00004443: PUSH4 0xffffffff 00004448: AND 00004449: JUMP 0000444a: JUMPDEST 0000444b: PUSH1 0x04 0000444d: PUSH1 0x00 0000444f: DUP8 00004450: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004465: AND 00004466: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000447b: AND 0000447c: DUP2 0000447d: MSTORE 0000447e: PUSH1 0x20 00004480: ADD 00004481: SWAP1 00004482: DUP2 00004483: MSTORE 00004484: PUSH1 0x20 00004486: ADD 00004487: PUSH1 0x00 00004489: KECCAK256 0000448a: DUP2 0000448b: SWAP1 0000448c: SSTORE 0000448d: POP 0000448e: PUSH2 0x44e3 00004491: DUP2 00004492: PUSH1 0x20 00004494: ADD 00004495: MLOAD 00004496: PUSH1 0x03 00004498: PUSH1 0x00 0000449a: DUP9 0000449b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000044b0: AND 000044b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000044c6: AND 000044c7: DUP2 000044c8: MSTORE 000044c9: PUSH1 0x20 000044cb: ADD 000044cc: SWAP1 000044cd: DUP2 000044ce: MSTORE 000044cf: PUSH1 0x20 000044d1: ADD 000044d2: PUSH1 0x00 000044d4: KECCAK256 000044d5: SLOAD 000044d6: PUSH2 0x3932 000044d9: SWAP1 000044da: SWAP2 000044db: SWAP1 000044dc: PUSH4 0xffffffff 000044e1: AND 000044e2: JUMP 000044e3: JUMPDEST 000044e4: PUSH1 0x03 000044e6: PUSH1 0x00 000044e8: DUP8 000044e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000044fe: AND 000044ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004514: AND 00004515: DUP2 00004516: MSTORE 00004517: PUSH1 0x20 00004519: ADD 0000451a: SWAP1 0000451b: DUP2 0000451c: MSTORE 0000451d: PUSH1 0x20 0000451f: ADD 00004520: PUSH1 0x00 00004522: KECCAK256 00004523: DUP2 00004524: SWAP1 00004525: SSTORE 00004526: POP 00004527: PUSH2 0x457c 0000452a: DUP2 0000452b: PUSH1 0x40 0000452d: ADD 0000452e: MLOAD 0000452f: PUSH1 0x03 00004531: PUSH1 0x00 00004533: DUP8 00004534: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004549: AND 0000454a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000455f: AND 00004560: DUP2 00004561: MSTORE 00004562: PUSH1 0x20 00004564: ADD 00004565: SWAP1 00004566: DUP2 00004567: MSTORE 00004568: PUSH1 0x20 0000456a: ADD 0000456b: PUSH1 0x00 0000456d: KECCAK256 0000456e: SLOAD 0000456f: PUSH2 0x387e 00004572: SWAP1 00004573: SWAP2 00004574: SWAP1 00004575: PUSH4 0xffffffff 0000457a: AND 0000457b: JUMP 0000457c: JUMPDEST 0000457d: PUSH1 0x03 0000457f: PUSH1 0x00 00004581: DUP7 00004582: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004597: AND 00004598: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000045ad: AND 000045ae: DUP2 000045af: MSTORE 000045b0: PUSH1 0x20 000045b2: ADD 000045b3: SWAP1 000045b4: DUP2 000045b5: MSTORE 000045b6: PUSH1 0x20 000045b8: ADD 000045b9: PUSH1 0x00 000045bb: KECCAK256 000045bc: DUP2 000045bd: SWAP1 000045be: SSTORE 000045bf: POP 000045c0: PUSH2 0x45d1 000045c3: DUP3 000045c4: PUSH1 0x60 000045c6: ADD 000045c7: MLOAD 000045c8: DUP4 000045c9: PUSH1 0x80 000045cb: ADD 000045cc: MLOAD 000045cd: PUSH2 0x4ed5 000045d0: JUMP 000045d1: JUMPDEST 000045d2: PUSH2 0x45ed 000045d5: DUP2 000045d6: PUSH1 0x80 000045d8: ADD 000045d9: MLOAD 000045da: DUP3 000045db: PUSH1 0xc0 000045dd: ADD 000045de: MLOAD 000045df: DUP5 000045e0: PUSH1 0x20 000045e2: ADD 000045e3: MLOAD 000045e4: DUP6 000045e5: PUSH1 0x40 000045e7: ADD 000045e8: MLOAD 000045e9: PUSH2 0x5233 000045ec: JUMP 000045ed: JUMPDEST 000045ee: DUP4 000045ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004604: AND 00004605: DUP6 00004606: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000461b: AND 0000461c: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000463d: DUP5 0000463e: PUSH1 0x00 00004640: ADD 00004641: MLOAD 00004642: PUSH1 0x40 00004644: MLOAD 00004645: DUP1 00004646: DUP3 00004647: DUP2 00004648: MSTORE 00004649: PUSH1 0x20 0000464b: ADD 0000464c: SWAP2 0000464d: POP 0000464e: POP 0000464f: PUSH1 0x40 00004651: MLOAD 00004652: DUP1 00004653: SWAP2 00004654: SUB 00004655: SWAP1 00004656: LOG3 00004657: POP 00004658: POP 00004659: POP 0000465a: POP 0000465b: POP 0000465c: JUMP 0000465d: JUMPDEST 0000465e: PUSH2 0x4665 00004661: PUSH2 0x5303 00004664: JUMP 00004665: JUMPDEST 00004666: PUSH2 0x466d 00004669: PUSH2 0x52b7 0000466c: JUMP 0000466d: JUMPDEST 0000466e: PUSH2 0x4676 00004671: DUP4 00004672: PUSH2 0x3906 00004675: JUMP 00004676: JUMPDEST 00004677: SWAP2 00004678: POP 00004679: SWAP2 0000467a: POP 0000467b: PUSH2 0x46d0 0000467e: DUP2 0000467f: PUSH1 0x20 00004681: ADD 00004682: MLOAD 00004683: PUSH1 0x03 00004685: PUSH1 0x00 00004687: DUP9 00004688: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000469d: AND 0000469e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000046b3: AND 000046b4: DUP2 000046b5: MSTORE 000046b6: PUSH1 0x20 000046b8: ADD 000046b9: SWAP1 000046ba: DUP2 000046bb: MSTORE 000046bc: PUSH1 0x20 000046be: ADD 000046bf: PUSH1 0x00 000046c1: KECCAK256 000046c2: SLOAD 000046c3: PUSH2 0x3932 000046c6: SWAP1 000046c7: SWAP2 000046c8: SWAP1 000046c9: PUSH4 0xffffffff 000046ce: AND 000046cf: JUMP 000046d0: JUMPDEST 000046d1: PUSH1 0x03 000046d3: PUSH1 0x00 000046d5: DUP8 000046d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000046eb: AND 000046ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004701: AND 00004702: DUP2 00004703: MSTORE 00004704: PUSH1 0x20 00004706: ADD 00004707: SWAP1 00004708: DUP2 00004709: MSTORE 0000470a: PUSH1 0x20 0000470c: ADD 0000470d: PUSH1 0x00 0000470f: KECCAK256 00004710: DUP2 00004711: SWAP1 00004712: SSTORE 00004713: POP 00004714: PUSH2 0x4769 00004717: DUP3 00004718: PUSH1 0x00 0000471a: ADD 0000471b: MLOAD 0000471c: PUSH1 0x04 0000471e: PUSH1 0x00 00004720: DUP8 00004721: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004736: AND 00004737: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000474c: AND 0000474d: DUP2 0000474e: MSTORE 0000474f: PUSH1 0x20 00004751: ADD 00004752: SWAP1 00004753: DUP2 00004754: MSTORE 00004755: PUSH1 0x20 00004757: ADD 00004758: PUSH1 0x00 0000475a: KECCAK256 0000475b: SLOAD 0000475c: PUSH2 0x387e 0000475f: SWAP1 00004760: SWAP2 00004761: SWAP1 00004762: PUSH4 0xffffffff 00004767: AND 00004768: JUMP 00004769: JUMPDEST 0000476a: PUSH1 0x04 0000476c: PUSH1 0x00 0000476e: DUP7 0000476f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004784: AND 00004785: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000479a: AND 0000479b: DUP2 0000479c: MSTORE 0000479d: PUSH1 0x20 0000479f: ADD 000047a0: SWAP1 000047a1: DUP2 000047a2: MSTORE 000047a3: PUSH1 0x20 000047a5: ADD 000047a6: PUSH1 0x00 000047a8: KECCAK256 000047a9: DUP2 000047aa: SWAP1 000047ab: SSTORE 000047ac: POP 000047ad: PUSH2 0x4802 000047b0: DUP2 000047b1: PUSH1 0x40 000047b3: ADD 000047b4: MLOAD 000047b5: PUSH1 0x03 000047b7: PUSH1 0x00 000047b9: DUP8 000047ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000047cf: AND 000047d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000047e5: AND 000047e6: DUP2 000047e7: MSTORE 000047e8: PUSH1 0x20 000047ea: ADD 000047eb: SWAP1 000047ec: DUP2 000047ed: MSTORE 000047ee: PUSH1 0x20 000047f0: ADD 000047f1: PUSH1 0x00 000047f3: KECCAK256 000047f4: SLOAD 000047f5: PUSH2 0x387e 000047f8: SWAP1 000047f9: SWAP2 000047fa: SWAP1 000047fb: PUSH4 0xffffffff 00004800: AND 00004801: JUMP 00004802: JUMPDEST 00004803: PUSH1 0x03 00004805: PUSH1 0x00 00004807: DUP7 00004808: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000481d: AND 0000481e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004833: AND 00004834: DUP2 00004835: MSTORE 00004836: PUSH1 0x20 00004838: ADD 00004839: SWAP1 0000483a: DUP2 0000483b: MSTORE 0000483c: PUSH1 0x20 0000483e: ADD 0000483f: PUSH1 0x00 00004841: KECCAK256 00004842: DUP2 00004843: SWAP1 00004844: SSTORE 00004845: POP 00004846: PUSH2 0x4857 00004849: DUP3 0000484a: PUSH1 0x60 0000484c: ADD 0000484d: MLOAD 0000484e: DUP4 0000484f: PUSH1 0x80 00004851: ADD 00004852: MLOAD 00004853: PUSH2 0x4ed5 00004856: JUMP 00004857: JUMPDEST 00004858: PUSH2 0x4873 0000485b: DUP2 0000485c: PUSH1 0x80 0000485e: ADD 0000485f: MLOAD 00004860: DUP3 00004861: PUSH1 0xc0 00004863: ADD 00004864: MLOAD 00004865: DUP5 00004866: PUSH1 0x20 00004868: ADD 00004869: MLOAD 0000486a: DUP6 0000486b: PUSH1 0x40 0000486d: ADD 0000486e: MLOAD 0000486f: PUSH2 0x5233 00004872: JUMP 00004873: JUMPDEST 00004874: DUP4 00004875: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000488a: AND 0000488b: DUP6 0000488c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000048a1: AND 000048a2: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000048c3: DUP5 000048c4: PUSH1 0x00 000048c6: ADD 000048c7: MLOAD 000048c8: PUSH1 0x40 000048ca: MLOAD 000048cb: DUP1 000048cc: DUP3 000048cd: DUP2 000048ce: MSTORE 000048cf: PUSH1 0x20 000048d1: ADD 000048d2: SWAP2 000048d3: POP 000048d4: POP 000048d5: PUSH1 0x40 000048d7: MLOAD 000048d8: DUP1 000048d9: SWAP2 000048da: SUB 000048db: SWAP1 000048dc: LOG3 000048dd: POP 000048de: POP 000048df: POP 000048e0: POP 000048e1: POP 000048e2: JUMP 000048e3: JUMPDEST 000048e4: PUSH2 0x48eb 000048e7: PUSH2 0x5303 000048ea: JUMP 000048eb: JUMPDEST 000048ec: PUSH2 0x48f3 000048ef: PUSH2 0x52b7 000048f2: JUMP 000048f3: JUMPDEST 000048f4: PUSH2 0x48fc 000048f7: DUP4 000048f8: PUSH2 0x3906 000048fb: JUMP 000048fc: JUMPDEST 000048fd: SWAP2 000048fe: POP 000048ff: SWAP2 00004900: POP 00004901: PUSH2 0x4956 00004904: DUP2 00004905: PUSH1 0x20 00004907: ADD 00004908: MLOAD 00004909: PUSH1 0x03 0000490b: PUSH1 0x00 0000490d: DUP9 0000490e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004923: AND 00004924: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004939: AND 0000493a: DUP2 0000493b: MSTORE 0000493c: PUSH1 0x20 0000493e: ADD 0000493f: SWAP1 00004940: DUP2 00004941: MSTORE 00004942: PUSH1 0x20 00004944: ADD 00004945: PUSH1 0x00 00004947: KECCAK256 00004948: SLOAD 00004949: PUSH2 0x3932 0000494c: SWAP1 0000494d: SWAP2 0000494e: SWAP1 0000494f: PUSH4 0xffffffff 00004954: AND 00004955: JUMP 00004956: JUMPDEST 00004957: PUSH1 0x03 00004959: PUSH1 0x00 0000495b: DUP8 0000495c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004971: AND 00004972: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004987: AND 00004988: DUP2 00004989: MSTORE 0000498a: PUSH1 0x20 0000498c: ADD 0000498d: SWAP1 0000498e: DUP2 0000498f: MSTORE 00004990: PUSH1 0x20 00004992: ADD 00004993: PUSH1 0x00 00004995: KECCAK256 00004996: DUP2 00004997: SWAP1 00004998: SSTORE 00004999: POP 0000499a: PUSH2 0x49ef 0000499d: DUP2 0000499e: PUSH1 0x40 000049a0: ADD 000049a1: MLOAD 000049a2: PUSH1 0x03 000049a4: PUSH1 0x00 000049a6: DUP8 000049a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000049bc: AND 000049bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000049d2: AND 000049d3: DUP2 000049d4: MSTORE 000049d5: PUSH1 0x20 000049d7: ADD 000049d8: SWAP1 000049d9: DUP2 000049da: MSTORE 000049db: PUSH1 0x20 000049dd: ADD 000049de: PUSH1 0x00 000049e0: KECCAK256 000049e1: SLOAD 000049e2: PUSH2 0x387e 000049e5: SWAP1 000049e6: SWAP2 000049e7: SWAP1 000049e8: PUSH4 0xffffffff 000049ed: AND 000049ee: JUMP 000049ef: JUMPDEST 000049f0: PUSH1 0x03 000049f2: PUSH1 0x00 000049f4: DUP7 000049f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004a0a: AND 00004a0b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004a20: AND 00004a21: DUP2 00004a22: MSTORE 00004a23: PUSH1 0x20 00004a25: ADD 00004a26: SWAP1 00004a27: DUP2 00004a28: MSTORE 00004a29: PUSH1 0x20 00004a2b: ADD 00004a2c: PUSH1 0x00 00004a2e: KECCAK256 00004a2f: DUP2 00004a30: SWAP1 00004a31: SSTORE 00004a32: POP 00004a33: PUSH2 0x4a44 00004a36: DUP3 00004a37: PUSH1 0x60 00004a39: ADD 00004a3a: MLOAD 00004a3b: DUP4 00004a3c: PUSH1 0x80 00004a3e: ADD 00004a3f: MLOAD 00004a40: PUSH2 0x4ed5 00004a43: JUMP 00004a44: JUMPDEST 00004a45: PUSH2 0x4a60 00004a48: DUP2 00004a49: PUSH1 0x80 00004a4b: ADD 00004a4c: MLOAD 00004a4d: DUP3 00004a4e: PUSH1 0xc0 00004a50: ADD 00004a51: MLOAD 00004a52: DUP5 00004a53: PUSH1 0x20 00004a55: ADD 00004a56: MLOAD 00004a57: DUP6 00004a58: PUSH1 0x40 00004a5a: ADD 00004a5b: MLOAD 00004a5c: PUSH2 0x5233 00004a5f: JUMP 00004a60: JUMPDEST 00004a61: DUP4 00004a62: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004a77: AND 00004a78: DUP6 00004a79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004a8e: AND 00004a8f: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004ab0: DUP5 00004ab1: PUSH1 0x00 00004ab3: ADD 00004ab4: MLOAD 00004ab5: PUSH1 0x40 00004ab7: MLOAD 00004ab8: DUP1 00004ab9: DUP3 00004aba: DUP2 00004abb: MSTORE 00004abc: PUSH1 0x20 00004abe: ADD 00004abf: SWAP2 00004ac0: POP 00004ac1: POP 00004ac2: PUSH1 0x40 00004ac4: MLOAD 00004ac5: DUP1 00004ac6: SWAP2 00004ac7: SUB 00004ac8: SWAP1 00004ac9: LOG3 00004aca: POP 00004acb: POP 00004acc: POP 00004acd: POP 00004ace: POP 00004acf: JUMP 00004ad0: JUMPDEST 00004ad1: PUSH2 0x4ad8 00004ad4: PUSH2 0x5303 00004ad7: JUMP 00004ad8: JUMPDEST 00004ad9: PUSH2 0x4ae0 00004adc: PUSH2 0x52b7 00004adf: JUMP 00004ae0: JUMPDEST 00004ae1: PUSH2 0x4ae9 00004ae4: DUP4 00004ae5: PUSH2 0x3906 00004ae8: JUMP 00004ae9: JUMPDEST 00004aea: SWAP2 00004aeb: POP 00004aec: SWAP2 00004aed: POP 00004aee: PUSH2 0x4b3f 00004af1: DUP4 00004af2: PUSH1 0x04 00004af4: PUSH1 0x00 00004af6: DUP9 00004af7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004b0c: AND 00004b0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004b22: AND 00004b23: DUP2 00004b24: MSTORE 00004b25: PUSH1 0x20 00004b27: ADD 00004b28: SWAP1 00004b29: DUP2 00004b2a: MSTORE 00004b2b: PUSH1 0x20 00004b2d: ADD 00004b2e: PUSH1 0x00 00004b30: KECCAK256 00004b31: SLOAD 00004b32: PUSH2 0x3932 00004b35: SWAP1 00004b36: SWAP2 00004b37: SWAP1 00004b38: PUSH4 0xffffffff 00004b3d: AND 00004b3e: JUMP 00004b3f: JUMPDEST 00004b40: PUSH1 0x04 00004b42: PUSH1 0x00 00004b44: DUP8 00004b45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004b5a: AND 00004b5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004b70: AND 00004b71: DUP2 00004b72: MSTORE 00004b73: PUSH1 0x20 00004b75: ADD 00004b76: SWAP1 00004b77: DUP2 00004b78: MSTORE 00004b79: PUSH1 0x20 00004b7b: ADD 00004b7c: PUSH1 0x00 00004b7e: KECCAK256 00004b7f: DUP2 00004b80: SWAP1 00004b81: SSTORE 00004b82: POP 00004b83: PUSH2 0x4bd8 00004b86: DUP2 00004b87: PUSH1 0x20 00004b89: ADD 00004b8a: MLOAD 00004b8b: PUSH1 0x03 00004b8d: PUSH1 0x00 00004b8f: DUP9 00004b90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004ba5: AND 00004ba6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004bbb: AND 00004bbc: DUP2 00004bbd: MSTORE 00004bbe: PUSH1 0x20 00004bc0: ADD 00004bc1: SWAP1 00004bc2: DUP2 00004bc3: MSTORE 00004bc4: PUSH1 0x20 00004bc6: ADD 00004bc7: PUSH1 0x00 00004bc9: KECCAK256 00004bca: SLOAD 00004bcb: PUSH2 0x3932 00004bce: SWAP1 00004bcf: SWAP2 00004bd0: SWAP1 00004bd1: PUSH4 0xffffffff 00004bd6: AND 00004bd7: JUMP 00004bd8: JUMPDEST 00004bd9: PUSH1 0x03 00004bdb: PUSH1 0x00 00004bdd: DUP8 00004bde: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004bf3: AND 00004bf4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004c09: AND 00004c0a: DUP2 00004c0b: MSTORE 00004c0c: PUSH1 0x20 00004c0e: ADD 00004c0f: SWAP1 00004c10: DUP2 00004c11: MSTORE 00004c12: PUSH1 0x20 00004c14: ADD 00004c15: PUSH1 0x00 00004c17: KECCAK256 00004c18: DUP2 00004c19: SWAP1 00004c1a: SSTORE 00004c1b: POP 00004c1c: PUSH2 0x4c71 00004c1f: DUP3 00004c20: PUSH1 0x00 00004c22: ADD 00004c23: MLOAD 00004c24: PUSH1 0x04 00004c26: PUSH1 0x00 00004c28: DUP8 00004c29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004c3e: AND 00004c3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004c54: AND 00004c55: DUP2 00004c56: MSTORE 00004c57: PUSH1 0x20 00004c59: ADD 00004c5a: SWAP1 00004c5b: DUP2 00004c5c: MSTORE 00004c5d: PUSH1 0x20 00004c5f: ADD 00004c60: PUSH1 0x00 00004c62: KECCAK256 00004c63: SLOAD 00004c64: PUSH2 0x387e 00004c67: SWAP1 00004c68: SWAP2 00004c69: SWAP1 00004c6a: PUSH4 0xffffffff 00004c6f: AND 00004c70: JUMP 00004c71: JUMPDEST 00004c72: PUSH1 0x04 00004c74: PUSH1 0x00 00004c76: DUP7 00004c77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004c8c: AND 00004c8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004ca2: AND 00004ca3: DUP2 00004ca4: MSTORE 00004ca5: PUSH1 0x20 00004ca7: ADD 00004ca8: SWAP1 00004ca9: DUP2 00004caa: MSTORE 00004cab: PUSH1 0x20 00004cad: ADD 00004cae: PUSH1 0x00 00004cb0: KECCAK256 00004cb1: DUP2 00004cb2: SWAP1 00004cb3: SSTORE 00004cb4: POP 00004cb5: PUSH2 0x4d0a 00004cb8: DUP2 00004cb9: PUSH1 0x40 00004cbb: ADD 00004cbc: MLOAD 00004cbd: PUSH1 0x03 00004cbf: PUSH1 0x00 00004cc1: DUP8 00004cc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004cd7: AND 00004cd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004ced: AND 00004cee: DUP2 00004cef: MSTORE 00004cf0: PUSH1 0x20 00004cf2: ADD 00004cf3: SWAP1 00004cf4: DUP2 00004cf5: MSTORE 00004cf6: PUSH1 0x20 00004cf8: ADD 00004cf9: PUSH1 0x00 00004cfb: KECCAK256 00004cfc: SLOAD 00004cfd: PUSH2 0x387e 00004d00: SWAP1 00004d01: SWAP2 00004d02: SWAP1 00004d03: PUSH4 0xffffffff 00004d08: AND 00004d09: JUMP 00004d0a: JUMPDEST 00004d0b: PUSH1 0x03 00004d0d: PUSH1 0x00 00004d0f: DUP7 00004d10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004d25: AND 00004d26: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004d3b: AND 00004d3c: DUP2 00004d3d: MSTORE 00004d3e: PUSH1 0x20 00004d40: ADD 00004d41: SWAP1 00004d42: DUP2 00004d43: MSTORE 00004d44: PUSH1 0x20 00004d46: ADD 00004d47: PUSH1 0x00 00004d49: KECCAK256 00004d4a: DUP2 00004d4b: SWAP1 00004d4c: SSTORE 00004d4d: POP 00004d4e: PUSH2 0x4d5f 00004d51: DUP3 00004d52: PUSH1 0x60 00004d54: ADD 00004d55: MLOAD 00004d56: DUP4 00004d57: PUSH1 0x80 00004d59: ADD 00004d5a: MLOAD 00004d5b: PUSH2 0x4ed5 00004d5e: JUMP 00004d5f: JUMPDEST 00004d60: PUSH2 0x4d7b 00004d63: DUP2 00004d64: PUSH1 0x80 00004d66: ADD 00004d67: MLOAD 00004d68: DUP3 00004d69: PUSH1 0xc0 00004d6b: ADD 00004d6c: MLOAD 00004d6d: DUP5 00004d6e: PUSH1 0x20 00004d70: ADD 00004d71: MLOAD 00004d72: DUP6 00004d73: PUSH1 0x40 00004d75: ADD 00004d76: MLOAD 00004d77: PUSH2 0x5233 00004d7a: JUMP 00004d7b: JUMPDEST 00004d7c: DUP4 00004d7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004d92: AND 00004d93: DUP6 00004d94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004da9: AND 00004daa: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004dcb: DUP5 00004dcc: PUSH1 0x00 00004dce: ADD 00004dcf: MLOAD 00004dd0: PUSH1 0x40 00004dd2: MLOAD 00004dd3: DUP1 00004dd4: DUP3 00004dd5: DUP2 00004dd6: MSTORE 00004dd7: PUSH1 0x20 00004dd9: ADD 00004dda: SWAP2 00004ddb: POP 00004ddc: POP 00004ddd: PUSH1 0x40 00004ddf: MLOAD 00004de0: DUP1 00004de1: SWAP2 00004de2: SUB 00004de3: SWAP1 00004de4: LOG3 00004de5: POP 00004de6: POP 00004de7: POP 00004de8: POP 00004de9: POP 00004dea: JUMP 00004deb: JUMPDEST 00004dec: PUSH1 0x11 00004dee: SLOAD 00004def: PUSH1 0x10 00004df1: DUP2 00004df2: SWAP1 00004df3: SSTORE 00004df4: POP 00004df5: PUSH1 0x13 00004df7: SLOAD 00004df8: PUSH1 0x12 00004dfa: DUP2 00004dfb: SWAP1 00004dfc: SSTORE 00004dfd: POP 00004dfe: PUSH1 0x15 00004e00: SLOAD 00004e01: PUSH1 0x14 00004e03: DUP2 00004e04: SWAP1 00004e05: SSTORE 00004e06: POP 00004e07: PUSH1 0x17 00004e09: SLOAD 00004e0a: PUSH1 0x16 00004e0c: DUP2 00004e0d: SWAP1 00004e0e: SSTORE 00004e0f: POP 00004e10: JUMP 00004e11: JUMPDEST 00004e12: PUSH1 0x00 00004e14: PUSH2 0x4e3b 00004e17: PUSH1 0x64 00004e19: PUSH2 0x4e2d 00004e1c: PUSH1 0x10 00004e1e: SLOAD 00004e1f: DUP6 00004e20: PUSH2 0x397c 00004e23: SWAP1 00004e24: SWAP2 00004e25: SWAP1 00004e26: PUSH4 0xffffffff 00004e2b: AND 00004e2c: JUMP 00004e2d: JUMPDEST 00004e2e: PUSH2 0x3834 00004e31: SWAP1 00004e32: SWAP2 00004e33: SWAP1 00004e34: PUSH4 0xffffffff 00004e39: AND 00004e3a: JUMP 00004e3b: JUMPDEST 00004e3c: SWAP1 00004e3d: POP 00004e3e: SWAP2 00004e3f: SWAP1 00004e40: POP 00004e41: JUMP 00004e42: JUMPDEST 00004e43: PUSH1 0x00 00004e45: PUSH2 0x4e6c 00004e48: PUSH1 0x64 00004e4a: PUSH2 0x4e5e 00004e4d: PUSH1 0x12 00004e4f: SLOAD 00004e50: DUP6 00004e51: PUSH2 0x397c 00004e54: SWAP1 00004e55: SWAP2 00004e56: SWAP1 00004e57: PUSH4 0xffffffff 00004e5c: AND 00004e5d: JUMP 00004e5e: JUMPDEST 00004e5f: PUSH2 0x3834 00004e62: SWAP1 00004e63: SWAP2 00004e64: SWAP1 00004e65: PUSH4 0xffffffff 00004e6a: AND 00004e6b: JUMP 00004e6c: JUMPDEST 00004e6d: SWAP1 00004e6e: POP 00004e6f: SWAP2 00004e70: SWAP1 00004e71: POP 00004e72: JUMP 00004e73: JUMPDEST 00004e74: PUSH1 0x00 00004e76: PUSH2 0x4e9d 00004e79: PUSH1 0x64 00004e7b: PUSH2 0x4e8f 00004e7e: PUSH1 0x14 00004e80: SLOAD 00004e81: DUP6 00004e82: PUSH2 0x397c 00004e85: SWAP1 00004e86: SWAP2 00004e87: SWAP1 00004e88: PUSH4 0xffffffff 00004e8d: AND 00004e8e: JUMP 00004e8f: JUMPDEST 00004e90: PUSH2 0x3834 00004e93: SWAP1 00004e94: SWAP2 00004e95: SWAP1 00004e96: PUSH4 0xffffffff 00004e9b: AND 00004e9c: JUMP 00004e9d: JUMPDEST 00004e9e: SWAP1 00004e9f: POP 00004ea0: SWAP2 00004ea1: SWAP1 00004ea2: POP 00004ea3: JUMP 00004ea4: JUMPDEST 00004ea5: PUSH1 0x00 00004ea7: PUSH2 0x4ece 00004eaa: PUSH1 0x64 00004eac: PUSH2 0x4ec0 00004eaf: PUSH1 0x16 00004eb1: SLOAD 00004eb2: DUP6 00004eb3: PUSH2 0x397c 00004eb6: SWAP1 00004eb7: SWAP2 00004eb8: SWAP1 00004eb9: PUSH4 0xffffffff 00004ebe: AND 00004ebf: JUMP 00004ec0: JUMPDEST 00004ec1: PUSH2 0x3834 00004ec4: SWAP1 00004ec5: SWAP2 00004ec6: SWAP1 00004ec7: PUSH4 0xffffffff 00004ecc: AND 00004ecd: JUMP 00004ece: JUMPDEST 00004ecf: SWAP1 00004ed0: POP 00004ed1: SWAP2 00004ed2: SWAP1 00004ed3: POP 00004ed4: JUMP 00004ed5: JUMPDEST 00004ed6: PUSH1 0x00 00004ed8: PUSH2 0x4edf 00004edb: PUSH2 0x3809 00004ede: JUMP 00004edf: JUMPDEST 00004ee0: SWAP1 00004ee1: POP 00004ee2: PUSH1 0x00 00004ee4: PUSH2 0x4ef6 00004ee7: DUP3 00004ee8: DUP6 00004ee9: PUSH2 0x397c 00004eec: SWAP1 00004eed: SWAP2 00004eee: SWAP1 00004eef: PUSH4 0xffffffff 00004ef4: AND 00004ef5: JUMP 00004ef6: JUMPDEST 00004ef7: SWAP1 00004ef8: POP 00004ef9: PUSH2 0x4f4a 00004efc: DUP2 00004efd: PUSH1 0x03 00004eff: PUSH1 0x00 00004f01: ADDRESS 00004f02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004f17: AND 00004f18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004f2d: AND 00004f2e: DUP2 00004f2f: MSTORE 00004f30: PUSH1 0x20 00004f32: ADD 00004f33: SWAP1 00004f34: DUP2 00004f35: MSTORE 00004f36: PUSH1 0x20 00004f38: ADD 00004f39: PUSH1 0x00 00004f3b: KECCAK256 00004f3c: SLOAD 00004f3d: PUSH2 0x387e 00004f40: SWAP1 00004f41: SWAP2 00004f42: SWAP1 00004f43: PUSH4 0xffffffff 00004f48: AND 00004f49: JUMP 00004f4a: JUMPDEST 00004f4b: PUSH1 0x03 00004f4d: PUSH1 0x00 00004f4f: ADDRESS 00004f50: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004f65: AND 00004f66: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004f7b: AND 00004f7c: DUP2 00004f7d: MSTORE 00004f7e: PUSH1 0x20 00004f80: ADD 00004f81: SWAP1 00004f82: DUP2 00004f83: MSTORE 00004f84: PUSH1 0x20 00004f86: ADD 00004f87: PUSH1 0x00 00004f89: KECCAK256 00004f8a: DUP2 00004f8b: SWAP1 00004f8c: SSTORE 00004f8d: POP 00004f8e: PUSH1 0x07 00004f90: PUSH1 0x00 00004f92: ADDRESS 00004f93: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004fa8: AND 00004fa9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004fbe: AND 00004fbf: DUP2 00004fc0: MSTORE 00004fc1: PUSH1 0x20 00004fc3: ADD 00004fc4: SWAP1 00004fc5: DUP2 00004fc6: MSTORE 00004fc7: PUSH1 0x20 00004fc9: ADD 00004fca: PUSH1 0x00 00004fcc: KECCAK256 00004fcd: PUSH1 0x00 00004fcf: SWAP1 00004fd0: SLOAD 00004fd1: SWAP1 00004fd2: PUSH2 0x0100 00004fd5: EXP 00004fd6: SWAP1 00004fd7: DIV 00004fd8: PUSH1 0xff 00004fda: AND 00004fdb: ISZERO 00004fdc: PUSH2 0x5075 00004fdf: JUMPI 00004fe0: PUSH2 0x5031 00004fe3: DUP5 00004fe4: PUSH1 0x04 00004fe6: PUSH1 0x00 00004fe8: ADDRESS 00004fe9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004ffe: AND 00004fff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00005014: AND 00005015: DUP2 00005016: MSTORE 00005017: PUSH1 0x20 00005019: ADD 0000501a: SWAP1 0000501b: DUP2 0000501c: MSTORE 0000501d: PUSH1 0x20 0000501f: ADD 00005020: PUSH1 0x00 00005022: KECCAK256 00005023: SLOAD 00005024: PUSH2 0x387e 00005027: SWAP1 00005028: SWAP2 00005029: SWAP1 0000502a: PUSH4 0xffffffff 0000502f: AND 00005030: JUMP 00005031: JUMPDEST 00005032: PUSH1 0x04 00005034: PUSH1 0x00 00005036: ADDRESS 00005037: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000504c: AND 0000504d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00005062: AND 00005063: DUP2 00005064: MSTORE 00005065: PUSH1 0x20 00005067: ADD 00005068: SWAP1 00005069: DUP2 0000506a: MSTORE 0000506b: PUSH1 0x20 0000506d: ADD 0000506e: PUSH1 0x00 00005070: KECCAK256 00005071: DUP2 00005072: SWAP1 00005073: SSTORE 00005074: POP 00005075: JUMPDEST 00005076: PUSH1 0x00 00005078: PUSH2 0x508a 0000507b: DUP4 0000507c: DUP6 0000507d: PUSH2 0x397c 00005080: SWAP1 00005081: SWAP2 00005082: SWAP1 00005083: PUSH4 0xffffffff 00005088: AND 00005089: JUMP 0000508a: JUMPDEST 0000508b: SWAP1 0000508c: POP 0000508d: PUSH2 0x50e5 00005090: DUP2 00005091: PUSH1 0x03 00005093: PUSH1 0x00 00005095: PUSH2 0x509c 00005098: PUSH2 0x24cc 0000509b: JUMP 0000509c: JUMPDEST 0000509d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000050b2: AND 000050b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000050c8: AND 000050c9: DUP2 000050ca: MSTORE 000050cb: PUSH1 0x20 000050cd: ADD 000050ce: SWAP1 000050cf: DUP2 000050d0: MSTORE 000050d1: PUSH1 0x20 000050d3: ADD 000050d4: PUSH1 0x00 000050d6: KECCAK256 000050d7: SLOAD 000050d8: PUSH2 0x387e 000050db: SWAP1 000050dc: SWAP2 000050dd: SWAP1 000050de: PUSH4 0xffffffff 000050e3: AND 000050e4: JUMP 000050e5: JUMPDEST 000050e6: PUSH1 0x03 000050e8: PUSH1 0x00 000050ea: PUSH2 0x50f1 000050ed: PUSH2 0x24cc 000050f0: JUMP 000050f1: JUMPDEST 000050f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00005107: AND 00005108: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000511d: AND 0000511e: DUP2 0000511f: MSTORE 00005120: PUSH1 0x20 00005122: ADD 00005123: SWAP1 00005124: DUP2 00005125: MSTORE 00005126: PUSH1 0x20 00005128: ADD 00005129: PUSH1 0x00 0000512b: KECCAK256 0000512c: DUP2 0000512d: SWAP1 0000512e: SSTORE 0000512f: POP 00005130: PUSH1 0x07 00005132: PUSH1 0x00 00005134: PUSH2 0x513b 00005137: PUSH2 0x24cc 0000513a: JUMP 0000513b: JUMPDEST 0000513c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00005151: AND 00005152: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00005167: AND 00005168: DUP2 00005169: MSTORE 0000516a: PUSH1 0x20 0000516c: ADD 0000516d: SWAP1 0000516e: DUP2 0000516f: MSTORE 00005170: PUSH1 0x20 00005172: ADD 00005173: PUSH1 0x00 00005175: KECCAK256 00005176: PUSH1 0x00 00005178: SWAP1 00005179: SLOAD 0000517a: SWAP1 0000517b: PUSH2 0x0100 0000517e: EXP 0000517f: SWAP1 00005180: DIV 00005181: PUSH1 0xff 00005183: AND 00005184: ISZERO 00005185: PUSH2 0x522c 00005188: JUMPI 00005189: PUSH2 0x51e1 0000518c: DUP5 0000518d: PUSH1 0x04 0000518f: PUSH1 0x00 00005191: PUSH2 0x5198 00005194: PUSH2 0x24cc 00005197: JUMP 00005198: JUMPDEST 00005199: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000051ae: AND 000051af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000051c4: AND 000051c5: DUP2 000051c6: MSTORE 000051c7: PUSH1 0x20 000051c9: ADD 000051ca: SWAP1 000051cb: DUP2 000051cc: MSTORE 000051cd: PUSH1 0x20 000051cf: ADD 000051d0: PUSH1 0x00 000051d2: KECCAK256 000051d3: SLOAD 000051d4: PUSH2 0x387e 000051d7: SWAP1 000051d8: SWAP2 000051d9: SWAP1 000051da: PUSH4 0xffffffff 000051df: AND 000051e0: JUMP 000051e1: JUMPDEST 000051e2: PUSH1 0x04 000051e4: PUSH1 0x00 000051e6: PUSH2 0x51ed 000051e9: PUSH2 0x24cc 000051ec: JUMP 000051ed: JUMPDEST 000051ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00005203: AND 00005204: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00005219: AND 0000521a: DUP2 0000521b: MSTORE 0000521c: PUSH1 0x20 0000521e: ADD 0000521f: SWAP1 00005220: DUP2 00005221: MSTORE 00005222: PUSH1 0x20 00005224: ADD 00005225: PUSH1 0x00 00005227: KECCAK256 00005228: DUP2 00005229: SWAP1 0000522a: SSTORE 0000522b: POP 0000522c: JUMPDEST 0000522d: POP 0000522e: POP 0000522f: POP 00005230: POP 00005231: POP 00005232: JUMP 00005233: JUMPDEST 00005234: PUSH2 0x525a 00005237: DUP4 00005238: PUSH2 0x524c 0000523b: DUP7 0000523c: PUSH1 0x0a 0000523e: SLOAD 0000523f: PUSH2 0x3932 00005242: SWAP1 00005243: SWAP2 00005244: SWAP1 00005245: PUSH4 0xffffffff 0000524a: AND 0000524b: JUMP 0000524c: JUMPDEST 0000524d: PUSH2 0x3932 00005250: SWAP1 00005251: SWAP2 00005252: SWAP1 00005253: PUSH4 0xffffffff 00005258: AND 00005259: JUMP 0000525a: JUMPDEST 0000525b: PUSH1 0x0a 0000525d: DUP2 0000525e: SWAP1 0000525f: SSTORE 00005260: POP 00005261: PUSH2 0x5275 00005264: DUP3 00005265: PUSH1 0x0b 00005267: SLOAD 00005268: PUSH2 0x387e 0000526b: SWAP1 0000526c: SWAP2 0000526d: SWAP1 0000526e: PUSH4 0xffffffff 00005273: AND 00005274: JUMP 00005275: JUMPDEST 00005276: PUSH1 0x0b 00005278: DUP2 00005279: SWAP1 0000527a: SSTORE 0000527b: POP 0000527c: PUSH2 0x5290 0000527f: DUP2 00005280: PUSH1 0x0c 00005282: SLOAD 00005283: PUSH2 0x387e 00005286: SWAP1 00005287: SWAP2 00005288: SWAP1 00005289: PUSH4 0xffffffff 0000528e: AND 0000528f: JUMP 00005290: JUMPDEST 00005291: PUSH1 0x0c 00005293: DUP2 00005294: SWAP1 00005295: SSTORE 00005296: POP 00005297: PUSH2 0x52ab 0000529a: DUP2 0000529b: PUSH1 0x09 0000529d: SLOAD 0000529e: PUSH2 0x3932 000052a1: SWAP1 000052a2: SWAP2 000052a3: SWAP1 000052a4: PUSH4 0xffffffff 000052a9: AND 000052aa: JUMP 000052ab: JUMPDEST 000052ac: PUSH1 0x09 000052ae: DUP2 000052af: SWAP1 000052b0: SSTORE 000052b1: POP 000052b2: POP 000052b3: POP 000052b4: POP 000052b5: POP 000052b6: JUMP 000052b7: JUMPDEST 000052b8: PUSH1 0x40 000052ba: MLOAD 000052bb: DUP1 000052bc: PUSH2 0x0120 000052bf: ADD 000052c0: PUSH1 0x40 000052c2: MSTORE 000052c3: DUP1 000052c4: PUSH1 0x00 000052c6: DUP2 000052c7: MSTORE 000052c8: PUSH1 0x20 000052ca: ADD 000052cb: PUSH1 0x00 000052cd: DUP2 000052ce: MSTORE 000052cf: PUSH1 0x20 000052d1: ADD 000052d2: PUSH1 0x00 000052d4: DUP2 000052d5: MSTORE 000052d6: PUSH1 0x20 000052d8: ADD 000052d9: PUSH1 0x00 000052db: DUP2 000052dc: MSTORE 000052dd: PUSH1 0x20 000052df: ADD 000052e0: PUSH1 0x00 000052e2: DUP2 000052e3: MSTORE 000052e4: PUSH1 0x20 000052e6: ADD 000052e7: PUSH1 0x00 000052e9: DUP2 000052ea: MSTORE 000052eb: PUSH1 0x20 000052ed: ADD 000052ee: PUSH1 0x00 000052f0: DUP2 000052f1: MSTORE 000052f2: PUSH1 0x20 000052f4: ADD 000052f5: PUSH1 0x00 000052f7: DUP2 000052f8: MSTORE 000052f9: PUSH1 0x20 000052fb: ADD 000052fc: PUSH1 0x00 000052fe: DUP2 000052ff: MSTORE 00005300: POP 00005301: SWAP1 00005302: JUMP 00005303: JUMPDEST 00005304: PUSH1 0x40 00005306: MLOAD 00005307: DUP1 00005308: PUSH1 0xa0 0000530a: ADD 0000530b: PUSH1 0x40 0000530d: MSTORE 0000530e: DUP1 0000530f: PUSH1 0x00 00005311: DUP2 00005312: MSTORE 00005313: PUSH1 0x20 00005315: ADD 00005316: PUSH1 0x00 00005318: DUP2 00005319: MSTORE 0000531a: PUSH1 0x20 0000531c: ADD 0000531d: PUSH1 0x00 0000531f: DUP2 00005320: MSTORE 00005321: PUSH1 0x20 00005323: ADD 00005324: PUSH1 0x00 00005326: DUP2 00005327: MSTORE 00005328: PUSH1 0x20 0000532a: ADD 0000532b: PUSH1 0x00 0000532d: DUP2 0000532e: MSTORE 0000532f: POP 00005330: SWAP1 00005331: JUMP 00005332: INVALID 00005333: GASLIMIT 00005334: MSTORE 00005335: NUMBER 00005336: ORIGIN 00005337: ADDRESS 00005338: GASPRICE 00005339: KECCAK256 0000533a: PUSH21 0x72616e7366657220746f20746865207a65726f2061 00005350: PUSH5 0x6472657373 00005356: SLOAD 00005357: PUSH19 0x616e73666572206973206c6f636b6564206265 0000536b: PUSH7 0x6f726520707265 00005373: PUSH20 0x616c6520697320636f6d706c657465642e416d6f 00005388: PUSH22 0x6e74206d757374206265206c657373207468616e2074 0000539f: PUSH16 0x74616c207265666c656374696f6e734f 000053b0: PUSH24 0x6e61626c653a206e6577206f776e65722069732074686520 000053c9: PUSH27 0x65726f206164647265737345524332303a20617070726f76652074 000053e5: PUSH16 0x20746865207a65726f20616464726573 000053f6: PUSH20 0x5472616e7366657220616d6f756e742065786365 0000540b: PUSH6 0x647320746865 00005412: KECCAK256 00005413: PUSH14 0x61785478416d6f756e742e536166 00005422: PUSH6 0x4d6174683a20 00005429: PUSH14 0x756c7469706c69636174696f6e20 00005438: PUSH16 0x766572666c6f7745524332303a207472 00005449: PUSH2 0x6e73 0000544c: PUSH7 0x657220616d6f75 00005454: PUSH15 0x74206578636565647320616c6c6f77 00005464: PUSH2 0x6e63 00005467: PUSH6 0x5472616e7366 0000546e: PUSH6 0x7220616d6f75 00005475: PUSH15 0x74206d757374206265206772656174 00005485: PUSH6 0x72207468616e 0000548c: KECCAK256 0000548d: PUSH27 0x65726f45524332303a207472616e736665722066726f6d20746865 000054a9: KECCAK256 000054aa: PUSH27 0x65726f206164647265737345524332303a20617070726f76652066 000054c6: PUSH19 0x6f6d20746865207a65726f2061646472657373 000054da: GASLIMIT 000054db: PUSH25 0x636c75646564206164647265737365732063616e6e6f742063 000054f5: PUSH2 0x6c6c 000054f8: KECCAK256 000054f9: PUSH21 0x6869732066756e6374696f6e596f7520646f6e2774 0000550f: KECCAK256 00005510: PUSH9 0x617665207065726d69 0000551a: PUSH20 0x73696f6e20746f20756e6c6f636b45524332303a 0000552f: KECCAK256 00005530: PUSH5 0x6563726561 00005536: PUSH20 0x656420616c6c6f77616e63652062656c6f77207a 0000554b: PUSH6 0x726fa2646970 00005552: PUSH7 0x7358221220b55e 0000555a: PUSH15 0x6e07da092f1a3d32c4a242f6772ae3 0000556a: UNKNOWN(0x23) 0000556b: UNKNOWN(0xE3) 0000556c: UNKNOWN(0xB9) 0000556d: UNKNOWN(0xA7) 0000556e: PUSH16 0xcb7f00c1c846b264ce64736f6c634300 0000557f: MOD 00005580: UNKNOWN(0x0C) 00005581: STOP 00005582: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xd26edfe3",
"selector": "0xd26edfe3",
"calldata_variants": [
"0xd26edfe3",
"0xd26edfe30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd467064",
"selector": "0xdd467064",
"calldata_variants": [
"0xdd467064",
"0xdd4670640000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7db06cc",
"selector": "0xe7db06cc",
"calldata_variants": [
"0xe7db06cc",
"0xe7db06cc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea2f0b37",
"selector": "0xea2f0b37",
"calldata_variants": [
"0xea2f0b37",
"0xea2f0b370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb6c52324",
"selector": "0xb6c52324",
"calldata_variants": [
"0xb6c52324",
"0xb6c523240000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 21302,
"type": "tx_origin_used"
}
]
}
|
| medium | access_control | codex | Owner can set arbitrary fee percentages, enabling confiscation or transfer DoS | 75 | no | — |
viewevidence_json{
"evidence": "Fee setters have no bounds or invariants on total fees.",
"locations": [
"contracts/Contract.sol:1128",
"contracts/Contract.sol:1132",
"contracts/Contract.sol:1136",
"contracts/Contract.sol:1140"
],
"recommendation": "Add caps and/or enforce an upper bound on total fees (e.g., <=10\u201320%). Consider a timelock on fee changes or permanently renouncing fee-setting after launch.",
"exploit_scenario": "The owner can set dev/burn/lp/tax fees to any value. Setting dev fee to 100% routes all transfer value to the owner; setting cumulative fees >100% causes transfers to revert, effectively freezing trading. Either behavior can be used to create a honeypot or rug pull after users buy."
}
|
| medium | other | slither | Contract locking ether found: | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "locked-ether",
"elements": [
{
"name": "SPLIT",
"type": "contract",
"source_mapping": {
"lines": [
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999,
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
1011,
1012,
1013,
1014,
1015,
1016,
1017,
1018,
1019,
1020,
1021,
1022,
1023,
1024,
1025,
1026,
1027,
1028,
1029,
1030,
1031,
1032,
1033,
1034,
1035,
1036,
1037,
1038,
1039,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1056,
1057,
1058,
1059,
1060,
1061,
1062,
1063,
1064,
1065,
1066,
1067,
1068,
1069,
1070,
1071,
1072,
1073,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1088,
1089,
1090,
1091,
1092,
1093,
1094,
1095,
1096,
1097,
1098,
1099,
1100,
1101,
1102,
1103,
1104,
1105,
1106,
1107,
1108,
1109,
1110,
1111,
1112,
1113,
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136
],
"start": 25067,
"length": 18746,
"ending_column": 68,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 48,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
{
"name": "receive",
"type": "function",
"source_mapping": {
"lines": [
1136
],
"start": 43782,
"length": 29,
"ending_column": 66,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 37,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "SPLIT",
"type": "contract",
"source_mapping": {
"lines": [
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999,
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
1011,
1012,
1013,
1014,
1015,
1016,
1017,
1018,
1019,
1020,
1021,
1022,
1023,
1024,
1025,
1026,
1027,
1028,
1029,
1030,
1031,
1032,
1033,
1034,
1035,
1036,
1037,
1038,
1039,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1056,
1057,
1058,
1059,
1060,
1061,
1062,
1063,
1064,
1065,
1066,
1067,
1068,
1069,
1070,
1071,
1072,
1073,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1088,
1089,
1090,
1091,
1092,
1093,
1094,
1095,
1096,
1097,
1098,
1099,
1100,
1101,
1102,
1103,
1104,
1105,
1106,
1107,
1108,
1109,
1110,
1111,
1112,
1113,
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136
],
"start": 25067,
"length": 18746,
"ending_column": 68,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 48,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "receive()"
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "SPLIT",
"type": "contract",
"lines": [
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999,
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
1011,
1012,
1013,
1014,
1015,
1016,
1017,
1018,
1019,
1020,
1021,
1022,
1023,
1024,
1025,
1026,
1027,
1028,
1029,
1030,
1031,
1032,
1033,
1034,
1035,
1036,
1037,
1038,
1039,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1056,
1057,
1058,
1059,
1060,
1061,
1062,
1063,
1064,
1065,
1066,
1067,
1068,
1069,
1070,
1071,
1072,
1073,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1088,
1089,
1090,
1091,
1092,
1093,
1094,
1095,
1096,
1097,
1098,
1099,
1100,
1101,
1102,
1103,
1104,
1105,
1106,
1107,
1108,
1109,
1110,
1111,
1112,
1113,
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136
]
},
{
"file": "contracts/Contract.sol",
"name": "receive",
"type": "function",
"lines": [
1136
]
}
],
"description": "Contract locking ether found:\n\tContract SPLIT (contracts/Contract.sol#661-1136) has payable functions:\n\t - SPLIT.receive() (contracts/Contract.sol#1136)\n\tBut does not have a function to withdraw the ether"
}
|
| medium | reentrancy | slither | Reentrancy in SPLIT._transfer(address,address,uint256) (contracts/Contract.sol#876-914): | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "reentrancy-no-eth",
"elements": [
{
"name": "_transfer",
"type": "function",
"source_mapping": {
"lines": [
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914
],
"start": 32454,
"length": 1614,
"ending_column": 45,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 18,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "SPLIT",
"type": "contract",
"source_mapping": {
"lines": [
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999,
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
1011,
1012,
1013,
1014,
1015,
1016,
1017,
1018,
1019,
1020,
1021,
1022,
1023,
1024,
1025,
1026,
1027,
1028,
1029,
1030,
1031,
1032,
1033,
1034,
1035,
1036,
1037,
1038,
1039,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1056,
1057,
1058,
1059,
1060,
1061,
1062,
1063,
1064,
1065,
1066,
1067,
1068,
1069,
1070,
1071,
1072,
1073,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1088,
1089,
1090,
1091,
1092,
1093,
1094,
1095,
1096,
1097,
1098,
1099,
1100,
1101,
1102,
1103,
1104,
1105,
1106,
1107,
1108,
1109,
1110,
1111,
1112,
1113,
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136
],
"start": 25067,
"length": 18746,
"ending_column": 68,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 48,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_transfer(address,address,uint256)"
}
},
{
"name": "_rewardLiquidityProviders(contractTokenBalance)",
"type": "node",
"source_mapping": {
"lines": [
907
],
"start": 33589,
"length": 47,
"ending_column": 61,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 14,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls"
},
"type_specific_fields": {
"parent": {
"name": "_transfer",
"type": "function",
"source_mapping": {
"lines": [
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914
],
"start": 32454,
"length": 1614,
"ending_column": 45,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 18,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "SPLIT",
"type": "contract",
"source_mapping": {
"lines": [
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999,
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
1011,
1012,
1013,
1014,
1015,
1016,
1017,
1018,
1019,
1020,
1021,
1022,
1023,
1024,
1025,
1026,
1027,
1028,
1029,
1030,
1031,
1032,
1033,
1034,
1035,
1036,
1037,
1038,
1039,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1056,
1057,
1058,
1059,
1060,
1061,
1062,
1063,
1064,
1065,
1066,
1067,
1068,
1069,
1070,
1071,
1072,
1073,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1088,
1089,
1090,
1091,
1092,
1093,
1094,
1095,
1096,
1097,
1098,
1099,
1100,
1101,
1102,
1103,
1104,
1105,
1106,
1107,
1108,
1109,
1110,
1111,
1112,
1113,
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136
],
"start": 25067,
"length": 18746,
"ending_column": 68,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 48,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_transfer(address,address,uint256)"
}
}
}
},
{
"name": "IUniswapV2Pair(uniswapV2Pair).sync()",
"type": "node",
"source_mapping": {
"lines": [
1041,
1042,
1043
],
"start": 40528,
"length": 36,
"ending_column": 14,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 48,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"underlying_type": "external_calls_sending_eth"
},
"type_specific_fields": {
"parent": {
"name": "_rewardLiquidityProviders",
"type": "function",
"source_mapping": {
"lines": [
1039,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047
],
"start": 40316,
"length": 407,
"ending_column": 52,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 7,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "SPLIT",
"type": "contract",
"source_mapping": {
"lines": [
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999,
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
1011,
1012,
1013,
1014,
1015,
1016,
1017,
1018,
1019,
1020,
1021,
1022,
1023,
1024,
1025,
1026,
1027,
1028,
1029,
1030,
1031,
1032,
1033,
1034,
1035,
1036,
1037,
1038,
1039,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1056,
1057,
1058,
1059,
1060,
1061,
1062,
1063,
1064,
1065,
1066,
1067,
1068,
1069,
1070,
1071,
1072,
1073,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1088,
1089,
1090,
1091,
1092,
1093,
1094,
1095,
1096,
1097,
1098,
1099,
1100,
1101,
1102,
1103,
1104,
1105,
1106,
1107,
1108,
1109,
1110,
1111,
1112,
1113,
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136
],
"start": 25067,
"length": 18746,
"ending_column": 68,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 48,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_rewardLiquidityProviders(uint256)"
}
}
}
},
{
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"source_mapping": {
"lines": [
913,
914
],
"start": 34023,
"length": 38,
"ending_column": 38,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 81,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "_burnFee",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "_transfer",
"type": "function",
"source_mapping": {
"lines": [
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914
],
"start": 32454,
"length": 1614,
"ending_column": 45,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 18,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "SPLIT",
"type": "contract",
"source_mapping": {
"lines": [
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999,
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
1011,
1012,
1013,
1014,
1015,
1016,
1017,
1018,
1019,
1020,
1021,
1022,
1023,
1024,
1025,
1026,
1027,
1028,
1029,
1030,
1031,
1032,
1033,
1034,
1035,
1036,
1037,
1038,
1039,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1056,
1057,
1058,
1059,
1060,
1061,
1062,
1063,
1064,
1065,
1066,
1067,
1068,
1069,
1070,
1071,
1072,
1073,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1088,
1089,
1090,
1091,
1092,
1093,
1094,
1095,
1096,
1097,
1098,
1099,
1100,
1101,
1102,
1103,
1104,
1105,
1106,
1107,
1108,
1109,
1110,
1111,
1112,
1113,
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136
],
"start": 25067,
"length": 18746,
"ending_column": 68,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 48,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "_transfer(address,address,uint256)"
}
}
}
},
{
"name": "_burnFee = _previousBurnFee",
"type": "node",
"source_mapping": {
"lines": [
1072,
1073
],
"start": 41895,
"length": 27,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 17,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"additional_fields": {
"variable_name": "_burnFee",
"underlying_type": "variables_written"
},
"type_specific_fields": {
"parent": {
"name": "restoreAllFee",
"type": "function",
"source_mapping": {
"lines": [
1071,
1072,
1073,
1074,
1075,
1076,
1077
],
"start": 41817,
"length": 204,
"ending_column": 57,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 19,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "SPLIT",
"type": "contract",
"source_mapping": {
"lines": [
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793,
794,
795,
796,
797,
798,
799,
800,
801,
802,
803,
804,
805,
806,
807,
808,
809,
810,
811,
812,
813,
814,
815,
816,
817,
818,
819,
820,
821,
822,
823,
824,
825,
826,
827,
828,
829,
830,
831,
832,
833,
834,
835,
836,
837,
838,
839,
840,
841,
842,
843,
844,
845,
846,
847,
848,
849,
850,
851,
852,
853,
854,
855,
856,
857,
858,
859,
860,
861,
862,
863,
864,
865,
866,
867,
868,
869,
870,
871,
872,
873,
874,
875,
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914,
915,
916,
917,
918,
919,
920,
921,
922,
923,
924,
925,
926,
927,
928,
929,
930,
931,
932,
933,
934,
935,
936,
937,
938,
939,
940,
941,
942,
943,
944,
945,
946,
947,
948,
949,
950,
951,
952,
953,
954,
955,
956,
957,
958,
959,
960,
961,
962,
963,
964,
965,
966,
967,
968,
969,
970,
971,
972,
973,
974,
975,
976,
977,
978,
979,
980,
981,
982,
983,
984,
985,
986,
987,
988,
989,
990,
991,
992,
993,
994,
995,
996,
997,
998,
999,
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
1011,
1012,
1013,
1014,
1015,
1016,
1017,
1018,
1019,
1020,
1021,
1022,
1023,
1024,
1025,
1026,
1027,
1028,
1029,
1030,
1031,
1032,
1033,
1034,
1035,
1036,
1037,
1038,
1039,
1040,
1041,
1042,
1043,
1044,
1045,
1046,
1047,
1048,
1049,
1050,
1051,
1052,
1053,
1054,
1055,
1056,
1057,
1058,
1059,
1060,
1061,
1062,
1063,
1064,
1065,
1066,
1067,
1068,
1069,
1070,
1071,
1072,
1073,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
1083,
1084,
1085,
1086,
1087,
1088,
1089,
1090,
1091,
1092,
1093,
1094,
1095,
1096,
1097,
1098,
1099,
1100,
1101,
1102,
1103,
1104,
1105,
1106,
1107,
1108,
1109,
1110,
1111,
1112,
1113,
1114,
1115,
1116,
1117,
1118,
1119,
1120,
1121,
1122,
1123,
1124,
1125,
1126,
1127,
1128,
1129,
1130,
1131,
1132,
1133,
1134,
1135,
1136
],
"start": 25067,
"length": 18746,
"ending_column": 68,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 48,
"filename_absolute": "/tmp/slither-rf4zmzd0/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "restoreAllFee()"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "_transfer",
"type": "function",
"lines": [
876,
877,
878,
879,
880,
881,
882,
883,
884,
885,
886,
887,
888,
889,
890,
891,
892,
893,
894,
895,
896,
897,
898,
899,
900,
901,
902,
903,
904,
905,
906,
907,
908,
909,
910,
911,
912,
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_rewardLiquidityProviders(contractTokenBalance)",
"type": "node",
"lines": [
907
]
},
{
"file": "contracts/Contract.sol",
"name": "IUniswapV2Pair(uniswapV2Pair).sync()",
"type": "node",
"lines": [
1041,
1042,
1043
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_burnFee = _previousBurnFee",
"type": "node",
"lines": [
1072,
1073
]
},
{
"file": "contracts/Contract.sol",
"name": "_burnFee = 0",
"type": "node",
"lines": [
1068
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_devRewardFee = _previousDevRewardFee",
"type": "node",
"lines": [
1077
]
},
{
"file": "contracts/Contract.sol",
"name": "_devRewardFee = 0",
"type": "node",
"lines": [
1068,
1069,
1070,
1071
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_lpRewardFee = _previousLpRewardFee",
"type": "node",
"lines": [
1073,
1074,
1075,
1076,
1077
]
},
{
"file": "contracts/Contract.sol",
"name": "_lpRewardFee = 0",
"type": "node",
"lines": [
1068
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_previousBurnFee = _burnFee",
"type": "node",
"lines": [
1065,
1066
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_previousDevRewardFee = _devRewardFee",
"type": "node",
"lines": [
1067
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_previousLpRewardFee = _lpRewardFee",
"type": "node",
"lines": [
1066,
1067
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_previousTaxFee = _taxFee",
"type": "node",
"lines": [
1065
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity)",
"type": "node",
"lines": [
1027,
1028,
1029
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[sender] = _rOwned[sender].sub(rValues.rAmount)",
"type": "node",
"lines": [
940,
941
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[sender] = _rOwned[sender].sub(rValues.rAmount)",
"type": "node",
"lines": [
950,
951
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[sender] = _rOwned[sender].sub(rValues.rAmount)",
"type": "node",
"lines": [
975
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount)",
"type": "node",
"lines": [
942,
943,
944
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[sender] = _rOwned[sender].sub(rValues.rAmount)",
"type": "node",
"lines": [
965,
966
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount)",
"type": "node",
"lines": [
953,
954,
955,
956,
957
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount)",
"type": "node",
"lines": [
966,
967,
968,
969
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount)",
"type": "node",
"lines": [
979
]
},
{
"file": "contracts/Contract.sol",
"name": "_rOwned[owner()] = _rOwned[owner()].add(rDevRewards)",
"type": "node",
"lines": [
1035,
1036
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_rTotal = _rTotal.sub(rFee).sub(rBurn)",
"type": "node",
"lines": [
984
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_tBurnTotal = _tBurnTotal.add(tBurn)",
"type": "node",
"lines": [
985
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_tFeeTotal = _tFeeTotal.add(tFee)",
"type": "node",
"lines": [
985
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_tOwned[sender] = _tOwned[sender].sub(tAmount)",
"type": "node",
"lines": [
965
]
},
{
"file": "contracts/Contract.sol",
"name": "_tOwned[sender] = _tOwned[sender].sub(tAmount)",
"type": "node",
"lines": [
974,
975
]
},
{
"file": "contracts/Contract.sol",
"name": "_tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity)",
"type": "node",
"lines": [
1030,
1031
]
},
{
"file": "contracts/Contract.sol",
"name": "_tOwned[recipient] = _tOwned[recipient].add(tValues.tTransferAmount)",
"type": "node",
"lines": [
951,
952,
953
]
},
{
"file": "contracts/Contract.sol",
"name": "_tOwned[recipient] = _tOwned[recipient].add(tValues.tTransferAmount)",
"type": "node",
"lines": [
976,
977
]
},
{
"file": "contracts/Contract.sol",
"name": "_tOwned[owner()] = _tOwned[owner()].add(tDevRewards)",
"type": "node",
"lines": [
1037,
1038
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_tTotal = _tTotal.sub(tBurn)",
"type": "node",
"lines": [
986
]
},
{
"file": "contracts/Contract.sol",
"name": "_tokenTransfer(from,to,amount,takeFee)",
"type": "node",
"lines": [
913,
914
]
},
{
"file": "contracts/Contract.sol",
"name": "_taxFee = _previousTaxFee",
"type": "node",
"lines": [
1071,
1072
]
},
{
"file": "contracts/Contract.sol",
"name": "_taxFee = 0",
"type": "node",
"lines": [
1067
]
}
],
"description": "Reentrancy in SPLIT._transfer(address,address,uint256) (contracts/Contract.sol#876-914):\n\tExternal calls:\n\t- _rewardLiquidityProviders(contractTokenBalance) (contracts/Contract.sol#907)\n\t\t- IUniswapV2Pair(uniswapV2Pair).sync() (contracts/Contract.sol#1041-1043)\n\tState variables written after the call(s):\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _burnFee = _previousBurnFee (contracts/Contract.sol#1072-1073)\n\t\t- _burnFee = 0 (contracts/Contract.sol#1068)\n\tSPLIT._burnFee (contracts/Contract.sol#712) can be used in cross function reentrancies:\n\t- SPLIT._burnFee (contracts/Contract.sol#712)\n\t- SPLIT.calculateBurnFee(uint256) (contracts/Contract.sol#1051-1054)\n\t- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)\n\t- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)\n\t- SPLIT.setBurnFeePercent(uint256) (contracts/Contract.sol#1095-1096)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _devRewardFee = _previousDevRewardFee (contracts/Contract.sol#1077)\n\t\t- _devRewardFee = 0 (contracts/Contract.sol#1068-1071)\n\tSPLIT._devRewardFee (contracts/Contract.sol#717) can be used in cross function reentrancies:\n\t- SPLIT._devRewardFee (contracts/Contract.sol#717)\n\t- SPLIT.calculateDevRewardFee(uint256) (contracts/Contract.sol#1058-1063)\n\t- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)\n\t- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)\n\t- SPLIT.setDevRewardFeePercent(uint256) (contracts/Contract.sol#1100-1105)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _lpRewardFee = _previousLpRewardFee (contracts/Contract.sol#1073-1077)\n\t\t- _lpRewardFee = 0 (contracts/Contract.sol#1068)\n\tSPLIT._lpRewardFee (contracts/Contract.sol#713-715) can be used in cross function reentrancies:\n\t- SPLIT._lpRewardFee (contracts/Contract.sol#713-715)\n\t- SPLIT.calculateLpRewardFee(uint256) (contracts/Contract.sol#1054-1058)\n\t- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)\n\t- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)\n\t- SPLIT.setLpRewardFeePercent(uint256) (contracts/Contract.sol#1096-1100)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _previousBurnFee = _burnFee (contracts/Contract.sol#1065-1066)\n\tSPLIT._previousBurnFee (contracts/Contract.sol#712-713) can be used in cross function reentrancies:\n\t- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)\n\t- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _previousDevRewardFee = _devRewardFee (contracts/Contract.sol#1067)\n\tSPLIT._previousDevRewardFee (contracts/Contract.sol#717-720) can be used in cross function reentrancies:\n\t- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)\n\t- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _previousLpRewardFee = _lpRewardFee (contracts/Contract.sol#1066-1067)\n\tSPLIT._previousLpRewardFee (contracts/Contract.sol#715-716) can be used in cross function reentrancies:\n\t- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)\n\t- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _previousTaxFee = _taxFee (contracts/Contract.sol#1065)\n\tSPLIT._previousTaxFee (contracts/Contract.sol#709-711) can be used in cross function reentrancies:\n\t- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)\n\t- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (contracts/Contract.sol#1027-1029)\n\t\t- _rOwned[sender] = _rOwned[sender].sub(rValues.rAmount) (contracts/Contract.sol#940-941)\n\t\t- _rOwned[sender] = _rOwned[sender].sub(rValues.rAmount) (contracts/Contract.sol#950-951)\n\t\t- _rOwned[sender] = _rOwned[sender].sub(rValues.rAmount) (contracts/Contract.sol#975)\n\t\t- _rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount) (contracts/Contract.sol#942-944)\n\t\t- _rOwned[sender] = _rOwned[sender].sub(rValues.rAmount) (contracts/Contract.sol#965-966)\n\t\t- _rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount) (contracts/Contract.sol#953-957)\n\t\t- _rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount) (contracts/Contract.sol#966-969)\n\t\t- _rOwned[recipient] = _rOwned[recipient].add(rValues.rTransferAmount) (contracts/Contract.sol#979)\n\t\t- _rOwned[owner()] = _rOwned[owner()].add(rDevRewards) (contracts/Contract.sol#1035-1036)\n\tSPLIT._rOwned (contracts/Contract.sol#678-680) can be used in cross function reentrancies:\n\t- SPLIT._getCurrentSupply() (contracts/Contract.sol#1014-1024)\n\t- SPLIT._takeLpAndDevRewards(uint256,uint256) (contracts/Contract.sol#1024-1038)\n\t- SPLIT._transferBothExcluded(address,address,uint256) (contracts/Contract.sol#972-983)\n\t- SPLIT._transferFromExcluded(address,address,uint256) (contracts/Contract.sol#962-972)\n\t- SPLIT._transferStandard(address,address,uint256) (contracts/Contract.sol#936-947)\n\t- SPLIT._transferToExcluded(address,address,uint256) (contracts/Contract.sol#948-962)\n\t- SPLIT.balanceOf(address) (contracts/Contract.sol#769-775)\n\t- SPLIT.constructor() (contracts/Contract.sol#742-761)\n\t- SPLIT.deliver(uint256) (contracts/Contract.sol#820-829)\n\t- SPLIT.excludeFromReward(address) (contracts/Contract.sol#848-856)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _rTotal = _rTotal.sub(rFee).sub(rBurn) (contracts/Contract.sol#984)\n\tSPLIT._rTotal (contracts/Contract.sol#696-700) can be used in cross function reentrancies:\n\t- SPLIT._getCurrentSupply() (contracts/Contract.sol#1014-1024)\n\t- SPLIT._reflectFee(uint256,uint256,uint256,uint256) (contracts/Contract.sol#983-986)\n\t- SPLIT.constructor() (contracts/Contract.sol#742-761)\n\t- SPLIT.deliver(uint256) (contracts/Contract.sol#820-829)\n\t- SPLIT.tokenFromReflection(uint256) (contracts/Contract.sol#841-848)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _tBurnTotal = _tBurnTotal.add(tBurn) (contracts/Contract.sol#985)\n\tSPLIT._tBurnTotal (contracts/Contract.sol#702) can be used in cross function reentrancies:\n\t- SPLIT._reflectFee(uint256,uint256,uint256,uint256) (contracts/Contract.sol#983-986)\n\t- SPLIT.totalBurn() (contracts/Contract.sol#819-820)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _tFeeTotal = _tFeeTotal.add(tFee) (contracts/Contract.sol#985)\n\tSPLIT._tFeeTotal (contracts/Contract.sol#700-701) can be used in cross function reentrancies:\n\t- SPLIT._reflectFee(uint256,uint256,uint256,uint256) (contracts/Contract.sol#983-986)\n\t- SPLIT.deliver(uint256) (contracts/Contract.sol#820-829)\n\t- SPLIT.totalFees() (contracts/Contract.sol#818-819)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _tOwned[sender] = _tOwned[sender].sub(tAmount) (contracts/Contract.sol#965)\n\t\t- _tOwned[sender] = _tOwned[sender].sub(tAmount) (contracts/Contract.sol#974-975)\n\t\t- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (contracts/Contract.sol#1030-1031)\n\t\t- _tOwned[recipient] = _tOwned[recipient].add(tValues.tTransferAmount) (contracts/Contract.sol#951-953)\n\t\t- _tOwned[recipient] = _tOwned[recipient].add(tValues.tTransferAmount) (contracts/Contract.sol#976-977)\n\t\t- _tOwned[owner()] = _tOwned[owner()].add(tDevRewards) (contracts/Contract.sol#1037-1038)\n\tSPLIT._tOwned (contracts/Contract.sol#680-681) can be used in cross function reentrancies:\n\t- SPLIT._getCurrentSupply() (contracts/Contract.sol#1014-1024)\n\t- SPLIT._takeLpAndDevRewards(uint256,uint256) (contracts/Contract.sol#1024-1038)\n\t- SPLIT._transferBothExcluded(address,address,uint256) (contracts/Contract.sol#972-983)\n\t- SPLIT._transferFromExcluded(address,address,uint256) (contracts/Contract.sol#962-972)\n\t- SPLIT._transferToExcluded(address,address,uint256) (contracts/Contract.sol#948-962)\n\t- SPLIT.balanceOf(address) (contracts/Contract.sol#769-775)\n\t- SPLIT.excludeFromReward(address) (contracts/Contract.sol#848-856)\n\t- SPLIT.includeInReward(address) (contracts/Contract.sol#856-870)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _tTotal = _tTotal.sub(tBurn) (contracts/Contract.sol#986)\n\tSPLIT._tTotal (contracts/Contract.sol#695-696) can be used in cross function reentrancies:\n\t- SPLIT._getCurrentSupply() (contracts/Contract.sol#1014-1024)\n\t- SPLIT._reflectFee(uint256,uint256,uint256,uint256) (contracts/Contract.sol#983-986)\n\t- SPLIT.constructor() (contracts/Contract.sol#742-761)\n\t- SPLIT.reflectionFromToken(uint256,bool) (contracts/Contract.sol#829-841)\n\t- SPLIT.setMaxTxPercent(uint256,uint256) (contracts/Contract.sol#1105-1112)\n\t- SPLIT.setMinTokensBeforeSwapPercent(uint256,uint256) (contracts/Contract.sol#1113-1124)\n\t- SPLIT.totalSupply() (contracts/Contract.sol#768-769)\n\t- _tokenTransfer(from,to,amount,takeFee) (contracts/Contract.sol#913-914)\n\t\t- _taxFee = _previousTaxFee (contracts/Contract.sol#1071-1072)\n\t\t- _taxFee = 0 (contracts/Contract.sol#1067)\n\tSPLIT._taxFee (contracts/Contract.sol#708) can be used in cross function reentrancies:\n\t- SPLIT._taxFee (contracts/Contract.sol#708)\n\t- SPLIT.calculateTaxFee(uint256) (contracts/Contract.sol#1047-1051)\n\t- SPLIT.removeAllFee() (contracts/Contract.sol#1063-1071)\n\t- SPLIT.restoreAllFee() (contracts/Contract.sol#1071-1077)\n\t- SPLIT.setTaxFeePercent(uint256) (contracts/Contract.sol#1090-1095)"
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x5dbfd357e164a03903ce96796c27e0f7f8488ecb1a2f8f85d401fec9e165dd8f
call_targets:
0xb3c5290ba8b6138aac895d28f53561d94158fab9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x5dbfd357e164a03903ce96796c27e0f7f8488ecb1a2f8f85d401fec9e165dd8f",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb3c5290ba8b6138aac895d28f53561d94158fab9"
],
"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": "0xd26edfe3",
"selector": "0xd26edfe3",
"calldata_variants": [
"0xd26edfe3",
"0xd26edfe30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd467064",
"selector": "0xdd467064",
"calldata_variants": [
"0xdd467064",
"0xdd4670640000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7db06cc",
"selector": "0xe7db06cc",
"calldata_variants": [
"0xe7db06cc",
"0xe7db06cc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea2f0b37",
"selector": "0xea2f0b37",
"calldata_variants": [
"0xea2f0b37",
"0xea2f0b370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb6c52324",
"selector": "0xb6c52324",
"calldata_variants": [
"0xb6c52324",
"0xb6c523240000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 15002,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [
{
"pc": 21302,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 1
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x5dbfd357e164a03903ce96796c27e0f7f8488ecb1a2f8f85d401fec9e165dd8f
call_targets:
0xb3c5290ba8b6138aac895d28f53561d94158fab9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x5dbfd357e164a03903ce96796c27e0f7f8488ecb1a2f8f85d401fec9e165dd8f",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb3c5290ba8b6138aac895d28f53561d94158fab9"
],
"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": "0xd26edfe3",
"selector": "0xd26edfe3",
"calldata_variants": [
"0xd26edfe3",
"0xd26edfe30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd467064",
"selector": "0xdd467064",
"calldata_variants": [
"0xdd467064",
"0xdd4670640000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7db06cc",
"selector": "0xe7db06cc",
"calldata_variants": [
"0xe7db06cc",
"0xe7db06cc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea2f0b37",
"selector": "0xea2f0b37",
"calldata_variants": [
"0xea2f0b37",
"0xea2f0b370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa9059cbb",
"selector": "0xa9059cbb",
"calldata_variants": [
"0xa9059cbb",
"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb6c52324",
"selector": "0xb6c52324",
"calldata_variants": [
"0xb6c52324",
"0xb6c523240000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 15002,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": [
{
"pc": 21302,
"type": "tx_origin_used"
}
]
}
|
| low | access_control | codex | Owner-controlled transfer lock can freeze user transfers while owner remains exempt | 65 | no | — |
viewevidence_json{
"evidence": "Transfers require `!isTransferLocked || _isExcludedFromFee[from]`, and only the owner can change the lock state.",
"locations": [
"contracts/Contract.sol:752",
"contracts/Contract.sol:906",
"contracts/Contract.sol:1162"
],
"recommendation": "Make the lock one-time/unsettable after launch, or remove the fee-exclusion bypass for the lock. Consider a timelock or a publicly verifiable unlock schedule.",
"exploit_scenario": "`isTransferLocked` starts true and can be toggled by the owner at any time. Because transfers are allowed when the sender is excluded from fees, the owner can keep trading locked for users while still moving tokens (or unlock/lock around critical moments), effectively freezing exits."
}
|