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

Analysis Run

019c0ea9-0936-7262-bcf9-9ef5de23bf57

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:28 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Pool.safeRewardTransfer(address,uint256) (contracts/Contract.sol#1269-1276) ignores return value by rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273)
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
42019 artifact.fetch complete 1 / 3 2 months ago
42020 proxy.resolve complete 1 / 3 2 months ago
42021 tool.cast_disasm complete 1 / 3 2 months ago
42022 analysis.bundle complete 1 / 3 2 months ago
42023 capability.graph complete 1 / 3 2 months ago
42024 detector.run complete 1 / 3 2 months ago
42025 validation.fork complete 1 / 3 2 months ago
42410 report.consolidate complete 1 / 6 2 months ago
42411 tool.slither complete 1 / 2 2 months ago

Artifact

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

Slither

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

Pool.safeRewardTransfer(address,uint256) (contracts/Contract.sol#1269-1276) ignores return value by rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273)
Pool.safeRewardTransfer(address,uint256) (contracts/Contract.sol#1269-1276) ignores return value by rewardToken.transfer(_to,_amount) (contracts/Contract.sol#1273-1276)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unchecked-transfer

Pool.updatePool(uint256) (contracts/Contract.sol#1207-1221) uses a dangerous strict equality:
	- totalStake == 0 (contracts/Contract.sol#1213)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities

Reentrancy in Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255):
	External calls:
	- updatePool(_pid) (contracts/Contract.sol#1242)
		- rewardToken.mint(address(this),reward) (contracts/Contract.sol#1216-1217)
	- safeRewardTransfer(msg.sender,pendingReward) (contracts/Contract.sol#1248-1249)
		- rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273)
		- rewardToken.transfer(_to,_amount) (contracts/Contract.sol#1273-1276)
	- pool.token.safeTransferFrom(address(msg.sender),address(this),_amount) (contracts/Contract.sol#1250)
	State variables written after the call(s):
	- user.amount = user.amount.add(_amount) (contracts/Contract.sol#1250-1251)
	Pool.users (contracts/Contract.sol#1111) can be used in cross function reentrancies:
	- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)
	- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)
	- Pool.users (contracts/Contract.sol#1111)
	- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)
	- user.rewardDebt = user.amount.mul(pool.accRewardPerShare).div(1e12) (contracts/Contract.sol#1251-1254)
	Pool.users (contracts/Contract.sol#1111) can be used in cross function reentrancies:
	- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)
	- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)
	- Pool.users (contracts/Contract.sol#1111)
	- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)
Reentrancy in Pool.updatePool(uint256) (contracts/Contract.sol#1207-1221):
	External calls:
	- rewardToken.mint(address(this),reward) (contracts/Contract.sol#1216-1217)
	State variables written after the call(s):
	- pool.accRewardPerShare = pool.accRewardPerShare.add(reward.mul(1e12).div(totalStake)) (contracts/Contract.sol#1217-1220)
	Pool.pools (contracts/Contract.sol#1111) can be used in cross function reentrancies:
	- Pool.addPool(IERC20,uint256,uint256,uint256,uint256) (contracts/Contract.sol#1131-1169)
	- Pool.checkPool(uint256) (contracts/Contract.sol#1123-1124)
	- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)
	- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)
	- Pool.poolLength() (contracts/Contract.sol#1124-1129)
	- Pool.pools (contracts/Contract.sol#1111)
	- Pool.updatePool(uint256) (contracts/Contract.sol#1207-1221)
	- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)
	- pool.lastRewardBlock = block.number (contracts/Contract.sol#1220-1221)
	Pool.pools (contracts/Contract.sol#1111) can be used in cross function reentrancies:
	- Pool.addPool(IERC20,uint256,uint256,uint256,uint256) (contracts/Contract.sol#1131-1169)
	- Pool.checkPool(uint256) (contracts/Contract.sol#1123-1124)
	- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)
	- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)
	- Pool.poolLength() (contracts/Contract.sol#1124-1129)
	- Pool.pools (contracts/Contract.sol#1111)
	- Pool.updatePool(uint256) (contracts/Contract.sol#1207-1221)
	- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)
Reentrancy in Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269):
	External calls:
	- updatePool(_pid) (contracts/Contract.sol#1259)
		- rewardToken.mint(address(this),reward) (contracts/Contract.sol#1216-1217)
	- safeRewardTransfer(msg.sender,pendingReward) (contracts/Contract.sol#1261-1263)
		- rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273)
		- rewardToken.transfer(_to,_amount) (contracts/Contract.sol#1273-1276)
	State variables written after the call(s):
	- user.amount = user.amount.sub(_amount) (contracts/Contract.sol#1263-1265)
	Pool.users (contracts/Contract.sol#1111) can be used in cross function reentrancies:
	- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)
	- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)
	- Pool.users (contracts/Contract.sol#1111)
	- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)
	- user.rewardDebt = user.amount.mul(pool.accRewardPerShare).div(1e12) (contracts/Contract.sol#1266)
	Pool.users (contracts/Contract.sol#1111) can be used in cross function reentrancies:
	- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)
	- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)
	- Pool.users (contracts/Contract.sol#1111)
	- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-1

ERC20.constructor(string,string).name (contracts/Contract.sol#837) shadows:
	- ERC20.name() (contracts/Contract.sol#841-845) (function)
ERC20.constructor(string,string).symbol (contracts/Contract.sol#837-838) shadows:
	- ERC20.symbol() (contracts/Contract.sol#847-852) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing

Reentrancy in Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255):
	External calls:
	- updatePool(_pid) (contracts/Contract.sol#1242)
		- rewardToken.mint(address(this),reward) (contracts/Contract.sol#1216-1217)
	- safeRewardTransfer(msg.sender,pendingReward) (contracts/Contract.sol#1248-1249)
		- rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273)
		- rewardToken.transfer(_to,_amount) (contracts/Contract.sol#1273-1276)
	- pool.token.safeTransferFrom(address(msg.sender),address(this),_amount) (contracts/Contract.sol#1250)
	Event emitted after the call(s):
	- Deposit(msg.sender,_pid,_amount) (contracts/Contract.sol#1254)
Reentrancy in Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269):
	External calls:
	- updatePool(_pid) (contracts/Contract.sol#1259)
		- rewardToken.mint(address(this),reward) (contracts/Contract.sol#1216-1217)
	- safeRewardTransfer(msg.sender,pendingReward) (contracts/Contract.sol#1261-1263)
		- rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273)
		- rewardToken.transfer(_to,_amount) (contracts/Contract.sol#1273-1276)
	- pool.token.safeTransfer(address(msg.sender),_amount) (contracts/Contract.sol#1267-1268)
	Event emitted after the call(s):
	- Withdraw(msg.sender,_pid,_amount) (contracts/Contract.sol#1268-1269)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

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

3 different versions of Solidity are used:
	- Version constraint ^0.6.0 is used by:
		-^0.6.0 (contracts/Contract.sol#3-5)
		-^0.6.0 (contracts/Contract.sol#78-79)
		-^0.6.0 (contracts/Contract.sol#375)
		-^0.6.0 (contracts/Contract.sol#454)
		-^0.6.0 (contracts/Contract.sol#689)
		-^0.6.0 (contracts/Contract.sol#719)
		-^0.6.0 (contracts/Contract.sol#786-787)
	- Version constraint ^0.6.2 is used by:
		-^0.6.2 (contracts/Contract.sol#235-237)
	- Version constraint 0.6.12 is used by:
		-0.6.12 (contracts/Contract.sol#1089)
		-0.6.12 (contracts/Contract.sol#1095)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

Context._msgData() (contracts/Contract.sol#710-718) is never used and should be removed
ERC20._burn(address,uint256) (contracts/Contract.sol#1023-1036) is never used and should be removed
ERC20._setupDecimals(uint8) (contracts/Contract.sol#1068-1070) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Version constraint ^0.6.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- NestedCalldataArrayAbiReencodingSizeValidation
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- MissingEscapingInFormatting
	- ArraySliceDynamicallyEncodedBaseType
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- YulOptimizerRedundantAssignmentBreakContinue.
It is used by:
	- ^0.6.0 (contracts/Contract.sol#3-5)
	- ^0.6.0 (contracts/Contract.sol#78-79)
	- ^0.6.0 (contracts/Contract.sol#375)
	- ^0.6.0 (contracts/Contract.sol#454)
	- ^0.6.0 (contracts/Contract.sol#689)
	- ^0.6.0 (contracts/Contract.sol#719)
	- ^0.6.0 (contracts/Contract.sol#786-787)
Version constraint ^0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- NestedCalldataArrayAbiReencodingSizeValidation
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- MissingEscapingInFormatting
	- ArraySliceDynamicallyEncodedBaseType
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow.
It is used by:
	- ^0.6.2 (contracts/Contract.sol#235-237)
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#1089)
	- 0.6.12 (contracts/Contract.sol#1095)
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

Parameter Token.mint(address,uint256)._to (contracts/Contract.sol#1092) is not in mixedCase
Parameter Token.mint(address,uint256)._amount (contracts/Contract.sol#1092-1093) is not in mixedCase
Parameter Pool.addPool(IERC20,uint256,uint256,uint256,uint256)._token (contracts/Contract.sol#1131-1135) is not in mixedCase
Parameter Pool.addPool(IERC20,uint256,uint256,uint256,uint256)._startBlock (contracts/Contract.sol#1136-1139) is not in mixedCase
Parameter Pool.addPool(IERC20,uint256,uint256,uint256,uint256)._endBlock (contracts/Contract.sol#1139-1140) is not in mixedCase
Parameter Pool.addPool(IERC20,uint256,uint256,uint256,uint256)._rewardPerBlock (contracts/Contract.sol#1140) is not in mixedCase
Parameter Pool.addPool(IERC20,uint256,uint256,uint256,uint256)._halvingPeriod (contracts/Contract.sol#1140-1141) is not in mixedCase
Parameter Pool.updatePool(uint256)._pid (contracts/Contract.sol#1207) is not in mixedCase
Parameter Pool.pending(uint256,address)._pid (contracts/Contract.sol#1221) is not in mixedCase
Parameter Pool.pending(uint256,address)._user (contracts/Contract.sol#1221-1222) is not in mixedCase
Parameter Pool.deposit(uint256,uint256)._pid (contracts/Contract.sol#1237) is not in mixedCase
Parameter Pool.deposit(uint256,uint256)._amount (contracts/Contract.sol#1237) is not in mixedCase
Parameter Pool.withdraw(uint256,uint256)._pid (contracts/Contract.sol#1255) is not in mixedCase
Parameter Pool.withdraw(uint256,uint256)._amount (contracts/Contract.sol#1255-1256) is not in mixedCase
Parameter Pool.safeRewardTransfer(address,uint256)._to (contracts/Contract.sol#1270-1271) is not in mixedCase
Parameter Pool.safeRewardTransfer(address,uint256)._amount (contracts/Contract.sol#1271) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

Redundant expression "this (contracts/Contract.sol#716-717)" inContext (contracts/Contract.sol#705-718)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements

Loop condition i < pools.length (contracts/Contract.sol#1144) 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

Pool.rewardToken (contracts/Contract.sol#1109-1110) should be immutable 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable
. analyzed (10 contracts with 100 detectors), 41 result(s) found
Metadata
{
    "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-fbqpa74m --allow-paths /tmp/slither-fbqpa74m,/tmp/slither-fbqpa74m/lib,/tmp/slither-fbqpa74m/src",
    "remappings": [],
    "source_files": [
        "contracts/Contract.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 41,
    "workspace_hash": "cfbf281ee566557ea5ae89986f4cac2333aed545a97cad7f87e654aa99276c45",
    "duration_seconds": 0.9905388355255127,
    "solc_version_requested": "0.6.12"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Found 3 issues: reward calculation underflows after endBlock and can lock withdrawals; deposit can be reentered via ERC777/malicious pool tokens; fee-on-transfer/rebasing tokens break accounting and rewards.
View stdout
{"no_findings":false,"summary":"Found 3 issues: reward calculation underflows after endBlock and can lock withdrawals; deposit can be reentered via ERC777/malicious pool tokens; fee-on-transfer/rebasing tokens break accounting and rewards.","findings":[{"severity":"high","category":"math","title":"Pool can be permanently bricked after endBlock due to underflow in reward calculation","exploit_scenario":"Once block.number > endBlock, the first call to updatePool (triggered by any deposit/withdraw) sets lastRewardBlock to the current block. On the next interaction, getTotalReward computes to = min(block.number, endBlock+1), which is now less than lastRewardBlock, so to.sub(from) underflows and reverts. This makes updatePool/pending/deposit/withdraw permanently revert, locking all remaining staked tokens. An attacker can trigger this by calling any pool action after endBlock, preventing others from withdrawing.","recommendation":"Guard in getTotalReward for lastRewardBlock >= endBlock+1 and return 0; or clamp lastRewardBlock to endBlock+1 in updatePool. Also validate endBlock > startBlock when adding pools.","evidence":"getTotalReward subtracts to.sub(from) without handling lastRewardBlock > endBlock+1, and updatePool sets lastRewardBlock = block.number even after endBlock.","locations":["contracts/Contract.sol:1201","contracts/Contract.sol:1205","contracts/Contract.sol:1206","contracts/Contract.sol:1207","contracts/Contract.sol:1251"]},{"severity":"medium","category":"reentrancy","title":"Reentrancy in deposit via untrusted pool tokens can double-claim rewards","exploit_scenario":"If a pool token is ERC777 or otherwise invokes callbacks on transferFrom, a malicious user contract can reenter deposit during pool.token.safeTransferFrom. Because rewardDebt and amount are only updated after the external call, the reentrant deposit can claim the same pending rewards multiple times, draining rewardToken.","recommendation":"Apply a reentrancy guard and/or move state updates (rewardDebt/amount) before external calls. Alternatively restrict pools to non-callback ERC20 tokens.","evidence":"deposit pays pending rewards, then calls pool.token.safeTransferFrom before updating user.amount and user.rewardDebt.","locations":["contracts/Contract.sol:1266","contracts/Contract.sol:1271","contracts/Contract.sol:1273","contracts/Contract.sol:1276","contracts/Contract.sol:1277"]},{"severity":"low","category":"other","title":"Fee-on-transfer/rebasing tokens break accounting and reward distribution","exploit_scenario":"For deflationary or rebasing tokens, the contract credits user.amount with the requested _amount even if fewer tokens were received. This lets users accrue rewards on more than their actual stake and can cause withdrawals to revert when the pool balance is insufficient.","recommendation":"Track actual received amount via pre/post balance checks, and maintain a separate totalStaked variable. Consider rejecting fee-on-transfer/rebasing tokens.","evidence":"user.amount is incremented by _amount without checking actual received tokens; totalStake is derived from balanceOf which can diverge from tracked user amounts.","locations":["contracts/Contract.sol:1242","contracts/Contract.sol:1266","contracts/Contract.sol:1276","contracts/Contract.sol:1277"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-q804fcet
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f64-f7f5-7523-af82-b49c4cb7a37a
--------
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 ls in /tmp/codex-q804fcet succeeded in 15ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-q804fcet succeeded in 7ms:
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
================================================================================
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol



pragma solidity ^0.6.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);
exec
/bin/bash -lc 'nl -ba contracts/Pool.sol' in /tmp/codex-q804fcet exited 1 in 7ms:
nl: contracts/Pool.sol: No such file or directory
exec
/bin/bash -lc 'rg --files' in /tmp/codex-q804fcet succeeded in 13ms:
codex-output-schema.json
AUDIT_BUNDLE.txt
contracts/Contract.sol
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '900,1150p'" in /tmp/codex-q804fcet succeeded in 7ms:
   900	    }
   901	
   902	    /**
   903	     * @dev See {IERC20-totalSupply}.
   904	     */
   905	    function totalSupply() public view override returns (uint256) {
   906	        return _totalSupply;
   907	    }
   908	
   909	    /**
   910	     * @dev See {IERC20-balanceOf}.
   911	     */
   912	    function balanceOf(address account) public view override returns (uint256) {
   913	        return _balances[account];
   914	    }
   915	
   916	    /**
   917	     * @dev See {IERC20-transfer}.
   918	     *
   919	     * Requirements:
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1138,1320p'" in /tmp/codex-q804fcet succeeded in 6ms:
  1138	
  1139	contract Pool is Ownable {
  1140	    using SafeMath for uint256;
  1141	    using SafeERC20 for IERC20;
  1142	
  1143	    struct UserInfo {
  1144	        uint256 amount;
  1145	        uint256 rewardDebt;
  1146	    }
  1147	
  1148	    struct PoolInfo {
  1149	        IERC20 token;
  1150	        uint256 startBlock;
  1151	        uint256 endBlock;
  1152	        uint256 rewardPerBlock;
  1153	        uint256 halvingPeriod;
  1154	        uint256 halving1Block;
  1155	        uint256 halving2Block;
  1156	        uint256 halving3Block;
  1157	        uint256 lastRewardBlock;
codex
{"no_findings":false,"summary":"Found 3 issues: reward calculation underflows after endBlock and can lock withdrawals; deposit can be reentered via ERC777/malicious pool tokens; fee-on-transfer/rebasing tokens break accounting and rewards.","findings":[{"severity":"high","category":"math","title":"Pool can be permanently bricked after endBlock due to underflow in reward calculation","exploit_scenario":"Once block.number > endBlock, the first call to updatePool (triggered by any deposit/withdraw) sets lastRewardBlock to the current block. On the next interaction, getTotalReward computes to = min(block.number, endBlock+1), which is now less than lastRewardBlock, so to.sub(from) underflows and reverts. This makes updatePool/pending/deposit/withdraw permanently revert, locking all remaining staked tokens. An attacker can trigger this by calling any pool action after endBlock, preventing others from withdrawing.","recommendation":"Guard in getTotalReward for lastRewardBlock >= endBlock+1 and return 0; or clamp lastRewardBlock to endBlock+1 in updatePool. Also validate endBlock > startBlock when adding pools.","evidence":"getTotalReward subtracts to.sub(from) without handling lastRewardBlock > endBlock+1, and updatePool sets lastRewardBlock = block.number even after endBlock.","locations":["contracts/Contract.sol:1201","contracts/Contract.sol:1205","contracts/Contract.sol:1206","contracts/Contract.sol:1207","contracts/Contract.sol:1251"]},{"severity":"medium","category":"reentrancy","title":"Reentrancy in deposit via untrusted pool tokens can double-claim rewards","exploit_scenario":"If a pool token is ERC777 or otherwise invokes callbacks on transferFrom, a malicious user contract can reenter deposit during pool.token.safeTransferFrom. Because rewardDebt and amount are only updated after the external call, the reentrant deposit can claim the same pending rewards multiple times, draining rewardToken.","recommendation":"Apply a reentrancy guard and/or move state updates (rewardDebt/amount) before external calls. Alternatively restrict pools to non-callback ERC20 tokens.","evidence":"deposit pays pending rewards, then calls pool.token.safeTransferFrom before updating user.amount and user.rewardDebt.","locations":["contracts/Contract.sol:1266","contracts/Contract.sol:1271","contracts/Contract.sol:1273","contracts/Contract.sol:1276","contracts/Contract.sol:1277"]},{"severity":"low","category":"other","title":"Fee-on-transfer/rebasing tokens break accounting and reward distribution","exploit_scenario":"For deflationary or rebasing tokens, the contract credits user.amount with the requested _amount even if fewer tokens were received. This lets users accrue rewards on more than their actual stake and can cause withdrawals to revert when the pool balance is insufficient.","recommendation":"Track actual received amount via pre/post balance checks, and maintain a separate totalStaked variable. Consider rejecting fee-on-transfer/rebasing tokens.","evidence":"user.amount is incremented by _amount without checking actual received tokens; totalStake is derived from balanceOf which can diverge from tracked user amounts.","locations":["contracts/Contract.sol:1242","contracts/Contract.sol:1266","contracts/Contract.sol:1276","contracts/Contract.sol:1277"]}]}
tokens used
33,192
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T14:57:07.667200+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "Found 3 issues: reward calculation underflows after endBlock and can lock withdrawals; deposit can be reentered via ERC777/malicious pool tokens; fee-on-transfer/rebasing tokens break accounting and rewards.",
    "raw_final": {
        "summary": "Found 3 issues: reward calculation underflows after endBlock and can lock withdrawals; deposit can be reentered via ERC777/malicious pool tokens; fee-on-transfer/rebasing tokens break accounting and rewards.",
        "findings": [
            {
                "title": "Pool can be permanently bricked after endBlock due to underflow in reward calculation",
                "category": "math",
                "evidence": "getTotalReward subtracts to.sub(from) without handling lastRewardBlock > endBlock+1, and updatePool sets lastRewardBlock = block.number even after endBlock.",
                "severity": "high",
                "locations": [
                    "contracts/Contract.sol:1201",
                    "contracts/Contract.sol:1205",
                    "contracts/Contract.sol:1206",
                    "contracts/Contract.sol:1207",
                    "contracts/Contract.sol:1251"
                ],
                "recommendation": "Guard in getTotalReward for lastRewardBlock >= endBlock+1 and return 0; or clamp lastRewardBlock to endBlock+1 in updatePool. Also validate endBlock > startBlock when adding pools.",
                "exploit_scenario": "Once block.number > endBlock, the first call to updatePool (triggered by any deposit/withdraw) sets lastRewardBlock to the current block. On the next interaction, getTotalReward computes to = min(block.number, endBlock+1), which is now less than lastRewardBlock, so to.sub(from) underflows and reverts. This makes updatePool/pending/deposit/withdraw permanently revert, locking all remaining staked tokens. An attacker can trigger this by calling any pool action after endBlock, preventing others from withdrawing."
            },
            {
                "title": "Reentrancy in deposit via untrusted pool tokens can double-claim rewards",
                "category": "reentrancy",
                "evidence": "deposit pays pending rewards, then calls pool.token.safeTransferFrom before updating user.amount and user.rewardDebt.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:1266",
                    "contracts/Contract.sol:1271",
                    "contracts/Contract.sol:1273",
                    "contracts/Contract.sol:1276",
                    "contracts/Contract.sol:1277"
                ],
                "recommendation": "Apply a reentrancy guard and/or move state updates (rewardDebt/amount) before external calls. Alternatively restrict pools to non-callback ERC20 tokens.",
                "exploit_scenario": "If a pool token is ERC777 or otherwise invokes callbacks on transferFrom, a malicious user contract can reenter deposit during pool.token.safeTransferFrom. Because rewardDebt and amount are only updated after the external call, the reentrant deposit can claim the same pending rewards multiple times, draining rewardToken."
            },
            {
                "title": "Fee-on-transfer/rebasing tokens break accounting and reward distribution",
                "category": "other",
                "evidence": "user.amount is incremented by _amount without checking actual received tokens; totalStake is derived from balanceOf which can diverge from tracked user amounts.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:1242",
                    "contracts/Contract.sol:1266",
                    "contracts/Contract.sol:1276",
                    "contracts/Contract.sol:1277"
                ],
                "recommendation": "Track actual received amount via pre/post balance checks, and maintain a separate totalStaked variable. Consider rejecting fee-on-transfer/rebasing tokens.",
                "exploit_scenario": "For deflationary or rebasing tokens, the contract credits user.amount with the requested _amount even if fewer tokens were received. This lets users accrue rewards on more than their actual stake and can cause withdrawals to revert when the pool balance is insufficient."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
7
EXT*/BALANCE
7
Total opcodes
4929
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x00b4
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0xac4afa38
00000026: GT
00000027: PUSH2 0x0071
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xac4afa38
00000031: EQ
00000032: PUSH2 0x01e7
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xb9d02df4
0000003c: EQ
0000003d: PUSH2 0x027e
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xe2bbb158
00000047: EQ
00000048: PUSH2 0x02e7
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xe4c75c27
00000052: EQ
00000053: PUSH2 0x031f
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xf2fde38b
0000005d: EQ
0000005e: PUSH2 0x0381
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xf7c618c1
00000068: EQ
00000069: PUSH2 0x03c5
0000006c: JUMPI
0000006d: PUSH2 0x00b4
00000070: JUMP
00000071: JUMPDEST
00000072: DUP1
00000073: PUSH4 0x081e3eda
00000078: EQ
00000079: PUSH2 0x00b9
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0x29cb0090
00000083: EQ
00000084: PUSH2 0x00d7
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0x441a3e70
0000008e: EQ
0000008f: PUSH2 0x0143
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0x51eb05a6
00000099: EQ
0000009a: PUSH2 0x017b
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0x715018a6
000000a4: EQ
000000a5: PUSH2 0x01a9
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0x8da5cb5b
000000af: EQ
000000b0: PUSH2 0x01b3
000000b3: JUMPI
000000b4: JUMPDEST
000000b5: PUSH1 0x00
000000b7: DUP1
000000b8: REVERT
000000b9: JUMPDEST
000000ba: PUSH2 0x00c1
000000bd: PUSH2 0x03f9
000000c0: JUMP
000000c1: JUMPDEST
000000c2: PUSH1 0x40
000000c4: MLOAD
000000c5: DUP1
000000c6: DUP3
000000c7: DUP2
000000c8: MSTORE
000000c9: PUSH1 0x20
000000cb: ADD
000000cc: SWAP2
000000cd: POP
000000ce: POP
000000cf: PUSH1 0x40
000000d1: MLOAD
000000d2: DUP1
000000d3: SWAP2
000000d4: SUB
000000d5: SWAP1
000000d6: RETURN
000000d7: JUMPDEST
000000d8: PUSH2 0x0141
000000db: PUSH1 0x04
000000dd: DUP1
000000de: CALLDATASIZE
000000df: SUB
000000e0: PUSH1 0xa0
000000e2: DUP2
000000e3: LT
000000e4: ISZERO
000000e5: PUSH2 0x00ed
000000e8: JUMPI
000000e9: PUSH1 0x00
000000eb: DUP1
000000ec: REVERT
000000ed: JUMPDEST
000000ee: DUP2
000000ef: ADD
000000f0: SWAP1
000000f1: DUP1
000000f2: DUP1
000000f3: CALLDATALOAD
000000f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000109: AND
0000010a: SWAP1
0000010b: PUSH1 0x20
0000010d: ADD
0000010e: SWAP1
0000010f: SWAP3
00000110: SWAP2
00000111: SWAP1
00000112: DUP1
00000113: CALLDATALOAD
00000114: SWAP1
00000115: PUSH1 0x20
00000117: ADD
00000118: SWAP1
00000119: SWAP3
0000011a: SWAP2
0000011b: SWAP1
0000011c: DUP1
0000011d: CALLDATALOAD
0000011e: SWAP1
0000011f: PUSH1 0x20
00000121: ADD
00000122: SWAP1
00000123: SWAP3
00000124: SWAP2
00000125: SWAP1
00000126: DUP1
00000127: CALLDATALOAD
00000128: SWAP1
00000129: PUSH1 0x20
0000012b: ADD
0000012c: SWAP1
0000012d: SWAP3
0000012e: SWAP2
0000012f: SWAP1
00000130: DUP1
00000131: CALLDATALOAD
00000132: SWAP1
00000133: PUSH1 0x20
00000135: ADD
00000136: SWAP1
00000137: SWAP3
00000138: SWAP2
00000139: SWAP1
0000013a: POP
0000013b: POP
0000013c: POP
0000013d: PUSH2 0x0406
00000140: JUMP
00000141: JUMPDEST
00000142: STOP
00000143: JUMPDEST
00000144: PUSH2 0x0179
00000147: PUSH1 0x04
00000149: DUP1
0000014a: CALLDATASIZE
0000014b: SUB
0000014c: PUSH1 0x40
0000014e: DUP2
0000014f: LT
00000150: ISZERO
00000151: PUSH2 0x0159
00000154: JUMPI
00000155: PUSH1 0x00
00000157: DUP1
00000158: REVERT
00000159: JUMPDEST
0000015a: DUP2
0000015b: ADD
0000015c: SWAP1
0000015d: DUP1
0000015e: DUP1
0000015f: CALLDATALOAD
00000160: SWAP1
00000161: PUSH1 0x20
00000163: ADD
00000164: SWAP1
00000165: SWAP3
00000166: SWAP2
00000167: SWAP1
00000168: DUP1
00000169: CALLDATALOAD
0000016a: SWAP1
0000016b: PUSH1 0x20
0000016d: ADD
0000016e: SWAP1
0000016f: SWAP3
00000170: SWAP2
00000171: SWAP1
00000172: POP
00000173: POP
00000174: POP
00000175: PUSH2 0x076e
00000178: JUMP
00000179: JUMPDEST
0000017a: STOP
0000017b: JUMPDEST
0000017c: PUSH2 0x01a7
0000017f: PUSH1 0x04
00000181: DUP1
00000182: CALLDATASIZE
00000183: SUB
00000184: PUSH1 0x20
00000186: DUP2
00000187: LT
00000188: ISZERO
00000189: PUSH2 0x0191
0000018c: JUMPI
0000018d: PUSH1 0x00
0000018f: DUP1
00000190: REVERT
00000191: JUMPDEST
00000192: DUP2
00000193: ADD
00000194: SWAP1
00000195: DUP1
00000196: DUP1
00000197: CALLDATALOAD
00000198: SWAP1
00000199: PUSH1 0x20
0000019b: ADD
0000019c: SWAP1
0000019d: SWAP3
0000019e: SWAP2
0000019f: SWAP1
000001a0: POP
000001a1: POP
000001a2: POP
000001a3: PUSH2 0x0aa5
000001a6: JUMP
000001a7: JUMPDEST
000001a8: STOP
000001a9: JUMPDEST
000001aa: PUSH2 0x01b1
000001ad: PUSH2 0x0dab
000001b0: JUMP
000001b1: JUMPDEST
000001b2: STOP
000001b3: JUMPDEST
000001b4: PUSH2 0x01bb
000001b7: PUSH2 0x0f31
000001ba: JUMP
000001bb: JUMPDEST
000001bc: PUSH1 0x40
000001be: MLOAD
000001bf: DUP1
000001c0: DUP3
000001c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001d6: AND
000001d7: DUP2
000001d8: MSTORE
000001d9: PUSH1 0x20
000001db: ADD
000001dc: SWAP2
000001dd: POP
000001de: POP
000001df: PUSH1 0x40
000001e1: MLOAD
000001e2: DUP1
000001e3: SWAP2
000001e4: SUB
000001e5: SWAP1
000001e6: RETURN
000001e7: JUMPDEST
000001e8: PUSH2 0x0213
000001eb: PUSH1 0x04
000001ed: DUP1
000001ee: CALLDATASIZE
000001ef: SUB
000001f0: PUSH1 0x20
000001f2: DUP2
000001f3: LT
000001f4: ISZERO
000001f5: PUSH2 0x01fd
000001f8: JUMPI
000001f9: PUSH1 0x00
000001fb: DUP1
000001fc: REVERT
000001fd: JUMPDEST
000001fe: DUP2
000001ff: ADD
00000200: SWAP1
00000201: DUP1
00000202: DUP1
00000203: CALLDATALOAD
00000204: SWAP1
00000205: PUSH1 0x20
00000207: ADD
00000208: SWAP1
00000209: SWAP3
0000020a: SWAP2
0000020b: SWAP1
0000020c: POP
0000020d: POP
0000020e: POP
0000020f: PUSH2 0x0f5a
00000212: JUMP
00000213: JUMPDEST
00000214: PUSH1 0x40
00000216: MLOAD
00000217: DUP1
00000218: DUP12
00000219: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000022e: AND
0000022f: DUP2
00000230: MSTORE
00000231: PUSH1 0x20
00000233: ADD
00000234: DUP11
00000235: DUP2
00000236: MSTORE
00000237: PUSH1 0x20
00000239: ADD
0000023a: DUP10
0000023b: DUP2
0000023c: MSTORE
0000023d: PUSH1 0x20
0000023f: ADD
00000240: DUP9
00000241: DUP2
00000242: MSTORE
00000243: PUSH1 0x20
00000245: ADD
00000246: DUP8
00000247: DUP2
00000248: MSTORE
00000249: PUSH1 0x20
0000024b: ADD
0000024c: DUP7
0000024d: DUP2
0000024e: MSTORE
0000024f: PUSH1 0x20
00000251: ADD
00000252: DUP6
00000253: DUP2
00000254: MSTORE
00000255: PUSH1 0x20
00000257: ADD
00000258: DUP5
00000259: DUP2
0000025a: MSTORE
0000025b: PUSH1 0x20
0000025d: ADD
0000025e: DUP4
0000025f: DUP2
00000260: MSTORE
00000261: PUSH1 0x20
00000263: ADD
00000264: DUP3
00000265: DUP2
00000266: MSTORE
00000267: PUSH1 0x20
00000269: ADD
0000026a: SWAP11
0000026b: POP
0000026c: POP
0000026d: POP
0000026e: POP
0000026f: POP
00000270: POP
00000271: POP
00000272: POP
00000273: POP
00000274: POP
00000275: POP
00000276: PUSH1 0x40
00000278: MLOAD
00000279: DUP1
0000027a: SWAP2
0000027b: SUB
0000027c: SWAP1
0000027d: RETURN
0000027e: JUMPDEST
0000027f: PUSH2 0x02ca
00000282: PUSH1 0x04
00000284: DUP1
00000285: CALLDATASIZE
00000286: SUB
00000287: PUSH1 0x40
00000289: DUP2
0000028a: LT
0000028b: ISZERO
0000028c: PUSH2 0x0294
0000028f: JUMPI
00000290: PUSH1 0x00
00000292: DUP1
00000293: REVERT
00000294: JUMPDEST
00000295: DUP2
00000296: ADD
00000297: SWAP1
00000298: DUP1
00000299: DUP1
0000029a: CALLDATALOAD
0000029b: SWAP1
0000029c: PUSH1 0x20
0000029e: ADD
0000029f: SWAP1
000002a0: SWAP3
000002a1: SWAP2
000002a2: SWAP1
000002a3: DUP1
000002a4: CALLDATALOAD
000002a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002ba: AND
000002bb: SWAP1
000002bc: PUSH1 0x20
000002be: ADD
000002bf: SWAP1
000002c0: SWAP3
000002c1: SWAP2
000002c2: SWAP1
000002c3: POP
000002c4: POP
000002c5: POP
000002c6: PUSH2 0x0fdb
000002c9: JUMP
000002ca: JUMPDEST
000002cb: PUSH1 0x40
000002cd: MLOAD
000002ce: DUP1
000002cf: DUP4
000002d0: DUP2
000002d1: MSTORE
000002d2: PUSH1 0x20
000002d4: ADD
000002d5: DUP3
000002d6: DUP2
000002d7: MSTORE
000002d8: PUSH1 0x20
000002da: ADD
000002db: SWAP3
000002dc: POP
000002dd: POP
000002de: POP
000002df: PUSH1 0x40
000002e1: MLOAD
000002e2: DUP1
000002e3: SWAP2
000002e4: SUB
000002e5: SWAP1
000002e6: RETURN
000002e7: JUMPDEST
000002e8: PUSH2 0x031d
000002eb: PUSH1 0x04
000002ed: DUP1
000002ee: CALLDATASIZE
000002ef: SUB
000002f0: PUSH1 0x40
000002f2: DUP2
000002f3: LT
000002f4: ISZERO
000002f5: PUSH2 0x02fd
000002f8: JUMPI
000002f9: PUSH1 0x00
000002fb: DUP1
000002fc: REVERT
000002fd: JUMPDEST
000002fe: DUP2
000002ff: ADD
00000300: SWAP1
00000301: DUP1
00000302: DUP1
00000303: CALLDATALOAD
00000304: SWAP1
00000305: PUSH1 0x20
00000307: ADD
00000308: SWAP1
00000309: SWAP3
0000030a: SWAP2
0000030b: SWAP1
0000030c: DUP1
0000030d: CALLDATALOAD
0000030e: SWAP1
0000030f: PUSH1 0x20
00000311: ADD
00000312: SWAP1
00000313: SWAP3
00000314: SWAP2
00000315: SWAP1
00000316: POP
00000317: POP
00000318: POP
00000319: PUSH2 0x100c
0000031c: JUMP
0000031d: JUMPDEST
0000031e: STOP
0000031f: JUMPDEST
00000320: PUSH2 0x036b
00000323: PUSH1 0x04
00000325: DUP1
00000326: CALLDATASIZE
00000327: SUB
00000328: PUSH1 0x40
0000032a: DUP2
0000032b: LT
0000032c: ISZERO
0000032d: PUSH2 0x0335
00000330: JUMPI
00000331: PUSH1 0x00
00000333: DUP1
00000334: REVERT
00000335: JUMPDEST
00000336: DUP2
00000337: ADD
00000338: SWAP1
00000339: DUP1
0000033a: DUP1
0000033b: CALLDATALOAD
0000033c: SWAP1
0000033d: PUSH1 0x20
0000033f: ADD
00000340: SWAP1
00000341: SWAP3
00000342: SWAP2
00000343: SWAP1
00000344: DUP1
00000345: CALLDATALOAD
00000346: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000035b: AND
0000035c: SWAP1
0000035d: PUSH1 0x20
0000035f: ADD
00000360: SWAP1
00000361: SWAP3
00000362: SWAP2
00000363: SWAP1
00000364: POP
00000365: POP
00000366: POP
00000367: PUSH2 0x12d9
0000036a: JUMP
0000036b: JUMPDEST
0000036c: PUSH1 0x40
0000036e: MLOAD
0000036f: DUP1
00000370: DUP3
00000371: DUP2
00000372: MSTORE
00000373: PUSH1 0x20
00000375: ADD
00000376: SWAP2
00000377: POP
00000378: POP
00000379: PUSH1 0x40
0000037b: MLOAD
0000037c: DUP1
0000037d: SWAP2
0000037e: SUB
0000037f: SWAP1
00000380: RETURN
00000381: JUMPDEST
00000382: PUSH2 0x03c3
00000385: PUSH1 0x04
00000387: DUP1
00000388: CALLDATASIZE
00000389: SUB
0000038a: PUSH1 0x20
0000038c: DUP2
0000038d: LT
0000038e: ISZERO
0000038f: PUSH2 0x0397
00000392: JUMPI
00000393: PUSH1 0x00
00000395: DUP1
00000396: REVERT
00000397: JUMPDEST
00000398: DUP2
00000399: ADD
0000039a: SWAP1
0000039b: DUP1
0000039c: DUP1
0000039d: CALLDATALOAD
0000039e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003b3: AND
000003b4: SWAP1
000003b5: PUSH1 0x20
000003b7: ADD
000003b8: SWAP1
000003b9: SWAP3
000003ba: SWAP2
000003bb: SWAP1
000003bc: POP
000003bd: POP
000003be: POP
000003bf: PUSH2 0x15b9
000003c2: JUMP
000003c3: JUMPDEST
000003c4: STOP
000003c5: JUMPDEST
000003c6: PUSH2 0x03cd
000003c9: PUSH2 0x17c4
000003cc: JUMP
000003cd: JUMPDEST
000003ce: PUSH1 0x40
000003d0: MLOAD
000003d1: DUP1
000003d2: DUP3
000003d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003e8: AND
000003e9: DUP2
000003ea: MSTORE
000003eb: PUSH1 0x20
000003ed: ADD
000003ee: SWAP2
000003ef: POP
000003f0: POP
000003f1: PUSH1 0x40
000003f3: MLOAD
000003f4: DUP1
000003f5: SWAP2
000003f6: SUB
000003f7: SWAP1
000003f8: RETURN
000003f9: JUMPDEST
000003fa: PUSH1 0x00
000003fc: PUSH1 0x02
000003fe: DUP1
000003ff: SLOAD
00000400: SWAP1
00000401: POP
00000402: SWAP1
00000403: POP
00000404: SWAP1
00000405: JUMP
00000406: JUMPDEST
00000407: PUSH2 0x040e
0000040a: PUSH2 0x17ea
0000040d: JUMP
0000040e: JUMPDEST
0000040f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000424: AND
00000425: PUSH1 0x00
00000427: DUP1
00000428: SLOAD
00000429: SWAP1
0000042a: PUSH2 0x0100
0000042d: EXP
0000042e: SWAP1
0000042f: DIV
00000430: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000445: AND
00000446: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000045b: AND
0000045c: EQ
0000045d: PUSH2 0x04ce
00000460: JUMPI
00000461: PUSH1 0x40
00000463: MLOAD
00000464: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000485: DUP2
00000486: MSTORE
00000487: PUSH1 0x04
00000489: ADD
0000048a: DUP1
0000048b: DUP1
0000048c: PUSH1 0x20
0000048e: ADD
0000048f: DUP3
00000490: DUP2
00000491: SUB
00000492: DUP3
00000493: MSTORE
00000494: PUSH1 0x20
00000496: DUP2
00000497: MSTORE
00000498: PUSH1 0x20
0000049a: ADD
0000049b: DUP1
0000049c: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
000004bd: DUP2
000004be: MSTORE
000004bf: POP
000004c0: PUSH1 0x20
000004c2: ADD
000004c3: SWAP2
000004c4: POP
000004c5: POP
000004c6: PUSH1 0x40
000004c8: MLOAD
000004c9: DUP1
000004ca: SWAP2
000004cb: SUB
000004cc: SWAP1
000004cd: REVERT
000004ce: JUMPDEST
000004cf: PUSH1 0x00
000004d1: JUMPDEST
000004d2: PUSH1 0x02
000004d4: DUP1
000004d5: SLOAD
000004d6: SWAP1
000004d7: POP
000004d8: DUP2
000004d9: LT
000004da: ISZERO
000004db: PUSH2 0x05c9
000004de: JUMPI
000004df: DUP6
000004e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004f5: AND
000004f6: PUSH1 0x02
000004f8: DUP3
000004f9: DUP2
000004fa: SLOAD
000004fb: DUP2
000004fc: LT
000004fd: PUSH2 0x0502
00000500: JUMPI
00000501: INVALID
00000502: JUMPDEST
00000503: SWAP1
00000504: PUSH1 0x00
00000506: MSTORE
00000507: PUSH1 0x20
00000509: PUSH1 0x00
0000050b: KECCAK256
0000050c: SWAP1
0000050d: PUSH1 0x0a
0000050f: MUL
00000510: ADD
00000511: PUSH1 0x00
00000513: ADD
00000514: PUSH1 0x00
00000516: SWAP1
00000517: SLOAD
00000518: SWAP1
00000519: PUSH2 0x0100
0000051c: EXP
0000051d: SWAP1
0000051e: DIV
0000051f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000534: AND
00000535: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000054a: AND
0000054b: EQ
0000054c: ISZERO
0000054d: PUSH2 0x05be
00000550: JUMPI
00000551: PUSH1 0x40
00000553: MLOAD
00000554: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000575: DUP2
00000576: MSTORE
00000577: PUSH1 0x04
00000579: ADD
0000057a: DUP1
0000057b: DUP1
0000057c: PUSH1 0x20
0000057e: ADD
0000057f: DUP3
00000580: DUP2
00000581: SUB
00000582: DUP3
00000583: MSTORE
00000584: PUSH1 0x12
00000586: DUP2
00000587: MSTORE
00000588: PUSH1 0x20
0000058a: ADD
0000058b: DUP1
0000058c: PUSH32 0x706f6f6c20616c72656164792065786973740000000000000000000000000000
000005ad: DUP2
000005ae: MSTORE
000005af: POP
000005b0: PUSH1 0x20
000005b2: ADD
000005b3: SWAP2
000005b4: POP
000005b5: POP
000005b6: PUSH1 0x40
000005b8: MLOAD
000005b9: DUP1
000005ba: SWAP2
000005bb: SUB
000005bc: SWAP1
000005bd: REVERT
000005be: JUMPDEST
000005bf: DUP1
000005c0: PUSH1 0x01
000005c2: ADD
000005c3: SWAP1
000005c4: POP
000005c5: PUSH2 0x04d1
000005c8: JUMP
000005c9: JUMPDEST
000005ca: POP
000005cb: PUSH1 0x00
000005cd: DUP5
000005ce: NUMBER
000005cf: GT
000005d0: PUSH2 0x05d9
000005d3: JUMPI
000005d4: DUP5
000005d5: PUSH2 0x05db
000005d8: JUMP
000005d9: JUMPDEST
000005da: NUMBER
000005db: JUMPDEST
000005dc: SWAP1
000005dd: POP
000005de: PUSH1 0x02
000005e0: PUSH1 0x40
000005e2: MLOAD
000005e3: DUP1
000005e4: PUSH2 0x0140
000005e7: ADD
000005e8: PUSH1 0x40
000005ea: MSTORE
000005eb: DUP1
000005ec: DUP9
000005ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000602: AND
00000603: DUP2
00000604: MSTORE
00000605: PUSH1 0x20
00000607: ADD
00000608: DUP8
00000609: DUP2
0000060a: MSTORE
0000060b: PUSH1 0x20
0000060d: ADD
0000060e: DUP7
0000060f: DUP2
00000610: MSTORE
00000611: PUSH1 0x20
00000613: ADD
00000614: DUP6
00000615: DUP2
00000616: MSTORE
00000617: PUSH1 0x20
00000619: ADD
0000061a: DUP5
0000061b: DUP2
0000061c: MSTORE
0000061d: PUSH1 0x20
0000061f: ADD
00000620: PUSH2 0x0632
00000623: DUP6
00000624: DUP10
00000625: PUSH2 0x17f2
00000628: SWAP1
00000629: SWAP2
0000062a: SWAP1
0000062b: PUSH4 0xffffffff
00000630: AND
00000631: JUMP
00000632: JUMPDEST
00000633: DUP2
00000634: MSTORE
00000635: PUSH1 0x20
00000637: ADD
00000638: PUSH2 0x065d
0000063b: PUSH2 0x064e
0000063e: PUSH1 0x02
00000640: DUP8
00000641: PUSH2 0x187a
00000644: SWAP1
00000645: SWAP2
00000646: SWAP1
00000647: PUSH4 0xffffffff
0000064c: AND
0000064d: JUMP
0000064e: JUMPDEST
0000064f: DUP10
00000650: PUSH2 0x17f2
00000653: SWAP1
00000654: SWAP2
00000655: SWAP1
00000656: PUSH4 0xffffffff
0000065b: AND
0000065c: JUMP
0000065d: JUMPDEST
0000065e: DUP2
0000065f: MSTORE
00000660: PUSH1 0x20
00000662: ADD
00000663: PUSH2 0x0688
00000666: PUSH2 0x0679
00000669: PUSH1 0x03
0000066b: DUP8
0000066c: PUSH2 0x187a
0000066f: SWAP1
00000670: SWAP2
00000671: SWAP1
00000672: PUSH4 0xffffffff
00000677: AND
00000678: JUMP
00000679: JUMPDEST
0000067a: DUP10
0000067b: PUSH2 0x17f2
0000067e: SWAP1
0000067f: SWAP2
00000680: SWAP1
00000681: PUSH4 0xffffffff
00000686: AND
00000687: JUMP
00000688: JUMPDEST
00000689: DUP2
0000068a: MSTORE
0000068b: PUSH1 0x20
0000068d: ADD
0000068e: DUP4
0000068f: DUP2
00000690: MSTORE
00000691: PUSH1 0x20
00000693: ADD
00000694: PUSH1 0x00
00000696: DUP2
00000697: MSTORE
00000698: POP
00000699: SWAP1
0000069a: DUP1
0000069b: PUSH1 0x01
0000069d: DUP2
0000069e: SLOAD
0000069f: ADD
000006a0: DUP1
000006a1: DUP3
000006a2: SSTORE
000006a3: DUP1
000006a4: SWAP2
000006a5: POP
000006a6: POP
000006a7: PUSH1 0x01
000006a9: SWAP1
000006aa: SUB
000006ab: SWAP1
000006ac: PUSH1 0x00
000006ae: MSTORE
000006af: PUSH1 0x20
000006b1: PUSH1 0x00
000006b3: KECCAK256
000006b4: SWAP1
000006b5: PUSH1 0x0a
000006b7: MUL
000006b8: ADD
000006b9: PUSH1 0x00
000006bb: SWAP1
000006bc: SWAP2
000006bd: SWAP1
000006be: SWAP2
000006bf: SWAP1
000006c0: SWAP2
000006c1: POP
000006c2: PUSH1 0x00
000006c4: DUP3
000006c5: ADD
000006c6: MLOAD
000006c7: DUP2
000006c8: PUSH1 0x00
000006ca: ADD
000006cb: PUSH1 0x00
000006cd: PUSH2 0x0100
000006d0: EXP
000006d1: DUP2
000006d2: SLOAD
000006d3: DUP2
000006d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006e9: MUL
000006ea: NOT
000006eb: AND
000006ec: SWAP1
000006ed: DUP4
000006ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000703: AND
00000704: MUL
00000705: OR
00000706: SWAP1
00000707: SSTORE
00000708: POP
00000709: PUSH1 0x20
0000070b: DUP3
0000070c: ADD
0000070d: MLOAD
0000070e: DUP2
0000070f: PUSH1 0x01
00000711: ADD
00000712: SSTORE
00000713: PUSH1 0x40
00000715: DUP3
00000716: ADD
00000717: MLOAD
00000718: DUP2
00000719: PUSH1 0x02
0000071b: ADD
0000071c: SSTORE
0000071d: PUSH1 0x60
0000071f: DUP3
00000720: ADD
00000721: MLOAD
00000722: DUP2
00000723: PUSH1 0x03
00000725: ADD
00000726: SSTORE
00000727: PUSH1 0x80
00000729: DUP3
0000072a: ADD
0000072b: MLOAD
0000072c: DUP2
0000072d: PUSH1 0x04
0000072f: ADD
00000730: SSTORE
00000731: PUSH1 0xa0
00000733: DUP3
00000734: ADD
00000735: MLOAD
00000736: DUP2
00000737: PUSH1 0x05
00000739: ADD
0000073a: SSTORE
0000073b: PUSH1 0xc0
0000073d: DUP3
0000073e: ADD
0000073f: MLOAD
00000740: DUP2
00000741: PUSH1 0x06
00000743: ADD
00000744: SSTORE
00000745: PUSH1 0xe0
00000747: DUP3
00000748: ADD
00000749: MLOAD
0000074a: DUP2
0000074b: PUSH1 0x07
0000074d: ADD
0000074e: SSTORE
0000074f: PUSH2 0x0100
00000752: DUP3
00000753: ADD
00000754: MLOAD
00000755: DUP2
00000756: PUSH1 0x08
00000758: ADD
00000759: SSTORE
0000075a: PUSH2 0x0120
0000075d: DUP3
0000075e: ADD
0000075f: MLOAD
00000760: DUP2
00000761: PUSH1 0x09
00000763: ADD
00000764: SSTORE
00000765: POP
00000766: POP
00000767: POP
00000768: POP
00000769: POP
0000076a: POP
0000076b: POP
0000076c: POP
0000076d: JUMP
0000076e: JUMPDEST
0000076f: DUP2
00000770: PUSH1 0x00
00000772: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000787: AND
00000788: PUSH1 0x02
0000078a: DUP3
0000078b: DUP2
0000078c: SLOAD
0000078d: DUP2
0000078e: LT
0000078f: PUSH2 0x0794
00000792: JUMPI
00000793: INVALID
00000794: JUMPDEST
00000795: SWAP1
00000796: PUSH1 0x00
00000798: MSTORE
00000799: PUSH1 0x20
0000079b: PUSH1 0x00
0000079d: KECCAK256
0000079e: SWAP1
0000079f: PUSH1 0x0a
000007a1: MUL
000007a2: ADD
000007a3: PUSH1 0x00
000007a5: ADD
000007a6: PUSH1 0x00
000007a8: SWAP1
000007a9: SLOAD
000007aa: SWAP1
000007ab: PUSH2 0x0100
000007ae: EXP
000007af: SWAP1
000007b0: DIV
000007b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007c6: AND
000007c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007dc: AND
000007dd: EQ
000007de: ISZERO
000007df: PUSH2 0x0850
000007e2: JUMPI
000007e3: PUSH1 0x40
000007e5: MLOAD
000007e6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000807: DUP2
00000808: MSTORE
00000809: PUSH1 0x04
0000080b: ADD
0000080c: DUP1
0000080d: DUP1
0000080e: PUSH1 0x20
00000810: ADD
00000811: DUP3
00000812: DUP2
00000813: SUB
00000814: DUP3
00000815: MSTORE
00000816: PUSH1 0x0e
00000818: DUP2
00000819: MSTORE
0000081a: PUSH1 0x20
0000081c: ADD
0000081d: DUP1
0000081e: PUSH32 0x706f6f6c206e6f74206578697374000000000000000000000000000000000000
0000083f: DUP2
00000840: MSTORE
00000841: POP
00000842: PUSH1 0x20
00000844: ADD
00000845: SWAP2
00000846: POP
00000847: POP
00000848: PUSH1 0x40
0000084a: MLOAD
0000084b: DUP1
0000084c: SWAP2
0000084d: SUB
0000084e: SWAP1
0000084f: REVERT
00000850: JUMPDEST
00000851: PUSH1 0x00
00000853: PUSH1 0x02
00000855: DUP5
00000856: DUP2
00000857: SLOAD
00000858: DUP2
00000859: LT
0000085a: PUSH2 0x085f
0000085d: JUMPI
0000085e: INVALID
0000085f: JUMPDEST
00000860: SWAP1
00000861: PUSH1 0x00
00000863: MSTORE
00000864: PUSH1 0x20
00000866: PUSH1 0x00
00000868: KECCAK256
00000869: SWAP1
0000086a: PUSH1 0x0a
0000086c: MUL
0000086d: ADD
0000086e: SWAP1
0000086f: POP
00000870: PUSH1 0x00
00000872: PUSH1 0x03
00000874: PUSH1 0x00
00000876: DUP7
00000877: DUP2
00000878: MSTORE
00000879: PUSH1 0x20
0000087b: ADD
0000087c: SWAP1
0000087d: DUP2
0000087e: MSTORE
0000087f: PUSH1 0x20
00000881: ADD
00000882: PUSH1 0x00
00000884: KECCAK256
00000885: PUSH1 0x00
00000887: CALLER
00000888: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000089d: AND
0000089e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008b3: AND
000008b4: DUP2
000008b5: MSTORE
000008b6: PUSH1 0x20
000008b8: ADD
000008b9: SWAP1
000008ba: DUP2
000008bb: MSTORE
000008bc: PUSH1 0x20
000008be: ADD
000008bf: PUSH1 0x00
000008c1: KECCAK256
000008c2: SWAP1
000008c3: POP
000008c4: DUP4
000008c5: DUP2
000008c6: PUSH1 0x00
000008c8: ADD
000008c9: SLOAD
000008ca: LT
000008cb: ISZERO
000008cc: PUSH2 0x093d
000008cf: JUMPI
000008d0: PUSH1 0x40
000008d2: MLOAD
000008d3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000008f4: DUP2
000008f5: MSTORE
000008f6: PUSH1 0x04
000008f8: ADD
000008f9: DUP1
000008fa: DUP1
000008fb: PUSH1 0x20
000008fd: ADD
000008fe: DUP3
000008ff: DUP2
00000900: SUB
00000901: DUP3
00000902: MSTORE
00000903: PUSH1 0x1e
00000905: DUP2
00000906: MSTORE
00000907: PUSH1 0x20
00000909: ADD
0000090a: DUP1
0000090b: PUSH32 0x77697468647261773a20696e73756666696369656e742062616c616e63650000
0000092c: DUP2
0000092d: MSTORE
0000092e: POP
0000092f: PUSH1 0x20
00000931: ADD
00000932: SWAP2
00000933: POP
00000934: POP
00000935: PUSH1 0x40
00000937: MLOAD
00000938: DUP1
00000939: SWAP2
0000093a: SUB
0000093b: SWAP1
0000093c: REVERT
0000093d: JUMPDEST
0000093e: PUSH2 0x0946
00000941: DUP6
00000942: PUSH2 0x0aa5
00000945: JUMP
00000946: JUMPDEST
00000947: PUSH1 0x00
00000949: PUSH2 0x0990
0000094c: DUP3
0000094d: PUSH1 0x01
0000094f: ADD
00000950: SLOAD
00000951: PUSH2 0x0982
00000954: PUSH5 0xe8d4a51000
0000095a: PUSH2 0x0974
0000095d: DUP8
0000095e: PUSH1 0x09
00000960: ADD
00000961: SLOAD
00000962: DUP8
00000963: PUSH1 0x00
00000965: ADD
00000966: SLOAD
00000967: PUSH2 0x187a
0000096a: SWAP1
0000096b: SWAP2
0000096c: SWAP1
0000096d: PUSH4 0xffffffff
00000972: AND
00000973: JUMP
00000974: JUMPDEST
00000975: PUSH2 0x1900
00000978: SWAP1
00000979: SWAP2
0000097a: SWAP1
0000097b: PUSH4 0xffffffff
00000980: AND
00000981: JUMP
00000982: JUMPDEST
00000983: PUSH2 0x194a
00000986: SWAP1
00000987: SWAP2
00000988: SWAP1
00000989: PUSH4 0xffffffff
0000098e: AND
0000098f: JUMP
00000990: JUMPDEST
00000991: SWAP1
00000992: POP
00000993: PUSH1 0x00
00000995: DUP2
00000996: GT
00000997: ISZERO
00000998: PUSH2 0x09a6
0000099b: JUMPI
0000099c: PUSH2 0x09a5
0000099f: CALLER
000009a0: DUP3
000009a1: PUSH2 0x1994
000009a4: JUMP
000009a5: JUMPDEST
000009a6: JUMPDEST
000009a7: PUSH2 0x09bd
000009aa: DUP6
000009ab: DUP4
000009ac: PUSH1 0x00
000009ae: ADD
000009af: SLOAD
000009b0: PUSH2 0x194a
000009b3: SWAP1
000009b4: SWAP2
000009b5: SWAP1
000009b6: PUSH4 0xffffffff
000009bb: AND
000009bc: JUMP
000009bd: JUMPDEST
000009be: DUP3
000009bf: PUSH1 0x00
000009c1: ADD
000009c2: DUP2
000009c3: SWAP1
000009c4: SSTORE
000009c5: POP
000009c6: PUSH2 0x09f7
000009c9: PUSH5 0xe8d4a51000
000009cf: PUSH2 0x09e9
000009d2: DUP6
000009d3: PUSH1 0x09
000009d5: ADD
000009d6: SLOAD
000009d7: DUP6
000009d8: PUSH1 0x00
000009da: ADD
000009db: SLOAD
000009dc: PUSH2 0x187a
000009df: SWAP1
000009e0: SWAP2
000009e1: SWAP1
000009e2: PUSH4 0xffffffff
000009e7: AND
000009e8: JUMP
000009e9: JUMPDEST
000009ea: PUSH2 0x1900
000009ed: SWAP1
000009ee: SWAP2
000009ef: SWAP1
000009f0: PUSH4 0xffffffff
000009f5: AND
000009f6: JUMP
000009f7: JUMPDEST
000009f8: DUP3
000009f9: PUSH1 0x01
000009fb: ADD
000009fc: DUP2
000009fd: SWAP1
000009fe: SSTORE
000009ff: POP
00000a00: PUSH2 0x0a4e
00000a03: CALLER
00000a04: DUP7
00000a05: DUP6
00000a06: PUSH1 0x00
00000a08: ADD
00000a09: PUSH1 0x00
00000a0b: SWAP1
00000a0c: SLOAD
00000a0d: SWAP1
00000a0e: PUSH2 0x0100
00000a11: EXP
00000a12: SWAP1
00000a13: DIV
00000a14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a29: AND
00000a2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a3f: AND
00000a40: PUSH2 0x1c0d
00000a43: SWAP1
00000a44: SWAP3
00000a45: SWAP2
00000a46: SWAP1
00000a47: PUSH4 0xffffffff
00000a4c: AND
00000a4d: JUMP
00000a4e: JUMPDEST
00000a4f: DUP6
00000a50: CALLER
00000a51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a66: AND
00000a67: PUSH32 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568
00000a88: DUP8
00000a89: PUSH1 0x40
00000a8b: MLOAD
00000a8c: DUP1
00000a8d: DUP3
00000a8e: DUP2
00000a8f: MSTORE
00000a90: PUSH1 0x20
00000a92: ADD
00000a93: SWAP2
00000a94: POP
00000a95: POP
00000a96: PUSH1 0x40
00000a98: MLOAD
00000a99: DUP1
00000a9a: SWAP2
00000a9b: SUB
00000a9c: SWAP1
00000a9d: LOG3
00000a9e: POP
00000a9f: POP
00000aa0: POP
00000aa1: POP
00000aa2: POP
00000aa3: POP
00000aa4: JUMP
00000aa5: JUMPDEST
00000aa6: DUP1
00000aa7: PUSH1 0x00
00000aa9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000abe: AND
00000abf: PUSH1 0x02
00000ac1: DUP3
00000ac2: DUP2
00000ac3: SLOAD
00000ac4: DUP2
00000ac5: LT
00000ac6: PUSH2 0x0acb
00000ac9: JUMPI
00000aca: INVALID
00000acb: JUMPDEST
00000acc: SWAP1
00000acd: PUSH1 0x00
00000acf: MSTORE
00000ad0: PUSH1 0x20
00000ad2: PUSH1 0x00
00000ad4: KECCAK256
00000ad5: SWAP1
00000ad6: PUSH1 0x0a
00000ad8: MUL
00000ad9: ADD
00000ada: PUSH1 0x00
00000adc: ADD
00000add: PUSH1 0x00
00000adf: SWAP1
00000ae0: SLOAD
00000ae1: SWAP1
00000ae2: PUSH2 0x0100
00000ae5: EXP
00000ae6: SWAP1
00000ae7: DIV
00000ae8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000afd: AND
00000afe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b13: AND
00000b14: EQ
00000b15: ISZERO
00000b16: PUSH2 0x0b87
00000b19: JUMPI
00000b1a: PUSH1 0x40
00000b1c: MLOAD
00000b1d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000b3e: DUP2
00000b3f: MSTORE
00000b40: PUSH1 0x04
00000b42: ADD
00000b43: DUP1
00000b44: DUP1
00000b45: PUSH1 0x20
00000b47: ADD
00000b48: DUP3
00000b49: DUP2
00000b4a: SUB
00000b4b: DUP3
00000b4c: MSTORE
00000b4d: PUSH1 0x0e
00000b4f: DUP2
00000b50: MSTORE
00000b51: PUSH1 0x20
00000b53: ADD
00000b54: DUP1
00000b55: PUSH32 0x706f6f6c206e6f74206578697374000000000000000000000000000000000000
00000b76: DUP2
00000b77: MSTORE
00000b78: POP
00000b79: PUSH1 0x20
00000b7b: ADD
00000b7c: SWAP2
00000b7d: POP
00000b7e: POP
00000b7f: PUSH1 0x40
00000b81: MLOAD
00000b82: DUP1
00000b83: SWAP2
00000b84: SUB
00000b85: SWAP1
00000b86: REVERT
00000b87: JUMPDEST
00000b88: PUSH1 0x00
00000b8a: PUSH1 0x02
00000b8c: DUP4
00000b8d: DUP2
00000b8e: SLOAD
00000b8f: DUP2
00000b90: LT
00000b91: PUSH2 0x0b96
00000b94: JUMPI
00000b95: INVALID
00000b96: JUMPDEST
00000b97: SWAP1
00000b98: PUSH1 0x00
00000b9a: MSTORE
00000b9b: PUSH1 0x20
00000b9d: PUSH1 0x00
00000b9f: KECCAK256
00000ba0: SWAP1
00000ba1: PUSH1 0x0a
00000ba3: MUL
00000ba4: ADD
00000ba5: SWAP1
00000ba6: POP
00000ba7: DUP1
00000ba8: PUSH1 0x08
00000baa: ADD
00000bab: SLOAD
00000bac: NUMBER
00000bad: GT
00000bae: PUSH2 0x0bb7
00000bb1: JUMPI
00000bb2: POP
00000bb3: PUSH2 0x0da7
00000bb6: JUMP
00000bb7: JUMPDEST
00000bb8: PUSH1 0x00
00000bba: DUP2
00000bbb: PUSH1 0x00
00000bbd: ADD
00000bbe: PUSH1 0x00
00000bc0: SWAP1
00000bc1: SLOAD
00000bc2: SWAP1
00000bc3: PUSH2 0x0100
00000bc6: EXP
00000bc7: SWAP1
00000bc8: DIV
00000bc9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bde: AND
00000bdf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bf4: AND
00000bf5: PUSH4 0x70a08231
00000bfa: ADDRESS
00000bfb: PUSH1 0x40
00000bfd: MLOAD
00000bfe: DUP3
00000bff: PUSH4 0xffffffff
00000c04: AND
00000c05: PUSH1 0xe0
00000c07: SHL
00000c08: DUP2
00000c09: MSTORE
00000c0a: PUSH1 0x04
00000c0c: ADD
00000c0d: DUP1
00000c0e: DUP3
00000c0f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c24: AND
00000c25: DUP2
00000c26: MSTORE
00000c27: PUSH1 0x20
00000c29: ADD
00000c2a: SWAP2
00000c2b: POP
00000c2c: POP
00000c2d: PUSH1 0x20
00000c2f: PUSH1 0x40
00000c31: MLOAD
00000c32: DUP1
00000c33: DUP4
00000c34: SUB
00000c35: DUP2
00000c36: DUP7
00000c37: DUP1
00000c38: EXTCODESIZE
00000c39: ISZERO
00000c3a: DUP1
00000c3b: ISZERO
00000c3c: PUSH2 0x0c44
00000c3f: JUMPI
00000c40: PUSH1 0x00
00000c42: DUP1
00000c43: REVERT
00000c44: JUMPDEST
00000c45: POP
00000c46: GAS
00000c47: STATICCALL
00000c48: ISZERO
00000c49: DUP1
00000c4a: ISZERO
00000c4b: PUSH2 0x0c58
00000c4e: JUMPI
00000c4f: RETURNDATASIZE
00000c50: PUSH1 0x00
00000c52: DUP1
00000c53: RETURNDATACOPY
00000c54: RETURNDATASIZE
00000c55: PUSH1 0x00
00000c57: REVERT
00000c58: JUMPDEST
00000c59: POP
00000c5a: POP
00000c5b: POP
00000c5c: POP
00000c5d: PUSH1 0x40
00000c5f: MLOAD
00000c60: RETURNDATASIZE
00000c61: PUSH1 0x20
00000c63: DUP2
00000c64: LT
00000c65: ISZERO
00000c66: PUSH2 0x0c6e
00000c69: JUMPI
00000c6a: PUSH1 0x00
00000c6c: DUP1
00000c6d: REVERT
00000c6e: JUMPDEST
00000c6f: DUP2
00000c70: ADD
00000c71: SWAP1
00000c72: DUP1
00000c73: DUP1
00000c74: MLOAD
00000c75: SWAP1
00000c76: PUSH1 0x20
00000c78: ADD
00000c79: SWAP1
00000c7a: SWAP3
00000c7b: SWAP2
00000c7c: SWAP1
00000c7d: POP
00000c7e: POP
00000c7f: POP
00000c80: SWAP1
00000c81: POP
00000c82: PUSH1 0x00
00000c84: DUP2
00000c85: EQ
00000c86: ISZERO
00000c87: PUSH2 0x0c9a
00000c8a: JUMPI
00000c8b: NUMBER
00000c8c: DUP3
00000c8d: PUSH1 0x08
00000c8f: ADD
00000c90: DUP2
00000c91: SWAP1
00000c92: SSTORE
00000c93: POP
00000c94: POP
00000c95: POP
00000c96: PUSH2 0x0da7
00000c99: JUMP
00000c9a: JUMPDEST
00000c9b: PUSH1 0x00
00000c9d: PUSH2 0x0ca5
00000ca0: DUP4
00000ca1: PUSH2 0x1caf
00000ca4: JUMP
00000ca5: JUMPDEST
00000ca6: SWAP1
00000ca7: POP
00000ca8: PUSH1 0x01
00000caa: PUSH1 0x00
00000cac: SWAP1
00000cad: SLOAD
00000cae: SWAP1
00000caf: PUSH2 0x0100
00000cb2: EXP
00000cb3: SWAP1
00000cb4: DIV
00000cb5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cca: AND
00000ccb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ce0: AND
00000ce1: PUSH4 0x40c10f19
00000ce6: ADDRESS
00000ce7: DUP4
00000ce8: PUSH1 0x40
00000cea: MLOAD
00000ceb: DUP4
00000cec: PUSH4 0xffffffff
00000cf1: AND
00000cf2: PUSH1 0xe0
00000cf4: SHL
00000cf5: DUP2
00000cf6: MSTORE
00000cf7: PUSH1 0x04
00000cf9: ADD
00000cfa: DUP1
00000cfb: DUP4
00000cfc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d11: AND
00000d12: DUP2
00000d13: MSTORE
00000d14: PUSH1 0x20
00000d16: ADD
00000d17: DUP3
00000d18: DUP2
00000d19: MSTORE
00000d1a: PUSH1 0x20
00000d1c: ADD
00000d1d: SWAP3
00000d1e: POP
00000d1f: POP
00000d20: POP
00000d21: PUSH1 0x00
00000d23: PUSH1 0x40
00000d25: MLOAD
00000d26: DUP1
00000d27: DUP4
00000d28: SUB
00000d29: DUP2
00000d2a: PUSH1 0x00
00000d2c: DUP8
00000d2d: DUP1
00000d2e: EXTCODESIZE
00000d2f: ISZERO
00000d30: DUP1
00000d31: ISZERO
00000d32: PUSH2 0x0d3a
00000d35: JUMPI
00000d36: PUSH1 0x00
00000d38: DUP1
00000d39: REVERT
00000d3a: JUMPDEST
00000d3b: POP
00000d3c: GAS
00000d3d: CALL
00000d3e: ISZERO
00000d3f: DUP1
00000d40: ISZERO
00000d41: PUSH2 0x0d4e
00000d44: JUMPI
00000d45: RETURNDATASIZE
00000d46: PUSH1 0x00
00000d48: DUP1
00000d49: RETURNDATACOPY
00000d4a: RETURNDATASIZE
00000d4b: PUSH1 0x00
00000d4d: REVERT
00000d4e: JUMPDEST
00000d4f: POP
00000d50: POP
00000d51: POP
00000d52: POP
00000d53: PUSH2 0x0d92
00000d56: PUSH2 0x0d7f
00000d59: DUP4
00000d5a: PUSH2 0x0d71
00000d5d: PUSH5 0xe8d4a51000
00000d63: DUP6
00000d64: PUSH2 0x187a
00000d67: SWAP1
00000d68: SWAP2
00000d69: SWAP1
00000d6a: PUSH4 0xffffffff
00000d6f: AND
00000d70: JUMP
00000d71: JUMPDEST
00000d72: PUSH2 0x1900
00000d75: SWAP1
00000d76: SWAP2
00000d77: SWAP1
00000d78: PUSH4 0xffffffff
00000d7d: AND
00000d7e: JUMP
00000d7f: JUMPDEST
00000d80: DUP5
00000d81: PUSH1 0x09
00000d83: ADD
00000d84: SLOAD
00000d85: PUSH2 0x17f2
00000d88: SWAP1
00000d89: SWAP2
00000d8a: SWAP1
00000d8b: PUSH4 0xffffffff
00000d90: AND
00000d91: JUMP
00000d92: JUMPDEST
00000d93: DUP4
00000d94: PUSH1 0x09
00000d96: ADD
00000d97: DUP2
00000d98: SWAP1
00000d99: SSTORE
00000d9a: POP
00000d9b: NUMBER
00000d9c: DUP4
00000d9d: PUSH1 0x08
00000d9f: ADD
00000da0: DUP2
00000da1: SWAP1
00000da2: SSTORE
00000da3: POP
00000da4: POP
00000da5: POP
00000da6: POP
00000da7: JUMPDEST
00000da8: POP
00000da9: POP
00000daa: JUMP
00000dab: JUMPDEST
00000dac: PUSH2 0x0db3
00000daf: PUSH2 0x17ea
00000db2: JUMP
00000db3: JUMPDEST
00000db4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dc9: AND
00000dca: PUSH1 0x00
00000dcc: DUP1
00000dcd: SLOAD
00000dce: SWAP1
00000dcf: PUSH2 0x0100
00000dd2: EXP
00000dd3: SWAP1
00000dd4: DIV
00000dd5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dea: AND
00000deb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e00: AND
00000e01: EQ
00000e02: PUSH2 0x0e73
00000e05: JUMPI
00000e06: PUSH1 0x40
00000e08: MLOAD
00000e09: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e2a: DUP2
00000e2b: MSTORE
00000e2c: PUSH1 0x04
00000e2e: ADD
00000e2f: DUP1
00000e30: DUP1
00000e31: PUSH1 0x20
00000e33: ADD
00000e34: DUP3
00000e35: DUP2
00000e36: SUB
00000e37: DUP3
00000e38: MSTORE
00000e39: PUSH1 0x20
00000e3b: DUP2
00000e3c: MSTORE
00000e3d: PUSH1 0x20
00000e3f: ADD
00000e40: DUP1
00000e41: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00000e62: DUP2
00000e63: MSTORE
00000e64: POP
00000e65: PUSH1 0x20
00000e67: ADD
00000e68: SWAP2
00000e69: POP
00000e6a: POP
00000e6b: PUSH1 0x40
00000e6d: MLOAD
00000e6e: DUP1
00000e6f: SWAP2
00000e70: SUB
00000e71: SWAP1
00000e72: REVERT
00000e73: JUMPDEST
00000e74: PUSH1 0x00
00000e76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e8b: AND
00000e8c: PUSH1 0x00
00000e8e: DUP1
00000e8f: SLOAD
00000e90: SWAP1
00000e91: PUSH2 0x0100
00000e94: EXP
00000e95: SWAP1
00000e96: DIV
00000e97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000eac: AND
00000ead: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ec2: AND
00000ec3: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00000ee4: PUSH1 0x40
00000ee6: MLOAD
00000ee7: PUSH1 0x40
00000ee9: MLOAD
00000eea: DUP1
00000eeb: SWAP2
00000eec: SUB
00000eed: SWAP1
00000eee: LOG3
00000eef: PUSH1 0x00
00000ef1: DUP1
00000ef2: PUSH1 0x00
00000ef4: PUSH2 0x0100
00000ef7: EXP
00000ef8: DUP2
00000ef9: SLOAD
00000efa: DUP2
00000efb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f10: MUL
00000f11: NOT
00000f12: AND
00000f13: SWAP1
00000f14: DUP4
00000f15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f2a: AND
00000f2b: MUL
00000f2c: OR
00000f2d: SWAP1
00000f2e: SSTORE
00000f2f: POP
00000f30: JUMP
00000f31: JUMPDEST
00000f32: PUSH1 0x00
00000f34: DUP1
00000f35: PUSH1 0x00
00000f37: SWAP1
00000f38: SLOAD
00000f39: SWAP1
00000f3a: PUSH2 0x0100
00000f3d: EXP
00000f3e: SWAP1
00000f3f: DIV
00000f40: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f55: AND
00000f56: SWAP1
00000f57: POP
00000f58: SWAP1
00000f59: JUMP
00000f5a: JUMPDEST
00000f5b: PUSH1 0x02
00000f5d: DUP2
00000f5e: DUP2
00000f5f: SLOAD
00000f60: DUP2
00000f61: LT
00000f62: PUSH2 0x0f67
00000f65: JUMPI
00000f66: INVALID
00000f67: JUMPDEST
00000f68: SWAP1
00000f69: PUSH1 0x00
00000f6b: MSTORE
00000f6c: PUSH1 0x20
00000f6e: PUSH1 0x00
00000f70: KECCAK256
00000f71: SWAP1
00000f72: PUSH1 0x0a
00000f74: MUL
00000f75: ADD
00000f76: PUSH1 0x00
00000f78: SWAP2
00000f79: POP
00000f7a: SWAP1
00000f7b: POP
00000f7c: DUP1
00000f7d: PUSH1 0x00
00000f7f: ADD
00000f80: PUSH1 0x00
00000f82: SWAP1
00000f83: SLOAD
00000f84: SWAP1
00000f85: PUSH2 0x0100
00000f88: EXP
00000f89: SWAP1
00000f8a: DIV
00000f8b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fa0: AND
00000fa1: SWAP1
00000fa2: DUP1
00000fa3: PUSH1 0x01
00000fa5: ADD
00000fa6: SLOAD
00000fa7: SWAP1
00000fa8: DUP1
00000fa9: PUSH1 0x02
00000fab: ADD
00000fac: SLOAD
00000fad: SWAP1
00000fae: DUP1
00000faf: PUSH1 0x03
00000fb1: ADD
00000fb2: SLOAD
00000fb3: SWAP1
00000fb4: DUP1
00000fb5: PUSH1 0x04
00000fb7: ADD
00000fb8: SLOAD
00000fb9: SWAP1
00000fba: DUP1
00000fbb: PUSH1 0x05
00000fbd: ADD
00000fbe: SLOAD
00000fbf: SWAP1
00000fc0: DUP1
00000fc1: PUSH1 0x06
00000fc3: ADD
00000fc4: SLOAD
00000fc5: SWAP1
00000fc6: DUP1
00000fc7: PUSH1 0x07
00000fc9: ADD
00000fca: SLOAD
00000fcb: SWAP1
00000fcc: DUP1
00000fcd: PUSH1 0x08
00000fcf: ADD
00000fd0: SLOAD
00000fd1: SWAP1
00000fd2: DUP1
00000fd3: PUSH1 0x09
00000fd5: ADD
00000fd6: SLOAD
00000fd7: SWAP1
00000fd8: POP
00000fd9: DUP11
00000fda: JUMP
00000fdb: JUMPDEST
00000fdc: PUSH1 0x03
00000fde: PUSH1 0x20
00000fe0: MSTORE
00000fe1: DUP2
00000fe2: PUSH1 0x00
00000fe4: MSTORE
00000fe5: PUSH1 0x40
00000fe7: PUSH1 0x00
00000fe9: KECCAK256
00000fea: PUSH1 0x20
00000fec: MSTORE
00000fed: DUP1
00000fee: PUSH1 0x00
00000ff0: MSTORE
00000ff1: PUSH1 0x40
00000ff3: PUSH1 0x00
00000ff5: KECCAK256
00000ff6: PUSH1 0x00
00000ff8: SWAP2
00000ff9: POP
00000ffa: SWAP2
00000ffb: POP
00000ffc: POP
00000ffd: DUP1
00000ffe: PUSH1 0x00
00001000: ADD
00001001: SLOAD
00001002: SWAP1
00001003: DUP1
00001004: PUSH1 0x01
00001006: ADD
00001007: SLOAD
00001008: SWAP1
00001009: POP
0000100a: DUP3
0000100b: JUMP
0000100c: JUMPDEST
0000100d: DUP2
0000100e: PUSH1 0x00
00001010: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001025: AND
00001026: PUSH1 0x02
00001028: DUP3
00001029: DUP2
0000102a: SLOAD
0000102b: DUP2
0000102c: LT
0000102d: PUSH2 0x1032
00001030: JUMPI
00001031: INVALID
00001032: JUMPDEST
00001033: SWAP1
00001034: PUSH1 0x00
00001036: MSTORE
00001037: PUSH1 0x20
00001039: PUSH1 0x00
0000103b: KECCAK256
0000103c: SWAP1
0000103d: PUSH1 0x0a
0000103f: MUL
00001040: ADD
00001041: PUSH1 0x00
00001043: ADD
00001044: PUSH1 0x00
00001046: SWAP1
00001047: SLOAD
00001048: SWAP1
00001049: PUSH2 0x0100
0000104c: EXP
0000104d: SWAP1
0000104e: DIV
0000104f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001064: AND
00001065: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000107a: AND
0000107b: EQ
0000107c: ISZERO
0000107d: PUSH2 0x10ee
00001080: JUMPI
00001081: PUSH1 0x40
00001083: MLOAD
00001084: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000010a5: DUP2
000010a6: MSTORE
000010a7: PUSH1 0x04
000010a9: ADD
000010aa: DUP1
000010ab: DUP1
000010ac: PUSH1 0x20
000010ae: ADD
000010af: DUP3
000010b0: DUP2
000010b1: SUB
000010b2: DUP3
000010b3: MSTORE
000010b4: PUSH1 0x0e
000010b6: DUP2
000010b7: MSTORE
000010b8: PUSH1 0x20
000010ba: ADD
000010bb: DUP1
000010bc: PUSH32 0x706f6f6c206e6f74206578697374000000000000000000000000000000000000
000010dd: DUP2
000010de: MSTORE
000010df: POP
000010e0: PUSH1 0x20
000010e2: ADD
000010e3: SWAP2
000010e4: POP
000010e5: POP
000010e6: PUSH1 0x40
000010e8: MLOAD
000010e9: DUP1
000010ea: SWAP2
000010eb: SUB
000010ec: SWAP1
000010ed: REVERT
000010ee: JUMPDEST
000010ef: PUSH1 0x00
000010f1: PUSH1 0x02
000010f3: DUP5
000010f4: DUP2
000010f5: SLOAD
000010f6: DUP2
000010f7: LT
000010f8: PUSH2 0x10fd
000010fb: JUMPI
000010fc: INVALID
000010fd: JUMPDEST
000010fe: SWAP1
000010ff: PUSH1 0x00
00001101: MSTORE
00001102: PUSH1 0x20
00001104: PUSH1 0x00
00001106: KECCAK256
00001107: SWAP1
00001108: PUSH1 0x0a
0000110a: MUL
0000110b: ADD
0000110c: SWAP1
0000110d: POP
0000110e: PUSH1 0x00
00001110: PUSH1 0x03
00001112: PUSH1 0x00
00001114: DUP7
00001115: DUP2
00001116: MSTORE
00001117: PUSH1 0x20
00001119: ADD
0000111a: SWAP1
0000111b: DUP2
0000111c: MSTORE
0000111d: PUSH1 0x20
0000111f: ADD
00001120: PUSH1 0x00
00001122: KECCAK256
00001123: PUSH1 0x00
00001125: CALLER
00001126: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000113b: AND
0000113c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001151: AND
00001152: DUP2
00001153: MSTORE
00001154: PUSH1 0x20
00001156: ADD
00001157: SWAP1
00001158: DUP2
00001159: MSTORE
0000115a: PUSH1 0x20
0000115c: ADD
0000115d: PUSH1 0x00
0000115f: KECCAK256
00001160: SWAP1
00001161: POP
00001162: PUSH2 0x116a
00001165: DUP6
00001166: PUSH2 0x0aa5
00001169: JUMP
0000116a: JUMPDEST
0000116b: PUSH1 0x00
0000116d: DUP2
0000116e: PUSH1 0x00
00001170: ADD
00001171: SLOAD
00001172: GT
00001173: ISZERO
00001174: PUSH2 0x11d9
00001177: JUMPI
00001178: PUSH1 0x00
0000117a: PUSH2 0x11c1
0000117d: DUP3
0000117e: PUSH1 0x01
00001180: ADD
00001181: SLOAD
00001182: PUSH2 0x11b3
00001185: PUSH5 0xe8d4a51000
0000118b: PUSH2 0x11a5
0000118e: DUP8
0000118f: PUSH1 0x09
00001191: ADD
00001192: SLOAD
00001193: DUP8
00001194: PUSH1 0x00
00001196: ADD
00001197: SLOAD
00001198: PUSH2 0x187a
0000119b: SWAP1
0000119c: SWAP2
0000119d: SWAP1
0000119e: PUSH4 0xffffffff
000011a3: AND
000011a4: JUMP
000011a5: JUMPDEST
000011a6: PUSH2 0x1900
000011a9: SWAP1
000011aa: SWAP2
000011ab: SWAP1
000011ac: PUSH4 0xffffffff
000011b1: AND
000011b2: JUMP
000011b3: JUMPDEST
000011b4: PUSH2 0x194a
000011b7: SWAP1
000011b8: SWAP2
000011b9: SWAP1
000011ba: PUSH4 0xffffffff
000011bf: AND
000011c0: JUMP
000011c1: JUMPDEST
000011c2: SWAP1
000011c3: POP
000011c4: PUSH1 0x00
000011c6: DUP2
000011c7: GT
000011c8: ISZERO
000011c9: PUSH2 0x11d7
000011cc: JUMPI
000011cd: PUSH2 0x11d6
000011d0: CALLER
000011d1: DUP3
000011d2: PUSH2 0x1994
000011d5: JUMP
000011d6: JUMPDEST
000011d7: JUMPDEST
000011d8: POP
000011d9: JUMPDEST
000011da: PUSH2 0x122a
000011dd: CALLER
000011de: ADDRESS
000011df: DUP7
000011e0: DUP6
000011e1: PUSH1 0x00
000011e3: ADD
000011e4: PUSH1 0x00
000011e6: SWAP1
000011e7: SLOAD
000011e8: SWAP1
000011e9: PUSH2 0x0100
000011ec: EXP
000011ed: SWAP1
000011ee: DIV
000011ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001204: AND
00001205: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000121a: AND
0000121b: PUSH2 0x1f71
0000121e: SWAP1
0000121f: SWAP4
00001220: SWAP3
00001221: SWAP2
00001222: SWAP1
00001223: PUSH4 0xffffffff
00001228: AND
00001229: JUMP
0000122a: JUMPDEST
0000122b: PUSH2 0x1241
0000122e: DUP5
0000122f: DUP3
00001230: PUSH1 0x00
00001232: ADD
00001233: SLOAD
00001234: PUSH2 0x17f2
00001237: SWAP1
00001238: SWAP2
00001239: SWAP1
0000123a: PUSH4 0xffffffff
0000123f: AND
00001240: JUMP
00001241: JUMPDEST
00001242: DUP2
00001243: PUSH1 0x00
00001245: ADD
00001246: DUP2
00001247: SWAP1
00001248: SSTORE
00001249: POP
0000124a: PUSH2 0x127b
0000124d: PUSH5 0xe8d4a51000
00001253: PUSH2 0x126d
00001256: DUP5
00001257: PUSH1 0x09
00001259: ADD
0000125a: SLOAD
0000125b: DUP5
0000125c: PUSH1 0x00
0000125e: ADD
0000125f: SLOAD
00001260: PUSH2 0x187a
00001263: SWAP1
00001264: SWAP2
00001265: SWAP1
00001266: PUSH4 0xffffffff
0000126b: AND
0000126c: JUMP
0000126d: JUMPDEST
0000126e: PUSH2 0x1900
00001271: SWAP1
00001272: SWAP2
00001273: SWAP1
00001274: PUSH4 0xffffffff
00001279: AND
0000127a: JUMP
0000127b: JUMPDEST
0000127c: DUP2
0000127d: PUSH1 0x01
0000127f: ADD
00001280: DUP2
00001281: SWAP1
00001282: SSTORE
00001283: POP
00001284: DUP5
00001285: CALLER
00001286: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000129b: AND
0000129c: PUSH32 0x90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15
000012bd: DUP7
000012be: PUSH1 0x40
000012c0: MLOAD
000012c1: DUP1
000012c2: DUP3
000012c3: DUP2
000012c4: MSTORE
000012c5: PUSH1 0x20
000012c7: ADD
000012c8: SWAP2
000012c9: POP
000012ca: POP
000012cb: PUSH1 0x40
000012cd: MLOAD
000012ce: DUP1
000012cf: SWAP2
000012d0: SUB
000012d1: SWAP1
000012d2: LOG3
000012d3: POP
000012d4: POP
000012d5: POP
000012d6: POP
000012d7: POP
000012d8: JUMP
000012d9: JUMPDEST
000012da: PUSH1 0x00
000012dc: DUP3
000012dd: PUSH1 0x00
000012df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012f4: AND
000012f5: PUSH1 0x02
000012f7: DUP3
000012f8: DUP2
000012f9: SLOAD
000012fa: DUP2
000012fb: LT
000012fc: PUSH2 0x1301
000012ff: JUMPI
00001300: INVALID
00001301: JUMPDEST
00001302: SWAP1
00001303: PUSH1 0x00
00001305: MSTORE
00001306: PUSH1 0x20
00001308: PUSH1 0x00
0000130a: KECCAK256
0000130b: SWAP1
0000130c: PUSH1 0x0a
0000130e: MUL
0000130f: ADD
00001310: PUSH1 0x00
00001312: ADD
00001313: PUSH1 0x00
00001315: SWAP1
00001316: SLOAD
00001317: SWAP1
00001318: PUSH2 0x0100
0000131b: EXP
0000131c: SWAP1
0000131d: DIV
0000131e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001333: AND
00001334: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001349: AND
0000134a: EQ
0000134b: ISZERO
0000134c: PUSH2 0x13bd
0000134f: JUMPI
00001350: PUSH1 0x40
00001352: MLOAD
00001353: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001374: DUP2
00001375: MSTORE
00001376: PUSH1 0x04
00001378: ADD
00001379: DUP1
0000137a: DUP1
0000137b: PUSH1 0x20
0000137d: ADD
0000137e: DUP3
0000137f: DUP2
00001380: SUB
00001381: DUP3
00001382: MSTORE
00001383: PUSH1 0x0e
00001385: DUP2
00001386: MSTORE
00001387: PUSH1 0x20
00001389: ADD
0000138a: DUP1
0000138b: PUSH32 0x706f6f6c206e6f74206578697374000000000000000000000000000000000000
000013ac: DUP2
000013ad: MSTORE
000013ae: POP
000013af: PUSH1 0x20
000013b1: ADD
000013b2: SWAP2
000013b3: POP
000013b4: POP
000013b5: PUSH1 0x40
000013b7: MLOAD
000013b8: DUP1
000013b9: SWAP2
000013ba: SUB
000013bb: SWAP1
000013bc: REVERT
000013bd: JUMPDEST
000013be: PUSH1 0x00
000013c0: PUSH1 0x02
000013c2: DUP6
000013c3: DUP2
000013c4: SLOAD
000013c5: DUP2
000013c6: LT
000013c7: PUSH2 0x13cc
000013ca: JUMPI
000013cb: INVALID
000013cc: JUMPDEST
000013cd: SWAP1
000013ce: PUSH1 0x00
000013d0: MSTORE
000013d1: PUSH1 0x20
000013d3: PUSH1 0x00
000013d5: KECCAK256
000013d6: SWAP1
000013d7: PUSH1 0x0a
000013d9: MUL
000013da: ADD
000013db: SWAP1
000013dc: POP
000013dd: PUSH1 0x00
000013df: PUSH1 0x03
000013e1: PUSH1 0x00
000013e3: DUP8
000013e4: DUP2
000013e5: MSTORE
000013e6: PUSH1 0x20
000013e8: ADD
000013e9: SWAP1
000013ea: DUP2
000013eb: MSTORE
000013ec: PUSH1 0x20
000013ee: ADD
000013ef: PUSH1 0x00
000013f1: KECCAK256
000013f2: PUSH1 0x00
000013f4: DUP7
000013f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000140a: AND
0000140b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001420: AND
00001421: DUP2
00001422: MSTORE
00001423: PUSH1 0x20
00001425: ADD
00001426: SWAP1
00001427: DUP2
00001428: MSTORE
00001429: PUSH1 0x20
0000142b: ADD
0000142c: PUSH1 0x00
0000142e: KECCAK256
0000142f: SWAP1
00001430: POP
00001431: PUSH1 0x00
00001433: DUP3
00001434: PUSH1 0x09
00001436: ADD
00001437: SLOAD
00001438: SWAP1
00001439: POP
0000143a: PUSH1 0x00
0000143c: DUP4
0000143d: PUSH1 0x00
0000143f: ADD
00001440: PUSH1 0x00
00001442: SWAP1
00001443: SLOAD
00001444: SWAP1
00001445: PUSH2 0x0100
00001448: EXP
00001449: SWAP1
0000144a: DIV
0000144b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001460: AND
00001461: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001476: AND
00001477: PUSH4 0x70a08231
0000147c: ADDRESS
0000147d: PUSH1 0x40
0000147f: MLOAD
00001480: DUP3
00001481: PUSH4 0xffffffff
00001486: AND
00001487: PUSH1 0xe0
00001489: SHL
0000148a: DUP2
0000148b: MSTORE
0000148c: PUSH1 0x04
0000148e: ADD
0000148f: DUP1
00001490: DUP3
00001491: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014a6: AND
000014a7: DUP2
000014a8: MSTORE
000014a9: PUSH1 0x20
000014ab: ADD
000014ac: SWAP2
000014ad: POP
000014ae: POP
000014af: PUSH1 0x20
000014b1: PUSH1 0x40
000014b3: MLOAD
000014b4: DUP1
000014b5: DUP4
000014b6: SUB
000014b7: DUP2
000014b8: DUP7
000014b9: DUP1
000014ba: EXTCODESIZE
000014bb: ISZERO
000014bc: DUP1
000014bd: ISZERO
000014be: PUSH2 0x14c6
000014c1: JUMPI
000014c2: PUSH1 0x00
000014c4: DUP1
000014c5: REVERT
000014c6: JUMPDEST
000014c7: POP
000014c8: GAS
000014c9: STATICCALL
000014ca: ISZERO
000014cb: DUP1
000014cc: ISZERO
000014cd: PUSH2 0x14da
000014d0: JUMPI
000014d1: RETURNDATASIZE
000014d2: PUSH1 0x00
000014d4: DUP1
000014d5: RETURNDATACOPY
000014d6: RETURNDATASIZE
000014d7: PUSH1 0x00
000014d9: REVERT
000014da: JUMPDEST
000014db: POP
000014dc: POP
000014dd: POP
000014de: POP
000014df: PUSH1 0x40
000014e1: MLOAD
000014e2: RETURNDATASIZE
000014e3: PUSH1 0x20
000014e5: DUP2
000014e6: LT
000014e7: ISZERO
000014e8: PUSH2 0x14f0
000014eb: JUMPI
000014ec: PUSH1 0x00
000014ee: DUP1
000014ef: REVERT
000014f0: JUMPDEST
000014f1: DUP2
000014f2: ADD
000014f3: SWAP1
000014f4: DUP1
000014f5: DUP1
000014f6: MLOAD
000014f7: SWAP1
000014f8: PUSH1 0x20
000014fa: ADD
000014fb: SWAP1
000014fc: SWAP3
000014fd: SWAP2
000014fe: SWAP1
000014ff: POP
00001500: POP
00001501: POP
00001502: SWAP1
00001503: POP
00001504: DUP4
00001505: PUSH1 0x08
00001507: ADD
00001508: SLOAD
00001509: NUMBER
0000150a: GT
0000150b: DUP1
0000150c: ISZERO
0000150d: PUSH2 0x1516
00001510: JUMPI
00001511: POP
00001512: PUSH1 0x00
00001514: DUP2
00001515: GT
00001516: JUMPDEST
00001517: ISZERO
00001518: PUSH2 0x1568
0000151b: JUMPI
0000151c: PUSH1 0x00
0000151e: PUSH2 0x1526
00001521: DUP6
00001522: PUSH2 0x1caf
00001525: JUMP
00001526: JUMPDEST
00001527: SWAP1
00001528: POP
00001529: PUSH2 0x1564
0000152c: PUSH2 0x1555
0000152f: DUP4
00001530: PUSH2 0x1547
00001533: PUSH5 0xe8d4a51000
00001539: DUP6
0000153a: PUSH2 0x187a
0000153d: SWAP1
0000153e: SWAP2
0000153f: SWAP1
00001540: PUSH4 0xffffffff
00001545: AND
00001546: JUMP
00001547: JUMPDEST
00001548: PUSH2 0x1900
0000154b: SWAP1
0000154c: SWAP2
0000154d: SWAP1
0000154e: PUSH4 0xffffffff
00001553: AND
00001554: JUMP
00001555: JUMPDEST
00001556: DUP5
00001557: PUSH2 0x17f2
0000155a: SWAP1
0000155b: SWAP2
0000155c: SWAP1
0000155d: PUSH4 0xffffffff
00001562: AND
00001563: JUMP
00001564: JUMPDEST
00001565: SWAP3
00001566: POP
00001567: POP
00001568: JUMPDEST
00001569: PUSH2 0x15ac
0000156c: DUP4
0000156d: PUSH1 0x01
0000156f: ADD
00001570: SLOAD
00001571: PUSH2 0x159e
00001574: PUSH5 0xe8d4a51000
0000157a: PUSH2 0x1590
0000157d: DUP7
0000157e: DUP9
0000157f: PUSH1 0x00
00001581: ADD
00001582: SLOAD
00001583: PUSH2 0x187a
00001586: SWAP1
00001587: SWAP2
00001588: SWAP1
00001589: PUSH4 0xffffffff
0000158e: AND
0000158f: JUMP
00001590: JUMPDEST
00001591: PUSH2 0x1900
00001594: SWAP1
00001595: SWAP2
00001596: SWAP1
00001597: PUSH4 0xffffffff
0000159c: AND
0000159d: JUMP
0000159e: JUMPDEST
0000159f: PUSH2 0x194a
000015a2: SWAP1
000015a3: SWAP2
000015a4: SWAP1
000015a5: PUSH4 0xffffffff
000015aa: AND
000015ab: JUMP
000015ac: JUMPDEST
000015ad: SWAP6
000015ae: POP
000015af: POP
000015b0: POP
000015b1: POP
000015b2: POP
000015b3: POP
000015b4: SWAP3
000015b5: SWAP2
000015b6: POP
000015b7: POP
000015b8: JUMP
000015b9: JUMPDEST
000015ba: PUSH2 0x15c1
000015bd: PUSH2 0x17ea
000015c0: JUMP
000015c1: JUMPDEST
000015c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015d7: AND
000015d8: PUSH1 0x00
000015da: DUP1
000015db: SLOAD
000015dc: SWAP1
000015dd: PUSH2 0x0100
000015e0: EXP
000015e1: SWAP1
000015e2: DIV
000015e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015f8: AND
000015f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000160e: AND
0000160f: EQ
00001610: PUSH2 0x1681
00001613: JUMPI
00001614: PUSH1 0x40
00001616: MLOAD
00001617: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001638: DUP2
00001639: MSTORE
0000163a: PUSH1 0x04
0000163c: ADD
0000163d: DUP1
0000163e: DUP1
0000163f: PUSH1 0x20
00001641: ADD
00001642: DUP3
00001643: DUP2
00001644: SUB
00001645: DUP3
00001646: MSTORE
00001647: PUSH1 0x20
00001649: DUP2
0000164a: MSTORE
0000164b: PUSH1 0x20
0000164d: ADD
0000164e: DUP1
0000164f: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00001670: DUP2
00001671: MSTORE
00001672: POP
00001673: PUSH1 0x20
00001675: ADD
00001676: SWAP2
00001677: POP
00001678: POP
00001679: PUSH1 0x40
0000167b: MLOAD
0000167c: DUP1
0000167d: SWAP2
0000167e: SUB
0000167f: SWAP1
00001680: REVERT
00001681: JUMPDEST
00001682: PUSH1 0x00
00001684: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001699: AND
0000169a: DUP2
0000169b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016b0: AND
000016b1: EQ
000016b2: ISZERO
000016b3: PUSH2 0x1707
000016b6: JUMPI
000016b7: PUSH1 0x40
000016b9: MLOAD
000016ba: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000016db: DUP2
000016dc: MSTORE
000016dd: PUSH1 0x04
000016df: ADD
000016e0: DUP1
000016e1: DUP1
000016e2: PUSH1 0x20
000016e4: ADD
000016e5: DUP3
000016e6: DUP2
000016e7: SUB
000016e8: DUP3
000016e9: MSTORE
000016ea: PUSH1 0x26
000016ec: DUP2
000016ed: MSTORE
000016ee: PUSH1 0x20
000016f0: ADD
000016f1: DUP1
000016f2: PUSH2 0x2511
000016f5: PUSH1 0x26
000016f7: SWAP2
000016f8: CODECOPY
000016f9: PUSH1 0x40
000016fb: ADD
000016fc: SWAP2
000016fd: POP
000016fe: POP
000016ff: PUSH1 0x40
00001701: MLOAD
00001702: DUP1
00001703: SWAP2
00001704: SUB
00001705: SWAP1
00001706: REVERT
00001707: JUMPDEST
00001708: DUP1
00001709: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000171e: AND
0000171f: PUSH1 0x00
00001721: DUP1
00001722: SLOAD
00001723: SWAP1
00001724: PUSH2 0x0100
00001727: EXP
00001728: SWAP1
00001729: DIV
0000172a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000173f: AND
00001740: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001755: AND
00001756: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001777: PUSH1 0x40
00001779: MLOAD
0000177a: PUSH1 0x40
0000177c: MLOAD
0000177d: DUP1
0000177e: SWAP2
0000177f: SUB
00001780: SWAP1
00001781: LOG3
00001782: DUP1
00001783: PUSH1 0x00
00001785: DUP1
00001786: PUSH2 0x0100
00001789: EXP
0000178a: DUP2
0000178b: SLOAD
0000178c: DUP2
0000178d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017a2: MUL
000017a3: NOT
000017a4: AND
000017a5: SWAP1
000017a6: DUP4
000017a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017bc: AND
000017bd: MUL
000017be: OR
000017bf: SWAP1
000017c0: SSTORE
000017c1: POP
000017c2: POP
000017c3: JUMP
000017c4: JUMPDEST
000017c5: PUSH1 0x01
000017c7: PUSH1 0x00
000017c9: SWAP1
000017ca: SLOAD
000017cb: SWAP1
000017cc: PUSH2 0x0100
000017cf: EXP
000017d0: SWAP1
000017d1: DIV
000017d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017e7: AND
000017e8: DUP2
000017e9: JUMP
000017ea: JUMPDEST
000017eb: PUSH1 0x00
000017ed: CALLER
000017ee: SWAP1
000017ef: POP
000017f0: SWAP1
000017f1: JUMP
000017f2: JUMPDEST
000017f3: PUSH1 0x00
000017f5: DUP1
000017f6: DUP3
000017f7: DUP5
000017f8: ADD
000017f9: SWAP1
000017fa: POP
000017fb: DUP4
000017fc: DUP2
000017fd: LT
000017fe: ISZERO
000017ff: PUSH2 0x1870
00001802: JUMPI
00001803: PUSH1 0x40
00001805: MLOAD
00001806: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001827: DUP2
00001828: MSTORE
00001829: PUSH1 0x04
0000182b: ADD
0000182c: DUP1
0000182d: DUP1
0000182e: PUSH1 0x20
00001830: ADD
00001831: DUP3
00001832: DUP2
00001833: SUB
00001834: DUP3
00001835: MSTORE
00001836: PUSH1 0x1b
00001838: DUP2
00001839: MSTORE
0000183a: PUSH1 0x20
0000183c: ADD
0000183d: DUP1
0000183e: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
0000185f: DUP2
00001860: MSTORE
00001861: POP
00001862: PUSH1 0x20
00001864: ADD
00001865: SWAP2
00001866: POP
00001867: POP
00001868: PUSH1 0x40
0000186a: MLOAD
0000186b: DUP1
0000186c: SWAP2
0000186d: SUB
0000186e: SWAP1
0000186f: REVERT
00001870: JUMPDEST
00001871: DUP1
00001872: SWAP2
00001873: POP
00001874: POP
00001875: SWAP3
00001876: SWAP2
00001877: POP
00001878: POP
00001879: JUMP
0000187a: JUMPDEST
0000187b: PUSH1 0x00
0000187d: DUP1
0000187e: DUP4
0000187f: EQ
00001880: ISZERO
00001881: PUSH2 0x188d
00001884: JUMPI
00001885: PUSH1 0x00
00001887: SWAP1
00001888: POP
00001889: PUSH2 0x18fa
0000188c: JUMP
0000188d: JUMPDEST
0000188e: PUSH1 0x00
00001890: DUP3
00001891: DUP5
00001892: MUL
00001893: SWAP1
00001894: POP
00001895: DUP3
00001896: DUP5
00001897: DUP3
00001898: DUP2
00001899: PUSH2 0x189e
0000189c: JUMPI
0000189d: INVALID
0000189e: JUMPDEST
0000189f: DIV
000018a0: EQ
000018a1: PUSH2 0x18f5
000018a4: JUMPI
000018a5: PUSH1 0x40
000018a7: MLOAD
000018a8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000018c9: DUP2
000018ca: MSTORE
000018cb: PUSH1 0x04
000018cd: ADD
000018ce: DUP1
000018cf: DUP1
000018d0: PUSH1 0x20
000018d2: ADD
000018d3: DUP3
000018d4: DUP2
000018d5: SUB
000018d6: DUP3
000018d7: MSTORE
000018d8: PUSH1 0x21
000018da: DUP2
000018db: MSTORE
000018dc: PUSH1 0x20
000018de: ADD
000018df: DUP1
000018e0: PUSH2 0x2537
000018e3: PUSH1 0x21
000018e5: SWAP2
000018e6: CODECOPY
000018e7: PUSH1 0x40
000018e9: ADD
000018ea: SWAP2
000018eb: POP
000018ec: POP
000018ed: PUSH1 0x40
000018ef: MLOAD
000018f0: DUP1
000018f1: SWAP2
000018f2: SUB
000018f3: SWAP1
000018f4: REVERT
000018f5: JUMPDEST
000018f6: DUP1
000018f7: SWAP2
000018f8: POP
000018f9: POP
000018fa: JUMPDEST
000018fb: SWAP3
000018fc: SWAP2
000018fd: POP
000018fe: POP
000018ff: JUMP
00001900: JUMPDEST
00001901: PUSH1 0x00
00001903: PUSH2 0x1942
00001906: DUP4
00001907: DUP4
00001908: PUSH1 0x40
0000190a: MLOAD
0000190b: DUP1
0000190c: PUSH1 0x40
0000190e: ADD
0000190f: PUSH1 0x40
00001911: MSTORE
00001912: DUP1
00001913: PUSH1 0x1a
00001915: DUP2
00001916: MSTORE
00001917: PUSH1 0x20
00001919: ADD
0000191a: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000
0000193b: DUP2
0000193c: MSTORE
0000193d: POP
0000193e: PUSH2 0x2032
00001941: JUMP
00001942: JUMPDEST
00001943: SWAP1
00001944: POP
00001945: SWAP3
00001946: SWAP2
00001947: POP
00001948: POP
00001949: JUMP
0000194a: JUMPDEST
0000194b: PUSH1 0x00
0000194d: PUSH2 0x198c
00001950: DUP4
00001951: DUP4
00001952: PUSH1 0x40
00001954: MLOAD
00001955: DUP1
00001956: PUSH1 0x40
00001958: ADD
00001959: PUSH1 0x40
0000195b: MSTORE
0000195c: DUP1
0000195d: PUSH1 0x1e
0000195f: DUP2
00001960: MSTORE
00001961: PUSH1 0x20
00001963: ADD
00001964: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
00001985: DUP2
00001986: MSTORE
00001987: POP
00001988: PUSH2 0x20f8
0000198b: JUMP
0000198c: JUMPDEST
0000198d: SWAP1
0000198e: POP
0000198f: SWAP3
00001990: SWAP2
00001991: POP
00001992: POP
00001993: JUMP
00001994: JUMPDEST
00001995: PUSH1 0x00
00001997: PUSH1 0x01
00001999: PUSH1 0x00
0000199b: SWAP1
0000199c: SLOAD
0000199d: SWAP1
0000199e: PUSH2 0x0100
000019a1: EXP
000019a2: SWAP1
000019a3: DIV
000019a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019b9: AND
000019ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019cf: AND
000019d0: PUSH4 0x70a08231
000019d5: ADDRESS
000019d6: PUSH1 0x40
000019d8: MLOAD
000019d9: DUP3
000019da: PUSH4 0xffffffff
000019df: AND
000019e0: PUSH1 0xe0
000019e2: SHL
000019e3: DUP2
000019e4: MSTORE
000019e5: PUSH1 0x04
000019e7: ADD
000019e8: DUP1
000019e9: DUP3
000019ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019ff: AND
00001a00: DUP2
00001a01: MSTORE
00001a02: PUSH1 0x20
00001a04: ADD
00001a05: SWAP2
00001a06: POP
00001a07: POP
00001a08: PUSH1 0x20
00001a0a: PUSH1 0x40
00001a0c: MLOAD
00001a0d: DUP1
00001a0e: DUP4
00001a0f: SUB
00001a10: DUP2
00001a11: DUP7
00001a12: DUP1
00001a13: EXTCODESIZE
00001a14: ISZERO
00001a15: DUP1
00001a16: ISZERO
00001a17: PUSH2 0x1a1f
00001a1a: JUMPI
00001a1b: PUSH1 0x00
00001a1d: DUP1
00001a1e: REVERT
00001a1f: JUMPDEST
00001a20: POP
00001a21: GAS
00001a22: STATICCALL
00001a23: ISZERO
00001a24: DUP1
00001a25: ISZERO
00001a26: PUSH2 0x1a33
00001a29: JUMPI
00001a2a: RETURNDATASIZE
00001a2b: PUSH1 0x00
00001a2d: DUP1
00001a2e: RETURNDATACOPY
00001a2f: RETURNDATASIZE
00001a30: PUSH1 0x00
00001a32: REVERT
00001a33: JUMPDEST
00001a34: POP
00001a35: POP
00001a36: POP
00001a37: POP
00001a38: PUSH1 0x40
00001a3a: MLOAD
00001a3b: RETURNDATASIZE
00001a3c: PUSH1 0x20
00001a3e: DUP2
00001a3f: LT
00001a40: ISZERO
00001a41: PUSH2 0x1a49
00001a44: JUMPI
00001a45: PUSH1 0x00
00001a47: DUP1
00001a48: REVERT
00001a49: JUMPDEST
00001a4a: DUP2
00001a4b: ADD
00001a4c: SWAP1
00001a4d: DUP1
00001a4e: DUP1
00001a4f: MLOAD
00001a50: SWAP1
00001a51: PUSH1 0x20
00001a53: ADD
00001a54: SWAP1
00001a55: SWAP3
00001a56: SWAP2
00001a57: SWAP1
00001a58: POP
00001a59: POP
00001a5a: POP
00001a5b: SWAP1
00001a5c: POP
00001a5d: DUP1
00001a5e: DUP3
00001a5f: GT
00001a60: ISZERO
00001a61: PUSH2 0x1b38
00001a64: JUMPI
00001a65: PUSH1 0x01
00001a67: PUSH1 0x00
00001a69: SWAP1
00001a6a: SLOAD
00001a6b: SWAP1
00001a6c: PUSH2 0x0100
00001a6f: EXP
00001a70: SWAP1
00001a71: DIV
00001a72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a87: AND
00001a88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a9d: AND
00001a9e: PUSH4 0xa9059cbb
00001aa3: DUP5
00001aa4: DUP4
00001aa5: PUSH1 0x40
00001aa7: MLOAD
00001aa8: DUP4
00001aa9: PUSH4 0xffffffff
00001aae: AND
00001aaf: PUSH1 0xe0
00001ab1: SHL
00001ab2: DUP2
00001ab3: MSTORE
00001ab4: PUSH1 0x04
00001ab6: ADD
00001ab7: DUP1
00001ab8: DUP4
00001ab9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ace: AND
00001acf: DUP2
00001ad0: MSTORE
00001ad1: PUSH1 0x20
00001ad3: ADD
00001ad4: DUP3
00001ad5: DUP2
00001ad6: MSTORE
00001ad7: PUSH1 0x20
00001ad9: ADD
00001ada: SWAP3
00001adb: POP
00001adc: POP
00001add: POP
00001ade: PUSH1 0x20
00001ae0: PUSH1 0x40
00001ae2: MLOAD
00001ae3: DUP1
00001ae4: DUP4
00001ae5: SUB
00001ae6: DUP2
00001ae7: PUSH1 0x00
00001ae9: DUP8
00001aea: DUP1
00001aeb: EXTCODESIZE
00001aec: ISZERO
00001aed: DUP1
00001aee: ISZERO
00001aef: PUSH2 0x1af7
00001af2: JUMPI
00001af3: PUSH1 0x00
00001af5: DUP1
00001af6: REVERT
00001af7: JUMPDEST
00001af8: POP
00001af9: GAS
00001afa: CALL
00001afb: ISZERO
00001afc: DUP1
00001afd: ISZERO
00001afe: PUSH2 0x1b0b
00001b01: JUMPI
00001b02: RETURNDATASIZE
00001b03: PUSH1 0x00
00001b05: DUP1
00001b06: RETURNDATACOPY
00001b07: RETURNDATASIZE
00001b08: PUSH1 0x00
00001b0a: REVERT
00001b0b: JUMPDEST
00001b0c: POP
00001b0d: POP
00001b0e: POP
00001b0f: POP
00001b10: PUSH1 0x40
00001b12: MLOAD
00001b13: RETURNDATASIZE
00001b14: PUSH1 0x20
00001b16: DUP2
00001b17: LT
00001b18: ISZERO
00001b19: PUSH2 0x1b21
00001b1c: JUMPI
00001b1d: PUSH1 0x00
00001b1f: DUP1
00001b20: REVERT
00001b21: JUMPDEST
00001b22: DUP2
00001b23: ADD
00001b24: SWAP1
00001b25: DUP1
00001b26: DUP1
00001b27: MLOAD
00001b28: SWAP1
00001b29: PUSH1 0x20
00001b2b: ADD
00001b2c: SWAP1
00001b2d: SWAP3
00001b2e: SWAP2
00001b2f: SWAP1
00001b30: POP
00001b31: POP
00001b32: POP
00001b33: POP
00001b34: PUSH2 0x1c08
00001b37: JUMP
00001b38: JUMPDEST
00001b39: PUSH1 0x01
00001b3b: PUSH1 0x00
00001b3d: SWAP1
00001b3e: SLOAD
00001b3f: SWAP1
00001b40: PUSH2 0x0100
00001b43: EXP
00001b44: SWAP1
00001b45: DIV
00001b46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b5b: AND
00001b5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b71: AND
00001b72: PUSH4 0xa9059cbb
00001b77: DUP5
00001b78: DUP5
00001b79: PUSH1 0x40
00001b7b: MLOAD
00001b7c: DUP4
00001b7d: PUSH4 0xffffffff
00001b82: AND
00001b83: PUSH1 0xe0
00001b85: SHL
00001b86: DUP2
00001b87: MSTORE
00001b88: PUSH1 0x04
00001b8a: ADD
00001b8b: DUP1
00001b8c: DUP4
00001b8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ba2: AND
00001ba3: DUP2
00001ba4: MSTORE
00001ba5: PUSH1 0x20
00001ba7: ADD
00001ba8: DUP3
00001ba9: DUP2
00001baa: MSTORE
00001bab: PUSH1 0x20
00001bad: ADD
00001bae: SWAP3
00001baf: POP
00001bb0: POP
00001bb1: POP
00001bb2: PUSH1 0x20
00001bb4: PUSH1 0x40
00001bb6: MLOAD
00001bb7: DUP1
00001bb8: DUP4
00001bb9: SUB
00001bba: DUP2
00001bbb: PUSH1 0x00
00001bbd: DUP8
00001bbe: DUP1
00001bbf: EXTCODESIZE
00001bc0: ISZERO
00001bc1: DUP1
00001bc2: ISZERO
00001bc3: PUSH2 0x1bcb
00001bc6: JUMPI
00001bc7: PUSH1 0x00
00001bc9: DUP1
00001bca: REVERT
00001bcb: JUMPDEST
00001bcc: POP
00001bcd: GAS
00001bce: CALL
00001bcf: ISZERO
00001bd0: DUP1
00001bd1: ISZERO
00001bd2: PUSH2 0x1bdf
00001bd5: JUMPI
00001bd6: RETURNDATASIZE
00001bd7: PUSH1 0x00
00001bd9: DUP1
00001bda: RETURNDATACOPY
00001bdb: RETURNDATASIZE
00001bdc: PUSH1 0x00
00001bde: REVERT
00001bdf: JUMPDEST
00001be0: POP
00001be1: POP
00001be2: POP
00001be3: POP
00001be4: PUSH1 0x40
00001be6: MLOAD
00001be7: RETURNDATASIZE
00001be8: PUSH1 0x20
00001bea: DUP2
00001beb: LT
00001bec: ISZERO
00001bed: PUSH2 0x1bf5
00001bf0: JUMPI
00001bf1: PUSH1 0x00
00001bf3: DUP1
00001bf4: REVERT
00001bf5: JUMPDEST
00001bf6: DUP2
00001bf7: ADD
00001bf8: SWAP1
00001bf9: DUP1
00001bfa: DUP1
00001bfb: MLOAD
00001bfc: SWAP1
00001bfd: PUSH1 0x20
00001bff: ADD
00001c00: SWAP1
00001c01: SWAP3
00001c02: SWAP2
00001c03: SWAP1
00001c04: POP
00001c05: POP
00001c06: POP
00001c07: POP
00001c08: JUMPDEST
00001c09: POP
00001c0a: POP
00001c0b: POP
00001c0c: JUMP
00001c0d: JUMPDEST
00001c0e: PUSH2 0x1caa
00001c11: DUP4
00001c12: PUSH4 0xa9059cbb
00001c17: PUSH1 0xe0
00001c19: SHL
00001c1a: DUP5
00001c1b: DUP5
00001c1c: PUSH1 0x40
00001c1e: MLOAD
00001c1f: PUSH1 0x24
00001c21: ADD
00001c22: DUP1
00001c23: DUP4
00001c24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c39: AND
00001c3a: DUP2
00001c3b: MSTORE
00001c3c: PUSH1 0x20
00001c3e: ADD
00001c3f: DUP3
00001c40: DUP2
00001c41: MSTORE
00001c42: PUSH1 0x20
00001c44: ADD
00001c45: SWAP3
00001c46: POP
00001c47: POP
00001c48: POP
00001c49: PUSH1 0x40
00001c4b: MLOAD
00001c4c: PUSH1 0x20
00001c4e: DUP2
00001c4f: DUP4
00001c50: SUB
00001c51: SUB
00001c52: DUP2
00001c53: MSTORE
00001c54: SWAP1
00001c55: PUSH1 0x40
00001c57: MSTORE
00001c58: SWAP1
00001c59: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001c76: NOT
00001c77: AND
00001c78: PUSH1 0x20
00001c7a: DUP3
00001c7b: ADD
00001c7c: DUP1
00001c7d: MLOAD
00001c7e: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001c9b: DUP4
00001c9c: DUP2
00001c9d: DUP4
00001c9e: AND
00001c9f: OR
00001ca0: DUP4
00001ca1: MSTORE
00001ca2: POP
00001ca3: POP
00001ca4: POP
00001ca5: POP
00001ca6: PUSH2 0x21b8
00001ca9: JUMP
00001caa: JUMPDEST
00001cab: POP
00001cac: POP
00001cad: POP
00001cae: JUMP
00001caf: JUMPDEST
00001cb0: PUSH1 0x00
00001cb2: DUP2
00001cb3: PUSH1 0x08
00001cb5: ADD
00001cb6: SLOAD
00001cb7: NUMBER
00001cb8: GT
00001cb9: PUSH2 0x1cc5
00001cbc: JUMPI
00001cbd: PUSH1 0x00
00001cbf: SWAP1
00001cc0: POP
00001cc1: PUSH2 0x1f6c
00001cc4: JUMP
00001cc5: JUMPDEST
00001cc6: PUSH1 0x00
00001cc8: DUP3
00001cc9: PUSH1 0x08
00001ccb: ADD
00001ccc: SLOAD
00001ccd: SWAP1
00001cce: POP
00001ccf: PUSH1 0x00
00001cd1: PUSH2 0x1ce8
00001cd4: PUSH1 0x01
00001cd6: DUP6
00001cd7: PUSH1 0x02
00001cd9: ADD
00001cda: SLOAD
00001cdb: PUSH2 0x17f2
00001cde: SWAP1
00001cdf: SWAP2
00001ce0: SWAP1
00001ce1: PUSH4 0xffffffff
00001ce6: AND
00001ce7: JUMP
00001ce8: JUMPDEST
00001ce9: NUMBER
00001cea: LT
00001ceb: PUSH2 0x1d0b
00001cee: JUMPI
00001cef: PUSH2 0x1d06
00001cf2: PUSH1 0x01
00001cf4: DUP6
00001cf5: PUSH1 0x02
00001cf7: ADD
00001cf8: SLOAD
00001cf9: PUSH2 0x17f2
00001cfc: SWAP1
00001cfd: SWAP2
00001cfe: SWAP1
00001cff: PUSH4 0xffffffff
00001d04: AND
00001d05: JUMP
00001d06: JUMPDEST
00001d07: PUSH2 0x1d0d
00001d0a: JUMP
00001d0b: JUMPDEST
00001d0c: NUMBER
00001d0d: JUMPDEST
00001d0e: SWAP1
00001d0f: POP
00001d10: PUSH1 0x00
00001d12: PUSH2 0x1d24
00001d15: DUP4
00001d16: DUP4
00001d17: PUSH2 0x194a
00001d1a: SWAP1
00001d1b: SWAP2
00001d1c: SWAP1
00001d1d: PUSH4 0xffffffff
00001d22: AND
00001d23: JUMP
00001d24: JUMPDEST
00001d25: SWAP1
00001d26: POP
00001d27: PUSH1 0x00
00001d29: DUP6
00001d2a: PUSH1 0x04
00001d2c: ADD
00001d2d: SLOAD
00001d2e: EQ
00001d2f: ISZERO
00001d30: PUSH2 0x1d54
00001d33: JUMPI
00001d34: PUSH2 0x1d4a
00001d37: DUP6
00001d38: PUSH1 0x03
00001d3a: ADD
00001d3b: SLOAD
00001d3c: DUP3
00001d3d: PUSH2 0x187a
00001d40: SWAP1
00001d41: SWAP2
00001d42: SWAP1
00001d43: PUSH4 0xffffffff
00001d48: AND
00001d49: JUMP
00001d4a: JUMPDEST
00001d4b: SWAP4
00001d4c: POP
00001d4d: POP
00001d4e: POP
00001d4f: POP
00001d50: PUSH2 0x1f6c
00001d53: JUMP
00001d54: JUMPDEST
00001d55: DUP5
00001d56: PUSH1 0x05
00001d58: ADD
00001d59: SLOAD
00001d5a: DUP4
00001d5b: LT
00001d5c: ISZERO
00001d5d: PUSH2 0x1e0c
00001d60: JUMPI
00001d61: DUP5
00001d62: PUSH1 0x05
00001d64: ADD
00001d65: SLOAD
00001d66: DUP3
00001d67: GT
00001d68: PUSH2 0x1dc6
00001d6b: JUMPI
00001d6c: PUSH2 0x1da3
00001d6f: PUSH2 0x1d94
00001d72: PUSH1 0x07
00001d74: PUSH2 0x1d86
00001d77: DUP7
00001d78: DUP7
00001d79: PUSH2 0x194a
00001d7c: SWAP1
00001d7d: SWAP2
00001d7e: SWAP1
00001d7f: PUSH4 0xffffffff
00001d84: AND
00001d85: JUMP
00001d86: JUMPDEST
00001d87: PUSH2 0x187a
00001d8a: SWAP1
00001d8b: SWAP2
00001d8c: SWAP1
00001d8d: PUSH4 0xffffffff
00001d92: AND
00001d93: JUMP
00001d94: JUMPDEST
00001d95: DUP3
00001d96: PUSH2 0x17f2
00001d99: SWAP1
00001d9a: SWAP2
00001d9b: SWAP1
00001d9c: PUSH4 0xffffffff
00001da1: AND
00001da2: JUMP
00001da3: JUMPDEST
00001da4: SWAP1
00001da5: POP
00001da6: PUSH2 0x1dbc
00001da9: DUP6
00001daa: PUSH1 0x03
00001dac: ADD
00001dad: SLOAD
00001dae: DUP3
00001daf: PUSH2 0x187a
00001db2: SWAP1
00001db3: SWAP2
00001db4: SWAP1
00001db5: PUSH4 0xffffffff
00001dba: AND
00001dbb: JUMP
00001dbc: JUMPDEST
00001dbd: SWAP4
00001dbe: POP
00001dbf: POP
00001dc0: POP
00001dc1: POP
00001dc2: PUSH2 0x1f6c
00001dc5: JUMP
00001dc6: JUMPDEST
00001dc7: PUSH2 0x1e02
00001dca: PUSH2 0x1df3
00001dcd: PUSH1 0x07
00001dcf: PUSH2 0x1de5
00001dd2: DUP7
00001dd3: DUP10
00001dd4: PUSH1 0x05
00001dd6: ADD
00001dd7: SLOAD
00001dd8: PUSH2 0x194a
00001ddb: SWAP1
00001ddc: SWAP2
00001ddd: SWAP1
00001dde: PUSH4 0xffffffff
00001de3: AND
00001de4: JUMP
00001de5: JUMPDEST
00001de6: PUSH2 0x187a
00001de9: SWAP1
00001dea: SWAP2
00001deb: SWAP1
00001dec: PUSH4 0xffffffff
00001df1: AND
00001df2: JUMP
00001df3: JUMPDEST
00001df4: DUP3
00001df5: PUSH2 0x17f2
00001df8: SWAP1
00001df9: SWAP2
00001dfa: SWAP1
00001dfb: PUSH4 0xffffffff
00001e00: AND
00001e01: JUMP
00001e02: JUMPDEST
00001e03: SWAP1
00001e04: POP
00001e05: DUP5
00001e06: PUSH1 0x05
00001e08: ADD
00001e09: SLOAD
00001e0a: SWAP3
00001e0b: POP
00001e0c: JUMPDEST
00001e0d: DUP5
00001e0e: PUSH1 0x06
00001e10: ADD
00001e11: SLOAD
00001e12: DUP4
00001e13: LT
00001e14: ISZERO
00001e15: PUSH2 0x1ec4
00001e18: JUMPI
00001e19: DUP5
00001e1a: PUSH1 0x06
00001e1c: ADD
00001e1d: SLOAD
00001e1e: DUP3
00001e1f: GT
00001e20: PUSH2 0x1e7e
00001e23: JUMPI
00001e24: PUSH2 0x1e5b
00001e27: PUSH2 0x1e4c
00001e2a: PUSH1 0x03
00001e2c: PUSH2 0x1e3e
00001e2f: DUP7
00001e30: DUP7
00001e31: PUSH2 0x194a
00001e34: SWAP1
00001e35: SWAP2
00001e36: SWAP1
00001e37: PUSH4 0xffffffff
00001e3c: AND
00001e3d: JUMP
00001e3e: JUMPDEST
00001e3f: PUSH2 0x187a
00001e42: SWAP1
00001e43: SWAP2
00001e44: SWAP1
00001e45: PUSH4 0xffffffff
00001e4a: AND
00001e4b: JUMP
00001e4c: JUMPDEST
00001e4d: DUP3
00001e4e: PUSH2 0x17f2
00001e51: SWAP1
00001e52: SWAP2
00001e53: SWAP1
00001e54: PUSH4 0xffffffff
00001e59: AND
00001e5a: JUMP
00001e5b: JUMPDEST
00001e5c: SWAP1
00001e5d: POP
00001e5e: PUSH2 0x1e74
00001e61: DUP6
00001e62: PUSH1 0x03
00001e64: ADD
00001e65: SLOAD
00001e66: DUP3
00001e67: PUSH2 0x187a
00001e6a: SWAP1
00001e6b: SWAP2
00001e6c: SWAP1
00001e6d: PUSH4 0xffffffff
00001e72: AND
00001e73: JUMP
00001e74: JUMPDEST
00001e75: SWAP4
00001e76: POP
00001e77: POP
00001e78: POP
00001e79: POP
00001e7a: PUSH2 0x1f6c
00001e7d: JUMP
00001e7e: JUMPDEST
00001e7f: PUSH2 0x1eba
00001e82: PUSH2 0x1eab
00001e85: PUSH1 0x03
00001e87: PUSH2 0x1e9d
00001e8a: DUP7
00001e8b: DUP10
00001e8c: PUSH1 0x06
00001e8e: ADD
00001e8f: SLOAD
00001e90: PUSH2 0x194a
00001e93: SWAP1
00001e94: SWAP2
00001e95: SWAP1
00001e96: PUSH4 0xffffffff
00001e9b: AND
00001e9c: JUMP
00001e9d: JUMPDEST
00001e9e: PUSH2 0x187a
00001ea1: SWAP1
00001ea2: SWAP2
00001ea3: SWAP1
00001ea4: PUSH4 0xffffffff
00001ea9: AND
00001eaa: JUMP
00001eab: JUMPDEST
00001eac: DUP3
00001ead: PUSH2 0x17f2
00001eb0: SWAP1
00001eb1: SWAP2
00001eb2: SWAP1
00001eb3: PUSH4 0xffffffff
00001eb8: AND
00001eb9: JUMP
00001eba: JUMPDEST
00001ebb: SWAP1
00001ebc: POP
00001ebd: DUP5
00001ebe: PUSH1 0x06
00001ec0: ADD
00001ec1: SLOAD
00001ec2: SWAP3
00001ec3: POP
00001ec4: JUMPDEST
00001ec5: DUP5
00001ec6: PUSH1 0x07
00001ec8: ADD
00001ec9: SLOAD
00001eca: DUP4
00001ecb: LT
00001ecc: ISZERO
00001ecd: PUSH2 0x1f4f
00001ed0: JUMPI
00001ed1: DUP5
00001ed2: PUSH1 0x07
00001ed4: ADD
00001ed5: SLOAD
00001ed6: DUP3
00001ed7: GT
00001ed8: PUSH2 0x1f23
00001edb: JUMPI
00001edc: PUSH2 0x1f00
00001edf: PUSH2 0x1ef1
00001ee2: DUP5
00001ee3: DUP5
00001ee4: PUSH2 0x194a
00001ee7: SWAP1
00001ee8: SWAP2
00001ee9: SWAP1
00001eea: PUSH4 0xffffffff
00001eef: AND
00001ef0: JUMP
00001ef1: JUMPDEST
00001ef2: DUP3
00001ef3: PUSH2 0x17f2
00001ef6: SWAP1
00001ef7: SWAP2
00001ef8: SWAP1
00001ef9: PUSH4 0xffffffff
00001efe: AND
00001eff: JUMP
00001f00: JUMPDEST
00001f01: SWAP1
00001f02: POP
00001f03: PUSH2 0x1f19
00001f06: DUP6
00001f07: PUSH1 0x03
00001f09: ADD
00001f0a: SLOAD
00001f0b: DUP3
00001f0c: PUSH2 0x187a
00001f0f: SWAP1
00001f10: SWAP2
00001f11: SWAP1
00001f12: PUSH4 0xffffffff
00001f17: AND
00001f18: JUMP
00001f19: JUMPDEST
00001f1a: SWAP4
00001f1b: POP
00001f1c: POP
00001f1d: POP
00001f1e: POP
00001f1f: PUSH2 0x1f6c
00001f22: JUMP
00001f23: JUMPDEST
00001f24: PUSH2 0x1f4c
00001f27: PUSH2 0x1f3d
00001f2a: DUP5
00001f2b: DUP8
00001f2c: PUSH1 0x07
00001f2e: ADD
00001f2f: SLOAD
00001f30: PUSH2 0x194a
00001f33: SWAP1
00001f34: SWAP2
00001f35: SWAP1
00001f36: PUSH4 0xffffffff
00001f3b: AND
00001f3c: JUMP
00001f3d: JUMPDEST
00001f3e: DUP3
00001f3f: PUSH2 0x17f2
00001f42: SWAP1
00001f43: SWAP2
00001f44: SWAP1
00001f45: PUSH4 0xffffffff
00001f4a: AND
00001f4b: JUMP
00001f4c: JUMPDEST
00001f4d: SWAP1
00001f4e: POP
00001f4f: JUMPDEST
00001f50: PUSH2 0x1f66
00001f53: DUP6
00001f54: PUSH1 0x03
00001f56: ADD
00001f57: SLOAD
00001f58: DUP3
00001f59: PUSH2 0x187a
00001f5c: SWAP1
00001f5d: SWAP2
00001f5e: SWAP1
00001f5f: PUSH4 0xffffffff
00001f64: AND
00001f65: JUMP
00001f66: JUMPDEST
00001f67: SWAP4
00001f68: POP
00001f69: POP
00001f6a: POP
00001f6b: POP
00001f6c: JUMPDEST
00001f6d: SWAP2
00001f6e: SWAP1
00001f6f: POP
00001f70: JUMP
00001f71: JUMPDEST
00001f72: PUSH2 0x202c
00001f75: DUP5
00001f76: PUSH4 0x23b872dd
00001f7b: PUSH1 0xe0
00001f7d: SHL
00001f7e: DUP6
00001f7f: DUP6
00001f80: DUP6
00001f81: PUSH1 0x40
00001f83: MLOAD
00001f84: PUSH1 0x24
00001f86: ADD
00001f87: DUP1
00001f88: DUP5
00001f89: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f9e: AND
00001f9f: DUP2
00001fa0: MSTORE
00001fa1: PUSH1 0x20
00001fa3: ADD
00001fa4: DUP4
00001fa5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fba: AND
00001fbb: DUP2
00001fbc: MSTORE
00001fbd: PUSH1 0x20
00001fbf: ADD
00001fc0: DUP3
00001fc1: DUP2
00001fc2: MSTORE
00001fc3: PUSH1 0x20
00001fc5: ADD
00001fc6: SWAP4
00001fc7: POP
00001fc8: POP
00001fc9: POP
00001fca: POP
00001fcb: PUSH1 0x40
00001fcd: MLOAD
00001fce: PUSH1 0x20
00001fd0: DUP2
00001fd1: DUP4
00001fd2: SUB
00001fd3: SUB
00001fd4: DUP2
00001fd5: MSTORE
00001fd6: SWAP1
00001fd7: PUSH1 0x40
00001fd9: MSTORE
00001fda: SWAP1
00001fdb: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001ff8: NOT
00001ff9: AND
00001ffa: PUSH1 0x20
00001ffc: DUP3
00001ffd: ADD
00001ffe: DUP1
00001fff: MLOAD
00002000: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000201d: DUP4
0000201e: DUP2
0000201f: DUP4
00002020: AND
00002021: OR
00002022: DUP4
00002023: MSTORE
00002024: POP
00002025: POP
00002026: POP
00002027: POP
00002028: PUSH2 0x21b8
0000202b: JUMP
0000202c: JUMPDEST
0000202d: POP
0000202e: POP
0000202f: POP
00002030: POP
00002031: JUMP
00002032: JUMPDEST
00002033: PUSH1 0x00
00002035: DUP1
00002036: DUP4
00002037: GT
00002038: DUP3
00002039: SWAP1
0000203a: PUSH2 0x20de
0000203d: JUMPI
0000203e: PUSH1 0x40
00002040: MLOAD
00002041: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002062: DUP2
00002063: MSTORE
00002064: PUSH1 0x04
00002066: ADD
00002067: DUP1
00002068: DUP1
00002069: PUSH1 0x20
0000206b: ADD
0000206c: DUP3
0000206d: DUP2
0000206e: SUB
0000206f: DUP3
00002070: MSTORE
00002071: DUP4
00002072: DUP2
00002073: DUP2
00002074: MLOAD
00002075: DUP2
00002076: MSTORE
00002077: PUSH1 0x20
00002079: ADD
0000207a: SWAP2
0000207b: POP
0000207c: DUP1
0000207d: MLOAD
0000207e: SWAP1
0000207f: PUSH1 0x20
00002081: ADD
00002082: SWAP1
00002083: DUP1
00002084: DUP4
00002085: DUP4
00002086: PUSH1 0x00
00002088: JUMPDEST
00002089: DUP4
0000208a: DUP2
0000208b: LT
0000208c: ISZERO
0000208d: PUSH2 0x20a3
00002090: JUMPI
00002091: DUP1
00002092: DUP3
00002093: ADD
00002094: MLOAD
00002095: DUP2
00002096: DUP5
00002097: ADD
00002098: MSTORE
00002099: PUSH1 0x20
0000209b: DUP2
0000209c: ADD
0000209d: SWAP1
0000209e: POP
0000209f: PUSH2 0x2088
000020a2: JUMP
000020a3: JUMPDEST
000020a4: POP
000020a5: POP
000020a6: POP
000020a7: POP
000020a8: SWAP1
000020a9: POP
000020aa: SWAP1
000020ab: DUP2
000020ac: ADD
000020ad: SWAP1
000020ae: PUSH1 0x1f
000020b0: AND
000020b1: DUP1
000020b2: ISZERO
000020b3: PUSH2 0x20d0
000020b6: JUMPI
000020b7: DUP1
000020b8: DUP3
000020b9: SUB
000020ba: DUP1
000020bb: MLOAD
000020bc: PUSH1 0x01
000020be: DUP4
000020bf: PUSH1 0x20
000020c1: SUB
000020c2: PUSH2 0x0100
000020c5: EXP
000020c6: SUB
000020c7: NOT
000020c8: AND
000020c9: DUP2
000020ca: MSTORE
000020cb: PUSH1 0x20
000020cd: ADD
000020ce: SWAP2
000020cf: POP
000020d0: JUMPDEST
000020d1: POP
000020d2: SWAP3
000020d3: POP
000020d4: POP
000020d5: POP
000020d6: PUSH1 0x40
000020d8: MLOAD
000020d9: DUP1
000020da: SWAP2
000020db: SUB
000020dc: SWAP1
000020dd: REVERT
000020de: JUMPDEST
000020df: POP
000020e0: PUSH1 0x00
000020e2: DUP4
000020e3: DUP6
000020e4: DUP2
000020e5: PUSH2 0x20ea
000020e8: JUMPI
000020e9: INVALID
000020ea: JUMPDEST
000020eb: DIV
000020ec: SWAP1
000020ed: POP
000020ee: DUP1
000020ef: SWAP2
000020f0: POP
000020f1: POP
000020f2: SWAP4
000020f3: SWAP3
000020f4: POP
000020f5: POP
000020f6: POP
000020f7: JUMP
000020f8: JUMPDEST
000020f9: PUSH1 0x00
000020fb: DUP4
000020fc: DUP4
000020fd: GT
000020fe: ISZERO
000020ff: DUP3
00002100: SWAP1
00002101: PUSH2 0x21a5
00002104: JUMPI
00002105: PUSH1 0x40
00002107: MLOAD
00002108: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002129: DUP2
0000212a: MSTORE
0000212b: PUSH1 0x04
0000212d: ADD
0000212e: DUP1
0000212f: DUP1
00002130: PUSH1 0x20
00002132: ADD
00002133: DUP3
00002134: DUP2
00002135: SUB
00002136: DUP3
00002137: MSTORE
00002138: DUP4
00002139: DUP2
0000213a: DUP2
0000213b: MLOAD
0000213c: DUP2
0000213d: MSTORE
0000213e: PUSH1 0x20
00002140: ADD
00002141: SWAP2
00002142: POP
00002143: DUP1
00002144: MLOAD
00002145: SWAP1
00002146: PUSH1 0x20
00002148: ADD
00002149: SWAP1
0000214a: DUP1
0000214b: DUP4
0000214c: DUP4
0000214d: PUSH1 0x00
0000214f: JUMPDEST
00002150: DUP4
00002151: DUP2
00002152: LT
00002153: ISZERO
00002154: PUSH2 0x216a
00002157: JUMPI
00002158: DUP1
00002159: DUP3
0000215a: ADD
0000215b: MLOAD
0000215c: DUP2
0000215d: DUP5
0000215e: ADD
0000215f: MSTORE
00002160: PUSH1 0x20
00002162: DUP2
00002163: ADD
00002164: SWAP1
00002165: POP
00002166: PUSH2 0x214f
00002169: JUMP
0000216a: JUMPDEST
0000216b: POP
0000216c: POP
0000216d: POP
0000216e: POP
0000216f: SWAP1
00002170: POP
00002171: SWAP1
00002172: DUP2
00002173: ADD
00002174: SWAP1
00002175: PUSH1 0x1f
00002177: AND
00002178: DUP1
00002179: ISZERO
0000217a: PUSH2 0x2197
0000217d: JUMPI
0000217e: DUP1
0000217f: DUP3
00002180: SUB
00002181: DUP1
00002182: MLOAD
00002183: PUSH1 0x01
00002185: DUP4
00002186: PUSH1 0x20
00002188: SUB
00002189: PUSH2 0x0100
0000218c: EXP
0000218d: SUB
0000218e: NOT
0000218f: AND
00002190: DUP2
00002191: MSTORE
00002192: PUSH1 0x20
00002194: ADD
00002195: SWAP2
00002196: POP
00002197: JUMPDEST
00002198: POP
00002199: SWAP3
0000219a: POP
0000219b: POP
0000219c: POP
0000219d: PUSH1 0x40
0000219f: MLOAD
000021a0: DUP1
000021a1: SWAP2
000021a2: SUB
000021a3: SWAP1
000021a4: REVERT
000021a5: JUMPDEST
000021a6: POP
000021a7: PUSH1 0x00
000021a9: DUP4
000021aa: DUP6
000021ab: SUB
000021ac: SWAP1
000021ad: POP
000021ae: DUP1
000021af: SWAP2
000021b0: POP
000021b1: POP
000021b2: SWAP4
000021b3: SWAP3
000021b4: POP
000021b5: POP
000021b6: POP
000021b7: JUMP
000021b8: JUMPDEST
000021b9: PUSH1 0x60
000021bb: PUSH2 0x221a
000021be: DUP3
000021bf: PUSH1 0x40
000021c1: MLOAD
000021c2: DUP1
000021c3: PUSH1 0x40
000021c5: ADD
000021c6: PUSH1 0x40
000021c8: MSTORE
000021c9: DUP1
000021ca: PUSH1 0x20
000021cc: DUP2
000021cd: MSTORE
000021ce: PUSH1 0x20
000021d0: ADD
000021d1: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
000021f2: DUP2
000021f3: MSTORE
000021f4: POP
000021f5: DUP6
000021f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000220b: AND
0000220c: PUSH2 0x22a7
0000220f: SWAP1
00002210: SWAP3
00002211: SWAP2
00002212: SWAP1
00002213: PUSH4 0xffffffff
00002218: AND
00002219: JUMP
0000221a: JUMPDEST
0000221b: SWAP1
0000221c: POP
0000221d: PUSH1 0x00
0000221f: DUP2
00002220: MLOAD
00002221: GT
00002222: ISZERO
00002223: PUSH2 0x22a2
00002226: JUMPI
00002227: DUP1
00002228: DUP1
00002229: PUSH1 0x20
0000222b: ADD
0000222c: SWAP1
0000222d: MLOAD
0000222e: PUSH1 0x20
00002230: DUP2
00002231: LT
00002232: ISZERO
00002233: PUSH2 0x223b
00002236: JUMPI
00002237: PUSH1 0x00
00002239: DUP1
0000223a: REVERT
0000223b: JUMPDEST
0000223c: DUP2
0000223d: ADD
0000223e: SWAP1
0000223f: DUP1
00002240: DUP1
00002241: MLOAD
00002242: SWAP1
00002243: PUSH1 0x20
00002245: ADD
00002246: SWAP1
00002247: SWAP3
00002248: SWAP2
00002249: SWAP1
0000224a: POP
0000224b: POP
0000224c: POP
0000224d: PUSH2 0x22a1
00002250: JUMPI
00002251: PUSH1 0x40
00002253: MLOAD
00002254: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002275: DUP2
00002276: MSTORE
00002277: PUSH1 0x04
00002279: ADD
0000227a: DUP1
0000227b: DUP1
0000227c: PUSH1 0x20
0000227e: ADD
0000227f: DUP3
00002280: DUP2
00002281: SUB
00002282: DUP3
00002283: MSTORE
00002284: PUSH1 0x2a
00002286: DUP2
00002287: MSTORE
00002288: PUSH1 0x20
0000228a: ADD
0000228b: DUP1
0000228c: PUSH2 0x2558
0000228f: PUSH1 0x2a
00002291: SWAP2
00002292: CODECOPY
00002293: PUSH1 0x40
00002295: ADD
00002296: SWAP2
00002297: POP
00002298: POP
00002299: PUSH1 0x40
0000229b: MLOAD
0000229c: DUP1
0000229d: SWAP2
0000229e: SUB
0000229f: SWAP1
000022a0: REVERT
000022a1: JUMPDEST
000022a2: JUMPDEST
000022a3: POP
000022a4: POP
000022a5: POP
000022a6: JUMP
000022a7: JUMPDEST
000022a8: PUSH1 0x60
000022aa: PUSH2 0x22b6
000022ad: DUP5
000022ae: DUP5
000022af: PUSH1 0x00
000022b1: DUP6
000022b2: PUSH2 0x22bf
000022b5: JUMP
000022b6: JUMPDEST
000022b7: SWAP1
000022b8: POP
000022b9: SWAP4
000022ba: SWAP3
000022bb: POP
000022bc: POP
000022bd: POP
000022be: JUMP
000022bf: JUMPDEST
000022c0: PUSH1 0x60
000022c2: PUSH2 0x22ca
000022c5: DUP6
000022c6: PUSH2 0x24c5
000022c9: JUMP
000022ca: JUMPDEST
000022cb: PUSH2 0x233c
000022ce: JUMPI
000022cf: PUSH1 0x40
000022d1: MLOAD
000022d2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000022f3: DUP2
000022f4: MSTORE
000022f5: PUSH1 0x04
000022f7: ADD
000022f8: DUP1
000022f9: DUP1
000022fa: PUSH1 0x20
000022fc: ADD
000022fd: DUP3
000022fe: DUP2
000022ff: SUB
00002300: DUP3
00002301: MSTORE
00002302: PUSH1 0x1d
00002304: DUP2
00002305: MSTORE
00002306: PUSH1 0x20
00002308: ADD
00002309: DUP1
0000230a: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
0000232b: DUP2
0000232c: MSTORE
0000232d: POP
0000232e: PUSH1 0x20
00002330: ADD
00002331: SWAP2
00002332: POP
00002333: POP
00002334: PUSH1 0x40
00002336: MLOAD
00002337: DUP1
00002338: SWAP2
00002339: SUB
0000233a: SWAP1
0000233b: REVERT
0000233c: JUMPDEST
0000233d: PUSH1 0x00
0000233f: PUSH1 0x60
00002341: DUP7
00002342: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002357: AND
00002358: DUP6
00002359: DUP8
0000235a: PUSH1 0x40
0000235c: MLOAD
0000235d: DUP1
0000235e: DUP3
0000235f: DUP1
00002360: MLOAD
00002361: SWAP1
00002362: PUSH1 0x20
00002364: ADD
00002365: SWAP1
00002366: DUP1
00002367: DUP4
00002368: DUP4
00002369: JUMPDEST
0000236a: PUSH1 0x20
0000236c: DUP4
0000236d: LT
0000236e: PUSH2 0x238c
00002371: JUMPI
00002372: DUP1
00002373: MLOAD
00002374: DUP3
00002375: MSTORE
00002376: PUSH1 0x20
00002378: DUP3
00002379: ADD
0000237a: SWAP2
0000237b: POP
0000237c: PUSH1 0x20
0000237e: DUP2
0000237f: ADD
00002380: SWAP1
00002381: POP
00002382: PUSH1 0x20
00002384: DUP4
00002385: SUB
00002386: SWAP3
00002387: POP
00002388: PUSH2 0x2369
0000238b: JUMP
0000238c: JUMPDEST
0000238d: PUSH1 0x01
0000238f: DUP4
00002390: PUSH1 0x20
00002392: SUB
00002393: PUSH2 0x0100
00002396: EXP
00002397: SUB
00002398: DUP1
00002399: NOT
0000239a: DUP3
0000239b: MLOAD
0000239c: AND
0000239d: DUP2
0000239e: DUP5
0000239f: MLOAD
000023a0: AND
000023a1: DUP1
000023a2: DUP3
000023a3: OR
000023a4: DUP6
000023a5: MSTORE
000023a6: POP
000023a7: POP
000023a8: POP
000023a9: POP
000023aa: POP
000023ab: POP
000023ac: SWAP1
000023ad: POP
000023ae: ADD
000023af: SWAP2
000023b0: POP
000023b1: POP
000023b2: PUSH1 0x00
000023b4: PUSH1 0x40
000023b6: MLOAD
000023b7: DUP1
000023b8: DUP4
000023b9: SUB
000023ba: DUP2
000023bb: DUP6
000023bc: DUP8
000023bd: GAS
000023be: CALL
000023bf: SWAP3
000023c0: POP
000023c1: POP
000023c2: POP
000023c3: RETURNDATASIZE
000023c4: DUP1
000023c5: PUSH1 0x00
000023c7: DUP2
000023c8: EQ
000023c9: PUSH2 0x23ee
000023cc: JUMPI
000023cd: PUSH1 0x40
000023cf: MLOAD
000023d0: SWAP2
000023d1: POP
000023d2: PUSH1 0x1f
000023d4: NOT
000023d5: PUSH1 0x3f
000023d7: RETURNDATASIZE
000023d8: ADD
000023d9: AND
000023da: DUP3
000023db: ADD
000023dc: PUSH1 0x40
000023de: MSTORE
000023df: RETURNDATASIZE
000023e0: DUP3
000023e1: MSTORE
000023e2: RETURNDATASIZE
000023e3: PUSH1 0x00
000023e5: PUSH1 0x20
000023e7: DUP5
000023e8: ADD
000023e9: RETURNDATACOPY
000023ea: PUSH2 0x23f3
000023ed: JUMP
000023ee: JUMPDEST
000023ef: PUSH1 0x60
000023f1: SWAP2
000023f2: POP
000023f3: JUMPDEST
000023f4: POP
000023f5: SWAP2
000023f6: POP
000023f7: SWAP2
000023f8: POP
000023f9: DUP2
000023fa: ISZERO
000023fb: PUSH2 0x2408
000023fe: JUMPI
000023ff: DUP1
00002400: SWAP3
00002401: POP
00002402: POP
00002403: POP
00002404: PUSH2 0x24bd
00002407: JUMP
00002408: JUMPDEST
00002409: PUSH1 0x00
0000240b: DUP2
0000240c: MLOAD
0000240d: GT
0000240e: ISZERO
0000240f: PUSH2 0x241b
00002412: JUMPI
00002413: DUP1
00002414: MLOAD
00002415: DUP1
00002416: DUP3
00002417: PUSH1 0x20
00002419: ADD
0000241a: REVERT
0000241b: JUMPDEST
0000241c: DUP4
0000241d: PUSH1 0x40
0000241f: MLOAD
00002420: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002441: DUP2
00002442: MSTORE
00002443: PUSH1 0x04
00002445: ADD
00002446: DUP1
00002447: DUP1
00002448: PUSH1 0x20
0000244a: ADD
0000244b: DUP3
0000244c: DUP2
0000244d: SUB
0000244e: DUP3
0000244f: MSTORE
00002450: DUP4
00002451: DUP2
00002452: DUP2
00002453: MLOAD
00002454: DUP2
00002455: MSTORE
00002456: PUSH1 0x20
00002458: ADD
00002459: SWAP2
0000245a: POP
0000245b: DUP1
0000245c: MLOAD
0000245d: SWAP1
0000245e: PUSH1 0x20
00002460: ADD
00002461: SWAP1
00002462: DUP1
00002463: DUP4
00002464: DUP4
00002465: PUSH1 0x00
00002467: JUMPDEST
00002468: DUP4
00002469: DUP2
0000246a: LT
0000246b: ISZERO
0000246c: PUSH2 0x2482
0000246f: JUMPI
00002470: DUP1
00002471: DUP3
00002472: ADD
00002473: MLOAD
00002474: DUP2
00002475: DUP5
00002476: ADD
00002477: MSTORE
00002478: PUSH1 0x20
0000247a: DUP2
0000247b: ADD
0000247c: SWAP1
0000247d: POP
0000247e: PUSH2 0x2467
00002481: JUMP
00002482: JUMPDEST
00002483: POP
00002484: POP
00002485: POP
00002486: POP
00002487: SWAP1
00002488: POP
00002489: SWAP1
0000248a: DUP2
0000248b: ADD
0000248c: SWAP1
0000248d: PUSH1 0x1f
0000248f: AND
00002490: DUP1
00002491: ISZERO
00002492: PUSH2 0x24af
00002495: JUMPI
00002496: DUP1
00002497: DUP3
00002498: SUB
00002499: DUP1
0000249a: MLOAD
0000249b: PUSH1 0x01
0000249d: DUP4
0000249e: PUSH1 0x20
000024a0: SUB
000024a1: PUSH2 0x0100
000024a4: EXP
000024a5: SUB
000024a6: NOT
000024a7: AND
000024a8: DUP2
000024a9: MSTORE
000024aa: PUSH1 0x20
000024ac: ADD
000024ad: SWAP2
000024ae: POP
000024af: JUMPDEST
000024b0: POP
000024b1: SWAP3
000024b2: POP
000024b3: POP
000024b4: POP
000024b5: PUSH1 0x40
000024b7: MLOAD
000024b8: DUP1
000024b9: SWAP2
000024ba: SUB
000024bb: SWAP1
000024bc: REVERT
000024bd: JUMPDEST
000024be: SWAP5
000024bf: SWAP4
000024c0: POP
000024c1: POP
000024c2: POP
000024c3: POP
000024c4: JUMP
000024c5: JUMPDEST
000024c6: PUSH1 0x00
000024c8: DUP1
000024c9: PUSH1 0x00
000024cb: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
000024ec: PUSH1 0x00
000024ee: SHL
000024ef: SWAP1
000024f0: POP
000024f1: DUP4
000024f2: EXTCODEHASH
000024f3: SWAP2
000024f4: POP
000024f5: DUP1
000024f6: DUP3
000024f7: EQ
000024f8: ISZERO
000024f9: DUP1
000024fa: ISZERO
000024fb: PUSH2 0x2507
000024fe: JUMPI
000024ff: POP
00002500: PUSH1 0x00
00002502: DUP1
00002503: SHL
00002504: DUP3
00002505: EQ
00002506: ISZERO
00002507: JUMPDEST
00002508: SWAP3
00002509: POP
0000250a: POP
0000250b: POP
0000250c: SWAP2
0000250d: SWAP1
0000250e: POP
0000250f: JUMP
00002510: INVALID
00002511: UNKNOWN(0x4F)
00002512: PUSH24 0x6e61626c653a206e6577206f776e65722069732074686520
0000252b: PUSH27 0x65726f2061646472657373536166654d6174683a206d756c746970
00002547: PUSH13 0x69636174696f6e206f76657266
00002555: PUSH13 0x6f775361666545524332303a20
00002563: GASLIMIT
00002564: MSTORE
00002565: NUMBER
00002566: ORIGIN
00002567: ADDRESS
00002568: KECCAK256
00002569: PUSH16 0x7065726174696f6e20646964206e6f74
0000257a: KECCAK256
0000257b: PUSH20 0x756363656564a2646970667358221220bbf3f14e
00002590: UNKNOWN(0x23)
00002591: PUSH31 0x0213add356e33959d72553d41272768fb8222ea855c6107879b164736f6c63
000025b1: NUMBER
000025b2: STOP
000025b3: MOD
000025b4: UNKNOWN(0x0C)
000025b5: STOP
000025b6: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other slither Pool.safeRewardTransfer(address,uint256) (contracts/Contract.sol#1269-1276) ignores return value by rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273) 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "unchecked-transfer",
    "elements": [
        {
            "name": "safeRewardTransfer",
            "type": "function",
            "source_mapping": {
                "lines": [
                    1269,
                    1270,
                    1271,
                    1272,
                    1273,
                    1274,
                    1275,
                    1276
                ],
                "start": 45980,
                "length": 294,
                "ending_column": 19,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 21,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "Pool",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            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,
                            1137,
                            1138,
                            1139,
                            1140,
                            1141,
                            1142,
                            1143,
                            1144,
                            1145,
                            1146,
                            1147,
                            1148,
                            1149,
                            1150,
                            1151,
                            1152,
                            1153,
                            1154,
                            1155,
                            1156,
                            1157,
                            1158,
                            1159,
                            1160,
                            1161,
                            1162,
                            1163,
                            1164,
                            1165,
                            1166,
                            1167,
                            1168,
                            1169,
                            1170,
                            1171,
                            1172,
                            1173,
                            1174,
                            1175,
                            1176,
                            1177,
                            1178,
                            1179,
                            1180,
                            1181,
                            1182,
                            1183,
                            1184,
                            1185,
                            1186,
                            1187,
                            1188,
                            1189,
                            1190,
                            1191,
                            1192,
                            1193,
                            1194,
                            1195,
                            1196,
                            1197,
                            1198,
                            1199,
                            1200,
                            1201,
                            1202,
                            1203,
                            1204,
                            1205,
                            1206,
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221,
                            1222,
                            1223,
                            1224,
                            1225,
                            1226,
                            1227,
                            1228,
                            1229,
                            1230,
                            1231,
                            1232,
                            1233,
                            1234,
                            1235,
                            1236,
                            1237,
                            1238,
                            1239,
                            1240,
                            1241,
                            1242,
                            1243,
                            1244,
                            1245,
                            1246,
                            1247,
                            1248,
                            1249,
                            1250,
                            1251,
                            1252,
                            1253,
                            1254,
                            1255,
                            1256,
                            1257,
                            1258,
                            1259,
                            1260,
                            1261,
                            1262,
                            1263,
                            1264,
                            1265,
                            1266,
                            1267,
                            1268,
                            1269,
                            1270,
                            1271,
                            1272,
                            1273,
                            1274,
                            1275,
                            1276
                        ],
                        "start": 39751,
                        "length": 6525,
                        "ending_column": 21,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 47,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    }
                },
                "signature": "safeRewardTransfer(address,uint256)"
            }
        },
        {
            "name": "rewardToken.transfer(_to,balance)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1272,
                    1273
                ],
                "start": 46158,
                "length": 34,
                "ending_column": 27,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 31,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "safeRewardTransfer",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1269,
                            1270,
                            1271,
                            1272,
                            1273,
                            1274,
                            1275,
                            1276
                        ],
                        "start": 45980,
                        "length": 294,
                        "ending_column": 19,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 21,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "safeRewardTransfer(address,uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/Contract.sol",
            "name": "safeRewardTransfer",
            "type": "function",
            "lines": [
                1269,
                1270,
                1271,
                1272,
                1273,
                1274,
                1275,
                1276
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "rewardToken.transfer(_to,balance)",
            "type": "node",
            "lines": [
                1272,
                1273
            ]
        }
    ],
    "description": "Pool.safeRewardTransfer(address,uint256) (contracts/Contract.sol#1269-1276) ignores return value by rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273)"
}
high other slither Pool.safeRewardTransfer(address,uint256) (contracts/Contract.sol#1269-1276) ignores return value by rewardToken.transfer(_to,_amount) (contracts/Contract.sol#1273-1276) 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "unchecked-transfer",
    "elements": [
        {
            "name": "safeRewardTransfer",
            "type": "function",
            "source_mapping": {
                "lines": [
                    1269,
                    1270,
                    1271,
                    1272,
                    1273,
                    1274,
                    1275,
                    1276
                ],
                "start": 45980,
                "length": 294,
                "ending_column": 19,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 21,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "Pool",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            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,
                            1137,
                            1138,
                            1139,
                            1140,
                            1141,
                            1142,
                            1143,
                            1144,
                            1145,
                            1146,
                            1147,
                            1148,
                            1149,
                            1150,
                            1151,
                            1152,
                            1153,
                            1154,
                            1155,
                            1156,
                            1157,
                            1158,
                            1159,
                            1160,
                            1161,
                            1162,
                            1163,
                            1164,
                            1165,
                            1166,
                            1167,
                            1168,
                            1169,
                            1170,
                            1171,
                            1172,
                            1173,
                            1174,
                            1175,
                            1176,
                            1177,
                            1178,
                            1179,
                            1180,
                            1181,
                            1182,
                            1183,
                            1184,
                            1185,
                            1186,
                            1187,
                            1188,
                            1189,
                            1190,
                            1191,
                            1192,
                            1193,
                            1194,
                            1195,
                            1196,
                            1197,
                            1198,
                            1199,
                            1200,
                            1201,
                            1202,
                            1203,
                            1204,
                            1205,
                            1206,
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221,
                            1222,
                            1223,
                            1224,
                            1225,
                            1226,
                            1227,
                            1228,
                            1229,
                            1230,
                            1231,
                            1232,
                            1233,
                            1234,
                            1235,
                            1236,
                            1237,
                            1238,
                            1239,
                            1240,
                            1241,
                            1242,
                            1243,
                            1244,
                            1245,
                            1246,
                            1247,
                            1248,
                            1249,
                            1250,
                            1251,
                            1252,
                            1253,
                            1254,
                            1255,
                            1256,
                            1257,
                            1258,
                            1259,
                            1260,
                            1261,
                            1262,
                            1263,
                            1264,
                            1265,
                            1266,
                            1267,
                            1268,
                            1269,
                            1270,
                            1271,
                            1272,
                            1273,
                            1274,
                            1275,
                            1276
                        ],
                        "start": 39751,
                        "length": 6525,
                        "ending_column": 21,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 47,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    }
                },
                "signature": "safeRewardTransfer(address,uint256)"
            }
        },
        {
            "name": "rewardToken.transfer(_to,_amount)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1273,
                    1274,
                    1275,
                    1276
                ],
                "start": 46223,
                "length": 34,
                "ending_column": 2,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 58,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "safeRewardTransfer",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1269,
                            1270,
                            1271,
                            1272,
                            1273,
                            1274,
                            1275,
                            1276
                        ],
                        "start": 45980,
                        "length": 294,
                        "ending_column": 19,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 21,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "safeRewardTransfer(address,uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/Contract.sol",
            "name": "safeRewardTransfer",
            "type": "function",
            "lines": [
                1269,
                1270,
                1271,
                1272,
                1273,
                1274,
                1275,
                1276
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "rewardToken.transfer(_to,_amount)",
            "type": "node",
            "lines": [
                1273,
                1274,
                1275,
                1276
            ]
        }
    ],
    "description": "Pool.safeRewardTransfer(address,uint256) (contracts/Contract.sol#1269-1276) ignores return value by rewardToken.transfer(_to,_amount) (contracts/Contract.sol#1273-1276)"
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xac4afa38",
            "selector": "0xac4afa38",
            "calldata_variants": [
                "0xac4afa38",
                "0xac4afa380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9d02df4",
            "selector": "0xb9d02df4",
            "calldata_variants": [
                "0xb9d02df4",
                "0xb9d02df40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe2bbb158",
            "selector": "0xe2bbb158",
            "calldata_variants": [
                "0xe2bbb158",
                "0xe2bbb1580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4c75c27",
            "selector": "0xe4c75c27",
            "calldata_variants": [
                "0xe4c75c27",
                "0xe4c75c270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7c618c1",
            "selector": "0xf7c618c1",
            "calldata_variants": [
                "0xf7c618c1",
                "0xf7c618c10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x081e3eda",
            "selector": "0x081e3eda",
            "calldata_variants": [
                "0x081e3eda",
                "0x081e3eda0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x29cb0090",
            "selector": "0x29cb0090",
            "calldata_variants": [
                "0x29cb0090",
                "0x29cb00900000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 9574,
            "type": "tx_origin_used"
        }
    ]
}
high math codex Pool can be permanently bricked after endBlock due to underflow in reward calculation 85 no
view
evidence_json
{
    "evidence": "getTotalReward subtracts to.sub(from) without handling lastRewardBlock > endBlock+1, and updatePool sets lastRewardBlock = block.number even after endBlock.",
    "locations": [
        "contracts/Contract.sol:1201",
        "contracts/Contract.sol:1205",
        "contracts/Contract.sol:1206",
        "contracts/Contract.sol:1207",
        "contracts/Contract.sol:1251"
    ],
    "recommendation": "Guard in getTotalReward for lastRewardBlock >= endBlock+1 and return 0; or clamp lastRewardBlock to endBlock+1 in updatePool. Also validate endBlock > startBlock when adding pools.",
    "exploit_scenario": "Once block.number > endBlock, the first call to updatePool (triggered by any deposit/withdraw) sets lastRewardBlock to the current block. On the next interaction, getTotalReward computes to = min(block.number, endBlock+1), which is now less than lastRewardBlock, so to.sub(from) underflows and reverts. This makes updatePool/pending/deposit/withdraw permanently revert, locking all remaining staked tokens. An attacker can trigger this by calling any pool action after endBlock, preventing others from withdrawing."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xdfe2e366c262252ba136c76ff934fcc04dae9056536a44149bc714d90e0f9ef7
call_targets: 0x8ba5325a98147d67e5ee09bb0273194c68512612
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xdfe2e366c262252ba136c76ff934fcc04dae9056536a44149bc714d90e0f9ef7",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x8ba5325a98147d67e5ee09bb0273194c68512612"
    ],
    "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": "0xac4afa38",
            "selector": "0xac4afa38",
            "calldata_variants": [
                "0xac4afa38",
                "0xac4afa380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9d02df4",
            "selector": "0xb9d02df4",
            "calldata_variants": [
                "0xb9d02df4",
                "0xb9d02df40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe2bbb158",
            "selector": "0xe2bbb158",
            "calldata_variants": [
                "0xe2bbb158",
                "0xe2bbb1580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4c75c27",
            "selector": "0xe4c75c27",
            "calldata_variants": [
                "0xe4c75c27",
                "0xe4c75c270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7c618c1",
            "selector": "0xf7c618c1",
            "calldata_variants": [
                "0xf7c618c1",
                "0xf7c618c10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x081e3eda",
            "selector": "0x081e3eda",
            "calldata_variants": [
                "0x081e3eda",
                "0x081e3eda0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x29cb0090",
            "selector": "0x29cb0090",
            "calldata_variants": [
                "0x29cb0090",
                "0x29cb00900000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3389,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6906,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7118,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [
        {
            "pc": 9574,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 4
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xdfe2e366c262252ba136c76ff934fcc04dae9056536a44149bc714d90e0f9ef7
call_targets: 0x8ba5325a98147d67e5ee09bb0273194c68512612
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xdfe2e366c262252ba136c76ff934fcc04dae9056536a44149bc714d90e0f9ef7",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x8ba5325a98147d67e5ee09bb0273194c68512612"
    ],
    "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": "0xac4afa38",
            "selector": "0xac4afa38",
            "calldata_variants": [
                "0xac4afa38",
                "0xac4afa380000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9d02df4",
            "selector": "0xb9d02df4",
            "calldata_variants": [
                "0xb9d02df4",
                "0xb9d02df40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe2bbb158",
            "selector": "0xe2bbb158",
            "calldata_variants": [
                "0xe2bbb158",
                "0xe2bbb1580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe4c75c27",
            "selector": "0xe4c75c27",
            "calldata_variants": [
                "0xe4c75c27",
                "0xe4c75c270000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7c618c1",
            "selector": "0xf7c618c1",
            "calldata_variants": [
                "0xf7c618c1",
                "0xf7c618c10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x081e3eda",
            "selector": "0x081e3eda",
            "calldata_variants": [
                "0x081e3eda",
                "0x081e3eda0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x29cb0090",
            "selector": "0x29cb0090",
            "calldata_variants": [
                "0x29cb0090",
                "0x29cb00900000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3389,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6906,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7118,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": [
        {
            "pc": 9574,
            "type": "tx_origin_used"
        }
    ]
}
medium reentrancy slither Reentrancy in Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269): 75 no
view
evidence_json
{
    "impact": "Medium",
    "detector": "reentrancy-no-eth",
    "elements": [
        {
            "name": "withdraw",
            "type": "function",
            "source_mapping": {
                "lines": [
                    1255,
                    1256,
                    1257,
                    1258,
                    1259,
                    1260,
                    1261,
                    1262,
                    1263,
                    1264,
                    1265,
                    1266,
                    1267,
                    1268,
                    1269
                ],
                "start": 45248,
                "length": 726,
                "ending_column": 15,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 13,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "Pool",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            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,
                            1137,
                            1138,
                            1139,
                            1140,
                            1141,
                            1142,
                            1143,
                            1144,
                            1145,
                            1146,
                            1147,
                            1148,
                            1149,
                            1150,
                            1151,
                            1152,
                            1153,
                            1154,
                            1155,
                            1156,
                            1157,
                            1158,
                            1159,
                            1160,
                            1161,
                            1162,
                            1163,
                            1164,
                            1165,
                            1166,
                            1167,
                            1168,
                            1169,
                            1170,
                            1171,
                            1172,
                            1173,
                            1174,
                            1175,
                            1176,
                            1177,
                            1178,
                            1179,
                            1180,
                            1181,
                            1182,
                            1183,
                            1184,
                            1185,
                            1186,
                            1187,
                            1188,
                            1189,
                            1190,
                            1191,
                            1192,
                            1193,
                            1194,
                            1195,
                            1196,
                            1197,
                            1198,
                            1199,
                            1200,
                            1201,
                            1202,
                            1203,
                            1204,
                            1205,
                            1206,
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221,
                            1222,
                            1223,
                            1224,
                            1225,
                            1226,
                            1227,
                            1228,
                            1229,
                            1230,
                            1231,
                            1232,
                            1233,
                            1234,
                            1235,
                            1236,
                            1237,
                            1238,
                            1239,
                            1240,
                            1241,
                            1242,
                            1243,
                            1244,
                            1245,
                            1246,
                            1247,
                            1248,
                            1249,
                            1250,
                            1251,
                            1252,
                            1253,
                            1254,
                            1255,
                            1256,
                            1257,
                            1258,
                            1259,
                            1260,
                            1261,
                            1262,
                            1263,
                            1264,
                            1265,
                            1266,
                            1267,
                            1268,
                            1269,
                            1270,
                            1271,
                            1272,
                            1273,
                            1274,
                            1275,
                            1276
                        ],
                        "start": 39751,
                        "length": 6525,
                        "ending_column": 21,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 47,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    }
                },
                "signature": "withdraw(uint256,uint256)"
            }
        },
        {
            "name": "updatePool(_pid)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1259
                ],
                "start": 45507,
                "length": 16,
                "ending_column": 61,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 45,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "withdraw",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1255,
                            1256,
                            1257,
                            1258,
                            1259,
                            1260,
                            1261,
                            1262,
                            1263,
                            1264,
                            1265,
                            1266,
                            1267,
                            1268,
                            1269
                        ],
                        "start": 45248,
                        "length": 726,
                        "ending_column": 15,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 13,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "withdraw(uint256,uint256)"
                    }
                }
            }
        },
        {
            "name": "rewardToken.mint(address(this),reward)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1216,
                    1217
                ],
                "start": 43694,
                "length": 39,
                "ending_column": 13,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 53,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls_sending_eth"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "updatePool",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221
                        ],
                        "start": 43268,
                        "length": 612,
                        "ending_column": 22,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 9,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "updatePool(uint256)"
                    }
                }
            }
        },
        {
            "name": "safeRewardTransfer(msg.sender,pendingReward)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1261,
                    1262,
                    1263
                ],
                "start": 45674,
                "length": 45,
                "ending_column": 34,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 90,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "withdraw",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1255,
                            1256,
                            1257,
                            1258,
                            1259,
                            1260,
                            1261,
                            1262,
                            1263,
                            1264,
                            1265,
                            1266,
                            1267,
                            1268,
                            1269
                        ],
                        "start": 45248,
                        "length": 726,
                        "ending_column": 15,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 13,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "withdraw(uint256,uint256)"
                    }
                }
            }
        },
        {
            "name": "rewardToken.transfer(_to,balance)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1272,
                    1273
                ],
                "start": 46158,
                "length": 34,
                "ending_column": 27,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 31,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls_sending_eth"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "safeRewardTransfer",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1269,
                            1270,
                            1271,
                            1272,
                            1273,
                            1274,
                            1275,
                            1276
                        ],
                        "start": 45980,
                        "length": 294,
                        "ending_column": 19,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 21,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "safeRewardTransfer(address,uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/Contract.sol",
            "name": "withdraw",
            "type": "function",
            "lines": [
                1255,
                1256,
                1257,
                1258,
                1259,
                1260,
                1261,
                1262,
                1263,
                1264,
                1265,
                1266,
                1267,
                1268,
                1269
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "updatePool(_pid)",
            "type": "node",
            "lines": [
                1259
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "rewardToken.mint(address(this),reward)",
            "type": "node",
            "lines": [
                1216,
                1217
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "safeRewardTransfer(msg.sender,pendingReward)",
            "type": "node",
            "lines": [
                1261,
                1262,
                1263
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "rewardToken.transfer(_to,balance)",
            "type": "node",
            "lines": [
                1272,
                1273
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "rewardToken.transfer(_to,_amount)",
            "type": "node",
            "lines": [
                1273,
                1274,
                1275,
                1276
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "user.amount = user.amount.sub(_amount)",
            "type": "node",
            "lines": [
                1263,
                1264,
                1265
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "user.rewardDebt = user.amount.mul(pool.accRewardPerShare).div(1e12)",
            "type": "node",
            "lines": [
                1266
            ]
        }
    ],
    "description": "Reentrancy in Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269):\n\tExternal calls:\n\t- updatePool(_pid) (contracts/Contract.sol#1259)\n\t\t- rewardToken.mint(address(this),reward) (contracts/Contract.sol#1216-1217)\n\t- safeRewardTransfer(msg.sender,pendingReward) (contracts/Contract.sol#1261-1263)\n\t\t- rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273)\n\t\t- rewardToken.transfer(_to,_amount) (contracts/Contract.sol#1273-1276)\n\tState variables written after the call(s):\n\t- user.amount = user.amount.sub(_amount) (contracts/Contract.sol#1263-1265)\n\tPool.users (contracts/Contract.sol#1111) can be used in cross function reentrancies:\n\t- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)\n\t- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)\n\t- Pool.users (contracts/Contract.sol#1111)\n\t- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)\n\t- user.rewardDebt = user.amount.mul(pool.accRewardPerShare).div(1e12) (contracts/Contract.sol#1266)\n\tPool.users (contracts/Contract.sol#1111) can be used in cross function reentrancies:\n\t- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)\n\t- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)\n\t- Pool.users (contracts/Contract.sol#1111)\n\t- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)"
}
medium reentrancy codex Reentrancy in deposit via untrusted pool tokens can double-claim rewards 75 no
view
evidence_json
{
    "evidence": "deposit pays pending rewards, then calls pool.token.safeTransferFrom before updating user.amount and user.rewardDebt.",
    "locations": [
        "contracts/Contract.sol:1266",
        "contracts/Contract.sol:1271",
        "contracts/Contract.sol:1273",
        "contracts/Contract.sol:1276",
        "contracts/Contract.sol:1277"
    ],
    "recommendation": "Apply a reentrancy guard and/or move state updates (rewardDebt/amount) before external calls. Alternatively restrict pools to non-callback ERC20 tokens.",
    "exploit_scenario": "If a pool token is ERC777 or otherwise invokes callbacks on transferFrom, a malicious user contract can reenter deposit during pool.token.safeTransferFrom. Because rewardDebt and amount are only updated after the external call, the reentrant deposit can claim the same pending rewards multiple times, draining rewardToken."
}
medium reentrancy slither Reentrancy in Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255): 75 no
view
evidence_json
{
    "impact": "Medium",
    "detector": "reentrancy-no-eth",
    "elements": [
        {
            "name": "deposit",
            "type": "function",
            "source_mapping": {
                "lines": [
                    1237,
                    1238,
                    1239,
                    1240,
                    1241,
                    1242,
                    1243,
                    1244,
                    1245,
                    1246,
                    1247,
                    1248,
                    1249,
                    1250,
                    1251,
                    1252,
                    1253,
                    1254,
                    1255
                ],
                "start": 44517,
                "length": 725,
                "ending_column": 7,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 18,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "Pool",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            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,
                            1137,
                            1138,
                            1139,
                            1140,
                            1141,
                            1142,
                            1143,
                            1144,
                            1145,
                            1146,
                            1147,
                            1148,
                            1149,
                            1150,
                            1151,
                            1152,
                            1153,
                            1154,
                            1155,
                            1156,
                            1157,
                            1158,
                            1159,
                            1160,
                            1161,
                            1162,
                            1163,
                            1164,
                            1165,
                            1166,
                            1167,
                            1168,
                            1169,
                            1170,
                            1171,
                            1172,
                            1173,
                            1174,
                            1175,
                            1176,
                            1177,
                            1178,
                            1179,
                            1180,
                            1181,
                            1182,
                            1183,
                            1184,
                            1185,
                            1186,
                            1187,
                            1188,
                            1189,
                            1190,
                            1191,
                            1192,
                            1193,
                            1194,
                            1195,
                            1196,
                            1197,
                            1198,
                            1199,
                            1200,
                            1201,
                            1202,
                            1203,
                            1204,
                            1205,
                            1206,
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221,
                            1222,
                            1223,
                            1224,
                            1225,
                            1226,
                            1227,
                            1228,
                            1229,
                            1230,
                            1231,
                            1232,
                            1233,
                            1234,
                            1235,
                            1236,
                            1237,
                            1238,
                            1239,
                            1240,
                            1241,
                            1242,
                            1243,
                            1244,
                            1245,
                            1246,
                            1247,
                            1248,
                            1249,
                            1250,
                            1251,
                            1252,
                            1253,
                            1254,
                            1255,
                            1256,
                            1257,
                            1258,
                            1259,
                            1260,
                            1261,
                            1262,
                            1263,
                            1264,
                            1265,
                            1266,
                            1267,
                            1268,
                            1269,
                            1270,
                            1271,
                            1272,
                            1273,
                            1274,
                            1275,
                            1276
                        ],
                        "start": 39751,
                        "length": 6525,
                        "ending_column": 21,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 47,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    }
                },
                "signature": "deposit(uint256,uint256)"
            }
        },
        {
            "name": "updatePool(_pid)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1242
                ],
                "start": 44700,
                "length": 16,
                "ending_column": 22,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 6,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "deposit",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1237,
                            1238,
                            1239,
                            1240,
                            1241,
                            1242,
                            1243,
                            1244,
                            1245,
                            1246,
                            1247,
                            1248,
                            1249,
                            1250,
                            1251,
                            1252,
                            1253,
                            1254,
                            1255
                        ],
                        "start": 44517,
                        "length": 725,
                        "ending_column": 7,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 18,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "deposit(uint256,uint256)"
                    }
                }
            }
        },
        {
            "name": "rewardToken.mint(address(this),reward)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1216,
                    1217
                ],
                "start": 43694,
                "length": 39,
                "ending_column": 13,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 53,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls_sending_eth"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "updatePool",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221
                        ],
                        "start": 43268,
                        "length": 612,
                        "ending_column": 22,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 9,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "updatePool(uint256)"
                    }
                }
            }
        },
        {
            "name": "safeRewardTransfer(msg.sender,pendingReward)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1248,
                    1249
                ],
                "start": 44910,
                "length": 45,
                "ending_column": 22,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 25,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "deposit",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1237,
                            1238,
                            1239,
                            1240,
                            1241,
                            1242,
                            1243,
                            1244,
                            1245,
                            1246,
                            1247,
                            1248,
                            1249,
                            1250,
                            1251,
                            1252,
                            1253,
                            1254,
                            1255
                        ],
                        "start": 44517,
                        "length": 725,
                        "ending_column": 7,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 18,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "deposit(uint256,uint256)"
                    }
                }
            }
        },
        {
            "name": "rewardToken.transfer(_to,balance)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1272,
                    1273
                ],
                "start": 46158,
                "length": 34,
                "ending_column": 27,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 31,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls_sending_eth"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "safeRewardTransfer",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1269,
                            1270,
                            1271,
                            1272,
                            1273,
                            1274,
                            1275,
                            1276
                        ],
                        "start": 45980,
                        "length": 294,
                        "ending_column": 19,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 21,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "safeRewardTransfer(address,uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/Contract.sol",
            "name": "deposit",
            "type": "function",
            "lines": [
                1237,
                1238,
                1239,
                1240,
                1241,
                1242,
                1243,
                1244,
                1245,
                1246,
                1247,
                1248,
                1249,
                1250,
                1251,
                1252,
                1253,
                1254,
                1255
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "updatePool(_pid)",
            "type": "node",
            "lines": [
                1242
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "rewardToken.mint(address(this),reward)",
            "type": "node",
            "lines": [
                1216,
                1217
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "safeRewardTransfer(msg.sender,pendingReward)",
            "type": "node",
            "lines": [
                1248,
                1249
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "rewardToken.transfer(_to,balance)",
            "type": "node",
            "lines": [
                1272,
                1273
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "rewardToken.transfer(_to,_amount)",
            "type": "node",
            "lines": [
                1273,
                1274,
                1275,
                1276
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "pool.token.safeTransferFrom(address(msg.sender),address(this),_amount)",
            "type": "node",
            "lines": [
                1250
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "user.amount = user.amount.add(_amount)",
            "type": "node",
            "lines": [
                1250,
                1251
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "user.rewardDebt = user.amount.mul(pool.accRewardPerShare).div(1e12)",
            "type": "node",
            "lines": [
                1251,
                1252,
                1253,
                1254
            ]
        }
    ],
    "description": "Reentrancy in Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255):\n\tExternal calls:\n\t- updatePool(_pid) (contracts/Contract.sol#1242)\n\t\t- rewardToken.mint(address(this),reward) (contracts/Contract.sol#1216-1217)\n\t- safeRewardTransfer(msg.sender,pendingReward) (contracts/Contract.sol#1248-1249)\n\t\t- rewardToken.transfer(_to,balance) (contracts/Contract.sol#1272-1273)\n\t\t- rewardToken.transfer(_to,_amount) (contracts/Contract.sol#1273-1276)\n\t- pool.token.safeTransferFrom(address(msg.sender),address(this),_amount) (contracts/Contract.sol#1250)\n\tState variables written after the call(s):\n\t- user.amount = user.amount.add(_amount) (contracts/Contract.sol#1250-1251)\n\tPool.users (contracts/Contract.sol#1111) can be used in cross function reentrancies:\n\t- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)\n\t- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)\n\t- Pool.users (contracts/Contract.sol#1111)\n\t- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)\n\t- user.rewardDebt = user.amount.mul(pool.accRewardPerShare).div(1e12) (contracts/Contract.sol#1251-1254)\n\tPool.users (contracts/Contract.sol#1111) can be used in cross function reentrancies:\n\t- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)\n\t- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)\n\t- Pool.users (contracts/Contract.sol#1111)\n\t- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)"
}
medium reentrancy slither Reentrancy in Pool.updatePool(uint256) (contracts/Contract.sol#1207-1221): 75 no
view
evidence_json
{
    "impact": "Medium",
    "detector": "reentrancy-no-eth",
    "elements": [
        {
            "name": "updatePool",
            "type": "function",
            "source_mapping": {
                "lines": [
                    1207,
                    1208,
                    1209,
                    1210,
                    1211,
                    1212,
                    1213,
                    1214,
                    1215,
                    1216,
                    1217,
                    1218,
                    1219,
                    1220,
                    1221
                ],
                "start": 43268,
                "length": 612,
                "ending_column": 22,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 9,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "Pool",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            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,
                            1137,
                            1138,
                            1139,
                            1140,
                            1141,
                            1142,
                            1143,
                            1144,
                            1145,
                            1146,
                            1147,
                            1148,
                            1149,
                            1150,
                            1151,
                            1152,
                            1153,
                            1154,
                            1155,
                            1156,
                            1157,
                            1158,
                            1159,
                            1160,
                            1161,
                            1162,
                            1163,
                            1164,
                            1165,
                            1166,
                            1167,
                            1168,
                            1169,
                            1170,
                            1171,
                            1172,
                            1173,
                            1174,
                            1175,
                            1176,
                            1177,
                            1178,
                            1179,
                            1180,
                            1181,
                            1182,
                            1183,
                            1184,
                            1185,
                            1186,
                            1187,
                            1188,
                            1189,
                            1190,
                            1191,
                            1192,
                            1193,
                            1194,
                            1195,
                            1196,
                            1197,
                            1198,
                            1199,
                            1200,
                            1201,
                            1202,
                            1203,
                            1204,
                            1205,
                            1206,
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221,
                            1222,
                            1223,
                            1224,
                            1225,
                            1226,
                            1227,
                            1228,
                            1229,
                            1230,
                            1231,
                            1232,
                            1233,
                            1234,
                            1235,
                            1236,
                            1237,
                            1238,
                            1239,
                            1240,
                            1241,
                            1242,
                            1243,
                            1244,
                            1245,
                            1246,
                            1247,
                            1248,
                            1249,
                            1250,
                            1251,
                            1252,
                            1253,
                            1254,
                            1255,
                            1256,
                            1257,
                            1258,
                            1259,
                            1260,
                            1261,
                            1262,
                            1263,
                            1264,
                            1265,
                            1266,
                            1267,
                            1268,
                            1269,
                            1270,
                            1271,
                            1272,
                            1273,
                            1274,
                            1275,
                            1276
                        ],
                        "start": 39751,
                        "length": 6525,
                        "ending_column": 21,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 47,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    }
                },
                "signature": "updatePool(uint256)"
            }
        },
        {
            "name": "rewardToken.mint(address(this),reward)",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1216,
                    1217
                ],
                "start": 43694,
                "length": 39,
                "ending_column": 13,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 53,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "updatePool",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221
                        ],
                        "start": 43268,
                        "length": 612,
                        "ending_column": 22,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 9,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "updatePool(uint256)"
                    }
                }
            }
        },
        {
            "name": "pool.accRewardPerShare = pool.accRewardPerShare.add(reward.mul(1e12).div(totalStake))",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1217,
                    1218,
                    1219,
                    1220
                ],
                "start": 43743,
                "length": 85,
                "ending_column": 15,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 23,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "variable_name": "pools",
                "underlying_type": "variables_written"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "updatePool",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221
                        ],
                        "start": 43268,
                        "length": 612,
                        "ending_column": 22,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 9,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "updatePool(uint256)"
                    }
                }
            }
        },
        {
            "name": "pool.lastRewardBlock = block.number",
            "type": "node",
            "source_mapping": {
                "lines": [
                    1220,
                    1221
                ],
                "start": 43838,
                "length": 35,
                "ending_column": 15,
                "is_dependency": false,
                "filename_short": "contracts/Contract.sol",
                "starting_column": 25,
                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                "filename_relative": "contracts/Contract.sol"
            },
            "additional_fields": {
                "variable_name": "pools",
                "underlying_type": "variables_written"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "updatePool",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            1207,
                            1208,
                            1209,
                            1210,
                            1211,
                            1212,
                            1213,
                            1214,
                            1215,
                            1216,
                            1217,
                            1218,
                            1219,
                            1220,
                            1221
                        ],
                        "start": 43268,
                        "length": 612,
                        "ending_column": 22,
                        "is_dependency": false,
                        "filename_short": "contracts/Contract.sol",
                        "starting_column": 9,
                        "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                        "filename_relative": "contracts/Contract.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "Pool",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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,
                                    1137,
                                    1138,
                                    1139,
                                    1140,
                                    1141,
                                    1142,
                                    1143,
                                    1144,
                                    1145,
                                    1146,
                                    1147,
                                    1148,
                                    1149,
                                    1150,
                                    1151,
                                    1152,
                                    1153,
                                    1154,
                                    1155,
                                    1156,
                                    1157,
                                    1158,
                                    1159,
                                    1160,
                                    1161,
                                    1162,
                                    1163,
                                    1164,
                                    1165,
                                    1166,
                                    1167,
                                    1168,
                                    1169,
                                    1170,
                                    1171,
                                    1172,
                                    1173,
                                    1174,
                                    1175,
                                    1176,
                                    1177,
                                    1178,
                                    1179,
                                    1180,
                                    1181,
                                    1182,
                                    1183,
                                    1184,
                                    1185,
                                    1186,
                                    1187,
                                    1188,
                                    1189,
                                    1190,
                                    1191,
                                    1192,
                                    1193,
                                    1194,
                                    1195,
                                    1196,
                                    1197,
                                    1198,
                                    1199,
                                    1200,
                                    1201,
                                    1202,
                                    1203,
                                    1204,
                                    1205,
                                    1206,
                                    1207,
                                    1208,
                                    1209,
                                    1210,
                                    1211,
                                    1212,
                                    1213,
                                    1214,
                                    1215,
                                    1216,
                                    1217,
                                    1218,
                                    1219,
                                    1220,
                                    1221,
                                    1222,
                                    1223,
                                    1224,
                                    1225,
                                    1226,
                                    1227,
                                    1228,
                                    1229,
                                    1230,
                                    1231,
                                    1232,
                                    1233,
                                    1234,
                                    1235,
                                    1236,
                                    1237,
                                    1238,
                                    1239,
                                    1240,
                                    1241,
                                    1242,
                                    1243,
                                    1244,
                                    1245,
                                    1246,
                                    1247,
                                    1248,
                                    1249,
                                    1250,
                                    1251,
                                    1252,
                                    1253,
                                    1254,
                                    1255,
                                    1256,
                                    1257,
                                    1258,
                                    1259,
                                    1260,
                                    1261,
                                    1262,
                                    1263,
                                    1264,
                                    1265,
                                    1266,
                                    1267,
                                    1268,
                                    1269,
                                    1270,
                                    1271,
                                    1272,
                                    1273,
                                    1274,
                                    1275,
                                    1276
                                ],
                                "start": 39751,
                                "length": 6525,
                                "ending_column": 21,
                                "is_dependency": false,
                                "filename_short": "contracts/Contract.sol",
                                "starting_column": 47,
                                "filename_absolute": "/tmp/slither-fbqpa74m/contracts/Contract.sol",
                                "filename_relative": "contracts/Contract.sol"
                            }
                        },
                        "signature": "updatePool(uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/Contract.sol",
            "name": "updatePool",
            "type": "function",
            "lines": [
                1207,
                1208,
                1209,
                1210,
                1211,
                1212,
                1213,
                1214,
                1215,
                1216,
                1217,
                1218,
                1219,
                1220,
                1221
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "rewardToken.mint(address(this),reward)",
            "type": "node",
            "lines": [
                1216,
                1217
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "pool.accRewardPerShare = pool.accRewardPerShare.add(reward.mul(1e12).div(totalStake))",
            "type": "node",
            "lines": [
                1217,
                1218,
                1219,
                1220
            ]
        },
        {
            "file": "contracts/Contract.sol",
            "name": "pool.lastRewardBlock = block.number",
            "type": "node",
            "lines": [
                1220,
                1221
            ]
        }
    ],
    "description": "Reentrancy in Pool.updatePool(uint256) (contracts/Contract.sol#1207-1221):\n\tExternal calls:\n\t- rewardToken.mint(address(this),reward) (contracts/Contract.sol#1216-1217)\n\tState variables written after the call(s):\n\t- pool.accRewardPerShare = pool.accRewardPerShare.add(reward.mul(1e12).div(totalStake)) (contracts/Contract.sol#1217-1220)\n\tPool.pools (contracts/Contract.sol#1111) can be used in cross function reentrancies:\n\t- Pool.addPool(IERC20,uint256,uint256,uint256,uint256) (contracts/Contract.sol#1131-1169)\n\t- Pool.checkPool(uint256) (contracts/Contract.sol#1123-1124)\n\t- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)\n\t- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)\n\t- Pool.poolLength() (contracts/Contract.sol#1124-1129)\n\t- Pool.pools (contracts/Contract.sol#1111)\n\t- Pool.updatePool(uint256) (contracts/Contract.sol#1207-1221)\n\t- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)\n\t- pool.lastRewardBlock = block.number (contracts/Contract.sol#1220-1221)\n\tPool.pools (contracts/Contract.sol#1111) can be used in cross function reentrancies:\n\t- Pool.addPool(IERC20,uint256,uint256,uint256,uint256) (contracts/Contract.sol#1131-1169)\n\t- Pool.checkPool(uint256) (contracts/Contract.sol#1123-1124)\n\t- Pool.deposit(uint256,uint256) (contracts/Contract.sol#1237-1255)\n\t- Pool.pending(uint256,address) (contracts/Contract.sol#1221-1237)\n\t- Pool.poolLength() (contracts/Contract.sol#1124-1129)\n\t- Pool.pools (contracts/Contract.sol#1111)\n\t- Pool.updatePool(uint256) (contracts/Contract.sol#1207-1221)\n\t- Pool.withdraw(uint256,uint256) (contracts/Contract.sol#1255-1269)"
}
low other codex Fee-on-transfer/rebasing tokens break accounting and reward distribution 65 no
view
evidence_json
{
    "evidence": "user.amount is incremented by _amount without checking actual received tokens; totalStake is derived from balanceOf which can diverge from tracked user amounts.",
    "locations": [
        "contracts/Contract.sol:1242",
        "contracts/Contract.sol:1266",
        "contracts/Contract.sol:1276",
        "contracts/Contract.sol:1277"
    ],
    "recommendation": "Track actual received amount via pre/post balance checks, and maintain a separate totalStaked variable. Consider rejecting fee-on-transfer/rebasing tokens.",
    "exploit_scenario": "For deflationary or rebasing tokens, the contract credits user.amount with the requested _amount even if fewer tokens were received. This lets users accrue rewards on more than their actual stake and can cause withdrawals to revert when the pool balance is insufficient."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 7
}