Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 130 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Flush Pool | 12839802 | 1123 days ago | IN | 0 ETH | 0.00158252 | ||||
Flush Pool | 11904605 | 1267 days ago | IN | 0 ETH | 0.00848128 | ||||
Un Stake | 11848727 | 1276 days ago | IN | 0 ETH | 0.0029571 | ||||
Un Stake | 11848593 | 1276 days ago | IN | 0 ETH | 0.00301624 | ||||
Un Stake | 11726380 | 1295 days ago | IN | 0 ETH | 0.01167369 | ||||
Un Stake | 11726296 | 1295 days ago | IN | 0 ETH | 0.00894394 | ||||
Un Stake | 11618985 | 1311 days ago | IN | 0 ETH | 0.00711822 | ||||
Take Rewards | 11618949 | 1311 days ago | IN | 0 ETH | 0.01035277 | ||||
Take Rewards | 11618878 | 1311 days ago | IN | 0 ETH | 0.00884279 | ||||
Un Stake | 11618865 | 1311 days ago | IN | 0 ETH | 0.00976899 | ||||
Take Rewards | 11538868 | 1324 days ago | IN | 0 ETH | 0.01388443 | ||||
Take Rewards | 11533810 | 1324 days ago | IN | 0 ETH | 0.00803322 | ||||
Un Stake | 11442306 | 1338 days ago | IN | 0 ETH | 0.00339579 | ||||
Stake | 11439183 | 1339 days ago | IN | 0 ETH | 0.00612507 | ||||
Un Stake | 11439178 | 1339 days ago | IN | 0 ETH | 0.00503681 | ||||
Stake | 11439130 | 1339 days ago | IN | 0 ETH | 0.00592749 | ||||
Take Rewards | 11432638 | 1340 days ago | IN | 0 ETH | 0.0215558 | ||||
Take Rewards | 11421913 | 1341 days ago | IN | 0 ETH | 0.00550454 | ||||
Un Stake | 11421907 | 1341 days ago | IN | 0 ETH | 0.00550175 | ||||
Stake | 11385099 | 1347 days ago | IN | 0 ETH | 0.01077764 | ||||
Un Stake | 11345013 | 1353 days ago | IN | 0 ETH | 0.00246691 | ||||
Take Rewards | 11344870 | 1353 days ago | IN | 0 ETH | 0.0029942 | ||||
Stake | 11336709 | 1355 days ago | IN | 0 ETH | 0.00509716 | ||||
Stake | 11318716 | 1357 days ago | IN | 0 ETH | 0.01868104 | ||||
Take Rewards | 11247021 | 1368 days ago | IN | 0 ETH | 0.00308105 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
DeFiat_EXTFarming_V2
Compiler Version
v0.6.0+commit.26b70077
Contract Source Code (Solidity Multiple files format)
pragma solidity ^0.6.0; import "./SafeMath.sol"; import {IERC20, IDungeon} from "./_Interfaces.sol"; // File: @defiat-crypto/defiat/blob/master/contracts/XXXXXX.sol /** * @dev Delegated Farming Contract. * Implements a conditoin on the DFT-DFT farming pool for users to generate more rewards */ contract DeFiat_EXTFarming_V2 { using SafeMath for uint256; //Structs struct PoolMetrics { address stakedToken; uint256 staked; // sum of tokens staked in the contract uint256 stakingFee; // entry fee uint256 stakingPoints; address rewardToken; uint256 rewards; // current rewards in the pool uint256 totalRewards; uint256 startTime; // when the pool opens uint256 closingTime; // when the pool closes. uint256 duration; // duration of the staking uint256 lastEvent; // last time metrics were updated. uint256 ratePerToken; // CALCULATED pool reward Rate per Token (calculated based on total stake and time) address DftDungeon; // used to calculate the DeFiatScore bool boostedRewards; } PoolMetrics public poolMetrics; struct UserMetrics { uint256 stake; // native token stake (balanceOf) uint256 stakingPoints; // staking points at lastEvent uint256 poolPoints; // pool point at lastEvent uint256 lastEvent; uint256 rewardAccrued; // accrued rewards over time based on staking points uint256 rewardsPaid; // for information only uint256 lastTxBlock; // latest transaction from the user (antiSpam) } mapping(address => UserMetrics) public userMetrics; address public poolOperator; address public owner; //== constructor constructor(address _stakedToken, address _rewardToken, uint256 _feeBase1000, uint256 _durationHours) public { owner = msg.sender; poolOperator = msg.sender; poolMetrics.stakedToken = address(_stakedToken); poolMetrics.rewardToken = address(_rewardToken); poolMetrics.stakingFee = _feeBase1000; //10 = 1% poolMetrics.duration = _durationHours.mul(3600); // poolMetrics.startTime = block.timestamp; poolMetrics.closingTime = block.timestamp + poolMetrics.duration; poolMetrics.stakingPoints = 1; //avoirds div by 0 at start poolMetrics.boostedRewards = true; } //==Events event PoolInitalized(uint256 amountAdded, string _desc); event RewardTaken(address indexed user, uint256 reward, string _desc); event userStaking(address indexed user, uint256 amount, string _desc); event userWithdrawal(address indexed user, uint256 amount, string _desc); modifier poolLive() { require(block.timestamp >= poolMetrics.startTime,"Pool not started Yet"); //good for delayed starts. require(block.timestamp <= poolMetrics.closingTime,"Pool closed"); //good for delayed starts. _; } modifier poolStarted() { require(block.timestamp >= poolMetrics.startTime,"Pool not started Yet"); //good for delayed starts. _; } modifier poolEnded() { require(block.timestamp > poolMetrics.closingTime,"Pool not ended Yet"); //good for delayed starts. _; } modifier antiSpam(uint256 _blocks) { require(block.number > userMetrics[msg.sender].lastTxBlock.add(_blocks), "Wait X BLOCKS between Transactions"); userMetrics[msg.sender].lastTxBlock = block.number; //update _; } modifier onlyPoolOperator() { require(msg.sender== poolOperator || msg.sender == owner, "msg.sender is not allowed to operate Pool"); _; } modifier onlyOwner() { require(msg.sender== owner, "Only Owner"); _; } modifier antiWhale(address _address) { require(myStakeShare(_address) < 20000, "User stake% share too high. Leave some for the smaller guys ;-)"); //max 20% _; } // avoids stakes being deposited once a user reached 20%. // Simplistic implementation as if we calculate "futureStake" value very 1st stakers will not be able to deposit. //==Basics function currentTime() public view returns (uint256) { return SafeMath.min(block.timestamp, poolMetrics.closingTime); //allows expiration } // SafeMath.min(now, endTime) //==DeFiat Boost function setDungeon(address _dungeon) public onlyOwner { poolMetrics.DftDungeon = _dungeon; } /** * @dev Function gets the amount of DFT in the DFT dungeon farm * to calculate a score that boosts the StakingRewards calculation * DFT requirements to get a boost are hard coded into the contract * 0DFT to 100 DFT staked respectfully generate a 0% to 100% bonus on Staking. * returned is a number between 50 and 100 */ function viewDftBoost(address _address) public view returns(uint256) { uint256 _userStake = IDungeon(poolMetrics.DftDungeon).myStake(_address).div(1e18); return SafeMath.min(200, _userStake.add(100)); } //==Points locking function viewPoolPoints() public view returns(uint256) { uint256 _previousPoints = poolMetrics.stakingPoints; // previous points shapshot uint256 _previousStake = poolMetrics.staked; // previous stake snapshot uint256 _timeHeld = currentTime().sub( SafeMath.max(poolMetrics.lastEvent, poolMetrics.startTime) ); // time held with _previous Event return _previousPoints.add(_previousStake.mul(_timeHeld)); //generated points since event } function lockPoolPoints() internal returns (uint256) { //ON STAKE/UNSTAKE EVENT poolMetrics.stakingPoints = viewPoolPoints(); poolMetrics.lastEvent = currentTime(); // update lastStakingEvent return poolMetrics.stakingPoints; } function viewPointsOf(address _address) public view returns(uint256) { uint256 _previousPoints = userMetrics[_address].stakingPoints; uint256 _previousStake = userMetrics[_address].stake; // boosted stake before event uint256 _timeHeld = currentTime().sub( SafeMath.max(userMetrics[_address].lastEvent, poolMetrics.startTime) ); // time held since lastEvent (take RWD, STK, unSTK) uint256 _result = _previousPoints.add(_previousStake.mul(_timeHeld)); if(_result > poolMetrics.stakingPoints){_result = poolMetrics.stakingPoints;} return _result; } function lockPointsOf(address _address) internal returns (uint256) { userMetrics[_address].poolPoints = viewPoolPoints(); // snapshot of pool points at lockEvent userMetrics[_address].stakingPoints = viewPointsOf(_address); userMetrics[_address].lastEvent = currentTime(); return userMetrics[_address].stakingPoints; } function pointsSnapshot(address _address) public returns (bool) { lockPointsOf(_address); lockPoolPoints(); return true; } //==Rewards function viewTrancheReward(uint256 _period) internal view returns(uint256) { //uint256 _poolRewards = poolMetrics.rewards; //tokens in the pool. Note: This can be setup to a fixed amount (totalRewards) uint256 _poolRewards = poolMetrics.totalRewards; if(poolMetrics.boostedRewards == false){ _poolRewards = SafeMath.min(poolMetrics.staked, _poolRewards);} // baseline is the min( staked, rewards); avoids ultra_farming > staking pool - EXPERIMENTAL uint256 _timeRate = _period.mul(1e18).div(poolMetrics.duration); return _poolRewards.mul(_timeRate).div(1e18); //tranche of rewards on period } function userRateOnPeriod(address _address) public view returns (uint256){ //calculates the delta of pool points and user points since last Event uint256 _deltaUser = viewPointsOf(_address).sub(userMetrics[_address].stakingPoints); // points generated since lastEvent uint256 _deltaPool = viewPoolPoints().sub(userMetrics[_address].poolPoints); // pool points generated since lastEvent uint256 _rate = 0; if(_deltaUser == 0 || _deltaPool == 0 ){_rate = 0;} //rounding else {_rate = _deltaUser.mul(1e18).div(_deltaPool);} return viewDftBoost(_address).mul(_rate).div(200); //applies bossted rate on period based on the DFT in the dungeon. } function viewAdditionalRewardOf(address _address) public view returns(uint256) { // rewards generated since last Event require(poolMetrics.rewards > 0, "No Rewards in the Pool"); // user weighted average share of Pool since lastEvent uint256 _userRateOnPeriod = userRateOnPeriod(_address); //can drop if pool size increases within period -> slows rewards generation // Pool Yield Rate uint256 _period = currentTime().sub( SafeMath.max(userMetrics[_address].lastEvent, poolMetrics.startTime) ); // time elapsed since last reward or pool started (if never taken rewards) // Calculate reward uint256 _reward = viewTrancheReward(_period).mul(_userRateOnPeriod).div(1e18); //user rate on pool rewards' tranche return _reward; } function lockRewardOf(address _address) public returns(uint256) { uint256 _additional = viewAdditionalRewardOf(_address); //stakeShare(sinceLastEvent) * poolRewards(sinceLastEvent) userMetrics[_address].rewardAccrued = userMetrics[_address].rewardAccrued.add(_additional); //snapshot rewards. pointsSnapshot(_address); //updates lastEvent and points return userMetrics[_address].rewardAccrued; } function takeRewards() public poolStarted antiSpam(1) { //1 blocks between rewards require(poolMetrics.rewards > 0, "No Rewards in the Pool"); uint256 _reward = lockRewardOf(msg.sender); //returns already accrued + additional (also resets time counters) userMetrics[msg.sender].rewardsPaid = _reward; // update user paid rewards userMetrics[msg.sender].rewardAccrued = 0; //flush previously accrued rewards. poolMetrics.rewards = poolMetrics.rewards.sub(_reward); // update pool rewards IERC20(poolMetrics.rewardToken).transfer(msg.sender, _reward); // transfer pointsSnapshot(msg.sender); //updates lastEvent //lockRewardOf(msg.sender); emit RewardTaken(msg.sender, _reward, "Rewards Sent"); } //==staking & unstaking function stake(uint256 _amount) public poolLive antiSpam(1) antiWhale(msg.sender){ require(_amount > 0, "Cannot stake 0"); //initialize userMetrics[msg.sender].rewardAccrued = lockRewardOf(msg.sender); //Locks previous eligible rewards based on lastRewardEvent and lastStakingEvent pointsSnapshot(msg.sender); //receive staked uint256 _balanceNow = IERC20(address(poolMetrics.stakedToken)).balanceOf(address(this)); IERC20(poolMetrics.stakedToken).transferFrom(msg.sender, address(this), _amount); //will require allowance uint256 amount = IERC20(address(poolMetrics.stakedToken)).balanceOf(address(this)).sub(_balanceNow); //actually received //update pool and user based on stake and fee uint256 _fee = amount.mul(poolMetrics.stakingFee).div(1000); amount = amount.sub(_fee); if(poolMetrics.stakedToken == poolMetrics.rewardToken){poolMetrics.rewards = poolMetrics.rewards.add(_fee);} poolMetrics.staked = poolMetrics.staked.add(amount); userMetrics[msg.sender].stake = userMetrics[msg.sender].stake.add(amount); //finalize pointsSnapshot(msg.sender); //updates lastEvent emit userStaking(msg.sender, amount, "Staking... ... "); } function unStake(uint256 _amount) public poolStarted antiSpam(1) { require(_amount > 0, "Cannot withdraw 0"); require(_amount <= userMetrics[msg.sender].stake, "Cannot withdraw more than stake"); //initialize userMetrics[msg.sender].rewardAccrued = lockRewardOf(msg.sender); //snapshot of previous eligible rewards based on lastStakingEvent pointsSnapshot(msg.sender); // update metrics userMetrics[msg.sender].stake = userMetrics[msg.sender].stake.sub(_amount); poolMetrics.staked = poolMetrics.staked.sub(_amount); // transfer _amount. Put at the end of the function to avoid reentrancy. IERC20(poolMetrics.stakedToken).transfer(msg.sender, _amount); //finalize emit userWithdrawal(msg.sender, _amount, "Widhtdrawal"); } function myStake(address _address) public view returns(uint256) { return userMetrics[_address].stake; } function myStakeShare(address _address) public view returns(uint256) { if(poolMetrics.staked == 0){return 0;} else { return (userMetrics[_address].stake).mul(100000).div(poolMetrics.staked);} } //base 100,000 function myPointsShare(address _address) public view returns(uint256) { //weighted average of your stake over time vs the pool return viewPointsOf(_address).mul(100000).div(viewPoolPoints()); } //base 100,000. Drops when taking rewards.=> Refills after (favors strong hands) function myRewards(address _address) public view returns(uint256) { //delayed start obfuscation (avoids disturbances in the force...) if(block.timestamp <= poolMetrics.startTime || poolMetrics.rewards == 0){return 0;} else { return userMetrics[_address].rewardAccrued.add(viewAdditionalRewardOf(_address));} //previousLock + time based extra } //== OPERATOR FUNCTIONS == function setBoostedRewards(bool _bool) public onlyPoolOperator { poolMetrics.boostedRewards = _bool; } function loadRewards(uint256 _amount, uint256 _preStake) public onlyPoolOperator { //load tokens in the rewards pool. uint256 _balanceNow = IERC20(address(poolMetrics.rewardToken)).balanceOf(address(this)); IERC20(address(poolMetrics.rewardToken)).transferFrom( msg.sender, address(this), _amount); uint256 amount = IERC20(address(poolMetrics.rewardToken)).balanceOf(address(this)).sub(_balanceNow); //actually received if(poolMetrics.rewards == 0){ // initialization poolMetrics.staked = SafeMath.add(poolMetrics.staked,_preStake);} // creates baseline for pool. Avoids massive movements on rewards poolMetrics.rewards = SafeMath.add(poolMetrics.rewards,amount); poolMetrics.totalRewards = poolMetrics.totalRewards.add(_amount); } function flushPool(address _recipient, address _ERC20address) external onlyPoolOperator poolEnded { uint256 _amount = IERC20(_ERC20address).balanceOf(address(this)); IERC20(_ERC20address).transfer(_recipient, _amount); //use of the _ERC20 traditional transfer //return true; } //get tokens sent by error to contract function setPoolOperator(address _address) public onlyPoolOperator { poolOperator = _address; } function setFee(uint256 _fee) public onlyOwner { poolMetrics.stakingFee = _fee; } function killPool() public onlyOwner poolEnded returns(bool) { selfdestruct(msg.sender); } //frees space on the ETH chain }
// File: @openzeppelin/contracts/math/Math.sol // // File: @openzeppelin/contracts/math/SafeMath.sol pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath{ /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } /** * @dev Returns the largest of two numbers. */ function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } /** * @dev Returns the smallest of two numbers. */ function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } /** * @dev Returns the average of two numbers. The result is rounded towards * zero. */ function average(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b) / 2 can overflow, so we distribute return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IDungeon { function myStake(address _address) external view returns(uint256); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_stakedToken","type":"address"},{"internalType":"address","name":"_rewardToken","type":"address"},{"internalType":"uint256","name":"_feeBase1000","type":"uint256"},{"internalType":"uint256","name":"_durationHours","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountAdded","type":"uint256"},{"indexed":false,"internalType":"string","name":"_desc","type":"string"}],"name":"PoolInitalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"string","name":"_desc","type":"string"}],"name":"RewardTaken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"_desc","type":"string"}],"name":"userStaking","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"_desc","type":"string"}],"name":"userWithdrawal","type":"event"},{"inputs":[],"name":"currentTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"address","name":"_ERC20address","type":"address"}],"name":"flushPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"killPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_preStake","type":"uint256"}],"name":"loadRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"lockRewardOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"myPointsShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"myRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"myStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"myStakeShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"pointsSnapshot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"poolMetrics","outputs":[{"internalType":"address","name":"stakedToken","type":"address"},{"internalType":"uint256","name":"staked","type":"uint256"},{"internalType":"uint256","name":"stakingFee","type":"uint256"},{"internalType":"uint256","name":"stakingPoints","type":"uint256"},{"internalType":"address","name":"rewardToken","type":"address"},{"internalType":"uint256","name":"rewards","type":"uint256"},{"internalType":"uint256","name":"totalRewards","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"closingTime","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"lastEvent","type":"uint256"},{"internalType":"uint256","name":"ratePerToken","type":"uint256"},{"internalType":"address","name":"DftDungeon","type":"address"},{"internalType":"bool","name":"boostedRewards","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setBoostedRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_dungeon","type":"address"}],"name":"setDungeon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setPoolOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"takeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userMetrics","outputs":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"stakingPoints","type":"uint256"},{"internalType":"uint256","name":"poolPoints","type":"uint256"},{"internalType":"uint256","name":"lastEvent","type":"uint256"},{"internalType":"uint256","name":"rewardAccrued","type":"uint256"},{"internalType":"uint256","name":"rewardsPaid","type":"uint256"},{"internalType":"uint256","name":"lastTxBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"userRateOnPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"viewAdditionalRewardOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"viewDftBoost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"viewPointsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewPoolPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162003a5338038062003a53833981810160405260808110156200003757600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919050505033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836000800160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600060040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160006002018190555062000195610e1082620001ec60201b620032f51790919060201c565b600060090181905550426000600701819055506000600901544201600060080181905550600160006003018190555060016000600c0160146101000a81548160ff0219169083151502179055505050505062000277565b60008083141562000201576000905062000271565b60008284029050828482816200021357fe5b04146200026c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062003a326021913960400191505060405180910390fd5b809150505b92915050565b6137ab80620002876000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80637adaa21a116100de578063ad12101d11610097578063cf604bc911610071578063cf604bc91461079f578063d18e81b3146107e9578063fcecc4df14610807578063ff939f96146109085761018e565b8063ad12101d146106ab578063bb2c2556146106e3578063beaa369a146107475761018e565b80637adaa21a146105215780638883cb0e1461052b5780638da5cb5b14610583578063918771cd146105cd5780639e05da6a14610625578063a694fc3a1461067d5761018e565b8063430c45321161014b5780635d3eea91116101255780635d3eea911461044b57806361546cc01461047957806369fe0e2d146104d15780637a39b8d8146104ff5761018e565b8063430c4532146103b95780634a6013d9146103fd5780635c6187aa1461042d5761018e565b80631f227e481461019357806320b9588c146102155780632612798d1461026d5780632d2d1008146102c557806335ad1e031461031d57806342819fc414610361575b600080fd5b6101d5600480360360208110156101a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610964565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b6102576004803603602081101561022b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109a6565b6040518082815260200191505060405180910390f35b6102af6004803603602081101561028357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a32565b6040518082815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b6d565b6040518082815260200191505060405180910390f35b61035f6004803603602081101561033357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bfc565b005b6103a36004803603602081101561037757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d3e565b6040518082815260200191505060405180910390f35b6103fb600480360360208110156103cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e8a565b005b61042b6004803603602081101561041357600080fd5b81019080803515159060200190929190505050610f94565b005b6104356110b2565b6040518082815260200191505060405180910390f35b6104776004803603602081101561046157600080fd5b8101908080359060200190929190505050611124565b005b6104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611649565b6040518082815260200191505060405180910390f35b6104fd600480360360208110156104e757600080fd5b8101908080359060200190929190505050611689565b005b610507611759565b604051808215151515815260200191505060405180910390f35b6105296118b1565b005b61056d6004803603602081101561054157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd5565b6040518082815260200191505060405180910390f35b61058b611df7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61060f600480360360208110156105e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1d565b6040518082815260200191505060405180910390f35b6106676004803603602081101561063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1b565b6040518082815260200191505060405180910390f35b6106a96004803603602081101561069357600080fd5b8101908080359060200190929190505050612063565b005b6106e1600480360360408110156106c157600080fd5b8101908080359060200190929190803590602001909291905050506128a6565b005b610745600480360360408110156106f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cf8565b005b6107896004803603602081101561075d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ff4565b6040518082815260200191505060405180910390f35b6107a7613040565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f1613066565b6040518082815260200191505060405180910390f35b61080f61307c565b604051808f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018e81526020018d81526020018c81526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019e50505050505050505050505050505060405180910390f35b61094a6004803603602081101561091e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613143565b604051808215151515815260200191505060405180910390f35b600d6020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b60008060070154421115806109bf575060008060050154145b156109cd5760009050610a2d565b610a2a6109d983610a32565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461316190919063ffffffff16565b90505b919050565b60008060006005015411610aae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f205265776172647320696e2074686520506f6f6c0000000000000000000081525060200191505060405180910390fd5b6000610ab983610d3e565b90506000610b27610b11600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546000600701546131e9565b610b19613066565b61320390919063ffffffff16565b90506000610b60670de0b6b3a7640000610b5285610b448661324d565b6132f590919063ffffffff16565b61337b90919063ffffffff16565b9050809350505050919050565b6000806000600101541415610b855760009050610bf7565b610bf4600060010154610be6620186a0600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546132f590919063ffffffff16565b61337b90919063ffffffff16565b90505b919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ca55750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610cfa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136cb6029913960400191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610d9e600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154610d9085611f1b565b61320390919063ffffffff16565b90506000610dfe600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610df06110b2565b61320390919063ffffffff16565b905060008090506000831480610e145750600082145b15610e225760009050610e52565b610e4f82610e41670de0b6b3a7640000866132f590919063ffffffff16565b61337b90919063ffffffff16565b90505b610e8060c8610e7283610e6489611cd5565b6132f590919063ffffffff16565b61337b90919063ffffffff16565b9350505050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000600c0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061103d5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611092576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136cb6029913960400191505060405180910390fd5b806000600c0160146101000a81548160ff02191690831515021790555050565b600080600060030154905060008060010154905060006110f56110df6000600a01546000600701546131e9565b6110e7613066565b61320390919063ffffffff16565b905061111c61110d82846132f590919063ffffffff16565b8461316190919063ffffffff16565b935050505090565b60006007015442101561119f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f506f6f6c206e6f7420737461727465642059657400000000000000000000000081525060200191505060405180910390fd5b60016111f681600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461316190919063ffffffff16565b431161124d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806137156022913960400191505060405180910390fd5b43600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601819055506000821161130a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211156113c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f74207769746864726177206d6f7265207468616e207374616b650081525060200191505060405180910390fd5b6113cb33611e1d565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555061141a33613143565b5061147082600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461320390919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114ce8260006001015461320390919063ffffffff16565b6000600101819055506000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561158257600080fd5b505af1158015611596573d6000803e3d6000fd5b505050506040513d60208110156115ac57600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167ff81475acca41b6158ffa94b90c0570165f1052684e7df9ab735e66ca1f57435f8360405180828152602001806020018281038252600b8152602001807f576964687464726177616c0000000000000000000000000000000000000000008152506020019250505060405180910390a25050565b60006116826116566110b2565b611674620186a061166686611f1b565b6132f590919063ffffffff16565b61337b90919063ffffffff16565b9050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060006002018190555050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461181e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600801544211611898576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f506f6f6c206e6f7420656e64656420596574000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b60006007015442101561192c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f506f6f6c206e6f7420737461727465642059657400000000000000000000000081525060200191505060405180910390fd5b600161198381600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461316190919063ffffffff16565b43116119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806137156022913960400191505060405180910390fd5b43600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601819055506000806005015411611a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f205265776172647320696e2074686520506f6f6c0000000000000000000081525060200191505060405180910390fd5b6000611aa633611e1d565b905080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040181905550611b4f8160006005015461320390919063ffffffff16565b600060050181905550600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c0457600080fd5b505af1158015611c18573d6000803e3d6000fd5b505050506040513d6020811015611c2e57600080fd5b810190808051906020019092919050505050611c4933613143565b503373ffffffffffffffffffffffffffffffffffffffff167f2fc029baad553950fe705b54adac427ede59ec14428d842ec4f83ee1a090e8fb8260405180828152602001806020018281038252600c8152602001807f526577617264732053656e7400000000000000000000000000000000000000008152506020019250505060405180910390a25050565b600080611dcf670de0b6b3a76400006000600c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beaa369a866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d8657600080fd5b505afa158015611d9a573d6000803e3d6000fd5b505050506040513d6020811015611db057600080fd5b810190808051906020019092919050505061337b90919063ffffffff16565b9050611def60c8611dea60648461316190919063ffffffff16565b6133c5565b915050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611e2983610a32565b9050611e8081600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461316190919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040181905550611ecf83613143565b50600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154915050919050565b600080600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000612016612000600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546000600701546131e9565b612008613066565b61320390919063ffffffff16565b9050600061203f61203083856132f590919063ffffffff16565b8561316190919063ffffffff16565b90506000600301548111156120575760006003015490505b80945050505050919050565b6000600701544210156120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f506f6f6c206e6f7420737461727465642059657400000000000000000000000081525060200191505060405180910390fd5b600060080154421115612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f506f6f6c20636c6f73656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016121b081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461316190919063ffffffff16565b4311612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806137156022913960400191505060405180910390fd5b43600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555033614e2061225b82610b6d565b106122b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180613737603f913960400191505060405180910390fd5b60008311612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b61233033611e1d565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555061237f33613143565b5060008060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561242357600080fd5b505afa158015612437573d6000803e3d6000fd5b505050506040513d602081101561244d57600080fd5b810190808051906020019092919050505090506000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561253f57600080fd5b505af1158015612553573d6000803e3d6000fd5b505050506040513d602081101561256957600080fd5b810190808051906020019092919050505050600061266b826000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561262257600080fd5b505afa158015612636573d6000803e3d6000fd5b505050506040513d602081101561264c57600080fd5b810190808051906020019092919050505061320390919063ffffffff16565b9050600061269b6103e861268d600060020154856132f590919063ffffffff16565b61337b90919063ffffffff16565b90506126b0818361320390919063ffffffff16565b9150600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612751576127478160006005015461316190919063ffffffff16565b6000600501819055505b6127698260006001015461316190919063ffffffff16565b6000600101819055506127c782600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461316190919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061281633613143565b503373ffffffffffffffffffffffffffffffffffffffff167f167ca5543be7bdd4d64d74a1255ec46c74aa0b2ad274a73b1a5c910f8d65d26f8360405180828152602001806020018281038252600f8152602001807f5374616b696e672e2e2e202e2e2e2000000000000000000000000000000000008152506020019250505060405180910390a2505050505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061294f5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6129a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136cb6029913960400191505060405180910390fd5b60008060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a4757600080fd5b505afa158015612a5b573d6000803e3d6000fd5b505050506040513d6020811015612a7157600080fd5b81019080805190602001909291905050509050600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612b6457600080fd5b505af1158015612b78573d6000803e3d6000fd5b505050506040513d6020811015612b8e57600080fd5b8101908080519060200190929190505050506000612c9182600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c4857600080fd5b505afa158015612c5c573d6000803e3d6000fd5b505050506040513d6020811015612c7257600080fd5b810190808051906020019092919050505061320390919063ffffffff16565b9050600080600501541415612cb957612caf60006001015484613161565b6000600101819055505b612cc860006005015482613161565b600060050181905550612ce98460006006015461316190919063ffffffff16565b60006006018190555050505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612da15750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612df6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136cb6029913960400191505060405180910390fd5b6000600801544211612e70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f506f6f6c206e6f7420656e64656420596574000000000000000000000000000081525060200191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612eef57600080fd5b505afa158015612f03573d6000803e3d6000fd5b505050506040513d6020811015612f1957600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612fb357600080fd5b505af1158015612fc7573d6000803e3d6000fd5b505050506040513d6020811015612fdd57600080fd5b810190808051906020019092919050505050505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000613077426000600801546133c5565b905090565b60008060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600c0160149054906101000a900460ff1690508e565b600061314e826133de565b50613157613515565b5060019050919050565b6000808284019050838110156131df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000818310156131f957816131fb565b825b905092915050565b600061324583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613544565b905092915050565b6000806000600601549050600015156000600c0160149054906101000a900460ff161515141561328957613286600060010154826133c5565b90505b60006132bd6000600901546132af670de0b6b3a7640000876132f590919063ffffffff16565b61337b90919063ffffffff16565b90506132ec670de0b6b3a76400006132de83856132f590919063ffffffff16565b61337b90919063ffffffff16565b92505050919050565b6000808314156133085760009050613375565b600082840290508284828161331957fe5b0414613370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806136f46021913960400191505060405180910390fd5b809150505b92915050565b60006133bd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613604565b905092915050565b60008183106133d457816133d6565b825b905092915050565b60006133e86110b2565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555061343782611f1b565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550613485613066565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600061351f6110b2565b600060030181905550613530613066565b6000600a0181905550600060030154905090565b60008383111582906135f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156135b657808201518184015260208101905061359b565b50505050905090810190601f1680156135e35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831182906136b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561367557808201518184015260208101905061365a565b50505050905090810190601f1680156136a25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816136bc57fe5b04905080915050939250505056fe6d73672e73656e646572206973206e6f7420616c6c6f77656420746f206f70657261746520506f6f6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7757616974205820424c4f434b53206265747765656e205472616e73616374696f6e7355736572207374616b652520736861726520746f6f20686967682e204c6561766520736f6d6520666f722074686520736d616c6c65722067757973203b2d29a26469706673582212202131e5f6f85019179498cb6df8d7b124b50da1f0e8386b0c85fa70690eb221a864736f6c63430006000033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77000000000000000000000000b469899812f74ee43bffe2d2022590111da864250000000000000000000000009a7a4c141a3bcce4a31e42c1192ac6add35069b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088e
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80637adaa21a116100de578063ad12101d11610097578063cf604bc911610071578063cf604bc91461079f578063d18e81b3146107e9578063fcecc4df14610807578063ff939f96146109085761018e565b8063ad12101d146106ab578063bb2c2556146106e3578063beaa369a146107475761018e565b80637adaa21a146105215780638883cb0e1461052b5780638da5cb5b14610583578063918771cd146105cd5780639e05da6a14610625578063a694fc3a1461067d5761018e565b8063430c45321161014b5780635d3eea91116101255780635d3eea911461044b57806361546cc01461047957806369fe0e2d146104d15780637a39b8d8146104ff5761018e565b8063430c4532146103b95780634a6013d9146103fd5780635c6187aa1461042d5761018e565b80631f227e481461019357806320b9588c146102155780632612798d1461026d5780632d2d1008146102c557806335ad1e031461031d57806342819fc414610361575b600080fd5b6101d5600480360360208110156101a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610964565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b6102576004803603602081101561022b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109a6565b6040518082815260200191505060405180910390f35b6102af6004803603602081101561028357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a32565b6040518082815260200191505060405180910390f35b610307600480360360208110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b6d565b6040518082815260200191505060405180910390f35b61035f6004803603602081101561033357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bfc565b005b6103a36004803603602081101561037757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d3e565b6040518082815260200191505060405180910390f35b6103fb600480360360208110156103cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e8a565b005b61042b6004803603602081101561041357600080fd5b81019080803515159060200190929190505050610f94565b005b6104356110b2565b6040518082815260200191505060405180910390f35b6104776004803603602081101561046157600080fd5b8101908080359060200190929190505050611124565b005b6104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611649565b6040518082815260200191505060405180910390f35b6104fd600480360360208110156104e757600080fd5b8101908080359060200190929190505050611689565b005b610507611759565b604051808215151515815260200191505060405180910390f35b6105296118b1565b005b61056d6004803603602081101561054157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd5565b6040518082815260200191505060405180910390f35b61058b611df7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61060f600480360360208110156105e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1d565b6040518082815260200191505060405180910390f35b6106676004803603602081101561063b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1b565b6040518082815260200191505060405180910390f35b6106a96004803603602081101561069357600080fd5b8101908080359060200190929190505050612063565b005b6106e1600480360360408110156106c157600080fd5b8101908080359060200190929190803590602001909291905050506128a6565b005b610745600480360360408110156106f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cf8565b005b6107896004803603602081101561075d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ff4565b6040518082815260200191505060405180910390f35b6107a7613040565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f1613066565b6040518082815260200191505060405180910390f35b61080f61307c565b604051808f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018e81526020018d81526020018c81526020018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019e50505050505050505050505050505060405180910390f35b61094a6004803603602081101561091e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613143565b604051808215151515815260200191505060405180910390f35b600d6020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b60008060070154421115806109bf575060008060050154145b156109cd5760009050610a2d565b610a2a6109d983610a32565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461316190919063ffffffff16565b90505b919050565b60008060006005015411610aae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f205265776172647320696e2074686520506f6f6c0000000000000000000081525060200191505060405180910390fd5b6000610ab983610d3e565b90506000610b27610b11600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546000600701546131e9565b610b19613066565b61320390919063ffffffff16565b90506000610b60670de0b6b3a7640000610b5285610b448661324d565b6132f590919063ffffffff16565b61337b90919063ffffffff16565b9050809350505050919050565b6000806000600101541415610b855760009050610bf7565b610bf4600060010154610be6620186a0600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546132f590919063ffffffff16565b61337b90919063ffffffff16565b90505b919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ca55750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610cfa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136cb6029913960400191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610d9e600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154610d9085611f1b565b61320390919063ffffffff16565b90506000610dfe600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610df06110b2565b61320390919063ffffffff16565b905060008090506000831480610e145750600082145b15610e225760009050610e52565b610e4f82610e41670de0b6b3a7640000866132f590919063ffffffff16565b61337b90919063ffffffff16565b90505b610e8060c8610e7283610e6489611cd5565b6132f590919063ffffffff16565b61337b90919063ffffffff16565b9350505050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000600c0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061103d5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611092576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136cb6029913960400191505060405180910390fd5b806000600c0160146101000a81548160ff02191690831515021790555050565b600080600060030154905060008060010154905060006110f56110df6000600a01546000600701546131e9565b6110e7613066565b61320390919063ffffffff16565b905061111c61110d82846132f590919063ffffffff16565b8461316190919063ffffffff16565b935050505090565b60006007015442101561119f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f506f6f6c206e6f7420737461727465642059657400000000000000000000000081525060200191505060405180910390fd5b60016111f681600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461316190919063ffffffff16565b431161124d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806137156022913960400191505060405180910390fd5b43600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601819055506000821161130a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211156113c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f74207769746864726177206d6f7265207468616e207374616b650081525060200191505060405180910390fd5b6113cb33611e1d565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555061141a33613143565b5061147082600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461320390919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114ce8260006001015461320390919063ffffffff16565b6000600101819055506000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561158257600080fd5b505af1158015611596573d6000803e3d6000fd5b505050506040513d60208110156115ac57600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167ff81475acca41b6158ffa94b90c0570165f1052684e7df9ab735e66ca1f57435f8360405180828152602001806020018281038252600b8152602001807f576964687464726177616c0000000000000000000000000000000000000000008152506020019250505060405180910390a25050565b60006116826116566110b2565b611674620186a061166686611f1b565b6132f590919063ffffffff16565b61337b90919063ffffffff16565b9050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060006002018190555050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461181e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600801544211611898576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f506f6f6c206e6f7420656e64656420596574000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b60006007015442101561192c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f506f6f6c206e6f7420737461727465642059657400000000000000000000000081525060200191505060405180910390fd5b600161198381600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461316190919063ffffffff16565b43116119da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806137156022913960400191505060405180910390fd5b43600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601819055506000806005015411611a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f205265776172647320696e2074686520506f6f6c0000000000000000000081525060200191505060405180910390fd5b6000611aa633611e1d565b905080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040181905550611b4f8160006005015461320390919063ffffffff16565b600060050181905550600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c0457600080fd5b505af1158015611c18573d6000803e3d6000fd5b505050506040513d6020811015611c2e57600080fd5b810190808051906020019092919050505050611c4933613143565b503373ffffffffffffffffffffffffffffffffffffffff167f2fc029baad553950fe705b54adac427ede59ec14428d842ec4f83ee1a090e8fb8260405180828152602001806020018281038252600c8152602001807f526577617264732053656e7400000000000000000000000000000000000000008152506020019250505060405180910390a25050565b600080611dcf670de0b6b3a76400006000600c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beaa369a866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d8657600080fd5b505afa158015611d9a573d6000803e3d6000fd5b505050506040513d6020811015611db057600080fd5b810190808051906020019092919050505061337b90919063ffffffff16565b9050611def60c8611dea60648461316190919063ffffffff16565b6133c5565b915050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611e2983610a32565b9050611e8081600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461316190919063ffffffff16565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040181905550611ecf83613143565b50600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154915050919050565b600080600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015490506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000612016612000600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546000600701546131e9565b612008613066565b61320390919063ffffffff16565b9050600061203f61203083856132f590919063ffffffff16565b8561316190919063ffffffff16565b90506000600301548111156120575760006003015490505b80945050505050919050565b6000600701544210156120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f506f6f6c206e6f7420737461727465642059657400000000000000000000000081525060200191505060405180910390fd5b600060080154421115612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f506f6f6c20636c6f73656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016121b081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461316190919063ffffffff16565b4311612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806137156022913960400191505060405180910390fd5b43600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555033614e2061225b82610b6d565b106122b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180613737603f913960400191505060405180910390fd5b60008311612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b61233033611e1d565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555061237f33613143565b5060008060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561242357600080fd5b505afa158015612437573d6000803e3d6000fd5b505050506040513d602081101561244d57600080fd5b810190808051906020019092919050505090506000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561253f57600080fd5b505af1158015612553573d6000803e3d6000fd5b505050506040513d602081101561256957600080fd5b810190808051906020019092919050505050600061266b826000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561262257600080fd5b505afa158015612636573d6000803e3d6000fd5b505050506040513d602081101561264c57600080fd5b810190808051906020019092919050505061320390919063ffffffff16565b9050600061269b6103e861268d600060020154856132f590919063ffffffff16565b61337b90919063ffffffff16565b90506126b0818361320390919063ffffffff16565b9150600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000800160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612751576127478160006005015461316190919063ffffffff16565b6000600501819055505b6127698260006001015461316190919063ffffffff16565b6000600101819055506127c782600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461316190919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061281633613143565b503373ffffffffffffffffffffffffffffffffffffffff167f167ca5543be7bdd4d64d74a1255ec46c74aa0b2ad274a73b1a5c910f8d65d26f8360405180828152602001806020018281038252600f8152602001807f5374616b696e672e2e2e202e2e2e2000000000000000000000000000000000008152506020019250505060405180910390a2505050505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061294f5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6129a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136cb6029913960400191505060405180910390fd5b60008060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a4757600080fd5b505afa158015612a5b573d6000803e3d6000fd5b505050506040513d6020811015612a7157600080fd5b81019080805190602001909291905050509050600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612b6457600080fd5b505af1158015612b78573d6000803e3d6000fd5b505050506040513d6020811015612b8e57600080fd5b8101908080519060200190929190505050506000612c9182600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c4857600080fd5b505afa158015612c5c573d6000803e3d6000fd5b505050506040513d6020811015612c7257600080fd5b810190808051906020019092919050505061320390919063ffffffff16565b9050600080600501541415612cb957612caf60006001015484613161565b6000600101819055505b612cc860006005015482613161565b600060050181905550612ce98460006006015461316190919063ffffffff16565b60006006018190555050505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612da15750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612df6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136cb6029913960400191505060405180910390fd5b6000600801544211612e70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f506f6f6c206e6f7420656e64656420596574000000000000000000000000000081525060200191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612eef57600080fd5b505afa158015612f03573d6000803e3d6000fd5b505050506040513d6020811015612f1957600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612fb357600080fd5b505af1158015612fc7573d6000803e3d6000fd5b505050506040513d6020811015612fdd57600080fd5b810190808051906020019092919050505050505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000613077426000600801546133c5565b905090565b60008060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600c0160149054906101000a900460ff1690508e565b600061314e826133de565b50613157613515565b5060019050919050565b6000808284019050838110156131df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000818310156131f957816131fb565b825b905092915050565b600061324583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613544565b905092915050565b6000806000600601549050600015156000600c0160149054906101000a900460ff161515141561328957613286600060010154826133c5565b90505b60006132bd6000600901546132af670de0b6b3a7640000876132f590919063ffffffff16565b61337b90919063ffffffff16565b90506132ec670de0b6b3a76400006132de83856132f590919063ffffffff16565b61337b90919063ffffffff16565b92505050919050565b6000808314156133085760009050613375565b600082840290508284828161331957fe5b0414613370576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806136f46021913960400191505060405180910390fd5b809150505b92915050565b60006133bd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613604565b905092915050565b60008183106133d457816133d6565b825b905092915050565b60006133e86110b2565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018190555061343782611f1b565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550613485613066565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600061351f6110b2565b600060030181905550613530613066565b6000600a0181905550600060030154905090565b60008383111582906135f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156135b657808201518184015260208101905061359b565b50505050905090810190601f1680156135e35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080831182906136b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561367557808201518184015260208101905061365a565b50505050905090810190601f1680156136a25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816136bc57fe5b04905080915050939250505056fe6d73672e73656e646572206973206e6f7420616c6c6f77656420746f206f70657261746520506f6f6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7757616974205820424c4f434b53206265747765656e205472616e73616374696f6e7355736572207374616b652520736861726520746f6f20686967682e204c6561766520736f6d6520666f722074686520736d616c6c65722067757973203b2d29a26469706673582212202131e5f6f85019179498cb6df8d7b124b50da1f0e8386b0c85fa70690eb221a864736f6c63430006000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b469899812f74ee43bffe2d2022590111da864250000000000000000000000009a7a4c141a3bcce4a31e42c1192ac6add35069b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088e
-----Decoded View---------------
Arg [0] : _stakedToken (address): 0xB469899812F74EE43Bffe2D2022590111DA86425
Arg [1] : _rewardToken (address): 0x9a7a4C141a3BCCE4A31e42C1192Ac6Add35069b4
Arg [2] : _feeBase1000 (uint256): 0
Arg [3] : _durationHours (uint256): 2190
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000b469899812f74ee43bffe2d2022590111da86425
Arg [1] : 0000000000000000000000009a7a4c141a3bcce4a31e42c1192ac6add35069b4
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 000000000000000000000000000000000000000000000000000000000000088e
Deployed Bytecode Sourcemap
300:15676:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;300:15676:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1700:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1700:50:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13870:371;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13870:371:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8817:877;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8817:877:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13335:221;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13335:221:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15620:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15620:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8090:717;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8090:717:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4500:105;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4500:105:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14281:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14281:114:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5222:634;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12372:836;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12372:836:0;;;;;;;;;;;;;;;;;:::i;:::-;;13577:206;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13577:206:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15737:93;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15737:93:0;;;;;;;;;;;;;;;;;:::i;:::-;;15840:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10156:860;;;:::i;:::-;;4967:222;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4967:222:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1794:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9704:440;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9704:440:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6130:739;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6130:739:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11051:1310;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11051:1310:0;;;;;;;;;;;;;;;;;:::i;:::-;;14401:856;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14401:856:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15271:304;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15271:304:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13214:115;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13214:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1765:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4292:151;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1195:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7239:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7239:150:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1700:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13870:371::-;13927:7;14042:11;:21;;;14023:15;:40;;:68;;;;14090:1;14067:11;:19;;;:24;14023:68;14020:181;;;14100:1;14093:8;;;;14020:181;14126:73;14166:32;14189:8;14166:22;:32::i;:::-;14126:11;:21;14138:8;14126:21;;;;;;;;;;;;;;;:35;;;:39;;:73;;;;:::i;:::-;14119:80;;13870:371;;;;:::o;8817:877::-;8887:7;8974:1;8952:11;:19;;;:23;8944:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9084:25;9112:26;9129:8;9112:16;:26::i;:::-;9084:54;;9261:15;9279:147;9326:68;9339:11;:21;9351:8;9339:21;;;;;;;;;;;;;;;:31;;;9372:11;:21;;;9326:12;:68::i;:::-;9279:13;:11;:13::i;:::-;:17;;:147;;;;:::i;:::-;9261:165;;9547:15;9565:59;9619:4;9565:49;9596:17;9565:26;9583:7;9565:17;:26::i;:::-;:30;;:49;;;;:::i;:::-;:53;;:59;;;;:::i;:::-;9547:77;;9680:7;9673:14;;;;;8817:877;;;:::o;13335:221::-;13395:7;13439:1;13417:11;:18;;;:23;13414:136;;;13449:1;13442:8;;;;13414:136;13483:65;13529:11;:18;;;13483:41;13517:6;13484:11;:21;13496:8;13484:21;;;;;;;;;;;;;;;:27;;;13483:33;;:41;;;;:::i;:::-;:45;;:65;;;;:::i;:::-;13476:72;;13335:221;;;;:::o;15620:107::-;3703:12;;;;;;;;;;;3690:25;;:10;:25;;;:48;;;;3733:5;;;;;;;;;;;3719:19;;:10;:19;;;3690:48;3682:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15712:8:::1;15697:12;;:23;;;;;;;;;;;;;;;;;;15620:107:::0;:::o;8090:717::-;8155:7;8252:18;8273:63;8300:11;:21;8312:8;8300:21;;;;;;;;;;;;;;;:35;;;8273:22;8286:8;8273:12;:22::i;:::-;:26;;:63;;;;:::i;:::-;8252:84;;8382:18;8403:54;8424:11;:21;8436:8;8424:21;;;;;;;;;;;;;;;:32;;;8403:16;:14;:16::i;:::-;:20;;:54;;;;:::i;:::-;8382:75;;8517:13;8533:1;8517:17;;8561:1;8547:10;:15;:34;;;;8580:1;8566:10;:15;8547:34;8544:123;;;8592:1;8584:9;;8544:123;;;8629:36;8654:10;8629:20;8644:4;8629:10;:14;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;8621:44;;8544:123;8692:42;8730:3;8692:33;8719:5;8692:22;8705:8;8692:12;:22::i;:::-;:26;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;8685:49;;;;;8090:717;;;:::o;4500:105::-;3859:5;;;;;;;;;;;3846:18;;:10;:18;;;3838:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4590:8:::1;4565:11;:22;;;:33;;;;;;;;;;;;;;;;;;4500:105:::0;:::o;14281:114::-;3703:12;;;;;;;;;;;3690:25;;:10;:25;;;:48;;;;3733:5;;;;;;;;;;;3719:19;;:10;:19;;;3690:48;3682:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14383:5:::1;14354:11;:26;;;:34;;;;;;;;;;;;;;;;;;14281:114:::0;:::o;5222:634::-;5268:7;5287:23;5313:11;:25;;;5287:51;;5380:22;5405:11;:18;;;5380:43;;5481:17;5501:147;5540:58;5553:11;:21;;;5576:11;:21;;;5540:12;:58::i;:::-;5501:13;:11;:13::i;:::-;:17;;:147;;;;:::i;:::-;5481:167;;5765:50;5785:29;5804:9;5785:14;:18;;:29;;;;:::i;:::-;5765:15;:19;;:50;;;;:::i;:::-;5757:58;;;;;5222:634;:::o;12372:836::-;3144:11;:21;;;3125:15;:40;;3117:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12434:1:::1;3464:48;3504:7;3464:11;:23;3476:10;3464:23;;;;;;;;;;;;;;;:35;;;:39;;:48;;;;:::i;:::-;3449:12;:63;3441:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3599:12;3561:11;:23;3573:10;3561:23;;;;;;;;;;;;;;;:35;;:50;;;;12466:1:::2;12456:7;:11;12448:41;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;12518:11;:23;12530:10;12518:23;;;;;;;;;;;;;;;:29;;;12507:7;:40;;12499:84;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;12655:24;12668:10;12655:12;:24::i;:::-;12615:11;:23;12627:10;12615:23;;;;;;;;;;;;;;;:37;;:64;;;;12756:26;12771:10;12756:14;:26::i;:::-;;12851:42;12885:7;12851:11;:23;12863:10;12851:23;;;;;;;;;;;;;;;:29;;;:33;;:42;;;;:::i;:::-;12819:11;:23;12831:10;12819:23;;;;;;;;;;;;;;;:29;;:74;;;;12924:31;12947:7;12924:11;:18;;;:22;;:31;;;;:::i;:::-;12903:11;:18;;:52;;;;13054:11;:23:::0;::::2;;;;;;;;;;;13047:40;;;13088:10;13100:7;13047:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::2;5:2;13047:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;13047:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::2;2:2;13047:61:0;;;;;;;;;;;;;;;;;13166:10;13151:50;;;13178:7;13151:50;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;3226:1:::1;12372:836:::0;:::o;13577:206::-;13638:7;13720:56;13759:16;:14;:16::i;:::-;13720:34;13747:6;13720:22;13733:8;13720:12;:22::i;:::-;:26;;:34;;;;:::i;:::-;:38;;:56;;;;:::i;:::-;13713:63;;13577:206;;;:::o;15737:93::-;3859:5;;;;;;;;;;;3846:18;;:10;:18;;;3838:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15819:4:::1;15794:11;:22;;:29;;;;15737:93:::0;:::o;15840:102::-;15895:4;3859:5;;;;;;;;;;;3846:18;;:10;:18;;;3838:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3296:11:::1;:23;;;3278:15;:41;3270:71;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15924:10:::2;15911:24;;;10156:860:::0;3144:11;:21;;;3125:15;:40;;3117:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10207:1:::1;3464:48;3504:7;3464:11;:23;3476:10;3464:23;;;;;;;;;;;;;;;:35;;;:39;;:48;;;;:::i;:::-;3449:12;:63;3441:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3599:12;3561:11;:23;3573:10;3561:23;;;;;;;;;;;;;;;:35;;:50;;;;10277:1:::2;10255:11:::0;:19:::2;;;:23;10247:58;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;10324:15;10342:24;10355:10;10342:12;:24::i;:::-;10324:42;;10482:7;10444:11;:23;10456:10;10444:23;;;;;;;;;;;;;;;:35;;:45;;;;10578:1;10538:11;:23;10550:10;10538:23;;;;;;;;;;;;;;;:37;;:41;;;;10656:32;10680:7;10656:11;:19;;;:23;;:32;;;;:::i;:::-;10634:11;:19;;:54;;;;10751:11;:23;;;;;;;;;;;;10744:40;;;10785:10;10797:7;10744:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::2;5:2;10744:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;10744:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::2;2:2;10744:61:0;;;;;;;;;;;;;;;;;10841:26;10856:10;10841:14;:26::i;:::-;;10963:10;10951:48;;;10975:7;10951:48;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;3630:1;3226::::1;10156:860::o:0;4967:222::-;5027:7;5046:18;5067:60;5122:4;5076:11;:22;;;;;;;;;;;;5067:40;;;5108:8;5067:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5067:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5067:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5067:50:0;;;;;;;;;;;;;;;;:54;;:60;;;;:::i;:::-;5046:81;;5144:38;5157:3;5162:19;5177:3;5162:10;:14;;:19;;;;:::i;:::-;5144:12;:38::i;:::-;5137:45;;;4967:222;;;:::o;1794:20::-;;;;;;;;;;;;;:::o;9704:440::-;9759:7;9778:19;9800:32;9823:8;9800:22;:32::i;:::-;9778:54;;9939:52;9979:11;9939;:21;9951:8;9939:21;;;;;;;;;;;;;;;:35;;;:39;;:52;;;;:::i;:::-;9901:11;:21;9913:8;9901:21;;;;;;;;;;;;;;;:35;;:90;;;;10030:24;10045:8;10030:14;:24::i;:::-;;10102:11;:21;10114:8;10102:21;;;;;;;;;;;;;;;:35;;;10095:42;;;9704:440;;;:::o;6130:739::-;6190:7;6209:23;6235:11;:21;6247:8;6235:21;;;;;;;;;;;;;;;:35;;;6209:61;;6284:22;6309:11;:21;6321:8;6309:21;;;;;;;;;;;;;;;:27;;;6284:52;;6381:17;6401:157;6440:68;6453:11;:21;6465:8;6453:21;;;;;;;;;;;;;;;:31;;;6486:11;:21;;;6440:12;:68::i;:::-;6401:13;:11;:13::i;:::-;:17;;:157;;;;:::i;:::-;6381:177;;6654:15;6672:50;6692:29;6711:9;6692:14;:18;;:29;;;;:::i;:::-;6672:15;:19;;:50;;;;:::i;:::-;6654:68;;6757:11;:25;;;6747:7;:35;6744:77;;;6794:11;:25;;;6784:35;;6744:77;6855:7;6848:14;;;;;;6130:739;;;:::o;11051:1310::-;2887:11;:21;;;2868:15;:40;;2860:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2996:11;:23;;;2977:15;:42;;2969:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11108:1:::1;3464:48;3504:7;3464:11;:23;3476:10;3464:23;;;;;;;;;;;;;;;:35;;;:39;;:48;;;;:::i;:::-;3449:12;:63;3441:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3599:12;3561:11;:23;3573:10;3561:23;;;;;;;;;;;;;;;:35;;:50;;;;11121:10:::2;3982:5;3957:22;3970:8;3957:12;:22::i;:::-;:30;3949:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11160:1:::3;11150:7;:11;11142:38;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;11260:24;11273:10;11260:12;:24::i;:::-;11220:11;:23;11232:10;11220:23;;;;;;;;;;;;;;;:37;;:64;;;;11374:26;11389:10;11374:14;:26::i;:::-;;11436:19;11473:11:::0;:23:::3;;;;;;;;;;;;11458:50;;;11517:4;11458:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::3;5:2;11458:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::3;77:16;74:1;67:27;5:2;11458:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::3;2:2;11458:65:0;;;;;;;;;;;;;;;;11436:87;;11540:11;:23:::0;::::3;;;;;;;;;;;11533:44;;;11578:10;11598:4;11605:7;11533:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::3;5:2;11533:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::3;77:16;74:1;67:27;5:2;11533:80:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::3;2:2;11533:80:0;;;;;;;;;;;;;;;;;11648:14;11665:82;11735:11;11680;:23:::0;::::3;;;;;;;;;;;11665:50;;;11724:4;11665:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::3;5:2;11665:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::3;77:16;74:1;67:27;5:2;11665:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::3;2:2;11665:65:0;;;;;;;;;;;;;;;;:69;;:82;;;;:::i;:::-;11648:99;;11840:12;11855:44;11894:4;11855:34;11866:11;:22;;;11855:6;:10;;:34;;;;:::i;:::-;:38;;:44;;;;:::i;:::-;11840:59;;11918:16;11929:4;11918:6;:10;;:16;;;;:::i;:::-;11909:25;;11983:11;:23;;;;;;;;;;;;11956:50;;:11;:23:::0;::::3;;;;;;;;;;;:50;;;11953:108;;;12030:29;12054:4;12030:11;:19;;;:23;;:29;;;;:::i;:::-;12008:11;:19;;:51;;;;11953:108;12091:30;12114:6;12091:11;:18;;;:22;;:30;;;;:::i;:::-;12070:11;:18;;:51;;;;12163:41;12197:6;12163:11;:23;12175:10;12163:23;;;;;;;;;;;;;;;:29;;;:33;;:41;;;;:::i;:::-;12131:11;:23;12143:10;12131:23;;;;;;;;;;;;;;;:29;;:73;;;;12234:26;12249:10;12234:14;:26::i;:::-;;12307:10;12295:50;;;12319:6;12295:50;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;4075:1;;;3630::::2;3071::::1;11051:1310:::0;:::o;14401:856::-;3703:12;;;;;;;;;;;3690:25;;:10;:25;;;:48;;;;3733:5;;;;;;;;;;;3719:19;;:10;:19;;;3690:48;3682:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14536:19:::1;14573:11:::0;:23:::1;;;;;;;;;;;;14558:50;;;14617:4;14558:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;14558:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;14558:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;14558:65:0;;;;;;;;;;;;;;;;14536:87;;14648:11;:23;;;;;;;;;;;;14633:53;;;14688:10;14709:4;14717:7;14633:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;14633:92:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;14633:92:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;14633:92:0;;;;;;;;;;;;;;;;;14735:14;14752:82;14822:11;14767;:23;;;;;;;;;;;;14752:50;;;14811:4;14752:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::1;5:2;14752:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;14752:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;14752:65:0;;;;;;;;;;;;;;;;:69;;:82;;;;:::i;:::-;14735:99;;14900:1;14877:11:::0;:19:::1;;;:24;14874:155;;;14985:42;14998:11;:18;;;15017:9;14985:12;:42::i;:::-;14964:11;:18;;:63;;;;14874:155;15136:40;15149:11;:19;;;15169:6;15136:12;:40::i;:::-;15114:11;:19;;:62;;;;15213:37;15242:7;15213:11;:24;;;:28;;:37;;;;:::i;:::-;15186:11;:24;;:64;;;;3794:1;;14401:856:::0;;:::o;15271:304::-;3703:12;;;;;;;;;;;3690:25;;:10;:25;;;:48;;;;3733:5;;;;;;;;;;;3719:19;;:10;:19;;;3690:48;3682:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3296:11:::1;:23;;;3278:15;:41;3270:71;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15379:15:::2;15404:13;15397:31;;;15437:4;15397:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::2;5:2;15397:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;15397:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::2;2:2;15397:46:0;;;;;;;;;;;;;;;;15379:64;;15460:13;15453:30;;;15484:10;15496:7;15453:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27::::0;20:12:::2;5:2;15453:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;15453:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::2;2:2;15453:51:0;;;;;;;;;;;;;;;;;3378:1;15271:304:::0;;:::o;13214:115::-;13269:7;13295:11;:21;13307:8;13295:21;;;;;;;;;;;;;;;:27;;;13288:34;;13214:115;;;:::o;1765:27::-;;;;;;;;;;;;;:::o;4292:151::-;4336:7;4362:54;4375:15;4392:11;:23;;;4362:12;:54::i;:::-;4355:61;;4292:151;:::o;1195:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7239:150::-;7297:4;7313:22;7326:8;7313:12;:22::i;:::-;;7345:16;:14;:16::i;:::-;;7378:4;7371:11;;7239:150;;;:::o;934:176:1:-;992:7;1011:9;1027:1;1023;:5;1011:17;;1051:1;1046;:6;;1038:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1102:1;1095:8;;;934:176;;;;:::o;5473:105::-;5531:7;5562:1;5557;:6;;:14;;5570:1;5557:14;;;5566:1;5557:14;5550:21;;5473:105;;;;:::o;1374:134::-;1432:7;1458:43;1462:1;1465;1458:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1451:50;;1374:134;;;;:::o;7416:664:0:-;7482:7;7634:20;7657:11;:24;;;7634:47;;7734:5;7704:35;;:11;:26;;;;;;;;;;;;:35;;;7701:104;;;7757:46;7770:11;:18;;;7790:12;7757;:46::i;:::-;7742:61;;7701:104;7925:17;7945:43;7967:11;:20;;;7945:17;7957:4;7945:7;:11;;:17;;;;:::i;:::-;:21;;:43;;;;:::i;:::-;7925:63;;8005:37;8037:4;8005:27;8022:9;8005:12;:16;;:27;;;;:::i;:::-;:31;;:37;;;;:::i;:::-;7998:44;;;;7416:664;;;:::o;2259:459:1:-;2317:7;2563:1;2558;:6;2554:45;;;2587:1;2580:8;;;;2554:45;2609:9;2625:1;2621;:5;2609:17;;2653:1;2648;2644;:5;;;;;;:10;2636:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2710:1;2703:8;;;2259:459;;;;;:::o;3173:130::-;3231:7;3257:39;3261:1;3264;3257:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3250:46;;3173:130;;;;:::o;5649:104::-;5707:7;5737:1;5733;:5;:13;;5745:1;5733:13;;;5741:1;5733:13;5726:20;;5649:104;;;;:::o;6875:358:0:-;6933:7;6987:16;:14;:16::i;:::-;6952:11;:21;6964:8;6952:21;;;;;;;;;;;;;;;:32;;:51;;;;7092:22;7105:8;7092:12;:22::i;:::-;7054:11;:21;7066:8;7054:21;;;;;;;;;;;;;;;:35;;:60;;;;7159:13;:11;:13::i;:::-;7125:11;:21;7137:8;7125:21;;;;;;;;;;;;;;;:31;;:47;;;;7191:11;:21;7203:8;7191:21;;;;;;;;;;;;;;;:35;;;7184:42;;6875:358;;;:::o;5862:257::-;5906:7;5978:16;:14;:16::i;:::-;5950:11;:25;;:44;;;;6028:13;:11;:13::i;:::-;6004:11;:21;;:37;;;;6087:11;:25;;;6080:32;;5862:257;:::o;1832:187:1:-;1918:7;1950:1;1945;:6;;1953:12;1937:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1937:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1976:9;1992:1;1988;:5;1976:17;;2011:1;2004:8;;;1832:187;;;;;:::o;3818:338::-;3904:7;4001:1;3997;:5;4004:12;3989:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3989:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4027:9;4043:1;4039;:5;;;;;;4027:17;;4148:1;4141:8;;;3818:338;;;;;:::o
Swarm Source
ipfs://2131e5f6f85019179498cb6df8d7b124b50da1f0e8386b0c85fa70690eb221a8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.