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
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x3e8a9b523f16b58a4a6a3a01b165f91ac7ecb4a9329b481750315d115a66755f | Claim User Share... | (pending) | 5 days ago | IN | 0 ETH | (Pending) | |||
Claim User Share... | 16487149 | 547 days ago | IN | 0 ETH | 0.00391342 | ||||
Claim User Share... | 16473589 | 549 days ago | IN | 0 ETH | 0.00235638 | ||||
Claim User Share... | 16473579 | 549 days ago | IN | 0 ETH | 0.00242567 | ||||
Claim User Share... | 16286566 | 575 days ago | IN | 0 ETH | 0.00208154 | ||||
Claim User Share... | 16286234 | 575 days ago | IN | 0 ETH | 0.00244619 | ||||
Claim User Share... | 16048117 | 608 days ago | IN | 0 ETH | 0.00246226 | ||||
Claim User Share... | 16034254 | 610 days ago | IN | 0 ETH | 0.00256502 | ||||
Claim User Share... | 15785551 | 645 days ago | IN | 0 ETH | 0.0030419 | ||||
Claim User Share... | 15785548 | 645 days ago | IN | 0 ETH | 0.00425552 | ||||
Claim User Share... | 15765066 | 648 days ago | IN | 0 ETH | 0.00209907 | ||||
Claim User Share... | 15765056 | 648 days ago | IN | 0 ETH | 0.0020079 | ||||
Claim User Share... | 15765055 | 648 days ago | IN | 0 ETH | 0.00197457 | ||||
Claim User Share... | 15634628 | 666 days ago | IN | 0 ETH | 0.001685 | ||||
Claim User Share... | 15551878 | 678 days ago | IN | 0 ETH | 0.00062386 | ||||
Claim User Share... | 15550664 | 678 days ago | IN | 0 ETH | 0.0009898 | ||||
Claim User Share... | 15493093 | 687 days ago | IN | 0 ETH | 0.00231971 | ||||
Claim User Share... | 15493092 | 687 days ago | IN | 0 ETH | 0.00249233 | ||||
Claim User Share... | 15437225 | 696 days ago | IN | 0 ETH | 0.00368312 | ||||
Claim User Share... | 15382052 | 705 days ago | IN | 0 ETH | 0.00080641 | ||||
Claim User Share... | 15361670 | 708 days ago | IN | 0 ETH | 0.00427075 | ||||
Claim User Share... | 15241007 | 727 days ago | IN | 0 ETH | 0.00245486 | ||||
Claim User Share... | 15240997 | 727 days ago | IN | 0 ETH | 0.00222774 | ||||
Claim User Share... | 15227272 | 729 days ago | IN | 0 ETH | 0.00310723 | ||||
Claim User Share... | 15227200 | 729 days ago | IN | 0 ETH | 0.00331615 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
LPMiningV1
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-17 */ //SPDX-License-Identifier: UNLICENSED pragma solidity ^0.6.12; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } interface IAward { function addFreeAward(address _user, uint256 _amount) external; function addAward(address _user, uint256 _amount) external; function withdraw(uint256 _amount) external; function destroy(uint256 amount) external; } interface IERC20Token is IERC20 { function maxSupply() external view returns (uint256); function issue(address account, uint256 amount) external returns (bool); function burn(uint256 amount) external returns (bool); } interface ILPMining { function add(address pool, uint256 index, uint256 allocP) external; function set(uint256 pid, uint256 allocPoint) external; function updateReferenceToken(uint256 pid, uint256 rIndex) external; function batchSharePools() external; function onTransferLiquidity(address from, address to, uint256 lpAmount) external; function claimUserShares(uint pid, address user) external; function claimLiquidityShares(address user, address[] calldata tokens, uint256[] calldata balances, uint256[] calldata weights, uint256 amount, bool _add) external; } interface IOracle { function requestTokenPrice(address token) external returns(uint8 decimal, uint256 price); } interface IPool is IERC20 { function getCurrentTokens() external view returns (address[] memory); function getNormalizedWeight(address token) external view returns (uint); function getBalance(address token) external view returns (uint); } contract LPMiningV1 is ILPMining, Ownable { using SafeMath for uint256; struct ShareInfo { uint256 tvl; uint256 accPoolPerShare; uint256 lastRewardBlock; } struct PoolInfo { IPool mPool; //reference currency for tvl calculation uint256 poolIndex; uint256 referIndex; uint256 allocPoint; // How many allocation points assigned to this pool. token to distribute per block. uint256 lastTvl; uint256 accTokenPerShare; uint256 rewardDebt; address[] tokens; uint256[] balances; uint256[] weights; } struct UserInfo { uint256 rewardDebt; } // pool info address[] public pools; mapping(address => PoolInfo) public poolInfo; mapping(uint256 => mapping(address => UserInfo)) public userInfo; // top share info ShareInfo public shareInfo; // contract governors mapping(address => bool) private governors; modifier onlyGovernor{ require(governors[_msgSender()], "LPMiningV1: caller is not the governor"); _; } IOracle public priceOracle; // The block number when Token mining starts. uint256 immutable public startBlock; // The block number when triple rewards mining ends. uint256 immutable public endTripleBlock; // The block number when Token mining ends. uint256 public endBlock; // tokens created per block changed with Token price. uint256 public tokenPerBlock = 15 * 10 ** 17; // award IAward public award; event Initialization(address award, uint256 _tokenPerBlock, uint256 startBlock, uint256 endTripleBlock, uint256 endBlock, address oracle); event Add(address mPool, uint256 index, uint256 allocP); event Set(uint256 pid, uint256 allocPoint); event ReferCurrencyChanged(address pool, uint256 oldIndex, uint256 newIndex); event ClaimLiquidityShares(address pool, address user, uint256 rewards); event ClaimUserShares(uint pid, address user, uint256 rewards); event OnTransferLiquidity(address from, address to, uint256 lpAmount, uint256 fromAwards, uint256 toAwards); // init LPMiningV1 // constructor params constructor( address _award, uint256 _tokenPerBlock, uint256 _startBlock, uint256 _endTripleBlock, uint256 _endBlock, address _oracle ) public { require(_award != address(0), "LPMiningV1: award invalid"); require(_startBlock < _endTripleBlock && _endTripleBlock < _endBlock, "LPMiningV1: blocks range invalid"); require(_oracle != address(0), "LPMiningV1: oracle invalid"); award = IAward(_award); tokenPerBlock = _tokenPerBlock; endTripleBlock = _endTripleBlock; governors[_msgSender()] = true; startBlock = _startBlock; endBlock = _endBlock; shareInfo.lastRewardBlock = block.number > _startBlock ? block.number : _startBlock; priceOracle = IOracle(_oracle); emit Initialization(_award, _tokenPerBlock, _startBlock, _endTripleBlock, _endBlock, _oracle); } function poolIn(address pool) view public returns (bool){ if (address(poolInfo[pool].mPool) == address(0)) { return false; } return true; } function indexOfPool(address pool) view public returns (uint256){ if (poolIn(pool)) { return poolInfo[pool].poolIndex; } return uint256(- 1); } function setEndBlock(uint256 _endBlock) onlyOwner external{ endBlock = _endBlock; } // add pool function add(address pool, uint256 index, uint256 allocP) override onlyGovernor external { require(!poolIn(pool), "LPMiningV1: pool duplicate"); require(pools.length.add(1) < uint256(- 1), "LPMiningV1: pools list overflow"); IPool pPool = IPool(pool); require(index < pPool.getCurrentTokens().length, "LPMiningV1: reference token not exist"); address[] memory tokens = pPool.getCurrentTokens(); uint256[] memory _balances = new uint256[](tokens.length); uint256[] memory _weights = new uint256[](tokens.length); for (uint i = 0; i < tokens.length; i++) { _balances[i] = pPool.getBalance(tokens[i]); _weights[i] = pPool.getNormalizedWeight(tokens[i]); } poolInfo[pool] = PoolInfo({ mPool : pPool, poolIndex : pools.length, referIndex : index, lastTvl : 0, allocPoint : allocP, accTokenPerShare : 0, rewardDebt : 0, tokens : tokens, balances : _balances, weights : _weights }); pools.push(pool); updateRewards(); sharePoolRewards(poolInfo[pool]); emit Add(pool, index, allocP); } function set(uint256 pid, uint256 allocPoint) override onlyGovernor external { require(pid < pools.length, "LPMiningV1: pool not exist"); PoolInfo storage info = poolInfo[pools[pid]]; poolInfo[pools[pid]].allocPoint = allocPoint; updateRewards(); sharePoolRewards(info); emit Set(pid, allocPoint); } // add governor function addGovernor(address governor) onlyOwner external { governors[governor] = true; } // remove governor function removeGovernor(address governor) onlyOwner external { governors[governor] = false; } function updateOracle(address oracle) onlyGovernor external { require(oracle != address(0), "LPMiningV1: oracle invalid"); priceOracle = IOracle(oracle); } // batch share pool rewards function batchSharePools() override external { updateRewards(); for (uint i = 0; i < pools.length; i = i.add(1)) { sharePoolRewards(poolInfo[pools[i]]); } } // update award function updateAward(address _award) external onlyOwner { require(_award != address(0), "LPMiningV1: award invalid"); award = IAward(_award); } // update Reference token index function updateReferenceToken(uint256 pid, uint256 rIndex) override onlyGovernor external { require(pid < pools.length, "LPMiningV1: pool not exist"); address pool = pools[pid]; require(rIndex < IPool(pool).getCurrentTokens().length, "LPMiningV1: reference token not exist"); PoolInfo storage info = poolInfo[pool]; uint256 old = info.referIndex; info.referIndex = rIndex; updateRewards(); sharePoolRewards(info); emit ReferCurrencyChanged(pool, old, rIndex); } function claimUserShares(uint pid, address user) override external { require(pid < pools.length, "LPMiningV1: pool not exist"); uint256 rewards = calUserRewards(pid, user, 0, true); if (rewards > 0) { award.addAward(user, rewards); } emit ClaimUserShares(pid, user, rewards); } function claimLiquidityShares(address user, address[] calldata tokens, uint256[] calldata balances, uint256[] calldata weights, uint256 amount, bool _add) override external { uint256 pid = indexOfPool(msg.sender); if (pid != uint256(- 1)) { PoolInfo storage pool = poolInfo[msg.sender]; pool.tokens = tokens; pool.balances = balances; pool.weights = weights; uint256 rewards = calUserRewards(pid, user, amount, _add); if (rewards > 0) { award.addAward(user, rewards); } emit ClaimLiquidityShares(msg.sender, user, rewards); } } // View function to see pool and user's pending Token on frontend. function pendingShares(uint256 pid, address user) public view returns (uint256) { PoolInfo memory info = poolInfo[pools[pid]]; UserInfo memory uinfo = userInfo[pid][user]; if (info.mPool.totalSupply() == 0 || shareInfo.tvl == 0 || shareInfo.lastRewardBlock >= block.number) { return 0; } uint256 accPoolPerShare = shareInfo.accPoolPerShare; uint256 multiplier = getMultiplier(shareInfo.lastRewardBlock, block.number); uint256 rewards = multiplier.mul(tokenPerBlock).mul(1e18).div(shareInfo.tvl); accPoolPerShare = accPoolPerShare.add(rewards); uint256 accTokenPerShare = info.accTokenPerShare; rewards = accPoolPerShare.mul(info.lastTvl).sub(info.rewardDebt).div(info.mPool.totalSupply()); accTokenPerShare = accTokenPerShare.add(rewards); return accTokenPerShare.mul(info.mPool.balanceOf(user)).sub(uinfo.rewardDebt).div(1e18); } function onTransferLiquidity(address from, address to, uint256 lpAmount) override external { uint256 pid = indexOfPool(msg.sender); if (pid != uint256(- 1)) { uint256 fromAwards = calUserRewards(pid, from, lpAmount, false); uint256 toAwards = calUserRewards(pid, to, lpAmount, true); if (fromAwards > 0) { if (Address.isContract(from)) { award.destroy(fromAwards); } else { award.addAward(from, fromAwards); } } if (toAwards > 0) { if (Address.isContract(to)) { award.destroy(toAwards); } else { award.addAward(to, toAwards); } } emit OnTransferLiquidity(from, to, lpAmount, fromAwards, toAwards); } } //cal pending rewards per tvl of pools function updateRewards() private { if (shareInfo.tvl > 0 && block.number > shareInfo.lastRewardBlock) { uint256 multiplier = getMultiplier(shareInfo.lastRewardBlock, block.number); uint256 rewards = multiplier.mul(tokenPerBlock).mul(1e18).div(shareInfo.tvl); shareInfo.accPoolPerShare = shareInfo.accPoolPerShare.add(rewards); } shareInfo.lastRewardBlock = block.number > startBlock ? block.number : startBlock; } //cal pending rewards for given pool function sharePoolRewards(PoolInfo storage info) private { _sharePoolRewards(info, 0, true); } //cal pending rewards for given pool function _sharePoolRewards(PoolInfo storage info, uint256 lpAmount, bool _add) private { uint newTotalLiquidity = info.mPool.totalSupply(); uint lastTotalLiquidity = _add ? newTotalLiquidity.sub(lpAmount) : newTotalLiquidity.add(lpAmount); if (lastTotalLiquidity > 0) { uint256 rewards = shareInfo.accPoolPerShare.mul(info.lastTvl).sub(info.rewardDebt).div(lastTotalLiquidity); info.accTokenPerShare = info.accTokenPerShare.add(rewards); } uint256 newTvl = getPoolTvl(info); info.rewardDebt = shareInfo.accPoolPerShare.mul(newTvl); shareInfo.tvl = shareInfo.tvl.add(newTvl).sub(info.lastTvl); info.lastTvl = newTvl; } // cal user shares function calUserRewards(uint256 pid, address user, uint256 lpAmount, bool _add) private returns (uint256){ updateRewards(); PoolInfo storage info = poolInfo[pools[pid]]; _sharePoolRewards(info, lpAmount, _add); UserInfo storage user_info = userInfo[pid][user]; uint256 newAmount = info.mPool.balanceOf(user); uint256 lastAmount = _add ? newAmount.sub(lpAmount) : newAmount.add(lpAmount); uint256 shares = info.accTokenPerShare.mul(lastAmount).sub(user_info.rewardDebt).div(1e18); user_info.rewardDebt = newAmount.mul(info.accTokenPerShare); return shares; } function getPoolTvl(PoolInfo memory info) private returns (uint256){ address baseToken = info.tokens[info.referIndex]; uint256 balance = info.balances[info.referIndex]; uint256 nw = info.weights[info.referIndex]; uint256 totalBalance = bdiv(balance, nw); (uint8 decimal, uint256 price) = priceOracle.requestTokenPrice(baseToken); require(price > 0, "LPMiningV1: token price invalid"); uint256 divisor = 10 ** uint256(decimal); return totalBalance.mul(price).mul(info.allocPoint).div(divisor); } // Return reward multiplier over the given _from to _to block. function getMultiplier(uint256 _from, uint256 _to) internal view returns (uint256) { if (_to <= endBlock) { if (_to <= endTripleBlock) { return _to.sub(_from).mul(3); } else if (_from < endTripleBlock) { return endTripleBlock.sub(_from).mul(3).add(_to.sub(endTripleBlock)); } return _to.sub(_from); } else if (_from >= endBlock) { return 0; } else { if (_from < endTripleBlock) { return endTripleBlock.sub(_from).mul(3).add(endBlock.sub(endTripleBlock)); } return endBlock.sub(_from); } } function bdiv(uint a, uint b) internal pure returns (uint){ require(b != 0, "ERR_DIV_ZERO"); uint c0 = a * 1e18; require(a == 0 || c0 / a == 1e18, "ERR_DIV_INTERNAL"); // bmul overflow uint c1 = c0 + (b / 2); require(c1 >= c0, "ERR_DIV_INTERNAL"); // badd require uint c2 = c1 / b; return c2; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_award","type":"address"},{"internalType":"uint256","name":"_tokenPerBlock","type":"uint256"},{"internalType":"uint256","name":"_startBlock","type":"uint256"},{"internalType":"uint256","name":"_endTripleBlock","type":"uint256"},{"internalType":"uint256","name":"_endBlock","type":"uint256"},{"internalType":"address","name":"_oracle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"mPool","type":"address"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocP","type":"uint256"}],"name":"Add","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"rewards","type":"uint256"}],"name":"ClaimLiquidityShares","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"rewards","type":"uint256"}],"name":"ClaimUserShares","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"award","type":"address"},{"indexed":false,"internalType":"uint256","name":"_tokenPerBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTripleBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"},{"indexed":false,"internalType":"address","name":"oracle","type":"address"}],"name":"Initialization","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"lpAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fromAwards","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toAwards","type":"uint256"}],"name":"OnTransferLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newIndex","type":"uint256"}],"name":"ReferCurrencyChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"}],"name":"Set","type":"event"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"allocP","type":"uint256"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"governor","type":"address"}],"name":"addGovernor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"award","outputs":[{"internalType":"contract IAward","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"batchSharePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"balances","type":"uint256[]"},{"internalType":"uint256[]","name":"weights","type":"uint256[]"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"_add","type":"bool"}],"name":"claimLiquidityShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"claimUserShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endTripleBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"indexOfPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"lpAmount","type":"uint256"}],"name":"onTransferLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"pendingShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"poolIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"poolInfo","outputs":[{"internalType":"contract IPool","name":"mPool","type":"address"},{"internalType":"uint256","name":"poolIndex","type":"uint256"},{"internalType":"uint256","name":"referIndex","type":"uint256"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastTvl","type":"uint256"},{"internalType":"uint256","name":"accTokenPerShare","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pools","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceOracle","outputs":[{"internalType":"contract IOracle","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"governor","type":"address"}],"name":"removeGovernor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"allocPoint","type":"uint256"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_endBlock","type":"uint256"}],"name":"setEndBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shareInfo","outputs":[{"internalType":"uint256","name":"tvl","type":"uint256"},{"internalType":"uint256","name":"accPoolPerShare","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_award","type":"address"}],"name":"updateAward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oracle","type":"address"}],"name":"updateOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"rIndex","type":"uint256"}],"name":"updateReferenceToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c06040526714d1120d7b160000600a553480156200001d57600080fd5b506040516200322c3803806200322c833981810160405260c08110156200004357600080fd5b508051602082015160408301516060840151608085015160a0909501519394929391929091600062000074620002d5565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b0386166200011a576040805162461bcd60e51b815260206004820152601960248201527f4c504d696e696e6756313a20617761726420696e76616c696400000000000000604482015290519081900360640190fd5b82841080156200012957508183105b6200017b576040805162461bcd60e51b815260206004820181905260248201527f4c504d696e696e6756313a20626c6f636b732072616e676520696e76616c6964604482015290519081900360640190fd5b6001600160a01b038116620001d7576040805162461bcd60e51b815260206004820152601a60248201527f4c504d696e696e6756313a206f7261636c6520696e76616c6964000000000000604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b038816179055600a85905560a08390526001600760006200020c620002d5565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055608084905260098290554384106200024d57836200024f565b435b600655600880546001600160a01b038084166001600160a01b0319909216821790925560408051928916835260208301889052828101879052606083018690526080830185905260a0830191909152517f99bef3fae1e6d0c4a18897a009c740e511dc229b37caa5ad7d0ef897ae8c3c249181900360c00190a1505050505050620002d9565b3390565b60805160a051612f07620003256000398061180d52806123a652806123e352806124125280612440528061248852806124bb52508061101b528061233a52806123615250612f076000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063a8b8a4f511610097578063c780eed811610071578063c780eed8146104d3578063eda685101461050d578063eecdac8814610633578063f2fde38b14610659576101c4565b8063a8b8a4f51461046d578063ac4afa3814610499578063c713aa94146104b6576101c4565b80638dee8d6d116100d35780638dee8d6d1461039057806393f1a40b146103b3578063977ed4df146103df5780639a7b5f1114610405576101c4565b8063715018a61461035a57806377be543e146103625780638da5cb5b14610388576101c4565b80634198709a116101665780634ce9cf01116101405780634ce9cf01146102f25780635101e128146103185780636cbb011c1461034a5780636d35693514610352576101c4565b80634198709a146102da57806341a494c5146102e257806348cd4cb1146102ea576101c4565b80631cb44dfc116101a25780631cb44dfc1461023e5780632525d4fc146102645780632630c12f146102905780633c4a25d0146102b4576101c4565b8063083c6323146101c95780630a6c9535146101e35780631ab06ee51461021b575b600080fd5b6101d161067f565b60408051918252519081900360200190f35b610219600480360360608110156101f957600080fd5b506001600160a01b03813581169160208101359091169060400135610685565b005b6102196004803603604081101561023157600080fd5b50803590602001356108f6565b6102196004803603602081101561025457600080fd5b50356001600160a01b0316610a8b565b6101d16004803603604081101561027a57600080fd5b50803590602001356001600160a01b0316610b6c565b610298610f79565b604080516001600160a01b039092168252519081900360200190f35b610219600480360360208110156102ca57600080fd5b50356001600160a01b0316610f88565b6101d1611004565b61029861100a565b6101d1611019565b6102fa61103d565b60408051938452602084019290925282820152519081900360600190f35b6102196004803603606081101561032e57600080fd5b506001600160a01b038135169060208101359060400135611049565b6102196117a4565b6101d161180b565b61021961182f565b6101d16004803603602081101561037857600080fd5b50356001600160a01b03166118d1565b61029861190d565b610219600480360360408110156103a657600080fd5b508035906020013561191c565b6101d1600480360360408110156103c957600080fd5b50803590602001356001600160a01b0316611bb6565b610219600480360360208110156103f557600080fd5b50356001600160a01b0316611bd3565b61042b6004803603602081101561041b57600080fd5b50356001600160a01b0316611ca8565b604080516001600160a01b0390981688526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b6102196004803603604081101561048357600080fd5b50803590602001356001600160a01b0316611cef565b610298600480360360208110156104af57600080fd5b5035611e15565b610219600480360360208110156104cc57600080fd5b5035611e3c565b6104f9600480360360208110156104e957600080fd5b50356001600160a01b0316611e99565b604080519115158252519081900360200190f35b610219600480360360c081101561052357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561054d57600080fd5b82018360208201111561055f57600080fd5b803590602001918460208302840111600160201b8311171561058057600080fd5b919390929091602081019035600160201b81111561059d57600080fd5b8201836020820111156105af57600080fd5b803590602001918460208302840111600160201b831117156105d057600080fd5b919390929091602081019035600160201b8111156105ed57600080fd5b8201836020820111156105ff57600080fd5b803590602001918460208302840111600160201b8311171561062057600080fd5b9193509150803590602001351515611eca565b6102196004803603602081101561064957600080fd5b50356001600160a01b0316611ff7565b6102196004803603602081101561066f57600080fd5b50356001600160a01b0316612070565b60095481565b6000610690336118d1565b905060001981146108f05760006106aa8286856000612168565b905060006106bb8386866001612168565b905081156107a9576106cc866122c2565b1561073b57600b54604080516309d1187760e41b81526004810185905290516001600160a01b0390921691639d1187709160248082019260009290919082900301818387803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b505050506107a9565b600b546040805163fa803b5160e01b81526001600160a01b038981166004830152602482018690529151919092169163fa803b5191604480830192600092919082900301818387803b15801561079057600080fd5b505af11580156107a4573d6000803e3d6000fd5b505050505b8015610895576107b8856122c2565b1561082757600b54604080516309d1187760e41b81526004810184905290516001600160a01b0390921691639d1187709160248082019260009290919082900301818387803b15801561080a57600080fd5b505af115801561081e573d6000803e3d6000fd5b50505050610895565b600b546040805163fa803b5160e01b81526001600160a01b038881166004830152602482018590529151919092169163fa803b5191604480830192600092919082900301818387803b15801561087c57600080fd5b505af1158015610890573d6000803e3d6000fd5b505050505b604080516001600160a01b03808916825287166020820152808201869052606081018490526080810183905290517fb696e51dbadec7ef65d96412560ba6fef4185dcd92bb5098e98c9f37402ad4959181900360a00190a150505b50505050565b600760006109026122c8565b6001600160a01b0316815260208101919091526040016000205460ff1661095a5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e466026913960400191505060405180910390fd5b60015482106109ad576040805162461bcd60e51b815260206004820152601a6024820152791314135a5b9a5b99d58c4e881c1bdbdb081b9bdd08195e1a5cdd60321b604482015290519081900360640190fd5b600060026000600185815481106109c057fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000209050816002600060018681548110610a1257fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060030155610a426122cc565b610a4b8161238c565b604080518481526020810184905281517f545b620a3000f6303b158b321f06b4e95e28a27d70aecac8c6bdac4f48a9f6b3929181900390910190a1505050565b60076000610a976122c8565b6001600160a01b0316815260208101919091526040016000205460ff16610aef5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e466026913960400191505060405180910390fd5b6001600160a01b038116610b4a576040805162461bcd60e51b815260206004820152601a60248201527f4c504d696e696e6756313a206f7261636c6520696e76616c6964000000000000604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b76612c42565b6002600060018681548110610b8757fe5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301909120825161014081018452815490941684526001810154848301526002810154848401526003810154606085015260048101546080850152600581015460a0850152600681015460c0850152600781018054845181850281018501909552808552919360e0860193909290830182828015610c5357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c35575b5050505050815260200160088201805480602002602001604051908101604052809291908181526020018280548015610cab57602002820191906000526020600020905b815481526020019060010190808311610c97575b5050505050815260200160098201805480602002602001604051908101604052809291908181526020018280548015610d0357602002820191906000526020600020905b815481526020019060010190808311610cef575b5050505050815250509050610d16612c9e565b5060008481526003602090815260408083206001600160a01b038088168552908352928190208151808401835290548152845182516318160ddd60e01b81529251919416926318160ddd9260048082019391829003018186803b158015610d7c57600080fd5b505afa158015610d90573d6000803e3d6000fd5b505050506040513d6020811015610da657600080fd5b50511580610db45750600454155b80610dc157506006544311155b15610dd157600092505050610f73565b600554600654600090610de49043612399565b90506000610e1e600460000154610e18670de0b6b3a7640000610e12600a54876124ec90919063ffffffff16565b906124ec565b9061254c565b9050610e2a838261258e565b925060008560a001519050610ec186600001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d6020811015610e9f57600080fd5b505160c08801516080890151610e189190610ebb9089906124ec565b906125e8565b9150610ecd818361258e565b9050610f6a670de0b6b3a7640000610e188760000151610ebb8a600001516001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3757600080fd5b505afa158015610f4b573d6000803e3d6000fd5b505050506040513d6020811015610f6157600080fd5b505186906124ec565b96505050505050505b92915050565b6008546001600160a01b031681565b610f906122c8565b6000546001600160a01b03908116911614610fe0576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b600a5481565b600b546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60045460055460065483565b600760006110556122c8565b6001600160a01b0316815260208101919091526040016000205460ff166110ad5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e466026913960400191505060405180910390fd5b6110b683611e99565b15611108576040805162461bcd60e51b815260206004820152601a60248201527f4c504d696e696e6756313a20706f6f6c206475706c6963617465000000000000604482015290519081900360640190fd5b600180546000199161111a919061258e565b1061116c576040805162461bcd60e51b815260206004820152601f60248201527f4c504d696e696e6756313a20706f6f6c73206c697374206f766572666c6f7700604482015290519081900360640190fd5b6000839050806001600160a01b031663cc77828d6040518163ffffffff1660e01b815260040160006040518083038186803b1580156111aa57600080fd5b505afa1580156111be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156111e757600080fd5b8101908080516040519392919084600160201b82111561120657600080fd5b90830190602082018581111561121b57600080fd5b82518660208202830111600160201b8211171561123757600080fd5b82525081516020918201928201910280838360005b8381101561126457818101518382015260200161124c565b505050509050016040525050505183106112af5760405162461bcd60e51b8152600401808060200182810382526025815260200180612e6c6025913960400191505060405180910390fd5b6060816001600160a01b031663cc77828d6040518163ffffffff1660e01b815260040160006040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561132757600080fd5b8101908080516040519392919084600160201b82111561134657600080fd5b90830190602082018581111561135b57600080fd5b82518660208202830111600160201b8211171561137757600080fd5b82525081516020918201928201910280838360005b838110156113a457818101518382015260200161138c565b5050505090500160405250505090506060815167ffffffffffffffff811180156113cd57600080fd5b506040519080825280602002602001820160405280156113f7578160200160208202803683370190505b5090506060825167ffffffffffffffff8111801561141457600080fd5b5060405190808252806020026020018201604052801561143e578160200160208202803683370190505b50905060005b83518110156115a057846001600160a01b031663f8b2cb4f85838151811061146857fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156114ad57600080fd5b505afa1580156114c1573d6000803e3d6000fd5b505050506040513d60208110156114d757600080fd5b505183518490839081106114e757fe5b602002602001018181525050846001600160a01b031663f1b8a9b785838151811061150e57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561155357600080fd5b505afa158015611567573d6000803e3d6000fd5b505050506040513d602081101561157d57600080fd5b5051825183908390811061158d57fe5b6020908102919091010152600101611444565b50604051806101400160405280856001600160a01b0316815260200160018054905081526020018781526020018681526020016000815260200160008152602001600081526020018481526020018381526020018281525060026000896001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070190805190602001906116a2929190612cb1565b5061010082015180516116bf916008840191602090910190612d16565b5061012082015180516116dc916009840191602090910190612d16565b50506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038a16179055506117316122cc565b6001600160a01b03871660009081526002602052604090206117529061238c565b604080516001600160a01b03891681526020810188905280820187905290517fc264f49177bdbe55a01fae0e77c3fdc75d515d242b32bc4d56c565f5b47865ba9181900360600190a150505050505050565b6117ac6122cc565b60005b600154811015611808576117f660026000600184815481106117cd57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902061238c565b61180181600161258e565b90506117af565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6118376122c8565b6000546001600160a01b03908116911614611887576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006118dc82611e99565b1561190357506001600160a01b038116600090815260026020526040902060010154611908565b506000195b919050565b6000546001600160a01b031690565b600760006119286122c8565b6001600160a01b0316815260208101919091526040016000205460ff166119805760405162461bcd60e51b8152600401808060200182810382526026815260200180612e466026913960400191505060405180910390fd5b60015482106119d3576040805162461bcd60e51b815260206004820152601a6024820152791314135a5b9a5b99d58c4e881c1bdbdb081b9bdd08195e1a5cdd60321b604482015290519081900360640190fd5b6000600183815481106119e257fe5b60009182526020822001546040805163cc77828d60e01b815290516001600160a01b039092169350839263cc77828d92600480840193829003018186803b158015611a2c57600080fd5b505afa158015611a40573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611a6957600080fd5b8101908080516040519392919084600160201b821115611a8857600080fd5b908301906020820185811115611a9d57600080fd5b82518660208202830111600160201b82111715611ab957600080fd5b82525081516020918201928201910280838360005b83811015611ae6578181015183820152602001611ace565b50505050905001604052505050518210611b315760405162461bcd60e51b8152600401808060200182810382526025815260200180612e6c6025913960400191505060405180910390fd5b6001600160a01b0381166000908152600260208190526040909120908101805490849055611b5d6122cc565b611b668261238c565b604080516001600160a01b03851681526020810183905280820186905290517f73bc3901f271d770d71a15e482c25a28b318c7748ac594133f0283cf07963c799181900360600190a15050505050565b600360209081526000928352604080842090915290825290205481565b611bdb6122c8565b6000546001600160a01b03908116911614611c2b576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b6001600160a01b038116611c86576040805162461bcd60e51b815260206004820152601960248201527f4c504d696e696e6756313a20617761726420696e76616c696400000000000000604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600260208190526000918252604090912080546001820154928201546003830154600484015460058501546006909501546001600160a01b03909416959492939192909187565b6001548210611d42576040805162461bcd60e51b815260206004820152601a6024820152791314135a5b9a5b99d58c4e881c1bdbdb081b9bdd08195e1a5cdd60321b604482015290519081900360640190fd5b6000611d52838360006001612168565b90508015611dc857600b546040805163fa803b5160e01b81526001600160a01b038581166004830152602482018590529151919092169163fa803b5191604480830192600092919082900301818387803b158015611daf57600080fd5b505af1158015611dc3573d6000803e3d6000fd5b505050505b604080518481526001600160a01b038416602082015280820183905290517fbb18bbeb8b7f4d47d0d05db97b721d7b58b8d17876b87a5ab041e9dbce450c6a9181900360600190a1505050565b60018181548110611e2257fe5b6000918252602090912001546001600160a01b0316905081565b611e446122c8565b6000546001600160a01b03908116911614611e94576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b600955565b6001600160a01b03818116600090815260026020526040812054909116611ec257506000611908565b506001919050565b6000611ed5336118d1565b90506000198114611feb57336000908152600260205260409020611efd600782018b8b612d5d565b50611f0c600882018989612db0565b50611f1b600982018787612db0565b506000611f2a838d8787612168565b90508015611fa057600b546040805163fa803b5160e01b81526001600160a01b038f81166004830152602482018590529151919092169163fa803b5191604480830192600092919082900301818387803b158015611f8757600080fd5b505af1158015611f9b573d6000803e3d6000fd5b505050505b604080513381526001600160a01b038e16602082015280820183905290517fb6be330f674836a88fa50f45b30ca1a1e5082fa60390ed39a609956ffe9fe5e79181900360600190a150505b50505050505050505050565b611fff6122c8565b6000546001600160a01b0390811691161461204f576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020805460ff19169055565b6120786122c8565b6000546001600160a01b039081169116146120c8576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b6001600160a01b03811661210d5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e206026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006121726122cc565b6000600260006001888154811061218557fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902090506121b681858561262a565b60008681526003602090815260408083206001600160a01b03808a16808652918452828520865484516370a0823160e01b81526004810194909452935190959493909116926370a082319260248082019391829003018186803b15801561221c57600080fd5b505afa158015612230573d6000803e3d6000fd5b505050506040513d602081101561224657600080fd5b505190506000856122605761225b828861258e565b61226a565b61226a82886125e8565b90506000612299670de0b6b3a7640000610e188660000154610ebb868a600501546124ec90919063ffffffff16565b90506122b28560050154846124ec90919063ffffffff16565b9093555090979650505050505050565b3b151590565b3390565b600454158015906122de575060065443115b156123385760006122f460046002015443612399565b90506000612322600460000154610e18670de0b6b3a7640000610e12600a54876124ec90919063ffffffff16565b600554909150612332908261258e565b60055550505b7f00000000000000000000000000000000000000000000000000000000000000004311612385577f0000000000000000000000000000000000000000000000000000000000000000612387565b435b600655565b611808816000600161262a565b60006009548211612475577f000000000000000000000000000000000000000000000000000000000000000082116123e1576123da6003610e1284866125e8565b9050610f73565b7f000000000000000000000000000000000000000000000000000000000000000083101561246b576123da612436837f00000000000000000000000000000000000000000000000000000000000000006125e8565b6124656003610e127f0000000000000000000000000000000000000000000000000000000000000000886125e8565b9061258e565b6123da82846125e8565b600954831061248657506000610f73565b7f00000000000000000000000000000000000000000000000000000000000000008310156124df576009546123da90612436907f00000000000000000000000000000000000000000000000000000000000000006125e8565b6009546123da90846125e8565b6000826124fb57506000610f73565b8282028284828161250857fe5b04146125455760405162461bcd60e51b8152600401808060200182810382526021815260200180612e916021913960400191505060405180910390fd5b9392505050565b600061254583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128ba565b600082820183811015612545576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061254583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061295c565b8254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561266e57600080fd5b505afa158015612682573d6000803e3d6000fd5b505050506040513d602081101561269857600080fd5b505190506000826126b2576126ad828561258e565b6126bc565b6126bc82856125e8565b905080156127075760006126ee82610e188860060154610ebb8a600401546004600101546124ec90919063ffffffff16565b6005870154909150612700908261258e565b6005870155505b604080516101408101825286546001600160a01b0316815260018701546020808301919091526002880154828401526003880154606083015260048801546080830152600588015460a0830152600688015460c083015260078801805484518184028101840190955280855260009461287b94938b9360e086019390918301828280156127bd57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161279f575b505050505081526020016008820180548060200260200160405190810160405280929190818152602001828054801561281557602002820191906000526020600020905b815481526020019060010190808311612801575b505050505081526020016009820180548060200260200160405190810160405280929190818152602001828054801561286d57602002820191906000526020600020905b815481526020019060010190808311612859575b5050505050815250506129b6565b60055490915061288b90826124ec565b600687015560048087015490546128a79190610ebb908461258e565b6004908155959095019490945550505050565b600081836129465760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561290b5781810151838201526020016128f3565b50505050905090810190601f1680156129385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161295257fe5b0495945050505050565b600081848411156129ae5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561290b5781810151838201526020016128f3565b505050900390565b6000808260e001518360400151815181106129cd57fe5b6020026020010151905060008361010001518460400151815181106129ee57fe5b602002602001015190506000846101200151856040015181518110612a0f57fe5b602002602001015190506000612a258383612b2f565b6008546040805163039bf40760e21b81526001600160a01b038881166004830152825194955060009485949190911692630e6fd01c926024808201939182900301818787803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b505050506040513d6040811015612aa157600080fd5b508051602090910151909250905080612b01576040805162461bcd60e51b815260206004820152601f60248201527f4c504d696e696e6756313a20746f6b656e20707269636520696e76616c696400604482015290519081900360640190fd5b606088015160ff8316600a0a90612b22908290610e1890610e1288876124ec565b9998505050505050505050565b600081612b72576040805162461bcd60e51b815260206004820152600c60248201526b4552525f4449565f5a45524f60a01b604482015290519081900360640190fd5b670de0b6b3a76400008302831580612b9a5750838181612b8e57fe5b04670de0b6b3a7640000145b612bde576040805162461bcd60e51b815260206004820152601060248201526f11549497d1125597d25395115493905360821b604482015290519081900360640190fd5b60028304810181811015612c2c576040805162461bcd60e51b815260206004820152601060248201526f11549497d1125597d25395115493905360821b604482015290519081900360640190fd5b6000848281612c3757fe5b049695505050505050565b60405180610140016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b6040518060200160405280600081525090565b828054828255906000526020600020908101928215612d06579160200282015b82811115612d0657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612cd1565b50612d12929150612deb565b5090565b828054828255906000526020600020908101928215612d51579160200282015b82811115612d51578251825591602001919060010190612d36565b50612d12929150612e0a565b828054828255906000526020600020908101928215612d06579160200282015b82811115612d065781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190612d7d565b828054828255906000526020600020908101928215612d51579160200282015b82811115612d51578235825591602001919060010190612dd0565b5b80821115612d125780546001600160a01b0319168155600101612dec565b5b80821115612d125760008155600101612e0b56fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c504d696e696e6756313a2063616c6c6572206973206e6f742074686520676f7665726e6f724c504d696e696e6756313a207265666572656e636520746f6b656e206e6f74206578697374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212206c2d21c304a38a4a05090d6725c885735ad9b8374a6e607c01bbf825e27080d864736f6c634300060c00330000000000000000000000005a867f6b759ca090e47cbfdbb3ea76e42726286200000000000000000000000000000000000000000000000015a63bbc199c00000000000000000000000000000000000000000000000000000000000000ac1b600000000000000000000000000000000000000000000000000000000000ae32880000000000000000000000000000000000000000000000000000000001852db0000000000000000000000000b659f06aa83aaa0563653b1e8b4276d990c8a500
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063a8b8a4f511610097578063c780eed811610071578063c780eed8146104d3578063eda685101461050d578063eecdac8814610633578063f2fde38b14610659576101c4565b8063a8b8a4f51461046d578063ac4afa3814610499578063c713aa94146104b6576101c4565b80638dee8d6d116100d35780638dee8d6d1461039057806393f1a40b146103b3578063977ed4df146103df5780639a7b5f1114610405576101c4565b8063715018a61461035a57806377be543e146103625780638da5cb5b14610388576101c4565b80634198709a116101665780634ce9cf01116101405780634ce9cf01146102f25780635101e128146103185780636cbb011c1461034a5780636d35693514610352576101c4565b80634198709a146102da57806341a494c5146102e257806348cd4cb1146102ea576101c4565b80631cb44dfc116101a25780631cb44dfc1461023e5780632525d4fc146102645780632630c12f146102905780633c4a25d0146102b4576101c4565b8063083c6323146101c95780630a6c9535146101e35780631ab06ee51461021b575b600080fd5b6101d161067f565b60408051918252519081900360200190f35b610219600480360360608110156101f957600080fd5b506001600160a01b03813581169160208101359091169060400135610685565b005b6102196004803603604081101561023157600080fd5b50803590602001356108f6565b6102196004803603602081101561025457600080fd5b50356001600160a01b0316610a8b565b6101d16004803603604081101561027a57600080fd5b50803590602001356001600160a01b0316610b6c565b610298610f79565b604080516001600160a01b039092168252519081900360200190f35b610219600480360360208110156102ca57600080fd5b50356001600160a01b0316610f88565b6101d1611004565b61029861100a565b6101d1611019565b6102fa61103d565b60408051938452602084019290925282820152519081900360600190f35b6102196004803603606081101561032e57600080fd5b506001600160a01b038135169060208101359060400135611049565b6102196117a4565b6101d161180b565b61021961182f565b6101d16004803603602081101561037857600080fd5b50356001600160a01b03166118d1565b61029861190d565b610219600480360360408110156103a657600080fd5b508035906020013561191c565b6101d1600480360360408110156103c957600080fd5b50803590602001356001600160a01b0316611bb6565b610219600480360360208110156103f557600080fd5b50356001600160a01b0316611bd3565b61042b6004803603602081101561041b57600080fd5b50356001600160a01b0316611ca8565b604080516001600160a01b0390981688526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b6102196004803603604081101561048357600080fd5b50803590602001356001600160a01b0316611cef565b610298600480360360208110156104af57600080fd5b5035611e15565b610219600480360360208110156104cc57600080fd5b5035611e3c565b6104f9600480360360208110156104e957600080fd5b50356001600160a01b0316611e99565b604080519115158252519081900360200190f35b610219600480360360c081101561052357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561054d57600080fd5b82018360208201111561055f57600080fd5b803590602001918460208302840111600160201b8311171561058057600080fd5b919390929091602081019035600160201b81111561059d57600080fd5b8201836020820111156105af57600080fd5b803590602001918460208302840111600160201b831117156105d057600080fd5b919390929091602081019035600160201b8111156105ed57600080fd5b8201836020820111156105ff57600080fd5b803590602001918460208302840111600160201b8311171561062057600080fd5b9193509150803590602001351515611eca565b6102196004803603602081101561064957600080fd5b50356001600160a01b0316611ff7565b6102196004803603602081101561066f57600080fd5b50356001600160a01b0316612070565b60095481565b6000610690336118d1565b905060001981146108f05760006106aa8286856000612168565b905060006106bb8386866001612168565b905081156107a9576106cc866122c2565b1561073b57600b54604080516309d1187760e41b81526004810185905290516001600160a01b0390921691639d1187709160248082019260009290919082900301818387803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b505050506107a9565b600b546040805163fa803b5160e01b81526001600160a01b038981166004830152602482018690529151919092169163fa803b5191604480830192600092919082900301818387803b15801561079057600080fd5b505af11580156107a4573d6000803e3d6000fd5b505050505b8015610895576107b8856122c2565b1561082757600b54604080516309d1187760e41b81526004810184905290516001600160a01b0390921691639d1187709160248082019260009290919082900301818387803b15801561080a57600080fd5b505af115801561081e573d6000803e3d6000fd5b50505050610895565b600b546040805163fa803b5160e01b81526001600160a01b038881166004830152602482018590529151919092169163fa803b5191604480830192600092919082900301818387803b15801561087c57600080fd5b505af1158015610890573d6000803e3d6000fd5b505050505b604080516001600160a01b03808916825287166020820152808201869052606081018490526080810183905290517fb696e51dbadec7ef65d96412560ba6fef4185dcd92bb5098e98c9f37402ad4959181900360a00190a150505b50505050565b600760006109026122c8565b6001600160a01b0316815260208101919091526040016000205460ff1661095a5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e466026913960400191505060405180910390fd5b60015482106109ad576040805162461bcd60e51b815260206004820152601a6024820152791314135a5b9a5b99d58c4e881c1bdbdb081b9bdd08195e1a5cdd60321b604482015290519081900360640190fd5b600060026000600185815481106109c057fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020019081526020016000209050816002600060018681548110610a1257fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902060030155610a426122cc565b610a4b8161238c565b604080518481526020810184905281517f545b620a3000f6303b158b321f06b4e95e28a27d70aecac8c6bdac4f48a9f6b3929181900390910190a1505050565b60076000610a976122c8565b6001600160a01b0316815260208101919091526040016000205460ff16610aef5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e466026913960400191505060405180910390fd5b6001600160a01b038116610b4a576040805162461bcd60e51b815260206004820152601a60248201527f4c504d696e696e6756313a206f7261636c6520696e76616c6964000000000000604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b76612c42565b6002600060018681548110610b8757fe5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301909120825161014081018452815490941684526001810154848301526002810154848401526003810154606085015260048101546080850152600581015460a0850152600681015460c0850152600781018054845181850281018501909552808552919360e0860193909290830182828015610c5357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c35575b5050505050815260200160088201805480602002602001604051908101604052809291908181526020018280548015610cab57602002820191906000526020600020905b815481526020019060010190808311610c97575b5050505050815260200160098201805480602002602001604051908101604052809291908181526020018280548015610d0357602002820191906000526020600020905b815481526020019060010190808311610cef575b5050505050815250509050610d16612c9e565b5060008481526003602090815260408083206001600160a01b038088168552908352928190208151808401835290548152845182516318160ddd60e01b81529251919416926318160ddd9260048082019391829003018186803b158015610d7c57600080fd5b505afa158015610d90573d6000803e3d6000fd5b505050506040513d6020811015610da657600080fd5b50511580610db45750600454155b80610dc157506006544311155b15610dd157600092505050610f73565b600554600654600090610de49043612399565b90506000610e1e600460000154610e18670de0b6b3a7640000610e12600a54876124ec90919063ffffffff16565b906124ec565b9061254c565b9050610e2a838261258e565b925060008560a001519050610ec186600001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d6020811015610e9f57600080fd5b505160c08801516080890151610e189190610ebb9089906124ec565b906125e8565b9150610ecd818361258e565b9050610f6a670de0b6b3a7640000610e188760000151610ebb8a600001516001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610f3757600080fd5b505afa158015610f4b573d6000803e3d6000fd5b505050506040513d6020811015610f6157600080fd5b505186906124ec565b96505050505050505b92915050565b6008546001600160a01b031681565b610f906122c8565b6000546001600160a01b03908116911614610fe0576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b600a5481565b600b546001600160a01b031681565b7f0000000000000000000000000000000000000000000000000000000000ac1b6081565b60045460055460065483565b600760006110556122c8565b6001600160a01b0316815260208101919091526040016000205460ff166110ad5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e466026913960400191505060405180910390fd5b6110b683611e99565b15611108576040805162461bcd60e51b815260206004820152601a60248201527f4c504d696e696e6756313a20706f6f6c206475706c6963617465000000000000604482015290519081900360640190fd5b600180546000199161111a919061258e565b1061116c576040805162461bcd60e51b815260206004820152601f60248201527f4c504d696e696e6756313a20706f6f6c73206c697374206f766572666c6f7700604482015290519081900360640190fd5b6000839050806001600160a01b031663cc77828d6040518163ffffffff1660e01b815260040160006040518083038186803b1580156111aa57600080fd5b505afa1580156111be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156111e757600080fd5b8101908080516040519392919084600160201b82111561120657600080fd5b90830190602082018581111561121b57600080fd5b82518660208202830111600160201b8211171561123757600080fd5b82525081516020918201928201910280838360005b8381101561126457818101518382015260200161124c565b505050509050016040525050505183106112af5760405162461bcd60e51b8152600401808060200182810382526025815260200180612e6c6025913960400191505060405180910390fd5b6060816001600160a01b031663cc77828d6040518163ffffffff1660e01b815260040160006040518083038186803b1580156112ea57600080fd5b505afa1580156112fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561132757600080fd5b8101908080516040519392919084600160201b82111561134657600080fd5b90830190602082018581111561135b57600080fd5b82518660208202830111600160201b8211171561137757600080fd5b82525081516020918201928201910280838360005b838110156113a457818101518382015260200161138c565b5050505090500160405250505090506060815167ffffffffffffffff811180156113cd57600080fd5b506040519080825280602002602001820160405280156113f7578160200160208202803683370190505b5090506060825167ffffffffffffffff8111801561141457600080fd5b5060405190808252806020026020018201604052801561143e578160200160208202803683370190505b50905060005b83518110156115a057846001600160a01b031663f8b2cb4f85838151811061146857fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156114ad57600080fd5b505afa1580156114c1573d6000803e3d6000fd5b505050506040513d60208110156114d757600080fd5b505183518490839081106114e757fe5b602002602001018181525050846001600160a01b031663f1b8a9b785838151811061150e57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561155357600080fd5b505afa158015611567573d6000803e3d6000fd5b505050506040513d602081101561157d57600080fd5b5051825183908390811061158d57fe5b6020908102919091010152600101611444565b50604051806101400160405280856001600160a01b0316815260200160018054905081526020018781526020018681526020016000815260200160008152602001600081526020018481526020018381526020018281525060026000896001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070190805190602001906116a2929190612cb1565b5061010082015180516116bf916008840191602090910190612d16565b5061012082015180516116dc916009840191602090910190612d16565b50506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b038a16179055506117316122cc565b6001600160a01b03871660009081526002602052604090206117529061238c565b604080516001600160a01b03891681526020810188905280820187905290517fc264f49177bdbe55a01fae0e77c3fdc75d515d242b32bc4d56c565f5b47865ba9181900360600190a150505050505050565b6117ac6122cc565b60005b600154811015611808576117f660026000600184815481106117cd57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902061238c565b61180181600161258e565b90506117af565b50565b7f0000000000000000000000000000000000000000000000000000000000ae328881565b6118376122c8565b6000546001600160a01b03908116911614611887576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006118dc82611e99565b1561190357506001600160a01b038116600090815260026020526040902060010154611908565b506000195b919050565b6000546001600160a01b031690565b600760006119286122c8565b6001600160a01b0316815260208101919091526040016000205460ff166119805760405162461bcd60e51b8152600401808060200182810382526026815260200180612e466026913960400191505060405180910390fd5b60015482106119d3576040805162461bcd60e51b815260206004820152601a6024820152791314135a5b9a5b99d58c4e881c1bdbdb081b9bdd08195e1a5cdd60321b604482015290519081900360640190fd5b6000600183815481106119e257fe5b60009182526020822001546040805163cc77828d60e01b815290516001600160a01b039092169350839263cc77828d92600480840193829003018186803b158015611a2c57600080fd5b505afa158015611a40573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611a6957600080fd5b8101908080516040519392919084600160201b821115611a8857600080fd5b908301906020820185811115611a9d57600080fd5b82518660208202830111600160201b82111715611ab957600080fd5b82525081516020918201928201910280838360005b83811015611ae6578181015183820152602001611ace565b50505050905001604052505050518210611b315760405162461bcd60e51b8152600401808060200182810382526025815260200180612e6c6025913960400191505060405180910390fd5b6001600160a01b0381166000908152600260208190526040909120908101805490849055611b5d6122cc565b611b668261238c565b604080516001600160a01b03851681526020810183905280820186905290517f73bc3901f271d770d71a15e482c25a28b318c7748ac594133f0283cf07963c799181900360600190a15050505050565b600360209081526000928352604080842090915290825290205481565b611bdb6122c8565b6000546001600160a01b03908116911614611c2b576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b6001600160a01b038116611c86576040805162461bcd60e51b815260206004820152601960248201527f4c504d696e696e6756313a20617761726420696e76616c696400000000000000604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600260208190526000918252604090912080546001820154928201546003830154600484015460058501546006909501546001600160a01b03909416959492939192909187565b6001548210611d42576040805162461bcd60e51b815260206004820152601a6024820152791314135a5b9a5b99d58c4e881c1bdbdb081b9bdd08195e1a5cdd60321b604482015290519081900360640190fd5b6000611d52838360006001612168565b90508015611dc857600b546040805163fa803b5160e01b81526001600160a01b038581166004830152602482018590529151919092169163fa803b5191604480830192600092919082900301818387803b158015611daf57600080fd5b505af1158015611dc3573d6000803e3d6000fd5b505050505b604080518481526001600160a01b038416602082015280820183905290517fbb18bbeb8b7f4d47d0d05db97b721d7b58b8d17876b87a5ab041e9dbce450c6a9181900360600190a1505050565b60018181548110611e2257fe5b6000918252602090912001546001600160a01b0316905081565b611e446122c8565b6000546001600160a01b03908116911614611e94576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b600955565b6001600160a01b03818116600090815260026020526040812054909116611ec257506000611908565b506001919050565b6000611ed5336118d1565b90506000198114611feb57336000908152600260205260409020611efd600782018b8b612d5d565b50611f0c600882018989612db0565b50611f1b600982018787612db0565b506000611f2a838d8787612168565b90508015611fa057600b546040805163fa803b5160e01b81526001600160a01b038f81166004830152602482018590529151919092169163fa803b5191604480830192600092919082900301818387803b158015611f8757600080fd5b505af1158015611f9b573d6000803e3d6000fd5b505050505b604080513381526001600160a01b038e16602082015280820183905290517fb6be330f674836a88fa50f45b30ca1a1e5082fa60390ed39a609956ffe9fe5e79181900360600190a150505b50505050505050505050565b611fff6122c8565b6000546001600160a01b0390811691161461204f576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020805460ff19169055565b6120786122c8565b6000546001600160a01b039081169116146120c8576040805162461bcd60e51b81526020600482018190526024820152600080516020612eb2833981519152604482015290519081900360640190fd5b6001600160a01b03811661210d5760405162461bcd60e51b8152600401808060200182810382526026815260200180612e206026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006121726122cc565b6000600260006001888154811061218557fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902090506121b681858561262a565b60008681526003602090815260408083206001600160a01b03808a16808652918452828520865484516370a0823160e01b81526004810194909452935190959493909116926370a082319260248082019391829003018186803b15801561221c57600080fd5b505afa158015612230573d6000803e3d6000fd5b505050506040513d602081101561224657600080fd5b505190506000856122605761225b828861258e565b61226a565b61226a82886125e8565b90506000612299670de0b6b3a7640000610e188660000154610ebb868a600501546124ec90919063ffffffff16565b90506122b28560050154846124ec90919063ffffffff16565b9093555090979650505050505050565b3b151590565b3390565b600454158015906122de575060065443115b156123385760006122f460046002015443612399565b90506000612322600460000154610e18670de0b6b3a7640000610e12600a54876124ec90919063ffffffff16565b600554909150612332908261258e565b60055550505b7f0000000000000000000000000000000000000000000000000000000000ac1b604311612385577f0000000000000000000000000000000000000000000000000000000000ac1b60612387565b435b600655565b611808816000600161262a565b60006009548211612475577f0000000000000000000000000000000000000000000000000000000000ae328882116123e1576123da6003610e1284866125e8565b9050610f73565b7f0000000000000000000000000000000000000000000000000000000000ae328883101561246b576123da612436837f0000000000000000000000000000000000000000000000000000000000ae32886125e8565b6124656003610e127f0000000000000000000000000000000000000000000000000000000000ae3288886125e8565b9061258e565b6123da82846125e8565b600954831061248657506000610f73565b7f0000000000000000000000000000000000000000000000000000000000ae32888310156124df576009546123da90612436907f0000000000000000000000000000000000000000000000000000000000ae32886125e8565b6009546123da90846125e8565b6000826124fb57506000610f73565b8282028284828161250857fe5b04146125455760405162461bcd60e51b8152600401808060200182810382526021815260200180612e916021913960400191505060405180910390fd5b9392505050565b600061254583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128ba565b600082820183811015612545576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061254583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061295c565b8254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561266e57600080fd5b505afa158015612682573d6000803e3d6000fd5b505050506040513d602081101561269857600080fd5b505190506000826126b2576126ad828561258e565b6126bc565b6126bc82856125e8565b905080156127075760006126ee82610e188860060154610ebb8a600401546004600101546124ec90919063ffffffff16565b6005870154909150612700908261258e565b6005870155505b604080516101408101825286546001600160a01b0316815260018701546020808301919091526002880154828401526003880154606083015260048801546080830152600588015460a0830152600688015460c083015260078801805484518184028101840190955280855260009461287b94938b9360e086019390918301828280156127bd57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161279f575b505050505081526020016008820180548060200260200160405190810160405280929190818152602001828054801561281557602002820191906000526020600020905b815481526020019060010190808311612801575b505050505081526020016009820180548060200260200160405190810160405280929190818152602001828054801561286d57602002820191906000526020600020905b815481526020019060010190808311612859575b5050505050815250506129b6565b60055490915061288b90826124ec565b600687015560048087015490546128a79190610ebb908461258e565b6004908155959095019490945550505050565b600081836129465760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561290b5781810151838201526020016128f3565b50505050905090810190601f1680156129385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161295257fe5b0495945050505050565b600081848411156129ae5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561290b5781810151838201526020016128f3565b505050900390565b6000808260e001518360400151815181106129cd57fe5b6020026020010151905060008361010001518460400151815181106129ee57fe5b602002602001015190506000846101200151856040015181518110612a0f57fe5b602002602001015190506000612a258383612b2f565b6008546040805163039bf40760e21b81526001600160a01b038881166004830152825194955060009485949190911692630e6fd01c926024808201939182900301818787803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b505050506040513d6040811015612aa157600080fd5b508051602090910151909250905080612b01576040805162461bcd60e51b815260206004820152601f60248201527f4c504d696e696e6756313a20746f6b656e20707269636520696e76616c696400604482015290519081900360640190fd5b606088015160ff8316600a0a90612b22908290610e1890610e1288876124ec565b9998505050505050505050565b600081612b72576040805162461bcd60e51b815260206004820152600c60248201526b4552525f4449565f5a45524f60a01b604482015290519081900360640190fd5b670de0b6b3a76400008302831580612b9a5750838181612b8e57fe5b04670de0b6b3a7640000145b612bde576040805162461bcd60e51b815260206004820152601060248201526f11549497d1125597d25395115493905360821b604482015290519081900360640190fd5b60028304810181811015612c2c576040805162461bcd60e51b815260206004820152601060248201526f11549497d1125597d25395115493905360821b604482015290519081900360640190fd5b6000848281612c3757fe5b049695505050505050565b60405180610140016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016060815260200160608152602001606081525090565b6040518060200160405280600081525090565b828054828255906000526020600020908101928215612d06579160200282015b82811115612d0657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612cd1565b50612d12929150612deb565b5090565b828054828255906000526020600020908101928215612d51579160200282015b82811115612d51578251825591602001919060010190612d36565b50612d12929150612e0a565b828054828255906000526020600020908101928215612d06579160200282015b82811115612d065781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190612d7d565b828054828255906000526020600020908101928215612d51579160200282015b82811115612d51578235825591602001919060010190612dd0565b5b80821115612d125780546001600160a01b0319168155600101612dec565b5b80821115612d125760008155600101612e0b56fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c504d696e696e6756313a2063616c6c6572206973206e6f742074686520676f7665726e6f724c504d696e696e6756313a207265666572656e636520746f6b656e206e6f74206578697374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212206c2d21c304a38a4a05090d6725c885735ad9b8374a6e607c01bbf825e27080d864736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005a867f6b759ca090e47cbfdbb3ea76e42726286200000000000000000000000000000000000000000000000015a63bbc199c00000000000000000000000000000000000000000000000000000000000000ac1b600000000000000000000000000000000000000000000000000000000000ae32880000000000000000000000000000000000000000000000000000000001852db0000000000000000000000000b659f06aa83aaa0563653b1e8b4276d990c8a500
-----Decoded View---------------
Arg [0] : _award (address): 0x5a867f6B759cA090E47CBfdBB3eA76E427262862
Arg [1] : _tokenPerBlock (uint256): 1560000000000000000
Arg [2] : _startBlock (uint256): 11279200
Arg [3] : _endTripleBlock (uint256): 11416200
Arg [4] : _endBlock (uint256): 25505200
Arg [5] : _oracle (address): 0xB659f06AA83aaa0563653B1E8B4276d990C8a500
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000005a867f6b759ca090e47cbfdbb3ea76e427262862
Arg [1] : 00000000000000000000000000000000000000000000000015a63bbc199c0000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000ac1b60
Arg [3] : 0000000000000000000000000000000000000000000000000000000000ae3288
Arg [4] : 0000000000000000000000000000000000000000000000000000000001852db0
Arg [5] : 000000000000000000000000b659f06aa83aaa0563653b1e8b4276d990c8a500
Deployed Bytecode Sourcemap
7139:13678:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8581:23;;;:::i;:::-;;;;;;;;;;;;;;;;16035:910;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16035:910:0;;;;;;;;;;;;;;;;;:::i;:::-;;12108:358;;;;;;;;;;;;;;;;-1:-1:-1;12108:358:0;;;;;;;:::i;12743:178::-;;;;;;;;;;;;;;;;-1:-1:-1;12743:178:0;-1:-1:-1;;;;;12743:178:0;;:::i;15067:960::-;;;;;;;;;;;;;;;;-1:-1:-1;15067:960:0;;;;;;-1:-1:-1;;;;;15067:960:0;;:::i;8302:26::-;;;:::i;:::-;;;;-1:-1:-1;;;;;8302:26:0;;;;;;;;;;;;;;12495:103;;;;;;;;;;;;;;;;-1:-1:-1;12495:103:0;-1:-1:-1;;;;;12495:103:0;;:::i;8672:44::-;;;:::i;8739:20::-;;;:::i;8386:35::-;;;:::i;8057:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;10867:1233;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10867:1233:0;;;;;;;;;;;;;:::i;12962:201::-;;;:::i;8486:39::-;;;:::i;983:148::-;;;:::i;10549:188::-;;;;;;;;;;;;;;;;-1:-1:-1;10549:188:0;-1:-1:-1;;;;;10549:188:0;;:::i;773:79::-;;;:::i;13403:547::-;;;;;;;;;;;;;;;;-1:-1:-1;13403:547:0;;;;;;;:::i;7961:64::-;;;;;;;;;;;;;;;;-1:-1:-1;7961:64:0;;;;;;-1:-1:-1;;;;;7961:64:0;;:::i;13192:166::-;;;;;;;;;;;;;;;;-1:-1:-1;13192:166:0;-1:-1:-1;;;;;13192:166:0;;:::i;7910:44::-;;;;;;;;;;;;;;;;-1:-1:-1;7910:44:0;-1:-1:-1;;;;;7910:44:0;;:::i;:::-;;;;-1:-1:-1;;;;;7910:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13958:340;;;;;;;;;;;;;;;;-1:-1:-1;13958:340:0;;;;;;-1:-1:-1;;;;;13958:340:0;;:::i;7881:22::-;;;;;;;;;;;;;;;;-1:-1:-1;7881:22:0;;:::i;10745:97::-;;;;;;;;;;;;;;;;-1:-1:-1;10745:97:0;;:::i;10357:184::-;;;;;;;;;;;;;;;;-1:-1:-1;10357:184:0;-1:-1:-1;;;;;10357:184:0;;:::i;:::-;;;;;;;;;;;;;;;;;;14306:680;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14306:680:0;;;;;;;;;;;;;;;-1:-1:-1;;;14306:680:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14306:680:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14306:680:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14306:680:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14306:680:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14306:680:0;;;;;;;;;;;;-1:-1:-1;14306:680:0;-1:-1:-1;14306:680:0;;;;;;;;;:::i;12628:107::-;;;;;;;;;;;;;;;;-1:-1:-1;12628:107:0;-1:-1:-1;;;;;12628:107:0;;:::i;1137:244::-;;;;;;;;;;;;;;;;-1:-1:-1;1137:244:0;-1:-1:-1;;;;;1137:244:0;;:::i;8581:23::-;;;;:::o;16035:910::-;16137:11;16151:23;16163:10;16151:11;:23::i;:::-;16137:37;;-1:-1:-1;;16189:3:0;:19;16185:753;;16225:18;16246:42;16261:3;16266:4;16272:8;16282:5;16246:14;:42::i;:::-;16225:63;;16303:16;16322:39;16337:3;16342:2;16346:8;16356:4;16322:14;:39::i;:::-;16303:58;-1:-1:-1;16380:14:0;;16376:233;;16419:24;16438:4;16419:18;:24::i;:::-;16415:179;;;16468:5;;:25;;;-1:-1:-1;;;16468:25:0;;;;;;;;;;-1:-1:-1;;;;;16468:5:0;;;;:13;;:25;;;;;:5;;:25;;;;;;;;:5;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16415:179;;;16542:5;;:32;;;-1:-1:-1;;;16542:32:0;;-1:-1:-1;;;;;16542:32:0;;;;;;;;;;;;;;;:5;;;;;:14;;:32;;;;;:5;;:32;;;;;;;:5;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16415:179;16627:12;;16623:223;;16664:22;16683:2;16664:18;:22::i;:::-;16660:171;;;16711:5;;:23;;;-1:-1:-1;;;16711:23:0;;;;;;;;;;-1:-1:-1;;;;;16711:5:0;;;;:13;;:23;;;;;:5;;:23;;;;;;;;:5;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16660:171;;;16783:5;;:28;;;-1:-1:-1;;;16783:28:0;;-1:-1:-1;;;;;16783:28:0;;;;;;;;;;;;;;;:5;;;;;:14;;:28;;;;;:5;;:28;;;;;;;:5;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16660:171;16865:61;;;-1:-1:-1;;;;;16865:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16185:753;;;16035:910;;;;:::o;12108:358::-;8208:9;:23;8218:12;:10;:12::i;:::-;-1:-1:-1;;;;;8208:23:0;;;;;;;;;;;;-1:-1:-1;8208:23:0;;;;8200:74;;;;-1:-1:-1;;;8200:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12210:5:::1;:12:::0;12204:18;::::1;12196:57;;;::::0;;-1:-1:-1;;;12196:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;12196:57:0;;;;;;;;;;;;;::::1;;12264:21;12288:8;:20;12297:5;12303:3;12297:10;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;12297:10:0::1;-1:-1:-1::0;;;;;12288:20:0::1;-1:-1:-1::0;;;;;12288:20:0::1;;;;;;;;;;;;12264:44;;12353:10;12319:8;:20;12328:5;12334:3;12328:10;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;12328:10:0::1;12319:20:::0;;;::::1;::::0;;;;;;;;:31:::1;;:44:::0;12374:15:::1;:13;:15::i;:::-;12400:22;12417:4;12400:16;:22::i;:::-;12438:20;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;8285:1;12108:358:::0;;:::o;12743:178::-;8208:9;:23;8218:12;:10;:12::i;:::-;-1:-1:-1;;;;;8208:23:0;;;;;;;;;;;;-1:-1:-1;8208:23:0;;;;8200:74;;;;-1:-1:-1;;;8200:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12822:20:0;::::1;12814:59;;;::::0;;-1:-1:-1;;;12814:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;12884:11;:29:::0;;-1:-1:-1;;;;;;12884:29:0::1;-1:-1:-1::0;;;;;12884:29:0;;;::::1;::::0;;;::::1;::::0;;12743:178::o;15067:960::-;15138:7;15158:20;;:::i;:::-;15181:8;:20;15190:5;15196:3;15190:10;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15190:10:0;;;15181:20;;;;;;;;;;;;;;;;15158:43;;;;;;;;;;;;;;15190:10;15158:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15181:20;;15158:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15158:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15212:21;;:::i;:::-;-1:-1:-1;15236:13:0;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;15236:19:0;;;;;;;;;;;;15212:43;;;;;;;;;;;15270:10;;:24;;-1:-1:-1;;;15270:24:0;;;;15212:43;;15270:22;;;;:24;;;;;;;;;;;:22;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15270:24:0;:29;;:51;;-1:-1:-1;15303:9:0;:13;:18;15270:51;:96;;;-1:-1:-1;15325:25:0;;15354:12;-1:-1:-1;15325:41:0;15270:96;15266:137;;;15390:1;15383:8;;;;;;15266:137;15441:25;;15512;;15415:23;;15498:54;;15539:12;15498:13;:54::i;:::-;15477:75;;15563:15;15581:58;15625:9;:13;;;15581:39;15615:4;15581:29;15596:13;;15581:10;:14;;:29;;;;:::i;:::-;:33;;:39::i;:::-;:43;;:58::i;:::-;15563:76;-1:-1:-1;15668:28:0;:15;15563:76;15668:19;:28::i;:::-;15650:46;;15709:24;15736:4;:21;;;15709:48;;15778:84;15837:4;:10;;;-1:-1:-1;;;;;15837:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15837:24:0;15816:15;;;;15798:12;;;;15778:54;;15816:15;15778:33;;:15;;:19;:33::i;:::-;:37;;:54::i;:84::-;15768:94;-1:-1:-1;15892:29:0;:16;15768:94;15892:20;:29::i;:::-;15873:48;;15939:80;16014:4;15939:70;15992:5;:16;;;15939:48;15960:4;:10;;;-1:-1:-1;;;;;15960:20:0;;15981:4;15960:26;;;;;;;;;;;;;-1:-1:-1;;;;;15960:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15960:26:0;15939:16;;:20;:48::i;:80::-;15932:87;;;;;;;;15067:960;;;;;:::o;8302:26::-;;;-1:-1:-1;;;;;8302:26:0;;:::o;12495:103::-;908:12;:10;:12::i;:::-;898:6;;-1:-1:-1;;;;;898:6:0;;;:22;;;890:67;;;;;-1:-1:-1;;;890:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;890:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12564:19:0::1;;::::0;;;:9:::1;:19;::::0;;;;:26;;-1:-1:-1;;12564:26:0::1;12586:4;12564:26;::::0;;12495:103::o;8672:44::-;;;;:::o;8739:20::-;;;-1:-1:-1;;;;;8739:20:0;;:::o;8386:35::-;;;:::o;8057:26::-;;;;;;;;:::o;10867:1233::-;8208:9;:23;8218:12;:10;:12::i;:::-;-1:-1:-1;;;;;8208:23:0;;;;;;;;;;;;-1:-1:-1;8208:23:0;;;;8200:74;;;;-1:-1:-1;;;8200:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10976:12:::1;10983:4;10976:6;:12::i;:::-;10975:13;10967:52;;;::::0;;-1:-1:-1;;;10967:52:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;11055:1;11038:12:::0;;-1:-1:-1;;11068:3:0;11038:19:::1;::::0;:12;:16:::1;:19::i;:::-;:34;11030:78;;;::::0;;-1:-1:-1;;;11030:78:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;11119:11;11139:4;11119:25;;11171:5;-1:-1:-1::0;;;;;11171:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;11171:24:0::1;::::0;::::1;;::::0;::::1;::::0;::::1;;;;;::::0;::::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;11171:24:0::1;;;;;;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;;;;;::::0;::::1;;;;;;;;;;;-1:-1:-1::0;;;11171:24:0::1;;;;;;;::::0;::::1;;::::0;;-1:-1:-1;11171:24:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;::::0;::::1;;:31;11163:5;:39;11155:89;;;;-1:-1:-1::0;;;11155:89:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11255:23;11281:5;-1:-1:-1::0;;;;;11281:22:0::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;11281:24:0::1;::::0;::::1;;::::0;::::1;::::0;::::1;;;;;::::0;::::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;11281:24:0::1;;;;;;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;;;;;::::0;::::1;;;;;;;;;;;-1:-1:-1::0;;;11281:24:0::1;;;;;;;::::0;::::1;;::::0;;-1:-1:-1;11281:24:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;::::0;::::1;;11255:50;;11316:26;11359:6;:13;11345:28;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;11345:28:0::1;;11316:57;;11384:25;11426:6;:13;11412:28;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;11412:28:0::1;;11384:56;;11456:6;11451:175;11472:6;:13;11468:1;:17;11451:175;;;11522:5;-1:-1:-1::0;;;;;11522:16:0::1;;11539:6;11546:1;11539:9;;;;;;;;;;;;;;11522:27;;;;;;;;;;;;;-1:-1:-1::0;;;;;11522:27:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;11522:27:0;11507:12;;:9;;11517:1;;11507:12;::::1;;;;;;;;;;:42;;;::::0;::::1;11578:5;-1:-1:-1::0;;;;;11578:25:0::1;;11604:6;11611:1;11604:9;;;;;;;;;;;;;;11578:36;;;;;;;;;;;;;-1:-1:-1::0;;;;;11578:36:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;11578:36:0;11564:11;;:8;;11573:1;;11564:11;::::1;;;;;;::::0;;::::1;::::0;;;;;:50;11487:3:::1;;11451:175;;;;11653:303;;;;;;;;11681:5;-1:-1:-1::0;;;;;11653:303:0::1;;;;;11709:5;:12;;;;11653:303;;;;11745:5;11653:303;;;;11796:6;11653:303;;;;11771:1;11653:303;;;;11832:1;11653:303;;;;11857:1;11653:303;;;;11878:6;11653:303;;;;11906:9;11653:303;;;;11936:8;11653:303;;::::0;11636:8:::1;:14;11645:4;-1:-1:-1::0;;;;;11636:14:0::1;-1:-1:-1::0;;;;;11636:14:0::1;;;;;;;;;;;;:320;;;;;;;;;;;;;-1:-1:-1::0;;;;;11636:320:0::1;;;;;-1:-1:-1::0;;;;;11636:320:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11636:320:0::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;11636:320:0::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;11967:5:0::1;:16:::0;;;;::::1;::::0;;-1:-1:-1;11967:16:0;;;;;::::1;::::0;;-1:-1:-1;;;;;;11967:16:0::1;-1:-1:-1::0;;;;;11967:16:0;::::1;;::::0;;-1:-1:-1;11994:15:0::1;:13;:15::i;:::-;-1:-1:-1::0;;;;;12037:14:0;::::1;;::::0;;;:8:::1;:14;::::0;;;;12020:32:::1;::::0;:16:::1;:32::i;:::-;12068:24;::::0;;-1:-1:-1;;;;;12068:24:0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;8285:1;;;;10867:1233:::0;;;:::o;12962:201::-;13018:15;:13;:15::i;:::-;13049:6;13044:112;13065:5;:12;13061:16;;13044:112;;;13108:36;13125:8;:18;13134:5;13140:1;13134:8;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13134:8:0;13125:18;;;;;;;;;;;;13108:16;:36::i;:::-;13083:8;:1;13089;13083:5;:8::i;:::-;13079:12;;13044:112;;;;12962:201::o;8486:39::-;;;:::o;983:148::-;908:12;:10;:12::i;:::-;898:6;;-1:-1:-1;;;;;898:6:0;;;:22;;;890:67;;;;;-1:-1:-1;;;890:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;890:67:0;;;;;;;;;;;;;;;1090:1:::1;1074:6:::0;;1053:40:::1;::::0;-1:-1:-1;;;;;1074:6:0;;::::1;::::0;1053:40:::1;::::0;1090:1;;1053:40:::1;1121:1;1104:19:::0;;-1:-1:-1;;;;;;1104:19:0::1;::::0;;983:148::o;10549:188::-;10605:7;10628:12;10635:4;10628:6;:12::i;:::-;10624:76;;;-1:-1:-1;;;;;;10664:14:0;;;;;;:8;:14;;;;;:24;;;10657:31;;10624:76;-1:-1:-1;;;10549:188:0;;;;:::o;773:79::-;811:7;838:6;-1:-1:-1;;;;;838:6:0;773:79;:::o;13403:547::-;8208:9;:23;8218:12;:10;:12::i;:::-;-1:-1:-1;;;;;8208:23:0;;;;;;;;;;;;-1:-1:-1;8208:23:0;;;;8200:74;;;;-1:-1:-1;;;8200:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13518:5:::1;:12:::0;13512:18;::::1;13504:57;;;::::0;;-1:-1:-1;;;13504:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;13504:57:0;;;;;;;;;;;;;::::1;;13572:12;13587:5;13593:3;13587:10;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;13625:30:::1;::::0;;-1:-1:-1;;;13625:30:0;;;;-1:-1:-1;;;;;13587:10:0;;::::1;::::0;-1:-1:-1;13587:10:0;;13625:28:::1;::::0;:30:::1;::::0;;::::1;::::0;;;;;;13587:10;13625:30;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;13625:30:0::1;::::0;::::1;;::::0;::::1;::::0;::::1;;;;;::::0;::::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;13625:30:0::1;;;;;;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;;;;;::::0;::::1;;;;;;;;;;;-1:-1:-1::0;;;13625:30:0::1;;;;;;;::::0;::::1;;::::0;;-1:-1:-1;13625:30:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;::::0;::::1;;:37;13616:6;:46;13608:96;;;;-1:-1:-1::0;;;13608:96:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;13739:14:0;::::1;13715:21;13739:14:::0;;;:8:::1;:14;::::0;;;;;;;13778:15;;::::1;::::0;;13804:24;;;;13839:15:::1;:13;:15::i;:::-;13865:22;13882:4;13865:16;:22::i;:::-;13903:39;::::0;;-1:-1:-1;;;;;13903:39:0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;8285:1;;;13403:547:::0;;:::o;7961:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;13192:166::-;908:12;:10;:12::i;:::-;898:6;;-1:-1:-1;;;;;898:6:0;;;:22;;;890:67;;;;;-1:-1:-1;;;890:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;890:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13267:20:0;::::1;13259:58;;;::::0;;-1:-1:-1;;;13259:58:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13328:5;:22:::0;;-1:-1:-1;;;;;;13328:22:0::1;-1:-1:-1::0;;;;;13328:22:0;;;::::1;::::0;;;::::1;::::0;;13192:166::o;7910:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7910:44:0;;;;;;;;;;;;:::o;13958:340::-;14050:5;:12;14044:18;;14036:57;;;;;-1:-1:-1;;;14036:57:0;;;;;;;;;;;;-1:-1:-1;;;14036:57:0;;;;;;;;;;;;;;;14104:15;14122:34;14137:3;14142:4;14148:1;14151:4;14122:14;:34::i;:::-;14104:52;-1:-1:-1;14171:11:0;;14167:73;;14199:5;;:29;;;-1:-1:-1;;;14199:29:0;;-1:-1:-1;;;;;14199:29:0;;;;;;;;;;;;;;;:5;;;;;:14;;:29;;;;;:5;;:29;;;;;;;:5;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14167:73;14255:35;;;;;;-1:-1:-1;;;;;14255:35:0;;;;;;;;;;;;;;;;;;;;;;;13958:340;;;:::o;7881:22::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7881:22:0;;-1:-1:-1;7881:22:0;:::o;10745:97::-;908:12;:10;:12::i;:::-;898:6;;-1:-1:-1;;;;;898:6:0;;;:22;;;890:67;;;;;-1:-1:-1;;;890:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;890:67:0;;;;;;;;;;;;;;;10814:8:::1;:20:::0;10745:97::o;10357:184::-;-1:-1:-1;;;;;10436:14:0;;;10408:4;10436:14;;;:8;:14;;;;;:20;10408:4;;10436:20;10424:88;;-1:-1:-1;10495:5:0;10488:12;;10424:88;-1:-1:-1;10529:4:0;10357:184;;;:::o;14306:680::-;14490:11;14504:23;14516:10;14504:11;:23::i;:::-;14490:37;;-1:-1:-1;;14542:3:0;:19;14538:441;;14611:10;14578:21;14602:20;;;:8;:20;;;;;14637;:11;;;14651:6;;14637:20;:::i;:::-;-1:-1:-1;14672:24:0;:13;;;14688:8;;14672:24;:::i;:::-;-1:-1:-1;14711:22:0;:12;;;14726:7;;14711:22;:::i;:::-;;14748:15;14766:39;14781:3;14786:4;14792:6;14800:4;14766:14;:39::i;:::-;14748:57;-1:-1:-1;14824:11:0;;14820:81;;14856:5;;:29;;;-1:-1:-1;;;14856:29:0;;-1:-1:-1;;;;;14856:29:0;;;;;;;;;;;;;;;:5;;;;;:14;;:29;;;;;:5;;:29;;;;;;;:5;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14820:81;14920:47;;;14941:10;14920:47;;-1:-1:-1;;;;;14920:47:0;;;;;;;;;;;;;;;;;;;;;;;14538:441;;;14306:680;;;;;;;;;;:::o;12628:107::-;908:12;:10;:12::i;:::-;898:6;;-1:-1:-1;;;;;898:6:0;;;:22;;;890:67;;;;;-1:-1:-1;;;890:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;890:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12700:19:0::1;12722:5;12700:19:::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;12700:27:0::1;::::0;;12628:107::o;1137:244::-;908:12;:10;:12::i;:::-;898:6;;-1:-1:-1;;;;;898:6:0;;;:22;;;890:67;;;;;-1:-1:-1;;;890:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;890:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1226:22:0;::::1;1218:73;;;;-1:-1:-1::0;;;1218:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1328:6;::::0;;1307:38:::1;::::0;-1:-1:-1;;;;;1307:38:0;;::::1;::::0;1328:6;::::1;::::0;1307:38:::1;::::0;::::1;1356:6;:17:::0;;-1:-1:-1;;;;;;1356:17:0::1;-1:-1:-1::0;;;;;1356:17:0;;;::::1;::::0;;;::::1;::::0;;1137:244::o;18441:645::-;18538:7;18557:15;:13;:15::i;:::-;18583:21;18607:8;:20;18616:5;18622:3;18616:10;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18616:10:0;18607:20;;;;;;;;;;;;;-1:-1:-1;18638:39:0;18607:20;18662:8;18672:4;18638:17;:39::i;:::-;18690:26;18719:13;;;:8;:13;;;;;;;;-1:-1:-1;;;;;18719:19:0;;;;;;;;;;;;18769:10;;:26;;-1:-1:-1;;;18769:26:0;;;;;;;;;;;18719:19;;18690:26;18769:10;;;;;:20;;:26;;;;;;;;;;;:10;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18769:26:0;;-1:-1:-1;18806:18:0;18827:4;:56;;18860:23;:9;18874:8;18860:13;:23::i;:::-;18827:56;;;18834:23;:9;18848:8;18834:13;:23::i;:::-;18806:77;;18894:14;18911:73;18979:4;18911:63;18953:9;:20;;;18911:37;18937:10;18911:4;:21;;;:25;;:37;;;;:::i;:73::-;18894:90;;19018:36;19032:4;:21;;;19018:9;:13;;:36;;;;:::i;:::-;18995:59;;;-1:-1:-1;18995:59:0;;18441:645;-1:-1:-1;;;;;;;18441:645:0:o;3531:174::-;3650:20;3689:8;;;3531:174::o;100:106::-;188:10;100:106;:::o;16997:484::-;17045:9;:13;:17;;;;:61;;-1:-1:-1;17081:25:0;;17066:12;:40;17045:61;17041:341;;;17123:18;17144:54;17158:9;:25;;;17185:12;17144:13;:54::i;:::-;17123:75;;17213:15;17231:58;17275:9;:13;;;17231:39;17265:4;17231:29;17246:13;;17231:10;:14;;:29;;;;:::i;:58::-;17332:25;;17213:76;;-1:-1:-1;17332:38:0;;17213:76;17332:29;:38::i;:::-;17304:25;:66;-1:-1:-1;;17041:341:0;17435:10;17420:12;:25;:53;;17463:10;17420:53;;;17448:12;17420:53;17392:25;:81;16997:484::o;17531:108::-;17599:32;17617:4;17623:1;17626:4;17599:17;:32::i;19741:684::-;19815:7;19846:8;;19839:3;:15;19835:583;;19882:14;19875:3;:21;19871:227;;19924:21;19943:1;19924:14;:3;19932:5;19924:7;:14::i;:21::-;19917:28;;;;19871:227;19979:14;19971:5;:22;19967:131;;;20021:61;20058:23;:3;20066:14;20058:7;:23::i;:::-;20021:32;20051:1;20021:25;:14;20040:5;20021:18;:25::i;:32::-;:36;;:61::i;19967:131::-;20119:14;:3;20127:5;20119:7;:14::i;19835:583::-;20164:8;;20155:5;:17;20151:267;;-1:-1:-1;20196:1:0;20189:8;;20151:267;20242:14;20234:5;:22;20230:136;;;20321:8;;20284:66;;20321:28;;20334:14;20321:12;:28::i;20230:136::-;20387:8;;:19;;20400:5;20387:12;:19::i;2614:246::-;2672:7;2696:6;2692:47;;-1:-1:-1;2726:1:0;2719:8;;2692:47;2761:5;;;2765:1;2761;:5;:1;2785:5;;;;;:10;2777:56;;;;-1:-1:-1;;;2777:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2851:1;2614:246;-1:-1:-1;;;2614:246:0:o;2866:132::-;2924:7;2951:39;2955:1;2958;2951:39;;;;;;;;;;;;;;;;;:3;:39::i;2091:179::-;2149:7;2181:5;;;2205:6;;;;2197:46;;;;;-1:-1:-1;;;2197:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2276:136;2334:7;2361:43;2365:1;2368;2361:43;;;;;;;;;;;;;;;;;:3;:43::i;17689:720::-;17812:10;;:24;;;-1:-1:-1;;;17812:24:0;;;;17787:22;;-1:-1:-1;;;;;17812:10:0;;:22;;:24;;;;;;;;;;;;;;:10;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17812:24:0;;-1:-1:-1;17847:23:0;17873:4;:72;;17914:31;:17;17936:8;17914:21;:31::i;:::-;17873:72;;;17880:31;:17;17902:8;17880:21;:31::i;:::-;17847:98;-1:-1:-1;17960:22:0;;17956:234;;17999:15;18017:88;18086:18;18017:64;18065:4;:15;;;18017:43;18047:4;:12;;;18017:9;:25;;;:29;;:43;;;;:::i;:88::-;18144:21;;;;17999:106;;-1:-1:-1;18144:34:0;;17999:106;18144:25;:34::i;:::-;18120:21;;;:58;-1:-1:-1;17956:234:0;18217:16;;;;;;;;;;-1:-1:-1;;;;;18217:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18200:14;;18217:16;;;18228:4;;18217:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18217:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:10;:16::i;:::-;18262:25;;18200:33;;-1:-1:-1;18262:37:0;;18200:33;18262:29;:37::i;:::-;18244:15;;;:55;18356:12;;;;;18326:13;;:43;;18356:12;18326:25;;18344:6;18326:17;:25::i;:43::-;18310:9;:59;;;18380:12;;;;:21;;;;-1:-1:-1;;;;17689:720:0:o;3004:189::-;3090:7;3125:12;3118:5;3110:28;;;;-1:-1:-1;;;3110:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:9;3165:1;3161;:5;;;;;;;3004:189;-1:-1:-1;;;;;3004:189:0:o;2418:190::-;2504:7;2540:12;2532:6;;;;2524:29;;;;-1:-1:-1;;;2524:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2576:5:0;;;2418:190::o;19094:571::-;19153:7;19172:17;19192:4;:11;;;19204:4;:15;;;19192:28;;;;;;;;;;;;;;19172:48;;19231:15;19249:4;:13;;;19263:4;:15;;;19249:30;;;;;;;;;;;;;;19231:48;;19290:10;19303:4;:12;;;19316:4;:15;;;19303:29;;;;;;;;;;;;;;19290:42;;19343:20;19366:17;19371:7;19380:2;19366:4;:17::i;:::-;19427:11;;:40;;;-1:-1:-1;;;19427:40:0;;-1:-1:-1;;;;;19427:40:0;;;;;;;;;19343;;-1:-1:-1;19395:13:0;;;;19427:11;;;;;:29;;:40;;;;;;;;;;;19395:13;19427:11;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19427:40:0;;;;;;;;;-1:-1:-1;19427:40:0;-1:-1:-1;19486:9:0;19478:53;;;;;-1:-1:-1;;;19478:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19628:15;;;;19566:16;;;19560:2;:22;;19600:57;;19560:22;;19600:44;;:23;:12;19617:5;19600:16;:23::i;:57::-;19593:64;19094:571;-1:-1:-1;;;;;;;;;19094:571:0:o;20433:381::-;20486:4;20510:6;20502:31;;;;;-1:-1:-1;;;20502:31:0;;;;;;;;;;;;-1:-1:-1;;;20502:31:0;;;;;;;;;;;;;;;20558:4;20554:8;;20581:6;;;:24;;;20596:1;20591:2;:6;;;;;;20601:4;20591:14;20581:24;20573:53;;;;;-1:-1:-1;;;20573:53:0;;;;;;;;;;;;-1:-1:-1;;;20573:53:0;;;;;;;;;;;;;;;20683:1;20679:5;;20673:12;;20704:8;;;;20696:37;;;;;-1:-1:-1;;;20696:37:0;;;;;;;;;;;;-1:-1:-1;;;20696:37:0;;;;;;;;;;;;;;;20770:7;20785:1;20780:2;:6;;;;;;;20433:381;-1:-1:-1;;;;;;20433:381:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://6c2d21c304a38a4a05090d6725c885735ad9b8374a6e607c01bbf825e27080d8
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.